From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <pbs-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 C3B8C1FF16B for <inbox@lore.proxmox.com>; Thu, 6 Feb 2025 13:29:34 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 103D01E85E; Thu, 6 Feb 2025 13:29:34 +0100 (CET) From: =?UTF-8?q?Lauren=C8=9Biu=20Leahu-Vl=C4=83ducu?= <l.leahu-vladucu@proxmox.com> To: pbs-devel@lists.proxmox.com Date: Thu, 6 Feb 2025 13:28:33 +0100 Message-Id: <20250206122833.171965-4-l.leahu-vladucu@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250206122833.171965-1-l.leahu-vladucu@proxmox.com> References: <20250206122833.171965-1-l.leahu-vladucu@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.142 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: [pbs-devel] [PATCH proxmox-backup v2 2/2] Automatically select a drive (if part of a changer) when loading tapes X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion <pbs-devel.lists.proxmox.com> List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pbs-devel>, <mailto:pbs-devel-request@lists.proxmox.com?subject=unsubscribe> List-Archive: <http://lists.proxmox.com/pipermail/pbs-devel/> List-Post: <mailto:pbs-devel@lists.proxmox.com> List-Help: <mailto:pbs-devel-request@lists.proxmox.com?subject=help> List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel>, <mailto:pbs-devel-request@lists.proxmox.com?subject=subscribe> Reply-To: Proxmox Backup Server development discussion <pbs-devel@lists.proxmox.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" <pbs-devel-bounces@lists.proxmox.com> VGhpcyBwYXRjaCBhZGRzIHRoZSBwb3NzaWJpbGl0eSB0byBsb2FkIHRhcGVzIGludG8gZHJpdmVz CmF1dG9tYXRpY2FsbHkgYnkgc3BlY2lmeWluZyBhIGNoYW5nZXIuIFRoaXMgaXMgdXNlZnVsIGZv ciBsYXJnZXIgdGFwZQpsaWJyYXJpZXMuIENob29zaW5nIGEgZHJpdmUgaXMgZG9uZSBieSB1c2lu ZyB0aGUgZHJpdmUgdGhhdCBoYXMgbm90CmJlZW4gdXNlZCB0aGUgbG9uZ2VzdC4KCkF0IHRoZSBt b21lbnQsIHRoaXMgcGF0Y2ggaW1wbGVtZW50cyB0aGUgZnVuY3Rpb25hbGl0eSBmb3IgYXV0b21h dGljCmxvYWRpbmcgYm90aCBvdmVyIHRoZSBBUEkgYW5kIHVzaW5nIHRoZSBwcm94bW94LWJhY2t1 cCBDTEkgdG9vbCwgYXMKd2VsbCBhcyBpbiB0aGUgd2ViIFVJIHdoZW4gc2VsZWN0aW5nIGEgY2hh bmdlci4gQSBzZWNvbmQgcGF0Y2ggd2lsbAphZGQgdGhlIHNhbWUgZnVuY3Rpb25hbGl0eSB3aGVu IGNvbmZpZ3VyaW5nIGJhY2t1cCBqb2JzLgoKUGFydGlhbGx5IGZpeGVzICMzMzUxCgpTaWduZWQt b2ZmLWJ5OiBMYXVyZW7Im2l1IExlYWh1LVZsxINkdWN1IDxsLmxlYWh1LXZsYWR1Y3VAcHJveG1v eC5jb20+Ci0tLQogc3JjL2FwaTIvdGFwZS9jaGFuZ2VyLnJzICAgICAgICB8IDEzMSArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrLQogc3JjL2Jpbi9wcm94bW94LWJhY2t1cC1wcm94eS5y cyB8ICAgMiArLQogc3JjL2Jpbi9wcm94bW94LXRhcGUucnMgICAgICAgICB8ICA0OCArKysrKysr KysrLS0KIHNyYy90YXBlL2NoYW5nZXIvbW9kLnJzICAgICAgICAgfCAgMjMgKysrKystCiBzcmMv dGFwZS9kcml2ZS92aXJ0dWFsX3RhcGUucnMgIHwgICA4ICstCiBzcmMvdGFwZS9kcml2ZV9pbmZv LnJzICAgICAgICAgIHwgIDU2ICsrKysrKysrKysrKysrCiBzcmMvdGFwZS9tb2QucnMgICAgICAg ICAgICAgICAgIHwgICAxICsKIHd3dy90YXBlL0NoYW5nZXJTdGF0dXMuanMgICAgICAgfCAgMTUg KysrLQogOCBmaWxlcyBjaGFuZ2VkLCAyNjYgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0p CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3RhcGUvZHJpdmVfaW5mby5ycwoKZGlmZiAtLWdpdCBh L3NyYy9hcGkyL3RhcGUvY2hhbmdlci5ycyBiL3NyYy9hcGkyL3RhcGUvY2hhbmdlci5ycwppbmRl eCA3ZWNmN2JmZi4uYWEwNjgwNGQgMTAwNjQ0Ci0tLSBhL3NyYy9hcGkyL3RhcGUvY2hhbmdlci5y cworKysgYi9zcmMvYXBpMi90YXBlL2NoYW5nZXIucnMKQEAgLTEsMTQgKzEsMTUgQEAKIHVzZSBz dGQ6OmNvbGxlY3Rpb25zOjpIYXNoTWFwOwogCi11c2UgYW55aG93OjpFcnJvcjsKK3VzZSBhbnlo b3c6OntiYWlsLCBFcnJvcn07CiB1c2Ugc2VyZGVfanNvbjo6VmFsdWU7CiAKIHVzZSBwcm94bW94 X3JvdXRlcjo6e2xpc3Rfc3ViZGlyc19hcGlfbWV0aG9kLCBQZXJtaXNzaW9uLCBSb3V0ZXIsIFJw Y0Vudmlyb25tZW50LCBTdWJkaXJNYXB9OwogdXNlIHByb3htb3hfc2NoZW1hOjphcGk7CiAKIHVz ZSBwYnNfYXBpX3R5cGVzOjp7Ci0gICAgQXV0aGlkLCBDaGFuZ2VyTGlzdEVudHJ5LCBMdG9UYXBl RHJpdmUsIE10eEVudHJ5S2luZCwgTXR4U3RhdHVzRW50cnksIFNjc2lUYXBlQ2hhbmdlciwKLSAg ICBDSEFOR0VSX05BTUVfU0NIRU1BLCBQUklWX1RBUEVfQVVESVQsIFBSSVZfVEFQRV9SRUFELAor ICAgIEF1dGhpZCwgQ2hhbmdlckxpc3RFbnRyeSwgRGV2aWNlQWN0aXZpdHksIERyaXZlTGlzdEVu dHJ5LCBMdG9UYXBlRHJpdmUsIE10eEVudHJ5S2luZCwKKyAgICBNdHhTdGF0dXNFbnRyeSwgU2Nz aVRhcGVDaGFuZ2VyLCBDSEFOR0VSX05BTUVfU0NIRU1BLCBNRURJQV9MQUJFTF9TQ0hFTUEsIFBS SVZfVEFQRV9BVURJVCwKKyAgICBQUklWX1RBUEVfUkVBRCwgVVBJRF9TQ0hFTUEsCiB9OwogdXNl IHBic19jb25maWc6OkNhY2hlZFVzZXJJbmZvOwogdXNlIHBic190YXBlOjp7CkBAIC0xOTksNyAr MjAwLDEzMSBAQCBwdWIgZm4gbGlzdF9jaGFuZ2VycygKICAgICBPayhsaXN0KQogfQogCisjW2Fw aSgKKyAgICBpbnB1dDogeworICAgICAgICBwcm9wZXJ0aWVzOiB7CisgICAgICAgICAgICBuYW1l OiB7CisgICAgICAgICAgICAgICAgc2NoZW1hOiBDSEFOR0VSX05BTUVfU0NIRU1BLAorICAgICAg ICAgICAgfSwKKyAgICAgICAgICAgICJsYWJlbC10ZXh0IjogeworICAgICAgICAgICAgICAgIHNj aGVtYTogTUVESUFfTEFCRUxfU0NIRU1BLAorICAgICAgICAgICAgfSwKKyAgICAgICAgfSwKKyAg ICB9LAorICAgIHJldHVybnM6IHsKKyAgICAgICAgc2NoZW1hOiBVUElEX1NDSEVNQSwKKyAgICB9 LAorICAgIGFjY2VzczogeworICAgICAgICBwZXJtaXNzaW9uOiAmUGVybWlzc2lvbjo6UHJpdmls ZWdlKCZbInRhcGUiLCAiZGV2aWNlIiwgIntuYW1lfSJdLCBQUklWX1RBUEVfUkVBRCwgZmFsc2Up LAorICAgIH0sCispXQorLy8vIExvYWQgbWVkaWEgd2l0aCBzcGVjaWZpZWQgbGFiZWwKKy8vLwor Ly8vIElzc3VlIGEgbWVkaWEgbG9hZCByZXF1ZXN0IHRvIHRoZSBhc3NvY2lhdGVkIGNoYW5nZXIg ZGV2aWNlLgorcHViIGZuIGxvYWRfbWVkaWEoCisgICAgbmFtZTogU3RyaW5nLAorICAgIGxhYmVs X3RleHQ6IFN0cmluZywKKyAgICBycGNlbnY6ICZtdXQgZHluIFJwY0Vudmlyb25tZW50LAorKSAt PiBSZXN1bHQ8VmFsdWUsIEVycm9yPiB7CisgICAgbGV0IGRyaXZlID0gY2hvb3NlX2RyaXZlKCZu YW1lLCBycGNlbnYpOworICAgIHN1cGVyOjpkcml2ZTo6bG9hZF9tZWRpYShkcml2ZT8sIGxhYmVs X3RleHQsIHJwY2VudikKK30KKworI1thcGkoCisgICAgaW5wdXQ6IHsKKyAgICAgICAgcHJvcGVy dGllczogeworICAgICAgICAgICAgbmFtZTogeworICAgICAgICAgICAgICAgIHNjaGVtYTogQ0hB TkdFUl9OQU1FX1NDSEVNQSwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAic291cmNlLXNs b3QiOiB7CisgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJTb3VyY2Ugc2xvdCBudW1iZXIu IiwKKyAgICAgICAgICAgICAgICBtaW5pbXVtOiAxLAorICAgICAgICAgICAgfSwKKyAgICAgICAg fSwKKyAgICB9LAorICAgIGFjY2VzczogeworICAgICAgICBwZXJtaXNzaW9uOiAmUGVybWlzc2lv bjo6UHJpdmlsZWdlKCZbInRhcGUiLCAiZGV2aWNlIiwgIntuYW1lfSJdLCBQUklWX1RBUEVfUkVB RCwgZmFsc2UpLAorICAgIH0sCispXQorLy8vIExvYWQgbWVkaWEgZnJvbSB0aGUgc3BlY2lmaWVk IHNsb3QKKy8vLworLy8vIElzc3VlIGEgbWVkaWEgbG9hZCByZXF1ZXN0IHRvIHRoZSBhc3NvY2lh dGVkIGNoYW5nZXIgZGV2aWNlLgorcHViIGFzeW5jIGZuIGxvYWRfc2xvdCgKKyAgICBuYW1lOiBT dHJpbmcsCisgICAgc291cmNlX3Nsb3Q6IHU2NCwKKyAgICBycGNlbnY6ICZtdXQgZHluIFJwY0Vu dmlyb25tZW50LAorKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7CisgICAgbGV0IGRyaXZlID0gY2hv b3NlX2RyaXZlKCZuYW1lLCBycGNlbnYpOworICAgIHN1cGVyOjpkcml2ZTo6bG9hZF9zbG90KGRy aXZlPywgc291cmNlX3Nsb3QpLmF3YWl0Cit9CisKKy8vLyBSZXR1cm5zIHRoZSBpZGxlIGRyaXZl cyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBjaGFuZ2VyLgorZm4gZ2V0X2lkbGVfZHJp dmVzKAorICAgIGNoYW5nZXI6ICZzdHIsCisgICAgcnBjZW52OiAmbXV0IGR5biBScGNFbnZpcm9u bWVudCwKKykgLT4gUmVzdWx0PFZlYzxEcml2ZUxpc3RFbnRyeT4sIEVycm9yPiB7CisgICAgbGV0 IGRyaXZlcyA9IHN1cGVyOjpkcml2ZTo6bGlzdF9kcml2ZXMoU29tZShjaGFuZ2VyLnRvX3N0cmlu ZygpKSwgdHJ1ZSwgVmFsdWU6Ok51bGwsIHJwY2VudikKKyAgICAgICAgLm1hcF9lcnIofGVycnwg YW55aG93Ojpmb3JtYXRfZXJyISgiY2Fubm90IHF1ZXJ5IGRyaXZlczoge2Vycn0iKSk/OworCisg ICAgbGV0IGZpbHRlciA9IGRyaXZlcworICAgICAgICAuaW50b19pdGVyKCkKKyAgICAgICAgLmZp bHRlcih8ZW50cnl8IG1hdGNoZXMhKGVudHJ5LmFjdGl2aXR5LCBOb25lIHwgU29tZShEZXZpY2VB Y3Rpdml0eTo6Tm9BY3Rpdml0eSkpKTsKKworICAgIE9rKGZpbHRlci5jb2xsZWN0KCkpCit9CisK Ky8vLyBSZXR1cm5zIHRoZSBkcml2ZXMgc29ydGVkIGJ5IHRoZSBsYXN0IHVzYWdlLgorLy8vIFRo ZSBmaXJzdCBkcml2ZSBpbiB0aGUgcmV0dXJuZWQgdmVjdG9yIGlzIHRoZSBvbmUgdGhhdCBoYXMg bm90IGJlZW4gdXNlZCB0aGUgbG9uZ2VzdCwgb3IgbmV2ZXIuCitmbiBnZXRfZHJpdmVzX3NvcnRl ZF9ieV9sYXN0X3VzYWdlKAorICAgIGNoYW5nZXI6ICZzdHIsCisgICAgcnBjZW52OiAmbXV0IGR5 biBScGNFbnZpcm9ubWVudCwKKykgLT4gUmVzdWx0PFZlYzxEcml2ZUxpc3RFbnRyeT4sIEVycm9y PiB7CisgICAgbGV0IGRyaXZlc19sYXN0X3VzYWdlID0gY3JhdGU6OnRhcGU6OmRyaXZlX2luZm86 OmdldF9kcml2ZXNfbGFzdF91c2FnZSgpPzsKKyAgICBsZXQgbXV0IGRyaXZlcyA9IHN1cGVyOjpk cml2ZTo6bGlzdF9kcml2ZXMoU29tZShjaGFuZ2VyLmludG8oKSksIHRydWUsIFZhbHVlOjpOdWxs LCBycGNlbnYpPzsKKyAgICBkcml2ZXMuc29ydF9ieSh8Zmlyc3QsIHNlY29uZHwgeworICAgICAg ICBsZXQgZmlyc3RfdXNhZ2UgPSBkcml2ZXNfbGFzdF91c2FnZS5kcml2ZXMuZ2V0KCZmaXJzdC5j b25maWcubmFtZSk7CisgICAgICAgIGxldCBzZWNvbmRfdXNhZ2UgPSBkcml2ZXNfbGFzdF91c2Fn ZS5kcml2ZXMuZ2V0KCZzZWNvbmQuY29uZmlnLm5hbWUpOworCisgICAgICAgIG1hdGNoIChmaXJz dF91c2FnZSwgc2Vjb25kX3VzYWdlKSB7CisgICAgICAgICAgICAoU29tZShmaXJzdF91c2FnZSks IFNvbWUoc2Vjb25kX3VzYWdlKSkgPT4geworICAgICAgICAgICAgICAgIGZpcnN0X3VzYWdlLmxh c3RfdXNhZ2UuY21wKCZzZWNvbmRfdXNhZ2UubGFzdF91c2FnZSkKKyAgICAgICAgICAgIH0KKyAg ICAgICAgICAgIChTb21lKF8pLCBOb25lKSA9PiBzdGQ6OmNtcDo6T3JkZXJpbmc6OkdyZWF0ZXIs CisgICAgICAgICAgICAoTm9uZSwgU29tZShfKSkgPT4gc3RkOjpjbXA6Ok9yZGVyaW5nOjpMZXNz LAorICAgICAgICAgICAgKE5vbmUsIE5vbmUpID0+IHN0ZDo6Y21wOjpPcmRlcmluZzo6RXF1YWws CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIE9rKGRyaXZlcykKK30KKworZm4gY2hvb3NlX2Ry aXZlKGNoYW5nZXI6ICZzdHIsIHJwY2VudjogJm11dCBkeW4gUnBjRW52aXJvbm1lbnQpIC0+IFJl c3VsdDxTdHJpbmcsIEVycm9yPiB7CisgICAgbGV0IGlkbGVfZHJpdmVzID0gZ2V0X2lkbGVfZHJp dmVzKGNoYW5nZXIsIHJwY2Vudik/OworICAgIGxldCBkcml2ZXNfaW5fb3JkZXIgPSBnZXRfZHJp dmVzX3NvcnRlZF9ieV9sYXN0X3VzYWdlKGNoYW5nZXIsIHJwY2Vudik7CisKKyAgICAvLyBJZiB0 aGUgZHJpdmVzIGluZm8gY291bGQgbm90IGJlIHJldHJpZXZlZCwgc2ltcGx5IHRyeSB0byB1c2Ug dGhlIGZpcnN0IG9uZSAoaWYgcG9zc2libGUpLgorICAgIGxldCBPayhkcml2ZXNfaW5fb3JkZXIp ID0gZHJpdmVzX2luX29yZGVyIGVsc2UgeworICAgICAgICBtYXRjaCBpZGxlX2RyaXZlcy5maXJz dCgpIHsKKyAgICAgICAgICAgIFNvbWUoaWRsZV9kcml2ZSkgPT4gcmV0dXJuIE9rKGlkbGVfZHJp dmUuY29uZmlnLm5hbWUuY2xvbmUoKSksCisgICAgICAgICAgICBOb25lID0+IGJhaWwhKCJ0aGVy ZSBhcmUgbm8gaWRsZSBkcml2ZXMgdG8gY2hvb3NlIGZvciBhdXRvbWF0aWMgZHJpdmUgYXNzaWdu bWVudCIpLAorICAgICAgICB9CisgICAgfTsKKworICAgIGxldCBjaG9zZW5fZHJpdmUgPSBkcml2 ZXNfaW5fb3JkZXIuaXRlcigpLmZpbmQofGRyaXZlfCB7CisgICAgICAgIGlkbGVfZHJpdmVzCisg ICAgICAgICAgICAuaXRlcigpCisgICAgICAgICAgICAuYW55KHxpZGxlX2RyaXZlfCBkcml2ZS5j b25maWcubmFtZSA9PSBpZGxlX2RyaXZlLmNvbmZpZy5uYW1lKQorICAgIH0pOworCisgICAgbWF0 Y2ggY2hvc2VuX2RyaXZlIHsKKyAgICAgICAgU29tZShjaG9zZW5fZHJpdmUpID0+IE9rKGNob3Nl bl9kcml2ZS5jb25maWcubmFtZS5jbG9uZSgpKSwKKyAgICAgICAgTm9uZSA9PiBiYWlsISgidGhl cmUgYXJlIG5vIGlkbGUgZHJpdmVzIHRvIGNob29zZSBmb3IgYXV0b21hdGljIGRyaXZlIGFzc2ln bm1lbnQiKSwKKyAgICB9Cit9CisKIGNvbnN0IFNVQkRJUlM6IFN1YmRpck1hcCA9ICZbCisgICAg KCJsb2FkLW1lZGlhIiwgJlJvdXRlcjo6bmV3KCkucG9zdCgmQVBJX01FVEhPRF9MT0FEX01FRElB KSksCisgICAgKCJsb2FkLXNsb3QiLCAmUm91dGVyOjpuZXcoKS5wb3N0KCZBUElfTUVUSE9EX0xP QURfU0xPVCkpLAogICAgICgic3RhdHVzIiwgJlJvdXRlcjo6bmV3KCkuZ2V0KCZBUElfTUVUSE9E X0dFVF9TVEFUVVMpKSwKICAgICAoInRyYW5zZmVyIiwgJlJvdXRlcjo6bmV3KCkucG9zdCgmQVBJ X01FVEhPRF9UUkFOU0ZFUikpLAogXTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHJveG1veC1iYWNr dXAtcHJveHkucnMgYi9zcmMvYmluL3Byb3htb3gtYmFja3VwLXByb3h5LnJzCmluZGV4IGVkZDBh NGNjLi5hMTgzODRjYiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wcm94bW94LWJhY2t1cC1wcm94eS5y cworKysgYi9zcmMvYmluL3Byb3htb3gtYmFja3VwLXByb3h5LnJzCkBAIC00MzIsNyArNDMyLDcg QEAgYXN5bmMgZm4gcnVuX3Rhc2tfc2NoZWR1bGVyKCkgewogICAgICAgICAgICAgICAgIH0gZWxz ZSB7CiAgICAgICAgICAgICAgICAgICAgIHRyYWNpbmc6OmVycm9yISgidGFzayBzY2hlZHVsZXIg cGFuaWMgLSBjYW5ub3Qgc2hvdyBlcnJvciBtZXNzYWdlIGR1ZSB0byB1bmtub3duIGVycm9yIHR5 cGUiKQogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0sCisgICAgICAgICAgICB9CiAg ICAgICAgICAgICBPayhFcnIoZXJyKSkgPT4gdHJhY2luZzo6ZXJyb3IhKCJ0YXNrIHNjaGVkdWxl ciBmYWlsZWQgLSB7ZXJyOj99IiksCiAgICAgICAgICAgICBPayhPayhfKSkgPT4ge30KICAgICAg ICAgfQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wcm94bW94LXRhcGUucnMgYi9zcmMvYmluL3Byb3ht b3gtdGFwZS5ycwppbmRleCA4ZTg1ODRiMy4uNzUyYWUyNTUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cHJveG1veC10YXBlLnJzCisrKyBiL3NyYy9iaW4vcHJveG1veC10YXBlLnJzCkBAIC0xLDYgKzEs NyBAQAogdXNlIHN0ZDo6Y29sbGVjdGlvbnM6Okhhc2hNYXA7CiAKIHVzZSBhbnlob3c6OntiYWls LCBmb3JtYXRfZXJyLCBFcnJvcn07Cit1c2UgcGJzX2NvbmZpZzo6ZHJpdmU6OmNvbXBsZXRlX2No YW5nZXJfbmFtZTsKIHVzZSBzZXJkZV9qc29uOjp7anNvbiwgVmFsdWV9OwogCiB1c2UgcHJveG1v eF9odW1hbl9ieXRlOjpIdW1hbkJ5dGU7CkBAIC0yMCw5ICsyMSwxMCBAQCB1c2UgcGJzX2NvbmZp Zzo6ZHJpdmU6OmNvbXBsZXRlX2RyaXZlX25hbWU7CiB1c2UgcGJzX2NvbmZpZzo6bWVkaWFfcG9v bDo6Y29tcGxldGVfcG9vbF9uYW1lOwogCiB1c2UgcGJzX2FwaV90eXBlczo6ewotICAgIEF1dGhp ZCwgQmFja3VwTmFtZXNwYWNlLCBHcm91cExpc3RJdGVtLCBVc2VyaWQsIERBVEFTVE9SRV9NQVBf TElTVF9TQ0hFTUEsIERBVEFTVE9SRV9TQ0hFTUEsCi0gICAgRFJJVkVfTkFNRV9TQ0hFTUEsIEdS T1VQX0ZJTFRFUl9MSVNUX1NDSEVNQSwgTUVESUFfTEFCRUxfU0NIRU1BLCBNRURJQV9QT09MX05B TUVfU0NIRU1BLAotICAgIE5TX01BWF9ERVBUSF9TQ0hFTUEsIFRBUEVfUkVTVE9SRV9OQU1FU1BB Q0VfU0NIRU1BLCBUQVBFX1JFU1RPUkVfU05BUFNIT1RfU0NIRU1BLAorICAgIEF1dGhpZCwgQmFj a3VwTmFtZXNwYWNlLCBHcm91cExpc3RJdGVtLCBVc2VyaWQsIENIQU5HRVJfTkFNRV9TQ0hFTUFf QVVUT01BVElDX0RSSVZFX0FTU0lHTk1FTlQsCisgICAgREFUQVNUT1JFX01BUF9MSVNUX1NDSEVN QSwgREFUQVNUT1JFX1NDSEVNQSwgRFJJVkVfTkFNRV9TQ0hFTUEsIEdST1VQX0ZJTFRFUl9MSVNU X1NDSEVNQSwKKyAgICBNRURJQV9MQUJFTF9TQ0hFTUEsIE1FRElBX1BPT0xfTkFNRV9TQ0hFTUEs IE5TX01BWF9ERVBUSF9TQ0hFTUEsIFRBUEVfUkVTVE9SRV9OQU1FU1BBQ0VfU0NIRU1BLAorICAg IFRBUEVfUkVTVE9SRV9TTkFQU0hPVF9TQ0hFTUEsCiB9OwogdXNlIHBic190YXBlOjp7QmxvY2tS ZWFkRXJyb3IsIE1lZGlhQ29udGVudEhlYWRlciwgUFJPWE1PWF9CQUNLVVBfQ09OVEVOVF9IRUFE RVJfTUFHSUNfMV8wfTsKIApAQCAtMjE0LDYgKzIxNiwxMCBAQCBhc3luYyBmbiBlamVjdF9tZWRp YShtdXQgcGFyYW06IFZhbHVlKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7CiAgICAgICAgICAgICAg ICAgc2NoZW1hOiBEUklWRV9OQU1FX1NDSEVNQSwKICAgICAgICAgICAgICAgICBvcHRpb25hbDog dHJ1ZSwKICAgICAgICAgICAgIH0sCisgICAgICAgICAgICBjaGFuZ2VyOiB7CisgICAgICAgICAg ICAgICAgc2NoZW1hOiBDSEFOR0VSX05BTUVfU0NIRU1BX0FVVE9NQVRJQ19EUklWRV9BU1NJR05N RU5ULAorICAgICAgICAgICAgICAgIG9wdGlvbmFsOiB0cnVlLAorICAgICAgICAgICAgfSwKICAg ICAgICAgICAgICJsYWJlbC10ZXh0IjogewogICAgICAgICAgICAgICAgIHNjaGVtYTogTUVESUFf TEFCRUxfU0NIRU1BLAogICAgICAgICAgICAgfSwKQEAgLTIzMCwxMSArMjM2LDIxIEBAIGFzeW5j IGZuIGxvYWRfbWVkaWEobXV0IHBhcmFtOiBWYWx1ZSkgLT4gUmVzdWx0PCgpLCBFcnJvcj4gewog CiAgICAgbGV0IChjb25maWcsIF9kaWdlc3QpID0gcGJzX2NvbmZpZzo6ZHJpdmU6OmNvbmZpZygp PzsKIAotICAgIGxldCBkcml2ZSA9IGV4dHJhY3RfZHJpdmVfbmFtZSgmbXV0IHBhcmFtLCAmY29u ZmlnKT87CisgICAgbGV0IGRyaXZlID0gZXh0cmFjdF9kcml2ZV9uYW1lKCZtdXQgcGFyYW0sICZj b25maWcpOworICAgIGxldCBjaGFuZ2VyID0gcGFyYW1bImNoYW5nZXIiXS5hc19zdHIoKTsKKwor ICAgIGxldCBwYXRoID0gbWF0Y2ggKGNoYW5nZXIsIGRyaXZlKSB7CisgICAgICAgIChTb21lKGNo YW5nZXIpLCBFcnIoXykpID0+IGZvcm1hdCEoImFwaTIvanNvbi90YXBlL2NoYW5nZXIve2NoYW5n ZXJ9L2xvYWQtbWVkaWEiKSwKKyAgICAgICAgKE5vbmUsIE9rKGRyaXZlKSkgPT4gZm9ybWF0ISgi YXBpMi9qc29uL3RhcGUvZHJpdmUve2RyaXZlfS9sb2FkLW1lZGlhIiksCisgICAgICAgIF8gPT4g YmFpbCEoImVpdGhlciBhIGNoYW5nZXIgb3IgYSBkcml2ZSBoYXMgdG8gYmUgc3BlY2lmaWVkIHdo ZW4gbG9hZGluZyBtZWRpYSIpLAorICAgIH07CisKKyAgICBpZiBsZXQgU29tZShwYXJhbSkgPSBw YXJhbS5hc19vYmplY3RfbXV0KCkgeworICAgICAgICBwYXJhbS5yZW1vdmUoImNoYW5nZXIiKTsK KyAgICB9CiAKICAgICBsZXQgY2xpZW50ID0gY29ubmVjdF90b19sb2NhbGhvc3QoKT87CiAKLSAg ICBsZXQgcGF0aCA9IGZvcm1hdCEoImFwaTIvanNvbi90YXBlL2RyaXZlL3t9L2xvYWQtbWVkaWEi LCBkcml2ZSk7CiAgICAgbGV0IHJlc3VsdCA9IGNsaWVudC5wb3N0KCZwYXRoLCBTb21lKHBhcmFt KSkuYXdhaXQ/OwogCiAgICAgdmlld190YXNrX3Jlc3VsdCgmY2xpZW50LCByZXN1bHQsICZvdXRw dXRfZm9ybWF0KS5hd2FpdD87CkBAIC0yNzYsNiArMjkyLDEwIEBAIGFzeW5jIGZuIGV4cG9ydF9t ZWRpYShtdXQgcGFyYW06IFZhbHVlKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7CiAgICAgICAgICAg ICAgICAgc2NoZW1hOiBEUklWRV9OQU1FX1NDSEVNQSwKICAgICAgICAgICAgICAgICBvcHRpb25h bDogdHJ1ZSwKICAgICAgICAgICAgIH0sCisgICAgICAgICAgICBjaGFuZ2VyOiB7CisgICAgICAg ICAgICAgICAgc2NoZW1hOiBDSEFOR0VSX05BTUVfU0NIRU1BX0FVVE9NQVRJQ19EUklWRV9BU1NJ R05NRU5ULAorICAgICAgICAgICAgICAgIG9wdGlvbmFsOiB0cnVlLAorICAgICAgICAgICAgfSwK ICAgICAgICAgICAgICJzb3VyY2Utc2xvdCI6IHsKICAgICAgICAgICAgICAgICBkZXNjcmlwdGlv bjogIlNvdXJjZSBzbG90IG51bWJlci4iLAogICAgICAgICAgICAgICAgIHR5cGU6IHU2NCwKQEAg LTI4OCwxMSArMzA4LDIxIEBAIGFzeW5jIGZuIGV4cG9ydF9tZWRpYShtdXQgcGFyYW06IFZhbHVl KSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7CiBhc3luYyBmbiBsb2FkX21lZGlhX2Zyb21fc2xvdCht dXQgcGFyYW06IFZhbHVlKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7CiAgICAgbGV0IChjb25maWcs IF9kaWdlc3QpID0gcGJzX2NvbmZpZzo6ZHJpdmU6OmNvbmZpZygpPzsKIAotICAgIGxldCBkcml2 ZSA9IGV4dHJhY3RfZHJpdmVfbmFtZSgmbXV0IHBhcmFtLCAmY29uZmlnKT87CisgICAgbGV0IGRy aXZlID0gZXh0cmFjdF9kcml2ZV9uYW1lKCZtdXQgcGFyYW0sICZjb25maWcpOworICAgIGxldCBj aGFuZ2VyID0gcGFyYW1bImNoYW5nZXIiXS5hc19zdHIoKTsKKworICAgIGxldCBwYXRoID0gbWF0 Y2ggKGNoYW5nZXIsIGRyaXZlKSB7CisgICAgICAgIChTb21lKGNoYW5nZXIpLCBFcnIoXykpID0+ IGZvcm1hdCEoImFwaTIvanNvbi90YXBlL2NoYW5nZXIve2NoYW5nZXJ9L2xvYWQtc2xvdCIpLAor ICAgICAgICAoTm9uZSwgT2soZHJpdmUpKSA9PiBmb3JtYXQhKCJhcGkyL2pzb24vdGFwZS9kcml2 ZS97ZHJpdmV9L2xvYWQtc2xvdCIpLAorICAgICAgICBfID0+IGJhaWwhKCJlaXRoZXIgYSBjaGFu Z2VyIG9yIGEgZHJpdmUgaGFzIHRvIGJlIHNwZWNpZmllZCB3aGVuIGxvYWRpbmcgbWVkaWEiKSwK KyAgICB9OworCisgICAgaWYgbGV0IFNvbWUocGFyYW0pID0gcGFyYW0uYXNfb2JqZWN0X211dCgp IHsKKyAgICAgICAgcGFyYW0ucmVtb3ZlKCJjaGFuZ2VyIik7CisgICAgfQogCiAgICAgbGV0IGNs aWVudCA9IGNvbm5lY3RfdG9fbG9jYWxob3N0KCk/OwogCi0gICAgbGV0IHBhdGggPSBmb3JtYXQh KCJhcGkyL2pzb24vdGFwZS9kcml2ZS97fS9sb2FkLXNsb3QiLCBkcml2ZSk7CiAgICAgY2xpZW50 LnBvc3QoJnBhdGgsIFNvbWUocGFyYW0pKS5hd2FpdD87CiAKICAgICBPaygoKSkKQEAgLTEwOTEs MTMgKzExMjEsMTUgQEAgZm4gbWFpbigpIHsKICAgICAgICAgICAgIENsaUNvbW1hbmQ6Om5ldygm QVBJX01FVEhPRF9MT0FEX01FRElBKQogICAgICAgICAgICAgICAgIC5hcmdfcGFyYW0oJlsibGFi ZWwtdGV4dCJdKQogICAgICAgICAgICAgICAgIC5jb21wbGV0aW9uX2NiKCJkcml2ZSIsIGNvbXBs ZXRlX2RyaXZlX25hbWUpCisgICAgICAgICAgICAgICAgLmNvbXBsZXRpb25fY2IoImNoYW5nZXIi LCBjb21wbGV0ZV9jaGFuZ2VyX25hbWUpCiAgICAgICAgICAgICAgICAgLmNvbXBsZXRpb25fY2Io ImxhYmVsLXRleHQiLCBjb21wbGV0ZV9tZWRpYV9sYWJlbF90ZXh0KSwKICAgICAgICAgKQogICAg ICAgICAuaW5zZXJ0KAogICAgICAgICAgICAgImxvYWQtbWVkaWEtZnJvbS1zbG90IiwKICAgICAg ICAgICAgIENsaUNvbW1hbmQ6Om5ldygmQVBJX01FVEhPRF9MT0FEX01FRElBX0ZST01fU0xPVCkK ICAgICAgICAgICAgICAgICAuYXJnX3BhcmFtKCZbInNvdXJjZS1zbG90Il0pCi0gICAgICAgICAg ICAgICAgLmNvbXBsZXRpb25fY2IoImRyaXZlIiwgY29tcGxldGVfZHJpdmVfbmFtZSksCisgICAg ICAgICAgICAgICAgLmNvbXBsZXRpb25fY2IoImRyaXZlIiwgY29tcGxldGVfZHJpdmVfbmFtZSkK KyAgICAgICAgICAgICAgICAuY29tcGxldGlvbl9jYigiY2hhbmdlciIsIGNvbXBsZXRlX2NoYW5n ZXJfbmFtZSksCiAgICAgICAgICkKICAgICAgICAgLmluc2VydCgKICAgICAgICAgICAgICJ1bmxv YWQiLApkaWZmIC0tZ2l0IGEvc3JjL3RhcGUvY2hhbmdlci9tb2QucnMgYi9zcmMvdGFwZS9jaGFu Z2VyL21vZC5ycwppbmRleCAxOGVhMGY0Ni4uMjJjNzgxODAgMTAwNjQ0Ci0tLSBhL3NyYy90YXBl L2NoYW5nZXIvbW9kLnJzCisrKyBiL3NyYy90YXBlL2NoYW5nZXIvbW9kLnJzCkBAIC0yNzMsNiAr MjczLDIxIEBAIHB1YiB0cmFpdCBNZWRpYUNoYW5nZSB7CiAgICAgfQogfQogCisvLy8gVXBkYXRl cyB0aGUgZHJpdmUncyBsYXN0IHVzYWdlIHRpbWUgdG8gbm93LgorcHViKHN1cGVyKSBmbiB1cGRh dGVfZHJpdmVfdXNhZ2UoZHJpdmU6ICZzdHIpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKKyAgICBs ZXQgX2xvY2sgPSBjcmF0ZTo6dGFwZTo6ZHJpdmVfaW5mbzo6bG9jaygpPzsKKworICAgIGxldCBt dXQgZHJpdmVzX2xhc3RfdXNhZ2UgPSBjcmF0ZTo6dGFwZTo6ZHJpdmVfaW5mbzo6Z2V0X2RyaXZl c19sYXN0X3VzYWdlKCk/OworCisgICAgbGV0IG5vdyA9IHByb3htb3hfdGltZTo6ZXBvY2hfaTY0 KCk7CisgICAgZHJpdmVzX2xhc3RfdXNhZ2UKKyAgICAgICAgLmRyaXZlcworICAgICAgICAuZW50 cnkoZHJpdmUuaW50bygpKQorICAgICAgICAub3JfZGVmYXVsdCgpCisgICAgICAgIC5sYXN0X3Vz YWdlID0gbm93OworICAgIGNyYXRlOjp0YXBlOjpkcml2ZV9pbmZvOjpzYXZlX2NvbmZpZygmZHJp dmVzX2xhc3RfdXNhZ2UpCit9CisKIGNvbnN0IFVTRV9NVFg6IGJvb2wgPSBmYWxzZTsKIAogaW1w bCBTY3NpTWVkaWFDaGFuZ2UgZm9yIFNjc2lUYXBlQ2hhbmdlciB7CkBAIC00MjMsNyArNDM4LDEz IEBAIGltcGwgTWVkaWFDaGFuZ2UgZm9yIE10eE1lZGlhQ2hhbmdlciB7CiAgICAgfQogCiAgICAg Zm4gbG9hZF9tZWRpYV9mcm9tX3Nsb3QoJm11dCBzZWxmLCBzbG90OiB1NjQpIC0+IFJlc3VsdDxN dHhTdGF0dXMsIEVycm9yPiB7Ci0gICAgICAgIHNlbGYuY29uZmlnLmxvYWRfc2xvdChzbG90LCBz ZWxmLmRyaXZlX251bWJlcigpKQorICAgICAgICBsZXQgc3RhdHVzID0gc2VsZi5jb25maWcubG9h ZF9zbG90KHNsb3QsIHNlbGYuZHJpdmVfbnVtYmVyKCkpPzsKKworICAgICAgICBpZiBsZXQgRXJy KGVycikgPSB1cGRhdGVfZHJpdmVfdXNhZ2Uoc2VsZi5kcml2ZV9uYW1lKCkpIHsKKyAgICAgICAg ICAgIGxvZzo6d2FybiEoImNvdWxkIG5vdCB1cGRhdGUgZHJpdmUgdXNhZ2U6IHtlcnJ9Iik7Cisg ICAgICAgIH0KKworICAgICAgICBPayhzdGF0dXMpCiAgICAgfQogCiAgICAgZm4gdW5sb2FkX21l ZGlhKCZtdXQgc2VsZiwgdGFyZ2V0X3Nsb3Q6IE9wdGlvbjx1NjQ+KSAtPiBSZXN1bHQ8TXR4U3Rh dHVzLCBFcnJvcj4gewpkaWZmIC0tZ2l0IGEvc3JjL3RhcGUvZHJpdmUvdmlydHVhbF90YXBlLnJz IGIvc3JjL3RhcGUvZHJpdmUvdmlydHVhbF90YXBlLnJzCmluZGV4IDg2NmU0ZDMyLi4yMTNmMTdm ZSAxMDA2NDQKLS0tIGEvc3JjL3RhcGUvZHJpdmUvdmlydHVhbF90YXBlLnJzCisrKyBiL3NyYy90 YXBlL2RyaXZlL3ZpcnR1YWxfdGFwZS5ycwpAQCAtNTY3LDcgKzU2NywxMyBAQCBpbXBsIE1lZGlh Q2hhbmdlIGZvciBWaXJ0dWFsVGFwZUhhbmRsZSB7CiAgICAgICAgIH07CiAgICAgICAgIHNlbGYu c3RvcmVfc3RhdHVzKCZzdGF0dXMpPzsKIAotICAgICAgICBzZWxmLnN0YXR1cygpCisgICAgICAg IGxldCBzdGF0dXMgPSBzZWxmLnN0YXR1cygpPzsKKworICAgICAgICBpZiBsZXQgRXJyKGVycikg PSBjcmF0ZTo6dGFwZTo6Y2hhbmdlcjo6dXBkYXRlX2RyaXZlX3VzYWdlKHNlbGYuZHJpdmVfbmFt ZSgpKSB7CisgICAgICAgICAgICBsb2c6Ondhcm4hKCJjb3VsZCBub3QgdXBkYXRlIGRyaXZlIHVz YWdlOiB7ZXJyfSIpOworICAgICAgICB9CisKKyAgICAgICAgT2soc3RhdHVzKQogICAgIH0KIAog ICAgIGZuIHVubG9hZF9tZWRpYSgmbXV0IHNlbGYsIF90YXJnZXRfc2xvdDogT3B0aW9uPHU2ND4p IC0+IFJlc3VsdDxNdHhTdGF0dXMsIEVycm9yPiB7CmRpZmYgLS1naXQgYS9zcmMvdGFwZS9kcml2 ZV9pbmZvLnJzIGIvc3JjL3RhcGUvZHJpdmVfaW5mby5ycwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMC4uNWJmYWFiMDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGFwZS9kcml2 ZV9pbmZvLnJzCkBAIC0wLDAgKzEsNTYgQEAKKy8vISBTZXJpYWxpemUvZGVzZXJpYWxpemUgdHBh ZSBkcml2ZSBpbmZvIChlLmcuIHVzZWZ1bCBmb3Igc3RhdGlzdGljcykKKy8vIQorLy8hIFRoaXMg Y2FuIGJlIHVzZWQgdG8gc3RvcmUgYSBzdGF0ZSBvdmVyIGEgbG9uZ2VyIHBlcmlvZCBvZiB0aW1l IChlLmcuIGxhc3QgdGFwZSBkcml2ZSB1c2FnZSkuCisKK3VzZSBhbnlob3c6OkVycm9yOwordXNl IHByb3htb3hfcHJvZHVjdF9jb25maWc6OkFwaUxvY2tHdWFyZDsKK3VzZSBzZXJkZTo6e0Rlc2Vy aWFsaXplLCBTZXJpYWxpemV9OwordXNlIHN0ZDo6Y29sbGVjdGlvbnM6Okhhc2hNYXA7CisKKy8v LyBEcml2ZSBpbmZvIGZpbGUgbmFtZQorLy8vIFRoaXMgaGFzIGEgZ2VuZXJpYyBuYW1lIHRvIGJl IGFibGUgdG8gZXh0ZW5kIHRoZSBpbmZvcm1hdGlvbiBpbiB0aGUgZnV0dXJlLgorcHViIGNvbnN0 IERSSVZFX0lORk9fRklMRU5BTUU6ICZzdHIgPSBjb25jYXQhKAorICAgIHBic19idWlsZGNmZzo6 UFJPWE1PWF9CQUNLVVBfU1RBVEVfRElSX00hKCksCisgICAgIi90YXBlX2RyaXZlX2luZm8uanNv biIKKyk7CisvLy8gTG9jayBmaWxlIG5hbWUgKHVzZWQgdG8gcHJldmVudCBjb25jdXJyZW50IGFj Y2VzcykKK3B1YiBjb25zdCBEUklWRV9JTkZPX0xPQ0tGSUxFOiAmc3RyID0gY29uY2F0ISgKKyAg ICBwYnNfYnVpbGRjZmc6OlBST1hNT1hfQkFDS1VQX1NUQVRFX0RJUl9NISgpLAorICAgICIvLnRh cGVfZHJpdmVfaW5mby5qc29uLmxvY2siCispOworCisjW2Rlcml2ZShTZXJpYWxpemUsIERlc2Vy aWFsaXplLCBEZWZhdWx0KV0KK3B1YiBzdHJ1Y3QgU2luZ2xlRHJpdmVMYXN0VXNhZ2UgeworICAg ICNbc2VyZGUod2l0aCA9ICJwcm94bW94X3NlcmRlOjplcG9jaF9hc19yZmMzMzM5IildCisgICAg cHViIGxhc3RfdXNhZ2U6IGk2NCwKK30KKworI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6 ZSwgRGVmYXVsdCldCitwdWIgc3RydWN0IERyaXZlc0xhc3RVc2FnZSB7CisgICAgcHViIGRyaXZl czogSGFzaE1hcDxTdHJpbmcsIFNpbmdsZURyaXZlTGFzdFVzYWdlPiwKK30KKworLy8vIEdldCBl eGNsdXNpdmUgbG9jaworcHViIGZuIGxvY2soKSAtPiBSZXN1bHQ8QXBpTG9ja0d1YXJkLCBFcnJv cj4geworICAgIHByb3htb3hfcHJvZHVjdF9jb25maWc6Om9wZW5fYXBpX2xvY2tmaWxlKERSSVZF X0lORk9fTE9DS0ZJTEUsIE9wdGlvbjo6Tm9uZSwgdHJ1ZSkKK30KKworLy8vIFJlYWQgYW5kIHBh cnNlIHRoZSBkcml2ZSBpbmZvIGZpbGUKKy8vLyBDdXJyZW50bHkgdXNlZCB0dSBnZXQgdGhlIGRy aXZlJ3MgbGFzdCB1c2FnZQorcHViIGZuIGdldF9kcml2ZXNfbGFzdF91c2FnZSgpIC0+IFJlc3Vs dDxEcml2ZXNMYXN0VXNhZ2UsIEVycm9yPiB7CisgICAgbGV0IGNvbnRlbnQgPSBwcm94bW94X3N5 czo6ZnM6OmZpbGVfcmVhZF9vcHRpb25hbF9zdHJpbmcoRFJJVkVfSU5GT19GSUxFTkFNRSk/Owor CisgICAgbWF0Y2ggY29udGVudCB7CisgICAgICAgIFNvbWUoY29udGVudCkgPT4geworICAgICAg ICAgICAgbGV0IHJlc3VsdCA9IHNlcmRlX2pzb246OmZyb21fc3RyOjo8RHJpdmVzTGFzdFVzYWdl PigmY29udGVudCk/OworICAgICAgICAgICAgT2socmVzdWx0KQorICAgICAgICB9CisgICAgICAg IE5vbmUgPT4gT2soRHJpdmVzTGFzdFVzYWdlOjpkZWZhdWx0KCkpLAorICAgIH0KK30KKworLy8v IFNhdmUgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZQorcHViIGZuIHNhdmVfY29uZmlnKGRhdGE6ICZE cml2ZXNMYXN0VXNhZ2UpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKKyAgICBsZXQganNvbiA9IHNl cmRlX2pzb246OnRvX3N0cmluZyhkYXRhKT87CisgICAgcHJveG1veF9wcm9kdWN0X2NvbmZpZzo6 cmVwbGFjZV9jb25maWcoRFJJVkVfSU5GT19GSUxFTkFNRSwganNvbi5hc19ieXRlcygpKQorfQpk aWZmIC0tZ2l0IGEvc3JjL3RhcGUvbW9kLnJzIGIvc3JjL3RhcGUvbW9kLnJzCmluZGV4IGYyNzZm OTQ4Li44Yjg3MTUyZCAxMDA2NDQKLS0tIGEvc3JjL3RhcGUvbW9kLnJzCisrKyBiL3NyYy90YXBl L21vZC5ycwpAQCAtMjAsNiArMjAsNyBAQCBwdWIgdXNlIGludmVudG9yeTo6KjsKIAogcHViIG1v ZCBjaGFuZ2VyOwogcHViIG1vZCBkcml2ZTsKK3B1YiBtb2QgZHJpdmVfaW5mbzsKIHB1YiBtb2Qg ZW5jcnlwdGlvbl9rZXlzOwogCiBtb2QgbWVkaWFfcG9vbDsKZGlmZiAtLWdpdCBhL3d3dy90YXBl L0NoYW5nZXJTdGF0dXMuanMgYi93d3cvdGFwZS9DaGFuZ2VyU3RhdHVzLmpzCmluZGV4IGUxOGFm OTBlLi4xYjgxZGIzNCAxMDA2NDQKLS0tIGEvd3d3L3RhcGUvQ2hhbmdlclN0YXR1cy5qcworKysg Yi93d3cvdGFwZS9DaGFuZ2VyU3RhdHVzLmpzCkBAIC0yMjIsMTIgKzIyMiwxNiBAQCBFeHQuZGVm aW5lKCdQQlMuVGFwZU1hbmFnZW1lbnQuQ2hhbmdlclN0YXR1cycsIHsKIAkJICAgIGF1dG9TaG93 OiB0cnVlLAogCQkgICAgc3VibWl0VGV4dDogZ2V0dGV4dCgnT0snKSwKIAkJICAgIHRpdGxlOiBn ZXR0ZXh0KCdMb2FkIE1lZGlhIGludG8gRHJpdmUnKSwKLQkJICAgIHVybDogYC9hcGkyL2V4dGpz L3RhcGUvZHJpdmVgLAorCQkgICAgdXJsOiBgL2FwaTIvZXh0anMvdGFwZWAsCiAJCSAgICBtZXRo b2Q6ICdQT1NUJywKIAkJICAgIHN1Ym1pdFVybDogZnVuY3Rpb24odXJsLCB2YWx1ZXMpIHsKLQkJ CWxldCBkcml2ZSA9IHZhbHVlcy5kcml2ZTsKLQkJCWRlbGV0ZSB2YWx1ZXMuZHJpdmU7Ci0JCQly ZXR1cm4gYCR7dXJsfS8ke2VuY29kZVVSSUNvbXBvbmVudChkcml2ZSl9LyR7YXBpQ2FsbH1gOwor CQkJICAgIGxldCBkcml2ZSA9IHZhbHVlcy5kcml2ZTsKKwkJCSAgICBkZWxldGUgdmFsdWVzLmRy aXZlOworCisgICAgICAgICAgbGV0IHR5cGUgPSBkcml2ZSA/ICJkcml2ZSIgOiAiY2hhbmdlciI7 CisgICAgICAgICAgbGV0IGl0ZW0gPSBkcml2ZSA/IGRyaXZlIDogY2hhbmdlcjsKKworICAgICAg ICAgIHJldHVybiBgJHt1cmx9LyR7dHlwZX0vJHtlbmNvZGVVUklDb21wb25lbnQoaXRlbSl9LyR7 YXBpQ2FsbH1gOwogCQkgICAgfSwKIAkJICAgIGl0ZW1zOiBbCiAJCQlsYWJlbCAhPT0gIiIgPyB7 CkBAIC0yNDgsNiArMjUyLDkgQEAgRXh0LmRlZmluZSgnUEJTLlRhcGVNYW5hZ2VtZW50LkNoYW5n ZXJTdGF0dXMnLCB7CiAJCQkgICAgZmllbGRMYWJlbDogZ2V0dGV4dCgnRHJpdmUnKSwKIAkJCSAg ICBjaGFuZ2VyOiBjaGFuZ2VyLAogCQkJICAgIG5hbWU6ICdkcml2ZScsCisJCQkgICAgZW1wdHlU ZXh0OiBnZXR0ZXh0KCdDaG9vc2UgQXV0b21hdGljYWxseScpLAorCQkJICAgIGFsbG93Qmxhbms6 IHRydWUsCisJCQkgICAgYXV0b1NlbGVjdDogZmFsc2UsCiAJCQl9LAogCQkgICAgXSwKIAkJICAg IGxpc3RlbmVyczogewotLSAKMi4zOS41CgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCnBicy1kZXZlbCBtYWlsaW5nIGxpc3QKcGJzLWRldmVsQGxpc3Rz LnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xp c3RpbmZvL3Bicy1kZXZlbAo=