From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <pbs-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 9EA281FF16E
	for <inbox@lore.proxmox.com>; Mon, 17 Mar 2025 12:56:28 +0100 (CET)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 71370F1A;
	Mon, 17 Mar 2025 12:56:18 +0100 (CET)
Message-ID: <69533b86-7d14-41a5-8355-9eade40301b9@proxmox.com>
Date: Mon, 17 Mar 2025 12:56:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird Beta
To: Christian Ebner <c.ebner@proxmox.com>,
 Proxmox Backup Server development discussion <pbs-devel@lists.proxmox.com>
References: <20250310170125.528732-1-c.ebner@proxmox.com>
 <66676a8d-15fd-4a2c-b80b-19564cc268df@proxmox.com>
 <1d56786a-408b-4bd1-841e-5515cd1df15e@proxmox.com>
Content-Language: en-US
From: Dominik Csapak <d.csapak@proxmox.com>
In-Reply-To: <1d56786a-408b-4bd1-841e-5515cd1df15e@proxmox.com>
X-SPAM-LEVEL: Spam detection results:  0
 AWL 0.021 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
 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. [values.id, proxmox.com]
Subject: Re: [pbs-devel] [PATCH proxmox-backup 1/2] fix: ui: sync job:
 switch rate limit based on sync direction
X-BeenThere: pbs-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Proxmox Backup Server development discussion
 <pbs-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pbs-devel>, 
 <mailto:pbs-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pbs-devel/>
List-Post: <mailto:pbs-devel@lists.proxmox.com>
List-Help: <mailto:pbs-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel>, 
 <mailto:pbs-devel-request@lists.proxmox.com?subject=subscribe>
Reply-To: Proxmox Backup Server development discussion
 <pbs-devel@lists.proxmox.com>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: pbs-devel-bounces@lists.proxmox.com
Sender: "pbs-devel" <pbs-devel-bounces@lists.proxmox.com>

T24gMy8xNy8yNSAxMTozMiwgQ2hyaXN0aWFuIEVibmVyIHdyb3RlOgo+IE9uIDMvMTcvMjUgMTE6
MDcsIERvbWluaWsgQ3NhcGFrIHdyb3RlOgo+PiBIaWdoIGxldmVsIGNvbW1lbnQ6Cj4+Cj4+IEkg
a25vdyBpdCdzIHByZWV4aXN0aW5nLCBidSBkb2VzIGl0IGV2ZW4gbWFrZSBzZW5zZSB0byBoYXZl
IGEgJ3JhdGUtaW4nIGFuZCAncmF0ZS1vdXQnIGZvciBzeW5jCj4+IGpvYnM/IHdvdWxkIGl0IG5v
dCBtYWtlIG1vcmUgc2Vuc2UgdG8gaGF2ZSBhIHNpbmdsZSAncmF0ZScgcGFyYW1ldGVyIGFuZCBh
cHBseSBpdCB0byBib3RoCj4+IGRpcmVjdGlvbnM/Cj4gCj4gWW91IG1lYW4gb25seSBhcyBhZGRp
dGlvbmFsIHBhcmFtZXRlciBmb3IgdGhlIGFwaSBlbmRwb2ludCBmb3Igc3luYyBqb2IgY29uZmln
IGNyZWF0aW9uIGFuZCB1cGRhdGU/IAo+IE9yIGFzIHBhcmFtZXRlciBmb3IgdGhlIHN5bmMgam9i
IGNvbmZpZyBpdHNlbGY/Cj4gCj4gVGhlIGZvcm1lciBtaWdodCBiZSB0aGUgYmV0dGVyIG9wdGlv
biwgYW5kIG9uZSBjYW4gY2hlY2sgaWYgYm90aCByYXRlIGFuZCByYXRlLWluL291dCB3ZXJlIHNl
dCBhbmQgCj4gYWJvcnQgd2l0aCBlcnJvciBpbiB0aGF0IGNhc2Ugb3IgYWJvcnQgd2l0aCBlcnJv
ciBpZiBhIHJhdGUtaW4gd2FzIGNvbmZpZ3VyZWQgZm9yIGEgcHVzaCBvciByYXRlLW91dCAKPiBm
b3IgYSBwdWxsPwo+IAoKaSBoYWQgYWN0dWFsbHkgaW1hZ2luZWQgMyBvcHRpb25zIGZvciB0aGUg
c3luYyBqb2IgY29uZmlnCnJhdGU6IGxpbWl0cyBib3RoIGluL291dApyYXRlLWluL291dDogcHJl
Y2VkZW5jZSBvdmVyIHJhdGUsIGxpbWl0cyB0aGUgcmVzcGVjdGl2ZSBkaXJlY3Rpb24KCmFuZCBv
bmx5IGV4cG9zZSB0aGUgJ3JhdGUnIG9wdGlvbiBvbiB0aGUgdWkKCgoKPj4KPj4gd2UgY291bGQg
bWF5YmUgaW50cm9kdWNlIGEgbmV3IHBhcmFtZXRlciBub3cgdG8gcmVwbGFjZSBib3RoICdyYXRl
LWluJyBhbmQgJ3JhdGUtb3V0JyBhbmQKPj4gdXNlIHRoYXQ/IHdlIGNvdWxkIGV2ZW4gbWF5YmUg
bGVhdmUgYWxsIHRocmVlIGlmIHNvbWUgdXNlcnMgcmVhbGx5IHByZWZlciB0byBzZXQgdGhlCj4+
IGxpbWl0cyBzZXBlcmF0ZWx5Lgo+IAo+IFlvdSBtZWFuIHJhdGUgYXMgZmFsbGJhY2sgaWYgcmF0
ZS1pbi9vdXQgYXJlIG5vdCBleHBsaWNpdGx5IHNldD8KCm5vIGkgbWVhbiBhcyBtYWluIHBhcmFt
ZXRlciAoc2VlIGFib3ZlKSBhbmQgcmF0ZS1pbi9vdXQgb25seSBmb3IgdXNlcnMKdGhhdCB3YW50
IHRvIGV4cGxpY2l0bHkgaGFuZGxlIHRoZSBkaWZmZXJlbnQgZGlyZWN0aW9ucwoKKEFGQUlLIHRo
ZXJlIGlzIG5vdCBtdWNoIGRhdGEgZmxvd2luZyBpbiB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uIG9m
CnRoZSBzeW5jIGpvYiwgYnV0IG9uZSBtaWdodCBzdGlsbCB3YW50IHRvIGNvbnRyb2wgdGhhdCkK
CnRoZSBhZHZhbnRhZ2UgaXMgdGhhdCBpdCdzIGJhY2t3YXJkcyBjb21wYXRpYmxlIGZvciBleGlz
dGluZyBzZXR1cHMKCj4gCj4+Cj4+IG9uZSBjb21tZW50IGlubGluZQo+Pgo+PiBPbiAzLzEwLzI1
IDE4OjAxLCBDaHJpc3RpYW4gRWJuZXIgd3JvdGU6Cj4+PiBDb21taXQgOWFhMjEzYjggKCJjb25m
aWc6IHN5bmM6IHVzZSBzYW1lIGNvbmZpZyBzZWN0aW9uIHR5cGUgYHN5bmNgCj4+PiBmb3IgcHVz
aCBhbmQgcHVsbCIpIGFkYXB0ZWQgdGhlIHN5bmMgam9iIGVkaXQgc28gam9icyBpbiBib3RoLCBw
dXNoCj4+PiBhbmQgcHVsbCBjYW4gYmUgZWRpdGVkIHVzaW5nIHRoZSBzYW1lIHdpbmRvdy4gVGhp
cyBob3dldmVyIGRpZCBub3QKPj4+IGluY2x1ZGUgdGhlIHN3aXRjaGluZyBvZiB0aGUgZGlyZWN0
aW9uIHRvIHdoaWNoIHRoZSBodHRwIGNsaWVudCByYXRlCj4+PiBsaW1pdCBpcyBhcHBsaWVkIHRv
Lgo+Pj4KPj4+IEZpeCB0aGlzIGJ5IHJlbmFtaW5nIHRoZSBmaWVsZCB0byBgcmF0ZS1saW1pdGAg
YW5kwqAgY29uZGl0aW9uYWxseQo+Pj4gc2V0dGluZ3MgdGhlIHZhbHVlcyB0byBgcmF0ZS1pbmAg
b3IgYHJhdGUtb3V0YC4KPj4+Cj4+PiBSZXBvcnRlZCBpbiB0aGUgY29tbXVuaXR5IGZvcnVtOgo+
Pj4gaHR0cHM6Ly9mb3J1bS5wcm94bW94LmNvbS90aHJlYWRzLzE2MzQxNC8KPj4+Cj4+PiBGaXhl
czogOWFhMjEzYjggKCJjb25maWc6IHN5bmM6IHVzZSBzYW1lIGNvbmZpZyBzZWN0aW9uIHR5cGUg
YHN5bmNgIGZvciBwdXNoIGFuZCBwdWxsIikKPj4+IFNpZ25lZC1vZmYtYnk6IENocmlzdGlhbiBF
Ym5lciA8Yy5lYm5lckBwcm94bW94LmNvbT4KPj4+IC0tLQo+Pj4gwqAgd3d3L3dpbmRvdy9TeW5j
Sm9iRWRpdC5qcyB8IDIwICsrKysrKysrKysrKysrKysrLS0tCj4+PiDCoCAxIGZpbGUgY2hhbmdl
ZCwgMTcgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKPj4+Cj4+PiBkaWZmIC0tZ2l0IGEv
d3d3L3dpbmRvdy9TeW5jSm9iRWRpdC5qcyBiL3d3dy93aW5kb3cvU3luY0pvYkVkaXQuanMKPj4+
IGluZGV4IGJjZDJmMmZiMi4uZjk4MGEyZWZkIDEwMDY0NAo+Pj4gLS0tIGEvd3d3L3dpbmRvdy9T
eW5jSm9iRWRpdC5qcwo+Pj4gKysrIGIvd3d3L3dpbmRvdy9TeW5jSm9iRWRpdC5qcwo+Pj4gQEAg
LTg2LDYgKzg2LDEzIEBAIEV4dC5kZWZpbmUoJ1BCUy53aW5kb3cuU3luY0pvYkVkaXQnLCB7Cj4+
PiDCoMKgwqDCoMKgIH0gZWxzZSB7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgdmFsdWVzLmxvY2F0
aW9uID0gJ3JlbW90ZSc7Cj4+PiDCoMKgwqDCoMKgIH0KPj4+ICvCoMKgwqAgaWYgKHZhbHVlc1sn
cmF0ZS1vdXQnXSAmJiBtZS5zeW5jRGlyZWN0aW9uID09PSAncHVzaCcpIHsKPj4+ICvCoMKgwqDC
oMKgwqDCoCB2YWx1ZXNbJ3JhdGUtbGltaXQnXSA9IHZhbHVlc1sncmF0ZS1vdXQnXTsKPj4+ICvC
oMKgwqDCoMKgwqDCoCBkZWxldGUgdmFsdWVzWydyYXRlLW91dCddOwo+Pj4gK8KgwqDCoCB9IGVs
c2UgaWYgKHZhbHVlc1sncmF0ZS1pbiddKSB7Cj4+PiArwqDCoMKgwqDCoMKgwqAgdmFsdWVzWydy
YXRlLWxpbWl0J10gPSB2YWx1ZXNbJ3JhdGUtaW4nXTsKPj4+ICvCoMKgwqDCoMKgwqDCoCBkZWxl
dGUgdmFsdWVzWydyYXRlLWluJ107Cj4+PiArwqDCoMKgIH0KPj4+IMKgwqDCoMKgwqAgbWUuY2Fs
bFBhcmVudChbdmFsdWVzXSk7Cj4+PiDCoMKgwqDCoMKgIH0sCj4+PiBAQCAtMTAzLDggKzExMCwx
NSBAQCBFeHQuZGVmaW5lKCdQQlMud2luZG93LlN5bmNKb2JFZGl0Jywgewo+Pj4gwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgaWYgKCF2YWx1ZXMuaWQgJiYgbWUudXAoJ3Bic1N5bmNKb2JFZGl0
JykuaXNDcmVhdGUpIHsKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZhbHVlcy5pZCA9
ICdzLScgKyBFeHQuZGF0YS5pZGVudGlmaWVyLlV1aWQuR2xvYmFsLmdlbmVyYXRlKCkuc2xpY2Uo
MCwgMTMpOwo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+Pj4gK8KgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgaWYgKHZhbHVlc1sncmF0ZS1saW1pdCddICYmIG1lLnN5bmNEaXJlY3Rpb24g
PT09ICdwdXNoJykgewo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdmFsdWVzWydyYXRlLW91
dCddID0gdmFsdWVzWydyYXRlLWxpbWl0J107Cj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9
IGVsc2Ugewo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdmFsdWVzWydyYXRlLWluJ10gPSB2
YWx1ZXNbJ3JhdGUtbGltaXQnXTsKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4+ICvC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRlbGV0ZSB2YWx1ZXNbJ3JhdGUtbGltaXQnXTsKPj4+IMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICghbWUuaXNDcmVhdGUpIHsKPj4+IMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIFBCUy5VdGlscy5kZWxldGVfaWZfZGVmYXVsdCh2YWx1ZXMsICdy
YXRlLWluJyk7Cj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBQQlMuVXRpbHMuZGVsZXRlX2lm
X2RlZmF1bHQodmFsdWVzLCAncmF0ZS1vdXQnKTsKPj4KPj4gdGhpcyBub3cgZGVsZXRlcyB2YWx1
ZXMgc2V0IGluIHRoZSBiYWNrZW5kLCBvciBub3Q/Cj4+Cj4+IGUuZy4gaSBoYWQgc2V0Cj4+IHJh
dGUtaW46IDEwCj4+IHJhdGUtb3V0OiAxNQo+Pgo+PiB0aGVuIGkgdXBkYXRlIHRoZSBjb25maWcg
aW4gdGhlIEdVSSBhbmQgZGVwZW5kaW5nIG9uIHRoZSBzeW5jIGpvYiBkaXJlY3Rpb24sCj4+IHRo
ZSBvdGhlciBnZXRzIGRlbGV0ZWQgZnJvbSB0aGUgY29uZmlnLgo+PiAodGhhdCdzIG9uZSByZWFz
b24gd2hlcmUgYSBzaW5nbGUgcmF0ZSBsaW1pdCBzZXR0aW5nIHdvdWxkIG1ha2Ugc2Vuc2UpCj4g
Cj4gWWVzLCB0aGlzIGNsZWFycyB0aGUgcmF0ZSBsaW1pdCBmb3IgdGhlIGRpcmVjdGlvbiBpbiB3
aGljaCBpdCBkb2VzIG5vdCBtYWtlIHNlbnNlIGF0IHRoZSBtb21lbnQuIAoKaSBkaXNhZ3JlZSB0
aGF0IHRoZSByZXZlcnNlIGRpcmVjdGlvbiBtYWtlcyBubyBzZW5zZSAob25seSBhIGxpdHRsZSA7
KSApCmkuZS4gcHVsbGluZyB0aGUgc25hcHNob3QgbGlzdCB3aWxsIGNvdW50IHRvIHRoZSByYXRl
LWluIGxpbWl0IEFGQUlVCmFuZCBzb21ldGltZXMgaXQgbWF5IG1ha2Ugc2Vuc2UgdG8gY29uZmln
dXJlIHRoYXQuLi4KCj4gSXNzdWUgd2l0aCAzIHBhcmFtZXRlcnMgKHJhdGUsIHJhdGUtaW4sIHJh
dGUtb3V0KSBpcyB3aGljaCBvbmUgdG8gc2hvdyBpbiB0aGUgc3luYyBqb2IgZWRpdCB3aW5kb3c/
IAo+IEFsbCBvZiB0aGVtLCB0aGUgbW9yZSBzdHJpbmdlbnQgb25lPyBJIHdvdWxkIHJhdGhlciBr
ZWVwIHRoZSBgcmF0ZS1pbi9vdXRgIGluIHRoZSBjb25maWcsIHNob3cgb25seSAKPiB0aGUgb25l
IG1ha2luZyBzZW5zZSBmb3IgdGhhdCBkaXJlY3Rpb24gYW5kIG1heWJlIGFsbG93IHNldHRpbmcg
aXQgdmlhIHRoZSBzdWdnZXN0ZWQgcmF0ZSAKPiBgcGFyYW1ldGVyYD8gQWx0aG91Z2ggSSBzZWUg
aW5jcmVhc2VkIGNvbXBsZXhpdHkgZm9yIHRoZSBhZGRpdGlvbmFsIGByYXRlYCBwYXJhbWV0ZXIg
YXQgbm90IG11Y2ggCj4gZ2Fpbi4uLiBzbyBhIGJpdCB0b3JuLgoKPiAKPj4KPj4+IMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIFBCUy5VdGlscy5kZWxldGVfaWZfZGVmYXVsdCh2YWx1ZXMsICdy
ZW1vdGUnKTsKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICh0eXBlb2YgdmFsdWVz
LmRlbGV0ZSA9PT0gJ3N0cmluZycpIHsKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgdmFsdWVzLmRlbGV0ZSA9IHZhbHVlcy5kZWxldGUuc3BsaXQoJywnKTsKPj4+IEBAIC0x
ODUsNyArMTk5LDcgQEAgRXh0LmRlZmluZSgnUEJTLndpbmRvdy5TeW5jSm9iRWRpdCcsIHsKPj4+
IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0sCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoCB7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB4dHlwZTogJ3BteEJhbmR3aWR0
aEZpZWxkJywKPj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG5hbWU6ICdyYXRlLWluJywKPj4+
ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG5hbWU6ICdyYXRlLWxpbWl0JywKPj4+IMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIGZpZWxkTGFiZWw6IGdldHRleHQoJ1JhdGUgTGltaXQnKSwKPj4+
IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGVtcHR5VGV4dDogZ2V0dGV4dCgnVW5saW1pdGVk
JyksCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdWJtaXRBdXRvU2NhbGVkU2l6ZVVu
aXQ6IHRydWUsCj4+PiBAQCAtMjIxLDcgKzIzNSw3IEBAIEV4dC5kZWZpbmUoJ1BCUy53aW5kb3cu
U3luY0pvYkVkaXQnLCB7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGxl
dCBtZSA9IHRoaXM7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGxldCBm
b3JtID0gbWUudXAoJ3Bic1N5bmNKb2JFZGl0Jyk7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgIGxldCBuc0ZpZWxkID0gZm9ybS5kb3duKCdmaWVsZFtuYW1lPXJlbW90ZS1u
c10nKTsKPj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbGV0IHJhdGVMaW1pdEZp
ZWxkID0gZm9ybS5kb3duKCdmaWVsZFtuYW1lPXJhdGUtaW5dJyk7Cj4+PiArwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIGxldCByYXRlTGltaXRGaWVsZCA9IGZvcm0uZG93bignZmllbGRb
bmFtZT1yYXRlLSBsaW1pdF0nKTsKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqAgbGV0IHJlbW90ZUZpZWxkID0gZm9ybS5kb3duKCdmaWVsZFtuYW1lPXJlbW90ZV0nKTsKPj4+
IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbGV0IHN0b3JlRmllbGQgPSBmb3Jt
LmRvd24oJ2ZpZWxkW25hbWU9cmVtb3RlLXN0b3JlXScpOwo+Pj4gQEAgLTI2Myw3ICsyNzcsNyBA
QCBFeHQuZGVmaW5lKCdQQlMud2luZG93LlN5bmNKb2JFZGl0Jywgewo+Pj4gwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBsZXQgbWUgPSB0aGlzOwo+Pj4gwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoCBsZXQgcmVtb3RlU3RvcmVGaWVsZCA9IG1lLnVwKCdwYnNTeW5j
Sm9iRWRpdCcpLmRvd24oJ2ZpZWxkW25hbWU9cmVtb3RlLXN0b3JlXScpOwo+Pj4gwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZW1vdGVTdG9yZUZpZWxkLnNldFJlbW90ZSh2YWx1
ZSk7Cj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGxldCByYXRlTGltaXRGaWVs
ZCA9IG1lLnVwKCdwYnNTeW5jSm9iRWRpdCcpLmRvd24oJ2ZpZWxkW25hbWU9cmF0ZS1pbl0nKTsK
Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbGV0IHJhdGVMaW1pdEZpZWxkID0g
bWUudXAoJ3Bic1N5bmNKb2JFZGl0JykuZG93bignZmllbGRbbmFtZT1yYXRlLWxpbWl0XScpOwo+
Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByYXRlTGltaXRGaWVsZC5zZXRE
aXNhYmxlZCghdmFsdWUpOwo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBp
ZiAoIXZhbHVlKSB7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqAgcmF0ZUxpbWl0RmllbGQuc2V0VmFsdWUobnVsbCk7Cj4+Cj4+Cj4+Cj4+IF9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IHBicy1kZXZlbCBtYWlsaW5n
IGxpc3QKPj4gcGJzLWRldmVsQGxpc3RzLnByb3htb3guY29tCj4+IGh0dHBzOi8vbGlzdHMucHJv
eG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3Bicy1kZXZlbAo+Pgo+Pgo+IAoKCgpf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpwYnMtZGV2ZWwg
bWFpbGluZyBsaXN0CnBicy1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQpodHRwczovL2xpc3RzLnBy
b3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wYnMtZGV2ZWwK