From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,WEIRD_QUOTING autolearn=ham autolearn_force=no version=3.4.2 Received: from inbox.vuxu.org (localhost [IPv6:::1]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id 3f5e5aab for ; Sat, 18 Jan 2020 09:21:48 +0000 (UTC) Content-Type: multipart/mixed; boundary="===============1008335249968892775==" MIME-Version: 1.0 Subject: Re: [PR PATCH] [Updated] python-docutils: update to 0.16 To: ml@inbox.vuxu.org From: voidlinux-github@inbox.vuxu.org Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sat, 18 Jan 2020 10:21:47 +0100 Message-ID: <20200118092147.WQ01XF-9hFKXlPY7Uhdvy14SXO3qHBs3DtfCT1L09jc@z> GitHub notification mails are now in MIME to allow UTF8. --===============1008335249968892775== MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgc2duIGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9zZ24vdm9p ZC1wYWNrYWdlcyBweXRob24tZG9jdXRpbHMtMC4xNgpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1s aW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMTgzNjYKCnB5dGhvbi1kb2N1dGlsczogdXBkYXRlIHRv IDAuMTYKCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92 b2lkLXBhY2thZ2VzL3B1bGwvMTgzNjYucGF0Y2ggaXMgYXR0YWNoZWQ= --===============1008335249968892775== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-python-docutils-0.16-18366.patch" RnJvbSAyZDgxNzY1NzkyZmNiMWJiYmNmMWZlZGVhZjFhODk2YWNhZWIxZGI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEb2FuIFRyYW4gQ29uZyBEYW5oIDxjb25nZGFuaHF4QGdtYWls LmNvbT4KRGF0ZTogV2VkLCAyNSBEZWMgMjAxOSAxMjo1MzozMiArMDcwMApTdWJqZWN0OiBbUEFU Q0hdIHB5dGhvbi1kb2N1dGlsczogdXBkYXRlIHRvIDAuMTYKCi0tLQogLi4uLzAwMDEtcHkzLVVz ZS1uZXctc3R5bGUtY2xhc3Nlcy5wYXRjaCAgICAgIHwgIDM5NCAtLS0tCiAuLi4vMDAwMi1weTMt U3dpdGNoLXRvLXByaW50LWZ1bmN0aW9ucy5wYXRjaCAgfCAxNTE3IC0tLS0tLS0tLS0tLS0tLQog Li4uMy1Td2l0Y2gtdG8tZXhjZXB0LWZvby1hcy1iYXItc3ludGF4LnBhdGNoIHwgIDcxOSAtLS0t LS0tCiAuLi4tcHkzLUFkZC1hbGlhc2VzLWZvci1yZW1vdmVkLXN5bWJvbHMucGF0Y2ggfCAgNTk5 IC0tLS0tLQogLi4udmUtc29tZS1hZGRpdGlvbmFsLXVuZGVmaW5lZC1zeW1ib2xzLnBhdGNoIHwg ICA4MCAtCiAuLi5kZXByZWNhdGVkLWZvcm0tb2YtcmFpc2luZy1leGNlcHRpb24ucGF0Y2ggfCAg MjYzIC0tLQogLi4uLVJlcGxhY2Utc3lzLm1heGludC13aXRoLXN5cy5tYXhzaXplLnBhdGNoIHwg IDEwMyAtCiAuLi5zLlNsaWNlVHlwZS13aXRoLXNsaWNlLXJlbW92ZS10eXBlcy4ucGF0Y2ggfCAg MTI4IC0tCiAuLi4vMDAwOS1weTMtVXNlLWFic29sdXRlX2ltcG9ydC1mdXR1cmUucGF0Y2ggfCAx Njk5IC0tLS0tLS0tLS0tLS0tLS0tCiAuLi4zLVVzZS1zb3J0ZWQtZm9vLWluc3RlYWQtb2YtZm9v LnNvcnQucGF0Y2ggfCAgMjM2IC0tLQogLi4ubXBsaWZ5LWNvZGUtZm9sbG93aW5nLXJlY2VudC1j aGFuZ2VzLnBhdGNoIHwgICA0OSAtCiAuLi5lLWZvby1iYXItaW5zdGVhZC1vZi10eXBlLWZvby1p cy1iYXIucGF0Y2ggfCAgMTIwIC0tCiAuLi4vMDAxMy1Db25zaXN0ZW50LVB5dGhvbi0zLWNoZWNr cy5wYXRjaCAgICAgfCAgNTk0IC0tLS0tLQogLi4uNC1weTMtUmVwbGFjZS1mb28ubmV4dC13aXRo LW5leHQtZm9vLnBhdGNoIHwgICA3NCAtCiAuLi5sYWNlLWZvby5oYXNfa2V5LWJhci13aXRoLWJh ci1pbi1mb28ucGF0Y2ggfCAgIDM4IC0KIC4uLi1kZWZpbml0aW9uLW9mLW5vZGVzLkVsZW1lbnQu X19jb250YS5wYXRjaCB8ICAgNDcgLQogLi4uLUNvbmZpZ1BhcnNlci10by1jb25maWdwYXJzZXIt cmVuYW1lLnBhdGNoIHwgICA5MyAtCiAuLi4vcGF0Y2hlcy8wMDE4LXB5My1SZXBsYWNlLXVyLXBy ZWZpeC5wYXRjaCAgfCAgNTk5IC0tLS0tLQogLi4uZXMtdG8tZmFjaWxpdGF0ZS1pbnRlZ3JhdGlv bi1vZi1weTMtLnBhdGNoIHwgIDkyMCAtLS0tLS0tLS0KIC4uLnB5My1IYW5kbGUtU3RyaW5nSU8t dG8taW8tdHJhbnNpdGlvbi5wYXRjaCB8ICAgNzggLQogLi4uLVB5dGhvbi0yLTMtY29tcGF0aWJp bGl0eS1kZWZpbml0aW9uLnBhdGNoIHwgICA5MSAtCiAuLi5uZGxlLXVybGxpYi11cmxsaWIyLXRv LXVybGliLi1yZW5hbWUucGF0Y2ggfCAgMjAyIC0tCiAuLi4vcGF0Y2hlcy8wMDIzLXB5My1GaXgt bWFnaWMtbWV0aG9kcy5wYXRjaCAgfCAgMzUyIC0tLS0KIC4uLnkzLVdyYXAtZm9vLmtleXMtemlw LWZvby1iYXItaW4tbGlzdC5wYXRjaCB8ICAxNDcgLS0KIC4uLi9wYXRjaGVzLzAwMjUtU2ltcGxp ZnktY29kZS5wYXRjaCAgICAgICAgICB8ICAgODQgLQogLi4uYW5kbGUtb3MuZ2V0Y3dkdS10by1v cy5nZXRjd2QtcmVuYW1lLnBhdGNoIHwgICA0MiAtCiAuLi4vcHl0aG9uLWRvY3V0aWxzL3BhdGNo ZXMvdGVzdC1pbXBvcnQucGF0Y2ggfCAgIDIwICsKIHNyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3Rl bXBsYXRlICAgICAgICAgICAgICB8ICAgMTQgKy0KIDI4IGZpbGVzIGNoYW5nZWQsIDI4IGluc2Vy dGlvbnMoKyksIDkyNzQgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9w eXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDAxLXB5My1Vc2UtbmV3LXN0eWxlLWNsYXNzZXMucGF0 Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAw MDItcHkzLVN3aXRjaC10by1wcmludC1mdW5jdGlvbnMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMDMtcHkzLVN3aXRjaC10by1leGNl cHQtZm9vLWFzLWJhci1zeW50YXgucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3B5 dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMDQtcHkzLUFkZC1hbGlhc2VzLWZvci1yZW1vdmVkLXN5 bWJvbHMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9w YXRjaGVzLzAwMDUtcHkzLVJlc29sdmUtc29tZS1hZGRpdGlvbmFsLXVuZGVmaW5lZC1zeW1ib2xz LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hl cy8wMDA2LXB5My1SZXBsYWNlLWRlcHJlY2F0ZWQtZm9ybS1vZi1yYWlzaW5nLWV4Y2VwdGlvbi5w YXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMv MDAwNy1weTMtUmVwbGFjZS1zeXMubWF4aW50LXdpdGgtc3lzLm1heHNpemUucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMDgtcHkzLVJl cGxhY2UtdHlwZXMuU2xpY2VUeXBlLXdpdGgtc2xpY2UtcmVtb3ZlLXR5cGVzLi5wYXRjaAogZGVs ZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAwOS1weTMt VXNlLWFic29sdXRlX2ltcG9ydC1mdXR1cmUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMTAtcHkzLVVzZS1zb3J0ZWQtZm9vLWluc3Rl YWQtb2YtZm9vLnNvcnQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3B5dGhvbi1k b2N1dGlscy9wYXRjaGVzLzAwMTEtQ2xlYW51cC1zaW1wbGlmeS1jb2RlLWZvbGxvd2luZy1yZWNl bnQtY2hhbmdlcy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcHl0aG9uLWRvY3V0 aWxzL3BhdGNoZXMvMDAxMi1Vc2UtaXNpbnN0YW5jZS1mb28tYmFyLWluc3RlYWQtb2YtdHlwZS1m b28taXMtYmFyLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9weXRob24tZG9jdXRp bHMvcGF0Y2hlcy8wMDEzLUNvbnNpc3RlbnQtUHl0aG9uLTMtY2hlY2tzLnBhdGNoCiBkZWxldGUg bW9kZSAxMDA2NDQgc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDE0LXB5My1SZXBs YWNlLWZvby5uZXh0LXdpdGgtbmV4dC1mb28ucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMTUtcHkzLVJlcGxhY2UtZm9vLmhhc19rZXkt YmFyLXdpdGgtYmFyLWluLWZvby5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcHl0 aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAxNi1SZW1vdmUtZHVwbGljYXRlLWRlZmluaXRpb24tb2Yt bm9kZXMuRWxlbWVudC5fX2NvbnRhLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9w eXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDE3LUhhbmRsZS1Db25maWdQYXJzZXItdG8tY29uZmln cGFyc2VyLXJlbmFtZS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcHl0aG9uLWRv Y3V0aWxzL3BhdGNoZXMvMDAxOC1weTMtUmVwbGFjZS11ci1wcmVmaXgucGF0Y2gKIGRlbGV0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMTktRm9ybWF0dGlu Zy1jaGFuZ2VzLXRvLWZhY2lsaXRhdGUtaW50ZWdyYXRpb24tb2YtcHkzLS5wYXRjaAogZGVsZXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAyMC1weTMtSGFu ZGxlLVN0cmluZ0lPLXRvLWlvLXRyYW5zaXRpb24ucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMjEtUmVtb3ZlLWF1eGlsaWFyeS1QeXRo b24tMi0zLWNvbXBhdGliaWxpdHktZGVmaW5pdGlvbi5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAyMi1weTMtSGFuZGxlLXVybGxpYi11 cmxsaWIyLXRvLXVybGliLi1yZW5hbWUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMjMtcHkzLUZpeC1tYWdpYy1tZXRob2RzLnBhdGNo CiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDI0 LXB5My1XcmFwLWZvby5rZXlzLXppcC1mb28tYmFyLWluLWxpc3QucGF0Y2gKIGRlbGV0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMjUtU2ltcGxpZnktY29k ZS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNo ZXMvMDAyNi1weTMtSGFuZGxlLW9zLmdldGN3ZHUtdG8tb3MuZ2V0Y3dkLXJlbmFtZS5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvdGVzdC1p bXBvcnQucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVz LzAwMDEtcHkzLVVzZS1uZXctc3R5bGUtY2xhc3Nlcy5wYXRjaCBiL3NyY3BrZ3MvcHl0aG9uLWRv Y3V0aWxzL3BhdGNoZXMvMDAwMS1weTMtVXNlLW5ldy1zdHlsZS1jbGFzc2VzLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMDE0ZWU2Mjk4YS4uMDAwMDAwMDAwMDAKLS0tIGEv c3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDAxLXB5My1Vc2UtbmV3LXN0eWxlLWNs YXNzZXMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzOTQgKzAsMCBAQAotRnJvbSA0MWY0MzZj NDc2YjFjYjY3MzYwNTBhMTJkZTBjOTczMmM4MDAwMTlhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQotRnJvbTogU3RlcGhlbiBGaW51Y2FuZSA8c3RlcGhlbkB0aGF0Lmd1cnU+Ci1EYXRlOiBUdWUs IDE5IE5vdiAyMDE5IDIzOjQwOjU4ICswNzAwCi1TdWJqZWN0OiBbUEFUQ0ggMDEvMjZdIHB5Mzog VXNlIG5ldyBzdHlsZSBjbGFzc2VzCi0KLVNpZ25lZC1vZmYtYnk6IFN0ZXBoZW4gRmludWNhbmUg PHN0ZXBoZW5AdGhhdC5ndXJ1PgotCi1naXQtc3ZuLWlkOiBodHRwOi8vc3ZuLmNvZGUuc2YubmV0 L3AvZG9jdXRpbHMvY29kZS90cnVua0A4MzQ1IDkyOTU0M2Y2LWU0ZjItMDMxMC05OGE2LWJhM2Jk M2RkMWQwNAotU2lnbmVkLW9mZi1ieTogRG9hbiBUcmFuIENvbmcgRGFuaCA8Y29uZ2RhbmhxeEBn bWFpbC5jb20+Ci0tLS0KLSBkb2N1dGlscy9fX2luaXRfXy5weSAgICAgICAgICAgICAgICB8ICAy ICstCi0gZG9jdXRpbHMvY29yZS5weSAgICAgICAgICAgICAgICAgICAgfCAgMiArLQotIGRvY3V0 aWxzL25vZGVzLnB5ICAgICAgICAgICAgICAgICAgIHwgNTQgKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0KLSBkb2N1dGlscy9wYXJzZXJzL3JzdC9yb2xlcy5weSAgICAgICB8ICA0ICstLQot IGRvY3V0aWxzL3BhcnNlcnMvcnN0L3N0YXRlcy5weSAgICAgIHwgIDQgKy0tCi0gZG9jdXRpbHMv cGFyc2Vycy9yc3QvdGFibGVwYXJzZXIucHkgfCAgMiArLQotIGRvY3V0aWxzL3N0YXRlbWFjaGlu ZS5weSAgICAgICAgICAgIHwgIDggKystLS0KLSBkb2N1dGlscy90cmFuc2Zvcm1zL19faW5pdF9f LnB5ICAgICB8ICAyICstCi0gZG9jdXRpbHMvdXRpbHMvX19pbml0X18ucHkgICAgICAgICAgfCAg MiArLQotIGRvY3V0aWxzL3V0aWxzL21hdGgvbGF0ZXgybWF0aG1sLnB5IHwgIDIgKy0KLSB0ZXN0 L0RvY3V0aWxzVGVzdFN1cHBvcnQucHkgICAgICAgICB8ICAyICstCi0gdGVzdC9hbGx0ZXN0cy5w eSAgICAgICAgICAgICAgICAgICAgfCAgMiArLQotIHRlc3QvdGVzdF9zdGF0ZW1hY2hpbmUucHkg ICAgICAgICAgIHwgIDIgKy0KLSB0b29scy9idWlsZGh0bWwucHkgICAgICAgICAgICAgICAgICB8 ICA0ICstLQotIHRvb2xzL2Rldi9jcmVhdGVfdW5pbWFwLnB5ICAgICAgICAgIHwgIDQgKy0tCi0g dG9vbHMvZGV2L3VuaWNvZGUycnN0c3Vicy5weSAgICAgICAgfCAgMiArLQotIDE2IGZpbGVzIGNo YW5nZWQsIDYxIGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEv ZG9jdXRpbHMvX19pbml0X18ucHkgYi9kb2N1dGlscy9fX2luaXRfXy5weQotaW5kZXggZjA2ZTgx MC4uN2Q2YTY3OSAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL19faW5pdF9fLnB5Ci0rKysgYi9kb2N1 dGlscy9fX2luaXRfXy5weQotQEAgLTkyLDcgKzkyLDcgQEAgY2xhc3MgQXBwbGljYXRpb25FcnJv cihTdGFuZGFyZEVycm9yKTogcGFzcwotIGNsYXNzIERhdGFFcnJvcihBcHBsaWNhdGlvbkVycm9y KTogcGFzcwotIAotIAotLWNsYXNzIFNldHRpbmdzU3BlYzoKLStjbGFzcyBTZXR0aW5nc1NwZWMo b2JqZWN0KToKLSAKLSAgICAgIiIiCi0gICAgIFJ1bnRpbWUgc2V0dGluZyBzcGVjaWZpY2F0aW9u IGJhc2UgY2xhc3MuCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvY29yZS5weSBiL2RvY3V0aWxzL2Nv cmUucHkKLWluZGV4IDNkYzEyZTguLjJlZWJiZjIgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9jb3Jl LnB5Ci0rKysgYi9kb2N1dGlscy9jb3JlLnB5Ci1AQCAtMjMsNyArMjMsNyBAQCBmcm9tIGRvY3V0 aWxzLnRyYW5zZm9ybXMgaW1wb3J0IFRyYW5zZm9ybWVyCi0gZnJvbSBkb2N1dGlscy51dGlscy5l cnJvcl9yZXBvcnRpbmcgaW1wb3J0IEVycm9yT3V0cHV0LCBFcnJvclN0cmluZwotIGltcG9ydCBk b2N1dGlscy5yZWFkZXJzLmRvY3RyZWUKLSAKLS1jbGFzcyBQdWJsaXNoZXI6Ci0rY2xhc3MgUHVi bGlzaGVyKG9iamVjdCk6Ci0gCi0gICAgICIiIgotICAgICBBIGZhY2FkZSBlbmNhcHN1bGF0aW5n IHRoZSBoaWdoLWxldmVsIGxvZ2ljIG9mIGEgRG9jdXRpbHMgc3lzdGVtLgotZGlmZiAtLWdpdCBh L2RvY3V0aWxzL25vZGVzLnB5IGIvZG9jdXRpbHMvbm9kZXMucHkKLWluZGV4IGQ4MzA2MTYuLjk1 NzMyMDggMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9ub2Rlcy5weQotKysrIGIvZG9jdXRpbHMvbm9k ZXMucHkKLUBAIC0xMTEyLDEyICsxMTEyLDEyIEBAIGNsYXNzIEZpeGVkVGV4dEVsZW1lbnQoVGV4 dEVsZW1lbnQpOgotICMgIE1peGlucwotICMgPT09PT09PT0KLSAKLS1jbGFzcyBSZXNvbHZhYmxl OgotK2NsYXNzIFJlc29sdmFibGUob2JqZWN0KToKLSAKLSAgICAgcmVzb2x2ZWQgPSAwCi0gCi0g Ci0tY2xhc3MgQmFja0xpbmthYmxlOgotK2NsYXNzIEJhY2tMaW5rYWJsZShvYmplY3QpOgotIAot ICAgICBkZWYgYWRkX2JhY2tyZWYoc2VsZiwgcmVmaWQpOgotICAgICAgICAgc2VsZlsnYmFja3Jl ZnMnXS5hcHBlbmQocmVmaWQpCi1AQCAtMTEyNywzOSArMTEyNyw2MyBAQCBjbGFzcyBCYWNrTGlu a2FibGU6Ci0gIyAgRWxlbWVudCBDYXRlZ29yaWVzCi0gIyA9PT09PT09PT09PT09PT09PT09PQot IAotLWNsYXNzIFJvb3Q6IHBhc3MKLStjbGFzcyBSb290KG9iamVjdCk6Ci0rICAgIHBhc3MKLSsK LSsKLStjbGFzcyBUaXR1bGFyKG9iamVjdCk6Ci0rICAgIHBhc3MKLSAKLS1jbGFzcyBUaXR1bGFy OiBwYXNzCi0gCi0tY2xhc3MgUHJlQmlibGlvZ3JhcGhpYzoKLStjbGFzcyBQcmVCaWJsaW9ncmFw aGljKG9iamVjdCk6Ci0gICAgICIiIkNhdGVnb3J5IG9mIE5vZGUgd2hpY2ggbWF5IG9jY3VyIGJl Zm9yZSBCaWJsaW9ncmFwaGljIE5vZGVzLiIiIgotIAotLWNsYXNzIEJpYmxpb2dyYXBoaWM6IHBh c3MKLSAKLS1jbGFzcyBEZWNvcmF0aXZlKFByZUJpYmxpb2dyYXBoaWMpOiBwYXNzCi0rY2xhc3Mg QmlibGlvZ3JhcGhpYyhvYmplY3QpOgotKyAgICBwYXNzCi0rCi0rCi0rY2xhc3MgRGVjb3JhdGl2 ZShQcmVCaWJsaW9ncmFwaGljKToKLSsgICAgcGFzcwotKwotKwotK2NsYXNzIFN0cnVjdHVyYWwo b2JqZWN0KToKLSsgICAgcGFzcwotKwotKwotK2NsYXNzIEJvZHkob2JqZWN0KToKLSsgICAgcGFz cwotIAotLWNsYXNzIFN0cnVjdHVyYWw6IHBhc3MKLSAKLS1jbGFzcyBCb2R5OiBwYXNzCi0rY2xh c3MgR2VuZXJhbChCb2R5KToKLSsgICAgcGFzcwotIAotLWNsYXNzIEdlbmVyYWwoQm9keSk6IHBh c3MKLSAKLSBjbGFzcyBTZXF1ZW50aWFsKEJvZHkpOgotICAgICAiIiJMaXN0LWxpa2UgZWxlbWVu dHMuIiIiCi0gCi0rCi0gY2xhc3MgQWRtb25pdGlvbihCb2R5KTogcGFzcwotIAotKwotIGNsYXNz IFNwZWNpYWwoQm9keSk6Ci0gICAgICIiIlNwZWNpYWwgaW50ZXJuYWwgYm9keSBlbGVtZW50cy4i IiIKLSAKLSsKLSBjbGFzcyBJbnZpc2libGUoUHJlQmlibGlvZ3JhcGhpYyk6Ci0gICAgICIiIklu dGVybmFsIGVsZW1lbnRzIHRoYXQgZG9uJ3QgYXBwZWFyIGluIG91dHB1dC4iIiIKLSAKLS1jbGFz cyBQYXJ0OiBwYXNzCi0gCi0tY2xhc3MgSW5saW5lOiBwYXNzCi0rY2xhc3MgUGFydChvYmplY3Qp OgotKyAgICBwYXNzCi0rCi0rCi0rY2xhc3MgSW5saW5lKG9iamVjdCk6Ci0rICAgIHBhc3MKLSsK LSAKLS1jbGFzcyBSZWZlcmVudGlhbChSZXNvbHZhYmxlKTogcGFzcwotK2NsYXNzIFJlZmVyZW50 aWFsKFJlc29sdmFibGUpOgotKyAgICBwYXNzCi0gCi0gCi0gY2xhc3MgVGFyZ2V0YWJsZShSZXNv bHZhYmxlKToKLUBAIC0xMTcxLDcgKzExOTUsNyBAQCBjbGFzcyBUYXJnZXRhYmxlKFJlc29sdmFi bGUpOgotICAgICBSZXF1aXJlZCBmb3IgTW9pbk1vaW4vcmVTVCBjb21wYXRpYmlsaXR5LiIiIgot IAotIAotLWNsYXNzIExhYmVsZWQ6Ci0rY2xhc3MgTGFiZWxlZChvYmplY3QpOgotICAgICAiIiJD b250YWlucyBhIGBsYWJlbGAgYXMgaXRzIGZpcnN0IGVsZW1lbnQuIiIiCi0gCi0gCi1AQCAtMTg1 Niw3ICsxODgwLDcgQEAgbm9kZV9jbGFzc19uYW1lcyA9ICIiIgotICIiIkEgbGlzdCBvZiBuYW1l cyBvZiBhbGwgY29uY3JldGUgTm9kZSBzdWJjbGFzc2VzLiIiIgotIAotIAotLWNsYXNzIE5vZGVW aXNpdG9yOgotK2NsYXNzIE5vZGVWaXNpdG9yKG9iamVjdCk6Ci0gCi0gICAgICIiIgotICAgICAi VmlzaXRvciIgcGF0dGVybiBbR29GOTVdXyBhYnN0cmFjdCBzdXBlcmNsYXNzIGltcGxlbWVudGF0 aW9uIGZvcgotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3BhcnNlcnMvcnN0L3JvbGVzLnB5IGIvZG9j dXRpbHMvcGFyc2Vycy9yc3Qvcm9sZXMucHkKLWluZGV4IDkxOGU1NjQuLmFhNDJjODAgMTAwNjQ0 Ci0tLS0gYS9kb2N1dGlscy9wYXJzZXJzL3JzdC9yb2xlcy5weQotKysrIGIvZG9jdXRpbHMvcGFy c2Vycy9yc3Qvcm9sZXMucHkKLUBAIC0xODEsNyArMTgxLDcgQEAgZGVmIHJlZ2lzdGVyX2dlbmVy aWNfcm9sZShjYW5vbmljYWxfbmFtZSwgbm9kZV9jbGFzcyk6Ci0gICAgIHJlZ2lzdGVyX2Nhbm9u aWNhbF9yb2xlKGNhbm9uaWNhbF9uYW1lLCByb2xlKQotIAotIAotLWNsYXNzIEdlbmVyaWNSb2xl OgotK2NsYXNzIEdlbmVyaWNSb2xlKG9iamVjdCk6Ci0gCi0gICAgICIiIgotICAgICBHZW5lcmlj IGludGVycHJldGVkIHRleHQgcm9sZSwgd2hlcmUgdGhlIGludGVycHJldGVkIHRleHQgaXMgc2lt cGx5Ci1AQCAtMTk4LDcgKzE5OCw3IEBAIGNsYXNzIEdlbmVyaWNSb2xlOgotICAgICAgICAgcmV0 dXJuIFtzZWxmLm5vZGVfY2xhc3MocmF3dGV4dCwgdXRpbHMudW5lc2NhcGUodGV4dCksICoqb3B0 aW9ucyldLCBbXQotIAotIAotLWNsYXNzIEN1c3RvbVJvbGU6Ci0rY2xhc3MgQ3VzdG9tUm9sZShv YmplY3QpOgotIAotICAgICAiIiIKLSAgICAgV3JhcHBlciBmb3IgY3VzdG9tIGludGVycHJldGVk IHRleHQgcm9sZXMuCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvcGFyc2Vycy9yc3Qvc3RhdGVzLnB5 IGIvZG9jdXRpbHMvcGFyc2Vycy9yc3Qvc3RhdGVzLnB5Ci1pbmRleCBkOGNhOWYwLi4yZWNlM2Iz IDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvcGFyc2Vycy9yc3Qvc3RhdGVzLnB5Ci0rKysgYi9kb2N1 dGlscy9wYXJzZXJzL3JzdC9zdGF0ZXMucHkKLUBAIC0xMjYsNyArMTI2LDcgQEAgY2xhc3MgUGFy c2VyRXJyb3IoQXBwbGljYXRpb25FcnJvcik6IHBhc3MKLSBjbGFzcyBNYXJrdXBNaXNtYXRjaChF eGNlcHRpb24pOiBwYXNzCi0gCi0gCi0tY2xhc3MgU3RydWN0OgotK2NsYXNzIFN0cnVjdChvYmpl Y3QpOgotIAotICAgICAiIiJTdG9yZXMgZGF0YSBhdHRyaWJ1dGVzIGZvciBkb3R0ZWQtYXR0cmli dXRlIGFjY2Vzcy4iIiIKLSAKLUBAIC00NTksNyArNDU5LDcgQEAgZGVmIGJ1aWxkX3JlZ2V4cChk ZWZpbml0aW9uLCBjb21waWxlPVRydWUpOgotICAgICAgICAgcmV0dXJuIHJlZ2V4cAotIAotIAot LWNsYXNzIElubGluZXI6Ci0rY2xhc3MgSW5saW5lcihvYmplY3QpOgotIAotICAgICAiIiIKLSAg ICAgUGFyc2UgaW5saW5lIG1hcmt1cDsgY2FsbCB0aGUgYHBhcnNlKClgIG1ldGhvZC4KLWRpZmYg LS1naXQgYS9kb2N1dGlscy9wYXJzZXJzL3JzdC90YWJsZXBhcnNlci5weSBiL2RvY3V0aWxzL3Bh cnNlcnMvcnN0L3RhYmxlcGFyc2VyLnB5Ci1pbmRleCBlMTkzODhiLi40NWFmNzJmIDEwMDY0NAot LS0tIGEvZG9jdXRpbHMvcGFyc2Vycy9yc3QvdGFibGVwYXJzZXIucHkKLSsrKyBiL2RvY3V0aWxz L3BhcnNlcnMvcnN0L3RhYmxlcGFyc2VyLnB5Ci1AQCAtNDAsNyArNDAsNyBAQCBjbGFzcyBUYWJs ZU1hcmt1cEVycm9yKERhdGFFcnJvcik6Ci0gICAgICAgICAgICAgRGF0YUVycm9yLl9faW5pdF9f KHNlbGYsICphcmdzKQotIAotIAotLWNsYXNzIFRhYmxlUGFyc2VyOgotK2NsYXNzIFRhYmxlUGFy c2VyKG9iamVjdCk6Ci0gCi0gICAgICIiIgotICAgICBBYnN0cmFjdCBzdXBlcmNsYXNzIGZvciB0 aGUgY29tbW9uIHBhcnRzIG9mIHRoZSBzeW50YXgtc3BlY2lmaWMgcGFyc2Vycy4KLWRpZmYgLS1n aXQgYS9kb2N1dGlscy9zdGF0ZW1hY2hpbmUucHkgYi9kb2N1dGlscy9zdGF0ZW1hY2hpbmUucHkK LWluZGV4IDZiYjNjNmIuLjIxODg5ODIgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9zdGF0ZW1hY2hp bmUucHkKLSsrKyBiL2RvY3V0aWxzL3N0YXRlbWFjaGluZS5weQotQEAgLTExNCw3ICsxMTQsNyBA QCBmcm9tIGRvY3V0aWxzIGltcG9ydCB1dGlscwotIGZyb20gZG9jdXRpbHMudXRpbHMuZXJyb3Jf cmVwb3J0aW5nIGltcG9ydCBFcnJvck91dHB1dAotIAotIAotLWNsYXNzIFN0YXRlTWFjaGluZToK LStjbGFzcyBTdGF0ZU1hY2hpbmUob2JqZWN0KToKLSAKLSAgICAgIiIiCi0gICAgIEEgZmluaXRl IHN0YXRlIG1hY2hpbmUgZm9yIHRleHQgZmlsdGVycyB1c2luZyByZWd1bGFyIGV4cHJlc3Npb25z LgotQEAgLTUxOCw3ICs1MTgsNyBAQCBjbGFzcyBTdGF0ZU1hY2hpbmU6Ci0gICAgICAgICAgICAg b2JzZXJ2ZXIoKmluZm8pCi0gCi0gCi0tY2xhc3MgU3RhdGU6Ci0rY2xhc3MgU3RhdGUob2JqZWN0 KToKLSAKLSAgICAgIiIiCi0gICAgIFN0YXRlIHN1cGVyY2xhc3MuIENvbnRhaW5zIGEgbGlzdCBv ZiB0cmFuc2l0aW9ucywgYW5kIHRyYW5zaXRpb24gbWV0aG9kcy4KLUBAIC0xMDM0LDcgKzEwMzQs NyBAQCBjbGFzcyBTdGF0ZVdTKFN0YXRlKToKLSAgICAgICAgIHJldHVybiBjb250ZXh0LCBuZXh0 X3N0YXRlLCByZXN1bHRzCi0gCi0gCi0tY2xhc3MgX1NlYXJjaE92ZXJyaWRlOgotK2NsYXNzIF9T ZWFyY2hPdmVycmlkZShvYmplY3QpOgotIAotICAgICAiIiIKLSAgICAgTWl4LWluIGNsYXNzIHRv IG92ZXJyaWRlIGBTdGF0ZU1hY2hpbmVgIHJlZ3VsYXIgZXhwcmVzc2lvbiBiZWhhdmlvci4KLUBA IC0xMDY3LDcgKzEwNjcsNyBAQCBjbGFzcyBTZWFyY2hTdGF0ZU1hY2hpbmVXUyhfU2VhcmNoT3Zl cnJpZGUsIFN0YXRlTWFjaGluZVdTKToKLSAgICAgcGFzcwotIAotIAotLWNsYXNzIFZpZXdMaXN0 OgotK2NsYXNzIFZpZXdMaXN0KG9iamVjdCk6Ci0gCi0gICAgICIiIgotICAgICBMaXN0IHdpdGgg ZXh0ZW5kZWQgZnVuY3Rpb25hbGl0eTogc2xpY2VzIG9mIFZpZXdMaXN0IG9iamVjdHMgYXJlIGNo aWxkCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvdHJhbnNmb3Jtcy9fX2luaXRfXy5weSBiL2RvY3V0 aWxzL3RyYW5zZm9ybXMvX19pbml0X18ucHkKLWluZGV4IGIwMDljNWYuLjkyNzExMzMgMTAwNjQ0 Ci0tLS0gYS9kb2N1dGlscy90cmFuc2Zvcm1zL19faW5pdF9fLnB5Ci0rKysgYi9kb2N1dGlscy90 cmFuc2Zvcm1zL19faW5pdF9fLnB5Ci1AQCAtMzAsNyArMzAsNyBAQCBmcm9tIGRvY3V0aWxzIGlt cG9ydCBsYW5ndWFnZXMsIEFwcGxpY2F0aW9uRXJyb3IsIFRyYW5zZm9ybVNwZWMKLSBjbGFzcyBU cmFuc2Zvcm1FcnJvcihBcHBsaWNhdGlvbkVycm9yKTogcGFzcwotIAotIAotLWNsYXNzIFRyYW5z Zm9ybToKLStjbGFzcyBUcmFuc2Zvcm0ob2JqZWN0KToKLSAKLSAgICAgIiIiCi0gICAgIERvY3V0 aWxzIHRyYW5zZm9ybSBjb21wb25lbnQgYWJzdHJhY3QgYmFzZSBjbGFzcy4KLWRpZmYgLS1naXQg YS9kb2N1dGlscy91dGlscy9fX2luaXRfXy5weSBiL2RvY3V0aWxzL3V0aWxzL19faW5pdF9fLnB5 Ci1pbmRleCBiZTFjMzdlLi43NzYwZjM4IDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvdXRpbHMvX19p bml0X18ucHkKLSsrKyBiL2RvY3V0aWxzL3V0aWxzL19faW5pdF9fLnB5Ci1AQCAtMzMsNyArMzMs NyBAQCBjbGFzcyBTeXN0ZW1NZXNzYWdlKEFwcGxpY2F0aW9uRXJyb3IpOgotIGNsYXNzIFN5c3Rl bU1lc3NhZ2VQcm9wYWdhdGlvbihBcHBsaWNhdGlvbkVycm9yKTogcGFzcwotIAotIAotLWNsYXNz IFJlcG9ydGVyOgotK2NsYXNzIFJlcG9ydGVyKG9iamVjdCk6Ci0gCi0gICAgICIiIgotICAgICBJ bmZvL3dhcm5pbmcvZXJyb3IgcmVwb3J0ZXIgYW5kIGBgc3lzdGVtX21lc3NhZ2VgYCBlbGVtZW50 IGdlbmVyYXRvci4KLWRpZmYgLS1naXQgYS9kb2N1dGlscy91dGlscy9tYXRoL2xhdGV4Mm1hdGht bC5weSBiL2RvY3V0aWxzL3V0aWxzL21hdGgvbGF0ZXgybWF0aG1sLnB5Ci1pbmRleCBiY2I0ODc3 Li4xYTAxYmM4IDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvdXRpbHMvbWF0aC9sYXRleDJtYXRobWwu cHkKLSsrKyBiL2RvY3V0aWxzL3V0aWxzL21hdGgvbGF0ZXgybWF0aG1sLnB5Ci1AQCAtMTU1LDcg KzE1NSw3IEBAIG5lZ2F0YWJsZXMgPSB7Jz0nOiB1J1x1MjI2MCcsCi0gICAgICAgICAgICAgICBy J1xlcXVpdic6IHUnXHUyMjYyJ30KLSAKLSAjIExhVGVYIHRvIE1hdGhNTCB0cmFuc2xhdGlvbiBz dHVmZjoKLS1jbGFzcyBtYXRoOgotK2NsYXNzIG1hdGgob2JqZWN0KToKLSAgICAgIiIiQmFzZSBj bGFzcyBmb3IgTWF0aE1MIGVsZW1lbnRzLiIiIgotIAotICAgICBuY2hpbGRyZW4gPSAxMDAwMDAw Ci1kaWZmIC0tZ2l0IGEvdGVzdC9Eb2N1dGlsc1Rlc3RTdXBwb3J0LnB5IGIvdGVzdC9Eb2N1dGls c1Rlc3RTdXBwb3J0LnB5Ci1pbmRleCA1NGJhMWM0Li5mNzk4NmY1IDEwMDY0NAotLS0tIGEvdGVz dC9Eb2N1dGlsc1Rlc3RTdXBwb3J0LnB5Ci0rKysgYi90ZXN0L0RvY3V0aWxzVGVzdFN1cHBvcnQu cHkKLUBAIC05Miw3ICs5Miw3IEBAIGV4Y2VwdDoKLSBTdHJpbmdMaXN0Ll9fcmVwcl9fID0gU3Ry aW5nTGlzdC5fX3N0cl9fCi0gCi0gCi0tY2xhc3MgRGV2TnVsbDoKLStjbGFzcyBEZXZOdWxsKG9i amVjdCk6Ci0gCi0gICAgICIiIk91dHB1dCBzaW5rLiIiIgotIAotZGlmZiAtLWdpdCBhL3Rlc3Qv YWxsdGVzdHMucHkgYi90ZXN0L2FsbHRlc3RzLnB5Ci1pbmRleCA0YTliNTBmLi45MzczMTI0IDEw MDc1NQotLS0tIGEvdGVzdC9hbGx0ZXN0cy5weQotKysrIGIvdGVzdC9hbGx0ZXN0cy5weQotQEAg LTI0LDcgKzI0LDcgQEAgaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQgICAgICAgICAgICAgICMg bXVzdCBiZSBpbXBvcnRlZCBiZWZvcmUgZG9jdXRpbHMKLSBpbXBvcnQgZG9jdXRpbHMKLSAKLSAK LS1jbGFzcyBUZWU6Ci0rY2xhc3MgVGVlKG9iamVjdCk6Ci0gCi0gICAgICIiIldyaXRlIHRvIGEg ZmlsZSBhbmQgYSBzdHJlYW0gKGRlZmF1bHQ6IHN0ZG91dCkgc2ltdWx0YW5lb3VzbHkuIiIiCi0g Ci1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3N0YXRlbWFjaGluZS5weSBiL3Rlc3QvdGVzdF9zdGF0 ZW1hY2hpbmUucHkKLWluZGV4IDBlNDEzMzcuLjA3YzU2MWUgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rl c3Rfc3RhdGVtYWNoaW5lLnB5Ci0rKysgYi90ZXN0L3Rlc3Rfc3RhdGVtYWNoaW5lLnB5Ci1AQCAt MjAzLDcgKzIwMyw3IEBAIGNsYXNzIFNNV1NUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAg ICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc20ucnVuKHRlc3R0ZXh0KSwgZXhwZWN0ZWQpCi0g Ci0gCi0tY2xhc3MgRW1wdHlDbGFzczoKLStjbGFzcyBFbXB0eUNsYXNzKG9iamVjdCk6Ci0gICAg IHBhc3MKLSAKLSAKLWRpZmYgLS1naXQgYS90b29scy9idWlsZGh0bWwucHkgYi90b29scy9idWls ZGh0bWwucHkKLWluZGV4IDMzMzNlYWIuLmFhNGM3NTkgMTAwNzU1Ci0tLS0gYS90b29scy9idWls ZGh0bWwucHkKLSsrKyBiL3Rvb2xzL2J1aWxkaHRtbC5weQotQEAgLTEwNyw3ICsxMDcsNyBAQCBj bGFzcyBPcHRpb25QYXJzZXIoZnJvbnRlbmQuT3B0aW9uUGFyc2VyKToKLSAgICAgICAgIHJldHVy biBzb3VyY2UsIGRlc3RpbmF0aW9uCi0gCi0gCi0tY2xhc3MgU3RydWN0OgotK2NsYXNzIFN0cnVj dChvYmplY3QpOgotIAotICAgICAiIiJTdG9yZXMgZGF0YSBhdHRyaWJ1dGVzIGZvciBkb3R0ZWQt YXR0cmlidXRlIGFjY2Vzcy4iIiIKLSAKLUBAIC0xMTUsNyArMTE1LDcgQEAgY2xhc3MgU3RydWN0 OgotICAgICAgICAgc2VsZi5fX2RpY3RfXy51cGRhdGUoa2V5d29yZGFyZ3MpCi0gCi0gCi0tY2xh c3MgQnVpbGRlcjoKLStjbGFzcyBCdWlsZGVyKG9iamVjdCk6Ci0gCi0gICAgIGRlZiBfX2luaXRf XyhzZWxmKToKLSAgICAgICAgIHNlbGYucHVibGlzaGVycyA9IHsKLWRpZmYgLS1naXQgYS90b29s cy9kZXYvY3JlYXRlX3VuaW1hcC5weSBiL3Rvb2xzL2Rldi9jcmVhdGVfdW5pbWFwLnB5Ci1pbmRl eCAwZTQ1NDU4Li5hMWQ5MmFjIDEwMDc1NQotLS0tIGEvdG9vbHMvZGV2L2NyZWF0ZV91bmltYXAu cHkKLSsrKyBiL3Rvb2xzL2Rldi9jcmVhdGVfdW5pbWFwLnB5Ci1AQCAtMjgsOCArMjgsOCBAQCBk ZWYgdyhzKToKLSB0ZXh0X21hcCA9IHt9Ci0gbWF0aF9tYXAgPSB7fQotIAotLWNsYXNzIFZpc2l0 b3I6Ci0tICAgIAotKwotK2NsYXNzIFZpc2l0b3Iob2JqZWN0KToKLSAgICAgIiIiTm9kZSB2aXNp dG9yIGZvciBjb250ZW50cyBvZiB1bmljb2RlLnhtbC4iIiIKLSAKLSAgICAgZGVmIHZpc2l0X2No YXJhY3RlcihzZWxmLCBub2RlKToKLWRpZmYgLS1naXQgYS90b29scy9kZXYvdW5pY29kZTJyc3Rz dWJzLnB5IGIvdG9vbHMvZGV2L3VuaWNvZGUycnN0c3Vicy5weQotaW5kZXggYjc0MTg5NC4uZDcx OTAwNSAxMDA3NTUKLS0tLSBhL3Rvb2xzL2Rldi91bmljb2RlMnJzdHN1YnMucHkKLSsrKyBiL3Rv b2xzL2Rldi91bmljb2RlMnJzdHN1YnMucHkKLUBAIC01OSw3ICs1OSw3IEBAIGRlZiBwcm9jZXNz KGluZmlsZSk6Ci0gICAgIGdyb3VwZXIud3JpdGVfc2V0cygpCi0gCi0gCi0tY2xhc3MgQ2hhcmFj dGVyRW50aXR5U2V0RXh0cmFjdG9yOgotK2NsYXNzIENoYXJhY3RlckVudGl0eVNldEV4dHJhY3Rv cihvYmplY3QpOgotIAotICAgICAiIiIKLSAgICAgRXh0cmFjdHMgY2hhcmFjdGVyIGVudGl0eSBp bmZvcm1hdGlvbiBmcm9tIHVuaWNvZGUueG1sIGZpbGUsIGdyb3VwcyBpdCBieQotLS0gCi0yLjI0 LjAuMzc1LmdlYjVhZTY4ZDQxCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxz L3BhdGNoZXMvMDAwMi1weTMtU3dpdGNoLXRvLXByaW50LWZ1bmN0aW9ucy5wYXRjaCBiL3NyY3Br Z3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAwMi1weTMtU3dpdGNoLXRvLXByaW50LWZ1bmN0 aW9ucy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTZjNzM1MjM0MzMuLjAw MDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAwMi1weTMt U3dpdGNoLXRvLXByaW50LWZ1bmN0aW9ucy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE1MTcg KzAsMCBAQAotRnJvbSBlZGUyNTY5MGI0YjcxZmJhYjAyNTA2ZjNhMDkxOWU5MTAxYjdiNzNiIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3RlcGhlbiBGaW51Y2FuZSA8c3RlcGhlbkB0 aGF0Lmd1cnU+Ci1EYXRlOiBUdWUsIDE5IE5vdiAyMDE5IDIzOjQ3OjU1ICswNzAwCi1TdWJqZWN0 OiBbUEFUQ0ggMDIvMjZdIHB5MzogU3dpdGNoIHRvIHByaW50IGZ1bmN0aW9ucwotCi1SZW1vdmUg YWxsIHVzZXMgb2YgcHJpbnQgYXMgYSBzdGF0ZW1lbnQuIFRoaXMgaW5jbHVkZXMgY29tbWVudHMs IG1hbnkgb2YKLXdoaWNoIGFyZSBzaW1wbHkgcmVtb3ZlZCBhcyBub2lzZSAodGhleSdyZSBpbiB2 ZXJzaW9uIGNvbnRyb2wgYW5kIGNhbiBiZQotcmUtYWRkZWQgbGF0ZXIsIGlmIG5lY2Vzc2FyeSku Ci0KLVNpZ25lZC1vZmYtYnk6IFN0ZXBoZW4gRmludWNhbmUgPHN0ZXBoZW5AdGhhdC5ndXJ1Pgot Ci1naXQtc3ZuLWlkOiBodHRwOi8vc3ZuLmNvZGUuc2YubmV0L3AvZG9jdXRpbHMvY29kZS90cnVu a0A4MzQ2IDkyOTU0M2Y2LWU0ZjItMDMxMC05OGE2LWJhM2JkM2RkMWQwNAotU2lnbmVkLW9mZi1i eTogRG9hbiBUcmFuIENvbmcgRGFuaCA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+Ci0tLS0KLSBkb2N1 dGlscy9jb3JlLnB5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAzNyArKysrKysrLS0t LS0tCi0gZG9jdXRpbHMvaW8ucHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDcg KystCi0gZG9jdXRpbHMvbm9kZXMucHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMg Ky0KLSBkb2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL2JvZHkucHkgICAgICAgfCAgMyAr LQotIGRvY3V0aWxzL3BhcnNlcnMvcnN0L3JvbGVzLnB5ICAgICAgICAgICAgICAgICB8ICAxIC0K LSBkb2N1dGlscy9wYXJzZXJzL3JzdC9zdGF0ZXMucHkgICAgICAgICAgICAgICAgfCAgNCArLQot IGRvY3V0aWxzL3N0YXRlbWFjaGluZS5weSAgICAgICAgICAgICAgICAgICAgICB8IDU1ICsrKysr KysrKy0tLS0tLS0tLS0KLSBkb2N1dGlscy90cmFuc2Zvcm1zL3VuaXZlcnNhbC5weSAgICAgICAg ICAgICAgfCAgMyArLQotIGRvY3V0aWxzL3V0aWxzL19faW5pdF9fLnB5ICAgICAgICAgICAgICAg ICAgICB8ICAxIC0KLSBkb2N1dGlscy91dGlscy9tYXRoL2xhdGV4Mm1hdGhtbC5weSAgICAgICAg ICAgfCAgMSAtCi0gZG9jdXRpbHMvdXRpbHMvbWF0aC90ZXgybWF0aG1sX2V4dGVybi5weSAgICAg IHwgIDcgKystCi0gZG9jdXRpbHMvdXRpbHMvc21hcnRxdW90ZXMucHkgICAgICAgICAgICAgICAg IHwgMTkgKysrKy0tLQotIGRvY3V0aWxzL3dyaXRlcnMvX2h0bWxfYmFzZS5weSAgICAgICAgICAg ICAgICB8ICA5IC0tLQotIGRvY3V0aWxzL3dyaXRlcnMvbGF0ZXgyZS9fX2luaXRfXy5weSAgICAg ICAgICB8ICA5ICsrLQotIGluc3RhbGwucHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICA1ICstCi0gc2V0dXAucHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgMTEgKystLQotIHRlc3QvRG9jdXRpbHNUZXN0U3VwcG9ydC5weSAgICAgICAgICAgICAg ICAgICB8IDI3ICsrKystLS0tLQotIHRlc3QvYWxsdGVzdHMucHkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8IDMyICsrKysrLS0tLS0tCi0gdGVzdC9wYWNrYWdlX3VuaXR0ZXN0LnB5ICAg ICAgICAgICAgICAgICAgICAgIHwgMTEgKystLQotIHRlc3QvdGVzdF9lcnJvcl9yZXBvcnRpbmcu cHkgICAgICAgICAgICAgICAgICB8ICA3ICsrLQotIHRlc3QvdGVzdF9mdW5jdGlvbmFsLnB5ICAg ICAgICAgICAgICAgICAgICAgICB8ICA1ICstCi0gdGVzdC90ZXN0X2lvLnB5ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDQgKy0KLSAuLi4vdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVz L3Rlc3RfY29kZS5weSAgICAgfCAxNCArKystLQotIC4uLi90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9j b2RlX2xvbmcucHkgICAgICAgICB8ICA3ICsrLQotIC4uLi90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9j b2RlX25vbmUucHkgICAgICAgICB8ICA0ICstCi0gLi4uL3Rlc3RfcnN0L3Rlc3RfZG9jdGVzdF9i bG9ja3MucHkgICAgICAgICAgIHwgMTIgKystLQotIHRlc3QvdGVzdF9zZXR0aW5ncy5weSAgICAg ICAgICAgICAgICAgICAgICAgICB8ICA5ICstLQotIHRlc3QvdGVzdF9zdGF0ZW1hY2hpbmUucHkg ICAgICAgICAgICAgICAgICAgICB8IDIzICsrKystLS0tCi0gdGVzdC90ZXN0X3RyYW5zZm9ybXMv dGVzdF9zbWFydHF1b3Rlcy5weSAgICAgIHwgMTAgKystLQotIC4uLi90ZXN0X3N0cmlwX2VsZW1l bnRzX3dpdGhfY2xhc3MucHkgICAgICAgICB8ICAyICstCi0gdGVzdC90ZXN0X3ZpZXdsaXN0LnB5 ICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTQgLS0tLS0KLSB0b29scy9kZXYvY3JlYXRlX3Vu aW1hcC5weSAgICAgICAgICAgICAgICAgICAgfCAgMSArCi0gdG9vbHMvZGV2L2dlbmVyYXRlX3B1 bmN0dWF0aW9uX2NoYXJzLnB5ICAgICAgIHwgNDggKy0tLS0tLS0tLS0tLS0tLQotIHRvb2xzL2Rl di9wcm9maWxlX2RvY3V0aWxzLnB5ICAgICAgICAgICAgICAgICB8ICAxICsKLSB0b29scy9kZXYv dW5pY29kZTJyc3RzdWJzLnB5ICAgICAgICAgICAgICAgICAgfCAgMSArCi0gdG9vbHMvcXVpY2t0 ZXN0LnB5ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwotIHRvb2xzL3JzdDJvZHRf cHJlcHN0eWxlcy5weSAgICAgICAgICAgICAgICAgICB8IDI4ICsrKysrLS0tLS0KLSAzNyBmaWxl cyBjaGFuZ2VkLCAxOTUgaW5zZXJ0aW9ucygrKSwgMjQxIGRlbGV0aW9ucygtKQotCi1kaWZmIC0t Z2l0IGEvZG9jdXRpbHMvY29yZS5weSBiL2RvY3V0aWxzL2NvcmUucHkKLWluZGV4IDJlZWJiZjIu LjZhOTkwMjAgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9jb3JlLnB5Ci0rKysgYi9kb2N1dGlscy9j b3JlLnB5Ci1AQCAtMTEsNiArMTEsNyBAQCBjdXN0b20gY29tcG9uZW50IG9iamVjdHMgZmlyc3Qs IGFuZCBwYXNzICp0aGVtKiB0bwotIAotIC4uIF9UaGUgRG9jdXRpbHMgUHVibGlzaGVyOiBodHRw Oi8vZG9jdXRpbHMuc2YubmV0L2RvY3MvYXBpL3B1Ymxpc2hlci5odG1sCi0gIiIiCi0rZnJvbSBf X2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgotIAotIF9fZG9jZm9ybWF0X18gPSAncmVT dHJ1Y3R1cmVkVGV4dCcKLSAKLUBAIC0yNDMsMjQgKzI0NCwyNCBAQCBjbGFzcyBQdWJsaXNoZXIo b2JqZWN0KToKLSAgICAgICAgIGlmIG5vdCBzZWxmLmRvY3VtZW50OgotICAgICAgICAgICAgIHJl dHVybgotICAgICAgICAgaWYgc2VsZi5zZXR0aW5ncy5kdW1wX3NldHRpbmdzOgotLSAgICAgICAg ICAgIHByaW50ID4+c2VsZi5fc3RkZXJyLCAnXG46OjogUnVudGltZSBzZXR0aW5nczonCi0tICAg ICAgICAgICAgcHJpbnQgPj5zZWxmLl9zdGRlcnIsIHBwcmludC5wZm9ybWF0KHNlbGYuc2V0dGlu Z3MuX19kaWN0X18pCi0rICAgICAgICAgICAgcHJpbnQoJ1xuOjo6IFJ1bnRpbWUgc2V0dGluZ3M6 JywgZmlsZT1zZWxmLl9zdGRlcnIpCi0rICAgICAgICAgICAgcHJpbnQocHByaW50LnBmb3JtYXQo c2VsZi5zZXR0aW5ncy5fX2RpY3RfXyksIGZpbGU9c2VsZi5fc3RkZXJyKQotICAgICAgICAgaWYg c2VsZi5zZXR0aW5ncy5kdW1wX2ludGVybmFsczoKLS0gICAgICAgICAgICBwcmludCA+PnNlbGYu X3N0ZGVyciwgJ1xuOjo6IERvY3VtZW50IGludGVybmFsczonCi0tICAgICAgICAgICAgcHJpbnQg Pj5zZWxmLl9zdGRlcnIsIHBwcmludC5wZm9ybWF0KHNlbGYuZG9jdW1lbnQuX19kaWN0X18pCi0r ICAgICAgICAgICAgcHJpbnQoJ1xuOjo6IERvY3VtZW50IGludGVybmFsczonLCBmaWxlPXNlbGYu X3N0ZGVycikKLSsgICAgICAgICAgICBwcmludChwcHJpbnQucGZvcm1hdChzZWxmLmRvY3VtZW50 Ll9fZGljdF9fKSwgZmlsZT1zZWxmLl9zdGRlcnIpCi0gICAgICAgICBpZiBzZWxmLnNldHRpbmdz LmR1bXBfdHJhbnNmb3JtczoKLS0gICAgICAgICAgICBwcmludCA+PnNlbGYuX3N0ZGVyciwgJ1xu Ojo6IFRyYW5zZm9ybXMgYXBwbGllZDonCi0tICAgICAgICAgICAgcHJpbnQgPj5zZWxmLl9zdGRl cnIsICgnIChwcmlvcml0eSwgdHJhbnNmb3JtIGNsYXNzLCAnCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ3BlbmRpbmcgbm9kZSBkZXRhaWxzLCBrZXl3b3JkIGFyZ3MpJykKLS0g ICAgICAgICAgICBwcmludCA+PnNlbGYuX3N0ZGVyciwgcHByaW50LnBmb3JtYXQoCi0rICAgICAg ICAgICAgcHJpbnQoJ1xuOjo6IFRyYW5zZm9ybXMgYXBwbGllZDonLCBmaWxlPXNlbGYuX3N0ZGVy cikKLSsgICAgICAgICAgICBwcmludCgnIChwcmlvcml0eSwgdHJhbnNmb3JtIGNsYXNzLCBwZW5k aW5nIG5vZGUgZGV0YWlscywgJwotKyAgICAgICAgICAgICAgICAgICdrZXl3b3JkIGFyZ3MpJywg ZmlsZT1zZWxmLl9zdGRlcnIpCi0rICAgICAgICAgICAgcHJpbnQocHByaW50LnBmb3JtYXQoCi0g ICAgICAgICAgICAgICAgIFsocHJpb3JpdHksICclcy4lcycgJSAoeGNsYXNzLl9fbW9kdWxlX18s IHhjbGFzcy5fX25hbWVfXyksCi0gICAgICAgICAgICAgICAgICAgcGVuZGluZyBhbmQgcGVuZGlu Zy5kZXRhaWxzLCBrd2FyZ3MpCi0gICAgICAgICAgICAgICAgICBmb3IgcHJpb3JpdHksIHhjbGFz cywgcGVuZGluZywga3dhcmdzCi0tICAgICAgICAgICAgICAgICBpbiBzZWxmLmRvY3VtZW50LnRy YW5zZm9ybWVyLmFwcGxpZWRdKQotKyAgICAgICAgICAgICAgICAgaW4gc2VsZi5kb2N1bWVudC50 cmFuc2Zvcm1lci5hcHBsaWVkXSksIGZpbGU9c2VsZi5fc3RkZXJyKQotICAgICAgICAgaWYgc2Vs Zi5zZXR0aW5ncy5kdW1wX3BzZXVkb194bWw6Ci0tICAgICAgICAgICAgcHJpbnQgPj5zZWxmLl9z dGRlcnIsICdcbjo6OiBQc2V1ZG8tWE1MOicKLS0gICAgICAgICAgICBwcmludCA+PnNlbGYuX3N0 ZGVyciwgc2VsZi5kb2N1bWVudC5wZm9ybWF0KCkuZW5jb2RlKAotLSAgICAgICAgICAgICAgICAn cmF3X3VuaWNvZGVfZXNjYXBlJykKLSsgICAgICAgICAgICBwcmludCgnXG46OjogUHNldWRvLVhN TDonLCBmaWxlPXNlbGYuX3N0ZGVycikKLSsgICAgICAgICAgICBwcmludChzZWxmLmRvY3VtZW50 LnBmb3JtYXQoKS5lbmNvZGUoCi0rICAgICAgICAgICAgICAgICdyYXdfdW5pY29kZV9lc2NhcGUn KSwgZmlsZT1zZWxmLl9zdGRlcnIpCi0gCi0gICAgIGRlZiByZXBvcnRfRXhjZXB0aW9uKHNlbGYs IGVycm9yKToKLSAgICAgICAgIGlmIGlzaW5zdGFuY2UoZXJyb3IsIHV0aWxzLlN5c3RlbU1lc3Nh Z2UpOgotQEAgLTI3NSw4ICsyNzYsOCBAQCBjbGFzcyBQdWJsaXNoZXIob2JqZWN0KToKLSAgICAg ICAgICAgICAgICAgdSdVbmFibGUgdG8gb3BlbiBkZXN0aW5hdGlvbiBmaWxlIGZvciB3cml0aW5n OlxuJwotICAgICAgICAgICAgICAgICB1JyAgJXNcbicgJSBFcnJvclN0cmluZyhlcnJvcikpCi0g ICAgICAgICBlbHNlOgotLSAgICAgICAgICAgIHByaW50ID4+c2VsZi5fc3RkZXJyLCB1JyVzJyAl IEVycm9yU3RyaW5nKGVycm9yKQotLSAgICAgICAgICAgIHByaW50ID4+c2VsZi5fc3RkZXJyLCAo IiIiXAotKyAgICAgICAgICAgIHByaW50KHUnJXMnICUgRXJyb3JTdHJpbmcoZXJyb3IpLCBmaWxl PXNlbGYuX3N0ZGVycikKLSsgICAgICAgICAgICBwcmludCgoIiIiXAotIEV4aXRpbmcgZHVlIHRv IGVycm9yLiAgVXNlICItLXRyYWNlYmFjayIgdG8gZGlhZ25vc2UuCi0gUGxlYXNlIHJlcG9ydCBl cnJvcnMgdG8gPGRvY3V0aWxzLXVzZXJzQGxpc3RzLnNmLm5ldD4uCi0gSW5jbHVkZSAiLS10cmFj ZWJhY2siIG91dHB1dCwgRG9jdXRpbHMgdmVyc2lvbiAoJXMlcyksCi1AQCAtMjg0LDEyICsyODUs MTIgQEAgUHl0aG9uIHZlcnNpb24gKCVzKSwgeW91ciBPUyB0eXBlICYgdmVyc2lvbiwgYW5kIHRo ZQotIGNvbW1hbmQgbGluZSB1c2VkLiIiIiAlIChfX3ZlcnNpb25fXywKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgZG9jdXRpbHMuX192ZXJzaW9uX2RldGFpbHNfXyBhbmQKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgJyBbJXNdJyVkb2N1dGlscy5fX3ZlcnNpb25fZGV0YWlsc19fIG9yICcn LAotLSAgICAgICAgICAgICAgICAgICAgICAgICBzeXMudmVyc2lvbi5zcGxpdCgpWzBdKSkKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgc3lzLnZlcnNpb24uc3BsaXQoKVswXSkpLCBmaWxlPXNl bGYuX3N0ZGVycikKLSAKLSAgICAgZGVmIHJlcG9ydF9TeXN0ZW1NZXNzYWdlKHNlbGYsIGVycm9y KToKLS0gICAgICAgIHByaW50ID4+c2VsZi5fc3RkZXJyLCAoJ0V4aXRpbmcgZHVlIHRvIGxldmVs LSVzICglcykgc3lzdGVtIG1lc3NhZ2UuJwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JSAoZXJyb3IubGV2ZWwsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5S ZXBvcnRlci5sZXZlbHNbZXJyb3IubGV2ZWxdKSkKLSsgICAgICAgIHByaW50KCdFeGl0aW5nIGR1 ZSB0byBsZXZlbC0lcyAoJXMpIHN5c3RlbSBtZXNzYWdlLicgJSAoCi0rICAgICAgICAgICAgZXJy b3IubGV2ZWwsIHV0aWxzLlJlcG9ydGVyLmxldmVsc1tlcnJvci5sZXZlbF0pLAotKyAgICAgICAg ICAgICAgZmlsZT1zZWxmLl9zdGRlcnIpCi0gCi0gICAgIGRlZiByZXBvcnRfVW5pY29kZUVycm9y KHNlbGYsIGVycm9yKToKLSAgICAgICAgIGRhdGEgPSBlcnJvci5vYmplY3RbZXJyb3Iuc3RhcnQ6 ZXJyb3IuZW5kXQotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL2lvLnB5IGIvZG9jdXRpbHMvaW8ucHkK LWluZGV4IDc5Y2IwMTIuLjNiMGY5M2UgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9pby5weQotKysr IGIvZG9jdXRpbHMvaW8ucHkKLUBAIC02LDYgKzYsNyBAQAotIEkvTyBjbGFzc2VzIHByb3ZpZGUg YSB1bmlmb3JtIEFQSSBmb3IgbG93LWxldmVsIGlucHV0IGFuZCBvdXRwdXQuICBTdWJjbGFzc2Vz Ci0gZXhpc3QgZm9yIGEgdmFyaWV0eSBvZiBpbnB1dC9vdXRwdXQgbWVjaGFuaXNtcy4KLSAiIiIK LStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCi0gCi0gX19kb2Nmb3JtYXRf XyA9ICdyZVN0cnVjdHVyZWRUZXh0JwotIAotQEAgLTM0Myw5ICszNDQsOSBAQCBjbGFzcyBGaWxl T3V0cHV0KE91dHB1dCk6Ci0gICAgICAgICBlbGlmICgjIGRlc3RpbmF0aW9uIGlzIGZpbGUtdHlw ZSBvYmplY3QgLT4gY2hlY2sgbW9kZToKLSAgICAgICAgICAgICAgIG1vZGUgYW5kIGhhc2F0dHIo c2VsZi5kZXN0aW5hdGlvbiwgJ21vZGUnKQotICAgICAgICAgICAgICAgYW5kIG1vZGUgIT0gc2Vs Zi5kZXN0aW5hdGlvbi5tb2RlKToKLS0gICAgICAgICAgICAgICAgcHJpbnQgPj5zZWxmLl9zdGRl cnIsICgnV2FybmluZzogRGVzdGluYXRpb24gbW9kZSAiJXMiICcKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ2RpZmZlcnMgZnJvbSBzcGVjaWZpZWQgbW9kZSAiJXMiJyAlCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLmRlc3RpbmF0aW9uLm1vZGUsIG1vZGUp KQotKyAgICAgICAgICAgICAgICBwcmludCgnV2FybmluZzogRGVzdGluYXRpb24gbW9kZSAiJXMi IGRpZmZlcnMgZnJvbSBzcGVjaWZpZWQgJwotKyAgICAgICAgICAgICAgICAgICAgICAnbW9kZSAi JXMiJyAlIChzZWxmLmRlc3RpbmF0aW9uLm1vZGUsIG1vZGUpLAotKyAgICAgICAgICAgICAgICAg ICAgICBmaWxlPXNlbGYuX3N0ZGVycikKLSAgICAgICAgIGlmIG5vdCBkZXN0aW5hdGlvbl9wYXRo OgotICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgc2VsZi5kZXN0aW5hdGlvbl9w YXRoID0gc2VsZi5kZXN0aW5hdGlvbi5uYW1lCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvbm9kZXMu cHkgYi9kb2N1dGlscy9ub2Rlcy5weQotaW5kZXggOTU3MzIwOC4uOGE1YjdiYiAxMDA2NDQKLS0t LSBhL2RvY3V0aWxzL25vZGVzLnB5Ci0rKysgYi9kb2N1dGlscy9ub2Rlcy5weQotQEAgLTE5LDYg KzE5LDcgQEAgaGllcmFyY2h5LgotIAotIC4uIF9EVEQ6IGh0dHA6Ly9kb2N1dGlscy5zb3VyY2Vm b3JnZS5uZXQvZG9jcy9yZWYvZG9jdXRpbHMuZHRkCi0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGlt cG9ydCBwcmludF9mdW5jdGlvbgotIAotIF9fZG9jZm9ybWF0X18gPSAncmVTdHJ1Y3R1cmVkVGV4 dCcKLSAKLUBAIC0xNzI0LDcgKzE3MjUsNyBAQCBjbGFzcyBzeXN0ZW1fbWVzc2FnZShTcGVjaWFs LCBCYWNrTGlua2FibGUsIFByZUJpYmxpb2dyYXBoaWMsIEVsZW1lbnQpOgotICAgICAgICAgdHJ5 OgotICAgICAgICAgICAgIEVsZW1lbnQuX19pbml0X18oc2VsZiwgcmF3c291cmNlLCAqY2hpbGRy ZW4sICoqYXR0cmlidXRlcykKLSAgICAgICAgIGV4Y2VwdDoKLS0gICAgICAgICAgICBwcmludCAn c3lzdGVtX21lc3NhZ2U6IGNoaWxkcmVuPSVyJyAlIChjaGlsZHJlbiwpCi0rICAgICAgICAgICAg cHJpbnQoJ3N5c3RlbV9tZXNzYWdlOiBjaGlsZHJlbj0lcicgJSAoY2hpbGRyZW4sKSkKLSAgICAg ICAgICAgICByYWlzZQotIAotICAgICBkZWYgYXN0ZXh0KHNlbGYpOgotZGlmZiAtLWdpdCBhL2Rv Y3V0aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvYm9keS5weSBiL2RvY3V0aWxzL3BhcnNlcnMv cnN0L2RpcmVjdGl2ZXMvYm9keS5weQotaW5kZXggYzhiZjE3Mi4uYjYwYzNhZCAxMDA2NDQKLS0t LSBhL2RvY3V0aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvYm9keS5weQotKysrIGIvZG9jdXRp bHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy9ib2R5LnB5Ci1AQCAtMTEsMTMgKzExLDEzIEBAIFNl ZSBgZG9jdXRpbHMucGFyc2Vycy5yc3QuZGlyZWN0aXZlc2AgZm9yIEFQSSBkZXRhaWxzLgotIF9f ZG9jZm9ybWF0X18gPSAncmVTdHJ1Y3R1cmVkVGV4dCcKLSAKLSAKLS1pbXBvcnQgc3lzCi0gZnJv bSBkb2N1dGlscyBpbXBvcnQgbm9kZXMKLSBmcm9tIGRvY3V0aWxzLnBhcnNlcnMucnN0IGltcG9y dCBEaXJlY3RpdmUKLSBmcm9tIGRvY3V0aWxzLnBhcnNlcnMucnN0IGltcG9ydCBkaXJlY3RpdmVz Ci0gZnJvbSBkb2N1dGlscy5wYXJzZXJzLnJzdC5yb2xlcyBpbXBvcnQgc2V0X2NsYXNzZXMKLSBm cm9tIGRvY3V0aWxzLnV0aWxzLmNvZGVfYW5hbHl6ZXIgaW1wb3J0IExleGVyLCBMZXhlckVycm9y LCBOdW1iZXJMaW5lcwotIAotKwotIGNsYXNzIEJhc2VQc2V1ZG9TZWN0aW9uKERpcmVjdGl2ZSk6 Ci0gCi0gICAgIHJlcXVpcmVkX2FyZ3VtZW50cyA9IDEKLUBAIC0xNjcsNyArMTY3LDYgQEAgY2xh c3MgQ29kZUJsb2NrKERpcmVjdGl2ZSk6Ci0gICAgICAgICAgICAgbm9kZS5hdHRyaWJ1dGVzWydz b3VyY2UnXSA9IHNlbGYub3B0aW9uc1snc291cmNlJ10KLSAgICAgICAgICMgYW5hbHl6ZSBjb250 ZW50IGFuZCBhZGQgbm9kZXMgZm9yIGV2ZXJ5IHRva2VuCi0gICAgICAgICBmb3IgY2xhc3Nlcywg dmFsdWUgaW4gdG9rZW5zOgotLSAgICAgICAgICAgICMgcHJpbnQgKGNsYXNzZXMsIHZhbHVlKQot ICAgICAgICAgICAgIGlmIGNsYXNzZXM6Ci0gICAgICAgICAgICAgICAgIG5vZGUgKz0gbm9kZXMu aW5saW5lKHZhbHVlLCB2YWx1ZSwgY2xhc3Nlcz1jbGFzc2VzKQotICAgICAgICAgICAgIGVsc2U6 Ci1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvcGFyc2Vycy9yc3Qvcm9sZXMucHkgYi9kb2N1dGlscy9w YXJzZXJzL3JzdC9yb2xlcy5weQotaW5kZXggYWE0MmM4MC4uYmY3ODZiNyAxMDA2NDQKLS0tLSBh L2RvY3V0aWxzL3BhcnNlcnMvcnN0L3JvbGVzLnB5Ci0rKysgYi9kb2N1dGlscy9wYXJzZXJzL3Jz dC9yb2xlcy5weQotQEAgLTM0Miw3ICszNDIsNiBAQCBkZWYgY29kZV9yb2xlKHJvbGUsIHJhd3Rl eHQsIHRleHQsIGxpbmVubywgaW5saW5lciwgb3B0aW9ucz17fSwgY29udGVudD1bXSk6Ci0gCi0g ICAgICMgYW5hbHlzZSBjb250ZW50IGFuZCBhZGQgbm9kZXMgZm9yIGV2ZXJ5IHRva2VuCi0gICAg IGZvciBjbGFzc2VzLCB2YWx1ZSBpbiB0b2tlbnM6Ci0tICAgICAgICAjIHByaW50IChjbGFzc2Vz LCB2YWx1ZSkKLSAgICAgICAgIGlmIGNsYXNzZXM6Ci0gICAgICAgICAgICAgbm9kZSArPSBub2Rl cy5pbmxpbmUodmFsdWUsIHZhbHVlLCBjbGFzc2VzPWNsYXNzZXMpCi0gICAgICAgICBlbHNlOgot ZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3BhcnNlcnMvcnN0L3N0YXRlcy5weSBiL2RvY3V0aWxzL3Bh cnNlcnMvcnN0L3N0YXRlcy5weQotaW5kZXggMmVjZTNiMy4uYTI5NzBjOCAxMDA2NDQKLS0tLSBh L2RvY3V0aWxzL3BhcnNlcnMvcnN0L3N0YXRlcy5weQotKysrIGIvZG9jdXRpbHMvcGFyc2Vycy9y c3Qvc3RhdGVzLnB5Ci1AQCAtMjc1OCw4ICsyNzU4LDggQEAgY2xhc3MgVGV4dChSU1RTdGF0ZSk6 Ci0gICAgICAgICAgICAgc3JjLCBzcmNsaW5lID0gc2VsZi5zdGF0ZV9tYWNoaW5lLmdldF9zb3Vy Y2VfYW5kX2xpbmUoKQotICAgICAgICAgICAgICMgVE9ETzogd2h5IGlzIGFic19saW5lX251bWJl cigpID09IHNyY2xpbmUrMQotICAgICAgICAgICAgICMgaWYgdGhlIGVycm9yIGlzIGluIGEgdGFi bGUgKHRyeSB3aXRoIHRlc3RfdGFibGVzLnB5KT8KLS0gICAgICAgICAgICAjIHByaW50ICJnZXRf c291cmNlX2FuZF9saW5lIiwgc3JjbGluZQotLSAgICAgICAgICAgICMgcHJpbnQgImFic19saW5l X251bWJlciIsIHNlbGYuc3RhdGVfbWFjaGluZS5hYnNfbGluZV9udW1iZXIoKQotKyAgICAgICAg ICAgICMgcHJpbnQoImdldF9zb3VyY2VfYW5kX2xpbmUiLCBzcmNsaW5lKQotKyAgICAgICAgICAg ICMgcHJpbnQoImFic19saW5lX251bWJlciIsIHNlbGYuc3RhdGVfbWFjaGluZS5hYnNfbGluZV9u dW1iZXIoKSkKLSAgICAgICAgICAgICBtc2cgPSBzZWxmLnJlcG9ydGVyLnNldmVyZSgnVW5leHBl Y3RlZCBzZWN0aW9uIHRpdGxlLicsCi0gICAgICAgICAgICAgICAgIG5vZGVzLmxpdGVyYWxfYmxv Y2soYmxvY2t0ZXh0LCBibG9ja3RleHQpLAotICAgICAgICAgICAgICAgICBzb3VyY2U9c3JjLCBs aW5lPXNyY2xpbmUpCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvc3RhdGVtYWNoaW5lLnB5IGIvZG9j dXRpbHMvc3RhdGVtYWNoaW5lLnB5Ci1pbmRleCAyMTg4OTgyLi42NzE0YTA0IDEwMDY0NAotLS0t IGEvZG9jdXRpbHMvc3RhdGVtYWNoaW5lLnB5Ci0rKysgYi9kb2N1dGlscy9zdGF0ZW1hY2hpbmUu cHkKLUBAIC0xMDMsNiArMTAzLDcgQEAgSG93IFRvIFVzZSBUaGlzIE1vZHVsZQotIAotICAgICAg ICBzbS51bmxpbmsoKQotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rp b24KLSAKLSBfX2RvY2Zvcm1hdF9fID0gJ3Jlc3RydWN0dXJlZHRleHQnCi0gCi1AQCAtMjEzLDE1 ICsyMTQsMTUgQEAgY2xhc3MgU3RhdGVNYWNoaW5lKG9iamVjdCk6Ci0gICAgICAgICBzZWxmLmxp bmVfb2Zmc2V0ID0gLTEKLSAgICAgICAgIHNlbGYuY3VycmVudF9zdGF0ZSA9IGluaXRpYWxfc3Rh dGUgb3Igc2VsZi5pbml0aWFsX3N0YXRlCi0gICAgICAgICBpZiBzZWxmLmRlYnVnOgotLSAgICAg ICAgICAgIHByaW50ID4+c2VsZi5fc3RkZXJyLCAoCi0rICAgICAgICAgICAgcHJpbnQoKAotICAg ICAgICAgICAgICAgICB1J1xuU3RhdGVNYWNoaW5lLnJ1bjogaW5wdXRfbGluZXMgKGxpbmVfb2Zm c2V0PSVzKTpcbnwgJXMnCi0tICAgICAgICAgICAgICAgICUgKHNlbGYubGluZV9vZmZzZXQsIHUn XG58ICcuam9pbihzZWxmLmlucHV0X2xpbmVzKSkpCi0rICAgICAgICAgICAgICAgICUgKHNlbGYu bGluZV9vZmZzZXQsIHUnXG58ICcuam9pbihzZWxmLmlucHV0X2xpbmVzKSkpLCBmaWxlPXNlbGYu X3N0ZGVycikKLSAgICAgICAgIHRyYW5zaXRpb25zID0gTm9uZQotICAgICAgICAgcmVzdWx0cyA9 IFtdCi0gICAgICAgICBzdGF0ZSA9IHNlbGYuZ2V0X3N0YXRlKCkKLSAgICAgICAgIHRyeToKLSAg ICAgICAgICAgICBpZiBzZWxmLmRlYnVnOgotLSAgICAgICAgICAgICAgICBwcmludCA+PnNlbGYu X3N0ZGVyciwgJ1xuU3RhdGVNYWNoaW5lLnJ1bjogYm9mIHRyYW5zaXRpb24nCi0rICAgICAgICAg ICAgICAgIHByaW50KCdcblN0YXRlTWFjaGluZS5ydW46IGJvZiB0cmFuc2l0aW9uJywgZmlsZT1z ZWxmLl9zdGRlcnIpCi0gICAgICAgICAgICAgY29udGV4dCwgcmVzdWx0ID0gc3RhdGUuYm9mKGNv bnRleHQpCi0gICAgICAgICAgICAgcmVzdWx0cy5leHRlbmQocmVzdWx0KQotICAgICAgICAgICAg IHdoaWxlIFRydWU6Ci1AQCAtMjMxLDE3ICsyMzIsMTcgQEAgY2xhc3MgU3RhdGVNYWNoaW5lKG9i amVjdCk6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5kZWJ1ZzoKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc291cmNlLCBvZmZzZXQgPSBzZWxmLmlucHV0X2xpbmVzLmlu Zm8oCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmxpbmVfb2Zmc2V0KQot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludCA+PnNlbGYuX3N0ZGVyciwgKAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludCgoCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1J1xuU3RhdGVNYWNoaW5lLnJ1bjogbGluZSAoc291cmNlPSVyLCAnCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1J29mZnNldD0lcik6XG58ICVzJwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAoc291cmNlLCBvZmZzZXQsIHNlbGYubGluZSkp Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIChzb3VyY2UsIG9mZnNldCwgc2Vs Zi5saW5lKSksIGZpbGU9c2VsZi5fc3RkZXJyKQotICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnRleHQsIG5leHRfc3RhdGUsIHJlc3VsdCA9IHNlbGYuY2hlY2tfbGluZSgKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29udGV4dCwgc3RhdGUsIHRyYW5zaXRpb25zKQotICAgICAgICAg ICAgICAgICAgICAgZXhjZXB0IEVPRkVycm9yOgotICAgICAgICAgICAgICAgICAgICAgICAgIGlm IHNlbGYuZGVidWc6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ID4+c2VsZi5f c3RkZXJyLCAoCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KCgKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICdcblN0YXRlTWFjaGluZS5ydW46ICVzLmVvZiB0cmFu c2l0aW9uJwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSBzdGF0ZS5fX2NsYXNz X18uX19uYW1lX18pCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIHN0YXRlLl9f Y2xhc3NfXy5fX25hbWVfXyksIGZpbGU9c2VsZi5fc3RkZXJyKQotICAgICAgICAgICAgICAgICAg ICAgICAgIHJlc3VsdCA9IHN0YXRlLmVvZihjb250ZXh0KQotICAgICAgICAgICAgICAgICAgICAg ICAgIHJlc3VsdHMuZXh0ZW5kKHJlc3VsdCkKLSAgICAgICAgICAgICAgICAgICAgICAgICBicmVh awotQEAgLTI1MSwxMCArMjUyLDEwIEBAIGNsYXNzIFN0YXRlTWFjaGluZShvYmplY3QpOgotICAg ICAgICAgICAgICAgICAgICAgc2VsZi5wcmV2aW91c19saW5lKCkgIyBiYWNrIHVwIGZvciBhbm90 aGVyIHRyeQotICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbnMgPSAoZXhjZXB0aW9uLmFy Z3NbMF0sKQotICAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5kZWJ1ZzoKLS0gICAgICAgICAg ICAgICAgICAgICAgICBwcmludCA+PnNlbGYuX3N0ZGVyciwgKAotKyAgICAgICAgICAgICAgICAg ICAgICAgIHByaW50KCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXG5TdGF0ZU1h Y2hpbmUucnVuOiBUcmFuc2l0aW9uQ29ycmVjdGlvbiB0byAnCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJ3N0YXRlICIlcyIsIHRyYW5zaXRpb24gJXMuJwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICUgKHN0YXRlLl9fY2xhc3NfXy5fX25hbWVfXywgdHJhbnNpdGlvbnNb MF0pKQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKHN0YXRlLl9fY2xhc3NfXy5f X25hbWVfXywgdHJhbnNpdGlvbnNbMF0pKSwgZmlsZT1zZWxmLl9zdGRlcnIpCi0gICAgICAgICAg ICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgICBleGNlcHQgU3RhdGVDb3JyZWN0 aW9uLCBleGNlcHRpb246Ci0gICAgICAgICAgICAgICAgICAgICBzZWxmLnByZXZpb3VzX2xpbmUo KSAjIGJhY2sgdXAgZm9yIGFub3RoZXIgdHJ5Ci1AQCAtMjY0LDEwICsyNjUsMTAgQEAgY2xhc3Mg U3RhdGVNYWNoaW5lKG9iamVjdCk6Ci0gICAgICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAg ICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb25zID0gKGV4Y2VwdGlvbi5hcmdzWzFdLCkKLSAg ICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuZGVidWc6Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgcHJpbnQgPj5zZWxmLl9zdGRlcnIsICgKLSsgICAgICAgICAgICAgICAgICAgICAgICBwcmlu dCgoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuU3RhdGVNYWNoaW5lLnJ1bjog U3RhdGVDb3JyZWN0aW9uIHRvIHN0YXRlICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnIiVzIiwgdHJhbnNpdGlvbiAlcy4nCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JSAobmV4dF9zdGF0ZSwgdHJhbnNpdGlvbnNbMF0pKQotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICUgKG5leHRfc3RhdGUsIHRyYW5zaXRpb25zWzBdKSksIGZpbGU9c2VsZi5fc3RkZXJy KQotICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlv bnMgPSBOb25lCi0gICAgICAgICAgICAgICAgIHN0YXRlID0gc2VsZi5nZXRfc3RhdGUobmV4dF9z dGF0ZSkKLUBAIC0yODgsMTEgKzI4OSwxMSBAQCBjbGFzcyBTdGF0ZU1hY2hpbmUob2JqZWN0KToK LSAgICAgICAgICIiIgotICAgICAgICAgaWYgbmV4dF9zdGF0ZToKLSAgICAgICAgICAgICBpZiBz ZWxmLmRlYnVnIGFuZCBuZXh0X3N0YXRlICE9IHNlbGYuY3VycmVudF9zdGF0ZToKLS0gICAgICAg ICAgICAgICAgcHJpbnQgPj5zZWxmLl9zdGRlcnIsICgKLSsgICAgICAgICAgICAgICAgcHJpbnQo KAotICAgICAgICAgICAgICAgICAgICAgJ1xuU3RhdGVNYWNoaW5lLmdldF9zdGF0ZTogQ2hhbmdp bmcgc3RhdGUgZnJvbSAnCi0gICAgICAgICAgICAgICAgICAgICAnIiVzIiB0byAiJXMiIChpbnB1 dCBsaW5lICVzKS4nCi0gICAgICAgICAgICAgICAgICAgICAlIChzZWxmLmN1cnJlbnRfc3RhdGUs IG5leHRfc3RhdGUsCi0tICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFic19saW5lX251bWJl cigpKSkKLSsgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYWJzX2xpbmVfbnVtYmVyKCkpKSwg ZmlsZT1zZWxmLl9zdGRlcnIpCi0gICAgICAgICAgICAgc2VsZi5jdXJyZW50X3N0YXRlID0gbmV4 dF9zdGF0ZQotICAgICAgICAgdHJ5OgotICAgICAgICAgICAgIHJldHVybiBzZWxmLnN0YXRlc1tz ZWxmLmN1cnJlbnRfc3RhdGVdCi1AQCAtMzgyLDE1ICszODMsMTEgQEAgY2xhc3MgU3RhdGVNYWNo aW5lKG9iamVjdCk6Ci0gICAgICAgICAgICAgIyBsaW5lIGlzIE5vbmUgaWYgaW5kZXggaXMgIkp1 c3QgcGFzdCB0aGUgZW5kIgotICAgICAgICAgICAgIHNyYywgc3JjbGluZSA9IHNlbGYuZ2V0X3Nv dXJjZV9hbmRfbGluZShvZmZzZXQgKyBzZWxmLmlucHV0X29mZnNldCkKLSAgICAgICAgICAgICBy ZXR1cm4gc3JjLCBzcmNsaW5lICsgMQotLSAgICAgICAgZXhjZXB0IChJbmRleEVycm9yKTogIyBg b2Zmc2V0YCBpcyBvZmYgdGhlIGxpc3QKLSsgICAgICAgIGV4Y2VwdCAoSW5kZXhFcnJvcik6ICAj IGBvZmZzZXRgIGlzIG9mZiB0aGUgbGlzdAotICAgICAgICAgICAgIHNyYywgc3JjbGluZSA9IE5v bmUsIE5vbmUKLSAgICAgICAgICAgICAjIHJhaXNlIEFzc2VydGlvbkVycm9yKCdjYW5ub3QgZmlu ZCBsaW5lICVkIGluICVzIGxpbmVzJyAlCi0gICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAg ICAgICAob2Zmc2V0LCBsZW4oc2VsZi5pbnB1dF9saW5lcykpKQotICAgICAgICAgICAgICMgICAg ICAgICAgICAgICAgICAgICAgIyBsaXN0KHNlbGYuaW5wdXRfbGluZXMubGluZXMoKSkpKQotLSAg ICAgICAgIyBhc3NlcnQgb2Zmc2V0ID09IHNyY29mZnNldCwgc3RyKHNlbGYuaW5wdXRfbGluZXMp Ci0tICAgICAgICAjIHByaW50ICJnZXRfc291cmNlX2FuZF9saW5lKCVzKToiICUgbGluZW5vLAot LSAgICAgICAgIyBwcmludCBvZmZzZXQgKyAxLCAnLT4nLCBzcmMsIHNyY2xpbmUKLS0gICAgICAg ICMgcHJpbnQgc2VsZi5pbnB1dF9saW5lcwotICAgICAgICAgcmV0dXJuIChzcmMsIHNyY2xpbmUp Ci0gCi0gICAgIGRlZiBpbnNlcnRfaW5wdXQoc2VsZiwgaW5wdXRfbGluZXMsIHNvdXJjZSk6Ci1A QCAtNDQ1LDI0ICs0NDIsMjQgQEAgY2xhc3MgU3RhdGVNYWNoaW5lKG9iamVjdCk6Ci0gICAgICAg ICAgICAgdHJhbnNpdGlvbnMgPSAgc3RhdGUudHJhbnNpdGlvbl9vcmRlcgotICAgICAgICAgc3Rh dGVfY29ycmVjdGlvbiA9IE5vbmUKLSAgICAgICAgIGlmIHNlbGYuZGVidWc6Ci0tICAgICAgICAg ICAgcHJpbnQgPj5zZWxmLl9zdGRlcnIsICgKLSsgICAgICAgICAgICBwcmludCgoCi0gICAgICAg ICAgICAgICAgICAgJ1xuU3RhdGVNYWNoaW5lLmNoZWNrX2xpbmU6IHN0YXRlPSIlcyIsIHRyYW5z aXRpb25zPSVyLicKLS0gICAgICAgICAgICAgICAgICAlIChzdGF0ZS5fX2NsYXNzX18uX19uYW1l X18sIHRyYW5zaXRpb25zKSkKLSsgICAgICAgICAgICAgICAgICAlIChzdGF0ZS5fX2NsYXNzX18u X19uYW1lX18sIHRyYW5zaXRpb25zKSksIGZpbGU9c2VsZi5fc3RkZXJyKQotICAgICAgICAgZm9y IG5hbWUgaW4gdHJhbnNpdGlvbnM6Ci0gICAgICAgICAgICAgcGF0dGVybiwgbWV0aG9kLCBuZXh0 X3N0YXRlID0gc3RhdGUudHJhbnNpdGlvbnNbbmFtZV0KLSAgICAgICAgICAgICBtYXRjaCA9IHBh dHRlcm4ubWF0Y2goc2VsZi5saW5lKQotICAgICAgICAgICAgIGlmIG1hdGNoOgotICAgICAgICAg ICAgICAgICBpZiBzZWxmLmRlYnVnOgotLSAgICAgICAgICAgICAgICAgICAgcHJpbnQgPj5zZWxm Ll9zdGRlcnIsICgKLSsgICAgICAgICAgICAgICAgICAgIHByaW50KCgKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICdcblN0YXRlTWFjaGluZS5jaGVja19saW5lOiBNYXRjaGVkIHRyYW5zaXRp b24gJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgJyIlcyIgaW4gc3RhdGUgIiVzIi4nCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAlIChuYW1lLCBzdGF0ZS5fX2NsYXNzX18uX19uYW1l X18pKQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgJSAobmFtZSwgc3RhdGUuX19jbGFzc19f Ll9fbmFtZV9fKSksIGZpbGU9c2VsZi5fc3RkZXJyKQotICAgICAgICAgICAgICAgICByZXR1cm4g bWV0aG9kKG1hdGNoLCBjb250ZXh0LCBuZXh0X3N0YXRlKQotICAgICAgICAgZWxzZToKLSAgICAg ICAgICAgICBpZiBzZWxmLmRlYnVnOgotLSAgICAgICAgICAgICAgICBwcmludCA+PnNlbGYuX3N0 ZGVyciwgKAotKyAgICAgICAgICAgICAgICBwcmludCgoCi0gICAgICAgICAgICAgICAgICAgICAg ICdcblN0YXRlTWFjaGluZS5jaGVja19saW5lOiBObyBtYXRjaCBpbiBzdGF0ZSAiJXMiLicKLS0g ICAgICAgICAgICAgICAgICAgICAgJSBzdGF0ZS5fX2NsYXNzX18uX19uYW1lX18pCi0rICAgICAg ICAgICAgICAgICAgICAgICUgc3RhdGUuX19jbGFzc19fLl9fbmFtZV9fKSwgZmlsZT1zZWxmLl9z dGRlcnIpCi0gICAgICAgICAgICAgcmV0dXJuIHN0YXRlLm5vX21hdGNoKGNvbnRleHQsIHRyYW5z aXRpb25zKQotIAotICAgICBkZWYgYWRkX3N0YXRlKHNlbGYsIHN0YXRlX2NsYXNzKToKLUBAIC00 OTQsMTAgKzQ5MSwxMCBAQCBjbGFzcyBTdGF0ZU1hY2hpbmUob2JqZWN0KToKLSAgICAgZGVmIGVy cm9yKHNlbGYpOgotICAgICAgICAgIiIiUmVwb3J0IGVycm9yIGRldGFpbHMuIiIiCi0gICAgICAg ICB0eXBlLCB2YWx1ZSwgbW9kdWxlLCBsaW5lLCBmdW5jdGlvbiA9IF9leGNlcHRpb25fZGF0YSgp Ci0tICAgICAgICBwcmludCA+PnNlbGYuX3N0ZGVyciwgdSclczogJXMnICUgKHR5cGUsIHZhbHVl KQotLSAgICAgICAgcHJpbnQgPj5zZWxmLl9zdGRlcnIsICdpbnB1dCBsaW5lICVzJyAlIChzZWxm LmFic19saW5lX251bWJlcigpKQotLSAgICAgICAgcHJpbnQgPj5zZWxmLl9zdGRlcnIsICh1J21v ZHVsZSAlcywgbGluZSAlcywgZnVuY3Rpb24gJXMnICUKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKG1vZHVsZSwgbGluZSwgZnVuY3Rpb24pKQotKyAgICAgICAgcHJpbnQodSclczog JXMnICUgKHR5cGUsIHZhbHVlKSwgZmlsZT1zZWxmLl9zdGRlcnIpCi0rICAgICAgICBwcmludCgn aW5wdXQgbGluZSAlcycgJSAoc2VsZi5hYnNfbGluZV9udW1iZXIoKSksIGZpbGU9c2VsZi5fc3Rk ZXJyKQotKyAgICAgICAgcHJpbnQoKHUnbW9kdWxlICVzLCBsaW5lICVzLCBmdW5jdGlvbiAlcycg JQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kdWxlLCBsaW5lLCBmdW5jdGlv bikpLCBmaWxlPXNlbGYuX3N0ZGVycikKLSAKLSAgICAgZGVmIGF0dGFjaF9vYnNlcnZlcihzZWxm LCBvYnNlcnZlcik6Ci0gICAgICAgICAiIiIKLUBAIC0xMzI5LDcgKzEzMjYsNyBAQCBjbGFzcyBW aWV3TGlzdChvYmplY3QpOgotICAgICBkZWYgcHByaW50KHNlbGYpOgotICAgICAgICAgIiIiUHJp bnQgdGhlIGxpc3QgaW4gYGdyZXBgIGZvcm1hdCAoYHNvdXJjZTpvZmZzZXQ6dmFsdWVgIGxpbmVz KSIiIgotICAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi54aXRlbXMoKToKLS0gICAgICAgICAgICBw cmludCAiJXM6JWQ6JXMiICUgbGluZQotKyAgICAgICAgICAgIHByaW50KCIlczolZDolcyIgJSBs aW5lKQotIAotIAotIGNsYXNzIFN0cmluZ0xpc3QoVmlld0xpc3QpOgotZGlmZiAtLWdpdCBhL2Rv Y3V0aWxzL3RyYW5zZm9ybXMvdW5pdmVyc2FsLnB5IGIvZG9jdXRpbHMvdHJhbnNmb3Jtcy91bml2 ZXJzYWwucHkKLWluZGV4IDNmOGRkYmMuLjQ3ZTEyNzYgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy90 cmFuc2Zvcm1zL3VuaXZlcnNhbC5weQotKysrIGIvZG9jdXRpbHMvdHJhbnNmb3Jtcy91bml2ZXJz YWwucHkKLUBAIC0xNywxMiArMTcsMTIgQEAgVHJhbnNmb3JtcyBuZWVkZWQgYnkgbW9zdCBvciBh bGwgZG9jdW1lbnRzOgotIF9fZG9jZm9ybWF0X18gPSAncmVTdHJ1Y3R1cmVkVGV4dCcKLSAKLSBp bXBvcnQgcmUKLS1pbXBvcnQgc3lzCi0gaW1wb3J0IHRpbWUKLSBmcm9tIGRvY3V0aWxzIGltcG9y dCBub2RlcywgdXRpbHMKLSBmcm9tIGRvY3V0aWxzLnRyYW5zZm9ybXMgaW1wb3J0IFRyYW5zZm9y bUVycm9yLCBUcmFuc2Zvcm0KLSBmcm9tIGRvY3V0aWxzLnV0aWxzIGltcG9ydCBzbWFydHF1b3Rl cwotIAotKwotIGNsYXNzIERlY29yYXRpb25zKFRyYW5zZm9ybSk6Ci0gCi0gICAgICIiIgotQEAg LTI1Nyw3ICsyNTcsNiBAQCBjbGFzcyBTbWFydFF1b3RlcyhUcmFuc2Zvcm0pOgotICAgICAgICAg ICAgIGFsdGVybmF0aXZlID0gc21hcnRfcXVvdGVzLnN0YXJ0c3dpdGgoJ2FsdCcpCi0gICAgICAg ICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICAgYWx0ZXJuYXRpdmUgPSBGYWxz ZQotLSAgICAgICAgIyBwcmludCByZXByKGFsdGVybmF0aXZlKQotIAotICAgICAgICAgZG9jdW1l bnRfbGFuZ3VhZ2UgPSBzZWxmLmRvY3VtZW50LnNldHRpbmdzLmxhbmd1YWdlX2NvZGUKLSAgICAg ICAgIGxjX3NtYXJ0cXVvdGVzID0gc2VsZi5kb2N1bWVudC5zZXR0aW5ncy5zbWFydHF1b3Rlc19s b2NhbGVzCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvdXRpbHMvX19pbml0X18ucHkgYi9kb2N1dGls cy91dGlscy9fX2luaXRfXy5weQotaW5kZXggNzc2MGYzOC4uNjkyMzM1YSAxMDA2NDQKLS0tLSBh L2RvY3V0aWxzL3V0aWxzL19faW5pdF9fLnB5Ci0rKysgYi9kb2N1dGlscy91dGlscy9fX2luaXRf Xy5weQotQEAgLTE3Myw3ICsxNzMsNiBAQCBjbGFzcyBSZXBvcnRlcihvYmplY3QpOgotICAgICAg ICAgaWYgbm90ICdzb3VyY2UnIGluIGF0dHJpYnV0ZXM6ICMgJ2xpbmUnIGlzIGFic29sdXRlIGxp bmUgbnVtYmVyCi0gICAgICAgICAgICAgdHJ5OiAjIGxvb2sgdXAgKHNvdXJjZSwgbGluZS1pbi1z b3VyY2UpCi0gICAgICAgICAgICAgICAgIHNvdXJjZSwgbGluZSA9IHNlbGYuZ2V0X3NvdXJjZV9h bmRfbGluZShhdHRyaWJ1dGVzLmdldCgnbGluZScpKQotLSAgICAgICAgICAgICAgICAjIHByaW50 ICJsb2NhdG9yIGxvb2t1cCIsIGt3YXJncy5nZXQoJ2xpbmUnKSwgIi0+Iiwgc291cmNlLCBsaW5l Ci0gICAgICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgICAgICBz b3VyY2UsIGxpbmUgPSBOb25lLCBOb25lCi0gICAgICAgICAgICAgaWYgc291cmNlIGlzIG5vdCBO b25lOgotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3V0aWxzL21hdGgvbGF0ZXgybWF0aG1sLnB5IGIv ZG9jdXRpbHMvdXRpbHMvbWF0aC9sYXRleDJtYXRobWwucHkKLWluZGV4IDFhMDFiYzguLjI1NWU5 NmYgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy91dGlscy9tYXRoL2xhdGV4Mm1hdGhtbC5weQotKysr IGIvZG9jdXRpbHMvdXRpbHMvbWF0aC9sYXRleDJtYXRobWwucHkKLUBAIC0zODQsNyArMzg0LDYg QEAgZGVmIHBhcnNlX2xhdGV4X21hdGgoc3RyaW5nLCBpbmxpbmU9VHJ1ZSk6Ci0gICAgICAgICAg ICAgYzIgPSBzdHJpbmdbMV0KLSAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgYzIgPSAnJwot LSMjICAgICAgICBwcmludCBuLCBzdHJpbmcsIGMsIGMyLCBub2RlLl9fY2xhc3NfXy5fX25hbWVf XwotICAgICAgICAgaWYgYyA9PSAnICc6Ci0gICAgICAgICAgICAgcGFzcwotICAgICAgICAgZWxp ZiBjID09ICdcXCc6Ci1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvdXRpbHMvbWF0aC90ZXgybWF0aG1s X2V4dGVybi5weSBiL2RvY3V0aWxzL3V0aWxzL21hdGgvdGV4Mm1hdGhtbF9leHRlcm4ucHkKLWlu ZGV4IGU0NjE4MzYuLjNlN2YxNTggMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy91dGlscy9tYXRoL3Rl eDJtYXRobWxfZXh0ZXJuLnB5Ci0rKysgYi9kb2N1dGlscy91dGlscy9tYXRoL3RleDJtYXRobWxf ZXh0ZXJuLnB5Ci1AQCAtMTUsNiArMTUsNyBAQAotICMgV3JhcHBlcnMgZm9yIFRlWC0+TWF0aE1M IGNvbnZlcnNpb24gYnkgZXh0ZXJuYWwgdG9vbHMKLSAjID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9y dCBwcmludF9mdW5jdGlvbgotIGltcG9ydCBzdWJwcm9jZXNzCi0gCi0gZG9jdW1lbnRfdGVtcGxh dGUgPSByIiIiXGRvY3VtZW50Y2xhc3N7YXJ0aWNsZX0KLUBAIC0xNDEsNiArMTQyLDYgQEAgZGVm IGJsYWh0ZXhtbChtYXRoX2NvZGUsIGlubGluZT1UcnVlLCByZXBvcnRlcj1Ob25lKToKLSAKLSBp ZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgotICAgICBleGFtcGxlID0gdXInXGZyYWN7XHBhcnRp YWwgXHNpbl4yKFxhbHBoYSl9e1xwYXJ0aWFsIFx2ZWMgcn0gXHZhcnBpIFwsIFx0ZXh0e0dyw7zD n2V9JwotLSAgICAjIHByaW50IGxhdGV4bWwoZXhhbXBsZSkuZW5jb2RlKCd1dGY4JykKLS0gICAg IyBwcmludCB0dG0oZXhhbXBsZSkjLmVuY29kZSgndXRmOCcpCi0tICAgIHByaW50IGJsYWh0ZXht bChleGFtcGxlKS5lbmNvZGUoJ3V0ZjgnKQotKyAgICAjIHByaW50KGxhdGV4bWwoZXhhbXBsZSku ZW5jb2RlKCd1dGY4JykpCi0rICAgICMgcHJpbnQodHRtKGV4YW1wbGUpKQotKyAgICBwcmludChi bGFodGV4bWwoZXhhbXBsZSkuZW5jb2RlKCd1dGY4JykpCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMv dXRpbHMvc21hcnRxdW90ZXMucHkgYi9kb2N1dGlscy91dGlscy9zbWFydHF1b3Rlcy5weQotaW5k ZXggZWJmMDI0MC4uMTQ4YTRjOSAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3V0aWxzL3NtYXJ0cXVv dGVzLnB5Ci0rKysgYi9kb2N1dGlscy91dGlscy9zbWFydHF1b3Rlcy5weQotQEAgLTMxNSw2ICsz MTUsNyBAQCBWZXJzaW9uIEhpc3RvcnkKLSAxLjVfMS4wOiBUdWUsIDA5IE1hciAyMDA0IDA4OjA4 OjM1IC0wNTAwCi0gICAgICAgICAtIEluaXRpYWwgcmVsZWFzZQotICIiIgotK2Zyb20gX19mdXR1 cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KLSAKLSBvcHRpb25zID0gciIiIgotIE9wdGlvbnMK LUBAIC05NjQsMTYgKzk2NSwxNiBAQCBpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgotICAgICBh cmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQotIAotICAgICBpZiBhcmdzLmRvYzoKLS0gICAgICAg IHByaW50IChfX2RvY19fKQotKyAgICAgICAgcHJpbnQoX19kb2NfXykKLSAgICAgZWxpZiBhcmdz LmFjdGlvbmhlbHA6Ci0tICAgICAgICBwcmludCBvcHRpb25zCi0rICAgICAgICBwcmludChvcHRp b25zKQotICAgICBlbGlmIGFyZ3Muc3R5bGVoZWxwOgotLSAgICAgICAgcHJpbnQKLS0gICAgICAg IHByaW50ICJBdmFpbGFibGUgc3R5bGVzIChwcmltYXJ5IG9wZW4vY2xvc2UsIHNlY29uZGFyeSBv cGVuL2Nsb3NlKSIKLS0gICAgICAgIHByaW50ICJsYW5ndWFnZSB0YWcgICBxdW90ZXMiCi0tICAg ICAgICBwcmludCAiPT09PT09PT09PT09ICAgPT09PT09IgotKyAgICAgICAgcHJpbnQoKQotKyAg ICAgICAgcHJpbnQoIkF2YWlsYWJsZSBzdHlsZXMgKHByaW1hcnkgb3Blbi9jbG9zZSwgc2Vjb25k YXJ5IG9wZW4vY2xvc2UpIikKLSsgICAgICAgIHByaW50KCJsYW5ndWFnZSB0YWcgICBxdW90ZXMi KQotKyAgICAgICAgcHJpbnQoIj09PT09PT09PT09PSAgID09PT09PSIpCi0gICAgICAgICBmb3Ig a2V5IGluIHNvcnRlZChzbWFydGNoYXJzLnF1b3Rlcy5rZXlzKCkpOgotLSAgICAgICAgICAgIHBy aW50ICIlLTE0cyAlcyIgJSAoa2V5LCBzbWFydGNoYXJzLnF1b3Rlc1trZXldKQotKyAgICAgICAg ICAgIHByaW50KCIlLTE0cyAlcyIgJSAoa2V5LCBzbWFydGNoYXJzLnF1b3Rlc1trZXldKSkKLSAg ICAgZWxpZiBhcmdzLnRlc3Q6Ci0gICAgICAgICAjIFVuaXQgdGVzdCBvdXRwdXQgZ29lcyB0byBz dGRlcnIuCi0gICAgICAgICBpbXBvcnQgdW5pdHRlc3QKLUBAIC0xMDA2LDUgKzEwMDcsNSBAQCBp ZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgotICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg ICAgICAgIGFyZ3MubGFuZ3VhZ2UgKz0gJy14LWFsdHF1b3QnCi0gICAgICAgICB0ZXh0ID0gc3lz LnN0ZGluLnJlYWQoKS5kZWNvZGUoYXJncy5lbmNvZGluZykKLS0gICAgICAgIHByaW50IHNtYXJ0 eVBhbnRzKHRleHQsIGF0dHI9YXJncy5hY3Rpb24sCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICBsYW5ndWFnZT1hcmdzLmxhbmd1YWdlKS5lbmNvZGUoYXJncy5lbmNvZGluZykKLSsgICAgICAg IHByaW50KHNtYXJ0eVBhbnRzKHRleHQsIGF0dHI9YXJncy5hY3Rpb24sCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICBsYW5ndWFnZT1hcmdzLmxhbmd1YWdlKS5lbmNvZGUoYXJncy5lbmNvZGlu ZykpCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvd3JpdGVycy9faHRtbF9iYXNlLnB5IGIvZG9jdXRp bHMvd3JpdGVycy9faHRtbF9iYXNlLnB5Ci1pbmRleCBiMzU3MTIwLi5mYTI3OTExIDEwMDY0NAot LS0tIGEvZG9jdXRpbHMvd3JpdGVycy9faHRtbF9iYXNlLnB5Ci0rKysgYi9kb2N1dGlscy93cml0 ZXJzL19odG1sX2Jhc2UucHkKLUBAIC00OTQsNyArNDk0LDYgQEAgY2xhc3MgSFRNTFRyYW5zbGF0 b3Iobm9kZXMuTm9kZVZpc2l0b3IpOgotICAgICAjIHRoZSBlbmQgb2YgdGhpcyBmaWxlKS4KLSAK LSAgICAgZGVmIGlzX2NvbXBhY3RhYmxlKHNlbGYsIG5vZGUpOgotLSAgICAgICAgIyBwcmludCAi aXNfY29tcGFjdGFibGUgJXMgPyIgJSBub2RlLl9fY2xhc3NfXywKLSAgICAgICAgICMgZXhwbGlj aXRlIGNsYXNzIGFyZ3VtZW50cyBoYXZlIHByZWNlZGVuY2UKLSAgICAgICAgIGlmICdjb21wYWN0 JyBpbiBub2RlWydjbGFzc2VzJ106Ci0gICAgICAgICAgICAgcmV0dXJuIFRydWUKLUBAIC01MDMs MTEgKzUwMiw5IEBAIGNsYXNzIEhUTUxUcmFuc2xhdG9yKG5vZGVzLk5vZGVWaXNpdG9yKToKLSAg ICAgICAgICMgY2hlY2sgY29uZmlnIHNldHRpbmc6Ci0gICAgICAgICBpZiAoaXNpbnN0YW5jZShu b2RlLCAobm9kZXMuZmllbGRfbGlzdCwgbm9kZXMuZGVmaW5pdGlvbl9saXN0KSkKLSAgICAgICAg ICAgICBhbmQgbm90IHNlbGYuc2V0dGluZ3MuY29tcGFjdF9maWVsZF9saXN0cyk6Ci0tICAgICAg ICAgICAgIyBwcmludCAiYGNvbXBhY3QtZmllbGQtbGlzdHNgIGlzIEZhbHNlIgotICAgICAgICAg ICAgIHJldHVybiBGYWxzZQotICAgICAgICAgaWYgKGlzaW5zdGFuY2Uobm9kZSwgKG5vZGVzLmVu dW1lcmF0ZWRfbGlzdCwgbm9kZXMuYnVsbGV0X2xpc3QpKQotICAgICAgICAgICAgIGFuZCBub3Qg c2VsZi5zZXR0aW5ncy5jb21wYWN0X2xpc3RzKToKLS0gICAgICAgICAgICAjIHByaW50ICJgY29t cGFjdC1saXN0c2AgaXMgRmFsc2UiCi0gICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAg ICAjIG1vcmUgc3BlY2lhbCBjYXNlczoKLSAgICAgICAgIGlmIChzZWxmLnRvcGljX2NsYXNzZXMg PT0gWydjb250ZW50cyddKTogIyBUT0RPOiBzZWxmLmluX2NvbnRlbnRzCi1AQCAtODgyLDcgKzg3 OSw2IEBAIGNsYXNzIEhUTUxUcmFuc2xhdG9yKG5vZGVzLk5vZGVWaXNpdG9yKToKLSAgICAgICAg IGlmICdzZWN0bnVtJyBpbiBub2RlWydjbGFzc2VzJ106Ci0gICAgICAgICAgICAgIyBnZXQgc2Vj dGlvbiBudW1iZXIgKHN0cmlwIHRyYWlsaW5nIG5vLWJyZWFrLXNwYWNlcykKLSAgICAgICAgICAg ICBzZWN0bnVtID0gbm9kZS5hc3RleHQoKS5yc3RyaXAodSfCoCcpCi0tICAgICAgICAgICAgIyBw cmludCBzZWN0bnVtLmVuY29kZSgndXRmLTgnKQotICAgICAgICAgICAgIHNlbGYuYm9keS5hcHBl bmQoJzxzcGFuIGNsYXNzPSJzZWN0bnVtIj4lczwvc3Bhbj4gJwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICUgc2VsZi5lbmNvZGUoc2VjdG51bSkpCi0gICAgICAgICAgICAg IyBDb250ZW50IGFscmVhZHkgcHJvY2Vzc2VkOgotQEAgLTExOTQsNyArMTE5MCw2IEBAIGNsYXNz IEhUTUxUcmFuc2xhdG9yKG5vZGVzLk5vZGVWaXNpdG9yKToKLSAgICAgICAgIHBhc3MgIyBuZXZl ciByZWFjaGVkCi0gCi0gICAgIGRlZiB2aXNpdF9tYXRoX2Jsb2NrKHNlbGYsIG5vZGUpOgotLSAg ICAgICAgIyBwcmludCBub2RlLmFzdGV4dCgpLmVuY29kZSgndXRmOCcpCi0gICAgICAgICBtYXRo X2VudiA9IHBpY2tfbWF0aF9lbnZpcm9ubWVudChub2RlLmFzdGV4dCgpKQotICAgICAgICAgc2Vs Zi52aXNpdF9tYXRoKG5vZGUsIG1hdGhfZW52PW1hdGhfZW52KQotIAotQEAgLTE2MTEsMjAgKzE2 MDYsMTYgQEAgY2xhc3MgU2ltcGxlTGlzdENoZWNrZXIobm9kZXMuR2VuZXJpY05vZGVWaXNpdG9y KToKLSAgICAgICAgIHJhaXNlIG5vZGVzLk5vZGVGb3VuZAotIAotICAgICBkZWYgdmlzaXRfbGlz dF9pdGVtKHNlbGYsIG5vZGUpOgotLSAgICAgICAgIyBwcmludCAidmlzaXRpbmcgbGlzdCBpdGVt Iiwgbm9kZS5fX2NsYXNzX18KLSAgICAgICAgIGNoaWxkcmVuID0gW2NoaWxkIGZvciBjaGlsZCBp biBub2RlLmNoaWxkcmVuCi0gICAgICAgICAgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShj aGlsZCwgbm9kZXMuSW52aXNpYmxlKV0KLS0gICAgICAgICMgcHJpbnQgImhhcyAlcyB2aXNpYmxl IGNoaWxkcmVuIiAlIGxlbihjaGlsZHJlbikKLSAgICAgICAgIGlmIChjaGlsZHJlbiBhbmQgaXNp bnN0YW5jZShjaGlsZHJlblswXSwgbm9kZXMucGFyYWdyYXBoKQotICAgICAgICAgICAgIGFuZCAo aXNpbnN0YW5jZShjaGlsZHJlblstMV0sIG5vZGVzLmJ1bGxldF9saXN0KSBvcgotICAgICAgICAg ICAgICAgICAgaXNpbnN0YW5jZShjaGlsZHJlblstMV0sIG5vZGVzLmVudW1lcmF0ZWRfbGlzdCkg b3IKLSAgICAgICAgICAgICAgICAgIGlzaW5zdGFuY2UoY2hpbGRyZW5bLTFdLCBub2Rlcy5maWVs ZF9saXN0KSkpOgotICAgICAgICAgICAgIGNoaWxkcmVuLnBvcCgpCi0tICAgICAgICAjIHByaW50 ICIlcyBjaGlsZHJlbiByZW1haW4iICUgbGVuKGNoaWxkcmVuKQotICAgICAgICAgaWYgbGVuKGNo aWxkcmVuKSA8PSAxOgotICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgZWxzZToKLS0gICAg ICAgICAgICAjIHByaW50ICJmb3VuZCIsIGNoaWxkLl9fY2xhc3NfXywgImluIiwgbm9kZS5fX2Ns YXNzX18KLSAgICAgICAgICAgICByYWlzZSBub2Rlcy5Ob2RlRm91bmQKLSAKLSAgICAgZGVmIHBh c3Nfbm9kZShzZWxmLCBub2RlKToKLWRpZmYgLS1naXQgYS9kb2N1dGlscy93cml0ZXJzL2xhdGV4 MmUvX19pbml0X18ucHkgYi9kb2N1dGlscy93cml0ZXJzL2xhdGV4MmUvX19pbml0X18ucHkKLWlu ZGV4IDJlZTEyNzAuLjVjMzNkMGEgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy93cml0ZXJzL2xhdGV4 MmUvX19pbml0X18ucHkKLSsrKyBiL2RvY3V0aWxzL3dyaXRlcnMvbGF0ZXgyZS9fX2luaXRfXy5w eQotQEAgLTE1LDcgKzE1LDYgQEAgX19kb2Nmb3JtYXRfXyA9ICdyZVN0cnVjdHVyZWRUZXh0Jwot IAotIGltcG9ydCBzeXMKLSBpbXBvcnQgb3MKLS1pbXBvcnQgdGltZQotIGltcG9ydCByZQotIGlt cG9ydCBzdHJpbmcKLSBpbXBvcnQgdXJsbGliCi1AQCAtMjgsNiArMjcsNyBAQCBmcm9tIGRvY3V0 aWxzLnV0aWxzLmVycm9yX3JlcG9ydGluZyBpbXBvcnQgU2FmZVN0cmluZwotIGZyb20gZG9jdXRp bHMudHJhbnNmb3JtcyBpbXBvcnQgd3JpdGVyX2F1eAotIGZyb20gZG9jdXRpbHMudXRpbHMubWF0 aCBpbXBvcnQgcGlja19tYXRoX2Vudmlyb25tZW50LCB1bmljaGFyMnRleAotIAotKwotIGNsYXNz IFdyaXRlcih3cml0ZXJzLldyaXRlcik6Ci0gCi0gICAgIHN1cHBvcnRlZCA9ICgnbGF0ZXgnLCds YXRleDJlJykKLUBAIC0yMjgzLDE0ICsyMjgzLDE0IEBAIGNsYXNzIExhVGVYVHJhbnNsYXRvcihu b2Rlcy5Ob2RlVmlzaXRvcik6Ci0gICAgICAgICAgICAgaHJlZiA9IHNlbGYuZG9jdW1lbnQubmFt ZWlkc1tub2RlWydyZWZuYW1lJ11dCi0gICAgICAgICAjIGlmIG5vdCBzZWxmLmRvY3V0aWxzX2Zv b3Rub3RlczoKLSAgICAgICAgICAgICAjIFRPRE86IGluc2VydCBmb290bm90ZSBjb250ZW50IGF0 IChvciBuZWFyKSB0aGlzIHBsYWNlCi0tICAgICAgICAgICAgIyBwcmludCAiZm9vdG5vdGUtcmVm IHRvIiwgbm9kZVsncmVmaWQnXQotKyAgICAgICAgICAgICMgcHJpbnQoImZvb3Rub3RlLXJlZiB0 byIsIG5vZGVbJ3JlZmlkJ10pCi0gICAgICAgICAgICAgIyBmb290bm90ZXMgPSAoc2VsZi5kb2N1 bWVudC5mb290bm90ZXMgKwotICAgICAgICAgICAgICMgICAgICAgICAgICAgIHNlbGYuZG9jdW1l bnQuYXV0b2Zvb3Rub3RlcyArCi0gICAgICAgICAgICAgIyAgICAgICAgICAgICAgc2VsZi5kb2N1 bWVudC5zeW1ib2xfZm9vdG5vdGVzKQotICAgICAgICAgICAgICMgZm9yIGZvb3Rub3RlIGluIGZv b3Rub3RlczoKLS0gICAgICAgICAgICAjICAgICAjIHByaW50IGZvb3Rub3RlWydpZHMnXQotKyAg ICAgICAgICAgICMgICAgICMgcHJpbnQoZm9vdG5vdGVbJ2lkcyddKQotICAgICAgICAgICAgICMg ICAgIGlmIG5vZGUuZ2V0KCdyZWZpZCcsICcnKSBpbiBmb290bm90ZVsnaWRzJ106Ci0tICAgICAg ICAgICAgIyAgICAgICAgIHByaW50ICdtYXRjaGVzJywgZm9vdG5vdGVbJ2lkcyddCi0rICAgICAg ICAgICAgIyAgICAgICAgIHByaW50KCdtYXRjaGVzJywgZm9vdG5vdGVbJ2lkcyddKQotICAgICAg ICAgZm9ybWF0ID0gc2VsZi5zZXR0aW5ncy5mb290bm90ZV9yZWZlcmVuY2VzCi0gICAgICAgICBp ZiBmb3JtYXQgPT0gJ2JyYWNrZXRzJzoKLSAgICAgICAgICAgICBzZWxmLmFwcGVuZF9oeXBlcnRh cmdldHMobm9kZSkKLUBAIC0yNjIzLDcgKzI2MjMsNiBAQCBjbGFzcyBMYVRlWFRyYW5zbGF0b3Io bm9kZXMuTm9kZVZpc2l0b3IpOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIn XGJlZ2lueyVzfScgJSBtYXRoX2VudiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnJXMnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHInXGVuZHslc30nICUg bWF0aF9lbnZdKQotLSAgICAgICAgIyBwcmludCByZXByKHdyYXBwZXIpLCByZXByKG1hdGhfY29k ZSkKLSAgICAgICAgIHNlbGYub3V0LmFwcGVuZCh3cmFwcGVyICUgbWF0aF9jb2RlKQotICAgICAg ICAgaWYgbm9kZVsnY2xhc3NlcyddOgotICAgICAgICAgICAgIHNlbGYuZGVwYXJ0X2lubGluZShu b2RlKQotZGlmZiAtLWdpdCBhL2luc3RhbGwucHkgYi9pbnN0YWxsLnB5Ci1pbmRleCAyMDg1NjI3 Li5iN2RlMjc4IDEwMDc1NQotLS0tIGEvaW5zdGFsbC5weQotKysrIGIvaW5zdGFsbC5weQotQEAg LTE1LDEyICsxNSwxMyBAQCBvbmUgb2Y6OgotICAgICBweXRob24gc2V0dXAucHkgaW5zdGFsbCAt LWhlbHAKLSAgICAgcHl0aG9uIHNldHVwLnB5IC0taGVscAotICIiIgotK2Zyb20gX19mdXR1cmVf XyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KLSAKLSBmcm9tIGRpc3R1dGlscyBpbXBvcnQgY29yZQot IGZyb20gc2V0dXAgaW1wb3J0IGRvX3NldHVwCi0gCi0taWYgX19uYW1lX18gPT0gJ19fbWFpbl9f JyA6Ci0tICAgIHByaW50IF9fZG9jX18KLStpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotKyAg ICBwcmludChfX2RvY19fKQotICAgICBjb3JlLl9zZXR1cF9zdG9wX2FmdGVyID0gJ2NvbmZpZycK LSAgICAgZGlzdCA9IGRvX3NldHVwKCkKLSAgICAgZGlzdC5jb21tYW5kcyA9IFsnaW5zdGFsbCdd Ci1kaWZmIC0tZ2l0IGEvc2V0dXAucHkgYi9zZXR1cC5weQotaW5kZXggZjgwMWVhMi4uNDI4MGI5 OCAxMDA3NTUKLS0tLSBhL3NldHVwLnB5Ci0rKysgYi9zZXR1cC5weQotQEAgLTIsOSArMiwxMiBA QAotICMgJElkOiBzZXR1cC5weSA4MzA0IDIwMTktMDctMzAgMDk6NTE6MDdaIGdydWJlcnQgJAot ICMgQ29weXJpZ2h0OiBUaGlzIGZpbGUgaGFzIGJlZW4gcGxhY2VkIGluIHRoZSBwdWJsaWMgZG9t YWluLgotIAotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KLSsKLSBpbXBv cnQgc3lzCi0gaW1wb3J0IG9zCi0gaW1wb3J0IGdsb2IKLSsKLSB0cnk6Ci0gICAgIGltcG9ydCBz ZXR1cHRvb2xzCi0gICAgIGZyb20gZGlzdHV0aWxzLmNvcmUgaW1wb3J0IHNldHVwLCBDb21tYW5k Ci1AQCAtMTcsMTAgKzIwLDEwIEBAIHRyeToKLSAgICAgZnJvbSBkaXN0dXRpbHMudXRpbCBpbXBv cnQgY29udmVydF9wYXRoCi0gICAgIGZyb20gZGlzdHV0aWxzIGltcG9ydCBsb2cKLSBleGNlcHQg SW1wb3J0RXJyb3I6Ci0tICAgIHByaW50ICgnRXJyb3I6IFRoZSAiZGlzdHV0aWxzIiBzdGFuZGFy ZCBtb2R1bGUsIHdoaWNoIGlzIHJlcXVpcmVkIGZvciB0aGUgJykKLS0gICAgcHJpbnQgKCdpbnN0 YWxsYXRpb24gb2YgRG9jdXRpbHMsIGNvdWxkIG5vdCBiZSBmb3VuZC4gIFlvdSBtYXkgbmVlZCB0 byAnKQotLSAgICBwcmludCAoJ2luc3RhbGwgYSBwYWNrYWdlIGNhbGxlZCAicHl0aG9uLWRldmVs IiAob3Igc2ltaWxhcikgb24geW91ciAnKQotLSAgICBwcmludCAoJ3N5c3RlbSB1c2luZyB5b3Vy IHBhY2thZ2UgbWFuYWdlci4nKQotKyAgICBwcmludCgnRXJyb3I6IFRoZSAiZGlzdHV0aWxzIiBz dGFuZGFyZCBtb2R1bGUsIHdoaWNoIGlzIHJlcXVpcmVkIGZvciB0aGUgJykKLSsgICAgcHJpbnQo J2luc3RhbGxhdGlvbiBvZiBEb2N1dGlscywgY291bGQgbm90IGJlIGZvdW5kLiAgWW91IG1heSBu ZWVkIHRvICcpCi0rICAgIHByaW50KCdpbnN0YWxsIGEgcGFja2FnZSBjYWxsZWQgInB5dGhvbi1k ZXZlbCIgKG9yIHNpbWlsYXIpIG9uIHlvdXIgJykKLSsgICAgcHJpbnQoJ3N5c3RlbSB1c2luZyB5 b3VyIHBhY2thZ2UgbWFuYWdlci4nKQotICAgICBzeXMuZXhpdCgxKQotIAotIAotZGlmZiAtLWdp dCBhL3Rlc3QvRG9jdXRpbHNUZXN0U3VwcG9ydC5weSBiL3Rlc3QvRG9jdXRpbHNUZXN0U3VwcG9y dC5weQotaW5kZXggZjc5ODZmNS4uMjUxOTZlYyAxMDA2NDQKLS0tLSBhL3Rlc3QvRG9jdXRpbHNU ZXN0U3VwcG9ydC5weQotKysrIGIvdGVzdC9Eb2N1dGlsc1Rlc3RTdXBwb3J0LnB5Ci1AQCAtMzgs NiArMzgsNyBAQCBFeHBvcnRzIHRoZSBmb2xsb3dpbmc6Ci0gICAgIC0gYEh0bWxGcmFnbWVudFRl c3RTdWl0ZWAKLSAgICAgLSBgRGV2TnVsbGAgKG91dHB1dCBzaW5rKQotICIiIgotK2Zyb20gX19m dXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KLSBfX2RvY2Zvcm1hdF9fID0gJ3JlU3RydWN0 dXJlZFRleHQnCi0gCi0gaW1wb3J0IHN5cwotQEAgLTIzMCwxNyArMjMxLDE3IEBAIGNsYXNzIEN1 c3RvbVRlc3RDYXNlKFN0YW5kYXJkVGVzdENhc2UpOgotICAgICAgICAgdHJ5OgotICAgICAgICAg ICAgIHNlbGYuYXNzZXJ0RXF1YWwob3V0cHV0LCBleHBlY3RlZCkKLSAgICAgICAgIGV4Y2VwdCBB c3NlcnRpb25FcnJvciwgZXJyb3I6Ci0tICAgICAgICAgICAgcHJpbnQgPj5zeXMuc3RkZXJyLCAn XG4lc1xuaW5wdXQ6JyAlIChzZWxmLCkKLS0gICAgICAgICAgICBwcmludCA+PnN5cy5zdGRlcnIs IGlucHV0Ci0rICAgICAgICAgICAgcHJpbnQoJ1xuJXNcbmlucHV0OicgJSAoc2VsZiwpLCBmaWxl PXN5cy5zdGRlcnIpCi0rICAgICAgICAgICAgcHJpbnQoaW5wdXQsIGZpbGU9c3lzLnN0ZGVycikK LSAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgIGNvbXBhcmlzb24gPSAnJy5qb2lu KHNlbGYuY29tcGFyZShleHBlY3RlZC5zcGxpdGxpbmVzKDEpLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LnNwbGl0bGluZXMoMSkpKQot LSAgICAgICAgICAgICAgICBwcmludCA+PnN5cy5zdGRlcnIsICctOiBleHBlY3RlZFxuKzogb3V0 cHV0JwotLSAgICAgICAgICAgICAgICBwcmludCA+PnN5cy5zdGRlcnIsIGNvbXBhcmlzb24KLSsg ICAgICAgICAgICAgICAgcHJpbnQoJy06IGV4cGVjdGVkXG4rOiBvdXRwdXQnLCBmaWxlPXN5cy5z dGRlcnIpCi0rICAgICAgICAgICAgICAgIHByaW50KGNvbXBhcmlzb24sIGZpbGU9c3lzLnN0ZGVy cikKLSAgICAgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6ICAgICAgIyBleHBlY3RlZCBv ciBvdXRwdXQgbm90IGEgc3RyaW5nCi0gICAgICAgICAgICAgICAgICMgYWx0ZXJuYXRpdmUgb3V0 cHV0IGZvciBub24tc3RyaW5nczoKLS0gICAgICAgICAgICAgICAgcHJpbnQgPj5zeXMuc3RkZXJy LCAnZXhwZWN0ZWQ6ICVyJyAlIGV4cGVjdGVkCi0tICAgICAgICAgICAgICAgIHByaW50ID4+c3lz LnN0ZGVyciwgJ291dHB1dDogICAlcicgJSBvdXRwdXQKLSsgICAgICAgICAgICAgICAgcHJpbnQo J2V4cGVjdGVkOiAlcicgJSBleHBlY3RlZCwgZmlsZT1zeXMuc3RkZXJyKQotKyAgICAgICAgICAg ICAgICBwcmludCgnb3V0cHV0OiAgICVyJyAlIG91dHB1dCwgZmlsZT1zeXMuc3RkZXJyKQotICAg ICAgICAgICAgIHJhaXNlIGVycm9yCi0gCi0gCi1AQCAtMzc1LDIwICszNzYsMjAgQEAgY2xhc3Mg VHJhbnNmb3JtVGVzdENhc2UoQ3VzdG9tVGVzdENhc2UpOgotICAgICBkZWYgdGVzdF90cmFuc2Zv cm1zX3ZlcmJvc2VseShzZWxmKToKLSAgICAgICAgIGlmIHNlbGYucnVuX2luX2RlYnVnZ2VyOgot ICAgICAgICAgICAgIHBkYi5zZXRfdHJhY2UoKQotLSAgICAgICAgcHJpbnQgJ1xuJywgc2VsZi5p ZAotLSAgICAgICAgcHJpbnQgJy0nICogNzAKLS0gICAgICAgIHByaW50IHNlbGYuaW5wdXQKLSsg ICAgICAgIHByaW50KCdcbicsIHNlbGYuaWQpCi0rICAgICAgICBwcmludCgnLScgKiA3MCkKLSsg ICAgICAgIHByaW50KHNlbGYuaW5wdXQpCi0gICAgICAgICBzZXR0aW5ncyA9IHNlbGYuc2V0dGlu Z3MuY29weSgpCi0gICAgICAgICBzZXR0aW5ncy5fX2RpY3RfXy51cGRhdGUoc2VsZi5zdWl0ZV9z ZXR0aW5ncykKLSAgICAgICAgIGRvY3VtZW50ID0gdXRpbHMubmV3X2RvY3VtZW50KCd0ZXN0IGRh dGEnLCBzZXR0aW5ncykKLSAgICAgICAgIHNlbGYucGFyc2VyLnBhcnNlKHNlbGYuaW5wdXQsIGRv Y3VtZW50KQotLSAgICAgICAgcHJpbnQgJy0nICogNzAKLS0gICAgICAgIHByaW50IGRvY3VtZW50 LnBmb3JtYXQoKQotKyAgICAgICAgcHJpbnQoJy0nICogNzApCi0rICAgICAgICBwcmludChkb2N1 bWVudC5wZm9ybWF0KCkpCi0gICAgICAgICBmb3IgdHJhbnNmb3JtQ2xhc3MgaW4gc2VsZi50cmFu c2Zvcm1zOgotICAgICAgICAgICAgIHRyYW5zZm9ybUNsYXNzKGRvY3VtZW50KS5hcHBseSgpCi0g ICAgICAgICBvdXRwdXQgPSBkb2N1bWVudC5wZm9ybWF0KCkKLS0gICAgICAgIHByaW50ICctJyAq IDcwCi0tICAgICAgICBwcmludCBvdXRwdXQKLSsgICAgICAgIHByaW50KCctJyAqIDcwKQotKyAg ICAgICAgcHJpbnQob3V0cHV0KQotICAgICAgICAgc2VsZi5jb21wYXJlX291dHB1dChzZWxmLmlu cHV0LCBvdXRwdXQsIHNlbGYuZXhwZWN0ZWQpCi0gCi0gCi1kaWZmIC0tZ2l0IGEvdGVzdC9hbGx0 ZXN0cy5weSBiL3Rlc3QvYWxsdGVzdHMucHkKLWluZGV4IDkzNzMxMjQuLjM2NDU5M2YgMTAwNzU1 Ci0tLS0gYS90ZXN0L2FsbHRlc3RzLnB5Ci0rKysgYi90ZXN0L2FsbHRlc3RzLnB5Ci1AQCAtMSwx MiArMSwxMiBAQAotICMhL2Jpbi9zaAotICcnJydleGVjIHB5dGhvbiAtdSAiJDAiICIkQCIgIycn JwotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KLSAKLSAjICRJZDogYWxs dGVzdHMucHkgODEyNCAyMDE3LTA2LTIzIDAyOjI5OjE2WiBnb29kZ2VyICQKLSAjIEF1dGhvcjog RGF2aWQgR29vZGdlciA8Z29vZGdlckBweXRob24ub3JnPgotICMgQ29weXJpZ2h0OiBUaGlzIG1v ZHVsZSBoYXMgYmVlbiBwbGFjZWQgaW4gdGhlIHB1YmxpYyBkb21haW4uCi0gCi0tX19kb2NfXyA9 IFwKLS0iIiIKLStfX2RvY19fID0gIiIiXAotIEFsbCBtb2R1bGVzIG5hbWVkICd0ZXN0XyoucHkn IGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeSwgYW5kIHJlY3Vyc2l2ZWx5IGluCi0gc3ViZGlyZWN0 b3JpZXMgKHBhY2thZ2VzKSBjYWxsZWQgJ3Rlc3RfKicsIGFyZSBsb2FkZWQgYW5kIHRlc3Qgc3Vp dGVzIHdpdGhpbgotIGFyZSBydW4uCi1AQCAtMTUsNyArMTUsNyBAQCBhcmUgcnVuLgotIGltcG9y dCB0aW1lCi0gIyBTdGFydCBwb2ludCBmb3IgYWN0dWFsIGVsYXBzZWQgdGltZSwgaW5jbHVkaW5n IGltcG9ydHMKLSAjIGFuZCBzZXR1cCBvdXRzaWRlIG9mIHVuaXR0ZXN0LgotLXN0YXJ0ID0gdGlt ZS50aW1lKCkKLStzdGFydCA9IHRpbWUudGltZSgpICAjIG5vcWEKLSAKLSBpbXBvcnQgc3lzCi0g aW1wb3J0IG9zCi1AQCAtNTcsMTIgKzU3LDEzIEBAIGRlZiBwZm9ybWF0KHN1aXRlKToKLSAgICAg ICAgIGlmIGxpbmVbLTE6XSA9PSAnWyc6Ci0gICAgICAgICAgICAgaW5kZW50ICs9IHN0ZXAKLSAg ICAgICAgIGVsc2U6Ci0tICAgICAgICAgICAgaWYgbGluZSBbLTU6XSA9PSAnXT5dPiwnOgotKyAg ICAgICAgICAgIGlmIGxpbmVbLTU6XSA9PSAnXT5dPiwnOgotICAgICAgICAgICAgICAgICBpbmRl bnQgLT0gc3RlcCAqIDIKLSAgICAgICAgICAgICBlbGlmIGxpbmVbLTM6XSA9PSAnXT4sJzoKLSAg ICAgICAgICAgICAgICAgaW5kZW50IC09IHN0ZXAKLSAgICAgcmV0dXJuICdcbicuam9pbihvdXRw dXQpCi0gCi0rCi0gZGVmIHN1aXRlKCk6Ci0gICAgIHBhdGgsIHNjcmlwdCA9IG9zLnBhdGguc3Bs aXQoc3lzLmFyZ3ZbMF0pCi0gICAgIHN1aXRlID0gcGFja2FnZV91bml0dGVzdC5sb2FkVGVzdE1v ZHVsZXMoRG9jdXRpbHNUZXN0U3VwcG9ydC50ZXN0cm9vdCwKLUBAIC03MCwyNiArNzEsMjUgQEAg ZGVmIHN1aXRlKCk6Ci0gICAgIHN5cy5zdGRvdXQuZmx1c2goKQotICAgICByZXR1cm4gc3VpdGUK LSAKLSsKLSAjIG11c3QgcmVkaXJlY3Qgc3RkZXJyICpiZWZvcmUqIGZpcnN0IGltcG9ydCBvZiB1 bml0dGVzdAotIHN5cy5zdGRvdXQgPSBzeXMuc3RkZXJyID0gVGVlKCdhbGx0ZXN0cy5vdXQnKQot IAotLWltcG9ydCBwYWNrYWdlX3VuaXR0ZXN0Ci0raW1wb3J0IHBhY2thZ2VfdW5pdHRlc3QgICMg bm9xYQotIAotIAotIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgIHN1aXRlID0gc3Vp dGUoKQotLSAgICBwcmludCAoJ1Rlc3RpbmcgRG9jdXRpbHMgJXMgd2l0aCBQeXRob24gJXMgb24g JXMgYXQgJXMnCi0tICAgICAgICAgICAlIChkb2N1dGlscy5fX3ZlcnNpb25fXywgc3lzLnZlcnNp b24uc3BsaXQoKVswXSwKLS0gICAgICAgICAgICAgIHRpbWUuc3RyZnRpbWUoJyVZLSVtLSVkJyks IHRpbWUuc3RyZnRpbWUoJyVIOiVNOiVTJykpKQotLSAgICBwcmludCAoJ09TOiAlcyAlcyAlcyAo JXMsICVzKScKLS0gICAgICAgICUgKHBsYXRmb3JtLnN5c3RlbSgpLCBwbGF0Zm9ybS5yZWxlYXNl KCksIHBsYXRmb3JtLnZlcnNpb24oKSwKLS0gICAgICAgICAgIHN5cy5wbGF0Zm9ybSwgcGxhdGZv cm0ucGxhdGZvcm0oKSkpCi0tICAgIHByaW50ICdXb3JraW5nIGRpcmVjdG9yeTogJXMnICUgb3Mu Z2V0Y3dkKCkKLS0gICAgcHJpbnQgJ0RvY3V0aWxzIHBhY2thZ2U6ICVzJyAlIG9zLnBhdGguZGly bmFtZShkb2N1dGlscy5fX2ZpbGVfXykKLSsgICAgcHJpbnQoJ1Rlc3RpbmcgRG9jdXRpbHMgJXMg d2l0aCBQeXRob24gJXMgb24gJXMgYXQgJXMnICUgKAotKyAgICAgICAgZG9jdXRpbHMuX192ZXJz aW9uX18sIHN5cy52ZXJzaW9uLnNwbGl0KClbMF0sCi0rICAgICAgICB0aW1lLnN0cmZ0aW1lKCcl WS0lbS0lZCcpLCB0aW1lLnN0cmZ0aW1lKCclSDolTTolUycpKSkKLSsgICAgcHJpbnQoJ09TOiAl cyAlcyAlcyAoJXMsICVzKScgJSAoCi0rICAgICAgICBwbGF0Zm9ybS5zeXN0ZW0oKSwgcGxhdGZv cm0ucmVsZWFzZSgpLCBwbGF0Zm9ybS52ZXJzaW9uKCksCi0rICAgICAgICBzeXMucGxhdGZvcm0s IHBsYXRmb3JtLnBsYXRmb3JtKCkpKQotKyAgICBwcmludCgnV29ya2luZyBkaXJlY3Rvcnk6ICVz JyAlIG9zLmdldGN3ZCgpKQotKyAgICBwcmludCgnRG9jdXRpbHMgcGFja2FnZTogJXMnICUgb3Mu cGF0aC5kaXJuYW1lKGRvY3V0aWxzLl9fZmlsZV9fKSkKLSAgICAgc3lzLnN0ZG91dC5mbHVzaCgp Ci0gICAgIHJlc3VsdCA9IHBhY2thZ2VfdW5pdHRlc3QubWFpbihzdWl0ZSkKLS0gICAgI2lmIHBh Y2thZ2VfdW5pdHRlc3QudmVyYm9zaXR5ID4gMToKLS0gICAgIyAgICBwcmludCA+PnN5cy5zdGRl cnIsIHBmb3JtYXQoc3VpdGUpICMgY2hlY2sgdGhlIHRlc3Qgc3VpdGUKLSAgICAgZmluaXNoID0g dGltZS50aW1lKCkKLS0gICAgcHJpbnQgJ0VsYXBzZWQgdGltZTogJS4zZiBzZWNvbmRzJyAlIChm aW5pc2ggLSBzdGFydCkKLSsgICAgcHJpbnQoJ0VsYXBzZWQgdGltZTogJS4zZiBzZWNvbmRzJyAl IChmaW5pc2ggLSBzdGFydCkpCi0gICAgIHN5cy5leGl0KG5vdCByZXN1bHQud2FzU3VjY2Vzc2Z1 bCgpKQotZGlmZiAtLWdpdCBhL3Rlc3QvcGFja2FnZV91bml0dGVzdC5weSBiL3Rlc3QvcGFja2Fn ZV91bml0dGVzdC5weQotaW5kZXggMGVmYWIxMi4uZGFmMTFmNCAxMDA2NDQKLS0tLSBhL3Rlc3Qv cGFja2FnZV91bml0dGVzdC5weQotKysrIGIvdGVzdC9wYWNrYWdlX3VuaXR0ZXN0LnB5Ci1AQCAt OSw2ICs5LDcgQEAgVGhpcyBtb2R1bGUgZXh0ZW5kcyB1bml0dGVzdC5weSB3aXRoIGBsb2FkVGVz dE1vZHVsZXMoKWAsIGJ5IGxvYWRpbmcgbXVsdGlwbGUKLSB0ZXN0IG1vZHVsZXMgZnJvbSBhIGRp cmVjdG9yeS4gIE9wdGlvbmFsbHksIHRlc3QgcGFja2FnZXMgYXJlIGFsc28gbG9hZGVkLAotIHJl Y3Vyc2l2ZWx5LgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24K LSAKLSBpbXBvcnQgc3lzCi0gaW1wb3J0IG9zCi1AQCAtMzcsOCArMzgsOCBAQCBPcHRpb25zOgot IGRlZiB1c2FnZUV4aXQobXNnPU5vbmUpOgotICAgICAiIiJQcmludCB1c2FnZSBhbmQgZXhpdC4i IiIKLSAgICAgaWYgbXNnOgotLSAgICAgICAgcHJpbnQgbXNnCi0tICAgIHByaW50IFVTQUdFCi0r ICAgICAgICBwcmludChtc2cpCi0rICAgIHByaW50KFVTQUdFKQotICAgICBzeXMuZXhpdCgyKQot IAotIGRlZiBwYXJzZUFyZ3MoYXJndj1zeXMuYXJndik6Ci1AQCAtOTYsMTEgKzk3LDExIEBAIGRl ZiBsb2FkVGVzdE1vZHVsZXMocGF0aCwgbmFtZT0nJywgcGFja2FnZXM9Tm9uZSk6Ci0gICAgIHN5 cy5wYXRoLmluc2VydCgwLCBwYXRoKQotICAgICBmb3IgbW9kIGluIHRlc3RNb2R1bGVzOgotICAg ICAgICAgaWYgZGVidWc6Ci0tICAgICAgICAgICAgcHJpbnQgPj5zeXMuc3RkZXJyLCAiaW1wb3J0 aW5nICVzIiAlIG1vZAotKyAgICAgICAgICAgIHByaW50KCJpbXBvcnRpbmcgJXMiICUgbW9kLCBm aWxlPXN5cy5zdGRlcnIpCi0gICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgbW9kdWxlID0gaW1w b3J0X21vZHVsZShtb2QpCi0gICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0tICAgICAgICAg ICAgcHJpbnQgPj5zeXMuc3RkZXJyLCAiRVJST1I6IENhbid0IGltcG9ydCAlcywgc2tpcHBpbmcg aXRzIHRlc3RzOiIgJSBtb2QKLSsgICAgICAgICAgICBwcmludCgiRVJST1I6IENhbid0IGltcG9y dCAlcywgc2tpcHBpbmcgaXRzIHRlc3RzOiIgJSBtb2QsIGZpbGU9c3lzLnN0ZGVycikKLSAgICAg ICAgICAgICBzeXMuZXhjZXB0aG9vaygqc3lzLmV4Y19pbmZvKCkpCi0gICAgICAgICBlbHNlOgot ICAgICAgICAgICAgICMgaWYgdGhlcmUncyBhIHN1aXRlIGRlZmluZWQsIGluY29ycG9yYXRlIGl0 cyBjb250ZW50cwotQEAgLTE0OCw3ICsxNDksNyBAQCBkZWYgbWFpbihzdWl0ZT1Ob25lKToKLSAg ICAgICAgIHN1aXRlID0gdW5pdHRlc3QuZGVmYXVsdFRlc3RMb2FkZXIubG9hZFRlc3RzRnJvbU1v ZHVsZSgKLSAgICAgICAgICAgICAgIF9faW1wb3J0X18oJ19fbWFpbl9fJykpCi0gICAgIGlmIGRl YnVnOgotLSAgICAgICAgcHJpbnQgPj5zeXMuc3RkZXJyLCAiRGVidWc6IFN1aXRlPSVzIiAlIHN1 aXRlCi0rICAgICAgICBwcmludCgiRGVidWc6IFN1aXRlPSVzIiAlIHN1aXRlLCBmaWxlPXN5cy5z dGRlcnIpCi0gICAgIHRlc3RSdW5uZXIgPSB1bml0dGVzdC5UZXh0VGVzdFJ1bm5lcih2ZXJib3Np dHk9dmVyYm9zaXR5KQotICAgICAjIHJ1biBzdWl0ZXMgKGlmIHdlIHdlcmUgY2FsbGVkIGZyb20g dGVzdF9hbGwpIG9yIHN1aXRlLi4uCi0gICAgIGlmIHR5cGUoc3VpdGUpID09IHR5cGUoW10pOgot ZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9lcnJvcl9yZXBvcnRpbmcucHkgYi90ZXN0L3Rlc3RfZXJy b3JfcmVwb3J0aW5nLnB5Ci1pbmRleCA5MDJlODc4Li5jNGVhZTQwIDEwMDY0NAotLS0tIGEvdGVz dC90ZXN0X2Vycm9yX3JlcG9ydGluZy5weQotKysrIGIvdGVzdC90ZXN0X2Vycm9yX3JlcG9ydGlu Zy5weQotQEAgLTIwLDEzICsyMCwxNCBAQCBpbnN0YW5jZXMgbGlrZSwgZS5nLiwgOjoKLSAgIHRy eToKLSAgICAgc29tZXRoaW5nCi0gICBleGNlcHQgSU9FcnJvciwgZXJyb3I6Ci0tICAgIHByaW50 ICdGb3VuZCAlcycgJSBlcnJvcgotKyAgICBwcmludCgnRm91bmQgJXMnICUgZXJyb3IpCi0gCi0g dW5sZXNzIHRoZSBtaW5pbWFsIHJlcXVpcmVkIFB5dGhvbiB2ZXJzaW9uIGhhcyB0aGlzIHByb2Js ZW0gZml4ZWQuCi0gIiIiCi0gCi0gaW1wb3J0IHVuaXR0ZXN0Ci0taW1wb3J0IHN5cywgb3MKLStp bXBvcnQgc3lzCi0raW1wb3J0IG9zCi0gaW1wb3J0IGNvZGVjcwotIGZyb20gaW8gaW1wb3J0IFN0 cmluZ0lPLCBCeXRlc0lPCi0gCi1AQCAtNDIsNyArNDMsNyBAQCBpZiBzeXMudmVyc2lvbl9pbmZv IDwgKDMsMCk6ICMgcHJvYmxlbXMgc29sdmVkIGluIHB5M2sKLSAgICAgICAgICMgV2h5IGRvZXMg Z2V0bG9jYWxlIHJldHVybiB0aGUgZGVmYXVsdGxvY2FsZSBpbiBQeXRob24gMy4yID8/Pz8KLSAg ICAgICAgICMgb2xkbG9jYWxlID0gKE5vbmUsIE5vbmUpICMgdGVzdCBzdWl0ZSBydW5zIHdpdGhv dXQgbG9jYWxlCi0gICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLS0gICAgICAgIHByaW50ICgnY2Fu bm90IHRlc3QgZXJyb3IgcmVwb3J0aW5nIHdpdGggcHJvYmxlbWF0aWMgbG9jYWxlcyxcbicKLSsg ICAgICAgIHByaW50KCdjYW5ub3QgdGVzdCBlcnJvciByZXBvcnRpbmcgd2l0aCBwcm9ibGVtYXRp YyBsb2NhbGVzLFxuJwotICAgICAgICAgICAgICdgaW1wb3J0IGxvY2FsZWAgZmFpbGVkLicpCi0g Ci0gCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X2Z1bmN0aW9uYWwucHkgYi90ZXN0L3Rlc3RfZnVu Y3Rpb25hbC5weQotaW5kZXggNDM3MTBkZS4uNWQzYmViOSAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVz dF9mdW5jdGlvbmFsLnB5Ci0rKysgYi90ZXN0L3Rlc3RfZnVuY3Rpb25hbC5weQotQEAgLTksNiAr OSw3IEBAIFBlcmZvcm0gdGVzdHMgd2l0aCB0aGUgZGF0YSBpbiB0aGUgZnVuY3Rpb25hbC8gZGly ZWN0b3J5LgotIAotIFJlYWQgUkVBRE1FLnR4dCBmb3IgZGV0YWlscyBvbiBob3cgdGhpcyBpcyBk b25lLgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KLSAKLSBp bXBvcnQgc3lzCi0gaW1wb3J0IG9zCi1AQCAtMTk0LDggKzE5NSw4IEBAIGV4cGVjdGVkIG91dHB1 dCBhbmQgY2hlY2sgaXQgaW46Ci0gICAgICAgICAgICAgICAgIGV4cGVjdGVkX3BhdGgsIHBhcmFt c1snZGVzdGluYXRpb25fcGF0aCddKSkKLSAgICAgICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZv IDwgKDMsMCk6Ci0gICAgICAgICAgICAgICAgIGRpZmYgPSBkaWZmLmVuY29kZShzeXMuc3RkZXJy LmVuY29kaW5nIG9yICdhc2NpaScsICdyZXBsYWNlJykKLS0gICAgICAgICAgICBwcmludCA+PnN5 cy5zdGRlcnIsICdcbiVzOicgJSAoc2VsZiwpCi0tICAgICAgICAgICAgcHJpbnQgPj5zeXMuc3Rk ZXJyLCBkaWZmCi0rICAgICAgICAgICAgcHJpbnQoJ1xuJXM6JyAlIChzZWxmLCksIGZpbGU9c3lz LnN0ZGVycikKLSsgICAgICAgICAgICBwcmludChkaWZmLCBmaWxlPXN5cy5zdGRlcnIpCi0gICAg ICAgICAgICAgcmFpc2UKLSAgICAgICAgICMgRXhlY3V0ZSBvcHRpb25hbCBmdW5jdGlvbiBjb250 YWluaW5nIGV4dHJhIHRlc3RzOgotICAgICAgICAgaWYgJ190ZXN0X21vcmUnIGluIG5hbWVzcGFj ZToKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfaW8ucHkgYi90ZXN0L3Rlc3RfaW8ucHkKLWluZGV4 IDZlYTQ3ODkuLjczN2ExOWQgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfaW8ucHkKLSsrKyBiL3Rl c3QvdGVzdF9pby5weQotQEAgLTY5LDcgKzY5LDcgQEAgYmxhaAotICAgICAgICAgaW5wdXQgPSBp by5TdHJpbmdJbnB1dChzb3VyY2U9YiIiIlwKLSAjISBweXRob24KLSAjIC0qLSBjb2Rpbmc6IGFz Y2lpIC0qLQotLXByaW50ICJoZWxsbyB3b3JsZCIKLStwcmludCgiaGVsbG8gd29ybGQiKQotICIi IikKLSAgICAgICAgIGRhdGEgPSBpbnB1dC5yZWFkKCkKLSAgICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWwoaW5wdXQuc3VjY2Vzc2Z1bF9lbmNvZGluZywgJ2FzY2lpJykKLUBAIC03Nyw3ICs3Nyw3IEBA IHByaW50ICJoZWxsbyB3b3JsZCIKLSAjISBweXRob24KLSAjIGV4dHJhbmVvdXMgY29tbWVudDsg cHJldmVudHMgY29kaW5nIHNsdWcgZnJvbSBiZWluZyByZWFkCi0gIyAtKi0gY29kaW5nOiBhc2Np aSAtKi0KLS1wcmludCAiaGVsbG8gd29ybGQiCi0rcHJpbnQoImhlbGxvIHdvcmxkIikKLSAiIiIp Ci0gICAgICAgICBkYXRhID0gaW5wdXQucmVhZCgpCi0gICAgICAgICBzZWxmLmFzc2VydE5vdEVx dWFsKGlucHV0LnN1Y2Nlc3NmdWxfZW5jb2RpbmcsICdhc2NpaScpCi1kaWZmIC0tZ2l0IGEvdGVz dC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfY29kZS5weSBiL3Rl c3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2NvZGUucHkKLWlu ZGV4IDMwZmU3NGYuLjUxYzE1NTggMTAwNjQ0Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0 X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9jb2RlLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vy cy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9jb2RlLnB5Ci1AQCAtOTgsNyArOTgsNyBA QCB0b3Rlc3RbJ2NvZGUtcGFyc2luZyddID0gWwotIC4uIGNvZGU6OiBweXRob24KLSAgIDpjbGFz czogdGVzdGNsYXNzCi0gCi0tICAgcHJpbnQgJ2hlbGxvIHdvcmxkJyAjIHRvIHN0ZG91dAotKyAg IHByaW50KCdoZWxsbyB3b3JsZCcpICMgdG8gc3Rkb3V0Ci0gIiIiLAotICIiIlwKLSA8ZG9jdW1l bnQgc291cmNlPSJ0ZXN0IGRhdGEiPgotQEAgLTEwNiw5ICsxMDYsMTIgQEAgdG90ZXN0Wydjb2Rl LXBhcnNpbmcnXSA9IFsKLSAgICAgICAgICBcblwKLSAgICAgICAgIDxpbmxpbmUgY2xhc3Nlcz0i a2V5d29yZCI+Ci0gICAgICAgICAgICAgcHJpbnQKLS0gICAgICAgICBcblwKLSsgICAgICAgIDxp bmxpbmUgY2xhc3Nlcz0icHVuY3R1YXRpb24iPgotKyAgICAgICAgICAgICgKLSAgICAgICAgIDxp bmxpbmUgY2xhc3Nlcz0ibGl0ZXJhbCBzdHJpbmcgc2luZ2xlIj4KLSAgICAgICAgICAgICAnaGVs bG8gd29ybGQnCi0rICAgICAgICA8aW5saW5lIGNsYXNzZXM9InB1bmN0dWF0aW9uIj4KLSsgICAg ICAgICAgICApCi0gICAgICAgICAgXG5cCi0gICAgICAgICA8aW5saW5lIGNsYXNzZXM9ImNvbW1l bnQgc2luZ2xlIj4KLSAgICAgICAgICAgICAjIHRvIHN0ZG91dAotQEAgLTEyNCw3ICsxMjcsNyBA QCB0b3Rlc3RbJ2NvZGUtcGFyc2luZyddID0gWwotICAgICAgICcnJwotIAotICAgICAgICMgYW5k IG5vdyBmb3Igc29tZXRoaW5nIGNvbXBsZXRlbHkgZGlmZmVyZW50Ci0tICAgICAgcHJpbnQgOC8y Ci0rICAgICAgcHJpbnQoOC8yKQotICIiIiwKLSAiIiJcCi0gPGRvY3VtZW50IHNvdXJjZT0idGVz dCBkYXRhIj4KLUBAIC0xNjMsMTMgKzE2NiwxNiBAQCB0b3Rlc3RbJ2NvZGUtcGFyc2luZyddID0g WwotICAgICAgICAgICAgIFxuXAotICAgICAgICAgPGlubGluZSBjbGFzc2VzPSJrZXl3b3JkIj4K LSAgICAgICAgICAgICBwcmludAotLSAgICAgICAgIFxuXAotKyAgICAgICAgPGlubGluZSBjbGFz c2VzPSJwdW5jdHVhdGlvbiI+Ci0rICAgICAgICAgICAgKAotICAgICAgICAgPGlubGluZSBjbGFz c2VzPSJsaXRlcmFsIG51bWJlciBpbnRlZ2VyIj4KLSAgICAgICAgICAgICA4Ci0gICAgICAgICA8 aW5saW5lIGNsYXNzZXM9Im9wZXJhdG9yIj4KLSAgICAgICAgICAgICAvCi0gICAgICAgICA8aW5s aW5lIGNsYXNzZXM9ImxpdGVyYWwgbnVtYmVyIGludGVnZXIiPgotICAgICAgICAgICAgIDIKLSsg ICAgICAgIDxpbmxpbmUgY2xhc3Nlcz0icHVuY3R1YXRpb24iPgotKyAgICAgICAgICAgICkKLSAi IiJdLAotIFsiIiJcCi0gLi4gY29kZTo6IGxhdGV4Ci1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3Bh cnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfY29kZV9sb25nLnB5IGIvdGVzdC90 ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfY29kZV9sb25nLnB5Ci1p bmRleCA0M2ViODg2Li43NGYxNmQ1IDEwMDY0NAotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVz dF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfY29kZV9sb25nLnB5Ci0rKysgYi90ZXN0L3Rlc3Rf cGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9jb2RlX2xvbmcucHkKLUBAIC0y OSw3ICsyOSw3IEBAIHRvdGVzdFsnY29kZS1wYXJzaW5nLWxvbmcnXSA9IFsKLSAgICAgICAnJycK LSAKLSAgICAgICAjIGFuZCBub3cgZm9yIHNvbWV0aGluZyBjb21wbGV0ZWx5IGRpZmZlcmVudAot LSAgICAgIHByaW50IDgvMgotKyAgICAgIHByaW50KDgvMikKLSAiIiIsCi0gIiIiXAotIDxkb2N1 bWVudCBzb3VyY2U9InRlc3QgZGF0YSI+Ci1AQCAtNjgsMTMgKzY4LDE2IEBAIHRvdGVzdFsnY29k ZS1wYXJzaW5nLWxvbmcnXSA9IFsKLSAgICAgICAgICAgICBcblwKLSAgICAgICAgIDxpbmxpbmUg Y2xhc3Nlcz0ia2V5d29yZCI+Ci0gICAgICAgICAgICAgcHJpbnQKLS0gICAgICAgICBcblwKLSsg ICAgICAgIDxpbmxpbmUgY2xhc3Nlcz0icHVuY3R1YXRpb24iPgotKyAgICAgICAgICAgICgKLSAg ICAgICAgIDxpbmxpbmUgY2xhc3Nlcz0ibGl0ZXJhbCBudW1iZXIgaW50ZWdlciI+Ci0gICAgICAg ICAgICAgOAotICAgICAgICAgPGlubGluZSBjbGFzc2VzPSJvcGVyYXRvciI+Ci0gICAgICAgICAg ICAgLwotICAgICAgICAgPGlubGluZSBjbGFzc2VzPSJsaXRlcmFsIG51bWJlciBpbnRlZ2VyIj4K LSAgICAgICAgICAgICAyCi0rICAgICAgICA8aW5saW5lIGNsYXNzZXM9InB1bmN0dWF0aW9uIj4K LSsgICAgICAgICAgICApCi0gIiIiXSwKLSBbIiIiXAotIC4uIGNvZGU6OiBsYXRleAotZGlmZiAt LWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2Nv ZGVfbm9uZS5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90 ZXN0X2NvZGVfbm9uZS5weQotaW5kZXggODY2NTNlNi4uNTE1NzcyYyAxMDA2NDQKLS0tLSBhL3Rl c3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2NvZGVfbm9uZS5w eQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3Rf Y29kZV9ub25lLnB5Ci1AQCAtMzcsNyArMzcsNyBAQCB0b3Rlc3RbJ2NvZGUtcGFyc2luZy1ub25l J10gPSBbCi0gICAgICAgJycnCi0gCi0gICAgICAgIyBhbmQgbm93IGZvciBzb21ldGhpbmcgY29t cGxldGVseSBkaWZmZXJlbnQKLS0gICAgICBwcmludCA4LzIKLSsgICAgICBwcmludCg4LzIpCi0g IiIiLAotICIiIlwKLSA8ZG9jdW1lbnQgc291cmNlPSJ0ZXN0IGRhdGEiPgotQEAgLTU5LDcgKzU5 LDcgQEAgdG90ZXN0Wydjb2RlLXBhcnNpbmctbm9uZSddID0gWwotICAgICAgICAgICAgICMgYW5k IG5vdyBmb3Igc29tZXRoaW5nIGNvbXBsZXRlbHkgZGlmZmVyZW50Ci0gICAgICAgICA8aW5saW5l IGNsYXNzZXM9ImxuIj4KLSAgICAgICAgICAgICAxMiBcblwKLS0gICAgICAgICAgICBwcmludCA4 LzIKLSsgICAgICAgICAgICBwcmludCg4LzIpCi0gIiIiXSwKLSBbIiIiXAotIC4uIGNvZGU6OiBs YXRleAotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZG9jdGVz dF9ibG9ja3MucHkgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RvY3Rlc3RfYmxv Y2tzLnB5Ci1pbmRleCBkYWJjMmVjLi40ZjM2N2RiIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3Bh cnNlcnMvdGVzdF9yc3QvdGVzdF9kb2N0ZXN0X2Jsb2Nrcy5weQotKysrIGIvdGVzdC90ZXN0X3Bh cnNlcnMvdGVzdF9yc3QvdGVzdF9kb2N0ZXN0X2Jsb2Nrcy5weQotQEAgLTIxLDcgKzIxLDcgQEAg dG90ZXN0Wydkb2N0ZXN0X2Jsb2NrcyddID0gWwotIFsiIiJcCi0gUGFyYWdyYXBoLgotIAotLT4+ PiBwcmludCAiRG9jdGVzdCBibG9jay4iCi0rPj4+IHByaW50KCJEb2N0ZXN0IGJsb2NrLiIpCi0g RG9jdGVzdCBibG9jay4KLSAKLSBQYXJhZ3JhcGguCi1AQCAtMzEsNyArMzEsNyBAQCBQYXJhZ3Jh cGguCi0gICAgIDxwYXJhZ3JhcGg+Ci0gICAgICAgICBQYXJhZ3JhcGguCi0gICAgIDxkb2N0ZXN0 X2Jsb2NrIHhtbDpzcGFjZT0icHJlc2VydmUiPgotLSAgICAgICAgPj4+IHByaW50ICJEb2N0ZXN0 IGJsb2NrLiIKLSsgICAgICAgID4+PiBwcmludCgiRG9jdGVzdCBibG9jay4iKQotICAgICAgICAg RG9jdGVzdCBibG9jay4KLSAgICAgPHBhcmFncmFwaD4KLSAgICAgICAgIFBhcmFncmFwaC4KLUBA IC0zOSw3ICszOSw3IEBAIFBhcmFncmFwaC4KLSBbIiIiXAotIFBhcmFncmFwaC4KLSAKLS0+Pj4g cHJpbnQgIiAgICBJbmRlbnRlZCBvdXRwdXQuIgotKz4+PiBwcmludCgiICAgIEluZGVudGVkIG91 dHB1dC4iKQotICAgICBJbmRlbnRlZCBvdXRwdXQuCi0gIiIiLAotICIiIlwKLUBAIC00NywxMyAr NDcsMTMgQEAgUGFyYWdyYXBoLgotICAgICA8cGFyYWdyYXBoPgotICAgICAgICAgUGFyYWdyYXBo LgotICAgICA8ZG9jdGVzdF9ibG9jayB4bWw6c3BhY2U9InByZXNlcnZlIj4KLS0gICAgICAgID4+ PiBwcmludCAiICAgIEluZGVudGVkIG91dHB1dC4iCi0rICAgICAgICA+Pj4gcHJpbnQoIiAgICBJ bmRlbnRlZCBvdXRwdXQuIikKLSAgICAgICAgICAgICBJbmRlbnRlZCBvdXRwdXQuCi0gIiIiXSwK LSBbIiIiXAotIFBhcmFncmFwaC4KLSAKLS0gICAgPj4+IHByaW50ICIgICAgSW5kZW50ZWQgYmxv Y2sgJiBvdXRwdXQuIgotKyAgICA+Pj4gcHJpbnQoIiAgICBJbmRlbnRlZCBibG9jayAmIG91dHB1 dC4iKQotICAgICAgICAgSW5kZW50ZWQgYmxvY2sgJiBvdXRwdXQuCi0gIiIiLAotICIiIlwKLUBA IC02Miw3ICs2Miw3IEBAIFBhcmFncmFwaC4KLSAgICAgICAgIFBhcmFncmFwaC4KLSAgICAgPGJs b2NrX3F1b3RlPgotICAgICAgICAgPGRvY3Rlc3RfYmxvY2sgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+ Ci0tICAgICAgICAgICAgPj4+IHByaW50ICIgICAgSW5kZW50ZWQgYmxvY2sgJiBvdXRwdXQuIgot KyAgICAgICAgICAgID4+PiBwcmludCgiICAgIEluZGVudGVkIGJsb2NrICYgb3V0cHV0LiIpCi0g ICAgICAgICAgICAgICAgIEluZGVudGVkIGJsb2NrICYgb3V0cHV0LgotICIiIl0sCi0gXQotZGlm ZiAtLWdpdCBhL3Rlc3QvdGVzdF9zZXR0aW5ncy5weSBiL3Rlc3QvdGVzdF9zZXR0aW5ncy5weQot aW5kZXggNWI2ODdlYi4uZDEwMWE1OSAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9zZXR0aW5ncy5w eQotKysrIGIvdGVzdC90ZXN0X3NldHRpbmdzLnB5Ci1AQCAtOCw2ICs4LDcgQEAKLSAiIiIKLSBU ZXN0cyBvZiBydW50aW1lIHNldHRpbmdzLgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQg cHJpbnRfZnVuY3Rpb24KLSAKLSBpbXBvcnQgc3lzCi0gaW1wb3J0IG9zCi1AQCAtMTExLDEwICsx MTIsMTAgQEAgY2xhc3MgQ29uZmlnRmlsZVRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAg ICAgIHRyeToKLSAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdCwgZXhwZWN0ZWQp Ci0gICAgICAgICBleGNlcHQgQXNzZXJ0aW9uRXJyb3I6Ci0tICAgICAgICAgICAgcHJpbnQgPj5z eXMuc3RkZXJyLCAnXG4lc1xuJyAlIChzZWxmLCkKLS0gICAgICAgICAgICBwcmludCA+PnN5cy5z dGRlcnIsICctOiBleHBlY3RlZFxuKzogcmVzdWx0JwotLSAgICAgICAgICAgIHByaW50ID4+c3lz LnN0ZGVyciwgJycuam9pbihzZWxmLmNvbXBhcmUoZXhwZWN0ZWQuc3BsaXRsaW5lcygxKSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3Vs dC5zcGxpdGxpbmVzKDEpKSkKLSsgICAgICAgICAgICBwcmludCgnXG4lc1xuJyAlIChzZWxmLCks IGZpbGU9c3lzLnN0ZGVycikKLSsgICAgICAgICAgICBwcmludCgnLTogZXhwZWN0ZWRcbis6IHJl c3VsdCcsIGZpbGU9c3lzLnN0ZGVycikKLSsgICAgICAgICAgICBwcmludCgnJy5qb2luKHNlbGYu Y29tcGFyZShleHBlY3RlZC5zcGxpdGxpbmVzKDEpLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnNwbGl0bGluZXMoMSkpKSwgZmls ZT1zeXMuc3RkZXJyKQotICAgICAgICAgICAgIHJhaXNlCi0gCi0gICAgIGRlZiB0ZXN0X25vZmls ZXMoc2VsZik6Ci1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3N0YXRlbWFjaGluZS5weSBiL3Rlc3Qv dGVzdF9zdGF0ZW1hY2hpbmUucHkKLWluZGV4IDA3YzU2MWUuLjYzNTJjYTQgMTAwNzU1Ci0tLS0g YS90ZXN0L3Rlc3Rfc3RhdGVtYWNoaW5lLnB5Ci0rKysgYi90ZXN0L3Rlc3Rfc3RhdGVtYWNoaW5l LnB5Ci1AQCAtNyw2ICs3LDcgQEAKLSAiIiIKLSBUZXN0IG1vZHVsZSBmb3Igc3RhdGVtYWNoaW5l LnB5LgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KLSAKLSBp bXBvcnQgdW5pdHRlc3QKLSBpbXBvcnQgc3lzCi1AQCAtNTYsNDcgKzU3LDQ3IEBAIGNsYXNzIE1v Y2tTdGF0ZShzdGF0ZW1hY2hpbmUuU3RhdGVXUyk6Ci0gICAgIGRlZiBib2Yoc2VsZiwgY29udGV4 dCk6Ci0gICAgICAgICBzZWxmLmxldmVsaG9sZGVyWzBdICs9IDEKLSAgICAgICAgIHNlbGYubGV2 ZWwgPSBzZWxmLmxldmVsaG9sZGVyWzBdCi0tICAgICAgICBpZiBzZWxmLmRlYnVnOiBwcmludCA+ PnN5cy5zdGRlcnIsICdTdGF0ZU1hY2hpbmUlcycgJSBzZWxmLmxldmVsCi0rICAgICAgICBpZiBz ZWxmLmRlYnVnOiBwcmludCgnU3RhdGVNYWNoaW5lJXMnICUgc2VsZi5sZXZlbCwgZmlsZT1zeXMu c3RkZXJyKQotICAgICAgICAgcmV0dXJuIFtdLCBbJ1N0YXRlTWFjaGluZSVzJyAlIHNlbGYubGV2 ZWxdCi0gCi0gICAgIGRlZiBibGFuayhzZWxmLCBtYXRjaCwgY29udGV4dCwgbmV4dF9zdGF0ZSk6 Ci0gICAgICAgICByZXN1bHQgPSBbJ2JsYW5rJXMnICUgc2VsZi5sZXZlbF0KLS0gICAgICAgIGlm IHNlbGYuZGVidWc6IHByaW50ID4+c3lzLnN0ZGVyciwgJ2JsYW5rJXMnICUgc2VsZi5sZXZlbAot KyAgICAgICAgaWYgc2VsZi5kZWJ1ZzogcHJpbnQoJ2JsYW5rJXMnICUgc2VsZi5sZXZlbCwgZmls ZT1zeXMuc3RkZXJyKQotICAgICAgICAgaWYgY29udGV4dCBhbmQgY29udGV4dFstMV0gYW5kIGNv bnRleHRbLTFdWy0yOl0gPT0gJzo6JzoKLSAgICAgICAgICAgICByZXN1bHQuZXh0ZW5kKHNlbGYu bGl0ZXJhbGJsb2NrKCkpCi0gICAgICAgICByZXR1cm4gW10sIE5vbmUsIHJlc3VsdAotIAotICAg ICBkZWYgaW5kZW50KHNlbGYsIG1hdGNoLCBjb250ZXh0LCBuZXh0X3N0YXRlKToKLS0gICAgICAg IGlmIHNlbGYuZGVidWc6IHByaW50ID4+c3lzLnN0ZGVyciwgJ2luZGVudCVzJyAlIHNlbGYubGV2 ZWwKLSsgICAgICAgIGlmIHNlbGYuZGVidWc6IHByaW50KCdpbmRlbnQlcycgJSBzZWxmLmxldmVs LCBmaWxlPXN5cy5zdGRlcnIpCi0gICAgICAgICBjb250ZXh0LCBuZXh0X3N0YXRlLCByZXN1bHQg PSBzdGF0ZW1hY2hpbmUuU3RhdGVXUy5pbmRlbnQoCi0gICAgICAgICAgICAgICBzZWxmLCBtYXRj aCwgY29udGV4dCwgbmV4dF9zdGF0ZSkKLSAgICAgICAgIHJldHVybiBjb250ZXh0LCBuZXh0X3N0 YXRlLCBbJ2luZGVudCVzJyAlIHNlbGYubGV2ZWxdICsgcmVzdWx0Ci0gCi0gICAgIGRlZiBrbm93 bl9pbmRlbnQoc2VsZiwgbWF0Y2gsIGNvbnRleHQsIG5leHRfc3RhdGUpOgotLSAgICAgICAgaWYg c2VsZi5kZWJ1ZzogcHJpbnQgPj5zeXMuc3RkZXJyLCAna25vd25faW5kZW50JXMnICUgc2VsZi5s ZXZlbAotKyAgICAgICAgaWYgc2VsZi5kZWJ1ZzogcHJpbnQoJ2tub3duX2luZGVudCVzJyAlIHNl bGYubGV2ZWwsIGZpbGU9c3lzLnN0ZGVycikKLSAgICAgICAgIGNvbnRleHQsIG5leHRfc3RhdGUs IHJlc3VsdCA9IHN0YXRlbWFjaGluZS5TdGF0ZVdTLmtub3duX2luZGVudCgKLSAgICAgICAgICAg ICAgIHNlbGYsIG1hdGNoLCBjb250ZXh0LCBuZXh0X3N0YXRlKQotICAgICAgICAgcmV0dXJuIGNv bnRleHQsIG5leHRfc3RhdGUsIFsna25vd25faW5kZW50JXMnICUgc2VsZi5sZXZlbF0gKyByZXN1 bHQKLSAKLSAgICAgZGVmIGJ1bGxldChzZWxmLCBtYXRjaCwgY29udGV4dCwgbmV4dF9zdGF0ZSk6 Ci0tICAgICAgICBpZiBzZWxmLmRlYnVnOiBwcmludCA+PnN5cy5zdGRlcnIsICdidWxsZXQlcycg JSBzZWxmLmxldmVsCi0rICAgICAgICBpZiBzZWxmLmRlYnVnOiBwcmludCgnYnVsbGV0JXMnICUg c2VsZi5sZXZlbCwgZmlsZT1zeXMuc3RkZXJyKQotICAgICAgICAgY29udGV4dCwgbmV4dF9zdGF0 ZSwgcmVzdWx0IFwKLSAgICAgICAgICAgICAgID0gc2VsZi5rbm93bl9pbmRlbnQobWF0Y2gsIGNv bnRleHQsIG5leHRfc3RhdGUpCi0gICAgICAgICByZXR1cm4gW10sIG5leHRfc3RhdGUsIFsnYnVs bGV0JXMnICUgc2VsZi5sZXZlbF0gKyByZXN1bHQKLSAKLSAgICAgZGVmIHRleHQoc2VsZiwgbWF0 Y2gsIGNvbnRleHQsIG5leHRfc3RhdGUpOgotLSAgICAgICAgaWYgc2VsZi5kZWJ1ZzogcHJpbnQg Pj5zeXMuc3RkZXJyLCAndGV4dCVzJyAlIHNlbGYubGV2ZWwKLSsgICAgICAgIGlmIHNlbGYuZGVi dWc6IHByaW50KCd0ZXh0JXMnICUgc2VsZi5sZXZlbCwgZmlsZT1zeXMuc3RkZXJyKQotICAgICAg ICAgcmV0dXJuIFttYXRjaC5zdHJpbmddLCBuZXh0X3N0YXRlLCBbJ3RleHQlcycgJSBzZWxmLmxl dmVsXQotIAotICAgICBkZWYgbGl0ZXJhbGJsb2NrKHNlbGYpOgotICAgICAgICAgaW5kZW50ZWQs IGluZGVudCwgb2Zmc2V0LCBnb29kID0gc2VsZi5zdGF0ZV9tYWNoaW5lLmdldF9pbmRlbnRlZCgp Ci0tICAgICAgICBpZiBzZWxmLmRlYnVnOiBwcmludCA+PnN5cy5zdGRlcnIsICdsaXRlcmFsYmxv Y2slcyglcyknICUgKHNlbGYubGV2ZWwsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGVudCkKLSsgICAgICAgIGlm IHNlbGYuZGVidWc6IHByaW50KCdsaXRlcmFsYmxvY2slcyglcyknICUgKHNlbGYubGV2ZWwsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGluZGVudCksIGZpbGU9c3lzLnN0ZGVycikKLSAgICAgICAgIHJldHVybiBbJ2xp dGVyYWxibG9jayVzKCVzKScgJSAoc2VsZi5sZXZlbCwgaW5kZW50KV0KLSAKLSAgICAgZGVmIGVv ZihzZWxmLCBjb250ZXh0KToKLSAgICAgICAgIHNlbGYubGV2ZWxob2xkZXJbMF0gLT0gMQotLSAg ICAgICAgaWYgc2VsZi5kZWJ1ZzogcHJpbnQgPj5zeXMuc3RkZXJyLCAnZmluaXNoZWQlcycgJSBz ZWxmLmxldmVsCi0rICAgICAgICBpZiBzZWxmLmRlYnVnOiBwcmludCgnZmluaXNoZWQlcycgJSBz ZWxmLmxldmVsLCBmaWxlPXN5cy5zdGRlcnIpCi0gICAgICAgICByZXR1cm4gWydmaW5pc2hlZCVz JyAlIHNlbGYubGV2ZWxdCi0gCi0gCi1AQCAtMTY5LDEwICsxNzAsMTAgQEAgY2xhc3MgU01XU1Rl c3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShnb29kKQot ICAgICAgICAgc2VsZi5zbS5wcmV2aW91c19saW5lKDMpCi0gICAgICAgICBpZiBzZWxmLnNtLmRl YnVnOgotLSAgICAgICAgICAgIHByaW50ICdcbnRlc3RfZ2V0X2luZGVudGVkOiBzZWxmLnNtLmxp bmU6XG4nLCBzZWxmLnNtLmxpbmUKLSsgICAgICAgICAgICBwcmludCgnXG50ZXN0X2dldF9pbmRl bnRlZDogc2VsZi5zbS5saW5lOlxuJywgc2VsZi5zbS5saW5lKQotICAgICAgICAgaW5kZW50ZWQs IGluZGVudCwgb2Zmc2V0LCBnb29kID0gc2VsZi5zbS5nZXRfaW5kZW50ZWQoKQotICAgICAgICAg aWYgc2VsZi5zbS5kZWJ1ZzoKLS0gICAgICAgICAgICBwcmludCAnXG50ZXN0X2dldF9pbmRlbnRl ZDogaW5kZW50ZWQ6XG4nLCBpbmRlbnRlZAotKyAgICAgICAgICAgIHByaW50KCdcbnRlc3RfZ2V0 X2luZGVudGVkOiBpbmRlbnRlZDpcbicsIGluZGVudGVkKQotICAgICAgICAgc2VsZi5hc3NlcnRF cXVhbChpbmRlbnQsIGxiaW5kZW50KQotICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbmRlbnRl ZCwgbGl0ZXJhbGJsb2NrKQotICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvZmZzZXQsIChsZW4o cGFyYTEpICsgbGVuKGl0ZW0xKSArIGxlbihpdGVtMikKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3Rf dHJhbnNmb3Jtcy90ZXN0X3NtYXJ0cXVvdGVzLnB5IGIvdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVz dF9zbWFydHF1b3Rlcy5weQotaW5kZXggZmI0NmIzMC4uZTI4NzRjMCAxMDA2NDQKLS0tLSBhL3Rl c3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3Rfc21hcnRxdW90ZXMucHkKLSsrKyBiL3Rlc3QvdGVzdF90 cmFuc2Zvcm1zL3Rlc3Rfc21hcnRxdW90ZXMucHkKLUBAIC0xOCw3ICsxOCw3IEBAIFRlc3QgbW9k dWxlIGZvciB1bml2ZXJzYWwuU21hcnRRdW90ZXMgdHJhbnNmb3JtLgotICIiIgotIAotIAotLWZy b20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQgIyBtdXN0IGJlIGltcG9ydGVk IGJlZm9yZSBkb2N1dGlscwotK2Zyb20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBv cnQgICMgbXVzdCBiZSBpbXBvcnRlZCBiZWZvcmUgZG9jdXRpbHMKLSBmcm9tIGRvY3V0aWxzLnRy YW5zZm9ybXMudW5pdmVyc2FsIGltcG9ydCBTbWFydFF1b3RlcwotIGZyb20gZG9jdXRpbHMucGFy c2Vycy5yc3QgaW1wb3J0IFBhcnNlcgotIAotQEAgLTY5LDExICs2OSwxMSBAQCBEbyBub3QgImVk dWNhdGUiIHF1b3RlcyBgYGluc2lkZSAibGl0ZXJhbCIgdGV4dGBgIGFuZCA6OgotICAgImxpdGVy YWwiIGJsb2Nrcy4KLSAKLSBLZWVwIHF1b3RlcyBzdHJhaWdodCBpbiBjb2RlIGFuZCBtYXRoOiAK LS06Y29kZTpgcHJpbnQgImhlbGxvImAgOm1hdGg6YDEnIDEyImAuCi0rOmNvZGU6YHByaW50KCJo ZWxsbyIpYCA6bWF0aDpgMScgMTIiYC4KLSAKLSAuLiBjb2RlOjoKLSAKLS0gICBwcmludCAiaGVs bG8iCi0rICAgcHJpbnQoImhlbGxvIikKLSAgIAotIC4uIG1hdGg6OgotIAotQEAgLTkyLDEzICs5 MiwxMyBAQCB1IiIiXAotICAgICA8cGFyYWdyYXBoPgotICAgICAgICAgS2VlcCBxdW90ZXMgc3Ry YWlnaHQgaW4gY29kZSBhbmQgbWF0aDoKLSAgICAgICAgIDxsaXRlcmFsIGNsYXNzZXM9ImNvZGUi PgotLSAgICAgICAgICAgIHByaW50ICJoZWxsbyIKLSsgICAgICAgICAgICBwcmludCgiaGVsbG8i KQotICAgICAgICAgIAotICAgICAgICAgPG1hdGg+Ci0gICAgICAgICAgICAgMScgMTIiCi0gICAg ICAgICAuCi0gICAgIDxsaXRlcmFsX2Jsb2NrIGNsYXNzZXM9ImNvZGUiIHhtbDpzcGFjZT0icHJl c2VydmUiPgotLSAgICAgICAgcHJpbnQgImhlbGxvIgotKyAgICAgICAgcHJpbnQoImhlbGxvIikK LSAgICAgPG1hdGhfYmxvY2sgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+Ci0gICAgICAgICBmJyh4KSA9 IGRmKHgpL2R4Ci0gIiIiXSwKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0 X3N0cmlwX2VsZW1lbnRzX3dpdGhfY2xhc3MucHkgYi90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0 X3N0cmlwX2VsZW1lbnRzX3dpdGhfY2xhc3MucHkKLWluZGV4IDdhMzZmYjkuLjY1MDM1ODYgMTAw NjQ0Ci0tLS0gYS90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X3N0cmlwX2VsZW1lbnRzX3dpdGhf Y2xhc3MucHkKLSsrKyBiL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3Rfc3RyaXBfZWxlbWVudHNf d2l0aF9jbGFzcy5weQotQEAgLTM3LDcgKzM3LDcgQEAgdGhpcyBpcyBoYW0KLSAuLiBjb2RlOjoK LSAgICA6Y2xhc3M6IHNwYW0KLSAgICAKLS0gICBwcmludCAic3BhbSIKLSsgICBwcmludCgic3Bh bSIpCi0gICAgCi0gLi4gaW1hZ2U6OiBzcGFtLmpwZwotICAgIDpjbGFzczogc3BhbQotZGlmZiAt LWdpdCBhL3Rlc3QvdGVzdF92aWV3bGlzdC5weSBiL3Rlc3QvdGVzdF92aWV3bGlzdC5weQotaW5k ZXggMjNiYTAzMy4uZjVkZjU0OCAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF92aWV3bGlzdC5weQot KysrIGIvdGVzdC90ZXN0X3ZpZXdsaXN0LnB5Ci1AQCAtOSw4ICs5LDYgQEAgVGVzdCBtb2R1bGUg Zm9yIHRoZSBWaWV3TGlzdCBjbGFzcyBmcm9tIHN0YXRlbWFjaGluZS5weS4KLSAiIiIKLSAKLSBp bXBvcnQgdW5pdHRlc3QKLS1pbXBvcnQgc3lzCi0taW1wb3J0IHJlCi0gZnJvbSBEb2N1dGlsc1Rl c3RTdXBwb3J0IGltcG9ydCBzdGF0ZW1hY2hpbmUKLSAKLSAKLUBAIC03Niw3ICs3NCw2IEBAIGNs YXNzIFZpZXdMaXN0VGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgotICAgICAgICAgc2VsZi5hc3Nl cnRFcXVhbChhLCBhX2xpc3QpCi0gICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEuaXRlbXMsIFso J2EnLCBpKzEpIGZvciAoaSwgdikgaW4gZW51bWVyYXRlKGFfbGlzdCldKQotICAgICAgICAgc2Vs Zi5hc3NlcnRFcXVhbChhLnBhcmVudCwgc2VsZi5hKQotLSAgICAgICAgIyBhLnBwcmludCgpCi0g Ci0gICAgIGRlZiB0ZXN0X3NldF9zbGljZShzZWxmKToKLSAgICAgICAgIGEgPSBzdGF0ZW1hY2hp bmUuVmlld0xpc3Qoc2VsZi5hWzpdKQotQEAgLTg0LDggKzgxLDYgQEAgY2xhc3MgVmlld0xpc3RU ZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgICAgICBzWzI6Ml0gPSBzZWxmLmIKLSAgICAg ICAgIHNfbGlzdCA9IHNlbGYuYV9saXN0WzI6LTJdCi0gICAgICAgICBzX2xpc3RbMjoyXSA9IHNl bGYuYl9saXN0Ci0tICAgICAgICAjIHMucHByaW50KCkKLS0gICAgICAgICMgc1sxOjRdLnBwcmlu dCgpCi0gICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHMsIHNfbGlzdCkKLSAgICAgICAgIHNlbGYu YXNzZXJ0RXF1YWwocywgYVsyOi0yXSkKLSAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocy5pdGVt cywgYVsyOi0yXS5pdGVtcykKLUBAIC0xMTksNyArMTE0LDYgQEAgY2xhc3MgVmlld0xpc3RUZXN0 cyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgICAgICBhID0gc3RhdGVtYWNoaW5lLlZpZXdMaXN0 KHNlbGYuYSkKLSAgICAgICAgIGEuYXBwZW5kKCdRJywgJ3J1bnRpbWUnKQotICAgICAgICAgYS5h cHBlbmQoc2VsZi5iKQotLSAgICAgICAgIyBhLnBwcmludCgpCi0gICAgICAgICBzZWxmLmFzc2Vy dEVxdWFsKGEsIGFfbGlzdCkKLSAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYS5pbmZvKGxlbihz ZWxmLmEpKSwgKCdydW50aW1lJywgMCkpCi0gICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEuaW5m bygtMiksICgnYicsIGxlbihzZWxmLmIpIC0gMikpCi1AQCAtMTMxLDcgKzEyNSw2IEBAIGNsYXNz IFZpZXdMaXN0VGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgotICAgICAgICAgYS5leHRlbmQoc2Vs Zi5iKQotICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhLCBhX2xpc3QpCi0gICAgICAgICBzZWxm LmFzc2VydEVxdWFsKGEuaW5mbyhsZW4oc2VsZi5hKSArIDEpLCAoJ2InLCAxKSkKLS0gICAgICAg ICMgYS5wcHJpbnQoKQotIAotICAgICBkZWYgdGVzdF92aWV3KHNlbGYpOgotICAgICAgICAgYSA9 IHN0YXRlbWFjaGluZS5WaWV3TGlzdChzZWxmLmFbOl0pCi1AQCAtMTc2LDE2ICsxNjksOSBAQCBj bGFzcyBWaWV3TGlzdFRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAgZGVmIHRlc3Rfc29y dChzZWxmKToKLSAgICAgICAgIGMgPSBzZWxmLmNbOl0KLSAgICAgICAgIGMucmV2ZXJzZSgpCi0t ICAgICAgICAjIGMucHByaW50KCkKLSAgICAgICAgIGMuc29ydCgpCi0gICAgICAgICBzZWxmLmFz c2VydEVxdWFsKHNlbGYuYywgYykKLSAKLS0jICAgICAgICAgcHJpbnQKLS0jICAgICAgICAgcHJp bnQgYQotLSMgICAgICAgICBwcmludCBzCi0tIyAgICAgICAgIHByaW50IGEuaXRlbXMKLS0jICAg ICAgICAgcHJpbnQgcy5pdGVtcwotLQotIAotIGNsYXNzIFN0cmluZ0xpc3QodW5pdHRlc3QuVGVz dENhc2UpOgotIAotZGlmZiAtLWdpdCBhL3Rvb2xzL2Rldi9jcmVhdGVfdW5pbWFwLnB5IGIvdG9v bHMvZGV2L2NyZWF0ZV91bmltYXAucHkKLWluZGV4IGExZDkyYWMuLjg1YWMyNjQgMTAwNzU1Ci0t LS0gYS90b29scy9kZXYvY3JlYXRlX3VuaW1hcC5weQotKysrIGIvdG9vbHMvZGV2L2NyZWF0ZV91 bmltYXAucHkKLUBAIC05LDYgKzksNyBAQAotICMgR2V0IHVuaWNvZGUueG1sIGZyb20KLSAjIDxo dHRwOi8vd3d3LnczLm9yZy8yMDAzL2VudGl0aWVzL3htbC91bmljb2RlLnhtbD4uCi0gCi0rZnJv bSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgotIGZyb20geG1sLmRvbSBpbXBvcnQg bWluaWRvbQotIGltcG9ydCBzeXMKLSBpbXBvcnQgcHByaW50Ci1kaWZmIC0tZ2l0IGEvdG9vbHMv ZGV2L2dlbmVyYXRlX3B1bmN0dWF0aW9uX2NoYXJzLnB5IGIvdG9vbHMvZGV2L2dlbmVyYXRlX3B1 bmN0dWF0aW9uX2NoYXJzLnB5Ci1pbmRleCBlMDU1MTVkLi41OTQ3ZmU1IDEwMDY0NAotLS0tIGEv dG9vbHMvZGV2L2dlbmVyYXRlX3B1bmN0dWF0aW9uX2NoYXJzLnB5Ci0rKysgYi90b29scy9kZXYv Z2VuZXJhdGVfcHVuY3R1YXRpb25fY2hhcnMucHkKLUBAIC0zMywxNCArMzMsMTMgQEAKLSAjIC4u IF9pbmxpbmUgbWFya3VwIHJlY29nbml0aW9uIHJ1bGVzOgotICMgICAgIC4uLy4uL2RvY3MvcmVm L3JzdC9yZXN0cnVjdHVyZWR0ZXh0Lmh0bWwjaW5saW5lLW1hcmt1cAotIAotK2Zyb20gX19mdXR1 cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KLSAKLS0jIFNldHVwOjoKLS0KLS1pbXBvcnQgc3lz LCByZQotK2ltcG9ydCBzeXMKLSBpbXBvcnQgdW5pY29kZWRhdGEKLSAKLSBpZiBzeXMudmVyc2lv bl9pbmZvID49ICgzLCk6Ci0tICAgIHVuaWNociA9IGNociAjIHVuaWNociBub3QgYXZhaWxhYmxl IGluIFB5M2sKLSsgICAgdW5pY2hyID0gY2hyICAjIHVuaWNociBub3QgYXZhaWxhYmxlIGluIFB5 M2sKLSBlbHNlOgotICAgICBpbXBvcnQgY29kZWNzCi0gICAgIHN5cy5zdGRvdXQgPSBjb2RlY3Mu Z2V0d3JpdGVyKCdVVEYtOCcpKHN5cy5zdGRvdXQpCi1AQCAtNDIxLDQ0ICs0MjAsMyBAQCBpZiBf X25hbWVfXyA9PSAnX19tYWluX18nOgotICAgICAgICAgfQotIAotICAgICBwcmludChtb2R1bGVf dGVtcGxhdGUgJSBzdWJzdGl0dXRpb25zKQotLQotLQotLSMgdGVzdCBwcmludHMKLS0jIH5+fn5+ fn5+fn5+Ci0tIwotLSMgRm9yIGludGVyYWN0aXZlIHVzZSBpbiBkZXZlbG9wbWVudCB5b3UgbWF5 IHVuY29tbWVudCB0aGUgZm9sbG93aW5nCi0tIyBkZWZpbml0aW9uczo6Ci0tCi0tICAgICMgcHJp bnQgIndpZGUiIFVuaWNvZGUgY2hhcmFjdGVyczoKLS0gICAgIyB1Y2hhcmxpc3RzID0gdW5pY29k ZV9jaGFybGlzdHModW5pY29kZV9wdW5jdHVhdGlvbl9jYXRlZ29yaWVzKQotLSAgICAjIGZvciBr ZXkgaW4gdWNoYXJsaXN0czoKLS0gICAgIyAgICAgaWYga2V5LmVuZHN3aXRoKCd3aWRlJyk6Ci0t ICAgICMgICAgICAgICBwcmludCBrZXksIHVjaGFybGlzdHNba2V5XQotLQotLSAgICAjIHByaW50 ICdvcGVuZXJzID0gJywgcmVwcihvcGVuZXJzKQotLSAgICAjIHByaW50ICdjbG9zZXJzID0gJywg cmVwcihjbG9zZXJzKQotLSAgICAjIHByaW50ICdkZWxpbWl0ZXJzID0gJywgcmVwcihkZWxpbWl0 ZXJzKQotLSAgICAjIHByaW50ICdjbG9zaW5nX2RlbGltaXRlcnMgPSAnLCByZXByKGNsb3Npbmdf ZGVsaW1pdGVycykKLS0KLS0gICAgIyB1Y2hhcmxpc3RzID0gdW5pY29kZV9jaGFybGlzdHModW5p Y29kZV9wdW5jdHVhdGlvbl9jYXRlZ29yaWVzKQotLSAgICAjIGZvciBjYXQsIGNoYXJzIGluIHVj aGFybGlzdHMuaXRlbXMoKToKLS0gICAgIyAgICAgIyBwcmludCBjYXQsIGNoYXJzCi0tICAgICMg ICAgICMgY29tcGFjdCBvdXRwdXQgKHZpc2libGUgd2l0aCBhIGNvbXByZWhlbnNpdmUgZm9udCk6 Ci0tICAgICMgICAgIHByaW50ICh1IjolczogJXMiICUgKGNhdCwgdScnLmpvaW4oY2hhcnMpKSku ZW5jb2RlKCd1dGY4JykKLS0KLS0jIHZlcmJvc2UgcHJpbnQKLS0jCi0tIyA6OgotLQotLSAgICAj IHByaW50ICdvcGVuZXJzOicKLS0gICAgIyBmb3IgY2ggaW4gb3BlbmVyczoKLS0gICAgIyAgICAg cHJpbnQgY2guZW5jb2RlKCd1dGY4JyksIHVuaWNvZGVkYXRhLm5hbWUoY2gpCi0tICAgICMgcHJp bnQgJ2Nsb3NlcnM6JwotLSAgICAjIGZvciBjaCBpbiBjbG9zZXJzOgotLSAgICAjICAgICBwcmlu dCBjaC5lbmNvZGUoJ3V0ZjgnKSwgdW5pY29kZWRhdGEubmFtZShjaCkKLS0gICAgIyBwcmludCAn ZGVsaW1pdGVyczonCi0tICAgICMgZm9yIGNoIGluIGRlbGltaXRlcnM6Ci0tICAgICMgICAgIHBy aW50IGNoLmVuY29kZSgndXRmOCcpLCB1bmljb2RlZGF0YS5uYW1lKGNoKQotLSAgICAjIHByaW50 ICdjbG9zaW5nX2RlbGltaXRlcnM6JwotLSAgICAjIGZvciBjaCBpbiBjbG9zaW5nX2RlbGltaXRl cnM6Ci0tICAgICMgICAgIHByaW50IGNoLmVuY29kZSgndXRmOCcpLCB1bmljb2RlZGF0YS5uYW1l KGNoKQotZGlmZiAtLWdpdCBhL3Rvb2xzL2Rldi9wcm9maWxlX2RvY3V0aWxzLnB5IGIvdG9vbHMv ZGV2L3Byb2ZpbGVfZG9jdXRpbHMucHkKLWluZGV4IDFmNDNlY2MuLjRiOTEyNWQgMTAwNzU1Ci0t LS0gYS90b29scy9kZXYvcHJvZmlsZV9kb2N1dGlscy5weQotKysrIGIvdG9vbHMvZGV2L3Byb2Zp bGVfZG9jdXRpbHMucHkKLUBAIC00LDYgKzQsNyBAQAotICMgQXV0aG9yOiBMZWEgV2llbWFubiA8 TGVXaWVtYW5uQGdtYWlsLmNvbT4KLSAjIENvcHlyaWdodDogVGhpcyBzY3JpcHQgaGFzIGJlZW4g cGxhY2VkIGluIHRoZSBwdWJsaWMgZG9tYWluLgotIAotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQg cHJpbnRfZnVuY3Rpb24KLSBpbXBvcnQgb3MucGF0aAotIGltcG9ydCBkb2N1dGlscy5jb3JlCi0g aW1wb3J0IGhvdHNob3Quc3RhdHMKLWRpZmYgLS1naXQgYS90b29scy9kZXYvdW5pY29kZTJyc3Rz dWJzLnB5IGIvdG9vbHMvZGV2L3VuaWNvZGUycnN0c3Vicy5weQotaW5kZXggZDcxOTAwNS4uYjUx ZWVjNCAxMDA3NTUKLS0tLSBhL3Rvb2xzL2Rldi91bmljb2RlMnJzdHN1YnMucHkKLSsrKyBiL3Rv b2xzL2Rldi91bmljb2RlMnJzdHN1YnMucHkKLUBAIC0xOSw2ICsxOSw3IEBAIFRoZSBpbnB1dCBm aWxlLCB1bmljb2RlLnhtbCwgaXMgbWFpbnRhaW5lZCBhcyBwYXJ0IG9mIHRoZSBNYXRoTUwgMgot IFJlY29tbWVudGF0aW9uIFhNTCBzb3VyY2UsIGFuZCBpcyBhdmFpbGFibGUgZnJvbQotIDxodHRw Oi8vd3d3LnczLm9yZy8yMDAzL2VudGl0aWVzL3htbC8+LgotICIiIgotK2Zyb20gX19mdXR1cmVf XyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KLSAKLSBpbXBvcnQgc3lzCi0gaW1wb3J0IG9zCi1kaWZm IC0tZ2l0IGEvdG9vbHMvcXVpY2t0ZXN0LnB5IGIvdG9vbHMvcXVpY2t0ZXN0LnB5Ci1pbmRleCA0 ZGRiZTU5Li4zYjZiNmI0IDEwMDc1NQotLS0tIGEvdG9vbHMvcXVpY2t0ZXN0LnB5Ci0rKysgYi90 b29scy9xdWlja3Rlc3QucHkKLUBAIC01LDYgKzUsNyBAQAotICMgICAgICAgICAgRGF2aWQgR29v ZGdlciA8Z29vZGdlckBweXRob24ub3JnPgotICMgQ29weXJpZ2h0OiBUaGlzIG1vZHVsZSBoYXMg YmVlbiBwbGFjZWQgaW4gdGhlIHB1YmxpYyBkb21haW4uCi0gCi0rZnJvbSBfX2Z1dHVyZV9fIGlt cG9ydCBwcmludF9mdW5jdGlvbgotIHRyeToKLSAgICAgaW1wb3J0IGxvY2FsZQotICAgICBsb2Nh bGUuc2V0bG9jYWxlKGxvY2FsZS5MQ19BTEwsICcnKQotZGlmZiAtLWdpdCBhL3Rvb2xzL3JzdDJv ZHRfcHJlcHN0eWxlcy5weSBiL3Rvb2xzL3JzdDJvZHRfcHJlcHN0eWxlcy5weQotaW5kZXggYjBi N2RjYy4uNjdmODk0MiAxMDA3NTUKLS0tLSBhL3Rvb2xzL3JzdDJvZHRfcHJlcHN0eWxlcy5weQot KysrIGIvdG9vbHMvcnN0Mm9kdF9wcmVwc3R5bGVzLnB5Ci1AQCAtOSw5ICs5LDEwIEBAIEZpeCBh IHdvcmQtcHJvY2Vzc29yLWdlbmVyYXRlZCBzdHlsZXMub2R0IGZvciBvZHR3cml0ZXIgdXNlOiBE cm9wIHBhZ2Ugc2l6ZQotIHNwZWNpZmljYXRpb25zIGZyb20gc3R5bGVzLnhtbCBpbiBTVFlMRV9G SUxFLm9kdC4KLSAiIiIKLSAKLS0jCi0gIyBBdXRob3I6IE1pY2hhZWwgU2NodXR0ZSA8bWljaGlA dWlhZS5hdD4KLSAKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCi0rCi0g ZnJvbSBseG1sIGltcG9ydCBldHJlZQotIGltcG9ydCBzeXMKLSBpbXBvcnQgemlwZmlsZQotQEAg LTI0LDI4ICsyNSwyOSBAQCBOQU1FU1BBQ0VTID0gewotICAgICAiZm8iOiAidXJuOm9hc2lzOm5h bWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczp4c2wtZm8tY29tcGF0aWJsZToxLjAiCi0gfQotIAot KwotIGRlZiBwcmVwc3R5bGUoZmlsZW5hbWUpOgotLSAgICAKLSsKLSAgICAgemluID0gemlwZmls ZS5aaXBGaWxlKGZpbGVuYW1lKQotICAgICBzdHlsZXMgPSB6aW4ucmVhZCgic3R5bGVzLnhtbCIp Ci0tICAgIAotKwotICAgICByb290ID0gZXRyZWUuZnJvbXN0cmluZyhzdHlsZXMpCi0tICAgIGZv ciBlbCBpbiByb290LnhwYXRoKCIvL3N0eWxlOnBhZ2UtbGF5b3V0LXByb3BlcnRpZXMiLCAKLS0g ICAgICAgIG5hbWVzcGFjZXM9TkFNRVNQQUNFUyk6Ci0rICAgIGZvciBlbCBpbiByb290LnhwYXRo KCIvL3N0eWxlOnBhZ2UtbGF5b3V0LXByb3BlcnRpZXMiLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICBuYW1lc3BhY2VzPU5BTUVTUEFDRVMpOgotICAgICAgICAgZm9yIGF0dHIgaW4gZWwuYXR0 cmliOgotICAgICAgICAgICAgIGlmIGF0dHIuc3RhcnRzd2l0aCgieyVzfSIgJSBOQU1FU1BBQ0VT WyJmbyJdKToKLSAgICAgICAgICAgICAgICAgZGVsIGVsLmF0dHJpYlthdHRyXQotLSAgICAKLSsK LSAgICAgdGVtcG5hbWUgPSBta3N0ZW1wKCkKLSAgICAgem91dCA9IHppcGZpbGUuWmlwRmlsZShv cy5mZG9wZW4odGVtcG5hbWVbMF0sICJ3IiksICJ3IiwKLS0gICAgICAgIHppcGZpbGUuWklQX0RF RkxBVEVEKQotLSAgICAKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICB6aXBmaWxlLlpJUF9E RUZMQVRFRCkKLSsKLSAgICAgZm9yIGl0ZW0gaW4gemluLmluZm9saXN0KCk6Ci0gICAgICAgICBp ZiBpdGVtLmZpbGVuYW1lID09ICJzdHlsZXMueG1sIjoKLSAgICAgICAgICAgICB6b3V0LndyaXRl c3RyKGl0ZW0sIGV0cmVlLnRvc3RyaW5nKHJvb3QpKQotICAgICAgICAgZWxzZToKLSAgICAgICAg ICAgICB6b3V0LndyaXRlc3RyKGl0ZW0sIHppbi5yZWFkKGl0ZW0uZmlsZW5hbWUpKQotLSAgICAK LSsKLSAgICAgem91dC5jbG9zZSgpCi0gICAgIHppbi5jbG9zZSgpCi0gICAgIHNodXRpbC5tb3Zl KHRlbXBuYW1lWzFdLCBmaWxlbmFtZSkKLUBAIC01NCwxNCArNTYsMTIgQEAgZGVmIHByZXBzdHls ZShmaWxlbmFtZSk6Ci0gZGVmIG1haW4oKToKLSAgICAgYXJncyA9IHN5cy5hcmd2WzE6XQotICAg ICBpZiBsZW4oYXJncykgIT0gMToKLS0gICAgICAgIHByaW50ID4+IHN5cy5zdGRlcnIsIF9fZG9j X18KLS0gICAgICAgIHByaW50ID4+IHN5cy5zdGRlcnIsICJVc2FnZTogJXMgU1RZTEVfRklMRS5v ZHRcbiIgJSBzeXMuYXJndlswXQotKyAgICAgICAgcHJpbnQoX19kb2NfXywgZmlsZT1zeXMuc3Rk ZXJyKQotKyAgICAgICAgcHJpbnQoIlVzYWdlOiAlcyBTVFlMRV9GSUxFLm9kdFxuIiAlIHN5cy5h cmd2WzBdLCBmaWxlPXN5cy5zdGRlcnIpCi0gICAgICAgICBzeXMuZXhpdCgxKQotICAgICBmaWxl bmFtZSA9IGFyZ3NbMF0KLSAgICAgcHJlcHN0eWxlKGZpbGVuYW1lKQotIAotKwotIGlmIF9fbmFt ZV9fID09ICdfX21haW5fXyc6Ci0gICAgIG1haW4oKQotLQotLQotLSMgdmltOnR3PTc4OnN3PTQ6 c3RzPTQ6ZXQ6Ci0tLSAKLTIuMjQuMC4zNzUuZ2ViNWFlNjhkNDEKLQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDAzLXB5My1Td2l0Y2gtdG8tZXhjZXB0LWZv by1hcy1iYXItc3ludGF4LnBhdGNoIGIvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8w MDAzLXB5My1Td2l0Y2gtdG8tZXhjZXB0LWZvby1hcy1iYXItc3ludGF4LnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNjFlYjYyYzE0ZS4uMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDAzLXB5My1Td2l0Y2gtdG8tZXhjZXB0LWZv by1hcy1iYXItc3ludGF4LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNzE5ICswLDAgQEAKLUZy b20gYzM2MTI3MGZiNGVlOTE3MmEzMzdmNWU5YzBiMDE0YjM2MmZiMGI3MSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKLUZyb206IFN0ZXBoZW4gRmludWNhbmUgPHN0ZXBoZW5AdGhhdC5ndXJ1Pgot RGF0ZTogVHVlLCAxOSBOb3YgMjAxOSAyMzo0OTozNSArMDcwMAotU3ViamVjdDogW1BBVENIIDAz LzI2XSBweTM6IFN3aXRjaCB0byAnZXhjZXB0IGZvbyBhcyBiYXInIHN5bnRheAotCi1UaGlzIGlz IHRoZSBvbmx5IGZvcm0gc3VwcG9ydGVkIGluIFB5dGhvbiAzLnguCi0KLVNpZ25lZC1vZmYtYnk6 IFN0ZXBoZW4gRmludWNhbmUgPHN0ZXBoZW5AdGhhdC5ndXJ1PgotCi1naXQtc3ZuLWlkOiBodHRw Oi8vc3ZuLmNvZGUuc2YubmV0L3AvZG9jdXRpbHMvY29kZS90cnVua0A4MzQ3IDkyOTU0M2Y2LWU0 ZjItMDMxMC05OGE2LWJhM2JkM2RkMWQwNAotU2lnbmVkLW9mZi1ieTogRG9hbiBUcmFuIENvbmcg RGFuaCA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+Ci0tLS0KLSBkb2N1dGlscy9jb3JlLnB5ICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKystLQotIGRvY3V0aWxzL2Zyb250ZW5kLnB5ICAg ICAgICAgICAgICAgICAgICAgICAgfCAgOCArKysrLS0tLQotIGRvY3V0aWxzL2lvLnB5ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAxMiArKysrKystLS0tLS0KLSBkb2N1dGlscy9wYXJz ZXJzL3JzdC9kaXJlY3RpdmVzL19faW5pdF9fLnB5IHwgIDYgKysrLS0tCi0gZG9jdXRpbHMvcGFy c2Vycy9yc3QvZGlyZWN0aXZlcy9ib2R5LnB5ICAgICB8ICAyICstCi0gZG9jdXRpbHMvcGFyc2Vy cy9yc3QvZGlyZWN0aXZlcy9odG1sLnB5ICAgICB8ICAyICstCi0gZG9jdXRpbHMvcGFyc2Vycy9y c3QvZGlyZWN0aXZlcy9taXNjLnB5ICAgICB8IDIwICsrKysrKysrKystLS0tLS0tLS0tCi0gZG9j dXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy90YWJsZXMucHkgICB8IDEwICsrKysrLS0tLS0K LSBkb2N1dGlscy9wYXJzZXJzL3JzdC9yb2xlcy5weSAgICAgICAgICAgICAgIHwgIDQgKystLQot IGRvY3V0aWxzL3BhcnNlcnMvcnN0L3N0YXRlcy5weSAgICAgICAgICAgICAgfCAyMCArKysrKysr KysrLS0tLS0tLS0tLQotIGRvY3V0aWxzL3N0YXRlbWFjaGluZS5weSAgICAgICAgICAgICAgICAg ICAgfCAgNiArKystLS0KLSBkb2N1dGlscy91dGlscy9fX2luaXRfXy5weSAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KLSBkb2N1dGlscy91dGlscy9lcnJvcl9yZXBvcnRpbmcucHkgICAgICAgICAg IHwgIDQgKystLQotIGRvY3V0aWxzL3dyaXRlcnMvX2h0bWxfYmFzZS5weSAgICAgICAgICAgICAg fCAgNCArKy0tCi0gZG9jdXRpbHMvd3JpdGVycy9kb2N1dGlsc194bWwucHkgICAgICAgICAgICB8 ICAyICstCi0gZG9jdXRpbHMvd3JpdGVycy9sYXRleDJlL19faW5pdF9fLnB5ICAgICAgICB8ICAy ICstCi0gdGVzdC9Eb2N1dGlsc1Rlc3RTdXBwb3J0LnB5ICAgICAgICAgICAgICAgICB8ICA4ICsr KystLS0tCi0gdGVzdC9wYWNrYWdlX3VuaXR0ZXN0LnB5ICAgICAgICAgICAgICAgICAgICB8ICAy ICstCi0gdGVzdC90ZXN0X2Vycm9yX3JlcG9ydGluZy5weSAgICAgICAgICAgICAgICB8IDE0ICsr KysrKystLS0tLS0tCi0gdGVzdC90ZXN0X2xhbmd1YWdlLnB5ICAgICAgICAgICAgICAgICAgICAg ICB8ICA0ICsrLS0KLSB0ZXN0L3Rlc3RfcHVibGlzaGVyLnB5ICAgICAgICAgICAgICAgICAgICAg IHwgIDQgKystLQotIHRlc3QvdGVzdF91dGlscy5weSAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgMiArLQotIDIyIGZpbGVzIGNoYW5nZWQsIDcxIGluc2VydGlvbnMoKyksIDcxIGRlbGV0aW9u cygtKQotCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvY29yZS5weSBiL2RvY3V0aWxzL2NvcmUucHkK LWluZGV4IDZhOTkwMjAuLjEyYTBjOTMgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9jb3JlLnB5Ci0r KysgYi9kb2N1dGlscy9jb3JlLnB5Ci1AQCAtMjE5LDEwICsyMTksMTAgQEAgY2xhc3MgUHVibGlz aGVyKG9iamVjdCk6Ci0gICAgICAgICAgICAgc2VsZi5hcHBseV90cmFuc2Zvcm1zKCkKLSAgICAg ICAgICAgICBvdXRwdXQgPSBzZWxmLndyaXRlci53cml0ZShzZWxmLmRvY3VtZW50LCBzZWxmLmRl c3RpbmF0aW9uKQotICAgICAgICAgICAgIHNlbGYud3JpdGVyLmFzc2VtYmxlX3BhcnRzKCkKLS0g ICAgICAgIGV4Y2VwdCBTeXN0ZW1FeGl0LCBlcnJvcjoKLSsgICAgICAgIGV4Y2VwdCBTeXN0ZW1F eGl0IGFzIGVycm9yOgotICAgICAgICAgICAgIGV4aXQgPSAxCi0gICAgICAgICAgICAgZXhpdF9z dGF0dXMgPSBlcnJvci5jb2RlCi0tICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlcnJvcjoKLSsg ICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXJyb3I6Ci0gICAgICAgICAgICAgaWYgbm90IHNl bGYuc2V0dGluZ3M6ICAgICAgICMgZXhjZXB0aW9uIHRvbyBlYXJseSB0byByZXBvcnQgbmljZWx5 Ci0gICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICAgICAgaWYgc2VsZi5zZXR0aW5ncy50 cmFjZWJhY2s6ICMgUHJvcGFnYXRlIGV4Y2VwdGlvbnM/Ci1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMv ZnJvbnRlbmQucHkgYi9kb2N1dGlscy9mcm9udGVuZC5weQotaW5kZXggMWFlYWU1Yy4uNjg5ZDkw NCAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL2Zyb250ZW5kLnB5Ci0rKysgYi9kb2N1dGlscy9mcm9u dGVuZC5weQotQEAgLTYyLDcgKzYyLDcgQEAgZGVmIHJlYWRfY29uZmlnX2ZpbGUob3B0aW9uLCBv cHQsIHZhbHVlLCBwYXJzZXIpOgotICAgICAiIiIKLSAgICAgdHJ5OgotICAgICAgICAgbmV3X3Nl dHRpbmdzID0gcGFyc2VyLmdldF9jb25maWdfZmlsZV9zZXR0aW5ncyh2YWx1ZSkKLS0gICAgZXhj ZXB0IFZhbHVlRXJyb3IsIGVycm9yOgotKyAgICBleGNlcHQgVmFsdWVFcnJvciBhcyBlcnJvcjoK LSAgICAgICAgIHBhcnNlci5lcnJvcihlcnJvcikKLSAgICAgcGFyc2VyLnZhbHVlcy51cGRhdGUo bmV3X3NldHRpbmdzLCBwYXJzZXIpCi0gCi1AQCAtMzQ2LDcgKzM0Niw3IEBAIGNsYXNzIE9wdGlv bihvcHRwYXJzZS5PcHRpb24pOgotICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldGF0dHIodmFs dWVzLCBzZXR0aW5nKQotICAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAg ICBuZXdfdmFsdWUgPSBzZWxmLnZhbGlkYXRvcihzZXR0aW5nLCB2YWx1ZSwgcGFyc2VyKQotLSAg ICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlcnJvcjoKLSsgICAgICAgICAgICAgICAg ZXhjZXB0IEV4Y2VwdGlvbiBhcyBlcnJvcjoKLSAgICAgICAgICAgICAgICAgICAgIHJhaXNlIChv cHRwYXJzZS5PcHRpb25WYWx1ZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgICdFcnJv ciBpbiBvcHRpb24gIiVzIjpcbiAgICAlcycKLSAgICAgICAgICAgICAgICAgICAgICAgICAlIChv cHQsIEVycm9yU3RyaW5nKGVycm9yKSkpLAotQEAgLTYwNSw3ICs2MDUsNyBAQCBjbGFzcyBPcHRp b25QYXJzZXIob3B0cGFyc2UuT3B0aW9uUGFyc2VyLCBkb2N1dGlscy5TZXR0aW5nc1NwZWMpOgot ICAgICAgICAgaWYgcmVhZF9jb25maWdfZmlsZXMgYW5kIG5vdCBzZWxmLmRlZmF1bHRzWydfZGlz YWJsZV9jb25maWcnXToKLSAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgIGNvbmZp Z19zZXR0aW5ncyA9IHNlbGYuZ2V0X3N0YW5kYXJkX2NvbmZpZ19zZXR0aW5ncygpCi0tICAgICAg ICAgICAgZXhjZXB0IFZhbHVlRXJyb3IsIGVycm9yOgotKyAgICAgICAgICAgIGV4Y2VwdCBWYWx1 ZUVycm9yIGFzIGVycm9yOgotICAgICAgICAgICAgICAgICBzZWxmLmVycm9yKFNhZmVTdHJpbmco ZXJyb3IpKQotICAgICAgICAgICAgIHNlbGYuc2V0X2RlZmF1bHRzX2Zyb21fZGljdChjb25maWdf c2V0dGluZ3MuX19kaWN0X18pCi0gCi1AQCAtODI2LDcgKzgyNiw3IEBAIFNraXBwaW5nICIlcyIg Y29uZmlndXJhdGlvbiBmaWxlLgotICAgICAgICAgICAgICAgICAgICAgICAgIG5ld192YWx1ZSA9 IG9wdGlvbi52YWxpZGF0b3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmcs IHZhbHVlLCBvcHRpb25fcGFyc2VyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25m aWdfcGFyc2VyPXNlbGYsIGNvbmZpZ19zZWN0aW9uPXNlY3Rpb24pCi0tICAgICAgICAgICAgICAg ICAgICBleGNlcHQgRXhjZXB0aW9uLCBlcnJvcjoKLSsgICAgICAgICAgICAgICAgICAgIGV4Y2Vw dCBFeGNlcHRpb24gYXMgZXJyb3I6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgKFZh bHVlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICdFcnJvciBpbiBjb25maWcg ZmlsZSAiJXMiLCBzZWN0aW9uICJbJXNdIjpcbicKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJyAgICAlc1xuJwotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL2lvLnB5IGIvZG9jdXRpbHMvaW8u cHkKLWluZGV4IDNiMGY5M2UuLjQ0NjZmZGIgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9pby5weQot KysrIGIvZG9jdXRpbHMvaW8ucHkKLUBAIC0xMTQsNyArMTE0LDcgQEAgY2xhc3MgSW5wdXQoVHJh bnNmb3JtU3BlYyk6Ci0gICAgICAgICAgICAgICAgIHNlbGYuc3VjY2Vzc2Z1bF9lbmNvZGluZyA9 IGVuYwotICAgICAgICAgICAgICAgICAjIFJldHVybiBkZWNvZGVkLCByZW1vdmluZyBCT01zLgot ICAgICAgICAgICAgICAgICByZXR1cm4gZGVjb2RlZC5yZXBsYWNlKHUnXHVmZWZmJywgdScnKQot LSAgICAgICAgICAgIGV4Y2VwdCAoVW5pY29kZUVycm9yLCBMb29rdXBFcnJvciksIGVycjoKLSsg ICAgICAgICAgICBleGNlcHQgKFVuaWNvZGVFcnJvciwgTG9va3VwRXJyb3IpIGFzIGVycjoKLSAg ICAgICAgICAgICAgICAgZXJyb3IgPSBlcnIgIyBpbiBQeXRob24gMywgdGhlIDxleGNlcHRpb24g aW5zdGFuY2U+IGlzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgbG9jYWwgdG8gdGhl IGV4Y2VwdCBjbGF1c2UKLSAgICAgICAgIHJhaXNlIFVuaWNvZGVFcnJvcigKLUBAIC0yNDQsNyAr MjQ0LDcgQEAgY2xhc3MgRmlsZUlucHV0KElucHV0KToKLSAKLSAgICAgICAgICAgICAgICAgdHJ5 OgotICAgICAgICAgICAgICAgICAgICAgc2VsZi5zb3VyY2UgPSBvcGVuKHNvdXJjZV9wYXRoLCBt b2RlLCAqKmt3YXJncykKLS0gICAgICAgICAgICAgICAgZXhjZXB0IElPRXJyb3IsIGVycm9yOgot KyAgICAgICAgICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBlcnJvcjoKLSAgICAgICAgICAgICAg ICAgICAgIHJhaXNlIElucHV0RXJyb3IoZXJyb3IuZXJybm8sIGVycm9yLnN0cmVycm9yLCBzb3Vy Y2VfcGF0aCkKLSAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICBzZWxmLnNvdXJj ZSA9IHN5cy5zdGRpbgotQEAgLTI3Miw3ICsyNzIsNyBAQCBjbGFzcyBGaWxlSW5wdXQoSW5wdXQp OgotICAgICAgICAgICAgICAgICBkYXRhID0gYidcbicuam9pbihkYXRhLnNwbGl0bGluZXMoKSkg KyBiJ1xuJwotICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgIGRhdGEgPSBzZWxm LnNvdXJjZS5yZWFkKCkKLS0gICAgICAgIGV4Y2VwdCAoVW5pY29kZUVycm9yLCBMb29rdXBFcnJv ciksIGVycjogIyAoaW4gUHkzayByZWFkKCkgZGVjb2RlcykKLSsgICAgICAgIGV4Y2VwdCAoVW5p Y29kZUVycm9yLCBMb29rdXBFcnJvcikgYXMgZXJyOiAjIChpbiBQeTNrIHJlYWQoKSBkZWNvZGVz KQotICAgICAgICAgICAgIGlmIG5vdCBzZWxmLmVuY29kaW5nIGFuZCBzZWxmLnNvdXJjZV9wYXRo OgotICAgICAgICAgICAgICAgICAjIHJlLXJlYWQgaW4gYmluYXJ5IG1vZGUgYW5kIGRlY29kZSB3 aXRoIGhldXJpc3RpY3MKLSAgICAgICAgICAgICAgICAgYl9zb3VyY2UgPSBvcGVuKHNlbGYuc291 cmNlX3BhdGgsICdyYicpCi1AQCAtMzYyLDcgKzM2Miw3IEBAIGNsYXNzIEZpbGVPdXRwdXQoT3V0 cHV0KToKLSAgICAgICAgICAgICBrd2FyZ3MgPSB7fQotICAgICAgICAgdHJ5OgotICAgICAgICAg ICAgIHNlbGYuZGVzdGluYXRpb24gPSBvcGVuKHNlbGYuZGVzdGluYXRpb25fcGF0aCwgc2VsZi5t b2RlLCAqKmt3YXJncykKLS0gICAgICAgIGV4Y2VwdCBJT0Vycm9yLCBlcnJvcjoKLSsgICAgICAg IGV4Y2VwdCBJT0Vycm9yIGFzIGVycm9yOgotICAgICAgICAgICAgIHJhaXNlIE91dHB1dEVycm9y KGVycm9yLmVycm5vLCBlcnJvci5zdHJlcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLmRlc3RpbmF0aW9uX3BhdGgpCi0gICAgICAgICBzZWxmLm9wZW5lZCA9IFRydWUK LUBAIC0zODQsNyArMzg0LDcgQEAgY2xhc3MgRmlsZU91dHB1dChPdXRwdXQpOgotIAotICAgICAg ICAgdHJ5OgotICAgICAgICAgICAgIHNlbGYuZGVzdGluYXRpb24ud3JpdGUoZGF0YSkKLS0gICAg ICAgIGV4Y2VwdCBUeXBlRXJyb3IsIGU6Ci0rICAgICAgICBleGNlcHQgVHlwZUVycm9yIGFzIGU6 Ci0gICAgICAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKSBhbmQgaXNpbnN0YW5j ZShkYXRhLCBieXRlcyk6Ci0gICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAg ICAgIHNlbGYuZGVzdGluYXRpb24uYnVmZmVyLndyaXRlKGRhdGEpCi1AQCAtMzk3LDcgKzM5Nyw3 IEBAIGNsYXNzIEZpbGVPdXRwdXQoT3V0cHV0KToKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5kZXN0aW5hdGlvbi5lbmNvZGluZywgc2VsZi5lbmNvZGluZykpCi0gICAgICAgICAg ICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIGUKLS0gICAg ICAgIGV4Y2VwdCAoVW5pY29kZUVycm9yLCBMb29rdXBFcnJvciksIGVycjoKLSsgICAgICAgIGV4 Y2VwdCAoVW5pY29kZUVycm9yLCBMb29rdXBFcnJvcikgYXMgZXJyOgotICAgICAgICAgICAgIHJh aXNlIFVuaWNvZGVFcnJvcigKLSAgICAgICAgICAgICAgICAgJ1VuYWJsZSB0byBlbmNvZGUgb3V0 cHV0IGRhdGEuIG91dHB1dC1lbmNvZGluZyBpczogJwotICAgICAgICAgICAgICAgICAnJXMuXG4o JXMpJyAlIChzZWxmLmVuY29kaW5nLCBFcnJvclN0cmluZyhlcnIpKSkKLWRpZmYgLS1naXQgYS9k b2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL19faW5pdF9fLnB5IGIvZG9jdXRpbHMvcGFy c2Vycy9yc3QvZGlyZWN0aXZlcy9fX2luaXRfXy5weQotaW5kZXggZTBkMDlmYy4uODc4OTM0NiAx MDA2NDQKLS0tLSBhL2RvY3V0aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvX19pbml0X18ucHkK LSsrKyBiL2RvY3V0aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvX19pbml0X18ucHkKLUBAIC04 Niw3ICs4Niw3IEBAIGRlZiBkaXJlY3RpdmUoZGlyZWN0aXZlX25hbWUsIGxhbmd1YWdlX21vZHVs ZSwgZG9jdW1lbnQpOgotICAgICBjYW5vbmljYWxuYW1lID0gTm9uZQotICAgICB0cnk6Ci0gICAg ICAgICBjYW5vbmljYWxuYW1lID0gbGFuZ3VhZ2VfbW9kdWxlLmRpcmVjdGl2ZXNbbm9ybW5hbWVd Ci0tICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvciwgZXJyb3I6Ci0rICAgIGV4Y2VwdCBBdHRyaWJ1 dGVFcnJvciBhcyBlcnJvcjoKLSAgICAgICAgIG1zZ190ZXh0LmFwcGVuZCgnUHJvYmxlbSByZXRy aWV2aW5nIGRpcmVjdGl2ZSBlbnRyeSBmcm9tIGxhbmd1YWdlICcKLSAgICAgICAgICAgICAgICAg ICAgICAgICAnbW9kdWxlICVyOiAlcy4nICUgKGxhbmd1YWdlX21vZHVsZSwgZXJyb3IpKQotICAg ICBleGNlcHQgS2V5RXJyb3I6Ci1AQCAtMTEzLDcgKzExMyw3IEBAIGRlZiBkaXJlY3RpdmUoZGly ZWN0aXZlX25hbWUsIGxhbmd1YWdlX21vZHVsZSwgZG9jdW1lbnQpOgotICAgICAgICAgcmV0dXJu IE5vbmUsIG1lc3NhZ2VzCi0gICAgIHRyeToKLSAgICAgICAgIG1vZHVsZSA9IF9faW1wb3J0X18o bW9kdWxlbmFtZSwgZ2xvYmFscygpLCBsb2NhbHMoKSwgbGV2ZWw9MSkKLS0gICAgZXhjZXB0IElt cG9ydEVycm9yLCBkZXRhaWw6Ci0rICAgIGV4Y2VwdCBJbXBvcnRFcnJvciBhcyBkZXRhaWw6Ci0g ICAgICAgICBtZXNzYWdlcy5hcHBlbmQoZG9jdW1lbnQucmVwb3J0ZXIuZXJyb3IoCi0gICAgICAg ICAgICAgJ0Vycm9yIGltcG9ydGluZyBkaXJlY3RpdmUgbW9kdWxlICIlcyIgKGRpcmVjdGl2ZSAi JXMiKTpcbiVzJwotICAgICAgICAgICAgICUgKG1vZHVsZW5hbWUsIGRpcmVjdGl2ZV9uYW1lLCBk ZXRhaWwpLAotQEAgLTMwOSw3ICszMDksNyBAQCBkZWYgdW5pY29kZV9jb2RlKGNvZGUpOgotICAg ICAgICAgICAgICAgICByZXR1cm4gdW5pY2hyKGludCh2YWx1ZSwgMTYpKQotICAgICAgICAgICAg IGVsc2U6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvdGhlciB0ZXh0Ci0gICAgICAgICAg ICAgICAgIHJldHVybiBjb2RlCi0tICAgIGV4Y2VwdCBPdmVyZmxvd0Vycm9yLCBkZXRhaWw6Ci0r ICAgIGV4Y2VwdCBPdmVyZmxvd0Vycm9yIGFzIGRldGFpbDoKLSAgICAgICAgIHJhaXNlIFZhbHVl RXJyb3IoJ2NvZGUgdG9vIGxhcmdlICglcyknICUgZGV0YWlsKQotIAotIGRlZiBzaW5nbGVfY2hh cl9vcl91bmljb2RlKGFyZ3VtZW50KToKLWRpZmYgLS1naXQgYS9kb2N1dGlscy9wYXJzZXJzL3Jz dC9kaXJlY3RpdmVzL2JvZHkucHkgYi9kb2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL2Jv ZHkucHkKLWluZGV4IGI2MGMzYWQuLmVlZjFkZjUgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9wYXJz ZXJzL3JzdC9kaXJlY3RpdmVzL2JvZHkucHkKLSsrKyBiL2RvY3V0aWxzL3BhcnNlcnMvcnN0L2Rp cmVjdGl2ZXMvYm9keS5weQotQEAgLTE0Nyw3ICsxNDcsNyBAQCBjbGFzcyBDb2RlQmxvY2soRGly ZWN0aXZlKToKLSAgICAgICAgIHRyeToKLSAgICAgICAgICAgICB0b2tlbnMgPSBMZXhlcih1J1xu Jy5qb2luKHNlbGYuY29udGVudCksIGxhbmd1YWdlLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc3RhdGUuZG9jdW1lbnQuc2V0dGluZ3Muc3ludGF4X2hpZ2hsaWdodCkKLS0gICAg ICAgIGV4Y2VwdCBMZXhlckVycm9yLCBlcnJvcjoKLSsgICAgICAgIGV4Y2VwdCBMZXhlckVycm9y IGFzIGVycm9yOgotICAgICAgICAgICAgIHJhaXNlIHNlbGYud2FybmluZyhlcnJvcikKLSAKLSAg ICAgICAgIGlmICdudW1iZXItbGluZXMnIGluIHNlbGYub3B0aW9uczoKLWRpZmYgLS1naXQgYS9k b2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL2h0bWwucHkgYi9kb2N1dGlscy9wYXJzZXJz L3JzdC9kaXJlY3RpdmVzL2h0bWwucHkKLWluZGV4IDc4NjcxZTguLmVhMzY5MzYgMTAwNjQ0Ci0t LS0gYS9kb2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL2h0bWwucHkKLSsrKyBiL2RvY3V0 aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvaHRtbC5weQotQEAgLTU1LDcgKzU1LDcgQEAgY2xh c3MgTWV0YUJvZHkoc3RhdGVzLlNwZWNpYWxpemVkQm9keSk6Ci0gICAgICAgICAgICAgdHJ5Ogot ICAgICAgICAgICAgICAgICBhdHRuYW1lLCB2YWwgPSB1dGlscy5leHRyYWN0X25hbWVfdmFsdWUo dG9rZW4pWzBdCi0gICAgICAgICAgICAgICAgIG5vZGVbYXR0bmFtZS5sb3dlcigpXSA9IHZhbAot LSAgICAgICAgICAgIGV4Y2VwdCB1dGlscy5OYW1lVmFsdWVFcnJvciwgZGV0YWlsOgotKyAgICAg ICAgICAgIGV4Y2VwdCB1dGlscy5OYW1lVmFsdWVFcnJvciBhcyBkZXRhaWw6Ci0gICAgICAgICAg ICAgICAgIGxpbmUgPSBzZWxmLnN0YXRlX21hY2hpbmUubGluZQotICAgICAgICAgICAgICAgICBt c2cgPSBzZWxmLnJlcG9ydGVyLmVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAnRXJyb3Ig cGFyc2luZyBtZXRhIHRhZyBhdHRyaWJ1dGUgIiVzIjogJXMuJwotZGlmZiAtLWdpdCBhL2RvY3V0 aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvbWlzYy5weSBiL2RvY3V0aWxzL3BhcnNlcnMvcnN0 L2RpcmVjdGl2ZXMvbWlzYy5weQotaW5kZXggNzY3MmRlNi4uMGZjMzYxMCAxMDA2NDQKLS0tLSBh L2RvY3V0aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvbWlzYy5weQotKysrIGIvZG9jdXRpbHMv cGFyc2Vycy9yc3QvZGlyZWN0aXZlcy9taXNjLnB5Ci1AQCAtNzMsMTIgKzczLDEyIEBAIGNsYXNz IEluY2x1ZGUoRGlyZWN0aXZlKToKLSAgICAgICAgICAgICBpbmNsdWRlX2ZpbGUgPSBpby5GaWxl SW5wdXQoc291cmNlX3BhdGg9cGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZW5jb2Rpbmc9ZW5jb2RpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGVycm9yX2hhbmRsZXI9ZV9oYW5kbGVyKQotLSAgICAgICAgZXhjZXB0IFVu aWNvZGVFbmNvZGVFcnJvciwgZXJyb3I6Ci0rICAgICAgICBleGNlcHQgVW5pY29kZUVuY29kZUVy cm9yIGFzIGVycm9yOgotICAgICAgICAgICAgIHJhaXNlIHNlbGYuc2V2ZXJlKHUnUHJvYmxlbXMg d2l0aCAiJXMiIGRpcmVjdGl2ZSBwYXRoOlxuJwotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICdDYW5ub3QgZW5jb2RlIGlucHV0IGZpbGUgcGF0aCAiJXMiICcKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAnKHdyb25nIGxvY2FsZT8pLicgJQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChzZWxmLm5hbWUsIFNhZmVTdHJpbmcocGF0aCkpKQotLSAgICAgICAgZXhj ZXB0IElPRXJyb3IsIGVycm9yOgotKyAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgZXJyb3I6Ci0g ICAgICAgICAgICAgcmFpc2Ugc2VsZi5zZXZlcmUodSdQcm9ibGVtcyB3aXRoICIlcyIgZGlyZWN0 aXZlIHBhdGg6XG4lcy4nICUKLSAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYubmFtZSwgRXJy b3JTdHJpbmcoZXJyb3IpKSkKLSAgICAgICAgIHN0YXJ0bGluZSA9IHNlbGYub3B0aW9ucy5nZXQo J3N0YXJ0LWxpbmUnLCBOb25lKQotQEAgLTg5LDcgKzg5LDcgQEAgY2xhc3MgSW5jbHVkZShEaXJl Y3RpdmUpOgotICAgICAgICAgICAgICAgICByYXd0ZXh0ID0gJycuam9pbihsaW5lc1tzdGFydGxp bmU6ZW5kbGluZV0pCi0gICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgcmF3dGV4 dCA9IGluY2x1ZGVfZmlsZS5yZWFkKCkKLS0gICAgICAgIGV4Y2VwdCBVbmljb2RlRXJyb3IsIGVy cm9yOgotKyAgICAgICAgZXhjZXB0IFVuaWNvZGVFcnJvciBhcyBlcnJvcjoKLSAgICAgICAgICAg ICByYWlzZSBzZWxmLnNldmVyZSh1J1Byb2JsZW0gd2l0aCAiJXMiIGRpcmVjdGl2ZTpcbiVzJyAl Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYubmFtZSwgRXJyb3JTdHJpbmco ZXJyb3IpKSkKLSAgICAgICAgICMgc3RhcnQtYWZ0ZXIvZW5kLWJlZm9yZTogbm8gcmVzdHJpY3Rp b25zIG9uIG5ld2xpbmVzIGluIG1hdGNoLXRleHQsCi1AQCAtMjEzLDEyICsyMTMsMTIgQEAgY2xh c3MgUmF3KERpcmVjdGl2ZSk6Ci0gICAgICAgICAgICAgICAgICMgVE9ETzogY3VycmVudGx5LCBy YXcgaW5wdXQgZmlsZXMgYXJlIHJlY29yZGVkIGFzCi0gICAgICAgICAgICAgICAgICMgZGVwZW5k ZW5jaWVzIGV2ZW4gaWYgbm90IHVzZWQgZm9yIHRoZSBjaG9zZW4gb3V0cHV0IGZvcm1hdC4KLSAg ICAgICAgICAgICAgICAgc2VsZi5zdGF0ZS5kb2N1bWVudC5zZXR0aW5ncy5yZWNvcmRfZGVwZW5k ZW5jaWVzLmFkZChwYXRoKQotLSAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yLCBlcnJvcjoKLSsg ICAgICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBlcnJvcjoKLSAgICAgICAgICAgICAgICAgcmFp c2Ugc2VsZi5zZXZlcmUodSdQcm9ibGVtcyB3aXRoICIlcyIgZGlyZWN0aXZlIHBhdGg6XG4lcy4n Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKHNlbGYubmFtZSwgRXJyb3JT dHJpbmcoZXJyb3IpKSkKLSAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgIHRleHQg PSByYXdfZmlsZS5yZWFkKCkKLS0gICAgICAgICAgICBleGNlcHQgVW5pY29kZUVycm9yLCBlcnJv cjoKLSsgICAgICAgICAgICBleGNlcHQgVW5pY29kZUVycm9yIGFzIGVycm9yOgotICAgICAgICAg ICAgICAgICByYWlzZSBzZWxmLnNldmVyZSh1J1Byb2JsZW0gd2l0aCAiJXMiIGRpcmVjdGl2ZTpc biVzJwotICAgICAgICAgICAgICAgICAgICAgJSAoc2VsZi5uYW1lLCBFcnJvclN0cmluZyhlcnJv cikpKQotICAgICAgICAgICAgIGF0dHJpYnV0ZXNbJ3NvdXJjZSddID0gcGF0aAotQEAgLTIzMCw3 ICsyMzAsNyBAQCBjbGFzcyBSYXcoRGlyZWN0aXZlKToKLSAgICAgICAgICAgICBpbXBvcnQgdXJs bGliMgotICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgcmF3X3RleHQgPSB1cmxs aWIyLnVybG9wZW4oc291cmNlKS5yZWFkKCkKLS0gICAgICAgICAgICBleGNlcHQgKHVybGxpYjIu VVJMRXJyb3IsIElPRXJyb3IsIE9TRXJyb3IpLCBlcnJvcjoKLSsgICAgICAgICAgICBleGNlcHQg KHVybGxpYjIuVVJMRXJyb3IsIElPRXJyb3IsIE9TRXJyb3IpIGFzIGVycm9yOgotICAgICAgICAg ICAgICAgICByYWlzZSBzZWxmLnNldmVyZSh1J1Byb2JsZW1zIHdpdGggIiVzIiBkaXJlY3RpdmUg VVJMICIlcyI6XG4lcy4nCi0gICAgICAgICAgICAgICAgICAgICAlIChzZWxmLm5hbWUsIHNlbGYu b3B0aW9uc1sndXJsJ10sIEVycm9yU3RyaW5nKGVycm9yKSkpCi0gICAgICAgICAgICAgcmF3X2Zp bGUgPSBpby5TdHJpbmdJbnB1dChzb3VyY2U9cmF3X3RleHQsIHNvdXJjZV9wYXRoPXNvdXJjZSwK LUBAIC0yMzgsNyArMjM4LDcgQEAgY2xhc3MgUmF3KERpcmVjdGl2ZSk6Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9oYW5kbGVyPWVfaGFuZGxlcikKLSAgICAg ICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgIHRleHQgPSByYXdfZmlsZS5yZWFkKCkKLS0g ICAgICAgICAgICBleGNlcHQgVW5pY29kZUVycm9yLCBlcnJvcjoKLSsgICAgICAgICAgICBleGNl cHQgVW5pY29kZUVycm9yIGFzIGVycm9yOgotICAgICAgICAgICAgICAgICByYWlzZSBzZWxmLnNl dmVyZSh1J1Byb2JsZW0gd2l0aCAiJXMiIGRpcmVjdGl2ZTpcbiVzJwotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAlIChzZWxmLm5hbWUsIEVycm9yU3RyaW5nKGVycm9yKSkpCi0g ICAgICAgICAgICAgYXR0cmlidXRlc1snc291cmNlJ10gPSBzb3VyY2UKLUBAIC0zMjAsNyArMzIw LDcgQEAgY2xhc3MgVW5pY29kZShEaXJlY3RpdmUpOgotICAgICAgICAgZm9yIGNvZGUgaW4gY29k ZXM6Ci0gICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICBkZWNvZGVkID0gZGlyZWN0 aXZlcy51bmljb2RlX2NvZGUoY29kZSkKLS0gICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvciwg ZXJyb3I6Ci0rICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgZXJyb3I6Ci0gICAgICAg ICAgICAgICAgIHJhaXNlIHNlbGYuZXJyb3IodSdJbnZhbGlkIGNoYXJhY3RlciBjb2RlOiAlc1xu JXMnCi0gICAgICAgICAgICAgICAgICAgICAlIChjb2RlLCBFcnJvclN0cmluZyhlcnJvcikpKQot ICAgICAgICAgICAgIGVsZW1lbnQgKz0gbm9kZXMuVGV4dCh1dGlscy51bmVzY2FwZShkZWNvZGVk KSwgZGVjb2RlZCkKLUBAIC00MDYsNyArNDA2LDcgQEAgY2xhc3MgUm9sZShEaXJlY3RpdmUpOgot ICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlLnBhcnNlX2RpcmVjdGl2ZV9ibG9jaygKLSAgICAg ICAgICAgICAgICAgc2VsZi5jb250ZW50WzE6XSwgc2VsZi5jb250ZW50X29mZnNldCwgY29udmVy dGVkX3JvbGUsCi0gICAgICAgICAgICAgICAgIG9wdGlvbl9wcmVzZXRzPXt9KSkKLS0gICAgICAg IGV4Y2VwdCBzdGF0ZXMuTWFya3VwRXJyb3IsIGRldGFpbDoKLSsgICAgICAgIGV4Y2VwdCBzdGF0 ZXMuTWFya3VwRXJyb3IgYXMgZGV0YWlsOgotICAgICAgICAgICAgIGVycm9yID0gc2VsZi5zdGF0 ZV9tYWNoaW5lLnJlcG9ydGVyLmVycm9yKAotICAgICAgICAgICAgICAgICAnRXJyb3IgaW4gIiVz IiBkaXJlY3RpdmU6XG4lcy4nICUgKHNlbGYubmFtZSwgZGV0YWlsKSwKLSAgICAgICAgICAgICAg ICAgbm9kZXMubGl0ZXJhbF9ibG9jayhzZWxmLmJsb2NrX3RleHQsIHNlbGYuYmxvY2tfdGV4dCks Ci1AQCAtNDE1LDcgKzQxNSw3IEBAIGNsYXNzIFJvbGUoRGlyZWN0aXZlKToKLSAgICAgICAgIGlm ICdjbGFzcycgbm90IGluIG9wdGlvbnM6Ci0gICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAg ICAgICBvcHRpb25zWydjbGFzcyddID0gZGlyZWN0aXZlcy5jbGFzc19vcHRpb24obmV3X3JvbGVf bmFtZSkKLS0gICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvciwgZGV0YWlsOgotKyAgICAgICAg ICAgIGV4Y2VwdCBWYWx1ZUVycm9yIGFzIGRldGFpbDoKLSAgICAgICAgICAgICAgICAgZXJyb3Ig PSBzZWxmLnN0YXRlX21hY2hpbmUucmVwb3J0ZXIuZXJyb3IoCi0gICAgICAgICAgICAgICAgICAg ICB1J0ludmFsaWQgYXJndW1lbnQgZm9yICIlcyIgZGlyZWN0aXZlOlxuJXMuJwotICAgICAgICAg ICAgICAgICAgICAgJSAoc2VsZi5uYW1lLCBTYWZlU3RyaW5nKGRldGFpbCkpLCBub2Rlcy5saXRl cmFsX2Jsb2NrKAotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMv dGFibGVzLnB5IGIvZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy90YWJsZXMucHkKLWlu ZGV4IDgzYjdiNTMuLmIwYTRlYWMgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9wYXJzZXJzL3JzdC9k aXJlY3RpdmVzL3RhYmxlcy5weQotKysrIGIvZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZl cy90YWJsZXMucHkKLUBAIC0yNTksOSArMjU5LDkgQEAgY2xhc3MgQ1NWVGFibGUoVGFibGUpOgot ICAgICAgICAgICAgIGNvbF93aWR0aHMgPSBzZWxmLmdldF9jb2x1bW5fd2lkdGhzKG1heF9jb2xz KQotICAgICAgICAgICAgIHNlbGYuZXh0ZW5kX3Nob3J0X3Jvd3Nfd2l0aF9lbXB0eV9jZWxscyht YXhfY29scywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHRhYmxlX2hlYWQsIHRhYmxlX2JvZHkpKQotLSAgICAgICAgZXhjZXB0IFN5c3RlbU1l c3NhZ2VQcm9wYWdhdGlvbiwgZGV0YWlsOgotKyAgICAgICAgZXhjZXB0IFN5c3RlbU1lc3NhZ2VQ cm9wYWdhdGlvbiBhcyBkZXRhaWw6Ci0gICAgICAgICAgICAgcmV0dXJuIFtkZXRhaWwuYXJnc1sw XV0KLS0gICAgICAgIGV4Y2VwdCBjc3YuRXJyb3IsIGRldGFpbDoKLSsgICAgICAgIGV4Y2VwdCBj c3YuRXJyb3IgYXMgZGV0YWlsOgotICAgICAgICAgICAgIG1lc3NhZ2UgPSBzdHIoZGV0YWlsKQot ICAgICAgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywpIGFuZCAnMS1jaGFyYWN0ZXIg c3RyaW5nJyBpbiBtZXNzYWdlOgotICAgICAgICAgICAgICAgICBtZXNzYWdlICs9ICdcbndpdGgg UHl0aG9uIDIueCB0aGlzIG11c3QgYmUgYW4gQVNDSUkgY2hhcmFjdGVyLicKLUBAIC0zMjAsNyAr MzIwLDcgQEAgY2xhc3MgQ1NWVGFibGUoVGFibGUpOgotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBlbmNvZGluZz1lbmNvZGluZywKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZXJyb3JfaGFuZGxlcj1lcnJvcl9oYW5kbGVyKQotICAgICAg ICAgICAgICAgICBjc3ZfZGF0YSA9IGNzdl9maWxlLnJlYWQoKS5zcGxpdGxpbmVzKCkKLS0gICAg ICAgICAgICBleGNlcHQgSU9FcnJvciwgZXJyb3I6Ci0rICAgICAgICAgICAgZXhjZXB0IElPRXJy b3IgYXMgZXJyb3I6Ci0gICAgICAgICAgICAgICAgIHNldmVyZSA9IHNlbGYuc3RhdGVfbWFjaGlu ZS5yZXBvcnRlci5zZXZlcmUoCi0gICAgICAgICAgICAgICAgICAgICB1J1Byb2JsZW1zIHdpdGgg IiVzIiBkaXJlY3RpdmUgcGF0aDpcbiVzLicKLSAgICAgICAgICAgICAgICAgICAgICUgKHNlbGYu bmFtZSwgU2FmZVN0cmluZyhlcnJvcikpLAotQEAgLTMzNiw3ICszMzYsNyBAQCBjbGFzcyBDU1ZU YWJsZShUYWJsZSk6Ci0gICAgICAgICAgICAgc291cmNlID0gc2VsZi5vcHRpb25zWyd1cmwnXQot ICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgY3N2X3RleHQgPSB1cmxsaWIyLnVy bG9wZW4oc291cmNlKS5yZWFkKCkKLS0gICAgICAgICAgICBleGNlcHQgKHVybGxpYjIuVVJMRXJy b3IsIElPRXJyb3IsIE9TRXJyb3IsIFZhbHVlRXJyb3IpLCBlcnJvcjoKLSsgICAgICAgICAgICBl eGNlcHQgKHVybGxpYjIuVVJMRXJyb3IsIElPRXJyb3IsIE9TRXJyb3IsIFZhbHVlRXJyb3IpIGFz IGVycm9yOgotICAgICAgICAgICAgICAgICBzZXZlcmUgPSBzZWxmLnN0YXRlX21hY2hpbmUucmVw b3J0ZXIuc2V2ZXJlKAotICAgICAgICAgICAgICAgICAgICAgICAnUHJvYmxlbXMgd2l0aCAiJXMi IGRpcmVjdGl2ZSBVUkwgIiVzIjpcbiVzLicKLSAgICAgICAgICAgICAgICAgICAgICAgJSAoc2Vs Zi5uYW1lLCBzZWxmLm9wdGlvbnNbJ3VybCddLCBTYWZlU3RyaW5nKGVycm9yKSksCi1AQCAtNDI0 LDcgKzQyNCw3IEBAIGNsYXNzIExpc3RUYWJsZShUYWJsZSk6Ci0gICAgICAgICAgICAgaGVhZGVy X3Jvd3MgPSBzZWxmLm9wdGlvbnMuZ2V0KCdoZWFkZXItcm93cycsIDApCi0gICAgICAgICAgICAg c3R1Yl9jb2x1bW5zID0gc2VsZi5vcHRpb25zLmdldCgnc3R1Yi1jb2x1bW5zJywgMCkKLSAgICAg ICAgICAgICBzZWxmLmNoZWNrX3RhYmxlX2RpbWVuc2lvbnModGFibGVfZGF0YSwgaGVhZGVyX3Jv d3MsIHN0dWJfY29sdW1ucykKLS0gICAgICAgIGV4Y2VwdCBTeXN0ZW1NZXNzYWdlUHJvcGFnYXRp b24sIGRldGFpbDoKLSsgICAgICAgIGV4Y2VwdCBTeXN0ZW1NZXNzYWdlUHJvcGFnYXRpb24gYXMg ZGV0YWlsOgotICAgICAgICAgICAgIHJldHVybiBbZGV0YWlsLmFyZ3NbMF1dCi0gICAgICAgICB0 YWJsZV9ub2RlID0gc2VsZi5idWlsZF90YWJsZV9mcm9tX2xpc3QodGFibGVfZGF0YSwgY29sX3dp ZHRocywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo ZWFkZXJfcm93cywgc3R1Yl9jb2x1bW5zKQotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3BhcnNlcnMv cnN0L3JvbGVzLnB5IGIvZG9jdXRpbHMvcGFyc2Vycy9yc3Qvcm9sZXMucHkKLWluZGV4IGJmNzg2 YjcuLjQ5YjYxZGMgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9wYXJzZXJzL3JzdC9yb2xlcy5weQot KysrIGIvZG9jdXRpbHMvcGFyc2Vycy9yc3Qvcm9sZXMucHkKLUBAIC0xMDksNyArMTA5LDcgQEAg ZGVmIHJvbGUocm9sZV9uYW1lLCBsYW5ndWFnZV9tb2R1bGUsIGxpbmVubywgcmVwb3J0ZXIpOgot ICAgICAgICAgY2Fub25pY2FsbmFtZSA9IE5vbmUKLSAgICAgICAgIHRyeToKLSAgICAgICAgICAg ICBjYW5vbmljYWxuYW1lID0gbGFuZ3VhZ2VfbW9kdWxlLnJvbGVzW25vcm1uYW1lXQotLSAgICAg ICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yLCBlcnJvcjoKLSsgICAgICAgIGV4Y2VwdCBBdHRyaWJ1 dGVFcnJvciBhcyBlcnJvcjoKLSAgICAgICAgICAgICBtc2dfdGV4dC5hcHBlbmQoJ1Byb2JsZW0g cmV0cmlldmluZyByb2xlIGVudHJ5IGZyb20gbGFuZ3VhZ2UgJwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnbW9kdWxlICVyOiAlcy4nICUgKGxhbmd1YWdlX21vZHVsZSwgZXJyb3IpKQot ICAgICAgICAgZXhjZXB0IEtleUVycm9yOgotQEAgLTMzMyw3ICszMzMsNyBAQCBkZWYgY29kZV9y b2xlKHJvbGUsIHJhd3RleHQsIHRleHQsIGxpbmVubywgaW5saW5lciwgb3B0aW9ucz17fSwgY29u dGVudD1bXSk6Ci0gICAgIHRyeToKLSAgICAgICAgIHRva2VucyA9IExleGVyKHV0aWxzLnVuZXNj YXBlKHRleHQsIFRydWUpLCBsYW5ndWFnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGlubGlu ZXIuZG9jdW1lbnQuc2V0dGluZ3Muc3ludGF4X2hpZ2hsaWdodCkKLS0gICAgZXhjZXB0IExleGVy RXJyb3IsIGVycm9yOgotKyAgICBleGNlcHQgTGV4ZXJFcnJvciBhcyBlcnJvcjoKLSAgICAgICAg IG1zZyA9IGlubGluZXIucmVwb3J0ZXIud2FybmluZyhlcnJvcikKLSAgICAgICAgIHByYiA9IGlu bGluZXIucHJvYmxlbWF0aWMocmF3dGV4dCwgcmF3dGV4dCwgbXNnKQotICAgICAgICAgcmV0dXJu IFtwcmJdLCBbbXNnXQotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3BhcnNlcnMvcnN0L3N0YXRlcy5w eSBiL2RvY3V0aWxzL3BhcnNlcnMvcnN0L3N0YXRlcy5weQotaW5kZXggYTI5NzBjOC4uYzliNGZh MyAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3BhcnNlcnMvcnN0L3N0YXRlcy5weQotKysrIGIvZG9j dXRpbHMvcGFyc2Vycy9yc3Qvc3RhdGVzLnB5Ci1AQCAtMTQ5Nyw3ICsxNDk3LDcgQEAgY2xhc3Mg Qm9keShSU1RTdGF0ZSk6Ci0gICAgICAgICAob3B0aW9ubGlzdC5zb3VyY2UsIG9wdGlvbmxpc3Qu bGluZSkgPSBzZWxmLnN0YXRlX21hY2hpbmUuZ2V0X3NvdXJjZV9hbmRfbGluZSgpCi0gICAgICAg ICB0cnk6Ci0gICAgICAgICAgICAgbGlzdGl0ZW0sIGJsYW5rX2ZpbmlzaCA9IHNlbGYub3B0aW9u X2xpc3RfaXRlbShtYXRjaCkKLS0gICAgICAgIGV4Y2VwdCBNYXJrdXBFcnJvciwgZXJyb3I6Ci0r ICAgICAgICBleGNlcHQgTWFya3VwRXJyb3IgYXMgZXJyb3I6Ci0gICAgICAgICAgICAgIyBUaGlz IHNob3VsZG4ndCBoYXBwZW47IHBhdHRlcm4gd29uJ3QgbWF0Y2guCi0gICAgICAgICAgICAgbXNn ID0gc2VsZi5yZXBvcnRlci5lcnJvcih1J0ludmFsaWQgb3B0aW9uIGxpc3QgbWFya2VyOiAlcycg JQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IpCi1AQCAtMTY4 Niw3ICsxNjg2LDcgQEAgY2xhc3MgQm9keShSU1RTdGF0ZSk6Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArIDEpCi0gICAgICAgICAgICAgICAgIHRhYmxlID0gc2VsZi5idWlsZF90YWJs ZSh0YWJsZWRhdGEsIHRhYmxlbGluZSkKLSAgICAgICAgICAgICAgICAgbm9kZWxpc3QgPSBbdGFi bGVdICsgbWVzc2FnZXMKLS0gICAgICAgICAgICBleGNlcHQgdGFibGVwYXJzZXIuVGFibGVNYXJr dXBFcnJvciwgZXJyOgotKyAgICAgICAgICAgIGV4Y2VwdCB0YWJsZXBhcnNlci5UYWJsZU1hcmt1 cEVycm9yIGFzIGVycjoKLSAgICAgICAgICAgICAgICAgbm9kZWxpc3QgPSBzZWxmLm1hbGZvcm1l ZF90YWJsZShibG9jaywgJyAnLmpvaW4oZXJyLmFyZ3MpLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldD1lcnIub2Zmc2V0KSArIG1lc3NhZ2Vz Ci0gICAgICAgICBlbHNlOgotQEAgLTE2OTgsNyArMTY5OCw3IEBAIGNsYXNzIEJvZHkoUlNUU3Rh dGUpOgotICAgICAgICAgYmxhbmtfZmluaXNoID0gMQotICAgICAgICAgdHJ5OgotICAgICAgICAg ICAgIGJsb2NrID0gc2VsZi5zdGF0ZV9tYWNoaW5lLmdldF90ZXh0X2Jsb2NrKGZsdXNoX2xlZnQ9 VHJ1ZSkKLS0gICAgICAgIGV4Y2VwdCBzdGF0ZW1hY2hpbmUuVW5leHBlY3RlZEluZGVudGF0aW9u RXJyb3IsIGVycjoKLSsgICAgICAgIGV4Y2VwdCBzdGF0ZW1hY2hpbmUuVW5leHBlY3RlZEluZGVu dGF0aW9uRXJyb3IgYXMgZXJyOgotICAgICAgICAgICAgIGJsb2NrLCBzcmMsIHNyY2xpbmUgPSBl cnIuYXJncwotICAgICAgICAgICAgIG1lc3NhZ2VzLmFwcGVuZChzZWxmLnJlcG9ydGVyLmVycm9y KCdVbmV4cGVjdGVkIGluZGVudGF0aW9uLicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc291cmNlPXNyYywgbGluZT1zcmNsaW5lKSkKLUBAIC0yMTM1 LDcgKzIxMzUsNyBAQCBjbGFzcyBCb2R5KFJTVFN0YXRlKToKLSAgICAgICAgICAgICBhcmd1bWVu dHMsIG9wdGlvbnMsIGNvbnRlbnQsIGNvbnRlbnRfb2Zmc2V0ID0gKAotICAgICAgICAgICAgICAg ICBzZWxmLnBhcnNlX2RpcmVjdGl2ZV9ibG9jayhpbmRlbnRlZCwgbGluZV9vZmZzZXQsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGl2ZSwgb3B0aW9u X3ByZXNldHMpKQotLSAgICAgICAgZXhjZXB0IE1hcmt1cEVycm9yLCBkZXRhaWw6Ci0rICAgICAg ICBleGNlcHQgTWFya3VwRXJyb3IgYXMgZGV0YWlsOgotICAgICAgICAgICAgIGVycm9yID0gc2Vs Zi5yZXBvcnRlci5lcnJvcigKLSAgICAgICAgICAgICAgICAgJ0Vycm9yIGluICIlcyIgZGlyZWN0 aXZlOlxuJXMuJyAlICh0eXBlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJyAnLmpvaW4oZGV0YWlsLmFyZ3MpKSwKLUBAIC0yMTQ2LDcg KzIxNDYsNyBAQCBjbGFzcyBCb2R5KFJTVFN0YXRlKToKLSAgICAgICAgICAgICBjb250ZW50X29m ZnNldCwgYmxvY2tfdGV4dCwgc2VsZiwgc2VsZi5zdGF0ZV9tYWNoaW5lKQotICAgICAgICAgdHJ5 OgotICAgICAgICAgICAgIHJlc3VsdCA9IGRpcmVjdGl2ZV9pbnN0YW5jZS5ydW4oKQotLSAgICAg ICAgZXhjZXB0IGRvY3V0aWxzLnBhcnNlcnMucnN0LkRpcmVjdGl2ZUVycm9yLCBlcnJvcjoKLSsg ICAgICAgIGV4Y2VwdCBkb2N1dGlscy5wYXJzZXJzLnJzdC5EaXJlY3RpdmVFcnJvciBhcyBlcnJv cjoKLSAgICAgICAgICAgICBtc2dfbm9kZSA9IHNlbGYucmVwb3J0ZXIuc3lzdGVtX21lc3NhZ2Uo ZXJyb3IubGV2ZWwsIGVycm9yLm1zZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGluZT1saW5lbm8pCi0gICAgICAgICAgICAgbXNnX25vZGUg Kz0gbm9kZXMubGl0ZXJhbF9ibG9jayhibG9ja190ZXh0LCBibG9ja190ZXh0KQotQEAgLTIyNjMs MTEgKzIyNjMsMTEgQEAgY2xhc3MgQm9keShSU1RTdGF0ZSk6Ci0gICAgICAgICAgICAgcmV0dXJu IDAsICdpbnZhbGlkIG9wdGlvbiBibG9jaycKLSAgICAgICAgIHRyeToKLSAgICAgICAgICAgICBv cHRpb25zID0gdXRpbHMuZXh0cmFjdF9leHRlbnNpb25fb3B0aW9ucyhub2RlLCBvcHRpb25fc3Bl YykKLS0gICAgICAgIGV4Y2VwdCBLZXlFcnJvciwgZGV0YWlsOgotKyAgICAgICAgZXhjZXB0IEtl eUVycm9yIGFzIGRldGFpbDoKLSAgICAgICAgICAgICByZXR1cm4gMCwgKCd1bmtub3duIG9wdGlv bjogIiVzIicgJSBkZXRhaWwuYXJnc1swXSkKLS0gICAgICAgIGV4Y2VwdCAoVmFsdWVFcnJvciwg VHlwZUVycm9yKSwgZGV0YWlsOgotKyAgICAgICAgZXhjZXB0IChWYWx1ZUVycm9yLCBUeXBlRXJy b3IpIGFzIGRldGFpbDoKLSAgICAgICAgICAgICByZXR1cm4gMCwgKCdpbnZhbGlkIG9wdGlvbiB2 YWx1ZTogJXMnICUgJyAnLmpvaW4oZGV0YWlsLmFyZ3MpKQotLSAgICAgICAgZXhjZXB0IHV0aWxz LkV4dGVuc2lvbk9wdGlvbkVycm9yLCBkZXRhaWw6Ci0rICAgICAgICBleGNlcHQgdXRpbHMuRXh0 ZW5zaW9uT3B0aW9uRXJyb3IgYXMgZGV0YWlsOgotICAgICAgICAgICAgIHJldHVybiAwLCAoJ2lu dmFsaWQgb3B0aW9uIGRhdGE6ICVzJyAlICcgJy5qb2luKGRldGFpbC5hcmdzKSkKLSAgICAgICAg IGlmIGJsYW5rX2ZpbmlzaDoKLSAgICAgICAgICAgICByZXR1cm4gMSwgb3B0aW9ucwotQEAgLTIz NTQsNyArMjM1NCw3IEBAIGNsYXNzIEJvZHkoUlNUU3RhdGUpOgotICAgICAgICAgICAgIGlmIGV4 cG1hdGNoOgotICAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgICByZXR1 cm4gbWV0aG9kKHNlbGYsIGV4cG1hdGNoKQotLSAgICAgICAgICAgICAgICBleGNlcHQgTWFya3Vw RXJyb3IsIGVycm9yOgotKyAgICAgICAgICAgICAgICBleGNlcHQgTWFya3VwRXJyb3IgYXMgZXJy b3I6Ci0gICAgICAgICAgICAgICAgICAgICBsaW5lbm8gPSBzZWxmLnN0YXRlX21hY2hpbmUuYWJz X2xpbmVfbnVtYmVyKCkKLSAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAnICcuam9pbihl cnJvci5hcmdzKQotICAgICAgICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZChzZWxmLnJlcG9y dGVyLndhcm5pbmcobWVzc2FnZSwgbGluZT1saW5lbm8pKQotQEAgLTI3NzcsNyArMjc3Nyw3IEBA IGNsYXNzIFRleHQoUlNUU3RhdGUpOgotICAgICAgICAgbXNnID0gTm9uZQotICAgICAgICAgdHJ5 OgotICAgICAgICAgICAgIGJsb2NrID0gc2VsZi5zdGF0ZV9tYWNoaW5lLmdldF90ZXh0X2Jsb2Nr KGZsdXNoX2xlZnQ9VHJ1ZSkKLS0gICAgICAgIGV4Y2VwdCBzdGF0ZW1hY2hpbmUuVW5leHBlY3Rl ZEluZGVudGF0aW9uRXJyb3IsIGVycjoKLSsgICAgICAgIGV4Y2VwdCBzdGF0ZW1hY2hpbmUuVW5l eHBlY3RlZEluZGVudGF0aW9uRXJyb3IgYXMgZXJyOgotICAgICAgICAgICAgIGJsb2NrLCBzcmMs IHNyY2xpbmUgPSBlcnIuYXJncwotICAgICAgICAgICAgIG1zZyA9IHNlbGYucmVwb3J0ZXIuZXJy b3IoJ1VuZXhwZWN0ZWQgaW5kZW50YXRpb24uJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNvdXJjZT1zcmMsIGxpbmU9c3JjbGluZSkKLWRpZmYgLS1naXQgYS9kb2N1 dGlscy9zdGF0ZW1hY2hpbmUucHkgYi9kb2N1dGlscy9zdGF0ZW1hY2hpbmUucHkKLWluZGV4IDY3 MTRhMDQuLjZhMjMyMmMgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9zdGF0ZW1hY2hpbmUucHkKLSsr KyBiL2RvY3V0aWxzL3N0YXRlbWFjaGluZS5weQotQEAgLTI0OCw3ICsyNDgsNyBAQCBjbGFzcyBT dGF0ZU1hY2hpbmUob2JqZWN0KToKLSAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawotICAg ICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRz LmV4dGVuZChyZXN1bHQpCi0tICAgICAgICAgICAgICAgIGV4Y2VwdCBUcmFuc2l0aW9uQ29ycmVj dGlvbiwgZXhjZXB0aW9uOgotKyAgICAgICAgICAgICAgICBleGNlcHQgVHJhbnNpdGlvbkNvcnJl Y3Rpb24gYXMgZXhjZXB0aW9uOgotICAgICAgICAgICAgICAgICAgICAgc2VsZi5wcmV2aW91c19s aW5lKCkgIyBiYWNrIHVwIGZvciBhbm90aGVyIHRyeQotICAgICAgICAgICAgICAgICAgICAgdHJh bnNpdGlvbnMgPSAoZXhjZXB0aW9uLmFyZ3NbMF0sKQotICAgICAgICAgICAgICAgICAgICAgaWYg c2VsZi5kZWJ1ZzoKLUBAIC0yNTcsNyArMjU3LDcgQEAgY2xhc3MgU3RhdGVNYWNoaW5lKG9iamVj dCk6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N0YXRlICIlcyIsIHRyYW5zaXRp b24gJXMuJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKHN0YXRlLl9fY2xhc3Nf Xy5fX25hbWVfXywgdHJhbnNpdGlvbnNbMF0pKSwgZmlsZT1zZWxmLl9zdGRlcnIpCi0gICAgICAg ICAgICAgICAgICAgICBjb250aW51ZQotLSAgICAgICAgICAgICAgICBleGNlcHQgU3RhdGVDb3Jy ZWN0aW9uLCBleGNlcHRpb246Ci0rICAgICAgICAgICAgICAgIGV4Y2VwdCBTdGF0ZUNvcnJlY3Rp b24gYXMgZXhjZXB0aW9uOgotICAgICAgICAgICAgICAgICAgICAgc2VsZi5wcmV2aW91c19saW5l KCkgIyBiYWNrIHVwIGZvciBhbm90aGVyIHRyeQotICAgICAgICAgICAgICAgICAgICAgbmV4dF9z dGF0ZSA9IGV4Y2VwdGlvbi5hcmdzWzBdCi0gICAgICAgICAgICAgICAgICAgICBpZiBsZW4oZXhj ZXB0aW9uLmFyZ3MpID09IDE6Ci1AQCAtNDEzLDcgKzQxMyw3IEBAIGNsYXNzIFN0YXRlTWFjaGlu ZShvYmplY3QpOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmbHVzaF9sZWZ0KQotICAgICAgICAgICAgIHNlbGYubmV4dF9saW5lKGxlbihibG9j aykgLSAxKQotICAgICAgICAgICAgIHJldHVybiBibG9jawotLSAgICAgICAgZXhjZXB0IFVuZXhw ZWN0ZWRJbmRlbnRhdGlvbkVycm9yLCBlcnI6Ci0rICAgICAgICBleGNlcHQgVW5leHBlY3RlZElu ZGVudGF0aW9uRXJyb3IgYXMgZXJyOgotICAgICAgICAgICAgIGJsb2NrID0gZXJyLmFyZ3NbMF0K LSAgICAgICAgICAgICBzZWxmLm5leHRfbGluZShsZW4oYmxvY2spIC0gMSkgIyBhZHZhbmNlIHRv IGxhc3QgbGluZSBvZiBibG9jawotICAgICAgICAgICAgIHJhaXNlCi1kaWZmIC0tZ2l0IGEvZG9j dXRpbHMvdXRpbHMvX19pbml0X18ucHkgYi9kb2N1dGlscy91dGlscy9fX2luaXRfXy5weQotaW5k ZXggNjkyMzM1YS4uYzcxZDUwOCAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3V0aWxzL19faW5pdF9f LnB5Ci0rKysgYi9kb2N1dGlscy91dGlscy9fX2luaXRfXy5weQotQEAgLTMyNiw3ICszMjYsNyBA QCBkZWYgYXNzZW1ibGVfb3B0aW9uX2RpY3Qob3B0aW9uX2xpc3QsIG9wdGlvbnNfc3BlYyk6Ci0g ICAgICAgICAgICAgcmFpc2UgRHVwbGljYXRlT3B0aW9uRXJyb3IoJ2R1cGxpY2F0ZSBvcHRpb24g IiVzIicgJSBuYW1lKQotICAgICAgICAgdHJ5OgotICAgICAgICAgICAgIG9wdGlvbnNbbmFtZV0g PSBjb252ZXJ0b3IodmFsdWUpCi0tICAgICAgICBleGNlcHQgKFZhbHVlRXJyb3IsIFR5cGVFcnJv ciksIGRldGFpbDoKLSsgICAgICAgIGV4Y2VwdCAoVmFsdWVFcnJvciwgVHlwZUVycm9yKSBhcyBk ZXRhaWw6Ci0gICAgICAgICAgICAgcmFpc2UgZGV0YWlsLl9fY2xhc3NfXygnKG9wdGlvbjogIiVz IjsgdmFsdWU6ICVyKVxuJXMnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAl IChuYW1lLCB2YWx1ZSwgJyAnLmpvaW4oZGV0YWlsLmFyZ3MpKSkKLSAgICAgcmV0dXJuIG9wdGlv bnMKLWRpZmYgLS1naXQgYS9kb2N1dGlscy91dGlscy9lcnJvcl9yZXBvcnRpbmcucHkgYi9kb2N1 dGlscy91dGlscy9lcnJvcl9yZXBvcnRpbmcucHkKLWluZGV4IDAyZTYyZWIuLjhlYTcxMDggMTAw NjQ0Ci0tLS0gYS9kb2N1dGlscy91dGlscy9lcnJvcl9yZXBvcnRpbmcucHkKLSsrKyBiL2RvY3V0 aWxzL3V0aWxzL2Vycm9yX3JlcG9ydGluZy5weQotQEAgLTQ5LDcgKzQ5LDcgQEAgZWxzZToKLSAg ICAgICAgICMgbG9jYWxlLmdldHByZWZlcnJlZGVuY29kaW5nKFtkb19zZXRsb2NhbGU9VHJ1ZXxG YWxzZV0pCi0gICAgICAgICAjIGhhcyBzaWRlLWVmZmVjdHMgfCBtaWdodCByZXR1cm4gYSB3cm9u ZyBndWVzcy4KLSAgICAgICAgICMgKGNmLiBVcGRhdGUgMSBpbiBodHRwOi8vc3RhY2tvdmVyZmxv dy5jb20vcXVlc3Rpb25zLzQwODI2NDUvdXNpbmctcHl0aG9uLTIteHMtbG9jYWxlLW1vZHVsZS10 by1mb3JtYXQtbnVtYmVycy1hbmQtY3VycmVuY3kpCi0tICAgIGV4Y2VwdCBWYWx1ZUVycm9yLCBl cnJvcjogIyBPUyBYIG1heSBzZXQgVVRGLTggd2l0aG91dCBsYW5ndWFnZSBjb2RlCi0rICAgIGV4 Y2VwdCBWYWx1ZUVycm9yIGFzIGVycm9yOiAjIE9TIFggbWF5IHNldCBVVEYtOCB3aXRob3V0IGxh bmd1YWdlIGNvZGUKLSAgICAgICAgICMgc2VlIGh0dHA6Ly9idWdzLnB5dGhvbi5vcmcvaXNzdWUx ODM3OAotICAgICAgICAgIyBhbmQgaHR0cHM6Ly9zb3VyY2Vmb3JnZS5uZXQvcC9kb2N1dGlscy9i dWdzLzI5OC8KLSAgICAgICAgIGlmICJ1bmtub3duIGxvY2FsZTogVVRGLTgiIGluIGVycm9yLmFy Z3M6Ci1AQCAtMTEzLDcgKzExMyw3IEBAIGNsYXNzIFNhZmVTdHJpbmcob2JqZWN0KToKLSAgICAg ICAgICAgICBpZiBpc2luc3RhbmNlKHNlbGYuZGF0YSwgRW52aXJvbm1lbnRFcnJvcik6Ci0gICAg ICAgICAgICAgICAgIHUgPSB1LnJlcGxhY2UoIjogdSciLCAiOiAnIikgIyBub3JtYWxpemUgZmls ZW5hbWUgcXVvdGluZwotICAgICAgICAgICAgIHJldHVybiB1Ci0tICAgICAgICBleGNlcHQgVW5p Y29kZUVycm9yLCBlcnJvcjogIyBjYXRjaCAuLkVuY29kZS4uIGFuZCAuLkRlY29kZS4uIGVycm9y cwotKyAgICAgICAgZXhjZXB0IFVuaWNvZGVFcnJvciBhcyBlcnJvcjogIyBjYXRjaCAuLkVuY29k ZS4uIGFuZCAuLkRlY29kZS4uIGVycm9ycwotICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uoc2Vs Zi5kYXRhLCBFbnZpcm9ubWVudEVycm9yKToKLSAgICAgICAgICAgICAgICAgcmV0dXJuICB1IltF cnJubyAlc10gJXM6ICclcyciICUgKHNlbGYuZGF0YS5lcnJubywKLSAgICAgICAgICAgICAgICAg ICAgIFNhZmVTdHJpbmcoc2VsZi5kYXRhLnN0cmVycm9yLCBzZWxmLmVuY29kaW5nLAotZGlmZiAt LWdpdCBhL2RvY3V0aWxzL3dyaXRlcnMvX2h0bWxfYmFzZS5weSBiL2RvY3V0aWxzL3dyaXRlcnMv X2h0bWxfYmFzZS5weQotaW5kZXggZmEyNzkxMS4uMjNlZmVlYSAxMDA2NDQKLS0tLSBhL2RvY3V0 aWxzL3dyaXRlcnMvX2h0bWxfYmFzZS5weQotKysrIGIvZG9jdXRpbHMvd3JpdGVycy9faHRtbF9i YXNlLnB5Ci1AQCAtMzAyLDcgKzMwMiw3IEBAIGNsYXNzIEhUTUxUcmFuc2xhdG9yKG5vZGVzLk5v ZGVWaXNpdG9yKToKLSAgICAgICAgICAgICAgICAgY29udGVudCA9IGlvLkZpbGVJbnB1dChzb3Vy Y2VfcGF0aD1wYXRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVu Y29kaW5nPSd1dGYtOCcpLnJlYWQoKQotICAgICAgICAgICAgICAgICBzZWxmLnNldHRpbmdzLnJl Y29yZF9kZXBlbmRlbmNpZXMuYWRkKHBhdGgpCi0tICAgICAgICAgICAgZXhjZXB0IElPRXJyb3Is IGVycjoKLSsgICAgICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBlcnI6Ci0gICAgICAgICAgICAg ICAgIG1zZyA9IHUiQ2Fubm90IGVtYmVkIHN0eWxlc2hlZXQgJyVzJzogJXMuIiAlICgKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgsIFNhZmVTdHJpbmcoZXJyLnN0cmVycm9y KSkKLSAgICAgICAgICAgICAgICAgc2VsZi5kb2N1bWVudC5yZXBvcnRlci5lcnJvcihtc2cpCi1A QCAtMTE1OSw3ICsxMTU5LDcgQEAgY2xhc3MgSFRNTFRyYW5zbGF0b3Iobm9kZXMuTm9kZVZpc2l0 b3IpOgotICAgICAgICAgICAgICAgICAgICAgJ3dpdGggbWF0aC1vdXRwdXQgIk1hdGhNTCInKQot ICAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgotICAgICAgICAgICAgICAgICAgICAgcmFpc2Ug T1NFcnJvcignaXMgImxhdGV4bWxtYXRoIiBpbiB5b3VyIFBBVEg/JykKLS0gICAgICAgICAgICBl eGNlcHQgU3ludGF4RXJyb3IsIGVycjoKLSsgICAgICAgICAgICBleGNlcHQgU3ludGF4RXJyb3Ig YXMgZXJyOgotICAgICAgICAgICAgICAgICBlcnJfbm9kZSA9IHNlbGYuZG9jdW1lbnQucmVwb3J0 ZXIuZXJyb3IoZXJyLCBiYXNlX25vZGU9bm9kZSkKLSAgICAgICAgICAgICAgICAgc2VsZi52aXNp dF9zeXN0ZW1fbWVzc2FnZShlcnJfbm9kZSkKLSAgICAgICAgICAgICAgICAgc2VsZi5ib2R5LmFw cGVuZChzZWxmLnN0YXJ0dGFnKG5vZGUsICdwJykpCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvd3Jp dGVycy9kb2N1dGlsc194bWwucHkgYi9kb2N1dGlscy93cml0ZXJzL2RvY3V0aWxzX3htbC5weQot aW5kZXggMTQ4MDQxYS4uZTg3MGVlMSAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3dyaXRlcnMvZG9j dXRpbHNfeG1sLnB5Ci0rKysgYi9kb2N1dGlscy93cml0ZXJzL2RvY3V0aWxzX3htbC5weQotQEAg LTE4Niw3ICsxODYsNyBAQCBjbGFzcyBYTUxUcmFuc2xhdG9yKG5vZGVzLkdlbmVyaWNOb2RlVmlz aXRvcik6Ci0gICAgICAgICAgICAgeG1sX3N0cmluZyA9IHhtbF9zdHJpbmcuZW5jb2RlKCd1dGY4 JykKLSAgICAgICAgIHRyeToKLSAgICAgICAgICAgICBzZWxmLnhtbHBhcnNlci5wYXJzZShTdHJp bmdJTyh4bWxfc3RyaW5nKSkKLS0gICAgICAgIGV4Y2VwdCB4bWwuc2F4Ll9leGNlcHRpb25zLlNB WFBhcnNlRXhjZXB0aW9uLCBlcnJvcjoKLSsgICAgICAgIGV4Y2VwdCB4bWwuc2F4Ll9leGNlcHRp b25zLlNBWFBhcnNlRXhjZXB0aW9uIGFzIGVycm9yOgotICAgICAgICAgICAgIGNvbF9udW0gPSBz ZWxmLnRoZV9oYW5kbGUubG9jYXRvci5nZXRDb2x1bW5OdW1iZXIoKQotICAgICAgICAgICAgIGxp bmVfbnVtID0gIHNlbGYudGhlX2hhbmRsZS5sb2NhdG9yLmdldExpbmVOdW1iZXIoKQotICAgICAg ICAgICAgIHNyY2xpbmUgPSBub2RlLmxpbmUKLWRpZmYgLS1naXQgYS9kb2N1dGlscy93cml0ZXJz L2xhdGV4MmUvX19pbml0X18ucHkgYi9kb2N1dGlscy93cml0ZXJzL2xhdGV4MmUvX19pbml0X18u cHkKLWluZGV4IDVjMzNkMGEuLjVlYWE3ZjAgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy93cml0ZXJz L2xhdGV4MmUvX19pbml0X18ucHkKLSsrKyBiL2RvY3V0aWxzL3dyaXRlcnMvbGF0ZXgyZS9fX2lu aXRfXy5weQotQEAgLTE0MTYsNyArMTQxNiw3IEBAIGNsYXNzIExhVGVYVHJhbnNsYXRvcihub2Rl cy5Ob2RlVmlzaXRvcik6Ci0gICAgICAgICAgICAgICAgIGNvbnRlbnQgPSBpby5GaWxlSW5wdXQo c291cmNlX3BhdGg9cGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBlbmNvZGluZz0ndXRmLTgnKS5yZWFkKCkKLSAgICAgICAgICAgICAgICAgc2VsZi5zZXR0aW5n cy5yZWNvcmRfZGVwZW5kZW5jaWVzLmFkZChwYXRoKQotLSAgICAgICAgICAgIGV4Y2VwdCBJT0Vy cm9yLCBlcnI6Ci0rICAgICAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgZXJyOgotICAgICAgICAg ICAgICAgICBtc2cgPSB1IkNhbm5vdCBlbWJlZCBzdHlsZXNoZWV0ICclcyc6XG4gICVzLiIgJSAo Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLCBTYWZlU3RyaW5nKGVyci5z dHJlcnJvcikpCi0gICAgICAgICAgICAgICAgIHNlbGYuZG9jdW1lbnQucmVwb3J0ZXIuZXJyb3Io bXNnKQotZGlmZiAtLWdpdCBhL3Rlc3QvRG9jdXRpbHNUZXN0U3VwcG9ydC5weSBiL3Rlc3QvRG9j dXRpbHNUZXN0U3VwcG9ydC5weQotaW5kZXggMjUxOTZlYy4uZTc3NDQ3YSAxMDA2NDQKLS0tLSBh L3Rlc3QvRG9jdXRpbHNUZXN0U3VwcG9ydC5weQotKysrIGIvdGVzdC9Eb2N1dGlsc1Rlc3RTdXBw b3J0LnB5Ci1AQCAtMjMwLDcgKzIzMCw3IEBAIGNsYXNzIEN1c3RvbVRlc3RDYXNlKFN0YW5kYXJk VGVzdENhc2UpOgotICAgICAgICAgICAgIG91dHB1dCA9ICdcbicuam9pbihvdXRwdXQuc3BsaXRs aW5lcygpKQotICAgICAgICAgdHJ5OgotICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3V0 cHV0LCBleHBlY3RlZCkKLS0gICAgICAgIGV4Y2VwdCBBc3NlcnRpb25FcnJvciwgZXJyb3I6Ci0r ICAgICAgICBleGNlcHQgQXNzZXJ0aW9uRXJyb3IgYXMgZXJyb3I6Ci0gICAgICAgICAgICAgcHJp bnQoJ1xuJXNcbmlucHV0OicgJSAoc2VsZiwpLCBmaWxlPXN5cy5zdGRlcnIpCi0gICAgICAgICAg ICAgcHJpbnQoaW5wdXQsIGZpbGU9c3lzLnN0ZGVycikKLSAgICAgICAgICAgICB0cnk6Ci1AQCAt NTQzLDcgKzU0Myw3IEBAIGNsYXNzIEdyaWRUYWJsZVBhcnNlclRlc3RDYXNlKEN1c3RvbVRlc3RD YXNlKToKLSAgICAgICAgICAgICBzZWxmLnBhcnNlci5maW5kX2hlYWRfYm9keV9zZXAoKQotICAg ICAgICAgICAgIHNlbGYucGFyc2VyLnBhcnNlX3RhYmxlKCkKLSAgICAgICAgICAgICBvdXRwdXQg PSBzZWxmLnBhcnNlci5jZWxscwotLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZGV0YWlsczoK LSsgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZGV0YWlsczoKLSAgICAgICAgICAgICBvdXRw dXQgPSAnJXM6ICVzJyAlIChkZXRhaWxzLl9fY2xhc3NfXy5fX25hbWVfXywgZGV0YWlscykKLSAg ICAgICAgIHNlbGYuY29tcGFyZV9vdXRwdXQoc2VsZi5pbnB1dCwgcGZvcm1hdChvdXRwdXQpICsg J1xuJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGZvcm1hdChzZWxmLmV4cGVjdGVk KSArICdcbicpCi1AQCAtNTUyLDcgKzU1Miw3IEBAIGNsYXNzIEdyaWRUYWJsZVBhcnNlclRlc3RD YXNlKEN1c3RvbVRlc3RDYXNlKToKLSAgICAgICAgIHRyeToKLSAgICAgICAgICAgICBvdXRwdXQg PSBzZWxmLnBhcnNlci5wYXJzZShTdHJpbmdMaXN0KHN0cmluZzJsaW5lcyhzZWxmLmlucHV0KSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXN0 IGRhdGEnKSkKLS0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGRldGFpbHM6Ci0rICAgICAgICBl eGNlcHQgRXhjZXB0aW9uIGFzIGRldGFpbHM6Ci0gICAgICAgICAgICAgb3V0cHV0ID0gJyVzOiAl cycgJSAoZGV0YWlscy5fX2NsYXNzX18uX19uYW1lX18sIGRldGFpbHMpCi0gICAgICAgICBzZWxm LmNvbXBhcmVfb3V0cHV0KHNlbGYuaW5wdXQsIHBmb3JtYXQob3V0cHV0KSArICdcbicsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBmb3JtYXQoc2VsZi5leHBlY3RlZCkgKyAnXG4nKQot QEAgLTg2NSw3ICs4NjUsNyBAQCBkZWYgZXhjZXB0aW9uX2RhdGEoZnVuYywgKmFyZ3MsICoqa3dk cyk6Ci0gICAgICIiIgotICAgICB0cnk6Ci0gICAgICAgICBmdW5jKCphcmdzLCAqKmt3ZHMpCi0t ICAgIGV4Y2VwdCBFeGNlcHRpb24sIGRldGFpbDoKLSsgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBk ZXRhaWw6Ci0gICAgICAgICByZXR1cm4gKGRldGFpbCwgZGV0YWlsLmFyZ3MsCi0gICAgICAgICAg ICAgICAgICclczogJXMnICUgKGRldGFpbC5fX2NsYXNzX18uX19uYW1lX18sIGRldGFpbCkpCi0g Ci1kaWZmIC0tZ2l0IGEvdGVzdC9wYWNrYWdlX3VuaXR0ZXN0LnB5IGIvdGVzdC9wYWNrYWdlX3Vu aXR0ZXN0LnB5Ci1pbmRleCBkYWYxMWY0Li4xNmIwMGRjIDEwMDY0NAotLS0tIGEvdGVzdC9wYWNr YWdlX3VuaXR0ZXN0LnB5Ci0rKysgYi90ZXN0L3BhY2thZ2VfdW5pdHRlc3QucHkKLUBAIC02NCw3 ICs2NCw3IEBAIGRlZiBwYXJzZUFyZ3MoYXJndj1zeXMuYXJndik6Ci0gICAgICAgICAgICAgICAg IGRlYnVnID0xCi0gICAgICAgICBpZiBsZW4oYXJncykgIT0gMDoKLSAgICAgICAgICAgICB1c2Fn ZUV4aXQoIk5vIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgc3VwcG9ydGVkIHlldC4iKQotLSAgICBl eGNlcHQgZ2V0b3B0LmVycm9yLCBtc2c6Ci0rICAgIGV4Y2VwdCBnZXRvcHQuZXJyb3IgYXMgbXNn OgotICAgICAgICAgdXNhZ2VFeGl0KG1zZykKLSAKLSBkZWYgbG9hZFRlc3RNb2R1bGVzKHBhdGgs IG5hbWU9JycsIHBhY2thZ2VzPU5vbmUpOgotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9lcnJvcl9y ZXBvcnRpbmcucHkgYi90ZXN0L3Rlc3RfZXJyb3JfcmVwb3J0aW5nLnB5Ci1pbmRleCBjNGVhZTQw Li5iYWU5ZGI1IDEwMDY0NAotLS0tIGEvdGVzdC90ZXN0X2Vycm9yX3JlcG9ydGluZy5weQotKysr IGIvdGVzdC90ZXN0X2Vycm9yX3JlcG9ydGluZy5weQotQEAgLTE5LDcgKzE5LDcgQEAgaW5zdGFu Y2VzIGxpa2UsIGUuZy4sIDo6Ci0gCi0gICB0cnk6Ci0gICAgIHNvbWV0aGluZwotLSAgZXhjZXB0 IElPRXJyb3IsIGVycm9yOgotKyAgZXhjZXB0IElPRXJyb3IgYXMgZXJyb3I6Ci0gICAgIHByaW50 KCdGb3VuZCAlcycgJSBlcnJvcikKLSAKLSB1bmxlc3MgdGhlIG1pbmltYWwgcmVxdWlyZWQgUHl0 aG9uIHZlcnNpb24gaGFzIHRoaXMgcHJvYmxlbSBmaXhlZC4KLUBAIC0yMjMsMjkgKzIyMywyOSBA QCBjbGFzcyBTYWZlU3RyaW5nVGVzdHNfbG9jYWxlKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAg dXMgPSB1J1x4ZmMnCi0gICAgIHRyeToKLSAgICAgICAgIG9wZW4oYidceGZjJykKLS0gICAgZXhj ZXB0IElPRXJyb3IsIGU6ICMgaW4gUHl0aG9uIDMgdGhlIG5hbWUgZm9yIHRoZSBleGNlcHRpb24g aW5zdGFuY2UKLSsgICAgZXhjZXB0IElPRXJyb3IgYXMgZTogIyBpbiBQeXRob24gMyB0aGUgbmFt ZSBmb3IgdGhlIGV4Y2VwdGlvbiBpbnN0YW5jZQotICAgICAgICAgYmlvZSA9IGUgICAgICAgIyBp cyBsb2NhbCB0byB0aGUgZXhjZXB0IGNsYXVzZQotICAgICB0cnk6Ci0gICAgICAgICBvcGVuKHUn XHhmYycpCi0tICAgIGV4Y2VwdCBJT0Vycm9yLCBlOgotKyAgICBleGNlcHQgSU9FcnJvciBhcyBl OgotICAgICAgICAgdWlvZSA9IGUKLSAgICAgZXhjZXB0IFVuaWNvZGVFbmNvZGVFcnJvcjoKLSAg ICAgICAgIHRyeToKLSAgICAgICAgICAgICBvcGVuKHUnXHhmYycuZW5jb2RlKHN5cy5nZXRmaWxl c3lzdGVtZW5jb2RpbmcoKSwgJ3JlcGxhY2UnKSkKLS0gICAgICAgIGV4Y2VwdCBJT0Vycm9yLCBl OgotKyAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgZToKLSAgICAgICAgICAgICB1aW9lID0gZQot ICAgICB0cnk6Ci0gICAgICAgICBvcy5jaGRpcihiJ1x4ZmMnKQotLSAgICBleGNlcHQgT1NFcnJv ciwgZToKLSsgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKLSAgICAgICAgIGJvc2UgPSBlCi0gICAg IHRyeToKLSAgICAgICAgIG9zLmNoZGlyKHUnXHhmYycpCi0tICAgIGV4Y2VwdCBPU0Vycm9yLCBl OgotKyAgICBleGNlcHQgT1NFcnJvciBhcyBlOgotICAgICAgICAgdW9zZSA9IGUKLSAgICAgZXhj ZXB0IFVuaWNvZGVFbmNvZGVFcnJvcjoKLSAgICAgICAgIHRyeToKLSAgICAgICAgICAgICBvcy5j aGRpcih1J1x4ZmMnLmVuY29kZShzeXMuZ2V0ZmlsZXN5c3RlbWVuY29kaW5nKCksICdyZXBsYWNl JykpCi0tICAgICAgICBleGNlcHQgT1NFcnJvciwgZToKLSsgICAgICAgIGV4Y2VwdCBPU0Vycm9y IGFzIGU6Ci0gICAgICAgICAgICAgdW9zZSA9IGUKLSAgICAgIyB3cmFwcGVkIHRlc3QgZGF0YToK LSAgICAgd2Jpb2UgPSBTYWZlU3RyaW5nKGJpb2UpCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X2xh bmd1YWdlLnB5IGIvdGVzdC90ZXN0X2xhbmd1YWdlLnB5Ci1pbmRleCA3MGE0OTdlLi4wZTA1ZDQ0 IDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X2xhbmd1YWdlLnB5Ci0rKysgYi90ZXN0L3Rlc3RfbGFu Z3VhZ2UucHkKLUBAIC0xNDQsNyArMTQ0LDcgQEAgY2xhc3MgTGFuZ3VhZ2VUZXN0Q2FzZShEb2N1 dGlsc1Rlc3RTdXBwb3J0LkN1c3RvbVRlc3RDYXNlKToKLSAgICAgICAgICAgICAgICAgZnVuYywg bXNnID0gZGlyZWN0aXZlcy5kaXJlY3RpdmUoZCwgbW9kdWxlLCBOb25lKQotICAgICAgICAgICAg ICAgICBpZiBub3QgZnVuYzoKLSAgICAgICAgICAgICAgICAgICAgIGZhaWx1cmVzLmFwcGVuZCgn IiVzIjogdW5rbm93biBkaXJlY3RpdmUnICUgZCkKLS0gICAgICAgICAgICBleGNlcHQgRXhjZXB0 aW9uLCBlcnJvcjoKLSsgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGVycm9yOgotICAg ICAgICAgICAgICAgICBmYWlsdXJlcy5hcHBlbmQoJyIlcyI6ICVzJyAlIChkLCBlcnJvcikpCi0g ICAgICAgICBpbnZlcnRlZCA9IHNlbGYuX2ludmVydChtb2R1bGUuZGlyZWN0aXZlcykKLSAgICAg ICAgIGNhbm9uaWNhbCA9IGRpcmVjdGl2ZXMuX2RpcmVjdGl2ZV9yZWdpc3RyeS5rZXlzKCkKLUBA IC0xNzksNyArMTc5LDcgQEAgY2xhc3MgTGFuZ3VhZ2VUZXN0Q2FzZShEb2N1dGlsc1Rlc3RTdXBw b3J0LkN1c3RvbVRlc3RDYXNlKToKLSAgICAgICAgICAgICAgICAgbWV0aG9kID0gcm9sZXMuX3Jv bGVfcmVnaXN0cnlbZF0KLSAgICAgICAgICAgICAgICAgI2lmIG5vdCBtZXRob2Q6Ci0gICAgICAg ICAgICAgICAgICMgICAgZmFpbHVyZXMuYXBwZW5kKCciJXMiOiB1bmtub3duIHJvbGUnICUgZCkK LS0gICAgICAgICAgICBleGNlcHQgS2V5RXJyb3IsIGVycm9yOgotKyAgICAgICAgICAgIGV4Y2Vw dCBLZXlFcnJvciBhcyBlcnJvcjoKLSAgICAgICAgICAgICAgICAgZmFpbHVyZXMuYXBwZW5kKCci JXMiOiAlcycgJSAoZCwgZXJyb3IpKQotICAgICAgICAgaW52ZXJ0ZWQgPSBzZWxmLl9pbnZlcnQo bW9kdWxlLnJvbGVzKQotICAgICAgICAgY2Fub25pY2FsID0gcm9sZXMuX3JvbGVfcmVnaXN0cnku a2V5cygpCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3B1Ymxpc2hlci5weSBiL3Rlc3QvdGVzdF9w dWJsaXNoZXIucHkKLWluZGV4IGYwNGViZjcuLjA0ZDljNzEgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rl c3RfcHVibGlzaGVyLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcHVibGlzaGVyLnB5Ci1AQCAtNjUsNyAr NjUsNyBAQCBjbGFzcyBQdWJsaXNoZXJUZXN0cyhEb2N1dGlsc1Rlc3RTdXBwb3J0LlN0YW5kYXJk VGVzdENhc2UpOgotICAgICAgICAgdHJ5OgotICAgICAgICAgICAgIGNvcmUucHVibGlzaF9jbWRs aW5lKGFyZ3Y9Wydub25leGlzdGluZy9wYXRoJ10sCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2V0dGluZ3Nfb3ZlcnJpZGVzPXsndHJhY2ViYWNrJzogVHJ1ZX0pCi0t ICAgICAgICBleGNlcHQgSU9FcnJvciwgZToKLSsgICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGU6 Ci0gICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UoZSwgaW8uSW5wdXRFcnJv cikpCi0gCi0gCi1AQCAtNzQsNyArNzQsNyBAQCBjbGFzcyBQdWJsaXNoZXJUZXN0cyhEb2N1dGls c1Rlc3RTdXBwb3J0LlN0YW5kYXJkVGVzdENhc2UpOgotICAgICAgICAgdHJ5OgotICAgICAgICAg ICAgIGNvcmUucHVibGlzaF9jbWRsaW5lKGFyZ3Y9WydkYXRhL2luY2x1ZGUudHh0JywgJ25vbmV4 aXN0aW5nL3BhdGgnXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZXR0aW5nc19vdmVycmlkZXM9eyd0cmFjZWJhY2snOiBUcnVlfSkKLS0gICAgICAgIGV4Y2VwdCBJ T0Vycm9yLCBlOgotKyAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgZToKLSAgICAgICAgICAgICBz ZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShlLCBpby5PdXRwdXRFcnJvcikpCi0gCi0gCi1kaWZm IC0tZ2l0IGEvdGVzdC90ZXN0X3V0aWxzLnB5IGIvdGVzdC90ZXN0X3V0aWxzLnB5Ci1pbmRleCBl MWZjYzhmLi41OWUyOWM4IDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3V0aWxzLnB5Ci0rKysgYi90 ZXN0L3Rlc3RfdXRpbHMucHkKLUBAIC04OCw3ICs4OCw3IEBAIGNsYXNzIFJlcG9ydGVyVGVzdHMo dW5pdHRlc3QuVGVzdENhc2UpOgotICAgICAgICAgYW5kIGhlbmNlIGZhaWxzIHdpdGggdW5pY29k ZSBtZXNzYWdlIiIiCi0gICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u KHUnbWVzaWTKkicpCi0tICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlcnI6Ci0rICAgICAgICBl eGNlcHQgRXhjZXB0aW9uIGFzIGVycjoKLSAgICAgICAgICAgICBzdyA9IHNlbGYucmVwb3J0ZXIu c3lzdGVtX21lc3NhZ2UoMCwgZXJyKQotICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3cu cGZvcm1hdCgpLCB1IiIiXAotIDxzeXN0ZW1fbWVzc2FnZSBsZXZlbD0iMCIgc291cmNlPSJ0ZXN0 IGRhdGEiIHR5cGU9IkRFQlVHIj4KLS0tIAotMi4yNC4wLjM3NS5nZWI1YWU2OGQ0MQotCmRpZmYg LS1naXQgYS9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMDQtcHkzLUFkZC1hbGlh c2VzLWZvci1yZW1vdmVkLXN5bWJvbHMucGF0Y2ggYi9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9w YXRjaGVzLzAwMDQtcHkzLUFkZC1hbGlhc2VzLWZvci1yZW1vdmVkLXN5bWJvbHMucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRkNmQ5ZTg0ZjBjLi4wMDAwMDAwMDAwMAotLS0g YS9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMDQtcHkzLUFkZC1hbGlhc2VzLWZv ci1yZW1vdmVkLXN5bWJvbHMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1OTkgKzAsMCBAQAot RnJvbSA0NDdlNDg5NmM5YjI0ODdmYjI4YzI1Zjc1NjRlYmNiNjczM2QyMzYzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQotRnJvbTogU3RlcGhlbiBGaW51Y2FuZSA8c3RlcGhlbkB0aGF0Lmd1cnU+ Ci1EYXRlOiBUdWUsIDE5IE5vdiAyMDE5IDIzOjUwOjUwICswNzAwCi1TdWJqZWN0OiBbUEFUQ0gg MDQvMjZdIHB5MzogQWRkIGFsaWFzZXMgZm9yIHJlbW92ZWQgc3ltYm9scwotTUlNRS1WZXJzaW9u OiAxLjAKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAotQ29udGVudC1U cmFuc2Zlci1FbmNvZGluZzogOGJpdAotCi1BZGQgYWxpYXNlcyBmb3Igc3ltYm9scyB0aGF0IGhh dmUgYmVlbiByZW1vdmVkIGluIFB5dGhvbiAzLngsIG5hbWVseQotYmFzZXN0cmluZywgdW5pY29k ZSwgdW5pY2hyIGFuZCBTdGFuZGFyZEVycm9yLgotCi1TaWduZWQtb2ZmLWJ5OiBTdGVwaGVuIEZp bnVjYW5lIDxzdGVwaGVuQHRoYXQuZ3VydT4KLXNtYWxsIGZpeGVzIGJ5IEfDvG50ZXIgTWlsZGUu Ci0KLWdpdC1zdm4taWQ6IGh0dHA6Ly9zdm4uY29kZS5zZi5uZXQvcC9kb2N1dGlscy9jb2RlL3Ry dW5rQDgzNDggOTI5NTQzZjYtZTRmMi0wMzEwLTk4YTYtYmEzYmQzZGQxZDA0Ci1TaWduZWQtb2Zm LWJ5OiBEb2FuIFRyYW4gQ29uZyBEYW5oIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KLS0tLQotIGRv Y3V0aWxzL19faW5pdF9fLnB5ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzICstCi0gZG9j dXRpbHMvZnJvbnRlbmQucHkgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMgKwotIGRvY3V0 aWxzL2lvLnB5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzICsKLSBkb2N1dGls cy9ub2Rlcy5weSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgOCArKy0KLSBkb2N1dGls cy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL19faW5pdF9fLnB5ICAgfCAgMyArCi0gZG9jdXRpbHMv c3RhdGVtYWNoaW5lLnB5ICAgICAgICAgICAgICAgICAgICAgIHwgMTAgKysrLQotIGRvY3V0aWxz L3RyYW5zZm9ybXMvZnJvbnRtYXR0ZXIucHkgICAgICAgICAgICB8ICA2ICsrCi0gZG9jdXRpbHMv dHJhbnNmb3Jtcy91bml2ZXJzYWwucHkgICAgICAgICAgICAgIHwgIDUgKysKLSBkb2N1dGlscy91 dGlscy9fX2luaXRfXy5weSAgICAgICAgICAgICAgICAgICAgfCAgMyArCi0gZG9jdXRpbHMvdXRp bHMvZXJyb3JfcmVwb3J0aW5nLnB5ICAgICAgICAgICAgIHwgMTAgKysrLQotIGRvY3V0aWxzL3V0 aWxzL21hdGgvbWF0aDJodG1sLnB5ICAgICAgICAgICAgICB8IDU5ICsrKystLS0tLS0tLS0tLS0t LS0KLSBkb2N1dGlscy93cml0ZXJzL19odG1sX2Jhc2UucHkgICAgICAgICAgICAgICAgfCAgNCAr KwotIGRvY3V0aWxzL3dyaXRlcnMvZG9jdXRpbHNfeG1sLnB5ICAgICAgICAgICAgICB8ICAzICsK LSBkb2N1dGlscy93cml0ZXJzL2xhdGV4MmUvX19pbml0X18ucHkgICAgICAgICAgfCAgNCArKwot IGRvY3V0aWxzL3dyaXRlcnMvbWFucGFnZS5weSAgICAgICAgICAgICAgICAgICB8ICA2ICstCi0g dGVzdC9Eb2N1dGlsc1Rlc3RTdXBwb3J0LnB5ICAgICAgICAgICAgICAgICAgIHwgIDQgKysKLSB0 ZXN0L3Rlc3RfX2luaXRfXy5weSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArKwotIHRl c3QvdGVzdF9lcnJvcl9yZXBvcnRpbmcucHkgICAgICAgICAgICAgICAgICB8ICAzICsKLSB0ZXN0 L3Rlc3RfbGFuZ3VhZ2UucHkgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNyArKy0KLSB0ZXN0 L3Rlc3Rfbm9kZXMucHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMyArCi0gLi4uL3Rl c3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2luY2x1ZGUucHkgIHwgIDUgKysKLSAuLi4vdGVz dF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfdGFibGVzLnB5ICAgfCAgNSArKwotIC4uLi90ZXN0 X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF91bmljb2RlLnB5ICB8ICA2ICsrCi0gdG9vbHMvZGV2 L2NyZWF0ZV91bmltYXAucHkgICAgICAgICAgICAgICAgICAgIHwgMTAgKystLQotIDI0IGZpbGVz IGNoYW5nZWQsIDExNSBpbnNlcnRpb25zKCspLCA2MiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdp dCBhL2RvY3V0aWxzL19faW5pdF9fLnB5IGIvZG9jdXRpbHMvX19pbml0X18ucHkKLWluZGV4IDdk NmE2NzkuLjgxNzg4MTYgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9fX2luaXRfXy5weQotKysrIGIv ZG9jdXRpbHMvX19pbml0X18ucHkKLUBAIC04OCw3ICs4OCw4IEBAIF9fdmVyc2lvbl9kZXRhaWxz X18gPSAncmVsZWFzZScKLSAiIiIKLSAKLSAKLS1jbGFzcyBBcHBsaWNhdGlvbkVycm9yKFN0YW5k YXJkRXJyb3IpOiBwYXNzCi0rY2xhc3MgQXBwbGljYXRpb25FcnJvcihFeGNlcHRpb24pOiBwYXNz Ci0rCi0gY2xhc3MgRGF0YUVycm9yKEFwcGxpY2F0aW9uRXJyb3IpOiBwYXNzCi0gCi0gCi1kaWZm IC0tZ2l0IGEvZG9jdXRpbHMvZnJvbnRlbmQucHkgYi9kb2N1dGlscy9mcm9udGVuZC5weQotaW5k ZXggNjg5ZDkwNC4uZWJkYmQ2YSAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL2Zyb250ZW5kLnB5Ci0r KysgYi9kb2N1dGlscy9mcm9udGVuZC5weQotQEAgLTQzLDYgKzQzLDkgQEAgaW1wb3J0IGRvY3V0 aWxzLm5vZGVzCi0gZnJvbSBkb2N1dGlscy51dGlscy5lcnJvcl9yZXBvcnRpbmcgaW1wb3J0IChs b2NhbGVfZW5jb2RpbmcsIFNhZmVTdHJpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBFcnJvck91dHB1dCwgRXJyb3JTdHJpbmcpCi0gCi0raWYgc3lzLnZl cnNpb25faW5mbyA+PSAoMywgMCk6Ci0rICAgIHVuaWNvZGUgPSBzdHIgICMgbm9xYQotKwotIAot IGRlZiBzdG9yZV9tdWx0aXBsZShvcHRpb24sIG9wdCwgdmFsdWUsIHBhcnNlciwgKmFyZ3MsICoq a3dhcmdzKToKLSAgICAgIiIiCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvaW8ucHkgYi9kb2N1dGls cy9pby5weQotaW5kZXggNDQ2NmZkYi4uM2NkZjAwZSAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL2lv LnB5Ci0rKysgYi9kb2N1dGlscy9pby5weQotQEAgLTE3LDYgKzE3LDkgQEAgaW1wb3J0IGNvZGVj cwotIGZyb20gZG9jdXRpbHMgaW1wb3J0IFRyYW5zZm9ybVNwZWMKLSBmcm9tIGRvY3V0aWxzLnV0 aWxzLmVycm9yX3JlcG9ydGluZyBpbXBvcnQgbG9jYWxlX2VuY29kaW5nLCBFcnJvclN0cmluZywg RXJyb3JPdXRwdXQKLSAKLStpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSsgICAgdW5p Y29kZSA9IHN0ciAgIyBub3FhCi0rCi0gCi0gY2xhc3MgSW5wdXRFcnJvcihJT0Vycm9yKTogcGFz cwotIGNsYXNzIE91dHB1dEVycm9yKElPRXJyb3IpOiBwYXNzCi1kaWZmIC0tZ2l0IGEvZG9jdXRp bHMvbm9kZXMucHkgYi9kb2N1dGlscy9ub2Rlcy5weQotaW5kZXggOGE1YjdiYi4uZmEwMmM2ZSAx MDA2NDQKLS0tLSBhL2RvY3V0aWxzL25vZGVzLnB5Ci0rKysgYi9kb2N1dGlscy9ub2Rlcy5weQot QEAgLTMwLDYgKzMwLDEwIEBAIGltcG9ydCB3YXJuaW5ncwotIGltcG9ydCB0eXBlcwotIGltcG9y dCB1bmljb2RlZGF0YQotIAotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotKyAgICB1 bmljb2RlID0gc3RyICAjIG5vcWEKLSsgICAgYmFzZXN0cmluZyA9IHN0ciAgIyBub3FhCi0rCi0g IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAjICBGdW5jdGlvbmFsIE5vZGUgQmFz ZSBDbGFzc2VzCi0gIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLUBAIC02MSw3ICs2 NSw3IEBAIGNsYXNzIE5vZGUob2JqZWN0KToKLSAgICAgICAgICIiIgotICAgICAgICAgcmV0dXJu IFRydWUKLSAKLS0gICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCk6Ci0rICAgIGlmIHN5cy52 ZXJzaW9uX2luZm8gPCAoMywgMCk6Ci0gICAgICAgICAjIG9uIDIueCwgc3RyKG5vZGUpIHdpbGwg YmUgYSBieXRlIHN0cmluZyB3aXRoIFVuaWNvZGUKLSAgICAgICAgICMgY2hhcmFjdGVycyA+IDI1 NSBlc2NhcGVkOyBvbiAzLnggdGhpcyBpcyBubyBsb25nZXIgbmVjZXNzYXJ5Ci0gICAgICAgICBk ZWYgX19zdHJfXyhzZWxmKToKLUBAIC0zMDEsNyArMzA1LDcgQEAgY2xhc3MgTm9kZShvYmplY3Qp OgotICAgICAgICAgZXhjZXB0IEluZGV4RXJyb3I6Ci0gICAgICAgICAgICAgcmV0dXJuIE5vbmUK LSAKLS1pZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsKToKLStpZiBzeXMudmVyc2lvbl9pbmZvIDwg KDMsIDApOgotICAgICBjbGFzcyByZXBydW5pY29kZSh1bmljb2RlKToKLSAgICAgICAgICIiIgot ICAgICAgICAgQSB1bmljb2RlIHN1Yi1jbGFzcyB0aGF0IHJlbW92ZXMgdGhlIGluaXRpYWwgdSBm cm9tIHVuaWNvZGUncyByZXByLgotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3BhcnNlcnMvcnN0L2Rp cmVjdGl2ZXMvX19pbml0X18ucHkgYi9kb2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL19f aW5pdF9fLnB5Ci1pbmRleCA4Nzg5MzQ2Li43YmNjYjViIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMv cGFyc2Vycy9yc3QvZGlyZWN0aXZlcy9fX2luaXRfXy5weQotKysrIGIvZG9jdXRpbHMvcGFyc2Vy cy9yc3QvZGlyZWN0aXZlcy9fX2luaXRfXy5weQotQEAgLTE2LDYgKzE2LDkgQEAgZnJvbSBkb2N1 dGlscyBpbXBvcnQgbm9kZXMKLSBmcm9tIGRvY3V0aWxzLnV0aWxzIGltcG9ydCBzcGxpdF9lc2Nh cGVkX3doaXRlc3BhY2UsIGVzY2FwZTJudWxsLCB1bmVzY2FwZQotIGZyb20gZG9jdXRpbHMucGFy c2Vycy5yc3QubGFuZ3VhZ2VzIGltcG9ydCBlbiBhcyBfZmFsbGJhY2tfbGFuZ3VhZ2VfbW9kdWxl Ci0gCi0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0rICAgIHVuaWNociA9IGNociAg IyBub3FhCi0rCi0gCi0gX2RpcmVjdGl2ZV9yZWdpc3RyeSA9IHsKLSAgICAgICAnYXR0ZW50aW9u JzogKCdhZG1vbml0aW9ucycsICdBdHRlbnRpb24nKSwKLWRpZmYgLS1naXQgYS9kb2N1dGlscy9z dGF0ZW1hY2hpbmUucHkgYi9kb2N1dGlscy9zdGF0ZW1hY2hpbmUucHkKLWluZGV4IDZhMjMyMmMu LmI1NmYzYzUgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9zdGF0ZW1hY2hpbmUucHkKLSsrKyBiL2Rv Y3V0aWxzL3N0YXRlbWFjaGluZS5weQotQEAgLTExNCw2ICsxMTQsOSBAQCBpbXBvcnQgdW5pY29k ZWRhdGEKLSBmcm9tIGRvY3V0aWxzIGltcG9ydCB1dGlscwotIGZyb20gZG9jdXRpbHMudXRpbHMu ZXJyb3JfcmVwb3J0aW5nIGltcG9ydCBFcnJvck91dHB1dAotIAotK2lmIHN5cy52ZXJzaW9uX2lu Zm8gPj0gKDMsIDApOgotKyAgICB1bmljb2RlID0gc3RyICAjIG5vcWEKLSsKLSAKLSBjbGFzcyBT dGF0ZU1hY2hpbmUob2JqZWN0KToKLSAKLUBAIC0xMTI0LDcgKzExMjcsMTIgQEAgY2xhc3MgVmll d0xpc3Qob2JqZWN0KToKLSAgICAgZGVmIF9fbmVfXyhzZWxmLCBvdGhlcik6IHJldHVybiBzZWxm LmRhdGEgIT0gc2VsZi5fX2Nhc3Qob3RoZXIpCi0gICAgIGRlZiBfX2d0X18oc2VsZiwgb3RoZXIp OiByZXR1cm4gc2VsZi5kYXRhID4gIHNlbGYuX19jYXN0KG90aGVyKQotICAgICBkZWYgX19nZV9f KHNlbGYsIG90aGVyKTogcmV0dXJuIHNlbGYuZGF0YSA+PSBzZWxmLl9fY2FzdChvdGhlcikKLS0g ICAgZGVmIF9fY21wX18oc2VsZiwgb3RoZXIpOiByZXR1cm4gY21wKHNlbGYuZGF0YSwgc2VsZi5f X2Nhc3Qob3RoZXIpKQotKwotKyAgICBkZWYgX19jbXBfXyhzZWxmLCBvdGhlcik6Ci0rICAgICAg ICAjIGZyb20gaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy4wL3doYXRzbmV3LzMuMC5odG1sCi0r ICAgICAgICBtaW5lID0gc2VsZi5kYXRhCi0rICAgICAgICB5b3VycyA9IHNlbGYuX19jYXN0KG90 aGVyKQotKyAgICAgICAgcmV0dXJuIChtaW5lID4geW91cnMpIC0gKHlvdXJzIDwgbWluZSkKLSAK LSAgICAgZGVmIF9fY2FzdChzZWxmLCBvdGhlcik6Ci0gICAgICAgICBpZiBpc2luc3RhbmNlKG90 aGVyLCBWaWV3TGlzdCk6Ci1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvdHJhbnNmb3Jtcy9mcm9udG1h dHRlci5weSBiL2RvY3V0aWxzL3RyYW5zZm9ybXMvZnJvbnRtYXR0ZXIucHkKLWluZGV4IGY5NGM5 ZGEuLjEyNzlmNTAgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy90cmFuc2Zvcm1zL2Zyb250bWF0dGVy LnB5Ci0rKysgYi9kb2N1dGlscy90cmFuc2Zvcm1zL2Zyb250bWF0dGVyLnB5Ci1AQCAtMjIsMTAg KzIyLDE2IEBAIFRyYW5zZm9ybXMgcmVsYXRlZCB0byB0aGUgZnJvbnQgbWF0dGVyIG9mIGEgZG9j dW1lbnQgb3IgYSBzZWN0aW9uCi0gX19kb2Nmb3JtYXRfXyA9ICdyZVN0cnVjdHVyZWRUZXh0Jwot IAotIGltcG9ydCByZQotK2ltcG9ydCBzeXMKLSsKLSBmcm9tIGRvY3V0aWxzIGltcG9ydCBub2Rl cywgdXRpbHMKLSBmcm9tIGRvY3V0aWxzLnRyYW5zZm9ybXMgaW1wb3J0IFRyYW5zZm9ybUVycm9y LCBUcmFuc2Zvcm0KLSAKLSAKLStpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSsgICAg dW5pY29kZSA9IHN0ciAgIyBub3FhCi0rCi0rCi0gY2xhc3MgVGl0bGVQcm9tb3RlcihUcmFuc2Zv cm0pOgotIAotICAgICAiIiIKLWRpZmYgLS1naXQgYS9kb2N1dGlscy90cmFuc2Zvcm1zL3VuaXZl cnNhbC5weSBiL2RvY3V0aWxzL3RyYW5zZm9ybXMvdW5pdmVyc2FsLnB5Ci1pbmRleCA0N2UxMjc2 Li40OWZiMmM4IDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvdHJhbnNmb3Jtcy91bml2ZXJzYWwucHkK LSsrKyBiL2RvY3V0aWxzL3RyYW5zZm9ybXMvdW5pdmVyc2FsLnB5Ci1AQCAtMTcsMTIgKzE3LDE3 IEBAIFRyYW5zZm9ybXMgbmVlZGVkIGJ5IG1vc3Qgb3IgYWxsIGRvY3VtZW50czoKLSBfX2RvY2Zv cm1hdF9fID0gJ3JlU3RydWN0dXJlZFRleHQnCi0gCi0gaW1wb3J0IHJlCi0raW1wb3J0IHN5cwot IGltcG9ydCB0aW1lCi0gZnJvbSBkb2N1dGlscyBpbXBvcnQgbm9kZXMsIHV0aWxzCi0gZnJvbSBk b2N1dGlscy50cmFuc2Zvcm1zIGltcG9ydCBUcmFuc2Zvcm1FcnJvciwgVHJhbnNmb3JtCi0gZnJv bSBkb2N1dGlscy51dGlscyBpbXBvcnQgc21hcnRxdW90ZXMKLSAKLSAKLStpZiBzeXMudmVyc2lv bl9pbmZvID49ICgzLCAwKToKLSsgICAgdW5pY29kZSA9IHN0ciAgIyBub3FhCi0rCi0rCi0gY2xh c3MgRGVjb3JhdGlvbnMoVHJhbnNmb3JtKToKLSAKLSAgICAgIiIiCi1kaWZmIC0tZ2l0IGEvZG9j dXRpbHMvdXRpbHMvX19pbml0X18ucHkgYi9kb2N1dGlscy91dGlscy9fX2luaXRfXy5weQotaW5k ZXggYzcxZDUwOC4uNzdjNzBmOCAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3V0aWxzL19faW5pdF9f LnB5Ci0rKysgYi9kb2N1dGlscy91dGlscy9fX2luaXRfXy5weQotQEAgLTIyLDYgKzIyLDkgQEAg ZnJvbSBkb2N1dGlscy5ub2RlcyBpbXBvcnQgdW5lc2NhcGUKLSBpbXBvcnQgZG9jdXRpbHMuaW8K LSBmcm9tIGRvY3V0aWxzLnV0aWxzLmVycm9yX3JlcG9ydGluZyBpbXBvcnQgRXJyb3JPdXRwdXQs IFNhZmVTdHJpbmcKLSAKLStpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSsgICAgdW5p Y29kZSA9IHN0cgotKwotIAotIGNsYXNzIFN5c3RlbU1lc3NhZ2UoQXBwbGljYXRpb25FcnJvcik6 Ci0gCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvdXRpbHMvZXJyb3JfcmVwb3J0aW5nLnB5IGIvZG9j dXRpbHMvdXRpbHMvZXJyb3JfcmVwb3J0aW5nLnB5Ci1pbmRleCA4ZWE3MTA4Li44ZmNjODE2IDEw MDY0NAotLS0tIGEvZG9jdXRpbHMvdXRpbHMvZXJyb3JfcmVwb3J0aW5nLnB5Ci0rKysgYi9kb2N1 dGlscy91dGlscy9lcnJvcl9yZXBvcnRpbmcucHkKLUBAIC0zNSw3ICszNSw4IEBAIFRoZSBgU2Fm ZVN0cmluZ2AsIGBFcnJvclN0cmluZ2AgYW5kIGBFcnJvck91dHB1dGAgY2xhc3NlcyBoYW5kbGUK LSBjb21tb24gZXhjZXB0aW9ucy4KLSAiIiIKLSAKLS1pbXBvcnQgc3lzLCBjb2RlY3MKLStpbXBv cnQgY29kZWNzCi0raW1wb3J0IHN5cwotIAotICMgR3Vlc3MgdGhlIGxvY2FsZSdzIGVuY29kaW5n LgotICMgSWYgbm8gdmFsaWQgZ3Vlc3MgY2FuIGJlIG1hZGUsIGxvY2FsZV9lbmNvZGluZyBpcyBz ZXQgdG8gYE5vbmVgOgotQEAgLTY0LDYgKzY1LDkgQEAgZWxzZToKLSAgICAgICAgIGxvY2FsZV9l bmNvZGluZyA9IE5vbmUKLSAKLSAKLStpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSsg ICAgdW5pY29kZSA9IHN0ciAgIyBub3FhCi0rCi0gCi0gY2xhc3MgU2FmZVN0cmluZyhvYmplY3Qp OgotICAgICAiIiIKLUBAIC0xOTksOSArMjAzLDkgQEAgY2xhc3MgRXJyb3JPdXRwdXQob2JqZWN0 KToKLSAgICAgICAgICAgICBzZWxmLnN0cmVhbS53cml0ZShkYXRhKQotICAgICAgICAgZXhjZXB0 IFVuaWNvZGVFbmNvZGVFcnJvcjoKLSAgICAgICAgICAgICBzZWxmLnN0cmVhbS53cml0ZShkYXRh LmVuY29kZShzZWxmLmVuY29kaW5nLCBzZWxmLmVuY29kaW5nX2Vycm9ycykpCi0tICAgICAgICBl eGNlcHQgVHlwZUVycm9yOiAKLSsgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6Ci0gICAgICAgICAg ICAgaWYgaXNpbnN0YW5jZShkYXRhLCB1bmljb2RlKTogIyBwYXNzZWQgc3RyZWFtIG1heSBleHBl Y3QgYnl0ZXMKLS0gICAgICAgICAgICAgICAgc2VsZi5zdHJlYW0ud3JpdGUoZGF0YS5lbmNvZGUo c2VsZi5lbmNvZGluZywgCi0rICAgICAgICAgICAgICAgIHNlbGYuc3RyZWFtLndyaXRlKGRhdGEu ZW5jb2RlKHNlbGYuZW5jb2RpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuZW5jb2RpbmdfZXJyb3JzKSkKLSAgICAgICAgICAgICAgICAgcmV0 dXJuCi0gICAgICAgICAgICAgaWYgc2VsZi5zdHJlYW0gaW4gKHN5cy5zdGRlcnIsIHN5cy5zdGRv dXQpOgotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3V0aWxzL21hdGgvbWF0aDJodG1sLnB5IGIvZG9j dXRpbHMvdXRpbHMvbWF0aC9tYXRoMmh0bWwucHkKLWluZGV4IDFmNjFlMjMuLjQ5NjcxNjUgMTAw NjQ0Ci0tLS0gYS9kb2N1dGlscy91dGlscy9tYXRoL21hdGgyaHRtbC5weQotKysrIGIvZG9jdXRp bHMvdXRpbHMvbWF0aC9tYXRoMmh0bWwucHkKLUBAIC0yMCwxMCArMjAsMjEgQEAKLSAjIEFsZXgg MjAxMDExMTAKLSAjIGVMeVhlciBzdGFuZGFsb25lIGZvcm11bGEgY29udmVyc2lvbiB0byBIVE1M LgotIAotK2ltcG9ydCBjb2RlY3MKLStpbXBvcnQgZGF0ZXRpbWUKLStpbXBvcnQgZ2V0dGV4dAot K2ltcG9ydCBpbwotK2ltcG9ydCBvcy5wYXRoCi0raW1wb3J0IHN5cwotK2ltcG9ydCB1bmljb2Rl ZGF0YQotK2ltcG9ydCB1cmxsaWIKLSAKLSAKLStpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDAp OgotKyAgICB1bmljb2RlID0gc3RyICAjbm9xYQotKyAgICBiYXNlc3RyaW5nID0gc3RyICAjIG5v cWEKLSsgICAgZmlsZSA9IGlvLklPQmFzZSAgIyBub3FhCi0gCi0taW1wb3J0IHN5cwotIAotIGNs YXNzIFRyYWNlKG9iamVjdCk6Ci0gICAiQSB0cmFjaW5nIGNsYXNzIgotQEAgLTczLDEyICs4NCw2 IEBAIGNsYXNzIFRyYWNlKG9iamVjdCk6Ci0gICBzaG93ID0gY2xhc3NtZXRob2Qoc2hvdykKLSAK LSAKLS0KLS0KLS1pbXBvcnQgb3MucGF0aAotLWltcG9ydCBzeXMKLS0KLS0KLSBjbGFzcyBCaWJT dHlsZXNDb25maWcob2JqZWN0KToKLSAgICJDb25maWd1cmF0aW9uIGNsYXNzIGZyb20gZWx5eGVy LmNvbmZpZyBmaWxlIgotIAotQEAgLTEzMDUsMTcgKzEzMTAsNiBAQCBjbGFzcyBCcmFuY2hPcHRp b25zKG9iamVjdCk6Ci0gICAgIHJldHVybiAnb3B0aW9ucyBmb3IgJyArIHNlbGYubmFtZSArICc6 ICcgKyB1bmljb2RlKHNlbGYub3B0aW9ucykKLSAKLSAKLS0KLS0KLS1pbXBvcnQgdXJsbGliCi0t Ci0tCi0tCi0tCi0tCi0tCi0tCi0tCi0gY2xhc3MgQ2xvbmVyKG9iamVjdCk6Ci0gICAiQW4gb2Jq ZWN0IHVzZWQgdG8gY2xvbmUgb3RoZXIgb2JqZWN0cy4iCi0gCi1AQCAtMTY5OSwxNSArMTY5Myw2 IEBAIGNsYXNzIFN0cmluZ091dHB1dChDb250YWluZXJPdXRwdXQpOgotICAgICByZXR1cm4gW2Nv bnRhaW5lci5zdHJpbmddCi0gCi0gCi0tCi0tCi0tCi0tCi0tCi0taW1wb3J0IHN5cwotLWltcG9y dCBjb2RlY3MKLS0KLS0KLSBjbGFzcyBMaW5lUmVhZGVyKG9iamVjdCk6Ci0gICAiUmVhZHMgYSBm aWxlIGxpbmUgYnkgbGluZSIKLSAKLUBAIC0zMDk0LDI0ICszMDc5LDYgQEAgY2xhc3MgRm9ybXVs YUZhY3Rvcnkob2JqZWN0KToKLSAgICAgcmV0dXJuIHdob2xlCi0gCi0gCi0tCi0tCi0taW1wb3J0 IHVuaWNvZGVkYXRhCi0tCi0tCi0tCi0tCi0tCi0tCi0tCi0tCi0tCi0tCi0tCi0tCi0taW1wb3J0 IGdldHRleHQKLS0KLS0KLSBjbGFzcyBUcmFuc2xhdG9yKG9iamVjdCk6Ci0gICAiUmVhZHMgdGhl IGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgdHJpZXMgdG8gZmluZCBhIHRyYW5zbGF0aW9uLiIKLSAg ICJPdGhlcndpc2UgZmFsbHMgYmFjayB0byB0aGUgbWVzc2FnZXMgaW4gdGhlIGNvbmZpZyBmaWxl LiIKLUBAIC00NTg5LDggKzQ1NTYsNiBAQCBjbGFzcyBCZWdpbkNvbW1hbmQoQ29tbWFuZEJpdCk6 Ci0gRm9ybXVsYUNvbW1hbmQudHlwZXMgKz0gW0JlZ2luQ29tbWFuZF0KLSAKLSAKLS1pbXBvcnQg ZGF0ZXRpbWUKLS0KLSAKLSBjbGFzcyBDb21iaW5pbmdGdW5jdGlvbihPbmVQYXJhbUZ1bmN0aW9u KToKLSAKLWRpZmYgLS1naXQgYS9kb2N1dGlscy93cml0ZXJzL19odG1sX2Jhc2UucHkgYi9kb2N1 dGlscy93cml0ZXJzL19odG1sX2Jhc2UucHkKLWluZGV4IDIzZWZlZWEuLmE3ZjNiNTMgMTAwNjQ0 Ci0tLS0gYS9kb2N1dGlscy93cml0ZXJzL19odG1sX2Jhc2UucHkKLSsrKyBiL2RvY3V0aWxzL3dy aXRlcnMvX2h0bWxfYmFzZS5weQotQEAgLTQwLDYgKzQwLDEwIEBAIGZyb20gZG9jdXRpbHMudXRp bHMubWF0aCBpbXBvcnQgKHVuaWNoYXIydGV4LCBwaWNrX21hdGhfZW52aXJvbm1lbnQsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0aDJodG1sLCBsYXRleDJtYXRobWwsIHRl eDJtYXRobWxfZXh0ZXJuKQotIAotIAotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgot KyAgICB1bmljb2RlID0gc3RyICAjIG5vcWEKLSsKLSsKLSBjbGFzcyBXcml0ZXIod3JpdGVycy5X cml0ZXIpOgotIAotICAgICBzdXBwb3J0ZWQgPSAoJ2h0bWwnLCAneGh0bWwnKSAjIHVwZGF0ZSBp biBzdWJjbGFzcwotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3dyaXRlcnMvZG9jdXRpbHNfeG1sLnB5 IGIvZG9jdXRpbHMvd3JpdGVycy9kb2N1dGlsc194bWwucHkKLWluZGV4IGU4NzBlZTEuLjM0ZTgx MGQgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy93cml0ZXJzL2RvY3V0aWxzX3htbC5weQotKysrIGIv ZG9jdXRpbHMvd3JpdGVycy9kb2N1dGlsc194bWwucHkKLUBAIC0zMCw2ICszMCw5IEBAIGZyb20g U3RyaW5nSU8gaW1wb3J0IFN0cmluZ0lPCi0gaW1wb3J0IGRvY3V0aWxzCi0gZnJvbSBkb2N1dGls cyBpbXBvcnQgZnJvbnRlbmQsIHdyaXRlcnMsIG5vZGVzCi0gCi0raWYgc3lzLnZlcnNpb25faW5m byA+PSAoMywgMCk6Ci0rICAgIHVuaWNvZGUgPSBzdHIgICMgbm9xYQotKwotIAotIGNsYXNzIFJh d1htbEVycm9yKGRvY3V0aWxzLkFwcGxpY2F0aW9uRXJyb3IpOiBwYXNzCi0gCi1kaWZmIC0tZ2l0 IGEvZG9jdXRpbHMvd3JpdGVycy9sYXRleDJlL19faW5pdF9fLnB5IGIvZG9jdXRpbHMvd3JpdGVy cy9sYXRleDJlL19faW5pdF9fLnB5Ci1pbmRleCA1ZWFhN2YwLi5lMjFjNzRiIDEwMDY0NAotLS0t IGEvZG9jdXRpbHMvd3JpdGVycy9sYXRleDJlL19faW5pdF9fLnB5Ci0rKysgYi9kb2N1dGlscy93 cml0ZXJzL2xhdGV4MmUvX19pbml0X18ucHkKLUBAIC0yOCw2ICsyOCwxMCBAQCBmcm9tIGRvY3V0 aWxzLnRyYW5zZm9ybXMgaW1wb3J0IHdyaXRlcl9hdXgKLSBmcm9tIGRvY3V0aWxzLnV0aWxzLm1h dGggaW1wb3J0IHBpY2tfbWF0aF9lbnZpcm9ubWVudCwgdW5pY2hhcjJ0ZXgKLSAKLSAKLStpZiBz eXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSsgICAgdW5pY29kZSA9IHN0ciAgIyBub3FhCi0r Ci0rCi0gY2xhc3MgV3JpdGVyKHdyaXRlcnMuV3JpdGVyKToKLSAKLSAgICAgc3VwcG9ydGVkID0g KCdsYXRleCcsJ2xhdGV4MmUnKQotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3dyaXRlcnMvbWFucGFn ZS5weSBiL2RvY3V0aWxzL3dyaXRlcnMvbWFucGFnZS5weQotaW5kZXggMjg3YzZmMi4uOWM4ODdj NyAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3dyaXRlcnMvbWFucGFnZS5weQotKysrIGIvZG9jdXRp bHMvd3JpdGVycy9tYW5wYWdlLnB5Ci1AQCAtNDUsNiArNDUsMTAgQEAgYnkgdGhlIGNvbW1hbmQg d2hhdGlzIG9yIGFwcm9wb3MuCi0gX19kb2Nmb3JtYXRfXyA9ICdyZVN0cnVjdHVyZWRUZXh0Jwot IAotIGltcG9ydCByZQotK2ltcG9ydCBzeXMKLSsKLStpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMs IDApOgotKyAgICByYW5nZSA9IHhyYW5nZQotIAotIGltcG9ydCBkb2N1dGlscwotIGZyb20gZG9j dXRpbHMgaW1wb3J0IG5vZGVzLCB3cml0ZXJzLCBsYW5ndWFnZXMKLUBAIC0yNTUsNyArMjU5LDcg QEAgY2xhc3MgVHJhbnNsYXRvcihub2Rlcy5Ob2RlVmlzaXRvcik6Ci0gICAgICAgICAgICAgIyBl bnN1cmUgd2UgZ2V0IGEgIi5USCIgYXMgdmlld2VycyByZXF1aXJlIGl0LgotICAgICAgICAgICAg IHNlbGYuYXBwZW5kX2hlYWRlcigpCi0gICAgICAgICAjIGZpbHRlciBib2R5Ci0tICAgICAgICBm b3IgaSBpbiB4cmFuZ2UobGVuKHNlbGYuYm9keSktMSwgMCwgLTEpOgotKyAgICAgICAgZm9yIGkg aW4gcmFuZ2UobGVuKHNlbGYuYm9keSktMSwgMCwgLTEpOgotICAgICAgICAgICAgICMgcmVtb3Zl IHN1cGVyZmx1b3VzIHZlcnRpY2FsIGdhcHMuCi0gICAgICAgICAgICAgaWYgc2VsZi5ib2R5W2ld ID09ICcuc3Bcbic6Ci0gICAgICAgICAgICAgICAgIGlmIHNlbGYuYm9keVtpIC0gMV1bOjRdIGlu ICgnLkJJICcsJy5JUCAnKToKLWRpZmYgLS1naXQgYS90ZXN0L0RvY3V0aWxzVGVzdFN1cHBvcnQu cHkgYi90ZXN0L0RvY3V0aWxzVGVzdFN1cHBvcnQucHkKLWluZGV4IGU3NzQ0N2EuLmM2ZjViOWYg MTAwNjQ0Ci0tLS0gYS90ZXN0L0RvY3V0aWxzVGVzdFN1cHBvcnQucHkKLSsrKyBiL3Rlc3QvRG9j dXRpbHNUZXN0U3VwcG9ydC5weQotQEAgLTg5LDYgKzg5LDEwIEBAIGV4Y2VwdDoKLSAgICAgaW1w b3J0IHBkYgotIAotIAotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotKyAgICB1bmlj b2RlID0gc3RyICAjIG5vcWEKLSsKLSsKLSAjIEhhY2sgdG8gbWFrZSByZXByKFN0cmluZ0xpc3Qp IGxvb2sgbGlrZSByZXByKGxpc3QpOgotIFN0cmluZ0xpc3QuX19yZXByX18gPSBTdHJpbmdMaXN0 Ll9fc3RyX18KLSAKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfX2luaXRfXy5weSBiL3Rlc3QvdGVz dF9faW5pdF9fLnB5Ci1pbmRleCAwMWExYzU5Li44ZjFkNzQ5IDEwMDY0NAotLS0tIGEvdGVzdC90 ZXN0X19pbml0X18ucHkKLSsrKyBiL3Rlc3QvdGVzdF9faW5pdF9fLnB5Ci1AQCAtMTYsNiArMTYs MTAgQEAgaW1wb3J0IGRvY3V0aWxzCi0gaW1wb3J0IGRvY3V0aWxzLnV0aWxzCi0gCi0gCi0raWYg c3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0rICAgIHVuaWNvZGUgPSBzdHIgICMgbm9xYQot KwotKwotIGNsYXNzIEFwcGxpY2F0aW9uRXJyb3JUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0g Ci0gICAgIGRlZiB0ZXN0X21lc3NhZ2Uoc2VsZik6Ci1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X2Vy cm9yX3JlcG9ydGluZy5weSBiL3Rlc3QvdGVzdF9lcnJvcl9yZXBvcnRpbmcucHkKLWluZGV4IGJh ZTlkYjUuLjg5MzA4MmMgMTAwNjQ0Ci0tLS0gYS90ZXN0L3Rlc3RfZXJyb3JfcmVwb3J0aW5nLnB5 Ci0rKysgYi90ZXN0L3Rlc3RfZXJyb3JfcmVwb3J0aW5nLnB5Ci1AQCAtNDYsNiArNDYsOSBAQCBp ZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsMCk6ICMgcHJvYmxlbXMgc29sdmVkIGluIHB5M2sKLSAg ICAgICAgIHByaW50KCdjYW5ub3QgdGVzdCBlcnJvciByZXBvcnRpbmcgd2l0aCBwcm9ibGVtYXRp YyBsb2NhbGVzLFxuJwotICAgICAgICAgICAgICdgaW1wb3J0IGxvY2FsZWAgZmFpbGVkLicpCi0g Ci0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0rICAgIHVuaWNvZGUgPSBzdHIgICMg bm9xYQotKwotIAotICMgbG9jYWxlcyBjb25maXJtZWQgdG8gdXNlIG5vbi1BU0NJSSBjaGFycyBp biB0aGUgSU9FcnJvciBtZXNzYWdlCi0gIyBmb3IgYSBtaXNzaW5nIGZpbGUgKGh0dHBzOi8vYnVn cy5nZW50b28ub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDkxMDEpCi1kaWZmIC0tZ2l0IGEvdGVzdC90 ZXN0X2xhbmd1YWdlLnB5IGIvdGVzdC90ZXN0X2xhbmd1YWdlLnB5Ci1pbmRleCAwZTA1ZDQ0Li4z MGFmODFhIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X2xhbmd1YWdlLnB5Ci0rKysgYi90ZXN0L3Rl c3RfbGFuZ3VhZ2UucHkKLUBAIC0yNiw2ICsyNiw5IEBAIF9yZXBvcnRlciA9IGRvY3V0aWxzLnV0 aWxzLm5ld19yZXBvcnRlcignJywgX3NldHRpbmdzKQotIAotIHJlZmVyZW5jZV9sYW5ndWFnZSA9 ICdlbicKLSAKLStpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSsgICAgdW5pY29kZSA9 IHN0ciAgIyBub3FhCi0rCi0gCi0gY2xhc3MgTGFuZ3VhZ2VUZXN0U3VpdGUoRG9jdXRpbHNUZXN0 U3VwcG9ydC5DdXN0b21UZXN0U3VpdGUpOgotIAotQEAgLTE1Niw3ICsxNTksNyBAQCBjbGFzcyBM YW5ndWFnZVRlc3RDYXNlKERvY3V0aWxzVGVzdFN1cHBvcnQuQ3VzdG9tVGVzdENhc2UpOgotICAg ICAgICAgaWYgZmFpbHVyZXM6Ci0gICAgICAgICAgICAgdGV4dCA9ICgnTW9kdWxlIGRvY3V0aWxz LnBhcnNlcnMucnN0Lmxhbmd1YWdlcy4lczpcbiAgICAlcycKLSAgICAgICAgICAgICAgICAgICAg ICUgKHNlbGYubGFuZ3VhZ2UsICdcbiAgICAnLmpvaW4oZmFpbHVyZXMpKSkKLS0gICAgICAgICAg ICBpZiB0eXBlKHRleHQpIGlzIHVuaWNvZGU6Ci0rICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh0 ZXh0LCB1bmljb2RlKToKLSAgICAgICAgICAgICAgICAgdGV4dCA9IHRleHQuZW5jb2RlKCdyYXdf dW5pY29kZV9lc2NhcGUnKQotICAgICAgICAgICAgIHNlbGYuZmFpbCh0ZXh0KQotIAotQEAgLTE5 MSw3ICsxOTQsNyBAQCBjbGFzcyBMYW5ndWFnZVRlc3RDYXNlKERvY3V0aWxzVGVzdFN1cHBvcnQu Q3VzdG9tVGVzdENhc2UpOgotICAgICAgICAgaWYgZmFpbHVyZXM6Ci0gICAgICAgICAgICAgdGV4 dCA9ICgnTW9kdWxlIGRvY3V0aWxzLnBhcnNlcnMucnN0Lmxhbmd1YWdlcy4lczpcbiAgICAlcycK LSAgICAgICAgICAgICAgICAgICAgICUgKHNlbGYubGFuZ3VhZ2UsICdcbiAgICAnLmpvaW4oZmFp bHVyZXMpKSkKLS0gICAgICAgICAgICBpZiB0eXBlKHRleHQpIGlzIHVuaWNvZGU6Ci0rICAgICAg ICAgICAgaWYgaXNpbnN0YW5jZSh0ZXh0LCB1bmljb2RlKToKLSAgICAgICAgICAgICAgICAgdGV4 dCA9IHRleHQuZW5jb2RlKCdyYXdfdW5pY29kZV9lc2NhcGUnKQotICAgICAgICAgICAgIHNlbGYu ZmFpbCh0ZXh0KQotIAotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9ub2Rlcy5weSBiL3Rlc3QvdGVz dF9ub2Rlcy5weQotaW5kZXggZjZiYzZiMi4uOTI0NTY5ZiAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVz dF9ub2Rlcy5weQotKysrIGIvdGVzdC90ZXN0X25vZGVzLnB5Ci1AQCAtMTcsNiArMTcsOSBAQCBm cm9tIERvY3V0aWxzVGVzdFN1cHBvcnQgaW1wb3J0IG5vZGVzLCB1dGlscwotIAotIGRlYnVnID0g RmFsc2UKLSAKLStpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSsgICAgdW5pY29kZSA9 IHN0ciAgIyBub3FhCi0rCi0gCi0gY2xhc3MgVGV4dFRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToK LSAKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2 ZXMvdGVzdF9pbmNsdWRlLnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJl Y3RpdmVzL3Rlc3RfaW5jbHVkZS5weQotaW5kZXggMmE2ZTViZS4uNmU5ZGM4NCAxMDA3NTUKLS0t LSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2luY2x1 ZGUucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90 ZXN0X2luY2x1ZGUucHkKLUBAIC0xNCw2ICsxNCwxMSBAQCBmcm9tIF9faW5pdF9fIGltcG9ydCBE b2N1dGlsc1Rlc3RTdXBwb3J0Ci0gZnJvbSBkb2N1dGlscy5wYXJzZXJzLnJzdCBpbXBvcnQgc3Rh dGVzCi0gZnJvbSBkb2N1dGlscy51dGlscy5jb2RlX2FuYWx5emVyIGltcG9ydCB3aXRoX3B5Z21l bnRzCi0gCi0rCi0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0rICAgIHVuaWNociA9 IGNociAgIyBub3FhCi0rCi0rCi0gZGVmIHN1aXRlKCk6Ci0gICAgIHMgPSBEb2N1dGlsc1Rlc3RT dXBwb3J0LlBhcnNlclRlc3RTdWl0ZSgpCi0gICAgIGlmIG5vdCB3aXRoX3B5Z21lbnRzOgotZGlm ZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0 X3RhYmxlcy5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90 ZXN0X3RhYmxlcy5weQotaW5kZXggZjc0OTZhZC4uMmM1ZjgzMiAxMDA3NTUKLS0tLSBhL3Rlc3Qv dGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3RhYmxlcy5weQotKysr IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfdGFibGVz LnB5Ci1AQCAtMTYsNiArMTYsMTEgQEAgaW1wb3J0IHBsYXRmb3JtCi0gZnJvbSBkb2N1dGlscy5w YXJzZXJzLnJzdC5kaXJlY3RpdmVzIGltcG9ydCB0YWJsZXMKLSAKLSAKLStpZiBzeXMudmVyc2lv bl9pbmZvID49ICgzLCAwKToKLSsgICAgdW5pY29kZSA9IHN0ciAgIyBub3FhCi0rICAgIHVuaWNo ciA9IGNociAgIyBub3FhCi0rCi0rCi0gZGVmIHN1aXRlKCk6Ci0gICAgIHMgPSBEb2N1dGlsc1Rl c3RTdXBwb3J0LlBhcnNlclRlc3RTdWl0ZSgpCi0gICAgIHMuZ2VuZXJhdGVUZXN0cyh0b3Rlc3Qp Ci1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVz L3Rlc3RfdW5pY29kZS5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0 aXZlcy90ZXN0X3VuaWNvZGUucHkKLWluZGV4IGIxNDAwNTAuLjVjZGZkNWEgMTAwNzU1Ci0tLS0g YS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF91bmljb2Rl LnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVz dF91bmljb2RlLnB5Ci1AQCAtOCw5ICs4LDE1IEBACi0gVGVzdHMgZm9yIG1pc2MucHkgInVuaWNv ZGUiIGRpcmVjdGl2ZS4KLSAiIiIKLSAKLStpbXBvcnQgc3lzCi0rCi0gZnJvbSBfX2luaXRfXyBp bXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotIAotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0g KDMsIDApOgotKyAgICB1bmljaHIgPSBjaHIgICMgbm9xYQotKwotKwotIGRlZiBzdWl0ZSgpOgot ICAgICBzID0gRG9jdXRpbHNUZXN0U3VwcG9ydC5QYXJzZXJUZXN0U3VpdGUoKQotICAgICBzLmdl bmVyYXRlVGVzdHModG90ZXN0KQotZGlmZiAtLWdpdCBhL3Rvb2xzL2Rldi9jcmVhdGVfdW5pbWFw LnB5IGIvdG9vbHMvZGV2L2NyZWF0ZV91bmltYXAucHkKLWluZGV4IDg1YWMyNjQuLjc0ZThiYzcg MTAwNzU1Ci0tLS0gYS90b29scy9kZXYvY3JlYXRlX3VuaW1hcC5weQotKysrIGIvdG9vbHMvZGV2 L2NyZWF0ZV91bmltYXAucHkKLUBAIC0xNCwxNSArMTQsMTUgQEAgZnJvbSB4bWwuZG9tIGltcG9y dCBtaW5pZG9tCi0gaW1wb3J0IHN5cwotIGltcG9ydCBwcHJpbnQKLSAKLS1pZiBzeXMudmVyc2lv bl9pbmZvID49ICgzLDApOgotLSAgICB1bmljb2RlID0gc3RyCi0raWYgc3lzLnZlcnNpb25faW5m byA+PSAoMywgMCk6Ci0rICAgIHVuaWNvZGUgPSBzdHIgICNub3FhCi0gZWxzZToKLS0gICAgYnl0 ZXMgPSBzdHIKLS0gICAgY2hyID0gdW5pY2hyCi0rICAgIGJ5dGVzID0gc3RyICAjIG5vcWEKLSsg ICAgY2hyID0gdW5pY2hyICAjIG5vcWEKLSAKLSAKLSBkZWYgdyhzKToKLS0gICAgaWYgc3lzLnZl cnNpb25faW5mbyA+PSAoMywwKSBhbmQgaXNpbnN0YW5jZShzLCB1bmljb2RlKToKLSsgICAgaWYg c3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCkgYW5kIGlzaW5zdGFuY2UocywgdW5pY29kZSk6Ci0g ICAgICAgICBzID0gcy5lbmNvZGUoJ3V0ZjgnKQotICAgICBzeXMuc3Rkb3V0LndyaXRlKHMpCi0g Ci0tLSAKLTIuMjQuMC4zNzUuZ2ViNWFlNjhkNDEKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9weXRo b24tZG9jdXRpbHMvcGF0Y2hlcy8wMDA1LXB5My1SZXNvbHZlLXNvbWUtYWRkaXRpb25hbC11bmRl ZmluZWQtc3ltYm9scy5wYXRjaCBiL3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAw NS1weTMtUmVzb2x2ZS1zb21lLWFkZGl0aW9uYWwtdW5kZWZpbmVkLXN5bWJvbHMucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIyODhhOWJjNmJlLi4wMDAwMDAwMDAwMAotLS0g YS9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMDUtcHkzLVJlc29sdmUtc29tZS1h ZGRpdGlvbmFsLXVuZGVmaW5lZC1zeW1ib2xzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsODAg KzAsMCBAQAotRnJvbSA2YmQxMTI4MDJmODU3YjMyNzY0YWZlODdjZTc4MjhkYjUwMDc3MDg2IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3RlcGhlbiBGaW51Y2FuZSA8c3RlcGhlbkB0 aGF0Lmd1cnU+Ci1EYXRlOiBUdWUsIDE5IE5vdiAyMDE5IDIzOjUyOjE0ICswNzAwCi1TdWJqZWN0 OiBbUEFUQ0ggMDUvMjZdIHB5MzogUmVzb2x2ZSBzb21lIGFkZGl0aW9uYWwgdW5kZWZpbmVkIHN5 bWJvbHMKLQotRm91bmQgd2l0aCBmbGFrZTgKLQotU2lnbmVkLW9mZi1ieTogU3RlcGhlbiBGaW51 Y2FuZSA8c3RlcGhlbkB0aGF0Lmd1cnU+Ci0KLWdpdC1zdm4taWQ6IGh0dHA6Ly9zdm4uY29kZS5z Zi5uZXQvcC9kb2N1dGlscy9jb2RlL3RydW5rQDgzNTIgOTI5NTQzZjYtZTRmMi0wMzEwLTk4YTYt YmEzYmQzZGQxZDA0Ci1TaWduZWQtb2ZmLWJ5OiBEb2FuIFRyYW4gQ29uZyBEYW5oIDxjb25nZGFu aHF4QGdtYWlsLmNvbT4KLS0tLQotIGRvY3V0aWxzL3V0aWxzL21hdGgvbWF0aDJodG1sLnB5ICAg ICAgICB8ICA4ICsrKystLS0tCi0gdG9vbHMvZGV2L2dlbmVyYXRlX3B1bmN0dWF0aW9uX2NoYXJz LnB5IHwgMTEgLS0tLS0tLS0tLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwg MTUgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9kb2N1dGlscy91dGlscy9tYXRoL21hdGgy aHRtbC5weSBiL2RvY3V0aWxzL3V0aWxzL21hdGgvbWF0aDJodG1sLnB5Ci1pbmRleCA0OTY3MTY1 Li40YTcyMDlkIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvdXRpbHMvbWF0aC9tYXRoMmh0bWwucHkK LSsrKyBiL2RvY3V0aWxzL3V0aWxzL21hdGgvbWF0aDJodG1sLnB5Ci1AQCAtMTYyNCw3ICsxNjI0 LDcgQEAgY2xhc3MgVGFnZ2VkT3V0cHV0KENvbnRlbnRzT3V0cHV0KToKLSAKLSAgIGRlZiBvcGVu KHNlbGYsIGNvbnRhaW5lcik6Ci0gICAgICJHZXQgb3BlbmluZyBsaW5lLiIKLS0gICAgaWYgbm90 IHNlbGYuY2hlY2t0YWcoKToKLSsgICAgaWYgbm90IHNlbGYuY2hlY2t0YWcoY29udGFpbmVyKToK LSAgICAgICByZXR1cm4gJycKLSAgICAgb3BlbiA9ICc8JyArIHNlbGYudGFnICsgJz4nCi0gICAg IGlmIHNlbGYuYnJlYWtsaW5lczoKLUBAIC0xNjMzLDcgKzE2MzMsNyBAQCBjbGFzcyBUYWdnZWRP dXRwdXQoQ29udGVudHNPdXRwdXQpOgotIAotICAgZGVmIGNsb3NlKHNlbGYsIGNvbnRhaW5lcik6 Ci0gICAgICJHZXQgY2xvc2luZyBsaW5lLiIKLS0gICAgaWYgbm90IHNlbGYuY2hlY2t0YWcoKToK LSsgICAgaWYgbm90IHNlbGYuY2hlY2t0YWcoY29udGFpbmVyKToKLSAgICAgICByZXR1cm4gJycK LSAgICAgY2xvc2UgPSAnPC8nICsgc2VsZi50YWcuc3BsaXQoKVswXSArICc+JwotICAgICBpZiBz ZWxmLmJyZWFrbGluZXM6Ci1AQCAtMTY0MiwxNCArMTY0MiwxNCBAQCBjbGFzcyBUYWdnZWRPdXRw dXQoQ29udGVudHNPdXRwdXQpOgotIAotICAgZGVmIHNlbGZjbG9zaW5nKHNlbGYsIGNvbnRhaW5l cik6Ci0gICAgICJHZXQgc2VsZi1jbG9zaW5nIGxpbmUuIgotLSAgICBpZiBub3Qgc2VsZi5jaGVj a3RhZygpOgotKyAgICBpZiBub3Qgc2VsZi5jaGVja3RhZyhjb250YWluZXIpOgotICAgICAgIHJl dHVybiAnJwotICAgICBzZWxmY2xvc2luZyA9ICc8JyArIHNlbGYudGFnICsgJy8+JwotICAgICBp ZiBzZWxmLmJyZWFrbGluZXM6Ci0gICAgICAgcmV0dXJuIHNlbGZjbG9zaW5nICsgJ1xuJwotICAg ICByZXR1cm4gc2VsZmNsb3NpbmcKLSAKLS0gIGRlZiBjaGVja3RhZyhzZWxmKToKLSsgIGRlZiBj aGVja3RhZyhzZWxmLCBjb250YWluZXIpOgotICAgICAiQ2hlY2sgdGhhdCB0aGUgdGFnIGlzIHZh bGlkLiIKLSAgICAgaWYgbm90IHNlbGYudGFnOgotICAgICAgIFRyYWNlLmVycm9yKCdObyB0YWcg aW4gJyArIHVuaWNvZGUoY29udGFpbmVyKSkKLWRpZmYgLS1naXQgYS90b29scy9kZXYvZ2VuZXJh dGVfcHVuY3R1YXRpb25fY2hhcnMucHkgYi90b29scy9kZXYvZ2VuZXJhdGVfcHVuY3R1YXRpb25f Y2hhcnMucHkKLWluZGV4IDU5NDdmZTUuLmEzMGM1Y2EgMTAwNjQ0Ci0tLS0gYS90b29scy9kZXYv Z2VuZXJhdGVfcHVuY3R1YXRpb25fY2hhcnMucHkKLSsrKyBiL3Rvb2xzL2Rldi9nZW5lcmF0ZV9w dW5jdHVhdGlvbl9jaGFycy5weQotQEAgLTMxOSwxNyArMzE5LDYgQEAgZGVmIHByaW50X2RpZmZl cmVuY2VzKG9sZCwgbmV3LCBuYW1lKToKLSAgICAgZWxzZToKLSAgICAgICAgIHByaW50KCclcyB1 bmNoYW5nZWQnICUgbmFtZSkKLSAKLS1kZWYgcHJpbnRfcXVvdGVfcGFpcnMoKToKLS0gICAgcGFp cnMgPSBbKG8sYykgZm9yIG8sYyBpbiBxdW90ZV9wYWlycy5pdGVtcygpXQotLSAgICBmb3Igbyxj IGluIHNvcnRlZChwYWlycyk6Ci0tICAgICAgICBwcmludCgodSclcyAlcycgJSAobyxjKSkuZW5j b2RlKCd1dGY4JykpCi0tCi0tICAgICMgIyBUZXN0IG9wZW4vY2xvc2UgbWF0Y2hpbmc6Ci0tICAg ICMgZm9yIGkgaW4gcmFuZ2UobWluKGxlbihvcGVuZXJzKSxsZW4oY2xvc2VycykpKToKLS0gICAg IyAgICAgcHJpbnQoJyU0ZCAgICAlcyAgICAlcycgJSAoaSwgb3BlbmVyc1tpXS5lbmNvZGUoJ3V0 ZjgnKSwKLS0gICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2Vyc1tpXS5l bmNvZGUoJ3V0ZjgnKSkKLS0KLS0KLSAjIE91dHB1dAotICMgLS0tLS0tCi0gIwotLS0gCi0yLjI0 LjAuMzc1LmdlYjVhZTY4ZDQxCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxz L3BhdGNoZXMvMDAwNi1weTMtUmVwbGFjZS1kZXByZWNhdGVkLWZvcm0tb2YtcmFpc2luZy1leGNl cHRpb24ucGF0Y2ggYi9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMDYtcHkzLVJl cGxhY2UtZGVwcmVjYXRlZC1mb3JtLW9mLXJhaXNpbmctZXhjZXB0aW9uLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYzJkZWZlMDU5My4uMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDA2LXB5My1SZXBsYWNlLWRlcHJlY2F0ZWQt Zm9ybS1vZi1yYWlzaW5nLWV4Y2VwdGlvbi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI2MyAr MCwwIEBACi1Gcm9tIGVmZTBjOWE3NWM1YjJhOGQwOTQ4NDA5MjdlOTNlMGU4NzNlNzdlY2UgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTdGVwaGVuIEZpbnVjYW5lIDxzdGVwaGVuQHRo YXQuZ3VydT4KLURhdGU6IFR1ZSwgMTkgTm92IDIwMTkgMjM6NTI6NTggKzA3MDAKLVN1YmplY3Q6 IFtQQVRDSCAwNi8yNl0gcHkzOiBSZXBsYWNlIGRlcHJlY2F0ZWQgZm9ybSBvZiByYWlzaW5nIGV4 Y2VwdGlvbgotCi1TaWduZWQtb2ZmLWJ5OiBTdGVwaGVuIEZpbnVjYW5lIDxzdGVwaGVuQHRoYXQu Z3VydT4KLQotZ2l0LXN2bi1pZDogaHR0cDovL3N2bi5jb2RlLnNmLm5ldC9wL2RvY3V0aWxzL2Nv ZGUvdHJ1bmtAODM1MyA5Mjk1NDNmNi1lNGYyLTAzMTAtOThhNi1iYTNiZDNkZDFkMDQKLVNpZ25l ZC1vZmYtYnk6IERvYW4gVHJhbiBDb25nIERhbmggPGNvbmdkYW5ocXhAZ21haWwuY29tPgotLS0t Ci0gZG9jdXRpbHMvZnJvbnRlbmQucHkgICAgICAgICAgICAgICB8IDI1ICsrKysrKysrKystLS0t LS0tLS0tLS0tLS0KLSBkb2N1dGlscy9ub2Rlcy5weSAgICAgICAgICAgICAgICAgIHwgMTIgKysr KysrLS0tLS0tCi0gZG9jdXRpbHMvdHJhbnNmb3Jtcy9mcm9udG1hdHRlci5weSB8ICA0ICsrLS0K LSBkb2N1dGlscy91dGlscy9yb21hbi5weSAgICAgICAgICAgIHwgIDkgKysrKystLS0tCi0gZG9j dXRpbHMvd3JpdGVycy9tYW5wYWdlLnB5ICAgICAgICB8ICA0ICsrLS0KLSB0ZXN0L0RvY3V0aWxz VGVzdFN1cHBvcnQucHkgICAgICAgIHwgMjEgKysrKy0tLS0tLS0tLS0tLS0tLS0tCi0gdGVzdC9w YWNrYWdlX3VuaXR0ZXN0LnB5ICAgICAgICAgICB8ICAyICstCi0gNyBmaWxlcyBjaGFuZ2VkLCAz MCBpbnNlcnRpb25zKCspLCA0NyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2RvY3V0aWxz L2Zyb250ZW5kLnB5IGIvZG9jdXRpbHMvZnJvbnRlbmQucHkKLWluZGV4IGViZGJkNmEuLjRiMzg5 YjAgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9mcm9udGVuZC5weQotKysrIGIvZG9jdXRpbHMvZnJv bnRlbmQucHkKLUBAIC03NCw5ICs3NCw4IEBAIGRlZiB2YWxpZGF0ZV9lbmNvZGluZyhzZXR0aW5n LCB2YWx1ZSwgb3B0aW9uX3BhcnNlciwKLSAgICAgdHJ5OgotICAgICAgICAgY29kZWNzLmxvb2t1 cCh2YWx1ZSkKLSAgICAgZXhjZXB0IExvb2t1cEVycm9yOgotLSAgICAgICAgcmFpc2UgKExvb2t1 cEVycm9yKCdzZXR0aW5nICIlcyI6IHVua25vd24gZW5jb2Rpbmc6ICIlcyInCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgJSAoc2V0dGluZywgdmFsdWUpKSwKLS0gICAgICAgICAgICAgICBO b25lLCBzeXMuZXhjX2luZm8oKVsyXSkKLSsgICAgICAgIHJhaXNlIExvb2t1cEVycm9yKCdzZXR0 aW5nICIlcyI6IHVua25vd24gZW5jb2Rpbmc6ICIlcyInCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAlIChzZXR0aW5nLCB2YWx1ZSkpCi0gICAgIHJldHVybiB2YWx1ZQotIAotIGRlZiB2YWxp ZGF0ZV9lbmNvZGluZ19lcnJvcl9oYW5kbGVyKHNldHRpbmcsIHZhbHVlLCBvcHRpb25fcGFyc2Vy LAotQEAgLTg0LDEyICs4MywxMSBAQCBkZWYgdmFsaWRhdGVfZW5jb2RpbmdfZXJyb3JfaGFuZGxl cihzZXR0aW5nLCB2YWx1ZSwgb3B0aW9uX3BhcnNlciwKLSAgICAgdHJ5OgotICAgICAgICAgY29k ZWNzLmxvb2t1cF9lcnJvcih2YWx1ZSkKLSAgICAgZXhjZXB0IExvb2t1cEVycm9yOgotLSAgICAg ICAgcmFpc2UgKExvb2t1cEVycm9yKAotKyAgICAgICAgcmFpc2UgTG9va3VwRXJyb3IoCi0gICAg ICAgICAgICAgJ3Vua25vd24gZW5jb2RpbmcgZXJyb3IgaGFuZGxlcjogIiVzIiAoY2hvaWNlczog JwotICAgICAgICAgICAgICcic3RyaWN0IiwgImlnbm9yZSIsICJyZXBsYWNlIiwgImJhY2tzbGFz aHJlcGxhY2UiLCAnCi0gICAgICAgICAgICAgJyJ4bWxjaGFycmVmcmVwbGFjZSIsIGFuZCBwb3Nz aWJseSBvdGhlcnM7IHNlZSBkb2N1bWVudGF0aW9uIGZvciAnCi0tICAgICAgICAgICAgJ3RoZSBQ eXRob24gYGBjb2RlY3NgYCBtb2R1bGUpJyAlIHZhbHVlKSwKLS0gICAgICAgICAgICAgICBOb25l LCBzeXMuZXhjX2luZm8oKVsyXSkKLSsgICAgICAgICAgICAndGhlIFB5dGhvbiBgYGNvZGVjc2Bg IG1vZHVsZSknICUgdmFsdWUpCi0gICAgIHJldHVybiB2YWx1ZQotIAotIGRlZiB2YWxpZGF0ZV9l bmNvZGluZ19hbmRfZXJyb3JfaGFuZGxlcigKLUBAIC0xMjUsOCArMTIzLDcgQEAgZGVmIHZhbGlk YXRlX2Jvb2xlYW4oc2V0dGluZywgdmFsdWUsIG9wdGlvbl9wYXJzZXIsCi0gICAgIHRyeToKLSAg ICAgICAgIHJldHVybiBvcHRpb25fcGFyc2VyLmJvb2xlYW5zW3ZhbHVlLnN0cmlwKCkubG93ZXIo KV0KLSAgICAgZXhjZXB0IEtleUVycm9yOgotLSAgICAgICAgcmFpc2UgKExvb2t1cEVycm9yKCd1 bmtub3duIGJvb2xlYW4gdmFsdWU6ICIlcyInICUgdmFsdWUpLAotLSAgICAgICAgICAgICAgIE5v bmUsIHN5cy5leGNfaW5mbygpWzJdKQotKyAgICAgICAgcmFpc2UgTG9va3VwRXJyb3IoJ3Vua25v d24gYm9vbGVhbiB2YWx1ZTogIiVzIicgJSB2YWx1ZSkKLSAKLSBkZWYgdmFsaWRhdGVfdGVybmFy eShzZXR0aW5nLCB2YWx1ZSwgb3B0aW9uX3BhcnNlciwKLSAgICAgICAgICAgICAgICAgICAgICBj b25maWdfcGFyc2VyPU5vbmUsIGNvbmZpZ19zZWN0aW9uPU5vbmUpOgotQEAgLTE1Nyw4ICsxNTQs NyBAQCBkZWYgdmFsaWRhdGVfdGhyZXNob2xkKHNldHRpbmcsIHZhbHVlLCBvcHRpb25fcGFyc2Vy LAotICAgICAgICAgdHJ5OgotICAgICAgICAgICAgIHJldHVybiBvcHRpb25fcGFyc2VyLnRocmVz aG9sZHNbdmFsdWUubG93ZXIoKV0KLSAgICAgICAgIGV4Y2VwdCAoS2V5RXJyb3IsIEF0dHJpYnV0 ZUVycm9yKToKLS0gICAgICAgICAgICByYWlzZSAoTG9va3VwRXJyb3IoJ3Vua25vd24gdGhyZXNo b2xkOiAlci4nICUgdmFsdWUpLAotLSAgICAgICAgICAgICAgICAgICBOb25lLCBzeXMuZXhjX2lu Zm9bMl0pCi0rICAgICAgICAgICAgcmFpc2UgTG9va3VwRXJyb3IoJ3Vua25vd24gdGhyZXNob2xk OiAlci4nICUgdmFsdWUpCi0gCi0gZGVmIHZhbGlkYXRlX2NvbG9uX3NlcGFyYXRlZF9zdHJpbmdf bGlzdCgKLSAgICAgc2V0dGluZywgdmFsdWUsIG9wdGlvbl9wYXJzZXIsIGNvbmZpZ19wYXJzZXI9 Tm9uZSwgY29uZmlnX3NlY3Rpb249Tm9uZSk6Ci1AQCAtMzUwLDEwICszNDYsOSBAQCBjbGFzcyBP cHRpb24ob3B0cGFyc2UuT3B0aW9uKToKLSAgICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAg ICAgICAgICAgICAgbmV3X3ZhbHVlID0gc2VsZi52YWxpZGF0b3Ioc2V0dGluZywgdmFsdWUsIHBh cnNlcikKLSAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlcnJvcjoKLS0gICAg ICAgICAgICAgICAgICAgIHJhaXNlIChvcHRwYXJzZS5PcHRpb25WYWx1ZUVycm9yKAotKyAgICAg ICAgICAgICAgICAgICAgcmFpc2Ugb3B0cGFyc2UuT3B0aW9uVmFsdWVFcnJvcigKLSAgICAgICAg ICAgICAgICAgICAgICAgICAnRXJyb3IgaW4gb3B0aW9uICIlcyI6XG4gICAgJXMnCi0tICAgICAg ICAgICAgICAgICAgICAgICAgJSAob3B0LCBFcnJvclN0cmluZyhlcnJvcikpKSwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICBOb25lLCBzeXMuZXhjX2luZm8oKVsyXSkKLSsgICAgICAgICAg ICAgICAgICAgICAgICAlIChvcHQsIEVycm9yU3RyaW5nKGVycm9yKSkpCi0gICAgICAgICAgICAg ICAgIHNldGF0dHIodmFsdWVzLCBzZXR0aW5nLCBuZXdfdmFsdWUpCi0gICAgICAgICAgICAgaWYg c2VsZi5vdmVycmlkZXM6Ci0gICAgICAgICAgICAgICAgIHNldGF0dHIodmFsdWVzLCBzZWxmLm92 ZXJyaWRlcywgTm9uZSkKLUBAIC04MzAsMTIgKzgyNSwxMiBAQCBTa2lwcGluZyAiJXMiIGNvbmZp Z3VyYXRpb24gZmlsZS4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZywgdmFs dWUsIG9wdGlvbl9wYXJzZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ19w YXJzZXI9c2VsZiwgY29uZmlnX3NlY3Rpb249c2VjdGlvbikKLSAgICAgICAgICAgICAgICAgICAg IGV4Y2VwdCBFeGNlcHRpb24gYXMgZXJyb3I6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgcmFp c2UgKFZhbHVlRXJyb3IoCi0rICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv cigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Vycm9yIGluIGNvbmZpZyBmaWxlICIl cyIsIHNlY3Rpb24gIlslc10iOlxuJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAg ICVzXG4nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICVzID0gJXMnCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKGZpbGVuYW1lLCBzZWN0aW9uLCBFcnJvclN0 cmluZyhlcnJvciksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmcsIHZh bHVlKSksIE5vbmUsIHN5cy5leGNfaW5mbygpWzJdKQotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZXR0aW5nLCB2YWx1ZSkpCi0gICAgICAgICAgICAgICAgICAgICBzZWxmLnNldChz ZWN0aW9uLCBzZXR0aW5nLCBuZXdfdmFsdWUpCi0gICAgICAgICAgICAgICAgIGlmIG9wdGlvbi5v dmVycmlkZXM6Ci0gICAgICAgICAgICAgICAgICAgICBzZWxmLnNldChzZWN0aW9uLCBvcHRpb24u b3ZlcnJpZGVzLCBOb25lKQotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL25vZGVzLnB5IGIvZG9jdXRp bHMvbm9kZXMucHkKLWluZGV4IGZhMDJjNmUuLjcxMTg5YWIgMTAwNjQ0Ci0tLS0gYS9kb2N1dGls cy9ub2Rlcy5weQotKysrIGIvZG9jdXRpbHMvbm9kZXMucHkKLUBAIC01OTQsOCArNTk0LDggQEAg Y2xhc3MgRWxlbWVudChOb2RlKToKLSAgICAgICAgICAgICBhc3NlcnQga2V5LnN0ZXAgaW4gKE5v bmUsIDEpLCAnY2Fubm90IGhhbmRsZSBzbGljZSB3aXRoIHN0cmlkZScKLSAgICAgICAgICAgICBy ZXR1cm4gc2VsZi5jaGlsZHJlbltrZXkuc3RhcnQ6a2V5LnN0b3BdCi0gICAgICAgICBlbHNlOgot LSAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvciwgKCdlbGVtZW50IGluZGV4IG11c3QgYmUgYW4g aW50ZWdlciwgYSBzbGljZSwgb3IgJwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdh biBhdHRyaWJ1dGUgbmFtZSBzdHJpbmcnKQotKyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcign ZWxlbWVudCBpbmRleCBtdXN0IGJlIGFuIGludGVnZXIsIGEgc2xpY2UsIG9yICcKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJ2FuIGF0dHJpYnV0ZSBuYW1lIHN0cmluZycpCi0gCi0gICAg IGRlZiBfX3NldGl0ZW1fXyhzZWxmLCBrZXksIGl0ZW0pOgotICAgICAgICAgaWYgaXNpbnN0YW5j ZShrZXksIGJhc2VzdHJpbmcpOgotQEAgLTYwOSw4ICs2MDksOCBAQCBjbGFzcyBFbGVtZW50KE5v ZGUpOgotICAgICAgICAgICAgICAgICBzZWxmLnNldHVwX2NoaWxkKG5vZGUpCi0gICAgICAgICAg ICAgc2VsZi5jaGlsZHJlbltrZXkuc3RhcnQ6a2V5LnN0b3BdID0gaXRlbQotICAgICAgICAgZWxz ZToKLS0gICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IsICgnZWxlbWVudCBpbmRleCBtdXN0IGJl IGFuIGludGVnZXIsIGEgc2xpY2UsIG9yICcKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnYW4gYXR0cmlidXRlIG5hbWUgc3RyaW5nJykKLSsgICAgICAgICAgICByYWlzZSBUeXBlRXJy b3IoJ2VsZW1lbnQgaW5kZXggbXVzdCBiZSBhbiBpbnRlZ2VyLCBhIHNsaWNlLCBvciAnCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICdhbiBhdHRyaWJ1dGUgbmFtZSBzdHJpbmcnKQotIAot ICAgICBkZWYgX19kZWxpdGVtX18oc2VsZiwga2V5KToKLSAgICAgICAgIGlmIGlzaW5zdGFuY2Uo a2V5LCBiYXNlc3RyaW5nKToKLUBAIC02MjEsOCArNjIxLDggQEAgY2xhc3MgRWxlbWVudChOb2Rl KToKLSAgICAgICAgICAgICBhc3NlcnQga2V5LnN0ZXAgaW4gKE5vbmUsIDEpLCAnY2Fubm90IGhh bmRsZSBzbGljZSB3aXRoIHN0cmlkZScKLSAgICAgICAgICAgICBkZWwgc2VsZi5jaGlsZHJlbltr ZXkuc3RhcnQ6a2V5LnN0b3BdCi0gICAgICAgICBlbHNlOgotLSAgICAgICAgICAgIHJhaXNlIFR5 cGVFcnJvciwgKCdlbGVtZW50IGluZGV4IG11c3QgYmUgYW4gaW50ZWdlciwgYSBzaW1wbGUgJwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzbGljZSwgb3IgYW4gYXR0cmlidXRlIG5h bWUgc3RyaW5nJykKLSsgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoJ2VsZW1lbnQgaW5kZXgg bXVzdCBiZSBhbiBpbnRlZ2VyLCBhIHNpbXBsZSAnCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICdzbGljZSwgb3IgYW4gYXR0cmlidXRlIG5hbWUgc3RyaW5nJykKLSAKLSAgICAgZGVmIF9f YWRkX18oc2VsZiwgb3RoZXIpOgotICAgICAgICAgcmV0dXJuIHNlbGYuY2hpbGRyZW4gKyBvdGhl cgotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3RyYW5zZm9ybXMvZnJvbnRtYXR0ZXIucHkgYi9kb2N1 dGlscy90cmFuc2Zvcm1zL2Zyb250bWF0dGVyLnB5Ci1pbmRleCAxMjc5ZjUwLi4yM2I5Yzk1IDEw MDY0NAotLS0tIGEvZG9jdXRpbHMvdHJhbnNmb3Jtcy9mcm9udG1hdHRlci5weQotKysrIGIvZG9j dXRpbHMvdHJhbnNmb3Jtcy9mcm9udG1hdHRlci5weQotQEAgLTU3LDcgKzU3LDcgQEAgY2xhc3Mg VGl0bGVQcm9tb3RlcihUcmFuc2Zvcm0pOgotICAgICAgICAgIiIiCi0gICAgICAgICAjIFR5cGUg Y2hlY2sKLSAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG5vZGUsIG5vZGVzLkVsZW1lbnQpOgot LSAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvciwgJ25vZGUgbXVzdCBiZSBvZiBFbGVtZW50LWRl cml2ZWQgdHlwZS4nCi0rICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCdub2RlIG11c3QgYmUg b2YgRWxlbWVudC1kZXJpdmVkIHR5cGUuJykKLSAKLSAgICAgICAgICMgYG5vZGVgIG11c3Qgbm90 IGhhdmUgYSB0aXRsZSB5ZXQuCi0gICAgICAgICBhc3NlcnQgbm90IChsZW4obm9kZSkgYW5kIGlz aW5zdGFuY2Uobm9kZVswXSwgbm9kZXMudGl0bGUpKQotQEAgLTEwMCw3ICsxMDAsNyBAQCBjbGFz cyBUaXRsZVByb21vdGVyKFRyYW5zZm9ybSk6Ci0gICAgICAgICAiIiIKLSAgICAgICAgICMgVHlw ZSBjaGVjawotICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uobm9kZSwgbm9kZXMuRWxlbWVudCk6 Ci0tICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yLCAnbm9kZSBtdXN0IGJlIG9mIEVsZW1lbnQt ZGVyaXZlZCB0eXBlLicKLSsgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoJ25vZGUgbXVzdCBi ZSBvZiBFbGVtZW50LWRlcml2ZWQgdHlwZS4nKQotIAotICAgICAgICAgc3Vic2VjdGlvbiwgaW5k ZXggPSBzZWxmLmNhbmRpZGF0ZV9pbmRleChub2RlKQotICAgICAgICAgaWYgaW5kZXggaXMgTm9u ZToKLWRpZmYgLS1naXQgYS9kb2N1dGlscy91dGlscy9yb21hbi5weSBiL2RvY3V0aWxzL3V0aWxz L3JvbWFuLnB5Ci1pbmRleCAwMzM1ZjI5Li5mYzQ2ODBkIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMv dXRpbHMvcm9tYW4ucHkKLSsrKyBiL2RvY3V0aWxzL3V0aWxzL3JvbWFuLnB5Ci1AQCAtNDAsOSAr NDAsOSBAQCByb21hbk51bWVyYWxNYXAgPSAoKCdNJywgIDEwMDApLAotIGRlZiB0b1JvbWFuKG4p OgotICAgICAiIiJjb252ZXJ0IGludGVnZXIgdG8gUm9tYW4gbnVtZXJhbCIiIgotICAgICBpZiBu b3QgKDAgPCBuIDwgNTAwMCk6Ci0tICAgICAgICByYWlzZSBPdXRPZlJhbmdlRXJyb3IsICJudW1i ZXIgb3V0IG9mIHJhbmdlIChtdXN0IGJlIDEuLjQ5OTkpIgotKyAgICAgICAgcmFpc2UgT3V0T2ZS YW5nZUVycm9yKCJudW1iZXIgb3V0IG9mIHJhbmdlIChtdXN0IGJlIDEuLjQ5OTkpIikKLSAgICAg aWYgaW50KG4pICE9IG46Ci0tICAgICAgICByYWlzZSBOb3RJbnRlZ2VyRXJyb3IsICJkZWNpbWFs cyBjYW4gbm90IGJlIGNvbnZlcnRlZCIKLSsgICAgICAgIHJhaXNlIE5vdEludGVnZXJFcnJvcigi ZGVjaW1hbHMgY2FuIG5vdCBiZSBjb252ZXJ0ZWQiKQotIAotICAgICByZXN1bHQgPSAiIgotICAg ICBmb3IgbnVtZXJhbCwgaW50ZWdlciBpbiByb21hbk51bWVyYWxNYXA6Ci1AQCAtNjcsOSArNjcs MTAgQEAgcm9tYW5OdW1lcmFsUGF0dGVybiA9IHJlLmNvbXBpbGUoIiIiCi0gZGVmIGZyb21Sb21h bihzKToKLSAgICAgIiIiY29udmVydCBSb21hbiBudW1lcmFsIHRvIGludGVnZXIiIiIKLSAgICAg aWYgbm90IHM6Ci0tICAgICAgICByYWlzZSBJbnZhbGlkUm9tYW5OdW1lcmFsRXJyb3IsICdJbnB1 dCBjYW4gbm90IGJlIGJsYW5rJwotKyAgICAgICAgcmFpc2UgSW52YWxpZFJvbWFuTnVtZXJhbEVy cm9yKCdJbnB1dCBjYW4gbm90IGJlIGJsYW5rJykKLSsKLSAgICAgaWYgbm90IHJvbWFuTnVtZXJh bFBhdHRlcm4uc2VhcmNoKHMpOgotLSAgICAgICAgcmFpc2UgSW52YWxpZFJvbWFuTnVtZXJhbEVy cm9yLCAnSW52YWxpZCBSb21hbiBudW1lcmFsOiAlcycgJSBzCi0rICAgICAgICByYWlzZSBJbnZh bGlkUm9tYW5OdW1lcmFsRXJyb3IoJ0ludmFsaWQgUm9tYW4gbnVtZXJhbDogJXMnICUgcykKLSAK LSAgICAgcmVzdWx0ID0gMAotICAgICBpbmRleCA9IDAKLWRpZmYgLS1naXQgYS9kb2N1dGlscy93 cml0ZXJzL21hbnBhZ2UucHkgYi9kb2N1dGlscy93cml0ZXJzL21hbnBhZ2UucHkKLWluZGV4IDlj ODg3YzcuLmNiYjg2NDggMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy93cml0ZXJzL21hbnBhZ2UucHkK LSsrKyBiL2RvY3V0aWxzL3dyaXRlcnMvbWFucGFnZS5weQotQEAgLTcxNSw3ICs3MTUsNyBAQCBj bGFzcyBUcmFuc2xhdG9yKG5vZGVzLk5vZGVWaXNpdG9yKToKLSAgICAgICAgIHBhc3MKLSAKLSAg ICAgZGVmIHZpc2l0X2hlYWRlcihzZWxmLCBub2RlKToKLS0gICAgICAgIHJhaXNlIE5vdEltcGxl bWVudGVkRXJyb3IsIG5vZGUuYXN0ZXh0KCkKLSsgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVk RXJyb3Iobm9kZS5hc3RleHQoKSkKLSAKLSAgICAgZGVmIGRlcGFydF9oZWFkZXIoc2VsZiwgbm9k ZSk6Ci0gICAgICAgICBwYXNzCi1AQCAtODU1LDcgKzg1NSw3IEBAIGNsYXNzIFRyYW5zbGF0b3Io bm9kZXMuTm9kZVZpc2l0b3IpOgotICAgICAgICAgc2VsZi5kZXBhcnRfbGl0ZXJhbF9ibG9jayhu b2RlKQotIAotICAgICBkZWYgdmlzaXRfbWV0YShzZWxmLCBub2RlKToKLS0gICAgICAgIHJhaXNl IE5vdEltcGxlbWVudGVkRXJyb3IsIG5vZGUuYXN0ZXh0KCkKLSsgICAgICAgIHJhaXNlIE5vdElt cGxlbWVudGVkRXJyb3Iobm9kZS5hc3RleHQoKSkKLSAKLSAgICAgZGVmIGRlcGFydF9tZXRhKHNl bGYsIG5vZGUpOgotICAgICAgICAgcGFzcwotZGlmZiAtLWdpdCBhL3Rlc3QvRG9jdXRpbHNUZXN0 U3VwcG9ydC5weSBiL3Rlc3QvRG9jdXRpbHNUZXN0U3VwcG9ydC5weQotaW5kZXggYzZmNWI5Zi4u YTFmZWMyNSAxMDA2NDQKLS0tLSBhL3Rlc3QvRG9jdXRpbHNUZXN0U3VwcG9ydC5weQotKysrIGIv dGVzdC9Eb2N1dGlsc1Rlc3RTdXBwb3J0LnB5Ci1AQCAtMTIzLDMwICsxMjMsMTcgQEAgY2xhc3Mg U3RhbmRhcmRUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgICAgICAgICBvcGVyYXRv ci4KLSAgICAgICAgICIiIgotICAgICAgICAgaWYgbm90IGZpcnN0ID09IHNlY29uZDoKLS0gICAg ICAgICAgICByYWlzZSBzZWxmLmZhaWx1cmVFeGNlcHRpb24sICgKLS0gICAgICAgICAgICAgICAg ICAgIG1zZyBvciAnJXMgIT0gJXMnICUgX2Zvcm1hdF9zdHIoZmlyc3QsIHNlY29uZCkpCi0rICAg ICAgICAgICAgcmFpc2Ugc2VsZi5mYWlsdXJlRXhjZXB0aW9uKAotKyAgICAgICAgICAgICAgICBt c2cgb3IgJyVzICE9ICVzJyAlIF9mb3JtYXRfc3RyKGZpcnN0LCBzZWNvbmQpKQotIAotICAgICBk ZWYgYXNzZXJ0Tm90RXF1YWwoc2VsZiwgZmlyc3QsIHNlY29uZCwgbXNnPU5vbmUpOgotICAgICAg ICAgIiIiRmFpbCBpZiB0aGUgdHdvIG9iamVjdHMgYXJlIGVxdWFsIGFzIGRldGVybWluZWQgYnkg dGhlICc9PScKLSAgICAgICAgICAgIG9wZXJhdG9yLgotICAgICAgICAgIiIiCi0gICAgICAgICBp ZiBmaXJzdCA9PSBzZWNvbmQ6Ci0tICAgICAgICAgICAgcmFpc2Ugc2VsZi5mYWlsdXJlRXhjZXB0 aW9uLCAoCi0tICAgICAgICAgICAgICAgICAgICBtc2cgb3IgJyVzID09ICVzJyAlIF9mb3JtYXRf c3RyKGZpcnN0LCBzZWNvbmQpKQotKyAgICAgICAgICAgIHJhaXNlIHNlbGYuZmFpbHVyZUV4Y2Vw dGlvbigKLSsgICAgICAgICAgICAgICAgbXNnIG9yICclcyA9PSAlcycgJSBfZm9ybWF0X3N0cihm aXJzdCwgc2Vjb25kKSkKLSAKLS0gICAgIyBhc3NlcnRJbiBhbmQgYXNzZXJ0Tm90SW46IG5ldyBp biBQeXRob24gMi43OgotLSAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDIsNyk6Ci0tICAgIAot LSAgICAgICAgZGVmIGFzc2VydEluKHNlbGYsIGEsIGIsIG1zZz1Ob25lKToKLS0gICAgICAgICAg ICBpZiBhIG5vdCBpbiBiOgotLSAgICAgICAgICAgICAgICByYWlzZSBzZWxmLmZhaWx1cmVFeGNl cHRpb24sICgKLS0gICAgICAgICAgICAgICAgICAgICAgICBtc2cgb3IgJyVzIG5vdCBpbiAlcycg JSBfZm9ybWF0X3N0cihhLCBiKSkKLS0gICAgCi0tICAgICAgICBkZWYgYXNzZXJ0Tm90SW4oc2Vs ZiwgYSwgYiwgbXNnPU5vbmUpOgotLSAgICAgICAgICAgIGlmIGEgaW4gYjoKLS0gICAgICAgICAg ICAgICAgcmFpc2Ugc2VsZi5mYWlsdXJlRXhjZXB0aW9uLCAoCi0tICAgICAgICAgICAgICAgICAg ICAgICAgbXNnIG9yICclcyBpbiAlcycgJSBfZm9ybWF0X3N0cihhLCBiKSkKLS0gICAgCi0gICAg ICMgYWxpYXNlcyBmb3IgYXNzZXJ0aW9uIG1ldGhvZHMsIGRlcHJlY2F0ZWQgc2luY2UgUHl0aG9u IDIuNwotIAotICAgICBmYWlsVW5sZXNzRXF1YWwgPSBhc3NlcnRFcXVhbHMgPSBhc3NlcnRFcXVh bAotZGlmZiAtLWdpdCBhL3Rlc3QvcGFja2FnZV91bml0dGVzdC5weSBiL3Rlc3QvcGFja2FnZV91 bml0dGVzdC5weQotaW5kZXggMTZiMDBkYy4uNGRiODI2YiAxMDA2NDQKLS0tLSBhL3Rlc3QvcGFj a2FnZV91bml0dGVzdC5weQotKysrIGIvdGVzdC9wYWNrYWdlX3VuaXR0ZXN0LnB5Ci1AQCAtMTIw LDcgKzEyMCw3IEBAIGRlZiBsb2FkVGVzdE1vZHVsZXMocGF0aCwgbmFtZT0nJywgcGFja2FnZXM9 Tm9uZSk6Ci0gICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHN1aXRlLCB1bml0dGVzdC5UZXN0 U3VpdGUpOgotICAgICAgICAgICAgICAgICB0ZXN0U3VpdGUuYWRkVGVzdChzdWl0ZSkKLSAgICAg ICAgICAgICBlbHNlOgotLSAgICAgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvciwgImRv bid0IHVuZGVyc3RhbmQgc3VpdGUgKCVzKSIgJSBtb2QKLSsgICAgICAgICAgICAgICAgcmFpc2Ug QXNzZXJ0aW9uRXJyb3IoImRvbid0IHVuZGVyc3RhbmQgc3VpdGUgKCVzKSIgJSBtb2QpCi0gICAg IHN5cy5wYXRoLnBvcCgwKQotICAgICByZXR1cm4gdGVzdFN1aXRlCi0gCi0tLSAKLTIuMjQuMC4z NzUuZ2ViNWFlNjhkNDEKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0 Y2hlcy8wMDA3LXB5My1SZXBsYWNlLXN5cy5tYXhpbnQtd2l0aC1zeXMubWF4c2l6ZS5wYXRjaCBi L3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAwNy1weTMtUmVwbGFjZS1zeXMubWF4 aW50LXdpdGgtc3lzLm1heHNpemUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IGViMGM0MGY3YTFmLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9w YXRjaGVzLzAwMDctcHkzLVJlcGxhY2Utc3lzLm1heGludC13aXRoLXN5cy5tYXhzaXplLnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsMTAzICswLDAgQEAKLUZyb20gZDZmODYzNDAwNGFhNjc5ZDJk NzEwMzdiZDYzYWY4MjA1MmYwOGZlZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0 ZXBoZW4gRmludWNhbmUgPHN0ZXBoZW5AdGhhdC5ndXJ1PgotRGF0ZTogVHVlLCAxOSBOb3YgMjAx OSAyMzo1Mzo1NCArMDcwMAotU3ViamVjdDogW1BBVENIIDA3LzI2XSBweTM6IFJlcGxhY2UgJ3N5 cy5tYXhpbnQnIHdpdGggJ3N5cy5tYXhzaXplJwotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQt VHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGlu ZzogOGJpdAotCi1Gcm9tIHRoZSBQeXRob24gMyByZWxlYXNlIGRvY3MgWzFdOgotCi0gIFRoZSBz eXMubWF4aW50IGNvbnN0YW50IHdhcyByZW1vdmVkLCBzaW5jZSB0aGVyZSBpcyBubyBsb25nZXIg YSBsaW1pdAotICB0byB0aGUgdmFsdWUgb2YgaW50ZWdlcnMuIEhvd2V2ZXIsIHN5cy5tYXhzaXpl IGNhbiBiZSB1c2VkIGFzIGFuCi0gIGludGVnZXIgbGFyZ2VyIHRoYW4gYW55IHByYWN0aWNhbCBs aXN0IG9yIHN0cmluZyBpbmRleC4gSXQgY29uZm9ybXMgdG8KLSAgdGhlIGltcGxlbWVudGF0aW9u 4oCZcyDigJxuYXR1cmFs4oCdIGludGVnZXIgc2l6ZSBhbmQgaXMgdHlwaWNhbGx5IHRoZQotICBz YW1lIGFzIHN5cy5tYXhpbnQgaW4gcHJldmlvdXMgcmVsZWFzZXMgb24gdGhlIHNhbWUgcGxhdGZv cm0gKGFzc3VtaW5nCi0gIHRoZSBzYW1lIGJ1aWxkIG9wdGlvbnMpLgotCi1bMV0gaHR0cHM6Ly9k b2NzLnB5dGhvbi5vcmcvMy4xL3doYXRzbmV3LzMuMC5odG1sI2ludGVnZXJzCi0KLVNpZ25lZC1v ZmYtYnk6IFN0ZXBoZW4gRmludWNhbmUgPHN0ZXBoZW5AdGhhdC5ndXJ1PgotCi1naXQtc3ZuLWlk OiBodHRwOi8vc3ZuLmNvZGUuc2YubmV0L3AvZG9jdXRpbHMvY29kZS90cnVua0A4MzU0IDkyOTU0 M2Y2LWU0ZjItMDMxMC05OGE2LWJhM2JkM2RkMWQwNAotU2lnbmVkLW9mZi1ieTogRG9hbiBUcmFu IENvbmcgRGFuaCA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+Ci0tLS0KLSBkb2N1dGlscy9ub2Rlcy5w eSAgICAgICAgICAgICAgICAgICB8IDQgKystLQotIGRvY3V0aWxzL3BhcnNlcnMvcnN0L3RhYmxl cGFyc2VyLnB5IHwgMiArLQotIGRvY3V0aWxzL3N0YXRlbWFjaGluZS5weSAgICAgICAgICAgIHwg MiArLQotIGRvY3V0aWxzL3RyYW5zZm9ybXMvcGFydHMucHkgICAgICAgIHwgNCArKy0tCi0gNCBm aWxlcyBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1n aXQgYS9kb2N1dGlscy9ub2Rlcy5weSBiL2RvY3V0aWxzL25vZGVzLnB5Ci1pbmRleCA3MTE4OWFi Li5jNTI0MzczIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvbm9kZXMucHkKLSsrKyBiL2RvY3V0aWxz L25vZGVzLnB5Ci1AQCAtOTc3LDcgKzk3Nyw3IEBAIGNsYXNzIEVsZW1lbnQoTm9kZSk6Ci0gICAg ICAgICAgICAgICAgICAgICAgICAnTG9zaW5nICIlcyIgYXR0cmlidXRlOiAlcycgJSAoYXR0LCBz ZWxmW2F0dF0pCi0gICAgICAgICBzZWxmLnBhcmVudC5yZXBsYWNlKHNlbGYsIG5ldykKLSAKLS0g ICAgZGVmIGZpcnN0X2NoaWxkX21hdGNoaW5nX2NsYXNzKHNlbGYsIGNoaWxkY2xhc3MsIHN0YXJ0 PTAsIGVuZD1zeXMubWF4aW50KToKLSsgICAgZGVmIGZpcnN0X2NoaWxkX21hdGNoaW5nX2NsYXNz KHNlbGYsIGNoaWxkY2xhc3MsIHN0YXJ0PTAsIGVuZD1zeXMubWF4c2l6ZSk6Ci0gICAgICAgICAi IiIKLSAgICAgICAgIFJldHVybiB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoaWxkIHdob3NlIGNs YXNzIGV4YWN0bHkgbWF0Y2hlcy4KLSAKLUBAIC05OTcsNyArOTk3LDcgQEAgY2xhc3MgRWxlbWVu dChOb2RlKToKLSAgICAgICAgIHJldHVybiBOb25lCi0gCi0gICAgIGRlZiBmaXJzdF9jaGlsZF9u b3RfbWF0Y2hpbmdfY2xhc3Moc2VsZiwgY2hpbGRjbGFzcywgc3RhcnQ9MCwKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQ9c3lzLm1heGludCk6Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kPXN5cy5tYXhzaXplKToKLSAgICAgICAg ICIiIgotICAgICAgICAgUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hpbGQgd2hvc2Ug Y2xhc3MgZG9lcyAqbm90KiBtYXRjaC4KLSAKLWRpZmYgLS1naXQgYS9kb2N1dGlscy9wYXJzZXJz L3JzdC90YWJsZXBhcnNlci5weSBiL2RvY3V0aWxzL3BhcnNlcnMvcnN0L3RhYmxlcGFyc2VyLnB5 Ci1pbmRleCA0NWFmNzJmLi4yNzYwZWEwIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvcGFyc2Vycy9y c3QvdGFibGVwYXJzZXIucHkKLSsrKyBiL2RvY3V0aWxzL3BhcnNlcnMvcnN0L3RhYmxlcGFyc2Vy LnB5Ci1AQCAtNDk4LDcgKzQ5OCw3IEBAIGNsYXNzIFNpbXBsZVRhYmxlUGFyc2VyKFRhYmxlUGFy c2VyKToKLSAgICAgICAgICIiIgotICAgICAgICAgIyAiSW5maW5pdGUiIHZhbHVlIGZvciBhIGR1 bW15IGxhc3QgY29sdW1uJ3MgYmVnaW5uaW5nLCB1c2VkIHRvCi0gICAgICAgICAjIGNoZWNrIGZv ciB0ZXh0IG92ZXJmbG93OgotLSAgICAgICAgY29sdW1ucy5hcHBlbmQoKHN5cy5tYXhpbnQsIE5v bmUpKQotKyAgICAgICAgY29sdW1ucy5hcHBlbmQoKHN5cy5tYXhzaXplLCBOb25lKSkKLSAgICAg ICAgIGxhc3Rjb2wgPSBsZW4oY29sdW1ucykgLSAyCi0gICAgICAgICAjIGNvbWJpbmluZyBjaGFy YWN0ZXJzIGRvIG5vdCBjb250cmlidXRlIHRvIHRoZSBjb2x1bW4gd2lkdGgKLSAgICAgICAgIGxp bmVzID0gW3N0cmlwX2NvbWJpbmluZ19jaGFycyhsaW5lKSBmb3IgbGluZSBpbiBsaW5lc10KLWRp ZmYgLS1naXQgYS9kb2N1dGlscy9zdGF0ZW1hY2hpbmUucHkgYi9kb2N1dGlscy9zdGF0ZW1hY2hp bmUucHkKLWluZGV4IGI1NmYzYzUuLjVkN2ZlNzcgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9zdGF0 ZW1hY2hpbmUucHkKLSsrKyBiL2RvY3V0aWxzL3N0YXRlbWFjaGluZS5weQotQEAgLTEzNDEsNyAr MTM0MSw3IEBAIGNsYXNzIFN0cmluZ0xpc3QoVmlld0xpc3QpOgotIAotICAgICAiIiJBIGBWaWV3 TGlzdGAgd2l0aCBzdHJpbmctc3BlY2lmaWMgbWV0aG9kcy4iIiIKLSAKLS0gICAgZGVmIHRyaW1f bGVmdChzZWxmLCBsZW5ndGgsIHN0YXJ0PTAsIGVuZD1zeXMubWF4aW50KToKLSsgICAgZGVmIHRy aW1fbGVmdChzZWxmLCBsZW5ndGgsIHN0YXJ0PTAsIGVuZD1zeXMubWF4c2l6ZSk6Ci0gICAgICAg ICAiIiIKLSAgICAgICAgIFRyaW0gYGxlbmd0aGAgY2hhcmFjdGVycyBvZmYgdGhlIGJlZ2lubmlu ZyBvZiBlYWNoIGl0ZW0sIGluLXBsYWNlLAotICAgICAgICAgZnJvbSBpbmRleCBgc3RhcnRgIHRv IGBlbmRgLiAgTm8gd2hpdGVzcGFjZS1jaGVja2luZyBpcyBkb25lIG9uIHRoZQotZGlmZiAtLWdp dCBhL2RvY3V0aWxzL3RyYW5zZm9ybXMvcGFydHMucHkgYi9kb2N1dGlscy90cmFuc2Zvcm1zL3Bh cnRzLnB5Ci1pbmRleCAxMWIxYjIzLi43YTJmYTBmIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvdHJh bnNmb3Jtcy9wYXJ0cy5weQotKysrIGIvZG9jdXRpbHMvdHJhbnNmb3Jtcy9wYXJ0cy5weQotQEAg LTM3LDcgKzM3LDcgQEAgY2xhc3MgU2VjdE51bShUcmFuc2Zvcm0pOgotICAgICAgICAgc2VsZi5z dGFydG5vZGUucGFyZW50LnJlbW92ZShzZWxmLnN0YXJ0bm9kZSkKLSAgICAgICAgIGlmIHNlbGYu ZG9jdW1lbnQuc2V0dGluZ3Muc2VjdG51bV94Zm9ybToKLSAgICAgICAgICAgICBpZiBzZWxmLm1h eGRlcHRoIGlzIE5vbmU6Ci0tICAgICAgICAgICAgICAgIHNlbGYubWF4ZGVwdGggPSBzeXMubWF4 aW50Ci0rICAgICAgICAgICAgICAgIHNlbGYubWF4ZGVwdGggPSBzeXMubWF4c2l6ZQotICAgICAg ICAgICAgIHNlbGYudXBkYXRlX3NlY3Rpb25fbnVtYmVycyhzZWxmLmRvY3VtZW50KQotICAgICAg ICAgZWxzZTogIyBzdG9yZSBkZXRhaWxzIGZvciBldmVudHVhbCBzZWN0aW9uIG51bWJlcmluZyBi eSB0aGUgd3JpdGVyCi0gICAgICAgICAgICAgc2VsZi5kb2N1bWVudC5zZXR0aW5ncy5zZWN0bnVt X2RlcHRoID0gc2VsZi5tYXhkZXB0aAotQEAgLTEyMCw3ICsxMjAsNyBAQCBjbGFzcyBDb250ZW50 cyhUcmFuc2Zvcm0pOgotICAgICAgICAgc2VjdGlvbnMgPSBbc2VjdCBmb3Igc2VjdCBpbiBub2Rl IGlmIGlzaW5zdGFuY2Uoc2VjdCwgbm9kZXMuc2VjdGlvbildCi0gICAgICAgICBlbnRyaWVzID0g W10KLSAgICAgICAgIGF1dG9udW0gPSAwCi0tICAgICAgICBkZXB0aCA9IHNlbGYuc3RhcnRub2Rl LmRldGFpbHMuZ2V0KCdkZXB0aCcsIHN5cy5tYXhpbnQpCi0rICAgICAgICBkZXB0aCA9IHNlbGYu c3RhcnRub2RlLmRldGFpbHMuZ2V0KCdkZXB0aCcsIHN5cy5tYXhzaXplKQotICAgICAgICAgZm9y IHNlY3Rpb24gaW4gc2VjdGlvbnM6Ci0gICAgICAgICAgICAgdGl0bGUgPSBzZWN0aW9uWzBdCi0g ICAgICAgICAgICAgYXV0byA9IHRpdGxlLmdldCgnYXV0bycpICAgICMgTWF5IGJlIHNldCBieSBT ZWN0TnVtLgotLS0gCi0yLjI0LjAuMzc1LmdlYjVhZTY4ZDQxCi0KZGlmZiAtLWdpdCBhL3NyY3Br Z3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAwOC1weTMtUmVwbGFjZS10eXBlcy5TbGljZVR5 cGUtd2l0aC1zbGljZS1yZW1vdmUtdHlwZXMuLnBhdGNoIGIvc3JjcGtncy9weXRob24tZG9jdXRp bHMvcGF0Y2hlcy8wMDA4LXB5My1SZXBsYWNlLXR5cGVzLlNsaWNlVHlwZS13aXRoLXNsaWNlLXJl bW92ZS10eXBlcy4ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3MWM2ZmE3 ZDZiLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAw MDgtcHkzLVJlcGxhY2UtdHlwZXMuU2xpY2VUeXBlLXdpdGgtc2xpY2UtcmVtb3ZlLXR5cGVzLi5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEyOCArMCwwIEBACi1Gcm9tIGE0NmYyYmRlYzIwMDY4 Y2Y3OWZmMTgyYWUwMjRmYzE5ODlkNDVjNzQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9t OiBTdGVwaGVuIEZpbnVjYW5lIDxzdGVwaGVuQHRoYXQuZ3VydT4KLURhdGU6IE1vbiwgMjYgQXVn IDIwMTkgMTY6NDI6NTAgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSCAwOC8yNl0gcHkzOiBSZXBsYWNl ICd0eXBlcy5TbGljZVR5cGUnIHdpdGggc2xpY2UsIHJlbW92ZQotICd0eXBlcy5DbGFzc1R5cGUn LgotCi1UaGVzZSB0eXBlcyBoYXZlIGJlZW4gcmVtb3ZlZCBpbiBQeXRob24gMywKLWBTbGljZVR5 cGVgIGlzIGFuIGFsaWFzIGZvciBgc2xpY2VgIGFscmVhZHkgaW4gUHl0aG9uIDIuNywKLWBDbGFz c1R5cGVgIGlzIGZvciB1c2VyLWRlZmluZWQgb2xkLXN0eWxlIGNsYXNzZXMgKHdlIG5vdyB1c2Ug b25seSBuZXcgc3R5bGUgY2xhc3NlcykuCi0KLVNpZ25lZC1vZmYtYnk6IFN0ZXBoZW4gRmludWNh bmUgPHN0ZXBoZW5AdGhhdC5ndXJ1PgotCi1naXQtc3ZuLWlkOiBodHRwOi8vc3ZuLmNvZGUuc2Yu bmV0L3AvZG9jdXRpbHMvY29kZS90cnVua0A4MzU1IDkyOTU0M2Y2LWU0ZjItMDMxMC05OGE2LWJh M2JkM2RkMWQwNAotU2lnbmVkLW9mZi1ieTogRG9hbiBUcmFuIENvbmcgRGFuaCA8Y29uZ2Rhbmhx eEBnbWFpbC5jb20+Ci0tLS0KLSBkb2N1dGlscy9ub2Rlcy5weSAgICAgICAgfCAxMSArKysrKy0t LS0tLQotIGRvY3V0aWxzL3N0YXRlbWFjaGluZS5weSB8ICA1ICsrLS0tCi0gdGVzdC90ZXN0X25v ZGVzLnB5ICAgICAgIHwgIDQgKystLQotIDMgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCsp LCAxMSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL25vZGVzLnB5IGIvZG9j dXRpbHMvbm9kZXMucHkKLWluZGV4IGM1MjQzNzMuLmE4YzA0NzggMTAwNjQ0Ci0tLS0gYS9kb2N1 dGlscy9ub2Rlcy5weQotKysrIGIvZG9jdXRpbHMvbm9kZXMucHkKLUBAIC0yNyw3ICsyNyw2IEBA IGltcG9ydCBzeXMKLSBpbXBvcnQgb3MKLSBpbXBvcnQgcmUKLSBpbXBvcnQgd2FybmluZ3MKLS1p bXBvcnQgdHlwZXMKLSBpbXBvcnQgdW5pY29kZWRhdGEKLSAKLSBpZiBzeXMudmVyc2lvbl9pbmZv ID49ICgzLCAwKToKLUBAIC0yNTcsMTEgKzI1NiwxMSBAQCBjbGFzcyBOb2RlKG9iamVjdCk6Ci0g ICAgICAgICBpZiBpbmNsdWRlX3NlbGYgYW5kIGRlc2NlbmQgYW5kIG5vdCBzaWJsaW5nczoKLSAg ICAgICAgICAgICBpZiBjb25kaXRpb24gaXMgTm9uZToKLSAgICAgICAgICAgICAgICAgcmV0dXJu IHNlbGYuX2FsbF90cmF2ZXJzZSgpCi0tICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGNvbmRp dGlvbiwgKHR5cGVzLkNsYXNzVHlwZSwgdHlwZSkpOgotKyAgICAgICAgICAgIGVsaWYgaXNpbnN0 YW5jZShjb25kaXRpb24sIHR5cGUpOgotICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fZmFz dF90cmF2ZXJzZShjb25kaXRpb24pCi0gICAgICAgICAjIENoZWNrIGlmIGBjb25kaXRpb25gIGlz IGEgY2xhc3MgKGNoZWNrIGZvciBUeXBlVHlwZSBmb3IgUHl0aG9uCi0gICAgICAgICAjIGltcGxl bWVudGF0aW9ucyB0aGF0IHVzZSBvbmx5IG5ldy1zdHlsZSBjbGFzc2VzLCBsaWtlIFB5UHkpLgot LSAgICAgICAgaWYgaXNpbnN0YW5jZShjb25kaXRpb24sICh0eXBlcy5DbGFzc1R5cGUsIHR5cGUp KToKLSsgICAgICAgIGlmIGlzaW5zdGFuY2UoY29uZGl0aW9uLCB0eXBlKToKLSAgICAgICAgICAg ICBub2RlX2NsYXNzID0gY29uZGl0aW9uCi0gICAgICAgICAgICAgZGVmIGNvbmRpdGlvbihub2Rl LCBub2RlX2NsYXNzPW5vZGVfY2xhc3MpOgotICAgICAgICAgICAgICAgICByZXR1cm4gaXNpbnN0 YW5jZShub2RlLCBub2RlX2NsYXNzKQotQEAgLTU5MCw3ICs1ODksNyBAQCBjbGFzcyBFbGVtZW50 KE5vZGUpOgotICAgICAgICAgICAgIHJldHVybiBzZWxmLmF0dHJpYnV0ZXNba2V5XQotICAgICAg ICAgZWxpZiBpc2luc3RhbmNlKGtleSwgaW50KToKLSAgICAgICAgICAgICByZXR1cm4gc2VsZi5j aGlsZHJlbltrZXldCi0tICAgICAgICBlbGlmIGlzaW5zdGFuY2Uoa2V5LCB0eXBlcy5TbGljZVR5 cGUpOgotKyAgICAgICAgZWxpZiBpc2luc3RhbmNlKGtleSwgc2xpY2UpOgotICAgICAgICAgICAg IGFzc2VydCBrZXkuc3RlcCBpbiAoTm9uZSwgMSksICdjYW5ub3QgaGFuZGxlIHNsaWNlIHdpdGgg c3RyaWRlJwotICAgICAgICAgICAgIHJldHVybiBzZWxmLmNoaWxkcmVuW2tleS5zdGFydDprZXku c3RvcF0KLSAgICAgICAgIGVsc2U6Ci1AQCAtNjAzLDcgKzYwMiw3IEBAIGNsYXNzIEVsZW1lbnQo Tm9kZSk6Ci0gICAgICAgICBlbGlmIGlzaW5zdGFuY2Uoa2V5LCBpbnQpOgotICAgICAgICAgICAg IHNlbGYuc2V0dXBfY2hpbGQoaXRlbSkKLSAgICAgICAgICAgICBzZWxmLmNoaWxkcmVuW2tleV0g PSBpdGVtCi0tICAgICAgICBlbGlmIGlzaW5zdGFuY2Uoa2V5LCB0eXBlcy5TbGljZVR5cGUpOgot KyAgICAgICAgZWxpZiBpc2luc3RhbmNlKGtleSwgc2xpY2UpOgotICAgICAgICAgICAgIGFzc2Vy dCBrZXkuc3RlcCBpbiAoTm9uZSwgMSksICdjYW5ub3QgaGFuZGxlIHNsaWNlIHdpdGggc3RyaWRl JwotICAgICAgICAgICAgIGZvciBub2RlIGluIGl0ZW06Ci0gICAgICAgICAgICAgICAgIHNlbGYu c2V0dXBfY2hpbGQobm9kZSkKLUBAIC02MTcsNyArNjE2LDcgQEAgY2xhc3MgRWxlbWVudChOb2Rl KToKLSAgICAgICAgICAgICBkZWwgc2VsZi5hdHRyaWJ1dGVzW2tleV0KLSAgICAgICAgIGVsaWYg aXNpbnN0YW5jZShrZXksIGludCk6Ci0gICAgICAgICAgICAgZGVsIHNlbGYuY2hpbGRyZW5ba2V5 XQotLSAgICAgICAgZWxpZiBpc2luc3RhbmNlKGtleSwgdHlwZXMuU2xpY2VUeXBlKToKLSsgICAg ICAgIGVsaWYgaXNpbnN0YW5jZShrZXksIHNsaWNlKToKLSAgICAgICAgICAgICBhc3NlcnQga2V5 LnN0ZXAgaW4gKE5vbmUsIDEpLCAnY2Fubm90IGhhbmRsZSBzbGljZSB3aXRoIHN0cmlkZScKLSAg ICAgICAgICAgICBkZWwgc2VsZi5jaGlsZHJlbltrZXkuc3RhcnQ6a2V5LnN0b3BdCi0gICAgICAg ICBlbHNlOgotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3N0YXRlbWFjaGluZS5weSBiL2RvY3V0aWxz L3N0YXRlbWFjaGluZS5weQotaW5kZXggNWQ3ZmU3Ny4uMDY4MDgzYSAxMDA2NDQKLS0tLSBhL2Rv Y3V0aWxzL3N0YXRlbWFjaGluZS5weQotKysrIGIvZG9jdXRpbHMvc3RhdGVtYWNoaW5lLnB5Ci1A QCAtMTA5LDcgKzEwOSw2IEBAIF9fZG9jZm9ybWF0X18gPSAncmVzdHJ1Y3R1cmVkdGV4dCcKLSAK LSBpbXBvcnQgc3lzCi0gaW1wb3J0IHJlCi0taW1wb3J0IHR5cGVzCi0gaW1wb3J0IHVuaWNvZGVk YXRhCi0gZnJvbSBkb2N1dGlscyBpbXBvcnQgdXRpbHMKLSBmcm9tIGRvY3V0aWxzLnV0aWxzLmVy cm9yX3JlcG9ydGluZyBpbXBvcnQgRXJyb3JPdXRwdXQKLUBAIC0xMTQ4LDcgKzExNDcsNyBAQCBj bGFzcyBWaWV3TGlzdChvYmplY3QpOgotICAgICAjIGp1c3Qgd29ya3MuCi0gCi0gICAgIGRlZiBf X2dldGl0ZW1fXyhzZWxmLCBpKToKLS0gICAgICAgIGlmIGlzaW5zdGFuY2UoaSwgdHlwZXMuU2xp Y2VUeXBlKToKLSsgICAgICAgIGlmIGlzaW5zdGFuY2UoaSwgc2xpY2UpOgotICAgICAgICAgICAg IGFzc2VydCBpLnN0ZXAgaW4gKE5vbmUsIDEpLCAgJ2Nhbm5vdCBoYW5kbGUgc2xpY2Ugd2l0aCBz dHJpZGUnCi0gICAgICAgICAgICAgcmV0dXJuIHNlbGYuX19jbGFzc19fKHNlbGYuZGF0YVtpLnN0 YXJ0Omkuc3RvcF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zPXNl bGYuaXRlbXNbaS5zdGFydDppLnN0b3BdLAotQEAgLTExNTcsNyArMTE1Niw3IEBAIGNsYXNzIFZp ZXdMaXN0KG9iamVjdCk6Ci0gICAgICAgICAgICAgcmV0dXJuIHNlbGYuZGF0YVtpXQotIAotICAg ICBkZWYgX19zZXRpdGVtX18oc2VsZiwgaSwgaXRlbSk6Ci0tICAgICAgICBpZiBpc2luc3RhbmNl KGksIHR5cGVzLlNsaWNlVHlwZSk6Ci0rICAgICAgICBpZiBpc2luc3RhbmNlKGksIHNsaWNlKToK LSAgICAgICAgICAgICBhc3NlcnQgaS5zdGVwIGluIChOb25lLCAxKSwgJ2Nhbm5vdCBoYW5kbGUg c2xpY2Ugd2l0aCBzdHJpZGUnCi0gICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoaXRlbSwg Vmlld0xpc3QpOgotICAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoJ2Fzc2lnbmluZyBu b24tVmlld0xpc3QgdG8gVmlld0xpc3Qgc2xpY2UnKQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9u b2Rlcy5weSBiL3Rlc3QvdGVzdF9ub2Rlcy5weQotaW5kZXggOTI0NTY5Zi4uNjc5Yzk4ZSAxMDA3 NTUKLS0tLSBhL3Rlc3QvdGVzdF9ub2Rlcy5weQotKysrIGIvdGVzdC90ZXN0X25vZGVzLnB5Ci1A QCAtMTEsNyArMTEsNyBAQCBUZXN0IG1vZHVsZSBmb3Igbm9kZXMucHkuCi0gCi0gaW1wb3J0IHN5 cwotIGltcG9ydCB1bml0dGVzdAotLWltcG9ydCB0eXBlcwotKwotIGltcG9ydCBEb2N1dGlsc1Rl c3RTdXBwb3J0ICAgICAgICAgICAgICAjIG11c3QgYmUgaW1wb3J0ZWQgYmVmb3JlIGRvY3V0aWxz Ci0gZnJvbSBEb2N1dGlsc1Rlc3RTdXBwb3J0IGltcG9ydCBub2RlcywgdXRpbHMKLSAKLUBAIC0z NTksNyArMzU5LDcgQEAgY2xhc3MgTWlzY1Rlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAg ICAgIG5vZGVfY2xhc3NfbmFtZXMgPSBbXQotICAgICAgICAgZm9yIHggaW4gZGlyKG5vZGVzKToK LSAgICAgICAgICAgICBjID0gZ2V0YXR0cihub2RlcywgeCkKLS0gICAgICAgICAgICBpZiBpc2lu c3RhbmNlKGMsICh0eXBlLCB0eXBlcy5DbGFzc1R5cGUpKSBhbmQgXAotKyAgICAgICAgICAgIGlm IGlzaW5zdGFuY2UoYywgdHlwZSkgYW5kIFwKLSAgICAgICAgICAgICAgICAgICAgaXNzdWJjbGFz cyhjLCBub2Rlcy5Ob2RlKSBhbmQgbGVuKGMuX19iYXNlc19fKSA+IDE6Ci0gICAgICAgICAgICAg ICAgIG5vZGVfY2xhc3NfbmFtZXMuYXBwZW5kKHgpCi0gICAgICAgICBub2RlX2NsYXNzX25hbWVz LnNvcnQoKQotLS0gCi0yLjI0LjAuMzc1LmdlYjVhZTY4ZDQxCi0KZGlmZiAtLWdpdCBhL3NyY3Br Z3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAwOS1weTMtVXNlLWFic29sdXRlX2ltcG9ydC1m dXR1cmUucGF0Y2ggYi9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMDktcHkzLVVz ZS1hYnNvbHV0ZV9pbXBvcnQtZnV0dXJlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAyZTdkMzFjMmY4My4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9weXRob24tZG9jdXRp bHMvcGF0Y2hlcy8wMDA5LXB5My1Vc2UtYWJzb2x1dGVfaW1wb3J0LWZ1dHVyZS5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDE2OTkgKzAsMCBAQAotRnJvbSAyMzg0ZDY4NWIyYjM4ZTMwYTBkYmI2 MDU5NGMxOTBmMzZhZDdlM2E3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3RlcGhl biBGaW51Y2FuZSA8c3RlcGhlbkB0aGF0Lmd1cnU+Ci1EYXRlOiBUdWUsIDE5IE5vdiAyMDE5IDIz OjU3OjQzICswNzAwCi1TdWJqZWN0OiBbUEFUQ0ggMDkvMjZdIHB5MzogVXNlICdhYnNvbHV0ZV9p bXBvcnQnIGZ1dHVyZQotCi1UaGlzIG1vc3RseSBhcHBsaWVzIHRvIHRlc3RzLgotCi1TaWduZWQt b2ZmLWJ5OiBTdGVwaGVuIEZpbnVjYW5lIDxzdGVwaGVuQHRoYXQuZ3VydT4KLQotZ2l0LXN2bi1p ZDogaHR0cDovL3N2bi5jb2RlLnNmLm5ldC9wL2RvY3V0aWxzL2NvZGUvdHJ1bmtAODM1NiA5Mjk1 NDNmNi1lNGYyLTAzMTAtOThhNi1iYTNiZDNkZDFkMDQKLVNpZ25lZC1vZmYtYnk6IERvYW4gVHJh biBDb25nIERhbmggPGNvbmdkYW5ocXhAZ21haWwuY29tPgotLS0tCi0gZG9jdXRpbHMvd3JpdGVy cy9vZGZfb2R0L19faW5pdF9fLnB5ICAgICAgICAgICAgICAgICAgICAgIHwgMyArKy0KLSB0ZXN0 L3Rlc3RfcGFyc2Vycy90ZXN0X2dldF9wYXJzZXJfY2xhc3MucHkgICAgICAgICAgICAgICAgfCAz ICsrLQotIHRlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfU2ltcGxlVGFibGVQYXJzZXIu cHkgICAgICB8IDMgKystCi0gdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9UYWJsZVBh cnNlci5weSAgICAgICAgICAgIHwgMyArKy0KLSB0ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90 ZXN0X2Jsb2NrX3F1b3Rlcy5weSAgICAgICAgICAgfCAzICsrLQotIHRlc3QvdGVzdF9wYXJzZXJz L3Rlc3RfcnN0L3Rlc3RfYnVsbGV0X2xpc3RzLnB5ICAgICAgICAgICB8IDMgKystCi0gLi4uL3Rl c3RfcnN0L3Rlc3RfY2hhcmFjdGVyX2xldmVsX2lubGluZV9tYXJrdXAucHkgICAgICAgIHwgMyAr Ky0KLSB0ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2NpdGF0aW9ucy5weSAgICAgICAg ICAgICAgfCAzICsrLQotIHRlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfY29tbWVudHMu cHkgICAgICAgICAgICAgICB8IDMgKystCi0gdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVz dF9kZWZpbml0aW9uX2xpc3RzLnB5ICAgICAgIHwgMyArKy0KLSAuLi4vdGVzdF9yc3QvdGVzdF9k aXJlY3RpdmVzL3Rlc3RfYWRtb25pdGlvbnMucHkgICAgICAgICAgfCAzICsrLQotIC4uLi90ZXN0 X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9ibG9ja19xdW90ZXMucHkgICAgICAgICB8IDMgKyst Ci0gdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfY2xhc3Mu cHkgIHwgMyArKy0KLSB0ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMv dGVzdF9jb2RlLnB5ICAgfCAzICsrLQotIC4uLi90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVz dF9jb2RlX2xvbmcucHkgICAgICAgICAgICB8IDMgKystCi0gLi4uL3Rlc3RfcnN0L3Rlc3RfZGly ZWN0aXZlcy90ZXN0X2NvZGVfbm9uZS5weSAgICAgICAgICAgIHwgMyArKy0KLSAuLi4vdGVzdF9y c3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfY29tcG91bmQucHkgICAgICAgICAgICAgfCAzICsrLQot IC4uLi90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9jb250YWluZXIucHkgICAgICAgICAg ICB8IDMgKystCi0gLi4uL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2NvbnRlbnRzLnB5 ICAgICAgICAgICAgIHwgMyArKy0KLSB0ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2Rp cmVjdGl2ZXMvdGVzdF9kYXRlLnB5ICAgfCAzICsrLQotIC4uLi90ZXN0X3JzdC90ZXN0X2RpcmVj dGl2ZXMvdGVzdF9kZWNvcmF0aW9ucy5weSAgICAgICAgICB8IDQgKysrLQotIC4uLi90ZXN0X3Jz dC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9kZWZhdWx0X3JvbGUucHkgICAgICAgICB8IDMgKystCi0g Li4uL3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9maWd1cmVzLnB5 IHwgNCArKystCi0gdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rl c3RfaW1hZ2VzLnB5IHwgNCArKystCi0gLi4uL3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2Rp cmVjdGl2ZXMvdGVzdF9pbmNsdWRlLnB5IHwgMyArKy0KLSAuLi4vdGVzdF9yc3QvdGVzdF9kaXJl Y3RpdmVzL3Rlc3RfbGluZV9ibG9ja3MucHkgICAgICAgICAgfCA0ICsrKy0KLSB0ZXN0L3Rlc3Rf cGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9tYXRoLnB5ICAgfCA0ICsrKy0K LSB0ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9tZXRhLnB5 ICAgfCA0ICsrKy0KLSAuLi4vdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfcGFyc2VkX2xp dGVyYWxzLnB5ICAgICAgfCA0ICsrKy0KLSB0ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0 X2RpcmVjdGl2ZXMvdGVzdF9yYXcucHkgICAgfCA1ICsrKystCi0gLi4uL3Rlc3RfcGFyc2Vycy90 ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9yZXBsYWNlLnB5IHwgMyArKy0KLSAuLi4vdGVz dF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfcmVwbGFjZV9mci5weSAgICAgICAgICAgfCAzICsr LQotIHRlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3JvbGUu cHkgICB8IDMgKystCi0gLi4uL3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMv dGVzdF9ydWJyaWNzLnB5IHwgMyArKy0KLSAuLi4vdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3Rf ZGlyZWN0aXZlcy90ZXN0X3NlY3RudW0ucHkgfCA0ICsrKy0KLSAuLi4vdGVzdF9yc3QvdGVzdF9k aXJlY3RpdmVzL3Rlc3Rfc2lkZWJhcnMucHkgICAgICAgICAgICAgfCA0ICsrKy0KLSB0ZXN0L3Rl c3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF90YWJsZXMucHkgfCA0ICsr Ky0KLSAuLi4vdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfdGFyZ2V0X25vdGVzLnB5ICAg ICAgICAgfCA0ICsrKy0KLSAuLi4vdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfdGVzdF9k aXJlY3RpdmVzLnB5ICAgICAgfCA0ICsrKy0KLSB0ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90 ZXN0X2RpcmVjdGl2ZXMvdGVzdF90aXRsZS5weSAgfCA0ICsrKy0KLSB0ZXN0L3Rlc3RfcGFyc2Vy cy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF90b3BpY3MucHkgfCA0ICsrKy0KLSAuLi4v dGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3VuaWNvZGUucHkgfCAz ICsrLQotIC4uLi90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfdW5r bm93bi5weSB8IDQgKysrLQotIHRlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZG9jdGVz dF9ibG9ja3MucHkgICAgICAgICB8IDQgKysrLQotIHRlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0 L3Rlc3RfZWFzdF9hc2lhbl90ZXh0LnB5ICAgICAgICB8IDUgKysrKy0KLSB0ZXN0L3Rlc3RfcGFy c2Vycy90ZXN0X3JzdC90ZXN0X2VudW1lcmF0ZWRfbGlzdHMucHkgICAgICAgfCA0ICsrKy0KLSB0 ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2ZpZWxkX2xpc3RzLnB5ICAgICAgICAgICAg fCA0ICsrKy0KLSB0ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2Zvb3Rub3Rlcy5weSAg ICAgICAgICAgICAgfCA0ICsrKy0KLSB0ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2lu bGluZV9tYXJrdXAucHkgICAgICAgICAgfCA0ICsrKy0KLSB0ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0 X3JzdC90ZXN0X2ludGVycHJldGVkLnB5ICAgICAgICAgICAgfCA0ICsrKy0KLSB0ZXN0L3Rlc3Rf cGFyc2Vycy90ZXN0X3JzdC90ZXN0X2ludGVycHJldGVkX2ZyLnB5ICAgICAgICAgfCA0ICsrKy0K LSB0ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2xpbmVfYmxvY2tzLnB5ICAgICAgICAg ICAgfCA0ICsrKy0KLSB0ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2xpdGVyYWxfYmxv Y2tzLnB5ICAgICAgICAgfCA0ICsrKy0KLSB0ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0 X29wdGlvbl9saXN0cy5weSAgICAgICAgICAgfCA0ICsrKy0KLSB0ZXN0L3Rlc3RfcGFyc2Vycy90 ZXN0X3JzdC90ZXN0X291dGRlbnRpbmcucHkgICAgICAgICAgICAgfCA0ICsrKy0KLSB0ZXN0L3Rl c3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X3BhcmFncmFwaHMucHkgICAgICAgICAgICAgfCA0ICsr Ky0KLSB0ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X3NlY3Rpb25faGVhZGVycy5weSAg ICAgICAgfCA4ICsrKysrKy0tCi0gdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9zdWJz dGl0dXRpb25zLnB5ICAgICAgICAgIHwgNCArKystCi0gdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9y c3QvdGVzdF90YWJsZXMucHkgICAgICAgICAgICAgICAgIHwgNSArKysrLQotIHRlc3QvdGVzdF9w YXJzZXJzL3Rlc3RfcnN0L3Rlc3RfdGFyZ2V0cy5weSAgICAgICAgICAgICAgICB8IDQgKysrLQot IHRlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfdHJhbnNpdGlvbnMucHkgICAgICAgICAg ICB8IDQgKysrLQotIHRlc3QvdGVzdF9yZWFkZXJzL3Rlc3RfZ2V0X3JlYWRlcl9jbGFzcy5weSAg ICAgICAgICAgICAgICB8IDUgKysrLS0KLSB0ZXN0L3Rlc3RfcmVhZGVycy90ZXN0X3BlcC90ZXN0 X2lubGluZV9tYXJrdXAucHkgICAgICAgICAgfCAzICsrLQotIHRlc3QvdGVzdF9yZWFkZXJzL3Rl c3RfcGVwL3Rlc3RfcmZjMjgyMi5weSAgICAgICAgICAgICAgICB8IDQgKysrLQotIHRlc3QvdGVz dF90cmFuc2Zvcm1zL3Rlc3RfX19pbml0X18ucHkgICAgICAgICAgICAgICAgICAgICB8IDYgKysr Ky0tCi0gdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9jbGFzcy5weSAgICAgICAgICAgICAgICAg ICAgICAgIHwgMyArKy0KLSB0ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X2NvbnRlbnRzLnB5ICAg ICAgICAgICAgICAgICAgICAgfCAzICsrLQotIHRlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfZG9j aW5mby5weSAgICAgICAgICAgICAgICAgICAgICB8IDMgKystCi0gdGVzdC90ZXN0X3RyYW5zZm9y bXMvdGVzdF9kb2N0aXRsZS5weSAgICAgICAgICAgICAgICAgICAgIHwgNCArKystCi0gdGVzdC90 ZXN0X3RyYW5zZm9ybXMvdGVzdF9leHBvc2VfaW50ZXJuYWxzLnB5ICAgICAgICAgICAgIHwgNCAr KystCi0gdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9maWx0ZXIucHkgICAgICAgICAgICAgICAg ICAgICAgIHwgMyArKy0KLSB0ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X2Zvb3Rub3Rlcy5weSAg ICAgICAgICAgICAgICAgICAgfCAzICsrLQotIHRlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfaHlw ZXJsaW5rcy5weSAgICAgICAgICAgICAgICAgICB8IDQgKystLQotIHRlc3QvdGVzdF90cmFuc2Zv cm1zL3Rlc3RfbWVzc2FnZXMucHkgICAgICAgICAgICAgICAgICAgICB8IDMgKystCi0gdGVzdC90 ZXN0X3RyYW5zZm9ybXMvdGVzdF9wZXBzLnB5ICAgICAgICAgICAgICAgICAgICAgICAgIHwgMyAr Ky0KLSB0ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X3NlY3RudW0ucHkgICAgICAgICAgICAgICAg ICAgICAgfCAzICsrLQotIHRlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3Rfc21hcnRxdW90ZXMucHkg ICAgICAgICAgICAgICAgICB8IDUgKysrLS0KLSB0ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X3N0 cmlwX2NvbW1lbnRzLnB5ICAgICAgICAgICAgICAgfCAzICsrLQotIHRlc3QvdGVzdF90cmFuc2Zv cm1zL3Rlc3Rfc3RyaXBfZWxlbWVudHNfd2l0aF9jbGFzcy5weSAgICB8IDMgKystCi0gdGVzdC90 ZXN0X3RyYW5zZm9ybXMvdGVzdF9zdWJzdGl0dXRpb25zLnB5ICAgICAgICAgICAgICAgIHwgMyAr Ky0KLSB0ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X3RhcmdldF9ub3Rlcy5weSAgICAgICAgICAg ICAgICAgfCAzICsrLQotIHRlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfdHJhbnNpdGlvbnMucHkg ICAgICAgICAgICAgICAgICB8IDQgKysrLQotIHRlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3Rfd3Jp dGVyX2F1eC5weSAgICAgICAgICAgICAgICAgICB8IDMgKystCi0gdGVzdC90ZXN0X3dyaXRlcnMv dGVzdF9kb2N1dGlsc194bWwucHkgICAgICAgICAgICAgICAgICAgIHwgMyArKy0KLSB0ZXN0L3Rl c3Rfd3JpdGVycy90ZXN0X2dldF93cml0ZXJfY2xhc3MucHkgICAgICAgICAgICAgICAgfCA0ICsr Ky0KLSB0ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X2h0bWw0Y3NzMV9taXNjLnB5ICAgICAgICAgICAg ICAgICAgfCA3ICsrKysrLS0KLSB0ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X2h0bWw0Y3NzMV9wYXJ0 cy5weSAgICAgICAgICAgICAgICAgfCA0ICsrKy0KLSB0ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X2h0 bWw0Y3NzMV90ZW1wbGF0ZS5weSAgICAgICAgICAgICAgfCAzICsrLQotIHRlc3QvdGVzdF93cml0 ZXJzL3Rlc3RfaHRtbDVfcG9seWdsb3RfbWlzYy5weSAgICAgICAgICAgICB8IDcgKysrKystLQot IHRlc3QvdGVzdF93cml0ZXJzL3Rlc3RfaHRtbDVfcG9seWdsb3RfcGFydHMucHkgICAgICAgICAg ICB8IDMgKystCi0gdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9sYXRleDJlLnB5ICAgICAgICAgICAg ICAgICAgICAgICAgIHwgNSArKysrLQotIHRlc3QvdGVzdF93cml0ZXJzL3Rlc3RfbWFucGFnZS5w eSAgICAgICAgICAgICAgICAgICAgICAgICB8IDQgKysrLQotIHRlc3QvdGVzdF93cml0ZXJzL3Rl c3RfbnVsbC5weSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQgKysrLQotIHRlc3QvdGVz dF93cml0ZXJzL3Rlc3Rfb2R0LnB5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMgKyst Ci0gdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9wc2V1ZG94bWwucHkgICAgICAgICAgICAgICAgICAg ICAgIHwgNCArKystCi0gdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9zNS5weSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgMyArKy0KLSA5NiBmaWxlcyBjaGFuZ2VkLCAyNTMgaW5zZXJ0aW9u cygrKSwgMTAzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvd3JpdGVycy9v ZGZfb2R0L19faW5pdF9fLnB5IGIvZG9jdXRpbHMvd3JpdGVycy9vZGZfb2R0L19faW5pdF9fLnB5 Ci1pbmRleCA1ZjYyNjA1Li5jMGY0M2E1IDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvd3JpdGVycy9v ZGZfb2R0L19faW5pdF9fLnB5Ci0rKysgYi9kb2N1dGlscy93cml0ZXJzL29kZl9vZHQvX19pbml0 X18ucHkKLUBAIC02LDYgKzYsNyBAQAotIE9wZW4gRG9jdW1lbnQgRm9ybWF0IChPREYpIFdyaXRl ci4KLSAKLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAot IF9fZG9jZm9ybWF0X18gPSAncmVTdHJ1Y3R1cmVkVGV4dCcKLSAKLUBAIC03MSw3ICs3Miw3IEBA IHRyeToKLSAgICAgICAgIGZyb20gLnB5Z21lbnRzZm9ybWF0dGVyIGltcG9ydCBPZHRQeWdtZW50 c1Byb2dGb3JtYXR0ZXIsIFwKLSAgICAgICAgICAgICBPZHRQeWdtZW50c0xhVGVYRm9ybWF0dGVy Ci0gICAgIGVsc2U6Ci0tICAgICAgICBmcm9tIHB5Z21lbnRzZm9ybWF0dGVyIGltcG9ydCBPZHRQ eWdtZW50c1Byb2dGb3JtYXR0ZXIsIFwKLSsgICAgICAgIGZyb20gLnB5Z21lbnRzZm9ybWF0dGVy IGltcG9ydCBPZHRQeWdtZW50c1Byb2dGb3JtYXR0ZXIsIFwKLSAgICAgICAgICAgICBPZHRQeWdt ZW50c0xhVGVYRm9ybWF0dGVyCi0gZXhjZXB0IChJbXBvcnRFcnJvciwgU3ludGF4RXJyb3IpOgot ICAgICBweWdtZW50cyA9IE5vbmUKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0 X2dldF9wYXJzZXJfY2xhc3MucHkgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X2dldF9wYXJzZXJf Y2xhc3MucHkKLWluZGV4IDRkZTA1Y2MuLmNhODA5ZDAgMTAwNjQ0Ci0tLS0gYS90ZXN0L3Rlc3Rf cGFyc2Vycy90ZXN0X2dldF9wYXJzZXJfY2xhc3MucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJz L3Rlc3RfZ2V0X3BhcnNlcl9jbGFzcy5weQotQEAgLTgsOCArOCw5IEBACi0gIiIiCi0gdGVzdCBn ZXRfcGFyc2VyX2NsYXNzCi0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9p bXBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0rZnJv bSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gZnJvbSBkb2N1dGlscy5wYXJzZXJzIGlt cG9ydCBnZXRfcGFyc2VyX2NsYXNzCi0gCi0gY2xhc3MgR2V0UGFyc2VyQ2xhc3NUZXN0Q2FzZShE b2N1dGlsc1Rlc3RTdXBwb3J0LlN0YW5kYXJkVGVzdENhc2UpOgotZGlmZiAtLWdpdCBhL3Rlc3Qv dGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfU2ltcGxlVGFibGVQYXJzZXIucHkgYi90ZXN0L3Rl c3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X1NpbXBsZVRhYmxlUGFyc2VyLnB5Ci1pbmRleCA4NjRj NTQ1Li4yOTQyZTAxIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVz dF9TaW1wbGVUYWJsZVBhcnNlci5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3Qv dGVzdF9TaW1wbGVUYWJsZVBhcnNlci5weQotQEAgLTgsOCArOCw5IEBACi0gIiIiCi0gVGVzdHMg Zm9yIHN0YXRlcy5weS4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2lt cG9ydAotIAotLWZyb20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLStmcm9t IC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLSBkZWYgc3VpdGUoKToKLSAgICAgcyA9 IERvY3V0aWxzVGVzdFN1cHBvcnQuU2ltcGxlVGFibGVQYXJzZXJUZXN0U3VpdGUoKQotZGlmZiAt LWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfVGFibGVQYXJzZXIucHkgYi90 ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X1RhYmxlUGFyc2VyLnB5Ci1pbmRleCAxODll ZjJhLi5lY2FmZThmIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVz dF9UYWJsZVBhcnNlci5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9U YWJsZVBhcnNlci5weQotQEAgLTgsOCArOCw5IEBACi0gIiIiCi0gVGVzdHMgZm9yIHN0YXRlcy5w eS4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAotLWZy b20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLStmcm9tIC4gaW1wb3J0IERv Y3V0aWxzVGVzdFN1cHBvcnQKLSAKLSBkZWYgc3VpdGUoKToKLSAgICAgcyA9IERvY3V0aWxzVGVz dFN1cHBvcnQuR3JpZFRhYmxlUGFyc2VyVGVzdFN1aXRlKCkKLWRpZmYgLS1naXQgYS90ZXN0L3Rl c3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2Jsb2NrX3F1b3Rlcy5weSBiL3Rlc3QvdGVzdF9wYXJz ZXJzL3Rlc3RfcnN0L3Rlc3RfYmxvY2tfcXVvdGVzLnB5Ci1pbmRleCAxNzFjNzg0Li4yYWVlM2M2 IDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9ibG9ja19xdW90 ZXMucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfYmxvY2tfcXVvdGVz LnB5Ci1AQCAtNyw4ICs3LDkgQEAKLSAiIiIKLSBUZXN0cyBmb3Igc3RhdGVzLnB5LgotICIiIgot K2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0tZnJvbSBfX2luaXRf XyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0 U3VwcG9ydAotIAotIGRlZiBzdWl0ZSgpOgotICAgICBzID0gRG9jdXRpbHNUZXN0U3VwcG9ydC5Q YXJzZXJUZXN0U3VpdGUoKQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0 L3Rlc3RfYnVsbGV0X2xpc3RzLnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9i dWxsZXRfbGlzdHMucHkKLWluZGV4IDI0NmNkYmQuLjRmZTk2M2QgMTAwNzU1Ci0tLS0gYS90ZXN0 L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2J1bGxldF9saXN0cy5weQotKysrIGIvdGVzdC90 ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9idWxsZXRfbGlzdHMucHkKLUBAIC03LDggKzcsOSBA QAotICIiIgotIFRlc3RzIGZvciBzdGF0ZXMucHkuCi0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGlt cG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rl c3RTdXBwb3J0Ci0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0gZGVmIHN1 aXRlKCk6Ci0gICAgIHMgPSBEb2N1dGlsc1Rlc3RTdXBwb3J0LlBhcnNlclRlc3RTdWl0ZSgpCi1k aWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9jaGFyYWN0ZXJfbGV2 ZWxfaW5saW5lX21hcmt1cC5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfY2hh cmFjdGVyX2xldmVsX2lubGluZV9tYXJrdXAucHkKLWluZGV4IGIxZDE4ODUuLjZiNDJlZDYgMTAw NjQ0Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2NoYXJhY3Rlcl9sZXZl bF9pbmxpbmVfbWFya3VwLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0 X2NoYXJhY3Rlcl9sZXZlbF9pbmxpbmVfbWFya3VwLnB5Ci1AQCAtMTEsOCArMTEsOSBAQCB3aXRo IHRoZSAiY2hhcmFjdGVyLWxldmVsLWlubGluZS1tYXJrdXAiIHNldHRpbmcuCi0gCi0gRXhwZXJp bWVudGFsLgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0g Ci0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotK2Zyb20gLiBpbXBv cnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotIGRlZiBzdWl0ZSgpOgotICAgICBzID0gRG9jdXRp bHNUZXN0U3VwcG9ydC5QYXJzZXJUZXN0U3VpdGUoc3VpdGVfc2V0dGluZ3M9eydjaGFyYWN0ZXJf bGV2ZWxfaW5saW5lX21hcmt1cCc6IFRydWV9KQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJz ZXJzL3Rlc3RfcnN0L3Rlc3RfY2l0YXRpb25zLnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9y c3QvdGVzdF9jaXRhdGlvbnMucHkKLWluZGV4IDAzMzcwYTYuLmVhZDJiOTggMTAwNzU1Ci0tLS0g YS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2NpdGF0aW9ucy5weQotKysrIGIvdGVz dC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9jaXRhdGlvbnMucHkKLUBAIC03LDggKzcsOSBA QAotICIiIgotIFRlc3RzIGZvciBzdGF0ZXMucHkuCi0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGlt cG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rl c3RTdXBwb3J0Ci0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0gZGVmIHN1 aXRlKCk6Ci0gICAgIHMgPSBEb2N1dGlsc1Rlc3RTdXBwb3J0LlBhcnNlclRlc3RTdWl0ZSgpCi1k aWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9jb21tZW50cy5weSBi L3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfY29tbWVudHMucHkKLWluZGV4IDM0ZjYy ZTEuLjEwY2NhNzggMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0 X2NvbW1lbnRzLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2NvbW1l bnRzLnB5Ci1AQCAtNyw4ICs3LDkgQEAKLSAiIiIKLSBUZXN0cyBmb3Igc3RhdGVzLnB5LgotICIi IgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0tZnJvbSBfX2lu aXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNU ZXN0U3VwcG9ydAotIAotIGRlZiBzdWl0ZSgpOgotICAgICBzID0gRG9jdXRpbHNUZXN0U3VwcG9y dC5QYXJzZXJUZXN0U3VpdGUoKQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3Rf cnN0L3Rlc3RfZGVmaW5pdGlvbl9saXN0cy5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0 L3Rlc3RfZGVmaW5pdGlvbl9saXN0cy5weQotaW5kZXggMWE4MDM2MC4uNDBjNjMzYyAxMDA3NTUK LS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGVmaW5pdGlvbl9saXN0cy5w eQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kZWZpbml0aW9uX2xpc3Rz LnB5Ci1AQCAtNyw4ICs3LDkgQEAKLSAiIiIKLSBUZXN0cyBmb3Igc3RhdGVzLnB5LgotICIiIgot K2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0tZnJvbSBfX2luaXRf XyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0 U3VwcG9ydAotIAotIGRlZiBzdWl0ZSgpOgotICAgICBzID0gRG9jdXRpbHNUZXN0U3VwcG9ydC5Q YXJzZXJUZXN0U3VpdGUoKQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0 L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2FkbW9uaXRpb25zLnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMv dGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfYWRtb25pdGlvbnMucHkKLWluZGV4IGZhZjVm NjYuLjM3MjQxMzEgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0 X2RpcmVjdGl2ZXMvdGVzdF9hZG1vbml0aW9ucy5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMv dGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfYWRtb25pdGlvbnMucHkKLUBAIC03LDggKzcs OSBAQAotICIiIgotIFRlc3RzIGZvciBhZG1vbml0aW9ucy5weSBkaXJlY3RpdmVzLgotICIiIgot K2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0tZnJvbSBfX2luaXRf XyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0 U3VwcG9ydAotIAotIGRlZiBzdWl0ZSgpOgotICAgICBzID0gRG9jdXRpbHNUZXN0U3VwcG9ydC5Q YXJzZXJUZXN0U3VpdGUoKQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0 L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2Jsb2NrX3F1b3Rlcy5weSBiL3Rlc3QvdGVzdF9wYXJzZXJz L3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2Jsb2NrX3F1b3Rlcy5weQotaW5kZXggOTNi YWU5ZS4uODdhOTlkNyAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rl c3RfZGlyZWN0aXZlcy90ZXN0X2Jsb2NrX3F1b3Rlcy5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNl cnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfYmxvY2tfcXVvdGVzLnB5Ci1AQCAtOCw4 ICs4LDkgQEAKLSBUZXN0cyBmb3IgdGhlIGJsb2NrIHF1b3RlIGRpcmVjdGl2ZXMgImVwaWdyYXBo IiwgImhpZ2hsaWdodHMiLCBhbmQKLSAicHVsbC1xdW90ZSIuCi0gIiIiCi0rZnJvbSBfX2Z1dHVy ZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1 dGlsc1Rlc3RTdXBwb3J0Ci0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0g ZGVmIHN1aXRlKCk6Ci0gICAgIHMgPSBEb2N1dGlsc1Rlc3RTdXBwb3J0LlBhcnNlclRlc3RTdWl0 ZSgpCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3Rp dmVzL3Rlc3RfY2xhc3MucHkgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVj dGl2ZXMvdGVzdF9jbGFzcy5weQotaW5kZXggNTQ0OTQ2ZC4uZDY1YzhiNCAxMDA3NTUKLS0tLSBh L3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2NsYXNzLnB5 Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9j bGFzcy5weQotQEAgLTcsOCArNyw5IEBACi0gIiIiCi0gVGVzdHMgZm9yIHRoZSAnY2xhc3MnIGRp cmVjdGl2ZS4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAot IAotLWZyb20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLStmcm9tIC4gaW1w b3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLSBkZWYgc3VpdGUoKToKLSAgICAgcyA9IERvY3V0 aWxzVGVzdFN1cHBvcnQuUGFyc2VyVGVzdFN1aXRlKCkKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3Rf cGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9jb2RlLnB5IGIvdGVzdC90ZXN0 X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfY29kZS5weQotaW5kZXggNTFj MTU1OC4uYmY3ZWJiYSAxMDA2NDQKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rl c3RfZGlyZWN0aXZlcy90ZXN0X2NvZGUucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3Rf cnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2NvZGUucHkKLUBAIC03LDggKzcsOSBAQAotICIiIgot IFRlc3QgdGhlICdjb2RlJyBkaXJlY3RpdmUgaW4gcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy9ib2R5 LnB5LgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0t ZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotK2Zyb20gLiBpbXBvcnQg RG9jdXRpbHNUZXN0U3VwcG9ydAotIGZyb20gZG9jdXRpbHMudXRpbHMuY29kZV9hbmFseXplciBp bXBvcnQgd2l0aF9weWdtZW50cwotIAotIGRlZiBzdWl0ZSgpOgotZGlmZiAtLWdpdCBhL3Rlc3Qv dGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2NvZGVfbG9uZy5weSBi L3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2NvZGVfbG9u Zy5weQotaW5kZXggNzRmMTZkNS4uMWE1NWM5NyAxMDA2NDQKLS0tLSBhL3Rlc3QvdGVzdF9wYXJz ZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2NvZGVfbG9uZy5weQotKysrIGIvdGVz dC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfY29kZV9sb25nLnB5 Ci1AQCAtNyw4ICs3LDkgQEAKLSAiIiIKLSBUZXN0IHRoZSAnY29kZScgZGlyZWN0aXZlIGluIGJv ZHkucHkgd2l0aCBzeW50YXhfaGlnaGxpZ2h0ID0gJ2xvbmcnLgotICIiIgotK2Zyb20gX19mdXR1 cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9j dXRpbHNUZXN0U3VwcG9ydAotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIGZy b20gZG9jdXRpbHMudXRpbHMuY29kZV9hbmFseXplciBpbXBvcnQgd2l0aF9weWdtZW50cwotIAot IGRlZiBzdWl0ZSgpOgotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rl c3RfZGlyZWN0aXZlcy90ZXN0X2NvZGVfbm9uZS5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3Rf cnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2NvZGVfbm9uZS5weQotaW5kZXggNTE1NzcyYy4uMjNh ZTNkMiAxMDA2NDQKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0 aXZlcy90ZXN0X2NvZGVfbm9uZS5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3Qv dGVzdF9kaXJlY3RpdmVzL3Rlc3RfY29kZV9ub25lLnB5Ci1AQCAtNyw4ICs3LDkgQEAKLSAiIiIK LSBUZXN0IHRoZSAnY29kZScgZGlyZWN0aXZlIGluIGJvZHkucHkgd2l0aCBzeW50YXhfaGlnaGxp Z2h0ID0gJ25vbmUnLgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1w b3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotK2Zyb20g LiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotIGRlZiBzdWl0ZSgpOgotICAgICBzID0g RG9jdXRpbHNUZXN0U3VwcG9ydC5QYXJzZXJUZXN0U3VpdGUoc3VpdGVfc2V0dGluZ3M9eydzeW50 YXhfaGlnaGxpZ2h0Jzonbm9uZSd9KQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rl c3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2NvbXBvdW5kLnB5IGIvdGVzdC90ZXN0X3BhcnNl cnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfY29tcG91bmQucHkKLWluZGV4IGMwZWY0 YjguLjZiYmFiOWMgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0 X2RpcmVjdGl2ZXMvdGVzdF9jb21wb3VuZC5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVz dF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfY29tcG91bmQucHkKLUBAIC03LDggKzcsOSBAQAot ICIiIgotIFRlc3RzIGZvciB0aGUgJ2NvbXBvdW5kJyBkaXJlY3RpdmUgZnJvbSBib2R5LnB5Lgot ICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0tZnJvbSBf X2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotK2Zyb20gLiBpbXBvcnQgRG9jdXRp bHNUZXN0U3VwcG9ydAotIAotIGRlZiBzdWl0ZSgpOgotICAgICBzID0gRG9jdXRpbHNUZXN0U3Vw cG9ydC5QYXJzZXJUZXN0U3VpdGUoKQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rl c3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2NvbnRhaW5lci5weSBiL3Rlc3QvdGVzdF9wYXJz ZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2NvbnRhaW5lci5weQotaW5kZXggNmI3 YjAyMi4uOWVjNWFmYyAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rl c3RfZGlyZWN0aXZlcy90ZXN0X2NvbnRhaW5lci5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMv dGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfY29udGFpbmVyLnB5Ci1AQCAtNyw4ICs3LDkg QEAKLSAiIiIKLSBUZXN0cyBmb3IgdGhlICdjb250YWluZXInIGRpcmVjdGl2ZSBmcm9tIGJvZHku cHkuCi0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSAKLS1m cm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0rZnJvbSAuIGltcG9ydCBE b2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0gZGVmIHN1aXRlKCk6Ci0gICAgIHMgPSBEb2N1dGlsc1Rl c3RTdXBwb3J0LlBhcnNlclRlc3RTdWl0ZSgpCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3BhcnNl cnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfY29udGVudHMucHkgYi90ZXN0L3Rlc3Rf cGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9jb250ZW50cy5weQotaW5kZXgg ZTFlZjQ3Zi4uYTA3ZGRkMiAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0 L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2NvbnRlbnRzLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vy cy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9jb250ZW50cy5weQotQEAgLTcsOCArNyw5 IEBACi0gIiIiCi0gVGVzdHMgZm9yIHBhcnRzLnB5IGNvbnRlbnRzIGRpcmVjdGl2ZS4KLSAiIiIK LStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAotLWZyb20gX19pbml0 X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLStmcm9tIC4gaW1wb3J0IERvY3V0aWxzVGVz dFN1cHBvcnQKLSAKLSBkZWYgc3VpdGUoKToKLSAgICAgcyA9IERvY3V0aWxzVGVzdFN1cHBvcnQu UGFyc2VyVGVzdFN1aXRlKCkKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3Jz dC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9kYXRlLnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9y c3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfZGF0ZS5weQotaW5kZXggODdkYzE4Ni4uMWYzMDEyOCAx MDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90 ZXN0X2RhdGUucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0 aXZlcy90ZXN0X2RhdGUucHkKLUBAIC03LDggKzcsOSBAQAotICIiIgotIFRlc3RzIGZvciB0aGUg bWlzYy5weSAiZGF0ZSIgZGlyZWN0aXZlLgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQg YWJzb2x1dGVfaW1wb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3Vw cG9ydAotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIGltcG9ydCB0aW1lCi0g Ci0gZnJvbSBkb2N1dGlscy51dGlscy5lcnJvcl9yZXBvcnRpbmcgaW1wb3J0IGxvY2FsZV9lbmNv ZGluZwotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0 aXZlcy90ZXN0X2RlY29yYXRpb25zLnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVz dF9kaXJlY3RpdmVzL3Rlc3RfZGVjb3JhdGlvbnMucHkKLWluZGV4IGI2NmY2OGQuLjYzYmUxMzEg MTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMv dGVzdF9kZWNvcmF0aW9ucy5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVz dF9kaXJlY3RpdmVzL3Rlc3RfZGVjb3JhdGlvbnMucHkKLUBAIC03LDggKzcsMTAgQEAKLSAiIiIK LSBUZXN0cyBmb3IgdGhlICJoZWFkZXIiICYgImZvb3RlciIgZGlyZWN0aXZlcy4KLSAiIiIKLStm cm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotKwotK2Zyb20gLiBpbXBvcnQg RG9jdXRpbHNUZXN0U3VwcG9ydAotIAotLWZyb20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVz dFN1cHBvcnQKLSAKLSBkZWYgc3VpdGUoKToKLSAgICAgcyA9IERvY3V0aWxzVGVzdFN1cHBvcnQu UGFyc2VyVGVzdFN1aXRlKCkKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3Jz dC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9kZWZhdWx0X3JvbGUucHkgYi90ZXN0L3Rlc3RfcGFyc2Vy cy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9kZWZhdWx0X3JvbGUucHkKLWluZGV4IDE1 YjBmNTYuLmY4MWMzMGIgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90 ZXN0X2RpcmVjdGl2ZXMvdGVzdF9kZWZhdWx0X3JvbGUucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJz ZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2RlZmF1bHRfcm9sZS5weQotQEAgLTcs OCArNyw5IEBACi0gIiIiCi0gVGVzdHMgZm9yIG1pc2MucHkgImRlZmF1bHQtcm9sZSIgZGlyZWN0 aXZlLgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0t ZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotK2Zyb20gLiBpbXBvcnQg RG9jdXRpbHNUZXN0U3VwcG9ydAotIAotIAotIGRlZiBzdWl0ZSgpOgotZGlmZiAtLWdpdCBhL3Rl c3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2ZpZ3VyZXMucHkg Yi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9maWd1cmVz LnB5Ci1pbmRleCBkZTU0MTkwLi4wOWNlZDNmIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3BhcnNl cnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfZmlndXJlcy5weQotKysrIGIvdGVzdC90 ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfZmlndXJlcy5weQotQEAg LTcsOCArNywxMCBAQAotICIiIgotIFRlc3RzIGZvciBpbWFnZXMucHkgZmlndXJlIGRpcmVjdGl2 ZXMuCi0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSsKLStm cm9tIC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9y dCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0gZGVmIHN1aXRlKCk6Ci0gICAgIHMgPSBEb2N1dGls c1Rlc3RTdXBwb3J0LlBhcnNlclRlc3RTdWl0ZSgpCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3Bh cnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfaW1hZ2VzLnB5IGIvdGVzdC90ZXN0 X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfaW1hZ2VzLnB5Ci1pbmRleCBj NTI3OTNjLi5lNzhjYWVkIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3Qv dGVzdF9kaXJlY3RpdmVzL3Rlc3RfaW1hZ2VzLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90 ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9pbWFnZXMucHkKLUBAIC03LDExICs3LDEzIEBA Ci0gIiIiCi0gVGVzdHMgZm9yIGltYWdlcy5weSBpbWFnZSBkaXJlY3RpdmVzLgotICIiIgotK2Zy b20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBp bXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3Vw cG9ydAotIAotIGZyb20gZG9jdXRpbHMubm9kZXMgaW1wb3J0IHJlcHJ1bmljb2RlCi0gCi0rCi0g ZGVmIHN1aXRlKCk6Ci0gICAgIHMgPSBEb2N1dGlsc1Rlc3RTdXBwb3J0LlBhcnNlclRlc3RTdWl0 ZSgpCi0gICAgIHMuZ2VuZXJhdGVUZXN0cyh0b3Rlc3QpCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0 X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfaW5jbHVkZS5weSBiL3Rlc3Qv dGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2luY2x1ZGUucHkKLWlu ZGV4IDZlOWRjODQuLmQ4NDgyNjIgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0 X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9pbmNsdWRlLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFy c2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9pbmNsdWRlLnB5Ci1AQCAtNywxMCAr NywxMSBAQAotICIiIgotIFRlc3RzIGZvciBtaXNjLnB5ICJpbmNsdWRlIiBkaXJlY3RpdmUuCi0g IiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSAKLSBpbXBvcnQg b3MucGF0aAotIGltcG9ydCBzeXMKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RT dXBwb3J0Ci0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gZnJvbSBkb2N1dGls cy5wYXJzZXJzLnJzdCBpbXBvcnQgc3RhdGVzCi0gZnJvbSBkb2N1dGlscy51dGlscy5jb2RlX2Fu YWx5emVyIGltcG9ydCB3aXRoX3B5Z21lbnRzCi0gCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3Bh cnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfbGluZV9ibG9ja3MucHkgYi90ZXN0 L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9saW5lX2Jsb2Nrcy5w eQotaW5kZXggMGZkZmFiYS4uZDZiZjMxYiAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJz L3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2xpbmVfYmxvY2tzLnB5Ci0rKysgYi90ZXN0 L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9saW5lX2Jsb2Nrcy5w eQotQEAgLTcsOCArNywxMCBAQAotICIiIgotIFRlc3RzIGZvciB0aGUgYm9keS5weSAnbGluZS1i bG9jaycgZGlyZWN0aXZlLgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVf aW1wb3J0Ci0rCi0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0tZnJvbSBf X2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotIGRlZiBzdWl0ZSgpOgotICAg ICBzID0gRG9jdXRpbHNUZXN0U3VwcG9ydC5QYXJzZXJUZXN0U3VpdGUoKQotZGlmZiAtLWdpdCBh L3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X21hdGgucHkg Yi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9tYXRoLnB5 Ci1pbmRleCBlOGRmZTI3Li4yYmFjMDc3IDEwMDY0NAotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMv dGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfbWF0aC5weQotKysrIGIvdGVzdC90ZXN0X3Bh cnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfbWF0aC5weQotQEAgLTcsOCArNywx MCBAQAotICIiIgotIFRlc3RzIGZvciB0aGUgJ21hdGgnIGRpcmVjdGl2ZS4KLSAiIiIKLStmcm9t IF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotKwotK2Zyb20gLiBpbXBvcnQgRG9j dXRpbHNUZXN0U3VwcG9ydAotIAotLWZyb20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1 cHBvcnQKLSAKLSBkZWYgc3VpdGUoKToKLSAgICAgcyA9IERvY3V0aWxzVGVzdFN1cHBvcnQuUGFy c2VyVGVzdFN1aXRlKCkKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90 ZXN0X2RpcmVjdGl2ZXMvdGVzdF9tZXRhLnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3Qv dGVzdF9kaXJlY3RpdmVzL3Rlc3RfbWV0YS5weQotaW5kZXggYmQ3OTA2ZC4uOGIxNWRkZSAxMDA3 NTUKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0 X21ldGEucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZl cy90ZXN0X21ldGEucHkKLUBAIC03LDggKzcsMTAgQEAKLSAiIiIKLSBUZXN0cyBmb3IgaHRtbCBt ZXRhIGRpcmVjdGl2ZXMuCi0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9p bXBvcnQKLSsKLStmcm9tIC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLS1mcm9tIF9f aW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0gZGVmIHN1aXRlKCk6Ci0gICAg IHMgPSBEb2N1dGlsc1Rlc3RTdXBwb3J0LlBhcnNlclRlc3RTdWl0ZSgpCi1kaWZmIC0tZ2l0IGEv dGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfcGFyc2VkX2xp dGVyYWxzLnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rl c3RfcGFyc2VkX2xpdGVyYWxzLnB5Ci1pbmRleCA2YmYyY2IxLi40ZWEwOWUxIDEwMDc1NQotLS0t IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfcGFyc2Vk X2xpdGVyYWxzLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVj dGl2ZXMvdGVzdF9wYXJzZWRfbGl0ZXJhbHMucHkKLUBAIC03LDggKzcsMTAgQEAKLSAiIiIKLSBU ZXN0cyBmb3IgdGhlIGJvZHkucHkgJ3BhcnNlZC1saXRlcmFsJyBkaXJlY3RpdmUuCi0gIiIiCi0r ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSsKLStmcm9tIC4gaW1wb3J0 IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rl c3RTdXBwb3J0Ci0gCi0gZGVmIHN1aXRlKCk6Ci0gICAgIHMgPSBEb2N1dGlsc1Rlc3RTdXBwb3J0 LlBhcnNlclRlc3RTdWl0ZSgpCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9y c3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfcmF3LnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9y c3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfcmF3LnB5Ci1pbmRleCBmMzY2ZjkyLi4yZGE5NjJhIDEw MDc1NQotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rl c3RfcmF3LnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2 ZXMvdGVzdF9yYXcucHkKLUBAIC03LDEwICs3LDEzIEBACi0gIiIiCi0gVGVzdHMgZm9yIG1pc2Mu cHkgInJhdyIgZGlyZWN0aXZlLgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1 dGVfaW1wb3J0Ci0gCi0gaW1wb3J0IG9zLnBhdGgKLSBpbXBvcnQgc3lzCi0tZnJvbSBfX2luaXRf XyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotKwotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNU ZXN0U3VwcG9ydAotKwotIAotIGRlZiBzdWl0ZSgpOgotICAgICBzID0gRG9jdXRpbHNUZXN0U3Vw cG9ydC5QYXJzZXJUZXN0U3VpdGUoKQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rl c3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3JlcGxhY2UucHkgYi90ZXN0L3Rlc3RfcGFyc2Vy cy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9yZXBsYWNlLnB5Ci1pbmRleCBkMmQzZDhh Li43NWU1ODBiIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9k aXJlY3RpdmVzL3Rlc3RfcmVwbGFjZS5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9y c3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfcmVwbGFjZS5weQotQEAgLTcsOCArNyw5IEBACi0gIiIi Ci0gVGVzdHMgZm9yIG1pc2MucHkgInJlcGxhY2UiIGRpcmVjdGl2ZS4KLSAiIiIKLStmcm9tIF9f ZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAotLWZyb20gX19pbml0X18gaW1wb3J0 IERvY3V0aWxzVGVzdFN1cHBvcnQKLStmcm9tIC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQK LSAKLSAKLSBkZWYgc3VpdGUoKToKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0 X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9yZXBsYWNlX2ZyLnB5IGIvdGVzdC90ZXN0X3BhcnNl cnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfcmVwbGFjZV9mci5weQotaW5kZXggNjg0 N2MxYy4uNzhlNGE0NSAxMDA2NDQKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rl c3RfZGlyZWN0aXZlcy90ZXN0X3JlcGxhY2VfZnIucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJz L3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3JlcGxhY2VfZnIucHkKLUBAIC04LDggKzgs OSBAQAotIFRlc3RzIGZvciBtaXNjLnB5ICJyZXBsYWNlIiBkaXJlY3RpdmUuCi0gVGVzdCBpbiBm cmVuY2ggKG5vdCBkZWZhdWx0L2ZhbGxiYWNrIGxhbmd1YWdlKS4KLSAiIiIKLStmcm9tIF9fZnV0 dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAotLWZyb20gX19pbml0X18gaW1wb3J0IERv Y3V0aWxzVGVzdFN1cHBvcnQKLStmcm9tIC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAK LSAKLSBkZWYgc3VpdGUoKToKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3Jz dC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9yb2xlLnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9y c3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3Rfcm9sZS5weQotaW5kZXggM2Y3MjhmMC4uNjBkNjVlNiAx MDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90 ZXN0X3JvbGUucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0 aXZlcy90ZXN0X3JvbGUucHkKLUBAIC03LDggKzcsOSBAQAotICIiIgotIFRlc3RzIGZvciBtaXNj LnB5ICJyb2xlIiBkaXJlY3RpdmUuCi0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNv bHV0ZV9pbXBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0 Ci0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0gCi0gZGVmIHN1aXRlKCk6 Ci1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVz L3Rlc3RfcnVicmljcy5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0 aXZlcy90ZXN0X3J1YnJpY3MucHkKLWluZGV4IDcwYjZiMDAuLjUyZGNkNWMgMTAwNzU1Ci0tLS0g YS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9ydWJyaWNz LnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVz dF9ydWJyaWNzLnB5Ci1AQCAtNyw4ICs3LDkgQEAKLSAiIiIKLSBUZXN0cyBmb3IgdGhlICJydWJy aWMiIGRpcmVjdGl2ZS4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2lt cG9ydAotIAotLWZyb20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLStmcm9t IC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLSBkZWYgc3VpdGUoKToKLSAgICAgcyA9 IERvY3V0aWxzVGVzdFN1cHBvcnQuUGFyc2VyVGVzdFN1aXRlKCkKLWRpZmYgLS1naXQgYS90ZXN0 L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9zZWN0bnVtLnB5IGIv dGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3Rfc2VjdG51bS5w eQotaW5kZXggN2FiMDQ4Ni4uNDExOTYwNyAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJz L3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3NlY3RudW0ucHkKLSsrKyBiL3Rlc3QvdGVz dF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3NlY3RudW0ucHkKLUBAIC03 LDggKzcsMTAgQEAKLSAiIiIKLSBUZXN0cyBmb3IgdGhlICdzZWN0bnVtJyBkaXJlY3RpdmUuCi0g IiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSsKLStmcm9tIC4g aW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1 dGlsc1Rlc3RTdXBwb3J0Ci0gCi0gZGVmIHN1aXRlKCk6Ci0gICAgIHMgPSBEb2N1dGlsc1Rlc3RT dXBwb3J0LlBhcnNlclRlc3RTdWl0ZSgpCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3BhcnNlcnMv dGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3Rfc2lkZWJhcnMucHkgYi90ZXN0L3Rlc3RfcGFy c2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9zaWRlYmFycy5weQotaW5kZXggN2M2 MWRhYy4uZWY1MDFjZSAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rl c3RfZGlyZWN0aXZlcy90ZXN0X3NpZGViYXJzLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90 ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9zaWRlYmFycy5weQotQEAgLTcsOCArNywxMCBA QAotICIiIgotIFRlc3RzIGZvciB0aGUgInNpZGViYXIiIGRpcmVjdGl2ZS4KLSAiIiIKLStmcm9t IF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotKwotK2Zyb20gLiBpbXBvcnQgRG9j dXRpbHNUZXN0U3VwcG9ydAotIAotLWZyb20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1 cHBvcnQKLSAKLSBkZWYgc3VpdGUoKToKLSAgICAgcyA9IERvY3V0aWxzVGVzdFN1cHBvcnQuUGFy c2VyVGVzdFN1aXRlKCkKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90 ZXN0X2RpcmVjdGl2ZXMvdGVzdF90YWJsZXMucHkgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3Jz dC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF90YWJsZXMucHkKLWluZGV4IDJjNWY4MzIuLmVlOTMwYzgg MTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMv dGVzdF90YWJsZXMucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGly ZWN0aXZlcy90ZXN0X3RhYmxlcy5weQotQEAgLTgsMTMgKzgsMTUgQEAKLSBUZXN0cyBmb3IgdGFi bGVzLnB5IGRpcmVjdGl2ZXMuCi0gIiIiCi0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRp bHNUZXN0U3VwcG9ydAotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0g Ci0gaW1wb3J0IG9zLCBzeXMKLSBpbXBvcnQgY3N2Ci0gaW1wb3J0IHBsYXRmb3JtCi0gZnJvbSBk b2N1dGlscy5wYXJzZXJzLnJzdC5kaXJlY3RpdmVzIGltcG9ydCB0YWJsZXMKLSAKLStmcm9tIC4g aW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSsKLSAKLSBpZiBzeXMudmVyc2lvbl9pbmZvID49 ICgzLCAwKToKLSAgICAgdW5pY29kZSA9IHN0ciAgIyBub3FhCi1kaWZmIC0tZ2l0IGEvdGVzdC90 ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfdGFyZ2V0X25vdGVzLnB5 IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfdGFyZ2V0 X25vdGVzLnB5Ci1pbmRleCAzN2E2M2Y1Li4xNjdjZDhhIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0 X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfdGFyZ2V0X25vdGVzLnB5Ci0r KysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF90YXJn ZXRfbm90ZXMucHkKLUBAIC03LDggKzcsMTAgQEAKLSAiIiIKLSBUZXN0cyBmb3IgdGhlIHRhcmdl dC1ub3RlcyBkaXJlY3RpdmVzLgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1 dGVfaW1wb3J0Ci0rCi0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0tZnJv bSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotIGRlZiBzdWl0ZSgpOgot ICAgICBzID0gRG9jdXRpbHNUZXN0U3VwcG9ydC5QYXJzZXJUZXN0U3VpdGUoKQotZGlmZiAtLWdp dCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3Rlc3Rf ZGlyZWN0aXZlcy5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZl cy90ZXN0X3Rlc3RfZGlyZWN0aXZlcy5weQotaW5kZXggMDdlOWJkMi4uNjVjZmZlZCAxMDA3NTUK LS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3Rl c3RfZGlyZWN0aXZlcy5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9k aXJlY3RpdmVzL3Rlc3RfdGVzdF9kaXJlY3RpdmVzLnB5Ci1AQCAtNyw4ICs3LDEwIEBACi0gIiIi Ci0gVGVzdHMgZm9yIG1pc2MucHkgdGVzdCBkaXJlY3RpdmVzLgotICIiIgotK2Zyb20gX19mdXR1 cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0rCi0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rl c3RTdXBwb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAot IAotIGRlZiBzdWl0ZSgpOgotICAgICBzID0gRG9jdXRpbHNUZXN0U3VwcG9ydC5QYXJzZXJUZXN0 U3VpdGUoKQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGly ZWN0aXZlcy90ZXN0X3RpdGxlLnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9k aXJlY3RpdmVzL3Rlc3RfdGl0bGUucHkKLWluZGV4IDRhN2NmZDYuLmMyNDMwOWMgMTAwNzU1Ci0t LS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF90aXRs ZS5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rl c3RfdGl0bGUucHkKLUBAIC03LDggKzcsMTAgQEAKLSAiIiIKLSBUZXN0cyBmb3IgdGhlICd0aXRs ZScgZGlyZWN0aXZlLgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1w b3J0Ci0rCi0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0tZnJvbSBfX2lu aXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotIGRlZiBzdWl0ZSgpOgotICAgICBz ID0gRG9jdXRpbHNUZXN0U3VwcG9ydC5QYXJzZXJUZXN0U3VpdGUoKQotZGlmZiAtLWdpdCBhL3Rl c3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3RvcGljcy5weSBi L3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3RvcGljcy5w eQotaW5kZXggOTU4ODU5OS4uZmRkNGJjMyAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJz L3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3RvcGljcy5weQotKysrIGIvdGVzdC90ZXN0 X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfdG9waWNzLnB5Ci1AQCAtNyw4 ICs3LDEwIEBACi0gIiIiCi0gVGVzdHMgZm9yIHRoZSAidG9waWMiIGRpcmVjdGl2ZS4KLSAiIiIK LStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotKwotK2Zyb20gLiBpbXBv cnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotLWZyb20gX19pbml0X18gaW1wb3J0IERvY3V0aWxz VGVzdFN1cHBvcnQKLSAKLSBkZWYgc3VpdGUoKToKLSAgICAgcyA9IERvY3V0aWxzVGVzdFN1cHBv cnQuUGFyc2VyVGVzdFN1aXRlKCkKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0 X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF91bmljb2RlLnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMv dGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfdW5pY29kZS5weQotaW5kZXggNWNkZmQ1YS4u Yjk5YjVkMCAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGly ZWN0aXZlcy90ZXN0X3VuaWNvZGUucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0 L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3VuaWNvZGUucHkKLUBAIC03LDEwICs3LDExIEBACi0gIiIi Ci0gVGVzdHMgZm9yIG1pc2MucHkgInVuaWNvZGUiIGRpcmVjdGl2ZS4KLSAiIiIKLStmcm9tIF9f ZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAotIGltcG9ydCBzeXMKLSAKLS1mcm9t IF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0rZnJvbSAuIGltcG9ydCBEb2N1 dGlsc1Rlc3RTdXBwb3J0Ci0gCi0gCi0gaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci1k aWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rl c3RfdW5rbm93bi5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZl cy90ZXN0X3Vua25vd24ucHkKLWluZGV4IDY5ZTJjMDEuLjk4Y2I2YjkgMTAwNzU1Ci0tLS0gYS90 ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF91bmtub3duLnB5 Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF91 bmtub3duLnB5Ci1AQCAtNyw4ICs3LDEwIEBACi0gIiIiCi0gVGVzdHMgZm9yIHVua25vd24gZGly ZWN0aXZlcy4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAot KwotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotLWZyb20gX19pbml0X18g aW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLSBkZWYgc3VpdGUoKToKLSAgICAgcyA9IERv Y3V0aWxzVGVzdFN1cHBvcnQuUGFyc2VyVGVzdFN1aXRlKCkKLWRpZmYgLS1naXQgYS90ZXN0L3Rl c3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RvY3Rlc3RfYmxvY2tzLnB5IGIvdGVzdC90ZXN0X3Bh cnNlcnMvdGVzdF9yc3QvdGVzdF9kb2N0ZXN0X2Jsb2Nrcy5weQotaW5kZXggNGYzNjdkYi4uZDc3 ODdkNyAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZG9jdGVz dF9ibG9ja3MucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZG9jdGVz dF9ibG9ja3MucHkKLUBAIC03LDggKzcsMTAgQEAKLSAiIiIKLSBUZXN0cyBmb3Igc3RhdGVzLnB5 LgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0rCi0rZnJv bSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQg RG9jdXRpbHNUZXN0U3VwcG9ydAotIAotIGRlZiBzdWl0ZSgpOgotICAgICBzID0gRG9jdXRpbHNU ZXN0U3VwcG9ydC5QYXJzZXJUZXN0U3VpdGUoKQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJz ZXJzL3Rlc3RfcnN0L3Rlc3RfZWFzdF9hc2lhbl90ZXh0LnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMv dGVzdF9yc3QvdGVzdF9lYXN0X2FzaWFuX3RleHQucHkKLWluZGV4IGUyOWVhODIuLmQ4MTllZjgg MTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2Vhc3RfYXNpYW5f dGV4dC5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9lYXN0X2FzaWFu X3RleHQucHkKLUBAIC04LDE1ICs4LDE4IEBACi0gIiIiCi0gVGVzdHMgZm9yIEVhc3QgQXNpYW4g dGV4dCB3aXRoIGRvdWJsZS13aWR0aCBjaGFyYWN0ZXJzLgotICIiIgotK2Zyb20gX19mdXR1cmVf XyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRp bHNUZXN0U3VwcG9ydAotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotIGlt cG9ydCB1bmljb2RlZGF0YQotKwotIHRyeToKLSAgICAgZWFzdF9hc2lhbl93aWR0aCA9IHVuaWNv ZGVkYXRhLmVhc3RfYXNpYW5fd2lkdGgKLSBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgIGVh c3RfYXNpYW5fd2lkdGggPSBOb25lCi0gCi0rCi0gZGVmIHN1aXRlKCk6Ci0gICAgIHMgPSBEb2N1 dGlsc1Rlc3RTdXBwb3J0LlBhcnNlclRlc3RTdWl0ZSgpCi0gICAgIHMuZ2VuZXJhdGVUZXN0cyh0 b3Rlc3QpCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9lbnVt ZXJhdGVkX2xpc3RzLnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9lbnVtZXJh dGVkX2xpc3RzLnB5Ci1pbmRleCAwOWVhMjM4Li4wOWJjMDA1IDEwMDc1NQotLS0tIGEvdGVzdC90 ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9lbnVtZXJhdGVkX2xpc3RzLnB5Ci0rKysgYi90ZXN0 L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2VudW1lcmF0ZWRfbGlzdHMucHkKLUBAIC03LDgg KzcsMTAgQEAKLSAiIiIKLSBUZXN0cyBmb3Igc3RhdGVzLnB5LgotICIiIgotK2Zyb20gX19mdXR1 cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0rCi0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rl c3RTdXBwb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAot IAotIGRlZiBzdWl0ZSgpOgotICAgICBzID0gRG9jdXRpbHNUZXN0U3VwcG9ydC5QYXJzZXJUZXN0 U3VpdGUoKQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZmll bGRfbGlzdHMucHkgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2ZpZWxkX2xpc3Rz LnB5Ci1pbmRleCBjNTFkZDdjLi4zNDA3M2FhIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3BhcnNl cnMvdGVzdF9yc3QvdGVzdF9maWVsZF9saXN0cy5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMv dGVzdF9yc3QvdGVzdF9maWVsZF9saXN0cy5weQotQEAgLTcsOCArNywxMCBAQAotICIiIgotIFRl c3RzIGZvciBzdGF0ZXMucHkuCi0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0 ZV9pbXBvcnQKLSsKLStmcm9tIC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLS1mcm9t IF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0gZGVmIHN1aXRlKCk6Ci0g ICAgIHMgPSBEb2N1dGlsc1Rlc3RTdXBwb3J0LlBhcnNlclRlc3RTdWl0ZSgpCi1kaWZmIC0tZ2l0 IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9mb290bm90ZXMucHkgYi90ZXN0L3Rl c3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2Zvb3Rub3Rlcy5weQotaW5kZXggZmFiZmFmMC4uYmEx NTdkOSAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZm9vdG5v dGVzLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2Zvb3Rub3Rlcy5w eQotQEAgLTcsOCArNywxMCBAQAotICIiIgotIFRlc3RzIGZvciBzdGF0ZXMucHkuCi0gIiIiCi0r ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSsKLStmcm9tIC4gaW1wb3J0 IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rl c3RTdXBwb3J0Ci0gCi0gZGVmIHN1aXRlKCk6Ci0gICAgIHMgPSBEb2N1dGlsc1Rlc3RTdXBwb3J0 LlBhcnNlclRlc3RTdWl0ZSgpCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9y c3QvdGVzdF9pbmxpbmVfbWFya3VwLnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVz dF9pbmxpbmVfbWFya3VwLnB5Ci1pbmRleCBkNmZkYWM3Li4xNzYyODgwIDEwMDc1NQotLS0tIGEv dGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9pbmxpbmVfbWFya3VwLnB5Ci0rKysgYi90 ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2lubGluZV9tYXJrdXAucHkKLUBAIC05LDgg KzksMTAgQEAKLSBUZXN0cyBmb3IgaW5saW5lIG1hcmt1cCBpbiBkb2N1dGlscy9wYXJzZXJzL3Jz dC9zdGF0ZXMucHkuCi0gSW50ZXJwcmV0ZWQgdGV4dCB0ZXN0cyBhcmUgaW4gYSBzZXBhcmF0ZSBt b2R1bGUsIHRlc3RfaW50ZXJwcmV0ZWQucHkuCi0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9y dCBhYnNvbHV0ZV9pbXBvcnQKLSsKLStmcm9tIC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQK LSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0gZGVmIHN1 aXRlKCk6Ci0gICAgIHMgPSBEb2N1dGlsc1Rlc3RTdXBwb3J0LlBhcnNlclRlc3RTdWl0ZSgpCi1k aWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9pbnRlcnByZXRlZC5w eSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfaW50ZXJwcmV0ZWQucHkKLWluZGV4 IDZkY2UwOWMuLjQ4YjRlYmUgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3Jz dC90ZXN0X2ludGVycHJldGVkLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90 ZXN0X2ludGVycHJldGVkLnB5Ci1AQCAtNywxMCArNywxMiBAQAotICIiIgotIFRlc3RzIGZvciBp bnRlcnByZXRlZCB0ZXh0IGluIGRvY3V0aWxzL3BhcnNlcnMvcnN0L3N0YXRlcy5weS4KLSAiIiIK LStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAotLWZyb20gX19pbml0 X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLStmcm9tIC4gaW1wb3J0IERvY3V0aWxzVGVz dFN1cHBvcnQKLSBmcm9tIGRvY3V0aWxzLnV0aWxzLmNvZGVfYW5hbHl6ZXIgaW1wb3J0IHdpdGhf cHlnbWVudHMKLSAKLSsKLSBkZWYgc3VpdGUoKToKLSAgICAgcyA9IERvY3V0aWxzVGVzdFN1cHBv cnQuUGFyc2VyVGVzdFN1aXRlKCkKLSAgICAgaWYgbm90IHdpdGhfcHlnbWVudHM6Ci1kaWZmIC0t Z2l0IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9pbnRlcnByZXRlZF9mci5weSBi L3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfaW50ZXJwcmV0ZWRfZnIucHkKLWluZGV4 IGEwZTFkNzguLjA0NmFiMTUgMTAwNjQ0Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3Jz dC90ZXN0X2ludGVycHJldGVkX2ZyLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3Jz dC90ZXN0X2ludGVycHJldGVkX2ZyLnB5Ci1AQCAtOCw4ICs4LDEwIEBACi0gVGVzdHMgZm9yIGlu dGVycHJldGVkIHRleHQgaW4gZG9jdXRpbHMvcGFyc2Vycy9yc3Qvc3RhdGVzLnB5LgotIFRlc3Qg bm90IGRlZmF1bHQvZmFsbGJhY2sgbGFuZ3VhZ2UgZnJlbmNoLgotICIiIgotK2Zyb20gX19mdXR1 cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0rCi0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rl c3RTdXBwb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAot IAotIGRlZiBzdWl0ZSgpOgotICAgICBzID0gRG9jdXRpbHNUZXN0U3VwcG9ydC5QYXJzZXJUZXN0 U3VpdGUoc3VpdGVfc2V0dGluZ3M9eydsYW5ndWFnZV9jb2RlJzonZnInfSkKLWRpZmYgLS1naXQg YS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2xpbmVfYmxvY2tzLnB5IGIvdGVzdC90 ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9saW5lX2Jsb2Nrcy5weQotaW5kZXggZDBhMjc3Ni4u M2FiMTc2NCAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfbGlu ZV9ibG9ja3MucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfbGluZV9i bG9ja3MucHkKLUBAIC03LDggKzcsMTAgQEAKLSAiIiIKLSBUZXN0cyBmb3Igc3RhdGVzLnB5Lgot ICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0rCi0rZnJvbSAu IGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9j dXRpbHNUZXN0U3VwcG9ydAotIAotIGRlZiBzdWl0ZSgpOgotICAgICBzID0gRG9jdXRpbHNUZXN0 U3VwcG9ydC5QYXJzZXJUZXN0U3VpdGUoKQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJz L3Rlc3RfcnN0L3Rlc3RfbGl0ZXJhbF9ibG9ja3MucHkgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0 X3JzdC90ZXN0X2xpdGVyYWxfYmxvY2tzLnB5Ci1pbmRleCA2MmM5ZjQwLi4xNzJjNDM4IDEwMDc1 NQotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9saXRlcmFsX2Jsb2Nrcy5w eQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9saXRlcmFsX2Jsb2Nrcy5w eQotQEAgLTcsOCArNywxMCBAQAotICIiIgotIFRlc3RzIGZvciBzdGF0ZXMucHkuCi0gIiIiCi0r ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSsKLStmcm9tIC4gaW1wb3J0 IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rl c3RTdXBwb3J0Ci0gCi0gZGVmIHN1aXRlKCk6Ci0gICAgIHMgPSBEb2N1dGlsc1Rlc3RTdXBwb3J0 LlBhcnNlclRlc3RTdWl0ZSgpCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9y c3QvdGVzdF9vcHRpb25fbGlzdHMucHkgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0 X29wdGlvbl9saXN0cy5weQotaW5kZXggYWEyM2UzZS4uNzQwMjQ4ZiAxMDA3NTUKLS0tLSBhL3Rl c3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3Rfb3B0aW9uX2xpc3RzLnB5Ci0rKysgYi90ZXN0 L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X29wdGlvbl9saXN0cy5weQotQEAgLTcsOCArNywx MCBAQAotICIiIgotIFRlc3RzIGZvciBzdGF0ZXMucHkuCi0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9f IGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSsKLStmcm9tIC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1 cHBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0g ZGVmIHN1aXRlKCk6Ci0gICAgIHMgPSBEb2N1dGlsc1Rlc3RTdXBwb3J0LlBhcnNlclRlc3RTdWl0 ZSgpCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9vdXRkZW50 aW5nLnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9vdXRkZW50aW5nLnB5Ci1p bmRleCAxNDAzYWI3Li41Njg1NzY3IDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVz dF9yc3QvdGVzdF9vdXRkZW50aW5nLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3Jz dC90ZXN0X291dGRlbnRpbmcucHkKLUBAIC03LDggKzcsMTAgQEAKLSAiIiIKLSBUZXN0cyBmb3Ig c3RhdGVzLnB5LgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0 Ci0rCi0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0tZnJvbSBfX2luaXRf XyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotIGRlZiBzdWl0ZSgpOgotICAgICBzID0g RG9jdXRpbHNUZXN0U3VwcG9ydC5QYXJzZXJUZXN0U3VpdGUoKQotZGlmZiAtLWdpdCBhL3Rlc3Qv dGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfcGFyYWdyYXBocy5weSBiL3Rlc3QvdGVzdF9wYXJz ZXJzL3Rlc3RfcnN0L3Rlc3RfcGFyYWdyYXBocy5weQotaW5kZXggZTQ4NjBlMy4uOTMzYzA3YiAx MDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfcGFyYWdyYXBocy5w eQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9wYXJhZ3JhcGhzLnB5Ci1A QCAtNyw4ICs3LDEwIEBACi0gIiIiCi0gVGVzdHMgZm9yIHN0YXRlcy5weS4KLSAiIiIKLStmcm9t IF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotKwotK2Zyb20gLiBpbXBvcnQgRG9j dXRpbHNUZXN0U3VwcG9ydAotIAotLWZyb20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1 cHBvcnQKLSAKLSBkZWYgc3VpdGUoKToKLSAgICAgcyA9IERvY3V0aWxzVGVzdFN1cHBvcnQuUGFy c2VyVGVzdFN1aXRlKCkKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90 ZXN0X3NlY3Rpb25faGVhZGVycy5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3Rf c2VjdGlvbl9oZWFkZXJzLnB5Ci1pbmRleCAwYzhjZDY0Li5hZjM3NDljIDEwMDc1NQotLS0tIGEv dGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9zZWN0aW9uX2hlYWRlcnMucHkKLSsrKyBi L3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3Rfc2VjdGlvbl9oZWFkZXJzLnB5Ci1AQCAt NSw5ICs1LDEzIEBACi0gIyBBdXRob3I6IERhdmlkIEdvb2RnZXIgPGdvb2RnZXJAcHl0aG9uLm9y Zz4KLSAjIENvcHlyaWdodDogVGhpcyBtb2R1bGUgaGFzIGJlZW4gcGxhY2VkIGluIHRoZSBwdWJs aWMgZG9tYWluLgotIAotLSIiIlRlc3RzIGZvciBzdGF0ZXMucHkuIiIiCi0rIiIiCi0rVGVzdHMg Zm9yIHN0YXRlcy5weS4KLSsiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2lt cG9ydAotKwotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotLWZyb20gX19p bml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLSBkZWYgc3VpdGUoKToKLSAgICAg cyA9IERvY3V0aWxzVGVzdFN1cHBvcnQuUGFyc2VyVGVzdFN1aXRlKCkKLWRpZmYgLS1naXQgYS90 ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X3N1YnN0aXR1dGlvbnMucHkgYi90ZXN0L3Rl c3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X3N1YnN0aXR1dGlvbnMucHkKLWluZGV4IGU5OTJjYjIu Ljc3NGQ3MWIgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X3N1 YnN0aXR1dGlvbnMucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3Rfc3Vi c3RpdHV0aW9ucy5weQotQEAgLTcsOCArNywxMCBAQAotICIiIgotIFRlc3RzIGZvciBzdGF0ZXMu cHkuCi0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSsKLStm cm9tIC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9y dCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0gZGVmIHN1aXRlKCk6Ci0gICAgIHMgPSBEb2N1dGls c1Rlc3RTdXBwb3J0LlBhcnNlclRlc3RTdWl0ZSgpCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3Bh cnNlcnMvdGVzdF9yc3QvdGVzdF90YWJsZXMucHkgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3Jz dC90ZXN0X3RhYmxlcy5weQotaW5kZXggY2EyNDliYi4uNGE2OTBmZiAxMDA3NTUKLS0tLSBhL3Rl c3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfdGFibGVzLnB5Ci0rKysgYi90ZXN0L3Rlc3Rf cGFyc2Vycy90ZXN0X3JzdC90ZXN0X3RhYmxlcy5weQotQEAgLTcsOSArNywxMiBAQAotICIiIgot IFRlc3RzIGZvciBzdGF0ZXMucHkuCi0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNv bHV0ZV9pbXBvcnQKLSAKLSBpbXBvcnQgb3MKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGls c1Rlc3RTdXBwb3J0Ci0rCi0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0rCi0g Ci0gZGVmIHN1aXRlKCk6Ci0gICAgIHMgPSBEb2N1dGlsc1Rlc3RTdXBwb3J0LlBhcnNlclRlc3RT dWl0ZSgpCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF90YXJn ZXRzLnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF90YXJnZXRzLnB5Ci1pbmRl eCBmN2FiOGMwLi42Nzg1YWMzIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9y c3QvdGVzdF90YXJnZXRzLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0 X3RhcmdldHMucHkKLUBAIC03LDggKzcsMTAgQEAKLSAiIiIKLSBUZXN0cyBmb3Igc3RhdGVzLnB5 LgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0rCi0rZnJv bSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQg RG9jdXRpbHNUZXN0U3VwcG9ydAotIAotIGRlZiBzdWl0ZSgpOgotICAgICBzID0gRG9jdXRpbHNU ZXN0U3VwcG9ydC5QYXJzZXJUZXN0U3VpdGUoKQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJz ZXJzL3Rlc3RfcnN0L3Rlc3RfdHJhbnNpdGlvbnMucHkgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0 X3JzdC90ZXN0X3RyYW5zaXRpb25zLnB5Ci1pbmRleCBiMjE0MTFjLi5kM2E2MjJhIDEwMDc1NQot LS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF90cmFuc2l0aW9ucy5weQotKysr IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF90cmFuc2l0aW9ucy5weQotQEAgLTcs OCArNywxMCBAQAotICIiIgotIFRlc3RzIGZvciB0cmFuc2l0aW9uIG1hcmtlcnMuCi0gIiIiCi0r ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSsKLStmcm9tIC4gaW1wb3J0 IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rl c3RTdXBwb3J0Ci0gCi0gZGVmIHN1aXRlKCk6Ci0gICAgIHMgPSBEb2N1dGlsc1Rlc3RTdXBwb3J0 LlBhcnNlclRlc3RTdWl0ZSgpCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3JlYWRlcnMvdGVzdF9n ZXRfcmVhZGVyX2NsYXNzLnB5IGIvdGVzdC90ZXN0X3JlYWRlcnMvdGVzdF9nZXRfcmVhZGVyX2Ns YXNzLnB5Ci1pbmRleCBiODRkZmI5Li5mMTc3MjIzIDEwMDY0NAotLS0tIGEvdGVzdC90ZXN0X3Jl YWRlcnMvdGVzdF9nZXRfcmVhZGVyX2NsYXNzLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcmVhZGVycy90 ZXN0X2dldF9yZWFkZXJfY2xhc3MucHkKLUBAIC04LDEwICs4LDEyIEBACi0gIiIiCi0gdGVzdCBn ZXRfcmVhZGVyX2NsYXNzCi0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9p bXBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0rZnJv bSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gZnJvbSBkb2N1dGlscy5yZWFkZXJzIGlt cG9ydCBnZXRfcmVhZGVyX2NsYXNzCi0gCi0rCi0gY2xhc3MgR2V0UmVhZGVyQ2xhc3NUZXN0Q2Fz ZShEb2N1dGlsc1Rlc3RTdXBwb3J0LlN0YW5kYXJkVGVzdENhc2UpOgotIAotICAgICBkZWYgdGVz dF9yZWdpc3RlcmVkX3JlYWRlcihzZWxmKToKLUBAIC0yOSw0ICszMSwzIEBAIGNsYXNzIEdldFJl YWRlckNsYXNzVGVzdENhc2UoRG9jdXRpbHNUZXN0U3VwcG9ydC5TdGFuZGFyZFRlc3RDYXNlKToK LSBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgICBpbXBvcnQgdW5pdHRlc3QKLSAgICAg dW5pdHRlc3QubWFpbigpCi0tCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3JlYWRlcnMvdGVzdF9w ZXAvdGVzdF9pbmxpbmVfbWFya3VwLnB5IGIvdGVzdC90ZXN0X3JlYWRlcnMvdGVzdF9wZXAvdGVz dF9pbmxpbmVfbWFya3VwLnB5Ci1pbmRleCAzYmZkMjk0Li4yOTA3NGQ4IDEwMDc1NQotLS0tIGEv dGVzdC90ZXN0X3JlYWRlcnMvdGVzdF9wZXAvdGVzdF9pbmxpbmVfbWFya3VwLnB5Ci0rKysgYi90 ZXN0L3Rlc3RfcmVhZGVycy90ZXN0X3BlcC90ZXN0X2lubGluZV9tYXJrdXAucHkKLUBAIC03LDgg KzcsOSBAQAotICIiIgotIFRlc3RzIGZvciBpbmxpbmUgbWFya3VwIGluIFBFUHMgKHJlYWRlcnMv cGVwLnB5KS4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAot IAotLWZyb20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLStmcm9tIC4gaW1w b3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLSAKLSBkZWYgc3VpdGUoKToKLWRpZmYgLS1naXQg YS90ZXN0L3Rlc3RfcmVhZGVycy90ZXN0X3BlcC90ZXN0X3JmYzI4MjIucHkgYi90ZXN0L3Rlc3Rf cmVhZGVycy90ZXN0X3BlcC90ZXN0X3JmYzI4MjIucHkKLWluZGV4IDdjMWIyNmIuLjExMjNlZTkg MTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcmVhZGVycy90ZXN0X3BlcC90ZXN0X3JmYzI4MjIucHkK LSsrKyBiL3Rlc3QvdGVzdF9yZWFkZXJzL3Rlc3RfcGVwL3Rlc3RfcmZjMjgyMi5weQotQEAgLTcs OCArNywxMCBAQAotICIiIgotIFRlc3RzIGZvciBSRkMtMjgyMiBoZWFkZXJzIGluIFBFUHMgKHJl YWRlcnMvcGVwLnB5KS4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2lt cG9ydAotKwotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotLWZyb20gX19p bml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLSBkZWYgc3VpdGUoKToKLSAgICAg cyA9IERvY3V0aWxzVGVzdFN1cHBvcnQuUEVQUGFyc2VyVGVzdFN1aXRlKCkKLWRpZmYgLS1naXQg YS90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X19faW5pdF9fLnB5IGIvdGVzdC90ZXN0X3RyYW5z Zm9ybXMvdGVzdF9fX2luaXRfXy5weQotaW5kZXggMzY2NzAxYi4uZmRlZDE3OSAxMDA3NTUKLS0t LSBhL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfX19pbml0X18ucHkKLSsrKyBiL3Rlc3QvdGVz dF90cmFuc2Zvcm1zL3Rlc3RfX19pbml0X18ucHkKLUBAIC03LDExICs3LDEzIEBACi0gIiIiCi0g VGVzdCBtb2R1bGUgZm9yIHRyYW5zZm9ybXMvX19pbml0X18ucHkuCi0gIiIiCi0rZnJvbSBfX2Z1 dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBE b2N1dGlsc1Rlc3RTdXBwb3J0ICMgbXVzdCBiZSBpbXBvcnRlZCBiZWZvcmUgZG9jdXRpbHMKLS1m cm9tIGRvY3V0aWxzIGltcG9ydCB0cmFuc2Zvcm1zLCB1dGlscwotIGltcG9ydCB1bml0dGVzdAot IAotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydCAjIG11c3QgYmUgaW1wb3J0ZWQg YmVmb3JlIGRvY3V0aWxzCi0rZnJvbSBkb2N1dGlscyBpbXBvcnQgdHJhbnNmb3JtcywgdXRpbHMK LSsKLSAKLSBjbGFzcyBUZXN0VHJhbnNmb3JtKHRyYW5zZm9ybXMuVHJhbnNmb3JtKToKLSAKLWRp ZmYgLS1naXQgYS90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X2NsYXNzLnB5IGIvdGVzdC90ZXN0 X3RyYW5zZm9ybXMvdGVzdF9jbGFzcy5weQotaW5kZXggOWVlMDQ4NC4uZWJkNmM1YSAxMDA3NTUK LS0tLSBhL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfY2xhc3MucHkKLSsrKyBiL3Rlc3QvdGVz dF90cmFuc2Zvcm1zL3Rlc3RfY2xhc3MucHkKLUBAIC03LDggKzcsOSBAQAotICIiIgotIFRlc3Rz IGZvciBgZG9jdXRpbHMudHJhbnNmb3Jtcy5taXNjLkNsYXNzQXR0cmlidXRlYC4KLSAiIiIKLStm cm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAotLWZyb20gX19pbml0X18g aW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLStmcm9tIC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1 cHBvcnQKLSBmcm9tIGRvY3V0aWxzLnBhcnNlcnMucnN0IGltcG9ydCBQYXJzZXIKLSAKLSAKLWRp ZmYgLS1naXQgYS90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X2NvbnRlbnRzLnB5IGIvdGVzdC90 ZXN0X3RyYW5zZm9ybXMvdGVzdF9jb250ZW50cy5weQotaW5kZXggMWNhYTU5My4uZGUwNWFmNyAx MDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfY29udGVudHMucHkKLSsrKyBi L3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfY29udGVudHMucHkKLUBAIC04LDggKzgsOSBAQAot IFRlc3RzIGZvciBgZG9jdXRpbHMudHJhbnNmb3Jtcy5wYXJ0cy5Db250ZW50c2AgKHZpYQotIGBk b2N1dGlscy50cmFuc2Zvcm1zLnVuaXZlcnNhbC5MYXN0UmVhZGVyUGVuZGluZ2ApLgotICIiIgot K2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0tZnJvbSBfX2luaXRf XyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0 U3VwcG9ydAotIGZyb20gZG9jdXRpbHMudHJhbnNmb3Jtcy5yZWZlcmVuY2VzIGltcG9ydCBTdWJz dGl0dXRpb25zCi0gZnJvbSBkb2N1dGlscy5wYXJzZXJzLnJzdCBpbXBvcnQgUGFyc2VyCi0gCi1k aWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9kb2NpbmZvLnB5IGIvdGVzdC90 ZXN0X3RyYW5zZm9ybXMvdGVzdF9kb2NpbmZvLnB5Ci1pbmRleCA4YjU0M2RmLi4xZjBhNGE4IDEw MDc1NQotLS0tIGEvdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9kb2NpbmZvLnB5Ci0rKysgYi90 ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X2RvY2luZm8ucHkKLUBAIC04LDggKzgsOSBAQAotICIi IgotIFRlc3RzIGZvciBkb2N1dGlscy50cmFuc2Zvcm1zLmZyb250bWF0dGVyLkRvY0luZm8uCi0g IiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSAKLS1mcm9tIF9f aW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0rZnJvbSAuIGltcG9ydCBEb2N1dGls c1Rlc3RTdXBwb3J0Ci0gZnJvbSBkb2N1dGlscy50cmFuc2Zvcm1zLmZyb250bWF0dGVyIGltcG9y dCBEb2NJbmZvCi0gZnJvbSBkb2N1dGlscy5wYXJzZXJzLnJzdCBpbXBvcnQgUGFyc2VyCi0gCi1k aWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9kb2N0aXRsZS5weSBiL3Rlc3Qv dGVzdF90cmFuc2Zvcm1zL3Rlc3RfZG9jdGl0bGUucHkKLWluZGV4IDZiMzU0YWIuLjcwNzNlNmEg MTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X2RvY3RpdGxlLnB5Ci0rKysg Yi90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X2RvY3RpdGxlLnB5Ci1AQCAtNywxMiArNywxNCBA QAotICIiIgotIFRlc3RzIGZvciBkb2N1dGlscy50cmFuc2Zvcm1zLmZyb250bWF0dGVyLkRvY1Rp dGxlLgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0t ZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotK2Zyb20gLiBpbXBvcnQg RG9jdXRpbHNUZXN0U3VwcG9ydAotIGZyb20gZG9jdXRpbHMudHJhbnNmb3Jtcy5mcm9udG1hdHRl ciBpbXBvcnQgRG9jVGl0bGUsIFNlY3Rpb25TdWJUaXRsZQotIGZyb20gZG9jdXRpbHMucGFyc2Vy cy5yc3QgaW1wb3J0IFBhcnNlciwgRGlyZWN0aXZlCi0gZnJvbSBkb2N1dGlscy5wYXJzZXJzLnJz dC5kaXJlY3RpdmVzIGltcG9ydCByZWdpc3Rlcl9kaXJlY3RpdmUKLSAKLSsKLSAjIGR1bW15IGRp cmVjdGl2ZSB0byB0ZXN0IGF0dHJpYnV0ZSBtZXJnaW5nOgotIGNsYXNzIEFkZE5hbWVUb0RvY3Vt ZW50VGl0bGUoRGlyZWN0aXZlKToKLSAgICAgcmVxdWlyZWRfYXJndW1lbnRzID0gMAotZGlmZiAt LWdpdCBhL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfZXhwb3NlX2ludGVybmFscy5weSBiL3Rl c3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfZXhwb3NlX2ludGVybmFscy5weQotaW5kZXggMTVkMWQ4 YS4uOTk0OWQ1MSAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfZXhwb3Nl X2ludGVybmFscy5weQotKysrIGIvdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9leHBvc2VfaW50 ZXJuYWxzLnB5Ci1AQCAtNywxMiArNywxNCBAQAotICIiIgotIFRlc3QgbW9kdWxlIGZvciB1bml2 ZXJzYWwuRXhwb3NlSW50ZXJuYWxzIHRyYW5zZm9ybS4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18g aW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAotIAotLWZyb20gX19pbml0X18gaW1wb3J0IERvY3V0 aWxzVGVzdFN1cHBvcnQgIyBtdXN0IGJlIGltcG9ydGVkIGJlZm9yZSBkb2N1dGlscwotK2Zyb20g LiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydCAjIG11c3QgYmUgaW1wb3J0ZWQgYmVmb3JlIGRv Y3V0aWxzCi0gZnJvbSBkb2N1dGlscy50cmFuc2Zvcm1zLnVuaXZlcnNhbCBpbXBvcnQgRXhwb3Nl SW50ZXJuYWxzCi0gZnJvbSBkb2N1dGlscy5wYXJzZXJzLnJzdCBpbXBvcnQgUGFyc2VyCi0gCi0r Ci0gZGVmIHN1aXRlKCk6Ci0gICAgIHBhcnNlciA9IFBhcnNlcigpCi0gICAgIHMgPSBEb2N1dGls c1Rlc3RTdXBwb3J0LlRyYW5zZm9ybVRlc3RTdWl0ZSgKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3Rf dHJhbnNmb3Jtcy90ZXN0X2ZpbHRlci5weSBiL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfZmls dGVyLnB5Ci1pbmRleCBhZDgyYzJiLi4yNDBlMzc1IDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3Ry YW5zZm9ybXMvdGVzdF9maWx0ZXIucHkKLSsrKyBiL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3Rf ZmlsdGVyLnB5Ci1AQCAtNyw4ICs3LDkgQEAKLSAiIiIKLSBUZXN0cyBmb3IgZG9jdXRpbHMudHJh bnNmb3Jtcy5jb21wb25lbnRzLkZpbHRlci4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0 IGFic29sdXRlX2ltcG9ydAotIAotLWZyb20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1 cHBvcnQKLStmcm9tIC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSBmcm9tIGRvY3V0aWxz LnBhcnNlcnMucnN0IGltcG9ydCBQYXJzZXIKLSAKLSAKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3Rf dHJhbnNmb3Jtcy90ZXN0X2Zvb3Rub3Rlcy5weSBiL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3Rf Zm9vdG5vdGVzLnB5Ci1pbmRleCBhZTAxZWRmLi4wMjEzZTcxIDEwMDc1NQotLS0tIGEvdGVzdC90 ZXN0X3RyYW5zZm9ybXMvdGVzdF9mb290bm90ZXMucHkKLSsrKyBiL3Rlc3QvdGVzdF90cmFuc2Zv cm1zL3Rlc3RfZm9vdG5vdGVzLnB5Ci1AQCAtNyw4ICs3LDkgQEAKLSAiIiIKLSBUZXN0cyBmb3Ig ZG9jdXRpbHMudHJhbnNmb3Jtcy5yZWZlcmVuY2VzLkZvb3Rub3Rlcy4KLSAiIiIKLStmcm9tIF9f ZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAotLWZyb20gX19pbml0X18gaW1wb3J0 IERvY3V0aWxzVGVzdFN1cHBvcnQKLStmcm9tIC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQK LSBmcm9tIGRvY3V0aWxzLnRyYW5zZm9ybXMucmVmZXJlbmNlcyBpbXBvcnQgRm9vdG5vdGVzCi0g ZnJvbSBkb2N1dGlscy5wYXJzZXJzLnJzdCBpbXBvcnQgUGFyc2VyCi0gCi1kaWZmIC0tZ2l0IGEv dGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9oeXBlcmxpbmtzLnB5IGIvdGVzdC90ZXN0X3RyYW5z Zm9ybXMvdGVzdF9oeXBlcmxpbmtzLnB5Ci1pbmRleCBkZjRkNzkwLi4zNDljODEwIDEwMDc1NQot LS0tIGEvdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9oeXBlcmxpbmtzLnB5Ci0rKysgYi90ZXN0 L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X2h5cGVybGlua3MucHkKLUBAIC03LDEyICs3LDEyIEBACi0g IiIiCi0gVGVzdHMgZm9yIGRvY3V0aWxzLnRyYW5zZm9ybXMucmVmZXJlbmNlcy5IeXBlcmxpbmtz LgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0tZnJv bSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotK2Zyb20gLiBpbXBvcnQgRG9j dXRpbHNUZXN0U3VwcG9ydAotIGZyb20gZG9jdXRpbHMudHJhbnNmb3Jtcy5yZWZlcmVuY2VzIGlt cG9ydCBQcm9wYWdhdGVUYXJnZXRzLCBcCi0gICAgICBBbm9ueW1vdXNIeXBlcmxpbmtzLCBJbmRp cmVjdEh5cGVybGlua3MsIEV4dGVybmFsVGFyZ2V0cywgXAotICAgICAgSW50ZXJuYWxUYXJnZXRz LCBEYW5nbGluZ1JlZmVyZW5jZXMKLS0KLSBmcm9tIGRvY3V0aWxzLnBhcnNlcnMucnN0IGltcG9y dCBQYXJzZXIKLSAKLSAKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X21l c3NhZ2VzLnB5IGIvdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9tZXNzYWdlcy5weQotaW5kZXgg Mjk2ZmU5OC4uODk0OWM2MyAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3Rf bWVzc2FnZXMucHkKLSsrKyBiL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfbWVzc2FnZXMucHkK LUBAIC03LDggKzcsOSBAQAotICIiIgotIFRlc3RzIGZvciBkb2N1dGlscy50cmFuc2Zvcm1zLnVu aXZlcnNhbC5NZXNzYWdlcy4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRl X2ltcG9ydAotIAotLWZyb20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLStm cm9tIC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSBmcm9tIGRvY3V0aWxzLnRyYW5zZm9y bXMudW5pdmVyc2FsIGltcG9ydCBNZXNzYWdlcwotIGZyb20gZG9jdXRpbHMudHJhbnNmb3Jtcy5y ZWZlcmVuY2VzIGltcG9ydCBTdWJzdGl0dXRpb25zCi0gZnJvbSBkb2N1dGlscy5wYXJzZXJzLnJz dCBpbXBvcnQgUGFyc2VyCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9w ZXBzLnB5IGIvdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9wZXBzLnB5Ci1pbmRleCA1NTA1NTcy Li4xNmM0YmJiIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9wZXBzLnB5 Ci0rKysgYi90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X3BlcHMucHkKLUBAIC03LDggKzcsOSBA QAotICIiIgotIFRlc3RzIGZvciBkb2N1dGlscy50cmFuc2Zvcm1zLnBlcHMuCi0gIiIiCi0rZnJv bSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGlt cG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBw b3J0Ci0gZnJvbSBkb2N1dGlscy50cmFuc2Zvcm1zLnBlcHMgaW1wb3J0IFRhcmdldE5vdGVzCi0g ZnJvbSBkb2N1dGlscy5wYXJzZXJzLnJzdCBpbXBvcnQgUGFyc2VyCi0gCi1kaWZmIC0tZ2l0IGEv dGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9zZWN0bnVtLnB5IGIvdGVzdC90ZXN0X3RyYW5zZm9y bXMvdGVzdF9zZWN0bnVtLnB5Ci1pbmRleCA1MjVhNzI3Li5lMzg5YWVlIDEwMDc1NQotLS0tIGEv dGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF9zZWN0bnVtLnB5Ci0rKysgYi90ZXN0L3Rlc3RfdHJh bnNmb3Jtcy90ZXN0X3NlY3RudW0ucHkKLUBAIC04LDggKzgsOSBAQAotIFRlc3RzIGZvciBgZG9j dXRpbHMudHJhbnNmb3Jtcy5wYXJ0cy5TZWN0TnVtYCAodmlhCi0gYGRvY3V0aWxzLnRyYW5zZm9y bXMudW5pdmVyc2FsLkxhc3RSZWFkZXJQZW5kaW5nYCkuCi0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9f IGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGls c1Rlc3RTdXBwb3J0Ci0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gZnJvbSBk b2N1dGlscy50cmFuc2Zvcm1zLnJlZmVyZW5jZXMgaW1wb3J0IFN1YnN0aXR1dGlvbnMKLSBmcm9t IGRvY3V0aWxzLnBhcnNlcnMucnN0IGltcG9ydCBQYXJzZXIKLSAKLWRpZmYgLS1naXQgYS90ZXN0 L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X3NtYXJ0cXVvdGVzLnB5IGIvdGVzdC90ZXN0X3RyYW5zZm9y bXMvdGVzdF9zbWFydHF1b3Rlcy5weQotaW5kZXggZTI4NzRjMC4uZWI1YzQwMSAxMDA2NDQKLS0t LSBhL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3Rfc21hcnRxdW90ZXMucHkKLSsrKyBiL3Rlc3Qv dGVzdF90cmFuc2Zvcm1zL3Rlc3Rfc21hcnRxdW90ZXMucHkKLUBAIC0xNiwxMiArMTYsMTMgQEAK LSAiIiIKLSBUZXN0IG1vZHVsZSBmb3IgdW5pdmVyc2FsLlNtYXJ0UXVvdGVzIHRyYW5zZm9ybS4K LSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAotLQotLWZy b20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQgICMgbXVzdCBiZSBpbXBvcnRl ZCBiZWZvcmUgZG9jdXRpbHMKLStmcm9tIC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQgICMg bXVzdCBiZSBpbXBvcnRlZCBiZWZvcmUgZG9jdXRpbHMKLSBmcm9tIGRvY3V0aWxzLnRyYW5zZm9y bXMudW5pdmVyc2FsIGltcG9ydCBTbWFydFF1b3RlcwotIGZyb20gZG9jdXRpbHMucGFyc2Vycy5y c3QgaW1wb3J0IFBhcnNlcgotIAotKwotIGRlZiBzdWl0ZSgpOgotICAgICBwYXJzZXIgPSBQYXJz ZXIoKQotICAgICBzZXR0aW5ncyA9IHsnc21hcnRfcXVvdGVzJzogVHJ1ZX0KLWRpZmYgLS1naXQg YS90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X3N0cmlwX2NvbW1lbnRzLnB5IGIvdGVzdC90ZXN0 X3RyYW5zZm9ybXMvdGVzdF9zdHJpcF9jb21tZW50cy5weQotaW5kZXggZjU4NDA0Zi4uYTAzNDU3 YiAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3Rfc3RyaXBfY29tbWVudHMu cHkKLSsrKyBiL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3Rfc3RyaXBfY29tbWVudHMucHkKLUBA IC03LDggKzcsOSBAQAotICIiIgotIFRlc3RzIGZvciBkb2N1dGlscy50cmFuc2Zvcm1zLnVuaXZl cnNhbC5TdHJpcENvbW1lbnRzLgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1 dGVfaW1wb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAot K2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIGZyb20gZG9jdXRpbHMudHJhbnNm b3Jtcy51bml2ZXJzYWwgaW1wb3J0IFN0cmlwQ29tbWVudHMKLSBmcm9tIGRvY3V0aWxzLnBhcnNl cnMucnN0IGltcG9ydCBQYXJzZXIKLSAKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfdHJhbnNmb3Jt cy90ZXN0X3N0cmlwX2VsZW1lbnRzX3dpdGhfY2xhc3MucHkgYi90ZXN0L3Rlc3RfdHJhbnNmb3Jt cy90ZXN0X3N0cmlwX2VsZW1lbnRzX3dpdGhfY2xhc3MucHkKLWluZGV4IDY1MDM1ODYuLjExZTZh YTYgMTAwNjQ0Ci0tLS0gYS90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X3N0cmlwX2VsZW1lbnRz X3dpdGhfY2xhc3MucHkKLSsrKyBiL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3Rfc3RyaXBfZWxl bWVudHNfd2l0aF9jbGFzcy5weQotQEAgLTcsOCArNyw5IEBACi0gIiIiCi0gVGVzdHMgZm9yIGRv Y3V0aWxzLnRyYW5zZm9ybXMudW5pdmVyc2FsLlN0cmlwQ29tbWVudHMuCi0gIiIiCi0rZnJvbSBf X2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9y dCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0 Ci0gZnJvbSBkb2N1dGlscy5wYXJzZXJzLnJzdCBpbXBvcnQgUGFyc2VyCi0gZnJvbSBkb2N1dGls cy50cmFuc2Zvcm1zLnVuaXZlcnNhbCBpbXBvcnQgU3RyaXBDbGFzc2VzQW5kRWxlbWVudHMKLSAK LWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X3N1YnN0aXR1dGlvbnMucHkg Yi90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X3N1YnN0aXR1dGlvbnMucHkKLWluZGV4IDdlYTNl OGEuLjFlYzliZjEgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X3N1YnN0 aXR1dGlvbnMucHkKLSsrKyBiL3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3Rfc3Vic3RpdHV0aW9u cy5weQotQEAgLTcsOCArNyw5IEBACi0gIiIiCi0gVGVzdHMgZm9yIGRvY3V0aWxzLnRyYW5zZm9y bXMucmVmZXJlbmNlcy5TdWJzdGl0dXRpb25zLgotICIiIgotK2Zyb20gX19mdXR1cmVfXyBpbXBv cnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0 U3VwcG9ydAotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIGZyb20gZG9jdXRp bHMudHJhbnNmb3Jtcy5yZWZlcmVuY2VzIGltcG9ydCBTdWJzdGl0dXRpb25zCi0gZnJvbSBkb2N1 dGlscy5wYXJzZXJzLnJzdCBpbXBvcnQgUGFyc2VyCi0gCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0 X3RyYW5zZm9ybXMvdGVzdF90YXJnZXRfbm90ZXMucHkgYi90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90 ZXN0X3RhcmdldF9ub3Rlcy5weQotaW5kZXggM2JlNDAwMS4uZGNmYjQxMSAxMDA3NTUKLS0tLSBh L3Rlc3QvdGVzdF90cmFuc2Zvcm1zL3Rlc3RfdGFyZ2V0X25vdGVzLnB5Ci0rKysgYi90ZXN0L3Rl c3RfdHJhbnNmb3Jtcy90ZXN0X3RhcmdldF9ub3Rlcy5weQotQEAgLTgsOCArOCw5IEBACi0gVGVz dHMgZm9yIGBkb2N1dGlscy50cmFuc2Zvcm1zLnJlZmVyZW5jZXMuVGFyZ2V0Tm90ZXNgICh2aWEK LSBgZG9jdXRpbHMudHJhbnNmb3Jtcy51bml2ZXJzYWwuTGFzdFJlYWRlclBlbmRpbmdgKS4KLSAi IiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAotLWZyb20gX19p bml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLStmcm9tIC4gaW1wb3J0IERvY3V0aWxz VGVzdFN1cHBvcnQKLSBmcm9tIGRvY3V0aWxzLnRyYW5zZm9ybXMucmVmZXJlbmNlcyBpbXBvcnQg UHJvcGFnYXRlVGFyZ2V0cywgXAotICAgICAgQW5vbnltb3VzSHlwZXJsaW5rcywgSW5kaXJlY3RI eXBlcmxpbmtzLCBFeHRlcm5hbFRhcmdldHMsIFwKLSAgICAgIEludGVybmFsVGFyZ2V0cywgRGFu Z2xpbmdSZWZlcmVuY2VzLCBGb290bm90ZXMKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfdHJhbnNm b3Jtcy90ZXN0X3RyYW5zaXRpb25zLnB5IGIvdGVzdC90ZXN0X3RyYW5zZm9ybXMvdGVzdF90cmFu c2l0aW9ucy5weQotaW5kZXggYzhlY2FmZi4uNzEzNDdhMiAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVz dF90cmFuc2Zvcm1zL3Rlc3RfdHJhbnNpdGlvbnMucHkKLSsrKyBiL3Rlc3QvdGVzdF90cmFuc2Zv cm1zL3Rlc3RfdHJhbnNpdGlvbnMucHkKLUBAIC03LDExICs3LDEzIEBACi0gIiIiCi0gVGVzdCBt b2R1bGUgZm9yIG1pc2MuVHJhbnNpdGlvbnMgdHJhbnNmb3JtLgotICIiIgotK2Zyb20gX19mdXR1 cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9j dXRpbHNUZXN0U3VwcG9ydCAjIG11c3QgYmUgaW1wb3J0ZWQgYmVmb3JlIGRvY3V0aWxzCi0rZnJv bSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0ICMgbXVzdCBiZSBpbXBvcnRlZCBiZWZvcmUg ZG9jdXRpbHMKLSBmcm9tIGRvY3V0aWxzLnRyYW5zZm9ybXMubWlzYyBpbXBvcnQgVHJhbnNpdGlv bnMKLSBmcm9tIGRvY3V0aWxzLnBhcnNlcnMucnN0IGltcG9ydCBQYXJzZXIKLSAKLSsKLSBkZWYg c3VpdGUoKToKLSAgICAgcGFyc2VyID0gUGFyc2VyKCkKLSAgICAgcyA9IERvY3V0aWxzVGVzdFN1 cHBvcnQuVHJhbnNmb3JtVGVzdFN1aXRlKHBhcnNlcikKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3Rf dHJhbnNmb3Jtcy90ZXN0X3dyaXRlcl9hdXgucHkgYi90ZXN0L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0 X3dyaXRlcl9hdXgucHkKLWluZGV4IGZjMmUwZDMuLjcyNzIxMTUgMTAwNzU1Ci0tLS0gYS90ZXN0 L3Rlc3RfdHJhbnNmb3Jtcy90ZXN0X3dyaXRlcl9hdXgucHkKLSsrKyBiL3Rlc3QvdGVzdF90cmFu c2Zvcm1zL3Rlc3Rfd3JpdGVyX2F1eC5weQotQEAgLTcsOCArNyw5IEBACi0gIiIiCi0gVGVzdCBt b2R1bGUgZm9yIHdyaXRlcl9hdXggdHJhbnNmb3Jtcy4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18g aW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAotLWZyb20gX19pbml0X18gaW1wb3J0IERvY3V0aWxz VGVzdFN1cHBvcnQgIyBtdXN0IGJlIGltcG9ydGVkIGJlZm9yZSBkb2N1dGlscwotK2Zyb20gLiBp bXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydCAjIG11c3QgYmUgaW1wb3J0ZWQgYmVmb3JlIGRvY3V0 aWxzCi0gZnJvbSBkb2N1dGlscy50cmFuc2Zvcm1zIGltcG9ydCB3cml0ZXJfYXV4Ci0gZnJvbSBk b2N1dGlscy5wYXJzZXJzLnJzdCBpbXBvcnQgUGFyc2VyCi0gCi1kaWZmIC0tZ2l0IGEvdGVzdC90 ZXN0X3dyaXRlcnMvdGVzdF9kb2N1dGlsc194bWwucHkgYi90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0 X2RvY3V0aWxzX3htbC5weQotaW5kZXggOTg1NDFjZi4uNWE2Y2RhMyAxMDA3NTUKLS0tLSBhL3Rl c3QvdGVzdF93cml0ZXJzL3Rlc3RfZG9jdXRpbHNfeG1sLnB5Ci0rKysgYi90ZXN0L3Rlc3Rfd3Jp dGVycy90ZXN0X2RvY3V0aWxzX3htbC5weQotQEAgLTEzLDEwICsxMywxMSBAQCBUZXN0IGZvciBk b2N1dGlscyBYTUwgd3JpdGVyLgotICAgIGBgPGVtcHR5PjwvZW1wdHk+YGAgdnMuIGBgPGVtcHR5 Lz5gYC4gVGhlIHNhbXBsZSBzdHJpbmdzIGluIHRoaXMgdGVzdAotICAgIG1vZHVsZSBtaXJyb3Jz IHRoZSBjdXJyZW50IGJlaGF2aW91ciBvZiB0aGUgZG9jdXRpbHNfeG1sIHdyaXRlci4KLSAiIiIK LStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAotIGZyb20gU3RyaW5n SU8gaW1wb3J0IFN0cmluZ0lPCi0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0 U3VwcG9ydCAjIG11c3QgYmUgaW1wb3J0ZWQgYmVmb3JlIGRvY3V0aWxzCi0rZnJvbSAuIGltcG9y dCBEb2N1dGlsc1Rlc3RTdXBwb3J0ICMgbXVzdCBiZSBpbXBvcnRlZCBiZWZvcmUgZG9jdXRpbHMK LSBpbXBvcnQgZG9jdXRpbHMKLSBpbXBvcnQgZG9jdXRpbHMuY29yZQotIAotZGlmZiAtLWdpdCBh L3Rlc3QvdGVzdF93cml0ZXJzL3Rlc3RfZ2V0X3dyaXRlcl9jbGFzcy5weSBiL3Rlc3QvdGVzdF93 cml0ZXJzL3Rlc3RfZ2V0X3dyaXRlcl9jbGFzcy5weQotaW5kZXggNzhlNmU4YS4uNmFmNzA5NyAx MDA2NDQKLS0tLSBhL3Rlc3QvdGVzdF93cml0ZXJzL3Rlc3RfZ2V0X3dyaXRlcl9jbGFzcy5weQot KysrIGIvdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9nZXRfd3JpdGVyX2NsYXNzLnB5Ci1AQCAtOCwx MCArOCwxMiBAQAotICIiIgotIHRlc3QgZ2V0X3dyaXRlcl9jbGFzcwotICIiIgotK2Zyb20gX19m dXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQg RG9jdXRpbHNUZXN0U3VwcG9ydAotK2Zyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAot IGZyb20gZG9jdXRpbHMud3JpdGVycyBpbXBvcnQgZ2V0X3dyaXRlcl9jbGFzcwotIAotKwotIGNs YXNzIEdldFdyaXRlckNsYXNzVGVzdENhc2UoRG9jdXRpbHNUZXN0U3VwcG9ydC5TdGFuZGFyZFRl c3RDYXNlKToKLSAgICAgI3Rlc3RzID0gKCAoJ21hbnBhZ2UnLCAxKSwgKCdub3BlJywgMCksICgn ZHVtbXktd3JpdGVyJywgMSkpCi0gCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3dyaXRlcnMvdGVz dF9odG1sNGNzczFfbWlzYy5weSBiL3Rlc3QvdGVzdF93cml0ZXJzL3Rlc3RfaHRtbDRjc3MxX21p c2MucHkKLWluZGV4IDdkZjAxNzYuLjUzNGViY2UgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3Rfd3Jp dGVycy90ZXN0X2h0bWw0Y3NzMV9taXNjLnB5Ci0rKysgYi90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0 X2h0bWw0Y3NzMV9taXNjLnB5Ci1AQCAtOSwxMSArOSwxNCBAQAotICIiIgotIE1pc2NlbGxhbmVv dXMgSFRNTCB3cml0ZXIgdGVzdHMuCi0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNv bHV0ZV9pbXBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0 Ci0tZnJvbSBkb2N1dGlscyBpbXBvcnQgY29yZQotIGltcG9ydCBvcwotIAotK2Zyb20gLl9faW5p dF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0rZnJvbSBkb2N1dGlscyBpbXBvcnQgY29y ZQotKwotKwotIGNsYXNzIEVuY29kaW5nVGVzdENhc2UoRG9jdXRpbHNUZXN0U3VwcG9ydC5TdGFu ZGFyZFRlc3RDYXNlKToKLSAKLSAgICAgZGVmIHRlc3RfeG1sY2hhcnJlZnJlcGxhY2Uoc2VsZik6 Ci1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9odG1sNGNzczFfcGFydHMucHkg Yi90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X2h0bWw0Y3NzMV9wYXJ0cy5weQotaW5kZXggNjRhYzJh Yy4uOTE0MGNiYSAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF93cml0ZXJzL3Rlc3RfaHRtbDRjc3Mx X3BhcnRzLnB5Ci0rKysgYi90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X2h0bWw0Y3NzMV9wYXJ0cy5w eQotQEAgLTExLDEwICsxMSwxMiBAQCBOb3RlOiB0aGUgJ2JvZHknIGFuZCAnd2hvbGUnIGVudHJp ZXMgaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgcGFydHMKLSBkaWN0aW9uYXJpZXMgKHJlZHVu ZGFudCksIGFsb25nIHdpdGggJ21ldGEnIGFuZCAnc3R5bGVzaGVldCcgZW50cmllcyB3aXRoCi0g c3RhbmRhcmQgdmFsdWVzLCBhbmQgYW55IGVudHJpZXMgd2l0aCBlbXB0eSB2YWx1ZXMuCi0gIiIi Ci0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSAKLS1mcm9tIF9faW5p dF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rl c3RTdXBwb3J0Ci0gZnJvbSBkb2N1dGlscyBpbXBvcnQgY29yZQotIAotKwotIGRlZiBzdWl0ZSgp OgotICAgICBzID0gRG9jdXRpbHNUZXN0U3VwcG9ydC5IdG1sUHVibGlzaFBhcnRzVGVzdFN1aXRl KCkKLSAgICAgcy5nZW5lcmF0ZVRlc3RzKHRvdGVzdCkKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3Rf d3JpdGVycy90ZXN0X2h0bWw0Y3NzMV90ZW1wbGF0ZS5weSBiL3Rlc3QvdGVzdF93cml0ZXJzL3Rl c3RfaHRtbDRjc3MxX3RlbXBsYXRlLnB5Ci1pbmRleCA5NTRmMzE5Li44OGVmZjM2IDEwMDc1NQot LS0tIGEvdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9odG1sNGNzczFfdGVtcGxhdGUucHkKLSsrKyBi L3Rlc3QvdGVzdF93cml0ZXJzL3Rlc3RfaHRtbDRjc3MxX3RlbXBsYXRlLnB5Ci1AQCAtNywxMSAr NywxMiBAQAotICIiIgotIFRlc3RzIGZvciB0aGUgSFRNTCB3cml0ZXIuCi0gIiIiCi0rZnJvbSBf X2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSAKLSBpbXBvcnQgb3MKLSBpbXBvcnQg cGxhdGZvcm0KLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0r ZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0gCi0gZGVmIHN1aXRlKCk6Ci1k aWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9odG1sNV9wb2x5Z2xvdF9taXNjLnB5 IGIvdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9odG1sNV9wb2x5Z2xvdF9taXNjLnB5Ci1pbmRleCA3 ZjE0MTMzLi45ZmVjNjVmIDEwMDY0NAotLS0tIGEvdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9odG1s NV9wb2x5Z2xvdF9taXNjLnB5Ci0rKysgYi90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X2h0bWw1X3Bv bHlnbG90X21pc2MucHkKLUBAIC05LDExICs5LDE0IEBACi0gIiIiCi0gTWlzY2VsbGFuZW91cyBI VE1MIHdyaXRlciB0ZXN0cy4KLSAiIiIKLStmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRl X2ltcG9ydAotIAotLWZyb20gX19pbml0X18gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLS1m cm9tIGRvY3V0aWxzIGltcG9ydCBjb3JlCi0gaW1wb3J0IG9zCi0gCi0rZnJvbSAuIGltcG9ydCBE b2N1dGlsc1Rlc3RTdXBwb3J0Ci0rZnJvbSBkb2N1dGlscyBpbXBvcnQgY29yZQotKwotKwotIGNs YXNzIEVuY29kaW5nVGVzdENhc2UoRG9jdXRpbHNUZXN0U3VwcG9ydC5TdGFuZGFyZFRlc3RDYXNl KToKLSAKLSAgICAgZGVmIHRlc3RfeG1sY2hhcnJlZnJlcGxhY2Uoc2VsZik6Ci1kaWZmIC0tZ2l0 IGEvdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9odG1sNV9wb2x5Z2xvdF9wYXJ0cy5weSBiL3Rlc3Qv dGVzdF93cml0ZXJzL3Rlc3RfaHRtbDVfcG9seWdsb3RfcGFydHMucHkKLWluZGV4IGNiMzIzYjcu LjYwZmY2ODkgMTAwNjQ0Ci0tLS0gYS90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X2h0bWw1X3BvbHln bG90X3BhcnRzLnB5Ci0rKysgYi90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X2h0bWw1X3BvbHlnbG90 X3BhcnRzLnB5Ci1AQCAtMTEsOCArMTEsOSBAQCBOb3RlOiB0aGUgJ2JvZHknIGFuZCAnd2hvbGUn IGVudHJpZXMgaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgcGFydHMKLSBkaWN0aW9uYXJpZXMg KHJlZHVuZGFudCksIGFsb25nIHdpdGggJ21ldGEnIGFuZCAnc3R5bGVzaGVldCcgZW50cmllcyB3 aXRoCi0gc3RhbmRhcmQgdmFsdWVzLCBhbmQgYW55IGVudHJpZXMgd2l0aCBlbXB0eSB2YWx1ZXMu Ci0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSAKLS1mcm9t IF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0rZnJvbSAuIGltcG9ydCBEb2N1 dGlsc1Rlc3RTdXBwb3J0Ci0gZnJvbSBEb2N1dGlsc1Rlc3RTdXBwb3J0IGltcG9ydCAoSHRtbFdy aXRlclB1Ymxpc2hQYXJ0c1Rlc3RDYXNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEh0bWxQdWJsaXNoUGFydHNUZXN0U3VpdGUpCi0gZnJvbSBkb2N1dGlscyBpbXBvcnQgY29y ZSwgX192ZXJzaW9uX18KLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X2xhdGV4 MmUucHkgYi90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X2xhdGV4MmUucHkKLWluZGV4IDg4YmExYTcu LmU5ZGVmZWIgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X2xhdGV4MmUucHkK LSsrKyBiL3Rlc3QvdGVzdF93cml0ZXJzL3Rlc3RfbGF0ZXgyZS5weQotQEAgLTgsOSArOCwxMiBA QAotICIiIgotIFRlc3RzIGZvciBsYXRleDJlIHdyaXRlci4KLSAiIiIKLStmcm9tIF9fZnV0dXJl X18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAotIAotIGltcG9ydCBzdHJpbmcKLS1mcm9tIF9faW5p dF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0rCi0rZnJvbSAuIGltcG9ydCBEb2N1dGls c1Rlc3RTdXBwb3J0Ci0rCi0gCi0gZGVmIHN1aXRlKCk6Ci0gICAgIHNldHRpbmdzID0geyd1c2Vf bGF0ZXhfdG9jJzogRmFsc2V9Ci1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9t YW5wYWdlLnB5IGIvdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9tYW5wYWdlLnB5Ci1pbmRleCBlZWM1 NDAwLi5hMjIwNDQ0IDEwMDY0NAotLS0tIGEvdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9tYW5wYWdl LnB5Ci0rKysgYi90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X21hbnBhZ2UucHkKLUBAIC03LDggKzcs MTAgQEAKLSAiIiIKLSBUZXN0cyBmb3IgbWFucGFnZSB3cml0ZXIuCi0gIiIiCi0rZnJvbSBfX2Z1 dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSsKLStmcm9tIC4gaW1wb3J0IERvY3V0aWxz VGVzdFN1cHBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0 Ci0gCi0gZGVmIHN1aXRlKCk6Ci0gICAgIHNldHRpbmdzID0ge30KLWRpZmYgLS1naXQgYS90ZXN0 L3Rlc3Rfd3JpdGVycy90ZXN0X251bGwucHkgYi90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X251bGwu cHkKLWluZGV4IGM3NWY4YTkuLjNjYzhmMzcgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3Rfd3JpdGVy cy90ZXN0X251bGwucHkKLSsrKyBiL3Rlc3QvdGVzdF93cml0ZXJzL3Rlc3RfbnVsbC5weQotQEAg LTcsOCArNywxMCBAQAotICIiIgotIFRlc3QgZm9yIE51bGwgd3JpdGVyLgotICIiIgotK2Zyb20g X19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0rCi0rZnJvbSAuIGltcG9ydCBEb2N1 dGlsc1Rlc3RTdXBwb3J0Ci0gCi0tZnJvbSBfX2luaXRfXyBpbXBvcnQgRG9jdXRpbHNUZXN0U3Vw cG9ydAotIAotIGRlZiBzdWl0ZSgpOgotICAgICBzID0gRG9jdXRpbHNUZXN0U3VwcG9ydC5QdWJs aXNoVGVzdFN1aXRlKCdudWxsJykKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0 X29kdC5weSBiL3Rlc3QvdGVzdF93cml0ZXJzL3Rlc3Rfb2R0LnB5Ci1pbmRleCAwZWZlYWU2Li5h NDdiN2ZiIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9vZHQucHkKLSsrKyBi L3Rlc3QvdGVzdF93cml0ZXJzL3Rlc3Rfb2R0LnB5Ci1AQCAtMjksNiArMjksNyBAQCBJbnN0cnVj dGlvbnMgZm9yIGFkZGluZyBhIG5ldyB0ZXN0OgotIDUuIElmIGFueSBvdGhlciB0ZXN0cyBmYWls LCB0aGF0J3MgYSBwb3NzaWJsZSByZWdyZXNzaW9uLgotIAotICIiIgotK2Zyb20gX19mdXR1cmVf XyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0gaW1wb3J0IHN5cwotIGltcG9ydCBvcwotQEAg LTM2LDcgKzM3LDcgQEAgaW1wb3J0IHppcGZpbGUKLSBmcm9tIHhtbC5kb20gaW1wb3J0IG1pbmlk b20KLSBpbXBvcnQgdGVtcGZpbGUKLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rl c3RTdXBwb3J0Ci0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0gaW1wb3J0 IGRvY3V0aWxzCi0gaW1wb3J0IGRvY3V0aWxzLmNvcmUKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3Rf d3JpdGVycy90ZXN0X3BzZXVkb3htbC5weSBiL3Rlc3QvdGVzdF93cml0ZXJzL3Rlc3RfcHNldWRv eG1sLnB5Ci1pbmRleCA5ZGZhNzE0Li4xODdkZGU5IDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3dy aXRlcnMvdGVzdF9wc2V1ZG94bWwucHkKLSsrKyBiL3Rlc3QvdGVzdF93cml0ZXJzL3Rlc3RfcHNl dWRveG1sLnB5Ci1AQCAtNyw4ICs3LDEwIEBACi0gIiIiCi0gVGVzdCBmb3IgcHNldWRvLVhNTCB3 cml0ZXIuCi0gIiIiCi0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSsK LStmcm9tIC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLS1mcm9tIF9faW5pdF9fIGlt cG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0gZGVmIHN1aXRlKCk6Ci0gICAgIHMgPSBEb2N1 dGlsc1Rlc3RTdXBwb3J0LlB1Ymxpc2hUZXN0U3VpdGUoJ3BzZXVkb3htbCcpCi1kaWZmIC0tZ2l0 IGEvdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9zNS5weSBiL3Rlc3QvdGVzdF93cml0ZXJzL3Rlc3Rf czUucHkKLWluZGV4IDUxOTcyZjMuLjFlOTU1ZDMgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3Rfd3Jp dGVycy90ZXN0X3M1LnB5Ci0rKysgYi90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X3M1LnB5Ci1AQCAt NywxMSArNywxMiBAQAotICIiIgotIFRlc3RzIGZvciB0aGUgUzUvSFRNTCB3cml0ZXIuCi0gIiIi Ci0rZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKLSAKLSBpbXBvcnQgb3MK LSBpbXBvcnQgcGxhdGZvcm0KLSAKLS1mcm9tIF9faW5pdF9fIGltcG9ydCBEb2N1dGlsc1Rlc3RT dXBwb3J0Ci0rZnJvbSAuIGltcG9ydCBEb2N1dGlsc1Rlc3RTdXBwb3J0Ci0gCi0gCi0gZGVmIHN1 aXRlKCk6Ci0tLSAKLTIuMjQuMC4zNzUuZ2ViNWFlNjhkNDEKLQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDEwLXB5My1Vc2Utc29ydGVkLWZvby1pbnN0ZWFk LW9mLWZvby5zb3J0LnBhdGNoIGIvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDEw LXB5My1Vc2Utc29ydGVkLWZvby1pbnN0ZWFkLW9mLWZvby5zb3J0LnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCBkZWVjMTYyYzM3Ny4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtn cy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDEwLXB5My1Vc2Utc29ydGVkLWZvby1pbnN0ZWFk LW9mLWZvby5zb3J0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjM2ICswLDAgQEAKLUZyb20g NDZkNzFlZjE0NmQ1ZmU3NGIwMTg2NjkzZjkxYTVmNDc1ODViMWQ3OSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKLUZyb206IFN0ZXBoZW4gRmludWNhbmUgPHN0ZXBoZW5AdGhhdC5ndXJ1PgotRGF0 ZTogTW9uLCAyNiBBdWcgMjAxOSAxNjo0NDo1MSArMDAwMAotU3ViamVjdDogW1BBVENIIDEwLzI2 XSBweTM6IFVzZSAnc29ydGVkKGZvbyknIGluc3RlYWQgb2YgJ2Zvby5zb3J0KCknCi0KLVRoaXMg d29ya3Mgd2l0aCBpdGVyYXRvcnMgYWxzbyAobGlrZSAnZGljdC5rZXlzKCknIGluIFB5dGhvbiAz KQotCi1TaWduZWQtb2ZmLWJ5OiBTdGVwaGVuIEZpbnVjYW5lIDxzdGVwaGVuQHRoYXQuZ3VydT4K LQotZ2l0LXN2bi1pZDogaHR0cDovL3N2bi5jb2RlLnNmLm5ldC9wL2RvY3V0aWxzL2NvZGUvdHJ1 bmtAODM1NyA5Mjk1NDNmNi1lNGYyLTAzMTAtOThhNi1iYTNiZDNkZDFkMDQKLVNpZ25lZC1vZmYt Ynk6IERvYW4gVHJhbiBDb25nIERhbmggPGNvbmdkYW5ocXhAZ21haWwuY29tPgotLS0tCi0gZG9j dXRpbHMvbm9kZXMucHkgICAgICAgICAgICAgICAgICAgICAgIHwgNiArKy0tLS0KLSBkb2N1dGls cy9wYXJzZXJzL3JzdC90YWJsZXBhcnNlci5weSAgICAgfCAzICstLQotIGRvY3V0aWxzL3RyYW5z Zm9ybXMvX19pbml0X18ucHkgICAgICAgICB8IDMgKy0tCi0gZG9jdXRpbHMvdXRpbHMvbWF0aC9t YXRoMmh0bWwucHkgICAgICAgIHwgMyArLS0KLSBkb2N1dGlscy93cml0ZXJzL19odG1sX2Jhc2Uu cHkgICAgICAgICAgfCAzICstLQotIGRvY3V0aWxzL3dyaXRlcnMvbGF0ZXgyZS9fX2luaXRfXy5w eSAgICB8IDMgKy0tCi0gdGVzdC9Eb2N1dGlsc1Rlc3RTdXBwb3J0LnB5ICAgICAgICAgICAgIHwg MyArLS0KLSB0ZXN0L3Rlc3RfZGVwZW5kZW5jaWVzLnB5ICAgICAgICAgICAgICAgfCA5ICsrKy0t LS0tLQotIHRlc3QvdGVzdF9sYW5ndWFnZS5weSAgICAgICAgICAgICAgICAgICB8IDYgKystLS0t Ci0gdG9vbHMvZGV2L2dlbmVyYXRlX3B1bmN0dWF0aW9uX2NoYXJzLnB5IHwgMyArLS0KLSB0b29s cy9kZXYvdW5pY29kZTJyc3RzdWJzLnB5ICAgICAgICAgICAgfCA2ICsrLS0tLQotIDExIGZpbGVz IGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDMyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0 IGEvZG9jdXRpbHMvbm9kZXMucHkgYi9kb2N1dGlscy9ub2Rlcy5weQotaW5kZXggYThjMDQ3OC4u ZTI5Yjg4NyAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL25vZGVzLnB5Ci0rKysgYi9kb2N1dGlscy9u b2Rlcy5weQotQEAgLTY0OSw4ICs2NDksNyBAQCBjbGFzcyBFbGVtZW50KE5vZGUpOgotICAgICAg ICAgcmV0dXJuIGF0dHMKLSAKLSAgICAgZGVmIGF0dGxpc3Qoc2VsZik6Ci0tICAgICAgICBhdHRs aXN0ID0gc2VsZi5ub25fZGVmYXVsdF9hdHRyaWJ1dGVzKCkuaXRlbXMoKQotLSAgICAgICAgYXR0 bGlzdC5zb3J0KCkKLSsgICAgICAgIGF0dGxpc3QgPSBzb3J0ZWQoc2VsZi5ub25fZGVmYXVsdF9h dHRyaWJ1dGVzKCkuaXRlbXMoKSkKLSAgICAgICAgIHJldHVybiBhdHRsaXN0Ci0gCi0gICAgIGRl ZiBnZXQoc2VsZiwga2V5LCBmYWlsb2JqPU5vbmUpOgotQEAgLTE3ODIsOCArMTc4MSw3IEBAIGNs YXNzIHBlbmRpbmcoU3BlY2lhbCwgSW52aXNpYmxlLCBFbGVtZW50KToKLSAgICAgICAgICAgICAg ICcgICAgIC50cmFuc2Zvcm06ICVzLiVzJyAlIChzZWxmLnRyYW5zZm9ybS5fX21vZHVsZV9fLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudHJhbnNmb3Jt Ll9fbmFtZV9fKSwKLSAgICAgICAgICAgICAgICcgICAgIC5kZXRhaWxzOiddCi0tICAgICAgICBk ZXRhaWxzID0gc2VsZi5kZXRhaWxzLml0ZW1zKCkKLS0gICAgICAgIGRldGFpbHMuc29ydCgpCi0r ICAgICAgICBkZXRhaWxzID0gc29ydGVkKHNlbGYuZGV0YWlscy5pdGVtcygpKQotICAgICAgICAg Zm9yIGtleSwgdmFsdWUgaW4gZGV0YWlsczoKLSAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHZh bHVlLCBOb2RlKToKLSAgICAgICAgICAgICAgICAgaW50ZXJuYWxzLmFwcGVuZCgnJTdzJXM6JyAl ICgnJywga2V5KSkKLWRpZmYgLS1naXQgYS9kb2N1dGlscy9wYXJzZXJzL3JzdC90YWJsZXBhcnNl ci5weSBiL2RvY3V0aWxzL3BhcnNlcnMvcnN0L3RhYmxlcGFyc2VyLnB5Ci1pbmRleCAyNzYwZWEw Li45MzdhZWM4IDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvcGFyc2Vycy9yc3QvdGFibGVwYXJzZXIu cHkKLSsrKyBiL2RvY3V0aWxzL3BhcnNlcnMvcnN0L3RhYmxlcGFyc2VyLnB5Ci1AQCAtMjg2LDgg KzI4Niw3IEBAIGNsYXNzIEdyaWRUYWJsZVBhcnNlcihUYWJsZVBhcnNlcik6Ci0gICAgICAgICBG cm9tIHRoZSBkYXRhIGNvbGxlY3RlZCBieSBgc2Nhbl9jZWxsKClgLCBjb252ZXJ0IHRvIHRoZSBm aW5hbCBkYXRhCi0gICAgICAgICBzdHJ1Y3R1cmUuCi0gICAgICAgICAiIiIKLS0gICAgICAgIHJv d3NlcHMgPSBzZWxmLnJvd3NlcHMua2V5cygpICAgIyBsaXN0IG9mIHJvdyBib3VuZGFyaWVzCi0t ICAgICAgICByb3dzZXBzLnNvcnQoKQotKyAgICAgICAgcm93c2VwcyA9IHNvcnRlZChzZWxmLnJv d3NlcHMua2V5cygpKSAgICMgbGlzdCBvZiByb3cgYm91bmRhcmllcwotICAgICAgICAgcm93aW5k ZXggPSB7fQotICAgICAgICAgZm9yIGkgaW4gcmFuZ2UobGVuKHJvd3NlcHMpKToKLSAgICAgICAg ICAgICByb3dpbmRleFtyb3dzZXBzW2ldXSA9IGkgICAgIyByb3cgYm91bmRhcnkgLT4gcm93IG51 bWJlciBtYXBwaW5nCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvdHJhbnNmb3Jtcy9fX2luaXRfXy5w eSBiL2RvY3V0aWxzL3RyYW5zZm9ybXMvX19pbml0X18ucHkKLWluZGV4IDkyNzExMzMuLmQ0NDRm Y2UgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy90cmFuc2Zvcm1zL19faW5pdF9fLnB5Ci0rKysgYi9k b2N1dGlscy90cmFuc2Zvcm1zL19faW5pdF9fLnB5Ci1AQCAtMTUzLDggKzE1Myw3IEBAIGNsYXNz IFRyYW5zZm9ybWVyKFRyYW5zZm9ybVNwZWMpOgotICAgICAgICAgdW5rbm93bl9yZWZlcmVuY2Vf cmVzb2x2ZXJzID0gW10KLSAgICAgICAgIGZvciBpIGluIGNvbXBvbmVudHM6Ci0gICAgICAgICAg ICAgdW5rbm93bl9yZWZlcmVuY2VfcmVzb2x2ZXJzLmV4dGVuZChpLnVua25vd25fcmVmZXJlbmNl X3Jlc29sdmVycykKLS0gICAgICAgIGRlY29yYXRlZF9saXN0ID0gWyhmLnByaW9yaXR5LCBmKSBm b3IgZiBpbiB1bmtub3duX3JlZmVyZW5jZV9yZXNvbHZlcnNdCi0tICAgICAgICBkZWNvcmF0ZWRf bGlzdC5zb3J0KCkKLSsgICAgICAgIGRlY29yYXRlZF9saXN0ID0gc29ydGVkKFsoZi5wcmlvcml0 eSwgZikgZm9yIGYgaW4gdW5rbm93bl9yZWZlcmVuY2VfcmVzb2x2ZXJzXSkKLSAgICAgICAgIHNl bGYudW5rbm93bl9yZWZlcmVuY2VfcmVzb2x2ZXJzLmV4dGVuZChbZlsxXSBmb3IgZiBpbiBkZWNv cmF0ZWRfbGlzdF0pCi0gCi0gICAgIGRlZiBhcHBseV90cmFuc2Zvcm1zKHNlbGYpOgotZGlmZiAt LWdpdCBhL2RvY3V0aWxzL3V0aWxzL21hdGgvbWF0aDJodG1sLnB5IGIvZG9jdXRpbHMvdXRpbHMv bWF0aC9tYXRoMmh0bWwucHkKLWluZGV4IDRhNzIwOWQuLmFkY2IxY2MgMTAwNjQ0Ci0tLS0gYS9k b2N1dGlscy91dGlscy9tYXRoL21hdGgyaHRtbC5weQotKysrIGIvZG9jdXRpbHMvdXRpbHMvbWF0 aC9tYXRoMmh0bWwucHkKLUBAIC0yMTkzLDkgKzIxOTMsOCBAQCBjbGFzcyBDb250YWluZXIob2Jq ZWN0KToKLSAKLSAgIGRlZiBlc2NhcGUoc2VsZiwgbGluZSwgcmVwbGFjZW1lbnRzID0gRXNjYXBl Q29uZmlnLmVudGl0aWVzKToKLSAgICAgIkVzY2FwZSBhIGxpbmUgd2l0aCByZXBsYWNlbWVudHMg ZnJvbSBlbHl4ZXIuYSBtYXAiCi0tICAgIHBpZWNlcyA9IHJlcGxhY2VtZW50cy5rZXlzKCkKLSsg ICAgcGllY2VzID0gc29ydGVkKHJlcGxhY2VtZW50cy5rZXlzKCkpCi0gICAgICMgZG8gdGhlbSBp biBvcmRlcgotLSAgICBwaWVjZXMuc29ydCgpCi0gICAgIGZvciBwaWVjZSBpbiBwaWVjZXM6Ci0g ICAgICAgaWYgcGllY2UgaW4gbGluZToKLSAgICAgICAgIGxpbmUgPSBsaW5lLnJlcGxhY2UocGll Y2UsIHJlcGxhY2VtZW50c1twaWVjZV0pCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvd3JpdGVycy9f aHRtbF9iYXNlLnB5IGIvZG9jdXRpbHMvd3JpdGVycy9faHRtbF9iYXNlLnB5Ci1pbmRleCBhN2Yz YjUzLi5hOTU3MzExIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvd3JpdGVycy9faHRtbF9iYXNlLnB5 Ci0rKysgYi9kb2N1dGlscy93cml0ZXJzL19odG1sX2Jhc2UucHkKLUBAIC0zNjYsOCArMzY2LDcg QEAgY2xhc3MgSFRNTFRyYW5zbGF0b3Iobm9kZXMuTm9kZVZpc2l0b3IpOgotICAgICAgICAgICAg ICAgICAgICAgIyBOb24tZW1wdHkgdGFnLiAgUGxhY2UgdGhlIGF1eGlsaWFyeSA8c3Bhbj4gdGFn Ci0gICAgICAgICAgICAgICAgICAgICAjICppbnNpZGUqIHRoZSBlbGVtZW50LCBhcyB0aGUgZmly c3QgY2hpbGQuCi0gICAgICAgICAgICAgICAgICAgICBzdWZmaXggKz0gJzxzcGFuIGlkPSIlcyI+ PC9zcGFuPicgJSBpZAotLSAgICAgICAgYXR0bGlzdCA9IGF0dHMuaXRlbXMoKQotLSAgICAgICAg YXR0bGlzdC5zb3J0KCkKLSsgICAgICAgIGF0dGxpc3QgPSBzb3J0ZWQoYXR0cy5pdGVtcygpKQot ICAgICAgICAgcGFydHMgPSBbdGFnbmFtZV0KLSAgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBh dHRsaXN0OgotICAgICAgICAgICAgICMgdmFsdWU9Tm9uZSB3YXMgdXNlZCBmb3IgYm9vbGVhbiBh dHRyaWJ1dGVzIHdpdGhvdXQKLWRpZmYgLS1naXQgYS9kb2N1dGlscy93cml0ZXJzL2xhdGV4MmUv X19pbml0X18ucHkgYi9kb2N1dGlscy93cml0ZXJzL2xhdGV4MmUvX19pbml0X18ucHkKLWluZGV4 IGUyMWM3NGIuLjI0OWVjNGEgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy93cml0ZXJzL2xhdGV4MmUv X19pbml0X18ucHkKLSsrKyBiL2RvY3V0aWxzL3dyaXRlcnMvbGF0ZXgyZS9fX2luaXRfXy5weQot QEAgLTQ1Nyw4ICs0NTcsNyBAQCBjbGFzcyBTb3J0YWJsZURpY3QoZGljdCk6Ci0gICAgICIiIgot ICAgICBkZWYgc29ydGVka2V5cyhzZWxmKToKLSAgICAgICAgICIiIlJldHVybiBzb3J0ZWQgbGlz dCBvZiBrZXlzIiIiCi0tICAgICAgICBrZXlzID0gc2VsZi5rZXlzKCkKLS0gICAgICAgIGtleXMu c29ydCgpCi0rICAgICAgICBrZXlzID0gc29ydGVkKHNlbGYua2V5cygpKQotICAgICAgICAgcmV0 dXJuIGtleXMKLSAKLSAgICAgZGVmIHNvcnRlZHZhbHVlcyhzZWxmKToKLWRpZmYgLS1naXQgYS90 ZXN0L0RvY3V0aWxzVGVzdFN1cHBvcnQucHkgYi90ZXN0L0RvY3V0aWxzVGVzdFN1cHBvcnQucHkK LWluZGV4IGExZmVjMjUuLjIxZWE5ODIgMTAwNjQ0Ci0tLS0gYS90ZXN0L0RvY3V0aWxzVGVzdFN1 cHBvcnQucHkKLSsrKyBiL3Rlc3QvRG9jdXRpbHNUZXN0U3VwcG9ydC5weQotQEAgLTgxNSw4ICs4 MTUsNyBAQCBjbGFzcyBIdG1sV3JpdGVyUHVibGlzaFBhcnRzVGVzdENhc2UoV3JpdGVyUHVibGlz aFRlc3RDYXNlKToKLSAgICAgICAgICAgICBpZiBub3QgcGFydHNba2V5XToKLSAgICAgICAgICAg ICAgICAgZGVsIHBhcnRzW2tleV0KLSAgICAgICAgICMgc3RhbmRhcmQgb3V0cHV0IGZvcm1hdDoK LS0gICAgICAgIGtleXMgPSBwYXJ0cy5rZXlzKCkKLS0gICAgICAgIGtleXMuc29ydCgpCi0rICAg ICAgICBrZXlzID0gc29ydGVkKHBhcnRzLmtleXMoKSkKLSAgICAgICAgIG91dHB1dCA9IFtdCi0g ICAgICAgICBmb3Iga2V5IGluIGtleXM6Ci0gICAgICAgICAgICAgb3V0cHV0LmFwcGVuZCgiJXI6 ICcnJyVzJycnIgotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9kZXBlbmRlbmNpZXMucHkgYi90ZXN0 L3Rlc3RfZGVwZW5kZW5jaWVzLnB5Ci1pbmRleCAyOThlOGE0Li4wOTM5YjZkIDEwMDc1NQotLS0t IGEvdGVzdC90ZXN0X2RlcGVuZGVuY2llcy5weQotKysrIGIvdGVzdC90ZXN0X2RlcGVuZGVuY2ll cy5weQotQEAgLTU0LDkgKzU0LDggQEAgY2xhc3MgUmVjb3JkRGVwZW5kZW5jaWVzVGVzdHModW5p dHRlc3QuVGVzdENhc2UpOgotICAgICAgICAgaWYgUElMOgotICAgICAgICAgICAgIGtleXMgKz0g WydmaWd1cmUtaW1hZ2UnXQotICAgICAgICAgZXhwZWN0ZWQgPSBbcGF0aHNba2V5XSBmb3Iga2V5 IGluIGtleXNdCi0tICAgICAgICByZWNvcmQgPSBzZWxmLmdldF9yZWNvcmQod3JpdGVyX25hbWU9 J3htbCcpCi0rICAgICAgICByZWNvcmQgPSBzb3J0ZWQoc2VsZi5nZXRfcmVjb3JkKHdyaXRlcl9u YW1lPSd4bWwnKSkKLSAgICAgICAgICMgdGhlIG9yZGVyIG9mIHRoZSBmaWxlcyBpcyBhcmJpdHJh cnkKLS0gICAgICAgIHJlY29yZC5zb3J0KCkKLSAgICAgICAgIGV4cGVjdGVkLnNvcnQoKQotICAg ICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZWNvcmQsIGV4cGVjdGVkKQotIAotQEAgLTY3LDkgKzY2 LDggQEAgY2xhc3MgUmVjb3JkRGVwZW5kZW5jaWVzVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgot ICAgICAgICAgZXhwZWN0ZWQgPSBbcGF0aHNba2V5XSBmb3Iga2V5IGluIGtleXNdCi0gICAgICAg ICAjIHN0eWxlc2hlZXRzIGFyZSB0ZXN0ZWQgc2VwYXJhdGVseSBpbiB0ZXN0X3N0eWxlc2hlZXRf ZGVwZW5kZW5jaWVzKCk6Ci0gICAgICAgICBzbyA9IHsnc3R5bGVzaGVldF9wYXRoJzogTm9uZSwg J3N0eWxlc2hlZXQnOiBOb25lfQotLSAgICAgICAgcmVjb3JkID0gc2VsZi5nZXRfcmVjb3JkKHdy aXRlcl9uYW1lPSdodG1sJywgc2V0dGluZ3Nfb3ZlcnJpZGVzPXNvKQotKyAgICAgICAgcmVjb3Jk ID0gc29ydGVkKHNlbGYuZ2V0X3JlY29yZCh3cml0ZXJfbmFtZT0naHRtbCcsIHNldHRpbmdzX292 ZXJyaWRlcz1zbykpCi0gICAgICAgICAjIHRoZSBvcmRlciBvZiB0aGUgZmlsZXMgaXMgYXJiaXRy YXJ5Ci0tICAgICAgICByZWNvcmQuc29ydCgpCi0gICAgICAgICBleHBlY3RlZC5zb3J0KCkKLSAg ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVjb3JkLCBleHBlY3RlZCkKLSAKLUBAIC04Miw5ICs4 MCw4IEBAIGNsYXNzIFJlY29yZERlcGVuZGVuY2llc1Rlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToK LSAgICAgICAgIGlmIFBJTDoKLSAgICAgICAgICAgICBrZXlzICs9IFsnZmlndXJlLWltYWdlJ10K LSAgICAgICAgIGV4cGVjdGVkID0gW3BhdGhzW2tleV0gZm9yIGtleSBpbiBrZXlzXQotLSAgICAg ICAgcmVjb3JkID0gc2VsZi5nZXRfcmVjb3JkKHdyaXRlcl9uYW1lPSdsYXRleCcpCi0rICAgICAg ICByZWNvcmQgPSBzb3J0ZWQoc2VsZi5nZXRfcmVjb3JkKHdyaXRlcl9uYW1lPSdsYXRleCcpKQot ICAgICAgICAgIyB0aGUgb3JkZXIgb2YgdGhlIGZpbGVzIGlzIGFyYml0cmFyeQotLSAgICAgICAg cmVjb3JkLnNvcnQoKQotICAgICAgICAgZXhwZWN0ZWQuc29ydCgpCi0gICAgICAgICBzZWxmLmFz c2VydEVxdWFsKHJlY29yZCwgZXhwZWN0ZWQpCi0gCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X2xh bmd1YWdlLnB5IGIvdGVzdC90ZXN0X2xhbmd1YWdlLnB5Ci1pbmRleCAzMGFmODFhLi4zMWFjNjEz IDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X2xhbmd1YWdlLnB5Ci0rKysgYi90ZXN0L3Rlc3RfbGFu Z3VhZ2UucHkKLUBAIC0xNTAsOCArMTUwLDcgQEAgY2xhc3MgTGFuZ3VhZ2VUZXN0Q2FzZShEb2N1 dGlsc1Rlc3RTdXBwb3J0LkN1c3RvbVRlc3RDYXNlKToKLSAgICAgICAgICAgICBleGNlcHQgRXhj ZXB0aW9uIGFzIGVycm9yOgotICAgICAgICAgICAgICAgICBmYWlsdXJlcy5hcHBlbmQoJyIlcyI6 ICVzJyAlIChkLCBlcnJvcikpCi0gICAgICAgICBpbnZlcnRlZCA9IHNlbGYuX2ludmVydChtb2R1 bGUuZGlyZWN0aXZlcykKLS0gICAgICAgIGNhbm9uaWNhbCA9IGRpcmVjdGl2ZXMuX2RpcmVjdGl2 ZV9yZWdpc3RyeS5rZXlzKCkKLS0gICAgICAgIGNhbm9uaWNhbC5zb3J0KCkKLSsgICAgICAgIGNh bm9uaWNhbCA9IHNvcnRlZChkaXJlY3RpdmVzLl9kaXJlY3RpdmVfcmVnaXN0cnkua2V5cygpKQot ICAgICAgICAgY2Fub25pY2FsLnJlbW92ZSgncmVzdHJ1Y3R1cmVkdGV4dC10ZXN0LWRpcmVjdGl2 ZScpCi0gICAgICAgICBmb3IgbmFtZSBpbiBjYW5vbmljYWw6Ci0gICAgICAgICAgICAgaWYgbmFt ZSBub3QgaW4gaW52ZXJ0ZWQ6Ci1AQCAtMTg1LDggKzE4NCw3IEBAIGNsYXNzIExhbmd1YWdlVGVz dENhc2UoRG9jdXRpbHNUZXN0U3VwcG9ydC5DdXN0b21UZXN0Q2FzZSk6Ci0gICAgICAgICAgICAg ZXhjZXB0IEtleUVycm9yIGFzIGVycm9yOgotICAgICAgICAgICAgICAgICBmYWlsdXJlcy5hcHBl bmQoJyIlcyI6ICVzJyAlIChkLCBlcnJvcikpCi0gICAgICAgICBpbnZlcnRlZCA9IHNlbGYuX2lu dmVydChtb2R1bGUucm9sZXMpCi0tICAgICAgICBjYW5vbmljYWwgPSByb2xlcy5fcm9sZV9yZWdp c3RyeS5rZXlzKCkKLS0gICAgICAgIGNhbm9uaWNhbC5zb3J0KCkKLSsgICAgICAgIGNhbm9uaWNh bCA9IHNvcnRlZChyb2xlcy5fcm9sZV9yZWdpc3RyeS5rZXlzKCkpCi0gICAgICAgICBjYW5vbmlj YWwucmVtb3ZlKCdyZXN0cnVjdHVyZWR0ZXh0LXVuaW1wbGVtZW50ZWQtcm9sZScpCi0gICAgICAg ICBmb3IgbmFtZSBpbiBjYW5vbmljYWw6Ci0gICAgICAgICAgICAgaWYgbmFtZSBub3QgaW4gaW52 ZXJ0ZWQ6Ci1kaWZmIC0tZ2l0IGEvdG9vbHMvZGV2L2dlbmVyYXRlX3B1bmN0dWF0aW9uX2NoYXJz LnB5IGIvdG9vbHMvZGV2L2dlbmVyYXRlX3B1bmN0dWF0aW9uX2NoYXJzLnB5Ci1pbmRleCBhMzBj NWNhLi5iNzE4Zjc4IDEwMDY0NAotLS0tIGEvdG9vbHMvZGV2L2dlbmVyYXRlX3B1bmN0dWF0aW9u X2NoYXJzLnB5Ci0rKysgYi90b29scy9kZXYvZ2VuZXJhdGVfcHVuY3R1YXRpb25fY2hhcnMucHkK LUBAIC0yNjksOCArMjY5LDcgQEAgZGVmIG1hcmtfaW50ZXJ2YWxzKHMpOgotICAgICBTb3J0IHN0 cmluZyBhbmQgcmVwbGFjZSAnY2RlZicgYnkgJ2MtZicgYW5kIHNpbWlsYXIuCi0gICAgICIiIgot ICAgICBsID1bXQotLSAgICBzID0gW29yZChjaCkgZm9yIGNoIGluIHNdCi0tICAgIHMuc29ydCgp Ci0rICAgIHMgPSBzb3J0ZWQoW29yZChjaCkgZm9yIGNoIGluIHNdKQotICAgICBmb3IgbiBpbiBz OgotICAgICAgICAgdHJ5OgotICAgICAgICAgICAgIGlmIGxbLTFdWy0xXSsxID09IG46Ci1kaWZm IC0tZ2l0IGEvdG9vbHMvZGV2L3VuaWNvZGUycnN0c3Vicy5weSBiL3Rvb2xzL2Rldi91bmljb2Rl MnJzdHN1YnMucHkKLWluZGV4IGI1MWVlYzQuLmFjMzhiZjQgMTAwNzU1Ci0tLS0gYS90b29scy9k ZXYvdW5pY29kZTJyc3RzdWJzLnB5Ci0rKysgYi90b29scy9kZXYvdW5pY29kZTJyc3RzdWJzLnB5 Ci1AQCAtMTYzLDggKzE2Myw3IEBAIGNsYXNzIENoYXJhY3RlckVudGl0eVNldEV4dHJhY3Rvcihv YmplY3QpOgotICAgICAgICAgcmV0dXJuIG5hbWUKLSAKLSAgICAgZGVmIHdyaXRlX3NldHMoc2Vs Zik6Ci0tICAgICAgICBzZXRzID0gbGlzdChzZWxmLnNldHMua2V5cygpKQotLSAgICAgICAgc2V0 cy5zb3J0KCkKLSsgICAgICAgIHNldHMgPSBzb3J0ZWQoc2VsZi5zZXRzLmtleXMoKSkKLSAgICAg ICAgIGZvciBzZXRfbmFtZSBpbiBzZXRzOgotICAgICAgICAgICAgIHNlbGYud3JpdGVfc2V0KHNl dF9uYW1lKQotIAotQEAgLTE3Nyw4ICsxNzYsNyBAQCBjbGFzcyBDaGFyYWN0ZXJFbnRpdHlTZXRF eHRyYWN0b3Iob2JqZWN0KToKLSAgICAgICAgIHByaW50KCd3cml0aW5nIGZpbGUgIiVzIicgJSBv dXRuYW1lKQotICAgICAgICAgb3V0ZmlsZS53cml0ZShzZWxmLmhlYWRlciArICdcbicpCi0gICAg ICAgICBzZXQgPSBzZWxmLnNldHNbc2V0X25hbWVdCi0tICAgICAgICBlbnRpdGllcyA9IFsoZS5s b3dlcigpLCBlKSBmb3IgZSBpbiBzZXQua2V5cygpXQotLSAgICAgICAgZW50aXRpZXMuc29ydCgp Ci0rICAgICAgICBlbnRpdGllcyA9IHNvcnRlZChbKGUubG93ZXIoKSwgZSkgZm9yIGUgaW4gc2V0 LmtleXMoKV0pCi0gICAgICAgICBsb25nZXN0ID0gMAotICAgICAgICAgZm9yIF8sIGVudGl0eV9u YW1lIGluIGVudGl0aWVzOgotICAgICAgICAgICAgIGxvbmdlc3QgPSBtYXgobG9uZ2VzdCwgbGVu KGVudGl0eV9uYW1lKSkKLS0tIAotMi4yNC4wLjM3NS5nZWI1YWU2OGQ0MQotCmRpZmYgLS1naXQg YS9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMTEtQ2xlYW51cC1zaW1wbGlmeS1j b2RlLWZvbGxvd2luZy1yZWNlbnQtY2hhbmdlcy5wYXRjaCBiL3NyY3BrZ3MvcHl0aG9uLWRvY3V0 aWxzL3BhdGNoZXMvMDAxMS1DbGVhbnVwLXNpbXBsaWZ5LWNvZGUtZm9sbG93aW5nLXJlY2VudC1j aGFuZ2VzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZGI3Mjg4NzFhZS4u MDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDExLUNs ZWFudXAtc2ltcGxpZnktY29kZS1mb2xsb3dpbmctcmVjZW50LWNoYW5nZXMucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi1Gcm9tIDc5MjA4MGFkMWQ4YWMyODQ4M2M5YzE0N2Iw Y2I3OWYxMDhiNDA1NzEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTdGVwaGVuIEZp bnVjYW5lIDxzdGVwaGVuQHRoYXQuZ3VydT4KLURhdGU6IE1vbiwgMjYgQXVnIDIwMTkgMTY6NDU6 MDkgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSCAxMS8yNl0gQ2xlYW51cC9zaW1wbGlmeSBjb2RlIGZv bGxvd2luZyByZWNlbnQgY2hhbmdlcy4KLQotZ2l0LXN2bi1pZDogaHR0cDovL3N2bi5jb2RlLnNm Lm5ldC9wL2RvY3V0aWxzL2NvZGUvdHJ1bmtAODM1OCA5Mjk1NDNmNi1lNGYyLTAzMTAtOThhNi1i YTNiZDNkZDFkMDQKLVNpZ25lZC1vZmYtYnk6IERvYW4gVHJhbiBDb25nIERhbmggPGNvbmdkYW5o cXhAZ21haWwuY29tPgotLS0tCi0gZG9jdXRpbHMvdHJhbnNmb3Jtcy9fX2luaXRfXy5weSAgICAg IHwgNCArKy0tCi0gZG9jdXRpbHMvd3JpdGVycy9vZGZfb2R0L19faW5pdF9fLnB5IHwgOCArKy0t LS0tLQotIDIgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQot Ci1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvdHJhbnNmb3Jtcy9fX2luaXRfXy5weSBiL2RvY3V0aWxz L3RyYW5zZm9ybXMvX19pbml0X18ucHkKLWluZGV4IGQ0NDRmY2UuLjEyYmY2ZjkgMTAwNjQ0Ci0t LS0gYS9kb2N1dGlscy90cmFuc2Zvcm1zL19faW5pdF9fLnB5Ci0rKysgYi9kb2N1dGlscy90cmFu c2Zvcm1zL19faW5pdF9fLnB5Ci1AQCAtMTUzLDggKzE1Myw4IEBAIGNsYXNzIFRyYW5zZm9ybWVy KFRyYW5zZm9ybVNwZWMpOgotICAgICAgICAgdW5rbm93bl9yZWZlcmVuY2VfcmVzb2x2ZXJzID0g W10KLSAgICAgICAgIGZvciBpIGluIGNvbXBvbmVudHM6Ci0gICAgICAgICAgICAgdW5rbm93bl9y ZWZlcmVuY2VfcmVzb2x2ZXJzLmV4dGVuZChpLnVua25vd25fcmVmZXJlbmNlX3Jlc29sdmVycykK LS0gICAgICAgIGRlY29yYXRlZF9saXN0ID0gc29ydGVkKFsoZi5wcmlvcml0eSwgZikgZm9yIGYg aW4gdW5rbm93bl9yZWZlcmVuY2VfcmVzb2x2ZXJzXSkKLS0gICAgICAgIHNlbGYudW5rbm93bl9y ZWZlcmVuY2VfcmVzb2x2ZXJzLmV4dGVuZChbZlsxXSBmb3IgZiBpbiBkZWNvcmF0ZWRfbGlzdF0p Ci0rICAgICAgICBkZWNvcmF0ZWRfbGlzdCA9IHNvcnRlZCgoZi5wcmlvcml0eSwgZikgZm9yIGYg aW4gdW5rbm93bl9yZWZlcmVuY2VfcmVzb2x2ZXJzKQotKyAgICAgICAgc2VsZi51bmtub3duX3Jl ZmVyZW5jZV9yZXNvbHZlcnMuZXh0ZW5kKGZbMV0gZm9yIGYgaW4gZGVjb3JhdGVkX2xpc3QpCi0g Ci0gICAgIGRlZiBhcHBseV90cmFuc2Zvcm1zKHNlbGYpOgotICAgICAgICAgIiIiQXBwbHkgYWxs IG9mIHRoZSBzdG9yZWQgdHJhbnNmb3JtcywgaW4gcHJpb3JpdHkgb3JkZXIuIiIiCi1kaWZmIC0t Z2l0IGEvZG9jdXRpbHMvd3JpdGVycy9vZGZfb2R0L19faW5pdF9fLnB5IGIvZG9jdXRpbHMvd3Jp dGVycy9vZGZfb2R0L19faW5pdF9fLnB5Ci1pbmRleCBjMGY0M2E1Li40MTdkYzM0IDEwMDY0NAot LS0tIGEvZG9jdXRpbHMvd3JpdGVycy9vZGZfb2R0L19faW5pdF9fLnB5Ci0rKysgYi9kb2N1dGls cy93cml0ZXJzL29kZl9vZHQvX19pbml0X18ucHkKLUBAIC02OCwxMiArNjgsOCBAQCBleGNlcHQg SW1wb3J0RXJyb3I6Ci0gdHJ5OgotICAgICBpbXBvcnQgcHlnbWVudHMKLSAgICAgaW1wb3J0IHB5 Z21lbnRzLmxleGVycwotLSAgICBpZiBzeXMudmVyc2lvbl9pbmZvLm1ham9yID49IDM6Ci0tICAg ICAgICBmcm9tIC5weWdtZW50c2Zvcm1hdHRlciBpbXBvcnQgT2R0UHlnbWVudHNQcm9nRm9ybWF0 dGVyLCBcCi0tICAgICAgICAgICAgT2R0UHlnbWVudHNMYVRlWEZvcm1hdHRlcgotLSAgICBlbHNl OgotLSAgICAgICAgZnJvbSAucHlnbWVudHNmb3JtYXR0ZXIgaW1wb3J0IE9kdFB5Z21lbnRzUHJv Z0Zvcm1hdHRlciwgXAotLSAgICAgICAgICAgIE9kdFB5Z21lbnRzTGFUZVhGb3JtYXR0ZXIKLSsg ICAgZnJvbSAucHlnbWVudHNmb3JtYXR0ZXIgaW1wb3J0IChPZHRQeWdtZW50c1Byb2dGb3JtYXR0 ZXIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2R0UHlnbWVudHNMYVRl WEZvcm1hdHRlcikKLSBleGNlcHQgKEltcG9ydEVycm9yLCBTeW50YXhFcnJvcik6Ci0gICAgIHB5 Z21lbnRzID0gTm9uZQotIAotLS0gCi0yLjI0LjAuMzc1LmdlYjVhZTY4ZDQxCi0KZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAxMi1Vc2UtaXNpbnN0YW5jZS1m b28tYmFyLWluc3RlYWQtb2YtdHlwZS1mb28taXMtYmFyLnBhdGNoIGIvc3JjcGtncy9weXRob24t ZG9jdXRpbHMvcGF0Y2hlcy8wMDEyLVVzZS1pc2luc3RhbmNlLWZvby1iYXItaW5zdGVhZC1vZi10 eXBlLWZvby1pcy1iYXIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBlMWJi NWFjMDkzLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVz LzAwMTItVXNlLWlzaW5zdGFuY2UtZm9vLWJhci1pbnN0ZWFkLW9mLXR5cGUtZm9vLWlzLWJhci5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEyMCArMCwwIEBACi1Gcm9tIDg4ZmRkZTgzNDE5YjZj NTMyOTQ4YTY0ZDI4MjRmNmE2NjNhZDMzYzMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9t OiBTdGVwaGVuIEZpbnVjYW5lIDxzdGVwaGVuQHRoYXQuZ3VydT4KLURhdGU6IE1vbiwgMjYgQXVn IDIwMTkgMTY6NDU6MzMgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSCAxMi8yNl0gVXNlICdpc2luc3Rh bmNlKGZvbywgYmFyKScgaW5zdGVhZCBvZiAndHlwZShmb28pIGlzCi0gYmFyJwotCi1UaGlzIG9u ZSBpcyBtb3JlIHN0eWxpc3RpYyB0aGFuIGFueXRoaW5nLgotCi1TaWduZWQtb2ZmLWJ5OiBTdGVw aGVuIEZpbnVjYW5lIDxzdGVwaGVuQHRoYXQuZ3VydT4KLQotZ2l0LXN2bi1pZDogaHR0cDovL3N2 bi5jb2RlLnNmLm5ldC9wL2RvY3V0aWxzL2NvZGUvdHJ1bmtAODM1OSA5Mjk1NDNmNi1lNGYyLTAz MTAtOThhNi1iYTNiZDNkZDFkMDQKLVNpZ25lZC1vZmYtYnk6IERvYW4gVHJhbiBDb25nIERhbmgg PGNvbmdkYW5ocXhAZ21haWwuY29tPgotLS0tCi0gZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0 aXZlcy90YWJsZXMucHkgfCA0ICsrLS0KLSBkb2N1dGlscy9wYXJzZXJzL3JzdC9zdGF0ZXMucHkg ICAgICAgICAgICB8IDIgKy0KLSBkb2N1dGlscy9zdGF0ZW1hY2hpbmUucHkgICAgICAgICAgICAg ICAgICB8IDIgKy0KLSBkb2N1dGlscy91dGlscy9tYXRoL2xhdGV4Mm1hdGhtbC5weSAgICAgICB8 IDIgKy0KLSB0ZXN0L3BhY2thZ2VfdW5pdHRlc3QucHkgICAgICAgICAgICAgICAgICB8IDQgKyst LQotIHRlc3QvdGVzdF9ub2Rlcy5weSAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQotIDYg ZmlsZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQotCi1kaWZmIC0t Z2l0IGEvZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy90YWJsZXMucHkgYi9kb2N1dGls cy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL3RhYmxlcy5weQotaW5kZXggYjBhNGVhYy4uYmY5N2Uy NiAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvdGFibGVzLnB5 Ci0rKysgYi9kb2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL3RhYmxlcy5weQotQEAgLTEw NCw3ICsxMDQsNyBAQCBjbGFzcyBUYWJsZShEaXJlY3RpdmUpOgotICAgICAgICAgcmV0dXJuIHNl bGYub3B0aW9ucy5nZXQoJ3dpZHRocycsICcnKQotIAotICAgICBkZWYgZ2V0X2NvbHVtbl93aWR0 aHMoc2VsZiwgbWF4X2NvbHMpOgotLSAgICAgICAgaWYgdHlwZShzZWxmLndpZHRocykgPT0gbGlz dDoKLSsgICAgICAgIGlmIGlzaW5zdGFuY2Uoc2VsZi53aWR0aHMsIGxpc3QpOgotICAgICAgICAg ICAgIGlmIGxlbihzZWxmLndpZHRocykgIT0gbWF4X2NvbHM6Ci0gICAgICAgICAgICAgICAgIGVy cm9yID0gc2VsZi5zdGF0ZV9tYWNoaW5lLnJlcG9ydGVyLmVycm9yKAotICAgICAgICAgICAgICAg ICAgICAgJyIlcyIgd2lkdGhzIGRvIG5vdCBtYXRjaCB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgaW4g dGFibGUgJwotQEAgLTE1Miw3ICsxNTIsNyBAQCBjbGFzcyBSU1RUYWJsZShUYWJsZSk6Ci0gICAg ICAgICBpZiAnYWxpZ24nIGluIHNlbGYub3B0aW9uczoKLSAgICAgICAgICAgICB0YWJsZV9ub2Rl WydhbGlnbiddID0gc2VsZi5vcHRpb25zLmdldCgnYWxpZ24nKQotICAgICAgICAgdGdyb3VwID0g dGFibGVfbm9kZVswXQotLSAgICAgICAgaWYgdHlwZShzZWxmLndpZHRocykgPT0gbGlzdDoKLSsg ICAgICAgIGlmIGlzaW5zdGFuY2Uoc2VsZi53aWR0aHMsIGxpc3QpOgotICAgICAgICAgICAgIGNv bHNwZWNzID0gW2NoaWxkIGZvciBjaGlsZCBpbiB0Z3JvdXAuY2hpbGRyZW4KLSAgICAgICAgICAg ICAgICAgICAgICAgICBpZiBjaGlsZC50YWduYW1lID09ICdjb2xzcGVjJ10KLSAgICAgICAgICAg ICBmb3IgY29sc3BlYywgY29sX3dpZHRoIGluIHppcChjb2xzcGVjcywgc2VsZi53aWR0aHMpOgot ZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3BhcnNlcnMvcnN0L3N0YXRlcy5weSBiL2RvY3V0aWxzL3Bh cnNlcnMvcnN0L3N0YXRlcy5weQotaW5kZXggYzliNGZhMy4uMmEyZTMzYSAxMDA2NDQKLS0tLSBh L2RvY3V0aWxzL3BhcnNlcnMvcnN0L3N0YXRlcy5weQotKysrIGIvZG9jdXRpbHMvcGFyc2Vycy9y c3Qvc3RhdGVzLnB5Ci1AQCAtNDQ3LDcgKzQ0Nyw3IEBAIGRlZiBidWlsZF9yZWdleHAoZGVmaW5p dGlvbiwgY29tcGlsZT1UcnVlKToKLSAgICAgbmFtZSwgcHJlZml4LCBzdWZmaXgsIHBhcnRzID0g ZGVmaW5pdGlvbgotICAgICBwYXJ0X3N0cmluZ3MgPSBbXQotICAgICBmb3IgcGFydCBpbiBwYXJ0 czoKLS0gICAgICAgIGlmIHR5cGUocGFydCkgaXMgdHVwbGU6Ci0rICAgICAgICBpZiBpc2luc3Rh bmNlKHBhcnQsIHR1cGxlKToKLSAgICAgICAgICAgICBwYXJ0X3N0cmluZ3MuYXBwZW5kKGJ1aWxk X3JlZ2V4cChwYXJ0LCBOb25lKSkKLSAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgcGFydF9z dHJpbmdzLmFwcGVuZChwYXJ0KQotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3N0YXRlbWFjaGluZS5w eSBiL2RvY3V0aWxzL3N0YXRlbWFjaGluZS5weQotaW5kZXggMDY4MDgzYS4uNmJjMDNmNSAxMDA2 NDQKLS0tLSBhL2RvY3V0aWxzL3N0YXRlbWFjaGluZS5weQotKysrIGIvZG9jdXRpbHMvc3RhdGVt YWNoaW5lLnB5Ci1AQCAtNzM3LDcgKzczNyw3IEBAIGNsYXNzIFN0YXRlKG9iamVjdCk6Ci0gICAg ICAgICBuYW1lcyA9IFtdCi0gICAgICAgICB0cmFuc2l0aW9ucyA9IHt9Ci0gICAgICAgICBmb3Ig bmFtZXN0YXRlIGluIG5hbWVfbGlzdDoKLS0gICAgICAgICAgICBpZiB0eXBlKG5hbWVzdGF0ZSkg aXMgc3RyaW5ndHlwZToKLSsgICAgICAgICAgICBpZiBpc2luc3RhbmNlKG5hbWVzdGF0ZSwgc3Ry aW5ndHlwZSk6Ci0gICAgICAgICAgICAgICAgIHRyYW5zaXRpb25zW25hbWVzdGF0ZV0gPSBzZWxm Lm1ha2VfdHJhbnNpdGlvbihuYW1lc3RhdGUpCi0gICAgICAgICAgICAgICAgIG5hbWVzLmFwcGVu ZChuYW1lc3RhdGUpCi0gICAgICAgICAgICAgZWxzZToKLWRpZmYgLS1naXQgYS9kb2N1dGlscy91 dGlscy9tYXRoL2xhdGV4Mm1hdGhtbC5weSBiL2RvY3V0aWxzL3V0aWxzL21hdGgvbGF0ZXgybWF0 aG1sLnB5Ci1pbmRleCAyNTVlOTZmLi5iN2JhMDQ4IDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvdXRp bHMvbWF0aC9sYXRleDJtYXRobWwucHkKLSsrKyBiL2RvY3V0aWxzL3V0aWxzL21hdGgvbGF0ZXgy bWF0aG1sLnB5Ci1AQCAtMTY4LDcgKzE2OCw3IEBAIGNsYXNzIG1hdGgob2JqZWN0KToKLSAKLSAg ICAgICAgIHNlbGYuY2hpbGRyZW4gPSBbXQotICAgICAgICAgaWYgY2hpbGRyZW4gaXMgbm90IE5v bmU6Ci0tICAgICAgICAgICAgaWYgdHlwZShjaGlsZHJlbikgaXMgbGlzdDoKLSsgICAgICAgICAg ICBpZiBpc2luc3RhbmNlKGNoaWxkcmVuLCBsaXN0KToKLSAgICAgICAgICAgICAgICAgZm9yIGNo aWxkIGluIGNoaWxkcmVuOgotICAgICAgICAgICAgICAgICAgICAgc2VsZi5hcHBlbmQoY2hpbGQp Ci0gICAgICAgICAgICAgZWxzZToKLWRpZmYgLS1naXQgYS90ZXN0L3BhY2thZ2VfdW5pdHRlc3Qu cHkgYi90ZXN0L3BhY2thZ2VfdW5pdHRlc3QucHkKLWluZGV4IDRkYjgyNmIuLjFjMGYwNzcgMTAw NjQ0Ci0tLS0gYS90ZXN0L3BhY2thZ2VfdW5pdHRlc3QucHkKLSsrKyBiL3Rlc3QvcGFja2FnZV91 bml0dGVzdC5weQotQEAgLTExNSw3ICsxMTUsNyBAQCBkZWYgbG9hZFRlc3RNb2R1bGVzKHBhdGgs IG5hbWU9JycsIHBhY2thZ2VzPU5vbmUpOgotICAgICAgICAgICAgICAgICAjIHRvIGNoZWF0Ogot ICAgICAgICAgICAgICAgICB0ZXN0U3VpdGUuYWRkVGVzdChtb2R1bGVUZXN0cykKLSAgICAgICAg ICAgICAgICAgY29udGludWUKLS0gICAgICAgICAgICBpZiB0eXBlKHN1aXRlKSA9PSB0eXBlcy5G dW5jdGlvblR5cGU6Ci0rICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShzdWl0ZSwgdHlwZXMuRnVu Y3Rpb25UeXBlKToKLSAgICAgICAgICAgICAgICAgdGVzdFN1aXRlLmFkZFRlc3Qoc3VpdGUoKSkK LSAgICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2Uoc3VpdGUsIHVuaXR0ZXN0LlRlc3RTdWl0ZSk6 Ci0gICAgICAgICAgICAgICAgIHRlc3RTdWl0ZS5hZGRUZXN0KHN1aXRlKQotQEAgLTE1Miw3ICsx NTIsNyBAQCBkZWYgbWFpbihzdWl0ZT1Ob25lKToKLSAgICAgICAgIHByaW50KCJEZWJ1ZzogU3Vp dGU9JXMiICUgc3VpdGUsIGZpbGU9c3lzLnN0ZGVycikKLSAgICAgdGVzdFJ1bm5lciA9IHVuaXR0 ZXN0LlRleHRUZXN0UnVubmVyKHZlcmJvc2l0eT12ZXJib3NpdHkpCi0gICAgICMgcnVuIHN1aXRl cyAoaWYgd2Ugd2VyZSBjYWxsZWQgZnJvbSB0ZXN0X2FsbCkgb3Igc3VpdGUuLi4KLS0gICAgaWYg dHlwZShzdWl0ZSkgPT0gdHlwZShbXSk6Ci0rICAgIGlmIGlzaW5zdGFuY2Uoc3VpdGUsIHR5cGUo W10pKToKLSAgICAgICAgIGZvciBzIGluIHN1aXRlOgotICAgICAgICAgICAgIHRlc3RSdW5uZXIu cnVuKHMpCi0gICAgIGVsc2U6Ci1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X25vZGVzLnB5IGIvdGVz dC90ZXN0X25vZGVzLnB5Ci1pbmRleCA2NzljOThlLi5hZjA0ZTg2IDEwMDc1NQotLS0tIGEvdGVz dC90ZXN0X25vZGVzLnB5Ci0rKysgYi90ZXN0L3Rlc3Rfbm9kZXMucHkKLUBAIC0xMjEsNyArMTIx LDcgQEAgY2xhc3MgRWxlbWVudFRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAgICAgICAg ICBzZWxmLmFzc2VydEVxdWFsKHJlcHIodWVsZW1lbnQpLCAiPEVsZW1lbnQ6IDwjdGV4dDogJ2dy XFx4ZmNuJz4+IikKLSAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh bChyZXByKHVlbGVtZW50KSwgdSI8RWxlbWVudDogPCN0ZXh0OiAnZ3LDvG4nPj4iKQotLSAgICAg ICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UocmVwcih1ZWxlbWVudCksc3RyKSkKLSsgICAg ICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKHJlcHIodWVsZW1lbnQpLCBzdHIpKQotICAg ICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoZWxlbWVudCksICc8RWxlbWVudD50ZXh0XG5tb3Jl PC9FbGVtZW50PicpCi0gICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cih1ZWxlbWVudCksICc8 RWxlbWVudD5nclx4ZmNuPC9FbGVtZW50PicpCi0gICAgICAgICBkb20gPSBlbGVtZW50LmFzZG9t KCkKLS0tIAotMi4yNC4wLjM3NS5nZWI1YWU2OGQ0MQotCmRpZmYgLS1naXQgYS9zcmNwa2dzL3B5 dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMTMtQ29uc2lzdGVudC1QeXRob24tMy1jaGVja3MucGF0 Y2ggYi9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMTMtQ29uc2lzdGVudC1QeXRo b24tMy1jaGVja3MucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEwNjQzZGVk NGYxLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAw MTMtQ29uc2lzdGVudC1QeXRob24tMy1jaGVja3MucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1 OTQgKzAsMCBAQAotRnJvbSA3ZTc5YTUzOWM0MjZiYmJiMjkzMjI4NmIyZWZhMmNmMDNhNDY3ZTQ2 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3RlcGhlbiBGaW51Y2FuZSA8c3RlcGhl bkB0aGF0Lmd1cnU+Ci1EYXRlOiBXZWQsIDIwIE5vdiAyMDE5IDAwOjAyOjM0ICswNzAwCi1TdWJq ZWN0OiBbUEFUQ0ggMTMvMjZdIENvbnNpc3RlbnQgUHl0aG9uIDMgY2hlY2tzLgotCi1naXQtc3Zu LWlkOiBodHRwOi8vc3ZuLmNvZGUuc2YubmV0L3AvZG9jdXRpbHMvY29kZS90cnVua0A4MzYwIDky OTU0M2Y2LWU0ZjItMDMxMC05OGE2LWJhM2JkM2RkMWQwNAotU2lnbmVkLW9mZi1ieTogRG9hbiBU cmFuIENvbmcgRGFuaCA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+Ci0tLS0KLSBkb2N1dGlscy9mcm9u dGVuZC5weSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQotIGRvY3V0aWxzL2lv LnB5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0KLSBkb2N1dGls cy9ub2Rlcy5weSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMiArKysrKystLS0t LS0KLSBkb2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL19faW5pdF9fLnB5ICAgICAgfCAg MiArLQotIGRvY3V0aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvbWlzYy5weSAgICAgICAgICB8 ICA0ICsrLS0KLSBkb2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL3RhYmxlcy5weSAgICAg ICAgfCAgNCArKy0tCi0gZG9jdXRpbHMvc3RhdGVtYWNoaW5lLnB5ICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDIgKy0KLSBkb2N1dGlscy90cmFuc2Zvcm1zL2Zyb250bWF0dGVyLnB5ICAgICAg ICAgICAgICAgfCAgMiArLQotIGRvY3V0aWxzL3RyYW5zZm9ybXMvdW5pdmVyc2FsLnB5ICAgICAg ICAgICAgICAgICB8ICAyICstCi0gZG9jdXRpbHMvdXRpbHMvX19pbml0X18ucHkgICAgICAgICAg ICAgICAgICAgICAgIHwgIDIgKy0KLSBkb2N1dGlscy91dGlscy9lcnJvcl9yZXBvcnRpbmcucHkg ICAgICAgICAgICAgICAgfCAgMiArLQotIGRvY3V0aWxzL3dyaXRlcnMvX2h0bWxfYmFzZS5weSAg ICAgICAgICAgICAgICAgICB8ICAyICstCi0gZG9jdXRpbHMvd3JpdGVycy9kb2N1dGlsc194bWwu cHkgICAgICAgICAgICAgICAgIHwgIDQgKystLQotIGRvY3V0aWxzL3dyaXRlcnMvbGF0ZXgyZS9f X2luaXRfXy5weSAgICAgICAgICAgICB8ICAyICstCi0gZG9jdXRpbHMvd3JpdGVycy9tYW5wYWdl LnB5ICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KLSBkb2N1dGlscy93cml0ZXJzL29kZl9v ZHQvX19pbml0X18ucHkgICAgICAgICAgICAgfCAgMiArLQotIHNldHVwLnB5ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA2ICsrKy0tLQotIHRlc3QvRG9jdXRpbHNU ZXN0U3VwcG9ydC5weSAgICAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0KLSB0ZXN0L3Rlc3Rf X2luaXRfXy5weSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQotIHRlc3QvdGVz dF9lcnJvcl9yZXBvcnRpbmcucHkgICAgICAgICAgICAgICAgICAgICB8ICAyICstCi0gdGVzdC90 ZXN0X2xhbmd1YWdlLnB5ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KLSB0ZXN0 L3Rlc3Rfbm9kZXMucHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNiArKysrKysr Ky0tLS0tLS0tCi0gdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9wYXJzZXIucHkgICAgICAgICAgICAg ICAgIHwgIDIgKy0KLSAuLi4vdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfaW5jbHVkZS5w eSAgICAgfCAgMiArLQotIC4uLi90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF90YWJsZXMu cHkgICAgICB8ICAyICstCi0gLi4uL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3VuaWNv ZGUucHkgICAgIHwgIDIgKy0KLSB0b29scy9kZXYvY3JlYXRlX3VuaW1hcC5weSAgICAgICAgICAg ICAgICAgICAgICAgfCAgNCArKy0tCi0gdG9vbHMvZGV2L2dlbmVyYXRlX3B1bmN0dWF0aW9uX2No YXJzLnB5ICAgICAgICAgIHwgIDQgKystLQotIDI4IGZpbGVzIGNoYW5nZWQsIDQ5IGluc2VydGlv bnMoKyksIDQ5IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvZnJvbnRlbmQu cHkgYi9kb2N1dGlscy9mcm9udGVuZC5weQotaW5kZXggNGIzODliMC4uNjI3ZjYwMyAxMDA2NDQK LS0tLSBhL2RvY3V0aWxzL2Zyb250ZW5kLnB5Ci0rKysgYi9kb2N1dGlscy9mcm9udGVuZC5weQot QEAgLTQzLDcgKzQzLDcgQEAgaW1wb3J0IGRvY3V0aWxzLm5vZGVzCi0gZnJvbSBkb2N1dGlscy51 dGlscy5lcnJvcl9yZXBvcnRpbmcgaW1wb3J0IChsb2NhbGVfZW5jb2RpbmcsIFNhZmVTdHJpbmcs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFcnJvck91dHB1 dCwgRXJyb3JTdHJpbmcpCi0gCi0taWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0raWYg c3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKLSAgICAgdW5pY29kZSA9IHN0ciAgIyBub3FhCi0g Ci0gCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvaW8ucHkgYi9kb2N1dGlscy9pby5weQotaW5kZXgg M2NkZjAwZS4uZmIzNTRmZCAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL2lvLnB5Ci0rKysgYi9kb2N1 dGlscy9pby5weQotQEAgLTE3LDcgKzE3LDcgQEAgaW1wb3J0IGNvZGVjcwotIGZyb20gZG9jdXRp bHMgaW1wb3J0IFRyYW5zZm9ybVNwZWMKLSBmcm9tIGRvY3V0aWxzLnV0aWxzLmVycm9yX3JlcG9y dGluZyBpbXBvcnQgbG9jYWxlX2VuY29kaW5nLCBFcnJvclN0cmluZywgRXJyb3JPdXRwdXQKLSAK LS1pZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLStpZiBzeXMudmVyc2lvbl9pbmZvID49 ICgzLDApOgotICAgICB1bmljb2RlID0gc3RyICAjIG5vcWEKLSAKLSAKLUBAIC0yMDgsNyArMjA4 LDcgQEAgY2xhc3MgRmlsZUlucHV0KElucHV0KToKLSAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNv dXJjZT1Ob25lLCBzb3VyY2VfcGF0aD1Ob25lLAotICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc9 Tm9uZSwgZXJyb3JfaGFuZGxlcj0nc3RyaWN0JywKLSAgICAgICAgICAgICAgICAgIGF1dG9jbG9z ZT1UcnVlLAotLSAgICAgICAgICAgICAgICAgbW9kZT0ncicgaWYgc3lzLnZlcnNpb25faW5mbyA+ PSAoMywgNCkgZWxzZSAnclUnLCAqKmt3YXJncyk6Ci0rICAgICAgICAgICAgICAgICBtb2RlPSdy JyBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApIGVsc2UgJ3JVJywgKiprd2FyZ3MpOgotICAg ICAgICAgIiIiCi0gICAgICAgICA6UGFyYW1ldGVyczoKLSAgICAgICAgICAgICAtIGBzb3VyY2Vg OiBlaXRoZXIgYSBmaWxlLWxpa2Ugb2JqZWN0ICh3aGljaCBpcyByZWFkIGRpcmVjdGx5KSwgb3IK LWRpZmYgLS1naXQgYS9kb2N1dGlscy9ub2Rlcy5weSBiL2RvY3V0aWxzL25vZGVzLnB5Ci1pbmRl eCBlMjliODg3Li4zZDcxNGEyIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvbm9kZXMucHkKLSsrKyBi L2RvY3V0aWxzL25vZGVzLnB5Ci1AQCAtMjksNyArMjksNyBAQCBpbXBvcnQgcmUKLSBpbXBvcnQg d2FybmluZ3MKLSBpbXBvcnQgdW5pY29kZWRhdGEKLSAKLS1pZiBzeXMudmVyc2lvbl9pbmZvID49 ICgzLCAwKToKLStpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApOgotICAgICB1bmljb2RlID0g c3RyICAjIG5vcWEKLSAgICAgYmFzZXN0cmluZyA9IHN0ciAgIyBub3FhCi0gCi1AQCAtNjQsNyAr NjQsNyBAQCBjbGFzcyBOb2RlKG9iamVjdCk6Ci0gICAgICAgICAiIiIKLSAgICAgICAgIHJldHVy biBUcnVlCi0gCi0tICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMCk6Ci0rICAgIGlmIHN5 cy52ZXJzaW9uX2luZm8gPCAoMywwKToKLSAgICAgICAgICMgb24gMi54LCBzdHIobm9kZSkgd2ls bCBiZSBhIGJ5dGUgc3RyaW5nIHdpdGggVW5pY29kZQotICAgICAgICAgIyBjaGFyYWN0ZXJzID4g MjU1IGVzY2FwZWQ7IG9uIDMueCB0aGlzIGlzIG5vIGxvbmdlciBuZWNlc3NhcnkKLSAgICAgICAg IGRlZiBfX3N0cl9fKHNlbGYpOgotQEAgLTMwNCw3ICszMDQsNyBAQCBjbGFzcyBOb2RlKG9iamVj dCk6Ci0gICAgICAgICBleGNlcHQgSW5kZXhFcnJvcjoKLSAgICAgICAgICAgICByZXR1cm4gTm9u ZQotIAotLWlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMCk6Ci0raWYgc3lzLnZlcnNpb25faW5m byA8ICgzLDApOgotICAgICBjbGFzcyByZXBydW5pY29kZSh1bmljb2RlKToKLSAgICAgICAgICIi IgotICAgICAgICAgQSB1bmljb2RlIHN1Yi1jbGFzcyB0aGF0IHJlbW92ZXMgdGhlIGluaXRpYWwg dSBmcm9tIHVuaWNvZGUncyByZXByLgotQEAgLTMyMCw3ICszMjAsNyBAQCBkZWYgZW5zdXJlX3N0 cihzKToKLSAgICAgIiIiCi0gICAgIEZhaWxzYXZlIGNvbnZlcnNpb24gb2YgYHVuaWNvZGVgIHRv IGBzdHJgLgotICAgICAiIiIKLS0gICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCkgYW5kIGlz aW5zdGFuY2UocywgdW5pY29kZSk6Ci0rICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywwKSBh bmQgaXNpbnN0YW5jZShzLCB1bmljb2RlKToKLSAgICAgICAgIHJldHVybiBzLmVuY29kZSgnYXNj aWknLCAnYmFja3NsYXNocmVwbGFjZScpCi0gICAgIHJldHVybiBzCi0gCi1AQCAtMzUyLDcgKzM1 Miw3IEBAIGNsYXNzIFRleHQoTm9kZSwgcmVwcnVuaWNvZGUpOgotICAgICBjaGlsZHJlbiA9ICgp Ci0gICAgICIiIlRleHQgbm9kZXMgaGF2ZSBubyBjaGlsZHJlbiwgYW5kIGNhbm5vdCBoYXZlIGNo aWxkcmVuLiIiIgotIAotLSAgICBpZiBzeXMudmVyc2lvbl9pbmZvID4gKDMsKToKLSsgICAgaWYg c3lzLnZlcnNpb25faW5mbyA+ICgzLDApOgotICAgICAgICAgZGVmIF9fbmV3X18oY2xzLCBkYXRh LCByYXdzb3VyY2U9Tm9uZSk6Ci0gICAgICAgICAgICAgIiIiUHJldmVudCB0aGUgcmF3c291cmNl IGFyZ3VtZW50IGZyb20gcHJvcGFnYXRpbmcgdG8gc3RyLiIiIgotICAgICAgICAgICAgIGlmIGlz aW5zdGFuY2UoZGF0YSwgYnl0ZXMpOgotQEAgLTU0NCw3ICs1NDQsNyBAQCBjbGFzcyBFbGVtZW50 KE5vZGUpOgotICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICByZXR1cm4gc2VsZi5lbXB0eXRh ZygpCi0gCi0tICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPiAoMywpOgotKyAgICBpZiBzeXMudmVy c2lvbl9pbmZvID4gKDMsMCk6Ci0gICAgICAgICAjIDJ0bzMgZG9lc24ndCBjb252ZXJ0IF9fdW5p Y29kZV9fIHRvIF9fc3RyX18KLSAgICAgICAgIF9fc3RyX18gPSBfX3VuaWNvZGVfXwotIAotZGlm ZiAtLWdpdCBhL2RvY3V0aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvX19pbml0X18ucHkgYi9k b2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL19faW5pdF9fLnB5Ci1pbmRleCA3YmNjYjVi Li4xNGZlMWZmIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy9f X2luaXRfXy5weQotKysrIGIvZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy9fX2luaXRf Xy5weQotQEAgLTE2LDcgKzE2LDcgQEAgZnJvbSBkb2N1dGlscyBpbXBvcnQgbm9kZXMKLSBmcm9t IGRvY3V0aWxzLnV0aWxzIGltcG9ydCBzcGxpdF9lc2NhcGVkX3doaXRlc3BhY2UsIGVzY2FwZTJu dWxsLCB1bmVzY2FwZQotIGZyb20gZG9jdXRpbHMucGFyc2Vycy5yc3QubGFuZ3VhZ2VzIGltcG9y dCBlbiBhcyBfZmFsbGJhY2tfbGFuZ3VhZ2VfbW9kdWxlCi0gCi0taWYgc3lzLnZlcnNpb25faW5m byA+PSAoMywgMCk6Ci0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKLSAgICAgdW5pY2hy ID0gY2hyICAjIG5vcWEKLSAKLSAKLWRpZmYgLS1naXQgYS9kb2N1dGlscy9wYXJzZXJzL3JzdC9k aXJlY3RpdmVzL21pc2MucHkgYi9kb2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL21pc2Mu cHkKLWluZGV4IDBmYzM2MTAuLjNiOWI5ZGUgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9wYXJzZXJz L3JzdC9kaXJlY3RpdmVzL21pc2MucHkKLSsrKyBiL2RvY3V0aWxzL3BhcnNlcnMvcnN0L2RpcmVj dGl2ZXMvbWlzYy5weQotQEAgLTQ3Myw3ICs0NzMsNyBAQCBjbGFzcyBEYXRlKERpcmVjdGl2ZSk6 Ci0gICAgICAgICAgICAgICAgICdJbnZhbGlkIGNvbnRleHQ6IHRoZSAiJXMiIGRpcmVjdGl2ZSBj YW4gb25seSBiZSB1c2VkIHdpdGhpbiAnCi0gICAgICAgICAgICAgICAgICdhIHN1YnN0aXR1dGlv biBkZWZpbml0aW9uLicgJSBzZWxmLm5hbWUpCi0gICAgICAgICBmb3JtYXRfc3RyID0gJ1xuJy5q b2luKHNlbGYuY29udGVudCkgb3IgJyVZLSVtLSVkJwotLSAgICAgICAgaWYgc3lzLnZlcnNpb25f aW5mbzwgKDMsIDApOgotKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbzwgKDMsMCk6Ci0gICAg ICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICBmb3JtYXRfc3RyID0gZm9ybWF0X3N0ci5l bmNvZGUobG9jYWxlX2VuY29kaW5nIG9yICd1dGYtOCcpCi0gICAgICAgICAgICAgZXhjZXB0IFVu aWNvZGVFbmNvZGVFcnJvcjoKLUBAIC00OTgsNyArNDk4LDcgQEAgY2xhc3MgRGF0ZShEaXJlY3Rp dmUpOgotICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZS5nbXRpbWUoaW50 KHNvdXJjZV9kYXRlX2Vwb2NoKSkpCi0gICAgICAgICAjIGVsc2U6Ci0gICAgICAgICB0ZXh0ID0g dGltZS5zdHJmdGltZShmb3JtYXRfc3RyKQotLSAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbzwg KDMsIDApOgotKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbzwgKDMsMCk6Ci0gICAgICAgICAg ICAgIyBgdGV4dGAgaXMgYSBieXRlIHN0cmluZyB0aGF0IG1heSBjb250YWluIG5vbi1BU0NJSSBj aGFyYWN0ZXJzOgotICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgdGV4dCA9IHRl eHQuZGVjb2RlKGxvY2FsZV9lbmNvZGluZyBvciAndXRmLTgnKQotZGlmZiAtLWdpdCBhL2RvY3V0 aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvdGFibGVzLnB5IGIvZG9jdXRpbHMvcGFyc2Vycy9y c3QvZGlyZWN0aXZlcy90YWJsZXMucHkKLWluZGV4IGJmOTdlMjYuLjM2YTUyZTcgMTAwNjQ0Ci0t LS0gYS9kb2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL3RhYmxlcy5weQotKysrIGIvZG9j dXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy90YWJsZXMucHkKLUBAIC0yNjMsNyArMjYzLDcg QEAgY2xhc3MgQ1NWVGFibGUoVGFibGUpOgotICAgICAgICAgICAgIHJldHVybiBbZGV0YWlsLmFy Z3NbMF1dCi0gICAgICAgICBleGNlcHQgY3N2LkVycm9yIGFzIGRldGFpbDoKLSAgICAgICAgICAg ICBtZXNzYWdlID0gc3RyKGRldGFpbCkKLS0gICAgICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZv IDwgKDMsKSBhbmQgJzEtY2hhcmFjdGVyIHN0cmluZycgaW4gbWVzc2FnZToKLSsgICAgICAgICAg ICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsMCkgYW5kICcxLWNoYXJhY3RlciBzdHJpbmcnIGlu IG1lc3NhZ2U6Ci0gICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gJ1xud2l0aCBQeXRob24gMi54 IHRoaXMgbXVzdCBiZSBhbiBBU0NJSSBjaGFyYWN0ZXIuJwotICAgICAgICAgICAgIGVycm9yID0g c2VsZi5zdGF0ZV9tYWNoaW5lLnJlcG9ydGVyLmVycm9yKAotICAgICAgICAgICAgICAgICAnRXJy b3Igd2l0aCBDU1YgZGF0YSBpbiAiJXMiIGRpcmVjdGl2ZTpcbiVzJwotQEAgLTM1Niw3ICszNTYs NyBAQCBjbGFzcyBDU1ZUYWJsZShUYWJsZSk6Ci0gICAgICAgICAgICAgcmFpc2UgU3lzdGVtTWVz c2FnZVByb3BhZ2F0aW9uKGVycm9yKQotICAgICAgICAgcmV0dXJuIGNzdl9kYXRhLCBzb3VyY2UK LSAKLS0gICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCk6Ci0rICAgIGlmIHN5cy52ZXJzaW9u X2luZm8gPCAoMywwKToKLSAgICAgICAgICMgMi54IGNzdiBtb2R1bGUgZG9lc24ndCBkbyBVbmlj b2RlCi0gICAgICAgICBkZWYgZGVjb2RlX2Zyb21fY3N2KHMpOgotICAgICAgICAgICAgIHJldHVy biBzLmRlY29kZSgndXRmLTgnKQotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3N0YXRlbWFjaGluZS5w eSBiL2RvY3V0aWxzL3N0YXRlbWFjaGluZS5weQotaW5kZXggNmJjMDNmNS4uMTYyNTJiYiAxMDA2 NDQKLS0tLSBhL2RvY3V0aWxzL3N0YXRlbWFjaGluZS5weQotKysrIGIvZG9jdXRpbHMvc3RhdGVt YWNoaW5lLnB5Ci1AQCAtMTEzLDcgKzExMyw3IEBAIGltcG9ydCB1bmljb2RlZGF0YQotIGZyb20g ZG9jdXRpbHMgaW1wb3J0IHV0aWxzCi0gZnJvbSBkb2N1dGlscy51dGlscy5lcnJvcl9yZXBvcnRp bmcgaW1wb3J0IEVycm9yT3V0cHV0Ci0gCi0taWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6 Ci0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKLSAgICAgdW5pY29kZSA9IHN0ciAgIyBu b3FhCi0gCi0gCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvdHJhbnNmb3Jtcy9mcm9udG1hdHRlci5w eSBiL2RvY3V0aWxzL3RyYW5zZm9ybXMvZnJvbnRtYXR0ZXIucHkKLWluZGV4IDIzYjljOTUuLjM0 NWUyOTAgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy90cmFuc2Zvcm1zL2Zyb250bWF0dGVyLnB5Ci0r KysgYi9kb2N1dGlscy90cmFuc2Zvcm1zL2Zyb250bWF0dGVyLnB5Ci1AQCAtMjgsNyArMjgsNyBA QCBmcm9tIGRvY3V0aWxzIGltcG9ydCBub2RlcywgdXRpbHMKLSBmcm9tIGRvY3V0aWxzLnRyYW5z Zm9ybXMgaW1wb3J0IFRyYW5zZm9ybUVycm9yLCBUcmFuc2Zvcm0KLSAKLSAKLS1pZiBzeXMudmVy c2lvbl9pbmZvID49ICgzLCAwKToKLStpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApOgotICAg ICB1bmljb2RlID0gc3RyICAjIG5vcWEKLSAKLSAKLWRpZmYgLS1naXQgYS9kb2N1dGlscy90cmFu c2Zvcm1zL3VuaXZlcnNhbC5weSBiL2RvY3V0aWxzL3RyYW5zZm9ybXMvdW5pdmVyc2FsLnB5Ci1p bmRleCA0OWZiMmM4Li43NzBlYzcxIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvdHJhbnNmb3Jtcy91 bml2ZXJzYWwucHkKLSsrKyBiL2RvY3V0aWxzL3RyYW5zZm9ybXMvdW5pdmVyc2FsLnB5Ci1AQCAt MjQsNyArMjQsNyBAQCBmcm9tIGRvY3V0aWxzLnRyYW5zZm9ybXMgaW1wb3J0IFRyYW5zZm9ybUVy cm9yLCBUcmFuc2Zvcm0KLSBmcm9tIGRvY3V0aWxzLnV0aWxzIGltcG9ydCBzbWFydHF1b3Rlcwot IAotIAotLWlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotK2lmIHN5cy52ZXJzaW9uX2lu Zm8gPj0gKDMsMCk6Ci0gICAgIHVuaWNvZGUgPSBzdHIgICMgbm9xYQotIAotIAotZGlmZiAtLWdp dCBhL2RvY3V0aWxzL3V0aWxzL19faW5pdF9fLnB5IGIvZG9jdXRpbHMvdXRpbHMvX19pbml0X18u cHkKLWluZGV4IDc3YzcwZjguLmRlMzkyNDcgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy91dGlscy9f X2luaXRfXy5weQotKysrIGIvZG9jdXRpbHMvdXRpbHMvX19pbml0X18ucHkKLUBAIC0yMiw3ICsy Miw3IEBAIGZyb20gZG9jdXRpbHMubm9kZXMgaW1wb3J0IHVuZXNjYXBlCi0gaW1wb3J0IGRvY3V0 aWxzLmlvCi0gZnJvbSBkb2N1dGlscy51dGlscy5lcnJvcl9yZXBvcnRpbmcgaW1wb3J0IEVycm9y T3V0cHV0LCBTYWZlU3RyaW5nCi0gCi0taWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0r aWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKLSAgICAgdW5pY29kZSA9IHN0cgotIAotIAot ZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3V0aWxzL2Vycm9yX3JlcG9ydGluZy5weSBiL2RvY3V0aWxz L3V0aWxzL2Vycm9yX3JlcG9ydGluZy5weQotaW5kZXggOGZjYzgxNi4uMjFiYzU1YiAxMDA2NDQK LS0tLSBhL2RvY3V0aWxzL3V0aWxzL2Vycm9yX3JlcG9ydGluZy5weQotKysrIGIvZG9jdXRpbHMv dXRpbHMvZXJyb3JfcmVwb3J0aW5nLnB5Ci1AQCAtNjUsNyArNjUsNyBAQCBlbHNlOgotICAgICAg ICAgbG9jYWxlX2VuY29kaW5nID0gTm9uZQotIAotIAotLWlmIHN5cy52ZXJzaW9uX2luZm8gPj0g KDMsIDApOgotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0gICAgIHVuaWNvZGUgPSBz dHIgICMgbm9xYQotIAotIAotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3dyaXRlcnMvX2h0bWxfYmFz ZS5weSBiL2RvY3V0aWxzL3dyaXRlcnMvX2h0bWxfYmFzZS5weQotaW5kZXggYTk1NzMxMS4uNjNk NWE1YiAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3dyaXRlcnMvX2h0bWxfYmFzZS5weQotKysrIGIv ZG9jdXRpbHMvd3JpdGVycy9faHRtbF9iYXNlLnB5Ci1AQCAtNDAsNyArNDAsNyBAQCBmcm9tIGRv Y3V0aWxzLnV0aWxzLm1hdGggaW1wb3J0ICh1bmljaGFyMnRleCwgcGlja19tYXRoX2Vudmlyb25t ZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGgyaHRtbCwgbGF0ZXgy bWF0aG1sLCB0ZXgybWF0aG1sX2V4dGVybikKLSAKLSAKLS1pZiBzeXMudmVyc2lvbl9pbmZvID49 ICgzLCAwKToKLStpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApOgotICAgICB1bmljb2RlID0g c3RyICAjIG5vcWEKLSAKLSAKLWRpZmYgLS1naXQgYS9kb2N1dGlscy93cml0ZXJzL2RvY3V0aWxz X3htbC5weSBiL2RvY3V0aWxzL3dyaXRlcnMvZG9jdXRpbHNfeG1sLnB5Ci1pbmRleCAzNGU4MTBk Li4xMjMwNmI2IDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvd3JpdGVycy9kb2N1dGlsc194bWwucHkK LSsrKyBiL2RvY3V0aWxzL3dyaXRlcnMvZG9jdXRpbHNfeG1sLnB5Ci1AQCAtMzAsNyArMzAsNyBA QCBmcm9tIFN0cmluZ0lPIGltcG9ydCBTdHJpbmdJTwotIGltcG9ydCBkb2N1dGlscwotIGZyb20g ZG9jdXRpbHMgaW1wb3J0IGZyb250ZW5kLCB3cml0ZXJzLCBub2RlcwotIAotLWlmIHN5cy52ZXJz aW9uX2luZm8gPj0gKDMsIDApOgotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0gICAg IHVuaWNvZGUgPSBzdHIgICMgbm9xYQotIAotIAotQEAgLTE4NSw3ICsxODUsNyBAQCBjbGFzcyBY TUxUcmFuc2xhdG9yKG5vZGVzLkdlbmVyaWNOb2RlVmlzaXRvcik6Ci0gICAgICAgICBzZWxmLm91 dHB1dC5hcHBlbmQoeG1sX3N0cmluZykKLSAgICAgICAgIHNlbGYuZGVmYXVsdF9kZXBhcnR1cmUo bm9kZSkgICMgb3Igbm90PwotICAgICAgICAgIyBDaGVjayB2YWxpZGl0eSBvZiByYXcgWE1MOgot LSAgICAgICAgaWYgaXNpbnN0YW5jZSh4bWxfc3RyaW5nLCB1bmljb2RlKSBhbmQgc3lzLnZlcnNp b25faW5mbyA8ICgzLCk6Ci0rICAgICAgICBpZiBpc2luc3RhbmNlKHhtbF9zdHJpbmcsIHVuaWNv ZGUpIGFuZCBzeXMudmVyc2lvbl9pbmZvIDwgKDMsMCk6Ci0gICAgICAgICAgICAgeG1sX3N0cmlu ZyA9IHhtbF9zdHJpbmcuZW5jb2RlKCd1dGY4JykKLSAgICAgICAgIHRyeToKLSAgICAgICAgICAg ICBzZWxmLnhtbHBhcnNlci5wYXJzZShTdHJpbmdJTyh4bWxfc3RyaW5nKSkKLWRpZmYgLS1naXQg YS9kb2N1dGlscy93cml0ZXJzL2xhdGV4MmUvX19pbml0X18ucHkgYi9kb2N1dGlscy93cml0ZXJz L2xhdGV4MmUvX19pbml0X18ucHkKLWluZGV4IDI0OWVjNGEuLjJjNzZiMGYgMTAwNjQ0Ci0tLS0g YS9kb2N1dGlscy93cml0ZXJzL2xhdGV4MmUvX19pbml0X18ucHkKLSsrKyBiL2RvY3V0aWxzL3dy aXRlcnMvbGF0ZXgyZS9fX2luaXRfXy5weQotQEAgLTI4LDcgKzI4LDcgQEAgZnJvbSBkb2N1dGls cy50cmFuc2Zvcm1zIGltcG9ydCB3cml0ZXJfYXV4Ci0gZnJvbSBkb2N1dGlscy51dGlscy5tYXRo IGltcG9ydCBwaWNrX21hdGhfZW52aXJvbm1lbnQsIHVuaWNoYXIydGV4Ci0gCi0gCi0taWYgc3lz LnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToK LSAgICAgdW5pY29kZSA9IHN0ciAgIyBub3FhCi0gCi0gCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMv d3JpdGVycy9tYW5wYWdlLnB5IGIvZG9jdXRpbHMvd3JpdGVycy9tYW5wYWdlLnB5Ci1pbmRleCBj YmI4NjQ4Li41MmNkNDljIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvd3JpdGVycy9tYW5wYWdlLnB5 Ci0rKysgYi9kb2N1dGlscy93cml0ZXJzL21hbnBhZ2UucHkKLUBAIC00Nyw3ICs0Nyw3IEBAIF9f ZG9jZm9ybWF0X18gPSAncmVTdHJ1Y3R1cmVkVGV4dCcKLSBpbXBvcnQgcmUKLSBpbXBvcnQgc3lz Ci0gCi0taWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCAwKToKLStpZiBzeXMudmVyc2lvbl9pbmZv IDwgKDMsMCk6Ci0gICAgIHJhbmdlID0geHJhbmdlCi0gCi0gaW1wb3J0IGRvY3V0aWxzCi1kaWZm IC0tZ2l0IGEvZG9jdXRpbHMvd3JpdGVycy9vZGZfb2R0L19faW5pdF9fLnB5IGIvZG9jdXRpbHMv d3JpdGVycy9vZGZfb2R0L19faW5pdF9fLnB5Ci1pbmRleCA0MTdkYzM0Li43NWY4NDZjIDEwMDY0 NAotLS0tIGEvZG9jdXRpbHMvd3JpdGVycy9vZGZfb2R0L19faW5pdF9fLnB5Ci0rKysgYi9kb2N1 dGlscy93cml0ZXJzL29kZl9vZHQvX19pbml0X18ucHkKLUBAIC05NDcsNyArOTQ3LDcgQEAgY2xh c3MgT0RGVHJhbnNsYXRvcihub2Rlcy5HZW5lcmljTm9kZVZpc2l0b3IpOgotICAgICAgICAgICAg ICAgICAgICAgc2VsZi5kb2N1bWVudC5yZXBvcnRlci53YXJuaW5nKAotICAgICAgICAgICAgICAg ICAgICAgICAgICdTdHlsZSAiJXMiIGlzIG5vdCBhIHN0eWxlIHVzZWQgYnkgb2R0d3JpdGVyLicg JSAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzdHN0eWxlLCApKQotLSAgICAgICAg ICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvLm1ham9yID49IDM6Ci0rICAgICAgICAgICAgICAg IGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0gICAgICAgICAgICAgICAgICAgICBzZWxm LmZvcm1hdF9tYXBbcnN0c3R5bGVdID0gZm9ybWF0Ci0gICAgICAgICAgICAgICAgIGVsc2U6Ci0g ICAgICAgICAgICAgICAgICAgICBzZWxmLmZvcm1hdF9tYXBbcnN0c3R5bGVdID0gZm9ybWF0LmRl Y29kZSgndXRmLTgnKQotZGlmZiAtLWdpdCBhL3NldHVwLnB5IGIvc2V0dXAucHkKLWluZGV4IDQy ODBiOTguLjEyYzM5OGIgMTAwNzU1Ci0tLS0gYS9zZXR1cC5weQotKysrIGIvc2V0dXAucHkKLUBA IC0xMyw3ICsxMyw3IEBAIHRyeToKLSAgICAgZnJvbSBkaXN0dXRpbHMuY29yZSBpbXBvcnQgc2V0 dXAsIENvbW1hbmQKLSAgICAgZnJvbSBkaXN0dXRpbHMuY29tbWFuZC5idWlsZCBpbXBvcnQgYnVp bGQKLSAgICAgZnJvbSBkaXN0dXRpbHMuY29tbWFuZC5idWlsZF9weSBpbXBvcnQgYnVpbGRfcHkK LS0gICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywpOgotKyAgICBpZiBzeXMudmVyc2lvbl9p bmZvID49ICgzLDApOgotICAgICAgICAgZnJvbSBkaXN0dXRpbHMuY29tbWFuZC5idWlsZF9weSBp bXBvcnQgYnVpbGRfcHlfMnRvMwotICAgICAgICAgZnJvbSBkaXN0dXRpbHMudXRpbCBpbXBvcnQg Y29weWRpcl9ydW5fMnRvMwotICAgICBmcm9tIGRpc3R1dGlscy5jb21tYW5kLmluc3RhbGxfZGF0 YSBpbXBvcnQgaW5zdGFsbF9kYXRhCi1AQCAtMjcsNyArMjcsNyBAQCBleGNlcHQgSW1wb3J0RXJy b3I6Ci0gICAgIHN5cy5leGl0KDEpCi0gCi0gCi0taWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywp OgotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0gICAgICMgY29weS1jb252ZXJ0IGF1 eGlsaWFyeSBweXRob24gc291cmNlcwotICAgICBjbGFzcyBjb3B5X2J1aWxkX3B5XzJ0bzMoYnVp bGRfcHlfMnRvMyk6Ci0gICAgICAgICAiIiJDb3B5L2NvbnZlcnQgUHl0aG9uIHNvdXJjZSBmaWxl cyBpbiBnaXZlbiBkaXJlY3RvcmllcyByZWN1cnNpdmVseS4KLUBAIC05Nyw3ICs5Nyw3IEBAIGRl ZiBkb19zZXR1cCgpOgotICAgICBrd2FyZ3NbJ2NtZGNsYXNzJ10gPSB7J2J1aWxkX2RhdGEnOiBi dWlsZF9kYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2luc3RhbGxfZGF0YSc6IHNt YXJ0X2luc3RhbGxfZGF0YX0KLSAgICAgIyBBdXRvLWNvbnZlcnQgc291cmNlIGNvZGUgZm9yIFB5 dGhvbiAzCi0tICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsKToKLSsgICAgaWYgc3lzLnZl cnNpb25faW5mbyA+PSAoMywwKToKLSAgICAgICAgIGt3YXJnc1snY21kY2xhc3MnXVsnYnVpbGRf cHknXSA9IGNvcHlfYnVpbGRfcHlfMnRvMwotICAgICBlbHNlOgotICAgICAgICAga3dhcmdzWydj bWRjbGFzcyddWydidWlsZF9weSddID0gYnVpbGRfcHkKLWRpZmYgLS1naXQgYS90ZXN0L0RvY3V0 aWxzVGVzdFN1cHBvcnQucHkgYi90ZXN0L0RvY3V0aWxzVGVzdFN1cHBvcnQucHkKLWluZGV4IDIx ZWE5ODIuLjM5MGRmNWIgMTAwNjQ0Ci0tLS0gYS90ZXN0L0RvY3V0aWxzVGVzdFN1cHBvcnQucHkK LSsrKyBiL3Rlc3QvRG9jdXRpbHNUZXN0U3VwcG9ydC5weQotQEAgLTg5LDcgKzg5LDcgQEAgZXhj ZXB0OgotICAgICBpbXBvcnQgcGRiCi0gCi0gCi0taWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywg MCk6Ci0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKLSAgICAgdW5pY29kZSA9IHN0ciAg IyBub3FhCi0gCi0gCi1AQCAtMjAyLDcgKzIwMiw3IEBAIGNsYXNzIEN1c3RvbVRlc3RDYXNlKFN0 YW5kYXJkVGVzdENhc2UpOgotICAgICAgICAgIiIiYGlucHV0YCwgYG91dHB1dGAsIGFuZCBgZXhw ZWN0ZWRgIHNob3VsZCBhbGwgYmUgc3RyaW5ncy4iIiIKLSAgICAgICAgIGlmIGlzaW5zdGFuY2Uo aW5wdXQsIHVuaWNvZGUpOgotICAgICAgICAgICAgIGlucHV0ID0gaW5wdXQuZW5jb2RlKCdyYXdf dW5pY29kZV9lc2NhcGUnKQotLSAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+ICgzLCk6Ci0r ICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvID4gKDMsMCk6Ci0gICAgICAgICAgICAgIyBBUEkg ZGlmZmVyZW5jZTogUHl0aG9uIDMncyBub2RlLl9fc3RyX18gZG9lc24ndCBlc2NhcGUKLSAgICAg ICAgICAgICAjYXNzZXJ0IGV4cGVjdGVkIGlzIE5vbmUgb3IgaXNpbnN0YW5jZShleHBlY3RlZCwg dW5pY29kZSkKLSAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGV4cGVjdGVkLCBieXRlcyk6Ci1k aWZmIC0tZ2l0IGEvdGVzdC90ZXN0X19pbml0X18ucHkgYi90ZXN0L3Rlc3RfX2luaXRfXy5weQot aW5kZXggOGYxZDc0OS4uODdlYzE0ZiAxMDA2NDQKLS0tLSBhL3Rlc3QvdGVzdF9faW5pdF9fLnB5 Ci0rKysgYi90ZXN0L3Rlc3RfX2luaXRfXy5weQotQEAgLTE2LDcgKzE2LDcgQEAgaW1wb3J0IGRv Y3V0aWxzCi0gaW1wb3J0IGRvY3V0aWxzLnV0aWxzCi0gCi0gCi0taWYgc3lzLnZlcnNpb25faW5m byA+PSAoMywgMCk6Ci0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKLSAgICAgdW5pY29k ZSA9IHN0ciAgIyBub3FhCi0gCi0gCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X2Vycm9yX3JlcG9y dGluZy5weSBiL3Rlc3QvdGVzdF9lcnJvcl9yZXBvcnRpbmcucHkKLWluZGV4IDg5MzA4MmMuLjRi MzM3ZTMgMTAwNjQ0Ci0tLS0gYS90ZXN0L3Rlc3RfZXJyb3JfcmVwb3J0aW5nLnB5Ci0rKysgYi90 ZXN0L3Rlc3RfZXJyb3JfcmVwb3J0aW5nLnB5Ci1AQCAtNDYsNyArNDYsNyBAQCBpZiBzeXMudmVy c2lvbl9pbmZvIDwgKDMsMCk6ICMgcHJvYmxlbXMgc29sdmVkIGluIHB5M2sKLSAgICAgICAgIHBy aW50KCdjYW5ub3QgdGVzdCBlcnJvciByZXBvcnRpbmcgd2l0aCBwcm9ibGVtYXRpYyBsb2NhbGVz LFxuJwotICAgICAgICAgICAgICdgaW1wb3J0IGxvY2FsZWAgZmFpbGVkLicpCi0gCi0taWYgc3lz LnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToK LSAgICAgdW5pY29kZSA9IHN0ciAgIyBub3FhCi0gCi0gCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0 X2xhbmd1YWdlLnB5IGIvdGVzdC90ZXN0X2xhbmd1YWdlLnB5Ci1pbmRleCAzMWFjNjEzLi40NTUz NTdhIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X2xhbmd1YWdlLnB5Ci0rKysgYi90ZXN0L3Rlc3Rf bGFuZ3VhZ2UucHkKLUBAIC0yNiw3ICsyNiw3IEBAIF9yZXBvcnRlciA9IGRvY3V0aWxzLnV0aWxz Lm5ld19yZXBvcnRlcignJywgX3NldHRpbmdzKQotIAotIHJlZmVyZW5jZV9sYW5ndWFnZSA9ICdl bicKLSAKLS1pZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLStpZiBzeXMudmVyc2lvbl9p bmZvID49ICgzLDApOgotICAgICB1bmljb2RlID0gc3RyICAjIG5vcWEKLSAKLSAKLWRpZmYgLS1n aXQgYS90ZXN0L3Rlc3Rfbm9kZXMucHkgYi90ZXN0L3Rlc3Rfbm9kZXMucHkKLWluZGV4IGFmMDRl ODYuLjY4MDU3OTkgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3Rfbm9kZXMucHkKLSsrKyBiL3Rlc3Qv dGVzdF9ub2Rlcy5weQotQEAgLTE3LDcgKzE3LDcgQEAgZnJvbSBEb2N1dGlsc1Rlc3RTdXBwb3J0 IGltcG9ydCBub2RlcywgdXRpbHMKLSAKLSBkZWJ1ZyA9IEZhbHNlCi0gCi0taWYgc3lzLnZlcnNp b25faW5mbyA+PSAoMywgMCk6Ci0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKLSAgICAg dW5pY29kZSA9IHN0ciAgIyBub3FhCi0gCi0gCi1AQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBUZXh0 VGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgotICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxm LnRleHQuc2hvcnRyZXByKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICByIjwjdGV4dDog J0xpbmUgMS5cbkxpbmUgMi4nPiIpCi0gICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5vZGVzLnJl cHJ1bmljb2RlKCdmb28nKSwgdSdmb28nKQotLSAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8 ICgzLCk6Ci0rICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsMCk6Ci0gICAgICAgICAg ICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKHNlbGYudW5pY29kZV90ZXh0KSwgciI8I3RleHQ6ICdN XHhmNmhyZW4nPiIpCi0gICAgICAgICBlbHNlOgotICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWwocmVwcihzZWxmLnVuaWNvZGVfdGV4dCksIHUiPCN0ZXh0OiAnTcO2aHJlbic+IikKLUBAIC02 NSw3ICs2NSw3IEBAIGNsYXNzIFRleHRUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgICAg ICBzZWxmLmFzc2VydEVxdWFsKHN0cmlwcGVkMiwgdSdzIG5vYycpCi0gCi0gICAgIGRlZiB0ZXN0 X2FzY2lpcmVzdHJpY3Rpb24oc2VsZik6Ci0tICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwg KDMsKToKLSsgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywwKToKLSAgICAgICAgICAg ICBzZWxmLmFzc2VydFJhaXNlcyhVbmljb2RlRGVjb2RlRXJyb3IsIG5vZGVzLlRleHQsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYidob2wlcycgJSBjaHIoMjI0KSkKLSAgICAgICAg IGVsc2U6Ci1AQCAtOTgsNyArOTgsNyBAQCBjbGFzcyBFbGVtZW50VGVzdHModW5pdHRlc3QuVGVz dENhc2UpOgotICAgICAgICAgZGVsIGVsZW1lbnRbJ2F0dHInXQotICAgICAgICAgZWxlbWVudFsn bWFyayddID0gdSdcdTIwMjInCi0gICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcHIoZWxlbWVu dCksICc8RWxlbWVudDogPicpCi0tICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsKToK LSsgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywwKToKLSAgICAgICAgICAgICBzZWxm LmFzc2VydEVxdWFsKHN0cihlbGVtZW50KSwgJzxFbGVtZW50IG1hcms9IlxcdTIwMjIiLz4nKQot ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihlbGVtZW50 KSwgdSc8RWxlbWVudCBtYXJrPSJcdTIwMjIiLz4nKQotQEAgLTEwNiw3ICsxMDYsNyBAQCBjbGFz cyBFbGVtZW50VGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgotICAgICAgICAgc2VsZi5hc3NlcnRF cXVhbChkb20udG94bWwoKSwgdSc8RWxlbWVudCBtYXJrPSJcdTIwMjIiLz4nKQotICAgICAgICAg ZG9tLnVubGluaygpCi0gICAgICAgICBlbGVtZW50WyduYW1lcyddID0gWydub2JvZHknLCB1J9C4 0LzRjycsIHUnbsOkcyddCi0tICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsKToKLSsg ICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywwKToKLSAgICAgICAgICAgICBzZWxmLmFz c2VydEVxdWFsKHJlcHIoZWxlbWVudCksCi0gICAgICAgICAgICAgICAgICc8RWxlbWVudCAibm9i b2R5OyBcXHUwNDM4XFx1MDQzY1xcdTA0NGY7IG5cXHhlNHMiOiA+JykKLSAgICAgICAgIGVsc2U6 Ci1AQCAtMTE3LDcgKzExNyw3IEBAIGNsYXNzIEVsZW1lbnRUZXN0cyh1bml0dGVzdC5UZXN0Q2Fz ZSk6Ci0gICAgICAgICBlbGVtZW50ID0gbm9kZXMuRWxlbWVudCgndGV4dFxubW9yZScsIG5vZGVz LlRleHQoJ3RleHRcbm1vcmUnKSkKLSAgICAgICAgIHVlbGVtZW50ID0gbm9kZXMuRWxlbWVudCh1 J2dyw7xuJywgbm9kZXMuVGV4dCh1J2dyw7xuJykpCi0gICAgICAgICBzZWxmLmFzc2VydEVxdWFs KHJlcHIoZWxlbWVudCksIHIiPEVsZW1lbnQ6IDwjdGV4dDogJ3RleHRcbm1vcmUnPj4iKQotLSAg ICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCk6Ci0rICAgICAgICBpZiBzeXMudmVyc2lv bl9pbmZvIDwgKDMsMCk6Ci0gICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKHVlbGVt ZW50KSwgIjxFbGVtZW50OiA8I3RleHQ6ICdnclxceGZjbic+PiIpCi0gICAgICAgICBlbHNlOgot ICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwcih1ZWxlbWVudCksIHUiPEVsZW1lbnQ6 IDwjdGV4dDogJ2dyw7xuJz4+IikKLUBAIC0zNDEsNyArMzQxLDcgQEAgY2xhc3MgTWlzY1Rlc3Rz KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNl KG5vZGVzLnJlcHJ1bmljb2RlKCdmb28nKSwgdW5pY29kZSkpCi0gICAgICAgICBzZWxmLmFzc2Vy dEVxdWFsKG5vZGVzLnJlcHJ1bmljb2RlKCdmb28nKSwgdSdmb28nKQotICAgICAgICAgc2VsZi5h c3NlcnRFcXVhbChub2Rlcy5yZXBydW5pY29kZSh1J03DtmhyZScpLCB1J03DtmhyZScpCi0tICAg ICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsKTogIyBzdHJpcCBsZWFkaW5nICJ1IiBmcm9t IHJlcHJlc2VudGF0aW9uCi0rICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsMCk6ICMg c3RyaXAgbGVhZGluZyAidSIgZnJvbSByZXByZXNlbnRhdGlvbgotICAgICAgICAgICAgIHNlbGYu YXNzZXJ0RXF1YWwocmVwcihub2Rlcy5yZXBydW5pY29kZSh1J03DtmhyZScpKSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJlcHIodSdNw7ZocmUnKVsxOl0pCi0gICAgICAgICBlbHNl OiAjIG5vIGNoYW5nZSB0byBgdW5pY29kZWAgdW5kZXIgUHl0aG9uIDNrCi1AQCAtMzUwLDcgKzM1 MCw3IEBAIGNsYXNzIE1pc2NUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIGRlZiB0ZXN0 X2Vuc3VyZV9zdHIoc2VsZik6Ci0gICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShu b2Rlcy5lbnN1cmVfc3RyKHUnw7xiZXInKSwgc3RyKSkKLSAgICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWwobm9kZXMuZW5zdXJlX3N0cignb3ZlcicpLCAnb3ZlcicpCi0tICAgICAgICBpZiBzeXMudmVy c2lvbl9pbmZvIDwgKDMsKTogIyBzdHJpcCBsZWFkaW5nICJ1IiBmcm9tIHJlcHJlc2VudGF0aW9u Ci0rICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsMCk6ICMgc3RyaXAgbGVhZGluZyAi dSIgZnJvbSByZXByZXNlbnRhdGlvbgotICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobm9k ZXMuZW5zdXJlX3N0cih1J8O8YmVyJyksIHInXHhmY2JlcicpCi0gICAgICAgICBlbHNlOgotICAg ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobm9kZXMuZW5zdXJlX3N0cih1J8O8YmVyJyksIHIn w7xiZXInKQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcGFyc2VyLnB5IGIv dGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9wYXJzZXIucHkKLWluZGV4IDZmYWVjYzcuLjZjNTc5NjMg MTAwNjQ0Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3BhcnNlci5weQotKysrIGIvdGVz dC90ZXN0X3BhcnNlcnMvdGVzdF9wYXJzZXIucHkKLUBAIC0yMyw3ICsyMyw3IEBAIGNsYXNzIFJz dFBhcnNlclRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAgICAgIGRvY3VtZW50ID0gdXRp bHMubmV3X2RvY3VtZW50KCd0ZXN0IGRhdGEnLCBmcm9udGVuZC5PcHRpb25QYXJzZXIoCi0gICAg ICAgICAgICAgICAgICAgICBjb21wb25lbnRzPShwYXJzZXIsICkpLmdldF9kZWZhdWx0X3ZhbHVl cygpKQotIAotLSAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCk6Ci0rICAgICAgICBp ZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsMCk6Ci0gICAgICAgICAgICAgIyBzdXBwbHlpbmcgc3Ry aW5nIGlucHV0IGlzIHN1cHBvcnRlZCwgYnV0IG9ubHkgaWYgYXNjaWktZGVjb2RhYmxlCi0gICAg ICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVW5pY29kZURlY29kZUVycm9yLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHBhcnNlci5wYXJzZSwgYidob2wlcycgJSBjaHIoMjI0KSwg ZG9jdW1lbnQpCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9k aXJlY3RpdmVzL3Rlc3RfaW5jbHVkZS5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rl c3RfZGlyZWN0aXZlcy90ZXN0X2luY2x1ZGUucHkKLWluZGV4IGQ4NDgyNjIuLjkyZDAxOTMgMTAw NzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVz dF9pbmNsdWRlLnB5Ci0rKysgYi90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVj dGl2ZXMvdGVzdF9pbmNsdWRlLnB5Ci1AQCAtMTYsNyArMTYsNyBAQCBmcm9tIGRvY3V0aWxzLnBh cnNlcnMucnN0IGltcG9ydCBzdGF0ZXMKLSBmcm9tIGRvY3V0aWxzLnV0aWxzLmNvZGVfYW5hbHl6 ZXIgaW1wb3J0IHdpdGhfcHlnbWVudHMKLSAKLSAKLS1pZiBzeXMudmVyc2lvbl9pbmZvID49ICgz LCAwKToKLStpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApOgotICAgICB1bmljaHIgPSBjaHIg ICMgbm9xYQotIAotIAotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rl c3RfZGlyZWN0aXZlcy90ZXN0X3RhYmxlcy5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0 L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3RhYmxlcy5weQotaW5kZXggZWU5MzBjOC4uOWQ0MTdlOCAx MDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90 ZXN0X3RhYmxlcy5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJl Y3RpdmVzL3Rlc3RfdGFibGVzLnB5Ci1AQCAtMTgsNyArMTgsNyBAQCBmcm9tIGRvY3V0aWxzLnBh cnNlcnMucnN0LmRpcmVjdGl2ZXMgaW1wb3J0IHRhYmxlcwotIGZyb20gLiBpbXBvcnQgRG9jdXRp bHNUZXN0U3VwcG9ydAotIAotIAotLWlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotK2lm IHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0gICAgIHVuaWNvZGUgPSBzdHIgICMgbm9xYQot ICAgICB1bmljaHIgPSBjaHIgICMgbm9xYQotIAotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJz ZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3VuaWNvZGUucHkgYi90ZXN0L3Rlc3Rf cGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF91bmljb2RlLnB5Ci1pbmRleCBi OTliNWQwLi41NzZiYzFkIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3Qv dGVzdF9kaXJlY3RpdmVzL3Rlc3RfdW5pY29kZS5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMv dGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfdW5pY29kZS5weQotQEAgLTE0LDcgKzE0LDcg QEAgaW1wb3J0IHN5cwotIGZyb20gLiBpbXBvcnQgRG9jdXRpbHNUZXN0U3VwcG9ydAotIAotIAot LWlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0g KDMsMCk6Ci0gICAgIHVuaWNociA9IGNociAgIyBub3FhCi0gCi0gCi1kaWZmIC0tZ2l0IGEvdG9v bHMvZGV2L2NyZWF0ZV91bmltYXAucHkgYi90b29scy9kZXYvY3JlYXRlX3VuaW1hcC5weQotaW5k ZXggNzRlOGJjNy4uODA4ODYxZCAxMDA3NTUKLS0tLSBhL3Rvb2xzL2Rldi9jcmVhdGVfdW5pbWFw LnB5Ci0rKysgYi90b29scy9kZXYvY3JlYXRlX3VuaW1hcC5weQotQEAgLTE0LDcgKzE0LDcgQEAg ZnJvbSB4bWwuZG9tIGltcG9ydCBtaW5pZG9tCi0gaW1wb3J0IHN5cwotIGltcG9ydCBwcHJpbnQK LSAKLS1pZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLStpZiBzeXMudmVyc2lvbl9pbmZv ID49ICgzLDApOgotICAgICB1bmljb2RlID0gc3RyICAjbm9xYQotIGVsc2U6Ci0gICAgIGJ5dGVz ID0gc3RyICAjIG5vcWEKLUBAIC0yMiw3ICsyMiw3IEBAIGVsc2U6Ci0gCi0gCi0gZGVmIHcocyk6 Ci0tICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApIGFuZCBpc2luc3RhbmNlKHMsIHVu aWNvZGUpOgotKyAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApIGFuZCBpc2luc3RhbmNl KHMsIHVuaWNvZGUpOgotICAgICAgICAgcyA9IHMuZW5jb2RlKCd1dGY4JykKLSAgICAgc3lzLnN0 ZG91dC53cml0ZShzKQotIAotZGlmZiAtLWdpdCBhL3Rvb2xzL2Rldi9nZW5lcmF0ZV9wdW5jdHVh dGlvbl9jaGFycy5weSBiL3Rvb2xzL2Rldi9nZW5lcmF0ZV9wdW5jdHVhdGlvbl9jaGFycy5weQot aW5kZXggYjcxOGY3OC4uZmJiNzJjMCAxMDA2NDQKLS0tLSBhL3Rvb2xzL2Rldi9nZW5lcmF0ZV9w dW5jdHVhdGlvbl9jaGFycy5weQotKysrIGIvdG9vbHMvZGV2L2dlbmVyYXRlX3B1bmN0dWF0aW9u X2NoYXJzLnB5Ci1AQCAtMzgsNyArMzgsNyBAQCBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50 X2Z1bmN0aW9uCi0gaW1wb3J0IHN5cwotIGltcG9ydCB1bmljb2RlZGF0YQotIAotLWlmIHN5cy52 ZXJzaW9uX2luZm8gPj0gKDMsKToKLStpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApOgotICAg ICB1bmljaHIgPSBjaHIgICMgdW5pY2hyIG5vdCBhdmFpbGFibGUgaW4gUHkzawotIGVsc2U6Ci0g ICAgIGltcG9ydCBjb2RlY3MKLUBAIC0zNjEsNyArMzYxLDcgQEAgaWYgX19uYW1lX18gPT0gJ19f bWFpbl9fJzoKLSAjIEltcG9ydCB0aGUgcHVuY3R1YXRpb25fY2hhcnMgbW9kdWxlIGZyb20gdGhl IHNvdXJjZQotICMgb3IgUHkzayBidWlsZCBwYXRoIGZvciBsb2NhbCBQeXRob24gbW9kdWxlczo6 Ci0gCi0tICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsKToKLSsgICAgICAgIGlmIHN5 cy52ZXJzaW9uX2luZm8gPCAoMywwKToKLSAgICAgICAgICAgICBzeXMucGF0aC5pbnNlcnQoMCwg Jy4uLy4uL2RvY3V0aWxzJykKLSAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgc3lzLnBhdGgu aW5zZXJ0KDAsICcuLi8uLi9idWlsZC9saWInKQotLS0gCi0yLjI0LjAuMzc1LmdlYjVhZTY4ZDQx Ci0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAxNC1weTMt UmVwbGFjZS1mb28ubmV4dC13aXRoLW5leHQtZm9vLnBhdGNoIGIvc3JjcGtncy9weXRob24tZG9j dXRpbHMvcGF0Y2hlcy8wMDE0LXB5My1SZXBsYWNlLWZvby5uZXh0LXdpdGgtbmV4dC1mb28ucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU0ZGZmMmExNTlhLi4wMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMTQtcHkzLVJlcGxhY2Ut Zm9vLm5leHQtd2l0aC1uZXh0LWZvby5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAg QEAKLUZyb20gY2ZlZjc0ZjU2NzQ5OGYxZTA5Nzc2MWJjM2NhZTdjMGJkZTI0NTFjYyBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXBoZW4gRmludWNhbmUgPHN0ZXBoZW5AdGhhdC5n dXJ1PgotRGF0ZTogTW9uLCAyNiBBdWcgMjAxOSAxNjo0Njo1MCArMDAwMAotU3ViamVjdDogW1BB VENIIDE0LzI2XSBweTM6IFJlcGxhY2UgJ2Zvby5uZXh0KCknIHdpdGggJ25leHQoZm9vKScKLQot VGhlIGZvcm1lciBvbmx5IHdvcmtzIGluIFB5dGhvbiAyLCB3aGlsZSB0aGUgbGF0dGVyIHdvcmtz IGluIFB5dGhvbiAyLjcKLWFuZCAzLnguCi0KLVNpZ25lZC1vZmYtYnk6IFN0ZXBoZW4gRmludWNh bmUgPHN0ZXBoZW5AdGhhdC5ndXJ1PgotCi1naXQtc3ZuLWlkOiBodHRwOi8vc3ZuLmNvZGUuc2Yu bmV0L3AvZG9jdXRpbHMvY29kZS90cnVua0A4MzYxIDkyOTU0M2Y2LWU0ZjItMDMxMC05OGE2LWJh M2JkM2RkMWQwNAotU2lnbmVkLW9mZi1ieTogRG9hbiBUcmFuIENvbmcgRGFuaCA8Y29uZ2Rhbmhx eEBnbWFpbC5jb20+Ci0tLS0KLSBkb2N1dGlscy91dGlscy9jb2RlX2FuYWx5emVyLnB5ICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAyICstCi0gZG9jdXRpbHMvdXRpbHMvbWF0aC9tYXRoMmh0 bWwucHkgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQotIGRvY3V0aWxzL3dyaXRlcnMv bWFucGFnZS5weSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KLSB0ZXN0L3Rl c3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF90YWJsZXMucHkgfCAyICst Ci0gNCBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCi0KLWRp ZmYgLS1naXQgYS9kb2N1dGlscy91dGlscy9jb2RlX2FuYWx5emVyLnB5IGIvZG9jdXRpbHMvdXRp bHMvY29kZV9hbmFseXplci5weQotaW5kZXggNmRjMmUxNS4uODdhNDU4NCAxMDA2NDQKLS0tLSBh L2RvY3V0aWxzL3V0aWxzL2NvZGVfYW5hbHl6ZXIucHkKLSsrKyBiL2RvY3V0aWxzL3V0aWxzL2Nv ZGVfYW5hbHl6ZXIucHkKLUBAIC04Myw3ICs4Myw3IEBAIGNsYXNzIExleGVyKG9iamVjdCk6Ci0g ICAgICAgICAgICBBbHNvIHN0cmlwIHRoZSBmaW5hbCBuZXdsaW5lIChhZGRlZCBieSBweWdtZW50 cykuCi0gICAgICAgICAiIiIKLSAgICAgICAgIHRva2VucyA9IGl0ZXIodG9rZW5zKQotLSAgICAg ICAgKGxhc3R0eXBlLCBsYXN0dmFsKSA9IHRva2Vucy5uZXh0KCkKLSsgICAgICAgIChsYXN0dHlw ZSwgbGFzdHZhbCkgPSBuZXh0KHRva2VucykKLSAgICAgICAgIGZvciB0dHlwZSwgdmFsdWUgaW4g dG9rZW5zOgotICAgICAgICAgICAgIGlmIHR0eXBlIGlzIGxhc3R0eXBlOgotICAgICAgICAgICAg ICAgICBsYXN0dmFsICs9IHZhbHVlCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvdXRpbHMvbWF0aC9t YXRoMmh0bWwucHkgYi9kb2N1dGlscy91dGlscy9tYXRoL21hdGgyaHRtbC5weQotaW5kZXggYWRj YjFjYy4uZGRhY2E0OCAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3V0aWxzL21hdGgvbWF0aDJodG1s LnB5Ci0rKysgYi9kb2N1dGlscy91dGlscy9tYXRoL21hdGgyaHRtbC5weQotQEAgLTIyMDgsNyAr MjIwOCw3IEBAIGNsYXNzIENvbnRhaW5lcihvYmplY3QpOgotICAgICAgIGlmIG9yZChwb3MuY3Vy cmVudCgpKSA+IDEyODoKLSAgICAgICAgIGNvZGVwb2ludCA9IGhleChvcmQocG9zLmN1cnJlbnQo KSkpCi0gICAgICAgICBpZiBjb2RlcG9pbnQgPT0gJzB4ZDgzNSc6Ci0tICAgICAgICAgIGNvZGVw b2ludCA9IGhleChvcmQocG9zLm5leHQoKSkgKyAweGY4MDApCi0rICAgICAgICAgIGNvZGVwb2lu dCA9IGhleChvcmQobmV4dChwb3MpKSArIDB4ZjgwMCkKLSAgICAgICAgIHJlc3VsdCArPSAnJiMn ICsgY29kZXBvaW50WzE6XSArICc7JwotICAgICAgIGVsc2U6Ci0gICAgICAgICByZXN1bHQgKz0g cG9zLmN1cnJlbnQoKQotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3dyaXRlcnMvbWFucGFnZS5weSBi L2RvY3V0aWxzL3dyaXRlcnMvbWFucGFnZS5weQotaW5kZXggNTJjZDQ5Yy4uYjM5Y2YyNSAxMDA2 NDQKLS0tLSBhL2RvY3V0aWxzL3dyaXRlcnMvbWFucGFnZS5weQotKysrIGIvZG9jdXRpbHMvd3Jp dGVycy9tYW5wYWdlLnB5Ci1AQCAtODEyLDcgKzgxMiw3IEBAIGNsYXNzIFRyYW5zbGF0b3Iobm9k ZXMuTm9kZVZpc2l0b3IpOgotICAgICBkZWYgdmlzaXRfbGlzdF9pdGVtKHNlbGYsIG5vZGUpOgot ICAgICAgICAgIyBtYW4gNyBtYW4gYXJndWVzIHRvIHVzZSAiLklQIiBpbnN0ZWFkIG9mICIuVFAi Ci0gICAgICAgICBzZWxmLmJvZHkuYXBwZW5kKCcuSVAgJXMgJWRcbicgJSAoCi0tICAgICAgICAg ICAgICAgIHNlbGYuX2xpc3RfY2hhclstMV0ubmV4dCgpLAotKyAgICAgICAgICAgICAgICBuZXh0 KHNlbGYuX2xpc3RfY2hhclstMV0pLAotICAgICAgICAgICAgICAgICBzZWxmLl9saXN0X2NoYXJb LTFdLmdldF93aWR0aCgpLCkpCi0gCi0gICAgIGRlZiBkZXBhcnRfbGlzdF9pdGVtKHNlbGYsIG5v ZGUpOgotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0 aXZlcy90ZXN0X3RhYmxlcy5weSBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGly ZWN0aXZlcy90ZXN0X3RhYmxlcy5weQotaW5kZXggOWQ0MTdlOC4uY2M0NTBmMyAxMDA3NTUKLS0t LSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3RhYmxl cy5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rl c3RfdGFibGVzLnB5Ci1AQCAtNTksNyArNTksNyBAQCBkZWYgbnVsbF9ieXRlcygpOgotICAgICBj c3ZfZGF0YSA9IHVuaWNvZGUoY3N2X2RhdGEsICdsYXRpbjEnKS5zcGxpdGxpbmVzKCkKLSAgICAg cmVhZGVyID0gY3N2LnJlYWRlcihbdGFibGVzLkNTVlRhYmxlLmVuY29kZV9mb3JfY3N2KGxpbmUg KyAnXG4nKQotICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgbGluZSBpbiBjc3ZfZGF0YV0p Ci0tICAgIHJlYWRlci5uZXh0KCkKLSsgICAgbmV4dChyZWFkZXIpCi0gCi0gbnVsbF9ieXRlc19l eGNlcHRpb24gPSBEb2N1dGlsc1Rlc3RTdXBwb3J0LmV4Y2VwdGlvbl9kYXRhKG51bGxfYnl0ZXMp WzBdCi0gCi0tLSAKLTIuMjQuMC4zNzUuZ2ViNWFlNjhkNDEKLQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDE1LXB5My1SZXBsYWNlLWZvby5oYXNfa2V5LWJh ci13aXRoLWJhci1pbi1mb28ucGF0Y2ggYi9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVz LzAwMTUtcHkzLVJlcGxhY2UtZm9vLmhhc19rZXktYmFyLXdpdGgtYmFyLWluLWZvby5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTUzYjEwOWVlNzcuLjAwMDAwMDAwMDAwCi0t LSBhL3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAxNS1weTMtUmVwbGFjZS1mb28u aGFzX2tleS1iYXItd2l0aC1iYXItaW4tZm9vLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzgg KzAsMCBAQAotRnJvbSAwMDYzNjZmN2JhYWY4NGJhZjAxNThjY2Q5MDM2YzlhNTNkMjdjOTY1IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3RlcGhlbiBGaW51Y2FuZSA8c3RlcGhlbkB0 aGF0Lmd1cnU+Ci1EYXRlOiBNb24sIDI2IEF1ZyAyMDE5IDIzOjEyOjU2ICswMDAwCi1TdWJqZWN0 OiBbUEFUQ0ggMTUvMjZdIHB5MzogUmVwbGFjZSAnZm9vLmhhc19rZXkoYmFyKScgd2l0aCAnYmFy IGluIGZvbycKLQotU2lnbmVkLW9mZi1ieTogU3RlcGhlbiBGaW51Y2FuZSA8c3RlcGhlbkB0aGF0 Lmd1cnU+Ci0KLWdpdC1zdm4taWQ6IGh0dHA6Ly9zdm4uY29kZS5zZi5uZXQvcC9kb2N1dGlscy9j b2RlL3RydW5rQDgzNjIgOTI5NTQzZjYtZTRmMi0wMzEwLTk4YTYtYmEzYmQzZGQxZDA0Ci1TaWdu ZWQtb2ZmLWJ5OiBEb2FuIFRyYW4gQ29uZyBEYW5oIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KLS0t LQotIGRvY3V0aWxzL3dyaXRlcnMvbWFucGFnZS5weSB8IDQgKystLQotIDEgZmlsZSBjaGFuZ2Vk LCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9kb2N1dGls cy93cml0ZXJzL21hbnBhZ2UucHkgYi9kb2N1dGlscy93cml0ZXJzL21hbnBhZ2UucHkKLWluZGV4 IGIzOWNmMjUuLjhiYjAyNWMgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy93cml0ZXJzL21hbnBhZ2Uu cHkKLSsrKyBiL2RvY3V0aWxzL3dyaXRlcnMvbWFucGFnZS5weQotQEAgLTMxMiw3ICszMTIsNyBA QCBjbGFzcyBUcmFuc2xhdG9yKG5vZGVzLk5vZGVWaXNpdG9yKToKLSAKLSAgICAgICAgICAgICBk ZWYgX19pbml0X18oc2VsZiwgc3R5bGUpOgotICAgICAgICAgICAgICAgICBzZWxmLl9zdHlsZSA9 IHN0eWxlCi0tICAgICAgICAgICAgICAgIGlmIG5vZGUuaGFzX2tleSgnc3RhcnQnKToKLSsgICAg ICAgICAgICAgICAgaWYgJ3N0YXJ0JyBpbiBub2RlOgotICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5fY250ID0gbm9kZVsnc3RhcnQnXSAtIDEKLSAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAg ICAgICAgICAgICAgICAgIHNlbGYuX2NudCA9IDAKLUBAIC0zNTQsNyArMzU0LDcgQEAgY2xhc3Mg VHJhbnNsYXRvcihub2Rlcy5Ob2RlVmlzaXRvcik6Ci0gICAgICAgICAgICAgZGVmIF9fcmVwcl9f KHNlbGYpOgotICAgICAgICAgICAgICAgICByZXR1cm4gJ2VudW1fc3R5bGUtJXMnICUgbGlzdChz ZWxmLl9zdHlsZSkKLSAKLS0gICAgICAgIGlmIG5vZGUuaGFzX2tleSgnZW51bXR5cGUnKToKLSsg ICAgICAgIGlmICdlbnVtdHlwZScgaW4gbm9kZToKLSAgICAgICAgICAgICBzZWxmLl9saXN0X2No YXIuYXBwZW5kKGVudW1fY2hhcihub2RlWydlbnVtdHlwZSddKSkKLSAgICAgICAgIGVsc2U6Ci0g ICAgICAgICAgICAgc2VsZi5fbGlzdF9jaGFyLmFwcGVuZChlbnVtX2NoYXIoJ2J1bGxldCcpKQot LS0gCi0yLjI0LjAuMzc1LmdlYjVhZTY4ZDQxCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcHl0aG9u LWRvY3V0aWxzL3BhdGNoZXMvMDAxNi1SZW1vdmUtZHVwbGljYXRlLWRlZmluaXRpb24tb2Ytbm9k ZXMuRWxlbWVudC5fX2NvbnRhLnBhdGNoIGIvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hl cy8wMDE2LVJlbW92ZS1kdXBsaWNhdGUtZGVmaW5pdGlvbi1vZi1ub2Rlcy5FbGVtZW50Ll9fY29u dGEucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJjNzFlYTZlNGU4Li4wMDAw MDAwMDAwMAotLS0gYS9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMTYtUmVtb3Zl LWR1cGxpY2F0ZS1kZWZpbml0aW9uLW9mLW5vZGVzLkVsZW1lbnQuX19jb250YS5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLUZyb20gYmYzNzA2NTEzMjFlZDcyMTc3N2ZlMGJi MWM0YmQ0NjUyZWVhMzU0YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXBoZW4g RmludWNhbmUgPHN0ZXBoZW5AdGhhdC5ndXJ1PgotRGF0ZTogTW9uLCAyNiBBdWcgMjAxOSAyMzox MzowNCArMDAwMAotU3ViamVjdDogW1BBVENIIDE2LzI2XSBSZW1vdmUgZHVwbGljYXRlIGRlZmlu aXRpb24gb2YKLSBgbm9kZXMuRWxlbWVudC5fX2NvbnRhaW5zX19gLgotCi1naXQtc3ZuLWlkOiBo dHRwOi8vc3ZuLmNvZGUuc2YubmV0L3AvZG9jdXRpbHMvY29kZS90cnVua0A4MzYzIDkyOTU0M2Y2 LWU0ZjItMDMxMC05OGE2LWJhM2JkM2RkMWQwNAotU2lnbmVkLW9mZi1ieTogRG9hbiBUcmFuIENv bmcgRGFuaCA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+Ci0tLS0KLSBkb2N1dGlscy9ub2Rlcy5weSB8 IDE0ICsrKysrKy0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgOCBk ZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL25vZGVzLnB5IGIvZG9jdXRpbHMv bm9kZXMucHkKLWluZGV4IDNkNzE0YTIuLmY4ZGEwMmIgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9u b2Rlcy5weQotKysrIGIvZG9jdXRpbHMvbm9kZXMucHkKLUBAIC01NzcsMTMgKzU3Nyw2IEBAIGNs YXNzIEVsZW1lbnQoTm9kZSk6Ci0gICAgIGRlZiBfX2xlbl9fKHNlbGYpOgotICAgICAgICAgcmV0 dXJuIGxlbihzZWxmLmNoaWxkcmVuKQotIAotLSAgICBkZWYgX19jb250YWluc19fKHNlbGYsIGtl eSk6Ci0tICAgICAgICAjIHN1cHBvcnQgYm90aCBtZW1iZXJzaGlwIHRlc3QgZm9yIGNoaWxkcmVu IGFuZCBhdHRyaWJ1dGVzCi0tICAgICAgICAjIChoYXNfa2V5IGlzIHRyYW5zbGF0ZWQgdG8gImlu IiBieSAydG8zKQotLSAgICAgICAgaWYgaXNpbnN0YW5jZShrZXksIGJhc2VzdHJpbmcpOgotLSAg ICAgICAgICAgIHJldHVybiBrZXkgaW4gc2VsZi5hdHRyaWJ1dGVzCi0tICAgICAgICByZXR1cm4g a2V5IGluIHNlbGYuY2hpbGRyZW4KLS0KLSAgICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGtleSk6 Ci0gICAgICAgICBpZiBpc2luc3RhbmNlKGtleSwgYmFzZXN0cmluZyk6Ci0gICAgICAgICAgICAg cmV0dXJuIHNlbGYuYXR0cmlidXRlc1trZXldCi1AQCAtNjY4LDcgKzY2MSwxMiBAQCBjbGFzcyBF bGVtZW50KE5vZGUpOgotICAgICBoYXNfa2V5ID0gaGFzYXR0cgotIAotICAgICAjIHN1cHBvcnQg b3BlcmF0b3IgYGBpbmBgCi0tICAgIF9fY29udGFpbnNfXyA9IGhhc2F0dHIKLSsgICAgZGVmIF9f Y29udGFpbnNfXyhzZWxmLCBrZXkpOgotKyAgICAgICAgIyBzdXBwb3J0IGJvdGggbWVtYmVyc2hp cCB0ZXN0IGZvciBjaGlsZHJlbiBhbmQgYXR0cmlidXRlcwotKyAgICAgICAgIyAoaGFzX2tleSBp cyB0cmFuc2xhdGVkIHRvICJpbiIgYnkgMnRvMykKLSsgICAgICAgIGlmIGlzaW5zdGFuY2Uoa2V5 LCBiYXNlc3RyaW5nKToKLSsgICAgICAgICAgICByZXR1cm4ga2V5IGluIHNlbGYuYXR0cmlidXRl cwotKyAgICAgICAgcmV0dXJuIGtleSBpbiBzZWxmLmNoaWxkcmVuCi0gCi0gICAgIGRlZiBnZXRf bGFuZ3VhZ2VfY29kZShzZWxmLCBmYWxsYmFjaz0nJyk6Ci0gICAgICAgICAiIiJSZXR1cm4gbm9k ZSdzIGxhbmd1YWdlIHRhZy4KLS0tIAotMi4yNC4wLjM3NS5nZWI1YWU2OGQ0MQotCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMTctSGFuZGxlLUNvbmZpZ1Bh cnNlci10by1jb25maWdwYXJzZXItcmVuYW1lLnBhdGNoIGIvc3JjcGtncy9weXRob24tZG9jdXRp bHMvcGF0Y2hlcy8wMDE3LUhhbmRsZS1Db25maWdQYXJzZXItdG8tY29uZmlncGFyc2VyLXJlbmFt ZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODA5YzczNDE5MDYuLjAwMDAw MDAwMDAwCi0tLSBhL3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAxNy1IYW5kbGUt Q29uZmlnUGFyc2VyLXRvLWNvbmZpZ3BhcnNlci1yZW5hbWUucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSw5MyArMCwwIEBACi1Gcm9tIGJjYzA4NTkyZGQ4NWYyZTc4MDVhYjM1Mjg2NTlhNDM5NmYx MDliMzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTdGVwaGVuIEZpbnVjYW5lIDxz dGVwaGVuQHRoYXQuZ3VydT4KLURhdGU6IFdlZCwgMjAgTm92IDIwMTkgMDA6MDU6NDMgKzA3MDAK LVN1YmplY3Q6IFtQQVRDSCAxNy8yNl0gSGFuZGxlICdDb25maWdQYXJzZXInIHRvICdjb25maWdw YXJzZXInIHJlbmFtZS4KLQotQmFzZWQgb24gYSBwYXRjaCBieSBTdGVwaGVuIEZpbnVjYW5lLgot Ci1naXQtc3ZuLWlkOiBodHRwOi8vc3ZuLmNvZGUuc2YubmV0L3AvZG9jdXRpbHMvY29kZS90cnVu a0A4MzY0IDkyOTU0M2Y2LWU0ZjItMDMxMC05OGE2LWJhM2JkM2RkMWQwNAotU2lnbmVkLW9mZi1i eTogRG9hbiBUcmFuIENvbmcgRGFuaCA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+Ci0tLS0KLSBkb2N1 dGlscy9mcm9udGVuZC5weSAgICAgICAgICAgICAgICAgfCAxNCArKysrKysrKystLS0tLQotIGRv Y3V0aWxzL3dyaXRlcnMvb2RmX29kdC9fX2luaXRfXy5weSB8ICA0ICsrLS0KLSAyIGZpbGVzIGNo YW5nZWQsIDExIGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9k b2N1dGlscy9mcm9udGVuZC5weSBiL2RvY3V0aWxzL2Zyb250ZW5kLnB5Ci1pbmRleCA2MjdmNjAz Li44MTUzNDNkIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvZnJvbnRlbmQucHkKLSsrKyBiL2RvY3V0 aWxzL2Zyb250ZW5kLnB5Ci1AQCAtMzMsMTAgKzMzLDE0IEBAIGltcG9ydCBvcwotIGltcG9ydCBv cy5wYXRoCi0gaW1wb3J0IHN5cwotIGltcG9ydCB3YXJuaW5ncwotLWltcG9ydCBDb25maWdQYXJz ZXIgYXMgQ1AKLSBpbXBvcnQgY29kZWNzCi0gaW1wb3J0IG9wdHBhcnNlCi0gZnJvbSBvcHRwYXJz ZSBpbXBvcnQgU1VQUFJFU1NfSEVMUAotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0r ICAgIGZyb20gY29uZmlncGFyc2VyIGltcG9ydCBSYXdDb25maWdQYXJzZXIKLStlbHNlOgotKyAg ICBmcm9tIENvbmZpZ1BhcnNlciBpbXBvcnQgUmF3Q29uZmlnUGFyc2VyCi0rCi0gaW1wb3J0IGRv Y3V0aWxzCi0gaW1wb3J0IGRvY3V0aWxzLnV0aWxzCi0gaW1wb3J0IGRvY3V0aWxzLm5vZGVzCi1A QCAtNzM1LDcgKzczOSw3IEBAIGNsYXNzIE9wdGlvblBhcnNlcihvcHRwYXJzZS5PcHRpb25QYXJz ZXIsIGRvY3V0aWxzLlNldHRpbmdzU3BlYyk6Ci0gICAgICAgICByYWlzZSBLZXlFcnJvcignTm8g b3B0aW9uIHdpdGggZGVzdCA9PSAlci4nICUgZGVzdCkKLSAKLSAKLS1jbGFzcyBDb25maWdQYXJz ZXIoQ1AuUmF3Q29uZmlnUGFyc2VyKToKLStjbGFzcyBDb25maWdQYXJzZXIoUmF3Q29uZmlnUGFy c2VyKToKLSAKLSAgICAgb2xkX3NldHRpbmdzID0gewotICAgICAgICAgJ3BlcF9zdHlsZXNoZWV0 JzogKCdwZXBfaHRtbCB3cml0ZXInLCAnc3R5bGVzaGVldCcpLAotQEAgLTc1Nyw3ICs3NjEsNyBA QCBTa2lwcGluZyAiJXMiIGNvbmZpZ3VyYXRpb24gZmlsZS4KLSAiIiIKLSAKLSAgICAgZGVmIF9f aW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6Ci0tICAgICAgICBDUC5SYXdDb25maWdQYXJz ZXIuX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKQotKyAgICAgICAgUmF3Q29uZmlnUGFy c2VyLl9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncykKLSAKLSAgICAgICAgIHNlbGYuX2Zp bGVzID0gW10KLSAgICAgICAgICIiIkxpc3Qgb2YgcGF0aHMgb2YgY29uZmlndXJhdGlvbiBmaWxl cyByZWFkLiIiIgotQEAgLTc3Niw5ICs3ODAsOSBAQCBTa2lwcGluZyAiJXMiIGNvbmZpZ3VyYXRp b24gZmlsZS4KLSAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICB0cnk6Ci0g ICAgICAgICAgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywyKToKLS0gICAgICAgICAg ICAgICAgICAgIENQLlJhd0NvbmZpZ1BhcnNlci5yZWFkZnAoc2VsZiwgZnAsIGZpbGVuYW1lKQot KyAgICAgICAgICAgICAgICAgICAgUmF3Q29uZmlnUGFyc2VyLnJlYWRmcChzZWxmLCBmcCwgZmls ZW5hbWUpCi0gICAgICAgICAgICAgICAgIGVsc2U6Ci0tICAgICAgICAgICAgICAgICAgICBDUC5S YXdDb25maWdQYXJzZXIucmVhZF9maWxlKHNlbGYsIGZwLCBmaWxlbmFtZSkKLSsgICAgICAgICAg ICAgICAgICAgIFJhd0NvbmZpZ1BhcnNlci5yZWFkX2ZpbGUoc2VsZiwgZnAsIGZpbGVuYW1lKQot ICAgICAgICAgICAgIGV4Y2VwdCBVbmljb2RlRGVjb2RlRXJyb3I6Ci0gICAgICAgICAgICAgICAg IHNlbGYuX3N0ZGVyci53cml0ZShzZWxmLm5vdF91dGY4X2Vycm9yICUgKGZpbGVuYW1lLCBmaWxl bmFtZSkpCi0gICAgICAgICAgICAgICAgIGZwLmNsb3NlKCkKLWRpZmYgLS1naXQgYS9kb2N1dGls cy93cml0ZXJzL29kZl9vZHQvX19pbml0X18ucHkgYi9kb2N1dGlscy93cml0ZXJzL29kZl9vZHQv X19pbml0X18ucHkKLWluZGV4IDc1Zjg0NmMuLmYzNjk4MGYgMTAwNjQ0Ci0tLS0gYS9kb2N1dGls cy93cml0ZXJzL29kZl9vZHQvX19pbml0X18ucHkKLSsrKyBiL2RvY3V0aWxzL3dyaXRlcnMvb2Rm X29kdC9fX2luaXRfXy5weQotQEAgLTMwLDEwICszMCwxMiBAQCBmcm9tIGRvY3V0aWxzIGltcG9y dCBmcm9udGVuZCwgbm9kZXMsIHV0aWxzLCB3cml0ZXJzLCBsYW5ndWFnZXMKLSBmcm9tIGRvY3V0 aWxzLnJlYWRlcnMgaW1wb3J0IHN0YW5kYWxvbmUKLSBmcm9tIGRvY3V0aWxzLnRyYW5zZm9ybXMg aW1wb3J0IHJlZmVyZW5jZXMKLSBpZiB0eXBlKHN5cy52ZXJzaW9uX2luZm8pIT10eXBlKCgwLCkp IGFuZCBzeXMudmVyc2lvbl9pbmZvLm1ham9yID49IDM6Ci0rICAgIGZyb20gY29uZmlncGFyc2Vy IGltcG9ydCBDb25maWdQYXJzZXIKLSAgICAgZnJvbSBpbyBpbXBvcnQgU3RyaW5nSU8KLSAgICAg ZnJvbSB1cmxsaWIucmVxdWVzdCBpbXBvcnQgdXJsb3BlbgotICAgICBmcm9tIHVybGxpYi5lcnJv ciBpbXBvcnQgSFRUUEVycm9yCi0gZWxzZToKLSsgICAgZnJvbSBDb25maWdQYXJzZXIgaW1wb3J0 IENvbmZpZ1BhcnNlcgotICAgICBmcm9tIFN0cmluZ0lPIGltcG9ydCBTdHJpbmdJTwotICAgICBm cm9tIHVybGxpYjIgaW1wb3J0IHVybG9wZW4sIEhUVFBFcnJvcgotIAotQEAgLTkzOCw4ICs5NDAs NiBAQCBjbGFzcyBPREZUcmFuc2xhdG9yKG5vZGVzLkdlbmVyaWNOb2RlVmlzaXRvcik6Ci0gICAg ICAgICAgICAgZG9jdW1lbnQucmVwb3J0ZXIpCi0gICAgICAgICBzZWxmLmZvcm1hdF9tYXAgPSB7 fQotICAgICAgICAgaWYgc2VsZi5zZXR0aW5ncy5vZGZfY29uZmlnX2ZpbGU6Ci0tICAgICAgICAg ICAgZnJvbSBjb25maWdwYXJzZXIgaW1wb3J0IENvbmZpZ1BhcnNlcgotLQotICAgICAgICAgICAg IHBhcnNlciA9IENvbmZpZ1BhcnNlcigpCi0gICAgICAgICAgICAgcGFyc2VyLnJlYWQoc2VsZi5z ZXR0aW5ncy5vZGZfY29uZmlnX2ZpbGUpCi0gICAgICAgICAgICAgZm9yIHJzdHN0eWxlLCBmb3Jt YXQgaW4gcGFyc2VyLml0ZW1zKCJGb3JtYXRzIik6Ci0tLSAKLTIuMjQuMC4zNzUuZ2ViNWFlNjhk NDEKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDE4LXB5 My1SZXBsYWNlLXVyLXByZWZpeC5wYXRjaCBiL3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNo ZXMvMDAxOC1weTMtUmVwbGFjZS11ci1wcmVmaXgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IGM0MDFjNGFlYmJjLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3B5dGhvbi1k b2N1dGlscy9wYXRjaGVzLzAwMTgtcHkzLVJlcGxhY2UtdXItcHJlZml4LnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsNTk5ICswLDAgQEAKLUZyb20gYWM0MDhjN2VkMDQ1MDBjODNhNDc4NjFjNWFj ODhhZWUyNDZkMTc4YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXBoZW4gRmlu dWNhbmUgPHN0ZXBoZW5AdGhhdC5ndXJ1PgotRGF0ZTogVHVlLCAyNyBBdWcgMjAxOSAxMjowOTox OSArMDAwMAotU3ViamVjdDogW1BBVENIIDE4LzI2XSBweTM6IFJlcGxhY2UgJ3VyJyBwcmVmaXgK LQotV2hpbGUgdGhlICd1JyBwcmVmaXggd2FzIGJhY2twb3J0ZWQgdG8gUHl0aG9uIDMuMyBvciB0 aGVyZWFib3V0cywgJ3VyJwotcmVtYWlucyBpbnZhbGlkIGluIFB5dGhvbiAzLiBKdXN0IGVzY2Fw ZSBhbGwgYmFja3NsYXNoZXMgYW5kIHVzZSBwbGFpbgotb2xkICd1Jy4KLQotQmFzZWQgb24gcGF0 Y2ggYnkgU3RlcGhlbiBGaW51Y2FuZSA8c3RlcGhlbkB0aGF0Lmd1cnU+Ci0KLWdpdC1zdm4taWQ6 IGh0dHA6Ly9zdm4uY29kZS5zZi5uZXQvcC9kb2N1dGlscy9jb2RlL3RydW5rQDgzNjYgOTI5NTQz ZjYtZTRmMi0wMzEwLTk4YTYtYmEzYmQzZGQxZDA0Ci1TaWduZWQtb2ZmLWJ5OiBEb2FuIFRyYW4g Q29uZyBEYW5oIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KLS0tLQotIGRvY3V0aWxzL3V0aWxzL21h dGgvbGF0ZXgybWF0aG1sLnB5ICAgICAgICAgICB8ICAyOCArLQotIGRvY3V0aWxzL3V0aWxzL21h dGgvdGV4Mm1hdGhtbF9leHRlcm4ucHkgICAgICB8ICAgMyArLQotIGRvY3V0aWxzL3V0aWxzL3Nt YXJ0cXVvdGVzLnB5ICAgICAgICAgICAgICAgICB8ICAyNCArLQotIGRvY3V0aWxzL3dyaXRlcnMv bGF0ZXgyZS9fX2luaXRfXy5weSAgICAgICAgICB8IDI4MCArKysrKysrKystLS0tLS0tLS0KLSBk b2N1dGlscy93cml0ZXJzL21hbnBhZ2UucHkgICAgICAgICAgICAgICAgICAgfCAgIDggKy0KLSAu Li4vdGVzdF9yc3QvdGVzdF9lYXN0X2FzaWFuX3RleHQucHkgICAgICAgICAgfCAgIDQgKy0KLSB0 b29scy9kZXYvZ2VuZXJhdGVfcHVuY3R1YXRpb25fY2hhcnMucHkgICAgICAgfCAgMTAgKy0KLSA3 IGZpbGVzIGNoYW5nZWQsIDE4MiBpbnNlcnRpb25zKCspLCAxNzUgZGVsZXRpb25zKC0pCi0KLWRp ZmYgLS1naXQgYS9kb2N1dGlscy91dGlscy9tYXRoL2xhdGV4Mm1hdGhtbC5weSBiL2RvY3V0aWxz L3V0aWxzL21hdGgvbGF0ZXgybWF0aG1sLnB5Ci1pbmRleCBiN2JhMDQ4Li4xZjNiYzE4IDEwMDY0 NAotLS0tIGEvZG9jdXRpbHMvdXRpbHMvbWF0aC9sYXRleDJtYXRobWwucHkKLSsrKyBiL2RvY3V0 aWxzL3V0aWxzL21hdGgvbGF0ZXgybWF0aG1sLnB5Ci1AQCAtNiwxMiArNiwxMiBAQAotICMgICAg ICAgICAgICAgQmFzZWQgb24gcnN0Mm1hdGhtbC5weSBmcm9tIHRoZSBsYXRleF9tYXRoIHNhbmRi b3ggcHJvamVjdAotICMgICAgICAgICAgICAgwqkgMjAwNSBKZW5zIErDuHJnZW4gTW9ydGVuc2Vu Ci0gIyA6TGljZW5zZTogUmVsZWFzZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBgMi1DbGF1c2Ug QlNEIGxpY2Vuc2VgXywgaW4gc2hvcnQ6Ci0tIyAKLSsjCi0gIyAgICBDb3B5aW5nIGFuZCBkaXN0 cmlidXRpb24gb2YgdGhpcyBmaWxlLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAotICMg ICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0 aGUgY29weXJpZ2h0Ci0gIyAgICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQu Ci0gIyAgICBUaGlzIGZpbGUgaXMgb2ZmZXJlZCBhcy1pcywgd2l0aG91dCBhbnkgd2FycmFudHku Ci0tIyAKLSsjCi0gIyAuLiBfMi1DbGF1c2UgQlNEIGxpY2Vuc2U6IGh0dHA6Ly93d3cuc3BkeC5v cmcvbGljZW5zZXMvQlNELTItQ2xhdXNlCi0gCi0gCi1AQCAtNDEyLDcgKzQxMiw3IEBAIGRlZiBw YXJzZV9sYXRleF9tYXRoKHN0cmluZywgaW5saW5lPVRydWUpOgotICAgICAgICAgICAgICAgICBu b2RlID0gZW50cnkKLSAgICAgICAgICAgICAgICAgc2tpcCA9IDIKLSAgICAgICAgICAgICBlbHNl OgotLSAgICAgICAgICAgICAgICByYWlzZSBTeW50YXhFcnJvcih1cidTeW50YXggZXJyb3I6ICIl cyVzIicgJSAoYywgYzIpKQotKyAgICAgICAgICAgICAgICByYWlzZSBTeW50YXhFcnJvcih1J1N5 bnRheCBlcnJvcjogIiVzJXMiJyAlIChjLCBjMikpCi0gICAgICAgICBlbGlmIGMuaXNhbHBoYSgp OgotICAgICAgICAgICAgIG5vZGUgPSBub2RlLmFwcGVuZChtaShjKSkKLSAgICAgICAgIGVsaWYg Yy5pc2RpZ2l0KCk6Ci1AQCAtNDUzLDcgKzQ1Myw3IEBAIGRlZiBwYXJzZV9sYXRleF9tYXRoKHN0 cmluZywgaW5saW5lPVRydWUpOgotICAgICAgICAgICAgIG5vZGUuY2xvc2UoKS5hcHBlbmQoZW50 cnkpCi0gICAgICAgICAgICAgbm9kZSA9IGVudHJ5Ci0gICAgICAgICBlbHNlOgotLSAgICAgICAg ICAgIHJhaXNlIFN5bnRheEVycm9yKHVyJ0lsbGVnYWwgY2hhcmFjdGVyOiAiJXMiJyAlIGMpCi0r ICAgICAgICAgICAgcmFpc2UgU3ludGF4RXJyb3IodSdJbGxlZ2FsIGNoYXJhY3RlcjogIiVzIicg JSBjKQotICAgICAgICAgc3RyaW5nID0gc3RyaW5nW3NraXA6XQotICAgICByZXR1cm4gdHJlZQot IAotQEAgLTQ3NCwxNSArNDc0LDE1IEBAIGRlZiBoYW5kbGVfa2V5d29yZChuYW1lLCBub2RlLCBz dHJpbmcpOgotICAgICAgICAgbm9kZSA9IGVudHJ5Ci0gICAgIGVsaWYgbmFtZSA9PSAnZW5kJzoK LSAgICAgICAgIGlmIG5vdCBzdHJpbmcuc3RhcnRzd2l0aCgne21hdHJpeH0nKToKLS0gICAgICAg ICAgICByYWlzZSBTeW50YXhFcnJvcih1cidFeHBlY3RlZCAiXGVuZHttYXRyaXh9IiEnKQotKyAg ICAgICAgICAgIHJhaXNlIFN5bnRheEVycm9yKHUnRXhwZWN0ZWQgIlxcZW5ke21hdHJpeH0iIScp Ci0gICAgICAgICBza2lwICs9IDgKLSAgICAgICAgIG5vZGUgPSBub2RlLmNsb3NlKCkuY2xvc2Uo KS5jbG9zZSgpCi0gICAgIGVsaWYgbmFtZSBpbiAoJ3RleHQnLCAnbWF0aHJtJyk6Ci0gICAgICAg ICBpZiBzdHJpbmdbMF0gIT0gJ3snOgotLSAgICAgICAgICAgIHJhaXNlIFN5bnRheEVycm9yKHVy J0V4cGVjdGVkICJcdGV4dHsuLi59IiEnKQotKyAgICAgICAgICAgIHJhaXNlIFN5bnRheEVycm9y KHUnRXhwZWN0ZWQgIlxcdGV4dHsuLi59IiEnKQotICAgICAgICAgaSA9IHN0cmluZy5maW5kKCd9 JykKLSAgICAgICAgIGlmIGkgPT0gLTE6Ci0tICAgICAgICAgICAgcmFpc2UgU3ludGF4RXJyb3Io dXInRXhwZWN0ZWQgIlx0ZXh0ey4uLn0iIScpCi0rICAgICAgICAgICAgcmFpc2UgU3ludGF4RXJy b3IodSdFeHBlY3RlZCAiXFx0ZXh0ey4uLn0iIScpCi0gICAgICAgICBub2RlID0gbm9kZS5hcHBl bmQobXRleHQoc3RyaW5nWzE6aV0pKQotICAgICAgICAgc2tpcCArPSBpICsgMQotICAgICBlbGlm IG5hbWUgPT0gJ3NxcnQnOgotQEAgLTUyMCw3ICs1MjAsNyBAQCBkZWYgaGFuZGxlX2tleXdvcmQo bmFtZSwgbm9kZSwgc3RyaW5nKToKLSAgICAgICAgICAgICBpZiBzdHJpbmcuc3RhcnRzd2l0aChv cGVyYXRvcik6Ci0gICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICBlbHNlOgotLSAgICAg ICAgICAgIHJhaXNlIFN5bnRheEVycm9yKHVyJ0V4cGVjdGVkIHNvbWV0aGluZyB0byBuZWdhdGU6 ICJcbm90IC4uLiIhJykKLSsgICAgICAgICAgICByYWlzZSBTeW50YXhFcnJvcih1J0V4cGVjdGVk IHNvbWV0aGluZyB0byBuZWdhdGU6ICJcXG5vdCAuLi4iIScpCi0gICAgICAgICBub2RlID0gbm9k ZS5hcHBlbmQobW8obmVnYXRhYmxlc1tvcGVyYXRvcl0pKQotICAgICAgICAgc2tpcCArPSBsZW4o b3BlcmF0b3IpCi0gICAgIGVsaWYgbmFtZSA9PSAnbWF0aGJmJzoKLUBAIC01MjksMTIgKzUyOSwx MiBAQCBkZWYgaGFuZGxlX2tleXdvcmQobmFtZSwgbm9kZSwgc3RyaW5nKToKLSAgICAgICAgIG5v ZGUgPSBzdHlsZQotICAgICBlbGlmIG5hbWUgPT0gJ21hdGhiYic6Ci0gICAgICAgICBpZiBzdHJp bmdbMF0gIT0gJ3snIG9yIG5vdCBzdHJpbmdbMV0uaXN1cHBlcigpIG9yIHN0cmluZ1syXSAhPSAn fSc6Ci0tICAgICAgICAgICAgcmFpc2UgU3ludGF4RXJyb3IodXInRXhwZWN0ZWQgc29tZXRoaW5n IGxpa2UgIlxtYXRoYmJ7QX0iIScpCi0rICAgICAgICAgICAgcmFpc2UgU3ludGF4RXJyb3IodSdF eHBlY3RlZCBzb21ldGhpbmcgbGlrZSAiXFxtYXRoYmJ7QX0iIScpCi0gICAgICAgICBub2RlID0g bm9kZS5hcHBlbmQobWkobWF0aGJiW3N0cmluZ1sxXV0pKQotICAgICAgICAgc2tpcCArPSAzCi0g ICAgIGVsaWYgbmFtZSBpbiAoJ21hdGhzY3InLCAnbWF0aGNhbCcpOgotICAgICAgICAgaWYgc3Ry aW5nWzBdICE9ICd7JyBvciBzdHJpbmdbMl0gIT0gJ30nOgotLSAgICAgICAgICAgIHJhaXNlIFN5 bnRheEVycm9yKHVyJ0V4cGVjdGVkIHNvbWV0aGluZyBsaWtlICJcbWF0aHNjcntBfSIhJykKLSsg ICAgICAgICAgICByYWlzZSBTeW50YXhFcnJvcih1J0V4cGVjdGVkIHNvbWV0aGluZyBsaWtlICJc XG1hdGhzY3J7QX0iIScpCi0gICAgICAgICBub2RlID0gbm9kZS5hcHBlbmQobWkobWF0aHNjcltz dHJpbmdbMV1dKSkKLSAgICAgICAgIHNraXAgKz0gMwotICAgICBlbGlmIG5hbWUgPT0gJ2NvbG9u JzogIyAibm9ybWFsIiBjb2xvbiwgbm90IGJpbmFyeSBvcGVyYXRvcgotQEAgLTU1OSwxMiArNTU5 LDEwIEBAIGRlZiBoYW5kbGVfa2V5d29yZChuYW1lLCBub2RlLCBzdHJpbmcpOgotICAgICByZXR1 cm4gbm9kZSwgc2tpcAotIAotIGRlZiB0ZXgybWF0aG1sKHRleF9tYXRoLCBpbmxpbmU9VHJ1ZSk6 Ci0tICAgICIiIlJldHVybiBzdHJpbmcgd2l0aCBNYXRoTUwgY29kZSBjb3JyZXNwb25kaW5nIHRv IGB0ZXhfbWF0aGAuIAotLSAgICAKLSsgICAgIiIiUmV0dXJuIHN0cmluZyB3aXRoIE1hdGhNTCBj b2RlIGNvcnJlc3BvbmRpbmcgdG8gYHRleF9tYXRoYC4KLSsKLSAgICAgYGlubGluZWA9VHJ1ZSBp cyBmb3IgaW5saW5lIG1hdGggYW5kIGBpbmxpbmVgPUZhbHNlIGZvciBkaXNwbGF5ZWQgbWF0aC4K LSAgICAgIiIiCi0tICAgIAotKwotICAgICBtYXRobWxfdHJlZSA9IHBhcnNlX2xhdGV4X21hdGgo dGV4X21hdGgsIGlubGluZT1pbmxpbmUpCi0gICAgIHJldHVybiAnJy5qb2luKG1hdGhtbF90cmVl LnhtbCgpKQotLQotLSAgICAKLWRpZmYgLS1naXQgYS9kb2N1dGlscy91dGlscy9tYXRoL3RleDJt YXRobWxfZXh0ZXJuLnB5IGIvZG9jdXRpbHMvdXRpbHMvbWF0aC90ZXgybWF0aG1sX2V4dGVybi5w eQotaW5kZXggM2U3ZjE1OC4uYWI4MmE3OCAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3V0aWxzL21h dGgvdGV4Mm1hdGhtbF9leHRlcm4ucHkKLSsrKyBiL2RvY3V0aWxzL3V0aWxzL21hdGgvdGV4Mm1h dGhtbF9leHRlcm4ucHkKLUBAIC0xNDEsNyArMTQxLDggQEAgZGVmIGJsYWh0ZXhtbChtYXRoX2Nv ZGUsIGlubGluZT1UcnVlLCByZXBvcnRlcj1Ob25lKToKLSAjIHNlbGYtdGVzdAotIAotIGlmIF9f bmFtZV9fID09ICJfX21haW5fXyI6Ci0tICAgIGV4YW1wbGUgPSB1cidcZnJhY3tccGFydGlhbCBc c2luXjIoXGFscGhhKX17XHBhcnRpYWwgXHZlYyByfSBcdmFycGkgXCwgXHRleHR7R3LDvMOfZX0n Ci0rICAgIGV4YW1wbGUgPSAodSdcXGZyYWN7XFxwYXJ0aWFsIFxcc2luXjIoXFxhbHBoYSl9e1xc cGFydGlhbCBcXHZlYyByfScKLSsgICAgICAgICAgICAgICB1J1xcdmFycGkgXFwsIFxcdGV4dHtH csO8w59lfScpCi0gICAgICMgcHJpbnQobGF0ZXhtbChleGFtcGxlKS5lbmNvZGUoJ3V0ZjgnKSkK LSAgICAgIyBwcmludCh0dG0oZXhhbXBsZSkpCi0gICAgIHByaW50KGJsYWh0ZXhtbChleGFtcGxl KS5lbmNvZGUoJ3V0ZjgnKSkKLWRpZmYgLS1naXQgYS9kb2N1dGlscy91dGlscy9zbWFydHF1b3Rl cy5weSBiL2RvY3V0aWxzL3V0aWxzL3NtYXJ0cXVvdGVzLnB5Ci1pbmRleCAxNDhhNGM5Li5iMzhm YTQ3IDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvdXRpbHMvc21hcnRxdW90ZXMucHkKLSsrKyBiL2Rv Y3V0aWxzL3V0aWxzL3NtYXJ0cXVvdGVzLnB5Ci1AQCAtNjU4LDIwICs2NTgsMjEgQEAgZGVmIGVk dWNhdGVRdW90ZXModGV4dCwgbGFuZ3VhZ2U9J2VuJyk6Ci0gICAgICAgICB0ZXh0ID0gcmUuc3Vi KHIiJyg/PVxkezJ9cykiLCBzbWFydC5hcG9zdHJvcGhlLCB0ZXh0KQotIAotICAgICAjIEdldCBt b3N0IG9wZW5pbmcgc2luZ2xlIHF1b3RlczoKLS0gICAgb3BlbmluZ19zaW5nbGVfcXVvdGVzX3Jl Z2V4ID0gcmUuY29tcGlsZSh1ciIiIgotKyAgICBvcGVuaW5nX3NpbmdsZV9xdW90ZXNfcmVnZXgg PSByZS5jb21waWxlKHUiIiIKLSAgICAgICAgICAgICAgICAgICAgICgjID88PSAgIyBsb29rIGJl aGluZCBmYWlsczogcmVxdWlyZXMgZml4ZWQtd2lkdGggcGF0dGVybgotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBccyAgICAgICAgICB8ICAgIyBhIHdoaXRlc3BhY2UgY2hhciwgb3IKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxzICAgICAgICAgfCAgICMgYSB3aGl0ZXNwYWNl IGNoYXIsIG9yCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICVzICAgICAgICAgIHwgICAj IGFub3RoZXIgc2VwYXJhdGluZyBjaGFyLCBvcgotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmbmJzcDsgICAgICB8ICAgIyBhIG5vbi1icmVha2luZyBzcGFjZSBlbnRpdHksIG9yCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFvigJPigJRdICAgICAgICB8ICAgIyBsaXRlcmFsIGRh c2hlcywgb3IKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1x1MjAxMyBcdTIwMTQgXSAg ICAgICAgfCAgICMgbGl0ZXJhbCBkYXNoZXMsIG9yCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC0tICAgICAgICAgIHwgICAjIGR1bWIgZGFzaGVzLCBvcgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAmW21uXWRhc2g7ICB8ICAgIyBkYXNoIGVudGl0aWVzIChuYW1lZCBvcgotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAlcyAgICAgICAgICB8ICAgIyBkZWNpbWFsIG9yCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZcI3gyMDFbMzRdOyAgICAjIGhleCkKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJlxcI3gyMDFbMzRdOyAgICAjIGhleCkKLSAgICAgICAg ICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAgICMg dGhlIHF1b3RlCi0tICAgICAgICAgICAgICAgICAgICAoPz1cdykgICAgICAgICAgICAjIGZvbGxv d2VkIGJ5IGEgd29yZCBjaGFyYWN0ZXIKLS0gICAgICAgICAgICAgICAgICAgICIiIiAlIChvcGVu X2NsYXNzLGRlY19kYXNoZXMpLCByZS5WRVJCT1NFIHwgcmUuVU5JQ09ERSkKLSsgICAgICAgICAg ICAgICAgICAgICg/PVxcdykgICAgICAgICAgICMgZm9sbG93ZWQgYnkgYSB3b3JkIGNoYXJhY3Rl cgotKyAgICAgICAgICAgICAgICAgICAgIiIiICUgKG9wZW5fY2xhc3MsIGRlY19kYXNoZXMpLCBy ZS5WRVJCT1NFIHwgcmUuVU5JQ09ERSkKLSsKLSAgICAgdGV4dCA9IG9wZW5pbmdfc2luZ2xlX3F1 b3Rlc19yZWdleC5zdWIocidcMScrc21hcnQub3NxdW90ZSwgdGV4dCkKLSAKLSAgICAgIyBJbiBt YW55IGxvY2FsZXMsIHNpbmdsZSBjbG9zaW5nIHF1b3RlcyBhcmUgZGlmZmVyZW50IGZyb20gYXBv c3Ryb3BoZToKLUBAIC02OTEsMjAgKzY5MiwyMSBAQCBkZWYgZWR1Y2F0ZVF1b3Rlcyh0ZXh0LCBs YW5ndWFnZT0nZW4nKToKLSAgICAgdGV4dCA9IHJlLnN1YihyIiIiJyIiIiwgc21hcnQub3NxdW90 ZSwgdGV4dCkKLSAKLSAgICAgIyBHZXQgbW9zdCBvcGVuaW5nIGRvdWJsZSBxdW90ZXM6Ci0tICAg IG9wZW5pbmdfZG91YmxlX3F1b3Rlc19yZWdleCA9IHJlLmNvbXBpbGUodXIiIiIKLSsgICAgb3Bl bmluZ19kb3VibGVfcXVvdGVzX3JlZ2V4ID0gcmUuY29tcGlsZSh1IiIiCi0gICAgICAgICAgICAg ICAgICAgICAoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxzICAgICAgICAgIHwgICAj IGEgd2hpdGVzcGFjZSBjaGFyLCBvcgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXHMg ICAgICAgICB8ICAgIyBhIHdoaXRlc3BhY2UgY2hhciwgb3IKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJXMgICAgICAgICAgfCAgICMgYW5vdGhlciBzZXBhcmF0aW5nIGNoYXIsIG9yCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwOyAgICAgIHwgICAjIGEgbm9uLWJyZWFr aW5nIHNwYWNlIGVudGl0eSwgb3IKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgW+KAk+KA lF0gICAgICAgIHwgICAjIGxpdGVyYWwgZGFzaGVzLCBvcgotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBbXHUyMDEzIFx1MjAxNCBdICAgICAgICB8ICAgIyBsaXRlcmFsIGRhc2hlcywgb3IK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gICAgICAgICAgfCAgICMgZHVtYiBkYXNo ZXMsIG9yCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICZbbW5dZGFzaDsgIHwgICAjIGRh c2ggZW50aXRpZXMgKG5hbWVkIG9yCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICVzICAg ICAgICAgIHwgICAjIGRlY2ltYWwgb3IKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJlwj eDIwMVszNF07ICAgICMgaGV4KQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAmXFwjeDIw MVszNF07ICAgICMgaGV4KQotICAgICAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAg ICAgICAgIiAgICAgICAgICAgICAgICAgIyB0aGUgcXVvdGUKLS0gICAgICAgICAgICAgICAgICAg ICg/PVx3KSAgICAgICAgICAgICMgZm9sbG93ZWQgYnkgYSB3b3JkIGNoYXJhY3RlcgotKyAgICAg ICAgICAgICAgICAgICAgKD89XFx3KSAgICAgICAgICAgICMgZm9sbG93ZWQgYnkgYSB3b3JkIGNo YXJhY3RlcgotICAgICAgICAgICAgICAgICAgICAgIiIiICUgKG9wZW5fY2xhc3MsZGVjX2Rhc2hl cyksIHJlLlZFUkJPU0UgfCByZS5VTklDT0RFKQotKwotICAgICB0ZXh0ID0gb3BlbmluZ19kb3Vi bGVfcXVvdGVzX3JlZ2V4LnN1YihyJ1wxJytzbWFydC5vcHF1b3RlLCB0ZXh0KQotIAotICAgICAj IERvdWJsZSBjbG9zaW5nIHF1b3RlczoKLWRpZmYgLS1naXQgYS9kb2N1dGlscy93cml0ZXJzL2xh dGV4MmUvX19pbml0X18ucHkgYi9kb2N1dGlscy93cml0ZXJzL2xhdGV4MmUvX19pbml0X18ucHkK LWluZGV4IDJjNzZiMGYuLjYzNmQ0NzcgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy93cml0ZXJzL2xh dGV4MmUvX19pbml0X18ucHkKLSsrKyBiL2RvY3V0aWxzL3dyaXRlcnMvbGF0ZXgyZS9fX2luaXRf Xy5weQotQEAgLTcwNCwxNjUgKzcwNCwxNjUgQEAgY2xhc3MgQ2hhck1hcHMob2JqZWN0KToKLSAK LSAgICAgIyBjaGFyYWN0ZXJzIHRoYXQgbmVlZCBlc2NhcGluZyBldmVuIGluIGBhbGx0dGAgZW52 aXJvbm1lbnRzOgotICAgICBhbGx0dCA9IHsKLS0gICAgICAgIG9yZCgnXFwnKTogdXInXHRleHRi YWNrc2xhc2h7fScsCi0tICAgICAgICBvcmQoJ3snKTogdXInXHsnLAotLSAgICAgICAgb3JkKCd9 Jyk6IHVyJ1x9JywKLSsgICAgICAgIG9yZCgnXFwnKTogdSdcXHRleHRiYWNrc2xhc2h7fScsCi0r ICAgICAgICBvcmQoJ3snKTogdSdcXHsnLAotKyAgICAgICAgb3JkKCd9Jyk6IHUnXFx9JywKLSAg ICAgfQotICAgICAjIGNoYXJhY3RlcnMgdGhhdCBub3JtYWxseSBuZWVkIGVzY2FwaW5nOgotICAg ICBzcGVjaWFsID0gewotLSAgICAgICAgb3JkKCcjJyk6IHVyJ1wjJywKLS0gICAgICAgIG9yZCgn JCcpOiB1cidcJCcsCi0tICAgICAgICBvcmQoJyUnKTogdXInXCUnLAotLSAgICAgICAgb3JkKCcm Jyk6IHVyJ1wmJywKLS0gICAgICAgIG9yZCgnficpOiB1cidcdGV4dGFzY2lpdGlsZGV7fScsCi0t ICAgICAgICBvcmQoJ18nKTogdXInXF8nLAotLSAgICAgICAgb3JkKCdeJyk6IHVyJ1x0ZXh0YXNj aWljaXJjdW17fScsCi0rICAgICAgICBvcmQoJyMnKTogdSdcXCMnLAotKyAgICAgICAgb3JkKCck Jyk6IHUnXFwkJywKLSsgICAgICAgIG9yZCgnJScpOiB1J1xcJScsCi0rICAgICAgICBvcmQoJyYn KTogdSdcXCYnLAotKyAgICAgICAgb3JkKCd+Jyk6IHUnXFx0ZXh0YXNjaWl0aWxkZXt9JywKLSsg ICAgICAgIG9yZCgnXycpOiB1J1xcXycsCi0rICAgICAgICBvcmQoJ14nKTogdSdcXHRleHRhc2Np aWNpcmN1bXt9JywKLSAgICAgICAgICMgc3RyYWlnaHQgZG91YmxlIHF1b3RlcyBhcmUgJ2FjdGl2 ZScgaW4gbWFueSBsYW5ndWFnZXMKLS0gICAgICAgIG9yZCgnIicpOiB1cidcdGV4dHF1b3RlZGJs e30nLAotKyAgICAgICAgb3JkKCciJyk6IHUnXFx0ZXh0cXVvdGVkYmx7fScsCi0gICAgICAgICAj IFNxdWFyZSBicmFja2V0cyBhcmUgb3JkaW5hcnkgY2hhcnMgYW5kIGNhbm5vdCBiZSBlc2NhcGVk IHdpdGggJ1wnLAotICAgICAgICAgIyBzbyB3ZSBwdXQgdGhlbSBpbiBhIGdyb3VwICd7W30nLiAo QWx0ZXJuYXRpdmU6IGVuc3VyZSB0aGF0IGFsbAotICAgICAgICAgIyBtYWNyb3Mgd2l0aCBvcHRp b25hbCBhcmd1bWVudHMgYXJlIHRlcm1pbmF0ZWQgd2l0aCB7fSBhbmQgdGV4dAotICAgICAgICAg IyBpbnNpZGUgYW55IG9wdGlvbmFsIGFyZ3VtZW50IGlzIHB1dCBpbiBhIGdyb3VwIGBgW3t0ZXh0 fV1gYCkuCi0gICAgICAgICAjIENvbW1hbmRzIHdpdGggb3B0aW9uYWwgYXJncyBpbnNpZGUgYW4g b3B0aW9uYWwgYXJnIG11c3QgYmUgcHV0IGluIGEKLSAgICAgICAgICMgZ3JvdXAsIGUuZy4gYGBc aXRlbVt7XGh5cGVycmVmW2xhYmVsXXt0ZXh0fX1dYGAuCi0tICAgICAgICBvcmQoJ1snKTogdXIn e1t9JywKLS0gICAgICAgIG9yZCgnXScpOiB1cid7XX0nLAotKyAgICAgICAgb3JkKCdbJyk6IHUn e1t9JywKLSsgICAgICAgIG9yZCgnXScpOiB1J3tdfScsCi0gICAgICAgICAjIHRoZSBzb2Z0IGh5 cGhlbiBpcyB1bmtub3duIGluIDgtYml0IHRleHQKLSAgICAgICAgICMgYW5kIG5vdCBwcm9wZXJs eSBoYW5kbGVkIGJ5IFhlVGVYCi0tICAgICAgICAweDAwQUQ6IHVyJ1wtJywgIyBTT0ZUIEhZUEhF TgotKyAgICAgICAgMHgwMEFEOiB1J1xcLScsICMgU09GVCBIWVBIRU4KLSAgICAgfQotICAgICAj IFVuaWNvZGUgY2hhcnMgdGhhdCBhcmUgbm90IHJlY29nbml6ZWQgYnkgTGFUZVgncyB1dGY4IGVu Y29kaW5nCi0gICAgIHVuc3VwcG9ydGVkX3VuaWNvZGUgPSB7Ci0gICAgICAgICAjIFRPRE86IGVu c3VyZSB3aGl0ZSBzcGFjZSBhbHNvIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBsaW5lPwotLSAgICAg ICAgIyAweDAwQTA6IHVyJ1xsZWF2ZXZtb2RlXG5vYnJlYWtcdmFkanVzdHt9ficKLS0gICAgICAg IDB4MjAwMDogdXInXGVuc2tpcCcsICMgRU4gUVVBRAotLSAgICAgICAgMHgyMDAxOiB1cidccXVh ZCcsICMgRU0gUVVBRAotLSAgICAgICAgMHgyMDAyOiB1cidcZW5za2lwJywgIyBFTiBTUEFDRQot LSAgICAgICAgMHgyMDAzOiB1cidccXVhZCcsICMgRU0gU1BBQ0UKLS0gICAgICAgIDB4MjAwODog dXInXCwnLCAjIFBVTkNUVUFUSU9OIFNQQUNF4oCI4oCI4oCICi0tICAgICAgICAweDIwMGI6IHVy J1xoc3BhY2V7MHB0fScsICMgWkVSTyBXSURUSCBTUEFDRQotLSAgICAgICAgMHgyMDJGOiB1cidc LCcsICMgTkFSUk9XIE5PLUJSRUFLIFNQQUNFCi0tICAgICAgICAjIDB4MDJkODogdXInXFx1eyB9 JywgIyBCUkVWRQotLSAgICAgICAgMHgyMDExOiB1cidcaGJveHstfScsICMgTk9OLUJSRUFLSU5H IEhZUEhFTgotLSAgICAgICAgMHgyMTJiOiB1cidcQUEnLCAjIEFOR1NUUk9NIFNJR04KLS0gICAg ICAgIDB4MjFkNDogdXInXGVuc3VyZW1hdGh7XExlZnRyaWdodGFycm93fScsCi0rICAgICAgICAj IDB4MDBBMDogdSdcXGxlYXZldm1vZGVcXG5vYnJlYWtcXHZhZGp1c3R7fX4nCi0rICAgICAgICAw eDIwMDA6IHUnXFxlbnNraXAnLCAjIEVOIFFVQUQKLSsgICAgICAgIDB4MjAwMTogdSdcXHF1YWQn LCAjIEVNIFFVQUQKLSsgICAgICAgIDB4MjAwMjogdSdcXGVuc2tpcCcsICMgRU4gU1BBQ0UKLSsg ICAgICAgIDB4MjAwMzogdSdcXHF1YWQnLCAjIEVNIFNQQUNFCi0rICAgICAgICAweDIwMDg6IHUn XFwsJywgIyBQVU5DVFVBVElPTiBTUEFDReKAiOKAiOKAiAotKyAgICAgICAgMHgyMDBiOiB1J1xc aHNwYWNlezBwdH0nLCAjIFpFUk8gV0lEVEggU1BBQ0UKLSsgICAgICAgIDB4MjAyRjogdSdcXCwn LCAjIE5BUlJPVyBOTy1CUkVBSyBTUEFDRQotKyAgICAgICAgIyAweDAyZDg6IHUnXFxcdXsgfScs ICMgQlJFVkUKLSsgICAgICAgIDB4MjAxMTogdSdcXGhib3h7LX0nLCAjIE5PTi1CUkVBS0lORyBI WVBIRU4KLSsgICAgICAgIDB4MjEyYjogdSdcXEFBJywgIyBBTkdTVFJPTSBTSUdOCi0rICAgICAg ICAweDIxZDQ6IHUnXFxlbnN1cmVtYXRoe1xcTGVmdHJpZ2h0YXJyb3d9JywKLSAgICAgICAgICMg RG9jdXRpbHMgZm9vdG5vdGUgc3ltYm9sczoKLS0gICAgICAgIDB4MjY2MDogdXInXGVuc3VyZW1h dGh7XHNwYWRlc3VpdH0nLAotLSAgICAgICAgMHgyNjYzOiB1cidcZW5zdXJlbWF0aHtcY2x1YnN1 aXR9JywKLS0gICAgICAgIDB4ZmIwMDogdXInZmYnLCAjIExBVElOIFNNQUxMIExJR0FUVVJFIEZG Ci0tICAgICAgICAweGZiMDE6IHVyJ2ZpJywgIyBMQVRJTiBTTUFMTCBMSUdBVFVSRSBGSQotLSAg ICAgICAgMHhmYjAyOiB1cidmbCcsICMgTEFUSU4gU01BTEwgTElHQVRVUkUgRkwKLS0gICAgICAg IDB4ZmIwMzogdXInZmZpJywgIyBMQVRJTiBTTUFMTCBMSUdBVFVSRSBGRkkKLS0gICAgICAgIDB4 ZmIwNDogdXInZmZsJywgIyBMQVRJTiBTTUFMTCBMSUdBVFVSRSBGRkwKLSsgICAgICAgIDB4MjY2 MDogdSdcXGVuc3VyZW1hdGh7XFxzcGFkZXN1aXR9JywKLSsgICAgICAgIDB4MjY2MzogdSdcXGVu c3VyZW1hdGh7XFxjbHVic3VpdH0nLAotKyAgICAgICAgMHhmYjAwOiB1J2ZmJywgIyBMQVRJTiBT TUFMTCBMSUdBVFVSRSBGRgotKyAgICAgICAgMHhmYjAxOiB1J2ZpJywgIyBMQVRJTiBTTUFMTCBM SUdBVFVSRSBGSQotKyAgICAgICAgMHhmYjAyOiB1J2ZsJywgIyBMQVRJTiBTTUFMTCBMSUdBVFVS RSBGTAotKyAgICAgICAgMHhmYjAzOiB1J2ZmaScsICMgTEFUSU4gU01BTEwgTElHQVRVUkUgRkZJ Ci0rICAgICAgICAweGZiMDQ6IHUnZmZsJywgIyBMQVRJTiBTTUFMTCBMSUdBVFVSRSBGRkwKLSAg ICAgfQotICAgICAjIFVuaWNvZGUgY2hhcnMgdGhhdCBhcmUgcmVjb2duaXplZCBieSBMYVRlWCdz IHV0ZjggZW5jb2RpbmcKLSAgICAgdXRmOF9zdXBwb3J0ZWRfdW5pY29kZSA9IHsKLS0gICAgICAg IDB4MDBBMDogdXInficsICMgTk8tQlJFQUsgU1BBQ0UKLS0gICAgICAgIDB4MDBBQjogdXInXGd1 aWxsZW1vdGxlZnR7fScsICMgTEVGVC1QT0lOVElORyBET1VCTEUgQU5HTEUgUVVPVEFUSU9OIE1B UksKLS0gICAgICAgIDB4MDBiYjogdXInXGd1aWxsZW1vdHJpZ2h0e30nLCAjIFJJR0hULVBPSU5U SU5HIERPVUJMRSBBTkdMRSBRVU9UQVRJT04gTUFSSwotLSAgICAgICAgMHgyMDBDOiB1cidcdGV4 dGNvbXB3b3JkbWFya3t9JywgIyBaRVJPIFdJRFRIIE5PTi1KT0lORVIKLS0gICAgICAgIDB4MjAx MzogdXInXHRleHRlbmRhc2h7fScsCi0tICAgICAgICAweDIwMTQ6IHVyJ1x0ZXh0ZW1kYXNoe30n LAotLSAgICAgICAgMHgyMDE4OiB1cidcdGV4dHF1b3RlbGVmdHt9JywKLS0gICAgICAgIDB4MjAx OTogdXInXHRleHRxdW90ZXJpZ2h0e30nLAotLSAgICAgICAgMHgyMDFBOiB1cidccXVvdGVzaW5n bGJhc2V7fScsICMgU0lOR0xFIExPVy05IFFVT1RBVElPTiBNQVJLCi0tICAgICAgICAweDIwMUM6 IHVyJ1x0ZXh0cXVvdGVkYmxsZWZ0e30nLAotLSAgICAgICAgMHgyMDFEOiB1cidcdGV4dHF1b3Rl ZGJscmlnaHR7fScsCi0tICAgICAgICAweDIwMUU6IHVyJ1xxdW90ZWRibGJhc2V7fScsICMgRE9V QkxFIExPVy05IFFVT1RBVElPTiBNQVJLCi0tICAgICAgICAweDIwMzA6IHVyJ1x0ZXh0cGVydGhv dXNhbmR7fScsICAgIyBQRVIgTUlMTEUgU0lHTgotLSAgICAgICAgMHgyMDMxOiB1cidcdGV4dHBl cnRlbnRob3VzYW5ke30nLCAjIFBFUiBURU4gVEhPVVNBTkQgU0lHTgotLSAgICAgICAgMHgyMDM5 OiB1cidcZ3VpbHNpbmdsbGVmdHt9JywKLS0gICAgICAgIDB4MjAzQTogdXInXGd1aWxzaW5nbHJp Z2h0e30nLAotLSAgICAgICAgMHgyNDIzOiB1cidcdGV4dHZpc2libGVzcGFjZXt9JywgICMgT1BF TiBCT1gKLS0gICAgICAgIDB4MjAyMDogdXInXGRhZ3t9JywKLS0gICAgICAgIDB4MjAyMTogdXIn XGRkYWd7fScsCi0tICAgICAgICAweDIwMjY6IHVyJ1xkb3Rze30nLAotLSAgICAgICAgMHgyMTIy OiB1cidcdGV4dHRyYWRlbWFya3t9JywKLSsgICAgICAgIDB4MDBBMDogdSd+JywgIyBOTy1CUkVB SyBTUEFDRQotKyAgICAgICAgMHgwMEFCOiB1J1xcZ3VpbGxlbW90bGVmdHt9JywgIyBMRUZULVBP SU5USU5HIERPVUJMRSBBTkdMRSBRVU9UQVRJT04gTUFSSwotKyAgICAgICAgMHgwMGJiOiB1J1xc Z3VpbGxlbW90cmlnaHR7fScsICMgUklHSFQtUE9JTlRJTkcgRE9VQkxFIEFOR0xFIFFVT1RBVElP TiBNQVJLCi0rICAgICAgICAweDIwMEM6IHUnXFx0ZXh0Y29tcHdvcmRtYXJre30nLCAjIFpFUk8g V0lEVEggTk9OLUpPSU5FUgotKyAgICAgICAgMHgyMDEzOiB1J1xcdGV4dGVuZGFzaHt9JywKLSsg ICAgICAgIDB4MjAxNDogdSdcXHRleHRlbWRhc2h7fScsCi0rICAgICAgICAweDIwMTg6IHUnXFx0 ZXh0cXVvdGVsZWZ0e30nLAotKyAgICAgICAgMHgyMDE5OiB1J1xcdGV4dHF1b3RlcmlnaHR7fScs Ci0rICAgICAgICAweDIwMUE6IHUnXFxxdW90ZXNpbmdsYmFzZXt9JywgIyBTSU5HTEUgTE9XLTkg UVVPVEFUSU9OIE1BUksKLSsgICAgICAgIDB4MjAxQzogdSdcXHRleHRxdW90ZWRibGxlZnR7fScs Ci0rICAgICAgICAweDIwMUQ6IHUnXFx0ZXh0cXVvdGVkYmxyaWdodHt9JywKLSsgICAgICAgIDB4 MjAxRTogdSdcXHF1b3RlZGJsYmFzZXt9JywgIyBET1VCTEUgTE9XLTkgUVVPVEFUSU9OIE1BUksK LSsgICAgICAgIDB4MjAzMDogdSdcXHRleHRwZXJ0aG91c2FuZHt9JywgICAjIFBFUiBNSUxMRSBT SUdOCi0rICAgICAgICAweDIwMzE6IHUnXFx0ZXh0cGVydGVudGhvdXNhbmR7fScsICMgUEVSIFRF TiBUSE9VU0FORCBTSUdOCi0rICAgICAgICAweDIwMzk6IHUnXFxndWlsc2luZ2xsZWZ0e30nLAot KyAgICAgICAgMHgyMDNBOiB1J1xcZ3VpbHNpbmdscmlnaHR7fScsCi0rICAgICAgICAweDI0MjM6 IHUnXFx0ZXh0dmlzaWJsZXNwYWNle30nLCAgIyBPUEVOIEJPWAotKyAgICAgICAgMHgyMDIwOiB1 J1xcZGFne30nLAotKyAgICAgICAgMHgyMDIxOiB1J1xcZGRhZ3t9JywKLSsgICAgICAgIDB4MjAy NjogdSdcXGRvdHN7fScsCi0rICAgICAgICAweDIxMjI6IHUnXFx0ZXh0dHJhZGVtYXJre30nLAot ICAgICB9Ci0gICAgICMgcmVjb2duaXplZCB3aXRoICd1dGY4JywgaWYgdGV4dGNvbXAgaXMgbG9h ZGVkCi0gICAgIHRleHRjb21wID0gewotICAgICAgICAgIyBMYXRpbi0xIFN1cHBsZW1lbnQKLS0g ICAgICAgIDB4MDBhMjogdXInXHRleHRjZW50e30nLCAgICAgICAgICAjIMKiIENFTlQgU0lHTgot LSAgICAgICAgMHgwMGE0OiB1cidcdGV4dGN1cnJlbmN5e30nLCAgICAgICMgwqQgQ1VSUkVOQ1kg U1lNQk9MCi0tICAgICAgICAweDAwYTU6IHVyJ1x0ZXh0eWVue30nLCAgICAgICAgICAgIyDCpSBZ RU4gU0lHTgotLSAgICAgICAgMHgwMGE2OiB1cidcdGV4dGJyb2tlbmJhcnt9JywgICAgICMgwqYg QlJPS0VOIEJBUgotLSAgICAgICAgMHgwMGE3OiB1cidcdGV4dHNlY3Rpb257fScsICAgICAgICMg wqcgU0VDVElPTiBTSUdOCi0tICAgICAgICAweDAwYTg6IHVyJ1x0ZXh0YXNjaWlkaWVyZXNpc3t9 JywgIyDCqCBESUFFUkVTSVMKLS0gICAgICAgIDB4MDBhOTogdXInXHRleHRjb3B5cmlnaHR7fScs ICAgICAjIMKpIENPUFlSSUdIVCBTSUdOCi0tICAgICAgICAweDAwYWE6IHVyJ1x0ZXh0b3JkZmVt aW5pbmV7fScsICAgIyDCqiBGRU1JTklORSBPUkRJTkFMIElORElDQVRPUgotLSAgICAgICAgMHgw MGFjOiB1cidcdGV4dGxub3R7fScsICAgICAgICAgICMgwqwgTk9UIFNJR04KLS0gICAgICAgIDB4 MDBhZTogdXInXHRleHRyZWdpc3RlcmVke30nLCAgICAjIMKuIFJFR0lTVEVSRUQgU0lHTgotLSAg ICAgICAgMHgwMGFmOiB1cidcdGV4dGFzY2lpbWFjcm9ue30nLCAgICMgwq8gTUFDUk9OCi0tICAg ICAgICAweDAwYjA6IHVyJ1x0ZXh0ZGVncmVle30nLCAgICAgICAgIyDCsCBERUdSRUUgU0lHTgot LSAgICAgICAgMHgwMGIxOiB1cidcdGV4dHBte30nLCAgICAgICAgICAgICMgwrEgUExVUy1NSU5V UyBTSUdOCi0tICAgICAgICAweDAwYjI6IHVyJ1x0ZXh0dHdvc3VwZXJpb3J7fScsICAgIyDCsiBT VVBFUlNDUklQVCBUV08KLS0gICAgICAgIDB4MDBiMzogdXInXHRleHR0aHJlZXN1cGVyaW9ye30n LCAjIMKzIFNVUEVSU0NSSVBUIFRIUkVFCi0tICAgICAgICAweDAwYjQ6IHVyJ1x0ZXh0YXNjaWlh Y3V0ZXt9JywgICAgIyDCtCBBQ1VURSBBQ0NFTlQKLS0gICAgICAgIDB4MDBiNTogdXInXHRleHRt dXt9JywgICAgICAgICAgICAjIMK1IE1JQ1JPIFNJR04KLS0gICAgICAgIDB4MDBiNjogdXInXHRl eHRwYXJhZ3JhcGh7fScsICAgICAjIMK2IFBJTENST1cgU0lHTiAjICE9IFx0ZXh0cGlsY3Jvdwot LSAgICAgICAgMHgwMGI5OiB1cidcdGV4dG9uZXN1cGVyaW9ye30nLCAgICMgwrkgU1VQRVJTQ1JJ UFQgT05FCi0tICAgICAgICAweDAwYmE6IHVyJ1x0ZXh0b3JkbWFzY3VsaW5le30nLCAgIyDCuiBN QVNDVUxJTkUgT1JESU5BTCBJTkRJQ0FUT1IKLS0gICAgICAgIDB4MDBiYzogdXInXHRleHRvbmVx dWFydGVye30nLCAgICAjIDEvNCBGUkFDVElPTgotLSAgICAgICAgMHgwMGJkOiB1cidcdGV4dG9u ZWhhbGZ7fScsICAgICAgICMgMS8yIEZSQUNUSU9OCi0tICAgICAgICAweDAwYmU6IHVyJ1x0ZXh0 dGhyZWVxdWFydGVyc3t9JywgIyAzLzQgRlJBQ1RJT04KLS0gICAgICAgIDB4MDBkNzogdXInXHRl eHR0aW1lc3t9JywgICAgICAgICAjIMOXIE1VTFRJUExJQ0FUSU9OIFNJR04KLS0gICAgICAgIDB4 MDBmNzogdXInXHRleHRkaXZ7fScsICAgICAgICAgICAjIMO3IERJVklTSU9OIFNJR04KLSsgICAg ICAgIDB4MDBhMjogdSdcXHRleHRjZW50e30nLCAgICAgICAgICAjIMKiIENFTlQgU0lHTgotKyAg ICAgICAgMHgwMGE0OiB1J1xcdGV4dGN1cnJlbmN5e30nLCAgICAgICMgwqQgQ1VSUkVOQ1kgU1lN Qk9MCi0rICAgICAgICAweDAwYTU6IHUnXFx0ZXh0eWVue30nLCAgICAgICAgICAgIyDCpSBZRU4g U0lHTgotKyAgICAgICAgMHgwMGE2OiB1J1xcdGV4dGJyb2tlbmJhcnt9JywgICAgICMgwqYgQlJP S0VOIEJBUgotKyAgICAgICAgMHgwMGE3OiB1J1xcdGV4dHNlY3Rpb257fScsICAgICAgICMgwqcg U0VDVElPTiBTSUdOCi0rICAgICAgICAweDAwYTg6IHUnXFx0ZXh0YXNjaWlkaWVyZXNpc3t9Jywg IyDCqCBESUFFUkVTSVMKLSsgICAgICAgIDB4MDBhOTogdSdcXHRleHRjb3B5cmlnaHR7fScsICAg ICAjIMKpIENPUFlSSUdIVCBTSUdOCi0rICAgICAgICAweDAwYWE6IHUnXFx0ZXh0b3JkZmVtaW5p bmV7fScsICAgIyDCqiBGRU1JTklORSBPUkRJTkFMIElORElDQVRPUgotKyAgICAgICAgMHgwMGFj OiB1J1xcdGV4dGxub3R7fScsICAgICAgICAgICMgwqwgTk9UIFNJR04KLSsgICAgICAgIDB4MDBh ZTogdSdcXHRleHRyZWdpc3RlcmVke30nLCAgICAjIMKuIFJFR0lTVEVSRUQgU0lHTgotKyAgICAg ICAgMHgwMGFmOiB1J1xcdGV4dGFzY2lpbWFjcm9ue30nLCAgICMgwq8gTUFDUk9OCi0rICAgICAg ICAweDAwYjA6IHUnXFx0ZXh0ZGVncmVle30nLCAgICAgICAgIyDCsCBERUdSRUUgU0lHTgotKyAg ICAgICAgMHgwMGIxOiB1J1xcdGV4dHBte30nLCAgICAgICAgICAgICMgwrEgUExVUy1NSU5VUyBT SUdOCi0rICAgICAgICAweDAwYjI6IHUnXFx0ZXh0dHdvc3VwZXJpb3J7fScsICAgIyDCsiBTVVBF UlNDUklQVCBUV08KLSsgICAgICAgIDB4MDBiMzogdSdcXHRleHR0aHJlZXN1cGVyaW9ye30nLCAj IMKzIFNVUEVSU0NSSVBUIFRIUkVFCi0rICAgICAgICAweDAwYjQ6IHUnXFx0ZXh0YXNjaWlhY3V0 ZXt9JywgICAgIyDCtCBBQ1VURSBBQ0NFTlQKLSsgICAgICAgIDB4MDBiNTogdSdcXHRleHRtdXt9 JywgICAgICAgICAgICAjIMK1IE1JQ1JPIFNJR04KLSsgICAgICAgIDB4MDBiNjogdSdcXHRleHRw YXJhZ3JhcGh7fScsICAgICAjIMK2IFBJTENST1cgU0lHTiAjICE9IFx0ZXh0cGlsY3JvdwotKyAg ICAgICAgMHgwMGI5OiB1J1xcdGV4dG9uZXN1cGVyaW9ye30nLCAgICMgwrkgU1VQRVJTQ1JJUFQg T05FCi0rICAgICAgICAweDAwYmE6IHUnXFx0ZXh0b3JkbWFzY3VsaW5le30nLCAgIyDCuiBNQVND VUxJTkUgT1JESU5BTCBJTkRJQ0FUT1IKLSsgICAgICAgIDB4MDBiYzogdSdcXHRleHRvbmVxdWFy dGVye30nLCAgICAjIDEvNCBGUkFDVElPTgotKyAgICAgICAgMHgwMGJkOiB1J1xcdGV4dG9uZWhh bGZ7fScsICAgICAgICMgMS8yIEZSQUNUSU9OCi0rICAgICAgICAweDAwYmU6IHUnXFx0ZXh0dGhy ZWVxdWFydGVyc3t9JywgIyAzLzQgRlJBQ1RJT04KLSsgICAgICAgIDB4MDBkNzogdSdcXHRleHR0 aW1lc3t9JywgICAgICAgICAjIMOXIE1VTFRJUExJQ0FUSU9OIFNJR04KLSsgICAgICAgIDB4MDBm NzogdSdcXHRleHRkaXZ7fScsICAgICAgICAgICAjIMO3IERJVklTSU9OIFNJR04KLSAgICAgICAg ICMgb3RoZXJzCi0tICAgICAgICAweDAxOTI6IHVyJ1x0ZXh0Zmxvcmlue30nLCAgICAgICAgIyBM QVRJTiBTTUFMTCBMRVRURVIgRiBXSVRIIEhPT0sKLS0gICAgICAgIDB4MDJiOTogdXInXHRleHRh c2NpaWFjdXRle30nLCAgICAjIE1PRElGSUVSIExFVFRFUiBQUklNRQotLSAgICAgICAgMHgwMmJh OiB1cidcdGV4dGFjdXRlZGJse30nLCAgICAgICMgTU9ESUZJRVIgTEVUVEVSIERPVUJMRSBQUklN RQotLSAgICAgICAgMHgyMDE2OiB1cidcdGV4dGJhcmRibHt9JywgICAgICAgICMgRE9VQkxFIFZF UlRJQ0FMIExJTkUKLS0gICAgICAgIDB4MjAyMjogdXInXHRleHRidWxsZXR7fScsICAgICAgICAj IEJVTExFVAotLSAgICAgICAgMHgyMDMyOiB1cidcdGV4dGFzY2lpYWN1dGV7fScsICAgICMgUFJJ TUUKLS0gICAgICAgIDB4MjAzMzogdXInXHRleHRhY3V0ZWRibHt9JywgICAgICAjIERPVUJMRSBQ UklNRQotLSAgICAgICAgMHgyMDM1OiB1cidcdGV4dGFzY2lpZ3JhdmV7fScsICAgICMgUkVWRVJT RUQgUFJJTUUKLS0gICAgICAgIDB4MjAzNjogdXInXHRleHRncmF2ZWRibHt9JywgICAgICAjIFJF VkVSU0VEIERPVUJMRSBQUklNRQotLSAgICAgICAgMHgyMDNiOiB1cidcdGV4dHJlZmVyZW5jZW1h cmt7fScsICMgUkVGRVJFTkNFIE1BUksKLS0gICAgICAgIDB4MjAzZDogdXInXHRleHRpbnRlcnJv YmFuZ3t9JywgICAjIElOVEVSUk9CQU5HCi0tICAgICAgICAweDIwNDQ6IHVyJ1x0ZXh0ZnJhY3Rp b25zb2xpZHVze30nLCAjIEZSQUNUSU9OIFNMQVNICi0tICAgICAgICAweDIwNDU6IHVyJ1x0ZXh0 bHF1aWxse30nLCAgICAgICAgIyBMRUZUIFNRVUFSRSBCUkFDS0VUIFdJVEggUVVJTEwKLS0gICAg ICAgIDB4MjA0NjogdXInXHRleHRycXVpbGx7fScsICAgICAgICAjIFJJR0hUIFNRVUFSRSBCUkFD S0VUIFdJVEggUVVJTEwKLS0gICAgICAgIDB4MjA1MjogdXInXHRleHRkaXNjb3VudHt9JywgICAg ICAjIENPTU1FUkNJQUwgTUlOVVMgU0lHTgotLSAgICAgICAgMHgyMGExOiB1cidcdGV4dGNvbG9u bW9uZXRhcnl7fScsICMgQ09MT04gU0lHTgotLSAgICAgICAgMHgyMGEzOiB1cidcdGV4dGZyZW5j aGZyYW5je30nLCAgICMgRlJFTkNIIEZSQU5DIFNJR04KLS0gICAgICAgIDB4MjBhNDogdXInXHRl eHRsaXJhe30nLCAgICAgICAgICAjIExJUkEgU0lHTgotLSAgICAgICAgMHgyMGE2OiB1cidcdGV4 dG5haXJhe30nLCAgICAgICAgICMgTkFJUkEgU0lHTgotLSAgICAgICAgMHgyMGE5OiB1cidcdGV4 dHdvbnt9JywgICAgICAgICAgICMgV09OIFNJR04KLS0gICAgICAgIDB4MjBhYjogdXInXHRleHRk b25ne30nLCAgICAgICAgICAjIERPTkcgU0lHTgotLSAgICAgICAgMHgyMGFjOiB1cidcdGV4dGV1 cm97fScsICAgICAgICAgICMgRVVSTyBTSUdOCi0tICAgICAgICAweDIwYjE6IHVyJ1x0ZXh0cGVz b3t9JywgICAgICAgICAgIyBQRVNPIFNJR04KLS0gICAgICAgIDB4MjBiMjogdXInXHRleHRndWFy YW5pe30nLCAgICAgICAjIEdVQVJBTkkgU0lHTgotLSAgICAgICAgMHgyMTAzOiB1cidcdGV4dGNl bHNpdXN7fScsICAgICAgICMgREVHUkVFIENFTFNJVVMKLS0gICAgICAgIDB4MjExNjogdXInXHRl eHRudW1lcm97fScsICAgICAgICAjIE5VTUVSTyBTSUdOCi0tICAgICAgICAweDIxMTc6IHVyJ1x0 ZXh0Y2lyY2xlZFB7fScsICAgICAgIyBTT1VORCBSRUNPUkRJTkcgQ09ZUklHSFQKLS0gICAgICAg IDB4MjExZTogdXInXHRleHRyZWNpcGV7fScsICAgICAgICAjIFBSRVNDUklQVElPTiBUQUtFCi0t ICAgICAgICAweDIxMjA6IHVyJ1x0ZXh0c2VydmljZW1hcmt7fScsICAgIyBTRVJWSUNFIE1BUksK LS0gICAgICAgIDB4MjEyMjogdXInXHRleHR0cmFkZW1hcmt7fScsICAgICAjIFRSQURFIE1BUksg U0lHTgotLSAgICAgICAgMHgyMTI2OiB1cidcdGV4dG9obXt9JywgICAgICAgICAgICMgT0hNIFNJ R04KLS0gICAgICAgIDB4MjEyNzogdXInXHRleHRtaG97fScsICAgICAgICAgICAjIElOVkVSVEVE IE9ITSBTSUdOCi0tICAgICAgICAweDIxMmU6IHVyJ1x0ZXh0ZXN0aW1hdGVke30nLCAgICAgIyBF U1RJTUFURUQgU1lNQk9MCi0tICAgICAgICAweDIxOTA6IHVyJ1x0ZXh0bGVmdGFycm93e30nLCAg ICAgIyBMRUZUV0FSRFMgQVJST1cKLS0gICAgICAgIDB4MjE5MTogdXInXHRleHR1cGFycm93e30n LCAgICAgICAjIFVQV0FSRFMgQVJST1cKLS0gICAgICAgIDB4MjE5MjogdXInXHRleHRyaWdodGFy cm93e30nLCAgICAjIFJJR0hUV0FSRFMgQVJST1cKLS0gICAgICAgIDB4MjE5MzogdXInXHRleHRk b3duYXJyb3d7fScsICAgICAjIERPV05XQVJEUyBBUlJPVwotLSAgICAgICAgMHgyMjEyOiB1cidc dGV4dG1pbnVze30nLCAgICAgICAgICMgTUlOVVMgU0lHTgotLSAgICAgICAgMHgyMjE3OiB1cidc dGV4dGFzdGVyaXNrY2VudGVyZWR7fScsICMgQVNURVJJU0sgT1BFUkFUT1IKLS0gICAgICAgIDB4 MjIxYTogdXInXHRleHRzdXJke30nLCAgICAgICAgICAjIFNRVUFSRSBST09UCi0tICAgICAgICAw eDI0MjI6IHVyJ1x0ZXh0Ymxhbmt7fScsICAgICAgICAgIyBCTEFOSyBTWU1CT0wKLS0gICAgICAg IDB4MjVlNjogdXInXHRleHRvcGVuYnVsbGV0e30nLCAgICAjIFdISVRFIEJVTExFVAotLSAgICAg ICAgMHgyNWVmOiB1cidcdGV4dGJpZ2NpcmNsZXt9JywgICAgICMgTEFSR0UgQ0lSQ0xFCi0tICAg ICAgICAweDI2NmE6IHVyJ1x0ZXh0bXVzaWNhbG5vdGV7fScsICAgIyBFSUdIVEggTk9URQotLSAg ICAgICAgMHgyNmFkOiB1cidcdGV4dG1hcnJpZWR7fScsICAgICAgICMgTUFSUklBR0UgU1lNQk9M Ci0tICAgICAgICAweDI2YWU6IHVyJ1x0ZXh0ZGl2b3JjZWR7fScsICAgICAgIyBESVZPUkNFIFNZ TUJPTAotLSAgICAgICAgMHgyN2U4OiB1cidcdGV4dGxhbmdsZXt9JywgICAgICAgICMgTUFUSEVN QVRJQ0FMIExFRlQgQU5HTEUgQlJBQ0tFVAotLSAgICAgICAgMHgyN2U5OiB1cidcdGV4dHJhbmds ZXt9JywgICAgICAgICMgTUFUSEVNQVRJQ0FMIFJJR0hUIEFOR0xFIEJSQUNLRVQKLSsgICAgICAg IDB4MDE5MjogdSdcXHRleHRmbG9yaW57fScsICAgICAgICAjIExBVElOIFNNQUxMIExFVFRFUiBG IFdJVEggSE9PSwotKyAgICAgICAgMHgwMmI5OiB1J1xcdGV4dGFzY2lpYWN1dGV7fScsICAgICMg TU9ESUZJRVIgTEVUVEVSIFBSSU1FCi0rICAgICAgICAweDAyYmE6IHUnXFx0ZXh0YWN1dGVkYmx7 fScsICAgICAgIyBNT0RJRklFUiBMRVRURVIgRE9VQkxFIFBSSU1FCi0rICAgICAgICAweDIwMTY6 IHUnXFx0ZXh0YmFyZGJse30nLCAgICAgICAgIyBET1VCTEUgVkVSVElDQUwgTElORQotKyAgICAg ICAgMHgyMDIyOiB1J1xcdGV4dGJ1bGxldHt9JywgICAgICAgICMgQlVMTEVUCi0rICAgICAgICAw eDIwMzI6IHUnXFx0ZXh0YXNjaWlhY3V0ZXt9JywgICAgIyBQUklNRQotKyAgICAgICAgMHgyMDMz OiB1J1xcdGV4dGFjdXRlZGJse30nLCAgICAgICMgRE9VQkxFIFBSSU1FCi0rICAgICAgICAweDIw MzU6IHUnXFx0ZXh0YXNjaWlncmF2ZXt9JywgICAgIyBSRVZFUlNFRCBQUklNRQotKyAgICAgICAg MHgyMDM2OiB1J1xcdGV4dGdyYXZlZGJse30nLCAgICAgICMgUkVWRVJTRUQgRE9VQkxFIFBSSU1F Ci0rICAgICAgICAweDIwM2I6IHUnXFx0ZXh0cmVmZXJlbmNlbWFya3t9JywgIyBSRUZFUkVOQ0Ug TUFSSwotKyAgICAgICAgMHgyMDNkOiB1J1xcdGV4dGludGVycm9iYW5ne30nLCAgICMgSU5URVJS T0JBTkcKLSsgICAgICAgIDB4MjA0NDogdSdcXHRleHRmcmFjdGlvbnNvbGlkdXN7fScsICMgRlJB Q1RJT04gU0xBU0gKLSsgICAgICAgIDB4MjA0NTogdSdcXHRleHRscXVpbGx7fScsICAgICAgICAj IExFRlQgU1FVQVJFIEJSQUNLRVQgV0lUSCBRVUlMTAotKyAgICAgICAgMHgyMDQ2OiB1J1xcdGV4 dHJxdWlsbHt9JywgICAgICAgICMgUklHSFQgU1FVQVJFIEJSQUNLRVQgV0lUSCBRVUlMTAotKyAg ICAgICAgMHgyMDUyOiB1J1xcdGV4dGRpc2NvdW50e30nLCAgICAgICMgQ09NTUVSQ0lBTCBNSU5V UyBTSUdOCi0rICAgICAgICAweDIwYTE6IHUnXFx0ZXh0Y29sb25tb25ldGFyeXt9JywgIyBDT0xP TiBTSUdOCi0rICAgICAgICAweDIwYTM6IHUnXFx0ZXh0ZnJlbmNoZnJhbmN7fScsICAgIyBGUkVO Q0ggRlJBTkMgU0lHTgotKyAgICAgICAgMHgyMGE0OiB1J1xcdGV4dGxpcmF7fScsICAgICAgICAg ICMgTElSQSBTSUdOCi0rICAgICAgICAweDIwYTY6IHUnXFx0ZXh0bmFpcmF7fScsICAgICAgICAg IyBOQUlSQSBTSUdOCi0rICAgICAgICAweDIwYTk6IHUnXFx0ZXh0d29ue30nLCAgICAgICAgICAg IyBXT04gU0lHTgotKyAgICAgICAgMHgyMGFiOiB1J1xcdGV4dGRvbmd7fScsICAgICAgICAgICMg RE9ORyBTSUdOCi0rICAgICAgICAweDIwYWM6IHUnXFx0ZXh0ZXVyb3t9JywgICAgICAgICAgIyBF VVJPIFNJR04KLSsgICAgICAgIDB4MjBiMTogdSdcXHRleHRwZXNve30nLCAgICAgICAgICAjIFBF U08gU0lHTgotKyAgICAgICAgMHgyMGIyOiB1J1xcdGV4dGd1YXJhbml7fScsICAgICAgICMgR1VB UkFOSSBTSUdOCi0rICAgICAgICAweDIxMDM6IHUnXFx0ZXh0Y2Vsc2l1c3t9JywgICAgICAgIyBE RUdSRUUgQ0VMU0lVUwotKyAgICAgICAgMHgyMTE2OiB1J1xcdGV4dG51bWVyb3t9JywgICAgICAg ICMgTlVNRVJPIFNJR04KLSsgICAgICAgIDB4MjExNzogdSdcXHRleHRjaXJjbGVkUHt9JywgICAg ICAjIFNPVU5EIFJFQ09SRElORyBDT1lSSUdIVAotKyAgICAgICAgMHgyMTFlOiB1J1xcdGV4dHJl Y2lwZXt9JywgICAgICAgICMgUFJFU0NSSVBUSU9OIFRBS0UKLSsgICAgICAgIDB4MjEyMDogdSdc XHRleHRzZXJ2aWNlbWFya3t9JywgICAjIFNFUlZJQ0UgTUFSSwotKyAgICAgICAgMHgyMTIyOiB1 J1xcdGV4dHRyYWRlbWFya3t9JywgICAgICMgVFJBREUgTUFSSyBTSUdOCi0rICAgICAgICAweDIx MjY6IHUnXFx0ZXh0b2hte30nLCAgICAgICAgICAgIyBPSE0gU0lHTgotKyAgICAgICAgMHgyMTI3 OiB1J1xcdGV4dG1ob3t9JywgICAgICAgICAgICMgSU5WRVJURUQgT0hNIFNJR04KLSsgICAgICAg IDB4MjEyZTogdSdcXHRleHRlc3RpbWF0ZWR7fScsICAgICAjIEVTVElNQVRFRCBTWU1CT0wKLSsg ICAgICAgIDB4MjE5MDogdSdcXHRleHRsZWZ0YXJyb3d7fScsICAgICAjIExFRlRXQVJEUyBBUlJP VwotKyAgICAgICAgMHgyMTkxOiB1J1xcdGV4dHVwYXJyb3d7fScsICAgICAgICMgVVBXQVJEUyBB UlJPVwotKyAgICAgICAgMHgyMTkyOiB1J1xcdGV4dHJpZ2h0YXJyb3d7fScsICAgICMgUklHSFRX QVJEUyBBUlJPVwotKyAgICAgICAgMHgyMTkzOiB1J1xcdGV4dGRvd25hcnJvd3t9JywgICAgICMg RE9XTldBUkRTIEFSUk9XCi0rICAgICAgICAweDIyMTI6IHUnXFx0ZXh0bWludXN7fScsICAgICAg ICAgIyBNSU5VUyBTSUdOCi0rICAgICAgICAweDIyMTc6IHUnXFx0ZXh0YXN0ZXJpc2tjZW50ZXJl ZHt9JywgIyBBU1RFUklTSyBPUEVSQVRPUgotKyAgICAgICAgMHgyMjFhOiB1J1xcdGV4dHN1cmR7 fScsICAgICAgICAgICMgU1FVQVJFIFJPT1QKLSsgICAgICAgIDB4MjQyMjogdSdcXHRleHRibGFu a3t9JywgICAgICAgICAjIEJMQU5LIFNZTUJPTAotKyAgICAgICAgMHgyNWU2OiB1J1xcdGV4dG9w ZW5idWxsZXR7fScsICAgICMgV0hJVEUgQlVMTEVUCi0rICAgICAgICAweDI1ZWY6IHUnXFx0ZXh0 YmlnY2lyY2xle30nLCAgICAgIyBMQVJHRSBDSVJDTEUKLSsgICAgICAgIDB4MjY2YTogdSdcXHRl eHRtdXNpY2Fsbm90ZXt9JywgICAjIEVJR0hUSCBOT1RFCi0rICAgICAgICAweDI2YWQ6IHUnXFx0 ZXh0bWFycmllZHt9JywgICAgICAgIyBNQVJSSUFHRSBTWU1CT0wKLSsgICAgICAgIDB4MjZhZTog dSdcXHRleHRkaXZvcmNlZHt9JywgICAgICAjIERJVk9SQ0UgU1lNQk9MCi0rICAgICAgICAweDI3 ZTg6IHUnXFx0ZXh0bGFuZ2xle30nLCAgICAgICAgIyBNQVRIRU1BVElDQUwgTEVGVCBBTkdMRSBC UkFDS0VUCi0rICAgICAgICAweDI3ZTk6IHUnXFx0ZXh0cmFuZ2xle30nLCAgICAgICAgIyBNQVRI RU1BVElDQUwgUklHSFQgQU5HTEUgQlJBQ0tFVAotICAgICB9Ci0gICAgICMgVW5pY29kZSBjaGFy cyB0aGF0IHJlcXVpcmUgYSBmZWF0dXJlL3BhY2thZ2UgdG8gcmVuZGVyCi0gICAgIHBpZm9udCA9 IHsKLS0gICAgICAgIDB4MjY2NTogdXInXGRpbmd7MTcwfScsICAgICAjIGJsYWNrIGhlYXJ0c3Vp dAotLSAgICAgICAgMHgyNjY2OiB1cidcZGluZ3sxNjl9JywgICAgICMgYmxhY2sgZGlhbW9uZHN1 aXQKLS0gICAgICAgIDB4MjcxMzogdXInXGRpbmd7NTF9JywgICAgICAjIGNoZWNrIG1hcmsKLS0g ICAgICAgIDB4MjcxNzogdXInXGRpbmd7NTV9JywgICAgICAjIGNoZWNrIG1hcmsKLSsgICAgICAg IDB4MjY2NTogdSdcXGRpbmd7MTcwfScsICAgICAjIGJsYWNrIGhlYXJ0c3VpdAotKyAgICAgICAg MHgyNjY2OiB1J1xcZGluZ3sxNjl9JywgICAgICMgYmxhY2sgZGlhbW9uZHN1aXQKLSsgICAgICAg IDB4MjcxMzogdSdcXGRpbmd7NTF9JywgICAgICAjIGNoZWNrIG1hcmsKLSsgICAgICAgIDB4Mjcx NzogdSdcXGRpbmd7NTV9JywgICAgICAjIGNoZWNrIG1hcmsKLSAgICAgfQotICAgICAjIFRPRE86 IGdyZWVrIGFscGhhYmV0IC4uLiA/Ci0gICAgICMgc2VlIGFsc28gTGFUZVggY29kZWMKLUBAIC0x NTExLDE0ICsxNTExLDE0IEBAIGNsYXNzIExhVGVYVHJhbnNsYXRvcihub2Rlcy5Ob2RlVmlzaXRv cik6Ci0gICAgICAgICAgICAgICAgICMgdGhlIGJhY2tzbGFzaCBkb2Vzbid0IHdvcmssIHNvIHdl IHVzZSBhIG1pcnJvcmVkIHNsYXNoLgotICAgICAgICAgICAgICAgICAjIFxyZWZsZWN0Ym94IGlz IHByb3ZpZGVkIGJ5IGdyYXBoaWN4OgotICAgICAgICAgICAgICAgICBzZWxmLnJlcXVpcmVtZW50 c1snZ3JhcGhpY3gnXSA9IHNlbGYuZ3JhcGhpY3hfcGFja2FnZQotLSAgICAgICAgICAgICAgICB0 YWJsZVtvcmQoJ1xcJyldID0gdXInXHJlZmxlY3Rib3h7L30nCi0rICAgICAgICAgICAgICAgIHRh YmxlW29yZCgnXFwnKV0gPSB1J1xccmVmbGVjdGJveHsvfScKLSAgICAgICAgICAgICAjICogYGA8 IHwgPmBgIGNvbWUgb3V0IGFzIGRpZmZlcmVudCBjaGFycyAoZXhjZXB0IGZvciBjbXR0KToKLSAg ICAgICAgICAgICBlbHNlOgotLSAgICAgICAgICAgICAgICB0YWJsZVtvcmQoJ3wnKV0gPSB1cidc dGV4dGJhcnt9JwotLSAgICAgICAgICAgICAgICB0YWJsZVtvcmQoJzwnKV0gPSB1cidcdGV4dGxl c3N7fScKLS0gICAgICAgICAgICAgICAgdGFibGVbb3JkKCc+JyldID0gdXInXHRleHRncmVhdGVy e30nCi0rICAgICAgICAgICAgICAgIHRhYmxlW29yZCgnfCcpXSA9IHUnXFx0ZXh0YmFye30nCi0r ICAgICAgICAgICAgICAgIHRhYmxlW29yZCgnPCcpXSA9IHUnXFx0ZXh0bGVzc3t9JwotKyAgICAg ICAgICAgICAgICB0YWJsZVtvcmQoJz4nKV0gPSB1J1xcdGV4dGdyZWF0ZXJ7fScKLSAgICAgICAg IGlmIHNlbGYuaW5zZXJ0X25vbl9icmVha2luZ19ibGFua3M6Ci0tICAgICAgICAgICAgdGFibGVb b3JkKCcgJyldID0gdXInficKLSsgICAgICAgICAgICB0YWJsZVtvcmQoJyAnKV0gPSB1J34nCi0g ICAgICAgICAgICAgIyB0YWIgY2hhcnMgbWF5IG9jY3VyIGluIGluY2x1ZGVkIGZpbGVzIChsaXRl cmFsIG9yIGNvZGUpCi0gICAgICAgICAgICAgIyBxdWljay1hbmQtZGlydHkgcmVwbGFjZW1lbnQg d2l0aCBzcGFjZXMKLSAgICAgICAgICAgICAjIChmb3IgYmV0dGVyIHJlc3VsdHMgdXNlIGAtLWxp dGVyYWwtYmxvY2stZW52PWxzdGxpc3RpbmdgKQotQEAgLTI2MTgsNyArMjYxOCw3IEBAIGNsYXNz IExhVGVYVHJhbnNsYXRvcihub2Rlcy5Ob2RlVmlzaXRvcik6Ci0gICAgICAgICAgICAgbWF0aF9j b2RlID0gJ1xuJy5qb2luKFttYXRoX2NvZGVdICsgc2VsZi5pZHNfdG9fbGFiZWxzKG5vZGUpKQot ICAgICAgICAgaWYgbWF0aF9lbnYgPT0gJyQnOgotICAgICAgICAgICAgIGlmIHNlbGYuYWxsdHQ6 Ci0tICAgICAgICAgICAgICAgIHdyYXBwZXIgPSB1cidcKCVzXCknCi0rICAgICAgICAgICAgICAg IHdyYXBwZXIgPSB1J1xcKCVzXFwpJwotICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAg ICAgIHdyYXBwZXIgPSB1JyQlcyQnCi0gICAgICAgICBlbHNlOgotQEAgLTI3NjksOSArMjc2OSw5 IEBAIGNsYXNzIExhVGVYVHJhbnNsYXRvcihub2Rlcy5Ob2RlVmlzaXRvcik6Ci0gCi0gICAgIGRl ZiB2aXNpdF9yZWZlcmVuY2Uoc2VsZiwgbm9kZSk6Ci0gICAgICAgICAjIFdlIG5lZWQgdG8gZXNj YXBlICMsIFwsIGFuZCAlIGlmIHdlIHVzZSB0aGUgVVJMIGluIGEgY29tbWFuZC4KLS0gICAgICAg IHNwZWNpYWxfY2hhcnMgPSB7b3JkKCcjJyk6IHVyJ1wjJywKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgb3JkKCclJyk6IHVyJ1wlJywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgb3JkKCdc XCcpOiB1cidcXCcsCi0rICAgICAgICBzcGVjaWFsX2NoYXJzID0ge29yZCgnIycpOiB1J1xcIycs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgIG9yZCgnJScpOiB1J1xcJScsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgIG9yZCgnXFwnKTogdSdcXFxcJywKLSAgICAgICAgICAgICAgICAgICAg ICAgICB9Ci0gICAgICAgICAjIGV4dGVybmFsIHJlZmVyZW5jZSAoVVJMKQotICAgICAgICAgaWYg J3JlZnVyaScgaW4gbm9kZToKLWRpZmYgLS1naXQgYS9kb2N1dGlscy93cml0ZXJzL21hbnBhZ2Uu cHkgYi9kb2N1dGlscy93cml0ZXJzL21hbnBhZ2UucHkKLWluZGV4IDhiYjAyNWMuLmVkMTYzZGUg MTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy93cml0ZXJzL21hbnBhZ2UucHkKLSsrKyBiL2RvY3V0aWxz L3dyaXRlcnMvbWFucGFnZS5weQotQEAgLTI4NCwxMCArMjg0LDEwIEBAIGNsYXNzIFRyYW5zbGF0 b3Iobm9kZXMuTm9kZVZpc2l0b3IpOgotICAgICAgICAgdGV4dCA9IG5vZGUuYXN0ZXh0KCkKLSAg ICAgICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UoJ1xcJywnXFxlJykKLSAgICAgICAgIHJlcGxhY2Vf cGFpcnMgPSBbCi0tICAgICAgICAgICAgKHUnLScsIHVyJ1wtJyksCi0tICAgICAgICAgICAgKHUn XCcnLCB1cidcKGFxJyksCi0tICAgICAgICAgICAgKHUnwrQnLCB1cidcJycpLAotLSAgICAgICAg ICAgICh1J2AnLCB1cidcKGdhJyksCi0rICAgICAgICAgICAgKHUnLScsIHUnXFwtJyksCi0rICAg ICAgICAgICAgKHUnXCcnLCB1J1xcKGFxJyksCi0rICAgICAgICAgICAgKHUnwrQnLCB1IlxcJyIp LAotKyAgICAgICAgICAgICh1J2AnLCB1J1xcKGdhJyksCi0gICAgICAgICAgICAgXQotICAgICAg ICAgZm9yIChpbl9jaGFyLCBvdXRfbWFya3VwKSBpbiByZXBsYWNlX3BhaXJzOgotICAgICAgICAg ICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UoaW5fY2hhciwgb3V0X21hcmt1cCkKLWRpZmYgLS1naXQg YS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2Vhc3RfYXNpYW5fdGV4dC5weSBiL3Rl c3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZWFzdF9hc2lhbl90ZXh0LnB5Ci1pbmRleCBk ODE5ZWY4Li5hMTNjOTY5IDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3Qv dGVzdF9lYXN0X2FzaWFuX3RleHQucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0 L3Rlc3RfZWFzdF9hc2lhbl90ZXh0LnB5Ci1AQCAtNTAsMTIgKzUwLDEyIEBAIHUiIiJcCi0gICAg ICAgICAgICAgICAgIOOCv+OCpOODiOODqzIKLSAgICAgICAgICAgICAgICAgPT09PT09PT0KLSAi IiJdLAotLVt1ciIiIgotK1t1IiIiCi0gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotIHwgKiDj g5Ljg6fjgqY644OA44KkMeOCruODp+OCpiAgfAotIHwgKiDjg4DjgqQy44Ku44On44KmICAgICAg ICAgfAotICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLS18IFwqIOODgOOCpDHjgq7jg6fjgqYg ICAgICAgIHwKLSt8IFxcKiDjg4DjgqQx44Ku44On44KmICAgICAgICB8Ci0gfCAqIOODgOOCpDLj gq7jg6fjgqYgICAgICAgICB8Ci0gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotICIiIiwKLWRp ZmYgLS1naXQgYS90b29scy9kZXYvZ2VuZXJhdGVfcHVuY3R1YXRpb25fY2hhcnMucHkgYi90b29s cy9kZXYvZ2VuZXJhdGVfcHVuY3R1YXRpb25fY2hhcnMucHkKLWluZGV4IGZiYjcyYzAuLmNmZTk3 ZGYgMTAwNjQ0Ci0tLS0gYS90b29scy9kZXYvZ2VuZXJhdGVfcHVuY3R1YXRpb25fY2hhcnMucHkK LSsrKyBiL3Rvb2xzL2Rldi9nZW5lcmF0ZV9wdW5jdHVhdGlvbl9jaGFycy5weQotQEAgLTM3NSwx MCArMzc1LDE2IEBAIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gCi0gICAgICAgICBwcmlu dF9kaWZmZXJlbmNlcyhvcGVuZXJzLCBvLCAnb3BlbmVycycpCi0gICAgICAgICBpZiBvX3dpZGU6 Ci0tICAgICAgICAgICAgcHJpbnQoJysgb3BlbmVycy13aWRlID0gdXIiIiIlcyIiIicgJSBvX3dp ZGUuZW5jb2RlKCd1dGY4JykpCi0rICAgICAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgz LCAwKToKLSsgICAgICAgICAgICAgICAgcHJpbnQoJysgb3BlbmVycy13aWRlID0gdXIiIiIlcyIi IicgJSBvX3dpZGUuZW5jb2RlKCd1dGY4JykpCi0rICAgICAgICAgICAgZWxzZToKLSsgICAgICAg ICAgICAgICAgcHJpbnQoJysgb3BlbmVycy13aWRlID0gciIiIiVzIiIiJyAlIG9fd2lkZS5lbmNv ZGUoJ3V0ZjgnKSkKLSAgICAgICAgIHByaW50X2RpZmZlcmVuY2VzKGNsb3NlcnMsIGMsICdjbG9z ZXJzJykKLSAgICAgICAgIGlmIGNfd2lkZToKLS0gICAgICAgICAgICBwcmludCgnKyBjbG9zZXJz LXdpZGUgPSB1ciIiIiVzIiIiJyAlIGNfd2lkZS5lbmNvZGUoJ3V0ZjgnKSkKLSsgICAgICAgICAg ICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDApOgotKyAgICAgICAgICAgICAgICBwcmludCgn KyBjbG9zZXJzLXdpZGUgPSB1ciIiIiVzIiIiJyAlIGNfd2lkZS5lbmNvZGUoJ3V0ZjgnKSkKLSsg ICAgICAgICAgICBlbHNlOgotKyAgICAgICAgICAgICAgICBwcmludCgnKyBjbG9zZXJzLXdpZGUg PSByIiIiJXMiIiInICUgY193aWRlLmVuY29kZSgndXRmOCcpKQotIAotICAgICAgICAgcHJpbnRf ZGlmZmVyZW5jZXMoZGVsaW1pdGVycywgZCArIGRfd2lkZSwgJ2RlbGltaXRlcnMnKQotICAgICAg ICAgcHJpbnRfZGlmZmVyZW5jZXMoY2xvc2luZ19kZWxpbWl0ZXJzLCBjZCwgJ2Nsb3NpbmdfZGVs aW1pdGVycycpCi0tLSAKLTIuMjQuMC4zNzUuZ2ViNWFlNjhkNDEKLQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDE5LUZvcm1hdHRpbmctY2hhbmdlcy10by1m YWNpbGl0YXRlLWludGVncmF0aW9uLW9mLXB5My0ucGF0Y2ggYi9zcmNwa2dzL3B5dGhvbi1kb2N1 dGlscy9wYXRjaGVzLzAwMTktRm9ybWF0dGluZy1jaGFuZ2VzLXRvLWZhY2lsaXRhdGUtaW50ZWdy YXRpb24tb2YtcHkzLS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWFjZjZl OTBkYmMuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMv MDAxOS1Gb3JtYXR0aW5nLWNoYW5nZXMtdG8tZmFjaWxpdGF0ZS1pbnRlZ3JhdGlvbi1vZi1weTMt LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTIwICswLDAgQEAKLUZyb20gMmU2YTY1ZDkzZDQ2 MTZmNzAyYmJjMWYwZjViMThjNTYyZTQwMzk1NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZy b206IFN0ZXBoZW4gRmludWNhbmUgPHN0ZXBoZW5AdGhhdC5ndXJ1PgotRGF0ZTogV2VkLCAyMCBO b3YgMjAxOSAwMDowODozMyArMDcwMAotU3ViamVjdDogW1BBVENIIDE5LzI2XSBGb3JtYXR0aW5n IGNoYW5nZXMgdG8gZmFjaWxpdGF0ZSBpbnRlZ3JhdGlvbiBvZiAicHkzIgotIHBhdGNoc2V0Lgot Ci1naXQtc3ZuLWlkOiBodHRwOi8vc3ZuLmNvZGUuc2YubmV0L3AvZG9jdXRpbHMvY29kZS90cnVu a0A4MzY3IDkyOTU0M2Y2LWU0ZjItMDMxMC05OGE2LWJhM2JkM2RkMWQwNAotU2lnbmVkLW9mZi1i eTogRG9hbiBUcmFuIENvbmcgRGFuaCA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+Ci0tLS0KLSBkb2N1 dGlscy9fY29tcGF0LnB5ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KLSBkb2N1 dGlscy9jb3JlLnB5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KLSBkb2N1 dGlscy9mcm9udGVuZC5weSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKystLQotIGRv Y3V0aWxzL2lvLnB5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxOCArKysrKysr KystLS0tLS0tLS0KLSBkb2N1dGlscy9ub2Rlcy5weSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgMTIgKysrKysrLS0tLS0tCi0gZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy9f X2luaXRfXy5weSAgICB8ICAyICstCi0gZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy9t aXNjLnB5ICAgICAgICB8ICA0ICsrLS0KLSBkb2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVz L3RhYmxlcy5weSAgICAgIHwgIDQgKystLQotIGRvY3V0aWxzL3N0YXRlbWFjaGluZS5weSAgICAg ICAgICAgICAgICAgICAgICAgfCAgMiArLQotIGRvY3V0aWxzL3RyYW5zZm9ybXMvZnJvbnRtYXR0 ZXIucHkgICAgICAgICAgICAgfCAgMiArLQotIGRvY3V0aWxzL3RyYW5zZm9ybXMvdW5pdmVyc2Fs LnB5ICAgICAgICAgICAgICAgfCAgMiArLQotIGRvY3V0aWxzL3V0aWxzL19faW5pdF9fLnB5ICAg ICAgICAgICAgICAgICAgICAgfCAgOCArKysrLS0tLQotIGRvY3V0aWxzL3V0aWxzL2Vycm9yX3Jl cG9ydGluZy5weSAgICAgICAgICAgICAgfCAgNCArKy0tCi0gZG9jdXRpbHMvdXRpbHMvbWF0aC9t YXRoMmh0bWwucHkgICAgICAgICAgICAgICB8ICA2ICsrKy0tLQotIGRvY3V0aWxzL3dyaXRlcnMv X2h0bWxfYmFzZS5weSAgICAgICAgICAgICAgICAgfCAgMiArLQotIGRvY3V0aWxzL3dyaXRlcnMv ZG9jdXRpbHNfeG1sLnB5ICAgICAgICAgICAgICAgfCAgNCArKy0tCi0gZG9jdXRpbHMvd3JpdGVy cy9sYXRleDJlL19faW5pdF9fLnB5ICAgICAgICAgICB8ICAyICstCi0gZG9jdXRpbHMvd3JpdGVy cy9tYW5wYWdlLnB5ICAgICAgICAgICAgICAgICAgICB8ICAyICstCi0gZG9jdXRpbHMvd3JpdGVy cy9vZGZfb2R0L19faW5pdF9fLnB5ICAgICAgICAgICB8ICA1ICsrKy0tCi0gc2V0dXAucHkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA2ICsrKy0tLQotIHRlc3QvRG9j dXRpbHNUZXN0U3VwcG9ydC5weSAgICAgICAgICAgICAgICAgICAgfCAgNiArKystLS0KLSB0ZXN0 L3Rlc3RfX2luaXRfXy5weSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KLSB0ZXN0 L3Rlc3RfY29tbWFuZF9saW5lLnB5ICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KLSB0ZXN0 L3Rlc3RfZXJyb3JfcmVwb3J0aW5nLnB5ICAgICAgICAgICAgICAgICAgIHwgIDQgKystLQotIHRl c3QvdGVzdF9mdW5jdGlvbmFsLnB5ICAgICAgICAgICAgICAgICAgICAgICAgfCAgOCArKysrLS0t LQotIHRlc3QvdGVzdF9pby5weSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgOCAr KysrLS0tLQotIHRlc3QvdGVzdF9sYW5ndWFnZS5weSAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgMiArLQotIHRlc3QvdGVzdF9ub2Rlcy5weSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAxNiArKysrKysrKy0tLS0tLS0tCi0gdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9wYXJzZXIucHkg ICAgICAgICAgICAgICB8ICAyICstCi0gLi4uL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0 X2luY2x1ZGUucHkgICB8ICA0ICsrLS0KLSAuLi4vdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rl c3RfcmF3LnB5ICAgICAgIHwgIDIgKy0KLSAuLi4vdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rl c3RfdGFibGVzLnB5ICAgIHwgIDIgKy0KLSAuLi4vdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rl c3RfdW5pY29kZS5weSAgIHwgIDIgKy0KLSB0b29scy9kZXYvY3JlYXRlX3VuaW1hcC5weSAgICAg ICAgICAgICAgICAgICAgIHwgIDQgKystLQotIHRvb2xzL2Rldi9nZW5lcmF0ZV9wdW5jdHVhdGlv bl9jaGFycy5weSAgICAgICAgfCAgNCArKy0tCi0gdG9vbHMvZGV2L3VuaWNvZGUycnN0c3Vicy5w eSAgICAgICAgICAgICAgICAgICB8ICAyICstCi0gMzYgZmlsZXMgY2hhbmdlZCwgODIgaW5zZXJ0 aW9ucygrKSwgODEgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9kb2N1dGlscy9fY29tcGF0 LnB5IGIvZG9jdXRpbHMvX2NvbXBhdC5weQotaW5kZXggYzlkZTYzMy4uMWZmOTU5YyAxMDA2NDQK LS0tLSBhL2RvY3V0aWxzL19jb21wYXQucHkKLSsrKyBiL2RvY3V0aWxzL19jb21wYXQucHkKLUBA IC0xNCw3ICsxNCw3IEBAIFRoaXMgbW9kdWxlIGN1cnJlbnRseSBwcm92aWRlcyB0aGUgZm9sbG93 aW5nIGhlbHBlciBzeW1ib2xzOgotIAotIGltcG9ydCBzeXMKLSAKLS1pZiBzeXMudmVyc2lvbl9p bmZvIDwgKDMsMCk6Ci0raWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCAwKToKLSAgICAgdV9wcmVm aXggPSAndScKLSAgICAgZnJvbSBTdHJpbmdJTyBpbXBvcnQgU3RyaW5nSU8gYXMgQnl0ZXNJTwot IGVsc2U6Ci1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvY29yZS5weSBiL2RvY3V0aWxzL2NvcmUucHkK LWluZGV4IDEyYTBjOTMuLmQwZGIwOTMgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9jb3JlLnB5Ci0r KysgYi9kb2N1dGlscy9jb3JlLnB5Ci1AQCAtMTU1LDcgKzE1NSw3IEBAIGNsYXNzIFB1Ymxpc2hl cihvYmplY3QpOgotICAgICAgICAgaWYgYXJndiBpcyBOb25lOgotICAgICAgICAgICAgIGFyZ3Yg PSBzeXMuYXJndlsxOl0KLSAgICAgICAgICAgICAjIGNvbnZlcnRpbmcgdG8gVW5pY29kZSAoUHl0 aG9uIDMgZG9lcyB0aGlzIGF1dG9tYXRpY2FsbHkpOgotLSAgICAgICAgICAgIGlmIHN5cy52ZXJz aW9uX2luZm8gPCAoMywwKToKLSsgICAgICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMs IDApOgotICAgICAgICAgICAgICAgICAjIFRPRE86IG1ha2UgdGhpcyBmYWlsc2FmZSBhbmQgcmV2 ZXJzaWJsZT8KLSAgICAgICAgICAgICAgICAgYXJndl9lbmNvZGluZyA9IChmcm9udGVuZC5sb2Nh bGVfZW5jb2Rpbmcgb3IgJ2FzY2lpJykKLSAgICAgICAgICAgICAgICAgYXJndiA9IFthLmRlY29k ZShhcmd2X2VuY29kaW5nKSBmb3IgYSBpbiBhcmd2XQotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL2Zy b250ZW5kLnB5IGIvZG9jdXRpbHMvZnJvbnRlbmQucHkKLWluZGV4IDgxNTM0M2QuLjdiZmZmNmEg MTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9mcm9udGVuZC5weQotKysrIGIvZG9jdXRpbHMvZnJvbnRl bmQucHkKLUBAIC0zNiw3ICszNiw3IEBAIGltcG9ydCB3YXJuaW5ncwotIGltcG9ydCBjb2RlY3MK LSBpbXBvcnQgb3B0cGFyc2UKLSBmcm9tIG9wdHBhcnNlIGltcG9ydCBTVVBQUkVTU19IRUxQCi0t aWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKLStpZiBzeXMudmVyc2lvbl9pbmZvID49ICgz LCAwKToKLSAgICAgZnJvbSBjb25maWdwYXJzZXIgaW1wb3J0IFJhd0NvbmZpZ1BhcnNlcgotIGVs c2U6Ci0gICAgIGZyb20gQ29uZmlnUGFyc2VyIGltcG9ydCBSYXdDb25maWdQYXJzZXIKLUBAIC00 Nyw3ICs0Nyw3IEBAIGltcG9ydCBkb2N1dGlscy5ub2RlcwotIGZyb20gZG9jdXRpbHMudXRpbHMu ZXJyb3JfcmVwb3J0aW5nIGltcG9ydCAobG9jYWxlX2VuY29kaW5nLCBTYWZlU3RyaW5nLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3JPdXRwdXQsIEVy cm9yU3RyaW5nKQotIAotLWlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0raWYgc3lzLnZl cnNpb25faW5mbyA+PSAoMywgMCk6Ci0gICAgIHVuaWNvZGUgPSBzdHIgICMgbm9xYQotIAotIAot ZGlmZiAtLWdpdCBhL2RvY3V0aWxzL2lvLnB5IGIvZG9jdXRpbHMvaW8ucHkKLWluZGV4IGZiMzU0 ZmQuLjljNzBmMTAgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy9pby5weQotKysrIGIvZG9jdXRpbHMv aW8ucHkKLUBAIC0xNyw3ICsxNyw3IEBAIGltcG9ydCBjb2RlY3MKLSBmcm9tIGRvY3V0aWxzIGlt cG9ydCBUcmFuc2Zvcm1TcGVjCi0gZnJvbSBkb2N1dGlscy51dGlscy5lcnJvcl9yZXBvcnRpbmcg aW1wb3J0IGxvY2FsZV9lbmNvZGluZywgRXJyb3JTdHJpbmcsIEVycm9yT3V0cHV0Ci0gCi0taWYg c3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKLStpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAw KToKLSAgICAgdW5pY29kZSA9IHN0ciAgIyBub3FhCi0gCi0gCi1AQCAtMjA4LDcgKzIwOCw3IEBA IGNsYXNzIEZpbGVJbnB1dChJbnB1dCk6Ci0gICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzb3VyY2U9 Tm9uZSwgc291cmNlX3BhdGg9Tm9uZSwKLSAgICAgICAgICAgICAgICAgIGVuY29kaW5nPU5vbmUs IGVycm9yX2hhbmRsZXI9J3N0cmljdCcsCi0gICAgICAgICAgICAgICAgICBhdXRvY2xvc2U9VHJ1 ZSwKLS0gICAgICAgICAgICAgICAgIG1vZGU9J3InIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMs MCkgZWxzZSAnclUnLCAqKmt3YXJncyk6Ci0rICAgICAgICAgICAgICAgICBtb2RlPSdyJyBpZiBz eXMudmVyc2lvbl9pbmZvID49ICgzLCAwKSBlbHNlICdyVScsICoqa3dhcmdzKToKLSAgICAgICAg ICIiIgotICAgICAgICAgOlBhcmFtZXRlcnM6Ci0gICAgICAgICAgICAgLSBgc291cmNlYDogZWl0 aGVyIGEgZmlsZS1saWtlIG9iamVjdCAod2hpY2ggaXMgcmVhZCBkaXJlY3RseSksIG9yCi1AQCAt MjM5LDcgKzIzOSw3IEBAIGNsYXNzIEZpbGVJbnB1dChJbnB1dCk6Ci0gICAgICAgICBpZiBzb3Vy Y2UgaXMgTm9uZToKLSAgICAgICAgICAgICBpZiBzb3VyY2VfcGF0aDoKLSAgICAgICAgICAgICAg ICAgIyBTcGVjaWZ5IGVuY29kaW5nIGluIFB5dGhvbiAzCi0tICAgICAgICAgICAgICAgIGlmIHN5 cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0rICAgICAgICAgICAgICAgIGlmIHN5cy52ZXJzaW9u X2luZm8gPj0gKDMsIDApOgotICAgICAgICAgICAgICAgICAgICAga3dhcmdzID0geydlbmNvZGlu Zyc6IHNlbGYuZW5jb2RpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Vycm9y cyc6IHNlbGYuZXJyb3JfaGFuZGxlcn0KLSAgICAgICAgICAgICAgICAgZWxzZToKLUBAIC0yNTEs NyArMjUxLDcgQEAgY2xhc3MgRmlsZUlucHV0KElucHV0KToKLSAgICAgICAgICAgICAgICAgICAg IHJhaXNlIElucHV0RXJyb3IoZXJyb3IuZXJybm8sIGVycm9yLnN0cmVycm9yLCBzb3VyY2VfcGF0 aCkKLSAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICBzZWxmLnNvdXJjZSA9IHN5 cy5zdGRpbgotLSAgICAgICAgZWxpZiAoc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKSBhbmQKLSsg ICAgICAgIGVsaWYgKHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApIGFuZAotICAgICAgICAgICAg ICAgY2hlY2tfZW5jb2Rpbmcoc2VsZi5zb3VyY2UsIHNlbGYuZW5jb2RpbmcpIGlzIEZhbHNlKToK LSAgICAgICAgICAgICAjIFRPRE86IHJlLW9wZW4sIHdhcm4gb3IgcmFpc2UgZXJyb3I/Ci0gICAg ICAgICAgICAgcmFpc2UgVW5pY29kZUVycm9yKCdFbmNvZGluZyBjbGFzaDogZW5jb2RpbmcgZ2l2 ZW4gaXMgIiVzIiAnCi1AQCAtMjY4LDcgKzI2OCw3IEBAIGNsYXNzIEZpbGVJbnB1dChJbnB1dCk6 Ci0gICAgICAgICBSZWFkIGFuZCBkZWNvZGUgYSBzaW5nbGUgZmlsZSBhbmQgcmV0dXJuIHRoZSBk YXRhIChVbmljb2RlIHN0cmluZykuCi0gICAgICAgICAiIiIKLSAgICAgICAgIHRyeToKLS0gICAg ICAgICAgICBpZiBzZWxmLnNvdXJjZSBpcyBzeXMuc3RkaW4gYW5kIHN5cy52ZXJzaW9uX2luZm8g Pj0gKDMsMCk6Ci0rICAgICAgICAgICAgaWYgc2VsZi5zb3VyY2UgaXMgc3lzLnN0ZGluIGFuZCBz eXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSAgICAgICAgICAgICAgICAgIyByZWFkIGFzIGJp bmFyeSBkYXRhIHRvIGNpcmN1bXZlbnQgYXV0by1kZWNvZGluZwotICAgICAgICAgICAgICAgICBk YXRhID0gc2VsZi5zb3VyY2UuYnVmZmVyLnJlYWQoKQotICAgICAgICAgICAgICAgICAjIG5vcm1h bGl6ZSBuZXdsaW5lcwotQEAgLTM1OCw3ICszNTgsNyBAQCBjbGFzcyBGaWxlT3V0cHV0KE91dHB1 dCk6Ci0gCi0gICAgIGRlZiBvcGVuKHNlbGYpOgotICAgICAgICAgIyBTcGVjaWZ5IGVuY29kaW5n IGluIFB5dGhvbiAzLgotLSAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKSBhbmQg J2InIG5vdCBpbiBzZWxmLm1vZGU6Ci0rICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgz LCAwKSBhbmQgJ2InIG5vdCBpbiBzZWxmLm1vZGU6Ci0gICAgICAgICAgICAga3dhcmdzID0geydl bmNvZGluZyc6IHNlbGYuZW5jb2RpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICdlcnJvcnMn OiBzZWxmLmVycm9yX2hhbmRsZXJ9Ci0gICAgICAgICBlbHNlOgotQEAgLTM3OCwxNyArMzc4LDE3 IEBAIGNsYXNzIEZpbGVPdXRwdXQoT3V0cHV0KToKLSAgICAgICAgICIiIgotICAgICAgICAgaWYg bm90IHNlbGYub3BlbmVkOgotICAgICAgICAgICAgIHNlbGYub3BlbigpCi0tICAgICAgICBpZiAo J2InIG5vdCBpbiBzZWxmLm1vZGUgYW5kIHN5cy52ZXJzaW9uX2luZm8gPCAoMywwKQotKyAgICAg ICAgaWYgKCdiJyBub3QgaW4gc2VsZi5tb2RlIGFuZCBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDAp Ci0gICAgICAgICAgICAgb3IgY2hlY2tfZW5jb2Rpbmcoc2VsZi5kZXN0aW5hdGlvbiwgc2VsZi5l bmNvZGluZykgaXMgRmFsc2UKLSAgICAgICAgICAgICk6Ci0gICAgICAgICAgICAgZGF0YSA9IHNl bGYuZW5jb2RlKGRhdGEpCi0tICAgICAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMyww KSBhbmQgb3MubGluZXNlcCAhPSAnXG4nOgotKyAgICAgICAgICAgIGlmIHN5cy52ZXJzaW9uX2lu Zm8gPj0gKDMsIDApIGFuZCBvcy5saW5lc2VwICE9ICdcbic6Ci0gICAgICAgICAgICAgICAgIGRh dGEgPSBkYXRhLnJlcGxhY2UoYidcbicsIGJ5dGVzKG9zLmxpbmVzZXAsICdhc2NpaScpKSAjIGZp eCBlbmRpbmdzCi0gCi0gICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgc2VsZi5kZXN0aW5hdGlv bi53cml0ZShkYXRhKQotICAgICAgICAgZXhjZXB0IFR5cGVFcnJvciBhcyBlOgotLSAgICAgICAg ICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCkgYW5kIGlzaW5zdGFuY2UoZGF0YSwgYnl0 ZXMpOgotKyAgICAgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApIGFuZCBpc2lu c3RhbmNlKGRhdGEsIGJ5dGVzKToKLSAgICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAg ICAgICAgICAgc2VsZi5kZXN0aW5hdGlvbi5idWZmZXIud3JpdGUoZGF0YSkKLSAgICAgICAgICAg ICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL25vZGVz LnB5IGIvZG9jdXRpbHMvbm9kZXMucHkKLWluZGV4IGY4ZGEwMmIuLmRkOWM0YjYgMTAwNjQ0Ci0t LS0gYS9kb2N1dGlscy9ub2Rlcy5weQotKysrIGIvZG9jdXRpbHMvbm9kZXMucHkKLUBAIC0yOSw3 ICsyOSw3IEBAIGltcG9ydCByZQotIGltcG9ydCB3YXJuaW5ncwotIGltcG9ydCB1bmljb2RlZGF0 YQotIAotLWlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0raWYgc3lzLnZlcnNpb25faW5m byA+PSAoMywgMCk6Ci0gICAgIHVuaWNvZGUgPSBzdHIgICMgbm9xYQotICAgICBiYXNlc3RyaW5n ID0gc3RyICAjIG5vcWEKLSAKLUBAIC02NCw3ICs2NCw3IEBAIGNsYXNzIE5vZGUob2JqZWN0KToK LSAgICAgICAgICIiIgotICAgICAgICAgcmV0dXJuIFRydWUKLSAKLS0gICAgaWYgc3lzLnZlcnNp b25faW5mbyA8ICgzLDApOgotKyAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDApOgotICAg ICAgICAgIyBvbiAyLngsIHN0cihub2RlKSB3aWxsIGJlIGEgYnl0ZSBzdHJpbmcgd2l0aCBVbmlj b2RlCi0gICAgICAgICAjIGNoYXJhY3RlcnMgPiAyNTUgZXNjYXBlZDsgb24gMy54IHRoaXMgaXMg bm8gbG9uZ2VyIG5lY2Vzc2FyeQotICAgICAgICAgZGVmIF9fc3RyX18oc2VsZik6Ci1AQCAtMzA0 LDcgKzMwNCw3IEBAIGNsYXNzIE5vZGUob2JqZWN0KToKLSAgICAgICAgIGV4Y2VwdCBJbmRleEVy cm9yOgotICAgICAgICAgICAgIHJldHVybiBOb25lCi0gCi0taWYgc3lzLnZlcnNpb25faW5mbyA8 ICgzLDApOgotK2lmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMCk6Ci0gICAgIGNsYXNzIHJlcHJ1 bmljb2RlKHVuaWNvZGUpOgotICAgICAgICAgIiIiCi0gICAgICAgICBBIHVuaWNvZGUgc3ViLWNs YXNzIHRoYXQgcmVtb3ZlcyB0aGUgaW5pdGlhbCB1IGZyb20gdW5pY29kZSdzIHJlcHIuCi1AQCAt MzIwLDcgKzMyMCw3IEBAIGRlZiBlbnN1cmVfc3RyKHMpOgotICAgICAiIiIKLSAgICAgRmFpbHNh dmUgY29udmVyc2lvbiBvZiBgdW5pY29kZWAgdG8gYHN0cmAuCi0gICAgICIiIgotLSAgICBpZiBz eXMudmVyc2lvbl9pbmZvIDwgKDMsMCkgYW5kIGlzaW5zdGFuY2UocywgdW5pY29kZSk6Ci0rICAg IGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMCkgYW5kIGlzaW5zdGFuY2UocywgdW5pY29kZSk6 Ci0gICAgICAgICByZXR1cm4gcy5lbmNvZGUoJ2FzY2lpJywgJ2JhY2tzbGFzaHJlcGxhY2UnKQot ICAgICByZXR1cm4gcwotIAotQEAgLTM1Miw3ICszNTIsNyBAQCBjbGFzcyBUZXh0KE5vZGUsIHJl cHJ1bmljb2RlKToKLSAgICAgY2hpbGRyZW4gPSAoKQotICAgICAiIiJUZXh0IG5vZGVzIGhhdmUg bm8gY2hpbGRyZW4sIGFuZCBjYW5ub3QgaGF2ZSBjaGlsZHJlbi4iIiIKLSAKLS0gICAgaWYgc3lz LnZlcnNpb25faW5mbyA+ICgzLDApOgotKyAgICBpZiBzeXMudmVyc2lvbl9pbmZvID4gKDMsIDAp OgotICAgICAgICAgZGVmIF9fbmV3X18oY2xzLCBkYXRhLCByYXdzb3VyY2U9Tm9uZSk6Ci0gICAg ICAgICAgICAgIiIiUHJldmVudCB0aGUgcmF3c291cmNlIGFyZ3VtZW50IGZyb20gcHJvcGFnYXRp bmcgdG8gc3RyLiIiIgotICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZGF0YSwgYnl0ZXMpOgot QEAgLTU0NCw3ICs1NDQsNyBAQCBjbGFzcyBFbGVtZW50KE5vZGUpOgotICAgICAgICAgZWxzZToK LSAgICAgICAgICAgICByZXR1cm4gc2VsZi5lbXB0eXRhZygpCi0gCi0tICAgIGlmIHN5cy52ZXJz aW9uX2luZm8gPiAoMywwKToKLSsgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+ICgzLCAwKToKLSAg ICAgICAgICMgMnRvMyBkb2Vzbid0IGNvbnZlcnQgX191bmljb2RlX18gdG8gX19zdHJfXwotICAg ICAgICAgX19zdHJfXyA9IF9fdW5pY29kZV9fCi0gCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvcGFy c2Vycy9yc3QvZGlyZWN0aXZlcy9fX2luaXRfXy5weSBiL2RvY3V0aWxzL3BhcnNlcnMvcnN0L2Rp cmVjdGl2ZXMvX19pbml0X18ucHkKLWluZGV4IDE0ZmUxZmYuLjdiY2NiNWIgMTAwNjQ0Ci0tLS0g YS9kb2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL19faW5pdF9fLnB5Ci0rKysgYi9kb2N1 dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL19faW5pdF9fLnB5Ci1AQCAtMTYsNyArMTYsNyBA QCBmcm9tIGRvY3V0aWxzIGltcG9ydCBub2RlcwotIGZyb20gZG9jdXRpbHMudXRpbHMgaW1wb3J0 IHNwbGl0X2VzY2FwZWRfd2hpdGVzcGFjZSwgZXNjYXBlMm51bGwsIHVuZXNjYXBlCi0gZnJvbSBk b2N1dGlscy5wYXJzZXJzLnJzdC5sYW5ndWFnZXMgaW1wb3J0IGVuIGFzIF9mYWxsYmFja19sYW5n dWFnZV9tb2R1bGUKLSAKLS1pZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApOgotK2lmIHN5cy52 ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotICAgICB1bmljaHIgPSBjaHIgICMgbm9xYQotIAotIAot ZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvbWlzYy5weSBiL2Rv Y3V0aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvbWlzYy5weQotaW5kZXggM2I5YjlkZS4uMGZj MzYxMCAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvbWlzYy5w eQotKysrIGIvZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy9taXNjLnB5Ci1AQCAtNDcz LDcgKzQ3Myw3IEBAIGNsYXNzIERhdGUoRGlyZWN0aXZlKToKLSAgICAgICAgICAgICAgICAgJ0lu dmFsaWQgY29udGV4dDogdGhlICIlcyIgZGlyZWN0aXZlIGNhbiBvbmx5IGJlIHVzZWQgd2l0aGlu ICcKLSAgICAgICAgICAgICAgICAgJ2Egc3Vic3RpdHV0aW9uIGRlZmluaXRpb24uJyAlIHNlbGYu bmFtZSkKLSAgICAgICAgIGZvcm1hdF9zdHIgPSAnXG4nLmpvaW4oc2VsZi5jb250ZW50KSBvciAn JVktJW0tJWQnCi0tICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvPCAoMywwKToKLSsgICAgICAg IGlmIHN5cy52ZXJzaW9uX2luZm88ICgzLCAwKToKLSAgICAgICAgICAgICB0cnk6Ci0gICAgICAg ICAgICAgICAgIGZvcm1hdF9zdHIgPSBmb3JtYXRfc3RyLmVuY29kZShsb2NhbGVfZW5jb2Rpbmcg b3IgJ3V0Zi04JykKLSAgICAgICAgICAgICBleGNlcHQgVW5pY29kZUVuY29kZUVycm9yOgotQEAg LTQ5OCw3ICs0OTgsNyBAQCBjbGFzcyBEYXRlKERpcmVjdGl2ZSk6Ci0gICAgICAgICAjICAgICAg ICAgICAgICAgICAgICAgICAgICB0aW1lLmdtdGltZShpbnQoc291cmNlX2RhdGVfZXBvY2gpKSkK LSAgICAgICAgICMgZWxzZToKLSAgICAgICAgIHRleHQgPSB0aW1lLnN0cmZ0aW1lKGZvcm1hdF9z dHIpCi0tICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvPCAoMywwKToKLSsgICAgICAgIGlmIHN5 cy52ZXJzaW9uX2luZm88ICgzLCAwKToKLSAgICAgICAgICAgICAjIGB0ZXh0YCBpcyBhIGJ5dGUg c3RyaW5nIHRoYXQgbWF5IGNvbnRhaW4gbm9uLUFTQ0lJIGNoYXJhY3RlcnM6Ci0gICAgICAgICAg ICAgdHJ5OgotICAgICAgICAgICAgICAgICB0ZXh0ID0gdGV4dC5kZWNvZGUobG9jYWxlX2VuY29k aW5nIG9yICd1dGYtOCcpCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0 aXZlcy90YWJsZXMucHkgYi9kb2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL3RhYmxlcy5w eQotaW5kZXggMzZhNTJlNy4uYjY5OGUwOCAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3BhcnNlcnMv cnN0L2RpcmVjdGl2ZXMvdGFibGVzLnB5Ci0rKysgYi9kb2N1dGlscy9wYXJzZXJzL3JzdC9kaXJl Y3RpdmVzL3RhYmxlcy5weQotQEAgLTI2Myw3ICsyNjMsNyBAQCBjbGFzcyBDU1ZUYWJsZShUYWJs ZSk6Ci0gICAgICAgICAgICAgcmV0dXJuIFtkZXRhaWwuYXJnc1swXV0KLSAgICAgICAgIGV4Y2Vw dCBjc3YuRXJyb3IgYXMgZGV0YWlsOgotICAgICAgICAgICAgIG1lc3NhZ2UgPSBzdHIoZGV0YWls KQotLSAgICAgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywwKSBhbmQgJzEtY2hhcmFj dGVyIHN0cmluZycgaW4gbWVzc2FnZToKLSsgICAgICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZv IDwgKDMsIDApIGFuZCAnMS1jaGFyYWN0ZXIgc3RyaW5nJyBpbiBtZXNzYWdlOgotICAgICAgICAg ICAgICAgICBtZXNzYWdlICs9ICdcbndpdGggUHl0aG9uIDIueCB0aGlzIG11c3QgYmUgYW4gQVND SUkgY2hhcmFjdGVyLicKLSAgICAgICAgICAgICBlcnJvciA9IHNlbGYuc3RhdGVfbWFjaGluZS5y ZXBvcnRlci5lcnJvcigKLSAgICAgICAgICAgICAgICAgJ0Vycm9yIHdpdGggQ1NWIGRhdGEgaW4g IiVzIiBkaXJlY3RpdmU6XG4lcycKLUBAIC0zNTYsNyArMzU2LDcgQEAgY2xhc3MgQ1NWVGFibGUo VGFibGUpOgotICAgICAgICAgICAgIHJhaXNlIFN5c3RlbU1lc3NhZ2VQcm9wYWdhdGlvbihlcnJv cikKLSAgICAgICAgIHJldHVybiBjc3ZfZGF0YSwgc291cmNlCi0gCi0tICAgIGlmIHN5cy52ZXJz aW9uX2luZm8gPCAoMywwKToKLSsgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCAwKToKLSAg ICAgICAgICMgMi54IGNzdiBtb2R1bGUgZG9lc24ndCBkbyBVbmljb2RlCi0gICAgICAgICBkZWYg ZGVjb2RlX2Zyb21fY3N2KHMpOgotICAgICAgICAgICAgIHJldHVybiBzLmRlY29kZSgndXRmLTgn KQotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3N0YXRlbWFjaGluZS5weSBiL2RvY3V0aWxzL3N0YXRl bWFjaGluZS5weQotaW5kZXggMTYyNTJiYi4uNmJjMDNmNSAxMDA2NDQKLS0tLSBhL2RvY3V0aWxz L3N0YXRlbWFjaGluZS5weQotKysrIGIvZG9jdXRpbHMvc3RhdGVtYWNoaW5lLnB5Ci1AQCAtMTEz LDcgKzExMyw3IEBAIGltcG9ydCB1bmljb2RlZGF0YQotIGZyb20gZG9jdXRpbHMgaW1wb3J0IHV0 aWxzCi0gZnJvbSBkb2N1dGlscy51dGlscy5lcnJvcl9yZXBvcnRpbmcgaW1wb3J0IEVycm9yT3V0 cHV0Ci0gCi0taWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKLStpZiBzeXMudmVyc2lvbl9p bmZvID49ICgzLCAwKToKLSAgICAgdW5pY29kZSA9IHN0ciAgIyBub3FhCi0gCi0gCi1kaWZmIC0t Z2l0IGEvZG9jdXRpbHMvdHJhbnNmb3Jtcy9mcm9udG1hdHRlci5weSBiL2RvY3V0aWxzL3RyYW5z Zm9ybXMvZnJvbnRtYXR0ZXIucHkKLWluZGV4IDM0NWUyOTAuLjIzYjljOTUgMTAwNjQ0Ci0tLS0g YS9kb2N1dGlscy90cmFuc2Zvcm1zL2Zyb250bWF0dGVyLnB5Ci0rKysgYi9kb2N1dGlscy90cmFu c2Zvcm1zL2Zyb250bWF0dGVyLnB5Ci1AQCAtMjgsNyArMjgsNyBAQCBmcm9tIGRvY3V0aWxzIGlt cG9ydCBub2RlcywgdXRpbHMKLSBmcm9tIGRvY3V0aWxzLnRyYW5zZm9ybXMgaW1wb3J0IFRyYW5z Zm9ybUVycm9yLCBUcmFuc2Zvcm0KLSAKLSAKLS1pZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDAp OgotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotICAgICB1bmljb2RlID0gc3RyICAj IG5vcWEKLSAKLSAKLWRpZmYgLS1naXQgYS9kb2N1dGlscy90cmFuc2Zvcm1zL3VuaXZlcnNhbC5w eSBiL2RvY3V0aWxzL3RyYW5zZm9ybXMvdW5pdmVyc2FsLnB5Ci1pbmRleCA3NzBlYzcxLi40OWZi MmM4IDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvdHJhbnNmb3Jtcy91bml2ZXJzYWwucHkKLSsrKyBi L2RvY3V0aWxzL3RyYW5zZm9ybXMvdW5pdmVyc2FsLnB5Ci1AQCAtMjQsNyArMjQsNyBAQCBmcm9t IGRvY3V0aWxzLnRyYW5zZm9ybXMgaW1wb3J0IFRyYW5zZm9ybUVycm9yLCBUcmFuc2Zvcm0KLSBm cm9tIGRvY3V0aWxzLnV0aWxzIGltcG9ydCBzbWFydHF1b3RlcwotIAotIAotLWlmIHN5cy52ZXJz aW9uX2luZm8gPj0gKDMsMCk6Ci0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0gICAg IHVuaWNvZGUgPSBzdHIgICMgbm9xYQotIAotIAotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3V0aWxz L19faW5pdF9fLnB5IGIvZG9jdXRpbHMvdXRpbHMvX19pbml0X18ucHkKLWluZGV4IGRlMzkyNDcu LmNjMWZkMWEgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy91dGlscy9fX2luaXRfXy5weQotKysrIGIv ZG9jdXRpbHMvdXRpbHMvX19pbml0X18ucHkKLUBAIC0yMiw3ICsyMiw3IEBAIGZyb20gZG9jdXRp bHMubm9kZXMgaW1wb3J0IHVuZXNjYXBlCi0gaW1wb3J0IGRvY3V0aWxzLmlvCi0gZnJvbSBkb2N1 dGlscy51dGlscy5lcnJvcl9yZXBvcnRpbmcgaW1wb3J0IEVycm9yT3V0cHV0LCBTYWZlU3RyaW5n Ci0gCi0taWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKLStpZiBzeXMudmVyc2lvbl9pbmZv ID49ICgzLCAwKToKLSAgICAgdW5pY29kZSA9IHN0cgotIAotIAotQEAgLTU5Miw3ICs1OTIsNyBA QCBkZWYgc3BsaXRfZXNjYXBlZF93aGl0ZXNwYWNlKHRleHQpOgotICAgICByZXR1cm4gbGlzdChp dGVydG9vbHMuY2hhaW4oKnN0cmluZ3MpKQotIAotIGRlZiBzdHJpcF9jb21iaW5pbmdfY2hhcnMo dGV4dCk6Ci0tICAgIGlmIGlzaW5zdGFuY2UodGV4dCwgc3RyKSBhbmQgc3lzLnZlcnNpb25faW5m byA8ICgzLDApOgotKyAgICBpZiBpc2luc3RhbmNlKHRleHQsIHN0cikgYW5kIHN5cy52ZXJzaW9u X2luZm8gPCAoMywgMCk6Ci0gICAgICAgICByZXR1cm4gdGV4dAotICAgICByZXR1cm4gdScnLmpv aW4oW2MgZm9yIGMgaW4gdGV4dCBpZiBub3QgdW5pY29kZWRhdGEuY29tYmluaW5nKGMpXSkKLSAK LUBAIC02MDQsNyArNjA0LDcgQEAgZGVmIGZpbmRfY29tYmluaW5nX2NoYXJzKHRleHQpOgotICAg ICBbMywgNiwgOV0KLSAKLSAgICAgIiIiCi0tICAgIGlmIGlzaW5zdGFuY2UodGV4dCwgc3RyKSBh bmQgc3lzLnZlcnNpb25faW5mbyA8ICgzLDApOgotKyAgICBpZiBpc2luc3RhbmNlKHRleHQsIHN0 cikgYW5kIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMCk6Ci0gICAgICAgICByZXR1cm4gW10KLSAg ICAgcmV0dXJuIFtpIGZvciBpLGMgaW4gZW51bWVyYXRlKHRleHQpIGlmIHVuaWNvZGVkYXRhLmNv bWJpbmluZyhjKV0KLSAKLUBAIC02MzgsNyArNjM4LDcgQEAgZGVmIGNvbHVtbl93aWR0aCh0ZXh0 KToKLSAKLSAgICAgQ29ycmVjdCBgYGxlbih0ZXh0KWBgIGZvciB3aWRlIEVhc3QgQXNpYW4gYW5k IGNvbWJpbmluZyBVbmljb2RlIGNoYXJzLgotICAgICAiIiIKLS0gICAgaWYgaXNpbnN0YW5jZSh0 ZXh0LCBzdHIpIGFuZCBzeXMudmVyc2lvbl9pbmZvIDwgKDMsMCk6Ci0rICAgIGlmIGlzaW5zdGFu Y2UodGV4dCwgc3RyKSBhbmQgc3lzLnZlcnNpb25faW5mbyA8ICgzLCAwKToKLSAgICAgICAgIHJl dHVybiBsZW4odGV4dCkKLSAgICAgd2lkdGggPSBzdW0oW2Vhc3RfYXNpYW5fd2lkdGhzW3VuaWNv ZGVkYXRhLmVhc3RfYXNpYW5fd2lkdGgoYyldCi0gICAgICAgICAgICAgICAgICBmb3IgYyBpbiB0 ZXh0XSkKLWRpZmYgLS1naXQgYS9kb2N1dGlscy91dGlscy9lcnJvcl9yZXBvcnRpbmcucHkgYi9k b2N1dGlscy91dGlscy9lcnJvcl9yZXBvcnRpbmcucHkKLWluZGV4IDIxYmM1NWIuLjAyYTFkYWIg MTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy91dGlscy9lcnJvcl9yZXBvcnRpbmcucHkKLSsrKyBiL2Rv Y3V0aWxzL3V0aWxzL2Vycm9yX3JlcG9ydGluZy5weQotQEAgLTY1LDcgKzY1LDcgQEAgZWxzZToK LSAgICAgICAgIGxvY2FsZV9lbmNvZGluZyA9IE5vbmUKLSAKLSAKLS1pZiBzeXMudmVyc2lvbl9p bmZvID49ICgzLDApOgotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotICAgICB1bmlj b2RlID0gc3RyICAjIG5vcWEKLSAKLSAKLUBAIC05Myw3ICs5Myw3IEBAIGNsYXNzIFNhZmVTdHJp bmcob2JqZWN0KToKLSAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgYXJnIGluIHNlbGYuZGF0 YS5hcmdzXQotICAgICAgICAgICAgICAgICByZXR1cm4gJywgJy5qb2luKGFyZ3MpCi0gICAgICAg ICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLmRhdGEsIHVuaWNvZGUpOgotLSAgICAgICAgICAgICAg ICBpZiBzeXMudmVyc2lvbl9pbmZvID4gKDMsMCk6Ci0rICAgICAgICAgICAgICAgIGlmIHN5cy52 ZXJzaW9uX2luZm8gPiAoMywgMCk6Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5k YXRhCi0gICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4g c2VsZi5kYXRhLmVuY29kZShzZWxmLmVuY29kaW5nLAotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3V0 aWxzL21hdGgvbWF0aDJodG1sLnB5IGIvZG9jdXRpbHMvdXRpbHMvbWF0aC9tYXRoMmh0bWwucHkK LWluZGV4IGRkYWNhNDguLjQ3NTUxOWYgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy91dGlscy9tYXRo L21hdGgyaHRtbC5weQotKysrIGIvZG9jdXRpbHMvdXRpbHMvbWF0aC9tYXRoMmh0bWwucHkKLUBA IC0zMCw3ICszMCw3IEBAIGltcG9ydCB1bmljb2RlZGF0YQotIGltcG9ydCB1cmxsaWIKLSAKLSAK LS1pZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApOgotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0g KDMsIDApOgotICAgICB1bmljb2RlID0gc3RyICAjbm9xYQotICAgICBiYXNlc3RyaW5nID0gc3Ry ICAjIG5vcWEKLSAgICAgZmlsZSA9IGlvLklPQmFzZSAgIyBub3FhCi1AQCAtNzMsNyArNzMsNyBA QCBjbGFzcyBUcmFjZShvYmplY3QpOgotIAotICAgZGVmIHNob3coY2xzLCBtZXNzYWdlLCBjaGFu bmVsKToKLSAgICAgIlNob3cgYSBtZXNzYWdlIG91dCBvZiBhIGNoYW5uZWwiCi0tICAgIGlmIHN5 cy52ZXJzaW9uX2luZm8gPCAoMywwKToKLSsgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCAw KToKLSAgICAgICBtZXNzYWdlID0gbWVzc2FnZS5lbmNvZGUoJ3V0Zi04JykKLSAgICAgY2hhbm5l bC53cml0ZShtZXNzYWdlICsgJ1xuJykKLSAKLUBAIC0xNzg1LDcgKzE3ODUsNyBAQCBjbGFzcyBM aW5lV3JpdGVyKG9iamVjdCk6Ci0gICAgICJXcml0ZSBhIHN0cmluZyIKLSAgICAgaWYgbm90IHNl bGYuZmlsZToKLSAgICAgICBzZWxmLmZpbGUgPSBjb2RlY3Mub3BlbihzZWxmLmZpbGVuYW1lLCAn dycsICJ1dGYtOCIpCi0tICAgIGlmIHNlbGYuZmlsZSA9PSBzeXMuc3Rkb3V0IGFuZCBzeXMudmVy c2lvbl9pbmZvIDwgKDMsMCk6Ci0rICAgIGlmIHNlbGYuZmlsZSA9PSBzeXMuc3Rkb3V0IGFuZCBz eXMudmVyc2lvbl9pbmZvIDwgKDMsIDApOgotICAgICAgIHN0cmluZyA9IHN0cmluZy5lbmNvZGUo J3V0Zi04JykKLSAgICAgc2VsZi5maWxlLndyaXRlKHN0cmluZykKLSAKLWRpZmYgLS1naXQgYS9k b2N1dGlscy93cml0ZXJzL19odG1sX2Jhc2UucHkgYi9kb2N1dGlscy93cml0ZXJzL19odG1sX2Jh c2UucHkKLWluZGV4IDYzZDVhNWIuLmE5NTczMTEgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy93cml0 ZXJzL19odG1sX2Jhc2UucHkKLSsrKyBiL2RvY3V0aWxzL3dyaXRlcnMvX2h0bWxfYmFzZS5weQot QEAgLTQwLDcgKzQwLDcgQEAgZnJvbSBkb2N1dGlscy51dGlscy5tYXRoIGltcG9ydCAodW5pY2hh cjJ0ZXgsIHBpY2tfbWF0aF9lbnZpcm9ubWVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBtYXRoMmh0bWwsIGxhdGV4Mm1hdGhtbCwgdGV4Mm1hdGhtbF9leHRlcm4pCi0gCi0g Ci0taWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKLStpZiBzeXMudmVyc2lvbl9pbmZvID49 ICgzLCAwKToKLSAgICAgdW5pY29kZSA9IHN0ciAgIyBub3FhCi0gCi0gCi1kaWZmIC0tZ2l0IGEv ZG9jdXRpbHMvd3JpdGVycy9kb2N1dGlsc194bWwucHkgYi9kb2N1dGlscy93cml0ZXJzL2RvY3V0 aWxzX3htbC5weQotaW5kZXggMTIzMDZiNi4uNjBlZTA3YiAxMDA2NDQKLS0tLSBhL2RvY3V0aWxz L3dyaXRlcnMvZG9jdXRpbHNfeG1sLnB5Ci0rKysgYi9kb2N1dGlscy93cml0ZXJzL2RvY3V0aWxz X3htbC5weQotQEAgLTMwLDcgKzMwLDcgQEAgZnJvbSBTdHJpbmdJTyBpbXBvcnQgU3RyaW5nSU8K LSBpbXBvcnQgZG9jdXRpbHMKLSBmcm9tIGRvY3V0aWxzIGltcG9ydCBmcm9udGVuZCwgd3JpdGVy cywgbm9kZXMKLSAKLS1pZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApOgotK2lmIHN5cy52ZXJz aW9uX2luZm8gPj0gKDMsIDApOgotICAgICB1bmljb2RlID0gc3RyICAjIG5vcWEKLSAKLSAKLUBA IC0xODUsNyArMTg1LDcgQEAgY2xhc3MgWE1MVHJhbnNsYXRvcihub2Rlcy5HZW5lcmljTm9kZVZp c2l0b3IpOgotICAgICAgICAgc2VsZi5vdXRwdXQuYXBwZW5kKHhtbF9zdHJpbmcpCi0gICAgICAg ICBzZWxmLmRlZmF1bHRfZGVwYXJ0dXJlKG5vZGUpICAjIG9yIG5vdD8KLSAgICAgICAgICMgQ2hl Y2sgdmFsaWRpdHkgb2YgcmF3IFhNTDoKLS0gICAgICAgIGlmIGlzaW5zdGFuY2UoeG1sX3N0cmlu ZywgdW5pY29kZSkgYW5kIHN5cy52ZXJzaW9uX2luZm8gPCAoMywwKToKLSsgICAgICAgIGlmIGlz aW5zdGFuY2UoeG1sX3N0cmluZywgdW5pY29kZSkgYW5kIHN5cy52ZXJzaW9uX2luZm8gPCAoMywg MCk6Ci0gICAgICAgICAgICAgeG1sX3N0cmluZyA9IHhtbF9zdHJpbmcuZW5jb2RlKCd1dGY4JykK LSAgICAgICAgIHRyeToKLSAgICAgICAgICAgICBzZWxmLnhtbHBhcnNlci5wYXJzZShTdHJpbmdJ Tyh4bWxfc3RyaW5nKSkKLWRpZmYgLS1naXQgYS9kb2N1dGlscy93cml0ZXJzL2xhdGV4MmUvX19p bml0X18ucHkgYi9kb2N1dGlscy93cml0ZXJzL2xhdGV4MmUvX19pbml0X18ucHkKLWluZGV4IDYz NmQ0NzcuLjA1YjU1ZWIgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy93cml0ZXJzL2xhdGV4MmUvX19p bml0X18ucHkKLSsrKyBiL2RvY3V0aWxzL3dyaXRlcnMvbGF0ZXgyZS9fX2luaXRfXy5weQotQEAg LTI4LDcgKzI4LDcgQEAgZnJvbSBkb2N1dGlscy50cmFuc2Zvcm1zIGltcG9ydCB3cml0ZXJfYXV4 Ci0gZnJvbSBkb2N1dGlscy51dGlscy5tYXRoIGltcG9ydCBwaWNrX21hdGhfZW52aXJvbm1lbnQs IHVuaWNoYXIydGV4Ci0gCi0gCi0taWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKLStpZiBz eXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSAgICAgdW5pY29kZSA9IHN0ciAgIyBub3FhCi0g Ci0gCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvd3JpdGVycy9tYW5wYWdlLnB5IGIvZG9jdXRpbHMv d3JpdGVycy9tYW5wYWdlLnB5Ci1pbmRleCBlZDE2M2RlLi5kZjRmMWEzIDEwMDY0NAotLS0tIGEv ZG9jdXRpbHMvd3JpdGVycy9tYW5wYWdlLnB5Ci0rKysgYi9kb2N1dGlscy93cml0ZXJzL21hbnBh Z2UucHkKLUBAIC00Nyw3ICs0Nyw3IEBAIF9fZG9jZm9ybWF0X18gPSAncmVTdHJ1Y3R1cmVkVGV4 dCcKLSBpbXBvcnQgcmUKLSBpbXBvcnQgc3lzCi0gCi0taWYgc3lzLnZlcnNpb25faW5mbyA8ICgz LDApOgotK2lmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMCk6Ci0gICAgIHJhbmdlID0geHJhbmdl Ci0gCi0gaW1wb3J0IGRvY3V0aWxzCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvd3JpdGVycy9vZGZf b2R0L19faW5pdF9fLnB5IGIvZG9jdXRpbHMvd3JpdGVycy9vZGZfb2R0L19faW5pdF9fLnB5Ci1p bmRleCBmMzY5ODBmLi5jNzlkNGMxIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvd3JpdGVycy9vZGZf b2R0L19faW5pdF9fLnB5Ci0rKysgYi9kb2N1dGlscy93cml0ZXJzL29kZl9vZHQvX19pbml0X18u cHkKLUBAIC0zNyw3ICszNyw4IEBAIGlmIHR5cGUoc3lzLnZlcnNpb25faW5mbykhPXR5cGUoKDAs KSkgYW5kIHN5cy52ZXJzaW9uX2luZm8ubWFqb3IgPj0gMzoKLSBlbHNlOgotICAgICBmcm9tIENv bmZpZ1BhcnNlciBpbXBvcnQgQ29uZmlnUGFyc2VyCi0gICAgIGZyb20gU3RyaW5nSU8gaW1wb3J0 IFN0cmluZ0lPCi0tICAgIGZyb20gdXJsbGliMiBpbXBvcnQgdXJsb3BlbiwgSFRUUEVycm9yCi0r ICAgIGZyb20gdXJsbGliMiBpbXBvcnQgSFRUUEVycm9yCi0rICAgIGZyb20gdXJsbGliMiBpbXBv cnQgdXJsb3BlbgotIAotIAotIFZFUlNJT04gPSAnMS4wYScKLUBAIC05NDcsNyArOTQ4LDcgQEAg Y2xhc3MgT0RGVHJhbnNsYXRvcihub2Rlcy5HZW5lcmljTm9kZVZpc2l0b3IpOgotICAgICAgICAg ICAgICAgICAgICAgc2VsZi5kb2N1bWVudC5yZXBvcnRlci53YXJuaW5nKAotICAgICAgICAgICAg ICAgICAgICAgICAgICdTdHlsZSAiJXMiIGlzIG5vdCBhIHN0eWxlIHVzZWQgYnkgb2R0d3JpdGVy LicgJSAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzdHN0eWxlLCApKQotLSAgICAg ICAgICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApOgotKyAgICAgICAgICAgICAg ICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSAgICAgICAgICAgICAgICAgICAgIHNl bGYuZm9ybWF0X21hcFtyc3RzdHlsZV0gPSBmb3JtYXQKLSAgICAgICAgICAgICAgICAgZWxzZToK LSAgICAgICAgICAgICAgICAgICAgIHNlbGYuZm9ybWF0X21hcFtyc3RzdHlsZV0gPSBmb3JtYXQu ZGVjb2RlKCd1dGYtOCcpCi1kaWZmIC0tZ2l0IGEvc2V0dXAucHkgYi9zZXR1cC5weQotaW5kZXgg MTJjMzk4Yi4uZDYzNmY0NiAxMDA3NTUKLS0tLSBhL3NldHVwLnB5Ci0rKysgYi9zZXR1cC5weQot QEAgLTEzLDcgKzEzLDcgQEAgdHJ5OgotICAgICBmcm9tIGRpc3R1dGlscy5jb3JlIGltcG9ydCBz ZXR1cCwgQ29tbWFuZAotICAgICBmcm9tIGRpc3R1dGlscy5jb21tYW5kLmJ1aWxkIGltcG9ydCBi dWlsZAotICAgICBmcm9tIGRpc3R1dGlscy5jb21tYW5kLmJ1aWxkX3B5IGltcG9ydCBidWlsZF9w eQotLSAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApOgotKyAgICBpZiBzeXMudmVyc2lv bl9pbmZvID49ICgzLCAwKToKLSAgICAgICAgIGZyb20gZGlzdHV0aWxzLmNvbW1hbmQuYnVpbGRf cHkgaW1wb3J0IGJ1aWxkX3B5XzJ0bzMKLSAgICAgICAgIGZyb20gZGlzdHV0aWxzLnV0aWwgaW1w b3J0IGNvcHlkaXJfcnVuXzJ0bzMKLSAgICAgZnJvbSBkaXN0dXRpbHMuY29tbWFuZC5pbnN0YWxs X2RhdGEgaW1wb3J0IGluc3RhbGxfZGF0YQotQEAgLTI3LDcgKzI3LDcgQEAgZXhjZXB0IEltcG9y dEVycm9yOgotICAgICBzeXMuZXhpdCgxKQotIAotIAotLWlmIHN5cy52ZXJzaW9uX2luZm8gPj0g KDMsMCk6Ci0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0gICAgICMgY29weS1jb252 ZXJ0IGF1eGlsaWFyeSBweXRob24gc291cmNlcwotICAgICBjbGFzcyBjb3B5X2J1aWxkX3B5XzJ0 bzMoYnVpbGRfcHlfMnRvMyk6Ci0gICAgICAgICAiIiJDb3B5L2NvbnZlcnQgUHl0aG9uIHNvdXJj ZSBmaWxlcyBpbiBnaXZlbiBkaXJlY3RvcmllcyByZWN1cnNpdmVseS4KLUBAIC05Nyw3ICs5Nyw3 IEBAIGRlZiBkb19zZXR1cCgpOgotICAgICBrd2FyZ3NbJ2NtZGNsYXNzJ10gPSB7J2J1aWxkX2Rh dGEnOiBidWlsZF9kYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2luc3RhbGxfZGF0 YSc6IHNtYXJ0X2luc3RhbGxfZGF0YX0KLSAgICAgIyBBdXRvLWNvbnZlcnQgc291cmNlIGNvZGUg Zm9yIFB5dGhvbiAzCi0tICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0rICAgIGlm IHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotICAgICAgICAga3dhcmdzWydjbWRjbGFzcydd WydidWlsZF9weSddID0gY29weV9idWlsZF9weV8ydG8zCi0gICAgIGVsc2U6Ci0gICAgICAgICBr d2FyZ3NbJ2NtZGNsYXNzJ11bJ2J1aWxkX3B5J10gPSBidWlsZF9weQotZGlmZiAtLWdpdCBhL3Rl c3QvRG9jdXRpbHNUZXN0U3VwcG9ydC5weSBiL3Rlc3QvRG9jdXRpbHNUZXN0U3VwcG9ydC5weQot aW5kZXggMzkwZGY1Yi4uNDdiYTgzYyAxMDA2NDQKLS0tLSBhL3Rlc3QvRG9jdXRpbHNUZXN0U3Vw cG9ydC5weQotKysrIGIvdGVzdC9Eb2N1dGlsc1Rlc3RTdXBwb3J0LnB5Ci1AQCAtNTEsNyArNTEs NyBAQCBmcm9tIHBwcmludCBpbXBvcnQgcGZvcm1hdAotIAotIHRlc3Ryb290ID0gb3MucGF0aC5h YnNwYXRoKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykgb3Igb3MuY3VyZGlyKQotIG9zLmNoZGly KHRlc3Ryb290KQotLWlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0raWYgc3lzLnZlcnNp b25faW5mbyA+PSAoMywgMCk6Ci0gICAgIHN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLm5vcm1w YXRoKG9zLnBhdGguam9pbih0ZXN0cm9vdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICcuLicsICdidWlsZCcsICdsaWInKSkpCi0gICAgIHN5 cy5wYXRoLmFwcGVuZChvcy5wYXRoLm5vcm1wYXRoKG9zLnBhdGguam9pbih0ZXN0cm9vdCwgJy4u JywKLUBAIC04OSw3ICs4OSw3IEBAIGV4Y2VwdDoKLSAgICAgaW1wb3J0IHBkYgotIAotIAotLWlm IHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywg MCk6Ci0gICAgIHVuaWNvZGUgPSBzdHIgICMgbm9xYQotIAotIAotQEAgLTIwMiw3ICsyMDIsNyBA QCBjbGFzcyBDdXN0b21UZXN0Q2FzZShTdGFuZGFyZFRlc3RDYXNlKToKLSAgICAgICAgICIiImBp bnB1dGAsIGBvdXRwdXRgLCBhbmQgYGV4cGVjdGVkYCBzaG91bGQgYWxsIGJlIHN0cmluZ3MuIiIi Ci0gICAgICAgICBpZiBpc2luc3RhbmNlKGlucHV0LCB1bmljb2RlKToKLSAgICAgICAgICAgICBp bnB1dCA9IGlucHV0LmVuY29kZSgncmF3X3VuaWNvZGVfZXNjYXBlJykKLS0gICAgICAgIGlmIHN5 cy52ZXJzaW9uX2luZm8gPiAoMywwKToKLSsgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPiAo MywgMCk6Ci0gICAgICAgICAgICAgIyBBUEkgZGlmZmVyZW5jZTogUHl0aG9uIDMncyBub2RlLl9f c3RyX18gZG9lc24ndCBlc2NhcGUKLSAgICAgICAgICAgICAjYXNzZXJ0IGV4cGVjdGVkIGlzIE5v bmUgb3IgaXNpbnN0YW5jZShleHBlY3RlZCwgdW5pY29kZSkKLSAgICAgICAgICAgICBpZiBpc2lu c3RhbmNlKGV4cGVjdGVkLCBieXRlcyk6Ci1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X19pbml0X18u cHkgYi90ZXN0L3Rlc3RfX2luaXRfXy5weQotaW5kZXggODdlYzE0Zi4uOGYxZDc0OSAxMDA2NDQK LS0tLSBhL3Rlc3QvdGVzdF9faW5pdF9fLnB5Ci0rKysgYi90ZXN0L3Rlc3RfX2luaXRfXy5weQot QEAgLTE2LDcgKzE2LDcgQEAgaW1wb3J0IGRvY3V0aWxzCi0gaW1wb3J0IGRvY3V0aWxzLnV0aWxz Ci0gCi0gCi0taWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKLStpZiBzeXMudmVyc2lvbl9p bmZvID49ICgzLCAwKToKLSAgICAgdW5pY29kZSA9IHN0ciAgIyBub3FhCi0gCi0gCi1kaWZmIC0t Z2l0IGEvdGVzdC90ZXN0X2NvbW1hbmRfbGluZS5weSBiL3Rlc3QvdGVzdF9jb21tYW5kX2xpbmUu cHkKLWluZGV4IGViNmNhOGEuLmQ5ZTA4NTAgMTAwNjQ0Ci0tLS0gYS90ZXN0L3Rlc3RfY29tbWFu ZF9saW5lLnB5Ci0rKysgYi90ZXN0L3Rlc3RfY29tbWFuZF9saW5lLnB5Ci1AQCAtMzMsNyArMzMs NyBAQCBjbGFzcyBDb21tYW5kTGluZUVuY29kaW5nVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgot ICAgICAgICAgaWYgYXJndl9lbmNvZGluZyA9PSAnYXNjaWknOiAjIGNhbm5vdCB0ZXN0Ci0gICAg ICAgICAgICAgcmV0dXJuCi0gICAgICAgICBzeXMuYXJndi5hcHBlbmQoJy0tc291cmNlLXVybD10 ZXN0LnR4dCcpICMgcHVyZSBBU0NJSSBhcmd1bWVudAotLSAgICAgICAgaWYgc3lzLnZlcnNpb25f aW5mbyA8ICgzLDApOgotKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCAwKToKLSAg ICAgICAgICAgICBzeXMuYXJndi5hcHBlbmQodSctLXRpdGxlPURvcm5yw7ZzY2hlbicuZW5jb2Rl KGFyZ3ZfZW5jb2RpbmcpKQotICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICBzeXMuYXJndi5h cHBlbmQodSctLXRpdGxlPURvcm5yw7ZzY2hlbicpCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X2Vy cm9yX3JlcG9ydGluZy5weSBiL3Rlc3QvdGVzdF9lcnJvcl9yZXBvcnRpbmcucHkKLWluZGV4IDRi MzM3ZTMuLmQxNTA5YzYgMTAwNjQ0Ci0tLS0gYS90ZXN0L3Rlc3RfZXJyb3JfcmVwb3J0aW5nLnB5 Ci0rKysgYi90ZXN0L3Rlc3RfZXJyb3JfcmVwb3J0aW5nLnB5Ci1AQCAtMjUsMTAgKzI1LDEwIEBA IGluc3RhbmNlcyBsaWtlLCBlLmcuLCA6OgotIHVubGVzcyB0aGUgbWluaW1hbCByZXF1aXJlZCBQ eXRob24gdmVyc2lvbiBoYXMgdGhpcyBwcm9ibGVtIGZpeGVkLgotICIiIgotIAotLWltcG9ydCB1 bml0dGVzdAotIGltcG9ydCBzeXMKLSBpbXBvcnQgb3MKLSBpbXBvcnQgY29kZWNzCi0raW1wb3J0 IHVuaXR0ZXN0Ci0gZnJvbSBpbyBpbXBvcnQgU3RyaW5nSU8sIEJ5dGVzSU8KLSAKLSBpbXBvcnQg RG9jdXRpbHNUZXN0U3VwcG9ydCAgICAgICAgICAgICAgIyBtdXN0IGJlIGltcG9ydGVkIGJlZm9y ZSBkb2N1dGlscwotQEAgLTQ2LDcgKzQ2LDcgQEAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLDAp OiAjIHByb2JsZW1zIHNvbHZlZCBpbiBweTNrCi0gICAgICAgICBwcmludCgnY2Fubm90IHRlc3Qg ZXJyb3IgcmVwb3J0aW5nIHdpdGggcHJvYmxlbWF0aWMgbG9jYWxlcyxcbicKLSAgICAgICAgICAg ICAnYGltcG9ydCBsb2NhbGVgIGZhaWxlZC4nKQotIAotLWlmIHN5cy52ZXJzaW9uX2luZm8gPj0g KDMsMCk6Ci0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0gICAgIHVuaWNvZGUgPSBz dHIgICMgbm9xYQotIAotIAotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9mdW5jdGlvbmFsLnB5IGIv dGVzdC90ZXN0X2Z1bmN0aW9uYWwucHkKLWluZGV4IDVkM2JlYjkuLmNkYzc1YTAgMTAwNzU1Ci0t LS0gYS90ZXN0L3Rlc3RfZnVuY3Rpb25hbC5weQotKysrIGIvdGVzdC90ZXN0X2Z1bmN0aW9uYWwu cHkKLUBAIC0xNjAsNyArMTYwLDcgQEAgZXhwZWN0ZWQgb3V0cHV0IGFuZCBjaGVjayBpdCBpbjoK LSAgICAgICAgIG91dHB1dCA9IGRvY3V0aWxzLmNvcmUucHVibGlzaF9maWxlKCoqcGFyYW1zKQot ICAgICAgICAgIyBlbnN1cmUgb3V0cHV0IGlzIHVuaWNvZGUKLSAgICAgICAgIG91dHB1dF9lbmNv ZGluZyA9IHBhcmFtcy5nZXQoJ291dHB1dF9lbmNvZGluZycsICd1dGYtOCcpCi0tICAgICAgICBp ZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsMCk6Ci0rICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZv IDwgKDMsIDApOgotICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgb3V0cHV0ID0g b3V0cHV0LmRlY29kZShvdXRwdXRfZW5jb2RpbmcpCi0gICAgICAgICAgICAgZXhjZXB0IFVuaWNv ZGVEZWNvZGVFcnJvcjoKLUBAIC0xNzIsMTQgKzE3MiwxNCBAQCBleHBlY3RlZCBvdXRwdXQgYW5k IGNoZWNrIGl0IGluOgotICAgICAgICAgbm9fZXhwZWN0ZWQgPSBzZWxmLm5vX2V4cGVjdGVkX3Rl bXBsYXRlICUgewotICAgICAgICAgICAgICdleHAnOiBleHBlY3RlZF9wYXRoLCAnb3V0JzogcGFy YW1zWydkZXN0aW5hdGlvbl9wYXRoJ119Ci0gICAgICAgICBzZWxmLmFzc2VydFRydWUob3MuYWNj ZXNzKGV4cGVjdGVkX3BhdGgsIG9zLlJfT0spLCBub19leHBlY3RlZCkKLS0gICAgICAgIGlmIHN5 cy52ZXJzaW9uX2luZm8gPCAoMywwKToKLSsgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAo MywgMCk6Ci0gICAgICAgICAgICAgZiA9IG9wZW4oZXhwZWN0ZWRfcGF0aCwgJ3InKQotICAgICAg ICAgZWxzZTogIyBzYW1wbGVzIGFyZSBVVEY4IGVuY29kZWQuICdyYicgbGVhZHMgdG8gZXJyb3Jz IHdpdGggUHl0aG9uIDMhCi0gICAgICAgICAgICAgZiA9IG9wZW4oZXhwZWN0ZWRfcGF0aCwgJ3In LCBlbmNvZGluZz0ndXRmLTgnKQotICAgICAgICAgIyBOb3JtYWxpemUgbGluZSBlbmRpbmdzOgot ICAgICAgICAgZXhwZWN0ZWQgPSAnXG4nLmpvaW4oZi5yZWFkKCkuc3BsaXRsaW5lcygpKQotICAg ICAgICAgZi5jbG9zZSgpCi0tICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsMCk6Ci0r ICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDApOgotICAgICAgICAgICAgIHRyeToK LSAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSBleHBlY3RlZC5kZWNvZGUob3V0cHV0X2VuY29k aW5nKQotICAgICAgICAgICAgIGV4Y2VwdCBVbmljb2RlRGVjb2RlRXJyb3I6Ci1AQCAtMTkzLDcg KzE5Myw3IEBAIGV4cGVjdGVkIG91dHB1dCBhbmQgY2hlY2sgaXQgaW46Ci0gICAgICAgICAgICAg ZGlmZiA9ICcnLmpvaW4oZGlmZmxpYi51bmlmaWVkX2RpZmYoCi0gICAgICAgICAgICAgICAgIGV4 cGVjdGVkLnNwbGl0bGluZXMoVHJ1ZSksIG91dHB1dC5zcGxpdGxpbmVzKFRydWUpLAotICAgICAg ICAgICAgICAgICBleHBlY3RlZF9wYXRoLCBwYXJhbXNbJ2Rlc3RpbmF0aW9uX3BhdGgnXSkpCi0t ICAgICAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLDApOgotKyAgICAgICAgICAgIGlm IHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMCk6Ci0gICAgICAgICAgICAgICAgIGRpZmYgPSBkaWZm LmVuY29kZShzeXMuc3RkZXJyLmVuY29kaW5nIG9yICdhc2NpaScsICdyZXBsYWNlJykKLSAgICAg ICAgICAgICBwcmludCgnXG4lczonICUgKHNlbGYsKSwgZmlsZT1zeXMuc3RkZXJyKQotICAgICAg ICAgICAgIHByaW50KGRpZmYsIGZpbGU9c3lzLnN0ZGVycikKLWRpZmYgLS1naXQgYS90ZXN0L3Rl c3RfaW8ucHkgYi90ZXN0L3Rlc3RfaW8ucHkKLWluZGV4IDczN2ExOWQuLjYyOTQ2MTMgMTAwNzU1 Ci0tLS0gYS90ZXN0L3Rlc3RfaW8ucHkKLSsrKyBiL3Rlc3QvdGVzdF9pby5weQotQEAgLTEwMyw3 ICsxMDMsNyBAQCBwcmludCgiaGVsbG8gd29ybGQiKQotICAgICAgICAgIyBpZiBubyBlbmNvZGlu ZyBpcyBnaXZlbiwgdHJ5IGRlY29kaW5nIHdpdGggdXRmODoKLSAgICAgICAgIGlucHV0ID0gaW8u RmlsZUlucHV0KHNvdXJjZV9wYXRoPSdmdW5jdGlvbmFsL2lucHV0L2N5cmlsbGljLnR4dCcpCi0g ICAgICAgICBkYXRhID0gaW5wdXQucmVhZCgpCi0tICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZv IDwgKDMsMCk6Ci0rICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDApOgotICAgICAg ICAgICAgICMgaW4gUHkzaywgdGhlIGxvY2FsZSBlbmNvZGluZyBpcyB1c2VkIHdpdGhvdXQgLS1p bnB1dC1lbmNvZGluZwotICAgICAgICAgICAgICMgc2tpcHBpbmcgdGhlIGhldXJpc3RpYwotICAg ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5wdXQuc3VjY2Vzc2Z1bF9lbmNvZGluZywgJ3V0 Zi04JykKLUBAIC0xMTEsNyArMTExLDcgQEAgcHJpbnQoImhlbGxvIHdvcmxkIikKLSAgICAgZGVm IHRlc3RfaGV1cmlzdGljc19ub191dGY4KHNlbGYpOgotICAgICAgICAgIyBpZiBubyBlbmNvZGlu ZyBpcyBnaXZlbiBhbmQgZGVjb2Rpbmcgd2l0aCB1dGY4IGZhaWxzLAotICAgICAgICAgIyB1c2Ug ZWl0aGVyIHRoZSBsb2NhbGUgZW5jb2RpbmcgKGlmIHNwZWNpZmllZCkgb3IgbGF0aW4tMToKLS0g ICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCkgYW5kIGxvY2FsZV9lbmNvZGluZyAh PSAidXRmOCI6Ci0rICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKSBhbmQgbG9j YWxlX2VuY29kaW5nICE9ICJ1dGY4IjoKLSAgICAgICAgICAgICAjIGluIFB5M2ssIHRoZSBsb2Nh bGUgZW5jb2RpbmcgaXMgdXNlZCB3aXRob3V0IC0taW5wdXQtZW5jb2RpbmcKLSAgICAgICAgICAg ICAjIHNraXBwaW5nIHRoZSBoZXVyaXN0aWMgdW5sZXNzIGRlY29kaW5nIGZhaWxzLgotICAgICAg ICAgICAgIHJldHVybgotQEAgLTE2OSw3ICsxNjksNyBAQCBjbGFzcyBPdXRwdXRUZXN0cyh1bml0 dGVzdC5UZXN0Q2FzZSk6Ci0gICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYudWRyYWluLmdl dHZhbHVlKCksIHNlbGYudWRhdGEpCi0gCi0gICAgIGRlZiB0ZXN0X3dyaXRlX3V0Zjgoc2VsZik6 Ci0tICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApOgotKyAgICAgICAgaWYgc3lz LnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0gICAgICAgICAgICAgZm8gPSBpby5GaWxlT3V0cHV0 KGRlc3RpbmF0aW9uPXNlbGYudWRyYWluLCBlbmNvZGluZz0ndXRmOCcsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGF1dG9jbG9zZT1GYWxzZSkKLSAgICAgICAgICAgICBmby53cml0 ZShzZWxmLnVkYXRhKQotQEAgLTE4OSw3ICsxODksNyBAQCBjbGFzcyBPdXRwdXRUZXN0cyh1bml0 dGVzdC5UZXN0Q2FzZSk6Ci0gICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuYmRyYWluLmdl dHZhbHVlKCksIHNlbGYuYmRhdGEpCi0gCi0gICAgICMgVGVzdCBmb3IgUHl0aG9uIDMgZmVhdHVy ZXM6Ci0tICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0rICAgIGlmIHN5cy52ZXJz aW9uX2luZm8gPj0gKDMsIDApOgotICAgICAgICAgZGVmIHRlc3Rfd3JpdGVfYnl0ZXNfdG9fc3Rk b3V0KHNlbGYpOgotICAgICAgICAgICAgICMgdHJ5IHdyaXRpbmcgZGF0YSB0byBgZGVzdGluYXRp b24uYnVmZmVyYCwgaWYgZGF0YSBpcwotICAgICAgICAgICAgICMgaW5zdGFuY2Ugb2YgYGJ5dGVz YCBhbmQgd3JpdGluZyB0byBgZGVzdGluYXRpb25gIGZhaWxzOgotZGlmZiAtLWdpdCBhL3Rlc3Qv dGVzdF9sYW5ndWFnZS5weSBiL3Rlc3QvdGVzdF9sYW5ndWFnZS5weQotaW5kZXggNDU1MzU3YS4u MzFhYzYxMyAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9sYW5ndWFnZS5weQotKysrIGIvdGVzdC90 ZXN0X2xhbmd1YWdlLnB5Ci1AQCAtMjYsNyArMjYsNyBAQCBfcmVwb3J0ZXIgPSBkb2N1dGlscy51 dGlscy5uZXdfcmVwb3J0ZXIoJycsIF9zZXR0aW5ncykKLSAKLSByZWZlcmVuY2VfbGFuZ3VhZ2Ug PSAnZW4nCi0gCi0taWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKLStpZiBzeXMudmVyc2lv bl9pbmZvID49ICgzLCAwKToKLSAgICAgdW5pY29kZSA9IHN0ciAgIyBub3FhCi0gCi0gCi1kaWZm IC0tZ2l0IGEvdGVzdC90ZXN0X25vZGVzLnB5IGIvdGVzdC90ZXN0X25vZGVzLnB5Ci1pbmRleCA2 ODA1Nzk5Li5lYzg4MjRlIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X25vZGVzLnB5Ci0rKysgYi90 ZXN0L3Rlc3Rfbm9kZXMucHkKLUBAIC0xNyw3ICsxNyw3IEBAIGZyb20gRG9jdXRpbHNUZXN0U3Vw cG9ydCBpbXBvcnQgbm9kZXMsIHV0aWxzCi0gCi0gZGVidWcgPSBGYWxzZQotIAotLWlmIHN5cy52 ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0g ICAgIHVuaWNvZGUgPSBzdHIgICMgbm9xYQotIAotIAotQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3Mg VGV4dFRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo c2VsZi50ZXh0LnNob3J0cmVwcigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgciI8I3Rl eHQ6ICdMaW5lIDEuXG5MaW5lIDIuJz4iKQotICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChub2Rl cy5yZXBydW5pY29kZSgnZm9vJyksIHUnZm9vJykKLS0gICAgICAgIGlmIHN5cy52ZXJzaW9uX2lu Zm8gPCAoMywwKToKLSsgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMCk6Ci0gICAg ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKHNlbGYudW5pY29kZV90ZXh0KSwgciI8I3Rl eHQ6ICdNXHhmNmhyZW4nPiIpCi0gICAgICAgICBlbHNlOgotICAgICAgICAgICAgIHNlbGYuYXNz ZXJ0RXF1YWwocmVwcihzZWxmLnVuaWNvZGVfdGV4dCksIHUiPCN0ZXh0OiAnTcO2aHJlbic+IikK LUBAIC02NSw3ICs2NSw3IEBAIGNsYXNzIFRleHRUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0g ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmlwcGVkMiwgdSdzIG5vYycpCi0gCi0gICAgIGRl ZiB0ZXN0X2FzY2lpcmVzdHJpY3Rpb24oc2VsZik6Ci0tICAgICAgICBpZiBzeXMudmVyc2lvbl9p bmZvIDwgKDMsMCk6Ci0rICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDApOgotICAg ICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFVuaWNvZGVEZWNvZGVFcnJvciwgbm9kZXMuVGV4 dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiJ2hvbCVzJyAlIGNocigyMjQpKQot ICAgICAgICAgZWxzZToKLUBAIC05OCw3ICs5OCw3IEBAIGNsYXNzIEVsZW1lbnRUZXN0cyh1bml0 dGVzdC5UZXN0Q2FzZSk6Ci0gICAgICAgICBkZWwgZWxlbWVudFsnYXR0ciddCi0gICAgICAgICBl bGVtZW50WydtYXJrJ10gPSB1J1x1MjAyMicKLSAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVw cihlbGVtZW50KSwgJzxFbGVtZW50OiA+JykKLS0gICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8g PCAoMywwKToKLSsgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMCk6Ci0gICAgICAg ICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoZWxlbWVudCksICc8RWxlbWVudCBtYXJrPSJcXHUy MDIyIi8+JykKLSAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChz dHIoZWxlbWVudCksIHUnPEVsZW1lbnQgbWFyaz0iXHUyMDIyIi8+JykKLUBAIC0xMDYsNyArMTA2 LDcgQEAgY2xhc3MgRWxlbWVudFRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAgICAgIHNl bGYuYXNzZXJ0RXF1YWwoZG9tLnRveG1sKCksIHUnPEVsZW1lbnQgbWFyaz0iXHUyMDIyIi8+JykK LSAgICAgICAgIGRvbS51bmxpbmsoKQotICAgICAgICAgZWxlbWVudFsnbmFtZXMnXSA9IFsnbm9i b2R5JywgdSfQuNC80Y8nLCB1J27DpHMnXQotLSAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8 ICgzLDApOgotKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCAwKToKLSAgICAgICAg ICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcHIoZWxlbWVudCksCi0gICAgICAgICAgICAgICAgICc8 RWxlbWVudCAibm9ib2R5OyBcXHUwNDM4XFx1MDQzY1xcdTA0NGY7IG5cXHhlNHMiOiA+JykKLSAg ICAgICAgIGVsc2U6Ci1AQCAtMTE3LDcgKzExNyw3IEBAIGNsYXNzIEVsZW1lbnRUZXN0cyh1bml0 dGVzdC5UZXN0Q2FzZSk6Ci0gICAgICAgICBlbGVtZW50ID0gbm9kZXMuRWxlbWVudCgndGV4dFxu bW9yZScsIG5vZGVzLlRleHQoJ3RleHRcbm1vcmUnKSkKLSAgICAgICAgIHVlbGVtZW50ID0gbm9k ZXMuRWxlbWVudCh1J2dyw7xuJywgbm9kZXMuVGV4dCh1J2dyw7xuJykpCi0gICAgICAgICBzZWxm LmFzc2VydEVxdWFsKHJlcHIoZWxlbWVudCksIHIiPEVsZW1lbnQ6IDwjdGV4dDogJ3RleHRcbm1v cmUnPj4iKQotLSAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLDApOgotKyAgICAgICAg aWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCAwKToKLSAgICAgICAgICAgICBzZWxmLmFzc2VydEVx dWFsKHJlcHIodWVsZW1lbnQpLCAiPEVsZW1lbnQ6IDwjdGV4dDogJ2dyXFx4ZmNuJz4+IikKLSAg ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKHVlbGVtZW50 KSwgdSI8RWxlbWVudDogPCN0ZXh0OiAnZ3LDvG4nPj4iKQotQEAgLTM0MSw3ICszNDEsNyBAQCBj bGFzcyBNaXNjVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgotICAgICAgICAgc2VsZi5hc3NlcnRU cnVlKGlzaW5zdGFuY2Uobm9kZXMucmVwcnVuaWNvZGUoJ2ZvbycpLCB1bmljb2RlKSkKLSAgICAg ICAgIHNlbGYuYXNzZXJ0RXF1YWwobm9kZXMucmVwcnVuaWNvZGUoJ2ZvbycpLCB1J2ZvbycpCi0g ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5vZGVzLnJlcHJ1bmljb2RlKHUnTcO2aHJlJyksIHUn TcO2aHJlJykKLS0gICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywwKTogIyBzdHJpcCBs ZWFkaW5nICJ1IiBmcm9tIHJlcHJlc2VudGF0aW9uCi0rICAgICAgICBpZiBzeXMudmVyc2lvbl9p bmZvIDwgKDMsIDApOiAjIHN0cmlwIGxlYWRpbmcgInUiIGZyb20gcmVwcmVzZW50YXRpb24KLSAg ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcHIobm9kZXMucmVwcnVuaWNvZGUodSdNw7Zo cmUnKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXByKHUnTcO2aHJlJylbMTpd KQotICAgICAgICAgZWxzZTogIyBubyBjaGFuZ2UgdG8gYHVuaWNvZGVgIHVuZGVyIFB5dGhvbiAz awotQEAgLTM1MCw3ICszNTAsNyBAQCBjbGFzcyBNaXNjVGVzdHModW5pdHRlc3QuVGVzdENhc2Up OgotICAgICBkZWYgdGVzdF9lbnN1cmVfc3RyKHNlbGYpOgotICAgICAgICAgc2VsZi5hc3NlcnRU cnVlKGlzaW5zdGFuY2Uobm9kZXMuZW5zdXJlX3N0cih1J8O8YmVyJyksIHN0cikpCi0gICAgICAg ICBzZWxmLmFzc2VydEVxdWFsKG5vZGVzLmVuc3VyZV9zdHIoJ292ZXInKSwgJ292ZXInKQotLSAg ICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLDApOiAjIHN0cmlwIGxlYWRpbmcgInUiIGZy b20gcmVwcmVzZW50YXRpb24KLSsgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMCk6 ICMgc3RyaXAgbGVhZGluZyAidSIgZnJvbSByZXByZXNlbnRhdGlvbgotICAgICAgICAgICAgIHNl bGYuYXNzZXJ0RXF1YWwobm9kZXMuZW5zdXJlX3N0cih1J8O8YmVyJyksIHInXHhmY2JlcicpCi0g ICAgICAgICBlbHNlOgotICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobm9kZXMuZW5zdXJl X3N0cih1J8O8YmVyJyksIHInw7xiZXInKQotZGlmZiAtLWdpdCBhL3Rlc3QvdGVzdF9wYXJzZXJz L3Rlc3RfcGFyc2VyLnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9wYXJzZXIucHkKLWluZGV4 IDZjNTc5NjMuLmQyMTQyYjQgMTAwNjQ0Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3Bh cnNlci5weQotKysrIGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9wYXJzZXIucHkKLUBAIC0yMyw3 ICsyMyw3IEBAIGNsYXNzIFJzdFBhcnNlclRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAg ICAgIGRvY3VtZW50ID0gdXRpbHMubmV3X2RvY3VtZW50KCd0ZXN0IGRhdGEnLCBmcm9udGVuZC5P cHRpb25QYXJzZXIoCi0gICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRzPShwYXJzZXIsICkp LmdldF9kZWZhdWx0X3ZhbHVlcygpKQotIAotLSAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8 ICgzLDApOgotKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCAwKToKLSAgICAgICAg ICAgICAjIHN1cHBseWluZyBzdHJpbmcgaW5wdXQgaXMgc3VwcG9ydGVkLCBidXQgb25seSBpZiBh c2NpaS1kZWNvZGFibGUKLSAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhVbmljb2RlRGVj b2RlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VyLnBhcnNlLCBi J2hvbCVzJyAlIGNocigyMjQpLCBkb2N1bWVudCkKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3RfcGFy c2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9pbmNsdWRlLnB5IGIvdGVzdC90ZXN0 X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3RfaW5jbHVkZS5weQotaW5kZXgg OTJkMDE5My4uMzFhNWMwMiAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0 L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2luY2x1ZGUucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJz L3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X2luY2x1ZGUucHkKLUBAIC0xNiw3ICsxNiw3 IEBAIGZyb20gZG9jdXRpbHMucGFyc2Vycy5yc3QgaW1wb3J0IHN0YXRlcwotIGZyb20gZG9jdXRp bHMudXRpbHMuY29kZV9hbmFseXplciBpbXBvcnQgd2l0aF9weWdtZW50cwotIAotIAotLWlmIHN5 cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6Ci0raWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6 Ci0gICAgIHVuaWNociA9IGNociAgIyBub3FhCi0gCi0gCi1AQCAtNDgsNyArNDgsNyBAQCBpbmNs dWRlX2xpdGVyYWwgPSBteWRpcignaW5jbHVkZV9saXRlcmFsLnR4dCcpCi0gdXRmXzE2X2ZpbGUg PSBteWRpcigndXRmLTE2LmNzdicpCi0gdXRmXzE2X2Vycm9yX3N0ciA9ICgiVW5pY29kZURlY29k ZUVycm9yOiAnYXNjaWknIGNvZGVjIGNhbid0IGRlY29kZSBieXRlIDB4ZmUgIgotICAgICAgICAg ICAgICAgICAgICAgImluIHBvc2l0aW9uIDA6IG9yZGluYWwgbm90IGluIHJhbmdlKDEyOCkiKQot LWlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywwKToKLStpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMs IDApOgotICAgICB1dGZfMTZfZXJyb3Jfc3RyID0gKCJVbmljb2RlRXJyb3I6IFVuYWJsZSB0byBk ZWNvZGUgaW5wdXQgZGF0YS4gICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAiVHJpZWQgdGhl IGZvbGxvd2luZyBlbmNvZGluZ3M6ICdhc2NpaScuXG4iCi0gICAgICAgICAgICAgICAgICAgICAg ICAgIiAgICAgICAgICAgICglcykiICUgdXRmXzE2X2Vycm9yX3N0cikKLWRpZmYgLS1naXQgYS90 ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9yYXcucHkgYi90 ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9yYXcucHkKLWlu ZGV4IDJkYTk2MmEuLmI4NmIyM2YgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0 X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF9yYXcucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJz L3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3Jhdy5weQotQEAgLTI2LDcgKzI2LDcgQEAg dXRmXzE2X2ZpbGUgPSBvcy5wYXRoLmpvaW4obXlkaXIsICd1dGYtMTYuY3N2JykKLSB1dGZfMTZf ZmlsZV9yZWwgPSBEb2N1dGlsc1Rlc3RTdXBwb3J0LnV0aWxzLnJlbGF0aXZlX3BhdGgoTm9uZSwg dXRmXzE2X2ZpbGUpCi0gdXRmXzE2X2Vycm9yX3N0ciA9ICgiVW5pY29kZURlY29kZUVycm9yOiAn YXNjaWknIGNvZGVjIGNhbid0IGRlY29kZSBieXRlIDB4ZmUgIgotICAgICAgICAgICAgICAgICAg ICAgImluIHBvc2l0aW9uIDA6IG9yZGluYWwgbm90IGluIHJhbmdlKDEyOCkiKQotLWlmIHN5cy52 ZXJzaW9uX2luZm8gPCAoMywwKToKLStpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDApOgotICAg ICB1dGZfMTZfZXJyb3Jfc3RyID0gKCJVbmljb2RlRXJyb3I6IFVuYWJsZSB0byBkZWNvZGUgaW5w dXQgZGF0YS4gICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAiVHJpZWQgdGhlIGZvbGxvd2lu ZyBlbmNvZGluZ3M6ICdhc2NpaScuXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAg ICAgICAgICglcykiICUgdXRmXzE2X2Vycm9yX3N0cikKLWRpZmYgLS1naXQgYS90ZXN0L3Rlc3Rf cGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF90YWJsZXMucHkgYi90ZXN0L3Rl c3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF90YWJsZXMucHkKLWluZGV4 IGNjNDUwZjMuLmNhMjdmOWEgMTAwNzU1Ci0tLS0gYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3Jz dC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF90YWJsZXMucHkKLSsrKyBiL3Rlc3QvdGVzdF9wYXJzZXJz L3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3RhYmxlcy5weQotQEAgLTE4LDcgKzE4LDcg QEAgZnJvbSBkb2N1dGlscy5wYXJzZXJzLnJzdC5kaXJlY3RpdmVzIGltcG9ydCB0YWJsZXMKLSBm cm9tIC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLSAKLSAKLS1pZiBzeXMudmVyc2lvbl9p bmZvID49ICgzLDApOgotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotICAgICB1bmlj b2RlID0gc3RyICAjIG5vcWEKLSAgICAgdW5pY2hyID0gY2hyICAjIG5vcWEKLSAKLWRpZmYgLS1n aXQgYS90ZXN0L3Rlc3RfcGFyc2Vycy90ZXN0X3JzdC90ZXN0X2RpcmVjdGl2ZXMvdGVzdF91bmlj b2RlLnB5IGIvdGVzdC90ZXN0X3BhcnNlcnMvdGVzdF9yc3QvdGVzdF9kaXJlY3RpdmVzL3Rlc3Rf dW5pY29kZS5weQotaW5kZXggNTc2YmMxZC4uYjk5YjVkMCAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVz dF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3VuaWNvZGUucHkKLSsrKyBi L3Rlc3QvdGVzdF9wYXJzZXJzL3Rlc3RfcnN0L3Rlc3RfZGlyZWN0aXZlcy90ZXN0X3VuaWNvZGUu cHkKLUBAIC0xNCw3ICsxNCw3IEBAIGltcG9ydCBzeXMKLSBmcm9tIC4gaW1wb3J0IERvY3V0aWxz VGVzdFN1cHBvcnQKLSAKLSAKLS1pZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApOgotK2lmIHN5 cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotICAgICB1bmljaHIgPSBjaHIgICMgbm9xYQotIAot IAotZGlmZiAtLWdpdCBhL3Rvb2xzL2Rldi9jcmVhdGVfdW5pbWFwLnB5IGIvdG9vbHMvZGV2L2Ny ZWF0ZV91bmltYXAucHkKLWluZGV4IDgwODg2MWQuLjc0ZThiYzcgMTAwNzU1Ci0tLS0gYS90b29s cy9kZXYvY3JlYXRlX3VuaW1hcC5weQotKysrIGIvdG9vbHMvZGV2L2NyZWF0ZV91bmltYXAucHkK LUBAIC0xNCw3ICsxNCw3IEBAIGZyb20geG1sLmRvbSBpbXBvcnQgbWluaWRvbQotIGltcG9ydCBz eXMKLSBpbXBvcnQgcHByaW50Ci0gCi0taWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKLStp ZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSAgICAgdW5pY29kZSA9IHN0ciAgI25vcWEK LSBlbHNlOgotICAgICBieXRlcyA9IHN0ciAgIyBub3FhCi1AQCAtMjIsNyArMjIsNyBAQCBlbHNl OgotIAotIAotIGRlZiB3KHMpOgotLSAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApIGFu ZCBpc2luc3RhbmNlKHMsIHVuaWNvZGUpOgotKyAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgz LCAwKSBhbmQgaXNpbnN0YW5jZShzLCB1bmljb2RlKToKLSAgICAgICAgIHMgPSBzLmVuY29kZSgn dXRmOCcpCi0gICAgIHN5cy5zdGRvdXQud3JpdGUocykKLSAKLWRpZmYgLS1naXQgYS90b29scy9k ZXYvZ2VuZXJhdGVfcHVuY3R1YXRpb25fY2hhcnMucHkgYi90b29scy9kZXYvZ2VuZXJhdGVfcHVu Y3R1YXRpb25fY2hhcnMucHkKLWluZGV4IGNmZTk3ZGYuLjlmMjExYjkgMTAwNjQ0Ci0tLS0gYS90 b29scy9kZXYvZ2VuZXJhdGVfcHVuY3R1YXRpb25fY2hhcnMucHkKLSsrKyBiL3Rvb2xzL2Rldi9n ZW5lcmF0ZV9wdW5jdHVhdGlvbl9jaGFycy5weQotQEAgLTM4LDcgKzM4LDcgQEAgZnJvbSBfX2Z1 dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgotIGltcG9ydCBzeXMKLSBpbXBvcnQgdW5pY29k ZWRhdGEKLSAKLS1pZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLDApOgotK2lmIHN5cy52ZXJzaW9u X2luZm8gPj0gKDMsIDApOgotICAgICB1bmljaHIgPSBjaHIgICMgdW5pY2hyIG5vdCBhdmFpbGFi bGUgaW4gUHkzawotIGVsc2U6Ci0gICAgIGltcG9ydCBjb2RlY3MKLUBAIC0zNjEsNyArMzYxLDcg QEAgaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAjIEltcG9ydCB0aGUgcHVuY3R1YXRpb25f Y2hhcnMgbW9kdWxlIGZyb20gdGhlIHNvdXJjZQotICMgb3IgUHkzayBidWlsZCBwYXRoIGZvciBs b2NhbCBQeXRob24gbW9kdWxlczo6Ci0gCi0tICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwg KDMsMCk6Ci0rICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDApOgotICAgICAgICAg ICAgIHN5cy5wYXRoLmluc2VydCgwLCAnLi4vLi4vZG9jdXRpbHMnKQotICAgICAgICAgZWxzZToK LSAgICAgICAgICAgICBzeXMucGF0aC5pbnNlcnQoMCwgJy4uLy4uL2J1aWxkL2xpYicpCi1kaWZm IC0tZ2l0IGEvdG9vbHMvZGV2L3VuaWNvZGUycnN0c3Vicy5weSBiL3Rvb2xzL2Rldi91bmljb2Rl MnJzdHN1YnMucHkKLWluZGV4IGFjMzhiZjQuLjAyOGFmNzggMTAwNzU1Ci0tLS0gYS90b29scy9k ZXYvdW5pY29kZTJyc3RzdWJzLnB5Ci0rKysgYi90b29scy9kZXYvdW5pY29kZTJyc3RzdWJzLnB5 Ci1AQCAtNDgsNyArNDgsNyBAQCBkZWYgbWFpbihhcmd2PU5vbmUpOgotICAgICAgICAgaW5wYXRo ID0gJ3VuaWNvZGUueG1sJwotICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoaW5wYXRoKToKLSAg ICAgICAgIHVzYWdlKGFyZ3ZbMF0sIDEsICdObyBzdWNoIGZpbGU6ICIlcyIuJyAlIGlucGF0aCkK LS0gICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKLSsgICAgaWYgc3lzLnZlcnNpb25f aW5mbyA+PSAoMywgMCk6Ci0gICAgICAgICBpbmZpbGUgPSBvcGVuKGlucGF0aCwgbW9kZT0ncmIn KQotICAgICBlbHNlOgotICAgICAgICAgaW5maWxlID0gb3BlbihpbnBhdGgpCi0tLSAKLTIuMjQu MC4zNzUuZ2ViNWFlNjhkNDEKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9weXRob24tZG9jdXRpbHMv cGF0Y2hlcy8wMDIwLXB5My1IYW5kbGUtU3RyaW5nSU8tdG8taW8tdHJhbnNpdGlvbi5wYXRjaCBi L3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAyMC1weTMtSGFuZGxlLVN0cmluZ0lP LXRvLWlvLXRyYW5zaXRpb24ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2 NDA2M2RkNWMzLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRj aGVzLzAwMjAtcHkzLUhhbmRsZS1TdHJpbmdJTy10by1pby10cmFuc2l0aW9uLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsNzggKzAsMCBAQAotRnJvbSAwMzVjNjcxMDVmM2NiZDEyY2NmNmE3MDhm MzhmMWY3ZjVhMTdjNjk5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3RlcGhlbiBG aW51Y2FuZSA8c3RlcGhlbkB0aGF0Lmd1cnU+Ci1EYXRlOiBXZWQsIDIwIE5vdiAyMDE5IDAwOjEx OjA0ICswNzAwCi1TdWJqZWN0OiBbUEFUQ0ggMjAvMjZdIHB5MzogSGFuZGxlICdTdHJpbmdJTycg dG8gJ2lvJyB0cmFuc2l0aW9uLgotCi1UaGlzIGlzbid0IHNvIG11Y2ggYSByZW5hbWUgYXMgYSBt aWdyYXRpb24sIHNpbmNlIHRoaW5ncyBkb24ndCBkbyB0aGUKLXNhbWUgdGhpbmcuCi0KLUJhc2Vk IG9uIHBhdGNoIGJ5OiBTdGVwaGVuIEZpbnVjYW5lIDxzdGVwaGVuQHRoYXQuZ3VydT4KLQotZ2l0 LXN2bi1pZDogaHR0cDovL3N2bi5jb2RlLnNmLm5ldC9wL2RvY3V0aWxzL2NvZGUvdHJ1bmtAODM2 OCA5Mjk1NDNmNi1lNGYyLTAzMTAtOThhNi1iYTNiZDNkZDFkMDQKLVNpZ25lZC1vZmYtYnk6IERv YW4gVHJhbiBDb25nIERhbmggPGNvbmdkYW5ocXhAZ21haWwuY29tPgotLS0tCi0gZG9jdXRpbHMv d3JpdGVycy9kb2N1dGlsc194bWwucHkgICAgICAgfCA3ICsrKysrKy0KLSB0ZXN0L3Rlc3RfdXRp bHMucHkgICAgICAgICAgICAgICAgICAgICB8IDEgKwotIHRlc3QvdGVzdF93cml0ZXJzL3Rlc3Rf ZG9jdXRpbHNfeG1sLnB5IHwgNyArKysrKystCi0gMyBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNlcnRp b25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvd3JpdGVycy9k b2N1dGlsc194bWwucHkgYi9kb2N1dGlscy93cml0ZXJzL2RvY3V0aWxzX3htbC5weQotaW5kZXgg NjBlZTA3Yi4uNTFhZDZiZCAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3dyaXRlcnMvZG9jdXRpbHNf eG1sLnB5Ci0rKysgYi9kb2N1dGlscy93cml0ZXJzL2RvY3V0aWxzX3htbC5weQotQEAgLTI1LDEx ICsyNSwxNiBAQCBpZiAiX3htbHBsdXMiIGluIHhtbC5fX3BhdGhfX1swXTogIyBQeVhNTCBzdWIt bW9kdWxlCi0gICAgIHhtbC5fX3BhdGhfXy5yZXZlcnNlKCkgIyBJZiBib3RoIGFyZSBhdmFpbGFi bGUsIHByZWZlciBzdGRsaWIgb3ZlciBQeVhNTAotIAotIGltcG9ydCB4bWwuc2F4LnNheHV0aWxz Ci0tZnJvbSBTdHJpbmdJTyBpbXBvcnQgU3RyaW5nSU8KLSAKLSBpbXBvcnQgZG9jdXRpbHMKLSBm cm9tIGRvY3V0aWxzIGltcG9ydCBmcm9udGVuZCwgd3JpdGVycywgbm9kZXMKLSAKLStpZiBzeXMu dmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSsgICAgZnJvbSBpbyBpbXBvcnQgU3RyaW5nSU8gICMg bm9xYQotK2Vsc2U6Ci0rICAgIGZyb20gU3RyaW5nSU8gaW1wb3J0IFN0cmluZ0lPICAjIG5vcWEK LSsKLSsKLSBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSAgICAgdW5pY29kZSA9IHN0 ciAgIyBub3FhCi0gCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3V0aWxzLnB5IGIvdGVzdC90ZXN0 X3V0aWxzLnB5Ci1pbmRleCA1OWUyOWM4Li5jYjFlYzllIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0 X3V0aWxzLnB5Ci0rKysgYi90ZXN0L3Rlc3RfdXRpbHMucHkKLUBAIC0xMyw2ICsxMyw3IEBAIGlt cG9ydCB1bml0dGVzdAotIGltcG9ydCBzeXMKLSBpbXBvcnQgb3MKLSBmcm9tIERvY3V0aWxzVGVz dFN1cHBvcnQgaW1wb3J0IGRvY3V0aWxzLCB1dGlscywgbm9kZXMKLSsKLSB0cnk6Ci0gICAgIGZy b20gaW8gaW1wb3J0IFN0cmluZ0lPCi0gZXhjZXB0IEltcG9ydEVycm9yOiAgICAjIGlvIGlzIG5l dyBpbiBQeXRob24gMi42Ci1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9kb2N1 dGlsc194bWwucHkgYi90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X2RvY3V0aWxzX3htbC5weQotaW5k ZXggNWE2Y2RhMy4uY2VkMzQ3MyAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF93cml0ZXJzL3Rlc3Rf ZG9jdXRpbHNfeG1sLnB5Ci0rKysgYi90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0X2RvY3V0aWxzX3ht bC5weQotQEAgLTE1LDEyICsxNSwxNyBAQCBUZXN0IGZvciBkb2N1dGlscyBYTUwgd3JpdGVyLgot ICIiIgotIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gCi0tZnJvbSBT dHJpbmdJTyBpbXBvcnQgU3RyaW5nSU8KLStpbXBvcnQgc3lzCi0gCi0gZnJvbSAuIGltcG9ydCBE b2N1dGlsc1Rlc3RTdXBwb3J0ICMgbXVzdCBiZSBpbXBvcnRlZCBiZWZvcmUgZG9jdXRpbHMKLSBp bXBvcnQgZG9jdXRpbHMKLSBpbXBvcnQgZG9jdXRpbHMuY29yZQotIAotK2lmIHN5cy52ZXJzaW9u X2luZm8gPj0gKDMsIDApOgotKyAgICBmcm9tIGlvIGltcG9ydCBTdHJpbmdJTwotK2Vsc2U6Ci0r ICAgIGZyb20gU3RyaW5nSU8gaW1wb3J0IFN0cmluZ0lPCi0rCi0gIyBzYW1wbGUgc3RyaW5ncwot ICMgLS0tLS0tLS0tLS0tLS0KLSAKLS0tIAotMi4yNC4wLjM3NS5nZWI1YWU2OGQ0MQotCmRpZmYg LS1naXQgYS9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMjEtUmVtb3ZlLWF1eGls aWFyeS1QeXRob24tMi0zLWNvbXBhdGliaWxpdHktZGVmaW5pdGlvbi5wYXRjaCBiL3NyY3BrZ3Mv cHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAyMS1SZW1vdmUtYXV4aWxpYXJ5LVB5dGhvbi0yLTMt Y29tcGF0aWJpbGl0eS1kZWZpbml0aW9uLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCBjZWEyNjliMWI2OS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9weXRob24tZG9jdXRp bHMvcGF0Y2hlcy8wMDIxLVJlbW92ZS1hdXhpbGlhcnktUHl0aG9uLTItMy1jb21wYXRpYmlsaXR5 LWRlZmluaXRpb24ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw5MSArMCwwIEBACi1Gcm9tIDNh NjEwZDIwNTI1OWJjZjdmMjJmZDhjMzNjNzhmZmI3MDgyOTk4OWQgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBTdGVwaGVuIEZpbnVjYW5lIDxzdGVwaGVuQHRoYXQuZ3VydT4KLURhdGU6 IFdlZCwgMjAgTm92IDIwMTkgMDA6MTQ6MTEgKzA3MDAKLVN1YmplY3Q6IFtQQVRDSCAyMS8yNl0g UmVtb3ZlIGF1eGlsaWFyeSBQeXRob24gMi8zIGNvbXBhdGliaWxpdHkgZGVmaW5pdGlvbgotIG1v ZHVsZS4KLQotTm8gbG9uZ2VyIHJlcXVpcmVkIHNpbmNlIHNldHRpbmcgbWluaW1hbCBzdXBwb3J0 ZWQgdmVyc2lvbiB0byAyLjcuCi1UaGUgcmVtYWluaW5nIGlzc3VlcyBhcmUgbm93IGhhbmRsZWQg ZGlyZWN0bHkgaW4gdGhlIGFmZmVjdGVkIG1vZHVsZXMuCi0KLWdpdC1zdm4taWQ6IGh0dHA6Ly9z dm4uY29kZS5zZi5uZXQvcC9kb2N1dGlscy9jb2RlL3RydW5rQDgzNjkgOTI5NTQzZjYtZTRmMi0w MzEwLTk4YTYtYmEzYmQzZGQxZDA0Ci1TaWduZWQtb2ZmLWJ5OiBEb2FuIFRyYW4gQ29uZyBEYW5o IDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KLS0tLQotIGRvY3V0aWxzL19jb21wYXQucHkgICAgICAg ICAgIHwgMjQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gdGVzdC90ZXN0X3B1Ymxpc2hlci5w eSAgICAgICAgfCAgOCArKysrKysrLQotIHRlc3QvdGVzdF93cml0ZXJzL3Rlc3Rfb2R0LnB5IHwg IDMgKy0tCi0gMyBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDI3IGRlbGV0aW9ucygt KQotIGRlbGV0ZSBtb2RlIDEwMDY0NCBkb2N1dGlscy9fY29tcGF0LnB5Ci0KLWRpZmYgLS1naXQg YS9kb2N1dGlscy9fY29tcGF0LnB5IGIvZG9jdXRpbHMvX2NvbXBhdC5weQotZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0Ci1pbmRleCAxZmY5NTljLi4wMDAwMDAwCi0tLS0gYS9kb2N1dGlscy9fY29t cGF0LnB5Ci0rKysgL2Rldi9udWxsCi1AQCAtMSwyNCArMCwwIEBACi0tIyAkSWQ6IF9jb21wYXQu cHkgODE2NCAyMDE3LTA4LTE0IDExOjI4OjQ4WiBtaWxkZSAkCi0tIyBBdXRob3I6IEdlb3JnIEJy YW5kbCA8Z2VvcmdAcHl0aG9uLm9yZz4KLS0jIENvcHlyaWdodDogVGhpcyBtb2R1bGUgaGFzIGJl ZW4gcGxhY2VkIGluIHRoZSBwdWJsaWMgZG9tYWluLgotLQotLSIiIgotLVB5dGhvbiAyLzMgY29t cGF0aWJpbGl0eSBkZWZpbml0aW9ucy4KLS0KLS1UaGlzIG1vZHVsZSBjdXJyZW50bHkgcHJvdmlk ZXMgdGhlIGZvbGxvd2luZyBoZWxwZXIgc3ltYm9sczoKLS0KLS0qIHVfcHJlZml4ICh1bmljb2Rl IHJlcHIgcHJlZml4OiAndScgaW4gMi54LCAnJyBpbiAzLngpCi0tICAoUmVxdWlyZWQgaW4gZG9j dXRpbHMvdGVzdC90ZXN0X3B1Ymxpc2hlci5weSkKLS0qIEJ5dGVzSU8gKGEgU3RyaW5nSU8gY2xh c3MgdGhhdCB3b3JrcyB3aXRoIGJ5dGVzdHJpbmdzKQotLSIiIgotLQotLWltcG9ydCBzeXMKLS0K LS1pZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDApOgotLSAgICB1X3ByZWZpeCA9ICd1JwotLSAg ICBmcm9tIFN0cmluZ0lPIGltcG9ydCBTdHJpbmdJTyBhcyBCeXRlc0lPCi0tZWxzZToKLS0gICAg dV9wcmVmaXggPSBiJycKLS0gICAgIyB1c2luZyB0aGlzIGhhY2sgc2luY2UgMnRvMyAiZml4ZXMi IHRoZSByZWxhdGl2ZSBpbXBvcnQKLS0gICAgIyB3aGVuIHVzaW5nIGBgZnJvbSBpbyBpbXBvcnQg Qnl0ZXNJT2BgCi0tICAgIEJ5dGVzSU8gPSBfX2ltcG9ydF9fKCdpbycpLkJ5dGVzSU8KLWRpZmYg LS1naXQgYS90ZXN0L3Rlc3RfcHVibGlzaGVyLnB5IGIvdGVzdC90ZXN0X3B1Ymxpc2hlci5weQot aW5kZXggMDRkOWM3MS4uMmMzODQ1YyAxMDA3NTUKLS0tLSBhL3Rlc3QvdGVzdF9wdWJsaXNoZXIu cHkKLSsrKyBiL3Rlc3QvdGVzdF9wdWJsaXNoZXIucHkKLUBAIC05LDEwICs5LDE2IEBAIFRlc3Qg dGhlIGBQdWJsaXNoZXJgIGZhY2FkZSBhbmQgdGhlIGBgcHVibGlzaF8qYGAgY29udmVuaWVuY2Ug ZnVuY3Rpb25zLgotICIiIgotIAotIGltcG9ydCBwaWNrbGUKLStpbXBvcnQgc3lzCi0rCi0gaW1w b3J0IERvY3V0aWxzVGVzdFN1cHBvcnQgICAgICAgICAgICAgICMgbXVzdCBiZSBpbXBvcnRlZCBi ZWZvcmUgZG9jdXRpbHMKLSBpbXBvcnQgZG9jdXRpbHMKLSBmcm9tIGRvY3V0aWxzIGltcG9ydCBj b3JlLCBub2RlcywgaW8KLS1mcm9tIGRvY3V0aWxzLl9jb21wYXQgaW1wb3J0IHVfcHJlZml4Ci0r Ci0raWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCAwKToKLSsgICAgdV9wcmVmaXggPSAndScKLStl bHNlOgotKyAgICB1X3ByZWZpeCA9IGInJwotIAotIAotIHRlc3RfZG9jdW1lbnQgPSAiIiJcCi1k aWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3dyaXRlcnMvdGVzdF9vZHQucHkgYi90ZXN0L3Rlc3Rfd3Jp dGVycy90ZXN0X29kdC5weQotaW5kZXggYTQ3YjdmYi4uNmVjM2VmMiAxMDA3NTUKLS0tLSBhL3Rl c3QvdGVzdF93cml0ZXJzL3Rlc3Rfb2R0LnB5Ci0rKysgYi90ZXN0L3Rlc3Rfd3JpdGVycy90ZXN0 X29kdC5weQotQEAgLTM2LDEyICszNiwxMSBAQCBpbXBvcnQgb3MKLSBpbXBvcnQgemlwZmlsZQot IGZyb20geG1sLmRvbSBpbXBvcnQgbWluaWRvbQotIGltcG9ydCB0ZW1wZmlsZQotK2Zyb20gaW8g aW1wb3J0IEJ5dGVzSU8KLSAKLSBmcm9tIC4gaW1wb3J0IERvY3V0aWxzVGVzdFN1cHBvcnQKLS0K LSBpbXBvcnQgZG9jdXRpbHMKLSBpbXBvcnQgZG9jdXRpbHMuY29yZQotLWZyb20gZG9jdXRpbHMu X2NvbXBhdCBpbXBvcnQgQnl0ZXNJTwotIAotICMKLSAjIEdsb2JhbHMKLS0tIAotMi4yNC4wLjM3 NS5nZWI1YWU2OGQ0MQotCmRpZmYgLS1naXQgYS9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRj aGVzLzAwMjItcHkzLUhhbmRsZS11cmxsaWItdXJsbGliMi10by11cmxpYi4tcmVuYW1lLnBhdGNo IGIvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDIyLXB5My1IYW5kbGUtdXJsbGli LXVybGxpYjItdG8tdXJsaWIuLXJlbmFtZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMGZhNjI5ZWMyZTkuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvcHl0aG9uLWRvY3V0 aWxzL3BhdGNoZXMvMDAyMi1weTMtSGFuZGxlLXVybGxpYi11cmxsaWIyLXRvLXVybGliLi1yZW5h bWUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMDIgKzAsMCBAQAotRnJvbSA1ZWUyNDgxNzQx MWQ5MDU3YzczOGRjMWNkN2NkYThmYzVmZTAzZGQ2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogU3RlcGhlbiBGaW51Y2FuZSA8c3RlcGhlbkB0aGF0Lmd1cnU+Ci1EYXRlOiBUdWUsIDI3 IEF1ZyAyMDE5IDEyOjEwOjM5ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0ggMjIvMjZdIHB5MzogSGFu ZGxlICd1cmxsaWInLCAndXJsbGliMicgdG8gJ3VybGliLionIHJlbmFtZQotCi1TaWduZWQtb2Zm LWJ5OiBTdGVwaGVuIEZpbnVjYW5lIDxzdGVwaGVuQHRoYXQuZ3VydT4KLQotZ2l0LXN2bi1pZDog aHR0cDovL3N2bi5jb2RlLnNmLm5ldC9wL2RvY3V0aWxzL2NvZGUvdHJ1bmtAODM3MCA5Mjk1NDNm Ni1lNGYyLTAzMTAtOThhNi1iYTNiZDNkZDFkMDQKLVNpZ25lZC1vZmYtYnk6IERvYW4gVHJhbiBD b25nIERhbmggPGNvbmdkYW5ocXhAZ21haWwuY29tPgotLS0tCi0gZG9jdXRpbHMvcGFyc2Vycy9y c3QvZGlyZWN0aXZlcy9pbWFnZXMucHkgfCAxMSArKysrKysrKystLQotIGRvY3V0aWxzL3BhcnNl cnMvcnN0L2RpcmVjdGl2ZXMvbWlzYy5weSAgIHwgMTAgKysrKysrKy0tLQotIGRvY3V0aWxzL3Bh cnNlcnMvcnN0L2RpcmVjdGl2ZXMvdGFibGVzLnB5IHwgMTEgKysrKysrKystLS0KLSBkb2N1dGls cy91dGlscy9tYXRoL21hdGgyaHRtbC5weSAgICAgICAgICB8ICA4ICsrKysrKy0tCi0gZG9jdXRp bHMvd3JpdGVycy9faHRtbF9iYXNlLnB5ICAgICAgICAgICAgfCAgNyArKysrKy0tCi0gZG9jdXRp bHMvd3JpdGVycy9sYXRleDJlL19faW5pdF9fLnB5ICAgICAgfCAgOSArKysrKysrLS0KLSA2IGZp bGVzIGNoYW5nZWQsIDQyIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0t Z2l0IGEvZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy9pbWFnZXMucHkgYi9kb2N1dGls cy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL2ltYWdlcy5weQotaW5kZXggYzgxM2ZhMy4uMzgzMDc1 YiAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvaW1hZ2VzLnB5 Ci0rKysgYi9kb2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL2ltYWdlcy5weQotQEAgLTEw LDEyICsxMCwxMyBAQCBfX2RvY2Zvcm1hdF9fID0gJ3JlU3RydWN0dXJlZFRleHQnCi0gCi0gCi0g aW1wb3J0IHN5cwotLWltcG9ydCB1cmxsaWIKLSsKLSBmcm9tIGRvY3V0aWxzIGltcG9ydCBub2Rl cywgdXRpbHMKLSBmcm9tIGRvY3V0aWxzLnBhcnNlcnMucnN0IGltcG9ydCBEaXJlY3RpdmUKLSBm cm9tIGRvY3V0aWxzLnBhcnNlcnMucnN0IGltcG9ydCBkaXJlY3RpdmVzLCBzdGF0ZXMKLSBmcm9t IGRvY3V0aWxzLm5vZGVzIGltcG9ydCBmdWxseV9ub3JtYWxpemVfbmFtZSwgd2hpdGVzcGFjZV9u b3JtYWxpemVfbmFtZQotIGZyb20gZG9jdXRpbHMucGFyc2Vycy5yc3Qucm9sZXMgaW1wb3J0IHNl dF9jbGFzc2VzCi0rCi0gdHJ5OiAjIGNoZWNrIGZvciB0aGUgUHl0aG9uIEltYWdpbmcgTGlicmFy eQotICAgICBpbXBvcnQgUElMLkltYWdlCi0gZXhjZXB0IEltcG9ydEVycm9yOgotQEAgLTI2LDYg KzI3LDEyIEBAIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgZXhjZXB0IEltcG9ydEVycm9yOgot ICAgICAgICAgUElMID0gTm9uZQotIAotK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgot KyAgICBmcm9tIHVybGxpYi5yZXF1ZXN0IGltcG9ydCB1cmwycGF0aG5hbWUKLStlbHNlOgotKyAg ICBmcm9tIHVybGxpYiBpbXBvcnQgdXJsMnBhdGhuYW1lCi0rCi0rCi0gY2xhc3MgSW1hZ2UoRGly ZWN0aXZlKToKLSAKLSAgICAgYWxpZ25faF92YWx1ZXMgPSAoJ2xlZnQnLCAnY2VudGVyJywgJ3Jp Z2h0JykKLUBAIC0xMjUsNyArMTMyLDcgQEAgY2xhc3MgRmlndXJlKEltYWdlKToKLSAgICAgICAg IGZpZ3VyZV9ub2RlID0gbm9kZXMuZmlndXJlKCcnLCBpbWFnZV9ub2RlKQotICAgICAgICAgaWYg Zmlnd2lkdGggPT0gJ2ltYWdlJzoKLSAgICAgICAgICAgICBpZiBQSUwgYW5kIHNlbGYuc3RhdGUu ZG9jdW1lbnQuc2V0dGluZ3MuZmlsZV9pbnNlcnRpb25fZW5hYmxlZDoKLS0gICAgICAgICAgICAg ICAgaW1hZ2VwYXRoID0gdXJsbGliLnVybDJwYXRobmFtZShpbWFnZV9ub2RlWyd1cmknXSkKLSsg ICAgICAgICAgICAgICAgaW1hZ2VwYXRoID0gdXJsMnBhdGhuYW1lKGltYWdlX25vZGVbJ3VyaSdd KQotICAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgICBpbWcgPSBQSUwu SW1hZ2Uub3BlbigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VwYXRoLmVuY29k ZShzeXMuZ2V0ZmlsZXN5c3RlbWVuY29kaW5nKCkpKQotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3Bh cnNlcnMvcnN0L2RpcmVjdGl2ZXMvbWlzYy5weSBiL2RvY3V0aWxzL3BhcnNlcnMvcnN0L2RpcmVj dGl2ZXMvbWlzYy5weQotaW5kZXggMGZjMzYxMC4uZjIyZGFlMiAxMDA2NDQKLS0tLSBhL2RvY3V0 aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvbWlzYy5weQotKysrIGIvZG9jdXRpbHMvcGFyc2Vy cy9yc3QvZGlyZWN0aXZlcy9taXNjLnB5Ci1AQCAtMjI3LDEwICsyMjcsMTQgQEAgY2xhc3MgUmF3 KERpcmVjdGl2ZSk6Ci0gICAgICAgICAgICAgIyBEbyBub3QgaW1wb3J0IHVybGxpYjIgYXQgdGhl IHRvcCBvZiB0aGUgbW9kdWxlIGJlY2F1c2UKLSAgICAgICAgICAgICAjIGl0IG1heSBmYWlsIGR1 ZSB0byBicm9rZW4gU1NMIGRlcGVuZGVuY2llcywgYW5kIGl0IHRha2VzCi0gICAgICAgICAgICAg IyBhYm91dCAwLjE1IHNlY29uZHMgdG8gbG9hZC4KLS0gICAgICAgICAgICBpbXBvcnQgdXJsbGli MgotKyAgICAgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotKyAgICAgICAg ICAgICAgICBmcm9tIHVybGxpYi5yZXF1ZXN0IGltcG9ydCB1cmxvcGVuCi0rICAgICAgICAgICAg ICAgIGZyb20gdXJsbGliLmVycm9yIGltcG9ydCBVUkxFcnJvcgotKyAgICAgICAgICAgIGVsc2U6 Ci0rICAgICAgICAgICAgICAgIGZyb20gdXJsbGliMiBpbXBvcnQgdXJsb3BlbiwgVVJMRXJyb3IK LSAgICAgICAgICAgICB0cnk6Ci0tICAgICAgICAgICAgICAgIHJhd190ZXh0ID0gdXJsbGliMi51 cmxvcGVuKHNvdXJjZSkucmVhZCgpCi0tICAgICAgICAgICAgZXhjZXB0ICh1cmxsaWIyLlVSTEVy cm9yLCBJT0Vycm9yLCBPU0Vycm9yKSBhcyBlcnJvcjoKLSsgICAgICAgICAgICAgICAgcmF3X3Rl eHQgPSB1cmxvcGVuKHNvdXJjZSkucmVhZCgpCi0rICAgICAgICAgICAgZXhjZXB0IChVUkxFcnJv ciwgSU9FcnJvciwgT1NFcnJvcikgYXMgZXJyb3I6Ci0gICAgICAgICAgICAgICAgIHJhaXNlIHNl bGYuc2V2ZXJlKHUnUHJvYmxlbXMgd2l0aCAiJXMiIGRpcmVjdGl2ZSBVUkwgIiVzIjpcbiVzLicK LSAgICAgICAgICAgICAgICAgICAgICUgKHNlbGYubmFtZSwgc2VsZi5vcHRpb25zWyd1cmwnXSwg RXJyb3JTdHJpbmcoZXJyb3IpKSkKLSAgICAgICAgICAgICByYXdfZmlsZSA9IGlvLlN0cmluZ0lu cHV0KHNvdXJjZT1yYXdfdGV4dCwgc291cmNlX3BhdGg9c291cmNlLAotZGlmZiAtLWdpdCBhL2Rv Y3V0aWxzL3BhcnNlcnMvcnN0L2RpcmVjdGl2ZXMvdGFibGVzLnB5IGIvZG9jdXRpbHMvcGFyc2Vy cy9yc3QvZGlyZWN0aXZlcy90YWJsZXMucHkKLWluZGV4IGI2OThlMDguLjYyODRhYjcgMTAwNjQ0 Ci0tLS0gYS9kb2N1dGlscy9wYXJzZXJzL3JzdC9kaXJlY3RpdmVzL3RhYmxlcy5weQotKysrIGIv ZG9jdXRpbHMvcGFyc2Vycy9yc3QvZGlyZWN0aXZlcy90YWJsZXMucHkKLUBAIC0zMzIsMTEgKzMz MiwxNiBAQCBjbGFzcyBDU1ZUYWJsZShUYWJsZSk6Ci0gICAgICAgICAgICAgIyBEbyBub3QgaW1w b3J0IHVybGxpYjIgYXQgdGhlIHRvcCBvZiB0aGUgbW9kdWxlIGJlY2F1c2UKLSAgICAgICAgICAg ICAjIGl0IG1heSBmYWlsIGR1ZSB0byBicm9rZW4gU1NMIGRlcGVuZGVuY2llcywgYW5kIGl0IHRh a2VzCi0gICAgICAgICAgICAgIyBhYm91dCAwLjE1IHNlY29uZHMgdG8gbG9hZC4KLS0gICAgICAg ICAgICBpbXBvcnQgdXJsbGliMgotKyAgICAgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0g KDMsIDApOgotKyAgICAgICAgICAgICAgICBmcm9tIHVybGxpYi5yZXF1ZXN0IGltcG9ydCB1cmxv cGVuCi0rICAgICAgICAgICAgICAgIGZyb20gdXJsbGliLmVycm9yIGltcG9ydCBVUkxFcnJvcgot KyAgICAgICAgICAgIGVsc2U6Ci0rICAgICAgICAgICAgICAgIGZyb20gdXJsbGliMiBpbXBvcnQg dXJsb3BlbiwgVVJMRXJyb3IKLSsKLSAgICAgICAgICAgICBzb3VyY2UgPSBzZWxmLm9wdGlvbnNb J3VybCddCi0gICAgICAgICAgICAgdHJ5OgotLSAgICAgICAgICAgICAgICBjc3ZfdGV4dCA9IHVy bGxpYjIudXJsb3Blbihzb3VyY2UpLnJlYWQoKQotLSAgICAgICAgICAgIGV4Y2VwdCAodXJsbGli Mi5VUkxFcnJvciwgSU9FcnJvciwgT1NFcnJvciwgVmFsdWVFcnJvcikgYXMgZXJyb3I6Ci0rICAg ICAgICAgICAgICAgIGNzdl90ZXh0ID0gdXJsb3Blbihzb3VyY2UpLnJlYWQoKQotKyAgICAgICAg ICAgIGV4Y2VwdCAoVVJMRXJyb3IsIElPRXJyb3IsIE9TRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGVy cm9yOgotICAgICAgICAgICAgICAgICBzZXZlcmUgPSBzZWxmLnN0YXRlX21hY2hpbmUucmVwb3J0 ZXIuc2V2ZXJlKAotICAgICAgICAgICAgICAgICAgICAgICAnUHJvYmxlbXMgd2l0aCAiJXMiIGRp cmVjdGl2ZSBVUkwgIiVzIjpcbiVzLicKLSAgICAgICAgICAgICAgICAgICAgICAgJSAoc2VsZi5u YW1lLCBzZWxmLm9wdGlvbnNbJ3VybCddLCBTYWZlU3RyaW5nKGVycm9yKSksCi1kaWZmIC0tZ2l0 IGEvZG9jdXRpbHMvdXRpbHMvbWF0aC9tYXRoMmh0bWwucHkgYi9kb2N1dGlscy91dGlscy9tYXRo L21hdGgyaHRtbC5weQotaW5kZXggNDc1NTE5Zi4uNzU3ZGVjMCAxMDA2NDQKLS0tLSBhL2RvY3V0 aWxzL3V0aWxzL21hdGgvbWF0aDJodG1sLnB5Ci0rKysgYi9kb2N1dGlscy91dGlscy9tYXRoL21h dGgyaHRtbC5weQotQEAgLTI3LDcgKzI3LDExIEBAIGltcG9ydCBpbwotIGltcG9ydCBvcy5wYXRo Ci0gaW1wb3J0IHN5cwotIGltcG9ydCB1bmljb2RlZGF0YQotLWltcG9ydCB1cmxsaWIKLSsKLStp ZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSsgICAgZnJvbSB1cmxsaWIucGFyc2UgaW1w b3J0IHF1b3RlX3BsdXMKLStlbHNlOgotKyAgICBmcm9tIHVybGxpYiBpbXBvcnQgcXVvdGVfcGx1 cwotIAotIAotIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotQEAgLTI5MjcsNyArMjkz MSw3IEBAIGNsYXNzIEZvcm11bGEoQ29udGFpbmVyKToKLSAKLSAgIGRlZiBnb29nbGVjaGFydHMo c2VsZik6Ci0gICAgICJNYWtlIHRoZSBjb250ZW50cyB1c2luZyBHb29nbGUgQ2hhcnRzIGh0dHA6 Ly9jb2RlLmdvb2dsZS5jb20vYXBpcy9jaGFydC8uIgotLSAgICB1cmwgPSBGb3JtdWxhQ29uZmln LnVybHNbJ2dvb2dsZWNoYXJ0cyddICsgdXJsbGliLnF1b3RlX3BsdXMoc2VsZi5wYXJzZWQpCi0r ICAgIHVybCA9IEZvcm11bGFDb25maWcudXJsc1snZ29vZ2xlY2hhcnRzJ10gKyBxdW90ZV9wbHVz KHNlbGYucGFyc2VkKQotICAgICBpbWcgPSAnPGltZyBjbGFzcz0iY2hhcnQiIHNyYz0iJyArIHVy bCArICciIGFsdD0iJyArIHNlbGYucGFyc2VkICsgJyIvPicKLSAgICAgc2VsZi5jb250ZW50cyA9 IFtDb25zdGFudChpbWcpXQotIAotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3dyaXRlcnMvX2h0bWxf YmFzZS5weSBiL2RvY3V0aWxzL3dyaXRlcnMvX2h0bWxfYmFzZS5weQotaW5kZXggYTk1NzMxMS4u ZjkxYjA2YyAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3dyaXRlcnMvX2h0bWxfYmFzZS5weQotKysr IGIvZG9jdXRpbHMvd3JpdGVycy9faHRtbF9iYXNlLnB5Ci1AQCAtMjAsNyArMjAsNiBAQAotIGlt cG9ydCBzeXMKLSBpbXBvcnQgb3MucGF0aAotIGltcG9ydCByZQotLWltcG9ydCB1cmxsaWIKLSAK LSB0cnk6ICMgY2hlY2sgZm9yIHRoZSBQeXRob24gSW1hZ2luZyBMaWJyYXJ5Ci0gICAgIGltcG9y dCBQSUwuSW1hZ2UKLUBAIC0zOSw2ICszOCwxMCBAQCBmcm9tIGRvY3V0aWxzLnRyYW5zZm9ybXMg aW1wb3J0IHdyaXRlcl9hdXgKLSBmcm9tIGRvY3V0aWxzLnV0aWxzLm1hdGggaW1wb3J0ICh1bmlj aGFyMnRleCwgcGlja19tYXRoX2Vudmlyb25tZW50LAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG1hdGgyaHRtbCwgbGF0ZXgybWF0aG1sLCB0ZXgybWF0aG1sX2V4dGVybikKLSAK LStpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSsgICAgZnJvbSB1cmxsaWIucmVxdWVz dCBpbXBvcnQgdXJsMnBhdGhuYW1lCi0rZWxzZToKLSsgICAgZnJvbSB1cmxsaWIgaW1wb3J0IHVy bDJwYXRobmFtZQotIAotIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotICAgICB1bmlj b2RlID0gc3RyICAjIG5vcWEKLUBAIC05MjMsNyArOTI2LDcgQEAgY2xhc3MgSFRNTFRyYW5zbGF0 b3Iobm9kZXMuTm9kZVZpc2l0b3IpOgotICAgICAgICAgaWYgJ3NjYWxlJyBpbiBub2RlOgotICAg ICAgICAgICAgIGlmIChQSUwgYW5kIG5vdCAoJ3dpZHRoJyBpbiBub2RlIGFuZCAnaGVpZ2h0JyBp biBub2RlKQotICAgICAgICAgICAgICAgICBhbmQgc2VsZi5zZXR0aW5ncy5maWxlX2luc2VydGlv bl9lbmFibGVkKToKLS0gICAgICAgICAgICAgICAgaW1hZ2VwYXRoID0gdXJsbGliLnVybDJwYXRo bmFtZSh1cmkpCi0rICAgICAgICAgICAgICAgIGltYWdlcGF0aCA9IHVybDJwYXRobmFtZSh1cmkp Ci0gICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgIGltZyA9IFBJTC5J bWFnZS5vcGVuKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZXBhdGguZW5jb2Rl KHN5cy5nZXRmaWxlc3lzdGVtZW5jb2RpbmcoKSkpCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvd3Jp dGVycy9sYXRleDJlL19faW5pdF9fLnB5IGIvZG9jdXRpbHMvd3JpdGVycy9sYXRleDJlL19faW5p dF9fLnB5Ci1pbmRleCAwNWI1NWViLi5hNjBkZTQ4IDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvd3Jp dGVycy9sYXRleDJlL19faW5pdF9fLnB5Ci0rKysgYi9kb2N1dGlscy93cml0ZXJzL2xhdGV4MmUv X19pbml0X18ucHkKLUBAIC0xNywxNiArMTcsMjEgQEAgaW1wb3J0IHN5cwotIGltcG9ydCBvcwot IGltcG9ydCByZQotIGltcG9ydCBzdHJpbmcKLS1pbXBvcnQgdXJsbGliCi0rCi0gdHJ5OgotICAg ICBpbXBvcnQgcm9tYW4KLSBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgIGltcG9ydCBkb2N1dGls cy51dGlscy5yb21hbiBhcyByb21hbgotKwotIGZyb20gZG9jdXRpbHMgaW1wb3J0IGZyb250ZW5k LCBub2RlcywgbGFuZ3VhZ2VzLCB3cml0ZXJzLCB1dGlscywgaW8KLSBmcm9tIGRvY3V0aWxzLnV0 aWxzLmVycm9yX3JlcG9ydGluZyBpbXBvcnQgU2FmZVN0cmluZwotIGZyb20gZG9jdXRpbHMudHJh bnNmb3JtcyBpbXBvcnQgd3JpdGVyX2F1eAotIGZyb20gZG9jdXRpbHMudXRpbHMubWF0aCBpbXBv cnQgcGlja19tYXRoX2Vudmlyb25tZW50LCB1bmljaGFyMnRleAotIAotK2lmIHN5cy52ZXJzaW9u X2luZm8gPj0gKDMsIDApOgotKyAgICBmcm9tIHVybGxpYi5yZXF1ZXN0IGltcG9ydCB1cmwycGF0 aG5hbWUKLStlbHNlOgotKyAgICBmcm9tIHVybGxpYiBpbXBvcnQgdXJsMnBhdGhuYW1lCi0gCi0g aWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0gICAgIHVuaWNvZGUgPSBzdHIgICMgbm9x YQotQEAgLTIzNjksNyArMjM3NCw3IEBAIGNsYXNzIExhVGVYVHJhbnNsYXRvcihub2Rlcy5Ob2Rl VmlzaXRvcik6Ci0gICAgICAgICBzZWxmLnJlcXVpcmVtZW50c1snZ3JhcGhpY3gnXSA9IHNlbGYu Z3JhcGhpY3hfcGFja2FnZQotICAgICAgICAgYXR0cnMgPSBub2RlLmF0dHJpYnV0ZXMKLSAgICAg ICAgICMgQ29udmVydCBpbWFnZSBVUkkgdG8gYSBsb2NhbCBmaWxlIHBhdGgKLS0gICAgICAgIGlt YWdlcGF0aCA9IHVybGxpYi51cmwycGF0aG5hbWUoYXR0cnNbJ3VyaSddKS5yZXBsYWNlKCdcXCcs ICcvJykKLSsgICAgICAgIGltYWdlcGF0aCA9IHVybDJwYXRobmFtZShhdHRyc1sndXJpJ10pLnJl cGxhY2UoJ1xcJywgJy8nKQotICAgICAgICAgIyBhbGlnbm1lbnQgZGVmYXVsdHM6Ci0gICAgICAg ICBpZiBub3QgJ2FsaWduJyBpbiBhdHRyczoKLSAgICAgICAgICAgICAjIFNldCBkZWZhdWx0IGFs aWduIG9mIGltYWdlIGluIGEgZmlndXJlIHRvICdjZW50ZXInCi0tLSAKLTIuMjQuMC4zNzUuZ2Vi NWFlNjhkNDEKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8w MDIzLXB5My1GaXgtbWFnaWMtbWV0aG9kcy5wYXRjaCBiL3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxz L3BhdGNoZXMvMDAyMy1weTMtRml4LW1hZ2ljLW1ldGhvZHMucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IGM4YWFlMzVhZTdhLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3B5 dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMjMtcHkzLUZpeC1tYWdpYy1tZXRob2RzLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMzUyICswLDAgQEAKLUZyb20gMGE2ODk2NWI3ZjU4ODBhZWI4NjQy YTA4MWZmNWViZDg2YTBkMWM0ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXBo ZW4gRmludWNhbmUgPHN0ZXBoZW5AdGhhdC5ndXJ1PgotRGF0ZTogVHVlLCAyNyBBdWcgMjAxOSAx MjoxMDo1MiArMDAwMAotU3ViamVjdDogW1BBVENIIDIzLzI2XSBweTM6IEZpeCBtYWdpYyBtZXRo b2RzCi0KLVB5dGhvbiAzIHVzZXMgJ19fYm9vbF9fJyBhbmQgJ19fbmV4dF9fJywgd2hlcmUgUHl0 aG9uIDIgdXNlZAotJ19fbm9uemVyb19fJyBhbmQgJ25leHQnLiBVc2UgdGhlIG5ldyBuYW1lcyBi dXQgYWRkIGFsaWFzZXMuCi0KLUJhc2VkIG9uIHBhdGNoIGJ5IFN0ZXBoZW4gRmludWNhbmUgPHN0 ZXBoZW5AdGhhdC5ndXJ1PgotCi1naXQtc3ZuLWlkOiBodHRwOi8vc3ZuLmNvZGUuc2YubmV0L3Av ZG9jdXRpbHMvY29kZS90cnVua0A4MzcxIDkyOTU0M2Y2LWU0ZjItMDMxMC05OGE2LWJhM2JkM2Rk MWQwNAotU2lnbmVkLW9mZi1ieTogRG9hbiBUcmFuIENvbmcgRGFuaCA8Y29uZ2RhbmhxeEBnbWFp bC5jb20+Ci0tLS0KLSBkb2N1dGlscy9ub2Rlcy5weSAgICAgICAgICAgICAgICB8ICA4ICstLQot IGRvY3V0aWxzL3V0aWxzL21hdGgvbWF0aDJodG1sLnB5IHwgOTMgKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0KLSBkb2N1dGlscy93cml0ZXJzL21hbnBhZ2UucHkgICAgICB8ICA2ICsr LQotIDMgZmlsZXMgY2hhbmdlZCwgODkgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCi0K LWRpZmYgLS1naXQgYS9kb2N1dGlscy9ub2Rlcy5weSBiL2RvY3V0aWxzL25vZGVzLnB5Ci1pbmRl eCBkZDljNGI2Li42ZmZmYTU2IDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvbm9kZXMucHkKLSsrKyBi L2RvY3V0aWxzL25vZGVzLnB5Ci1AQCAtNTMsNyArNTMsNyBAQCBjbGFzcyBOb2RlKG9iamVjdCk6 Ci0gICAgIGxpbmUgPSBOb25lCi0gICAgICIiIlRoZSBsaW5lIG51bWJlciAoMS1iYXNlZCkgb2Yg dGhlIGJlZ2lubmluZyBvZiB0aGlzIE5vZGUgaW4gYHNvdXJjZWAuIiIiCi0gCi0tICAgIGRlZiBf X25vbnplcm9fXyhzZWxmKToKLSsgICAgZGVmIF9fYm9vbF9fKHNlbGYpOgotICAgICAgICAgIiIi Ci0gICAgICAgICBOb2RlIGluc3RhbmNlcyBhcmUgYWx3YXlzIHRydWUsIGV2ZW4gaWYgdGhleSdy ZSBlbXB0eS4gIEEgbm9kZSBpcyBtb3JlCi0gICAgICAgICB0aGFuIGEgc2ltcGxlIGNvbnRhaW5l ci4gIEl0cyBib29sZWFuICJ0cnV0aCIgZG9lcyBub3QgZGVwZW5kIG9uCi1AQCAtNjQsNiArNjQs OSBAQCBjbGFzcyBOb2RlKG9iamVjdCk6Ci0gICAgICAgICAiIiIKLSAgICAgICAgIHJldHVybiBU cnVlCi0gCi0rICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMCk6Ci0rICAgICAgICBfX25v bnplcm9fXyA9IF9fYm9vbF9fCi0rCi0gICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMCk6 Ci0gICAgICAgICAjIG9uIDIueCwgc3RyKG5vZGUpIHdpbGwgYmUgYSBieXRlIHN0cmluZyB3aXRo IFVuaWNvZGUKLSAgICAgICAgICMgY2hhcmFjdGVycyA+IDI1NSBlc2NhcGVkOyBvbiAzLnggdGhp cyBpcyBubyBsb25nZXIgbmVjZXNzYXJ5Ci1AQCAtNTQ0LDggKzU0Nyw3IEBAIGNsYXNzIEVsZW1l bnQoTm9kZSk6Ci0gICAgICAgICBlbHNlOgotICAgICAgICAgICAgIHJldHVybiBzZWxmLmVtcHR5 dGFnKCkKLSAKLS0gICAgaWYgc3lzLnZlcnNpb25faW5mbyA+ICgzLCAwKToKLS0gICAgICAgICMg MnRvMyBkb2Vzbid0IGNvbnZlcnQgX191bmljb2RlX18gdG8gX19zdHJfXwotKyAgICBpZiBzeXMu dmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSAgICAgICAgIF9fc3RyX18gPSBfX3VuaWNvZGVfXwot IAotICAgICBkZWYgc3RhcnR0YWcoc2VsZiwgcXVvdGVhdHRyPU5vbmUpOgotZGlmZiAtLWdpdCBh L2RvY3V0aWxzL3V0aWxzL21hdGgvbWF0aDJodG1sLnB5IGIvZG9jdXRpbHMvdXRpbHMvbWF0aC9t YXRoMmh0bWwucHkKLWluZGV4IDc1N2RlYzAuLmE3ZTJhZWQgMTAwNjQ0Ci0tLS0gYS9kb2N1dGls cy91dGlscy9tYXRoL21hdGgyaHRtbC5weQotKysrIGIvZG9jdXRpbHMvdXRpbHMvbWF0aC9tYXRo Mmh0bWwucHkKLUBAIC0xMzEzLDYgKzEzMTMsOSBAQCBjbGFzcyBCcmFuY2hPcHRpb25zKG9iamVj dCk6Ci0gICAgICJTdHJpbmcgcmVwcmVzZW50YXRpb24iCi0gICAgIHJldHVybiAnb3B0aW9ucyBm b3IgJyArIHNlbGYubmFtZSArICc6ICcgKyB1bmljb2RlKHNlbGYub3B0aW9ucykKLSAKLSsgIGlm IHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotKyAgICBfX3N0cl9fID0gX191bmljb2RlX18K LSsKLSAKLSBjbGFzcyBDbG9uZXIob2JqZWN0KToKLSAgICJBbiBvYmplY3QgdXNlZCB0byBjbG9u ZSBvdGhlciBvYmplY3RzLiIKLUBAIC0xNDUzLDYgKzE0NTYsMTAgQEAgY2xhc3MgUGFyc2VyKG9i amVjdCk6Ci0gICAgICJSZXR1cm4gYSBkZXNjcmlwdGlvbiIKLSAgICAgcmV0dXJuIHNlbGYuX19j bGFzc19fLl9fbmFtZV9fICsgJyAoJyArIHVuaWNvZGUoc2VsZi5iZWdpbikgKyAnKScKLSAKLSsg IGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotKyAgICBfX3N0cl9fID0gX191bmljb2Rl X18KLSsKLSsKLSBjbGFzcyBMb25lQ29tbWFuZChQYXJzZXIpOgotICAgIkEgcGFyc2VyIGZvciBq dXN0IG9uZSBjb21tYW5kIGxpbmUiCi0gCi1AQCAtMTk4Niw2ICsxOTkzLDEwIEBAIGNsYXNzIEVu ZGluZ0xpc3Qob2JqZWN0KToKLSAgICAgICBzdHJpbmcgPSBzdHJpbmdbOi0xXQotICAgICByZXR1 cm4gc3RyaW5nICsgJ10nCi0gCi0rICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSsg ICAgX19zdHJfXyA9IF9fdW5pY29kZV9fCi0rCi0rCi0gY2xhc3MgUG9zaXRpb25FbmRpbmcob2Jq ZWN0KToKLSAgICJBbiBlbmRpbmcgZm9yIGEgcGFyc2luZyBwb3NpdGlvbiIKLSAKLUBAIC0yMDA0 LDYgKzIwMTUsOCBAQCBjbGFzcyBQb3NpdGlvbkVuZGluZyhvYmplY3QpOgotICAgICAgIHN0cmlu ZyArPSAnIChvcHRpb25hbCknCi0gICAgIHJldHVybiBzdHJpbmcKLSAKLSsgIGlmIHN5cy52ZXJz aW9uX2luZm8gPj0gKDMsIDApOgotKyAgICBfX3N0cl9fID0gX191bmljb2RlX18KLSAKLSAKLSBj bGFzcyBQb3NpdGlvbihHbG9iYWJsZSk6Ci1AQCAtMjA0NiwxMSArMjA1OSwxNCBAQCBjbGFzcyBQ b3NpdGlvbihHbG9iYWJsZSk6Ci0gICAgIHNlbGYuc2tpcChjdXJyZW50KQotICAgICByZXR1cm4g Y3VycmVudAotIAotLSAgZGVmIG5leHQoc2VsZik6Ci0rICBkZWYgX19uZXh0X18oc2VsZik6Ci0g ICAgICJBZHZhbmNlIHRoZSBwb3NpdGlvbiBhbmQgcmV0dXJuIHRoZSBuZXh0IGNoYXJhY3Rlci4i Ci0gICAgIHNlbGYuc2tpcGN1cnJlbnQoKQotICAgICByZXR1cm4gc2VsZi5jdXJyZW50KCkKLSAK LSsgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMCk6Ci0rICAgICAgbmV4dCA9IF9fbmV4dF9f Ci0rCi0gICBkZWYgY2hlY2tza2lwKHNlbGYsIHN0cmluZyk6Ci0gICAgICJDaGVjayBmb3IgYSBz dHJpbmcgYXQgdGhlIGdpdmVuIHBvc2l0aW9uOyBpZiB0aGVyZSwgc2tpcCBpdCIKLSAgICAgaWYg bm90IHNlbGYuY2hlY2tmb3Ioc3RyaW5nKToKLUBAIC0yMzEyLDYgKzIzMjgsMTAgQEAgY2xhc3Mg Q29udGFpbmVyKG9iamVjdCk6Ci0gICAgICAgcmV0dXJuIHNlbGYuX19jbGFzc19fLl9fbmFtZV9f Ci0gICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXyArICdAJyArIHVuaWNvZGUoc2Vs Zi5iZWdpbikKLSAKLSsgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotKyAgICBfX3N0 cl9fID0gX191bmljb2RlX18KLSsKLSsKLSBjbGFzcyBCbGFja0JveChDb250YWluZXIpOgotICAg IkEgY29udGFpbmVyIHRoYXQgZG9lcyBub3Qgb3V0cHV0IGFueXRoaW5nIgotIAotQEAgLTIzNzAs NyArMjM5MCw3IEBAIGNsYXNzIFN0cmluZ0NvbnRhaW5lcihDb250YWluZXIpOgotICAgZGVmIGV4 dHJhY3R0ZXh0KHNlbGYpOgotICAgICAiUmV0dXJuIGFsbCB0ZXh0LiIKLSAgICAgcmV0dXJuIHNl bGYuc3RyaW5nCi0tICAKLSsKLSAgIGRlZiBfX3VuaWNvZGVfXyhzZWxmKToKLSAgICAgIlJldHVy biBhIHByaW50YWJsZSByZXByZXNlbnRhdGlvbi4iCi0gICAgIHJlc3VsdCA9ICdTdHJpbmdDb250 YWluZXInCi1AQCAtMjM4MSw2ICsyNDAxLDEwIEBAIGNsYXNzIFN0cmluZ0NvbnRhaW5lcihDb250 YWluZXIpOgotICAgICAgIGVsbGlwc2lzID0gJycKLSAgICAgcmV0dXJuIHJlc3VsdCArICcgKCcg KyBzZWxmLnN0cmluZy5zdHJpcCgpWzoxNV0gKyBlbGxpcHNpcyArICcpJwotIAotKyAgaWYgc3lz LnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0rICAgIF9fc3RyX18gPSBfX3VuaWNvZGVfXwotKwot KwotIGNsYXNzIENvbnN0YW50KFN0cmluZ0NvbnRhaW5lcik6Ci0gICAiQSBjb25zdGFudCBzdHJp bmciCi0gCi1AQCAtMjM5Miw2ICsyNDE2LDEwIEBAIGNsYXNzIENvbnN0YW50KFN0cmluZ0NvbnRh aW5lcik6Ci0gICBkZWYgX191bmljb2RlX18oc2VsZik6Ci0gICAgIHJldHVybiAnQ29uc3RhbnQ6 ICcgKyBzZWxmLnN0cmluZwotIAotKyAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0r ICAgIF9fc3RyX18gPSBfX3VuaWNvZGVfXwotKwotKwotIGNsYXNzIFRhZ2dlZFRleHQoQ29udGFp bmVyKToKLSAgICJUZXh0IGluc2lkZSBhIHRhZyIKLSAKLUBAIC0yNDIxLDkgKzI0NDksOCBAQCBj bGFzcyBUYWdnZWRUZXh0KENvbnRhaW5lcik6Ci0gICAgICAgcmV0dXJuICdUYWdnZWQgPHVua25v d24gdGFnPicKLSAgICAgcmV0dXJuICdUYWdnZWQgPCcgKyBzZWxmLm91dHB1dC50YWcgKyAnPicK LSAKLS0KLS0KLS0KLSsgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotKyAgICBfX3N0 cl9fID0gX191bmljb2RlX18KLSAKLSAKLSBjbGFzcyBEb2N1bWVudFBhcmFtZXRlcnMob2JqZWN0 KToKLUBAIC0yNTU1LDE5ICsyNTgyLDEyIEBAIGNsYXNzIE1hY3JvUGFyc2VyKEZvcm11bGFQYXJz ZXIpOgotICAgICAiU2VlIGlmIHRoZSBmb3JtdWxhIGlzIGlubGluZWQiCi0gICAgIHNlbGYuYmVn aW4gPSByZWFkZXIubGluZW51bWJlciArIDEKLSAgICAgcmV0dXJuIFsnaW5saW5lJ10KLS0gIAot KwotICAgZGVmIHBhcnNlKHNlbGYsIHJlYWRlcik6Ci0gICAgICJQYXJzZSB0aGUgZm9ybXVsYSB1 bnRpbCB0aGUgZW5kIgotICAgICBmb3JtdWxhID0gc2VsZi5wYXJzZW11bHRpbGluZXIocmVhZGVy LCBzZWxmLnBhcmVudC5zdGFydCwgc2VsZi5lbmRpbmcpCi0gICAgIHJlYWRlci5uZXh0bGluZSgp Ci0gICAgIHJldHVybiBmb3JtdWxhCi0tICAKLS0KLS0KLS0KLS0KLS0KLS0KLSAKLSAKLSBjbGFz cyBGb3JtdWxhQml0KENvbnRhaW5lcik6Ci1AQCAtMjYxNCw2ICsyNjM0LDEwIEBAIGNsYXNzIEZv cm11bGFCaXQoQ29udGFpbmVyKToKLSAgICAgIkdldCBhIHN0cmluZyByZXByZXNlbnRhdGlvbiIK LSAgICAgcmV0dXJuIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fICsgJyByZWFkIGluICcgKyBzZWxm Lm9yaWdpbmFsCi0gCi0rICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSsgICAgX19z dHJfXyA9IF9fdW5pY29kZV9fCi0rCi0rCi0gY2xhc3MgVGFnZ2VkQml0KEZvcm11bGFCaXQpOgot ICAgIkEgdGFnZ2VkIHN0cmluZyBpbiBhIGZvcm11bGEiCi0gCi1AQCAtMjY1Niw2ICsyNjgwLDEw IEBAIGNsYXNzIEZvcm11bGFDb25zdGFudChDb25zdGFudCk6Ci0gICAgICJSZXR1cm4gYSBwcmlu dGFibGUgcmVwcmVzZW50YXRpb24uIgotICAgICByZXR1cm4gJ0Zvcm11bGEgY29uc3RhbnQ6ICcg KyBzZWxmLnN0cmluZwotIAotKyAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0rICAg IF9fc3RyX18gPSBfX3VuaWNvZGVfXwotKwotKwotIGNsYXNzIFJhd1RleHQoRm9ybXVsYUJpdCk6 Ci0gICAiQSBiaXQgb2YgdGV4dCBpbnNpZGUgYSBmb3JtdWxhIgotIAotQEAgLTI3MzksNiArMjc2 NywxMCBAQCBjbGFzcyBXaGl0ZVNwYWNlKEZvcm11bGFCaXQpOgotICAgICAiUmV0dXJuIGEgcHJp bnRhYmxlIHJlcHJlc2VudGF0aW9uLiIKLSAgICAgcmV0dXJuICdXaGl0ZXNwYWNlOiAqJyArIHNl bGYub3JpZ2luYWwgKyAnKicKLSAKLSsgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgot KyAgICBfX3N0cl9fID0gX191bmljb2RlX18KLSsKLSsKLSBjbGFzcyBCcmFja2V0KEZvcm11bGFC aXQpOgotICAgIkEge30gYnJhY2tldCBpbnNpZGUgYSBmb3JtdWxhIgotIAotQEAgLTI4MjIsNyAr Mjg1NCw2IEBAIGNsYXNzIFNxdWFyZUJyYWNrZXQoQnJhY2tldCk6Ci0gICAgIHJldHVybiBicmFj a2V0Ci0gCi0gCi0tCi0gY2xhc3MgTWF0aHNQcm9jZXNzb3Iob2JqZWN0KToKLSAgICJBIHByb2Nl c3NvciBmb3IgYSBtYXRocyBjb25zdHJ1Y3Rpb24gaW5zaWRlIHRoZSBGb3JtdWxhUHJvY2Vzc29y LiIKLSAKLUBAIC0yODM0LDYgKzI4NjUsMTAgQEAgY2xhc3MgTWF0aHNQcm9jZXNzb3Iob2JqZWN0 KToKLSAgICAgIlJldHVybiBhIHByaW50YWJsZSBkZXNjcmlwdGlvbi4iCi0gICAgIHJldHVybiAn TWF0aHMgcHJvY2Vzc29yICcgKyBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXwotIAotKyAgaWYgc3lz LnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0rICAgIF9fc3RyX18gPSBfX3VuaWNvZGVfXwotKwot KwotIGNsYXNzIEZvcm11bGFQcm9jZXNzb3Iob2JqZWN0KToKLSAgICJBIHByb2Nlc3NvciBzcGVj aWZpY2FsbHkgZm9yIGZvcm11bGFzLiIKLSAKLUBAIC0yOTk3LDYgKzMwMzIsMTAgQEAgY2xhc3Mg Rm9ybXVsYShDb250YWluZXIpOgotICAgICAgIHJldHVybiAnRm9ybXVsYSAoJyArIHNlbGYucGFy dGtleS5udW1iZXIgKyAnKScKLSAgICAgcmV0dXJuICdVbm51bWJlcmVkIGZvcm11bGEnCi0gCi0r ICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSsgICAgX19zdHJfXyA9IF9fdW5pY29k ZV9fCi0rCi0rCi0gY2xhc3MgV2hvbGVGb3JtdWxhKEZvcm11bGFCaXQpOgotICAgIlBhcnNlIGEg d2hvbGUgZm9ybXVsYSIKLSAKLUBAIC0zMjI5LDYgKzMyNjgsMTAgQEAgY2xhc3MgTnVtYmVyQ291 bnRlcihvYmplY3QpOgotICAgICAgIHJlc3VsdCArPSAnIGluIG1vZGUgJyArIHNlbGYubW9kZQot ICAgICByZXR1cm4gcmVzdWx0Ci0gCi0rICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToK LSsgICAgX19zdHJfXyA9IF9fdW5pY29kZV9fCi0rCi0rCi0gY2xhc3MgRGVwZW5kZW50Q291bnRl cihOdW1iZXJDb3VudGVyKToKLSAgICJBIGNvdW50ZXIgd2hpY2ggZGVwZW5kcyBvbiBhbm90aGVy IG9uZSAodGhlIG1hc3RlcikuIgotIAotQEAgLTM3ODAsNiArMzgyMywxMCBAQCBjbGFzcyBMaW5r KENvbnRhaW5lcik6Ci0gICAgICAgcmVzdWx0ICs9ICcgdG8gJyArIHNlbGYudXJsCi0gICAgIHJl dHVybiByZXN1bHQKLSAKLSsgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotKyAgICBf X3N0cl9fID0gX191bmljb2RlX18KLSsKLSsKLSBjbGFzcyBVUkwoTGluayk6Ci0gICAiQSBjbGlj a2FibGUgVVJMIgotIAotQEAgLTM5NDgsNiArMzk5NSwxMCBAQCBjbGFzcyBMYWJlbChMaW5rKToK LSAgICAgICByZXR1cm4gJ1VubmFtZWQgbGFiZWwnCi0gICAgIHJldHVybiAnTGFiZWwgJyArIHNl bGYua2V5Ci0gCi0rICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSsgICAgX19zdHJf XyA9IF9fdW5pY29kZV9fCi0rCi0rCi0gY2xhc3MgUmVmZXJlbmNlKExpbmspOgotICAgIkEgcmVm ZXJlbmNlIHRvIGEgbGFiZWwuIgotIAotQEAgLTQwMDgsNiArNDA1OSw4IEBAIGNsYXNzIFJlZmVy ZW5jZShMaW5rKToKLSAgICAgIlJldHVybiBhIHByaW50YWJsZSByZXByZXNlbnRhdGlvbi4iCi0g ICAgIHJldHVybiAnUmVmZXJlbmNlICcgKyBzZWxmLmtleQotIAotKyAgaWYgc3lzLnZlcnNpb25f aW5mbyA+PSAoMywgMCk6Ci0rICAgIF9fc3RyX18gPSBfX3VuaWNvZGVfXwotIAotIAotIGNsYXNz IEZvcm11bGFDb21tYW5kKEZvcm11bGFCaXQpOgotQEAgLTQ2MzAsNiArNDY4MywxMCBAQCBjbGFz cyBMaW1pdFByZXZpb3VzQ29tbWFuZChMaW1pdENvbW1hbmQpOgotICAgICAiUmV0dXJuIGEgcHJp bnRhYmxlIHJlcHJlc2VudGF0aW9uLiIKLSAgICAgcmV0dXJuICdMaW1pdCBwcmV2aW91cyBjb21t YW5kJwotIAotKyAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0rICAgIF9fc3RyX18g PSBfX3VuaWNvZGVfXwotKwotKwotIGNsYXNzIExpbWl0c1Byb2Nlc3NvcihNYXRoc1Byb2Nlc3Nv cik6Ci0gICAiQSBwcm9jZXNzb3IgZm9yIGxpbWl0cyBpbnNpZGUgYW4gZWxlbWVudC4iCi0gCi1A QCAtNDg1NCw2ICs0OTExLDEwIEBAIGNsYXNzIFBhcmFtZXRlckRlZmluaXRpb24ob2JqZWN0KToK LSAgICAgICByZXN1bHQgKz0gJyAoZW1wdHkpJwotICAgICByZXR1cm4gcmVzdWx0Ci0gCi0rICBp ZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKToKLSsgICAgX19zdHJfXyA9IF9fdW5pY29kZV9f Ci0rCi0rCi0gY2xhc3MgUGFyYW1ldGVyRnVuY3Rpb24oQ29tbWFuZEJpdCk6Ci0gICAiQSBmdW5j dGlvbiB3aXRoIGEgdmFyaWFibGUgbnVtYmVyIG9mIHBhcmFtZXRlcnMgZGVmaW5lZCBpbiBhIHRl bXBsYXRlLiIKLSAgICJUaGUgcGFyYW1ldGVycyBhcmUgZGVmaW5lZCBhcyBhIHBhcmFtZXRlciBk ZWZpbml0aW9uLiIKLUBAIC01MzA2LDYgKzUzNjcsMTAgQEAgY2xhc3MgRm9ybXVsYU1hY3JvKEZv cm11bGEpOgotICAgICAiUmV0dXJuIGEgcHJpbnRhYmxlIHJlcHJlc2VudGF0aW9uLiIKLSAgICAg cmV0dXJuICdNYXRoIG1hY3JvJwotIAotKyAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6 Ci0rICAgIF9fc3RyX18gPSBfX3VuaWNvZGVfXwotKwotKwotIEZvcm11bGFGYWN0b3J5LnR5cGVz ICs9IFsgTWFjcm9QYXJhbWV0ZXIgXQotIAotIEZvcm11bGFDb21tYW5kLnR5cGVzICs9IFsKLWRp ZmYgLS1naXQgYS9kb2N1dGlscy93cml0ZXJzL21hbnBhZ2UucHkgYi9kb2N1dGlscy93cml0ZXJz L21hbnBhZ2UucHkKLWluZGV4IGRmNGYxYTMuLjk4MDlkZDQgMTAwNjQ0Ci0tLS0gYS9kb2N1dGls cy93cml0ZXJzL21hbnBhZ2UucHkKLSsrKyBiL2RvY3V0aWxzL3dyaXRlcnMvbWFucGFnZS5weQot QEAgLTMzMSw3ICszMzEsNyBAQCBjbGFzcyBUcmFuc2xhdG9yKG5vZGVzLk5vZGVWaXNpdG9yKToK LSAgICAgICAgICAgICAgICAgZWxpZiBzdHlsZS5lbmRzd2l0aCgncm9tYW4nKToKLSAgICAgICAg ICAgICAgICAgICAgIHNlbGYuX2luZGVudCA9IDUKLSAKLS0gICAgICAgICAgICBkZWYgbmV4dChz ZWxmKToKLSsgICAgICAgICAgICBkZWYgX19uZXh0X18oc2VsZik6Ci0gICAgICAgICAgICAgICAg IGlmIHNlbGYuX3N0eWxlID09ICdidWxsZXQnOgotICAgICAgICAgICAgICAgICAgICAgcmV0dXJu IHNlbGYuZW51bV9zdHlsZVtzZWxmLl9zdHlsZV0KLSAgICAgICAgICAgICAgICAgZWxpZiBzZWxm Ll9zdHlsZSA9PSAnZW1kYXNoJzoKLUBAIC0zNDksNiArMzQ5LDEwIEBAIGNsYXNzIFRyYW5zbGF0 b3Iobm9kZXMuTm9kZVZpc2l0b3IpOgotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcy5s b3dlcigpCi0gICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICByZXR1 cm4gIiVkLiIgJSBzZWxmLl9jbnQKLSsKLSsgICAgICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZv IDwgKDMsIDApOgotKyAgICAgICAgICAgICAgICBuZXh0ID0gX19uZXh0X18KLSsKLSAgICAgICAg ICAgICBkZWYgZ2V0X3dpZHRoKHNlbGYpOgotICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5f aW5kZW50Ci0gICAgICAgICAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotLS0gCi0yLjI0LjAuMzc1 LmdlYjVhZTY4ZDQxCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNo ZXMvMDAyNC1weTMtV3JhcC1mb28ua2V5cy16aXAtZm9vLWJhci1pbi1saXN0LnBhdGNoIGIvc3Jj cGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDI0LXB5My1XcmFwLWZvby5rZXlzLXppcC1m b28tYmFyLWluLWxpc3QucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI4NGE5 ZGM2ZTViLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVz LzAwMjQtcHkzLVdyYXAtZm9vLmtleXMtemlwLWZvby1iYXItaW4tbGlzdC5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDE0NyArMCwwIEBACi1Gcm9tIDdlNjAxZjU0NDQwNTFhNzhjMGRjM2ZkNmUz Njc2MTkzZTdhMzAwNzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTdGVwaGVuIEZp bnVjYW5lIDxzdGVwaGVuQHRoYXQuZ3VydT4KLURhdGU6IFR1ZSwgMjcgQXVnIDIwMTkgMTI6MTE6 MTUgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSCAyNC8yNl0gcHkzOiBXcmFwICdmb28ua2V5cygpJywg J3ppcChmb28sIGJhcicpIGluICdsaXN0JwotCi1JbiBQeXRob24gMywgJ2RpY3Qua2V5cygpJywg J3ppcCcgYW5kICdtYXAnIG5vIGxvbmdlciByZXR1cm4gYSBsaXN0IGJ1dAotcmF0aGVyIHR5cGVz ICdkaWN0X2tleXMnLCAnemlwJyBhbmQgJ21hcCcsIHJlc3BlY3RpdmVseS4gWW91IGNhbid0Ci1h cHBlbmQgdG8gdGhlc2UgdHlwZXMgbm9yIGNhbiB5b3UgZGVsZXRlIGZyb20gdGhlbSB3aGlsZSBp biBhIGxvb3AuICBUaGUKLXNpbXBsZSBzb2x1dGlvbiB0byBib3RoIGlzc3VlcyBpcyB0byB3cmFw IHRoaW5ncyBpbiAnbGlzdCcuCi0KLVNpZ25lZC1vZmYtYnk6IFN0ZXBoZW4gRmludWNhbmUgPHN0 ZXBoZW5AdGhhdC5ndXJ1PgotCi1naXQtc3ZuLWlkOiBodHRwOi8vc3ZuLmNvZGUuc2YubmV0L3Av ZG9jdXRpbHMvY29kZS90cnVua0A4MzcyIDkyOTU0M2Y2LWU0ZjItMDMxMC05OGE2LWJhM2JkM2Rk MWQwNAotU2lnbmVkLW9mZi1ieTogRG9hbiBUcmFuIENvbmcgRGFuaCA8Y29uZ2RhbmhxeEBnbWFp bC5jb20+Ci0tLS0KLSBkb2N1dGlscy9wYXJzZXJzL3JzdC90YWJsZXBhcnNlci5weSAgfCAyICst Ci0gZG9jdXRpbHMvc3RhdGVtYWNoaW5lLnB5ICAgICAgICAgICAgIHwgMiArLQotIGRvY3V0aWxz L3V0aWxzL19faW5pdF9fLnB5ICAgICAgICAgICB8IDIgKy0KLSBkb2N1dGlscy91dGlscy9tYXRo L21hdGgyaHRtbC5weSAgICAgfCAyICstCi0gZG9jdXRpbHMvd3JpdGVycy9vZGZfb2R0L19faW5p dF9fLnB5IHwgMyArLS0KLSB0ZXN0L0RvY3V0aWxzVGVzdFN1cHBvcnQucHkgICAgICAgICAgfCAy ICstCi0gdGVzdC90ZXN0X2Z1bmN0aW9uYWwucHkgICAgICAgICAgICAgIHwgMiArLQotIHRlc3Qv dGVzdF9sYW5ndWFnZS5weSAgICAgICAgICAgICAgICB8IDIgKy0KLSB0ZXN0L3Rlc3Rfc3RhdGVt YWNoaW5lLnB5ICAgICAgICAgICAgfCAyICstCi0gOSBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlv bnMoKyksIDEwIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvcGFyc2Vycy9y c3QvdGFibGVwYXJzZXIucHkgYi9kb2N1dGlscy9wYXJzZXJzL3JzdC90YWJsZXBhcnNlci5weQot aW5kZXggOTM3YWVjOC4uNDA4ZDZkOCAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3BhcnNlcnMvcnN0 L3RhYmxlcGFyc2VyLnB5Ci0rKysgYi9kb2N1dGlscy9wYXJzZXJzL3JzdC90YWJsZXBhcnNlci5w eQotQEAgLTI5MCw3ICsyOTAsNyBAQCBjbGFzcyBHcmlkVGFibGVQYXJzZXIoVGFibGVQYXJzZXIp OgotICAgICAgICAgcm93aW5kZXggPSB7fQotICAgICAgICAgZm9yIGkgaW4gcmFuZ2UobGVuKHJv d3NlcHMpKToKLSAgICAgICAgICAgICByb3dpbmRleFtyb3dzZXBzW2ldXSA9IGkgICAgIyByb3cg Ym91bmRhcnkgLT4gcm93IG51bWJlciBtYXBwaW5nCi0tICAgICAgICBjb2xzZXBzID0gc2VsZi5j b2xzZXBzLmtleXMoKSAgICMgbGlzdCBvZiBjb2x1bW4gYm91bmRhcmllcwotKyAgICAgICAgY29s c2VwcyA9IGxpc3Qoc2VsZi5jb2xzZXBzLmtleXMoKSkgICAjIGxpc3Qgb2YgY29sdW1uIGJvdW5k YXJpZXMKLSAgICAgICAgIGNvbHNlcHMuc29ydCgpCi0gICAgICAgICBjb2xpbmRleCA9IHt9Ci0g ICAgICAgICBmb3IgaSBpbiByYW5nZShsZW4oY29sc2VwcykpOgotZGlmZiAtLWdpdCBhL2RvY3V0 aWxzL3N0YXRlbWFjaGluZS5weSBiL2RvY3V0aWxzL3N0YXRlbWFjaGluZS5weQotaW5kZXggNmJj MDNmNS4uMGNiZjlkMyAxMDA2NDQKLS0tLSBhL2RvY3V0aWxzL3N0YXRlbWFjaGluZS5weQotKysr IGIvZG9jdXRpbHMvc3RhdGVtYWNoaW5lLnB5Ci1AQCAtMTI5Nyw3ICsxMjk3LDcgQEAgY2xhc3Mg Vmlld0xpc3Qob2JqZWN0KToKLSAgICAgICAgIHNlbGYucGFyZW50ID0gTm9uZQotIAotICAgICBk ZWYgc29ydChzZWxmLCAqYXJncyk6Ci0tICAgICAgICB0bXAgPSB6aXAoc2VsZi5kYXRhLCBzZWxm Lml0ZW1zKQotKyAgICAgICAgdG1wID0gbGlzdCh6aXAoc2VsZi5kYXRhLCBzZWxmLml0ZW1zKSkK LSAgICAgICAgIHRtcC5zb3J0KCphcmdzKQotICAgICAgICAgc2VsZi5kYXRhID0gW2VudHJ5WzBd IGZvciBlbnRyeSBpbiB0bXBdCi0gICAgICAgICBzZWxmLml0ZW1zID0gW2VudHJ5WzFdIGZvciBl bnRyeSBpbiB0bXBdCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvdXRpbHMvX19pbml0X18ucHkgYi9k b2N1dGlscy91dGlscy9fX2luaXRfXy5weQotaW5kZXggY2MxZmQxYS4uNDM3NDU2YiAxMDA2NDQK LS0tLSBhL2RvY3V0aWxzL3V0aWxzL19faW5pdF9fLnB5Ci0rKysgYi9kb2N1dGlscy91dGlscy9f X2luaXRfXy5weQotQEAgLTYxOCw3ICs2MTgsNyBAQCBkZWYgY29sdW1uX2luZGljZXModGV4dCk6 Ci0gICAgICIiIgotICAgICAjIFRPRE86IGFjY291bnQgZm9yIGFzaWFuIHdpZGUgY2hhcnMgaGVy ZSBpbnN0ZWFkIG9mIHVzaW5nIGR1bW15Ci0gICAgICMgcmVwbGFjZW1lbnRzIGluIHRoZSB0YWJs ZXBhcnNlcj8KLS0gICAgc3RyaW5nX2luZGljZXMgPSByYW5nZShsZW4odGV4dCkpCi0rICAgIHN0 cmluZ19pbmRpY2VzID0gbGlzdChyYW5nZShsZW4odGV4dCkpKQotICAgICBmb3IgaW5kZXggaW4g ZmluZF9jb21iaW5pbmdfY2hhcnModGV4dCk6Ci0gICAgICAgICBzdHJpbmdfaW5kaWNlc1tpbmRl eF0gPSBOb25lCi0gICAgIHJldHVybiBbaSBmb3IgaSBpbiBzdHJpbmdfaW5kaWNlcyBpZiBpIGlz IG5vdCBOb25lXQotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3V0aWxzL21hdGgvbWF0aDJodG1sLnB5 IGIvZG9jdXRpbHMvdXRpbHMvbWF0aC9tYXRoMmh0bWwucHkKLWluZGV4IGE3ZTJhZWQuLjUzZGQ4 MzYgMTAwNjQ0Ci0tLS0gYS9kb2N1dGlscy91dGlscy9tYXRoL21hdGgyaHRtbC5weQotKysrIGIv ZG9jdXRpbHMvdXRpbHMvbWF0aC9tYXRoMmh0bWwucHkKLUBAIC0yODE5LDcgKzI4MTksNyBAQCBj bGFzcyBCcmFja2V0KEZvcm11bGFCaXQpOgotIAotICAgZGVmIGlubmVydGV4dChzZWxmLCBwb3Mp OgotICAgICAiUGFyc2Ugc29tZSB0ZXh0IGluc2lkZSB0aGUgYnJhY2tldCwgZm9sbG93aW5nIHRl eHR1YWwgcnVsZXMuIgotLSAgICBzcGVjaWFsY2hhcnMgPSBGb3JtdWxhQ29uZmlnLnN5bWJvbGZ1 bmN0aW9ucy5rZXlzKCkKLSsgICAgc3BlY2lhbGNoYXJzID0gbGlzdChGb3JtdWxhQ29uZmlnLnN5 bWJvbGZ1bmN0aW9ucy5rZXlzKCkpCi0gICAgIHNwZWNpYWxjaGFycy5hcHBlbmQoRm9ybXVsYUNv bmZpZy5zdGFydHNbJ2NvbW1hbmQnXSkKLSAgICAgc3BlY2lhbGNoYXJzLmFwcGVuZChGb3JtdWxh Q29uZmlnLnN0YXJ0c1snYnJhY2tldCddKQotICAgICBzcGVjaWFsY2hhcnMuYXBwZW5kKENvbW1l bnQuc3RhcnQpCi1kaWZmIC0tZ2l0IGEvZG9jdXRpbHMvd3JpdGVycy9vZGZfb2R0L19faW5pdF9f LnB5IGIvZG9jdXRpbHMvd3JpdGVycy9vZGZfb2R0L19faW5pdF9fLnB5Ci1pbmRleCBjNzlkNGMx Li5hZDMyNjEzIDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvd3JpdGVycy9vZGZfb2R0L19faW5pdF9f LnB5Ci0rKysgYi9kb2N1dGlscy93cml0ZXJzL29kZl9vZHQvX19pbml0X18ucHkKLUBAIC0xMTY5 LDggKzExNjksNyBAQCBjbGFzcyBPREZUcmFuc2xhdG9yKG5vZGVzLkdlbmVyaWNOb2RlVmlzaXRv cik6Ci0gICAgICAgICAgICAgZmluID0gb3MucG9wZW4oInBhcGVyY29uZiAtcyAyPiAvZGV2L251 bGwiKQotICAgICAgICAgICAgIGNvbnRlbnQgPSBmaW4ucmVhZCgpCi0gICAgICAgICAgICAgY29u dGVudCA9IGNvbnRlbnQuc3BsaXQoKQotLSAgICAgICAgICAgIGNvbnRlbnQgPSBtYXAoZmxvYXQs IGNvbnRlbnQpCi0tICAgICAgICAgICAgY29udGVudCA9IGxpc3QoY29udGVudCkKLSsgICAgICAg ICAgICBjb250ZW50ID0gbGlzdChtYXAoZmxvYXQsIGNvbnRlbnQpKQotICAgICAgICAgICAgIHcs IGggPSBjb250ZW50Ci0gICAgICAgICBleGNlcHQgKElPRXJyb3IsIFZhbHVlRXJyb3IpOgotICAg ICAgICAgICAgIHcsIGggPSA2MTIsIDc5MiAgICAgIyBkZWZhdWx0IHRvIExldHRlcgotZGlmZiAt LWdpdCBhL3Rlc3QvRG9jdXRpbHNUZXN0U3VwcG9ydC5weSBiL3Rlc3QvRG9jdXRpbHNUZXN0U3Vw cG9ydC5weQotaW5kZXggNDdiYTgzYy4uMjIyYzIwMiAxMDA2NDQKLS0tLSBhL3Rlc3QvRG9jdXRp bHNUZXN0U3VwcG9ydC5weQotKysrIGIvdGVzdC9Eb2N1dGlsc1Rlc3RTdXBwb3J0LnB5Ci1AQCAt ODExLDcgKzgxMSw3IEBAIGNsYXNzIEh0bWxXcml0ZXJQdWJsaXNoUGFydHNUZXN0Q2FzZShXcml0 ZXJQdWJsaXNoVGVzdENhc2UpOgotICAgICAgICAgcGFydHNbJ2h0bWxfcHJvbG9nJ10gPSBwYXJ0 c1snaHRtbF9wcm9sb2cnXS5yZXBsYWNlKAotICAgICAgICAgICAgIHNlbGYuc3RhbmRhcmRfaHRt bF9wcm9sb2csICcnKQotICAgICAgICAgIyByZW1vdmUgZW1wdHkgdmFsdWVzOgotLSAgICAgICAg Zm9yIGtleSBpbiBwYXJ0cy5rZXlzKCk6Ci0rICAgICAgICBmb3Iga2V5IGluIGxpc3QocGFydHMu a2V5cygpKToKLSAgICAgICAgICAgICBpZiBub3QgcGFydHNba2V5XToKLSAgICAgICAgICAgICAg ICAgZGVsIHBhcnRzW2tleV0KLSAgICAgICAgICMgc3RhbmRhcmQgb3V0cHV0IGZvcm1hdDoKLWRp ZmYgLS1naXQgYS90ZXN0L3Rlc3RfZnVuY3Rpb25hbC5weSBiL3Rlc3QvdGVzdF9mdW5jdGlvbmFs LnB5Ci1pbmRleCBjZGM3NWEwLi5iMDJjMjUwIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X2Z1bmN0 aW9uYWwucHkKLSsrKyBiL3Rlc3QvdGVzdF9mdW5jdGlvbmFsLnB5Ci1AQCAtMTUyLDcgKzE1Miw3 IEBAIGV4cGVjdGVkIG91dHB1dCBhbmQgY2hlY2sgaXQgaW46Ci0gICAgICAgICBkZWwgcGFyYW1z Wyd0ZXN0X3NvdXJjZSddCi0gICAgICAgICBkZWwgcGFyYW1zWyd0ZXN0X2Rlc3RpbmF0aW9uJ10K LSAgICAgICAgICMgRGVsZXRlIHByaXZhdGUgc3R1ZmYgbGlrZSBwYXJhbXNbJ19fYnVpbHRpbnNf XyddOgotLSAgICAgICAgZm9yIGtleSBpbiBwYXJhbXMua2V5cygpOgotKyAgICAgICAgZm9yIGtl eSBpbiBsaXN0KHBhcmFtcy5rZXlzKCkpOgotICAgICAgICAgICAgIGlmIGtleS5zdGFydHN3aXRo KCdfJyk6Ci0gICAgICAgICAgICAgICAgIGRlbCBwYXJhbXNba2V5XQotICAgICAgICAgIyBHZXQg b3V0cHV0IChhdXRvbWF0aWNhbGx5IHdyaXR0ZW4gdG8gdGhlIG91dHB1dC8gZGlyZWN0b3J5Ci1k aWZmIC0tZ2l0IGEvdGVzdC90ZXN0X2xhbmd1YWdlLnB5IGIvdGVzdC90ZXN0X2xhbmd1YWdlLnB5 Ci1pbmRleCAzMWFjNjEzLi40OGNkMDZiIDEwMDc1NQotLS0tIGEvdGVzdC90ZXN0X2xhbmd1YWdl LnB5Ci0rKysgYi90ZXN0L3Rlc3RfbGFuZ3VhZ2UucHkKLUBAIC01Miw3ICs1Miw3IEBAIGNsYXNz IExhbmd1YWdlVGVzdFN1aXRlKERvY3V0aWxzVGVzdFN1cHBvcnQuQ3VzdG9tVGVzdFN1aXRlKToK LSAgICAgICAgICAgICBtYXRjaCA9IHNlbGYubGFuZ3VhZ2VfbW9kdWxlX3BhdHRlcm4ubWF0Y2go bW9kKQotICAgICAgICAgICAgIGlmIG1hdGNoOgotICAgICAgICAgICAgICAgICBsYW5ndWFnZXNb bWF0Y2guZ3JvdXAoMSldID0gMQotLSAgICAgICAgc2VsZi5sYW5ndWFnZXMgPSBsYW5ndWFnZXMu a2V5cygpCi0rICAgICAgICBzZWxmLmxhbmd1YWdlcyA9IGxpc3QobGFuZ3VhZ2VzLmtleXMoKSkK LSAgICAgICAgICMgdGVzdCBsYW5ndWFnZSB0YWcgbm9ybWFsaXphdGlvbjoKLSAgICAgICAgIHNl bGYubGFuZ3VhZ2VzICs9IFsnZW5fZ2InLCAnZW5fVVMnLCAnZW4tQ0EnLCAnZGUtREUnLCAnZGUt QVQtMTkwMScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3B0LUJSJywgJ3B0LWZvby1C UiddCi1kaWZmIC0tZ2l0IGEvdGVzdC90ZXN0X3N0YXRlbWFjaGluZS5weSBiL3Rlc3QvdGVzdF9z dGF0ZW1hY2hpbmUucHkKLWluZGV4IDYzNTJjYTQuLjg3ZjU3MTAgMTAwNzU1Ci0tLS0gYS90ZXN0 L3Rlc3Rfc3RhdGVtYWNoaW5lLnB5Ci0rKysgYi90ZXN0L3Rlc3Rfc3RhdGVtYWNoaW5lLnB5Ci1A QCAtMTUyLDcgKzE1Miw3IEBAIGNsYXNzIFNNV1NUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0g ICAgICAgICBzZWxmLnNtLnVubGluaygpCi0gCi0gICAgIGRlZiB0ZXN0X19faW5pdF9fKHNlbGYp OgotLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNtLnN0YXRlcy5rZXlzKCksIFsnTW9j a1N0YXRlJ10pCi0rICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3Qoc2VsZi5zbS5zdGF0ZXMu a2V5cygpKSwgWydNb2NrU3RhdGUnXSkKLSAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNl bGYuc20uc3RhdGVzWydNb2NrU3RhdGUnXS50cmFuc2l0aW9ucyksIDQpCi0gCi0gICAgIGRlZiB0 ZXN0X2dldF9pbmRlbnRlZChzZWxmKToKLS0tIAotMi4yNC4wLjM3NS5nZWI1YWU2OGQ0MQotCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzLzAwMjUtU2ltcGxpZnkt Y29kZS5wYXRjaCBiL3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3BhdGNoZXMvMDAyNS1TaW1wbGlm eS1jb2RlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNTA5MmE4ZjRlMS4u MDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDI1LVNp bXBsaWZ5LWNvZGUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw4NCArMCwwIEBACi1Gcm9tIDFk NGMzZDQ4ZmQ5YTU2MDY5MjU1NjJjMWM5N2U2NzMzMjU3OGNjNjUgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBTdGVwaGVuIEZpbnVjYW5lIDxzdGVwaGVuQHRoYXQuZ3VydT4KLURhdGU6 IFR1ZSwgMjcgQXVnIDIwMTkgMTI6MTE6MzAgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSCAyNS8yNl0g U2ltcGxpZnkgY29kZS4KLQotZ2l0LXN2bi1pZDogaHR0cDovL3N2bi5jb2RlLnNmLm5ldC9wL2Rv Y3V0aWxzL2NvZGUvdHJ1bmtAODM3MyA5Mjk1NDNmNi1lNGYyLTAzMTAtOThhNi1iYTNiZDNkZDFk MDQKLVNpZ25lZC1vZmYtYnk6IERvYW4gVHJhbiBDb25nIERhbmggPGNvbmdkYW5ocXhAZ21haWwu Y29tPgotLS0tCi0gZG9jdXRpbHMvcGFyc2Vycy9yc3QvdGFibGVwYXJzZXIucHkgIHwgIDMgKy0t Ci0gZG9jdXRpbHMvc3RhdGVtYWNoaW5lLnB5ICAgICAgICAgICAgIHwgIDMgKy0tCi0gZG9jdXRp bHMvd3JpdGVycy9vZGZfb2R0L19faW5pdF9fLnB5IHwgIDYgKystLS0tCi0gdGVzdC9Eb2N1dGls c1Rlc3RTdXBwb3J0LnB5ICAgICAgICAgIHwgMTAgKysrLS0tLS0tLQotIDQgZmlsZXMgY2hhbmdl ZCwgNyBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2RvY3V0 aWxzL3BhcnNlcnMvcnN0L3RhYmxlcGFyc2VyLnB5IGIvZG9jdXRpbHMvcGFyc2Vycy9yc3QvdGFi bGVwYXJzZXIucHkKLWluZGV4IDQwOGQ2ZDguLjY0YTE5MmYgMTAwNjQ0Ci0tLS0gYS9kb2N1dGls cy9wYXJzZXJzL3JzdC90YWJsZXBhcnNlci5weQotKysrIGIvZG9jdXRpbHMvcGFyc2Vycy9yc3Qv dGFibGVwYXJzZXIucHkKLUBAIC0yOTAsOCArMjkwLDcgQEAgY2xhc3MgR3JpZFRhYmxlUGFyc2Vy KFRhYmxlUGFyc2VyKToKLSAgICAgICAgIHJvd2luZGV4ID0ge30KLSAgICAgICAgIGZvciBpIGlu IHJhbmdlKGxlbihyb3dzZXBzKSk6Ci0gICAgICAgICAgICAgcm93aW5kZXhbcm93c2Vwc1tpXV0g PSBpICAgICMgcm93IGJvdW5kYXJ5IC0+IHJvdyBudW1iZXIgbWFwcGluZwotLSAgICAgICAgY29s c2VwcyA9IGxpc3Qoc2VsZi5jb2xzZXBzLmtleXMoKSkgICAjIGxpc3Qgb2YgY29sdW1uIGJvdW5k YXJpZXMKLS0gICAgICAgIGNvbHNlcHMuc29ydCgpCi0rICAgICAgICBjb2xzZXBzID0gc29ydGVk KHNlbGYuY29sc2Vwcy5rZXlzKCkpICAgIyBsaXN0IG9mIGNvbHVtbiBib3VuZGFyaWVzCi0gICAg ICAgICBjb2xpbmRleCA9IHt9Ci0gICAgICAgICBmb3IgaSBpbiByYW5nZShsZW4oY29sc2Vwcykp OgotICAgICAgICAgICAgIGNvbGluZGV4W2NvbHNlcHNbaV1dID0gaSAgICAjIGNvbHVtbiBib3Vu ZGFyeSAtPiBjb2wgbnVtYmVyIG1hcAotZGlmZiAtLWdpdCBhL2RvY3V0aWxzL3N0YXRlbWFjaGlu ZS5weSBiL2RvY3V0aWxzL3N0YXRlbWFjaGluZS5weQotaW5kZXggMGNiZjlkMy4uZWJiNTJhZCAx MDA2NDQKLS0tLSBhL2RvY3V0aWxzL3N0YXRlbWFjaGluZS5weQotKysrIGIvZG9jdXRpbHMvc3Rh dGVtYWNoaW5lLnB5Ci1AQCAtMTI5Nyw4ICsxMjk3LDcgQEAgY2xhc3MgVmlld0xpc3Qob2JqZWN0 KToKLSAgICAgICAgIHNlbGYucGFyZW50ID0gTm9uZQotIAotICAgICBkZWYgc29ydChzZWxmLCAq YXJncyk6Ci0tICAgICAgICB0bXAgPSBsaXN0KHppcChzZWxmLmRhdGEsIHNlbGYuaXRlbXMpKQot LSAgICAgICAgdG1wLnNvcnQoKmFyZ3MpCi0rICAgICAgICB0bXAgPSBzb3J0ZWQoemlwKHNlbGYu ZGF0YSwgc2VsZi5pdGVtcyksICphcmdzKQotICAgICAgICAgc2VsZi5kYXRhID0gW2VudHJ5WzBd IGZvciBlbnRyeSBpbiB0bXBdCi0gICAgICAgICBzZWxmLml0ZW1zID0gW2VudHJ5WzFdIGZvciBl bnRyeSBpbiB0bXBdCi0gICAgICAgICBzZWxmLnBhcmVudCA9IE5vbmUKLWRpZmYgLS1naXQgYS9k b2N1dGlscy93cml0ZXJzL29kZl9vZHQvX19pbml0X18ucHkgYi9kb2N1dGlscy93cml0ZXJzL29k Zl9vZHQvX19pbml0X18ucHkKLWluZGV4IGFkMzI2MTMuLmQwM2Y4ZTAgMTAwNjQ0Ci0tLS0gYS9k b2N1dGlscy93cml0ZXJzL29kZl9vZHQvX19pbml0X18ucHkKLSsrKyBiL2RvY3V0aWxzL3dyaXRl cnMvb2RmX29kdC9fX2luaXRfXy5weQotQEAgLTExNjcsMTAgKzExNjcsOCBAQCBjbGFzcyBPREZU cmFuc2xhdG9yKG5vZGVzLkdlbmVyaWNOb2RlVmlzaXRvcik6Ci0gICAgIGRlZiBzZXR1cF9wYXBl cihzZWxmLCByb290X2VsKToKLSAgICAgICAgIHRyeToKLSAgICAgICAgICAgICBmaW4gPSBvcy5w b3BlbigicGFwZXJjb25mIC1zIDI+IC9kZXYvbnVsbCIpCi0tICAgICAgICAgICAgY29udGVudCA9 IGZpbi5yZWFkKCkKLS0gICAgICAgICAgICBjb250ZW50ID0gY29udGVudC5zcGxpdCgpCi0tICAg ICAgICAgICAgY29udGVudCA9IGxpc3QobWFwKGZsb2F0LCBjb250ZW50KSkKLS0gICAgICAgICAg ICB3LCBoID0gY29udGVudAotKyAgICAgICAgICAgIGRpbWVuc2lvbnMgPSBmaW4ucmVhZCgpLnNw bGl0KCkKLSsgICAgICAgICAgICB3LCBoID0gKGZsb2F0KHMpIGZvciBzIGluIGRpbWVuc2lvbnMp Ci0gICAgICAgICBleGNlcHQgKElPRXJyb3IsIFZhbHVlRXJyb3IpOgotICAgICAgICAgICAgIHcs IGggPSA2MTIsIDc5MiAgICAgIyBkZWZhdWx0IHRvIExldHRlcgotICAgICAgICAgZmluYWxseToK LWRpZmYgLS1naXQgYS90ZXN0L0RvY3V0aWxzVGVzdFN1cHBvcnQucHkgYi90ZXN0L0RvY3V0aWxz VGVzdFN1cHBvcnQucHkKLWluZGV4IDIyMmMyMDIuLjVlOWZlZDkgMTAwNjQ0Ci0tLS0gYS90ZXN0 L0RvY3V0aWxzVGVzdFN1cHBvcnQucHkKLSsrKyBiL3Rlc3QvRG9jdXRpbHNUZXN0U3VwcG9ydC5w eQotQEAgLTgxMCwxNCArODEwLDEwIEBAIGNsYXNzIEh0bWxXcml0ZXJQdWJsaXNoUGFydHNUZXN0 Q2FzZShXcml0ZXJQdWJsaXNoVGVzdENhc2UpOgotICAgICAgICAgICAgIHNlbGYuc3RhbmRhcmRf aHRtbF9tZXRhX3ZhbHVlLCAnLi4uJykKLSAgICAgICAgIHBhcnRzWydodG1sX3Byb2xvZyddID0g cGFydHNbJ2h0bWxfcHJvbG9nJ10ucmVwbGFjZSgKLSAgICAgICAgICAgICBzZWxmLnN0YW5kYXJk X2h0bWxfcHJvbG9nLCAnJykKLS0gICAgICAgICMgcmVtb3ZlIGVtcHR5IHZhbHVlczoKLS0gICAg ICAgIGZvciBrZXkgaW4gbGlzdChwYXJ0cy5rZXlzKCkpOgotLSAgICAgICAgICAgIGlmIG5vdCBw YXJ0c1trZXldOgotLSAgICAgICAgICAgICAgICBkZWwgcGFydHNba2V5XQotLSAgICAgICAgIyBz dGFuZGFyZCBvdXRwdXQgZm9ybWF0OgotLSAgICAgICAga2V5cyA9IHNvcnRlZChwYXJ0cy5rZXlz KCkpCi0gICAgICAgICBvdXRwdXQgPSBbXQotLSAgICAgICAgZm9yIGtleSBpbiBrZXlzOgotKyAg ICAgICAgZm9yIGtleSBpbiBzb3J0ZWQocGFydHMua2V5cygpKToKLSsgICAgICAgICAgICBpZiBu b3QgcGFydHNba2V5XToKLSsgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICBv dXRwdXQuYXBwZW5kKCIlcjogJycnJXMnJyciCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAl IChrZXksIHBhcnRzW2tleV0pKQotICAgICAgICAgICAgIGlmIG91dHB1dFstMV0uZW5kc3dpdGgo IlxuJycnIik6Ci0tLSAKLTIuMjQuMC4zNzUuZ2ViNWFlNjhkNDEKLQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDI2LXB5My1IYW5kbGUtb3MuZ2V0Y3dkdS10 by1vcy5nZXRjd2QtcmVuYW1lLnBhdGNoIGIvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hl cy8wMDI2LXB5My1IYW5kbGUtb3MuZ2V0Y3dkdS10by1vcy5nZXRjd2QtcmVuYW1lLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZDQ2MzY4YmViMi4uMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy8wMDI2LXB5My1IYW5kbGUtb3MuZ2V0 Y3dkdS10by1vcy5nZXRjd2QtcmVuYW1lLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAs MCBAQAotRnJvbSBlOTBjZmU5NDUxOTNhYzk5Y2M5YWM3YTQzOWQxY2NjMmFkODU3YTZjIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3RlcGhlbiBGaW51Y2FuZSA8c3RlcGhlbkB0aGF0 Lmd1cnU+Ci1EYXRlOiBUdWUsIDI3IEF1ZyAyMDE5IDEyOjExOjQwICswMDAwCi1TdWJqZWN0OiBb UEFUQ0ggMjYvMjZdIHB5MzogSGFuZGxlICdvcy5nZXRjd2R1JyB0byAnb3MuZ2V0Y3dkJyByZW5h bWUKLQotV2UgZG9uJ3QgbmVlZCB0byBkbyB0aGUgcmV2ZXJzZSBzaW5jZSBub25lIG9mIHRoZSBj YWxsZXJzIHNlZW1zIHRvIGNhcmUuCi0KLUJhc2VkIG9uIHBhdGNoIGJ5OiBTdGVwaGVuIEZpbnVj YW5lIDxzdGVwaGVuQHRoYXQuZ3VydT4KLQotZ2l0LXN2bi1pZDogaHR0cDovL3N2bi5jb2RlLnNm Lm5ldC9wL2RvY3V0aWxzL2NvZGUvdHJ1bmtAODM3NCA5Mjk1NDNmNi1lNGYyLTAzMTAtOThhNi1i YTNiZDNkZDFkMDQKLVNpZ25lZC1vZmYtYnk6IERvYW4gVHJhbiBDb25nIERhbmggPGNvbmdkYW5o cXhAZ21haWwuY29tPgotLS0tCi0gZG9jdXRpbHMvZnJvbnRlbmQucHkgfCA0ICsrKy0KLSAxIGZp bGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQg YS9kb2N1dGlscy9mcm9udGVuZC5weSBiL2RvY3V0aWxzL2Zyb250ZW5kLnB5Ci1pbmRleCA3YmZm ZjZhLi4zNzJjYTQ0IDEwMDY0NAotLS0tIGEvZG9jdXRpbHMvZnJvbnRlbmQucHkKLSsrKyBiL2Rv Y3V0aWxzL2Zyb250ZW5kLnB5Ci1AQCAtMzgsOCArMzgsMTAgQEAgaW1wb3J0IG9wdHBhcnNlCi0g ZnJvbSBvcHRwYXJzZSBpbXBvcnQgU1VQUFJFU1NfSEVMUAotIGlmIHN5cy52ZXJzaW9uX2luZm8g Pj0gKDMsIDApOgotICAgICBmcm9tIGNvbmZpZ3BhcnNlciBpbXBvcnQgUmF3Q29uZmlnUGFyc2Vy Ci0rICAgIGZyb20gb3MgaW1wb3J0IGdldGN3ZAotIGVsc2U6Ci0gICAgIGZyb20gQ29uZmlnUGFy c2VyIGltcG9ydCBSYXdDb25maWdQYXJzZXIKLSsgICAgZnJvbSBvcyBpbXBvcnQgZ2V0Y3dkdSBh cyBnZXRjd2QKLSAKLSBpbXBvcnQgZG9jdXRpbHMKLSBpbXBvcnQgZG9jdXRpbHMudXRpbHMKLUBA IC0yNTYsNyArMjU4LDcgQEAgZGVmIG1ha2VfcGF0aHNfYWJzb2x1dGUocGF0aGRpY3QsIGtleXMs IGJhc2VfcGF0aD1Ob25lKToKLSAgICAgYE9wdGlvblBhcnNlci5yZWxhdGl2ZV9wYXRoX3NldHRp bmdzYC4KLSAgICAgIiIiCi0gICAgIGlmIGJhc2VfcGF0aCBpcyBOb25lOgotLSAgICAgICAgYmFz ZV9wYXRoID0gb3MuZ2V0Y3dkdSgpICMgdHlwZShiYXNlX3BhdGgpID09IHVuaWNvZGUKLSsgICAg ICAgIGJhc2VfcGF0aCA9IG9zLmdldGN3ZCgpICMgdHlwZShiYXNlX3BhdGgpID09IHVuaWNvZGUK LSAgICAgICAgICMgdG8gYWxsb3cgY29tYmluaW5nIG5vbi1BU0NJSSBjd2Qgd2l0aCB1bmljb2Rl IHZhbHVlcyBpbiBgcGF0aGRpY3RgCi0gICAgIGZvciBrZXkgaW4ga2V5czoKLSAgICAgICAgIGlm IGtleSBpbiBwYXRoZGljdDoKLS0tIAotMi4yNC4wLjM3NS5nZWI1YWU2OGQ0MQotCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzL3Rlc3QtaW1wb3J0LnBhdGNoIGIv c3JjcGtncy9weXRob24tZG9jdXRpbHMvcGF0Y2hlcy90ZXN0LWltcG9ydC5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTJjMjI5NzE2ODAKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy9wYXRjaGVzL3Rlc3QtaW1wb3J0LnBhdGNo CkBAIC0wLDAgKzEsMjAgQEAKKy0tLSB0ZXN0L0RvY3V0aWxzVGVzdFN1cHBvcnQucHkKKysrKyB0 ZXN0L0RvY3V0aWxzVGVzdFN1cHBvcnQucHkKK0BAIC01MSwxNCArNTEsOSBAQAorIAorIHRlc3Ry b290ID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykgb3Igb3MuY3Vy ZGlyKQorIG9zLmNoZGlyKHRlc3Ryb290KQorLWlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDAp OgorLSAgICBzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5ub3JtcGF0aChvcy5wYXRoLmpvaW4o dGVzdHJvb3QsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnLi4nLCAnYnVpbGQnLCAnbGliJykpKQorLSAgICBzeXMucGF0aC5hcHBlbmQob3Mu cGF0aC5ub3JtcGF0aChvcy5wYXRoLmpvaW4odGVzdHJvb3QsICcuLicsCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYnVpbGQnLCAnbGliJywgJ2V4 dHJhcycpKSkKKy1lbHNlOgorLSAgICBzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5ub3JtcGF0 aChvcy5wYXRoLmpvaW4odGVzdHJvb3QsICcuLicpKSkKKy0gICAgc3lzLnBhdGguYXBwZW5kKG9z LnBhdGgubm9ybXBhdGgob3MucGF0aC5qb2luKHRlc3Ryb290LCAnLi4nLCAnZXh0cmFzJykpKQor K2J1aWxkZGlyID0gJ2J1aWxkLSVkLiVkJyAlIChzeXMudmVyc2lvbl9pbmZvLm1ham9yLCBzeXMu dmVyc2lvbl9pbmZvLm1pbm9yKQorK3N5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLm5vcm1wYXRo KG9zLnBhdGguam9pbih0ZXN0cm9vdCwgJy4uJywgYnVpbGRkaXIsICdsaWInKSkpCisrc3lzLnBh dGguYXBwZW5kKG9zLnBhdGgubm9ybXBhdGgob3MucGF0aC5qb2luKHRlc3Ryb290LCAnLi4nLCBi dWlsZGRpciwgJ2xpYicsICdleHRyYXMnKSkpCisgc3lzLnBhdGguaW5zZXJ0KDAsIHRlc3Ryb290 KQorIAorIHRyeToKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcHl0aG9uLWRvY3V0aWxzL3RlbXBsYXRl IGIvc3JjcGtncy9weXRob24tZG9jdXRpbHMvdGVtcGxhdGUKaW5kZXggYTRjMGJiOTE1ZTAuLjk5 ZTc0OTY4ZGRkIDEwMDY0NAotLS0gYS9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL3B5dGhvbi1kb2N1dGlscy90ZW1wbGF0ZQpAQCAtMSwxMSArMSwxMCBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAncHl0aG9uLWRvY3V0aWxzJwogcGtnbmFtZT1weXRob24tZG9j dXRpbHMKLXZlcnNpb249MC4xNS4yCi1yZXZpc2lvbj0zCit2ZXJzaW9uPTAuMTYKK3JldmlzaW9u PTEKIGFyY2hzPW5vYXJjaAogd3Jrc3JjPSJkb2N1dGlscy0ke3ZlcnNpb259IgogYnVpbGRfc3R5 bGU9cHl0aG9uLW1vZHVsZQotcHljb21waWxlX21vZHVsZT0iZG9jdXRpbHMiCiBob3N0bWFrZWRl cGVuZHM9InB5dGhvbi1zZXR1cHRvb2xzIHB5dGhvbjMtc2V0dXB0b29scyIKICMgZG9jdXRpbHMv d3JpdGVycy9vZGZfb2R0L3B5Z21lbnRzZm9ybWF0dGVyLnB5CiBkZXBlbmRzPSJweXRob24gcHl0 aG9uLVB5Z21lbnRzIgpAQCAtMTQsOSArMTMsOCBAQCBtYWludGFpbmVyPSJBbGVzc2lvIFNlcmdp IDxhbDNoZXhAZ21haWwuY29tPiIKIGxpY2Vuc2U9ImN1c3RvbTpQdWJsaWMgRG9tYWluLCBCU0Qt Mi1DbGF1c2UsIEdQTC0zLjAtb3ItbGF0ZXIsIFB5dGhvbi0yLjAiCiBob21lcGFnZT0iaHR0cDov L2RvY3V0aWxzLnNvdXJjZWZvcmdlLm5ldCIKIGRpc3RmaWxlcz0iJHtQWVBJX1NJVEV9L2QvZG9j dXRpbHMvZG9jdXRpbHMtJHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT1hMmFlZWExMjkwODhk YTQwMjY2NWU5MmUwYjI1YjA0YjA3M2MwNGIyZGNlNGFiNjVjYWFhMzhiN2NlMmUxYTk5CitjaGVj a3N1bT1jMmRlM2E2MGU5ZTdkMDdiZTI2YjdmMmIwMGNhMDMwOWMyMDdlMDZjMTAwZjljYzJhOTQ5 MzFmYzc1YTQ3OGZjCiBjaGVja2RlcGVuZHMrPSIkZGVwZW5kcyBweXRob24zLVB5Z21lbnRzIgot cGF0Y2hfYXJncz0iLU5wMSIKIAogYWx0ZXJuYXRpdmVzPSIKICBkb2N1dGlsczpyc3QyaHRtbDov dXNyL2Jpbi9yc3QyaHRtbC5weTIKQEAgLTMyLDYgKzMwLDExIEBAIGFsdGVybmF0aXZlcz0iCiAg ZG9jdXRpbHM6cnN0MnhtbDovdXNyL2Jpbi9yc3QyeG1sLnB5MgogIGRvY3V0aWxzOnJzdHBlcDJo dG1sOi91c3IvYmluL3JzdHBlcDJodG1sLnB5MiIKIAorZG9fY2hlY2soKSB7CisJY2QgdGVzdAor CXB5dGhvbjMgYWxsdGVzdHMucHkKK30KKwogcG9zdF9pbnN0YWxsKCkgewogCXZsaWNlbnNlIENP UFlJTkcudHh0IENPUFlJTkcKIH0KQEAgLTUyLDcgKzU1LDYgQEAgcHl0aG9uMy1kb2N1dGlsc19w YWNrYWdlKCkgewogCSBkb2N1dGlsczpyc3RwZXAyaHRtbDovdXNyL2Jpbi9yc3RwZXAyaHRtbC5w eTMiCiAJYXJjaHM9bm9hcmNoCiAJZGVwZW5kcz0icHl0aG9uMyBweXRob24zLVB5Z21lbnRzIgot CXB5Y29tcGlsZV9tb2R1bGU9ImRvY3V0aWxzIgogCXNob3J0X2Rlc2M9IiR7c2hvcnRfZGVzYy9Q eXRob24yL1B5dGhvbjN9IgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSAidXNyL2Jpbi8qMyIK --===============1008335249968892775==--