From owner-freebsd-ports@FreeBSD.ORG Thu Aug 9 14:12:52 2012 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1A6771065673; Thu, 9 Aug 2012 14:12:52 +0000 (UTC) (envelope-from honestqiao@gmail.com) Received: from mail-qa0-f54.google.com (mail-qa0-f54.google.com [209.85.216.54]) by mx1.freebsd.org (Postfix) with ESMTP id A0B2F8FC0C; Thu, 9 Aug 2012 14:12:51 +0000 (UTC) Received: by qaat11 with SMTP id t11so246826qaa.13 for ; Thu, 09 Aug 2012 07:12:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=/mlbNn2ZG3pKf5inUmnam6i2VrsjQm7ErvFT5G/Mmo4=; b=VohAyMOmqJQgMpi4qaRP/Uh1+brmBX8F8q1LXVdlksALA6cSdeRqmaGJv+kbu21fA8 FjlZBp8BiNRL01vbNDGn9VjXv8ndRfP6DHUezNpaqHZ4vdouHfos6k9ApCij8xpVdzjQ UwoKeLhU1lW4uRXgpkbj7yH1SPlD++5O+3O6G55tVpl/YTCxDiku5JmqlPMUIxwNKUdz c/vJoDURhI2yvqipduCKvPgBkJPLi0hAH/MRf3/wxZhgtCQWGSt95HbchV9jwPTgipBA xdZA3oifnSdXjj6hpqs0tuj2ZfSewFKkj68aifQU5HNszgbeY4inmJBQ65CHvBq30hJQ kYvQ== Received: by 10.224.221.143 with SMTP id ic15mr2888614qab.51.1344521570581; Thu, 09 Aug 2012 07:12:50 -0700 (PDT) MIME-Version: 1.0 Received: by 10.229.68.224 with HTTP; Thu, 9 Aug 2012 07:12:10 -0700 (PDT) In-Reply-To: References: <5020E05C.3000704@zedat.fu-berlin.de> <50211A8F.40108@shatow.net> <50211CEA.6030108@mail.zedat.fu-berlin.de> From: =?UTF-8?B?5LmU5qWa?= Date: Thu, 9 Aug 2012 22:12:10 +0800 Message-ID: To: Chris Rees Content-Type: multipart/mixed; boundary=20cf3074b4f49b7d9b04c6d5d258 Cc: "O. Hartmann" , Current FreeBSD , "O. Hartmann" , FreeBSD Mailing List , Bryan Drewery Subject: Re: pkg and portmaster: Downgrading ports? Why? portmaster messes up ... X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Aug 2012 14:12:52 -0000 --20cf3074b4f49b7d9b04c6d5d258 Content-Type: text/plain; charset=ISO-8859-1 2012/8/9 Chris Rees : > On 7 Aug 2012 15:50, "O. Hartmann" wrote: >> >> On 08/07/12 15:39, Bryan Drewery wrote: >> > On 8/7/2012 4:31 AM, O. Hartmann wrote: >> >> ports-mgmt/portmaster installs still the old fashioned style folders of >> >> ports in /var/db/pkg. I thought ith the new scheme of pkg, everything > is >> >> going into a file based SQLite3 DB? >> > >> > Also ensure WITH_PKGNG=yes is in your /etc/make.conf. My last comment >> > still stands though, portmaster will store distifile information in >> > /var/db/pkg. >> > >> >> WITH_PKGNG=yes is set in /etc/make.conf. > > Also in your portmasterrc? > > Chris > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org" You can use this patch. --20cf3074b4f49b7d9b04c6d5d258 Content-Type: application/octet-stream; name="patch-portmaster-pkgng-3.13.13" Content-Disposition: attachment; filename="patch-portmaster-pkgng-3.13.13" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h5nxdqw40 CiRGcmVlQlNEJAoKLS0tIHBvcnRtYXN0ZXIuc2guaW4ub3JpZworKysgcG9ydG1hc3Rlci5zaC5p bgpAQCAtNDcsNyArNDcsNyBAQAogIz09PT09PT09PT09PT09PSBCZWdpbiBmdW5jdGlvbnMgd2Ug YWx3YXlzIHdhbnQgdG8gaGF2ZSA9PT09PT09PT09PT09PT0KIAogdmVyc2lvbiAoKSB7Ci0JZWNo byAnJyA7IGVjaG8gIj09PT4+PiBWZXJzaW9uIDMuMTMuMTMiCisJZWNobyAnJyA7IGVjaG8gIj09 PT4+PiBWZXJzaW9uIDMuMTMuMTMgKHBrZ25nIHBhdGNoIDEuMykiCiAJI3N2bj0nJEZyZWVCU0Q6 IHVzZXIvZG91Z2IvcG9ydG1hc3Rlci9wb3J0bWFzdGVyIDIzODc1NCAyMDEyLTA3LTI0IDIwOjE1 OjQxWiBkb3VnYiAkJwogfQogCkBAIC0xMzQsNiArMTM0LDggQEAKIAkJCWlmIFsgLW4gIiRmaWxl cyIgXTsgdGhlbgogCQkJCXBtX3N2IERlbGV0aW5nIFwnaW5zdGFsbCBjb21wbGV0ZVwnIGZsYWdz CiAJCQkJcG1fZmluZF9zICRwZGIgLXR5cGUgZiAtbmFtZSBQTV9VUEdSQURFX0RPTkVfRkxBRyAt ZGVsZXRlCisJCQkJWyAtbiAiJHVzZV9wa2duZyIgXSAmJgorCQkJCQlwbV9maW5kX3MgJHBkYiAt dHlwZSBkIC1kZXB0aCAxIC1lbXB0eSAhIC1wYXRoIFwqXC56ZnMvXCogLWRlbGV0ZSAyPi9kZXYv bnVsbAogCQkJZmkKIAkJZmkKIAkJaWYgWyAteiAiJEJBQ0tVUCIgLWEgLXogIiROT19CQUNLVVAi IC1hIC1uICIkTkJfREVMRVRFIiBdOyB0aGVuCkBAIC0xODcsOSArMTg5LDE0IEBACiAJCWZpCiAK IAkJOiAke1BBR0VSOj0nbGVzcyAtZSd9Ci0JCSggZm9yIGYgaW4gJERJU1BMQVlfTElTVDsgZG8K LQkJCWVjaG8gIj09PT4+PiBwa2ctbWVzc2FnZSBmb3IgJGYiIDsgY2F0ICRwZGIvJGYvK0RJU1BM QVkgOyBlY2hvICcnCi0JCWRvbmUKKwkJKCBpZiBbIC16ICIkdXNlX3BrZ25nIiBdOyB0aGVuCisJ CQlmb3IgZiBpbiAkRElTUExBWV9MSVNUOyBkbworCQkJCWVjaG8gIj09PT4+PiBwa2ctbWVzc2Fn ZSBmb3IgJGYiCisJCQkJY2F0ICRwZGIvJGYvK0RJU1BMQVkgOyBlY2hvICcnCisJCQlkb25lCisJ CWVsc2UKKwkJCXBrZyBxdWVyeSAiPT09Pj4+IHBrZy1tZXNzYWdlIGZvciAlbi0ldlxuJU0iICRE SVNQTEFZX0xJU1QKKwkJZmkKIAkJZWNobyAiPT09Pj4+IERvbmUgZGlzcGxheWluZyBwa2ctbWVz c2FnZSBmaWxlcyIgOyBlY2hvICcnICkgfCAkUEFHRVIgOzsKIAllc2FjCiAKQEAgLTIzMiwxMCAr MjM5LDE0IEBACiAJaWYgWyAtbiAiJGJ1aWxkX2RlcHNfaWwiIF07IHRoZW4KIAkJZWNobyAiPT09 Pj4+IERlbGV0aW5nIGluc3RhbGxlZCBidWlsZC1vbmx5IGRlcGVuZGVuY2llcyIKIAkJY2QKLQkJ Zm9yIGYgaW4gJGJ1aWxkX2RlcHNfaWw7IGRvCi0JCQlwbV92ICIgICAgICAgJGYiCi0JCQlwbV9w a2dfZGVsZXRlX3MgLWYgJGYKLQkJZG9uZQorCQlpZiBbIC16ICIkdXNlX3BrZ25nIiBdOyB0aGVu CisJCQlmb3IgZiBpbiAkYnVpbGRfZGVwc19pbDsgZG8KKwkJCQlwbV92ICIgICAgICAgJGYiCisJ CQkJcG1fcGtnX2RlbGV0ZV9zIC1mICRmCisJCQlkb25lCisJCWVsc2UKKwkJCXBtX3BrZ19kZWxl dGVfcyAtZiAkYnVpbGRfZGVwc19pbAorCQlmaQogCQllY2hvICcnCiAJZmkKIApAQCAtMzIzLDcg KzMzNCwxMyBAQAogcG1fbWFrZV9zICAgICAgICAgKCkgeyAoIHVuc2V0IC12IENVUl9ERVBTIElO U1RBTExFRF9MSVNUIFBNX0RFUFRIIGJ1aWxkX2wgUE1fVVJCX0xJU1Q7CiAJCQkgJFBNX1NVX0NN RCAvdXNyL2Jpbi9uaWNlIC91c3IvYmluL21ha2UgJFBNX01BS0VfQVJHUyAkKjsgKTsgfQogcG1f bWtkaXJfcyAgICAgICAgKCkgeyAkUE1fU1VfQ01EIC9iaW4vbWtkaXIgLXAgJDE7IH0KLXBtX3Br Z19kZWxldGVfcyAgICgpIHsgJFBNX1NVX0NNRCAvdXNyL3NiaW4vcGtnX2RlbGV0ZSAkKjsgfQor cG1fcGtnX2RlbGV0ZV9zICAgKCkgeworCWlmIFsgLXogIiR1c2VfcGtnbmciIF07IHRoZW4KKwkJ JFBNX1NVX0NNRCAvdXNyL3NiaW4vcGtnX2RlbGV0ZSAkKjsKKwllbHNlCisJCSRQTV9TVV9DTUQg L3Vzci9sb2NhbC9zYmluL3BrZyBkZWxldGUgLXkgJCo7CisJZmkKK30KIHBtX3JtX3MgICAgICAg ICAgICgpIHsgJFBNX1NVX0NNRCAvYmluL3JtICQqOyB9CiBwbV9ybWRpcl9zICAgICAgICAoKSB7 ICRQTV9TVV9DTUQgL2Jpbi9ybWRpciAkKjsgfQogcG1fdW5saW5rX3MgICAgICAgKCkgeyBbIC1l ICIkMSIgXSAmJiAkUE1fU1VfQ01EIC9iaW4vdW5saW5rICQxOyB9CkBAIC0zNzEsNiArMzg4LDEw IEBACiAJWyAteiAiJHBvcnRfZGJkaXIiIF0gJiYKIAkJcG9ydF9kYmRpcj1gcG1fbWFrZV9iIC1m L3Vzci9zaGFyZS9tay9ic2QucG9ydC5tayAtViBQT1JUX0RCRElSIDI+L2Rldi9udWxsYAogCVsg LW4gIiRwb3J0X2RiZGlyIiBdICYmIGV4cG9ydCBwb3J0X2RiZGlyCisKKwkjIERldGVjdCBpZiBw a2duZyBpcyBiZWluZyB1c2VkCisJdXNlX3BrZ25nPSJgcG1fbWFrZV9iIC1WIFdJVEhfUEtHTkdg IgorCVsgLW4gIiR1c2VfcGtnbmciIF0gJiYgZXhwb3J0IHVzZV9wa2duZwogZmkKIAogdXNhZ2Ug KCkgewpAQCAtNTI3LDEyICs1NDgsMTcgQEAKIAogCXBhdHRlcm49YGdsb2JzdHJpcCAkMWAKIAot CWdsb2JfZGlycz1gZmluZCAkcGRiIC1tYXhkZXB0aCAxIC10eXBlIGQgLW5hbWUgJHtwYXR0ZXJu fVwqYAorCWlmIFsgLXogIiR1c2VfcGtnbmciIF07IHRoZW4KKwkJZ2xvYl9kaXJzPWBmaW5kICRw ZGIgLWRlcHRoIDEgLXR5cGUgZCAtbmFtZSAke3BhdHRlcm59XCpgCisJZWxzZQorCQlnbG9iX2Rp cnM9YHBrZyBxdWVyeSAtZyAiJW4tJXYiICR7cGF0dGVybn1cKmAKKwlmaQogCWNhc2UgIiRnbG9i X2RpcnMiIGluCiAJIyBNYXRjaCBhIG5ld2xpbmUgaW4gbXVsdGlwbGUgcmVzcG9uc2VzIGZyb20g ZmluZAogCSonCiAnKikJCXJldHVybiAyIDs7Ci0JJHBkYi8qKQlyZXR1cm4gOzsKKwknJykJOzsK KwkqKQlyZXR1cm4gOzsKIAllc2FjCiAKIAl1bnNldCBnbG9iX2RpcnMKQEAgLTU0MiwyMCArNTY4 LDM1IEBACiBvcmlnaW5fZnJvbV9wZGIgKCkgewogCWxvY2FsIG8KIAotCW89YGdyZXAgLW0xICdA Y29tbWVudCBPUklHSU46JyAkcGRiLyQxLytDT05URU5UUyAyPi9kZXYvbnVsbGAgJiYgewotCQll Y2hvICR7byNAY29tbWVudCBPUklHSU46fTsgcmV0dXJuIDA7IH0KKwlpZiBbIC16ICIkdXNlX3Br Z25nIiBdOyB0aGVuCisJCW89YGdyZXAgLW0xICdAY29tbWVudCBPUklHSU46JyAkcGRiLyQxLytD T05URU5UUyAyPi9kZXYvbnVsbGAgJiYgeworCQkJZWNobyAke28jQGNvbW1lbnQgT1JJR0lOOn07 IHJldHVybiAwOyB9CisJZWxzZQorCQlwa2cgaW5mbyAtcW8gJDEgMj4vZGV2L251bGwgJiYgcmV0 dXJuIDAKKwlmaQogCiAJY2FzZSAiJDEiIGluIGJzZHBhbi0qKSByZXR1cm4gMyA7OyBlc2FjCiAK LQlpZiBbIC1lICIkcGRiLyQxLytJR05PUkVNRSIgXTsgdGhlbgorCWlmIFsgLWUgIiRwZGIvJDEv K0lHTk9SRU1FIiBdICYmICggWyAteiAiJHVzZV9wa2duZyIgXSB8fCBwa2cgaW5mbyAtZSAkMSAp OyB0aGVuCiAJCWlmIFsgLW4gIiRQTV9WRVJCT1NFIiAtbyAtbiAiJExJU1RfT1JJR0lOUyIgXTsg dGhlbgotCQkJZWNobyAiCT09PT4+PiBObyBPUklHSU4gaW4gJHBkYi8kMS8rQ09OVEVOVFMiID4m MgorCQkJaWYgWyAteiAiJHVzZV9wa2duZyIgXTsgdGhlbgorCQkJCWVjaG8gIgk9PT0+Pj4gTm8g T1JJR0lOIGluICRwZGIvJDEvK0NPTlRFTlRTIiA+JjIKKwkJCWVsc2UKKwkJCQkjIEFuIGVycm9y IGFib3ZlIGRvZXNuJ3QgbmVjZXNzYXJpbHkgbWVhbiB0aGVyZSdzCisJCQkJIyBhIHByb2JsZW0g aW4gK01BTklGRVNULCBzbyBkb24ndCBtZW50aW9uIGl0CisJCQkJZWNobyAiCT09PT4+PiBObyBv cmlnaW4gYXZhaWxhYmxlIGZvciAkMSIgPiYyCisJCQlmaQogCQkJZWNobyAiCT09PT4+PiAkcGRi LyQxLytJR05PUkVNRSBleGlzdHMiID4mMgogCQkJZWNobyAnJyA+JjIKIAkJZmkKIAkJcmV0dXJu IDIKIAllbHNlCi0JCWVjaG8gIgk9PT0+Pj4gTm8gT1JJR0lOIGluICRwZGIvJDEvK0NPTlRFTlRT IiA+JjIKKwkJaWYgWyAteiAiJHVzZV9wa2duZyIgXTsgdGhlbgorCQkJZWNobyAiCT09PT4+PiBO byBPUklHSU4gaW4gJHBkYi8kMS8rQ09OVEVOVFMiID4mMgorCQllbHNlCisJCQkjIFNhbWUgYXMg YWJvdmUKKwkJCWVjaG8gIgk9PT0+Pj4gTm8gb3JpZ2luIGF2YWlsYWJsZSBmb3IgJDEiID4mMgor CQlmaQogCQllY2hvICcnID4mMgogCWZpCiAJcmV0dXJuIDEKQEAgLTY5NywxMiArNzM4LDE3IEBA CiAJbykJUkVQTEFDRV9PUklHSU49b29wdCA7OwogCXApCWZhaWwgJ1RoZSAtcCBvcHRpb24gaGFz IGJlZW4gZGVwcmVjYXRlZCcgOzsKIAlyKQlQTV9VUkI9cm9wdAotCQlpZiBbIC1kICIkcGRiLyRP UFRBUkciIF07IHRoZW4KKwkJaWYgWyAtZCAiJHBkYi8kT1BUQVJHIiBdICYmICggWyAteiAiJHVz ZV9wa2duZyIgXSB8fCBwa2cgaW5mbyAtZSAkT1BUQVJHICk7IHRoZW4KIAkJCWdsb2JfZGlycz0k T1BUQVJHCiAJCWVsc2UKKwkJCWNhc2UgIiRPUFRBUkciIGluICovKikgZmFpbCAnVGhlIGFyZ3Vt ZW50IHRvIC1yIG11c3QgYmUgYSBwYWNrYWdlIG5hbWUsIG9yIGEgZ2xvYiBwYXR0ZXJuJyA7OyBl c2FjCiAJCQlmaW5kX2dsb2JfZGlycyAkT1BUQVJHCiAJCQljYXNlICQ/IGluCi0JCQkxKQlmYWls ICIkcGRiLyRPUFRBUkcgZG9lcyBub3QgZXhpc3QiIDs7CisJCQkxKQlpZiBbIC16ICIkdXNlX3Br Z25nIiBdOyB0aGVuCisJCQkJCWZhaWwgIiRwZGIvJE9QVEFSRyBkb2VzIG5vdCBleGlzdCIKKwkJ CQllbHNlCisJCQkJCWZhaWwgIiRPUFRBUkcgaXMgbm90IGluc3RhbGxlZCIKKwkJCQlmaSA7Owog CQkJMikJZmFpbCAnVGhlIGFyZ3VtZW50IHRvIC1yIG11c3QgbWF0Y2ggb25seSBvbmUgcG9ydCcg OzsKIAkJCWVzYWMKIAkJZmkKQEAgLTc4NCw2ICs4MzAsMTIgQEAKIAkgICAgZmFpbCAnVGhlIC1b YXJdIG9wdGlvbnMgYXJlIG5vdCBjb21wYXRpYmxlIHdpdGggb3RoZXIgdXBkYXRlcycKIAogCWlm IFsgLW4gIiRQTV9QQUNLQUdFUyIgLW8gLW4gIiRQTV9QQUNLQUdFU19CVUlMRCIgXTsgdGhlbgor CQlpZiBbIC1uICIkdXNlX3BrZ25nIiBdOyB0aGVuCisJCQl1bnNldCBQTV9QQUNLQUdFUyBQTV9Q QUNLQUdFU19CVUlMRCBQTV9QQUNLQUdFU19MT0NBTCBQTV9QQUNLQUdFU19ORVdFUiBQTV9BTFdB WVNfRkVUQ0ggUE1fREVMRVRFX1BBQ0tBR0VTCisJCQllY2hvICI9PT0+Pj4gUGFja2FnZSBpbnN0 YWxsYXRpb24gc3VwcG9ydCBjYW5ub3QgYmUgdXNlZCB3aXRoIHBrZ25nIHlldCwiCisJCQllY2hv ICIgICAgICAgaXQgd2lsbCBiZSBkaXNhYmxlZCIKKwkJCWVjaG8gJycKKwkJZmkKIAkJWyBgL3Ni aW4vc3lzY3RsIC1uIGtlcm4ub3NyZWxkYXRlIDI+L2Rldi9udWxsYCAtbHQgNjAwNDAwIF0gJiYK IAkJCWZhaWwgUGFja2FnZSBpbnN0YWxsYXRpb24gc3VwcG9ydCByZXF1aXJlcyBGcmVlQlNEIDYu NCBvciBuZXdlcgogCWZpCkBAIC04NTAsNyArOTAyLDEyIEBACiAJCWZpCiAJCXVuc2V0IElOREVY RklMRSBJTkRFWERJUgogCi0JCVBNX0lOREVYX1BPUlRTPWBwa2dfdmVyc2lvbiAtSXZsXDwgJFBN X0lOREVYIHwgY3V0IC1mMSAtZFw8YAorCQlpZiBbIC16ICIkdXNlX3BrZ25nIiBdOyB0aGVuCisJ CQlwa2dfdmVyc2lvbj0icGtnX3ZlcnNpb24iCisJCWVsc2UKKwkJCXBrZ192ZXJzaW9uPSJwa2cg dmVyc2lvbiIKKwkJZmkKKwkJUE1fSU5ERVhfUE9SVFM9YCRwa2dfdmVyc2lvbiAtSXZsXDwgJFBN X0lOREVYIHwgY3V0IC1mMSAtZFw8YAogCQlleHBvcnQgUE1fSU5ERVhfUE9SVFMKIAogCQlpZiBb IC16ICIkcGQiIC1vICIkcGQiICE9IC91c3IvcG9ydHMgXTsgdGhlbgpAQCAtOTA3LDYgKzk2NCwx MCBAQAogaXBvcnRfZnJvbV9vcmlnaW4gKCkgewogCWxvY2FsIHNuIGRpcgogCisJaWYgWyAtbiAi JHVzZV9wa2duZyIgXTsgdGhlbgorCQlwa2cgaW5mbyAtcU8gJHsxfSB8fCByZXR1cm4gMQorCQly ZXR1cm4KKwlmaQogCXNuPSR7MSMqL30gOyBzbj0ke3NuJS0qfSA7IHNuPSR7c24lJVswLTldKn0K IAogCWlmICEgZGlyPWBncmVwIC1sICJAY29tbWVudCBPUklHSU46JHsxfSQiICRwZGIvJHtzbn0q LytDT05URU5UUyAyPi9kZXYvbnVsbGA7IHRoZW4KQEAgLTkzNSw3ICs5OTYsOSBAQAogCWRvbmUK IH0KIAorIyBSZWR1bmRhbnQgd2l0aCBwa2duZwogY2hlY2tfZGVwZW5kZW5jeV9maWxlcyAoKSB7 CisJWyAtbiAiJHVzZV9wa2duZyIgXSAmJiByZXR1cm4KIAkjIEdsb2JhbDogZ3JlcF9kZXBzCiAJ bG9jYWwgb3JpZ2luIGlwb3J0IHJvX29wZAogCkBAIC0xMDE3LDcgKzEwODAsOSBAQAogCWZpCiB9 CiAKKyMgcmVkdW5kYW50IHdpdGggcGtnbmcKIHVwZGF0ZV9jb250ZW50cyAoKSB7CisJWyAtbiAi JHVzZV9wa2duZyIgXSAmJiByZXR1cm4KIAlsb2NhbCBJRlMgZGVsZXRlIGNvbnRlbnRzIG9yaWdp biBuX3BvcnQgb2xkX29yaWdpbiBpcG9ydAogCWxvY2FsIG9fc2VlbiBsaW5lIGRfbWlzc2luZyBk X29yaWdpbiBkX2lwb3J0IHByZXZfbGluZSBhbnN3ZXIKIApAQCAtMTExNyw3ICsxMTgyLDcgQEAK IAlmb3IgbCBpbiBgZ3JlcCAiXiRzZnwiICRwZC9NT1ZFRGA7IGRvCiAJCWNhc2UgIiRsIiBpbgog CQkke3NmfVx8XHwqKSBbIC1uICIkaXBvcnQiIF0gfHwgaXBvcnQ9YGlwb3J0X2Zyb21fb3JpZ2lu ICRzZmAKLQkJCWlmIFsgLWUgIiRwZGIvJGlwb3J0LytJR05PUkVNRSIgXTsgdGhlbgorCQkJaWYg WyAtZSAiJHBkYi8kaXBvcnQvK0lHTk9SRU1FIiBdICYmICggWyAteiAiJHVzZV9wa2duZyIgXSB8 fCBwa2cgaW5mbyAtZSAkaXBvcnQgKTsgdGhlbgogCQkJCWlmIFsgLW4gIiRQTV9WRVJCT1NFIiBd OyB0aGVuCiAJCQkJCWVjaG8gJycKIAkJCQkJZWNobyAiCT09PT4+PiBUaGUgJHNmIHBvcnQgaGFz IGJlZW4gZGVsZXRlZCIKQEAgLTExNTIsMjQgKzEyMTcsMzYgQEAKIAkJZWNobyAnJwogCiAJCVsg LW4gIiRpcG9ydCIgXSB8fCBpcG9ydD1gaXBvcnRfZnJvbV9vcmlnaW4gJHNmYAotCQlbIC1lICIk cGRiLyRpcG9ydC8rSUdOT1JFTUUiIF0gfHwgcmV0dXJuIDEKKwkJWyAtZSAiJHBkYi8kaXBvcnQv K0lHTk9SRU1FIiBdICYmICggWyAteiAiJHVzZV9wa2duZyIgXSB8fCBwa2cgaW5mbyAtZSAkaXBv cnQgKSB8fCByZXR1cm4gMQogCWZpCiAJcmV0dXJuIDAKIH0KIAorYWxsX3BrZ3NfYnlfb3JpZ2lu ICgpIHsKKwlpZiBbIC16ICIkdXNlX3BrZ25nIiBdOyB0aGVuCisJCWxvY2FsIHBrZyBpcG9ydCBv cmlnaW4KKworCQlmb3IgcGtnIGluICR7cGRifS8qIDsgZG8KKwkJCVsgLWQgJHBrZyBdIHx8IGNv bnRpbnVlCisJCQlpcG9ydD0ke3BrZyMkcGRiL30KKworCQkJb3JpZ2luPWBvcmlnaW5fZnJvbV9w ZGIgJGlwb3J0YCB8fCBjb250aW51ZQorCQkJZWNobyAkaXBvcnQgJG9yaWdpbgorCQlkb25lCisJ ZWxzZQorCQlwa2cgcXVlcnkgLWEgIiVuLSV2ICVvIgorCWZpCisJcmV0dXJuCit9CisKIHJlYWRf ZGlzdGluZm9zICgpIHsKLQlsb2NhbCBwa2cgaXBvcnQgb3JpZ2luIGRpc3RpbmZvIHMgZiBkaXNj YXJkCisJbG9jYWwgaXBvcnQgb3JpZ2luIGRpc3RpbmZvIHMgZiBkaXNjYXJkCiAKIAllY2hvICcj IyMjIyMjIyMjIyMnID4gJERJX0ZJTEVTCQkjIE1ha2UgdGhlIGZpbGUgPiAwIGJ5dGVzCiAJZWNo byAiPT09Pj4+IEdhdGhlcmluZyBkaXN0aW5mbyBsaXN0IGZvciBpbnN0YWxsZWQgcG9ydHMiCiAJ ZWNobyAnJwogCi0JZm9yIHBrZyBpbiAke3BkYn0vKjsgZG8KLQkJWyAtZCAkcGtnIF0gfHwgY29u dGludWUKLQkJaXBvcnQ9JHtwa2cjJHBkYi99Ci0KLQkJb3JpZ2luPWBvcmlnaW5fZnJvbV9wZGIg JGlwb3J0YCB8fCBjb250aW51ZQotCisJYWxsX3BrZ3NfYnlfb3JpZ2luIHwgd2hpbGUgcmVhZCBp cG9ydCBvcmlnaW47IGRvCiAJCWlmIFsgISAtZCAiJHBkLyRvcmlnaW4iIF07IHRoZW4KIAkJCWZp bmRfbW92ZWRfcG9ydCAkb3JpZ2luICRpcG9ydCBub25mYXRhbCA+L2Rldi9udWxsCiAJCQlbIC1u ICIkbW92ZWRfbnBkIiBdIHx8IGNvbnRpbnVlCkBAIC0xMjQ1LDI5ICsxMzIyLDQzIEBACiAKIAlw bV92ICI9PT0+Pj4gU29ydGluZyBwb3J0cyBieSBjYXRlZ29yeSIKIAotCW51bV9yb290cz0wOyBu dW1fdHJ1bmtzPTA7IG51bV9icmFuY2hlcz0wOyBudW1fbGVhdmVzPTAKLQlmb3IgcGtnIGluICRw ZGIvKjsgZG8KLQkJaWYgWyAtcyAiJHBrZy8rUkVRVUlSRURfQlkiIF07IHRoZW4KLQkJCWlmIGdy ZXAgLXFsICdeQHBrZ2RlcCAnICRwa2cvK0NPTlRFTlRTIDI+L2Rldi9udWxsOyB0aGVuCi0JCQkJ YnJhbmNoZXM9IiRicmFuY2hlcyAke3BrZyMkcGRiL30iCi0JCQkJbnVtX2JyYW5jaGVzPSQoKCAk bnVtX2JyYW5jaGVzICsgMSApKQotCQkJZWxzZQotCQkJCXRydW5rcz0iJHRydW5rcyAke3BrZyMk cGRiL30iCi0JCQkJbnVtX3RydW5rcz0kKCggJG51bV90cnVua3MgKyAxICkpCi0JCQlmaQotCQll bHNlCi0JCQlpZiBncmVwIC1xbCAnXkBwa2dkZXAgJyAkcGtnLytDT05URU5UUyAyPi9kZXYvbnVs bDsgdGhlbgotCQkJCWxlYXZlcz0iJGxlYXZlcyAke3BrZyMkcGRiL30iCi0JCQkJbnVtX2xlYXZl cz0kKCggJG51bV9sZWF2ZXMgKyAxICkpCisJaWYgWyAteiAiJHVzZV9wa2duZyIgXTsgdGhlbgor CQludW1fcm9vdHM9MDsgbnVtX3RydW5rcz0wOyBudW1fYnJhbmNoZXM9MDsgbnVtX2xlYXZlcz0w CisJCWZvciBwa2cgaW4gJHBkYi8qOyBkbworCQkJaWYgWyAtcyAiJHBrZy8rUkVRVUlSRURfQlki IF07IHRoZW4KKwkJCQlpZiBncmVwIC1xbCAnXkBwa2dkZXAgJyAkcGtnLytDT05URU5UUyAyPi9k ZXYvbnVsbDsgdGhlbgorCQkJCQlicmFuY2hlcz0iJGJyYW5jaGVzICR7cGtnIyRwZGIvfSIKKwkJ CQkJbnVtX2JyYW5jaGVzPSQoKCAkbnVtX2JyYW5jaGVzICsgMSApKQorCQkJCWVsc2UKKwkJCQkJ dHJ1bmtzPSIkdHJ1bmtzICR7cGtnIyRwZGIvfSIKKwkJCQkJbnVtX3RydW5rcz0kKCggJG51bV90 cnVua3MgKyAxICkpCisJCQkJZmkKIAkJCWVsc2UKLQkJCQlbIC1kICIkcGtnIiBdIHx8IGNvbnRp bnVlCi0JCQkJcm9vdHM9IiRyb290cyAke3BrZyMkcGRiL30iCi0JCQkJbnVtX3Jvb3RzPSQoKCAk bnVtX3Jvb3RzICsgMSApKQorCQkJCWlmIGdyZXAgLXFsICdeQHBrZ2RlcCAnICRwa2cvK0NPTlRF TlRTIDI+L2Rldi9udWxsOyB0aGVuCisJCQkJCWxlYXZlcz0iJGxlYXZlcyAke3BrZyMkcGRiL30i CisJCQkJCW51bV9sZWF2ZXM9JCgoICRudW1fbGVhdmVzICsgMSApKQorCQkJCWVsc2UKKwkJCQkJ WyAtZCAiJHBrZyIgXSB8fCBjb250aW51ZQorCQkJCQlyb290cz0iJHJvb3RzICR7cGtnIyRwZGIv fSIKKwkJCQkJbnVtX3Jvb3RzPSQoKCAkbnVtX3Jvb3RzICsgMSApKQorCQkJCWZpCiAJCQlmaQot CQlmaQotCWRvbmUKKwkJZG9uZQogCi0JbnVtX3BvcnRzPSQoKCAkbnVtX3Jvb3RzICsgJG51bV90 cnVua3MgKyAkbnVtX2JyYW5jaGVzICsgJG51bV9sZWF2ZXMgKSkKKwkJbnVtX3BvcnRzPSQoKCAk bnVtX3Jvb3RzICsgJG51bV90cnVua3MgKyAkbnVtX2JyYW5jaGVzICsgJG51bV9sZWF2ZXMgKSkK KwllbHNlCisJCXJvb3RzPWAgICBwa2cgcXVlcnkgLWUgIiUjZCA9IDAgJiYgJSNyID0gMCIgIiVu LSV2ImAKKwkJdHJ1bmtzPWAgIHBrZyBxdWVyeSAtZSAiJSNkID0gMCAmJiAlI3IgPiAwIiAiJW4t JXYiYAorCQlicmFuY2hlcz1gcGtnIHF1ZXJ5IC1lICIlI2QgPiAwICYmICUjciA+IDAiICIlbi0l diJgCisJCWxlYXZlcz1gICBwa2cgcXVlcnkgLWUgIiUjZCA+IDAgJiYgJSNyID0gMCIgIiVuLSV2 ImAKKworCQludW1fcm9vdHM9JChlY2hvICAgICQoZWNobyAkcm9vdHMgICAgfCB3YyAtdykpCisJ CW51bV90cnVua3M9JChlY2hvICAgJChlY2hvICR0cnVua3MgICB8IHdjIC13KSkKKwkJbnVtX2Jy YW5jaGVzPSQoZWNobyAkKGVjaG8gJGJyYW5jaGVzIHwgd2MgLXcpKQorCQludW1fbGVhdmVzPSQo ZWNobyAgICQoZWNobyAkbGVhdmVzICAgfCB3YyAtdykpCisKKwkJbnVtX3BvcnRzPSQoZWNobyAk KHBrZyBxdWVyeSAtYSAiJW4tJXYiIHwgd2MgLXcpKQorCWZpCiB9CiAKIGRlbGV0ZV9lbXB0eV9k aXN0X3N1YmRpcnMgKCkgewpAQCAtMTMxNSw3ICsxNDA2LDkgQEAKIAllc2FjCiB9CiAKKyMgUmVk dW5kYW50IHdpdGggcGtnbmcKIHVwZGF0ZV9yZXF1aXJlZF9ieSAoKSB7CisJWyAtbiAiJHVzZV9w a2duZyIgXSAmJiAvYmluL3VubGluayAkZ3JlcF9kZXBzICYmIHVuc2V0IGdyZXBfZGVwcyAmJiBy ZXR1cm4KIAkjIEdsb2JhbDogbmVlZHdzCiAJbG9jYWwgZG9fdXBkYXRlCiAKQEAgLTEzMjUsNyAr MTQxOCw3IEBACiAJZWxzZQogCQlkb191cGRhdGU9ZG9fdXBkYXRlMgogCWZpCi0JaWYgWyAtbiAi JGRvX3VwZGF0ZSIgXTsgdGhlbgorIAlpZiBbIC1uICIkZG9fdXBkYXRlIiBdOyB0aGVuCiAJCXBt X3YgIgk9PT0+Pj4gVXBkYXRpbmcgJDEvK1JFUVVJUkVEX0JZIgogCQluZWVkd3M9bmVlZHdzX3Vy YgogCQlwbV9pbnN0YWxsX3MgJGdyZXBfZGVwcyAkcGRiLyQxLytSRVFVSVJFRF9CWQpAQCAtMTM3 MSwxMSArMTQ2NCwxNSBAQAogCiAJZWNobyAiPT09Pj4+IENoZWNraW5nIGZvciBzdGFsZSBwYWNr YWdlcyIKIAlmb3IgcGFja2FnZSBpbiBgZmluZCAkUEFDS0FHRVMgLXR5cGUgZiB8IHNvcnRgOyBk bwotCQlwa2dfZGlyPSR7cGFja2FnZSMjKi99IDsgcGtnX2Rpcj0ke3BrZ19kaXIlXC50Ynp9IDsg ZWNobyAnJworCQlwa2dfZGlyPSR7cGFja2FnZSMjKi99IDsgcGtnX2Rpcj0ke3BrZ19kaXIlXC4q fSA7IGVjaG8gJycKIAotCQlvcmlnaW49YHRhciAtTyAtenh2ZiAkcGFja2FnZSAnK0NPTlRFTlRT JyAyPi9kZXYvbnVsbCB8IGdyZXAgJ0Bjb21tZW50IE9SSUdJTjonYCB8fAotCQkJZmFpbCBFbXB0 eSBvcmlnaW4gaW4gJHBhY2thZ2UKKwkJWyAtbiAiJHVzZV9wa2duZyIgXSAmJgorCQkJb3JpZ2lu PWBwa2cgcXVlcnkgLUYgJHBhY2thZ2UgIiVvIiAyPi9kZXYvbnVsbGAgfHwKKwkJCW9yaWdpbj1g dGFyIC1PIC16eHZmICRwYWNrYWdlICcrQ09OVEVOVFMnIDI+L2Rldi9udWxsIHwgZ3JlcCAnQGNv bW1lbnQgT1JJR0lOOidgIHx8CisJCQlvcmlnaW49YHRhciAtTyAtenh2ZiAkcGFja2FnZSAnK01B TklGRVNUJyAyPi9kZXYvbnVsbCB8IGdyZXAgJ15vcmlnaW46J2AgfHwKKwkJCWZhaWwgIkVtcHR5 IG9yaWdpbiBpbiAkcGFja2FnZSIKIAkJb3JpZ2luPSR7b3JpZ2luI0Bjb21tZW50IE9SSUdJTjp9 CisJCW9yaWdpbj0ke29yaWdpbiNvcmlnaW46IH0KIAogCQlpZiBbIC16ICIkUE1fSU5ERVgiIF07 IHRoZW4KIAkJCWlmIFsgLWQgIiRwZC8kb3JpZ2luIiBdOyB0aGVuCkBAIC0xMzkxLDE2ICsxNDg4 LDI4IEBACiAJCWZpCiAKIAkJaWYgWyAtbiAiJHBvcnRfdmVyIiBdOyB0aGVuCi0JCQlpZiBbICIk e3BvcnRfdmVyfS50YnoiID0gIiR7cGFja2FnZSMjKi99IiBdOyB0aGVuCisJCQlpZiBbICIkcG9y dF92ZXIiID0gIiRwa2dfZGlyIiBdOyB0aGVuCiAJCQkJZWNobyAiPT09Pj4+ICR7cGFja2FnZSMj Ki99IGlzIHVwIHRvIGRhdGUiCi0JCQkJaWYgWyAhIC1kICIke3BkYn0vJHtwa2dfZGlyfSIgXTsg dGhlbgotCQkJCQllY2hvICIJPT09Pj4+ICRwa2dfZGlyIGlzIG5vdCBpbnN0YWxsZWQiCi0JCQkJ CWVjaG8gIgk9PT0+Pj4gUGF0aDogJHtwYWNrYWdlfSIKLQkJCQkJZ2V0X2Fuc3dlcl95biB5ICJc blx0PT09Pj4+IERlbGV0ZSBzdGFsZSBwYWNrYWdlOiAke3BhY2thZ2UjIyovfSIKLQkJCQkJY2Fz ZSAiJD8iIGluCi0JCQkJCTApCWVjaG8gIgk9PT0+Pj4gRGVsZXRpbmcgJHBhY2thZ2UiCi0JCQkJ CQlwbV91bmxpbmtfcyAkcGFja2FnZSA7OwotCQkJCQllc2FjCisJCQkJaWYgWyAteiAiJHVzZV9w a2duZyIgXTsgdGhlbgorCQkJCQlpZiBbICEgLWQgIiR7cGRifS8ke3BrZ19kaXJ9IiBdOyB0aGVu CisJCQkJCQllY2hvICIJPT09Pj4+ICRwa2dfZGlyIGlzIG5vdCBpbnN0YWxsZWQiCisJCQkJCQll Y2hvICIJPT09Pj4+IFBhdGg6ICR7cGFja2FnZX0iCisJCQkJCQlnZXRfYW5zd2VyX3luIHkgIlxu XHQ9PT0+Pj4gRGVsZXRlIHN0YWxlIHBhY2thZ2U6ICR7cGFja2FnZSMjKi99IgorCQkJCQkJY2Fz ZSAiJD8iIGluCisJCQkJCQkwKQllY2hvICIJPT09Pj4+IERlbGV0aW5nICRwYWNrYWdlIgorCQkJ CQkJCXBtX3VubGlua19zICRwYWNrYWdlIDs7CisJCQkJCQllc2FjCisJCQkJCWZpCisJCQkJZWxz ZQorCQkJCQlpZiAhIHBrZyBpbmZvIC1lICRwa2dfZGlyOyB0aGVuCisJCQkJCQllY2hvICIJPT09 Pj4+ICRwa2dfZGlyIGlzIG5vdCBpbnN0YWxsZWQiCisJCQkJCQllY2hvICIJPT09Pj4+IFBhdGg6 ICR7cGFja2FnZX0iCisJCQkJCQlnZXRfYW5zd2VyX3luIHkgIlxuXHQ9PT0+Pj4gRGVsZXRlIHN0 YWxlIHBhY2thZ2U6ICR7cGFja2FnZSMjKi99IgorCQkJCQkJY2FzZSAiJD8iIGluCisJCQkJCQkw KQllY2hvICIJPT09Pj4+IERlbGV0aW5nICRwYWNrYWdlIgorCQkJCQkJCXBtX3VubGlua19zICRw YWNrYWdlIDs7CisJCQkJCQllc2FjCisJCQkJCWZpCiAJCQkJZmkKIAkJCQl1bnNldCBwb3J0X3Zl cgogCQkJCWNvbnRpbnVlCkBAIC0xNDExLDEwICsxNTIwLDE4IEBACiAKIAkJCXVuc2V0IHBvcnRf dmVyCiAKLQkJCWlmIFsgLWQgIiR7cGRifS8ke3BrZ19kaXJ9IiBdOyB0aGVuCi0JCQkJZWNobyAi CT09PT4+PiAke3BhY2thZ2UjIyovfSBtYXRjaGVzIHRoZSBpbnN0YWxsZWQgdmVyc2lvbiIKKwkJ CWlmIFsgLXogIiR1c2VfcGtnbmciIF07IHRoZW4KKwkJCQlpZiBbIC1kICIke3BkYn0vJHtwa2df ZGlyfSIgXTsgdGhlbgorCQkJCQllY2hvICIJPT09Pj4+ICR7cGFja2FnZSMjKi99IG1hdGNoZXMg dGhlIGluc3RhbGxlZCB2ZXJzaW9uIgorCQkJCWVsc2UKKwkJCQkJZWNobyAiCT09PT4+PiAke3Bh Y2thZ2UjIyovfSBpcyBub3QgaW5zdGFsbGVkIgorCQkJCWZpCiAJCQllbHNlCi0JCQkJZWNobyAi CT09PT4+PiAke3BhY2thZ2UjIyovfSBpcyBub3QgaW5zdGFsbGVkIgorCQkJCWlmIHBrZyBpbmZv IC1lICRwa2dfZGlyOyB0aGVuCisJCQkJCWVjaG8gIgk9PT0+Pj4gJHtwYWNrYWdlIyMqL30gbWF0 Y2hlcyB0aGUgaW5zdGFsbGVkIHZlcnNpb24iCisJCQkJZWxzZQorCQkJCQllY2hvICIJPT09Pj4+ ICR7cGFja2FnZSMjKi99IGlzIG5vdCBpbnN0YWxsZWQiCisJCQkJZmkKIAkJCWZpCiAJCWZpCiAK QEAgLTE0NTMsNiArMTU3MCwxMCBAQAogZmkJIyBbIC1uICIkQ0xFQU5fUEFDS0FHRVMiIF0KIAog aWYgWyAtbiAiJENIRUNLX0RFUEVORFMiIF07IHRoZW4KKwlpZiBbIC1uICIkdXNlX3BrZ25nIiBd OyB0aGVuCisJCXBrZyBjaGVjayAtYWR2CisJCWV4aXQKKwlmaQogCVBNX1ZFUkJPU0U9cG12X2No ZWNrX2RlcGVuZHMKIElGUz0nCiAnCkBAIC0xNDk5LDI0ICsxNjIwLDQyIEBACiAJdW5pcXVlX2xp c3Q9JzonCiAKIAllY2hvICI9PT0+Pj4gQnVpbGRpbmcgbGlzdCBvZiBpbnN0YWxsZWQgcG9ydCBu YW1lcyI7IGVjaG8gJycKLQlmb3IgcGtnIGluICRwZGIvKjsgZG8KLQkJWyAtZCAkcGtnIF0gfHwg Y29udGludWUKKwlpZiBbIC16ICIkdXNlX3BrZ25nIiBdOyB0aGVuCisJCWZvciBwa2cgaW4gJHBk Yi8qOyBkbworCQkJWyAtZCAkcGtnIF0gfHwgY29udGludWUKIAotCQlpcG9ydD0ke3BrZyMkcGRi L30KLQkJb3JpZ2luPWBvcmlnaW5fZnJvbV9wZGIgJGlwb3J0YCB8fCBjb250aW51ZQorCQkJaXBv cnQ9JHtwa2cjJHBkYi99CisJCQlvcmlnaW49YG9yaWdpbl9mcm9tX3BkYiAkaXBvcnRgIHx8IGNv bnRpbnVlCiAKLQkJaWYgWyAhIC1kICIkcGQvJG9yaWdpbiIgXTsgdGhlbgotCQkJZmluZF9tb3Zl ZF9wb3J0ICRvcmlnaW4gJGlwb3J0IG5vbmZhdGFsID4vZGV2L251bGwKLQkJCVsgLW4gIiRtb3Zl ZF9ucGQiIF0gfHwgY29udGludWUKLQkJCW9yaWdpbj0kbW92ZWRfbnBkCi0JCWZpCisJCQlpZiBb ICEgLWQgIiRwZC8kb3JpZ2luIiBdOyB0aGVuCisJCQkJZmluZF9tb3ZlZF9wb3J0ICRvcmlnaW4g JGlwb3J0IG5vbmZhdGFsID4vZGV2L251bGwKKwkJCQlbIC1uICIkbW92ZWRfbnBkIiBdIHx8IGNv bnRpbnVlCisJCQkJb3JpZ2luPSRtb3ZlZF9ucGQKKwkJCWZpCiAKLQkJaWYgISBwbV9jZCAkcGQv JG9yaWdpbjsgdGhlbgotCQkJZWNobyAiCT09PT4+PiAkcGQvJG9yaWdpbiBkb2VzIG5vdCBleGlz dCBmb3IgJHBrZyIKLQkJCWNvbnRpbnVlCi0JCWZpCi0JCXVuaXF1ZV9saXN0PSIke3VuaXF1ZV9s aXN0fWBtYWtlIC1WIFVOSVFVRU5BTUVgOiIKLQlkb25lCisJCQlpZiAhIHBtX2NkICRwZC8kb3Jp Z2luOyB0aGVuCisJCQkJZWNobyAiCT09PT4+PiAkcGQvJG9yaWdpbiBkb2VzIG5vdCBleGlzdCBm b3IgJHBrZyIKKwkJCQljb250aW51ZQorCQkJZmkKKwkJCXVuaXF1ZV9saXN0PSIke3VuaXF1ZV9s aXN0fWBtYWtlIC1WIFVOSVFVRU5BTUVgOiIKKwkJZG9uZQorCWVsc2UKKwkJd2hpbGUgcmVhZCBw a2cgb3JpZ2luOyBkbworCQkJaWYgWyAhIC1kICIkcGQvJG9yaWdpbiIgXTsgdGhlbgorCQkJCWZp bmRfbW92ZWRfcG9ydCAkb3JpZ2luICRwa2cgbm9uZmF0YWwgPi9kZXYvbnVsbAorCQkJCVsgLW4g IiRtb3ZlZF9ucGQiIF0gfHwgY29udGludWUKKwkJCQlvcmlnaW49JG1vdmVkX25wZAorCQkJZmkK KworCQkJaWYgISBwbV9jZCAkcGQvJG9yaWdpbjsgdGhlbgorCQkJCWVjaG8gIgk9PT0+Pj4gJHBk LyRvcmlnaW4gZG9lcyBub3QgZXhpc3QgZm9yICRwa2ciCisJCQkJY29udGludWUKKwkJCWZpCisJ CQl1bmlxdWVfbGlzdD0iJHt1bmlxdWVfbGlzdH1gbWFrZSAtViBVTklRVUVOQU1FYDoiCisJCWRv bmUgPDwgRU9GCitgcGtnIHF1ZXJ5IC1hICIlbi0ldiAlbyJgCitFT0YKKwlmaQogCiAJZWNobyAi PT09Pj4+IENoZWNraW5nICRwb3J0X2RiZGlyIgogCkBAIC0xNjE3LDcgKzE3NTYsNyBAQAogCiAJ aWYgWyAteiAiJGRvX3VwZGF0ZSIgLWEgLXogIiRza2lwIiAtYSAteiAiJFBNX0lOREVYX09OTFki IF0gJiYgWyAtZCAiJHBkLyRvcmlnaW4iIF07IHRoZW4KIAkJaWYgISBwbV9jZCAkcGQvJG9yaWdp bjsgdGhlbgotCQkJaWYgWyAtZSAiJHBkYi8kaXBvcnQvK0lHTk9SRU1FIiBdOyB0aGVuCisJCQlp ZiBbIC1lICIkcGRiLyRpcG9ydC8rSUdOT1JFTUUiIF0gJiYgKCBbIC16ICIkdXNlX3BrZ25nIiBd IHx8IHBrZyBpbmZvIC1lICRpcG9ydCApOyB0aGVuCiAJCQkJZWNobyAiCT09PT4+PiBXYXJuaW5n OiBVbmFibGUgdG8gY2QgdG8gJHBkLyRvcmlnaW4iCiAJCQkJZWNobyAiCT09PT4+PiBDb250aW51 aW5nIGR1ZSB0byAkcGRiLyRpcG9ydC8rSUdOT1JFTUUiCiAJCQkJZWNobyAnJwpAQCAtMTYzNCwx MyArMTc3MywxMyBAQAogCiAJCSMgSWYgdGhlIHBvcnQgaGFzIG1vdmVkIGFuZCBubyArSUdOT1JF TUUsIHdlIGhhdmUgdG8gdXBkYXRlIGl0CiAJCWlmIFsgLW4gIiRtb3ZlZF9ucGQiIF07IHRoZW4K LQkJCWlmIFsgISAtZSAiJHBkYi8kaXBvcnQvK0lHTk9SRU1FIiBdOyB0aGVuCi0JCQkJZG9fdXBk YXRlPWRvX3VwZGF0ZV9tb3ZlZAotCQkJZWxzZQorCQkJaWYgWyAtZSAiJHBkYi8kaXBvcnQvK0lH Tk9SRU1FIiBdICYmICggWyAteiAiJHVzZV9wa2duZyIgXSB8fCBwa2cgaW5mbyAtZSAkaXBvcnQg KTsgdGhlbgogCQkJCWVjaG8gIgk9PT0+Pj4gQ29udGludWluZyBkdWUgdG8gJHBkYi8kaXBvcnQv K0lHTk9SRU1FIgogCQkJCWVjaG8gJycKIAkJCQlDVVJfREVQUz0iJHtDVVJfREVQU30ke2lwb3J0 fToke29yaWdpbn06IgogCQkJCXJldHVybiAwCisJCQllbHNlCisJCQkJZG9fdXBkYXRlPWRvX3Vw ZGF0ZV9tb3ZlZAogCQkJZmkKIAkJZmkKIAlmaQpAQCAtMTY1NywxNCArMTc5NiwyMCBAQAogCQkJ CXVuc2V0IHBvcnRfdmVyCiAJCQlmaQogCQllbHNlCi0JCQljYXNlIGBwa2dfdmVyc2lvbiAtdCAk aXBvcnQgJHBvcnRfdmVyYCBpbgorCQkJbG9jYWwgcGtnX3ZlcnNpb24KKwkJCWlmIFsgLXogIiR1 c2VfcGtnbmciIF07IHRoZW4KKwkJCQlwa2dfdmVyc2lvbj0icGtnX3ZlcnNpb24iCisJCQllbHNl CisJCQkJcGtnX3ZlcnNpb249InBrZyB2ZXJzaW9uIgorCQkJZmkKKwkJCWNhc2UgYCRwa2dfdmVy c2lvbiAtdCAkaXBvcnQgJHBvcnRfdmVyYCBpbgogCQkJXDwpCWRvX3VwZGF0ZT11cGRfbHQgOzsK IAkJCT0pCTs7CSMgQ2FuIGJlIHJlYWNoZWQgaWYgc2FtZSB2ZXJzaW9uIHdpdGggZGlmZmVyZW50 IG9wdGlvbnMKIAkJCVw+KQlpZiBbIC1uICIkUE1fVkVSQk9TRSIgXTsgdGhlbgogCQkJCQllY2hv ICIJPT09Pj4+IFBvcnQgdmVyc2lvbiAkcG9ydF92ZXIgZG9lcyBub3QiCiAJCQkJCWVjaG8gIgk9 PT0+Pj4gc2VlbSBuZXdlciB0aGFuIGluc3RhbGxlZCAkaXBvcnQiCiAJCQkJZmkgOzsKLQkJCSop CWZhaWwgInBrZ192ZXJzaW9uIC10ICRpcG9ydCAkcG9ydF92ZXIgZ2F2ZSBhbiB1bmV4cGVjdGVk IHJlc3VsdCIKKwkJCSopCWZhaWwgIiRwa2dfdmVyc2lvbiAtdCAkaXBvcnQgJHBvcnRfdmVyIGdh dmUgYW4gdW5leHBlY3RlZCByZXN1bHQiCiAJCQllc2FjCiAKIAkJCVsgLXogIiRkb191cGRhdGUi IF0gJiYgewpAQCAtMTY4MCw4ICsxODI1LDkgQEAKIAlpZiBbIC1uICIkTElTVF9QTFVTIiBdOyB0 aGVuCiAJCWlmIFsgLXogIiRtb3ZlZF9ucGQiIF07IHRoZW4KIAkJCWVjaG8gIgk9PT0+Pj4gTmV3 IHZlcnNpb24gYXZhaWxhYmxlOiAkcG9ydF92ZXIiCi0JCQlbIC1lICIkcGRiLyRpcG9ydC8rSUdO T1JFTUUiIF0gJiYKKwkJCWlmIFsgLWUgIiRwZGIvJGlwb3J0LytJR05PUkVNRSIgXSAmJiAoIFsg LXogIiR1c2VfcGtnbmciIF0gfHwgcGtnIGluZm8gLWUgJGlwb3J0ICk7IHRoZW4KIAkJCQllY2hv ICIJPT09Pj4+ICtJR05PUkVNRSBmaWxlIGlzIHByZXNlbnQgZm9yICQxIgorCQkJZmkKIAkJCXBt X2NkX3BkICRvcmlnaW4gJiYgY2hlY2tfc3RhdGUKIAkJCW51bV91cGRhdGVzPSQoKCAkbnVtX3Vw ZGF0ZXMgKyAxICkpCiAJCWVsc2UKQEAgLTE3MzYsNyArMTg4MiwxMyBAQAogCWZpCiAKIAlwbV9j ZCAkcGtnZGlyIHx8IGZhaWwgIkNhbm5vdCBjZCBpbnRvICRwa2dkaXIgdG8gY3JlYXRlIGEgcGFj a2FnZSIKLQlpZiAkUE1fU1VfQ01EIHBrZ19jcmVhdGUgLWIgJDI7IHRoZW4KKwlsb2NhbCBwa2df Y3JlYXRlCisJaWYgWyAteiAiJHVzZV9wa2duZyIgXTsgdGhlbgorCQlwa2dfY3JlYXRlPSJwa2df Y3JlYXRlIC1iIgorCWVsc2UKKwkJcGtnX2NyZWF0ZT0icGtnIGNyZWF0ZSAiCisJZmkKKwlpZiAk UE1fU1VfQ01EICRwa2dfY3JlYXRlICQyOyB0aGVuCiAJCWlmIFsgIiQxIiA9ICIkcGJ1IiBdOyB0 aGVuCiAJCQlpZiBbIC1uICIkQkFDS1VQIiBdOyB0aGVuCiAJCQkJZWNobyAiCT09PT4+PiBQYWNr YWdlIHNhdmVkIHRvICQxIiA7IGVjaG8gJycKQEAgLTIwODUsMTAgKzIyMzcsMTQgQEAKIGZpCiAK IGlmIFsgLW4gIiRFWFBVTkdFIiBdOyB0aGVuCi0JaWYgWyAhIC1kICIkcGRiLyRFWFBVTkdFIiBd OyB0aGVuCisJaWYgWyAhIC1kICIkcGRiLyRFWFBVTkdFIiBdIHx8ICggWyAtbiAiJHVzZV9wa2du ZyIgXSAmJiAhIHBrZyBpbmZvIC1lICRFWFBVTkdFICk7IHRoZW4KIAkJZmluZF9nbG9iX2RpcnMg JEVYUFVOR0UKIAkJY2FzZSAkPyBpbgotCQkxKQlmYWlsICJObyBzdWNoIGRpcmVjdG9yeS9wb3J0 OiAkcGRiLyRFWFBVTkdFIiA7OworCQkxKQlpZiBbIC16ICIkdXNlX3BrZ25nIiBdOyB0aGVuCisJ CQkJZmFpbCAiTm8gc3VjaCBkaXJlY3RvcnkvcG9ydDogJHBkYi8kRVhQVU5HRSIKKwkJCWVsc2UK KwkJCQlmYWlsICJObyBzdWNoIHBvcnQ6ICRFWFBVTkdFIgorCQkJZmkgOzsKIAkJMikJZWNobyAi PT09Pj4+ICRFWFBVTkdFIG1hdGNoZWQgbXVsdGlwbGUgcG9ydHMiCiAJCQlmYWlsICJUaGUgLWUg b3B0aW9uIHdvcmtzIHdpdGggb25seSBvbmUgcG9ydCBhdCBhIHRpbWUiIDs7CiAJCTApCUVYUFVO R0U9JHtnbG9iX2RpcnMjJHBkYi99CkBAIC0yMDk3LDE1ICsyMjUzLDI0IEBACiAJZmkKIAogCW9y aWdpbj1gb3JpZ2luX2Zyb21fcGRiICRFWFBVTkdFYAotCWRlcGxpc3Q9YGdyZXAgLWwgREVQT1JJ R0lOOiRvcmlnaW4kICRwZGIvKi8rQ09OVEVOVFNgCisJaWYgWyAteiAiJHVzZV9wa2duZyIgXTsg dGhlbgorCQlkZXBsaXN0PWBncmVwIC1sIERFUE9SSUdJTjokb3JpZ2luJCAkcGRiLyovK0NPTlRF TlRTYAorCWVsc2UKKwkJZGVwbGlzdD1gcGtnIHF1ZXJ5ICIlcm4tJXJ2IiAkb3JpZ2luYAorCWZp CiAJaWYgWyAtbiAiJGRlcGxpc3QiIF07IHRoZW4KIAkJZWNobyAiPT09Pj4+IFdhcm5pbmc6IFBv cnRzIHdpdGggZGVwZW5kZW5jaWVzIG9uICR7RVhQVU5HRX06IgotCQlmb3IgZGVwIGluICRkZXBs aXN0OyBkbwotCQkJZGVwPSR7ZGVwJS8rQ09OKn0gOyBlY2hvICIJJHtkZXAjIyovfSIKLQkJZG9u ZQorCQlpZiBbIC16ICIkdXNlX3BrZ25nIiBdOyB0aGVuCisJCQlmb3IgZGVwIGluICRkZXBsaXN0 OyBkbworCQkJCWRlcD0ke2RlcCUvK0NPTip9IDsgZWNobyAiCSR7ZGVwIyMqL30iCisJCQlkb25l CisJCWVsc2UKKwkJCWVjaG8gIiRkZXBsaXN0IiB8IHNlZCAncy9eLwkvJworCQlmaQogCQlnZXRf YW5zd2VyX3luIG4gIlxuXHQ9PT0+Pj4gRGVsZXRlIHRoaXMgZGVwZW5kZW5jeSBkYXRhIgogCQlj YXNlICIkPyIgaW4KLQkJMCkJZm9yIGYgaW4gJGRlcGxpc3Q7IGRvCisJCTApCVsgLW4gIiR1c2Vf cGtnbmciIF0gJiYgZXhpdCAxICNUT0RPCisJCQlmb3IgZiBpbiAkZGVwbGlzdDsgZG8KIAkJCQl1 cGRhdGVfY29udGVudHMgZGVsZXRlICRmICRvcmlnaW4KIAkJCWRvbmUgOzsKIAkJKikJZXhpdCAx IDs7CkBAIC0yMTE1LDggKzIyODAsMTMgQEAKIAlbIC1uICIkQkFDS1VQIiBdICYmIHsgaW5pdF9w YWNrYWdlcyA7IHBtX3BrZ19jcmVhdGUgJHBidSAkRVhQVU5HRTsgfQogCVsgLXogIiRET05UX1ND UlVCX0RJU1RGSUxFUyIgXSAmJiBkZWxldGVfYWxsX2Rpc3RmaWxlcyAkb3JpZ2luCiAKLQllY2hv ICI9PT0+Pj4gUnVubmluZyBwa2dfZGVsZXRlIC1mICRFWFBVTkdFIgotCXBtX3BrZ19kZWxldGVf cyAtZiAkRVhQVU5HRSB8fCBmYWlsICdwa2dfZGVsZXRlIGZhaWxlZCcKKwlpZiBbIC16ICIkdXNl X3BrZ25nIiBdOyB0aGVuCisJCXBrZ19kZWxldGU9InBrZ19kZWxldGUiCisJZWxzZQorCQlwa2df ZGVsZXRlPSJwa2cgZGVsZXRlIgorCWZpCisJZWNobyAiPT09Pj4+IFJ1bm5pbmcgJHBrZ19kZWxl dGUgLWYgJEVYUFVOR0UiCisJcG1fcGtnX2RlbGV0ZV9zIC1mICRFWFBVTkdFIHx8IGZhaWwgIiRw a2dfZGVsZXRlIGZhaWxlZCIKIAogCWVjaG8gJycgOyBlY2hvICI9PT0+Pj4gUnVubmluZyAkezAj IyovfSAtcyAkQVJHUyIKIAlleGVjICQwIC1zICRBUkdTCkBAIC0yMTI2LDEzICsyMjk2LDIxIEBA CiBpZiBbIC1uICIkQ0xFQU5fU1RBTEUiIF07IHRoZW4KIAlbIC16ICIkbm9fZGVsX2xpc3QiIF0g JiYgZXhwb3J0IG5vX2RlbF9saXN0PSc6JwogCi0JZm9yIGZpbGUgaW4gYGZpbmQgJHBkYiAtdHlw ZSBmIC1uYW1lIFwrUkVRVUlSRURfQlkgLWVtcHR5YCA7IGRvCisJaWYgWyAteiAiJHVzZV9wa2du ZyIgXTsgdGhlbgorCQlmaW5kX3N0YWxlX3BvcnRzPSJmaW5kICRwZGIgLXR5cGUgZiAtbmFtZSBc K1JFUVVJUkVEX0JZIC1lbXB0eSIKKwllbHNlCisJCWZpbmRfc3RhbGVfcG9ydHM9InBrZyBxdWVy eSAtYSBcIiU/ciAlbi0ldlwiIHwgYXdrICcvXjAvIHsgcHJpbnQgXCQyIH0nIgorCWZpCisJZm9y IGZpbGUgaW4gYGV2YWwgJGZpbmRfc3RhbGVfcG9ydHNgIDsgZG8KIAkJaXBvcnQ9IiR7ZmlsZSUv K1JFUVVJUkVEX0JZfSIgOyBpcG9ydD0ke2lwb3J0IyRwZGIvfQogCiAJCWNhc2UgIiRub19kZWxf bGlzdCIgaW4gKjoke2lwb3J0fToqKSBjb250aW51ZSA7OyBlc2FjCiAKIAkJb3JpZ2luPWBvcmln aW5fZnJvbV9wZGIgJGlwb3J0YAotCQlkZXBsaXN0PWBncmVwIC1sIERFUE9SSUdJTjokb3JpZ2lu JCAkcGRiLyovK0NPTlRFTlRTYAorCQlkZXBsaXN0PSIiCisJCWlmIFsgLXogIiR1c2VfcGtnbmci IF07IHRoZW4KKwkJCWRlcGxpc3Q9YGdyZXAgLWwgREVQT1JJR0lOOiRvcmlnaW4kICRwZGIvKi8r Q09OVEVOVFNgCisJCWZpCiAJCWlmIFsgLW4gIiRkZXBsaXN0IiBdOyB0aGVuCiAJCQllY2hvICcn CiAJCQllY2hvICI9PT0+Pj4gV2FybmluZzogVW5yZWNvcmRlZCBkZXBlbmRlbmNpZXMgb24gJHtp cG9ydH06IgpAQCAtMjE0NSwyMiArMjMyMywzMiBAQAogCQkJY29udGludWUKIAkJZmkKIAotCQll Y2hvICcnIDsgcGtnX2luZm8gJGlwb3J0CisJCWlmIFsgLXogIiR1c2VfcGtnbmciIF07IHRoZW4K KwkJCWVjaG8gJycgOyBwa2dfaW5mbyAkaXBvcnQKKwkJCXBrZ19kZWxldGU9InBrZ19kZWxldGUi CisJCWVsc2UKKwkJCWVjaG8gJycgOyBwa2cgaW5mbyAtZiAkaXBvcnQKKwkJCXBrZ19kZWxldGU9 InBrZyBkZWxldGUiCisJCWZpCiAKIAkJZ2V0X2Fuc3dlcl95biBuICJcdD09PT4+PiAke2lwb3J0 fSBpcyBubyBsb25nZXIgZGVwZW5kZWQgb24sIGRlbGV0ZSIKIAkJY2FzZSAiJD8iIGluCiAJCTAp CVsgLW4gIiRCQUNLVVAiIF0gJiYgeyBpbml0X3BhY2thZ2VzIDsgcG1fcGtnX2NyZWF0ZSAkcGJ1 ICRpcG9ydDsgfQogCQkJWyAteiAiJERPTlRfU0NSVUJfRElTVEZJTEVTIiBdICYmIGRlbGV0ZV9h bGxfZGlzdGZpbGVzICRvcmlnaW4KIAotCQkJZWNobyAiPT09Pj4+IFJ1bm5pbmcgcGtnX2RlbGV0 ZSAtZiAkaXBvcnQiCi0JCQlwbV9wa2dfZGVsZXRlX3MgLWYgJGlwb3J0IHx8IGZhaWwgJ3BrZ19k ZWxldGUgZmFpbGVkJworCQkJZWNobyAiPT09Pj4+IFJ1bm5pbmcgJHBrZ19kZWxldGUgLWYgJGlw b3J0IgorCQkJcG1fcGtnX2RlbGV0ZV9zIC1mICRpcG9ydCB8fCBmYWlsICIkcGtnX2RlbGV0ZSBm YWlsZWQiCiAKIAkJCWV4ZWMgJDAgLXMgJEFSR1MgOzsKLQkJKikJZ2V0X2Fuc3dlcl95biBuICJc dD09PT4+PiBEZWxldGUgdGhpcyBkZXBlbmRlbmN5IGRhdGEiCi0JCQljYXNlICIkPyIgaW4KLQkJ CTApCXBtX3VubGlua19zICRmaWxlIDs7Ci0JCQkqKQlub19kZWxfbGlzdD0iJHtub19kZWxfbGlz dH0ke2lwb3J0fToiIDs7Ci0JCQllc2FjIDs7CisJCSopCWlmIFsgLXogIiR1c2VfcGtnbmciIF07 IHRoZW4KKwkJCQlnZXRfYW5zd2VyX3luIG4gIlx0PT09Pj4+IERlbGV0ZSB0aGlzIGRlcGVuZGVu Y3kgZGF0YSIKKwkJCQljYXNlICIkPyIgaW4KKwkJCQkwKQlwbV91bmxpbmtfcyAkZmlsZSA7Owor CQkJCSopCW5vX2RlbF9saXN0PSIke25vX2RlbF9saXN0fSR7aXBvcnR9OiIgOzsKKwkJCQllc2Fj CisJCQllbHNlCisJCQkJbm9fZGVsX2xpc3Q9IiR7bm9fZGVsX2xpc3R9JHtpcG9ydH06IgorCQkJ ZmkgOzsKIAkJZXNhYwogCWRvbmUKIAlleGl0IDAKQEAgLTIxODMsNyArMjM3MSw3IEBACiAJIyB0 byBnbyBvdXQgdG8gdGhlIGRpc2sgaWYgd2UgZG9uJ3QgaGF2ZSB0by4KIAlbIC16ICIkUkVTVEFS VCIgXSAmJiByZXR1cm4gMQogCi0JaWYgWyAhIC1lICIkcGRiLyR7MX0vUE1fVVBHUkFERV9ET05F X0ZMQUciIF07IHRoZW4KKwlpZiBbICEgLWUgIiRwZGIvJHsxfS9QTV9VUEdSQURFX0RPTkVfRkxB RyIgXSB8fCAoIFsgLW4gIiR1c2VfcGtnbmciIF0gJiYgISBwa2cgaW5mbyAtZSAkMSApOyB0aGVu CiAJCXJldHVybiAxCiAJZWxzZQogCQlhbHJlYWR5X2RvbmUgJDEKQEAgLTIyMDAsNyArMjM4OCw3 IEBACiAJY2FzZSAiJElOVEVSQUNUSVZFX1lFUyIgaW4gKjokezF9OiopIHJldHVybiAwIDs7IGVz YWMKIAljYXNlICIkSU5URVJBQ1RJVkVfTk8iIGluICo6JHsxfToqKSByZXR1cm4gMSA7OyBlc2Fj CiAKLQlpZiBbIC1lICIkcGRiLyQxLytJR05PUkVNRSIgXTsgdGhlbgorCWlmIFsgLWUgIiRwZGIv JDEvK0lHTk9SRU1FIiBdICYmICggWyAteiAiJHVzZV9wa2duZyIgXSB8fCBwa2cgaW5mbyAtZSAk MSApOyB0aGVuCiAJCWVjaG8gJycKIAkJZWNobyAiPT09Pj4+ICtJR05PUkVNRSBmaWxlIGlzIHBy ZXNlbnQgZm9yICQxIgogCQllY2hvICcnCkBAIC0yMzEyLDcgKzI1MDAsMTMgQEAKIAkJCWZhaWwg Ik5vIGVudHJ5IGZvciAkb3JpZ2luIGluICRQTV9JTkRFWCIKIAlmaQogCi0JY2FzZSBgcGtnX3Zl cnNpb24gLXQgJGlwb3J0ICRuZXdfcG9ydCAyPi9kZXYvbnVsbGAgaW4KKwlsb2NhbCBwa2dfdmVy c2lvbgorCWlmIFsgLXogIiR1c2VfcGtnbmciIF07IHRoZW4KKwkJcGtnX3ZlcnNpb249InBrZ192 ZXJzaW9uIgorCWVsc2UKKwkJcGtnX3ZlcnNpb249InBrZyB2ZXJzaW9uIgorCWZpCisJY2FzZSBg JHBrZ192ZXJzaW9uIC10ICRpcG9ydCAkbmV3X3BvcnQgMj4vZGV2L251bGxgIGluCiAJXDwpCWJ1 aWxkX2w9IiR7YnVpbGRfbH1cdFVwZ3JhZGUgJGlwb3J0IHRvICRuZXdfcG9ydFxuIiA7OwogCT0p CWJ1aWxkX2w9IiR7YnVpbGRfbH1cdFJlLWluc3RhbGwgJGlwb3J0XG4iIDs7CiAJXD4pCWJ1aWxk X2w9IiR7YnVpbGRfbH1cdERvd25ncmFkZSAkaXBvcnQgdG8gJG5ld19wb3J0XG4iIDs7CkBAIC0y NDYzLDYgKzI2NTcsMTggQEAKIAkJcnVuZGVwcz1gZ2VuX2RlcF9saXN0IHJ1bi1kZXBlbmRzLWxp c3RgCiAKIAkJZm9yIGRlcCBpbiAkZF9wb3J0X2xpc3Q7IGRvCisJCQkjIElmIHRoZSBwb3J0IGlz IGFscmVhZHkgaW5zdGFsbGVkLCBkbyBub3QgbWFyaworCQkJIyBpdCBhcyBhIGJ1aWxkLW9ubHkg ZGVwZW5kZW5jeSwgb3IgaXQgd2lsbCBiZQorCQkJIyBpbnN0YWxsZWQgYnkgcGFja2FnZSBhbmQv b3IgcmVtb3ZlZAorCQkJaWYgWyAteiAiJHVzZV9wa2duZyIgXTsgdGhlbgorCQkJCWlwb3J0X2Zy b21fb3JpZ2luICR7ZGVwIyRwZC99ID4vZGV2L251bGwgJiYKKwkJCQkJcnVuX2RsPSIkcnVuX2Rs ICRkZXAiICYmCisJCQkJCWNvbnRpbnVlCisJCQllbHNlCisJCQkJcGtnIGluZm8gLWUgJHtkZXAj JHBkL30gJiYKKwkJCQkJcnVuX2RsPSIkcnVuX2RsICRkZXAiICYmCisJCQkJCWNvbnRpbnVlCisJ CQlmaQogCQkJY2FzZSAiJHJ1bmRlcHMiIGluCiAJCQkqIiAke2RlcH0gIip8KiR7ZGVwfSopCiAJ CQkJdmFybmFtZT1gZWNobyAke2RlcCMkcGQvfSB8IHNlZCAncyNbLSsvXC5dI18jZydgCkBAIC0y NTMyLDcgKzI3MzgsMTEgQEAKIAkJCQlmYWlsICJDYW5ub3QgY2QgdG8gJGRfcG9ydCIKIAkJCWZp CiAJCQlmb3IgZ2xvYiBpbiAkY29uZmxpY3RzOyBkbwotCQkJCWNvbmZsX3A9YHBrZ19pbmZvIC1J ICRnbG9iIDI+L2Rldi9udWxsYAorCQkJCWlmIFsgLXogIiR1c2VfcGtnbmciIF07IHRoZW4KKwkJ CQkJY29uZmxfcD1gcGtnX2luZm8gLUkgJGdsb2IgMj4vZGV2L251bGxgCisJCQkJZWxzZQorCQkJ CQljb25mbF9wPWBwa2cgcXVlcnkgLWcgIiVuLSV2IiAkZ2xvYiAyPi9kZXYvbnVsbGAKKwkJCQlm aQogCQkJCWlmIFsgLW4gIiRjb25mbF9wIiBdOyB0aGVuCiAJCQkJCWNvbmZsX3A9JHtjb25mbF9w JSUgKn0KIAkJCQkJZF9wb3J0PSIkcGQvYG9yaWdpbl9mcm9tX3BkYiAkY29uZmxfcGAiCkBAIC0y NjcyLDcgKzI4ODIsMTEgQEAKIAkJZG9uZQogCiAJCWZvciBkZXAgaW4gJGJ1aWxkX29ubHlfZGxf ZzsgZG8KLQkJCWdyZXAgLXEgIkBjb21tZW50IERFUE9SSUdJTjoke2RlcCMkcGQvfSQiICRwZGIv Ki8rQ09OVEVOVFMgJiYgY29udGludWUKKwkJCWlmIFsgLXogIiR1c2VfcGtnbmciIF07IHRoZW4K KwkJCQlncmVwIC1xICJAY29tbWVudCBERVBPUklHSU46JHtkZXAjJHBkL30kIiAkcGRiLyovK0NP TlRFTlRTICYmIGNvbnRpbnVlCisJCQllbHNlCisJCQkJWyAiYHBrZyBxdWVyeSAiJT9yIiAke2Rl cCMkcGQvfWAiID0gIjEiIF0gJiYgY29udGludWUKKwkJCWZpCiAJCQlbIC1uICIkUE1fREVMX0JV SUxEX09OTFkiIF0gJiYKIAkJCQlpcG9ydF9mcm9tX29yaWdpbiAke2RlcCMkcGQvfSA+L2Rldi9u dWxsICYmIGNvbnRpbnVlCiAJCQl0ZW1wX2JvZGxnPSIkdGVtcF9ib2RsZyAkZGVwIgpAQCAtMjY5 OSw3ICsyOTEzLDcgQEAKIAogdXJiX3VwZGF0ZSAoKSB7CiAJIyBHbG9iYWw6IFBNX1VSQl9VUAot CWxvY2FsIHZlcmIgb3JpZ2luIHJlcV9ieQorCWxvY2FsIHZlcmIgb3JpZ2luIHJlcV9ieSByZXFf YnlfbwogCiAJdmVyYj1jaGVja2luZyA7IFsgLW4gIiQxIiBdICYmIHZlcmI9dXBkYXRpbmcKIApA QCAtMjcwOSwxNSArMjkyMywyNSBAQAogCWVjaG8gJycKIAogCWZvciBvcmlnaW4gaW4gJFBNX1VS Ql9PUklHSU5TOyBkbwotCQlmb3IgcmVxX2J5IGluIGBncmVwIC1sIERFUE9SSUdJTjoke29yaWdp bn0kICRwZGIvKi8rQ09OVEVOVFNgOyBkbwotCQkJcmVxX2J5PSIke3JlcV9ieSUvK0NPTlRFTlRT fSIKLQkJCXJlcV9ieT0iJHtyZXFfYnkjIyovfSIKKwkJaWYgWyAteiAiJHVzZV9wa2duZyIgXTsg dGhlbgorCQkJZm9yIHJlcV9ieSBpbiBgZ3JlcCAtbCBERVBPUklHSU46JHtvcmlnaW59JCAkcGRi LyovK0NPTlRFTlRTYDsgZG8KKwkJCQlyZXFfYnk9IiR7cmVxX2J5JS8rQ09OVEVOVFN9IgorCQkJ CXJlcV9ieT0iJHtyZXFfYnkjIyovfSIKIAotCQkJY2FzZSAiICRQTV9VUkJfSVBPUlRTIiBpbiAq IiAkcmVxX2J5ICIqKSBjb250aW51ZSA7OyBlc2FjCi0JCQljYXNlICIgJFBNX1VSQl9PUklHSU5T IiBpbiAqIiBgb3JpZ2luX2Zyb21fcGRiICRyZXFfYnlgICIqKSBjb250aW51ZSA7OyBlc2FjCisJ CQkJY2FzZSAiICRQTV9VUkJfSVBPUlRTIiBpbiAqIiAkcmVxX2J5ICIqKSBjb250aW51ZSA7OyBl c2FjCisJCQkJY2FzZSAiICRQTV9VUkJfT1JJR0lOUyIgaW4gKiIgYG9yaWdpbl9mcm9tX3BkYiAk cmVxX2J5YCAiKikgY29udGludWUgOzsgZXNhYwogCi0JCQlQTV9VUkJfTElTVD0iJHtQTV9VUkJf TElTVH0gJHtyZXFfYnl9IgotCQlkb25lCisJCQkJUE1fVVJCX0xJU1Q9IiR7UE1fVVJCX0xJU1R9 ICR7cmVxX2J5fSIKKwkJCWRvbmUKKwkJZWxzZQorCQkJd2hpbGUgcmVhZCByZXFfYnkgcmVxX2J5 X287IGRvCisJCQkJY2FzZSAiICRQTV9VUkJfSVBPUlRTIiBpbiAqIiAkcmVxX2J5ICIqKSBjb250 aW51ZSA7OyBlc2FjCisJCQkJY2FzZSAiICRQTV9VUkJfT1JJR0lOUyIgaW4gKiIgJHJlcV9ieV9v ICIqKSBjb250aW51ZSA7OyBlc2FjCisJCQkJUE1fVVJCX0xJU1Q9IiR7UE1fVVJCX0xJU1R9ICR7 cmVxX2J5fSIKKwkJCWRvbmUgPDwgRU9GCitgcGtnIHF1ZXJ5ICIlcm4tJXJ2ICVybyIgJHtvcmln aW59YAorRU9GCisJCWZpCiAJZG9uZQogCiAJaWYgWyAtbiAiJFBNX1VSQl9MSVNUIiBdOyB0aGVu CkBAIC0yNzI5LDcgKzI5NTMsMTEgQEAKIAogCWZvciByZXFfYnkgaW4gJFBNX1VSQl9MSVNUOyBk bwogCQkjIFByb2JhYmx5IG5vdCBuZWVkZWQsIGJ1dCBKSUMKLQkJWyAtZCAiJHBkYi8kcmVxX2J5 IiBdIHx8IGNvbnRpbnVlCisJCWlmIFsgLXogIiR1c2VfcGtnbmciIF07IHRoZW4KKwkJCVsgLWQg IiRwZGIvJHJlcV9ieSIgXSB8fCBjb250aW51ZQorCQllbHNlCisJCQlwa2cgaW5mbyAtZSAkcmVx X2J5IHx8IGNvbnRpbnVlCisJCWZpCiAKIAkJcG1fdiAiPT09Pj4+ICRyZXFfYnkgZGVwZW5kcyBv biAkUE1fVVJCX0lQT1JUUyIKIApAQCAtMjc3MCwxMiArMjk5OCwxNiBAQAogCQkJZWxzZQogCQkJ CWZhaWwgIiRwZC8ke3BvcnR9IGRvZXMgbm90IGV4aXN0IgogCQkJZmkgOzsKLQkJKikJaWYgWyAt ZCAiJHBkYi8kcG9ydCIgXTsgdGhlbgorCQkqKQlpZiBbIC1kICIkcGRiLyRwb3J0IiBdICYmICgg WyAteiAiJHVzZV9wa2duZyIgXSB8fCBwa2cgaW5mbyAtZSAkcG9ydCApOyB0aGVuCiAJCQkJd29y a2xpc3RfdGVtcD0iJHdvcmtsaXN0X3RlbXAgJHBvcnQiCiAJCQllbHNlCiAJCQkJZmluZF9nbG9i X2RpcnMgJHBvcnQKIAkJCQljYXNlICQ/IGluCi0JCQkJMSkJZmFpbCAiJHBkYi8kcG9ydCBkb2Vz IG5vdCBleGlzdCIgOzsKKwkJCQkxKQlpZiBbIC16ICIkdXNlX3BrZ25nIiBdOyB0aGVuCisJCQkJ CQlmYWlsICIkcGRiLyRwb3J0IGRvZXMgbm90IGV4aXN0IgorCQkJCQllbHNlCisJCQkJCQlmYWls ICIkcG9ydCBpcyBub3QgaW5zdGFsbGVkIgorCQkJCQlmaSA7OwogCQkJCSopCWxvY2FsIGRpcgog CQkJCQlmb3IgZGlyIGluICRnbG9iX2RpcnM7IGRvCiAJCQkJCXdvcmtsaXN0X3RlbXA9IiR3b3Jr bGlzdF90ZW1wICR7ZGlyIyRwZGIvfSIKQEAgLTI4ODcsOSArMzExOSwxNiBAQAogCQkqLyopCW9y aWdpbj0kcG9ydCA7OwogCQkqKQkjIElmIGFuIGluc3RhbGxlZCB2ZXJzaW9uIGRvZXMgbm90IGV4 aXN0IGF0IHRoaXMKIAkJCSMgcG9pbnQgaXQgcHJvYmFibHkgZ290IHVwZGF0ZWQgYXMgYSBkZXBl bmRlbmN5Ci0JCQlpZiBbICEgLWQgIiRwZGIvJHBvcnQiIF07IHRoZW4KLQkJCQludW1wb3J0cz0k KCggJG51bXBvcnRzIC0gMSApKQotCQkJCWNvbnRpbnVlCisJCQlpZiBbIC16ICIkdXNlX3BrZ25n IiBdOyB0aGVuCisJCQkJaWYgWyAhIC1kICIkcGRiLyRwb3J0IiBdOyB0aGVuCisJCQkJCW51bXBv cnRzPSQoKCAkbnVtcG9ydHMgLSAxICkpCisJCQkJCWNvbnRpbnVlCisJCQkJZmkKKwkJCWVsc2UK KwkJCQlpZiAhIHBrZyBpbmZvIC1lICRwb3J0OyB0aGVuCisJCQkJCW51bXBvcnRzPSQoKCAkbnVt cG9ydHMgLSAxICkpCisJCQkJCWNvbnRpbnVlCisJCQkJZmkKIAkJCWZpCiAJCQlvcmlnaW49YG9y aWdpbl9mcm9tX3BkYiAkcG9ydGAgOzsKIAkJZXNhYwpAQCAtMzExMiwxNyArMzM1MSwyMiBAQAog ICAgY2FzZSAiJGFyZ3YiIGluCiAgICAkcGQvKikgIHBvcnRkaXI9JHthcmd2IyRwZC99IDs7Ci0g ICAkcGRiLyopIHVwZ19wb3J0PSR7YXJndiMkcGRiL30gOzsKKyAgICRwZGIvKikgaWYgWyAteiAi JHVzZV9wa2duZyIgXTsgdGhlbgorICAgICAgICAgICB1cGdfcG9ydD0ke2FyZ3YjJHBkYi99Cisg ICAgICAgZWxzZQorICAgICAgICAgICBlY2hvICcnIDsgbm9fdmFsaWRfcG9ydAorICAgICAgIGZp IDs7ICAgIAogICAgLyopIGVjaG8gJycgOyBub192YWxpZF9wb3J0IDs7CiAgICAqLyopICAgIHBv cnRkaXI9JGFyZ3YgOzsKICAgIFwufCcnKSAgcG9ydGRpcj0iJFBXRCIKICAgICAgICB3aGlsZSA6 IDsgZG8KICAgICAgICAgICAgY2FzZSAiJHBvcnRkaXIiIGluCiAgICAgICAgICAgICovKi8qKSAg cG9ydGRpcj0iJHtwb3J0ZGlyIyovfSIgOzsKICAgICAgICAgICAgKi8qKSAgICBicmVhayA7Owog ICAgICAgICAgICAqKSAgZWNobyAnJyA7IG5vX3ZhbGlkX3BvcnQgOzsKICAgICAgICAgICAgZXNh YwogICAgICAgIGRvbmUgOzsKLSAgICopICBbIC1kICIkcGRiLyRhcmd2IiBdICYmIHVwZ19wb3J0 PSRhcmd2IDs7CisgICAqKSAgWyAtZCAiJHBkYi8kYXJndiIgXSAmJiAoIFsgLXogIiR1c2VfcGtn bmciIF0gfHwgcGtnIGluZm8gLWUgJGFyZ3YgKSAmJgorICAgICAgIHVwZ19wb3J0PSRhcmd2IDs7 ICAgIAogICAgZXNhYwoKICAgIGlmIFsgLXogIiRwb3J0ZGlyIiAtYSAteiAiJHVwZ19wb3J0IiBd OyB0aGVuCkBAIC0zMTQ5LDcgKzMzOTMsNyBAQAogCiAJY2FzZSAiJGFyZzIiIGluCiAJKi8qKQly b19vcGQ9JGFyZzIgOyByb191cGdfcG9ydD1gaXBvcnRfZnJvbV9vcmlnaW4gJHJvX29wZGAgOzsK LQkqKQlpZiBbIC1kICIkcGRiLyRhcmcyIiBdOyB0aGVuCisJKikJaWYgWyAtZCAiJHBkYi8kYXJn MiIgXSAmJiAoIFsgLXogIiR1c2VfcGtnbmciIF0gfHwgcGtnIGluZm8gLWUgJGFyZzIgKTsgdGhl bgogCQkJcm9fdXBnX3BvcnQ9JGFyZzIKIAkJZWxzZQogCQkJZmluZF9nbG9iX2RpcnMgJGFyZzIg JiYgcm9fdXBnX3BvcnQ9JHtnbG9iX2RpcnMjJHBkYi99CkBAIC0zMTY0LDEyICszNDA4LDIxIEBA CiAJdW5zZXQgYXJnMgogCiAJaWYgWyAteiAiJHJvX3VwZ19wb3J0IiBdOyB0aGVuCi0JCWlmICEg Z3JlcCAtcWwgIkRFUE9SSUdJTjokcm9fb3BkJCIgJHBkYi8qLytDT05URU5UUzsgdGhlbgorCQlp ZiBbIC16ICIkdXNlX3BrZ25nIiBdOyB0aGVuCisJCQlncmVwIC1xbCAiREVQT1JJR0lOOiRyb19v cGQkIiAkcGRiLyovK0NPTlRFTlRTCisJCWVsc2UKKwkJCXBrZyBxdWVyeSAtYSAiJWRvIiB8IGdy ZXAgLXEgIl4kcm9fb3BkJCIKKwkJZmkKKwkJaWYgWyAiJD8iIC1lcSAxIF07IHRoZW4KIAkJCWVj aG8gJycKLQkJCWVjaG8gIj09PT4+PiBUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIC1vIGNhbiBiZSBh IHBvcnQgaW4gJHBkYiwiCisJCQlpZiBbIC16ICIkdXNlX3BrZ25nIiBdOyB0aGVuCisJCQkJZWNo byAiPT09Pj4+IFRoZSBzZWNvbmQgYXJndW1lbnQgdG8gLW8gY2FuIGJlIGEgcG9ydCBpbiAkcGRi LCIKKwkJCWVsc2UKKwkJCQllY2hvICI9PT0+Pj4gVGhlIHNlY29uZCBhcmd1bWVudCB0byAtbyBj YW4gYmUgYSBwYWNrYWdlIG5hbWUsIgorCQkJZmkKIAkJCWVjaG8gIiAgICAgICBvciBhIHBvcnQg ZGlyZWN0b3J5IGZyb20gJHBkIgogCQkJZWNobyAnJwotCQkJZWNobyAiICAgICAgICRyb19vcGQg ZG9lcyBub3Qgc2VlbSB0byBiZSBpbnN0YWxsZWQsIgorCQkJZWNobyAiICAgICAgICRhcmcyIGRv ZXMgbm90IHNlZW0gdG8gYmUgaW5zdGFsbGVkLCIKIAkJCWVjaG8gJyAgICAgICBvciBsaXN0ZWQg YXMgYSBkZXBlbmRlbmN5JwogCQkJZWNobyAnJyA7IG5vX3ZhbGlkX3BvcnQKIAkJZmkKQEAgLTMy MDEsNyArMzQ1NCw3IEBACiBmaQogWyAteiAiJHVwZ19wb3J0IiAtYSAteiAiJFJFUExBQ0VfT1JJ R0lOIiBdICYmIHVwZ19wb3J0PWBpcG9ydF9mcm9tX29yaWdpbiAke3BvcnRkaXJ9YAogCi1pZiBb IC1lICIkcGRiLyR1cGdfcG9ydC8rSUdOT1JFTUUiIF07IHRoZW4KK2lmIFsgLWUgIiRwZGIvJHVw Z19wb3J0LytJR05PUkVNRSIgXSAmJiAoIFsgLXogIiR1c2VfcGtnbmciIF0gfHwgcGtnIGluZm8g LWUgJHVwZ19wb3J0ICk7IHRoZW4KIAkjIEFkZGluZyB0byBDVVJfREVQUyBtZWFucyB3ZSB3aWxs IG5vdCBnZXQgaGVyZSBpbiB0aGUgYnVpbGQKIAlpZiBbIC16ICIkUE1fQlVJTERJTkciIF07IHRo ZW4KIAkJIyBPbmx5IG5lZWQgdG8gcHJvbXB0IGZvciB0aGlzIG9uY2UgaWYgLWFpCkBAIC0zNTk5 LDcgKzM4NTIsMTIgQEAKIAkJcG1fdiAiPT09Pj4+IEF2YWlsYWJsZSBwYWNrYWdlICgkbGF0ZXN0 X3B2KSBtYXRjaGVzIHRoZSBjdXJyZW50IHZlcnNpb24iCiAJZWxpZiBbIC1uICIkbGF0ZXN0X3B2 IiAtYSAtbiAiJFBNX1BBQ0tBR0VTX05FV0VSIiBdOyB0aGVuCiAJCWlmIFsgLW4gIiR1cGdfcG9y dCIgXTsgdGhlbgotCQkJY2FzZSBgcGtnX3ZlcnNpb24gLXQgJHVwZ19wb3J0ICRsYXRlc3RfcHZg IGluCisJCQlpZiBbIC16ICIkdXNlX3BrZ25nIiBdOyB0aGVuCisJCQkJcGtnX3ZlcnNpb249InBr Z192ZXJzaW9uIgorCQkJZWxzZQorCQkJCXBrZ192ZXJzaW9uPSJwa2cgdmVyc2lvbiIKKwkJCWZp CisJCQljYXNlIGAkcGtnX3ZlcnNpb24gLXQgJHVwZ19wb3J0ICRsYXRlc3RfcHZgIGluCiAJCQlc PCkJdXNlX3BhY2thZ2U9dXBfbmV3ZXIKIAkJCQlwbV92ICI9PT0+Pj4gQXZhaWxhYmxlIHBhY2th Z2UgKCRsYXRlc3RfcHYpIgogCQkJCXBtX3YgIiAgICAgICBpcyBuZXdlciB0aGFuIGluc3RhbGxl ZCAoJHVwZ19wb3J0KSIgOzsKQEAgLTM2MTUsNyArMzg3MywxMiBAQAogCQkJcG1fdiAiPT09Pj4+ IFRoZXJlIGlzIGEgcGFja2FnZSBhdmFpbGFibGUgKCRsYXRlc3RfcHYpIgogCQlmaQogCWVsaWYg WyAtbiAiJGxhdGVzdF9wdiIgXTsgdGhlbgotCQljYXNlIGBwa2dfdmVyc2lvbiAtdCAkbmV3X3Bv cnQgJGxhdGVzdF9wdmAgaW4KKwkJaWYgWyAteiAiJHVzZV9wa2duZyIgXTsgdGhlbgorCQkJcGtn X3ZlcnNpb249InBrZ192ZXJzaW9uIgorCQllbHNlCisJCQlwa2dfdmVyc2lvbj0icGtnIHZlcnNp b24iCisJCWZpCisJCWNhc2UgYCRwa2dfdmVyc2lvbiAtdCAkbmV3X3BvcnQgJGxhdGVzdF9wdmAg aW4KIAkJXDwpCSMgQ291bGQgaGFwcGVuIGlmIHBvcnRzIHRyZWUgaXMgb3V0IG9mIGRhdGUKIAkJ CXVzZV9wYWNrYWdlPXVwX29sZF90cmVlCiAJCQlwbV92ICI9PT0+Pj4gQXZhaWxhYmxlIHBhY2th Z2UgKCRsYXRlc3RfcHYpIgpAQCAtMzcxNSw3ICszOTc4LDEyIEBACiAJCSAgICBncmVwIC12IF4k TE9DQUxCQVNFX0NPTVBBVCA+ICRwbV9ta3RlbXBfZmlsZQogCiAJCXVuc2V0IHRlbXAKLQkJZm9y IGZpbGUgaW4gYHBrZ19pbmZvIC1xIC1MICRVUEdSQURFX1BPUlQgfAorCQlpZiBbIC16ICIkdXNl X3BrZ25nIiBdOyB0aGVuCisJCQlwa2dsaXN0PSJwa2dfaW5mbyAtcSAtTCIKKwkJZWxzZQorCQkJ cGtnbGlzdD0icGtnIHF1ZXJ5ICVGcCIKKwkJZmkKKwkJZm9yIGZpbGUgaW4gYCRwa2dsaXN0ICRV UEdSQURFX1BPUlQgfAogCQkgICAgc29ydCAtICRwbV9ta3RlbXBfZmlsZSB8IHVuaXEgLWRgOyBk bwogCQkJdGVtcD0iJHt0ZW1wfSRmaWxlICIKIAkJZG9uZQpAQCAtMzczOCw2ICs0MDA2LDcgQEAK IAogCWlmIFsgLW4gIiRSRVBMQUNFX09SSUdJTiIgLWEgLW4gIiRyb191cGdfcG9ydCIgXTsgdGhl bgogCQkjIERlbGV0ZSBhbnkgZXhpc3RpbmcgdmVyc2lvbnMgb2YgdGhlIG9sZCBwb3J0CisJCW5w X29ycGhhbj1gcGtnIHF1ZXJ5ICIlYSIgJHJvX3VwZ19wb3J0YAogCQlwbV9zdiAiUnVubmluZyBw a2dfZGVsZXRlIGZvciAkcm9fdXBnX3BvcnQiCiAJCXBtX3BrZ19kZWxldGVfcyAtZiAkcm9fdXBn X3BvcnQKIAlmaQpAQCAtMzc1Nyw2ICs0MDI2LDggQEAKIAkJCXVuc2V0IHByZXNlcnZlX3BvcnQg ZmlsZXMKIAkJZXNhYwogCisJCSMgT3JwaGFuIHN0YXRlIG9mICRyb191cGdfcG9ydCBoYXMgcHJl Y2VkZW5jZQorCQk6ICR7bnBfb3JwaGFuOj1gcGtnIHF1ZXJ5ICIlYSIgJHVwZ19wb3J0YH0KIAkJ cG1fc3YgIlJ1bm5pbmcgcGtnX2RlbGV0ZSBmb3IgJHVwZ19wb3J0IgogCQlwbV9wa2dfZGVsZXRl X3MgLWYgJHVwZ19wb3J0CiAJZmkKQEAgLTM4MDMsNiArNDA3NCwxOCBAQAogCQl1bnNldCBwb3J0 X2xvZ19hcmdzCiAJZmkKIAorCWlmIFsgLXogIiRVUERBVEVfQUxMIiAtYSAteiAiJFJFUExBQ0Vf T1JJR0lOIiAtYSAteiAiJFBNX1VSQiIgLWEgIiR7bnBfb3JwaGFuOi0xfSIgLWVxIDEgXTsgdGhl bgorCQlpZiBbIC1uICIkUE1fTVVMVElfUE9SVFMiIF07IHRoZW4KKwkJCWNhc2UgIiRQTV9NVUxU SV9QT1JUUyIgaW4KKwkJCSo6JHt1cGdfcG9ydDotTk9ORX06KikJbnBfb3JwaGFuPTAgOzsKKwkJ CSo6JHtwb3J0ZGlyfToqKQkJbnBfb3JwaGFuPTAgOzsKKwkJCWVzYWMKKwkJZWxzZQorCQkJWyAi JCQiIC1lcSAiJFBNX1BBUkVOVF9QSUQiIF0gJiYgbnBfb3JwaGFuPTAKKwkJZmkKKwlmaQorCVsg IiR7bnBfb3JwaGFuOi0xfSIgLWVxIDEgXSAmJiBQTV9NQUtFX0FSR1M9IiR7UE1fTUFLRV9BUkdT fSAtRElOU1RBTExTX0RFUEVORFMiCisJdW5zZXQgbnBfb3JwaGFuCiAJIyBEZWZpbmluZyBOT19E RVBFTkRTIGVuc3VyZXMgdGhhdCB3ZSB3aWxsIGNvbnRyb2wgdGhlIGluc3RhbGxhdGlvbgogCSMg b2YgdGhlIGRlcGVuZHMsIG5vdCBic2QucG9ydC5tay4KIAlldmFsIHBtX21ha2VfcyAtRE5PX0RF UEVORFMgaW5zdGFsbCAkcG9ydF9sb2dfYXJncyB8fCBpbnN0YWxsX2ZhaWxlZCAkbmV3X3BvcnQK QEAgLTM4MjAsMjkgKzQxMDMsMzEgQEAKIAlmaQogZmkKIAotZm9yIGZpbGUgaW4gJHByZXNlcnZl X3BvcnRfZmlsZXM7IGRvCi0JbXYgJGZpbGUgJHtmaWxlfS1uZXcKLQltdiAke3ByZXNlcnZlX2Rp cn0vJHtmaWxlIyMqL30gJGZpbGUKLQlvbGRtZDU9Ik1ENTpgbWQ1IC1xICRmaWxlYCIKLQotCXBt X21rdGVtcCBjb250ZW50cwotCXdoaWxlIHJlYWQgbGVmdCByaWdodDsgZG8KLQkJY2FzZSAiJGxl ZnQiIGluCi0JCUBjd2QpCQlzaG9ydF9maWxlPSIke2ZpbGUjJHtyaWdodH0vfSIgOzsKLQkJJHNo b3J0X2ZpbGUpCWZvdW5kX2l0PWZvdW5kX2l0IDsgY29udGludWU7OwotCQlAY29tbWVudCkJaWYg WyAtbiAiJGZvdW5kX2l0IiBdOyB0aGVuCi0JCQkJCWVjaG8gLWUgIiR7c2hvcnRfZmlsZX0tbmV3 XG4kbGVmdCAkcmlnaHQiCi0JCQkJCWVjaG8gLWUgIiRzaG9ydF9maWxlXG5AY29tbWVudCAkb2xk bWQ1IgotCQkJCQl1bnNldCBmb3VuZF9pdAotCQkJCQljb250aW51ZQotCQkJCWZpIDs7Ci0JCWVz YWMKLQkJZWNobyAiJGxlZnQgJHJpZ2h0IgotCWRvbmUgPCAkcGRiLyRuZXdfcG9ydC8rQ09OVEVO VFMgPiAkcG1fbWt0ZW1wX2ZpbGUKLQlwbV9pbnN0YWxsX3MgJHBtX21rdGVtcF9maWxlICRjb250 ZW50cwotCXBtX3VubGluayAkcG1fbWt0ZW1wX2ZpbGUKLQl1bnNldCBmaWxlIG9sZG1kNSBwbV9t a3RlbXBfZmlsZSBsZWZ0IHJpZ2h0IHNob3J0X2ZpbGUKLWRvbmUKK2lmIFsgLXogIiR1c2VfcGtn bmciIF07IHRoZW4KKwlmb3IgZmlsZSBpbiAkcHJlc2VydmVfcG9ydF9maWxlczsgZG8KKwkJbXYg JGZpbGUgJHtmaWxlfS1uZXcKKwkJbXYgJHtwcmVzZXJ2ZV9kaXJ9LyR7ZmlsZSMjKi99ICRmaWxl CisJCW9sZG1kNT0iTUQ1OmBtZDUgLXEgJGZpbGVgIgorCQorCQlwbV9ta3RlbXAgY29udGVudHMK KwkJd2hpbGUgcmVhZCBsZWZ0IHJpZ2h0OyBkbworCQkJY2FzZSAiJGxlZnQiIGluCisJCQlAY3dk KQkJc2hvcnRfZmlsZT0iJHtmaWxlIyR7cmlnaHR9L30iIDs7CisJCQkkc2hvcnRfZmlsZSkJZm91 bmRfaXQ9Zm91bmRfaXQgOyBjb250aW51ZTs7CisJCQlAY29tbWVudCkJaWYgWyAtbiAiJGZvdW5k X2l0IiBdOyB0aGVuCisJCQkJCQllY2hvIC1lICIke3Nob3J0X2ZpbGV9LW5ld1xuJGxlZnQgJHJp Z2h0IgorCQkJCQkJZWNobyAtZSAiJHNob3J0X2ZpbGVcbkBjb21tZW50ICRvbGRtZDUiCisJCQkJ CQl1bnNldCBmb3VuZF9pdAorCQkJCQkJY29udGludWUKKwkJCQkJZmkgOzsKKwkJCWVzYWMKKwkJ CWVjaG8gIiRsZWZ0ICRyaWdodCIKKwkJZG9uZSA8ICRwZGIvJG5ld19wb3J0LytDT05URU5UUyA+ ICRwbV9ta3RlbXBfZmlsZQorCQlwbV9pbnN0YWxsX3MgJHBtX21rdGVtcF9maWxlICRjb250ZW50 cworCQlwbV91bmxpbmsgJHBtX21rdGVtcF9maWxlCisJCXVuc2V0IGZpbGUgb2xkbWQ1IHBtX21r dGVtcF9maWxlIGxlZnQgcmlnaHQgc2hvcnRfZmlsZQorCWRvbmUKK2ZpCiBpZiBbIC1uICIkcHJl c2VydmVfZGlyIiBdOyB0aGVuCiAJcm1kaXIgJHByZXNlcnZlX2RpciAyPi9kZXYvbnVsbAogCXVu c2V0IHByZXNlcnZlX2RpciBwcmVzZXJ2ZV9wb3J0X2ZpbGVzCkBAIC0zODU4LDE0ICs0MTQzLDE5 IEBACiB0ZW1wPWBmaW5kICRMT0NBTEJBU0VfQ09NUEFUIC10eXBlIGQgLWVtcHR5IDI+L2Rldi9u dWxsYAogaWYgWyAteiAiJHRlbXAiIF0gJiYgWyAtZCAiJExPQ0FMQkFTRV9DT01QQVQiIF07IHRo ZW4KIAl1bnNldCBmaWxlcwotCWZvciBmaWxlIGluIGBwa2dfaW5mbyAtcSAtTCAkbmV3X3BvcnRg OyBkbworCWlmIFsgLXogIiR1c2VfcGtnbmciIF07IHRoZW4KKwkJcGtnbGlzdD0icGtnX2luZm8g LXEgLUwiCisJZWxzZQorCQlwa2dsaXN0PSJwa2cgcXVlcnkgJUZwIgorCWZpCisJZm9yIGZpbGUg aW4gYCRwa2dsaXN0ICRuZXdfcG9ydGA7IGRvCiAJCVsgLWYgIiR7TE9DQUxCQVNFX0NPTVBBVH0v JHtmaWxlIyMqL30iIF0gJiYKIAkJCWZpbGVzPSIke2ZpbGVzfSR7TE9DQUxCQVNFX0NPTVBBVH0v JHtmaWxlIyMqL30gIgogCWRvbmUKIAogCWlmIFsgLW4gIiRmaWxlcyIgXTsgdGhlbgogCQlwbV9z diBSZW1vdmluZyBvbGQgc2hhcmVkIGxpYnJhcmllcywgYW5kIHJ1bm5pbmcgbGRjb25maWcKLQkJ cG1fcm1fcyAkZmlsZXMKKwkJcG1fcm1fcyBgbWFrZSAtViBGSUxFUzpPOnUgRklMRVM9IiRmaWxl cyJgCiAJCSRQTV9TVV9DTUQgL2V0Yy9yYy5kL2xkY29uZmlnIHN0YXJ0ID4gL2Rldi9udWxsCiAJ ZmkKIAl1bnNldCB0ZW1wIGZpbGUgZmlsZXMKQEAgLTM5MTcsMTEgKzQyMDcsMTMgQEAKIAlkb25l CiAKIAlwbV9zdiAiSW5zdGFsbGluZyAkZGlzdF9saXN0XG4iCisJcG1fbWtkaXJfcyAke2Rpc3Rf bGlzdCUvKn0KIAlwbV9pbnN0YWxsX3MgJHBtX21rdGVtcF9maWxlICRkaXN0X2xpc3QKIAkvYmlu L3VubGluayAkcG1fbWt0ZW1wX2ZpbGUgOyB1bnNldCBkaXN0aW5mbyBwbV9ta3RlbXBfZmlsZSBm aWxlIGxpbmUKIGZpCiAKLWlmIFsgLW4gIiR1c2VfcGFja2FnZSIgXTsgdGhlbgorIyBwa2duZyBk b2VzIG5vdCBuZWVkIHRoaXMKK2lmIFsgLXogIiR1c2VfcGtnbmciIC1hIC1uICIkdXNlX3BhY2th Z2UiIF07IHRoZW4KIAlpZiBncmVwIC1xIERFUE9SSUdJTiAkcGRiLyRuZXdfcG9ydC8rQ09OVEVO VFM7IHRoZW4KIAkJZWNobyAtZSAiPT09Pj4+IFVwZGF0aW5nIGRlcGVuZGVuY2llcyBmb3IgJG5l d19wb3J0IHRvIG1hdGNoIGluc3RhbGxlZCB2ZXJzaW9uc1xuIgogCQl1cGRhdGVfY29udGVudHMg JHBkYi8kbmV3X3BvcnQvK0NPTlRFTlRTIDsgcG1fdgpAQCAtMzk0Myw3ICs0MjM1LDcgQEAKIGlm IFsgLW4gIiRNQUtFX1BBQ0tBR0UiIF07IHRoZW4KIAlpZiBbIC16ICIkdXNlX3BhY2thZ2UiIF07 IHRoZW4KIAkJZWNobyAiPT09Pj4+IENyZWF0aW5nIGEgcGFja2FnZSBmb3IgbmV3IHZlcnNpb24g JG5ld19wb3J0IgotCQlwbV9tYWtlX3MgcGFja2FnZSA+L2Rldi9udWxsIHx8IGZhaWwgIlBhY2th Z2UgY3JlYXRpb24gb2YgJG5ld19wb3J0IGZhaWxlZCIKKwkJcG1fbWFrZV9zIC1EX09QVElPTlNf T0sgcGFja2FnZSA+L2Rldi9udWxsIHx8IGZhaWwgIlBhY2thZ2UgY3JlYXRpb24gb2YgJG5ld19w b3J0IGZhaWxlZCIKIAkJZWNobyAiCT09PT4+PiBQYWNrYWdlIHNhdmVkIHRvICRQQUNLQUdFUy9B bGwiIDsgZWNobyAnJwogCWVsc2UKIAkJcG1fcGtnX2NyZWF0ZSAkUEFDS0FHRVMgJG5ld19wb3J0 CkBAIC0zOTU2LDI5ICs0MjQ4LDM3IEBACiAJcG1fdgogZmkKIAotY2hlY2tfZGVwZW5kZW5jeV9m aWxlcyAkcG9ydGRpciAkbmV3X3BvcnQKLWlmIFsgLXMgIiRncmVwX2RlcHMiIF07IHRoZW4KLQll Y2hvIC1lICI9PT0+Pj4gVXBkYXRpbmcgZGVwZW5kZW5jeSBlbnRyeSBmb3IgJG5ld19wb3J0IGlu IGVhY2ggZGVwZW5kZW50IHBvcnRcbiIKLQl3aGlsZSByZWFkIGRfcG9ydDsgZG8KLQkJcG1fdiAi PT09Pj4+ICRkX3BvcnQiCi0JCWRwX2NvbnQ9JHBkYi8kZF9wb3J0LytDT05URU5UUwotCQlbIC1l ICIkZHBfY29udCIgXSB8fCBjb250aW51ZQotCi0JCWlmIFsgLW4gIiRyb19vcGQiIF0gJiYgZ3Jl cCAtcWwgIkRFUE9SSUdJTjokcm9fb3BkJCIgJGRwX2NvbnQ7IHRoZW4KLQkJCXVwZGF0ZV9jb250 ZW50cyAkZHBfY29udCAkcG9ydGRpciAkbmV3X3BvcnQgJHJvX29wZAotCQlmaQotCQkjIERvIHRo aXMgb25lIGxhc3Qgc28gaXQgY2FuIGdldCBkZWxldGVkIGFzIGEgZHVwbGljYXRlCi0JCSMgaWYg cm9fb3BkIGlzIHByZXNlbnQuCi0JCWlmIGdyZXAgLXFsICJERVBPUklHSU46JHBvcnRkaXIkIiAk ZHBfY29udDsgdGhlbgotCQkJdXBkYXRlX2NvbnRlbnRzICRkcF9jb250ICRwb3J0ZGlyICRuZXdf cG9ydAotCQlmaQotCWRvbmUgPCAkZ3JlcF9kZXBzCi0JdW5zZXQgZF9wb3J0IGRwX2NvbnQgOyBw bV92Ci0KLQl1cGRhdGVfcmVxdWlyZWRfYnkgJG5ld19wb3J0Ci0JWyAtbiAiJG5lZWR3cyIgXSAm JiB7IHBtX3Y7IHVuc2V0IG5lZWR3czsgfQoraWYgWyAteiAiJHVzZV9wa2duZyIgXTsgdGhlbgor CWNoZWNrX2RlcGVuZGVuY3lfZmlsZXMgJHBvcnRkaXIgJG5ld19wb3J0CisJaWYgWyAtcyAiJGdy ZXBfZGVwcyIgXTsgdGhlbgorCQllY2hvIC1lICI9PT0+Pj4gVXBkYXRpbmcgZGVwZW5kZW5jeSBl bnRyeSBmb3IgJG5ld19wb3J0IGluIGVhY2ggZGVwZW5kZW50IHBvcnRcbiIKKwkJd2hpbGUgcmVh ZCBkX3BvcnQ7IGRvCisJCQlwbV92ICI9PT0+Pj4gJGRfcG9ydCIKKwkJCWRwX2NvbnQ9JHBkYi8k ZF9wb3J0LytDT05URU5UUworCQkJWyAtZSAiJGRwX2NvbnQiIF0gfHwgY29udGludWUKKwkKKwkJ CWlmIFsgLW4gIiRyb19vcGQiIF0gJiYgZ3JlcCAtcWwgIkRFUE9SSUdJTjokcm9fb3BkJCIgJGRw X2NvbnQ7IHRoZW4KKwkJCQl1cGRhdGVfY29udGVudHMgJGRwX2NvbnQgJHBvcnRkaXIgJG5ld19w b3J0ICRyb19vcGQKKwkJCWZpCisJCQkjIERvIHRoaXMgb25lIGxhc3Qgc28gaXQgY2FuIGdldCBk ZWxldGVkIGFzIGEgZHVwbGljYXRlCisJCQkjIGlmIHJvX29wZCBpcyBwcmVzZW50LgorCQkJaWYg Z3JlcCAtcWwgIkRFUE9SSUdJTjokcG9ydGRpciQiICRkcF9jb250OyB0aGVuCisJCQkJdXBkYXRl X2NvbnRlbnRzICRkcF9jb250ICRwb3J0ZGlyICRuZXdfcG9ydAorCQkJZmkKKwkJZG9uZSA8ICRn cmVwX2RlcHMKKwkJdW5zZXQgZF9wb3J0IGRwX2NvbnQgOyBwbV92CisJCisJCXVwZGF0ZV9yZXF1 aXJlZF9ieSAkbmV3X3BvcnQKKwkJWyAtbiAiJG5lZWR3cyIgXSAmJiB7IHBtX3Y7IHVuc2V0IG5l ZWR3czsgfQorCWZpCitlbHNlCisJaWYgWyAtbiAiJHJvX29wZCIgXTsgdGhlbgorCQllY2hvICI9 PT0+Pj4gVXBkYXRpbmcgZGVwZW5kZW5jeSBlbnRyeSBmb3IgJG5ld19wb3J0IGluIGVhY2ggZGVw ZW5kZW50IHBvcnQiCisJCXBrZyBzZXQgLXlvICRyb19vcGQ6JHBvcnRkaXIKKwlmaQogZmkKIAor CiBpZiBbIC1uICIkdXBnX3BvcnQiIF07IHRoZW4KIAlpZiBbICEgIiR1cGdfcG9ydCIgPSAiJG5l d19wb3J0IiBdOyB0aGVuCiAJCWlsaXN0PSJVcGdyYWRlIG9mICR1cGdfcG9ydCB0byAkbmV3X3Bv cnQiCkBAIC0zOTk0LDEzICs0Mjk0LDE1IEBACiBmaQogCiBJTlNUQUxMRURfTElTVD0iJHtJTlNU QUxMRURfTElTVH1cdCR7aWxpc3R9XG4iCi1bIC1lICIkcGRiLyRuZXdfcG9ydC8rRElTUExBWSIg XSAmJiBESVNQTEFZX0xJU1Q9IiR7RElTUExBWV9MSVNUfSRuZXdfcG9ydCAiCitbIC16ICIkdXNl X3BrZ25nIiAtYSAtZSAiJHBkYi8kbmV3X3BvcnQvK0RJU1BMQVkiIC1vIC1uICIkdXNlX3BrZ25n IiAtYSAtbiAiYHBrZyBxdWVyeSAiJU0iICRuZXdfcG9ydGAiIF0gJiYKKwlESVNQTEFZX0xJU1Q9 IiR7RElTUExBWV9MSVNUfSRuZXdfcG9ydCAiCiBDVVJfREVQUz0iJHtDVVJfREVQU30ke25ld19w b3J0fToke3BvcnRkaXJ9OiIKIAogWyAtbiAiJEhJREVfQlVJTEQiIC1hIC1uICIkcG9ydF9sb2ci IF0gJiYgcG1fdW5saW5rICRwb3J0X2xvZwogCiBbIC1uICIkUE1fVVJCIiAtbyAtbiAiJFBNX1VS Ql9VUCIgXSAmJiBQTV9VUkJfRE9ORT0iJHtQTV9VUkJfRE9ORX0ke25ld19wb3J0fToiCiBbIC1u ICIkUE1fVVJCIiAtbyAtbiAiJFBNX1VSQl9VUCIgLW8gLW4gIiRQTV9GT1JDRSIgXSAmJgorCXBt X21rZGlyX3MgJHBkYi8kbmV3X3BvcnQgJiYKIAkkUE1fU1VfQ01EIHRvdWNoICRwZGIvJG5ld19w b3J0L1BNX1VQR1JBREVfRE9ORV9GTEFHCiAKIGlmIFsgLXogIiRET05UX1NDUlVCX0RJU1RGSUxF UyIgXTsgdGhlbgo= --20cf3074b4f49b7d9b04c6d5d258--