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 6C8801FF16E for ; Tue, 29 Oct 2024 15:04:56 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id AC70D37636; Tue, 29 Oct 2024 15:04:59 +0100 (CET) Mime-Version: 1.0 Date: Tue, 29 Oct 2024 15:04:25 +0100 Message-Id: To: "Proxmox Backup Server development discussion" Cc: "pbs-devel" From: "Hannes Laimer" X-Mailer: aerc 0.18.2-63-gf2d413e8dedd References: <20240904141155.350454-1-h.laimer@proxmox.com> <20240904141155.350454-7-h.laimer@proxmox.com> <1728907148.brs6f9l2g5.astroid@yuna.none> In-Reply-To: <1728907148.brs6f9l2g5.astroid@yuna.none> X-SPAM-LEVEL: Spam detection results: 0 AWL -0.387 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 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. [datastore.rs, lib.rs, maintenance.rs, proxmox-backup-proxy.rs, proxmox.com] Subject: Re: [pbs-devel] [PATCH proxmox-backup v12 06/26] datastore: add helper for checking if a removable datastore is available 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" T24gTW9uIE9jdCAxNCwgMjAyNCBhdCAzOjQyIFBNIENFU1QsIEZhYmlhbiBHcsO8bmJpY2hsZXIg d3JvdGU6Cj4gT24gU2VwdGVtYmVyIDQsIDIwMjQgNDoxMSBwbSwgSGFubmVzIExhaW1lciB3cm90 ZToKPiA+IENvLWF1dGhvcmVkLWJ5OiBXb2xmZ2FuZyBCdW1pbGxlciA8dy5idW1pbGxlckBwcm94 bW94LmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IEhhbm5lcyBMYWltZXIgPGgubGFpbWVyQHByb3ht b3guY29tPgo+ID4gLS0tCj4gPiAgcGJzLWFwaS10eXBlcy9zcmMvbWFpbnRlbmFuY2UucnMgfCAg MiArKwo+ID4gIHBicy1kYXRhc3RvcmUvc3JjL2RhdGFzdG9yZS5ycyAgIHwgNTggKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKPiA+ICBwYnMtZGF0YXN0b3JlL3NyYy9saWIucnMgICAg ICAgICB8ICAyICstCj4gPiAgc3JjL2Jpbi9wcm94bW94LWJhY2t1cC1wcm94eS5ycyAgfCAgNSAr Ky0KPiA+ICA0IGZpbGVzIGNoYW5nZWQsIDY1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0p Cj4gPiAKPiA+IGRpZmYgLS1naXQgYS9wYnMtYXBpLXR5cGVzL3NyYy9tYWludGVuYW5jZS5ycyBi L3Bicy1hcGktdHlwZXMvc3JjL21haW50ZW5hbmNlLnJzCj4gPiBpbmRleCBmZDRkMzQxNi4uOWY1 MTI5MmUgMTAwNjQ0Cj4gPiAtLS0gYS9wYnMtYXBpLXR5cGVzL3NyYy9tYWludGVuYW5jZS5ycwo+ ID4gKysrIGIvcGJzLWFwaS10eXBlcy9zcmMvbWFpbnRlbmFuY2UucnMKPiA+IEBAIC04Miw2ICs4 Miw4IEBAIGltcGwgTWFpbnRlbmFuY2VNb2RlIHsKPiA+ICAgICAgLy8vIHRhc2sgZmluaXNoZXMs IHNvIGFsbCBvcGVuIGZpbGVzIGFyZSBjbG9zZWQuCj4gPiAgICAgIHB1YiBmbiBpc19vZmZsaW5l KCZzZWxmKSAtPiBib29sIHsKPiA+ICAgICAgICAgIHNlbGYudHkgPT0gTWFpbnRlbmFuY2VUeXBl OjpPZmZsaW5lCj4gPiArICAgICAgICAgICAgfHwgc2VsZi50eSA9PSBNYWludGVuYW5jZVR5cGU6 OlVubW91bnQKPiA+ICsgICAgICAgICAgICB8fCBzZWxmLnR5ID09IE1haW50ZW5hbmNlVHlwZTo6 RGVsZXRlCj4gPiAgICAgIH0KPiA+ICAKPiA+ICAgICAgcHViIGZuIGNoZWNrKCZzZWxmLCBvcGVy YXRpb246IE9wdGlvbjxPcGVyYXRpb24+KSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7Cj4gPiBkaWZm IC0tZ2l0IGEvcGJzLWRhdGFzdG9yZS9zcmMvZGF0YXN0b3JlLnJzIGIvcGJzLWRhdGFzdG9yZS9z cmMvZGF0YXN0b3JlLnJzCj4gPiBpbmRleCBmYjM3YmQ1YS4uMjlmOThiMzcgMTAwNjQ0Cj4gPiAt LS0gYS9wYnMtZGF0YXN0b3JlL3NyYy9kYXRhc3RvcmUucnMKPiA+ICsrKyBiL3Bicy1kYXRhc3Rv cmUvc3JjL2RhdGFzdG9yZS5ycwo+ID4gQEAgLTEsNSArMSw2IEBACj4gPiAgdXNlIHN0ZDo6Y29s bGVjdGlvbnM6OntIYXNoTWFwLCBIYXNoU2V0fTsKPiA+ICB1c2Ugc3RkOjppbzo6e3NlbGYsIFdy aXRlfTsKPiA+ICt1c2Ugc3RkOjpvczo6dW5peDo6ZmZpOjpPc1N0ckV4dDsKPiA+ICB1c2Ugc3Rk Ojpvczo6dW5peDo6aW86OkFzUmF3RmQ7Cj4gPiAgdXNlIHN0ZDo6cGF0aDo6e1BhdGgsIFBhdGhC dWZ9Owo+ID4gIHVzZSBzdGQ6OnN5bmM6OntBcmMsIExhenlMb2NrLCBNdXRleH07Cj4gPiBAQCAt MTQsNiArMTUsNyBAQCB1c2UgcHJveG1veF9zY2hlbWE6OkFwaVR5cGU7Cj4gPiAgdXNlIHByb3ht b3hfc3lzOjplcnJvcjo6U3lzRXJyb3I7Cj4gPiAgdXNlIHByb3htb3hfc3lzOjpmczo6e2ZpbGVf cmVhZF9vcHRpb25hbF9zdHJpbmcsIHJlcGxhY2VfZmlsZSwgQ3JlYXRlT3B0aW9uc307Cj4gPiAg dXNlIHByb3htb3hfc3lzOjpmczo6e2xvY2tfZGlyX25vYmxvY2ssIERpckxvY2tHdWFyZH07Cj4g PiArdXNlIHByb3htb3hfc3lzOjpsaW51eDo6cHJvY2ZzOjpNb3VudEluZm87Cj4gPiAgdXNlIHBy b3htb3hfc3lzOjpwcm9jZXNzX2xvY2tlcjo6UHJvY2Vzc0xvY2tTaGFyZWRHdWFyZDsKPiA+ICB1 c2UgcHJveG1veF93b3JrZXJfdGFzazo6V29ya2VyVGFza0NvbnRleHQ7Cj4gPiAgCj4gPiBAQCAt NDYsNiArNDgsNTIgQEAgcHViIGZuIGNoZWNrX2JhY2t1cF9vd25lcihvd25lcjogJkF1dGhpZCwg YXV0aF9pZDogJkF1dGhpZCkgLT4gUmVzdWx0PCgpLCBFcnJvcj4KPiA+ICAgICAgT2soKCkpCj4g PiAgfQo+ID4gIAo+ID4gKy8vLyBjaGVjayBpZiBhIHJlbW92YWJsZSBkYXRhc3RvcmUgaXMgY3Vy cmVudGx5IGF2YWlsYWJsZS9tb3VudGVkIGJ5Cj4gPiArLy8vIGNvbXBhcmluZyB0aGUgYHN0X3Jk ZXZgIHZhbHVlcyBvZiBgL2Rldi9kaXNrL2J5LXV1aWQvPHV1aWQ+YCBhbmQgdGhlIHNvdXJjZSBk ZXZpY2UgaW4KPiA+ICsvLy8gL3Byb2Mvc2VsZi9tb3VudGluZm8KPgo+IGNoZWNrIGlmIGEgKnJl bW92YWJsZSogZGF0YXN0b3JlIGlzIC4uCj4KClRoZSBpZGVhIHdhcyB0byBiZSBhYmxlIHRvIHdv cmsgd2l0aCBub3JtYWwgYW5kIHJlbW92YWJsZSBkYXRhc3RvcmVzIHRoZQpzYW1lIHdheSB0aHJv dWdob3V0IHRoZSBjb2RlYmFzZSwgbm90IGhhdmluZyB0aGlzIHdvdWxkIG1lYW4gaGF2aW5nIHRv CmRpc2dpbmd1aXNoIGJldHdlZW4gdGhlbSB3aGVuIHVzaW5nIGRhdGFzdG9yZXMuCgpJdCBtaWdo dCBtYWtlIHNlbnNlIHRvIGFkZCBhIGNoZWNrIGZvciB0aGUgZXhpc3RhbmNlIG9uIGAuY2h1bmtz L2AsIHNvCnRoaXMgd291bGRuJ3QgZG8gbm90aGluZyBmb3Igbm9ybWFsIGRhdGFzdG9yZXMuCgoK PiA+ICtwdWIgZm4gaXNfZGF0YXN0b3JlX2F2YWlsYWJsZShjb25maWc6ICZEYXRhU3RvcmVDb25m aWcpIC0+IGJvb2wgewo+ID4gKyAgICB1c2Ugbml4OjpzeXM6OnN0YXQ6OlNGbGFnOwo+ID4gKwo+ ID4gKyAgICBsZXQgdXVpZCA9IG1hdGNoIGNvbmZpZy5iYWNraW5nX2RldmljZS5hc19kZXJlZigp IHsKPiA+ICsgICAgICAgIFNvbWUoZGV2KSA9PiBkZXYsCj4gPiArICAgICAgICBOb25lID0+IHJl dHVybiB0cnVlLAo+Cj4gcmV0dXJucyB0cnVlIGlmIG5vdCBhIHJlbW92YWJsZSBkYXRhc3RvcmU/ Cj4KPiA+ICsgICAgfTsKPiA+ICsKPiA+ICsgICAgbGV0IFNvbWUoc3RvcmVfbW91bnRfcG9pbnQp ID0gY29uZmlnLmdldF9tb3VudF9wb2ludCgpIGVsc2Ugewo+ID4gKyAgICAgICAgcmV0dXJuIHRy dWU7Cj4KPiBzYW1lIGhlcmUuIGFsc28gc2VlIGZ1cnRoZXIgYmVsb3cgLSB0aGlzIHNob3VsZCBl aXRoZXIgYmUgcmVtb3ZhYmxlCj4gZGF0YXN0b3JlIHNwZWNpZmljLCBpbiB3aGljaCBjYXNlIGl0 IGNvdWxkIHRha2UgdXVpZCBhbmQgbW91bnRwb2ludCBhcwo+IHBhcmFtZXRlcnMsIG9yIGl0IGNv dWxkIHRha2UgYW55IERhdGFTdG9yZUNvbmZpZywgdGhlbiB0aGUgZG9jIGNvbW1lbnQKPiBzaG91 bGQgcmVmbGVjdCB0aGF0IGFuZCBjbGVhcmx5IGRlc2NyaWJlIHRoZSBzZW1hbnRpY3MuLgo+Cgp5 ZXMsIEknbGwgdXBkYXRlIHRoZSBkb2NzCgo+ID4gKyAgICB9Owo+ID4gKyAgICBsZXQgc3RvcmVf bW91bnRfcG9pbnQgPSBQYXRoOjpuZXcoJnN0b3JlX21vdW50X3BvaW50KTsKPiA+ICsKPiA+ICsg ICAgbGV0IGRldl9ub2RlID0gbWF0Y2ggbml4OjpzeXM6OnN0YXQ6OnN0YXQoZm9ybWF0ISgiL2Rl di9kaXNrL2J5LXV1aWQve3V1aWR9IikuYXNfc3RyKCkpIHsKPiA+ICsgICAgICAgIE9rKHN0YXQp IGlmIFNGbGFnOjpmcm9tX2JpdHNfdHJ1bmNhdGUoc3RhdC5zdF9tb2RlKSA9PSBTRmxhZzo6U19J RkJMSyA9PiBzdGF0LnN0X3JkZXYsCj4gPiArICAgICAgICBfID0+IHJldHVybiBmYWxzZSwKPgo+ IHNob3VsZG4ndCB0aGlzIGRpZmZlcmVudGlhdGUgYmV0d2VlbjoKPiAtIHN0YXQgZmFpbGVkIHdp dGggRU5PRU5UCj4gLSBzdGF0IGZhaWxlZCBmb3Igb3RoZXIgcmVhc29ucwo+IC0gc3RhdCB3b3Jr ZWQgYnV0IHJlc3VsdCBpcyBub3QgYXMgZXhwZWN0ZWQKPgo+ID8KPgoKSSBndWVzcyBpdCBjb21l cyBkb3duIHRvIHdldGhlciB3ZSB3YW50IHRvIGRpZmZlcmFudGlhdGUgYmV0d2VlbiwgIml0IGlz Cm5vdCB0aGVyZSIgb3IgIndlIGNhbid0IGNoZWNrIGlmIGl0IGlzIHRoZXJlIi4gU2luY2UgdGhp cyB1c2VkIG1vc3RseQpkb25lIGluIHRoZSBiYWNrZ3JvdW5kIGFuZCBxdWl0ZSBmcmVxdWVudGx5 LCBJIG9wdGVkIGZvciB0cmVhdGluZyB0aGUKdHdvIGNhc2VzIHRoZSBzYW1lLgoKPiBhbHNvLCB0 aGF0IGNvZGUgKGNvbnRpbnVlZCBiZWxvdyBhdCAoQSkpCj4KPiA+ICsgICAgfTsKPiA+ICsKPiA+ ICsgICAgbGV0IE9rKG1vdW50X2luZm8pID0gTW91bnRJbmZvOjpyZWFkKCkgZWxzZSB7Cj4gPiAr ICAgICAgICByZXR1cm4gZmFsc2U7Cj4KPiBzaG91bGRuJ3QgdGhpcyBiZSBhbiBlcnJvcj8KPgoK Li4uIHNhbWUgaGVyZQoKPiA+ICsgICAgfTsKPiA+ICsKPiA+ICsgICAgZm9yIChfLCBlbnRyeSkg aW4gbW91bnRfaW5mbyB7Cj4gPiArICAgICAgICBsZXQgU29tZShzb3VyY2UpID0gZW50cnkubW91 bnRfc291cmNlIGVsc2Ugewo+ID4gKyAgICAgICAgICAgIGNvbnRpbnVlOwo+ID4gKyAgICAgICAg fTsKPiA+ICsKPiA+ICsgICAgICAgIGlmIGVudHJ5Lm1vdW50X3BvaW50ICE9IHN0b3JlX21vdW50 X3BvaW50IHx8ICFzb3VyY2UuYXNfYnl0ZXMoKS5zdGFydHNfd2l0aChiIi8iKSB7Cj4gPiArICAg ICAgICAgICAgY29udGludWU7Cj4gPiArICAgICAgICB9Cj4gPiArCj4gPiArICAgICAgICBpZiBs ZXQgT2soc3RhdCkgPSBuaXg6OnN5czo6c3RhdDo6c3RhdChzb3VyY2UuYXNfb3Nfc3RyKCkpIHsK PiA+ICsgICAgICAgICAgICBsZXQgc2ZsYWcgPSBTRmxhZzo6ZnJvbV9iaXRzX3RydW5jYXRlKHN0 YXQuc3RfbW9kZSk7Cj4gPiArCj4gPiArICAgICAgICAgICAgaWYgc2ZsYWcgPT0gU0ZsYWc6OlNf SUZCTEsgJiYgc3RhdC5zdF9yZGV2ID09IGRldl9ub2RlIHsKPiA+ICsgICAgICAgICAgICAgICAg cmV0dXJuIHRydWU7Cj4gPiArICAgICAgICAgICAgfQo+Cj4gKEEpIGFuZCB0aGlzIGNvZGUgY291 bGQgZ28gaW50byBhIGhlbHBlci4uCj4KCnl1cCwgSSdsbCBkbyB0aGF0Cgo+ID4gKyAgICAgICAg fQo+ID4gKyAgICB9Cj4gPiArCj4gPiArICAgIGZhbHNlCj4gPiArfQo+ID4gKwo+ID4gIC8vLyBE YXRhc3RvcmUgTWFuYWdlbWVudAo+ID4gIC8vLwo+ID4gIC8vLyBBIERhdGFzdG9yZSBjYW4gc3Rv cmUgc2V2ZXJhbHMgYmFja3VwcywgYW5kIHByb3ZpZGVzIHRoZQo+ID4gQEAgLTE1NSw2ICsyMDMs MTIgQEAgaW1wbCBEYXRhU3RvcmUgewo+ID4gICAgICAgICAgICAgIH0KPiA+ICAgICAgICAgIH0K PiA+ICAKPiA+ICsgICAgICAgIGlmIGNvbmZpZy5iYWNraW5nX2RldmljZS5pc19zb21lKCkgJiYg IWlzX2RhdGFzdG9yZV9hdmFpbGFibGUoJmNvbmZpZykgewo+ID4gKyAgICAgICAgICAgIGxldCBt dXQgZGF0YXN0b3JlX2NhY2hlID0gREFUQVNUT1JFX01BUC5sb2NrKCkudW53cmFwKCk7Cj4gPiAr ICAgICAgICAgICAgZGF0YXN0b3JlX2NhY2hlLnJlbW92ZSgmY29uZmlnLm5hbWUpOwo+ID4gKyAg ICAgICAgICAgIGJhaWwhKCJSZW1vdmFibGUgRGF0YXN0b3JlIGlzIG5vdCBtb3VudGVkIik7Cj4g PiArICAgICAgICB9Cj4KPiBzbyBoZXJlIHRoZSBoZWxwZXIgaXMgb25seSBjYWxsZWQgZm9yIHJl bW92YWJsZSBkYXRhc3RvcmVzLi4KPgoKdGhlIHRoaW5nIHdlIGRvIGhlcmUgaXMgb25seSByZWxl dmFudCBmb3IgcmVtb3ZhYmxlIGRhdGFzdG9yZXMsIHNvIGlmCndlIHdvdWxkIGFsc28gbmVlZCB0 byBkcm9wIGNhY2hlIGVudHJpZXMgZm9yIG5vbi1yZW1vdmFibGUgZGF0YXN0b3JlcywKd2UgY291 bGQgZHJvcCB0aGUgaXMtcmVtb3ZhYmxlIGNoZWNrLCB5ZXMuCgo+ID4gKwo+ID4gICAgICAgICAg bGV0IG11dCBkYXRhc3RvcmVfY2FjaGUgPSBEQVRBU1RPUkVfTUFQLmxvY2soKS51bndyYXAoKTsK PiA+ICAgICAgICAgIGxldCBlbnRyeSA9IGRhdGFzdG9yZV9jYWNoZS5nZXQobmFtZSk7Cj4gPiAg Cj4gPiBAQCAtMjU4LDYgKzMxMiwxMCBAQCBpbXBsIERhdGFTdG9yZSB7Cj4gPiAgICAgICkgLT4g UmVzdWx0PEFyYzxTZWxmPiwgRXJyb3I+IHsKPiA+ICAgICAgICAgIGxldCBuYW1lID0gY29uZmln Lm5hbWUuY2xvbmUoKTsKPiA+ICAKPiA+ICsgICAgICAgIGlmICFpc19kYXRhc3RvcmVfYXZhaWxh YmxlKCZjb25maWcpIHsKPiA+ICsgICAgICAgICAgICBiYWlsISgiRGF0YXN0b3JlIGlzIG5vdCBh dmFpbGFibGUiKQo+ID4gKyAgICAgICAgfQo+Cj4gYnV0IGhlcmUgaXQgaXMgY2FsbGVkIGZvciBh bGwgZGF0YXN0b3Jlcwo+CgouLi4gaGVyZSB3aGF0IHRoaXMgY2hlY2sgZ3VhcmRzIGlzIHJlbGV2 YW50IGZvciBib3RoIG5vcm1hbCBhbmQKcmVtb3ZhYmxlLiBJbiBteSBoZWFkIHRoaXMgbWFkZSBz ZW5zZSwgSSBob3BlIGl0IGFsc28gZG9lcyBvdXRzaWRlIDopIAoKPiA+ICsKPiA+ICAgICAgICAg IGxldCB0dW5pbmc6IERhdGFzdG9yZVR1bmluZyA9IHNlcmRlX2pzb246OmZyb21fdmFsdWUoCj4g PiAgICAgICAgICAgICAgRGF0YXN0b3JlVHVuaW5nOjpBUElfU0NIRU1BCj4gPiAgICAgICAgICAg ICAgICAgIC5wYXJzZV9wcm9wZXJ0eV9zdHJpbmcoY29uZmlnLnR1bmluZy5hc19kZXJlZigpLnVu d3JhcF9vcigiIikpPywKPiA+IGRpZmYgLS1naXQgYS9wYnMtZGF0YXN0b3JlL3NyYy9saWIucnMg Yi9wYnMtZGF0YXN0b3JlL3NyYy9saWIucnMKPiA+IGluZGV4IDIwMmIwOTU1Li42ZDU4ZjMyNyAx MDA2NDQKPiA+IC0tLSBhL3Bicy1kYXRhc3RvcmUvc3JjL2xpYi5ycwo+ID4gKysrIGIvcGJzLWRh dGFzdG9yZS9zcmMvbGliLnJzCj4gPiBAQCAtMjA0LDcgKzIwNCw3IEBAIHB1YiB1c2UgbWFuaWZl c3Q6OkJhY2t1cE1hbmlmZXN0Owo+ID4gIHB1YiB1c2Ugc3RvcmVfcHJvZ3Jlc3M6OlN0b3JlUHJv Z3Jlc3M7Cj4gPiAgCj4gPiAgbW9kIGRhdGFzdG9yZTsKPiA+IC1wdWIgdXNlIGRhdGFzdG9yZTo6 e2NoZWNrX2JhY2t1cF9vd25lciwgRGF0YVN0b3JlfTsKPiA+ICtwdWIgdXNlIGRhdGFzdG9yZTo6 e2NoZWNrX2JhY2t1cF9vd25lciwgaXNfZGF0YXN0b3JlX2F2YWlsYWJsZSwgRGF0YVN0b3JlfTsK PiA+ICAKPiA+ICBtb2QgaGllcmFyY2h5Owo+ID4gIHB1YiB1c2UgaGllcmFyY2h5Ojp7Cj4gPiBk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wcm94bW94LWJhY2t1cC1wcm94eS5ycyBiL3NyYy9iaW4vcHJv eG1veC1iYWNrdXAtcHJveHkucnMKPiA+IGluZGV4IDZjY2YyZjk2Li41OGZiOGI4NCAxMDA2NDQK PiA+IC0tLSBhL3NyYy9iaW4vcHJveG1veC1iYWNrdXAtcHJveHkucnMKPiA+ICsrKyBiL3NyYy9i aW4vcHJveG1veC1iYWNrdXAtcHJveHkucnMKPiA+IEBAIC0yMyw3ICsyMyw3IEBAIHVzZSBwcm94 bW94X3N5czo6ZnM6OntDcmVhdGVPcHRpb25zLCBGaWxlU3lzdGVtSW5mb3JtYXRpb259Owo+ID4g IHVzZSBwcm94bW94X3N5czo6bGludXg6OnByb2Nmczo6e0xvYWRhdmcsIFByb2NGc01lbUluZm8s IFByb2NGc05ldERldiwgUHJvY0ZzU3RhdH07Cj4gPiAgdXNlIHByb3htb3hfc3lzOjpsb2dyb3Rh dGU6OkxvZ1JvdGF0ZTsKPiA+ICAKPiA+IC11c2UgcGJzX2RhdGFzdG9yZTo6RGF0YVN0b3JlOwo+ ID4gK3VzZSBwYnNfZGF0YXN0b3JlOjp7aXNfZGF0YXN0b3JlX2F2YWlsYWJsZSwgRGF0YVN0b3Jl fTsKPiA+ICAKPiA+ICB1c2UgcHJveG1veF9yZXN0X3NlcnZlcjo6ewo+ID4gICAgICBjbGVhbnVw X29sZF90YXNrcywgY29va2llX2Zyb21faGVhZGVyLCByb3RhdGVfdGFza19sb2dfYXJjaGl2ZSwg QXBpQ29uZmlnLCBSZWRpcmVjdG9yLAo+ID4gQEAgLTExMzIsNiArMTEzMiw5IEBAIGZuIGNvbGxl Y3RfZGlza19zdGF0c19zeW5jKCkgLT4gKERpc2tTdGF0LCBWZWM8RGlza1N0YXQ+KSB7Cj4gPiAg ICAgICAgICAgICAgICAgIHsKPiA+ICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ID4g ICAgICAgICAgICAgICAgICB9Cj4gPiArICAgICAgICAgICAgICAgIGlmICFpc19kYXRhc3RvcmVf YXZhaWxhYmxlKCZjb25maWcpIHsKPiA+ICsgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ ID4gKyAgICAgICAgICAgICAgICB9Cj4KPiBhbmQgaGVyZSBhcyB3ZWxsLi4KPgo+ID4gICAgICAg ICAgICAgICAgICBsZXQgcGF0aCA9IHN0ZDo6cGF0aDo6UGF0aEJ1Zjo6ZnJvbShjb25maWcuYWJz b2x1dGVfcGF0aCgpKTsKPiA+ICAgICAgICAgICAgICAgICAgZGF0YXN0b3Jlcy5wdXNoKGdhdGhl cl9kaXNrX3N0YXRzKGRpc2tfbWFuYWdlci5jbG9uZSgpLCAmcGF0aCwgJmNvbmZpZy5uYW1lKSk7 Cj4gPiAgICAgICAgICAgICAgfQo+ID4gLS0gCj4gPiAyLjM5LjIKPiA+IAo+ID4gCj4gPiAKPiA+ IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiBwYnMt ZGV2ZWwgbWFpbGluZyBsaXN0Cj4gPiBwYnMtZGV2ZWxAbGlzdHMucHJveG1veC5jb20KPiA+IGh0 dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3Bicy1kZXZl bAo+ID4gCj4gPiAKPiA+IAo+Cj4KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwo+IHBicy1kZXZlbCBtYWlsaW5nIGxpc3QKPiBwYnMtZGV2ZWxAbGlzdHMu cHJveG1veC5jb20KPiBodHRwczovL2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9s aXN0aW5mby9wYnMtZGV2ZWwKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KcGJzLWRldmVsIG1haWxpbmcgbGlzdApwYnMtZGV2ZWxAbGlzdHMucHJveG1v eC5jb20KaHR0cHM6Ly9saXN0cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8v cGJzLWRldmVsCg==