From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 341851FF191 for ; Tue, 9 Sep 2025 15:22:37 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id C794FA72A; Tue, 9 Sep 2025 15:22:40 +0200 (CEST) Message-ID: Date: Tue, 9 Sep 2025 15:22:36 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: Dominik Csapak , Proxmox Datacenter Manager development discussion References: <20250909100838.234778-1-s.hanreich@proxmox.com> <20250909100838.234778-5-s.hanreich@proxmox.com> Content-Language: en-US From: Stefan Hanreich In-Reply-To: X-SPAM-LEVEL: Spam detection results: 0 AWL -0.337 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_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment KAM_MAILER 2 Automated Mailer Tag Left in Email PROLO_LEO1 0.1 Meta Catches all Leo drug variations so far 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. [lib.rs, renderer.rs, utils.rs, mod.rs] Subject: Re: [pdm-devel] [PATCH proxmox-datacenter-manager 3/5] ui: add sdn status report to dashboard X-BeenThere: pdm-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Datacenter Manager development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Datacenter Manager development discussion Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pdm-devel-bounces@lists.proxmox.com Sender: "pdm-devel" dGhhbmtzISB3aWxsIGFkZHJlc3MgYm90aCBpbiBhIG5ldyB2ZXJzaW9uCgpPbiA5LzkvMjUgMzox MCBQTSwgRG9taW5payBDc2FwYWsgd3JvdGU6Cj4gdHdvIGNvbW1lbnRzIGlubGluZQo+IAo+IE9u IDkvOS8yNSAxMjowOCBQTSwgU3RlZmFuIEhhbnJlaWNoIHdyb3RlOgo+PiBUaGlzIGFsc28gaW5j bHVkZXMgc3VwcG9ydCBmb3IgZXh0ZXJuYWwgbGlua3MsIHNlYXJjaGluZyBhbmQKPj4gbmF2aWdh dGluZyB0byB0aGUgZGVkaWNhdGVkIFNETiBvdmVydmlldy4gRm9yIG5vdywgYWRkIGl0IHRvIHRo ZSB0YXNrCj4+IHN1bW1hcnkgcm93LCBzaW5jZSB0aGVyZSBhcmUgaXNzdWVzIHdpdGggb25seSBz aG93aW5nIG9uZSBlbGVtZW50IGluIGEKPj4gcm93IGR1ZSB0byB0aGUgQ1NTIHJ1bGVzLiBXaGls ZSB0aGlzIGJyZWFrcyBhIGxpdHRsZSBiaXQgd2l0aCB0aGUKPj4gY3VycmVudCBncm91cGluZywg dGhlIHdpZGdldCBpcyBxdWl0ZSBzbWFsbCBzbyBpdCB3b3VsZCBsb29rIHdlaXJkIGluCj4+IGEg c2luZ2xlIHJvdyBhbmQgd2UgY2FuIGFsd2F5cyBkZWNpZGUgdG8gbW92ZSBpdCBhcm91bmQgYXMg c29vbiBhcyB3ZQo+PiBhZGQgbW9yZSBlbGVtZW50cyB0byB0aGUgZGFzaGJvYXJkLgo+Pgo+PiBT aWduZWQtb2ZmLWJ5OiBTdGVmYW4gSGFucmVpY2ggPHMuaGFucmVpY2hAcHJveG1veC5jb20+Cj4+ IC0tLQo+PiDCoCB1aS9zcmMvZGFzaGJvYXJkL21vZC5yc8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAg fMKgIDE3ICsrKy0KPj4gwqAgdWkvc3JjL2Rhc2hib2FyZC9zZG5fem9uZV9wYW5lbC5ycyB8IDE1 NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+PiDCoCB1aS9zcmMvbGliLnJzwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAxNCArKy0KPj4gwqAgdWkv c3JjL3B2ZS91dGlscy5yc8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMTYgKyst Cj4+IMKgIHVpL3NyYy9yZW5kZXJlci5yc8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHzCoMKgIDQgKy0KPj4gwqAgNSBmaWxlcyBjaGFuZ2VkLCAxOTkgaW5zZXJ0aW9ucygrKSwgNyBk ZWxldGlvbnMoLSkKPj4gwqAgY3JlYXRlIG1vZGUgMTAwNjQ0IHVpL3NyYy9kYXNoYm9hcmQvc2Ru X3pvbmVfcGFuZWwucnMKPj4KPj4gZGlmZiAtLWdpdCBhL3VpL3NyYy9kYXNoYm9hcmQvbW9kLnJz IGIvdWkvc3JjL2Rhc2hib2FyZC9tb2QucnMKPj4gaW5kZXggMDY1OWRjMC4uNjI2YTZiZiAxMDA2 NDQKPj4gLS0tIGEvdWkvc3JjL2Rhc2hib2FyZC9tb2QucnMKPj4gKysrIGIvdWkvc3JjL2Rhc2hi b2FyZC9tb2QucnMKPj4gQEAgLTI1LDcgKzI1LDcgQEAgdXNlIHB3dDo6ewo+PiDCoCB9Owo+PiDC oCDCoCB1c2UgcGRtX2FwaV90eXBlczo6ewo+PiAtwqDCoMKgIHJlc291cmNlOjp7R3Vlc3RTdGF0 dXNDb3VudCwgTm9kZVN0YXR1c0NvdW50LCBSZXNvdXJjZXNTdGF0dXN9LAo+PiArwqDCoMKgIHJl c291cmNlOjp7R3Vlc3RTdGF0dXNDb3VudCwgTm9kZVN0YXR1c0NvdW50LCBSZXNvdXJjZXNTdGF0 dXMsCj4+IFNkblpvbmVDb3VudH0sCj4+IMKgwqDCoMKgwqAgVGFza1N0YXRpc3RpY3MsCj4+IMKg IH07Cj4+IMKgIHVzZSBwZG1fY2xpZW50Ojp0eXBlczo6VG9wRW50aXR5Owo+PiBAQCAtNDYsNiAr NDYsOSBAQCB1c2UgcmVtb3RlX3BhbmVsOjpSZW1vdGVQYW5lbDsKPj4gwqAgbW9kIGd1ZXN0X3Bh bmVsOwo+PiDCoCB1c2UgZ3Vlc3RfcGFuZWw6Okd1ZXN0UGFuZWw7Cj4+IMKgICttb2Qgc2RuX3pv bmVfcGFuZWw7Cj4+ICt1c2Ugc2RuX3pvbmVfcGFuZWw6OlNkblpvbmVQYW5lbDsKPj4gKwo+PiDC oCBtb2Qgc3RhdHVzX3JvdzsKPj4gwqAgdXNlIHN0YXR1c19yb3c6OkRhc2hib2FyZFN0YXR1c1Jv dzsKPj4gwqAgQEAgLTI0Miw2ICsyNDUsMTUgQEAgaW1wbCBQZG1EYXNoYm9hcmQgewo+PiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCApKQo+PiDCoMKgwqDCoMKgIH0KPj4gwqAgK8KgwqDCoCBm biBjcmVhdGVfc2RuX3BhbmVsKCZzZWxmLCBzdGF0dXM6ICZTZG5ab25lQ291bnQpIC0+IFBhbmVs IHsKPj4gK8KgwqDCoMKgwqDCoMKgIFBhbmVsOjpuZXcoKQo+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAuZmxleCgxLjApCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC53aWR0aCgyMDApCj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC50aXRsZShzZWxmLmNyZWF0ZV90aXRsZV93aXRoX2lj b24oInNkbiIsIHRyISgiU0ROIFpvbmVzIikpKQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAu Ym9yZGVyKHRydWUpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC53aXRoX2NoaWxkKFNkblpv bmVQYW5lbDo6bmV3KCghCj4+IHNlbGYubG9hZGluZykudGhlbl9zb21lKHN0YXR1cy5jbG9uZSgp KSkpCj4+ICvCoMKgwqAgfQo+PiArCj4+IMKgwqDCoMKgwqAgZm4gY3JlYXRlX3Rhc2tfc3VtbWFy eV9wYW5lbCgKPj4gwqDCoMKgwqDCoMKgwqDCoMKgICZzZWxmLAo+PiDCoMKgwqDCoMKgwqDCoMKg wqAgc3RhdGlzdGljczogJlN0YXRpc3RpY3NPcHRpb25zLAo+PiBAQCAtNjIwLDcgKzYzMiw4IEBA IGltcGwgQ29tcG9uZW50IGZvciBQZG1EYXNoYm9hcmQgewo+PiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLmNsYXNzKHB3dDo6Y3NzOjpGbGV4OjpGaWxsKQo+PiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLmNsYXNzKEZsZXhXcmFw OjpXcmFwKQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLndp dGhfY2hpbGQoc2VsZi5jcmVhdGVfdGFza19zdW1tYXJ5X3BhbmVsKCZzZWxmLnN0YXRpc3RpY3Ms IE5vbmUpKQo+PiAtCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC53 aXRoX2NoaWxkKHNlbGYuY3JlYXRlX3Rhc2tfc3VtbWFyeV9wYW5lbCgmc2VsZi5zdGF0aXN0aWNz LCBTb21lKDUpKSksCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAu d2l0aF9jaGlsZChzZWxmLmNyZWF0ZV90YXNrX3N1bW1hcnlfcGFuZWwoJnNlbGYuc3RhdGlzdGlj cywgU29tZSg1KSkpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAu d2l0aF9jaGlsZChzZWxmLmNyZWF0ZV9zZG5fcGFuZWwoJnNlbGYuc3RhdHVzLnNkbl96b25lcykp LAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCApOwo+PiDCoCDCoMKgwqDCoMKgwqDCoMKg wqAgUGFuZWw6Om5ldygpCj4+IGRpZmYgLS1naXQgYS91aS9zcmMvZGFzaGJvYXJkL3Nkbl96b25l X3BhbmVsLnJzIGIvdWkvc3JjL2Rhc2hib2FyZC8KPj4gc2RuX3pvbmVfcGFuZWwucnMKPj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggMDAwMDAwMC4uYmNhYzM2Ygo+PiAtLS0gL2Rldi9u dWxsCj4+ICsrKyBiL3VpL3NyYy9kYXNoYm9hcmQvc2RuX3pvbmVfcGFuZWwucnMKPj4gQEAgLTAs MCArMSwxNTUgQEAKPj4gK3VzZSBzdGQ6OnJjOjpSYzsKPj4gKwo+PiArdXNlIHBkbV9hcGlfdHlw ZXM6OnJlc291cmNlOjp7UmVzb3VyY2VUeXBlLCBTZG5TdGF0dXMsIFNkblpvbmVDb3VudH07Cj4+ ICt1c2UgcGRtX3NlYXJjaDo6e1NlYXJjaCwgU2VhcmNoVGVybX07Cj4+ICt1c2UgcHd0Ojp7Cj4+ ICvCoMKgwqAgY3NzOjp7c2VsZiwgRm9udENvbG9yLCBUZXh0QWxpZ259LAo+PiArwqDCoMKgIHBy ZWx1ZGU6OiosCj4+ICvCoMKgwqAgd2lkZ2V0Ojp7Q29udGFpbmVyLCBGYSwgTGlzdCwgTGlzdFRp bGV9LAo+PiArfTsKPj4gK3VzZSB5ZXc6OnsKPj4gK8KgwqDCoCB2aXJ0dWFsX2RvbTo6e1ZDb21w LCBWTm9kZX0sCj4+ICvCoMKgwqAgUHJvcGVydGllcywKPj4gK307Cj4+ICsKPj4gK3VzZSBjcmF0 ZTo6c2VhcmNoX3Byb3ZpZGVyOjpnZXRfc2VhcmNoX3Byb3ZpZGVyOwo+PiArCj4+ICt1c2Ugc3Vw ZXI6OmxvYWRpbmdfY29sdW1uOwo+PiArCj4+ICsjW2Rlcml2ZShQYXJ0aWFsRXEsIENsb25lLCBQ cm9wZXJ0aWVzKV0KPj4gK3B1YiBzdHJ1Y3QgU2RuWm9uZVBhbmVsIHsKPj4gK8KgwqDCoCBzdGF0 dXM6IE9wdGlvbjxTZG5ab25lQ291bnQ+LAo+PiArfQo+PiArCj4+ICtpbXBsIFNkblpvbmVQYW5l bCB7Cj4+ICvCoMKgwqAgcHViIGZuIG5ldyhzdGF0dXM6IE9wdGlvbjxTZG5ab25lQ291bnQ+KSAt PiBTZWxmIHsKPj4gK8KgwqDCoMKgwqDCoMKgIHlldzo6cHJvcHMhKFNlbGYgeyBzdGF0dXMgfSkK Pj4gK8KgwqDCoCB9Cj4+ICt9Cj4+ICsKPj4gK2ltcGwgRnJvbTxTZG5ab25lUGFuZWw+IGZvciBW Tm9kZSB7Cj4+ICvCoMKgwqAgZm4gZnJvbSh2YWx1ZTogU2RuWm9uZVBhbmVsKSAtPiBTZWxmIHsK Pj4gK8KgwqDCoMKgwqDCoMKgIGxldCBjb21wID0KPj4gVkNvbXA6Om5ldzo6PFNkblpvbmVQYW5l bENvbXBvbmVudD4oUmM6Om5ldyh2YWx1ZSksIE5vbmUpOwo+PiArwqDCoMKgwqDCoMKgwqAgVk5v ZGU6OmZyb20oY29tcCkKPj4gK8KgwqDCoCB9Cj4+ICt9Cj4+ICsKPj4gKyNbZGVyaXZlKFBhcnRp YWxFcSwgQ2xvbmUpXQo+PiArcHViIGVudW0gU3RhdHVzUm93IHsKPj4gK8KgwqDCoCBTdGF0ZShT ZG5TdGF0dXMsIHU2NCksCj4+ICvCoMKgwqAgQWxsKHU2NCksCj4+ICt9Cj4+ICsKPj4gK2ltcGwg U3RhdHVzUm93IHsKPj4gK8KgwqDCoCBmbiBpY29uKCZzZWxmKSAtPiBGYSB7Cj4+ICvCoMKgwqDC oMKgwqDCoCBsZXQgKGljb24sIGNvbG9yKSA9IG1hdGNoIHNlbGYgewo+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBTZWxmOjpBbGwoXykgPT4gKCJ0aCIsIE5vbmUpLAo+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBTZWxmOjpTdGF0ZShTZG5TdGF0dXM6OkF2YWlsYWJsZSwgXykgPT4gKCJjaGVj ayIsCj4+IFNvbWUoRm9udENvbG9yOjpTdWNjZXNzKSksCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIFNlbGY6OlN0YXRlKFNkblN0YXR1czo6RXJyb3IsIF8pID0+ICgidGltZXMtY2lyY2xlIiwK Pj4gU29tZShGb250Q29sb3I6OkVycm9yKSksCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFNl bGY6OlN0YXRlKFNkblN0YXR1czo6VW5rbm93biwgXykgPT4gKCJxdWVzdGlvbiIsIE5vbmUpLAo+ PiArwqDCoMKgwqDCoMKgwqAgfTsKPj4gKwo+PiArwqDCoMKgwqDCoMKgwqAgbGV0IG11dCBpY29u ID0gRmE6Om5ldyhpY29uKTsKPj4gKwo+PiArwqDCoMKgwqDCoMKgwqAgaWYgbGV0IFNvbWUoY29s b3IpID0gY29sb3Igewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpY29uID0gaWNvbi5jbGFz cyhjb2xvcik7Cj4+ICvCoMKgwqDCoMKgwqDCoCB9Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKgIGlj b24KPj4gK8KgwqDCoCB9Cj4+ICt9Cj4+ICsKPj4gK3B1YiBzdHJ1Y3QgU2RuWm9uZVBhbmVsQ29t cG9uZW50IHt9Cj4+ICsKPj4gK2ltcGwgeWV3OjpDb21wb25lbnQgZm9yIFNkblpvbmVQYW5lbENv bXBvbmVudCB7Cj4+ICvCoMKgwqAgdHlwZSBNZXNzYWdlID0gU2VhcmNoOwo+PiArwqDCoMKgIHR5 cGUgUHJvcGVydGllcyA9IFNkblpvbmVQYW5lbDsKPj4gKwo+PiArwqDCoMKgIGZuIGNyZWF0ZShf Y3R4OiAmeWV3OjpDb250ZXh0PFNlbGY+KSAtPiBTZWxmIHsKPj4gK8KgwqDCoMKgwqDCoMKgIFNl bGYge30KPj4gK8KgwqDCoCB9Cj4+ICsKPj4gK8KgwqDCoCBmbiB1cGRhdGUoJm11dCBzZWxmLCBj dHg6ICZDb250ZXh0PFNlbGY+LCBtc2c6IFNlbGY6Ok1lc3NhZ2UpIC0+Cj4+IGJvb2wgewo+PiAr wqDCoMKgwqDCoMKgwqAgaWYgbGV0IFNvbWUocHJvdmlkZXIpID0gZ2V0X3NlYXJjaF9wcm92aWRl cihjdHgpIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcHJvdmlkZXIuc2VhcmNoKG1zZyk7 Cj4+ICvCoMKgwqDCoMKgwqDCoCB9Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKgIGZhbHNlCj4+ICvC oMKgwqAgfQo+PiArCj4+ICvCoMKgwqAgZm4gdmlldygmc2VsZiwgY3R4OiAmeWV3OjpDb250ZXh0 PFNlbGY+KSAtPiB5ZXc6Okh0bWwgewo+PiArwqDCoMKgwqDCoMKgwqAgbGV0IHByb3BzID0gY3R4 LnByb3BzKCk7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKgIGxldCBTb21lKHN0YXR1cykgPSAmcHJv cHMuc3RhdHVzIGVsc2Ugewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gbG9hZGlu Z19jb2x1bW4oKS5pbnRvKCk7Cj4+ICvCoMKgwqDCoMKgwqDCoCB9Owo+PiArCj4+ICvCoMKgwqDC oMKgwqDCoCBsZXQgZGF0YSA9IHZlYyFbCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFN0YXR1 c1Jvdzo6U3RhdGUoU2RuU3RhdHVzOjpBdmFpbGFibGUsIHN0YXR1cy5hdmFpbGFibGUpLAo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBTdGF0dXNSb3c6OlN0YXRlKFNkblN0YXR1czo6RXJyb3Is IHN0YXR1cy5lcnJvciksCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFN0YXR1c1Jvdzo6QWxs KHN0YXR1cy5hdmFpbGFibGUgKyBzdGF0dXMuZXJyb3IgKwo+PiBzdGF0dXMudW5rbm93biksCj4+ ICvCoMKgwqDCoMKgwqDCoCBdOwo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoCBsZXQgdGlsZXM6IFZl YzxfPiA9IGRhdGEKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLmludG9faXRlcigpCj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIC5maWx0ZXJfbWFwKHxyb3d8IGNyZWF0ZV9saXN0X3RpbGUo Y3R4LmxpbmsoKSwgcm93KSkKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLmNvbGxlY3QoKTsK Pj4gKwo+PiArwqDCoMKgwqDCoMKgwqAgbGV0IGxpc3QgPSBMaXN0OjpuZXcodGlsZXMubGVuKCkg YXMgdTY0LCBtb3ZlIHxpZHg6IHU2NHwgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0aWxl c1tpZHggYXMgdXNpemVdLmNsb25lKCkKPj4gK8KgwqDCoMKgwqDCoMKgIH0pCj4+ICvCoMKgwqDC oMKgwqDCoCAucGFkZGluZyg0KQo+PiArwqDCoMKgwqDCoMKgwqAgLmNsYXNzKGNzczo6RmxleDo6 RmlsbCkKPj4gK8KgwqDCoMKgwqDCoMKgIC5ncmlkX3RlbXBsYXRlX2NvbHVtbnMoImF1dG8gYXV0 byAxZnIgYXV0byIpOwo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoCBsaXN0LmludG8oKQo+PiArwqDC oMKgIH0KPj4gK30KPj4gKwo+PiArZm4gY3JlYXRlX2xpc3RfdGlsZSgKPj4gK8KgwqDCoCBsaW5r OiAmaHRtbDo6U2NvcGU8U2RuWm9uZVBhbmVsQ29tcG9uZW50PiwKPj4gK8KgwqDCoCBzdGF0dXNf cm93OiBTdGF0dXNSb3csCj4+ICspIC0+IE9wdGlvbjxMaXN0VGlsZT4gewo+PiArwqDCoMKgIGxl dCAoaWNvbiwgc3RhdHVzLCBjb3VudCkgPSBtYXRjaCBzdGF0dXNfcm93IHsKPj4gK8KgwqDCoMKg wqDCoMKgIFN0YXR1c1Jvdzo6U3RhdGUoc2RuX3N0YXR1cywgY291bnQpID0+IChzdGF0dXNfcm93 Lmljb24oKSwKPj4gU29tZShzZG5fc3RhdHVzKSwgY291bnQpLAo+PiArwqDCoMKgwqDCoMKgwqAg U3RhdHVzUm93OjpBbGwoY291bnQpID0+IChzdGF0dXNfcm93Lmljb24oKSwgTm9uZSwgY291bnQp LAo+PiArwqDCoMKgIH07Cj4+ICsKPj4gK8KgwqDCoCBsZXQgbmFtZSA9IHN0YXR1cwo+PiArwqDC oMKgwqDCoMKgwqAgLm1hcCh8c3RhdHVzfCBzdGF0dXMudG9fc3RyaW5nKCkpCj4+ICvCoMKgwqDC oMKgwqDCoCAudW53cmFwX29yX2Vsc2UofHwgIkFsbCIudG9fc3RyaW5nKCkpOwo+PiArCj4+ICvC oMKgwqAgU29tZSgKPj4gK8KgwqDCoMKgwqDCoMKgIExpc3RUaWxlOjpuZXcoKQo+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAudGFiaW5kZXgoMCkKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAg LmludGVyYWN0aXZlKHRydWUpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC53aXRoX2NoaWxk KGljb24pCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC53aXRoX2NoaWxkKENvbnRhaW5lcjo6 bmV3KCkucGFkZGluZ194KDIpLndpdGhfY2hpbGQobmFtZSkpCj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIC53aXRoX2NoaWxkKAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIENv bnRhaW5lcjo6bmV3KCkKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IC5jbGFzcyhUZXh0QWxpZ246OlJpZ2h0KQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgLnBhZGRpbmdfZW5kKDIpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAud2l0aF9jaGlsZChjb3VudCksCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgICkKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLndpdGhfY2hpbGQoRmE6Om5ldygic2Vh cmNoIikpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC5vbmNsaWNrKGxpbmsuY2FsbGJhY2so bW92ZSB8X3wKPj4gY3JlYXRlX3Nkbl96b25lX3NlYXJjaF90ZXJtKHN0YXR1cykpKQo+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAub25rZXlkb3duKGxpbmsuYmF0Y2hfY2FsbGJhY2soCj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbW92ZSB8ZXZlbnQ6IEtleWJvYXJkRXZlbnR8 IG1hdGNoIGV2ZW50LmtleSgpLmFzX3N0cigpIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgICJFbnRlciIgfCAiICIgPT4KPj4gU29tZShjcmVhdGVfc2RuX3pvbmVf c2VhcmNoX3Rlcm0oc3RhdHVzKSksCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBfID0+IE5vbmUsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfSwK Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKSksCj4+ICvCoMKgwqAgKQo+PiArfQo+PiArCj4+ ICtmbiBjcmVhdGVfc2RuX3pvbmVfc2VhcmNoX3Rlcm0oc3RhdHVzOiBPcHRpb248U2RuU3RhdHVz PikgLT4gU2VhcmNoIHsKPj4gK8KgwqDCoCBsZXQgcmVzb3VyY2VfdHlwZTogUmVzb3VyY2VUeXBl ID0gUmVzb3VyY2VUeXBlOjpQdmVTZG5ab25lOwo+PiArCj4+ICvCoMKgwqAgbGV0IG11dCB0ZXJt cyA9IHZlYyEKPj4gW1NlYXJjaFRlcm06Om5ldyhyZXNvdXJjZV90eXBlLmFzX3N0cigpKS5jYXRl Z29yeShTb21lKCJ0eXBlIikpXTsKPj4gKwo+PiArwqDCoMKgIGlmIGxldCBTb21lKHN0YXR1cykg PSBzdGF0dXMgewo+PiArwqDCoMKgwqDCoMKgwqAKPj4gdGVybXMucHVzaChTZWFyY2hUZXJtOjpu ZXcoc3RhdHVzLnRvX3N0cmluZygpKS5jYXRlZ29yeShTb21lKCJzdGF0dXMiKSkpOwo+PiArwqDC oMKgIH0KPj4gKwo+PiArwqDCoMKgIFNlYXJjaDo6d2l0aF90ZXJtcyh0ZXJtcykKPj4gK30KPj4g ZGlmZiAtLWdpdCBhL3VpL3NyYy9saWIucnMgYi91aS9zcmMvbGliLnJzCj4+IGluZGV4IDVmZmJm ZjMuLmU0YmZiYjcgMTAwNjQ0Cj4+IC0tLSBhL3VpL3NyYy9saWIucnMKPj4gKysrIGIvdWkvc3Jj L2xpYi5ycwo+PiBAQCAtMSw0ICsxLDQgQEAKPj4gLXVzZSBwZG1fYXBpX3R5cGVzOjpyZXNvdXJj ZTo6e1B2ZUx4Y1Jlc291cmNlLCBQdmVRZW11UmVzb3VyY2V9Owo+PiArdXNlIHBkbV9hcGlfdHlw ZXM6OnJlc291cmNlOjp7UHZlTHhjUmVzb3VyY2UsIFB2ZVFlbXVSZXNvdXJjZSwKPj4gUHZlU2Ru UmVzb3VyY2V9Owo+PiDCoCB1c2UgcGRtX2NsaWVudDo6dHlwZXM6OlJlc291cmNlOwo+PiDCoCB1 c2Ugc2VyZGU6OntEZXNlcmlhbGl6ZSwgU2VyaWFsaXplfTsKPj4gwqAgQEAgLTE1MSwxMyArMTUx LDIxIEBAIHB1YihjcmF0ZSkgZm4gbmF2aWdhdGVfdG88QzogeWV3OjpDb21wb25lbnQ+KAo+PiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcGRtX2NsaWVudDo6dHlw ZXM6OlJlc291cmNlOjpQdmVTdG9yYWdlKHN0b3JhZ2UpCj4+ID0+IHsKPj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZm9ybWF0ISgic3RvcmFnZSt7 fSt7fSIsIHN0b3JhZ2Uubm9kZSwKPj4gc3RvcmFnZS5zdG9yYWdlKQo+PiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAKPj4gcGRtX2NsaWVudDo6dHlwZXM6OlJlc291cmNlOjpQdmVTZG4o UHZlU2RuUmVzb3VyY2U6OlpvbmUoXykpID0+IHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgInNkbi96b25lcyIudG9fc3RyaW5nKCkKPj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHBkbV9jbGllbnQ6OnR5cGVzOjpSZXNvdXJjZTo6UGJz RGF0YXN0b3JlKHN0b3JlKQo+PiA9PiBzdG9yZS5uYW1lLmNsb25lKCksCj4+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvLyBGSVhNRTogaW1wbGVtZW50Cj4+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBfID0+IHJldHVybiBOb25l LAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0pCj4+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIH0pCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC51bndyYXBf b3JfZGVmYXVsdCgpOwo+PiAtwqDCoMKgwqDCoMKgwqAgbmF2LnB1c2goJnlld19yb3V0ZXI6OkFu eVJvdXRlOjpuZXcoZm9ybWF0ISgiL3JlbW90ZS0KPj4ge3JlbW90ZX0ve2lkfSIpKSk7Cj4+ICsK Pj4gK8KgwqDCoMKgwqDCoMKgIGlmIGxldCBTb21lKHBkbV9jbGllbnQ6OnR5cGVzOjpSZXNvdXJj ZTo6UHZlU2RuKF8pKSA9IHJlc291cmNlIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbmF2 LnB1c2goJnlld19yb3V0ZXI6OkFueVJvdXRlOjpuZXcoZm9ybWF0ISgiL3tpZH0iKSkpOwo+PiAr wqDCoMKgwqDCoMKgwqAgfSBlbHNlIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbmF2LnB1 c2goJnlld19yb3V0ZXI6OkFueVJvdXRlOjpuZXcoZm9ybWF0ISgiL3JlbW90ZS0KPj4ge3JlbW90 ZX0ve2lkfSIpKSk7Cj4+ICvCoMKgwqDCoMKgwqDCoCB9Cj4gCj4gaSBkb24ndCByZWFsbHkgbGlr ZSB0aGUgc3BlY2lhbCBjYXNpbmcgb2Ygc2RuIGhlcmUuIEkgdGhpbmsgaXQgd291bGQgYmUKPiBi ZXR0ZXIsIGUuZy4gaWYgdGhlIG1hdGNoIHdvdWxkIHJldHVybiBhIHR1cGxlIG9mIHRoZSAob3B0 aW9uYWwpIHJlbW90ZQo+IGFuZCB0aGUgaWQKClllYWgsIG1ha2VzIHNlbnNlIEknbGwgdHJ5IHRv IGFkanVzdCBpdAoKPj4gwqDCoMKgwqDCoCB9Cj4+IMKgIH0KPj4gwqAgQEAgLTE2Nyw3ICsxNzUs NyBAQCBwdWIoY3JhdGUpIGZuIGdldF9yZXNvdXJjZV9ub2RlKHJlc291cmNlOgo+PiAmUmVzb3Vy Y2UpIC0+IE9wdGlvbjwmc3RyPiB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBSZXNvdXJjZTo6UHZl UWVtdShxZW11KSA9PiBTb21lKCZxZW11Lm5vZGUpLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgUmVz b3VyY2U6OlB2ZUx4YyhseGMpID0+IFNvbWUoJmx4Yy5ub2RlKSwKPj4gwqDCoMKgwqDCoMKgwqDC oMKgIFJlc291cmNlOjpQdmVOb2RlKG5vZGUpID0+IFNvbWUoJm5vZGUubm9kZSksCj4+IC3CoMKg wqDCoMKgwqDCoCBSZXNvdXJjZTo6UHZlU2RuKHNkbikgPT4gU29tZSgmc2RuLnNkbiksCj4+ICvC oMKgwqDCoMKgwqDCoCBSZXNvdXJjZTo6UHZlU2RuKHNkbikgPT4gU29tZShzZG4ubm9kZSgpKSwK Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIFJlc291cmNlOjpQYnNOb2RlKF8pID0+IE5vbmUsCj4+IMKg wqDCoMKgwqDCoMKgwqDCoCBSZXNvdXJjZTo6UGJzRGF0YXN0b3JlKF8pID0+IE5vbmUsCj4+IMKg wqDCoMKgwqAgfQo+PiBkaWZmIC0tZ2l0IGEvdWkvc3JjL3B2ZS91dGlscy5ycyBiL3VpL3NyYy9w dmUvdXRpbHMucnMKPj4gaW5kZXggNzY2MzczNC4uYTQ5MjA1ZCAxMDA2NDQKPj4gLS0tIGEvdWkv c3JjL3B2ZS91dGlscy5ycwo+PiArKysgYi91aS9zcmMvcHZlL3V0aWxzLnJzCj4+IEBAIC0xLDYg KzEsNyBAQAo+PiDCoCB1c2UgYW55aG93OjpFcnJvcjsKPj4gwqAgdXNlIHBkbV9hcGlfdHlwZXM6 OnJlc291cmNlOjp7Cj4+IC3CoMKgwqAgUHZlTHhjUmVzb3VyY2UsIFB2ZU5vZGVSZXNvdXJjZSwg UHZlUWVtdVJlc291cmNlLAo+PiBQdmVTdG9yYWdlUmVzb3VyY2UsCj4+ICvCoMKgwqAgUHZlTHhj UmVzb3VyY2UsIFB2ZU5vZGVSZXNvdXJjZSwgUHZlUWVtdVJlc291cmNlLAo+PiBQdmVTdG9yYWdl UmVzb3VyY2UsIFNkblN0YXR1cywKPj4gK8KgwqDCoCBTZG5ab25lUmVzb3VyY2UsCj4+IMKgIH07 Cj4+IMKgIHVzZSBwZG1fY2xpZW50Ojp0eXBlczo6ewo+PiDCoMKgwqDCoMKgIEx4Y0NvbmZpZywg THhjQ29uZmlnTXAsIEx4Y0NvbmZpZ1Jvb3RmcywgTHhjQ29uZmlnVW51c2VkLAo+PiBQdmVRbUlk ZSwgUWVtdUNvbmZpZywgUWVtdUNvbmZpZ1NhdGEsCj4+IEBAIC04OCw2ICs4OSwxOSBAQCBwdWIg Zm4gcmVuZGVyX25vZGVfc3RhdHVzX2ljb24obm9kZToKPj4gJlB2ZU5vZGVSZXNvdXJjZSkgLT4g Q29udGFpbmVyIHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC53aXRoX2NoaWxkKEZhOjpmcm9tKGV4 dHJhKS5maXhlZF93aWR0aCgpLmNsYXNzKCJzdGF0dXMtaWNvbiIpKQo+PiDCoCB9Cj4+IMKgICsv Ly8gUmVuZGVycyB0aGUgc3RhdHVzIGljb24gZm9yIGEgUHZlTm9kZQo+IAo+IGl0J3Mgbm90IGZv ciBhIFB2ZU5vZGUgOykKCmNvcHktcGFzdGUgbWlzdGFrZSA6KAoKPiAKPj4gK3B1YiBmbiByZW5k ZXJfc2RuX3N0YXR1c19pY29uKHpvbmU6ICZTZG5ab25lUmVzb3VyY2UpIC0+IENvbnRhaW5lciB7 Cj4+ICvCoMKgwqAgbGV0IGV4dHJhID0gbWF0Y2ggem9uZS5zdGF0dXMgewo+PiArwqDCoMKgwqDC oMKgwqAgU2RuU3RhdHVzOjpBdmFpbGFibGUgPT4gTm9kZVN0YXRlOjpPbmxpbmUsCj4+ICvCoMKg wqDCoMKgwqDCoCBTZG5TdGF0dXM6OkVycm9yID0+IE5vZGVTdGF0ZTo6T2ZmbGluZSwKPj4gK8Kg wqDCoMKgwqDCoMKgIF8gPT4gTm9kZVN0YXRlOjpVbmtub3duLAo+PiArwqDCoMKgIH07Cj4+ICvC oMKgwqAgQ29udGFpbmVyOjpuZXcoKQo+PiArwqDCoMKgwqDCoMKgwqAgLmNsYXNzKCJwZG0tdHlw ZS1pY29uIikKPj4gK8KgwqDCoMKgwqDCoMKgIC53aXRoX2NoaWxkKEZhOjpuZXcoInRoIikuZml4 ZWRfd2lkdGgoKSkKPj4gK8KgwqDCoMKgwqDCoMKgIC53aXRoX2NoaWxkKEZhOjpmcm9tKGV4dHJh KS5maXhlZF93aWR0aCgpLmNsYXNzKCJzdGF0dXMtaWNvbiIpKQo+PiArfQo+PiArCj4+IMKgIC8v LyBSZW5kZXJzIHRoZSBzdGF0dXMgaWNvbiBmb3IgYSBQdmVTdG9yYWdlCj4+IMKgIHB1YiBmbiBy ZW5kZXJfc3RvcmFnZV9zdGF0dXNfaWNvbihub2RlOiAmUHZlU3RvcmFnZVJlc291cmNlKSAtPgo+ PiBDb250YWluZXIgewo+PiDCoMKgwqDCoMKgIGxldCBleHRyYSA9IG1hdGNoIG5vZGUuc3RhdHVz LmFzX3N0cigpIHsKPj4gZGlmZiAtLWdpdCBhL3VpL3NyYy9yZW5kZXJlci5ycyBiL3VpL3NyYy9y ZW5kZXJlci5ycwo+PiBpbmRleCA1ZWJkOWEzLi5lMTc5Y2Q1IDEwMDY0NAo+PiAtLS0gYS91aS9z cmMvcmVuZGVyZXIucnMKPj4gKysrIGIvdWkvc3JjL3JlbmRlcmVyLnJzCj4+IEBAIC0xLDMgKzEs NCBAQAo+PiArdXNlIHBkbV9hcGlfdHlwZXM6OnJlc291cmNlOjpQdmVTZG5SZXNvdXJjZTsKPj4g wqAgdXNlIHB3dDo6ewo+PiDCoMKgwqDCoMKgIGNzcywKPj4gwqDCoMKgwqDCoCBwcmVsdWRlOjoq LAo+PiBAQCAtMTcsNyArMTgsNyBAQCBwdWIgZm4gcmVuZGVyX3Jlc291cmNlX25hbWUocmVzb3Vy Y2U6ICZSZXNvdXJjZSwKPj4gdm1pZF9maXJzdDogYm9vbCkgLT4gU3RyaW5nIHsKPj4gwqDCoMKg wqDCoMKgwqDCoMKgIFJlc291cmNlOjpQdmVRZW11KHFlbXUpID0+Cj4+IHB2ZTo6dXRpbHM6OnJl bmRlcl9xZW11X25hbWUocWVtdSwgdm1pZF9maXJzdCksCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBS ZXNvdXJjZTo6UHZlTHhjKGx4YykgPT4gcHZlOjp1dGlsczo6cmVuZGVyX2x4Y19uYW1lKGx4YywK Pj4gdm1pZF9maXJzdCksCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBSZXNvdXJjZTo6UHZlTm9kZShu b2RlKSA9PiBub2RlLm5vZGUuY2xvbmUoKSwKPj4gLcKgwqDCoMKgwqDCoMKgIFJlc291cmNlOjpQ dmVTZG4oc2RuKSA9PiBzZG4uc2RuLmNsb25lKCksCj4+ICvCoMKgwqDCoMKgwqDCoCBSZXNvdXJj ZTo6UHZlU2RuKHNkbikgPT4gc2RuLm5hbWUoKS50b19zdHJpbmcoKSwKCndoaWxlIEknbSBhdCBp dCB3aWxsIGFsc28gYW1lbmQgdGhpcyBjaGFuZ2UgaW50byB0aGUgZWFybGllciBjb21taXQKc2lu Y2UgdGhpcyBsaW5lIGlzIHRvdWNoZWQgdHdpY2UgaW4gdGhlIHBhdGNoIHNlcmllcyBhbmQgYSBy ZW1uYW50IG9mIGFuCmVhcmxpZXIgdmVyc2lvbiBvZiB0aGUgUmVzb3VyY2UgdHlwZXMuLgoKPj4g wqDCoMKgwqDCoMKgwqDCoMKgIFJlc291cmNlOjpQYnNOb2RlKG5vZGUpID0+IG5vZGUubmFtZS5j bG9uZSgpLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgUmVzb3VyY2U6OlBic0RhdGFzdG9yZShzdG9y ZSkgPT4gc3RvcmUubmFtZS5jbG9uZSgpLAo+PiDCoMKgwqDCoMKgIH0KPj4gQEAgLTQzLDYgKzQ0 LDcgQEAgcHViIGZuIHJlbmRlcl9zdGF0dXNfaWNvbihyZXNvdXJjZTogJlJlc291cmNlKSAtPgo+ PiBDb250YWluZXIgewo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgUmVzb3VyY2U6OlB2ZVFlbXUocWVt dSkgPT4KPj4gcHZlOjp1dGlsczo6cmVuZGVyX3FlbXVfc3RhdHVzX2ljb24ocWVtdSksCj4+IMKg wqDCoMKgwqDCoMKgwqDCoCBSZXNvdXJjZTo6UHZlTHhjKGx4YykgPT4KPj4gcHZlOjp1dGlsczo6 cmVuZGVyX2x4Y19zdGF0dXNfaWNvbihseGMpLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgUmVzb3Vy Y2U6OlB2ZU5vZGUobm9kZSkgPT4KPj4gcHZlOjp1dGlsczo6cmVuZGVyX25vZGVfc3RhdHVzX2lj b24obm9kZSksCj4+ICvCoMKgwqDCoMKgwqDCoCBSZXNvdXJjZTo6UHZlU2RuKFB2ZVNkblJlc291 cmNlOjpab25lKHpvbmUpKSA9Pgo+PiBwdmU6OnV0aWxzOjpyZW5kZXJfc2RuX3N0YXR1c19pY29u KHpvbmUpLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLy8gRklYTUU6IGltcGxlbWVudCByZW1haW5p bmcgdHlwZXMKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIF8gPT4KPj4gQ29udGFpbmVyOjpuZXcoKS53 aXRoX2NoaWxkKHJlbmRlcl9yZXNvdXJjZV9pY29uKHJlc291cmNlKSksCj4+IMKgwqDCoMKgwqAg fQo+IAoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpw ZG0tZGV2ZWwgbWFpbGluZyBsaXN0CnBkbS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQpodHRwczov L2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wZG0tZGV2ZWwK