From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 5802B1FF178 for ; Mon, 15 Dec 2025 20:00:14 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id EF8DD1442C; Mon, 15 Dec 2025 20:00:58 +0100 (CET) Message-ID: <4d6331ff-aac6-40b0-9749-61c4f86bdd24@proxmox.com> Date: Mon, 15 Dec 2025 20:00:21 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: Samuel Rufinatscha To: =?UTF-8?Q?Fabian_Gr=C3=BCnbichler?= , pbs-devel@lists.proxmox.com References: <20251205132559.197434-1-s.rufinatscha@proxmox.com> <20251205132559.197434-2-s.rufinatscha@proxmox.com> <176536727121.112734.7971677008461802558@yuna.proxmox.com> <1cd8309f-b540-42a6-bfc2-f25a827ca6d3@proxmox.com> Content-Language: en-US In-Reply-To: X-SPAM-LEVEL: Spam detection results: 0 AWL -0.285 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 POISEN_SPAM_PILL 0.1 Meta: its spam POISEN_SPAM_PILL_1 0.1 random spam to be learned in bayes POISEN_SPAM_PILL_3 0.1 random spam to be learned in bayes 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 Subject: Re: [pbs-devel] [PATCH proxmox-backup 1/3] pbs-config: cache verified API token secrets X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Backup Server development discussion Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" T24gMTIvMTUvMjUgNDowNiBQTSwgU2FtdWVsIFJ1ZmluYXRzY2hhIHdyb3RlOgo+IE9uIDEyLzEw LzI1IDQ6MzUgUE0sIFNhbXVlbCBSdWZpbmF0c2NoYSB3cm90ZToKPj4gT24gMTIvMTAvMjUgMTI6 NDcgUE0sIEZhYmlhbiBHcsO8bmJpY2hsZXIgd3JvdGU6Cj4+PiBRdW90aW5nIFNhbXVlbCBSdWZp bmF0c2NoYSAoMjAyNS0xMi0wNSAxNDoyNTo1NCkKPj4+PiBDdXJyZW50bHksIGV2ZXJ5IHRva2Vu LWJhc2VkIEFQSSByZXF1ZXN0IHJlYWRzIHRoZSB0b2tlbi5zaGFkb3cgZmlsZSAKPj4+PiBhbmQK Pj4+PiBydW5zIHRoZSBleHBlbnNpdmUgcGFzc3dvcmQgaGFzaCB2ZXJpZmljYXRpb24gZm9yIHRo ZSBnaXZlbiB0b2tlbgo+Pj4+IHNlY3JldC4gVGhpcyBzaG93cyB1cCBhcyBhIGhvdHNwb3QgaW4g L3N0YXR1cyBwcm9maWxpbmcgKHNlZQo+Pj4+IGJ1ZyAjNjA0OSBbMV0pLgo+Pj4+Cj4+Pj4gVGhp cyBwYXRjaCBpbnRyb2R1Y2VzIGFuIGluLW1lbW9yeSBjYWNoZSBvZiBzdWNjZXNzZnVsbHkgdmVy aWZpZWQgdG9rZW4KPj4+PiBzZWNyZXRzLiBTdWJzZXF1ZW50IHJlcXVlc3RzIGZvciB0aGUgc2Ft ZSB0b2tlbitzZWNyZXQgY29tYmluYXRpb24gb25seQo+Pj4+IHBlcmZvcm0gYSBjb21wYXJpc29u IHVzaW5nIG9wZW5zc2w6Om1lbWNtcDo6ZXEgYW5kIGF2b2lkIHJlLXJ1bm5pbmcgdGhlCj4+Pj4g cGFzc3dvcmQgaGFzaC4gVGhlIGNhY2hlIGlzIHVwZGF0ZWQgd2hlbiBhIHRva2VuIHNlY3JldCBp cyBzZXQgYW5kCj4+Pj4gY2xlYXJlZCB3aGVuIGEgdG9rZW4gaXMgZGVsZXRlZC4gTm90ZSwgdGhp cyBkb2VzIE5PVCBpbmNsdWRlIG1hbnVhbAo+Pj4+IGNvbmZpZyBjaGFuZ2VzLCB3aGljaCB3aWxs IGJlIGNvdmVyZWQgaW4gYSBzdWJzZXF1ZW50IHBhdGNoLgo+Pj4+Cj4+Pj4gVGhpcyBwYXRjaCBw YXJ0bHkgZml4ZXMgYnVnICM2MDQ5IFsxXS4KPj4+Pgo+Pj4+IFsxXSBodHRwczovL2J1Z3ppbGxh LnByb3htb3guY29tL3Nob3dfYnVnLmNnaT9pZD03MDE3Cj4+Pj4KPj4+PiBTaWduZWQtb2ZmLWJ5 OiBTYW11ZWwgUnVmaW5hdHNjaGEgPHMucnVmaW5hdHNjaGFAcHJveG1veC5jb20+Cj4+Pj4gLS0t Cj4+Pj4gwqAgcGJzLWNvbmZpZy9zcmMvdG9rZW5fc2hhZG93LnJzIHwgNTggKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrIAo+Pj4+ICsrKy0KPj4+PiDCoCAxIGZpbGUgY2hhbmdlZCwgNTcg aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+Pj4+Cj4+Pj4gZGlmZiAtLWdpdCBhL3Bicy1j b25maWcvc3JjL3Rva2VuX3NoYWRvdy5ycyBiL3Bicy1jb25maWcvc3JjLyAKPj4+PiB0b2tlbl9z aGFkb3cucnMKPj4+PiBpbmRleCA2NDBmYWJiZi4uNDdhYTJmYzIgMTAwNjQ0Cj4+Pj4gLS0tIGEv cGJzLWNvbmZpZy9zcmMvdG9rZW5fc2hhZG93LnJzCj4+Pj4gKysrIGIvcGJzLWNvbmZpZy9zcmMv dG9rZW5fc2hhZG93LnJzCj4+Pj4gQEAgLTEsNiArMSw4IEBACj4+Pj4gwqAgdXNlIHN0ZDo6Y29s bGVjdGlvbnM6Okhhc2hNYXA7Cj4+Pj4gK3VzZSBzdGQ6OnN5bmM6OlJ3TG9jazsKPj4+PiDCoCB1 c2UgYW55aG93Ojp7YmFpbCwgZm9ybWF0X2VyciwgRXJyb3J9Owo+Pj4+ICt1c2Ugb25jZV9jZWxs OjpzeW5jOjpPbmNlQ2VsbDsKPj4+PiDCoCB1c2Ugc2VyZGU6OntEZXNlcmlhbGl6ZSwgU2VyaWFs aXplfTsKPj4+PiDCoCB1c2Ugc2VyZGVfanNvbjo6e2Zyb21fdmFsdWUsIFZhbHVlfTsKPj4+PiBA QCAtMTMsNiArMTUsMTMgQEAgdXNlIGNyYXRlOjp7b3Blbl9iYWNrdXBfbG9ja2ZpbGUsIEJhY2t1 cExvY2tHdWFyZH07Cj4+Pj4gwqAgY29uc3QgTE9DS19GSUxFOiAmc3RyID0gcGJzX2J1aWxkY2Zn Ojpjb25maWdkaXIhKCIvIAo+Pj4+IHRva2VuLnNoYWRvdy5sb2NrIik7Cj4+Pj4gwqAgY29uc3Qg Q09ORl9GSUxFOiAmc3RyID0gcGJzX2J1aWxkY2ZnOjpjb25maWdkaXIhKCIvdG9rZW4uc2hhZG93 Iik7Cj4+Pj4gKy8vLyBHbG9iYWwgaW4tbWVtb3J5IGNhY2hlIGZvciBzdWNjZXNzZnVsbHkgdmVy aWZpZWQgQVBJIHRva2VuIAo+Pj4+IHNlY3JldHMuCj4+Pj4gKy8vLyBUaGUgY2FjaGUgc3RvcmVz IHBsYWluIHRleHQgc2VjcmV0cyBmb3IgdG9rZW4gQXV0aGlkcyB0aGF0IGhhdmUgCj4+Pj4gYWxy ZWFkeSBiZWVuCj4+Pj4gKy8vLyB2ZXJpZmllZCBhZ2FpbnN0IHRoZSBoYXNoZWQgdmFsdWVzIGlu IGB0b2tlbi5zaGFkb3dgLiBUaGlzIAo+Pj4+IGFsbG93cyBmb3IgY2hlYXAKPj4+PiArLy8vIHN1 YnNlcXVlbnQgYXV0aGVudGljYXRpb25zIGZvciB0aGUgc2FtZSB0b2tlbitzZWNyZXQgCj4+Pj4g Y29tYmluYXRpb24sIGF2b2lkaW5nCj4+Pj4gKy8vLyByZWNvbXB1dGluZyB0aGUgcGFzc3dvcmQg aGFzaCBvbiBldmVyeSByZXF1ZXN0Lgo+Pj4+ICtzdGF0aWMgVE9LRU5fU0VDUkVUX0NBQ0hFOiBP bmNlQ2VsbDxSd0xvY2s8QXBpVG9rZW5TZWNyZXRDYWNoZT4+ID0gCj4+Pj4gT25jZUNlbGw6Om5l dygpOwo+Pj4+ICsKPj4+PiDCoCAjW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplKV0KPj4+ PiDCoCAjW3NlcmRlKHJlbmFtZV9hbGwgPSAia2ViYWItY2FzZSIpXQo+Pj4+IMKgIC8vLyBBcGlU b2tlbiBpZCAvIHNlY3JldCBwYWlyCj4+Pj4gQEAgLTU0LDkgKzYzLDI1IEBAIHB1YiBmbiB2ZXJp Znlfc2VjcmV0KHRva2VuaWQ6ICZBdXRoaWQsIHNlY3JldDogCj4+Pj4gJnN0cikgLT4gUmVzdWx0 PCgpLCBFcnJvcj4gewo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBiYWlsISgibm90IGFuIEFQSSB0 b2tlbiBJRCIpOwo+Pj4+IMKgwqDCoMKgwqAgfQo+Pj4+ICvCoMKgwqAgLy8gRmFzdCBwYXRoCj4+ Pj4gK8KgwqDCoCBpZiBsZXQgU29tZShjYWNoZWQpID0gCj4+Pj4gdG9rZW5fc2VjcmV0X2NhY2hl KCkucmVhZCgpLnVud3JhcCgpLnNlY3JldHMuZ2V0KHRva2VuaWQpIHsKPj4+Cj4+PiBkaWQgeW91 IGJlbmNobWFyayB0aGlzIHdpdGggYSBsb3Qgb2YgcGFyYWxsZWwgdG9rZW4gcmVxdWVzdHM/IGEg cGxhaW4gCj4+PiBSd0xvY2sKPj4+IGdpdmVzIG5vIGd1YXJhbnRlZXMgYXQgYWxsIHcuci50LiBv cmRlcmluZyBvciBmYWlybmVzcywgc28gYSBsb3Qgb2YgCj4+PiB0b2tlbi1iYXNlZAo+Pj4gcmVx dWVzdHMgY291bGQgZWZmZWN0aXZlbHkgcHJldmVudCB0b2tlbiByZW1vdmFsIEFGQUlDVCAob3Ig dmljZS12ZXJzYSwKPj4+IHNwYW1taW5nIHRva2VuIGNyZWF0aW9uIGNvdWxkIGxvY2sgb3V0IGFs bCB0b2tlbnM/KQo+Pj4KPj4+IHNpbmNlIHdlIGRvbid0IGFjdHVhbGx5IHJlcXVpcmUgdGhlIGNh Y2hlIGhlcmUgdG8gcHJvY2VlZCwgd2UgY291bGQgCj4+PiBhbHNvIG1ha2UgdGhpcyBhIHRyeV9y ZWFkCj4+PiBvciBhIHJlYWQgd2l0aCB0aW1lb3V0LCBhbmQgZmFsbGJhY2sgdG8gdGhlIHNsb3cg cGF0aCBpZiB0aGVyZSBpcyB0b28gCj4+PiBtdWNoCj4+PiBjb250ZW50aW9uPyBhbHRlcm5hdGl2 ZWx5LCBjb21wYXJpbmcgd2l0aCBwYXJraW5nX2xvdCB3b3VsZCBhbHNvIGJlCj4+PiBpbnRlcmVz dGluZywgc2luY2UgdGhhdCBpbXBsZW1lbnRhdGlvbiBkb2VzIGhhdmUgZmFpcm5lc3MgZ3VhcmFu dGVlcy4KPj4+Cj4+PiBub3RlIHRoYXQgdG9rZW4tYmFzZWQgcmVxdWVzdHMgYXJlIGJhc2ljYWxs eSBkb2FibGUgYnkgYW55b25lIGJlaW5nIAo+Pj4gYWJsZSB0bwo+Pj4gcmVhY2ggUEJTLCB3aGVy ZWFzIHRva2VuIGNyZWF0aW9uL2RlbGV0aW9uIGlzIGF2YWlsYWJsZSB0byBldmVyeSAKPj4+IGF1 dGhlbnRpY2FlZAo+Pj4gdXNlci4KPj4+Cj4+Cj4+IFRoYW5rcyBmb3IgdGhlIHJldmlldyBGYWJp YW4gYW5kIHRoZSB2YWx1YWJsZSBjb21tZW50cyEKPj4KPj4gSSBkaWQgbm90IGJlbmNobWFyayB0 aGUgUndMb2NrIGl0c2VsZiB1bmRlciBsb2FkLiBZb3VyIHBvaW50IGFib3V0Cj4+IGNvbnRlbnRp b24vZmFpcm5lc3MgZm9yIFJ3TG9jayBtYWtlcyBwZXJmZWN0IHNlbnNlLCBhbmQgd2Ugc2hvdWxk IAo+PiBjb25zaWRlciB0aGlzLiBTbyBmb3IgdjIsIEkgd2lsbCBpbnRlZ3JhdGUgdHJ5X3JlYWQo KSAvCj4+IHRyeV93cml0ZSgpIGFzIG1lbnRpb25lZCB0byBhdm9pZCBwb3NzaWJsZSBjb250ZW50 aW9uIC8gRG9TIGlzc3Vlcy4KPj4KPj4gSeKAmWxsIGFsc28gY29uc2lkZXIgcGFya2luZ19sb3Q6 OlJ3TG9jaywgdGhhbmtzIGZvciB0aGUgaGludCEKPj4KPiAKPiAKPiBJIGJlbmNobWFya2VkIHRo ZSAid3JpdGVyIHVuZGVyIGhlYXZ5IHBhcmFsbGVsIHJlYWRlcnMiIHNjZW5hcmlvIGJ5Cj4gcnVu bmluZyBhIDY0LXBhcmFsbGVsIHRva2VuLWF1dGggZmxvb2QgYWdhaW5zdAo+IC9hZG1pbi9kYXRh c3RvcmUvZHMwMDAxL3N0YXR1cz92ZXJib3NlPTAgKOKJiCA0NC00OGsgc3VjY2Vzc2Z1bAo+IHJl cXVlc3RzIHRvdGFsKSB3aGlsZSBleGVjdXRpbmcgNTAgdG9rZW4gY3JlYXRlICsgNTAgdG9rZW4g ZGVsZXRlCj4gb3BlcmF0aW9ucy4KPiAKPiBXaXRoIHRoZSBzdWdnZXN0ZWQgYmVzdC1lZmZvcnQg YXBwcm9hY2ggKGNhY2hlIGxvb2t1cHMvaW5zZXJ0cyB2aWEKPiB0cnlfcmVhZC90cnlfd3JpdGUp IEkgc2F3IHRoZSBmb2xsb3dpbmcgZTJlIEFQSSBsYXRlbmNpZXM6Cj4gCj4gZGVsZXRlOiBwOTUg fjM5bXMsIG1heCB+NDRtcwo+IGNyZWF0ZTogcDk1IH41MG1zLCBtYXggfjU2bXMKPiAKPiBJIGFs c28gY29tcGFyZWQgYWdhaW5zdCBwYXJraW5nX2xvdDo6UndMb2NrIHVuZGVyIHRoZSBzYW1lIHNl dHVwLAo+IHJlc3VsdHMgd2VyZSBpbiB0aGUgc2FtZSByYW5nZSAoZGVsZXRlIHA5NSB+MznigJM0 M21zLCBtYXggfjQz4oCTNjRtcykKPiBzbyBJIGRpZG7igJl0IHNlZSBhIGNsZWFyIGJlbmVmaXQg dGhlcmUgZm9yIHRoaXMgd29ya2xvYWQuCj4gCj4gRm9yIHYyIEkgd2lsbCBrZWVwIHN0ZDo6c3lu Yzo6UndMb2NrIHdpdGggcmVhZC9pbnNlcnQgYmVzdC1lZmZvcnQsIHdoaWxlCj4gZGVsZXRlL3Jl bW92YWwgYmxvY2tpbmcuCj4gCj4KCkZhYmlhbiwKCm9uZSBjbGFyaWZpY2F0aW9uL2ZvbGxvdy11 cDogdGhlIGNvbXBhcmlzb24gYWdhaW5zdCBwYXJraW5nX2xvdDo6UndMb2NrCndhcyBmb2N1c2Vk IG9uIGVuZC10by1lbmQgbGF0ZW5jeSwgYW5kIHVuZGVyIHRoZSBiZW5jaG1hcmtlZAp3b3JrbG9h ZCB3ZSBkaWRu4oCZdCBvYnNlcnZlIHN0YXJ2YXRpb24gZWZmZWN0cy4gU3RpbGwsIHN0ZDo6c3lu Yzo6UndMb2NrCmRvZXMgbm90IHByb3ZpZGUgb3JkZXJpbmcgb3IgZmFpcm5lc3MgZ3VhcmFudGVl cywgc28gdW5kZXIgc3VzdGFpbmVkCnRva2VuLWF1dGggcmVhZCBsb2FkIGNhY2hlIGludmFsaWRh dGlvbiBjb3VsZCB0aGVvcmV0aWNhbGx5IGJlIGRlbGF5ZWQuCgpHaXZlbiB0aGF0LCBJIHRoaW5r IHN3aXRjaGluZyB0byBwYXJraW5nX2xvdDo6UndMb2NrIGZvciB2MiB0byBnZXQgY2xlYXIKZmFp cm5lc3Mgc2VtYW50aWNzLCB3aGlsZSBrZWVwaW5nIHRoZSB0cnlfcmVhZC90cnlfaW5zZXJ0IGFw cHJvYWNoLCBpcwp0aGUgYmV0dGVyIHNvbHV0aW9uIGhlcmUuCgo+Pj4+ICvCoMKgwqDCoMKgwqDC oCAvLyBDb21wYXJlIGNhY2hlZCBzZWNyZXQgd2l0aCBwcm92aWRlZCBvbmUgdXNpbmcgY29uc3Rh bnQgCj4+Pj4gdGltZSBjb21wYXJpc29uCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGlmIG9wZW5zc2w6 Om1lbWNtcDo6ZXEoY2FjaGVkLmFzX2J5dGVzKCksIHNlY3JldC5hc19ieXRlcygpKSB7Cj4+Pj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy8gQWxyZWFkeSB2ZXJpZmllZCBiZWZvcmUKPj4+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gT2soKCkpOwo+Pj4+ICvCoMKgwqDCoMKgwqDC oCB9Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgIC8vIEZhbGwgdGhyb3VnaCB0byBzbG93IHBhdGggaWYg c2VjcmV0IGRvZXNuJ3QgbWF0Y2ggY2FjaGVkIAo+Pj4+IG9uZQo+Pj4+ICvCoMKgwqAgfQo+Pj4K Pj4+IHRoaXMgY291bGQgYWxzbyBiZSBhIGhlbHBlciwgbGlrZSB0aGUgcmVzdC4gdGhlbiBpdCB3 b3VsZCBjb25zdW1lIChhIAo+Pj4gcmVmZXJlbmNlCj4+PiB0bykgdGhlIHVzZXItcHJvdmlkZWQg c2VjcmV0IHZhbHVlLCBpbnN0ZWFkIG9mIGdpdmluZyBhY2Nlc3MgdG8gYWxsIAo+Pj4gY2FjaGVk Cj4+PiBvbmVzLiBkb2Vzbid0IG1ha2UgYSByZWFsIGRpZmZlcmVuY2Ugbm93IG90aGVyIHRoYW4g Y29uc2lzdGVuY2UsIGJ1dCAKPj4+IHRoZSBjYWNoZQo+Pj4gaXMgKG1vcmUpIGNsZWFubHkgZW5j YXBzdWxhdGVkIHRoZW4uCj4+Pgo+Pj4+ICsKPj4+PiArwqDCoMKgIC8vIFNsb3cgcGF0aDogcmVh ZCBmaWxlICsgdmVyaWZ5IGhhc2gKPj4+PiDCoMKgwqDCoMKgIGxldCBkYXRhID0gcmVhZF9maWxl KCk/Owo+Pj4+IMKgwqDCoMKgwqAgbWF0Y2ggZGF0YS5nZXQodG9rZW5pZCkgewo+Pj4+IC3CoMKg wqDCoMKgwqDCoCBTb21lKGhhc2hlZF9zZWNyZXQpID0+IAo+Pj4+IHByb3htb3hfc3lzOjpjcnlw dDo6dmVyaWZ5X2NyeXB0X3B3KHNlY3JldCwgaGFzaGVkX3NlY3JldCksCj4+Pj4gK8KgwqDCoMKg wqDCoMKgIFNvbWUoaGFzaGVkX3NlY3JldCkgPT4gewo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHByb3htb3hfc3lzOjpjcnlwdDo6dmVyaWZ5X2NyeXB0X3B3KHNlY3JldCwgCj4+Pj4gaGFz aGVkX3NlY3JldCk/Owo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vIENhY2hlIHRoZSBw bGFpbiBzZWNyZXQgZm9yIGZ1dHVyZSByZXF1ZXN0cwo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGNhY2hlX2luc2VydF9zZWNyZXQodG9rZW5pZC5jbG9uZSgpLCBzZWNyZXQudG9fb3duZWQo KSk7Cj4+Pgo+Pj4gc2FtZSBhcHBsaWVzIGhlcmUgLSBzdG9yaW5nIHRoZSB2YWx1ZSBpbiB0aGUg Y2FjaGUgaXMgb3B0aW9uYWwgKGFuZCAKPj4+IGdvb2QgaWYgaXQKPj4+IHdvcmtzKSwgYnV0IHdl IGRvbid0IHdhbnQgdG8gc3RhbGwgZm9yZXZlciB3YWl0aW5nIGZvciB0aGUgY2FjaGUgCj4+PiBp bnNlcnRpb24gdG8KPj4+IGdvIHRocm91Z2guLgo+Pj4KPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBPaygoKSkKPj4+PiArwqDCoMKgwqDCoMKgwqAgfQo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDC oCBOb25lID0+IGJhaWwhKCJpbnZhbGlkIEFQSSB0b2tlbiIpLAo+Pj4+IMKgwqDCoMKgwqAgfQo+ Pj4+IMKgIH0KPj4+PiBAQCAtODIsNiArMTA3LDggQEAgZm4gc2V0X3NlY3JldCh0b2tlbmlkOiAm QXV0aGlkLCBzZWNyZXQ6ICZzdHIpIC0+IAo+Pj4+IFJlc3VsdDwoKSwgRXJyb3I+IHsKPj4+PiDC oMKgwqDCoMKgIGRhdGEuaW5zZXJ0KHRva2VuaWQuY2xvbmUoKSwgaGFzaGVkX3NlY3JldCk7Cj4+ Pj4gwqDCoMKgwqDCoCB3cml0ZV9maWxlKGRhdGEpPzsKPj4+PiArwqDCoMKgIGNhY2hlX2luc2Vy dF9zZWNyZXQodG9rZW5pZC5jbG9uZSgpLCBzZWNyZXQudG9fb3duZWQoKSk7Cj4+Pgo+Pj4gdGhp cwo+Pj4KPj4+PiArCj4+Pj4gwqDCoMKgwqDCoCBPaygoKSkKPj4+PiDCoCB9Cj4+Pj4gQEAgLTk3 LDUgKzEyNCwzNCBAQCBwdWIgZm4gZGVsZXRlX3NlY3JldCh0b2tlbmlkOiAmQXV0aGlkKSAtPiAK Pj4+PiBSZXN1bHQ8KCksIEVycm9yPiB7Cj4+Pj4gwqDCoMKgwqDCoCBkYXRhLnJlbW92ZSh0b2tl bmlkKTsKPj4+PiDCoMKgwqDCoMKgIHdyaXRlX2ZpbGUoZGF0YSk/Owo+Pj4+ICvCoMKgwqAgY2Fj aGVfcmVtb3ZlX3NlY3JldCh0b2tlbmlkKTsKPj4+Cj4+PiBhbmQgdGhpcyBuZWVkIHRvIGJsb2Nr IG9mIGNvdXJzZSBhbmQgY2FuJ3QgYmUgc2tpcHBlZCwgYmVjYXVzZSAKPj4+IG90aGVyd2lzZSB0 aGUKPj4+IHJlYWQgYWJvdmUgbWlnaHQgb3BlcmF0ZSBvbiB3cm9uZyBkYXRhLi4KPj4+Cj4+Pj4g Kwo+Pj4+IMKgwqDCoMKgwqAgT2soKCkpCj4+Pj4gwqAgfQo+Pj4+ICsKPj4+PiArc3RydWN0IEFw aVRva2VuU2VjcmV0Q2FjaGUgewo+Pj4+ICvCoMKgwqAgLy8vIEtleXMgYXJlIHRva2VuIEF1dGhp ZHMsIHZhbHVlcyBhcmUgdGhlIGNvcnJlc3BvbmRpbmcgcGxhaW4gCj4+Pj4gdGV4dCBzZWNyZXRz Lgo+Pj4+ICvCoMKgwqAgLy8vIEVudHJpZXMgYXJlIGFkZGVkIGFmdGVyIGEgc3VjY2Vzc2Z1bCBv bi1kaXNrIHZlcmlmaWNhdGlvbiBpbgo+Pj4+ICvCoMKgwqAgLy8vIGB2ZXJpZnlfc2VjcmV0YCBv ciB3aGVuIGEgbmV3IHRva2VuIHNlY3JldCBpcyBnZW5lcmF0ZWQgYnkKPj4+PiArwqDCoMKgIC8v LyBgZ2VuZXJhdGVfYW5kX3NldF9zZWNyZXRgLiBVc2VkIHRvIGF2b2lkIHJlcGVhdGVkCj4+Pj4g K8KgwqDCoCAvLy8gcGFzc3dvcmQtaGFzaCBjb21wdXRhdGlvbiBvbiBzdWJzZXF1ZW50IGF1dGhl bnRpY2F0aW9ucy4KPj4+PiArwqDCoMKgIHNlY3JldHM6IEhhc2hNYXA8QXV0aGlkLCBTdHJpbmc+ LAo+Pj4+ICt9Cj4+Pj4gKwo+Pj4+ICtmbiB0b2tlbl9zZWNyZXRfY2FjaGUoKSAtPiAmJ3N0YXRp YyBSd0xvY2s8QXBpVG9rZW5TZWNyZXRDYWNoZT4gewo+Pj4+ICvCoMKgwqAgVE9LRU5fU0VDUkVU X0NBQ0hFLmdldF9vcl9pbml0KHx8IHsKPj4+PiArwqDCoMKgwqDCoMKgwqAgUndMb2NrOjpuZXco QXBpVG9rZW5TZWNyZXRDYWNoZSB7Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2VjcmV0 czogSGFzaE1hcDo6bmV3KCksCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIH0pCj4+Pj4gK8KgwqDCoCB9 KQo+Pj4+ICt9Cj4+Pj4gKwo+Pj4+ICtmbiBjYWNoZV9pbnNlcnRfc2VjcmV0KHRva2VuaWQ6IEF1 dGhpZCwgc2VjcmV0OiBTdHJpbmcpIHsKPj4+PiArwqDCoMKgIGxldCBtdXQgY2FjaGUgPSB0b2tl bl9zZWNyZXRfY2FjaGUoKS53cml0ZSgpLnVud3JhcCgpOwo+Pj4+ICvCoMKgwqAgY2FjaGUuc2Vj cmV0cy5pbnNlcnQodG9rZW5pZCwgc2VjcmV0KTsKPj4+PiArfQo+Pj4+ICsKPj4+PiArZm4gY2Fj aGVfcmVtb3ZlX3NlY3JldCh0b2tlbmlkOiAmQXV0aGlkKSB7Cj4+Pj4gK8KgwqDCoCBsZXQgbXV0 IGNhY2hlID0gdG9rZW5fc2VjcmV0X2NhY2hlKCkud3JpdGUoKS51bndyYXAoKTsKPj4+PiArwqDC oMKgIGNhY2hlLnNlY3JldHMucmVtb3ZlKHRva2VuaWQpOwo+Pj4+ICt9Cj4+Pj4gLS0gCj4+Pj4g Mi40Ny4zCj4+Pj4KPj4+Pgo+Pj4+Cj4+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KPj4+PiBwYnMtZGV2ZWwgbWFpbGluZyBsaXN0Cj4+Pj4gcGJzLWRl dmVsQGxpc3RzLnByb3htb3guY29tCj4+Pj4gaHR0cHM6Ly9saXN0cy5wcm94bW94LmNvbS9jZ2kt YmluL21haWxtYW4vbGlzdGluZm8vcGJzLWRldmVsCj4+Pj4KPj4+Pgo+Pgo+Pgo+Pgo+PiBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBwYnMtZGV2ZWwg bWFpbGluZyBsaXN0Cj4+IHBicy1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQo+PiBodHRwczovL2xp c3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wYnMtZGV2ZWwKPiAKPiAK PiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IHBi cy1kZXZlbCBtYWlsaW5nIGxpc3QKPiBwYnMtZGV2ZWxAbGlzdHMucHJveG1veC5jb20KPiBodHRw czovL2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wYnMtZGV2ZWwK CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KcGJzLWRl dmVsIG1haWxpbmcgbGlzdApwYnMtZGV2ZWxAbGlzdHMucHJveG1veC5jb20KaHR0cHM6Ly9saXN0 cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcGJzLWRldmVsCg==