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 3C7021FF184 for ; Thu, 20 Nov 2025 12:07:12 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 6B3424104; Thu, 20 Nov 2025 12:07:18 +0100 (CET) From: Stefan Hanreich To: pdm-devel@lists.proxmox.com Date: Thu, 20 Nov 2025 12:06:38 +0100 Message-ID: <20251120110641.120124-9-s.hanreich@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251120110641.120124-1-s.hanreich@proxmox.com> References: <20251120110641.120124-1-s.hanreich@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.173 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_LAZY_DOMAIN_SECURITY 1 Sending domain does not have any anti-forgery methods RDNS_NONE 0.793 Delivered to internal network by a host with no rDNS SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_NONE 0.001 SPF: sender does not publish an SPF Record Subject: [pdm-devel] [PATCH proxmox-datacenter-manager v3 5/5] sdn: evpn: add detail panel to the evpn panel 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" RXh0ZW5kIHRoZSBFVlBOIHBhbmVsLCBzbyBpdCBjYW4gZGlzcGxheSBkZXRhaWxlZCBpbmZvcm1h dGlvbiBhYm91dApzZWxlY3RlZCBlbGVtZW50cyBpbiB0aGUgdHJlZXMuIFdoZW4gc2VsZWN0aW5n IGEgc3BlY2lmaWMgem9uZSAvIHZuZXQsCnRoZSBkZXRhaWwgcGFuZWwgd2lsbCBzaG93IHRoZSBJ UCAvIE1BQy1WUkYgb2YgdGhhdCB6b25lIC8gdm5ldC4gVGhpcwpyZXF1aXJlcyBzb21lIHJlZmFj dG9yaW5nIG9mIHRoZSBleGlzdGluZyBFVlBOIHBhbmVsIHRvIGFsbG93CmRpc3BsYXlpbmcgYSBz ZWNvbmQgcGFuZWwgbmV4dCB0byBpdC4gSXQgaXMgbm93IHN0cnVjdHVyZWQgbGlrZSB0aGUKcmVt b3RlIHZpZXcsIHdoaWNoIGFsc28gb2ZmZXJzIGEgcGFuZWwgdGhhdCBzaG93cyBhbiBvdmVydmll dyBvZiB0aGUKcmVtb3RlIGFuZCBkZXRhaWxzIG9mIHRoZSBzZWxlY3RlZCBub2RlLgoKU2lnbmVk LW9mZi1ieTogU3RlZmFuIEhhbnJlaWNoIDxzLmhhbnJlaWNoQHByb3htb3guY29tPgpUZXN0ZWQt Ynk6IEhhbm5lcyBEw7xyciA8aC5kdWVyckBwcm94bW94LmNvbT4KUmV2aWV3ZWQtYnk6IEx1a2Fz IFdhZ25lciA8bC53YWduZXJAcHJveG1veC5jb20+Ci0tLQogdWkvc3JjL3Nkbi9ldnBuL2V2cG5f cGFuZWwucnMgIHwgMTMwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogdWkvc3Jj L3Nkbi9ldnBuL3JlbW90ZV90cmVlLnJzIHwgIDcxICsrKysrKysrKysrKystLS0tLQogdWkvc3Jj L3Nkbi9ldnBuL3ZyZl90cmVlLnJzICAgIHwgIDI5ICsrKysrKystCiAzIGZpbGVzIGNoYW5nZWQs IDE5NyBpbnNlcnRpb25zKCspLCAzMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS91aS9zcmMv c2RuL2V2cG4vZXZwbl9wYW5lbC5ycyBiL3VpL3NyYy9zZG4vZXZwbi9ldnBuX3BhbmVsLnJzCmlu ZGV4IDg5ZTJlNTguLjkwZTAzOGUgMTAwNjQ0Ci0tLSBhL3VpL3NyYy9zZG4vZXZwbi9ldnBuX3Bh bmVsLnJzCisrKyBiL3VpL3NyYy9zZG4vZXZwbi9ldnBuX3BhbmVsLnJzCkBAIC0xLDUgKzEsNiBA QAogdXNlIGZ1dHVyZXM6OnRyeV9qb2luOwogdXNlIHN0ZDo6cmM6OlJjOwordXNlIHN0ZDo6c3Ry OjpGcm9tU3RyOwogCiB1c2UgYW55aG93OjpFcnJvcjsKIHVzZSB5ZXc6OnZpcnR1YWxfZG9tOjp7 VkNvbXAsIFZOb2RlfTsKQEAgLTksMTQgKzEwLDIwIEBAIHVzZSBwZG1fY2xpZW50Ojp0eXBlczo6 e0xpc3RDb250cm9sbGVyLCBMaXN0Q29udHJvbGxlcnNUeXBlLCBMaXN0Vm5ldCwgTGlzdFpvbmUs CiB1c2UgcHJveG1veF95ZXdfY29tcDo6e0xvYWRhYmxlQ29tcG9uZW50LCBMb2FkYWJsZUNvbXBv bmVudENvbnRleHQsIExvYWRhYmxlQ29tcG9uZW50TWFzdGVyfTsKIAogdXNlIHB3dDo6Y3NzOjp7 QWxpZ25JdGVtcywgRmxleEZpdCwgSnVzdGlmeUNvbnRlbnR9OwotdXNlIHB3dDo6cHJvcHM6OntD b250YWluZXJCdWlsZGVyLCBFdmVudFN1YnNjcmliZXIsIFN0b3JhZ2VMb2NhdGlvbiwgV2lkZ2V0 QnVpbGRlcn07Ci11c2UgcHd0OjpzdGF0ZTo6TmF2aWdhdGlvbkNvbnRhaW5lcjsKK3VzZSBwd3Q6 OnByb3BzOjp7CisgICAgQ29udGFpbmVyQnVpbGRlciwgRXZlbnRTdWJzY3JpYmVyLCBTdG9yYWdl TG9jYXRpb24sIFdpZGdldEJ1aWxkZXIsIFdpZGdldFN0eWxlQnVpbGRlciwKK307Cit1c2UgcHd0 OjpzdGF0ZTo6e05hdmlnYXRpb25Db250YWluZXIsIFNlbGVjdGlvbn07CiB1c2UgcHd0Ojp0cjsK IHVzZSBwd3Q6OndpZGdldDo6bWVudTo6e01lbnUsIE1lbnVCdXR0b24sIE1lbnVJdGVtfTsKLXVz ZSBwd3Q6OndpZGdldDo6e0J1dHRvbiwgQ29sdW1uLCBNaW5pU2Nyb2xsTW9kZSwgVGFiQmFySXRl bSwgVGFiUGFuZWwsIFRvb2xiYXJ9OwordXNlIHB3dDo6d2lkZ2V0Ojp7CisgICAgQnV0dG9uLCBD b2x1bW4sIENvbnRhaW5lciwgTWluaVNjcm9sbE1vZGUsIFBhbmVsLCBSb3csIFRhYkJhckl0ZW0s IFRhYlBhbmVsLCBUb29sYmFyLAorfTsKIAogdXNlIGNyYXRlOjpwZG1fY2xpZW50OwotdXNlIGNy YXRlOjpzZG46OmV2cG46OntBZGRWbmV0V2luZG93LCBBZGRab25lV2luZG93LCBSZW1vdGVUcmVl LCBWcmZUcmVlfTsKK3VzZSBjcmF0ZTo6c2RuOjpldnBuOjp7CisgICAgQWRkVm5ldFdpbmRvdywg QWRkWm9uZVdpbmRvdywgTm9kZUxpc3QsIFJlbW90ZVRyZWUsIFZuZXRTdGF0dXNUYWJsZSwgVnJm VHJlZSwgWm9uZVN0YXR1c1RhYmxlLAorfTsKIAogI1tkZXJpdmUoUGFydGlhbEVxLCBQcm9wZXJ0 aWVzKV0KIHB1YiBzdHJ1Y3QgRXZwblBhbmVsIHt9CkBAIC00MCw2ICs0NywxMSBAQCBpbXBsIEZy b208RXZwblBhbmVsPiBmb3IgVk5vZGUgewogICAgIH0KIH0KIAorcHViIGVudW0gRGV0YWlsUGFu ZWwgeworICAgIFpvbmUgeyByZW1vdGU6IFN0cmluZywgem9uZTogU3RyaW5nIH0sCisgICAgVm5l dCB7IHJlbW90ZTogU3RyaW5nLCB2bmV0OiBTdHJpbmcgfSwKK30KKwogcHViIGVudW0gRXZwblBh bmVsTXNnIHsKICAgICBSZWxvYWQsCiAgICAgTG9hZEZpbmlzaGVkIHsKQEAgLTQ3LDYgKzU5LDcg QEAgcHViIGVudW0gRXZwblBhbmVsTXNnIHsKICAgICAgICAgem9uZXM6IFJjPFZlYzxMaXN0Wm9u ZT4+LAogICAgICAgICB2bmV0czogUmM8VmVjPExpc3RWbmV0Pj4sCiAgICAgfSwKKyAgICBEZXRh aWxTZWxlY3Rpb24oT3B0aW9uPERldGFpbFBhbmVsPiksCiB9CiAKICNbZGVyaXZlKERlYnVnLCBQ YXJ0aWFsRXEpXQpAQCAtODIsNiArOTUsOCBAQCBwdWIgc3RydWN0IEV2cG5QYW5lbENvbXBvbmVu dCB7CiAgICAgem9uZXM6IFJjPFZlYzxMaXN0Wm9uZT4+LAogICAgIHZuZXRzOiBSYzxWZWM8TGlz dFZuZXQ+PiwKICAgICBpbml0aWFsX2xvYWQ6IGJvb2wsCisgICAgc2VsZWN0ZWRfZGV0YWlsOiBP cHRpb248RGV0YWlsUGFuZWw+LAorICAgIHNlbGVjdGVkX3RhYjogU2VsZWN0aW9uLAogfQogCiBp bXBsIEV2cG5QYW5lbENvbXBvbmVudCB7CkBAIC0xMjMsMTIgKzEzOCwxOSBAQCBpbXBsIExvYWRh YmxlQ29tcG9uZW50IGZvciBFdnBuUGFuZWxDb21wb25lbnQgewogICAgIHR5cGUgTWVzc2FnZSA9 IEV2cG5QYW5lbE1zZzsKICAgICB0eXBlIFZpZXdTdGF0ZSA9IEV2cG5QYW5lbFZpZXdTdGF0ZTsK IAotICAgIGZuIGNyZWF0ZShfY3R4OiAmTG9hZGFibGVDb21wb25lbnRDb250ZXh0PFNlbGY+KSAt PiBTZWxmIHsKKyAgICBmbiBjcmVhdGUoY3R4OiAmTG9hZGFibGVDb21wb25lbnRDb250ZXh0PFNl bGY+KSAtPiBTZWxmIHsKKyAgICAgICAgbGV0IGxpbmsgPSBjdHgubGluaygpLmNsb25lKCk7CisK KyAgICAgICAgbGV0IHNlbGVjdGVkX3RhYiA9IFNlbGVjdGlvbjo6bmV3KCkKKyAgICAgICAgICAg IC5vbl9zZWxlY3QobW92ZSB8X3wgbGluay5zZW5kX21lc3NhZ2UoU2VsZjo6TWVzc2FnZTo6RGV0 YWlsU2VsZWN0aW9uKE5vbmUpKSk7CisKICAgICAgICAgU2VsZiB7CiAgICAgICAgICAgICBpbml0 aWFsX2xvYWQ6IHRydWUsCiAgICAgICAgICAgICBjb250cm9sbGVyczogRGVmYXVsdDo6ZGVmYXVs dCgpLAogICAgICAgICAgICAgem9uZXM6IERlZmF1bHQ6OmRlZmF1bHQoKSwKICAgICAgICAgICAg IHZuZXRzOiBEZWZhdWx0OjpkZWZhdWx0KCksCisgICAgICAgICAgICBzZWxlY3RlZF9kZXRhaWw6 IE5vbmUsCisgICAgICAgICAgICBzZWxlY3RlZF90YWIsCiAgICAgICAgIH0KICAgICB9CiAKQEAg LTE2Niw2ICsxODgsMTAgQEAgaW1wbCBMb2FkYWJsZUNvbXBvbmVudCBmb3IgRXZwblBhbmVsQ29t cG9uZW50IHsKIAogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQor ICAgICAgICAgICAgU2VsZjo6TWVzc2FnZTo6RGV0YWlsU2VsZWN0aW9uKGRhdGEpID0+IHsKKyAg ICAgICAgICAgICAgICBzZWxmLnNlbGVjdGVkX2RldGFpbCA9IGRhdGE7CisgICAgICAgICAgICAg ICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBTZWxmOjpNZXNzYWdl OjpSZWxvYWQgPT4gewogICAgICAgICAgICAgICAgIGN0eC5saW5rKCkuc2VuZF9yZWxvYWQoKTsK ICAgICAgICAgICAgIH0KQEAgLTE3NSwxMSArMjAxLDEyIEBAIGltcGwgTG9hZGFibGVDb21wb25l bnQgZm9yIEV2cG5QYW5lbENvbXBvbmVudCB7CiAgICAgfQogCiAgICAgZm4gbWFpbl92aWV3KCZz ZWxmLCBjdHg6ICZMb2FkYWJsZUNvbXBvbmVudENvbnRleHQ8U2VsZj4pIC0+IEh0bWwgewotICAg ICAgICBsZXQgcGFuZWwgPSBUYWJQYW5lbDo6bmV3KCkKKyAgICAgICAgbGV0IHRhYl9wYW5lbCA9 IFRhYlBhbmVsOjpuZXcoKQogICAgICAgICAgICAgLnN0YXRlX2lkKFN0b3JhZ2VMb2NhdGlvbjo6 c2Vzc2lvbigiRXZwblBhbmVsU3RhdGUiKSkKICAgICAgICAgICAgIC5jbGFzcyhwd3Q6OmNzczo6 RmxleEZpdCkKICAgICAgICAgICAgIC5yb3V0ZXIodHJ1ZSkKICAgICAgICAgICAgIC5zY3JvbGxf bW9kZShNaW5pU2Nyb2xsTW9kZTo6QXJyb3cpCisgICAgICAgICAgICAuc2VsZWN0aW9uKHNlbGYu c2VsZWN0ZWRfdGFiLmNsb25lKCkpCiAgICAgICAgICAgICAud2l0aF9pdGVtKAogICAgICAgICAg ICAgICAgIFRhYkJhckl0ZW06Om5ldygpCiAgICAgICAgICAgICAgICAgICAgIC5rZXkoInJlbW90 ZXMiKQpAQCAtMjAxLDYgKzIyOCw5IEBAIGltcGwgTG9hZGFibGVDb21wb25lbnQgZm9yIEV2cG5Q YW5lbENvbXBvbmVudCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi56b25lcy5j bG9uZSgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudm5ldHMuY2xvbmUoKSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNvbnRyb2xsZXJzLmNsb25lKCksCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LmxpbmsoKS5jYWxsYmFjayh8cGFuZWw6IE9w dGlvbjxEZXRhaWxQYW5lbD58IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2Vs Zjo6TWVzc2FnZTo6RGV0YWlsU2VsZWN0aW9uKHBhbmVsKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0pLAogICAgICAgICAgICAgICAgICAgICAgICAgKSkKICAgICAgICAgICAgICAgICAg ICAgfSksCiAgICAgICAgICAgICApCkBAIC0yMjUsMTYgKzI1NSw5NCBAQCBpbXBsIExvYWRhYmxl Q29tcG9uZW50IGZvciBFdnBuUGFuZWxDb21wb25lbnQgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuem9uZXMuY2xvbmUoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnZuZXRzLmNsb25lKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jb250 cm9sbGVycy5jbG9uZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC5saW5rKCku Y2FsbGJhY2sofHBhbmVsOiBPcHRpb248RGV0YWlsUGFuZWw+fCB7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNlbGY6Ok1lc3NhZ2U6OkRldGFpbFNlbGVjdGlvbihwYW5lbCkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICAgICAgICkp CiAgICAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgKTsKIAotICAgICAgICBsZXQg bmF2aWdhdGlvbl9jb250YWluZXIgPSBOYXZpZ2F0aW9uQ29udGFpbmVyOjpuZXcoKS53aXRoX2No aWxkKHBhbmVsKTsKKyAgICAgICAgbGV0IG5hdmlnYXRpb25fY29udGFpbmVyID0gTmF2aWdhdGlv bkNvbnRhaW5lcjo6bmV3KCkud2l0aF9jaGlsZCh0YWJfcGFuZWwpOworCisgICAgICAgIGxldCBt dXQgY29udGFpbmVyID0gQ29udGFpbmVyOjpuZXcoKQorICAgICAgICAgICAgLmNsYXNzKCJwd3Qt Y29udGVudC1zcGFjZXIiKQorICAgICAgICAgICAgLmNsYXNzKEZsZXhGaXQpCisgICAgICAgICAg ICAuY2xhc3MoInB3dC1mbGV4LWRpcmVjdGlvbi1yb3ciKQorICAgICAgICAgICAgLndpdGhfY2hp bGQoUGFuZWw6Om5ldygpLmZsZXgoMS4wKS53aXRoX2NoaWxkKG5hdmlnYXRpb25fY29udGFpbmVy KSk7CisKKyAgICAgICAgbGV0ICh0aXRsZSwgZGV0YWlsX2h0bWwpID0gaWYgbGV0IFNvbWUoZGV0 YWlsKSA9ICZzZWxmLnNlbGVjdGVkX2RldGFpbCB7CisgICAgICAgICAgICBtYXRjaCBkZXRhaWwg eworICAgICAgICAgICAgICAgIERldGFpbFBhbmVsOjpWbmV0IHsKKyAgICAgICAgICAgICAgICAg ICAgcmVtb3RlLAorICAgICAgICAgICAgICAgICAgICB2bmV0OiB2bmV0X2lkLAorICAgICAgICAg ICAgICAgIH0gPT4geworICAgICAgICAgICAgICAgICAgICBsZXQgdm5ldCA9IHNlbGYudm5ldHMu aXRlcigpLmZpbmQofGxpc3Rfdm5ldHwgeworICAgICAgICAgICAgICAgICAgICAgICAgbGlzdF92 bmV0LnZuZXQudm5ldC5hc19zdHIoKSA9PSB2bmV0X2lkLmFzX3N0cigpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJiYgbGlzdF92bmV0LnJlbW90ZS5hc19zdHIoKSA9PSByZW1vdGUKKyAg ICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgbGV0IFNvbWUo dm5ldCkgPSB2bmV0IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB6b25lID0gc2VsZi56 b25lcy5pdGVyKCkuZmluZCh8bGlzdF96b25lfCB7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGlzdF96b25lLnpvbmUuem9uZS5hc19zdHIoKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA9PSB2bmV0LnZuZXQuem9uZS5hc19kZXJlZigpLnVud3JhcF9vcl9kZWZhdWx0KCkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgbGlzdF96b25lLnJlbW90ZS5hc19z dHIoKSA9PSByZW1vdGUuYXNfc3RyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworCisg ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbm9kZV9saXN0ID0gem9uZS5hc19yZWYoKS5hbmRf dGhlbih8em9uZXwgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBub2RlcyA9IHpv bmUuem9uZS5ub2Rlcy5hc19yZWYoKT87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9k ZUxpc3Q6OmZyb21fc3RyKG5vZGVzKS5vaygpCisgICAgICAgICAgICAgICAgICAgICAgICB9KTsK KworICAgICAgICAgICAgICAgICAgICAgICAgKAorICAgICAgICAgICAgICAgICAgICAgICAgICAg IFNvbWUoZm9ybWF0ISgiTUFDLVZSRiBmb3Igdm5ldCAne3ZuZXRfaWR9JyAoUmVtb3RlIHtyZW1v dGV9KSIpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWbmV0U3RhdHVzVGFibGU6Om5l dyhyZW1vdGUuY2xvbmUoKSwgdm5ldF9pZC5jbG9uZSgpLCBub2RlX2xpc3QpLmludG8oKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAg ICAgICAgICAgICAgICAgICAgICAgIChOb25lLCBodG1sISB7IkNvdWxkIG5vdCBmaW5kIHZuZXQg e3ZuZXRfaWR9ISJ9KQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgICAgIERldGFpbFBhbmVsOjpab25lIHsKKyAgICAgICAgICAgICAgICAgICAg cmVtb3RlLAorICAgICAgICAgICAgICAgICAgICB6b25lOiB6b25lX2lkLAorICAgICAgICAgICAg ICAgIH0gPT4geworICAgICAgICAgICAgICAgICAgICBsZXQgem9uZSA9IHNlbGYuem9uZXMuaXRl cigpLmZpbmQofGxpc3Rfem9uZXwgeworICAgICAgICAgICAgICAgICAgICAgICAgbGlzdF96b25l LnpvbmUuem9uZS5hc19zdHIoKSA9PSB6b25lX2lkLmFzX3N0cigpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJiYgbGlzdF96b25lLnJlbW90ZS5hc19zdHIoKSA9PSByZW1vdGUuYXNfc3Ry KCkKKyAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgICAgbGV0IG5v ZGVfbGlzdCA9IHpvbmUuYXNfcmVmKCkuYW5kX3RoZW4ofHpvbmV8IHsKKyAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBub2RlcyA9IHpvbmUuem9uZS5ub2Rlcy5hc19yZWYoKT87CisgICAgICAg ICAgICAgICAgICAgICAgICBOb2RlTGlzdDo6ZnJvbV9zdHIobm9kZXMpLm9rKCkKKyAgICAgICAg ICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgICAgKAorICAgICAgICAgICAgICAg ICAgICAgICAgU29tZShmb3JtYXQhKCJJUC1WUkYgZm9yIHpvbmUgJ3t6b25lX2lkfScgKFJlbW90 ZSB7cmVtb3RlfSkiKSksCisgICAgICAgICAgICAgICAgICAgICAgICBab25lU3RhdHVzVGFibGU6 Om5ldyhyZW1vdGUuY2xvbmUoKSwgem9uZV9pZC5jbG9uZSgpLCBub2RlX2xpc3QpLmludG8oKSwK KyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0K KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICBOb25lLAor ICAgICAgICAgICAgICAgIFJvdzo6bmV3KCkKKyAgICAgICAgICAgICAgICAgICAgLmNsYXNzKHB3 dDo6Y3NzOjpGbGV4Rml0KQorICAgICAgICAgICAgICAgICAgICAuY2xhc3MocHd0Ojpjc3M6Okp1 c3RpZnlDb250ZW50OjpDZW50ZXIpCisgICAgICAgICAgICAgICAgICAgIC5jbGFzcyhwd3Q6OmNz czo6QWxpZ25JdGVtczo6Q2VudGVyKQorICAgICAgICAgICAgICAgICAgICAud2l0aF9jaGlsZCho dG1sISB7IHRyISgiU2VsZWN0IGEgWm9uZSBvciBWTmV0IGZvciBtb3JlIGRldGFpbHMuIikgfSkK KyAgICAgICAgICAgICAgICAgICAgLmludG8oKSwKKyAgICAgICAgICAgICkKKyAgICAgICAgfTsK IAotICAgICAgICBDb2x1bW46Om5ldygpCi0gICAgICAgICAgICAuY2xhc3MocHd0Ojpjc3M6OkZs ZXhGaXQpCi0gICAgICAgICAgICAud2l0aF9jaGlsZChuYXZpZ2F0aW9uX2NvbnRhaW5lcikKLSAg ICAgICAgICAgIC5pbnRvKCkKKyAgICAgICAgbGV0IG11dCBwYW5lbCA9IFBhbmVsOjpuZXcoKS53 aWR0aCg2MDApOworCisgICAgICAgIGlmIGxldCBTb21lKHRpdGxlKSA9IHRpdGxlIHsKKyAgICAg ICAgICAgIHBhbmVsLnNldF90aXRsZSh0aXRsZSk7CisgICAgICAgIH0KKworICAgICAgICBwYW5l bC5hZGRfY2hpbGQoZGV0YWlsX2h0bWwpOworICAgICAgICBjb250YWluZXIuYWRkX2NoaWxkKHBh bmVsKTsKKworICAgICAgICBjb250YWluZXIuaW50bygpCiAgICAgfQogCiAgICAgZm4gZGlhbG9n X3ZpZXcoCmRpZmYgLS1naXQgYS91aS9zcmMvc2RuL2V2cG4vcmVtb3RlX3RyZWUucnMgYi91aS9z cmMvc2RuL2V2cG4vcmVtb3RlX3RyZWUucnMKaW5kZXggMTc5OTkxNy4uZWU1N2IzMyAxMDA2NDQK LS0tIGEvdWkvc3JjL3Nkbi9ldnBuL3JlbW90ZV90cmVlLnJzCisrKyBiL3VpL3NyYy9zZG4vZXZw bi9yZW1vdGVfdHJlZS5ycwpAQCAtNiw3ICs2LDcgQEAgdXNlIHN0ZDo6c3RyOjpGcm9tU3RyOwog dXNlIGFueWhvdzo6e2FueWhvdywgRXJyb3J9OwogdXNlIHB3dDo6d2lkZ2V0Ojp7ZXJyb3JfbWVz c2FnZSwgQ29sdW1ufTsKIHVzZSB5ZXc6OnZpcnR1YWxfZG9tOjp7S2V5LCBWTm9kZX07Ci11c2Ug eWV3Ojp7Q29tcG9uZW50LCBDb250ZXh0LCBIdG1sLCBQcm9wZXJ0aWVzfTsKK3VzZSB5ZXc6OntD YWxsYmFjaywgQ29tcG9uZW50LCBDb250ZXh0LCBIdG1sLCBQcm9wZXJ0aWVzfTsKIAogdXNlIHBk bV9jbGllbnQ6OnR5cGVzOjp7TGlzdENvbnRyb2xsZXIsIExpc3RWbmV0LCBMaXN0Wm9uZSwgU2Ru T2JqZWN0U3RhdGV9OwogdXNlIHB3dDo6Y3NzOwpAQCAtMTksMTQgKzE5LDE2IEBAIHVzZSBwd3Q6 OndpZGdldDo6ZGF0YV90YWJsZTo6ewogdXNlIHB3dDo6d2lkZ2V0Ojp7RmEsIFJvd307CiB1c2Ug cHd0X21hY3Jvczo6d2lkZ2V0OwogCit1c2UgY3JhdGU6OnNkbjo6ZXZwbjo6ZXZwbl9wYW5lbDo6 RGV0YWlsUGFuZWw7CiB1c2UgY3JhdGU6OnNkbjo6ZXZwbjo6RXZwblJvdXRlVGFyZ2V0OwogCiAj W3dpZGdldChjb21wPVJlbW90ZVRyZWVDb21wb25lbnQpXQotI1tkZXJpdmUoQ2xvbmUsIFBhcnRp YWxFcSwgUHJvcGVydGllcywgRGVmYXVsdCldCisjW2Rlcml2ZShDbG9uZSwgUGFydGlhbEVxLCBQ cm9wZXJ0aWVzKV0KIHB1YiBzdHJ1Y3QgUmVtb3RlVHJlZSB7CiAgICAgem9uZXM6IFJjPFZlYzxM aXN0Wm9uZT4+LAogICAgIHZuZXRzOiBSYzxWZWM8TGlzdFZuZXQ+PiwKICAgICBjb250cm9sbGVy czogUmM8VmVjPExpc3RDb250cm9sbGVyPj4sCisgICAgb25fc2VsZWN0OiBDYWxsYmFjazxPcHRp b248RGV0YWlsUGFuZWw+PiwKIH0KIAogaW1wbCBSZW1vdGVUcmVlIHsKQEAgLTM0LDExICszNiwx MyBAQCBpbXBsIFJlbW90ZVRyZWUgewogICAgICAgICB6b25lczogUmM8VmVjPExpc3Rab25lPj4s CiAgICAgICAgIHZuZXRzOiBSYzxWZWM8TGlzdFZuZXQ+PiwKICAgICAgICAgY29udHJvbGxlcnM6 IFJjPFZlYzxMaXN0Q29udHJvbGxlcj4+LAorICAgICAgICBvbl9zZWxlY3Q6IENhbGxiYWNrPE9w dGlvbjxEZXRhaWxQYW5lbD4+LAogICAgICkgLT4gU2VsZiB7CiAgICAgICAgIHlldzo6cHJvcHMh KFNlbGYgewogICAgICAgICAgICAgem9uZXMsCiAgICAgICAgICAgICB2bmV0cywKICAgICAgICAg ICAgIGNvbnRyb2xsZXJzLAorICAgICAgICAgICAgb25fc2VsZWN0LAogICAgICAgICB9KQogICAg IH0KIH0KQEAgLTQxNiw3ICs0MjAsMzQgQEAgaW1wbCBDb21wb25lbnQgZm9yIFJlbW90ZVRyZWVD b21wb25lbnQgewogICAgICAgICBsZXQgc3RvcmUgPSBUcmVlU3RvcmU6Om5ldygpLnZpZXdfcm9v dChmYWxzZSk7CiAgICAgICAgIGxldCBjb2x1bW5zID0gU2VsZjo6Y29sdW1ucyhzdG9yZS5jbG9u ZSgpKTsKIAotICAgICAgICBsZXQgc2VsZWN0aW9uID0gU2VsZWN0aW9uOjpuZXcoKTsKKyAgICAg ICAgbGV0IG9uX3NlbGVjdCA9IGN0eC5wcm9wcygpLm9uX3NlbGVjdC5jbG9uZSgpOworICAgICAg ICBsZXQgc2VsZWN0aW9uX3N0b3JlID0gc3RvcmUuY2xvbmUoKTsKKyAgICAgICAgbGV0IHNlbGVj dGlvbiA9IFNlbGVjdGlvbjo6bmV3KCkub25fc2VsZWN0KG1vdmUgfHNlbGVjdGlvbjogU2VsZWN0 aW9ufCB7CisgICAgICAgICAgICBpZiBsZXQgU29tZShzZWxlY3RlZF9rZXkpID0gc2VsZWN0aW9u LnNlbGVjdGVkX2tleSgpIHsKKyAgICAgICAgICAgICAgICBsZXQgcmVhZF9ndWFyZCA9IHNlbGVj dGlvbl9zdG9yZS5yZWFkKCk7CisKKyAgICAgICAgICAgICAgICBpZiBsZXQgU29tZShub2RlKSA9 IHJlYWRfZ3VhcmQubG9va3VwX25vZGUoJnNlbGVjdGVkX2tleSkgeworICAgICAgICAgICAgICAg ICAgICBtYXRjaCBub2RlLnJlY29yZCgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlbW90 ZVRyZWVFbnRyeTo6Wm9uZSh6b25lKSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg b25fc2VsZWN0LmVtaXQoU29tZShEZXRhaWxQYW5lbDo6Wm9uZSB7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJlbW90ZTogem9uZS5yZW1vdGUuY2xvbmUoKSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgem9uZTogem9uZS5pZC5jbG9uZSgpLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAgICAgICAgICAgIFJlbW90ZVRyZWVFbnRyeTo6Vm5ldCh2bmV0KSA9PiB7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgb25fc2VsZWN0LmVtaXQoU29tZShEZXRhaWxQYW5lbDo6Vm5l dCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW90ZTogdm5ldC5yZW1vdGUu Y2xvbmUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm5ldDogdm5ldC5pZC5j bG9uZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIF8gPT4gb25fc2VsZWN0LmVtaXQo Tm9uZSksCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG9uX3NlbGVjdC5lbWl0KE5vbmUpOworICAg ICAgICAgICAgfQorICAgICAgICB9KTsKKwogICAgICAgICBsZXQgbXV0IGVycm9yX21zZyA9IE5v bmU7CiAKICAgICAgICAgbWF0Y2ggem9uZXNfdG9fcmVtb3RlX3ZpZXcoCkBAIC00NDIsMjcgKzQ3 MywyNyBAQCBpbXBsIENvbXBvbmVudCBmb3IgUmVtb3RlVHJlZUNvbXBvbmVudCB7CiAgICAgfQog CiAgICAgZm4gdmlldygmc2VsZiwgX2N0eDogJkNvbnRleHQ8U2VsZj4pIC0+IEh0bWwgewotICAg ICAgICBsZXQgdGFibGUgPSBEYXRhVGFibGU6Om5ldyhzZWxmLmNvbHVtbnMuY2xvbmUoKSwgc2Vs Zi5zdG9yZS5jbG9uZSgpKQotICAgICAgICAgICAgLnN0cmlwZWQoZmFsc2UpCi0gICAgICAgICAg ICAuc2VsZWN0aW9uKHNlbGYuc2VsZWN0aW9uLmNsb25lKCkpCi0gICAgICAgICAgICAucm93X3Jl bmRlcl9jYWxsYmFjayh8YXJnczogJm11dCBEYXRhVGFibGVSb3dSZW5kZXJBcmdzPFJlbW90ZVRy ZWVFbnRyeT58IHsKLSAgICAgICAgICAgICAgICBtYXRjaCBhcmdzLnJlY29yZCgpIHsKLSAgICAg ICAgICAgICAgICAgICAgUmVtb3RlVHJlZUVudHJ5OjpWbmV0KHZuZXQpIGlmIHZuZXQuZXh0ZXJu YWwgfHwgdm5ldC5pbXBvcnRlZCA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcmdzLmFk ZF9jbGFzcygicHd0LW9wYWNpdHktNTAiKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg ICAgICAgICAgICAgICBSZW1vdGVUcmVlRW50cnk6OlJlbW90ZShfKSA9PiBhcmdzLmFkZF9jbGFz cygicHd0LWJnLWNvbG9yLXN1cmZhY2UiKSwKLSAgICAgICAgICAgICAgICAgICAgXyA9PiAoKSwK LSAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgfSkKLSAgICAgICAgICAgIC5jbGFzcyhj c3M6OkZsZXhGaXQpOwotCi0gICAgICAgIGxldCBtdXQgY29sdW1uID0gQ29sdW1uOjpuZXcoKS5j bGFzcyhwd3Q6OmNzczo6RmxleEZpdCkud2l0aF9jaGlsZCh0YWJsZSk7CisgICAgICAgIGxldCBt dXQgdGFibGVfY29sdW1uID0gQ29sdW1uOjpuZXcoKS5jbGFzcyhwd3Q6OmNzczo6RmxleEZpdCku d2l0aF9jaGlsZCgKKyAgICAgICAgICAgIERhdGFUYWJsZTo6bmV3KHNlbGYuY29sdW1ucy5jbG9u ZSgpLCBzZWxmLnN0b3JlLmNsb25lKCkpCisgICAgICAgICAgICAgICAgLnN0cmlwZWQoZmFsc2Up CisgICAgICAgICAgICAgICAgLnNlbGVjdGlvbihzZWxmLnNlbGVjdGlvbi5jbG9uZSgpKQorICAg ICAgICAgICAgICAgIC5yb3dfcmVuZGVyX2NhbGxiYWNrKHxhcmdzOiAmbXV0IERhdGFUYWJsZVJv d1JlbmRlckFyZ3M8UmVtb3RlVHJlZUVudHJ5PnwgeworICAgICAgICAgICAgICAgICAgICBtYXRj aCBhcmdzLnJlY29yZCgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlbW90ZVRyZWVFbnRy eTo6Vm5ldCh2bmV0KSBpZiB2bmV0LmV4dGVybmFsIHx8IHZuZXQuaW1wb3J0ZWQgPT4geworICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MuYWRkX2NsYXNzKCJwd3Qtb3BhY2l0eS01MCIp OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgUmVt b3RlVHJlZUVudHJ5OjpSZW1vdGUoXykgPT4gYXJncy5hZGRfY2xhc3MoInB3dC1iZy1jb2xvci1z dXJmYWNlIiksCisgICAgICAgICAgICAgICAgICAgICAgICBfID0+ICgpLAorICAgICAgICAgICAg ICAgICAgICB9OworICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgLmNsYXNzKGNz czo6RmxleEZpdCksCisgICAgICAgICk7CiAKICAgICAgICAgaWYgbGV0IFNvbWUobXNnKSA9ICZz ZWxmLmVycm9yX21zZyB7Ci0gICAgICAgICAgICBjb2x1bW4uYWRkX2NoaWxkKGVycm9yX21lc3Nh Z2UobXNnLmFzX3JlZigpKSk7CisgICAgICAgICAgICB0YWJsZV9jb2x1bW4uYWRkX2NoaWxkKGVy cm9yX21lc3NhZ2UobXNnLmFzX3JlZigpKSk7CiAgICAgICAgIH0KIAotICAgICAgICBjb2x1bW4u aW50bygpCisgICAgICAgIHRhYmxlX2NvbHVtbi5pbnRvKCkKICAgICB9CiAKICAgICBmbiBjaGFu Z2VkKCZtdXQgc2VsZiwgY3R4OiAmQ29udGV4dDxTZWxmPiwgb2xkX3Byb3BzOiAmU2VsZjo6UHJv cGVydGllcykgLT4gYm9vbCB7CmRpZmYgLS1naXQgYS91aS9zcmMvc2RuL2V2cG4vdnJmX3RyZWUu cnMgYi91aS9zcmMvc2RuL2V2cG4vdnJmX3RyZWUucnMKaW5kZXggMGRlNDE0NS4uODQ4MWRmYyAx MDA2NDQKLS0tIGEvdWkvc3JjL3Nkbi9ldnBuL3ZyZl90cmVlLnJzCisrKyBiL3VpL3NyYy9zZG4v ZXZwbi92cmZfdHJlZS5ycwpAQCAtNCw3ICs0LDcgQEAgdXNlIHN0ZDo6cmM6OlJjOwogCiB1c2Ug YW55aG93Ojp7YW55aG93LCBFcnJvcn07CiB1c2UgeWV3Ojp2aXJ0dWFsX2RvbTo6e0tleSwgVk5v ZGV9OwotdXNlIHlldzo6e0NvbXBvbmVudCwgQ29udGV4dCwgSHRtbCwgUHJvcGVydGllc307Cit1 c2UgeWV3Ojp7Q2FsbGJhY2ssIENvbXBvbmVudCwgQ29udGV4dCwgSHRtbCwgUHJvcGVydGllc307 CiAKIHVzZSBwZG1fY2xpZW50Ojp0eXBlczo6e0xpc3RDb250cm9sbGVyLCBMaXN0Vm5ldCwgTGlz dFpvbmV9OwogdXNlIHB3dDo6Y3NzOwpAQCAtMTcsNiArMTcsNyBAQCB1c2UgcHd0Ojp3aWRnZXQ6 OmRhdGFfdGFibGU6OnsKIHVzZSBwd3Q6OndpZGdldDo6e2Vycm9yX21lc3NhZ2UsIENvbHVtbiwg RmEsIFJvd307CiB1c2UgcHd0X21hY3Jvczo6d2lkZ2V0OwogCit1c2UgY3JhdGU6OnNkbjo6ZXZw bjo6ZXZwbl9wYW5lbDo6RGV0YWlsUGFuZWw7CiB1c2UgY3JhdGU6OnNkbjo6ZXZwbjo6RXZwblJv dXRlVGFyZ2V0OwogCiAjW3dpZGdldChjb21wPVZyZlRyZWVDb21wb25lbnQpXQpAQCAtMjUsNiAr MjYsNyBAQCBwdWIgc3RydWN0IFZyZlRyZWUgewogICAgIHpvbmVzOiBSYzxWZWM8TGlzdFpvbmU+ PiwKICAgICB2bmV0czogUmM8VmVjPExpc3RWbmV0Pj4sCiAgICAgY29udHJvbGxlcnM6IFJjPFZl YzxMaXN0Q29udHJvbGxlcj4+LAorICAgIG9uX3NlbGVjdDogQ2FsbGJhY2s8T3B0aW9uPERldGFp bFBhbmVsPj4sCiB9CiAKIGltcGwgVnJmVHJlZSB7CkBAIC0zMiwxMSArMzQsMTMgQEAgaW1wbCBW cmZUcmVlIHsKICAgICAgICAgem9uZXM6IFJjPFZlYzxMaXN0Wm9uZT4+LAogICAgICAgICB2bmV0 czogUmM8VmVjPExpc3RWbmV0Pj4sCiAgICAgICAgIGNvbnRyb2xsZXJzOiBSYzxWZWM8TGlzdENv bnRyb2xsZXI+PiwKKyAgICAgICAgb25fc2VsZWN0OiBDYWxsYmFjazxPcHRpb248RGV0YWlsUGFu ZWw+PiwKICAgICApIC0+IFNlbGYgewogICAgICAgICB5ZXc6OnByb3BzIShTZWxmIHsKICAgICAg ICAgICAgIHpvbmVzLAogICAgICAgICAgICAgdm5ldHMsCiAgICAgICAgICAgICBjb250cm9sbGVy cywKKyAgICAgICAgICAgIG9uX3NlbGVjdCwKICAgICAgICAgfSkKICAgICB9CiB9CkBAIC0zMzMs NyArMzM3LDI4IEBAIGltcGwgQ29tcG9uZW50IGZvciBWcmZUcmVlQ29tcG9uZW50IHsKICAgICAg ICAgbGV0IHN0b3JlID0gVHJlZVN0b3JlOjpuZXcoKS52aWV3X3Jvb3QoZmFsc2UpOwogICAgICAg ICBsZXQgY29sdW1ucyA9IFNlbGY6OmNvbHVtbnMoc3RvcmUuY2xvbmUoKSk7CiAKLSAgICAgICAg bGV0IHNlbGVjdGlvbiA9IFNlbGVjdGlvbjo6bmV3KCk7CisgICAgICAgIGxldCBvbl9zZWxlY3Qg PSBjdHgucHJvcHMoKS5vbl9zZWxlY3QuY2xvbmUoKTsKKyAgICAgICAgbGV0IHNlbGVjdGlvbl9z dG9yZSA9IHN0b3JlLmNsb25lKCk7CisgICAgICAgIGxldCBzZWxlY3Rpb24gPSBTZWxlY3Rpb246 Om5ldygpLm9uX3NlbGVjdChtb3ZlIHxzZWxlY3Rpb246IFNlbGVjdGlvbnwgeworICAgICAgICAg ICAgaWYgbGV0IFNvbWUoc2VsZWN0ZWRfa2V5KSA9IHNlbGVjdGlvbi5zZWxlY3RlZF9rZXkoKSB7 CisgICAgICAgICAgICAgICAgbGV0IHJlYWRfZ3VhcmQgPSBzZWxlY3Rpb25fc3RvcmUucmVhZCgp OworCisgICAgICAgICAgICAgICAgaWYgbGV0IFNvbWUobm9kZSkgPSByZWFkX2d1YXJkLmxvb2t1 cF9ub2RlKCZzZWxlY3RlZF9rZXkpIHsKKyAgICAgICAgICAgICAgICAgICAgbWF0Y2ggbm9kZS5y ZWNvcmQoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBWcmZUcmVlRW50cnk6OlJlbW90ZShy ZW1vdGUpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbl9zZWxlY3QuZW1pdChT b21lKERldGFpbFBhbmVsOjpWbmV0IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmVtb3RlOiByZW1vdGUucmVtb3RlLmNsb25lKCksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHZuZXQ6IHJlbW90ZS52bmV0LmNsb25lKCksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg ICAgICAgXyA9PiBvbl9zZWxlY3QuZW1pdChOb25lKSwKKyAgICAgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg b25fc2VsZWN0LmVtaXQoTm9uZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCiAgICAg ICAgIGxldCBtdXQgZXJyb3JfbXNnID0gTm9uZTsKIAogICAgICAgICBtYXRjaCB6b25lc190b192 cmZfdmlldygKLS0gCjIuNDcuMwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCnBkbS1kZXZlbCBtYWlsaW5nIGxpc3QKcGRtLWRldmVsQGxpc3RzLnByb3ht b3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZv L3BkbS1kZXZlbAo=