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 379E31FF15C for <inbox@lore.proxmox.com>; Fri, 4 Apr 2025 18:11:46 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 8F7AB37115; Fri, 4 Apr 2025 18:10:53 +0200 (CEST) From: Markus Frank <m.frank@proxmox.com> To: pve-devel@lists.proxmox.com Date: Fri, 4 Apr 2025 18:08:43 +0200 Message-Id: <20250404160847.489922-9-m.frank@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250404160847.489922-1-m.frank@proxmox.com> References: <20250404160847.489922-1-m.frank@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL -1.003 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 KAM_MAILER 2 Automated Mailer Tag Left in Email SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pve-devel] [PATCH manager v16 08/12] api: add resource map api endpoints for directories 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> U2lnbmVkLW9mZi1ieTogTWFya3VzIEZyYW5rIDxtLmZyYW5rQHByb3htb3guY29tPgpSZXZpZXdl ZC1ieTogRmlvbmEgRWJuZXIgPGYuZWJuZXJAcHJveG1veC5jb20+ClJldmlld2VkLWJ5OiBMYXVy ZW7Im2l1IExlYWh1LVZsxINkdWN1IDxsLmxlYWh1LXZsYWR1Y3VAcHJveG1veC5jb20KUmV2aWV3 ZWQtYnk6IERhbmllbCBLcmFsIDxkLmtyYWxAcHJveG1veC5jb20+ClRlc3RlZC1ieTogTGF1cmVu yJtpdSBMZWFodS1WbMSDZHVjdSA8bC5sZWFodS12bGFkdWN1QHByb3htb3guY29tPgpUZXN0ZWQt Ynk6IERhbmllbCBLcmFsIDxkLmtyYWxAcHJveG1veC5jb20+ClRlc3RlZC1ieTogTHVrYXMgV2Fn bmVyIDxsLndhZ25lckBwcm94bW94LmNvbT4KLS0tCm5vIGNoYW5nZXMgaW4gdjE2CgogUFZFL0FQ STIvQ2x1c3Rlci9NYXBwaW5nLnBtICAgICAgIHwgICA3ICsKIFBWRS9BUEkyL0NsdXN0ZXIvTWFw cGluZy9EaXIucG0gICB8IDMwOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIFBWRS9B UEkyL0NsdXN0ZXIvTWFwcGluZy9NYWtlZmlsZSB8ICAgMSArCiAzIGZpbGVzIGNoYW5nZWQsIDMx NiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgUFZFL0FQSTIvQ2x1c3Rlci9NYXBw aW5nL0Rpci5wbQoKZGlmZiAtLWdpdCBhL1BWRS9BUEkyL0NsdXN0ZXIvTWFwcGluZy5wbSBiL1BW RS9BUEkyL0NsdXN0ZXIvTWFwcGluZy5wbQppbmRleCA0MDM4NjU3OS4uOWYwZGNkMmIgMTAwNjQ0 Ci0tLSBhL1BWRS9BUEkyL0NsdXN0ZXIvTWFwcGluZy5wbQorKysgYi9QVkUvQVBJMi9DbHVzdGVy L01hcHBpbmcucG0KQEAgLTMsMTEgKzMsMTcgQEAgcGFja2FnZSBQVkU6OkFQSTI6OkNsdXN0ZXI6 Ok1hcHBpbmc7CiB1c2Ugc3RyaWN0OwogdXNlIHdhcm5pbmdzOwogCit1c2UgUFZFOjpBUEkyOjpD bHVzdGVyOjpNYXBwaW5nOjpEaXI7CiB1c2UgUFZFOjpBUEkyOjpDbHVzdGVyOjpNYXBwaW5nOjpQ Q0k7CiB1c2UgUFZFOjpBUEkyOjpDbHVzdGVyOjpNYXBwaW5nOjpVU0I7CiAKIHVzZSBiYXNlIHF3 KFBWRTo6UkVTVEhhbmRsZXIpOwogCitfX1BBQ0tBR0VfXy0+cmVnaXN0ZXJfbWV0aG9kICh7Cisg ICAgc3ViY2xhc3MgPT4gIlBWRTo6QVBJMjo6Q2x1c3Rlcjo6TWFwcGluZzo6RGlyIiwKKyAgICBw YXRoID0+ICdkaXInLAorfSk7CisKIF9fUEFDS0FHRV9fLT5yZWdpc3Rlcl9tZXRob2QgKHsKICAg ICBzdWJjbGFzcyA9PiAiUFZFOjpBUEkyOjpDbHVzdGVyOjpNYXBwaW5nOjpQQ0kiLAogICAgIHBh dGggPT4gJ3BjaScsCkBAIC00MSw2ICs0Nyw3IEBAIF9fUEFDS0FHRV9fLT5yZWdpc3Rlcl9tZXRo b2QgKHsKIAlteSAoJHBhcmFtKSA9IEBfOwogCiAJbXkgJHJlc3VsdCA9IFsKKwkgICAgeyBuYW1l ID0+ICdkaXInIH0sCiAJICAgIHsgbmFtZSA9PiAncGNpJyB9LAogCSAgICB7IG5hbWUgPT4gJ3Vz YicgfSwKIAldOwpkaWZmIC0tZ2l0IGEvUFZFL0FQSTIvQ2x1c3Rlci9NYXBwaW5nL0Rpci5wbSBi L1BWRS9BUEkyL0NsdXN0ZXIvTWFwcGluZy9EaXIucG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAuLmY5MDVjZWYzCi0tLSAvZGV2L251bGwKKysrIGIvUFZFL0FQSTIvQ2x1c3Rl ci9NYXBwaW5nL0Rpci5wbQpAQCAtMCwwICsxLDMwOCBAQAorcGFja2FnZSBQVkU6OkFQSTI6OkNs dXN0ZXI6Ok1hcHBpbmc6OkRpcjsKKwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKKwordXNl IFN0b3JhYmxlIHF3KGRjbG9uZSk7CisKK3VzZSBQVkU6OklOb3RpZnk7Cit1c2UgUFZFOjpKU09O U2NoZW1hIHF3KGdldF9zdGFuZGFyZF9vcHRpb24pOwordXNlIFBWRTo6TWFwcGluZzo6RGlyICgp OwordXNlIFBWRTo6UlBDRW52aXJvbm1lbnQ7Cit1c2UgUFZFOjpTZWN0aW9uQ29uZmlnOwordXNl IFBWRTo6VG9vbHMgcXcoZXh0cmFjdF9wYXJhbSk7CisKK3VzZSBiYXNlIHF3KFBWRTo6UkVTVEhh bmRsZXIpOworCitfX1BBQ0tBR0VfXy0+cmVnaXN0ZXJfbWV0aG9kICh7CisgICAgbmFtZSA9PiAn aW5kZXgnLAorICAgIHBhdGggPT4gJycsCisgICAgbWV0aG9kID0+ICdHRVQnLAorICAgICMgb25s eSBwcm94eSBpZiB3ZSBnaXZlIHRoZSAnY2hlY2stbm9kZScgcGFyYW1ldGVyCisgICAgcHJveHl0 b19jYWxsYmFjayA9PiBzdWIgeworCW15ICgkcnBjZW52LCAkcHJveHl0bywgJHBhcmFtKSA9IEBf OworCXJldHVybiAkcGFyYW0tPnsnY2hlY2stbm9kZSd9IC8vICdsb2NhbGhvc3QnOworICAgIH0s CisgICAgZGVzY3JpcHRpb24gPT4gIkxpc3QgZGlyZWN0b3J5IG1hcHBpbmciLAorICAgIHBlcm1p c3Npb25zID0+IHsKKwlkZXNjcmlwdGlvbiA9PiAiT25seSBsaXN0cyBlbnRyaWVzIHdoZXJlIHlv dSBoYXZlICdNYXBwaW5nLk1vZGlmeScsICdNYXBwaW5nLlVzZScgb3IiCisJICAgIC4iICdNYXBw aW5nLkF1ZGl0JyBwZXJtaXNzaW9ucyBvbiAnL21hcHBpbmcvZGlyLzxpZD4nLiIsCisJdXNlciA9 PiAnYWxsJywKKyAgICB9LAorICAgIHBhcmFtZXRlcnMgPT4geworCWFkZGl0aW9uYWxQcm9wZXJ0 aWVzID0+IDAsCisJcHJvcGVydGllcyA9PiB7CisJICAgICdjaGVjay1ub2RlJyA9PiBnZXRfc3Rh bmRhcmRfb3B0aW9uKCdwdmUtbm9kZScsIHsKKwkJZGVzY3JpcHRpb24gPT4gIklmIGdpdmVuLCBj aGVja3MgdGhlIGNvbmZpZ3VyYXRpb25zIG9uIHRoZSBnaXZlbiBub2RlIGZvciIKKwkJICAgIC4i IGNvcnJlY3RuZXNzLCBhbmQgYWRkcyByZWxldmFudCBkaWFnbm9zdGljcyBmb3IgdGhlIGRpcmVj dG9yeSB0byB0aGUgcmVzcG9uc2UuIiwKKwkJb3B0aW9uYWwgPT4gMSwKKwkgICAgfSksCisJfSwK KyAgICB9LAorICAgIHJldHVybnMgPT4geworCXR5cGUgPT4gJ2FycmF5JywKKwlpdGVtcyA9PiB7 CisJICAgIHR5cGUgPT4gIm9iamVjdCIsCisJICAgIHByb3BlcnRpZXMgPT4geworCQlpZCA9PiB7 CisJCSAgICB0eXBlID0+ICdzdHJpbmcnLAorCQkgICAgZGVzY3JpcHRpb24gPT4gIlRoZSBsb2dp Y2FsIElEIG9mIHRoZSBtYXBwaW5nLiIKKwkJfSwKKwkJbWFwID0+IHsKKwkJICAgIHR5cGUgPT4g J2FycmF5JywKKwkJICAgIGRlc2NyaXB0aW9uID0+ICJUaGUgZW50cmllcyBvZiB0aGUgbWFwcGlu Zy4iLAorCQkgICAgaXRlbXMgPT4geworCQkJdHlwZSA9PiAnc3RyaW5nJywKKwkJCWRlc2NyaXB0 aW9uID0+ICJBIG1hcHBpbmcgZm9yIGEgbm9kZS4iLAorCQkgICAgfSwKKwkJfSwKKwkJZGVzY3Jp cHRpb24gPT4geworCQkgICAgdHlwZSA9PiAnc3RyaW5nJywKKwkJICAgIGRlc2NyaXB0aW9uID0+ ICJBIGRlc2NyaXB0aW9uIG9mIHRoZSBsb2dpY2FsIG1hcHBpbmcuIiwKKwkJfSwKKwkJY2hlY2tz ID0+IHsKKwkJICAgIHR5cGUgPT4gImFycmF5IiwKKwkJICAgIG9wdGlvbmFsID0+IDEsCisJCSAg ICBkZXNjcmlwdGlvbiA9PiAiQSBsaXN0IG9mIGNoZWNrcywgb25seSBwcmVzZW50IGlmICdjaGVj ay1ub2RlJyBpcyBzZXQuIiwKKwkJICAgIGl0ZW1zID0+IHsKKwkJCXR5cGUgPT4gJ29iamVjdCcs CisJCQlwcm9wZXJ0aWVzID0+IHsKKwkJCSAgICBzZXZlcml0eSA9PiB7CisJCQkJdHlwZSA9PiAi c3RyaW5nIiwKKwkJCQllbnVtID0+IFsnd2FybmluZycsICdlcnJvciddLAorCQkJCWRlc2NyaXB0 aW9uID0+ICJUaGUgc2V2ZXJpdHkgb2YgdGhlIGVycm9yIiwKKwkJCSAgICB9LAorCQkJICAgIG1l c3NhZ2UgPT4geworCQkJCXR5cGUgPT4gInN0cmluZyIsCisJCQkJZGVzY3JpcHRpb24gPT4gIlRo ZSBtZXNzYWdlIG9mIHRoZSBlcnJvciIsCisJCQkgICAgfSwKKwkJCX0sCisJCSAgICB9CisJCX0s CisJICAgIH0sCisJfSwKKwlsaW5rcyA9PiBbIHsgcmVsID0+ICdjaGlsZCcsIGhyZWYgPT4gIntp ZH0iIH0gXSwKKyAgICB9LAorICAgIGNvZGUgPT4gc3ViIHsKKwlteSAoJHBhcmFtKSA9IEBfOwor CisJbXkgJHJwY2VudiA9IFBWRTo6UlBDRW52aXJvbm1lbnQ6OmdldCgpOworCW15ICRhdXRodXNl ciA9ICRycGNlbnYtPmdldF91c2VyKCk7CisKKwlteSAkY2hlY2tfbm9kZSA9ICRwYXJhbS0+eydj aGVjay1ub2RlJ307CisJbXkgJGxvY2FsX25vZGUgPSBQVkU6OklOb3RpZnk6Om5vZGVuYW1lKCk7 CisKKwlkaWUgIndyb25nIG5vZGUgdG8gY2hlY2sgLSAkY2hlY2tfbm9kZSAhPSAkbG9jYWxfbm9k ZVxuIgorCSAgICBpZiBkZWZpbmVkKCRjaGVja19ub2RlKSAmJiAkY2hlY2tfbm9kZSBuZSAnbG9j YWxob3N0JyAmJiAkY2hlY2tfbm9kZSBuZSAkbG9jYWxfbm9kZTsKKworCW15ICRjZmcgPSBQVkU6 Ok1hcHBpbmc6OkRpcjo6Y29uZmlnKCk7CisKKwlteSAkY2FuX3NlZV9tYXBwaW5nX3ByaXZzID0g WydNYXBwaW5nLk1vZGlmeScsICdNYXBwaW5nLlVzZScsICdNYXBwaW5nLkF1ZGl0J107CisKKwlt eSAkcmVzID0gW107CisJZm9yIG15ICRpZCAoa2V5cyAkY2ZnLT57aWRzfS0+JSopIHsKKwkgICAg bmV4dCBpZiAhJHJwY2Vudi0+Y2hlY2tfYW55KCRhdXRodXNlciwgIi9tYXBwaW5nL2Rpci8kaWQi LCAkY2FuX3NlZV9tYXBwaW5nX3ByaXZzLCAxKTsKKwkgICAgbmV4dCBpZiAhJGNmZy0+e2lkc30t PnskaWR9OworCisJICAgIG15ICRlbnRyeSA9IGRjbG9uZSgkY2ZnLT57aWRzfS0+eyRpZH0pOwor CSAgICAkZW50cnktPntpZH0gPSAkaWQ7CisJICAgICRlbnRyeS0+e2RpZ2VzdH0gPSAkY2ZnLT57 ZGlnZXN0fTsKKworCSAgICBpZiAoZGVmaW5lZCgkY2hlY2tfbm9kZSkpIHsKKwkJJGVudHJ5LT57 Y2hlY2tzfSA9IFtdOworCQlpZiAobXkgJG1hcHBpbmdzID0gUFZFOjpNYXBwaW5nOjpEaXI6Omdl dF9ub2RlX21hcHBpbmcoJGNmZywgJGlkLCAkY2hlY2tfbm9kZSkpIHsKKwkJICAgIGlmICghc2Nh bGFyKCRtYXBwaW5ncy0+QCopKSB7CisJCQlwdXNoICRlbnRyeS0+e2NoZWNrc30tPkAqLCB7CisJ CQkgICAgc2V2ZXJpdHkgPT4gJ3dhcm5pbmcnLAorCQkJICAgIG1lc3NhZ2UgPT4gIk5vIG1hcHBp bmcgZm9yIG5vZGUgJGNoZWNrX25vZGUuIiwKKwkJCX07CisJCSAgICB9CisJCSAgICBmb3IgbXkg JG1hcHBpbmcgKCRtYXBwaW5ncy0+QCopIHsKKwkJCWV2YWwgeyBQVkU6Ok1hcHBpbmc6OkRpcjo6 YXNzZXJ0X3ZhbGlkKCRtYXBwaW5nKSB9OworCQkJaWYgKG15ICRlcnIgPSAkQCkgeworCQkJICAg IHB1c2ggJGVudHJ5LT57Y2hlY2tzfS0+QCosIHsKKwkJCQlzZXZlcml0eSA9PiAnZXJyb3InLAor CQkJCW1lc3NhZ2UgPT4gIkludmFsaWQgY29uZmlndXJhdGlvbjogJGVyciIsCisJCQkgICAgfTsK KwkJCX0KKwkJICAgIH0KKwkJfQorCSAgICB9CisKKwkgICAgcHVzaCBAJHJlcywgJGVudHJ5Owor CX0KKworCXJldHVybiAkcmVzOworICAgIH0sCit9KTsKKworX19QQUNLQUdFX18tPnJlZ2lzdGVy X21ldGhvZCAoeworICAgIG5hbWUgPT4gJ2dldCcsCisgICAgcHJvdGVjdGVkID0+IDEsCisgICAg cGF0aCA9PiAne2lkfScsCisgICAgbWV0aG9kID0+ICdHRVQnLAorICAgIGRlc2NyaXB0aW9uID0+ ICJHZXQgZGlyZWN0b3J5IG1hcHBpbmcuIiwKKyAgICBwZXJtaXNzaW9ucyA9PiB7CisJY2hlY2sg PT5bJ29yJywKKwkgICAgWydwZXJtJywgJy9tYXBwaW5nL2Rpci97aWR9JywgWydNYXBwaW5nLlVz ZSddXSwKKwkgICAgWydwZXJtJywgJy9tYXBwaW5nL2Rpci97aWR9JywgWydNYXBwaW5nLk1vZGlm eSddXSwKKwkgICAgWydwZXJtJywgJy9tYXBwaW5nL2Rpci97aWR9JywgWydNYXBwaW5nLkF1ZGl0 J11dLAorCV0sCisgICAgfSwKKyAgICBwYXJhbWV0ZXJzID0+IHsKKwlhZGRpdGlvbmFsUHJvcGVy dGllcyA9PiAwLAorCXByb3BlcnRpZXMgPT4geworCSAgICBpZCA9PiB7CisJCXR5cGUgPT4gJ3N0 cmluZycsCisJCWZvcm1hdCA9PiAncHZlLWNvbmZpZ2lkJywKKwkgICAgfSwKKwl9CisgICAgfSwK KyAgICByZXR1cm5zID0+IHsgdHlwZSA9PiAnb2JqZWN0JyB9LAorICAgIGNvZGUgPT4gc3ViIHsK KwlteSAoJHBhcmFtKSA9IEBfOworCisJbXkgJGNmZyA9IFBWRTo6TWFwcGluZzo6RGlyOjpjb25m aWcoKTsKKwlteSAkaWQgPSAkcGFyYW0tPntpZH07CisKKwlteSAkZW50cnkgPSAkY2ZnLT57aWRz fS0+eyRpZH07CisJZGllICJtYXBwaW5nICckcGFyYW0tPntpZH0nIG5vdCBmb3VuZFxuIiBpZiAh ZGVmaW5lZCgkZW50cnkpOworCisJbXkgJGRhdGEgPSBkY2xvbmUoJGVudHJ5KTsKKworCSRkYXRh LT57ZGlnZXN0fSA9ICRjZmctPntkaWdlc3R9OworCisJcmV0dXJuICRkYXRhOworICAgIH19KTsK KworX19QQUNLQUdFX18tPnJlZ2lzdGVyX21ldGhvZCAoeworICAgIG5hbWUgPT4gJ2NyZWF0ZScs CisgICAgcHJvdGVjdGVkID0+IDEsCisgICAgcGF0aCA9PiAnJywKKyAgICBtZXRob2QgPT4gJ1BP U1QnLAorICAgIGRlc2NyaXB0aW9uID0+ICJDcmVhdGUgYSBuZXcgZGlyZWN0b3J5IG1hcHBpbmcu IiwKKyAgICBwZXJtaXNzaW9ucyA9PiB7CisJY2hlY2sgPT4gWydwZXJtJywgJy9tYXBwaW5nL2Rp cicsIFsnTWFwcGluZy5Nb2RpZnknXV0sCisgICAgfSwKKyAgICBwYXJhbWV0ZXJzID0+IFBWRTo6 TWFwcGluZzo6RGlyLT5jcmVhdGVTY2hlbWEoMSksCisgICAgcmV0dXJucyA9PiB7CisJdHlwZSA9 PiAnbnVsbCcsCisgICAgfSwKKyAgICBjb2RlID0+IHN1YiB7CisJbXkgKCRwYXJhbSkgPSBAXzsK KworCW15ICRpZCA9IGV4dHJhY3RfcGFyYW0oJHBhcmFtLCAnaWQnKTsKKworCW15ICRwbHVnaW4g PSBQVkU6Ok1hcHBpbmc6OkRpci0+bG9va3VwKCdkaXInKTsKKwlteSAkb3B0cyA9ICRwbHVnaW4t PmNoZWNrX2NvbmZpZygkaWQsICRwYXJhbSwgMSwgMSk7CisKKwlteSAkbWFwX2xpc3QgPSAkb3B0 cy0+e21hcH07CisJUFZFOjpNYXBwaW5nOjpEaXI6OmFzc2VydF92YWxpZF9tYXBfbGlzdCgkbWFw X2xpc3QpOworCisJUFZFOjpNYXBwaW5nOjpEaXI6OmxvY2tfZGlyX2NvbmZpZyhzdWIgeworCSAg ICBteSAkY2ZnID0gUFZFOjpNYXBwaW5nOjpEaXI6OmNvbmZpZygpOworCisJICAgIGRpZSAiZGly IElEICckaWQnIGFscmVhZHkgZGVmaW5lZFxuIiBpZiBkZWZpbmVkKCRjZmctPntpZHN9LT57JGlk fSk7CisKKwkgICAgJGNmZy0+e2lkc30tPnskaWR9ID0gJG9wdHM7CisKKwkgICAgUFZFOjpNYXBw aW5nOjpEaXI6OndyaXRlX2Rpcl9jb25maWcoJGNmZyk7CisKKwl9LCAiY3JlYXRlIGRpcmVjdG9y eSBtYXBwaW5nIGZhaWxlZCIpOworCisJcmV0dXJuOworICAgIH0sCit9KTsKKworX19QQUNLQUdF X18tPnJlZ2lzdGVyX21ldGhvZCAoeworICAgIG5hbWUgPT4gJ3VwZGF0ZScsCisgICAgcHJvdGVj dGVkID0+IDEsCisgICAgcGF0aCA9PiAne2lkfScsCisgICAgbWV0aG9kID0+ICdQVVQnLAorICAg IGRlc2NyaXB0aW9uID0+ICJVcGRhdGUgYSBkaXJlY3RvcnkgbWFwcGluZy4iLAorICAgIHBlcm1p c3Npb25zID0+IHsKKwljaGVjayA9PiBbJ3Blcm0nLCAnL21hcHBpbmcvZGlyL3tpZH0nLCBbJ01h cHBpbmcuTW9kaWZ5J11dLAorICAgIH0sCisgICAgcGFyYW1ldGVycyA9PiBQVkU6Ok1hcHBpbmc6 OkRpci0+dXBkYXRlU2NoZW1hKCksCisgICAgcmV0dXJucyA9PiB7CisJdHlwZSA9PiAnbnVsbCcs CisgICAgfSwKKyAgICBjb2RlID0+IHN1YiB7CisJbXkgKCRwYXJhbSkgPSBAXzsKKworCW15ICRk aWdlc3QgPSBleHRyYWN0X3BhcmFtKCRwYXJhbSwgJ2RpZ2VzdCcpOworCW15ICRkZWxldGUgPSBl eHRyYWN0X3BhcmFtKCRwYXJhbSwgJ2RlbGV0ZScpOworCW15ICRpZCA9IGV4dHJhY3RfcGFyYW0o JHBhcmFtLCAnaWQnKTsKKworCWlmICgkZGVsZXRlKSB7CisJICAgICRkZWxldGUgPSBbIFBWRTo6 VG9vbHM6OnNwbGl0X2xpc3QoJGRlbGV0ZSkgXTsKKwl9CisKKwlQVkU6Ok1hcHBpbmc6OkRpcjo6 bG9ja19kaXJfY29uZmlnKHN1YiB7CisJICAgIG15ICRjZmcgPSBQVkU6Ok1hcHBpbmc6OkRpcjo6 Y29uZmlnKCk7CisKKwkgICAgUFZFOjpUb29sczo6YXNzZXJ0X2lmX21vZGlmaWVkKCRjZmctPntk aWdlc3R9LCAkZGlnZXN0KSBpZiBkZWZpbmVkKCRkaWdlc3QpOworCisJICAgIGRpZSAiZGlyIElE ICckaWQnIGRvZXMgbm90IGV4aXN0XG4iIGlmICFkZWZpbmVkKCRjZmctPntpZHN9LT57JGlkfSk7 CisKKwkgICAgbXkgJHBsdWdpbiA9IFBWRTo6TWFwcGluZzo6RGlyLT5sb29rdXAoJ2RpcicpOwor CSAgICBteSAkb3B0cyA9ICRwbHVnaW4tPmNoZWNrX2NvbmZpZygkaWQsICRwYXJhbSwgMSwgMSk7 CisKKwkgICAgbXkgJG1hcF9saXN0ID0gJG9wdHMtPnttYXB9OworCSAgICBQVkU6Ok1hcHBpbmc6 OkRpcjo6YXNzZXJ0X3ZhbGlkX21hcF9saXN0KCRtYXBfbGlzdCk7CisKKwkgICAgbXkgJGRhdGEg PSAkY2ZnLT57aWRzfS0+eyRpZH07CisKKwkgICAgbXkgJG9wdGlvbnMgPSAkcGx1Z2luLT5wcml2 YXRlKCktPntvcHRpb25zfS0+e2Rpcn07CisJICAgIFBWRTo6U2VjdGlvbkNvbmZpZzo6ZGVsZXRl X2Zyb21fY29uZmlnKCRkYXRhLCAkb3B0aW9ucywgJG9wdHMsICRkZWxldGUpOworCisJICAgICRk YXRhLT57JF99ID0gJG9wdHMtPnskX30gZm9yIGtleXMgJG9wdHMtPiUqOworCisJICAgIFBWRTo6 TWFwcGluZzo6RGlyOjp3cml0ZV9kaXJfY29uZmlnKCRjZmcpOworCisJfSwgInVwZGF0ZSBkaXJl Y3RvcnkgbWFwcGluZyBmYWlsZWQiKTsKKworCXJldHVybjsKKyAgICB9LAorfSk7CisKK19fUEFD S0FHRV9fLT5yZWdpc3Rlcl9tZXRob2QgKHsKKyAgICBuYW1lID0+ICdkZWxldGUnLAorICAgIHBy b3RlY3RlZCA9PiAxLAorICAgIHBhdGggPT4gJ3tpZH0nLAorICAgIG1ldGhvZCA9PiAnREVMRVRF JywKKyAgICBkZXNjcmlwdGlvbiA9PiAiUmVtb3ZlIGRpcmVjdG9yeSBtYXBwaW5nLiIsCisgICAg cGVybWlzc2lvbnMgPT4geworCWNoZWNrID0+IFsgJ3Blcm0nLCAnL21hcHBpbmcvZGlyJywgWydN YXBwaW5nLk1vZGlmeSddXSwKKyAgICB9LAorICAgIHBhcmFtZXRlcnMgPT4geworCWFkZGl0aW9u YWxQcm9wZXJ0aWVzID0+IDAsCisJcHJvcGVydGllcyA9PiB7CisJICAgIGlkID0+IHsKKwkJdHlw ZSA9PiAnc3RyaW5nJywKKwkJZm9ybWF0ID0+ICdwdmUtY29uZmlnaWQnLAorCSAgICB9LAorCX0K KyAgICB9LAorICAgIHJldHVybnMgPT4geyB0eXBlID0+ICdudWxsJyB9LAorICAgIGNvZGUgPT4g c3ViIHsKKwlteSAoJHBhcmFtKSA9IEBfOworCisJbXkgJGlkID0gJHBhcmFtLT57aWR9OworCisJ UFZFOjpNYXBwaW5nOjpEaXI6OmxvY2tfZGlyX2NvbmZpZyhzdWIgeworCSAgICBteSAkY2ZnID0g UFZFOjpNYXBwaW5nOjpEaXI6OmNvbmZpZygpOworCisJICAgIGlmICgkY2ZnLT57aWRzfS0+eyRp ZH0pIHsKKwkJZGVsZXRlICRjZmctPntpZHN9LT57JGlkfTsKKwkgICAgfQorCisJICAgIFBWRTo6 TWFwcGluZzo6RGlyOjp3cml0ZV9kaXJfY29uZmlnKCRjZmcpOworCisJfSwgImRlbGV0ZSBkaXIg bWFwcGluZyBmYWlsZWQiKTsKKworCXJldHVybjsKKyAgICB9Cit9KTsKKworMTsKZGlmZiAtLWdp dCBhL1BWRS9BUEkyL0NsdXN0ZXIvTWFwcGluZy9NYWtlZmlsZSBiL1BWRS9BUEkyL0NsdXN0ZXIv TWFwcGluZy9NYWtlZmlsZQppbmRleCBlNzM0NWFiNC4uNWRiYjNmNWMgMTAwNjQ0Ci0tLSBhL1BW RS9BUEkyL0NsdXN0ZXIvTWFwcGluZy9NYWtlZmlsZQorKysgYi9QVkUvQVBJMi9DbHVzdGVyL01h cHBpbmcvTWFrZWZpbGUKQEAgLTMsNiArMyw3IEBAIGluY2x1ZGUgLi4vLi4vLi4vLi4vZGVmaW5l cy5tawogIyBmb3Igbm9kZSBpbmRlcGVuZGVudCwgY2x1c3Rlci13aWRlIGFwcGxpY2FibGUsIEFQ SSBlbmRwb2ludHMKICMgZW5zdXJlIHdlIGRvIG5vdCBjb25mbGljdCB3aXRoIGZpbGVzIHNoaXBw ZWQgYnkgcHZlLWNsdXN0ZXIhIQogUEVSTFNPVVJDRT0gCVwKKwlEaXIucG0gIFwKIAlQQ0kucG0J XAogCVVTQi5wbQogCi0tIAoyLjM5LjUKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KcHZlLWRldmVsIG1haWxpbmcgbGlzdApwdmUtZGV2ZWxAbGlzdHMu cHJveG1veC5jb20KaHR0cHM6Ly9saXN0cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlz dGluZm8vcHZlLWRldmVsCg==