From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <pve-devel-bounces@lists.proxmox.com>
Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68])
	by lore.proxmox.com (Postfix) with ESMTPS id 458D51FF15C
	for <inbox@lore.proxmox.com>; Fri,  4 Apr 2025 17:46:23 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 9FD39364F4;
	Fri,  4 Apr 2025 17:46:09 +0200 (CEST)
Date: Fri, 4 Apr 2025 17:45:35 +0200
From: Gabriel Goller <g.goller@proxmox.com>
To: Christoph Heiss <c.heiss@proxmox.com>
Message-ID: <t4keh3httllbyvgtolbiwqvxwkhjo5htuixhfrs4lsqlrxrc67@exow74p4qhir>
Mail-Followup-To: Christoph Heiss <c.heiss@proxmox.com>, 
 Proxmox VE development discussion <pve-devel@lists.proxmox.com>
References: <20250328171340.885413-1-g.goller@proxmox.com>
 <20250328171340.885413-50-g.goller@proxmox.com>
 <D8WW2HAVN0E1.1SEMKA8CUSXRQ@proxmox.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <D8WW2HAVN0E1.1SEMKA8CUSXRQ@proxmox.com>
User-Agent: NeoMutt/20241002-35-39f9a6
X-SPAM-LEVEL: Spam detection results:  0
 AWL -0.024 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
 SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
 SPF_PASS               -0.001 SPF: sender matches SPF record
Subject: Re: [pve-devel] [PATCH pve-manager 5/7] fabrics: add NodeEdit
 components
X-BeenThere: pve-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/>
List-Post: <mailto:pve-devel@lists.proxmox.com>
List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe>
Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>
Cc: Proxmox VE development discussion <pve-devel@lists.proxmox.com>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: pve-devel-bounces@lists.proxmox.com
Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com>

T24gMDMuMDQuMjAyNSAxMToxNiwgQ2hyaXN0b3BoIEhlaXNzIHdyb3RlOgo+T24gRnJpIE1hciAy
OCwgMjAyNSBhdCA2OjEzIFBNIENFVCwgR2FicmllbCBHb2xsZXIgd3JvdGU6Cj5bLi5dCj4+IGRp
ZmYgLS1naXQgYS93d3cvbWFuYWdlcjYvc2RuL2ZhYnJpY3Mvb3BlbmZhYnJpYy9Ob2RlRWRpdC5q
cyBiL3d3dy9tYW5hZ2VyNi9zZG4vZmFicmljcy9vcGVuZmFicmljL05vZGVFZGl0LmpzCj4+IG5l
dyBmaWxlIG1vZGUgMTAwNjQ0Cj4+IGluZGV4IDAwMDAwMDAwMDAwMC4uZjJkMjA0YzIyNTQyCj4+
IC0tLSAvZGV2L251bGwKPj4gKysrIGIvd3d3L21hbmFnZXI2L3Nkbi9mYWJyaWNzL29wZW5mYWJy
aWMvTm9kZUVkaXQuanMKPj4gQEAgLTAsMCArMSwyMDUgQEAKPj4gK0V4dC5kZWZpbmUoJ1BWRS5z
ZG4uRmFicmljLk9wZW5GYWJyaWMuTm9kZS5JbnB1dFBhbmVsJywgewo+PiArICAgIGV4dGVuZDog
J1Byb3htb3gucGFuZWwuSW5wdXRQYW5lbCcsCj4+ICsKPj4gKyAgICB2aWV3TW9kZWw6IHt9LAo+
PiArCj4+ICsgICAgaXNDcmVhdGU6IHVuZGVmaW5lZCwKPj4gKyAgICBsb2FkQ2x1c3RlckludGVy
ZmFjZXM6IHVuZGVmaW5lZCwKPj4gKwo+PiArICAgIGludGVyZmFjZV9zZWxlY3RvcjogdW5kZWZp
bmVkLAo+PiArICAgIG5vZGVfbm90X2FjY2Vzc2libGVfd2FybmluZzogdW5kZWZpbmVkLAo+Cj5B
bGwgbmV3IHZhcmlhYmxlcyBzaG91bGQgYmUgY2FtZWxDYXNlIFswXSBoZXJlIHRvbywgYXMgbm90
ZWQgaW4gYSBsYXRlcgo+cGF0Y2guCj4KPlswXSBodHRwczovL3B2ZS5wcm94bW94LmNvbS93aWtp
L0phdmFzY3JpcHRfU3R5bGVfR3VpZGUjQ2FzaW5nCgpEb25lLCBJIGhvcGUgSSBkaWRuJ3QgbWlz
cyBhbnl0aGluZy4KCj4+ICsKPlsuLl0KPj4gKyAgICBpbml0Q29tcG9uZW50OiBmdW5jdGlvbigp
IHsKPj4gKwlsZXQgbWUgPSB0aGlzOwo+PiArCW1lLmludGVyZmFjZV9zZWxlY3RvciA9IEV4dC5j
cmVhdGUoJ1BWRS5zZG4uRmFicmljLk9wZW5GYWJyaWMuSW50ZXJmYWNlUGFuZWwnLCB7Cj4+ICsJ
ICAgIG5hbWU6ICdpbnRlcmZhY2VzJywKPj4gKwkgICAgcGFyZW50Q2xhc3M6IG1lLmlzQ3JlYXRl
ID8gbWUgOiB1bmRlZmluZWQsCj4+ICsJfSk7Cj4+ICsJbWUuaXRlbXMgPSBbCj4+ICsJICAgIHsK
Pj4gKwkJeHR5cGU6ICdwdmVOb2RlU2VsZWN0b3InLAo+PiArCQlyZWZlcmVuY2U6ICdub2Rlc2Vs
ZWN0b3InLAo+PiArCQlmaWVsZExhYmVsOiBnZXR0ZXh0KCdOb2RlJyksCj4+ICsJCWxhYmVsV2lk
dGg6IDEyMCwKPj4gKwkJbmFtZTogJ25vZGUnLAo+PiArCQlhbGxvd0JsYW5rOiBmYWxzZSwKPj4g
KwkJZGlzYWJsZWQ6ICFtZS5pc0NyZWF0ZSwKPj4gKwkJb25saW5lVmFsaWRhdG9yOiBtZS5pc0Ny
ZWF0ZSwKPj4gKwkJYXV0b1NlbGVjdDogbWUuaXNDcmVhdGUsCj4+ICsJCWxpc3RlbmVyczogewo+
PiArCQkgICAgY2hhbmdlOiBmdW5jdGlvbihmLCB2YWx1ZSkgewo+PiArCQkJaWYgKG1lLmlzQ3Jl
YXRlKSB7Cj4+ICsJCQkgICAgbWUubG9hZENsdXN0ZXJJbnRlcmZhY2VzKHZhbHVlLCAocmVzdWx0
KSA9PiB7Cj4+ICsJCQkJbWUuc2V0VmFsdWVzKHsgbmV0d29ya19pbnRlcmZhY2VzOiByZXN1bHQg
fSk7Cj4+ICsJCQkgICAgfSk7Cj4+ICsJCQl9Cj4+ICsJCSAgICB9LAo+PiArCQl9LAo+PiArCQls
aXN0Q29uZmlnOiB7Cj4+ICsJCSAgICBjb2x1bW5zOiBbCj4+ICsJCQl7Cj4+ICsJCQkgICAgaGVh
ZGVyOiBnZXR0ZXh0KCdOb2RlJyksCj4+ICsJCQkgICAgZGF0YUluZGV4OiAnbm9kZScsCj4+ICsJ
CQkgICAgc29ydGFibGU6IHRydWUsCj4+ICsJCQkgICAgaGlkZWFibGU6IGZhbHNlLAo+PiArCQkJ
ICAgIGZsZXg6IDEsCj4+ICsJCQl9LAo+PiArCQkgICAgXSwKPj4gKwkJfSwKPgo+Rm9yIHRoZSBu
b2RlIHNlbGVjdG9yLCBpdCB3b3VsZCBiZSBncmVhdCBpZiBleGlzdGluZyBub2RlcyBjb3VsZCBi
ZQo+ZXhjbHVkZWQgZnJvbSB0aGUgZHJvcGRvd24uIEl0IGlzbid0IHBvc3NpYmxlIGFueXdheSBh
bmQgdGhyb3dzIGFuIGVycm9yCj5vbiBzdWJtaXQsIHNvIGV4Y2x1ZGluZyB0aGVtIGhlcmUgd291
bGQgYmUgZ29vZCBVWC4KPgo+VGhlIGBhbGxvd2VkTm9kZXNgIGFuZC9vciBgZGlzYWxsb3dlZE5v
ZGVzYCBwcm9wZXJ0aWVzIG9uIHRoZQo+c2VsZWN0b3IgY2FuIGJlIHVzZWQgZm9yIHRoaXMuCgpZ
ZXAsIGltcGxlbWVudGVkIHRoaXMuCgo+Cj4+ICsKPj4gKwkgICAgfSwKPj4gKwkgICAgbWUubm9k
ZV9ub3RfYWNjZXNzaWJsZV93YXJuaW5nLAo+PiArCSAgICB7Cj4+ICsJCXh0eXBlOiAndGV4dGZp
ZWxkJywKPj4gKwkJZmllbGRMYWJlbDogZ2V0dGV4dCgnTG9vcGJhY2sgSVAnKSwKPj4gKwkJbGFi
ZWxXaWR0aDogMTIwLAo+PiArCQluYW1lOiAncm91dGVyX2lkJywKPj4gKwkJYWxsb3dCbGFuazog
ZmFsc2UsCj4+ICsJICAgIH0sCj4KPkhlcmUsIHRoZSB1c2VyLXZpc2libGUgbmFtZSBpcyAnTG9v
cGJhY2sgSVAnLCBpbnRlcm5hbGx5IGl0IGlzIG5hbWVkCj4nUm91dGVyIElEJy4gSW4gdGhlIGRv
Y3VtZW50YXRpb24sICdSb3V0ZXItSUQnIGlzIHVzZWQgdG9vIGluIHRoZQo+YXNzb2NpYXRlZCBk
b2N1bWVudGF0aW9uLgo+Cj5QZXJoYXBzIGp1c3Qgc2V0dGxlIG9uIFJvdXRlci1JRD8gQXMgbG9u
ZyBhcyBpdCBpcyBleHBsYWluZWQgaW4gdGhlCj5kb2N1bWVudGF0aW9uIChtYXliZSBhbHNvIGFk
ZCBhIHRvb2x0aXA/KSwgSSB3b3VsZG4ndCB1c2UgYSBzZXBhcmF0ZQo+bmFtZSBJTUhPLgoKV2Ug
Y2hvc2UgJ0xvb3BiYWNrIElQJyBhcyB0aGUgdXNlci1mYWNpbmcgdGVybS4gSW50ZXJuYWxseSBp
dCdzIHN0aWxsCnJvdXRlci1pZC4KCj4KPj4gKwkgICAgbWUuaW50ZXJmYWNlX3NlbGVjdG9yLAo+
PiArCV07Cj4+ICsJbWUuY2FsbFBhcmVudCgpOwo+PiArICAgIH0sCj4+ICt9KTsKPj4gKwo+PiAr
RXh0LmRlZmluZSgnUFZFLnNkbi5GYWJyaWMuT3BlbkZhYnJpYy5Ob2RlLkVkaXQnLCB7Cj4+ICsg
ICAgZXh0ZW5kOiAnUHJveG1veC53aW5kb3cuRWRpdCcsCj4+ICsgICAgeHR5cGU6ICdwdmVTRE5G
YWJyaWNBZGROb2RlJywKPlsuLl0KPj4gKwo+PiArICAgIGluaXRDb21wb25lbnQ6IGZ1bmN0aW9u
KCkgewo+PiArCWxldCBtZSA9IHRoaXM7Cj4+ICsKPj4gKwltZS5ub2RlX25vdF9hY2Nlc3NpYmxl
X3dhcm5pbmcgPSBFeHQuY3JlYXRlKCdQcm94bW94LmZvcm0uZmllbGQuRGlzcGxheUVkaXQnLCB7
Cj4+ICsJICAgIHVzZXJDbHM6ICdwbXgtaGludCcsCj4+ICsJICAgIHZhbHVlOiBnZXR0ZXh0KCdU
aGUgbm9kZSBpcyBub3QgYWNjZXNzaWJsZS4nKSwKPj4gKwkgICAgaGlkZGVuOiB0cnVlLAo+PiAr
CX0pOwo+PiArCj4+ICsJbGV0IGlwYW5lbCA9IEV4dC5jcmVhdGUoJ1BWRS5zZG4uRmFicmljLk9w
ZW5GYWJyaWMuTm9kZS5JbnB1dFBhbmVsJywgewo+PiArCSAgICBub2RlX25vdF9hY2Nlc3NpYmxl
X3dhcm5pbmc6IG1lLm5vZGVfbm90X2FjY2Vzc2libGVfd2FybmluZywKPj4gKwkgICAgaXNDcmVh
dGU6IG1lLmlzQ3JlYXRlLAo+PiArCSAgICBsb2FkQ2x1c3RlckludGVyZmFjZXM6IG1lLmxvYWRD
bHVzdGVySW50ZXJmYWNlcywKPj4gKwl9KTsKPj4gKwo+PiArCUV4dC5hcHBseShtZSwgewo+PiAr
CSAgICBzdWJqZWN0OiBnZXR0ZXh0KCdOb2RlJyksCj4KPkNhbiBiZSBtb3ZlZCB0byBhIGRpcmVj
dCBtZW1iZXIgYXNzaWdubWVudCBvdXRzaWRlIG9mIGluaXRDb21wb25lbnQoKS4KCkRvbmUuCgo+
PiArCSAgICBpdGVtczogW2lwYW5lbF0sCj4+ICsJfSk7Cj4+ICsKPj4gKwltZS5jYWxsUGFyZW50
KCk7Cj4+ICsKPj4gKwlpZiAoIW1lLmlzQ3JlYXRlKSB7Cj4+ICsJICAgIG1lLmxvYWRBbGxBdmFp
bGFibGVOb2RlcygoYWxsTm9kZXMpID0+IHsKPj4gKwkJaWYgKGFsbE5vZGVzLnNvbWUoaSA9PiBp
Lm5hbWUgPT09IG1lLm5vZGUpKSB7Cj4+ICsJCSAgICBtZS5sb2FkQ2x1c3RlckludGVyZmFjZXMo
bWUubm9kZSwgKGNsdXN0ZXJSZXN1bHQpID0+IHsKPj4gKwkJCW1lLmxvYWRGYWJyaWNJbnRlcmZh
Y2VzKG1lLmZhYnJpYywgbWUubm9kZSwgKGZhYnJpY1Jlc3VsdCkgPT4gewo+PiArCQkJICAgIGZh
YnJpY1Jlc3VsdC5pbnRlcmZhY2UgPSBmYWJyaWNSZXN1bHQuaW50ZXJmYWNlCj4+ICsJCQkJLm1h
cChpID0+IFBWRS5QYXJzZXIucGFyc2VQcm9wZXJ0eVN0cmluZyhpKSk7Cj4+ICsKPj4gKwkJCSAg
ICBsZXQgZGF0YSA9IHsKPj4gKwkJCQlub2RlOiBmYWJyaWNSZXN1bHQsCj4+ICsJCQkJbmV0d29y
a19pbnRlcmZhY2VzOiBjbHVzdGVyUmVzdWx0LAo+PiArCQkJICAgIH07Cj4+ICsKPj4gKwkJCSAg
ICBpcGFuZWwuc2V0VmFsdWVzKGRhdGEpOwo+PiArCQkJfSk7Cj4+ICsJCSAgICB9KTsKPgo+bml0
OiBwZXJoYXBzIG1vdmUgc29tZSBvZiB0aGlzIGludG8gZnVuY3Rpb25zPyBUaGlzIGlzIHByZXR0
eSBkZWVwbHkKPm5lc3RlZCBhdCB0aGlzIHBvaW50LiBXb3VsZCBtYWtlIGl0IGRlZmluaXRlbHkg
bW9yZSByZWFkYWJsZS4KCkhtbSBkZWJhdGFibGUgSSBndWVzc+KAlEkgZmluZCB0aGlzIHF1aXRl
IG9rIHJlYWRhYmxlLCB5b3UgZ2V0IGEgc2Vuc2Ugb2YKd2hhdCBnZXRzIGRvbmUgYWZ0ZXIgd2hh
dC4KCkV2ZW4gaWYgd2Ugc3BsaXQgdGhpcyB1cCBpbiBmdW5jdGlvbiwgdGhlIGNvbnRyb2wgZmxv
dyB3aWxsIGJlIGhhcmRlciB0bwpzZWUgSU1PLgoKPj4gKwkJfSBlbHNlIHsKPj4gKwkJICAgIG1l
Lm5vZGVfbm90X2FjY2Vzc2libGVfd2FybmluZy5zZXRIaWRkZW4oZmFsc2UpOwo+PiArCQkgICAg
Ly8gSWYgdGhlIG5vZGUgaXMgbm90IGN1cnJlbnRseSBpbiB0aGUgY2x1c3RlciBhbmQgbm90IGF2
YWlsYWJsZSAod2UgY2FuJ3QgZ2V0IGl0J3MgaW50ZXJmYWNlcykuCj4+ICsJCSAgICBtZS5sb2Fk
RmFicmljSW50ZXJmYWNlcyhtZS5mYWJyaWMsIG1lLm5vZGUsIChmYWJyaWNSZXN1bHQpID0+IHsK
Pj4gKwkJCWZhYnJpY1Jlc3VsdC5pbnRlcmZhY2UgPSBmYWJyaWNSZXN1bHQuaW50ZXJmYWNlCj4+
ICsJCQkgICAgLm1hcChpID0+IFBWRS5QYXJzZXIucGFyc2VQcm9wZXJ0eVN0cmluZyhpKSk7Cj4+
ICsKPj4gKwkJCWxldCBkYXRhID0gewo+PiArCQkJICAgIG5vZGU6IGZhYnJpY1Jlc3VsdCwKPj4g
KwkJCX07Cj4+ICsKPj4gKwkJCWlwYW5lbC5zZXRWYWx1ZXMoZGF0YSk7Cj4+ICsJCSAgICB9KTsK
Pj4gKwkJfQo+PiArCSAgICB9KTsKPgo+U2VlbXMgb2RkbHkgc2ltaWxhciB0byB0aGUgYWJvdmUs
IGNvdWxkIHRoaXMgYmUgc2ltcGxpZmllZC9hYnN0cmFjdGVkIGEKPmJpdCBvdmVyIGJvdGg/IElm
IGl0cyBmZWFzaWJsZSwgb2YgY291cnNlLgoKSSB0aGluayB0aGF0IHdpbGwgbWFrZSBpdCBtb3Jl
IGNvbXBsaWNhdGVkLCB0aGlzIGNsZWFybHkgc2VwYXJhdGVzIHRoZQoiY29ubmVjdGVkIiBhbmQg
dGhlICJ1bmNvbm5lY3RlZCIgbm9kZS4KCj4+ICsJfQo+PiArCj4+ICsJaWYgKG1lLmlzQ3JlYXRl
KSB7Cj4+ICsJICAgIG1lLm1ldGhvZCA9ICdQT1NUJzsKPj4gKwl9IGVsc2Ugewo+PiArCSAgICBt
ZS5tZXRob2QgPSAnUFVUJzsKPj4gKwl9Cj4+ICsgICAgfSwKPj4gK30pOwo+PiArCj4+IGRpZmYg
LS1naXQgYS93d3cvbWFuYWdlcjYvc2RuL2ZhYnJpY3Mvb3NwZi9Ob2RlRWRpdC5qcyBiL3d3dy9t
YW5hZ2VyNi9zZG4vZmFicmljcy9vc3BmL05vZGVFZGl0LmpzCj4+IG5ldyBmaWxlIG1vZGUgMTAw
NjQ0Cj4+IGluZGV4IDAwMDAwMDAwMDAwMC4uZDAyMjI3MmI1NDI4Cj4+IC0tLSAvZGV2L251bGwK
Pj4gKysrIGIvd3d3L21hbmFnZXI2L3Nkbi9mYWJyaWNzL29zcGYvTm9kZUVkaXQuanMKPj4gQEAg
LTAsMCArMSwyMDcgQEAKPj4gK0V4dC5kZWZpbmUoJ1BWRS5zZG4uRmFicmljLk9zcGYuTm9kZS5J
bnB1dFBhbmVsJywgewo+PiArICAgIGV4dGVuZDogJ1Byb3htb3gucGFuZWwuSW5wdXRQYW5lbCcs
Cj5bLi5dCj4+ICsKPj4gK0V4dC5kZWZpbmUoJ1BWRS5zZG4uRmFicmljLk9zcGYuTm9kZS5FZGl0
Jywgewo+Cj5PdmVyYWxsLCBzZWVtcyB0aGlzIGNvbXBvbmVudCBpcyBtb3N0bHkgdGhlIHNhbWUg
YXMgdGhlIHJlc3BlY3RpdmUKPk9wZW5GYWJyaWMgY291bnRlcnBhcnQgLSBtYXliZSBhIGNvbW1v
biBwYXJlbnQgRXh0SlMgY29tcG9uZW50IGNhbiBiZQo+Y3JlYXRlZD8KClllcCwgZmFjdG9yZWQg
b3V0IHRoZSBOb2RlRWRpdCBhbmQgRmFicmljRWRpdCBmb3IgT3BlbkZhYnJpYyBhbmQgT1NQRiBz
bwp3ZSBoYXZlIHRvIGNvbW1vbiBjb21wb25lbnRzLgoKPlsuLl0KPj4gKwo+PiArICAgIGluaXRD
b21wb25lbnQ6IGZ1bmN0aW9uKCkgewo+PiArCWxldCBtZSA9IHRoaXM7Cj4+ICsKPj4gKwltZS5u
b2RlX25vdF9hY2Nlc3NpYmxlX3dhcm5pbmcgPSBFeHQuY3JlYXRlKCdQcm94bW94LmZvcm0uZmll
bGQuRGlzcGxheUVkaXQnLCB7Cj4+ICsJICAgIHVzZXJDbHM6ICdwbXgtaGludCcsCj4+ICsJICAg
IHZhbHVlOiBnZXR0ZXh0KCdUaGUgbm9kZSBpcyBub3QgYWNjZXNzaWJsZS4nKSwKPj4gKwkgICAg
aGlkZGVuOiB0cnVlLAo+PiArCX0pOwo+PiArCj4+ICsKPj4gKwlsZXQgaXBhbmVsID0gRXh0LmNy
ZWF0ZSgnUFZFLnNkbi5GYWJyaWMuT3NwZi5Ob2RlLklucHV0UGFuZWwnLCB7Cj4+ICsJICAgIGlu
dGVyZmFjZV9zZWxlY3RvcjogbWUuaW50ZXJmYWNlX3NlbGVjdG9yLAo+PiArCSAgICBub2RlX25v
dF9hY2Nlc3NpYmxlX3dhcm5pbmc6IG1lLm5vZGVfbm90X2FjY2Vzc2libGVfd2FybmluZywKPj4g
KwkgICAgaXNDcmVhdGU6IG1lLmlzQ3JlYXRlLAo+PiArCSAgICBsb2FkQ2x1c3RlckludGVyZmFj
ZXM6IG1lLmxvYWRDbHVzdGVySW50ZXJmYWNlcywKPj4gKwl9KTsKPj4gKwo+PiArCUV4dC5hcHBs
eShtZSwgewo+PiArCSAgICBzdWJqZWN0OiBnZXR0ZXh0KCdOb2RlJyksCj4+ICsJICAgIGl0ZW1z
OiBbaXBhbmVsXSwKPj4gKwl9KTsKPj4gKwo+PiArCW1lLmNhbGxQYXJlbnQoKTsKPj4gKwo+PiAr
CWlmICghbWUuaXNDcmVhdGUpIHsKPj4gKwkgICAgbWUubG9hZEFsbEF2YWlsYWJsZU5vZGVzKChh
bGxOb2RlcykgPT4gewo+PiArCQlpZiAoYWxsTm9kZXMuc29tZShpID0+IGkubmFtZSA9PT0gbWUu
bm9kZSkpIHsKPj4gKwkJICAgIG1lLmxvYWRDbHVzdGVySW50ZXJmYWNlcyhtZS5ub2RlLCAoY2x1
c3RlclJlc3VsdCkgPT4gewo+PiArCQkJbWUubG9hZEZhYnJpY0ludGVyZmFjZXMobWUuZmFicmlj
LCBtZS5ub2RlLCAoZmFicmljUmVzdWx0KSA9PiB7Cj4+ICsJCQkgICAgZmFicmljUmVzdWx0Lmlu
dGVyZmFjZSA9IGZhYnJpY1Jlc3VsdC5pbnRlcmZhY2UKPj4gKwkJCQkubWFwKGkgPT4gUFZFLlBh
cnNlci5wYXJzZVByb3BlcnR5U3RyaW5nKGkpKTsKPj4gKwo+PiArCQkJICAgIGxldCBkYXRhID0g
ewo+PiArCQkJCW5vZGU6IGZhYnJpY1Jlc3VsdCwKPj4gKwkJCQluZXR3b3JrX2ludGVyZmFjZXM6
IGNsdXN0ZXJSZXN1bHQsCj4+ICsJCQkgICAgfTsKPj4gKwo+PiArCQkJICAgIGlwYW5lbC5zZXRW
YWx1ZXMoZGF0YSk7Cj4+ICsJCQl9KTsKPj4gKwkJICAgIH0pOwo+PiArCQl9IGVsc2Ugewo+PiAr
CQkgICAgbWUubm9kZV9ub3RfYWNjZXNzaWJsZV93YXJuaW5nLnNldEhpZGRlbihmYWxzZSk7Cj4+
ICsJCSAgICAvLyBJZiB0aGUgbm9kZSBpcyBub3QgY3VycmVudGx5IGluIHRoZSBjbHVzdGVyIGFu
ZCBub3QgYXZhaWxhYmxlICh3ZSBjYW4ndCBnZXQgaXQncyBpbnRlcmZhY2VzKS4KPj4gKwkJCW1l
LmxvYWRGYWJyaWNJbnRlcmZhY2VzKG1lLmZhYnJpYywgbWUubm9kZSwgKGZhYnJpY1Jlc3VsdCkg
PT4gewo+Cj5uaXQ6IHdyb25nIGluZGVudGF0aW9uIDpeKQoKRml4ZWQgOikKClRoYW5rcyBmb3Ig
dGhlIHJldmlldyEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpwdmUtZGV2ZWwgbWFpbGluZyBsaXN0CnB2ZS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQpo
dHRwczovL2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wdmUtZGV2
ZWwK