From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <pve-devel-bounces@lists.proxmox.com> Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 3BB2C1FF172 for <inbox@lore.proxmox.com>; Tue, 1 Apr 2025 15:51:19 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 0271B33D24; Tue, 1 Apr 2025 15:51:09 +0200 (CEST) Date: Tue, 1 Apr 2025 15:50:33 +0200 (CEST) From: =?UTF-8?Q?Fabian_Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com> To: Proxmox VE development discussion <pve-devel@lists.proxmox.com> Message-ID: <1503093360.3972.1743515433288@webmail.proxmox.com> In-Reply-To: <mailman.953.1741688968.293.pve-devel@lists.proxmox.com> References: <20250311102905.2680524-1-alexandre.derumier@groupe-cyllene.com> <mailman.953.1741688968.293.pve-devel@lists.proxmox.com> MIME-Version: 1.0 X-Priority: 3 Importance: Normal X-Mailer: Open-Xchange Mailer v7.10.6-Rev75 X-Originating-Client: open-xchange-appsuite X-SPAM-LEVEL: Spam detection results: 0 AWL 0.044 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 Subject: Re: [pve-devel] [PATCH v4 pve-storage 2/5] lvmplugin: add qcow2 snapshot X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com> List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe> List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/> List-Post: <mailto:pve-devel@lists.proxmox.com> List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help> List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe> Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com> Cj4gQWxleGFuZHJlIERlcnVtaWVyIHZpYSBwdmUtZGV2ZWwgPHB2ZS1kZXZlbEBsaXN0cy5wcm94 bW94LmNvbT4gaGF0IGFtIDExLjAzLjIwMjUgMTE6MjggQ0VUIGdlc2NocmllYmVuOgoKc2FtZSBo ZXJlIC0gcGxlYXNlIGFkZCBzb21lIGRlc2NyaXB0aW9uIGFib3V0IHdoeSB0aGluZ3MgYXJlIGlt cGxlbWVudGVkIGhvdyB0aGV5IGFyZS4uIGVsc2Ugd2UgaGF2ZSB0byBkaXZlIHRocm91Z2ggbXVs dGlwbGUgdGhyZWFkcyBvZiByZXZpZXcgZGlzY3Vzc2lvbnMgaW4gMiB5ZWFycyB3aGVuIHdlIHdh bnQgdG8gZmluZCBvdXQgOykKCj4gU2lnbmVkLW9mZi1ieTogQWxleGFuZHJlIERlcnVtaWVyIDxh bGV4YW5kcmUuZGVydW1pZXJAZ3JvdXBlLWN5bGxlbmUuY29tPgo+IC0tLQo+ICBzcmMvUFZFL1N0 b3JhZ2UvTFZNUGx1Z2luLnBtIHwgMjI4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCAyMTAgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0p Cj4gCj4gZGlmZiAtLWdpdCBhL3NyYy9QVkUvU3RvcmFnZS9MVk1QbHVnaW4ucG0gYi9zcmMvUFZF L1N0b3JhZ2UvTFZNUGx1Z2luLnBtCj4gaW5kZXggMzhmN2ZhMS4uMTlkYmQ3ZSAxMDA2NDQKPiAt LS0gYS9zcmMvUFZFL1N0b3JhZ2UvTFZNUGx1Z2luLnBtCj4gKysrIGIvc3JjL1BWRS9TdG9yYWdl L0xWTVBsdWdpbi5wbQo+IEBAIC00LDYgKzQsNyBAQCB1c2Ugc3RyaWN0Owo+ICB1c2Ugd2Fybmlu Z3M7Cj4gIAo+ICB1c2UgSU86OkZpbGU7Cj4gK3VzZSBQT1NJWCBxdy9jZWlsLzsKPiAgCj4gIHVz ZSBQVkU6OlRvb2xzIHF3KHJ1bl9jb21tYW5kIHRyaW0pOwo+ICB1c2UgUFZFOjpTdG9yYWdlOjpQ bHVnaW47Cj4gQEAgLTIxOCw2ICsyMTksNyBAQCBzdWIgdHlwZSB7Cj4gIHN1YiBwbHVnaW5kYXRh IHsKPiAgICAgIHJldHVybiB7Cj4gIAljb250ZW50ID0+IFsge2ltYWdlcyA9PiAxLCByb290ZGly ID0+IDF9LCB7IGltYWdlcyA9PiAxIH1dLAo+ICsJZm9ybWF0ID0+IFsgeyByYXcgPT4gMSwgcWNv dzIgPT4gMSB9ICwgJ3JhdycgXSwKPiAgICAgIH07Cj4gIH0KPiAgCj4gQEAgLTI5Myw3ICsyOTUs MTAgQEAgc3ViIHBhcnNlX3ZvbG5hbWUgewo+ICAgICAgUFZFOjpTdG9yYWdlOjpQbHVnaW46OnBh cnNlX2x2bV9uYW1lKCR2b2xuYW1lKTsKPiAgCj4gICAgICBpZiAoJHZvbG5hbWUgPX4gbS9eKHZt LShcZCspLVxTKykkLykgewo+IC0JcmV0dXJuICgnaW1hZ2VzJywgJDEsICQyLCB1bmRlZiwgdW5k ZWYsIHVuZGVmLCAncmF3Jyk7Cj4gKwlteSAkbmFtZSA9ICQxOwo+ICsJbXkgJHZtaWQgPSAkMjsK PiArCW15ICRmb3JtYXQgPSAkdm9sbmFtZSA9fiBtL1wucWNvdzIkLyA/ICdxY293MicgOiAncmF3 JzsKCnRoaXMgaXMgcmVhbGx5IHRyaWNreSBhbmQgSSBhbSBhZnJhaWQgdGhlcmUgYXJlIHN0aWxs IHBpdGZhbGxzL2J1Z3MgaGVyZSB1bmxlc3Mgd2UgYWRkIGFkZGl0aW9uYWwgY2hlY2tzIGluIHBs YWNlcyB0aGF0IGEgcmVxdWVzdGVkICRmb3JtYXQgYW5kIHRoZSBvbmUgaW4gdGhlIG5hbWUgbWF0 Y2guLgoKPiArCXJldHVybiAoJ2ltYWdlcycsICRuYW1lLCAkdm1pZCwgdW5kZWYsIHVuZGVmLCB1 bmRlZiwgJGZvcm1hdCk7Cj4gICAgICB9Cj4gIAo+ICAgICAgZGllICJ1bmFibGUgdG8gcGFyc2Ug bHZtIHZvbHVtZSBuYW1lICckdm9sbmFtZSdcbiI7Cj4gQEAgLTMwMiwxMSArMzA3LDEzIEBAIHN1 YiBwYXJzZV92b2xuYW1lIHsKPiAgc3ViIGZpbGVzeXN0ZW1fcGF0aCB7Cj4gICAgICBteSAoJGNs YXNzLCAkc2NmZywgJHZvbG5hbWUsICRzbmFwbmFtZSkgPSBAXzsKPiAgCj4gLSAgICBkaWUgImx2 bSBzbmFwc2hvdCBpcyBub3QgaW1wbGVtZW50ZWQiaWYgZGVmaW5lZCgkc25hcG5hbWUpOwo+ICsg ICAgbXkgKCR2dHlwZSwgJG5hbWUsICR2bWlkLCAkYmFzZW5hbWUsICRiYXNldm1pZCwgJGlzQmFz ZSwgJGZvcm1hdCkgPQo+ICsJJGNsYXNzLT5wYXJzZV92b2xuYW1lKCR2b2xuYW1lKTsKPiAgCj4g LSAgICBteSAoJHZ0eXBlLCAkbmFtZSwgJHZtaWQpID0gJGNsYXNzLT5wYXJzZV92b2xuYW1lKCR2 b2xuYW1lKTsKPiArICAgIGRpZSAic25hcHNob3QgaXMgd29ya2luZyB3aXRoIHFjb3cyIGZvcm1h dCBvbmx5IiBpZiBkZWZpbmVkKCRzbmFwbmFtZSkgJiYgJGZvcm1hdCBuZSAncWNvdzInOwo+ICAK PiAgICAgIG15ICR2ZyA9ICRzY2ZnLT57dmduYW1lfTsKPiArICAgICRuYW1lID0gJGNsYXNzLT5n ZXRfc25hcF92b2xuYW1lKCR2b2xuYW1lLCAkc25hcG5hbWUpIGlmICRzbmFwbmFtZTsKPiAgCj4g ICAgICBteSAkcGF0aCA9ICIvZGV2LyR2Zy8kbmFtZSI7Cj4gIAo+IEBAIC0zMzQsNyArMzQxLDkg QEAgc3ViIGZpbmRfZnJlZV9kaXNrbmFtZSB7Cj4gIAo+ICAgICAgbXkgJGRpc2tfbGlzdCA9IFsg a2V5cyAleyRsdnMtPnskdmd9fSBdOwo+ICAKPiAtICAgIHJldHVybiBQVkU6OlN0b3JhZ2U6OlBs dWdpbjo6Z2V0X25leHRfdm1fZGlza25hbWUoJGRpc2tfbGlzdCwgJHN0b3JlaWQsICR2bWlkLCB1 bmRlZiwgJHNjZmcpOwo+ICsgICAgJGFkZF9mbXRfc3VmZml4ID0gJGZtdCBlcSAncWNvdzInID8g MSA6IHVuZGVmOwo+ICsKPiArICAgIHJldHVybiBQVkU6OlN0b3JhZ2U6OlBsdWdpbjo6Z2V0X25l eHRfdm1fZGlza25hbWUoJGRpc2tfbGlzdCwgJHN0b3JlaWQsICR2bWlkLCAkZm10LCAkc2NmZywg JGFkZF9mbXRfc3VmZml4KTsKPiAgfQo+ICAKPiAgc3ViIGx2Y3JlYXRlIHsKPiBAQCAtMzYzLDkg KzM3Miw5IEBAIHN1YiBsdnJlbmFtZSB7Cj4gIH0KPiAgCj4gIHN1YiBhbGxvY19pbWFnZSB7Cj4g LSAgICBteSAoJGNsYXNzLCAkc3RvcmVpZCwgJHNjZmcsICR2bWlkLCAkZm10LCAkbmFtZSwgJHNp emUpID0gQF87Cj4gKyAgICBteSAoJGNsYXNzLCAkc3RvcmVpZCwgJHNjZmcsICR2bWlkLCAkZm10 LCAkbmFtZSwgJHNpemUsICRiYWNraW5nKSA9IEBfOwoKc2FtZSBhcyBmb3IgdGhlIGRpci1iYXNl ZCBvbmUgLSAkYmFja2luZyBhcyBhcmJpdHJhcnkgcGF0aCBpcyBub3QgYSBnb29kIGlkZWEuLiB0 aGlzIHNob3VsZCBlaXRoZXIgYmUgYSBzbmFwc2hvdCAkdm9sbmFtZSwgb3IganVzdCB0aGUgJHNu YXBuYW1lIGl0c2VsZj8KCj4gIAo+IC0gICAgZGllICJ1bnN1cHBvcnRlZCBmb3JtYXQgJyRmbXQn IiBpZiAkZm10IG5lICdyYXcnOwo+ICsgICAgZGllICJ1bnN1cHBvcnRlZCBmb3JtYXQgJyRmbXQn IiBpZiAkZm10ICF+IG0vKHJhd3xxY293MikvOwo+ICAKPiAgICAgIGRpZSAiaWxsZWdhbCBuYW1l ICckbmFtZScgLSBzaG91bGQgYmUgJ3ZtLSR2bWlkLSonXG4iCj4gIAlpZiAgJG5hbWUgJiYgJG5h bWUgIX4gbS9edm0tJHZtaWQtLzsKPiBAQCAtMzc4LDEyICszODcsMzYgQEAgc3ViIGFsbG9jX2lt YWdlIHsKPiAgCj4gICAgICBteSAkZnJlZSA9IGludCgkdmdzLT57JHZnfS0+e2ZyZWV9KTsKPiAg Cj4gKwo+ICsgICAgI2FkZCBleHRyYSBzcGFjZSBmb3IgcWNvdzIgbWV0YWRhdGFzCj4gKyAgICAj d2l0aG91dCBzdWItYWxsb2NhdGVkIGNsdXN0ZXJzIDogRm9yIDFUQiBzdG9yYWdlIDogbDJfc2l6 ZSA9IGRpc2tfc2l6ZSDDlyA4IC8gY2x1c3Rlcl9zaXplCj4gKyAgICAjd2l0aCBzdWItYWxsb2Nh dGVkIGNsdXN0ZXJzIDogRm9yIDFUQiBzdG9yYWdlIDogbDJfc2l6ZSA9IGRpc2tfc2l6ZSDDlyA4 IC8gY2x1c3Rlcl9zaXplIC8gMTYKCmFyZSB0aGVzZSBmb3JtdWxhcyB2YWxpZCBmb3IgYWxsIGRp c2sgc2l6ZXMsIG9yIGp1c3QgZm9yIDFUQj8KCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIzRNQiBvdmVyaGVhZCBmb3IgMVRCIHdpdGggZXh0ZW50ZWQgbDIgY2x1c3RlcnNp emU9MTI4awoKc28gdGhpcyBtZWFucyAxVEIgeCA4IC8gMTI4SyAvIDE2ID0gMUdCIC8gMjU2ID0g NE1CCgppZiB0aGUgZm9ybXVsYSBpcyBnZW5lcmljLCB0aGF0IG1lYW5zIDEgR0Igb2Ygc3RvcmFn ZSA9PSA0S0Igb2Ygb3ZlcmhlYWQsIG9yIDFNQiBvZiBzdG9yYWdlID09IDQgYnl0ZXMgb2Ygb3Zl cmhlYWQ/Cgo+ICsKPiArICAgICNjYW4ndCB1c2UgcWVtdS1pbWcgbWVhc3VyZSwgYmVjYXVzZSBp dCdzIG5vdCBwb3NzaWJsZSB0byBkZWZpbmUgb3B0aW9ucyBsaWtlIGNsdXN0ZXJzaXplICYmIGV4 dGVuZGVkX2wyCj4gKyAgICAjdmVyaWZpY2F0aW9uIGhhcyBiZWVuIGRvbmUgd2l0aCA6IHFlbXUt aW1nIGNyZWF0ZSAtZiBxY293MiAtbyBleHRlbmRlZF9sMj1vbixjbHVzdGVyX3NpemU9MTI4ayB0 ZXN0LmltZyAxRwo+ICsKPiArICAgIG15ICRxY293Ml9vdmVyaGVhZCA9IGNlaWwoJHNpemUvMTAy NC8xMDI0LzEwMjQpICogNDA5NjsKCmFib3ZlIHlvdSBzYXkgNE1CIGZvciAxVEIsIGJ1dCBoZXJl IHlvdSBnbyBkb3duIHRvIEtCIGFuZCB0aGVuIG11bHRpcGx5IGJ5IDRLPyB3aHkgbm90IGdvIGRv d24gdG8gTUIgYW5kIG11bHRpcGx5IGJ5IDQ/Cgo+ICsKPiArICAgIG15ICRsdm1zaXplID0gJHNp emU7Cj4gKyAgICAkbHZtc2l6ZSArPSAkcWNvdzJfb3ZlcmhlYWQgaWYgJGZtdCBlcSAncWNvdzIn Owo+ICsKPiAgICAgIGRpZSAibm90IGVub3VnaCBmcmVlIHNwYWNlICgkZnJlZSA8ICRzaXplKVxu IiBpZiAkZnJlZSA8ICRzaXplOwo+ICAKPiAtICAgICRuYW1lID0gJGNsYXNzLT5maW5kX2ZyZWVf ZGlza25hbWUoJHN0b3JlaWQsICRzY2ZnLCAkdm1pZCkKPiArICAgICRuYW1lID0gJGNsYXNzLT5m aW5kX2ZyZWVfZGlza25hbWUoJHN0b3JlaWQsICRzY2ZnLCAkdm1pZCwgJGZtdCkKPiAgCWlmICEk bmFtZTsKPiAgCj4gLSAgICBsdmNyZWF0ZSgkdmcsICRuYW1lLCAkc2l6ZSwgWyJwdmUtdm0tJHZt aWQiXSk7Cj4gKyAgICBteSAkdGFncyA9IFsicHZlLXZtLSR2bWlkIl07Cj4gKyAgICAjdGFncyBh bGwgc25hcHNob3RzIHZvbHVtZXMgd2l0aCB0aGUgbWFpbiB2b2x1bWUgdGFnIGZvciBlYXNpZXIg YWN0aXZhdGlvbiBvZiB0aGUgd2hvbGUgZ3JvdXAKPiArICAgIHB1c2ggQCR0YWdzLCAiXEBwdmUt JG5hbWUiIGlmICRmbXQgZXEgJ3Fjb3cyJzsKPiArICAgIGx2Y3JlYXRlKCR2ZywgJG5hbWUsICRs dm1zaXplLCAkdGFncyk7Cj4gKwo+ICsgICAgaWYgKCRmbXQgZXEgJ3Fjb3cyJykgewo+ICsJI2Zv cm1hdCB0aGUgbHZtIHZvbHVtZSB3aXRoIHFjb3cyIGZvcm1hdAo+ICsJJGNsYXNzLT5hY3RpdmF0 ZV92b2x1bWUoJHN0b3JlaWQsICRzY2ZnLCAkbmFtZSwgdW5kZWYsIHt9KTsKCnRoZSBsYXN0IHR3 byBwYXJhbWV0ZXJzIGFyZSBub3QgbmVlZGVkLi4KCj4gKwlteSAkcGF0aCA9ICRjbGFzcy0+cGF0 aCgkc2NmZywgJG5hbWUsICRzdG9yZWlkKTsKPiArCVBWRTo6U3RvcmFnZTo6UGx1Z2luOjpxZW11 X2ltZ19jcmVhdGUoJHNjZmcsICRmbXQsICRzaXplLCAkcGF0aCwgJGJhY2tpbmcpOwo+ICsgICAg fQo+ICAKPiAgICAgIHJldHVybiAkbmFtZTsKPiAgfQo+IEBAIC01MzgsNiArNTcxLDEyIEBAIHN1 YiBhY3RpdmF0ZV92b2x1bWUgewo+ICAKPiAgICAgIG15ICRsdm1fYWN0aXZhdGVfbW9kZSA9ICdl eSc7Cj4gIAo+ICsgICAgI2FjdGl2YXRlIHZvbHVtZSAmJiBhbGwgc25hcHNob3RzIHZvbHVtZXMg YnkgdGFnCj4gKyAgICBteSAoJHZ0eXBlLCAkbmFtZSwgJHZtaWQsICRiYXNlbmFtZSwgJGJhc2V2 bWlkLCAkaXNCYXNlLCAkZm9ybWF0KSA9Cj4gKwkkY2xhc3MtPnBhcnNlX3ZvbG5hbWUoJHZvbG5h bWUpOwo+ICsKPiArICAgICRwYXRoID0gIlxAcHZlLSRuYW1lIiBpZiAkZm9ybWF0IGVxICdxY293 Mic7Cj4gKwo+ICAgICAgbXkgJGNtZCA9IFsnL3NiaW4vbHZjaGFuZ2UnLCAiLWEkbHZtX2FjdGl2 YXRlX21vZGUiLCAkcGF0aF07Cj4gICAgICBydW5fY29tbWFuZCgkY21kLCBlcnJtc2cgPT4gImNh bid0IGFjdGl2YXRlIExWICckcGF0aCciKTsKPiAgICAgICRjbWQgPSBbJy9zYmluL2x2Y2hhbmdl JywgJy0tcmVmcmVzaCcsICRwYXRoXTsKPiBAQCAtNTUwLDYgKzU4OSwxMCBAQCBzdWIgZGVhY3Rp dmF0ZV92b2x1bWUgewo+ICAgICAgbXkgJHBhdGggPSAkY2xhc3MtPnBhdGgoJHNjZmcsICR2b2xu YW1lLCAkc3RvcmVpZCwgJHNuYXBuYW1lKTsKPiAgICAgIHJldHVybiBpZiAhIC1iICRwYXRoOwo+ ICAKPiArICAgIG15ICgkdnR5cGUsICRuYW1lLCAkdm1pZCwgJGJhc2VuYW1lLCAkYmFzZXZtaWQs ICRpc0Jhc2UsICRmb3JtYXQpID0KPiArCSRjbGFzcy0+cGFyc2Vfdm9sbmFtZSgkdm9sbmFtZSk7 Cj4gKyAgICAkcGF0aCA9ICJcQHB2ZS0kbmFtZSIgaWYgJGZvcm1hdCBlcSAncWNvdzInOwo+ICsK PiAgICAgIG15ICRjbWQgPSBbJy9zYmluL2x2Y2hhbmdlJywgJy1hbG4nLCAkcGF0aF07Cj4gICAg ICBydW5fY29tbWFuZCgkY21kLCBlcnJtc2cgPT4gImNhbid0IGRlYWN0aXZhdGUgTFYgJyRwYXRo JyIpOwo+ICB9Cj4gQEAgLTU1NywxNSArNjAwLDI3IEBAIHN1YiBkZWFjdGl2YXRlX3ZvbHVtZSB7 Cj4gIHN1YiB2b2x1bWVfcmVzaXplIHsKPiAgICAgIG15ICgkY2xhc3MsICRzY2ZnLCAkc3RvcmVp ZCwgJHZvbG5hbWUsICRzaXplLCAkcnVubmluZykgPSBAXzsKPiAgCj4gLSAgICAkc2l6ZSA9ICgk c2l6ZS8xMDI0LzEwMjQpIC4gIk0iOwo+ICsgICAgbXkgKCR2dHlwZSwgJG5hbWUsICR2bWlkLCAk YmFzZW5hbWUsICRiYXNldm1pZCwgJGlzQmFzZSwgJGZvcm1hdCkgPQo+ICsJJGNsYXNzLT5wYXJz ZV92b2xuYW1lKCR2b2xuYW1lKTsKPiArCj4gKyAgICBteSAkbHZtc2l6ZSA9ICRzaXplIC8gMTAy NDsKCkkgZG9uJ3QgcmVhbGx5IGdldCB0aGlzLCBzZWUgY29tbWVudHMgYWJvdmUgZm9yIGFsbG9j X2ltYWdlCgo+ICsgICAgbXkgJHFjb3cyX292ZXJoZWFkID0gY2VpbCgkc2l6ZS8xMDI0LzEwMjQv MTAyNC8xMDI0KSAqIDQwOTY7Cj4gKyAgICAkbHZtc2l6ZSArPSAkcWNvdzJfb3ZlcmhlYWQgaWYg JGZvcm1hdCBlcSAncWNvdzInOwoKd2UgZGVmaW5pdGVseSBkb24ndCB3YW50IHRvIGhhdmUgdGhp cyB0d2ljZS4uCgo+ICsgICAgJGx2bXNpemUgPSAiJHtsdm1zaXplfWsiOwo+ICAKPiAgICAgIG15 ICRwYXRoID0gJGNsYXNzLT5wYXRoKCRzY2ZnLCAkdm9sbmFtZSk7Cj4gLSAgICBteSAkY21kID0g Wycvc2Jpbi9sdmV4dGVuZCcsICctTCcsICRzaXplLCAkcGF0aF07Cj4gKyAgICBteSAkY21kID0g Wycvc2Jpbi9sdmV4dGVuZCcsICctTCcsICRsdm1zaXplLCAkcGF0aF07Cj4gIAo+ICAgICAgJGNs YXNzLT5jbHVzdGVyX2xvY2tfc3RvcmFnZSgkc3RvcmVpZCwgJHNjZmctPntzaGFyZWR9LCB1bmRl Ziwgc3ViIHsKPiAgCXJ1bl9jb21tYW5kKCRjbWQsIGVycm1zZyA9PiAiZXJyb3IgcmVzaXppbmcg dm9sdW1lICckcGF0aCciKTsKPiAgICAgIH0pOwo+ICAKPiArICAgIGlmKCEkcnVubmluZyAmJiAk Zm9ybWF0IGVxICdxY293MicpIHsKPiArCW15ICRwcmVhbGxvY19vcHQgPSBQVkU6OlN0b3JhZ2U6 OlBsdWdpbjo6cHJlYWxsb2NhdGlvbl9jbWRfb3B0aW9uKCRzY2ZnLCAkZm9ybWF0KTsKPiArCW15 ICRjbWQgPSBbJy91c3IvYmluL3FlbXUtaW1nJywgJ3Jlc2l6ZScsICItLSRwcmVhbGxvY19vcHQi LCAnLWYnLCAkZm9ybWF0LCAkcGF0aCAsICRzaXplXTsKPiArCXJ1bl9jb21tYW5kKCRjbWQsIHRp bWVvdXQgPT4gMTApOwo+ICsgICAgfQo+ICsKPiAgICAgIHJldHVybiAxOwo+ICB9Cj4gIAo+IEBA IC01ODcsMzAgKzY0MiwxNTkgQEAgc3ViIHZvbHVtZV9zaXplX2luZm8gewo+ICBzdWIgdm9sdW1l X3NuYXBzaG90IHsKPiAgICAgIG15ICgkY2xhc3MsICRzY2ZnLCAkc3RvcmVpZCwgJHZvbG5hbWUs ICRzbmFwKSA9IEBfOwo+ICAKPiAtICAgIGRpZSAibHZtIHNuYXBzaG90IGlzIG5vdCBpbXBsZW1l bnRlZCI7Cj4gKyAgICBteSAoJHZ0eXBlLCAkbmFtZSwgJHZtaWQsICRiYXNlbmFtZSwgJGJhc2V2 bWlkLCAkaXNCYXNlLCAkZm9ybWF0KSA9Cj4gKyAgICAgICAgJGNsYXNzLT5wYXJzZV92b2xuYW1l KCR2b2xuYW1lKTsKPiArCj4gKyAgICBkaWUgImNhbid0IHNuYXBzaG90IHRoaXMgaW1hZ2UgZm9y bWF0XG4iIGlmICRmb3JtYXQgbmUgJ3Fjb3cyJzsKPiArCj4gKyAgICAkY2xhc3MtPmFjdGl2YXRl X3ZvbHVtZSgkc3RvcmVpZCwgJHNjZmcsICR2b2xuYW1lLCB1bmRlZiwge30pOwoKbGFzdCB0d28g bm90IG5lZWRlZAoKPiArCj4gKyAgICBteSAkc25hcF92b2xuYW1lID0gJGNsYXNzLT5nZXRfc25h cF92b2xuYW1lKCR2b2xuYW1lLCAkc25hcCk7Cj4gKyAgICBteSAkc25hcF9wYXRoID0gJGNsYXNz LT5wYXRoKCRzY2ZnLCAkdm9sbmFtZSwgJHN0b3JlaWQsICRzbmFwKTsKCnNlZSBhYm92ZS4uCgo+ ICsKPiArICAgIG15ICRzaXplID0gJGNsYXNzLT52b2x1bWVfc2l6ZV9pbmZvKCRzY2ZnLCAkc3Rv cmVpZCwgJHZvbG5hbWUsIDUpOwo+ICsKPiArICAgICNyZW5hbWUgY3VycmVudCBsdm0gdm9sdW1l IHRvIHNuYXAgdm9sdW1lCj4gKyAgICBteSAkdmcgPSAkc2NmZy0+e3ZnbmFtZX07Cj4gKyAgICBw cmludCJyZW5hbWUgJHZvbG5hbWUgdG8gJHNuYXBfdm9sbmFtZVxuIjsKPiArICAgIGV2YWwgeyBs dnJlbmFtZSgkdmcsICR2b2xuYW1lLCAkc25hcF92b2xuYW1lKTsgfTsKPiArICAgIGlmICgkQCkg ewo+ICsJZGllICJjYW4ndCByZW5hbWUgbHZtIHZvbHVtZSBmcm9tICR2b2xuYW1lIHRvICRzbmFw X3ZvbG5hbWU6ICRAIFxuIjsKPiArICAgIH0KPiArCj4gKyAgICBldmFsIHsgJGNsYXNzLT5hbGxv Y19pbWFnZSgkc3RvcmVpZCwgJHNjZmcsICR2bWlkLCAncWNvdzInLCAkdm9sbmFtZSwgJHNpemUv MTAyNCwgJHNuYXBfcGF0aCk7IH07Cj4gKyAgICBpZiAoJEApIHsKPiArICAgICAgICBldmFsIHsg JGNsYXNzLT5mcmVlX2ltYWdlKCRzdG9yZWlkLCAkc2NmZywgJHZvbG5hbWUsIDApIH07CgptaXNz aW5nIGVycm9yIGhhbmRsaW5nLCB0aGlzIG5lZWRzIHRvIHJlbmFtZSBiYWNrPyBhbHNvLCB0aGlz IG1pZ2h0IHJldHVybiBhIGNvZGUtcmVmZXJlbmNlIHRoYXQgbmVlZHMgdG8gYmUgZXhlY3V0ZWQu LgoKPiArICAgICAgICB3YXJuICRAIGlmICRAOwo+ICsgICAgfQo+ICB9Cj4gIAo+ICtzdWIgdm9s dW1lX3JvbGxiYWNrX2lzX3Bvc3NpYmxlIHsKPiArICAgIG15ICgkY2xhc3MsICRzY2ZnLCAkc3Rv cmVpZCwgJHZvbG5hbWUsICRzbmFwLCAkYmxvY2tlcnMpID0gQF87Cj4gKwo+ICsgICAgbXkgJHNu YXBfcGF0aCA9ICRjbGFzcy0+cGF0aCgkc2NmZywgJHZvbG5hbWUsICRzdG9yZWlkLCAkc25hcCk7 Cj4gKwo+ICsgICAgJGNsYXNzLT5hY3RpdmF0ZV92b2x1bWUoJHN0b3JlaWQsICRzY2ZnLCAkdm9s bmFtZSwgdW5kZWYsIHt9KTsKPiArICAgIG15ICRzbmFwc2hvdHMgPSAkY2xhc3MtPnZvbHVtZV9z bmFwc2hvdF9pbmZvKCRzY2ZnLCAkc3RvcmVpZCwgJHZvbG5hbWUpOwo+ICsgICAgbXkgJHBhcmVu dF9zbmFwID0gJHNuYXBzaG90cy0+e2N1cnJlbnR9LT57cGFyZW50fTsKCndvdWxkbid0IGl0IGJl IGVub3VnaCB0byBjaGVjayB0aGF0IHRoaXMgZXF1YWxzICRzbmFwPwoKPiArCj4gKyAgICByZXR1 cm4gMSBpZiAkc25hcHNob3RzLT57JHBhcmVudF9zbmFwfS0+e2ZpbGV9IGVxICRzbmFwX3BhdGg7 Cj4gKyAgICBkaWUgImNhbid0IHJvbGxiYWNrLCAnJHNuYXAnIGlzIG5vdCBtb3N0IHJlY2VudCBz bmFwc2hvdCBvbiAnJHZvbG5hbWUnXG4iOwo+ICsKPiArICAgIHJldHVybiAxOwo+ICt9Cj4gKwo+ ICsKPiAgc3ViIHZvbHVtZV9zbmFwc2hvdF9yb2xsYmFjayB7Cj4gICAgICBteSAoJGNsYXNzLCAk c2NmZywgJHN0b3JlaWQsICR2b2xuYW1lLCAkc25hcCkgPSBAXzsKPiAgCj4gLSAgICBkaWUgImx2 bSBzbmFwc2hvdCByb2xsYmFjayBpcyBub3QgaW1wbGVtZW50ZWQiOwo+ICsgICAgZGllICJjYW4n dCByb2xsYmFjayBzbmFwc2hvdCBmb3IgdGhpcyBpbWFnZSBmb3JtYXRcbiIgaWYgJHZvbG5hbWUg IX4gbS9cLihxY293MikkLzsKCnRoaXMgc2hvdWxkIGdvIGJlbG93IHBhcnNlX3ZvbG5hbWUgYW5k IHVzZSB0aGUgZm9ybWF0IGl0IHJldHVybnMuLgoKPiArCj4gKyAgICBteSAoJHZ0eXBlLCAkbmFt ZSwgJHZtaWQsICRiYXNlbmFtZSwgJGJhc2V2bWlkLCAkaXNCYXNlLCAkZm9ybWF0KSA9Cj4gKyAg ICAgICAgJGNsYXNzLT5wYXJzZV92b2xuYW1lKCR2b2xuYW1lKTsKPiArCj4gKyAgICAkY2xhc3Mt PmFjdGl2YXRlX3ZvbHVtZSgkc3RvcmVpZCwgJHNjZmcsICR2b2xuYW1lLCB1bmRlZiwge30pOwoK dHdvIHVubmVlZGVkIHBhcmFtZXRlcnMKCj4gKyAgICBteSAkc2l6ZSA9ICRjbGFzcy0+dm9sdW1l X3NpemVfaW5mbygkc2NmZywgJHN0b3JlaWQsICR2b2xuYW1lLCA1KTsKPiArICAgIG15ICRzbmFw X3BhdGggPSAkY2xhc3MtPnBhdGgoJHNjZmcsICR2b2xuYW1lLCAkc3RvcmVpZCwgJHNuYXApOwo+ ICsKPiArICAgICNzaW1wbHkgZGVsZXRlIHRoZSBjdXJyZW50IHNuYXBzaG90IGFuZCByZWNyZWF0 ZSBpdAo+ICsgICAgZXZhbCB7ICRjbGFzcy0+ZnJlZV9pbWFnZSgkc3RvcmVpZCwgJHNjZmcsICR2 b2xuYW1lLCAwKSB9OwoKbWlnaHQgcmV0dXJuIGEgY29kZSByZWZlcmVuY2UgdGhhdCBuZWVkcyB0 byBiZSBleGVjdXRlZC4uCgo+ICsgICAgaWYgKCRAKSB7Cj4gKwlkaWUgImNhbid0IGRlbGV0ZSBv bGQgdm9sdW1lICR2b2xuYW1lOiAkQFxuIjsKPiArICAgIH0KPiArCj4gKyAgICBldmFsIHsgJGNs YXNzLT5hbGxvY19pbWFnZSgkc3RvcmVpZCwgJHNjZmcsICR2bWlkLCAncWNvdzInLCAkdm9sbmFt ZSwgJHNpemUvMTAyNCwgJHNuYXBfcGF0aCkgfTsKPiArICAgIGlmICgkQCkgewo+ICsJZGllICJj YW4ndCBhbGxvY2F0ZSBuZXcgdm9sdW1lICR2b2xuYW1lOiAkQFxuIjsKPiArICAgIH0KPiArCj4g KyAgICByZXR1cm4gdW5kZWY7Cj4gIH0KPiAgCj4gIHN1YiB2b2x1bWVfc25hcHNob3RfZGVsZXRl IHsKPiAtICAgIG15ICgkY2xhc3MsICRzY2ZnLCAkc3RvcmVpZCwgJHZvbG5hbWUsICRzbmFwKSA9 IEBfOwo+ICsgICAgbXkgKCRjbGFzcywgJHNjZmcsICRzdG9yZWlkLCAkdm9sbmFtZSwgJHNuYXAs ICRydW5uaW5nKSA9IEBfOwo+ICsKPiArICAgZGllICJjYW4ndCBkZWxldGUgc25hcHNob3QgZm9y IHRoaXMgaW1hZ2UgZm9ybWF0XG4iIGlmICR2b2xuYW1lICF+IG0vXC4ocWNvdzIpJC87Cgp0aGlz IHNob3VsZCBwYXJzZSB0aGUgdm9sbmFtZSBhbmQgdXNlIHRoZSByZXR1cm5lZCBmb3JtYXQhCgo+ ICsKPiArICAgcmV0dXJuIDEgaWYgJHJ1bm5pbmc7Cj4gKwo+ICsgICBteSAkY21kID0gIiI7Cj4g KyAgIG15ICRwYXRoID0gJGNsYXNzLT5maWxlc3lzdGVtX3BhdGgoJHNjZmcsICR2b2xuYW1lKTsK PiArCj4gKyAgIG15ICRzbmFwc2hvdHMgPSAkY2xhc3MtPnZvbHVtZV9zbmFwc2hvdF9pbmZvKCRz Y2ZnLCAkc3RvcmVpZCwgJHZvbG5hbWUpOwo+ICsgICBteSAkc25hcF9wYXRoID0gJHNuYXBzaG90 cy0+eyRzbmFwfS0+e2ZpbGV9Owo+ICsgICBteSAkc25hcF92b2xuYW1lID0gJHNuYXBzaG90cy0+ eyRzbmFwfS0+e3ZvbG5hbWV9Owo+ICsgICBkaWUgInZvbHVtZSAkc25hcF9wYXRoIGlzIG1pc3Np bmciIGlmICEtZSAkc25hcF9wYXRoOwo+ICAKPiAtICAgIGRpZSAibHZtIHNuYXBzaG90IGRlbGV0 ZSBpcyBub3QgaW1wbGVtZW50ZWQiOwo+ICsgICBteSAkcGFyZW50X3NuYXAgPSAkc25hcHNob3Rz LT57JHNuYXB9LT57cGFyZW50fTsKPiArICAgbXkgJGNoaWxkX3NuYXAgPSAkc25hcHNob3RzLT57 JHNuYXB9LT57Y2hpbGR9Owo+ICsKPiArICAgbXkgJHBhcmVudF9wYXRoID0gJHNuYXBzaG90cy0+ eyRwYXJlbnRfc25hcH0tPntmaWxlfSBpZiAkcGFyZW50X3NuYXA7Cj4gKyAgIG15ICRjaGlsZF9w YXRoID0gJHNuYXBzaG90cy0+eyRjaGlsZF9zbmFwfS0+e2ZpbGV9IGlmICRjaGlsZF9zbmFwOwo+ ICsgICBteSAkY2hpbGRfdm9sbmFtZSA9ICRzbmFwc2hvdHMtPnskY2hpbGRfc25hcH0tPnt2b2xu YW1lfSBpZiAkY2hpbGRfc25hcDsKCnNhbWUgYXMgaW4gdGhlIFBsdWdpbi5wbSBwYXRjaCwgdGhp cyBpcyBub3QgYWxsb3dlZCBjb2RlIHN0eWxlIQoKPiArCj4gKyAgICNpZiBmaXJzdCBzbmFwc2hv dCxhcyBpdCBzaG91bGQgYmUgYmlnZ2VyLCAgd2UgbWVyZ2UgY2hpbGQsIGFuZCByZW5hbWUgdGhl IHNuYXBzaG90IHRvIGNoaWxkCj4gKyAgIGlmKCEkcGFyZW50X3NuYXApIHsKPiArCXByaW50ImNv bW1pdCAkY2hpbGRfcGF0aFxuIjsKPiArCSRjbWQgPSBbJy91c3IvYmluL3FlbXUtaW1nJywgJ2Nv bW1pdCcsICRjaGlsZF9wYXRoXTsKCmNvdWxkIHVzZSBgLWRgLCBzaW5jZSB3ZSBkb24ndCB1c2Ug JGNoaWxkX3BhdGggYWZ0ZXJ3YXJkcyBhbnl3YXkKCj4gKwlldmFsIHsJcnVuX2NvbW1hbmQoJGNt ZCkgfTsKPiArCWlmICgkQCkgewo+ICsJICAgIGRpZSAiZXJyb3IgY29tbWl0aW5nICRjaGlsZF9w YXRoIHRvICRwYXJlbnRfcGF0aDogJEBcbiI7Cj4gKwl9Cj4gKwlwcmludCJkZWxldGUgJGNoaWxk X3ZvbG5hbWVcbiI7Cj4gKwlldmFsIHsgJGNsYXNzLT5mcmVlX2ltYWdlKCRzdG9yZWlkLCAkc2Nm ZywgJGNoaWxkX3ZvbG5hbWUsIDApIH07CgptaWdodCByZXR1cm4gYSBjb2RlIHJlZmVyZW5jZSB0 aGF0IG5lZWRzIHRvIGJlIGV4ZWN1dGVkLi4KCj4gKwlpZiAoJEApIHsKPiArCSAgICBkaWUgImVy cm9yIGRlbGV0ZSBvbGQgc25hcHNob3Qgdm9sdW1lICRjaGlsZF92b2xuYW1lOiAkQFxuIjsKPiAr CX0KPiArCXByaW50InJlbmFtZSAkc25hcF92b2xuYW1lIHRvICRjaGlsZF92b2xuYW1lXG4iOwo+ ICsJbXkgJHZnID0gJHNjZmctPnt2Z25hbWV9Owo+ICsJZXZhbCB7IGx2cmVuYW1lKCR2ZywgJHNu YXBfdm9sbmFtZSwgJGNoaWxkX3ZvbG5hbWUpIH07Cj4gKwlpZiAoJEApIHsKPiArCSAgICBkaWUg ImVycm9yIHJlbmFtaW5nIHNuYXBzaG90OiAkQFxuIjsKPiArCX0KPiArICAgIH0gZWxzZSB7Cj4g Kwkjd2UgcmViYXNlIHRoZSBjaGlsZCBpbWFnZSBvbiB0aGUgcGFyZW50IGFzIG5ldyBiYWNraW5n IGltYWdlCj4gKwlkaWUgIm1pc3NpbmcgcGFyZW50c25hcCBzbmFwc2hvdCB0byByZWJhc2UgY2hp bGQgJGNoaWxkX3BhdGhcbiIgaWYgISRwYXJlbnRfcGF0aDsKCmhvdyB3b3VsZCB0aGlzIGhhcHBl bj8KCj4gKwlwcmludCAibGluayAkY2hpbGRfc25hcCB0byAkcGFyZW50X3NuYXBcbiI7Cj4gKwkk Y21kID0gWycvdXNyL2Jpbi9xZW11LWltZycsICdyZWJhc2UnLCAnLWInLCAkcGFyZW50X3BhdGgs ICctRicsICdxY293MicsICctZicsICdxY293MicsICRjaGlsZF9wYXRoXTsKPiArCWV2YWwgeyBy dW5fY29tbWFuZCgkY21kKSB9Owo+ICsJaWYgKCRAKSB7Cj4gKwkgICAgZGllICJlcnJvciByZWJh c2UgJGNoaWxkX3BhdGggd2l0aCAkcGFyZW50X3BhdGg7ICRAXG4iOwo+ICsJfQo+ICsJI2RlbGV0 ZSB0aGUgc25hcHNob3QKPiArCWV2YWwgeyAkY2xhc3MtPmZyZWVfaW1hZ2UoJHN0b3JlaWQsICRz Y2ZnLCAkc25hcF92b2xuYW1lLCAwKTsgfTsKCm1pZ2h0IHJldHVybiBhIGNvZGUgcmVmZXJlbmNl IHRoYXQgbmVlZHMgdG8gYmUgZXhlY3V0ZWQuLgoKPiArCWlmICgkQCkgewo+ICsJICAgIGRpZSAi ZXJyb3IgZGVsZXRlIG9sZCBzbmFwc2hvdCB2b2x1bWUgJHNuYXBfdm9sbmFtZTogJEBcbiI7Cj4g Kwl9Cj4gKyAgICB9Cj4gIH0KPiAgCj4gIHN1YiB2b2x1bWVfaGFzX2ZlYXR1cmUgewo+ICAgICAg bXkgKCRjbGFzcywgJHNjZmcsICRmZWF0dXJlLCAkc3RvcmVpZCwgJHZvbG5hbWUsICRzbmFwbmFt ZSwgJHJ1bm5pbmcpID0gQF87Cj4gIAo+ICAgICAgbXkgJGZlYXR1cmVzID0gewo+IC0JY29weSA9 PiB7IGJhc2UgPT4gMSwgY3VycmVudCA9PiAxfSwKPiAtCXJlbmFtZSA9PiB7Y3VycmVudCA9PiAx fSwKPiArICAgICAgICBjb3B5ID0+IHsKPiArICAgICAgICAgICAgYmFzZSA9PiB7IHFjb3cyID0+ IDEsIHJhdyA9PiAxfSwKPiArICAgICAgICAgICAgY3VycmVudCA9PiB7IHFjb3cyID0+IDEsIHJh dyA9PiAxfSwKPiArICAgICAgICAgICAgc25hcCA9PiB7IHFjb3cyID0+IDEgfSwKCmRpZCB5b3Ug YWN0dWFsbHkgdGVzdCB0aGlzPyBBRkFJQ1QgdGhpcyB3b3VsZCBzdGlsbCBmYWxsIGJhY2sgdG8g aW50ZXJuYWwgcWNvdzIgc25hcHNob3RzPwoKPiArICAgICAgICB9LAo+ICsgICAgICAgICdyZW5h bWUnID0+IHsKPiArICAgICAgICAgICAgY3VycmVudCA9PiB7IHFjb3cyID0+IDEsIHJhdyA9PiAx fSwKCmhvdyBkb2VzIHRoaXMgaW50ZXJhY3Qgd2l0aCBzbmFwc2hvdHM/Cgo+ICsgICAgICAgIH0s Cj4gKyAgICAgICAgc25hcHNob3QgPT4gewo+ICsgICAgICAgICAgICBjdXJyZW50ID0+IHsgcWNv dzIgPT4gMSB9LAo+ICsgICAgICAgICAgICBzbmFwID0+IHsgcWNvdzIgPT4gMSB9LAo+ICsgICAg ICAgIH0sCj4gKyAgICAgICAgdGVtcGxhdGUgPT4gewo+ICsgICAgICAgICAgICBjdXJyZW50ID0+ IHsgcWNvdzIgPT4gMSwgcmF3ID0+IDF9LAoKc2VlIGJlbG93Li4KCj4gKyAgICAgICAgfSwKPiAr CWNsb25lID0+IHsKPiArCSAgICBiYXNlID0+IHsgcWNvdzIgPT4gMSwgcmF3ID0+IDEgfSwKCmhv dyBjYW4gd2UgZG8gbGlua2VkIGNsb25lcyBvZiByYXcgdm9sdW1lcz8gaG93IGNhbiB3ZSBkbyBs aW5rZWQgY2xvbmVzIG9mIHFjb3cyIHZvbHVtZXMgaWYgd2UgZG9uJ3QgYWxsb3cgY3JlYXRpbmcg YmFzZSB2b2x1bWVzPwoKPiArCX0sCj4gICAgICB9Owo+ICAKPiAtICAgIG15ICgkdnR5cGUsICRu YW1lLCAkdm1pZCwgJGJhc2VuYW1lLCAkYmFzZXZtaWQsICRpc0Jhc2UpID0KPiArCj4gKyAgICBt eSAoJHZ0eXBlLCAkbmFtZSwgJHZtaWQsICRiYXNlbmFtZSwgJGJhc2V2bWlkLCAkaXNCYXNlLCAk Zm9ybWF0KSA9Cj4gIAkkY2xhc3MtPnBhcnNlX3ZvbG5hbWUoJHZvbG5hbWUpOwo+ICAKPiAgICAg IG15ICRrZXkgPSB1bmRlZjsKPiBAQCAtNjE5LDcgKzgwMyw3IEBAIHN1YiB2b2x1bWVfaGFzX2Zl YXR1cmUgewo+ICAgICAgfWVsc2V7Cj4gIAkka2V5ID0gICRpc0Jhc2UgPyAnYmFzZScgOiAnY3Vy cmVudCc7Cj4gICAgICB9Cj4gLSAgICByZXR1cm4gMSBpZiAkZmVhdHVyZXMtPnskZmVhdHVyZX0t Pnska2V5fTsKPiArICAgIHJldHVybiAxIGlmIGRlZmluZWQoJGZlYXR1cmVzLT57JGZlYXR1cmV9 LT57JGtleX0tPnskZm9ybWF0fSk7Cgp3aHkgdGhlIGRlZmluZWQ/Cgo+ICAKPiAgICAgIHJldHVy biB1bmRlZjsKPiAgfQo+IEBAIC03NDAsNCArOTI0LDEyIEBAIHN1YiByZW5hbWVfdm9sdW1lIHsK PiAgICAgIHJldHVybiAiJHtzdG9yZWlkfToke3RhcmdldF92b2xuYW1lfSI7Cj4gIH0KPiAgCj4g K3N1YiBnZXRfc25hcF92b2xuYW1lIHsKPiArICAgIG15ICgkY2xhc3MsICR2b2xuYW1lLCAkc25h cG5hbWUpID0gQF87Cj4gKwo+ICsgICAgbXkgKCR2dHlwZSwgJG5hbWUsICR2bWlkLCAkYmFzZW5h bWUsICRiYXNldm1pZCwgJGlzQmFzZSwgJGZvcm1hdCkgPSAkY2xhc3MtPnBhcnNlX3ZvbG5hbWUo JHZvbG5hbWUpOwo+ICsgICAgJG5hbWUgPSAhJHNuYXBuYW1lIHx8ICRzbmFwbmFtZSBlcSAnY3Vy cmVudCcgPyAkdm9sbmFtZSA6ICJzbmFwLSRzbmFwbmFtZS0kbmFtZSI7CgpzZWUgYWJvdmUuLgoK PiArICAgIHJldHVybiAkbmFtZTsKPiArfQo+ICsKPiAgMTsKPiAtLSAKPiAyLjM5LjUKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpwdmUtZGV2ZWwgbWFp bGluZyBsaXN0CnB2ZS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQpodHRwczovL2xpc3RzLnByb3ht b3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wdmUtZGV2ZWwK