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 [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 000871FF15C for <inbox@lore.proxmox.com>; Fri, 4 Apr 2025 18:32:03 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 1613A37D9A; Fri, 4 Apr 2025 18:29:54 +0200 (CEST) From: Gabriel Goller <g.goller@proxmox.com> To: pve-devel@lists.proxmox.com Date: Fri, 4 Apr 2025 18:28:26 +0200 Message-Id: <20250404162908.563060-16-g.goller@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250404162908.563060-1-g.goller@proxmox.com> References: <20250404162908.563060-1-g.goller@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.022 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-ve-rs v2 14/15] ve-config: add section-config to frr types conversion 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> QWRkIGEgRmFicmljQ29uZmlnIGJ1aWxkZXIgd2hpY2ggaXRlcmF0ZXMgdGhyb3VnaCBub2RlcyBh bmQgZ2VuZXJhdGVzCnRoZSBmcnIgY29uZmlnIGZvciB0aGUgc3BlY2lmaWVkIGN1cnJlbnRfbm9k ZS4gVGhpcyBwYXJ0IGFsc28KZGlzdHJpYnV0ZXMgdGhlIGZhYnJpYyBvcHRpb25zIG9uIGFsbCB0 aGUgaW50ZXJmYWNlcyDigJMgZS5nLiB0aGUKaGVsbG8taW50ZXJ2YWwgb3B0aW9uIG9uIHRoZSBm YWJyaWMgd2lsbCBiZSBhZGRlZCB0byBhbGwgaW50ZXJmYWNlcwpoZXJlLgoKV2UgbWFpbmx5IG5l ZWQgdG8gYWRkIHRoZXNlIG9iamVjdHMgdG8gRlJSOgoKKiBpbnRlcmZhY2VzCiAgICBXZSBzaW1w bHkgaXRlcmF0ZSB0aHJvdWdoIGFsbCBjb25maWd1cmVkIGludGVyZmFjZXMgYW5kIGFkZCB0aGVt IEZSUgogICAgd2l0aCBhIHNob3J0IGNvbmZpZyBsaW5lIHRlbGxpbmcgdGhlIGRhZW1vbiB0byBl bmFibGUKICAgIG9wZW5mYWJyaWMvb3NwZiBvbiB0aGlzIGludGVyZmFjZS4KCiogcm91dGVycwog ICAgVGhlIHRlbGwgdGhlIEZSUiBkYWVtb24gdG8gaW5pdGlhdGUgdGhlIG9wZW5mYWJyaWMvb3Nw ZiBkYWVtb24gb24KICAgIGV2ZXJ5IG5vZGUuCgoqIGFjY2Vzcy1saXN0cwogICAgV2UgdGhyb3cg YWxsIHRoZSByb3V0ZXItaXBzIG9mIGFsbCB0aGUgb3RoZXIgbm9kZXMgaW4gdGhlIHNhbWUKICAg IGZhYnJpYyBpbiBhY2Nlc3MtbGlzdC4gVGhpcyB3YXkgd2UgY2FuIHNpbXBseSB1c2UgYSByb3V0 ZS1tYXAgdG8KICAgIG1hdGNoIG9uIGl0LgoKKiByb3V0ZS1tYXBzCiAgICBXZSBhZGQgYSByb3V0 ZS1tYXAgdG8gZXZlcnkgZmFicmljIHNvIHRoYXQgd2UgcmV3cml0ZSB0aGUgc291cmNlCiAgICBh ZGRyZXNzIHRvIHRoZSBjdXJyZW50IHJvdXRlci1pcCB3aGljaCBpcyBvbiB0aGUgbG9jYWwKICAg IGR1bW15X2ludGVyZmFjZS4KCiogaXAtcHJvdG9jb2wgc3RhdGVtZW50cwogICAgVGhlc2UgYWRk IHRoZSByb3V0ZS1tYXAgdG8gdGhlIHByb3RvY29sIGFuZCBhbGwgdGhlIHJvdXRlcyBmcm9tIHRo ZQogICAgcHJvdG9jb2wgYXJlIGdvaW5nIHRocm91Z2ggdGhlIHJvdXRlLW1hcC4KClNpZ25lZC1v ZmYtYnk6IEdhYnJpZWwgR29sbGVyIDxnLmdvbGxlckBwcm94bW94LmNvbT4KLS0tCiBwcm94bW94 LXZlLWNvbmZpZy9DYXJnby50b21sICAgICAgICAgICAgfCAgIDUgKwogcHJveG1veC12ZS1jb25m aWcvZGViaWFuL2NvbnRyb2wgICAgICAgIHwgIDIzICstCiBwcm94bW94LXZlLWNvbmZpZy9zcmMv c2RuL2ZhYnJpYy9tb2QucnMgfCA0MjcgKysrKysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVz IGNoYW5nZWQsIDQ1MyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3Byb3htb3gtdmUtY29uZmlnL0NhcmdvLnRvbWwgYi9wcm94bW94LXZlLWNvbmZpZy9DYXJnby50 b21sCmluZGV4IGY1OGM2ZTJkMGI4Yy4uNzBjMjUzMTJhYzZkIDEwMDY0NAotLS0gYS9wcm94bW94 LXZlLWNvbmZpZy9DYXJnby50b21sCisrKyBiL3Byb3htb3gtdmUtY29uZmlnL0NhcmdvLnRvbWwK QEAgLTExLDEyICsxMSwxNCBAQCBsb2cgPSAiMC40IgogYW55aG93ID0gIjEiCiBuaXggPSAiMC4y NiIKIHRoaXNlcnJvciA9IHsgd29ya3NwYWNlID0gdHJ1ZSB9Cit0cmFjaW5nID0gIjAuMSIKIAog c2VyZGUgPSB7IHdvcmtzcGFjZSA9IHRydWUsIGZlYXR1cmVzID0gWyAiZGVyaXZlIiBdIH0KIHNl cmRlX2pzb24gPSAiMSIKIHNlcmRlX3BsYWluID0gIjEiCiBzZXJkZV93aXRoID0geyB3b3Jrc3Bh Y2UgPSB0cnVlIH0KIAorcHJveG1veC1mcnIgPSB7IG9wdGlvbmFsID0gdHJ1ZSwgd29ya3NwYWNl ID0gdHJ1ZSB9CiBwcm94bW94LW5ldHdvcmstdHlwZXMgPSB7IHdvcmtzcGFjZSA9IHRydWUgfQog cHJveG1veC1zZG4tdHlwZXMgPSB7IHdvcmtzcGFjZSA9IHRydWUgfQogcHJveG1veC1zY2hlbWEg PSB7IHZlcnNpb24gPSAiNCIsIGZlYXR1cmVzID0gWyAiYXBpLXR5cGVzIiBdIH0KQEAgLTI0LDMg KzI2LDYgQEAgcHJveG1veC1zZWN0aW9uLWNvbmZpZyA9IHsgdmVyc2lvbiA9ICIyLjEuMiIgfQog cHJveG1veC1zZXJkZSA9IHsgdmVyc2lvbiA9ICIwLjEuMiIgfQogcHJveG1veC1zeXMgPSAiMC42 LjQiCiBwcm94bW94LXNvcnRhYmxlLW1hY3JvID0gIjAuMS4zIgorCitbZmVhdHVyZXNdCitmcnIg PSBbImRlcDpwcm94bW94LWZyciIgXQpkaWZmIC0tZ2l0IGEvcHJveG1veC12ZS1jb25maWcvZGVi aWFuL2NvbnRyb2wgYi9wcm94bW94LXZlLWNvbmZpZy9kZWJpYW4vY29udHJvbAppbmRleCAwZGEy NDFmZWQ3NzUuLmQwOTQwYjJjOGFjNSAxMDA2NDQKLS0tIGEvcHJveG1veC12ZS1jb25maWcvZGVi aWFuL2NvbnRyb2wKKysrIGIvcHJveG1veC12ZS1jb25maWcvZGViaWFuL2NvbnRyb2wKQEAgLTIy LDcgKzIyLDggQEAgQnVpbGQtRGVwZW5kcy1BcmNoOiBjYXJnbzpuYXRpdmUgPCFub2NoZWNrPiwK ICBsaWJydXN0LXNlcmRlLWpzb24tMStkZWZhdWx0LWRldiA8IW5vY2hlY2s+LAogIGxpYnJ1c3Qt c2VyZGUtcGxhaW4tMStkZWZhdWx0LWRldiA8IW5vY2hlY2s+LAogIGxpYnJ1c3Qtc2VyZGUtd2l0 aC0zK2RlZmF1bHQtZGV2IDwhbm9jaGVjaz4sCi0gbGlicnVzdC10aGlzZXJyb3ItMStkZWZhdWx0 LWRldiAoPj0gMS4wLjU5LX5+KSA8IW5vY2hlY2s+CisgbGlicnVzdC10aGlzZXJyb3ItMStkZWZh dWx0LWRldiAoPj0gMS4wLjU5LX5+KSA8IW5vY2hlY2s+LAorIGxpYnJ1c3QtdHJhY2luZy0wLjEr ZGVmYXVsdC1kZXYgPCFub2NoZWNrPgogTWFpbnRhaW5lcjogUHJveG1veCBTdXBwb3J0IFRlYW0g PHN1cHBvcnRAcHJveG1veC5jb20+CiBTdGFuZGFyZHMtVmVyc2lvbjogNC43LjAKIFZjcy1HaXQ6 IGdpdDovL2dpdC5wcm94bW94LmNvbS9naXQvcHJveG1veC12ZS1ycy5naXQKQEAgLTUxLDcgKzUy LDEwIEBAIERlcGVuZHM6CiAgbGlicnVzdC1zZXJkZS1qc29uLTErZGVmYXVsdC1kZXYsCiAgbGli cnVzdC1zZXJkZS1wbGFpbi0xK2RlZmF1bHQtZGV2LAogIGxpYnJ1c3Qtc2VyZGUtd2l0aC0zK2Rl ZmF1bHQtZGV2LAotIGxpYnJ1c3QtdGhpc2Vycm9yLTErZGVmYXVsdC1kZXYgKD49IDEuMC41OS1+ fikKKyBsaWJydXN0LXRoaXNlcnJvci0xK2RlZmF1bHQtZGV2ICg+PSAxLjAuNTktfn4pLAorIGxp YnJ1c3QtdHJhY2luZy0wLjErZGVmYXVsdC1kZXYKK1N1Z2dlc3RzOgorIGxpYnJ1c3QtcHJveG1v eC12ZS1jb25maWcrZnJyLWRldiAoPSAke2JpbmFyeTpWZXJzaW9ufSkKIFByb3ZpZGVzOgogIGxp YnJ1c3QtcHJveG1veC12ZS1jb25maWcrZGVmYXVsdC1kZXYgKD0gJHtiaW5hcnk6VmVyc2lvbn0p LAogIGxpYnJ1c3QtcHJveG1veC12ZS1jb25maWctMC1kZXYgKD0gJHtiaW5hcnk6VmVyc2lvbn0p LApAQCAtNjIsMyArNjYsMTggQEAgUHJvdmlkZXM6CiAgbGlicnVzdC1wcm94bW94LXZlLWNvbmZp Zy0wLjIuMitkZWZhdWx0LWRldiAoPSAke2JpbmFyeTpWZXJzaW9ufSkKIERlc2NyaXB0aW9uOiBS dXN0IGNyYXRlICJwcm94bW94LXZlLWNvbmZpZyIgLSBSdXN0IHNvdXJjZSBjb2RlCiAgU291cmNl IGNvZGUgZm9yIERlYmlhbml6ZWQgUnVzdCBjcmF0ZSAicHJveG1veC12ZS1jb25maWciCisKK1Bh Y2thZ2U6IGxpYnJ1c3QtcHJveG1veC12ZS1jb25maWcrZnJyLWRldgorQXJjaGl0ZWN0dXJlOiBh bnkKK011bHRpLUFyY2g6IHNhbWUKK0RlcGVuZHM6CisgJHttaXNjOkRlcGVuZHN9LAorIGxpYnJ1 c3QtcHJveG1veC12ZS1jb25maWctZGV2ICg9ICR7YmluYXJ5OlZlcnNpb259KSwKKyBsaWJydXN0 LXByb3htb3gtZnJyLTAuMStkZWZhdWx0LWRldgorUHJvdmlkZXM6CisgbGlicnVzdC1wcm94bW94 LXZlLWNvbmZpZy0wK2Zyci1kZXYgKD0gJHtiaW5hcnk6VmVyc2lvbn0pLAorIGxpYnJ1c3QtcHJv eG1veC12ZS1jb25maWctMC4yK2Zyci1kZXYgKD0gJHtiaW5hcnk6VmVyc2lvbn0pLAorIGxpYnJ1 c3QtcHJveG1veC12ZS1jb25maWctMC4yLjIrZnJyLWRldiAoPSAke2JpbmFyeTpWZXJzaW9ufSkK K0Rlc2NyaXB0aW9uOiBSdXN0IGNyYXRlICJwcm94bW94LXZlLWNvbmZpZyIgLSBmZWF0dXJlICJm cnIiCisgVGhpcyBtZXRhcGFja2FnZSBlbmFibGVzIGZlYXR1cmUgImZyciIgZm9yIHRoZSBSdXN0 IHByb3htb3gtdmUtY29uZmlnIGNyYXRlLCBieQorIHB1bGxpbmcgaW4gYW55IGFkZGl0aW9uYWwg ZGVwZW5kZW5jaWVzIG5lZWRlZCBieSB0aGF0IGZlYXR1cmUuCmRpZmYgLS1naXQgYS9wcm94bW94 LXZlLWNvbmZpZy9zcmMvc2RuL2ZhYnJpYy9tb2QucnMgYi9wcm94bW94LXZlLWNvbmZpZy9zcmMv c2RuL2ZhYnJpYy9tb2QucnMKaW5kZXggNDU3OTViMGU1MWIwLi5iMzU4MGVjNGM3ZDAgMTAwNjQ0 Ci0tLSBhL3Byb3htb3gtdmUtY29uZmlnL3NyYy9zZG4vZmFicmljL21vZC5ycworKysgYi9wcm94 bW94LXZlLWNvbmZpZy9zcmMvc2RuL2ZhYnJpYy9tb2QucnMKQEAgLTEsOSArMSwxMiBAQAogcHVi IG1vZCBvcGVuZmFicmljOwogcHViIG1vZCBvc3BmOwogCit1c2Ugb3BlbmZhYnJpYzo6T3BlbkZh YnJpY1NlY3Rpb25Db25maWc7Cit1c2Ugb3NwZjo6T3NwZlNlY3Rpb25Db25maWc7CiB1c2UgcHJv eG1veF9uZXR3b3JrX3R5cGVzOjpkZWJpYW46Okhvc3RuYW1lOwogdXNlIHByb3htb3hfc2VjdGlv bl9jb25maWc6OnR5cGVkOjpBcGlTZWN0aW9uRGF0YUVudHJ5OwogdXNlIHByb3htb3hfc2VjdGlv bl9jb25maWc6OnR5cGVkOjpTZWN0aW9uQ29uZmlnRGF0YTsKK3VzZSB0aGlzZXJyb3I6OkVycm9y OwogCiB1c2Ugc3RkOjpvcHM6OkRlcmVmOwogCkBAIC0xMTAsNiArMTEzLDIyIEBAIGltcGwgc3Rk OjpzdHI6OkZyb21TdHIgZm9yIFNlY3Rpb25UeXBlIHsKICAgICB9CiB9CiAKKyNbY2ZnKGZlYXR1 cmUgPSAiZnJyIildCit1c2UgeworICAgIGFueWhvdzo6YW55aG93LAorICAgIHByb3htb3hfZnJy Ojp7CisgICAgICAgIG9zcGY6OkFyZWEsCisgICAgICAgIHJvdXRlX21hcDo6eworICAgICAgICAg ICAgQWNjZXNzQWN0aW9uLCBBY2Nlc3NMaXN0LCBBY2Nlc3NMaXN0TmFtZSwgQWNjZXNzTGlzdFJ1 bGUsIFByb3RvY29sUm91dGVNYXAsCisgICAgICAgICAgICBQcm90b2NvbFR5cGUsIFJvdXRlTWFw LCBSb3V0ZU1hcE1hdGNoLCBSb3V0ZU1hcE5hbWUsIFJvdXRlTWFwU2V0LAorICAgICAgICB9LAor ICAgICAgICBGcnJDb25maWcsIEZycldvcmQsIEludGVyZmFjZSwgSW50ZXJmYWNlTmFtZSwgUm91 dGVyLCBSb3V0ZXJOYW1lLAorICAgIH0sCisgICAgcHJveG1veF9zZG5fdHlwZXM6Om5ldDo6TmV0 LAorICAgIHN0ZDo6Y29sbGVjdGlvbnM6OntCVHJlZU1hcCwgSGFzaE1hcH0sCisgICAgc3RkOjpu ZXQ6OntJcEFkZHIsIElwdjRBZGRyfSwKK307CisKICNbZGVyaXZlKERlYnVnLCBDbG9uZSldCiBw dWIgc3RydWN0IFZhbGlkPFQ+KFNlY3Rpb25Db25maWdEYXRhPFQ+KTsKIApAQCAtMTQyLDMgKzE2 MSw0MTEgQEAgd2hlcmUKICAgICB9CiB9CiAKKyNbZGVyaXZlKEVycm9yLCBEZWJ1ZyldCitwdWIg ZW51bSBDb25maWdFcnJvciB7CisgICAgI1tlcnJvcigibm9kZSBpZCBoYXMgaW52YWxpZCBmb3Jt YXQiKV0KKyAgICBJbnZhbGlkTm9kZUlkLAorfQorCisjW2Rlcml2ZShEZWZhdWx0LCBDbG9uZSld CitwdWIgc3RydWN0IEZhYnJpY0NvbmZpZyB7CisgICAgb3BlbmZhYnJpYzogT3B0aW9uPFZhbGlk PE9wZW5GYWJyaWNTZWN0aW9uQ29uZmlnPj4sCisgICAgb3NwZjogT3B0aW9uPFZhbGlkPE9zcGZT ZWN0aW9uQ29uZmlnPj4sCit9CisKK2ltcGwgRmFicmljQ29uZmlnIHsKKyAgICBwdWIgZm4gbmV3 KHJhd19vcGVuZmFicmljOiAmc3RyLCByYXdfb3NwZjogJnN0cikgLT4gUmVzdWx0PFNlbGYsIGFu eWhvdzo6RXJyb3I+IHsKKyAgICAgICAgbGV0IG9wZW5mYWJyaWMgPSA8VmFsaWQ8T3BlbkZhYnJp Y1NlY3Rpb25Db25maWc+Pjo6cGFyc2Vfc2VjdGlvbl9jb25maWcoCisgICAgICAgICAgICAib3Bl bmZhYnJpYy5jZmciLAorICAgICAgICAgICAgcmF3X29wZW5mYWJyaWMsCisgICAgICAgICk/Owor ICAgICAgICBsZXQgb3NwZiA9IDxWYWxpZDxPc3BmU2VjdGlvbkNvbmZpZz4+OjpwYXJzZV9zZWN0 aW9uX2NvbmZpZygib3NwZi5jZmciLCByYXdfb3NwZik/OworCisgICAgICAgIE9rKFNlbGYgewor ICAgICAgICAgICAgb3BlbmZhYnJpYzogU29tZShvcGVuZmFicmljKSwKKyAgICAgICAgICAgIG9z cGY6IFNvbWUob3NwZiksCisgICAgICAgIH0pCisgICAgfQorCisgICAgcHViIGZuIG9wZW5mYWJy aWMoJnNlbGYpIC0+ICZPcHRpb248VmFsaWQ8T3BlbkZhYnJpY1NlY3Rpb25Db25maWc+PiB7Cisg ICAgICAgICZzZWxmLm9wZW5mYWJyaWMKKyAgICB9CisgICAgcHViIGZuIG9zcGYoJnNlbGYpIC0+ ICZPcHRpb248VmFsaWQ8T3NwZlNlY3Rpb25Db25maWc+PiB7CisgICAgICAgICZzZWxmLm9zcGYK KyAgICB9CisKKyAgICBwdWIgZm4gd2l0aF9vcGVuZmFicmljKGNvbmZpZzogVmFsaWQ8T3BlbkZh YnJpY1NlY3Rpb25Db25maWc+KSAtPiBGYWJyaWNDb25maWcgeworICAgICAgICBTZWxmIHsKKyAg ICAgICAgICAgIG9wZW5mYWJyaWM6IFNvbWUoY29uZmlnKSwKKyAgICAgICAgICAgIG9zcGY6IE5v bmUsCisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWIgZm4gd2l0aF9vc3BmKGNvbmZpZzogVmFs aWQ8T3NwZlNlY3Rpb25Db25maWc+KSAtPiBGYWJyaWNDb25maWcgeworICAgICAgICBTZWxmIHsK KyAgICAgICAgICAgIG9zcGY6IFNvbWUoY29uZmlnKSwKKyAgICAgICAgICAgIG9wZW5mYWJyaWM6 IE5vbmUsCisgICAgICAgIH0KKyAgICB9Cit9CisKK3B1YiB0cmFpdCBGcm9tU2VjdGlvbkNvbmZp Zword2hlcmUKKyAgICBTZWxmOiBTaXplZCArIFRyeUZyb208U2VjdGlvbkNvbmZpZ0RhdGE8U2Vs Zjo6U2VjdGlvbj4+LAorICAgIDxTZWxmIGFzIFRyeUZyb208U2VjdGlvbkNvbmZpZ0RhdGE8U2Vs Zjo6U2VjdGlvbj4+Pjo6RXJyb3I6IHN0ZDo6Zm10OjpEZWJ1ZywKK3sKKyAgICB0eXBlIFNlY3Rp b246IEFwaVNlY3Rpb25EYXRhRW50cnkgKyBEZXNlcmlhbGl6ZU93bmVkOworCisgICAgZm4gZnJv bV9zZWN0aW9uX2NvbmZpZyhyYXc6ICZzdHIpIC0+IFJlc3VsdDxTZWxmLCBhbnlob3c6OkVycm9y PiB7CisgICAgICAgIGxldCBzZWN0aW9uX2NvbmZpZ19kYXRhID0gU2VsZjo6U2VjdGlvbjo6c2Vj dGlvbl9jb25maWcoKQorICAgICAgICAgICAgLnBhcnNlKFNlbGY6OmZpbGVuYW1lKCksIHJhdyk/ CisgICAgICAgICAgICAudHJ5X2ludG8oKT87CisKKyAgICAgICAgbGV0IG91dHB1dCA9IFNlbGY6 OnRyeV9mcm9tKHNlY3Rpb25fY29uZmlnX2RhdGEpLnVud3JhcCgpOworICAgICAgICBPayhvdXRw dXQpCisgICAgfQorCisgICAgZm4gZmlsZW5hbWUoKSAtPiBTdHJpbmc7Cit9CisKKy8vLyBCdWls ZGVyIHRoYXQgaGVscHMgYnVpbGRpbmcgdGhlIEZyckNvbmZpZy4KKyNbZGVyaXZlKERlZmF1bHQp XQorI1tjZmcoZmVhdHVyZSA9ICJmcnIiKV0KK3B1YiBzdHJ1Y3QgRnJyQ29uZmlnQnVpbGRlciB7 CisgICAgZmFicmljczogRmFicmljQ29uZmlnLAorfQorCisjW2NmZyhmZWF0dXJlID0gImZyciIp XQoraW1wbCBGcnJDb25maWdCdWlsZGVyIHsKKyAgICAvLy8gQWRkIGZhYnJpY3MgdG8gdGhlIGJ1 aWxkZXIKKyAgICBwdWIgZm4gYWRkX2ZhYnJpY3MobXV0IHNlbGYsIGZhYnJpYzogRmFicmljQ29u ZmlnKSAtPiBGcnJDb25maWdCdWlsZGVyIHsKKyAgICAgICAgc2VsZi5mYWJyaWNzID0gZmFicmlj OworICAgICAgICBzZWxmCisgICAgfQorCisgICAgLy8vIEJ1aWxkIHRoZSBjb21wbGV0ZSBbYEZy ckNvbmZpZ2BdIGZyb20gdGhpcyBidWlsZGVyIGNvbmZpZ3VyYXRpb24gZ2l2ZW4gdGhlIGhvc3Ru YW1lIG9mIHRoZQorICAgIC8vLyBub2RlIGZvciB3aGljaCB3ZSB3YW50IHRvIGJ1aWxkIHRoZSBj b25maWcuIFdlIGFsc28gaW5qZWN0IHRoZSBjb21tb24gZmFicmljLWxldmVsIG9wdGlvbnMKKyAg ICAvLy8gaW50byB0aGUgaW50ZXJmYWNlcyBoZXJlLiAoZS5nLiB0aGUgZmFicmljLWxldmVsICJo ZWxsby1pbnRlcnZhbCIgZ2V0cyBhZGRlZCB0byBldmVyeQorICAgIC8vLyBpbnRlcmZhY2UgaWYg dGhlcmUgaXNuJ3QgYSBtb3JlIHNwZWNpZmljIG9uZS4pCisgICAgcHViIGZuIGJ1aWxkKHNlbGYs IGN1cnJlbnRfbm9kZTogSG9zdG5hbWUpIC0+IFJlc3VsdDxGcnJDb25maWcsIGFueWhvdzo6RXJy b3I+IHsKKyAgICAgICAgbGV0IG11dCByb3V0ZXI6IEJUcmVlTWFwPFJvdXRlck5hbWUsIFJvdXRl cj4gPSBCVHJlZU1hcDo6bmV3KCk7CisgICAgICAgIGxldCBtdXQgaW50ZXJmYWNlczogQlRyZWVN YXA8SW50ZXJmYWNlTmFtZSwgSW50ZXJmYWNlPiA9IEJUcmVlTWFwOjpuZXcoKTsKKyAgICAgICAg bGV0IG11dCBhY2Nlc3NfbGlzdHM6IEJUcmVlTWFwPEFjY2Vzc0xpc3ROYW1lLCBBY2Nlc3NMaXN0 PiA9IEJUcmVlTWFwOjpuZXcoKTsKKyAgICAgICAgbGV0IG11dCByb3V0ZW1hcHM6IFZlYzxSb3V0 ZU1hcD4gPSBWZWM6Om5ldygpOworICAgICAgICBsZXQgbXV0IHByb3RvY29sX3JvdXRlbWFwczog VmVjPFByb3RvY29sUm91dGVNYXA+ID0gVmVjOjpuZXcoKTsKKworICAgICAgICBpZiBsZXQgU29t ZShvcGVuZmFicmljKSA9IHNlbGYuZmFicmljcy5vcGVuZmFicmljIHsKKyAgICAgICAgICAgIGxl dCBtdXQgZmFicmljcyA9IEhhc2hNYXA6Om5ldygpOworICAgICAgICAgICAgbGV0IG11dCBsb2Nh bF9jb25maWd1cmF0aW9uID0gVmVjOjpuZXcoKTsKKworICAgICAgICAgICAgZm9yIChfLCBzZWN0 aW9uKSBpbiAoJipvcGVuZmFicmljKS5pbnRvX2l0ZXIoKSB7CisgICAgICAgICAgICAgICAgbWF0 Y2ggc2VjdGlvbiB7CisgICAgICAgICAgICAgICAgICAgIE9wZW5GYWJyaWNTZWN0aW9uQ29uZmln OjpGYWJyaWMoZmFicmljKSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmYWJyaWNzLmlu c2VydChmYWJyaWMuZmFicmljX2lkLmNsb25lKCksIGZhYnJpYyk7CisgICAgICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgT3BlbkZhYnJpY1NlY3Rpb25Db25maWc6Ok5vZGUo bm9kZSkgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm9kZS5ub2RlX2lkID09IGN1 cnJlbnRfbm9kZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxfY29uZmlndXJh dGlvbi5wdXNoKG5vZGUpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAg ICBsZXQgbXV0IHJvdXRlbWFwX3NlcSA9IDEwMDsKKyAgICAgICAgICAgIGxldCBtdXQgY3VycmVu dF9uZXQ6IE9wdGlvbjxOZXQ+ID0gTm9uZTsKKworICAgICAgICAgICAgZm9yIG5vZGUgaW4gbG9j YWxfY29uZmlndXJhdGlvbiB7CisgICAgICAgICAgICAgICAgLy8gaWYgbm8gaW50ZXJmYWNlcyBh cmUgY29uZmlndXJlZCwgZG9uJ3QgZ2VuZXJhdGUgYW55IGNvbmZpZworICAgICAgICAgICAgICAg IGlmIG5vZGUuaW50ZXJmYWNlcy5pc19lbXB0eSgpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJl YWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbGV0IGZhYnJpYyA9IGZh YnJpY3MKKyAgICAgICAgICAgICAgICAgICAgLmdldCgmbm9kZS5mYWJyaWNfaWQpCisgICAgICAg ICAgICAgICAgICAgIC5va19vcl9lbHNlKHx8IGFueWhvdyEoImNvdWxkIG5vdCBmaW5kIGZhYnJp Yzoge30iLCBub2RlLmZhYnJpY19pZCkpPzsKKworICAgICAgICAgICAgICAgIGxldCBuZXQgPSBj dXJyZW50X25ldC5nZXRfb3JfaW5zZXJ0KG5vZGUucm91dGVyX2lkLmludG8oKSk7CisgICAgICAg ICAgICAgICAgbGV0IChyb3V0ZXJfbmFtZSwgcm91dGVyX2l0ZW0pID0KKyAgICAgICAgICAgICAg ICAgICAgU2VsZjo6YnVpbGRfb3BlbmZhYnJpY19yb3V0ZXIoJm5vZGUuZmFicmljX2lkLCBuZXQp PzsKKyAgICAgICAgICAgICAgICByb3V0ZXIuaW5zZXJ0KHJvdXRlcl9uYW1lLCByb3V0ZXJfaXRl bSk7CisKKyAgICAgICAgICAgICAgICBsZXQgKGludGVyZmFjZSwgaW50ZXJmYWNlX25hbWUpID0K KyAgICAgICAgICAgICAgICAgICAgU2VsZjo6YnVpbGRfb3BlbmZhYnJpY19kdW1teV9pbnRlcmZh Y2UoJm5vZGUuZmFicmljX2lkLCBub2RlLnJvdXRlcl9pZCk/OworCisgICAgICAgICAgICAgICAg aWYgaW50ZXJmYWNlcy5pbnNlcnQoaW50ZXJmYWNlX25hbWUsIGludGVyZmFjZSkuaXNfc29tZSgp IHsKKyAgICAgICAgICAgICAgICAgICAgdHJhY2luZzo6ZXJyb3IhKAorICAgICAgICAgICAgICAg ICAgICAgICAgIkFuIGludGVyZmFjZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgdGhlIGR1bW15IGlu dGVyZmFjZSBleGlzdHMiCisgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAg fQorCisgICAgICAgICAgICAgICAgZm9yIGludGVyZmFjZSBpbiBub2RlLmludGVyZmFjZXMuaXRl cigpIHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IChpbnRlcmZhY2UsIGludGVyZmFjZV9uYW1l KSA9IFNlbGY6OmJ1aWxkX29wZW5mYWJyaWNfaW50ZXJmYWNlKAorICAgICAgICAgICAgICAgICAg ICAgICAgJm5vZGUuZmFicmljX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJmYWNl LAorICAgICAgICAgICAgICAgICAgICAgICAgZmFicmljLAorICAgICAgICAgICAgICAgICAgICAg ICAgbm9kZS5yb3V0ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICk/OworCisgICAgICAgICAg ICAgICAgICAgIGlmIGludGVyZmFjZXMuaW5zZXJ0KGludGVyZmFjZV9uYW1lLCBpbnRlcmZhY2Up LmlzX3NvbWUoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0cmFjaW5nOjp3YXJuISgiQW4g aW50ZXJmYWNlIGNhbm5vdCBiZSBpbiBtdWx0aXBsZSBvcGVuZmFicmljIGZhYnJpY3MiKTsKKyAg ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAg IGxldCBhY2Nlc3NfbGlzdF9uYW1lID0KKyAgICAgICAgICAgICAgICAgICAgQWNjZXNzTGlzdE5h bWU6Om5ldyhmb3JtYXQhKCJvcGVuZmFicmljX3t9X2lwcyIsIG5vZGUuZmFicmljX2lkKSk7CisK KyAgICAgICAgICAgICAgICBsZXQgcnVsZSA9IEFjY2Vzc0xpc3RSdWxlIHsKKyAgICAgICAgICAg ICAgICAgICAgYWN0aW9uOiBBY2Nlc3NBY3Rpb246OlBlcm1pdCwKKyAgICAgICAgICAgICAgICAg ICAgbmV0d29yazogZmFicmljLmxvb3BiYWNrX3ByZWZpeCwKKyAgICAgICAgICAgICAgICAgICAg c2VxOiBOb25lLAorICAgICAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgICAgICBhY2Nlc3Nf bGlzdHMKKyAgICAgICAgICAgICAgICAgICAgLmVudHJ5KGFjY2Vzc19saXN0X25hbWUuY2xvbmUo KSkKKyAgICAgICAgICAgICAgICAgICAgLmFuZF9tb2RpZnkofGx8IGwucnVsZXMucHVzaChydWxl LmNsb25lKCkpKQorICAgICAgICAgICAgICAgICAgICAub3JfaW5zZXJ0KEFjY2Vzc0xpc3Qgewor ICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogYWNjZXNzX2xpc3RfbmFtZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgIHJ1bGVzOiB2ZWMhW3J1bGVdLAorICAgICAgICAgICAgICAgICAgICB9 KTsKKworICAgICAgICAgICAgICAgIGxldCByb3V0ZW1hcCA9IFNlbGY6OmJ1aWxkX29wZW5mYWJy aWNfZHVtbXlfcm91dGVtYXAoCisgICAgICAgICAgICAgICAgICAgICZub2RlLmZhYnJpY19pZCwK KyAgICAgICAgICAgICAgICAgICAgbm9kZS5yb3V0ZXJfaWQsCisgICAgICAgICAgICAgICAgICAg IHJvdXRlbWFwX3NlcSwKKyAgICAgICAgICAgICAgICApPzsKKworICAgICAgICAgICAgICAgIHJv dXRlbWFwX3NlcSArPSAxMDsKKworICAgICAgICAgICAgICAgIHJvdXRlbWFwcy5wdXNoKHJvdXRl bWFwKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgIXJvdXRlbWFwcy5pc19lbXB0 eSgpIHsKKyAgICAgICAgICAgICAgICBsZXQgcHJvdG9jb2xfcm91dGVtYXAgPSBQcm90b2NvbFJv dXRlTWFwIHsKKyAgICAgICAgICAgICAgICAgICAgcHJvdG9jb2w6IFByb3RvY29sVHlwZTo6T3Bl bkZhYnJpYywKKyAgICAgICAgICAgICAgICAgICAgcm91dGVtYXBfbmFtZTogUm91dGVNYXBOYW1l OjpuZXcoIm9wZW5mYWJyaWMiLnRvX293bmVkKCkpLAorICAgICAgICAgICAgICAgIH07CisKKyAg ICAgICAgICAgICAgICBwcm90b2NvbF9yb3V0ZW1hcHMucHVzaChwcm90b2NvbF9yb3V0ZW1hcCk7 CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiBsZXQgU29tZShvc3BmKSA9 IHNlbGYuZmFicmljcy5vc3BmIHsKKyAgICAgICAgICAgIGxldCBtdXQgZmFicmljcyA9IEhhc2hN YXA6Om5ldygpOworICAgICAgICAgICAgbGV0IG11dCBsb2NhbF9jb25maWd1cmF0aW9uID0gVmVj OjpuZXcoKTsKKworICAgICAgICAgICAgZm9yIChfLCBzZWN0aW9uKSBpbiAoJipvc3BmKS5pbnRv X2l0ZXIoKSB7CisgICAgICAgICAgICAgICAgbWF0Y2ggc2VjdGlvbiB7CisgICAgICAgICAgICAg ICAgICAgIE9zcGZTZWN0aW9uQ29uZmlnOjpGYWJyaWMoZmFicmljKSA9PiB7CisgICAgICAgICAg ICAgICAgICAgICAgICBmYWJyaWNzLmluc2VydChmYWJyaWMuZmFicmljX2lkLmNsb25lKCksIGZh YnJpYyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgT3NwZlNl Y3Rpb25Db25maWc6Ok5vZGUobm9kZSkgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgaWYg bm9kZS5ub2RlX2lkID09IGN1cnJlbnRfbm9kZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbG9jYWxfY29uZmlndXJhdGlvbi5wdXNoKG5vZGUpOworICAgICAgICAgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg ICAgfQorCisgICAgICAgICAgICBsZXQgbXV0IHJvdXRlbWFwX3NlcSA9IDEwMDsKKyAgICAgICAg ICAgIGxldCBtdXQgY3VycmVudF9yb3V0ZXJfaWQ6IE9wdGlvbjxJcHY0QWRkcj4gPSBOb25lOwor CisgICAgICAgICAgICBmb3Igbm9kZSBpbiBsb2NhbF9jb25maWd1cmF0aW9uIHsKKyAgICAgICAg ICAgICAgICAvLyBpZiBubyBpbnRlcmZhY2VzIGFyZSBjb25maWd1cmVkLCBkb24ndCBnZW5lcmF0 ZSBhbnkgY29uZmlnCisgICAgICAgICAgICAgICAgaWYgbm9kZS5pbnRlcmZhY2VzLmlzX2VtcHR5 KCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAg ICAgICAgICAgICAgICBsZXQgZmFicmljID0gZmFicmljcworICAgICAgICAgICAgICAgICAgICAu Z2V0KCZub2RlLmZhYnJpY19pZCkKKyAgICAgICAgICAgICAgICAgICAgLm9rX29yX2Vsc2UofHwg YW55aG93ISgiY291bGQgbm90IGZpbmQgZmFicmljOiB7fSIsIG5vZGUuZmFicmljX2lkKSk/Owor CisgICAgICAgICAgICAgICAgbGV0IHJvdXRlcl9pZCA9IGN1cnJlbnRfcm91dGVyX2lkLmdldF9v cl9pbnNlcnQobm9kZS5yb3V0ZXJfaWQpOworICAgICAgICAgICAgICAgIGxldCAocm91dGVyX25h bWUsIHJvdXRlcl9pdGVtKSA9CisgICAgICAgICAgICAgICAgICAgIFNlbGY6OmJ1aWxkX29zcGZf cm91dGVyKCZmYWJyaWMuYXJlYSwgbm9kZSwgKnJvdXRlcl9pZCk/OworICAgICAgICAgICAgICAg IHJvdXRlci5pbnNlcnQocm91dGVyX25hbWUsIHJvdXRlcl9pdGVtKTsKKworICAgICAgICAgICAg ICAgIC8vIEFkZCBkdW1teSBpbnRlcmZhY2UKKyAgICAgICAgICAgICAgICBsZXQgKGludGVyZmFj ZSwgaW50ZXJmYWNlX25hbWUpID0KKyAgICAgICAgICAgICAgICAgICAgU2VsZjo6YnVpbGRfb3Nw Zl9kdW1teV9pbnRlcmZhY2UoJmZhYnJpYy5mYWJyaWNfaWQsICZmYWJyaWMuYXJlYSk/OworCisg ICAgICAgICAgICAgICAgaWYgaW50ZXJmYWNlcy5pbnNlcnQoaW50ZXJmYWNlX25hbWUsIGludGVy ZmFjZSkuaXNfc29tZSgpIHsKKyAgICAgICAgICAgICAgICAgICAgdHJhY2luZzo6ZXJyb3IhKAor ICAgICAgICAgICAgICAgICAgICAgICAgIkFuIGludGVyZmFjZSB3aXRoIHRoZSBzYW1lIG5hbWUg YXMgdGhlIGR1bW15IGludGVyZmFjZSBleGlzdHMiCisgICAgICAgICAgICAgICAgICAgICk7Cisg ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZm9yIGludGVyZmFjZSBpbiBub2Rl LmludGVyZmFjZXMuaXRlcigpIHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IChpbnRlcmZhY2Us IGludGVyZmFjZV9uYW1lKSA9CisgICAgICAgICAgICAgICAgICAgICAgICBTZWxmOjpidWlsZF9v c3BmX2ludGVyZmFjZSgmZmFicmljLmFyZWEsIGludGVyZmFjZSk/OworCisgICAgICAgICAgICAg ICAgICAgIGlmIGludGVyZmFjZXMuaW5zZXJ0KGludGVyZmFjZV9uYW1lLCBpbnRlcmZhY2UpLmlz X3NvbWUoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0cmFjaW5nOjp3YXJuISgiQW4gaW50 ZXJmYWNlIGNhbm5vdCBiZSBpbiBtdWx0aXBsZSBvcGVuZmFicmljIGZhYnJpY3MiKTsKKyAgICAg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGxl dCBhY2Nlc3NfbGlzdF9uYW1lID0gQWNjZXNzTGlzdE5hbWU6Om5ldyhmb3JtYXQhKCJvc3BmX3t9 X2lwcyIsIG5vZGUuZmFicmljX2lkKSk7CisKKyAgICAgICAgICAgICAgICBsZXQgcnVsZSA9IEFj Y2Vzc0xpc3RSdWxlIHsKKyAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiBBY2Nlc3NBY3Rpb246 OlBlcm1pdCwKKyAgICAgICAgICAgICAgICAgICAgbmV0d29yazogZmFicmljLmxvb3BiYWNrX3By ZWZpeC5pbnRvKCksCisgICAgICAgICAgICAgICAgICAgIHNlcTogTm9uZSwKKyAgICAgICAgICAg ICAgICB9OworCisgICAgICAgICAgICAgICAgYWNjZXNzX2xpc3RzCisgICAgICAgICAgICAgICAg ICAgIC5lbnRyeShhY2Nlc3NfbGlzdF9uYW1lLmNsb25lKCkpCisgICAgICAgICAgICAgICAgICAg IC5hbmRfbW9kaWZ5KHxsfCBsLnJ1bGVzLnB1c2gocnVsZS5jbG9uZSgpKSkKKyAgICAgICAgICAg ICAgICAgICAgLm9yX2luc2VydChBY2Nlc3NMaXN0IHsKKyAgICAgICAgICAgICAgICAgICAgICAg IG5hbWU6IGFjY2Vzc19saXN0X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICBydWxlczog dmVjIVtydWxlXSwKKyAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICBs ZXQgcm91dGVtYXAgPSBTZWxmOjpidWlsZF9vc3BmX2R1bW15X3JvdXRlbWFwKAorICAgICAgICAg ICAgICAgICAgICAmZmFicmljLmZhYnJpY19pZCwKKyAgICAgICAgICAgICAgICAgICAgbm9kZS5y b3V0ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgIHJvdXRlbWFwX3NlcSwKKyAgICAgICAgICAg ICAgICApPzsKKyAgICAgICAgICAgICAgICByb3V0ZW1hcF9zZXEgKz0gMTA7CisgICAgICAgICAg ICAgICAgcm91dGVtYXBzLnB1c2gocm91dGVtYXApOworICAgICAgICAgICAgfQorCisgICAgICAg ICAgICBpZiAhcm91dGVtYXBzLmlzX2VtcHR5KCkgeworICAgICAgICAgICAgICAgIGxldCBwcm90 b2NvbF9yb3V0ZW1hcCA9IFByb3RvY29sUm91dGVNYXAgeworICAgICAgICAgICAgICAgICAgICBw cm90b2NvbDogUHJvdG9jb2xUeXBlOjpPc3BmLAorICAgICAgICAgICAgICAgICAgICByb3V0ZW1h cF9uYW1lOiBSb3V0ZU1hcE5hbWU6Om5ldygib3NwZiIudG9fb3duZWQoKSksCisgICAgICAgICAg ICAgICAgfTsKKworICAgICAgICAgICAgICAgIHByb3RvY29sX3JvdXRlbWFwcy5wdXNoKHByb3Rv Y29sX3JvdXRlbWFwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIE9rKEZy ckNvbmZpZyB7CisgICAgICAgICAgICByb3V0ZXIsCisgICAgICAgICAgICBpbnRlcmZhY2VzLAor ICAgICAgICAgICAgYWNjZXNzX2xpc3RzLAorICAgICAgICAgICAgcm91dGVtYXBzLAorICAgICAg ICAgICAgcHJvdG9jb2xfcm91dGVtYXBzLAorICAgICAgICB9KQorICAgIH0KKworICAgIGZuIGJ1 aWxkX29zcGZfcm91dGVyKAorICAgICAgICBhcmVhOiAmb3NwZjo6QXJlYSwKKyAgICAgICAgX25v ZGVfY29uZmlnOiAmb3NwZjo6Tm9kZVNlY3Rpb24sCisgICAgICAgIHJvdXRlcl9pZDogSXB2NEFk ZHIsCisgICAgKSAtPiBSZXN1bHQ8KFJvdXRlck5hbWUsIFJvdXRlciksIGFueWhvdzo6RXJyb3I+ IHsKKyAgICAgICAgbGV0IG9zcGZfcm91dGVyID0gcHJveG1veF9mcnI6Om9zcGY6Ok9zcGZSb3V0 ZXIgeyByb3V0ZXJfaWQgfTsKKyAgICAgICAgbGV0IHJvdXRlcl9pdGVtID0gUm91dGVyOjpPc3Bm KG9zcGZfcm91dGVyKTsKKyAgICAgICAgbGV0IGZycl93b3JkX2lkID0gRnJyV29yZDo6bmV3KGFy ZWEudG9fc3RyaW5nKCkpPzsKKyAgICAgICAgbGV0IHJvdXRlcl9uYW1lID0gUm91dGVyTmFtZTo6 T3NwZihwcm94bW94X2Zycjo6b3NwZjo6T3NwZlJvdXRlck5hbWU6OmZyb20oQXJlYTo6bmV3KAor ICAgICAgICAgICAgZnJyX3dvcmRfaWQsCisgICAgICAgICk/KSk7CisgICAgICAgIE9rKChyb3V0 ZXJfbmFtZSwgcm91dGVyX2l0ZW0pKQorICAgIH0KKworICAgIGZuIGJ1aWxkX29wZW5mYWJyaWNf cm91dGVyKAorICAgICAgICBmYWJyaWNfaWQ6ICZGYWJyaWNJZCwKKyAgICAgICAgbmV0OiAmTmV0 LAorICAgICkgLT4gUmVzdWx0PChSb3V0ZXJOYW1lLCBSb3V0ZXIpLCBhbnlob3c6OkVycm9yPiB7 CisgICAgICAgIGxldCBvZnIgPSBwcm94bW94X2Zycjo6b3BlbmZhYnJpYzo6T3BlbkZhYnJpY1Jv dXRlciB7IG5ldDogbmV0LmNsb25lKCkgfTsKKyAgICAgICAgbGV0IHJvdXRlcl9pdGVtID0gUm91 dGVyOjpPcGVuRmFicmljKG9mcik7CisgICAgICAgIGxldCBmcnJfd29yZF9pZCA9IEZycldvcmQ6 Om5ldyhmYWJyaWNfaWQudG9fc3RyaW5nKCkpPzsKKyAgICAgICAgbGV0IHJvdXRlcl9uYW1lID0g Um91dGVyTmFtZTo6T3BlbkZhYnJpYyhmcnJfd29yZF9pZC5pbnRvKCkpOworICAgICAgICBPaygo cm91dGVyX25hbWUsIHJvdXRlcl9pdGVtKSkKKyAgICB9CisKKyAgICBmbiBidWlsZF9vc3BmX2lu dGVyZmFjZSgKKyAgICAgICAgYXJlYTogJm9zcGY6OkFyZWEsCisgICAgICAgIGludGVyZmFjZTog Jm9zcGY6OkludGVyZmFjZVByb3BlcnRpZXMsCisgICAgKSAtPiBSZXN1bHQ8KEludGVyZmFjZSwg SW50ZXJmYWNlTmFtZSksIGFueWhvdzo6RXJyb3I+IHsKKyAgICAgICAgbGV0IGZycl9pbnRlcmZh Y2U6IHByb3htb3hfZnJyOjpvc3BmOjpPc3BmSW50ZXJmYWNlID0gaW50ZXJmYWNlLnRvX2Zycl9p bnRlcmZhY2UoYXJlYSk/OworCisgICAgICAgIGxldCBpbnRlcmZhY2VfbmFtZSA9IEludGVyZmFj ZU5hbWU6Ok9zcGYoaW50ZXJmYWNlLm5hbWUucGFyc2UoKT8pOworICAgICAgICBPaygoZnJyX2lu dGVyZmFjZS5pbnRvKCksIGludGVyZmFjZV9uYW1lKSkKKyAgICB9CisKKyAgICBmbiBidWlsZF9v c3BmX2R1bW15X2ludGVyZmFjZSgKKyAgICAgICAgZmFicmljX2lkOiAmRmFicmljSWQsCisgICAg ICAgIGFyZWE6ICZvc3BmOjpBcmVhLAorICAgICkgLT4gUmVzdWx0PChJbnRlcmZhY2UsIEludGVy ZmFjZU5hbWUpLCBhbnlob3c6OkVycm9yPiB7CisgICAgICAgIGxldCBmcnJfd29yZCA9IEZycldv cmQ6Om5ldyhhcmVhLnRvX3N0cmluZygpKT87CisgICAgICAgIGxldCBmcnJfaW50ZXJmYWNlID0g cHJveG1veF9mcnI6Om9zcGY6Ok9zcGZJbnRlcmZhY2UgeworICAgICAgICAgICAgYXJlYTogZnJy X3dvcmQudHJ5X2ludG8oKT8sCisgICAgICAgICAgICBwYXNzaXZlOiBTb21lKHRydWUpLAorICAg ICAgICAgICAgbmV0d29ya190eXBlOiBOb25lLAorICAgICAgICB9OworICAgICAgICBsZXQgaW50 ZXJmYWNlX25hbWUgPSBJbnRlcmZhY2VOYW1lOjpPcGVuRmFicmljKGZvcm1hdCEoImR1bW15X3t9 IiwgZmFicmljX2lkKS5wYXJzZSgpPyk7CisgICAgICAgIE9rKChmcnJfaW50ZXJmYWNlLmludG8o KSwgaW50ZXJmYWNlX25hbWUpKQorICAgIH0KKworICAgIGZuIGJ1aWxkX29wZW5mYWJyaWNfaW50 ZXJmYWNlKAorICAgICAgICBmYWJyaWNfaWQ6ICZGYWJyaWNJZCwKKyAgICAgICAgaW50ZXJmYWNl OiAmb3BlbmZhYnJpYzo6SW50ZXJmYWNlUHJvcGVydGllcywKKyAgICAgICAgZmFicmljX2NvbmZp ZzogJm9wZW5mYWJyaWM6OkZhYnJpY1NlY3Rpb24sCisgICAgICAgIHJvdXRlcl9pZDogSXBBZGRy LAorICAgICkgLT4gUmVzdWx0PChJbnRlcmZhY2UsIEludGVyZmFjZU5hbWUpLCBhbnlob3c6OkVy cm9yPiB7CisgICAgICAgIGxldCBtdXQgZnJyX2ludGVyZmFjZTogcHJveG1veF9mcnI6Om9wZW5m YWJyaWM6Ok9wZW5GYWJyaWNJbnRlcmZhY2UgPQorICAgICAgICAgICAgaW50ZXJmYWNlLnRvX2Zy cl9pbnRlcmZhY2UoZmFicmljX2lkLCByb3V0ZXJfaWQuaXNfaXB2NigpKT87CisgICAgICAgIC8v IElmIG5vIHNwZWNpZmljIGhlbGxvX2ludGVydmFsIGlzIHNldCwgZ2V0IGRlZmF1bHQgb25lIGZy b20gZmFicmljCisgICAgICAgIC8vIGNvbmZpZworICAgICAgICBpZiBmcnJfaW50ZXJmYWNlLmhl bGxvX2ludGVydmFsKCkuaXNfbm9uZSgpIHsKKyAgICAgICAgICAgIGZycl9pbnRlcmZhY2Uuc2V0 X2hlbGxvX2ludGVydmFsKGZhYnJpY19jb25maWcuaGVsbG9faW50ZXJ2YWwpOworICAgICAgICB9 CisgICAgICAgIGxldCBpbnRlcmZhY2VfbmFtZSA9IEludGVyZmFjZU5hbWU6Ok9wZW5GYWJyaWMo aW50ZXJmYWNlLm5hbWUucGFyc2UoKT8pOworICAgICAgICBPaygoZnJyX2ludGVyZmFjZS5pbnRv KCksIGludGVyZmFjZV9uYW1lKSkKKyAgICB9CisKKyAgICBmbiBidWlsZF9vcGVuZmFicmljX2R1 bW15X2ludGVyZmFjZSgKKyAgICAgICAgZmFicmljX2lkOiAmRmFicmljSWQsCisgICAgICAgIHJv dXRlcl9pZDogSXBBZGRyLAorICAgICkgLT4gUmVzdWx0PChJbnRlcmZhY2UsIEludGVyZmFjZU5h bWUpLCBhbnlob3c6OkVycm9yPiB7CisgICAgICAgIGxldCBmcnJfd29yZCA9IEZycldvcmQ6Om5l dyhmYWJyaWNfaWQudG9fc3RyaW5nKCkpPzsKKyAgICAgICAgbGV0IGZycl9pbnRlcmZhY2UgPSBw cm94bW94X2Zycjo6b3BlbmZhYnJpYzo6T3BlbkZhYnJpY0ludGVyZmFjZSB7CisgICAgICAgICAg ICBmYWJyaWNfaWQ6IGZycl93b3JkLmludG8oKSwKKyAgICAgICAgICAgIGhlbGxvX2ludGVydmFs OiBOb25lLAorICAgICAgICAgICAgcGFzc2l2ZTogU29tZSh0cnVlKSwKKyAgICAgICAgICAgIGNz bnBfaW50ZXJ2YWw6IE5vbmUsCisgICAgICAgICAgICBoZWxsb19tdWx0aXBsaWVyOiBOb25lLAor ICAgICAgICAgICAgaXNfaXB2Njogcm91dGVyX2lkLmlzX2lwdjYoKSwKKyAgICAgICAgfTsKKyAg ICAgICAgbGV0IGludGVyZmFjZV9uYW1lID0gSW50ZXJmYWNlTmFtZTo6T3BlbkZhYnJpYyhmb3Jt YXQhKCJkdW1teV97fSIsIGZhYnJpY19pZCkucGFyc2UoKT8pOworICAgICAgICBPaygoZnJyX2lu dGVyZmFjZS5pbnRvKCksIGludGVyZmFjZV9uYW1lKSkKKyAgICB9CisKKyAgICBmbiBidWlsZF9v cGVuZmFicmljX2R1bW15X3JvdXRlbWFwKAorICAgICAgICBmYWJyaWNfaWQ6ICZGYWJyaWNJZCwK KyAgICAgICAgcm91dGVyX2lwOiBJcEFkZHIsCisgICAgICAgIHNlcTogdTMyLAorICAgICkgLT4g UmVzdWx0PFJvdXRlTWFwLCBhbnlob3c6OkVycm9yPiB7CisgICAgICAgIGxldCByb3V0ZW1hcF9u YW1lID0gUm91dGVNYXBOYW1lOjpuZXcoIm9wZW5mYWJyaWMiLnRvX293bmVkKCkpOworICAgICAg ICAvLyBjcmVhdGUgcm91dGUtbWFwCisgICAgICAgIGxldCByb3V0ZW1hcCA9IFJvdXRlTWFwIHsK KyAgICAgICAgICAgIG5hbWU6IHJvdXRlbWFwX25hbWUuY2xvbmUoKSwKKyAgICAgICAgICAgIHNl cSwKKyAgICAgICAgICAgIGFjdGlvbjogQWNjZXNzQWN0aW9uOjpQZXJtaXQsCisgICAgICAgICAg ICBtYXRjaGVzOiB2ZWMhW1JvdXRlTWFwTWF0Y2g6OklwQWRkcmVzcyhBY2Nlc3NMaXN0TmFtZTo6 bmV3KGZvcm1hdCEoCisgICAgICAgICAgICAgICAgIm9wZW5mYWJyaWNfe2ZhYnJpY19pZH1faXBz IgorICAgICAgICAgICAgKSkpXSwKKyAgICAgICAgICAgIHNldHM6IHZlYyFbUm91dGVNYXBTZXQ6 OklwU3JjKHJvdXRlcl9pcCldLAorICAgICAgICB9OworICAgICAgICBPayhyb3V0ZW1hcCkKKyAg ICB9CisKKyAgICBmbiBidWlsZF9vc3BmX2R1bW15X3JvdXRlbWFwKAorICAgICAgICBmYWJyaWNf aWQ6ICZGYWJyaWNJZCwKKyAgICAgICAgcm91dGVyX2lwOiBJcHY0QWRkciwKKyAgICAgICAgc2Vx OiB1MzIsCisgICAgKSAtPiBSZXN1bHQ8Um91dGVNYXAsIGFueWhvdzo6RXJyb3I+IHsKKyAgICAg ICAgbGV0IHJvdXRlbWFwX25hbWUgPSBSb3V0ZU1hcE5hbWU6Om5ldygib3NwZiIudG9fb3duZWQo KSk7CisgICAgICAgIC8vIGNyZWF0ZSByb3V0ZS1tYXAKKyAgICAgICAgbGV0IHJvdXRlbWFwID0g Um91dGVNYXAgeworICAgICAgICAgICAgbmFtZTogcm91dGVtYXBfbmFtZS5jbG9uZSgpLAorICAg ICAgICAgICAgc2VxLAorICAgICAgICAgICAgYWN0aW9uOiBBY2Nlc3NBY3Rpb246OlBlcm1pdCwK KyAgICAgICAgICAgIG1hdGNoZXM6IHZlYyFbUm91dGVNYXBNYXRjaDo6SXBBZGRyZXNzKEFjY2Vz c0xpc3ROYW1lOjpuZXcoZm9ybWF0ISgKKyAgICAgICAgICAgICAgICAib3NwZl97ZmFicmljX2lk fV9pcHMiCisgICAgICAgICAgICApKSldLAorICAgICAgICAgICAgc2V0czogdmVjIVtSb3V0ZU1h cFNldDo6SXBTcmMoSXBBZGRyOjpmcm9tKHJvdXRlcl9pcCkpXSwKKyAgICAgICAgfTsKKworICAg ICAgICBPayhyb3V0ZW1hcCkKKyAgICB9Cit9Ci0tIAoyLjM5LjUKCgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KcHZlLWRldmVsIG1haWxpbmcgbGlzdApw dmUtZGV2ZWxAbGlzdHMucHJveG1veC5jb20KaHR0cHM6Ly9saXN0cy5wcm94bW94LmNvbS9jZ2kt YmluL21haWxtYW4vbGlzdGluZm8vcHZlLWRldmVsCg==