From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by sourceware.org (Postfix) with ESMTP id 86F933857802 for ; Sun, 22 Nov 2020 19:27:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 86F933857802 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-110-bEB6mNjZMmmgSYxSjzl8mA-1; Sun, 22 Nov 2020 14:27:34 -0500 X-MC-Unique: bEB6mNjZMmmgSYxSjzl8mA-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 2C3961005D7C for ; Sun, 22 Nov 2020 19:27:33 +0000 (UTC) Received: from localhost.localdomain (ovpn-113-152.phx2.redhat.com [10.3.113.152]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7467F5D9CC for ; Sun, 22 Nov 2020 19:27:32 +0000 (UTC) From: Jeff Law To: GCC Patches Subject: H8 cc0 conversion Message-ID: <97ecedff-d840-a5cc-8178-39ce8e2175c5@redhat.com> Date: Sun, 22 Nov 2020 12:27:31 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.3.1 MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="------------CA112ACF8034CB46167405F5" Content-Language: en-US X-Spam-Status: No, score=-10.1 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_ASCII_DIVIDERS, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SCC_10_SHORT_WORD_LINES, SCC_5_SHORT_WORD_LINES, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Nov 2020 19:27:52 -0000 This is a multi-part message in MIME format. --------------CA112ACF8034CB46167405F5 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit This is the primary patch for cc0 removal on the H8 port.  It doesn't have any of the optimization work and many patterns are simply disabled at this time.  It's working well enough to not regress the testsuite. The H8 is similar to the m68k and other ports in that the vast majority of instructions clobber the condition codes, including most of the arithmetic insns that reload needs to use.  While there's a special adds/subs that does not modify the condition codes, they only accept constant addends of 1, 2 and 4.  With that in mind, this port does not expose cc0 until after reload.  So most patterns are defined using define_insn_and_split.  The splitter adds the appropriate clobbers.  A subsequent patch will add patterns that set the condition codes and returns the port to generating roughly equivalent code to before removing cc0 support. One might argue that this is an effective rewrite since nearly every pattern changes and as such I've been a bit more liberal than usual on the ChangeLog entry.  For the highly mechanical changes, I've just called out the change for the .md file as a whole rather than every pattern that got changed. This is a combination of my son's work as well as my own. I'll be pushing this to the trunk shortly.  Subsequent patches will be restoring code quality by using the compare-elim pass to eliminate unnecessary test/compare insns. Jeff --------------CA112ACF8034CB46167405F5 Content-Type: text/plain; charset=UTF-8; name="P" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="P" CSogY29uZmlnL2g4MzAwL2FkZHN1Yi5tZDogVHVybiBleGlzdGluZyBwYXR0ZXJucyBpbnRvCglk ZWZpbmVfaW5zbl9hbmRfc3BsaXQgc3R5bGUgcGF0dGVybnMgd2hlcmUgdGhlIHNwbGl0dGVyCglh ZGRzIGEgY2xvYmJlciBvZiB0aGUgY29uZGl0aW9uIGNvZGUgcmVnaXN0ZXIuICBEcm9wICJjYyIK CWF0dHJpYnV0ZS4gIEFkZCBfY2xvYmJlcl9mbGFncyBwYXR0ZXJucyB0byBtYXRjaCBvdXRwdXQg b2YKCXRoZSBzcGxpdHRlcnMuCgkoYWRkPG1vZD4zX2luY2RlYyk6IFJlbW92ZSBwYXR0ZXJuCgko YWRkcy9zdWJzIHNwbGl0dGVyKTogT25seSBydW4gYmVmb3JlIHJlbG9hZC4KCSogY29uZmlnL2g4 MzAwL2JpdGZpZWxkLm1kOiBUdXJuIGV4aXN0aW5nIHBhdHRlcm5zIGludG8KCWRlZmluZV9pbnNu X2FuZF9zcGxpdCBzdHlsZSBwYXR0ZXJucyB3aGVyZSB0aGUgc3BsaXR0ZXIKCWFkZHMgYSBjbG9i YmVyIG9mIHRoZSBjb25kaXRpb24gY29kZSByZWdpc3Rlci4gIERyb3AgImNjIgoJYXR0cmlidXRl LiAgQWRkIF9jbG9iYmVyX2ZsYWdzIHBhdHRlcm5zIHRvIG1hdGNoIG91dHB1dAoJb2YgdGhlIHNw bGl0dGVycy4KCShjc3RvcmVxaTQsIGNzdG9yZWhpNCwgY3N0b3Jlc2k0KTogQ29tbWVudCBvdXQK CSgqYnN0emhpcmVnLCAqY21wc3R6LCAqYnN0eiwgKmJpc3R6LCAqY21wY29uZHNldCk6IExpa2V3 aXNlCgkoKmNvbmRic2V0LCAqY21wY29uZGJjbHIsICpjb25kYmNscik6IExpa2V3aXNlLgoJKCpj bXBjb25kYnNldHJlZywgKmNvbmRic2V0cmVnLCAqY21wY29uZGJjbHJyZWcpOiBMaWtld2lzZS4K CSgqY29uZGJjbHJyZWcpOiBMaWtld2lzZS4KCSogY29uZmlnL2g4MzAwL2NvbWJpbmVyLm1kOiBU dXJuIGV4aXN0aW5nIHBhdHRlcm5zIGludG8KCWRlZmluZV9pbnNuX2FuZF9zcGxpdCBzdHlsZSBw YXR0ZXJucyB3aGVyZSB0aGUgc3BsaXR0ZXIKCWFkZHMgYSBjbG9iYmVyIG9mIHRoZSBjb25kaXRp b24gY29kZSByZWdpc3Rlci4gIERyb3AgImNjIgoJYXR0cmlidXRlLiAgQWRkIF9jbG9iYmVyX2Zs YWdzIHBhdHRlcm5zIHRvIG1hdGNoIG91dHB1dCBvZgoJdGhlIHNwbGl0dGVycy4gIEFkZCBhcHBy b3ByaWF0ZSBDQyByZWdpc3RlciBjbG9iYmVycyB0bwoJZXhpc3Rpbmcgc3BsaXR0ZXJzLgoJKCph ZGRzaTNfYW5kX3JfMSk6IERpc2FibGUgZm9yIG5vdy4KCSgqYWRkc2kzX2FuZF9ub3Rfcl8xLCBi aXQtdGVzdCBicmFuY2hlcyk6IExpa2V3aXNlLgoJKiBjb25maWcvaDgzMDAvZGl2bW9kLm1kOiBU dXJuIGV4aXN0aW5nIHBhdHRlcm5zIGludG8KCWRlZmluZV9pbnNuX2FuZF9zcGxpdCBzdHlsZSBw YXR0ZXJucyB3aGVyZSB0aGUgc3BsaXR0ZXIKCWFkZHMgYSBjbG9iYmVyIG9mIHRoZSBjb25kaXRp b24gY29kZSByZWdpc3Rlci4gIERyb3AgImNjIgoJYXR0cmlidXRlLiAgQWRkIF9jbG9iYmVyX2Zs YWdzIHBhdHRlcm5zIHRvIG1hdGNoIG91dHB1dCBvZgoJdGhlIHNwbGl0dGVycy4KCSogY29uZmln L2g4MzAwL2V4dGVuc2lvbnMubWQ6IFR1cm4gZXhpc3RpbmcgcGF0dGVybnMgaW50bwoJZGVmaW5l X2luc25fYW5kX3NwbGl0IHN0eWxlIHBhdHRlcm5zIHdoZXJlIHRoZSBzcGxpdHRlcgoJYWRkcyBh IGNsb2JiZXIgb2YgdGhlIGNvbmRpdGlvbiBjb2RlIHJlZ2lzdGVyLiAgRHJvcCAiY2MiCglhdHRy aWJ1dGUuICBBZGQgX2Nsb2JiZXJfZmxhZ3MgcGF0dGVybnMgdG8gbWF0Y2ggb3V0cHV0IG9mCgl0 aGUgc3BsaXR0ZXJzLgoJKiBjb25maWcvaDgzMDAvZ2VubW92YS5zaDogRHJvcCAiY2MiIGF0dHJp YnV0ZSBmcm9tIHBhdHRlcm5zLgoJKiBjb25maWcvaDgzMDAvbW92YS5tZDogRHJvcCAiY2MiIGF0 dHJpYnV0ZSBmcm9tIHBhdHRlcm5zLgoJKiBjb25maWcvaDgzMDAvaDgzMDAtbW9kZXMuZGVmOiBB ZGQgQ0NaTiBhbmQgQ0NaTlYgbW9kZXMuCgkqIGNvbmZpZy9oODMwMC9oODMwMC1wcm90b3NoIChv dXRwdXRfcGx1c3NpKTogVXBkYXRlIHByb3RvdHlwZS4KCShjb21wdXRlX3BsdXNzaV9sZW5ndGgp OiBMaWtld2lzZS4KCShoODMwMF9zZWxlY3RfY2NfbW9kZSk6IEFkZCBwcm90b3R5cGUuCgkoY29t cHV0ZV9hX3NoaWZ0X2NjKTogUmVtb3ZlIHByb3RvdHlwZQoJKGNtcHV0ZV9sb2dpY2FsX29wX2Nj KTogTGlrZXdpc2UuCgkqIGNvbmZpZy9oODMwMC9oODMwMC5jIChuYW1lc19iaWcpOiBBZGQgImNj IiByZWdpc3Rlci4KCShuYW1lc19leHRlbmRlZCwgbmFtZXNfdXBwZXJfZXh0ZW5kZWQpOiBMaWtl d2lzZS4KCShoODMwMF9lbWl0X3N0YWNrX2FkanVzdG1lbnQpOiBCZSBtb3JlIHNlbGVjdGl2ZSBh Ym91dCBzZXR0aW5nCglSVFhfRlJBTUVfUkVMQVRFRF9QLgoJKGg4MzAwX3ByaW50X29wZXJhbmQp OiBIYW5kbGUgQ0NaTiBtb2RlCgkoaDgzMDBfc2VsZWN0X2NjX21vZGUpOiBOZXcgZnVuY3Rpb24u Cgkobm90aWNlX3VwZGF0ZV9jYyk6IGlmLTAgb3V0LiAgT25seSBrZXB0IGZvciByZWZlcmVuY2Ug cHVycG9zZXMuCgkoaDgzMDBfZXhwYW5kX3N0b3JlKTogTGlrZXdpc2UuCgkoaDgzMDBfYmluYXJ5 X2xlbmd0aCk6IEhhbmRsZSBuZXcgaW5zbiBmb3Jtcy4KCShvdXRwdXRfcGx1c3NpKTogQWRkIGFy Z3VtZW50IGZvciBORUVEX0ZMQUdTIGFuZCBoYW5kbGUgdGhhdCBjYXNlLgoJKGNvbXB1dGVfcGx1 c3NpX2xlbmd0aCk6IExpa2V3aXNlLgoJKGNvbXB1dGVfbG9naWNhbF9vcF9jYyk6IFJldHVybiBp bnRlZ2VyLgoJKFRBUkdFVF9GTEFHU19SRUdOVU0pOiBEZWZpbmUuCgkqIGNvbmZpZy9oODMwMC9o ODMwMCxoIChGSVJTVF9QU0VVRE9fUkVHSVNURVIpOiBCdW1wIGZvciBjYyByZWdpc3Rlci4KCShG SVhFRF9SRUdJU1RFUlMsIENBTExfVVNFRF9SRUdJU1RFUlMpOiBIYW5kbGUgY2MgcmVnaXN0ZXIu CgkoUkVHX0FMTE9DX09SREVSLCBSRUdJU1RFUl9OQU1FUyk6IExpa2V3aXNlLgoJKFNFTEVDVF9D Q19NT0RFKTogRGVmaW5lLgoJKiBjb25maWcvaDgzMDAvaDgzMDAubWQ6IEFkZCBDQ19SRUcuCglE byBub3QgaW5jbHVkZSBwZWVwaG9sZXMubWQgZm9yIG5vdy4KCSogY29uZmlnL2g4MzAwL2p1bXBj YWxsLm1kIChjYnJhbmNocWk0KTogQ29uc29saWRhdGUgaW50bwoJY2JyYW5jaDxtb2RlPjQuCgko Y2JyYW5jaGhpNCwgY2JyYW5jaHNpNCk6IExpa2V3aXNlLgoJKGNicmFuY2g8bW9kZT40KTogTmV3 IGV4cGFuZGVyLgoJKGJyYW5jaCk6IE5ldyBkZWZpbmVfaW5zbl9hbmRfc3BsaXQgZm9yIHVzZSBi ZWZvcmUgcmVsb2FkLgoJKGJyYW5jaF8xLCBicmFuY2hfMV9mYWxzZSk6IE5ldyBwYXR0ZXJucyB0 byBtYXRjaCBzcGxpdHRlciBvdXRwdXQuCglSZW1vdmUgY29kZSB0byBtYW5hZ2UgY2Nfc3RhdHVz LmZsYWdzLgoJKiBjb25maWcvaDgzMDAvbG9naWNhbC5tZDogVHVybiBleGlzdGluZyBwYXR0ZXJu cyBpbnRvCglkZWZpbmVfaW5zbl9hbmRfc3BsaXQgc3R5bGUgcGF0dGVybnMgd2hlcmUgdGhlIHNw bGl0dGVyCglhZGRzIGEgY2xvYmJlciBvZiB0aGUgY29uZGl0aW9uIGNvZGUgcmVnaXN0ZXIuICBE cm9wICJjYyIKCWF0dHJpYnV0ZS4gIEFkZCBfY2xvYmJlcl9mbGFncyBwYXR0ZXJucyB0byBtYXRj aCBvdXRwdXQgb2YKCXRoZSBzcGxpdHRlcnMuICBNb3ZlIHZhcmlvdXMgcGVlcGhvbGVzIGludG8g dGhpcyBmaWxlLgoJKiBjb25maWcvaDgzMDAvbW92ZXB1c2gubWQ6IFR1cm4gZXhpc3RpbmcgcGF0 dGVybnMgaW50bwoJZGVmaW5lX2luc25fYW5kX3NwbGl0IHN0eWxlIHBhdHRlcm5zIHdoZXJlIHRo ZSBzcGxpdHRlcgoJYWRkcyBhIGNsb2JiZXIgb2YgdGhlIGNvbmRpdGlvbiBjb2RlIHJlZ2lzdGVy LiAgRHJvcCAiY2MiCglhdHRyaWJ1dGUuICBBZGQgX2Nsb2JiZXJfZmxhZ3MgcGF0dGVybnMgdG8g bWF0Y2ggb3V0cHV0IG9mCgl0aGUgc3BsaXR0ZXJzLgoJKiBjb25maWcvaDgzMDAvbXVsdGlwbHku bWQ6IFR1cm4gZXhpc3RpbmcgcGF0dGVybnMgaW50bwoJZGVmaW5lX2luc25fYW5kX3NwbGl0IHN0 eWxlIHBhdHRlcm5zIHdoZXJlIHRoZSBzcGxpdHRlcgoJYWRkcyBhIGNsb2JiZXIgb2YgdGhlIGNv bmRpdGlvbiBjb2RlIHJlZ2lzdGVyLiAgRHJvcCAiY2MiCglhdHRyaWJ1dGUuICBBZGQgX2Nsb2Ji ZXJfZmxhZ3MgcGF0dGVybnMgdG8gbWF0Y2ggb3V0cHV0IG9mCgl0aGUgc3BsaXR0ZXJzLgoJKiBj b25maWcvaDgzMDAvb3RoZXIubWQ6IFR1cm4gZXhpc3RpbmcgcGF0dGVybnMgaW50bwoJZGVmaW5l X2luc25fYW5kX3NwbGl0IHN0eWxlIHBhdHRlcm5zIHdoZXJlIHRoZSBzcGxpdHRlcgoJYWRkcyBh IGNsb2JiZXIgb2YgdGhlIGNvbmRpdGlvbiBjb2RlIHJlZ2lzdGVyLiAgRHJvcCAiY2MiCglhdHRy aWJ1dGUuICBBZGQgX2Nsb2JiZXJfZmxhZ3MgcGF0dGVybnMgdG8gbWF0Y2ggb3V0cHV0IG9mCgl0 aGUgc3BsaXR0ZXJzLgoJKiBjb25maWcvaDgzMDAvcGVlcGhvbGVzLm1kOiBSZW1vdmUgcGVlcGhv bGVzIHRoYXQgd2VyZSBtb3ZlZAoJZWxzZXdoZXJlLgoJKiBjb25maWcvaDgzMDAvcHJlZGljYXRl cy5tZCAoc2ltcGxlX21lbW9yeV9vcGVyYW5kKTogTmV3LgoJKiBjb25maWcvaDgzMDAvcHJvZXBp Lm1kOiBEcm9wICJjYyIgYXR0cmlidXRlIHNldHRpbmcuCgkqIGNvbmZpZy9oODMwMC9zaGlmdHJv dGF0ZS5tZDogVHVybiBleGlzdGluZyBwYXR0ZXJucyBpbnRvCglkZWZpbmVfaW5zbl9hbmRfc3Bs aXQgc3R5bGUgcGF0dGVybnMgd2hlcmUgdGhlIHNwbGl0dGVyCglhZGRzIGEgY2xvYmJlciBvZiB0 aGUgY29uZGl0aW9uIGNvZGUgcmVnaXN0ZXIuICBEcm9wICJjYyIKCWF0dHJpYnV0ZS4gIEFkZCBf Y2xvYmJlcl9mbGFncyBwYXR0ZXJucyB0byBtYXRjaCBvdXRwdXQgb2YKCXRoZSBzcGxpdHRlcnMu CgkqIGNvbmZpZy9oODMwMC90ZXN0Y29tcGFyZS5tZDogVHVybiBleGlzdGluZyBwYXR0ZXJucyBp bnRvCglkZWZpbmVfaW5zbl9hbmRfc3BsaXQgc3R5bGUgcGF0dGVybnMgd2hlcmUgdGhlIHNwbGl0 dGVyCglhZGRzIGEgY2xvYmJlciBvZiB0aGUgY29uZGl0aW9uIGNvZGUgcmVnaXN0ZXIuICBEcm9w ICJjYyIKCWF0dHJpYnV0ZS4gIEFkZCBfY2xvYmJlcl9mbGFncyBwYXR0ZXJucyB0byBtYXRjaCBv dXRwdXQgb2YKCXRoZSBzcGxpdHRlcnMuICBEaXNhYmxlIHZhcmlvdXMgcGF0dGVybnMgZm9yIG5v dy4KCU1vdmUgc29tZSBwZWVwaG9sZXMgdGhhdCB3ZXJlIHByZXZpb3VzbHkgaW4gcGVlcGhvbGVz Lm1kIGhlcmUuCgkKCgkKCQoJCgkKCgoKCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2g4MzAwL2Fk ZHN1Yi5tZCBiL2djYy9jb25maWcvaDgzMDAvYWRkc3ViLm1kCmluZGV4IGYzMzkyODU2Yjc2Li5k MDg3N2MwMDhiZiAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9oODMwMC9hZGRzdWIubWQKKysrIGIv Z2NjL2NvbmZpZy9oODMwMC9hZGRzdWIubWQKQEAgLTksNjQgKzksNzggQEAKICAgIiIKICAgIiIp CiAKLShkZWZpbmVfaW5zbiAiKmFkZHFpMyIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIiphZGRx aTMiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgImg4MzAwX2RzdF9vcGVyYW5kIiAiPXJR IikKIAkocGx1czpRSSAobWF0Y2hfb3BlcmFuZDpRSSAxICJoODMwMF9kc3Rfb3BlcmFuZCIgIiUw IikKIAkJIChtYXRjaF9vcGVyYW5kOlFJIDIgImg4MzAwX3NyY19vcGVyYW5kIiAiclFpIikpKV0K ICAgImg4MzAwX29wZXJhbmRzX21hdGNoX3AgKG9wZXJhbmRzKSIKKyAgIiMiCisgICJyZWxvYWRf Y29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkgKHBsdXM6UUkgKG1h dGNoX2R1cCAxKSAobWF0Y2hfZHVwIDIpKSkKKwkgICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JF RykpXSldKQorCisoZGVmaW5lX2luc24gIiphZGRxaTNfY2xvYmJlcl9mbGFncyIKKyAgWyhzZXQg KG1hdGNoX29wZXJhbmQ6UUkgMCAiaDgzMDBfZHN0X29wZXJhbmQiICI9clEiKQorCShwbHVzOlFJ IChtYXRjaF9vcGVyYW5kOlFJIDEgImg4MzAwX2RzdF9vcGVyYW5kIiAiJTAiKQorCQkgKG1hdGNo X29wZXJhbmQ6UUkgMiAiaDgzMDBfc3JjX29wZXJhbmQiICJyUWkiKSkpCisgICAoY2xvYmJlciAo cmVnOkNDIENDX1JFRykpXQorICAicmVsb2FkX2NvbXBsZXRlZCAmJiBoODMwMF9vcGVyYW5kc19t YXRjaF9wIChvcGVyYW5kcykiCiAgICJhZGQuYgklWDIsJVgwIgotICBbKHNldF9hdHRyICJsZW5n dGhfdGFibGUiICJhZGQiKQotICAgKHNldF9hdHRyICJjYyIgInNldF96biIpXSkKKyAgWyhzZXRf YXR0ciAibGVuZ3RoX3RhYmxlIiAiYWRkIildKQogCi0oZGVmaW5lX2luc24gIiphZGRoaTNfaDgz MDBocyIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIiphZGRoaSIKICAgWyhzZXQgKG1hdGNoX29w ZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yLHIscixyLHIiKQogCShwbHVzOkhJICht YXRjaF9vcGVyYW5kOkhJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIlMCwwLDAsMCwwIikKIAkJICht YXRjaF9vcGVyYW5kOkhJIDIgImg4MzAwX3NyY19vcGVyYW5kIiAiTCxOLEosbixyIikpKV0KICAg IiFUQVJHRVRfSDgzMDBTWCIKKyAgIiMiCisgICJyZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFs bGVsIFsoc2V0IChtYXRjaF9kdXAgMCkgKHBsdXM6SEkgKG1hdGNoX2R1cCAxKSAobWF0Y2hfZHVw IDIpKSkKKwkgICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXSldKQorCisoZGVmaW5lX2lu c24gIiphZGRoaTNfY2xvYmJlcl9mbGFncyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAi cmVnaXN0ZXJfb3BlcmFuZCIgIj1yLHIscixyLHIiKQorCShwbHVzOkhJIChtYXRjaF9vcGVyYW5k OkhJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIlMCwwLDAsMCwwIikKKwkJIChtYXRjaF9vcGVyYW5k OkhJIDIgImg4MzAwX3NyY19vcGVyYW5kIiAiTCxOLEosbixyIikpKQorICAgKGNsb2JiZXIgKHJl ZzpDQyBDQ19SRUcpKV0KKyAgInJlbG9hZF9jb21wbGV0ZWQgJiYgIVRBUkdFVF9IODMwMFNYIgog ICAiQAogICAgYWRkcwklMiwlUzAKICAgIHN1YnMJJUcyLCVTMAogICAgYWRkLmIJJXQyLCV0MAog ICAgYWRkLncJJVQyLCVUMAogICAgYWRkLncJJVQyLCVUMCIKLSAgWyhzZXRfYXR0ciAibGVuZ3Ro IiAiMiwyLDIsNCwyIikKLSAgIChzZXRfYXR0ciAiY2MiICJub25lXzBoaXQsbm9uZV8waGl0LGNs b2JiZXIsc2V0X3puLHNldF96biIpXSkKLQotKGRlZmluZV9pbnNuICIqYWRkPG1vZGU+M19pbmNk ZWMiCi0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIs ciIpCi0JKHVuc3BlYzpIU0kgWyhtYXRjaF9vcGVyYW5kOkhTSSAxICJyZWdpc3Rlcl9vcGVyYW5k IiAiMCwwIikKLQkJICAgICAobWF0Y2hfb3BlcmFuZDpIU0kgMiAiaW5jZGVjX29wZXJhbmQiICJN LE8iKV0KLQkJICAgIFVOU1BFQ19JTkNERUMpKV0KLSAgIiIKLSAgewotICAgIGlmICh3aGljaF9h bHRlcm5hdGl2ZSA9PSAwKQotICAgICAgcmV0dXJuIDxNT0RFPm1vZGUgPT0gSEltb2RlID8gImlu Yy53XHQlMiwlVDAiIDogImluYy5sXHQlMiwlUzAiOwotICAgIGVsc2UgaWYgKHdoaWNoX2FsdGVy bmF0aXZlID09IDEpCi0gICAgICByZXR1cm4gPE1PREU+bW9kZSA9PSBISW1vZGUgPyAiZGVjLndc dCVHMiwlVDAiIDogImRlYy5sXHQlRzIsJVMwIjsKLSAgICBnY2NfdW5yZWFjaGFibGUgKCk7Ci0g ICB9Ci0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjIsMiIpCi0gICAoc2V0X2F0dHIgImNjIiAic2V0 X3puLHNldF96biIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMiwyLDIsNCwyIildKQogCi0o ZGVmaW5lX2luc24gIiphZGRoaTNfaDhzeCIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIiphZGRo aTNfaDhzeCIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAiaDgzMDBfZHN0X29wZXJhbmQi ICI9clUsclUscixyUSIpCiAJKHBsdXM6SEkgKG1hdGNoX29wZXJhbmQ6SEkgMSAiaDgzMDBfZHN0 X29wZXJhbmQiICIlMCwwLDAsMCIpCiAJCSAobWF0Y2hfb3BlcmFuZDpISSAyICJoODMwMF9zcmNf b3BlcmFuZCIgIlAzPlgsUDM8WCxKLHJRaSIpKSldCiAgICJUQVJHRVRfSDgzMDBTWCAmJiBoODMw MF9vcGVyYW5kc19tYXRjaF9wIChvcGVyYW5kcykiCisgICIjIgorICAicmVsb2FkX2NvbXBsZXRl ZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApIChwbHVzOkhJIChtYXRjaF9kdXAg MSkgKG1hdGNoX2R1cCAyKSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pXSkK KworKGRlZmluZV9pbnNuICIqYWRkaGkzX2g4c3hfY2xvYmJlcl9mbGFncyIKKyAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6SEkgMCAiaDgzMDBfZHN0X29wZXJhbmQiICI9clUsclUscixyUSIpCisJKHBs dXM6SEkgKG1hdGNoX29wZXJhbmQ6SEkgMSAiaDgzMDBfZHN0X29wZXJhbmQiICIlMCwwLDAsMCIp CisJCSAobWF0Y2hfb3BlcmFuZDpISSAyICJoODMwMF9zcmNfb3BlcmFuZCIgIlAzPlgsUDM8WCxK LHJRaSIpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldCisgICJyZWxvYWRfY29tcGxl dGVkICYmIFRBUkdFVF9IODMwMFNYICYmIGg4MzAwX29wZXJhbmRzX21hdGNoX3AgKG9wZXJhbmRz KSIKICAgIkAKICAgIGFkZC53CSVUMjozLCVUMAogICAgc3ViLncJJUcyOjMsJVQwCiAgICBhZGQu YgkldDIsJXQwCiAgICBhZGQudwklVDIsJVQwIgogICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUi ICJzaG9ydF9pbW1lZGlhdGUsc2hvcnRfaW1tZWRpYXRlLCosYWRkIikKLSAgIChzZXRfYXR0ciAi bGVuZ3RoIiAiKiwqLDIsKiIpCi0gICAoc2V0X2F0dHIgImNjIiAic2V0X3puIildKQorICAgKHNl dF9hdHRyICJsZW5ndGgiICIqLCosMiwqIildKQogCiAoZGVmaW5lX3NwbGl0CiAgIFsoc2V0ICht YXRjaF9vcGVyYW5kOkhTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKIAkocGx1czpIU0kgKG1h dGNoX2R1cCAwKQogCQkgKG1hdGNoX29wZXJhbmQ6SFNJIDEgInR3b19pbnNuX2FkZHNfc3Vic19v cGVyYW5kIiAiIikpKV0KLSAgIiIKKyAgIiFyZWxvYWRfY29tcGxldGVkIgogICBbKGNvbnN0X2lu dCAwKV0KICAgewogICAgIHNwbGl0X2FkZHNfc3VicyAoPE1PREU+bW9kZSwgb3BlcmFuZHMpOwpA QCAtNzQsMTggKzg4LDI3IEBACiAgIH0pCiAKIAotKGRlZmluZV9pbnNuICIqYWRkc2lfaDgzMDBo cyIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIiphZGRzaSIKICAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6U0kgMCAiaDgzMDBfZHN0X29wZXJhbmQiICI9clEsclEiKQogCShwbHVzOlNJIChtYXRjaF9v cGVyYW5kOlNJIDEgImg4MzAwX2RzdF9vcGVyYW5kIiAiJTAsMCIpCiAJCSAobWF0Y2hfb3BlcmFu ZDpTSSAyICJoODMwMF9zcmNfb3BlcmFuZCIgImksclEiKSkpXQogICAiaDgzMDBfb3BlcmFuZHNf bWF0Y2hfcCAob3BlcmFuZHMpIgorICAiIyIKKyAgInJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFy YWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKSAocGx1czpTSSAobWF0Y2hfZHVwIDEpIChtYXRjaF9k dXAgMikpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0pCisKKyhkZWZpbmVf aW5zbiAiKmFkZHNpX2Nsb2JiZXJfZmxhZ3MiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAg Img4MzAwX2RzdF9vcGVyYW5kIiAiPXJRLHJRIikKKwkocGx1czpTSSAobWF0Y2hfb3BlcmFuZDpT SSAxICJoODMwMF9kc3Rfb3BlcmFuZCIgIiUwLDAiKQorCQkgKG1hdGNoX29wZXJhbmQ6U0kgMiAi aDgzMDBfc3JjX29wZXJhbmQiICJpLHJRIikpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcp KV0KKyAgInJlbG9hZF9jb21wbGV0ZWQgJiYgaDgzMDBfb3BlcmFuZHNfbWF0Y2hfcCAob3BlcmFu ZHMpIgogewotICByZXR1cm4gb3V0cHV0X3BsdXNzaSAob3BlcmFuZHMpOworICByZXR1cm4gb3V0 cHV0X3BsdXNzaSAob3BlcmFuZHMsIGZhbHNlKTsKIH0KICAgWyhzZXQgKGF0dHIgImxlbmd0aCIp Ci0JKHN5bWJvbF9yZWYgImNvbXB1dGVfcGx1c3NpX2xlbmd0aCAob3BlcmFuZHMpIikpCi0gICAo c2V0IChhdHRyICJjYyIpCi0JKHN5bWJvbF9yZWYgImNvbXB1dGVfcGx1c3NpX2NjIChvcGVyYW5k cykiKSldKQorCShzeW1ib2xfcmVmICJjb21wdXRlX3BsdXNzaV9sZW5ndGggKG9wZXJhbmRzLCBm YWxzZSkiKSldKQogCiA7OyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiA7OyBTVUJUUkFDVCBJTlNUUlVDVElPTlMK QEAgLTk1LDI0ICsxMTgsNDMgQEAKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UUhTSSAwICJyZWdp c3Rlcl9vcGVyYW5kIiAiIikKIAkobWludXM6UUhTSSAobWF0Y2hfb3BlcmFuZDpRSFNJIDEgInJl Z2lzdGVyX29wZXJhbmQiICIiKQogCQkgICAgKG1hdGNoX29wZXJhbmQ6UUhTSSAyICJoODMwMF9z cmNfb3BlcmFuZCIgIiIpKSldCi0gICIiCi0gIHsKLSAgfSkKKyAgIiIpCiAKLShkZWZpbmVfaW5z biAiKnN1YnFpMyIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIipzdWJxaTMiCiAgIFsoc2V0ICht YXRjaF9vcGVyYW5kOlFJIDAgImg4MzAwX2RzdF9vcGVyYW5kIiAiPXJRIikKIAkobWludXM6UUkg KG1hdGNoX29wZXJhbmQ6UUkgMSAiaDgzMDBfZHN0X29wZXJhbmQiICIwIikKIAkJICAobWF0Y2hf b3BlcmFuZDpRSSAyICJoODMwMF9kc3Rfb3BlcmFuZCIgInJRIikpKV0KICAgImg4MzAwX29wZXJh bmRzX21hdGNoX3AgKG9wZXJhbmRzKSIKKyAgIiMiCisgICJyZWxvYWRfY29tcGxldGVkIgorICBb KHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkgKG1pbnVzOlFJIChtYXRjaF9kdXAgMSkgKG1h dGNoX2R1cCAyKSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pXSkKKworKGRl ZmluZV9pbnNuICIqc3VicWkzX2Nsb2JiZXJfZmxhZ3MiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5k OlFJIDAgImg4MzAwX2RzdF9vcGVyYW5kIiAiPXJRIikKKwkobWludXM6UUkgKG1hdGNoX29wZXJh bmQ6UUkgMSAiaDgzMDBfZHN0X29wZXJhbmQiICIwIikKKwkJICAobWF0Y2hfb3BlcmFuZDpRSSAy ICJoODMwMF9kc3Rfb3BlcmFuZCIgInJRIikpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcp KV0KKyAgInJlbG9hZF9jb21wbGV0ZWQgJiYgaDgzMDBfb3BlcmFuZHNfbWF0Y2hfcCAob3BlcmFu ZHMpIgogICAic3ViLmIJJVgyLCVYMCIKLSAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAiYWRk IikKLSAgIChzZXRfYXR0ciAiY2MiICJzZXRfem4iKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aF90 YWJsZSIgImFkZCIpXSkKIAotKGRlZmluZV9pbnNuICIqc3ViPG1vZGU+M19oODMwMGhzIgorKGRl ZmluZV9pbnNuX2FuZF9zcGxpdCAiKnN1Yjxtb2RlPjMiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5k OkhTSSAwICJoODMwMF9kc3Rfb3BlcmFuZCIgIj1yUSxyUSIpCiAJKG1pbnVzOkhTSSAobWF0Y2hf b3BlcmFuZDpIU0kgMSAiaDgzMDBfZHN0X29wZXJhbmQiICIwLDAiKQogCQkgICAobWF0Y2hfb3Bl cmFuZDpIU0kgMiAiaDgzMDBfc3JjX29wZXJhbmQiICJyUSxpIikpKV0KICAgImg4MzAwX29wZXJh bmRzX21hdGNoX3AgKG9wZXJhbmRzKSIKKyAgIiMiCisgICJyZWxvYWRfY29tcGxldGVkIgorICBb KHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkgKG1pbnVzOkhTSSAobWF0Y2hfZHVwIDEpICht YXRjaF9kdXAgMikpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0pCisKKyhk ZWZpbmVfaW5zbiAiKnN1Yjxtb2RlPjNfY2xvYmJlcl9mbGFncyIKKyAgWyhzZXQgKG1hdGNoX29w ZXJhbmQ6SFNJIDAgImg4MzAwX2RzdF9vcGVyYW5kIiAiPXJRLHJRIikKKwkobWludXM6SFNJICht YXRjaF9vcGVyYW5kOkhTSSAxICJoODMwMF9kc3Rfb3BlcmFuZCIgIjAsMCIpCisJCSAgIChtYXRj aF9vcGVyYW5kOkhTSSAyICJoODMwMF9zcmNfb3BlcmFuZCIgInJRLGkiKSkpCisgICAoY2xvYmJl ciAocmVnOkNDIENDX1JFRykpXQorICAicmVsb2FkX2NvbXBsZXRlZCAmJiBoODMwMF9vcGVyYW5k c19tYXRjaF9wIChvcGVyYW5kcykiCiAgIHsgCiAgICAgaWYgKDxNT0RFPm1vZGUgPT0gSEltb2Rl KQogICAgICAgcmV0dXJuICJzdWIudwklVDIsJVQwIjsKQEAgLTEyMCw4ICsxNjIsNyBAQAogICAg ICAgcmV0dXJuICJzdWIubAklUzIsJVMwIjsKICAgICBnY2NfdW5yZWFjaGFibGUgKCk7CiAgIH0K LSAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAiYWRkIikKLSAgIChzZXRfYXR0ciAiY2MiICJz ZXRfem4iKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgImFkZCIpXSkKIAogOzsgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogOzsgTkVHQVRJT04gSU5TVFJVQ1RJT05TCkBAIC0xMzMsMTAgKzE3NCwyMCBA QAogICAiIgogICAiIikKIAotKGRlZmluZV9pbnNuICIqbmVnPG1vZGU+MiIKKyhkZWZpbmVfaW5z bl9hbmRfc3BsaXQgIipuZWc8bW9kZT4yIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpRSFNJIDAg Img4MzAwX2RzdF9vcGVyYW5kIiAiPXJRIikKIAkobmVnOlFIU0kgKG1hdGNoX29wZXJhbmQ6UUhT SSAxICJoODMwMF9kc3Rfb3BlcmFuZCIgIjAiKSkpXQogICAiIgorICAiIyIKKyAgInJlbG9hZF9j b21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKSAobmVnOlFIU0kgKG1h dGNoX2R1cCAxKSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pXSkKKworKGRl ZmluZV9pbnNuICIqbmVnPG1vZGU+Ml9jbG9iYmVyX2ZsYWdzIgorICBbKHNldCAobWF0Y2hfb3Bl cmFuZDpRSFNJIDAgImg4MzAwX2RzdF9vcGVyYW5kIiAiPXJRIikKKwkobmVnOlFIU0kgKG1hdGNo X29wZXJhbmQ6UUhTSSAxICJoODMwMF9kc3Rfb3BlcmFuZCIgIjAiKSkpCisgICAoY2xvYmJlciAo cmVnOkNDIENDX1JFRykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgewogICAgIGlmICg8TU9E RT5tb2RlID09IEVfUUltb2RlKQogICAgICAgcmV0dXJuICJuZWcJJVgwIjsKQEAgLTE0NiwxNCAr MTk3LDIxIEBACiAgICAgICByZXR1cm4gIm5lZy5sCSVTMCI7CiAgICAgZ2NjX3VucmVhY2hhYmxl ICgpOwogICB9Ci0gIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgInVuYXJ5IikKLSAgIChzZXRf YXR0ciAiY2MiICJzZXRfem4iKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgInVuYXJ5 IildKQogCi0KLShkZWZpbmVfaW5zbiAiKm5lZ3NmMl9oODMwMGhzIgorKGRlZmluZV9pbnNuX2Fu ZF9zcGxpdCAiKm5lZ3NmMiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0YgMCAicmVnaXN0ZXJf b3BlcmFuZCIgIj1yIikKLSAgICAgICAobmVnOlNGIChtYXRjaF9vcGVyYW5kOlNGIDEgInJlZ2lz dGVyX29wZXJhbmQiICIwIikpKV0KKwkobmVnOlNGIChtYXRjaF9vcGVyYW5kOlNGIDEgInJlZ2lz dGVyX29wZXJhbmQiICIwIikpKV0KICAgIiIKKyAgIiMiCisgICJyZWxvYWRfY29tcGxldGVkIgor ICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkgKG5lZzpTRiAobWF0Y2hfZHVwIDEpKSkK KwkgICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXSldKQorICAKKyhkZWZpbmVfaW5zbiAi Km5lZ3NmMl9jbG9iYmVyX2ZsYWdzIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTRiAwICJyZWdp c3Rlcl9vcGVyYW5kIiAiPXIiKQorICAgICAgIChuZWc6U0YgKG1hdGNoX29wZXJhbmQ6U0YgMSAi cmVnaXN0ZXJfb3BlcmFuZCIgIjAiKSkpCisgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXQor ICAicmVsb2FkX2NvbXBsZXRlZCIKICAgInhvci53XFx0IzMyNzY4LCVlMCIKICAgWyhzZXRfYXR0 ciAibGVuZ3RoIiAiNCIpXSkKLQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9oODMwMC9iaXRmaWVs ZC5tZCBiL2djYy9jb25maWcvaDgzMDAvYml0ZmllbGQubWQKaW5kZXggYmVkNzEyZDgzMGIuLjhm YTZmZGU0MzNhIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2g4MzAwL2JpdGZpZWxkLm1kCisrKyBi L2djYy9jb25maWcvaDgzMDAvYml0ZmllbGQubWQKQEAgLTE1LDcgKzE1LDcgQEAKIDs7IEludmVy dGVkIGxvYWRzIHdpdGggYSAxNmJpdCBkZXN0aW5hdGlvbi4KIDs7CiAKLShkZWZpbmVfaW5zbiAi IgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpISSAw ICJyZWdpc3Rlcl9vcGVyYW5kIiAiPSZyIikKIAkoemVyb19leHRyYWN0OkhJICh4b3I6SEkgKG1h dGNoX29wZXJhbmQ6SEkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKQogCQkJCSAobWF0Y2hfb3Bl cmFuZDpISSAzICJjb25zdF9pbnRfb3BlcmFuZCIgIm4iKSkKQEAgLTIzLDYgKzIzLDIzIEBACiAJ CQkgKG1hdGNoX29wZXJhbmQ6SEkgMiAiY29uc3RfaW50X29wZXJhbmQiICJuIikpKV0KICAgIihU QVJHRVRfSDgzMDBTWCkKICAgICAmJiAoMSA8PCBJTlRWQUwgKG9wZXJhbmRzWzJdKSkgPT0gSU5U VkFMIChvcGVyYW5kc1szXSkiCisgICIjIgorICAicmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJh bGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisJCSAgICh6ZXJvX2V4dHJhY3Q6SEkgKHhvcjpISSAo bWF0Y2hfZHVwIDEpIChtYXRjaF9kdXAgMykpCisJCQkJICAgIChjb25zdF9pbnQgMSkKKwkJCQkg ICAgKG1hdGNoX2R1cCAyKSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pXSkK KworKGRlZmluZV9pbnNuICIiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVy X29wZXJhbmQiICI9JnIiKQorCSh6ZXJvX2V4dHJhY3Q6SEkgKHhvcjpISSAobWF0Y2hfb3BlcmFu ZDpISSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpCisJCQkJIChtYXRjaF9vcGVyYW5kOkhJIDMg ImNvbnN0X2ludF9vcGVyYW5kIiAibiIpKQorCQkJIChjb25zdF9pbnQgMSkKKwkJCSAobWF0Y2hf b3BlcmFuZDpISSAyICJjb25zdF9pbnRfb3BlcmFuZCIgIm4iKSkpCisgICAoY2xvYmJlciAocmVn OkNDIENDX1JFRykpXQorICAiKFRBUkdFVF9IODMwMFNYKQorICAgICYmICgxIDw8IElOVFZBTCAo b3BlcmFuZHNbMl0pKSA9PSBJTlRWQUwgKG9wZXJhbmRzWzNdKSIKICAgInN1Yi53CSUwLCUwXDti aWxkCSVaMiwlWTFcO2JzdAkjMCwlWDAiCiAgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjgiKV0pCiAK QEAgLTMwLDEyICs0NywyNSBAQAogOzsgTm9ybWFsIGxvYWRzIHdpdGggYSAzMmJpdCBkZXN0aW5h dGlvbi4KIDs7CiAKLShkZWZpbmVfaW5zbiAiKmV4dHp2XzFfcl9oODMwMGhzIgorKGRlZmluZV9p bnNuX2FuZF9zcGxpdCAiKmV4dHp2XzFfciIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAi cmVnaXN0ZXJfb3BlcmFuZCIgIj1yLHIiKQogCSh6ZXJvX2V4dHJhY3Q6U0kgKG1hdGNoX29wZXJh bmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIj8wLHIiKQogCQkJIChjb25zdF9pbnQgMSkKIAkJ CSAobWF0Y2hfb3BlcmFuZCAyICJjb25zdF9pbnRfb3BlcmFuZCIgIm4sbiIpKSldCiAgICJJTlRW QUwgKG9wZXJhbmRzWzJdKSA8IDE2IgorICAiIyIKKyAgInJlbG9hZF9jb21wbGV0ZWQiCisgIFso cGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorCQkgICAoemVyb19leHRyYWN0OlNJIChtYXRj aF9kdXAgMSkgKGNvbnN0X2ludCAxKSAobWF0Y2hfZHVwIDIpKSkKKwkgICAgICAoY2xvYmJlciAo cmVnOkNDIENDX1JFRykpXSldKQorCisoZGVmaW5lX2luc24gIipleHR6dl8xX3JfY2xvYmJlcl9m bGFncyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1y LHIiKQorCSh6ZXJvX2V4dHJhY3Q6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3Bl cmFuZCIgIj8wLHIiKQorCQkJIChjb25zdF9pbnQgMSkKKwkJCSAobWF0Y2hfb3BlcmFuZCAyICJj b25zdF9pbnRfb3BlcmFuZCIgIm4sbiIpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSld CisgICJJTlRWQUwgKG9wZXJhbmRzWzJdKSA8IDE2IgogewogICByZXR1cm4gb3V0cHV0X3NpbW9k ZV9ibGQgKDAsIG9wZXJhbmRzKTsKIH0KQEAgLTQ2LDcgKzc2LDcgQEAKIDs7IEludmVydGVkIGxv YWRzIHdpdGggYSAzMmJpdCBkZXN0aW5hdGlvbi4KIDs7CiAKLShkZWZpbmVfaW5zbiAiKmV4dHp2 XzFfcl9pbnZfaDgzMDBocyIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIipleHR6dl8xX3JfaW52 IgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIsciIp CiAJKHplcm9fZXh0cmFjdDpTSSAoeG9yOlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgInJlZ2lzdGVy X29wZXJhbmQiICI/MCxyIikKIAkJCQkgKG1hdGNoX29wZXJhbmQgMyAiY29uc3RfaW50X29wZXJh bmQiICJuLG4iKSkKQEAgLTU0LDYgKzg0LDIzIEBACiAJCQkgKG1hdGNoX29wZXJhbmQgMiAiY29u c3RfaW50X29wZXJhbmQiICJuLG4iKSkpXQogICAiSU5UVkFMIChvcGVyYW5kc1syXSkgPCAxNgog ICAgICYmICgxIDw8IElOVFZBTCAob3BlcmFuZHNbMl0pKSA9PSBJTlRWQUwgKG9wZXJhbmRzWzNd KSIKKyAgIiMiCisgICJyZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRj aF9kdXAgMCkKKwkJICAgKHplcm9fZXh0cmFjdDpTSSAoeG9yOlNJIChtYXRjaF9kdXAgMSkgKG1h dGNoX2R1cCAzKSkKKwkJCQkgICAgKGNvbnN0X2ludCAxKQorCQkJCSAgICAobWF0Y2hfZHVwIDIp KSkKKwkgICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXSldKQorCisoZGVmaW5lX2luc24g IipleHR6dl8xX3JfaW52X2Nsb2JiZXJfZmxhZ3MiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJ IDAgInJlZ2lzdGVyX29wZXJhbmQiICI9cixyIikKKwkoemVyb19leHRyYWN0OlNJICh4b3I6U0kg KG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIj8wLHIiKQorCQkJCSAobWF0 Y2hfb3BlcmFuZCAzICJjb25zdF9pbnRfb3BlcmFuZCIgIm4sbiIpKQorCQkJIChjb25zdF9pbnQg MSkKKwkJCSAobWF0Y2hfb3BlcmFuZCAyICJjb25zdF9pbnRfb3BlcmFuZCIgIm4sbiIpKSkKKyAg IChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldCisgICJJTlRWQUwgKG9wZXJhbmRzWzJdKSA8IDE2 CisgICAgJiYgKDEgPDwgSU5UVkFMIChvcGVyYW5kc1syXSkpID09IElOVFZBTCAob3BlcmFuZHNb M10pIgogewogICByZXR1cm4gb3V0cHV0X3NpbW9kZV9ibGQgKDEsIG9wZXJhbmRzKTsKIH0KQEAg LTEwNywxMiArMTU0LDI1IEBACiAgICAgRkFJTDsKICAgfSkKIAotKGRlZmluZV9pbnNuICIiCiso ZGVmaW5lX2luc25fYW5kX3NwbGl0ICIiCiAgIFsoc2V0ICh6ZXJvX2V4dHJhY3Q6SEkgKG1hdGNo X29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIityIikKIAkJCSAoY29uc3RfaW50IDEp CiAJCQkgKG1hdGNoX29wZXJhbmQ6SEkgMSAiaW1tZWRpYXRlX29wZXJhbmQiICJuIikpCiAJKG1h dGNoX29wZXJhbmQ6SEkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSldCiAgICIiCisgICIjIgor ICAicmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAoemVyb19leHRyYWN0OkhJ IChtYXRjaF9kdXAgMCkgKGNvbnN0X2ludCAxKSAobWF0Y2hfZHVwIDEpKQorCQkgICAobWF0Y2hf ZHVwIDIpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0pCisKKyhkZWZpbmVf aW5zbiAiIgorICBbKHNldCAoemVyb19leHRyYWN0OkhJIChtYXRjaF9vcGVyYW5kOkhJIDAgInJl Z2lzdGVyX29wZXJhbmQiICIrciIpCisJCQkgKGNvbnN0X2ludCAxKQorCQkJIChtYXRjaF9vcGVy YW5kOkhJIDEgImltbWVkaWF0ZV9vcGVyYW5kIiAibiIpKQorCShtYXRjaF9vcGVyYW5kOkhJIDIg InJlZ2lzdGVyX29wZXJhbmQiICJyIikpCisgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXQor ICAiIgogICAiYmxkCSMwLCVSMlw7YnN0CSVaMSwlWTAgOyBpMSIKICAgWyhzZXRfYXR0ciAibGVu Z3RoIiAiNCIpXSkKIApAQCAtMTY0LDcgKzIyNCw3IEBACiAKIDs7IEJBTkQsIEJPUiwgYW5kIEJY T1IgcGF0dGVybnMKIAotKGRlZmluZV9pbnNuICIiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIi CiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgImJpdF9vcGVyYW5kIiAiPVVyIikKIAkobWF0 Y2hfb3BlcmF0b3I6SEkgNCAiYml0X29wZXJhdG9yIgogCSBbKHplcm9fZXh0cmFjdDpISSAobWF0 Y2hfb3BlcmFuZDpISSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpCkBAIC0xNzIsMTAgKzIzMiwy OCBAQAogCQkJICAgKG1hdGNoX29wZXJhbmQ6SEkgMiAiaW1tZWRpYXRlX29wZXJhbmQiICJuIikp CiAJICAobWF0Y2hfb3BlcmFuZDpISSAzICJiaXRfb3BlcmFuZCIgIjAiKV0pKV0KICAgIiIKKyAg IiMiCisgICJyZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAg MCkKKwkJICAgKG1hdGNoX29wX2R1cCA0IFsoemVyb19leHRyYWN0OkhJIChtYXRjaF9kdXAgMSkK KwkJCQkJCSAgICAgKGNvbnN0X2ludCAxKQorCQkJCQkJICAgICAobWF0Y2hfZHVwIDIpKQorCQkJ CSAgICAobWF0Y2hfZHVwIDMpXSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0p XSkKKworKGRlZmluZV9pbnNuICIiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgImJpdF9v cGVyYW5kIiAiPVVyIikKKwkobWF0Y2hfb3BlcmF0b3I6SEkgNCAiYml0X29wZXJhdG9yIgorCSBb KHplcm9fZXh0cmFjdDpISSAobWF0Y2hfb3BlcmFuZDpISSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAi ciIpCisJCQkgICAoY29uc3RfaW50IDEpCisJCQkgICAobWF0Y2hfb3BlcmFuZDpISSAyICJpbW1l ZGlhdGVfb3BlcmFuZCIgIm4iKSkKKwkgIChtYXRjaF9vcGVyYW5kOkhJIDMgImJpdF9vcGVyYW5k IiAiMCIpXSkpCisgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXQorICAiIgogICAiYmxkCSVa MiwlWTFcO2IlYzQJIzAsJVIwXDtic3QJIzAsJVIwOyBibDEiCiAgIFsoc2V0X2F0dHIgImxlbmd0 aCIgIjYiKV0pCiAKLShkZWZpbmVfaW5zbiAiIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiIgog ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpISSAwICJiaXRfb3BlcmFuZCIgIj1VciIpCiAJKG1hdGNo X29wZXJhdG9yOkhJIDUgImJpdF9vcGVyYXRvciIKIAkgWyh6ZXJvX2V4dHJhY3Q6SEkgKG1hdGNo X29wZXJhbmQ6SEkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKQpAQCAtMTg1LDE1ICsyNjMsNTAg QEAKIAkJCSAgIChjb25zdF9pbnQgMSkKIAkJCSAgIChtYXRjaF9vcGVyYW5kOkhJIDQgImltbWVk aWF0ZV9vcGVyYW5kIiAibiIpKV0pKV0KICAgIiIKKyAgIiMiCisgICJyZWxvYWRfY29tcGxldGVk IgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKwkJICAgKG1hdGNoX29wX2R1cCA1 IFsoemVyb19leHRyYWN0OkhJIChtYXRjaF9kdXAgMSkKKwkJCQkJCSAgICAgKGNvbnN0X2ludCAx KQorCQkJCQkJICAgICAobWF0Y2hfZHVwIDIpKQorCQkJCSAgICAoemVyb19leHRyYWN0OkhJICht YXRjaF9kdXAgMykKKwkJCQkJCSAgICAgKGNvbnN0X2ludCAxKQorCQkJCQkJICAgICAobWF0Y2hf ZHVwIDQpKV0pKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0pCisKKyhkZWZp bmVfaW5zbiAiIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpISSAwICJiaXRfb3BlcmFuZCIgIj1V ciIpCisJKG1hdGNoX29wZXJhdG9yOkhJIDUgImJpdF9vcGVyYXRvciIKKwkgWyh6ZXJvX2V4dHJh Y3Q6SEkgKG1hdGNoX29wZXJhbmQ6SEkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKQorCQkJICAg KGNvbnN0X2ludCAxKQorCQkJICAgKG1hdGNoX29wZXJhbmQ6SEkgMiAiaW1tZWRpYXRlX29wZXJh bmQiICJuIikpCisJICAoemVyb19leHRyYWN0OkhJIChtYXRjaF9vcGVyYW5kOkhJIDMgInJlZ2lz dGVyX29wZXJhbmQiICJyIikKKwkJCSAgIChjb25zdF9pbnQgMSkKKwkJCSAgIChtYXRjaF9vcGVy YW5kOkhJIDQgImltbWVkaWF0ZV9vcGVyYW5kIiAibiIpKV0pKQorICAgKGNsb2JiZXIgKHJlZzpD QyBDQ19SRUcpKV0KKyAgIiIKICAgImJsZAklWjIsJVkxXDtiJWM1CSVaNCwlWTNcO2JzdAkjMCwl UjA7IGJsMyIKICAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNiIpXSkKIAotKGRlZmluZV9pbnNuICJi ZmxkIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiYmZsZCIKICAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6UUkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKIAkoemVyb19leHRyYWN0OlFJIChtYXRj aF9vcGVyYW5kOlFJIDEgImJpdF9tZW1vcnlfb3BlcmFuZCIgIldVIikKIAkJCSAobWF0Y2hfb3Bl cmFuZDpRSSAyICJpbW1lZGlhdGVfb3BlcmFuZCIgIm4iKQogCQkJIChtYXRjaF9vcGVyYW5kOlFJ IDMgImltbWVkaWF0ZV9vcGVyYW5kIiAibiIpKSldCiAgICJUQVJHRVRfSDgzMDBTWCAmJiBJTlRW QUwgKG9wZXJhbmRzWzJdKSArIElOVFZBTCAob3BlcmFuZHNbM10pIDw9IDgiCisgICIjIgorICAi cmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisJCSAg ICh6ZXJvX2V4dHJhY3Q6UUkgKG1hdGNoX2R1cCAxKSAobWF0Y2hfZHVwIDIpIChtYXRjaF9kdXAg MykpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0pCisKKyhkZWZpbmVfaW5z biAiYmZsZF9jbG9iYmVyX2ZsYWdzIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpRSSAwICJyZWdp c3Rlcl9vcGVyYW5kIiAiPXIiKQorCSh6ZXJvX2V4dHJhY3Q6UUkgKG1hdGNoX29wZXJhbmQ6UUkg MSAiYml0X21lbW9yeV9vcGVyYW5kIiAiV1UiKQorCQkJIChtYXRjaF9vcGVyYW5kOlFJIDIgImlt bWVkaWF0ZV9vcGVyYW5kIiAibiIpCisJCQkgKG1hdGNoX29wZXJhbmQ6UUkgMyAiaW1tZWRpYXRl X29wZXJhbmQiICJuIikpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0KKyAgIlRBUkdF VF9IODMwMFNYICYmIElOVFZBTCAob3BlcmFuZHNbMl0pICsgSU5UVkFMIChvcGVyYW5kc1szXSkg PD0gOCIKIHsKICAgb3BlcmFuZHNbMl0gPSBHRU5fSU5UICgoMSA8PCAoSU5UVkFMIChvcGVyYW5k c1syXSkgKyBJTlRWQUwgKG9wZXJhbmRzWzNdKSkpCiAJCQkgLSAoMSA8PCBJTlRWQUwgKG9wZXJh bmRzWzNdKSkpOwpAQCAtMjAyLDEyICszMTUsMjUgQEAKICAgWyhzZXRfYXR0ciAiY2MiICJub25l XzBoaXQiKQogICAgKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJiaXRmaWVsZCIpXSkKIAotKGRl ZmluZV9pbnNuICJiZnN0IgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiYmZzdCIKICAgWyhzZXQg KHplcm9fZXh0cmFjdDpRSSAobWF0Y2hfb3BlcmFuZDpRSSAwICJiaXRfbWVtb3J5X29wZXJhbmQi ICIrV1UiKQogCQkJIChtYXRjaF9vcGVyYW5kOlFJIDIgImltbWVkaWF0ZV9vcGVyYW5kIiAibiIp CiAJCQkgKG1hdGNoX29wZXJhbmQ6UUkgMyAiaW1tZWRpYXRlX29wZXJhbmQiICJuIikpCiAJKG1h dGNoX29wZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSldCiAgICJUQVJHRVRfSDgz MDBTWCAmJiBJTlRWQUwgKG9wZXJhbmRzWzJdKSArIElOVFZBTCAob3BlcmFuZHNbM10pIDw9IDgi CisgICIjIgorICAicmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAoemVyb19l eHRyYWN0OlFJIChtYXRjaF9kdXAgMCkgKG1hdGNoX2R1cCAyKSAobWF0Y2hfZHVwIDMpKQorCQkg ICAobWF0Y2hfZHVwIDEpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0pCisK KyhkZWZpbmVfaW5zbiAiYmZzdF9jbG9iYmVyX2ZsYWdzIgorICBbKHNldCAoemVyb19leHRyYWN0 OlFJIChtYXRjaF9vcGVyYW5kOlFJIDAgImJpdF9tZW1vcnlfb3BlcmFuZCIgIitXVSIpCisJCQkg KG1hdGNoX29wZXJhbmQ6UUkgMiAiaW1tZWRpYXRlX29wZXJhbmQiICJuIikKKwkJCSAobWF0Y2hf b3BlcmFuZDpRSSAzICJpbW1lZGlhdGVfb3BlcmFuZCIgIm4iKSkKKwkobWF0Y2hfb3BlcmFuZDpR SSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcp KV0KKyAgIlRBUkdFVF9IODMwMFNYICYmIElOVFZBTCAob3BlcmFuZHNbMl0pICsgSU5UVkFMIChv cGVyYW5kc1szXSkgPD0gOCIKIHsKICAgb3BlcmFuZHNbMl0gPSBHRU5fSU5UICgoMSA8PCAoSU5U VkFMIChvcGVyYW5kc1syXSkgKyBJTlRWQUwgKG9wZXJhbmRzWzNdKSkpCiAJCQkgLSAoMSA8PCBJ TlRWQUwgKG9wZXJhbmRzWzNdKSkpOwpAQCAtMjE2LDIyNSArMzQyLDIwMyBAQAogICBbKHNldF9h dHRyICJjYyIgIm5vbmVfMGhpdCIpCiAgICAoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgImJpdGZp ZWxkIildKQogCi0oZGVmaW5lX2V4cGFuZCAiY3N0b3JlcWk0IgotICBbKHVzZSAobWF0Y2hfb3Bl cmF0b3IgMSAiZXFuZV9vcGVyYXRvciIKLSAgICAgICAgIFsobWF0Y2hfb3BlcmFuZDpRSSAyICJo ODMwMF9kc3Rfb3BlcmFuZCIgIiIpCi0gICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UUkgMyAiaDgz MDBfc3JjX29wZXJhbmQiICIiKV0pKQotICAgKGNsb2JiZXIgKG1hdGNoX29wZXJhbmQ6SEkgMCAi cmVnaXN0ZXJfb3BlcmFuZCIpKV0KLSAgIlRBUkdFVF9IODMwMFNYIgotICB7Ci0gICAgaDgzMDBf ZXhwYW5kX3N0b3JlIChvcGVyYW5kcyk7Ci0gICAgRE9ORTsKLSAgfSkKLQotKGRlZmluZV9leHBh bmQgImNzdG9yZWhpNCIKLSAgWyh1c2UgKG1hdGNoX29wZXJhdG9yIDEgImVxbmVfb3BlcmF0b3Ii Ci0gICAgICAgICBbKG1hdGNoX29wZXJhbmQ6SEkgMiAiaDgzMDBfZHN0X29wZXJhbmQiICIiKQot ICAgICAgICAgIChtYXRjaF9vcGVyYW5kOkhJIDMgImg4MzAwX3NyY19vcGVyYW5kIiAiIildKSkK LSAgIChjbG9iYmVyIChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiKSldCi0g ICJUQVJHRVRfSDgzMDBTWCIKLSAgewotICAgIGg4MzAwX2V4cGFuZF9zdG9yZSAob3BlcmFuZHMp OwotICAgIERPTkU7Ci0gIH0pCi0KLShkZWZpbmVfZXhwYW5kICJjc3RvcmVzaTQiCi0gIFsodXNl IChtYXRjaF9vcGVyYXRvciAxICJlcW5lX29wZXJhdG9yIgotICAgICAgICAgWyhtYXRjaF9vcGVy YW5kOlNJIDIgImg4MzAwX2RzdF9vcGVyYW5kIiAiIikKLSAgICAgICAgICAobWF0Y2hfb3BlcmFu ZDpTSSAzICJoODMwMF9zcmNfb3BlcmFuZCIgIiIpXSkpCi0gICAoY2xvYmJlciAobWF0Y2hfb3Bl cmFuZDpISSAwICJyZWdpc3Rlcl9vcGVyYW5kIikpXQotICAiVEFSR0VUX0g4MzAwU1giCi0gIHsK LSAgICBoODMwMF9leHBhbmRfc3RvcmUgKG9wZXJhbmRzKTsKLSAgICBET05FOwotICB9KQotCi0o ZGVmaW5lX2luc24gIipic3R6aGlyZWciCi0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJl Z2lzdGVyX29wZXJhbmQiICI9ciIpCi0JKG1hdGNoX29wZXJhdG9yOkhJIDEgImVxbmVfb3BlcmF0 b3IiIFsoY2MwKSAoY29uc3RfaW50IDApXSkpXQotICAiVEFSR0VUX0g4MzAwU1giCi0gICJtdWx1 LncJIzAsJVQwXDtiJWsxCS5MaDhCUiU9XDtpbmMudwkjMSwlVDBcXG4uTGg4QlIlPToiCi0gIFso c2V0X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKLQotKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKmNt cHN0eiIKLSAgWyhzZXQgKHplcm9fZXh0cmFjdDpRSSAobWF0Y2hfb3BlcmFuZDpRSSAwICJiaXRf bWVtb3J5X29wZXJhbmQiICIrV1UsV1UiKQotCQkJIChjb25zdF9pbnQgMSkKLQkJCSAobWF0Y2hf b3BlcmFuZDpRSSAxICJpbW1lZGlhdGVfb3BlcmFuZCIgIm4sbiIpKQotCShtYXRjaF9vcGVyYXRv cjpRSSAyICJlcW5lX29wZXJhdG9yIgotCSBbKG1hdGNoX29wZXJhbmQgMyAiaDgzMDBfZHN0X29w ZXJhbmQiICJyLHJRIikKLQkgIChtYXRjaF9vcGVyYW5kIDQgImg4MzAwX3NyY19vcGVyYW5kIiAi SSxyUWkiKV0pKV0KLSAgIlRBUkdFVF9IODMwMFNYCi0gICAmJiAoR0VUX01PREUgKG9wZXJhbmRz WzNdKSA9PSBHRVRfTU9ERSAob3BlcmFuZHNbNF0pCi0gICAgICAgfHwgR0VUX0NPREUgKG9wZXJh bmRzWzRdKSA9PSBDT05TVF9JTlQpCi0gICAmJiBHRVRfTU9ERV9DTEFTUyAoR0VUX01PREUgKG9w ZXJhbmRzWzNdKSkgPT0gTU9ERV9JTlQKLSAgICYmIEdFVF9NT0RFX1NJWkUgKEdFVF9NT0RFIChv cGVyYW5kc1szXSkpIDw9IDQiCi0gICIjIgotICAicmVsb2FkX2NvbXBsZXRlZCIKLSAgWyhzZXQg KGNjMCkgKG1hdGNoX2R1cCA1KSkKLSAgIChzZXQgKHplcm9fZXh0cmFjdDpRSSAobWF0Y2hfZHVw IDApIChjb25zdF9pbnQgMSkgKG1hdGNoX2R1cCAxKSkKLQkobWF0Y2hfb3BfZHVwOlFJIDIgWyhj YzApIChjb25zdF9pbnQgMCldKSldCi0gIHsKLSAgICBvcGVyYW5kc1s1XSA9IGdlbl9ydHhfQ09N UEFSRSAoVk9JRG1vZGUsIG9wZXJhbmRzWzNdLCBvcGVyYW5kc1s0XSk7Ci0gIH0KLSAgWyhzZXRf YXR0ciAiY2MiICJzZXRfem52LGNvbXBhcmUiKV0pCi0KLShkZWZpbmVfaW5zbiAiKmJzdHoiCi0g IFsoc2V0ICh6ZXJvX2V4dHJhY3Q6UUkgKG1hdGNoX29wZXJhbmQ6UUkgMCAiYml0X21lbW9yeV9v cGVyYW5kIiAiK1dVIikKLQkJCSAoY29uc3RfaW50IDEpCi0JCQkgKG1hdGNoX29wZXJhbmQ6UUkg MSAiaW1tZWRpYXRlX29wZXJhbmQiICJuIikpCi0JKGVxOlFJIChjYzApIChjb25zdF9pbnQgMCkp KV0KLSAgIlRBUkdFVF9IODMwMFNYICYmIHJlbG9hZF9jb21wbGV0ZWQiCi0gICJic3R6CSUxLCUw IgotICBbKHNldF9hdHRyICJjYyIgIm5vbmVfMGhpdCIpCi0gICAoc2V0X2F0dHIgImxlbmd0aF90 YWJsZSIgInVuYXJ5IildKQotCi0oZGVmaW5lX2luc24gIipiaXN0eiIKLSAgWyhzZXQgKHplcm9f ZXh0cmFjdDpRSSAobWF0Y2hfb3BlcmFuZDpRSSAwICJiaXRfbWVtb3J5X29wZXJhbmQiICIrV1Ui KQotCQkJIChjb25zdF9pbnQgMSkKLQkJCSAobWF0Y2hfb3BlcmFuZDpRSSAxICJpbW1lZGlhdGVf b3BlcmFuZCIgIm4iKSkKLQkobmU6UUkgKGNjMCkgKGNvbnN0X2ludCAwKSkpXQotICAiVEFSR0VU X0g4MzAwU1ggJiYgcmVsb2FkX2NvbXBsZXRlZCIKLSAgImJpc3R6CSUxLCUwIgotICBbKHNldF9h dHRyICJjYyIgIm5vbmVfMGhpdCIpCi0gICAoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgInVuYXJ5 IildKQotCi0oZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqY21wY29uZGJzZXQiCi0gIFsoc2V0ICht YXRjaF9vcGVyYW5kOlFJIDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiPVdVLFdVIikKLQkoaWZf dGhlbl9lbHNlOlFJIChtYXRjaF9vcGVyYXRvciAxICJlcW5lX29wZXJhdG9yIgotCQkJICBbKG1h dGNoX29wZXJhbmQgMiAiaDgzMDBfZHN0X29wZXJhbmQiICJyLHJRIikKLQkJCSAgIChtYXRjaF9v cGVyYW5kIDMgImg4MzAwX3NyY19vcGVyYW5kIiAiSSxyUWkiKV0pCi0JCQkgKGlvcjpRSSAobWF0 Y2hfb3BlcmFuZDpRSSA0ICJiaXRfbWVtb3J5X29wZXJhbmQiICIwLDAiKQotCQkJCSAobWF0Y2hf b3BlcmFuZDpRSSA1ICJzaW5nbGVfb25lX29wZXJhbmQiICJuLG4iKSkKLQkJCSAobWF0Y2hfZHVw IDQpKSldCi0gICJUQVJHRVRfSDgzMDBTWCIKLSAgIiMiCi0gICJyZWxvYWRfY29tcGxldGVkIgot ICBbKHNldCAoY2MwKSAobWF0Y2hfZHVwIDYpKQotICAgKHNldCAobWF0Y2hfZHVwIDApCi0JKGlm X3RoZW5fZWxzZTpRSSAobWF0Y2hfb3BfZHVwIDEgWyhjYzApIChjb25zdF9pbnQgMCldKQotCQkJ IChpb3I6UUkgKG1hdGNoX2R1cCA0KSAobWF0Y2hfZHVwIDUpKQotCQkJIChtYXRjaF9kdXAgNCkp KV0KLSAgewotICAgIG9wZXJhbmRzWzZdID0gZ2VuX3J0eF9DT01QQVJFIChWT0lEbW9kZSwgb3Bl cmFuZHNbMl0sIG9wZXJhbmRzWzNdKTsKLSAgfQotICBbKHNldF9hdHRyICJjYyIgInNldF96bnYs Y29tcGFyZSIpXSkKLQotKGRlZmluZV9pbnNuICIqY29uZGJzZXQiCi0gIFsoc2V0IChtYXRjaF9v cGVyYW5kOlFJIDAgImJpdF9tZW1vcnlfb3BlcmFuZCIgIj1XVSIpCi0JKGlmX3RoZW5fZWxzZTpR SSAobWF0Y2hfb3BlcmF0b3I6UUkgMiAiZXFuZV9vcGVyYXRvciIKLQkJCSAgWyhjYzApIChjb25z dF9pbnQgMCldKQotCQkJIChpb3I6UUkgKG1hdGNoX29wZXJhbmQ6UUkgMyAiYml0X21lbW9yeV9v cGVyYW5kIiAiMCIpCi0JCQkJIChtYXRjaF9vcGVyYW5kOlFJIDEgInNpbmdsZV9vbmVfb3BlcmFu ZCIgIm4iKSkKLQkJCSAobWF0Y2hfZHVwIDMpKSldCi0gICJUQVJHRVRfSDgzMDBTWCAmJiByZWxv YWRfY29tcGxldGVkIgotICAiYnNldC8lajJcdCVWMSwlMCIKLSAgWyhzZXRfYXR0ciAiY2MiICJu b25lXzBoaXQiKQotICAgKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJsb2dpY2IiKV0pCi0KLShk ZWZpbmVfaW5zbl9hbmRfc3BsaXQgIipjbXBjb25kYmNsciIKLSAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6UUkgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICI9V1UsV1UiKQotCShpZl90aGVuX2Vsc2U6 UUkgKG1hdGNoX29wZXJhdG9yIDEgImVxbmVfb3BlcmF0b3IiCi0JCQkgIFsobWF0Y2hfb3BlcmFu ZCAyICJoODMwMF9kc3Rfb3BlcmFuZCIgInIsclEiKQotCQkJICAgKG1hdGNoX29wZXJhbmQgMyAi aDgzMDBfc3JjX29wZXJhbmQiICJJLHJRaSIpXSkKLQkJCSAoYW5kOlFJIChtYXRjaF9vcGVyYW5k OlFJIDQgImJpdF9tZW1vcnlfb3BlcmFuZCIgIjAsMCIpCi0JCQkJIChtYXRjaF9vcGVyYW5kOlFJ IDUgInNpbmdsZV96ZXJvX29wZXJhbmQiICJuLG4iKSkKLQkJCSAobWF0Y2hfZHVwIDQpKSldCi0g ICJUQVJHRVRfSDgzMDBTWCIKLSAgIiMiCi0gICJyZWxvYWRfY29tcGxldGVkIgotICBbKHNldCAo Y2MwKSAobWF0Y2hfZHVwIDYpKQotICAgKHNldCAobWF0Y2hfZHVwIDApCi0JKGlmX3RoZW5fZWxz ZTpRSSAobWF0Y2hfb3BfZHVwIDEgWyhjYzApIChjb25zdF9pbnQgMCldKQotCQkJIChhbmQ6UUkg KG1hdGNoX2R1cCA0KSAobWF0Y2hfZHVwIDUpKQotCQkJIChtYXRjaF9kdXAgNCkpKV0KLSAgewot ICAgIG9wZXJhbmRzWzZdID0gZ2VuX3J0eF9DT01QQVJFIChWT0lEbW9kZSwgb3BlcmFuZHNbMl0s IG9wZXJhbmRzWzNdKTsKLSAgfQotICBbKHNldF9hdHRyICJjYyIgInNldF96bnYsY29tcGFyZSIp XSkKLQotKGRlZmluZV9pbnNuICIqY29uZGJjbHIiCi0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJ IDAgImJpdF9tZW1vcnlfb3BlcmFuZCIgIj1XVSIpCi0JKGlmX3RoZW5fZWxzZTpRSSAobWF0Y2hf b3BlcmF0b3I6UUkgMiAiZXFuZV9vcGVyYXRvciIKLQkJCSAgWyhjYzApIChjb25zdF9pbnQgMCld KQotCQkJIChhbmQ6UUkgKG1hdGNoX29wZXJhbmQ6UUkgMyAiYml0X21lbW9yeV9vcGVyYW5kIiAi MCIpCi0JCQkJIChtYXRjaF9vcGVyYW5kOlFJIDEgInNpbmdsZV96ZXJvX29wZXJhbmQiICJuIikp Ci0JCQkgKG1hdGNoX2R1cCAzKSkpXQotICAiVEFSR0VUX0g4MzAwU1ggJiYgcmVsb2FkX2NvbXBs ZXRlZCIKLSAgImJjbHIvJWoyXHQlVzEsJTAiCi0gIFsoc2V0X2F0dHIgImNjIiAibm9uZV8waGl0 IikKLSAgIChzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibG9naWNiIildKQotCi0oZGVmaW5lX2lu c25fYW5kX3NwbGl0ICIqY21wY29uZGJzZXRyZWciCi0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJ IDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiPVdVLFdVIikKLQkoaWZfdGhlbl9lbHNlOlFJICht YXRjaF9vcGVyYXRvciAxICJlcW5lX29wZXJhdG9yIgotCQkJICBbKG1hdGNoX29wZXJhbmQgMiAi aDgzMDBfZHN0X29wZXJhbmQiICJyLHJRIikKLQkJCSAgIChtYXRjaF9vcGVyYW5kIDMgImg4MzAw X3NyY19vcGVyYW5kIiAiSSxyUWkiKV0pCi0JCQkgKGlvcjpRSSAobWF0Y2hfb3BlcmFuZDpRSSA0 ICJiaXRfbWVtb3J5X29wZXJhbmQiICIwLDAiKQotCQkJCSAoYXNoaWZ0OlFJIChjb25zdF9pbnQg MSkKLQkJCQkJICAgIChtYXRjaF9vcGVyYW5kOlFJIDUgInJlZ2lzdGVyX29wZXJhbmQiICJyLHIi KSkpCi0JCQkgKG1hdGNoX2R1cCA0KSkpXQotICAiVEFSR0VUX0g4MzAwU1giCi0gICIjIgotICAi cmVsb2FkX2NvbXBsZXRlZCIKLSAgWyhzZXQgKGNjMCkgKG1hdGNoX2R1cCA2KSkKLSAgIChzZXQg KG1hdGNoX2R1cCAwKQotCShpZl90aGVuX2Vsc2U6UUkgKG1hdGNoX29wX2R1cCAxIFsoY2MwKSAo Y29uc3RfaW50IDApXSkKLQkJCSAoaW9yOlFJIChtYXRjaF9kdXAgNCkKLQkJCQkgKGFzaGlmdDpR SSAoY29uc3RfaW50IDEpCi0JCQkJCSAgICAobWF0Y2hfb3BlcmFuZDpRSSA1ICJyZWdpc3Rlcl9v cGVyYW5kIiAicixyIikpKQotCQkJIChtYXRjaF9kdXAgNCkpKV0KLSAgewotICAgIG9wZXJhbmRz WzZdID0gZ2VuX3J0eF9DT01QQVJFIChWT0lEbW9kZSwgb3BlcmFuZHNbMl0sIG9wZXJhbmRzWzNd KTsKLSAgfQotICBbKHNldF9hdHRyICJjYyIgInNldF96bnYsY29tcGFyZSIpXSkKLQotKGRlZmlu ZV9pbnNuICIqY29uZGJzZXRyZWciCi0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgImJpdF9t ZW1vcnlfb3BlcmFuZCIgIj1XVSIpCi0JKGlmX3RoZW5fZWxzZTpRSSAobWF0Y2hfb3BlcmF0b3I6 UUkgMiAiZXFuZV9vcGVyYXRvciIKLQkJCSAgWyhjYzApIChjb25zdF9pbnQgMCldKQotCQkJIChp b3I6UUkgKG1hdGNoX29wZXJhbmQ6UUkgMyAiYml0X21lbW9yeV9vcGVyYW5kIiAiMCIpCi0JCQkJ IChhc2hpZnQ6UUkgKGNvbnN0X2ludCAxKQotCQkJCQkgICAgKG1hdGNoX29wZXJhbmQ6UUkgMSAi cmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkpCi0JCQkgKG1hdGNoX2R1cCAzKSkpXQotICAiVEFSR0VU X0g4MzAwU1ggJiYgcmVsb2FkX2NvbXBsZXRlZCIKLSAgImJzZXQvJWoyXHQlUjEsJTAiCi0gIFso c2V0X2F0dHIgImNjIiAibm9uZV8waGl0IikKLSAgIChzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAi bG9naWNiIildKQotCi0oZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqY21wY29uZGJjbHJyZWciCi0g IFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiPVdVLFdV IikKLQkoaWZfdGhlbl9lbHNlOlFJIChtYXRjaF9vcGVyYXRvciAxICJlcW5lX29wZXJhdG9yIgot CQkJICBbKG1hdGNoX29wZXJhbmQgMiAiaDgzMDBfZHN0X29wZXJhbmQiICJyLHJRIikKLQkJCSAg IChtYXRjaF9vcGVyYW5kIDMgImg4MzAwX3NyY19vcGVyYW5kIiAiSSxyUWkiKV0pCi0JCQkgKGFu ZDpRSSAobWF0Y2hfb3BlcmFuZDpRSSA0ICJiaXRfbWVtb3J5X29wZXJhbmQiICIwLDAiKQotCQkJ CSAoYXNoaWZ0OlFJIChjb25zdF9pbnQgMSkKLQkJCQkJICAgIChtYXRjaF9vcGVyYW5kOlFJIDUg InJlZ2lzdGVyX29wZXJhbmQiICJyLHIiKSkpCi0JCQkgKG1hdGNoX2R1cCA0KSkpXQotICAiVEFS R0VUX0g4MzAwU1giCi0gICIjIgotICAicmVsb2FkX2NvbXBsZXRlZCIKLSAgWyhzZXQgKGNjMCkg KG1hdGNoX2R1cCA2KSkKLSAgIChzZXQgKG1hdGNoX2R1cCAwKQotCShpZl90aGVuX2Vsc2U6UUkg KG1hdGNoX29wX2R1cCAxIFsoY2MwKSAoY29uc3RfaW50IDApXSkKLQkJCSAoYW5kOlFJIChtYXRj aF9kdXAgNCkKLQkJCQkgKGFzaGlmdDpRSSAoY29uc3RfaW50IDEpCi0JCQkJCSAgICAobWF0Y2hf b3BlcmFuZDpRSSA1ICJyZWdpc3Rlcl9vcGVyYW5kIiAicixyIikpKQotCQkJIChtYXRjaF9kdXAg NCkpKV0KLSAgewotICAgIG9wZXJhbmRzWzZdID0gZ2VuX3J0eF9DT01QQVJFIChWT0lEbW9kZSwg b3BlcmFuZHNbMl0sIG9wZXJhbmRzWzNdKTsKLSAgfQotICBbKHNldF9hdHRyICJjYyIgInNldF96 bnYsY29tcGFyZSIpXSkKLQotKGRlZmluZV9pbnNuICIqY29uZGJjbHJyZWciCi0gIFsoc2V0ICht YXRjaF9vcGVyYW5kOlFJIDAgImJpdF9tZW1vcnlfb3BlcmFuZCIgIj1XVSIpCi0JKGlmX3RoZW5f ZWxzZTpRSSAobWF0Y2hfb3BlcmF0b3I6UUkgMiAiZXFuZV9vcGVyYXRvciIKLQkJCSAgWyhjYzAp IChjb25zdF9pbnQgMCldKQotCQkJIChhbmQ6UUkgKG1hdGNoX29wZXJhbmQ6UUkgMyAiYml0X21l bW9yeV9vcGVyYW5kIiAiMCIpCi0JCQkJIChhc2hpZnQ6UUkgKGNvbnN0X2ludCAxKQotCQkJCQkg ICAgKG1hdGNoX29wZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkpCi0JCQkgKG1h dGNoX2R1cCAzKSkpXQotICAiVEFSR0VUX0g4MzAwU1ggJiYgcmVsb2FkX2NvbXBsZXRlZCIKLSAg ImJjbHIvJWoyXHQlUjEsJTAiCi0gIFsoc2V0X2F0dHIgImNjIiAibm9uZV8waGl0IikKLSAgIChz ZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibG9naWNiIildKQorOzsoZGVmaW5lX2V4cGFuZCAiY3N0 b3JlPG1vZGU+NCIKKzs7ICBbKHVzZSAobWF0Y2hfb3BlcmF0b3IgMSAiZXFuZV9vcGVyYXRvciIK Kzs7ICAgICAgICAgWyhtYXRjaF9vcGVyYW5kOlFIU0kgMiAiaDgzMDBfZHN0X29wZXJhbmQiICIi KQorOzsgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UUhTSSAzICJoODMwMF9zcmNfb3BlcmFuZCIg IiIpXSkpCis7OyAgIChjbG9iYmVyIChtYXRjaF9vcGVyYW5kOlFIU0kgMCAicmVnaXN0ZXJfb3Bl cmFuZCIpKV0KKzs7ICAiVEFSR0VUX0g4MzAwU1giCis7OyAgeworOzsgICAgaDgzMDBfZXhwYW5k X3N0b3JlIChvcGVyYW5kcyk7Cis7OyAgICBET05FOworOzsgIH0pCisKKzs7KGRlZmluZV9pbnNu ICIqYnN0emhpcmVnIgorOzsgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29w ZXJhbmQiICI9ciIpCis7OwkobWF0Y2hfb3BlcmF0b3I6SEkgMSAiZXFuZV9vcGVyYXRvciIgWyhj YzApIChjb25zdF9pbnQgMCldKSldCis7OyAgIlRBUkdFVF9IODMwMFNYIgorOzsgICJtdWx1LncJ IzAsJVQwXDtiJWsxCS5MaDhCUiU9XDtpbmMudwkjMSwlVDBcXG4uTGg4QlIlPToiCis7OyAgWyhz ZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQorCis7OyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIipj bXBzdHoiCis7OyAgWyhzZXQgKHplcm9fZXh0cmFjdDpRSSAobWF0Y2hfb3BlcmFuZDpRSSAwICJi aXRfbWVtb3J5X29wZXJhbmQiICIrV1UsV1UiKQorOzsJCQkgKGNvbnN0X2ludCAxKQorOzsJCQkg KG1hdGNoX29wZXJhbmQ6UUkgMSAiaW1tZWRpYXRlX29wZXJhbmQiICJuLG4iKSkKKzs7CShtYXRj aF9vcGVyYXRvcjpRSSAyICJlcW5lX29wZXJhdG9yIgorOzsJIFsobWF0Y2hfb3BlcmFuZCAzICJo ODMwMF9kc3Rfb3BlcmFuZCIgInIsclEiKQorOzsJICAobWF0Y2hfb3BlcmFuZCA0ICJoODMwMF9z cmNfb3BlcmFuZCIgIkksclFpIildKSldCis7OyAgIlRBUkdFVF9IODMwMFNYCis7OyAgICYmIChH RVRfTU9ERSAob3BlcmFuZHNbM10pID09IEdFVF9NT0RFIChvcGVyYW5kc1s0XSkKKzs7ICAgICAg IHx8IEdFVF9DT0RFIChvcGVyYW5kc1s0XSkgPT0gQ09OU1RfSU5UKQorOzsgICAmJiBHRVRfTU9E RV9DTEFTUyAoR0VUX01PREUgKG9wZXJhbmRzWzNdKSkgPT0gTU9ERV9JTlQKKzs7ICAgJiYgR0VU X01PREVfU0laRSAoR0VUX01PREUgKG9wZXJhbmRzWzNdKSkgPD0gNCIKKzs7ICAiIyIKKzs7ICAi cmVsb2FkX2NvbXBsZXRlZCIKKzs7ICBbKHNldCAoY2MwKSAobWF0Y2hfZHVwIDUpKQorOzsgICAo c2V0ICh6ZXJvX2V4dHJhY3Q6UUkgKG1hdGNoX2R1cCAwKSAoY29uc3RfaW50IDEpIChtYXRjaF9k dXAgMSkpCis7OwkobWF0Y2hfb3BfZHVwOlFJIDIgWyhjYzApIChjb25zdF9pbnQgMCldKSldCis7 OyAgeworOzsgICAgb3BlcmFuZHNbNV0gPSBnZW5fcnR4X0NPTVBBUkUgKFZPSURtb2RlLCBvcGVy YW5kc1szXSwgb3BlcmFuZHNbNF0pOworOzsgIH0KKzs7ICBbKHNldF9hdHRyICJjYyIgInNldF96 bnYsY29tcGFyZSIpXSkKKworOzsoZGVmaW5lX2luc24gIipic3R6IgorOzsgIFsoc2V0ICh6ZXJv X2V4dHJhY3Q6UUkgKG1hdGNoX29wZXJhbmQ6UUkgMCAiYml0X21lbW9yeV9vcGVyYW5kIiAiK1dV IikKKzs7CQkJIChjb25zdF9pbnQgMSkKKzs7CQkJIChtYXRjaF9vcGVyYW5kOlFJIDEgImltbWVk aWF0ZV9vcGVyYW5kIiAibiIpKQorOzsJKGVxOlFJIChjYzApIChjb25zdF9pbnQgMCkpKV0KKzs7 ICAiVEFSR0VUX0g4MzAwU1ggJiYgcmVsb2FkX2NvbXBsZXRlZCIKKzs7ICAiYnN0egklMSwlMCIK Kzs7ICBbKHNldF9hdHRyICJjYyIgIm5vbmVfMGhpdCIpCis7OyAgIChzZXRfYXR0ciAibGVuZ3Ro X3RhYmxlIiAidW5hcnkiKV0pCisKKzs7KGRlZmluZV9pbnNuICIqYmlzdHoiCis7OyAgWyhzZXQg KHplcm9fZXh0cmFjdDpRSSAobWF0Y2hfb3BlcmFuZDpRSSAwICJiaXRfbWVtb3J5X29wZXJhbmQi ICIrV1UiKQorOzsJCQkgKGNvbnN0X2ludCAxKQorOzsJCQkgKG1hdGNoX29wZXJhbmQ6UUkgMSAi aW1tZWRpYXRlX29wZXJhbmQiICJuIikpCis7OwkobmU6UUkgKGNjMCkgKGNvbnN0X2ludCAwKSkp XQorOzsgICJUQVJHRVRfSDgzMDBTWCAmJiByZWxvYWRfY29tcGxldGVkIgorOzsgICJiaXN0egkl MSwlMCIKKzs7ICBbKHNldF9hdHRyICJjYyIgIm5vbmVfMGhpdCIpCis7OyAgIChzZXRfYXR0ciAi bGVuZ3RoX3RhYmxlIiAidW5hcnkiKV0pCisKKzs7KGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKmNt cGNvbmRic2V0IgorOzsgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgIm5vbmltbWVkaWF0ZV9v cGVyYW5kIiAiPVdVLFdVIikKKzs7CShpZl90aGVuX2Vsc2U6UUkgKG1hdGNoX29wZXJhdG9yIDEg ImVxbmVfb3BlcmF0b3IiCis7OwkJCSAgWyhtYXRjaF9vcGVyYW5kIDIgImg4MzAwX2RzdF9vcGVy YW5kIiAicixyUSIpCis7OwkJCSAgIChtYXRjaF9vcGVyYW5kIDMgImg4MzAwX3NyY19vcGVyYW5k IiAiSSxyUWkiKV0pCis7OwkJCSAoaW9yOlFJIChtYXRjaF9vcGVyYW5kOlFJIDQgImJpdF9tZW1v cnlfb3BlcmFuZCIgIjAsMCIpCis7OwkJCQkgKG1hdGNoX29wZXJhbmQ6UUkgNSAic2luZ2xlX29u ZV9vcGVyYW5kIiAibixuIikpCis7OwkJCSAobWF0Y2hfZHVwIDQpKSldCis7OyAgIlRBUkdFVF9I ODMwMFNYIgorOzsgICIjIgorOzsgICJyZWxvYWRfY29tcGxldGVkIgorOzsgIFsoc2V0IChjYzAp IChtYXRjaF9kdXAgNikpCis7OyAgIChzZXQgKG1hdGNoX2R1cCAwKQorOzsJKGlmX3RoZW5fZWxz ZTpRSSAobWF0Y2hfb3BfZHVwIDEgWyhjYzApIChjb25zdF9pbnQgMCldKQorOzsJCQkgKGlvcjpR SSAobWF0Y2hfZHVwIDQpIChtYXRjaF9kdXAgNSkpCis7OwkJCSAobWF0Y2hfZHVwIDQpKSldCis7 OyAgeworOzsgICAgb3BlcmFuZHNbNl0gPSBnZW5fcnR4X0NPTVBBUkUgKFZPSURtb2RlLCBvcGVy YW5kc1syXSwgb3BlcmFuZHNbM10pOworOzsgIH0KKzs7IFsoc2V0X2F0dHIgImNjIiAic2V0X3pu dixjb21wYXJlIildKQorCis7OyhkZWZpbmVfaW5zbiAiKmNvbmRic2V0IgorOzsgIFsoc2V0ICht YXRjaF9vcGVyYW5kOlFJIDAgImJpdF9tZW1vcnlfb3BlcmFuZCIgIj1XVSIpCis7OwkoaWZfdGhl bl9lbHNlOlFJIChtYXRjaF9vcGVyYXRvcjpRSSAyICJlcW5lX29wZXJhdG9yIgorOzsJCQkgIFso Y2MwKSAoY29uc3RfaW50IDApXSkKKzs7CQkJIChpb3I6UUkgKG1hdGNoX29wZXJhbmQ6UUkgMyAi Yml0X21lbW9yeV9vcGVyYW5kIiAiMCIpCis7OwkJCQkgKG1hdGNoX29wZXJhbmQ6UUkgMSAic2lu Z2xlX29uZV9vcGVyYW5kIiAibiIpKQorOzsJCQkgKG1hdGNoX2R1cCAzKSkpXQorOzsgICJUQVJH RVRfSDgzMDBTWCAmJiByZWxvYWRfY29tcGxldGVkIgorOzsgICJic2V0LyVqMlx0JVYxLCUwIgor OzsgIFsoc2V0X2F0dHIgImNjIiAibm9uZV8waGl0IikKKzs7ICAgKHNldF9hdHRyICJsZW5ndGhf dGFibGUiICJsb2dpY2IiKV0pCisKKzs7KGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKmNtcGNvbmRi Y2xyIgorOzsgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5k IiAiPVdVLFdVIikKKzs7CShpZl90aGVuX2Vsc2U6UUkgKG1hdGNoX29wZXJhdG9yIDEgImVxbmVf b3BlcmF0b3IiCis7OwkJCSAgWyhtYXRjaF9vcGVyYW5kIDIgImg4MzAwX2RzdF9vcGVyYW5kIiAi cixyUSIpCis7OwkJCSAgIChtYXRjaF9vcGVyYW5kIDMgImg4MzAwX3NyY19vcGVyYW5kIiAiSSxy UWkiKV0pCis7OwkJCSAoYW5kOlFJIChtYXRjaF9vcGVyYW5kOlFJIDQgImJpdF9tZW1vcnlfb3Bl cmFuZCIgIjAsMCIpCis7OwkJCQkgKG1hdGNoX29wZXJhbmQ6UUkgNSAic2luZ2xlX3plcm9fb3Bl cmFuZCIgIm4sbiIpKQorOzsJCQkgKG1hdGNoX2R1cCA0KSkpXQorOzsgICJUQVJHRVRfSDgzMDBT WCIKKzs7ICAiIyIKKzs7ICAicmVsb2FkX2NvbXBsZXRlZCIKKzs7ICBbKHNldCAoY2MwKSAobWF0 Y2hfZHVwIDYpKQorOzsgICAoc2V0IChtYXRjaF9kdXAgMCkKKzs7CShpZl90aGVuX2Vsc2U6UUkg KG1hdGNoX29wX2R1cCAxIFsoY2MwKSAoY29uc3RfaW50IDApXSkKKzs7CQkJIChhbmQ6UUkgKG1h dGNoX2R1cCA0KSAobWF0Y2hfZHVwIDUpKQorOzsJCQkgKG1hdGNoX2R1cCA0KSkpXQorOzsgIHsK Kzs7ICAgIG9wZXJhbmRzWzZdID0gZ2VuX3J0eF9DT01QQVJFIChWT0lEbW9kZSwgb3BlcmFuZHNb Ml0sIG9wZXJhbmRzWzNdKTsKKzs7ICB9Cis7OyAgWyhzZXRfYXR0ciAiY2MiICJzZXRfem52LGNv bXBhcmUiKV0pCisKKzs7KGRlZmluZV9pbnNuICIqY29uZGJjbHIiCis7OyAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6UUkgMCAiYml0X21lbW9yeV9vcGVyYW5kIiAiPVdVIikKKzs7CShpZl90aGVuX2Vs c2U6UUkgKG1hdGNoX29wZXJhdG9yOlFJIDIgImVxbmVfb3BlcmF0b3IiCis7OwkJCSAgWyhjYzAp IChjb25zdF9pbnQgMCldKQorOzsJCQkgKGFuZDpRSSAobWF0Y2hfb3BlcmFuZDpRSSAzICJiaXRf bWVtb3J5X29wZXJhbmQiICIwIikKKzs7CQkJCSAobWF0Y2hfb3BlcmFuZDpRSSAxICJzaW5nbGVf emVyb19vcGVyYW5kIiAibiIpKQorOzsJCQkgKG1hdGNoX2R1cCAzKSkpXQorOzsgICJUQVJHRVRf SDgzMDBTWCAmJiByZWxvYWRfY29tcGxldGVkIgorOzsgICJiY2xyLyVqMlx0JVcxLCUwIgorOzsg IFsoc2V0X2F0dHIgImNjIiAibm9uZV8waGl0IikKKzs7ICAgKHNldF9hdHRyICJsZW5ndGhfdGFi bGUiICJsb2dpY2IiKV0pCisKKzs7KGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKmNtcGNvbmRic2V0 cmVnIgorOzsgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5k IiAiPVdVLFdVIikKKzs7CShpZl90aGVuX2Vsc2U6UUkgKG1hdGNoX29wZXJhdG9yIDEgImVxbmVf b3BlcmF0b3IiCis7OwkJCSAgWyhtYXRjaF9vcGVyYW5kIDIgImg4MzAwX2RzdF9vcGVyYW5kIiAi cixyUSIpCis7OwkJCSAgIChtYXRjaF9vcGVyYW5kIDMgImg4MzAwX3NyY19vcGVyYW5kIiAiSSxy UWkiKV0pCis7OwkJCSAoaW9yOlFJIChtYXRjaF9vcGVyYW5kOlFJIDQgImJpdF9tZW1vcnlfb3Bl cmFuZCIgIjAsMCIpCis7OwkJCQkgKGFzaGlmdDpRSSAoY29uc3RfaW50IDEpCis7OwkJCQkJICAg IChtYXRjaF9vcGVyYW5kOlFJIDUgInJlZ2lzdGVyX29wZXJhbmQiICJyLHIiKSkpCis7OwkJCSAo bWF0Y2hfZHVwIDQpKSldCis7OyAgIlRBUkdFVF9IODMwMFNYIgorOzsgICIjIgorOzsgICJyZWxv YWRfY29tcGxldGVkIgorOzsgIFsoc2V0IChjYzApIChtYXRjaF9kdXAgNikpCis7OyAgIChzZXQg KG1hdGNoX2R1cCAwKQorOzsJKGlmX3RoZW5fZWxzZTpRSSAobWF0Y2hfb3BfZHVwIDEgWyhjYzAp IChjb25zdF9pbnQgMCldKQorOzsJCQkgKGlvcjpRSSAobWF0Y2hfZHVwIDQpCis7OwkJCQkgKGFz aGlmdDpRSSAoY29uc3RfaW50IDEpCis7OwkJCQkJICAgIChtYXRjaF9vcGVyYW5kOlFJIDUgInJl Z2lzdGVyX29wZXJhbmQiICJyLHIiKSkpCis7OwkJCSAobWF0Y2hfZHVwIDQpKSldCis7OyAgewor OzsgICAgb3BlcmFuZHNbNl0gPSBnZW5fcnR4X0NPTVBBUkUgKFZPSURtb2RlLCBvcGVyYW5kc1sy XSwgb3BlcmFuZHNbM10pOworOzsgIH0KKzs7ICBbKHNldF9hdHRyICJjYyIgInNldF96bnYsY29t cGFyZSIpXSkKKworOzsoZGVmaW5lX2luc24gIipjb25kYnNldHJlZyIKKzs7ICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpRSSAwICJiaXRfbWVtb3J5X29wZXJhbmQiICI9V1UiKQorOzsJKGlmX3RoZW5f ZWxzZTpRSSAobWF0Y2hfb3BlcmF0b3I6UUkgMiAiZXFuZV9vcGVyYXRvciIKKzs7CQkJICBbKGNj MCkgKGNvbnN0X2ludCAwKV0pCis7OwkJCSAoaW9yOlFJIChtYXRjaF9vcGVyYW5kOlFJIDMgImJp dF9tZW1vcnlfb3BlcmFuZCIgIjAiKQorOzsJCQkJIChhc2hpZnQ6UUkgKGNvbnN0X2ludCAxKQor OzsJCQkJCSAgICAobWF0Y2hfb3BlcmFuZDpRSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpKSkK Kzs7CQkJIChtYXRjaF9kdXAgMykpKV0KKzs7ICAiVEFSR0VUX0g4MzAwU1ggJiYgcmVsb2FkX2Nv bXBsZXRlZCIKKzs7ICAiYnNldC8lajJcdCVSMSwlMCIKKzs7ICBbKHNldF9hdHRyICJjYyIgIm5v bmVfMGhpdCIpCis7OyAgIChzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibG9naWNiIildKQorCis7 OyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIipjbXBjb25kYmNscnJlZyIKKzs7ICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpRSSAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIj1XVSxXVSIpCis7OwkoaWZf dGhlbl9lbHNlOlFJIChtYXRjaF9vcGVyYXRvciAxICJlcW5lX29wZXJhdG9yIgorOzsJCQkgIFso bWF0Y2hfb3BlcmFuZCAyICJoODMwMF9kc3Rfb3BlcmFuZCIgInIsclEiKQorOzsJCQkgICAobWF0 Y2hfb3BlcmFuZCAzICJoODMwMF9zcmNfb3BlcmFuZCIgIkksclFpIildKQorOzsJCQkgKGFuZDpR SSAobWF0Y2hfb3BlcmFuZDpRSSA0ICJiaXRfbWVtb3J5X29wZXJhbmQiICIwLDAiKQorOzsJCQkJ IChhc2hpZnQ6UUkgKGNvbnN0X2ludCAxKQorOzsJCQkJCSAgICAobWF0Y2hfb3BlcmFuZDpRSSA1 ICJyZWdpc3Rlcl9vcGVyYW5kIiAicixyIikpKQorOzsJCQkgKG1hdGNoX2R1cCA0KSkpXQorOzsg ICJUQVJHRVRfSDgzMDBTWCIKKzs7ICAiIyIKKzs7ICAicmVsb2FkX2NvbXBsZXRlZCIKKzs7ICBb KHNldCAoY2MwKSAobWF0Y2hfZHVwIDYpKQorOzsgICAoc2V0IChtYXRjaF9kdXAgMCkKKzs7CShp Zl90aGVuX2Vsc2U6UUkgKG1hdGNoX29wX2R1cCAxIFsoY2MwKSAoY29uc3RfaW50IDApXSkKKzs7 CQkJIChhbmQ6UUkgKG1hdGNoX2R1cCA0KQorOzsJCQkJIChhc2hpZnQ6UUkgKGNvbnN0X2ludCAx KQorOzsJCQkJCSAgICAobWF0Y2hfb3BlcmFuZDpRSSA1ICJyZWdpc3Rlcl9vcGVyYW5kIiAicixy IikpKQorOzsJCQkgKG1hdGNoX2R1cCA0KSkpXQorOzsgIHsKKzs7ICAgIG9wZXJhbmRzWzZdID0g Z2VuX3J0eF9DT01QQVJFIChWT0lEbW9kZSwgb3BlcmFuZHNbMl0sIG9wZXJhbmRzWzNdKTsKKzs7 ICB9Cis7OyAgWyhzZXRfYXR0ciAiY2MiICJzZXRfem52LGNvbXBhcmUiKV0pCisKKzs7KGRlZmlu ZV9pbnNuICIqY29uZGJjbHJyZWciCis7OyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UUkgMCAiYml0 X21lbW9yeV9vcGVyYW5kIiAiPVdVIikKKzs7CShpZl90aGVuX2Vsc2U6UUkgKG1hdGNoX29wZXJh dG9yOlFJIDIgImVxbmVfb3BlcmF0b3IiCis7OwkJCSAgWyhjYzApIChjb25zdF9pbnQgMCldKQor OzsJCQkgKGFuZDpRSSAobWF0Y2hfb3BlcmFuZDpRSSAzICJiaXRfbWVtb3J5X29wZXJhbmQiICIw IikKKzs7CQkJCSAoYXNoaWZ0OlFJIChjb25zdF9pbnQgMSkKKzs7CQkJCQkgICAgKG1hdGNoX29w ZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkpCis7OwkJCSAobWF0Y2hfZHVwIDMp KSldCis7OyAgIlRBUkdFVF9IODMwMFNYICYmIHJlbG9hZF9jb21wbGV0ZWQiCis7OyAgImJjbHIv JWoyXHQlUjEsJTAiCis7OyAgWyhzZXRfYXR0ciAiY2MiICJub25lXzBoaXQiKQorOzsgICAoc2V0 X2F0dHIgImxlbmd0aF90YWJsZSIgImxvZ2ljYiIpXSkKIApkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZp Zy9oODMwMC9jb21iaW5lci5tZCBiL2djYy9jb25maWcvaDgzMDAvY29tYmluZXIubWQKaW5kZXgg NGY0OWM3ZmJhMzQuLjQzMmMxZDg4YTYxIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2g4MzAwL2Nv bWJpbmVyLm1kCisrKyBiL2djYy9jb25maWcvaDgzMDAvY29tYmluZXIubWQKQEAgLTQsODUgKzQs MTkzIEBACiAKIDs7IGluc3Y6U0kKIAotKGRlZmluZV9pbnNuICIqaW5zdl9zaV8xX24iCisoZGVm aW5lX2luc25fYW5kX3NwbGl0ICIqaW5zdl9zaV8xX24iCiAgIFsoc2V0ICh6ZXJvX2V4dHJhY3Q6 U0kgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIityIikKIAkJCSAoY29u c3RfaW50IDEpCiAJCQkgKG1hdGNoX29wZXJhbmQ6U0kgMSAiY29uc3RfaW50X29wZXJhbmQiICJu IikpCiAJKG1hdGNoX29wZXJhbmQ6U0kgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSldCiAgICJJ TlRWQUwgKG9wZXJhbmRzWzFdKSA8IDE2IgorICAiIyIKKyAgInJlbG9hZF9jb21wbGV0ZWQiCisg IFsocGFyYWxsZWwgWyhzZXQgKHplcm9fZXh0cmFjdDpTSSAobWF0Y2hfZHVwIDApIChjb25zdF9p bnQgMSkgKG1hdGNoX2R1cCAxKSkKKwkJICAgKG1hdGNoX2R1cCAyKSkKKwkgICAgICAoY2xvYmJl ciAocmVnOkNDIENDX1JFRykpXSldKQorCisoZGVmaW5lX2luc24gIippbnN2X3NpXzFfbl9jbG9i YmVyX2ZsYWdzIgorICBbKHNldCAoemVyb19leHRyYWN0OlNJIChtYXRjaF9vcGVyYW5kOlNJIDAg InJlZ2lzdGVyX29wZXJhbmQiICIrciIpCisJCQkgKGNvbnN0X2ludCAxKQorCQkJIChtYXRjaF9v cGVyYW5kOlNJIDEgImNvbnN0X2ludF9vcGVyYW5kIiAibiIpKQorCShtYXRjaF9vcGVyYW5kOlNJ IDIgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpCisgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykp XQorICAiSU5UVkFMIChvcGVyYW5kc1sxXSkgPCAxNiIKICAgImJsZFxcdCMwLCV3Mlw7YnN0XFx0 JVoxLCVZMCIKICAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNCIpXSkKIAotKGRlZmluZV9pbnNuICIq aW5zdl9zaV8xX25fbHNoaWZ0cnQiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqaW5zdl9zaV8x X25fbHNoaWZ0cnQiCiAgIFsoc2V0ICh6ZXJvX2V4dHJhY3Q6U0kgKG1hdGNoX29wZXJhbmQ6U0kg MCAicmVnaXN0ZXJfb3BlcmFuZCIgIityIikKIAkJCSAoY29uc3RfaW50IDEpCiAJCQkgKG1hdGNo X29wZXJhbmQ6U0kgMSAiY29uc3RfaW50X29wZXJhbmQiICJuIikpCiAJKGxzaGlmdHJ0OlNJICht YXRjaF9vcGVyYW5kOlNJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJyIikKIAkJICAgICAobWF0Y2hf b3BlcmFuZDpTSSAzICJjb25zdF9pbnRfb3BlcmFuZCIgIm4iKSkpXQogICAiSU5UVkFMIChvcGVy YW5kc1sxXSkgPCAxNiAmJiBJTlRWQUwgKG9wZXJhbmRzWzNdKSA8IDE2IgorICAiIyIKKyAgInJl bG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKHplcm9fZXh0cmFjdDpTSSAobWF0 Y2hfZHVwIDApIChjb25zdF9pbnQgMSkgKG1hdGNoX2R1cCAxKSkKKwkJICAgKGxzaGlmdHJ0OlNJ IChtYXRjaF9kdXAgMikgKG1hdGNoX2R1cCAzKSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBD Q19SRUcpKV0pXSkKKworKGRlZmluZV9pbnNuICIqaW5zdl9zaV8xX25fbHNoaWZ0cnRfY2xvYmJl cl9mbGFncyIKKyAgWyhzZXQgKHplcm9fZXh0cmFjdDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAwICJy ZWdpc3Rlcl9vcGVyYW5kIiAiK3IiKQorCQkJIChjb25zdF9pbnQgMSkKKwkJCSAobWF0Y2hfb3Bl cmFuZDpTSSAxICJjb25zdF9pbnRfb3BlcmFuZCIgIm4iKSkKKwkobHNoaWZ0cnQ6U0kgKG1hdGNo X29wZXJhbmQ6U0kgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKQorCQkgICAgIChtYXRjaF9vcGVy YW5kOlNJIDMgImNvbnN0X2ludF9vcGVyYW5kIiAibiIpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0Mg Q0NfUkVHKSldCisgICJJTlRWQUwgKG9wZXJhbmRzWzFdKSA8IDE2ICYmIElOVFZBTCAob3BlcmFu ZHNbM10pIDwgMTYiCiAgICJibGRcXHQlWjMsJVkyXDtic3RcXHQlWjEsJVkwIgogICBbKHNldF9h dHRyICJsZW5ndGgiICI0IildKQogCi0oZGVmaW5lX2luc24gIippbnN2X3NpXzFfbl9sc2hpZnRy dF8xNiIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIippbnN2X3NpXzFfbl9sc2hpZnRydF8xNiIK ICAgWyhzZXQgKHplcm9fZXh0cmFjdDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9v cGVyYW5kIiAiK3IiKQogCQkJIChjb25zdF9pbnQgMSkKIAkJCSAobWF0Y2hfb3BlcmFuZDpTSSAx ICJjb25zdF9pbnRfb3BlcmFuZCIgIm4iKSkKIAkobHNoaWZ0cnQ6U0kgKG1hdGNoX29wZXJhbmQ6 U0kgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKQogCQkgICAgIChjb25zdF9pbnQgMTYpKSldCiAg ICJJTlRWQUwgKG9wZXJhbmRzWzFdKSA8IDE2IgorICAiIyIKKyAgInJlbG9hZF9jb21wbGV0ZWQi CisgIFsocGFyYWxsZWwgWyhzZXQgKHplcm9fZXh0cmFjdDpTSSAobWF0Y2hfZHVwIDApIChjb25z dF9pbnQgMSkgKG1hdGNoX2R1cCAxKSkKKwkJICAgKGxzaGlmdHJ0OlNJIChtYXRjaF9kdXAgMikg KGNvbnN0X2ludCAxNikpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0pCisK KyhkZWZpbmVfaW5zbiAiKmluc3Zfc2lfMV9uX2xzaGlmdHJ0XzE2X2Nsb2JiZXJfZmxhZ3MiCisg IFsoc2V0ICh6ZXJvX2V4dHJhY3Q6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3Bl cmFuZCIgIityIikKKwkJCSAoY29uc3RfaW50IDEpCisJCQkgKG1hdGNoX29wZXJhbmQ6U0kgMSAi Y29uc3RfaW50X29wZXJhbmQiICJuIikpCisJKGxzaGlmdHJ0OlNJIChtYXRjaF9vcGVyYW5kOlNJ IDIgInJlZ2lzdGVyX29wZXJhbmQiICJyIikKKwkJICAgICAoY29uc3RfaW50IDE2KSkpCisgICAo Y2xvYmJlciAocmVnOkNDIENDX1JFRykpXQorICAiSU5UVkFMIChvcGVyYW5kc1sxXSkgPCAxNiIK ICAgInJvdHIud1xcdCVlMlw7cm90bC53XFx0JWUyXDtic3RcXHQlWjEsJVkwIgogICBbKHNldF9h dHRyICJsZW5ndGgiICI2IildKQogCi0oZGVmaW5lX2luc24gIippbnN2X3NpXzhfOCIKKyhkZWZp bmVfaW5zbl9hbmRfc3BsaXQgIippbnN2X3NpXzhfOCIKICAgWyhzZXQgKHplcm9fZXh0cmFjdDpT SSAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiK3IiKQogCQkJIChjb25z dF9pbnQgOCkKIAkJCSAoY29uc3RfaW50IDgpKQogCShtYXRjaF9vcGVyYW5kOlNJIDEgInJlZ2lz dGVyX29wZXJhbmQiICJyIikpXQogICAiIgorICAiIyIKKyAgInJlbG9hZF9jb21wbGV0ZWQiCisg IFsocGFyYWxsZWwgWyhzZXQgKHplcm9fZXh0cmFjdDpTSSAobWF0Y2hfZHVwIDApIChjb25zdF9p bnQgOCkgKGNvbnN0X2ludCA4KSkKKwkJICAgKG1hdGNoX2R1cCAxKSkKKwkgICAgICAoY2xvYmJl ciAocmVnOkNDIENDX1JFRykpXSldKQorCisoZGVmaW5lX2luc24gIippbnN2X3NpXzhfOF9jbG9i YmVyX2ZsYWdzIgorICBbKHNldCAoemVyb19leHRyYWN0OlNJIChtYXRjaF9vcGVyYW5kOlNJIDAg InJlZ2lzdGVyX29wZXJhbmQiICIrciIpCisJCQkgKGNvbnN0X2ludCA4KQorCQkJIChjb25zdF9p bnQgOCkpCisJKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkKKyAg IChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldCisgICIiCiAgICJtb3YuYlxcdCV3MSwleDAiCiAg IFsoc2V0X2F0dHIgImxlbmd0aCIgIjIiKV0pCiAKLShkZWZpbmVfaW5zbiAiKmluc3Zfc2lfOF84 X2xzaGlmdHJ0XzgiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqaW5zdl9zaV84XzhfbHNoaWZ0 cnRfOCIKICAgWyhzZXQgKHplcm9fZXh0cmFjdDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdp c3Rlcl9vcGVyYW5kIiAiK3IiKQogCQkJIChjb25zdF9pbnQgOCkKIAkJCSAoY29uc3RfaW50IDgp KQogCShsc2hpZnRydDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAi ciIpCiAJCSAgICAgKGNvbnN0X2ludCA4KSkpXQogICAiIgorICAiIyIKKyAgInJlbG9hZF9jb21w bGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKHplcm9fZXh0cmFjdDpTSSAobWF0Y2hfZHVwIDAp IChjb25zdF9pbnQgOCkgKGNvbnN0X2ludCA4KSkKKwkJICAgKGxzaGlmdHJ0OlNJIChtYXRjaF9k dXAgMSkgKGNvbnN0X2ludCA4KSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0p XSkKKworKGRlZmluZV9pbnNuICIqaW5zdl9zaV84XzhfbHNoaWZ0cnRfOF9jbG9iYmVyX2ZsYWdz IgorICBbKHNldCAoemVyb19leHRyYWN0OlNJIChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVy X29wZXJhbmQiICIrciIpCisJCQkgKGNvbnN0X2ludCA4KQorCQkJIChjb25zdF9pbnQgOCkpCisJ KGxzaGlmdHJ0OlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJyIikK KwkJICAgICAoY29uc3RfaW50IDgpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldCisg ICIiCiAgICJtb3YuYlxcdCV4MSwleDAiCiAgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjIiKV0pCiAK IDs7IGV4dHp2OlNJCiAKLShkZWZpbmVfaW5zbiAiKmV4dHp2XzhfOCIKKyhkZWZpbmVfaW5zbl9h bmRfc3BsaXQgIipleHR6dl84XzgiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lz dGVyX29wZXJhbmQiICI9cixyIikKIAkoemVyb19leHRyYWN0OlNJIChtYXRjaF9vcGVyYW5kOlNJ IDEgInJlZ2lzdGVyX29wZXJhbmQiICI/MCxyIikKIAkJCSAoY29uc3RfaW50IDgpCiAJCQkgKGNv bnN0X2ludCA4KSkpXQogICAiIgorICAiIyIKKyAgInJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFy YWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorCQkgICAoemVyb19leHRyYWN0OlNJIChtYXRjaF9k dXAgMSkgKGNvbnN0X2ludCA4KSAoY29uc3RfaW50IDgpKSkKKwkgICAgICAoY2xvYmJlciAocmVn OkNDIENDX1JFRykpXSldKQorCisoZGVmaW5lX2luc24gIipleHR6dl84XzhfY2xvYmJlcl9mbGFn cyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yLHIi KQorCSh6ZXJvX2V4dHJhY3Q6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFu ZCIgIj8wLHIiKQorCQkJIChjb25zdF9pbnQgOCkKKwkJCSAoY29uc3RfaW50IDgpKSkKKyAgIChj bG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldCisgICIiCiAgICJACiAgICBtb3YuYlxcdCV4MSwldzBc O2V4dHUud1xcdCVmMFw7ZXh0dS5sXFx0JVMwCiAgICBzdWIubFxcdCVTMCwlUzBcO21vdi5iXFx0 JXgxLCV3MCIKICAgWyhzZXRfYXR0ciAiY2MiICJzZXRfem52LGNsb2JiZXIiKQogICAgKHNldF9h dHRyICJsZW5ndGgiICI2LDQiKV0pCiAKLShkZWZpbmVfaW5zbiAiKmV4dHp2XzhfMTYiCisoZGVm aW5lX2luc25fYW5kX3NwbGl0ICIqZXh0enZfOF8xNiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6 U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKIAkoemVyb19leHRyYWN0OlNJIChtYXRjaF9v cGVyYW5kOlNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJyIikKIAkJCSAoY29uc3RfaW50IDgpCiAJ CQkgKGNvbnN0X2ludCAxNikpKV0KICAgIiIKKyAgIiMiCisgICJyZWxvYWRfY29tcGxldGVkIgor ICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKwkJICAgKHplcm9fZXh0cmFjdDpTSSAo bWF0Y2hfZHVwIDEpIChjb25zdF9pbnQgOCkgKGNvbnN0X2ludCAxNikpKQorCSAgICAgIChjbG9i YmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKmV4dHp2XzhfMTZfY2xv YmJlcl9mbGFncyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFu ZCIgIj1yIikKKwkoemVyb19leHRyYWN0OlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgInJlZ2lzdGVy X29wZXJhbmQiICJyIikKKwkJCSAoY29uc3RfaW50IDgpCisJCQkgKGNvbnN0X2ludCAxNikpKQor ICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0KKyAgIiIKICAgIm1vdi53XFx0JWUxLCVmMFw7 ZXh0dS53XFx0JWYwXDtleHR1LmxcXHQlUzAiCiAgIFsoc2V0X2F0dHIgImNjIiAic2V0X3pudiIp CiAgICAoc2V0X2F0dHIgImxlbmd0aCIgIjYiKV0pCiAKLShkZWZpbmVfaW5zbiAiKmV4dHp2XzE2 XzgiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqZXh0enZfMTZfOCIKICAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKIAkoemVyb19leHRyYWN0OlNJ IChtYXRjaF9vcGVyYW5kOlNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJyIikKIAkJCSAoY29uc3Rf aW50IDE2KQogCQkJIChjb25zdF9pbnQgOCkpKQogICAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6 U0kgMiAiPSZyIikpXQogICAiVEFSR0VUX0g4MzAwSCIKKyAgIiMiCisgICJyZWxvYWRfY29tcGxl dGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKwkJICAgKHplcm9fZXh0cmFj dDpTSSAobWF0Y2hfZHVwIDEpIChjb25zdF9pbnQgMTYpIChjb25zdF9pbnQgOCkpKQorCSAgICAg IChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKmV4dHp2XzE2 XzhfY2xvYmJlcl9mbGFncyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJf b3BlcmFuZCIgIj1yIikKKwkoemVyb19leHRyYWN0OlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgInJl Z2lzdGVyX29wZXJhbmQiICJyIikKKwkJCSAoY29uc3RfaW50IDE2KQorCQkJIChjb25zdF9pbnQg OCkpKQorICAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6U0kgMiAiPSZyIikpCisgICAoY2xvYmJl ciAocmVnOkNDIENDX1JFRykpXQorICAiVEFSR0VUX0g4MzAwSCIKICAgIm1vdi53XFx0JWUxLCVm Mlw7bW92LmJcXHQleDEsJXcwXDttb3YuYlxcdCV3MiwleDBcO2V4dHUubFxcdCVTMCIKICAgWyhz ZXRfYXR0ciAibGVuZ3RoIiAiOCIpCiAgICAoc2V0X2F0dHIgImNjIiAic2V0X3pudiIpXSkKQEAg LTEwMCwxMiArMjA4LDEzIEBACiAgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQogCQkg ICAoYXNoaWZ0OlNJIChtYXRjaF9kdXAgMCkKIAkJCSAgICAgIChjb25zdF9pbnQgMSkpKQotCSAg ICAgIChjbG9iYmVyIChzY3JhdGNoOlFJKSldKQorCSAgICAgIChjbG9iYmVyIChzY3JhdGNoOlFJ KSkKKwkgICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXSkKICAgIChwYXJhbGxlbCBbKHNl dCAobWF0Y2hfZHVwIDApCiAJCSAgIChsc2hpZnRydDpTSSAobWF0Y2hfZHVwIDApCiAJCQkJKGNv bnN0X2ludCAyNCkpKQotCSAgICAgIChjbG9iYmVyIChzY3JhdGNoOlFJKSldKV0KLSAgIiIpCisJ ICAgICAgKGNsb2JiZXIgKHNjcmF0Y2g6UUkpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0Nf UkVHKSldKV0pCiAKIDs7IGFuZDpTSQogCkBAIC0xMjIsMTIgKzIzMSwxMyBAQAogICBbKHBhcmFs bGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKIAkJICAgKGFzaGlmdDpTSSAobWF0Y2hfZHVwIDApCiAJ CQkgICAgICAoY29uc3RfaW50IDE2KSkpCi0JICAgICAgKGNsb2JiZXIgKHNjcmF0Y2g6UUkpKV0p CisJICAgICAgKGNsb2JiZXIgKHNjcmF0Y2g6UUkpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0Mg Q0NfUkVHKSldKQogICAgKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKIAkJICAgKGxzaGlm dHJ0OlNJIChtYXRjaF9kdXAgMCkKIAkJCQkoY29uc3RfaW50IDEpKSkKLQkgICAgICAoY2xvYmJl ciAoc2NyYXRjaDpRSSkpXSldCi0gICIiKQorCSAgICAgIChjbG9iYmVyIChzY3JhdGNoOlFJKSkK KwkgICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXSldKQogCiA7OyBUcmFuc2Zvcm0gKFNJ bW9kZSA8PCBCKSAmIDB4ZmZmZiBpbnRvIChTSW1vZGUpIChISW1vZGUgPDwgQikuCiAKQEAgLTE0 NSwyMiArMjU1LDM5IEBACiAgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCA1KQogCQkgICAo YXNoaWZ0OkhJIChtYXRjaF9kdXAgNSkKIAkJCSAgICAgIChtYXRjaF9kdXAgMikpKQotCSAgICAg IChjbG9iYmVyIChtYXRjaF9kdXAgNCkpXSkKLSAgIChzZXQgKG1hdGNoX2R1cCAwKQotCSh6ZXJv X2V4dGVuZDpTSSAobWF0Y2hfZHVwIDUpKSldCisJICAgICAgKGNsb2JiZXIgKG1hdGNoX2R1cCA0 KSkKKwkgICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXSkKKyAgIChwYXJhbGxlbCBbKHNl dCAobWF0Y2hfZHVwIDApCisJCSAgICh6ZXJvX2V4dGVuZDpTSSAobWF0Y2hfZHVwIDUpKSkKKwkg ICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXSldCiAgIHsKICAgICBvcGVyYW5kc1s1XSA9 IGdlbl9ydHhfUkVHIChISW1vZGUsIFJFR05PIChvcGVyYW5kc1swXSkpOwogICB9KQogCiA7OyBB Y2NlcHQgKEEgPj4gMzApICYgMiBhbmQgdGhlIGxpa2UuCiAKLShkZWZpbmVfaW5zbiAiKmFuZHNp M19sc2hpZnRydF9uX3NiIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKmFuZHNpM19sc2hpZnRy dF9uX3NiIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAi PXIiKQogCShhbmQ6U0kgKGxzaGlmdHJ0OlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgInJlZ2lzdGVy X29wZXJhbmQiICIwIikKIAkJCSAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMiAiY29uc3RfaW50X29w ZXJhbmQiICJuIikpCiAJCShtYXRjaF9vcGVyYW5kOlNJIDMgInNpbmdsZV9vbmVfb3BlcmFuZCIg Im4iKSkpXQogICAiZXhhY3RfbG9nMiAoSU5UVkFMIChvcGVyYW5kc1szXSkpIDwgMTYKICAgICYm IElOVFZBTCAob3BlcmFuZHNbMl0pICsgZXhhY3RfbG9nMiAoSU5UVkFMIChvcGVyYW5kc1szXSkp ID09IDMxIgorICAiIyIKKyAgIiIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisJ CSAgIChhbmQ6U0kgKGxzaGlmdHJ0OlNJIChtYXRjaF9kdXAgMSkgKG1hdGNoX2R1cCAyKSkKKwkJ CSAgIChtYXRjaF9kdXAgMykpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0p CisKKyhkZWZpbmVfaW5zbiAiKmFuZHNpM19sc2hpZnRydF9uX3NiIgorICBbKHNldCAobWF0Y2hf b3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQorCShhbmQ6U0kgKGxzaGlmdHJ0 OlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIwIikKKwkJCSAgICAg KG1hdGNoX29wZXJhbmQ6U0kgMiAiY29uc3RfaW50X29wZXJhbmQiICJuIikpCisJCShtYXRjaF9v cGVyYW5kOlNJIDMgInNpbmdsZV9vbmVfb3BlcmFuZCIgIm4iKSkpCisgICAoY2xvYmJlciAocmVn OkNDIENDX1JFRykpXQorICAiZXhhY3RfbG9nMiAoSU5UVkFMIChvcGVyYW5kc1szXSkpIDwgMTYK KyAgICYmIElOVFZBTCAob3BlcmFuZHNbMl0pICsgZXhhY3RfbG9nMiAoSU5UVkFMIChvcGVyYW5k c1szXSkpID09IDMxIgogewogICBvcGVyYW5kc1szXSA9IEdFTl9JTlQgKGV4YWN0X2xvZzIgKElO VFZBTCAob3BlcmFuZHNbM10pKSk7CiAgIHJldHVybiAic2hsbC5sXFx0JVMwXDt4b3IubFxcdCVT MCwlUzBcO2JzdFxcdCVaMywlWTAiOwpAQCAtMTc1LDE3MiArMzAyLDMzMCBAQAogICAiIgogICAi IyIKICAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCi0gIFsoc2V0IChtYXRjaF9kdXAgMCkKLQkoYW5k OlNJIChsc2hpZnRydDpTSSAobWF0Y2hfZHVwIDApCi0JCQkgICAgIChjb25zdF9pbnQgMjUpKQot CQkoY29uc3RfaW50IDY0KSkpCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorCQkg ICAoYW5kOlNJIChsc2hpZnRydDpTSSAobWF0Y2hfZHVwIDApIChjb25zdF9pbnQgMjUpKQorCQkJ ICAgKGNvbnN0X2ludCA2NCkpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKQog ICAgKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKIAkJICAgKGFzaGlmdDpTSSAobWF0Y2hf ZHVwIDApCiAJCQkgICAgICAoY29uc3RfaW50IDE2KSkpCi0JICAgICAgKGNsb2JiZXIgKHNjcmF0 Y2g6UUkpKV0pXQotICAiIikKKwkgICAgICAoY2xvYmJlciAoc2NyYXRjaDpRSSkpCisJICAgICAg KGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pXSkKIAogOzsgcGx1czpTSQogCi0oZGVmaW5lX2lu c24gIiphZGRzaTNfdXBwZXIiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqYWRkc2kzX3VwcGVy IgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQog CShwbHVzOlNJIChtdWx0OlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgInJlZ2lzdGVyX29wZXJhbmQi ICJyIikKIAkJCSAgKGNvbnN0X2ludCA2NTUzNikpCiAJCSAobWF0Y2hfb3BlcmFuZDpTSSAyICJy ZWdpc3Rlcl9vcGVyYW5kIiAiMCIpKSldCiAgICIiCisgICIjIgorICAicmVsb2FkX2NvbXBsZXRl ZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisJCSAgIChwbHVzOlNJIChtdWx0 OlNJIChtYXRjaF9kdXAgMSkgKGNvbnN0X2ludCA2NTUzNikpCisJCQkgICAgKG1hdGNoX2R1cCAy KSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pXSkKKworKGRlZmluZV9pbnNu ICIqYWRkc2kzX3VwcGVyX2Nsb2JiZXJfcmVncyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kg MCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKKwkocGx1czpTSSAobXVsdDpTSSAobWF0Y2hfb3Bl cmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpCisJCQkgIChjb25zdF9pbnQgNjU1MzYp KQorCQkgKG1hdGNoX29wZXJhbmQ6U0kgMiAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKSkpCisgICAo Y2xvYmJlciAocmVnOkNDIENDX1JFRykpXQorICAiIgogICAiYWRkLndcXHQlZjEsJWUwIgogICBb KHNldF9hdHRyICJsZW5ndGgiICIyIildKQogCi0oZGVmaW5lX2luc24gIiphZGRzaTNfbHNoaWZ0 cnRfMTZfemV4dGhpIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKmFkZHNpM19sc2hpZnRydF8x Nl96ZXh0aGkiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQi ICI9ciIpCiAJKHBsdXM6U0kgKGxzaGlmdHJ0OlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgInJlZ2lz dGVyX29wZXJhbmQiICJyIikKIAkJCSAgICAgIChjb25zdF9pbnQgMTYpKQogCQkgKHplcm9fZXh0 ZW5kOlNJIChtYXRjaF9vcGVyYW5kOkhJIDIgInJlZ2lzdGVyX29wZXJhbmQiICIwIikpKSldCiAg ICIiCi0gICJhZGQud1xcdCVlMSwlZjBcO3hvci53XFx0JWUwLCVlMFw7cm90eGwud1xcdCVlMCIK LSAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNiIpXSkKLQotKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAi KmFkZHNpM19hbmRfcl8xIgotICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9v cGVyYW5kIiAiPXIiKQotCShwbHVzOlNJIChhbmQ6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVn aXN0ZXJfb3BlcmFuZCIgInIiKQotCQkJIChjb25zdF9pbnQgMSkpCi0JCSAobWF0Y2hfb3BlcmFu ZDpTSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpKSldCi0gICIiCiAgICIjIgotICAiJiYgcmVs b2FkX2NvbXBsZXRlZCIKLSAgWyhzZXQgKGNjMCkgKGNvbXBhcmUgKHplcm9fZXh0cmFjdDpTSSAo bWF0Y2hfZHVwIDEpCi0JCQkJCShjb25zdF9pbnQgMSkKLQkJCQkJKGNvbnN0X2ludCAwKSkKLQkJ ICAgICAgIChjb25zdF9pbnQgMCkpKQotICAgKHNldCAocGMpCi0gICAgICAgIChpZl90aGVuX2Vs c2UgKGVxIChjYzApCi0JCQkgIChjb25zdF9pbnQgMCkpCi0JCSAgICAgIChsYWJlbF9yZWYgKG1h dGNoX2R1cCAzKSkKLQkJICAgICAgKHBjKSkpCi0gICAoc2V0IChtYXRjaF9kdXAgMikKLSAgICAg ICAgKHBsdXM6U0kgKG1hdGNoX2R1cCAyKQotCQkgKGNvbnN0X2ludCAxKSkpCi0gICAobWF0Y2hf ZHVwIDMpXQotICB7Ci0gICAgb3BlcmFuZHNbM10gPSBnZW5fbGFiZWxfcnR4ICgpOwotICB9KQor ICAicmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisJ CSAgIChwbHVzOlNJIChsc2hpZnRydDpTSSAobWF0Y2hfZHVwIDEpIChjb25zdF9pbnQgMTYpKQor CQkJICAgICh6ZXJvX2V4dGVuZDpTSSAobWF0Y2hfZHVwIDIpKSkpCisJICAgICAgKGNsb2JiZXIg KHJlZzpDQyBDQ19SRUcpKV0pXSkKIAotKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKmFkZHNpM19h bmRfbm90X3JfMSIKKyhkZWZpbmVfaW5zbiAiKmFkZHNpM19sc2hpZnRydF8xNl96ZXh0aGlfY2xv YmJlcl9mbGFncyIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFu ZCIgIj1yIikKLQkocGx1czpTSSAoYW5kOlNJIChub3Q6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAi cmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkKLQkJCSAoY29uc3RfaW50IDEpKQotCQkgKG1hdGNoX29w ZXJhbmQ6U0kgMiAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKSkpXQorCShwbHVzOlNJIChsc2hpZnRy dDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpCisJCQkgICAg ICAoY29uc3RfaW50IDE2KSkKKwkJICh6ZXJvX2V4dGVuZDpTSSAobWF0Y2hfb3BlcmFuZDpISSAy ICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpKSkpCisgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykp XQogICAiIgotICAiIyIKLSAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCi0gIFsoc2V0IChjYzApIChj b21wYXJlICh6ZXJvX2V4dHJhY3Q6U0kgKG1hdGNoX2R1cCAxKQotCQkJCQkoY29uc3RfaW50IDEp Ci0JCQkJCShjb25zdF9pbnQgMCkpCi0JCSAgICAgICAoY29uc3RfaW50IDApKSkKLSAgIChzZXQg KHBjKQotICAgICAgICAoaWZfdGhlbl9lbHNlIChuZSAoY2MwKQotCQkJICAoY29uc3RfaW50IDAp KQotCQkgICAgICAobGFiZWxfcmVmIChtYXRjaF9kdXAgMykpCi0JCSAgICAgIChwYykpKQotICAg KHNldCAobWF0Y2hfZHVwIDIpCi0gICAgICAgIChwbHVzOlNJIChtYXRjaF9kdXAgMikKLQkJIChj b25zdF9pbnQgMSkpKQotICAgKG1hdGNoX2R1cCAzKV0KLSAgewotICAgIG9wZXJhbmRzWzNdID0g Z2VuX2xhYmVsX3J0eCAoKTsKLSAgfSkKKyAgImFkZC53XFx0JWUxLCVmMFw7eG9yLndcXHQlZTAs JWUwXDtyb3R4bC53XFx0JWUwIgorICBbKHNldF9hdHRyICJsZW5ndGgiICI2IildKQorCis7Oyhk ZWZpbmVfaW5zbl9hbmRfc3BsaXQgIiphZGRzaTNfYW5kX3JfMSIKKzs7ICBbKHNldCAobWF0Y2hf b3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQorOzsJKHBsdXM6U0kgKGFuZDpT SSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpCis7OwkJCSAoY29u c3RfaW50IDEpKQorOzsJCSAobWF0Y2hfb3BlcmFuZDpTSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAi MCIpKSldCis7OyAgIiIKKzs7ICAiIyIKKzs7ICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKzs7ICBb KHNldCAoY2MwKSAoY29tcGFyZSAoemVyb19leHRyYWN0OlNJIChtYXRjaF9kdXAgMSkKKzs7CQkJ CQkoY29uc3RfaW50IDEpCis7OwkJCQkJKGNvbnN0X2ludCAwKSkKKzs7CQkgICAgICAgKGNvbnN0 X2ludCAwKSkpCis7OyAgIChzZXQgKHBjKQorOzsgICAgICAgIChpZl90aGVuX2Vsc2UgKGVxIChj YzApCis7OwkJCSAgKGNvbnN0X2ludCAwKSkKKzs7CQkgICAgICAobGFiZWxfcmVmIChtYXRjaF9k dXAgMykpCis7OwkJICAgICAgKHBjKSkpCis7OyAgIChzZXQgKG1hdGNoX2R1cCAyKQorOzsgICAg ICAgIChwbHVzOlNJIChtYXRjaF9kdXAgMikKKzs7CQkgKGNvbnN0X2ludCAxKSkpCis7OyAgICht YXRjaF9kdXAgMyldCis7OyAgeworOzsgICAgb3BlcmFuZHNbM10gPSBnZW5fbGFiZWxfcnR4ICgp OworOzsgIH0pCisKKzs7KGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKmFkZHNpM19hbmRfbm90X3Jf MSIKKzs7ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIi KQorOzsJKHBsdXM6U0kgKGFuZDpTSSAobm90OlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgInJlZ2lz dGVyX29wZXJhbmQiICJyIikpCis7OwkJCSAoY29uc3RfaW50IDEpKQorOzsJCSAobWF0Y2hfb3Bl cmFuZDpTSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpKSldCis7OyAgIiIKKzs7ICAiIyIKKzs7 ICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKzs7ICBbKHNldCAoY2MwKSAoY29tcGFyZSAoemVyb19l eHRyYWN0OlNJIChtYXRjaF9kdXAgMSkKKzs7CQkJCQkoY29uc3RfaW50IDEpCis7OwkJCQkJKGNv bnN0X2ludCAwKSkKKzs7CQkgICAgICAgKGNvbnN0X2ludCAwKSkpCis7OyAgIChzZXQgKHBjKQor OzsgICAgICAgIChpZl90aGVuX2Vsc2UgKG5lIChjYzApCis7OwkJCSAgKGNvbnN0X2ludCAwKSkK Kzs7CQkgICAgICAobGFiZWxfcmVmIChtYXRjaF9kdXAgMykpCis7OwkJICAgICAgKHBjKSkpCis7 OyAgIChzZXQgKG1hdGNoX2R1cCAyKQorOzsgICAgICAgIChwbHVzOlNJIChtYXRjaF9kdXAgMikK Kzs7CQkgKGNvbnN0X2ludCAxKSkpCis7OyAgIChtYXRjaF9kdXAgMyldCis7OyAgeworOzsgICAg b3BlcmFuZHNbM10gPSBnZW5fbGFiZWxfcnR4ICgpOworOzsgIH0pCiAKIDs7IFtpeF1vcjpISQog Ci0oZGVmaW5lX2luc24gIippeG9yaGkzX3pleHQiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIq aXhvcmhpM196ZXh0IgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpISSAwICJyZWdpc3Rlcl9vcGVy YW5kIiAiPXIiKQogCShtYXRjaF9vcGVyYXRvcjpISSAxICJpb3J4b3Jfb3BlcmF0b3IiCiAJIFso emVyb19leHRlbmQ6SEkgKG1hdGNoX29wZXJhbmQ6UUkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIi KSkKIAkgIChtYXRjaF9vcGVyYW5kOkhJIDMgInJlZ2lzdGVyX29wZXJhbmQiICIwIildKSldCiAg ICIiCisgICIjIgorICAicmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0 Y2hfZHVwIDApCisJCSAgIChtYXRjaF9vcF9kdXAgMSBbKHplcm9fZXh0ZW5kOkhJIChtYXRjaF9k dXAgMikpCisJCQkJICAgIChtYXRjaF9kdXAgMyldKSkKKwkgICAgICAoY2xvYmJlciAocmVnOkND IENDX1JFRykpXSldKQorCisKKyhkZWZpbmVfaW5zbiAiKml4b3JoaTNfemV4dF9jbG9iYmVyX2Zs YWdzIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpISSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIi KQorCShtYXRjaF9vcGVyYXRvcjpISSAxICJpb3J4b3Jfb3BlcmF0b3IiCisJIFsoemVyb19leHRl bmQ6SEkgKG1hdGNoX29wZXJhbmQ6UUkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkKKwkgICht YXRjaF9vcGVyYW5kOkhJIDMgInJlZ2lzdGVyX29wZXJhbmQiICIwIildKSkKKyAgIChjbG9iYmVy IChyZWc6Q0MgQ0NfUkVHKSldCisgICIiCiAgICIlYzEuYlxcdCVYMiwlczAiCiAgIFsoc2V0X2F0 dHIgImxlbmd0aCIgIjIiKV0pCiAKIDs7IFtpeF1vcjpTSQogCi0oZGVmaW5lX2luc24gIippeG9y c2kzX3pleHRfcWkiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqaXhvcnNpM196ZXh0X3FpIgog ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQogCSht YXRjaF9vcGVyYXRvcjpTSSAxICJpb3J4b3Jfb3BlcmF0b3IiCiAJIFsoemVyb19leHRlbmQ6U0kg KG1hdGNoX29wZXJhbmQ6UUkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkKIAkgIChtYXRjaF9v cGVyYW5kOlNJIDMgInJlZ2lzdGVyX29wZXJhbmQiICIwIildKSldCiAgICIiCisgICIjIgorICAi cmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisJCSAg IChtYXRjaF9vcF9kdXAgMSBbKHplcm9fZXh0ZW5kOlNJIChtYXRjaF9kdXAgMikpCisJCQkJICAg IChtYXRjaF9kdXAgMyldKSkKKwkgICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXSldKQor CisoZGVmaW5lX2luc24gIippeG9yc2kzX3pleHRfcWlfY2xvYmJlcl9mbGFncyIKKyAgWyhzZXQg KG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKKwkobWF0Y2hfb3Bl cmF0b3I6U0kgMSAiaW9yeG9yX29wZXJhdG9yIgorCSBbKHplcm9fZXh0ZW5kOlNJIChtYXRjaF9v cGVyYW5kOlFJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpCisJICAobWF0Y2hfb3BlcmFuZDpT SSAzICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpXSkpCisgICAoY2xvYmJlciAocmVnOkNDIENDX1JF RykpXQorICAiIgogICAiJWMxLmJcXHQlWDIsJXcwIgogICBbKHNldF9hdHRyICJsZW5ndGgiICIy IildKQogCi0oZGVmaW5lX2luc24gIippeG9yc2kzX3pleHRfaGkiCisoZGVmaW5lX2luc25fYW5k X3NwbGl0ICIqaXhvcnNpM196ZXh0X2hpIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJy ZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQogCShtYXRjaF9vcGVyYXRvcjpTSSAxICJpb3J4b3Jfb3Bl cmF0b3IiCiAJIFsoemVyb19leHRlbmQ6U0kgKG1hdGNoX29wZXJhbmQ6SEkgMiAicmVnaXN0ZXJf b3BlcmFuZCIgInIiKSkKIAkgIChtYXRjaF9vcGVyYW5kOlNJIDMgInJlZ2lzdGVyX29wZXJhbmQi ICIwIildKSldCiAgICIiCisgICIjIgorICAicmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxl bCBbKHNldCAobWF0Y2hfZHVwIDApCisJCSAgIChtYXRjaF9vcF9kdXAgMSBbKHplcm9fZXh0ZW5k OlNJIChtYXRjaF9kdXAgMikpCisJCQkJICAgIChtYXRjaF9kdXAgMyldKSkKKwkgICAgICAoY2xv YmJlciAocmVnOkNDIENDX1JFRykpXSldKQorCisoZGVmaW5lX2luc24gIippeG9yc2kzX3pleHRf aGlfY2xvYmJlcl9mbGFncyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJf b3BlcmFuZCIgIj1yIikKKwkobWF0Y2hfb3BlcmF0b3I6U0kgMSAiaW9yeG9yX29wZXJhdG9yIgor CSBbKHplcm9fZXh0ZW5kOlNJIChtYXRjaF9vcGVyYW5kOkhJIDIgInJlZ2lzdGVyX29wZXJhbmQi ICJyIikpCisJICAobWF0Y2hfb3BlcmFuZDpTSSAzICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpXSkp CisgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXQorICAiIgogICAiJWMxLndcXHQlVDIsJWYw IgogICBbKHNldF9hdHRyICJsZW5ndGgiICIyIildKQogCi0oZGVmaW5lX2luc24gIippeG9yc2kz X2FzaGlmdF8xNiIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIippeG9yc2kzX2FzaGlmdF8xNiIK ICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKIAko bWF0Y2hfb3BlcmF0b3I6U0kgMSAiaW9yeG9yX29wZXJhdG9yIgogCSBbKGFzaGlmdDpTSSAobWF0 Y2hfb3BlcmFuZDpTSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpCiAJCSAgICAgKGNvbnN0X2lu dCAxNikpCiAJICAobWF0Y2hfb3BlcmFuZDpTSSAzICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpXSkp XQogICAiIgorICAiIyIKKyAgInJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQg KG1hdGNoX2R1cCAwKQorCQkgICAobWF0Y2hfb3BfZHVwIDEgWyhhc2hpZnQ6U0kgKG1hdGNoX2R1 cCAyKSAoY29uc3RfaW50IDE2KSkKKwkJCQkgICAgKG1hdGNoX2R1cCAzKV0pKQorCSAgICAgIChj bG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKml4b3JzaTNfYXNo aWZ0XzE2X2Nsb2JiZXJfZmxhZ3MiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lz dGVyX29wZXJhbmQiICI9ciIpCisJKG1hdGNoX29wZXJhdG9yOlNJIDEgImlvcnhvcl9vcGVyYXRv ciIKKwkgWyhhc2hpZnQ6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMiAicmVnaXN0ZXJfb3BlcmFuZCIg InIiKQorCQkgICAgIChjb25zdF9pbnQgMTYpKQorCSAgKG1hdGNoX29wZXJhbmQ6U0kgMyAicmVn aXN0ZXJfb3BlcmFuZCIgIjAiKV0pKQorICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXQorICAi IgogICAiJWMxLndcXHQlZjIsJWUwIgogICBbKHNldF9hdHRyICJsZW5ndGgiICIyIildKQogCi0o ZGVmaW5lX2luc24gIippeG9yc2kzX2xzaGlmdHJ0XzE2IgorKGRlZmluZV9pbnNuX2FuZF9zcGxp dCAiKml4b3JzaTNfbHNoaWZ0cnRfMTYiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJl Z2lzdGVyX29wZXJhbmQiICI9ciIpCiAJKG1hdGNoX29wZXJhdG9yOlNJIDEgImlvcnhvcl9vcGVy YXRvciIKIAkgWyhsc2hpZnRydDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAyICJyZWdpc3Rlcl9vcGVy YW5kIiAiciIpCiAJCSAgICAgICAoY29uc3RfaW50IDE2KSkKIAkgIChtYXRjaF9vcGVyYW5kOlNJ IDMgInJlZ2lzdGVyX29wZXJhbmQiICIwIildKSldCiAgICIiCisgICIjIgorICAicmVsb2FkX2Nv bXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisJCSAgIChtYXRjaF9v cF9kdXAgMSBbKGxzaGlmdHJ0OlNJIChtYXRjaF9kdXAgMikgKGNvbnN0X2ludCAxNikpCisJCQkJ ICAgIChtYXRjaF9kdXAgMyldKSkKKwkgICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXSld KQorCisoZGVmaW5lX2luc24gIippeG9yc2kzX2xzaGlmdHJ0XzE2X2Nsb2JiZXJfZmxhZ3MiCisg IFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCisJKG1h dGNoX29wZXJhdG9yOlNJIDEgImlvcnhvcl9vcGVyYXRvciIKKwkgWyhsc2hpZnRydDpTSSAobWF0 Y2hfb3BlcmFuZDpTSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpCisJCSAgICAgICAoY29uc3Rf aW50IDE2KSkKKwkgIChtYXRjaF9vcGVyYW5kOlNJIDMgInJlZ2lzdGVyX29wZXJhbmQiICIwIild KSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldCisgICIiCiAgICIlYzEud1xcdCVlMiwl ZjAiCiAgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjIiKV0pCiAKIDs7IGlvcjpISQogCi0oZGVmaW5l X2luc24gIippb3JoaTNfYXNoaWZ0XzgiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqaW9yaGkz X2FzaGlmdF84IgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpISSAwICJyZWdpc3Rlcl9vcGVyYW5k IiAiPXIiKQogCShpb3I6SEkgKGFzaGlmdDpISSAobWF0Y2hfb3BlcmFuZDpISSAxICJyZWdpc3Rl cl9vcGVyYW5kIiAiciIpCiAJCQkgICAoY29uc3RfaW50IDgpKQogCQkobWF0Y2hfb3BlcmFuZDpI SSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpKSldCiAgICIiCisgICIjIgorICAicmVsb2FkX2Nv bXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisJCSAgIChpb3I6SEkg KGFzaGlmdDpISSAobWF0Y2hfZHVwIDEpIChjb25zdF9pbnQgOCkpCisJCQkgICAobWF0Y2hfZHVw IDIpKSkKKwkgICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXSldKQorCisoZGVmaW5lX2lu c24gIippb3JoaTNfYXNoaWZ0XzhfY2xvYmJlcl9mbGFncyIKKyAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKKwkoaW9yOkhJIChhc2hpZnQ6SEkgKG1h dGNoX29wZXJhbmQ6SEkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKQorCQkJICAgKGNvbnN0X2lu dCA4KSkKKwkJKG1hdGNoX29wZXJhbmQ6SEkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKSkpCisg ICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXQorICAiIgogICAib3IuYlxcdCVzMSwldDAiCiAg IFsoc2V0X2F0dHIgImxlbmd0aCIgIjIiKV0pCiAKLShkZWZpbmVfaW5zbiAiKmlvcmhpM19sc2hp ZnRydF84IgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKmlvcmhpM19sc2hpZnRydF84IgogICBb KHNldCAobWF0Y2hfb3BlcmFuZDpISSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQogCShpb3I6 SEkgKGxzaGlmdHJ0OkhJIChtYXRjaF9vcGVyYW5kOkhJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJy IikKIAkJCSAgICAgKGNvbnN0X2ludCA4KSkKIAkJKG1hdGNoX29wZXJhbmQ6SEkgMiAicmVnaXN0 ZXJfb3BlcmFuZCIgIjAiKSkpXQogICAiIgorICAiIyIKKyAgInJlbG9hZF9jb21wbGV0ZWQiCisg IFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorCQkgICAoaW9yOkhJIChsc2hpZnRydDpI SSAobWF0Y2hfZHVwIDEpIChjb25zdF9pbnQgOCkpCisJCQkgICAobWF0Y2hfZHVwIDIpKSkKKwkg ICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXSldKQorCisoZGVmaW5lX2luc24gIippb3Jo aTNfbHNoaWZ0cnRfOF9jbG9iYmVyX2ZsYWdzIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpISSAw ICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQorCShpb3I6SEkgKGxzaGlmdHJ0OkhJIChtYXRjaF9v cGVyYW5kOkhJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJyIikKKwkJCSAgICAgKGNvbnN0X2ludCA4 KSkKKwkJKG1hdGNoX29wZXJhbmQ6SEkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKSkpCisgICAo Y2xvYmJlciAocmVnOkNDIENDX1JFRykpXQorICAiIgogICAib3IuYlxcdCV0MSwlczAiCiAgIFso c2V0X2F0dHIgImxlbmd0aCIgIjIiKV0pCiAKLShkZWZpbmVfaW5zbiAiKmlvcmhpM190d29fcWki CisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqaW9yaGkzX3R3b19xaSIKICAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKIAkoaW9yOkhJICh6ZXJvX2V4 dGVuZDpISSAobWF0Y2hfb3BlcmFuZDpRSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpKQogCQko YXNoaWZ0OkhJIChtYXRjaF9vcGVyYW5kOkhJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJyIikKIAkJ CSAgIChjb25zdF9pbnQgOCkpKSldCiAgICIiCisgICIjIgorICAicmVsb2FkX2NvbXBsZXRlZCIK KyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisJCSAgIChpb3I6SEkgKHplcm9fZXh0 ZW5kOkhJIChtYXRjaF9kdXAgMSkpCisJCQkgICAoYXNoaWZ0OkhJIChtYXRjaF9kdXAgMikgKGNv bnN0X2ludCA4KSkpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0pCisKKyhk ZWZpbmVfaW5zbiAiKmlvcmhpM190d29fcWlfY2xvYmJlcl9mbGFncyIKKyAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKKwkoaW9yOkhJICh6ZXJvX2V4 dGVuZDpISSAobWF0Y2hfb3BlcmFuZDpRSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpKQorCQko YXNoaWZ0OkhJIChtYXRjaF9vcGVyYW5kOkhJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJyIikKKwkJ CSAgIChjb25zdF9pbnQgOCkpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldCisgICIi CiAgICJtb3YuYlxcdCVzMiwldDAiCiAgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjIiKV0pCiAKLShk ZWZpbmVfaW5zbiAiKmlvcmhpM190d29fcWlfbWVtIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAi KmlvcmhpM190d29fcWlfbWVtIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpISSAwICJyZWdpc3Rl cl9vcGVyYW5kIiAiPSZyIikKIAkoaW9yOkhJICh6ZXJvX2V4dGVuZDpISSAobWF0Y2hfb3BlcmFu ZDpRSSAxICJtZW1vcnlfb3BlcmFuZCIgIm0iKSkKIAkJKGFzaGlmdDpISSAoc3VicmVnOkhJICht YXRjaF9vcGVyYW5kOlFJIDIgIm1lbW9yeV9vcGVyYW5kIiAibSIpIDApCiAJCQkgICAoY29uc3Rf aW50IDgpKSkpXQogICAiIgorICAiIyIKKyAgInJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxs ZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorCQkgICAoaW9yOkhJICh6ZXJvX2V4dGVuZDpISSAobWF0 Y2hfZHVwIDEpKQorCQkJICAgKGFzaGlmdDpISSAoc3VicmVnOkhJIChtYXRjaF9kdXAgMikgMCkK KwkJCQkgICAgICAoY29uc3RfaW50IDgpKSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19S RUcpKV0pXSkKKworKGRlZmluZV9pbnNuICIqaW9yaGkzX3R3b19xaV9tZW1fY2xvYmJlcl9mbGFn cyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj0mciIp CisJKGlvcjpISSAoemVyb19leHRlbmQ6SEkgKG1hdGNoX29wZXJhbmQ6UUkgMSAibWVtb3J5X29w ZXJhbmQiICJtIikpCisJCShhc2hpZnQ6SEkgKHN1YnJlZzpISSAobWF0Y2hfb3BlcmFuZDpRSSAy ICJtZW1vcnlfb3BlcmFuZCIgIm0iKSAwKQorCQkJICAgKGNvbnN0X2ludCA4KSkpKQorICAgKGNs b2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0KKyAgIiIKICAgIm1vdi5iXFx0JVgyLCV0MFw7bW92LmJc XHQlWDEsJXMwIgogICBbKHNldF9hdHRyICJsZW5ndGgiICIxNiIpXSkKIApAQCAtMzUxLDIwICs2 MzYsMzQgQEAKIAkJCSAgIChjb25zdF9pbnQgOCkpKSldCiAgICJyZWxvYWRfY29tcGxldGVkCiAg ICAmJiBieXRlX2FjY2Vzc2VzX21lcmdlYWJsZV9wIChYRVhQIChvcGVyYW5kc1syXSwgMCksIFhF WFAgKG9wZXJhbmRzWzFdLCAwKSkiCi0gIFsoc2V0IChtYXRjaF9kdXAgMCkKLQkobWF0Y2hfZHVw IDMpKV0KKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApIChtYXRjaF9kdXAgMykpCisJ ICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pXQogICB7CiAgICAgb3BlcmFuZHNbM10g PSBnZW5fcnR4X01FTSAoSEltb2RlLCBYRVhQIChvcGVyYW5kc1syXSwgMCkpOwogICB9KQogCiA7 OyBpb3I6U0kKIAotKGRlZmluZV9pbnNuICIqaW9yc2kzX3R3b19oaSIKKyhkZWZpbmVfaW5zbl9h bmRfc3BsaXQgIippb3JzaTNfdHdvX2hpIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJy ZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQogCShpb3I6U0kgKHplcm9fZXh0ZW5kOlNJIChtYXRjaF9v cGVyYW5kOkhJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIwIikpCiAJCShhc2hpZnQ6U0kgKG1hdGNo X29wZXJhbmQ6U0kgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKQogCQkJICAgKGNvbnN0X2ludCAx NikpKSldCiAgICIiCisgICIjIgorICAicmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBb KHNldCAobWF0Y2hfZHVwIDApCisJCSAgIChpb3I6U0kgKHplcm9fZXh0ZW5kOlNJIChtYXRjaF9k dXAgMSkpCisJCQkgICAoYXNoaWZ0OlNJIChtYXRjaF9kdXAgMikgKGNvbnN0X2ludCAxNikpKSkK KwkgICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXSldKQorCisoZGVmaW5lX2luc24gIipp b3JzaTNfdHdvX2hpX2Nsb2JiZXJfZmxhZ3MiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAg InJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCisJKGlvcjpTSSAoemVyb19leHRlbmQ6U0kgKG1hdGNo X29wZXJhbmQ6SEkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKSkKKwkJKGFzaGlmdDpTSSAobWF0 Y2hfb3BlcmFuZDpTSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpCisJCQkgICAoY29uc3RfaW50 IDE2KSkpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0KKyAgIiIKICAgIm1vdi53XFx0 JWYyLCVlMCIKICAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMiIpXSkKIApAQCAtMzc3LDIzICs2NzYs MzkgQEAKICAgIiIKICAgIiMiCiAgICImJiByZWxvYWRfY29tcGxldGVkIgotICBbKHNldCAobWF0 Y2hfZHVwIDMpCi0JKGlvcjpISSAoemVyb19leHRlbmQ6SEkgKG1hdGNoX2R1cCAxKSkKLQkJKGFz aGlmdDpISSAoc3VicmVnOkhJIChtYXRjaF9kdXAgMikgMCkKLQkJCSAgIChjb25zdF9pbnQgOCkp KSkKLSAgIChzZXQgKG1hdGNoX2R1cCAwKQotCSh6ZXJvX2V4dGVuZDpTSSAobWF0Y2hfZHVwIDMp KSldCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAzKQorCQkgICAoaW9yOkhJICh6ZXJv X2V4dGVuZDpISSAobWF0Y2hfZHVwIDEpKQorCQkJICAgKGFzaGlmdDpISSAoc3VicmVnOkhJICht YXRjaF9kdXAgMikgMCkKKwkJCQkgICAgICAoY29uc3RfaW50IDgpKSkpCisJICAgICAgKGNsb2Ji ZXIgKHJlZzpDQyBDQ19SRUcpKV0pCisgICAocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKSAo emVyb19leHRlbmQ6U0kgKG1hdGNoX2R1cCAzKSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBD Q19SRUcpKV0pXQogICB7CiAgICAgb3BlcmFuZHNbM10gPSBnZW5fcnR4X1JFRyAoSEltb2RlLCBS RUdOTyAob3BlcmFuZHNbMF0pKTsKICAgfSkKIAotKGRlZmluZV9pbnNuICIqaW9yc2kzX2UyZiIK KyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIippb3JzaTNfZTJmIgogICBbKHNldCAobWF0Y2hfb3Bl cmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQogCShpb3I6U0kgKGFuZDpTSSAobWF0 Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpCiAJCQkoY29uc3RfaW50IC02 NTUzNikpCiAJCShsc2hpZnRydDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAyICJyZWdpc3Rlcl9vcGVy YW5kIiAiciIpCiAJCQkgICAgIChjb25zdF9pbnQgMTYpKSkpXQogICAiIgorICAiIyIKKyAgInJl bG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorCQkgICAo aW9yOlNJIChhbmQ6U0kgKG1hdGNoX2R1cCAxKSAoY29uc3RfaW50IC02NTUzNikpCisJCQkgICAo bHNoaWZ0cnQ6U0kgKG1hdGNoX2R1cCAyKSAoY29uc3RfaW50IDE2KSkpKQorCSAgICAgIChjbG9i YmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKmlvcnNpM19lMmZfY2xv YmJlcl9mbGFncyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFu ZCIgIj1yIikKKwkoaW9yOlNJIChhbmQ6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJf b3BlcmFuZCIgIjAiKQorCQkJKGNvbnN0X2ludCAtNjU1MzYpKQorCQkobHNoaWZ0cnQ6U0kgKG1h dGNoX29wZXJhbmQ6U0kgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKQorCQkJICAgICAoY29uc3Rf aW50IDE2KSkpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0KKyAgIiIKICAgIm1vdi53 XFx0JWUyLCVmMCIKICAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMiIpXSkKIApAQCAtNDA1LDQzICs3 MjAsODcgQEAKICAgIiIKICAgIiMiCiAgICImJiByZWxvYWRfY29tcGxldGVkIgotICBbKHNldCAo bWF0Y2hfZHVwIDMpCi0JKGlvcjpISSAoemVyb19leHRlbmQ6SEkgKG1hdGNoX2R1cCAxKSkKLQkJ KGFzaGlmdDpISSAobWF0Y2hfZHVwIDQpCi0JCQkgICAoY29uc3RfaW50IDgpKSkpCi0gICAoc2V0 IChtYXRjaF9kdXAgMCkKLQkoc2lnbl9leHRlbmQ6U0kgKG1hdGNoX2R1cCAzKSkpXQorICBbKHBh cmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMykKKwkJICAgKGlvcjpISSAoemVyb19leHRlbmQ6SEkg KG1hdGNoX2R1cCAxKSkKKwkJCSAgIChhc2hpZnQ6SEkgKG1hdGNoX2R1cCA0KSAoY29uc3RfaW50 IDgpKSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pCisgICAocGFyYWxsZWwg WyhzZXQgKG1hdGNoX2R1cCAwKSAoc2lnbl9leHRlbmQ6U0kgKG1hdGNoX2R1cCAzKSkpCisJICAg ICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pXQogICB7CiAgICAgb3BlcmFuZHNbM10gPSBn ZW5fcnR4X1JFRyAoSEltb2RlLCBSRUdOTyAob3BlcmFuZHNbMF0pKTsKICAgICBvcGVyYW5kc1s0 XSA9IGdlbl9ydHhfUkVHIChISW1vZGUsIFJFR05PIChvcGVyYW5kc1syXSkpOwogICB9KQogCi0o ZGVmaW5lX2luc24gIippb3JzaTNfdyIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIippb3JzaTNf dyIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yLCZy IikKIAkoaW9yOlNJIChhbmQ6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFu ZCIgIjAsMCIpCiAJCQkoY29uc3RfaW50IC0yNTYpKQogCQkoemVyb19leHRlbmQ6U0kgKG1hdGNo X29wZXJhbmQ6UUkgMiAiZ2VuZXJhbF9vcGVyYW5kX3NyYyIgInIsZz4iKSkpKV0KICAgIiIKKyAg IiMiCisgICJyZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAg MCkKKwkJICAgKGlvcjpTSSAoYW5kOlNJIChtYXRjaF9kdXAgMSkgKGNvbnN0X2ludCAtMjU2KSkK KwkJCSAgICh6ZXJvX2V4dGVuZDpTSSAobWF0Y2hfZHVwIDIpKSkpCisJICAgICAgKGNsb2JiZXIg KHJlZzpDQyBDQ19SRUcpKV0pXSkKKworKGRlZmluZV9pbnNuICIqaW9yc2kzX3dfY2xvYmJlcl9m bGFncyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1y LCZyIikKKwkoaW9yOlNJIChhbmQ6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3Bl cmFuZCIgIjAsMCIpCisJCQkoY29uc3RfaW50IC0yNTYpKQorCQkoemVyb19leHRlbmQ6U0kgKG1h dGNoX29wZXJhbmQ6UUkgMiAiZ2VuZXJhbF9vcGVyYW5kX3NyYyIgInIsZz4iKSkpKQorICAgKGNs b2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0KKyAgIiIKICAgIm1vdi5iXFx0JVgyLCV3MCIKICAgWyhz ZXRfYXR0ciAibGVuZ3RoIiAiMiw4IildKQogCi0oZGVmaW5lX2luc24gIippb3JzaTNfYXNoaWZ0 XzMxIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKmlvcnNpM19hc2hpZnRfMzEiCiAgIFsoc2V0 IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9JnIiKQogCShpb3I6U0kg KGFzaGlmdDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpCiAJ CQkgICAoY29uc3RfaW50IDMxKSkKIAkJKG1hdGNoX29wZXJhbmQ6U0kgMiAicmVnaXN0ZXJfb3Bl cmFuZCIgIjAiKSkpXQogICAiIgorICAiIyIKKyAgInJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFy YWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorCQkgICAoaW9yOlNJIChhc2hpZnQ6U0kgKG1hdGNo X2R1cCAxKSAoY29uc3RfaW50IDMxKSkKKwkJCSAgIChtYXRjaF9kdXAgMikpKQorCSAgICAgIChj bG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKmlvcnNpM19hc2hp ZnRfMzFfY2xvYmJlcl9mbGFncyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0 ZXJfb3BlcmFuZCIgIj0mciIpCisJKGlvcjpTSSAoYXNoaWZ0OlNJIChtYXRjaF9vcGVyYW5kOlNJ IDEgInJlZ2lzdGVyX29wZXJhbmQiICJyIikKKwkJCSAgIChjb25zdF9pbnQgMzEpKQorCQkobWF0 Y2hfb3BlcmFuZDpTSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpKSkKKyAgIChjbG9iYmVyIChy ZWc6Q0MgQ0NfUkVHKSldCisgICIiCiAgICJyb3R4bC5sXFx0JVMwXDtib3JcXHQjMCwldzFcO3Jv dHhyLmxcXHQlUzAiCiAgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjYiKQogICAgKHNldF9hdHRyICJj YyIgInNldF96bnYiKV0pCiAKLShkZWZpbmVfaW5zbiAiKmlvcnNpM19hbmRfYXNoaWZ0IgorKGRl ZmluZV9pbnNuX2FuZF9zcGxpdCAiKmlvcnNpM19hbmRfYXNoaWZ0IgogICBbKHNldCAobWF0Y2hf b3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQogCShpb3I6U0kgKGFuZDpTSSAo YXNoaWZ0OlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJyIikKIAkJ CQkgICAobWF0Y2hfb3BlcmFuZDpTSSAyICJjb25zdF9pbnRfb3BlcmFuZCIgIm4iKSkKIAkJCSht YXRjaF9vcGVyYW5kOlNJIDMgInNpbmdsZV9vbmVfb3BlcmFuZCIgIm4iKSkKIAkJKG1hdGNoX29w ZXJhbmQ6U0kgNCAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKSkpXQogICAiKElOVFZBTCAob3BlcmFu ZHNbM10pICYgfjB4ZmZmZikgPT0gMCIKKyAgIiMiCisgICJyZWxvYWRfY29tcGxldGVkIgorICBb KHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKwkJICAgKGlvcjpTSSAoYW5kOlNJIChhc2hp ZnQ6U0kgKG1hdGNoX2R1cCAxKSAobWF0Y2hfZHVwIDIpKQorCQkJCSAgIChtYXRjaF9kdXAgMykp CisJCQkgIChtYXRjaF9kdXAgNCkpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSld KV0pCisKKyhkZWZpbmVfaW5zbiAiKmlvcnNpM19hbmRfYXNoaWZ0X2Nsb2JiZXJfZmxhZ3MiCisg IFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCisJKGlv cjpTSSAoYW5kOlNJIChhc2hpZnQ6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3Bl cmFuZCIgInIiKQorCQkJCSAgIChtYXRjaF9vcGVyYW5kOlNJIDIgImNvbnN0X2ludF9vcGVyYW5k IiAibiIpKQorCQkJKG1hdGNoX29wZXJhbmQ6U0kgMyAic2luZ2xlX29uZV9vcGVyYW5kIiAibiIp KQorCQkobWF0Y2hfb3BlcmFuZDpTSSA0ICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpKSkKKyAgIChj bG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldCisgICIoSU5UVkFMIChvcGVyYW5kc1szXSkgJiB+MHhm ZmZmKSA9PSAwIgogewogICBydHggc3JjcG9zID0gR0VOX0lOVCAoZXhhY3RfbG9nMiAoSU5UVkFM IChvcGVyYW5kc1szXSkpCiAJCQktIElOVFZBTCAob3BlcmFuZHNbMl0pKTsKQEAgLTQ1MiwxMyAr ODExLDI5IEBACiB9CiAgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjYiKV0pCiAKLShkZWZpbmVfaW5z biAiKmlvcnNpM19hbmRfbHNoaWZ0cnQiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqaW9yc2kz X2FuZF9sc2hpZnRydCIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3Bl cmFuZCIgIj1yIikKIAkoaW9yOlNJIChhbmQ6U0kgKGxzaGlmdHJ0OlNJIChtYXRjaF9vcGVyYW5k OlNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJyIikKIAkJCQkgICAgIChtYXRjaF9vcGVyYW5kOlNJ IDIgImNvbnN0X2ludF9vcGVyYW5kIiAibiIpKQogCQkJKG1hdGNoX29wZXJhbmQ6U0kgMyAic2lu Z2xlX29uZV9vcGVyYW5kIiAibiIpKQogCQkobWF0Y2hfb3BlcmFuZDpTSSA0ICJyZWdpc3Rlcl9v cGVyYW5kIiAiMCIpKSldCiAgICIoKElOVFZBTCAob3BlcmFuZHNbM10pIDw8IElOVFZBTCAob3Bl cmFuZHNbMl0pKSAmIH4weGZmZmYpID09IDAiCisgICIjIgorICAicmVsb2FkX2NvbXBsZXRlZCIK KyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisJCSAgIChpb3I6U0kgKGFuZDpTSSAo bHNoaWZ0cnQ6U0kgKG1hdGNoX2R1cCAxKSAobWF0Y2hfZHVwIDIpKQorCQkJCSAgIChtYXRjaF9k dXAgMykpCisJCQkgICAobWF0Y2hfZHVwIDQpKSkKKwkgICAgICAoY2xvYmJlciAocmVnOkNDIEND X1JFRykpXSldKQorCisoZGVmaW5lX2luc24gIippb3JzaTNfYW5kX2xzaGlmdHJ0X2Nsb2JiZXJf ZmxhZ3MiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9 ciIpCisJKGlvcjpTSSAoYW5kOlNJIChsc2hpZnRydDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJy ZWdpc3Rlcl9vcGVyYW5kIiAiciIpCisJCQkJICAgICAobWF0Y2hfb3BlcmFuZDpTSSAyICJjb25z dF9pbnRfb3BlcmFuZCIgIm4iKSkKKwkJCShtYXRjaF9vcGVyYW5kOlNJIDMgInNpbmdsZV9vbmVf b3BlcmFuZCIgIm4iKSkKKwkJKG1hdGNoX29wZXJhbmQ6U0kgNCAicmVnaXN0ZXJfb3BlcmFuZCIg IjAiKSkpCisgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXQorICAiKChJTlRWQUwgKG9wZXJh bmRzWzNdKSA8PCBJTlRWQUwgKG9wZXJhbmRzWzJdKSkgJiB+MHhmZmZmKSA9PSAwIgogewogICBy dHggc3JjcG9zID0gR0VOX0lOVCAoZXhhY3RfbG9nMiAoSU5UVkFMIChvcGVyYW5kc1szXSkpCiAJ CQkrIElOVFZBTCAob3BlcmFuZHNbMl0pKTsKQEAgLTQ2OSwyNyArODQ0LDYwIEBACiB9CiAgIFso c2V0X2F0dHIgImxlbmd0aCIgIjYiKV0pCiAKLShkZWZpbmVfaW5zbiAiKmlvcnNpM196ZXJvX2V4 dHJhY3QiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqaW9yc2kzX3plcm9fZXh0cmFjdCIKICAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKIAkoaW9y OlNJICh6ZXJvX2V4dHJhY3Q6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFu ZCIgInIiKQogCQkJCSAoY29uc3RfaW50IDEpCiAJCQkJIChtYXRjaF9vcGVyYW5kOlNJIDIgImNv bnN0X2ludF9vcGVyYW5kIiAibiIpKQogCQkobWF0Y2hfb3BlcmFuZDpTSSAzICJyZWdpc3Rlcl9v cGVyYW5kIiAiMCIpKSldCiAgICJJTlRWQUwgKG9wZXJhbmRzWzJdKSA8IDE2IgorICAiIyIKKyAg InJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorCQkg ICAoaW9yOlNJICh6ZXJvX2V4dHJhY3Q6U0kgKG1hdGNoX2R1cCAxKQorCQkJCQkgICAgKGNvbnN0 X2ludCAxKQorCQkJCQkgICAgKG1hdGNoX2R1cCAyKSkKKwkJCSAgIChtYXRjaF9kdXAgMykpKQor CSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKmlv cnNpM196ZXJvX2V4dHJhY3RfY2xvYmJlcl9mbGFncyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6 U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKKwkoaW9yOlNJICh6ZXJvX2V4dHJhY3Q6U0kg KG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKQorCQkJCSAoY29uc3Rf aW50IDEpCisJCQkJIChtYXRjaF9vcGVyYW5kOlNJIDIgImNvbnN0X2ludF9vcGVyYW5kIiAibiIp KQorCQkobWF0Y2hfb3BlcmFuZDpTSSAzICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpKSkKKyAgIChj bG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldCisgICJJTlRWQUwgKG9wZXJhbmRzWzJdKSA8IDE2Igog ICAiYmxkXFx0JVoyLCVZMVw7Ym9yXFx0IzAsJXcwXDtic3RcXHQjMCwldzAiCiAgIFsoc2V0X2F0 dHIgImxlbmd0aCIgIjYiKV0pCiAKLShkZWZpbmVfaW5zbiAiKmlvcnNpM19hbmRfbHNoaWZ0cnRf bl9zYiIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIippb3JzaTNfYW5kX2xzaGlmdHJ0X25fc2Ii CiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCiAJ KGlvcjpTSSAoYW5kOlNJIChsc2hpZnRydDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rl cl9vcGVyYW5kIiAiciIpCiAJCQkJICAgICAoY29uc3RfaW50IDMwKSkKIAkJCShjb25zdF9pbnQg MikpCiAJCShtYXRjaF9vcGVyYW5kOlNJIDIgInJlZ2lzdGVyX29wZXJhbmQiICIwIikpKV0KICAg IiIKKyAgIiMiCisgICJyZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRj aF9kdXAgMCkKKwkJICAgKGlvcjpTSSAoYW5kOlNJIChsc2hpZnRydDpTSSAobWF0Y2hfZHVwIDEp IChjb25zdF9pbnQgMzApKQorCQkJCSAgIChjb25zdF9pbnQgMikpCisJCQkgICAobWF0Y2hfZHVw IDIpKSkKKwkgICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXSldKQorCisoZGVmaW5lX2lu c24gIippb3JzaTNfYW5kX2xzaGlmdHJ0X25fc2JfY2xvYmJlcl9mbGFncyIKKyAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKKwkoaW9yOlNJIChhbmQ6 U0kgKGxzaGlmdHJ0OlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJy IikKKwkJCQkgICAgIChjb25zdF9pbnQgMzApKQorCQkJKGNvbnN0X2ludCAyKSkKKwkJKG1hdGNo X29wZXJhbmQ6U0kgMiAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKSkpCisgICAoY2xvYmJlciAocmVn OkNDIENDX1JFRykpXQorICAiIgogICAicm90bC5sXFx0JVMxXDtyb3RyLmxcXHQlUzFcO2Jvclxc dCMxLCV3MFw7YnN0XFx0IzEsJXcwIgogICBbKHNldF9hdHRyICJsZW5ndGgiICI4IildKQogCi0o ZGVmaW5lX2luc24gIippb3JzaTNfYW5kX2xzaGlmdHJ0Xzlfc2IiCisoZGVmaW5lX2luc25fYW5k X3NwbGl0ICIqaW9yc2kzX2FuZF9sc2hpZnRydF85X3NiIgogICBbKHNldCAobWF0Y2hfb3BlcmFu ZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQogCShpb3I6U0kgKGFuZDpTSSAobHNoaWZ0 cnQ6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKQogCQkJCSAg ICAgKGNvbnN0X2ludCA5KSkKQEAgLTQ5Nyw2ICs5MDUsMjUgQEAKIAkJKG1hdGNoX29wZXJhbmQ6 U0kgMiAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKSkpCiAgICAoY2xvYmJlciAobWF0Y2hfc2NyYXRj aDpISSAzICI9JnIiKSldCiAgICIiCisgICIjIgorICAicmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhw YXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisJCSAgIChpb3I6U0kgKGFuZDpTSSAobHNoaWZ0 cnQ6U0kgKG1hdGNoX2R1cCAxKSAoY29uc3RfaW50IDkpKQorCQkJCSAgIChjb25zdF9pbnQgNDE5 NDMwNCkpCisJCQkgICAobWF0Y2hfZHVwIDIpKSkKKwkgICAgICAoY2xvYmJlciAobWF0Y2hfZHVw IDMpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0pCisKKworKGRlZmluZV9p bnNuICIqaW9yc2kzX2FuZF9sc2hpZnRydF85X3NiX2Nsb2JiZXJfZmxhZ3MiCisgIFsoc2V0ICht YXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCisJKGlvcjpTSSAoYW5k OlNJIChsc2hpZnRydDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAi ciIpCisJCQkJICAgICAoY29uc3RfaW50IDkpKQorCQkJKGNvbnN0X2ludCA0MTk0MzA0KSkKKwkJ KG1hdGNoX29wZXJhbmQ6U0kgMiAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKSkpCisgICAoY2xvYmJl ciAobWF0Y2hfc2NyYXRjaDpISSAzICI9JnIiKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVH KSldCisgICIiCiB7CiAgIGlmIChmaW5kX3JlZ25vX25vdGUgKGluc24sIFJFR19ERUFELCBSRUdO TyAob3BlcmFuZHNbMV0pKSkKICAgICByZXR1cm4gInNobGwubFxcdCVTMVw7eG9yLndcXHQlVDMs JVQzXDtic3RcXHQjNiwlczNcO29yLndcXHQlVDMsJWUwIjsKQEAgLTUyOCwxMSArOTU1LDEyIEBA CiAgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAzKQogCQkgICAoYXNoaWZ0OkhJIChtYXRj aF9kdXAgMykKIAkJCSAgICAgIChjb25zdF9pbnQgNykpKQotCSAgICAgIChjbG9iYmVyIChzY3Jh dGNoOlFJKSldKQotICAgKHNldCAobWF0Y2hfZHVwIDApCi0JKGlvcjpTSSAoYXNoaWZ0OlNJICht YXRjaF9kdXAgMSkKLQkJCSAgIChjb25zdF9pbnQgMTYpKQotCQkobWF0Y2hfZHVwIDApKSldCisJ ICAgICAgKGNsb2JiZXIgKHNjcmF0Y2g6UUkpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0Nf UkVHKSldKQorICAgKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKwkJICAgIChpb3I6U0kg KGFzaGlmdDpTSSAobWF0Y2hfZHVwIDEpIChjb25zdF9pbnQgMTYpKQorCQkJICAgIChtYXRjaF9k dXAgMCkpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0KICAgewogICAgIG9w ZXJhbmRzWzNdID0gZ2VuX3J0eF9SRUcgKEhJbW9kZSwgUkVHTk8gKG9wZXJhbmRzWzFdKSk7CiAg IH0pCkBAIC01NDYsMjcgKzk3NCw0MyBAQAogICAiZXBpbG9ndWVfY29tcGxldGVkCiAgICAmJiAh KGZpbmRfcmVnbm9fbm90ZSAoaW5zbiwgUkVHX0RFQUQsIFJFR05PIChvcGVyYW5kc1sxXSkpCiAJ JiYgUkVHTk8gKG9wZXJhbmRzWzBdKSAhPSBSRUdOTyAob3BlcmFuZHNbMV0pKSIKLSAgWyhzZXQg KG1hdGNoX2R1cCAyKQotCShtYXRjaF9kdXAgMSkpCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNo X2R1cCAyKSAobWF0Y2hfZHVwIDEpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSld KQogICAgKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMykKIAkJICAgKGFzaGlmdDpISSAobWF0 Y2hfZHVwIDMpCiAJCQkgICAgICAoY29uc3RfaW50IDcpKSkKLQkgICAgICAoY2xvYmJlciAoc2Ny YXRjaDpRSSkpXSkKLSAgIChzZXQgKG1hdGNoX2R1cCAwKQotCShpb3I6U0kgKGFzaGlmdDpTSSAo bWF0Y2hfZHVwIDIpCi0JCQkgICAoY29uc3RfaW50IDE2KSkKLQkJKG1hdGNoX2R1cCAwKSkpXQor CSAgICAgIChjbG9iYmVyIChzY3JhdGNoOlFJKSkKKwkgICAgICAoY2xvYmJlciAocmVnOkNDIEND X1JFRykpXSkKKyAgIChwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisJCSAgIChpb3I6U0kg KGFzaGlmdDpTSSAobWF0Y2hfZHVwIDIpIChjb25zdF9pbnQgMTYpKQorCQkJICAgKG1hdGNoX2R1 cCAwKSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pXQogICB7CiAgICAgb3Bl cmFuZHNbM10gPSBnZW5fcnR4X1JFRyAoSEltb2RlLCBSRUdOTyAob3BlcmFuZHNbMl0pKTsKICAg fSkKIAotKGRlZmluZV9pbnNuICIqaW9yc2kyX2FuZF8xX2xzaGlmdHJ0XzEiCisoZGVmaW5lX2lu c25fYW5kX3NwbGl0ICIqaW9yc2kyX2FuZF8xX2xzaGlmdHJ0XzEiCiAgIFsoc2V0IChtYXRjaF9v cGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCiAJKGlvcjpTSSAoYW5kOlNJICht YXRjaF9vcGVyYW5kOlNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIwIikKIAkJCShjb25zdF9pbnQg MSkpCiAJCShsc2hpZnRydDpTSSAobWF0Y2hfZHVwIDEpCiAJCQkgICAgIChjb25zdF9pbnQgMSkp KSldCiAgICIiCisgICIjIgorICAicmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNl dCAobWF0Y2hfZHVwIDApCisJCSAgIChpb3I6U0kgKGFuZDpTSSAobWF0Y2hfZHVwIDEpIChjb25z dF9pbnQgMSkpCisJCQkgICAobHNoaWZ0cnQ6U0kgKG1hdGNoX2R1cCAxKSAoY29uc3RfaW50IDEp KSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pXSkKKworKGRlZmluZV9pbnNu ICIqaW9yc2kyX2FuZF8xX2xzaGlmdHJ0XzFfY2xvYmJlcl9mbGFncyIKKyAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKKwkoaW9yOlNJIChhbmQ6U0kg KG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKQorCQkJKGNvbnN0X2lu dCAxKSkKKwkJKGxzaGlmdHJ0OlNJIChtYXRjaF9kdXAgMSkKKwkJCSAgICAgKGNvbnN0X2ludCAx KSkpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0KKyAgIiIKICAgInNobHIubFxcdCVT MFw7Ym9yXFx0IzAsJXcwXDtic3RcXHQjMCwldzAiCiAgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjYi KV0pCiAKQEAgLTU3OSwxNCArMTAyMywxNSBAQAogICAiIgogICAiIyIKICAgIiYmIHJlbG9hZF9j b21wbGV0ZWQiCi0gIFsoc2V0IChtYXRjaF9kdXAgMykKLSAgICAgICAgKGlvcjpISSAoYXNoaWZ0 OkhJIChtYXRjaF9kdXAgNCkKLQkJCSAgIChjb25zdF9pbnQgOCkpCi0JCShtYXRjaF9kdXAgMykp KQorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMykKKwkJICAgKGlvcjpISSAoYXNoaWZ0 OkhJIChtYXRjaF9kdXAgNCkgKGNvbnN0X2ludCA4KSkKKwkJCSAgIChtYXRjaF9kdXAgMykpKQor CSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKQogICAgKHBhcmFsbGVsIFsoc2V0ICht YXRjaF9kdXAgMCkKIAkJICAgKGFzaGlmdDpTSSAobWF0Y2hfZHVwIDApCiAJCQkgICAgICAoY29u c3RfaW50IDE2KSkpCi0JICAgICAgKGNsb2JiZXIgKHNjcmF0Y2g6UUkpKV0pXQorCSAgICAgIChj bG9iYmVyIChzY3JhdGNoOlFJKSkKKwkgICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXSld CiAgIHsKICAgICBvcGVyYW5kc1szXSA9IGdlbl9ydHhfUkVHIChISW1vZGUsIFJFR05PIChvcGVy YW5kc1swXSkpOwogICAgIG9wZXJhbmRzWzRdID0gZ2VuX3J0eF9SRUcgKEhJbW9kZSwgUkVHTk8g KG9wZXJhbmRzWzJdKSk7CkBAIC02MDIsMTQgKzEwNDcsMTYgQEAKICAgIiIKICAgIiMiCiAgICIm JiByZWxvYWRfY29tcGxldGVkIgotICBbKHNldCAobWF0Y2hfZHVwIDMpCi0gICAgICAgIChpb3I6 SEkgKHplcm9fZXh0ZW5kOkhJIChtYXRjaF9kdXAgMSkpCi0JCShhc2hpZnQ6SEkgKHN1YnJlZzpI SSAobWF0Y2hfZHVwIDIpIDApCi0JCQkgICAoY29uc3RfaW50IDgpKSkpCisgIFsocGFyYWxsZWwg WyhzZXQgKG1hdGNoX2R1cCAzKQorCQkgICAoaW9yOkhJICh6ZXJvX2V4dGVuZDpISSAobWF0Y2hf ZHVwIDEpKQorCQkJICAgKGFzaGlmdDpISSAoc3VicmVnOkhJIChtYXRjaF9kdXAgMikgMCkKKwkJ CQkgICAgICAoY29uc3RfaW50IDgpKSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcp KV0pCiAgICAocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQogCQkgICAoYXNoaWZ0OlNJICht YXRjaF9kdXAgMCkKIAkJCSAgICAgIChjb25zdF9pbnQgMTYpKSkKLQkgICAgICAoY2xvYmJlciAo c2NyYXRjaDpRSSkpXSldCisJICAgICAgKGNsb2JiZXIgKHNjcmF0Y2g6UUkpKQorCSAgICAgIChj bG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0KICAgewogICAgIG9wZXJhbmRzWzNdID0gZ2VuX3J0 eF9SRUcgKEhJbW9kZSwgUkVHTk8gKG9wZXJhbmRzWzBdKSk7CiAgIH0pCkBAIC02MzcsMTEgKzEw ODQsMTIgQEAKICAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDMpCiAJCSAgIChhc2hpZnQ6 SEkgKG1hdGNoX2R1cCAzKQogCQkJICAgICAgKGNvbnN0X2ludCA3KSkpCi0JICAgICAgKGNsb2Ji ZXIgKHNjcmF0Y2g6UUkpKV0pCi0gICAoc2V0IChtYXRjaF9kdXAgMCkKLQkocGx1czpTSSAobXVs dDpTSSAobWF0Y2hfZHVwIDEpCi0JCQkgIChjb25zdF9pbnQgNjU1MzYpKQotCQkgKG1hdGNoX2R1 cCAwKSkpXQorCSAgICAgIChjbG9iYmVyIChzY3JhdGNoOlFJKSkKKwkgICAgICAoY2xvYmJlciAo cmVnOkNDIENDX1JFRykpXSkKKyAgIChwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisJCSAg IChwbHVzOlNJIChtdWx0OlNJIChtYXRjaF9kdXAgMSkgKGNvbnN0X2ludCA2NTUzNikpCisJCQkg ICAgKG1hdGNoX2R1cCAwKSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pXQog ICB7CiAgICAgb3BlcmFuZHNbM10gPSBnZW5fcnR4X1JFRyAoSEltb2RlLCBSRUdOTyAob3BlcmFu ZHNbMV0pKTsKICAgfSkKQEAgLTY1NSwxNiArMTEwMywxNyBAQAogICAiZXBpbG9ndWVfY29tcGxl dGVkCiAgICAmJiAhKGZpbmRfcmVnbm9fbm90ZSAoaW5zbiwgUkVHX0RFQUQsIFJFR05PIChvcGVy YW5kc1sxXSkpCiAJJiYgUkVHTk8gKG9wZXJhbmRzWzBdKSAhPSBSRUdOTyAob3BlcmFuZHNbMV0p KSIKLSAgWyhzZXQgKG1hdGNoX2R1cCAyKQotCShtYXRjaF9kdXAgMSkpCisgIFsocGFyYWxsZWwg WyhzZXQgKG1hdGNoX2R1cCAyKSAobWF0Y2hfZHVwIDEpKQorCSAgICAgIChjbG9iYmVyIChyZWc6 Q0MgQ0NfUkVHKSldKQogICAgKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMykKIAkJICAgKGFz aGlmdDpISSAobWF0Y2hfZHVwIDMpCiAJCQkgICAgICAoY29uc3RfaW50IDcpKSkKLQkgICAgICAo Y2xvYmJlciAoc2NyYXRjaDpRSSkpXSkKLSAgIChzZXQgKG1hdGNoX2R1cCAwKQotCShwbHVzOlNJ IChtdWx0OlNJIChtYXRjaF9kdXAgMikKLQkJCSAgKGNvbnN0X2ludCA2NTUzNikpCi0JCSAobWF0 Y2hfZHVwIDApKSldCisJICAgICAgKGNsb2JiZXIgKHNjcmF0Y2g6UUkpKQorCSAgICAgIChjbG9i YmVyIChyZWc6Q0MgQ0NfUkVHKSldKQorICAgKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkK KwkJICAgKHBsdXM6U0kgKG11bHQ6U0kgKG1hdGNoX2R1cCAyKSAoY29uc3RfaW50IDY1NTM2KSkK KwkJCSAgICAobWF0Y2hfZHVwIDApKSkKKwkgICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykp XSldCiAgIHsKICAgICBvcGVyYW5kc1szXSA9IGdlbl9ydHhfUkVHIChISW1vZGUsIFJFR05PIChv cGVyYW5kc1syXSkpOwogICB9KQpAQCAtNjgxLDkzICsxMTMwLDE0OSBAQAogICBbKHBhcmFsbGVs IFsoc2V0IChtYXRjaF9kdXAgMikKIAkJICAgKGFzaGlmdDpISSAobWF0Y2hfZHVwIDIpCiAJCQkg ICAgICAoY29uc3RfaW50IDgpKSkKLQkgICAgICAoY2xvYmJlciAoc2NyYXRjaDpRSSkpXSkKLSAg IChzZXQgKG1hdGNoX2R1cCAwKQotCShzaWduX2V4dGVuZDpTSSAobWF0Y2hfZHVwIDIpKSkKKwkg ICAgICAoY2xvYmJlciAoc2NyYXRjaDpRSSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19S RUcpKV0pCisgICAocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKSAoc2lnbl9leHRlbmQ6U0kg KG1hdGNoX2R1cCAyKSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pCiAgICAo cGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQogCQkgICAoYXNoaWZ0cnQ6U0kgKG1hdGNoX2R1 cCAwKQogCQkJCShjb25zdF9pbnQgMSkpKQotCSAgICAgIChjbG9iYmVyIChzY3JhdGNoOlFJKSld KV0KKwkgICAgICAoY2xvYmJlciAoc2NyYXRjaDpRSSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpD QyBDQ19SRUcpKV0pXQogICB7CiAgICAgb3BlcmFuZHNbMl0gPSBnZW5fcnR4X1JFRyAoSEltb2Rl LCBSRUdOTyAob3BlcmFuZHNbMF0pKTsKICAgfSkKIAogOzsgU3RvcmluZyBhIHBhcnQgb2YgSElt b2RlIHRvIFFJbW9kZS4KIAotKGRlZmluZV9pbnNuICIiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0 ICIiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgImdlbmVyYWxfb3BlcmFuZF9kc3QiICI9 cm08IikKIAkoc3VicmVnOlFJIChsc2hpZnRydDpISSAobWF0Y2hfb3BlcmFuZDpISSAxICJyZWdp c3Rlcl9vcGVyYW5kIiAiciIpCiAJCQkJKGNvbnN0X2ludCA4KSkgMSkpXQogICAiIgorICAiIyIK KyAgInJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKSAo c3VicmVnOlFJIChsc2hpZnRydDpISSAobWF0Y2hfZHVwIDEpCisJCQkJCQkJIChjb25zdF9pbnQg OCkpIDEpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0pCisKKyhkZWZpbmVf aW5zbiAiIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpRSSAwICJnZW5lcmFsX29wZXJhbmRfZHN0 IiAiPXJtPCIpCisJKHN1YnJlZzpRSSAobHNoaWZ0cnQ6SEkgKG1hdGNoX29wZXJhbmQ6SEkgMSAi cmVnaXN0ZXJfb3BlcmFuZCIgInIiKQorCQkJCShjb25zdF9pbnQgOCkpIDEpKQorICAgKGNsb2Ji ZXIgKHJlZzpDQyBDQ19SRUcpKV0KKyAgIiIKICAgIm1vdi5iXFx0JXQxLCVSMCIKICAgWyhzZXRf YXR0ciAiY2MiICJzZXRfem52IikKICAgIChzZXRfYXR0ciAibGVuZ3RoIiAiOCIpXSkKIAogOzsg U3RvcmluZyBhIHBhcnQgb2YgU0ltb2RlIHRvIFFJbW9kZS4KIAotKGRlZmluZV9pbnNuICIiCiso ZGVmaW5lX2luc25fYW5kX3NwbGl0ICIiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgImdl bmVyYWxfb3BlcmFuZF9kc3QiICI9cm08IikKIAkoc3VicmVnOlFJIChsc2hpZnRydDpTSSAobWF0 Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpCiAJCQkJKGNvbnN0X2ludCA4 KSkgMykpXQogICAiIgorICAiIyIKKyAgInJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwg WyhzZXQgKG1hdGNoX2R1cCAwKQorCQkgICAoc3VicmVnOlFJIChsc2hpZnRydDpTSSAobWF0Y2hf ZHVwIDEpIChjb25zdF9pbnQgOCkpIDMpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVH KSldKV0pCisKKyhkZWZpbmVfaW5zbiAiIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpRSSAwICJn ZW5lcmFsX29wZXJhbmRfZHN0IiAiPXJtPCIpCisJKHN1YnJlZzpRSSAobHNoaWZ0cnQ6U0kgKG1h dGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKQorCQkJCShjb25zdF9pbnQg OCkpIDMpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0KKyAgIiIKICAgIm1vdi5iXFx0 JXgxLCVSMCIKICAgWyhzZXRfYXR0ciAiY2MiICJzZXRfem52IikKICAgIChzZXRfYXR0ciAibGVu Z3RoIiAiOCIpXSkKIAotKGRlZmluZV9pbnNuICIiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIi CiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgImdlbmVyYWxfb3BlcmFuZF9kc3QiICI9cm08 IikKIAkoc3VicmVnOlFJIChsc2hpZnRydDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rl cl9vcGVyYW5kIiAiciIpCiAJCQkJKGNvbnN0X2ludCAxNikpIDMpKQogICAgKGNsb2JiZXIgKG1h dGNoX3NjcmF0Y2g6U0kgMiAiPSZyIikpXQogICAiIgorICAiIyIKKyAgInJlbG9hZF9jb21wbGV0 ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorCQkgICAoc3VicmVnOlFJIChs c2hpZnRydDpTSSAobWF0Y2hfZHVwIDEpIChjb25zdF9pbnQgMTYpKSAzKSkKKwkgICAgICAoY2xv YmJlciAobWF0Y2hfZHVwIDIpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0p CisKKyhkZWZpbmVfaW5zbiAiIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpRSSAwICJnZW5lcmFs X29wZXJhbmRfZHN0IiAiPXJtPCIpCisJKHN1YnJlZzpRSSAobHNoaWZ0cnQ6U0kgKG1hdGNoX29w ZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKQorCQkJCShjb25zdF9pbnQgMTYpKSAz KSkKKyAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlNJIDIgIj0mciIpKQorICAgKGNsb2JiZXIg KHJlZzpDQyBDQ19SRUcpKV0KKyAgIiIKICAgIm1vdi53XFx0JWUxLCVmMlw7bW92LmJcXHQldzIs JVIwIgogICBbKHNldF9hdHRyICJjYyIgInNldF96bnYiKQogICAgKHNldF9hdHRyICJsZW5ndGgi ICIxMCIpXSkKIAotKGRlZmluZV9pbnNuICIiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIiCiAg IFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgImdlbmVyYWxfb3BlcmFuZF9kc3QiICI9cm08IikK IAkoc3VicmVnOlFJIChsc2hpZnRydDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9v cGVyYW5kIiAiciIpCiAJCQkJKGNvbnN0X2ludCAyNCkpIDMpKQogICAgKGNsb2JiZXIgKG1hdGNo X3NjcmF0Y2g6U0kgMiAiPSZyIikpXQogICAiIgorICAiIyIKKyAgInJlbG9hZF9jb21wbGV0ZWQi CisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorCQkgICAoc3VicmVnOlFJIChsc2hp ZnRydDpTSSAobWF0Y2hfZHVwIDEpIChjb25zdF9pbnQgMjQpKSAzKSkKKwkgICAgICAoY2xvYmJl ciAobWF0Y2hfZHVwIDIpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0pCisK KyhkZWZpbmVfaW5zbiAiIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpRSSAwICJnZW5lcmFsX29w ZXJhbmRfZHN0IiAiPXJtPCIpCisJKHN1YnJlZzpRSSAobHNoaWZ0cnQ6U0kgKG1hdGNoX29wZXJh bmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKQorCQkJCShjb25zdF9pbnQgMjQpKSAzKSkK KyAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlNJIDIgIj0mciIpKQorICAgKGNsb2JiZXIgKHJl ZzpDQyBDQ19SRUcpKV0KKyAgIiIKICAgIm1vdi53XFx0JWUxLCVmMlw7bW92LmJcXHQleDIsJVIw IgogICBbKHNldF9hdHRyICJjYyIgInNldF96bnYiKQogICAgKHNldF9hdHRyICJsZW5ndGgiICIx MCIpXSkKIAotKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiIgotICBbKHNldCAocGMpCi0JKGlmX3Ro ZW5fZWxzZSAoZXEgKHplcm9fZXh0cmFjdDpTSSAoc3VicmVnOlNJIChtYXRjaF9vcGVyYW5kOlFJ IDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKSAwKQotCQkJCQkgICAoY29uc3RfaW50IDEpCi0JCQkJ CSAgIChjb25zdF9pbnQgNykpCi0JCQkgIChjb25zdF9pbnQgMCkpCi0JCSAgICAgIChtYXRjaF9v cGVyYW5kIDEgInBjX29yX2xhYmVsX29wZXJhbmQiICIiKQotCQkgICAgICAobWF0Y2hfb3BlcmFu ZCAyICJwY19vcl9sYWJlbF9vcGVyYW5kIiAiIikpKV0KLSAgIm9wZXJhbmRzWzFdID09IHBjX3J0 eCB8fCBvcGVyYW5kc1syXSA9PSBwY19ydHgiCi0gICIjIgotICAiIgotICBbKHNldCAoY2MwKSAo Y29tcGFyZSAobWF0Y2hfZHVwIDApCi0JCSAgICAgICAoY29uc3RfaW50IDApKSkKLSAgIChzZXQg KHBjKQotCShpZl90aGVuX2Vsc2UgKGdlIChjYzApCi0JCQkgIChjb25zdF9pbnQgMCkpCi0JCSAg ICAgIChtYXRjaF9kdXAgMSkKLQkJICAgICAgKG1hdGNoX2R1cCAyKSkpXSkKLQotKGRlZmluZV9p bnNuX2FuZF9zcGxpdCAiIgotICBbKHNldCAocGMpCi0JKGlmX3RoZW5fZWxzZSAobmUgKHplcm9f ZXh0cmFjdDpTSSAoc3VicmVnOlNJIChtYXRjaF9vcGVyYW5kOlFJIDAgInJlZ2lzdGVyX29wZXJh bmQiICIiKSAwKQotCQkJCQkgICAoY29uc3RfaW50IDEpCi0JCQkJCSAgIChjb25zdF9pbnQgNykp Ci0JCQkgIChjb25zdF9pbnQgMCkpCi0JCSAgICAgIChtYXRjaF9vcGVyYW5kIDEgInBjX29yX2xh YmVsX29wZXJhbmQiICIiKQotCQkgICAgICAobWF0Y2hfb3BlcmFuZCAyICJwY19vcl9sYWJlbF9v cGVyYW5kIiAiIikpKV0KLSAgIm9wZXJhbmRzWzFdID09IHBjX3J0eCB8fCBvcGVyYW5kc1syXSA9 PSBwY19ydHgiCi0gICIjIgotICAiIgotICBbKHNldCAoY2MwKSAoY29tcGFyZSAobWF0Y2hfZHVw IDApCi0JCSAgICAgICAoY29uc3RfaW50IDApKSkKLSAgIChzZXQgKHBjKQotCShpZl90aGVuX2Vs c2UgKGx0IChjYzApCi0JCQkgIChjb25zdF9pbnQgMCkpCi0JCSAgICAgIChtYXRjaF9kdXAgMSkK LQkJICAgICAgKG1hdGNoX2R1cCAyKSkpXSkKKzs7KGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiIgor OzsgIFsoc2V0IChwYykKKzs7CShpZl90aGVuX2Vsc2UgKGVxICh6ZXJvX2V4dHJhY3Q6U0kgKHN1 YnJlZzpTSSAobWF0Y2hfb3BlcmFuZDpRSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikgMCkKKzs7 CQkJCQkgICAoY29uc3RfaW50IDEpCis7OwkJCQkJICAgKGNvbnN0X2ludCA3KSkKKzs7CQkJICAo Y29uc3RfaW50IDApKQorOzsJCSAgICAgIChsYWJlbF9yZWYgKG1hdGNoX29wZXJhbmQgMSAiIiAi IikpCis7OwkJICAgICAgKHBjKSkpXQorOzsgICIiCis7OyAgIiMiCis7OyAgIiIKKzs7ICBbKHNl dCAoY2MwKSAoY29tcGFyZSAobWF0Y2hfZHVwIDApCis7OwkJICAgICAgIChjb25zdF9pbnQgMCkp KQorOzsgICAoc2V0IChwYykKKzs7CShpZl90aGVuX2Vsc2UgKGdlIChjYzApCis7OwkJCSAgKGNv bnN0X2ludCAwKSkKKzs7CQkgICAgICAobGFiZWxfcmVmIChtYXRjaF9kdXAgMSkpCis7OwkJICAg ICAgKHBjKSkpXQorOzsgICIiKQorOzsgCis7OyAoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIiCis7 OyAgWyhzZXQgKHBjKQorOzsgCShpZl90aGVuX2Vsc2UgKG5lICh6ZXJvX2V4dHJhY3Q6U0kgKHN1 YnJlZzpTSSAobWF0Y2hfb3BlcmFuZDpRSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikgMCkKKzs7 IAkJCQkJICAgKGNvbnN0X2ludCAxKQorOzsgCQkJCQkgICAoY29uc3RfaW50IDcpKQorOzsgCQkJ ICAoY29uc3RfaW50IDApKQorOzsgCQkgICAgICAobGFiZWxfcmVmIChtYXRjaF9vcGVyYW5kIDEg IiIgIiIpKQorOzsgCQkgICAgICAocGMpKSldCis7OyAgICIiCis7OyAgICIjIgorOzsgICAiIgor OzsgICBbKHNldCAoY2MwKSAoY29tcGFyZSAobWF0Y2hfZHVwIDApCis7OyAJCSAgICAgICAoY29u c3RfaW50IDApKSkKKzs7ICAgIChzZXQgKHBjKQorOzsgCShpZl90aGVuX2Vsc2UgKGx0IChjYzAp Cis7OyAJCQkgIChjb25zdF9pbnQgMCkpCis7OyAJCSAgICAgIChsYWJlbF9yZWYgKG1hdGNoX2R1 cCAxKSkKKzs7IAkJICAgICAgKHBjKSkpXQorOzsgICAiIikKZGlmZiAtLWdpdCBhL2djYy9jb25m aWcvaDgzMDAvZGl2bW9kLm1kIGIvZ2NjL2NvbmZpZy9oODMwMC9kaXZtb2QubWQKaW5kZXggN2Uw ZDdmMDlkYzkuLmI1YWI2YjcyN2JiIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2g4MzAwL2Rpdm1v ZC5tZAorKysgYi9nY2MvY29uZmlnL2g4MzAwL2Rpdm1vZC5tZApAQCAtMiwyMyArMiw0NSBAQAog OzsgRElWSURFL01PRCBJTlNUUlVDVElPTlMKIDs7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotKGRlZmluZV9p bnNuICJ1ZGl2PG1vZGU+MyIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgInVkaXY8bW9kZT4zIgog ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpIU0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKIAko dWRpdjpIU0kgKG1hdGNoX29wZXJhbmQ6SFNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIwIikKIAkJ ICAobWF0Y2hfb3BlcmFuZDpIU0kgMiAicmVnX29yX25pYmJsZV9vcGVyYW5kIiAiciBJUDQ+WCIp KSldCiAgICJUQVJHRVRfSDgzMDBTWCIKKyAgIiMiCisgICJyZWxvYWRfY29tcGxldGVkIgorICBb KHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkgKHVkaXY6SFNJIChtYXRjaF9kdXAgMSkgKG1h dGNoX2R1cCAyKSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pXSkKKworKGRl ZmluZV9pbnNuICJ1ZGl2PG1vZGU+M19jbG9iYmVyX2ZsYWdzIgorICBbKHNldCAobWF0Y2hfb3Bl cmFuZDpIU0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKKwkodWRpdjpIU0kgKG1hdGNoX29w ZXJhbmQ6SFNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIwIikKKwkJICAobWF0Y2hfb3BlcmFuZDpI U0kgMiAicmVnX29yX25pYmJsZV9vcGVyYW5kIiAiciBJUDQ+WCIpKSkKKyAgIChjbG9iYmVyIChy ZWc6Q0MgQ0NfUkVHKSldCisgICJUQVJHRVRfSDgzMDBTWCIKICAgeyByZXR1cm4gPE1PREU+bW9k ZSA9PSBISW1vZGUgPyAiZGl2dS53XFx0JVQyLCVUMCIgOiAiZGl2dS5sXFx0JVMyLCVTMCI7IH0K ICAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNCIpXSkKIAotKGRlZmluZV9pbnNuICJkaXY8bW9kZT4z IgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiZGl2PG1vZGU+MyIKICAgWyhzZXQgKG1hdGNoX29w ZXJhbmQ6SFNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCiAJKGRpdjpIU0kgKG1hdGNoX29w ZXJhbmQ6SFNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIwIikKIAkJIChtYXRjaF9vcGVyYW5kOkhT SSAyICJyZWdfb3JfbmliYmxlX29wZXJhbmQiICJyIElQND5YIikpKV0KICAgIlRBUkdFVF9IODMw MFNYIgorICAiIyIKKyAgInJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1h dGNoX2R1cCAwKSAoZGl2OkhTSSAobWF0Y2hfZHVwIDEpIChtYXRjaF9kdXAgMikpKQorCSAgICAg IChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiZGl2PG1vZGU+ M19jbG9iYmVyX2ZsYWdzIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpIU0kgMCAicmVnaXN0ZXJf b3BlcmFuZCIgIj1yIikKKwkoZGl2OkhTSSAobWF0Y2hfb3BlcmFuZDpIU0kgMSAicmVnaXN0ZXJf b3BlcmFuZCIgIjAiKQorCQkgKG1hdGNoX29wZXJhbmQ6SFNJIDIgInJlZ19vcl9uaWJibGVfb3Bl cmFuZCIgInIgSVA0PlgiKSkpCisgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXQorICAiVEFS R0VUX0g4MzAwU1giCiAgIHsgcmV0dXJuIDxNT0RFPm1vZGUgPT0gSEltb2RlID8gImRpdnMud1xc dCVUMiwlVDAiIDogImRpdnMubFxcdCVTMiwlUzAiOyB9CiAgIFsoc2V0X2F0dHIgImxlbmd0aCIg IjQiKV0pCiAKLShkZWZpbmVfaW5zbiAidWRpdm1vZHFpNCIKKyhkZWZpbmVfaW5zbl9hbmRfc3Bs aXQgInVkaXZtb2RxaTQiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgInJlZ2lzdGVyX29w ZXJhbmQiICI9ciIpCiAJKHRydW5jYXRlOlFJCiAJICAodWRpdjpISQpAQCAtMzAsNiArNTIsMzAg QEAKIAkgICAgKG1hdGNoX2R1cCAxKQogCSAgICAoemVyb19leHRlbmQ6SEkgKG1hdGNoX2R1cCAy KSkpKSldCiAgICIiCisgICIjIgorICAicmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBb KHNldCAobWF0Y2hfZHVwIDApICh0cnVuY2F0ZTpRSQorCQkJCSAgICh1ZGl2OkhJIChtYXRjaF9k dXAgMSkKKwkJCQkJICAgICh6ZXJvX2V4dGVuZDpISSAobWF0Y2hfZHVwIDIpKSkpKQorCSAgICAg IChzZXQgKG1hdGNoX2R1cCAzKSAodHJ1bmNhdGU6UUkKKwkJCQkgICAodW1vZDpISSAobWF0Y2hf ZHVwIDEpCisJCQkJCSAgICAoemVyb19leHRlbmQ6SEkgKG1hdGNoX2R1cCAyKSkpKSkKKwkgICAg ICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXSldKQorCQkJCQkJCQorCisoZGVmaW5lX2luc24g InVkaXZtb2RxaTRfY2xvYmJlcl9mbGFncyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UUkgMCAi cmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKKwkodHJ1bmNhdGU6UUkKKwkgICh1ZGl2OkhJCisJICAg IChtYXRjaF9vcGVyYW5kOkhJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIwIikKKwkgICAgKHplcm9f ZXh0ZW5kOkhJIChtYXRjaF9vcGVyYW5kOlFJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpKSkp CisgICAoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDMgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCisJ KHRydW5jYXRlOlFJCisJICAodW1vZDpISQorCSAgICAobWF0Y2hfZHVwIDEpCisJICAgICh6ZXJv X2V4dGVuZDpISSAobWF0Y2hfZHVwIDIpKSkpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcp KV0KKyAgIiIKIHsKICAgaWYgKGZpbmRfcmVnX25vdGUgKGluc24sIFJFR19VTlVTRUQsIG9wZXJh bmRzWzNdKSkKICAgICByZXR1cm4gImRpdnh1LmJcXHQlWDIsJVQwIjsKQEAgLTM4LDcgKzg0LDcg QEAKIH0KICAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNCIpXSkKIAotKGRlZmluZV9pbnNuICJkaXZt b2RxaTQiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICJkaXZtb2RxaTQiCiAgIFsoc2V0IChtYXRj aF9vcGVyYW5kOlFJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCiAJKHRydW5jYXRlOlFJCiAJ ICAoZGl2OkhJCkBAIC01MCw2ICs5NiwyOSBAQAogCSAgICAobWF0Y2hfZHVwIDEpCiAJICAgIChz aWduX2V4dGVuZDpISSAobWF0Y2hfZHVwIDIpKSkpKV0KICAgIiIKKyAgIiMiCisgICJyZWxvYWRf Y29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkgKHRydW5jYXRlOlFJ CisJCQkJICAgKGRpdjpISSAobWF0Y2hfZHVwIDEpCisJCQkJCSAgIChzaWduX2V4dGVuZDpISSAo bWF0Y2hfZHVwIDIpKSkpKQorCSAgICAgIChzZXQgKG1hdGNoX2R1cCAzKSAodHJ1bmNhdGU6UUkK KwkJCQkgICAobW9kOkhJIChtYXRjaF9kdXAgMSkKKwkJCQkJICAgKHNpZ25fZXh0ZW5kOkhJICht YXRjaF9kdXAgMikpKSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pXSkKKwor KGRlZmluZV9pbnNuICJkaXZtb2RxaTRfY2xvYmJlcl9mbGFncyIKKyAgWyhzZXQgKG1hdGNoX29w ZXJhbmQ6UUkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKKwkodHJ1bmNhdGU6UUkKKwkgIChk aXY6SEkKKwkgICAgKG1hdGNoX29wZXJhbmQ6SEkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKQor CSAgICAoc2lnbl9leHRlbmQ6SEkgKG1hdGNoX29wZXJhbmQ6UUkgMiAicmVnaXN0ZXJfb3BlcmFu ZCIgInIiKSkpKSkKKyAgIChzZXQgKG1hdGNoX29wZXJhbmQ6UUkgMyAicmVnaXN0ZXJfb3BlcmFu ZCIgIj1yIikKKwkodHJ1bmNhdGU6UUkKKwkgIChtb2Q6SEkKKwkgICAgKG1hdGNoX2R1cCAxKQor CSAgICAoc2lnbl9leHRlbmQ6SEkgKG1hdGNoX2R1cCAyKSkpKSkKKyAgIChjbG9iYmVyIChyZWc6 Q0MgQ0NfUkVHKSldCisgICIiCiB7CiAgIGlmIChmaW5kX3JlZ19ub3RlIChpbnNuLCBSRUdfVU5V U0VELCBvcGVyYW5kc1szXSkpCiAgICAgcmV0dXJuICJkaXZ4cy5iXFx0JVgyLCVUMCI7CkBAIC01 OCw3ICsxMjcsNyBAQAogfQogICBbKHNldF9hdHRyICJsZW5ndGgiICI2IildKQogCi0oZGVmaW5l X2luc24gInVkaXZtb2RoaTQiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICJ1ZGl2bW9kaGk0Igog ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpISSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQogCSh0 cnVuY2F0ZTpISQogCSAgKHVkaXY6U0kKQEAgLTcwLDYgKzEzOSwyOSBAQAogCSAgICAobWF0Y2hf ZHVwIDEpCiAJICAgICh6ZXJvX2V4dGVuZDpTSSAobWF0Y2hfZHVwIDIpKSkpKV0KICAgIiIKKyAg IiMiCisgICJyZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAg MCkgKHRydW5jYXRlOkhJCisJCQkJICAgKHVkaXY6U0kgKG1hdGNoX2R1cCAxKQorCQkJCQkgICAg KHplcm9fZXh0ZW5kOlNJIChtYXRjaF9kdXAgMikpKSkpCisJICAgICAgKHNldCAobWF0Y2hfZHVw IDMpICh0cnVuY2F0ZTpISQorCQkJCSAgICh1bW9kOlNJIChtYXRjaF9kdXAgMSkKKwkJCQkJICAg ICh6ZXJvX2V4dGVuZDpTSSAobWF0Y2hfZHVwIDIpKSkpKQorCSAgICAgIChjbG9iYmVyIChyZWc6 Q0MgQ0NfUkVHKSldKV0pCisKKyhkZWZpbmVfaW5zbiAidWRpdm1vZGhpNF9jbG9iYmVyX2ZsYWdz IgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpISSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQor CSh0cnVuY2F0ZTpISQorCSAgKHVkaXY6U0kKKwkgICAgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVn aXN0ZXJfb3BlcmFuZCIgIjAiKQorCSAgICAoemVyb19leHRlbmQ6U0kgKG1hdGNoX29wZXJhbmQ6 SEkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkpKSkKKyAgIChzZXQgKG1hdGNoX29wZXJhbmQ6 SEkgMyAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKKwkodHJ1bmNhdGU6SEkKKwkgICh1bW9kOlNJ CisJICAgIChtYXRjaF9kdXAgMSkKKwkgICAgKHplcm9fZXh0ZW5kOlNJIChtYXRjaF9kdXAgMikp KSkpCisgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXQorICAiIgogewogICBpZiAoZmluZF9y ZWdfbm90ZSAoaW5zbiwgUkVHX1VOVVNFRCwgb3BlcmFuZHNbM10pKQogICAgIHJldHVybiAiZGl2 eHUud1xcdCVUMiwlUzAiOwpAQCAtNzgsNyArMTcwLDcgQEAKIH0KICAgWyhzZXRfYXR0ciAibGVu Z3RoIiAiNCIpXSkKIAotKGRlZmluZV9pbnNuICJkaXZtb2RoaTQiCisoZGVmaW5lX2luc25fYW5k X3NwbGl0ICJkaXZtb2RoaTQiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVy X29wZXJhbmQiICI9ciIpCiAJKHRydW5jYXRlOkhJCiAJICAoZGl2OlNJCkBAIC05MCw2ICsxODIs MjkgQEAKIAkgICAgKG1hdGNoX2R1cCAxKQogCSAgICAoc2lnbl9leHRlbmQ6U0kgKG1hdGNoX2R1 cCAyKSkpKSldCiAgICIiCisgICIjIgorICAicmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxl bCBbKHNldCAobWF0Y2hfZHVwIDApICh0cnVuY2F0ZTpISQorCQkJCSAgIChkaXY6U0kgKG1hdGNo X2R1cCAxKQorCQkJCQkgICAoc2lnbl9leHRlbmQ6U0kgKG1hdGNoX2R1cCAyKSkpKSkKKwkgICAg ICAoc2V0IChtYXRjaF9kdXAgMykgKHRydW5jYXRlOkhJCisJCQkJICAgKG1vZDpTSSAobWF0Y2hf ZHVwIDEpCisJCQkJCSAgIChzaWduX2V4dGVuZDpTSSAobWF0Y2hfZHVwIDIpKSkpKQorCSAgICAg IChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiZGl2bW9kaGk0 X2Nsb2JiZXJfZmxhZ3MiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29w ZXJhbmQiICI9ciIpCisJKHRydW5jYXRlOkhJCisJICAoZGl2OlNJCisJICAgIChtYXRjaF9vcGVy YW5kOlNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIwIikKKwkgICAgKHNpZ25fZXh0ZW5kOlNJICht YXRjaF9vcGVyYW5kOkhJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpKSkpCisgICAoc2V0ICht YXRjaF9vcGVyYW5kOkhJIDMgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCisJKHRydW5jYXRlOkhJ CisJICAobW9kOlNJCisJICAgIChtYXRjaF9kdXAgMSkKKwkgICAgKHNpZ25fZXh0ZW5kOlNJICht YXRjaF9kdXAgMikpKSkpCisgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXQorICAiIgogewog ICBpZiAoZmluZF9yZWdfbm90ZSAoaW5zbiwgUkVHX1VOVVNFRCwgb3BlcmFuZHNbM10pKQogICAg IHJldHVybiAiZGl2eHMud1xcdCVUMiwlUzAiOwpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9oODMw MC9leHRlbnNpb25zLm1kIGIvZ2NjL2NvbmZpZy9oODMwMC9leHRlbnNpb25zLm1kCmluZGV4IGNm NmZiNmQxZWI5Li43NjMxMjMwYWMzMyAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9oODMwMC9leHRl bnNpb25zLm1kCisrKyBiL2djYy9jb25maWcvaDgzMDAvZXh0ZW5zaW9ucy5tZApAQCAtMTEsMTUg KzExLDI0IEBACiAgICAgICBvcGVyYW5kc1sxXSA9IGZvcmNlX3JlZyAoUUltb2RlLCBvcGVyYW5k c1sxXSk7CiAgIH0pCiAKLShkZWZpbmVfaW5zbiAiKnplcm9fZXh0ZW5kcWloaTJfaDgzMDBocyIK KyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIip6ZXJvX2V4dGVuZHFpaGkyIgogICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpISSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIsciIpCiAJKHplcm9fZXh0ZW5k OkhJIChtYXRjaF9vcGVyYW5kOlFJIDEgImdlbmVyYWxfb3BlcmFuZF9zcmMiICIwLGc+IikpKV0K ICAgIiIKKyAgIiMiCisgICJyZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0ICht YXRjaF9kdXAgMCkgKHplcm9fZXh0ZW5kOkhJIChtYXRjaF9kdXAgMSkpKQorCSAgICAgIChjbG9i YmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKnplcm9fZXh0ZW5kcWlo aTJfY2xvYmJlcl9mbGFncyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJf b3BlcmFuZCIgIj1yLHIiKQorCSh6ZXJvX2V4dGVuZDpISSAobWF0Y2hfb3BlcmFuZDpRSSAxICJn ZW5lcmFsX29wZXJhbmRfc3JjIiAiMCxnPiIpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVH KSldCisgICIiCiAgICJACiAgIGV4dHUudwklVDAKICAgIyIKLSAgWyhzZXRfYXR0ciAibGVuZ3Ro IiAiMiwxMCIpCi0gICAoc2V0X2F0dHIgImNjIiAic2V0X3pudixzZXRfem52IildKQorICBbKHNl dF9hdHRyICJsZW5ndGgiICIyLDEwIildKQogCiA7OyBTcGxpdCB0aGUgemVybyBleHRlbnNpb24g b2YgYSBnZW5lcmFsIG9wZXJhbmQgKGFjdHVhbGx5IGEgbWVtb3J5CiA7OyBvcGVyYW5kKSBpbnRv IGEgbG9hZCBvZiB0aGUgb3BlcmFuZCBhbmQgdGhlIGFjdHVhbCB6ZXJvIGV4dGVuc2lvbgpAQCAt MjgsMzQgKzM3LDM2IEBACiAKIChkZWZpbmVfc3BsaXQKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6 SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCi0JKHplcm9fZXh0ZW5kOkhJIChtYXRjaF9vcGVy YW5kOlFJIDEgImdlbmVyYWxfb3BlcmFuZF9zcmMiICIiKSkpXQorCSh6ZXJvX2V4dGVuZDpISSAo bWF0Y2hfb3BlcmFuZDpRSSAxICJnZW5lcmFsX29wZXJhbmRfc3JjIiAiIikpKQorICAgKGNsb2Ji ZXIgKHJlZzpDQyBDQ19SRUcpKV0KICAgInJlbG9hZF9jb21wbGV0ZWQiCi0gIFsoc2V0IChtYXRj aF9kdXAgMikKLQkobWF0Y2hfZHVwIDEpKQotICAgKHNldCAobWF0Y2hfZHVwIDApCi0JKHplcm9f ZXh0ZW5kOkhJIChtYXRjaF9kdXAgMikpKV0KKyAgWyhzZXQgKG1hdGNoX2R1cCAyKSAobWF0Y2hf ZHVwIDEpKQorICAgKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkgKHplcm9fZXh0ZW5kOkhJ IChtYXRjaF9kdXAgMikpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0KICAg ewogICAgIG9wZXJhbmRzWzJdID0gZ2VuX3J0eF9SRUcgKFFJbW9kZSwgUkVHTk8gKG9wZXJhbmRz WzBdKSk7CiAgIH0pCiAKLShkZWZpbmVfaW5zbiAiKnplcm9fZXh0ZW5kcWlzaTJfaDgzMDBocyIK KyhkZWZpbmVfaW5zbiAiKnplcm9fZXh0ZW5kcWlzaTIiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5k OlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9cixyIikKIAkoemVyb19leHRlbmQ6U0kgKG1hdGNo X29wZXJhbmQ6UUkgMSAiZ2VuZXJhbF9vcGVyYW5kX3NyYyIgIjAsZz4iKSkpXQotICAiIVRBUkdF VF9IODMwMFNYIgorICAiIXJlbG9hZF9jb21wbGV0ZWQgJiYgIVRBUkdFVF9IODMwMFNYIgogICAi IyIpCiAKKzs7IFR3byBjYXNlcyBmb3IgdGhlICFIOC9TWCB0YXJnZXQuICBPbmUgd2hlcmUgdGhl cmUgaXMgYW4gb3ZlcmxhcAorOzsgYmV0d2VlbiB0aGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiwg b25lIHdoZXJlIHRoZXJlIGlzIG5vIG92ZXJsYXAKIChkZWZpbmVfc3BsaXQKICAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCiAJKHplcm9fZXh0ZW5kOlNJ IChtYXRjaF9vcGVyYW5kOlFJIDEgImdlbmVyYWxfb3BlcmFuZF9zcmMiICIiKSkpXQogICAiIVRB UkdFVF9IODMwMFNYCiAgICAgJiYgcmVnX292ZXJsYXBfbWVudGlvbmVkX3AgKG9wZXJhbmRzWzBd LCBvcGVyYW5kc1sxXSkKICAgICAmJiByZWxvYWRfY29tcGxldGVkIgotICBbKHNldCAobWF0Y2hf ZHVwIDIpCi0JKG1hdGNoX2R1cCAxKSkKLSAgIChzZXQgKG1hdGNoX2R1cCAzKQotCSh6ZXJvX2V4 dGVuZDpISSAobWF0Y2hfZHVwIDIpKSkKLSAgIChzZXQgKG1hdGNoX2R1cCAwKQotCSh6ZXJvX2V4 dGVuZDpTSSAobWF0Y2hfZHVwIDMpKSldCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAy KSAobWF0Y2hfZHVwIDEpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKQorICAg KHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMykgKHplcm9fZXh0ZW5kOkhJIChtYXRjaF9kdXAg MikpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKQorICAgKHBhcmFsbGVsIFso c2V0IChtYXRjaF9kdXAgMCkgKHplcm9fZXh0ZW5kOlNJIChtYXRjaF9kdXAgMykpKQorCSAgICAg IChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0KICAgewogICAgIG9wZXJhbmRzWzJdID0gZ2Vu X2xvd3BhcnQgKFFJbW9kZSwgb3BlcmFuZHNbMF0pOwogICAgIG9wZXJhbmRzWzNdID0gZ2VuX2xv d3BhcnQgKEhJbW9kZSwgb3BlcmFuZHNbMF0pOwpAQCAtNjcsMjEgKzc4LDMwIEBACiAgICIhVEFS R0VUX0g4MzAwU1gKICAgICAmJiAhcmVnX292ZXJsYXBfbWVudGlvbmVkX3AgKG9wZXJhbmRzWzBd LCBvcGVyYW5kc1sxXSkKICAgICAmJiByZWxvYWRfY29tcGxldGVkIgotICBbKHNldCAobWF0Y2hf ZHVwIDApCi0JKGNvbnN0X2ludCAwKSkKLSAgIChzZXQgKHN0cmljdF9sb3dfcGFydCAobWF0Y2hf ZHVwIDIpKQotCShtYXRjaF9kdXAgMSkpXQorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAg MCkgKGNvbnN0X2ludCAwKSkKKwkgICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXSkKKyAg IChwYXJhbGxlbCBbKHNldCAoc3RyaWN0X2xvd19wYXJ0IChtYXRjaF9kdXAgMikpIChtYXRjaF9k dXAgMSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pXQogICB7CiAgICAgb3Bl cmFuZHNbMl0gPSBnZW5fcnR4X1JFRyAoUUltb2RlLCBSRUdOTyAob3BlcmFuZHNbMF0pKTsKICAg fSkKIAotKGRlZmluZV9pbnNuICIqemVyb19leHRlbmRxaXNpMl9oOHN4IgorKGRlZmluZV9pbnNu X2FuZF9zcGxpdCAiKnplcm9fZXh0ZW5kcWlzaTJfaDhzeCIKICAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKIAkoemVyb19leHRlbmQ6U0kgKG1hdGNo X29wZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKSkpXQogICAiVEFSR0VUX0g4MzAw U1giCisgICIjIgorICAicmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0 Y2hfZHVwIDApICh6ZXJvX2V4dGVuZDpTSSAobWF0Y2hfZHVwIDEpKSkKKwkgICAgICAoY2xvYmJl ciAocmVnOkNDIENDX1JFRykpXSldKQorCisoZGVmaW5lX2luc24gIip6ZXJvX2V4dGVuZHFpc2ky X2g4c3hfY2xvYmJlcl9mbGFncyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0 ZXJfb3BlcmFuZCIgIj1yIikKKwkoemVyb19leHRlbmQ6U0kgKG1hdGNoX29wZXJhbmQ6UUkgMSAi cmVnaXN0ZXJfb3BlcmFuZCIgIjAiKSkpCisgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXQor ICAiVEFSR0VUX0g4MzAwU1giCiAgICJleHR1LmxcdCMyLCUwIgotICBbKHNldF9hdHRyICJsZW5n dGgiICIyIikKLSAgIChzZXRfYXR0ciAiY2MiICJzZXRfem52IildKQorICBbKHNldF9hdHRyICJs ZW5ndGgiICIyIildKQogCiAoZGVmaW5lX2V4cGFuZCAiemVyb19leHRlbmRoaXNpMiIKICAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCkBAIC04OSwxMyAr MTA5LDIyIEBACiAgICIiCiAgICIiKQogCi0oZGVmaW5lX2luc24gIip6ZXJvX2V4dGVuZGhpc2ky X2g4MzAwaHMiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqemVyb19leHRlbmRoaXNpMiIKICAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKIAkoemVy b19leHRlbmQ6U0kgKG1hdGNoX29wZXJhbmQ6SEkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKSkp XQogICAiIgorICAiIyIKKyAgInJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQg KG1hdGNoX2R1cCAwKSAoemVyb19leHRlbmQ6U0kgKG1hdGNoX2R1cCAxKSkpCisJICAgICAgKGNs b2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pXSkKKworKGRlZmluZV9pbnNuICIqemVyb19leHRlbmRo aXNpMl9jbG9iYmVyX2ZsYWdzIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rl cl9vcGVyYW5kIiAiPXIiKQorCSh6ZXJvX2V4dGVuZDpTSSAobWF0Y2hfb3BlcmFuZDpISSAxICJy ZWdpc3Rlcl9vcGVyYW5kIiAiMCIpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldCisg ICIiCiAgICJleHR1LmwJJVMwIgotICBbKHNldF9hdHRyICJsZW5ndGgiICIyIikKLSAgIChzZXRf YXR0ciAiY2MiICJzZXRfem52IildKQorICBbKHNldF9hdHRyICJsZW5ndGgiICIyIildKQogCiAo ZGVmaW5lX2V4cGFuZCAiZXh0ZW5kcWk8bW9kZT4yIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpI U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCkBAIC0xMDMsMzkgKzEzMiw1NyBAQAogICAiIgog ICAiIikKIAotKGRlZmluZV9pbnNuICIqZXh0ZW5kcWloaTJfaDgzMDBocyIKKyhkZWZpbmVfaW5z bl9hbmRfc3BsaXQgIipleHRlbmRxaWhpMiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAi cmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKIAkoc2lnbl9leHRlbmQ6SEkgKG1hdGNoX29wZXJhbmQ6 UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKSkpXQogICAiIgorICAiIyIKKyAgInJlbG9hZF9j b21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKSAoc2lnbl9leHRlbmQ6 SEkgKG1hdGNoX2R1cCAxKSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pXSkK KworKGRlZmluZV9pbnNuICIqZXh0ZW5kcWloaTJfY2xvYmJlcl9mbGFncyIKKyAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKKwkoc2lnbl9leHRlbmQ6 SEkgKG1hdGNoX29wZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKSkpCisgICAoY2xv YmJlciAocmVnOkNDIENDX1JFRykpXQorICAiIgogICAiZXh0cy53CSVUMCIKLSAgWyhzZXRfYXR0 ciAibGVuZ3RoIiAiMiIpCi0gICAoc2V0X2F0dHIgImNjIiAic2V0X3pudiIpXSkKKyAgWyhzZXRf YXR0ciAibGVuZ3RoIiAiMiIpXSkKIAogOzsgVGhlIGZvbGxvd2luZyBwYXR0ZXJuIGlzIG5lZWRl ZCBiZWNhdXNlIHdpdGhvdXQgdGhlIHBhdHRlcm4sIHRoZQogOzsgY29tYmluZXIgd291bGQgc3Bs aXQgKHNpZ25fZXh0ZW5kOlNJIChyZWc6UUkpKSBpbnRvIHR3byAyNC1iaXQKIDs7IHNoaWZ0cywg b25lIGFzaGlmdCBhbmQgb25lIGFzaGlmdHJ0LgogCi0oZGVmaW5lX2luc25fYW5kX3NwbGl0ICIq ZXh0ZW5kcWlzaTJfaDgzMDBocyIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIipleHRlbmRxaXNp MiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikK IAkoc2lnbl9leHRlbmQ6U0kgKG1hdGNoX29wZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIg IjAiKSkpXQogICAiIVRBUkdFVF9IODMwMFNYIgogICAiIyIKICAgIiYmIHJlbG9hZF9jb21wbGV0 ZWQiCi0gIFsoc2V0IChtYXRjaF9kdXAgMikKLQkoc2lnbl9leHRlbmQ6SEkgKG1hdGNoX2R1cCAx KSkpCi0gICAoc2V0IChtYXRjaF9kdXAgMCkKLQkoc2lnbl9leHRlbmQ6U0kgKG1hdGNoX2R1cCAy KSkpXQorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMikgKHNpZ25fZXh0ZW5kOkhJICht YXRjaF9kdXAgMSkpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKQorICAgKHBh cmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkgKHNpZ25fZXh0ZW5kOlNJIChtYXRjaF9kdXAgMikp KQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0KICAgewogICAgIG9wZXJhbmRz WzJdID0gZ2VuX3J0eF9SRUcgKEhJbW9kZSwgUkVHTk8gKG9wZXJhbmRzWzBdKSk7CiAgIH0pCiAK LShkZWZpbmVfaW5zbiAiKmV4dGVuZHFpc2kyX2g4c3giCisoZGVmaW5lX2luc25fYW5kX3NwbGl0 ICIqZXh0ZW5kcWlzaTJfaDhzeCIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0 ZXJfb3BlcmFuZCIgIj1yIikKIAkoc2lnbl9leHRlbmQ6U0kgKG1hdGNoX29wZXJhbmQ6UUkgMSAi cmVnaXN0ZXJfb3BlcmFuZCIgIjAiKSkpXQogICAiVEFSR0VUX0g4MzAwU1giCisgICIjIgorICAi cmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApIChzaWdu X2V4dGVuZDpTSSAobWF0Y2hfZHVwIDEpKSkKKwkgICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JF RykpXSldKQorCisoZGVmaW5lX2luc24gIipleHRlbmRxaXNpMl9oOHN4X2Nsb2JiZXJfZmxhZ3Mi CisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCisJ KHNpZ25fZXh0ZW5kOlNJIChtYXRjaF9vcGVyYW5kOlFJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIw IikpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0KKyAgIlRBUkdFVF9IODMwMFNYIgog ICAiZXh0cy5sXHQjMiwlMCIKLSAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMiIpCi0gICAoc2V0X2F0 dHIgImNjIiAic2V0X3pudiIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMiIpXSkKIAogKGRl ZmluZV9leHBhbmQgImV4dGVuZGhpc2kyIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJy ZWdpc3Rlcl9vcGVyYW5kIiAiIikKQEAgLTE0MywxMCArMTkwLDE5IEBACiAgICIiCiAgICIiKQog Ci0oZGVmaW5lX2luc24gIipleHRlbmRoaXNpMl9oODMwMGhzIgorKGRlZmluZV9pbnNuX2FuZF9z cGxpdCAiKmV4dGVuZGhpc2kyIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rl cl9vcGVyYW5kIiAiPXIiKQogCShzaWduX2V4dGVuZDpTSSAobWF0Y2hfb3BlcmFuZDpISSAxICJy ZWdpc3Rlcl9vcGVyYW5kIiAiMCIpKSldCiAgICIiCisgICIjIgorICAicmVsb2FkX2NvbXBsZXRl ZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApIChzaWduX2V4dGVuZDpTSSAobWF0 Y2hfZHVwIDEpKSkKKwkgICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXSldKQorCisoZGVm aW5lX2luc24gIipleHRlbmRoaXNpMl9jbG9iYmVyX2ZsYWdzIgorICBbKHNldCAobWF0Y2hfb3Bl cmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQorCShzaWduX2V4dGVuZDpTSSAobWF0 Y2hfb3BlcmFuZDpISSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpKSkKKyAgIChjbG9iYmVyIChy ZWc6Q0MgQ0NfUkVHKSldCisgICIiCiAgICJleHRzLmwJJVMwIgotICBbKHNldF9hdHRyICJsZW5n dGgiICIyIikKLSAgIChzZXRfYXR0ciAiY2MiICJzZXRfem52IildKQorICBbKHNldF9hdHRyICJs ZW5ndGgiICIyIildKQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9oODMwMC9nZW5tb3ZhLnNoIGIv Z2NjL2NvbmZpZy9oODMwMC9nZW5tb3ZhLnNoCmluZGV4IDIyYjAxY2M0ZTIwLi44YWIwMThmNzBl MSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9oODMwMC9nZW5tb3ZhLnNoCisrKyBiL2djYy9jb25m aWcvaDgzMDAvZ2VubW92YS5zaApAQCAtNzEsOCArNzEsNyBAQCBmb3IgcyBpbiBRSSBISTsgZG8K IAkJIChtYXRjaF9vcGVyYW5kOiRkIDIgImltbWVkaWF0ZV9vcGVyYW5kIiAiaSxpIikpKV0KICAg IlRBUkdFVF9IODMwMFNYIgogICAibW92YS9iLmwgQCglbzIlQzIsJHNyYyksJVMwIgotICBbKHNl dF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhIikKLSAgIChzZXRfYXR0ciAiY2MiICJub25lIild KQorICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhIildKQogCiBFT0YKIAk7OwpAQCAt MTE1LDggKzExNCw3IEBAIEVPRgogCQkgKG1hdGNoX29wZXJhbmQ6JGQgMiAiaW1tZWRpYXRlX29w ZXJhbmQiICJpLGkiKSkpXQogICAiVEFSR0VUX0g4MzAwU1giCiAgICJtb3ZhLyRvcHNpemUubCBA KCVvMiVDMiwkc3JjKSwlUzAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmEiKQot ICAgKHNldF9hdHRyICJjYyIgIm5vbmUiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIg Im1vdmEiKV0pCiAKIEVPRgogCSAgICA7OwpAQCAtMTM0LDggKzEzMiw3IEBAIEVPRgogCQkgIChj b25zdF9pbnQgJGFtb3VudCkpKV0KICAgIlRBUkdFVF9IODMwMFNYIgogICAibW92YS8kb3BzaXpl LmwgQCgwLCRzcmMpLCVTMCIKLSAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YV96ZXJv IikKLSAgIChzZXRfYXR0ciAiY2MiICJub25lIildKQorICBbKHNldF9hdHRyICJsZW5ndGhfdGFi bGUiICJtb3ZhX3plcm8iKV0pCiAKIChkZWZpbmVfaW5zbiAiIgogICBbKHNldCAobWF0Y2hfb3Bl cmFuZDokZCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIsciIpCkBAIC0xNDQsOCArMTQxLDcgQEAg RU9GCiAJCSAobWF0Y2hfb3BlcmFuZDokZCAyICJpbW1lZGlhdGVfb3BlcmFuZCIgImksaSIpKSld CiAgICJUQVJHRVRfSDgzMDBTWCIKICAgIm1vdmEvJG9wc2l6ZS5sIEAoJW8yJUMyLCRzcmMpLCVT MCIKLSAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YSIpCi0gICAoc2V0X2F0dHIgImNj IiAibm9uZSIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YSIpXSkKIAogRU9G CiAKQEAgLTE3NCw4ICsxNzAsNyBAQCBFT0YKIAkJKGNvbnN0X2ludCAkbWFzaykpKV0KICAgIlRB UkdFVF9IODMwMFNYIgogICAibW92YS8kb3BzaXplLmwgQCgwLCRzcmMpLCVTMCIKLSAgWyhzZXRf YXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YV96ZXJvIikKLSAgIChzZXRfYXR0ciAiY2MiICJub25l IildKQorICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhX3plcm8iKV0pCiAKIChkZWZp bmVfaW5zbiAiIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDokZCAwICJyZWdpc3Rlcl9vcGVyYW5k IiAiPXIiKQpAQCAtMTg1LDggKzE4MCw3IEBAIEVPRgogCQkgKG1hdGNoX29wZXJhbmQ6JGQgMiAi aW1tZWRpYXRlX29wZXJhbmQiICJpIikpKV0KICAgIlRBUkdFVF9IODMwMFNYIgogICAibW92YS8k b3BzaXplLmwgQCglbzIlQzIsJHNyYyksJVMwIgotICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUi ICJtb3ZhIikKLSAgIChzZXRfYXR0ciAiY2MiICJub25lIildKQorICBbKHNldF9hdHRyICJsZW5n dGhfdGFibGUiICJtb3ZhIildKQogCiBFT0YKIAkgICAgICBkb25lCmRpZmYgLS1naXQgYS9nY2Mv Y29uZmlnL2g4MzAwL2g4MzAwLW1vZGVzLmRlZiBiL2djYy9jb25maWcvaDgzMDAvaDgzMDAtbW9k ZXMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yZjM2YzdlYWQ4 ZAotLS0gL2Rldi9udWxsCisrKyBiL2djYy9jb25maWcvaDgzMDAvaDgzMDAtbW9kZXMuZGVmCkBA IC0wLDAgKzEsMjEgQEAKKy8qIERlZmluaXRpb25zIG9mIHRhcmdldCBtYWNoaW5lIGZvciBHTlUg Y29tcGlsZXIuIAorICAgQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgorCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBHQ0MuCisKKyAgIEdDQyBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisgICB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZAorICAgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g Mywgb3IgKGF0IHlvdXIKKyAgIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIEdDQyBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lU SE9VVAorICAgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YgTUVSQ0hBTlRBQklMSVRZCisgICBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJ TkczLiAgSWYgbm90IHNlZQorICAgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8K KworQ0NfTU9ERSAoQ0NaTik7CitDQ19NT0RFIChDQ1pOVik7CmRpZmYgLS1naXQgYS9nY2MvY29u ZmlnL2g4MzAwL2g4MzAwLXByb3Rvcy5oIGIvZ2NjL2NvbmZpZy9oODMwMC9oODMwMC1wcm90b3Mu aAppbmRleCA4YThlYmY2ZjQ5MC4uMmQ5MDAzNjllZjUgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcv aDgzMDAvaDgzMDAtcHJvdG9zLmgKKysrIGIvZ2NjL2NvbmZpZy9oODMwMC9oODMwMC1wcm90b3Mu aApAQCAtMjYsOCArMjYsOCBAQCBhbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJTkcz LiAgSWYgbm90IHNlZQogLyogRGVjbGFyYXRpb25zIGZvciBmdW5jdGlvbnMgdXNlZCBpbiBpbnNu LW91dHB1dC5jLiAgKi8KICNpZmRlZiBSVFhfQ09ERQogZXh0ZXJuIHVuc2lnbmVkIGludCBjb21w dXRlX21vdl9sZW5ndGggKHJ0eCAqKTsKLWV4dGVybiBjb25zdCBjaGFyICpvdXRwdXRfcGx1c3Np IChydHggKik7Ci1leHRlcm4gdW5zaWduZWQgaW50IGNvbXB1dGVfcGx1c3NpX2xlbmd0aCAocnR4 ICopOworZXh0ZXJuIGNvbnN0IGNoYXIgKm91dHB1dF9wbHVzc2kgKHJ0eCAqLCBib29sKTsKK2V4 dGVybiB1bnNpZ25lZCBpbnQgY29tcHV0ZV9wbHVzc2lfbGVuZ3RoIChydHggKiwgYm9vbCk7CiBl eHRlcm4gY29uc3QgY2hhciAqb3V0cHV0X2Ffc2hpZnQgKHJ0eCAqKTsKIGV4dGVybiB1bnNpZ25l ZCBpbnQgY29tcHV0ZV9hX3NoaWZ0X2xlbmd0aCAocnR4LCBydHggKik7CiBleHRlcm4gY29uc3Qg Y2hhciAqb3V0cHV0X2Ffcm90YXRlIChlbnVtIHJ0eF9jb2RlLCBydHggKik7CkBAIC0zNSwxNCAr MzUsMTYgQEAgZXh0ZXJuIHVuc2lnbmVkIGludCBjb21wdXRlX2Ffcm90YXRlX2xlbmd0aCAocnR4 ICopOwogZXh0ZXJuIGNvbnN0IGNoYXIgKm91dHB1dF9zaW1vZGVfYmxkIChpbnQsIHJ0eFtdKTsK IGV4dGVybiB2b2lkIGZpbmFsX3ByZXNjYW5faW5zbiAocnR4X2luc24gKiwgcnR4ICosIGludCk7 CiBleHRlcm4gaW50IGg4MzAwX2V4cGFuZF9tb3ZzaSAocnR4W10pOworZXh0ZXJuIG1hY2hpbmVf bW9kZSAgaDgzMDBfc2VsZWN0X2NjX21vZGUgKFJUWF9DT0RFLCBydHgsIHJ0eCk7CiBleHRlcm4g dm9pZCBub3RpY2VfdXBkYXRlX2NjIChydHgsIHJ0eF9pbnNuICopOwogZXh0ZXJuIGNvbnN0IGNo YXIgKm91dHB1dF9sb2dpY2FsX29wIChtYWNoaW5lX21vZGUsIHJ0eCAqKTsKIGV4dGVybiB1bnNp Z25lZCBpbnQgY29tcHV0ZV9sb2dpY2FsX29wX2xlbmd0aCAobWFjaGluZV9tb2RlLAogCQkJCQkg ICAgICAgcnR4ICopOworCitleHRlcm4gaW50IGNvbXB1dGVfbG9naWNhbF9vcF9jYyAobWFjaGlu ZV9tb2RlLCBydHggKik7CitleHRlcm4gaW50IGNvbXB1dGVfYV9zaGlmdF9jYyAocnR4LCBydHgg Kik7CiAjaWZkZWYgSEFWRV9BVFRSX2NjCiBleHRlcm4gZW51bSBhdHRyX2NjIGNvbXB1dGVfcGx1 c3NpX2NjIChydHggKik7Ci1leHRlcm4gZW51bSBhdHRyX2NjIGNvbXB1dGVfYV9zaGlmdF9jYyAo cnR4LCBydHggKik7Ci1leHRlcm4gZW51bSBhdHRyX2NjIGNvbXB1dGVfbG9naWNhbF9vcF9jYyAo bWFjaGluZV9tb2RlLCBydHggKik7CiAjZW5kaWYKIGV4dGVybiB2b2lkIGg4MzAwX2V4cGFuZF9i cmFuY2ggKHJ0eFtdKTsKIGV4dGVybiB2b2lkIGg4MzAwX2V4cGFuZF9zdG9yZSAocnR4W10pOwpk aWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9oODMwMC9oODMwMC5jIGIvZ2NjL2NvbmZpZy9oODMwMC9o ODMwMC5jCmluZGV4IDFhMjIxNjlhMDY3Li45NDJiOWJiNjNiZCAxMDA2NDQKLS0tIGEvZ2NjL2Nv bmZpZy9oODMwMC9oODMwMC5jCisrKyBiL2djYy9jb25maWcvaDgzMDAvaDgzMDAuYwpAQCAtMTMy LDEzICsxMzIsMTMgQEAgc3RhdGljIGludCBwcmFnbWFfaW50ZXJydXB0Owogc3RhdGljIGludCBw cmFnbWFfc2F2ZWFsbDsKIAogc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IG5hbWVzX2JpZ1tdID0K LXsgInIwIiwgInIxIiwgInIyIiwgInIzIiwgInI0IiwgInI1IiwgInI2IiwgInI3IiB9OworeyAi cjAiLCAicjEiLCAicjIiLCAicjMiLCAicjQiLCAicjUiLCAicjYiLCAicjciLCAiY2MiIH07CiAK IHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBuYW1lc19leHRlbmRlZFtdID0KLXsgImVyMCIsICJl cjEiLCAiZXIyIiwgImVyMyIsICJlcjQiLCAiZXI1IiwgImVyNiIsICJlcjciIH07Cit7ICJlcjAi LCAiZXIxIiwgImVyMiIsICJlcjMiLCAiZXI0IiwgImVyNSIsICJlcjYiLCAiZXI3IiwgImNjIiB9 OwogCiBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgbmFtZXNfdXBwZXJfZXh0ZW5kZWRbXSA9Ci17 ICJlMCIsICJlMSIsICJlMiIsICJlMyIsICJlNCIsICJlNSIsICJlNiIsICJlNyIgfTsKK3sgImUw IiwgImUxIiwgImUyIiwgImUzIiwgImU0IiwgImU1IiwgImU2IiwgImU3IiwgImNjIiB9OwogCiAv KiBQb2ludHMgdG8gb25lIG9mIHRoZSBhYm92ZS4gICovCiAvKiA/Pz8gVGhlIGFib3ZlIGNvdWxk IGJlIHB1dCBpbiBhbiBhcnJheSBpbmRleGVkIGJ5IENQVV9UWVBFLiAgKi8KQEAgLTQ2OSwxMSAr NDY5LDExIEBAIGg4MzAwX2VtaXRfc3RhY2tfYWRqdXN0bWVudCAoaW50IHNpZ24sIEhPU1RfV0lE RV9JTlQgc2l6ZSwgYm9vbCBpbl9wcm9sb2d1ZSkKIAkJCQkJICAgc3RhY2tfcG9pbnRlcl9ydHgs CiAJCQkJCSAgICBHRU5fSU5UIChzaWduICogc2l6ZSkpKTsKICAgICAgIGlmIChzaXplIDwgNCkK LSAgICAgICAgRiAoeCwgaW5fcHJvbG9ndWUpOworICAgICAgICBGICh4LCAwKTsKICAgICB9CiAg IGVsc2UKICAgICBGIChlbWl0X2luc24gKGdlbl9hZGRzaTMgKHN0YWNrX3BvaW50ZXJfcnR4LAot CQkJICAgICAgc3RhY2tfcG9pbnRlcl9ydHgsIEdFTl9JTlQgKHNpZ24gKiBzaXplKSkpLCBpbl9w cm9sb2d1ZSk7CisJCQkgICAgICBzdGFja19wb2ludGVyX3J0eCwgR0VOX0lOVCAoc2lnbiAqIHNp emUpKSksIDApOwogfQogCiAvKiBSb3VuZCB1cCBmcmFtZSBzaXplIFNJWkUuICAqLwpAQCAtNTIw LDcgKzUyMCw3IEBAIHB1c2ggKGludCBybiwgYm9vbCBpbl9wcm9sb2d1ZSkKICAgICB4ID0gZ2Vu X3B1c2hfaDgzMDBoc19hZHZhbmNlZCAocmVnKTsKICAgZWxzZQogICAgIHggPSBnZW5fcHVzaF9o ODMwMGhzX25vcm1hbCAocmVnKTsKLSAgeCA9IEYgKGVtaXRfaW5zbiAoeCksIGluX3Byb2xvZ3Vl KTsKKyAgeCA9IEYgKGVtaXRfaW5zbiAoeCksIDApOwogICBhZGRfcmVnX25vdGUgKHgsIFJFR19J TkMsIHN0YWNrX3BvaW50ZXJfcnR4KTsKICAgcmV0dXJuIHg7CiB9CkBAIC03NTYsNyArNzU2LDcg QEAgaDgzMDBfZXhwYW5kX3Byb2xvZ3VlICh2b2lkKQogICAgIHsKICAgICAgIC8qIFB1c2ggZnAu ICAqLwogICAgICAgcHVzaCAoSEFSRF9GUkFNRV9QT0lOVEVSX1JFR05VTSwgdHJ1ZSk7Ci0gICAg ICBGIChlbWl0X21vdmVfaW5zbiAoaGFyZF9mcmFtZV9wb2ludGVyX3J0eCwgc3RhY2tfcG9pbnRl cl9ydHgpLCB0cnVlKTsKKyAgICAgIEYgKGVtaXRfbW92ZV9pbnNuIChoYXJkX2ZyYW1lX3BvaW50 ZXJfcnR4LCBzdGFja19wb2ludGVyX3J0eCksIDApOwogICAgIH0KIAogICAvKiBQdXNoIHRoZSBy ZXN0IG9mIHRoZSByZWdpc3RlcnMgaW4gYXNjZW5kaW5nIG9yZGVyLiAgKi8KQEAgLTE1MDgsMTAg KzE1MDgsMjAgQEAgaDgzMDBfcHJpbnRfb3BlcmFuZCAoRklMRSAqZmlsZSwgcnR4IHgsIGludCBj b2RlKQogCX0KICAgICAgIGJyZWFrOwogICAgIGNhc2UgJ2onOgotICAgICAgZnB1dHMgKGNvbmRf c3RyaW5nIChHRVRfQ09ERSAoeCkpLCBmaWxlKTsKKyAgICAgIGlmIChHRVRfQ09ERSAoeCkgPT0g TFQgJiYgR0VUX01PREUgKFhFWFAgKHgsIDApKSA9PSBFX0NDWk5tb2RlKQorCWZwdXRzICgibWki LCBmaWxlKTsKKyAgICAgIGVsc2UgaWYgKEdFVF9DT0RFICh4KSA9PSBHRSAmJiBHRVRfTU9ERSAo WEVYUCAoeCwgMCkpID09IEVfQ0NaTm1vZGUpCisJZnB1dHMgKCJwbCIsIGZpbGUpOworICAgICAg ZWxzZQorCWZwdXRzIChjb25kX3N0cmluZyAoR0VUX0NPREUgKHgpKSwgZmlsZSk7CiAgICAgICBi cmVhazsKICAgICBjYXNlICdrJzoKLSAgICAgIGZwdXRzIChjb25kX3N0cmluZyAocmV2ZXJzZV9j b25kaXRpb24gKEdFVF9DT0RFICh4KSkpLCBmaWxlKTsKKyAgICAgIGlmIChHRVRfQ09ERSAoeCkg PT0gTFQgJiYgR0VUX01PREUgKFhFWFAgKHgsIDApKSA9PSBFX0NDWk5tb2RlKQorCWZwdXRzICgi cGwiLCBmaWxlKTsKKyAgICAgIGVsc2UgaWYgKEdFVF9DT0RFICh4KSA9PSBHRSAmJiBHRVRfTU9E RSAoWEVYUCAoeCwgMCkpID09IEVfQ0NaTm1vZGUpCisJZnB1dHMgKCJtaSIsIGZpbGUpOworICAg ICAgZWxzZQorCWZwdXRzIChjb25kX3N0cmluZyAocmV2ZXJzZV9jb25kaXRpb24gKEdFVF9DT0RF ICh4KSkpLCBmaWxlKTsKICAgICAgIGJyZWFrOwogICAgIGNhc2UgJ20nOgogICAgICAgZ2NjX2Fz c2VydCAoR0VUX0NPREUgKHgpID09IENPTlNUX0lOVCk7CkBAIC0xOTIwLDYgKzE5MzAsMjMgQEAg aDgzMDBfcmV0dXJuX2FkZHJfcnR4IChpbnQgY291bnQsIHJ0eCBmcmFtZSkKICAgcmV0dXJuIHJl dDsKIH0KIAorCittYWNoaW5lX21vZGUKK2g4MzAwX3NlbGVjdF9jY19tb2RlIChlbnVtIHJ0eF9j b2RlIGNvbmQsIHJ0eCBvcDAsIHJ0eCBvcDEpCit7CisgIGlmIChvcDEgPT0gY29uc3QwX3J0eAor ICAgICAgJiYgKGNvbmQgPT0gRVEgfHwgY29uZCA9PSBORSB8fCBjb25kID09IExUIHx8IGNvbmQg PT0gR0UpCisgICAgICAmJiAoR0VUX0NPREUgKG9wMCkgPT0gUExVUyB8fCBHRVRfQ09ERSAob3Aw KSA9PSBNSU5VUworICAgICAgICAgIHx8IEdFVF9DT0RFIChvcDApID09IE5FRyB8fCBHRVRfQ09E RSAob3AwKSA9PSBBTkQKKyAgICAgICAgICB8fCBHRVRfQ09ERSAob3AwKSA9PSBJT1IgfHwgR0VU X0NPREUgKG9wMCkgPT0gWE9SCisgICAgICAgICAgfHwgR0VUX0NPREUgKG9wMCkgPT0gTk9UIHx8 IEdFVF9DT0RFIChvcDApID09IEFTSElGVAorCSAgfHwgR0VUX0NPREUgKG9wMCkgPT0gUkVHIHx8 IEdFVF9DT0RFIChvcDApID09IE1VTFQpKQorICAgIHJldHVybiBDQ1pObW9kZTsKKworICByZXR1 cm4gQ0Ntb2RlOworfQorCisjaWYgMAogLyogVXBkYXRlIHRoZSBjb25kaXRpb24gY29kZSBmcm9t IHRoZSBpbnNuLiAgKi8KIAogdm9pZApAQCAtMTk4Niw2ICsyMDEzLDcgQEAgbm90aWNlX3VwZGF0 ZV9jYyAocnR4IGJvZHksIHJ0eF9pbnNuICppbnNuKQogICAgICAgYnJlYWs7CiAgICAgfQogfQor I2VuZGlmCiAMCiAvKiBHaXZlbiB0aGF0IFggb2NjdXJzIGluIGFuIGFkZHJlc3Mgb2YgdGhlIGZv cm0gKHBsdXMgWCBjb25zdGFudCksCiAgICByZXR1cm4gdGhlIHBhcnQgb2YgWCB0aGF0IGlzIGV4 cGVjdGVkIHRvIGJlIGEgcmVnaXN0ZXIuICBUaGVyZSBhcmUKQEAgLTIzNDQsOCArMjM3MiwxOCBA QCBzdGF0aWMgdW5zaWduZWQgaW50CiBoODMwMF9iaW5hcnlfbGVuZ3RoIChydHhfaW5zbiAqaW5z biwgY29uc3QgaDgzMDBfbGVuZ3RoX3RhYmxlICp0YWJsZSkKIHsKICAgcnR4IHNldDsKKyAgcnR4 IHBhdHRlcm47CisKKyAgaWYgKEdFVF9DT0RFIChpbnNuKSAhPSBJTlNOKQorICAgIGdjY191bnJl YWNoYWJsZSAoKTsKIAotICBzZXQgPSBzaW5nbGVfc2V0IChpbnNuKTsKKyAgcGF0dGVybiA9IFBB VFRFUk4gKGluc24pOworICBpZiAoR0VUX0NPREUgKHBhdHRlcm4pID09IFBBUkFMTEVMCisgICAg ICAmJiBHRVRfQ09ERSAoWFZFQ0VYUCAocGF0dGVybiwgMCwgMCkpID09IFNFVAorICAgICAgJiYg R0VUX0NPREUgKFNFVF9TUkMgKFhWRUNFWFAgKHBhdHRlcm4sIDAsIDApKSkgPT0gQ09NUEFSRSkK KyAgICBzZXQgPSBYVkVDRVhQIChwYXR0ZXJuLCAwLCAxKTsKKyAgZWxzZQorICAgIHNldCA9IHNp bmdsZV9zZXQgKGluc24pOwogICBnY2NfYXNzZXJ0IChzZXQpOwogCiAgIGlmIChCSU5BUllfUCAo U0VUX1NSQyAoc2V0KSkpCkBAIC0yNjc4LDcgKzI3MTYsNyBAQCBjb21wdXRlX21vdl9sZW5ndGgg KHJ0eCAqb3BlcmFuZHMpCiAvKiBPdXRwdXQgYW4gYWRkaXRpb24gaW5zbi4gICovCiAKIGNvbnN0 IGNoYXIgKgotb3V0cHV0X3BsdXNzaSAocnR4ICpvcGVyYW5kcykKK291dHB1dF9wbHVzc2kgKHJ0 eCAqb3BlcmFuZHMsIGJvb2wgbmVlZF9mbGFncykKIHsKICAgbWFjaGluZV9tb2RlIG1vZGUgPSBH RVRfTU9ERSAob3BlcmFuZHNbMF0pOwogCkBAIC0yNjk4LDI1ICsyNzM2LDU0IEBAIG91dHB1dF9w bHVzc2kgKHJ0eCAqb3BlcmFuZHMpCiAKICAgICAgIHN3aXRjaCAoKHVuc2lnbmVkIGludCkgaW50 dmFsICYgMHhmZmZmZmZmZikKIAl7CisJLyogSU5DL0RFQyBzZXQgdGhlIGZsYWdzLCBidXQgYWRk cy9zdWJzIGRvIG5vdC4gIFNvIGlmIHdlCisJICAgbmVlZCBmbGFncywgdXNlIHRoZSBmb3JtZXIg YW5kIG5vdCB0aGUgbGF0dGVyLiAgKi8KIAljYXNlIDB4MDAwMDAwMDE6CisJICBpZiAobmVlZF9m bGFncykKKwkgICAgcmV0dXJuICJpbmMubFx0IzEsJVMwIjsKKwkgIGVsc2UKKwkgICAgcmV0dXJu ICJhZGRzXHQlMiwlUzAiOwogCWNhc2UgMHgwMDAwMDAwMjoKLQljYXNlIDB4MDAwMDAwMDQ6Ci0J ICByZXR1cm4gImFkZHNcdCUyLCVTMCI7Ci0KKwkgIGlmIChuZWVkX2ZsYWdzKQorCSAgICByZXR1 cm4gImluYy5sXHQjMiwlUzAiOworCSAgZWxzZQorCSAgICByZXR1cm4gImFkZHNcdCUyLCVTMCI7 CiAJY2FzZSAweGZmZmZmZmZmOgorCSAgaWYgKG5lZWRfZmxhZ3MpCisJICAgIHJldHVybiAiZGVj LmxcdCMxLCVTMCI7CisJICBlbHNlCisJICAgIHJldHVybiAic3Vic1x0JUcyLCVTMCI7CiAJY2Fz ZSAweGZmZmZmZmZlOgorCSAgaWYgKG5lZWRfZmxhZ3MpCisJICAgIHJldHVybiAiZGVjLmxcdCMy LCVTMCI7CisJICBlbHNlCisJICAgIHJldHVybiAic3Vic1x0JUcyLCVTMCI7CisKKwkvKiBUaGVz ZSBzaXggY2FzZXMgaGF2ZSBvcHRpbWl6ZWQgcGF0aHMgd2hlbiB3ZSBkbyBub3QKKwkgICBuZWVk IGZsYWdzLiAgT3RoZXJ3aXNlIHdlIGxldCB0aGVtIGZhbGx0aHJ1LiAgKi8KKwljYXNlIDB4MDAw MDAwMDQ6CisJICBpZiAoIW5lZWRfZmxhZ3MpCisJICAgIHJldHVybiAiYWRkc1x0JTIsJVMwIjsK KwogCWNhc2UgMHhmZmZmZmZmYzoKLQkgIHJldHVybiAic3Vic1x0JUcyLCVTMCI7CisJICBpZiAo IW5lZWRfZmxhZ3MpCisJICAgIHJldHVybiAic3Vic1x0JUcyLCVTMCI7CiAKIAljYXNlIDB4MDAw MTAwMDA6CiAJY2FzZSAweDAwMDIwMDAwOgotCSAgb3BlcmFuZHNbMl0gPSBHRU5fSU5UIChpbnR2 YWwgPj4gMTYpOwotCSAgcmV0dXJuICJpbmMud1x0JTIsJWUwIjsKKwkgIGlmICghbmVlZF9mbGFn cykKKwkgICAgeworCSAgICAgIG9wZXJhbmRzWzJdID0gR0VOX0lOVCAoaW50dmFsID4+IDE2KTsK KwkgICAgICByZXR1cm4gImluYy53XHQlMiwlZTAiOworCSAgICB9CiAKIAljYXNlIDB4ZmZmZjAw MDA6CiAJY2FzZSAweGZmZmUwMDAwOgotCSAgb3BlcmFuZHNbMl0gPSBHRU5fSU5UIChpbnR2YWwg Pj4gMTYpOwotCSAgcmV0dXJuICJkZWMud1x0JUcyLCVlMCI7CisJICBpZiAoIW5lZWRfZmxhZ3Mp CisJICAgIHsKKwkgICAgICBvcGVyYW5kc1syXSA9IEdFTl9JTlQgKGludHZhbCA+PiAxNik7CisJ ICAgICAgcmV0dXJuICJkZWMud1x0JUcyLCVlMCI7CisJICAgIH0KIAl9CiAKICAgICAgIC8qIFNl ZSBpZiB3ZSBjYW4gZmluaXNoIHdpdGggNCBieXRlcy4gICovCkBAIC0yNzQwLDcgKzI4MDcsNyBA QCBvdXRwdXRfcGx1c3NpIChydHggKm9wZXJhbmRzKQogLyogQ29tcHV0ZSB0aGUgbGVuZ3RoIG9m IGFuIGFkZGl0aW9uIGluc24uICAqLwogCiB1bnNpZ25lZCBpbnQKLWNvbXB1dGVfcGx1c3NpX2xl bmd0aCAocnR4ICpvcGVyYW5kcykKK2NvbXB1dGVfcGx1c3NpX2xlbmd0aCAocnR4ICpvcGVyYW5k cywgYm9vbCBuZWVkX2ZsYWdzKQogewogICBtYWNoaW5lX21vZGUgbW9kZSA9IEdFVF9NT0RFIChv cGVyYW5kc1swXSk7CiAKQEAgLTI3NjIsMjEgKzI4MjksMzEgQEAgY29tcHV0ZV9wbHVzc2lfbGVu Z3RoIChydHggKm9wZXJhbmRzKQogCXsKIAljYXNlIDB4MDAwMDAwMDE6CiAJY2FzZSAweDAwMDAw MDAyOgotCWNhc2UgMHgwMDAwMDAwNDoKIAkgIHJldHVybiAyOworCWNhc2UgMHgwMDAwMDAwNDoK KwkgIGlmIChuZWVkX2ZsYWdzKQorCSAgICByZXR1cm4gNjsKKwkgIGVsc2UKKwkgICAgcmV0dXJu IDI7CiAKIAljYXNlIDB4ZmZmZmZmZmY6CiAJY2FzZSAweGZmZmZmZmZlOgotCWNhc2UgMHhmZmZm ZmZmYzoKIAkgIHJldHVybiAyOworCWNhc2UgMHhmZmZmZmZmYzoKKwkgIGlmIChuZWVkX2ZsYWdz KQorCSAgICByZXR1cm4gNjsKKwkgIGVsc2UKKwkgICAgcmV0dXJuIDI7CiAKIAljYXNlIDB4MDAw MTAwMDA6CiAJY2FzZSAweDAwMDIwMDAwOgotCSAgcmV0dXJuIDI7CisJICBpZiAoIW5lZWRfZmxh Z3MpCisJICAgIHJldHVybiAyOwogCiAJY2FzZSAweGZmZmYwMDAwOgogCWNhc2UgMHhmZmZlMDAw MDoKLQkgIHJldHVybiAyOworCSAgaWYgKCFuZWVkX2ZsYWdzKQorCSAgICByZXR1cm4gMjsKIAl9 CiAKICAgICAgIC8qIFNlZSBpZiB3ZSBjYW4gZmluaXNoIHdpdGggNCBieXRlcy4gICovCkBAIC0z MTIyLDcgKzMxOTksNyBAQCBjb21wdXRlX2xvZ2ljYWxfb3BfbGVuZ3RoIChtYWNoaW5lX21vZGUg bW9kZSwgcnR4ICpvcGVyYW5kcykKIAogLyogQ29tcHV0ZSB3aGljaCBmbGFnIGJpdHMgYXJlIHZh bGlkIGFmdGVyIGEgbG9naWNhbCBpbnNuLiAgKi8KIAotZW51bSBhdHRyX2NjCitpbnQKIGNvbXB1 dGVfbG9naWNhbF9vcF9jYyAobWFjaGluZV9tb2RlIG1vZGUsIHJ0eCAqb3BlcmFuZHMpCiB7CiAg IC8qIEZpZ3VyZSBvdXQgdGhlIGxvZ2ljYWwgb3AgdGhhdCB3ZSBuZWVkIHRvIHBlcmZvcm0uICAq LwpAQCAtMzE5NSw2ICszMjcyLDcgQEAgY29tcHV0ZV9sb2dpY2FsX29wX2NjIChtYWNoaW5lX21v ZGUgbW9kZSwgcnR4ICpvcGVyYW5kcykKICAgcmV0dXJuIGNjOwogfQogDAorI2lmIDAKIC8qIEV4 cGFuZCBhIGNvbmRpdGlvbmFsIGJyYW5jaC4gICovCiAKIHZvaWQKQEAgLTMyMzQsNiArMzMxMiw3 IEBAIGg4MzAwX2V4cGFuZF9zdG9yZSAocnR4IG9wZXJhbmRzW10pCiAgIHRtcCA9IGdlbl9ydHhf Zm10X2VlIChjb2RlLCBHRVRfTU9ERSAoZGVzdCksIGNjMF9ydHgsIGNvbnN0MF9ydHgpOwogICBl bWl0X2luc24gKGdlbl9ydHhfU0VUIChkZXN0LCB0bXApKTsKIH0KKyNlbmRpZgogDAogLyogU2hp ZnRzLgogCkBAIC00Mjk5LDcgKzQzNzgsNyBAQCBjb21wdXRlX2Ffc2hpZnRfbGVuZ3RoIChydHgg aW5zbiBBVFRSSUJVVEVfVU5VU0VELCBydHggKm9wZXJhbmRzKQogCiAvKiBDb21wdXRlIHdoaWNo IGZsYWcgYml0cyBhcmUgdmFsaWQgYWZ0ZXIgYSBzaGlmdCBpbnNuLiAgKi8KIAotZW51bSBhdHRy X2NjCitpbnQKIGNvbXB1dGVfYV9zaGlmdF9jYyAocnR4IGluc24gQVRUUklCVVRFX1VOVVNFRCwg cnR4ICpvcGVyYW5kcykKIHsKICAgcnR4IHNoaWZ0ID0gb3BlcmFuZHNbM107CkBAIC01NTM4LDQg KzU2MTcsNyBAQCBoODMwMF9wdXNoX3JvdW5kaW5nIChwb2x5X2ludDY0IGJ5dGVzKQogI3VuZGVm IFRBUkdFVF9IQVZFX1NQRUNVTEFUSU9OX1NBRkVfVkFMVUUKICNkZWZpbmUgVEFSR0VUX0hBVkVf U1BFQ1VMQVRJT05fU0FGRV9WQUxVRSBzcGVjdWxhdGlvbl9zYWZlX3ZhbHVlX25vdF9uZWVkZWQK IAorI3VuZGVmIFRBUkdFVF9GTEFHU19SRUdOVU0KKyNkZWZpbmUgVEFSR0VUX0ZMQUdTX1JFR05V TSAxMgorCiBzdHJ1Y3QgZ2NjX3RhcmdldCB0YXJnZXRtID0gVEFSR0VUX0lOSVRJQUxJWkVSOwpk aWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9oODMwMC9oODMwMC5oIGIvZ2NjL2NvbmZpZy9oODMwMC9o ODMwMC5oCmluZGV4IGJmMjBjZTI4ZTI0Li45OWQ4NWZmODEzOCAxMDA2NDQKLS0tIGEvZ2NjL2Nv bmZpZy9oODMwMC9oODMwMC5oCisrKyBiL2djYy9jb25maWcvaDgzMDAvaDgzMDAuaApAQCAtMTk1 LDE0ICsxOTUsMTQgQEAgZXh0ZXJuIGNvbnN0IGNoYXIgKiBjb25zdCAqaDhfcmVnX25hbWVzOwog ICAgZWxpbWluYXRlZCBkdXJpbmcgcmVsb2FkaW5nIGluIGZhdm9yIG9mIGVpdGhlciB0aGUgc3Rh Y2sgb3IgZnJhbWUKICAgIHBvaW50ZXIuICAqLwogCi0jZGVmaW5lIEZJUlNUX1BTRVVET19SRUdJ U1RFUiAxMgorI2RlZmluZSBGSVJTVF9QU0VVRE9fUkVHSVNURVIgMTMKIAogLyogMSBmb3IgcmVn aXN0ZXJzIHRoYXQgaGF2ZSBwZXJ2YXNpdmUgc3RhbmRhcmQgdXNlcwogICAgYW5kIGFyZSBub3Qg YXZhaWxhYmxlIGZvciB0aGUgcmVnaXN0ZXIgYWxsb2NhdG9yLiAgKi8KIAogI2RlZmluZSBGSVhF RF9SRUdJU1RFUlMJCQkJXAotLyogcjAgcjEgcjIgcjMgcjQgcjUgcjYgcjcgbWFjIGFwIHJhcCBm cCAqLwlcCi0gIHsgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMSwgIDAsIDEsICAxLCAxIH0KKy8qIHIw IHIxIHIyIHIzIHI0IHI1IHI2IHI3IG1hYyBhcCByYXAgZnAgY2MgKi8JXAorICB7IDAsIDAsIDAs IDAsIDAsIDAsIDAsIDEsICAwLCAxLCAgMSwgMSwgMSB9CiAKIC8qIDEgZm9yIHJlZ2lzdGVycyBu b3QgYXZhaWxhYmxlIGFjcm9zcyBmdW5jdGlvbiBjYWxscy4KICAgIFRoZXNlIG11c3QgaW5jbHVk ZSB0aGUgRklYRURfUkVHSVNURVJTIGFuZCBhbHNvIGFueQpAQCAtMjE2LDExICsyMTYsMTEgQEAg ZXh0ZXJuIGNvbnN0IGNoYXIgKiBjb25zdCAqaDhfcmVnX25hbWVzOwogCiAjZGVmaW5lIENBTExf VVNFRF9SRUdJU1RFUlMJCQlcCiAvKiByMCByMSByMiByMyByNCByNSByNiByNyBtYWMgYXAgcmFw IGZwICovCVwKLSAgeyAxLCAxLCAxLCAxLCAwLCAwLCAwLCAxLCAgMSwgMSwgIDEsIDEgfQorICB7 IDEsIDEsIDEsIDEsIDAsIDAsIDAsIDEsICAxLCAxLCAgMSwgMSwgMSB9CiAKICNkZWZpbmUgUkVH X0FMTE9DX09SREVSCQkJCVwKIC8qIHIwIHIxIHIyIHIzIHI0IHI1IHI2IHI3IG1hYyBhcCByYXAg IGZwICovCVwKLSAgeyAyLCAzLCAwLCAxLCA0LCA1LCA2LCA4LCAgNywgOSwgMTAsIDExIH0KKyAg eyAyLCAzLCAwLCAxLCA0LCA1LCA2LCA4LCAgNywgOSwgMTAsIDExLCAxMiB9CiAKIC8qIEEgQyBl eHByZXNzaW9uIHRoYXQgaXMgbm9uemVybyBpZiBoYXJkIHJlZ2lzdGVyIE5FV19SRUcgY2FuIGJl CiAgICBjb25zaWRlcmVkIGZvciB1c2UgYXMgYSByZW5hbWUgcmVnaXN0ZXIgZm9yIE9MRF9SRUcg cmVnaXN0ZXIgKi8KQEAgLTUyMSw2ICs1MjEsOCBAQCBzdHJ1Y3QgY3VtX2FyZwogI2RlZmluZSBN T1ZFX01BWAk0CiAjZGVmaW5lIE1BWF9NT1ZFX01BWAk0CiAKKyNkZWZpbmUgU0VMRUNUX0NDX01P REUoT1AsIFgsIFkpICAgICAgIGg4MzAwX3NlbGVjdF9jY19tb2RlIChPUCwgWCwgWSkKKwogLyog Tm9uemVybyBpZiBhY2Nlc3MgdG8gbWVtb3J5IGJ5IGJ5dGVzIGlzIHNsb3cgYW5kIHVuZGVzaXJh YmxlLiAgKi8KICNkZWZpbmUgU0xPV19CWVRFX0FDQ0VTUyBUQVJHRVRfU0xPV0JZVEUKIApAQCAt NjMzLDcgKzYzNSw3IEBAIHN0cnVjdCBjdW1fYXJnCiAgICBUaGlzIHNlcXVlbmNlIGlzIGluZGV4 ZWQgYnkgY29tcGlsZXIncyBoYXJkLXJlZ2lzdGVyLW51bWJlciAoc2VlIGFib3ZlKS4gICovCiAK ICNkZWZpbmUgUkVHSVNURVJfTkFNRVMgXAoteyAicjAiLCAicjEiLCAicjIiLCAicjMiLCAicjQi LCAicjUiLCAicjYiLCAic3AiLCAibWFjIiwgImFwIiwgInJhcCIsICJmcCIgfQoreyAicjAiLCAi cjEiLCAicjIiLCAicjMiLCAicjQiLCAicjUiLCAicjYiLCAic3AiLCAibWFjIiwgImFwIiwgInJh cCIsICJmcCIsICJjYyIgfQogCiAjZGVmaW5lIEFERElUSU9OQUxfUkVHSVNURVJfTkFNRVMgXAog eyB7ImVyMCIsIDB9LCB7ImVyMSIsIDF9LCB7ImVyMiIsIDJ9LCB7ImVyMyIsIDN9LCB7ImVyNCIs IDR9LCBcCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2g4MzAwL2g4MzAwLm1kIGIvZ2NjL2NvbmZp Zy9oODMwMC9oODMwMC5tZAppbmRleCA0NmFiMjQ0MjU3Ni4uN2VkMjQ1M2Y0MzMgMTAwNjQ0Ci0t LSBhL2djYy9jb25maWcvaDgzMDAvaDgzMDAubWQKKysrIGIvZ2NjL2NvbmZpZy9oODMwMC9oODMw MC5tZApAQCAtNjUsNyArNjUsOCBAQAogICAgKE1BQ19SRUcJIDgpCiAgICAoQVBfUkVHCSA5KQog ICAgKFJBUF9SRUcJMTApCi0gICAoRlBfUkVHCTExKV0pCisgICAoRlBfUkVHCTExKQorICAgKEND X1JFRwkxMildKQogCiA7OyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiA7OyBBVFRSSUJVVEVTCkBAIC0yMTEsNCAr MjEyLDQgQEAKIChpbmNsdWRlICJzaGlmdHJvdGF0ZS5tZCIpCiAoaW5jbHVkZSAiYml0ZmllbGQu bWQiKQogKGluY2x1ZGUgImNvbWJpbmVyLm1kIikKLShpbmNsdWRlICJwZWVwaG9sZXMubWQiKQor OzsoaW5jbHVkZSAicGVlcGhvbGVzLm1kIikKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvaDgzMDAv anVtcGNhbGwubWQgYi9nY2MvY29uZmlnL2g4MzAwL2p1bXBjYWxsLm1kCmluZGV4IDY1MGI1ZTZm YjcwLi42YzcyNzI0YjY2OSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9oODMwMC9qdW1wY2FsbC5t ZAorKysgYi9nY2MvY29uZmlnL2g4MzAwL2p1bXBjYWxsLm1kCkBAIC00LDU3ICs0LDQxIEBACiAK IDs7IENvbmRpdGlvbmFsIGp1bXAgaW5zdHJ1Y3Rpb25zCiAKLShkZWZpbmVfZXhwYW5kICJjYnJh bmNocWk0IgotICBbKHVzZSAobWF0Y2hfb3BlcmF0b3IgMCAib3JkZXJlZF9jb21wYXJpc29uX29w ZXJhdG9yIgotICAgICAgICAgWyhtYXRjaF9vcGVyYW5kOlFJIDEgImg4MzAwX2RzdF9vcGVyYW5k IiAiIikKLSAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpRSSAyICJoODMwMF9zcmNfb3BlcmFuZCIg IiIpXSkpCi0gICAodXNlIChtYXRjaF9vcGVyYW5kIDMgIiIpKV0KLSAgIiIKLSAgewotICAgIGg4 MzAwX2V4cGFuZF9icmFuY2ggKG9wZXJhbmRzKTsKLSAgICBET05FOwotICB9KQotCi0oZGVmaW5l X2V4cGFuZCAiY2JyYW5jaGhpNCIKLSAgWyh1c2UgKG1hdGNoX29wZXJhdG9yIDAgIm9yZGVyZWRf Y29tcGFyaXNvbl9vcGVyYXRvciIKLSAgICAgICAgIFsobWF0Y2hfb3BlcmFuZDpISSAxICJoODMw MF9kc3Rfb3BlcmFuZCIgIiIpCi0gICAgICAgICAgKG1hdGNoX29wZXJhbmQ6SEkgMiAiaDgzMDBf c3JjX29wZXJhbmQiICIiKV0pKQotICAgKHVzZSAobWF0Y2hfb3BlcmFuZCAzICIiKSldCi0gICIi Ci0gIHsKLSAgICBoODMwMF9leHBhbmRfYnJhbmNoIChvcGVyYW5kcyk7Ci0gICAgRE9ORTsKLSAg fSkKKyhkZWZpbmVfZXhwYW5kICJjYnJhbmNoPG1vZGU+NCIKKyAgWyhzZXQgKHBjKQorCShpZl90 aGVuX2Vsc2UgKG1hdGNoX29wZXJhdG9yIDAgIm9yZGVyZWRfY29tcGFyaXNvbl9vcGVyYXRvciIK KwkJICAgICAgICBbKG1hdGNoX29wZXJhbmQ6UUhTSSAxICJoODMwMF9kc3Rfb3BlcmFuZCIpCisJ CQkgKG1hdGNoX29wZXJhbmQ6UUhTSSAyICJoODMwMF9zcmNfb3BlcmFuZCIpXSkKKwkJICAgICAg KGxhYmVsX3JlZiAobWF0Y2hfb3BlcmFuZCAzICIiKSkKKwkJICAgICAgKHBjKSkpXQorICAiIikK IAotKGRlZmluZV9leHBhbmQgImNicmFuY2hzaTQiCi0gIFsodXNlIChtYXRjaF9vcGVyYXRvciAw ICJvcmRlcmVkX2NvbXBhcmlzb25fb3BlcmF0b3IiCi0gICAgICAgICBbKG1hdGNoX29wZXJhbmQ6 U0kgMSAiaDgzMDBfZHN0X29wZXJhbmQiICIiKQotICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlNJ IDIgImg4MzAwX3NyY19vcGVyYW5kIiAiIildKSkKLSAgICh1c2UgKG1hdGNoX29wZXJhbmQgMyAi IikpXQorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKmJyYW5jaCIKKyAgWyhzZXQgKHBjKQorCShp Zl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhdG9yIDAgImNvbXBhcmlzb25fb3BlcmF0b3IiCisJCSAg ICAgICBbKG1hdGNoX29wZXJhbmQ6UUhTSSAxICJoODMwMF9kc3Rfb3BlcmFuZCIgInJRIikKKwkJ CShtYXRjaF9vcGVyYW5kOlFIU0kgMiAiaDgzMDBfc3JjX29wZXJhbmQiICJyUWkiKV0pCisJCSAg ICAgIChsYWJlbF9yZWYgKG1hdGNoX29wZXJhbmQgMyAiIiAiIikpCisJCSAgICAgIChwYykpKV0K ICAgIiIKLSAgewotICAgIGg4MzAwX2V4cGFuZF9icmFuY2ggKG9wZXJhbmRzKTsKLSAgICBET05F OwotICB9KQorICAiIyIKKyAgInJlbG9hZF9jb21wbGV0ZWQiCisgIFsoc2V0IChyZWc6Q0MgQ0Nf UkVHKQorCShjb21wYXJlOkNDIChtYXRjaF9kdXAgMSkgKG1hdGNoX2R1cCAyKSkpCisgICAoc2V0 IChwYykKKwkoaWZfdGhlbl9lbHNlIChtYXRjaF9vcF9kdXAgMAorCQkgICAgICAgWyhyZWc6Q0Mg Q0NfUkVHKSAoY29uc3RfaW50IDApXSkKKwkJICAgICAgKGxhYmVsX3JlZiAobWF0Y2hfZHVwIDMp KSAocGMpKSldCisgICIiKQogCi0oZGVmaW5lX2luc24gImJyYW5jaF90cnVlIgorKGRlZmluZV9p bnNuICIqYnJhbmNoXzEiCiAgIFsoc2V0IChwYykKIAkoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVy YXRvciAxICJjb21wYXJpc29uX29wZXJhdG9yIgotCQkgICAgICAgWyhjYzApIChjb25zdF9pbnQg MCldKQorCQkgICAgICAgWyhyZWc6Q0MgQ0NfUkVHKSAoY29uc3RfaW50IDApXSkKIAkJICAgICAg KGxhYmVsX3JlZiAobWF0Y2hfb3BlcmFuZCAwICIiICIiKSkKIAkJICAgICAgKHBjKSkpXQotICAi IgorICAicmVsb2FkX2NvbXBsZXRlZCIKIHsKLSAgaWYgKChjY19zdGF0dXMuZmxhZ3MgJiBDQ19P VkVSRkxPV19VTlVTQUJMRSkgIT0gMAotICAgICAgJiYgKEdFVF9DT0RFIChvcGVyYW5kc1sxXSkg PT0gR1QKLQkgIHx8IEdFVF9DT0RFIChvcGVyYW5kc1sxXSkgPT0gR0UKLQkgIHx8IEdFVF9DT0RF IChvcGVyYW5kc1sxXSkgPT0gTEUKLQkgIHx8IEdFVF9DT0RFIChvcGVyYW5kc1sxXSkgPT0gTFQp KQotICAgIHsKLSAgICAgIGNjX3N0YXR1cy5mbGFncyAmPSB+Q0NfT1ZFUkZMT1dfVU5VU0FCTEU7 Ci0gICAgICByZXR1cm4gMDsKLSAgICB9Ci0KICAgaWYgKGdldF9hdHRyX2xlbmd0aCAoaW5zbikg PT0gMikKICAgICByZXR1cm4gImIlajEJJWwwIjsKICAgZWxzZSBpZiAoZ2V0X2F0dHJfbGVuZ3Ro IChpbnNuKSA9PSA0KQpAQCAtNjUsMjQgKzQ5LDE1IEBACiAgWyhzZXRfYXR0ciAidHlwZSIgImJy YW5jaCIpCiAgICAoc2V0X2F0dHIgImNjIiAibm9uZSIpXSkKIAotKGRlZmluZV9pbnNuICJicmFu Y2hfZmFsc2UiCisKKyhkZWZpbmVfaW5zbiAiKmJyYW5jaF8xX2ZhbHNlIgogICBbKHNldCAocGMp CiAJKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmF0b3IgMSAiY29tcGFyaXNvbl9vcGVyYXRvciIK LQkJICAgICAgIFsoY2MwKSAoY29uc3RfaW50IDApXSkKKwkJICAgICAgIFsocmVnOkNDIENDX1JF RykgKGNvbnN0X2ludCAwKV0pCiAJCSAgICAgIChwYykKIAkJICAgICAgKGxhYmVsX3JlZiAobWF0 Y2hfb3BlcmFuZCAwICIiICIiKSkpKV0KLSAgIiIKKyAgInJlbG9hZF9jb21wbGV0ZWQiCiB7Ci0g IGlmICgoY2Nfc3RhdHVzLmZsYWdzICYgQ0NfT1ZFUkZMT1dfVU5VU0FCTEUpICE9IDAKLSAgICAg ICYmIChHRVRfQ09ERSAob3BlcmFuZHNbMV0pID09IEdUCi0JICB8fCBHRVRfQ09ERSAob3BlcmFu ZHNbMV0pID09IEdFCi0JICB8fCBHRVRfQ09ERSAob3BlcmFuZHNbMV0pID09IExFCi0JICB8fCBH RVRfQ09ERSAob3BlcmFuZHNbMV0pID09IExUKSkKLSAgICB7Ci0gICAgICBjY19zdGF0dXMuZmxh Z3MgJj0gfkNDX09WRVJGTE9XX1VOVVNBQkxFOwotICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCiAg IGlmIChnZXRfYXR0cl9sZW5ndGggKGluc24pID09IDIpCiAgICAgcmV0dXJuICJiJWsxCSVsMCI7 CiAgIGVsc2UgaWYgKGdldF9hdHRyX2xlbmd0aCAoaW5zbikgPT0gNCkKQEAgLTkwLDcgKzY1LDcg QEAKICAgZWxzZQogICAgIHJldHVybiAiYiVqMQkuTGg4QlIlPVw7am1wCUAlbDBcXG4uTGg4QlIl PToiOwogfQotICBbKHNldF9hdHRyICJ0eXBlIiAiYnJhbmNoIikKKyBbKHNldF9hdHRyICJ0eXBl IiAiYnJhbmNoIikKICAgIChzZXRfYXR0ciAiY2MiICJub25lIildKQogCiA7OyBUaGUgYnJhYmMv YnJhYnMgcGF0dGVybnMgaGF2ZSBiZWVuIGRpc2FibGVkIGJlY2F1c2UgdGhlaXIgbGVuZ3RoIGNv bXB1dGF0aW9uCkBAIC0xMjUsOCArMTAwLDcgQEAKICAgICB9CiB9CiAgIFsoc2V0X2F0dHIgInR5 cGUiICJiaXRicmFuY2giKQotICAgKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJiaXRicmFuY2gi KQotICAgKHNldF9hdHRyICJjYyIgIm5vbmUiKV0pCisgICAoc2V0X2F0dHIgImxlbmd0aF90YWJs ZSIgImJpdGJyYW5jaCIpXSkKIAogKGRlZmluZV9pbnNuICIqYnJhYnMiCiAgIFsoc2V0IChwYykK QEAgLTE1MCw4ICsxMjQsNyBAQAogICAgIH0KIH0KICAgWyhzZXRfYXR0ciAidHlwZSIgImJpdGJy YW5jaCIpCi0gICAoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgImJpdGJyYW5jaCIpCi0gICAoc2V0 X2F0dHIgImNjIiAibm9uZSIpXSkKKyAgIChzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAiYml0YnJh bmNoIildKQogCiA7OyBVbmNvbmRpdGlvbmFsIGFuZCBvdGhlciBqdW1wIGluc3RydWN0aW9ucy4K IApkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9oODMwMC9sb2dpY2FsLm1kIGIvZ2NjL2NvbmZpZy9o ODMwMC9sb2dpY2FsLm1kCmluZGV4IDdkMjRmYWQzNjBhLi5lNGQzZDMzMGI2ZSAxMDA2NDQKLS0t IGEvZ2NjL2NvbmZpZy9oODMwMC9sb2dpY2FsLm1kCisrKyBiL2djYy9jb25maWcvaDgzMDAvbG9n aWNhbC5tZApAQCAtMjQsMzAgKzI0LDU5IEBACiAgICAgb3BlcmFuZHNbMl0gPSBHRU5fSU5UICgo SU5UVkFMIChvcGVyYW5kc1syXSkpID4+IDgpOwogICB9KQogCi0oZGVmaW5lX2luc24gIiphbmRx aTNfMiIKKyhkZWZpbmVfaW5zbiAiYmNscmhpX21zeCIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6 SEkgMCAiYml0X3JlZ2lzdGVyX2luZGlyZWN0X29wZXJhbmQiICI9bSIpCisJKGFuZDpISSAobWF0 Y2hfb3BlcmFuZDpISSAxICJiaXRfcmVnaXN0ZXJfaW5kaXJlY3Rfb3BlcmFuZCIgIiUwIikKKwkJ KG1hdGNoX29wZXJhbmQ6SEkgMiAic2luZ2xlX3plcm9fb3BlcmFuZCIgIlkwIikpKV0KKyAgIlRB UkdFVF9IODMwMFNYIgorICAiYmNsclxcdCVXMiwlMCIKKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAi OCIpXSkKKworKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKmFuZHFpM18yIgogICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpRSSAwICJiaXRfb3BlcmFuZCIgIj1VLHJRLHIiKQogCShhbmQ6UUkgKG1hdGNo X29wZXJhbmQ6UUkgMSAiYml0X29wZXJhbmQiICIlMCwwLFdVIikKIAkJKG1hdGNoX29wZXJhbmQ6 UUkgMiAiaDgzMDBfc3JjX29wZXJhbmQiICJZMCxyUWksSVAxPlgiKSkpXQogICAiVEFSR0VUX0g4 MzAwU1giCisgICIjIgorICAicmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAo bWF0Y2hfZHVwIDApIChhbmQ6UUkgKG1hdGNoX2R1cCAxKSAobWF0Y2hfZHVwIDIpKSkKKwkgICAg ICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXSldKQorCisoZGVmaW5lX2luc24gIiphbmRxaTNf Ml9jbG9iYmVyX2ZsYWdzIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpRSSAwICJiaXRfb3BlcmFu ZCIgIj1VLHJRLHIiKQorCShhbmQ6UUkgKG1hdGNoX29wZXJhbmQ6UUkgMSAiYml0X29wZXJhbmQi ICIlMCwwLFdVIikKKwkJKG1hdGNoX29wZXJhbmQ6UUkgMiAiaDgzMDBfc3JjX29wZXJhbmQiICJZ MCxyUWksSVAxPlgiKSkpCisgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXQorICAiVEFSR0VU X0g4MzAwU1giCiAgICJACiAgICBiY2xyXFx0ICVXMiwlUjAKICAgIGFuZCAgJVgyLCVYMAogICAg YmZsZCAlMiwlMSwlUjAiCiAgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjgsKiw4IikKLSAgIChzZXRf YXR0ciAibGVuZ3RoX3RhYmxlIiAiKixsb2dpY2IsKiIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9u ZV8waGl0LHNldF96bnYsbm9uZV8waGl0IildKQorICAgKHNldF9hdHRyICJsZW5ndGhfdGFibGUi ICIqLGxvZ2ljYiwqIildKQogCi0oZGVmaW5lX2luc24gImFuZHFpM18xIgorKGRlZmluZV9pbnNu X2FuZF9zcGxpdCAiYW5kcWkzXzEiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgImJpdF9v cGVyYW5kIiAiPVUsciIpCiAJKGFuZDpRSSAobWF0Y2hfb3BlcmFuZDpRSSAxICJiaXRfb3BlcmFu ZCIgIiUwLDAiKQogCQkobWF0Y2hfb3BlcmFuZDpRSSAyICJoODMwMF9zcmNfb3BlcmFuZCIgIlkw LHJuIikpKV0KICAgInJlZ2lzdGVyX29wZXJhbmQgKG9wZXJhbmRzWzBdLCBRSW1vZGUpCiAgICB8 fCBzaW5nbGVfemVyb19vcGVyYW5kIChvcGVyYW5kc1syXSwgUUltb2RlKSIKKyAgIiMiCisgICJy ZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkgKGFuZDpR SSAobWF0Y2hfZHVwIDEpIChtYXRjaF9kdXAgMikpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0Mg Q0NfUkVHKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiYW5kcWkzXzFfY2xvYmJlcl9mbGFncyIKKyAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6UUkgMCAiYml0X29wZXJhbmQiICI9VSxyIikKKwkoYW5kOlFJ IChtYXRjaF9vcGVyYW5kOlFJIDEgImJpdF9vcGVyYW5kIiAiJTAsMCIpCisJCShtYXRjaF9vcGVy YW5kOlFJIDIgImg4MzAwX3NyY19vcGVyYW5kIiAiWTAscm4iKSkpCisgICAoY2xvYmJlciAocmVn OkNDIENDX1JFRykpXQorICAicmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbMF0sIFFJbW9kZSkK KyAgIHx8IHNpbmdsZV96ZXJvX29wZXJhbmQgKG9wZXJhbmRzWzJdLCBRSW1vZGUpIgogICAiQAog ICAgYmNsciAlVzIsJVIwCiAgICBhbmQgICVYMiwlWDAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aCIg IjIsOCIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZV8waGl0LHNldF96bnYiKV0pCisgIFsoc2V0 X2F0dHIgImxlbmd0aCIgIjIsOCIpXSkKIAogKGRlZmluZV9leHBhbmQgImFuZDxtb2RlPjMiCiAg IFsoc2V0IChtYXRjaF9vcGVyYW5kOlFIU0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCkBAIC01 Niw3ICs4NSw3IEBACiAgICIiCiAgICIiKQogCi0oZGVmaW5lX2luc24gIiphbmRvcjxtb2RlPjMi CisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqYW5kb3I8bW9kZT4zIgogICBbKHNldCAobWF0Y2hf b3BlcmFuZDpRSFNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCiAJKGlvcjpRSFNJIChhbmQ6 UUhTSSAobWF0Y2hfb3BlcmFuZDpRSFNJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJyIikKIAkJCSAg ICAobWF0Y2hfb3BlcmFuZDpRSFNJIDMgInNpbmdsZV9vbmVfb3BlcmFuZCIgIm4iKSkKQEAgLTY1 LDYgKzk0LDIzIEBACiAgICAgfHwgPE1PREU+bW9kZSA9PSBISW1vZGUKICAgICB8fCAoPE1PREU+ bW9kZSA9PSBTSW1vZGUKIAkmJiAoSU5UVkFMIChvcGVyYW5kc1szXSkgJiAweGZmZmYpICE9IDAp KSIKKyAgIiMiCisgICJyZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRj aF9kdXAgMCkgKGlvcjpRSFNJIChhbmQ6UUhTSSAobWF0Y2hfZHVwIDIpCisJCQkJCQkgICAgICht YXRjaF9kdXAgMykpCisJCQkJCSAgIChtYXRjaF9kdXAgMSkpKQorCSAgICAgIChjbG9iYmVyIChy ZWc6Q0MgQ0NfUkVHKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKmFuZG9yPG1vZGU+M19jbG9iYmVy X2ZsYWdzIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpRSFNJIDAgInJlZ2lzdGVyX29wZXJhbmQi ICI9ciIpCisJKGlvcjpRSFNJIChhbmQ6UUhTSSAobWF0Y2hfb3BlcmFuZDpRSFNJIDIgInJlZ2lz dGVyX29wZXJhbmQiICJyIikKKwkJCSAgICAobWF0Y2hfb3BlcmFuZDpRSFNJIDMgInNpbmdsZV9v bmVfb3BlcmFuZCIgIm4iKSkKKwkJICAobWF0Y2hfb3BlcmFuZDpRSFNJIDEgInJlZ2lzdGVyX29w ZXJhbmQiICIwIikpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0KKyAgIig8TU9ERT5t b2RlID09IFFJbW9kZQorICAgIHx8IDxNT0RFPm1vZGUgPT0gSEltb2RlCisgICAgfHwgKDxNT0RF Pm1vZGUgPT0gU0ltb2RlCisJJiYgKElOVFZBTCAob3BlcmFuZHNbM10pICYgMHhmZmZmKSAhPSAw KSkiCiAgIHsKICAgICBpZiAoPE1PREU+bW9kZSA9PSBRSW1vZGUpCiAgICAgICByZXR1cm4gImJs ZFxcdCVWMywlWDJcO2JvclxcdCVWMywlWDBcO2JzdFxcdCVWMywlWDAiOwpAQCAtOTYsMTMgKzE0 MiwyOSBAQAogICB9CiAgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjYiKV0pCiAKLShkZWZpbmVfaW5z biAiKmFuZG9yc2kzX3NoaWZ0XzgiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqYW5kb3JzaTNf c2hpZnRfOCIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIg Ij1yIikKIAkoaW9yOlNJIChhbmQ6U0kgKGFzaGlmdDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAyICJy ZWdpc3Rlcl9vcGVyYW5kIiAiciIpCiAJCQkJICAgKGNvbnN0X2ludCA4KSkKIAkJCShjb25zdF9p bnQgNjUyODApKQogCQkobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIp KSldCiAgICIiCisgICIjIgorICAicmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNl dCAobWF0Y2hfZHVwIDApIChpb3I6U0kgKGFuZDpTSSAoYXNoaWZ0OlNJIChtYXRjaF9kdXAgMikK KwkJCQkJCQkgICAgKGNvbnN0X2ludCA4KSkKKwkJCQkJCSAoY29uc3RfaW50IDY1MjgwKSkKKwkJ CQkJIChtYXRjaF9kdXAgMSkpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0p CisKKyhkZWZpbmVfaW5zbiAiKmFuZG9yc2kzX3NoaWZ0XzhfY2xvYmJlcl9mbGFncyIKKyAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKKwkoaW9yOlNJ IChhbmQ6U0kgKGFzaGlmdDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAyICJyZWdpc3Rlcl9vcGVyYW5k IiAiciIpCisJCQkJICAgKGNvbnN0X2ludCA4KSkKKwkJCShjb25zdF9pbnQgNjUyODApKQorCQko bWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpKSkKKyAgIChjbG9iYmVy IChyZWc6Q0MgQ0NfUkVHKSldCisgICIiCiAgICJvci5iXFx0JXcyLCV4MCIKICAgWyhzZXRfYXR0 ciAibGVuZ3RoIiAiMiIpXSkKIApAQCAtMTE4LDM2ICsxODAsNDEgQEAKICAgeyByZXR1cm4gPENP REU+ID09IElPUiA/ICJic2V0XFx0JVYyLCUwIiA6ICJibm90XFx0JVYyLCUwIjsgfQogICBbKHNl dF9hdHRyICJsZW5ndGgiICI4IildKQogCi0oZGVmaW5lX3NwbGl0Ci0gIFsoc2V0IChtYXRjaF9v cGVyYW5kOkhJIDAgImJpdF9yZWdpc3Rlcl9pbmRpcmVjdF9vcGVyYW5kIikKLQkob3JzOkhJICht YXRjaF9vcGVyYW5kOkhJIDEgImJpdF9yZWdpc3Rlcl9pbmRpcmVjdF9vcGVyYW5kIikKLQkJKG1h dGNoX29wZXJhbmQ6SEkgMiAic2luZ2xlX29uZV9vcGVyYW5kIikpKV0KLSAgIlRBUkdFVF9IODMw MFNYICYmIGFicyAoSU5UVkFMIChvcGVyYW5kc1syXSkpID4gMHhmZiIKLSAgWyhzZXQgKG1hdGNo X2R1cCAwKQotCShhbmQ6UUkgKG1hdGNoX2R1cCAxKQotCQkobWF0Y2hfZHVwIDIpKSldCi0gIHsK LSAgICBvcGVyYW5kc1swXSA9IGFkanVzdF9hZGRyZXNzIChvcGVyYW5kc1swXSwgUUltb2RlLCAw KTsKLSAgICBvcGVyYW5kc1sxXSA9IGFkanVzdF9hZGRyZXNzIChvcGVyYW5kc1sxXSwgUUltb2Rl LCAwKTsKLSAgICBvcGVyYW5kc1syXSA9IEdFTl9JTlQgKChJTlRWQUwgKG9wZXJhbmRzWzJdKSkg Pj4gOCk7Ci0gIH0pCisoZGVmaW5lX2luc24gImI8Y29kZT5oaV9tc3giCisgIFsoc2V0IChtYXRj aF9vcGVyYW5kOkhJIDAgImJpdF9yZWdpc3Rlcl9pbmRpcmVjdF9vcGVyYW5kIiAiPW0iKQorCShv cnM6SEkgKG1hdGNoX29wZXJhbmQ6SEkgMSAiYml0X3JlZ2lzdGVyX2luZGlyZWN0X29wZXJhbmQi ICIlMCIpCisJCShtYXRjaF9vcGVyYW5kOkhJIDIgInNpbmdsZV9vbmVfb3BlcmFuZCIgIlkyIikp KV0KKyAgIlRBUkdFVF9IODMwMFNYIgorICB7IHJldHVybiA8Q09ERT4gPT0gSU9SID8gImJzZXRc XHQlVjIsJTAiIDogImJub3RcXHQlVjIsJTAiOyB9CisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjgi KV0pCiAKLShkZWZpbmVfaW5zbiAiPGNvZGU+cWkzXzEiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0 ICI8Y29kZT5xaTNfMSIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UUkgMCAiYml0X29wZXJhbmQi ICI9VSxyUSIpCiAJKG9yczpRSSAobWF0Y2hfb3BlcmFuZDpRSSAxICJiaXRfb3BlcmFuZCIgIiUw LDAiKQogCQkobWF0Y2hfb3BlcmFuZDpRSSAyICJoODMwMF9zcmNfb3BlcmFuZCIgIlkyLHJRaSIp KSldCiAgICJUQVJHRVRfSDgzMDBTWCB8fCByZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1swXSwg UUltb2RlKQogICAgfHwgc2luZ2xlX29uZV9vcGVyYW5kIChvcGVyYW5kc1syXSwgUUltb2RlKSIK KyAgIiMiCisgICJyZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9k dXAgMCkgKG9yczpRSSAobWF0Y2hfZHVwIDEpIChtYXRjaF9kdXAgMikpKQorCSAgICAgIChjbG9i YmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiPGNvZGU+cWkzXzFfY2xv YmJlcl9mbGFncyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UUkgMCAiYml0X29wZXJhbmQiICI9 VSxyUSIpCisJKG9yczpRSSAobWF0Y2hfb3BlcmFuZDpRSSAxICJiaXRfb3BlcmFuZCIgIiUwLDAi KQorCQkobWF0Y2hfb3BlcmFuZDpRSSAyICJoODMwMF9zcmNfb3BlcmFuZCIgIlkyLHJRaSIpKSkK KyAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldCisgICJUQVJHRVRfSDgzMDBTWCB8fCByZWdp c3Rlcl9vcGVyYW5kIChvcGVyYW5kc1swXSwgUUltb2RlKQorICAgfHwgc2luZ2xlX29uZV9vcGVy YW5kIChvcGVyYW5kc1syXSwgUUltb2RlKSIKICAgewogICAgIGlmICh3aGljaF9hbHRlcm5hdGl2 ZSA9PSAwKQotICAgICAgcmV0dXJuIDxDT0RFPiA9PSBJT1IgPyAiYnNldFxcdCVWMiwlUjAiIDog ImJub3RcXHQlVjIsJVIwIjsgCisgICAgICByZXR1cm4gPENPREU+ID09IElPUiA/ICJic2V0XFx0 JVYyLCVSMCIgOiAiYm5vdFxcdCVWMiwlUjAiOwogICAgIGVsc2UgaWYgKHdoaWNoX2FsdGVybmF0 aXZlID09IDEpCiAgICAgICByZXR1cm4gPENPREU+ID09IElPUiA/ICJvclxcdCVYMiwlWDAiIDog InhvclxcdCVYMiwlWDAiOwogICAgIGdjY191bnJlYWNoYWJsZSAoKTsKICAgfQogICBbKHNldF9h dHRyICJsZW5ndGgiICI4LCoiKQotICAgKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICIqLGxvZ2lj YiIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZV8waGl0LHNldF96bnYiKV0pCisgICAoc2V0X2F0 dHIgImxlbmd0aF90YWJsZSIgIiosbG9naWNiIildKQogCiAoZGVmaW5lX2V4cGFuZCAiPGNvZGU+ PG1vZGU+MyIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UUhTSSAwICJyZWdpc3Rlcl9vcGVyYW5k IiAiIikKQEAgLTE2MCwyNyArMjI3LDQ4IEBACiA7OyB7QU5ELElPUixYT1J9e0hJMyxTSTN9IFBB VFRFUk5TCiA7OyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLShkZWZpbmVfaW5zbiAiKmxvZ2ljYWw8bW9kZT4z IgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKmxvZ2ljYWw8bW9kZT4zIgogICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpIU0kgMCAiaDgzMDBfZHN0X29wZXJhbmQiICI9clEiKQogCShtYXRjaF9vcGVy YXRvcjpIU0kgMyAiYml0X29wZXJhdG9yIgogCSAgWyhtYXRjaF9vcGVyYW5kOkhTSSAxICJoODMw MF9kc3Rfb3BlcmFuZCIgIiUwIikKIAkgICAobWF0Y2hfb3BlcmFuZDpIU0kgMiAiaDgzMDBfc3Jj X29wZXJhbmQiICJyUWkiKV0pKV0KICAgImg4MzAwX29wZXJhbmRzX21hdGNoX3AgKG9wZXJhbmRz KSIKKyAgIiMiCisgICJyZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRj aF9kdXAgMCkKKwkJICAgKG1hdGNoX29wX2R1cCAzIFsobWF0Y2hfZHVwIDEpIChtYXRjaF9kdXAg MildKSkKKwkgICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXSldKQorCisoZGVmaW5lX2lu c24gIipsb2dpY2FsPG1vZGU+M19jbG9iYmVyX2ZsYWdzIgorICBbKHNldCAobWF0Y2hfb3BlcmFu ZDpIU0kgMCAiaDgzMDBfZHN0X29wZXJhbmQiICI9clEiKQorCShtYXRjaF9vcGVyYXRvcjpIU0kg MyAiYml0X29wZXJhdG9yIgorCSAgWyhtYXRjaF9vcGVyYW5kOkhTSSAxICJoODMwMF9kc3Rfb3Bl cmFuZCIgIiUwIikKKwkgICAobWF0Y2hfb3BlcmFuZDpIU0kgMiAiaDgzMDBfc3JjX29wZXJhbmQi ICJyUWkiKV0pKQorICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0KKyAgImg4MzAwX29wZXJh bmRzX21hdGNoX3AgKG9wZXJhbmRzKSIKICAgeyByZXR1cm4gb3V0cHV0X2xvZ2ljYWxfb3AgKDxN T0RFPm1vZGUsIG9wZXJhbmRzKTsgfQogICBbKHNldCAoYXR0ciAibGVuZ3RoIikKLQkoc3ltYm9s X3JlZiAiY29tcHV0ZV9sb2dpY2FsX29wX2xlbmd0aCAoPE1PREU+bW9kZSwgb3BlcmFuZHMpIikp Ci0gICAoc2V0IChhdHRyICJjYyIpCi0JKHN5bWJvbF9yZWYgImNvbXB1dGVfbG9naWNhbF9vcF9j YyAoPE1PREU+bW9kZSwgb3BlcmFuZHMpIikpXSkKKwkoc3ltYm9sX3JlZiAiY29tcHV0ZV9sb2dp Y2FsX29wX2xlbmd0aCAoPE1PREU+bW9kZSwgb3BlcmFuZHMpIikpXSkKIAogDAogOzsgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogOzsgTk9UIElOU1RSVUNUSU9OUwogOzsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0oZGVmaW5l X2luc24gIm9uZV9jbXBsPG1vZGU+MiIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIm9uZV9jbXBs PG1vZGU+MiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UUhTSSAwICJoODMwMF9kc3Rfb3BlcmFu ZCIgIj1yUSIpCiAJKG5vdDpRSFNJIChtYXRjaF9vcGVyYW5kOlFIU0kgMSAiaDgzMDBfZHN0X29w ZXJhbmQiICIwIikpKV0KICAgIiIKKyAgIiMiCisgICJyZWxvYWRfY29tcGxldGVkIgorICBbKHBh cmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkgKG5vdDpRSFNJIChtYXRjaF9kdXAgMSkpKQorCSAg ICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0pCisKKyhkZWZpbmVfaW5zbiAib25lX2Nt cGw8bW9kZT4yX2Nsb2JiZXJfZmxhZ3MiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFIU0kgMCAi aDgzMDBfZHN0X29wZXJhbmQiICI9clEiKQorCShub3Q6UUhTSSAobWF0Y2hfb3BlcmFuZDpRSFNJ IDEgImg4MzAwX2RzdF9vcGVyYW5kIiAiMCIpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVH KSldCisgICIiCiAgIHsKICAgICBpZiAoPE1PREU+bW9kZSA9PSBFX1FJbW9kZSkKICAgICAgIHJl dHVybiAibm90CSVYMCI7CkBAIC0xOTIsMyArMjgwLDkyIEBACiAgIH0KICAgWyhzZXRfYXR0ciAi bGVuZ3RoX3RhYmxlIiAidW5hcnkiKQogICAgKHNldF9hdHRyICJjYyIgInNldF96bnYiKV0pCisK Kzs7IFRoZSBuZXh0IGZvdXIgcGVlcGhvbGUyJ3Mgd2lsbCB0cnkgdG8gdHJhbnNmb3JtCis7Owor OzsgICBtb3YuYiBBLHIwbCAgICAob3IgbW92LmwgQSxlcjApCis7OyAgIGFuZC5sICNDU1QsZXIw Cis7OworOzsgaW50bworOzsKKzs7ICAgc3ViLmwgZXIwCis7OyAgIG1vdi5iIEEscjBsCis7OyAg IGFuZC5iICNDU1QscjBsIChpZiBDU1QgaXMgbm90IDI1NSkKKworKGRlZmluZV9wZWVwaG9sZTIK KyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfb3BlcmFuZDpRSSAwICJyZWdpc3Rlcl9vcGVyYW5k IiAiIikKKwkJICAgKG1hdGNoX29wZXJhbmQ6UUkgMSAiZ2VuZXJhbF9vcGVyYW5kIiAiIikpCisJ ICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pCisgICAocGFyYWxsZWwgWyhzZXQgKG1h dGNoX29wZXJhbmQ6U0kgMiAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCisJCSAgIChhbmQ6U0kgKG1h dGNoX2R1cCAyKSAoY29uc3RfaW50IDI1NSkpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0Nf UkVHKSldKV0KKyAgIiFyZWdfb3ZlcmxhcF9tZW50aW9uZWRfcCAob3BlcmFuZHNbMl0sIG9wZXJh bmRzWzFdKQorICAgJiYgUkVHTk8gKG9wZXJhbmRzWzBdKSA9PSBSRUdOTyAob3BlcmFuZHNbMl0p IgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMikgKGNvbnN0X2ludCAwKSkKKwkgICAg ICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXSkKKyAgIChwYXJhbGxlbCBbKHNldCAoc3RyaWN0 X2xvd19wYXJ0IChtYXRjaF9kdXAgMCkpIChtYXRjaF9kdXAgMSkpCisJICAgICAgKGNsb2JiZXIg KHJlZzpDQyBDQ19SRUcpKV0pXSkKKworKGRlZmluZV9wZWVwaG9sZTIKKyAgWyhwYXJhbGxlbCBb KHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKKwkJICAgKG1h dGNoX29wZXJhbmQ6U0kgMSAibm9uaW1tZWRpYXRlX29wZXJhbmQiICIiKSkKKwkgICAgICAoY2xv YmJlciAocmVnOkNDIENDX1JFRykpXSkKKyAgIChwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDAp CisJCSAgIChhbmQ6U0kgKG1hdGNoX2R1cCAwKSAoY29uc3RfaW50IDI1NSkpKQorCSAgICAgIChj bG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0KKyAgIiFyZWdfb3ZlcmxhcF9tZW50aW9uZWRfcCAo b3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdKQorICAgJiYgIShHRVRfQ09ERSAob3BlcmFuZHNbMV0p ID09IE1FTSAmJiAhb2Zmc2V0dGFibGVfbWVtcmVmX3AgKG9wZXJhbmRzWzFdKSkKKyAgICYmICEo R0VUX0NPREUgKG9wZXJhbmRzWzFdKSA9PSBNRU0gJiYgTUVNX1ZPTEFUSUxFX1AgKG9wZXJhbmRz WzFdKSkiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKSAoY29uc3RfaW50IDApKQor CSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKQorICAgKHBhcmFsbGVsIFsoc2V0IChz dHJpY3RfbG93X3BhcnQgKG1hdGNoX2R1cCAyKSkgKG1hdGNoX2R1cCAzKSkKKwkgICAgICAoY2xv YmJlciAocmVnOkNDIENDX1JFRykpXSldCisgIHsKKyAgICBvcGVyYW5kc1syXSA9IGdlbl9sb3dw YXJ0IChRSW1vZGUsIG9wZXJhbmRzWzBdKTsKKyAgICBvcGVyYW5kc1szXSA9IGdlbl9sb3dwYXJ0 IChRSW1vZGUsIG9wZXJhbmRzWzFdKTsKKyAgfSkKKworKGRlZmluZV9wZWVwaG9sZTIKKyAgWyhw YXJhbGxlbCBbKHNldCAobWF0Y2hfb3BlcmFuZCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKKwkJ ICAgKG1hdGNoX29wZXJhbmQgMSAibm9uaW1tZWRpYXRlX29wZXJhbmQiICIiKSkKKwkgICAgICAo Y2xvYmJlciAocmVnOkNDIENDX1JFRykpXSkKKyAgIChwYXJhbGxlbCBbKHNldCAobWF0Y2hfb3Bl cmFuZDpTSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKKwkJICAgKGFuZDpTSSAobWF0Y2hfZHVw IDIpCisJCQkgICAobWF0Y2hfb3BlcmFuZDpTSSAzICJjb25zdF9pbnRfcWlfb3BlcmFuZCIgIiIp KSkKKwkgICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXSldCisgICIoR0VUX01PREUgKG9w ZXJhbmRzWzBdKSA9PSBRSW1vZGUKKyAgICB8fCBHRVRfTU9ERSAob3BlcmFuZHNbMF0pID09IEhJ bW9kZQorICAgIHx8IEdFVF9NT0RFIChvcGVyYW5kc1swXSkgPT0gU0ltb2RlKQorICAgJiYgR0VU X01PREUgKG9wZXJhbmRzWzBdKSA9PSBHRVRfTU9ERSAob3BlcmFuZHNbMV0pCisgICAmJiBSRUdO TyAob3BlcmFuZHNbMF0pID09IFJFR05PIChvcGVyYW5kc1syXSkKKyAgICYmICFyZWdfb3Zlcmxh cF9tZW50aW9uZWRfcCAob3BlcmFuZHNbMl0sIG9wZXJhbmRzWzFdKQorICAgJiYgIShHRVRfTU9E RSAob3BlcmFuZHNbMV0pICE9IFFJbW9kZQorCSYmIEdFVF9DT0RFIChvcGVyYW5kc1sxXSkgPT0g TUVNCisJJiYgIW9mZnNldHRhYmxlX21lbXJlZl9wIChvcGVyYW5kc1sxXSkpCisgICAmJiAhKEdF VF9NT0RFIChvcGVyYW5kc1sxXSkgIT0gUUltb2RlCisJJiYgR0VUX0NPREUgKG9wZXJhbmRzWzFd KSA9PSBNRU0KKwkmJiBNRU1fVk9MQVRJTEVfUCAob3BlcmFuZHNbMV0pKSIKKyAgWyhwYXJhbGxl bCBbKHNldCAobWF0Y2hfZHVwIDIpIChjb25zdF9pbnQgMCkpCisJICAgICAgKGNsb2JiZXIgKHJl ZzpDQyBDQ19SRUcpKV0pCisgICAocGFyYWxsZWwgWyhzZXQgKHN0cmljdF9sb3dfcGFydCAobWF0 Y2hfZHVwIDQpKSAobWF0Y2hfZHVwIDUpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVH KSldKQorICAgKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMikgKGFuZDpTSSAobWF0Y2hfZHVw IDIpIChtYXRjaF9kdXAgNikpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0K KyAgeworICAgIG9wZXJhbmRzWzRdID0gZ2VuX2xvd3BhcnQgKFFJbW9kZSwgb3BlcmFuZHNbMF0p OworICAgIG9wZXJhbmRzWzVdID0gZ2VuX2xvd3BhcnQgKFFJbW9kZSwgb3BlcmFuZHNbMV0pOwor ICAgIG9wZXJhbmRzWzZdID0gR0VOX0lOVCAofjB4ZmYgfCBJTlRWQUwgKG9wZXJhbmRzWzNdKSk7 CisgIH0pCisKKyhkZWZpbmVfcGVlcGhvbGUyCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX29w ZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCisJCSAgIChtYXRjaF9vcGVyYW5kOlNJ IDEgInJlZ2lzdGVyX29wZXJhbmQiICIiKSkKKwkgICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JF RykpXSkKKyAgIChwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApIChhbmQ6U0kgKG1hdGNoX2R1 cCAwKSAoY29uc3RfaW50IDY1MjgwKSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcp KV0pXQorICAiIXJlZ19vdmVybGFwX21lbnRpb25lZF9wIChvcGVyYW5kc1swXSwgb3BlcmFuZHNb MV0pIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkgKGNvbnN0X2ludCAwKSkKKwkg ICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXSkKKyAgIChwYXJhbGxlbCBbKHNldCAoemVy b19leHRyYWN0OlNJIChtYXRjaF9kdXAgMCkgKGNvbnN0X2ludCA4KSAoY29uc3RfaW50IDgpKQor CQkgICAobHNoaWZ0cnQ6U0kgKG1hdGNoX2R1cCAxKSAoY29uc3RfaW50IDgpKSkKKwkgICAgICAo Y2xvYmJlciAocmVnOkNDIENDX1JFRykpXSldKQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9oODMw MC9tb3ZhLm1kIGIvZ2NjL2NvbmZpZy9oODMwMC9tb3ZhLm1kCmluZGV4IDkyNmVkYmIyYzNjLi5j ZGNkNGI4ZjZhNCAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9oODMwMC9tb3ZhLm1kCisrKyBiL2dj Yy9jb25maWcvaDgzMDAvbW92YS5tZApAQCAtMjQsOCArMjQsNyBAQAogCQkgKG1hdGNoX29wZXJh bmQ6UUkgMiAiaW1tZWRpYXRlX29wZXJhbmQiICJpLGkiKSkpXQogICAiVEFSR0VUX0g4MzAwU1gi CiAgICJtb3ZhL3cubCBAKCVvMiVDMiwlWDEuYiksJVMwIgotICBbKHNldF9hdHRyICJsZW5ndGhf dGFibGUiICJtb3ZhIikKLSAgIChzZXRfYXR0ciAiY2MiICJub25lIildKQorICBbKHNldF9hdHRy ICJsZW5ndGhfdGFibGUiICJtb3ZhIildKQogCiAoZGVmaW5lX2luc24gIiIKICAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6UUkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yLHIiKQpAQCAtMzQsOCArMzMs NyBAQAogCQkgKG1hdGNoX29wZXJhbmQ6UUkgMiAiaW1tZWRpYXRlX29wZXJhbmQiICJpLGkiKSkp XQogICAiVEFSR0VUX0g4MzAwU1giCiAgICJtb3ZhL3cubCBAKCVvMiVDMiwlWDEuYiksJVMwIgot ICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhIikKLSAgIChzZXRfYXR0ciAiY2MiICJu b25lIildKQorICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhIildKQogCiAoZGVmaW5l X2luc24gIiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UUkgMCAicmVnaXN0ZXJfb3BlcmFuZCIg Ij1yLHIiKQpAQCAtNDQsOCArNDIsNyBAQAogCQkgKG1hdGNoX29wZXJhbmQ6UUkgMiAiaW1tZWRp YXRlX29wZXJhbmQiICJpLGkiKSkpXQogICAiVEFSR0VUX0g4MzAwU1giCiAgICJtb3ZhL2wubCBA KCVvMiVDMiwlWDEuYiksJVMwIgotICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhIikK LSAgIChzZXRfYXR0ciAiY2MiICJub25lIildKQorICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUi ICJtb3ZhIildKQogCiAoZGVmaW5lX2luc24gIiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UUkg MCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yLHIiKQpAQCAtNTQsOCArNTEsNyBAQAogCQkgKG1hdGNo X29wZXJhbmQ6UUkgMiAiaW1tZWRpYXRlX29wZXJhbmQiICJpLGkiKSkpXQogICAiVEFSR0VUX0g4 MzAwU1giCiAgICJtb3ZhL2wubCBAKCVvMiVDMiwlWDEuYiksJVMwIgotICBbKHNldF9hdHRyICJs ZW5ndGhfdGFibGUiICJtb3ZhIikKLSAgIChzZXRfYXR0ciAiY2MiICJub25lIildKQorICBbKHNl dF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhIildKQogCiAoZGVmaW5lX2luc24gIiIKICAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yLHIiKQpAQCAtNjMs OCArNTksNyBAQAogCQkgKG1hdGNoX29wZXJhbmQ6SEkgMiAiaW1tZWRpYXRlX29wZXJhbmQiICJp LGkiKSkpXQogICAiVEFSR0VUX0g4MzAwU1giCiAgICJtb3ZhL2IubCBAKCVvMiVDMiwlWDEuYiks JVMwIgotICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhIikKLSAgIChzZXRfYXR0ciAi Y2MiICJub25lIildKQorICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhIildKQogCiAo ZGVmaW5lX2luc24gIiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3Bl cmFuZCIgIj1yLHIiKQpAQCAtNzIsOCArNjcsNyBAQAogCQkgIChjb25zdF9pbnQgMikpKV0KICAg IlRBUkdFVF9IODMwMFNYIgogICAibW92YS93LmwgQCgwLCVYMS5iKSwlUzAiCi0gIFsoc2V0X2F0 dHIgImxlbmd0aF90YWJsZSIgIm1vdmFfemVybyIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZSIp XSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YV96ZXJvIildKQogCiAoZGVmaW5l X2luc24gIiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIg Ij1yLHIiKQpAQCAtODIsOCArNzYsNyBAQAogCQkgKG1hdGNoX29wZXJhbmQ6SEkgMiAiaW1tZWRp YXRlX29wZXJhbmQiICJpLGkiKSkpXQogICAiVEFSR0VUX0g4MzAwU1giCiAgICJtb3ZhL3cubCBA KCVvMiVDMiwlWDEuYiksJVMwIgotICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhIikK LSAgIChzZXRfYXR0ciAiY2MiICJub25lIildKQorICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUi ICJtb3ZhIildKQogCiAoZGVmaW5lX2luc24gIiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkg MCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKQEAgLTkyLDggKzg1LDcgQEAKIAkJKGNvbnN0X2lu dCA1MTApKSldCiAgICJUQVJHRVRfSDgzMDBTWCIKICAgIm1vdmEvdy5sIEAoMCwlWDEuYiksJVMw IgotICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhX3plcm8iKQotICAgKHNldF9hdHRy ICJjYyIgIm5vbmUiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmFfemVybyIp XSkKIAogKGRlZmluZV9pbnNuICIiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lz dGVyX29wZXJhbmQiICI9ciIpCkBAIC0xMDMsOCArOTUsNyBAQAogCQkgKG1hdGNoX29wZXJhbmQ6 SEkgMiAiaW1tZWRpYXRlX29wZXJhbmQiICJpIikpKV0KICAgIlRBUkdFVF9IODMwMFNYIgogICAi bW92YS93LmwgQCglbzIlQzIsJVgxLmIpLCVTMCIKLSAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxl IiAibW92YSIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZSIpXSkKKyAgWyhzZXRfYXR0ciAibGVu Z3RoX3RhYmxlIiAibW92YSIpXSkKIAogKGRlZmluZV9pbnNuICIiCiAgIFsoc2V0IChtYXRjaF9v cGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCkBAIC0xMTMsOCArMTA0LDcgQEAK IAkJKGNvbnN0X2ludCA1MTApKSldCiAgICJUQVJHRVRfSDgzMDBTWCIKICAgIm1vdmEvdy5sIEAo MCwlWDEuYiksJVMwIgotICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhX3plcm8iKQot ICAgKHNldF9hdHRyICJjYyIgIm5vbmUiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIg Im1vdmFfemVybyIpXSkKIAogKGRlZmluZV9pbnNuICIiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5k OkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCkBAIC0xMjQsOCArMTE0LDcgQEAKIAkJICht YXRjaF9vcGVyYW5kOkhJIDIgImltbWVkaWF0ZV9vcGVyYW5kIiAiaSIpKSldCiAgICJUQVJHRVRf SDgzMDBTWCIKICAgIm1vdmEvdy5sIEAoJW8yJUMyLCVYMS5iKSwlUzAiCi0gIFsoc2V0X2F0dHIg Imxlbmd0aF90YWJsZSIgIm1vdmEiKQotICAgKHNldF9hdHRyICJjYyIgIm5vbmUiKV0pCisgIFso c2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmEiKV0pCiAKIChkZWZpbmVfaW5zbiAiIgogICBb KHNldCAobWF0Y2hfb3BlcmFuZDpISSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIsciIpCkBAIC0x MzMsOCArMTIyLDcgQEAKIAkJICAoY29uc3RfaW50IDEpKSldCiAgICJUQVJHRVRfSDgzMDBTWCIK ICAgIm1vdmEvdy5sIEAoMCwlWDEuYiksJVMwIgotICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUi ICJtb3ZhX3plcm8iKQotICAgKHNldF9hdHRyICJjYyIgIm5vbmUiKV0pCisgIFsoc2V0X2F0dHIg Imxlbmd0aF90YWJsZSIgIm1vdmFfemVybyIpXSkKIAogKGRlZmluZV9pbnNuICIiCiAgIFsoc2V0 IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9cixyIikKQEAgLTE0Myw4 ICsxMzEsNyBAQAogCQkgKG1hdGNoX29wZXJhbmQ6SEkgMiAiaW1tZWRpYXRlX29wZXJhbmQiICJp LGkiKSkpXQogICAiVEFSR0VUX0g4MzAwU1giCiAgICJtb3ZhL3cubCBAKCVvMiVDMiwlWDEuYiks JVMwIgotICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhIikKLSAgIChzZXRfYXR0ciAi Y2MiICJub25lIildKQorICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhIildKQogCiAo ZGVmaW5lX2luc24gIiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3Bl cmFuZCIgIj1yIikKQEAgLTE1Myw4ICsxNDAsNyBAQAogCQkoY29uc3RfaW50IDUxMCkpKV0KICAg IlRBUkdFVF9IODMwMFNYIgogICAibW92YS93LmwgQCgwLCVYMS5iKSwlUzAiCi0gIFsoc2V0X2F0 dHIgImxlbmd0aF90YWJsZSIgIm1vdmFfemVybyIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZSIp XSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YV96ZXJvIildKQogCiAoZGVmaW5l X2luc24gIiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIg Ij1yIikKQEAgLTE2NCw4ICsxNTAsNyBAQAogCQkgKG1hdGNoX29wZXJhbmQ6SEkgMiAiaW1tZWRp YXRlX29wZXJhbmQiICJpIikpKV0KICAgIlRBUkdFVF9IODMwMFNYIgogICAibW92YS93LmwgQCgl bzIlQzIsJVgxLmIpLCVTMCIKLSAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YSIpCi0g ICAoc2V0X2F0dHIgImNjIiAibm9uZSIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAi bW92YSIpXSkKIAogKGRlZmluZV9pbnNuICIiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAg InJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCkBAIC0xNzQsOCArMTU5LDcgQEAKIAkJKGNvbnN0X2lu dCA1MTApKSldCiAgICJUQVJHRVRfSDgzMDBTWCIKICAgIm1vdmEvdy5sIEAoMCwlWDEuYiksJVMw IgotICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhX3plcm8iKQotICAgKHNldF9hdHRy ICJjYyIgIm5vbmUiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmFfemVybyIp XSkKIAogKGRlZmluZV9pbnNuICIiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lz dGVyX29wZXJhbmQiICI9ciIpCkBAIC0xODUsOCArMTY5LDcgQEAKIAkJIChtYXRjaF9vcGVyYW5k OkhJIDIgImltbWVkaWF0ZV9vcGVyYW5kIiAiaSIpKSldCiAgICJUQVJHRVRfSDgzMDBTWCIKICAg Im1vdmEvdy5sIEAoJW8yJUMyLCVYMS5iKSwlUzAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aF90YWJs ZSIgIm1vdmEiKQotICAgKHNldF9hdHRyICJjYyIgIm5vbmUiKV0pCisgIFsoc2V0X2F0dHIgImxl bmd0aF90YWJsZSIgIm1vdmEiKV0pCiAKIChkZWZpbmVfaW5zbiAiIgogICBbKHNldCAobWF0Y2hf b3BlcmFuZDpISSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIsciIpCkBAIC0xOTQsOCArMTc3LDcg QEAKIAkJICAoY29uc3RfaW50IDQpKSldCiAgICJUQVJHRVRfSDgzMDBTWCIKICAgIm1vdmEvbC5s IEAoMCwlWDEuYiksJVMwIgotICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhX3plcm8i KQotICAgKHNldF9hdHRyICJjYyIgIm5vbmUiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aF90YWJs ZSIgIm1vdmFfemVybyIpXSkKIAogKGRlZmluZV9pbnNuICIiCiAgIFsoc2V0IChtYXRjaF9vcGVy YW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9cixyIikKQEAgLTIwNCw4ICsxODYsNyBAQAog CQkgKG1hdGNoX29wZXJhbmQ6SEkgMiAiaW1tZWRpYXRlX29wZXJhbmQiICJpLGkiKSkpXQogICAi VEFSR0VUX0g4MzAwU1giCiAgICJtb3ZhL2wubCBAKCVvMiVDMiwlWDEuYiksJVMwIgotICBbKHNl dF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhIikKLSAgIChzZXRfYXR0ciAiY2MiICJub25lIild KQorICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhIildKQogCiAoZGVmaW5lX2luc24g IiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikK QEAgLTIxNCw4ICsxOTUsNyBAQAogCQkoY29uc3RfaW50IDEwMjApKSldCiAgICJUQVJHRVRfSDgz MDBTWCIKICAgIm1vdmEvbC5sIEAoMCwlWDEuYiksJVMwIgotICBbKHNldF9hdHRyICJsZW5ndGhf dGFibGUiICJtb3ZhX3plcm8iKQotICAgKHNldF9hdHRyICJjYyIgIm5vbmUiKV0pCisgIFsoc2V0 X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmFfemVybyIpXSkKIAogKGRlZmluZV9pbnNuICIiCiAg IFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCkBAIC0y MjUsOCArMjA1LDcgQEAKIAkJIChtYXRjaF9vcGVyYW5kOkhJIDIgImltbWVkaWF0ZV9vcGVyYW5k IiAiaSIpKSldCiAgICJUQVJHRVRfSDgzMDBTWCIKICAgIm1vdmEvbC5sIEAoJW8yJUMyLCVYMS5i KSwlUzAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmEiKQotICAgKHNldF9hdHRy ICJjYyIgIm5vbmUiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmEiKV0pCiAK IChkZWZpbmVfaW5zbiAiIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpISSAwICJyZWdpc3Rlcl9v cGVyYW5kIiAiPXIiKQpAQCAtMjM1LDggKzIxNCw3IEBACiAJCShjb25zdF9pbnQgMTAyMCkpKV0K ICAgIlRBUkdFVF9IODMwMFNYIgogICAibW92YS9sLmwgQCgwLCVYMS5iKSwlUzAiCi0gIFsoc2V0 X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmFfemVybyIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9u ZSIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YV96ZXJvIildKQogCiAoZGVm aW5lX2luc24gIiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFu ZCIgIj1yIikKQEAgLTI0Niw4ICsyMjQsNyBAQAogCQkgKG1hdGNoX29wZXJhbmQ6SEkgMiAiaW1t ZWRpYXRlX29wZXJhbmQiICJpIikpKV0KICAgIlRBUkdFVF9IODMwMFNYIgogICAibW92YS9sLmwg QCglbzIlQzIsJVgxLmIpLCVTMCIKLSAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YSIp Ci0gICAoc2V0X2F0dHIgImNjIiAibm9uZSIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxl IiAibW92YSIpXSkKIAogKGRlZmluZV9pbnNuICIiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJ IDAgInJlZ2lzdGVyX29wZXJhbmQiICI9cixyIikKQEAgLTI1NSw4ICsyMzIsNyBAQAogCQkgIChj b25zdF9pbnQgMikpKV0KICAgIlRBUkdFVF9IODMwMFNYIgogICAibW92YS9sLmwgQCgwLCVYMS5i KSwlUzAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmFfemVybyIpCi0gICAoc2V0 X2F0dHIgImNjIiAibm9uZSIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YV96 ZXJvIildKQogCiAoZGVmaW5lX2luc24gIiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAi cmVnaXN0ZXJfb3BlcmFuZCIgIj1yLHIiKQpAQCAtMjY1LDggKzI0MSw3IEBACiAJCSAobWF0Y2hf b3BlcmFuZDpISSAyICJpbW1lZGlhdGVfb3BlcmFuZCIgImksaSIpKSldCiAgICJUQVJHRVRfSDgz MDBTWCIKICAgIm1vdmEvbC5sIEAoJW8yJUMyLCVYMS5iKSwlUzAiCi0gIFsoc2V0X2F0dHIgImxl bmd0aF90YWJsZSIgIm1vdmEiKQotICAgKHNldF9hdHRyICJjYyIgIm5vbmUiKV0pCisgIFsoc2V0 X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmEiKV0pCiAKIChkZWZpbmVfaW5zbiAiIgogICBbKHNl dCAobWF0Y2hfb3BlcmFuZDpISSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQpAQCAtMjc1LDgg KzI1MCw3IEBACiAJCShjb25zdF9pbnQgMTAyMCkpKV0KICAgIlRBUkdFVF9IODMwMFNYIgogICAi bW92YS9sLmwgQCgwLCVYMS5iKSwlUzAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1v dmFfemVybyIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZSIpXSkKKyAgWyhzZXRfYXR0ciAibGVu Z3RoX3RhYmxlIiAibW92YV96ZXJvIildKQogCiAoZGVmaW5lX2luc24gIiIKICAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKQEAgLTI4Niw4ICsyNjAs NyBAQAogCQkgKG1hdGNoX29wZXJhbmQ6SEkgMiAiaW1tZWRpYXRlX29wZXJhbmQiICJpIikpKV0K ICAgIlRBUkdFVF9IODMwMFNYIgogICAibW92YS9sLmwgQCglbzIlQzIsJVgxLmIpLCVTMCIKLSAg WyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YSIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9u ZSIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YSIpXSkKIAogKGRlZmluZV9p bnNuICIiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9 ciIpCkBAIC0yOTYsOCArMjY5LDcgQEAKIAkJKGNvbnN0X2ludCAxMDIwKSkpXQogICAiVEFSR0VU X0g4MzAwU1giCiAgICJtb3ZhL2wubCBAKDAsJVgxLmIpLCVTMCIKLSAgWyhzZXRfYXR0ciAibGVu Z3RoX3RhYmxlIiAibW92YV96ZXJvIikKLSAgIChzZXRfYXR0ciAiY2MiICJub25lIildKQorICBb KHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhX3plcm8iKV0pCiAKIChkZWZpbmVfaW5zbiAi IgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpISSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQpA QCAtMzA3LDggKzI3OSw3IEBACiAJCSAobWF0Y2hfb3BlcmFuZDpISSAyICJpbW1lZGlhdGVfb3Bl cmFuZCIgImkiKSkpXQogICAiVEFSR0VUX0g4MzAwU1giCiAgICJtb3ZhL2wubCBAKCVvMiVDMiwl WDEuYiksJVMwIgotICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhIikKLSAgIChzZXRf YXR0ciAiY2MiICJub25lIildKQorICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhIild KQogCiAoZGVmaW5lX2luc24gIiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0 ZXJfb3BlcmFuZCIgIj1yLHIiKQpAQCAtMzE2LDggKzI4Nyw3IEBACiAJCSAobWF0Y2hfb3BlcmFu ZDpTSSAyICJpbW1lZGlhdGVfb3BlcmFuZCIgImksaSIpKSldCiAgICJUQVJHRVRfSDgzMDBTWCIK ICAgIm1vdmEvYi5sIEAoJW8yJUMyLCVYMS5iKSwlUzAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aF90 YWJsZSIgIm1vdmEiKQotICAgKHNldF9hdHRyICJjYyIgIm5vbmUiKV0pCisgIFsoc2V0X2F0dHIg Imxlbmd0aF90YWJsZSIgIm1vdmEiKV0pCiAKIChkZWZpbmVfaW5zbiAiIgogICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIsciIpCkBAIC0zMjUsOCArMjk1 LDcgQEAKIAkJICAoY29uc3RfaW50IDIpKSldCiAgICJUQVJHRVRfSDgzMDBTWCIKICAgIm1vdmEv dy5sIEAoMCwlWDEuYiksJVMwIgotICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhX3pl cm8iKQotICAgKHNldF9hdHRyICJjYyIgIm5vbmUiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aF90 YWJsZSIgIm1vdmFfemVybyIpXSkKIAogKGRlZmluZV9pbnNuICIiCiAgIFsoc2V0IChtYXRjaF9v cGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9cixyIikKQEAgLTMzNSw4ICszMDQsNyBA QAogCQkgKG1hdGNoX29wZXJhbmQ6U0kgMiAiaW1tZWRpYXRlX29wZXJhbmQiICJpLGkiKSkpXQog ICAiVEFSR0VUX0g4MzAwU1giCiAgICJtb3ZhL3cubCBAKCVvMiVDMiwlWDEuYiksJVMwIgotICBb KHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhIikKLSAgIChzZXRfYXR0ciAiY2MiICJub25l IildKQorICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhIildKQogCiAoZGVmaW5lX2lu c24gIiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1y IikKQEAgLTM0NSw4ICszMTMsNyBAQAogCQkoY29uc3RfaW50IDUxMCkpKV0KICAgIlRBUkdFVF9I ODMwMFNYIgogICAibW92YS93LmwgQCgwLCVYMS5iKSwlUzAiCi0gIFsoc2V0X2F0dHIgImxlbmd0 aF90YWJsZSIgIm1vdmFfemVybyIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZSIpXSkKKyAgWyhz ZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YV96ZXJvIildKQogCiAoZGVmaW5lX2luc24gIiIK ICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKQEAg LTM1Niw4ICszMjMsNyBAQAogCQkgKG1hdGNoX29wZXJhbmQ6U0kgMiAiaW1tZWRpYXRlX29wZXJh bmQiICJpIikpKV0KICAgIlRBUkdFVF9IODMwMFNYIgogICAibW92YS93LmwgQCglbzIlQzIsJVgx LmIpLCVTMCIKLSAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YSIpCi0gICAoc2V0X2F0 dHIgImNjIiAibm9uZSIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YSIpXSkK IAogKGRlZmluZV9pbnNuICIiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVy X29wZXJhbmQiICI9ciIpCkBAIC0zNjYsOCArMzMyLDcgQEAKIAkJKGNvbnN0X2ludCA1MTApKSld CiAgICJUQVJHRVRfSDgzMDBTWCIKICAgIm1vdmEvdy5sIEAoMCwlWDEuYiksJVMwIgotICBbKHNl dF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhX3plcm8iKQotICAgKHNldF9hdHRyICJjYyIgIm5v bmUiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmFfemVybyIpXSkKIAogKGRl ZmluZV9pbnNuICIiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJh bmQiICI9ciIpCkBAIC0zNzcsOCArMzQyLDcgQEAKIAkJIChtYXRjaF9vcGVyYW5kOlNJIDIgImlt bWVkaWF0ZV9vcGVyYW5kIiAiaSIpKSldCiAgICJUQVJHRVRfSDgzMDBTWCIKICAgIm1vdmEvdy5s IEAoJW8yJUMyLCVYMS5iKSwlUzAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmEi KQotICAgKHNldF9hdHRyICJjYyIgIm5vbmUiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aF90YWJs ZSIgIm1vdmEiKV0pCiAKIChkZWZpbmVfaW5zbiAiIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpT SSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIsciIpCkBAIC0zODYsOCArMzUwLDcgQEAKIAkJICAo Y29uc3RfaW50IDEpKSldCiAgICJUQVJHRVRfSDgzMDBTWCIKICAgIm1vdmEvdy5sIEAoMCwlWDEu YiksJVMwIgotICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhX3plcm8iKQotICAgKHNl dF9hdHRyICJjYyIgIm5vbmUiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmFf emVybyIpXSkKIAogKGRlZmluZV9pbnNuICIiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAg InJlZ2lzdGVyX29wZXJhbmQiICI9cixyIikKQEAgLTM5Niw4ICszNTksNyBAQAogCQkgKG1hdGNo X29wZXJhbmQ6U0kgMiAiaW1tZWRpYXRlX29wZXJhbmQiICJpLGkiKSkpXQogICAiVEFSR0VUX0g4 MzAwU1giCiAgICJtb3ZhL3cubCBAKCVvMiVDMiwlWDEuYiksJVMwIgotICBbKHNldF9hdHRyICJs ZW5ndGhfdGFibGUiICJtb3ZhIikKLSAgIChzZXRfYXR0ciAiY2MiICJub25lIildKQorICBbKHNl dF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhIildKQogCiAoZGVmaW5lX2luc24gIiIKICAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKQEAgLTQwNiw4 ICszNjgsNyBAQAogCQkoY29uc3RfaW50IDUxMCkpKV0KICAgIlRBUkdFVF9IODMwMFNYIgogICAi bW92YS93LmwgQCgwLCVYMS5iKSwlUzAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1v dmFfemVybyIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZSIpXSkKKyAgWyhzZXRfYXR0ciAibGVu Z3RoX3RhYmxlIiAibW92YV96ZXJvIildKQogCiAoZGVmaW5lX2luc24gIiIKICAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKQEAgLTQxNyw4ICszNzgs NyBAQAogCQkgKG1hdGNoX29wZXJhbmQ6U0kgMiAiaW1tZWRpYXRlX29wZXJhbmQiICJpIikpKV0K ICAgIlRBUkdFVF9IODMwMFNYIgogICAibW92YS93LmwgQCglbzIlQzIsJVgxLmIpLCVTMCIKLSAg WyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YSIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9u ZSIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YSIpXSkKIAogKGRlZmluZV9p bnNuICIiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9 ciIpCkBAIC00MjcsOCArMzg3LDcgQEAKIAkJKGNvbnN0X2ludCA1MTApKSldCiAgICJUQVJHRVRf SDgzMDBTWCIKICAgIm1vdmEvdy5sIEAoMCwlWDEuYiksJVMwIgotICBbKHNldF9hdHRyICJsZW5n dGhfdGFibGUiICJtb3ZhX3plcm8iKQotICAgKHNldF9hdHRyICJjYyIgIm5vbmUiKV0pCisgIFso c2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmFfemVybyIpXSkKIAogKGRlZmluZV9pbnNuICIi CiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCkBA IC00MzgsOCArMzk3LDcgQEAKIAkJIChtYXRjaF9vcGVyYW5kOlNJIDIgImltbWVkaWF0ZV9vcGVy YW5kIiAiaSIpKSldCiAgICJUQVJHRVRfSDgzMDBTWCIKICAgIm1vdmEvdy5sIEAoJW8yJUMyLCVY MS5iKSwlUzAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmEiKQotICAgKHNldF9h dHRyICJjYyIgIm5vbmUiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmEiKV0p CiAKIChkZWZpbmVfaW5zbiAiIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rl cl9vcGVyYW5kIiAiPXIsciIpCkBAIC00NDcsOCArNDA1LDcgQEAKIAkJICAoY29uc3RfaW50IDQp KSldCiAgICJUQVJHRVRfSDgzMDBTWCIKICAgIm1vdmEvbC5sIEAoMCwlWDEuYiksJVMwIgotICBb KHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhX3plcm8iKQotICAgKHNldF9hdHRyICJjYyIg Im5vbmUiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmFfemVybyIpXSkKIAog KGRlZmluZV9pbnNuICIiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29w ZXJhbmQiICI9cixyIikKQEAgLTQ1Nyw4ICs0MTQsNyBAQAogCQkgKG1hdGNoX29wZXJhbmQ6U0kg MiAiaW1tZWRpYXRlX29wZXJhbmQiICJpLGkiKSkpXQogICAiVEFSR0VUX0g4MzAwU1giCiAgICJt b3ZhL2wubCBAKCVvMiVDMiwlWDEuYiksJVMwIgotICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUi ICJtb3ZhIikKLSAgIChzZXRfYXR0ciAiY2MiICJub25lIildKQorICBbKHNldF9hdHRyICJsZW5n dGhfdGFibGUiICJtb3ZhIildKQogCiAoZGVmaW5lX2luc24gIiIKICAgWyhzZXQgKG1hdGNoX29w ZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKQEAgLTQ2Nyw4ICs0MjMsNyBAQAog CQkoY29uc3RfaW50IDEwMjApKSldCiAgICJUQVJHRVRfSDgzMDBTWCIKICAgIm1vdmEvbC5sIEAo MCwlWDEuYiksJVMwIgotICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhX3plcm8iKQot ICAgKHNldF9hdHRyICJjYyIgIm5vbmUiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIg Im1vdmFfemVybyIpXSkKIAogKGRlZmluZV9pbnNuICIiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5k OlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCkBAIC00NzgsOCArNDMzLDcgQEAKIAkJICht YXRjaF9vcGVyYW5kOlNJIDIgImltbWVkaWF0ZV9vcGVyYW5kIiAiaSIpKSldCiAgICJUQVJHRVRf SDgzMDBTWCIKICAgIm1vdmEvbC5sIEAoJW8yJUMyLCVYMS5iKSwlUzAiCi0gIFsoc2V0X2F0dHIg Imxlbmd0aF90YWJsZSIgIm1vdmEiKQotICAgKHNldF9hdHRyICJjYyIgIm5vbmUiKV0pCisgIFso c2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmEiKV0pCiAKIChkZWZpbmVfaW5zbiAiIgogICBb KHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQpAQCAtNDg4 LDggKzQ0Miw3IEBACiAJCShjb25zdF9pbnQgMTAyMCkpKV0KICAgIlRBUkdFVF9IODMwMFNYIgog ICAibW92YS9sLmwgQCgwLCVYMS5iKSwlUzAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIg Im1vdmFfemVybyIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZSIpXSkKKyAgWyhzZXRfYXR0ciAi bGVuZ3RoX3RhYmxlIiAibW92YV96ZXJvIildKQogCiAoZGVmaW5lX2luc24gIiIKICAgWyhzZXQg KG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKQEAgLTQ5OSw4ICs0 NTIsNyBAQAogCQkgKG1hdGNoX29wZXJhbmQ6U0kgMiAiaW1tZWRpYXRlX29wZXJhbmQiICJpIikp KV0KICAgIlRBUkdFVF9IODMwMFNYIgogICAibW92YS9sLmwgQCglbzIlQzIsJVgxLmIpLCVTMCIK LSAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YSIpCi0gICAoc2V0X2F0dHIgImNjIiAi bm9uZSIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YSIpXSkKIAogKGRlZmlu ZV9pbnNuICIiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQi ICI9cixyIikKQEAgLTUwOCw4ICs0NjAsNyBAQAogCQkgIChjb25zdF9pbnQgMikpKV0KICAgIlRB UkdFVF9IODMwMFNYIgogICAibW92YS9sLmwgQCgwLCVYMS5iKSwlUzAiCi0gIFsoc2V0X2F0dHIg Imxlbmd0aF90YWJsZSIgIm1vdmFfemVybyIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZSIpXSkK KyAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YV96ZXJvIildKQogCiAoZGVmaW5lX2lu c24gIiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1y LHIiKQpAQCAtNTE4LDggKzQ2OSw3IEBACiAJCSAobWF0Y2hfb3BlcmFuZDpTSSAyICJpbW1lZGlh dGVfb3BlcmFuZCIgImksaSIpKSldCiAgICJUQVJHRVRfSDgzMDBTWCIKICAgIm1vdmEvbC5sIEAo JW8yJUMyLCVYMS5iKSwlUzAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmEiKQot ICAgKHNldF9hdHRyICJjYyIgIm5vbmUiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIg Im1vdmEiKV0pCiAKIChkZWZpbmVfaW5zbiAiIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAw ICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQpAQCAtNTI4LDggKzQ3OCw3IEBACiAJCShjb25zdF9p bnQgMTAyMCkpKV0KICAgIlRBUkdFVF9IODMwMFNYIgogICAibW92YS9sLmwgQCgwLCVYMS5iKSwl UzAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmFfemVybyIpCi0gICAoc2V0X2F0 dHIgImNjIiAibm9uZSIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YV96ZXJv IildKQogCiAoZGVmaW5lX2luc24gIiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVn aXN0ZXJfb3BlcmFuZCIgIj1yIikKQEAgLTUzOSw4ICs0ODgsNyBAQAogCQkgKG1hdGNoX29wZXJh bmQ6U0kgMiAiaW1tZWRpYXRlX29wZXJhbmQiICJpIikpKV0KICAgIlRBUkdFVF9IODMwMFNYIgog ICAibW92YS9sLmwgQCglbzIlQzIsJVgxLmIpLCVTMCIKLSAgWyhzZXRfYXR0ciAibGVuZ3RoX3Rh YmxlIiAibW92YSIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZSIpXSkKKyAgWyhzZXRfYXR0ciAi bGVuZ3RoX3RhYmxlIiAibW92YSIpXSkKIAogKGRlZmluZV9pbnNuICIiCiAgIFsoc2V0IChtYXRj aF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCkBAIC01NDksOCArNDk3LDcg QEAKIAkJKGNvbnN0X2ludCAxMDIwKSkpXQogICAiVEFSR0VUX0g4MzAwU1giCiAgICJtb3ZhL2wu bCBAKDAsJVgxLmIpLCVTMCIKLSAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YV96ZXJv IikKLSAgIChzZXRfYXR0ciAiY2MiICJub25lIildKQorICBbKHNldF9hdHRyICJsZW5ndGhfdGFi bGUiICJtb3ZhX3plcm8iKV0pCiAKIChkZWZpbmVfaW5zbiAiIgogICBbKHNldCAobWF0Y2hfb3Bl cmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQpAQCAtNTYwLDggKzUwNyw3IEBACiAJ CSAobWF0Y2hfb3BlcmFuZDpTSSAyICJpbW1lZGlhdGVfb3BlcmFuZCIgImkiKSkpXQogICAiVEFS R0VUX0g4MzAwU1giCiAgICJtb3ZhL2wubCBAKCVvMiVDMiwlWDEuYiksJVMwIgotICBbKHNldF9h dHRyICJsZW5ndGhfdGFibGUiICJtb3ZhIikKLSAgIChzZXRfYXR0ciAiY2MiICJub25lIildKQor ICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhIildKQogCiAoZGVmaW5lX2luc24gIiIK ICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yLHIiKQpA QCAtNTcwLDggKzUxNiw3IEBACiAJCSAobWF0Y2hfb3BlcmFuZDpISSAyICJpbW1lZGlhdGVfb3Bl cmFuZCIgImksaSIpKSldCiAgICJUQVJHRVRfSDgzMDBTWCIKICAgIm1vdmEvdy5sIEAoJW8yJUMy LCVUMS53KSwlUzAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmEiKQotICAgKHNl dF9hdHRyICJjYyIgIm5vbmUiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmEi KV0pCiAKIChkZWZpbmVfaW5zbiAiIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpISSAwICJyZWdp c3Rlcl9vcGVyYW5kIiAiPXIsciIpCkBAIC01ODAsOCArNTI1LDcgQEAKIAkJIChtYXRjaF9vcGVy YW5kOkhJIDIgImltbWVkaWF0ZV9vcGVyYW5kIiAiaSxpIikpKV0KICAgIlRBUkdFVF9IODMwMFNY IgogICAibW92YS93LmwgQCglbzIlQzIsJVQxLncpLCVTMCIKLSAgWyhzZXRfYXR0ciAibGVuZ3Ro X3RhYmxlIiAibW92YSIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZSIpXSkKKyAgWyhzZXRfYXR0 ciAibGVuZ3RoX3RhYmxlIiAibW92YSIpXSkKIAogKGRlZmluZV9pbnNuICIiCiAgIFsoc2V0ICht YXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9cixyIikKQEAgLTU5MCw4ICs1 MzQsNyBAQAogCQkgKG1hdGNoX29wZXJhbmQ6SEkgMiAiaW1tZWRpYXRlX29wZXJhbmQiICJpLGki KSkpXQogICAiVEFSR0VUX0g4MzAwU1giCiAgICJtb3ZhL2wubCBAKCVvMiVDMiwlVDEudyksJVMw IgotICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhIikKLSAgIChzZXRfYXR0ciAiY2Mi ICJub25lIildKQorICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhIildKQogCiAoZGVm aW5lX2luc24gIiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFu ZCIgIj1yLHIiKQpAQCAtNjAwLDggKzU0Myw3IEBACiAJCSAobWF0Y2hfb3BlcmFuZDpISSAyICJp bW1lZGlhdGVfb3BlcmFuZCIgImksaSIpKSldCiAgICJUQVJHRVRfSDgzMDBTWCIKICAgIm1vdmEv bC5sIEAoJW8yJUMyLCVUMS53KSwlUzAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1v dmEiKQotICAgKHNldF9hdHRyICJjYyIgIm5vbmUiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aF90 YWJsZSIgIm1vdmEiKV0pCiAKIChkZWZpbmVfaW5zbiAiIgogICBbKHNldCAobWF0Y2hfb3BlcmFu ZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIsciIpCkBAIC02MDksOCArNTUxLDcgQEAKIAkJ IChtYXRjaF9vcGVyYW5kOlNJIDIgImltbWVkaWF0ZV9vcGVyYW5kIiAiaSxpIikpKV0KICAgIlRB UkdFVF9IODMwMFNYIgogICAibW92YS9iLmwgQCglbzIlQzIsJVQxLncpLCVTMCIKLSAgWyhzZXRf YXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YSIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZSIpXSkK KyAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YSIpXSkKIAogKGRlZmluZV9pbnNuICIi CiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9cixyIikK QEAgLTYxOCw4ICs1NTksNyBAQAogCQkgIChjb25zdF9pbnQgMikpKV0KICAgIlRBUkdFVF9IODMw MFNYIgogICAibW92YS93LmwgQCgwLCVUMS53KSwlUzAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aF90 YWJsZSIgIm1vdmFfemVybyIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZSIpXSkKKyAgWyhzZXRf YXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YV96ZXJvIildKQogCiAoZGVmaW5lX2luc24gIiIKICAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yLHIiKQpAQCAt NjI4LDggKzU2OCw3IEBACiAJCSAobWF0Y2hfb3BlcmFuZDpTSSAyICJpbW1lZGlhdGVfb3BlcmFu ZCIgImksaSIpKSldCiAgICJUQVJHRVRfSDgzMDBTWCIKICAgIm1vdmEvdy5sIEAoJW8yJUMyLCVU MS53KSwlUzAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmEiKQotICAgKHNldF9h dHRyICJjYyIgIm5vbmUiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmEiKV0p CiAKIChkZWZpbmVfaW5zbiAiIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rl cl9vcGVyYW5kIiAiPXIiKQpAQCAtNjM4LDggKzU3Nyw3IEBACiAJCShjb25zdF9pbnQgMTMxMDcw KSkpXQogICAiVEFSR0VUX0g4MzAwU1giCiAgICJtb3ZhL3cubCBAKDAsJVQxLncpLCVTMCIKLSAg WyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YV96ZXJvIikKLSAgIChzZXRfYXR0ciAiY2Mi ICJub25lIildKQorICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhX3plcm8iKV0pCiAK IChkZWZpbmVfaW5zbiAiIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9v cGVyYW5kIiAiPXIiKQpAQCAtNjQ5LDggKzU4Nyw3IEBACiAJCSAobWF0Y2hfb3BlcmFuZDpTSSAy ICJpbW1lZGlhdGVfb3BlcmFuZCIgImkiKSkpXQogICAiVEFSR0VUX0g4MzAwU1giCiAgICJtb3Zh L3cubCBAKCVvMiVDMiwlVDEudyksJVMwIgotICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJt b3ZhIikKLSAgIChzZXRfYXR0ciAiY2MiICJub25lIildKQorICBbKHNldF9hdHRyICJsZW5ndGhf dGFibGUiICJtb3ZhIildKQogCiAoZGVmaW5lX2luc24gIiIKICAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKQEAgLTY1OSw4ICs1OTYsNyBAQAogCQko Y29uc3RfaW50IDEzMTA3MCkpKV0KICAgIlRBUkdFVF9IODMwMFNYIgogICAibW92YS93LmwgQCgw LCVUMS53KSwlUzAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmFfemVybyIpCi0g ICAoc2V0X2F0dHIgImNjIiAibm9uZSIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAi bW92YV96ZXJvIildKQogCiAoZGVmaW5lX2luc24gIiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6 U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKQEAgLTY3MCw4ICs2MDYsNyBAQAogCQkgKG1h dGNoX29wZXJhbmQ6U0kgMiAiaW1tZWRpYXRlX29wZXJhbmQiICJpIikpKV0KICAgIlRBUkdFVF9I ODMwMFNYIgogICAibW92YS93LmwgQCglbzIlQzIsJVQxLncpLCVTMCIKLSAgWyhzZXRfYXR0ciAi bGVuZ3RoX3RhYmxlIiAibW92YSIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZSIpXSkKKyAgWyhz ZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YSIpXSkKIAogKGRlZmluZV9pbnNuICIiCiAgIFso c2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9cixyIikKQEAgLTY3 OSw4ICs2MTQsNyBAQAogCQkgIChjb25zdF9pbnQgMSkpKV0KICAgIlRBUkdFVF9IODMwMFNYIgog ICAibW92YS93LmwgQCgwLCVUMS53KSwlUzAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIg Im1vdmFfemVybyIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZSIpXSkKKyAgWyhzZXRfYXR0ciAi bGVuZ3RoX3RhYmxlIiAibW92YV96ZXJvIildKQogCiAoZGVmaW5lX2luc24gIiIKICAgWyhzZXQg KG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yLHIiKQpAQCAtNjg5LDgg KzYyMyw3IEBACiAJCSAobWF0Y2hfb3BlcmFuZDpTSSAyICJpbW1lZGlhdGVfb3BlcmFuZCIgImks aSIpKSldCiAgICJUQVJHRVRfSDgzMDBTWCIKICAgIm1vdmEvdy5sIEAoJW8yJUMyLCVUMS53KSwl UzAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmEiKQotICAgKHNldF9hdHRyICJj YyIgIm5vbmUiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmEiKV0pCiAKIChk ZWZpbmVfaW5zbiAiIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVy YW5kIiAiPXIiKQpAQCAtNjk5LDggKzYzMiw3IEBACiAJCShjb25zdF9pbnQgMTMxMDcwKSkpXQog ICAiVEFSR0VUX0g4MzAwU1giCiAgICJtb3ZhL3cubCBAKDAsJVQxLncpLCVTMCIKLSAgWyhzZXRf YXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YV96ZXJvIikKLSAgIChzZXRfYXR0ciAiY2MiICJub25l IildKQorICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhX3plcm8iKV0pCiAKIChkZWZp bmVfaW5zbiAiIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5k IiAiPXIiKQpAQCAtNzEwLDggKzY0Miw3IEBACiAJCSAobWF0Y2hfb3BlcmFuZDpTSSAyICJpbW1l ZGlhdGVfb3BlcmFuZCIgImkiKSkpXQogICAiVEFSR0VUX0g4MzAwU1giCiAgICJtb3ZhL3cubCBA KCVvMiVDMiwlVDEudyksJVMwIgotICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhIikK LSAgIChzZXRfYXR0ciAiY2MiICJub25lIildKQorICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUi ICJtb3ZhIildKQogCiAoZGVmaW5lX2luc24gIiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kg MCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKQEAgLTcyMCw4ICs2NTEsNyBAQAogCQkoY29uc3Rf aW50IDEzMTA3MCkpKV0KICAgIlRBUkdFVF9IODMwMFNYIgogICAibW92YS93LmwgQCgwLCVUMS53 KSwlUzAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmFfemVybyIpCi0gICAoc2V0 X2F0dHIgImNjIiAibm9uZSIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YV96 ZXJvIildKQogCiAoZGVmaW5lX2luc24gIiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAi cmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKQEAgLTczMSw4ICs2NjEsNyBAQAogCQkgKG1hdGNoX29w ZXJhbmQ6U0kgMiAiaW1tZWRpYXRlX29wZXJhbmQiICJpIikpKV0KICAgIlRBUkdFVF9IODMwMFNY IgogICAibW92YS93LmwgQCglbzIlQzIsJVQxLncpLCVTMCIKLSAgWyhzZXRfYXR0ciAibGVuZ3Ro X3RhYmxlIiAibW92YSIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZSIpXSkKKyAgWyhzZXRfYXR0 ciAibGVuZ3RoX3RhYmxlIiAibW92YSIpXSkKIAogKGRlZmluZV9pbnNuICIiCiAgIFsoc2V0ICht YXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9cixyIikKQEAgLTc0MCw4ICs2 NjksNyBAQAogCQkgIChjb25zdF9pbnQgNCkpKV0KICAgIlRBUkdFVF9IODMwMFNYIgogICAibW92 YS9sLmwgQCgwLCVUMS53KSwlUzAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmFf emVybyIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZSIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3Ro X3RhYmxlIiAibW92YV96ZXJvIildKQogCiAoZGVmaW5lX2luc24gIiIKICAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yLHIiKQpAQCAtNzUwLDggKzY3OCw3 IEBACiAJCSAobWF0Y2hfb3BlcmFuZDpTSSAyICJpbW1lZGlhdGVfb3BlcmFuZCIgImksaSIpKSld CiAgICJUQVJHRVRfSDgzMDBTWCIKICAgIm1vdmEvbC5sIEAoJW8yJUMyLCVUMS53KSwlUzAiCi0g IFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmEiKQotICAgKHNldF9hdHRyICJjYyIgIm5v bmUiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmEiKV0pCiAKIChkZWZpbmVf aW5zbiAiIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAi PXIiKQpAQCAtNzYwLDggKzY4Nyw3IEBACiAJCShjb25zdF9pbnQgMjYyMTQwKSkpXQogICAiVEFS R0VUX0g4MzAwU1giCiAgICJtb3ZhL2wubCBAKDAsJVQxLncpLCVTMCIKLSAgWyhzZXRfYXR0ciAi bGVuZ3RoX3RhYmxlIiAibW92YV96ZXJvIikKLSAgIChzZXRfYXR0ciAiY2MiICJub25lIildKQor ICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhX3plcm8iKV0pCiAKIChkZWZpbmVfaW5z biAiIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIi KQpAQCAtNzcxLDggKzY5Nyw3IEBACiAJCSAobWF0Y2hfb3BlcmFuZDpTSSAyICJpbW1lZGlhdGVf b3BlcmFuZCIgImkiKSkpXQogICAiVEFSR0VUX0g4MzAwU1giCiAgICJtb3ZhL2wubCBAKCVvMiVD MiwlVDEudyksJVMwIgotICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhIikKLSAgIChz ZXRfYXR0ciAiY2MiICJub25lIildKQorICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3Zh IildKQogCiAoZGVmaW5lX2luc24gIiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVn aXN0ZXJfb3BlcmFuZCIgIj1yIikKQEAgLTc4MSw4ICs3MDYsNyBAQAogCQkoY29uc3RfaW50IDI2 MjE0MCkpKV0KICAgIlRBUkdFVF9IODMwMFNYIgogICAibW92YS9sLmwgQCgwLCVUMS53KSwlUzAi Ci0gIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmFfemVybyIpCi0gICAoc2V0X2F0dHIg ImNjIiAibm9uZSIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YV96ZXJvIild KQogCiAoZGVmaW5lX2luc24gIiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0 ZXJfb3BlcmFuZCIgIj1yIikKQEAgLTc5Miw4ICs3MTYsNyBAQAogCQkgKG1hdGNoX29wZXJhbmQ6 U0kgMiAiaW1tZWRpYXRlX29wZXJhbmQiICJpIikpKV0KICAgIlRBUkdFVF9IODMwMFNYIgogICAi bW92YS9sLmwgQCglbzIlQzIsJVQxLncpLCVTMCIKLSAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxl IiAibW92YSIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZSIpXSkKKyAgWyhzZXRfYXR0ciAibGVu Z3RoX3RhYmxlIiAibW92YSIpXSkKIAogKGRlZmluZV9pbnNuICIiCiAgIFsoc2V0IChtYXRjaF9v cGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9cixyIikKQEAgLTgwMSw4ICs3MjQsNyBA QAogCQkgIChjb25zdF9pbnQgMikpKV0KICAgIlRBUkdFVF9IODMwMFNYIgogICAibW92YS9sLmwg QCgwLCVUMS53KSwlUzAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmFfemVybyIp Ci0gICAoc2V0X2F0dHIgImNjIiAibm9uZSIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxl IiAibW92YV96ZXJvIildKQogCiAoZGVmaW5lX2luc24gIiIKICAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yLHIiKQpAQCAtODExLDggKzczMyw3IEBACiAJ CSAobWF0Y2hfb3BlcmFuZDpTSSAyICJpbW1lZGlhdGVfb3BlcmFuZCIgImksaSIpKSldCiAgICJU QVJHRVRfSDgzMDBTWCIKICAgIm1vdmEvbC5sIEAoJW8yJUMyLCVUMS53KSwlUzAiCi0gIFsoc2V0 X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmEiKQotICAgKHNldF9hdHRyICJjYyIgIm5vbmUiKV0p CisgIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmEiKV0pCiAKIChkZWZpbmVfaW5zbiAi IgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQpA QCAtODIxLDggKzc0Miw3IEBACiAJCShjb25zdF9pbnQgMjYyMTQwKSkpXQogICAiVEFSR0VUX0g4 MzAwU1giCiAgICJtb3ZhL2wubCBAKDAsJVQxLncpLCVTMCIKLSAgWyhzZXRfYXR0ciAibGVuZ3Ro X3RhYmxlIiAibW92YV96ZXJvIikKLSAgIChzZXRfYXR0ciAiY2MiICJub25lIildKQorICBbKHNl dF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhX3plcm8iKV0pCiAKIChkZWZpbmVfaW5zbiAiIgog ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQpAQCAt ODMyLDggKzc1Miw3IEBACiAJCSAobWF0Y2hfb3BlcmFuZDpTSSAyICJpbW1lZGlhdGVfb3BlcmFu ZCIgImkiKSkpXQogICAiVEFSR0VUX0g4MzAwU1giCiAgICJtb3ZhL2wubCBAKCVvMiVDMiwlVDEu dyksJVMwIgotICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhIikKLSAgIChzZXRfYXR0 ciAiY2MiICJub25lIildKQorICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJtb3ZhIildKQog CiAoZGVmaW5lX2luc24gIiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJf b3BlcmFuZCIgIj1yIikKQEAgLTg0Miw4ICs3NjEsNyBAQAogCQkoY29uc3RfaW50IDI2MjE0MCkp KV0KICAgIlRBUkdFVF9IODMwMFNYIgogICAibW92YS9sLmwgQCgwLCVUMS53KSwlUzAiCi0gIFso c2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdmFfemVybyIpCi0gICAoc2V0X2F0dHIgImNjIiAi bm9uZSIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibW92YV96ZXJvIildKQogCiAo ZGVmaW5lX2luc24gIiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3Bl cmFuZCIgIj1yIikKQEAgLTg1Myw2ICs3NzEsNSBAQAogCQkgKG1hdGNoX29wZXJhbmQ6U0kgMiAi aW1tZWRpYXRlX29wZXJhbmQiICJpIikpKV0KICAgIlRBUkdFVF9IODMwMFNYIgogICAibW92YS9s LmwgQCglbzIlQzIsJVQxLncpLCVTMCIKLSAgWyhzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAibW92 YSIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZSIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoX3Rh YmxlIiAibW92YSIpXSkKIApkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9oODMwMC9tb3ZlcHVzaC5t ZCBiL2djYy9jb25maWcvaDgzMDAvbW92ZXB1c2gubWQKaW5kZXggYTgyNDFiOTBhNDUuLmIxMDZj ZDU0ZjVkIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2g4MzAwL21vdmVwdXNoLm1kCisrKyBiL2dj Yy9jb25maWcvaDgzMDAvbW92ZXB1c2gubWQKQEAgLTQsMTEgKzQsMjAgQEAKIAogOzsgbW92cWkK IAotKGRlZmluZV9pbnNuICIqbW92cWlfaDhub3N4IgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAi Km1vdnFpIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpRSSAwICJnZW5lcmFsX29wZXJhbmRfZHN0 IiAiPXIsciAsPCxyLHIsbSIpCiAJKG1hdGNoX29wZXJhbmQ6UUkgMSAiZ2VuZXJhbF9vcGVyYW5k X3NyYyIgIiBJLHI+LHIsbixtLHIiKSldCi0gICIhVEFSR0VUX0g4MzAwU1gKLSAgICAmJiBoODMw MF9tb3ZlX29rIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0pIgorICAiIVRBUkdFVF9IODMwMFNY ICYmIGg4MzAwX21vdmVfb2sgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSkiCisgICIjIgorICAi cmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApIChtYXRj aF9kdXAgMSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pXSkKKworKGRlZmlu ZV9pbnNuICIqbW92cWlfY2xvYmJlcl9mbGFncyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UUkg MCAiZ2VuZXJhbF9vcGVyYW5kX2RzdCIgIj1yLHIgLDwscixyLG0iKQorCShtYXRjaF9vcGVyYW5k OlFJIDEgImdlbmVyYWxfb3BlcmFuZF9zcmMiICIgSSxyPixyLG4sbSxyIikpCisgICAoY2xvYmJl ciAocmVnOkNDIENDX1JFRykpXQorICAiIVRBUkdFVF9IODMwMFNYICYmIGg4MzAwX21vdmVfb2sg KG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSkiCiAgICJACiAgICBzdWIuYgklWDAsJVgwCiAgICBt b3YuYgklUjEsJVgwCkBAIC0xNiwxOSArMjUsMjYgQEAKICAgIG1vdi5iCSVSMSwlWDAKICAgIG1v di5iCSVSMSwlWDAKICAgIG1vdi5iCSVYMSwlUjAiCi0gIFsoc2V0IChhdHRyICJsZW5ndGgiKQot CShzeW1ib2xfcmVmICJjb21wdXRlX21vdl9sZW5ndGggKG9wZXJhbmRzKSIpKQotICAgKHNldF9h dHRyICJjYyIgInNldF96bixzZXRfem52LHNldF96bnYsc2V0X3pudixzZXRfem52LHNldF96bnYi KV0pCisgIFsoc2V0IChhdHRyICJsZW5ndGgiKSAoc3ltYm9sX3JlZiAiY29tcHV0ZV9tb3ZfbGVu Z3RoIChvcGVyYW5kcykiKSldKQogCi0oZGVmaW5lX2luc24gIiptb3ZxaV9oOHN4IgorKGRlZmlu ZV9pbnNuX2FuZF9zcGxpdCAiKm1vdnFpX2g4c3giCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJ IDAgImdlbmVyYWxfb3BlcmFuZF9kc3QiICI9WixyUSIpCiAJKG1hdGNoX29wZXJhbmQ6UUkgMSAi Z2VuZXJhbF9vcGVyYW5kX3NyYyIgIlA0PlgsclFpIikpXQogICAiVEFSR0VUX0g4MzAwU1giCisg ICIjIgorICAicmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVw IDApIChtYXRjaF9kdXAgMSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pXSkK KworKGRlZmluZV9pbnNuICIqbW92cWlfaDhzeF9jbG9iYmVyX2ZsYWdzIgorICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpRSSAwICJnZW5lcmFsX29wZXJhbmRfZHN0IiAiPVosclEiKQorCShtYXRjaF9v cGVyYW5kOlFJIDEgImdlbmVyYWxfb3BlcmFuZF9zcmMiICJQND5YLHJRaSIpKQorICAgKGNsb2Ji ZXIgKHJlZzpDQyBDQ19SRUcpKV0KKyAgIlRBUkdFVF9IODMwMFNYIgogICAiQAogICAgIG1vdi5i CSVYMTo0LCVYMAogICAgIG1vdi5iCSVYMSwlWDAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aF90YWJs ZSIgIm1vdl9pbW00LG1vdmIiKQotICAgKHNldF9hdHRyICJjYyIgInNldF96bnYiKV0pCisgIFso c2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIm1vdl9pbW00LG1vdmIiKV0pCiAKIChkZWZpbmVfZXhw YW5kICJtb3Y8bW9kZT4iCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFIU0lGIDAgImdlbmVyYWxf b3BlcmFuZF9kc3QiICIiKQpAQCAtNDgsMjQgKzY0LDQ1IEBACiAgICAgICB9CiAgIH0pCiAKLShk ZWZpbmVfaW5zbiAibW92c3RyaWN0cWkiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICJtb3ZzdHJp Y3RxaSIKICAgWyhzZXQgKHN0cmljdF9sb3dfcGFydCAobWF0Y2hfb3BlcmFuZDpRSSAwICJnZW5l cmFsX29wZXJhbmRfZHN0IiAiK3IsciIpKQogCQkJIChtYXRjaF9vcGVyYW5kOlFJIDEgImdlbmVy YWxfb3BlcmFuZF9zcmMiICJJLHJtaT4iKSldCiAgICIiCisgICIjIgorICAicmVsb2FkX2NvbXBs ZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAoc3RyaWN0X2xvd19wYXJ0IChtYXRjaF9kdXAgMCkp IChtYXRjaF9kdXAgMSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pXSkKKwor CisoZGVmaW5lX2luc24gIm1vdnN0cmljdHFpX2Nsb2JiZXJfZmxhZ3MiCisgIFsoc2V0IChzdHJp Y3RfbG93X3BhcnQgKG1hdGNoX29wZXJhbmQ6UUkgMCAiZ2VuZXJhbF9vcGVyYW5kX2RzdCIgIity LHIiKSkKKwkJCSAobWF0Y2hfb3BlcmFuZDpRSSAxICJnZW5lcmFsX29wZXJhbmRfc3JjIiAiSSxy bWk+IikpCisgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXQorICAiIgogICAiQAogICAgc3Vi LmIJJVgwLCVYMAogICAgbW92LmIJJVgxLCVYMCIKICAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMiwq IikKLSAgIChzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAiKixtb3ZiIikKLSAgIChzZXRfYXR0ciAi Y2MiICJzZXRfem4sc2V0X3pudiIpXSkKKyAgIChzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAiKixt b3ZiIildKQogCiA7OyBtb3ZoaQogCi0oZGVmaW5lX2luc24gIiptb3ZoaV9oOG5vc3giCisoZGVm aW5lX2luc25fYW5kX3NwbGl0ICIqbW92aGkiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAg ImdlbmVyYWxfb3BlcmFuZF9kc3QiICI9cixyLDwscixyLG0iKQogCShtYXRjaF9vcGVyYW5kOkhJ IDEgImdlbmVyYWxfb3BlcmFuZF9zcmMiICJJLHI+LHIsaSxtLHIiKSldCiAgICIhVEFSR0VUX0g4 MzAwU1gKICAgICAmJiBoODMwMF9tb3ZlX29rIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0pIgor ICAiIyIKKyAgInJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1 cCAwKSAobWF0Y2hfZHVwIDEpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0p CisKKyhkZWZpbmVfaW5zbiAiKm1vdmhpX2Nsb2JiZXJfZmxhZ3MiCisgIFsoc2V0IChtYXRjaF9v cGVyYW5kOkhJIDAgImdlbmVyYWxfb3BlcmFuZF9kc3QiICI9cixyLDwscixyLG0iKQorCShtYXRj aF9vcGVyYW5kOkhJIDEgImdlbmVyYWxfb3BlcmFuZF9zcmMiICJJLHI+LHIsaSxtLHIiKSkKKyAg IChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldCisgICIhVEFSR0VUX0g4MzAwU1gKKyAgICAmJiBo ODMwMF9tb3ZlX29rIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0pIgogICAiQAogICAgc3ViLncJ JVQwLCVUMAogICAgbW92LncJJVQxLCVUMApAQCAtNzMsMTQgKzExMCwyMiBAQAogICAgbW92LncJ JVQxLCVUMAogICAgbW92LncJJVQxLCVUMAogICAgbW92LncJJVQxLCVUMCIKLSAgWyhzZXQgKGF0 dHIgImxlbmd0aCIpCi0JKHN5bWJvbF9yZWYgImNvbXB1dGVfbW92X2xlbmd0aCAob3BlcmFuZHMp IikpCi0gICAoc2V0X2F0dHIgImNjIiAic2V0X3puLHNldF96bnYsc2V0X3pudixzZXRfem52LHNl dF96bnYsc2V0X3pudiIpXSkKKyAgWyhzZXQgKGF0dHIgImxlbmd0aCIpIChzeW1ib2xfcmVmICJj b21wdXRlX21vdl9sZW5ndGggKG9wZXJhbmRzKSIpKV0pCiAKLShkZWZpbmVfaW5zbiAiKm1vdmhp X2g4c3giCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqbW92aGlfaDhzeCIKICAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6SEkgMCAiZ2VuZXJhbF9vcGVyYW5kX2RzdCIgIj1yLHIsWixRLHJRIikKIAko bWF0Y2hfb3BlcmFuZDpISSAxICJnZW5lcmFsX29wZXJhbmRfc3JjIiAiSSxQMz5YLFA0PlgsSVA4 PlgsclFpIikpXQogICAiVEFSR0VUX0g4MzAwU1giCisgICIjIgorICAicmVsb2FkX2NvbXBsZXRl ZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApIChtYXRjaF9kdXAgMSkpCisJICAg ICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pXSkKKyAgCisoZGVmaW5lX2luc24gIiptb3Zo aV9oOHN4X2Nsb2JiZXJfZmxhZ3MiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgImdlbmVy YWxfb3BlcmFuZF9kc3QiICI9cixyLFosUSxyUSIpCisJKG1hdGNoX29wZXJhbmQ6SEkgMSAiZ2Vu ZXJhbF9vcGVyYW5kX3NyYyIgIkksUDM+WCxQND5YLElQOD5YLHJRaSIpKQorICAgKGNsb2JiZXIg KHJlZzpDQyBDQ19SRUcpKV0KKyAgIlRBUkdFVF9IODMwMFNYIgogICAiQAogICAgc3ViLncJJVQw LCVUMAogICAgbW92LncJJVQxOjMsJVQwCkBAIC04OCwyNyArMTMzLDQ2IEBACiAgICBtb3Yudwkl VDEsJVQwCiAgICBtb3YudwklVDEsJVQwIgogICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICIq LCosbW92X2ltbTQsc2hvcnRfaW1tZWRpYXRlLG1vdnciKQotICAgKHNldF9hdHRyICJsZW5ndGgi ICIyLDIsKiwqLCoiKQotICAgKHNldF9hdHRyICJjYyIgInNldF96bixzZXRfem52LHNldF96bnYs c2V0X3pudixzZXRfem52IildKQorICAgKHNldF9hdHRyICJsZW5ndGgiICIyLDIsKiwqLCoiKV0p CiAKLShkZWZpbmVfaW5zbiAibW92c3RyaWN0aGkiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICJt b3ZzdHJpY3RoaSIKICAgWyhzZXQgKHN0cmljdF9sb3dfcGFydCAobWF0Y2hfb3BlcmFuZDpISSAw ICJnZW5lcmFsX29wZXJhbmRfZHN0IiAiK3IscixyIikpCiAJCQkgKG1hdGNoX29wZXJhbmQ6SEkg MSAiZ2VuZXJhbF9vcGVyYW5kX3NyYyIgIkksUDM+WCxybWkiKSldCiAgICIiCisgICIjIgorICAi cmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAoc3RyaWN0X2xvd19wYXJ0ICht YXRjaF9kdXAgMCkpIChtYXRjaF9kdXAgMSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19S RUcpKV0pXSkKKworKGRlZmluZV9pbnNuICJtb3ZzdHJpY3RoaV9jbG9iYmVyX2ZsYWdzIgorICBb KHNldCAoc3RyaWN0X2xvd19wYXJ0IChtYXRjaF9vcGVyYW5kOkhJIDAgImdlbmVyYWxfb3BlcmFu ZF9kc3QiICIrcixyLHIiKSkKKwkJCSAobWF0Y2hfb3BlcmFuZDpISSAxICJnZW5lcmFsX29wZXJh bmRfc3JjIiAiSSxQMz5YLHJtaSIpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0KKyAg IiIKICAgIkAKICAgIHN1Yi53CSVUMCwlVDAKICAgIG1vdi53CSVUMSwlVDAKICAgIG1vdi53CSVU MSwlVDAiCiAgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjIsMiwqIikKLSAgIChzZXRfYXR0ciAibGVu Z3RoX3RhYmxlIiAiKiwqLG1vdnciKQotICAgKHNldF9hdHRyICJjYyIgInNldF96bixzZXRfem52 LHNldF96bnYiKV0pCisgICAoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgIiosKixtb3Z3IildKQog CiA7OyBtb3ZzaQotKGRlZmluZV9pbnNuICIqbW92c2lfaDgzMDBocyIKKyhkZWZpbmVfaW5zbl9h bmRfc3BsaXQgIiptb3ZzaSIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAiZ2VuZXJhbF9v cGVyYW5kX2RzdCIgIj1yLHIsciw8LHIscixtLCphLCphLHIiKQogCShtYXRjaF9vcGVyYW5kOlNJ IDEgImdlbmVyYWxfb3BlcmFuZF9zcmMiICJJLHIsaSxyLD4sbSxyLEksciwqYSIpKV0KICAgIihU QVJHRVRfSDgzMDBTIHx8IFRBUkdFVF9IODMwMEgpICYmICFUQVJHRVRfSDgzMDBTWAogICAgICYm IGg4MzAwX21vdmVfb2sgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSkiCisgICIjIgorICAicmVs b2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApIChtYXRjaF9k dXAgMSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pXSkKKworKGRlZmluZV9p bnNuICIqbW92c2lfY2xvYmJlcl9mbGFncyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAi Z2VuZXJhbF9vcGVyYW5kX2RzdCIgIj1yLHIsciw8LHIscixtLCphLCphLHIiKQorCShtYXRjaF9v cGVyYW5kOlNJIDEgImdlbmVyYWxfb3BlcmFuZF9zcmMiICJJLHIsaSxyLD4sbSxyLEksciwqYSIp KQorICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0KKyAgIihUQVJHRVRfSDgzMDBTIHx8IFRB UkdFVF9IODMwMEgpICYmICFUQVJHRVRfSDgzMDBTWAorICAgICYmIGg4MzAwX21vdmVfb2sgKG9w ZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSkiCiB7CiAgIHN3aXRjaCAod2hpY2hfYWx0ZXJuYXRpdmUp CiAgICAgewpAQCAtMTY5LDE0ICsyMzMsMjIgQEAKICAgICB9CiAgICByZXR1cm4gIm1vdi5sCSVT MSwlUzAiOwogfQotICBbKHNldCAoYXR0ciAibGVuZ3RoIikKLQkoc3ltYm9sX3JlZiAiY29tcHV0 ZV9tb3ZfbGVuZ3RoIChvcGVyYW5kcykiKSkKLSAgIChzZXRfYXR0ciAiY2MiICJzZXRfem4sc2V0 X3pudixjbG9iYmVyLHNldF96bnYsc2V0X3pudixzZXRfem52LHNldF96bnYsbm9uZV8waGl0LG5v bmVfMGhpdCxzZXRfem52IildKQorICBbKHNldCAoYXR0ciAibGVuZ3RoIikgKHN5bWJvbF9yZWYg ImNvbXB1dGVfbW92X2xlbmd0aCAob3BlcmFuZHMpIikpXSkKIAotKGRlZmluZV9pbnNuICIqbW92 c2lfaDhzeCIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIiptb3ZzaV9oOHN4IgogICBbKHNldCAo bWF0Y2hfb3BlcmFuZDpTSSAwICJnZW5lcmFsX29wZXJhbmRfZHN0IiAiPXIscixRLHJRLCphLCph LHIiKQogCShtYXRjaF9vcGVyYW5kOlNJIDEgImdlbmVyYWxfb3BlcmFuZF9zcmMiICJJLFAzPlgs SVA4PlgsclFpLEksciwqYSIpKV0KICAgIlRBUkdFVF9IODMwMFNYIgorICAiIyIKKyAgInJlbG9h ZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKSAobWF0Y2hfZHVw IDEpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0pCisKKyhkZWZpbmVfaW5z biAiKm1vdnNpX2g4c3hfY2xvYmJlcl9mbGFncyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kg MCAiZ2VuZXJhbF9vcGVyYW5kX2RzdCIgIj1yLHIsUSxyUSwqYSwqYSxyIikKKwkobWF0Y2hfb3Bl cmFuZDpTSSAxICJnZW5lcmFsX29wZXJhbmRfc3JjIiAiSSxQMz5YLElQOD5YLHJRaSxJLHIsKmEi KSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldCisgICJUQVJHRVRfSDgzMDBTWCIKICAg IkAKICAgIHN1Yi5sCSVTMCwlUzAKICAgIG1vdi5sCSVTMTozLCVTMApAQCAtMTg2LDI2ICsyNTgs NDYgQEAKICAgIGNscm1hY1w7bGRtYWMJJTEsbWFjbAogICAgc3RtYWMJbWFjbCwlMCIKICAgWyhz ZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAiKiwqLHNob3J0X2ltbWVkaWF0ZSxtb3ZsLCosKiwqIikK LSAgIChzZXRfYXR0ciAibGVuZ3RoIiAiMiwyLCosKiwyLDYsNCIpCi0gICAoc2V0X2F0dHIgImNj IiAic2V0X3puLHNldF96bnYsc2V0X3pudixzZXRfem52LG5vbmVfMGhpdCxub25lXzBoaXQsc2V0 X3pudiIpXSkKKyAgIChzZXRfYXR0ciAibGVuZ3RoIiAiMiwyLCosKiwyLDYsNCIpXSkKIAotKGRl ZmluZV9pbnNuICIqbW92c2ZfaDhzeCIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIiptb3ZzZl9o OHN4IgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTRiAwICJnZW5lcmFsX29wZXJhbmRfZHN0IiAi PXIsclEiKQogCShtYXRjaF9vcGVyYW5kOlNGIDEgImdlbmVyYWxfb3BlcmFuZF9zcmMiICJHLHJR aSIpKV0KICAgIlRBUkdFVF9IODMwMFNYIgorICAiIyIKKyAgInJlbG9hZF9jb21wbGV0ZWQiCisg IFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKSAobWF0Y2hfZHVwIDEpKQorCSAgICAgIChj bG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKm1vdnNmX2g4c3hf Y2xvYmJlcl9mbGFncyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0YgMCAiZ2VuZXJhbF9vcGVy YW5kX2RzdCIgIj1yLHJRIikKKwkobWF0Y2hfb3BlcmFuZDpTRiAxICJnZW5lcmFsX29wZXJhbmRf c3JjIiAiRyxyUWkiKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldCisgICJUQVJHRVRf SDgzMDBTWCIKICAgIkAKICAgICBzdWIubAklUzAsJVMwCiAgICAgbW92LmwJJVMxLCVTMCIKICAg WyhzZXRfYXR0ciAibGVuZ3RoIiAiMiwqIikKLSAgIChzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAi Kixtb3ZsIikKLSAgIChzZXRfYXR0ciAiY2MiICJzZXRfem4sc2V0X3pudiIpXSkKKyAgIChzZXRf YXR0ciAibGVuZ3RoX3RhYmxlIiAiKixtb3ZsIildKQogCi0oZGVmaW5lX2luc24gIiptb3ZzZl9o ODMwMGhzIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKm1vdnNmIgogICBbKHNldCAobWF0Y2hf b3BlcmFuZDpTRiAwICJnZW5lcmFsX29wZXJhbmRfZHN0IiAiPXIscixyLG0sPCxyIikKIAkobWF0 Y2hfb3BlcmFuZDpTRiAxICJnZW5lcmFsX29wZXJhbmRfc3JjIiAiRyxyLGltLHIsciw+IikpXQog ICAiIVRBUkdFVF9IODMwMFNYCiAgICAgJiYgKHJlZ2lzdGVyX29wZXJhbmQgKG9wZXJhbmRzWzBd LCBTRm1vZGUpCiAJfHwgcmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbMV0sIFNGbW9kZSkpIgor ICAiIyIKKyAgInJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1 cCAwKSAobWF0Y2hfZHVwIDEpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0p CisKKyhkZWZpbmVfaW5zbiAiKm1vdnNmX2Nsb2JiZXJfZmxhZ3MiCisgIFsoc2V0IChtYXRjaF9v cGVyYW5kOlNGIDAgImdlbmVyYWxfb3BlcmFuZF9kc3QiICI9cixyLHIsbSw8LHIiKQorCShtYXRj aF9vcGVyYW5kOlNGIDEgImdlbmVyYWxfb3BlcmFuZF9zcmMiICJHLHIsaW0scixyLD4iKSkKKyAg IChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldCisgICIhVEFSR0VUX0g4MzAwU1gKKyAgICAmJiAo cmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbMF0sIFNGbW9kZSkKKwl8fCByZWdpc3Rlcl9vcGVy YW5kIChvcGVyYW5kc1sxXSwgU0Ztb2RlKSkiCiAgICJACiAgICBzdWIubAklUzAsJVMwCiAgICBt b3YubAklUzEsJVMwCkBAIC0yMTMsMjEgKzMwNSwzNSBAQAogICAgbW92LmwJJVMxLCVTMAogICAg bW92LmwJJVMxLCVTMAogICAgbW92LmwJJVMxLCVTMCIKLSAgWyhzZXQgKGF0dHIgImxlbmd0aCIp Ci0JKHN5bWJvbF9yZWYgImNvbXB1dGVfbW92X2xlbmd0aCAob3BlcmFuZHMpIikpCi0gICAoc2V0 X2F0dHIgImNjIiAic2V0X3puLHNldF96bnYsc2V0X3pudixzZXRfem52LHNldF96bnYsc2V0X3pu diIpXSkKKyAgWyhzZXQgKGF0dHIgImxlbmd0aCIpIChzeW1ib2xfcmVmICJjb21wdXRlX21vdl9s ZW5ndGggKG9wZXJhbmRzKSIpKV0pCiAMCiA7OyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiA7OyBQVVNIIElOU1RS VUNUSU9OUwogOzsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0oZGVmaW5lX2luc24gIipwdXNoMV9oODMwMGhz XzxRSEk6bW9kZT4iCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqcHVzaDFfPFFISTptb2RlPiIK ICAgWyhzZXQgKG1lbTpRSEkKIAkocHJlX21vZGlmeTpQCiAJICAocmVnOlAgU1BfUkVHKQogCSAg KHBsdXM6UCAocmVnOlAgU1BfUkVHKSAoY29uc3RfaW50IC00KSkpKQogCShtYXRjaF9vcGVyYW5k OlFISSAwICJyZWdpc3Rlcl9ub19zcF9lbGltX29wZXJhbmQiICJyIikpXQogICAiIgorICAiIyIK KyAgInJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1lbTpRSEkKKwkJICAg ICAocHJlX21vZGlmeTpQIChyZWc6UCBTUF9SRUcpCisJCQkJICAgKHBsdXM6UCAocmVnOlAgU1Bf UkVHKSAoY29uc3RfaW50IC00KSkpKQorCQkgICAobWF0Y2hfZHVwIDApKQorCSAgICAgIChjbG9i YmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKnB1c2gxXzxRSEk6bW9k ZT5fY2xvYmJlcl9mbGFncyIKKyAgWyhzZXQgKG1lbTpRSEkKKwkocHJlX21vZGlmeTpQCisJICAo cmVnOlAgU1BfUkVHKQorCSAgKHBsdXM6UCAocmVnOlAgU1BfUkVHKSAoY29uc3RfaW50IC00KSkp KQorCShtYXRjaF9vcGVyYW5kOlFISSAwICJyZWdpc3Rlcl9ub19zcF9lbGltX29wZXJhbmQiICJy IikpCisgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXQorICAiIgogICAibW92LmxcXHQlUzAs QC1lcjciCiAgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjQiKV0pCiAKZGlmZiAtLWdpdCBhL2djYy9j b25maWcvaDgzMDAvbXVsdGlwbHkubWQgYi9nY2MvY29uZmlnL2g4MzAwL211bHRpcGx5Lm1kCmlu ZGV4IDRlOTExMmY5NzBjLi41NmYyYjZmYjIxNCAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9oODMw MC9tdWx0aXBseS5tZAorKysgYi9nY2MvY29uZmlnL2g4MzAwL211bHRpcGx5Lm1kCkBAIC0xNSwy MyArMTUsNDYgQEAKICAgICAgIG9wZXJhbmRzWzJdID0gZ2VuX3J0eF9TSUdOX0VYVEVORCAoSElt b2RlLCBvcGVyYW5kc1syXSk7CiAgIH0pCiAKLShkZWZpbmVfaW5zbiAiKm11bHFpaGkzX2NvbnN0 IgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKm11bHFpaGkzX2NvbnN0IgogICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpISSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQogCShtdWx0OkhJIChzaWdu X2V4dGVuZDpISSAobWF0Y2hfb3BlcmFuZDpRSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiJTAiKSkK IAkJIChtYXRjaF9vcGVyYW5kOlFJIDIgIm5pYmJsZV9vcGVyYW5kIiAiSVA0PlgiKSkpXQogICAi VEFSR0VUX0g4MzAwU1giCisgICIjIgorICAicmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxl bCBbKHNldCAobWF0Y2hfZHVwIDApCisJCSAgIChtdWx0OkhJIChzaWduX2V4dGVuZDpISSAobWF0 Y2hfZHVwIDEpKSAobWF0Y2hfZHVwIDIpKSkKKwkgICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JF RykpXSldKQorCisoZGVmaW5lX2luc24gIiptdWxxaWhpM19jb25zdF9jbG9iYmVyX2ZsYWdzIgor ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpISSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQorCSht dWx0OkhJIChzaWduX2V4dGVuZDpISSAobWF0Y2hfb3BlcmFuZDpRSSAxICJyZWdpc3Rlcl9vcGVy YW5kIiAiJTAiKSkKKwkJIChtYXRjaF9vcGVyYW5kOlFJIDIgIm5pYmJsZV9vcGVyYW5kIiAiSVA0 PlgiKSkpCisgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXQorICAiVEFSR0VUX0g4MzAwU1gi CiAgICJtdWx4cy5iCSVYMiwlVDAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjQiKQotICAgKHNl dF9hdHRyICJjYyIgInNldF96biIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNCIpXSkKIAot KGRlZmluZV9pbnNuICIqbXVscWloaTMiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqbXVscWlo aTMiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIp CiAJKG11bHQ6SEkgKHNpZ25fZXh0ZW5kOkhJIChtYXRjaF9vcGVyYW5kOlFJIDEgInJlZ2lzdGVy X29wZXJhbmQiICIlMCIpKQogCQkgKHNpZ25fZXh0ZW5kOkhJIChtYXRjaF9vcGVyYW5kOlFJIDIg InJlZ2lzdGVyX29wZXJhbmQiICJyIikpKSldCiAgICIiCisgICIjIgorICAicmVsb2FkX2NvbXBs ZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisJCSAgIChtdWx0OkhJIChz aWduX2V4dGVuZDpISSAobWF0Y2hfZHVwIDEpKQorCQkJICAgIChzaWduX2V4dGVuZDpISSAobWF0 Y2hfZHVwIDIpKSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pXSkKKworKGRl ZmluZV9pbnNuICIqbXVscWloaTNfY2xvYmJlcl9mbGFncyIKKyAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKKwkobXVsdDpISSAoc2lnbl9leHRlbmQ6 SEkgKG1hdGNoX29wZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiUwIikpCisJCSAoc2ln bl9leHRlbmQ6SEkgKG1hdGNoX29wZXJhbmQ6UUkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkp KQorICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0KKyAgIiIKICAgIm11bHhzLmIJJVgyLCVU MCIKLSAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNCIpCi0gICAoc2V0X2F0dHIgImNjIiAic2V0X3pu IildKQorICBbKHNldF9hdHRyICJsZW5ndGgiICI0IildKQogCiAoZGVmaW5lX2V4cGFuZCAibXVs aGlzaTMiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICIi KQpAQCAtNDQsMjMgKzY3LDQ2IEBACiAgICAgICBvcGVyYW5kc1syXSA9IGdlbl9ydHhfU0lHTl9F WFRFTkQgKFNJbW9kZSwgb3BlcmFuZHNbMl0pOwogICB9KQogCi0oZGVmaW5lX2luc24gIiptdWxo aXNpM19jb25zdCIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIiptdWxoaXNpM19jb25zdCIKICAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKIAkobXVs dDpTSSAoc2lnbl9leHRlbmQ6U0kgKG1hdGNoX29wZXJhbmQ6SEkgMSAicmVnaXN0ZXJfb3BlcmFu ZCIgIiUwIikpCiAJCSAobWF0Y2hfb3BlcmFuZDpTSSAyICJuaWJibGVfb3BlcmFuZCIgIklQND5Y IikpKV0KICAgIlRBUkdFVF9IODMwMFNYIgorICAiIyIKKyAgInJlbG9hZF9jb21wbGV0ZWQiCisg IFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorCQkgICAobXVsdDpTSSAoc2lnbl9leHRl bmQ6U0kgKG1hdGNoX2R1cCAxKSkgKG1hdGNoX2R1cCAyKSkpCisJICAgICAgKGNsb2JiZXIgKHJl ZzpDQyBDQ19SRUcpKV0pXSkKKworKGRlZmluZV9pbnNuICIqbXVsaGlzaTNfY29uc3RfY2xvYmJl cl9mbGFncyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIg Ij1yIikKKwkobXVsdDpTSSAoc2lnbl9leHRlbmQ6U0kgKG1hdGNoX29wZXJhbmQ6SEkgMSAicmVn aXN0ZXJfb3BlcmFuZCIgIiUwIikpCisJCSAobWF0Y2hfb3BlcmFuZDpTSSAyICJuaWJibGVfb3Bl cmFuZCIgIklQND5YIikpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0KKyAgIlRBUkdF VF9IODMwMFNYIgogICAibXVseHMudwklVDIsJVMwIgotICBbKHNldF9hdHRyICJsZW5ndGgiICI0 IikKLSAgIChzZXRfYXR0ciAiY2MiICJzZXRfem4iKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aCIg IjQiKV0pCiAKLShkZWZpbmVfaW5zbiAiKm11bGhpc2kzIgorKGRlZmluZV9pbnNuX2FuZF9zcGxp dCAiKm11bGhpc2kzIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVy YW5kIiAiPXIiKQogCShtdWx0OlNJIChzaWduX2V4dGVuZDpTSSAobWF0Y2hfb3BlcmFuZDpISSAx ICJyZWdpc3Rlcl9vcGVyYW5kIiAiJTAiKSkKIAkJIChzaWduX2V4dGVuZDpTSSAobWF0Y2hfb3Bl cmFuZDpISSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpKSkpXQogICAiIgorICAiIyIKKyAgInJl bG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorCQkgICAo bXVsdDpTSSAoc2lnbl9leHRlbmQ6U0kgKG1hdGNoX2R1cCAxKSkKKwkJCSAgICAoc2lnbl9leHRl bmQ6U0kgKG1hdGNoX2R1cCAyKSkpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSld KV0pCisKKyhkZWZpbmVfaW5zbiAiKm11bGhpc2kzX2Nsb2JiZXJfZmxhZ3MiCisgIFsoc2V0ICht YXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCisJKG11bHQ6U0kgKHNp Z25fZXh0ZW5kOlNJIChtYXRjaF9vcGVyYW5kOkhJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIlMCIp KQorCQkgKHNpZ25fZXh0ZW5kOlNJIChtYXRjaF9vcGVyYW5kOkhJIDIgInJlZ2lzdGVyX29wZXJh bmQiICJyIikpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldCisgICIiCiAgICJtdWx4 cy53CSVUMiwlUzAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjQiKQotICAgKHNldF9hdHRyICJj YyIgInNldF96biIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNCIpXSkKIAogKGRlZmluZV9l eHBhbmQgInVtdWxxaWhpMyIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJf b3BlcmFuZCIgIiIpCkBAIC03OSw4ICsxMjUsNyBAQAogCQkgKG1hdGNoX29wZXJhbmQ6UUkgMiAi bmliYmxlX29wZXJhbmQiICJJUDQ+WCIpKSldCiAgICJUQVJHRVRfSDgzMDBTWCIKICAgIm11bHh1 LmIJJVgyLCVUMCIKLSAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNCIpCi0gICAoc2V0X2F0dHIgImNj IiAic2V0X3puIildKQorICBbKHNldF9hdHRyICJsZW5ndGgiICI0IildKQogCiAoZGVmaW5lX2lu c24gIip1bXVscWloaTMiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29w ZXJhbmQiICI9ciIpCkBAIC04OCw4ICsxMzMsNyBAQAogCQkgKHplcm9fZXh0ZW5kOkhJIChtYXRj aF9vcGVyYW5kOlFJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpKSldCiAgICIiCiAgICJtdWx4 dS5iCSVYMiwlVDAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjIiKQotICAgKHNldF9hdHRyICJj YyIgIm5vbmVfMGhpdCIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMiIpXSkKIAogKGRlZmlu ZV9leHBhbmQgInVtdWxoaXNpMyIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0 ZXJfb3BlcmFuZCIgIiIpCkBAIC0xMDgsOCArMTUyLDcgQEAKIAkJIChtYXRjaF9vcGVyYW5kOlNJ IDIgIm5pYmJsZV9vcGVyYW5kIiAiSVA0PlgiKSkpXQogICAiVEFSR0VUX0g4MzAwU1giCiAgICJt dWx4dS53CSVUMiwlUzAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjQiKQotICAgKHNldF9hdHRy ICJjYyIgInNldF96biIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNCIpXSkKIAogKGRlZmlu ZV9pbnNuICIqdW11bGhpc2kzIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rl cl9vcGVyYW5kIiAiPXIiKQpAQCAtMTE3LDIzICsxNjAsMzIgQEAKIAkJICh6ZXJvX2V4dGVuZDpT SSAobWF0Y2hfb3BlcmFuZDpISSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpKSkpXQogICAiIgog ICAibXVseHUudwklVDIsJVMwIgotICBbKHNldF9hdHRyICJsZW5ndGgiICIyIikKLSAgIChzZXRf YXR0ciAiY2MiICJub25lXzBoaXQiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjIiKV0pCiAK IDs7IFdlIGNvdWxkIGhhdmUgdXNlZCBtdWx1Llt3bF0gaGVyZSwgYnV0IG11bHUuW2x3XSBpcyBv bmx5IGF2YWlsYWJsZQogOzsgb24gYSBIOFNYIHdpdGggYSBtdWx0aXBsaWVyLCB3aGVyZWFzIG11 bHMudyBzZWVtcyB0byBiZSBhdmFpbGFibGUKIDs7IG9uIGFsbCBIOFNYIHZhcmlhbnRzLgogCi0o ZGVmaW5lX2luc24gIm11bDxtb2RlPjMiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICJtdWw8bW9k ZT4zIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpIU0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1y IikKICAgICAgICAgKG11bHQ6SFNJIChtYXRjaF9vcGVyYW5kOkhTSSAxICJyZWdpc3Rlcl9vcGVy YW5kIiAiJTAiKQogCQkgIChtYXRjaF9vcGVyYW5kOkhTSSAyICJyZWdfb3JfbmliYmxlX29wZXJh bmQiICJyIElQND5YIikpKV0KICAgIlRBUkdFVF9IODMwMFNYIgorICAiIyIKKyAgInJlbG9hZF9j b21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKSAobXVsdDpIU0kgKG1h dGNoX2R1cCAxKSAobWF0Y2hfZHVwIDIpKSkKKwkgICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JF RykpXSldKQorCisoZGVmaW5lX2luc24gIm11bDxtb2RlPjNfY2xvYmJlcl9mbGFncyIKKyAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6SFNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCisgICAgICAg IChtdWx0OkhTSSAobWF0Y2hfb3BlcmFuZDpIU0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiUwIikK KwkJICAobWF0Y2hfb3BlcmFuZDpIU0kgMiAicmVnX29yX25pYmJsZV9vcGVyYW5kIiAiciBJUDQ+ WCIpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldCisgICJUQVJHRVRfSDgzMDBTWCIK ICAgeyByZXR1cm4gPE1PREU+bW9kZSA9PSBISW1vZGUgPyAibXVscy53XFx0JVQyLCVUMCIgOiAi bXVscy5sXFx0JVMyLCVTMCI7IH0KLSAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNCIpCi0gICAoc2V0 X2F0dHIgImNjIiAic2V0X3puIildKQorICBbKHNldF9hdHRyICJsZW5ndGgiICI0IildKQogCi0o ZGVmaW5lX2luc24gInNtdWxzaTNfaGlnaHBhcnQiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICJz bXVsc2kzX2hpZ2hwYXJ0IgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9v cGVyYW5kIiAiPXIiKQogCSh0cnVuY2F0ZTpTSQogCSAobHNoaWZ0cnQ6REkKQEAgLTE0Miw5ICsx OTQsMjcgQEAKIAkgICAoc2lnbl9leHRlbmQ6REkgKG1hdGNoX29wZXJhbmQ6U0kgMiAicmVnX29y X25pYmJsZV9vcGVyYW5kIiAiciBJUDQ+WCIpKSkKIAkgIChjb25zdF9pbnQgMzIpKSkpXQogICAi VEFSR0VUX0g4MzAwU1hNVUwiCisgICIjIgorICAicmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJh bGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisJCSAgICh0cnVuY2F0ZTpTSSAobHNoaWZ0cnQ6REkg KG11bHQ6REkKKwkJCQkJICAgICAgIChzaWduX2V4dGVuZDpESSAobWF0Y2hfZHVwIDEpKQorCQkJ CQkgICAgICAgKHNpZ25fZXh0ZW5kOkRJIChtYXRjaF9kdXAgMikpKQorCQkJCQkgICAgIChjb25z dF9pbnQgMzIpKSkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pXSkKKworKGRl ZmluZV9pbnNuICJzbXVsc2kzX2hpZ2hwYXJ0X2Nsb2JiZXJfZmxhZ3MiCisgIFsoc2V0IChtYXRj aF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCisJKHRydW5jYXRlOlNJCisJ IChsc2hpZnRydDpESQorCSAgKG11bHQ6REkKKwkgICAoc2lnbl9leHRlbmQ6REkgKG1hdGNoX29w ZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiUwIikpCisJICAgKHNpZ25fZXh0ZW5kOkRJ IChtYXRjaF9vcGVyYW5kOlNJIDIgInJlZ19vcl9uaWJibGVfb3BlcmFuZCIgInIgSVA0PlgiKSkp CisJICAoY29uc3RfaW50IDMyKSkpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0KKyAg IlRBUkdFVF9IODMwMFNYTVVMIgogICAibXVscy91LmxcXHQlUzIsJVMwIgotICBbKHNldF9hdHRy ICJsZW5ndGgiICI0IikKLSAgIChzZXRfYXR0ciAiY2MiICJzZXRfem4iKV0pCisgIFsoc2V0X2F0 dHIgImxlbmd0aCIgIjQiKV0pCiAKIChkZWZpbmVfaW5zbiAidW11bHNpM19oaWdocGFydCIKICAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKQEAgLTE1 Niw4ICsyMjYsNyBAQAogCSAgICAoY29uc3RfaW50IDMyKSkpKV0KICAgIlRBUkdFVF9IODMwMFNY IgogICAibXVsdS91LmxcXHQlUzIsJVMwIgotICBbKHNldF9hdHRyICJsZW5ndGgiICI0IikKLSAg IChzZXRfYXR0ciAiY2MiICJub25lXzBoaXQiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjQi KV0pCiAKIDs7IFRoaXMgaXMgYSAiYnJpZGdlIiBpbnN0cnVjdGlvbi4gIENvbWJpbmUgY2FuJ3Qg Y3JhbSBlbm91Z2ggaW5zbnMKIDs7IHRvZ2V0aGVyIHRvIGNyYXRlIGEgTUFDIGluc3RydWN0aW9u IGRpcmVjdGx5LCBidXQgaXQgY2FuIGNyZWF0ZQpAQCAtMTc2LDggKzI0NSw3IEBACiAJICAgICht ZW06SEkgKHBvc3RfaW5jOlNJIChtYXRjaF9vcGVyYW5kOlNJIDIgInJlZ2lzdGVyX29wZXJhbmQi ICJyIikpKSkpKV0KICAgIlRBUkdFVF9NQUMiCiAgICJjbHJtYWNcO21hYwlAJTIrLEAlMSsiCi0g IFsoc2V0X2F0dHIgImxlbmd0aCIgIjYiKQotICAgKHNldF9hdHRyICJjYyIgIm5vbmVfMGhpdCIp XSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNiIpXSkKIAogKGRlZmluZV9pbnNuICIiCiAgIFso c2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9YSIpCkBAIC0xODks NiArMjU3LDUgQEAKIAkgICAgICAobWF0Y2hfb3BlcmFuZDpTSSAzICJyZWdpc3Rlcl9vcGVyYW5k IiAiMCIpKSldCiAgICJUQVJHRVRfTUFDIgogICAibWFjCUAlMissQCUxKyIKLSAgWyhzZXRfYXR0 ciAibGVuZ3RoIiAiNCIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZV8waGl0IildKQorICBbKHNl dF9hdHRyICJsZW5ndGgiICI0IildKQogCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2g4MzAwL290 aGVyLm1kIGIvZ2NjL2NvbmZpZy9oODMwMC9vdGhlci5tZAppbmRleCA0Yjk2YTdjNGE0MC4uNTcy YTI5ZmIyZDkgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvaDgzMDAvb3RoZXIubWQKKysrIGIvZ2Nj L2NvbmZpZy9oODMwMC9vdGhlci5tZApAQCAtMiwxMCArMiwyMCBAQAogOzsgQUJTT0xVVEUgVkFM VUUgSU5TVFJVQ1RJT05TCiA7OyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLShkZWZpbmVfaW5zbiAiYWJzc2Yy IgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiYWJzc2YyIgogICBbKHNldCAobWF0Y2hfb3BlcmFu ZDpTRiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQogCShhYnM6U0YgKG1hdGNoX29wZXJhbmQ6 U0YgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKSkpXQogICAiIgorICAiIyIKKyAgInJlbG9hZF9j b21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKSAoYWJzOlNGIChtYXRj aF9kdXAgMSkpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0pCisKKyhkZWZp bmVfaW5zbiAiYWJzc2YyX2Nsb2JiZXJfZmxhZ3MiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNG IDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCisJKGFiczpTRiAobWF0Y2hfb3BlcmFuZDpTRiAx ICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSld CisgICIiCiAgICJhbmQud1xcdCMzMjc2NywlZTAiCiAgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjQi KV0pCiAKQEAgLTEzLDUgKzIzLDQgQEAKICAgWyhjb25zdF9pbnQgMCldCiAgICIiCiAgICJub3Ai Ci0gIFsoc2V0X2F0dHIgImNjIiAibm9uZSIpCi0gICAoc2V0X2F0dHIgImxlbmd0aCIgIjIiKV0p CisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjIiKV0pCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2g4 MzAwL3BlZXBob2xlcy5tZCBiL2djYy9jb25maWcvaDgzMDAvcGVlcGhvbGVzLm1kCmluZGV4IDg0 NDJjZDgwYTVlLi5iZDY5MDE4NzdlZSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9oODMwMC9wZWVw aG9sZXMubWQKKysrIGIvZ2NjL2NvbmZpZy9oODMwMC9wZWVwaG9sZXMubWQKQEAgLTQzMyw5NiAr NDMzLDYgQEAKIAkJICAgOiBnZW5fcnR4X0xUIChWT0lEbW9kZSwgY2MwX3J0eCwgY29uc3QwX3J0 eCkpOwogICB9KQogCi07OyBUaGUgbmV4dCB0aHJlZSBwZWVwaG9sZTIncyB3aWxsIHRyeSB0byB0 cmFuc2Zvcm0KLTs7Ci07OyAgIG1vdi5iIEEscjBsICAgIChvciBtb3YubCBBLGVyMCkKLTs7ICAg YW5kLmwgI0NTVCxlcjAKLTs7Ci07OyBpbnRvCi07OwotOzsgICBzdWIubCBlcjAKLTs7ICAgbW92 LmIgQSxyMGwKLTs7ICAgYW5kLmIgI0NTVCxyMGwgKGlmIENTVCBpcyBub3QgMjU1KQotCi0oZGVm aW5lX3BlZXBob2xlMgotICBbKHNldCAobWF0Y2hfb3BlcmFuZDpRSSAwICJyZWdpc3Rlcl9vcGVy YW5kIiAiIikKLQkobWF0Y2hfb3BlcmFuZDpRSSAxICJnZW5lcmFsX29wZXJhbmQiICIiKSkKLSAg IChzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMiAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCi0JKGFuZDpT SSAobWF0Y2hfZHVwIDIpCi0JCShjb25zdF9pbnQgMjU1KSkpXQotICAiIXJlZ19vdmVybGFwX21l bnRpb25lZF9wIChvcGVyYW5kc1syXSwgb3BlcmFuZHNbMV0pCi0gICAmJiBSRUdOTyAob3BlcmFu ZHNbMF0pID09IFJFR05PIChvcGVyYW5kc1syXSkiCi0gIFsoc2V0IChtYXRjaF9kdXAgMikKLQko Y29uc3RfaW50IDApKQotICAgKHNldCAoc3RyaWN0X2xvd19wYXJ0IChtYXRjaF9kdXAgMCkpCi0J KG1hdGNoX2R1cCAxKSldCi0gICIiKQotCi0oZGVmaW5lX3BlZXBob2xlMgotICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKLQkobWF0Y2hfb3BlcmFuZDpT SSAxICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIiIpKQotICAgKHNldCAobWF0Y2hfZHVwIDApCi0J KGFuZDpTSSAobWF0Y2hfZHVwIDApCi0JCShjb25zdF9pbnQgMjU1KSkpXQotICAiIXJlZ19vdmVy bGFwX21lbnRpb25lZF9wIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0pCi0gICAmJiAhKEdFVF9D T0RFIChvcGVyYW5kc1sxXSkgPT0gTUVNICYmICFvZmZzZXR0YWJsZV9tZW1yZWZfcCAob3BlcmFu ZHNbMV0pKQotICAgJiYgIShHRVRfQ09ERSAob3BlcmFuZHNbMV0pID09IE1FTSAmJiBNRU1fVk9M QVRJTEVfUCAob3BlcmFuZHNbMV0pKSIKLSAgWyhzZXQgKG1hdGNoX2R1cCAwKQotCShjb25zdF9p bnQgMCkpCi0gICAoc2V0IChzdHJpY3RfbG93X3BhcnQgKG1hdGNoX2R1cCAyKSkKLQkobWF0Y2hf ZHVwIDMpKV0KLSAgewotICAgIG9wZXJhbmRzWzJdID0gZ2VuX2xvd3BhcnQgKFFJbW9kZSwgb3Bl cmFuZHNbMF0pOwotICAgIG9wZXJhbmRzWzNdID0gZ2VuX2xvd3BhcnQgKFFJbW9kZSwgb3BlcmFu ZHNbMV0pOwotICB9KQotCi0oZGVmaW5lX3BlZXBob2xlMgotICBbKHNldCAobWF0Y2hfb3BlcmFu ZCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKLQkobWF0Y2hfb3BlcmFuZCAxICJub25pbW1lZGlh dGVfb3BlcmFuZCIgIiIpKQotICAgKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAyICJyZWdpc3Rlcl9v cGVyYW5kIiAiIikKLQkoYW5kOlNJIChtYXRjaF9kdXAgMikKLQkJKG1hdGNoX29wZXJhbmQ6U0kg MyAiY29uc3RfaW50X3FpX29wZXJhbmQiICIiKSkpXQotICAiKEdFVF9NT0RFIChvcGVyYW5kc1sw XSkgPT0gUUltb2RlCi0gICAgfHwgR0VUX01PREUgKG9wZXJhbmRzWzBdKSA9PSBISW1vZGUKLSAg ICB8fCBHRVRfTU9ERSAob3BlcmFuZHNbMF0pID09IFNJbW9kZSkKLSAgICYmIEdFVF9NT0RFIChv cGVyYW5kc1swXSkgPT0gR0VUX01PREUgKG9wZXJhbmRzWzFdKQotICAgJiYgUkVHTk8gKG9wZXJh bmRzWzBdKSA9PSBSRUdOTyAob3BlcmFuZHNbMl0pCi0gICAmJiAhcmVnX292ZXJsYXBfbWVudGlv bmVkX3AgKG9wZXJhbmRzWzJdLCBvcGVyYW5kc1sxXSkKLSAgICYmICEoR0VUX01PREUgKG9wZXJh bmRzWzFdKSAhPSBRSW1vZGUKLQkmJiBHRVRfQ09ERSAob3BlcmFuZHNbMV0pID09IE1FTQotCSYm ICFvZmZzZXR0YWJsZV9tZW1yZWZfcCAob3BlcmFuZHNbMV0pKQotICAgJiYgIShHRVRfTU9ERSAo b3BlcmFuZHNbMV0pICE9IFFJbW9kZQotCSYmIEdFVF9DT0RFIChvcGVyYW5kc1sxXSkgPT0gTUVN Ci0JJiYgTUVNX1ZPTEFUSUxFX1AgKG9wZXJhbmRzWzFdKSkiCi0gIFsoc2V0IChtYXRjaF9kdXAg MikKLQkoY29uc3RfaW50IDApKQotICAgKHNldCAoc3RyaWN0X2xvd19wYXJ0IChtYXRjaF9kdXAg NCkpCi0JKG1hdGNoX2R1cCA1KSkKLSAgIChzZXQgKG1hdGNoX2R1cCAyKQotCShhbmQ6U0kgKG1h dGNoX2R1cCAyKQotCQkobWF0Y2hfZHVwIDYpKSldCi0gIHsKLSAgICBvcGVyYW5kc1s0XSA9IGdl bl9sb3dwYXJ0IChRSW1vZGUsIG9wZXJhbmRzWzBdKTsKLSAgICBvcGVyYW5kc1s1XSA9IGdlbl9s b3dwYXJ0IChRSW1vZGUsIG9wZXJhbmRzWzFdKTsKLSAgICBvcGVyYW5kc1s2XSA9IEdFTl9JTlQg KH4weGZmIHwgSU5UVkFMIChvcGVyYW5kc1szXSkpOwotICB9KQotCi0oZGVmaW5lX3BlZXBob2xl MgotICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKLQko bWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikpCi0gICAoc2V0IChtYXRj aF9kdXAgMCkKLQkoYW5kOlNJIChtYXRjaF9kdXAgMCkKLQkJKGNvbnN0X2ludCA2NTI4MCkpKV0K LSAgIiFyZWdfb3ZlcmxhcF9tZW50aW9uZWRfcCAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdKSIK LSAgWyhzZXQgKG1hdGNoX2R1cCAwKQotCShjb25zdF9pbnQgMCkpCi0gICAoc2V0ICh6ZXJvX2V4 dHJhY3Q6U0kgKG1hdGNoX2R1cCAwKQotCQkJIChjb25zdF9pbnQgOCkKLQkJCSAoY29uc3RfaW50 IDgpKQotCShsc2hpZnRydDpTSSAobWF0Y2hfZHVwIDEpCi0JCSAgICAgKGNvbnN0X2ludCA4KSkp XQotICAiIikKLQogOzsgSWYgYSBsb2FkIG9mIG1lbTpTSSBpcyBmb2xsb3dlZCBieSBhbiBBTkQg dGhhdCB0dXJucyBvZmYgdGhlIHVwcGVyCiA7OyBoYWxmLCB0aGVuIHdlIGNhbiBsb2FkIG1lbTpI SSBpbnN0ZWFkLgogCkBAIC01NDYsMjAgKzQ1Niw2IEBACiAgICAgb3BlcmFuZHNbNF0gPSBnZW5f bG93cGFydCAoSEltb2RlLCBvcGVyYW5kc1sxXSk7CiAgIH0pCiAKLTs7IENvbnZlcnQgYSBtZW1v cnkgY29tcGFyaXNvbiB0byBhIG1vdmUgaWYgdGhlcmUgaXMgYSBzY3JhdGNoIHJlZ2lzdGVyLgot Ci0oZGVmaW5lX3BlZXBob2xlMgotICBbKG1hdGNoX3NjcmF0Y2g6UUhTSSAxICJyIikKLSAgIChz ZXQgKGNjMCkKLQkoY29tcGFyZSAobWF0Y2hfb3BlcmFuZDpRSFNJIDAgIm1lbW9yeV9vcGVyYW5k IiAiIikKLQkJIChjb25zdF9pbnQgMCkpKV0KLSAgIiIKLSAgWyhzZXQgKG1hdGNoX2R1cCAxKQot CShtYXRjaF9kdXAgMCkpCi0gICAoc2V0IChjYzApIChjb21wYXJlIChtYXRjaF9kdXAgMSkKLQkJ ICAgICAgIChjb25zdF9pbnQgMCkpKV0KLSAgIiIpCi0KIDs7IChjb21wYXJlIChyZWc6SEkpIChj b25zdF9pbnQpKSB0YWtlcyA0IGJ5dGVzLCBzbyB3ZSB0cnkgdG8gYWNoaWV2ZQogOzsgdGhlIGVx dWl2YWxlbnQgd2l0aCBzaG9ydGVyIHNlcXVlbmNlcy4gIEhlcmUgaXMgdGhlIHN1bW1hcnkuICBD YXNlcwogOzsgYXJlIGdyb3VwZWQgZm9yIGVhY2ggZGVmaW5lX3BlZXBob2xlMi4KZGlmZiAtLWdp dCBhL2djYy9jb25maWcvaDgzMDAvcHJlZGljYXRlcy5tZCBiL2djYy9jb25maWcvaDgzMDAvcHJl ZGljYXRlcy5tZAppbmRleCBiNTMwYzJjYjIzZS4uN2M0ZTEyYWIzNzQgMTAwNjQ0Ci0tLSBhL2dj Yy9jb25maWcvaDgzMDAvcHJlZGljYXRlcy5tZAorKysgYi9nY2MvY29uZmlnL2g4MzAwL3ByZWRp Y2F0ZXMubWQKQEAgLTUwMSwzICs1MDEsMTIgQEAKIChkZWZpbmVfcHJlZGljYXRlICJwY19vcl9s YWJlbF9vcGVyYW5kIgogICAobWF0Y2hfY29kZSAicGMsbGFiZWxfcmVmIikpCiAKKyhkZWZpbmVf cHJlZGljYXRlICJzaW1wbGVfbWVtb3J5X29wZXJhbmQiCisgIChtYXRjaF9jb2RlICJtZW0iKQor eworICBpZiAoR0VUX01PREUgKG9wKSA9PSBtb2RlCisgICAgICAmJiAoR0VUX0NPREUgKFhFWFAg KG9wLCAwKSkgIT0gUFJFX0RFQworCSAgJiYgR0VUX0NPREUgKFhFWFAgKG9wLCAwKSkgIT0gUE9T VF9JTkMpKQorICAgIHJldHVybiAxOworICByZXR1cm4gMDsKK30pCmRpZmYgLS1naXQgYS9nY2Mv Y29uZmlnL2g4MzAwL3Byb2VwaS5tZCBiL2djYy9jb25maWcvaDgzMDAvcHJvZXBpLm1kCmluZGV4 IDlkMTlmZjU0MDg0Li40NGQ1OTY4MjQ5NiAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9oODMwMC9w cm9lcGkubWQKKysrIGIvZ2NjL2NvbmZpZy9oODMwMC9wcm9lcGkubWQKQEAgLTM2LDggKzM2LDcg QEAKIAkJCQkgICBYVkVDTEVOIChvcGVyYW5kc1swXSwgMCkgLSAyKSk7CiAgIHJldHVybiAibGRt LmxcdEBlcjcrLCVTMS0lUzMiOwogfQotICBbKHNldF9hdHRyICJjYyIgIm5vbmUiKQotICAgKHNl dF9hdHRyICJsZW5ndGgiICI0IildKQorICBbKHNldF9hdHRyICJsZW5ndGgiICI0IildKQogCiAo ZGVmaW5lX2luc24gInN0bV9oODMwMHN4IgogICBbKG1hdGNoX3BhcmFsbGVsICAgICAgICAgICAw ICJoODMwMF9zdG1fcGFyYWxsZWwiCkBAIC00OSw4ICs0OCw3IEBACiAJCQkJICBYVkVDTEVOIChv cGVyYW5kc1swXSwgMCkgLSAyKSk7CiAgIHJldHVybiAic3RtLmxcdCVTMi0lUzMsQC1lcjciOwog fQotICBbKHNldF9hdHRyICJjYyIgIm5vbmUiKQotICAgKHNldF9hdHRyICJsZW5ndGgiICI0Iild KQorICBbKHNldF9hdHRyICJsZW5ndGgiICI0IildKQogCiAoZGVmaW5lX2luc24gInJldHVybl9o OHN4IgogICBbKG1hdGNoX3BhcmFsbGVsICAgICAgICAgICAwICJoODMwMF9yZXR1cm5fcGFyYWxs ZWwiCkBAIC02Nyw4ICs2NSw3IEBACiAgIGVsc2UKICAgICByZXR1cm4gInJ0cy9sXHQlUzEtJVMz IjsKIH0KLSAgWyhzZXRfYXR0ciAiY2MiICJub25lIikKLSAgIChzZXRfYXR0ciAiY2FuX2RlbGF5 IiAibm8iKQorICBbKHNldF9hdHRyICJjYW5fZGVsYXkiICJubyIpCiAgICAoc2V0X2F0dHIgImxl bmd0aCIgIjIiKV0pCiAKIChkZWZpbmVfZXhwYW5kICJyZXR1cm4iCkBAIC04Niw4ICs4Myw3IEBA CiAgIGVsc2UKICAgICByZXR1cm4gInJ0cyI7CiB9Ci0gIFsoc2V0X2F0dHIgImNjIiAibm9uZSIp Ci0gICAoc2V0X2F0dHIgImNhbl9kZWxheSIgIm5vIikKKyAgWyhzZXRfYXR0ciAiY2FuX2RlbGF5 IiAibm8iKQogICAgKHNldF9hdHRyICJsZW5ndGgiICIyIildKQogCiAoZGVmaW5lX2V4cGFuZCAi cHJvbG9ndWUiCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2g4MzAwL3NoaWZ0cm90YXRlLm1kIGIv Z2NjL2NvbmZpZy9oODMwMC9zaGlmdHJvdGF0ZS5tZAppbmRleCA1YTg1ZTE2NzNmZS4uZjFjODZm N2RhMWMgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvaDgzMDAvc2hpZnRyb3RhdGUubWQKKysrIGIv Z2NjL2NvbmZpZy9oODMwMC9zaGlmdHJvdGF0ZS5tZApAQCAtNTAsMTIgKzUwLDI0IEBACiAKIDs7 IFFJL0hJL1NJIEJJVCBTSElGVFMKIAotKGRlZmluZV9pbnNuICIiCisoZGVmaW5lX2luc25fYW5k X3NwbGl0ICIiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFIU0kgMCAiaDgzMDBfZHN0X29wZXJh bmQiICI9clEiKQogCShtYXRjaF9vcGVyYXRvcjpRSFNJIDMgImg4c3hfdW5hcnlfc2hpZnRfb3Bl cmF0b3IiCiAJIFsobWF0Y2hfb3BlcmFuZDpRSFNJIDEgImg4MzAwX2RzdF9vcGVyYW5kIiAiMCIp CiAJICAobWF0Y2hfb3BlcmFuZDpRSSAyICJjb25zdF9pbnRfb3BlcmFuZCIgIiIpXSkpXQogICAi aDgzMDBfb3BlcmFuZHNfbWF0Y2hfcCAob3BlcmFuZHMpIgorICAiIyIKKyAgInJlbG9hZF9jb21w bGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKSAobWF0Y2hfb3BfZHVwIDMg WyhtYXRjaF9kdXAgMSkgKG1hdGNoX2R1cCAyKV0pKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0Mg Q0NfUkVHKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpR SFNJIDAgImg4MzAwX2RzdF9vcGVyYW5kIiAiPXJRIikKKwkobWF0Y2hfb3BlcmF0b3I6UUhTSSAz ICJoOHN4X3VuYXJ5X3NoaWZ0X29wZXJhdG9yIgorCSBbKG1hdGNoX29wZXJhbmQ6UUhTSSAxICJo ODMwMF9kc3Rfb3BlcmFuZCIgIjAiKQorCSAgKG1hdGNoX29wZXJhbmQ6UUkgMiAiY29uc3RfaW50 X29wZXJhbmQiICIiKV0pKQorICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0KKyAgImg4MzAw X29wZXJhbmRzX21hdGNoX3AgKG9wZXJhbmRzKSIKIHsKICAgaWYgKDxNT0RFPm1vZGUgPT0gRV9R SW1vZGUpCiAgICAgcmV0dXJuIG91dHB1dF9oOHN4X3NoaWZ0IChvcGVyYW5kcywgJ2InLCAnWCcp OwpAQCAtNjUsMTUgKzc3LDQ3IEBACiAgICAgcmV0dXJuIG91dHB1dF9oOHN4X3NoaWZ0IChvcGVy YW5kcywgJ2wnLCAnUycpOwogICBnY2NfdW5yZWFjaGFibGUgKCk7CiB9Ci0gIFsoc2V0X2F0dHIg Imxlbmd0aF90YWJsZSIgInVuYXJ5IikKLSAgIChzZXRfYXR0ciAiY2MiICJzZXRfem52IildKQor ICBbKHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJ1bmFyeSIpXSkKIAogKGRlZmluZV9pbnNuICIi CisgIFsoc2V0IChyZWc6Q0NaTiBDQ19SRUcpCisJKGNvbXBhcmU6Q0NaTgorCSAgKG1hdGNoX29w ZXJhdG9yOlFIU0kgMyAiaDhzeF91bmFyeV9zaGlmdF9vcGVyYXRvciIKKwkgICAgWyhtYXRjaF9v cGVyYW5kOlFIU0kgMSAiaDgzMDBfZHN0X29wZXJhbmQiICIwIikKKwkgICAgIChtYXRjaF9vcGVy YW5kOlFJIDIgImNvbnN0X2ludF9vcGVyYW5kIiAiIildKQorCSAgKGNvbnN0X2ludCAwKSkpCisg ICAoc2V0IChtYXRjaF9vcGVyYW5kOlFIU0kgMCAiaDgzMDBfZHN0X29wZXJhbmQiICI9clEiKQor CShtYXRjaF9vcF9kdXAgMyBbKG1hdGNoX2R1cCAxKSAobWF0Y2hfZHVwIDIpXSkpXQorICAiaDgz MDBfb3BlcmFuZHNfbWF0Y2hfcCAob3BlcmFuZHMpIgoreworICBpZiAoPE1PREU+bW9kZSA9PSBF X1FJbW9kZSkKKyAgICByZXR1cm4gb3V0cHV0X2g4c3hfc2hpZnQgKG9wZXJhbmRzLCAnYicsICdY Jyk7CisgIGlmICg8TU9ERT5tb2RlID09IEVfSEltb2RlKQorICAgIHJldHVybiBvdXRwdXRfaDhz eF9zaGlmdCAob3BlcmFuZHMsICd3JywgJ1QnKTsKKyAgaWYgKDxNT0RFPm1vZGUgPT0gRV9TSW1v ZGUpCisgICAgcmV0dXJuIG91dHB1dF9oOHN4X3NoaWZ0IChvcGVyYW5kcywgJ2wnLCAnUycpOwor ICBnY2NfdW5yZWFjaGFibGUgKCk7Cit9CisgIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgInVu YXJ5IildKQorCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIiCiAgIFsoc2V0IChtYXRjaF9vcGVy YW5kOlFIU0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKIAkobWF0Y2hfb3BlcmF0b3I6UUhT SSAzICJoOHN4X2JpbmFyeV9zaGlmdF9vcGVyYXRvciIKIAkgWyhtYXRjaF9vcGVyYW5kOlFIU0kg MSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKQogCSAgKG1hdGNoX29wZXJhbmQ6UUkgMiAibm9ubWVt b3J5X29wZXJhbmQiICJyIFA1PlgiKV0pKV0KICAgIiIKKyAgIiMiCisgICJyZWxvYWRfY29tcGxl dGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkgKG1hdGNoX29wX2R1cCAzIFso bWF0Y2hfZHVwIDEpIChtYXRjaF9kdXAgMildKSkKKwkgICAgICAoY2xvYmJlciAocmVnOkNDIEND X1JFRykpXSldKQorCisoZGVmaW5lX2luc24gIiIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UUhT SSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQorCShtYXRjaF9vcGVyYXRvcjpRSFNJIDMgImg4 c3hfYmluYXJ5X3NoaWZ0X29wZXJhdG9yIgorCSBbKG1hdGNoX29wZXJhbmQ6UUhTSSAxICJyZWdp c3Rlcl9vcGVyYW5kIiAiMCIpCisJICAobWF0Y2hfb3BlcmFuZDpRSSAyICJub25tZW1vcnlfb3Bl cmFuZCIgInIgUDU+WCIpXSkpCisgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXQorICAiIgog ewogICBpZiAoPE1PREU+bW9kZSA9PSBRSW1vZGUpCiAgICAgcmV0dXJuIG91dHB1dF9oOHN4X3No aWZ0IChvcGVyYW5kcywgJ2InLCAnWCcpOwpAQCAtODMsMjUgKzEyNyw1NyBAQAogICAgIHJldHVy biBvdXRwdXRfaDhzeF9zaGlmdCAob3BlcmFuZHMsICdsJywgJ1MnKTsKICAgZ2NjX3VucmVhY2hh YmxlICgpOwogfQotICBbKHNldF9hdHRyICJsZW5ndGgiICI0IikKLSAgIChzZXRfYXR0ciAiY2Mi ICJzZXRfem52IildKQorICBbKHNldF9hdHRyICJsZW5ndGgiICI0IildKQogCi0oZGVmaW5lX2lu c24gIipzaGlmdHFpIgorKGRlZmluZV9pbnNuICIiCisgIFsoc2V0IChyZWc6Q0NaTiBDQ19SRUcp CisJKGNvbXBhcmU6Q0NaTgorCSAgKG1hdGNoX29wZXJhdG9yOlFIU0kgMyAiaDhzeF9iaW5hcnlf c2hpZnRfb3BlcmF0b3IiCisJICAgWyhtYXRjaF9vcGVyYW5kOlFIU0kgMSAicmVnaXN0ZXJfb3Bl cmFuZCIgIjAiKQorCSAgICAobWF0Y2hfb3BlcmFuZDpRSSAyICJub25tZW1vcnlfb3BlcmFuZCIg InIgUDU+WCIpXSkKKwkgIChjb25zdF9pbnQgMCkpKQorICAgKHNldCAobWF0Y2hfb3BlcmFuZDpR SFNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCisJKG1hdGNoX29wX2R1cCAzIFsobWF0Y2hf ZHVwIDEpIChtYXRjaF9kdXAgMildKSldCisgICIiCit7CisgIGlmICg8TU9ERT5tb2RlID09IFFJ bW9kZSkKKyAgICByZXR1cm4gb3V0cHV0X2g4c3hfc2hpZnQgKG9wZXJhbmRzLCAnYicsICdYJyk7 CisgIGlmICg8TU9ERT5tb2RlID09IEhJbW9kZSkKKyAgICByZXR1cm4gb3V0cHV0X2g4c3hfc2hp ZnQgKG9wZXJhbmRzLCAndycsICdUJyk7CisgIGlmICg8TU9ERT5tb2RlID09IFNJbW9kZSkKKyAg ICByZXR1cm4gb3V0cHV0X2g4c3hfc2hpZnQgKG9wZXJhbmRzLCAnbCcsICdTJyk7CisgIGdjY191 bnJlYWNoYWJsZSAoKTsKK30KKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNCIpXSkKKworKGRlZmlu ZV9pbnNuX2FuZF9zcGxpdCAiKnNoaWZ0cWkiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAg InJlZ2lzdGVyX29wZXJhbmQiICI9cixyIikKIAkobWF0Y2hfb3BlcmF0b3I6UUkgMyAibnNoaWZ0 X29wZXJhdG9yIgogCSBbKG1hdGNoX29wZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAs MCIpCiAJICAobWF0Y2hfb3BlcmFuZDpRSSAyICJub25tZW1vcnlfb3BlcmFuZCIgIlIscm4iKV0p KQogICAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6UUkgNCAiPVgsJnIiKSldCiAgICIiCisgICIj IgorICAicmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDAp IChtYXRjaF9vcF9kdXAgMyBbKG1hdGNoX2R1cCAxKSAobWF0Y2hfZHVwIDIpXSkpCisJICAgICAg KGNsb2JiZXIgKG1hdGNoX2R1cCA0KSkKKwkgICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykp XSldKQorCisoZGVmaW5lX2luc24gIipzaGlmdHFpX2Nsb2JiZXJfZmxhZ3MiCisgIFsoc2V0ICht YXRjaF9vcGVyYW5kOlFJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9cixyIikKKwkobWF0Y2hfb3Bl cmF0b3I6UUkgMyAibnNoaWZ0X29wZXJhdG9yIgorCSBbKG1hdGNoX29wZXJhbmQ6UUkgMSAicmVn aXN0ZXJfb3BlcmFuZCIgIjAsMCIpCisJICAobWF0Y2hfb3BlcmFuZDpRSSAyICJub25tZW1vcnlf b3BlcmFuZCIgIlIscm4iKV0pKQorICAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6UUkgNCAiPVgs JnIiKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldCisgICIiCiB7CiAgIHJldHVybiBv dXRwdXRfYV9zaGlmdCAob3BlcmFuZHMpOwogfQogICBbKHNldCAoYXR0ciAibGVuZ3RoIikKLQko c3ltYm9sX3JlZiAiY29tcHV0ZV9hX3NoaWZ0X2xlbmd0aCAoaW5zbiwgb3BlcmFuZHMpIikpCi0g ICAoc2V0IChhdHRyICJjYyIpCi0JKHN5bWJvbF9yZWYgImNvbXB1dGVfYV9zaGlmdF9jYyAoaW5z biwgb3BlcmFuZHMpIikpXSkKKwkoc3ltYm9sX3JlZiAiY29tcHV0ZV9hX3NoaWZ0X2xlbmd0aCAo aW5zbiwgb3BlcmFuZHMpIikpXSkKIAotKGRlZmluZV9pbnNuICIqc2hpZnRxaV9ub3NjcmF0Y2gi CisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqc2hpZnRxaV9ub3NjcmF0Y2giCiAgIFsoc2V0ICht YXRjaF9vcGVyYW5kOlFJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9cixyIikKIAkobWF0Y2hfb3Bl cmF0b3I6UUkgMyAibnNoaWZ0X29wZXJhdG9yIgogCSBbKG1hdGNoX29wZXJhbmQ6UUkgMSAicmVn aXN0ZXJfb3BlcmFuZCIgIjAsMCIpCkBAIC0xMDksMzQgKzE4NSw3MiBAQAogICAiKEdFVF9DT0RF IChvcGVyYW5kc1syXSkgPT0gQ09OU1RfSU5UCiAgICAgJiYgIWg4MzAwX3NoaWZ0X25lZWRzX3Nj cmF0Y2hfcCAoSU5UVkFMIChvcGVyYW5kc1syXSksIFFJbW9kZSwKIAkJCQkgICAgIEdFVF9DT0RF IChvcGVyYW5kc1szXSkpKSIKKyAgIiMiCisgICJyZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFs bGVsIFsoc2V0IChtYXRjaF9kdXAgMCkgKG1hdGNoX29wX2R1cCAzIFsobWF0Y2hfZHVwIDEpICht YXRjaF9kdXAgMildKSkKKwkgICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXSldKQorCiso ZGVmaW5lX2luc24gIipzaGlmdHFpX25vc2NyYXRjaF9jbG9iYmVyX2ZsYWdzIgorICBbKHNldCAo bWF0Y2hfb3BlcmFuZDpRSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIsciIpCisJKG1hdGNoX29w ZXJhdG9yOlFJIDMgIm5zaGlmdF9vcGVyYXRvciIKKwkgWyhtYXRjaF9vcGVyYW5kOlFJIDEgInJl Z2lzdGVyX29wZXJhbmQiICIwLDAiKQorCSAgKG1hdGNoX29wZXJhbmQ6UUkgMiAibm9ubWVtb3J5 X29wZXJhbmQiICJSLHJuIildKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldCisgICIo R0VUX0NPREUgKG9wZXJhbmRzWzJdKSA9PSBDT05TVF9JTlQKKyAgICAmJiAhaDgzMDBfc2hpZnRf bmVlZHNfc2NyYXRjaF9wIChJTlRWQUwgKG9wZXJhbmRzWzJdKSwgUUltb2RlLAorCQkJCSAgICAg R0VUX0NPREUgKG9wZXJhbmRzWzNdKSkpIgogewogICByZXR1cm4gb3V0cHV0X2Ffc2hpZnQgKG9w ZXJhbmRzKTsKIH0KICAgWyhzZXQgKGF0dHIgImxlbmd0aCIpCi0JKHN5bWJvbF9yZWYgImNvbXB1 dGVfYV9zaGlmdF9sZW5ndGggKGluc24sIG9wZXJhbmRzKSIpKQotICAgKHNldCAoYXR0ciAiY2Mi KQotCShzeW1ib2xfcmVmICJjb21wdXRlX2Ffc2hpZnRfY2MgKGluc24sIG9wZXJhbmRzKSIpKV0p CisJKHN5bWJvbF9yZWYgImNvbXB1dGVfYV9zaGlmdF9sZW5ndGggKGluc24sIG9wZXJhbmRzKSIp KV0pCiAKLShkZWZpbmVfaW5zbiAiKnNoaWZ0aGkiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIq c2hpZnRoaSIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIg Ij1yLHIiKQogCShtYXRjaF9vcGVyYXRvcjpISSAzICJuc2hpZnRfb3BlcmF0b3IiCiAJIFsobWF0 Y2hfb3BlcmFuZDpISSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCwwIikKIAkgIChtYXRjaF9vcGVy YW5kOlFJIDIgIm5vbm1lbW9yeV9vcGVyYW5kIiAiUyxybiIpXSkpCiAgICAoY2xvYmJlciAobWF0 Y2hfc2NyYXRjaDpRSSA0ICI9WCwmciIpKV0KICAgIiIKKyAgIiMiCisgICJyZWxvYWRfY29tcGxl dGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkgKG1hdGNoX29wX2R1cCAzIFso bWF0Y2hfZHVwIDEpIChtYXRjaF9kdXAgMildKSkKKwkgICAgICAoY2xvYmJlciAobWF0Y2hfZHVw IDQpKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldKV0pCisKKyhkZWZpbmVfaW5z biAiKnNoaWZ0aGlfY2xvYmJlcl9mbGFncyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAi cmVnaXN0ZXJfb3BlcmFuZCIgIj1yLHIiKQorCShtYXRjaF9vcGVyYXRvcjpISSAzICJuc2hpZnRf b3BlcmF0b3IiCisJIFsobWF0Y2hfb3BlcmFuZDpISSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCww IikKKwkgIChtYXRjaF9vcGVyYW5kOlFJIDIgIm5vbm1lbW9yeV9vcGVyYW5kIiAiUyxybiIpXSkp CisgICAoY2xvYmJlciAobWF0Y2hfc2NyYXRjaDpRSSA0ICI9WCwmciIpKQorICAgKGNsb2JiZXIg KHJlZzpDQyBDQ19SRUcpKV0KKyAgIiIKIHsKICAgcmV0dXJuIG91dHB1dF9hX3NoaWZ0IChvcGVy YW5kcyk7CiB9CiAgIFsoc2V0IChhdHRyICJsZW5ndGgiKQotCShzeW1ib2xfcmVmICJjb21wdXRl X2Ffc2hpZnRfbGVuZ3RoIChpbnNuLCBvcGVyYW5kcykiKSkKLSAgIChzZXQgKGF0dHIgImNjIikK LQkoc3ltYm9sX3JlZiAiY29tcHV0ZV9hX3NoaWZ0X2NjIChpbnNuLCBvcGVyYW5kcykiKSldKQor CShzeW1ib2xfcmVmICJjb21wdXRlX2Ffc2hpZnRfbGVuZ3RoIChpbnNuLCBvcGVyYW5kcykiKSld KQogCi0oZGVmaW5lX2luc24gIipzaGlmdGhpX25vc2NyYXRjaCIKKyhkZWZpbmVfaW5zbl9hbmRf c3BsaXQgIipzaGlmdGhpX25vc2NyYXRjaCIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAi cmVnaXN0ZXJfb3BlcmFuZCIgIj1yLHIiKQogCShtYXRjaF9vcGVyYXRvcjpISSAzICJuc2hpZnRf b3BlcmF0b3IiCiAJIFsobWF0Y2hfb3BlcmFuZDpISSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCww IikKLQkgIChtYXRjaF9vcGVyYW5kOlFJIDIgIm5vbm1lbW9yeV9vcGVyYW5kIiAiUyxybiIpXSkp XQorCSAgKG1hdGNoX29wZXJhbmQ6SEkgMiAibm9ubWVtb3J5X29wZXJhbmQiICJTLHJuIildKSld CisgICIoR0VUX0NPREUgKG9wZXJhbmRzWzJdKSA9PSBDT05TVF9JTlQKKyAgICAmJiAhaDgzMDBf c2hpZnRfbmVlZHNfc2NyYXRjaF9wIChJTlRWQUwgKG9wZXJhbmRzWzJdKSwgSEltb2RlLAorCQkJ CSAgICAgR0VUX0NPREUgKG9wZXJhbmRzWzNdKSkpIgorICAiIyIKKyAgInJlbG9hZF9jb21wbGV0 ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKSAobWF0Y2hfb3BfZHVwIDMgWyht YXRjaF9kdXAgMSkgKG1hdGNoX2R1cCAyKV0pKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0Nf UkVHKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKnNoaWZ0aGlfbm9zY3JhdGNoX2Nsb2JiZXJfZmxh Z3MiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9cixy IikKKwkobWF0Y2hfb3BlcmF0b3I6SEkgMyAibnNoaWZ0X29wZXJhdG9yIgorCSBbKG1hdGNoX29w ZXJhbmQ6SEkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAsMCIpCisJICAobWF0Y2hfb3BlcmFuZDpI SSAyICJub25tZW1vcnlfb3BlcmFuZCIgIlMscm4iKV0pKQorICAgKGNsb2JiZXIgKHJlZzpDQyBD Q19SRUcpKV0KICAgIihHRVRfQ09ERSAob3BlcmFuZHNbMl0pID09IENPTlNUX0lOVAogICAgICYm ICFoODMwMF9zaGlmdF9uZWVkc19zY3JhdGNoX3AgKElOVFZBTCAob3BlcmFuZHNbMl0pLCBISW1v ZGUsCiAJCQkJICAgICBHRVRfQ09ERSAob3BlcmFuZHNbM10pKSkiCkBAIC0xNDQsMjYgKzI1OCwz NiBAQAogICByZXR1cm4gb3V0cHV0X2Ffc2hpZnQgKG9wZXJhbmRzKTsKIH0KICAgWyhzZXQgKGF0 dHIgImxlbmd0aCIpCi0JKHN5bWJvbF9yZWYgImNvbXB1dGVfYV9zaGlmdF9sZW5ndGggKGluc24s IG9wZXJhbmRzKSIpKQotICAgKHNldCAoYXR0ciAiY2MiKQotCShzeW1ib2xfcmVmICJjb21wdXRl X2Ffc2hpZnRfY2MgKGluc24sIG9wZXJhbmRzKSIpKV0pCisJKHN5bWJvbF9yZWYgImNvbXB1dGVf YV9zaGlmdF9sZW5ndGggKGluc24sIG9wZXJhbmRzKSIpKV0pCiAKLShkZWZpbmVfaW5zbiAiKnNo aWZ0c2kiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqc2hpZnRzaSIKICAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yLHIiKQogCShtYXRjaF9vcGVyYXRv cjpTSSAzICJuc2hpZnRfb3BlcmF0b3IiCiAJIFsobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rl cl9vcGVyYW5kIiAiMCwwIikKIAkgIChtYXRjaF9vcGVyYW5kOlFJIDIgIm5vbm1lbW9yeV9vcGVy YW5kIiAiVCxybiIpXSkpCiAgICAoY2xvYmJlciAobWF0Y2hfc2NyYXRjaDpRSSA0ICI9WCwmciIp KV0KICAgIiIKKyAgIiMiCisgICJyZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0 IChtYXRjaF9kdXAgMCkgKG1hdGNoX29wX2R1cCAzIFsobWF0Y2hfZHVwIDEpIChtYXRjaF9kdXAg MildKSkKKwkgICAgICAoY2xvYmJlciAobWF0Y2hfZHVwIDQpKQorCSAgICAgIChjbG9iYmVyIChy ZWc6Q0MgQ0NfUkVHKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKnNoaWZ0c2lfY2xvYmJlcl9mbGFn cyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yLHIi KQorCShtYXRjaF9vcGVyYXRvcjpTSSAzICJuc2hpZnRfb3BlcmF0b3IiCisJIFsobWF0Y2hfb3Bl cmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCwwIikKKwkgIChtYXRjaF9vcGVyYW5kOlFJ IDIgIm5vbm1lbW9yeV9vcGVyYW5kIiAiVCxybiIpXSkpCisgICAoY2xvYmJlciAobWF0Y2hfc2Ny YXRjaDpRSSA0ICI9WCwmciIpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0KKyAgIiIK IHsKICAgcmV0dXJuIG91dHB1dF9hX3NoaWZ0IChvcGVyYW5kcyk7CiB9CiAgIFsoc2V0IChhdHRy ICJsZW5ndGgiKQotCShzeW1ib2xfcmVmICJjb21wdXRlX2Ffc2hpZnRfbGVuZ3RoIChpbnNuLCBv cGVyYW5kcykiKSkKLSAgIChzZXQgKGF0dHIgImNjIikKLQkoc3ltYm9sX3JlZiAiY29tcHV0ZV9h X3NoaWZ0X2NjIChpbnNuLCBvcGVyYW5kcykiKSldKQorCShzeW1ib2xfcmVmICJjb21wdXRlX2Ff c2hpZnRfbGVuZ3RoIChpbnNuLCBvcGVyYW5kcykiKSldKQogCi0oZGVmaW5lX2luc24gIipzaGlm dHNpX25vc2NyYXRjaCIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIipzaGlmdHNpX25vc2NyYXRj aCIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yLHIi KQogCShtYXRjaF9vcGVyYXRvcjpTSSAzICJuc2hpZnRfb3BlcmF0b3IiCiAJIFsobWF0Y2hfb3Bl cmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCwwIikKQEAgLTE3MSwxNCArMjk1LDI1IEBA CiAgICIoR0VUX0NPREUgKG9wZXJhbmRzWzJdKSA9PSBDT05TVF9JTlQKICAgICAmJiAhaDgzMDBf c2hpZnRfbmVlZHNfc2NyYXRjaF9wIChJTlRWQUwgKG9wZXJhbmRzWzJdKSwgU0ltb2RlLAogCQkJ CSAgICAgR0VUX0NPREUgKG9wZXJhbmRzWzNdKSkpIgorICAiIyIKKyAgInJlbG9hZF9jb21wbGV0 ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKSAobWF0Y2hfb3BfZHVwIDMgWyht YXRjaF9kdXAgMSkgKG1hdGNoX2R1cCAyKV0pKQorCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0Nf UkVHKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKnNoaWZ0c2lfbm9zY3JhdGNoX2Nsb2JiZXJfZmxh Z3MiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9cixy IikKKwkobWF0Y2hfb3BlcmF0b3I6U0kgMyAibnNoaWZ0X29wZXJhdG9yIgorCSBbKG1hdGNoX29w ZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAsMCIpCisJICAobWF0Y2hfb3BlcmFuZDpT SSAyICJub25tZW1vcnlfb3BlcmFuZCIgIlQscm4iKV0pKQorICAgKGNsb2JiZXIgKHJlZzpDQyBD Q19SRUcpKV0KKyAgIihHRVRfQ09ERSAob3BlcmFuZHNbMl0pID09IENPTlNUX0lOVAorICAgICYm ICFoODMwMF9zaGlmdF9uZWVkc19zY3JhdGNoX3AgKElOVFZBTCAob3BlcmFuZHNbMl0pLCBTSW1v ZGUsCisJCQkJICAgICBHRVRfQ09ERSAob3BlcmFuZHNbM10pKSkiCiB7CiAgIHJldHVybiBvdXRw dXRfYV9zaGlmdCAob3BlcmFuZHMpOwogfQogICBbKHNldCAoYXR0ciAibGVuZ3RoIikKLQkoc3lt Ym9sX3JlZiAiY29tcHV0ZV9hX3NoaWZ0X2xlbmd0aCAoaW5zbiwgb3BlcmFuZHMpIikpCi0gICAo c2V0IChhdHRyICJjYyIpCi0JKHN5bWJvbF9yZWYgImNvbXB1dGVfYV9zaGlmdF9jYyAoaW5zbiwg b3BlcmFuZHMpIikpXSkKLQorCShzeW1ib2xfcmVmICJjb21wdXRlX2Ffc2hpZnRfbGVuZ3RoIChp bnNuLCBvcGVyYW5kcykiKSldKQogCiA7OyBTcGxpdCBhIHZhcmlhYmxlIHNoaWZ0IGludG8gYSBs b29wLiAgSWYgdGhlIHJlZ2lzdGVyIGNvbnRhaW5pbmcKIDs7IHRoZSBzaGlmdCBjb3VudCBkaWVz LCB0aGVuIHdlIGp1c3QgdXNlIHRoYXQgcmVnaXN0ZXIuCkBAIC0xODgsMTIgKzMyMywxMiBAQAog CShtYXRjaF9vcGVyYXRvciAyICJuc2hpZnRfb3BlcmF0b3IiCiAJIFsobWF0Y2hfZHVwIDApCiAJ ICAobWF0Y2hfb3BlcmFuZDpRSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiIildKSkKLSAgIChjbG9i YmVyIChtYXRjaF9vcGVyYW5kOlFJIDMgInJlZ2lzdGVyX29wZXJhbmQiICIiKSldCisgICAoY2xv YmJlciAobWF0Y2hfb3BlcmFuZDpRSSAzICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikpCisgICAoY2xv YmJlciAocmVnOkNDIENDX1JFRykpXQogICAiZXBpbG9ndWVfY29tcGxldGVkCiAgICAmJiBmaW5k X3JlZ25vX25vdGUgKGluc24sIFJFR19ERUFELCBSRUdOTyAob3BlcmFuZHNbMV0pKSIKLSAgWyhz ZXQgKGNjMCkgKGNvbXBhcmUgKG1hdGNoX2R1cCAxKSAoY29uc3RfaW50IDApKSkKLSAgIChzZXQg KHBjKQotICAgICAgICAoaWZfdGhlbl9lbHNlIChsZSAoY2MwKSAoY29uc3RfaW50IDApKQorICBb KHNldCAocGMpCisgICAgICAgIChpZl90aGVuX2Vsc2UgKGxlIChtYXRjaF9kdXAgMSkgKGNvbnN0 X2ludCAwKSkKIAkJICAgICAgKGxhYmVsX3JlZiAobWF0Y2hfZHVwIDUpKQogCQkgICAgICAocGMp KSkKICAgIChtYXRjaF9kdXAgNCkKQEAgLTIwMiw5ICszMzcsOCBAQAogCSAgIChtYXRjaF9vcF9k dXAgMiBbKG1hdGNoX2R1cCAwKSAoY29uc3RfaW50IDEpXSkpCiAgICAgICAoY2xvYmJlciAoc2Ny YXRjaDpRSSkpXSkKICAgIChzZXQgKG1hdGNoX2R1cCAxKSAocGx1czpRSSAobWF0Y2hfZHVwIDEp IChjb25zdF9pbnQgLTEpKSkKLSAgIChzZXQgKGNjMCkgKGNvbXBhcmUgKG1hdGNoX2R1cCAxKSAo Y29uc3RfaW50IDApKSkKICAgIChzZXQgKHBjKQotICAgICAgICAoaWZfdGhlbl9lbHNlIChuZSAo Y2MwKSAoY29uc3RfaW50IDApKQorICAgICAgICAoaWZfdGhlbl9lbHNlIChuZSAobWF0Y2hfZHVw IDEpIChjb25zdF9pbnQgMCkpCiAJCSAgICAgIChsYWJlbF9yZWYgKG1hdGNoX2R1cCA0KSkKIAkJ ICAgICAgKHBjKSkpCiAgICAobWF0Y2hfZHVwIDUpXQpAQCAtMjE4LDE0ICszNTIsMTQgQEAKIAko bWF0Y2hfb3BlcmF0b3IgMiAibnNoaWZ0X29wZXJhdG9yIgogCSBbKG1hdGNoX2R1cCAwKQogCSAg KG1hdGNoX29wZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpXSkpCi0gICAoY2xvYmJl ciAobWF0Y2hfb3BlcmFuZDpRSSAzICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikpXQorICAgKGNsb2Ji ZXIgKG1hdGNoX29wZXJhbmQ6UUkgMyAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpKQorICAgKGNsb2Ji ZXIgKHJlZzpDQyBDQ19SRUcpKV0KICAgImVwaWxvZ3VlX2NvbXBsZXRlZAogICAgJiYgIWZpbmRf cmVnbm9fbm90ZSAoaW5zbiwgUkVHX0RFQUQsIFJFR05PIChvcGVyYW5kc1sxXSkpIgogICBbKHNl dCAobWF0Y2hfZHVwIDMpCiAJKG1hdGNoX2R1cCAxKSkKLSAgIChzZXQgKGNjMCkgKGNvbXBhcmUg KG1hdGNoX2R1cCAzKSAoY29uc3RfaW50IDApKSkKICAgIChzZXQgKHBjKQotICAgICAgICAoaWZf dGhlbl9lbHNlIChsZSAoY2MwKSAoY29uc3RfaW50IDApKQorICAgICAgICAoaWZfdGhlbl9lbHNl IChsZSAobWF0Y2hfZHVwIDMpIChjb25zdF9pbnQgMCkpCiAJCSAgICAgIChsYWJlbF9yZWYgKG1h dGNoX2R1cCA1KSkKIAkJICAgICAgKHBjKSkpCiAgICAobWF0Y2hfZHVwIDQpCkBAIC0yMzQsOSAr MzY4LDggQEAKIAkgICAobWF0Y2hfb3BfZHVwIDIgWyhtYXRjaF9kdXAgMCkgKGNvbnN0X2ludCAx KV0pKQogICAgICAgKGNsb2JiZXIgKHNjcmF0Y2g6UUkpKV0pCiAgICAoc2V0IChtYXRjaF9kdXAg MykgKHBsdXM6UUkgKG1hdGNoX2R1cCAzKSAoY29uc3RfaW50IC0xKSkpCi0gICAoc2V0IChjYzAp IChjb21wYXJlIChtYXRjaF9kdXAgMykgKGNvbnN0X2ludCAwKSkpCiAgICAoc2V0IChwYykKLSAg ICAgICAgKGlmX3RoZW5fZWxzZSAobmUgKGNjMCkgKGNvbnN0X2ludCAwKSkKKyAgICAgICAgKGlm X3RoZW5fZWxzZSAobmUgKG1hdGNoX2R1cCAzKSAoY29uc3RfaW50IDApKQogCQkgICAgICAobGFi ZWxfcmVmIChtYXRjaF9kdXAgNCkpCiAJCSAgICAgIChwYykpKQogICAgKG1hdGNoX2R1cCA1KV0K QEAgLTI0NCw2ICszNzcsMTggQEAKICAgICBvcGVyYW5kc1s0XSA9IGdlbl9sYWJlbF9ydHggKCk7 CiAgICAgb3BlcmFuZHNbNV0gPSBnZW5fbGFiZWxfcnR4ICgpOwogICB9KQorCisoZGVmaW5lX3Nw bGl0CisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiKQorCSht YXRjaF9vcGVyYXRvcjpTSSAzICJuc2hpZnRfb3BlcmF0b3IiCisJIFsobWF0Y2hfb3BlcmFuZDpT SSAxICJyZWdpc3Rlcl9vcGVyYW5kIikKKwkgIChtYXRjaF9vcGVyYW5kOlFJIDIgIm5vbm1lbW9y eV9vcGVyYW5kIildKSkKKyAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlFJIDQpKV0KKyAgInJl bG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKSAobWF0Y2hf b3BfZHVwIDMgWyhtYXRjaF9kdXAgMSkgKG1hdGNoX2R1cCAyKV0pKQorCSAgICAgIChjbG9iYmVy IChtYXRjaF9kdXAgNCkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pXSkKKwog DAogOzsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogOzsgUk9UQVRJT05TCkBAIC0yNTksMTEgKzQwNCwyMiBAQAog ICAgIERPTkU7CiAgIH0pCiAKLShkZWZpbmVfaW5zbiAicm90bDxtb2RlPjNfMSIKKyhkZWZpbmVf aW5zbl9hbmRfc3BsaXQgInJvdGw8bW9kZT4zXzEiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFI U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKIAkocm90YXRlOlFIU0kgKG1hdGNoX29wZXJh bmQ6UUhTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpCiAJCSAgICAgKG1hdGNoX29wZXJhbmQ6 UUkgMiAiaW1tZWRpYXRlX29wZXJhbmQiICIiKSkpXQogICAiIgorICAiIyIKKyAgInJlbG9hZF9j b21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKSAocm90YXRlOlFIU0kg KG1hdGNoX2R1cCAxKSAobWF0Y2hfZHVwIDIpKSkKKwkgICAgICAoY2xvYmJlciAocmVnOkNDIEND X1JFRykpXSldKQorCisoZGVmaW5lX2luc24gInJvdGw8bW9kZT4zXzFfY2xvYmJlcl9mbGFncyIK KyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UUhTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQor CShyb3RhdGU6UUhTSSAobWF0Y2hfb3BlcmFuZDpRSFNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIw IikKKwkJICAgICAobWF0Y2hfb3BlcmFuZDpRSSAyICJpbW1lZGlhdGVfb3BlcmFuZCIgIiIpKSkK KyAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHKSldCisgICIiCiB7CiAgIHJldHVybiBvdXRwdXRf YV9yb3RhdGUgKFJPVEFURSwgb3BlcmFuZHMpOwogfQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9o ODMwMC90ZXN0Y29tcGFyZS5tZCBiL2djYy9jb25maWcvaDgzMDAvdGVzdGNvbXBhcmUubWQKaW5k ZXggMTE4ZGIxNDVhOGEuLjNlYzk2MWRkNzE3IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2g4MzAw L3Rlc3Rjb21wYXJlLm1kCisrKyBiL2djYy9jb25maWcvaDgzMDAvdGVzdGNvbXBhcmUubWQKQEAg LTIsMTY0ICsyLDE1NSBAQAogOzsgVEVTVCBJTlNUUlVDVElPTlMKIDs7IC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K IAotKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKnRzdF9leHR6dl8xX24iCi0gIFsoc2V0IChjYzAp Ci0JKGNvbXBhcmUgKHplcm9fZXh0cmFjdDpTSSAobWF0Y2hfb3BlcmFuZDpRSSAwICJnZW5lcmFs X29wZXJhbmRfc3JjIiAicixVLG1uPiIpCi0JCQkJICAoY29uc3RfaW50IDEpCi0JCQkJICAobWF0 Y2hfb3BlcmFuZCAxICJjb25zdF9pbnRfb3BlcmFuZCIgIm4sbixuIikpCi0JCSAoY29uc3RfaW50 IDApKSkKLSAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlFJIDIgIj1YLFgsJnIiKSldCi0gICIh Q09OU1RBTlRfUCAob3BlcmFuZHNbMF0pIgotICAiQAotICAgYnRzdFxcdCVaMSwlWTAKLSAgIGJ0 c3RcXHQlWjEsJVkwCi0gICAjIgotICAiJiYgcmVsb2FkX2NvbXBsZXRlZAotICAgJiYgIXNhdGlz Zmllc19jb25zdHJhaW50X1UgKG9wZXJhbmRzWzBdKSIKLSAgWyhzZXQgKG1hdGNoX2R1cCAyKQot CShtYXRjaF9kdXAgMCkpCi0gICAocGFyYWxsZWwgWyhzZXQgKGNjMCkgKGNvbXBhcmUgKHplcm9f ZXh0cmFjdDpTSSAobWF0Y2hfZHVwIDIpCi0JCQkJCQkgICAoY29uc3RfaW50IDEpCi0JCQkJCQkg ICAobWF0Y2hfZHVwIDEpKQotCQkJCSAgKGNvbnN0X2ludCAwKSkpCi0JICAgICAgKGNsb2JiZXIg KHNjcmF0Y2g6UUkpKV0pXQotICAiIgotICBbKHNldF9hdHRyICJsZW5ndGgiICIyLDgsMTAiKQot ICAgKHNldF9hdHRyICJjYyIgInNldF96bixzZXRfem4sc2V0X3puIildKQotCi0oZGVmaW5lX2lu c24gIiIKLSAgWyhzZXQgKGNjMCkKLQkoY29tcGFyZSAoemVyb19leHRyYWN0OkhTSSAobWF0Y2hf b3BlcmFuZDpIU0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKQotCQkJCSAgIChjb25zdF9pbnQg MSkKLQkJCQkgICAobWF0Y2hfb3BlcmFuZCAxICJjb25zdF9pbnRfb3BlcmFuZCIgIm4iKSkKLQkJ IChjb25zdF9pbnQgMCkpKV0KLSAgIklOVFZBTCAob3BlcmFuZHNbMV0pIDw9IDE1IgotICAiYnRz dAklWjEsJVkwIgotICBbKHNldF9hdHRyICJsZW5ndGgiICIyIikKLSAgIChzZXRfYXR0ciAiY2Mi ICJzZXRfem4iKV0pCi0KLShkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIip0c3RzaV91cHBlcl9iaXQi Ci0gIFsoc2V0IChjYzApCi0JKGNvbXBhcmUgKHplcm9fZXh0cmFjdDpTSSAobWF0Y2hfb3BlcmFu ZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpCi0JCQkJICAoY29uc3RfaW50IDEpCi0JCQkJ ICAobWF0Y2hfb3BlcmFuZCAxICJjb25zdF9pbnRfb3BlcmFuZCIgIm4iKSkKLQkJIChjb25zdF9p bnQgMCkpKQotICAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6U0kgMiAiPSZyIikpXQotICAiSU5U VkFMIChvcGVyYW5kc1sxXSkgPj0gMTYiCi0gICIjIgotICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIK LSAgWyhzZXQgKG1hdGNoX2R1cCAyKQotCShpb3I6U0kgKGFuZDpTSSAobWF0Y2hfZHVwIDIpCi0J CQkoY29uc3RfaW50IC02NTUzNikpCi0JCShsc2hpZnRydDpTSSAobWF0Y2hfZHVwIDApCi0JCQkg ICAgIChjb25zdF9pbnQgMTYpKSkpCi0gICAoc2V0IChjYzApCi0JKGNvbXBhcmUgKHplcm9fZXh0 cmFjdDpTSSAobWF0Y2hfZHVwIDIpCi0JCQkJICAoY29uc3RfaW50IDEpCi0JCQkJICAobWF0Y2hf ZHVwIDMpKQotCQkgKGNvbnN0X2ludCAwKSkpXQotICB7Ci0gICAgb3BlcmFuZHNbM10gPSBHRU5f SU5UIChJTlRWQUwgKG9wZXJhbmRzWzFdKSAtIDE2KTsKLSAgfSkKLQotKGRlZmluZV9pbnNuICIq dHN0c2lfdmFyaWFibGVfYml0IgotICBbKHNldCAoY2MwKQotCShjb21wYXJlICh6ZXJvX2V4dHJh Y3Q6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKQotCQkJCSAg KGNvbnN0X2ludCAxKQotCQkJCSAgKGFuZDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rl cl9vcGVyYW5kIiAiciIpCi0JCQkJCSAgKGNvbnN0X2ludCA3KSkpCi0JCSAoY29uc3RfaW50IDAp KSldCi0gICIiCi0gICJidHN0CSV3MSwldzAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjIiKQot ICAgKHNldF9hdHRyICJjYyIgInNldF96biIpXSkKLQotKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAi KnRzdHNpX3ZhcmlhYmxlX2JpdF9xaSIKLSAgWyhzZXQgKGNjMCkKLQkoY29tcGFyZSAoemVyb19l eHRyYWN0OlNJICh6ZXJvX2V4dGVuZDpTSSAobWF0Y2hfb3BlcmFuZDpRSSAwICJnZW5lcmFsX29w ZXJhbmRfc3JjIiAicixVLG1uPiIpKQotCQkJCSAgKGNvbnN0X2ludCAxKQotCQkJCSAgKGFuZDpT SSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAicixyLHIiKQotCQkJCQkg IChjb25zdF9pbnQgNykpKQotCQkgKGNvbnN0X2ludCAwKSkpCi0gICAoY2xvYmJlciAobWF0Y2hf c2NyYXRjaDpRSSAyICI9WCxYLCZyIikpXQotICAiIUNPTlNUQU5UX1AgKG9wZXJhbmRzWzBdKSIK LSAgIkAKLSAgIGJ0c3RcXHQldzEsJVgwCi0gICBidHN0XFx0JXcxLCVYMAotICAgIyIKLSAgIiYm IHJlbG9hZF9jb21wbGV0ZWQKLSAgICYmICFzYXRpc2ZpZXNfY29uc3RyYWludF9VIChvcGVyYW5k c1swXSkiCi0gIFsoc2V0IChtYXRjaF9kdXAgMikKLQkobWF0Y2hfZHVwIDApKQotICAgKHBhcmFs bGVsIFsoc2V0IChjYzApCi0JCSAgIChjb21wYXJlICh6ZXJvX2V4dHJhY3Q6U0kgKHplcm9fZXh0 ZW5kOlNJIChtYXRjaF9kdXAgMikpCi0JCQkJCSAgICAgKGNvbnN0X2ludCAxKQotCQkJCQkgICAg IChhbmQ6U0kgKG1hdGNoX2R1cCAxKQotCQkJCQkJICAgICAoY29uc3RfaW50IDcpKSkKLQkJCSAg ICAoY29uc3RfaW50IDApKSkKLQkgICAgICAoY2xvYmJlciAoc2NyYXRjaDpRSSkpXSldCi0gICIi Ci0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjIsOCwxMCIpCi0gICAoc2V0X2F0dHIgImNjIiAic2V0 X3puLHNldF96bixzZXRfem4iKV0pCis7OyAoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqdHN0X2V4 dHp2XzFfbiIKKzs7ICAgWyhzZXQgKGNjMCkKKzs7IAkoY29tcGFyZSAoemVyb19leHRyYWN0OlNJ IChtYXRjaF9vcGVyYW5kOlFJIDAgImdlbmVyYWxfb3BlcmFuZF9zcmMiICJyLFUsbW4+IikKKzs7 IAkJCQkgIChjb25zdF9pbnQgMSkKKzs7IAkJCQkgIChtYXRjaF9vcGVyYW5kIDEgImNvbnN0X2lu dF9vcGVyYW5kIiAibixuLG4iKSkKKzs7IAkJIChjb25zdF9pbnQgMCkpKQorOzsgICAoY2xvYmJl ciAobWF0Y2hfc2NyYXRjaDpRSSAyICI9WCxYLCZyIikpXQorOzsgICIhQ09OU1RBTlRfUCAob3Bl cmFuZHNbMF0pIgorOzsgICJACis7OyAgIGJ0c3RcXHQlWjEsJVkwCis7OyAgIGJ0c3RcXHQlWjEs JVkwCis7OyAgICMiCis7OyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQKKzs7ICAgJiYgIXNhdGlzZmll c19jb25zdHJhaW50X1UgKG9wZXJhbmRzWzBdKSIKKzs7ICBbKHNldCAobWF0Y2hfZHVwIDIpCis7 OwkobWF0Y2hfZHVwIDApKQorOzsgICAocGFyYWxsZWwgWyhzZXQgKGNjMCkgKGNvbXBhcmUgKHpl cm9fZXh0cmFjdDpTSSAobWF0Y2hfZHVwIDIpCis7OwkJCQkJCSAgIChjb25zdF9pbnQgMSkKKzs7 CQkJCQkJICAgKG1hdGNoX2R1cCAxKSkKKzs7CQkJCSAgKGNvbnN0X2ludCAwKSkpCis7OwkgICAg ICAoY2xvYmJlciAoc2NyYXRjaDpRSSkpXSldCis7OyAgIiIKKzs7ICBbKHNldF9hdHRyICJsZW5n dGgiICIyLDgsMTAiKQorOzsgICAoc2V0X2F0dHIgImNjIiAic2V0X3puLHNldF96bixzZXRfem4i KV0pCis7OworOzsoZGVmaW5lX2luc24gIiIKKzs7ICBbKHNldCAoY2MwKQorOzsJKGNvbXBhcmUg KHplcm9fZXh0cmFjdDpIU0kgKG1hdGNoX29wZXJhbmQ6SFNJIDAgInJlZ2lzdGVyX29wZXJhbmQi ICJyIikKKzs7CQkJCSAgIChjb25zdF9pbnQgMSkKKzs7CQkJCSAgIChtYXRjaF9vcGVyYW5kIDEg ImNvbnN0X2ludF9vcGVyYW5kIiAibiIpKQorOzsJCSAoY29uc3RfaW50IDApKSldCis7OyAgIklO VFZBTCAob3BlcmFuZHNbMV0pIDw9IDE1IgorOzsgICJidHN0CSVaMSwlWTAiCis7OyAgWyhzZXRf YXR0ciAibGVuZ3RoIiAiMiIpCis7OyAgIChzZXRfYXR0ciAiY2MiICJzZXRfem4iKV0pCis7Owor OzsoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqdHN0c2lfdXBwZXJfYml0IgorOzsgIFsoc2V0IChj YzApCis7OwkoY29tcGFyZSAoemVyb19leHRyYWN0OlNJIChtYXRjaF9vcGVyYW5kOlNJIDAgInJl Z2lzdGVyX29wZXJhbmQiICJyIikKKzs7CQkJCSAgKGNvbnN0X2ludCAxKQorOzsJCQkJICAobWF0 Y2hfb3BlcmFuZCAxICJjb25zdF9pbnRfb3BlcmFuZCIgIm4iKSkKKzs7CQkgKGNvbnN0X2ludCAw KSkpCis7OyAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlNJIDIgIj0mciIpKV0KKzs7ICAiSU5U VkFMIChvcGVyYW5kc1sxXSkgPj0gMTYiCis7OyAgIiMiCis7OyAgIiYmIHJlbG9hZF9jb21wbGV0 ZWQiCis7OyAgWyhzZXQgKG1hdGNoX2R1cCAyKQorOzsJKGlvcjpTSSAoYW5kOlNJIChtYXRjaF9k dXAgMikKKzs7CQkJKGNvbnN0X2ludCAtNjU1MzYpKQorOzsJCShsc2hpZnRydDpTSSAobWF0Y2hf ZHVwIDApCis7OwkJCSAgICAgKGNvbnN0X2ludCAxNikpKSkKKzs7ICAgKHNldCAoY2MwKQorOzsJ KGNvbXBhcmUgKHplcm9fZXh0cmFjdDpTSSAobWF0Y2hfZHVwIDIpCis7OwkJCQkgIChjb25zdF9p bnQgMSkKKzs7CQkJCSAgKG1hdGNoX2R1cCAzKSkKKzs7CQkgKGNvbnN0X2ludCAwKSkpXQorOzsg IHsKKzs7ICAgIG9wZXJhbmRzWzNdID0gR0VOX0lOVCAoSU5UVkFMIChvcGVyYW5kc1sxXSkgLSAx Nik7Cis7OyAgfSkKKzs7Cis7OyhkZWZpbmVfaW5zbiAiKnRzdHNpX3ZhcmlhYmxlX2JpdCIKKzs7 ICBbKHNldCAoY2MwKQorOzsJKGNvbXBhcmUgKHplcm9fZXh0cmFjdDpTSSAobWF0Y2hfb3BlcmFu ZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpCis7OwkJCQkgIChjb25zdF9pbnQgMSkKKzs7 CQkJCSAgKGFuZDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIp Cis7OwkJCQkJICAoY29uc3RfaW50IDcpKSkKKzs7CQkgKGNvbnN0X2ludCAwKSkpXQorOzsgICIi Cis7OyAgImJ0c3QJJXcxLCV3MCIKKzs7ICBbKHNldF9hdHRyICJsZW5ndGgiICIyIikKKzs7ICAg KHNldF9hdHRyICJjYyIgInNldF96biIpXSkKKzs7Cis7OyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQg Iip0c3RzaV92YXJpYWJsZV9iaXRfcWkiCis7OyAgWyhzZXQgKGNjMCkKKzs7CShjb21wYXJlICh6 ZXJvX2V4dHJhY3Q6U0kgKHplcm9fZXh0ZW5kOlNJIChtYXRjaF9vcGVyYW5kOlFJIDAgImdlbmVy YWxfb3BlcmFuZF9zcmMiICJyLFUsbW4+IikpCis7OwkJCQkgIChjb25zdF9pbnQgMSkKKzs7CQkJ CSAgKGFuZDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAicixyLHIi KQorOzsJCQkJCSAgKGNvbnN0X2ludCA3KSkpCis7OwkJIChjb25zdF9pbnQgMCkpKQorOzsgICAo Y2xvYmJlciAobWF0Y2hfc2NyYXRjaDpRSSAyICI9WCxYLCZyIikpXQorOzsgICIhQ09OU1RBTlRf UCAob3BlcmFuZHNbMF0pIgorOzsgICJACis7OyAgIGJ0c3RcXHQldzEsJVgwCis7OyAgIGJ0c3Rc XHQldzEsJVgwCis7OyAgICMiCis7OyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQKKzs7ICAgJiYgIXNh dGlzZmllc19jb25zdHJhaW50X1UgKG9wZXJhbmRzWzBdKSIKKzs7ICBbKHNldCAobWF0Y2hfZHVw IDIpCis7OwkobWF0Y2hfZHVwIDApKQorOzsgICAocGFyYWxsZWwgWyhzZXQgKGNjMCkKKzs7CQkg ICAoY29tcGFyZSAoemVyb19leHRyYWN0OlNJICh6ZXJvX2V4dGVuZDpTSSAobWF0Y2hfZHVwIDIp KQorOzsJCQkJCSAgICAgKGNvbnN0X2ludCAxKQorOzsJCQkJCSAgICAgKGFuZDpTSSAobWF0Y2hf ZHVwIDEpCis7OwkJCQkJCSAgICAgKGNvbnN0X2ludCA3KSkpCis7OwkJCSAgICAoY29uc3RfaW50 IDApKSkKKzs7CSAgICAgIChjbG9iYmVyIChzY3JhdGNoOlFJKSldKV0KKzs7ICAiIgorOzsgIFso c2V0X2F0dHIgImxlbmd0aCIgIjIsOCwxMCIpCis7OyAgIChzZXRfYXR0ciAiY2MiICJzZXRfem4s c2V0X3puLHNldF96biIpXSkKIAogKGRlZmluZV9pbnNuICIqdHN0PG1vZGU+IgotICBbKHNldCAo Y2MwKQotCShjb21wYXJlIChtYXRjaF9vcGVyYW5kOlFISSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAi ciIpCi0JCSAoY29uc3RfaW50IDApKSldCisgIFsoc2V0IChyZWc6Q0NaTiBDQ19SRUcpCisJKGNv bXBhcmU6Q0NaTiAobWF0Y2hfb3BlcmFuZDpRSFNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICJyIikK KwkJICAgICAgKGNvbnN0X2ludCAwKSkpXQogICAiIgogICB7CiAgICAgaWYgKDxNT0RFPm1vZGUg PT0gUUltb2RlKQogICAgICAgcmV0dXJuICJtb3YuYgklWDAsJVgwIjsKICAgICBlbHNlIGlmICg8 TU9ERT5tb2RlID09IEhJbW9kZSkKICAgICAgIHJldHVybiAibW92LncJJVQwLCVUMCI7CisgICAg ZWxzZSBpZiAoPE1PREU+bW9kZSA9PSBTSW1vZGUpCisgICAgICByZXR1cm4gIm1vdi5sCSVTMCwl UzAiOwogICAgIGdjY191bnJlYWNoYWJsZSAoKTsKICAgfQogICBbKHNldF9hdHRyICJsZW5ndGgi ICIyIikKICAgIChzZXRfYXR0ciAiY2MiICJzZXRfem52IildKQogCiAoZGVmaW5lX2luc24gIip0 c3RoaV91cHBlciIKLSAgWyhzZXQgKGNjMCkKKyAgWyhzZXQgKHJlZzpDQ1pOIENDX1JFRykKIAko Y29tcGFyZSAoYW5kOkhJIChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICJy IikKIAkJCSAoY29uc3RfaW50IC0yNTYpKQogCQkgKGNvbnN0X2ludCAwKSkpXQotICAiIgorICAi cmVsb2FkX2NvbXBsZXRlZCIKICAgIm1vdi5iCSV0MCwldDAiCi0gIFsoc2V0X2F0dHIgImxlbmd0 aCIgIjIiKQotICAgKHNldF9hdHRyICJjYyIgInNldF96bnYiKV0pCi0KLShkZWZpbmVfaW5zbiAi KnRzdHNpIgotICBbKHNldCAoY2MwKQotCShjb21wYXJlIChtYXRjaF9vcGVyYW5kOlNJIDAgInJl Z2lzdGVyX29wZXJhbmQiICJyIikKLQkJIChjb25zdF9pbnQgMCkpKV0KLSAgIiIKLSAgIm1vdi5s CSVTMCwlUzAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjIiKQotICAgKHNldF9hdHRyICJjYyIg InNldF96bnYiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjIiKV0pCiAKIChkZWZpbmVfaW5z biAiKnRzdHNpX3VwcGVyIgotICBbKHNldCAoY2MwKQorICBbKHNldCAocmVnOkNDWk4gQ0NfUkVH KQogCShjb21wYXJlIChhbmQ6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFu ZCIgInIiKQogCQkJIChjb25zdF9pbnQgLTY1NTM2KSkKIAkJIChjb25zdF9pbnQgMCkpKV0KLSAg IiIKKyAgInJlbG9hZF9jb21wbGV0ZWQiCiAgICJtb3YudwklZTAsJWUwIgogICBbKHNldF9hdHRy ICJsZW5ndGgiICIyIikKICAgIChzZXRfYXR0ciAiY2MiICJzZXRfem52IildKQogCiAoZGVmaW5l X2luc24gIipjbXBxaSIKLSAgWyhzZXQgKGNjMCkKKyAgWyhzZXQgKHJlZzpDQyBDQ19SRUcpCiAJ KGNvbXBhcmUgKG1hdGNoX29wZXJhbmQ6UUkgMCAiaDgzMDBfZHN0X29wZXJhbmQiICJyUSIpCiAJ CSAobWF0Y2hfb3BlcmFuZDpRSSAxICJoODMwMF9zcmNfb3BlcmFuZCIgInJRaSIpKSldCi0gICIi CisgICJyZWxvYWRfY29tcGxldGVkIgogICAiY21wLmIJJVgxLCVYMCIKLSAgWyhzZXRfYXR0ciAi bGVuZ3RoX3RhYmxlIiAiYWRkIikKLSAgIChzZXRfYXR0ciAiY2MiICJjb21wYXJlIildKQorICBb KHNldF9hdHRyICJsZW5ndGhfdGFibGUiICJhZGQiKV0pCiAKLShkZWZpbmVfaW5zbiAiKmNtcGhp X2g4MzAwaHNfem52YyIKLSAgWyhzZXQgKGNjMCkKKyhkZWZpbmVfaW5zbiAiKmNtcGhpIgorICBb KHNldCAocmVnOkNDIENDX1JFRykKIAkoY29tcGFyZSAobWF0Y2hfb3BlcmFuZDpISSAwICJoODMw MF9kc3Rfb3BlcmFuZCIgInJVLHJRIikKIAkJIChtYXRjaF9vcGVyYW5kOkhJIDEgImg4MzAwX3Ny Y19vcGVyYW5kIiAiUDM+WCxyUWkiKSkpXQotICAiIgorICAicmVsb2FkX2NvbXBsZXRlZCIKIHsK ICAgc3dpdGNoICh3aGljaF9hbHRlcm5hdGl2ZSkKICAgICB7CkBAIC0xNzQsMTQgKzE2NSwxMyBA QAogICAgICAgZ2NjX3VucmVhY2hhYmxlICgpOwogICAgICAgfQogfQotICBbKHNldF9hdHRyICJs ZW5ndGhfdGFibGUiICJzaG9ydF9pbW1lZGlhdGUsYWRkIikKLSAgIChzZXRfYXR0ciAiY2MiICJj b21wYXJlLGNvbXBhcmUiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aF90YWJsZSIgInNob3J0X2lt bWVkaWF0ZSxhZGQiKV0pCiAKIChkZWZpbmVfaW5zbiAiY21wc2kiCi0gIFsoc2V0IChjYzApCisg IFsoc2V0IChyZWc6Q0MgQ0NfUkVHKQogCShjb21wYXJlIChtYXRjaF9vcGVyYW5kOlNJIDAgImg4 MzAwX2RzdF9vcGVyYW5kIiAicixyUSIpCiAJCSAobWF0Y2hfb3BlcmFuZDpTSSAxICJoODMwMF9z cmNfb3BlcmFuZCIgIlAzPlgsclFpIikpKV0KLSAgIiIKKyAgInJlbG9hZF9jb21wbGV0ZWQiCiB7 CiAgIHN3aXRjaCAod2hpY2hfYWx0ZXJuYXRpdmUpCiAgICAgewpAQCAtMTk3LDUgKzE4NywyOCBA QAogICAgIH0KIH0KICAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMiwqIikKLSAgIChzZXRfYXR0ciAi bGVuZ3RoX3RhYmxlIiAiKixhZGQiKQotICAgKHNldF9hdHRyICJjYyIgImNvbXBhcmUsY29tcGFy ZSIpXSkKKyAgIChzZXRfYXR0ciAibGVuZ3RoX3RhYmxlIiAiKixhZGQiKV0pCisKKzs7IENvbnZl cnQgYSBtZW1vcnkgY29tcGFyaXNvbiB0byBhIG1vdmUgaWYgdGhlcmUgaXMgYSBzY3JhdGNoIHJl Z2lzdGVyLgorCisoZGVmaW5lX3BlZXBob2xlMgorICBbKG1hdGNoX3NjcmF0Y2g6UUhTSSAxICJy IikKKyAgIChzZXQgKHJlZzpDQyBDQ19SRUcpCisJKGNvbXBhcmUgKG1hdGNoX29wZXJhbmQ6UUhT SSAwICJtZW1vcnlfb3BlcmFuZCIgIiIpCisJCSAoY29uc3RfaW50IDApKSldCisgICIiCisgIFso cGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAxKSAobWF0Y2hfZHVwIDApKSAoY2xvYmJlciAocmVn OkNDIENDX1JFRykpXSkKKyAgIChzZXQgKHJlZzpDQyBDQ19SRUcpIChjb21wYXJlOkNDIChtYXRj aF9kdXAgMSkgKGNvbnN0X2ludCAwKSkpXSkKKworOzsgVGhlIGNvbXBhcmUtZWxpbWluYXRpb24g cGFzcyBkb2VzIG5vdCBoYW5kbGUgbWVtb3J5IHJlZmVyZW5jZS4gIFNvIHRoaXMKKzs7IGxpdHRs ZSBwZWVwaG9sZSBoZWxwcyBmaWxsIHRoZSBnYXAgYW5kIGF2b2lkIGNvZGUgcXVhbGl0eSByZWdy ZXNzaW9ucy4KKyhkZWZpbmVfcGVlcGhvbGUyCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX29w ZXJhbmQ6UUhTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKKwkJICAgKG1hdGNoX29wZXJhbmQ6 UUhTSSAxICJzaW1wbGVfbWVtb3J5X29wZXJhbmQiICIiKSkKKwkgICAgICAoY2xvYmJlciAocmVn OkNDIENDX1JFRykpXSkKKyAgIChzZXQgKHJlZzpDQ1pOIENDX1JFRykKKwkoY29tcGFyZTpDQ1pO IChtYXRjaF9kdXAgMCkgKGNvbnN0X2ludCAwKSkpXQorICAiIgorICBbKHBhcmFsbGVsIFsoc2V0 IChyZWc6Q0NaTiBDQ19SRUcpIChjb21wYXJlOkNDWk4gKG1hdGNoX2R1cCAxKSAoY29uc3RfaW50 IDApKSkKKwkgICAgICAoc2V0IChtYXRjaF9kdXAgMCkgKG1hdGNoX2R1cCAxKSldKV0pCisK --------------CA112ACF8034CB46167405F5--