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 B0FE01FF348 for ; Wed, 17 Apr 2024 15:10:41 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 1F1537523; Wed, 17 Apr 2024 15:10:41 +0200 (CEST) Message-ID: <3797837f-2411-4472-857c-120dd2242b06@proxmox.com> Date: Wed, 17 Apr 2024 15:10:01 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Beta To: Proxmox VE development discussion , =?UTF-8?Q?Fabian_Gr=C3=BCnbichler?= References: <20240416131909.2867605-1-d.csapak@proxmox.com> <20240416131909.2867605-4-d.csapak@proxmox.com> <1713350290.jfv7fnie9d.astroid@yuna.none> Content-Language: en-US From: Dominik Csapak In-Reply-To: <1713350290.jfv7fnie9d.astroid@yuna.none> X-SPAM-LEVEL: Spam detection results: 0 AWL -0.386 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 SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: Re: [pve-devel] [PATCH storage 3/9] plugin: dir: handle ova files for import 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 Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" T24gNC8xNy8yNCAxNDo0NSwgRmFiaWFuIEdyw7xuYmljaGxlciB3cm90ZToKPiBPbiBBcHJpbCAx NiwgMjAyNCAzOjE4IHBtLCBEb21pbmlrIENzYXBhayB3cm90ZToKPj4gc2luY2Ugd2Ugd2FudCB0 byBoYW5kbGUgb3ZhIGZpbGVzICh3aGljaCBhcmUgb25seSBvdmYrdm1ka3MgYnVuZGxlZCBpbiBh Cj4+IHRhciBmaWxlKSBmb3IgaW1wb3J0LCBhZGQgY29kZSB0aGF0IGhhbmRsZXMgdGhhdC4KPj4K Pj4gd2UgaW50cm9kdWNlIGEgdmFsaWQgdm9sbmFtZSBmb3IgZmlsZXMgY29udGFpbmVkIGluIG92 YXMgbGlrZSB0aGlzOgo+Pgo+PiAgIHN0b3JhZ2U6aW1wb3J0L2FyY2hpdmUub3ZhL2Rpc2stMS52 bWRrCj4+Cj4+IGJ5IGJhc2ljYWxseSB0cmVhdGluZyB0aGUgbGFzdCBwYXJ0IG9mIHRoZSBwYXRo IGFzIHRoZSBuYW1lIGZvciB0aGUKPj4gY29udGFpbmVkIGRpc2sgd2Ugd2FudC4KPj4KPj4gd2Ug dGhlbiBwcm92aWRlIDMgZnVuY3Rpb25zIHRvIHVzZSBmb3IgdGhhdDoKPj4KPj4gKiBjb3B5X25l ZWRzX2V4dHJhY3Rpb246IGRldGVybWluZXMgZnJvbSB0aGUgZ2l2ZW4gdm9saWQgKGxpa2UgYWJv dmUpIGlmCj4+ICAgIHRoYXQgbmVlZHMgZXh0cmFjdGlvbiB0byBjb3B5IGl0LCBjdXJyZW50bHkg b25seSAnaW1wb3J0JyB2dHlwZSArCj4+ICAgIGRlZmluZWQgZm9ybWF0IHJldHVybnMgdHJ1ZSBo ZXJlIChpZiB3ZSBoYXZlIG1vcmUgb3B0aW9ucyBpbiB0aGUKPj4gICAgZnV0dXJlLCB3ZSBjYW4g b2YgY291cnNlIGVhc2lseSBleHRlbmQgdGhhdCkKPj4KPj4gKiBleHRyYWN0X2Rpc2tfZnJvbV9p bXBvcnRfZmlsZTogdGhpcyBhY3R1YWxseSBleHRyYWN0cyB0aGUgZmlsZSBmcm9tCj4+ICAgIHRo ZSBhcmNoaXZlLiBDdXJyZW50bHkgb25seSBvdmEgaXMgc3VwcG9ydGVkLCBzbyB0aGUgZXh0cmFj dGlvbiB3aXRoCj4+ICAgICd0YXInIGlzIGhhcmRjb2RlZCwgYnV0IGFnYWluIHdlIGNhbiBlYXNp bHkgZXh0ZW5kL21vZGlmeSB0aGF0IHNob3VsZAo+PiAgICB3ZSBuZWVkIHRvLgo+Pgo+PiAgICB3 ZSBjdXJyZW50bHkgZXh0cmFjdCBpbnRvIHRoZSBpbXBvcnQgc3RvcmFnZSBpbiBhIGRpcmVjdG9y eSBuYW1lZDoKPj4gICAgYC50bXBfPHBpZD5fPHRhcmdldHZtaWQ+YCB3aGljaCBzaG91bGQgbm90 IGNsYXNoIHdpdGggY29uY3VycmVudAo+PiAgICBvcGVyYXRpb25zICh0aG91Z2ggd2UgZG8gZXh0 cmFjdCBpdCBtdWx0aXBsZSB0aW1lcyB0aGVuKQo+Pgo+PiAgICBhbHRlcm5hdGl2ZWx5IHdlIGNv dWxkIGltcGxlbWVudCBlaXRoZXIgYSAndG1wc3RvcmFnZScgcGFyYW1ldGVyLAo+PiAgICBvciB1 c2UgZS5nLiAnL3Zhci90bXAvJyBvciBzaW1pbGFyLCBidXQgcmUtdXNpbmcgdGhlIGN1cnJlbnQg c3RvcmFnZQo+PiAgICBzZWVtZWQgb2suCj4+Cj4+ICogY2xlYW51cF9leHRyYWN0ZWRfaW1hZ2U6 IGludGVuZGVkIHRvIGNsZWFudXAgdGhlIGV4dHJhY3RlZCBpbWFnZXMgZnJvbQo+PiAgICBhYm92 ZSwgaW5jbHVkaW5nIHRoZSBzdXJyb3VuZGluZyB0ZW1wb3JhcnkgZGlyZWN0b3J5Cj4gCj4gdGhl IGhlbHBlcnMgY291bGQgYWxzbyBhbGwgbGl2ZSBpbiBxZW11LXNlcnZlciBmb3Igbm93LCB3aGlj aCB3b3VsZCBhbHNvCj4gbWFrZSBleHRlbmRpbmcgaXQgdG8gdXNlIGEgZGlmZmVyZW50IHN0b3Jh Z2UsIG9yIGRpcmVjdCBpbXBvcnRpbmcgdmlhIGEKPiBwaXBlIGVhc2llcj8gc2VlIGJlbG93IDsp Cj4gCj4+Cj4+IHdlIGhhdmUgdG8gbW9kaWZ5IHRoZSBgcGFyc2Vfb3ZmYCBhIGJpdCB0byBoYW5k bGUgdGhlIG1pc3NpbmcgZGlzawo+PiBpbWFnZXMsIGFuZCB3ZSBwYXJzZSB0aGUgc2l6ZSBvdXQg b2YgdGhlIG92ZiBwYXJ0IChzaW5jZSB0aGlzIGlzCj4+IGluZm9ybWFsIG9ubHksIGl0IHNob3Vs ZCBiZSBubyBwcm9ibGVtIGlmIHdlIGNhbm5vdCBwYXJzZSBpdCBzb21ldGltZXMpCj4+Cj4+IFNp Z25lZC1vZmYtYnk6IERvbWluaWsgQ3NhcGFrIDxkLmNzYXBha0Bwcm94bW94LmNvbT4KPj4gLS0t Cj4+ICAgc3JjL1BWRS9BUEkyL1N0b3JhZ2UvU3RhdHVzLnBtIHwgIDEgKwo+PiAgIHNyYy9QVkUv U3RvcmFnZS5wbSAgICAgICAgICAgICB8IDU5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKPj4gICBzcmMvUFZFL1N0b3JhZ2UvRGlyUGx1Z2luLnBtICAgfCAxMyArKysrKysrLQo+ PiAgIHNyYy9QVkUvU3RvcmFnZS9PVkYucG0gICAgICAgICB8IDUzICsrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLQo+PiAgIHNyYy9QVkUvU3RvcmFnZS9QbHVnaW4ucG0gICAgICB8ICA1ICsr Kwo+PiAgIDUgZmlsZXMgY2hhbmdlZCwgMTIzIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0p Cj4+Cj4+IGRpZmYgLS1naXQgYS9zcmMvUFZFL0FQSTIvU3RvcmFnZS9TdGF0dXMucG0gYi9zcmMv UFZFL0FQSTIvU3RvcmFnZS9TdGF0dXMucG0KPj4gaW5kZXggZjdlMzI0Zi4uNzdlZDU3YyAxMDA2 NDQKPj4gLS0tIGEvc3JjL1BWRS9BUEkyL1N0b3JhZ2UvU3RhdHVzLnBtCj4+ICsrKyBiL3NyYy9Q VkUvQVBJMi9TdG9yYWdlL1N0YXR1cy5wbQo+PiBAQCAtNzQ5LDYgKzc0OSw3IEBAIF9fUEFDS0FH RV9fLT5yZWdpc3Rlcl9tZXRob2Qoewo+PiAgIAkJCQknZWZpLXN0YXRlLWxvc3QnLAo+PiAgIAkJ CQknZ3Vlc3QtaXMtcnVubmluZycsCj4+ICAgCQkJCSdudm1lLXVuc3VwcG9ydGVkJywKPj4gKwkJ CQknb3ZhLW5lZWRzLWV4dHJhY3RpbmcnLAo+PiAgIAkJCQknb3ZtZi13aXRoLWxzaS11bnN1cHBv cnRlZCcsCj4+ICAgCQkJCSdzZXJpYWwtcG9ydC1zb2NrZXQtb25seScsCj4+ICAgCQkJICAgIF0s Cj4+IGRpZmYgLS1naXQgYS9zcmMvUFZFL1N0b3JhZ2UucG0gYi9zcmMvUFZFL1N0b3JhZ2UucG0K Pj4gaW5kZXggZjhlYTkzZC4uYmMwNzNlZiAxMDA3NTUKPj4gLS0tIGEvc3JjL1BWRS9TdG9yYWdl LnBtCj4+ICsrKyBiL3NyYy9QVkUvU3RvcmFnZS5wbQo+PiBAQCAtMjE4OSw0ICsyMTg5LDYzIEBA IHN1YiBnZXRfaW1wb3J0X21ldGFkYXRhIHsKPj4gICAgICAgcmV0dXJuICRwbHVnaW4tPmdldF9p bXBvcnRfbWV0YWRhdGEoJHNjZmcsICR2b2xuYW1lLCAkc3RvcmVpZCk7Cj4+ICAgfQo+PiAgIAo+ PiArc3ViIGNvcHlfbmVlZHNfZXh0cmFjdGlvbiB7Cj4+ICsgICAgbXkgKCR2b2xpZCkgPSBAXzsK Pj4gKyAgICBteSAoJHN0b3JlaWQsICR2b2xuYW1lKSA9IHBhcnNlX3ZvbHVtZV9pZCgkdm9saWQp Owo+PiArICAgIG15ICRjZmcgPSBjb25maWcoKTsKPj4gKyAgICBteSAkc2NmZyA9IHN0b3JhZ2Vf Y29uZmlnKCRjZmcsICRzdG9yZWlkKTsKPj4gKyAgICBteSAkcGx1Z2luID0gUFZFOjpTdG9yYWdl OjpQbHVnaW4tPmxvb2t1cCgkc2NmZy0+e3R5cGV9KTsKPj4gKwo+PiArICAgIG15ICgkdnR5cGUs ICRuYW1lLCAkdm1pZCwgJGJhc2VuYW1lLCAkYmFzZXZtaWQsICRpc0Jhc2UsICRmaWxlX2Zvcm1h dCkgPQo+PiArCSRwbHVnaW4tPnBhcnNlX3ZvbG5hbWUoJHZvbG5hbWUpOwo+PiArCj4+ICsgICAg cmV0dXJuICR2dHlwZSBlcSAnaW1wb3J0JyAmJiBkZWZpbmVkKCRmaWxlX2Zvcm1hdCk7Cj4+ICt9 Cj4gCj4gbm90IHN1cmUgdGhpcyBvbmUgaXMgbmVlZGVkPyBpdCBjb3VsZCBhbHNvIGp1c3QgYmUg YSBjYWxsIHRvCj4gUFZFOjpTdG9yYWdlOjpwYXJzZV92b2xuYW1lIGluIHFlbXUtc2VydmVyPwo+ IAo+PiArCj4+ICtzdWIgZXh0cmFjdF9kaXNrX2Zyb21faW1wb3J0X2ZpbGUgewo+IAo+IHNpbWls YXJseSwgdGhpcyBpcyBiYXNpY2FsbHkgUFZFOjpTdG9yYWdlOjpnZXRfaW1wb3J0X2RpciArIHRo ZQo+IHJ1bl9jb21tYW5kIGNhbGwsIGFuZCBjb3VsZCBsaXZlIGluIHFlbXUtc2VydmVyPwo+IAo+ PiArICAgIG15ICgkdm9saWQsICR2bWlkKSA9IEBfOwo+PiArCj4+ICsgICAgbXkgKCRzdG9yZWlk LCAkdm9sbmFtZSkgPSBwYXJzZV92b2x1bWVfaWQoJHZvbGlkKTsKPj4gKyAgICBteSAkY2ZnID0g Y29uZmlnKCk7Cj4+ICsgICAgbXkgJHNjZmcgPSBzdG9yYWdlX2NvbmZpZygkY2ZnLCAkc3RvcmVp ZCk7Cj4+ICsgICAgbXkgJHBsdWdpbiA9IFBWRTo6U3RvcmFnZTo6UGx1Z2luLT5sb29rdXAoJHNj ZmctPnt0eXBlfSk7Cj4+ICsKPj4gKyAgICBteSAoJHZ0eXBlLCAkbmFtZSwgdW5kZWYsIHVuZGVm LCB1bmRlZiwgdW5kZWYsICRmaWxlX2Zvcm1hdCkgPQo+PiArCSRwbHVnaW4tPnBhcnNlX3ZvbG5h bWUoJHZvbG5hbWUpOwo+PiArCj4+ICsgICAgZGllICJvbmx5IGZpbGVzIHdpdGggY29udGVudCB0 eXBlICdpbXBvcnQnIGNhbiBiZSBleHRyYWN0ZWRcbiIKPj4gKwlpZiAkdnR5cGUgbmUgJ2ltcG9y dCcgfHwgIWRlZmluZWQoJGZpbGVfZm9ybWF0KTsKPj4gKwo+PiArICAgICMgZXh0cmFjdCB0aGUg aW5uZXIgZmlsZSBmcm9tIHRoZSBuYW1lCj4+ICsgICAgaWYgKCR2b2xpZCA9fiBtISR7bmFtZX0v KFteL10rKSQhKSB7Cj4+ICsJJG5hbWUgPSAkMTsKPiAKPiB3ZSBzaG91bGQgcHJvYmFibHkgYmUg dmVyeSBjb25zZXJ2YXRpdmUgaGVyZSBhbmQgb25seSBhbGxvdyBbLV9hLXowLTldCj4gYXMgYSBz dGFydCAtIG9yIHNvbWV0aGluZyBzaW1pbGFyIHJhdGhlciByZXN0cmljdGl2ZS4uCj4gCj4+ICsg ICAgfQo+PiArCj4+ICsgICAgbXkgKCRzb3VyY2VfZmlsZSkgPSAkcGx1Z2luLT5wYXRoKCRzY2Zn LCAkdm9sbmFtZSwgJHN0b3JlaWQpOwo+PiArCj4+ICsgICAgbXkgJGRlc3RkaXIgPSAkcGx1Z2lu LT5nZXRfc3ViZGlyKCRzY2ZnLCAnaW1wb3J0Jyk7Cj4+ICsgICAgbXkgJHBpZCA9ICQkOwo+PiAr ICAgICRkZXN0ZGlyIC49ICIvLnRtcF8ke3BpZH1fJHt2bWlkfSI7Cj4+ICsgICAgbWtkaXIgJGRl c3RkaXI7Cj4+ICsKPj4gKyAgICAoJHNvdXJjZV9maWxlKSA9ICRzb3VyY2VfZmlsZSA9fiBtfF4o Ly4qKXw7ICMgdW50YWludAo+IAo+IGFnYWluIGEgcmF0aGVyIGludGVyZXN0aW5nIHVudGFpbnQg OykKPiAKPj4gKwo+PiArICAgIHJ1bl9jb21tYW5kKFsndGFyJywgJy14JywgJy1DJywgJGRlc3Rk aXIsICctZicsICRzb3VyY2VfZmlsZSwgJG5hbWVdKTsKPiAKPiBpZiAkbmFtZSB3YXMgYSBzeW1s aW5rIGluIHRoZSBhcmNoaXZlLCB5b3UndmUgbm93IGNyZWF0ZWQgYSBzeW1saW5rCj4gcG9pbnRp bmcgd2hlcmV2ZXIuLgo+IAo+PiArCj4+ICsgICAgcmV0dXJuICIkZGVzdGRpci8kbmFtZSI7Cj4g Cj4gYW5kIHRoaXMgcmV0dXJucyBhbiBhYnNvbHV0ZSBwYXRoIHRvIGl0LCBhbmQgbm93IHdlIGFy ZSBpbiB0cm91YmxlIGxhbmQKPiA7KSB3ZSBzaG91bGQgY2hlY2sgdGhhdCB0aGUgZmlsZSBpcyBh IHJlYWwgZmlsZSBoZXJlLi4KPiAKPj4gK30KPj4gKwo+PiArc3ViIGNsZWFudXBfZXh0cmFjdGVk X2ltYWdlIHsKPiAKPiBzYW1lIGZvciB0aGlzPwo+IAo+PiArICAgIG15ICgkc291cmNlKSA9IEBf Owo+PiArCj4+ICsgICAgaWYgKCRzb3VyY2UgPX4gbXxeKC8uKy9cLnRtcF9bMC05XStfWzAtOV0r KS9bXi9dKyR8KSB7Cj4+ICsJbXkgJHRtcGRpciA9ICQxOwo+PiArCj4+ICsJdW5saW5rICRzb3Vy Y2Ugb3IgJCEgPT0gRU5PRU5UIG9yIGRpZSAicmVtb3ZpbmcgaW1hZ2UgJHNvdXJjZSBmYWlsZWQ6 ICQhXG4iOwo+PiArCXJtZGlyICR0bXBkaXIgb3IgJCEgPT0gRU5PRU5UIG9yIGRpZSAicmVtb3Zp bmcgdG1wZGlyICR0bXBkaXIgZmFpbGVkOiAkIVxuIjsKPj4gKyAgICB9IGVsc2Ugewo+PiArCWRp ZSAiaW52YWxpZCBleHRyYWNlZCBpbWFnZSBwYXRoICckc291cmNlJ1xuIjsKPiAKPiBuaXQ6IHR5 cG8KPiAKPiB0aGVzZSBhcmUgYWxzbyBub3QgZGlzY292ZXJhYmxlIGlmIHRoZSBlcnJvciBoYW5k bGluZyBpbiBxZW11LXNlcnZlcgo+IGZhaWxlZCBmb3Igc29tZSByZWFzb24uLiBtaWdodCBiZSBh IHNvdXJjZSBvZiB1bndhbnRlZCBzcGFjZQo+IGNvbnN1bXB0aW9uLi4KCmFueSBzdWdnZXN0aW9u cyBmb3IgYmV0dGVyIGhhbmRsaW5nIHRoYXQgY2xlYW51cD8Kd2UgY291bGQgcHV0IGl0IGF0IHRo ZSBiZWdpbm5pbmcgb2YgZWFjaCBjbGVhbnVwIHN0ZXAsIHRoYXQgc2hvdWxkCmF0IGxlYXN0IG1h a2Ugc3VyZSB3ZSBjbGVhbmVkIHVwIHRoZSB0ZW1wb3JhcnkgaW1hZ2VzCgo+IAo+PiArICAgIH0K Pj4gK30KPj4gKwo+PiAgIDE7Cj4+IGRpZmYgLS1naXQgYS9zcmMvUFZFL1N0b3JhZ2UvRGlyUGx1 Z2luLnBtIGIvc3JjL1BWRS9TdG9yYWdlL0RpclBsdWdpbi5wbQo+PiBpbmRleCA0ZGM3NzA4Li41 MGNlYWI3IDEwMDY0NAo+PiAtLS0gYS9zcmMvUFZFL1N0b3JhZ2UvRGlyUGx1Z2luLnBtCj4+ICsr KyBiL3NyYy9QVkUvU3RvcmFnZS9EaXJQbHVnaW4ucG0KPj4gQEAgLTI2MCwxNCArMjYwLDI1IEBA IHN1YiBnZXRfaW1wb3J0X21ldGFkYXRhIHsKPj4gICAgICAgIyBOT1RFOiBhbGwgdHlwZXMgbXVz dCBiZSBhZGRlZCB0byB0aGUgcmV0dXJuIHNjaGVtYSBvZiB0aGUgaW1wb3J0LW1ldGFkYXRhIEFQ SSBlbmRwb2ludAo+PiAgICAgICBteSAkd2FybmluZ3MgPSBbXTsKPj4gICAKPj4gKyAgICBteSAk aXNPdmEgPSAwOwo+PiArICAgIGlmICgkcGF0aCA9fiBtIVwub3ZhISkgewo+PiArCSRpc092YSA9 IDE7Cj4+ICsJcHVzaCBAJHdhcm5pbmdzLCB7IHR5cGUgPT4gJ292YS1uZWVkcy1leHRyYWN0aW5n JyB9Owo+PiArICAgIH0KPj4gICAgICAgbXkgJHJlcyA9IFBWRTo6U3RvcmFnZTo6T1ZGOjpwYXJz ZV9vdmYoJHBhdGgsICRpc092YSk7Cj4+ICAgICAgIG15ICRkaXNrcyA9IHt9Owo+PiAgICAgICBm b3IgbXkgJGRpc2sgKCRyZXMtPntkaXNrc30tPkAqKSB7Cj4+ICAgCW15ICRpZCA9ICRkaXNrLT57 ZGlza19hZGRyZXNzfTsKPj4gICAJbXkgJHNpemUgPSAkZGlzay0+e3ZpcnR1YWxfc2l6ZX07Cj4+ ICAgCW15ICRwYXRoID0gJGRpc2stPntyZWxhdGl2ZV9wYXRofTsKPj4gKwlteSAkdm9saWQ7Cj4+ ICsJaWYgKCRpc092YSkgewo+PiArCSAgICAkdm9saWQgPSAiJHN0b3JlaWQ6JHZvbG5hbWUvJHBh dGgiOwo+PiArCX0gZWxzZSB7Cj4+ICsJICAgICR2b2xpZCA9ICIkc3RvcmVpZDppbXBvcnQvJHBh dGgiLAo+PiArCX0KPj4gICAJJGRpc2tzLT57JGlkfSA9IHsKPj4gLQkgICAgdm9saWQgPT4gIiRz dG9yZWlkOmltcG9ydC8kcGF0aCIsCj4+ICsJICAgIHZvbGlkID0+ICR2b2xpZCwKPj4gICAJICAg IGRlZmluZWQoJHNpemUpID8gKHNpemUgPT4gJHNpemUpIDogKCksCj4+ICAgCX07Cj4+ICAgICAg IH0KPj4gZGlmZiAtLWdpdCBhL3NyYy9QVkUvU3RvcmFnZS9PVkYucG0gYi9zcmMvUFZFL1N0b3Jh Z2UvT1ZGLnBtCj4+IGluZGV4IDRhMzIyYjkuLmZiODUwYTggMTAwNjQ0Cj4+IC0tLSBhL3NyYy9Q VkUvU3RvcmFnZS9PVkYucG0KPj4gKysrIGIvc3JjL1BWRS9TdG9yYWdlL09WRi5wbQo+PiBAQCAt ODUsMTEgKzg1LDM3IEBAIHN1YiBpZF90b19wdmUgewo+PiAgICAgICB9Cj4+ICAgfQo+PiAgIAo+ PiArIyB0ZWNobmljYWxseSBkZWZpbmVkIGluIERTUDAwMDQgKGh0dHBzOi8vd3d3LmRtdGYub3Jn L2RzcC9EU1AwMDA0KSBhcyBhbiBBQk5GCj4+ICsjIGJ1dCByZWFsaXN0aWNhbGx5IHRoaXMgYWx3 YXlzIHRha2VzIHRoZSBmb3JtIG9mICdieXRlcyAqIGJhc2VeZXhwb25lbnQnCj4+ICtzdWIgdHJ5 X3BhcnNlX2NhcGFjaXR5X3VuaXQgewo+PiArICAgIG15ICgkdW5pdF90ZXh0KSA9IEBfOwo+PiAr Cj4+ICsgICAgaWYgKCR1bml0X3RleHQgPX4gbS9eXHMqYnl0ZVxzKlwqXHMqKFswLTldKylccypc XlxzKihbMC05XSspXHMqJC8pIHsKPj4gKwlteSAkYmFzZSA9ICQxOwo+PiArCW15ICRleHAgPSAk MjsKPj4gKwlyZXR1cm4gJGJhc2UgKiogJGV4cDsKPj4gKyAgICB9Cj4+ICsKPj4gKyAgICByZXR1 cm4gdW5kZWY7Cj4+ICt9Cj4+ICsKPj4gICAjIHJldHVybnMgdHdvIHJlZmVyZW5jZXMsICRxbSB3 aGljaCBob2xkcyBxbS5jb25mIHN0eWxlIGtleS92YWx1ZXMsIGFuZCBcQGRpc2tzCj4+ICAgc3Vi IHBhcnNlX292ZiB7Cj4+IC0gICAgbXkgKCRvdmYsICRkZWJ1ZykgPSBAXzsKPj4gKyAgICBteSAo JG92ZiwgJGlzT3ZhLCAkZGVidWcpID0gQF87Cj4+ICsKPj4gKyAgICAjIHdlIGhhdmUgdG8gaWdu b3JlIG1pc3NpbmcgZGlzayBpbWFnZXMgZm9yIG92YQo+PiArICAgIG15ICRkb207Cj4+ICsgICAg aWYgKCRpc092YSkgewo+PiArCW15ICRyYXcgPSAiIjsKPj4gKwlQVkU6OlRvb2xzOjpydW5fY29t bWFuZChbJ3RhcicsICcteE8nLCAnLS13aWxkY2FyZHMnLCAnLS1vY2N1cnJlbmNlPTEnLCAnLWYn LCAkb3ZmLCAnKi5vdmYnXSwgb3V0ZnVuYyA9PiBzdWIgewo+PiArCSAgICBteSAkbGluZSA9IHNo aWZ0Owo+PiArCSAgICAkcmF3IC49ICRsaW5lOwo+PiArCX0pOwo+PiArCSRkb20gPSBYTUw6Okxp YlhNTC0+bG9hZF94bWwoc3RyaW5nID0+ICRyYXcsIG5vX2JsYW5rcyA9PiAxKTsKPj4gKyAgICB9 IGVsc2Ugewo+PiArCSRkb20gPSBYTUw6OkxpYlhNTC0+bG9hZF94bWwobG9jYXRpb24gPT4gJG92 Ziwgbm9fYmxhbmtzID0+IDEpOwo+PiArICAgIH0KPj4gICAKPj4gLSAgICBteSAkZG9tID0gWE1M OjpMaWJYTUwtPmxvYWRfeG1sKGxvY2F0aW9uID0+ICRvdmYsIG5vX2JsYW5rcyA9PiAxKTsKPj4g ICAKPj4gICAgICAgIyByZWdpc3RlciB0aGUgeG1sIG5hbWVzcGFjZXMgaW4gYSB4cGF0aCBjb250 ZXh0IG9iamVjdAo+PiAgICAgICAjICdvdmYnIGlzIHRoZSBkZWZhdWx0IG5hbWVzcGFjZSBzbyBp dCB3aWxsIHByZXBlbmRlZCB0byBlYWNoIHhtbCBlbGVtZW50Cj4+IEBAIC0xNzcsNyArMjAzLDE3 IEBAIHN1YiBwYXJzZV9vdmYgewo+PiAgIAkjIEAgbmVlZHMgdG8gYmUgZXNjYXBlZCB0byBwcmV2 ZW50IFBlcmwgZG91YmxlIHF1b3RlIGludGVycG9sYXRpb24KPj4gICAJbXkgJHhwYXRoX2ZpbmRf ZmlsZXJlZiA9IHNwcmludGYoIi9vdmY6RW52ZWxvcGUvb3ZmOkRpc2tTZWN0aW9uL1wKPj4gICBv dmY6RGlza1tcQG92ZjpkaXNrSWQ9JyVzJ10vXEBvdmY6ZmlsZVJlZiIsICRkaXNrX2lkKTsKPj4g KwlteSAkeHBhdGhfZmluZF9jYXBhY2l0eSA9IHNwcmludGYoIi9vdmY6RW52ZWxvcGUvb3ZmOkRp c2tTZWN0aW9uL1wKPj4gK292ZjpEaXNrW1xAb3ZmOmRpc2tJZD0nJXMnXS9cQG92ZjpjYXBhY2l0 eSIsICRkaXNrX2lkKTsKPj4gKwlteSAkeHBhdGhfZmluZF9jYXBhY2l0eV91bml0ID0gc3ByaW50 ZigiL292ZjpFbnZlbG9wZS9vdmY6RGlza1NlY3Rpb24vXAo+PiArb3ZmOkRpc2tbXEBvdmY6ZGlz a0lkPSclcyddL1xAb3ZmOmNhcGFjaXR5QWxsb2NhdGlvblVuaXRzIiwgJGRpc2tfaWQpOwo+PiAg IAlteSAkZmlsZXJlZiA9ICR4cGMtPmZpbmR2YWx1ZSgkeHBhdGhfZmluZF9maWxlcmVmKTsKPj4g KwlteSAkY2FwYWNpdHkgPSAkeHBjLT5maW5kdmFsdWUoJHhwYXRoX2ZpbmRfY2FwYWNpdHkpOwo+ PiArCW15ICRjYXBhY2l0eV91bml0ID0gJHhwYy0+ZmluZHZhbHVlKCR4cGF0aF9maW5kX2NhcGFj aXR5X3VuaXQpOwo+PiArCW15ICR2aXJ0dWFsX3NpemU7Cj4+ICsJaWYgKG15ICRmYWN0b3IgPSB0 cnlfcGFyc2VfY2FwYWNpdHlfdW5pdCgkY2FwYWNpdHlfdW5pdCkpIHsKPj4gKwkgICAgJHZpcnR1 YWxfc2l6ZSA9ICRjYXBhY2l0eSAqICRmYWN0b3I7Cj4+ICsJfQo+PiAgIAo+PiAgIAlteSAkdmFs aWRfdXJsX2NoYXJzID0gcXJAJHt2YWxpZF91cmlwYXRoX2NoYXJzfXwvQDsKPj4gICAJaWYgKCEk ZmlsZXJlZiB8fCAkZmlsZXJlZiAhfiBtL14ke3ZhbGlkX3VybF9jaGFyc30rJC8pIHsKPj4gQEAg LTIxNywyMyArMjUzLDI2IEBAIG92ZjpJdGVtW3Jhc2Q6SW5zdGFuY2VJRD0nJXMnXS9yYXNkOlJl c291cmNlVHlwZSIsICRjb250cm9sbGVyX2lkKTsKPj4gICAJICAgIGRpZSAiZXJyb3IgcGFyc2lu ZyAkZmlsZXBhdGgsIGFyZSB5b3UgdXNpbmcgYSBzeW1saW5rID9cbiI7Cj4+ICAgCX0KPj4gICAK Pj4gLQlpZiAoIS1lICRiYWNraW5nX2ZpbGVfcGF0aCkgewo+PiArCWlmICghLWUgJGJhY2tpbmdf ZmlsZV9wYXRoICYmICEkaXNPdmEpIHsKPiAKPiB0aGlzIGlzIGFjdHVhbGx5IG5vdCBlbm91Z2gs IHRoZSByZWFscGF0aCBjYWxsIGFib3ZlIGNhbiBhbHJlYWR5IGZhaWwgaWYKPiAkZmlsZXBhdGgg cG9pbnRzIHRvIGEgZmlsZSBpbiBhIHN1YmRpciAobm90ZSB0aGF0IHJlYWxwYXRoIHdpbGwgb25s eQo+IGNoZWNrIHRoZSBwYXRoIGNvbXBvbmVudHMsIG5vdCB0aGUgZmlsZSBpdHNlbGYpLgo+IAo+ IGUuZy46Cj4gCj4gZXJyb3IgcGFyc2luZyBmb28vYmFyL2Noci02LjQ5LjEzLWRpc2sxLnZtZGss IGFyZSB5b3UgdXNpbmcgYSBzeW1saW5rID8gKDUwMCkKPiAKPiB3ZSBjb3VsZCBhbHNvIHRpZ2h0 ZW4gd2hhdCB3ZSBhbGxvdyBhcyBmaWxlcGF0aCBoZXJlLCBpbiBhZGRpdGlvbiB0byB0aGUKPiBl eHRyYWN0aW9uIGNvZGUuCj4gCj4+ICAgCSAgICBkaWUgImVycm9yIHBhcnNpbmcgJGZpbGVwYXRo LCBmaWxlIHNlZW1zIG5vdCB0byBleGlzdCBhdCAkYmFja2luZ19maWxlX3BhdGhcbiI7Cj4+ICAg CX0KPj4gICAKPj4gICAJKCRiYWNraW5nX2ZpbGVfcGF0aCkgPSAkYmFja2luZ19maWxlX3BhdGgg PX4gbXxeKC8uKil8OyAjIHVudGFpbnQKPj4gICAJKCRmaWxlcGF0aCkgPSAkZmlsZXBhdGggPX4g bXxeKC4qKXw7ICMgdW50YWludAo+PiAgIAo+PiAtCW15ICR2aXJ0dWFsX3NpemUgPSBQVkU6OlN0 b3JhZ2U6OmZpbGVfc2l6ZV9pbmZvKCRiYWNraW5nX2ZpbGVfcGF0aCk7Cj4+IC0JZGllICJlcnJv ciBwYXJzaW5nICRiYWNraW5nX2ZpbGVfcGF0aCwgY2Fubm90IGRldGVybWluZSBmaWxlIHNpemVc biIKPj4gLQkgICAgaWYgISR2aXJ0dWFsX3NpemU7Cj4+ICsJaWYgKCEkaXNPdmEpIHsKPj4gKwkg ICAgbXkgJHNpemUgPSBQVkU6OlN0b3JhZ2U6OmZpbGVfc2l6ZV9pbmZvKCRiYWNraW5nX2ZpbGVf cGF0aCk7Cj4+ICsJICAgIGRpZSAiZXJyb3IgcGFyc2luZyAkYmFja2luZ19maWxlX3BhdGgsIGNh bm5vdCBkZXRlcm1pbmUgZmlsZSBzaXplXG4iCj4+ICsJCWlmICEkc2l6ZTsKPj4gICAKPj4gKwkg ICAgJHZpcnR1YWxfc2l6ZSA9ICRzaXplOwo+PiArCX0KPj4gICAJJHB2ZV9kaXNrID0gewo+PiAg IAkgICAgZGlza19hZGRyZXNzID0+ICRwdmVfZGlza19hZGRyZXNzLAo+PiAgIAkgICAgYmFja2lu Z19maWxlID0+ICRiYWNraW5nX2ZpbGVfcGF0aCwKPj4gLQkgICAgdmlydHVhbF9zaXplID0+ICR2 aXJ0dWFsX3NpemUKPj4gICAJICAgIHJlbGF0aXZlX3BhdGggPT4gJGZpbGVwYXRoLAo+PiAgIAl9 Owo+PiArCSRwdmVfZGlzay0+e3ZpcnR1YWxfc2l6ZX0gPSAkdmlydHVhbF9zaXplIGlmIGRlZmlu ZWQoJHZpcnR1YWxfc2l6ZSk7Cj4+ICAgCXB1c2ggQGRpc2tzLCAkcHZlX2Rpc2s7Cj4+ICAgCj4+ ICAgICAgIH0KPj4gZGlmZiAtLWdpdCBhL3NyYy9QVkUvU3RvcmFnZS9QbHVnaW4ucG0gYi9zcmMv UFZFL1N0b3JhZ2UvUGx1Z2luLnBtCj4+IGluZGV4IGRlYWY4YjIuLmVhMDY5YWIgMTAwNjQ0Cj4+ IC0tLSBhL3NyYy9QVkUvU3RvcmFnZS9QbHVnaW4ucG0KPj4gKysrIGIvc3JjL1BWRS9TdG9yYWdl L1BsdWdpbi5wbQo+PiBAQCAtNjU0LDYgKzY1NCwxMSBAQCBzdWIgcGFyc2Vfdm9sbmFtZSB7Cj4+ ICAgCXJldHVybiAoJ2JhY2t1cCcsICRmbik7Cj4+ICAgICAgIH0gZWxzaWYgKCR2b2xuYW1lID1+ IG0hXnNuaXBwZXRzLyhbXi9dKykkISkgewo+PiAgIAlyZXR1cm4gKCdzbmlwcGV0cycsICQxKTsK Pj4gKyAgICB9IGVsc2lmICgkdm9sbmFtZSA9fiBtIV5pbXBvcnQvKFteL10rXC5vdmEpXC8oW14v XSspJCEpIHsKPj4gKwlteSAkYXJjaGl2ZSA9ICQxOwo+PiArCW15ICRmaWxlID0gJDI7Cj4+ICsJ bXkgKHVuZGVmLCAkZm9ybWF0LCB1bmRlZikgPSBwYXJzZV9uYW1lX2RpcigkZmlsZSk7Cj4+ICsJ cmV0dXJuICgnaW1wb3J0JywgJGFyY2hpdmUsIDAsIHVuZGVmLCB1bmRlZiwgdW5kZWYsICRmb3Jt YXQpOwo+PiAgICAgICB9IGVsc2lmICgkdm9sbmFtZSA9fiBtIV5pbXBvcnQvKFteL10rJFBWRTo6 U3RvcmFnZTo6SU1QT1JUX0VYVF9SRV8xKSQhKSB7Cj4+ICAgCXJldHVybiAoJ2ltcG9ydCcsICQx KTsKPj4gICAgICAgfSBlbHNpZiAoJHZvbG5hbWUgPX4gbSFeaW1wb3J0LyhbXi9dK1wuKHJhd3x2 bWRrfHFjb3cyKSkkISkgewo+PiAtLSAKPj4gMi4zOS4yCj4+Cj4+Cj4+Cj4+IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IHB2ZS1kZXZlbCBtYWlsaW5n IGxpc3QKPj4gcHZlLWRldmVsQGxpc3RzLnByb3htb3guY29tCj4+IGh0dHBzOi8vbGlzdHMucHJv eG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3B2ZS1kZXZlbAo+Pgo+Pgo+Pgo+IAo+ IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gcHZl LWRldmVsIG1haWxpbmcgbGlzdAo+IHB2ZS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQo+IGh0dHBz Oi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3B2ZS1kZXZlbAo+ IAo+IAoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpw dmUtZGV2ZWwgbWFpbGluZyBsaXN0CnB2ZS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQpodHRwczov L2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wdmUtZGV2ZWwK