From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([69.77.167.62] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from <gentoo-user+bounces-76786-garchives=archives.gentoo.org@lists.gentoo.org>) id 1JZO7W-0005M5-Sf for garchives@archives.gentoo.org; Wed, 12 Mar 2008 10:23:49 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id E69E6E055B; Wed, 12 Mar 2008 10:23:36 +0000 (UTC) Received: from wf-out-1314.google.com (wf-out-1314.google.com [209.85.200.168]) by pigeon.gentoo.org (Postfix) with ESMTP id 4D501E055B for <gentoo-user@lists.gentoo.org>; Wed, 12 Mar 2008 10:23:36 +0000 (UTC) Received: by wf-out-1314.google.com with SMTP id 27so2842825wfd.10 for <gentoo-user@lists.gentoo.org>; Wed, 12 Mar 2008 03:23:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:mime-version:content-type; bh=OQ/DfYOA0MitYsCer3Wu51RvuqpbB8Hme5uvYekKe5c=; b=Dhzao/TRHAT5cvTwbyJX9Ljg5JJsnakVmBesd5PPDgMpGnrJR6rKddTOV6iB/Emi5hhr7Lq19yXzaj5bCVjnYZlZosOJB3BmN9ohUU3ursIj++PNCKBVKoNdvgM9MwpASJApiIkSSm3PkuajAJTE2f7MrBgkaSi+h5vnlcimKxU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type; b=CKjwvg24Fs8or+lPbtR3wugY6DTkIk/a5oI+TUKB/qo/LxUnotLDa+giLpGveS+msTrNLfAdx9ZPGHY3J3b7jqoBhJuC8Bv67mqZRtEZoPnzkfzECqvm2dyOvuY6bvSLP/iu96KwUZnP9+v0AGgkNhsEi24bFtTK5/RcXfuH858= Received: by 10.143.8.10 with SMTP id l10mr3238431wfi.181.1205317415826; Wed, 12 Mar 2008 03:23:35 -0700 (PDT) Received: by 10.143.167.6 with HTTP; Wed, 12 Mar 2008 03:23:35 -0700 (PDT) Message-ID: <2b8cfde80803120323q78c8baq9a2e00132e8a1c49@mail.gmail.com> Date: Wed, 12 Mar 2008 06:23:35 -0400 From: "Robert Stockdale IV" <bobstockdale@gmail.com> To: gentoo-user@lists.gentoo.org Subject: [gentoo-user] emerge wine Precedence: bulk List-Post: <mailto:gentoo-user@lists.gentoo.org> List-Help: <mailto:gentoo-user+help@lists.gentoo.org> List-Unsubscribe: <mailto:gentoo-user+unsubscribe@lists.gentoo.org> List-Subscribe: <mailto:gentoo-user+subscribe@lists.gentoo.org> List-Id: Gentoo Linux mail <gentoo-user.gentoo.org> X-BeenThere: gentoo-user@lists.gentoo.org Reply-to: gentoo-user@lists.gentoo.org MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_2118_2077346.1205317415824" X-Archives-Salt: cef36e64-bd99-448b-bcdb-0e1479bee8bf X-Archives-Hash: 28d9bf20d59e5ebf0595f6a87465e4af ------=_Part_2118_2077346.1205317415824 Content-Type: multipart/alternative; boundary="----=_Part_2119_12815286.1205317415824" ------=_Part_2119_12815286.1205317415824 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi all: I trying to emerge world and just got this error message with only 3 programs left to emerge. It is: * Messages for package app-emulation/wine-0.9.57: * * ERROR: app-emulation/wine-0.9.57 failed. * Call stack: * ebuild.sh, line 49: Called src_compile * environment, line 2460: Called econf 'src_compile' 'src_compile' '--sysconfdir=/etc/wine' '--with-curses' * ebuild.sh, line 513: Called die * The specific snippet of code: * die "econf failed" * The die message: * econf failed * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/tmp/portage/app-emulation/wine- 0.9.57/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/app-emulation/wine-0.9.57/temp/environment'. * The build log and ebuild environment are attached. Thank you. Bob ------=_Part_2119_12815286.1205317415824 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi all:<br>I trying to emerge world and just got this error message with only 3 programs left to emerge. It is:<br><br> * Messages for package app-emulation/wine-0.9.57:<br><br> * <br> * ERROR: app-emulation/wine-0.9.57 failed.<br> * Call stack:<br> * ebuild.sh, line 49: Called src_compile<br> * environment, line 2460: Called econf 'src_compile' 'src_compile' '--sysconfdir=/etc/wine' '--with-curses'<br> * ebuild.sh, line 513: Called die<br> * The specific snippet of code:<br> * die "econf failed"<br> * The die message:<br> * econf failed<br> * <br> * If you need support, post the topmost build error, and the call stack if relevant.<br> * A complete build log is located at '/var/tmp/portage/app-emulation/wine-0.9.57/temp/build.log'.<br> * The ebuild environment file is located at '/var/tmp/portage/app-emulation/wine-0.9.57/temp/environment'.<br> * <br><br><br>The build log and ebuild environment are attached. Thank you.<br>Bob<br> ------=_Part_2119_12815286.1205317415824-- ------=_Part_2118_2077346.1205317415824 Content-Type: text/x-log; name=build.log Content-Transfer-Encoding: base64 X-Attachment-Id: f_fdpi1p9a0 Content-Disposition: attachment; filename=build.log Pj4+IFVucGFja2luZyBzb3VyY2UuLi4KPj4+IFVucGFja2luZyB3aW5lLTAuOS41Ny50YXIuYnoy IHRvIC92YXIvdG1wL3BvcnRhZ2UvYXBwLWVtdWxhdGlvbi93aW5lLTAuOS41Ny93b3JrCiAbWzMy OzAxbSobWzBtIEFwcGx5aW5nIHdpbmUtZ2VudG9vLW5vLXNzcC5wYXRjaCAuLi4KG1tBG1sxNDhD ICAbWzM0OzAxbVsgG1szMjswMW1vaxtbMzQ7MDFtIF0bWzBtCj4+PiBTb3VyY2UgdW5wYWNrZWQu Cj4+PiBDb21waWxpbmcgc291cmNlIGluIC92YXIvdG1wL3BvcnRhZ2UvYXBwLWVtdWxhdGlvbi93 aW5lLTAuOS41Ny93b3JrL3dpbmUtMC45LjU3IC4uLgogKiBlY29uZjogdXBkYXRpbmcgd2luZS0w LjkuNTcvdG9vbHMvY29uZmlnLmd1ZXNzIHdpdGggL3Vzci9zaGFyZS9nbnVjb25maWcvY29uZmln Lmd1ZXNzCiAqIGVjb25mOiB1cGRhdGluZyB3aW5lLTAuOS41Ny90b29scy9jb25maWcuc3ViIHdp dGggL3Vzci9zaGFyZS9nbnVjb25maWcvY29uZmlnLnN1YgouL2NvbmZpZ3VyZSAtLXByZWZpeD0v dXNyIC0taG9zdD14ODZfNjQtcGMtbGludXgtZ251IC0tbWFuZGlyPS91c3Ivc2hhcmUvbWFuIC0t aW5mb2Rpcj0vdXNyL3NoYXJlL2luZm8gLS1kYXRhZGlyPS91c3Ivc2hhcmUgLS1zeXNjb25mZGly PS9ldGMgLS1sb2NhbHN0YXRlZGlyPS92YXIvbGliIC0tc3lzY29uZmRpcj0vZXRjL3dpbmUgLS13 aXRoLWN1cnNlcyAtLXdpdGgtb3BlbmdsIC0td2l0aC14IC0tbGliZGlyPS91c3IvbGliMzIgLS1i dWlsZD14ODZfNjQtcGMtbGludXgtZ251CmNoZWNraW5nIGJ1aWxkIHN5c3RlbSB0eXBlLi4uIHg4 Nl82NC1wYy1saW51eC1nbnUKY2hlY2tpbmcgaG9zdCBzeXN0ZW0gdHlwZS4uLiB4ODZfNjQtcGMt bGludXgtZ251CmNoZWNraW5nIHdoZXRoZXIgbWFrZSBzZXRzICQoTUFLRSkuLi4geWVzCmNoZWNr aW5nIGZvciB4ODZfNjQtcGMtbGludXgtZ251LWdjYy4uLiB4ODZfNjQtcGMtbGludXgtZ251LWdj YwpjaGVja2luZyBmb3IgQyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUuLi4gYS5v dXQKY2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciB3b3Jrcy4uLiBjb25maWd1cmU6IGVy cm9yOiBjYW5ub3QgcnVuIEMgY29tcGlsZWQgcHJvZ3JhbXMuCklmIHlvdSBtZWFudCB0byBjcm9z cyBjb21waWxlLCB1c2UgYC0taG9zdCcuClNlZSBgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWls cy4KCiEhISBQbGVhc2UgYXR0YWNoIHRoZSBmb2xsb3dpbmcgZmlsZSB3aGVuIHNlZWtpbmcgc3Vw cG9ydDoKISEhIC92YXIvdG1wL3BvcnRhZ2UvYXBwLWVtdWxhdGlvbi93aW5lLTAuOS41Ny93b3Jr L3dpbmUtMC45LjU3L2NvbmZpZy5sb2cKIBtbMzE7MDFtKhtbMG0gCiAbWzMxOzAxbSobWzBtIEVS Uk9SOiBhcHAtZW11bGF0aW9uL3dpbmUtMC45LjU3IGZhaWxlZC4KIBtbMzE7MDFtKhtbMG0gQ2Fs bCBzdGFjazoKIBtbMzE7MDFtKhtbMG0gICAgICAgICAgICAgICBlYnVpbGQuc2gsIGxpbmUgICA0 OTogIENhbGxlZCBzcmNfY29tcGlsZQogG1szMTswMW0qG1swbSAgICAgICAgICAgICBlbnZpcm9u bWVudCwgbGluZSAyNDYwOiAgQ2FsbGVkIGVjb25mICdzcmNfY29tcGlsZScgJ3NyY19jb21waWxl JyAnLS1zeXNjb25mZGlyPS9ldGMvd2luZScgJy0td2l0aC1jdXJzZXMnCiAbWzMxOzAxbSobWzBt ICAgICAgICAgICAgICAgZWJ1aWxkLnNoLCBsaW5lICA1MTM6ICBDYWxsZWQgZGllCiAbWzMxOzAx bSobWzBtIFRoZSBzcGVjaWZpYyBzbmlwcGV0IG9mIGNvZGU6CiAbWzMxOzAxbSobWzBtICAgCQkJ ZGllICJlY29uZiBmYWlsZWQiCiAbWzMxOzAxbSobWzBtICBUaGUgZGllIG1lc3NhZ2U6CiAbWzMx OzAxbSobWzBtICAgZWNvbmYgZmFpbGVkCiAbWzMxOzAxbSobWzBtIAogG1szMTswMW0qG1swbSBJ ZiB5b3UgbmVlZCBzdXBwb3J0LCBwb3N0IHRoZSB0b3Btb3N0IGJ1aWxkIGVycm9yLCBhbmQgdGhl IGNhbGwgc3RhY2sgaWYgcmVsZXZhbnQuCiAbWzMxOzAxbSobWzBtIEEgY29tcGxldGUgYnVpbGQg bG9nIGlzIGxvY2F0ZWQgYXQgJy92YXIvdG1wL3BvcnRhZ2UvYXBwLWVtdWxhdGlvbi93aW5lLTAu OS41Ny90ZW1wL2J1aWxkLmxvZycuCiAbWzMxOzAxbSobWzBtIFRoZSBlYnVpbGQgZW52aXJvbm1l bnQgZmlsZSBpcyBsb2NhdGVkIGF0ICcvdmFyL3RtcC9wb3J0YWdlL2FwcC1lbXVsYXRpb24vd2lu ZS0wLjkuNTcvdGVtcC9lbnZpcm9ubWVudCcuCiAbWzMxOzAxbSobWzBtIAo= ------=_Part_2118_2077346.1205317415824 Content-Type: application/octet-stream; name=environment Content-Transfer-Encoding: base64 X-Attachment-Id: f_fdpi2ve71 Content-Disposition: attachment; filename=environment QUJJPWFtZDY0CkFMU0FfQ0FSRFM9J2FsaTU0NTEgYWxzNDAwMCBhdGlpeHAgYXRpaXhwLW1vZGVt IGJ0ODd4IGNhMDEwNiBjbWlwY2kgZW11MTBrMXggZW5zMTM3MCBlbnMxMzcxIGVzMTkzOCBlczE5 NjggZm04MDEgaGRhLWludGVsIGludGVsOHgwIGludGVsOHgwbSBtYWVzdHJvMyB0cmlkZW50IHVz Yi1hdWRpbyB2aWE4Mnh4IHZpYTgyeHgtbW9kZW0geW1mcGNpJwpBTFNBX1BDTV9QTFVHSU5TPSdh ZHBjbSBhbGF3IGFzeW0gY29weSBkbWl4IGRzaGFyZSBkc25vb3AgZW1wdHkgZXh0cGx1ZyBmaWxl IGhvb2tzIGllYzk1OCBpb3BsdWcgbGFkc3BhIGxmbG9hdCBsaW5lYXIgbWV0ZXIgbXVsYXcgbXVs dGkgbnVsbCBwbHVnIHJhdGUgcm91dGUgc2hhcmUgc2htIHNvZnR2b2wnCkFOVF9IT01FPS91c3Iv c2hhcmUvYW50LWNvcmUKQVBBQ0hFMl9NT0RVTEVTPSdhY3Rpb25zIGFsaWFzIGF1dGhfYmFzaWMg YXV0aG5fYWxpYXMgYXV0aG5fYW5vbiBhdXRobl9kYm0gYXV0aG5fZGVmYXVsdCBhdXRobl9maWxl IGF1dGh6X2RibSBhdXRoel9kZWZhdWx0IGF1dGh6X2dyb3VwZmlsZSBhdXRoel9ob3N0IGF1dGh6 X293bmVyIGF1dGh6X3VzZXIgYXV0b2luZGV4IGNhY2hlIGRhdiBkYXZfZnMgZGF2X2xvY2sgZGVm bGF0ZSBkaXIgZGlza19jYWNoZSBlbnYgZXhwaXJlcyBleHRfZmlsdGVyIGZpbGVfY2FjaGUgZmls dGVyIGhlYWRlcnMgaW5jbHVkZSBpbmZvIGxvZ19jb25maWcgbG9naW8gbWVtX2NhY2hlIG1pbWUg bWltZV9tYWdpYyBuZWdvdGlhdGlvbiByZXdyaXRlIHNldGVudmlmIHNwZWxpbmcgc3RhdHVzIHVu aXF1ZV9pZCB1c2VyZGlyIHVzZXJ0cmFjayB2aG9zdF9hbGlhcycKQVJDSD1hbWQ2NApBU0ZMQUdT X3g4Nj0tLTMyCkNCVUlMRD14ODZfNjQtcGMtbGludXgtZ251CkNERUZJTkVfYW1kNjQ9X194ODZf NjRfXwpDREVGSU5FX2RlZmF1bHQ9X191bml4X18KQ0RFRklORV94ODY9X19pMzg2X18KQ0ZMQUdT PSctTzIgLW1hcmNoPXg4Ni02NCAtcGlwZScKQ0ZMQUdTX2RlZmF1bHQ9CkNGTEFHU194ODY9Jy1t MzIgLUwvZW11bC9saW51eC94ODYvbGliIC1ML2VtdWwvbGludXgveDg2L3Vzci9saWInCkNIT1NU PXg4Nl82NC1wYy1saW51eC1nbnUKQ0hPU1RfYW1kNjQ9eDg2XzY0LXBjLWxpbnV4LWdudQpDSE9T VF9kZWZhdWx0PXg4Nl82NC1wYy1saW51eC1nbnUKQ0hPU1RfeDg2PWk2ODYtcGMtbGludXgtZ251 CkNMQVNTUEFUSD0uCkNUQVJHRVRfZGVmYXVsdD14ODZfNjQtcGMtbGludXgtZ251CkNWU19SU0g9 c3NoCkNYWEZMQUdTPSctTzIgLW1hcmNoPXg4Ni02NCAtcGlwZScKREJVU19TRVNTSU9OX0JVU19B RERSRVNTPXVuaXg6YWJzdHJhY3Q9L3RtcC9kYnVzLUVJR1dHYjJGaDcsZ3VpZD0zMzc3OWY5Nzgx ZTJlM2M3NDE1Y2Q2NWY0N2Q1NzUwYwpEQlVTX1NFU1NJT05fQlVTX1BJRD0yNTcyNgpEQ0NDX1BB VEg9L3Vzci9saWIvZGlzdGNjL2JpbgpERUZBVUxUX0FCST1hbWQ2NApERVBFTkQ9JCc+PW1lZGlh LWxpYnMvZnJlZXR5cGUtMi4wLjBcblx0bWVkaWEtZm9udHMvY29yZWZvbnRzXG5cdG5jdXJzZXM/ ICggPj1zeXMtbGlicy9uY3Vyc2VzLTUuMiApXG5cdGphY2s/ICggbWVkaWEtc291bmQvamFjay1h dWRpby1jb25uZWN0aW9uLWtpdCApXG5cdGRidXM/ICggc3lzLWFwcHMvZGJ1cyApXG5cdGhhbD8g KCBzeXMtYXBwcy9oYWwgKVxuXHRYPyAoXG5cdFx0eDExLWxpYnMvbGliWGN1cnNvclxuXHRcdHgx MS1saWJzL2xpYlhyYW5kclxuXHRcdHgxMS1saWJzL2xpYlhpXG5cdFx0eDExLWxpYnMvbGliWG11 XG5cdFx0eDExLWxpYnMvbGliWHhmODZ2bVxuXHRcdHgxMS1hcHBzL3htZXNzYWdlXG5cdClcblx0 YWxzYT8gKCBtZWRpYS1saWJzL2Fsc2EtbGliIClcblx0ZXNkPyAoIG1lZGlhLXNvdW5kL2Vzb3Vu ZCApXG5cdG5hcz8gKCBtZWRpYS1saWJzL25hcyApXG5cdGN1cHM/ICggbmV0LXByaW50L2N1cHMg KVxuXHRvcGVuZ2w/ICggdmlydHVhbC9vcGVuZ2wgKVxuXHRqcGVnPyAoIG1lZGlhLWxpYnMvanBl ZyApXG5cdGxkYXA/ICggbmV0LW5kcy9vcGVubGRhcCApXG5cdGxjbXM/ICggbWVkaWEtbGlicy9s Y21zIClcblx0c2FtYmE/ICggPj1uZXQtZnMvc2FtYmEtMy4wLjI1IClcblx0eG1sPyAoIGRldi1s aWJzL2xpYnhtbDIgZGV2LWxpYnMvbGlieHNsdCApXG5cdHNjYW5uZXI/ICggbWVkaWEtZ2Z4L3Nh bmUtYmFja2VuZHMgKVxuXHRhbWQ2ND8gKFxuXHRcdD49YXBwLWVtdWxhdGlvbi9lbXVsLWxpbnV4 LXg4Ni14bGlicy0yLjFcblx0XHQ+PWFwcC1lbXVsYXRpb24vZW11bC1saW51eC14ODYtc291bmRs aWJzLTIuMVxuXHRcdD49c3lzLWtlcm5lbC9saW51eC1oZWFkZXJzLTIuNlxuXHQpXG5cdD49bWVk aWEtZ2Z4L2ZvbnRmb3JnZS0yMDA2MDcwM1xuXHRYPyAoXG5cdFx0eDExLXByb3RvL2lucHV0cHJv dG9cblx0XHR4MTEtcHJvdG8veGV4dHByb3RvXG5cdFx0eDExLXByb3RvL3hmODZ2aWRtb2RlcHJv dG9cblx0KVxuXHRzeXMtZGV2ZWwvYmlzb25cblx0c3lzLWRldmVsL2ZsZXggJwpERVNDUklQVElP Tj0nZnJlZSBpbXBsZW1lbnRhdGlvbiBvZiBXaW5kb3dzKHRtKSBvbiBVbml4JwpERVNLVE9QX1NF U1NJT049Z25vbWUKREVTS1RPUF9TVEFSVFVQX0lEPQpERVNUVFJFRT0vdXNyCkRJUk9QVElPTlM9 LW0wNzU1CkVBUEk9MQpFTElCQz1nbGliYwpFUEFUQ0hfRVhDTFVERT0KRVBBVENIX0ZPUkNFPW5v CkVQQVRDSF9NVUxUSV9NU0c9J0FwcGx5aW5nIHZhcmlvdXMgcGF0Y2hlcyAoYnVnZml4ZXMvdXBk YXRlcykgLi4uJwpFUEFUQ0hfT1BUUz0nLWcwIC1FIC0tbm8tYmFja3VwLWlmLW1pc21hdGNoJwpF UEFUQ0hfU0lOR0xFX01TRz0KRVBBVENIX1NPVVJDRT0vdmFyL3RtcC9wb3J0YWdlL2FwcC1lbXVs YXRpb24vd2luZS0wLjkuNTcvd29yay9wYXRjaApFUEFUQ0hfU1VGRklYPXBhdGNoLmJ6MgpFWEVP UFRJT05TPS1tMDc1NQpGRUFUVVJFUz0nZGlzdGxvY2tzIG1ldGFkYXRhLXRyYW5zZmVyIHBhcmFs bGVsLWZldGNoIHNhbmRib3ggc2ZwZXJtcyBzdHJpY3QgdW5tZXJnZS1vcnBoYW5zIHVzZXJmZXRj aCcKRkxUS19ET0NESVI9L3Vzci9zaGFyZS9kb2MvZmx0ay0xLjEuNy9odG1sCkdDQ19TUEVDUz0K R0RLX1VTRV9YRlQ9MQpHRE1TRVNTSU9OPWdub21lCkdETV9MQU5HPWVuX1VTLlVURi04CkdETV9Y U0VSVkVSX0xPQ0FUSU9OPWxvY2FsCkdFTkVSQVRJT049MgpHTk9NRV9ERVNLVE9QX1NFU1NJT05f SUQ9RGVmYXVsdApHTk9NRV9LRVlSSU5HX1NPQ0tFVD0vdG1wL2tleXJpbmctUThpVGtYL3NvY2tl dApHVEtfTU9EVUxFUz1nbm9tZWJyZWFrcGFkCkdUS19SQ19GSUxFUz0vZXRjL2d0ay9ndGtyYzov aG9tZS9ib2IvLmd0a3JjLTEuMi1nbm9tZTIKR1VJTEVfTE9BRF9QQVRIPS91c3Ivc2hhcmUvZ3Vp bGUvMS44CkhPTUVQQUdFPWh0dHA6Ly93d3cud2luZWhxLmNvbS8KSU5IRVJJVEVEPSdtdWx0aWxp YiB0b29sY2hhaW4tZnVuY3MgZXV0aWxzIHBvcnRhYmlsaXR5IGZsYWctby1tYXRpYycKSU5QVVRf REVWSUNFUz0na2V5Ym9hcmQgbW91c2UnCklOU0RFU1RUUkVFPQpJTlNPUFRJT05TPS1tMDY0NApJ VVNFPScgYWxzYSBjdXBzIGRidXMgZXNkIGdlY2tvIGhhbCBqYWNrIGpwZWcgbGNtcyBsZGFwIG5h cyBuY3Vyc2VzIG9wZW5nbCBvc3Mgc2FtYmEgc2Nhbm5lciB4bWwgWCcKSkFWQUM9L2V0Yy9qYXZh LWNvbmZpZy0yL2N1cnJlbnQtc3lzdGVtLXZtL2Jpbi9qYXZhYwpKQVZBX0hPTUU9L2V0Yy9qYXZh LWNvbmZpZy0yL2N1cnJlbnQtc3lzdGVtLXZtCkpES19IT01FPS9ldGMvamF2YS1jb25maWctMi9j dXJyZW50LXN5c3RlbS12bQpLREVESVJTPS91c3I6L3Vzci9sb2NhbDovdXNyL2tkZS80LjA6L3Vz ci9rZGUvMy41CktFUk5FTD1saW51eApLRVJORUxfQUJJPWFtZDY0CktFWVdPUkRTPSctKiB+YW1k NjQgfng4NiB+eDg2LWZic2QnCktWPTIuNi4yNC4yCkxBRFNQQV9QQVRIPS91c3IvbGliNjQvbGFk c3BhCkxBTkc9ZW5fVVMuVVRGLTgKTEFOR1VBR0U9ZW5fVVMuVVRGLTgKTENEX0RFVklDRVM9J2Jh eXJhZCBjZm9udHogY2ZvbnR6NjMzIGdsayBoZDQ0NzgwIGxiMjE2IGxjZG0wMDEgbXR4b3JiIG5j dXJzZXMgdGV4dCcKTENfQUxMPWVuX1VTLlVURi04CkxERkxBR1M9Jy1XbCwtTzEgLVdsLC0tZW5h YmxlLW5ldy1kdGFncyAtV2wsLS1zb3J0LWNvbW1vbiAtcycKTERGTEFHU19kZWZhdWx0PQpMREZM QUdTX3g4Nj0nLW0gZWxmX2kzODYgLUwvZW11bC9saW51eC94ODYvbGliIC1ML2VtdWwvbGludXgv eDg2L3Vzci9saWInCkxJQkRJUl9hbWQ2ND1saWI2NApMSUJESVJfZGVmYXVsdD1saWIKTElCRElS X3g4Nj1saWIzMgpMSUJHTF9EUklWRVJTX1BBVEg9L3Vzci9saWI2NC9kcmk6L3Vzci9saWIzMi9k cmkKTElCT1BUSU9OUz0tbTA2NDQKTElDRU5TRT1MR1BMLTIuMQpMSU5HVUFTPWVuCkxJUkNfREVW SUNFUz0nYXVkaW8gYXVkaW9fYWxzYScKTUFLRU9QVFM9LWozCk1VTFRJTElCX0FCSVM9J2FtZDY0 IHg4NicKTVVMVElMSUJfU1RSSUNUX0RFTlk9JzY0LWJpdC4qc2hhcmVkIG9iamVjdCcKTVVMVElM SUJfU1RSSUNUX0RJUlM9Jy9saWIgL3Vzci9saWIgL3Vzci9rZGUvKi9saWIgL3Vzci9xdC8qL2xp YiAvdXNyL1gxMVI2L2xpYicKTVVMVElMSUJfU1RSSUNUX0VYRU1QVD0nKHBlcmw1fGdjY3xnY2Mt bGlifGJpbnV0aWxzfGVjbGlwc2UtM3xkZWJ1Z3xwb3J0YWdlKScKT1BFTkdMX1BST0ZJTEU9bnZp ZGlhClBERVBFTkQ9JyAnClBLR19DT05GSUdfUEFUSD0vdXNyL3F0LzMvbGliNjQvcGtnY29uZmln ClBPUlRBR0VfTklDRU5FU1M9OApQUkVMSU5LX1BBVEhfTUFTSz0vdXNyL2xpYi9nc3RyZWFtZXIt MC44Oi91c3IvbGliNjQva2xpYmMKUFJPVklERT0KUFlUSE9OUEFUSD0vdXNyL2xpYjY0L3BvcnRh Z2UvcHltClFNQUtFU1BFQz1saW51eC1nKysKUVRESVI9L3Vzci9xdC8zClJERVBFTkQ9JCc+PW1l ZGlhLWxpYnMvZnJlZXR5cGUtMi4wLjBcblx0bWVkaWEtZm9udHMvY29yZWZvbnRzXG5cdG5jdXJz ZXM/ICggPj1zeXMtbGlicy9uY3Vyc2VzLTUuMiApXG5cdGphY2s/ICggbWVkaWEtc291bmQvamFj ay1hdWRpby1jb25uZWN0aW9uLWtpdCApXG5cdGRidXM/ICggc3lzLWFwcHMvZGJ1cyApXG5cdGhh bD8gKCBzeXMtYXBwcy9oYWwgKVxuXHRYPyAoXG5cdFx0eDExLWxpYnMvbGliWGN1cnNvclxuXHRc dHgxMS1saWJzL2xpYlhyYW5kclxuXHRcdHgxMS1saWJzL2xpYlhpXG5cdFx0eDExLWxpYnMvbGli WG11XG5cdFx0eDExLWxpYnMvbGliWHhmODZ2bVxuXHRcdHgxMS1hcHBzL3htZXNzYWdlXG5cdClc blx0YWxzYT8gKCBtZWRpYS1saWJzL2Fsc2EtbGliIClcblx0ZXNkPyAoIG1lZGlhLXNvdW5kL2Vz b3VuZCApXG5cdG5hcz8gKCBtZWRpYS1saWJzL25hcyApXG5cdGN1cHM/ICggbmV0LXByaW50L2N1 cHMgKVxuXHRvcGVuZ2w/ICggdmlydHVhbC9vcGVuZ2wgKVxuXHRqcGVnPyAoIG1lZGlhLWxpYnMv anBlZyApXG5cdGxkYXA/ICggbmV0LW5kcy9vcGVubGRhcCApXG5cdGxjbXM/ICggbWVkaWEtbGli cy9sY21zIClcblx0c2FtYmE/ICggPj1uZXQtZnMvc2FtYmEtMy4wLjI1IClcblx0eG1sPyAoIGRl di1saWJzL2xpYnhtbDIgZGV2LWxpYnMvbGlieHNsdCApXG5cdHNjYW5uZXI/ICggbWVkaWEtZ2Z4 L3NhbmUtYmFja2VuZHMgKVxuXHRhbWQ2ND8gKFxuXHRcdD49YXBwLWVtdWxhdGlvbi9lbXVsLWxp bnV4LXg4Ni14bGlicy0yLjFcblx0XHQ+PWFwcC1lbXVsYXRpb24vZW11bC1saW51eC14ODYtc291 bmRsaWJzLTIuMVxuXHRcdD49c3lzLWtlcm5lbC9saW51eC1oZWFkZXJzLTIuNlxuXHQpICcKUkVT VFJJQ1Q9dGVzdApSVUJZT1BUPS1yYXV0b19nZW0KUz0vdmFyL3RtcC9wb3J0YWdlL2FwcC1lbXVs YXRpb24vd2luZS0wLjkuNTcvd29yay93aW5lLTAuOS41NwpTQU5EQk9YX0RFTlk9L2V0Yy9sZC5z by5wcmVsb2FkClNBTkRCT1hfUFJFRElDVD06L2Rldi9jb25zb2xlOi9kZXYvcmFuZG9tOi9wcm9j L3NlbGYvbWFwczovdXNyL2xpYjY0L3BvcnRhZ2UvcHltOi91c3IvbGliL3B5dGhvbjIuMC86L3Vz ci9saWIvcHl0aG9uMi4xLzovdXNyL2xpYi9weXRob24yLjIvOi91c3IvbGliL3B5dGhvbjIuMy86 L3Vzci9saWIvcHl0aG9uMi40LzovdXNyL2xpYi9weXRob24yLjUvOi91c3IvbGliL3B5dGhvbjMu MC86L3Zhci9jYWNoZS9lZGIvZGVwOi92YXIvZGIvYWxpYXNlcy5kYjovdmFyL2RiL2V0aGVycy5k YjovdmFyL2RiL2dyb3VwLmRiOi92YXIvZGIvaG9zdHMuZGI6L3Zhci9kYi9uZXRncm91cC5kYjov dmFyL2RiL25ldG1hc2tzLmRiOi92YXIvZGIvbmV0d29ya3MuZGI6L3Zhci9kYi9wYXNzd2QuZGI6 L3Zhci9kYi9wcm90b2NvbHMuZGI6L3Zhci9kYi9ycGMuZGI6L3Zhci9kYi9zZXJ2aWNlcy5kYjov dmFyL3RtcC9wb3J0YWdlL2FwcC1lbXVsYXRpb24vd2luZS0wLjkuNTcvaG9tZWRpci8uOgpTQU5E Qk9YX1JFQUQ9Oi86L2Rldi9zaG06L2Rldi9zdGRpbjovdmFyL3RtcDoKU0FOREJPWF9XUklURT06 L2Rldi9jb25zb2xlOi9kZXYvZmQ6L2Rldi9udWxsOi9kZXYvcHRzLzovZGV2L3B0eTovZGV2L3No bTovZGV2L3NobS9uZ3B0Oi9kZXYvc3RkZXJyOi9kZXYvc3Rkb3V0Oi9kZXYvdHRzOi9kZXYvdHR5 Oi9kZXYvdmMvOi9kZXYvemVybzovcHJvYy9zZWxmL2ZkOi90bXA6L3RtcC86L3Vzci9saWIzMi9j ZjovdXNyL2xpYjMyL2NvbmZ0ZXN0Oi91c3IvbGliNjQvY2Y6L3Vzci9saWI2NC9jb25mdGVzdDov dXNyL2xpYi9jZjovdXNyL2xpYi9jb25mdGVzdDovdXNyL3RtcC9jZjovdXNyL3RtcC9jb25mdGVz dDovdmFyL2xvZy9zY3JvbGxrZWVwZXIubG9nOi92YXIvdG1wOi92YXIvdG1wLzovdmFyL3RtcC9w b3J0YWdlL2FwcC1lbXVsYXRpb24vd2luZS0wLjkuNTcvaG9tZWRpci8uYmFzaF9oaXN0b3J5Oi92 YXIvdG1wL3BvcnRhZ2UvYXBwLWVtdWxhdGlvbi93aW5lLTAuOS41Ny9ob21lZGlyLy5nY29uZmQv bG9jazoKU0FORV9DT05GSUdfRElSPS9ldGMvc2FuZS5kClNDSEVNRV9MSUJSQVJZX1BBVEg9L3Vz ci9zaGFyZS9zbGliLwpTRVNTSU9OX01BTkFHRVI9bG9jYWwvamF2YTovdG1wLy5JQ0UtdW5peC8y NTcwMgpTTE9UPTAKU1JDX1VSST0kJ21pcnJvcjovL3NvdXJjZWZvcmdlL3dpbmUvd2luZS0wLjku NTcudGFyLmJ6MlxuXHRnZWNrbz8gKCBtaXJyb3I6Ly9zb3VyY2Vmb3JnZS93aW5lL3dpbmVfZ2Vj a28tMC4xLjAuY2FiICknClNUQUdFMV9VU0U9J25wdGwgbnB0bG9ubHkgdW5pY29kZScKU1lNTElO S19MSUI9eWVzClNZU0ZPTlQ9bGF0YXJjeXJoZWItc3VuMTYKVVNCX0RFVkZTX1BBVEg9L2Rldi9i dXMvdXNiClVTRT0nWCBhbHNhIGFtZDY0IGN1cHMgZWxpYmNfZ2xpYmMgZXNkIGdlY2tvIGphY2sg anBlZyBrZXJuZWxfbGludXggbGRhcCBuY3Vyc2VzIG9wZW5nbCBvc3Mgc2FtYmEgdXNlcmxhbmRf R05VIHhtbCcKVVNFUkxBTkQ9R05VClVTRVJOQU1FPWJvYgpWSURFT19DQVJEUz0nZmJkZXYgbnYg djRsIHZlc2EgdmdhIG52aWRpYScKVk1IQU5ETEU9YmxhY2tkb3duLWpkay0xLjQuMgpXSU5ET1dJ RD00ODIzNDU4NApXSU5ET1dQQVRIPTcKWENVUlNPUlNfVEhFTUU9Qmx1ZQpYREdfREFUQV9ESVJT PS91c3Ivc2hhcmU6L3Vzci9rZGUvNC4wL3NoYXJlOi91c3IvbG9jYWwvc2hhcmU6L3Vzci9rZGUv My41L3NoYXJlClhFUkNFU0NfTkxTX0hPTUU9L3Vzci9zaGFyZS94ZXJjZXMtYy9tc2cKWFBTRVJW RVJMSVNUPQpfPV9SQ19HRVRfS1ZfQ0FDSEUKX0VfRE9DREVTVFRSRUVfPQpfRV9FWEVERVNUVFJF RV89Cl9fX0VDTEFTU19SRUNVUl9NVUxUSUxJQj15ZXMKX19fRUNMQVNTX1JFQ1VSX1RPT0xDSEFJ Tl9GVU5DUz15ZXMKX3BpcGVzdGF0dXM9JzAgMCcKY29uZj13aW5lLTAuOS41Ny1yMApfY2Ryb21f bG9jYXRlX2ZpbGVfb25fY2QgKCkgCnsgCiAgICBsb2NhbCBtbGluZT0iIjsKICAgIGxvY2FsIHNo b3dlZG1zZz0wIHNob3dqb2xpZXRtc2c9MDsKICAgIHdoaWxlIFtbIC16ICR7Q0RST01fUk9PVH0g XV07IGRvCiAgICAgICAgbG9jYWwgaT0wOwogICAgICAgIGxvY2FsIC1hIGNkc2V0PSgkeyovLzov IH0pOwogICAgICAgIGlmIFtbIC1uICR7Q0RST01fU0VUfSBdXTsgdGhlbgogICAgICAgICAgICBj ZHNldD0oJHtjZHNldFske0NEUk9NX1NFVH1dfSk7CiAgICAgICAgZmk7CiAgICAgICAgd2hpbGUg W1sgLW4gJHtjZHNldFske2l9XX0gXV07IGRvCiAgICAgICAgICAgIGxvY2FsIGRpcj0kKGRpcm5h bWUgJHtjZHNldFske2l9XX0pOwogICAgICAgICAgICBsb2NhbCBmaWxlPSQoYmFzZW5hbWUgJHtj ZHNldFske2l9XX0pOwogICAgICAgICAgICBsb2NhbCBwb2ludD0gbm9kZT0gZnM9IGZvbz07CiAg ICAgICAgICAgIHdoaWxlIHJlYWQgcG9pbnQgbm9kZSBmcyBmb287IGRvCiAgICAgICAgICAgICAg ICBbWyAiIGNkOTY2MCBpc285NjYwIHVkZiAiICE9ICoiICR7ZnN9ICIqIF1dICYmICEgW1sgJHtm c30gPT0gInN1YmZzIiAmJiAiLCR7b3B0c30sIiA9PSAqIixmcz1jZGZzcywiKiBdXSAmJiBjb250 aW51ZTsKICAgICAgICAgICAgICAgIHBvaW50PSR7cG9pbnQvL1wwNDAvIH07CiAgICAgICAgICAg ICAgICBbWyAhIC1kICR7cG9pbnR9LyR7ZGlyfSBdXSAmJiBjb250aW51ZTsKICAgICAgICAgICAg ICAgIFtbIC16ICQoZmluZCAiJHtwb2ludH0vJHtkaXJ9IiAtbWF4ZGVwdGggMSAtaW5hbWUgIiR7 ZmlsZX0iKSBdXSAmJiBjb250aW51ZTsKICAgICAgICAgICAgICAgIGV4cG9ydCBDRFJPTV9ST09U PSR7cG9pbnR9OwogICAgICAgICAgICAgICAgZXhwb3J0IENEUk9NX1NFVD0ke2l9OwogICAgICAg ICAgICAgICAgZXhwb3J0IENEUk9NX01BVENIPSR7Y2RzZXRbJHtpfV19OwogICAgICAgICAgICAg ICAgcmV0dXJuOwogICAgICAgICAgICBkb25lIDw8PCAiJChnZXRfbW91bnRzKSI7CiAgICAgICAg ICAgICgoKytpKSk7CiAgICAgICAgZG9uZTsKICAgICAgICBlY2hvOwogICAgICAgIGlmIFtbICR7 c2hvd2VkbXNnfSAtZXEgMCBdXTsgdGhlbgogICAgICAgICAgICBpZiBbWyAke0NEUk9NX1RPVEFM X0NEU30gLWVxIDEgXV07IHRoZW4KICAgICAgICAgICAgICAgIGlmIFtbIC16ICR7Q0RST01fTkFN RX0gXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICBlaW5mbyAiUGxlYXNlIGluc2VydCttb3Vu dCB0aGUgY2Ryb20gZm9yICR7UE59IG5vdyAhIjsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAg ICAgICAgICAgICAgICBlaW5mbyAiUGxlYXNlIGluc2VydCttb3VudCB0aGUgJHtDRFJPTV9OQU1F fSBjZHJvbSBub3cgISI7CiAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgZWxzZQogICAg ICAgICAgICAgICAgaWYgW1sgLXogJHtDRFJPTV9OQU1FXzF9IF1dOyB0aGVuCiAgICAgICAgICAg ICAgICAgICAgZWluZm8gIlBsZWFzZSBpbnNlcnQrbW91bnQgY2QgIyR7Q0RST01fQ1VSUkVOVF9D RH0gZm9yICR7UE59IG5vdyAhIjsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg ICAgICBsb2NhbCB2YXI9IkNEUk9NX05BTUVfJHtDRFJPTV9DVVJSRU5UX0NEfSI7CiAgICAgICAg ICAgICAgICAgICAgZWluZm8gIlBsZWFzZSBpbnNlcnQrbW91bnQgdGhlICR7IXZhcn0gY2Ryb20g bm93ICEiOwogICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgIGZpOwogICAgICAgICAgICBz aG93ZWRtc2c9MTsKICAgICAgICBmaTsKICAgICAgICBlaW5mbyAiUHJlc3MgcmV0dXJuIHRvIHNj YW4gZm9yIHRoZSBjZCBhZ2FpbiI7CiAgICAgICAgZWluZm8gIm9yIGhpdCBDVFJMK0MgdG8gYWJv cnQgdGhlIGVtZXJnZS4iOwogICAgICAgIGVjaG87CiAgICAgICAgaWYgW1sgJHtzaG93am9saWV0 bXNnfSAtZXEgMCBdXTsgdGhlbgogICAgICAgICAgICBzaG93am9saWV0bXNnPTE7CiAgICAgICAg ZWxzZQogICAgICAgICAgICBld2FybiAiSWYgeW91IGFyZSBoYXZpbmcgdHJvdWJsZSB3aXRoIHRo ZSBkZXRlY3Rpb24iOwogICAgICAgICAgICBld2FybiAib2YgeW91ciBDRCwgaXQgaXMgcG9zc2li bGUgdGhhdCB5b3UgZG8gbm90IGhhdmUiOwogICAgICAgICAgICBld2FybiAiSm9saWV0IHN1cHBv cnQgZW5hYmxlZCBpbiB5b3VyIGtlcm5lbC4gIFBsZWFzZSI7CiAgICAgICAgICAgIGV3YXJuICJj aGVjayB0aGF0IENPTkZJR19KT0xJRVQgaXMgZW5hYmxlZCBpbiB5b3VyIGtlcm5lbC4iOwogICAg ICAgICAgICBlYmVlcCA1OwogICAgICAgIGZpOwogICAgICAgIHJlYWQgfHwgZGllICJzb21ldGhp bmcgaXMgc2NyZXdlZCB3aXRoIHlvdXIgc3lzdGVtIjsKICAgIGRvbmUKfQpfZXBhdGNoX2Fzc2Vy dCAoKSAKeyAKICAgIGxvY2FsIF9waXBlc3RhdHVzPSR7UElQRVNUQVRVU1sqXX07CiAgICBbWyAk e19waXBlc3RhdHVzLy8gL30gLWVxIDAgXV0KfQpfZXBhdGNoX2RyYXdfbGluZSAoKSAKeyAKICAg IFtbIC16ICQxIF1dICYmIHNldCAiJChwcmludGYgIiU2NXMiICcnKSI7CiAgICBlY2hvICIkezEv Lz8vPX0iCn0KX2ZpbHRlci1oYXJkZW5lZCAoKSAKeyAKICAgIGxvY2FsIGY7CiAgICBmb3IgZiBp biAiJEAiOwogICAgZG8KICAgICAgICBjYXNlICIke2Z9IiBpbiAKICAgICAgICAgICAgLWZQSUMg fCAtZnBpYyB8IC1mUElFIHwgLWZwaWUgfCAtV2wscGllIHwgLXBpZSkKICAgICAgICAgICAgICAg IGdjYy1zcGVjcy1waWUgfHwgY29udGludWU7CiAgICAgICAgICAgICAgICBpcy1mbGFncSAtbm9w aWUgfHwgYXBwZW5kLWZsYWdzIC1ub3BpZQogICAgICAgICAgICA7OwogICAgICAgICAgICAtZnN0 YWNrLXByb3RlY3RvcikKICAgICAgICAgICAgICAgIGdjYy1zcGVjcy1zc3AgfHwgY29udGludWU7 CiAgICAgICAgICAgICAgICBpcy1mbGFncSAtZm5vLXN0YWNrLXByb3RlY3RvciB8fCBhcHBlbmQt ZmxhZ3MgLWZuby1zdGFjay1wcm90ZWN0b3IKICAgICAgICAgICAgOzsKICAgICAgICAgICAgLWZz dGFjay1wcm90ZWN0b3ItYWxsKQogICAgICAgICAgICAgICAgZ2NjLXNwZWNzLXNzcC10by1hbGwg fHwgY29udGludWU7CiAgICAgICAgICAgICAgICBpcy1mbGFncSAtZm5vLXN0YWNrLXByb3RlY3Rv ci1hbGwgfHwgYXBwZW5kLWZsYWdzIC1mbm8tc3RhY2stcHJvdGVjdG9yLWFsbAogICAgICAgICAg ICA7OwogICAgICAgIGVzYWM7CiAgICBkb25lCn0KX2ZpbHRlci12YXIgKCkgCnsgCiAgICBsb2Nh bCBmIHggVkFSIFZBTDsKICAgIGRlY2xhcmUgLWEgbmV3OwogICAgVkFSPSQxOwogICAgc2hpZnQ7 CiAgICBldmFsIFZBTD1cJHske1ZBUn19OwogICAgZm9yIGYgaW4gJHtWQUx9OwogICAgZG8KICAg ICAgICBmb3IgeCBpbiAiJEAiOwogICAgICAgIGRvCiAgICAgICAgICAgIFtbICR7Zn0gPT0gJHt4 fSBdXSAmJiBjb250aW51ZSAyOwogICAgICAgIGRvbmU7CiAgICAgICAgZXZhbCBuZXdcW1wke1wj bmV3XFtAXX1dPVwke2Z9OwogICAgZG9uZTsKICAgIGV2YWwgZXhwb3J0ICR7VkFSfT1cJHtuZXdc WypdfQp9Cl9nY2MtaW5zdGFsbC1kaXIgKCkgCnsgCiAgICBlY2hvICIkKCQodGMtZ2V0Q0MpIC1w cmludC1zZWFyY2gtZGlycyAyPiAvZGV2L251bGwgfAkJYXdrICckMT09Imluc3RhbGw6IiB7cHJp bnQgJDJ9JykiCn0KX2djYy1zcGVjcy1kaXJlY3RpdmVfcmF3ICgpIAp7IAogICAgbG9jYWwgY2M9 JCh0Yy1nZXRDQyk7CiAgICBsb2NhbCBzcGVjZmlsZXM9JChMQ19BTEw9QyAke2NjfSAtdiAyPiYx IHwgYXdrICckMT09IlJlYWRpbmciIHtwcmludCAkTkZ9Jyk7CiAgICAke2NjfSAtZHVtcHNwZWNz IDI+IC9kZXYvbnVsbCB8IGNhdCAtICR7c3BlY2ZpbGVzfSB8IGF3ayAtdiBkaXJlY3RpdmU9JDEg J0JFR0lOCXsgcHNwZWM9IiI7IHNwZWM9IiI7IG91dHNpZGU9MSB9CiQxPT0iKiJkaXJlY3RpdmUi OiIgIHsgcHNwZWM9c3BlYzsgc3BlYz0iIjsgb3V0c2lkZT0wOyBuZXh0IH0KCW91dHNpZGUgfHwg TkY9PTAgfHwgKCBzdWJzdHIoJDEsMSwxKT09IioiICYmIHN1YnN0cigkMSxsZW5ndGgoJDEpLDEp PT0iOiIgKSB7IG91dHNpZGU9MTsgbmV4dCB9CglzcGVjPT0iIiAmJiBzdWJzdHIoJDAsMSwxKT09 IisiIHsgc3BlYz1wc3BlYyAiICIgc3Vic3RyKCQwLDIpOyBuZXh0IH0KCXsgc3BlYz1zcGVjICQw IH0KRU5ECXsgcHJpbnQgc3BlYyB9JzsKICAgIHJldHVybiAwCn0KX2djYy1zcGVjcy1leGlzdHMg KCkgCnsgCiAgICBbWyAtZiAkKF9nY2MtaW5zdGFsbC1kaXIpLyQxIF1dCn0KX2lzX2ZsYWdxICgp IAp7IAogICAgbG9jYWwgeDsKICAgIGZvciB4IGluICR7ITF9OwogICAgZG8KICAgICAgICBbWyAk e3h9ID09ICQyIF1dICYmIHJldHVybiAwOwogICAgZG9uZTsKICAgIHJldHVybiAxCn0KYXBwZW5k LWNwcGZsYWdzICgpIAp7IAogICAgW1sgLXogJCogXV0gJiYgcmV0dXJuIDA7CiAgICBleHBvcnQg Q1BQRkxBR1M9IiR7Q1BQRkxBR1N9ICQqIjsKICAgIHJldHVybiAwCn0KYXBwZW5kLWZsYWdzICgp IAp7IAogICAgW1sgLXogJCogXV0gJiYgcmV0dXJuIDA7CiAgICBleHBvcnQgQ0ZMQUdTPSIke0NG TEFHU30gJCoiOwogICAgZXhwb3J0IENYWEZMQUdTPSIke0NYWEZMQUdTfSAkKiI7CiAgICByZXR1 cm4gMAp9CmFwcGVuZC1sZGZsYWdzICgpIAp7IAogICAgW1sgLXogJCogXV0gJiYgcmV0dXJuIDA7 CiAgICBleHBvcnQgTERGTEFHUz0iJHtMREZMQUdTfSAkKiI7CiAgICByZXR1cm4gMAp9CmFwcGVu ZC1sZnMtZmxhZ3MgKCkgCnsgCiAgICBbWyAtbiAkQCBdXSAmJiBkaWUgImFwcGVuZC1sZnMtZmxh Z3MgdGFrZXMgbm8gYXJndW1lbnRzIjsKICAgIGFwcGVuZC1jcHBmbGFncyAtRF9GSUxFX09GRlNF VF9CSVRTPTY0IC1EX0xBUkdFRklMRV9TT1VSQ0UgLURfTEFSR0VGSUxFNjRfU09VUkNFCn0KYmFz aHJjX2hhcyAoKSAKeyAKICAgIFtbICIgJHsqOjJ9ICIgPT0gKiIgJDEgIiogXV0KfQpiaW5kbm93 LWZsYWdzICgpIAp7IAogICAgZXdhcm4gIlFBOiBzdG9wIHVzaW5nIHRoZSBiaW5kbm93LWZsYWdz IGZ1bmN0aW9uIC4uLiBzaW1wbHkgZHJvcCBpdCBmcm9tIHlvdXIgZWJ1aWxkIiAxPiYyOwogICAg Y2FzZSAkKCQodGMtZ2V0TEQpIC12IDI+JjEgPC9kZXYvbnVsbCkgaW4gCiAgICAgICAgKkdOVSog fCAqJ3dpdGggQkZEJyopCiAgICAgICAgICAgIGVjaG8gIi1XbCwteixub3ciCiAgICAgICAgOzsK ICAgICAgICAqQXBwbGUqKQogICAgICAgICAgICBlY2hvICItYmluZF9hdF9sb2FkIgogICAgICAg IDs7CiAgICAgICAgKikKICAgICAgICAgICAgY2FzZSAkKCQodGMtZ2V0TEQpIC1WIDI+JjEgPC9k ZXYvbnVsbCkgaW4gCiAgICAgICAgICAgICAgICAqU29sYXJpcyopCiAgICAgICAgICAgICAgICAg ICAgZWNobyAiLVdsLC16LG5vdyIKICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgIGVzYWMK ICAgICAgICA7OwogICAgZXNhYwp9CmJ1aWx0X3dpdGhfdXNlICgpIAp7IAogICAgbG9jYWwgaGlk ZGVuPSJubyI7CiAgICBpZiBbWyAkMSA9PSAiLS1oaWRkZW4iIF1dOyB0aGVuCiAgICAgICAgaGlk ZGVuPSJ5ZXMiOwogICAgICAgIHNoaWZ0OwogICAgZmk7CiAgICBsb2NhbCBtaXNzaW5nX2FjdGlv bj0iZGllIjsKICAgIGlmIFtbICQxID09ICItLW1pc3NpbmciIF1dOyB0aGVuCiAgICAgICAgbWlz c2luZ19hY3Rpb249JDI7CiAgICAgICAgc2hpZnQ7CiAgICAgICAgc2hpZnQ7CiAgICAgICAgY2Fz ZSAke21pc3NpbmdfYWN0aW9ufSBpbiAKICAgICAgICAgICAgdHJ1ZSB8IGZhbHNlIHwgZGllKQoK ICAgICAgICAgICAgOzsKICAgICAgICAgICAgKikKICAgICAgICAgICAgICAgIGRpZSAidW5rbm93 biBhY3Rpb24gJyR7bWlzc2luZ19hY3Rpb259JyIKICAgICAgICAgICAgOzsKICAgICAgICBlc2Fj OwogICAgZmk7CiAgICBsb2NhbCBvcHQ9JDE7CiAgICBbWyAke29wdDowOjF9ID0gIi0iIF1dICYm IHNoaWZ0IHx8IG9wdD0iLWEiOwogICAgbG9jYWwgUEtHPSQoYmVzdF92ZXJzaW9uICQxKTsKICAg IFtbIC16ICR7UEtHfSBdXSAmJiBkaWUgIlVuYWJsZSB0byByZXNvbHZlICQxIHRvIGFuIGluc3Rh bGxlZCBwYWNrYWdlIjsKICAgIHNoaWZ0OwogICAgbG9jYWwgVVNFRklMRT0ke1JPT1R9L3Zhci9k Yi9wa2cvJHtQS0d9L1VTRTsKICAgIGxvY2FsIElVU0VGSUxFPSR7Uk9PVH0vdmFyL2RiL3BrZy8k e1BLR30vSVVTRTsKICAgIGlmIFtbICEgLWUgJHtVU0VGSUxFfSBdXSB8fCBbWyAhIC1lICR7SVVT RUZJTEV9ICYmICR7aGlkZGVufSA9PSAibm8iIF1dOyB0aGVuCiAgICAgICAgY2FzZSAke21pc3Np bmdfYWN0aW9ufSBpbiAKICAgICAgICAgICAgdHJ1ZSkKICAgICAgICAgICAgICAgIHJldHVybiAw CiAgICAgICAgICAgIDs7CiAgICAgICAgICAgIGZhbHNlKQogICAgICAgICAgICAgICAgcmV0dXJu IDEKICAgICAgICAgICAgOzsKICAgICAgICAgICAgZGllKQogICAgICAgICAgICAgICAgZGllICJV bmFibGUgdG8gZGV0ZXJtaW5lIHdoYXQgVVNFIGZsYWdzICRQS0cgd2FzIGJ1aWx0IHdpdGgiCiAg ICAgICAgICAgIDs7CiAgICAgICAgZXNhYzsKICAgIGZpOwogICAgaWYgW1sgJHtoaWRkZW59ID09 ICJubyIgXV07IHRoZW4KICAgICAgICBsb2NhbCBJVVNFX0JVSUxUPSQoPCR7SVVTRUZJTEV9KTsK ICAgICAgICBsb2NhbCBleHBhbmQ7CiAgICAgICAgZm9yIGV4cGFuZCBpbiAkKGVjaG8gJHtVU0Vf RVhQQU5EfSB8IHRyICdbOnVwcGVyOl0nICdbOmxvd2VyOl0nKTsKICAgICAgICBkbwogICAgICAg ICAgICBpZiBbWyAkMSA9PSAke2V4cGFuZH1fKiBdXTsgdGhlbgogICAgICAgICAgICAgICAgZXhw YW5kPSIiOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGZpOwogICAgICAgIGRv bmU7CiAgICAgICAgaWYgW1sgLW4gJHtleHBhbmR9IF1dOyB0aGVuCiAgICAgICAgICAgIGlmICEg aGFzICQxICR7SVVTRV9CVUlMVH07IHRoZW4KICAgICAgICAgICAgICAgIGNhc2UgJHttaXNzaW5n X2FjdGlvbn0gaW4gCiAgICAgICAgICAgICAgICAgICAgdHJ1ZSkKICAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIDAKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAg IGZhbHNlKQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMQogICAgICAgICAgICAgICAg ICAgIDs7CiAgICAgICAgICAgICAgICAgICAgZGllKQogICAgICAgICAgICAgICAgICAgICAgICBk aWUgIiRQS0cgZG9lcyBub3QgYWN0dWFsbHkgc3VwcG9ydCB0aGUgJDEgVVNFIGZsYWchIgogICAg ICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICBlc2FjOwogICAgICAgICAgICBmaTsK ICAgICAgICBmaTsKICAgIGZpOwogICAgbG9jYWwgVVNFX0JVSUxUPSQoPCR7VVNFRklMRX0pOwog ICAgd2hpbGUgW1sgJCMgLWd0IDAgXV07IGRvCiAgICAgICAgaWYgW1sgJHtvcHR9ID0gIi1vIiBd XTsgdGhlbgogICAgICAgICAgICBoYXMgJDEgJHtVU0VfQlVJTFR9ICYmIHJldHVybiAwOwogICAg ICAgIGVsc2UKICAgICAgICAgICAgaGFzICQxICR7VVNFX0JVSUxUfSB8fCByZXR1cm4gMTsKICAg ICAgICBmaTsKICAgICAgICBzaGlmdDsKICAgIGRvbmU7CiAgICBbWyAke29wdH0gPSAiLWEiIF1d Cn0KY2Ryb21fZ2V0X2NkcyAoKSAKeyAKICAgIGxvY2FsIGNkY250PTA7CiAgICBsb2NhbCBmPTsK ICAgIGZvciBmIGluICIkQCI7CiAgICBkbwogICAgICAgICgoKytjZGNudCkpOwogICAgICAgIGV4 cG9ydCBDRFJPTV9DSEVDS18ke2NkY250fT0iJGYiOwogICAgZG9uZTsKICAgIGV4cG9ydCBDRFJP TV9UT1RBTF9DRFM9JHtjZGNudH07CiAgICBleHBvcnQgQ0RST01fQ1VSUkVOVF9DRD0xOwogICAg aWYgW1sgLW4gJHtDRF9ST09UfSR7Q0RfUk9PVF8xfSBdXTsgdGhlbgogICAgICAgIGxvY2FsIHZh cj07CiAgICAgICAgY2RjbnQ9MDsKICAgICAgICB3aGlsZSBbWyAke2NkY250fSAtbHQgJHtDRFJP TV9UT1RBTF9DRFN9IF1dOyBkbwogICAgICAgICAgICAoKCsrY2RjbnQpKTsKICAgICAgICAgICAg dmFyPSJDRF9ST09UXyR7Y2RjbnR9IjsKICAgICAgICAgICAgW1sgLXogJHshdmFyfSBdXSAmJiB2 YXI9IkNEX1JPT1QiOwogICAgICAgICAgICBpZiBbWyAteiAkeyF2YXJ9IF1dOyB0aGVuCiAgICAg ICAgICAgICAgICBlZXJyb3IgIllvdSBtdXN0IGVpdGhlciB1c2UganVzdCB0aGUgQ0RfUk9PVCI7 CiAgICAgICAgICAgICAgICBlZXJyb3IgIm9yIHNwZWNpZnkgQUxMIHRoZSBDRF9ST09UX1ggdmFy aWFibGVzLiI7CiAgICAgICAgICAgICAgICBlZXJyb3IgIkluIHRoaXMgY2FzZSwgeW91IHdpbGwg bmVlZCAke0NEUk9NX1RPVEFMX0NEU30gQ0RfUk9PVF9YIHZhcmlhYmxlcy4iOwogICAgICAgICAg ICAgICAgZGllICJjb3VsZCBub3QgbG9jYXRlIENEX1JPT1RfJHtjZGNudH0iOwogICAgICAgICAg ICBmaTsKICAgICAgICBkb25lOwogICAgICAgIGV4cG9ydCBDRFJPTV9ST09UPSR7Q0RfUk9PVF8x Oi0ke0NEX1JPT1R9fTsKICAgICAgICBlaW5mbyAiRm91bmQgQ0QgIyR7Q0RST01fQ1VSUkVOVF9D RH0gcm9vdCBhdCAke0NEUk9NX1JPT1R9IjsKICAgICAgICBleHBvcnQgQ0RST01fU0VUPS0xOwog ICAgICAgIGZvciBmIGluICR7Q0RST01fQ0hFQ0tfMS8vOi8gfTsKICAgICAgICBkbwogICAgICAg ICAgICAoKCsrQ0RST01fU0VUKSk7CiAgICAgICAgICAgIFtbIC1lICR7Q0RfUk9PVH0vJHtmfSBd XSAmJiBicmVhazsKICAgICAgICBkb25lOwogICAgICAgIGV4cG9ydCBDRFJPTV9NQVRDSD0ke2Z9 OwogICAgICAgIHJldHVybjsKICAgIGZpOwogICAgaWYgW1sgJHtDRFJPTV9UT1RBTF9DRFN9IC1l cSAxIF1dOyB0aGVuCiAgICAgICAgZWluZm8gIlRoaXMgZWJ1aWxkIHdpbGwgbmVlZCB0aGUgJHtD RFJPTV9OQU1FOi1jZHJvbSBmb3IgJHtQTn19IjsKICAgICAgICBlY2hvOwogICAgICAgIGVpbmZv ICJJZiB5b3UgZG8gbm90IGhhdmUgdGhlIENELCBidXQgaGF2ZSB0aGUgZGF0YSBmaWxlcyI7CiAg ICAgICAgZWluZm8gIm1vdW50ZWQgc29tZXdoZXJlIG9uIHlvdXIgZmlsZXN5c3RlbSwganVzdCBl eHBvcnQiOwogICAgICAgIGVpbmZvICJ0aGUgdmFyaWFibGUgQ0RfUk9PVCBzbyB0aGF0IGl0IHBv aW50cyB0byB0aGUiOwogICAgICAgIGVpbmZvICJkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgZmls ZXMuIjsKICAgICAgICBlY2hvOwogICAgICAgIGVpbmZvICJGb3IgZXhhbXBsZToiOwogICAgICAg IGVpbmZvICJleHBvcnQgQ0RfUk9PVD0vbW50L2Nkcm9tIjsKICAgICAgICBlY2hvOwogICAgZWxz ZQogICAgICAgIGlmIFtbIC1uICR7Q0RST01fTkFNRV9TRVR9IF1dOyB0aGVuCiAgICAgICAgICAg IGNkY250PTA7CiAgICAgICAgICAgIHdoaWxlIFtbICR7Y2RjbnR9IC1sdCAke0NEUk9NX1RPVEFM X0NEU30gXV07IGRvCiAgICAgICAgICAgICAgICAoKCsrY2RjbnQpKTsKICAgICAgICAgICAgICAg IGV4cG9ydCBDRFJPTV9OQU1FXyR7Y2RjbnR9PSIke0NEUk9NX05BTUVfU0VUWyQoKCR7Y2RjbnR9 LTEpKV19IjsKICAgICAgICAgICAgZG9uZTsKICAgICAgICBmaTsKICAgICAgICBlaW5mbyAiVGhp cyBwYWNrYWdlIHdpbGwgbmVlZCBhY2Nlc3MgdG8gJHtDRFJPTV9UT1RBTF9DRFN9IGNkcy4iOwog ICAgICAgIGNkY250PTA7CiAgICAgICAgd2hpbGUgW1sgJHtjZGNudH0gLWx0ICR7Q0RST01fVE9U QUxfQ0RTfSBdXTsgZG8KICAgICAgICAgICAgKCgrK2NkY250KSk7CiAgICAgICAgICAgIHZhcj0i Q0RST01fTkFNRV8ke2NkY250fSI7CiAgICAgICAgICAgIFtbICEgLXogJHshdmFyfSBdXSAmJiBl aW5mbyAiIENEICR7Y2RjbnR9OiAkeyF2YXJ9IjsKICAgICAgICBkb25lOwogICAgICAgIGVjaG87 CiAgICAgICAgZWluZm8gIklmIHlvdSBkbyBub3QgaGF2ZSB0aGUgQ0RzLCBidXQgaGF2ZSB0aGUg ZGF0YSBmaWxlcyI7CiAgICAgICAgZWluZm8gIm1vdW50ZWQgc29tZXdoZXJlIG9uIHlvdXIgZmls ZXN5c3RlbSwganVzdCBleHBvcnQiOwogICAgICAgIGVpbmZvICJ0aGUgZm9sbG93aW5nIHZhcmlh YmxlcyBzbyB0aGV5IHBvaW50IHRvIHRoZSByaWdodCBwbGFjZToiOwogICAgICAgIGVpbmZvbiAi IjsKICAgICAgICBjZGNudD0wOwogICAgICAgIHdoaWxlIFtbICR7Y2RjbnR9IC1sdCAke0NEUk9N X1RPVEFMX0NEU30gXV07IGRvCiAgICAgICAgICAgICgoKytjZGNudCkpOwogICAgICAgICAgICBl Y2hvIC1uICIgQ0RfUk9PVF8ke2NkY250fSI7CiAgICAgICAgZG9uZTsKICAgICAgICBlY2hvOwog ICAgICAgIGVpbmZvICJPciwgaWYgeW91IGhhdmUgYWxsIHRoZSBmaWxlcyBpbiB0aGUgc2FtZSBw bGFjZSwgb3IiOwogICAgICAgIGVpbmZvICJ5b3Ugb25seSBoYXZlIG9uZSBjZHJvbSwgeW91IGNh biBleHBvcnQgQ0RfUk9PVCI7CiAgICAgICAgZWluZm8gImFuZCB0aGF0IHBsYWNlIHdpbGwgYmUg dXNlZCBhcyB0aGUgc2FtZSBkYXRhIHNvdXJjZSI7CiAgICAgICAgZWluZm8gImZvciBhbGwgdGhl IENEcy4iOwogICAgICAgIGVjaG87CiAgICAgICAgZWluZm8gIkZvciBleGFtcGxlOiI7CiAgICAg ICAgZWluZm8gImV4cG9ydCBDRF9ST09UXzE9L21udC9jZHJvbSI7CiAgICAgICAgZWNobzsKICAg IGZpOwogICAgZXhwb3J0IENEUk9NX1NFVD0iIjsKICAgIGV4cG9ydCBDRFJPTV9DVVJSRU5UX0NE PTA7CiAgICBjZHJvbV9sb2FkX25leHRfY2QKfQpjZHJvbV9sb2FkX25leHRfY2QgKCkgCnsgCiAg ICBsb2NhbCB2YXI7CiAgICAoKCsrQ0RST01fQ1VSUkVOVF9DRCkpOwogICAgdW5zZXQgQ0RST01f Uk9PVDsKICAgIHZhcj1DRF9ST09UXyR7Q0RST01fQ1VSUkVOVF9DRH07CiAgICBbWyAteiAkeyF2 YXJ9IF1dICYmIHZhcj0iQ0RfUk9PVCI7CiAgICBpZiBbWyAteiAkeyF2YXJ9IF1dOyB0aGVuCiAg ICAgICAgdmFyPSJDRFJPTV9DSEVDS18ke0NEUk9NX0NVUlJFTlRfQ0R9IjsKICAgICAgICBfY2Ry b21fbG9jYXRlX2ZpbGVfb25fY2QgJHshdmFyfTsKICAgIGVsc2UKICAgICAgICBleHBvcnQgQ0RS T01fUk9PVD0keyF2YXJ9OwogICAgZmk7CiAgICBlaW5mbyAiRm91bmQgQ0QgIyR7Q0RST01fQ1VS UkVOVF9DRH0gcm9vdCBhdCAke0NEUk9NX1JPT1R9Igp9CmNoZWNrX2xpY2Vuc2UgKCkgCnsgCiAg ICBsb2NhbCBsaWM9JDE7CiAgICBpZiBbIC16ICIke2xpY30iIF07IHRoZW4KICAgICAgICBsaWM9 IiR7UE9SVERJUn0vbGljZW5zZXMvJHtMSUNFTlNFfSI7CiAgICBlbHNlCiAgICAgICAgaWYgWyAt ZSAiJHtQT1JURElSfS9saWNlbnNlcy8ke2xpY30iIF07IHRoZW4KICAgICAgICAgICAgbGljPSIk e1BPUlRESVJ9L2xpY2Vuc2VzLyR7bGljfSI7CiAgICAgICAgZWxzZQogICAgICAgICAgICBpZiBb IC1lICIke1BXRH0vJHtsaWN9IiBdOyB0aGVuCiAgICAgICAgICAgICAgICBsaWM9IiR7UFdEfS8k e2xpY30iOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBpZiBbIC1lICIke2xpY30i IF07IHRoZW4KICAgICAgICAgICAgICAgICAgICBsaWM9IiR7bGljfSI7CiAgICAgICAgICAgICAg ICBmaTsKICAgICAgICAgICAgZmk7CiAgICAgICAgZmk7CiAgICBmaTsKICAgIFsgISAtZiAiJHts aWN9IiBdICYmIGRpZSAiQ291bGQgbm90IGZpbmQgcmVxdWVzdGVkIGxpY2Vuc2UgJHtsaWN9IjsK ICAgIGxvY2FsIGw9ImBiYXNlbmFtZSAke2xpY31gIjsKICAgIGxvY2FsIHNob3B0cz0kLTsKICAg IGxvY2FsIGFsaWM7CiAgICBzZXQgLW8gbm9nbG9iOwogICAgZm9yIGFsaWMgaW4gJHtBQ0NFUFRf TElDRU5TRX07CiAgICBkbwogICAgICAgIGlmIFtbICR7YWxpY30gPT0gJHtsfSBdXTsgdGhlbgog ICAgICAgICAgICBzZXQgK28gbm9nbG9iOwogICAgICAgICAgICBzZXQgLSR7c2hvcHRzfTsKICAg ICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgZmk7CiAgICBkb25lOwogICAgc2V0ICtvIG5vZ2xv YjsKICAgIHNldCAtJHNob3B0czsKICAgIGxvY2FsIGxpY21zZz0kKGVta3RlbXApOwogICAgY2F0 ID4gJHtsaWNtc2d9ICA8PC1FT0YKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKgpUaGUgZm9sbG93aW5nIGxpY2Vuc2Ugb3V0bGluZXMgdGhl IHRlcm1zIG9mIHVzZSBvZiB0aGlzCnBhY2thZ2UuICBZb3UgTVVTVCBhY2NlcHQgdGhpcyBsaWNl bnNlIGZvciBpbnN0YWxsYXRpb24gdG8KY29udGludWUuICBXaGVuIHlvdSBhcmUgZG9uZSB2aWV3 aW5nLCBoaXQgJ3EnLglJZiB5b3UKQ1RSTCtDIG91dCBvZiB0aGlzLCB0aGUgaW5zdGFsbCB3aWxs IG5vdCBydW4hCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKCkVPRgoKICAgIGNhdCAke2xpY30gPj4gJHtsaWNtc2d9OwogICAgJHtQQUdF UjotbGVzc30gJHtsaWNtc2d9IHx8IGRpZSAiQ291bGQgbm90IGV4ZWN1dGUgcGFnZXIgKCR7UEFH RVJ9KSB0byBhY2NlcHQgJHtsaWN9IjsKICAgIGVpbmZvbiAiRG8geW91IGFjY2VwdCB0aGUgdGVy bXMgb2YgdGhpcyBsaWNlbnNlICgke2x9KT8gW3llcy9ub10gIjsKICAgIHJlYWQgYWxpYzsKICAg IGNhc2UgJHthbGljfSBpbiAKICAgICAgICB5ZXMgfCBZZXMgfCB5IHwgWSkKICAgICAgICAgICAg cmV0dXJuIDAKICAgICAgICA7OwogICAgICAgICopCiAgICAgICAgICAgIGVjaG87CiAgICAgICAg ICAgIGVjaG87CiAgICAgICAgICAgIGVjaG87CiAgICAgICAgICAgIGVlcnJvciAiWW91IE1VU1Qg YWNjZXB0IHRoZSBsaWNlbnNlIHRvIGNvbnRpbnVlISAgRXhpdGluZyEiOwogICAgICAgICAgICBk aWUgIkZhaWxlZCB0byBhY2NlcHQgbGljZW5zZSIKICAgICAgICA7OwogICAgZXNhYwp9CmNvbmZp Z19jYWNoZSAoKSAKeyAKICAgIGxvY2FsIGggYW5zPSJubyI7CiAgICB1c2UgJDEgJiYgYW5zPSJ5 ZXMiOwogICAgc2hpZnQ7CiAgICBmb3IgaCBpbiAiJEAiOwogICAgZG8KICAgICAgICBbWyAke2h9 ID09ICouaCBdXSAmJiBoPWhlYWRlcl8ke2h9IHx8IGg9bGliXyR7aH07CiAgICAgICAgZXhwb3J0 IGFjX2N2XyR7aC8vWzpcLy5dL199PSR7YW5zfTsKICAgIGRvbmUKfQpjcmVhdGVfbWxfaW5jbHVk ZXMgKCkgCnsgCiAgICBsb2NhbCBkZXN0PSQxOwogICAgc2hpZnQ7CiAgICBsb2NhbCBiYXNlZGly cz0kKGNyZWF0ZV9tbF9pbmNsdWRlcy1saXN0ZGlycyAiJEAiKTsKICAgIGNyZWF0ZV9tbF9pbmNs dWRlcy1tYWtlZGVzdGRpcnMgJHtkZXN0fSAke2Jhc2VkaXJzfTsKICAgIGxvY2FsIGZpbGU7CiAg ICBmb3IgZmlsZSBpbiAkKGNyZWF0ZV9tbF9pbmNsdWRlcy1hbGxmaWxlcyAke2Jhc2VkaXJzfSk7 CiAgICBkbwogICAgICAgICggZWNobyAiLyogQXV0b2dlbmVyYXRlZCBieSBjcmVhdGVfbWxfaW5j bHVkZXMoKSBpbiBtdWx0aWxpYi5lY2xhc3MgKi8iOwogICAgICAgIGxvY2FsIGRpcjsKICAgICAg ICBmb3IgZGlyIGluICR7YmFzZWRpcnN9OwogICAgICAgIGRvCiAgICAgICAgICAgIGlmIFtbIC1m ICR7RH0vJHtkaXJ9LyR7ZmlsZX0gXV07IHRoZW4KICAgICAgICAgICAgICAgIGVjaG8gIiI7CiAg ICAgICAgICAgICAgICBsb2NhbCBzeW09JChjcmVhdGVfbWxfaW5jbHVkZXMtc3ltX2Zvcl9kaXIg JHtkaXJ9ICIkQCIpOwogICAgICAgICAgICAgICAgaWYgW1sgJHtzeW0vPX0gIT0gIiR7c3ltfSIg XV07IHRoZW4KICAgICAgICAgICAgICAgICAgICBlY2hvICIjaWYgJHtzeW19IjsKICAgICAgICAg ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICBpZiBbWyAke3N5bTo6MX0gPT0gIiEiIF1d OyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIiNpZm5kZWYgJHtzeW06MX0iOwog ICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAiI2lm ZGVmICR7c3ltfSI7CiAgICAgICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgICAgICBmaTsK ICAgICAgICAgICAgICAgIGVjaG8gIiMgaW5jbHVkZSA8JChjcmVhdGVfbWxfaW5jbHVkZXMtYWJz b2x1dGUgJHtkaXJ9LyR7ZmlsZX0pPiI7CiAgICAgICAgICAgICAgICBlY2hvICIjZW5kaWYgLyog JHtzeW19ICovIjsKICAgICAgICAgICAgZmk7CiAgICAgICAgZG9uZSApID4gIiR7RH0vJHtkZXN0 fS8ke2ZpbGV9IjsKICAgIGRvbmUKfQpjcmVhdGVfbWxfaW5jbHVkZXMtYWJzb2x1dGUgKCkgCnsg CiAgICBsb2NhbCBkc3Q9IiQoY3JlYXRlX21sX2luY2x1ZGVzLXRpZHlfcGF0aCAkMSkiOwogICAg ZHN0PSgke2RzdC8vXC8vIH0pOwogICAgbG9jYWwgaTsKICAgIGZvciAoKGk9MDsgaTwkeyNkc3Rb Kl19OyBpKyspKQogICAgZG8KICAgICAgICBbICIke2RzdFtpXX0iID09ICJpbmNsdWRlIiBdICYm IGJyZWFrOwogICAgZG9uZTsKICAgIGxvY2FsIHN0cmlwX3VwdG89JGk7CiAgICBmb3IgKChpPXN0 cmlwX3VwdG8rMTsgaTwkeyNkc3RbKl19LTE7IGkrKykpCiAgICBkbwogICAgICAgIGVjaG8gLW4g JHtkc3RbaV19LzsKICAgIGRvbmU7CiAgICBlY2hvIC1uICR7ZHN0W2ldfQp9CmNyZWF0ZV9tbF9p bmNsdWRlcy1hbGxmaWxlcyAoKSAKeyAKICAgIGxvY2FsIGJhc2VkaXIgZmlsZTsKICAgIGZvciBi YXNlZGlyIGluICIkQCI7CiAgICBkbwogICAgICAgIGZvciBmaWxlIGluICQoZmluZCAiJHtEfSIv JHtiYXNlZGlyfSAtdHlwZSBmKTsKICAgICAgICBkbwogICAgICAgICAgICBlY2hvICR7ZmlsZS8k e0R9XC8ke2Jhc2VkaXJ9XC8vfTsKICAgICAgICBkb25lOwogICAgZG9uZSB8IHNvcnQgfCB1bmlx Cn0KY3JlYXRlX21sX2luY2x1ZGVzLWxpc3RkaXJzICgpIAp7IAogICAgbG9jYWwgZGlyczsKICAg IGxvY2FsIGRhdGE7CiAgICBmb3IgZGF0YSBpbiAiJEAiOwogICAgZG8KICAgICAgICBkaXJzPSIk e2RpcnN9ICR7ZGF0YS8qOi99IjsKICAgIGRvbmU7CiAgICBlY2hvICR7ZGlyczoxfQp9CmNyZWF0 ZV9tbF9pbmNsdWRlcy1tYWtlZGVzdGRpcnMgKCkgCnsgCiAgICBsb2NhbCBkZXN0PSQxOwogICAg c2hpZnQ7CiAgICBsb2NhbCBiYXNlZGlycz0kQDsKICAgIGRvZGlyICR7ZGVzdH07CiAgICBsb2Nh bCBiYXNlZGlyOwogICAgZm9yIGJhc2VkaXIgaW4gJHtiYXNlZGlyc307CiAgICBkbwogICAgICAg IGxvY2FsIGRpcjsKICAgICAgICBmb3IgZGlyIGluICQoZmluZCAke0R9LyR7YmFzZWRpcn0gLXR5 cGUgZCk7CiAgICAgICAgZG8KICAgICAgICAgICAgZG9kaXIgJHtkZXN0fS8ke2Rpci8ke0R9XC8k e2Jhc2VkaXJ9L307CiAgICAgICAgZG9uZTsKICAgIGRvbmUKfQpjcmVhdGVfbWxfaW5jbHVkZXMt c3ltX2Zvcl9kaXIgKCkgCnsgCiAgICBsb2NhbCBkaXI9JDE7CiAgICBzaGlmdDsKICAgIGxvY2Fs IGRhdGE7CiAgICBmb3IgZGF0YSBpbiAiJEAiOwogICAgZG8KICAgICAgICBpZiBbWyAke2RhdGF9 ID09ICo6JHtkaXJ9IF1dOyB0aGVuCiAgICAgICAgICAgIGVjaG8gJHtkYXRhLzoqL307CiAgICAg ICAgICAgIHJldHVybiAwOwogICAgICAgIGZpOwogICAgZG9uZTsKICAgIGVjaG8gIlNob3VsZG4n dCBiZSBoZXJlIC0tIGNyZWF0ZV9tbF9pbmNsdWRlcy1zeW1fZm9yX2RpciAkMSAkQCI7CiAgICBl eGl0IDEKfQpjcmVhdGVfbWxfaW5jbHVkZXMtdGlkeV9wYXRoICgpIAp7IAogICAgbG9jYWwgcmVt b3ZlZD0kMTsKICAgIGlmIFsgLW4gIiR7cmVtb3ZlZH0iIF07IHRoZW4KICAgICAgICB3aGlsZSBb ICIke3JlbW92ZWR9IiAhPSAiJHtyZW1vdmVkL1wvXC8vXC99IiBdOyBkbwogICAgICAgICAgICBy ZW1vdmVkPSR7cmVtb3ZlZC9cL1wvL1wvfTsKICAgICAgICBkb25lOwogICAgICAgIHdoaWxlIFsg IiR7cmVtb3ZlZH0iICE9ICIke3JlbW92ZWQvL1wvLlwvL1wvfSIgXTsgZG8KICAgICAgICAgICAg cmVtb3ZlZD0ke3JlbW92ZWQvL1wvLlwvL1wvfTsKICAgICAgICBkb25lOwogICAgICAgIFsgIiR7 cmVtb3ZlZCMjKi99IiA9ICIuIiBdICYmIHJlbW92ZWQ9JHtyZW1vdmVkJS8qfTsKICAgICAgICB3 aGlsZSBbICIke3JlbW92ZWR9IiAhPSAiJHtyZW1vdmVkLy9cLy4uXC99IiBdOyBkbwogICAgICAg ICAgICBsb2NhbCBwMT0iJHtyZW1vdmVkJSVcLy4uXC8qfSI7CiAgICAgICAgICAgIGxvY2FsIHAy PSIke3JlbW92ZWQjKlwvLi5cL30iOwogICAgICAgICAgICByZW1vdmVkPSIke3AxJVwvKn0vJHtw Mn0iOwogICAgICAgIGRvbmU7CiAgICAgICAgWyAiJHtyZW1vdmVkIyMqL30iID0gIi4uIiBdICYm IHJlbW92ZWQ9JHtyZW1vdmVkJS8qLyp9OwogICAgICAgIFsgIiR7cmVtb3ZlZCMjKi99IiA9ICIi IF0gJiYgcmVtb3ZlZD0ke3JlbW92ZWQlLyp9OwogICAgICAgIGVjaG8gJHtyZW1vdmVkfTsKICAg IGZpCn0KZGxvcGVuX2xpYiAoKSAKeyAKICAgIGlmIFtbICR7RUxJQkN9ICE9ICpCU0QgXV07IHRo ZW4KICAgICAgICBlY2hvICItbGRsIjsKICAgIGZpCn0KZG9pY29uICgpIAp7IAogICAgKCBsb2Nh bCBpIGogcmV0OwogICAgaW5zaW50byAvdXNyL3NoYXJlL3BpeG1hcHM7CiAgICBmb3IgaSBpbiAi JEAiOwogICAgZG8KICAgICAgICBpZiBbWyAtZiAke2l9IF1dOyB0aGVuCiAgICAgICAgICAgIGRv aW5zICIke2l9IjsKICAgICAgICAgICAgKChyZXQrPSQ/KSk7CiAgICAgICAgZWxzZQogICAgICAg ICAgICBpZiBbWyAtZCAke2l9IF1dOyB0aGVuCiAgICAgICAgICAgICAgICBmb3IgaiBpbiAiJHtp fSIvKi5wbmc7CiAgICAgICAgICAgICAgICBkbwogICAgICAgICAgICAgICAgICAgIGRvaW5zICIk e2p9IjsKICAgICAgICAgICAgICAgICAgICAoKHJldCs9JD8pKTsKICAgICAgICAgICAgICAgIGRv bmU7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICgoKytyZXQpKTsKICAgICAgICAg ICAgZmk7CiAgICAgICAgZmk7CiAgICBkb25lOwogICAgZXhpdCAke3JldH0gKQp9CmRvbWVudSAo KSAKeyAKICAgICggbG9jYWwgaSBqIHJldD0wOwogICAgaW5zaW50byAvdXNyL3NoYXJlL2FwcGxp Y2F0aW9uczsKICAgIGZvciBpIGluICIkQCI7CiAgICBkbwogICAgICAgIGlmIFtbIC1mICR7aX0g XV07IHRoZW4KICAgICAgICAgICAgZG9pbnMgIiR7aX0iOwogICAgICAgICAgICAoKHJldCs9JD8p KTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGlmIFtbIC1kICR7aX0gXV07IHRoZW4KICAgICAg ICAgICAgICAgIGZvciBqIGluICIke2l9Ii8qLmRlc2t0b3A7CiAgICAgICAgICAgICAgICBkbwog ICAgICAgICAgICAgICAgICAgIGRvaW5zICIke2p9IjsKICAgICAgICAgICAgICAgICAgICAoKHJl dCs9JD8pKTsKICAgICAgICAgICAgICAgIGRvbmU7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAg ICAgICAgICgoKytyZXQpKTsKICAgICAgICAgICAgZmk7CiAgICAgICAgZmk7CiAgICBkb25lOwog ICAgZXhpdCAke3JldH0gKQp9CmViZWVwICgpIAp7IAogICAgbG9jYWwgbjsKICAgIGlmIFtbIC16 ICR7RUJFRVBfSUdOT1JFfSBdXTsgdGhlbgogICAgICAgIGZvciAoKG49MSA7IG4gPD0gJHsxOi01 fSA7IG4rKykpCiAgICAgICAgZG8KICAgICAgICAgICAgZWNobyAtbmUgIlxhIjsKICAgICAgICAg ICAgc2xlZXAgMC4xID4mL2Rldi9udWxsOwogICAgICAgICAgICBzbGVlcCAwLDEgPiYvZGV2L251 bGw7CiAgICAgICAgICAgIGVjaG8gLW5lICJcYSI7CiAgICAgICAgICAgIHNsZWVwIDE7CiAgICAg ICAgZG9uZTsKICAgIGZpCn0KZWN2c19jbGVhbiAoKSAKeyAKICAgIFtbIC16ICQqIF1dICYmIHNl dCAtLSAuOwogICAgZmluZCAiJEAiIC10eXBlIGQgLW5hbWUgJ0NWUycgLXBydW5lIC1wcmludDAg fCB4YXJncyAtMCBybSAtcmY7CiAgICBmaW5kICIkQCIgLXR5cGUgZiAtbmFtZSAnLmN2cyonIC1w cmludDAgfCB4YXJncyAtMCBybSAtcmYKfQplZG9zMnVuaXggKCkgCnsgCiAgICBlY2hvICIkQCIg fCB4YXJncyBzZWQgLWkgJ3MvXHIkLy8nCn0KZWdldGVudCAoKSAKeyAKICAgIGNhc2UgJHtDSE9T VH0gaW4gCiAgICAgICAgKi1kYXJ3aW4qKQogICAgICAgICAgICBjYXNlICIkMiIgaW4gCiAgICAg ICAgICAgICAgICAqWyEwLTldKikKICAgICAgICAgICAgICAgICAgICBuaWR1bXAgJDEgLiB8IGF3 ayAtRiI6IiAieyBpZiAoXCQxIH4gL14kMiQvKSB7cHJpbnQgXCQwO2V4aXQ7fSB9IgogICAgICAg ICAgICAgICAgOzsKICAgICAgICAgICAgICAgICopCiAgICAgICAgICAgICAgICAgICAgbmlkdW1w ICQxIC4gfCBhd2sgLUYiOiIgInsgaWYgKFwkMyA9PSAkMikge3ByaW50IFwkMDtleGl0O30gfSIK ICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgIGVzYWMKICAgICAgICA7OwogICAgICAgICot ZnJlZWJzZCogfCAqLWRyYWdvbmZseSopCiAgICAgICAgICAgIGxvY2FsIG9wdHMgYWN0aW9uPSJ1 c2VyIjsKICAgICAgICAgICAgW1sgJDEgPT0gInBhc3N3ZCIgXV0gfHwgYWN0aW9uPSJncm91cCI7 CiAgICAgICAgICAgIGlmIFtbICQyID09IFtbOmRpZ2l0Ol1dKiBdXTsgdGhlbgogICAgICAgICAg ICAgICAgW1sgJHthY3Rpb259ID09ICJ1c2VyIiBdXSAmJiBvcHRzPSItdSIgfHwgb3B0cz0iLWci OwogICAgICAgICAgICBmaTsKICAgICAgICAgICAgcHcgc2hvdyAke2FjdGlvbn0gJHtvcHRzfSAi JDIiIC1xCiAgICAgICAgOzsKICAgICAgICAqLW5ldGJzZCogfCAqLW9wZW5ic2QqKQogICAgICAg ICAgICBncmVwICIkMjpcKjoiIC9ldGMvJDEKICAgICAgICA7OwogICAgICAgICopCiAgICAgICAg ICAgIHR5cGUgLXAgbnNjZCA+Ji9kZXYvbnVsbCAmJiBuc2NkIC1pICIkMSI7CiAgICAgICAgICAg IGdldGVudCAiJDEiICIkMiIKICAgICAgICA7OwogICAgZXNhYwp9CmVnZXRob21lICgpIAp7IAog ICAgZW50PSQoZWdldGVudCBwYXNzd2QgJDEpOwogICAgY2FzZSAke0NIT1NUfSBpbiAKICAgICAg ICAqLWRhcndpbiogfCAqLWZyZWVic2QqIHwgKi1kcmFnb25mbHkqKQogICAgICAgICAgICBlY2hv ICR7ZW50fSB8IGN1dCAtZDogLWY5CiAgICAgICAgOzsKICAgICAgICAqKQogICAgICAgICAgICBl Y2hvICR7ZW50fSB8IGN1dCAtZDogLWY2CiAgICAgICAgOzsKICAgIGVzYWMKfQplZ2V0c2hlbGwg KCkgCnsgCiAgICBlbnQ9JChlZ2V0ZW50IHBhc3N3ZCAiJDEiKTsKICAgIGNhc2UgJHtDSE9TVH0g aW4gCiAgICAgICAgKi1kYXJ3aW4qIHwgKi1mcmVlYnNkKiB8ICotZHJhZ29uZmx5KikKICAgICAg ICAgICAgZWNobyAke2VudH0gfCBjdXQgLWQ6IC1mMTAKICAgICAgICA7OwogICAgICAgICopCiAg ICAgICAgICAgIGVjaG8gJHtlbnR9IGN1dCAtZDogLWY3CiAgICAgICAgOzsKICAgIGVzYWMKfQpl bWt0ZW1wICgpIAp7IAogICAgbG9jYWwgZXhlPSJ0b3VjaCI7CiAgICBbWyAkMSA9PSAtZCBdXSAm JiBleGU9Im1rZGlyIiAmJiBzaGlmdDsKICAgIGxvY2FsIHRvcGRpcj0kMTsKICAgIGlmIFtbIC16 ICR7dG9wZGlyfSBdXTsgdGhlbgogICAgICAgIFtbIC16ICR7VH0gXV0gJiYgdG9wZGlyPSIvdG1w IiB8fCB0b3BkaXI9JHtUfTsKICAgIGZpOwogICAgaWYgISB0eXBlIC1QIG1rdGVtcCA+IC9kZXYv bnVsbDsgdGhlbgogICAgICAgIGxvY2FsIHRtcD0vOwogICAgICAgIHdoaWxlIFtbIC1lICR7dG1w fSBdXTsgZG8KICAgICAgICAgICAgdG1wPSR7dG9wZGlyfS90bXAuJHtSQU5ET019LiR7UkFORE9N fS4ke1JBTkRPTX07CiAgICAgICAgZG9uZTsKICAgICAgICAke2V4ZX0gIiR7dG1wfSIgfHwgJHtl eGV9IC1wICIke3RtcH0iOwogICAgICAgIGVjaG8gIiR7dG1wfSI7CiAgICBlbHNlCiAgICAgICAg aWYgW1sgJHtleGV9ID09ICJ0b3VjaCIgXV07IHRoZW4KICAgICAgICAgICAgVE1QRElSPSIke3Rv cGRpcn0iIG1rdGVtcCAtdCB0bXAuWFhYWFhYWFhYWDsKICAgICAgICBlbHNlCiAgICAgICAgICAg IFRNUERJUj0iJHt0b3BkaXJ9IiBta3RlbXAgLWR0IHRtcC5YWFhYWFhYWFhYOwogICAgICAgIGZp OwogICAgZmkKfQplbmV3Z3JvdXAgKCkgCnsgCiAgICBjYXNlICR7RUJVSUxEX1BIQVNFfSBpbiAK ICAgICAgICB1bnBhY2sgfCBjb21waWxlIHwgdGVzdCB8IGluc3RhbGwpCiAgICAgICAgICAgIGVl cnJvciAiJ2VuZXdncm91cCgpJyBjYWxsZWQgZnJvbSAnJHtFQlVJTERfUEhBU0V9KCknIHdoaWNo IGlzIG5vdCBhIHBrZ18qIGZ1bmN0aW9uLiI7CiAgICAgICAgICAgIGVlcnJvciAiUGFja2FnZSBm YWlscyBhdCBRQSBhbmQgYXQgbGlmZS4gIFBsZWFzZSBmaWxlIGEgYnVnLiI7CiAgICAgICAgICAg IGRpZSAiQmFkIHBhY2thZ2UhICBlbmV3Z3JvdXAgaXMgb25seSBmb3IgdXNlIGluIHBrZ18qIGZ1 bmN0aW9ucyEiCiAgICAgICAgOzsKICAgIGVzYWM7CiAgICBsb2NhbCBlZ3JvdXA9IiQxIjsKICAg IHNoaWZ0OwogICAgaWYgWyAteiAiJHtlZ3JvdXB9IiBdOyB0aGVuCiAgICAgICAgZWVycm9yICJO byBncm91cCBzcGVjaWZpZWQgISI7CiAgICAgICAgZGllICJDYW5ub3QgY2FsbCBlbmV3Z3JvdXAg d2l0aG91dCBhIGdyb3VwIjsKICAgIGZpOwogICAgaWYgW1sgLW4gJChlZ2V0ZW50IGdyb3VwICIk e2Vncm91cH0iKSBdXTsgdGhlbgogICAgICAgIHJldHVybiAwOwogICAgZmk7CiAgICBlaW5mbyAi QWRkaW5nIGdyb3VwICcke2Vncm91cH0nIHRvIHlvdXIgc3lzdGVtIC4uLiI7CiAgICBsb2NhbCBv cHRzPTsKICAgIGxvY2FsIGVnaWQ9IiQxIjsKICAgIHNoaWZ0OwogICAgaWYgWyAhIC16ICIke2Vn aWR9IiBdOyB0aGVuCiAgICAgICAgaWYgWyAiJHtlZ2lkfSIgLWd0IDAgXTsgdGhlbgogICAgICAg ICAgICBpZiBbIC16ICJgZWdldGVudCBncm91cCAke2VnaWR9YCIgXTsgdGhlbgogICAgICAgICAg ICAgICAgaWYgW1sgIiR7Q0hPU1R9IiA9PSAqLWRhcndpbiogXV07IHRoZW4KICAgICAgICAgICAg ICAgICAgICBvcHRzPSIke29wdHN9ICR7ZWdpZH0iOwogICAgICAgICAgICAgICAgZWxzZQogICAg ICAgICAgICAgICAgICAgIG9wdHM9IiR7b3B0c30gLWcgJHtlZ2lkfSI7CiAgICAgICAgICAgICAg ICBmaTsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgZWdpZD0ibmV4dCBhdmFpbGFi bGU7IHJlcXVlc3RlZCBnaWQgdGFrZW4iOwogICAgICAgICAgICBmaTsKICAgICAgICBlbHNlCiAg ICAgICAgICAgIGVlcnJvciAiR3JvdXBpZCBnaXZlbiBidXQgaXMgbm90IGdyZWF0ZXIgdGhhbiAw ICEiOwogICAgICAgICAgICBkaWUgIiR7ZWdpZH0gaXMgbm90IGEgdmFsaWQgR0lEIjsKICAgICAg ICBmaTsKICAgIGVsc2UKICAgICAgICBlZ2lkPSJuZXh0IGF2YWlsYWJsZSI7CiAgICBmaTsKICAg IGVpbmZvICIgLSBHcm91cGlkOiAke2VnaWR9IjsKICAgIGxvY2FsIGVleHRyYT0iJEAiOwogICAg b3B0cz0iJHtvcHRzfSAke2VleHRyYX0iOwogICAgbG9jYWwgb2xkc2FuZGJveD0iJHtTQU5EQk9Y X09OfSI7CiAgICBleHBvcnQgU0FOREJPWF9PTj0iMCI7CiAgICBjYXNlICR7Q0hPU1R9IGluIAog ICAgICAgICotZGFyd2luKikKICAgICAgICAgICAgaWYgWyAhIC16ICIke2VleHRyYX0iIF07IHRo ZW4KICAgICAgICAgICAgICAgIGVpbmZvICJFeHRyYSBvcHRpb25zIGFyZSBub3Qgc3VwcG9ydGVk IG9uIERhcndpbi9PUyBYIHlldCI7CiAgICAgICAgICAgICAgICBlaW5mbyAiUGxlYXNlIHJlcG9y dCB0aGUgZWJ1aWxkIGFsb25nIHdpdGggdGhlIGluZm8gYmVsb3ciOwogICAgICAgICAgICAgICAg ZWluZm8gImVleHRyYTogJHtlZXh0cmF9IjsKICAgICAgICAgICAgICAgIGRpZSAiUmVxdWlyZWQg ZnVuY3Rpb24gbWlzc2luZyI7CiAgICAgICAgICAgIGZpOwogICAgICAgICAgICBjYXNlICR7ZWdp ZH0gaW4gCiAgICAgICAgICAgICAgICAqWyEwLTldKikKICAgICAgICAgICAgICAgICAgICBmb3Ig KChlZ2lkID0gMTAxOyBlZ2lkIDw9IDk5OTsgZWdpZCsrKSkKICAgICAgICAgICAgICAgICAgICBk bwogICAgICAgICAgICAgICAgICAgICAgICBbWyAteiAkKGVnZXRlbnQgZ3JvdXAgJHtlZ2lkfSkg XV0gJiYgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgZG9uZQogICAgICAgICAgICAgICAgOzsK ICAgICAgICAgICAgZXNhYzsKICAgICAgICAgICAgZHNjbCAuIGNyZWF0ZSAvZ3JvdXBzLyR7ZWdy b3VwfSBnaWQgJHtlZ2lkfTsKICAgICAgICAgICAgZHNjbCAuIGNyZWF0ZSAvZ3JvdXBzLyR7ZWdy b3VwfSBwYXNzd2QgJyonCiAgICAgICAgOzsKICAgICAgICAqLWZyZWVic2QqIHwgKi1kcmFnb25m bHkqKQogICAgICAgICAgICBjYXNlICR7ZWdpZH0gaW4gCiAgICAgICAgICAgICAgICAqWyEwLTld KikKICAgICAgICAgICAgICAgICAgICBmb3IgKChlZ2lkID0gMTAxOyBlZ2lkIDw9IDk5OTsgZWdp ZCsrKSkKICAgICAgICAgICAgICAgICAgICBkbwogICAgICAgICAgICAgICAgICAgICAgICBbWyAt eiAkKGVnZXRlbnQgZ3JvdXAgJHtlZ2lkfSkgXV0gJiYgYnJlYWs7CiAgICAgICAgICAgICAgICAg ICAgZG9uZQogICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgZXNhYzsKICAgICAgICAgICAg cHcgZ3JvdXBhZGQgJHtlZ3JvdXB9IC1nICR7ZWdpZH0gfHwgZGllICJlbmV3Z3JvdXAgZmFpbGVk IgogICAgICAgIDs7CiAgICAgICAgKi1uZXRic2QqKQogICAgICAgICAgICBjYXNlICR7ZWdpZH0g aW4gCiAgICAgICAgICAgICAgICAqWyEwLTldKikKICAgICAgICAgICAgICAgICAgICBmb3IgKChl Z2lkID0gMTAxOyBlZ2lkIDw9IDk5OTsgZWdpZCsrKSkKICAgICAgICAgICAgICAgICAgICBkbwog ICAgICAgICAgICAgICAgICAgICAgICBbWyAteiAkKGVnZXRlbnQgZ3JvdXAgJHtlZ2lkfSkgXV0g JiYgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgZG9uZQogICAgICAgICAgICAgICAgOzsKICAg ICAgICAgICAgZXNhYzsKICAgICAgICAgICAgZ3JvdXBhZGQgLWcgJHtlZ2lkfSAke2Vncm91cH0g fHwgZGllICJlbmV3Z3JvdXAgZmFpbGVkIgogICAgICAgIDs7CiAgICAgICAgKikKICAgICAgICAg ICAgZ3JvdXBhZGQgJHtvcHRzfSAke2Vncm91cH0gfHwgZGllICJlbmV3Z3JvdXAgZmFpbGVkIgog ICAgICAgIDs7CiAgICBlc2FjOwogICAgZXhwb3J0IFNBTkRCT1hfT049IiR7b2xkc2FuZGJveH0i Cn0KZW5ld3VzZXIgKCkgCnsgCiAgICBjYXNlICR7RUJVSUxEX1BIQVNFfSBpbiAKICAgICAgICB1 bnBhY2sgfCBjb21waWxlIHwgdGVzdCB8IGluc3RhbGwpCiAgICAgICAgICAgIGVlcnJvciAiJ2Vu ZXd1c2VyKCknIGNhbGxlZCBmcm9tICcke0VCVUlMRF9QSEFTRX0oKScgd2hpY2ggaXMgbm90IGEg cGtnXyogZnVuY3Rpb24uIjsKICAgICAgICAgICAgZWVycm9yICJQYWNrYWdlIGZhaWxzIGF0IFFB IGFuZCBhdCBsaWZlLiAgUGxlYXNlIGZpbGUgYSBidWcuIjsKICAgICAgICAgICAgZGllICJCYWQg cGFja2FnZSEgIGVuZXd1c2VyIGlzIG9ubHkgZm9yIHVzZSBpbiBwa2dfKiBmdW5jdGlvbnMhIgog ICAgICAgIDs7CiAgICBlc2FjOwogICAgbG9jYWwgZXVzZXI9JDE7CiAgICBzaGlmdDsKICAgIGlm IFtbIC16ICR7ZXVzZXJ9IF1dOyB0aGVuCiAgICAgICAgZWVycm9yICJObyB1c2VybmFtZSBzcGVj aWZpZWQgISI7CiAgICAgICAgZGllICJDYW5ub3QgY2FsbCBlbmV3dXNlciB3aXRob3V0IGEgdXNl cm5hbWUiOwogICAgZmk7CiAgICBpZiBbWyAtbiAkKGVnZXRlbnQgcGFzc3dkICIke2V1c2VyfSIp IF1dOyB0aGVuCiAgICAgICAgcmV0dXJuIDA7CiAgICBmaTsKICAgIGVpbmZvICJBZGRpbmcgdXNl ciAnJHtldXNlcn0nIHRvIHlvdXIgc3lzdGVtIC4uLiI7CiAgICBsb2NhbCBvcHRzPTsKICAgIGxv Y2FsIGV1aWQ9JDE7CiAgICBzaGlmdDsKICAgIGlmIFtbIC1uICR7ZXVpZH0gJiYgJHtldWlkfSAh PSAtMSBdXTsgdGhlbgogICAgICAgIGlmIFtbICR7ZXVpZH0gLWd0IDAgXV07IHRoZW4KICAgICAg ICAgICAgaWYgW1sgLW4gJChlZ2V0ZW50IHBhc3N3ZCAke2V1aWR9KSBdXTsgdGhlbgogICAgICAg ICAgICAgICAgZXVpZD0ibmV4dCI7CiAgICAgICAgICAgIGZpOwogICAgICAgIGVsc2UKICAgICAg ICAgICAgZWVycm9yICJVc2VyaWQgZ2l2ZW4gYnV0IGlzIG5vdCBncmVhdGVyIHRoYW4gMCAhIjsK ICAgICAgICAgICAgZGllICIke2V1aWR9IGlzIG5vdCBhIHZhbGlkIFVJRCI7CiAgICAgICAgZmk7 CiAgICBlbHNlCiAgICAgICAgZXVpZD0ibmV4dCI7CiAgICBmaTsKICAgIGlmIFtbICR7ZXVpZH0g PT0gIm5leHQiIF1dOyB0aGVuCiAgICAgICAgZm9yICgoZXVpZCA9IDEwMTsgZXVpZCA8PSA5OTk7 IGV1aWQrKykpCiAgICAgICAgZG8KICAgICAgICAgICAgW1sgLXogJChlZ2V0ZW50IHBhc3N3ZCAk e2V1aWR9KSBdXSAmJiBicmVhazsKICAgICAgICBkb25lOwogICAgZmk7CiAgICBvcHRzPSIke29w dHN9IC11ICR7ZXVpZH0iOwogICAgZWluZm8gIiAtIFVzZXJpZDogJHtldWlkfSI7CiAgICBsb2Nh bCBlc2hlbGw9JDE7CiAgICBzaGlmdDsKICAgIGlmIFtbICEgLXogJHtlc2hlbGx9IF1dICYmIFtb ICR7ZXNoZWxsfSAhPSAiLTEiIF1dOyB0aGVuCiAgICAgICAgaWYgW1sgISAtZSAke1JPT1R9JHtl c2hlbGx9IF1dOyB0aGVuCiAgICAgICAgICAgIGVlcnJvciAiQSBzaGVsbCB3YXMgc3BlY2lmaWVk IGJ1dCBpdCBkb2VzIG5vdCBleGlzdCAhIjsKICAgICAgICAgICAgZGllICIke2VzaGVsbH0gZG9l cyBub3QgZXhpc3QgaW4gJHtST09UfSI7CiAgICAgICAgZmk7CiAgICAgICAgaWYgW1sgJHtlc2hl bGx9ID09ICovZmFsc2UgfHwgJHtlc2hlbGx9ID09ICovbm9sb2dpbiBdXTsgdGhlbgogICAgICAg ICAgICBlZXJyb3IgIkRvIG5vdCBzcGVjaWZ5ICR7ZXNoZWxsfSB5b3Vyc2VsZiwgdXNlIC0xIjsK ICAgICAgICAgICAgZGllICJQYXNzICctMScgYXMgdGhlIHNoZWxsIHBhcmFtZXRlciI7CiAgICAg ICAgZmk7CiAgICBlbHNlCiAgICAgICAgZm9yIHNoZWxsIGluIC9zYmluL25vbG9naW4gL3Vzci9z YmluL25vbG9naW4gL2Jpbi9mYWxzZSAvdXNyL2Jpbi9mYWxzZSAvZGV2L251bGw7CiAgICAgICAg ZG8KICAgICAgICAgICAgW1sgLXggJHtST09UfSR7c2hlbGx9IF1dICYmIGJyZWFrOwogICAgICAg IGRvbmU7CiAgICAgICAgaWYgW1sgJHtzaGVsbH0gPT0gIi9kZXYvbnVsbCIgXV07IHRoZW4KICAg ICAgICAgICAgZWVycm9yICJVbmFibGUgdG8gaWRlbnRpZnkgdGhlIHNoZWxsIHRvIHVzZSwgcHJv Y2VlZGluZyB3aXRoIHVzZXJsYW5kIGRlZmF1bHQuIjsKICAgICAgICAgICAgY2FzZSAke1VTRVJM QU5EfSBpbiAKICAgICAgICAgICAgICAgIEdOVSkKICAgICAgICAgICAgICAgICAgICBzaGVsbD0i L2Jpbi9mYWxzZSIKICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICBCU0QpCiAgICAg ICAgICAgICAgICAgICAgc2hlbGw9Ii9zYmluL25vbG9naW4iCiAgICAgICAgICAgICAgICA7Owog ICAgICAgICAgICAgICAgRGFyd2luKQogICAgICAgICAgICAgICAgICAgIHNoZWxsPSIvdXNyL3Ni aW4vbm9sb2dpbiIKICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAqKQogICAgICAg ICAgICAgICAgICAgIGRpZSAiVW5hYmxlIHRvIGlkZW50aWZ5IHRoZSBkZWZhdWx0IHNoZWxsIGZv ciB1c2VybGFuZCAke1VTRVJMQU5EfSIKICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgIGVz YWM7CiAgICAgICAgZmk7CiAgICAgICAgZXNoZWxsPSR7c2hlbGx9OwogICAgZmk7CiAgICBlaW5m byAiIC0gU2hlbGw6ICR7ZXNoZWxsfSI7CiAgICBvcHRzPSIke29wdHN9IC1zICR7ZXNoZWxsfSI7 CiAgICBsb2NhbCBlaG9tZT0kMTsKICAgIHNoaWZ0OwogICAgaWYgW1sgLXogJHtlaG9tZX0gXV0g fHwgW1sgJHtlaG9tZX0gPT0gIi0xIiBdXTsgdGhlbgogICAgICAgIGVob21lPSIvZGV2L251bGwi OwogICAgZmk7CiAgICBlaW5mbyAiIC0gSG9tZTogJHtlaG9tZX0iOwogICAgb3B0cz0iJHtvcHRz fSAtZCAke2Vob21lfSI7CiAgICBsb2NhbCBlZ3JvdXBzPSQxOwogICAgc2hpZnQ7CiAgICBpZiBb WyAhIC16ICR7ZWdyb3Vwc30gXV07IHRoZW4KICAgICAgICBsb2NhbCBvbGRpZnM9JHtJRlN9Owog ICAgICAgIGxvY2FsIGRlZmdyb3VwPSIiIGV4Z3JvdXBzPSIiOwogICAgICAgIGV4cG9ydCBJRlM9 IiwiOwogICAgICAgIGZvciBnIGluICR7ZWdyb3Vwc307CiAgICAgICAgZG8KICAgICAgICAgICAg ZXhwb3J0IElGUz0ke29sZGlmc307CiAgICAgICAgICAgIGlmIFtbIC16ICQoZWdldGVudCBncm91 cCAiJHtnfSIpIF1dOyB0aGVuCiAgICAgICAgICAgICAgICBlZXJyb3IgIllvdSBtdXN0IGFkZCBn cm91cCAke2d9IHRvIHRoZSBzeXN0ZW0gZmlyc3QiOwogICAgICAgICAgICAgICAgZGllICIke2d9 IGlzIG5vdCBhIHZhbGlkIEdJRCI7CiAgICAgICAgICAgIGZpOwogICAgICAgICAgICBpZiBbWyAt eiAke2RlZmdyb3VwfSBdXTsgdGhlbgogICAgICAgICAgICAgICAgZGVmZ3JvdXA9JHtnfTsKICAg ICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgZXhncm91cHM9IiR7ZXhncm91cHN9LCR7Z30i OwogICAgICAgICAgICBmaTsKICAgICAgICAgICAgZXhwb3J0IElGUz0iLCI7CiAgICAgICAgZG9u ZTsKICAgICAgICBleHBvcnQgSUZTPSR7b2xkaWZzfTsKICAgICAgICBvcHRzPSIke29wdHN9IC1n ICR7ZGVmZ3JvdXB9IjsKICAgICAgICBpZiBbWyAhIC16ICR7ZXhncm91cHN9IF1dOyB0aGVuCiAg ICAgICAgICAgIG9wdHM9IiR7b3B0c30gLUcgJHtleGdyb3VwczoxfSI7CiAgICAgICAgZmk7CiAg ICBlbHNlCiAgICAgICAgZWdyb3Vwcz0iKG5vbmUpIjsKICAgIGZpOwogICAgZWluZm8gIiAtIEdy b3VwczogJHtlZ3JvdXBzfSI7CiAgICBsb2NhbCBvbGRzYW5kYm94PSR7U0FOREJPWF9PTn07CiAg ICBleHBvcnQgU0FOREJPWF9PTj0iMCI7CiAgICBjYXNlICR7Q0hPU1R9IGluIAogICAgICAgICot ZGFyd2luKikKICAgICAgICAgICAgaWYgW1sgLXogJEAgXV07IHRoZW4KICAgICAgICAgICAgICAg IGRzY2wgLiBjcmVhdGUgL3VzZXJzLyR7ZXVzZXJ9IHVpZCAke2V1aWR9OwogICAgICAgICAgICAg ICAgZHNjbCAuIGNyZWF0ZSAvdXNlcnMvJHtldXNlcn0gc2hlbGwgJHtlc2hlbGx9OwogICAgICAg ICAgICAgICAgZHNjbCAuIGNyZWF0ZSAvdXNlcnMvJHtldXNlcn0gaG9tZSAke2Vob21lfTsKICAg ICAgICAgICAgICAgIGRzY2wgLiBjcmVhdGUgL3VzZXJzLyR7ZXVzZXJ9IHJlYWxuYW1lICJhZGRl ZCBieSBwb3J0YWdlIGZvciAke1BOfSI7CiAgICAgICAgICAgICAgICBsb2NhbCBvbGRpZnM9JHtJ RlN9OwogICAgICAgICAgICAgICAgZXhwb3J0IElGUz0iLCI7CiAgICAgICAgICAgICAgICBmb3Ig ZyBpbiAke2Vncm91cHN9OwogICAgICAgICAgICAgICAgZG8KICAgICAgICAgICAgICAgICAgICBk c2NsIC4gbWVyZ2UgL2dyb3Vwcy8ke2d9IHVzZXJzICR7ZXVzZXJ9OwogICAgICAgICAgICAgICAg ZG9uZTsKICAgICAgICAgICAgICAgIGV4cG9ydCBJRlM9JHtvbGRpZnN9OwogICAgICAgICAgICBl bHNlCiAgICAgICAgICAgICAgICBlaW5mbyAiRXh0cmEgb3B0aW9ucyBhcmUgbm90IHN1cHBvcnRl ZCBvbiBEYXJ3aW4geWV0IjsKICAgICAgICAgICAgICAgIGVpbmZvICJQbGVhc2UgcmVwb3J0IHRo ZSBlYnVpbGQgYWxvbmcgd2l0aCB0aGUgaW5mbyBiZWxvdyI7CiAgICAgICAgICAgICAgICBlaW5m byAiZWV4dHJhOiAkQCI7CiAgICAgICAgICAgICAgICBkaWUgIlJlcXVpcmVkIGZ1bmN0aW9uIG1p c3NpbmciOwogICAgICAgICAgICBmaQogICAgICAgIDs7CiAgICAgICAgKi1mcmVlYnNkKiB8ICot ZHJhZ29uZmx5KikKICAgICAgICAgICAgaWYgW1sgLXogJEAgXV07IHRoZW4KICAgICAgICAgICAg ICAgIHB3IHVzZXJhZGQgJHtldXNlcn0gJHtvcHRzfSAtYyAiYWRkZWQgYnkgcG9ydGFnZSBmb3Ig JHtQTn0iIGRpZSAiZW5ld3VzZXIgZmFpbGVkIjsKICAgICAgICAgICAgZWxzZQogICAgICAgICAg ICAgICAgZWluZm8gIiAtIEV4dHJhOiAkQCI7CiAgICAgICAgICAgICAgICBwdyB1c2VyYWRkICR7 ZXVzZXJ9ICR7b3B0c30gIiRAIiB8fCBkaWUgImVuZXd1c2VyIGZhaWxlZCI7CiAgICAgICAgICAg IGZpCiAgICAgICAgOzsKICAgICAgICAqLW5ldGJzZCopCiAgICAgICAgICAgIGlmIFtbIC16ICRA IF1dOyB0aGVuCiAgICAgICAgICAgICAgICB1c2VyYWRkICR7b3B0c30gJHtldXNlcn0gfHwgZGll ICJlbmV3dXNlciBmYWlsZWQiOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBlaW5m byAiIC0gRXh0cmE6ICRAIjsKICAgICAgICAgICAgICAgIHVzZXJhZGQgJHtvcHRzfSAke2V1c2Vy fSAiJEAiIHx8IGRpZSAiZW5ld3VzZXIgZmFpbGVkIjsKICAgICAgICAgICAgZmkKICAgICAgICA7 OwogICAgICAgICotb3BlbmJzZCopCiAgICAgICAgICAgIGlmIFtbIC16ICRAIF1dOyB0aGVuCiAg ICAgICAgICAgICAgICB1c2VyYWRkIC11ICR7ZXVpZH0gLXMgJHtlc2hlbGx9IC1kICR7ZWhvbWV9 IC1jICJBZGRlZCBieSBwb3J0YWdlIGZvciAke1BOfSIgLWcgJHtlZ3JvdXBzfSAke2V1c2VyfSB8 fCBkaWUgImVuZXd1c2VyIGZhaWxlZCI7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg IGVpbmZvICIgLSBFeHRyYTogJEAiOwogICAgICAgICAgICAgICAgdXNlcmFkZCAtdSAke2V1aWR9 IC1zICR7ZXNoZWxsfSAtZCAke2Vob21lfSAtYyAiQWRkZWQgYnkgcG9ydGFnZSBmb3IgJHtQTn0i IC1nICR7ZWdyb3Vwc30gJHtldXNlcn0gIiRAIiB8fCBkaWUgImVuZXd1c2VyIGZhaWxlZCI7CiAg ICAgICAgICAgIGZpCiAgICAgICAgOzsKICAgICAgICAqKQogICAgICAgICAgICBpZiBbWyAteiAk QCBdXTsgdGhlbgogICAgICAgICAgICAgICAgdXNlcmFkZCAke29wdHN9ICR7ZXVzZXJ9IC1jICJh ZGRlZCBieSBwb3J0YWdlIGZvciAke1BOfSIgfHwgZGllICJlbmV3dXNlciBmYWlsZWQiOwogICAg ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBlaW5mbyAiIC0gRXh0cmE6ICRAIjsKICAgICAg ICAgICAgICAgIHVzZXJhZGQgJHtvcHRzfSAke2V1c2VyfSAiJEAiIHx8IGRpZSAiZW5ld3VzZXIg ZmFpbGVkIjsKICAgICAgICAgICAgZmkKICAgICAgICA7OwogICAgZXNhYzsKICAgIGlmIFtbICEg LWUgJHtST09UfS8ke2Vob21lfSBdXTsgdGhlbgogICAgICAgIGVpbmZvICIgLSBDcmVhdGluZyAk e2Vob21lfSBpbiAke1JPT1R9IjsKICAgICAgICBta2RpciAtcCAiJHtST09UfS8ke2Vob21lfSI7 CiAgICAgICAgY2hvd24gJHtldXNlcn0gIiR7Uk9PVH0vJHtlaG9tZX0iOwogICAgICAgIGNobW9k IDc1NSAiJHtST09UfS8ke2Vob21lfSI7CiAgICBmaTsKICAgIGV4cG9ydCBTQU5EQk9YX09OPSR7 b2xkc2FuZGJveH0KfQplcGF0Y2ggKCkgCnsgCiAgICBmdW5jdGlvbiBfZXBhdGNoX2RyYXdfbGlu ZSAoKSAKICAgIHsgCiAgICAgICAgW1sgLXogJDEgXV0gJiYgc2V0ICIkKHByaW50ZiAiJTY1cyIg JycpIjsKICAgICAgICBlY2hvICIkezEvLz8vPX0iCiAgICB9OwogICAgZnVuY3Rpb24gX2VwYXRj aF9hc3NlcnQgKCkgCiAgICB7IAogICAgICAgIGxvY2FsIF9waXBlc3RhdHVzPSR7UElQRVNUQVRV U1sqXX07CiAgICAgICAgW1sgJHtfcGlwZXN0YXR1cy8vIC99IC1lcSAwIF1dCiAgICB9OwogICAg bG9jYWwgUElQRV9DTUQ9IiI7CiAgICBsb2NhbCBTVERFUlJfVEFSR0VUPSIke1R9LyQkLm91dCI7 CiAgICBsb2NhbCBQQVRDSF9UQVJHRVQ9IiR7VH0vJCQucGF0Y2giOwogICAgbG9jYWwgUEFUQ0hf U1VGRklYPSIiOwogICAgbG9jYWwgU0lOR0xFX1BBVENIPSJubyI7CiAgICBsb2NhbCB4PSIiOwog ICAgdW5zZXQgUDRDT05GSUcgUDRQT1JUIFA0VVNFUjsKICAgIGlmIFsgIiQjIiAtZ3QgMSBdOyB0 aGVuCiAgICAgICAgbG9jYWwgbT0iIjsKICAgICAgICBmb3IgbSBpbiAiJEAiOwogICAgICAgIGRv CiAgICAgICAgICAgIGVwYXRjaCAiJHttfSI7CiAgICAgICAgZG9uZTsKICAgICAgICByZXR1cm4g MDsKICAgIGZpOwogICAgaWYgWyAtbiAiJDEiIC1hIC1mICIkMSIgXTsgdGhlbgogICAgICAgIFNJ TkdMRV9QQVRDSD0ieWVzIjsKICAgICAgICBsb2NhbCBFUEFUQ0hfU09VUkNFPSIkMSI7CiAgICAg ICAgbG9jYWwgRVBBVENIX1NVRkZJWD0iJHsxIyMqXC59IjsKICAgIGVsc2UKICAgICAgICBpZiBb IC1uICIkMSIgLWEgLWQgIiQxIiBdOyB0aGVuCiAgICAgICAgICAgIGlmIFsgIiR7RVBBVENIX0ZP UkNFfSIgPSAieWVzIiBdICYmIFsgLXogIiR7RVBBVENIX1NVRkZJWH0iIF07IHRoZW4KICAgICAg ICAgICAgICAgIGxvY2FsIEVQQVRDSF9TT1VSQ0U9IiQxLyoiOwogICAgICAgICAgICBlbHNlCiAg ICAgICAgICAgICAgICBsb2NhbCBFUEFUQ0hfU09VUkNFPSIkMS8qLiR7RVBBVENIX1NVRkZJWH0i OwogICAgICAgICAgICBmaTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGlmIFtbICEgLWQgJHtF UEFUQ0hfU09VUkNFfSBdXSB8fCBbWyAtbiAkMSBdXTsgdGhlbgogICAgICAgICAgICAgICAgaWYg WyAtbiAiJDEiIC1hICIke0VQQVRDSF9TT1VSQ0V9IiA9ICIke1dPUktESVJ9L3BhdGNoIiBdOyB0 aGVuCiAgICAgICAgICAgICAgICAgICAgRVBBVENIX1NPVVJDRT0iJDEiOwogICAgICAgICAgICAg ICAgZmk7CiAgICAgICAgICAgICAgICBlY2hvOwogICAgICAgICAgICAgICAgZWVycm9yICJDYW5u b3QgZmluZCBcJEVQQVRDSF9TT1VSQ0UhICBWYWx1ZSBmb3IgXCRFUEFUQ0hfU09VUkNFIGlzOiI7 CiAgICAgICAgICAgICAgICBlZXJyb3I7CiAgICAgICAgICAgICAgICBlZXJyb3IgIiAgJHtFUEFU Q0hfU09VUkNFfSI7CiAgICAgICAgICAgICAgICBlZXJyb3IgIiAgKCAke0VQQVRDSF9TT1VSQ0Uj IyovfSApIjsKICAgICAgICAgICAgICAgIGVjaG87CiAgICAgICAgICAgICAgICBkaWUgIkNhbm5v dCBmaW5kIFwkRVBBVENIX1NPVVJDRSEiOwogICAgICAgICAgICBmaTsKICAgICAgICAgICAgbG9j YWwgRVBBVENIX1NPVVJDRT0iJHtFUEFUQ0hfU09VUkNFfS8qLiR7RVBBVENIX1NVRkZJWH0iOwog ICAgICAgIGZpOwogICAgZmk7CiAgICBjYXNlICR7RVBBVENIX1NVRkZJWCMjKlwufSBpbiAKICAg ICAgICBiejIpCiAgICAgICAgICAgIFBJUEVfQ01EPSJiemlwMiAtZGMiOwogICAgICAgICAgICBQ QVRDSF9TVUZGSVg9ImJ6MiIKICAgICAgICA7OwogICAgICAgIGd6IHwgWiB8IHopCiAgICAgICAg ICAgIFBJUEVfQ01EPSJnemlwIC1kYyI7CiAgICAgICAgICAgIFBBVENIX1NVRkZJWD0iZ3oiCiAg ICAgICAgOzsKICAgICAgICBaSVAgfCB6aXApCiAgICAgICAgICAgIFBJUEVfQ01EPSJ1bnppcCAt cCI7CiAgICAgICAgICAgIFBBVENIX1NVRkZJWD0iemlwIgogICAgICAgIDs7CiAgICAgICAgKikK ICAgICAgICAgICAgUElQRV9DTUQ9ImNhdCI7CiAgICAgICAgICAgIFBBVENIX1NVRkZJWD0icGF0 Y2giCiAgICAgICAgOzsKICAgIGVzYWM7CiAgICBpZiBbICIke1NJTkdMRV9QQVRDSH0iID0gIm5v IiBdOyB0aGVuCiAgICAgICAgZWluZm8gIiR7RVBBVENIX01VTFRJX01TR30iOwogICAgZmk7CiAg ICBmb3IgeCBpbiAke0VQQVRDSF9TT1VSQ0V9OwogICAgZG8KICAgICAgICBpZiBbIC1mICR7eH0g XSAmJiAoIFsgIiR7U0lOR0xFX1BBVENIfSIgPSAieWVzIiAtbyAiJHt4L19hbGxffSIgIT0gIiR7 eH0iIC1vICIke3gvXyR7QVJDSH1ffSIgIT0gIiR7eH0iIF0gfHwgWyAiJHtFUEFUQ0hfRk9SQ0V9 IiA9ICJ5ZXMiIF0gKTsgdGhlbgogICAgICAgICAgICBsb2NhbCBjb3VudD0wOwogICAgICAgICAg ICBsb2NhbCBwb3B0cz0iJHtFUEFUQ0hfT1BUU30iOwogICAgICAgICAgICBsb2NhbCBwYXRjaG5h bWU9JHt4IyMqL307CiAgICAgICAgICAgIGlmIFsgLW4gIiR7RVBBVENIX0VYQ0xVREV9IiBdOyB0 aGVuCiAgICAgICAgICAgICAgICBpZiBbICIke0VQQVRDSF9FWENMVURFLyR7cGF0Y2huYW1lfX0i ICE9ICIke0VQQVRDSF9FWENMVURFfSIgXTsgdGhlbgogICAgICAgICAgICAgICAgICAgIGNvbnRp bnVlOwogICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgIGZpOwogICAgICAgICAgICBpZiBb ICIke1NJTkdMRV9QQVRDSH0iID0gInllcyIgXTsgdGhlbgogICAgICAgICAgICAgICAgaWYgWyAt biAiJHtFUEFUQ0hfU0lOR0xFX01TR30iIF07IHRoZW4KICAgICAgICAgICAgICAgICAgICBlaW5m byAiJHtFUEFUQ0hfU0lOR0xFX01TR30iOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAg ICAgICAgICAgIGVpbmZvICJBcHBseWluZyAke3BhdGNobmFtZX0gLi4uIjsKICAgICAgICAgICAg ICAgIGZpOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBlaW5mbyAiICAke3BhdGNo bmFtZX0gLi4uIjsKICAgICAgICAgICAgZmk7CiAgICAgICAgICAgIGVjaG8gIioqKioqICR7cGF0 Y2huYW1lfSAqKioqKiIgPiAke1NUREVSUl9UQVJHRVQlLyp9LyR7cGF0Y2huYW1lfS0ke1NUREVS Ul9UQVJHRVQjIyovfTsKICAgICAgICAgICAgZWNobyA+PiAke1NUREVSUl9UQVJHRVQlLyp9LyR7 cGF0Y2huYW1lfS0ke1NUREVSUl9UQVJHRVQjIyovfTsKICAgICAgICAgICAgd2hpbGUgWyAiJHtj b3VudH0iIC1sdCA1IF07IGRvCiAgICAgICAgICAgICAgICBfZXBhdGNoX2RyYXdfbGluZSAiKioq KiogJHtwYXRjaG5hbWV9ICoqKioqIiA+PiAke1NUREVSUl9UQVJHRVQlLyp9LyR7cGF0Y2huYW1l fS0ke1NUREVSUl9UQVJHRVQjIyovfTsKICAgICAgICAgICAgICAgIGVjaG8gPj4gJHtTVERFUlJf VEFSR0VUJS8qfS8ke3BhdGNobmFtZX0tJHtTVERFUlJfVEFSR0VUIyMqL307CiAgICAgICAgICAg ICAgICBpZiBbICIke1BBVENIX1NVRkZJWH0iICE9ICJwYXRjaCIgXTsgdGhlbgogICAgICAgICAg ICAgICAgICAgIGVjaG8gLW4gIlBJUEVfQ09NTUFORDoJIiA+PiAke1NUREVSUl9UQVJHRVQlLyp9 LyR7cGF0Y2huYW1lfS0ke1NUREVSUl9UQVJHRVQjIyovfTsKICAgICAgICAgICAgICAgICAgICBl Y2hvICIke1BJUEVfQ01EfSAke3h9ID4gJHtQQVRDSF9UQVJHRVR9IiA+PiAke1NUREVSUl9UQVJH RVQlLyp9LyR7cGF0Y2huYW1lfS0ke1NUREVSUl9UQVJHRVQjIyovfTsKICAgICAgICAgICAgICAg IGVsc2UKICAgICAgICAgICAgICAgICAgICBQQVRDSF9UQVJHRVQ9IiR7eH0iOwogICAgICAgICAg ICAgICAgZmk7CiAgICAgICAgICAgICAgICBlY2hvIC1uICJQQVRDSCBDT01NQU5EOgkgIiA+PiAk e1NUREVSUl9UQVJHRVQlLyp9LyR7cGF0Y2huYW1lfS0ke1NUREVSUl9UQVJHRVQjIyovfTsKICAg ICAgICAgICAgICAgIGVjaG8gInBhdGNoIC1wJHtjb3VudH0gJHtwb3B0c30gPCAke1BBVENIX1RB UkdFVH0iID4+ICR7U1RERVJSX1RBUkdFVCUvKn0vJHtwYXRjaG5hbWV9LSR7U1RERVJSX1RBUkdF VCMjKi99OwogICAgICAgICAgICAgICAgZWNobyA+PiAke1NUREVSUl9UQVJHRVQlLyp9LyR7cGF0 Y2huYW1lfS0ke1NUREVSUl9UQVJHRVQjIyovfTsKICAgICAgICAgICAgICAgIF9lcGF0Y2hfZHJh d19saW5lICIqKioqKiAke3BhdGNobmFtZX0gKioqKioiID4+ICR7U1RERVJSX1RBUkdFVCUvKn0v JHtwYXRjaG5hbWV9LSR7U1RERVJSX1RBUkdFVCMjKi99OwogICAgICAgICAgICAgICAgaWYgWyAi JHtQQVRDSF9TVUZGSVh9IiAhPSAicGF0Y2giIF07IHRoZW4KICAgICAgICAgICAgICAgICAgICBp ZiAhICggJHtQSVBFX0NNRH0gJHt4fSA+ICR7UEFUQ0hfVEFSR0VUfSApID4+ICR7U1RERVJSX1RB UkdFVCUvKn0vJHtwYXRjaG5hbWV9LSR7U1RERVJSX1RBUkdFVCMjKi99IDI+JjE7IHRoZW4KICAg ICAgICAgICAgICAgICAgICAgICAgZWNobzsKICAgICAgICAgICAgICAgICAgICAgICAgZWVycm9y ICJDb3VsZCBub3QgZXh0cmFjdCBwYXRjaCEiOwogICAgICAgICAgICAgICAgICAgICAgICBjb3Vu dD01OwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBm aTsKICAgICAgICAgICAgICAgIGZpOwogICAgICAgICAgICAgICAgaWYgKCBjYXQgJHtQQVRDSF9U QVJHRVR9IHwgcGF0Y2ggLXAke2NvdW50fSAke3BvcHRzfSAtLWRyeS1ydW4gLWY7CiAgICAgICAg ICAgICAgICBfZXBhdGNoX2Fzc2VydCApID4+ICR7U1RERVJSX1RBUkdFVCUvKn0vJHtwYXRjaG5h bWV9LSR7U1RERVJSX1RBUkdFVCMjKi99IDI+JjE7IHRoZW4KICAgICAgICAgICAgICAgICAgICBf ZXBhdGNoX2RyYXdfbGluZSAiKioqKiogJHtwYXRjaG5hbWV9ICoqKioqIiA+ICR7U1RERVJSX1RB UkdFVCUvKn0vJHtwYXRjaG5hbWV9LSR7U1RERVJSX1RBUkdFVCMjKi99LnJlYWw7CiAgICAgICAg ICAgICAgICAgICAgZWNobyA+PiAke1NUREVSUl9UQVJHRVQlLyp9LyR7cGF0Y2huYW1lfS0ke1NU REVSUl9UQVJHRVQjIyovfS5yZWFsOwogICAgICAgICAgICAgICAgICAgIGVjaG8gIkFDVFVBTExZ IEFQUExZSU5HICR7cGF0Y2huYW1lfSAuLi4iID4+ICR7U1RERVJSX1RBUkdFVCUvKn0vJHtwYXRj aG5hbWV9LSR7U1RERVJSX1RBUkdFVCMjKi99LnJlYWw7CiAgICAgICAgICAgICAgICAgICAgZWNo byA+PiAke1NUREVSUl9UQVJHRVQlLyp9LyR7cGF0Y2huYW1lfS0ke1NUREVSUl9UQVJHRVQjIyov fS5yZWFsOwogICAgICAgICAgICAgICAgICAgIF9lcGF0Y2hfZHJhd19saW5lICIqKioqKiAke3Bh dGNobmFtZX0gKioqKioiID4+ICR7U1RERVJSX1RBUkdFVCUvKn0vJHtwYXRjaG5hbWV9LSR7U1RE RVJSX1RBUkdFVCMjKi99LnJlYWw7CiAgICAgICAgICAgICAgICAgICAgY2F0ICR7UEFUQ0hfVEFS R0VUfSB8IHBhdGNoIC1wJHtjb3VudH0gJHtwb3B0c30gPj4gJHtTVERFUlJfVEFSR0VUJS8qfS8k e3BhdGNobmFtZX0tJHtTVERFUlJfVEFSR0VUIyMqL30ucmVhbCAyPiYxOwogICAgICAgICAgICAg ICAgICAgIF9lcGF0Y2hfYXNzZXJ0OwogICAgICAgICAgICAgICAgICAgIGlmIFsgIiQ/IiAtbmUg MCBdOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgIGNhdCAke1NUREVSUl9UQVJHRVQlLyp9 LyR7cGF0Y2huYW1lfS0ke1NUREVSUl9UQVJHRVQjIyovfS5yZWFsID4+ICR7U1RERVJSX1RBUkdF VCUvKn0vJHtwYXRjaG5hbWV9LSR7U1RERVJSX1RBUkdFVCMjKi99OwogICAgICAgICAgICAgICAg ICAgICAgICBlY2hvOwogICAgICAgICAgICAgICAgICAgICAgICBlZXJyb3IgIkEgZHJ5LXJ1biBv ZiBwYXRjaCBjb21tYW5kIHN1Y2NlZWRlZCwgYnV0IGFjdHVhbGx5IjsKICAgICAgICAgICAgICAg ICAgICAgICAgZWVycm9yICJhcHBseWluZyB0aGUgcGF0Y2ggZmFpbGVkISI7CiAgICAgICAgICAg ICAgICAgICAgICAgIGNvdW50PTU7CiAgICAgICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAg ICAgICAgICAgcm0gLWYgJHtTVERFUlJfVEFSR0VUJS8qfS8ke3BhdGNobmFtZX0tJHtTVERFUlJf VEFSR0VUIyMqL30ucmVhbDsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg ICAgIGZpOwogICAgICAgICAgICAgICAgY291bnQ9JCgoY291bnQgKyAxKSk7CiAgICAgICAgICAg IGRvbmU7CiAgICAgICAgICAgIGlmIFsgIiR7UEFUQ0hfU1VGRklYfSIgIT0gInBhdGNoIiBdOyB0 aGVuCiAgICAgICAgICAgICAgICBybSAtZiAke1BBVENIX1RBUkdFVH07CiAgICAgICAgICAgIGZp OwogICAgICAgICAgICBpZiBbICIke2NvdW50fSIgLWVxIDUgXTsgdGhlbgogICAgICAgICAgICAg ICAgZWNobzsKICAgICAgICAgICAgICAgIGVlcnJvciAiRmFpbGVkIFBhdGNoOiAke3BhdGNobmFt ZX0gISI7CiAgICAgICAgICAgICAgICBlZXJyb3IgIiAoICR7UEFUQ0hfVEFSR0VUfSApIjsKICAg ICAgICAgICAgICAgIGVlcnJvcjsKICAgICAgICAgICAgICAgIGVlcnJvciAiSW5jbHVkZSBpbiB5 b3VyIGJ1Z3JlcG9ydCB0aGUgY29udGVudHMgb2Y6IjsKICAgICAgICAgICAgICAgIGVlcnJvcjsK ICAgICAgICAgICAgICAgIGVlcnJvciAiICAke1NUREVSUl9UQVJHRVQlLyp9LyR7cGF0Y2huYW1l fS0ke1NUREVSUl9UQVJHRVQjIyovfSI7CiAgICAgICAgICAgICAgICBlY2hvOwogICAgICAgICAg ICAgICAgZGllICJGYWlsZWQgUGF0Y2g6ICR7cGF0Y2huYW1lfSEiOwogICAgICAgICAgICBmaTsK ICAgICAgICAgICAgcm0gLWYgJHtTVERFUlJfVEFSR0VUJS8qfS8ke3BhdGNobmFtZX0tJHtTVERF UlJfVEFSR0VUIyMqL307CiAgICAgICAgICAgIGVlbmQgMDsKICAgICAgICBmaTsKICAgIGRvbmU7 CiAgICBpZiBbICIke1NJTkdMRV9QQVRDSH0iID0gIm5vIiBdOyB0aGVuCiAgICAgICAgZWluZm8g IkRvbmUgd2l0aCBwYXRjaGluZyI7CiAgICBmaQp9CmVwYXVzZSAoKSAKeyAKICAgIFtbIC16ICR7 RVBBVVNFX0lHTk9SRX0gXV0gJiYgc2xlZXAgJHsxOi01fQp9CmVwdW50X2N4eCAoKSAKeyAKICAg IGxvY2FsIGRpcj0kMTsKICAgIFtbIC16ICR7ZGlyfSBdXSAmJiBkaXI9JHtTfTsKICAgIGViZWdp biAiUmVtb3ZpbmcgdXNlbGVzcyBDKysgY2hlY2tzIjsKICAgIGxvY2FsIGY7CiAgICBmaW5kICIk e2Rpcn0iIC1uYW1lIGNvbmZpZ3VyZSB8IHdoaWxlIHJlYWQgZjsgZG8KICAgICAgICBwYXRjaCAt LW5vLWJhY2t1cC1pZi1taXNtYXRjaCAtcDAgIiR7Zn0iICIke1BPUlRESVJ9L2VjbGFzcy9FTFQt cGF0Y2hlcy9ub2N4eC9ub2N4eC5wYXRjaCIgPiAvZGV2L251bGw7CiAgICBkb25lOwogICAgZWVu ZCAwCn0KZXN2bl9jbGVhbiAoKSAKeyAKICAgIFtbIC16ICQqIF1dICYmIHNldCAtLSAuOwogICAg ZmluZCAiJEAiIC10eXBlIGQgLW5hbWUgJy5zdm4nIC1wcnVuZSAtcHJpbnQwIHwgeGFyZ3MgLTAg cm0gLXJmCn0KZmlsdGVyLWZsYWdzICgpIAp7IAogICAgX2ZpbHRlci1oYXJkZW5lZCAiJEAiOwog ICAgX2ZpbHRlci12YXIgQ0ZMQUdTICIkQCI7CiAgICBfZmlsdGVyLXZhciBDUFBGTEFHUyAiJEAi OwogICAgX2ZpbHRlci12YXIgQ1hYRkxBR1MgIiRAIjsKICAgIHJldHVybiAwCn0KZmlsdGVyLWxk ZmxhZ3MgKCkgCnsgCiAgICBfZmlsdGVyLXZhciBMREZMQUdTICIkQCI7CiAgICByZXR1cm4gMAp9 CmZpbHRlci1sZnMtZmxhZ3MgKCkgCnsgCiAgICBbWyAtbiAkQCBdXSAmJiBkaWUgImZpbHRlci1s ZnMtZmxhZ3MgdGFrZXMgbm8gYXJndW1lbnRzIjsKICAgIGZpbHRlci1mbGFncyAtRF9GSUxFX09G RlNFVF9CSVRTPTY0IC1EX0xBUkdFRklMRV9TT1VSQ0UgLURfTEFSR0VGSUxFNjRfU09VUkNFCn0K ZmlsdGVyLW1mcG1hdGggKCkgCnsgCiAgICBsb2NhbCBvcmlnX21mcG1hdGggbmV3X21hdGggcHJ1 bmVfbWF0aDsKICAgIG9yaWdfbWZwbWF0aD0kKGdldC1mbGFnIC1tZnBtYXRoKTsKICAgIG5ld19t YXRoPSQoZ2V0LWZsYWcgbWZwbWF0aCk7CiAgICBuZXdfbWF0aD0iICR7bmV3X21hdGgvLywvIH0g IjsKICAgIHBydW5lX21hdGg9IiI7CiAgICBmb3IgcHJ1bmVfbWF0aCBpbiAiJEAiOwogICAgZG8K ICAgICAgICBuZXdfbWF0aD0ke25ld19tYXRoLyAke3BydW5lX21hdGh9IC8gfTsKICAgIGRvbmU7 CiAgICBuZXdfbWF0aD0kKGVjaG8gJHtuZXdfbWF0aH0pOwogICAgbmV3X21hdGg9JHtuZXdfbWF0 aC8vIC8sfTsKICAgIGlmIFtbIC16ICR7bmV3X21hdGh9IF1dOyB0aGVuCiAgICAgICAgZmlsdGVy LWZsYWdzICR7b3JpZ19tZnBtYXRofTsKICAgIGVsc2UKICAgICAgICByZXBsYWNlLWZsYWdzICR7 b3JpZ19tZnBtYXRofSAtbWZwbWF0aD0ke25ld19tYXRofTsKICAgIGZpOwogICAgcmV0dXJuIDAK fQpmaWx0ZXJfaW52YWxpZF9mbGFncyAoKSAKeyAKICAgIGxvY2FsIGZsYWcgYnJva2VuX2ZsYWdz OwogICAgZXZhbCBicm9rZW5fZmxhZ3M9KCQoZ2V0X2Jyb2tlbl9mbGFncyAkKGdldFBST0cgQ0Mg Z2NjKSBjICR7Q0ZMQUdTfSkpOwogICAgZm9yIGZsYWcgaW4gIiR7YnJva2VuX2ZsYWdzW0BdfSI7 CiAgICBkbwogICAgICAgIGV3YXJuICJGaWx0ZXJpbmcgb3V0IGludmFsaWQgQ0ZMQUcgXCIke2Zs YWd9XCIiOwogICAgICAgIENGTEFHUz0iJChyZW1vdmVfZmxhZyAiJHtmbGFnfSIgJHtDRkxBR1N9 KSI7CiAgICBkb25lOwogICAgZXZhbCBicm9rZW5fZmxhZ3M9KCQoZ2V0X2Jyb2tlbl9mbGFncyAk KGdldFBST0cgQ1hYIGcrKykgYysrICR7Q1hYRkxBR1N9KSk7CiAgICBmb3IgZmxhZyBpbiAiJHti cm9rZW5fZmxhZ3NbQF19IjsKICAgIGRvCiAgICAgICAgZXdhcm4gIkZpbHRlcmluZyBvdXQgaW52 YWxpZCBDWFhGTEFHIFwiJHtmbGFnfVwiIjsKICAgICAgICBDWFhGTEFHUz0iJChyZW1vdmVfZmxh ZyAiJHtmbGFnfSIgJHtDWFhGTEFHU30pIjsKICAgIGRvbmUKfQpmaW5kX3VucGFja2FibGVfZmls ZSAoKSAKeyAKICAgIGxvY2FsIHNyYz0kMTsKICAgIGlmIFtbIC16ICR7c3JjfSBdXTsgdGhlbgog ICAgICAgIHNyYz0ke0RJU1RESVJ9LyR7QX07CiAgICBlbHNlCiAgICAgICAgaWYgW1sgLWUgJHtE SVNURElSfS8ke3NyY30gXV07IHRoZW4KICAgICAgICAgICAgc3JjPSR7RElTVERJUn0vJHtzcmN9 OwogICAgICAgIGVsc2UKICAgICAgICAgICAgaWYgW1sgLWUgJHtQV0R9LyR7c3JjfSBdXTsgdGhl bgogICAgICAgICAgICAgICAgc3JjPSR7UFdEfS8ke3NyY307CiAgICAgICAgICAgIGVsc2UKICAg ICAgICAgICAgICAgIGlmIFtbIC1lICR7c3JjfSBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAg IHNyYz0ke3NyY307CiAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgZmk7CiAgICAgICAg Zmk7CiAgICBmaTsKICAgIFtbICEgLWUgJHtzcmN9IF1dICYmIHJldHVybiAxOwogICAgZWNobyAi JHtzcmN9Igp9CmdjYy1mdWxsdmVyc2lvbiAoKSAKeyAKICAgICQodGMtZ2V0Q0MgIiRAIikgLWR1 bXB2ZXJzaW9uCn0KZ2NjLW1ham9yLXZlcnNpb24gKCkgCnsgCiAgICBnY2MtdmVyc2lvbiAiJEAi IHwgY3V0IC1mMSAtZC4KfQpnY2MtbWljcm8tdmVyc2lvbiAoKSAKeyAKICAgIGdjYy1mdWxsdmVy c2lvbiAiJEAiIHwgY3V0IC1mMyAtZC4gfCBjdXQgLWYxIC1kLQp9CmdjYy1taW5vci12ZXJzaW9u ICgpIAp7IAogICAgZ2NjLXZlcnNpb24gIiRAIiB8IGN1dCAtZjIgLWQuCn0KZ2NjLXNwZWNzLWRp cmVjdGl2ZSAoKSAKeyAKICAgIGxvY2FsIGRpcmVjdGl2ZSBzdWJkbmFtZSBzdWJkaXJlY3RpdmU7 CiAgICBkaXJlY3RpdmU9IiQoX2djYy1zcGVjcy1kaXJlY3RpdmVfcmF3ICQxKSI7CiAgICB3aGls ZSBbWyAke2RpcmVjdGl2ZX0gPT0gKiVcKCpcKSogXV07IGRvCiAgICAgICAgc3ViZG5hbWU9JHtk aXJlY3RpdmUvKiVcKH07CiAgICAgICAgc3ViZG5hbWU9JHtzdWJkbmFtZS9cKSp9OwogICAgICAg IHN1YmRpcmVjdGl2ZT0iJChfZ2NjLXNwZWNzLWRpcmVjdGl2ZV9yYXcgJHtzdWJkbmFtZX0pIjsK ICAgICAgICBkaXJlY3RpdmU9IiR7ZGlyZWN0aXZlLy9cJSgke3N1YmRuYW1lfSkvJHtzdWJkaXJl Y3RpdmV9fSI7CiAgICBkb25lOwogICAgZWNobyAiJHtkaXJlY3RpdmV9IjsKICAgIHJldHVybiAw Cn0KZ2NjLXNwZWNzLW5vdyAoKSAKeyAKICAgIGxvY2FsIGRpcmVjdGl2ZTsKICAgIGRpcmVjdGl2 ZT0kKGdjYy1zcGVjcy1kaXJlY3RpdmUgbGlua19jb21tYW5kKTsKICAgIHJldHVybiAkKFtbICR7 ZGlyZWN0aXZlL1x7IW5vbm93On0gIT0gJHtkaXJlY3RpdmV9IF1dKQp9CmdjYy1zcGVjcy1waWUg KCkgCnsgCiAgICBsb2NhbCBkaXJlY3RpdmU7CiAgICBkaXJlY3RpdmU9JChnY2Mtc3BlY3MtZGly ZWN0aXZlIGNjMSk7CiAgICByZXR1cm4gJChbWyAke2RpcmVjdGl2ZS9ceyFub3BpZTp9ICE9ICR7 ZGlyZWN0aXZlfSBdXSkKfQpnY2Mtc3BlY3MtcmVscm8gKCkgCnsgCiAgICBsb2NhbCBkaXJlY3Rp dmU7CiAgICBkaXJlY3RpdmU9JChnY2Mtc3BlY3MtZGlyZWN0aXZlIGxpbmtfY29tbWFuZCk7CiAg ICByZXR1cm4gJChbWyAke2RpcmVjdGl2ZS9ceyFub3JlbHJvOn0gIT0gJHtkaXJlY3RpdmV9IF1d KQp9CmdjYy1zcGVjcy1zc3AgKCkgCnsgCiAgICBsb2NhbCBkaXJlY3RpdmU7CiAgICBkaXJlY3Rp dmU9JChnY2Mtc3BlY3MtZGlyZWN0aXZlIGNjMSk7CiAgICByZXR1cm4gJChbWyAke2RpcmVjdGl2 ZS9ceyFmbm8tc3RhY2stcHJvdGVjdG9yOn0gIT0gJHtkaXJlY3RpdmV9IF1dKQp9CmdjYy1zcGVj cy1zc3AtdG8tYWxsICgpIAp7IAogICAgbG9jYWwgZGlyZWN0aXZlOwogICAgZGlyZWN0aXZlPSQo Z2NjLXNwZWNzLWRpcmVjdGl2ZSBjYzEpOwogICAgcmV0dXJuICQoW1sgJHtkaXJlY3RpdmUvXHsh Zm5vLXN0YWNrLXByb3RlY3Rvci1hbGw6fSAhPSAke2RpcmVjdGl2ZX0gXV0pCn0KZ2NjLXZlcnNp b24gKCkgCnsgCiAgICBnY2MtZnVsbHZlcnNpb24gIiRAIiB8IGN1dCAtZjEsMiAtZC4KfQpnZW5f dXNyX2xkc2NyaXB0ICgpIAp7IAogICAgbG9jYWwgbGliIGxpYmRpcj0kKGdldF9saWJkaXIpIG91 dHB1dF9mb3JtYXQ9IiI7CiAgICBkb2RpciAvdXNyLyR7bGliZGlyfTsKICAgIG91dHB1dF9mb3Jt YXQ9JCgkKHRjLWdldENDKSAke0NGTEFHU30gJHtMREZMQUdTfSAtV2wsLS12ZXJib3NlIDI+JjEg fCBzZWQgLW4gJ3MvXk9VVFBVVF9GT1JNQVQoIlwoW14iXSpcKSIsLiovXDEvcCcpOwogICAgW1sg LW4gJHtvdXRwdXRfZm9ybWF0fSBdXSAmJiBvdXRwdXRfZm9ybWF0PSJPVVRQVVRfRk9STUFUICgg JHtvdXRwdXRfZm9ybWF0fSApIjsKICAgIGZvciBsaWIgaW4gIiRAIjsKICAgIGRvCiAgICAgICAg aWYgW1sgJHtVU0VSTEFORH0gPT0gIkRhcndpbiIgXV07IHRoZW4KICAgICAgICAgICAgZXdhcm4g Ik5vdCBjcmVhdGluZyBmYWtlIGR5bmFtaWMgbGlicmFyeSBmb3IgJGxpYiBvbiBEYXJ3aW47IjsK ICAgICAgICAgICAgZXdhcm4gIm1ha2luZyBhIHN5bWxpbmsgaW5zdGVhZC4iOwogICAgICAgICAg ICBkb3N5bSAiLyR7bGliZGlyfS8ke2xpYn0iICIvdXNyLyR7bGliZGlyfS8ke2xpYn0iOwogICAg ICAgIGVsc2UKICAgICAgICAgICAgY2F0ID4gIiR7RH0vdXNyLyR7bGliZGlyfS8ke2xpYn0iICA8 PC1FTkRfTERTQ1JJUFQKLyogR05VIGxkIHNjcmlwdAogICBTaW5jZSBHZW50b28gaGFzIGNyaXRp Y2FsIGR5bmFtaWMgbGlicmFyaWVzCiAgIGluIC9saWIsIGFuZCB0aGUgc3RhdGljIHZlcnNpb25z IGluIC91c3IvbGliLAogICB3ZSBuZWVkIHRvIGhhdmUgYSAiZmFrZSIgZHluYW1pYyBsaWIgaW4g L3Vzci9saWIsCiAgIG90aGVyd2lzZSB3ZSBydW4gaW50byBsaW5raW5nIHByb2JsZW1zLgoKICAg U2VlIGJ1ZyBodHRwOi8vYnVncy5nZW50b28ub3JnLzQ0MTEgZm9yIG1vcmUgaW5mby4KICovCiR7 b3V0cHV0X2Zvcm1hdH0KR1JPVVAgKCAvJHtsaWJkaXJ9LyR7bGlifSApCkVORF9MRFNDUklQVAoK ICAgICAgICBmaQogICAgICAgIGZwZXJtcyBhK3ggIi91c3IvJHtsaWJkaXJ9LyR7bGlifSIgfHwg ZGllICJjb3VsZCBub3QgY2hhbmdlIHBlcm1zIG9uICR7bGlifSI7CiAgICBkb25lCn0KZ2V0LWZs YWcgKCkgCnsgCiAgICBsb2NhbCBmIGZpbmRmbGFnPSIkMSI7CiAgICBmb3IgZiBpbiAke0NGTEFH U30gJHtDWFhGTEFHU307CiAgICBkbwogICAgICAgIGlmIFsgIiR7Zi8ke2ZpbmRmbGFnfX0iICE9 ICIke2Z9IiBdOyB0aGVuCiAgICAgICAgICAgIHByaW50ZiAiJXNcbiIgIiR7Zi8tJHtmaW5kZmxh Z309fSI7CiAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgIGZpOwogICAgZG9uZTsKICAgIHJl dHVybiAxCn0KZ2V0UFJPRyAoKSAKeyAKICAgIGxvY2FsIHZhcj0kMSBwcm9nPSQyOwogICAgaWYg W1sgLW4gJHshdmFyfSBdXTsgdGhlbgogICAgICAgIGVjaG8gIiR7IXZhcn0iOwogICAgICAgIHJl dHVybiAwOwogICAgZmk7CiAgICBsb2NhbCBzZWFyY2g9OwogICAgW1sgLW4gJDMgXV0gJiYgc2Vh cmNoPSQodHlwZSAtcCAiJDMtJHtwcm9nfSIpOwogICAgW1sgLXogJHtzZWFyY2h9ICYmIC1uICR7 Q0hPU1R9IF1dICYmIHNlYXJjaD0kKHR5cGUgLXAgIiR7Q0hPU1R9LSR7cHJvZ30iKTsKICAgIFtb IC1uICR7c2VhcmNofSBdXSAmJiBwcm9nPSR7c2VhcmNoIyMqL307CiAgICBleHBvcnQgJHt2YXJ9 PSR7cHJvZ307CiAgICBlY2hvICIkeyF2YXJ9Igp9CmdldF9hYmlfQVNGTEFHUyAoKSAKeyAKICAg IGdldF9hYmlfdmFyIEFTRkxBR1MgIiRAIgp9CmdldF9hYmlfQ0RFRklORSAoKSAKeyAKICAgIGdl dF9hYmlfdmFyIENERUZJTkUgIiRAIgp9CmdldF9hYmlfQ0ZMQUdTICgpIAp7IAogICAgZ2V0X2Fi aV92YXIgQ0ZMQUdTICIkQCIKfQpnZXRfYWJpX0NIT1NUICgpIAp7IAogICAgZ2V0X2FiaV92YXIg Q0hPU1QgIiRAIgp9CmdldF9hYmlfQ1RBUkdFVCAoKSAKeyAKICAgIGdldF9hYmlfdmFyIENUQVJH RVQgIiRAIgp9CmdldF9hYmlfRkFLRV9UQVJHRVRTICgpIAp7IAogICAgZ2V0X2FiaV92YXIgRkFL RV9UQVJHRVRTICIkQCIKfQpnZXRfYWJpX0xERkxBR1MgKCkgCnsgCiAgICBnZXRfYWJpX3ZhciBM REZMQUdTICIkQCIKfQpnZXRfYWJpX0xJQkRJUiAoKSAKeyAKICAgIGdldF9hYmlfdmFyIExJQkRJ UiAiJEAiCn0KZ2V0X2FiaV92YXIgKCkgCnsgCiAgICBsb2NhbCBmbGFnPSQxOwogICAgbG9jYWwg YWJpOwogICAgaWYgWyAkIyAtZ3QgMSBdOyB0aGVuCiAgICAgICAgYWJpPSR7Mn07CiAgICBlbHNl CiAgICAgICAgaWYgWyAtbiAiJHtBQkl9IiBdOyB0aGVuCiAgICAgICAgICAgIGFiaT0ke0FCSX07 CiAgICAgICAgZWxzZQogICAgICAgICAgICBpZiBbIC1uICIke0RFRkFVTFRfQUJJfSIgXTsgdGhl bgogICAgICAgICAgICAgICAgYWJpPSR7REVGQVVMVF9BQkl9OwogICAgICAgICAgICBlbHNlCiAg ICAgICAgICAgICAgICBhYmk9ImRlZmF1bHQiOwogICAgICAgICAgICBmaTsKICAgICAgICBmaTsK ICAgIGZpOwogICAgbG9jYWwgdmFyPSIke2ZsYWd9XyR7YWJpfSI7CiAgICBlY2hvICR7IXZhcn0K fQpnZXRfYWxsX2FiaXMgKCkgCnsgCiAgICBsb2NhbCBvcmRlcj0iIjsKICAgIGlmIFtbIC16ICR7 TVVMVElMSUJfQUJJU30gXV07IHRoZW4KICAgICAgICBlY2hvICJkZWZhdWx0IjsKICAgICAgICBy ZXR1cm4gMDsKICAgIGZpOwogICAgZm9yIHggaW4gJHtNVUxUSUxJQl9BQklTfTsKICAgIGRvCiAg ICAgICAgaWYgW1sgJHt4fSAhPSAke0RFRkFVTFRfQUJJfSBdXTsgdGhlbgogICAgICAgICAgICBv cmRlcj0iJHtvcmRlcjorJHtvcmRlcn0gfSR7eH0iOwogICAgICAgIGZpOwogICAgZG9uZTsKICAg IG9yZGVyPSIke29yZGVyOiske29yZGVyfSB9JHtERUZBVUxUX0FCSX0iOwogICAgZWNobyAke29y ZGVyfTsKICAgIHJldHVybiAwCn0KZ2V0X2FsbF9saWJkaXJzICgpIAp7IAogICAgbG9jYWwgbGli ZGlycz0ibGliIjsKICAgIGxvY2FsIGFiaTsKICAgIGxvY2FsIGRpcjsKICAgIGZvciBhYmkgaW4g JHtNVUxUSUxJQl9BQklTfTsKICAgIGRvCiAgICAgICAgWyAiJChnZXRfYWJpX0xJQkRJUiAke2Fi aX0pIiAhPSAibGliIiBdICYmIGxpYmRpcnM9IiR7bGliZGlyc30gJChnZXRfYWJpX0xJQkRJUiAk e2FiaX0pIjsKICAgIGRvbmU7CiAgICBlY2hvICIke2xpYmRpcnN9Igp9CmdldF9ibWFrZSAoKSAK eyAKICAgIGlmIFtbICR7VVNFUkxBTkR9ID09ICpCU0QgXV07IHRoZW4KICAgICAgICBlY2hvIG1h a2U7CiAgICBlbHNlCiAgICAgICAgaWYgW1sgJHtVU0VSTEFORH0gPT0gIkRhcndpbiIgXV07IHRo ZW4KICAgICAgICAgICAgZWNobyBic2RtYWtlOwogICAgICAgIGVsc2UKICAgICAgICAgICAgZWNo byBwbWFrZTsKICAgICAgICBmaTsKICAgIGZpCn0KZ2V0X2Jyb2tlbl9mbGFncyAoKSAKeyAKICAg IGxvY2FsIG15cHJvZz0iJHsxfSIgbGFuZz0iJHsyfSI7CiAgICBzaGlmdCAyOwogICAgZWNobyAn bWFpbigpe30nIHwgTENfQUxMPUMgJHtteXByb2d9ICR7QH0gLXggJHtsYW5nfSAtbyAvZGV2L251 bGwgLSAyPiYxIHwgZWdyZXAgInVucmVjb2duaXplZCAuKm9wdGlvbiIgfCBlZ3JlcCAtbyAtLSAn KCdcJyd8XCJ8YCktLionIHwgc2VkIC1yICdzLygnXCcnfGB8IikvL2c7IHMvXi8iLzsgcy8kLyIv JzsKICAgIGVjaG8gJ21haW4oKXt9JyB8IExDX0FMTD1DICR7bXlwcm9nfSAke0B9IC14ICR7bGFu Z30gLW8gL2Rldi9udWxsIC0gMj4mMSB8IGVncmVwICJ1bnJlY29nbmlzZWQgZGVidWcgb3V0cHV0 IiB8IGVncmVwIC1vIC0tICcoJ1wnJ3xcInxgKS4qJyB8IHNlZCAtciAncy8oJ1wnJ3xgfCIpLy9n OyBzL14vIi1nLzsgcy8kLyIvJwp9CmdldF9pbnN0YWxsX2FiaXMgKCkgCnsgCiAgICBsb2NhbCBv cmRlcj0iIjsKICAgIGlmIFtbIC16ICR7TVVMVElMSUJfQUJJU30gXV07IHRoZW4KICAgICAgICBl Y2hvICJkZWZhdWx0IjsKICAgICAgICByZXR1cm4gMDsKICAgIGZpOwogICAgaWYgW1sgJHtFTVVM VElMSUJfUEtHfSA9PSAidHJ1ZSIgXV07IHRoZW4KICAgICAgICBmb3IgeCBpbiAke01VTFRJTElC X0FCSVN9OwogICAgICAgIGRvCiAgICAgICAgICAgIGlmIFtbICR7eH0gIT0gIiR7REVGQVVMVF9B Qkl9IiBdXTsgdGhlbgogICAgICAgICAgICAgICAgaGFzcSAke3h9ICR7QUJJX0RFTll9IHx8IG9y ZGVyYT0iJHtvcmRlcmF9ICR7eH0iOwogICAgICAgICAgICBmaTsKICAgICAgICBkb25lOwogICAg ICAgIGhhc3EgJHtERUZBVUxUX0FCSX0gJHtBQklfREVOWX0gfHwgb3JkZXI9IiR7b3JkZXJhfSAk e0RFRkFVTFRfQUJJfSI7CiAgICAgICAgaWYgW1sgLW4gJHtBQklfQUxMT1d9IF1dOyB0aGVuCiAg ICAgICAgICAgIGxvY2FsIG9yZGVyYT0iIjsKICAgICAgICAgICAgZm9yIHggaW4gJHtvcmRlcn07 CiAgICAgICAgICAgIGRvCiAgICAgICAgICAgICAgICBpZiBoYXNxICR7eH0gJHtBQklfQUxMT1d9 OyB0aGVuCiAgICAgICAgICAgICAgICAgICAgb3JkZXJhPSIke29yZGVyYX0gJHt4fSI7CiAgICAg ICAgICAgICAgICBmaTsKICAgICAgICAgICAgZG9uZTsKICAgICAgICAgICAgb3JkZXI9JHtvcmRl cmF9OwogICAgICAgIGZpOwogICAgZWxzZQogICAgICAgIG9yZGVyPSR7REVGQVVMVF9BQkl9Owog ICAgZmk7CiAgICBpZiBbWyAteiAke29yZGVyfSBdXTsgdGhlbgogICAgICAgIGRpZSAiVGhlIEFC SSBsaXN0IGlzIGVtcHR5LiAgQXJlIHlvdSB1c2luZyBhIHByb3BlciBtdWx0aWxpYiBwcm9maWxl PyAgUGVyaGFwcyB5b3VyIFVTRSBmbGFncyBvciBNVUxUSUxJQl9BQklTIGFyZSB0b28gcmVzdHJp Y3RpdmUgZm9yIHRoaXMgcGFja2FnZS4iOwogICAgZmk7CiAgICBlY2hvICR7b3JkZXJ9OwogICAg cmV0dXJuIDAKfQpnZXRfbGliZGlyICgpIAp7IAogICAgbG9jYWwgQ09ORl9MSUJESVI7CiAgICBp ZiBbIC1uICIke0NPTkZfTElCRElSX09WRVJSSURFfSIgXTsgdGhlbgogICAgICAgIGVjaG8gJHtD T05GX0xJQkRJUl9PVkVSUklERX07CiAgICBlbHNlCiAgICAgICAgZ2V0X2FiaV9MSUJESVI7CiAg ICBmaQp9CmdldF9saWJkaXJfb3ZlcnJpZGUgKCkgCnsgCiAgICBpZiBoYXNfbXVsdGlsaWJfcHJv ZmlsZTsgdGhlbgogICAgICAgIGVlcnJvciAiZ2V0X2xpYmRpcl9vdmVycmlkZSBjYWxsZWQsIGJ1 dCBpdCBzaG91bGRuJ3QgYmUgbmVlZGVkIHdpdGggdGhlIG5ldyBtdWx0aWxpYiBhcHByb2FjaC4g IFBsZWFzZSBmaWxlIGEgYnVnIGF0IGh0dHA6Ly9idWdzLmdlbnRvby5vcmcgYW5kIGFzc2lnbiBp dCB0byBlcmFkaWNhdG9yQGdlbnRvby5vcmciOwogICAgICAgIGV4aXQgMTsKICAgIGZpOwogICAg Q09ORl9MSUJESVI9IiQxIjsKICAgIENPTkZfTElCRElSX09WRVJSSURFPSIkMSI7CiAgICBMSUJE SVJfZGVmYXVsdD0iJDEiCn0KZ2V0X2xpYm5hbWUgKCkgCnsgCiAgICBsb2NhbCBsaWJuYW1lOwog ICAgbG9jYWwgdmVyPSQxOwogICAgY2FzZSAke0NIT1NUfSBpbiAKICAgICAgICAqLWRhcndpbiop CiAgICAgICAgICAgIGxpYm5hbWU9ImR5bGliIgogICAgICAgIDs7CiAgICAgICAgKikKICAgICAg ICAgICAgbGlibmFtZT0ic28iCiAgICAgICAgOzsKICAgIGVzYWM7CiAgICBpZiBbWyAteiAkQCBd XTsgdGhlbgogICAgICAgIGVjaG8gIi4ke2xpYm5hbWV9IjsKICAgIGVsc2UKICAgICAgICBmb3Ig dmVyIGluICIkQCI7CiAgICAgICAgZG8KICAgICAgICAgICAgY2FzZSAke0NIT1NUfSBpbiAKICAg ICAgICAgICAgICAgICotZGFyd2luKikKICAgICAgICAgICAgICAgICAgICBlY2hvICIuJHt2ZXJ9 LiR7bGlibmFtZX0iCiAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgKikKICAgICAg ICAgICAgICAgICAgICBlY2hvICIuJHtsaWJuYW1lfS4ke3Zlcn0iCiAgICAgICAgICAgICAgICA7 OwogICAgICAgICAgICBlc2FjOwogICAgICAgIGRvbmU7CiAgICBmaQp9CmdldF9tbF9pbmNkaXIg KCkgCnsgCiAgICBsb2NhbCBkaXI9L3Vzci9pbmNsdWRlOwogICAgaWYgW1sgJCMgLWd0IDAgXV07 IHRoZW4KICAgICAgICBpbmNkaXI9JDE7CiAgICAgICAgc2hpZnQ7CiAgICBmaTsKICAgIGlmIFtb IC16ICIke01VTFRJTElCX0FCSVN9IiBdXTsgdGhlbgogICAgICAgIGVjaG8gJHtpbmNkaXJ9Owog ICAgICAgIHJldHVybiAwOwogICAgZmk7CiAgICBsb2NhbCBhYmk9JHtBQkktJHtERUZBVUxUX0FC SX19OwogICAgaWYgW1sgJCMgLWd0IDAgXV07IHRoZW4KICAgICAgICBhYmk9JDE7CiAgICAgICAg c2hpZnQ7CiAgICBmaTsKICAgIGlmIFtbIC1kICIke2Rpcn0vZ2VudG9vLW11bHRpbGliLyR7YWJp fSIgXV07IHRoZW4KICAgICAgICBlY2hvICR7ZGlyfS9nZW50b28tbXVsdGlsaWIvJHthYml9Owog ICAgZWxzZQogICAgICAgIGVjaG8gJHtkaXJ9OwogICAgZmkKfQpnZXRfbW91bnRzICgpIAp7IAog ICAgbG9jYWwgcG9pbnQ9IG5vZGU9IGZzPSBvcHRzPSBmb289OwogICAgaWYgW1sgJCh1bmFtZSAt cykgPT0gIkxpbnV4IiBdXTsgdGhlbgogICAgICAgIHdoaWxlIHJlYWQgbm9kZSBwb2ludCBmcyBv cHRzIGZvbzsgZG8KICAgICAgICAgICAgZWNobyAiJHtwb2ludH0gJHtub2RlfSAke2ZzfSAke29w dHN9IjsKICAgICAgICBkb25lIDwgL3Byb2MvbW91bnRzOwogICAgICAgIHJldHVybjsKICAgIGZp OwogICAgbG9jYWwgSUZTPScJJzsKICAgIExDX0FMTD1DIG1vdW50IC1wIHwgd2hpbGUgcmVhZCBu b2RlIHBvaW50IGZzIGZvbzsgZG8KICAgICAgICBvcHRzPSR7ZnMjKiB9OwogICAgICAgIGZzPSR7 ZnMlJSAqfTsKICAgICAgICBlY2hvICIke3BvaW50Ly8gL1wwNDB9ICR7bm9kZS8vIC9cMDQwfSAk e2ZzJSUgKn0gJHtvcHRzLy8gL1wwNDB9IjsKICAgIGRvbmUKfQpnZXRfbXVsdGlsaWJkaXIgKCkg CnsgCiAgICBpZiBoYXNfbXVsdGlsaWJfcHJvZmlsZTsgdGhlbgogICAgICAgIGVlcnJvciAiZ2V0 X211bHRpbGliZGlyIGNhbGxlZCwgYnV0IGl0IHNob3VsZG4ndCBiZSBuZWVkZWQgd2l0aCB0aGUg bmV3IG11bHRpbGliIGFwcHJvYWNoLiAgUGxlYXNlIGZpbGUgYSBidWcgYXQgaHR0cDovL2J1Z3Mu Z2VudG9vLm9yZyBhbmQgYXNzaWduIGl0IHRvIGVyYWRpY2F0b3JAZ2VudG9vLm9yZyI7CiAgICAg ICAgZXhpdCAxOwogICAgZmk7CiAgICBlY2hvICR7Q09ORl9NVUxUSUxJQkRJUjo9bGliMzJ9Cn0K aGFzX2hhcmRlbmVkICgpIAp7IAogICAgZXdhcm4gImhhc19oYXJkZW5lZDogZGVwcmVjYXRlZCwg cGxlYXNlIHVzZSBnY2Mtc3BlY3Mte3JlbHJvLG5vd30oKSEiIDE+JjI7CiAgICB0ZXN0X3ZlcnNp b25faW5mbyBIYXJkZW5lZCAmJiByZXR1cm4gMDsKICAgIFtbIC1mICR7R0NDX1NQRUNTfSAmJiAk e0dDQ19TUEVDU30gIT0gJHtHQ0NfU1BFQ1MvaGFyZGVuZWQvfSBdXQp9Cmhhc19tMzIgKCkgCnsg CiAgICBbICIkKHRjLWFyY2gpIiA9ICJhbWQ2NCIgXSAmJiBoYXNfbXVsdGlsaWJfcHJvZmlsZSAm JiByZXR1cm4gMDsKICAgIGxvY2FsIHRlbXA9JChlbWt0ZW1wKTsKICAgIGVjaG8gImludCBtYWlu KCkgeyByZXR1cm4oMCk7IH0iID4gIiR7dGVtcH0iLmM7CiAgICBNWV9DQz0kKHRjLWdldENDKTsK ICAgICR7TVlfQ0MvIC4qL30gLW0zMiAtbyAiJChlbWt0ZW1wKSIgIiR7dGVtcH0iLmMgPiAvZGV2 L251bGwgMj4mMTsKICAgIGxvY2FsIHJldD0kPzsKICAgIHJtIC1mICIke3RlbXB9Ii5jOwogICAg W1sgJHtyZXR9ICE9IDEgXV0gJiYgcmV0dXJuIDA7CiAgICByZXR1cm4gMQp9Cmhhc19tNjQgKCkg CnsgCiAgICBsb2NhbCB0ZW1wPSIkKGVta3RlbXApIjsKICAgIGVjaG8gImludCBtYWluKCkgeyBy ZXR1cm4oMCk7IH0iID4gIiR7dGVtcH0iLmM7CiAgICBNWV9DQz0kKHRjLWdldENDKTsKICAgICR7 TVlfQ0MvIC4qL30gLW02NCAtbyAiJChlbWt0ZW1wKSIgIiR7dGVtcH0iLmMgPiAvZGV2L251bGwg Mj4mMTsKICAgIGxvY2FsIHJldD0kPzsKICAgIHJtIC1mICIke3RlbXB9Ii5jOwogICAgW1sgJHty ZXR9ICE9IDEgXV0gJiYgcmV0dXJuIDA7CiAgICByZXR1cm4gMQp9Cmhhc19tdWx0aWxpYl9wcm9m aWxlICgpIAp7IAogICAgWyAtbiAiJHtNVUxUSUxJQl9BQklTfSIgLWEgIiR7TVVMVElMSUJfQUJJ U30iICE9ICIke01VTFRJTElCX0FCSVMvIC99IiBdCn0KaGFzX3BpYyAoKSAKeyAKICAgIGV3YXJu ICJoYXNfcGljOiBkZXByZWNhdGVkLCBwbGVhc2UgdXNlIGdjYy1zcGVjcy1waWUoKSEiIDE+JjI7 CiAgICBbWyAke0NGTEFHUy8tZlBJQ30gIT0gJHtDRkxBR1N9IHx8ICR7Q0ZMQUdTLy1mcGljfSAh PSAke0NGTEFHU30gXV0gfHwgZ2NjLXNwZWNzLXBpZQp9Cmhhc19waWUgKCkgCnsgCiAgICBld2Fy biAiaGFzX3BpZTogZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSBnY2Mtc3BlY3MtcGllKCkhIiAxPiYy OwogICAgW1sgJHtDRkxBR1MvLWZQSUV9ICE9ICR7Q0ZMQUdTfSB8fCAke0NGTEFHUy8tZnBpZX0g IT0gJHtDRkxBR1N9IF1dIHx8IGdjYy1zcGVjcy1waWUKfQpoYXNfc3NwICgpIAp7IAogICAgZXdh cm4gImhhc19zc3A6IGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2UgZ2NjLXNwZWNzLXNzcCgpISIgMT4m MjsKICAgIFtbICR7Q0ZMQUdTLy1mc3RhY2stcHJvdGVjdG9yfSAhPSAke0NGTEFHU30gfHwgLW4g JChlY2hvIHwgJCh0Yy1nZXRDQykgJHtDRkxBR1N9IC1FIC1kTSAtIHwgZ3JlcCBfX1NTUF9fKSBd XSB8fCBnY2Mtc3BlY3Mtc3NwCn0KaGFzX3NzcF9hbGwgKCkgCnsgCiAgICBld2FybiAiaGFzX3Nz cF9hbGw6IGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2UgZ2NjLXNwZWNzLXNzcCgpISIgMT4mMjsKICAg IFtbICR7Q0ZMQUdTLy1mc3RhY2stcHJvdGVjdG9yLWFsbH0gIT0gJHtDRkxBR1N9IHx8IC1uICQo ZWNobyB8ICQodGMtZ2V0Q0MpICR7Q0ZMQUdTfSAtRSAtZE0gLSB8IGdyZXAgX19TU1BfQUxMX18p IF1dIHx8IGdjYy1zcGVjcy1zc3AtYWxsCn0KaXMtZmxhZyAoKSAKeyAKICAgIGlzLWZsYWdxICIk QCIgJiYgZWNobyB0cnVlCn0KaXMtZmxhZ3EgKCkgCnsgCiAgICBbWyAtbiAkMiBdXSAmJiBkaWUg IlVzYWdlOiBpcy1mbGFnIDxmbGFnPiI7CiAgICBfaXNfZmxhZ3EgQ0ZMQUdTICQxIHx8IF9pc19m bGFncSBDWFhGTEFHUyAkMQp9CmlzLWxkZmxhZyAoKSAKeyAKICAgIGlzLWxkZmxhZ3EgIiRAIiAm JiBlY2hvIHRydWUKfQppcy1sZGZsYWdxICgpIAp7IAogICAgW1sgLW4gJDIgXV0gJiYgZGllICJV c2FnZTogaXMtbGRmbGFnIDxmbGFnPiI7CiAgICBfaXNfZmxhZ3EgTERGTEFHUyAkMQp9CmlzLWxv Z2luLWRpc2FibGVkICgpIAp7IAogICAgc2hlbGw9JChlZ2V0c2hlbGwgIiQxIik7CiAgICBjYXNl ICR7c2hlbGx9IGluIAogICAgICAgIC9iaW4vZmFsc2UgfCAvdXNyL2Jpbi9mYWxzZSB8IC9zYmlu L25vbG9naW4gfCAvdXNyL3NiaW4vbm9sb2dpbikKICAgICAgICAgICAgcmV0dXJuIDAKICAgICAg ICA7OwogICAgICAgICopCiAgICAgICAgICAgIHJldHVybiAxCiAgICAgICAgOzsKICAgIGVzYWMK fQppc19maW5hbF9hYmkgKCkgCnsgCiAgICBoYXNfbXVsdGlsaWJfcHJvZmlsZSB8fCByZXR1cm4g MDsKICAgIGxvY2FsIEFMTF9BQklTPSQoZ2V0X2luc3RhbGxfYWJpcyk7CiAgICBsb2NhbCBMQVNU X0FCST0ke0FMTF9BQklTLyogL307CiAgICBbWyAke0xBU1RfQUJJfSA9PSAke0FCSX0gXV0KfQpt YWtlX2Rlc2t0b3BfZW50cnkgKCkgCnsgCiAgICBbWyAteiAkMSBdXSAmJiBlZXJyb3IgIm1ha2Vf ZGVza3RvcF9lbnRyeTogWW91IG11c3Qgc3BlY2lmeSB0aGUgZXhlY3V0YWJsZSIgJiYgcmV0dXJu IDE7CiAgICBsb2NhbCBleGVjPSR7MX07CiAgICBsb2NhbCBuYW1lPSR7MjotJHtQTn19OwogICAg bG9jYWwgaWNvbj0kezM6LSR7UE59fTsKICAgIGxvY2FsIHR5cGU9JHs0fTsKICAgIGxvY2FsIHBh dGg9JHs1fTsKICAgIGlmIFtbIC16ICR7dHlwZX0gXV07IHRoZW4KICAgICAgICBsb2NhbCBjYXRt YWo9JHtDQVRFR09SWSUlLSp9OwogICAgICAgIGxvY2FsIGNhdG1pbj0ke0NBVEVHT1JZIyMqLX07 CiAgICAgICAgY2FzZSAke2NhdG1han0gaW4gCiAgICAgICAgICAgIGFwcCkKICAgICAgICAgICAg ICAgIGNhc2UgJHtjYXRtaW59IGluIAogICAgICAgICAgICAgICAgICAgIGFjY2Vzc2liaWxpdHkp CiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9QWNjZXNzaWJpbGl0eQogICAgICAgICAgICAg ICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgYWRtaW4pCiAgICAgICAgICAgICAgICAgICAg ICAgIHR5cGU9U3lzdGVtCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAg ICBhbnRpdmlydXMpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9U3lzdGVtCiAgICAgICAg ICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBhcmNoKQogICAgICAgICAgICAgICAg ICAgICAgICB0eXBlPUFyY2hpdmluZwogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAg ICAgICAgICAgYmFja3VwKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPUFyY2hpdmluZwog ICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgY2RyKQogICAgICAgICAg ICAgICAgICAgICAgICB0eXBlPURpc2NCdXJuaW5nCiAgICAgICAgICAgICAgICAgICAgOzsKICAg ICAgICAgICAgICAgICAgICBkaWN0cykKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1EaWN0 aW9uYXJ5CiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBkb2MpCiAg ICAgICAgICAgICAgICAgICAgICAgIHR5cGU9RG9jdW1lbnRhdGlvbgogICAgICAgICAgICAgICAg ICAgIDs7CiAgICAgICAgICAgICAgICAgICAgZWRpdG9ycykKICAgICAgICAgICAgICAgICAgICAg ICAgdHlwZT1UZXh0RWRpdG9yCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAg ICAgICBlbWFjcykKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1UZXh0RWRpdG9yCiAgICAg ICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBlbXVsYXRpb24pCiAgICAgICAg ICAgICAgICAgICAgICAgIHR5cGU9RW11bGF0b3IKICAgICAgICAgICAgICAgICAgICA7OwogICAg ICAgICAgICAgICAgICAgIGxhcHRvcCkKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1IYXJk d2FyZVNldHRpbmdzCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBv ZmZpY2UpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9T2ZmaWNlCiAgICAgICAgICAgICAg ICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBwZGEpCiAgICAgICAgICAgICAgICAgICAgICAg IHR5cGU9UERBCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICB2aW0p CiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9VGV4dEVkaXRvcgogICAgICAgICAgICAgICAg ICAgIDs7CiAgICAgICAgICAgICAgICAgICAgeGVtYWNzKQogICAgICAgICAgICAgICAgICAgICAg ICB0eXBlPVRleHRFZGl0b3IKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAg ICAgICopCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9CiAgICAgICAgICAgICAgICAgICAg OzsKICAgICAgICAgICAgICAgIGVzYWMKICAgICAgICAgICAgOzsKICAgICAgICAgICAgZGV2KQog ICAgICAgICAgICAgICAgdHlwZT0iRGV2ZWxvcG1lbnQiCiAgICAgICAgICAgIDs7CiAgICAgICAg ICAgIGdhbWVzKQogICAgICAgICAgICAgICAgY2FzZSAke2NhdG1pbn0gaW4gCiAgICAgICAgICAg ICAgICAgICAgYWN0aW9uIHwgZnBzKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPUFjdGlv bkdhbWUKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIGFyY2FkZSkK ICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1BcmNhZGVHYW1lCiAgICAgICAgICAgICAgICAg ICAgOzsKICAgICAgICAgICAgICAgICAgICBib2FyZCkKICAgICAgICAgICAgICAgICAgICAgICAg dHlwZT1Cb2FyZEdhbWUKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAg IGVtdWxhdGlvbikKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1FbXVsYXRvcgogICAgICAg ICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAga2lkcykKICAgICAgICAgICAgICAg ICAgICAgICAgdHlwZT1LaWRzR2FtZQogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAg ICAgICAgICAgcHV6emxlKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPUxvZ2ljR2FtZQog ICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgcm9ndWVsaWtlKQogICAg ICAgICAgICAgICAgICAgICAgICB0eXBlPVJvbGVQbGF5aW5nCiAgICAgICAgICAgICAgICAgICAg OzsKICAgICAgICAgICAgICAgICAgICBycGcpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9 Um9sZVBsYXlpbmcKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIHNp bXVsYXRpb24pCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9U2ltdWxhdGlvbgogICAgICAg ICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgc3BvcnRzKQogICAgICAgICAgICAg ICAgICAgICAgICB0eXBlPVNwb3J0c0dhbWUKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAg ICAgICAgICAgICAgIHN0cmF0ZWd5KQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVN0cmF0 ZWd5R2FtZQogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgKikKICAg ICAgICAgICAgICAgICAgICAgICAgdHlwZT0KICAgICAgICAgICAgICAgICAgICA7OwogICAgICAg ICAgICAgICAgZXNhYzsKICAgICAgICAgICAgICAgIHR5cGU9IkdhbWU7JHt0eXBlfSIKICAgICAg ICAgICAgOzsKICAgICAgICAgICAgZ25vbWUpCiAgICAgICAgICAgICAgICB0eXBlPSJHbm9tZTtH VEsiCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgIGtkZSkKICAgICAgICAgICAgICAgIHR5cGU9 IktERTtRdCIKICAgICAgICAgICAgOzsKICAgICAgICAgICAgbWFpbCkKICAgICAgICAgICAgICAg IHR5cGU9Ik5ldHdvcms7RW1haWwiCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgIG1lZGlhKQog ICAgICAgICAgICAgICAgY2FzZSAke2NhdG1pbn0gaW4gCiAgICAgICAgICAgICAgICAgICAgZ2Z4 KQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPUdyYXBoaWNzCiAgICAgICAgICAgICAgICAg ICAgOzsKICAgICAgICAgICAgICAgICAgICByYWRpbykKICAgICAgICAgICAgICAgICAgICAgICAg dHlwZT1UdW5lcgogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgc291 bmQpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9QXVkaW8KICAgICAgICAgICAgICAgICAg ICA7OwogICAgICAgICAgICAgICAgICAgIHR2KQogICAgICAgICAgICAgICAgICAgICAgICB0eXBl PVRWCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICB2aWRlbykKICAg ICAgICAgICAgICAgICAgICAgICAgdHlwZT1WaWRlbwogICAgICAgICAgICAgICAgICAgIDs7CiAg ICAgICAgICAgICAgICAgICAgKikKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0KICAgICAg ICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgZXNhYzsKICAgICAgICAgICAgICAgIHR5 cGU9IkF1ZGlvVmlkZW87JHt0eXBlfSIKICAgICAgICAgICAgOzsKICAgICAgICAgICAgbmV0KQog ICAgICAgICAgICAgICAgY2FzZSAke2NhdG1pbn0gaW4gCiAgICAgICAgICAgICAgICAgICAgZGlh bHVwKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPURpYWx1cAogICAgICAgICAgICAgICAg ICAgIDs7CiAgICAgICAgICAgICAgICAgICAgZnRwKQogICAgICAgICAgICAgICAgICAgICAgICB0 eXBlPUZpbGVUcmFuc2ZlcgogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAg ICAgaW0pCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9SW5zdGFudE1lc3NhZ2luZwogICAg ICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgaXJjKQogICAgICAgICAgICAg ICAgICAgICAgICB0eXBlPUlSQ0NsaWVudAogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAg ICAgICAgICAgICAgbWFpbCkKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1FbWFpbAogICAg ICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgbmV3cykKICAgICAgICAgICAg ICAgICAgICAgICAgdHlwZT1OZXdzCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAg ICAgICAgICBubnRwKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPU5ld3MKICAgICAgICAg ICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIHAycCkKICAgICAgICAgICAgICAgICAg ICAgICAgdHlwZT1GaWxlVHJhbnNmZXIKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAg ICAgICAgICAgICopCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9CiAgICAgICAgICAgICAg ICAgICAgOzsKICAgICAgICAgICAgICAgIGVzYWM7CiAgICAgICAgICAgICAgICB0eXBlPSJOZXR3 b3JrOyR7dHlwZX0iCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgIHNjaSkKICAgICAgICAgICAg ICAgIGNhc2UgJHtjYXRtaW59IGluIAogICAgICAgICAgICAgICAgICAgIGFzdHJvKikKICAgICAg ICAgICAgICAgICAgICAgICAgdHlwZT1Bc3Ryb25vbXkKICAgICAgICAgICAgICAgICAgICA7Owog ICAgICAgICAgICAgICAgICAgIGJpbyopCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9Qmlv bG9neQogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgY2FsYyopCiAg ICAgICAgICAgICAgICAgICAgICAgIHR5cGU9Q2FsY3VsYXRvcgogICAgICAgICAgICAgICAgICAg IDs7CiAgICAgICAgICAgICAgICAgICAgY2hlbSopCiAgICAgICAgICAgICAgICAgICAgICAgIHR5 cGU9Q2hlbWlzdHJ5CiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBl bGVjKikKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1FbGVjdHJvbmljcwogICAgICAgICAg ICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgZ2VvKikKICAgICAgICAgICAgICAgICAg ICAgICAgdHlwZT1HZW9sb2d5CiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAg ICAgICBtYXRoKikKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1NYXRoCiAgICAgICAgICAg ICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBwaHlzaWNzKQogICAgICAgICAgICAgICAg ICAgICAgICB0eXBlPVBoeXNpY3MKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAg ICAgICAgIHZpc3VhbCopCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9RGF0YVZpc3VhbGl6 YXRpb24KICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgICopCiAgICAg ICAgICAgICAgICAgICAgICAgIHR5cGU9CiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAg ICAgICAgIGVzYWM7CiAgICAgICAgICAgICAgICB0eXBlPSJTY2llbmNlOyR7dHlwZX0iCiAgICAg ICAgICAgIDs7CiAgICAgICAgICAgIHN5cykKICAgICAgICAgICAgICAgIHR5cGU9IlN5c3RlbSIK ICAgICAgICAgICAgOzsKICAgICAgICAgICAgd3d3KQogICAgICAgICAgICAgICAgY2FzZSAke2Nh dG1pbn0gaW4gCiAgICAgICAgICAgICAgICAgICAgY2xpZW50KQogICAgICAgICAgICAgICAgICAg ICAgICB0eXBlPVdlYkJyb3dzZXIKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAg ICAgICAgICopCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9CiAgICAgICAgICAgICAgICAg ICAgOzsKICAgICAgICAgICAgICAgIGVzYWM7CiAgICAgICAgICAgICAgICB0eXBlPSJOZXR3b3Jr IgogICAgICAgICAgICA7OwogICAgICAgICAgICAqKQogICAgICAgICAgICAgICAgdHlwZT0KICAg ICAgICAgICAgOzsKICAgICAgICBlc2FjOwogICAgZmk7CiAgICBpZiBbICIke1NMT1R9IiA9PSAi MCIgXTsgdGhlbgogICAgICAgIGxvY2FsIGRlc2t0b3BfbmFtZT0iJHtQTn0iOwogICAgZWxzZQog ICAgICAgIGxvY2FsIGRlc2t0b3BfbmFtZT0iJHtQTn0tJHtTTE9UfSI7CiAgICBmaTsKICAgIGxv Y2FsIGRlc2t0b3A9IiR7VH0vJChlY2hvICR7ZXhlY30gfCBzZWQgJ3M6W1s6c3BhY2U6XS86XTpf OmcnKS0ke2Rlc2t0b3BfbmFtZX0uZGVza3RvcCI7CiAgICBjYXQgPiAiJHtkZXNrdG9wfSIgIDw8 LUVPRgpbRGVza3RvcCBFbnRyeV0KVmVyc2lvbj0xLjAKTmFtZT0ke25hbWV9ClR5cGU9QXBwbGlj YXRpb24KQ29tbWVudD0ke0RFU0NSSVBUSU9OfQpFeGVjPSR7ZXhlY30KVHJ5RXhlYz0ke2V4ZWMl JSAqfQpJY29uPSR7aWNvbn0KQ2F0ZWdvcmllcz0ke3R5cGV9OwpFT0YKCiAgICBbWyAtbiAke3Bh dGh9IF1dICYmIGVjaG8gIlBhdGg9JHtwYXRofSIgPj4gIiR7ZGVza3RvcH0iOwogICAgKCBpbnNp bnRvIC91c3Ivc2hhcmUvYXBwbGljYXRpb25zOwogICAgZG9pbnMgIiR7ZGVza3RvcH0iICkKfQpt YWtlX3Nlc3Npb25fZGVza3RvcCAoKSAKeyAKICAgIFtbIC16ICQxIF1dICYmIGVlcnJvciAibWFr ZV9zZXNzaW9uX2Rlc2t0b3A6IFlvdSBtdXN0IHNwZWNpZnkgdGhlIHRpdGxlIiAmJiByZXR1cm4g MTsKICAgIFtbIC16ICQyIF1dICYmIGVlcnJvciAibWFrZV9zZXNzaW9uX2Rlc2t0b3A6IFlvdSBt dXN0IHNwZWNpZnkgdGhlIGNvbW1hbmQiICYmIHJldHVybiAxOwogICAgbG9jYWwgdGl0bGU9JDE7 CiAgICBsb2NhbCBjb21tYW5kPSQyOwogICAgbG9jYWwgZGVza3RvcD0ke1R9LyR7d219LmRlc2t0 b3A7CiAgICBjYXQgPiAiJHtkZXNrdG9wfSIgIDw8LUVPRgpbRGVza3RvcCBFbnRyeV0KTmFtZT0k e3RpdGxlfQpDb21tZW50PVRoaXMgc2Vzc2lvbiBsb2dzIHlvdSBpbnRvICR7dGl0bGV9CkV4ZWM9 JHtjb21tYW5kfQpUcnlFeGVjPSR7Y29tbWFuZH0KVHlwZT1BcHBsaWNhdGlvbgpFT0YKCiAgICAo IGluc2ludG8gL3Vzci9zaGFyZS94c2Vzc2lvbnM7CiAgICBkb2lucyAiJHtkZXNrdG9wfSIgKQp9 Cm1ha2Vfd3JhcHBlciAoKSAKeyAKICAgIGxvY2FsIHdyYXBwZXI9JDEgYmluPSQyIGNoZGlyPSQz IGxpYmRpcj0kNCBwYXRoPSQ1OwogICAgbG9jYWwgdG1wd3JhcHBlcj0kKGVta3RlbXApOwogICAg Y2F0ID4gIiR7dG1wd3JhcHBlcn0iICA8PEVPRgojIS9iaW4vc2gKY2QgIiR7Y2hkaXI6LS59Igpp ZiBbIC1uICIke2xpYmRpcn0iIF0gOyB0aGVuCglpZiBbICJcJHtMRF9MSUJSQVJZX1BBVEgrc2V0 fSIgPSAic2V0IiBdIDsgdGhlbgoJCWV4cG9ydCBMRF9MSUJSQVJZX1BBVEg9Ilwke0xEX0xJQlJB UllfUEFUSH06JHtsaWJkaXJ9IgoJZWxzZQoJCWV4cG9ydCBMRF9MSUJSQVJZX1BBVEg9IiR7bGli ZGlyfSIKCWZpCmZpCmV4ZWMgJHtiaW59ICJcJEAiCkVPRgoKICAgIGNobW9kIGdvK3J4ICIke3Rt cHdyYXBwZXJ9IjsKICAgIGlmIFtbIC1uICR7cGF0aH0gXV07IHRoZW4KICAgICAgICAoIGV4ZWlu dG8gIiR7cGF0aH0iOwogICAgICAgIG5ld2V4ZSAiJHt0bXB3cmFwcGVyfSIgIiR7d3JhcHBlcn0i ICkgfHwgZGllOwogICAgZWxzZQogICAgICAgIG5ld2JpbiAiJHt0bXB3cmFwcGVyfSIgIiR7d3Jh cHBlcn0iIHx8IGRpZTsKICAgIGZpCn0KbXVsdGlsaWJfZW52ICgpIAp7IAogICAgbG9jYWwgQ1RB UkdFVD0kezE6LSR7Q1RBUkdFVH19OwogICAgY2FzZSAke0NUQVJHRVR9IGluIAogICAgICAgIHg4 Nl82NCopCiAgICAgICAgICAgIGV4cG9ydCBDRkxBR1NfeDg2PSR7Q0ZMQUdTX3g4Ni0tbTMyfTsK ICAgICAgICAgICAgZXhwb3J0IENIT1NUX3g4Nj0ke0NUQVJHRVQveDg2XzY0L2k2ODZ9OwogICAg ICAgICAgICBleHBvcnQgQ1RBUkdFVF94ODY9JHtDSE9TVF94ODZ9OwogICAgICAgICAgICBleHBv cnQgQ0RFRklORV94ODY9Il9faTM4Nl9fIjsKICAgICAgICAgICAgZXhwb3J0IExJQkRJUl94ODY9 ImxpYiI7CiAgICAgICAgICAgIGV4cG9ydCBDRkxBR1NfYW1kNjQ9JHtDRkxBR1NfYW1kNjQtLW02 NH07CiAgICAgICAgICAgIGV4cG9ydCBDSE9TVF9hbWQ2ND0ke0NUQVJHRVR9OwogICAgICAgICAg ICBleHBvcnQgQ1RBUkdFVF9hbWQ2ND0ke0NIT1NUX2FtZDY0fTsKICAgICAgICAgICAgZXhwb3J0 IENERUZJTkVfYW1kNjQ9Il9feDg2XzY0X18iOwogICAgICAgICAgICBleHBvcnQgTElCRElSX2Ft ZDY0PSJsaWI2NCI7CiAgICAgICAgICAgIGV4cG9ydCBNVUxUSUxJQl9BQklTPSJhbWQ2NCB4ODYi OwogICAgICAgICAgICBleHBvcnQgREVGQVVMVF9BQkk9ImFtZDY0IgogICAgICAgIDs7CiAgICAg ICAgbWlwczY0KikKICAgICAgICAgICAgZXhwb3J0IENGTEFHU19vMzI9JHtDRkxBR1NfbzMyLS1t YWJpPTMyfTsKICAgICAgICAgICAgZXhwb3J0IENIT1NUX28zMj0ke0NUQVJHRVQvbWlwczY0L21p cHN9OwogICAgICAgICAgICBleHBvcnQgQ1RBUkdFVF9vMzI9JHtDSE9TVF9vMzJ9OwogICAgICAg ICAgICBleHBvcnQgQ0RFRklORV9vMzI9Il9NSVBTX1NJTSA9PSBfQUJJTzMyIjsKICAgICAgICAg ICAgZXhwb3J0IExJQkRJUl9vMzI9ImxpYiI7CiAgICAgICAgICAgIGV4cG9ydCBDRkxBR1NfbjMy PSR7Q0ZMQUdTX24zMi0tbWFiaT1uMzJ9OwogICAgICAgICAgICBleHBvcnQgQ0hPU1RfbjMyPSR7 Q1RBUkdFVH07CiAgICAgICAgICAgIGV4cG9ydCBDVEFSR0VUX24zMj0ke0NIT1NUX24zMn07CiAg ICAgICAgICAgIGV4cG9ydCBDREVGSU5FX24zMj0iX01JUFNfU0lNID09IF9BQklOMzIiOwogICAg ICAgICAgICBleHBvcnQgTElCRElSX24zMj0ibGliMzIiOwogICAgICAgICAgICBleHBvcnQgQ0ZM QUdTX242ND0ke0NGTEFHU19uNjQtLW1hYmk9NjR9OwogICAgICAgICAgICBleHBvcnQgQ0hPU1Rf bjY0PSR7Q1RBUkdFVH07CiAgICAgICAgICAgIGV4cG9ydCBDVEFSR0VUX242ND0ke0NIT1NUX242 NH07CiAgICAgICAgICAgIGV4cG9ydCBDREVGSU5FX242ND0iX01JUFNfU0lNID09IF9BQkk2NCI7 CiAgICAgICAgICAgIGV4cG9ydCBMSUJESVJfbjY0PSJsaWI2NCI7CiAgICAgICAgICAgIGV4cG9y dCBNVUxUSUxJQl9BQklTPSJuNjQgbjMyIG8zMiI7CiAgICAgICAgICAgIGV4cG9ydCBERUZBVUxU X0FCST0ibjMyIgogICAgICAgIDs7CiAgICAgICAgcG93ZXJwYzY0KikKICAgICAgICAgICAgZXhw b3J0IENGTEFHU19wcGM9JHtDRkxBR1NfcHBjLS1tMzJ9OwogICAgICAgICAgICBleHBvcnQgQ0hP U1RfcHBjPSR7Q1RBUkdFVC9wb3dlcnBjNjQvcG93ZXJwY307CiAgICAgICAgICAgIGV4cG9ydCBD VEFSR0VUX3BwYz0ke0NIT1NUX3BwY307CiAgICAgICAgICAgIGV4cG9ydCBDREVGSU5FX3BwYz0i IV9fcG93ZXJwYzY0X18iOwogICAgICAgICAgICBleHBvcnQgTElCRElSX3BwYz0ibGliIjsKICAg ICAgICAgICAgZXhwb3J0IENGTEFHU19wcGM2ND0ke0NGTEFHU19wcGM2NC0tbTY0fTsKICAgICAg ICAgICAgZXhwb3J0IENIT1NUX3BwYzY0PSR7Q1RBUkdFVH07CiAgICAgICAgICAgIGV4cG9ydCBD VEFSR0VUX3BwYzY0PSR7Q0hPU1RfcHBjNjR9OwogICAgICAgICAgICBleHBvcnQgQ0RFRklORV9w cGM2ND0iX19wb3dlcnBjNjRfXyI7CiAgICAgICAgICAgIGV4cG9ydCBMSUJESVJfcHBjNjQ9Imxp YjY0IjsKICAgICAgICAgICAgZXhwb3J0IE1VTFRJTElCX0FCSVM9InBwYzY0IHBwYyI7CiAgICAg ICAgICAgIGV4cG9ydCBERUZBVUxUX0FCST0icHBjNjQiCiAgICAgICAgOzsKICAgICAgICBzMzkw eCopCiAgICAgICAgICAgIGV4cG9ydCBDRkxBR1NfczM5MD0ke0NGTEFHU19zMzkwLS1tMzF9Owog ICAgICAgICAgICBleHBvcnQgQ0hPU1RfczM5MD0ke0NUQVJHRVQvczM5MHgvczM5MH07CiAgICAg ICAgICAgIGV4cG9ydCBDVEFSR0VUX3MzOTA9JHtDSE9TVF9zMzkwfTsKICAgICAgICAgICAgZXhw b3J0IENERUZJTkVfczM5MD0iIV9fczM5MHhfXyI7CiAgICAgICAgICAgIGV4cG9ydCBMSUJESVJf czM5MD0ibGliIjsKICAgICAgICAgICAgZXhwb3J0IENGTEFHU19zMzkweD0ke0NGTEFHU19zMzkw eC0tbTY0fTsKICAgICAgICAgICAgZXhwb3J0IENIT1NUX3MzOTB4PSR7Q1RBUkdFVH07CiAgICAg ICAgICAgIGV4cG9ydCBDVEFSR0VUX3MzOTB4PSR7Q0hPU1RfczM5MHh9OwogICAgICAgICAgICBl eHBvcnQgQ0RFRklORV9zMzkweD0iX19zMzkweF9fIjsKICAgICAgICAgICAgZXhwb3J0IExJQkRJ Ul9zMzkweD0ibGliNjQiOwogICAgICAgICAgICBleHBvcnQgTVVMVElMSUJfQUJJUz0iczM5MHgg czM5MCI7CiAgICAgICAgICAgIGV4cG9ydCBERUZBVUxUX0FCST0iczM5MHgiCiAgICAgICAgOzsK ICAgICAgICBzcGFyYzY0KikKICAgICAgICAgICAgZXhwb3J0IENGTEFHU19zcGFyYzMyPSR7Q0ZM QUdTX3NwYXJjMzItLW0zMn07CiAgICAgICAgICAgIGV4cG9ydCBDSE9TVF9zcGFyYzMyPSR7Q1RB UkdFVC9zcGFyYzY0L3NwYXJjfTsKICAgICAgICAgICAgZXhwb3J0IENUQVJHRVRfc3BhcmMzMj0k e0NIT1NUX3NwYXJjMzJ9OwogICAgICAgICAgICBleHBvcnQgQ0RFRklORV9zcGFyYzMyPSIhX19h cmNoNjRfXyI7CiAgICAgICAgICAgIGV4cG9ydCBMSUJESVJfc3BhcmMzMj0ibGliIjsKICAgICAg ICAgICAgZXhwb3J0IENGTEFHU19zcGFyYzY0PSR7Q0ZMQUdTX3NwYXJjNjQtLW02NH07CiAgICAg ICAgICAgIGV4cG9ydCBDSE9TVF9zcGFyYzY0PSR7Q1RBUkdFVH07CiAgICAgICAgICAgIGV4cG9y dCBDVEFSR0VUX3NwYXJjNjQ9JHtDSE9TVF9zcGFyYzY0fTsKICAgICAgICAgICAgZXhwb3J0IENE RUZJTkVfc3BhcmM2ND0iX19hcmNoNjRfXyI7CiAgICAgICAgICAgIGV4cG9ydCBMSUJESVJfc3Bh cmM2ND0ibGliNjQiOwogICAgICAgICAgICBleHBvcnQgTVVMVElMSUJfQUJJUz0ic3BhcmM2NCBz cGFyYzMyIjsKICAgICAgICAgICAgZXhwb3J0IERFRkFVTFRfQUJJPSJzcGFyYzY0IgogICAgICAg IDs7CiAgICAgICAgKikKICAgICAgICAgICAgZXhwb3J0IE1VTFRJTElCX0FCSVM9ImRlZmF1bHQi OwogICAgICAgICAgICBleHBvcnQgREVGQVVMVF9BQkk9ImRlZmF1bHQiCiAgICAgICAgOzsKICAg IGVzYWMKfQptdWx0aWxpYl90b29sY2hhaW5fc2V0dXAgKCkgCnsgCiAgICBleHBvcnQgQUJJPSQx OwogICAgaWYgaGFzX3ZlcnNpb24gYXBwLWFkbWluL2VzZWxlY3QtY29tcGlsZXI7IHRoZW4KICAg ICAgICBleHBvcnQgTEQ9ImxkICQoZ2V0X2FiaV9MREZMQUdTICQxKSI7CiAgICAgICAgZXhwb3J0 IEFTPSJhcyAkKGdldF9hYmlfQVNGTEFHUyAkMSkiOwogICAgICAgIGV4cG9ydCBDSE9TVD0kKGdl dF9hYmlfQ0hPU1QgJDEpOwogICAgICAgIGV4cG9ydCBDQlVJTEQ9JChnZXRfYWJpX0NIT1NUICQx KTsKICAgIGVsc2UKICAgICAgICB0Yy1leHBvcnQgQ0M7CiAgICBmaQp9Cm5ld2ljb24gKCkgCnsg CiAgICAoIGluc2ludG8gL3Vzci9zaGFyZS9waXhtYXBzOwogICAgbmV3aW5zICIkQCIgKQp9Cm5l d21lbnUgKCkgCnsgCiAgICAoIGluc2ludG8gL3Vzci9zaGFyZS9hcHBsaWNhdGlvbnM7CiAgICBu ZXdpbnMgIiRAIiApCn0KbnVtYmVyX2FiaXMgKCkgCnsgCiAgICBnZXRfaW5zdGFsbF9hYmlzIHwg d2MgLXcKfQpwa2dfbm9mZXRjaCAoKSAKeyAKICAgIFsgLXogIiR7U1JDX1VSSX0iIF0gJiYgcmV0 dXJuOwogICAgZWNobyAiISEhIFRoZSBmb2xsb3dpbmcgYXJlIGxpc3RlZCBpbiBTUkNfVVJJIGZv ciAke1BOfToiOwogICAgbG9jYWwgeDsKICAgIGZvciB4IGluICQoZWNobyAke1NSQ19VUkl9KTsK ICAgIGRvCiAgICAgICAgZWNobyAiISEhICAgJHt4fSI7CiAgICBkb25lCn0KcGtnX3Bvc3RpbnN0 ICgpIAp7IAogICAgZWxvZyAifi8ud2luZS9jb25maWcgaXMgbm93IGRlcHJlY2F0ZWQuICBGb3Ig Y29uZmlndXJhdGlvbiBlaXRoZXIgdXNlIjsKICAgIGVsb2cgIndpbmVjZmcgb3IgcmVnZWRpdCBI S0NVXFxTb2Z0d2FyZVxcV2luZSIKfQpwa2dfc2V0dXAgKCkgCnsgCiAgICB1c2UgYWxzYSB8fCBy ZXR1cm4gMDsKICAgIGlmICEgYnVpbHRfd2l0aF91c2UgLS1taXNzaW5nIHRydWUgbWVkaWEtbGli cy9hbHNhLWxpYiBtaWRpOyB0aGVuCiAgICAgICAgZWVycm9yICJZb3UgbXVzdCBidWlsZCBtZWRp YS1saWJzL2Fsc2EtbGliIHdpdGggVVNFPW1pZGkiOwogICAgICAgIGRpZSAicGxlYXNlIHJlLWVt ZXJnZSBtZWRpYS1saWJzL2Fsc2EtbGliIHdpdGggVVNFPW1pZGkiOwogICAgZmkKfQpwcmVwX21s X2luY2x1ZGVzICgpIAp7IAogICAgaWYgW1sgJChudW1iZXJfYWJpcykgLWd0IDEgXV07IHRoZW4K ICAgICAgICBsb2NhbCBkaXI7CiAgICAgICAgbG9jYWwgZGlyczsKICAgICAgICBsb2NhbCBiYXNl OwogICAgICAgIGlmIFtbICQjIC1lcSAwIF1dOyB0aGVuCiAgICAgICAgICAgIGRpcnM9L3Vzci9p bmNsdWRlOwogICAgICAgIGVsc2UKICAgICAgICAgICAgZGlycz0iJEAiOwogICAgICAgIGZpOwog ICAgICAgIGZvciBkaXIgaW4gJHtkaXJzfTsKICAgICAgICBkbwogICAgICAgICAgICBiYXNlPSR7 VH0vZ2VudG9vLW11bHRpbGliLyR7ZGlyfS9nZW50b28tbXVsdGlsaWI7CiAgICAgICAgICAgIG1r ZGlyIC1wICIke2Jhc2V9IjsKICAgICAgICAgICAgW1sgLWQgJHtiYXNlfS8ke0FCSX0gXV0gJiYg cm0gLXJmICIke2Jhc2V9LyR7QUJJfSI7CiAgICAgICAgICAgIG12ICIke0R9LyR7ZGlyfSIgIiR7 YmFzZX0vJHtBQkl9IjsKICAgICAgICBkb25lOwogICAgICAgIGlmIGlzX2ZpbmFsX2FiaTsgdGhl bgogICAgICAgICAgICBiYXNlPSR7VH0vZ2VudG9vLW11bHRpbGliOwogICAgICAgICAgICBwdXNo ZCAiJHtiYXNlfSI7CiAgICAgICAgICAgIGZpbmQgLiB8IHRhciAtYyAtVCAtIC1mIC0gfCB0YXIg LXggLS1uby1zYW1lLW93bmVyIC1mIC0gLUMgJHtEfTsKICAgICAgICAgICAgcG9wZDsKICAgICAg ICAgICAgc2V0IC0tOwogICAgICAgICAgICBmb3IgZGlyIGluICR7ZGlyc307CiAgICAgICAgICAg IGRvCiAgICAgICAgICAgICAgICBzZXQgLS0gIiRAIiAiJHtkaXJ9IjsKICAgICAgICAgICAgICAg IGxvY2FsIGFiaTsKICAgICAgICAgICAgICAgIGZvciBhYmkgaW4gJChnZXRfaW5zdGFsbF9hYmlz KTsKICAgICAgICAgICAgICAgIGRvCiAgICAgICAgICAgICAgICAgICAgc2V0IC0tICIkQCIgIiQo Z2V0X2FiaV9DREVGSU5FICR7YWJpfSk6JHtkaXJ9L2dlbnRvby1tdWx0aWxpYi8ke2FiaX0iOwog ICAgICAgICAgICAgICAgZG9uZTsKICAgICAgICAgICAgICAgIGNyZWF0ZV9tbF9pbmNsdWRlcyAi JEAiOwogICAgICAgICAgICBkb25lOwogICAgICAgIGZpOwogICAgZmkKfQpwcmVzZXJ2ZV9vbGRf bGliICgpIAp7IAogICAgaWYgW1sgJHtFQlVJTERfUEhBU0V9ICE9ICJwcmVpbnN0IiBdXTsgdGhl bgogICAgICAgIGVlcnJvciAicHJlc2VydmVfb2xkX2xpYigpIG11c3QgYmUgY2FsbGVkIGZyb20g cGtnX3ByZWluc3QoKSBvbmx5IjsKICAgICAgICBkaWUgIkludmFsaWQgcHJlc2VydmVfb2xkX2xp YigpIHVzYWdlIjsKICAgIGZpOwogICAgW1sgLXogJDEgXV0gJiYgZGllICJVc2FnZTogcHJlc2Vy dmVfb2xkX2xpYiA8bGlicmFyeSB0byBwcmVzZXJ2ZT4gW21vcmUgbGlicmFyaWVzIHRvIHByZXNl cnZlXSI7CiAgICBoYXMgcHJlc2VydmUtbGlicyAke0ZFQVRVUkVTfSAmJiByZXR1cm4gMDsKICAg IGxvY2FsIGxpYiBkaXI7CiAgICBmb3IgbGliIGluICIkQCI7CiAgICBkbwogICAgICAgIFtbIC1l ICR7Uk9PVH0vJHtsaWJ9IF1dIHx8IGNvbnRpbnVlOwogICAgICAgIGRpcj0ke2xpYiUvKn07CiAg ICAgICAgZG9kaXIgJHtkaXJ9IHx8IGRpZSAiZG9kaXIgJHtkaXJ9IGZhaWxlZCI7CiAgICAgICAg Y3AgIiR7Uk9PVH0iLyR7bGlifSAiJHtEfSIvJHtsaWJ9IHx8IGRpZSAiY3AgJHtsaWJ9IGZhaWxl ZCI7CiAgICAgICAgdG91Y2ggIiR7RH0iLyR7bGlifTsKICAgIGRvbmUKfQpwcmVzZXJ2ZV9vbGRf bGliX25vdGlmeSAoKSAKeyAKICAgIGlmIFtbICR7RUJVSUxEX1BIQVNFfSAhPSAicG9zdGluc3Qi IF1dOyB0aGVuCiAgICAgICAgZWVycm9yICJwcmVzZXJ2ZV9vbGRfbGliX25vdGlmeSgpIG11c3Qg YmUgY2FsbGVkIGZyb20gcGtnX3Bvc3RpbnN0KCkgb25seSI7CiAgICAgICAgZGllICJJbnZhbGlk IHByZXNlcnZlX29sZF9saWJfbm90aWZ5KCkgdXNhZ2UiOwogICAgZmk7CiAgICBoYXMgcHJlc2Vy dmUtbGlicyAke0ZFQVRVUkVTfSAmJiByZXR1cm4gMDsKICAgIGxvY2FsIGxpYiBub3RpY2U9MDsK ICAgIGZvciBsaWIgaW4gIiRAIjsKICAgIGRvCiAgICAgICAgW1sgLWUgJHtST09UfS8ke2xpYn0g XV0gfHwgY29udGludWU7CiAgICAgICAgaWYgW1sgJHtub3RpY2V9IC1lcSAwIF1dOyB0aGVuCiAg ICAgICAgICAgIG5vdGljZT0xOwogICAgICAgICAgICBld2FybiAiT2xkIHZlcnNpb25zIG9mIGlu c3RhbGxlZCBsaWJyYXJpZXMgd2VyZSBkZXRlY3RlZCBvbiB5b3VyIHN5c3RlbS4iOwogICAgICAg ICAgICBld2FybiAiSW4gb3JkZXIgdG8gYXZvaWQgYnJlYWtpbmcgcGFja2FnZXMgdGhhdCBkZXBl bmQgb24gdGhlc2Ugb2xkIGxpYnMsIjsKICAgICAgICAgICAgZXdhcm4gInRoZSBsaWJyYXJpZXMg YXJlIG5vdCBiZWluZyByZW1vdmVkLiAgWW91IG5lZWQgdG8gcnVuIHJldmRlcC1yZWJ1aWxkIjsK ICAgICAgICAgICAgZXdhcm4gImluIG9yZGVyIHRvIHJlbW92ZSB0aGVzZSBvbGQgZGVwZW5kZW5j aWVzLiAgSWYgeW91IGRvIG5vdCBoYXZlIHRoaXMiOwogICAgICAgICAgICBld2FybiAiaGVscGVy IHByb2dyYW0sIHNpbXBseSBlbWVyZ2UgdGhlICdnZW50b29sa2l0JyBwYWNrYWdlLiI7CiAgICAg ICAgICAgIGV3YXJuOwogICAgICAgIGZpOwogICAgICAgIGV3YXJuICIgICMgcmV2ZGVwLXJlYnVp bGQgLS1saWJyYXJ5ICR7bGliIyMqL30iOwogICAgZG9uZTsKICAgIGlmIFtbICR7bm90aWNlfSAt ZXEgMSBdXTsgdGhlbgogICAgICAgIGV3YXJuOwogICAgICAgIGV3YXJuICJPbmNlIHlvdSd2ZSBm aW5pc2hlZCBydW5uaW5nIHJldmRlcC1yZWJ1aWxkLCBpdCBzaG91bGQgYmUgc2FmZSB0byI7CiAg ICAgICAgZXdhcm4gImRlbGV0ZSB0aGUgb2xkIGxpYnJhcmllcy4gIEhlcmUgaXMgYSBjb3B5ICYg cGFzdGUgZm9yIHRoZSBsYXp5OiI7CiAgICAgICAgZm9yIGxpYiBpbiAiJEAiOwogICAgICAgIGRv CiAgICAgICAgICAgIGV3YXJuICIgICMgcm0gJyR7bGlifSciOwogICAgICAgIGRvbmU7CiAgICBm aQp9CnJhdy1sZGZsYWdzICgpIAp7IAogICAgbG9jYWwgeCBpbnB1dD0iJEAiOwogICAgW1sgLXog JHtpbnB1dH0gXV0gJiYgaW5wdXQ9JHtMREZMQUdTfTsKICAgIHNldCAtLTsKICAgIGZvciB4IGlu ICR7aW5wdXR9OwogICAgZG8KICAgICAgICB4PSR7eCMtV2wsfTsKICAgICAgICBzZXQgLS0gIiRA IiAke3gvLywvIH07CiAgICBkb25lOwogICAgZWNobyAiJEAiCn0KcmVtb3ZlX2ZsYWcgKCkgCnsg CiAgICBsb2NhbCByZW1vdmU9IiR7MX0iOwogICAgc2hpZnQ7CiAgICB3aGlsZSBbWyAtbiAiJHsx fSIgXV07IGRvCiAgICAgICAgW1sgIiR7MX0iICE9ICIke3JlbW92ZX0iIF1dICYmIGVjaG8gLW4g IiR7MX0gIjsKICAgICAgICBzaGlmdDsKICAgIGRvbmUKfQpyZXBsYWNlLWNwdS1mbGFncyAoKSAK eyAKICAgIGxvY2FsIG5ld2NwdT0iJCMiOwogICAgbmV3Y3B1PSIkeyFuZXdjcHV9IjsKICAgIHdo aWxlIFsgJCMgLWd0IDEgXTsgZG8KICAgICAgICByZXBsYWNlLWZsYWdzICItbWFyY2g9JHsxfSIg Ii1tYXJjaD0ke25ld2NwdX0iOwogICAgICAgIHJlcGxhY2UtZmxhZ3MgIi1tY3B1PSR7MX0iICIt bWNwdT0ke25ld2NwdX0iOwogICAgICAgIHJlcGxhY2UtZmxhZ3MgIi1tdHVuZT0kezF9IiAiLW10 dW5lPSR7bmV3Y3B1fSI7CiAgICAgICAgc2hpZnQ7CiAgICBkb25lOwogICAgcmV0dXJuIDAKfQpy ZXBsYWNlLWZsYWdzICgpIAp7IAogICAgW1sgJCMgIT0gMiBdXSAmJiBlY2hvICYmIGVlcnJvciAi VXNhZ2U6IHJlcGxhY2UtZmxhZ3MgPG9sZCBmbGFnPiA8bmV3IGZsYWc+IiAmJiBkaWUgInJlcGxh Y2UtZmxhZ3MgdGFrZXMgMiBhcmd1bWVudHMsIG5vdCAkIyI7CiAgICBsb2NhbCBmIGZzZXQ7CiAg ICBkZWNsYXJlIC1hIG5ld19DRkxBR1MgbmV3X0NYWEZMQUdTOwogICAgZm9yIGZzZXQgaW4gQ0ZM QUdTIENYWEZMQUdTOwogICAgZG8KICAgICAgICBmb3IgZiBpbiAkeyFmc2V0fTsKICAgICAgICBk bwogICAgICAgICAgICBbWyAke2Z9ID09ICR7MX0gXV0gJiYgZj0kezJ9OwogICAgICAgICAgICBl dmFsIG5ld18ke2ZzZXR9XFtcJHtcI25ld18ke2ZzZXR9XFtAXX1dPVwke2Z9OwogICAgICAgIGRv bmU7CiAgICAgICAgZXZhbCBleHBvcnQgJHtmc2V0fT1cJHtuZXdfJHtmc2V0fVxbKl19OwogICAg ZG9uZTsKICAgIHJldHVybiAwCn0KcmVwbGFjZS1zcGFyYzY0LWZsYWdzICgpIAp7IAogICAgbG9j YWwgU1BBUkM2NF9DUFVTPSJ1bHRyYXNwYXJjMyB1bHRyYXNwYXJjIHY5IjsKICAgIGlmIFsgIiR7 Q0ZMQUdTL210dW5lfSIgIT0gIiR7Q0ZMQUdTfSIgXTsgdGhlbgogICAgICAgIGZvciB4IGluICR7 U1BBUkM2NF9DUFVTfTsKICAgICAgICBkbwogICAgICAgICAgICBDRkxBR1M9IiR7Q0ZMQUdTLy1t Y3B1PSR7eH0vLW1jcHU9djh9IjsKICAgICAgICBkb25lOwogICAgZWxzZQogICAgICAgIGZvciB4 IGluICR7U1BBUkM2NF9DUFVTfTsKICAgICAgICBkbwogICAgICAgICAgICBDRkxBR1M9IiR7Q0ZM QUdTLy1tY3B1PSR7eH0vLW1jcHU9djggLW10dW5lPSR7eH19IjsKICAgICAgICBkb25lOwogICAg Zmk7CiAgICBpZiBbICIke0NYWEZMQUdTL210dW5lfSIgIT0gIiR7Q1hYRkxBR1N9IiBdOyB0aGVu CiAgICAgICAgZm9yIHggaW4gJHtTUEFSQzY0X0NQVVN9OwogICAgICAgIGRvCiAgICAgICAgICAg IENYWEZMQUdTPSIke0NYWEZMQUdTLy1tY3B1PSR7eH0vLW1jcHU9djh9IjsKICAgICAgICBkb25l OwogICAgZWxzZQogICAgICAgIGZvciB4IGluICR7U1BBUkM2NF9DUFVTfTsKICAgICAgICBkbwog ICAgICAgICAgICBDWFhGTEFHUz0iJHtDWFhGTEFHUy8tbWNwdT0ke3h9Ly1tY3B1PXY4IC1tdHVu ZT0ke3h9fSI7CiAgICAgICAgZG9uZTsKICAgIGZpOwogICAgZXhwb3J0IENGTEFHUyBDWFhGTEFH Uwp9CnNlcSAoKSAKeyAKICAgIGxvY2FsIHA9JCh0eXBlIC1QIHNlcSk7CiAgICBjYXNlICQjIGlu IAogICAgICAgIDEpCiAgICAgICAgICAgIG1pbj0xIG1heD0kMSBzdGVwPTEKICAgICAgICA7Owog ICAgICAgIDIpCiAgICAgICAgICAgIG1pbj0kMSBtYXg9JDIgc3RlcD0xCiAgICAgICAgOzsKICAg ICAgICAzKQogICAgICAgICAgICBtaW49JDEgbWF4PSQzIHN0ZXA9JDIKICAgICAgICA7OwogICAg ICAgICopCiAgICAgICAgICAgIGRpZSAic2VxIGNhbGxlZCB3aXRoIHdyb25nIG51bWJlciBvZiBh cmd1bWVudHMiCiAgICAgICAgOzsKICAgIGVzYWM7CiAgICBpZiBbWyAteiAke3B9IF1dOyB0aGVu CiAgICAgICAgbG9jYWwgcmVwczsKICAgICAgICBpZiBbWyAke3N0ZXB9ICE9IDAgXV07IHRoZW4K ICAgICAgICAgICAgcmVwcz0kKCggKCRtYXgtJG1pbikgLyAkc3RlcCArMSApKTsKICAgICAgICBl bHNlCiAgICAgICAgICAgIHJlcHM9MDsKICAgICAgICBmaTsKICAgICAgICBqb3QgJHJlcHMgJG1p biAkbWF4ICRzdGVwOwogICAgZWxzZQogICAgICAgICIke3B9IiAkbWluICRzdGVwICRtYXg7CiAg ICBmaQp9CnNldHVwLWFsbG93ZWQtZmxhZ3MgKCkgCnsgCiAgICBpZiBbWyAteiAke0FMTE9XRURf RkxBR1N9IF1dOyB0aGVuCiAgICAgICAgZXhwb3J0IEFMTE9XRURfRkxBR1M9Ii1waXBlIjsKICAg ICAgICBleHBvcnQgQUxMT1dFRF9GTEFHUz0iJHtBTExPV0VEX0ZMQUdTfSAtTyAtTzAgLU8xIC1P MiAtbWNwdSAtbWFyY2ggLW10dW5lIjsKICAgICAgICBleHBvcnQgQUxMT1dFRF9GTEFHUz0iJHtB TExPV0VEX0ZMQUdTfSAtZnN0YWNrLXByb3RlY3RvciAtZnN0YWNrLXByb3RlY3Rvci1hbGwiOwog ICAgICAgIGV4cG9ydCBBTExPV0VEX0ZMQUdTPSIke0FMTE9XRURfRkxBR1N9IC1mYm91bmRzLWNo ZWNraW5nIjsKICAgICAgICBleHBvcnQgQUxMT1dFRF9GTEFHUz0iJHtBTExPV0VEX0ZMQUdTfSAt Zm5vLVBJRSAtZm5vLXBpZSAtZm5vLXVuaXQtYXQtYS10aW1lIjsKICAgICAgICBleHBvcnQgQUxM T1dFRF9GTEFHUz0iJHtBTExPV0VEX0ZMQUdTfSAtZyAtZ1swLTldIC1nZ2RiIC1nZ2RiWzAtOV0g LWdzdGFicyAtZ3N0YWJzKyI7CiAgICAgICAgZXhwb3J0IEFMTE9XRURfRkxBR1M9IiR7QUxMT1dF RF9GTEFHU30gLWZuby1pZGVudCI7CiAgICAgICAgZXhwb3J0IEFMTE9XRURfRkxBR1M9IiR7QUxM T1dFRF9GTEFHU30gLVcqIC13IjsKICAgIGZpOwogICAgQUxMT1dFRF9GTEFHUz0iJHtBTExPV0VE X0ZMQUdTfSAtZm5vLXN0YWNrLXByb3RlY3RvciAtZm5vLXN0YWNrLXByb3RlY3Rvci1hbGwgCQkt Zm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWJvdW5kcy1jaGVja2luZyI7CiAgICBBTExPV0VEX0ZM QUdTPSIke0FMTE9XRURfRkxBR1N9IC1tcmVncGFybSAtbW5vLWFwcC1yZWdzIC1tYXBwLXJlZ3Mg CQktbW5vLW1teCAtbW5vLXNzZSAtbW5vLXNzZTIgLW1uby1zc2UzIC1tbm8tM2Rub3cgCQktbWlw czEgLW1pcHMyIC1taXBzMyAtbWlwczQgLW1pcHMzMiAtbWlwczY0IC1taXBzMTYgCQktbXNvZnQt ZmxvYXQgLW1uby1zb2Z0LWZsb2F0IC1taGFyZC1mbG9hdCAtbW5vLWhhcmQtZmxvYXQgLW1mcHUg CQktbWllZWUgLW1pZWVlLXdpdGgtaW5leGFjdCAtbXNjaGVkdWxlIAkJLW10bHMtZGlyZWN0LXNl Zy1yZWZzIC1tbm8tdGxzLWRpcmVjdC1zZWctcmVmcyAJCS1tZmxhdCAtbW5vLWZsYXQgLW1uby1m YXN0ZXItc3RydWN0cyAtbWZhc3Rlci1zdHJ1Y3RzIAkJLW0zMiAtbTY0IC1tYWJpIC1tbGl0dGxl LWVuZGlhbiAtbWJpZy1lbmRpYW4gLUVMIC1FQiAtZlBJQyAJCS1tbGl2ZS1nMCAtbWNtb2RlbCAt bXN0YWNrLWJpYXMgLW1uby1zdGFjay1iaWFzIAkJLW1zZWN1cmUtcGx0IC1EKiI7CiAgICBleHBv cnQgVU5TVEFCTEVfRkxBR1M9Ii1PcyAtTzMgLWZyZW9yZGVyLWJsb2NrcyI7CiAgICByZXR1cm4g MAp9CnNyY19jb21waWxlICgpIAp7IAogICAgZXhwb3J0IExEQ09ORklHPS9iaW4vdHJ1ZTsKICAg IHVzZSBlc2QgfHwgZXhwb3J0IGFjX2N2X3BhdGhfRVNEQ09ORklHPSIiOwogICAgdXNlIHNjYW5u ZXIgfHwgZXhwb3J0IGFjX2N2X3BhdGhfc2FuZV9kZXZlbD0ibm8iOwogICAgY29uZmlnX2NhY2hl IGphY2sgamFjay9qYWNrLmg7CiAgICBjb25maWdfY2FjaGUgY3VwcyBjdXBzL2N1cHMuaDsKICAg IGNvbmZpZ19jYWNoZSBhbHNhIGFsc2EvYXNvdW5kbGliLmggc3lzL2Fzb3VuZGxpYi5oIGFzb3Vu ZDpzbmRfcGNtX29wZW47CiAgICBjb25maWdfY2FjaGUgbmFzIGF1ZGlvL2F1ZGlvbGliLmggYXVk aW8vc291bmRsaWIuaDsKICAgIGNvbmZpZ19jYWNoZSB4bWwgbGlieG1sL3BhcnNlci5oIGxpYnhz bHQvcGF0dGVybi5oIGxpYnhzbHQvdHJhbnNmb3JtLmg7CiAgICBjb25maWdfY2FjaGUgbGRhcCBs ZGFwLmggbGJlci5oOwogICAgY29uZmlnX2NhY2hlIGRidXMgZGJ1cy9kYnVzLmg7CiAgICBjb25m aWdfY2FjaGUgaGFsIGhhbC9saWJoYWwuaDsKICAgIGNvbmZpZ19jYWNoZSBqcGVnIGpwZWdsaWIu aDsKICAgIGNvbmZpZ19jYWNoZSBvc3Mgc3lzL3NvdW5kY2FyZC5oIG1hY2hpbmUvc291bmRjYXJk Lmggc291bmRjYXJkLmg7CiAgICBjb25maWdfY2FjaGUgbGNtcyBsY21zLmg7CiAgICBzdHJpcC1m bGFnczsKICAgIHVzZSBhbWQ2NCAmJiBtdWx0aWxpYl90b29sY2hhaW5fc2V0dXAgeDg2OwogICAg ZWNvbmYgLS1zeXNjb25mZGlyPS9ldGMvd2luZSAkKHVzZV93aXRoIG5jdXJzZXMgY3Vyc2VzKSAk KHVzZV93aXRoIG9wZW5nbCkgJCh1c2Vfd2l0aCBYIHgpIHx8IGRpZSAiY29uZmlndXJlIGZhaWxl ZCI7CiAgICBlbWFrZSAtajEgZGVwZW5kIHx8IGRpZSAiZGVwZW5kIjsKICAgIGVtYWtlIGFsbCB8 fCBkaWUgImFsbCIKfQpzcmNfaW5zdGFsbCAoKSAKeyAKICAgIGVtYWtlIERFU1RESVI9IiR7RH0i IGluc3RhbGwgfHwgZGllOwogICAgZG9kb2MgQU5OT1VOQ0UgQVVUSE9SUyBDaGFuZ2VMb2cgUkVB RE1FOwogICAgaWYgdXNlIGdlY2tvOyB0aGVuCiAgICAgICAgaW5zaW50byAvdXNyL3NoYXJlL3dp bmUvZ2Vja287CiAgICAgICAgZG9pbnMgIiR7RElTVERJUn0iL3dpbmVfZ2Vja28tKi5jYWIgfHwg ZGllOwogICAgZmkKfQpzcmNfdGVzdCAoKSAKeyAKICAgIGlmIGVtYWtlIC1qMSBjaGVjayAtbiA+ Ji9kZXYvbnVsbDsgdGhlbgogICAgICAgIHZlY2hvICI+Pj4gVGVzdCBwaGFzZSBbY2hlY2tdOiAk e0NBVEVHT1JZfS8ke1BGfSI7CiAgICAgICAgaWYgISBlbWFrZSAtajEgY2hlY2s7IHRoZW4KICAg ICAgICAgICAgaGFzcSB0ZXN0ICRGRUFUVVJFUyAmJiBkaWUgIk1ha2UgY2hlY2sgZmFpbGVkLiBT ZWUgYWJvdmUgZm9yIGRldGFpbHMuIjsKICAgICAgICAgICAgaGFzcSB0ZXN0ICRGRUFUVVJFUyB8 fCBlZXJyb3IgIk1ha2UgY2hlY2sgZmFpbGVkLiBTZWUgYWJvdmUgZm9yIGRldGFpbHMuIjsKICAg ICAgICBmaTsKICAgIGVsc2UKICAgICAgICBpZiBlbWFrZSAtajEgdGVzdCAtbiA+Ji9kZXYvbnVs bDsgdGhlbgogICAgICAgICAgICB2ZWNobyAiPj4+IFRlc3QgcGhhc2UgW3Rlc3RdOiAke0NBVEVH T1JZfS8ke1BGfSI7CiAgICAgICAgICAgIGlmICEgZW1ha2UgLWoxIHRlc3Q7IHRoZW4KICAgICAg ICAgICAgICAgIGhhc3EgdGVzdCAkRkVBVFVSRVMgJiYgZGllICJNYWtlIHRlc3QgZmFpbGVkLiBT ZWUgYWJvdmUgZm9yIGRldGFpbHMuIjsKICAgICAgICAgICAgICAgIGhhc3EgdGVzdCAkRkVBVFVS RVMgfHwgZWVycm9yICJNYWtlIHRlc3QgZmFpbGVkLiBTZWUgYWJvdmUgZm9yIGRldGFpbHMuIjsK ICAgICAgICAgICAgZmk7CiAgICAgICAgZWxzZQogICAgICAgICAgICB2ZWNobyAiPj4+IFRlc3Qg cGhhc2UgW25vbmVdOiAke0NBVEVHT1JZfS8ke1BGfSI7CiAgICAgICAgZmk7CiAgICBmaQp9CnNy Y191bnBhY2sgKCkgCnsgCiAgICB1bnBhY2sgd2luZS0ke1BWfS50YXIuYnoyOwogICAgY2QgIiR7 U30iOwogICAgc2VkIC1pICcvXlVQREFURV9ERVNLVE9QX0RBVEFCQVNFL3M6PS4qOj10cnVlOicg dG9vbHMvTWFrZWZpbGUuaW47CiAgICBlcGF0Y2ggIiR7RklMRVNESVJ9Ii93aW5lLWdlbnRvby1u by1zc3AucGF0Y2g7CiAgICBzZWQgLWkgJy9eTWltZVR5cGUvZCcgdG9vbHMvd2luZS5kZXNrdG9w IHx8IGRpZQp9CnN0cmlwLWZsYWdzICgpIAp7IAogICAgbG9jYWwgeCB5IGZsYWcgTkVXX0NGTEFH UyBORVdfQ1hYRkxBR1M7CiAgICBzZXR1cC1hbGxvd2VkLWZsYWdzOwogICAgbG9jYWwgTkVXX0NG TEFHUz0iIjsKICAgIGxvY2FsIE5FV19DWFhGTEFHUz0iIjsKICAgIGlmIGhhcyB+JCh0Yy1hcmNo KSAke0FDQ0VQVF9LRVlXT1JEU307IHRoZW4KICAgICAgICBBTExPV0VEX0ZMQUdTPSIke0FMTE9X RURfRkxBR1N9ICR7VU5TVEFCTEVfRkxBR1N9IjsKICAgIGZpOwogICAgc2V0IC1mOwogICAgZm9y IHggaW4gJHtDRkxBR1N9OwogICAgZG8KICAgICAgICBmb3IgeSBpbiAke0FMTE9XRURfRkxBR1N9 OwogICAgICAgIGRvCiAgICAgICAgICAgIGZsYWc9JHt4JSU9Kn07CiAgICAgICAgICAgIGlmIFsg IiR7ZmxhZyUlJHt5fX0iID0gIiIgXTsgdGhlbgogICAgICAgICAgICAgICAgTkVXX0NGTEFHUz0i JHtORVdfQ0ZMQUdTfSAke3h9IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBm aTsKICAgICAgICBkb25lOwogICAgZG9uZTsKICAgIGZvciB4IGluICR7Q1hYRkxBR1N9OwogICAg ZG8KICAgICAgICBmb3IgeSBpbiAke0FMTE9XRURfRkxBR1N9OwogICAgICAgIGRvCiAgICAgICAg ICAgIGZsYWc9JHt4JSU9Kn07CiAgICAgICAgICAgIGlmIFsgIiR7ZmxhZyUlJHt5fX0iID0gIiIg XTsgdGhlbgogICAgICAgICAgICAgICAgTkVXX0NYWEZMQUdTPSIke05FV19DWFhGTEFHU30gJHt4 fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZmk7CiAgICAgICAgZG9uZTsK ICAgIGRvbmU7CiAgICBpZiBbICIke0NGTEFHUy8tT30iICE9ICIke0NGTEFHU30iIC1hICIke05F V19DRkxBR1MvLU99IiA9ICIke05FV19DRkxBR1N9IiBdOyB0aGVuCiAgICAgICAgTkVXX0NGTEFH Uz0iJHtORVdfQ0ZMQUdTfSAtTzIiOwogICAgZmk7CiAgICBpZiBbICIke0NYWEZMQUdTLy1PfSIg IT0gIiR7Q1hYRkxBR1N9IiAtYSAiJHtORVdfQ1hYRkxBR1MvLU99IiA9ICIke05FV19DWFhGTEFH U30iIF07IHRoZW4KICAgICAgICBORVdfQ1hYRkxBR1M9IiR7TkVXX0NYWEZMQUdTfSAtTzIiOwog ICAgZmk7CiAgICBzZXQgK2Y7CiAgICBleHBvcnQgQ0ZMQUdTPSIke05FV19DRkxBR1N9IjsKICAg IGV4cG9ydCBDWFhGTEFHUz0iJHtORVdfQ1hYRkxBR1N9IjsKICAgIHJldHVybiAwCn0Kc3RyaXAt bGluZ3VhcyAoKSAKeyAKICAgIGxvY2FsIGxzIG5ld2xzIG5vbHM7CiAgICBpZiBbWyAkMSA9PSAi LWkiIF1dIHx8IFtbICQxID09ICItdSIgXV07IHRoZW4KICAgICAgICBsb2NhbCBvcD0kMTsKICAg ICAgICBzaGlmdDsKICAgICAgICBscz0kKGZpbmQgIiQxIiAtbmFtZSAnKi5wbycgLWV4ZWMgYmFz ZW5hbWUge30gLnBvIFw7KTsKICAgICAgICBzaGlmdDsKICAgICAgICBsb2NhbCBkIGY7CiAgICAg ICAgZm9yIGQgaW4gIiRAIjsKICAgICAgICBkbwogICAgICAgICAgICBpZiBbWyAke29wfSA9PSAi LXUiIF1dOyB0aGVuCiAgICAgICAgICAgICAgICBuZXdscz0ke2xzfTsKICAgICAgICAgICAgZWxz ZQogICAgICAgICAgICAgICAgbmV3bHM9IiI7CiAgICAgICAgICAgIGZpOwogICAgICAgICAgICBm b3IgZiBpbiAkKGZpbmQgIiRkIiAtbmFtZSAnKi5wbycgLWV4ZWMgYmFzZW5hbWUge30gLnBvIFw7 KTsKICAgICAgICAgICAgZG8KICAgICAgICAgICAgICAgIGlmIFtbICR7b3B9ID09ICItaSIgXV07 IHRoZW4KICAgICAgICAgICAgICAgICAgICBoYXNxICR7Zn0gJHtsc30gJiYgbmV3bHM9IiR7bmV3 bHN9ICR7Zn0iOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIGhhc3Eg JHtmfSAke2xzfSB8fCBuZXdscz0iJHtuZXdsc30gJHtmfSI7CiAgICAgICAgICAgICAgICBmaTsK ICAgICAgICAgICAgZG9uZTsKICAgICAgICAgICAgbHM9JHtuZXdsc307CiAgICAgICAgZG9uZTsK ICAgIGVsc2UKICAgICAgICBscz0iJEAiOwogICAgZmk7CiAgICBub2xzPSIiOwogICAgbmV3bHM9 IiI7CiAgICBmb3IgZiBpbiAke0xJTkdVQVN9OwogICAgZG8KICAgICAgICBpZiBoYXNxICR7Zn0g JHtsc307IHRoZW4KICAgICAgICAgICAgbmV3bHM9IiR7bmV3bHN9ICR7Zn0iOwogICAgICAgIGVs c2UKICAgICAgICAgICAgbm9scz0iJHtub2xzfSAke2Z9IjsKICAgICAgICBmaTsKICAgIGRvbmU7 CiAgICBbWyAtbiAke25vbHN9IF1dICYmIGV3YXJuICJTb3JyeSwgYnV0ICR7UE59IGRvZXMgbm90 IHN1cHBvcnQgdGhlIExJTkdVQXM6IiAke25vbHN9OwogICAgZXhwb3J0IExJTkdVQVM9JHtuZXds czoxfQp9CnN0cmlwLXVuc3VwcG9ydGVkLWZsYWdzICgpIAp7IAogICAgZXhwb3J0IENGTEFHUz0k KHRlc3QtZmxhZ3MtQ0MgJHtDRkxBR1N9KTsKICAgIGV4cG9ydCBDWFhGTEFHUz0kKHRlc3QtZmxh Z3MtQ1hYICR7Q1hYRkxBR1N9KQp9CnRjLWFyY2ggKCkgCnsgCiAgICB0Yy1uaW5qYV9tYWdpY190 b19hcmNoIHBvcnRhZ2UgIiRAIgp9CnRjLWFyY2gta2VybmVsICgpIAp7IAogICAgdGMtbmluamFf bWFnaWNfdG9fYXJjaCBrZXJuICIkQCIKfQp0Yy1lbmRpYW4gKCkgCnsgCiAgICBsb2NhbCBob3N0 PSQxOwogICAgW1sgLXogJHtob3N0fSBdXSAmJiBob3N0PSR7Q1RBUkdFVDotJHtDSE9TVH19Owog ICAgaG9zdD0ke2hvc3QlJS0qfTsKICAgIGNhc2UgJHtob3N0fSBpbiAKICAgICAgICBhbHBoYSop CiAgICAgICAgICAgIGVjaG8gYmlnCiAgICAgICAgOzsKICAgICAgICBhcm0qYiopCiAgICAgICAg ICAgIGVjaG8gYmlnCiAgICAgICAgOzsKICAgICAgICBhcm0qKQogICAgICAgICAgICBlY2hvIGxp dHRsZQogICAgICAgIDs7CiAgICAgICAgY3JpcyopCiAgICAgICAgICAgIGVjaG8gbGl0dGxlCiAg ICAgICAgOzsKICAgICAgICBocHBhKikKICAgICAgICAgICAgZWNobyBiaWcKICAgICAgICA7Owog ICAgICAgIGk/ODYqKQogICAgICAgICAgICBlY2hvIGxpdHRsZQogICAgICAgIDs7CiAgICAgICAg aWE2NCopCiAgICAgICAgICAgIGVjaG8gbGl0dGxlCiAgICAgICAgOzsKICAgICAgICBtNjgqKQog ICAgICAgICAgICBlY2hvIGJpZwogICAgICAgIDs7CiAgICAgICAgbWlwcypsKikKICAgICAgICAg ICAgZWNobyBsaXR0bGUKICAgICAgICA7OwogICAgICAgIG1pcHMqKQogICAgICAgICAgICBlY2hv IGJpZwogICAgICAgIDs7CiAgICAgICAgcG93ZXJwYyopCiAgICAgICAgICAgIGVjaG8gYmlnCiAg ICAgICAgOzsKICAgICAgICBzMzkwKikKICAgICAgICAgICAgZWNobyBiaWcKICAgICAgICA7Owog ICAgICAgIHNoKmIqKQogICAgICAgICAgICBlY2hvIGJpZwogICAgICAgIDs7CiAgICAgICAgc2gq KQogICAgICAgICAgICBlY2hvIGxpdHRsZQogICAgICAgIDs7CiAgICAgICAgc3BhcmMqKQogICAg ICAgICAgICBlY2hvIGJpZwogICAgICAgIDs7CiAgICAgICAgeDg2XzY0KikKICAgICAgICAgICAg ZWNobyBsaXR0bGUKICAgICAgICA7OwogICAgICAgICopCiAgICAgICAgICAgIGVjaG8gd3RmCiAg ICAgICAgOzsKICAgIGVzYWMKfQp0Yy1leHBvcnQgKCkgCnsgCiAgICBsb2NhbCB2YXI7CiAgICBm b3IgdmFyIGluICIkQCI7CiAgICBkbwogICAgICAgIGV2YWwgdGMtZ2V0JHt2YXJ9ID4gL2Rldi9u dWxsOwogICAgZG9uZQp9CnRjLWdldEFSICgpIAp7IAogICAgdGMtZ2V0UFJPRyBBUiBhciAiJEAi Cn0KdGMtZ2V0QVMgKCkgCnsgCiAgICB0Yy1nZXRQUk9HIEFTIGFzICIkQCIKfQp0Yy1nZXRCVUlM RF9DQyAoKSAKeyAKICAgIGxvY2FsIHY7CiAgICBmb3IgdiBpbiBDQ19GT1JfQlVJTEQgQlVJTERf Q0MgSE9TVENDOwogICAgZG8KICAgICAgICBpZiBbWyAtbiAkeyF2fSBdXTsgdGhlbgogICAgICAg ICAgICBleHBvcnQgQlVJTERfQ0M9JHshdn07CiAgICAgICAgICAgIGVjaG8gIiR7IXZ9IjsKICAg ICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgZmk7CiAgICBkb25lOwogICAgbG9jYWwgc2VhcmNo PTsKICAgIGlmIFtbIC1uICR7Q0JVSUxEfSBdXTsgdGhlbgogICAgICAgIHNlYXJjaD0kKHR5cGUg LXAgJHtDQlVJTER9LWdjYyk7CiAgICAgICAgc2VhcmNoPSR7c2VhcmNoIyMqL307CiAgICBmaTsK ICAgIHNlYXJjaD0ke3NlYXJjaDotZ2NjfTsKICAgIGV4cG9ydCBCVUlMRF9DQz0ke3NlYXJjaH07 CiAgICBlY2hvICIke3NlYXJjaH0iCn0KdGMtZ2V0Q0MgKCkgCnsgCiAgICB0Yy1nZXRQUk9HIEND IGdjYyAiJEAiCn0KdGMtZ2V0Q1BQICgpIAp7IAogICAgdGMtZ2V0UFJPRyBDUFAgY3BwICIkQCIK fQp0Yy1nZXRDWFggKCkgCnsgCiAgICB0Yy1nZXRQUk9HIENYWCBnKysgIiRAIgp9CnRjLWdldEY3 NyAoKSAKeyAKICAgIHRjLWdldFBST0cgRjc3IGY3NyAiJEAiCn0KdGMtZ2V0RjkwICgpIAp7IAog ICAgdGMtZ2V0UFJPRyBGOTAgZ2ZvcnRyYW4gIiRAIgp9CnRjLWdldEZPUlRSQU4gKCkgCnsgCiAg ICB0Yy1nZXRQUk9HIEZPUlRSQU4gZ2ZvcnRyYW4gIiRAIgp9CnRjLWdldEdDSiAoKSAKeyAKICAg IHRjLWdldFBST0cgR0NKIGdjaiAiJEAiCn0KdGMtZ2V0TEQgKCkgCnsgCiAgICB0Yy1nZXRQUk9H IExEIGxkICIkQCIKfQp0Yy1nZXROTSAoKSAKeyAKICAgIHRjLWdldFBST0cgTk0gbm0gIiRAIgp9 CnRjLWdldFBST0cgKCkgCnsgCiAgICBsb2NhbCB2YXI9JDE7CiAgICBsb2NhbCBwcm9nPSQyOwog ICAgaWYgW1sgLW4gJHshdmFyfSBdXTsgdGhlbgogICAgICAgIGVjaG8gIiR7IXZhcn0iOwogICAg ICAgIHJldHVybiAwOwogICAgZmk7CiAgICBsb2NhbCBzZWFyY2g9OwogICAgW1sgLW4gJDMgXV0g JiYgc2VhcmNoPSQodHlwZSAtcCAiJDMtJHtwcm9nfSIpOwogICAgW1sgLXogJHtzZWFyY2h9ICYm IC1uICR7Q0hPU1R9IF1dICYmIHNlYXJjaD0kKHR5cGUgLXAgIiR7Q0hPU1R9LSR7cHJvZ30iKTsK ICAgIFtbIC1uICR7c2VhcmNofSBdXSAmJiBwcm9nPSR7c2VhcmNoIyMqL307CiAgICBleHBvcnQg JHt2YXJ9PSR7cHJvZ307CiAgICBlY2hvICIkeyF2YXJ9Igp9CnRjLWdldFJBTkxJQiAoKSAKeyAK ICAgIHRjLWdldFBST0cgUkFOTElCIHJhbmxpYiAiJEAiCn0KdGMtZ2V0U1RSSVAgKCkgCnsgCiAg ICB0Yy1nZXRQUk9HIFNUUklQIHN0cmlwICIkQCIKfQp0Yy1pcy1jcm9zcy1jb21waWxlciAoKSAK eyAKICAgIHJldHVybiAkKFtbICR7Q0JVSUxEOi0ke0NIT1NUfX0gIT0gJHtDSE9TVH0gXV0pCn0K dGMtaXMtc29mdGZsb2F0ICgpIAp7IAogICAgY2FzZSAke0NUQVJHRVR9IGluIAogICAgICAgIGJm aW4qIHwgaDgzMDAqKQogICAgICAgICAgICBlY2hvICJvbmx5IgogICAgICAgIDs7CiAgICAgICAg KikKICAgICAgICAgICAgW1sgJHtDVEFSR0VULy9fLy19ID09ICotc29mdGZsb2F0LSogXV0gJiYg ZWNobyAieWVzIiB8fCBlY2hvICJubyIKICAgICAgICA7OwogICAgZXNhYwp9CnRjLW5pbmphX21h Z2ljX3RvX2FyY2ggKCkgCnsgCiAgICBmdW5jdGlvbiBuaW5qICgpIAogICAgeyAKICAgICAgICBb WyAke3R5cGV9ID09ICJrZXJuIiBdXSAmJiBlY2hvICQxIHx8IGVjaG8gJDIKICAgIH07CiAgICBs b2NhbCB0eXBlPSQxOwogICAgbG9jYWwgaG9zdD0kMjsKICAgIFtbIC16ICR7aG9zdH0gXV0gJiYg aG9zdD0ke0NUQVJHRVQ6LSR7Q0hPU1R9fTsKICAgIGNhc2UgJHtob3N0fSBpbiAKICAgICAgICBh bHBoYSopCiAgICAgICAgICAgIGVjaG8gYWxwaGEKICAgICAgICA7OwogICAgICAgIGFybSopCiAg ICAgICAgICAgIGVjaG8gYXJtCiAgICAgICAgOzsKICAgICAgICBhdnIqKQogICAgICAgICAgICBu aW5qIGF2cjMyIGF2cgogICAgICAgIDs7CiAgICAgICAgYmZpbiopCiAgICAgICAgICAgIG5pbmog YmxhY2tmaW4gYmZpbgogICAgICAgIDs7CiAgICAgICAgY3JpcyopCiAgICAgICAgICAgIGVjaG8g Y3JpcwogICAgICAgIDs7CiAgICAgICAgaHBwYSopCiAgICAgICAgICAgIG5pbmogcGFyaXNjIGhw cGEKICAgICAgICA7OwogICAgICAgIGk/ODYqKQogICAgICAgICAgICBpZiBbWyAke3R5cGV9ID09 ICJrZXJuIiBdXSAmJiBbWyAkKEtWX3RvX2ludCAke0tWfSkgLWx0ICQoS1ZfdG9faW50IDIuNi4y NCkgXV07IHRoZW4KICAgICAgICAgICAgICAgIGVjaG8gaTM4NjsKICAgICAgICAgICAgZWxzZQog ICAgICAgICAgICAgICAgZWNobyB4ODY7CiAgICAgICAgICAgIGZpCiAgICAgICAgOzsKICAgICAg ICBpYTY0KikKICAgICAgICAgICAgZWNobyBpYTY0CiAgICAgICAgOzsKICAgICAgICBtNjgqKQog ICAgICAgICAgICBlY2hvIG02OGsKICAgICAgICA7OwogICAgICAgIG1pcHMqKQogICAgICAgICAg ICBlY2hvIG1pcHMKICAgICAgICA7OwogICAgICAgIG5pb3MyKikKICAgICAgICAgICAgZWNobyBu aW9zMgogICAgICAgIDs7CiAgICAgICAgbmlvcyopCiAgICAgICAgICAgIGVjaG8gbmlvcwogICAg ICAgIDs7CiAgICAgICAgcG93ZXJwYyopCiAgICAgICAgICAgIGlmIFtbICQoS1ZfdG9faW50ICR7 S1Z9KSAtZ2UgJChLVl90b19pbnQgMi42LjE2KSBdXSAmJiBbWyAke3R5cGV9ID09ICJrZXJuIiBd XTsgdGhlbgogICAgICAgICAgICAgICAgZWNobyBwb3dlcnBjOwogICAgICAgICAgICBlbHNlCiAg ICAgICAgICAgICAgICBpZiBbWyAkKEtWX3RvX2ludCAke0tWfSkgLWVxICQoS1ZfdG9faW50IDIu Ni4xNSkgXV0gJiYgW1sgJHt0eXBlfSA9PSAia2VybiIgXV07IHRoZW4KICAgICAgICAgICAgICAg ICAgICBpZiBbWyAke2hvc3R9ID09IHBvd2VycGM2NCogXV0gfHwgW1sgJHtQUk9GSUxFX0FSQ0h9 ID09ICJwcGM2NCIgXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgZWNobyBwb3dlcnBj OwogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgZWNobyBw cGM7CiAgICAgICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAg ICAgICAgICAgICAgaWYgW1sgJHtob3N0fSA9PSBwb3dlcnBjNjQqIF1dOyB0aGVuCiAgICAgICAg ICAgICAgICAgICAgICAgIGVjaG8gcHBjNjQ7CiAgICAgICAgICAgICAgICAgICAgZWxzZQogICAg ICAgICAgICAgICAgICAgICAgICBpZiBbWyAke1BST0ZJTEVfQVJDSH0gPT0gInBwYzY0IiBdXTsg dGhlbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmluaiBwcGM2NCBwcGM7CiAgICAgICAg ICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gcHBj OwogICAgICAgICAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgICAgICAgICBmaTsKICAg ICAgICAgICAgICAgIGZpOwogICAgICAgICAgICBmaQogICAgICAgIDs7CiAgICAgICAgczM5MCop CiAgICAgICAgICAgIGVjaG8gczM5MAogICAgICAgIDs7CiAgICAgICAgc2g2NCopCiAgICAgICAg ICAgIG5pbmogc2g2NCBzaAogICAgICAgIDs7CiAgICAgICAgc2gqKQogICAgICAgICAgICBlY2hv IHNoCiAgICAgICAgOzsKICAgICAgICBzcGFyYzY0KikKICAgICAgICAgICAgbmluaiBzcGFyYzY0 IHNwYXJjCiAgICAgICAgOzsKICAgICAgICBzcGFyYyopCiAgICAgICAgICAgIFtbICR7UFJPRklM RV9BUkNIfSA9PSAic3BhcmM2NCIgXV0gJiYgbmluaiBzcGFyYzY0IHNwYXJjIHx8IGVjaG8gc3Bh cmMKICAgICAgICA7OwogICAgICAgIHZheCopCiAgICAgICAgICAgIGVjaG8gdmF4CiAgICAgICAg OzsKICAgICAgICB4ODZfNjQqKQogICAgICAgICAgICBpZiBbWyAke3R5cGV9ID09ICJrZXJuIiBd XSAmJiBbWyAkKEtWX3RvX2ludCAke0tWfSkgLWdlICQoS1ZfdG9faW50IDIuNi4yNCkgXV07IHRo ZW4KICAgICAgICAgICAgICAgIGVjaG8geDg2OwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAg ICAgICBuaW5qIHg4Nl82NCBhbWQ2NDsKICAgICAgICAgICAgZmkKICAgICAgICA7OwogICAgICAg ICopCiAgICAgICAgICAgIGVjaG8gdW5rbm93bgogICAgICAgIDs7CiAgICBlc2FjCn0KdGVzdC1m bGFnLUNDICgpIAp7IAogICAgdGVzdC1mbGFnLVBST0cgIkNDIiAiJDEiCn0KdGVzdC1mbGFnLUNY WCAoKSAKeyAKICAgIHRlc3QtZmxhZy1QUk9HICJDWFgiICIkMSIKfQp0ZXN0LWZsYWctUFJPRyAo KSAKeyAKICAgIGxvY2FsIGNvbXA9JDE7CiAgICBsb2NhbCBmbGFncz0iJDIiOwogICAgW1sgLXog JHtjb21wfSB8fCAteiAke2ZsYWdzfSBdXSAmJiByZXR1cm4gMTsKICAgIGxvY2FsIFBST0c9JCh0 Yy1nZXQke2NvbXB9KTsKICAgICR7UFJPR30gJHtmbGFnc30gLVMgLW8gL2Rldi9udWxsIC14YyAv ZGV2L251bGwgPiAvZGV2L251bGwgMj4mMQp9CnRlc3QtZmxhZ3MgKCkgCnsgCiAgICB0ZXN0LWZs YWdzLUNDICIkQCIKfQp0ZXN0LWZsYWdzLUNDICgpIAp7IAogICAgdGVzdC1mbGFncy1QUk9HICJD QyIgIiRAIgp9CnRlc3QtZmxhZ3MtQ1hYICgpIAp7IAogICAgdGVzdC1mbGFncy1QUk9HICJDWFgi ICIkQCIKfQp0ZXN0LWZsYWdzLVBST0cgKCkgCnsgCiAgICBsb2NhbCBjb21wPSQxOwogICAgbG9j YWwgZmxhZ3M7CiAgICBsb2NhbCB4OwogICAgc2hpZnQ7CiAgICBbWyAteiAke2NvbXB9IF1dICYm IHJldHVybiAxOwogICAgeD0iIjsKICAgIGZvciB4IGluICIkQCI7CiAgICBkbwogICAgICAgIHRl c3QtZmxhZy0ke2NvbXB9ICIke3h9IiAmJiBmbGFncz0iJHtmbGFnc30ke2ZsYWdzOisgfSR7eH0i OwogICAgZG9uZTsKICAgIGVjaG8gIiR7ZmxhZ3N9IjsKICAgIFtbIC1uICR7ZmxhZ3N9IF1dCn0K dGVzdF9mbGFnICgpIAp7IAogICAgZXdhcm4gInRlc3RfZmxhZzogZGVwcmVjYXRlZCwgcGxlYXNl IHVzZSB0ZXN0LWZsYWdzKCkhIiAxPiYyOwogICAgdGVzdC1mbGFncy1DQyAiJEAiCn0KdGVzdF92 ZXJzaW9uX2luZm8gKCkgCnsgCiAgICBpZiBbWyAkKCQodGMtZ2V0Q0MpIC0tdmVyc2lvbiAyPiYx KSA9PSAqJDEqIF1dOyB0aGVuCiAgICAgICAgcmV0dXJuIDA7CiAgICBlbHNlCiAgICAgICAgcmV0 dXJuIDE7CiAgICBmaQp9CnRyZWVjb3B5ICgpIAp7IAogICAgZGVzdD0keyEjfTsKICAgIGZpbGVz X2NvdW50PSQjOwogICAgd2hpbGUgKCggJCMgPiAxICkpOyBkbwogICAgICAgIGRpcnN0cnVjdD0k KGRpcm5hbWUgIiQxIik7CiAgICAgICAgbWtkaXIgLXAgIiR7ZGVzdH0vJHtkaXJzdHJ1Y3R9IjsK ICAgICAgICBjcCAtcFBSICIkMSIgIiR7ZGVzdH0vJHtkaXJzdHJ1Y3R9IjsKICAgICAgICBzaGlm dDsKICAgIGRvbmUKfQp1bnBhY2tfbWFrZXNlbGYgKCkgCnsgCiAgICBsb2NhbCBzcmNfaW5wdXQ9 JHsxOi0ke0F9fTsKICAgIGxvY2FsIHNyYz0kKGZpbmRfdW5wYWNrYWJsZV9maWxlICIke3NyY19p bnB1dH0iKTsKICAgIGxvY2FsIHNraXA9JDI7CiAgICBsb2NhbCBleGU9JDM7CiAgICBbWyAteiAk e3NyY30gXV0gJiYgZGllICJDb3VsZCBub3QgbG9jYXRlIHNvdXJjZSBmb3IgJyR7c3JjX2lucHV0 fSciOwogICAgbG9jYWwgc2hydHNyYz0kKGJhc2VuYW1lICIke3NyY30iKTsKICAgIGVjaG8gIj4+ PiBVbnBhY2tpbmcgJHtzaHJ0c3JjfSB0byAke1BXRH0iOwogICAgaWYgW1sgLXogJHtza2lwfSBd XTsgdGhlbgogICAgICAgIGxvY2FsIHZlcj0kKGdyZXAgLWEgJyMuKk1ha2VzZWxmJyAiJHtzcmN9 IiB8IGF3ayAne3ByaW50ICRORn0nKTsKICAgICAgICBsb2NhbCBza2lwPTA7CiAgICAgICAgZXhl PXRhaWw7CiAgICAgICAgY2FzZSAke3Zlcn0gaW4gCiAgICAgICAgICAgIDEuNS4qIHwgMS42LjAt bnYpCiAgICAgICAgICAgICAgICBza2lwPSQoZ3JlcCAtYSBec2tpcD0gIiR7c3JjfSIgfCBjdXQg LWQ9IC1mMikKICAgICAgICAgICAgOzsKICAgICAgICAgICAgMi4wIHwgMi4wLjEpCiAgICAgICAg ICAgICAgICBza2lwPSQoZ3JlcCAtYSBeJwkndGFpbCAiJHtzcmN9IiB8IGF3ayAne3ByaW50ICQy fScgfCBjdXQgLWIyLSkKICAgICAgICAgICAgOzsKICAgICAgICAgICAgMi4xLjEpCiAgICAgICAg ICAgICAgICBza2lwPSQoZ3JlcCAtYSBeb2Zmc2V0PSAiJHtzcmN9IiB8IGF3ayAne3ByaW50ICQy fScgfCBjdXQgLWIyLSk7CiAgICAgICAgICAgICAgICBsZXQgc2tpcD0ic2tpcCArIDEiCiAgICAg ICAgICAgIDs7CiAgICAgICAgICAgIDIuMS4yKQogICAgICAgICAgICAgICAgc2tpcD0kKGdyZXAg LWEgXm9mZnNldD0gIiR7c3JjfSIgfCBhd2sgJ3twcmludCAkM30nIHwgaGVhZCAtbiAxKTsKICAg ICAgICAgICAgICAgIGxldCBza2lwPSJza2lwICsgMSIKICAgICAgICAgICAgOzsKICAgICAgICAg ICAgMi4xLjMpCiAgICAgICAgICAgICAgICBza2lwPWBncmVwIC1hIF5vZmZzZXQ9ICIke3NyY30i IHwgYXdrICd7cHJpbnQgJDN9J2A7CiAgICAgICAgICAgICAgICBsZXQgc2tpcD0ic2tpcCArIDEi CiAgICAgICAgICAgIDs7CiAgICAgICAgICAgIDIuMS40IHwgMi4xLjUpCiAgICAgICAgICAgICAg ICBza2lwPSQoZ3JlcCAtYSBvZmZzZXQ9LipoZWFkLip3YyAiJHtzcmN9IiB8IGF3ayAne3ByaW50 ICQzfScgfCBoZWFkIC1uIDEpOwogICAgICAgICAgICAgICAgc2tpcD0kKGhlYWQgLW4gJHtza2lw fSAiJHtzcmN9IiB8IHdjIC1jKTsKICAgICAgICAgICAgICAgIGV4ZT0iZGQiCiAgICAgICAgICAg IDs7CiAgICAgICAgICAgICopCiAgICAgICAgICAgICAgICBlZXJyb3IgIkknbSBzb3JyeSwgYnV0 IEkgd2FzIHVuYWJsZSB0byBzdXBwb3J0IHRoZSBNYWtlc2VsZiBmaWxlLiI7CiAgICAgICAgICAg ICAgICBlZXJyb3IgIlRoZSB2ZXJzaW9uIEkgZGV0ZWN0ZWQgd2FzICcke3Zlcn0nLiI7CiAgICAg ICAgICAgICAgICBlZXJyb3IgIlBsZWFzZSBmaWxlIGEgYnVnIGFib3V0IHRoZSBmaWxlICR7c2hy dHNyY30gYXQiOwogICAgICAgICAgICAgICAgZWVycm9yICJodHRwOi8vYnVncy5nZW50b28ub3Jn LyBzbyB0aGF0IHN1cHBvcnQgY2FuIGJlIGFkZGVkLiI7CiAgICAgICAgICAgICAgICBkaWUgIm1h a2VzZWxmIHZlcnNpb24gJyR7dmVyfScgbm90IHN1cHBvcnRlZCIKICAgICAgICAgICAgOzsKICAg ICAgICBlc2FjOwogICAgICAgIGRlYnVnLXByaW50ICJEZXRlY3RlZCBNYWtlc2VsZiB2ZXJzaW9u ICR7dmVyfSAuLi4gdXNpbmcgJHtza2lwfSBhcyBvZmZzZXQiOwogICAgZmk7CiAgICBjYXNlICR7 ZXhlfSBpbiAKICAgICAgICB0YWlsKQogICAgICAgICAgICBleGU9InRhaWwgLW4gKyR7c2tpcH0g JyR7c3JjfSciCiAgICAgICAgOzsKICAgICAgICBkZCkKICAgICAgICAgICAgZXhlPSJkZCBpYnM9 JHtza2lwfSBza2lwPTEgb2JzPTEwMjQgY29udj1zeW5jIGlmPScke3NyY30nIgogICAgICAgIDs7 CiAgICAgICAgKikKICAgICAgICAgICAgZGllICJtYWtlc2VsZiBjYW50IGhhbmRsZSBleGUgJyR7 ZXhlfSciCiAgICAgICAgOzsKICAgIGVzYWM7CiAgICBsb2NhbCB0bXBmaWxlPSQoZW1rdGVtcCk7 CiAgICBldmFsICR7ZXhlfSAyPiAvZGV2L251bGwgfCBoZWFkIC1jIDUxMiA+ICIke3RtcGZpbGV9 IjsKICAgIGxvY2FsIGZpbGV0eXBlPSQoZmlsZSAtYiAiJHt0bXBmaWxlfSIpOwogICAgY2FzZSAk e2ZpbGV0eXBlfSBpbiAKICAgICAgICAqdGFyXCBhcmNoaXZlKikKICAgICAgICAgICAgZXZhbCAk e2V4ZX0gfCB0YXIgLS1uby1zYW1lLW93bmVyIC14ZiAtCiAgICAgICAgOzsKICAgICAgICBiemlw MiopCiAgICAgICAgICAgIGV2YWwgJHtleGV9IHwgYnppcDIgLWRjIHwgdGFyIC0tbm8tc2FtZS1v d25lciAteGYgLQogICAgICAgIDs7CiAgICAgICAgZ3ppcCopCiAgICAgICAgICAgIGV2YWwgJHtl eGV9IHwgdGFyIC0tbm8tc2FtZS1vd25lciAteHpmIC0KICAgICAgICA7OwogICAgICAgIGNvbXBy ZXNzKikKICAgICAgICAgICAgZXZhbCAke2V4ZX0gfCBndW56aXAgfCB0YXIgLS1uby1zYW1lLW93 bmVyIC14ZiAtCiAgICAgICAgOzsKICAgICAgICAqKQogICAgICAgICAgICBlZXJyb3IgIlVua25v d24gZmlsZXR5cGUgXCIke2ZpbGV0eXBlfVwiID8iOwogICAgICAgICAgICBmYWxzZQogICAgICAg IDs7CiAgICBlc2FjOwogICAgX3BpcGVzdGF0dXM9IiR7UElQRVNUQVRVU1sqXX0iOwogICAgW1sg IiR7X3BpcGVzdGF0dXMvLyAvfSIgLWVxIDAgXV0gfHwgZGllICJmYWlsdXJlIHVucGFja2luZyAo JHtmaWxldHlwZX0pIG1ha2VzZWxmICR7c2hydHNyY30gKCcke3Zlcn0nICske3NraXB9KSIKfQp1 bnBhY2tfcGR2ICgpIAp7IAogICAgbG9jYWwgc3JjPSQoZmluZF91bnBhY2thYmxlX2ZpbGUgIiQx Iik7CiAgICBsb2NhbCBzaXplb2ZmX3Q9JDI7CiAgICBbWyAteiAke3NyY30gXV0gJiYgZGllICJD b3VsZCBub3QgbG9jYXRlIHNvdXJjZSBmb3IgJyQxJyI7CiAgICBbWyAteiAke3NpemVvZmZfdH0g XV0gJiYgZGllICJObyBpZGVhIHdoYXQgb2ZmX3Qgc2l6ZSB3YXMgdXNlZCBmb3IgdGhpcyBwZHYg OigiOwogICAgbG9jYWwgc2hydHNyYz0kKGJhc2VuYW1lICIke3NyY30iKTsKICAgIGVjaG8gIj4+ PiBVbnBhY2tpbmcgJHtzaHJ0c3JjfSB0byAke1BXRH0iOwogICAgbG9jYWwgbWV0YXNraXA9JCh0 YWlsIC1jICR7c2l6ZW9mZl90fSAiJHtzcmN9IiB8IGhleGR1bXAgLWUgXCIlaVwiKTsKICAgIGxv Y2FsIHRhaWxza2lwPSQodGFpbCAtYyAkKCgke3NpemVvZmZfdH0qMikpICIke3NyY30iIHwgaGVh ZCAtYyAke3NpemVvZmZfdH0gfCBoZXhkdW1wIC1lIFwiJWlcIik7CiAgICBsb2NhbCBtZXRhZmls ZT0kKGVta3RlbXApOwogICAgdGFpbCAtYyArJCgoJHttZXRhc2tpcH0rMSkpICIke3NyY30iID4g IiR7bWV0YWZpbGV9IjsKICAgIGxvY2FsIGRhdGFmaWxlPSQodGFpbCAtYyArJCgoJHttZXRhc2tp cH0rMSkpICIke3NyY30iIHwgc3RyaW5ncyB8IGhlYWQgLW4gMSk7CiAgICBkYXRhZmlsZT0kKGJh c2VuYW1lICIke2RhdGFmaWxlfSIpOwogICAgbG9jYWwgdG1wZmlsZT0kKGVta3RlbXApOwogICAg dGFpbCAtYyArJCgoJHt0YWlsc2tpcH0rMSkpICR7c3JjfSAyPiAvZGV2L251bGwgfCBoZWFkIC1j IDUxMiA+ICR7dG1wZmlsZX07CiAgICBsb2NhbCBpc2NvbXByZXNzZWQ9JChmaWxlIC1iICIke3Rt cGZpbGV9Iik7CiAgICBpZiBbWyAke2lzY29tcHJlc3NlZDowOjh9ID09ICJjb21wcmVzcyIgXV07 IHRoZW4KICAgICAgICBpc2NvbXByZXNzZWQ9MTsKICAgICAgICBtdiAke3RtcGZpbGV9eywuWn07 CiAgICAgICAgZ3VuemlwICR7dG1wZmlsZX07CiAgICBlbHNlCiAgICAgICAgaXNjb21wcmVzc2Vk PTA7CiAgICBmaTsKICAgIGxvY2FsIGlzdGFyPSQoZmlsZSAtYiAiJHt0bXBmaWxlfSIpOwogICAg aWYgW1sgJHtpc3RhcjowOjl9ID09ICJQT1NJWCB0YXIiIF1dOyB0aGVuCiAgICAgICAgaXN0YXI9 MTsKICAgIGVsc2UKICAgICAgICBpc3Rhcj0wOwogICAgZmk7CiAgICBpZiBbICR7aXNjb21wcmVz c2VkfSAtZXEgMSBdOyB0aGVuCiAgICAgICAgaWYgWyAke2lzdGFyfSAtZXEgMSBdOyB0aGVuCiAg ICAgICAgICAgIHRhaWwgLWMgKyQoKCR7dGFpbHNraXB9KzEpKSAke3NyY30gMj4gL2Rldi9udWxs IHwgaGVhZCAtYyAkKCgke21ldGFza2lwfS0ke3RhaWxza2lwfSkpIHwgdGFyIC14emYgLTsKICAg ICAgICBlbHNlCiAgICAgICAgICAgIHRhaWwgLWMgKyQoKCR7dGFpbHNraXB9KzEpKSAke3NyY30g Mj4gL2Rldi9udWxsIHwgaGVhZCAtYyAkKCgke21ldGFza2lwfS0ke3RhaWxza2lwfSkpIHwgZ3pp cCAtZGMgPiAke2RhdGFmaWxlfTsKICAgICAgICBmaTsKICAgIGVsc2UKICAgICAgICBpZiBbICR7 aXN0YXJ9IC1lcSAxIF07IHRoZW4KICAgICAgICAgICAgdGFpbCAtYyArJCgoJHt0YWlsc2tpcH0r MSkpICR7c3JjfSAyPiAvZGV2L251bGwgfCBoZWFkIC1jICQoKCR7bWV0YXNraXB9LSR7dGFpbHNr aXB9KSkgfCB0YXIgLS1uby1zYW1lLW93bmVyIC14ZiAtOwogICAgICAgIGVsc2UKICAgICAgICAg ICAgdGFpbCAtYyArJCgoJHt0YWlsc2tpcH0rMSkpICR7c3JjfSAyPiAvZGV2L251bGwgfCBoZWFk IC1jICQoKCR7bWV0YXNraXB9LSR7dGFpbHNraXB9KSkgPiAke2RhdGFmaWxlfTsKICAgICAgICBm aTsKICAgIGZpOwogICAgdHJ1ZQp9CnZhbGlkYXRlX2Rlc2t0b3BfZW50cmllcyAoKSAKeyAKICAg IGlmIFtbIC14IC91c3IvYmluL2Rlc2t0b3AtZmlsZS12YWxpZGF0ZSBdXTsgdGhlbgogICAgICAg IGVpbmZvICJDaGVja2luZyBkZXNrdG9wIGVudHJ5IHZhbGlkaXR5IjsKICAgICAgICBsb2NhbCBk aXJlY3Rvcmllcz0iIjsKICAgICAgICBmb3IgZCBpbiAvdXNyL3NoYXJlL2FwcGxpY2F0aW9ucyAk QDsKICAgICAgICBkbwogICAgICAgICAgICBbWyAtZCAke0R9JHtkfSBdXSAmJiBkaXJlY3Rvcmll cz0iJHtkaXJlY3Rvcmllc30gJHtEfSR7ZH0iOwogICAgICAgIGRvbmU7CiAgICAgICAgaWYgW1sg LW4gJHtkaXJlY3Rvcmllc30gXV07IHRoZW4KICAgICAgICAgICAgZm9yIEZJTEUgaW4gJChmaW5k ICR7ZGlyZWN0b3JpZXN9IC1uYW1lICIqXC5kZXNrdG9wIiAJCQkJCQkJLW5vdCAtcGF0aCAnKi5o aWRkZW4qJyB8IHNvcnQgLXUgMj4vZGV2L251bGwpOwogICAgICAgICAgICBkbwogICAgICAgICAg ICAgICAgbG9jYWwgdGVtcD0kKGRlc2t0b3AtZmlsZS12YWxpZGF0ZSAke0ZJTEV9IHwgZ3JlcCAt diAid2FybmluZzoiIHwgCQkJCQkJCQlzZWQgLWUgInN8ZXJyb3I6IHx8IiAtZSAic3wke0ZJTEV9 OnwtLXxnIiApOwogICAgICAgICAgICAgICAgW1sgLW4gJHRlbXAgXV0gJiYgZWxvZyAke3RlbXAv LS0vJHtGSUxFLyR7RH0vfTp9OwogICAgICAgICAgICBkb25lOwogICAgICAgIGZpOwogICAgICAg IGVjaG8gIiI7CiAgICBlbHNlCiAgICAgICAgZWluZm8gIlBhc3NpbmcgZGVza3RvcCBlbnRyeSB2 YWxpZGl0eSBjaGVjay4gSW5zdGFsbCBkZXYtdXRpbC9kZXNrdG9wLWZpbGUtdXRpbHMsIGlmIHlv dSB3YW50IHRvIGhlbHAgdG8gaW1wcm92ZSBHZW50b28uIjsKICAgIGZpCn0KZGVjbGFyZSAteCBB Qkk9ImFtZDY0IgpkZWNsYXJlIC14IEFMU0FfQ0FSRFM9ImFsaTU0NTEgYWxzNDAwMCBhdGlpeHAg YXRpaXhwLW1vZGVtIGJ0ODd4IGNhMDEwNiBjbWlwY2kgZW11MTBrMXggZW5zMTM3MCBlbnMxMzcx IGVzMTkzOCBlczE5NjggZm04MDEgaGRhLWludGVsIGludGVsOHgwIGludGVsOHgwbSBtYWVzdHJv MyB0cmlkZW50IHVzYi1hdWRpbyB2aWE4Mnh4IHZpYTgyeHgtbW9kZW0geW1mcGNpIgpkZWNsYXJl IC14IEFMU0FfUENNX1BMVUdJTlM9ImFkcGNtIGFsYXcgYXN5bSBjb3B5IGRtaXggZHNoYXJlIGRz bm9vcCBlbXB0eSBleHRwbHVnIGZpbGUgaG9va3MgaWVjOTU4IGlvcGx1ZyBsYWRzcGEgbGZsb2F0 IGxpbmVhciBtZXRlciBtdWxhdyBtdWx0aSBudWxsIHBsdWcgcmF0ZSByb3V0ZSBzaGFyZSBzaG0g c29mdHZvbCIKZGVjbGFyZSAteCBBTlRfSE9NRT0iL3Vzci9zaGFyZS9hbnQtY29yZSIKZGVjbGFy ZSAteCBBUEFDSEUyX01PRFVMRVM9ImFjdGlvbnMgYWxpYXMgYXV0aF9iYXNpYyBhdXRobl9hbGlh cyBhdXRobl9hbm9uIGF1dGhuX2RibSBhdXRobl9kZWZhdWx0IGF1dGhuX2ZpbGUgYXV0aHpfZGJt IGF1dGh6X2RlZmF1bHQgYXV0aHpfZ3JvdXBmaWxlIGF1dGh6X2hvc3QgYXV0aHpfb3duZXIgYXV0 aHpfdXNlciBhdXRvaW5kZXggY2FjaGUgZGF2IGRhdl9mcyBkYXZfbG9jayBkZWZsYXRlIGRpciBk aXNrX2NhY2hlIGVudiBleHBpcmVzIGV4dF9maWx0ZXIgZmlsZV9jYWNoZSBmaWx0ZXIgaGVhZGVy cyBpbmNsdWRlIGluZm8gbG9nX2NvbmZpZyBsb2dpbyBtZW1fY2FjaGUgbWltZSBtaW1lX21hZ2lj IG5lZ290aWF0aW9uIHJld3JpdGUgc2V0ZW52aWYgc3BlbGluZyBzdGF0dXMgdW5pcXVlX2lkIHVz ZXJkaXIgdXNlcnRyYWNrIHZob3N0X2FsaWFzIgpkZWNsYXJlIC14IEFSQ0g9ImFtZDY0IgpkZWNs YXJlIC14IEFTRkxBR1NfeDg2PSItLTMyIgpkZWNsYXJlIC14IENCVUlMRD0ieDg2XzY0LXBjLWxp bnV4LWdudSIKZGVjbGFyZSAteCBDREVGSU5FX2FtZDY0PSJfX3g4Nl82NF9fIgpkZWNsYXJlIC14 IENERUZJTkVfZGVmYXVsdD0iX191bml4X18iCmRlY2xhcmUgLXggQ0RFRklORV94ODY9Il9faTM4 Nl9fIgpkZWNsYXJlIC14IENGTEFHUz0iLU8yIC1tYXJjaD14ODYtNjQgLXBpcGUiCmRlY2xhcmUg LXggQ0ZMQUdTX2RlZmF1bHQ9IiIKZGVjbGFyZSAteCBDRkxBR1NfeDg2PSItbTMyIC1ML2VtdWwv bGludXgveDg2L2xpYiAtTC9lbXVsL2xpbnV4L3g4Ni91c3IvbGliIgpkZWNsYXJlIC14IENIT1NU PSJ4ODZfNjQtcGMtbGludXgtZ251IgpkZWNsYXJlIC14IENIT1NUX2FtZDY0PSJ4ODZfNjQtcGMt bGludXgtZ251IgpkZWNsYXJlIC14IENIT1NUX2RlZmF1bHQ9Ing4Nl82NC1wYy1saW51eC1nbnUi CmRlY2xhcmUgLXggQ0hPU1RfeDg2PSJpNjg2LXBjLWxpbnV4LWdudSIKZGVjbGFyZSAteCBDTEFT U1BBVEg9Ii4iCmRlY2xhcmUgLXggQ1RBUkdFVF9kZWZhdWx0PSJ4ODZfNjQtcGMtbGludXgtZ251 IgpkZWNsYXJlIC14IENWU19SU0g9InNzaCIKZGVjbGFyZSAteCBDWFhGTEFHUz0iLU8yIC1tYXJj aD14ODYtNjQgLXBpcGUiCmRlY2xhcmUgLXggREJVU19TRVNTSU9OX0JVU19BRERSRVNTPSJ1bml4 OmFic3RyYWN0PS90bXAvZGJ1cy1FSUdXR2IyRmg3LGd1aWQ9MzM3NzlmOTc4MWUyZTNjNzQxNWNk NjVmNDdkNTc1MGMiCmRlY2xhcmUgLXggREJVU19TRVNTSU9OX0JVU19QSUQ9IjI1NzI2IgpkZWNs YXJlIC14IERDQ0NfUEFUSD0iL3Vzci9saWIvZGlzdGNjL2JpbiIKZGVjbGFyZSAteCBERUZBVUxU X0FCST0iYW1kNjQiCmRlY2xhcmUgLXggREVTS1RPUF9TRVNTSU9OPSJnbm9tZSIKZGVjbGFyZSAt eCBERVNLVE9QX1NUQVJUVVBfSUQ9IiIKZGVjbGFyZSAteCBERVNUVFJFRT0iL3VzciIKZGVjbGFy ZSAteCBESVJPUFRJT05TPSItbTA3NTUiCmRlY2xhcmUgLXggRUxJQkM9ImdsaWJjIgpkZWNsYXJl IC14IEVYRU9QVElPTlM9Ii1tMDc1NSIKZGVjbGFyZSAteCBGRUFUVVJFUz0iZGlzdGxvY2tzIG1l dGFkYXRhLXRyYW5zZmVyIHBhcmFsbGVsLWZldGNoIHNhbmRib3ggc2ZwZXJtcyBzdHJpY3QgdW5t ZXJnZS1vcnBoYW5zIHVzZXJmZXRjaCIKZGVjbGFyZSAteCBGTFRLX0RPQ0RJUj0iL3Vzci9zaGFy ZS9kb2MvZmx0ay0xLjEuNy9odG1sIgpkZWNsYXJlIC14IEdDQ19TUEVDUz0iIgpkZWNsYXJlIC14 IEdES19VU0VfWEZUPSIxIgpkZWNsYXJlIC14IEdETVNFU1NJT049Imdub21lIgpkZWNsYXJlIC14 IEdETV9MQU5HPSJlbl9VUy5VVEYtOCIKZGVjbGFyZSAteCBHRE1fWFNFUlZFUl9MT0NBVElPTj0i bG9jYWwiCmRlY2xhcmUgLXggR0VORVJBVElPTj0iMiIKZGVjbGFyZSAteCBHTk9NRV9ERVNLVE9Q X1NFU1NJT05fSUQ9IkRlZmF1bHQiCmRlY2xhcmUgLXggR05PTUVfS0VZUklOR19TT0NLRVQ9Ii90 bXAva2V5cmluZy1ROGlUa1gvc29ja2V0IgpkZWNsYXJlIC14IEdUS19NT0RVTEVTPSJnbm9tZWJy ZWFrcGFkIgpkZWNsYXJlIC14IEdUS19SQ19GSUxFUz0iL2V0Yy9ndGsvZ3RrcmM6L2hvbWUvYm9i Ly5ndGtyYy0xLjItZ25vbWUyIgpkZWNsYXJlIC14IEdVSUxFX0xPQURfUEFUSD0iL3Vzci9zaGFy ZS9ndWlsZS8xLjgiCmRlY2xhcmUgLXggSU5IRVJJVEVEPSJtdWx0aWxpYiB0b29sY2hhaW4tZnVu Y3MgZXV0aWxzIHBvcnRhYmlsaXR5IGZsYWctby1tYXRpYyIKZGVjbGFyZSAteCBJTlBVVF9ERVZJ Q0VTPSJrZXlib2FyZCBtb3VzZSIKZGVjbGFyZSAteCBJTlNERVNUVFJFRT0iIgpkZWNsYXJlIC14 IElOU09QVElPTlM9Ii1tMDY0NCIKZGVjbGFyZSAteCBJVVNFPSIgYWxzYSBjdXBzIGRidXMgZXNk IGdlY2tvIGhhbCBqYWNrIGpwZWcgbGNtcyBsZGFwIG5hcyBuY3Vyc2VzIG9wZW5nbCBvc3Mgc2Ft YmEgc2Nhbm5lciB4bWwgWCIKZGVjbGFyZSAteCBKQVZBQz0iL2V0Yy9qYXZhLWNvbmZpZy0yL2N1 cnJlbnQtc3lzdGVtLXZtL2Jpbi9qYXZhYyIKZGVjbGFyZSAteCBKQVZBX0hPTUU9Ii9ldGMvamF2 YS1jb25maWctMi9jdXJyZW50LXN5c3RlbS12bSIKZGVjbGFyZSAteCBKREtfSE9NRT0iL2V0Yy9q YXZhLWNvbmZpZy0yL2N1cnJlbnQtc3lzdGVtLXZtIgpkZWNsYXJlIC14IEtERURJUlM9Ii91c3I6 L3Vzci9sb2NhbDovdXNyL2tkZS80LjA6L3Vzci9rZGUvMy41IgpkZWNsYXJlIC14IEtFUk5FTD0i bGludXgiCmRlY2xhcmUgLXggS0VSTkVMX0FCST0iYW1kNjQiCmRlY2xhcmUgLXggS1Y9IjIuNi4y NC4yIgpkZWNsYXJlIC14IExBRFNQQV9QQVRIPSIvdXNyL2xpYjY0L2xhZHNwYSIKZGVjbGFyZSAt eCBMQU5HPSJlbl9VUy5VVEYtOCIKZGVjbGFyZSAteCBMQU5HVUFHRT0iZW5fVVMuVVRGLTgiCmRl Y2xhcmUgLXggTENEX0RFVklDRVM9ImJheXJhZCBjZm9udHogY2ZvbnR6NjMzIGdsayBoZDQ0Nzgw IGxiMjE2IGxjZG0wMDEgbXR4b3JiIG5jdXJzZXMgdGV4dCIKZGVjbGFyZSAteCBMQ19BTEw9ImVu X1VTLlVURi04IgpkZWNsYXJlIC14IExERkxBR1M9Ii1XbCwtTzEgLVdsLC0tZW5hYmxlLW5ldy1k dGFncyAtV2wsLS1zb3J0LWNvbW1vbiAtcyIKZGVjbGFyZSAteCBMREZMQUdTX2RlZmF1bHQ9IiIK ZGVjbGFyZSAteCBMREZMQUdTX3g4Nj0iLW0gZWxmX2kzODYgLUwvZW11bC9saW51eC94ODYvbGli IC1ML2VtdWwvbGludXgveDg2L3Vzci9saWIiCmRlY2xhcmUgLXggTElCRElSX2FtZDY0PSJsaWI2 NCIKZGVjbGFyZSAteCBMSUJESVJfZGVmYXVsdD0ibGliIgpkZWNsYXJlIC14IExJQkRJUl94ODY9 ImxpYjMyIgpkZWNsYXJlIC14IExJQkdMX0RSSVZFUlNfUEFUSD0iL3Vzci9saWI2NC9kcmk6L3Vz ci9saWIzMi9kcmkiCmRlY2xhcmUgLXggTElCT1BUSU9OUz0iLW0wNjQ0IgpkZWNsYXJlIC14IExJ TkdVQVM9ImVuIgpkZWNsYXJlIC14IExJUkNfREVWSUNFUz0iYXVkaW8gYXVkaW9fYWxzYSIKZGVj bGFyZSAteCBNQUtFT1BUUz0iLWozIgpkZWNsYXJlIC14IE1VTFRJTElCX0FCSVM9ImFtZDY0IHg4 NiIKZGVjbGFyZSAteCBNVUxUSUxJQl9TVFJJQ1RfREVOWT0iNjQtYml0LipzaGFyZWQgb2JqZWN0 IgpkZWNsYXJlIC14IE1VTFRJTElCX1NUUklDVF9ESVJTPSIvbGliIC91c3IvbGliIC91c3Iva2Rl LyovbGliIC91c3IvcXQvKi9saWIgL3Vzci9YMTFSNi9saWIiCmRlY2xhcmUgLXggTVVMVElMSUJf U1RSSUNUX0VYRU1QVD0iKHBlcmw1fGdjY3xnY2MtbGlifGJpbnV0aWxzfGVjbGlwc2UtM3xkZWJ1 Z3xwb3J0YWdlKSIKZGVjbGFyZSAteCBPUEVOR0xfUFJPRklMRT0ibnZpZGlhIgpkZWNsYXJlIC14 IFBLR19DT05GSUdfUEFUSD0iL3Vzci9xdC8zL2xpYjY0L3BrZ2NvbmZpZyIKZGVjbGFyZSAteCBQ T1JUQUdFX05JQ0VORVNTPSI4IgpkZWNsYXJlIC14IFBSRUxJTktfUEFUSF9NQVNLPSIvdXNyL2xp Yi9nc3RyZWFtZXItMC44Oi91c3IvbGliNjQva2xpYmMiCmRlY2xhcmUgLXggUFlUSE9OUEFUSD0i L3Vzci9saWI2NC9wb3J0YWdlL3B5bSIKZGVjbGFyZSAteCBRTUFLRVNQRUM9ImxpbnV4LWcrKyIK ZGVjbGFyZSAteCBRVERJUj0iL3Vzci9xdC8zIgpkZWNsYXJlIC14IFJFU1RSSUNUPSJ0ZXN0Igpk ZWNsYXJlIC14IFJVQllPUFQ9Ii1yYXV0b19nZW0iCmRlY2xhcmUgLXggUz0iL3Zhci90bXAvcG9y dGFnZS9hcHAtZW11bGF0aW9uL3dpbmUtMC45LjU3L3dvcmsvd2luZS0wLjkuNTciCmRlY2xhcmUg LXggU0FOREJPWF9ERU5ZPSIvZXRjL2xkLnNvLnByZWxvYWQiCmRlY2xhcmUgLXggU0FOREJPWF9Q UkVESUNUPSI6L2Rldi9jb25zb2xlOi9kZXYvcmFuZG9tOi9wcm9jL3NlbGYvbWFwczovdXNyL2xp YjY0L3BvcnRhZ2UvcHltOi91c3IvbGliL3B5dGhvbjIuMC86L3Vzci9saWIvcHl0aG9uMi4xLzov dXNyL2xpYi9weXRob24yLjIvOi91c3IvbGliL3B5dGhvbjIuMy86L3Vzci9saWIvcHl0aG9uMi40 LzovdXNyL2xpYi9weXRob24yLjUvOi91c3IvbGliL3B5dGhvbjMuMC86L3Zhci9jYWNoZS9lZGIv ZGVwOi92YXIvZGIvYWxpYXNlcy5kYjovdmFyL2RiL2V0aGVycy5kYjovdmFyL2RiL2dyb3VwLmRi Oi92YXIvZGIvaG9zdHMuZGI6L3Zhci9kYi9uZXRncm91cC5kYjovdmFyL2RiL25ldG1hc2tzLmRi Oi92YXIvZGIvbmV0d29ya3MuZGI6L3Zhci9kYi9wYXNzd2QuZGI6L3Zhci9kYi9wcm90b2NvbHMu ZGI6L3Zhci9kYi9ycGMuZGI6L3Zhci9kYi9zZXJ2aWNlcy5kYjovdmFyL3RtcC9wb3J0YWdlL2Fw cC1lbXVsYXRpb24vd2luZS0wLjkuNTcvaG9tZWRpci8uOiIKZGVjbGFyZSAteCBTQU5EQk9YX1JF QUQ9IjovOi9kZXYvc2htOi9kZXYvc3RkaW46L3Zhci90bXA6IgpkZWNsYXJlIC14IFNBTkRCT1hf V1JJVEU9IjovZGV2L2NvbnNvbGU6L2Rldi9mZDovZGV2L251bGw6L2Rldi9wdHMvOi9kZXYvcHR5 Oi9kZXYvc2htOi9kZXYvc2htL25ncHQ6L2Rldi9zdGRlcnI6L2Rldi9zdGRvdXQ6L2Rldi90dHM6 L2Rldi90dHk6L2Rldi92Yy86L2Rldi96ZXJvOi9wcm9jL3NlbGYvZmQ6L3RtcDovdG1wLzovdXNy L2xpYjMyL2NmOi91c3IvbGliMzIvY29uZnRlc3Q6L3Vzci9saWI2NC9jZjovdXNyL2xpYjY0L2Nv bmZ0ZXN0Oi91c3IvbGliL2NmOi91c3IvbGliL2NvbmZ0ZXN0Oi91c3IvdG1wL2NmOi91c3IvdG1w L2NvbmZ0ZXN0Oi92YXIvbG9nL3Njcm9sbGtlZXBlci5sb2c6L3Zhci90bXA6L3Zhci90bXAvOi92 YXIvdG1wL3BvcnRhZ2UvYXBwLWVtdWxhdGlvbi93aW5lLTAuOS41Ny9ob21lZGlyLy5iYXNoX2hp c3Rvcnk6L3Zhci90bXAvcG9ydGFnZS9hcHAtZW11bGF0aW9uL3dpbmUtMC45LjU3L2hvbWVkaXIv Lmdjb25mZC9sb2NrOiIKZGVjbGFyZSAteCBTQU5FX0NPTkZJR19ESVI9Ii9ldGMvc2FuZS5kIgpk ZWNsYXJlIC14IFNDSEVNRV9MSUJSQVJZX1BBVEg9Ii91c3Ivc2hhcmUvc2xpYi8iCmRlY2xhcmUg LXggU0VTU0lPTl9NQU5BR0VSPSJsb2NhbC9qYXZhOi90bXAvLklDRS11bml4LzI1NzAyIgpkZWNs YXJlIC14IFNMT1Q9IjAiCmRlY2xhcmUgLXggU1RBR0UxX1VTRT0ibnB0bCBucHRsb25seSB1bmlj b2RlIgpkZWNsYXJlIC14IFNZTUxJTktfTElCPSJ5ZXMiCmRlY2xhcmUgLXggU1lTRk9OVD0ibGF0 YXJjeXJoZWItc3VuMTYiCmRlY2xhcmUgLXggVVNCX0RFVkZTX1BBVEg9Ii9kZXYvYnVzL3VzYiIK ZGVjbGFyZSAteCBVU0U9IlggYWxzYSBhbWQ2NCBjdXBzIGVsaWJjX2dsaWJjIGVzZCBnZWNrbyBq YWNrIGpwZWcga2VybmVsX2xpbnV4IGxkYXAgbmN1cnNlcyBvcGVuZ2wgb3NzIHNhbWJhIHVzZXJs YW5kX0dOVSB4bWwiCmRlY2xhcmUgLXggVVNFUkxBTkQ9IkdOVSIKZGVjbGFyZSAteCBVU0VSTkFN RT0iYm9iIgpkZWNsYXJlIC14IFZJREVPX0NBUkRTPSJmYmRldiBudiB2NGwgdmVzYSB2Z2EgbnZp ZGlhIgpkZWNsYXJlIC14IFZNSEFORExFPSJibGFja2Rvd24tamRrLTEuNC4yIgpkZWNsYXJlIC14 IFdJTkRPV0lEPSI0ODIzNDU4NCIKZGVjbGFyZSAteCBXSU5ET1dQQVRIPSI3IgpkZWNsYXJlIC14 IFhDVVJTT1JTX1RIRU1FPSJCbHVlIgpkZWNsYXJlIC14IFhER19EQVRBX0RJUlM9Ii91c3Ivc2hh cmU6L3Vzci9rZGUvNC4wL3NoYXJlOi91c3IvbG9jYWwvc2hhcmU6L3Vzci9rZGUvMy41L3NoYXJl IgpkZWNsYXJlIC14IFhFUkNFU0NfTkxTX0hPTUU9Ii91c3Ivc2hhcmUveGVyY2VzLWMvbXNnIgpk ZWNsYXJlIC14IFhQU0VSVkVSTElTVD0iIgpkZWNsYXJlIC14IF9FX0RPQ0RFU1RUUkVFXz0iIgpk ZWNsYXJlIC14IF9FX0VYRURFU1RUUkVFXz0iIgo= ------=_Part_2118_2077346.1205317415824-- -- gentoo-user@lists.gentoo.org mailing list