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 [170.10.133.124]) by sourceware.org (Postfix) with ESMTP id 68A6D385700D for ; Sat, 3 Jul 2021 12:56:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 68A6D385700D 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-562-SjBzsRSGN_e7FH_HEJqwPA-1; Sat, 03 Jul 2021 08:56:26 -0400 X-MC-Unique: SjBzsRSGN_e7FH_HEJqwPA-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id A5EA1102CC43 for ; Sat, 3 Jul 2021 12:56:25 +0000 (UTC) Received: from comet.redhat.com (ovpn-112-16.ams2.redhat.com [10.36.112.16]) by smtp.corp.redhat.com (Postfix) with ESMTPS id AC69D60BD8 for ; Sat, 3 Jul 2021 12:56:24 +0000 (UTC) From: Nick Clifton To: binutils@sourceware.org Subject: Commit: Update libiberty sources Date: Sat, 03 Jul 2021 13:56:22 +0100 Message-ID: <87h7hba749.fsf@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Status: No, score=-6.0 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Jul 2021 12:56:30 -0000 --=-=-= Content-Type: text/plain Hi Guys, I am applying the attached file to synchronize our libiberty sources with gcc. Cheers Nick --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=fred Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2luY2x1ZGUvZGVtYW5nbGUuaCBiL2luY2x1ZGUvZGVtYW5nbGUuaAppbmRl eCAyM2I0NzI2NWQ5NC4uMjk1ZDU4Y2I0NTQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZGVtYW5nbGUu aAorKysgYi9pbmNsdWRlL2RlbWFuZ2xlLmgKQEAgLTQwOCw2ICs0MDgsOSBAQCBlbnVtIGRlbWFu Z2xlX2NvbXBvbmVudF90eXBlCiAgICAgIG51bWJlciB3aGljaCBpbnZvbHZlcyBuZWl0aGVyIG1v ZGlmeWluZyB0aGUgbWFuZ2xlZCBzdHJpbmcgbm9yCiAgICAgIGFsbG9jYXRpbmcgYSBuZXcgY29w eSBvZiB0aGUgbGl0ZXJhbCBpbiBtZW1vcnkuICAqLwogICBERU1BTkdMRV9DT01QT05FTlRfTElU RVJBTF9ORUcsCisgIC8qIEEgdmVuZG9yJ3MgYnVpbHRpbiBleHByZXNzaW9uLiAgVGhlIGxlZnQg c3VidHJlZSBob2xkcyB0aGUKKyAgICAgZXhwcmVzc2lvbidzIG5hbWUsIGFuZCB0aGUgcmlnaHQg c3VidHJlZSBpcyBhIGFyZ3VtZW50IGxpc3QuICAqLworICBERU1BTkdMRV9DT01QT05FTlRfVkVO RE9SX0VYUFIsCiAgIC8qIEEgbGliZ2NqIGNvbXBpbGVkIHJlc291cmNlLiAgVGhlIGxlZnQgc3Vi dHJlZSBpcyB0aGUgbmFtZSBvZiB0aGUKICAgICAgcmVzb3VyY2UuICAqLwogICBERU1BTkdMRV9D T01QT05FTlRfSkFWQV9SRVNPVVJDRSwKZGlmZiAtLWdpdCBhL2xpYmliZXJ0eS9DaGFuZ2VMb2cg Yi9saWJpYmVydHkvQ2hhbmdlTG9nCmluZGV4IDcwZDcyMDliZjBhLi4wMTQzZDQyOWViOCAxMDA2 NDQKLS0tIGEvbGliaWJlcnR5L0NoYW5nZUxvZworKysgYi9saWJpYmVydHkvQ2hhbmdlTG9nCkBA IC0xLDIzICsxLDgyIEBACi0yMDIxLTAzLTE4ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5j b20+CisyMDIxLTA2LTMwICBHZXJhbGQgUGZlaWZlciAgPGdlcmFsZEBwZmVpZmVyLmNvbT4KIAot CVBSIGJpbnV0aWxzLzI3Mzk3Ci0JKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgorCSogbWFrZS10 ZW1wLWZpbGUuYyAodXNydG1wKTogUmVtb3ZlLgorCShjaG9vc2VfdG1wZGlyKTogUmVtb3ZlIHVz ZSBvZiB1c3J0bXAuCiAKLTIwMjEtMDEtMTEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNv bT4KKzIwMjEtMDYtMjggIEluZHUgQmhhZ2F0ICA8aW5kdS5iaGFnYXRAb3JhY2xlLmNvbT4KIAot CVBSIGxkLzI3MTczCi0JKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgorCSogc2ltcGxlLW9iamVj dC5jIChoYW5kbGVfbHRvX2RlYnVnX3NlY3Rpb25zKTogQ29weSBvdmVyIC5CVEYgc2VjdGlvbi4K KworMjAyMS0wNi0yOCAgSW5kdSBCaGFnYXQgIDxpbmR1LmJoYWdhdEBvcmFjbGUuY29tPgorCSAg ICBEYXZpZCBGYXVzdCAgPGRhdmlkLmZhdXN0QG9yYWNsZS5jb20+CisJICAgIEpvc2UgRS4gTWFy Y2hlc2kgIDxqb3NlLm1hcmNoZXNpQG9yYWNsZS5jb20+CisJICAgIFdlaW1pbiBQYW4gIDx3ZWlt aW4ucGFuQG9yYWNsZS5jb20+CisKKwkqIHNpbXBsZS1vYmplY3QuYyAoaGFuZGxlX2x0b19kZWJ1 Z19zZWN0aW9ucyk6IENvcHkgb3ZlciAuY3RmCisJc2VjdGlvbnMuCisKKzIwMjEtMDYtMDUgIEpv aG4gRGF2aWQgQW5nbGluICA8ZGFuZ2xpbkBnY2MuZ251Lm9yZz4KKworCVBSIHRhcmdldC8xMDA3 MzQKKwkqIGNvbmZpZ3VyZS5hYzogVXNlIGxpYmliZXJ0eSBzbnByaW50ZiBhbmQgdnNucHJpbnRm IG9uCisJaHBwYSotKi1ocHV4Ki4KKwkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KIAotMjAyMS0w MS0wOSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorMjAyMS0wNS0wNiAgVG9tIFRy b21leSAgPHRvbUB0cm9tZXkuY29tPgogCi0JKiBNYWtlZmlsZS5pbiAoQVIpOiBBZGQgQEFSX1BM VUdJTl9PUFRJT05ACi0JKFJBTkxJQik6IEFkZCBAUkFOTElCX1BMVUdJTl9PUFRJT05ALgotCShj b25maWd1cmVfZGVwcyk6IERlcGVuZCBvbiAuLi9jb25maWcvZ2NjLXBsdWdpbi5tNC4KLQkqIGFj bG9jYWwubTQ6IEluY2x1ZGUgLi4vY29uZmlnL2djYy1wbHVnaW4ubTQuCi0JKiBjb25maWd1cmUu YWM6IEFDX1NVQlNUIEFSX1BMVUdJTl9PUFRJT04gYW5kCi0JUkFOTElCX1BMVUdJTl9PUFRJT04u CisJKiBoYXNodGFiLmMgKGh0YWJfZXFfc3RyaW5nKTogTmV3IGZ1bmN0aW9uLgorCisyMDIxLTA1 LTA0ICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGFkYWNvcmUuY29tPgorCisJKiBjb25maWd1 cmUuYWM6IE1ha2UgdGVzdCBmb3IgdmFyaWFibGVzIG1vcmUgcm9idXN0LgorCSogY29uZmlndXJl OiBSZWdlbmVyYXRlLgorCisyMDIxLTA1LTAzICBILkouIEx1ICA8aGpsLnRvb2xzQGdtYWlsLmNv bT4KKworCVBSIGJvb3RzdHJhcC85OTcwMwogCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KIAor MjAyMS0wNC0yMSAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAbGludXgtbTY4ay5vcmc+CisKKwlQ UiBkZW1hbmdsZXIvMTAwMTc3CisJKiBydXN0LWRlbWFuZ2xlLmMgKGRlbWFuZ2xlX2NvbnN0X2No YXIpOiBQcm9wZXJseSBwcmludCB0aGUKKwljaGFyYWN0ZXIgdmFsdWUuCisKKzIwMjEtMDMtMzEg IFBhdHJpY2sgUGFsa2EgIDxwcGFsa2FAcmVkaGF0LmNvbT4KKworCVBSIGMrKy84ODExNQorCSog Y3AtZGVtYW5nbGUuYyAoZF9kdW1wLCBkX21ha2VfY29tcCwgZF9leHByZXNzaW9uXzEpCisJKGRf Y291bnRfdGVtcGxhdGVzX3Njb3Blcyk6IEhhbmRsZSBERU1BTkdMRV9DT01QT05FTlRfVkVORE9S X0VYUFIuCisJKGRfcHJpbnRfY29tcF9pbm5lcik6IExpa2V3aXNlLgorCTxjYXNlIERFTUFOR0xF X0NPTVBPTkVOVF9FWFRFTkRFRF9PUEVSQVRPUj46IFJldmVydCByMTEtNDkyNgorCWNoYW5nZS4K Kwk8Y2FzZSBERU1BTkdMRV9DT01QT05FTlRfVU5BUlk+OiBMaWtld2lzZS4KKwkqIHRlc3RzdWl0 ZS9kZW1hbmdsZS1leHBlY3RlZDogQWRqdXN0IF9fYWxpZ25vZl9fIHRlc3RzLgorCisyMDIxLTAz LTE2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgorCisJKiBzaGExLmMgKHNoYTFf cHJvY2Vzc19ieXRlcyk6IFVzZSBtZW1tb3ZlIGluIHBsYWNlIG9mIG1lbWNweS4KKworMjAyMS0w Mi0yMCAgTWlrZSBGcnlzaW5nZXIgIDx2YXBpZXJAZ2VudG9vLm9yZz4KKworCSogTWFrZWZpbGUu aW4gKEFDTE9DQUwsIEFDTE9DQUxfQU1GTEFHUywgJChzcmNkaXIpL2FjbG9jYWwubTQpOiBEZWZp bmUuCisJKGNvbmZpZ3VyZV9kZXBzKTogUmVuYW1lIHRvIC4uLgorCShhY2xvY2FsX2RlcHMpOiAu Li4gdGhpcy4gIFJlcGxhY2UgYWNsb2NhbC5tNCB3aXRoIGFjaW5jbHVkZS5tNC4KKwkoJChzcmNk aXIpL2NvbmZpZ3VyZSk6IFJlcGxhY2UgJChjb25maWd1cmVfZGVwcykgd2l0aAorCSQoc3JjZGly KS9hY2xvY2FsLm00LgorCSogYWNsb2NhbC5tNDogTW92ZSBsaWJpYmVydHkgbWFjcm9zIHRvIGFj aW5jbHVkZS5tNCwgdGhlbiByZWdlbmVyYXRlLgorCSogYWNpbmNsdWRlLm00OiBOZXcgZmlsZS4K KwkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KKworMjAyMS0wMi0xOSAgQXl1c2ggTWl0dGFsICA8 YXl1c2gubUBzYW1zdW5nLmNvbT4KKworCSogYXJndi5jIChleHBhbmRhcmd2KTogZnJlZSBhbGxv Y2F0ZWQgYnVmZmVyIGlmIHJlYWQgZmFpbHMuCisKKzIwMjEtMDItMDEgIE1hcnRpbiBTZWJvciAg PG1zZWJvckByZWRoYXQuY29tPgorCisJKiBkeW4tc3RyaW5nLmMgKGR5bl9zdHJpbmdfaW5zZXJ0 X2NzdHIpOiBVc2UgbWVtY3B5IGluc3RlYWQgb2Ygc3RybmNweQorCXRvIGF2b2lkIC1Xc3RyaW5n b3AtdHJ1bmNhdGlvbi4KKwogMjAyMS0wMS0wNCAgTWFydGluIExpc2thICA8bWxpc2thQHN1c2Uu Y3o+CiAKIAkqIHN0cnZlcnNjbXAuYzogQ29udmVydCB0byB1dGY4IGZyb20gaXNvODg1OS4KZGlm ZiAtLWdpdCBhL2xpYmliZXJ0eS9NYWtlZmlsZS5pbiBiL2xpYmliZXJ0eS9NYWtlZmlsZS5pbgpp bmRleCA3MTFlMTU1YjA3NS4uNGYxMjEzYjk4M2IgMTAwNjQ0Ci0tLSBhL2xpYmliZXJ0eS9NYWtl ZmlsZS5pbgorKysgYi9saWJpYmVydHkvTWFrZWZpbGUuaW4KQEAgLTQ5LDEzICs0OSwxMyBAQCBt a2luc3RhbGxkaXJzID0gJChTSEVMTCkgJChsaWJpYmVydHlfdG9wZGlyKS9ta2luc3RhbGxkaXJz CiAjIFNvbWUgY29tcGlsZXJzIGNhbid0IGhhbmRsZSBjYyAtYyBibGFoLmMgLW8gZm9vL2JsYWgu by4KIE9VVFBVVF9PUFRJT04gPSBAT1VUUFVUX09QVElPTkAKIAotQVIgPSBAQVJAIEBBUl9QTFVH SU5fT1BUSU9OQAorQVIgPSBAQVJACiBBUl9GTEFHUyA9IHJjCiAKIENDID0gQENDQAogQ0ZMQUdT ID0gQENGTEFHU0AKIENQUEZMQUdTID0gQENQUEZMQUdTQAotUkFOTElCID0gQFJBTkxJQkAgQFJB TkxJQl9QTFVHSU5fT1BUSU9OQAorUkFOTElCID0gQFJBTkxJQkAKIE1BS0VJTkZPID0gQE1BS0VJ TkZPQAogUEVSTCA9IEBQRVJMQAogCkBAIC00ODEsMTkgKzQ4MSwyNCBAQCBjb25maWcuc3RhdHVz OiAkKHNyY2RpcikvY29uZmlndXJlCiAJJChTSEVMTCkgLi9jb25maWcuc3RhdHVzIC0tcmVjaGVj awogCiBBVVRPQ09ORiA9IGF1dG9jb25mCi1jb25maWd1cmVfZGVwcyA9ICQoc3JjZGlyKS9hY2xv Y2FsLm00IFwKK0FDTE9DQUwgPSBhY2xvY2FsCitBQ0xPQ0FMX0FNRkxBR1MgPSAtSSAuLi9jb25m aWcgLUkgLi4KK2FjbG9jYWxfZGVwcyA9IFwKIAkkKHNyY2RpcikvLi4vY29uZmlnL2FjeC5tNCBc CiAJJChzcmNkaXIpLy4uL2NvbmZpZy9jZXQubTQgXAogCSQoc3JjZGlyKS8uLi9jb25maWcvZW5h YmxlLm00IFwKLQkkKHNyY2RpcikvLi4vY29uZmlnL2djYy1wbHVnaW4ubTQgXAogCSQoc3JjZGly KS8uLi9jb25maWcvbm8tZXhlY3V0YWJsZXMubTQgXAogCSQoc3JjZGlyKS8uLi9jb25maWcvb3Zl cnJpZGUubTQgXAogCSQoc3JjZGlyKS8uLi9jb25maWcvcGljZmxhZy5tNCBcCi0JJChzcmNkaXIp Ly4uL2NvbmZpZy93YXJuaW5ncy5tNAorCSQoc3JjZGlyKS8uLi9jb25maWcvd2FybmluZ3MubTQg XAorCSQoc3JjZGlyKS9hY2luY2x1ZGUubTQKIAotJChzcmNkaXIpL2NvbmZpZ3VyZTogQE1BSU5U QCAkKHNyY2RpcikvY29uZmlndXJlLmFjICQoY29uZmlndXJlX2RlcHMpCiskKHNyY2RpcikvY29u ZmlndXJlOiBATUFJTlRAICQoc3JjZGlyKS9jb25maWd1cmUuYWMgJChzcmNkaXIpL2FjbG9jYWwu bTQKIAljZCAkKHNyY2RpcikgJiYgJChBVVRPQ09ORikKIAorJChzcmNkaXIpL2FjbG9jYWwubTQ6 IEBNQUlOVEAgJChhY2xvY2FsX2RlcHMpCisJY2QgJChzcmNkaXIpICYmICQoQUNMT0NBTCkgJChB Q0xPQ0FMX0FNRkxBR1MpCisKICMgRGVwZW5kaW5nIG9uIGNvbmZpZy5oIG1ha2VzIHN1cmUgdGhh dCBjb25maWcuc3RhdHVzIGhhcyBiZWVuIHJlLXJ1bgogIyBpZiBuZWVkZWQuICBUaGlzIHByZXZl bnRzIHByb2JsZW1zIHdpdGggcGFyYWxsZWwgYnVpbGRzLCBpbiBjYXNlCiAjIHN1YmRpcmVjdG9y aWVzIG5lZWQgdG8gcnVuIGNvbmZpZy5zdGF0dXMgYWxzby4KZGlmZiAtLWdpdCBhL2xpYmliZXJ0 eS9hY2xvY2FsLm00IGIvbGliaWJlcnR5L2FjbG9jYWwubTQKaW5kZXggYjJlNTRkOWUzMmEuLjMz NzgzMTZkY2VkIDEwMDY0NAotLS0gYS9saWJpYmVydHkvYWNsb2NhbC5tNAorKysgYi9saWJpYmVy dHkvYWNsb2NhbC5tNApAQCAtMSwxNzggKzEsMjEgQEAKLXNpbmNsdWRlKC4uL2NvbmZpZy9hY3gu bTQpCi1zaW5jbHVkZSguLi9jb25maWcvY2V0Lm00KQotc2luY2x1ZGUoLi4vY29uZmlnL2VuYWJs ZS5tNCkKLXNpbmNsdWRlKC4uL2NvbmZpZy9nY2MtcGx1Z2luLm00KQotc2luY2x1ZGUoLi4vY29u ZmlnL25vLWV4ZWN1dGFibGVzLm00KQotc2luY2x1ZGUoLi4vY29uZmlnL292ZXJyaWRlLm00KQot c2luY2x1ZGUoLi4vY29uZmlnL3BpY2ZsYWcubTQpCi1zaW5jbHVkZSguLi9jb25maWcvd2Fybmlu Z3MubTQpCi0KLWRubCBTZWUgd2hldGhlciBzdHJuY21wIHJlYWRzIHBhc3QgdGhlIGVuZCBvZiBp dHMgc3RyaW5nIHBhcmFtZXRlcnMuCi1kbmwgT24gc29tZSB2ZXJzaW9ucyBvZiBTdW5PUzQgYXQg bGVhc3QsIHN0cm5jbXAgcmVhZHMgYSB3b3JkIGF0IGEgdGltZQotZG5sIGJ1dCBlcnJvbmVvdXNs eSByZWFkcyBwYXN0IHRoZSBlbmQgb2Ygc3RyaW5ncy4gIFRoaXMgY2FuIGNhdXNlCi1kbmwgYSBT RUdWIGluIHNvbWUgY2FzZXMuCi1BQ19ERUZVTihsaWJpYmVydHlfQUNfRlVOQ19TVFJOQ01QLAot W0FDX1JFUVVJUkUoW0FDX0ZVTkNfTU1BUF0pCi1BQ19DQUNIRV9DSEVDSyhbZm9yIHdvcmtpbmcg c3RybmNtcF0sIGFjX2N2X2Z1bmNfc3RybmNtcF93b3JrcywKLVtBQ19UUllfUlVOKFsKLS8qIFRl c3QgYnkgSmltIFdpbHNvbiBhbmQgS2F2ZWggR2hhemkuCi0gICBDaGVjayB3aGV0aGVyIHN0cm5j bXAgcmVhZHMgcGFzdCB0aGUgZW5kIG9mIGl0cyBzdHJpbmcgcGFyYW1ldGVycy4gKi8KLSNpbmNs dWRlIDxzeXMvdHlwZXMuaD4KLQotI2lmZGVmIEhBVkVfRkNOVExfSAotI2luY2x1ZGUgPGZjbnRs Lmg+Ci0jZW5kaWYKLQotI2lmZGVmIEhBVkVfU1lTX01NQU5fSAotI2luY2x1ZGUgPHN5cy9tbWFu Lmg+Ci0jZW5kaWYKLQotI2lmbmRlZiBNQVBfQU5PTgotI2lmZGVmIE1BUF9BTk9OWU1PVVMKLSNk ZWZpbmUgTUFQX0FOT04gTUFQX0FOT05ZTU9VUwotI2Vsc2UKLSNkZWZpbmUgTUFQX0FOT04gTUFQ X0ZJTEUKLSNlbmRpZgotI2VuZGlmCi0KLSNpZm5kZWYgTUFQX0ZJTEUKLSNkZWZpbmUgTUFQX0ZJ TEUgMAotI2VuZGlmCi0jaWZuZGVmIE9fUkRPTkxZCi0jZGVmaW5lIE9fUkRPTkxZIDAKLSNlbmRp ZgotCi0jZGVmaW5lIE1BUF9MRU4gMHgxMDAwMAotCi1tYWluICgpCi17Ci0jaWYgZGVmaW5lZChI QVZFX01NQVApIHx8IGRlZmluZWQoSEFWRV9NTUFQX0FOWVdIRVJFKQotICBjaGFyICpwOwotICBp bnQgZGV2X3plcm87Ci0KLSAgZGV2X3plcm8gPSBvcGVuICgiL2Rldi96ZXJvIiwgT19SRE9OTFkp OwotICBpZiAoZGV2X3plcm8gPCAwKQotICAgIGV4aXQgKDEpOwotICAKLSAgcCA9IChjaGFyICop IG1tYXAgKDAsIE1BUF9MRU4sIFBST1RfUkVBRHxQUk9UX1dSSVRFLAotCQkgICAgIE1BUF9BTk9O fE1BUF9QUklWQVRFLCBkZXZfemVybywgMCk7Ci0gIGlmIChwID09IChjaGFyICopLTEpCi0gICAg cCA9IChjaGFyICopIG1tYXAgKDAsIE1BUF9MRU4sIFBST1RfUkVBRHxQUk9UX1dSSVRFLAotCQkg ICAgICAgTUFQX0FOT058TUFQX1BSSVZBVEUsIC0xLCAwKTsKLSAgaWYgKHAgPT0gKGNoYXIgKikt MSkKLSAgICBleGl0ICgyKTsKLSAgZWxzZQotICAgIHsKLSAgICAgIGNoYXIgKnN0cmluZyA9ICJf X3NpX3R5cGVfaW5mbyI7Ci0gICAgICBjaGFyICpxID0gKGNoYXIgKikgcCArIE1BUF9MRU4gLSBz dHJsZW4gKHN0cmluZykgLSAyOwotICAgICAgY2hhciAqciA9IChjaGFyICopIHAgKyAweGU7Ci0K LSAgICAgIHN0cmNweSAocSwgc3RyaW5nKTsKLSAgICAgIHN0cmNweSAociwgc3RyaW5nKTsKLSAg ICAgIHN0cm5jbXAgKHIsIHEsIDE0KTsKLSAgICB9Ci0jZW5kaWYgLyogSEFWRV9NTUFQIHx8IEhB VkVfTU1BUF9BTllXSEVSRSAqLwotICBleGl0ICgwKTsKLX0KLV0sIGFjX2N2X2Z1bmNfc3RybmNt cF93b3Jrcz15ZXMsIGFjX2N2X2Z1bmNfc3RybmNtcF93b3Jrcz1ubywKLSAgYWNfY3ZfZnVuY19z dHJuY21wX3dvcmtzPXllcykKLXJtIC1mIGNvcmUgY29yZS4qICouY29yZV0pCi1pZiB0ZXN0ICRh Y19jdl9mdW5jX3N0cm5jbXBfd29ya3MgPSBubyA7IHRoZW4KLSAgQUNfTElCT0JKKFtzdHJuY21w XSkKLWZpCi1dKQotCi1kbmwgU2VlIGlmIGVycm5vIG11c3QgYmUgZGVjbGFyZWQgZXZlbiB3aGVu IDxlcnJuby5oPiBpcyBpbmNsdWRlZC4KLUFDX0RFRlVOKGxpYmliZXJ0eV9BQ19ERUNMQVJFX0VS Uk5PLAotW0FDX0NBQ0hFX0NIRUNLKHdoZXRoZXIgZXJybm8gbXVzdCBiZSBkZWNsYXJlZCwgbGli aWJlcnR5X2N2X2RlY2xhcmVfZXJybm8sCi1bQUNfVFJZX0NPTVBJTEUoCi1bI2luY2x1ZGUgPGVy cm5vLmg+XSwKLVtpbnQgeCA9IGVycm5vO10sCi1saWJpYmVydHlfY3ZfZGVjbGFyZV9lcnJubz1u bywKLWxpYmliZXJ0eV9jdl9kZWNsYXJlX2Vycm5vPXllcyldKQotaWYgdGVzdCAkbGliaWJlcnR5 X2N2X2RlY2xhcmVfZXJybm8gPSB5ZXMKLXRoZW4gQUNfREVGSU5FKE5FRURfREVDTEFSQVRJT05f RVJSTk8sIDEsCi0gIFtEZWZpbmUgaWYgZXJybm8gbXVzdCBiZSBkZWNsYXJlZCBldmVuIHdoZW4g PGVycm5vLmg+IGlzIGluY2x1ZGVkLl0pCi1maQotXSkKLQotZG5sIFNlZSB3aGV0aGVyIHdlIG5l ZWQgYSBkZWNsYXJhdGlvbiBmb3IgYSBmdW5jdGlvbi4KLUFDX0RFRlVOKGxpYmliZXJ0eV9ORUVE X0RFQ0xBUkFUSU9OLAotW0FDX01TR19DSEVDS0lORyhbd2hldGhlciAkMSBtdXN0IGJlIGRlY2xh cmVkXSkKLUFDX0NBQ0hFX1ZBTChsaWJpYmVydHlfY3ZfZGVjbF9uZWVkZWRfJDEsCi1bQUNfVFJZ X0NPTVBJTEUoWwotI2luY2x1ZGUgImNvbmZkZWZzLmgiCi0jaW5jbHVkZSA8c3RkaW8uaD4KLSNp ZmRlZiBIQVZFX1NUUklOR19ICi0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jZWxzZQotI2lmZGVmIEhB VkVfU1RSSU5HU19ICi0jaW5jbHVkZSA8c3RyaW5ncy5oPgotI2VuZGlmCi0jZW5kaWYKLSNpZmRl ZiBIQVZFX1NURExJQl9ICi0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jZW5kaWYKLSNpZmRlZiBIQVZF X1VOSVNURF9ICi0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jZW5kaWZdLAotW2NoYXIgKigqcGZuKSA9 IChjaGFyICooKikpICQxXSwKLWxpYmliZXJ0eV9jdl9kZWNsX25lZWRlZF8kMT1ubywgbGliaWJl cnR5X2N2X2RlY2xfbmVlZGVkXyQxPXllcyldKQotQUNfTVNHX1JFU1VMVCgkbGliaWJlcnR5X2N2 X2RlY2xfbmVlZGVkXyQxKQotaWYgdGVzdCAkbGliaWJlcnR5X2N2X2RlY2xfbmVlZGVkXyQxID0g eWVzOyB0aGVuCi0gIEFDX0RFRklORShbTkVFRF9ERUNMQVJBVElPTl9ddHJhbnNsaXQoJDEsIFth LXpdLCBbQS1aXSksIDEsCi0gICAgICAgICAgICBbRGVmaW5lIGlmICQxIGlzIG5vdCBkZWNsYXJl ZCBpbiBzeXN0ZW0gaGVhZGVyIGZpbGVzLl0pCi1maQotXSlkbmwKLQotIyBXZSBhbHdheXMgd2Fu dCBhIEMgdmVyc2lvbiBvZiBhbGxvY2EoKSBjb21waWxlZCBpbnRvIGxpYmliZXJ0eSwKLSMgYmVj YXVzZSBuYXRpdmUtY29tcGlsZXIgc3VwcG9ydCBmb3IgdGhlIHJlYWwgYWxsb2NhIGlzIHNvICFA IyQlCi0jIHVucmVsaWFibGUgdGhhdCBHQ0MgaGFzIGRlY2lkZWQgdG8gdXNlIGl0IG9ubHkgd2hl biBiZWluZyBjb21waWxlZAotIyBieSBHQ0MuICBUaGlzIGlzIHRoZSBwYXJ0IG9mIEFDX0ZVTkNf QUxMT0NBIHRoYXQgY2FsY3VsYXRlcyB0aGUKLSMgaW5mb3JtYXRpb24gYWxsb2NhLmMgbmVlZHMu Ci1BQ19ERUZVTihsaWJpYmVydHlfQUNfRlVOQ19DX0FMTE9DQSwKLVtBQ19DQUNIRV9DSEVDSyh3 aGV0aGVyIGFsbG9jYSBuZWVkcyBDcmF5IGhvb2tzLCBhY19jdl9vc19jcmF5LAotW0FDX0VHUkVQ X0NQUCh3ZWJlY3JheSwKLVsjaWYgZGVmaW5lZChDUkFZKSAmJiAhIGRlZmluZWQoQ1JBWTIpCi13 ZWJlY3JheQotI2Vsc2UKLXdlbm90YmVjcmF5Ci0jZW5kaWYKLV0sIGFjX2N2X29zX2NyYXk9eWVz LCBhY19jdl9vc19jcmF5PW5vKV0pCi1pZiB0ZXN0ICRhY19jdl9vc19jcmF5ID0geWVzOyB0aGVu Ci0gIGZvciBhY19mdW5jIGluIF9nZXRiNjcgR0VUQjY3IGdldGI2NzsgZG8KLSAgICBBQ19DSEVD S19GVU5DKCRhY19mdW5jLCAKLSAgICAgIFtBQ19ERUZJTkVfVU5RVU9URUQoQ1JBWV9TVEFDS1NF R19FTkQsICRhY19mdW5jLCAKLSAgW0RlZmluZSB0byBvbmUgb2YgX2dldGI2NywgR0VUQjY3LCBn ZXRiNjcgZm9yIENyYXktMiBhbmQgQ3JheS1ZTVAKLSAgIHN5c3RlbXMuIFRoaXMgZnVuY3Rpb24g aXMgcmVxdWlyZWQgZm9yIGFsbG9jYS5jIHN1cHBvcnQgb24gdGhvc2UKLSAgIHN5c3RlbXMuXSkg IGJyZWFrXSkKLSAgZG9uZQotZmkKLQotQUNfQ0FDSEVfQ0hFQ0soc3RhY2sgZGlyZWN0aW9uIGZv ciBDIGFsbG9jYSwgYWNfY3ZfY19zdGFja19kaXJlY3Rpb24sCi1bQUNfVFJZX1JVTihbZmluZF9z dGFja19kaXJlY3Rpb24gKCkKLXsKLSAgc3RhdGljIGNoYXIgKmFkZHIgPSAwOwotICBhdXRvIGNo YXIgZHVtbXk7Ci0gIGlmIChhZGRyID09IDApCi0gICAgewotICAgICAgYWRkciA9ICZkdW1teTsK LSAgICAgIHJldHVybiBmaW5kX3N0YWNrX2RpcmVjdGlvbiAoKTsKLSAgICB9Ci0gIGVsc2UKLSAg ICByZXR1cm4gKCZkdW1teSA+IGFkZHIpID8gMSA6IC0xOwotfQotbWFpbiAoKQotewotICBleGl0 IChmaW5kX3N0YWNrX2RpcmVjdGlvbigpIDwgMCk7Ci19XSwgCi0gIGFjX2N2X2Nfc3RhY2tfZGly ZWN0aW9uPTEsCi0gIGFjX2N2X2Nfc3RhY2tfZGlyZWN0aW9uPS0xLAotICBhY19jdl9jX3N0YWNr X2RpcmVjdGlvbj0wKV0pCi1BQ19ERUZJTkVfVU5RVU9URUQoU1RBQ0tfRElSRUNUSU9OLCAkYWNf Y3ZfY19zdGFja19kaXJlY3Rpb24sCi0gIFtEZWZpbmUgaWYgeW91IGtub3cgdGhlIGRpcmVjdGlv biBvZiBzdGFjayBncm93dGggZm9yIHlvdXIgc3lzdGVtOwotICAgb3RoZXJ3aXNlIGl0IHdpbGwg YmUgYXV0b21hdGljYWxseSBkZWR1Y2VkIGF0IHJ1bi10aW1lLgotICAgICAgICBTVEFDS19ESVJF Q1RJT04gPiAwID0+IGdyb3dzIHRvd2FyZCBoaWdoZXIgYWRkcmVzc2VzCi0gICAgICAgIFNUQUNL X0RJUkVDVElPTiA8IDAgPT4gZ3Jvd3MgdG93YXJkIGxvd2VyIGFkZHJlc3NlcwotICAgICAgICBT VEFDS19ESVJFQ1RJT04gPSAwID0+IGRpcmVjdGlvbiBvZiBncm93dGggdW5rbm93bl0pCi1dKQor IyBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSBhY2xvY2FsIDEuMTUuMSAtKi0gQXV0b2NvbmYg LSotCisKKyMgQ29weXJpZ2h0IChDKSAxOTk2LTIwMTcgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCisKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24KKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3Ig ZGlzdHJpYnV0ZSBpdCwKKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcg YXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorIyBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBCisjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKworbTRfaWZuZGVmKFtBQ19DT05GSUdfTUFDUk9f RElSU10sIFttNF9kZWZ1bihbX0FNX0NPTkZJR19NQUNST19ESVJTXSwgW10pbTRfZGVmdW4oW0FD X0NPTkZJR19NQUNST19ESVJTXSwgW19BTV9DT05GSUdfTUFDUk9fRElSUygkQCldKV0pCittNF9p bmNsdWRlKFsuLi9jb25maWcvYWN4Lm00XSkKK200X2luY2x1ZGUoWy4uL2NvbmZpZy9jZXQubTRd KQorbTRfaW5jbHVkZShbLi4vY29uZmlnL2VuYWJsZS5tNF0pCittNF9pbmNsdWRlKFsuLi9jb25m aWcvbm8tZXhlY3V0YWJsZXMubTRdKQorbTRfaW5jbHVkZShbLi4vY29uZmlnL3BpY2ZsYWcubTRd KQorbTRfaW5jbHVkZShbLi4vY29uZmlnL3dhcm5pbmdzLm00XSkKK200X2luY2x1ZGUoW2FjaW5j bHVkZS5tNF0pCmRpZmYgLS1naXQgYS9saWJpYmVydHkvYXJndi5jIGIvbGliaWJlcnR5L2FyZ3Yu YwppbmRleCBjZDk3ZjkwNzFjMi4uNDhkY2QxMDI0NjEgMTAwNjQ0Ci0tLSBhL2xpYmliZXJ0eS9h cmd2LmMKKysrIGIvbGliaWJlcnR5L2FyZ3YuYwpAQCAtNDQyLDcgKzQ0MiwxMCBAQCBleHBhbmRh cmd2IChpbnQgKmFyZ2NwLCBjaGFyICoqKmFyZ3ZwKQogCSAgICAgZHVlIHRvIENSL0xGLT5DUiB0 cmFuc2xhdGlvbiB3aGVuIHJlYWRpbmcgdGV4dCBmaWxlcy4KIAkgICAgIFRoYXQgZG9lcyBub3Qg aW4tYW5kLW9mIGl0c2VsZiBpbmRpY2F0ZSBmYWlsdXJlLiAgKi8KIAkgICYmIGZlcnJvciAoZikp Ci0JZ290byBlcnJvcjsKKwl7CisJICBmcmVlIChidWZmZXIpOworCSAgZ290byBlcnJvcjsKKwl9 CiAgICAgICAvKiBBZGQgYSBOVUwgdGVybWluYXRvci4gICovCiAgICAgICBidWZmZXJbbGVuXSA9 ICdcMCc7CiAgICAgICAvKiBJZiB0aGUgZmlsZSBpcyBlbXB0eSBvciBjb250YWlucyBvbmx5IHdo aXRlc3BhY2UsIGJ1aWxkYXJndiB3b3VsZApkaWZmIC0tZ2l0IGEvbGliaWJlcnR5L2NvbmZpZ3Vy ZSBiL2xpYmliZXJ0eS9jb25maWd1cmUKaW5kZXggMjlhNjkwZDQ0ZmMuLmY3NDQ5ZDZhMzY4IDEw MDc1NQotLS0gYS9saWJpYmVydHkvY29uZmlndXJlCisrKyBiL2xpYmliZXJ0eS9jb25maWd1cmUK QEAgLTY0NSw4ICs2NDUsNiBAQCBDUFBGTEFHUwogTERGTEFHUwogQ0ZMQUdTCiBDQwotUkFOTElC X1BMVUdJTl9PUFRJT04KLUFSX1BMVUdJTl9PUFRJT04KIFJBTkxJQgogQVIKIGhvc3Rfb3MKQEAg LTY4Myw2ICs2ODEsNyBAQCBpbmZvZGlyCiBkb2NkaXIKIG9sZGluY2x1ZGVkaXIKIGluY2x1ZGVk aXIKK3J1bnN0YXRlZGlyCiBsb2NhbHN0YXRlZGlyCiBzaGFyZWRzdGF0ZWRpcgogc3lzY29uZmRp cgpAQCAtNzYyLDYgKzc2MSw3IEBAIGRhdGFkaXI9JyR7ZGF0YXJvb3RkaXJ9Jwogc3lzY29uZmRp cj0nJHtwcmVmaXh9L2V0YycKIHNoYXJlZHN0YXRlZGlyPScke3ByZWZpeH0vY29tJwogbG9jYWxz dGF0ZWRpcj0nJHtwcmVmaXh9L3ZhcicKK3J1bnN0YXRlZGlyPScke2xvY2Fsc3RhdGVkaXJ9L3J1 bicKIGluY2x1ZGVkaXI9JyR7cHJlZml4fS9pbmNsdWRlJwogb2xkaW5jbHVkZWRpcj0nL3Vzci9p bmNsdWRlJwogZG9jZGlyPScke2RhdGFyb290ZGlyfS9kb2MvJHtQQUNLQUdFfScKQEAgLTEwMTQs NiArMTAxNCwxNSBAQCBkbwogICB8IC1zaWxlbnQgfCAtLXNpbGVudCB8IC0tc2lsZW4gfCAtLXNp bGUgfCAtLXNpbCkKICAgICBzaWxlbnQ9eWVzIDs7CiAKKyAgLXJ1bnN0YXRlZGlyIHwgLS1ydW5z dGF0ZWRpciB8IC0tcnVuc3RhdGVkaSB8IC0tcnVuc3RhdGVkIFwKKyAgfCAtLXJ1bnN0YXRlIHwg LS1ydW5zdGF0IHwgLS1ydW5zdGEgfCAtLXJ1bnN0IHwgLS1ydW5zIFwKKyAgfCAtLXJ1biB8IC0t cnUgfCAtLXIpCisgICAgYWNfcHJldj1ydW5zdGF0ZWRpciA7OworICAtcnVuc3RhdGVkaXI9KiB8 IC0tcnVuc3RhdGVkaXI9KiB8IC0tcnVuc3RhdGVkaT0qIHwgLS1ydW5zdGF0ZWQ9KiBcCisgIHwg LS1ydW5zdGF0ZT0qIHwgLS1ydW5zdGF0PSogfCAtLXJ1bnN0YT0qIHwgLS1ydW5zdD0qIHwgLS1y dW5zPSogXAorICB8IC0tcnVuPSogfCAtLXJ1PSogfCAtLXI9KikKKyAgICBydW5zdGF0ZWRpcj0k YWNfb3B0YXJnIDs7CisKICAgLXNiaW5kaXIgfCAtLXNiaW5kaXIgfCAtLXNiaW5kaSB8IC0tc2Jp bmQgfCAtLXNiaW4gfCAtLXNiaSB8IC0tc2IpCiAgICAgYWNfcHJldj1zYmluZGlyIDs7CiAgIC1z YmluZGlyPSogfCAtLXNiaW5kaXI9KiB8IC0tc2JpbmRpPSogfCAtLXNiaW5kPSogfCAtLXNiaW49 KiBcCkBAIC0xMTUxLDcgKzExNjAsNyBAQCBmaQogZm9yIGFjX3ZhciBpbglleGVjX3ByZWZpeCBw cmVmaXggYmluZGlyIHNiaW5kaXIgbGliZXhlY2RpciBkYXRhcm9vdGRpciBcCiAJCWRhdGFkaXIg c3lzY29uZmRpciBzaGFyZWRzdGF0ZWRpciBsb2NhbHN0YXRlZGlyIGluY2x1ZGVkaXIgXAogCQlv bGRpbmNsdWRlZGlyIGRvY2RpciBpbmZvZGlyIGh0bWxkaXIgZHZpZGlyIHBkZmRpciBwc2RpciBc Ci0JCWxpYmRpciBsb2NhbGVkaXIgbWFuZGlyCisJCWxpYmRpciBsb2NhbGVkaXIgbWFuZGlyIHJ1 bnN0YXRlZGlyCiBkbwogICBldmFsIGFjX3ZhbD1cJCRhY192YXIKICAgIyBSZW1vdmUgdHJhaWxp bmcgc2xhc2hlcy4KQEAgLTEzMDQsNiArMTMxMyw3IEBAIEZpbmUgdHVuaW5nIG9mIHRoZSBpbnN0 YWxsYXRpb24gZGlyZWN0b3JpZXM6CiAgIC0tc3lzY29uZmRpcj1ESVIgICAgICAgIHJlYWQtb25s eSBzaW5nbGUtbWFjaGluZSBkYXRhIFtQUkVGSVgvZXRjXQogICAtLXNoYXJlZHN0YXRlZGlyPURJ UiAgICBtb2RpZmlhYmxlIGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBkYXRhIFtQUkVGSVgvY29t XQogICAtLWxvY2Fsc3RhdGVkaXI9RElSICAgICBtb2RpZmlhYmxlIHNpbmdsZS1tYWNoaW5lIGRh dGEgW1BSRUZJWC92YXJdCisgIC0tcnVuc3RhdGVkaXI9RElSICAgICAgIG1vZGlmaWFibGUgcGVy LXByb2Nlc3MgZGF0YSBbTE9DQUxTVEFURURJUi9ydW5dCiAgIC0tbGliZGlyPURJUiAgICAgICAg ICAgIG9iamVjdCBjb2RlIGxpYnJhcmllcyBbRVBSRUZJWC9saWJdCiAgIC0taW5jbHVkZWRpcj1E SVIgICAgICAgIEMgaGVhZGVyIGZpbGVzIFtQUkVGSVgvaW5jbHVkZV0KICAgLS1vbGRpbmNsdWRl ZGlyPURJUiAgICAgQyBoZWFkZXIgZmlsZXMgZm9yIG5vbi1nY2MgWy91c3IvaW5jbHVkZV0KQEAg LTI0NjAsOSArMjQ3MCw2IEBAIGFjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUK IAogCiAKLQotCi0KICMgVGhpcyB3b3JrcyBhcm91bmQgdGhlIGZhY3QgdGhhdCBsaWJ0b29sIGNv bmZpZ3VyYXRpb24gbWF5IGNoYW5nZSBMRAogIyBmb3IgdGhpcyBwYXJ0aWN1bGFyIGNvbmZpZ3Vy YXRpb24sIGJ1dCBzb21lIHNoZWxscywgaW5zdGVhZCBvZgogIyBrZWVwaW5nIHRoZSBjaGFuZ2Vz IGluIExEIHByaXZhdGUsIGV4cG9ydCB0aGVtIGp1c3QgYmVjYXVzZSBMRCBpcwpAQCAtMjkzNCwx NDQgKzI5NDEsNiBAQCBlbHNlCiBmaQogCiAKLXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogY2hlY2tpbmcgZm9yIC1wbHVnaW4gb3B0aW9uIiA+JjUKLSRhc19lY2hvX24g ImNoZWNraW5nIGZvciAtcGx1Z2luIG9wdGlvbi4uLiAiID4mNjsgfQotCi1wbHVnaW5fbmFtZXM9 ImxpYmx0b19wbHVnaW4uc28gbGlibHRvX3BsdWdpbi0wLmRsbCBjeWdsdG9fcGx1Z2luLTAuZGxs IgotcGx1Z2luX29wdGlvbj0KLWZvciBwbHVnaW4gaW4gJHBsdWdpbl9uYW1lczsgZG8KLSAgcGx1 Z2luX3NvPWAke0NDfSAke0NGTEFHU30gLS1wcmludC1wcm9nLW5hbWUgJHBsdWdpbmAKLSAgaWYg dGVzdCB4JHBsdWdpbl9zbyA9IHgkcGx1Z2luOyB0aGVuCi0gICAgcGx1Z2luX3NvPWAke0NDfSAk e0NGTEFHU30gLS1wcmludC1maWxlLW5hbWUgJHBsdWdpbmAKLSAgZmkKLSAgaWYgdGVzdCB4JHBs dWdpbl9zbyAhPSB4JHBsdWdpbjsgdGhlbgotICAgIHBsdWdpbl9vcHRpb249Ii0tcGx1Z2luICRw bHVnaW5fc28iCi0gICAgYnJlYWsKLSAgZmkKLWRvbmUKLWlmIHRlc3QgLW4gIiRhY190b29sX3By ZWZpeCI7IHRoZW4KLSAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJl Zml4fWFyIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLXNldCBkdW1t eSAke2FjX3Rvb2xfcHJlZml4fWFyOyBhY193b3JkPSQyCi17ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0kYXNfZWNob19u ICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLWlmICR7YWNfY3ZfcHJvZ19BUis6 fSBmYWxzZTsgdGhlbiA6Ci0gICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci1lbHNlCi0gIGlm IHRlc3QgLW4gIiRBUiI7IHRoZW4KLSAgYWNfY3ZfcHJvZ19BUj0iJEFSIiAjIExldCB0aGUgdXNl ciBvdmVycmlkZSB0aGUgdGVzdC4KLWVsc2UKLWFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9T RVBBUkFUT1IKLWZvciBhc19kaXIgaW4gJFBBVEgKLWRvCi0gIElGUz0kYXNfc2F2ZV9JRlMKLSAg dGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSAgICBmb3IgYWNfZXhlY19leHQgaW4gJycg JGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSAgaWYgYXNfZm5fZXhlY3V0YWJsZV9wICIk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgotICAgIGFjX2N2X3Byb2dfQVI9IiR7 YWNfdG9vbF9wcmVmaXh9YXIiCi0gICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0gICAgYnJlYWsg MgotICBmaQotZG9uZQotICBkb25lCi1JRlM9JGFzX3NhdmVfSUZTCi0KLWZpCi1maQotQVI9JGFj X2N2X3Byb2dfQVIKLWlmIHRlc3QgLW4gIiRBUiI7IHRoZW4KLSAgeyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRBUiIgPiY1Ci0kYXNfZWNobyAiJEFSIiA+ JjY7IH0KLWVsc2UKLSAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBy ZXN1bHQ6IG5vIiA+JjUKLSRhc19lY2hvICJubyIgPiY2OyB9Ci1maQotCi0KLWZpCi1pZiB0ZXN0 IC16ICIkYWNfY3ZfcHJvZ19BUiI7IHRoZW4KLSAgYWNfY3RfQVI9JEFSCi0gICMgRXh0cmFjdCB0 aGUgZmlyc3Qgd29yZCBvZiAiYXIiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBh cmdzLgotc2V0IGR1bW15IGFyOyBhY193b3JkPSQyCi17ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0kYXNfZWNob19uICJj aGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLWlmICR7YWNfY3ZfcHJvZ19hY19jdF9B Uis6fSBmYWxzZTsgdGhlbiA6Ci0gICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci1lbHNlCi0g IGlmIHRlc3QgLW4gIiRhY19jdF9BUiI7IHRoZW4KLSAgYWNfY3ZfcHJvZ19hY19jdF9BUj0iJGFj X2N0X0FSIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLWVsc2UKLWFzX3NhdmVf SUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLWZvciBhc19kaXIgaW4gJFBBVEgKLWRvCi0g IElGUz0kYXNfc2F2ZV9JRlMKLSAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSAgICBm b3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSAgaWYg YXNfZm5fZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgot ICAgIGFjX2N2X3Byb2dfYWNfY3RfQVI9ImFyIgotICAgICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQot ICAgIGJyZWFrIDIKLSAgZmkKLWRvbmUKLSAgZG9uZQotSUZTPSRhc19zYXZlX0lGUwotCi1maQot ZmkKLWFjX2N0X0FSPSRhY19jdl9wcm9nX2FjX2N0X0FSCi1pZiB0ZXN0IC1uICIkYWNfY3RfQVIi OyB0aGVuCi0gIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0 OiAkYWNfY3RfQVIiID4mNQotJGFzX2VjaG8gIiRhY19jdF9BUiIgPiY2OyB9Ci1lbHNlCi0gIHsg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1Ci0k YXNfZWNobyAibm8iID4mNjsgfQotZmkKLQotICBpZiB0ZXN0ICJ4JGFjX2N0X0FSIiA9IHg7IHRo ZW4KLSAgICBBUj0iIgotICBlbHNlCi0gICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29s X3dhcm5lZCBpbgoteWVzOikKLXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlw bGV0IiA+JjUKLSRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5v dCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KLWFjX3Rvb2xfd2FybmVkPXllcyA7 OwotZXNhYwotICAgIEFSPSRhY19jdF9BUgotICBmaQotZWxzZQotICBBUj0iJGFjX2N2X3Byb2df QVIiCi1maQotCi1pZiB0ZXN0ICIke0FSfSIgPSAiIiA7IHRoZW4KLSAgYXNfZm5fZXJyb3IgJD8g IlJlcXVpcmVkIGFyY2hpdmUgdG9vbCAnYXInIG5vdCBmb3VuZCBvbiBQQVRILiIgIiRMSU5FTk8i IDUKLWZpCi10b3VjaCBjb25mdGVzdC5jCi0ke0FSfSAkcGx1Z2luX29wdGlvbiByYyBjb25mdGVz dC5hIGNvbmZ0ZXN0LmMKLWlmIHRlc3QgIiQ/IiAhPSAwOyB0aGVuCi0gIHsgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogRmFpbGVkOiAkQVIgJHBsdWdpbl9v cHRpb24gcmMiID4mNQotJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogRmFpbGVkOiAkQVIgJHBs dWdpbl9vcHRpb24gcmMiID4mMjt9Ci0gIHBsdWdpbl9vcHRpb249Ci1maQotcm0gLWYgY29uZnRl c3QuKgotaWYgdGVzdCAtbiAiJHBsdWdpbl9vcHRpb24iOyB0aGVuCi0gIFBMVUdJTl9PUFRJT049 IiRwbHVnaW5fb3B0aW9uIgotICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IHJlc3VsdDogJHBsdWdpbl9vcHRpb24iID4mNQotJGFzX2VjaG8gIiRwbHVnaW5fb3B0aW9u IiA+JjY7IH0KLWVsc2UKLSAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiByZXN1bHQ6IG5vIiA+JjUKLSRhc19lY2hvICJubyIgPiY2OyB9Ci1maQotCi1pZiB0ZXN0IC1u ICIkUExVR0lOX09QVElPTiI7IHRoZW4KLSAgaWYgJEFSIC0taGVscCAyPiYxIHwgZ3JlcCAtcSAi XC0tcGx1Z2luIjsgdGhlbgotICAgIEFSX1BMVUdJTl9PUFRJT049IiRQTFVHSU5fT1BUSU9OIgot Ci0gIGZpCi0gIGlmICRSQU5MSUIgLS1oZWxwIDI+JjEgfCBncmVwIC1xICJcLS1wbHVnaW4iOyB0 aGVuCi0gICAgUkFOTElCX1BMVUdJTl9PUFRJT049IiRQTFVHSU5fT1BUSU9OIgotCi0gIGZpCi1m aQotCiAjIEFkZCAtLWVuYWJsZS1tdWx0aWxpYiB0byBjb25maWd1cmUuCiAjIERlZmF1bHQgdG8g LS1lbmFibGUtbXVsdGlsaWIKICMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1tdWx0aWxpYiB3YXMg Z2l2ZW4uCkBAIC00NDI2LDcgKzQyOTUsNyBAQCBlbHNlCiAgICAgV2UgY2FuJ3Qgc2ltcGx5IGRl ZmluZSBMQVJHRV9PRkZfVCB0byBiZSA5MjIzMzcyMDM2ODU0Nzc1ODA3LAogICAgIHNpbmNlIHNv bWUgQysrIGNvbXBpbGVycyBtYXNxdWVyYWRpbmcgYXMgQyBjb21waWxlcnMKICAgICBpbmNvcnJl Y3RseSByZWplY3QgOTIyMzM3MjAzNjg1NDc3NTgwNy4gICovCi0jZGVmaW5lIExBUkdFX09GRl9U ICgoKG9mZl90KSAxIDw8IDYyKSAtIDEgKyAoKG9mZl90KSAxIDw8IDYyKSkKKyNkZWZpbmUgTEFS R0VfT0ZGX1QgKCgoKG9mZl90KSAxIDw8IDMxKSA8PCAzMSkgLSAxICsgKCgob2ZmX3QpIDEgPDwg MzEpIDw8IDMxKSkKICAgaW50IG9mZl90X2lzX2xhcmdlWyhMQVJHRV9PRkZfVCAlIDIxNDc0ODM2 MjkgPT0gNzIxCiAJCSAgICAgICAmJiBMQVJHRV9PRkZfVCAlIDIxNDc0ODM2NDcgPT0gMSkKIAkJ ICAgICAgPyAxIDogLTFdOwpAQCAtNDQ3Miw3ICs0MzQxLDcgQEAgZWxzZQogICAgIFdlIGNhbid0 IHNpbXBseSBkZWZpbmUgTEFSR0VfT0ZGX1QgdG8gYmUgOTIyMzM3MjAzNjg1NDc3NTgwNywKICAg ICBzaW5jZSBzb21lIEMrKyBjb21waWxlcnMgbWFzcXVlcmFkaW5nIGFzIEMgY29tcGlsZXJzCiAg ICAgaW5jb3JyZWN0bHkgcmVqZWN0IDkyMjMzNzIwMzY4NTQ3NzU4MDcuICAqLwotI2RlZmluZSBM QVJHRV9PRkZfVCAoKChvZmZfdCkgMSA8PCA2MikgLSAxICsgKChvZmZfdCkgMSA8PCA2MikpCisj ZGVmaW5lIExBUkdFX09GRl9UICgoKChvZmZfdCkgMSA8PCAzMSkgPDwgMzEpIC0gMSArICgoKG9m Zl90KSAxIDw8IDMxKSA8PCAzMSkpCiAgIGludCBvZmZfdF9pc19sYXJnZVsoTEFSR0VfT0ZGX1Qg JSAyMTQ3NDgzNjI5ID09IDcyMQogCQkgICAgICAgJiYgTEFSR0VfT0ZGX1QgJSAyMTQ3NDgzNjQ3 ID09IDEpCiAJCSAgICAgID8gMSA6IC0xXTsKQEAgLTQ0OTYsNyArNDM2NSw3IEBAIHJtIC1mIGNv cmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAogICAg IFdlIGNhbid0IHNpbXBseSBkZWZpbmUgTEFSR0VfT0ZGX1QgdG8gYmUgOTIyMzM3MjAzNjg1NDc3 NTgwNywKICAgICBzaW5jZSBzb21lIEMrKyBjb21waWxlcnMgbWFzcXVlcmFkaW5nIGFzIEMgY29t cGlsZXJzCiAgICAgaW5jb3JyZWN0bHkgcmVqZWN0IDkyMjMzNzIwMzY4NTQ3NzU4MDcuICAqLwot I2RlZmluZSBMQVJHRV9PRkZfVCAoKChvZmZfdCkgMSA8PCA2MikgLSAxICsgKChvZmZfdCkgMSA8 PCA2MikpCisjZGVmaW5lIExBUkdFX09GRl9UICgoKChvZmZfdCkgMSA8PCAzMSkgPDwgMzEpIC0g MSArICgoKG9mZl90KSAxIDw8IDMxKSA8PCAzMSkpCiAgIGludCBvZmZfdF9pc19sYXJnZVsoTEFS R0VfT0ZGX1QgJSAyMTQ3NDgzNjI5ID09IDcyMQogCQkgICAgICAgJiYgTEFSR0VfT0ZGX1QgJSAy MTQ3NDgzNjQ3ID09IDEpCiAJCSAgICAgID8gMSA6IC0xXTsKQEAgLTQ1NDEsNyArNDQxMCw3IEBA IGVsc2UKICAgICBXZSBjYW4ndCBzaW1wbHkgZGVmaW5lIExBUkdFX09GRl9UIHRvIGJlIDkyMjMz NzIwMzY4NTQ3NzU4MDcsCiAgICAgc2luY2Ugc29tZSBDKysgY29tcGlsZXJzIG1hc3F1ZXJhZGlu ZyBhcyBDIGNvbXBpbGVycwogICAgIGluY29ycmVjdGx5IHJlamVjdCA5MjIzMzcyMDM2ODU0Nzc1 ODA3LiAgKi8KLSNkZWZpbmUgTEFSR0VfT0ZGX1QgKCgob2ZmX3QpIDEgPDwgNjIpIC0gMSArICgo b2ZmX3QpIDEgPDwgNjIpKQorI2RlZmluZSBMQVJHRV9PRkZfVCAoKCgob2ZmX3QpIDEgPDwgMzEp IDw8IDMxKSAtIDEgKyAoKChvZmZfdCkgMSA8PCAzMSkgPDwgMzEpKQogICBpbnQgb2ZmX3RfaXNf bGFyZ2VbKExBUkdFX09GRl9UICUgMjE0NzQ4MzYyOSA9PSA3MjEKIAkJICAgICAgICYmIExBUkdF X09GRl9UICUgMjE0NzQ4MzY0NyA9PSAxKQogCQkgICAgICA/IDEgOiAtMV07CkBAIC00NTY1LDcg KzQ0MzQsNyBAQCBybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNv bmZ0ZXN0LiRhY19leHQKICAgICBXZSBjYW4ndCBzaW1wbHkgZGVmaW5lIExBUkdFX09GRl9UIHRv IGJlIDkyMjMzNzIwMzY4NTQ3NzU4MDcsCiAgICAgc2luY2Ugc29tZSBDKysgY29tcGlsZXJzIG1h c3F1ZXJhZGluZyBhcyBDIGNvbXBpbGVycwogICAgIGluY29ycmVjdGx5IHJlamVjdCA5MjIzMzcy MDM2ODU0Nzc1ODA3LiAgKi8KLSNkZWZpbmUgTEFSR0VfT0ZGX1QgKCgob2ZmX3QpIDEgPDwgNjIp IC0gMSArICgob2ZmX3QpIDEgPDwgNjIpKQorI2RlZmluZSBMQVJHRV9PRkZfVCAoKCgob2ZmX3Qp IDEgPDwgMzEpIDw8IDMxKSAtIDEgKyAoKChvZmZfdCkgMSA8PCAzMSkgPDwgMzEpKQogICBpbnQg b2ZmX3RfaXNfbGFyZ2VbKExBUkdFX09GRl9UICUgMjE0NzQ4MzYyOSA9PSA3MjEKIAkJICAgICAg ICYmIExBUkdFX09GRl9UICUgMjE0NzQ4MzY0NyA9PSAxKQogCQkgICAgICA/IDEgOiAtMV07CkBA IC02NzMxLDYgKzY2MDAsMjIgQEAgaWYgdGVzdCAteiAiJHtzZXRvYmpzfSI7IHRoZW4KICAgICBh Y19jdl9mdW5jX2dldHBhZ2VzaXplPXllcwogICAgIDs7CiAKKyAgaHBwYSotKi1ocHV4KikKKyAg ICAjIFJlcGxhY2Ugc3lzdGVtIHNucHJpbnRmIGFuZCB2c25wcmludGYgd2l0aCBsaWJpYmVydHkg aW1wbGVtZW50YXRpb25zLgorICAgIGNhc2UgIiAkTElCT0JKUyAiIGluCisgICoiIHNucHJpbnRm LiRhY19vYmpleHQgIiogKSA7OworICAqKSBMSUJPQkpTPSIkTElCT0JKUyBzbnByaW50Zi4kYWNf b2JqZXh0IgorIDs7Citlc2FjCisKKyAgICBjYXNlICIgJExJQk9CSlMgIiBpbgorICAqIiB2c25w cmludGYuJGFjX29iamV4dCAiKiApIDs7CisgICopIExJQk9CSlM9IiRMSUJPQkpTIHZzbnByaW50 Zi4kYWNfb2JqZXh0IgorIDs7Citlc2FjCisKKyAgICA7OworCiAgICotKi1taW5ndzMyKikKICAg ICAjIFVuZGVyIG1pbmd3MzIsIHN5c19uZXJyIGFuZCBzeXNfZXJybGlzdCBleGlzdCwgYnV0IHRo ZXkgYXJlCiAgICAgIyBtYWNyb3MsIHNvIHRoZSB0ZXN0IGJlbG93IHdvbid0IGZpbmQgdGhlbS4K QEAgLTcxOTIsMTEgKzcwNzcsMTEgQEAgZWxzZQogZmkKIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNF T0YgPmNvbmZ0ZXN0LiRhY19leHQKIC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLWludCAqcDsKK2V4 dGVybiBpbnQgJHYgW107CiBpbnQKIG1haW4gKCkKIHsKLWV4dGVybiBpbnQgJHYgW107IHAgPSAk djsKK2lmICgkdiBbMF0pIHJldHVybiAxOwogICA7CiAgIHJldHVybiAwOwogfQpAQCAtNzY5MCw2 ICs3NTc1LDggQEAgbWFpbiAoKQogICAgIGlmICgqKGRhdGEgKyBpKSAhPSAqKGRhdGEzICsgaSkp CiAgICAgICByZXR1cm4gMTQ7CiAgIGNsb3NlIChmZCk7CisgIGZyZWUgKGRhdGEpOworICBmcmVl IChkYXRhMyk7CiAgIHJldHVybiAwOwogfQogX0FDRU9GCmRpZmYgLS1naXQgYS9saWJpYmVydHkv Y29uZmlndXJlLmFjIGIvbGliaWJlcnR5L2NvbmZpZ3VyZS5hYwppbmRleCA3NTZkMTFhODI2MC4u YTg1ZmYyNTUwMWEgMTAwNjQ0Ci0tLSBhL2xpYmliZXJ0eS9jb25maWd1cmUuYWMKKysrIGIvbGli aWJlcnR5L2NvbmZpZ3VyZS5hYwpAQCAtMTA4LDE4ICsxMDgsNiBAQCBkbmwgdG8gY2FsbCBBQ19D SEVDS19QUk9HLgogQUNfQ0hFQ0tfVE9PTChBUiwgYXIpCiBBQ19DSEVDS19UT09MKFJBTkxJQiwg cmFubGliLCA6KQogCi1HQ0NfUExVR0lOX09QVElPTihQTFVHSU5fT1BUSU9OKQotaWYgdGVzdCAt biAiJFBMVUdJTl9PUFRJT04iOyB0aGVuCi0gIGlmICRBUiAtLWhlbHAgMj4mMSB8IGdyZXAgLXEg IlwtLXBsdWdpbiI7IHRoZW4KLSAgICBBUl9QTFVHSU5fT1BUSU9OPSIkUExVR0lOX09QVElPTiIK LSAgICBBQ19TVUJTVChBUl9QTFVHSU5fT1BUSU9OKQotICBmaQotICBpZiAkUkFOTElCIC0taGVs cCAyPiYxIHwgZ3JlcCAtcSAiXC0tcGx1Z2luIjsgdGhlbgotICAgIFJBTkxJQl9QTFVHSU5fT1BU SU9OPSIkUExVR0lOX09QVElPTiIKLSAgICBBQ19TVUJTVChSQU5MSUJfUExVR0lOX09QVElPTikK LSAgZmkKLWZpCi0KIGRubCBXaGVuIHN3aXRjaGluZyB0byBhdXRvbWFrZSwgcmVwbGFjZSB0aGUg Zm9sbG93aW5nIHdpdGggQU1fRU5BQkxFX01VTFRJTElCLgogIyBBZGQgLS1lbmFibGUtbXVsdGls aWIgdG8gY29uZmlndXJlLgogIyBEZWZhdWx0IHRvIC0tZW5hYmxlLW11bHRpbGliCkBAIC02MjMs NiArNjExLDEyIEBAIGlmIHRlc3QgLXogIiR7c2V0b2Jqc30iOyB0aGVuCiAgICAgYWNfY3ZfZnVu Y19nZXRwYWdlc2l6ZT15ZXMKICAgICA7OwogCisgIGhwcGEqLSotaHB1eCopCisgICAgIyBSZXBs YWNlIHN5c3RlbSBzbnByaW50ZiBhbmQgdnNucHJpbnRmIHdpdGggbGliaWJlcnR5IGltcGxlbWVu dGF0aW9ucy4KKyAgICBBQ19MSUJPQkooW3NucHJpbnRmXSkKKyAgICBBQ19MSUJPQkooW3ZzbnBy aW50Zl0pCisgICAgOzsKKwogICAqLSotbWluZ3czMiopCiAgICAgIyBVbmRlciBtaW5ndzMyLCBz eXNfbmVyciBhbmQgc3lzX2Vycmxpc3QgZXhpc3QsIGJ1dCB0aGV5IGFyZQogICAgICMgbWFjcm9z LCBzbyB0aGUgdGVzdCBiZWxvdyB3b24ndCBmaW5kIHRoZW0uCkBAIC02NzcsNyArNjcxLDcgQEAg aWYgdGVzdCAteiAiJHtzZXRvYmpzfSI7IHRoZW4KICAgZm9yIHYgaW4gJHZhcnM7IGRvCiAgICAg QUNfTVNHX0NIRUNLSU5HKFtmb3IgJHZdKQogICAgIEFDX0NBQ0hFX1ZBTChsaWJpYmVydHlfY3Zf dmFyXyR2LAotICAgICAgW0FDX0xJTktfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1tpbnQgKnA7 XV0sW1tleHRlcm4gaW50ICR2IFtdOyBwID0gJHY7XV0pXSwKKyAgICAgIFtBQ19MSU5LX0lGRUxT RShbQUNfTEFOR19QUk9HUkFNKFtbZXh0ZXJuIGludCAkdiBbXTtdXSxbW2lmICgkdiBbMF0pIHJl dHVybiAxO11dKV0sCiAJCSAgICAgIFtldmFsICJsaWJpYmVydHlfY3ZfdmFyXyR2PXllcyJdLAog CQkgICAgICBbZXZhbCAibGliaWJlcnR5X2N2X3Zhcl8kdj1ubyJdKV0pCiAgICAgaWYgZXZhbCAi dGVzdCBcImBlY2hvICckbGliaWJlcnR5X2N2X3Zhcl8nJHZgXCIgPSB5ZXMiOyB0aGVuCmRpZmYg LS1naXQgYS9saWJpYmVydHkvY3AtZGVtYW5nbGUuYyBiL2xpYmliZXJ0eS9jcC1kZW1hbmdsZS5j CmluZGV4IGQzZTc5ODQ1NWNjLi4zMzQ5MGY2MDI4NSAxMDA2NDQKLS0tIGEvbGliaWJlcnR5L2Nw LWRlbWFuZ2xlLmMKKysrIGIvbGliaWJlcnR5L2NwLWRlbWFuZ2xlLmMKQEAgLTgxNSw2ICs4MTUs OSBAQCBkX2R1bXAgKHN0cnVjdCBkZW1hbmdsZV9jb21wb25lbnQgKmRjLCBpbnQgaW5kZW50KQog ICAgIGNhc2UgREVNQU5HTEVfQ09NUE9ORU5UX0xJVEVSQUxfTkVHOgogICAgICAgcHJpbnRmICgi bmVnYXRpdmUgbGl0ZXJhbFxuIik7CiAgICAgICBicmVhazsKKyAgICBjYXNlIERFTUFOR0xFX0NP TVBPTkVOVF9WRU5ET1JfRVhQUjoKKyAgICAgIHByaW50ZiAoInZlbmRvciBleHByZXNzaW9uXG4i KTsKKyAgICAgIGJyZWFrOwogICAgIGNhc2UgREVNQU5HTEVfQ09NUE9ORU5UX0pBVkFfUkVTT1VS Q0U6CiAgICAgICBwcmludGYgKCJqYXZhIHJlc291cmNlXG4iKTsKICAgICAgIGJyZWFrOwpAQCAt OTc2LDYgKzk3OSw3IEBAIGRfbWFrZV9jb21wIChzdHJ1Y3QgZF9pbmZvICpkaSwgZW51bSBkZW1h bmdsZV9jb21wb25lbnRfdHlwZSB0eXBlLAogICAgIGNhc2UgREVNQU5HTEVfQ09NUE9ORU5UX1RS SU5BUllfQVJHMToKICAgICBjYXNlIERFTUFOR0xFX0NPTVBPTkVOVF9MSVRFUkFMOgogICAgIGNh c2UgREVNQU5HTEVfQ09NUE9ORU5UX0xJVEVSQUxfTkVHOgorICAgIGNhc2UgREVNQU5HTEVfQ09N UE9ORU5UX1ZFTkRPUl9FWFBSOgogICAgIGNhc2UgREVNQU5HTEVfQ09NUE9ORU5UX0NPTVBPVU5E X05BTUU6CiAgICAgY2FzZSBERU1BTkdMRV9DT01QT05FTlRfVkVDVE9SX1RZUEU6CiAgICAgY2Fz ZSBERU1BTkdMRV9DT01QT05FTlRfQ0xPTkU6CkBAIC0zMzQ0LDYgKzMzNDgsNyBAQCBkX3VucmVz b2x2ZWRfbmFtZSAoc3RydWN0IGRfaW5mbyAqZGkpCiAJCTo6PSBjbCA8ZXhwcmVzc2lvbj4rIEUK ICAgICAgICAgICAgICAgICA6Oj0gc3QgPHR5cGU+CiAgICAgICAgICAgICAgICAgOjo9IDx0ZW1w bGF0ZS1wYXJhbT4KKwkJOjo9IHUgPHNvdXJjZS1uYW1lPiA8dGVtcGxhdGUtYXJnPiogRSAjIHZl bmRvciBleHRlbmRlZCBleHByZXNzaW9uCiAJCTo6PSA8dW5yZXNvbHZlZC1uYW1lPgogICAgICAg ICAgICAgICAgIDo6PSA8ZXhwci1wcmltYXJ5PgogCkBAIC0zNDI1LDYgKzM0MzAsMTUgQEAgZF9l eHByZXNzaW9uXzEgKHN0cnVjdCBkX2luZm8gKmRpKQogICAgICAgcmV0dXJuIGRfbWFrZV9jb21w IChkaSwgREVNQU5HTEVfQ09NUE9ORU5UX0lOSVRJQUxJWkVSX0xJU1QsCiAJCQkgIHR5cGUsIGRf ZXhwcmxpc3QgKGRpLCAnRScpKTsKICAgICB9CisgIGVsc2UgaWYgKHBlZWsgPT0gJ3UnKQorICAg IHsKKyAgICAgIC8qIEEgdmVuZG9yIGV4dGVuZGVkIGV4cHJlc3Npb24uICAqLworICAgICAgc3Ry dWN0IGRlbWFuZ2xlX2NvbXBvbmVudCAqbmFtZSwgKmFyZ3M7CisgICAgICBkX2FkdmFuY2UgKGRp LCAxKTsKKyAgICAgIG5hbWUgPSBkX3NvdXJjZV9uYW1lIChkaSk7CisgICAgICBhcmdzID0gZF90 ZW1wbGF0ZV9hcmdzXzEgKGRpKTsKKyAgICAgIHJldHVybiBkX21ha2VfY29tcCAoZGksIERFTUFO R0xFX0NPTVBPTkVOVF9WRU5ET1JfRVhQUiwgbmFtZSwgYXJncyk7CisgICAgfQogICBlbHNlCiAg ICAgewogICAgICAgc3RydWN0IGRlbWFuZ2xlX2NvbXBvbmVudCAqb3A7CkBAIC00MjI5LDYgKzQy NDMsNyBAQCBkX2NvdW50X3RlbXBsYXRlc19zY29wZXMgKHN0cnVjdCBkX3ByaW50X2luZm8gKmRw aSwKICAgICBjYXNlIERFTUFOR0xFX0NPTVBPTkVOVF9UUklOQVJZX0FSRzI6CiAgICAgY2FzZSBE RU1BTkdMRV9DT01QT05FTlRfTElURVJBTDoKICAgICBjYXNlIERFTUFOR0xFX0NPTVBPTkVOVF9M SVRFUkFMX05FRzoKKyAgICBjYXNlIERFTUFOR0xFX0NPTVBPTkVOVF9WRU5ET1JfRVhQUjoKICAg ICBjYXNlIERFTUFOR0xFX0NPTVBPTkVOVF9KQVZBX1JFU09VUkNFOgogICAgIGNhc2UgREVNQU5H TEVfQ09NUE9ORU5UX0NPTVBPVU5EX05BTUU6CiAgICAgY2FzZSBERU1BTkdMRV9DT01QT05FTlRf REVDTFRZUEU6CkBAIC01NTA5LDE4ICs1NTI0LDkgQEAgZF9wcmludF9jb21wX2lubmVyIChzdHJ1 Y3QgZF9wcmludF9pbmZvICpkcGksIGludCBvcHRpb25zLAogICAgICAgfQogCiAgICAgY2FzZSBE RU1BTkdMRV9DT01QT05FTlRfRVhURU5ERURfT1BFUkFUT1I6Ci0gICAgICB7Ci0Jc3RydWN0IGRl bWFuZ2xlX2NvbXBvbmVudCAqbmFtZSA9IGRjLT51LnNfZXh0ZW5kZWRfb3BlcmF0b3IubmFtZTsK LQlpZiAobmFtZS0+dHlwZSA9PSBERU1BTkdMRV9DT01QT05FTlRfTkFNRQotCSAgICAmJiAhc3Ry bmNtcCAobmFtZS0+dS5zX25hbWUucywgIl9fYWxpZ25vZl9fIiwgbmFtZS0+dS5zX25hbWUubGVu KSkKLQkgIGRfcHJpbnRfY29tcCAoZHBpLCBvcHRpb25zLCBkYy0+dS5zX2V4dGVuZGVkX29wZXJh dG9yLm5hbWUpOwotCWVsc2UKLQkgIHsKLQkgICAgZF9hcHBlbmRfc3RyaW5nIChkcGksICJvcGVy YXRvciAiKTsKLQkgICAgZF9wcmludF9jb21wIChkcGksIG9wdGlvbnMsIGRjLT51LnNfZXh0ZW5k ZWRfb3BlcmF0b3IubmFtZSk7Ci0JICB9Ci0JcmV0dXJuOwotICAgICAgfQorICAgICAgZF9hcHBl bmRfc3RyaW5nIChkcGksICJvcGVyYXRvciAiKTsKKyAgICAgIGRfcHJpbnRfY29tcCAoZHBpLCBv cHRpb25zLCBkYy0+dS5zX2V4dGVuZGVkX29wZXJhdG9yLm5hbWUpOworICAgICAgcmV0dXJuOwog CiAgICAgY2FzZSBERU1BTkdMRV9DT01QT05FTlRfQ09OVkVSU0lPTjoKICAgICAgIGRfYXBwZW5k X3N0cmluZyAoZHBpLCAib3BlcmF0b3IgIik7CkBAIC01NTg1LDE0ICs1NTkxLDggQEAgZF9wcmlu dF9jb21wX2lubmVyIChzdHJ1Y3QgZF9wcmludF9pbmZvICpkcGksIGludCBvcHRpb25zLAogCWlm IChjb2RlICYmICFzdHJjbXAgKGNvZGUsICJncyIpKQogCSAgLyogQXZvaWQgcGFyZW5zIGFmdGVy ICc6OicuICAqLwogCSAgZF9wcmludF9jb21wIChkcGksIG9wdGlvbnMsIG9wZXJhbmQpOwotCWVs c2UgaWYgKChjb2RlICYmICFzdHJjbXAgKGNvZGUsICJzdCIpKQotCQkgfHwgKG9wLT50eXBlID09 IERFTUFOR0xFX0NPTVBPTkVOVF9FWFRFTkRFRF9PUEVSQVRPUgotCQkgICAgICYmIChvcC0+dS5z X2V4dGVuZGVkX29wZXJhdG9yLm5hbWUtPnR5cGUKLQkJCSA9PSBERU1BTkdMRV9DT01QT05FTlRf TkFNRSkKLQkJICAgICAmJiAhc3RybmNtcCAob3AtPnUuc19leHRlbmRlZF9vcGVyYXRvci5uYW1l LT51LnNfbmFtZS5zLAotCQkJCSAgIl9fYWxpZ25vZl9fIiwKLQkJCQkgIG9wLT51LnNfZXh0ZW5k ZWRfb3BlcmF0b3IubmFtZS0+dS5zX25hbWUubGVuKSkpCi0JICAvKiBBbHdheXMgcHJpbnQgcGFy ZW5zIGZvciBzaXplb2YgKHR5cGUpIGFuZCBfX2FsaWdub2ZfXy4gICovCisJZWxzZSBpZiAoY29k ZSAmJiAhc3RyY21wIChjb2RlLCAic3QiKSkKKwkgIC8qIEFsd2F5cyBwcmludCBwYXJlbnMgZm9y IHNpemVvZiAodHlwZSkuICAqLwogCSAgewogCSAgICBkX2FwcGVuZF9jaGFyIChkcGksICcoJyk7 CiAJICAgIGRfcHJpbnRfY29tcCAoZHBpLCBvcHRpb25zLCBvcGVyYW5kKTsKQEAgLTU4MDUsNiAr NTgwNSwxMyBAQCBkX3ByaW50X2NvbXBfaW5uZXIgKHN0cnVjdCBkX3ByaW50X2luZm8gKmRwaSwg aW50IG9wdGlvbnMsCiAgICAgICB9CiAgICAgICByZXR1cm47CiAKKyAgICBjYXNlIERFTUFOR0xF X0NPTVBPTkVOVF9WRU5ET1JfRVhQUjoKKyAgICAgIGRfcHJpbnRfY29tcCAoZHBpLCBvcHRpb25z LCBkX2xlZnQgKGRjKSk7CisgICAgICBkX2FwcGVuZF9jaGFyIChkcGksICcoJyk7CisgICAgICBk X3ByaW50X2NvbXAgKGRwaSwgb3B0aW9ucywgZF9yaWdodCAoZGMpKTsKKyAgICAgIGRfYXBwZW5k X2NoYXIgKGRwaSwgJyknKTsKKyAgICAgIHJldHVybjsKKwogICAgIGNhc2UgREVNQU5HTEVfQ09N UE9ORU5UX05VTUJFUjoKICAgICAgIGRfYXBwZW5kX251bSAoZHBpLCBkYy0+dS5zX251bWJlci5u dW1iZXIpOwogICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvbGliaWJlcnR5L2R5bi1zdHJpbmcu YyBiL2xpYmliZXJ0eS9keW4tc3RyaW5nLmMKaW5kZXggZWE3MTExODJjYTUuLjhkMjQ1NmI4NmM4 IDEwMDY0NAotLS0gYS9saWJpYmVydHkvZHluLXN0cmluZy5jCisrKyBiL2xpYmliZXJ0eS9keW4t c3RyaW5nLmMKQEAgLTI3Nyw3ICsyNzcsNyBAQCBkeW5fc3RyaW5nX2luc2VydF9jc3RyIChkeW5f c3RyaW5nX3QgZGVzdCwgaW50IHBvcywgY29uc3QgY2hhciAqc3JjKQogICBmb3IgKGkgPSBkZXN0 LT5sZW5ndGg7IGkgPj0gcG9zOyAtLWkpCiAgICAgZGVzdC0+c1tpICsgbGVuZ3RoXSA9IGRlc3Qt PnNbaV07CiAgIC8qIFNwbGljZSBpbiB0aGUgbmV3IHN0dWZmLiAgKi8KLSAgc3RybmNweSAoZGVz dC0+cyArIHBvcywgc3JjLCBsZW5ndGgpOworICBtZW1jcHkgKGRlc3QtPnMgKyBwb3MsIHNyYywg bGVuZ3RoKTsKICAgLyogQ29tcHV0ZSB0aGUgbmV3IGxlbmd0aC4gICovCiAgIGRlc3QtPmxlbmd0 aCArPSBsZW5ndGg7CiAgIHJldHVybiAxOwpkaWZmIC0tZ2l0IGEvbGliaWJlcnR5L21ha2UtdGVt cC1maWxlLmMgYi9saWJpYmVydHkvbWFrZS10ZW1wLWZpbGUuYwppbmRleCA3NDY1Y2VjNWVhNi4u MzFmODdmYmNmZGUgMTAwNjQ0Ci0tLSBhL2xpYmliZXJ0eS9tYWtlLXRlbXAtZmlsZS5jCisrKyBi L2xpYmliZXJ0eS9tYWtlLXRlbXAtZmlsZS5jCkBAIC04MSw4ICs4MSw2IEBAIHRyeV9kaXIgKGNv bnN0IGNoYXIgKmRpciwgY29uc3QgY2hhciAqYmFzZSkKIH0KIAogc3RhdGljIGNvbnN0IGNoYXIg dG1wW10gPSB7IERJUl9TRVBBUkFUT1IsICd0JywgJ20nLCAncCcsIDAgfTsKLXN0YXRpYyBjb25z dCBjaGFyIHVzcnRtcFtdID0KLXsgRElSX1NFUEFSQVRPUiwgJ3UnLCAncycsICdyJywgRElSX1NF UEFSQVRPUiwgJ3QnLCAnbScsICdwJywgMCB9Owogc3RhdGljIGNvbnN0IGNoYXIgdmFydG1wW10g PQogeyBESVJfU0VQQVJBVE9SLCAndicsICdhJywgJ3InLCBESVJfU0VQQVJBVE9SLCAndCcsICdt JywgJ3AnLCAwIH07CiAKQEAgLTEyOSw5ICsxMjcsOCBAQCBjaG9vc2VfdG1wZGlyICh2b2lkKQog CWJhc2UgPSB0cnlfZGlyIChQX3RtcGRpciwgYmFzZSk7CiAjZW5kaWYKIAotICAgICAgLyogVHJ5 IC92YXIvdG1wLCAvdXNyL3RtcCwgdGhlbiAvdG1wLiAgKi8KKyAgICAgIC8qIFRyeSAvdmFyL3Rt cCwgdGhlbiAvdG1wLiAgKi8KICAgICAgIGJhc2UgPSB0cnlfZGlyICh2YXJ0bXAsIGJhc2UpOwot ICAgICAgYmFzZSA9IHRyeV9kaXIgKHVzcnRtcCwgYmFzZSk7CiAgICAgICBiYXNlID0gdHJ5X2Rp ciAodG1wLCBiYXNlKTsKICAgICAgIAogICAgICAgLyogSWYgYWxsIGVsc2UgZmFpbHMsIHVzZSB0 aGUgY3VycmVudCBkaXJlY3RvcnkhICAqLwpkaWZmIC0tZ2l0IGEvbGliaWJlcnR5L3J1c3QtZGVt YW5nbGUuYyBiL2xpYmliZXJ0eS9ydXN0LWRlbWFuZ2xlLmMKaW5kZXggNmZkOGY2YTRkYjAuLjQ0 OTk0MWI1NmRjIDEwMDY0NAotLS0gYS9saWJpYmVydHkvcnVzdC1kZW1hbmdsZS5jCisrKyBiL2xp YmliZXJ0eS9ydXN0LWRlbWFuZ2xlLmMKQEAgLTEyNTMsOSArMTI1MywxMiBAQCBkZW1hbmdsZV9j b25zdF9jaGFyIChzdHJ1Y3QgcnVzdF9kZW1hbmdsZXIgKnJkbSkKICAgZWxzZSBpZiAodmFsdWUg PT0gJ1xuJykKICAgICBQUklOVCAoIlxcbiIpOwogICBlbHNlIGlmICh2YWx1ZSA+ICcgJyAmJiB2 YWx1ZSA8ICd+JykKLSAgICAvKiBSdXN0IGFsc28gY29uc2lkZXJzIG1hbnkgbm9uLUFTQ0lJIGNv ZGVwb2ludHMgdG8gYmUgcHJpbnRhYmxlLCBidXQKLSAgICAgICB0aGF0IGxvZ2ljIGlzIG5vdCBl YXNpbHkgcG9ydGVkIHRvIEMuICovCi0gICAgcHJpbnRfc3RyIChyZG0sIChjaGFyICopICZ2YWx1 ZSwgMSk7CisgICAgeworICAgICAgLyogUnVzdCBhbHNvIGNvbnNpZGVycyBtYW55IG5vbi1BU0NJ SSBjb2RlcG9pbnRzIHRvIGJlIHByaW50YWJsZSwgYnV0CisJIHRoYXQgbG9naWMgaXMgbm90IGVh c2lseSBwb3J0ZWQgdG8gQy4gKi8KKyAgICAgIGNoYXIgYyA9IHZhbHVlOworICAgICAgcHJpbnRf c3RyIChyZG0sICZjLCAxKTsKKyAgICB9CiAgIGVsc2UKICAgICB7CiAgICAgICBQUklOVCAoIlxc dXsiKTsKZGlmZiAtLWdpdCBhL2xpYmliZXJ0eS9zaGExLmMgYi9saWJpYmVydHkvc2hhMS5jCmlu ZGV4IGUzZDdmODZlMzUxLi43ZDE1ZDQ4ZDExZCAxMDA2NDQKLS0tIGEvbGliaWJlcnR5L3NoYTEu YworKysgYi9saWJpYmVydHkvc2hhMS5jCkBAIC0yNTgsNyArMjU4LDcgQEAgc2hhMV9wcm9jZXNz X2J5dGVzIChjb25zdCB2b2lkICpidWZmZXIsIHNpemVfdCBsZW4sIHN0cnVjdCBzaGExX2N0eCAq Y3R4KQogCXsKIAkgIHNoYTFfcHJvY2Vzc19ibG9jayAoY3R4LT5idWZmZXIsIDY0LCBjdHgpOwog CSAgbGVmdF9vdmVyIC09IDY0OwotCSAgbWVtY3B5IChjdHgtPmJ1ZmZlciwgJmN0eC0+YnVmZmVy WzE2XSwgbGVmdF9vdmVyKTsKKwkgIG1lbW1vdmUgKGN0eC0+YnVmZmVyLCAmY3R4LT5idWZmZXJb MTZdLCBsZWZ0X292ZXIpOwogCX0KICAgICAgIGN0eC0+YnVmbGVuID0gbGVmdF9vdmVyOwogICAg IH0KZGlmZiAtLWdpdCBhL2xpYmliZXJ0eS9zaW1wbGUtb2JqZWN0LmMgYi9saWJpYmVydHkvc2lt cGxlLW9iamVjdC5jCmluZGV4IDZkNzBiOTVhMDBiLi5mYWNiZjk0ZmQwOSAxMDA2NDQKLS0tIGEv bGliaWJlcnR5L3NpbXBsZS1vYmplY3QuYworKysgYi9saWJpYmVydHkvc2ltcGxlLW9iamVjdC5j CkBAIC0zMDQsNiArMzA0LDEyIEBAIGhhbmRsZV9sdG9fZGVidWdfc2VjdGlvbnMgKGNvbnN0IGNo YXIgKm5hbWUsIGludCByZW5hbWUpCiAgIC8qIENvcHkgb3ZlciAuR0NDLmNvbW1hbmQubGluZSBz ZWN0aW9uIHVuZGVyIHRoZSBzYW1lIG5hbWUgaWYgcHJlc2VudC4gICovCiAgIGVsc2UgaWYgKHN0 cmNtcCAobmFtZSwgIi5HQ0MuY29tbWFuZC5saW5lIikgPT0gMCkKICAgICByZXR1cm4gc3RyY3B5 IChuZXduYW1lLCBuYW1lKTsKKyAgLyogQ29weSBvdmVyIC5jdGYgc2VjdGlvbiB1bmRlciB0aGUg c2FtZSBuYW1lIGlmIHByZXNlbnQuICAqLworICBlbHNlIGlmIChzdHJjbXAgKG5hbWUsICIuY3Rm IikgPT0gMCkKKyAgICByZXR1cm4gc3RyY3B5IChuZXduYW1lLCBuYW1lKTsKKyAgLyogQ29weSBv dmVyIC5CVEYgc2VjdGlvbiB1bmRlciB0aGUgc2FtZSBuYW1lIGlmIHByZXNlbnQuICAqLworICBl bHNlIGlmIChzdHJjbXAgKG5hbWUsICIuQlRGIikgPT0gMCkKKyAgICByZXR1cm4gc3RyY3B5IChu ZXduYW1lLCBuYW1lKTsKICAgZnJlZSAobmV3bmFtZSk7CiAgIHJldHVybiBOVUxMOwogfQpkaWZm IC0tZ2l0IGEvbGliaWJlcnR5L3Rlc3RzdWl0ZS9kZW1hbmdsZS1leHBlY3RlZCBiL2xpYmliZXJ0 eS90ZXN0c3VpdGUvZGVtYW5nbGUtZXhwZWN0ZWQKaW5kZXggZTZiNWI2NGI5YTkuLjE5YTBkNjIx YmMwIDEwMDY0NAotLS0gYS9saWJpYmVydHkvdGVzdHN1aXRlL2RlbWFuZ2xlLWV4cGVjdGVkCisr KyBiL2xpYmliZXJ0eS90ZXN0c3VpdGUvZGVtYW5nbGUtZXhwZWN0ZWQKQEAgLTE0NzEsMTAgKzE0 NzEsMTAgQEAgX1oyRjJJWjFGdkVVbHZFX0VOMUFJVF9FMVhFUzJfCiBBPEYoKTo6e2xhbWJkYSgp IzF9Pjo6WCBGMjxGKCk6OntsYW1iZGEoKSMxfT4oRigpOjp7bGFtYmRhKCkjMX0pCiAKICMgUFIg ODgxMTUKLV9aMWZJaUV2RFR2MTExX19hbGlnbm9mX19UX0UKK19aMWZJaUV2RFR1MTFfX2FsaWdu b2ZfX1RfRUUKIHZvaWQgZjxpbnQ+KGRlY2x0eXBlIChfX2FsaWdub2ZfXyhpbnQpKSkKIAotX1ox ZklpRXZEVHYxMTFfX2FsaWdub2ZfX3RsVF9FRQorX1oxZklpRXZEVHUxMV9fYWxpZ25vZl9fWHRs VF9FRUVFCiB2b2lkIGY8aW50PihkZWNsdHlwZSAoX19hbGlnbm9mX18oaW50e30pKSkKIAogX1ox Z0kxQUV2MVNJWGFkc3JUX29uY3ZpRUUK --=-=-=--