From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 0A46D1FF163 for ; Thu, 21 Nov 2024 11:04:04 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 619AE1EA99; Thu, 21 Nov 2024 11:04:11 +0100 (CET) Date: Thu, 21 Nov 2024 11:04:07 +0100 From: Gabriel Goller To: Fabian =?utf-8?Q?Gr=C3=BCnbichler?= Message-ID: References: <20241105104015.162094-1-g.goller@proxmox.com> <20241105104015.162094-2-g.goller@proxmox.com> <173210826421.198988.14774192201672116937@yuna.proxmox.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <173210826421.198988.14774192201672116937@yuna.proxmox.com> User-Agent: NeoMutt/20241002-35-39f9a6 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.041 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. [manifest.rs, docs.rs] Subject: Re: [pbs-devel] [PATCH proxmox-backup v3 1/3] fix #3786: api: add resync-corrupt option to sync jobs 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 Cc: 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" T24gMjAuMTEuMjAyNCAxNDoxMSwgRmFiaWFuIEdyw7xuYmljaGxlciB3cm90ZToKPmEgZmV3IHNt YWxsIG5pdHMgaW5saW5lLCBsb29rcyBnb29kIHRvIG1lIG90aGVyd2lzZSwgYnV0IGdpdmVuIHRo ZSBzaXplIG9mIHRoaXMKPmFuZCB0aGUgc2l6ZSBvZiB0aGUgcHVzaCBzZXJpZXMsIEknZCByYXRo ZXIgdGhpcyBiZSByZWJhc2VkIG9uIHRvcCBvZiB0aGUgb3RoZXIKPm9uZSA7KQoKU3VyZSwgc2hv dWxkbid0IGJlIGEgbG90IG9mIHdvcmsuIFNob3VsZCBJIHNlbmQgYSByZWJhc2VkIHZlcnNpb24g b24gdG9wCm9mIHRoZSBjdXJyZW50IHB1c2ggc2VyaWVzIGFzIGEgdjQ/Cgo+UXVvdGluZyBHYWJy aWVsIEdvbGxlciAoMjAyNC0xMS0wNSAxMTo0MDoxMykKPj4gZGlmZiAtLWdpdCBhL3Bicy1kYXRh c3RvcmUvc3JjL2JhY2t1cF9pbmZvLnJzIGIvcGJzLWRhdGFzdG9yZS9zcmMvYmFja3VwX2luZm8u cnMKPj4gaW5kZXggNDE0ZWM4NzhkMDFhLi5lNjE3NDMyMmRhZDYgMTAwNjQ0Cj4+IC0tLSBhL3Bi cy1kYXRhc3RvcmUvc3JjL2JhY2t1cF9pbmZvLnJzCj4+ICsrKyBiL3Bicy1kYXRhc3RvcmUvc3Jj L2JhY2t1cF9pbmZvLnJzCj4+IEBAIC04LDcgKzgsOCBAQCB1c2UgYW55aG93Ojp7YmFpbCwgZm9y bWF0X2VyciwgRXJyb3J9Owo+PiAgdXNlIHByb3htb3hfc3lzOjpmczo6e2xvY2tfZGlyX25vYmxv Y2ssIHJlcGxhY2VfZmlsZSwgQ3JlYXRlT3B0aW9uc307Cj4+Cj4+ICB1c2UgcGJzX2FwaV90eXBl czo6ewo+PiAtICAgIEF1dGhpZCwgQmFja3VwTmFtZXNwYWNlLCBCYWNrdXBUeXBlLCBHcm91cEZp bHRlciwgQkFDS1VQX0RBVEVfUkVHRVgsIEJBQ0tVUF9GSUxFX1JFR0VYLAo+PiArICAgIEF1dGhp ZCwgQmFja3VwTmFtZXNwYWNlLCBCYWNrdXBUeXBlLCBHcm91cEZpbHRlciwgVmVyaWZ5U3RhdGUs IEJBQ0tVUF9EQVRFX1JFR0VYLAo+PiArICAgIEJBQ0tVUF9GSUxFX1JFR0VYLAo+PiAgfTsKPj4g IHVzZSBwYnNfY29uZmlnOjp7b3Blbl9iYWNrdXBfbG9ja2ZpbGUsIEJhY2t1cExvY2tHdWFyZH07 Cj4+Cj4+IEBAIC01ODMsNiArNTg0LDE1IEBAIGltcGwgQmFja3VwRGlyIHsKPj4KPj4gICAgICAg ICAgT2soKCkpCj4+ICAgICAgfQo+PiArCj4+ICsgICAgLy8vIExvYWQgdGhlIHZlcmlmeSBzdGF0 ZSBmcm9tIHRoZSBtYW5pZmVzdC4KPj4gKyAgICBwdWIgZm4gdmVyaWZ5X3N0YXRlKCZzZWxmKSAt PiBPcHRpb248VmVyaWZ5U3RhdGU+IHsKPgo+c2hvdWxkIHRoaXMgYmUgYSBSZXN1bHQ8T3B0aW9u PC4uPj4gdG8gYWxsb3cgZGlmZmVyZW50aWF0aW9uIGJldHdlZW4gbm8KPnZlcmlmaWNhdGlvbiBz dGF0ZSwgYW5kIGZhaWx1cmUgdG8gcGFyc2Ugb3IgbG9hZCB0aGUgbWFuaWZlc3Q/IHRoYXQgd291 bGQgYWxsb3cKPnVzIHRvIHJlc3luYyB0b3RhbGx5IGNvcnJ1cHRlZCBzbmFwc2hvdHMgYXMgd2Vs bCAoYWx0aG91Z2ggdGhhdCBtaWdodCBiZQo+Y29uc2lkZXJlZCBvdXQgb2Ygc2NvcGUgYmFzZWQg b24gdGhlIHBhcmFtZXRlciBkZXNjcmlwdGlvbiA7KSkKClllcCBpdCB3YXMgYWxyZWFkeSBsaWtl IHRoaXMgaW4gdGhlIGZpcnN0IHZlcnNpb24sIG5vIGlkZWEgd2h5IEkgY2hhbmdlZAppdC4gTGlr ZSB0aGlzIHdlIGNhbiByZXR1cm4gdGhlIGxvYWRfbWFuaWZlc3QgZXJyb3Igd2l0aCB0aGUgUmVz dWx0IGFuZApzd2FsbG93IHRoZSBpbm5lciBlcnJvciB3aXRoIGEgYG9rKClgIGFzIGl0IGRvZXNu J3QgbWF0dGVyIGFueW1vcmUuCgogICAgIHB1YiBmbiB2ZXJpZnlfc3RhdGUoJnNlbGYpIC0+IFJl c3VsdDxPcHRpb248VmVyaWZ5U3RhdGU+LCBhbnlob3c6OkVycm9yPiB7CiAgICAgICAgIGxldCBt YW5pZmVzdCA9IHNlbGYubG9hZF9tYW5pZmVzdCgpPzsKICAgICAgICAgT2sobWFuaWZlc3QuMC52 ZXJpZnlfc3RhdGUoKS5vaygpLmZsYXR0ZW4oKS5tYXAofHN2c3wgc3ZzLnN0YXRlKSkKICAgICB9 CgoKSSB0aGluayB3ZSBhbHNvIHdhbnQgdG8gcmVzeW5jIG9uIGVycm9ycyB3aGVuIHJlYWRpbmcg dGhlIG1hbmlmZXN0LCBJJ2xsCmluY2x1ZGUgdGhhdCBpbiB0aGUgbmV4dCB2ZXJzaW9uISBTb21l dGhpbmcgbGlrZSB0aGlzIG1heWJlOgoKICAgICBtYXRjaCBsb2NhbF9kaXIudmVyaWZ5X3N0YXRl KCkgewogICAgICAgICBPayhTb21lKHN0YXRlKSkgPT4gewogICAgICAgICAgICAgaWYgc3RhdGUg PT0gVmVyaWZ5U3RhdGU6OkZhaWxlZCB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKGRp ciwgdHJ1ZSkpOwogICAgICAgICAgICAgfQogICAgICAgICB9LAogICAgICAgICBPayhOb25lKSA9 PiB7CiAgICAgICAgICAgICAvLyBUaGlzIG1lYW5zIHRoZXJlIGVpdGhlciB3YXMgYW4gZXJyb3Ig cGFyc2luZyB0aGUgbWFuaWZlc3QsIG9yIHRoZSAKICAgICAgICAgICAgIC8vIHZlcmlmeV9zdGF0 ZSBpdGVtIHdhcyBub3QgZm91bmQuIFRoaXMgY291bGQgYmUgYSBuZXcgYmFja3VwLgogICAgICAg ICB9CiAgICAgICAgIEVycihfKSA9PiB7CiAgICAgICAgICAgICAvLyBUaGVyZSB3YXMgYW4gZXJy b3IgbG9hZGluZyB0aGUgbWFuaWZlc3QsIHByb2JhYmx5IGJldHRlciBpZiB3ZQogICAgICAgICAg ICAgLy8gcmVzeW5jLgogICAgICAgICAgICAgcmV0dXJuIFNvbWUoKGRpciwgdHJ1ZSkpOwogICAg ICAgICB9CiAgICAgfQoKPj4gKyAgICAgICAgaWYgbGV0IE9rKG1hbmlmZXN0KSA9IHNlbGYubG9h ZF9tYW5pZmVzdCgpIHsKPj4gKyAgICAgICAgICAgIG1hbmlmZXN0LjAudmVyaWZ5X3N0YXRlKCkK Pj4gKyAgICAgICAgfSBlbHNlIHsKPj4gKyAgICAgICAgICAgIE5vbmUKPj4gKyAgICAgICAgfQo+ PiArICAgIH0KPj4gIH0KPj4KPj4gIGltcGwgQXNSZWY8cGJzX2FwaV90eXBlczo6QmFja3VwTmFt ZXNwYWNlPiBmb3IgQmFja3VwRGlyIHsKPj4gZGlmZiAtLWdpdCBhL3Bicy1kYXRhc3RvcmUvc3Jj L21hbmlmZXN0LnJzIGIvcGJzLWRhdGFzdG9yZS9zcmMvbWFuaWZlc3QucnMKPj4gaW5kZXggYzNk ZjAxNDI3MmEwLi42MjNjMTQ5OWMwYmIgMTAwNjQ0Cj4+IC0tLSBhL3Bicy1kYXRhc3RvcmUvc3Jj L21hbmlmZXN0LnJzCj4+ICsrKyBiL3Bicy1kYXRhc3RvcmUvc3JjL21hbmlmZXN0LnJzCj4+IEBA IC01LDcgKzUsNyBAQCB1c2UgYW55aG93Ojp7YmFpbCwgZm9ybWF0X2VyciwgRXJyb3J9Owo+PiAg dXNlIHNlcmRlOjp7RGVzZXJpYWxpemUsIFNlcmlhbGl6ZX07Cj4+ICB1c2Ugc2VyZGVfanNvbjo6 e2pzb24sIFZhbHVlfTsKPj4KPj4gLXVzZSBwYnNfYXBpX3R5cGVzOjp7QmFja3VwVHlwZSwgQ3J5 cHRNb2RlLCBGaW5nZXJwcmludH07Cj4+ICt1c2UgcGJzX2FwaV90eXBlczo6e0JhY2t1cFR5cGUs IENyeXB0TW9kZSwgRmluZ2VycHJpbnQsIFNuYXBzaG90VmVyaWZ5U3RhdGUsIFZlcmlmeVN0YXRl fTsKPj4gIHVzZSBwYnNfdG9vbHM6OmNyeXB0X2NvbmZpZzo6Q3J5cHRDb25maWc7Cj4+Cj4+ICBw dWIgY29uc3QgTUFOSUZFU1RfQkxPQl9OQU1FOiAmc3RyID0gImluZGV4Lmpzb24uYmxvYiI7Cj4+ IEBAIC0yNDIsNiArMjQyLDE3IEBAIGltcGwgQmFja3VwTWFuaWZlc3Qgewo+PiAgICAgICAgICBs ZXQgbWFuaWZlc3Q6IEJhY2t1cE1hbmlmZXN0ID0gc2VyZGVfanNvbjo6ZnJvbV92YWx1ZShqc29u KT87Cj4+ICAgICAgICAgIE9rKG1hbmlmZXN0KQo+PiAgICAgIH0KPj4gKwo+PiArICAgIC8vLyBH ZXQgdGhlIHZlcmlmeSBzdGF0ZSBvZiB0aGUgc25hcHNob3QKPj4gKyAgICAvLy8KPj4gKyAgICAv Ly8gTm90ZTogTmV3IHNuYXBzaG90cywgd2hpY2ggaGF2ZSBub3QgYmVlbiB2ZXJpZmllZCB5ZXQs IGRvIG5vdCBoYXZlIGEgc3RhdHVzIGFuZCB0aGlzCj4+ICsgICAgLy8vIGZ1bmN0aW9uIHdpbGwg cmV0dXJuIGBOb25lYC4KPj4gKyAgICBwdWIgZm4gdmVyaWZ5X3N0YXRlKCZzZWxmKSAtPiBPcHRp b248VmVyaWZ5U3RhdGU+IHsKPgo+c2hvdWxkIHRoaXMgYmUgYSBSZXN1bHQ8T3B0aW9uPC4uPj4g dG8gYWxsb3cgZGlmZmVyZW50aWF0aW9uIGJldHdlZW4gbm8KPnZlcmlmaWNhdGlvbiBzdGF0ZSwg YW5kIGZhaWx1cmUgdG8gcGFyc2U/CgpIbW0gc28gSSBjb3VsZCByZXR1cm4gYSBSZXN1bHQ8T3B0 aW9uPC4uPj4gYnkgY2hlY2tpbmcgdGhlIGVycm9yIG9mIHRoZQpzZXJkZV9qc29uOjpmcm9tX3Zh bHVlIGNhbGwuIEkgY291bGQgY2hlY2sgaWYgdGhlICJ2ZXJpZnlfc3RhdGUiIHZhbHVlCndhc24n dCBmb3VuZCBpbiB0aGUgbWFuaWZlc3QgYnkgY2FsbGluZyBgaXNfZW9mYCBbMF0gYW5kIGlmIG5v dCwgcmV0dXJuCmEgT2soTm9uZSksIG90aGVyd2lzZSByZXR1cm4gYW4gRXJyb3IuIFRoaXMgd2ls bCBtYWtlIGl0IG1vcmUKY29tcGxpY2F0ZWQgZm9yIGFsbCB0aGUgY2FsbGVycyB0aG91Z2gg4oCT IGFsc28gOTklIG9mIHRoZSBjYWxsZXJzIHdpbGwKdHJlYXQgRXJyIHRoZSBzYW1lIGFzIE9rKE5v bmUpIGFueXdheXMuIExUTUsgd2hhdCB5b3UgdGhpbmshCgogICAgIC8vLyBHZXQgdGhlIHZlcmlm eSBzdGF0ZSBvZiB0aGUgc25hcHNob3QKICAgICAvLy8KICAgICAvLy8gTm90ZTogTmV3IHNuYXBz aG90cywgd2hpY2ggaGF2ZSBub3QgYmVlbiB2ZXJpZmllZCB5ZXQsIGRvIG5vdCBoYXZlIGEgc3Rh dHVzIGFuZCB0aGlzCiAgICAgLy8vIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGBPayhOb25lKWAuCiAg ICAgcHViIGZuIHZlcmlmeV9zdGF0ZSgmc2VsZikgLT4gUmVzdWx0PE9wdGlvbjxTbmFwc2hvdFZl cmlmeVN0YXRlPiwgYW55aG93OjpFcnJvcj4gewogICAgICAgICBsZXQgdmVyaWZ5ID0gc2VsZi51 bnByb3RlY3RlZFsidmVyaWZ5X3N0YXRlIl0uY2xvbmUoKTsKICAgICAgICAgbWF0Y2ggc2VyZGVf anNvbjo6ZnJvbV92YWx1ZTo6PFNuYXBzaG90VmVyaWZ5U3RhdGU+KHZlcmlmeSkgewogICAgICAg ICAgICAgRXJyKGVycikgPT4gewogICAgICAgICAgICAgICAgIC8vIGB2ZXJpZnlfc3RhdGVgIGl0 ZW0gaGFzIG5vdCBiZWVuIGZvdW5kCiAgICAgICAgICAgICAgICAgaWYgZXJyLmlzX2VvZigpIHsK ICAgICAgICAgICAgICAgICAgICAgT2soTm9uZSkKICAgICAgICAgICAgICAgICB9ZWxzZSB7CiAg ICAgICAgICAgICAgICAgICAgIEVycihlcnIuaW50bygpKQogICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgIH0sCiAgICAgICAgICAgICBPayhzdnMpID0+IHsKICAgICAgICAgICAgICAgICBP ayhTb21lKHN2cykpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CgoKRWxzZSBJIGNv dWxkIGp1c3QgcmV0dXJuIGEgUmVzdWx0PFNuYXBzaG90VmVyaWZ5U3RhdGU+LgoKWzBdOiBodHRw czovL2RvY3MucnMvc2VyZGVfanNvbi9sYXRlc3Qvc2VyZGVfanNvbi9zdHJ1Y3QuRXJyb3IuaHRt bCNtZXRob2QuaXNfZW9mCgo+YWxzbywgaXQgd291bGQgYmUgZ3JlYXQgaWYgZXhpc3RpbmcgY29k ZSByZXRyaWV2aW5nIHRoaXMgY291bGQgYmUgYWRhcHRlZCB0bwo+dXNlIHRoZXNlIG5ldyBoZWxw ZXJzLCB3aGljaCB3b3VsZCByZXF1aXJlIGhhdmluZyB0aGUgUmVzdWx0IHRoZXJlIGFzIHdlbGwu LgoKWWVwLCBvdmVybG9va2VkIHRob3NlLCBteSBiYWQuCgo+PiBAQCAtMzgxLDcgKzM4OCw3IEBA IGFzeW5jIGZuIHB1bGxfc25hcHNob3Q8J2E+KAo+PiAgICAgICAgICBsZXQgbXV0IHBhdGggPSBz bmFwc2hvdC5mdWxsX3BhdGgoKTsKPj4gICAgICAgICAgcGF0aC5wdXNoKCZpdGVtLmZpbGVuYW1l KTsKPj4KPj4gLSAgICAgICAgaWYgcGF0aC5leGlzdHMoKSB7Cj4+ICsgICAgICAgIGlmICFjb3Jy dXB0ICYmIHBhdGguZXhpc3RzKCkgewo+PiAgICAgICAgICAgICAgbWF0Y2ggQXJjaGl2ZVR5cGU6 OmZyb21fcGF0aCgmaXRlbS5maWxlbmFtZSk/IHsKPj4gICAgICAgICAgICAgICAgICBBcmNoaXZl VHlwZTo6RHluYW1pY0luZGV4ID0+IHsKPj4gICAgICAgICAgICAgICAgICAgICAgbGV0IGluZGV4 ID0gRHluYW1pY0luZGV4UmVhZGVyOjpvcGVuKCZwYXRoKT87Cj4+IEBAIC00NDMsNiArNDUwLDcg QEAgYXN5bmMgZm4gcHVsbF9zbmFwc2hvdF9mcm9tPCdhPigKPj4gICAgICByZWFkZXI6IEFyYzxk eW4gU3luY1NvdXJjZVJlYWRlciArICdhPiwKPj4gICAgICBzbmFwc2hvdDogJidhIHBic19kYXRh c3RvcmU6OkJhY2t1cERpciwKPj4gICAgICBkb3dubG9hZGVkX2NodW5rczogQXJjPE11dGV4PEhh c2hTZXQ8W3U4OyAzMl0+Pj4sCj4+ICsgICAgY29ycnVwdDogYm9vbCwKPj4gICkgLT4gUmVzdWx0 PFN5bmNTdGF0cywgRXJyb3I+IHsKPj4gICAgICBsZXQgKF9wYXRoLCBpc19uZXcsIF9zbmFwX2xv Y2spID0gc25hcHNob3QKPj4gICAgICAgICAgLmRhdGFzdG9yZSgpCj4+IEBAIC00NTEsNyArNDU5 LDcgQEAgYXN5bmMgZm4gcHVsbF9zbmFwc2hvdF9mcm9tPCdhPigKPj4gICAgICBsZXQgc3luY19z dGF0cyA9IGlmIGlzX25ldyB7Cj4KPmlzX25ldyBhbmQgY29ycnVwdCBhcmUgbmV2ZXIgYm90aCB0 cnVlLi4KPgo+PiAgICAgICAgICBpbmZvISgic3luYyBzbmFwc2hvdCB7fSIsIHNuYXBzaG90LmRp cigpKTsKPj4KPj4gLSAgICAgICAgbWF0Y2ggcHVsbF9zbmFwc2hvdChyZWFkZXIsIHNuYXBzaG90 LCBkb3dubG9hZGVkX2NodW5rcykuYXdhaXQgewo+PiArICAgICAgICBtYXRjaCBwdWxsX3NuYXBz aG90KHJlYWRlciwgc25hcHNob3QsIGRvd25sb2FkZWRfY2h1bmtzLCBjb3JydXB0KS5hd2FpdCB7 Cj4KPnNvIHRoaXMgc2hvdWxkIGJlIGFsd2F5cyBmYWxzZSA7KQoKQWdyZWUsIHdyb3RlIGEgY29t bWVudCBhbmQgcGFzc2VkIGRpcmVjdGx5IGBmYWxzZWAuCgo+PiAgICAgICAgICAgICAgRXJyKGVy cikgPT4gewo+PiAgICAgICAgICAgICAgICAgIGlmIGxldCBFcnIoY2xlYW51cF9lcnIpID0gc25h cHNob3QuZGF0YXN0b3JlKCkucmVtb3ZlX2JhY2t1cF9kaXIoCj4+ICAgICAgICAgICAgICAgICAg ICAgIHNuYXBzaG90LmJhY2t1cF9ucygpLAo+PiBAQCAtNDY4LDggKzQ3NiwxNSBAQCBhc3luYyBm biBwdWxsX3NuYXBzaG90X2Zyb208J2E+KAo+PiAgICAgICAgICAgICAgfQo+PiAgICAgICAgICB9 Cj4+ICAgICAgfSBlbHNlIHsKPj4gLSAgICAgICAgaW5mbyEoInJlLXN5bmMgc25hcHNob3Qge30i LCBzbmFwc2hvdC5kaXIoKSk7Cj4+IC0gICAgICAgIHB1bGxfc25hcHNob3QocmVhZGVyLCBzbmFw c2hvdCwgZG93bmxvYWRlZF9jaHVua3MpLmF3YWl0Pwo+PiArICAgICAgICBpZiBjb3JydXB0IHsK Pj4gKyAgICAgICAgICAgIGluZm8hKAo+PiArICAgICAgICAgICAgICAgICJyZS1zeW5jIHNuYXBz aG90IHt9IGR1ZSB0byBiYWQgdmVyaWZpY2F0aW9uIHJlc3VsdCIsCj4KPm5pdDogd2h5IG5vdCBj YWxsIGl0ICJjb3JydXB0Iiwgc2luY2UgdGhhdCBpcyB3aGF0IHRoZSBwYXJhbWV0ZXIgaXMgY2Fs bGVkPwoKYWNrCgo+PiArICAgICAgICAgICAgICAgIHNuYXBzaG90LmRpcigpCj4+ICsgICAgICAg ICAgICApOwo+PiArICAgICAgICB9IGVsc2Ugewo+PiArICAgICAgICAgICAgaW5mbyEoInJlLXN5 bmMgc25hcHNob3Qge30iLCBzbmFwc2hvdC5kaXIoKSk7Cj4+ICsgICAgICAgIH0KPj4gKyAgICAg ICAgcHVsbF9zbmFwc2hvdChyZWFkZXIsIHNuYXBzaG90LCBkb3dubG9hZGVkX2NodW5rcywgY29y cnVwdCkuYXdhaXQ/Cj4+ICAgICAgfTsKPj4KPj4gICAgICBPayhzeW5jX3N0YXRzKQoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCnBicy1kZXZlbCBtYWls aW5nIGxpc3QKcGJzLWRldmVsQGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1v eC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3Bicy1kZXZlbAo=