From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out-so.shaw.ca (smtp-out-so.shaw.ca [64.59.136.139]) by sourceware.org (Postfix) with ESMTPS id 7C0CA3844041 for ; Sat, 4 Jul 2020 19:35:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 7C0CA3844041 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=SystematicSw.ab.ca Authentication-Results: sourceware.org; spf=none smtp.mailfrom=brian.inglis@systematicsw.ab.ca Received: from [192.168.1.104] ([24.64.172.44]) by shaw.ca with ESMTP id rnx4jmDjEYYpxrnx6juaFX; Sat, 04 Jul 2020 13:35:56 -0600 X-Authority-Analysis: v=2.3 cv=OubUNx3t c=1 sm=1 tr=0 a=kiZT5GMN3KAWqtYcXc+/4Q==:117 a=kiZT5GMN3KAWqtYcXc+/4Q==:17 a=r77TgQKjGQsHNAKrUKIA:9 a=CgB9Z3FKU58EV6XoOGcA:9 a=QEXdDO2ut3YA:10 a=rnL48rw_3w9B6wBhe10A:9 a=ITdVHhY7-e0A:10 Reply-To: cygwin-apps@cygwin.com To: cygwin-apps@cygwin.com From: Brian Inglis Autocrypt: addr=Brian.Inglis@SystematicSw.ab.ca; prefer-encrypt=mutual; keydata= mDMEXopx8xYJKwYBBAHaRw8BAQdAnCK0qv/xwUCCZQoA9BHRYpstERrspfT0NkUWQVuoePa0 LkJyaWFuIEluZ2xpcyA8QnJpYW4uSW5nbGlzQFN5c3RlbWF0aWNTdy5hYi5jYT6IlgQTFggA PhYhBMM5/lbU970GBS2bZB62lxu92I8YBQJeinHzAhsDBQkJZgGABQsJCAcCBhUKCQgLAgQW AgMBAh4BAheAAAoJEB62lxu92I8Y0ioBAI8xrggNxziAVmr+Xm6nnyjoujMqWcq3oEhlYGAO WacZAQDFtdDx2koSVSoOmfaOyRTbIWSf9/Cjai29060fsmdsDLg4BF6KcfMSCisGAQQBl1UB BQEBB0Awv8kHI2PaEgViDqzbnoe8B9KMHoBZLS92HdC7ZPh8HQMBCAeIfgQYFggAJhYhBMM5 /lbU970GBS2bZB62lxu92I8YBQJeinHzAhsMBQkJZgGAAAoJEB62lxu92I8YZwUBAJw/74rF IyaSsGI7ewCdCy88Lce/kdwX7zGwid+f8NZ3AQC/ezTFFi5obXnyMxZJN464nPXiggtT9gN5 RSyTY8X+AQ== Organization: Systematic Software Subject: cygport install infinite loop in src_postinstall under __prep_libtool_modules Message-ID: <359290a2-b299-ad90-5083-30789099a3eb@SystematicSw.ab.ca> Date: Sat, 4 Jul 2020 13:35:54 -0600 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------B771A4A51ED87DFBC667B27E" Content-Language: en-CA X-CMAE-Envelope: MS4wfC6x+ySTArP/NKblr9WDOpyt8Cr7yjscd+zvW/o27II8LszTxoNdhExquRNXSeJJg8ueBS7oEs8tugQyI22x/m2FynezXJmUOS0EcAY/fN1zfPXaNKYS da6ULiGh4NPFDoXjAJ6IiIiUiLjz3xBeoYyLXXZvKQI9X1YLlmJfMYRioSE4XfpDW85CgtXuU+yvmQ== X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00, KAM_DMARC_STATUS, KAM_LAZY_DOMAIN_SECURITY, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=no autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: cygwin-apps@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Cygwin package maintainer discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 Jul 2020 19:35:59 -0000 This is a multi-part message in MIME format. --------------B771A4A51ED87DFBC667B27E Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit See attached cygport --debug ...cygport install log. Running cygport ... install, src_postinstall under __prep_libtool_modules after "Fixing libtool modules:" does not find dll in: $ find wget2-1.99.2-1.x86_64/ -name 'cygwget*' wget2-1.99.2-1.x86_64/build/libwget/.libs/cygwget-0.dll wget2-1.99.2-1.x86_64/inst/usr/bin/cygwget-0.dll so it loops on /usr/share/cygport/lib/src_postinst.cygpart:1297ff: while [ $(readlink -f ${ltlibdir}/${dlname%/bin/*}) != ${D}$(__host_prefix) ] do dlname=../${dlname} done until readlink returns root and just keeps on going, possibly because my Cygwin home is a symlink to my Windows home, but this approach would have problems with any symlinks along the path to the cygport dir, as $D is not similarly resolved. I can wrap the other path in the condition in $(readlink -f ...) and it works normally but this may not be the best approach here. Alternatives, suggestions? In this pre-package there is a check/test program and a DLL - is there another package I could use as a template for how to split this into two packages? -- Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada This email may be disturbing to some readers as it contains too much technical detail. Reader discretion is advised. [Data in IEC units and prefixes, physical quantities in SI.] --------------B771A4A51ED87DFBC667B27E Content-Type: text/plain; charset=UTF-8; name="cygport-install-src_postinstall-prep_libtool_modules-loop.log" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="cygport-install-src_postinstall-prep_libtool_modules-loop.lo"; filename*1="g" Li4uCi4uLgouLi4KKyBfX3ByZXBfbGlidG9vbF9tb2R1bGVzCisgbG9jYWwgbHRsaWJzIGx0 bGliZGlyIGx0bGlibmFtZSBsdHZlcnNpb24KKyBsb2NhbCBkbG5hbWUgb3JpZ2RsbmFtZSBs aWJyYXJ5X25hbWVzIG9sZF9saWJyYXJ5IGluaGVyaXRlZF9saW5rZXJfZmxhZ3MgZGVwZW5k ZW5jeV9saWJzIHdlYWtfbGlicmFyeV9uYW1lcyBjdXJyZW50IGFnZSByZXZpc2lvbiBpbnN0 YWxsZWQgc2hvdWxkbm90bGluayBkbG9wZW4gZGxwcmVvcGVuIGxpYmRpciByZXBfcmVxdWly ZXMKKyBsb2NhbCBrZWVwPW5vbmUKKyBwdXNoZCAvaG9tZS8kVVNFUi9zcmMvY3lnd2luL3dn ZXQyL3dnZXQyLTEuOTkuMi0xLng4Nl82NC9pbnN0CisgYnVpbHRpbiBwdXNoZCAvaG9tZS8k VVNFUi9zcmMvY3lnd2luL3dnZXQyL3dnZXQyLTEuOTkuMi0xLng4Nl82NC9pbnN0CisrIGZp bmQgdXNyIC1uYW1lICcqLmxhJworIGx0bGlicz11c3IvbGliL2xpYndnZXQubGEKKyBkZWZp bmVkIGx0bGlicworICgoICAxICE9IDEgICkpCisgJ1snIC1uIHVzci9saWIvbGlid2dldC5s YSAnXScKKyByZXR1cm4gMAorIGVjaG8gJ0ZpeGluZyBsaWJ0b29sIG1vZHVsZXM6JwpGaXhp bmcgbGlidG9vbCBtb2R1bGVzOgorKyBncmVwICdeIyBsaWJ0b29sIChHTlUnIC91c3IvYmlu L2xpYnRvb2wKKysgY3V0IC1kICcgJyAtZiAyLQorIGx0dmVyc2lvbj0nbGlidG9vbCAoR05V IGxpYnRvb2wpIDIuNC42JworIGZvciBsaWJfbGEgaW4gJHtsdGxpYnN9CisgZ3JlcCAtcSAn bGlidG9vbCBsaWJyYXJ5IGZpbGUnIHVzci9saWIvbGlid2dldC5sYQorIHNvdXJjZSB1c3Iv bGliL2xpYndnZXQubGEKKysgZGxuYW1lPS4uL2Jpbi9jeWd3Z2V0LTAuZGxsCisrIGxpYnJh cnlfbmFtZXM9bGlid2dldC5kbGwuYQorKyBvbGRfbGlicmFyeT0KKysgaW5oZXJpdGVkX2xp bmtlcl9mbGFncz0KKysgZGVwZW5kZW5jeV9saWJzPScgLWxpY29udiAtbGludGwgLWxwdGhy ZWFkIC1scGNyZTItOCAtbGlkbjIgLWx6c3RkIC1sYnJvdGxpZGVjIC1sbHptYSAtbHogLWxn cGdtZSAtbGJ6MiAtbG5naHR0cDIgLWxwc2wgLWxuZXR0bGUnCisrIHdlYWtfbGlicmFyeV9u YW1lcz0KKysgY3VycmVudD0wCisrIGFnZT0wCisrIHJldmlzaW9uPTAKKysgaW5zdGFsbGVk PXllcworKyBzaG91bGRub3RsaW5rPW5vCisrIGRsb3Blbj0KKysgZGxwcmVvcGVuPQorKyBs aWJkaXI9L3Vzci9saWIKKyBsdGxpYmRpcj11c3IvbGliCisgZm9yIGwgaW4gZGxuYW1lIGxp YnJhcnlfbmFtZXMgb2xkX2xpYnJhcnkKKyBkZWZpbmVkIGRsbmFtZQorICgoICAxICE9IDEg ICkpCisgJ1snIC1uIC4uL2Jpbi9jeWd3Z2V0LTAuZGxsICddJworIHJldHVybiAwCisgZm9y IGlsIGluICR7IWx9CisgJ1snICchJyAtZiB1c3IvbGliLy4uL2Jpbi9jeWd3Z2V0LTAuZGxs ICddJworIGZvciBsIGluIGRsbmFtZSBsaWJyYXJ5X25hbWVzIG9sZF9saWJyYXJ5CisgZGVm aW5lZCBsaWJyYXJ5X25hbWVzCisgKCggIDEgIT0gMSAgKSkKKyAnWycgLW4gbGlid2dldC5k bGwuYSAnXScKKyByZXR1cm4gMAorIGZvciBpbCBpbiAkeyFsfQorICdbJyAnIScgLWYgdXNy L2xpYi9saWJ3Z2V0LmRsbC5hICddJworIGZvciBsIGluIGRsbmFtZSBsaWJyYXJ5X25hbWVz IG9sZF9saWJyYXJ5CisgZGVmaW5lZCBvbGRfbGlicmFyeQorICgoICAxICE9IDEgICkpCisg J1snIC1uICcnICddJworIHJldHVybiAxCisgJ1snIHhubyAnIT0nIHh5ZXMgJ10nCisgJ1sn IHguLi9iaW4vY3lnd2dldC0wLmRsbCA9IHggJ10nCisgY2FzZSAke0NUQVJHRVR9IGluCisg J1snIC1mIHVzci9saWIvbGlid2dldC5kbGwuYSAnXScKKyBjaG1vZCAwNjQ0IHVzci9saWIv bGlid2dldC5kbGwuYQorIHRlc3QgeDg2XzY0LXBjLWN5Z3dpbiAnIT0nIHg4Nl82NC1wYy1j eWd3aW4KKyBvcmlnZGxuYW1lPS4uL2Jpbi9jeWd3Z2V0LTAuZGxsCisrIHJlYWRsaW5rIC1m IHVzci9saWIvLi4KKysgX19ob3N0X3ByZWZpeAorKyBsb2NhbCBwcmVmaXgKKysgX19ob3N0 X2lzX2VtYmVkZGVkCisrIGxvY2FsIHJldD0xCisrIGNhc2UgJHtDSE9TVH0gaW4KKysgcmV0 dXJuIDEKKysgW1sgeDg2XzY0LXBjLWN5Z3dpbiA9fiAtbWluZ3czMiBdXQorKyBpbmhlcml0 ZWQgY3Jvc3MKKysgbG9jYWwgY2xhc3MKKysgbG9jYWwgY2xhc3NuYW1lCisrIGZvciBjbGFz cyBpbiAiJEAiCisrIGNsYXNzbmFtZT1jcm9zcworKyBkZWZpbmVkIF9jcm9zc19DWUdDTEFT U18KKysgKCggIDEgIT0gMSAgKSkKKysgJ1snIC1uICcnICddJworKyByZXR1cm4gMQorKyBy ZXR1cm4gMQorKyBwcmVmaXg9L3VzcgorKyBlY2hvIC1uIC91c3IKKyAnWycgL3Byb2MvY3ln ZHJpdmUvYy9Vc2Vycy8kdXNlci9zcmMvY3lnd2luL3dnZXQyL3dnZXQyLTEuOTkuMi0xLng4 Nl82NC9pbnN0L3VzciAnIT0nIC9ob21lLyRVU0VSL3NyYy9jeWd3aW4vd2dldDIvd2dldDIt MS45OS4yLTEueDg2XzY0L2luc3QvdXNyICddJworIGRsbmFtZT0uLi8uLi9iaW4vY3lnd2dl dC0wLmRsbAorKyByZWFkbGluayAtZiB1c3IvbGliLy4uLy4uCisrIF9faG9zdF9wcmVmaXgK KysgbG9jYWwgcHJlZml4CisrIF9faG9zdF9pc19lbWJlZGRlZAorKyBsb2NhbCByZXQ9MQor KyBjYXNlICR7Q0hPU1R9IGluCisrIHJldHVybiAxCisrIFtbIHg4Nl82NC1wYy1jeWd3aW4g PX4gLW1pbmd3MzIgXV0KKysgaW5oZXJpdGVkIGNyb3NzCisrIGxvY2FsIGNsYXNzCisrIGxv Y2FsIGNsYXNzbmFtZQorKyBmb3IgY2xhc3MgaW4gIiRAIgorKyBjbGFzc25hbWU9Y3Jvc3MK KysgZGVmaW5lZCBfY3Jvc3NfQ1lHQ0xBU1NfCisrICgoICAxICE9IDEgICkpCisrICdbJyAt biAnJyAnXScKKysgcmV0dXJuIDEKKysgcmV0dXJuIDEKKysgcHJlZml4PS91c3IKKysgZWNo byAtbiAvdXNyCisgJ1snIC9wcm9jL2N5Z2RyaXZlL2MvVXNlcnMvJHVzZXIvc3JjL2N5Z3dp bi93Z2V0Mi93Z2V0Mi0xLjk5LjItMS54ODZfNjQvaW5zdCAnIT0nIC9ob21lLyRVU0VSL3Ny Yy9jeWd3aW4vd2dldDIvd2dldDItMS45OS4yLTEueDg2XzY0L2luc3QvdXNyICddJworIGRs bmFtZT0uLi8uLi8uLi9iaW4vY3lnd2dldC0wLmRsbAorKyByZWFkbGluayAtZiB1c3IvbGli Ly4uLy4uLy4uCisrIF9faG9zdF9wcmVmaXgKKysgbG9jYWwgcHJlZml4CisrIF9faG9zdF9p c19lbWJlZGRlZAorKyBsb2NhbCByZXQ9MQorKyBjYXNlICR7Q0hPU1R9IGluCisrIHJldHVy biAxCisrIFtbIHg4Nl82NC1wYy1jeWd3aW4gPX4gLW1pbmd3MzIgXV0KKysgaW5oZXJpdGVk IGNyb3NzCisrIGxvY2FsIGNsYXNzCisrIGxvY2FsIGNsYXNzbmFtZQorKyBmb3IgY2xhc3Mg aW4gIiRAIgorKyBjbGFzc25hbWU9Y3Jvc3MKKysgZGVmaW5lZCBfY3Jvc3NfQ1lHQ0xBU1Nf CisrICgoICAxICE9IDEgICkpCisrICdbJyAtbiAnJyAnXScKKysgcmV0dXJuIDEKKysgcmV0 dXJuIDEKKysgcHJlZml4PS91c3IKKysgZWNobyAtbiAvdXNyCisgJ1snIC9wcm9jL2N5Z2Ry aXZlL2MvVXNlcnMvJHVzZXIvc3JjL2N5Z3dpbi93Z2V0Mi93Z2V0Mi0xLjk5LjItMS54ODZf NjQgJyE9JyAvaG9tZS8kVVNFUi9zcmMvY3lnd2luL3dnZXQyL3dnZXQyLTEuOTkuMi0xLng4 Nl82NC9pbnN0L3VzciAnXScKKyBkbG5hbWU9Li4vLi4vLi4vLi4vYmluL2N5Z3dnZXQtMC5k bGwKKysgcmVhZGxpbmsgLWYgdXNyL2xpYi8uLi8uLi8uLi8uLgorKyBfX2hvc3RfcHJlZml4 CisrIGxvY2FsIHByZWZpeAorKyBfX2hvc3RfaXNfZW1iZWRkZWQKKysgbG9jYWwgcmV0PTEK KysgY2FzZSAke0NIT1NUfSBpbgorKyByZXR1cm4gMQorKyBbWyB4ODZfNjQtcGMtY3lnd2lu ID1+IC1taW5ndzMyIF1dCisrIGluaGVyaXRlZCBjcm9zcworKyBsb2NhbCBjbGFzcworKyBs b2NhbCBjbGFzc25hbWUKKysgZm9yIGNsYXNzIGluICIkQCIKKysgY2xhc3NuYW1lPWNyb3Nz CisrIGRlZmluZWQgX2Nyb3NzX0NZR0NMQVNTXworKyAoKCAgMSAhPSAxICApKQorKyAnWycg LW4gJycgJ10nCisrIHJldHVybiAxCisrIHJldHVybiAxCisrIHByZWZpeD0vdXNyCisrIGVj aG8gLW4gL3VzcgorICdbJyAvcHJvYy9jeWdkcml2ZS9jL1VzZXJzLyR1c2VyL3NyYy9jeWd3 aW4vd2dldDIgJyE9JyAvaG9tZS8kVVNFUi9zcmMvY3lnd2luL3dnZXQyL3dnZXQyLTEuOTku Mi0xLng4Nl82NC9pbnN0L3VzciAnXScKKyBkbG5hbWU9Li4vLi4vLi4vLi4vLi4vYmluL2N5 Z3dnZXQtMC5kbGwKKysgcmVhZGxpbmsgLWYgdXNyL2xpYi8uLi8uLi8uLi8uLi8uLgorKyBf X2hvc3RfcHJlZml4CisrIGxvY2FsIHByZWZpeAorKyBfX2hvc3RfaXNfZW1iZWRkZWQKKysg bG9jYWwgcmV0PTEKKysgY2FzZSAke0NIT1NUfSBpbgorKyByZXR1cm4gMQorKyBbWyB4ODZf NjQtcGMtY3lnd2luID1+IC1taW5ndzMyIF1dCisrIGluaGVyaXRlZCBjcm9zcworKyBsb2Nh bCBjbGFzcworKyBsb2NhbCBjbGFzc25hbWUKKysgZm9yIGNsYXNzIGluICIkQCIKKysgY2xh c3NuYW1lPWNyb3NzCisrIGRlZmluZWQgX2Nyb3NzX0NZR0NMQVNTXworKyAoKCAgMSAhPSAx ICApKQorKyAnWycgLW4gJycgJ10nCisrIHJldHVybiAxCisrIHJldHVybiAxCisrIHByZWZp eD0vdXNyCisrIGVjaG8gLW4gL3VzcgorICdbJyAvcHJvYy9jeWdkcml2ZS9jL1VzZXJzLyR1 c2VyL3NyYy9jeWd3aW4gJyE9JyAvaG9tZS8kVVNFUi9zcmMvY3lnd2luL3dnZXQyL3dnZXQy LTEuOTkuMi0xLng4Nl82NC9pbnN0L3VzciAnXScKKyBkbG5hbWU9Li4vLi4vLi4vLi4vLi4v Li4vYmluL2N5Z3dnZXQtMC5kbGwKKysgcmVhZGxpbmsgLWYgdXNyL2xpYi8uLi8uLi8uLi8u Li8uLi8uLgorKyBfX2hvc3RfcHJlZml4CisrIGxvY2FsIHByZWZpeAorKyBfX2hvc3RfaXNf ZW1iZWRkZWQKKysgbG9jYWwgcmV0PTEKKysgY2FzZSAke0NIT1NUfSBpbgorKyByZXR1cm4g MQorKyBbWyB4ODZfNjQtcGMtY3lnd2luID1+IC1taW5ndzMyIF1dCisrIGluaGVyaXRlZCBj cm9zcworKyBsb2NhbCBjbGFzcworKyBsb2NhbCBjbGFzc25hbWUKKysgZm9yIGNsYXNzIGlu ICIkQCIKKysgY2xhc3NuYW1lPWNyb3NzCisrIGRlZmluZWQgX2Nyb3NzX0NZR0NMQVNTXwor KyAoKCAgMSAhPSAxICApKQorKyAnWycgLW4gJycgJ10nCisrIHJldHVybiAxCisrIHJldHVy biAxCisrIHByZWZpeD0vdXNyCisrIGVjaG8gLW4gL3VzcgorICdbJyAvcHJvYy9jeWdkcml2 ZS9jL1VzZXJzLyR1c2VyL3NyYyAnIT0nIC9ob21lLyRVU0VSL3NyYy9jeWd3aW4vd2dldDIv d2dldDItMS45OS4yLTEueDg2XzY0L2luc3QvdXNyICddJworIGRsbmFtZT0uLi8uLi8uLi8u Li8uLi8uLi8uLi9iaW4vY3lnd2dldC0wLmRsbAorKyByZWFkbGluayAtZiB1c3IvbGliLy4u Ly4uLy4uLy4uLy4uLy4uLy4uCisrIF9faG9zdF9wcmVmaXgKKysgbG9jYWwgcHJlZml4Cisr IF9faG9zdF9pc19lbWJlZGRlZAorKyBsb2NhbCByZXQ9MQorKyBjYXNlICR7Q0hPU1R9IGlu CisrIHJldHVybiAxCisrIFtbIHg4Nl82NC1wYy1jeWd3aW4gPX4gLW1pbmd3MzIgXV0KKysg aW5oZXJpdGVkIGNyb3NzCisrIGxvY2FsIGNsYXNzCisrIGxvY2FsIGNsYXNzbmFtZQorKyBm b3IgY2xhc3MgaW4gIiRAIgorKyBjbGFzc25hbWU9Y3Jvc3MKKysgZGVmaW5lZCBfY3Jvc3Nf Q1lHQ0xBU1NfCisrICgoICAxICE9IDEgICkpCisrICdbJyAtbiAnJyAnXScKKysgcmV0dXJu IDEKKysgcmV0dXJuIDEKKysgcHJlZml4PS91c3IKKysgZWNobyAtbiAvdXNyCisgJ1snIC9w cm9jL2N5Z2RyaXZlL2MvVXNlcnMvJHVzZXIgJyE9JyAvaG9tZS8kVVNFUi9zcmMvY3lnd2lu L3dnZXQyL3dnZXQyLTEuOTkuMi0xLng4Nl82NC9pbnN0L3VzciAnXScKKyBkbG5hbWU9Li4v Li4vLi4vLi4vLi4vLi4vLi4vLi4vYmluL2N5Z3dnZXQtMC5kbGwKKysgcmVhZGxpbmsgLWYg dXNyL2xpYi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLgorKyBfX2hvc3RfcHJlZml4CisrIGxv Y2FsIHByZWZpeAorKyBfX2hvc3RfaXNfZW1iZWRkZWQKKysgbG9jYWwgcmV0PTEKKysgY2Fz ZSAke0NIT1NUfSBpbgorKyByZXR1cm4gMQorKyBbWyB4ODZfNjQtcGMtY3lnd2luID1+IC1t aW5ndzMyIF1dCisrIGluaGVyaXRlZCBjcm9zcworKyBsb2NhbCBjbGFzcworKyBsb2NhbCBj bGFzc25hbWUKKysgZm9yIGNsYXNzIGluICIkQCIKKysgY2xhc3NuYW1lPWNyb3NzCisrIGRl ZmluZWQgX2Nyb3NzX0NZR0NMQVNTXworKyAoKCAgMSAhPSAxICApKQorKyAnWycgLW4gJycg J10nCisrIHJldHVybiAxCisrIHJldHVybiAxCisrIHByZWZpeD0vdXNyCisrIGVjaG8gLW4g L3VzcgorICdbJyAvcHJvYy9jeWdkcml2ZS9jL1VzZXJzICchPScgL2hvbWUvJFVTRVIvc3Jj L2N5Z3dpbi93Z2V0Mi93Z2V0Mi0xLjk5LjItMS54ODZfNjQvaW5zdC91c3IgJ10nCisgZGxu YW1lPS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2Jpbi9jeWd3Z2V0LTAuZGxsCisrIHJl YWRsaW5rIC1mIHVzci9saWIvLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4KKysgX19ob3N0 X3ByZWZpeAorKyBsb2NhbCBwcmVmaXgKKysgX19ob3N0X2lzX2VtYmVkZGVkCisrIGxvY2Fs IHJldD0xCisrIGNhc2UgJHtDSE9TVH0gaW4KKysgcmV0dXJuIDEKKysgW1sgeDg2XzY0LXBj LWN5Z3dpbiA9fiAtbWluZ3czMiBdXQorKyBpbmhlcml0ZWQgY3Jvc3MKKysgbG9jYWwgY2xh c3MKKysgbG9jYWwgY2xhc3NuYW1lCisrIGZvciBjbGFzcyBpbiAiJEAiCisrIGNsYXNzbmFt ZT1jcm9zcworKyBkZWZpbmVkIF9jcm9zc19DWUdDTEFTU18KKysgKCggIDEgIT0gMSAgKSkK KysgJ1snIC1uICcnICddJworKyByZXR1cm4gMQorKyByZXR1cm4gMQorKyBwcmVmaXg9L3Vz cgorKyBlY2hvIC1uIC91c3IKKyAnWycgL3Byb2MvY3lnZHJpdmUvYyAnIT0nIC9ob21lLyRV U0VSL3NyYy9jeWd3aW4vd2dldDIvd2dldDItMS45OS4yLTEueDg2XzY0L2luc3QvdXNyICdd JworIGRsbmFtZT0uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9iaW4vY3lnd2dldC0w LmRsbAorKyByZWFkbGluayAtZiB1c3IvbGliLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4u Ly4uCisrIF9faG9zdF9wcmVmaXgKKysgbG9jYWwgcHJlZml4CisrIF9faG9zdF9pc19lbWJl ZGRlZAorKyBsb2NhbCByZXQ9MQorKyBjYXNlICR7Q0hPU1R9IGluCisrIHJldHVybiAxCisr IFtbIHg4Nl82NC1wYy1jeWd3aW4gPX4gLW1pbmd3MzIgXV0KKysgaW5oZXJpdGVkIGNyb3Nz CisrIGxvY2FsIGNsYXNzCisrIGxvY2FsIGNsYXNzbmFtZQorKyBmb3IgY2xhc3MgaW4gIiRA IgorKyBjbGFzc25hbWU9Y3Jvc3MKKysgZGVmaW5lZCBfY3Jvc3NfQ1lHQ0xBU1NfCisrICgo ICAxICE9IDEgICkpCisrICdbJyAtbiAnJyAnXScKKysgcmV0dXJuIDEKKysgcmV0dXJuIDEK KysgcHJlZml4PS91c3IKKysgZWNobyAtbiAvdXNyCisgJ1snIC9wcm9jL2N5Z2RyaXZlICch PScgL2hvbWUvJFVTRVIvc3JjL2N5Z3dpbi93Z2V0Mi93Z2V0Mi0xLjk5LjItMS54ODZfNjQv aW5zdC91c3IgJ10nCisgZGxuYW1lPS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4u L2Jpbi9jeWd3Z2V0LTAuZGxsCisrIHJlYWRsaW5rIC1mIHVzci9saWIvLi4vLi4vLi4vLi4v Li4vLi4vLi4vLi4vLi4vLi4vLi4KKysgX19ob3N0X3ByZWZpeAorKyBsb2NhbCBwcmVmaXgK KysgX19ob3N0X2lzX2VtYmVkZGVkCisrIGxvY2FsIHJldD0xCisrIGNhc2UgJHtDSE9TVH0g aW4KKysgcmV0dXJuIDEKKysgW1sgeDg2XzY0LXBjLWN5Z3dpbiA9fiAtbWluZ3czMiBdXQor KyBpbmhlcml0ZWQgY3Jvc3MKKysgbG9jYWwgY2xhc3MKKysgbG9jYWwgY2xhc3NuYW1lCisr IGZvciBjbGFzcyBpbiAiJEAiCisrIGNsYXNzbmFtZT1jcm9zcworKyBkZWZpbmVkIF9jcm9z c19DWUdDTEFTU18KKysgKCggIDEgIT0gMSAgKSkKKysgJ1snIC1uICcnICddJworKyByZXR1 cm4gMQorKyByZXR1cm4gMQorKyBwcmVmaXg9L3VzcgorKyBlY2hvIC1uIC91c3IKKyAnWycg L3Byb2MgJyE9JyAvaG9tZS8kVVNFUi9zcmMvY3lnd2luL3dnZXQyL3dnZXQyLTEuOTkuMi0x Lng4Nl82NC9pbnN0L3VzciAnXScKKyBkbG5hbWU9Li4vLi4vLi4vLi4vLi4vLi4vLi4vLi4v Li4vLi4vLi4vYmluL2N5Z3dnZXQtMC5kbGwKKysgcmVhZGxpbmsgLWYgdXNyL2xpYi8uLi8u Li8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLgorKyBfX2hvc3RfcHJlZml4CisrIGxv Y2FsIHByZWZpeAorKyBfX2hvc3RfaXNfZW1iZWRkZWQKKysgbG9jYWwgcmV0PTEKKysgY2Fz ZSAke0NIT1NUfSBpbgorKyByZXR1cm4gMQorKyBbWyB4ODZfNjQtcGMtY3lnd2luID1+IC1t aW5ndzMyIF1dCisrIGluaGVyaXRlZCBjcm9zcworKyBsb2NhbCBjbGFzcworKyBsb2NhbCBj bGFzc25hbWUKKysgZm9yIGNsYXNzIGluICIkQCIKKysgY2xhc3NuYW1lPWNyb3NzCisrIGRl ZmluZWQgX2Nyb3NzX0NZR0NMQVNTXworKyAoKCAgMSAhPSAxICApKQorKyAnWycgLW4gJycg J10nCisrIHJldHVybiAxCisrIHJldHVybiAxCisrIHByZWZpeD0vdXNyCisrIGVjaG8gLW4g L3VzcgorICdbJyAvICchPScgL2hvbWUvJFVTRVIvc3JjL2N5Z3dpbi93Z2V0Mi93Z2V0Mi0x Ljk5LjItMS54ODZfNjQvaW5zdC91c3IgJ10nCisgZGxuYW1lPS4uLy4uLy4uLy4uLy4uLy4u Ly4uLy4uLy4uLy4uLy4uLy4uLy4uL2Jpbi9jeWd3Z2V0LTAuZGxsCisrIHJlYWRsaW5rIC1m IHVzci9saWIvLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4KKysgX19o b3N0X3ByZWZpeAorKyBsb2NhbCBwcmVmaXgKKysgX19ob3N0X2lzX2VtYmVkZGVkCisrIGxv Y2FsIHJldD0xCisrIGNhc2UgJHtDSE9TVH0gaW4KKysgcmV0dXJuIDEKKysgW1sgeDg2XzY0 LXBjLWN5Z3dpbiA9fiAtbWluZ3czMiBdXQorKyBpbmhlcml0ZWQgY3Jvc3MKKysgbG9jYWwg Y2xhc3MKKysgbG9jYWwgY2xhc3NuYW1lCisrIGZvciBjbGFzcyBpbiAiJEAiCisrIGNsYXNz bmFtZT1jcm9zcworKyBkZWZpbmVkIF9jcm9zc19DWUdDTEFTU18KKysgKCggIDEgIT0gMSAg KSkKKysgJ1snIC1uICcnICddJworKyByZXR1cm4gMQorKyByZXR1cm4gMQorKyBwcmVmaXg9 L3VzcgorKyBlY2hvIC1uIC91c3IKKyAnWycgLyAnIT0nIC9ob21lLyRVU0VSL3NyYy9jeWd3 aW4vd2dldDIvd2dldDItMS45OS4yLTEueDg2XzY0L2luc3QvdXNyICddJworIGRsbmFtZT0u Li8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9iaW4vY3lnd2dldC0w LmRsbAorKyByZWFkbGluayAtZiB1c3IvbGliLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4u Ly4uLy4uLy4uLy4uLy4uCisrIF9faG9zdF9wcmVmaXgKKysgbG9jYWwgcHJlZml4CisrIF9f aG9zdF9pc19lbWJlZGRlZAorKyBsb2NhbCByZXQ9MQorKyBjYXNlICR7Q0hPU1R9IGluCisr IHJldHVybiAxCisrIFtbIHg4Nl82NC1wYy1jeWd3aW4gPX4gLW1pbmd3MzIgXV0KKysgaW5o ZXJpdGVkIGNyb3NzCisrIGxvY2FsIGNsYXNzCisrIGxvY2FsIGNsYXNzbmFtZQorKyBmb3Ig Y2xhc3MgaW4gIiRAIgorKyBjbGFzc25hbWU9Y3Jvc3MKKysgZGVmaW5lZCBfY3Jvc3NfQ1lH Q0xBU1NfCisrICgoICAxICE9IDEgICkpCisrICdbJyAtbiAnJyAnXScKKysgcmV0dXJuIDEK KysgcmV0dXJuIDEKLi4uCi4uLgouLi4K --------------B771A4A51ED87DFBC667B27E--