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 E305A1FF164 for ; Fri, 28 Feb 2025 09:19:29 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 23C517D5C; Fri, 28 Feb 2025 09:19:28 +0100 (CET) Message-ID: <2eba7340-531c-40a9-a470-386aa6b2aad3@proxmox.com> Date: Fri, 28 Feb 2025 09:18:53 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: Christian Ebner , Proxmox Backup Server development discussion References: <20250116064543.74619-1-h.laimer@proxmox.com> <20250116064543.74619-4-h.laimer@proxmox.com> <1235fc69-3d69-4a16-a273-a9270a6a3afb@proxmox.com> Content-Language: en-US From: Hannes Laimer In-Reply-To: <1235fc69-3d69-4a16-a273-a9270a6a3afb@proxmox.com> X-SPAM-LEVEL: Spam detection results: 0 AWL 0.026 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. [job.store, datastore.name, datastore.rs, sync.rs] Subject: Re: [pbs-devel] [PATCH proxmox-backup 3/7] api: admin: run configured sync jobs when a datastore is mounted 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" CgpPbiAyLzQvMjUgMTU6MzMsIENocmlzdGlhbiBFYm5lciB3cm90ZToKPiBUaGlzIHBhdGNoIG5l ZWRzIHRvIGJlIHJlYmFzZWQgb24gY3VycmVudCBtYXN0ZXIuCj4gCj4gSGlnaCBsZXZlbCBjb21t ZW50Ogo+IE1peGluZyB0aGUgbW91bnQgYXBpIGhhbmRsZXIgd2l0aCB0aGUgZXhlY3V0aW9uIGxv Z2ljIGZvciB0aGUgc3luYyBqb2JzIAo+IGlzIG5vdCB0aGUgYmVzdCBhcHByb2FjaCBoZXJlIEkg dGhpbmsuIFRoaXMgbWl4ZXMgdW5yZWxhdGVkIGNvZGUgYW5kIAo+IG1ha2VzIGl0IGhhcmRlciB0 byBmdXJ0aGVyIGV4dGVuZMKgIHRoaXMgdG8gZS5nLiBhbHNvIHJ1biB2ZXJpZnksIHBydW5lIAo+ IG9yIGdhcmJhZ2UgY29sbGVjdGlvbiBpbiB0aGUgZnV0dXJlLgo+IAoKVGhlIGVuZHBvaW50IHN0 YXJ0cyB0aGUgdGFzayB0aGF0IGRvZXMgdGhlIG1vdW50aW5nLCBhbmQgaXQgc3RhcnRzIHRoZQp0 YXNrcyB0aGF0IG1hbmFnZXMgcG9zc2libGUgc3luYyBqb2JzLiBJIGRvbid0IHRoaW5rIHRoaXMg cmVhbGx5IGRvZXMKYW55dGhpbmcgdG8gdGhlIGxvZ2ljIG9mIHRoZSBzeW5jIGpvYiBpdHNlbGYu IFN1cmUsIHRoaXMKInJ1biB0aGVzZSBqb2JzIGluIHNlcXVlbmNlIiB3b3VsZCBtYWtlIHNlbnNl LCBidXQgY3VycmVudGx5IHdlIGNhbid0IGRvCnRoYXQsIHdlIGRvbid0IGhhdmUgYW4gaW50ZXJm YWNlIGZvciBqb2JzLiBOb3QgZXZlbiBqb2ItaWRzIGFyZSB1bmlxdWUKYWNyb3NzIGRpZmZlcmVu dCBqb2IgdHlwZXMuIEkgYW0gbm90IHN1cmUgd2VhdGhlciB0aGVyZSB3b3VsZCBiZSBhIGxvdApv ZiB2YWx1ZSBpbiB0cnlpbmcgdG8gaGF2ZSBhIG1vcmUgYWJzdHJhY3Qgam9iIHRoaW5ncy4gVGhl IG9ubHkgdGhpbmcKSSBjb3VsZCB0aGluayBvZiBpcyBqb2JzIHRyaWdnZXJpbmcgZWFjaCBvdGhl ci4gQnV0IEkgZmVlbCBsaWtlIHRoYXQKbWlnaHQgYmUgb3V0IG9mIHNjb3BlIGZvciB0aGlzIGhl cmUuCgoKPiBKdXN0IGFuIGlkZWE6IE1heWJlIGl0IHdvdWxkIGJlIHBvc3NpYmxlIHRvIGxldCB0 aGUgbW91bnQgd29ya2VyIHRhc2sgCj4gc2lnbmFsIHRoZSBtb3VudCBldmVudCB2aWEgZS5nLiBh IHN0ZDo6c3luYzo6bXBzYzo6Y2hhbm5lbCgpIG9yIHRoZSAKPiBjb21tYW5kIHNvY2tldCAoYWxy ZWFkeSB1c2VkIHRvIHJlcXVlc3QgZGF0YXN0b3JlIGNhY2hlIHVwZGF0ZXMgb24gCj4gdW5tb3Vu dCkgdG8gc2NoZWR1bGUgYSBtYW5hZ2luZyB0YXNrIGluIHRoZSBwcm94bW94LWJhY2t1cC1wcm94 eT8KPiAKClRoaXMgaXMgYSBwcml2aWxlZ2VkIGVuZHBvaW50LCBpdCBydW5zIG9uIHRoZSBhcGkg cHJvY2Vzcywgc28gd2UKY2FuJ3QgcmVhbGx5IHVzZSBjaGFubmVscyBoZXJlLiBBbmQgaXQgZG9u J3QgdGhpbmsgdGhlIGNvbW1hbmQgc29ja2V0CmlzIHRoZSByaWdodCB0b29sIGZvciB0aGlzLCBv bmUgcmVhc29uIGJlaW5nIGl0IGlzIG1vcmUgb2YgYSBoaXQgb3IgbWlzcwoodGVjaG5pY2FsbHkp IHdoaWNoIGlzIG5vdCByZWFsbHkgd2hhdCB3ZSB3YW50IGhlcmUuIEFsc28gaGF2aW5nIHRoZSBh cGkKcHJvY2VzcyBoYW5kbGUgdGhpcyBpcyBJTUhPIG5vdCB3aGF0IHdlIHdhbnQuCgoKPiBmdXJ0 aGVyIGNvbW1lbnRzIGlubGluZS4KPiAKPiBPbiAxLzE2LzI1IDA3OjQ1LCBIYW5uZXMgTGFpbWVy IHdyb3RlOgo+PiBXaGVuIGEgZGF0YXN0b3JlIGlzIG1vdW50ZWQsIHNwYXduIGEgbmV3IHRhc2sg dG8gcnVuIGFsbCBzeW5jIGpvYnMKPj4gbWFya2VkIHdpdGggYHJ1bi1vbi1tb3VudGAuIFRoZXNl IGpvYnMgcnVuIHNlcXVlbnRpYWxseSBhbmQgaW5jbHVkZQo+PiBhbnkgam9iIGZvciB3aGljaCB0 aGUgbW91bnRlZCBkYXRhc3RvcmUgaXM6Cj4+Cj4+IC0gVGhlIHNvdXJjZSBvciB0YXJnZXQgaW4g YSBsb2NhbCBwdXNoL3B1bGwgam9iCj4+IC0gVGhlIHNvdXJjZSBpbiBhIHB1c2ggam9iIHRvIGEg cmVtb3RlIGRhdGFzdG9yZQo+PiAtIFRoZSB0YXJnZXQgaW4gYSBwdWxsIGpvYiBmcm9tIGEgcmVt b3RlIGRhdGFzdG9yZQo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBIYW5uZXMgTGFpbWVyIDxoLmxhaW1l ckBwcm94bW94LmNvbT4KPj4gLS0tCj4+IMKgIHNyYy9hcGkyL2FkbWluL2RhdGFzdG9yZS5ycyB8 IDkwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0KPj4gwqAgc3JjL2FwaTIv YWRtaW4vc3luYy5yc8KgwqDCoMKgwqAgfMKgIDIgKy0KPj4gwqAgc3JjL3NlcnZlci9zeW5jLnJz wqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA3ICstLQo+PiDCoCAzIGZpbGVzIGNoYW5nZWQsIDkwIGlu c2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9zcmMvYXBpMi9h ZG1pbi9kYXRhc3RvcmUucnMgYi9zcmMvYXBpMi9hZG1pbi9kYXRhc3RvcmUucnMKPj4gaW5kZXgg ZjVkODBkNjEwLi4yMWI1ODM5MWQgMTAwNjQ0Cj4+IC0tLSBhL3NyYy9hcGkyL2FkbWluL2RhdGFz dG9yZS5ycwo+PiArKysgYi9zcmMvYXBpMi9hZG1pbi9kYXRhc3RvcmUucnMKPj4gQEAgLTQxLDgg KzQxLDggQEAgdXNlIHBic19hcGlfdHlwZXM6OnsKPj4gwqDCoMKgwqDCoCBEYXRhU3RvcmVDb25m aWcsIERhdGFTdG9yZUxpc3RJdGVtLCBEYXRhU3RvcmVNb3VudFN0YXR1cywgCj4+IERhdGFTdG9y ZVN0YXR1cywKPj4gwqDCoMKgwqDCoCBHYXJiYWdlQ29sbGVjdGlvbkpvYlN0YXR1cywgR3JvdXBM aXN0SXRlbSwgSm9iU2NoZWR1bGVTdGF0dXMsIAo+PiBLZWVwT3B0aW9ucywgTWFpbnRlbmFuY2VN b2RlLAo+PiDCoMKgwqDCoMKgIE1haW50ZW5hbmNlVHlwZSwgT3BlcmF0aW9uLCBQcnVuZUpvYk9w dGlvbnMsIFNuYXBzaG90TGlzdEl0ZW0sIAo+PiBTbmFwc2hvdFZlcmlmeVN0YXRlLAo+PiAtwqDC oMKgIEJBQ0tVUF9BUkNISVZFX05BTUVfU0NIRU1BLCBCQUNLVVBfSURfU0NIRU1BLCAKPj4gQkFD S1VQX05BTUVTUEFDRV9TQ0hFTUEsIEJBQ0tVUF9USU1FX1NDSEVNQSwKPj4gLcKgwqDCoCBCQUNL VVBfVFlQRV9TQ0hFTUEsIENBVEFMT0dfTkFNRSwgQ0xJRU5UX0xPR19CTE9CX05BTUUsIAo+PiBE QVRBU1RPUkVfU0NIRU1BLAo+PiArwqDCoMKgIFN5bmNKb2JDb25maWcsIEJBQ0tVUF9BUkNISVZF X05BTUVfU0NIRU1BLCBCQUNLVVBfSURfU0NIRU1BLCAKPj4gQkFDS1VQX05BTUVTUEFDRV9TQ0hF TUEsCj4+ICvCoMKgwqAgQkFDS1VQX1RJTUVfU0NIRU1BLCBCQUNLVVBfVFlQRV9TQ0hFTUEsIENB VEFMT0dfTkFNRSwgCj4+IENMSUVOVF9MT0dfQkxPQl9OQU1FLCBEQVRBU1RPUkVfU0NIRU1BLAo+ PiDCoMKgwqDCoMKgIElHTk9SRV9WRVJJRklFRF9CQUNLVVBTX1NDSEVNQSwgTUFOSUZFU1RfQkxP Ql9OQU1FLCAKPj4gTUFYX05BTUVTUEFDRV9ERVBUSCwgTlNfTUFYX0RFUFRIX1NDSEVNQSwKPj4g wqDCoMKgwqDCoCBQUklWX0RBVEFTVE9SRV9BVURJVCwgUFJJVl9EQVRBU1RPUkVfQkFDS1VQLCAK Pj4gUFJJVl9EQVRBU1RPUkVfTU9ESUZZLCBQUklWX0RBVEFTVE9SRV9QUlVORSwKPj4gwqDCoMKg wqDCoCBQUklWX0RBVEFTVE9SRV9SRUFELCBQUklWX0RBVEFTVE9SRV9WRVJJRlksIFBSSVZfU1lT X01PRElGWSwgCj4+IFVQSUQsIFVQSURfU0NIRU1BLAo+PiBAQCAtMjUwMCw2ICsyNTAwLDUxIEBA IHB1YiBmbiBkb19tb3VudF9kZXZpY2UoZGF0YXN0b3JlOiAKPj4gRGF0YVN0b3JlQ29uZmlnKSAt PiBSZXN1bHQ8KCksIEVycm9yPiB7Cj4+IMKgwqDCoMKgwqAgT2soKCkpCj4+IMKgIH0KPj4gK2Fz eW5jIGZuIGRvX3N5bmNfam9icygKPiAKPiBuaXQ6IHRoaXMgaGVscGVyIGZ1bmN0aW9uIG1ha2Vz IG1vcmUgc2Vuc2UgdG8gYmUgcGxhY2VkIGludG8gYHNyYy9hcGkyLyAKPiBhZG1pbi9zeW5jLnJz YCBJIHdvdWxkIHNheSwgYXMgaXQgcHVyZWx5IGhhbmRsZXMgZXhlY3V0aW9uIG9mIHN5bmMgam9i cy4KPiAKPj4gK8KgwqDCoCBqb2JzX3RvX3J1bjogVmVjPFN5bmNKb2JDb25maWc+LAo+PiArwqDC oMKgIHdvcmtlcjogQXJjPFdvcmtlclRhc2s+LAo+PiArKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7 Cj4+ICvCoMKgwqAgbGV0IGNvdW50ID0gam9ic190b19ydW4ubGVuKCk7Cj4+ICvCoMKgwqAgaW5m byEoCj4+ICvCoMKgwqDCoMKgwqDCoCAid2lsbCBydW4ge30gc3luYyBqb2JzOiB7fSIsCj4+ICvC oMKgwqDCoMKgwqDCoCBjb3VudCwKPiAKPiBuaXQ6IHRoaXMgdmFyaWFibGUgY2FuIGJlIGluLWxp bmVkIGludG8gdGhlIGZvcm1hdCBzdHJpbmcuCj4gCj4+ICvCoMKgwqDCoMKgwqDCoCBqb2JzX3Rv X3J1bgo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAuaXRlcigpCj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIC5tYXAofGp8IGouaWQuY2xvbmUoKSkKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqAgLmNvbGxlY3Q6OjxWZWM8U3RyaW5nPj4oKQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAu am9pbigiLCAiKQo+IAo+IG5pdDogbm90IHN1cmUgaWYgaXQgaXMgcmVxdWlyZWQgdG8gbGlzdCBh bGwgc3luYyBqb2JzIGEtcHJpb3JpLCAKPiBlc3BlY2lhbGx5IHNpbmNlIHRoYXQgbGluZSBtaWdo dCBnZXQgcmF0aGVyIGxvbmcgaWYgbWFueSBzeW5jIGpvYnMgYXJlIAo+IHRvIGJlIGV4ZWN1dGVk PyBBbHNvLCB0aGF0IHdvdWxkIGF2b2lkIHRoZSBkb3VibGUgaXRlcmF0aW9uIGFuZCBpZCBjbG9u aW5nLgo+IAo+PiArwqDCoMKgICk7Cj4+ICsKPj4gK8KgwqDCoCBmb3IgKGksIGpvYl9jb25maWcp IGluIGpvYnNfdG9fcnVuLmludG9faXRlcigpLmVudW1lcmF0ZSgpIHsKPj4gK8KgwqDCoMKgwqDC oMKgIGlmIHdvcmtlci5hYm9ydF9yZXF1ZXN0ZWQoKSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGJhaWwhKCJhYm9ydGVkIGR1ZSB0byB1c2VyIHJlcXVlc3QiKTsKPj4gK8KgwqDCoMKgwqDC oMKgIH0KPj4gK8KgwqDCoMKgwqDCoMKgIGxldCBqb2JfaWQgPSBqb2JfY29uZmlnLmlkLmNsb25l KCk7Cj4+ICvCoMKgwqDCoMKgwqDCoCBsZXQgT2soam9iKSA9IEpvYjo6bmV3KCJzeW5jam9iIiwg JmpvYl9pZCkgZWxzZSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnRpbnVlOwo+PiAr wqDCoMKgwqDCoMKgwqAgfTsKPj4gK8KgwqDCoMKgwqDCoMKgIGxldCBhdXRoX2lkID0gQXV0aGlk Ojpyb290X2F1dGhfaWQoKS5jbG9uZSgpOwo+PiArwqDCoMKgwqDCoMKgwqAgaW5mbyEoIlt7fS97 Y291bnR9XSBzdGFydGluZyAne2pvYl9pZH0nLi4uIiwgaSArIDEpOwo+PiArwqDCoMKgwqDCoMKg wqAgbWF0Y2ggY3JhdGU6OnNlcnZlcjo6ZG9fc3luY19qb2IoCj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGpvYiwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgam9iX2NvbmZpZywKPj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqAgJmF1dGhfaWQsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IFNvbWUoIm1vdW50Ii50b19zdHJpbmcoKSksCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZh bHNlLAo+PiArwqDCoMKgwqDCoMKgwqAgKSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIE9r KChfdXBpZCwgaGFuZGxlKSkgPT4gewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHRva2lvOjpzZWxlY3QhIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHN5bmNfZG9uZSA9IGhhbmRsZS5mdXNlKCkgPT4gaWYgbGV0IEVycihlcnIpID0gCj4+IHN5 bmNfZG9uZSB7IHdhcm4hKCJjb3VsZCBub3Qgd2FpdCBmb3Igam9iIHRvIGZpbmlzaDoge2Vycn0i KTsgfSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9hYm9ydCA9 IHdvcmtlci5hYm9ydF9mdXR1cmUoKSA9PiBiYWlsISgiYWJvcnRlZCAKPj4gZHVlIHRvIHVzZXIg cmVxdWVzdCIpLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH07Cj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgRXJyKGVycikg PT4gd2FybiEoInVuYWJsZSB0byBzdGFydCBzeW5jIGpvYiB7am9iX2lkfSAtIAo+PiB7ZXJyfSIp LAo+PiArwqDCoMKgwqDCoMKgwqAgfQo+PiArwqDCoMKgIH0KPj4gKwo+PiArwqDCoMKgIE9rKCgp KQo+PiArfQo+PiArCj4+IMKgICNbYXBpKAo+PiDCoMKgwqDCoMKgIHByb3RlY3RlZDogdHJ1ZSwK Pj4gwqDCoMKgwqDCoCBpbnB1dDogewo+PiBAQCAtMjUzMSwxMiArMjU3Niw0NyBAQCBwdWIgZm4g bW91bnQoc3RvcmU6IFN0cmluZywgcnBjZW52OiAmbXV0IGR5biAKPj4gUnBjRW52aXJvbm1lbnQp IC0+IFJlc3VsdDxWYWx1ZSwgRXIKPj4gwqDCoMKgwqDCoCBsZXQgYXV0aF9pZDogQXV0aGlkID0g cnBjZW52LmdldF9hdXRoX2lkKCkudW53cmFwKCkucGFyc2UoKT87Cj4+IMKgwqDCoMKgwqAgbGV0 IHRvX3N0ZG91dCA9IHJwY2Vudi5lbnZfdHlwZSgpID09IFJwY0Vudmlyb25tZW50VHlwZTo6Q0xJ Owo+PiAtwqDCoMKgIGxldCB1cGlkID0gV29ya2VyVGFzazo6bmV3X3RocmVhZCgKPj4gK8KgwqDC oCBsZXQgdXBpZCA9IFdvcmtlclRhc2s6OnNwYXduKAo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgIm1v dW50LWRldmljZSIsCj4+IC3CoMKgwqDCoMKgwqDCoCBTb21lKHN0b3JlKSwKPj4gK8KgwqDCoMKg wqDCoMKgIFNvbWUoc3RvcmUuY2xvbmUoKSksCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBhdXRoX2lk LnRvX3N0cmluZygpLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgdG9fc3Rkb3V0LAo+PiAtwqDCoMKg wqDCoMKgwqAgbW92ZSB8X3dvcmtlcnwgZG9fbW91bnRfZGV2aWNlKGRhdGFzdG9yZSksCj4+ICvC oMKgwqDCoMKgwqDCoCBtb3ZlIHxfd29ya2VyfCBhc3luYyBtb3ZlIHsKPj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqAgZG9fbW91bnRfZGV2aWNlKGRhdGFzdG9yZS5jbG9uZSgpKT87Cj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIGxldCBPaygoc3luY19jb25maWcsIF9kaWdlc3QpKSA9IAo+PiBw YnNfY29uZmlnOjpzeW5jOjpjb25maWcoKSBlbHNlIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCB3YXJuISgidW5hYmxlIHRvIHJlYWQgc3luYyBqb2IgY29uZmlnLCB3b24ndCBy dW4gYW55IAo+PiBzeW5jIGpvYnMiKTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCByZXR1cm4gT2soKCkpOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Owo+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBsZXQgT2sobGlzdCkgPSBzeW5jX2NvbmZpZy5jb252ZXJ0X3RvX3R5 cGVkX2FycmF5KCJzeW5jIikgCj4+IGVsc2Ugewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHdhcm4hKCJ1bmFibGUgdG8gcGFyc2Ugc3luYyBqb2IgY29uZmlnLCB3b24ndCBydW4g YW55IAo+PiBzeW5jIGpvYnMiKTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBy ZXR1cm4gT2soKCkpOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Owo+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBsZXQgam9ic190b19ydW46IFZlYzxTeW5jSm9iQ29uZmlnPiA9IGxpc3QK Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAuaW50b19pdGVyKCkKPj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAuZmlsdGVyKHxqb2I6ICZTeW5jSm9iQ29uZmlnfCB7 Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvLyBhZGQgam9iIGlm ZiBhbnkgb2YgdGhlc2UgYXBwbHkKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIC8vwqDCoCAtIHRoZSBqb2JzIGlzIGxvY2FsIGFuZCB3ZSBhcmUgc291cmNlIG9yIHRh cmdldAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKgIC0g d2UgYXJlIHRoZSBzb3VyY2Ugb2YgYSBwdXNoIHRvIGEgcmVtb3RlCj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL8KgwqAgLSB3ZSBhcmUgdGhlIHRhcmdldCBvZiBh IHB1bGwgZnJvbSBhIHJlbW90ZQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgLy8KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vIGBq b2Iuc3RvcmUgPT0gZGF0YXN0b3JlLm5hbWVgIGlmZiB3ZSBhcmUgdGhlIAo+PiB0YXJnZXQgZm9y IHB1bGwgZnJvbSByZW1vdGUgb3Igd2UKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIC8vIGFyZSB0aGUgc291cmNlIGZvciBwdXNoIHRvIHJlbW90ZSwgdGhlcmVmb3Jl IAo+PiB3ZSBkb24ndCBoYXZlIHRvIGNoZWNrIGZvciB0aGUKPj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vIGRpcmVjdGlvbiBvZiB0aGUgam9iLgo+IAo+IFRoaXMg bWlzc2VzIGEgY2hlY2sgZm9yIHRoZSBgcnVuX29uX21vdW50YCBmbGFnIGhlcmUgSSB0aGluaywg YXMgaXQgaXMgCj4gbmV2ZXIgcmVhZCBpbiB0aGUgcmVzdCBvZiB0aGUgcGF0Y2ggc2VyaWVzPwo+ IAoKSSB0aGluayB5b3UgYXJlIHJpZ2h0LCBJIGFjdHVhbGx5IG1pc3NlZCBjaGVja2luZyB0aGF0 Li4uCgo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgam9iLnJlbW90 ZS5pc19ub25lKCkgJiYgam9iLnJlbW90ZV9zdG9yZSA9PSAKPj4gZGF0YXN0b3JlLm5hbWUKPj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfHwgam9iLnN0 b3JlID09IGRhdGFzdG9yZS5uYW1lCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg fSkKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAuY29sbGVjdCgpOwo+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAham9ic190b19ydW4uaXNfZW1wdHkoKSB7Cj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbGV0IF8gPSBXb3JrZXJUYXNrOjpzcGF3bigKPj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJtb3VudC1zeW5jLWpvYnMi LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgU29tZShzdG9yZSks Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhdXRoX2lkLnRvX3N0 cmluZygpLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZmFsc2Us Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtb3ZlIHx3b3JrZXJ8 IGFzeW5jIG1vdmUgCj4+IHsgZG9fc3luY19qb2JzKGpvYnNfdG9fcnVuLCB3b3JrZXIpLmF3YWl0 IH0sCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKTsKPj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqAgfQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBPaygoKSkKPj4gK8KgwqDC oMKgwqDCoMKgIH0sCj4+IMKgwqDCoMKgwqAgKT87Cj4+IMKgwqDCoMKgwqAgT2soanNvbiEodXBp ZCkpCj4+IGRpZmYgLS1naXQgYS9zcmMvYXBpMi9hZG1pbi9zeW5jLnJzIGIvc3JjL2FwaTIvYWRt aW4vc3luYy5ycwo+PiBpbmRleCA2NzIyZWJlYTAuLjAxZGVhNTEyNiAxMDA2NDQKPj4gLS0tIGEv c3JjL2FwaTIvYWRtaW4vc3luYy5ycwo+PiArKysgYi9zcmMvYXBpMi9hZG1pbi9zeW5jLnJzCj4+ IEBAIC0xNjEsNyArMTYxLDcgQEAgcHViIGZuIHJ1bl9zeW5jX2pvYigKPj4gwqDCoMKgwqDCoCBs ZXQgdG9fc3Rkb3V0ID0gcnBjZW52LmVudl90eXBlKCkgPT0gUnBjRW52aXJvbm1lbnRUeXBlOjpD TEk7Cj4+IC3CoMKgwqAgbGV0IHVwaWRfc3RyID0gZG9fc3luY19qb2Ioam9iLCBzeW5jX2pvYiwg JmF1dGhfaWQsIE5vbmUsIAo+PiB0b19zdGRvdXQpPzsKPj4gK8KgwqDCoCBsZXQgKHVwaWRfc3Ry LCBfKSA9IGRvX3N5bmNfam9iKGpvYiwgc3luY19qb2IsICZhdXRoX2lkLCBOb25lLCAKPj4gdG9f c3Rkb3V0KT87Cj4+IMKgwqDCoMKgwqAgT2sodXBpZF9zdHIpCj4+IMKgIH0KPj4gZGlmZiAtLWdp dCBhL3NyYy9zZXJ2ZXIvc3luYy5ycyBiL3NyYy9zZXJ2ZXIvc3luYy5ycwo+PiBpbmRleCAwYmQ3 YTdhODUuLjJhMjkwYThlZSAxMDA2NDQKPj4gLS0tIGEvc3JjL3NlcnZlci9zeW5jLnJzCj4+ICsr KyBiL3NyYy9zZXJ2ZXIvc3luYy5ycwo+PiBAQCAtMTEsNiArMTEsNyBAQCB1c2UgYW55aG93Ojp7 YmFpbCwgZm9ybWF0X2VyciwgQ29udGV4dCwgRXJyb3J9Owo+PiDCoCB1c2UgZnV0dXJlczo6e2Z1 dHVyZTo6RnV0dXJlRXh0LCBzZWxlY3R9Owo+PiDCoCB1c2UgaHR0cDo6U3RhdHVzQ29kZTsKPj4g wqAgdXNlIHNlcmRlX2pzb246Ompzb247Cj4+ICt1c2UgdG9raW86OnRhc2s6OkpvaW5IYW5kbGU7 Cj4+IMKgIHVzZSB0cmFjaW5nOjp7aW5mbywgd2Fybn07Cj4+IMKgIHVzZSBwcm94bW94X2h1bWFu X2J5dGU6Okh1bWFuQnl0ZTsKPj4gQEAgLTU5OCw3ICs1OTksNyBAQCBwdWIgZm4gZG9fc3luY19q b2IoCj4+IMKgwqDCoMKgwqAgYXV0aF9pZDogJkF1dGhpZCwKPj4gwqDCoMKgwqDCoCBzY2hlZHVs ZTogT3B0aW9uPFN0cmluZz4sCj4+IMKgwqDCoMKgwqAgdG9fc3Rkb3V0OiBib29sLAo+PiAtKSAt PiBSZXN1bHQ8U3RyaW5nLCBFcnJvcj4gewo+PiArKSAtPiBSZXN1bHQ8KFN0cmluZywgSm9pbkhh bmRsZTwoKT4pLCBFcnJvcj4gewo+PiDCoMKgwqDCoMKgIGxldCBqb2JfaWQgPSBmb3JtYXQhKAo+ PiDCoMKgwqDCoMKgwqDCoMKgwqAgInt9Ont9Ont9Ont9Ont9IiwKPj4gwqDCoMKgwqDCoMKgwqDC oMKgIHN5bmNfam9iLnJlbW90ZS5hc19kZXJlZigpLnVud3JhcF9vcigiLSIpLAo+PiBAQCAtNjE0 LDcgKzYxNSw3IEBAIHB1YiBmbiBkb19zeW5jX2pvYigKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGJh aWwhKCJjYW4ndCBzeW5jIHRvIHNhbWUgZGF0YXN0b3JlIik7Cj4+IMKgwqDCoMKgwqAgfQo+PiAt wqDCoMKgIGxldCB1cGlkX3N0ciA9IFdvcmtlclRhc2s6OnNwYXduKAo+PiArwqDCoMKgIGxldCAo dXBpZF9zdHIsIGhhbmRsZSkgPSBXb3JrZXJUYXNrOjpzcGF3bl93aXRoX2hhbmRsZSgKPj4gwqDC oMKgwqDCoMKgwqDCoMKgICZ3b3JrZXJfdHlwZSwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIFNvbWUo am9iX2lkLmNsb25lKCkpLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgYXV0aF9pZC50b19zdHJpbmco KSwKPj4gQEAgLTcyOCw1ICs3MjksNSBAQCBwdWIgZm4gZG9fc3luY19qb2IoCj4+IMKgwqDCoMKg wqDCoMKgwqDCoCB9LAo+PiDCoMKgwqDCoMKgICk/Owo+PiAtwqDCoMKgIE9rKHVwaWRfc3RyKQo+ PiArwqDCoMKgIE9rKCh1cGlkX3N0ciwgaGFuZGxlKSkKPj4gwqAgfQo+IAoKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpwYnMtZGV2ZWwgbWFpbGluZyBs aXN0CnBicy1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQpodHRwczovL2xpc3RzLnByb3htb3guY29t L2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wYnMtZGV2ZWwK