From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31098 invoked by alias); 1 Jul 2015 22:13:28 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 31087 invoked by uid 89); 1 Jul 2015 22:13:27 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=2.2 required=5.0 tests=AWL,BAYES_50,KAM_LAZY_DOMAIN_SECURITY,KAM_LINEPADDING,RP_MATCHES_RCVD,SPF_HELO_PASS,WEIRD_QUOTING autolearn=no version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Wed, 01 Jul 2015 22:13:23 +0000 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (Postfix) with ESMTPS id 912E6373BD3 for ; Wed, 1 Jul 2015 22:13:22 +0000 (UTC) Received: from YAAKOV04.redhat.com ([10.10.116.36]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t61MDKK2017891 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO) for ; Wed, 1 Jul 2015 18:13:21 -0400 Message-ID: <1435788802.10408.12.camel@redhat.com> Subject: Re: [PATCH] config: fix AM_ICONV for in-tree libiconv From: Yaakov Selkowitz To: "gdb-patches@sourceware.org" Date: Wed, 01 Jul 2015 22:13:00 -0000 In-Reply-To: <1435783562.10408.6.camel@redhat.com> References: <1432934749.13692.9.camel@redhat.com> <1435783562.10408.6.camel@redhat.com> Content-Type: multipart/mixed; boundary="=-z+1gPKT4zyTVZWNb/c5p" Mime-Version: 1.0 X-SW-Source: 2015-07/txt/msg00065.txt.bz2 --=-z+1gPKT4zyTVZWNb/c5p Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Content-length: 1046 On Wed, 2015-07-01 at 15:46 -0500, Yaakov Selkowitz wrote: > On Fri, 2015-05-29 at 16:25 -0500, Yaakov Selkowitz wrote: > > This is the second in a series of patches to make a build with an > > in-tree GNU libiconv work as designed. > > > > Currently GDB is the only toolchain component which actually uses an > > in-tree libiconv. This patch modifies the common AM_ICONV to use an > > in-tree libiconv when present and not already provided by libc. (GDB's > > workaround uses an in-tree libiconv even when libc provides iconv(3); > > I'm not sure when or why that would be desirable.) > > > > Once these two patches are merged in to each tree, I will follow with > > patches to regenerate the various configure scripts and a few other > > minor corresponding changes. > > This patch was bootstrapped in conjunction with the toplevel libiconv > patch. I don't have write permissions to either repository, so please > apply once approved. And here is the patch for gdb. -- Yaakov Selkowitz Associate Software Engineer, ARM Red Hat, Inc. --=-z+1gPKT4zyTVZWNb/c5p Content-Disposition: attachment; filename="0011-gdb-libiconv.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0011-gdb-libiconv.patch"; charset="UTF-8" Content-length: 56515 MjAxNS0wNy0wMSAgWWFha292IFNlbGtvd2l0eiAgPHlzZWxrb3dpQHJlZGhh dC5jb20+CgoJZ2RiLwoJKiBNYWtlZmlsZS5pbiAoTElCSUNPTlYpOiBEZWZp bmUuCgkoQ0xJQlMpOiBBZGQgTElCSUNPTlYuCgkqIGFjaW5jbHVkZS5tNDog VXNlIGNvbmZpZy9pY29udi5tNCBpbnN0ZWFkIG9mIGN1c3RvbSBBTV9JQ09O Vi4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKZGlmZiAtLWdpdCBhL2dk Yi9NYWtlZmlsZS5pbiBiL2dkYi9NYWtlZmlsZS5pbgppbmRleCAzMDA4MTc3 Li5lNTY3NmRlIDEwMDY0NAotLS0gYS9nZGIvTWFrZWZpbGUuaW4KKysrIGIv Z2RiL01ha2VmaWxlLmluCkBAIC0xOTEsNiArMTkxLDkgQEAgSU5UTCA9IEBM SUJJTlRMQAogSU5UTF9ERVBTID0gQExJQklOVExfREVQQAogSU5UTF9DRkxB R1MgPSBASU5DSU5UTEAKIAorIyBXaGVyZSBpcyB0aGUgSUNPTlYgbGlicmFy eT8gIFRoaXMgd2lsbCBiZSBlbXB0eSBpZiBpbiBsaWJjIG9yIG5vdCBhdmFp bGFibGUuCitMSUJJQ09OViA9IEBMSUJJQ09OVkAKKwogIyBEaWQgdGhlIHVz ZXIgZ2l2ZSB1cyBhIC0td2l0aC1nZGItZGF0YWRpciBvcHRpb24/CiBHREJf REFUQURJUiA9IEBHREJfREFUQURJUkAKIApAQCAtNTkxLDcgKzU5NCw3IEBA IENMSUJTID0gJChTSU0pICQoUkVBRExJTkUpICQoT1BDT0RFUykgJChCRkQp ICQoWkxJQikgJChJTlRMKSAkKExJQklCRVJUWSkgJChMSUJECiAJJChYTV9D TElCUykgJChOQVRfQ0xJQlMpICQoR0RCVEtMSUJTKSBcCiAJQExJQlNAIEBH VUlMRV9MSUJTQCBAUFlUSE9OX0xJQlNAIFwKIAkkKExJQkVYUEFUKSAkKExJ QkxaTUEpICQoTElCQkFCRUxUUkFDRSkgXAotCSQoTElCSUJFUlRZKSAkKFdJ TjMyTElCUykgJChMSUJHTlUpCisJJChMSUJJQkVSVFkpICQoV0lOMzJMSUJT KSAkKExJQkdOVSkgJChMSUJJQ09OVikKIENERVBTID0gJChYTV9DREVQUykg JChOQVRfQ0RFUFMpICQoU0lNKSAkKEJGRCkgJChSRUFETElORV9ERVBTKSBc CiAJJChPUENPREVTKSAkKElOVExfREVQUykgJChMSUJJQkVSVFkpICQoQ09O RklHX0RFUFMpICQoTElCR05VKQogCmRpZmYgLS1naXQgYS9nZGIvYWNpbmNs dWRlLm00IGIvZ2RiL2FjaW5jbHVkZS5tNAppbmRleCA4NDVlNjVmLi40ZDY0 ZTI1IDEwMDY0NAotLS0gYS9nZGIvYWNpbmNsdWRlLm00CisrKyBiL2dkYi9h Y2luY2x1ZGUubTQKQEAgLTUzLDYgKzUzLDggQEAgc2luY2x1ZGUoWy4uL2Nv bmZpZy9sY21lc3NhZ2UubTRdKQogZG5sIEZvciBBTV9MQU5HSU5GT19DT0RF U0VULgogc2luY2x1ZGUoWy4uL2NvbmZpZy9jb2Rlc2V0Lm00XSkKIAorc2lu Y2x1ZGUoWy4uL2NvbmZpZy9pY29udi5tNF0pCisKIHNpbmNsdWRlKFsuLi9j b25maWcvemxpYi5tNF0pCiAKIG00X2luY2x1ZGUoW2NvbW1vbi9jb21tb24u bTRdKQpAQCAtMTcxLDEzMSArMTczLDYgQEAgY2FzZSAieCRhbV9jdl9wcm9n X2NjX3N0ZGMiIGluCiBlc2FjCiBdKQogCi1kbmwgT3JpZ2luYWxseSBmcm9t IEJydW5vIEhhaWJsZSwgYnV0IHdpdGggc29tZSBtb2RpZmljYXRpb25zCi1k bmwgZm9yIHRoZSBHREIgcHJvamVjdC4KLQotQUNfREVGVU4oW0FNX0lDT05W XSwKLVsKLSAgZG5sIFNvbWUgc3lzdGVtcyBoYXZlIGljb252IGluIGxpYmMs IHNvbWUgaGF2ZSBpdCBpbiBsaWJpY29udiAoT1NGLzEgYW5kCi0gIGRubCB0 aG9zZSB3aXRoIHRoZSBzdGFuZGFsb25lIHBvcnRhYmxlIEdOVSBsaWJpY29u diBpbnN0YWxsZWQpLgotCi0gIEFDX0FSR19XSVRIKFtsaWJpY29udi1wcmVm aXhdLAotICAgIEFTX0hFTFBfU1RSSU5HKFstLXdpdGgtbGliaWNvbnYtcHJl Zml4PURJUl0sIFtzZWFyY2ggZm9yIGxpYmljb252IGluIERJUi9pbmNsdWRl IGFuZCBESVIvbGliXSksIFsKLSAgICBmb3IgZGlyIGluIGBlY2hvICIkd2l0 aHZhbCIgfCB0ciA6ICcgJ2A7IGRvCi0gICAgICBpZiB0ZXN0IC1kICRkaXIv aW5jbHVkZTsgdGhlbiBMSUJJQ09OVl9JTkNMVURFPSItSSRkaXIvaW5jbHVk ZSI7IGZpCi0gICAgICBpZiB0ZXN0IC1kICRkaXIvbGliOyB0aGVuIExJQklD T05WX0xJQkRJUj0iLUwkZGlyL2xpYiI7IGZpCi0gICAgZG9uZQotICAgXSkK LQotICBCVUlMRF9MSUJJQ09OVl9MSUJESVJTPSIuLi9saWJpY29udi9saWIv LmxpYnMgLi4vbGliaWNvbnYvbGliL19saWJzIgotICBCVUlMRF9MSUJJQ09O Vl9JTkNMVURFPSItSS4uL2xpYmljb252L2luY2x1ZGUiCi0KLSAgQUNfQ0FD SEVfQ0hFQ0soZm9yIGljb252LCBhbV9jdl9mdW5jX2ljb252LCBbCi0gICAg YW1fY3ZfZnVuY19pY29udj0ibm8sIGNvbnNpZGVyIGluc3RhbGxpbmcgR05V IGxpYmljb252IgotICAgIGFtX2N2X2xpYl9pY29udj1ubwotICAgIGFtX2N2 X3VzZV9idWlsZF9saWJpY29udj1ubwotICAgIGFtX2N2X2J1aWxkX2xpYmlj b252X3BhdGg9Ci0KLSAgICAjIElmIGxpYmljb252IGlzIHBhcnQgb2YgdGhl IGJ1aWxkIHRyZWUsIHRoZW4gdHJ5IHVzaW5nIGl0IG92ZXIKLSAgICAjIGFu eSBzeXN0ZW0gaWNvbnYuCi0gICAgaWYgdGVzdCAtZCAuLi9saWJpY29udjsg dGhlbgotICAgICAgZm9yIGxpYl9kaXIgaW4gJEJVSUxEX0xJQklDT05WX0xJ QkRJUlM7IGRvCi0gICAgICAgIGFtX3NhdmVfTElCUz0iJExJQlMiCi0gICAg ICAgIGFtX3NhdmVfQ1BQRkxBR1M9IiRDUFBGTEFHUyIKLSAgICAgICAgTElC Uz0iJExJQlMgJGxpYl9kaXIvbGliaWNvbnYuYSIKLSAgICAgICAgQ1BQRkxB R1M9IiRDUFBGTEFHUyAkQlVJTERfTElCSUNPTlZfSU5DTFVERSIKLSAgICAg ICAgQUNfVFJZX0xJTksoWyNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRl IDxpY29udi5oPl0sCi0gICAgICAgICAgW2ljb252X3QgY2QgPSBpY29udl9v cGVuKCIiLCIiKTsKLSAgICAgICAgICAgaWNvbnYoY2QsTlVMTCxOVUxMLE5V TEwsTlVMTCk7Ci0gICAgICAgICAgIGljb252X2Nsb3NlKGNkKTtdLAotICAg ICAgICAgIGFtX2N2X3VzZV9idWlsZF9saWJpY29udj15ZXMKLSAgICAgICAg ICBhbV9jdl9idWlsZF9saWJpY29udl9wYXRoPSRsaWJfZGlyL2xpYmljb252 LmEKLSAgICAgICAgICBhbV9jdl9saWJfaWNvbnY9eWVzCi0gICAgICAgICAg YW1fY3ZfZnVuY19pY29udj15ZXMpCi0gICAgICAgIExJQlM9IiRhbV9zYXZl X0xJQlMiCi0gICAgICAgIENQUEZMQUdTPSIkYW1fc2F2ZV9DUFBGTEFHUyIK LSAgICAgICAgaWYgdGVzdCAiJGFtX2N2X3VzZV9idWlsZF9saWJpY29udiIg PSAieWVzIjsgdGhlbgotICAgICAgICAgIGJyZWFrCi0gICAgICAgIGZpCi0g ICAgICBkb25lCi0gICAgZmkKLQotICAgICMgTmV4dCwgdHJ5IHRvIGZpbmQg aWNvbnYgaW4gbGliYy4KLSAgICBpZiB0ZXN0ICIkYW1fY3ZfZnVuY19pY29u diIgIT0geWVzOyB0aGVuCi0gICAgICBBQ19UUllfTElOSyhbI2luY2x1ZGUg PHN0ZGxpYi5oPgotI2luY2x1ZGUgPGljb252Lmg+XSwKLSAgICAgICAgW2lj b252X3QgY2QgPSBpY29udl9vcGVuKCIiLCIiKTsKLSAgICAgICAgIGljb252 KGNkLE5VTEwsTlVMTCxOVUxMLE5VTEwpOwotICAgICAgICAgaWNvbnZfY2xv c2UoY2QpO10sCi0gICAgICAgIGFtX2N2X2Z1bmNfaWNvbnY9eWVzKQotICAg IGZpCi0KLSAgICAjIElmIGljb252IHdhcyBub3QgaW4gbGliYywgdHJ5IC1s aWNvbnYuICBJbiB0aGlzIGNhc2UsIGFycmFuZ2UgdG8KLSAgICAjIGxvb2sg aW4gdGhlIGxpYmljb252IHByZWZpeCwgaWYgaXQgd2FzIHNwZWNpZmllZCBi eSB0aGUgdXNlci4KLSAgICBpZiB0ZXN0ICIkYW1fY3ZfZnVuY19pY29udiIg IT0geWVzOyB0aGVuCi0gICAgICBhbV9zYXZlX0NQUEZMQUdTPSIkQ1BQRkxB R1MiCi0gICAgICBhbV9zYXZlX0xJQlM9IiRMSUJTIgotICAgICAgaWYgdGVz dCAtbiAiJExJQklDT05WX0lOQ0xVREUiOyB0aGVuCi0gICAgICAgIENQUEZM QUdTPSIkQ1BQRkxBR1MgJExJQklDT05WX0lOQ0xVREUiCi0gICAgICAgIExJ QlM9IiRMSUJTICRMSUJJQ09OVl9MSUJESVIiCi0gICAgICBmaQotICAgICAg TElCUz0iJExJQlMgLWxpY29udiIKLSAgICAgIEFDX1RSWV9MSU5LKFsjaW5j bHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8aWNvbnYuaD5dLAotICAgICAg ICBbaWNvbnZfdCBjZCA9IGljb252X29wZW4oIiIsIiIpOwotICAgICAgICAg aWNvbnYoY2QsTlVMTCxOVUxMLE5VTEwsTlVMTCk7Ci0gICAgICAgICBpY29u dl9jbG9zZShjZCk7XSwKLSAgICAgICAgYW1fY3ZfbGliX2ljb252PXllcwot ICAgICAgICBhbV9jdl9mdW5jX2ljb252PXllcykKLSAgICAgIExJQlM9IiRh bV9zYXZlX0xJQlMiCi0gICAgICBDUFBGTEFHUz0iJGFtX3NhdmVfQ1BQRkxB R1MiCi0gICAgZmkKLSAgXSkKLQotICAjIFNldCB0aGUgdmFyaW91cyBmbGFn cyBiYXNlZCBvbiB0aGUgY2FjaGUgdmFyaWFibGVzLiAgV2UgY2FuJ3QgcmVs eQotICAjIG9uIHRoZSBmbGFncyB0byByZW1haW4gc2V0IGZyb20gdGhlIGFi b3ZlIGNvZGUsIGR1ZSB0byBjYWNoaW5nLgotICBMSUJJQ09OVj0KLSAgaWYg dGVzdCAiJGFtX2N2X2xpYl9pY29udiIgPSB5ZXM7IHRoZW4KLSAgICBMSUJJ Q09OVj0iLWxpY29udiIKLSAgZWxzZQotICAgIExJQklDT05WX0xJQkRJUj0K LSAgICBMSUJJQ09OVl9JTkNMVURFPQotICBmaQotICBpZiB0ZXN0ICIkYW1f Y3ZfdXNlX2J1aWxkX2xpYmljb252IiA9IHllczsgdGhlbgotICAgIExJQklD T05WPSIkYW1fY3ZfYnVpbGRfbGliaWNvbnZfcGF0aCIKLSAgICBMSUJJQ09O Vl9MSUJESVI9IiIKLSAgICBMSUJJQ09OVl9JTkNMVURFPSIkQlVJTERfTElC SUNPTlZfSU5DTFVERSIKLSAgZmkKLSAgQ1BQRkxBR1M9IiRDUFBGTEFHUyAk TElCSUNPTlZfSU5DTFVERSIKLSAgTElCUz0iJExJQlMgJExJQklDT05WX0xJ QkRJUiAkTElCSUNPTlYiCi0KLSAgaWYgdGVzdCAiJGFtX2N2X2Z1bmNfaWNv bnYiID0geWVzOyB0aGVuCi0gICAgQUNfREVGSU5FKEhBVkVfSUNPTlYsIDEs IFtEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGljb252KCkgZnVuY3Rpb24uXSkK LSAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBpY29udiBkZWNsYXJhdGlvbl0p Ci0gICAgQUNfQ0FDSEVfVkFMKGFtX2N2X3Byb3RvX2ljb252LCBbCi0gICAg ICBBQ19UUllfQ09NUElMRShbCi0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5j bHVkZSA8aWNvbnYuaD4KLWV4dGVybgotI2lmZGVmIF9fY3BsdXNwbHVzCi0i QyIKLSNlbmRpZgotI2lmIGRlZmluZWQoX19TVERDX18pIHx8IGRlZmluZWQo X19jcGx1c3BsdXMpCi1zaXplX3QgaWNvbnYgKGljb252X3QgY2QsIGNoYXIg KiAqaW5idWYsIHNpemVfdCAqaW5ieXRlc2xlZnQsIGNoYXIgKiAqb3V0YnVm LCBzaXplX3QgKm91dGJ5dGVzbGVmdCk7Ci0jZWxzZQotc2l6ZV90IGljb252 KCk7Ci0jZW5kaWYKLV0sIFtdLCBhbV9jdl9wcm90b19pY29udl9hcmcxPSIi LCBhbV9jdl9wcm90b19pY29udl9hcmcxPSJjb25zdCIpCi0gICAgICBhbV9j dl9wcm90b19pY29udj0iZXh0ZXJuIHNpemVfdCBpY29udiAoaWNvbnZfdCBj ZCwgJGFtX2N2X3Byb3RvX2ljb252X2FyZzEgY2hhciAqICppbmJ1Ziwgc2l6 ZV90ICppbmJ5dGVzbGVmdCwgY2hhciAqICpvdXRidWYsIHNpemVfdCAqb3V0 Ynl0ZXNsZWZ0KTsiXSkKLSAgICBhbV9jdl9wcm90b19pY29udj1gZWNobyAi WyRdYW1fY3ZfcHJvdG9faWNvbnYiIHwgdHIgLXMgJyAnIHwgc2VkIC1lICdz LyggLygvJ2AKLSAgICBBQ19NU0dfUkVTVUxUKFskXXthY190Oi0KLSAgICAg ICAgIH1bJF1hbV9jdl9wcm90b19pY29udikKLSAgICBBQ19ERUZJTkVfVU5R VU9URUQoSUNPTlZfQ09OU1QsICRhbV9jdl9wcm90b19pY29udl9hcmcxLAot ICAgICAgW0RlZmluZSBhcyBjb25zdCBpZiB0aGUgZGVjbGFyYXRpb24gb2Yg aWNvbnYoKSBuZWVkcyBjb25zdC5dKQotICBmaQotXSkKLQogZG5sIHdyaXR0 ZW4gYnkgR3VpZG8gRHJhaGVpbSA8Z3VpZG9kQGdteC5kZT4sIG9yaWdpbmFs IGJ5IEFsZXhhbmRyZSBPbGl2YSAKIGRubCBWZXJzaW9uIDEuMyAoMjAwMS8w My8wMikKIGRubCBzb3VyY2UgaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJl L2FjLWFyY2hpdmUvTWlzY2VsbGFuZW91cy9hY19kZWZpbmVfZGlyLmh0bWwK ZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUgYi9nZGIvY29uZmlndXJlCmlu ZGV4IDUxMDA5MjEuLjUxMzQ1NjMgMTAwNzU1Ci0tLSBhL2dkYi9jb25maWd1 cmUKKysrIGIvZ2RiL2NvbmZpZ3VyZQpAQCAtNjgwLDYgKzY4MCw4IEBAIFJF QURMSU5FX1RFWElfSU5DRkxBRwogUkVBRExJTkVfQ0ZMQUdTCiBSRUFETElO RV9ERVBTCiBSRUFETElORQorTFRMSUJJQ09OVgorTElCSUNPTlYKIHpsaWJp bmMKIHpsaWJkaXIKIE1JRwpAQCAtODIwLDEzICs4MjIsMTMgQEAgZW5hYmxl X3Byb2ZpbGluZwogd2l0aF9wa2d2ZXJzaW9uCiB3aXRoX2J1Z3VybAogd2l0 aF9zeXN0ZW1femxpYgord2l0aF9nbnVfbGQKK2VuYWJsZV9ycGF0aAogd2l0 aF9saWJpY29udl9wcmVmaXgKIHdpdGhfaWNvbnZfYmluCiB3aXRoX3N5c3Rl bV9yZWFkbGluZQogd2l0aF9qaXRfcmVhZGVyX2Rpcgogd2l0aF9leHBhdAot d2l0aF9nbnVfbGQKLWVuYWJsZV9ycGF0aAogd2l0aF9saWJleHBhdF9wcmVm aXgKIHdpdGhfcHl0aG9uCiB3aXRoX2d1aWxlCkBAIC0xNTM5LDE0ICsxNTQx LDE0IEBAIE9wdGlvbmFsIFBhY2thZ2VzOgogICAtLXdpdGgtcGtndmVyc2lv bj1QS0cgICBVc2UgUEtHIGluIHRoZSB2ZXJzaW9uIHN0cmluZyBpbiBwbGFj ZSBvZiAiR0RCIgogICAtLXdpdGgtYnVndXJsPVVSTCAgICAgICBEaXJlY3Qg dXNlcnMgdG8gVVJMIHRvIHJlcG9ydCBhIGJ1ZwogICAtLXdpdGgtc3lzdGVt LXpsaWIgICAgICB1c2UgaW5zdGFsbGVkIGxpYnoKLSAgLS13aXRoLWxpYmlj b252LXByZWZpeD1ESVIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vh cmNoIGZvciBsaWJpY29udiBpbiBESVIvaW5jbHVkZSBhbmQgRElSL2xpYgor ICAtLXdpdGgtZ251LWxkICAgICAgICAgICBhc3N1bWUgdGhlIEMgY29tcGls ZXIgdXNlcyBHTlUgbGQgZGVmYXVsdD1ubworICAtLXdpdGgtbGliaWNvbnYt cHJlZml4Wz1ESVJdICBzZWFyY2ggZm9yIGxpYmljb252IGluIERJUi9pbmNs dWRlIGFuZCBESVIvbGliCisgIC0td2l0aG91dC1saWJpY29udi1wcmVmaXgg ICAgIGRvbid0IHNlYXJjaCBmb3IgbGliaWNvbnYgaW4gaW5jbHVkZWRpciBh bmQgbGliZGlyCiAgIC0td2l0aC1pY29udi1iaW49UEFUSCAgIHNwZWNpZnkg d2hlcmUgdG8gZmluZCB0aGUgaWNvbnYgcHJvZ3JhbQogICAtLXdpdGgtc3lz dGVtLXJlYWRsaW5lICB1c2UgaW5zdGFsbGVkIHJlYWRsaW5lIGxpYnJhcnkK ICAgLS13aXRoLWppdC1yZWFkZXItZGlyPVBBVEgKICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGlyZWN0b3J5IHRvIGxvYWQgdGhlIEpJVCByZWFkZXJz IGZyb20KICAgLS13aXRoLWV4cGF0ICAgICAgICAgICAgaW5jbHVkZSBleHBh dCBzdXBwb3J0IChhdXRvL3llcy9ubykKLSAgLS13aXRoLWdudS1sZCAgICAg ICAgICAgYXNzdW1lIHRoZSBDIGNvbXBpbGVyIHVzZXMgR05VIGxkIGRlZmF1 bHQ9bm8KICAgLS13aXRoLWxpYmV4cGF0LXByZWZpeFs9RElSXSAgc2VhcmNo IGZvciBsaWJleHBhdCBpbiBESVIvaW5jbHVkZSBhbmQgRElSL2xpYgogICAt LXdpdGhvdXQtbGliZXhwYXQtcHJlZml4ICAgICBkb24ndCBzZWFyY2ggZm9y IGxpYmV4cGF0IGluIGluY2x1ZGVkaXIgYW5kIGxpYmRpcgogICAtLXdpdGgt cHl0aG9uWz1QWVRIT05dICBpbmNsdWRlIHB5dGhvbiBzdXBwb3J0CkBAIC03 MDk3LDE3MCArNzA5OSw3MDkgQEAgZmkKIAogCiAKKyAgICAgIGlmIHRlc3Qg IlgkcHJlZml4IiA9ICJYTk9ORSI7IHRoZW4KKyAgICBhY2xfZmluYWxfcHJl Zml4PSIkYWNfZGVmYXVsdF9wcmVmaXgiCisgIGVsc2UKKyAgICBhY2xfZmlu YWxfcHJlZml4PSIkcHJlZml4IgorICBmaQorICBpZiB0ZXN0ICJYJGV4ZWNf cHJlZml4IiA9ICJYTk9ORSI7IHRoZW4KKyAgICBhY2xfZmluYWxfZXhlY19w cmVmaXg9JyR7cHJlZml4fScKKyAgZWxzZQorICAgIGFjbF9maW5hbF9leGVj X3ByZWZpeD0iJGV4ZWNfcHJlZml4IgorICBmaQorICBhY2xfc2F2ZV9wcmVm aXg9IiRwcmVmaXgiCisgIHByZWZpeD0iJGFjbF9maW5hbF9wcmVmaXgiCisg IGV2YWwgYWNsX2ZpbmFsX2V4ZWNfcHJlZml4PVwiJGFjbF9maW5hbF9leGVj X3ByZWZpeFwiCisgIHByZWZpeD0iJGFjbF9zYXZlX3ByZWZpeCIKKwogCisj IENoZWNrIHdoZXRoZXIgLS13aXRoLWdudS1sZCB3YXMgZ2l2ZW4uCitpZiB0 ZXN0ICIke3dpdGhfZ251X2xkK3NldH0iID0gc2V0OyB0aGVuIDoKKyAgd2l0 aHZhbD0kd2l0aF9nbnVfbGQ7IHRlc3QgIiR3aXRodmFsIiA9IG5vIHx8IHdp dGhfZ251X2xkPXllcworZWxzZQorICB3aXRoX2dudV9sZD1ubworZmkKIAot IyBDaGVjayB3aGV0aGVyIC0td2l0aC1saWJpY29udi1wcmVmaXggd2FzIGdp dmVuLgotaWYgdGVzdCAiJHt3aXRoX2xpYmljb252X3ByZWZpeCtzZXR9IiA9 IHNldDsgdGhlbiA6Ci0gIHdpdGh2YWw9JHdpdGhfbGliaWNvbnZfcHJlZml4 OwotICAgIGZvciBkaXIgaW4gYGVjaG8gIiR3aXRodmFsIiB8IHRyIDogJyAn YDsgZG8KLSAgICAgIGlmIHRlc3QgLWQgJGRpci9pbmNsdWRlOyB0aGVuIExJ QklDT05WX0lOQ0xVREU9Ii1JJGRpci9pbmNsdWRlIjsgZmkKLSAgICAgIGlm IHRlc3QgLWQgJGRpci9saWI7IHRoZW4gTElCSUNPTlZfTElCRElSPSItTCRk aXIvbGliIjsgZmkKLSAgICBkb25lCisjIFByZXBhcmUgUEFUSF9TRVBBUkFU T1IuCisjIFRoZSB1c2VyIGlzIGFsd2F5cyByaWdodC4KK2lmIHRlc3QgIiR7 UEFUSF9TRVBBUkFUT1Irc2V0fSIgIT0gc2V0OyB0aGVuCisgIGVjaG8gIiMh IC9iaW4vc2giID5jb25mJCQuc2gKKyAgZWNobyAgImV4aXQgMCIgICA+PmNv bmYkJC5zaAorICBjaG1vZCAreCBjb25mJCQuc2gKKyAgaWYgKFBBVEg9Ii9u b25leGlzdGVudDsuIjsgY29uZiQkLnNoKSA+L2Rldi9udWxsIDI+JjE7IHRo ZW4KKyAgICBQQVRIX1NFUEFSQVRPUj0nOycKKyAgZWxzZQorICAgIFBBVEhf U0VQQVJBVE9SPToKKyAgZmkKKyAgcm0gLWYgY29uZiQkLnNoCitmaQorYWNf cHJvZz1sZAoraWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKyAgIyBDaGVj ayBpZiBnY2MgLXByaW50LXByb2ctbmFtZT1sZCBnaXZlcyBhIHBhdGguCisg IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hl Y2tpbmcgZm9yIGxkIHVzZWQgYnkgR0NDIiA+JjUKKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciBsZCB1c2VkIGJ5IEdDQy4uLiAiID4mNjsgfQorICBjYXNl ICRob3N0IGluCisgICotKi1taW5ndyopCisgICAgIyBnY2MgbGVhdmVzIGEg dHJhaWxpbmcgY2FycmlhZ2UgcmV0dXJuIHdoaWNoIHVwc2V0cyBtaW5ndwor ICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4mNSB8 IHRyIC1kICdcMDE1J2AgOzsKKyAgKikKKyAgICBhY19wcm9nPWAoJENDIC1w cmludC1wcm9nLW5hbWU9bGQpIDI+JjVgIDs7CisgIGVzYWMKKyAgY2FzZSAk YWNfcHJvZyBpbgorICAgICMgQWNjZXB0IGFic29sdXRlIHBhdGhzLgorICAg IFtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikKKyAgICAgIHJlX2RpcmVsdD0n L1teL11bXi9dKi9cLlwuLycKKyAgICAgICMgQ2Fub25pY2FsaXplIHRoZSBw YXRoIG9mIGxkCisgICAgICBhY19wcm9nPWBlY2hvICRhY19wcm9nfCBzZWQg J3MlXFxcXCUvJWcnYAorICAgICAgd2hpbGUgZWNobyAkYWNfcHJvZyB8IGdy ZXAgIiRyZV9kaXJlbHQiID4gL2Rldi9udWxsIDI+JjE7IGRvCisJYWNfcHJv Zz1gZWNobyAkYWNfcHJvZ3wgc2VkICJzJSRyZV9kaXJlbHQlLyUiYAorICAg ICAgZG9uZQorICAgICAgdGVzdCAteiAiJExEIiAmJiBMRD0iJGFjX3Byb2ci CisgICAgICA7OworICAiIikKKyAgICAjIElmIGl0IGZhaWxzLCB0aGVuIHBy ZXRlbmQgd2UgYXJlbid0IHVzaW5nIEdDQy4KKyAgICBhY19wcm9nPWxkCisg ICAgOzsKKyAgKikKKyAgICAjIElmIGl0IGlzIHJlbGF0aXZlLCB0aGVuIHNl YXJjaCBmb3IgdGhlIGZpcnN0IGxkIGluIFBBVEguCisgICAgd2l0aF9nbnVf bGQ9dW5rbm93bgorICAgIDs7CisgIGVzYWMKK2VsaWYgdGVzdCAiJHdpdGhf Z251X2xkIiA9IHllczsgdGhlbgorICB7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBHTlUgbGQiID4mNQor JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIEdOVSBsZC4uLiAiID4mNjsgfQor ZWxzZQorICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IGNoZWNraW5nIGZvciBub24tR05VIGxkIiA+JjUKKyRhc19lY2hvX24g ImNoZWNraW5nIGZvciBub24tR05VIGxkLi4uICIgPiY2OyB9CitmaQoraWYg dGVzdCAiJHthY2xfY3ZfcGF0aF9MRCtzZXR9IiA9IHNldDsgdGhlbiA6Cisg ICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CitlbHNlCisgIGlmIHRlc3Qg LXogIiRMRCI7IHRoZW4KKyAgSUZTPSIke0lGUz0gCX0iOyBhY19zYXZlX2lm cz0iJElGUyI7IElGUz0iJHtJRlN9JHtQQVRIX1NFUEFSQVRPUi06fSIKKyAg Zm9yIGFjX2RpciBpbiAkUEFUSDsgZG8KKyAgICB0ZXN0IC16ICIkYWNfZGly IiAmJiBhY19kaXI9LgorICAgIGlmIHRlc3QgLWYgIiRhY19kaXIvJGFjX3By b2ciIHx8IHRlc3QgLWYgIiRhY19kaXIvJGFjX3Byb2ckYWNfZXhlZXh0Ijsg dGhlbgorICAgICAgYWNsX2N2X3BhdGhfTEQ9IiRhY19kaXIvJGFjX3Byb2ci CisgICAgICAjIENoZWNrIHRvIHNlZSBpZiB0aGUgcHJvZ3JhbSBpcyBHTlUg bGQuICBJJ2QgcmF0aGVyIHVzZSAtLXZlcnNpb24sCisgICAgICAjIGJ1dCBh cHBhcmVudGx5IHNvbWUgR05VIGxkJ3Mgb25seSBhY2NlcHQgLXYuCisgICAg ICAjIEJyZWFrIG9ubHkgaWYgaXQgd2FzIHRoZSBHTlUvbm9uLUdOVSBsZCB0 aGF0IHdlIHByZWZlci4KKyAgICAgIGlmICIkYWNsX2N2X3BhdGhfTEQiIC12 IDI+JjEgPCAvZGV2L251bGwgfCBlZ3JlcCAnKEdOVXx3aXRoIEJGRCknID4g L2Rldi9udWxsOyB0aGVuCisJdGVzdCAiJHdpdGhfZ251X2xkIiAhPSBubyAm JiBicmVhaworICAgICAgZWxzZQorCXRlc3QgIiR3aXRoX2dudV9sZCIgIT0g eWVzICYmIGJyZWFrCisgICAgICBmaQorICAgIGZpCisgIGRvbmUKKyAgSUZT PSIkYWNfc2F2ZV9pZnMiCitlbHNlCisgIGFjbF9jdl9wYXRoX0xEPSIkTEQi ICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRo LgorZmkKK2ZpCiAKK0xEPSIkYWNsX2N2X3BhdGhfTEQiCitpZiB0ZXN0IC1u ICIkTEQiOyB0aGVuCisgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogcmVzdWx0OiAkTEQiID4mNQorJGFzX2VjaG8gIiRMRCIg PiY2OyB9CitlbHNlCisgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CiskYXNfZWNobyAibm8iID4m NjsgfQorZmkKK3Rlc3QgLXogIiRMRCIgJiYgYXNfZm5fZXJyb3IgIm5vIGFj Y2VwdGFibGUgbGQgZm91bmQgaW4gXCRQQVRIIiAiJExJTkVOTyIgNQoreyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2lu ZyBpZiB0aGUgbGlua2VyICgkTEQpIGlzIEdOVSBsZCIgPiY1CiskYXNfZWNo b19uICJjaGVja2luZyBpZiB0aGUgbGlua2VyICgkTEQpIGlzIEdOVSBsZC4u LiAiID4mNjsgfQoraWYgdGVzdCAiJHthY2xfY3ZfcHJvZ19nbnVfbGQrc2V0 fSIgPSBzZXQ7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgorZWxzZQorICAjIEknZCByYXRoZXIgdXNlIC0tdmVyc2lvbiBoZXJlLCBi dXQgYXBwYXJlbnRseSBzb21lIEdOVSBsZCdzIG9ubHkgYWNjZXB0IC12Lgor aWYgJExEIC12IDI+JjEgPC9kZXYvbnVsbCB8IGVncmVwICcoR05VfHdpdGgg QkZEKScgMT4mNTsgdGhlbgorICBhY2xfY3ZfcHJvZ19nbnVfbGQ9eWVzCitl bHNlCisgIGFjbF9jdl9wcm9nX2dudV9sZD1ubwogZmkKK2ZpCit7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFj bF9jdl9wcm9nX2dudV9sZCIgPiY1CiskYXNfZWNobyAiJGFjbF9jdl9wcm9n X2dudV9sZCIgPiY2OyB9Cit3aXRoX2dudV9sZD0kYWNsX2N2X3Byb2dfZ251 X2xkCiAKIAotICBCVUlMRF9MSUJJQ09OVl9MSUJESVJTPSIuLi9saWJpY29u di9saWIvLmxpYnMgLi4vbGliaWNvbnYvbGliL19saWJzIgotICBCVUlMRF9M SUJJQ09OVl9JTkNMVURFPSItSS4uL2xpYmljb252L2luY2x1ZGUiCiAKLSAg eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVj a2luZyBmb3IgaWNvbnYiID4mNQotJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y IGljb252Li4uICIgPiY2OyB9Ci1pZiB0ZXN0ICIke2FtX2N2X2Z1bmNfaWNv bnYrc2V0fSIgPSBzZXQ7IHRoZW4gOgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3Igc2hhcmVkIGxp YnJhcnkgcnVuIHBhdGggb3JpZ2luIiA+JjUKKyRhc19lY2hvX24gImNoZWNr aW5nIGZvciBzaGFyZWQgbGlicmFyeSBydW4gcGF0aCBvcmlnaW4uLi4gIiA+ JjY7IH0KK2lmIHRlc3QgIiR7YWNsX2N2X3JwYXRoK3NldH0iID0gc2V0OyB0 aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKIAot ICAgIGFtX2N2X2Z1bmNfaWNvbnY9Im5vLCBjb25zaWRlciBpbnN0YWxsaW5n IEdOVSBsaWJpY29udiIKLSAgICBhbV9jdl9saWJfaWNvbnY9bm8KLSAgICBh bV9jdl91c2VfYnVpbGRfbGliaWNvbnY9bm8KLSAgICBhbV9jdl9idWlsZF9s aWJpY29udl9wYXRoPQorICAgIENDPSIkQ0MiIEdDQz0iJEdDQyIgTERGTEFH Uz0iJExERkxBR1MiIExEPSIkTEQiIHdpdGhfZ251X2xkPSIkd2l0aF9nbnVf bGQiIFwKKyAgICAke0NPTkZJR19TSEVMTC0vYmluL3NofSAiJGFjX2F1eF9k aXIvY29uZmlnLnJwYXRoIiAiJGhvc3QiID4gY29uZnRlc3Quc2gKKyAgICAu IC4vY29uZnRlc3Quc2gKKyAgICBybSAtZiAuL2NvbmZ0ZXN0LnNoCisgICAg YWNsX2N2X3JwYXRoPWRvbmUKIAotICAgICMgSWYgbGliaWNvbnYgaXMgcGFy dCBvZiB0aGUgYnVpbGQgdHJlZSwgdGhlbiB0cnkgdXNpbmcgaXQgb3Zlcgot ICAgICMgYW55IHN5c3RlbSBpY29udi4KLSAgICBpZiB0ZXN0IC1kIC4uL2xp Ymljb252OyB0aGVuCi0gICAgICBmb3IgbGliX2RpciBpbiAkQlVJTERfTElC SUNPTlZfTElCRElSUzsgZG8KLSAgICAgICAgYW1fc2F2ZV9MSUJTPSIkTElC UyIKLSAgICAgICAgYW1fc2F2ZV9DUFBGTEFHUz0iJENQUEZMQUdTIgotICAg ICAgICBMSUJTPSIkTElCUyAkbGliX2Rpci9saWJpY29udi5hIgotICAgICAg ICBDUFBGTEFHUz0iJENQUEZMQUdTICRCVUlMRF9MSUJJQ09OVl9JTkNMVURF IgotICAgICAgICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVz dC4kYWNfZXh0Ci0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8 c3RkbGliLmg+Ci0jaW5jbHVkZSA8aWNvbnYuaD4KLWludAotbWFpbiAoKQot ewotaWNvbnZfdCBjZCA9IGljb252X29wZW4oIiIsIiIpOwotICAgICAgICAg ICBpY29udihjZCxOVUxMLE5VTEwsTlVMTCxOVUxMKTsKLSAgICAgICAgICAg aWNvbnZfY2xvc2UoY2QpOwotICA7Ci0gIHJldHVybiAwOwotfQotX0FDRU9G Ci1pZiBhY19mbl9jX3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6Ci0gIGFt X2N2X3VzZV9idWlsZF9saWJpY29udj15ZXMKLSAgICAgICAgICBhbV9jdl9i dWlsZF9saWJpY29udl9wYXRoPSRsaWJfZGlyL2xpYmljb252LmEKLSAgICAg ICAgICBhbV9jdl9saWJfaWNvbnY9eWVzCi0gICAgICAgICAgYW1fY3ZfZnVu Y19pY29udj15ZXMKIGZpCi1ybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25m dGVzdC4kYWNfb2JqZXh0IFwKLSAgICBjb25mdGVzdCRhY19leGVleHQgY29u ZnRlc3QuJGFjX2V4dAotICAgICAgICBMSUJTPSIkYW1fc2F2ZV9MSUJTIgot ICAgICAgICBDUFBGTEFHUz0iJGFtX3NhdmVfQ1BQRkxBR1MiCi0gICAgICAg IGlmIHRlc3QgIiRhbV9jdl91c2VfYnVpbGRfbGliaWNvbnYiID0gInllcyI7 IHRoZW4KLSAgICAgICAgICBicmVhawotICAgICAgICBmaQotICAgICAgZG9u ZQotICAgIGZpCi0KLSAgICAjIE5leHQsIHRyeSB0byBmaW5kIGljb252IGlu IGxpYmMuCi0gICAgaWYgdGVzdCAiJGFtX2N2X2Z1bmNfaWNvbnYiICE9IHll czsgdGhlbgotICAgICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29u ZnRlc3QuJGFjX2V4dAotLyogZW5kIGNvbmZkZWZzLmguICAqLwotI2luY2x1 ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPGljb252Lmg+Ci1pbnQKLW1haW4g KCkKLXsKLWljb252X3QgY2QgPSBpY29udl9vcGVuKCIiLCIiKTsKLSAgICAg ICAgIGljb252KGNkLE5VTEwsTlVMTCxOVUxMLE5VTEwpOwotICAgICAgICAg aWNvbnZfY2xvc2UoY2QpOwotICA7Ci0gIHJldHVybiAwOwotfQotX0FDRU9G Ci1pZiBhY19mbl9jX3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6Ci0gIGFt X2N2X2Z1bmNfaWNvbnY9eWVzCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjbF9jdl9ycGF0aCIgPiY1Cisk YXNfZWNobyAiJGFjbF9jdl9ycGF0aCIgPiY2OyB9CisgIHdsPSIkYWNsX2N2 X3dsIgorICBsaWJleHQ9IiRhY2xfY3ZfbGliZXh0IgorICBzaGxpYmV4dD0i JGFjbF9jdl9zaGxpYmV4dCIKKyAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Yz0iJGFjbF9jdl9oYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIgorICBoYXJk Y29kZV9saWJkaXJfc2VwYXJhdG9yPSIkYWNsX2N2X2hhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3IiCisgIGhhcmRjb2RlX2RpcmVjdD0iJGFjbF9jdl9oYXJk Y29kZV9kaXJlY3QiCisgIGhhcmRjb2RlX21pbnVzX0w9IiRhY2xfY3ZfaGFy ZGNvZGVfbWludXNfTCIKKyAgICAjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUt cnBhdGggd2FzIGdpdmVuLgoraWYgdGVzdCAiJHtlbmFibGVfcnBhdGgrc2V0 fSIgPSBzZXQ7IHRoZW4gOgorICBlbmFibGV2YWw9JGVuYWJsZV9ycGF0aDsg OgorZWxzZQorICBlbmFibGVfcnBhdGg9eWVzCiBmaQotcm0gLWYgY29yZSBj b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCi0gICAgY29uZnRl c3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSAgICBmaQogCi0gICAg IyBJZiBpY29udiB3YXMgbm90IGluIGxpYmMsIHRyeSAtbGljb252LiAgSW4g dGhpcyBjYXNlLCBhcnJhbmdlIHRvCi0gICAgIyBsb29rIGluIHRoZSBsaWJp Y29udiBwcmVmaXgsIGlmIGl0IHdhcyBzcGVjaWZpZWQgYnkgdGhlIHVzZXIu Ci0gICAgaWYgdGVzdCAiJGFtX2N2X2Z1bmNfaWNvbnYiICE9IHllczsgdGhl bgotICAgICAgYW1fc2F2ZV9DUFBGTEFHUz0iJENQUEZMQUdTIgotICAgICAg YW1fc2F2ZV9MSUJTPSIkTElCUyIKLSAgICAgIGlmIHRlc3QgLW4gIiRMSUJJ Q09OVl9JTkNMVURFIjsgdGhlbgotICAgICAgICBDUFBGTEFHUz0iJENQUEZM QUdTICRMSUJJQ09OVl9JTkNMVURFIgotICAgICAgICBMSUJTPSIkTElCUyAk TElCSUNPTlZfTElCRElSIgotICAgICAgZmkKLSAgICAgIExJQlM9IiRMSUJT IC1saWNvbnYiCi0gICAgICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5j b25mdGVzdC4kYWNfZXh0Ci0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5j bHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8aWNvbnYuaD4KLWludAotbWFp biAoKQotewotaWNvbnZfdCBjZCA9IGljb252X29wZW4oIiIsIiIpOwotICAg ICAgICAgaWNvbnYoY2QsTlVMTCxOVUxMLE5VTEwsTlVMTCk7Ci0gICAgICAg ICBpY29udl9jbG9zZShjZCk7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNF T0YKLWlmIGFjX2ZuX2NfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKLSAg YW1fY3ZfbGliX2ljb252PXllcwotICAgICAgICBhbV9jdl9mdW5jX2ljb252 PXllcwotZmkKLXJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19vYmpleHQgXAotICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4k YWNfZXh0Ci0gICAgICBMSUJTPSIkYW1fc2F2ZV9MSUJTIgotICAgICAgQ1BQ RkxBR1M9IiRhbV9zYXZlX0NQUEZMQUdTIgotICAgIGZpCiAKLWZpCi17ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDog JGFtX2N2X2Z1bmNfaWNvbnYiID4mNQotJGFzX2VjaG8gIiRhbV9jdl9mdW5j X2ljb252IiA+JjY7IH0KIAotICAjIFNldCB0aGUgdmFyaW91cyBmbGFncyBi YXNlZCBvbiB0aGUgY2FjaGUgdmFyaWFibGVzLiAgV2UgY2FuJ3QgcmVseQot ICAjIG9uIHRoZSBmbGFncyB0byByZW1haW4gc2V0IGZyb20gdGhlIGFib3Zl IGNvZGUsIGR1ZSB0byBjYWNoaW5nLgotICBMSUJJQ09OVj0KLSAgaWYgdGVz dCAiJGFtX2N2X2xpYl9pY29udiIgPSB5ZXM7IHRoZW4KLSAgICBMSUJJQ09O Vj0iLWxpY29udiIKLSAgZWxzZQotICAgIExJQklDT05WX0xJQkRJUj0KLSAg ICBMSUJJQ09OVl9JTkNMVURFPQotICBmaQotICBpZiB0ZXN0ICIkYW1fY3Zf dXNlX2J1aWxkX2xpYmljb252IiA9IHllczsgdGhlbgotICAgIExJQklDT05W PSIkYW1fY3ZfYnVpbGRfbGliaWNvbnZfcGF0aCIKLSAgICBMSUJJQ09OVl9M SUJESVI9IiIKLSAgICBMSUJJQ09OVl9JTkNMVURFPSIkQlVJTERfTElCSUNP TlZfSU5DTFVERSIKLSAgZmkKLSAgQ1BQRkxBR1M9IiRDUFBGTEFHUyAkTElC SUNPTlZfSU5DTFVERSIKLSAgTElCUz0iJExJQlMgJExJQklDT05WX0xJQkRJ UiAkTElCSUNPTlYiCiAKLSAgaWYgdGVzdCAiJGFtX2N2X2Z1bmNfaWNvbnYi ID0geWVzOyB0aGVuCiAKLSRhc19lY2hvICIjZGVmaW5lIEhBVkVfSUNPTlYg MSIgPj5jb25mZGVmcy5oCiAKLSAgICB7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBpY29udiBkZWNsYXJh dGlvbiIgPiY1Ci0kYXNfZWNob19uICJjaGVja2luZyBmb3IgaWNvbnYgZGVj bGFyYXRpb24uLi4gIiA+JjY7IH0KLSAgICBpZiB0ZXN0ICIke2FtX2N2X3By b3RvX2ljb252K3NldH0iID0gc2V0OyB0aGVuIDoKLSAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKLWVsc2UKIAotICAgICAgY2F0IGNvbmZkZWZzLmgg LSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotLyogZW5kIGNvbmZkZWZz LmguICAqLwogCi0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8aWNv bnYuaD4KLWV4dGVybgotI2lmZGVmIF9fY3BsdXNwbHVzCi0iQyIKLSNlbmRp ZgotI2lmIGRlZmluZWQoX19TVERDX18pIHx8IGRlZmluZWQoX19jcGx1c3Bs dXMpCi1zaXplX3QgaWNvbnYgKGljb252X3QgY2QsIGNoYXIgKiAqaW5idWYs IHNpemVfdCAqaW5ieXRlc2xlZnQsIGNoYXIgKiAqb3V0YnVmLCBzaXplX3Qg Km91dGJ5dGVzbGVmdCk7CisgICAgdXNlX2FkZGl0aW9uYWw9eWVzCisKKyAg YWNsX3NhdmVfcHJlZml4PSIkcHJlZml4IgorICBwcmVmaXg9IiRhY2xfZmlu YWxfcHJlZml4IgorICBhY2xfc2F2ZV9leGVjX3ByZWZpeD0iJGV4ZWNfcHJl Zml4IgorICBleGVjX3ByZWZpeD0iJGFjbF9maW5hbF9leGVjX3ByZWZpeCIK KworICAgIGV2YWwgYWRkaXRpb25hbF9pbmNsdWRlZGlyPVwiJGluY2x1ZGVk aXJcIgorICAgIGV2YWwgYWRkaXRpb25hbF9saWJkaXI9XCIkbGliZGlyXCIK KworICBleGVjX3ByZWZpeD0iJGFjbF9zYXZlX2V4ZWNfcHJlZml4IgorICBw cmVmaXg9IiRhY2xfc2F2ZV9wcmVmaXgiCisKKworIyBDaGVjayB3aGV0aGVy IC0td2l0aC1saWJpY29udi1wcmVmaXggd2FzIGdpdmVuLgoraWYgdGVzdCAi JHt3aXRoX2xpYmljb252X3ByZWZpeCtzZXR9IiA9IHNldDsgdGhlbiA6Cisg IHdpdGh2YWw9JHdpdGhfbGliaWNvbnZfcHJlZml4OworICAgIGlmIHRlc3Qg Ilgkd2l0aHZhbCIgPSAiWG5vIjsgdGhlbgorICAgICAgdXNlX2FkZGl0aW9u YWw9bm8KKyAgICBlbHNlCisgICAgICBpZiB0ZXN0ICJYJHdpdGh2YWwiID0g IlgiOyB0aGVuCisKKyAgYWNsX3NhdmVfcHJlZml4PSIkcHJlZml4IgorICBw cmVmaXg9IiRhY2xfZmluYWxfcHJlZml4IgorICBhY2xfc2F2ZV9leGVjX3By ZWZpeD0iJGV4ZWNfcHJlZml4IgorICBleGVjX3ByZWZpeD0iJGFjbF9maW5h bF9leGVjX3ByZWZpeCIKKworICAgICAgICAgIGV2YWwgYWRkaXRpb25hbF9p bmNsdWRlZGlyPVwiJGluY2x1ZGVkaXJcIgorICAgICAgICAgIGV2YWwgYWRk aXRpb25hbF9saWJkaXI9XCIkbGliZGlyXCIKKworICBleGVjX3ByZWZpeD0i JGFjbF9zYXZlX2V4ZWNfcHJlZml4IgorICBwcmVmaXg9IiRhY2xfc2F2ZV9w cmVmaXgiCisKKyAgICAgIGVsc2UKKyAgICAgICAgYWRkaXRpb25hbF9pbmNs dWRlZGlyPSIkd2l0aHZhbC9pbmNsdWRlIgorICAgICAgICBhZGRpdGlvbmFs X2xpYmRpcj0iJHdpdGh2YWwvbGliIgorICAgICAgZmkKKyAgICBmaQorCitm aQorCisgICAgICBMSUJJQ09OVj0KKyAgTFRMSUJJQ09OVj0KKyAgSU5DSUNP TlY9CisgIHJwYXRoZGlycz0KKyAgbHRycGF0aGRpcnM9CisgIG5hbWVzX2Fs cmVhZHlfaGFuZGxlZD0KKyAgbmFtZXNfbmV4dF9yb3VuZD0naWNvbnYgJwor ICB3aGlsZSB0ZXN0IC1uICIkbmFtZXNfbmV4dF9yb3VuZCI7IGRvCisgICAg bmFtZXNfdGhpc19yb3VuZD0iJG5hbWVzX25leHRfcm91bmQiCisgICAgbmFt ZXNfbmV4dF9yb3VuZD0KKyAgICBmb3IgbmFtZSBpbiAkbmFtZXNfdGhpc19y b3VuZDsgZG8KKyAgICAgIGFscmVhZHlfaGFuZGxlZD0KKyAgICAgIGZvciBu IGluICRuYW1lc19hbHJlYWR5X2hhbmRsZWQ7IGRvCisgICAgICAgIGlmIHRl c3QgIiRuIiA9ICIkbmFtZSI7IHRoZW4KKyAgICAgICAgICBhbHJlYWR5X2hh bmRsZWQ9eWVzCisgICAgICAgICAgYnJlYWsKKyAgICAgICAgZmkKKyAgICAg IGRvbmUKKyAgICAgIGlmIHRlc3QgLXogIiRhbHJlYWR5X2hhbmRsZWQiOyB0 aGVuCisgICAgICAgIG5hbWVzX2FscmVhZHlfaGFuZGxlZD0iJG5hbWVzX2Fs cmVhZHlfaGFuZGxlZCAkbmFtZSIKKyAgICAgICAgICAgICAgICAgICAgICAg IHVwcGVybmFtZT1gZWNobyAiJG5hbWUiIHwgc2VkIC1lICd5fGFiY2RlZmdo aWprbG1ub3BxcnN0dXZ3eHl6Li8tfEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZX WFlaX19ffCdgCisgICAgICAgIGV2YWwgdmFsdWU9XCJcJEhBVkVfTElCJHVw cGVybmFtZVwiCisgICAgICAgIGlmIHRlc3QgLW4gIiR2YWx1ZSI7IHRoZW4K KyAgICAgICAgICBpZiB0ZXN0ICIkdmFsdWUiID0geWVzOyB0aGVuCisgICAg ICAgICAgICBldmFsIHZhbHVlPVwiXCRMSUIkdXBwZXJuYW1lXCIKKyAgICAg ICAgICAgIHRlc3QgLXogIiR2YWx1ZSIgfHwgTElCSUNPTlY9IiR7TElCSUNP TlZ9JHtMSUJJQ09OVjorIH0kdmFsdWUiCisgICAgICAgICAgICBldmFsIHZh bHVlPVwiXCRMVExJQiR1cHBlcm5hbWVcIgorICAgICAgICAgICAgdGVzdCAt eiAiJHZhbHVlIiB8fCBMVExJQklDT05WPSIke0xUTElCSUNPTlZ9JHtMVExJ QklDT05WOisgfSR2YWx1ZSIKKyAgICAgICAgICBlbHNlCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA6CisgICAgICAgICAgZmkKKyAg ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm91 bmRfZGlyPQorICAgICAgICAgIGZvdW5kX2xhPQorICAgICAgICAgIGZvdW5k X3NvPQorICAgICAgICAgIGZvdW5kX2E9CisgICAgICAgICAgaWYgdGVzdCAk dXNlX2FkZGl0aW9uYWwgPSB5ZXM7IHRoZW4KKyAgICAgICAgICAgIGlmIHRl c3QgLW4gIiRzaGxpYmV4dCIgJiYgdGVzdCAtZiAiJGFkZGl0aW9uYWxfbGli ZGlyL2xpYiRuYW1lLiRzaGxpYmV4dCI7IHRoZW4KKyAgICAgICAgICAgICAg Zm91bmRfZGlyPSIkYWRkaXRpb25hbF9saWJkaXIiCisgICAgICAgICAgICAg IGZvdW5kX3NvPSIkYWRkaXRpb25hbF9saWJkaXIvbGliJG5hbWUuJHNobGli ZXh0IgorICAgICAgICAgICAgICBpZiB0ZXN0IC1mICIkYWRkaXRpb25hbF9s aWJkaXIvbGliJG5hbWUubGEiOyB0aGVuCisgICAgICAgICAgICAgICAgZm91 bmRfbGE9IiRhZGRpdGlvbmFsX2xpYmRpci9saWIkbmFtZS5sYSIKKyAgICAg ICAgICAgICAgZmkKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg aWYgdGVzdCAtZiAiJGFkZGl0aW9uYWxfbGliZGlyL2xpYiRuYW1lLiRsaWJl eHQiOyB0aGVuCisgICAgICAgICAgICAgICAgZm91bmRfZGlyPSIkYWRkaXRp b25hbF9saWJkaXIiCisgICAgICAgICAgICAgICAgZm91bmRfYT0iJGFkZGl0 aW9uYWxfbGliZGlyL2xpYiRuYW1lLiRsaWJleHQiCisgICAgICAgICAgICAg ICAgaWYgdGVzdCAtZiAiJGFkZGl0aW9uYWxfbGliZGlyL2xpYiRuYW1lLmxh IjsgdGhlbgorICAgICAgICAgICAgICAgICAgZm91bmRfbGE9IiRhZGRpdGlv bmFsX2xpYmRpci9saWIkbmFtZS5sYSIKKyAgICAgICAgICAgICAgICBmaQor ICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgZmkKKyAgICAgICAgICBm aQorICAgICAgICAgIGlmIHRlc3QgIlgkZm91bmRfZGlyIiA9ICJYIjsgdGhl bgorICAgICAgICAgICAgZm9yIHggaW4gJExERkxBR1MgJExUTElCSUNPTlY7 IGRvCisKKyAgYWNsX3NhdmVfcHJlZml4PSIkcHJlZml4IgorICBwcmVmaXg9 IiRhY2xfZmluYWxfcHJlZml4IgorICBhY2xfc2F2ZV9leGVjX3ByZWZpeD0i JGV4ZWNfcHJlZml4IgorICBleGVjX3ByZWZpeD0iJGFjbF9maW5hbF9leGVj X3ByZWZpeCIKKyAgZXZhbCB4PVwiJHhcIgorICBleGVjX3ByZWZpeD0iJGFj bF9zYXZlX2V4ZWNfcHJlZml4IgorICBwcmVmaXg9IiRhY2xfc2F2ZV9wcmVm aXgiCisKKyAgICAgICAgICAgICAgY2FzZSAiJHgiIGluCisgICAgICAgICAg ICAgICAgLUwqKQorICAgICAgICAgICAgICAgICAgZGlyPWBlY2hvICJYJHgi IHwgc2VkIC1lICdzL15YLUwvLydgCisgICAgICAgICAgICAgICAgICBpZiB0 ZXN0IC1uICIkc2hsaWJleHQiICYmIHRlc3QgLWYgIiRkaXIvbGliJG5hbWUu JHNobGliZXh0IjsgdGhlbgorICAgICAgICAgICAgICAgICAgICBmb3VuZF9k aXI9IiRkaXIiCisgICAgICAgICAgICAgICAgICAgIGZvdW5kX3NvPSIkZGly L2xpYiRuYW1lLiRzaGxpYmV4dCIKKyAgICAgICAgICAgICAgICAgICAgaWYg dGVzdCAtZiAiJGRpci9saWIkbmFtZS5sYSI7IHRoZW4KKyAgICAgICAgICAg ICAgICAgICAgICBmb3VuZF9sYT0iJGRpci9saWIkbmFtZS5sYSIKKyAgICAg ICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICAgIGVsc2UKKyAg ICAgICAgICAgICAgICAgICAgaWYgdGVzdCAtZiAiJGRpci9saWIkbmFtZS4k bGliZXh0IjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgIGZvdW5kX2Rp cj0iJGRpciIKKyAgICAgICAgICAgICAgICAgICAgICBmb3VuZF9hPSIkZGly L2xpYiRuYW1lLiRsaWJleHQiCisgICAgICAgICAgICAgICAgICAgICAgaWYg dGVzdCAtZiAiJGRpci9saWIkbmFtZS5sYSI7IHRoZW4KKyAgICAgICAgICAg ICAgICAgICAgICAgIGZvdW5kX2xhPSIkZGlyL2xpYiRuYW1lLmxhIgorICAg ICAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAgIGZp CisgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgOzsK KyAgICAgICAgICAgICAgZXNhYworICAgICAgICAgICAgICBpZiB0ZXN0ICJY JGZvdW5kX2RpciIgIT0gIlgiOyB0aGVuCisgICAgICAgICAgICAgICAgYnJl YWsKKyAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgIGRvbmUKKyAgICAg ICAgICBmaQorICAgICAgICAgIGlmIHRlc3QgIlgkZm91bmRfZGlyIiAhPSAi WCI7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICAgIExUTElCSUNPTlY9 IiR7TFRMSUJJQ09OVn0ke0xUTElCSUNPTlY6KyB9LUwkZm91bmRfZGlyIC1s JG5hbWUiCisgICAgICAgICAgICBpZiB0ZXN0ICJYJGZvdW5kX3NvIiAhPSAi WCI7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAiJGVuYWJsZV9ycGF0aCIg PSBubyB8fCB0ZXN0ICJYJGZvdW5kX2RpciIgPSAiWC91c3IvbGliIjsgdGhl bgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJJQ09OVj0i JHtMSUJJQ09OVn0ke0xJQklDT05WOisgfSRmb3VuZF9zbyIKKyAgICAgICAg ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBoYXZlaXQ9CisgICAgICAgICAgICAgICAgZm9yIHggaW4gJGx0cnBhdGhk aXJzOyBkbworICAgICAgICAgICAgICAgICAgaWYgdGVzdCAiWCR4IiA9ICJY JGZvdW5kX2RpciI7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgaGF2ZWl0 PXllcworICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAg ICAgICAgZmkKKyAgICAgICAgICAgICAgICBkb25lCisgICAgICAgICAgICAg ICAgaWYgdGVzdCAteiAiJGhhdmVpdCI7IHRoZW4KKyAgICAgICAgICAgICAg ICAgIGx0cnBhdGhkaXJzPSIkbHRycGF0aGRpcnMgJGZvdW5kX2RpciIKKyAg ICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0IiA9IHllczsgdGhlbgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTElCSUNPTlY9IiR7TElCSUNPTlZ9JHtMSUJJQ09OVjorIH0k Zm91bmRfc28iCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg ICAgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMi ICYmIHRlc3QgIiRoYXJkY29kZV9taW51c19MIiA9IG5vOyB0aGVuCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMSUJJQ09OVj0iJHtMSUJJQ09OVn0ke0xJQklDT05WOisg fSRmb3VuZF9zbyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhdmVpdD0KKyAgICAgICAg ICAgICAgICAgICAgZm9yIHggaW4gJHJwYXRoZGlyczsgZG8KKyAgICAgICAg ICAgICAgICAgICAgICBpZiB0ZXN0ICJYJHgiID0gIlgkZm91bmRfZGlyIjsg dGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PXllcworICAg ICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICAg ICAgICBmaQorICAgICAgICAgICAgICAgICAgICBkb25lCisgICAgICAgICAg ICAgICAgICAgIGlmIHRlc3QgLXogIiRoYXZlaXQiOyB0aGVuCisgICAgICAg ICAgICAgICAgICAgICAgcnBhdGhkaXJzPSIkcnBhdGhkaXJzICRmb3VuZF9k aXIiCisgICAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAg ICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhh dmVpdD0KKyAgICAgICAgICAgICAgICAgICAgZm9yIHggaW4gJExERkxBR1Mg JExJQklDT05WOyBkbworCisgIGFjbF9zYXZlX3ByZWZpeD0iJHByZWZpeCIK KyAgcHJlZml4PSIkYWNsX2ZpbmFsX3ByZWZpeCIKKyAgYWNsX3NhdmVfZXhl Y19wcmVmaXg9IiRleGVjX3ByZWZpeCIKKyAgZXhlY19wcmVmaXg9IiRhY2xf ZmluYWxfZXhlY19wcmVmaXgiCisgIGV2YWwgeD1cIiR4XCIKKyAgZXhlY19w cmVmaXg9IiRhY2xfc2F2ZV9leGVjX3ByZWZpeCIKKyAgcHJlZml4PSIkYWNs X3NhdmVfcHJlZml4IgorCisgICAgICAgICAgICAgICAgICAgICAgaWYgdGVz dCAiWCR4IiA9ICJYLUwkZm91bmRfZGlyIjsgdGhlbgorICAgICAgICAgICAg ICAgICAgICAgICAgaGF2ZWl0PXllcworICAgICAgICAgICAgICAgICAgICAg ICAgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAg ICAgICAgICAgICBkb25lCisgICAgICAgICAgICAgICAgICAgIGlmIHRlc3Qg LXogIiRoYXZlaXQiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgTElC SUNPTlY9IiR7TElCSUNPTlZ9JHtMSUJJQ09OVjorIH0tTCRmb3VuZF9kaXIi CisgICAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAg IGlmIHRlc3QgIiRoYXJkY29kZV9taW51c19MIiAhPSBubzsgdGhlbgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQklD T05WPSIke0xJQklDT05WfSR7TElCSUNPTlY6KyB9JGZvdW5kX3NvIgorICAg ICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExJQklDT05WPSIke0xJQklDT05WfSR7TElC SUNPTlY6KyB9LWwkbmFtZSIKKyAgICAgICAgICAgICAgICAgICAgZmkKKyAg ICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgZmkKKyAgICAg ICAgICAgICAgZmkKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg aWYgdGVzdCAiWCRmb3VuZF9hIiAhPSAiWCI7IHRoZW4KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTElCSUNPTlY9IiR7TElCSUNPTlZ9JHtM SUJJQ09OVjorIH0kZm91bmRfYSIKKyAgICAgICAgICAgICAgZWxzZQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TElCSUNPTlY9IiR7TElCSUNPTlZ9JHtMSUJJQ09OVjorIH0tTCRmb3VuZF9k aXIgLWwkbmFtZSIKKyAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgIGZp CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsX2luY2x1ZGVk aXI9CisgICAgICAgICAgICBjYXNlICIkZm91bmRfZGlyIiBpbgorICAgICAg ICAgICAgICAqL2xpYiB8ICovbGliLykKKyAgICAgICAgICAgICAgICBiYXNl ZGlyPWBlY2hvICJYJGZvdW5kX2RpciIgfCBzZWQgLWUgJ3MsXlgsLCcgLWUg J3MsL2xpYi8qJCwsJ2AKKyAgICAgICAgICAgICAgICBhZGRpdGlvbmFsX2lu Y2x1ZGVkaXI9IiRiYXNlZGlyL2luY2x1ZGUiCisgICAgICAgICAgICAgICAg OzsKKyAgICAgICAgICAgIGVzYWMKKyAgICAgICAgICAgIGlmIHRlc3QgIlgk YWRkaXRpb25hbF9pbmNsdWRlZGlyIiAhPSAiWCI7IHRoZW4KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpZiB0ZXN0ICJYJGFkZGl0aW9uYWxfaW5jbHVkZWRp ciIgIT0gIlgvdXNyL2luY2x1ZGUiOyB0aGVuCisgICAgICAgICAgICAgICAg aGF2ZWl0PQorICAgICAgICAgICAgICAgIGlmIHRlc3QgIlgkYWRkaXRpb25h bF9pbmNsdWRlZGlyIiA9ICJYL3Vzci9sb2NhbC9pbmNsdWRlIjsgdGhlbgor ICAgICAgICAgICAgICAgICAgaWYgdGVzdCAtbiAiJEdDQyI7IHRoZW4KKyAg ICAgICAgICAgICAgICAgICAgY2FzZSAkaG9zdF9vcyBpbgorICAgICAgICAg ICAgICAgICAgICAgIGxpbnV4KikgaGF2ZWl0PXllczs7CisgICAgICAgICAg ICAgICAgICAgIGVzYWMKKyAgICAgICAgICAgICAgICAgIGZpCisgICAgICAg ICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkaGF2 ZWl0IjsgdGhlbgorICAgICAgICAgICAgICAgICAgZm9yIHggaW4gJENQUEZM QUdTICRJTkNJQ09OVjsgZG8KKworICBhY2xfc2F2ZV9wcmVmaXg9IiRwcmVm aXgiCisgIHByZWZpeD0iJGFjbF9maW5hbF9wcmVmaXgiCisgIGFjbF9zYXZl X2V4ZWNfcHJlZml4PSIkZXhlY19wcmVmaXgiCisgIGV4ZWNfcHJlZml4PSIk YWNsX2ZpbmFsX2V4ZWNfcHJlZml4IgorICBldmFsIHg9XCIkeFwiCisgIGV4 ZWNfcHJlZml4PSIkYWNsX3NhdmVfZXhlY19wcmVmaXgiCisgIHByZWZpeD0i JGFjbF9zYXZlX3ByZWZpeCIKKworICAgICAgICAgICAgICAgICAgICBpZiB0 ZXN0ICJYJHgiID0gIlgtSSRhZGRpdGlvbmFsX2luY2x1ZGVkaXIiOyB0aGVu CisgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PXllcworICAgICAgICAg ICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgICAgIGZpCisg ICAgICAgICAgICAgICAgICBkb25lCisgICAgICAgICAgICAgICAgICBpZiB0 ZXN0IC16ICIkaGF2ZWl0IjsgdGhlbgorICAgICAgICAgICAgICAgICAgICBp ZiB0ZXN0IC1kICIkYWRkaXRpb25hbF9pbmNsdWRlZGlyIjsgdGhlbgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkNJ Q09OVj0iJHtJTkNJQ09OVn0ke0lOQ0lDT05WOisgfS1JJGFkZGl0aW9uYWxf aW5jbHVkZWRpciIKKyAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAg ICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAg ICAgZmkKKyAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAgICAg ICBpZiB0ZXN0IC1uICIkZm91bmRfbGEiOyB0aGVuCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNh dmVfbGliZGlyPSIkbGliZGlyIgorICAgICAgICAgICAgICBjYXNlICIkZm91 bmRfbGEiIGluCisgICAgICAgICAgICAgICAgKi8qIHwgKlxcKikgLiAiJGZv dW5kX2xhIiA7OworICAgICAgICAgICAgICAgICopIC4gIi4vJGZvdW5kX2xh IiA7OworICAgICAgICAgICAgICBlc2FjCisgICAgICAgICAgICAgIGxpYmRp cj0iJHNhdmVfbGliZGlyIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZvciBkZXAgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KKyAgICAgICAgICAg ICAgICBjYXNlICIkZGVwIiBpbgorICAgICAgICAgICAgICAgICAgLUwqKQor ICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsX2xpYmRpcj1gZWNobyAi WCRkZXAiIHwgc2VkIC1lICdzL15YLUwvLydgCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgdGVzdCAiWCRhZGRpdGlvbmFsX2xpYmRpciIgIT0gIlgv dXNyL2xpYiI7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9 CisgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAiWCRhZGRpdGlvbmFs X2xpYmRpciIgPSAiWC91c3IvbG9jYWwvbGliIjsgdGhlbgorICAgICAgICAg ICAgICAgICAgICAgICAgaWYgdGVzdCAtbiAiJEdDQyI7IHRoZW4KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgY2FzZSAkaG9zdF9vcyBpbgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpbnV4KikgaGF2ZWl0PXllczs7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgIGVzYWMKKyAgICAgICAgICAgICAg ICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAg ICAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkaGF2ZWl0IjsgdGhlbgor ICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PQorICAgICAgICAgICAg ICAgICAgICAgICAgZm9yIHggaW4gJExERkxBR1MgJExJQklDT05WOyBkbwor CisgIGFjbF9zYXZlX3ByZWZpeD0iJHByZWZpeCIKKyAgcHJlZml4PSIkYWNs X2ZpbmFsX3ByZWZpeCIKKyAgYWNsX3NhdmVfZXhlY19wcmVmaXg9IiRleGVj X3ByZWZpeCIKKyAgZXhlY19wcmVmaXg9IiRhY2xfZmluYWxfZXhlY19wcmVm aXgiCisgIGV2YWwgeD1cIiR4XCIKKyAgZXhlY19wcmVmaXg9IiRhY2xfc2F2 ZV9leGVjX3ByZWZpeCIKKyAgcHJlZml4PSIkYWNsX3NhdmVfcHJlZml4Igor CisgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIlgkeCIgPSAi WC1MJGFkZGl0aW9uYWxfbGliZGlyIjsgdGhlbgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGhhdmVpdD15ZXMKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBicmVhaworICAgICAgICAgICAgICAgICAgICAgICAgICBmaQor ICAgICAgICAgICAgICAgICAgICAgICAgZG9uZQorICAgICAgICAgICAgICAg ICAgICAgICAgaWYgdGVzdCAteiAiJGhhdmVpdCI7IHRoZW4KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgdGVzdCAtZCAiJGFkZGl0aW9uYWxfbGli ZGlyIjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMSUJJQ09OVj0iJHtMSUJJQ09OVn0k e0xJQklDT05WOisgfS1MJGFkZGl0aW9uYWxfbGliZGlyIgorICAgICAgICAg ICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgICAgICAg ZmkKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhdmVpdD0KKyAgICAgICAg ICAgICAgICAgICAgICAgIGZvciB4IGluICRMREZMQUdTICRMVExJQklDT05W OyBkbworCisgIGFjbF9zYXZlX3ByZWZpeD0iJHByZWZpeCIKKyAgcHJlZml4 PSIkYWNsX2ZpbmFsX3ByZWZpeCIKKyAgYWNsX3NhdmVfZXhlY19wcmVmaXg9 IiRleGVjX3ByZWZpeCIKKyAgZXhlY19wcmVmaXg9IiRhY2xfZmluYWxfZXhl Y19wcmVmaXgiCisgIGV2YWwgeD1cIiR4XCIKKyAgZXhlY19wcmVmaXg9IiRh Y2xfc2F2ZV9leGVjX3ByZWZpeCIKKyAgcHJlZml4PSIkYWNsX3NhdmVfcHJl Zml4IgorCisgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIlgk eCIgPSAiWC1MJGFkZGl0aW9uYWxfbGliZGlyIjsgdGhlbgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGhhdmVpdD15ZXMKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgICAgICAgICAg ICBmaQorICAgICAgICAgICAgICAgICAgICAgICAgZG9uZQorICAgICAgICAg ICAgICAgICAgICAgICAgaWYgdGVzdCAteiAiJGhhdmVpdCI7IHRoZW4KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAtZCAiJGFkZGl0aW9u YWxfbGliZGlyIjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMVExJQklDT05WPSIke0xU TElCSUNPTlZ9JHtMVExJQklDT05WOisgfS1MJGFkZGl0aW9uYWxfbGliZGly IgorICAgICAgICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAg ICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICAgICAgICBmaQorICAg ICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgICA7Owor ICAgICAgICAgICAgICAgICAgLVIqKQorICAgICAgICAgICAgICAgICAgICBk aXI9YGVjaG8gIlgkZGVwIiB8IHNlZCAtZSAncy9eWC1SLy8nYAorICAgICAg ICAgICAgICAgICAgICBpZiB0ZXN0ICIkZW5hYmxlX3JwYXRoIiAhPSBubzsg dGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PQorICAgICAgICAg ICAgICAgICAgICAgIGZvciB4IGluICRycGF0aGRpcnM7IGRvCisgICAgICAg ICAgICAgICAgICAgICAgICBpZiB0ZXN0ICJYJHgiID0gIlgkZGlyIjsgdGhl bgorICAgICAgICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9eWVzCisgICAg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAg ICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgICAgIGRvbmUKKyAgICAg ICAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkaGF2ZWl0IjsgdGhlbgor ICAgICAgICAgICAgICAgICAgICAgICAgcnBhdGhkaXJzPSIkcnBhdGhkaXJz ICRkaXIiCisgICAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGhhdmVpdD0KKyAgICAgICAgICAgICAgICAgICAgICBmb3Ig eCBpbiAkbHRycGF0aGRpcnM7IGRvCisgICAgICAgICAgICAgICAgICAgICAg ICBpZiB0ZXN0ICJYJHgiID0gIlgkZGlyIjsgdGhlbgorICAgICAgICAgICAg ICAgICAgICAgICAgICBoYXZlaXQ9eWVzCisgICAgICAgICAgICAgICAgICAg ICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICBmaQorICAg ICAgICAgICAgICAgICAgICAgIGRvbmUKKyAgICAgICAgICAgICAgICAgICAg ICBpZiB0ZXN0IC16ICIkaGF2ZWl0IjsgdGhlbgorICAgICAgICAgICAgICAg ICAgICAgICAgbHRycGF0aGRpcnM9IiRsdHJwYXRoZGlycyAkZGlyIgorICAg ICAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAgIGZp CisgICAgICAgICAgICAgICAgICAgIDs7CisgICAgICAgICAgICAgICAgICAt bCopCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bmFtZXNfbmV4dF9yb3VuZD0iJG5hbWVzX25leHRfcm91bmQgImBlY2hvICJY JGRlcCIgfCBzZWQgLWUgJ3MvXlgtbC8vJ2AKKyAgICAgICAgICAgICAgICAg ICAgOzsKKyAgICAgICAgICAgICAgICAgICoubGEpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG5hbWVzX25leHRfcm91bmQ9IiRuYW1l c19uZXh0X3JvdW5kICJgZWNobyAiWCRkZXAiIHwgc2VkIC1lICdzLF5YLiov LCwnIC1lICdzLF5saWIsLCcgLWUgJ3MsXC5sYSQsLCdgCisgICAgICAgICAg ICAgICAgICAgIDs7CisgICAgICAgICAgICAgICAgICAqKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQklDT05WPSIke0xJ QklDT05WfSR7TElCSUNPTlY6KyB9JGRlcCIKKyAgICAgICAgICAgICAgICAg ICAgTFRMSUJJQ09OVj0iJHtMVExJQklDT05WfSR7TFRMSUJJQ09OVjorIH0k ZGVwIgorICAgICAgICAgICAgICAgICAgICA7OworICAgICAgICAgICAgICAg IGVzYWMKKyAgICAgICAgICAgICAgZG9uZQorICAgICAgICAgICAgZmkKKyAg ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJJQ09OVj0iJHtMSUJJ Q09OVn0ke0xJQklDT05WOisgfS1sJG5hbWUiCisgICAgICAgICAgICBMVExJ QklDT05WPSIke0xUTElCSUNPTlZ9JHtMVExJQklDT05WOisgfS1sJG5hbWUi CisgICAgICAgICAgZmkKKyAgICAgICAgZmkKKyAgICAgIGZpCisgICAgZG9u ZQorICBkb25lCisgIGlmIHRlc3QgIlgkcnBhdGhkaXJzIiAhPSAiWCI7IHRo ZW4KKyAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRv ciI7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICAgIGFsbGRpcnM9Cisg ICAgICBmb3IgZm91bmRfZGlyIGluICRycGF0aGRpcnM7IGRvCisgICAgICAg IGFsbGRpcnM9IiR7YWxsZGlyc30ke2FsbGRpcnM6KyRoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yfSRmb3VuZF9kaXIiCisgICAgICBkb25lCisgICAgICAg ICAgICBhY2xfc2F2ZV9saWJkaXI9IiRsaWJkaXIiCisgICAgICBsaWJkaXI9 IiRhbGxkaXJzIgorICAgICAgZXZhbCBmbGFnPVwiJGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNcIgorICAgICAgbGliZGlyPSIkYWNsX3NhdmVfbGliZGly IgorICAgICAgTElCSUNPTlY9IiR7TElCSUNPTlZ9JHtMSUJJQ09OVjorIH0k ZmxhZyIKKyAgICBlbHNlCisgICAgICAgICAgICBmb3IgZm91bmRfZGlyIGlu ICRycGF0aGRpcnM7IGRvCisgICAgICAgIGFjbF9zYXZlX2xpYmRpcj0iJGxp YmRpciIKKyAgICAgICAgbGliZGlyPSIkZm91bmRfZGlyIgorICAgICAgICBl dmFsIGZsYWc9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCisgICAg ICAgIGxpYmRpcj0iJGFjbF9zYXZlX2xpYmRpciIKKyAgICAgICAgTElCSUNP TlY9IiR7TElCSUNPTlZ9JHtMSUJJQ09OVjorIH0kZmxhZyIKKyAgICAgIGRv bmUKKyAgICBmaQorICBmaQorICBpZiB0ZXN0ICJYJGx0cnBhdGhkaXJzIiAh PSAiWCI7IHRoZW4KKyAgICAgICAgICAgIGZvciBmb3VuZF9kaXIgaW4gJGx0 cnBhdGhkaXJzOyBkbworICAgICAgTFRMSUJJQ09OVj0iJHtMVExJQklDT05W fSR7TFRMSUJJQ09OVjorIH0tUiRmb3VuZF9kaXIiCisgICAgZG9uZQorICBm aQorCisKKworCisKKworCisgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIGljb252IiA+JjUKKyRhc19l Y2hvX24gImNoZWNraW5nIGZvciBpY29udi4uLiAiID4mNjsgfQoraWYgdGVz dCAiJHthbV9jdl9mdW5jX2ljb252K3NldH0iID0gc2V0OyB0aGVuIDoKKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKworICAgIGFtX2N2 X2Z1bmNfaWNvbnY9Im5vLCBjb25zaWRlciBpbnN0YWxsaW5nIEdOVSBsaWJp Y29udiIKKyAgICBhbV9jdl9saWJfaWNvbnY9bm8KKyAgICAgICAgICAgICAg ICAgICAgYW1fc2F2ZV9DUFBGTEFHUz0iJENQUEZMQUdTIgorICAgIENQUEZM QUdTPSIkQ1BQRkxBR1MgJElOQ0lDT05WIgorICAgIGNhdCBjb25mZGVmcy5o IC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKy8qIGVuZCBjb25mZGVm cy5oLiAgKi8KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxpY29u di5oPgoraW50CittYWluICgpCit7CitpY29udl90IGNkID0gaWNvbnZfb3Bl bigiIiwiIik7CisgICAgICAgaWNvbnYoY2QsTlVMTCxOVUxMLE5VTEwsTlVM TCk7CisgICAgICAgaWNvbnZfY2xvc2UoY2QpOworICA7CisgIHJldHVybiAw OworfQorX0FDRU9GCitpZiBhY19mbl9jX3RyeV9saW5rICIkTElORU5PIjsg dGhlbiA6CisgIGFtX2N2X2Z1bmNfaWNvbnY9eWVzCitmaQorcm0gLWYgY29y ZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisgICAgY29u ZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKyAgICBDUFBGTEFH Uz0iJGFtX3NhdmVfQ1BQRkxBR1MiCisKKyAgICBpZiB0ZXN0ICIkYW1fY3Zf ZnVuY19pY29udiIgIT0geWVzICYmIHRlc3QgLWQgLi4vbGliaWNvbnY7IHRo ZW4KKyAgICAgIGZvciBfbGlicyBpbiAubGlicyBfbGliczsgZG8KKyAgICAg ICAgYW1fc2F2ZV9DUFBGTEFHUz0iJENQUEZMQUdTIgorICAgICAgICBhbV9z YXZlX0xJQlM9IiRMSUJTIgorICAgICAgICBDUFBGTEFHUz0iJENQUEZMQUdT IC1JLi4vbGliaWNvbnYvaW5jbHVkZSIKKyAgICAgICAgTElCUz0iJExJQlMg Li4vbGliaWNvbnYvbGliLyRfbGlicy9saWJpY29udi5hIgorICAgICAgICBj YXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Cisv KiBlbmQgY29uZmRlZnMuaC4gICovCisjaW5jbHVkZSA8c3RkbGliLmg+Cisj aW5jbHVkZSA8aWNvbnYuaD4KK2ludAorbWFpbiAoKQoreworaWNvbnZfdCBj ZCA9IGljb252X29wZW4oIiIsIiIpOworICAgICAgICAgICBpY29udihjZCxO VUxMLE5VTEwsTlVMTCxOVUxMKTsKKyAgICAgICAgICAgaWNvbnZfY2xvc2Uo Y2QpOworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitpZiBhY19mbl9j X3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6CisgIElOQ0lDT05WPSItSS4u L2xpYmljb252L2luY2x1ZGUiCisgICAgICAgICAgTElCSUNPTlY9JyR7dG9w X2J1aWxkZGlyfScvLi4vbGliaWNvbnYvbGliLyRfbGlicy9saWJpY29udi5h CisgICAgICAgICAgTFRMSUJJQ09OVj0nJHt0b3BfYnVpbGRkaXJ9Jy8uLi9s aWJpY29udi9saWIvbGliaWNvbnYubGEKKyAgICAgICAgICBhbV9jdl9saWJf aWNvbnY9eWVzCisgICAgICAgICAgYW1fY3ZfZnVuY19pY29udj15ZXMKK2Zp CitybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0 IFwKKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAor ICAgICAgICBDUFBGTEFHUz0iJGFtX3NhdmVfQ1BQRkxBR1MiCisgICAgICAg IExJQlM9IiRhbV9zYXZlX0xJQlMiCisgICAgICAgIGlmIHRlc3QgIiRhbV9j dl9mdW5jX2ljb252IiA9ICJ5ZXMiOyB0aGVuCisgICAgICAgICAgYnJlYWsK KyAgICAgICAgZmkKKyAgICAgIGRvbmUKKyAgICBmaQorCisgICAgaWYgdGVz dCAiJGFtX2N2X2Z1bmNfaWNvbnYiICE9IHllczsgdGhlbgorICAgICAgYW1f c2F2ZV9DUFBGTEFHUz0iJENQUEZMQUdTIgorICAgICAgYW1fc2F2ZV9MSUJT PSIkTElCUyIKKyAgICAgIENQUEZMQUdTPSIkTElCUyAkSU5DSUNPTlYiCisg ICAgICBMSUJTPSIkTElCUyAkTElCSUNPTlYiCisgICAgICBjYXQgY29uZmRl ZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisvKiBlbmQgY29u ZmRlZnMuaC4gICovCisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8 aWNvbnYuaD4KK2ludAorbWFpbiAoKQoreworaWNvbnZfdCBjZCA9IGljb252 X29wZW4oIiIsIiIpOworICAgICAgICAgaWNvbnYoY2QsTlVMTCxOVUxMLE5V TEwsTlVMTCk7CisgICAgICAgICBpY29udl9jbG9zZShjZCk7CisgIDsKKyAg cmV0dXJuIDA7Cit9CitfQUNFT0YKK2lmIGFjX2ZuX2NfdHJ5X2xpbmsgIiRM SU5FTk8iOyB0aGVuIDoKKyAgYW1fY3ZfbGliX2ljb252PXllcworICAgICAg ICBhbV9jdl9mdW5jX2ljb252PXllcworZmkKK3JtIC1mIGNvcmUgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorICAgIGNvbmZ0ZXN0JGFj X2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisgICAgICBDUFBGTEFHUz0iJGFt X3NhdmVfQ1BQRkxBR1MiCisgICAgICBMSUJTPSIkYW1fc2F2ZV9MSUJTIgor ICAgIGZpCisKK2ZpCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IHJlc3VsdDogJGFtX2N2X2Z1bmNfaWNvbnYiID4mNQorJGFz X2VjaG8gIiRhbV9jdl9mdW5jX2ljb252IiA+JjY7IH0KKyAgaWYgdGVzdCAi JGFtX2N2X2Z1bmNfaWNvbnYiID0geWVzOyB0aGVuCisKKyRhc19lY2hvICIj ZGVmaW5lIEhBVkVfSUNPTlYgMSIgPj5jb25mZGVmcy5oCisKKyAgZmkKKyAg aWYgdGVzdCAiJGFtX2N2X2xpYl9pY29udiIgPSB5ZXM7IHRoZW4KKworICBm b3IgZWxlbWVudCBpbiAkSU5DSUNPTlY7IGRvCisgICAgaGF2ZWl0PQorICAg IGZvciB4IGluICRDUFBGTEFHUzsgZG8KKworICBhY2xfc2F2ZV9wcmVmaXg9 IiRwcmVmaXgiCisgIHByZWZpeD0iJGFjbF9maW5hbF9wcmVmaXgiCisgIGFj bF9zYXZlX2V4ZWNfcHJlZml4PSIkZXhlY19wcmVmaXgiCisgIGV4ZWNfcHJl Zml4PSIkYWNsX2ZpbmFsX2V4ZWNfcHJlZml4IgorICBldmFsIHg9XCIkeFwi CisgIGV4ZWNfcHJlZml4PSIkYWNsX3NhdmVfZXhlY19wcmVmaXgiCisgIHBy ZWZpeD0iJGFjbF9zYXZlX3ByZWZpeCIKKworICAgICAgaWYgdGVzdCAiWCR4 IiA9ICJYJGVsZW1lbnQiOyB0aGVuCisgICAgICAgIGhhdmVpdD15ZXMKKyAg ICAgICAgYnJlYWsKKyAgICAgIGZpCisgICAgZG9uZQorICAgIGlmIHRlc3Qg LXogIiRoYXZlaXQiOyB0aGVuCisgICAgICBDUFBGTEFHUz0iJHtDUFBGTEFH U30ke0NQUEZMQUdTOisgfSRlbGVtZW50IgorICAgIGZpCisgIGRvbmUKKwor ICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog Y2hlY2tpbmcgaG93IHRvIGxpbmsgd2l0aCBsaWJpY29udiIgPiY1CiskYXNf ZWNob19uICJjaGVja2luZyBob3cgdG8gbGluayB3aXRoIGxpYmljb252Li4u ICIgPiY2OyB9CisgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiByZXN1bHQ6ICRMSUJJQ09OViIgPiY1CiskYXNfZWNobyAi JExJQklDT05WIiA+JjY7IH0KKyAgZWxzZQorICAgIExJQklDT05WPQorICAg IExUTElCSUNPTlY9CisgIGZpCisKKworCisgIGlmIHRlc3QgIiRhbV9jdl9m dW5jX2ljb252IiA9IHllczsgdGhlbgorICAgIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIGljb252IGRl Y2xhcmF0aW9uIiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBpY29u diBkZWNsYXJhdGlvbi4uLiAiID4mNjsgfQorICAgIGlmIHRlc3QgIiR7YW1f Y3ZfcHJvdG9faWNvbnYrc2V0fSIgPSBzZXQ7IHRoZW4gOgorICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorCisgICAgICBjYXQgY29uZmRl ZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisvKiBlbmQgY29u ZmRlZnMuaC4gICovCisKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRl IDxpY29udi5oPgorZXh0ZXJuCisjaWZkZWYgX19jcGx1c3BsdXMKKyJDIgor I2VuZGlmCisjaWYgZGVmaW5lZChfX1NURENfXykgfHwgZGVmaW5lZChfX2Nw bHVzcGx1cykKK3NpemVfdCBpY29udiAoaWNvbnZfdCBjZCwgY2hhciAqICpp bmJ1Ziwgc2l6ZV90ICppbmJ5dGVzbGVmdCwgY2hhciAqICpvdXRidWYsIHNp emVfdCAqb3V0Ynl0ZXNsZWZ0KTsKICNlbHNlCiBzaXplX3QgaWNvbnYoKTsK ICNlbmRpZgpAQCAtNzc4NywxNjQgKzgzMjgsNiBAQCAkYXNfZWNobyAiJGFz X21lOiBXQVJOSU5HOiBleHBhdCBzdXBwb3J0IGRpc2FibGVkOyBzb21lIGZl YXR1cmVzIG1heSBiZSB1bmF2YWlsYQogICBIQVZFX0xJQkVYUEFUPW5vCiBl bHNlCiAKLSAgICAgIGlmIHRlc3QgIlgkcHJlZml4IiA9ICJYTk9ORSI7IHRo ZW4KLSAgICBhY2xfZmluYWxfcHJlZml4PSIkYWNfZGVmYXVsdF9wcmVmaXgi Ci0gIGVsc2UKLSAgICBhY2xfZmluYWxfcHJlZml4PSIkcHJlZml4IgotICBm aQotICBpZiB0ZXN0ICJYJGV4ZWNfcHJlZml4IiA9ICJYTk9ORSI7IHRoZW4K LSAgICBhY2xfZmluYWxfZXhlY19wcmVmaXg9JyR7cHJlZml4fScKLSAgZWxz ZQotICAgIGFjbF9maW5hbF9leGVjX3ByZWZpeD0iJGV4ZWNfcHJlZml4Igot ICBmaQotICBhY2xfc2F2ZV9wcmVmaXg9IiRwcmVmaXgiCi0gIHByZWZpeD0i JGFjbF9maW5hbF9wcmVmaXgiCi0gIGV2YWwgYWNsX2ZpbmFsX2V4ZWNfcHJl Zml4PVwiJGFjbF9maW5hbF9leGVjX3ByZWZpeFwiCi0gIHByZWZpeD0iJGFj bF9zYXZlX3ByZWZpeCIKLQotCi0jIENoZWNrIHdoZXRoZXIgLS13aXRoLWdu dS1sZCB3YXMgZ2l2ZW4uCi1pZiB0ZXN0ICIke3dpdGhfZ251X2xkK3NldH0i ID0gc2V0OyB0aGVuIDoKLSAgd2l0aHZhbD0kd2l0aF9nbnVfbGQ7IHRlc3Qg IiR3aXRodmFsIiA9IG5vIHx8IHdpdGhfZ251X2xkPXllcwotZWxzZQotICB3 aXRoX2dudV9sZD1ubwotZmkKLQotIyBQcmVwYXJlIFBBVEhfU0VQQVJBVE9S LgotIyBUaGUgdXNlciBpcyBhbHdheXMgcmlnaHQuCi1pZiB0ZXN0ICIke1BB VEhfU0VQQVJBVE9SK3NldH0iICE9IHNldDsgdGhlbgotICBlY2hvICIjISAv YmluL3NoIiA+Y29uZiQkLnNoCi0gIGVjaG8gICJleGl0IDAiICAgPj5jb25m JCQuc2gKLSAgY2htb2QgK3ggY29uZiQkLnNoCi0gIGlmIChQQVRIPSIvbm9u ZXhpc3RlbnQ7LiI7IGNvbmYkJC5zaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVu Ci0gICAgUEFUSF9TRVBBUkFUT1I9JzsnCi0gIGVsc2UKLSAgICBQQVRIX1NF UEFSQVRPUj06Ci0gIGZpCi0gIHJtIC1mIGNvbmYkJC5zaAotZmkKLWFjX3By b2c9bGQKLWlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0gICMgQ2hlY2sg aWYgZ2NjIC1wcmludC1wcm9nLW5hbWU9bGQgZ2l2ZXMgYSBwYXRoLgotICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNr aW5nIGZvciBsZCB1c2VkIGJ5IEdDQyIgPiY1Ci0kYXNfZWNob19uICJjaGVj a2luZyBmb3IgbGQgdXNlZCBieSBHQ0MuLi4gIiA+JjY7IH0KLSAgY2FzZSAk aG9zdCBpbgotICAqLSotbWluZ3cqKQotICAgICMgZ2NjIGxlYXZlcyBhIHRy YWlsaW5nIGNhcnJpYWdlIHJldHVybiB3aGljaCB1cHNldHMgbWluZ3cKLSAg ICBhY19wcm9nPWAoJENDIC1wcmludC1wcm9nLW5hbWU9bGQpIDI+JjUgfCB0 ciAtZCAnXDAxNSdgIDs7Ci0gICopCi0gICAgYWNfcHJvZz1gKCRDQyAtcHJp bnQtcHJvZy1uYW1lPWxkKSAyPiY1YCA7OwotICBlc2FjCi0gIGNhc2UgJGFj X3Byb2cgaW4KLSAgICAjIEFjY2VwdCBhYnNvbHV0ZSBwYXRocy4KLSAgICBb XFwvXSogfCBbQS1aYS16XTpbXFwvXSopCi0gICAgICByZV9kaXJlbHQ9Jy9b Xi9dW14vXSovXC5cLi8nCi0gICAgICAjIENhbm9uaWNhbGl6ZSB0aGUgcGF0 aCBvZiBsZAotICAgICAgYWNfcHJvZz1gZWNobyAkYWNfcHJvZ3wgc2VkICdz JVxcXFwlLyVnJ2AKLSAgICAgIHdoaWxlIGVjaG8gJGFjX3Byb2cgfCBncmVw ICIkcmVfZGlyZWx0IiA+IC9kZXYvbnVsbCAyPiYxOyBkbwotCWFjX3Byb2c9 YGVjaG8gJGFjX3Byb2d8IHNlZCAicyUkcmVfZGlyZWx0JS8lImAKLSAgICAg IGRvbmUKLSAgICAgIHRlc3QgLXogIiRMRCIgJiYgTEQ9IiRhY19wcm9nIgot ICAgICAgOzsKLSAgIiIpCi0gICAgIyBJZiBpdCBmYWlscywgdGhlbiBwcmV0 ZW5kIHdlIGFyZW4ndCB1c2luZyBHQ0MuCi0gICAgYWNfcHJvZz1sZAotICAg IDs7Ci0gICopCi0gICAgIyBJZiBpdCBpcyByZWxhdGl2ZSwgdGhlbiBzZWFy Y2ggZm9yIHRoZSBmaXJzdCBsZCBpbiBQQVRILgotICAgIHdpdGhfZ251X2xk PXVua25vd24KLSAgICA7OwotICBlc2FjCi1lbGlmIHRlc3QgIiR3aXRoX2du dV9sZCIgPSB5ZXM7IHRoZW4KLSAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgR05VIGxkIiA+JjUKLSRh c19lY2hvX24gImNoZWNraW5nIGZvciBHTlUgbGQuLi4gIiA+JjY7IH0KLWVs c2UKLSAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiBjaGVja2luZyBmb3Igbm9uLUdOVSBsZCIgPiY1Ci0kYXNfZWNob19uICJj aGVja2luZyBmb3Igbm9uLUdOVSBsZC4uLiAiID4mNjsgfQotZmkKLWlmIHRl c3QgIiR7YWNsX2N2X3BhdGhfTEQrc2V0fSIgPSBzZXQ7IHRoZW4gOgotICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotZWxzZQotICBpZiB0ZXN0IC16 ICIkTEQiOyB0aGVuCi0gIElGUz0iJHtJRlM9IAl9IjsgYWNfc2F2ZV9pZnM9 IiRJRlMiOyBJRlM9IiR7SUZTfSR7UEFUSF9TRVBBUkFUT1ItOn0iCi0gIGZv ciBhY19kaXIgaW4gJFBBVEg7IGRvCi0gICAgdGVzdCAteiAiJGFjX2RpciIg JiYgYWNfZGlyPS4KLSAgICBpZiB0ZXN0IC1mICIkYWNfZGlyLyRhY19wcm9n IiB8fCB0ZXN0IC1mICIkYWNfZGlyLyRhY19wcm9nJGFjX2V4ZWV4dCI7IHRo ZW4KLSAgICAgIGFjbF9jdl9wYXRoX0xEPSIkYWNfZGlyLyRhY19wcm9nIgot ICAgICAgIyBDaGVjayB0byBzZWUgaWYgdGhlIHByb2dyYW0gaXMgR05VIGxk LiAgSSdkIHJhdGhlciB1c2UgLS12ZXJzaW9uLAotICAgICAgIyBidXQgYXBw YXJlbnRseSBzb21lIEdOVSBsZCdzIG9ubHkgYWNjZXB0IC12LgotICAgICAg IyBCcmVhayBvbmx5IGlmIGl0IHdhcyB0aGUgR05VL25vbi1HTlUgbGQgdGhh dCB3ZSBwcmVmZXIuCi0gICAgICBpZiAiJGFjbF9jdl9wYXRoX0xEIiAtdiAy PiYxIDwgL2Rldi9udWxsIHwgZWdyZXAgJyhHTlV8d2l0aCBCRkQpJyA+IC9k ZXYvbnVsbDsgdGhlbgotCXRlc3QgIiR3aXRoX2dudV9sZCIgIT0gbm8gJiYg YnJlYWsKLSAgICAgIGVsc2UKLQl0ZXN0ICIkd2l0aF9nbnVfbGQiICE9IHll cyAmJiBicmVhawotICAgICAgZmkKLSAgICBmaQotICBkb25lCi0gIElGUz0i JGFjX3NhdmVfaWZzIgotZWxzZQotICBhY2xfY3ZfcGF0aF9MRD0iJExEIiAj IExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4K LWZpCi1maQotCi1MRD0iJGFjbF9jdl9wYXRoX0xEIgotaWYgdGVzdCAtbiAi JExEIjsgdGhlbgotICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IHJlc3VsdDogJExEIiA+JjUKLSRhc19lY2hvICIkTEQiID4m NjsgfQotZWxzZQotICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IHJlc3VsdDogbm8iID4mNQotJGFzX2VjaG8gIm5vIiA+JjY7 IH0KLWZpCi10ZXN0IC16ICIkTEQiICYmIGFzX2ZuX2Vycm9yICJubyBhY2Nl cHRhYmxlIGxkIGZvdW5kIGluIFwkUEFUSCIgIiRMSU5FTk8iIDUKLXsgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg aWYgdGhlIGxpbmtlciAoJExEKSBpcyBHTlUgbGQiID4mNQotJGFzX2VjaG9f biAiY2hlY2tpbmcgaWYgdGhlIGxpbmtlciAoJExEKSBpcyBHTlUgbGQuLi4g IiA+JjY7IH0KLWlmIHRlc3QgIiR7YWNsX2N2X3Byb2dfZ251X2xkK3NldH0i ID0gc2V0OyB0aGVuIDoKLSAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK LWVsc2UKLSAgIyBJJ2QgcmF0aGVyIHVzZSAtLXZlcnNpb24gaGVyZSwgYnV0 IGFwcGFyZW50bHkgc29tZSBHTlUgbGQncyBvbmx5IGFjY2VwdCAtdi4KLWlm ICRMRCAtdiAyPiYxIDwvZGV2L251bGwgfCBlZ3JlcCAnKEdOVXx3aXRoIEJG RCknIDE+JjU7IHRoZW4KLSAgYWNsX2N2X3Byb2dfZ251X2xkPXllcwotZWxz ZQotICBhY2xfY3ZfcHJvZ19nbnVfbGQ9bm8KLWZpCi1maQoteyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY2xf Y3ZfcHJvZ19nbnVfbGQiID4mNQotJGFzX2VjaG8gIiRhY2xfY3ZfcHJvZ19n bnVfbGQiID4mNjsgfQotd2l0aF9nbnVfbGQ9JGFjbF9jdl9wcm9nX2dudV9s ZAotCi0KLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBjaGVja2luZyBmb3Igc2hhcmVkIGxpYnJhcnkgcnVuIHBhdGgg b3JpZ2luIiA+JjUKLSRhc19lY2hvX24gImNoZWNraW5nIGZvciBzaGFyZWQg bGlicmFyeSBydW4gcGF0aCBvcmlnaW4uLi4gIiA+JjY7IH0KLWlmIHRlc3Qg IiR7YWNsX2N2X3JwYXRoK3NldH0iID0gc2V0OyB0aGVuIDoKLSAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKLWVsc2UKLQotICAgIENDPSIkQ0MiIEdD Qz0iJEdDQyIgTERGTEFHUz0iJExERkxBR1MiIExEPSIkTEQiIHdpdGhfZ251 X2xkPSIkd2l0aF9nbnVfbGQiIFwKLSAgICAke0NPTkZJR19TSEVMTC0vYmlu L3NofSAiJGFjX2F1eF9kaXIvY29uZmlnLnJwYXRoIiAiJGhvc3QiID4gY29u ZnRlc3Quc2gKLSAgICAuIC4vY29uZnRlc3Quc2gKLSAgICBybSAtZiAuL2Nv bmZ0ZXN0LnNoCi0gICAgYWNsX2N2X3JwYXRoPWRvbmUKLQotZmkKLXsgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAk YWNsX2N2X3JwYXRoIiA+JjUKLSRhc19lY2hvICIkYWNsX2N2X3JwYXRoIiA+ JjY7IH0KLSAgd2w9IiRhY2xfY3Zfd2wiCi0gIGxpYmV4dD0iJGFjbF9jdl9s aWJleHQiCi0gIHNobGliZXh0PSIkYWNsX2N2X3NobGliZXh0IgotICBoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjPSIkYWNsX2N2X2hhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMiCi0gIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9IiRh Y2xfY3ZfaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIKLSAgaGFyZGNvZGVf ZGlyZWN0PSIkYWNsX2N2X2hhcmRjb2RlX2RpcmVjdCIKLSAgaGFyZGNvZGVf bWludXNfTD0iJGFjbF9jdl9oYXJkY29kZV9taW51c19MIgotICAgICMgQ2hl Y2sgd2hldGhlciAtLWVuYWJsZS1ycGF0aCB3YXMgZ2l2ZW4uCi1pZiB0ZXN0 ICIke2VuYWJsZV9ycGF0aCtzZXR9IiA9IHNldDsgdGhlbiA6Ci0gIGVuYWJs ZXZhbD0kZW5hYmxlX3JwYXRoOyA6Ci1lbHNlCi0gIGVuYWJsZV9ycGF0aD15 ZXMKLWZpCi0KLQotCiAKIAogCg== --=-z+1gPKT4zyTVZWNb/c5p--