From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id BFB1B1FF14B for ; Sat, 24 Jan 2026 05:13:40 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 8479A1893F; Sat, 24 Jan 2026 05:13:59 +0100 (CET) Mime-Version: 1.0 Date: Sat, 24 Jan 2026 12:13:35 +0800 Message-Id: To: "Proxmox VE development discussion" Cc: "pve-devel" From: "Kefu Chai" X-Mailer: aerc 0.20.0 References: <20260123075619.2731724-3-k.chai@proxmox.com> <1769170653.ul6jn3m5d0.astroid@yuna.none> In-Reply-To: <1769170653.ul6jn3m5d0.astroid@yuna.none> X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1769227960706 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.381 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_ASCII_DIVIDERS 0.8 Email that uses ascii formatting dividers and possible spam tricks KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment KAM_LOTSOFHASH 0.25 Emails with lots of hash-like gibberish KAM_SHORT 0.001 Use of a URL Shortener for very short URL RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [build.py, ppath.name, cephadm.py, quay.io, parent.name, docker.io, proxmox.com] Subject: Re: [pve-devel] [PATCH ceph 1/4 v5] cherry-pick changes to use system packages for bundled deps X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" T24gRnJpIEphbiAyMywgMjAyNiBhdCA5OjAzIFBNIENTVCwgRmFiaWFuIEdyw7xuYmljaGxlciB3 cm90ZToKPiBvbmUgc21hbGwgcXVlc3Rpb24gaW5saW5lLCBvdGhlcndpc2UgdGhpcyBvbmUgTEdU TQo+Cj4gT24gSmFudWFyeSAyMywgMjAyNiA4OjU2IGFtLCBLZWZ1IENoYWkgd3JvdGU6Cj4+IFBy ZXZpb3VzbHksIGNlcGhhZG0ncyBidWlsZCBwcm9jZXNzIHB1bGxlZCBkZXBlbmRlbmNpZXMgZnJv bSBQeVBJLAo+PiB3aGljaCBmYWlsZWQgaW4gZW52aXJvbm1lbnRzIHdpdGggcmVzdHJpY3RlZCBu ZXR3b3JrIGFjY2Vzcy4gVGhpcwo+PiBjaGFuZ2UgYmFja3BvcnRzIHVwc3RyZWFtIGltcHJvdmVt ZW50cyB0aGF0IGVuYWJsZSBidWlsZGluZyBjZXBoYWRtCj4+IHVzaW5nIHN5c3RlbSBwYWNrYWdl cyBpbnN0ZWFkLCBtaXJyb3JpbmcgdGhlIGV4aXN0aW5nIFJQTSBwYWNrYWdpbmcKPj4gd29ya2Zs b3cuCj4+IAo+PiBBbmQgdGhlIHZlbmRvcmVkIEFycm93IHB1bGxlZCB4c2ltZCBmcm9tIEdpdEh1 YiwgdGhpcyBhbHNvIGZhaWxlZCBpbgo+PiBidWlsZGluZyBlbnZpcm9ubWVudCB3aXRob3V0IG5l dHdvcmsgYWNjZXNzLiBUaGlzIGNoYW5nZSBiYWNrcG9ydHMKPj4gdXBzdHJlYW0gaW1wcm92ZW1l bnRzIGVuYWJsaW5nIHRoZSBidWlsZCB0byB1c2UgbGlieHNpbWQtZGV2IHBhY2thZ2UKPj4gd2hl biBidWlsZGluZyBkZWJpYW4gcGFja2FnZXMuCj4+IAo+PiBCYWNrcG9ydGVkIGNoYW5nZXM6Cj4+ IC0gaHR0cHM6Ly9naXRodWIuY29tL2NlcGgvY2VwaC9wdWxsLzY2MjU2IC0gVXNlIHN5c3RlbSBw YWNrYWdlcyBmb3IKPj4gICBjZXBoYWRtIGJ1bmRsZWQgZGVwZW5kZW5jaWVzCj4+IC0gaHR0cHM6 Ly9naXRodWIuY29tL2NlcGgvY2VwaC9wdWxsLzY2MjQ4IC0gQWRkIGxpYnhzaW1kLWRldiBidWls ZAo+PiAgIGRlcGVuZGVuY3kgZm9yIHZlbmRvcmVkIEFycm93Cj4+IC0gaHR0cHM6Ly9naXRodWIu Y29tL2NlcGgvY2VwaC9wdWxsLzY1MjkyIC0gY2VwaGFkbTogZml4IGJ1aWxkaW5nCj4+ICAgcnBt LXNvdXJjZWQgY2VwaGFkbSB6aXBwYXBwIG9uIGVsMTAKPj4gCj4+IE5vdGU6IFRlc3QgY29tbWl0 cyBmcm9tIHRoZXNlIFBScyBhcmUgZXhjbHVkZWQgZnJvbSB0aGlzIGJhY2twb3J0Lgo+PiAKPj4g U2lnbmVkLW9mZi1ieTogS2VmdSBDaGFpIDxrLmNoYWlAcHJveG1veC5jb20+Cj4+IC0tLQo+PiAg Li4uLWlzc3Vlcy1ydW5uaW5nLWV4aXN0aW5nLWNlcGhhZG0tYnVpLnBhdGNoIHwgIDY2ICsrKysr Cj4+ICAuLi5yb290X2VudHJpZXMtcG9wdWxhdGlvbi1pbi12ZXJzaW9uLWMucGF0Y2ggfCAgNjIg KysrKysKPj4gIC4uLmNlcGhhZG0tcnBtLWJhc2VkLWJ1aWxkcy13aXRob3V0LXRvcC5wYXRjaCB8 ICA4OSArKysrKysKPj4gIC4uLmQtRGViaWFuLXBhY2thZ2Utc3VwcG9ydC1mb3ItYnVuZGxlZC5w YXRjaCB8IDI2MSArKysrKysrKysrKysrKysrKysKPj4gIC4uLm0tcGFja2FnZXMtZm9yLWNlcGhh ZG0tYnVuZGxlZC1kZXBlbi5wYXRjaCB8ICA1NCArKysrCj4+ICAuLi4tVXNlLUFVVE8tbW9kZS1m b3IteHNpbWQtZGVwZW5kZW5jeS0ucGF0Y2ggfCAgNTUgKysrKwo+PiAgLi4uZGQtbGlieHNpbWQt ZGV2LWJ1aWxkLWRlcGVuZGVuY3ktZm9yLnBhdGNoIHwgIDQxICsrKwo+PiAgcGF0Y2hlcy9zZXJp ZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4ICsKPj4gIDggZmlsZXMgY2hh bmdlZCwgNjM2IGluc2VydGlvbnMoKykKPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzLzAw NDItY2VwaGFkbS1maXgtc29tZS1pc3N1ZXMtcnVubmluZy1leGlzdGluZy1jZXBoYWRtLWJ1aS5w YXRjaAo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvMDA0My1jZXBoYWRtLWZpeC16aXBf cm9vdF9lbnRyaWVzLXBvcHVsYXRpb24taW4tdmVyc2lvbi1jLnBhdGNoCj4+ICBjcmVhdGUgbW9k ZSAxMDA2NDQgcGF0Y2hlcy8wMDQ0LWNlcGhhZG0tc3VwcG9ydC1jZXBoYWRtLXJwbS1iYXNlZC1i dWlsZHMtd2l0aG91dC10b3AucGF0Y2gKPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzLzAw NDUtY2VwaGFkbS1idWlsZC1BZGQtRGViaWFuLXBhY2thZ2Utc3VwcG9ydC1mb3ItYnVuZGxlZC5w YXRjaAo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvMDA0Ni1kZWJpYW4tVXNlLXN5c3Rl bS1wYWNrYWdlcy1mb3ItY2VwaGFkbS1idW5kbGVkLWRlcGVuLnBhdGNoCj4+ICBjcmVhdGUgbW9k ZSAxMDA2NDQgcGF0Y2hlcy8wMDQ3LWNtYWtlLUJ1aWxkQXJyb3ctVXNlLUFVVE8tbW9kZS1mb3It eHNpbWQtZGVwZW5kZW5jeS0ucGF0Y2gKPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzLzAw NDgtZGViaWFuLWNvbnRyb2wtQWRkLWxpYnhzaW1kLWRldi1idWlsZC1kZXBlbmRlbmN5LWZvci5w YXRjaAo+PiAKPj4gZGlmZiAtLWdpdCBhL3BhdGNoZXMvMDA0Mi1jZXBoYWRtLWZpeC1zb21lLWlz c3Vlcy1ydW5uaW5nLWV4aXN0aW5nLWNlcGhhZG0tYnVpLnBhdGNoIGIvcGF0Y2hlcy8wMDQyLWNl cGhhZG0tZml4LXNvbWUtaXNzdWVzLXJ1bm5pbmctZXhpc3RpbmctY2VwaGFkbS1idWkucGF0Y2gK Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggMDAwMDAwMDAwMDAuLmM2MjA4YjBkYjJh Cj4+IC0tLSAvZGV2L251bGwKPj4gKysrIGIvcGF0Y2hlcy8wMDQyLWNlcGhhZG0tZml4LXNvbWUt aXNzdWVzLXJ1bm5pbmctZXhpc3RpbmctY2VwaGFkbS1idWkucGF0Y2gKPj4gQEAgLTAsMCArMSw2 NiBAQAo+PiArRnJvbSAyNjg1ZjZjMzUyNDVkMDMzZTczZTE2ZWNlM2UzNTZmY2VhZDQ0Y2VhIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQo+PiArRnJvbTogSm9obiBNdWxsaWdhbiA8am11bGxpZ2Fu QHJlZGhhdC5jb20+Cj4+ICtEYXRlOiBUaHUsIDIxIEF1ZyAyMDI1IDEyOjMwOjU1IC0wNDAwCj4+ ICtTdWJqZWN0OiBbUEFUQ0ggNDIvNDZdIGNlcGhhZG06IGZpeCBzb21lIGlzc3VlcyBydW5uaW5n IGV4aXN0aW5nIGNlcGhhZG0gYnVpbGQKPj4gKyB0ZXN0cwo+PiArCj4+ICtBcyB0aW1lIGhhcyBt YXJjaGVkIG9uIGFuZCBwZW9wbGUgY2hhbmdlZCB0aGluZ3Mgb3VyIHRlc3RzIG5vIGxvbmdlcgo+ PiArbWF0Y2ggdGhlIGV4cGVjdGVkIGlucHV0cy4KPj4gKwo+PiArU2lnbmVkLW9mZi1ieTogSm9o biBNdWxsaWdhbiA8am11bGxpZ2FuQHJlZGhhdC5jb20+Cj4+ICsoY2hlcnJ5IHBpY2tlZCBmcm9t IGNvbW1pdCAzMWM4MDEwZmFhNDE3Y2E1MzYxNGJkMzAzNzlhOWI5YzBjOTE5OWRlKQo+PiArLS0t Cj4+ICsgc3JjL2NlcGhhZG0vdGVzdHMvYnVpbGQvdGVzdF9jZXBoYWRtX2J1aWxkLnB5IHwgMTgg KysrKysrKysrKysrLS0tLS0tCj4+ICsgMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyks IDYgZGVsZXRpb25zKC0pCj4+ICsKPj4gK2RpZmYgLS1naXQgYS9zcmMvY2VwaGFkbS90ZXN0cy9i dWlsZC90ZXN0X2NlcGhhZG1fYnVpbGQucHkgYi9zcmMvY2VwaGFkbS90ZXN0cy9idWlsZC90ZXN0 X2NlcGhhZG1fYnVpbGQucHkKPj4gK2luZGV4IGMyOTk1YTc2ZDRiLi45YmVlZjY3ZmZlMCAxMDA2 NDQKPj4gKy0tLSBhL3NyYy9jZXBoYWRtL3Rlc3RzL2J1aWxkL3Rlc3RfY2VwaGFkbV9idWlsZC5w eQo+PiArKysrIGIvc3JjL2NlcGhhZG0vdGVzdHMvYnVpbGQvdGVzdF9jZXBoYWRtX2J1aWxkLnB5 Cj4+ICtAQCAtMzQsMTIgKzM0LDEyIEBAIENPTlRBSU5FUlMgPSB7Cj4+ICsgICAgIH0sCj4+ICsg ICAgICd1YnVudHUtMjAuMDQnOiB7Cj4+ICsgICAgICAgICAnbmFtZSc6ICdjZXBoYWRtLWJ1aWxk LXRlc3Q6dWJ1bnR1LTIwLTA0LXB5MycsCj4+ICstICAgICAgICAnYmFzZV9pbWFnZSc6ICdxdWF5 LmlvL2xpYnJhcnkvdWJ1bnR1OjIwLjA0JywKPj4gKysgICAgICAgICdiYXNlX2ltYWdlJzogJ2Rv Y2tlci5pby9saWJyYXJ5L3VidW50dToyMC4wNCcsCj4+ICsgICAgICAgICAnc2NyaXB0JzogJ2Fw dCB1cGRhdGUgJiYgYXB0IGluc3RhbGwgLXkgcHl0aG9uMy12ZW52JywKPj4gKyAgICAgfSwKPj4g KyAgICAgJ3VidW50dS0yMi4wNCc6IHsKPj4gKyAgICAgICAgICduYW1lJzogJ2NlcGhhZG0tYnVp bGQtdGVzdDp1YnVudHUtMjItMDQtcHkzJywKPj4gKy0gICAgICAgICdiYXNlX2ltYWdlJzogJ3F1 YXkuaW8vbGlicmFyeS91YnVudHU6MjIuMDQnLAo+PiArKyAgICAgICAgJ2Jhc2VfaW1hZ2UnOiAn ZG9ja2VyLmlvL2xpYnJhcnkvdWJ1bnR1OjIyLjA0JywKPj4gKyAgICAgICAgICdzY3JpcHQnOiAn YXB0IHVwZGF0ZSAmJiBhcHQgaW5zdGFsbCAteSBweXRob24zLXZlbnYnLAo+PiArICAgICB9LAo+ PiArIH0KPj4gK0BAIC0xMjgsOCArMTI4LDggQEAgZGVmIHRlc3RfY2VwaGFkbV9idWlsZChlbnYs IHNvdXJjZV9kaXIsIHRtcF9wYXRoKToKPj4gKyAgICAgYXNzZXJ0IGFsbCgncmVxdWlyZW1lbnRz X2VudHJ5JyBpbiB2IGZvciB2IGluIGRhdGFbJ2J1bmRsZWRfcGFja2FnZXMnXSkKPj4gKyAgICAg YXNzZXJ0ICd6aXBfcm9vdF9lbnRyaWVzJyBpbiBkYXRhCj4+ICsgICAgIHpyZSA9IGRhdGFbJ3pp cF9yb290X2VudHJpZXMnXQo+PiArLSAgICBhc3NlcnQgYW55KGUuc3RhcnRzd2l0aCgnSmluamEy JykgZm9yIGUgaW4genJlKQo+PiArLSAgICBhc3NlcnQgYW55KGUuc3RhcnRzd2l0aCgnTWFya3Vw U2FmZScpIGZvciBlIGluIHpyZSkKPj4gKysgICAgYXNzZXJ0IGFueShfZGlzdF9pbmZvKGUsICdK aW5qYTInKSBmb3IgZSBpbiB6cmUpCj4+ICsrICAgIGFzc2VydCBhbnkoX2Rpc3RfaW5mbyhlLCAn TWFya3VwU2FmZScpIGZvciBlIGluIHpyZSkKPj4gKyAgICAgYXNzZXJ0IGFueShlLnN0YXJ0c3dp dGgoJ2ppbmphMicpIGZvciBlIGluIHpyZSkKPj4gKyAgICAgYXNzZXJ0IGFueShlLnN0YXJ0c3dp dGgoJ21hcmt1cHNhZmUnKSBmb3IgZSBpbiB6cmUpCj4+ICsgICAgIGFzc2VydCBhbnkoZS5zdGFy dHN3aXRoKCdjZXBoYWRtbGliJykgZm9yIGUgaW4genJlKQo+PiArQEAgLTE4NCw5ICsxODQsMTUg QEAgZGVmIHRlc3RfY2VwaGFkbV9idWlsZF9mcm9tX3JwbXMoZW52LCBzb3VyY2VfZGlyLCB0bXBf cGF0aCk6Cj4+ICsgICAgIGFzc2VydCBhbGwoJ3JlcXVpcmVtZW50c19lbnRyeScgaW4gdiBmb3Ig diBpbiBkYXRhWydidW5kbGVkX3BhY2thZ2VzJ10pCj4+ICsgICAgIGFzc2VydCAnemlwX3Jvb3Rf ZW50cmllcycgaW4gZGF0YQo+PiArICAgICB6cmUgPSBkYXRhWyd6aXBfcm9vdF9lbnRyaWVzJ10K Pj4gKy0gICAgYXNzZXJ0IGFueShlLnN0YXJ0c3dpdGgoJ0ppbmphMicpIGZvciBlIGluIHpyZSkK Pj4gKy0gICAgYXNzZXJ0IGFueShlLnN0YXJ0c3dpdGgoJ01hcmt1cFNhZmUnKSBmb3IgZSBpbiB6 cmUpCj4+ICsrICAgIGFzc2VydCBhbnkoX2Rpc3RfaW5mbyhlLCAnSmluamEyJykgZm9yIGUgaW4g enJlKQo+PiArKyAgICBhc3NlcnQgYW55KF9kaXN0X2luZm8oZSwgJ01hcmt1cFNhZmUnKSBmb3Ig ZSBpbiB6cmUpCj4+ICsgICAgIGFzc2VydCBhbnkoZS5zdGFydHN3aXRoKCdqaW5qYTInKSBmb3Ig ZSBpbiB6cmUpCj4+ICsgICAgIGFzc2VydCBhbnkoZS5zdGFydHN3aXRoKCdtYXJrdXBzYWZlJykg Zm9yIGUgaW4genJlKQo+PiArICAgICBhc3NlcnQgYW55KGUuc3RhcnRzd2l0aCgnY2VwaGFkbWxp YicpIGZvciBlIGluIHpyZSkKPj4gKyAgICAgYXNzZXJ0IGFueShlLnN0YXJ0c3dpdGgoJ19jZXBo YWRtbWV0YScpIGZvciBlIGluIHpyZSkKPj4gKysKPj4gKysKPj4gKytkZWYgX2Rpc3RfaW5mbyhl bnRyeSwgbmFtZSk6Cj4+ICsrICAgIHJldHVybiAoCj4+ICsrICAgICAgICBlbnRyeS5zdGFydHN3 aXRoKGVudHJ5KSBvciBlbnRyeS5zdGFydHN3aXRoKGVudHJ5Lmxvd2VyKCkpCj4+ICsrICAgICkg YW5kIChlbnRyeS5lbmRzd2l0aCgnLmRpc3QtaW5mbycpIG9yIGVudHJ5LmVuZHN3aXRoKCcuZWdn LWluZm8nKSkKPj4gKy0tIAo+PiArMi40Ny4zCj4+ICsKPj4gZGlmZiAtLWdpdCBhL3BhdGNoZXMv MDA0My1jZXBoYWRtLWZpeC16aXBfcm9vdF9lbnRyaWVzLXBvcHVsYXRpb24taW4tdmVyc2lvbi1j LnBhdGNoIGIvcGF0Y2hlcy8wMDQzLWNlcGhhZG0tZml4LXppcF9yb290X2VudHJpZXMtcG9wdWxh dGlvbi1pbi12ZXJzaW9uLWMucGF0Y2gKPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXgg MDAwMDAwMDAwMDAuLjdhMGIxYTE4ZDY4Cj4+IC0tLSAvZGV2L251bGwKPj4gKysrIGIvcGF0Y2hl cy8wMDQzLWNlcGhhZG0tZml4LXppcF9yb290X2VudHJpZXMtcG9wdWxhdGlvbi1pbi12ZXJzaW9u LWMucGF0Y2gKPj4gQEAgLTAsMCArMSw2MiBAQAo+PiArRnJvbSAyYzIwYWU5NWYzMmEyYmRmNzg1 NzYyNTJmMWM5MTcxZjAwYTI3OTBlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQo+PiArRnJvbTog S2VmdSBDaGFpIDxrLmNoYWlAcHJveG1veC5jb20+Cj4+ICtEYXRlOiBNb24sIDEwIE5vdiAyMDI1 IDEyOjExOjA4ICswODAwCj4+ICtTdWJqZWN0OiBbUEFUQ0ggNDMvNDZdIGNlcGhhZG06IGZpeCB6 aXBfcm9vdF9lbnRyaWVzIHBvcHVsYXRpb24gaW4gdmVyc2lvbgo+PiArIGNvbW1hbmQKPj4gKwo+ PiArVGhlICdjZXBoYWRtIHZlcnNpb24gLS12ZXJib3NlJyBjb21tYW5kIHdhcyByZXR1cm5pbmcg YW4gZW1wdHkKPj4gK3ppcF9yb290X2VudHJpZXMgbGlzdCBiZWNhdXNlIGl0IHJlbGllZCBvbiB0 aGUgcHJpdmF0ZSAnX2ZpbGVzJwo+PiArYXR0cmlidXRlIG9mIHppcGltcG9ydC56aXBpbXBvcnRl ciwgd2hpY2ggaXMgbm90IHJlbGlhYmx5IHBvcHVsYXRlZAo+PiArYWNyb3NzIFB5dGhvbiB2ZXJz aW9ucy4KPj4gKwo+PiArVGhpcyBjb21taXQgZml4ZXMgdGhlIGlzc3VlIGJ5IHVzaW5nIHRoZSB6 aXBmaWxlIG1vZHVsZSB0byBwcm9wZXJseQo+PiArcmVhZCB0aGUgYXJjaGl2ZSBjb250ZW50cyB2 aWEgdGhlIGxvYWRlci5hcmNoaXZlIHBhdGguIFRoaXMgZW5zdXJlcwo+PiArdGhhdCB6aXBfcm9v dF9lbnRyaWVzIGlzIGNvcnJlY3RseSBwb3B1bGF0ZWQgd2l0aCB0aGUgcm9vdC1sZXZlbAo+PiAr ZGlyZWN0b3JpZXMgaW4gdGhlIHppcGFwcC4KPj4gKwo+PiArVGhpcyBmaXggaXMgbmVjZXNzYXJ5 IGZvciB0aGUgY2VwaGFkbSBidWlsZCB0ZXN0cyB0byBwcm9wZXJseSB2YWxpZGF0ZQo+PiArdGhh dCBhbGwgZXhwZWN0ZWQgcGFja2FnZXMgYW5kIG1vZHVsZXMgYXJlIGluY2x1ZGVkIGluIHRoZSBi dWlsdCB6aXBhcHAuCj4+ICsKPj4gK1NpZ25lZC1vZmYtYnk6IEtlZnUgQ2hhaSA8ay5jaGFpQHBy b3htb3guY29tPgo+PiArKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMmM2OGMxNDk2ZGJiN2Nk MDFiZjc4M2UzMTUxMDk0MDQ0NTA0MGEzNCkKPj4gKy0tLQo+PiArIHNyYy9jZXBoYWRtL2NlcGhh ZG0ucHkgfCAxNiArKysrKysrKysrKystLS0tCj4+ICsgMSBmaWxlIGNoYW5nZWQsIDEyIGluc2Vy dGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCj4+ICsKPj4gK2RpZmYgLS1naXQgYS9zcmMvY2VwaGFk bS9jZXBoYWRtLnB5IGIvc3JjL2NlcGhhZG0vY2VwaGFkbS5weQo+PiAraW5kZXggZjc1YWFhODZk YWMuLjhkMDhjNzAwODY4IDEwMDc1NQo+PiArLS0tIGEvc3JjL2NlcGhhZG0vY2VwaGFkbS5weQo+ PiArKysrIGIvc3JjL2NlcGhhZG0vY2VwaGFkbS5weQo+PiArQEAgLTE2ODgsNiArMTY4OCw3IEBA IGRlZiBjb21tYW5kX3ZlcnNpb24oY3R4KToKPj4gKyAgICAgIyB0eXBlOiAoQ2VwaGFkbUNvbnRl eHQpIC0+IGludAo+PiArICAgICBpbXBvcnQgaW1wb3J0bGliCj4+ICsgICAgIGltcG9ydCB6aXBp bXBvcnQKPj4gKysgICAgaW1wb3J0IHppcGZpbGUKPj4gKyAgICAgaW1wb3J0IHR5cGVzCj4+ICsg Cj4+ICsgICAgIHZtb2Q6IE9wdGlvbmFsW3R5cGVzLk1vZHVsZVR5cGVdCj4+ICtAQCAtMTc0NCwx MCArMTc0NSwxNyBAQCBkZWYgY29tbWFuZF92ZXJzaW9uKGN0eCk6Cj4+ICsgICAgICAgICAgICAg b3V0WydidW5kbGVkX3BhY2thZ2VzJ10gPSBkZXBzX2luZm8KPj4gKyAgICAgICAgIGV4Y2VwdCBP U0Vycm9yOgo+PiArICAgICAgICAgICAgIHBhc3MKPj4gKy0gICAgICAgIGZpbGVzID0gZ2V0YXR0 cihsb2FkZXIsICdfZmlsZXMnLCB7fSkKPj4gKy0gICAgICAgIG91dFsnemlwX3Jvb3RfZW50cmll cyddID0gc29ydGVkKAo+PiArLSAgICAgICAgICAgIHtwLnNwbGl0KCcvJylbMF0gZm9yIHAgaW4g ZmlsZXMua2V5cygpfQo+PiArLSAgICAgICAgKQo+PiArKyAgICAgICAgIyBVc2UgemlwZmlsZSBt b2R1bGUgdG8gcHJvcGVybHkgcmVhZCB0aGUgYXJjaGl2ZSBjb250ZW50cwo+PiArKyAgICAgICAg IyBsb2FkZXIuYXJjaGl2ZSBjb250YWlucyB0aGUgcGF0aCB0byB0aGUgemlwIGZpbGUKPj4gKysg ICAgICAgIHRyeToKPj4gKysgICAgICAgICAgICB3aXRoIHppcGZpbGUuWmlwRmlsZShsb2FkZXIu YXJjaGl2ZSwgJ3InKSBhcyB6ZjoKPj4gKysgICAgICAgICAgICAgICAgZmlsZXMgPSB6Zi5uYW1l bGlzdCgpCj4+ICsrICAgICAgICAgICAgICAgIG91dFsnemlwX3Jvb3RfZW50cmllcyddID0gc29y dGVkKAo+PiArKyAgICAgICAgICAgICAgICAgICAge3Auc3BsaXQoJy8nKVswXSBmb3IgcCBpbiBm aWxlcyBpZiBwfQo+PiArKyAgICAgICAgICAgICAgICApCj4+ICsrICAgICAgICBleGNlcHQgKE9T RXJyb3IsIHppcGZpbGUuQmFkWmlwRmlsZSk6Cj4+ICsrICAgICAgICAgICAgIyBGYWxsYmFjayB0 byBlbXB0eSBsaXN0IGlmIHdlIGNhbid0IHJlYWQgdGhlIHppcAo+PiArKyAgICAgICAgICAgIG91 dFsnemlwX3Jvb3RfZW50cmllcyddID0gW10KPj4gKyAKPj4gKyAgICAganNvbi5kdW1wKG91dCwg c3lzLnN0ZG91dCwgaW5kZW50PTIpCj4+ICsgICAgIHByaW50KCkKPj4gKy0tIAo+PiArMi40Ny4z Cj4+ICsKPj4gZGlmZiAtLWdpdCBhL3BhdGNoZXMvMDA0NC1jZXBoYWRtLXN1cHBvcnQtY2VwaGFk bS1ycG0tYmFzZWQtYnVpbGRzLXdpdGhvdXQtdG9wLnBhdGNoIGIvcGF0Y2hlcy8wMDQ0LWNlcGhh ZG0tc3VwcG9ydC1jZXBoYWRtLXJwbS1iYXNlZC1idWlsZHMtd2l0aG91dC10b3AucGF0Y2gKPj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggMDAwMDAwMDAwMDAuLjZlMWI0ZGQyZTBlCj4+ IC0tLSAvZGV2L251bGwKPj4gKysrIGIvcGF0Y2hlcy8wMDQ0LWNlcGhhZG0tc3VwcG9ydC1jZXBo YWRtLXJwbS1iYXNlZC1idWlsZHMtd2l0aG91dC10b3AucGF0Y2gKPj4gQEAgLTAsMCArMSw4OSBA QAo+PiArRnJvbSA1Y2U3MjE3OGE3ODJkZmUyZTgwNjQ4MDYzYjAyNWJhMjNkOTZkNWQ4IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQo+PiArRnJvbTogSm9obiBNdWxsaWdhbiA8am11bGxpZ2FuQHJl ZGhhdC5jb20+Cj4+ICtEYXRlOiBUaHUsIDIxIEF1ZyAyMDI1IDEyOjQ0OjE3IC0wNDAwCj4+ICtT dWJqZWN0OiBbUEFUQ0ggNDQvNDZdIGNlcGhhZG06IHN1cHBvcnQgY2VwaGFkbSBycG0gYmFzZWQg YnVpbGRzIHdpdGhvdXQKPj4gKyB0b3BfbGV2ZWwudHh0Cj4+ICsKPj4gK1NpZ25lZC1vZmYtYnk6 IEpvaG4gTXVsbGlnYW4gPGptdWxsaWdhbkByZWRoYXQuY29tPgo+PiArKGNoZXJyeSBwaWNrZWQg ZnJvbSBjb21taXQgMjZhNDk5YThkYTMzOWQ4NzBhZjE5M2VhOTY0MzY4YWZiYzg0YzY5NCkKPj4g Ky0tLQo+PiArIHNyYy9jZXBoYWRtL2J1aWxkLnB5IHwgNTYgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0KPj4gKyAxIGZpbGUgY2hhbmdlZCwgNDIgaW5zZXJ0aW9u cygrKSwgMTQgZGVsZXRpb25zKC0pCj4+ICsKPj4gK2RpZmYgLS1naXQgYS9zcmMvY2VwaGFkbS9i dWlsZC5weSBiL3NyYy9jZXBoYWRtL2J1aWxkLnB5Cj4+ICtpbmRleCA0M2JjNThhNDAwMy4uMDFj OTFmYzE2ODAgMTAwNzU1Cj4+ICstLS0gYS9zcmMvY2VwaGFkbS9idWlsZC5weQo+PiArKysrIGIv c3JjL2NlcGhhZG0vYnVpbGQucHkKPj4gK0BAIC00MzQsNiArNDM0LDQ3IEBAIGRlZiBfaW5zdGFs bF9ycG1fZGVwcyh0ZW1wZGlyLCBjb25maWcpOgo+PiArICAgICByZXR1cm4gZGluZm8KPj4gKyAK Pj4gKyAKPj4gKytkZWYgX2dhdGhlcl9ycG1fcGFja2FnZV9kaXJzKHBhdGhzKToKPj4gKysgICAg IyA9IFRoZSBlYXN5IHdheSA9Cj4+ICsrICAgICMgdGhlIHRvcF9sZXZlbC50eHQgZmlsZSBjYW4g YmUgdXNlZCB0byBkZXRlcm1pbmUgd2hlcmUgdGhlIHB5dGhvbiBwYWNrYWdlcwo+PiArKyAgICAj IGFjdHVhbGx5IGFyZS4gV2UgbmVlZCBhbGwgb2YgdGhvc2UgYW5kIHRoZSBtZXRhLWRhdGEgZGly IChwYXJlbnQgb2YKPj4gKysgICAgIyB0b3BfbGV2ZWwudHh0KSB0byBiZSBpbmNsdWRlZCBpbiBv dXIgemlwYXBwCj4+ICsrICAgIHRvcF9sZXZlbCA9IE5vbmUKPj4gKysgICAgZm9yIHBhdGggaW4g cGF0aHM6Cj4+ICsrICAgICAgICBpZiBwYXRoLmVuZHN3aXRoKCd0b3BfbGV2ZWwudHh0Jyk6Cj4+ ICsrICAgICAgICAgICAgdG9wX2xldmVsID0gcGF0aGxpYi5QYXRoKHBhdGgpCj4+ICsrICAgIGlm IHRvcF9sZXZlbDoKPj4gKysgICAgICAgIG1ldGFfZGlyID0gdG9wX2xldmVsLnBhcmVudAo+PiAr KyAgICAgICAgcGtnX2RpcnMgPSBbCj4+ICsrICAgICAgICAgICAgdG9wX2xldmVsLnBhcmVudC5w YXJlbnQgLyBwCj4+ICsrICAgICAgICAgICAgZm9yIHAgaW4gdG9wX2xldmVsLnJlYWRfdGV4dCgp LnNwbGl0bGluZXMoKQo+PiArKyAgICAgICAgXQo+PiArKyAgICAgICAgcmV0dXJuIG1ldGFfZGly LCBwa2dfZGlycwo+PiArKyAgICAjID0gVGhlIGhhcmQgd2F5ID0KPj4gKysgICAgIyBsb29wIHRo cm91Z2ggdGhlIGRpcmVjdG9yaWVzIHRvIGZpbmQgdGhlIC5kaXN0LWluZm8gZGlyIChjb250YWlu aW5nIHRoZQo+PiArKyAgICAjIG1hbmRhdG9yeSBNRVRBREFUQSBmaWxlLCBhY2NvcmRpbmcgdG8g dGhlIHNwZWMpIGFuZCBvbmNlIHdlIGtub3cgdGhlCj4+ICsrICAgICMgbG9jYXRpb24gb2YgZGlz dCBpbmZvIHdlIGZpbmQgdGhlIHNpYmxpbmcgcGF0aHMgZnJvbSB0aGUgcnBtIGxpc3RpbmcKPj4g KysgICAgZGlzdF9pbmZvID0gTm9uZQo+PiArKyAgICBwcGF0aHMgPSBbXQo+PiArKyAgICBmb3Ig cGF0aCBpbiBwYXRoczoKPj4gKysgICAgICAgIHBwYXRoID0gcGF0aGxpYi5QYXRoKHBhdGgpCj4+ ICsrICAgICAgICBwcGF0aHMuYXBwZW5kKHBwYXRoKQo+PiArKyAgICAgICAgaWYgcHBhdGgubmFt ZSA9PSAnTUVUQURBVEEnIGFuZCBwcGF0aC5wYXJlbnQubmFtZS5lbmRzd2l0aCgnLmRpc3QtaW5m bycpOgo+PiArKyAgICAgICAgICAgIGRpc3RfaW5mbyA9IHBwYXRoLnBhcmVudAo+PiArKyAgICAg ICAgICAgIGJyZWFrCj4+ICsrICAgIGlmIG5vdCBkaXN0X2luZm86Cj4+ICsrICAgICAgICByYWlz ZSBWYWx1ZUVycm9yKCdubyAuZGlzdC1pbmZvIE1FVEFEQVRBIGZvdW5kJykKPj4gKysgICAgaWYg bm90IGRpc3RfaW5mby5wYXJlbnQubmFtZSA9PSAnc2l0ZS1wYWNrYWdlcyc6Cj4+ICsrICAgICAg ICByYWlzZSBWYWx1ZUVycm9yKAo+PiArKyAgICAgICAgICAgICd1bmV4cGVjdGVkIHBhcmVudCBk aXJlY3RvcnkgKG5vdCBzaXRlLXBhY2thZ2VzKTonCj4+ICsrICAgICAgICAgICAgZicge2Rpc3Rf aW5mby5wYXJlbnQubmFtZX0nCj4+ICsrICAgICAgICApCj4+ICsrICAgIHNpYmxpbmdzID0gWwo+ PiArKyAgICAgICAgcCBmb3IgcCBpbiBwcGF0aHMgaWYgcC5wYXJlbnQgPT0gZGlzdF9pbmZvLnBh cmVudCBhbmQgcCAhPSBkaXN0X2luZm8KPj4gKysgICAgXQo+PiArKyAgICByZXR1cm4gZGlzdF9p bmZvLCBzaWJsaW5ncwo+PiArKwo+PiArKwo+PiArIGRlZiBfZGVwc19mcm9tX3JwbSh0ZW1wZGly LCBjb25maWcsIGRpbmZvLCBwa2cpOgo+PiArICAgICAjIGZpcnN0LCBmaWd1cmUgb3V0IHdoYXQg cnBtIHByb3ZpZGVzIGEgcGFydGljdWxhciBweXRob24gbGliCj4+ICsgICAgIGRpc3QgPSBmJ3B5 dGhvbjMue3N5cy52ZXJzaW9uX2luZm8ubWlub3J9ZGlzdCh7cGtnfSknLmxvd2VyKCkKPj4gK0BA IC00NjksMjAgKzUxMCw3IEBAIGRlZiBfZGVwc19mcm9tX3JwbSh0ZW1wZGlyLCBjb25maWcsIGRp bmZvLCBwa2cpOgo+PiArICAgICAgICAgWydycG0nLCAnLXFsJywgcnBtbmFtZV0sIGNoZWNrPVRy dWUsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUKPj4gKyAgICAgKQo+PiArICAgICBwYXRocyA9IFts LmRlY29kZSgndXRmOCcpIGZvciBsIGluIHJlcy5zdGRvdXQuc3BsaXRsaW5lcygpXQo+PiArLSAg ICAjIHRoZSB0b3BfbGV2ZWwudHh0IGZpbGUgY2FuIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXJl IHRoZSBweXRob24gcGFja2FnZXMKPj4gKy0gICAgIyBhY3R1YWxseSBhcmUuIFdlIG5lZWQgYWxs IG9mIHRob3NlIGFuZCB0aGUgbWV0YS1kYXRhIGRpciAocGFyZW50IG9mCj4+ICstICAgICMgdG9w X2xldmVsLnR4dCkgdG8gYmUgaW5jbHVkZWQgaW4gb3VyIHppcGFwcAo+PiArLSAgICB0b3BfbGV2 ZWwgPSBOb25lCj4+ICstICAgIGZvciBwYXRoIGluIHBhdGhzOgo+PiArLSAgICAgICAgaWYgcGF0 aC5lbmRzd2l0aCgndG9wX2xldmVsLnR4dCcpOgo+PiArLSAgICAgICAgICAgIHRvcF9sZXZlbCA9 IHBhdGhsaWIuUGF0aChwYXRoKQo+PiArLSAgICBpZiBub3QgdG9wX2xldmVsOgo+PiArLSAgICAg ICAgcmFpc2UgVmFsdWVFcnJvcigndG9wX2xldmVsIG5vdCBmb3VuZCcpCj4+ICstICAgIG1ldGFf ZGlyID0gdG9wX2xldmVsLnBhcmVudAo+PiArLSAgICBwa2dfZGlycyA9IFsKPj4gKy0gICAgICAg IHRvcF9sZXZlbC5wYXJlbnQucGFyZW50IC8gcAo+PiArLSAgICAgICAgZm9yIHAgaW4gdG9wX2xl dmVsLnJlYWRfdGV4dCgpLnNwbGl0bGluZXMoKQo+PiArLSAgICBdCj4+ICsrICAgIG1ldGFfZGly LCBwa2dfZGlycyA9IF9nYXRoZXJfcnBtX3BhY2thZ2VfZGlycyhwYXRocykKPj4gKyAgICAgbWV0 YV9kZXN0ID0gdGVtcGRpciAvIG1ldGFfZGlyLm5hbWUKPj4gKyAgICAgbG9nLmluZm8oZiJDb3B5 aW5nIHttZXRhX2Rpcn0gdG8ge21ldGFfZGVzdH0iKQo+PiArICAgICAjIGNvcHkgdGhlIG1ldGEg ZGF0YSBkaXJlY3RvcnkKPj4gKy0tIAo+PiArMi40Ny4zCj4+ICsKPj4gZGlmZiAtLWdpdCBhL3Bh dGNoZXMvMDA0NS1jZXBoYWRtLWJ1aWxkLUFkZC1EZWJpYW4tcGFja2FnZS1zdXBwb3J0LWZvci1i dW5kbGVkLnBhdGNoIGIvcGF0Y2hlcy8wMDQ1LWNlcGhhZG0tYnVpbGQtQWRkLURlYmlhbi1wYWNr YWdlLXN1cHBvcnQtZm9yLWJ1bmRsZWQucGF0Y2gKPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4g aW5kZXggMDAwMDAwMDAwMDAuLjk0MjQxNDkwYjY0Cj4+IC0tLSAvZGV2L251bGwKPj4gKysrIGIv cGF0Y2hlcy8wMDQ1LWNlcGhhZG0tYnVpbGQtQWRkLURlYmlhbi1wYWNrYWdlLXN1cHBvcnQtZm9y LWJ1bmRsZWQucGF0Y2gKPj4gQEAgLTAsMCArMSwyNjEgQEAKPj4gK0Zyb20gYTQ3NDRmZWIxNDU3 YWE3ZmIzZjQ3YjQyZjI5MTM4NjgyY2M3ZDQxYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKPj4g K0Zyb206IEtlZnUgQ2hhaSA8ay5jaGFpQHByb3htb3guY29tPgo+PiArRGF0ZTogVHVlLCAxNCBP Y3QgMjAyNSAyMTowNDo0MiArMDgwMAo+PiArU3ViamVjdDogW1BBVENIIDQ1LzQ2XSBjZXBoYWRt L2J1aWxkOiBBZGQgRGViaWFuIHBhY2thZ2Ugc3VwcG9ydCBmb3IgYnVuZGxlZAo+PiArIGRlcGVu ZGVuY2llcwo+PiArCj4+ICtFeHRlbmRzIHRoZSBjZXBoYWRtIGJ1aWxkIHNjcmlwdCB0byBzdXBw b3J0IGJ1bmRsaW5nIGRlcGVuZGVuY2llcyBmcm9tCj4+ICtEZWJpYW4gcGFja2FnZXMgaW4gYWRk aXRpb24gdG8gcGlwIGFuZCBSUE0gcGFja2FnZXMuIFRoaXMgYWxsb3dzIGJ1aWxkaW5nCj4+ICtj ZXBoYWRtIG9uIERlYmlhbi1iYXNlZCBkaXN0cmlidXRpb25zIHVzaW5nIHN5c3RlbSBwYWNrYWdl cy4KPj4gKwo+PiArS2V5IGNoYW5nZXM6Cj4+ICstIEFkZCAnZGViJyB0byBEZXBlbmRlbmN5TW9k ZSBlbnVtIHRvIGVuYWJsZSBEZWJpYW4gcGFja2FnZSBtb2RlCj4+ICstIEltcGxlbWVudCBfc2V0 dXBfZGViKCkgdG8gY29uZmlndXJlIERlYmlhbiBkZXBlbmRlbmN5IHJlcXVpcmVtZW50cwo+PiAr LSBBZGQgX2luc3RhbGxfZGViX2RlcHMoKSB0byBvcmNoZXN0cmF0ZSBEZWJpYW4gcGFja2FnZSBp bnN0YWxsYXRpb24KPj4gKy0gQWRkIF9nYXRoZXJfZGViX3BhY2thZ2VfZGlycygpIHRvIHBhcnNl IERlYmlhbiBwYWNrYWdlIGZpbGUgbGlzdGluZ3MKPj4gKyAgYW5kIGxvY2F0ZSBQeXRob24gcGFj a2FnZSBkaXJlY3RvcmllcyAoaGFuZGxlcyBib3RoIHNpdGUtcGFja2FnZXMgYW5kCj4+ICsgIGRp c3QtcGFja2FnZXMgZGlyZWN0b3JpZXMgdXNlZCBieSBEZWJpYW4pCj4+ICstIEFkZCBfZGVwc19m cm9tX2RlYigpIHRvIGV4dHJhY3QgUHl0aG9uIGRlcGVuZGVuY2llcyBmcm9tIGluc3RhbGxlZAo+ PiArICBEZWJpYW4gcGFja2FnZXMgdXNpbmcgZHBrZy9hcHQtY2FjaGUgdG9vbHMKPj4gKy0gRml4 IHZhcmlhYmxlIHJlZmVyZW5jZSBidWcgaW4gX2luc3RhbGxfZGVwcygpIChkZXBzLm1vZGUgLT4g Y29uZmlnLmRlcHNfbW9kZSkKPj4gKwo+PiArVGhlIERlYmlhbiBpbXBsZW1lbnRhdGlvbiBmb2xs b3dzIGEgc2ltaWxhciBwYXR0ZXJuIHRvIHRoZSBleGlzdGluZyBSUE0KPj4gK3N1cHBvcnQsIHVz aW5nIGRwa2ctcXVlcnkgYW5kIGRwa2cgLUwgdG8gbG9jYXRlIGluc3RhbGxlZCBwYWNrYWdlcyBh bmQKPj4gK3RoZWlyIGZpbGVzLCB3aXRoIHNwZWNpYWwgaGFuZGxpbmcgZm9yIERlYmlhbiBuYW1p bmcgY29udmVudGlvbnMKPj4gKyhlLmcuLCBQeVlBTUwgLT4gcHl0aG9uMy15YW1sKS4KPj4gKwo+ PiArU2lnbmVkLW9mZi1ieTogS2VmdSBDaGFpIDxrLmNoYWlAcHJveG1veC5jb20+Cj4+ICsoY2hl cnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAzZmY5YjBjMjRlMzNkZWJlOTVhMGEwYzZiNDJkYTMwYmU3 ODg4NzFjKQo+PiArLS0tCj4+ICsgc3JjL2NlcGhhZG0vYnVpbGQucHkgfCAxNTggKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQo+PiArIDEgZmlsZSBjaGFuZ2VkLCAx NDMgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCj4+ICsKPj4gK2RpZmYgLS1naXQgYS9z cmMvY2VwaGFkbS9idWlsZC5weSBiL3NyYy9jZXBoYWRtL2J1aWxkLnB5Cj4+ICtpbmRleCAwMWM5 MWZjMTY4MC4uNTNkMzk4M2RlODkgMTAwNzU1Cj4+ICstLS0gYS9zcmMvY2VwaGFkbS9idWlsZC5w eQo+PiArKysrIGIvc3JjL2NlcGhhZG0vYnVpbGQucHkKPj4gK0BAIC0xNTQsNiArMTU0LDcgQEAg Y2xhc3MgUGlwRW52KGVudW0uRW51bSk6Cj4+ICsgY2xhc3MgRGVwZW5kZW5jeU1vZGUoZW51bS5F bnVtKToKPj4gKyAgICAgcGlwID0gZW51bS5hdXRvKCkKPj4gKyAgICAgcnBtID0gZW51bS5hdXRv KCkKPj4gKysgICAgZGViID0gZW51bS5hdXRvKCkKPj4gKyAgICAgbm9uZSA9IGVudW0uYXV0bygp Cj4+ICsgCj4+ICsgCj4+ICtAQCAtMTY5LDYgKzE3MCw4IEBAIGNsYXNzIENvbmZpZzoKPj4gKyAg ICAgICAgICAgICBzZWxmLl9zZXR1cF9waXAoKQo+PiArICAgICAgICAgZWxpZiBzZWxmLmRlcHNf bW9kZSA9PSBEZXBlbmRlbmN5TW9kZS5ycG06Cj4+ICsgICAgICAgICAgICAgc2VsZi5fc2V0dXBf cnBtKCkKPj4gKysgICAgICAgIGVsaWYgc2VsZi5kZXBzX21vZGUgPT0gRGVwZW5kZW5jeU1vZGUu ZGViOgo+PiArKyAgICAgICAgICAgIHNlbGYuX3NldHVwX2RlYigpCj4+ICsgCj4+ICsgICAgIGRl ZiBfc2V0dXBfcGlwKHNlbGYpOgo+PiArICAgICAgICAgaWYgc2VsZi5fbWFqX21pbiA9PSAoMywg Nik6Cj4+ICtAQCAtMTgwLDYgKzE4Myw5IEBAIGNsYXNzIENvbmZpZzoKPj4gKyAgICAgZGVmIF9z ZXR1cF9ycG0oc2VsZik6Cj4+ICsgICAgICAgICBzZWxmLnJlcXVpcmVtZW50cyA9IFtJbnN0YWxs U3BlYygqKnYpIGZvciB2IGluIFBZX1JFUVVJUkVNRU5UU10KPj4gKyAKPj4gKysgICAgZGVmIF9z ZXR1cF9kZWIoc2VsZik6Cj4+ICsrICAgICAgICBzZWxmLnJlcXVpcmVtZW50cyA9IFtJbnN0YWxs U3BlYygqKnYpIGZvciB2IGluIFBZX1JFUVVJUkVNRU5UU10KPj4gKysKPj4gKyAKPj4gKyBjbGFz cyBEZXBlbmRlbmN5SW5mbzoKPj4gKyAgICAgIiIiVHlwZSBmb3IgdHJhY2tpbmcgYnVuZGxlZCBk ZXBlbmRlbmNpZXMuIiIiCj4+ICtAQCAtMzMzLDcgKzMzOSw5IEBAIGRlZiBfaW5zdGFsbF9kZXBz KHRlbXBkaXIsIGNvbmZpZyk6Cj4+ICsgICAgICAgICByZXR1cm4gX2luc3RhbGxfcGlwX2RlcHMo dGVtcGRpciwgY29uZmlnKQo+PiArICAgICBpZiBjb25maWcuZGVwc19tb2RlID09IERlcGVuZGVu Y3lNb2RlLnJwbToKPj4gKyAgICAgICAgIHJldHVybiBfaW5zdGFsbF9ycG1fZGVwcyh0ZW1wZGly LCBjb25maWcpCj4+ICstICAgIHJhaXNlIFZhbHVlRXJyb3IoZid1bmV4cGVjdGVkIGRlcHMgbW9k ZToge2RlcHMubW9kZX0nKQo+PiArKyAgICBpZiBjb25maWcuZGVwc19tb2RlID09IERlcGVuZGVu Y3lNb2RlLmRlYjoKPj4gKysgICAgICAgIHJldHVybiBfaW5zdGFsbF9kZWJfZGVwcyh0ZW1wZGly LCBjb25maWcpCj4+ICsrICAgIHJhaXNlIFZhbHVlRXJyb3IoZid1bmV4cGVjdGVkIGRlcHMgbW9k ZToge2NvbmZpZy5kZXBzX21vZGV9JykKPj4gKyAKPj4gKyAKPj4gKyBkZWYgX2luc3RhbGxfcGlw X2RlcHModGVtcGRpciwgY29uZmlnKToKPj4gK0BAIC00MzQsNyArNDQyLDI2IEBAIGRlZiBfaW5z dGFsbF9ycG1fZGVwcyh0ZW1wZGlyLCBjb25maWcpOgo+PiArICAgICByZXR1cm4gZGluZm8KPj4g KyAKPj4gKyAKPj4gKy1kZWYgX2dhdGhlcl9ycG1fcGFja2FnZV9kaXJzKHBhdGhzKToKPj4gKytk ZWYgX2luc3RhbGxfZGViX2RlcHModGVtcGRpciwgY29uZmlnKToKPj4gKysgICAgbG9nLmluZm8o Ikluc3RhbGxpbmcgZGVwZW5kZW5jaWVzIHVzaW5nIERlYmlhbiBwYWNrYWdlcyIpCj4+ICsrICAg IGRpbmZvID0gRGVwZW5kZW5jeUluZm8oY29uZmlnKQo+PiArKyAgICBmb3IgcGtnIGluIGNvbmZp Zy5yZXF1aXJlbWVudHM6Cj4+ICsrICAgICAgICBsb2cuaW5mbyhmIkxvb2tpbmcgZm9yIGRlYmlh biBwYWNrYWdlIGZvcjoge3BrZy5uYW1lIXJ9IikKPj4gKysgICAgICAgIF9kZXBzX2Zyb21fZGVi KHRlbXBkaXIsIGNvbmZpZywgZGluZm8sIHBrZy5uYW1lKQo+PiArKyAgICByZXR1cm4gZGluZm8K Pj4gKysKPj4gKysKPj4gKytkZWYgX2dhdGhlcl9wYWNrYWdlX2RpcnMocGF0aHMsIGV4cGVjdGVk X3BhcmVudF9kaXIpOgo+PiArKyAgICAiIiJQYXJzZSBwYWNrYWdlIGZpbGUgbGlzdGluZyB0byBm aW5kIFB5dGhvbiBwYWNrYWdlIGRpcmVjdG9yaWVzLgo+PiArKwo+PiArKyAgICBBcmdzOgo+PiAr KyAgICAgICAgcGF0aHM6IExpc3Qgb2YgZmlsZSBwYXRocyBmcm9tIHBhY2thZ2UgbGlzdGluZwo+ PiArKyAgICAgICAgZXhwZWN0ZWRfcGFyZW50X2RpcjogRXhwZWN0ZWQgcGFyZW50IGRpcmVjdG9y eSBuYW1lIChlLmcuLCAnc2l0ZS1wYWNrYWdlcycgZm9yIFJQTSwKPj4gKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAnZGlzdC1wYWNrYWdlcycgZm9yIERlYmlhbikKPj4gKysKPj4gKysgICAg UmV0dXJuczoKPj4gKysgICAgICAgIFR1cGxlIG9mIChtZXRhZGF0YV9kaXIsIHBhY2thZ2VfZGly cykKPj4gKysgICAgIiIiCj4+ICsgICAgICMgPSBUaGUgZWFzeSB3YXkgPQo+PiArICAgICAjIHRo ZSB0b3BfbGV2ZWwudHh0IGZpbGUgY2FuIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXJlIHRoZSBw eXRob24gcGFja2FnZXMKPj4gKyAgICAgIyBhY3R1YWxseSBhcmUuIFdlIG5lZWQgYWxsIG9mIHRo b3NlIGFuZCB0aGUgbWV0YS1kYXRhIGRpciAocGFyZW50IG9mCj4+ICtAQCAtNDUzLDcgKzQ4MCw3 IEBAIGRlZiBfZ2F0aGVyX3JwbV9wYWNrYWdlX2RpcnMocGF0aHMpOgo+PiArICAgICAjID0gVGhl IGhhcmQgd2F5ID0KPj4gKyAgICAgIyBsb29wIHRocm91Z2ggdGhlIGRpcmVjdG9yaWVzIHRvIGZp bmQgdGhlIC5kaXN0LWluZm8gZGlyIChjb250YWluaW5nIHRoZQo+PiArICAgICAjIG1hbmRhdG9y eSBNRVRBREFUQSBmaWxlLCBhY2NvcmRpbmcgdG8gdGhlIHNwZWMpIGFuZCBvbmNlIHdlIGtub3cg dGhlCj4+ICstICAgICMgbG9jYXRpb24gb2YgZGlzdCBpbmZvIHdlIGZpbmQgdGhlIHNpYmxpbmcg cGF0aHMgZnJvbSB0aGUgcnBtIGxpc3RpbmcKPj4gKysgICAgIyBsb2NhdGlvbiBvZiBkaXN0IGlu Zm8gd2UgZmluZCB0aGUgc2libGluZyBwYXRocyBmcm9tIHRoZSBwYWNrYWdlIGxpc3RpbmcKPj4g KyAgICAgZGlzdF9pbmZvID0gTm9uZQo+PiArICAgICBwcGF0aHMgPSBbXQo+PiArICAgICBmb3Ig cGF0aCBpbiBwYXRoczoKPj4gK0BAIC00NjQsOSArNDkxLDkgQEAgZGVmIF9nYXRoZXJfcnBtX3Bh Y2thZ2VfZGlycyhwYXRocyk6Cj4+ICsgICAgICAgICAgICAgYnJlYWsKPj4gKyAgICAgaWYgbm90 IGRpc3RfaW5mbzoKPj4gKyAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ25vIC5kaXN0LWluZm8g TUVUQURBVEEgZm91bmQnKQo+PiArLSAgICBpZiBub3QgZGlzdF9pbmZvLnBhcmVudC5uYW1lID09 ICdzaXRlLXBhY2thZ2VzJzoKPj4gKysgICAgaWYgZGlzdF9pbmZvLnBhcmVudC5uYW1lICE9IGV4 cGVjdGVkX3BhcmVudF9kaXI6Cj4+ICsgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAo+PiArLSAg ICAgICAgICAgICd1bmV4cGVjdGVkIHBhcmVudCBkaXJlY3RvcnkgKG5vdCBzaXRlLXBhY2thZ2Vz KTonCj4+ICsrICAgICAgICAgICAgZid1bmV4cGVjdGVkIHBhcmVudCBkaXJlY3RvcnkgKG5vdCB7 ZXhwZWN0ZWRfcGFyZW50X2Rpcn0pOicKPj4gKyAgICAgICAgICAgICBmJyB7ZGlzdF9pbmZvLnBh cmVudC5uYW1lfScKPj4gKyAgICAgICAgICkKPj4gKyAgICAgc2libGluZ3MgPSBbCj4+ICtAQCAt NDc1LDYgKzUwMiwzMSBAQCBkZWYgX2dhdGhlcl9ycG1fcGFja2FnZV9kaXJzKHBhdGhzKToKPj4g KyAgICAgcmV0dXJuIGRpc3RfaW5mbywgc2libGluZ3MKPj4gKyAKPj4gKyAKPj4gKytkZWYgX2Nv cHlfcGFja2FnZV9maWxlcyh0ZW1wZGlyLCBwYXRocywgZXhwZWN0ZWRfcGFyZW50X2Rpcik6Cj4+ ICsrICAgICIiIkNvcHkgcGFja2FnZSBmaWxlcyB0byB0aGUgYnVpbGQgZGlyZWN0b3J5Lgo+PiAr Kwo+PiArKyAgICBBcmdzOgo+PiArKyAgICAgICAgdGVtcGRpcjogVGVtcG9yYXJ5IGRpcmVjdG9y eSB0byBjb3B5IGZpbGVzIHRvCj4+ICsrICAgICAgICBwYXRoczogTGlzdCBvZiBmaWxlIHBhdGhz IGZyb20gcGFja2FnZSBsaXN0aW5nCj4+ICsrICAgICAgICBleHBlY3RlZF9wYXJlbnRfZGlyOiBF eHBlY3RlZCBwYXJlbnQgZGlyZWN0b3J5IG5hbWUgcGVyIHBhY2thZ2luZyBjb252ZW50aW9uOgo+ PiArKyAgICAgICAgICAgIC0gJ3NpdGUtcGFja2FnZXMnIGZvciBSUE0tYmFzZWQgZGlzdHJpYnV0 aW9ucwo+PiArKyAgICAgICAgICAgIC0gJ2Rpc3QtcGFja2FnZXMnIGZvciBEZWJpYW4tYmFzZWQg ZGlzdHJpYnV0aW9ucwo+PiArKwo+PiArKyAgICBSZXR1cm5zOgo+PiArKyAgICAgICAgTm9uZQo+ PiArKyAgICAiIiIKPj4gKysgICAgbWV0YV9kaXIsIHBrZ19kaXJzID0gX2dhdGhlcl9wYWNrYWdl X2RpcnMocGF0aHMsIGV4cGVjdGVkX3BhcmVudF9kaXIpCj4+ICsrICAgIG1ldGFfZGVzdCA9IHRl bXBkaXIgLyBtZXRhX2Rpci5uYW1lCj4+ICsrICAgIGxvZy5pbmZvKGYiQ29weWluZyB7bWV0YV9k aXJ9IHRvIHttZXRhX2Rlc3R9IikKPj4gKysgICAgIyBjb3B5IHRoZSBtZXRhIGRhdGEgZGlyZWN0 b3J5Cj4+ICsrICAgIHNodXRpbC5jb3B5dHJlZShtZXRhX2RpciwgbWV0YV9kZXN0LCBpZ25vcmU9 X2lnbm9yZV9jZXBoYWRtbGliKQo+PiArKyAgICAjIGNvcHkgYWxsIHRoZSBwYWNrYWdlIGRpcmVj dG9yaWVzCj4+ICsrICAgIGZvciBwa2dfZGlyIGluIHBrZ19kaXJzOgo+PiArKyAgICAgICAgcGtn X2Rlc3QgPSB0ZW1wZGlyIC8gcGtnX2Rpci5uYW1lCj4+ICsrICAgICAgICBsb2cuaW5mbyhmIkNv cHlpbmcge3BrZ19kaXJ9IHRvIHtwa2dfZGVzdH0iKQo+PiArKyAgICAgICAgc2h1dGlsLmNvcHl0 cmVlKHBrZ19kaXIsIHBrZ19kZXN0LCBpZ25vcmU9X2lnbm9yZV9jZXBoYWRtbGliKQo+PiArKwo+ PiArKwo+PiArIGRlZiBfZGVwc19mcm9tX3JwbSh0ZW1wZGlyLCBjb25maWcsIGRpbmZvLCBwa2cp Ogo+PiArICAgICAjIGZpcnN0LCBmaWd1cmUgb3V0IHdoYXQgcnBtIHByb3ZpZGVzIGEgcGFydGlj dWxhciBweXRob24gbGliCj4+ICsgICAgIGRpc3QgPSBmJ3B5dGhvbjMue3N5cy52ZXJzaW9uX2lu Zm8ubWlub3J9ZGlzdCh7cGtnfSknLmxvd2VyKCkKPj4gK0BAIC01MTAsMTYgKzU2Miw5MiBAQCBk ZWYgX2RlcHNfZnJvbV9ycG0odGVtcGRpciwgY29uZmlnLCBkaW5mbywgcGtnKToKPj4gKyAgICAg ICAgIFsncnBtJywgJy1xbCcsIHJwbW5hbWVdLCBjaGVjaz1UcnVlLCBzdGRvdXQ9c3VicHJvY2Vz cy5QSVBFCj4+ICsgICAgICkKPj4gKyAgICAgcGF0aHMgPSBbbC5kZWNvZGUoJ3V0ZjgnKSBmb3Ig bCBpbiByZXMuc3Rkb3V0LnNwbGl0bGluZXMoKV0KPj4gKy0gICAgbWV0YV9kaXIsIHBrZ19kaXJz ID0gX2dhdGhlcl9ycG1fcGFja2FnZV9kaXJzKHBhdGhzKQo+PiArLSAgICBtZXRhX2Rlc3QgPSB0 ZW1wZGlyIC8gbWV0YV9kaXIubmFtZQo+PiArLSAgICBsb2cuaW5mbyhmIkNvcHlpbmcge21ldGFf ZGlyfSB0byB7bWV0YV9kZXN0fSIpCj4+ICstICAgICMgY29weSB0aGUgbWV0YSBkYXRhIGRpcmVj dG9yeQo+PiArLSAgICBzaHV0aWwuY29weXRyZWUobWV0YV9kaXIsIG1ldGFfZGVzdCwgaWdub3Jl PV9pZ25vcmVfY2VwaGFkbWxpYikKPj4gKy0gICAgIyBjb3B5IGFsbCB0aGUgcGFja2FnZSBkaXJl Y3Rvcmllcwo+PiArLSAgICBmb3IgcGtnX2RpciBpbiBwa2dfZGlyczoKPj4gKy0gICAgICAgIHBr Z19kZXN0ID0gdGVtcGRpciAvIHBrZ19kaXIubmFtZQo+PiArLSAgICAgICAgbG9nLmluZm8oZiJD b3B5aW5nIHtwa2dfZGlyfSB0byB7cGtnX2Rlc3R9IikKPj4gKy0gICAgICAgIHNodXRpbC5jb3B5 dHJlZShwa2dfZGlyLCBwa2dfZGVzdCwgaWdub3JlPV9pZ25vcmVfY2VwaGFkbWxpYikKPj4gKysg ICAgIyBSUE0tYmFzZWQgZGlzdHJpYnV0aW9ucyB1c2UgJ3NpdGUtcGFja2FnZXMnIGZvciBQeXRo b24gcGFja2FnZXMKPj4gKysgICAgX2NvcHlfcGFja2FnZV9maWxlcyh0ZW1wZGlyLCBwYXRocywg J3NpdGUtcGFja2FnZXMnKQo+PiArKwo+PiArKwo+PiArK2RlZiBfZGVwc19mcm9tX2RlYih0ZW1w ZGlyLCBjb25maWcsIGRpbmZvLCBwa2cpOgo+PiArKyAgICAiIiJFeHRyYWN0IFB5dGhvbiBkZXBl bmRlbmNpZXMgZnJvbSBEZWJpYW4gcGFja2FnZXMuCj4+ICsrCj4+ICsrICAgIEFyZ3M6Cj4+ICsr ICAgICAgICB0ZW1wZGlyOiBUZW1wb3JhcnkgZGlyZWN0b3J5IHRvIGNvcHkgcGFja2FnZSBmaWxl cyB0bwo+PiArKyAgICAgICAgY29uZmlnOiBCdWlsZCBjb25maWd1cmF0aW9uCj4+ICsrICAgICAg ICBkaW5mbzogRGVwZW5kZW5jeUluZm8gaW5zdGFuY2UgdG8gdHJhY2sgZGVwZW5kZW5jaWVzCj4+ ICsrICAgICAgICBwa2c6IFB5dGhvbiBwYWNrYWdlIG5hbWUgKGUuZy4sICdNYXJrdXBTYWZlJywg J0ppbmphMicsICdQeVlBTUwnKQo+PiArKyAgICAiIiIKPj4gKysgICAgIyBDb252ZXJ0IFB5dGhv biBwYWNrYWdlIG5hbWUgdG8gRGViaWFuIHBhY2thZ2UgbmFtZQo+PiArKyAgICAjIFB5dGhvbiBw YWNrYWdlcyBhcmUgdHlwaWNhbGx5IG5hbWVkIHB5dGhvbjMtPGxvd2VyY2FzZS1uYW1lPgo+PiAr KyAgICAjIEhhbmRsZSBzcGVjaWFsIGNhc2VzOiBQeVlBTUwgLT4gcHl0aG9uMy15YW1sLCBNYXJr dXBTYWZlIC0+IHB5dGhvbjMtbWFya3Vwc2FmZQo+PiArKyAgICBwa2dfbG93ZXIgPSBwa2cubG93 ZXIoKQo+PiArKyAgICBpZiBwa2dfbG93ZXIgPT0gJ3B5eWFtbCc6Cj4+ICsrICAgICAgICBkZWJf cGtnX25hbWUgPSAncHl0aG9uMy15YW1sJwo+PiArKyAgICBlbHNlOgo+PiArKyAgICAgICAgZGVi X3BrZ19uYW1lID0gZidweXRob24zLXtwa2dfbG93ZXJ9Jwo+PiArKwo+PiArKyAgICAjIEZpcnN0 LCB0cnkgdG8gZmluZCB0aGUgcGFja2FnZSB1c2luZyBhcHQtY2FjaGUKPj4gKysgICAgIyBUaGlz IGhlbHBzIHZlcmlmeSB0aGUgcGFja2FnZSBleGlzdHMgYmVmb3JlIHRyeWluZyB0byBsaXN0IGl0 cyBmaWxlcwo+PiArKyAgICB0cnk6Cj4+ICsrICAgICAgICByZXMgPSBzdWJwcm9jZXNzLnJ1bigK Pj4gKysgICAgICAgICAgICBbJ2FwdC1jYWNoZScsICdzaG93JywgZGViX3BrZ19uYW1lXSwKPj4g KysgICAgICAgICAgICBjaGVjaz1UcnVlLAo+PiArKyAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9j ZXNzLlBJUEUsCj4+ICsrICAgICAgICAgICAgc3RkZXJyPXN1YnByb2Nlc3MuUElQRSwKPj4gKysg ICAgICAgICkKPj4gKysgICAgZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yOgo+ PiArKyAgICAgICAgIyBQYWNrYWdlIG5vdCBmb3VuZCwgdHJ5IGFsdGVybmF0aXZlIG5hbWluZwo+ PiArKyAgICAgICAgbG9nLndhcm5pbmcoZiJQYWNrYWdlIHtkZWJfcGtnX25hbWV9IG5vdCBmb3Vu ZCB2aWEgYXB0LWNhY2hlLCB0cnlpbmcgZHBrZyAtUyIpCj4+ICsrICAgICAgICAjIFRyeSB0byBz ZWFyY2ggZm9yIGZpbGVzIHRoYXQgbWlnaHQgYmVsb25nIHRvIHRoaXMgcGFja2FnZQo+PiArKyAg ICAgICAgIyBTZWFyY2ggZm9yIHRoZSBQeXRob24gbW9kdWxlIGluIHNpdGUtcGFja2FnZXMKPj4g KysgICAgICAgIHNlYXJjaF9wYXR0ZXJuID0gZicvdXNyL2xpYi9weXRob24zKi9kaXN0LXBhY2th Z2VzL3twa2cubG93ZXIoKX0qJwo+PiArKyAgICAgICAgdHJ5Ogo+PiArKyAgICAgICAgICAgIHJl cyA9IHN1YnByb2Nlc3MucnVuKAo+PiArKyAgICAgICAgICAgICAgICBbJ2Rwa2cnLCAnLVMnLCBz ZWFyY2hfcGF0dGVybl0sCj4+ICsrICAgICAgICAgICAgICAgIGNoZWNrPVRydWUsCj4+ICsrICAg ICAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCj4+ICsrICAgICAgICAgICAgICAg IHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsCj4+ICsrICAgICAgICAgICAgKQo+PiArKyAgICAgICAg ICAgICMgZHBrZyAtUyBvdXRwdXQgZm9ybWF0OiAicGFja2FnZTogL3BhdGgvdG8vZmlsZSIKPj4g KysgICAgICAgICAgICBkZWJfcGtnX25hbWUgPSByZXMuc3Rkb3V0LmRlY29kZSgndXRmOCcpLnNw bGl0KCc6JylbMF0uc3RyaXAoKQo+PiArKyAgICAgICAgZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVk UHJvY2Vzc0Vycm9yIGFzIGVycjoKPj4gKysgICAgICAgICAgICBsb2cuZXJyb3IoZiJDb3VsZCBu b3QgZmluZCBEZWJpYW4gcGFja2FnZSBmb3Ige3BrZ30iKQo+PiArKyAgICAgICAgICAgIGxvZy5l cnJvcihmIlRyaWVkOiB7ZGViX3BrZ19uYW1lfSBhbmQgcGF0dGVybiBzZWFyY2giKQo+PiArKyAg ICAgICAgICAgIHN5cy5leGl0KDEpCj4+ICsrCj4+ICsrICAgICMgR2V0IHZlcnNpb24gaW5mb3Jt YXRpb24gdXNpbmcgZHBrZy1xdWVyeQo+PiArKyAgICB0cnk6Cj4+ICsrICAgICAgICByZXMgPSBz dWJwcm9jZXNzLnJ1bigKPj4gKysgICAgICAgICAgICBbJ2Rwa2ctcXVlcnknLCAnLVcnLCAnLWY9 JHtWZXJzaW9ufVxcbicsIGRlYl9wa2dfbmFtZV0sCj4+ICsrICAgICAgICAgICAgY2hlY2s9VHJ1 ZSwKPj4gKysgICAgICAgICAgICBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLAo+PiArKyAgICAgICAg KQo+PiArKyAgICAgICAgdmVyc2lvbiA9IHJlcy5zdGRvdXQuZGVjb2RlKCd1dGY4Jykuc3RyaXAo KQo+PiArKyAgICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3IgYXMgZXJyOgo+ PiArKyAgICAgICAgbG9nLmVycm9yKGYiQ291bGQgbm90IHF1ZXJ5IHZlcnNpb24gZm9yIHBhY2th Z2Uge2RlYl9wa2dfbmFtZX06IHtlcnJ9IikKPj4gKysgICAgICAgIHN5cy5leGl0KDEpCj4+ICsr Cj4+ICsrICAgIGxvZy5pbmZvKGYiRGViaWFuIFBhY2thZ2U6IHtkZWJfcGtnX25hbWV9ICh2ZXJz aW9uOiB7dmVyc2lvbn0pIikKPj4gKysgICAgZGluZm8uYWRkKAo+PiArKyAgICAgICAgcGtnLAo+ PiArKyAgICAgICAgZGViX25hbWU9ZGViX3BrZ19uYW1lLAo+PiArKyAgICAgICAgdmVyc2lvbj12 ZXJzaW9uLAo+PiArKyAgICAgICAgcGFja2FnZV9zb3VyY2U9J2RlYicsCj4+ICsrICAgICkKPj4g KysKPj4gKysgICAgIyBHZXQgdGhlIGxpc3Qgb2YgZmlsZXMgcHJvdmlkZWQgYnkgdGhlIERlYmlh biBwYWNrYWdlCj4+ICsrICAgIHRyeToKPj4gKysgICAgICAgIHJlcyA9IHN1YnByb2Nlc3MucnVu KAo+PiArKyAgICAgICAgICAgIFsnZHBrZycsICctTCcsIGRlYl9wa2dfbmFtZV0sCj4+ICsrICAg ICAgICAgICAgY2hlY2s9VHJ1ZSwKPj4gKysgICAgICAgICAgICBzdGRvdXQ9c3VicHJvY2Vzcy5Q SVBFLAo+PiArKyAgICAgICAgKQo+PiArKyAgICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9j ZXNzRXJyb3IgYXMgZXJyOgo+PiArKyAgICAgICAgbG9nLmVycm9yKGYiQ291bGQgbm90IGxpc3Qg ZmlsZXMgZm9yIHBhY2thZ2Uge2RlYl9wa2dfbmFtZX06IHtlcnJ9IikKPj4gKysgICAgICAgIHN5 cy5leGl0KDEpCj4+ICsrCj4+ICsrICAgIHBhdGhzID0gW2wuZGVjb2RlKCd1dGY4JykgZm9yIGwg aW4gcmVzLnN0ZG91dC5zcGxpdGxpbmVzKCldCj4+ICsrICAgICMgRGViaWFuLWJhc2VkIGRpc3Ry aWJ1dGlvbnMgdXNlICdkaXN0LXBhY2thZ2VzJyBmb3Igc3lzdGVtLW1hbmFnZWQgUHl0aG9uIHBh Y2thZ2VzCj4+ICsrICAgICMgcGVyIERlYmlhbiBQeXRob24gUG9saWN5OiBodHRwczovL3d3dy5k ZWJpYW4ub3JnL2RvYy9wYWNrYWdpbmctbWFudWFscy9weXRob24tcG9saWN5Lwo+PiArKyAgICBf Y29weV9wYWNrYWdlX2ZpbGVzKHRlbXBkaXIsIHBhdGhzLCAnZGlzdC1wYWNrYWdlcycpCj4+ICsg Cj4+ICsgCj4+ICsgZGVmIGdlbmVyYXRlX3ZlcnNpb25fZmlsZSh2ZXJzaW9uaW5nX3ZhcnMsIGRl c3QpOgo+PiArLS0gCj4+ICsyLjQ3LjMKPj4gKwo+PiBkaWZmIC0tZ2l0IGEvcGF0Y2hlcy8wMDQ2 LWRlYmlhbi1Vc2Utc3lzdGVtLXBhY2thZ2VzLWZvci1jZXBoYWRtLWJ1bmRsZWQtZGVwZW4ucGF0 Y2ggYi9wYXRjaGVzLzAwNDYtZGViaWFuLVVzZS1zeXN0ZW0tcGFja2FnZXMtZm9yLWNlcGhhZG0t YnVuZGxlZC1kZXBlbi5wYXRjaAo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAw MDAwMDAwMC4uMGI0ZGFhNjNmNzkKPj4gLS0tIC9kZXYvbnVsbAo+PiArKysgYi9wYXRjaGVzLzAw NDYtZGViaWFuLVVzZS1zeXN0ZW0tcGFja2FnZXMtZm9yLWNlcGhhZG0tYnVuZGxlZC1kZXBlbi5w YXRjaAo+PiBAQCAtMCwwICsxLDU0IEBACj4+ICtGcm9tIDc3OWM5MjUxNjY5YjY1YjdlZDc3YTg0 MWYyODFlMmQ5NTcxNzRkYjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCj4+ICtGcm9tOiBLZWZ1 IENoYWkgPGsuY2hhaUBwcm94bW94LmNvbT4KPj4gK0RhdGU6IFR1ZSwgMjEgT2N0IDIwMjUgMTE6 MjU6MDAgKzA4MDAKPj4gK1N1YmplY3Q6IFtQQVRDSCA0Ni80Nl0gZGViaWFuOiBVc2Ugc3lzdGVt IHBhY2thZ2VzIGZvciBjZXBoYWRtIGJ1bmRsZWQKPj4gKyBkZXBlbmRlbmNpZXMKPj4gKwo+PiAr Q29uZmlndXJlIHRoZSBEZWJpYW4gYnVpbGQgdG8gdXNlIENFUEhBRE1fQlVORExFRF9ERVBFTkRF TkNJRVM9ZGViLAo+PiArd2hpY2ggaW5zdHJ1Y3RzIHRoZSBjZXBoYWRtIGJ1aWxkIHNjcmlwdCB0 byBidW5kbGUgZGVwZW5kZW5jaWVzIGZyb20KPj4gK3N5c3RlbS1pbnN0YWxsZWQgRGViaWFuIHBh Y2thZ2VzIGluc3RlYWQgb2YgZG93bmxvYWRpbmcgZnJvbSBQeVBJLgo+PiArCj4+ICtUaGlzIGNo YW5nZSBhZGRyZXNzZXMgYnVpbGQgZmFpbHVyZXMgaW4gcmVzdHJpY3RlZCBuZXR3b3JrIGVudmly b25tZW50cwo+PiArd2hlcmUgRGViaWFuIGJ1aWxkIHRvb2xzIGRvIG5vdCBwZXJtaXQgaW50ZXJu ZXQgYWNjZXNzLiBCeSBsZXZlcmFnaW5nCj4+ICt0aGUgRGViaWFuIHBhY2thZ2Ugc3VwcG9ydCBh ZGRlZCBpbiBjb21taXQgOTM3OGEyOTg4ZTEsIHRoZSBidWlsZCBub3cKPj4gK3VzZXMgcHl0aG9u My1tYXJrdXBzYWZlLCBweXRob24zLWppbmphMiwgYW5kIHB5dGhvbjMteWFtbCBwYWNrYWdlcwo+ PiArdGhhdCBhcmUgYWxyZWFkeSBpbnN0YWxsZWQgYXMgYnVpbGQgZGVwZW5kZW5jaWVzLgo+PiAr Cj4+ICtUaGlzIGFwcHJvYWNoIG1pcnJvcnMgdGhlIGV4aXN0aW5nIFJQTSBwYWNrYWdpbmcgd29y a2Zsb3csIGVuc3VyaW5nCj4+ICtjb25zaXN0ZW50IGJlaGF2aW9yIGFjcm9zcyBkaWZmZXJlbnQg ZGlzdHJpYnV0aW9uIHBhY2thZ2UgZm9ybWF0cy4KPj4gKwo+PiArU2lnbmVkLW9mZi1ieTogS2Vm dSBDaGFpIDxrLmNoYWlAcHJveG1veC5jb20+Cj4+ICsoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1p dCAyNTY4MDAyMWVlMjQyMmY4YjhiNDA3NWIzYWI3N2FmMzkxMjZlZWNjKQo+Cj4gbG9uZyB0ZXJt LCBpdCBtaWdodCBiZSBldmVuIGJldHRlciB0byBub3QgYnVuZGxlIGF0IGFsbCwgYnV0IGFkZCB0 aG9zZQo+IHB5dGhvbiBkZXBzIGFzIHJ1bnRpbWUgZGVwZW5kZW5jaWVzPwoKSSBjb25jdXIgd2l0 aCB5b3VyIGNvbmNlcm5zLCBhcyBidW5kbGluZyB2aW9sYXRlcyBEZWJpYW4ncyBwaHlsb3NvcGh5 IG9mIAphdm9pZGluZyAidmVuZG9yZWQiIGRlcGVuZGVuY2llcy4gVGhlIGRpc3RybyBpbnRlbmRz IHRvIGNvbnRyb2wgYW5kCnRyYWNrIGFsbCBwYWNrYWdlcy4gQW5kIGJ1bmxkaW5nIGFsc28gaW1w bGllcyBtb3JlIGRpc2sgc3BhY2UgdXNhZ2UgYW5kIApkdXBsaWNhdGlvbnMuCgpCdXQgaXQncyBh bHNvIGFuIHVwc3RyZWFtIGRlc2lnbiBjaG9pY2U6IGNlcGhhZG0gd2FzIGV4cGxpY2l0bHkgZGVz aWduZWQKdG8gYmUgc3RhbmRhbG9uZS4gUGFydCBvZiBjZXBoYWRtJ3N2YWx1ZSBpcyB0aGF0IHlv dSBjYW4ganVzdCBjdXJsIHwKcHl0aG9uMyBpdCBvbnRvIGEgZnJlc2ggc3lzdGVtLiBJZiBpdCBy ZXF1aXJlcyBpbnN0YWxsaW5nIDEwKyBQeXRob24KcGFja2FnZXMgZmlyc3QsIHlvdSd2ZSBsb3N0 IHRoYXQgc2ltcGxpY2l0eS4KCldoYXQgZG8geW91IHRoaW5rPwoKPgo+PiArLS0tCj4+ICsgZGVi aWFuL2NvbnRyb2wgfCAyICsrCj4+ICsgZGViaWFuL3J1bGVzICAgfCAxICsKPj4gKyAyIGZpbGVz IGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQo+PiArCj4+ICtkaWZmIC0tZ2l0IGEvZGViaWFuL2Nv bnRyb2wgYi9kZWJpYW4vY29udHJvbAo+PiAraW5kZXggMzVjMWRiZTViZDIuLjk0OTk3ODI3YmQy IDEwMDY0NAo+PiArLS0tIGEvZGViaWFuL2NvbnRyb2wKPj4gKysrKyBiL2RlYmlhbi9jb250cm9s Cj4+ICtAQCAtMTA2LDYgKzEwNiw4IEBAIEJ1aWxkLURlcGVuZHM6IGF1dG9tYWtlLAo+PiArICAg ICAgICAgICAgICAgIHB5dGhvbjMtcmVxdWVzdHMgPHBrZy5jZXBoLmNoZWNrPiwKPj4gKyAgICAg ICAgICAgICAgICBweXRob24zLXNjaXB5IDxwa2cuY2VwaC5jaGVjaz4sCj4+ICsgICAgICAgICAg ICAgICAgcHl0aG9uMy1vbmVsb2dpbi1zYW1sMiA8cGtnLmNlcGguY2hlY2s+LAo+PiArKyAgICAg ICAgICAgICAgIHB5dGhvbjMtamluamEyLAo+PiArKyAgICAgICAgICAgICAgIHB5dGhvbjMtbWFy a3Vwc2FmZSwKPj4gKyAgICAgICAgICAgICAgICBweXRob24zLXNldHVwdG9vbHMsCj4+ICsgICAg ICAgICAgICAgICAgcHl0aG9uMy1zcGhpbngsCj4+ICsgICAgICAgICAgICAgICAgcHl0aG9uMy12 ZW52LAo+PiArZGlmZiAtLWdpdCBhL2RlYmlhbi9ydWxlcyBiL2RlYmlhbi9ydWxlcwo+PiAraW5k ZXggYjkzNWVmYWE4Y2QuLmVlNGVmZjJiZGM1IDEwMDc1NQo+PiArLS0tIGEvZGViaWFuL3J1bGVz Cj4+ICsrKysgYi9kZWJpYW4vcnVsZXMKPj4gK0BAIC0zMCw2ICszMCw3IEBAIGV4dHJhb3B0cyAr PSAtRFdJVEhfQ0VQSEZTX0pBVkE9T04KPj4gKyBleHRyYW9wdHMgKz0gLURXSVRIX0NFUEhGU19T SEVMTD1PTgo+PiArIGV4dHJhb3B0cyArPSAtRFdJVEhfU1lTVEVNRD1PTiAtRENFUEhfU1lTVEVN RF9FTlZfRElSPS9ldGMvZGVmYXVsdAo+PiArIGV4dHJhb3B0cyArPSAtRFdJVEhfR1JBRkFOQT1P Tgo+PiArK2V4dHJhb3B0cyArPSAtRENFUEhBRE1fQlVORExFRF9ERVBFTkRFTkNJRVM9ZGViCj4+ ICsgaWZlcSAoJChERUJfSE9TVF9BUkNIKSwgYW1kNjQpCj4+ICsgICBleHRyYW9wdHMgKz0gLURX SVRIX1JCRF9SV0w9T04KPj4gKyBlbHNlCj4+ICstLSAKPj4gKzIuNDcuMwo+PiArCj4+IGRpZmYg LS1naXQgYS9wYXRjaGVzLzAwNDctY21ha2UtQnVpbGRBcnJvdy1Vc2UtQVVUTy1tb2RlLWZvci14 c2ltZC1kZXBlbmRlbmN5LS5wYXRjaCBiL3BhdGNoZXMvMDA0Ny1jbWFrZS1CdWlsZEFycm93LVVz ZS1BVVRPLW1vZGUtZm9yLXhzaW1kLWRlcGVuZGVuY3ktLnBhdGNoCj4+IG5ldyBmaWxlIG1vZGUg MTAwNjQ0Cj4+IGluZGV4IDAwMDAwMDAwMDAwLi5hYjU2ODFiZWNlMAo+PiAtLS0gL2Rldi9udWxs Cj4+ICsrKyBiL3BhdGNoZXMvMDA0Ny1jbWFrZS1CdWlsZEFycm93LVVzZS1BVVRPLW1vZGUtZm9y LXhzaW1kLWRlcGVuZGVuY3ktLnBhdGNoCj4+IEBAIC0wLDAgKzEsNTUgQEAKPj4gK0Zyb20gNDY4 MDNmY2FhM2IyYjRmMTQzMThiMTMyMGU4ZTNiZWI5Y2YzZWVjNCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKPj4gK0Zyb206IEtlZnUgQ2hhaSA8ay5jaGFpQHByb3htb3guY29tPgo+PiArRGF0ZTog V2VkLCAxNSBPY3QgMjAyNSAxNTo0NjoyMiArMDgwMAo+PiArU3ViamVjdDogW1BBVENIIDQ3LzQ4 XSBjbWFrZS9CdWlsZEFycm93OiBVc2UgQVVUTyBtb2RlIGZvciB4c2ltZCBkZXBlbmRlbmN5Cj4+ ICsgZGV0ZWN0aW9uCj4+ICtNSU1FLVZlcnNpb246IDEuMAo+PiArQ29udGVudC1UeXBlOiB0ZXh0 L3BsYWluOyBjaGFyc2V0PVVURi04Cj4+ICtDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0 Cj4+ICsKPj4gK0Fycm93IHJlcXVpcmVzIHhzaW1kID49IDkuMC4xIGFjY29yZGluZyB0byBhcnJv dy9jcHAvdGhpcmRwYXJ0eS92ZXJzaW9ucy50eHQuCj4+ICtQcmV2aW91c2x5LCB3ZSB1bmNvbmRp dGlvbmFsbHkgc2V0IC1EeHNpbWRfU09VUkNFPUJVTkRMRUQsIGZvcmNpbmcgdGhlIHVzZQo+PiAr b2YgQXJyb3cncyB2ZW5kb3JlZCB4c2ltZCByZWdhcmRsZXNzIG9mIHN5c3RlbSBwYWNrYWdlIGF2 YWlsYWJpbGl0eS4KPj4gKwo+PiArVGhpcyBjb21taXQgY2hhbmdlcyB0byAtRHhzaW1kX1NPVVJD RT1BVVRPLCB3aGljaCBhbGxvd3MgQXJyb3cncwo+PiArcmVzb2x2ZV9kZXBlbmRlbmN5IG1lY2hh bmlzbSB0byBhdXRvbWF0aWNhbGx5Ogo+PiArMS4gVHJ5IHRvIGZpbmQgc3lzdGVtIHhzaW1kIHBh Y2thZ2UKPj4gKzIuIENoZWNrIGlmIHZlcnNpb24gPj0gOS4wLjEKPj4gKzMuIFVzZSBzeXN0ZW0g dmVyc2lvbiBpZiBmb3VuZCBhbmQgc3VmZmljaWVudAo+PiArNC4gRmFsbCBiYWNrIHRvIGJ1bmRs ZWQgdmVyc2lvbiBvdGhlcndpc2UKPj4gKwo+PiArVGhpcyByZWR1Y2VzIGJ1aWxkIHRpbWUgYW5k IGRlcGVuZGVuY2llcyBvbiBzeXN0ZW1zIHdpdGggc3VmZmljaWVudCB4c2ltZCwKPj4gK3doaWxl IG1haW50YWluaW5nIGNvbXBhdGliaWxpdHkgd2l0aCBvbGRlciBkaXN0cmlidXRpb25zLgo+PiAr Cj4+ICtEaXN0cmlidXRpb24gYXZhaWxhYmlsaXR5Ogo+PiArLSBVYnVudHUgTm9ibGUgKDI0LjA0 KTogbGlieHNpbWQtZGV2IDEyLjEuMSAo4pyTIHdpbGwgdXNlIHN5c3RlbSkKPj4gKy0gVWJ1bnR1 IEphbW15ICgyMi4wNCk6IGxpYnhzaW1kLWRldiA3LjYuMCAo4pyXIHdpbGwgdXNlIGJ1bmRsZWQp Cj4+ICstIERlYmlhbiBUcml4aWUgKDEzKTogbGlieHNpbWQtZGV2IDEzLjIuMCAo4pyTIHdpbGwg dXNlIHN5c3RlbSkKPj4gKy0gQ2VudE9TIFN0cmVhbSA5OiB4c2ltZC1kZXZlbCA3LjQuOSAo4pyX IHdpbGwgdXNlIGJ1bmRsZWQpCj4+ICsKPj4gK1NpZ25lZC1vZmYtYnk6IEtlZnUgQ2hhaSA8ay5j aGFpQHByb3htb3guY29tPgo+PiArKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMmRlZmRlMzBl NGM2MWNkOWYzMzE5NmI5MWFjMTY1MDU5MjhjZTc3NCkKPj4gKy0tLQo+PiArIGNtYWtlL21vZHVs ZXMvQnVpbGRBcnJvdy5jbWFrZSB8IDYgKysrLS0tCj4+ICsgMSBmaWxlIGNoYW5nZWQsIDMgaW5z ZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKPj4gKwo+PiArZGlmZiAtLWdpdCBhL2NtYWtlL21v ZHVsZXMvQnVpbGRBcnJvdy5jbWFrZSBiL2NtYWtlL21vZHVsZXMvQnVpbGRBcnJvdy5jbWFrZQo+ PiAraW5kZXggMGVlMWQ4NWI0OWYuLmNhZGMyOTA5ZmE0IDEwMDY0NAo+PiArLS0tIGEvY21ha2Uv bW9kdWxlcy9CdWlsZEFycm93LmNtYWtlCj4+ICsrKysgYi9jbWFrZS9tb2R1bGVzL0J1aWxkQXJy b3cuY21ha2UKPj4gK0BAIC02OSw5ICs2OSw5IEBAIGZ1bmN0aW9uKGJ1aWxkX2Fycm93KQo+PiAr ICAgICBsaXN0KEFQUEVORCBhcnJvd19ERVBFTkRTIEJvb3N0KQo+PiArICAgZW5kaWYoKQo+PiAr IAo+PiArLSAgIyBzaW5jZSBBcnJvdyAxNS4wLjAgbmVlZHMgeHNpbWQ+PTguMS4wIGFuZCBzaW5j ZSBVYnVudHUgSmFtbXkKPj4gKy0gICMgSmVsbHlmaXNoIG9ubHkgcHJvdmlkZXMgNy42LjAsIHdl J2xsIGhhdmUgYXJyb3cgYnVpbGQgaXQgYXMgc291cmNlCj4+ICstICBsaXN0KEFQUEVORCBhcnJv d19DTUFLRV9BUkdTIC1EeHNpbWRfU09VUkNFPUJVTkRMRUQpCj4+ICsrICAjIEFycm93IHJlcXVp cmVzIHhzaW1kID49IDkuMC4xIChzZWUgYXJyb3cvY3BwL3RoaXJkcGFydHkvdmVyc2lvbnMudHh0 KS4KPj4gKysgICMgVXNlIEFVVE8gdG8gbGV0IEFycm93IGRldGVjdCBzeXN0ZW0geHNpbWQgYW5k IGZhbGwgYmFjayB0byBidW5kbGVkIGlmIG5lZWRlZC4KPj4gKysgIGxpc3QoQVBQRU5EIGFycm93 X0NNQUtFX0FSR1MgLUR4c2ltZF9TT1VSQ0U9QVVUTykKPj4gKyAKPj4gKyAgICMgY21ha2UgZG9l c24ndCBwcm9wZXJseSBoYW5kbGUgYXJndW1lbnRzIGNvbnRhaW5pbmcgIjsiLCBzdWNoIGFzCj4+ ICsgICAjIENNQUtFX1BSRUZJWF9QQVRILCBmb3Igd2hpY2ggcmVhc29uIHdlJ2xsIGhhdmUgdG8g dXNlIHNvbWUgb3RoZXIgc2VwYXJhdG9yLgo+PiArLS0gCj4+ICsyLjQ3LjMKPj4gKwo+PiBkaWZm IC0tZ2l0IGEvcGF0Y2hlcy8wMDQ4LWRlYmlhbi1jb250cm9sLUFkZC1saWJ4c2ltZC1kZXYtYnVp bGQtZGVwZW5kZW5jeS1mb3IucGF0Y2ggYi9wYXRjaGVzLzAwNDgtZGViaWFuLWNvbnRyb2wtQWRk LWxpYnhzaW1kLWRldi1idWlsZC1kZXBlbmRlbmN5LWZvci5wYXRjaAo+PiBuZXcgZmlsZSBtb2Rl IDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwMDAwMC4uYzQzMWZiNmVkYzEKPj4gLS0tIC9kZXYvbnVs bAo+PiArKysgYi9wYXRjaGVzLzAwNDgtZGViaWFuLWNvbnRyb2wtQWRkLWxpYnhzaW1kLWRldi1i dWlsZC1kZXBlbmRlbmN5LWZvci5wYXRjaAo+PiBAQCAtMCwwICsxLDQxIEBACj4+ICtGcm9tIDIw ZmIxYjhlZmY5ZDliNGU2ODNjMzNlNTU2NzUyMDg1YjQwOGMyNGIgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCj4+ICtGcm9tOiBLZWZ1IENoYWkgPGsuY2hhaUBwcm94bW94LmNvbT4KPj4gK0RhdGU6 IFdlZCwgMTUgT2N0IDIwMjUgMTU6NDY6MjYgKzA4MDAKPj4gK1N1YmplY3Q6IFtQQVRDSCA0OC80 OF0gZGViaWFuL2NvbnRyb2w6IEFkZCBsaWJ4c2ltZC1kZXYgYnVpbGQgZGVwZW5kZW5jeSBmb3IK Pj4gKyB2ZW5kb3JlZCBBcnJvdwo+PiArCj4+ICtJbiBjb21taXQgZTg0NjBjYmQsIHdlIGludHJv ZHVjZWQgdGhlICJwa2cuY2VwaC5hcnJvdyIgYnVpbGQgcHJvZmlsZSB0bwo+PiArc3VwcG9ydCBi dWlsZGluZyB3aXRoIHN5c3RlbSBBcnJvdyBwYWNrYWdlcy4gSG93ZXZlciwgbmVpdGhlciBEZWJp YW4gbm9yCj4+ICtVYnVudHUgY3VycmVudGx5IHNoaXBzIEFycm93IHBhY2thZ2VzLgo+PiArCj4+ ICtTaW5jZSBXSVRIX1JBRE9TR1dfU0VMRUNUX1BBUlFVRVQgaXMgYWx3YXlzIGVuYWJsZWQgaW4g ZGViaWFuL3J1bGVzLAo+PiArQXJyb3cgc3VwcG9ydCBpcyByZXF1aXJlZCBmb3IgYWxsIGJ1aWxk cy4gV2hlbiB0aGUgcGtnLmNlcGguYXJyb3cgcHJvZmlsZQo+PiAraXMgbm90IHNlbGVjdGVkLCB0 aGUgYnVpbGQgdXNlcyB2ZW5kb3JlZCBBcnJvdy4gV2l0aCB0aGUgcmVjZW50IGNoYW5nZSB0bwo+ PiArdXNlIEFVVE8gbW9kZSBmb3IgeHNpbWQgZGV0ZWN0aW9uLCBBcnJvdyB3aWxsIGF0dGVtcHQg dG8gZmluZCBzeXN0ZW0geHNpbWQKPj4gKz49IDkuMC4xLiBBZGRpbmcgbGlieHNpbWQtZGV2IGFz IGEgYnVpbGQgZGVwZW5kZW5jeSBlbnN1cmVzIGl0J3MgYXZhaWxhYmxlCj4+ICtmb3IgQXJyb3cg dG8gZGV0ZWN0IGFuZCB1c2UsIHJlZHVjaW5nIGJ1aWxkIHRpbWUgb24gc3VwcG9ydGVkIGRpc3Ry aWJ1dGlvbnMuCj4+ICsKPj4gK09uIGRpc3RyaWJ1dGlvbnMgd2l0aCBpbnN1ZmZpY2llbnQgeHNp bWQgdmVyc2lvbnMgKDwgOS4wLjEpLCBBcnJvdyB3aWxsCj4+ICthdXRvbWF0aWNhbGx5IGZhbGwg YmFjayB0byBpdHMgYnVuZGxlZCB2ZXJzaW9uLgo+PiArCj4+ICtTaWduZWQtb2ZmLWJ5OiBLZWZ1 IENoYWkgPGsuY2hhaUBwcm94bW94LmNvbT4KPj4gKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0 IDkyOWI0N2Y4Mzg4MDY4M2IzNzZiOWRjYzAwNjA5Mzg0NDdmMTFjODgpCj4+ICstLS0KPj4gKyBk ZWJpYW4vY29udHJvbCB8IDEgKwo+PiArIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQo+ PiArCj4+ICtkaWZmIC0tZ2l0IGEvZGViaWFuL2NvbnRyb2wgYi9kZWJpYW4vY29udHJvbAo+PiAr aW5kZXggOTQ5OTc4MjdiZDIuLjdkMzBlMWZhYTcwIDEwMDY0NAo+PiArLS0tIGEvZGViaWFuL2Nv bnRyb2wKPj4gKysrKyBiL2RlYmlhbi9jb250cm9sCj4+ICtAQCAtODUsNiArODUsNyBAQCBCdWls ZC1EZXBlbmRzOiBhdXRvbWFrZSwKPj4gKyAgICAgICAgICAgICAgICBsaWJwbWVtLWRldiA8cGtn LmNlcGgucG1kaz4sCj4+ICsgICAgICAgICAgICAgICAgbGlicG1lbW9iai1kZXYgKD49IDEuOCkg PHBrZy5jZXBoLnBtZGs+LAo+PiArICAgICAgICAgICAgICAgIGxpYnByb3RvYnVmLWRldiA8cGtn LmNlcGguY3JpbXNvbj4sCj4+ICsrICAgICAgICAgICAgICAgbGlieHNpbWQtZGV2IDwhcGtnLmNl cGguYXJyb3c+LAo+PiArICAgICAgICAgICAgICAgIG5pbmphLWJ1aWxkLAo+PiArICAgICAgICAg ICAgICAgIG5sb2htYW5uLWpzb24zLWRldiwKPj4gKyAgICAgICAgICAgICAgICBwYXRjaCwKPj4g Ky0tIAo+PiArMi40Ny4zCj4+ICsKPj4gZGlmZiAtLWdpdCBhL3BhdGNoZXMvc2VyaWVzIGIvcGF0 Y2hlcy9zZXJpZXMKPj4gaW5kZXggZDc3NWE4YTA2OGQuLmYyYmZlZDFiOTM5IDEwMDY0NAo+PiAt LS0gYS9wYXRjaGVzL3Nlcmllcwo+PiArKysgYi9wYXRjaGVzL3Nlcmllcwo+PiBAQCAtMzksMyAr MzksMTEgQEAKPj4gIDAwMzktbWdyLWZpeC1tb2R1bGUtaW1wb3J0LWJ5LW1ha2luZy1OT1RJRllf VFlQRVMtaW4tcHktbS5wYXRjaAo+PiAgMDA0MC1weWJpbmQtcmJkLWRpc2FibGUtb25fcHJvZ3Jl c3MtY2FsbGJhY2tzLXRvLXByZXZlbnQtLnBhdGNoCj4+ICAwMDQxLXN5c3RlbWQtc2VydmljZXMt Zml4LWluc3RhbGxpbmctY2VwaC12b2x1bWUucGF0Y2gKPj4gKzAwNDItY2VwaGFkbS1maXgtc29t ZS1pc3N1ZXMtcnVubmluZy1leGlzdGluZy1jZXBoYWRtLWJ1aS5wYXRjaAo+PiArMDA0My1jZXBo YWRtLWZpeC16aXBfcm9vdF9lbnRyaWVzLXBvcHVsYXRpb24taW4tdmVyc2lvbi1jLnBhdGNoCj4+ ICswMDQ0LWNlcGhhZG0tc3VwcG9ydC1jZXBoYWRtLXJwbS1iYXNlZC1idWlsZHMtd2l0aG91dC10 b3AucGF0Y2gKPj4gKzAwNDUtY2VwaGFkbS1idWlsZC1BZGQtRGViaWFuLXBhY2thZ2Utc3VwcG9y dC1mb3ItYnVuZGxlZC5wYXRjaAo+PiArMDA0Ni1kZWJpYW4tVXNlLXN5c3RlbS1wYWNrYWdlcy1m b3ItY2VwaGFkbS1idW5kbGVkLWRlcGVuLnBhdGNoCj4+ICswMDQ3LWNtYWtlLUJ1aWxkQXJyb3ct VXNlLUFVVE8tbW9kZS1mb3IteHNpbWQtZGVwZW5kZW5jeS0ucGF0Y2gKPj4gKzAwNDgtZGViaWFu LWNvbnRyb2wtQWRkLWxpYnhzaW1kLWRldi1idWlsZC1kZXBlbmRlbmN5LWZvci5wYXRjaAo+PiAr ICAKPj4gLS0gCj4+IDIuNDcuMwo+PiAKPj4gCj4+IAo+PiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBwdmUtZGV2ZWwgbWFpbGluZyBsaXN0Cj4+IHB2 ZS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQo+PiBodHRwczovL2xpc3RzLnByb3htb3guY29tL2Nn aS1iaW4vbWFpbG1hbi9saXN0aW5mby9wdmUtZGV2ZWwKPj4gCj4KPgo+IF9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gcHZlLWRldmVsIG1haWxpbmcgbGlz dAo+IHB2ZS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQo+IGh0dHBzOi8vbGlzdHMucHJveG1veC5j b20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3B2ZS1kZXZlbAoKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpwdmUtZGV2ZWwgbWFpbGluZyBsaXN0CnB2 ZS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQpodHRwczovL2xpc3RzLnByb3htb3guY29tL2NnaS1i aW4vbWFpbG1hbi9saXN0aW5mby9wdmUtZGV2ZWwK