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 70E0D1FF3A0
	for <inbox@lore.proxmox.com>; Thu, 13 Jun 2024 11:27:09 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 591691D67A;
	Thu, 13 Jun 2024 11:27:46 +0200 (CEST)
Mime-Version: 1.0
Date: Thu, 13 Jun 2024 11:27:42 +0200
Message-Id: <D1YS6OQBVV1D.23XRIMCIN1WUX@proxmox.com>
To: "Proxmox VE development discussion" <pve-devel@lists.proxmox.com>
From: "Max Carrara" <m.carrara@proxmox.com>
X-Mailer: aerc 0.17.0-72-g6a84f1331f1c
References: <20240604092850.126083-1-m.carrara@proxmox.com>
 <20240604092850.126083-4-m.carrara@proxmox.com>
 <1718102096.jr51lrt2bo.astroid@yuna.none>
In-Reply-To: <1718102096.jr51lrt2bo.astroid@yuna.none>
X-SPAM-LEVEL: Spam detection results:  0
 AWL -0.366 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
 SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
 SPF_PASS               -0.001 SPF: sender matches SPF record
 T_SCC_BODY_TEXT_LINE    -0.01 -
Subject: Re: [pve-devel] [PATCH v1 pve-common 3/3] section config: clean up
 parser logic
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>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: pve-devel-bounces@lists.proxmox.com
Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com>

T24gVHVlIEp1biAxMSwgMjAyNCBhdCAxMjo0NiBQTSBDRVNULCBGYWJpYW4gR3LDvG5iaWNobGVy
IHdyb3RlOgo+IE9uIEp1bmUgNCwgMjAyNCAxMToyOCBhbSwgTWF4IENhcnJhcmEgd3JvdGU6Cj4g
PiBJbiBvcmRlciB0byBtYWtlIHRoZSBwYXJzZXIgc29tZXdoYXQgbW9yZSBtYWludGFpbmFibGUg
aW4gdGhlIGZ1dHVyZSwKPiA+IHRoaXMgY29tbWl0IGNsZWFucyB1cCBpdHMgbG9naWMgYW5kIG1h
a2VzIGl0cyBjb250cm9sIGZsb3cgZWFzaWVyIHRvCj4gPiBmb2xsb3cuCj4KPiBpdCBhbHNvIG1p
eGVzIGRlZXBlciBjaGFuZ2VzIHdpdGggdGhpbmdzIGxpa2UgdmFyaWFibGUgcmVuYW1pbmcsIHdo
aWNoCj4gbWFrZXMgaXQgdW5uZWNlc3NhcmlseSBoYXJkIHRvIHJldmlldy4uCgpTaG91bGQndmUg
bWVudGlvbmVkIHRoYXQ7IG1lYSBjdWxwYS4gV2lsbCBzZWUgaWYgSSBjYW4gcmV0YWluIHRoZSBv
bGQKbmFtZXMsIG90aGVyd2lzZSB3aWxsIG1lbnRpb24gLyBsaXN0IHRoZSByZW5hbWVkIHZhcmlh
Ymxlcy4KCj4KPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogTWF4IENhcnJhcmEgPG0uY2FycmFyYUBw
cm94bW94LmNvbT4KPiA+IC0tLQo+ID4gIHNyYy9QVkUvU2VjdGlvbkNvbmZpZy5wbSB8IDE4OSAr
KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ICAxIGZpbGUgY2hhbmdl
ZCwgOTggaW5zZXJ0aW9ucygrKSwgOTEgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQg
YS9zcmMvUFZFL1NlY3Rpb25Db25maWcucG0gYi9zcmMvUFZFL1NlY3Rpb25Db25maWcucG0KPiA+
IGluZGV4IGE2YjAxODMuLjMwZmFhYTQgMTAwNjQ0Cj4gPiAtLS0gYS9zcmMvUFZFL1NlY3Rpb25D
b25maWcucG0KPiA+ICsrKyBiL3NyYy9QVkUvU2VjdGlvbkNvbmZpZy5wbQo+ID4gQEAgLTEwMTQs
MjUgKzEwMTQsMjYgQEAgVGhlIGVycm9yLgo+ID4gIHN1YiBwYXJzZV9jb25maWcgewo+ID4gICAg
ICBteSAoJGNsYXNzLCAkZmlsZW5hbWUsICRyYXcsICRhbGxvd191bmtub3duKSA9IEBfOwo+ID4g
IAo+ID4gLSAgICBteSAkcGRhdGEgPSAkY2xhc3MtPnByaXZhdGUoKTsKPiA+ICsgICAgaWYgKCFk
ZWZpbmVkKCRyYXcpKSB7Cj4gPiArCXJldHVybiB7Cj4gPiArCSAgICBpZHMgPT4ge30sCj4gPiAr
CSAgICBvcmRlciA9PiB7fSwKPiA+ICsJICAgIGRpZ2VzdCA9PiBEaWdlc3Q6OlNIQTo6c2hhMV9o
ZXgoJycpLAo+ID4gKwl9Owo+ID4gKyAgICB9Cj4gPiArCj4gPiArICAgIG15ICRyZV9iZWdpbnNf
d2l0aF9jb21tZW50ID0gcXIvXlxzKiMvOwo+ID4gKyAgICBteSAkcmVfa3ZfcGFpciA9IHFyL15c
cysgIChcUyspICAoXHMrICguKlxTKSApPyAgXHMqJC94Owo+Cj4gSSBhbSBub3Qgc3VyZSB0aGlz
IGlzIHJlYWxseSBtb3JlIHJlYWRhYmxlPyBlc3BlY2lhbGx5IGluIGEgUkUgdGhhdCBpcwo+IGJh
c2ljYWxseSBvbmx5IGNvbmNlcm5lZCB3aXRoIHdoaXRlc3BhY2UuLiBhbmQgZm9yIGEgUkUgdGhh
dCBpcyBvbmx5Cj4gdXNlZCBvbmNlLi4KCkkgbWVhbiBJIGNvdWxkIGRyb3AgdGhlIGB4YCBmbGFn
IGlmIHlvdSdkIGxpa2UsIGp1c3QgdGhvdWdodCB0aGF0IGl0CndvdWxkIG1ha2UgaXQgYSBsaXR0
bGUgZWFzaWVyIHRvIHBhcnNlLi4uIFRob3VnaCwgdGhlIHJlYXNvbiB3aHkgSSdtCnBlcnNvbmFs
bHkgYSBmYW4gb2YgYXNzaWduaW5nIHJlZ2V4ZXMgdG8gdmFyaWFibGVzIGlzIGJlY2F1c2UgaXQg
bWFrZXMKdGhlIGNvZGUgbW9yZSBleHByZXNzaXZlIElNTy4gSWYgc29tZW9uZSB3aG8gdXN1YWxs
eSBkb2Vzbid0IGRlYWwgd2l0aApyZWdleGVzIGhhcyB0byByZWFkIHRoaXMgY29kZSwgdGhlIHZh
cmlhYmxlIG5hbWUgZGVzY3JpYmVzIHdoYXQgdGhlCnJlZ2V4IGRvZXMuIFRoYXQncyBtYWlubHkg
dGhlIHJlYXNvbiB3aHkgSSBwdXQgaXQgdGhlcmUuCgo+Cj4gPiAgCj4gPiAgICAgIG15ICRpZHMg
PSB7fTsKPiA+ICAgICAgbXkgJG9yZGVyID0ge307Cj4gPiAtCj4gPiAtICAgICRyYXcgPSAnJyBp
ZiAhZGVmaW5lZCgkcmF3KTsKPiA+IC0KPiA+ICAgICAgbXkgJGRpZ2VzdCA9IERpZ2VzdDo6U0hB
OjpzaGExX2hleCgkcmF3KTsKPiA+ICAKPiA+IC0gICAgbXkgJHByaSA9IDE7Cj4gPiArICAgIG15
ICRjdXJyZW50X29yZGVyID0gMTsKPgo+IHRoaXMgaXMgYWN0dWFsbHkgYSB3b3JzZSBuYW1lIHRo
YW4gYmVmb3JlLiB0aGlzIHdvdWxkIGJlIHNvbWV0aGluZyBsaWtlCj4gY3VycmVudF9pbmRleD8g
Y3VycmVudF9wb3NpdGlvbj8gc2VjdGlvbl9ubz8KCkhtLCBhZ3JlZWQgLSB0aG9zZSBhcmUgYWN0
dWFsbHkgYmV0dGVyLiBXaWxsIGluY29ycG9yYXRlIGluIHYyLCB0aGFua3MhCgo+Cj4gPiArICAg
IG15ICRsaW5lX25vID0gMDsKPiA+ICAKPiA+IC0gICAgbXkgJGxpbmVubyA9IDA7Cj4gPiAgICAg
IG15IEBsaW5lcyA9IHNwbGl0KC9cbi8sICRyYXcpOwo+ID4gLSAgICBteSAkbmV4dGxpbmUgPSBz
dWIgewo+ID4gLQl3aGlsZSAoZGVmaW5lZChteSAkbGluZSA9IHNoaWZ0IEBsaW5lcykpIHsKPiA+
IC0JICAgICRsaW5lbm8rKzsKPiA+IC0JICAgIHJldHVybiAkbGluZSBpZiAoJGxpbmUgIX4gL15c
cyojLyk7Cj4gPiAtCX0KPiA+IC0gICAgfTsKPiA+ICsgICAgbXkgQGVycm9yczsKPgo+IHdoYXQg
ZG8gd2UgZ2FpbiBmcm9tIHRoaXM/CgpNeSBpbnRlbnRpb24gaGVyZSB3YXMgdG8gd29yayBvbiB0
aGUgYXJyYXkgZGlyZWN0bHkgYW5kIHRoZW4gcmV0dXJuIGl0CmFzIGEgcmVmZXJlbmNlIGJlbG93
IChpZiB0aGVyZSBhcmUgYW55IGVycm9ycykgcmF0aGVyIHRoYW4gd29ya2luZyB3aXRoCmEgcmVm
ZXJlbmNlIGZyb20gdGhlIGdldC1nbywgaGF2aW5nIHRvIGRlcmVmIHdoZW5ldmVyIHRoZXJlJ3Mg
YSBgcHVzaGAuCgpJIGd1ZXNzIGl0J3MgbW9yZSBhIHBlcnNvbmFsIHByZWZlcmVuY2Ugb2YgbWlu
ZSwgSSBqdXN0IGZpbmQgaXQgYmV0dGVyCnRvIHdvcmsgd2l0aC4gQ2FuIGtlZXAgdGhlIGFycmF5
IHJlZiBpbiB2MiB0aG91Z2gsIGRvZXNuJ3QgbWF0dGVyIHRoYXQKbXVjaC4gOlAKCj4KPiA+ICAK
PiA+ICAgICAgbXkgJGlzX2FycmF5ID0gc3ViIHsKPiA+ICAJbXkgKCR0eXBlLCAka2V5KSA9IEBf
Owo+ID4gQEAgLTEwNDMsMTA2ICsxMDQ0LDExMiBAQCBzdWIgcGFyc2VfY29uZmlnIHsKPiA+ICAJ
cmV0dXJuICRzY2hlbWEtPnt0eXBlfSBlcSAnYXJyYXknOwo+ID4gICAgICB9Owo+ID4gIAo+ID4g
LSAgICBteSAkZXJyb3JzID0gW107Cj4gPiAtICAgIHdoaWxlIChAbGluZXMpIHsKPiA+IC0JbXkg
JGxpbmUgPSAkbmV4dGxpbmUtPigpOwo+ID4gKyAgICBteSAkZ2V0X25leHRfbGluZSA9IHN1YiB7
Cj4gPiArCXdoaWxlIChzY2FsYXIoQGxpbmVzKSkgewo+ID4gKwkgICAgbXkgJGxpbmUgPSBzaGlm
dChAbGluZXMpOwo+ID4gKwkgICAgJGxpbmVfbm8rKzsKPiA+ICsKPiA+ICsJICAgIG5leHQgaWYg
KCRsaW5lID1+IG0vJHJlX2JlZ2luc193aXRoX2NvbW1lbnQvKTsKPiA+ICsKPiA+ICsJICAgIHJl
dHVybiAkbGluZTsKPiA+ICsJfQo+ID4gKwo+ID4gKwlyZXR1cm4gdW5kZWY7Cj4gPiArICAgIH07
Cj4gPiArCj4gPiArICAgIG15ICRza2lwX3RvX25leHRfZW1wdHlfbGluZSA9IHN1YiB7Cj4gPiAr
CXdoaWxlICgkZ2V0X25leHRfbGluZS0+KCkgbmUgJycpIHt9Cj4gPiArICAgIH07Cj4gPiArCj4g
PiArICAgIHdoaWxlIChkZWZpbmVkKG15ICRsaW5lID0gJGdldF9uZXh0X2xpbmUtPigpKSkgewo+
ID4gIAluZXh0IGlmICEkbGluZTsKPiA+ICAKPiA+IC0JbXkgJGVycnByZWZpeCA9ICJmaWxlICRm
aWxlbmFtZSBsaW5lICRsaW5lbm8iOwo+ID4gKwlteSAkZXJycHJlZml4ID0gImZpbGUgJGZpbGVu
YW1lIGxpbmUgJGxpbmVfbm8iOwo+ID4gIAo+ID4gLQlteSAoJHR5cGUsICRzZWN0aW9uSWQsICRl
cnJtc2csICRjb25maWcpID0gJGNsYXNzLT5wYXJzZV9zZWN0aW9uX2hlYWRlcigkbGluZSk7Cj4g
PiAtCWlmICgkY29uZmlnKSB7Cj4gPiAtCSAgICBteSAkc2tpcCA9IDA7Cj4gPiAtCSAgICBteSAk
dW5rbm93biA9IDA7Cj4gPiArCW15ICgkdHlwZSwgJHNlY3Rpb25faWQsICRlcnJtc2csICRjb25m
aWcpID0gJGNsYXNzLT5wYXJzZV9zZWN0aW9uX2hlYWRlcigkbGluZSk7Cj4gPiAgCj4gPiAtCSAg
ICBteSAkcGx1Z2luOwo+ID4gKwlpZiAoIWRlZmluZWQoJGNvbmZpZykpIHsKPiA+ICsJICAgIHdh
cm4gIiRlcnJwcmVmaXggLSBpZ25vcmUgY29uZmlnIGxpbmU6ICRsaW5lXG4iOwo+ID4gKwkgICAg
bmV4dDsKPiA+ICsJfQo+ID4gIAo+ID4gLQkgICAgaWYgKCRlcnJtc2cpIHsKPiA+IC0JCSRza2lw
ID0gMTsKPiA+IC0JCWNob21wICRlcnJtc2c7Cj4gPiAtCQl3YXJuICIkZXJycHJlZml4IChza2lw
IHNlY3Rpb24gJyRzZWN0aW9uSWQnKTogJGVycm1zZ1xuIjsKPiA+IC0JICAgIH0gZWxzaWYgKCEk
dHlwZSkgewo+ID4gLQkJJHNraXAgPSAxOwo+ID4gLQkJd2FybiAiJGVycnByZWZpeCAoc2tpcCBz
ZWN0aW9uICckc2VjdGlvbklkJyk6IG1pc3NpbmcgdHlwZSAtIGludGVybmFsIGVycm9yXG4iOwo+
ID4gLQkgICAgfSBlbHNlIHsKPiA+IC0JCWlmICghKCRwbHVnaW4gPSAkcGRhdGEtPntwbHVnaW5z
fS0+eyR0eXBlfSkpIHsKPiA+IC0JCSAgICBpZiAoJGFsbG93X3Vua25vd24pIHsKPiA+IC0JCQkk
dW5rbm93biA9IDE7Cj4gPiAtCQkgICAgfSBlbHNlIHsKPiA+IC0JCQkkc2tpcCA9IDE7Cj4gPiAt
CQkJd2FybiAiJGVycnByZWZpeCAoc2tpcCBzZWN0aW9uICckc2VjdGlvbklkJyk6IHVuc3VwcG9y
dGVkIHR5cGUgJyR0eXBlJ1xuIjsKPiA+IC0JCSAgICB9Cj4gPiAtCQl9Cj4gPiAtCSAgICB9Cj4g
PiArCWlmICgkZXJybXNnKSB7Cj4gPiArCSAgICBjaG9tcCAkZXJybXNnOwo+ID4gKwkgICAgd2Fy
biAiJGVycnByZWZpeCAoc2tpcCBzZWN0aW9uICckc2VjdGlvbl9pZCcpOiAkZXJybXNnXG4iOwo+
ID4gKwkgICAgJHNraXBfdG9fbmV4dF9lbXB0eV9saW5lLT4oKTsKPiA+ICsJICAgIG5leHQ7Cj4g
PiArCX0KPiA+ICsKPiA+ICsJaWYgKCEkdHlwZSkgewo+ID4gKwkgICAgd2FybiAiJGVycnByZWZp
eCAoc2tpcCBzZWN0aW9uICckc2VjdGlvbl9pZCcpOiBtaXNzaW5nIHR5cGUgLSBpbnRlcm5hbCBl
cnJvclxuIjsKPiA+ICsJICAgICRza2lwX3RvX25leHRfZW1wdHlfbGluZS0+KCk7Cj4gPiArCSAg
ICBuZXh0Owo+ID4gKwl9Cj4gPiArCj4gPiArCW15ICRwbHVnaW4gPSBldmFsIHsgJGNsYXNzLT5s
b29rdXAoJHR5cGUpIH07Cj4gPiArCW15ICRpc191bmtub3duX3R5cGUgPSBkZWZpbmVkKCRAKSAm
JiAkQCBuZSAnJzsKPiA+ICsKPiA+ICsJaWYgKCRpc191bmtub3duX3R5cGUgJiYgISRhbGxvd191
bmtub3duKSB7Cj4gPiArCSAgICB3YXJuICIkZXJycHJlZml4IChza2lwIHNlY3Rpb24gJyRzZWN0
aW9uX2lkJyk6IHVuc3VwcG9ydGVkIHR5cGUgJyR0eXBlJ1xuIjsKPiA+ICsJICAgICRza2lwX3Rv
X25leHRfZW1wdHlfbGluZS0+KCk7Cj4gPiArCSAgICBuZXh0Owo+ID4gKwl9Cj4gPiArCj4gPiAr
CSMgUGFyc2Uga3YtcGFpcnMgb2Ygc2VjdGlvbiAtIHdpbGwgZ28gb24gdW50aWwgZW1wdHkgbGlu
ZSBpcyBlbmNvdW50ZXJlZAo+ID4gKwl3aGlsZSAobXkgJHNlY3Rpb25fbGluZSA9ICRnZXRfbmV4
dF9saW5lLT4oKSkgewo+ID4gKwkgICAgaWYgKCRzZWN0aW9uX2xpbmUgPX4gbS8kcmVfa3ZfcGFp
ci8pIHsKPiA+ICsJCW15ICgka2V5LCAkdmFsdWUpID0gKCQxLCAkMyk7Cj4gPiAgCj4gPiAtCSAg
ICB3aGlsZSAoJGxpbmUgPSAkbmV4dGxpbmUtPigpKSB7Cj4gPiAtCQluZXh0IGlmICRza2lwOwo+
ID4gLQo+ID4gLQkJJGVycnByZWZpeCA9ICJmaWxlICRmaWxlbmFtZSBsaW5lICRsaW5lbm8iOwo+
ID4gLQo+ID4gLQkJaWYgKCRsaW5lID1+IG0vXlxzKyhcUyspKFxzKyguKlxTKSk/XHMqJC8pIHsK
PiA+IC0JCSAgICBteSAoJGssICR2KSA9ICgkMSwgJDMpOwo+ID4gLQo+ID4gLQkJICAgIGV2YWwg
ewo+ID4gLQkJCWlmICgkdW5rbm93bikgewo+ID4gLQkJCSAgICBpZiAoIWRlZmluZWQoJGNvbmZp
Zy0+eyRrfSkpIHsKPiA+IC0JCQkJJGNvbmZpZy0+eyRrfSA9ICR2Owo+ID4gLQkJCSAgICB9IGVs
c2Ugewo+ID4gLQkJCQlpZiAoIXJlZigkY29uZmlnLT57JGt9KSkgewo+ID4gLQkJCQkgICAgJGNv
bmZpZy0+eyRrfSA9IFskY29uZmlnLT57JGt9XTsKPiA+IC0JCQkJfQo+ID4gLQkJCQlwdXNoICRj
b25maWctPnska30tPkAqLCAkdjsKPiA+IC0JCQkgICAgfQo+ID4gLQkJCX0gZWxzaWYgKCRpc19h
cnJheS0+KCR0eXBlLCAkaykpIHsKPiA+IC0JCQkgICAgJHYgPSAkcGx1Z2luLT5jaGVja192YWx1
ZSgkdHlwZSwgJGssICR2LCAkc2VjdGlvbklkKTsKPiA+IC0JCQkgICAgJGNvbmZpZy0+eyRrfSA9
IFtdIGlmICFkZWZpbmVkKCRjb25maWctPnska30pOwo+ID4gLQkJCSAgICBwdXNoICRjb25maWct
Pnska30tPkAqLCAkdjsKPiA+ICsJCWV2YWwgewo+ID4gKwkJICAgIGlmICgkaXNfdW5rbm93bl90
eXBlKSB7Cj4gPiArCQkJaWYgKCFkZWZpbmVkKCRjb25maWctPnska2V5fSkpIHsKPiA+ICsJCQkg
ICAgJGNvbmZpZy0+eyRrZXl9ID0gJHZhbHVlOwo+ID4gIAkJCX0gZWxzZSB7Cj4gPiAtCQkJICAg
IGRpZSAiZHVwbGljYXRlIGF0dHJpYnV0ZVxuIiBpZiBkZWZpbmVkKCRjb25maWctPnska30pOwo+
ID4gLQkJCSAgICAkdiA9ICRwbHVnaW4tPmNoZWNrX3ZhbHVlKCR0eXBlLCAkaywgJHYsICRzZWN0
aW9uSWQpOwo+ID4gLQkJCSAgICAkY29uZmlnLT57JGt9ID0gJHY7Cj4gPiArCQkJICAgICRjb25m
aWctPnska2V5fSA9IFskY29uZmlnLT57JGtleX1dIGlmICFyZWYoJGNvbmZpZy0+eyRrZXl9KTsK
PiA+ICsJCQkgICAgcHVzaCAkY29uZmlnLT57JGtleX0tPkAqLCAkdmFsdWU7Cj4gPiAgCQkJfQo+
ID4gLQkJICAgIH07Cj4gPiAtCQkgICAgaWYgKG15ICRlcnIgPSAkQCkgewo+ID4gLQkJCXdhcm4g
IiRlcnJwcmVmaXggKHNlY3Rpb24gJyRzZWN0aW9uSWQnKSAtIHVuYWJsZSB0byBwYXJzZSB2YWx1
ZSBvZiAnJGsnOiAkZXJyIjsKPiA+IC0JCQlwdXNoICRlcnJvcnMtPkAqLCB7Cj4gPiAtCQkJICAg
IGNvbnRleHQgPT4gJGVycnByZWZpeCwKPiA+IC0JCQkgICAgc2VjdGlvbiA9PiAkc2VjdGlvbklk
LAo+ID4gLQkJCSAgICBrZXkgPT4gJGssCj4gPiAtCQkJICAgIGVyciA9PiAkZXJyLAo+ID4gLQkJ
CX07Cj4gPiArCQkgICAgfSBlbHNpZiAoJGlzX2FycmF5LT4oJHR5cGUsICRrZXkpKSB7Cj4gPiAr
CQkJJHZhbHVlID0gJHBsdWdpbi0+Y2hlY2tfdmFsdWUoJHR5cGUsICRrZXksICR2YWx1ZSwgJHNl
Y3Rpb25faWQpOwo+ID4gKwkJCSRjb25maWctPnska2V5fSA9IFtdIGlmICFkZWZpbmVkKCRjb25m
aWctPnska2V5fSk7Cj4gPiArCQkJcHVzaCAkY29uZmlnLT57JGtleX0tPkAqLCAkdmFsdWU7Cj4g
PiArCQkgICAgfSBlbHNlIHsKPiA+ICsJCQlkaWUgImR1cGxpY2F0ZSBhdHRyaWJ1dGVcbiIgaWYg
ZGVmaW5lZCgkY29uZmlnLT57JGtleX0pOwo+ID4gKwkJCSR2YWx1ZSA9ICRwbHVnaW4tPmNoZWNr
X3ZhbHVlKCR0eXBlLCAka2V5LCAkdmFsdWUsICRzZWN0aW9uX2lkKTsKPiA+ICsJCQkkY29uZmln
LT57JGtleX0gPSAkdmFsdWU7Cj4gPiAgCQkgICAgfQo+ID4gLQo+ID4gLQkJfSBlbHNlIHsKPiA+
IC0JCSAgICB3YXJuICIkZXJycHJlZml4IChzZWN0aW9uICckc2VjdGlvbklkJykgLSBpZ25vcmUg
Y29uZmlnIGxpbmU6ICRsaW5lXG4iOwo+ID4gKwkJfTsKPiA+ICsJCWlmIChteSAkZXJyID0gJEAp
IHsKPiA+ICsJCSAgICB3YXJuICIkZXJycHJlZml4IChzZWN0aW9uICckc2VjdGlvbl9pZCcpIC0g
dW5hYmxlIHRvIHBhcnNlIHZhbHVlIG9mICcka2V5JzogJGVyciI7Cj4gPiArCQkgICAgcHVzaCBA
ZXJyb3JzLCB7Cj4gPiArCQkJY29udGV4dCA9PiAkZXJycHJlZml4LAo+ID4gKwkJCXNlY3Rpb24g
PT4gJHNlY3Rpb25faWQsCj4gPiArCQkJa2V5ID0+ICRrZXksCj4gPiArCQkJZXJyID0+ICRlcnIs
Cj4gPiArCQkgICAgfTsKPiA+ICAJCX0KPiA+ICAJICAgIH0KPiA+ICsJfQo+ID4gIAo+ID4gLQkg
ICAgaWYgKCR1bmtub3duKSB7Cj4gPiAtCQkkY29uZmlnLT57dHlwZX0gPSAkdHlwZTsKPiA+IC0J
CSRpZHMtPnskc2VjdGlvbklkfSA9ICRjb25maWc7Cj4gPiAtCQkkb3JkZXItPnskc2VjdGlvbklk
fSA9ICRwcmkrKzsKPiA+IC0JICAgIH0gZWxzaWYgKCEkc2tpcCAmJiAkdHlwZSAmJiAkcGx1Z2lu
ICYmICRjb25maWcpIHsKPiA+IC0JCSRjb25maWctPnt0eXBlfSA9ICR0eXBlOwo+ID4gLQkJaWYg
KCEkdW5rbm93bikgewo+ID4gLQkJICAgICRjb25maWcgPSBldmFsIHsgJGNvbmZpZyA9ICRwbHVn
aW4tPmNoZWNrX2NvbmZpZygkc2VjdGlvbklkLCAkY29uZmlnLCAxLCAxKTsgfTsKPiA+IC0JCSAg
ICB3YXJuICIkZXJycHJlZml4IChza2lwIHNlY3Rpb24gJyRzZWN0aW9uSWQnKTogJEAiIGlmICRA
Owo+ID4gLQkJfQo+ID4gLQkJJGlkcy0+eyRzZWN0aW9uSWR9ID0gJGNvbmZpZzsKPiA+IC0JCSRv
cmRlci0+eyRzZWN0aW9uSWR9ID0gJHByaSsrOwo+ID4gKwlpZiAoJGlzX3Vua25vd25fdHlwZSB8
fCAoJHR5cGUgJiYgJHBsdWdpbiAmJiAkY29uZmlnKSkgewo+ID4gKwkgICAgJGNvbmZpZy0+e3R5
cGV9ID0gJHR5cGU7Cj4gPiArCj4gPiArCSAgICBpZiAoISRpc191bmtub3duX3R5cGUpIHsKPiA+
ICsJCSRjb25maWcgPSBldmFsIHsgJGNvbmZpZyA9ICRwbHVnaW4tPmNoZWNrX2NvbmZpZygkc2Vj
dGlvbl9pZCwgJGNvbmZpZywgMSwgMSk7IH07Cj4gPiArCQl3YXJuICIkZXJycHJlZml4IChza2lw
IHNlY3Rpb24gJyRzZWN0aW9uX2lkJyk6ICRAIiBpZiAkQDsKPiA+ICAJICAgIH0KPiA+ICAKPiA+
IC0JfSBlbHNlIHsKPiA+IC0JICAgIHdhcm4gIiRlcnJwcmVmaXggLSBpZ25vcmUgY29uZmlnIGxp
bmU6ICRsaW5lXG4iOwo+ID4gKwkgICAgJGlkcy0+eyRzZWN0aW9uX2lkfSA9ICRjb25maWc7Cj4g
PiArCSAgICAkb3JkZXItPnskc2VjdGlvbl9pZH0gPSAkY3VycmVudF9vcmRlcisrOwo+ID4gIAl9
Cj4gPiAgICAgIH0KPiA+ICAKPiA+ICAgICAgbXkgJGNmZyA9IHsKPiA+ICAJaWRzID0+ICRpZHMs
Cj4gPiAgCW9yZGVyID0+ICRvcmRlciwKPiA+IC0JZGlnZXN0ID0+ICRkaWdlc3QKPiA+ICsJZGln
ZXN0ID0+ICRkaWdlc3QsCj4gPiAgICAgIH07Cj4gPiAtICAgICRjZmctPntlcnJvcnN9ID0gJGVy
cm9ycyBpZiBzY2FsYXIoJGVycm9ycy0+QCopID4gMDsKPiA+ICsKPiA+ICsgICAgJGNmZy0+e2Vy
cm9yc30gPSBcQGVycm9ycyBpZiBzY2FsYXIoQGVycm9ycykgPiAwOwo+ID4gIAo+ID4gICAgICBy
ZXR1cm4gJGNmZzsKPiA+ICB9Cj4gPiAtLSAKPiA+IDIuMzkuMgo+ID4gCj4gPiAKPiA+IAo+ID4g
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+IHB2ZS1k
ZXZlbCBtYWlsaW5nIGxpc3QKPiA+IHB2ZS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQo+ID4gaHR0
cHM6Ly9saXN0cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcHZlLWRldmVs
Cj4gPiAKPiA+IAo+ID4gCj4KPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCj4gcHZlLWRldmVsIG1haWxpbmcgbGlzdAo+IHB2ZS1kZXZlbEBsaXN0cy5w
cm94bW94LmNvbQo+IGh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xp
c3RpbmZvL3B2ZS1kZXZlbAoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpwdmUtZGV2ZWwgbWFpbGluZyBsaXN0CnB2ZS1kZXZlbEBsaXN0cy5wcm94bW94
LmNvbQpodHRwczovL2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9w
dmUtZGV2ZWwK