From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id DCF191FF183 for ; Wed, 4 Jun 2025 11:21:09 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id C5DFF37FBB; Wed, 4 Jun 2025 11:21:23 +0200 (CEST) From: Maximiliano Sandoval To: pve-devel@lists.proxmox.com Date: Wed, 4 Jun 2025 11:20:54 +0200 Message-Id: <20250604092054.180984-4-m.sandoval@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250604092054.180984-1-m.sandoval@proxmox.com> References: <20250604092054.180984-1-m.sandoval@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.094 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 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 proxmox-i18n v3 3/3] makefile: use xgettext to extract translatable strings 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" eGdldHRleHQgaXMgYSByb2J1c3QgdG9vbCB0byBleHRyYWN0IHRyYW5zbGF0YWJsZSBzdHJpbmdz IGZyb20gc291cmNlCmNvZGUuCgpXaGF0IGRvIHdlIGdldCBmb3IgZnJlZToKCi0gSXQgZGUtZXNj YXBlcyBzdHJpbmdzLiB0aGVyZSBhcmUgMyBjYXNlcyBpbiBvdXIgY29kZSBiYXNlIHdoZXJlCiAg c2luZ2xlLXF1b3RlZCBzdHJpbmdzIHdlcmUgdXNlZCBhbmQgaXRzIGAnYCBoYWQgdG8gYmUgZXNj YXBlZCwgdGhlc2UKICB3ZXJlIG5vdCBkZS1lc2NhcGVkIHByb3Blcmx5IHdoZW4gcHJlc2VudGVk IHRvIHRyYW5zbGF0b3JzLiBUaGlzIGlzIG9uZQogIHN1Y2ggZXhhbXBsZQoKICBgYGBkaWZmCiAg ICM6IHByb3htb3gtd2lkZ2V0LXRvb2xraXQvc3JjL3BhbmVsL0VtYWlsUmVjaXBpZW50UGFuZWwu anM6MzkKICAtbXNnaWQgIlRoZSBub3RpZmljYXRpb24gd2lsbCBiZSBzZW50IHRvIHRoZSB1c2Vy XFwncyBjb25maWd1cmVkIG1haWwgYWRkcmVzcyIKICArIywgZnV6enkKICArbXNnaWQgIlRoZSBu b3RpZmljYXRpb24gd2lsbCBiZSBzZW50IHRvIHRoZSB1c2VyJ3MgY29uZmlndXJlZCBtYWlsIGFk ZHJlc3MiCiAgIG1zZ3N0ciAiTGEgbm90aWZpY2FjacOzbiBzZXJhIGVudmlhZGEgYSBlbCBjb3Jy ZW8gY29uZmlndXJhZG8gZGVsIHVzdWFyaW8iCiAgYGBgCgotIHhnZXR0ZXh0IGlzIGxhbmd1YWdl IGF3YXJlIGFuZCB1bmRlcnN0YW5kcyB0aGF0IGluIEphdmFTY3JpcHQgYHswfWAKICBtZWFucyBh IHN1YnN0aXR1dGlvbi4gQXQgdGhlIG1vbWVudCB0aGVyZSBpcyBvbmx5IG9uZSBzdHJpbmcgd2hp Y2gKICB1c2VzIGJhY2t0aWNrcyBmb3JtYXRpbmcgYW5kIGlzIGFmZmVjdGVkOgoKICBgYGBqcwog IHJldHVybiBFeHQuU3RyaW5nLmZvcm1hdCgKICAgICAgYCR7Z2V0dGV4dCgnezB9JSBvZiB7MX0n KX0gJHtnZXR0ZXh0KCdDUFUocyknKX1gLAogICAgICAodmFsKjEwMCkudG9GaXhlZCgyKSwKICAg ICAgbWF4LAogICk7CiAgYGBgCgogIGBgYGRpZmYKICAgIzogcHJveG1veC13aWRnZXQtdG9vbGtp dC9zcmMvVXRpbHMuanM6OTk1CiAgKyMsIGphdmFzY3JpcHQtZm9ybWF0CiAgIG1zZ2lkICJ7MH0l IG9mIHsxfSIKICAgbXNnc3RyICJ7MH0lIGRlIHsxfSIKICBgYGAKCi0gQ29ycmVjdCBQT1QtQ3Jl YXRpb24tRGF0ZSwgbm90ZSBob3cgdGhlIG5ldyBvbmUgbWF0Y2hlcyB0aGUKICBSZXZpc2lvbi1E YXRlJ3MgZm9ybWF0LgoKICBgYGBkaWZmCiAgQEAgLTcsNyArNyw3IEBAIG1zZ2lkICIiCiAgIG1z Z3N0ciAiIgogICAiUHJvamVjdC1JZC1WZXJzaW9uOiBwcm94bW94IHRyYW5zbGF0aW9uc1xuIgog ICAiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IDxzdXBwb3J0QHByb3htb3guY29tPlxuIgogIC0iUE9U LUNyZWF0aW9uLURhdGU6IFdlZCBOb3YgMjIgMTg6MTc6MzAgMjAyM1xuIgogICsiUE9ULUNyZWF0 aW9uLURhdGU6IDIwMjMtMTItMDEgMTE6MjUrMDEwMFxuIgogICAiUE8tUmV2aXNpb24tRGF0ZTog MjAyMy0xMS0yNyAxNjo0MyswMTAwXG4iCiAgICJMYXN0LVRyYW5zbGF0b3I6IE1heGltaWxpYW5v IFNhbmRvdmFsIDxtLnNhbmRvdmFsQHByb3htb3guY29tPlxuIgogICAiTGFuZ3VhZ2UtVGVhbTog U3BhbmlzaFxuIgogIGBgYAoKLSBFeHRyYWN0aW9uIG9mIHN0cmluZ3MgdXNpbmcgbmdldHRleHQs IHBnZXR0ZXh0LCBldGMuIEV2ZW4gaWYgd2UgZG9uJ3QKICBoYXZlIGpzIHdyYXBwZXJzIGZvciB0 aGVzZSBhdCB0aGUgbW9tZW50LCB0aGV5IGFyZSBjcml0aWNhbCB0byBwcm92aWRlCiAgZ29vZC1x dWFsaXR5IHRyYW5zbGF0aW9ucyBhbmQgY291bGQgYmUgYWRkZWQgaW4gdGhlIGZ1dHVyZS4KCi0g V2UgY2FuIGV4dHJhY3QgY29tbWVudHMgZnJvbSB0aGUgc291cmNlIGNvZGUgd2l0aCBgeGdldHRl eHQgLWMgVEFHYC4KCiAgQ29kZSBjb21tZW50cyBpbiBhIGxpbmUgYWJvdmUgYSBgZ2V0dGV4dGAg dGhhdCBzdGFydCB3aXRoIGBUUkFOU0xBVE9SU2AKICB3aWxsIGJlIGFkZGVkIHRvIHRoZSBwbyBm aWxlcyB0byBwcm92aWRlIGNvbnRleHQgZm9yIHRyYW5zbGF0b3JzLgoKICBOZXdseSBhZGRlZCBj b21tZW50cyB3b24ndCBtYXJrIHN0cmluZ3MgYXMgZnV6enkgYnV0IGNhbiBwcm92aWRlCiAgaGVs cGZ1bCBjb250ZXh0IHRvIHRyYW5zbGF0b3JzLgoKICBDb21tZW50cyBhcmUgYWRkaXRpdmUsIGlm IGZvciBleGFtcGxlIHR3byBzb3VyY2VzIGNvbnRhaW4KICB0aGUgc2FtZSBzdHJpbmcgd2l0aCBk aWZmZXJlbnQgY29tbWVudHMgYW5kIGl0IGFwcGVhcnMgYSB0aGlyZCB0aW1lCiAgd2l0aG91dCBj b21tZW50cywgdGhlIHRocmVlIHNvdXJjZXMgYW5kIHRoZSB0d28gY29tbWVudHMgd2lsbCBiZSBz aG93bgogIHRvIHRyYW5zbGF0b3JzLgoKICBUaGVzZSBhcmUgYSBmZXcgZXhhbXBsZXMgdGhhdCBj b3VsZCBiZSBpbXBsZW1lbnRlZCBpbiBvdXIgY29kZWJhc2U6CgogIEl0IGlzIG5vdCBjbGVhciBp ZiAiUHJ1bmUgT3B0aW9ucyIgcHJ1bmVzIHRoZSBvcHRpb25zIG9yIGNvbmZpZ3VyZXMKICBwcnVu aW5nLgogIGBgYGpzCiAgLy8gVFJBTlNMQVRPUlM6IE9wZW5zIHRoZSBwYW5lbCB0aGF0IGFsbG93 cyBjb25maWd1cmluZyBob3cgUHJ1bmluZyB3b3JrcwogIGxldCBzID0gZ2V0dGV4dCgiUHJ1bmUg T3B0aW9ucyIpOwogIGBgYAoKICBBZGRpbmcgYSBzb3VyY2UgZm9yIGEgY29uY2VwdCBvciBpdHMg ZXhwYW5kZWQgbmFtZSBjYW4gaGVscAogIHRyYW5zbGF0b3JzIGRlY2lkZSB3aGF0cyB0aGUgZ2Vu ZGVyIGZvciBhIHdvcmQgaW4gdGhlaXIgbGFuZ3VhZ2UuCiAgYGBganMKICAvLyBUUkFOU0xBVE9S UzogVE9UUCBzdGFuZHMgZm9yIFRpbWUtYmFzZWQgb25lLXRpbWUgcGFzc3dvcmQKICBsZXQgcyA9 IGdldHRleHQoIkFkZCBhIFRPVFAgbG9naW4gZmFjdG9yIik7CiAgYGBgCgogIFNvbWUgc3RyaW5n cyBhcmUgbm90IG1hcmtlZCBmb3IgdHJhbnNsYXRpb24gdG8gYXZvaWQgdHJhbnNsYXRpbmcKICBj ZXJ0YWluIHBhcnRzIG9mIGl0LCB0aGlzIGlzIGEgY2hhbmdlIHRoYXQgY291bGQgYmUgbWFkZQog IGBgYGRpZmYKICAtZmllbGRMYWJlbDogJ0NydXNoIFJ1bGUnLCAvLyBkbyBub3QgbG9jYWxpemUK ICArLy8gVFJBTlNMQVRPUlM6IERvIG5vdCB0cmFuc2xhdGUgJ0NydXNoJywgaXRzIGEgcHJvcGVy IG5hbWUKICArZmllbGRMYWJlbDogZ2V0dGV4dCgnQ3J1c2ggUnVsZScpLAogIGBgYAoKICBPciBz aW1wbHkgdG8gZ2l2ZSBtb3JlIGNvbnRleHQgd2hlbiBzdWJzdGl0dXRpb25zIGFyZSBpbnZvbHZl ZC4KICBgYGAKICAvLyBUUkFOU0xBVE9SUzogRm9yIGV4YW1wbGUgJ0pvaW4gQ0xVU1RFUl9OQU1F JwogIHJldHVybiBFeHQuU3RyaW5nLmZvcm1hdChnZXR0ZXh0KCdKb2luIHswfScpLCBgJyR7Y259 J2ApOwogIGBgYAoKQ29uczoKCi0gQSBoYW5kZnVsIG9mIGltcHJvcGVybHkgZXh0cmFjdGVkIHRy YW5zbGF0aW9ucyB3ZXJlIG1hcmtlZCBhcyBmdXp6eS4KICBUcmFuc2xhdG9ycyB3aWxsIGhhdmUg dG8gcmV2aWV3IGFuZCBtYXJrIHRoZW0gYXMgdHJhbnNsYXRlZCBhZ2Fpbi4KCi0gVGhlIHJlb3Jk ZXJpbmcgb2Ygc291cmNlcyBmb3IgZWFjaCBtc2dzdHIgd2lsbCBjcmVhdGUgYW4gdW5uZWNlc3Nh cmlseQogIG1hc3NpdmUgKHlldCB1bHRpbWF0ZWx5IGhhcm1sZXNzKSBkaWZmIChhcHByb3guIDEw ayBpbnNlcnRpb25zKCspIDEwawogIGRlbGV0aW9ucygtKSkuCgpTaWduZWQtb2ZmLWJ5OiBNYXhp bWlsaWFubyBTYW5kb3ZhbCA8bS5zYW5kb3ZhbEBwcm94bW94LmNvbT4KLS0tCiBNYWtlZmlsZSAg ICAgfCAgMTAgKysrLQoganNnZXR0ZXh0LnBsIHwgMTM1IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlv bnMoKyksIDEzNiBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDc1NSBqc2dldHRleHQucGwK CmRpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxlCmluZGV4IDRjNDNiNGUuLjM0ODU5ZjUg MTAwNjQ0Ci0tLSBhL01ha2VmaWxlCisrKyBiL01ha2VmaWxlCkBAIC0xMDMsNyArMTAzLDE1IEBA IHBicy1sYW5nLSUuanM6ICUucG8KICMgcGFyYW1ldGVyIDEgaXMgdGhlIG5hbWUKICMgcGFyYW1l dGVyIDIgaXMgdGhlIGRpcmVjdG9yeQogZGVmaW5lIHBvdHVwZGF0ZQotICAgIC4vanNnZXR0ZXh0 LnBsIC1wICIkKDEpICQoc2hlbGwgY2QgJCgyKTtnaXQgcmV2LXBhcnNlIEhFQUQpIiAtbyAkKDEp LnBvdCAkKDIpCisJZmluZCAuIC1uYW1lICIqLmpzIiAtcGF0aCAiLi8kKDIpKiIgfCBzb3J0IHwg eGFyZ3MgeGdldHRleHQgXAorICAgICAgLS1zb3J0LW91dHB1dCBcCisgICAgICAtLWFkZC1jb21t ZW50cz0iVFJBTlNMQVRPUlMiIFwKKyAgICAgIC0tZnJvbS1jb2RlPSJVVEYtOCIgXAorICAgICAg LS1wYWNrYWdlLW5hbWU9IiQoMSkiIFwKKyAgICAgIC0tcGFja2FnZS12ZXJzaW9uPSIkKHNoZWxs IGNkICQoMik7Z2l0IHJldi1wYXJzZSBIRUFEKSIgXAorICAgICAgLS1tc2dpZC1idWdzLWFkZHJl c3M9IjxzdXBwb3J0QHByb3htb3guY29tPiIgXAorICAgICAgLS1jb3B5cmlnaHQtaG9sZGVyPSJD b3B5cmlnaHQgKEMpIFByb3htb3ggU2VydmVyIFNvbHV0aW9ucyBHbWJIIDxzdXBwb3J0QHByb3ht b3guY29tPiAmIHRoZSB0cmFuc2xhdGlvbiBjb250cmlidXRvcnMuIiBcCisgICAgICAtLW91dHB1 dD0iJCgxKSIucG90CiBlbmRlZgogCiAuUEhPTlk6IHVwZGF0ZSB1cGRhdGVfcG90IGRvX3VwZGF0 ZQpkaWZmIC0tZ2l0IGEvanNnZXR0ZXh0LnBsIGIvanNnZXR0ZXh0LnBsCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDc1NQppbmRleCA3Zjc1OGZkLi4wMDAwMDAwCi0tLSBhL2pzZ2V0dGV4dC5wbAorKysg L2Rldi9udWxsCkBAIC0xLDEzNSArMCwwIEBACi0jIS91c3IvYmluL3BlcmwKLQotdXNlIHN0cmlj dDsKLXVzZSB3YXJuaW5nczsKLQotdXNlIEVuY29kZTsKLXVzZSBHZXRvcHQ6Okxvbmc7Ci11c2Ug TG9jYWxlOjpQTzsKLXVzZSBUaW1lOjpMb2NhbDsKLQotbXkgJG9wdGlvbnMgPSB7fTsKLUdldE9w dGlvbnMoJG9wdGlvbnMsICdvPXMnLCAnYj1zJywgJ3A9cycpIG9yIGRpZSAidW5hYmxlIHRvIHBh cnNlIG9wdGlvbnNcbiI7Ci0KLW15ICRkaXJzID0gW0BBUkdWXTsKLQotZGllICJubyBkaXJlY3Rv cnkgc3BlY2lmaWVkXG4iIGlmICFzY2FsYXIoQCRkaXJzKTsKLQotZm9yZWFjaCBteSAkZGlyIChA JGRpcnMpIHsKLSAgICBkaWUgIm5vIHN1Y2ggZGlyZWN0b3J5ICckZGlyJ1xuIiBpZiAhIC1kICRk aXI7Ci19Ci0KLW15ICRwcm9qZWN0SWQgPSAkb3B0aW9ucy0+e3B9IHx8IGRpZSAibWlzc2luZyBw cm9qZWN0IElEXG4iOwotCi1teSAkYmFzZWhyZWYgPSB7fTsKLWlmIChteSAkYmFzZSA9ICRvcHRp b25zLT57Yn0pIHsKLSAgICBteSAkYXJlZiA9IExvY2FsZTo6UE8tPmxvYWRfZmlsZV9hc2FycmF5 KCRiYXNlKSB8fAotCWRpZSAidW5hYmxlIHRvIGxvYWQgJyRiYXNlJ1xuIjsKLQotICAgIG15ICRj aGFyc2V0OwotICAgIG15ICRocG8gPSAkYXJlZi0+WzBdIHx8IGRpZSAibm8gaGVhZGVyIjsKLSAg ICBteSAkaGVhZGVyID0gJGhwby0+ZGVxdW90ZSgkaHBvLT5tc2dzdHIpOwotICAgIGlmICgkaGVh ZGVyID1+IG18XkNvbnRlbnQtVHlwZTpccyt0ZXh0L3BsYWluO1xzK2NoYXJzZXQ9KFxTKykkfGlt KSB7Ci0JJGNoYXJzZXQgPSAkMTsKLSAgICB9IGVsc2UgewotCWRpZSAidW5hYmxlIHRvIGdldCBj aGFyc2V0XG4iIGlmICEkY2hhcnNldDsKLSAgICB9Ci0KLSAgICBmb3JlYWNoIG15ICRwbyAoQCRh cmVmKSB7Ci0JbXkgJHFtc2dpZCA9IGRlY29kZSgkY2hhcnNldCwgJHBvLT5tc2dpZCk7Ci0JbXkg JG1zZ2lkID0gJHBvLT5kZXF1b3RlKCRxbXNnaWQpOwotCSRiYXNlaHJlZi0+eyRtc2dpZH0gPSAk cG87Ci0gICAgfQotfQotCi1zdWIgZmluZF9qc19zb3VyY2VzIHsKLSAgICBteSAoJGJhc2VfZGly cykgPSBAXzsKLQotICAgIG15ICRmaW5kX2NtZCA9ICdmaW5kICc7Ci0gICAgIyBzaGVsbCBxdW90 ZSBoZXVyaXN0aWMsIHdpdGggdGhlIChoZXJlIHNhZmUpIGFzc3VtcHRpb24gdGhhdCB0aGUgZGly cyBkb24ndCBjb250YWluIHNpbmdsZS1xdW90ZXMKLSAgICAkZmluZF9jbWQgLj0gam9pbignICcs IG1hcCB7ICInJF8nIiB9ICRiYXNlX2RpcnMtPkAqKTsKLSAgICAkZmluZF9jbWQgLj0gJyAtbmFt ZSAiKi5qcyInOwotICAgIG9wZW4obXkgJGZpbmRfY21kX291dHB1dCwgJy18JywgIiRmaW5kX2Nt ZCB8IHNvcnQiKSBvciBkaWUgIkZhaWxlZCB0byBleGVjdXRlIGNvbW1hbmQ6ICQhIjsKLQotICAg IG15ICRzb3VyY2VzID0gW107Ci0gICAgd2hpbGUgKG15ICRsaW5lID0gPCRmaW5kX2NtZF9vdXRw dXQ+KSB7Ci0JY2hvbXAgJGxpbmU7Ci0JcHJpbnQgIkY6ICRsaW5lXG4iOwotCXB1c2ggQCRzb3Vy Y2VzLCAkbGluZTsKLSAgICB9Ci0gICAgY2xvc2UoJGZpbmRfY21kX291dHB1dCk7Ci0KLSAgICBy ZXR1cm4gJHNvdXJjZXM7Ci19Ci0KLW15ICRoZWFkZXIgPSA8PCdfX0VPRCc7Ci1Qcm94bW94IG1l c3NhZ2UgY2F0YWxvZy4KLQotQ29weXJpZ2h0IChDKSBQcm94bW94IFNlcnZlciBTb2x1dGlvbnMg R21iSAotCi1UaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVQotQWZmZXJvIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlCi1MaWNlbnNlLCBvciAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotLS0gUHJveG1veCBTdXBwb3J0IFRlYW0gPHN1cHBv cnRcQHByb3htb3guY29tPgotX19FT0QKLQotbXkgJGN0aW1lID0gc2NhbGFyIGxvY2FsdGltZTsK LQotbXkgJGhyZWYgPSB7Ci0gICAgJycgPT4gTG9jYWxlOjpQTy0+bmV3KAotCS1tc2dpZCA9PiAn JywKLQktY29tbWVudCA9PiAkaGVhZGVyLAotCS1mdXp6eSA9PiAxLAotCS1tc2dzdHIgPT4gIlBy b2plY3QtSWQtVmVyc2lvbjogJHByb2plY3RJZFxuIgotCSAgICAuIlJlcG9ydC1Nc2dpZC1CdWdz LVRvOiA8c3VwcG9ydFxAcHJveG1veC5jb20+XG4iCi0JICAgIC4iUE9ULUNyZWF0aW9uLURhdGU6 ICRjdGltZVxuIgotCSAgICAuIlBPLVJldmlzaW9uLURhdGU6IFlFQVItTU8tREEgSE86TUkgK1pP TkVcbiIKLQkgICAgLiJMYXN0LVRyYW5zbGF0b3I6IEZVTEwgTkFNRSA8RU1BSUxcQEFERFJFU1M+ XG4iCi0JICAgIC4iTGFuZ3VhZ2UtVGVhbTogTEFOR1VBR0UgPHN1cHBvcnRcQHByb3htb3guY29t PlxuIgotCSAgICAuIk1JTUUtVmVyc2lvbjogMS4wXG4iCi0JICAgIC4iQ29udGVudC1UeXBlOiB0 ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04XG4iCi0JICAgIC4iQ29udGVudC1UcmFuc2Zlci1FbmNv ZGluZzogOGJpdFxuIiwKLSAgICApLAotfTsKLQotc3ViIGV4dHJhY3RfbXNnIHsKLSAgICBteSAo JGZpbGVuYW1lLCAkbGluZW5yLCAkbGluZSkgPSBAXzsKLQotICAgIG15ICRjb3VudCA9IDA7Ci0K LSAgICB3aGlsZSgxKSB7Ci0JbXkgJHRleHQ7Ci0JaWYgKCRsaW5lID1+IG0vXGJnZXR0ZXh0XHMq XCgoKCIoKD86W14iXFxdKyt8XFwuKSorKSIpfCgnKCg/OlteJ1xcXSsrfFxcLikqKyknKSlcKS9n KSB7Ci0JICAgICR0ZXh0ID0gJDMgfHwgJDU7Ci0JfQotCWxhc3QgaWYgISR0ZXh0OwotCXJldHVy biBpZiAkYmFzZWhyZWYtPnskdGV4dH07Ci0JJGNvdW50Kys7Ci0KLQlteSAkcmVmID0gIiRmaWxl bmFtZTokbGluZW5yIjsKLQotCWlmIChteSAkcG8gPSAkaHJlZi0+eyR0ZXh0fSkgewotCSAgICAk cG8tPnJlZmVyZW5jZSgkcG8tPnJlZmVyZW5jZSgpIC4gIiAkcmVmIik7Ci0JfSBlbHNlIHsKLQkg ICAgJGhyZWYtPnskdGV4dH0gPSBMb2NhbGU6OlBPLT5uZXcoLW1zZ2lkPT4gJHRleHQsIC1yZWZl cmVuY2U9PiAkcmVmLCAtbXNnc3RyPT4gJycpOwotCX0KLSAgICB9Ci0gICAgZGllICJjYW4ndCBl eHRyYWN0IGdldHRleHQgbWVzc2FnZSBpbiAnJGZpbGVuYW1lJyBsaW5lICRsaW5lbnJcbiIgaWYg ISRjb3VudDsKLSAgICByZXR1cm47Ci19Ci0KLW15ICRzb3VyY2VzID0gZmluZF9qc19zb3VyY2Vz KCRkaXJzKTsKLQotZm9yZWFjaCBteSAkcyAoQCRzb3VyY2VzKSB7Ci0gICAgb3BlbihteSAkU1JD X0ZILCAnPCcsICRzKSB8fCBkaWUgInVuYWJsZSB0byBvcGVuIGZpbGUgJyRzJyAtICQhXG4iOwot ICAgIHdoaWxlKGRlZmluZWQobXkgJGxpbmUgPSA8JFNSQ19GSD4pKSB7Ci0JaWYgKCRsaW5lID1+ IG0vZ2V0dGV4dFxzKlwoLyAmJiAkbGluZSAhfiBtL15ccypmdW5jdGlvbiBnZXR0ZXh0Lykgewot CSAgICBleHRyYWN0X21zZygkcywgJC4sICRsaW5lKTsKLQl9Ci0gICAgfQotICAgIGNsb3NlKCRT UkNfRkgpOwotfQotCi1teSAkZmlsZW5hbWUgPSAkb3B0aW9ucy0+e299IC8vICJtZXNzYWdlcy5w b3QiOwotTG9jYWxlOjpQTy0+c2F2ZV9maWxlX2Zyb21oYXNoKCRmaWxlbmFtZSwgJGhyZWYpOwot Ci0tIAoyLjM5LjUKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KcHZlLWRldmVsIG1haWxpbmcgbGlzdApwdmUtZGV2ZWxAbGlzdHMucHJveG1veC5jb20K aHR0cHM6Ly9saXN0cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcHZlLWRl dmVsCg==