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 2E0721FF183 for ; Wed, 30 Jul 2025 10:58:02 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 1283337079; Wed, 30 Jul 2025 10:59:28 +0200 (CEST) Date: Wed, 30 Jul 2025 10:58:51 +0200 From: Fabian =?iso-8859-1?q?Gr=FCnbichler?= To: Wolfgang Bumiller References: <20250729111557.136012-1-w.bumiller@proxmox.com> <20250729111557.136012-11-w.bumiller@proxmox.com> <1753861192.t7ef8q26xn.astroid@yuna.none> In-Reply-To: MIME-Version: 1.0 User-Agent: astroid/0.16.0 (https://github.com/astroidmail/astroid) Message-Id: <1753865781.mrrmekoh10.astroid@yuna.none> X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1753865923466 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.045 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. [lvmplugin.pm, plugin.pm, lvmthinplugin.pm, rbdplugin.pm, iscsidirectplugin.pm, esxiplugin.pm, iscsiplugin.pm, zfspoolplugin.pm] Subject: Re: [pve-devel] [PATCH storage 10/26] plugins: update volname parsing for new naming convention X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Cc: Proxmox VE development discussion Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" T24gSnVseSAzMCwgMjAyNSAxMDo1MyBhbSwgV29sZmdhbmcgQnVtaWxsZXIgd3JvdGU6Cj4gT24g V2VkLCBKdWwgMzAsIDIwMjUgYXQgMTA6Mzc6MjdBTSArMDIwMCwgRmFiaWFuIEdyw7xuYmljaGxl ciB3cm90ZToKPj4gT24gSnVseSAyOSwgMjAyNSAxOjE1IHBtLCBXb2xmZ2FuZyBCdW1pbGxlciB3 cm90ZToKPj4gPiAtIEVTWGksIElTQ1NJRGlyZWN0LCBJU0NTSToKPj4gPiAgIFZvbHVtZXMgYXJl IGFsd2F5cyB2bSB2b2x1bWVzLgo+PiA+IC0gTFZNOgo+PiA+ICAgTmV3IHZvbHVtZXMgdXNlIGEg YHZvbC12bS1gIG9yIGB2b2wtY3QtYCBwcmVmaXguCj4+ID4gLSBEaXIgYmFzZWQsIEx2bVRoaW4s IFJCRDoKPj4gPiAgIExpa2UgTFZNLCBidXQgZm9yIGJhc2UgaW1hZ2VzIGEgYGJhc2UtYCBwcmVm aXggaXMgYWRkZWQKPj4gPiAgICphZGRpdGlvbmFsbHkqLCBpbnN0ZWFkIG9mICpyZXBsYWNpbmcq IHRoZSBgdm0tYCBwb3J0aW9uIGxpa2Ugd2UKPj4gPiAgIHVzZWQgdG8uCj4+ID4gLSBaRlM6Cj4+ ID4gICBWTXM6IGB2b2wtdm0tYCBwcmVmaXguCj4+ID4gICBDb250YWluZXJzOiBgc3Vidm9sLWN0 LWAgcHJlZml4Lgo+PiAKPj4gd2UgY291bGQgZ2V0IHJpZCBvZiB0aGlzIGhpc3RvcmljIGFub21h bHkgd2hpbGUgd2UncmUgYXQgaXQsIGFuZCBtYWtlCj4+IHRoZSBuZXcgdnR5cGUganVzdCBlbmNv ZGVkIGFzIHZvbC1jdCBmb3IgY29uc2lzdGVuY3kgLSB0aGF0IHRob3NlIGFyZQo+PiBhbHdheXMg ZmlsZXN5c3RlbSBkYXRhc2V0cywgYW5kIHRoZSB2b2wtdm0gb25lcyBhbHdheXMgenZvbHMgaXMg YW4KPj4gaW1wbGVtZW50YXRpb24gZGV0YWlsIHRoZW4/Cj4gCj4gQnV0IHRoaXMgd291bGQgYWxz byBtYWtlIGl0IGRpZmZpY3VsdCBpZiB3ZSBldmVyIHdhbnQgdG8gYWxsb3cgenZvbHMKPiB3aXRo IGZpbGUgc3lzdGVtcy4gQW5kIGdpdmVuIHRoYXQgdGhlIGNvZGUgZmFsbHMgdGhyb3VnaCB0byBQ bHVnaW4ucG0gaW4KPiBzb21lIHBsYWNlcyAoYW5kIGRpciBwbHVnaW5zIGNhbiB0aGVvcmV0aWNh bGx5IGhhdmUgc2l6ZT0wIGNvbnRhaW5lcnMKPiBkaXJzKSwgaXQgc2VlbWVkIG11Y2ggc2FmZXIg dG8gc3RpY2sgd2l0aCBhIHNjaGVtZSB0aGF0IHdvcmtzIGFjcm9zcwo+IG1vcmUgc3RvcmFnZSB0 eXBlcy4gRWcuIHdlIGZhbGwgdGhyb3VnaCB0byBQbHVnaW4ucG0gdmlhCj4gYGdldF9uZXh0X3Zt X2Rpc2tuYW1lKClgIHdoaWNoIGlzIHRoZSB0aGluZyB0aGF0IGNhdXNlcyB0aGUgInN1YnZvbC1j dC0iCj4gcHJlZml4IGZvciAiZm9ybWF0ID09IHN1YnZvbCIuIEFuZCB1bmxpa2UgZGlyIHBsdWdp bnMsIG91ciBaRlMgcGx1Z2luCj4gZG9lcyBub3QgaGF2ZSBhIGRpc3Rpbmd1aXNoaW5nIGZvcm1h dCBzdWZmaXggZm9yIHRoaXMuLi4KCnVzaW5nIHp2b2xzIHRoZXJlIGRvZXNuJ3Qgc2VlbSBsaWtl IGEgZ29vZCBpZGVhLCBidXQgcG9pbnQgdGFrZW4gOykKCj4gCj4+IAo+PiA+ICAgQm90aCBhbHNv IGdldCBhbiBvcHRpb25hbCBhZGRpdGlvbmFsIGBiYXNlLWAgcHJlZml4IGZvciBiYXNlCj4+ID4g ICB2b2x1bWVzLgo+PiA+IAo+PiA+IE5vdGU6IGFsbCBuZXcgYmFzZS0gcHJlZml4IGNvbWUgaW4g ZnJvbnQgb2YgdGhlIGAoc3ViKXZvbC0qYCBwcmVmaXhlcy4KPj4gPiAKPj4gPiBTaWduZWQtb2Zm LWJ5OiBXb2xmZ2FuZyBCdW1pbGxlciA8dy5idW1pbGxlckBwcm94bW94LmNvbT4KPj4gPiAtLS0K Pj4gPiAgc3JjL1BWRS9TdG9yYWdlL0VTWGlQbHVnaW4ucG0gICAgICAgIHwgIDIgKy0KPj4gPiAg c3JjL1BWRS9TdG9yYWdlL0lTQ1NJRGlyZWN0UGx1Z2luLnBtIHwgIDIgKy0KPj4gPiAgc3JjL1BW RS9TdG9yYWdlL0lTQ1NJUGx1Z2luLnBtICAgICAgIHwgIDIgKy0KPj4gPiAgc3JjL1BWRS9TdG9y YWdlL0xWTVBsdWdpbi5wbSAgICAgICAgIHwgMTkgKysrKysrKystLS0KPj4gPiAgc3JjL1BWRS9T dG9yYWdlL0x2bVRoaW5QbHVnaW4ucG0gICAgIHwgMTMgKysrKysrKysKPj4gPiAgc3JjL1BWRS9T dG9yYWdlL1BsdWdpbi5wbSAgICAgICAgICAgIHwgNDggKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLQo+PiA+ICBzcmMvUFZFL1N0b3JhZ2UvUkJEUGx1Z2luLnBtICAgICAgICAgfCA0NSArKysr KysrKysrKysrKysrKysrKysrKystLQo+PiA+ICBzcmMvUFZFL1N0b3JhZ2UvWkZTUG9vbFBsdWdp bi5wbSAgICAgfCAzNCArKysrKysrKysrKysrKysrLS0tLQo+PiA+ICA4IGZpbGVzIGNoYW5nZWQs IDEzOCBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlvbnMoLSkKPj4gPiAKPj4gPiBkaWZmIC0tZ2l0 IGEvc3JjL1BWRS9TdG9yYWdlL0VTWGlQbHVnaW4ucG0gYi9zcmMvUFZFL1N0b3JhZ2UvRVNYaVBs dWdpbi5wbQo+PiA+IGluZGV4IGVlYjZhNDguLmVhMmY4ZjkgMTAwNjQ0Cj4+ID4gLS0tIGEvc3Jj L1BWRS9TdG9yYWdlL0VTWGlQbHVnaW4ucG0KPj4gPiArKysgYi9zcmMvUFZFL1N0b3JhZ2UvRVNY aVBsdWdpbi5wbQo+PiA+IEBAIC00MjEsNyArNDIxLDcgQEAgc3ViIHBhcnNlX3ZvbG5hbWUgewo+ PiA+ICAKPj4gPiAgICAgIG15ICRmb3JtYXQgPSAncmF3JzsKPj4gPiAgICAgICRmb3JtYXQgPSAn dm1kaycgaWYgJHZvbG5hbWUgPX4gL1wudm1kayQvOwo+PiA+IC0gICAgcmV0dXJuICgnaW1hZ2Vz JywgJHZvbG5hbWUsIDAsIHVuZGVmLCB1bmRlZiwgdW5kZWYsICRmb3JtYXQpOwo+PiA+ICsgICAg cmV0dXJuICgndm0tdm9sJywgJHZvbG5hbWUsIDAsIHVuZGVmLCB1bmRlZiwgdW5kZWYsICRmb3Jt YXQpOwo+PiA+ICB9Cj4+ID4gIAo+PiA+ICBzdWIgbGlzdF9pbWFnZXMgewo+PiA+IGRpZmYgLS1n aXQgYS9zcmMvUFZFL1N0b3JhZ2UvSVNDU0lEaXJlY3RQbHVnaW4ucG0gYi9zcmMvUFZFL1N0b3Jh Z2UvSVNDU0lEaXJlY3RQbHVnaW4ucG0KPj4gPiBpbmRleCAwNjlhNDFmLi5mNWI0NjZlIDEwMDY0 NAo+PiA+IC0tLSBhL3NyYy9QVkUvU3RvcmFnZS9JU0NTSURpcmVjdFBsdWdpbi5wbQo+PiA+ICsr KyBiL3NyYy9QVkUvU3RvcmFnZS9JU0NTSURpcmVjdFBsdWdpbi5wbQo+PiA+IEBAIC04Nyw3ICs4 Nyw3IEBAIHN1YiBwYXJzZV92b2xuYW1lIHsKPj4gPiAgICAgIG15ICgkY2xhc3MsICR2b2xuYW1l KSA9IEBfOwo+PiA+ICAKPj4gPiAgICAgIGlmICgkdm9sbmFtZSA9fiBtL15sdW4oXGQrKSQvKSB7 Cj4+ID4gLSAgICAgICAgcmV0dXJuICgnaW1hZ2VzJywgJDEsIHVuZGVmLCB1bmRlZiwgdW5kZWYs IHVuZGVmLCAncmF3Jyk7Cj4+ID4gKyAgICAgICAgcmV0dXJuICgndm0tdm9sJywgJDEsIHVuZGVm LCB1bmRlZiwgdW5kZWYsIHVuZGVmLCAncmF3Jyk7Cj4+ID4gICAgICB9Cj4+ID4gIAo+PiA+ICAg ICAgZGllICJ1bmFibGUgdG8gcGFyc2UgaXNjc2kgdm9sdW1lIG5hbWUgJyR2b2xuYW1lJ1xuIjsK Pj4gPiBkaWZmIC0tZ2l0IGEvc3JjL1BWRS9TdG9yYWdlL0lTQ1NJUGx1Z2luLnBtIGIvc3JjL1BW RS9TdG9yYWdlL0lTQ1NJUGx1Z2luLnBtCj4+ID4gaW5kZXggN2IzMDk1NS4uNDg3NWExZiAxMDA2 NDQKPj4gPiAtLS0gYS9zcmMvUFZFL1N0b3JhZ2UvSVNDU0lQbHVnaW4ucG0KPj4gPiArKysgYi9z cmMvUFZFL1N0b3JhZ2UvSVNDU0lQbHVnaW4ucG0KPj4gPiBAQCAtMzcxLDcgKzM3MSw3IEBAIHN1 YiBwYXJzZV92b2xuYW1lIHsKPj4gPiAgICAgIG15ICgkY2xhc3MsICR2b2xuYW1lKSA9IEBfOwo+ PiA+ICAKPj4gPiAgICAgIGlmICgkdm9sbmFtZSA9fiBtIV5cZCtcLlxkK1wuXGQrXC4oW14vXHNd KykkISkgewo+PiA+IC0gICAgICAgIHJldHVybiAoJ2ltYWdlcycsICQxLCB1bmRlZiwgdW5kZWYs IHVuZGVmLCB1bmRlZiwgJ3JhdycpOwo+PiA+ICsgICAgICAgIHJldHVybiAoJ3ZtLXZvbCcsICQx LCB1bmRlZiwgdW5kZWYsIHVuZGVmLCB1bmRlZiwgJ3JhdycpOwo+PiA+ICAgICAgfQo+PiA+ICAK Pj4gPiAgICAgIGRpZSAidW5hYmxlIHRvIHBhcnNlIGlzY3NpIHZvbHVtZSBuYW1lICckdm9sbmFt ZSdcbiI7Cj4+ID4gZGlmZiAtLWdpdCBhL3NyYy9QVkUvU3RvcmFnZS9MVk1QbHVnaW4ucG0gYi9z cmMvUFZFL1N0b3JhZ2UvTFZNUGx1Z2luLnBtCj4+ID4gaW5kZXggNjY5NGNmMi4uOWI4OGM2YSAx MDA2NDQKPj4gPiAtLS0gYS9zcmMvUFZFL1N0b3JhZ2UvTFZNUGx1Z2luLnBtCj4+ID4gKysrIGIv c3JjL1BWRS9TdG9yYWdlL0xWTVBsdWdpbi5wbQo+PiA+IEBAIC00NTIsMTEgKzQ1MiwyMiBAQCBz dWIgcGFyc2Vfdm9sbmFtZSB7Cj4+ID4gIAo+PiA+ICAgICAgUFZFOjpTdG9yYWdlOjpQbHVnaW46 OnBhcnNlX2x2bV9uYW1lKCR2b2xuYW1lKTsKPj4gPiAgCj4+ID4gLSAgICBpZiAoJHZvbG5hbWUg PX4gbS9eKHZtLShcZCspLVxTKykkLykgewo+PiA+IC0gICAgICAgIG15ICRuYW1lID0gJDE7Cj4+ ID4gLSAgICAgICAgbXkgJHZtaWQgPSAkMjsKPj4gPiArICAgIGlmICgKPj4gPiArICAgICAgICAk dm9sbmFtZSA9fiBtIV4oPzxuYW1lPgo+PiA+ICsgICAgICAgICgKPj4gPiArICAgICAgICAgICAg IyBOZXcgc3R5bGUgdm9sdW1lcyBoYXZlIGEgdnR5cGU6Cj4+ID4gKyAgICAgICAgICAgICAgdm9s LSg/PHZ0eXBlPnZtfGN0KQo+PiA+ICsKPj4gPiArICAgICAgICAgICAgIyBPbGQgc3R5bGU6Cj4+ ID4gKyAgICAgICAgICAgIHwgdm0KPj4gPiArICAgICAgICApCj4+ID4gKyAgICAgICAgLSg/PHZt aWQ+XGQrKS1cUysKPj4gPiArICAgICAgICApJCF4bgo+PiA+ICsgICAgKSB7Cj4+ID4gKyAgICAg ICAgbXkgKCRuYW1lLCAkdm1pZCwgJHZ0eXBlKSA9IEAre3F3KG5hbWUgdm1pZCB2dHlwZSl9Owo+ PiA+ICsgICAgICAgICR2dHlwZSA9ICR2dHlwZSA/ICIkdnR5cGUtdm9sIiA6ICdpbWFnZXMnOwo+ PiA+ICAgICAgICAgIG15ICRmb3JtYXQgPSAkdm9sbmFtZSA9fiBtL1wucWNvdzIkLyA/ICdxY293 MicgOiAncmF3JzsKPj4gPiAtICAgICAgICByZXR1cm4gKCdpbWFnZXMnLCAkbmFtZSwgJHZtaWQs IHVuZGVmLCB1bmRlZiwgdW5kZWYsICRmb3JtYXQpOwo+PiA+ICsgICAgICAgIHJldHVybiAoJHZ0 eXBlLCAkbmFtZSwgJHZtaWQsIHVuZGVmLCB1bmRlZiwgdW5kZWYsICRmb3JtYXQpOwo+PiA+ICAg ICAgfQo+PiA+ICAKPj4gPiAgICAgIGRpZSAidW5hYmxlIHRvIHBhcnNlIGx2bSB2b2x1bWUgbmFt ZSAnJHZvbG5hbWUnXG4iOwo+PiA+IGRpZmYgLS1naXQgYS9zcmMvUFZFL1N0b3JhZ2UvTHZtVGhp blBsdWdpbi5wbSBiL3NyYy9QVkUvU3RvcmFnZS9Mdm1UaGluUGx1Z2luLnBtCj4+ID4gaW5kZXgg Y2RmMGZkMC4uNzUxYmQ3YiAxMDA2NDQKPj4gPiAtLS0gYS9zcmMvUFZFL1N0b3JhZ2UvTHZtVGhp blBsdWdpbi5wbQo+PiA+ICsrKyBiL3NyYy9QVkUvU3RvcmFnZS9Mdm1UaGluUGx1Z2luLnBtCj4+ ID4gQEAgLTc3LDYgKzc3LDE5IEBAIHN1YiBwYXJzZV92b2xuYW1lIHsKPj4gPiAgCj4+ID4gICAg ICBQVkU6OlN0b3JhZ2U6OlBsdWdpbjo6cGFyc2VfbHZtX25hbWUoJHZvbG5hbWUpOwo+PiA+ICAK Pj4gPiArICAgICMgTmV3IG5hbWluZyBjb252ZW50aW9uOgo+PiA+ICsgICAgaWYgKAo+PiA+ICsg ICAgICAgICR2b2xuYW1lID1+IG0vXig/PG5hbWU+Cj4+ID4gKyAgICAgICAgKD88aXNiYXNlPmJh c2UtKT8KPj4gPiArICAgICAgICAoPzp2b2wtKD88dnR5cGU+IHZtfGN0KSktCj4+ID4gKyAgICAg ICAgKD88dm1pZD5cZCspLQo+PiA+ICsgICAgICAgIFxTKykkL3huCj4+ID4gKyAgICApIHsKPj4g PiArICAgICAgICBteSAoJG5hbWUsICR2bWlkLCAkdnR5cGUsICRpc2Jhc2UpID0gQCt7cXcobmFt ZSB2bWlkIHZ0eXBlIGlzYmFzZSl9Owo+PiA+ICsgICAgICAgIHJldHVybiAoJHZ0eXBlIC4gJy12 b2wnLCAkbmFtZSwgJHZtaWQsIHVuZGVmLCB1bmRlZiwgISEkaXNiYXNlLCAncmF3Jyk7Cj4+ID4g KyAgICB9Cj4+ID4gKwo+PiA+ICsgICAgIyBPbGQgbmFtaW5nIGNvbnZlbnRpb246Cj4+ID4gICAg ICBpZiAoJHZvbG5hbWUgPX4gbS9eKCh2bXxiYXNlKS0oXGQrKS1cUyspJC8pIHsKPj4gPiAgICAg ICAgICByZXR1cm4gKCdpbWFnZXMnLCAkMSwgJDMsIHVuZGVmLCB1bmRlZiwgJDIgZXEgJ2Jhc2Un LCAncmF3Jyk7Cj4+ID4gICAgICB9Cj4+ID4gZGlmZiAtLWdpdCBhL3NyYy9QVkUvU3RvcmFnZS9Q bHVnaW4ucG0gYi9zcmMvUFZFL1N0b3JhZ2UvUGx1Z2luLnBtCj4+ID4gaW5kZXggYWU5ZDY3My4u NzdiY2ZjNyAxMDA2NDQKPj4gPiAtLS0gYS9zcmMvUFZFL1N0b3JhZ2UvUGx1Z2luLnBtCj4+ID4g KysrIGIvc3JjL1BWRS9TdG9yYWdlL1BsdWdpbi5wbQo+PiA+IEBAIC03MTEsMTkgKzcxMSw0NiBA QCBzdWIgY2x1c3Rlcl9sb2NrX3N0b3JhZ2Ugewo+PiA+ICBteSBzdWIgcGFyc2Vfc25hcF9uYW1l IHsKPj4gPiAgICAgIG15ICgkbmFtZSkgPSBAXzsKPj4gPiAgCj4+ID4gKyAgICBpZiAoJG5hbWUg PX4gbS9ec25hcC0oLiopLXZvbC0oPzp2bXxjdCkoLiopJC8pIHsKPj4gPiArICAgICAgICByZXR1 cm4gJDE7Cj4+ID4gKyAgICB9Cj4+ID4gKwo+PiA+ICAgICAgaWYgKCRuYW1lID1+IG0vXnNuYXAt KC4qKS12bSguKikkLykgewo+PiA+ICAgICAgICAgIHJldHVybiAkMTsKPj4gPiAgICAgIH0KPj4g PiArCj4+ID4gKyAgICByZXR1cm47Cj4+ID4gIH0KPj4gPiAgCj4+ID4gK291ciAkRElTS19OQU1F X1JFR0VYID0gcXIhCj4+ID4gKyAgICAoPzxuYW1lPgo+PiA+ICsgICAgICAgICgKPj4gPiArICAg ICAgICAgICAgIyBOZXcgY29udmVudGlvbjogJ2Jhc2UtJyBwcmVmaXgsICd2b2wtdm0nIGFuZCAn c3Vidm9sLWN0Jy4KPj4gPiArICAgICAgICAgICAgICAoPzxpc3Jhdz4gKD88aXNiYXNlPmJhc2Ut KT8gdm9sLSAgICAoPzx2dHlwZT4gdm18Y3QpKQo+PiA+ICsgICAgICAgICAgICB8ICg/PGlzc3Vi PiAoPzxpc2Jhc2U+YmFzZS0pPyBzdWJ2b2wtICg/PHZ0eXBlPiBjdCkpCj4+ID4gKwo+PiA+ICsg ICAgICAgICAgICAjIE9sZCBjb252ZW50aW9uOiAidm0iIHZzICJiYXNlIiBhbmQgInN1YnZvbCIg dnMgImJhc2V2b2wiCj4+ID4gKyAgICAgICAgICAgIHwgKD88aXNyYXc+IHZtKQo+PiAKPj4gYGlz cmF3YCBpcyBhIHdlaXJkIGlkZW50aWZpZXIgaGVyZS4gaXQncyBhbHNvIG5vdCB1c2VkIGFueXdo ZXJlLCBzbwo+PiBtYXliZSB3ZSBjb3VsZCBkcm9wIGl0IGZvciBub3cgYW5kIHRoaW5rIG9mIGEg YmV0dGVyIG5hbWUgaWYgd2UgZXZlcgo+PiBuZWVkIGl0Pwo+IAo+IChZZWFoLi4uIEkganVzdCBs ZWZ0IGl0IGluIGZvciBiZXR0ZXIgYWxpZ25tZW50L2RvY3VtZW50YXRpb24gOlApCgpidXQgaXQn cyBjb25mdXNpbmcgLSB0aGUgb3Bwb3NpdGUgb2Ygc3Vidm9sIGlzIG5vdCByYXcsIHRoZSBvcHBv c2l0ZSBvZgpzdWJ2b2wgaXMgLi4gZmlsZT8gaW1hZ2U/IC4uPwoKPj4gPiArICAgICAgICAgICAg fCAoPzxpc3N1Yj4gc3Vidm9sKQo+PiA+ICsgICAgICAgICAgICB8ICg/PGlzcmF3PiAoPzxpc2Jh c2U+YmFzZSkpCj4+ID4gKyAgICAgICAgICAgIHwgKD88aXNzdWI+ICg/PGlzYmFzZT5iYXNldm9s KSkKPj4gCj4+IHRoZSBvbGQgY29udmVudGlvbiB3YXMgYWN0dWFsbHkgYSBsb3QgbW9yZSBsb29z ZSwgc2VlIGJlbG93Li4KPiAKPiBJTU8gdGhlIG1vcmUgbG9vc2UgcGFydCBzaG91bGQgYmUgaW4g YW4gYGVsc2VgIGluIGBwYXJzZV9uYW1lX2RpcmAuCj4gVGhpcyByZWdleCBpcyB1c2VkIGluIG90 aGVyIHBsdWdpbnMgYW5kIEkgZG9uJ3Qgd2FudCB0aGlzIHJlZ2V4IHRvIGFsbG93Cj4genZvbHMg bmFtZWQgYPCfkqlgLgoKZmFpciBlbm91Z2guCgo+IAo+PiAKPj4gd2UgcHJvYmFibHkgc2hvdWxk IGFkZCBhIHdhcm5pbmcgdG8gcHZlOHRvOSBmb3Igdm9sdW1lcyBvbiBidWlsdGluCj4+IHN0b3Jh Z2UgdHlwZXMgdGhhdCBkb24ndCBtYXRjaCB0aGlzIHN0cmljdCBzY2hlbWUgYXQgbGVhc3Q/Cj4+ IAo+PiA+ICsgICAgICAgICkKPj4gPiArICAgICAgICAtCj4+ID4gKyAgICAgICAgKD88dm1pZD5c ZCspCj4+ID4gKyAgICAgICAgLQo+PiA+ICsgICAgICAgICg/PGxhYmVsPlteL1xzXSspCj4+ID4g KyAgICApCj4+ID4gKyF4bjsKPj4gPiArCj4+ID4gIHN1YiBwYXJzZV9uYW1lX2RpciB7Cj4+ID4g LSAgICBteSAkbmFtZSA9IHNoaWZ0Owo+PiA+ICsgICAgbXkgKCRuYW1lKSA9IEBfOwo+PiA+ICAK Pj4gPiAtICAgIGlmICgkbmFtZSA9fiBtIV4oKHZtLXxiYXNlLXxzdWJ2b2wtKShcZCspLVteL1xz XStcLihyYXd8cWNvdzJ8dm1ka3xzdWJ2b2wpKSQhKSB7Cj4+ID4gLSAgICAgICAgbXkgJGlzYmFz ZSA9ICQyIGVxICdiYXNlLScgPyAkMiA6IHVuZGVmOwo+PiA+IC0gICAgICAgIHJldHVybiAoJDEs ICQ0LCAkaXNiYXNlKTsgIyAobmFtZSwgZm9ybWF0LCBpc0Jhc2UpCj4+ID4gKyAgICBpZiAoJG5h bWUgPX4gbSFeJERJU0tfTkFNRV9SRUdFWFwuKD88Zm9ybWF0PnJhd3xxY293Mnx2bWRrfHN1YnZv bCkkIXhuKSB7Cj4+ID4gKyAgICAgICAgbXkgKCRuYW1lLCAkaXNyYXcsICRpc3N1YiwgJGlzYmFz ZSwgJHZtaWQsICR2dHlwZSwgJGxhYmVsLCAkZm9ybWF0KSA9Cj4+ID4gKyAgICAgICAgICAgIEAr e3F3KG5hbWUgaXNyYXcgaXNzdWIgaXNiYXNlIHZtaWQgdnR5cGUgbGFiZWwgZm9ybWF0KX07Cj4+ ID4gKyAgICAgICAgcmV0dXJuICgkbmFtZSwgJGZvcm1hdCwgISEkaXNiYXNlLCAkdnR5cGUgPyAi JHZ0eXBlLXZvbCIgOiAiaW1hZ2VzIik7Cj4+ID4gICAgICB9IGVsc2lmICgkbmFtZSA9fiBtIV4o KGJhc2UtKT9bXi9cc10rXC4ocmF3fHFjb3cyfHZtZGt8c3Vidm9sKSkkISkgewo+PiA+IC0gICAg ICAgIHdhcm4gInRoaXMgdm9sdW1lIG5hbWUgYCRuYW1lYCBpcyBub3Qgc3VwcG9ydGVkIGFueW1v cmVcbiIgaWYgIXBhcnNlX3NuYXBfbmFtZSgkbmFtZSk7Cj4+ID4gKyAgICAgICAgZGllICJ0aGlz IHZvbHVtZSBuYW1lIGAkbmFtZWAgaXMgbm90IHN1cHBvcnRlZCBhbnltb3JlXG4iOwo+PiAKPj4g YXMgZGlzY3Vzc2VkIG9mZiBsaXN0LCB0aGlzIHJlZ3Jlc3NlZCByZWNlbnRseSBhbmQgbmVlZHMg dG8gYmUgZml4ZWQgLQo+PiB3ZSBvbmx5IHdhbnQgdG8gc2tpcCBzbmFwc2hvdCB2b2x1bWVzLCBh bmQgYWxsb3cgb3RoZXIgdGhpbmdzIGZvciB0aGUKPj4gbGVnYWN5IHR5cGVzLi4KPj4gCj4+ID4g ICAgICB9Cj4+ID4gIAo+PiA+ICAgICAgZGllICJ1bmFibGUgdG8gcGFyc2Ugdm9sdW1lIGZpbGVu YW1lICckbmFtZSdcbiI7Cj4+ID4gQEAgLTczMywxNSArNzYwLDE0IEBAIHN1YiBwYXJzZV92b2xu YW1lIHsKPj4gPiAgICAgIG15ICgkY2xhc3MsICR2b2xuYW1lKSA9IEBfOwo+PiA+ICAKPj4gPiAg ICAgIGlmICgkdm9sbmFtZSA9fiBtIV4oXGQrKS8oXFMrKS8oXGQrKS8oXFMrKSQhKSB7Cj4+ID4g LSAgICAgICAgbXkgKCRiYXNlZHZtaWQsICRiYXNlbmFtZSkgPSAoJDEsICQyKTsKPj4gPiArICAg ICAgICBteSAoJGJhc2Vkdm1pZCwgJGJhc2VuYW1lLCAkdm1pZCwgJG5hbWUpID0gKCQxLCAkMiwg JDMsICQ0KTsKPj4gPiAgICAgICAgICBwYXJzZV9uYW1lX2RpcigkYmFzZW5hbWUpOwo+PiA+IC0g ICAgICAgIG15ICgkdm1pZCwgJG5hbWUpID0gKCQzLCAkNCk7Cj4+ID4gLSAgICAgICAgbXkgKHVu ZGVmLCAkZm9ybWF0LCAkaXNCYXNlKSA9IHBhcnNlX25hbWVfZGlyKCRuYW1lKTsKPj4gPiAtICAg ICAgICByZXR1cm4gKCdpbWFnZXMnLCAkbmFtZSwgJHZtaWQsICRiYXNlbmFtZSwgJGJhc2Vkdm1p ZCwgJGlzQmFzZSwgJGZvcm1hdCk7Cj4+ID4gKyAgICAgICAgbXkgKHVuZGVmLCAkZm9ybWF0LCAk aXNCYXNlLCAkdnR5cGUpID0gcGFyc2VfbmFtZV9kaXIoJG5hbWUpOwo+PiA+ICsgICAgICAgIHJl dHVybiAoJHZ0eXBlLCAkbmFtZSwgJHZtaWQsICRiYXNlbmFtZSwgJGJhc2Vkdm1pZCwgJGlzQmFz ZSwgJGZvcm1hdCk7Cj4+ID4gICAgICB9IGVsc2lmICgkdm9sbmFtZSA9fiBtIV4oXGQrKS8oXFMr KSQhKSB7Cj4+ID4gICAgICAgICAgbXkgKCR2bWlkLCAkbmFtZSkgPSAoJDEsICQyKTsKPj4gPiAt ICAgICAgICBteSAodW5kZWYsICRmb3JtYXQsICRpc0Jhc2UpID0gcGFyc2VfbmFtZV9kaXIoJG5h bWUpOwo+PiA+IC0gICAgICAgIHJldHVybiAoJ2ltYWdlcycsICRuYW1lLCAkdm1pZCwgdW5kZWYs IHVuZGVmLCAkaXNCYXNlLCAkZm9ybWF0KTsKPj4gPiArICAgICAgICBteSAodW5kZWYsICRmb3Jt YXQsICRpc0Jhc2UsICR2dHlwZSkgPSBwYXJzZV9uYW1lX2RpcigkbmFtZSk7Cj4+ID4gKyAgICAg ICAgcmV0dXJuICgkdnR5cGUsICRuYW1lLCAkdm1pZCwgdW5kZWYsIHVuZGVmLCAkaXNCYXNlLCAk Zm9ybWF0KTsKPj4gPiAgICAgIH0gZWxzaWYgKCR2b2xuYW1lID1+IG0hXmlzby8oW14vXSskUFZF OjpTdG9yYWdlOjpJU09fRVhUX1JFXzApJCEpIHsKPj4gPiAgICAgICAgICByZXR1cm4gKCdpc28n LCAkMSwgdW5kZWYsIHVuZGVmLCB1bmRlZiwgdW5kZWYsICdyYXcnKTsKPj4gPiAgICAgIH0gZWxz aWYgKCR2b2xuYW1lID1+IG0hXnZ6dG1wbC8oW14vXSskUFZFOjpTdG9yYWdlOjpWWlRNUExfRVhU X1JFXzEpJCEpIHsKPj4gCj4+IFsuLl0KPiAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpwdmUtZGV2ZWwgbWFpbGluZyBsaXN0CnB2ZS1kZXZlbEBsaXN0 cy5wcm94bW94LmNvbQpodHRwczovL2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9s aXN0aW5mby9wdmUtZGV2ZWwK