From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa3.mentor.iphmx.com (esa3.mentor.iphmx.com [68.232.137.180]) by sourceware.org (Postfix) with ESMTPS id B196E3856DD9 for ; Fri, 1 Jul 2022 13:06:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org B196E3856DD9 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="5.92,237,1650960000"; d="diff'?scan'208";a="78045862" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa3.mentor.iphmx.com with ESMTP; 01 Jul 2022 05:06:11 -0800 IronPort-SDR: jVPlPz7OINClGg2pEZ/8U3oJYRDckU9UtK7GPZPf1m7syWoHAPfQnt9s5ZYuIov7M3vtIEp601 SvrQmZ/oqIjN2JDQ1B11otRgjsmR+sU1Xilb0AvgIUZRmipCtYby9j9sm2qQX4t9WcfjoQSWEA ux+Y2hEQKiCWhBRKuCgD4crdvHFIZwVtxePSXpk6azrv5aURgWVC3F36pTthONc67aAeWqkEXa EsXKrJPBGV0dc4ceAlS316+PO4u3pgoED2OgdB9qTHdqhip0sBHs+xNDoD1bgA++toScDeG52X wbc= Content-Type: multipart/mixed; boundary="------------S6MEVNJq0D0vWpwhn0nlgvWl" Message-ID: <16ca2aa4-7e73-cf9d-9482-dd59f5b0cdae@codesourcery.com> Date: Fri, 1 Jul 2022 15:06:05 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: [Patch][v5] OpenMP: Move omp requires checks to libgomp Content-Language: en-US To: Jakub Jelinek CC: gcc-patches References: <07fec82a-41cf-fdc5-6307-c068dd95ef1a@mentor.com> <7f9c91c1-a479-f94f-ac14-1d6827ce671b@codesourcery.com> <5576fa00-0ddd-8046-17c1-d1cea82bdcf5@codesourcery.com> <77331328-4961-9dab-db58-b5b03daf218c@codesourcery.com> From: Tobias Burnus In-Reply-To: X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: SVR-IES-MBX-07.mgc.mentorg.com (139.181.222.7) To svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) 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: Fri, 01 Jul 2022 13:06:22 -0000 --------------S6MEVNJq0D0vWpwhn0nlgvWl Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable Attached is the updated patch. Main changes: - File names shown that violate the requires-clause-must-be-same requiremen= t Taken from the offload_vars/funcs context (if available), otherwise (that's no 'omp target'/'omp declare target' but just 'omp target update= /data' in the TU), the *.o file name is used. (thanks to richi + jakub for the susggestions!) - Uses GOMP_register_var to pass the mask to libgomp (and no longer a weak variable) - 'omp declare target' is not regarded as being used -> pending OpenMP lang= spec clarification - 'omp target update' is for C/C++ - Properly handle is used by-target constucts for Fortran - Save requires (and empty offload table) in the *.o file, even if it is on= ly using 'omp target (enter/exit) data' Thanks goes to Jakub for many useful suggestions! Tested without offloading configured and with nvptx and amdgcn offloading (= all on x86_64-gnu-linux). OK? Or does anyone have more useful suggestions? Tobias ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstra=C3=9Fe 201= , 80634 M=C3=BCnchen; Gesellschaft mit beschr=C3=A4nkter Haftung; Gesch=C3= =A4ftsf=C3=BChrer: Thomas Heurung, Frank Th=C3=BCrauf; Sitz der Gesellschaf= t: M=C3=BCnchen; Registergericht M=C3=BCnchen, HRB 106955 --------------S6MEVNJq0D0vWpwhn0nlgvWl Content-Type: text/x-patch; charset="UTF-8"; name="omp-requires-v5.diff" Content-Disposition: attachment; filename="omp-requires-v5.diff" Content-Transfer-Encoding: base64 T3Blbk1QOiBNb3ZlIG9tcCByZXF1aXJlcyBjaGVja3MgdG8gbGliZ29tcAoKSGFuZGxlIHJl dmVyc2Vfb2ZmbG9hZCwgdW5pZmllZF9hZGRyZXNzLCBhbmQgdW5pZmllZF9zaGFyZWRfbWVt b3J5CnJlcXVpcmVtZW50cyBpbiBsaWJnb21wIGJ5IHNhdmluZyB0aGVtIGFsb25nc2lkZSB0 aGUgb2ZmbG9hZCB0YWJsZS4KV2hlbiB0aGUgZGV2aWNlIGx0bzEgcnVucywgaXQgZXh0cmFj dHMgdGhlIGRhdGEgZm9yIG1rb2ZmbG9hZC4gVGhlCmxhdHRlciB0aGFuIHBhc3NlcyB0aGUg dmFsdWUgb24gdG8gR09NUF9vZmZsb2FkX3JlZ2lzdGVyX3Zlci4KCmx0bzEgKGVpdGhlciB0 aGUgaG9zdCBvbmUsIHdpdGggLWZsdG8gWysgRU5BQkxFX09GRkxPQURJTkddLCBvciBpbiB0 aGUKb2ZmbG9hZC1kZXZpY2UgbHRvMSkgYWxzbyBkb2VzIHRoZSB0aGUgY29uc2lzdGVuY3kg Y2hlY2sgaXMgZG9uZSwKZXJyb3Jpbmcgb3V0IHdoZW4gdGhlICdvbXAgcmVxdWlyZXMnIGNs YXVzZSB1c2UgaXMgaW5jb25zaXN0ZW50LgoKRm9yIGFsbCBpbi1wcmluY2lwbGUgc3VwcG9y dGVkIGRldmljZXMsIGlmIGEgcmVxdWlyZW1lbnQgY2Fubm90IGJlIGZ1bGZpbGxlZCwKdGhl IGRldmljZSBpcyBleGNsdWRlZCBmcm9tIHRoZSAoc3VwcG9ydGVkKSBkZXZpY2VzIGxpc3Qu IEN1cnJlbnRseSwgbm9uZSBvZgp0aG9zZSByZXF1aXJlbWVudHMgYXJlIG1hcmtlZCBhcyBz dXBwb3J0ZWQgZm9yIGFueSBvZiB0aGUgbm9uLWhvc3QgZGV2aWNlcy4KCmdjYy9jL0NoYW5n ZUxvZzoKCgkqIGMtcGFyc2VyLmNjIChjX3BhcnNlcl9vbXBfdGFyZ2V0X2RhdGEsIGNfcGFy c2VyX29tcF90YXJnZXRfdXBkYXRlLAoJY19wYXJzZXJfb21wX3RhcmdldF9lbnRlcl9kYXRh LCBjX3BhcnNlcl9vbXBfdGFyZ2V0X2V4aXRfZGF0YSk6IFNldAoJT01QX1JFUVVJUkVTX1RB UkdFVF9VU0VELgoJKGNfcGFyc2VyX29tcF9yZXF1aXJlcyk6IFJlbW92ZSBzb3JyeS4KCmdj Yy9DaGFuZ2VMb2c6CgoJKiBjb25maWcvZ2NuL21rb2ZmbG9hZC5jYyAocHJvY2Vzc19hc20p OiBXcml0ZSAnI2luY2x1ZGUgPHN0ZGludC5oPicuCgkocHJvY2Vzc19vYmopOiBQYXNzIG9t cF9yZXF1aXJlc19tYXNrIHRvIEdPTVBfb2ZmbG9hZF9yZWdpc3Rlcl92ZXIuCgkobWFpbik6 IEFzayBsdG8xIHRvIG9idGFpbiBvbXBfcmVxdWlyZXNfbWFzayBhbmQgcGFzcyBpdCBvbi4K CSogY29uZmlnL252cHR4L21rb2ZmbG9hZC5jYyAocHJvY2VzcywgbWFpbik6IExpa2V3aXNl LgoJKiBsdG8tY2dyYXBoLmNjIChvbXBfcmVxdWlyZXNfdG9fbmFtZSk6IE5ldy4KCShpbnB1 dF9vZmZsb2FkX3RhYmxlcyk6IFNhdmUgb21wX3JlcXVpcmVzX21hc2suCgkob3V0cHV0X29m ZmxvYWRfdGFibGVzKTogUmVhZCBpdCwgY2hlY2sgZm9yIGNvbnNpc3RlbmN5LAoJc2F2ZSB2 YWx1ZSBmb3IgbWtvZmZsb2FkLgoJKiBvbXAtbG93LmNjIChsb3dlcl9vbXBfdGFyZ2V0KTog Rm9yY2Ugb3V0cHV0X29mZmxvYWR0YWJsZXMKCWNhbGwgZm9yIE9NUF9SRVFVSVJFU19UQVJH RVRfVVNFRC4KCmdjYy9jcC9DaGFuZ2VMb2c6CgoJKiBwYXJzZXIuY2MgKGNwX3BhcnNlcl9v bXBfdGFyZ2V0X2RhdGEsCgljcF9wYXJzZXJfb21wX3RhcmdldF9lbnRlcl9kYXRhLCBjcF9w YXJzZXJfb21wX3RhcmdldF9leGl0X2RhdGEsCgljcF9wYXJzZXJfb21wX3RhcmdldF91cGRh dGUpOiBTZXQgT01QX1JFUVVJUkVTX1RBUkdFVF9VU0VELgoJKGNwX3BhcnNlcl9vbXBfcmVx dWlyZXMpOiBSZW1vdmUgc29ycnkuCgpnY2MvZm9ydHJhbi9DaGFuZ2VMb2c6CgoJKiBvcGVu bXAuY2MgKGdmY19tYXRjaF9vbXBfcmVxdWlyZXMpOiBSZW1vdmUgc29ycnkuCgkqIHBhcnNl LmNjIChkZWNvZGVfb21wX2RpcmVjdGl2ZSk6IERvbid0IHJlZ2FyZCAnZGVjbGFyZSB0YXJn ZXQnCglhcyB0YXJnZXQgdXNhZ2UgZm9yICdvbXAgcmVxdWlyZXMnOyBhZGQgbW9yZSBmbGFn cyB0bwoJb21wX3JlcXVpcmVzX21hc2suCgppbmNsdWRlL0NoYW5nZUxvZzoKCgkqIGdvbXAt Y29uc3RhbnRzLmggKEdPTVBfVkVSU0lPTik6IEJ1bXAgdG8gMi4KCShHT01QX1JFUVVJUkVT X1VOSUZJRURfQUREUkVTUywgR09NUF9SRVFVSVJFU19VTklGSUVEX1NIQVJFRF9NRU1PUlks CglHT01QX1JFUVVJUkVTX1JFVkVSU0VfT0ZGTE9BRCk6IE5ldyBkZWZpbmVzLgoKbGliZ29t cC9DaGFuZ2VMb2c6CgoJKiBsaWJnb21wLXBsdWdpbi5oIChHT01QX09GRkxPQURfZ2V0X251 bV9kZXZpY2VzKTogQWRkCglvbXBfcmVxdWlyZXNfbWFzayBhcmcuCgkqIHBsdWdpbi9wbHVn aW4tZ2NuLmMgKEdPTVBfT0ZGTE9BRF9nZXRfbnVtX2RldmljZXMpOiBMaWtld2lzZTsKCXJl dHVybiAtMSB3aGVuIGRldmljZSBhdmFpbGFibGUgYnV0IG9tcF9yZXF1aXJlc19tYXNrICE9 IDAuCgkqIHBsdWdpbi9wbHVnaW4tbnZwdHguYyAoR09NUF9PRkZMT0FEX2dldF9udW1fZGV2 aWNlcyk6IExpa2V3aXNlLgoJKiBvYWNjLWhvc3QuYyAoaG9zdF9nZXRfbnVtX2RldmljZXMs IGhvc3Rfb3BlbmFjY19nZXRfcHJvcGVydHkpOgoJVXBkYXRlIGNhbGwuCgkqIG9hY2MtaW5p dC5jIChyZXNvbHZlX2RldmljZSwgYWNjX2luaXRfMSwgYWNjX3NodXRkb3duXzEsCglnb2Fj Y19hdHRhY2hfaG9zdF90aHJlYWRfdG9fZGV2aWNlLCBhY2NfZ2V0X251bV9kZXZpY2VzLAoJ YWNjX3NldF9kZXZpY2VfbnVtLCBnZXRfcHJvcGVydHlfYW55KTogTGlrZXdpc2UuCgkqIHRh cmdldC5jIChvbXBfcmVxdWlyZXNfbWFzayk6IE5ldyBnbG9iYWwgdmFyLgoJKGdvbXBfcmVx dWlyZXNfdG9fbmFtZSk6IE5ldy4KCShHT01QX29mZmxvYWRfcmVnaXN0ZXJfdmVyKTogSGFu ZGxlIHBhc3NlZCBvbXBfcmVxdWlyZXNfbWFzay4KCShnb21wX3RhcmdldF9pbml0KTogSGFu ZGxlIG9tcF9yZXF1aXJlc19tYXNrLgoJKiBsaWJnb21wLnRleGkgKE9wZW5NUCA1LjApOiBV cGRhdGUgcmVxdWlyZXMgaW1wbC4gc3RhdHVzLgoJKE9wZW5NUCA1LjEpOiBBZGQgYSBtaXNz ZWQgaXRlbS4KCShPcGVuTVAgNS4yKTogTWFyayBsaW5lYXItY2xhdXNlIGNoYW5nZSBhcyBz dXBwb3J0ZWQgaW4gQy9DKysuCgkqIHRlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9y ZXF1aXJlcy0xLWF1eC5jOiBOZXcgdGVzdC4KCSogdGVzdHN1aXRlL2xpYmdvbXAuYy1jKyst Y29tbW9uL3JlcXVpcmVzLTEuYzogTmV3IHRlc3QuCgkqIHRlc3RzdWl0ZS9saWJnb21wLmMt YysrLWNvbW1vbi9yZXF1aXJlcy0yLWF1eC5jOiBOZXcgdGVzdC4KCSogdGVzdHN1aXRlL2xp YmdvbXAuYy1jKystY29tbW9uL3JlcXVpcmVzLTIuYzogTmV3IHRlc3QuCgkqIHRlc3RzdWl0 ZS9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy0zLWF1eC5jOiBOZXcgdGVzdC4KCSog dGVzdHN1aXRlL2xpYmdvbXAuYy1jKystY29tbW9uL3JlcXVpcmVzLTMuYzogTmV3IHRlc3Qu CgkqIHRlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy00LWF1eC5jOiBO ZXcgdGVzdC4KCSogdGVzdHN1aXRlL2xpYmdvbXAuYy1jKystY29tbW9uL3JlcXVpcmVzLTQu YzogTmV3IHRlc3QuCgkqIHRlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJl cy01LWF1eC5jOiBOZXcgdGVzdC4KCSogdGVzdHN1aXRlL2xpYmdvbXAuYy1jKystY29tbW9u L3JlcXVpcmVzLTUuYzogTmV3IHRlc3QuCgkqIHRlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNv bW1vbi9yZXF1aXJlcy02LmM6IE5ldyB0ZXN0LgoJKiB0ZXN0c3VpdGUvbGliZ29tcC5jLWMr Ky1jb21tb24vcmVxdWlyZXMtNy1hdXguYzogTmV3IHRlc3QuCgkqIHRlc3RzdWl0ZS9saWJn b21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy03LmM6IE5ldyB0ZXN0LgoJKiB0ZXN0c3VpdGUv bGliZ29tcC5mb3J0cmFuL3JlcXVpcmVzLTEtYXV4LmY5MDogTmV3IHRlc3QuCgkqIHRlc3Rz dWl0ZS9saWJnb21wLmZvcnRyYW4vcmVxdWlyZXMtMS5mOTA6IE5ldyB0ZXN0LgoKbGlib2Zm bG9hZG1pYy9DaGFuZ2VMb2c6CgoJKiBwbHVnaW4vbGliZ29tcC1wbHVnaW4taW50ZWxtaWMu Y3BwIChHT01QX09GRkxPQURfZ2V0X251bV9kZXZpY2VzKToKCVJldHVybiAtMSB3aGVuIGRl dmljZSBhdmFpbGFibGUgYnV0IG9tcF9yZXF1aXJlc19tYXNrICE9IDAuCgpnY2MvdGVzdHN1 aXRlL0NoYW5nZUxvZzoKCgkqIGMtYysrLWNvbW1vbi9nb21wL3JlcXVpcmVzLTQuYzogVXBk YXRlIGRnLSouCgkqIGMtYysrLWNvbW1vbi9nb21wL3JldmVyc2Utb2ZmbG9hZC0xLmM6IExp a2V3aXNlLgoJKiBjLWMrKy1jb21tb24vZ29tcC90YXJnZXQtZGV2aWNlLWFuY2VzdG9yLTIu YzogTGlrZXdpc2UuCgkqIGMtYysrLWNvbW1vbi9nb21wL3RhcmdldC1kZXZpY2UtYW5jZXN0 b3ItMy5jOiBMaWtld2lzZS4KCSogYy1jKystY29tbW9uL2dvbXAvdGFyZ2V0LWRldmljZS1h bmNlc3Rvci00LmM6IExpa2V3aXNlLgoJKiBjLWMrKy1jb21tb24vZ29tcC90YXJnZXQtZGV2 aWNlLWFuY2VzdG9yLTUuYzogTGlrZXdpc2UuCgkqIGdmb3J0cmFuLmRnL2dvbXAvdGFyZ2V0 LWRldmljZS1hbmNlc3Rvci0zLmY5MDogTGlrZXdpc2UuCgkqIGdmb3J0cmFuLmRnL2dvbXAv dGFyZ2V0LWRldmljZS1hbmNlc3Rvci00LmY5MDogTGlrZXdpc2UuCgkqIGdmb3J0cmFuLmRn L2dvbXAvdGFyZ2V0LWRldmljZS1hbmNlc3Rvci01LmY5MDogTGlrZXdpc2UuCiAgICAgICAg KiBnZm9ydHJhbi5kZy9nb21wL3RhcmdldC1kZXZpY2UtYW5jZXN0b3ItMi5mOTA6IExpa2V3 aXNlLiBNb3ZlCglwb3N0LUZFIGNoZWNrcyB0byAuLi4KICAgICAgICAqIGdmb3J0cmFuLmRn L2dvbXAvdGFyZ2V0LWRldmljZS1hbmNlc3Rvci0yYS5mOTA6IC4uLiB0aGlzIG5ldyBmaWxl LgoJKiBnZm9ydHJhbi5kZy9nb21wL3JlcXVpcmVzLTguZjkwOiBVcGRhdGUgYXMgd2UgZG9u J3QgcmVnYXJkCgknZGVjbGFyZSB0YXJnZXQnIGZvciB0aGUgJ3JlcXVpcmVzJyB1c2FnZSBy ZXF1aXJlbWVudC4KCkNvLWF1dGhvcmVkLWJ5OiBDaHVuZy1MaW4gVGFuZyA8Y2x0YW5nQGNv ZGVzb3VyY2VyeS5jb20+CkNvLWF1dGhvcmVkLWJ5OiBUaG9tYXMgU2Nod2luZ2UgPHRob21h c0Bjb2Rlc291cmNlcnkuY29tPgogZ2NjL2MvYy1wYXJzZXIuY2MgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAxOSArKysrLQogZ2NjL2NvbmZpZy9nY24vbWtvZmZsb2Fk LmNjICAgICAgICAgICAgICAgICAgICAgICAgfCAyNyArKysrKy0KIGdjYy9jb25maWcvbnZw dHgvbWtvZmZsb2FkLmNjICAgICAgICAgICAgICAgICAgICAgIHwgMjkgKysrKysrLQogZ2Nj L2NwL3BhcnNlci5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxOSAr KysrLQogZ2NjL2ZvcnRyYW4vb3Blbm1wLmNjICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgNCAtCiBnY2MvZm9ydHJhbi9wYXJzZS5jYyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDIyICsrKystCiBnY2MvbHRvLWNncmFwaC5jYyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IDk5ICsrKysrKysrKysrKysrKysrKysrKy0KIGdjYy9vbXAt bG93LmNjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDUgKysKIGdj Yy90ZXN0c3VpdGUvYy1jKystY29tbW9uL2dvbXAvcmVxdWlyZXMtNC5jICAgICAgIHwgIDIg LQogLi4uL2MtYysrLWNvbW1vbi9nb21wL3JldmVyc2Utb2ZmbG9hZC0xLmMgICAgICAgICAg fCAgMiArLQogLi4uL2MtYysrLWNvbW1vbi9nb21wL3RhcmdldC1kZXZpY2UtYW5jZXN0b3It Mi5jICAgfCAxMCArLS0KIC4uLi9jLWMrKy1jb21tb24vZ29tcC90YXJnZXQtZGV2aWNlLWFu Y2VzdG9yLTMuYyAgIHwgIDIgKy0KIC4uLi9jLWMrKy1jb21tb24vZ29tcC90YXJnZXQtZGV2 aWNlLWFuY2VzdG9yLTQuYyAgIHwgIDQgKy0KIC4uLi9jLWMrKy1jb21tb24vZ29tcC90YXJn ZXQtZGV2aWNlLWFuY2VzdG9yLTUuYyAgIHwgIDIgKy0KIGdjYy90ZXN0c3VpdGUvZ2ZvcnRy YW4uZGcvZ29tcC9yZXF1aXJlcy04LmY5MCAgICAgIHwgMTQgKystCiAuLi4vZ2ZvcnRyYW4u ZGcvZ29tcC90YXJnZXQtZGV2aWNlLWFuY2VzdG9yLTIuZjkwICB8IDcwICsrLS0tLS0tLS0t LS0tLQogLi4uL2dmb3J0cmFuLmRnL2dvbXAvdGFyZ2V0LWRldmljZS1hbmNlc3Rvci0yYS5m OTAgfCA4MCArKysrKysrKysrKysrKysrKwogLi4uL2dmb3J0cmFuLmRnL2dvbXAvdGFyZ2V0 LWRldmljZS1hbmNlc3Rvci0zLmY5MCAgfCAgNiArLQogLi4uL2dmb3J0cmFuLmRnL2dvbXAv dGFyZ2V0LWRldmljZS1hbmNlc3Rvci00LmY5MCAgfCAgNiArLQogLi4uL2dmb3J0cmFuLmRn L2dvbXAvdGFyZ2V0LWRldmljZS1hbmNlc3Rvci01LmY5MCAgfCAgOCArLQogaW5jbHVkZS9n b21wLWNvbnN0YW50cy5oICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgOCArLQogbGli Z29tcC9saWJnb21wLXBsdWdpbi5oICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiAr LQogbGliZ29tcC9saWJnb21wLnRleGkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgOCArLQogbGliZ29tcC9vYWNjLWhvc3QuYyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgNCArLQogbGliZ29tcC9vYWNjLWluaXQuYyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAxNiArKy0tCiBsaWJnb21wL3BsdWdpbi9wbHVnaW4tZ2NuLmMgICAg ICAgICAgICAgICAgICAgICAgICB8ICA2ICstCiBsaWJnb21wL3BsdWdpbi9wbHVnaW4tbnZw dHguYyAgICAgICAgICAgICAgICAgICAgICB8ICA5ICstCiBsaWJnb21wL3RhcmdldC5jICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDY0ICsrKysrKysrKysrKystCiAu Li4vbGliZ29tcC5jLWMrKy1jb21tb24vcmVxdWlyZXMtMS1hdXguYyAgICAgICAgICB8IDEx ICsrKwogLi4uL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy0xLmMg ICAgfCAyNCArKysrKysKIC4uLi9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy0yLWF1 eC5jICAgICAgICAgIHwgIDkgKysKIC4uLi90ZXN0c3VpdGUvbGliZ29tcC5jLWMrKy1jb21t b24vcmVxdWlyZXMtMi5jICAgIHwgMjUgKysrKysrCiAuLi4vbGliZ29tcC5jLWMrKy1jb21t b24vcmVxdWlyZXMtMy1hdXguYyAgICAgICAgICB8IDExICsrKwogLi4uL3Rlc3RzdWl0ZS9s aWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy0zLmMgICAgfCAyNCArKysrKysKIC4uLi9s aWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy00LWF1eC5jICAgICAgICAgIHwgMTMgKysr CiAuLi4vdGVzdHN1aXRlL2xpYmdvbXAuYy1jKystY29tbW9uL3JlcXVpcmVzLTQuYyAgICB8 IDIzICsrKysrCiAuLi4vbGliZ29tcC5jLWMrKy1jb21tb24vcmVxdWlyZXMtNS1hdXguYyAg ICAgICAgICB8IDExICsrKwogLi4uL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9y ZXF1aXJlcy01LmMgICAgfCAyMCArKysrKwogLi4uL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysr LWNvbW1vbi9yZXF1aXJlcy02LmMgICAgfCAxNyArKysrCiAuLi4vbGliZ29tcC5jLWMrKy1j b21tb24vcmVxdWlyZXMtNy1hdXguYyAgICAgICAgICB8IDExICsrKwogLi4uL3Rlc3RzdWl0 ZS9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy03LmMgICAgfCAyNCArKysrKysKIC4u Li90ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL3JlcXVpcmVzLTEtYXV4LmY5MCAgIHwgMTQg KysrCiBsaWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vcmVxdWlyZXMtMS5mOTAg ICB8IDI2ICsrKysrKwogbGlib2ZmbG9hZG1pYy9wbHVnaW4vbGliZ29tcC1wbHVnaW4taW50 ZWxtaWMuY3BwICAgfCAgNiArLQogNDQgZmlsZXMgY2hhbmdlZCwgNjg0IGluc2VydGlvbnMo KyksIDEzMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9nY2MvYy9jLXBhcnNlci5jYyBi L2djYy9jL2MtcGFyc2VyLmNjCmluZGV4IDE3MDRhNTJiZTEyLi45ODk0YjAxMDQ0NiAxMDA2 NDQKLS0tIGEvZ2NjL2MvYy1wYXJzZXIuY2MKKysrIGIvZ2NjL2MvYy1wYXJzZXIuY2MKQEAg LTIwOTE1LDYgKzIwOTE1LDEwIEBAIGNfcGFyc2VyX29tcF90ZWFtcyAobG9jYXRpb25fdCBs b2MsIGNfcGFyc2VyICpwYXJzZXIsCiBzdGF0aWMgdHJlZQogY19wYXJzZXJfb21wX3Rhcmdl dF9kYXRhIChsb2NhdGlvbl90IGxvYywgY19wYXJzZXIgKnBhcnNlciwgYm9vbCAqaWZfcCkK IHsKKyAgaWYgKGZsYWdfb3Blbm1wKQorICAgIG9tcF9yZXF1aXJlc19tYXNrCisgICAgICA9 IChlbnVtIG9tcF9yZXF1aXJlcykgKG9tcF9yZXF1aXJlc19tYXNrIHwgT01QX1JFUVVJUkVT X1RBUkdFVF9VU0VEKTsKKwogICB0cmVlIGNsYXVzZXMKICAgICA9IGNfcGFyc2VyX29tcF9h bGxfY2xhdXNlcyAocGFyc2VyLCBPTVBfVEFSR0VUX0RBVEFfQ0xBVVNFX01BU0ssCiAJCQkJ IiNwcmFnbWEgb21wIHRhcmdldCBkYXRhIik7CkBAIC0yMTAxMCw2ICsyMTAxNCwxMCBAQCBj X3BhcnNlcl9vbXBfdGFyZ2V0X3VwZGF0ZSAobG9jYXRpb25fdCBsb2MsIGNfcGFyc2VyICpw YXJzZXIsCiAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCisgIGlmIChmbGFnX29wZW5t cCkKKyAgICBvbXBfcmVxdWlyZXNfbWFzaworICAgICAgPSAoZW51bSBvbXBfcmVxdWlyZXMp IChvbXBfcmVxdWlyZXNfbWFzayB8IE9NUF9SRVFVSVJFU19UQVJHRVRfVVNFRCk7CisKICAg dHJlZSBzdG10ID0gbWFrZV9ub2RlIChPTVBfVEFSR0VUX1VQREFURSk7CiAgIFRSRUVfVFlQ RSAoc3RtdCkgPSB2b2lkX3R5cGVfbm9kZTsKICAgT01QX1RBUkdFVF9VUERBVEVfQ0xBVVNF UyAoc3RtdCkgPSBjbGF1c2VzOwpAQCAtMjEwNTcsNiArMjEwNjUsMTAgQEAgY19wYXJzZXJf b21wX3RhcmdldF9lbnRlcl9kYXRhIChsb2NhdGlvbl90IGxvYywgY19wYXJzZXIgKnBhcnNl ciwKICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICBpZiAoZmxhZ19vcGVubXApCisg ICAgb21wX3JlcXVpcmVzX21hc2sKKyAgICAgID0gKGVudW0gb21wX3JlcXVpcmVzKSAob21w X3JlcXVpcmVzX21hc2sgfCBPTVBfUkVRVUlSRVNfVEFSR0VUX1VTRUQpOworCiAgIHRyZWUg Y2xhdXNlcwogICAgID0gY19wYXJzZXJfb21wX2FsbF9jbGF1c2VzIChwYXJzZXIsIE9NUF9U QVJHRVRfRU5URVJfREFUQV9DTEFVU0VfTUFTSywKIAkJCQkiI3ByYWdtYSBvbXAgdGFyZ2V0 IGVudGVyIGRhdGEiKTsKQEAgLTIxMTQzLDYgKzIxMTU1LDEwIEBAIGNfcGFyc2VyX29tcF90 YXJnZXRfZXhpdF9kYXRhIChsb2NhdGlvbl90IGxvYywgY19wYXJzZXIgKnBhcnNlciwKICAg ICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICBpZiAoZmxhZ19vcGVubXApCisgICAgb21w X3JlcXVpcmVzX21hc2sKKyAgICAgID0gKGVudW0gb21wX3JlcXVpcmVzKSAob21wX3JlcXVp cmVzX21hc2sgfCBPTVBfUkVRVUlSRVNfVEFSR0VUX1VTRUQpOworCiAgIHRyZWUgY2xhdXNl cwogICAgID0gY19wYXJzZXJfb21wX2FsbF9jbGF1c2VzIChwYXJzZXIsIE9NUF9UQVJHRVRf RVhJVF9EQVRBX0NMQVVTRV9NQVNLLAogCQkJCSIjcHJhZ21hIG9tcCB0YXJnZXQgZXhpdCBk YXRhIik7CkBAIC0yMjc2Myw5ICsyMjc3OSw2IEBAIGNfcGFyc2VyX29tcF9yZXF1aXJlcyAo Y19wYXJzZXIgKnBhcnNlcikKIAkgICAgICBjX3BhcnNlcl9za2lwX3RvX3ByYWdtYV9lb2wg KHBhcnNlciwgZmFsc2UpOwogCSAgICAgIHJldHVybjsKIAkgICAgfQotCSAgaWYgKHAgJiYg dGhpc19yZXEgIT0gT01QX1JFUVVJUkVTX0RZTkFNSUNfQUxMT0NBVE9SUykKLQkgICAgc29y cnlfYXQgKGNsb2MsICIlcXMgY2xhdXNlIG9uICU8cmVxdWlyZXMlPiBkaXJlY3RpdmUgbm90 ICIKLQkJCSAgICAic3VwcG9ydGVkIHlldCIsIHApOwogCSAgaWYgKHApCiAJICAgIGNfcGFy c2VyX2NvbnN1bWVfdG9rZW4gKHBhcnNlcik7CiAJICBpZiAodGhpc19yZXEpCmRpZmYgLS1n aXQgYS9nY2MvY29uZmlnL2djbi9ta29mZmxvYWQuY2MgYi9nY2MvY29uZmlnL2djbi9ta29m ZmxvYWQuY2MKaW5kZXggZWQ5M2FlODQ0ZTQuLmI4YjNmZWNmY2I0IDEwMDY0NAotLS0gYS9n Y2MvY29uZmlnL2djbi9ta29mZmxvYWQuY2MKKysrIGIvZ2NjL2NvbmZpZy9nY24vbWtvZmZs b2FkLmNjCkBAIC02MTEsNiArNjExLDcgQEAgcHJvY2Vzc19hc20gKEZJTEUgKmluLCBGSUxF ICpvdXQsIEZJTEUgKmNmaWxlKQogICBzdHJ1Y3QgcmVnY291bnQgKnJlZ2NvdW50cyA9IFhP QkZJTklTSCAoJnJlZ2NvdW50c19vcywgc3RydWN0IHJlZ2NvdW50ICopOwogCiAgIGZwcmlu dGYgKGNmaWxlLCAiI2luY2x1ZGUgPHN0ZGxpYi5oPlxuIik7CisgIGZwcmludGYgKGNmaWxl LCAiI2luY2x1ZGUgPHN0ZGludC5oPlxuIik7CiAgIGZwcmludGYgKGNmaWxlLCAiI2luY2x1 ZGUgPHN0ZGJvb2wuaD5cblxuIik7CiAKICAgZnByaW50ZiAoY2ZpbGUsICJzdGF0aWMgY29u c3QgaW50IGdjbl9udW1fdmFycyA9ICVkO1xuXG4iLCB2YXJfY291bnQpOwpAQCAtNjY0LDcg KzY2NSw3IEBAIHByb2Nlc3NfYXNtIChGSUxFICppbiwgRklMRSAqb3V0LCBGSUxFICpjZmls ZSkKIC8qIEVtYmVkIGFuIG9iamVjdCBmaWxlIGludG8gYSBDIHNvdXJjZSBmaWxlLiAgKi8K IAogc3RhdGljIHZvaWQKLXByb2Nlc3Nfb2JqIChGSUxFICppbiwgRklMRSAqY2ZpbGUpCitw cm9jZXNzX29iaiAoRklMRSAqaW4sIEZJTEUgKmNmaWxlLCB1aW50MzJfdCBvbXBfcmVxdWly ZXMpCiB7CiAgIHNpemVfdCBsZW4gPSAwOwogICBjb25zdCBjaGFyICppbnB1dCA9IHJlYWRf ZmlsZSAoaW4sICZsZW4pOwpAQCAtNjkyLDE2ICs2OTMsMTggQEAgcHJvY2Vzc19vYmogKEZJ TEUgKmluLCBGSUxFICpjZmlsZSkKIAogICBmcHJpbnRmIChjZmlsZSwKIAkgICAic3RhdGlj IGNvbnN0IHN0cnVjdCBnY25faW1hZ2VfZGVzYyB7XG4iCisJICAgIiAgdWludHB0cl90IG9t cF9yZXF1aXJlc19tYXNrO1xuIgogCSAgICIgIGNvbnN0IHN0cnVjdCBnY25faW1hZ2UgKmdj bl9pbWFnZTtcbiIKIAkgICAiICB1bnNpZ25lZCBrZXJuZWxfY291bnQ7XG4iCiAJICAgIiAg Y29uc3Qgc3RydWN0IGhzYV9rZXJuZWxfZGVzY3JpcHRpb24gKmtlcm5lbF9pbmZvcztcbiIK IAkgICAiICB1bnNpZ25lZCBnbG9iYWxfdmFyaWFibGVfY291bnQ7XG4iCiAJICAgIn0gdGFy Z2V0X2RhdGEgPSB7XG4iCisJICAgIiAgJWQsXG4iCiAJICAgIiAgJmdjbl9pbWFnZSxcbiIK IAkgICAiICBzaXplb2YgKGdjbl9rZXJuZWxzKSAvIHNpemVvZiAoZ2NuX2tlcm5lbHNbMF0p LFxuIgogCSAgICIgIGdjbl9rZXJuZWxzLFxuIgogCSAgICIgIGdjbl9udW1fdmFyc1xuIgot CSAgICJ9O1xuXG4iKTsKKwkgICAifTtcblxuIiwgb21wX3JlcXVpcmVzKTsKIAogICBmcHJp bnRmIChjZmlsZSwKIAkgICAiI2lmZGVmIF9fY3BsdXNwbHVzXG4iCkBAIC0xMDc3LDkgKzEw ODAsMjcgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgICAgdW5zZXRlbnYg KCJDT01QSUxFUl9QQVRIIik7CiAgICAgICB1bnNldGVudiAoIkxJQlJBUllfUEFUSCIpOwog CisgICAgICBjaGFyICpvbXBfcmVxdWlyZXNfZmlsZTsKKyAgICAgIGlmIChzYXZlX3RlbXBz KQorCW9tcF9yZXF1aXJlc19maWxlID0gY29uY2F0IChkdW1wcGZ4LCAiLm1rb2ZmbG9hZC5v bXBfcmVxdWlyZXMiLCBOVUxMKTsKKyAgICAgIGVsc2UKKwlvbXBfcmVxdWlyZXNfZmlsZSA9 IG1ha2VfdGVtcF9maWxlICgiLm1rb2ZmbG9hZC5vbXBfcmVxdWlyZXMiKTsKKwogICAgICAg LyogUnVuIHRoZSBjb21waWxlciBwYXNzLiAgKi8KKyAgICAgIHhwdXRlbnYgKGNvbmNhdCAo IkdDQ19PRkZMT0FEX09NUF9SRVFVSVJFU19GSUxFPSIsIG9tcF9yZXF1aXJlc19maWxlLCBO VUxMKSk7CiAgICAgICBmb3JrX2V4ZWN1dGUgKGNjX2FyZ3ZbMF0sIENPTlNUX0NBU1QgKGNo YXIgKiosIGNjX2FyZ3YpLCB0cnVlLCAiLmdjY19hcmdzIik7CiAgICAgICBvYnN0YWNrX2Zy ZWUgKCZjY19hcmd2X29ic3RhY2ssIE5VTEwpOworICAgICAgdW5zZXRlbnYoIkdDQ19PRkZM T0FEX09NUF9SRVFVSVJFU19GSUxFIik7CisKKyAgICAgIGluID0gZm9wZW4gKG9tcF9yZXF1 aXJlc19maWxlLCAicmIiKTsKKyAgICAgIGlmICghaW4pCisJZmF0YWxfZXJyb3IgKGlucHV0 X2xvY2F0aW9uLCAiY2Fubm90IG9wZW4gb21wX3JlcXVpcmVzIGZpbGUgJXFzIiwKKwkJICAg ICBvbXBfcmVxdWlyZXNfZmlsZSk7CisgICAgICB1aW50MzJfdCBvbXBfcmVxdWlyZXM7Cisg ICAgICBpZiAoZnJlYWQgKCZvbXBfcmVxdWlyZXMsIHNpemVvZiAob21wX3JlcXVpcmVzKSwg MSwgaW4pICE9IDEpCisJZmF0YWxfZXJyb3IgKGlucHV0X2xvY2F0aW9uLCAiY2Fubm90IHJl YWQgb21wX3JlcXVpcmVzIGZpbGUgJXFzIiwKKwkJICAgICBvbXBfcmVxdWlyZXNfZmlsZSk7 CisgICAgICBmY2xvc2UgKGluKTsKIAogICAgICAgaW4gPSBmb3BlbiAoZ2NuX3MxX25hbWUs ICJyIik7CiAgICAgICBpZiAoIWluKQpAQCAtMTEwMiw3ICsxMTIzLDcgQEAgbWFpbiAoaW50 IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgICAgaWYgKCFpbikKIAlmYXRhbF9lcnJvciAoaW5w dXRfbG9jYXRpb24sICJjYW5ub3Qgb3BlbiBpbnRlcm1lZGlhdGUgZ2NuIG9iaiBmaWxlIik7 CiAKLSAgICAgIHByb2Nlc3Nfb2JqIChpbiwgY2ZpbGUpOworICAgICAgcHJvY2Vzc19vYmog KGluLCBjZmlsZSwgb21wX3JlcXVpcmVzKTsKIAogICAgICAgZmNsb3NlIChpbik7CiAKZGlm ZiAtLWdpdCBhL2djYy9jb25maWcvbnZwdHgvbWtvZmZsb2FkLmNjIGIvZ2NjL2NvbmZpZy9u dnB0eC9ta29mZmxvYWQuY2MKaW5kZXggYjI4YzFhMzIyOTIuLmQ4YzgxZWIwNTQ3IDEwMDY0 NAotLS0gYS9nY2MvY29uZmlnL252cHR4L21rb2ZmbG9hZC5jYworKysgYi9nY2MvY29uZmln L252cHR4L21rb2ZmbG9hZC5jYwpAQCAtMjMxLDcgKzIzMSw3IEBAIGFjY2Vzc19jaGVjayAo Y29uc3QgY2hhciAqbmFtZSwgaW50IG1vZGUpCiB9CiAKIHN0YXRpYyB2b2lkCi1wcm9jZXNz IChGSUxFICppbiwgRklMRSAqb3V0KQorcHJvY2VzcyAoRklMRSAqaW4sIEZJTEUgKm91dCwg dWludDMyX3Qgb21wX3JlcXVpcmVzKQogewogICBzaXplX3QgbGVuID0gMDsKICAgY29uc3Qg Y2hhciAqaW5wdXQgPSByZWFkX2ZpbGUgKGluLCAmbGVuKTsKQEAgLTI0MCw2ICsyNDAsOCBA QCBwcm9jZXNzIChGSUxFICppbiwgRklMRSAqb3V0KQogICB1bnNpZ25lZCBvYmpfY291bnQg PSAwOwogICB1bnNpZ25lZCBpeDsKIAorICBmcHJpbnRmIChvdXQsICIjaW5jbHVkZSA8c3Rk aW50Lmg+XG5cbiIpOworCiAgIC8qIER1bXAgb3V0IGNoYXIgYXJyYXlzIGZvciBlYWNoIFBU WCBvYmplY3QgZmlsZS4gIFRoZXNlIGFyZQogICAgICB0ZXJtaW5hdGVkIGJ5IGEgTlVMLiAg Ki8KICAgZm9yIChzaXplX3QgaSA9IDA7IGkgIT0gbGVuOykKQEAgLTMwOSw2ICszMTEsNyBA QCBwcm9jZXNzIChGSUxFICppbiwgRklMRSAqb3V0KQogCiAgIGZwcmludGYgKG91dCwKIAkg ICAic3RhdGljIGNvbnN0IHN0cnVjdCBudnB0eF90ZGF0YSB7XG4iCisJICAgIiAgdWludHB0 cl90IG9tcF9yZXF1aXJlc19tYXNrO1xuIgogCSAgICIgIGNvbnN0IHN0cnVjdCBwdHhfb2Jq ICpwdHhfb2JqcztcbiIKIAkgICAiICB1bnNpZ25lZCBwdHhfbnVtO1xuIgogCSAgICIgIGNv bnN0IGNoYXIgKmNvbnN0ICp2YXJfbmFtZXM7XG4iCkBAIC0zMTYsMTIgKzMxOSwxMiBAQCBw cm9jZXNzIChGSUxFICppbiwgRklMRSAqb3V0KQogCSAgICIgIGNvbnN0IHN0cnVjdCBudnB0 eF9mbiAqZm5fbmFtZXM7XG4iCiAJICAgIiAgdW5zaWduZWQgZm5fbnVtO1xuIgogCSAgICJ9 IHRhcmdldF9kYXRhID0ge1xuIgotCSAgICIgIHB0eF9vYmpzLCBzaXplb2YgKHB0eF9vYmpz KSAvIHNpemVvZiAocHR4X29ianNbMF0pLFxuIgorCSAgICIgICVkLCBwdHhfb2Jqcywgc2l6 ZW9mIChwdHhfb2JqcykgLyBzaXplb2YgKHB0eF9vYmpzWzBdKSxcbiIKIAkgICAiICB2YXJf bWFwcGluZ3MsIgogCSAgICIgIHNpemVvZiAodmFyX21hcHBpbmdzKSAvIHNpemVvZiAodmFy X21hcHBpbmdzWzBdKSxcbiIKIAkgICAiICBmdW5jX21hcHBpbmdzLCIKIAkgICAiICBzaXpl b2YgKGZ1bmNfbWFwcGluZ3MpIC8gc2l6ZW9mIChmdW5jX21hcHBpbmdzWzBdKVxuIgotCSAg ICJ9O1xuXG4iKTsKKwkgICAifTtcblxuIiwgb21wX3JlcXVpcmVzKTsKIAogICBmcHJpbnRm IChvdXQsICIjaWZkZWYgX19jcGx1c3BsdXNcbiIKIAkgICAiZXh0ZXJuIFwiQ1wiIHtcbiIK QEAgLTU4MywxOSArNTg2LDM3IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKICAg ICAgIHVuc2V0ZW52ICgiQ09NUElMRVJfUEFUSCIpOwogICAgICAgdW5zZXRlbnYgKCJMSUJS QVJZX1BBVEgiKTsKIAorICAgICAgY2hhciAqb21wX3JlcXVpcmVzX2ZpbGU7CisgICAgICBp ZiAoc2F2ZV90ZW1wcykKKwlvbXBfcmVxdWlyZXNfZmlsZSA9IGNvbmNhdCAoZHVtcHBmeCwg Ii5ta29mZmxvYWQub21wX3JlcXVpcmVzIiwgTlVMTCk7CisgICAgICBlbHNlCisJb21wX3Jl cXVpcmVzX2ZpbGUgPSBtYWtlX3RlbXBfZmlsZSAoIi5ta29mZmxvYWQub21wX3JlcXVpcmVz Iik7CisKKyAgICAgIHhwdXRlbnYgKGNvbmNhdCAoIkdDQ19PRkZMT0FEX09NUF9SRVFVSVJF U19GSUxFPSIsIG9tcF9yZXF1aXJlc19maWxlLCBOVUxMKSk7CiAgICAgICBmb3JrX2V4ZWN1 dGUgKG5ld19hcmd2WzBdLCBDT05TVF9DQVNUIChjaGFyICoqLCBuZXdfYXJndiksIHRydWUs CiAJCSAgICAiLmdjY19hcmdzIik7CiAgICAgICBvYnN0YWNrX2ZyZWUgKCZhcmd2X29ic3Rh Y2ssIE5VTEwpOworICAgICAgdW5zZXRlbnYoIkdDQ19PRkZMT0FEX09NUF9SRVFVSVJFU19G SUxFIik7CiAKICAgICAgIHhwdXRlbnYgKGNvbmNhdCAoIkdDQ19FWEVDX1BSRUZJWD0iLCBl eGVjcGF0aCwgTlVMTCkpOwogICAgICAgeHB1dGVudiAoY29uY2F0ICgiQ09NUElMRVJfUEFU SD0iLCBjcGF0aCwgTlVMTCkpOwogICAgICAgeHB1dGVudiAoY29uY2F0ICgiTElCUkFSWV9Q QVRIPSIsIGxwYXRoLCBOVUxMKSk7CiAKKyAgICAgIGluID0gZm9wZW4gKG9tcF9yZXF1aXJl c19maWxlLCAicmIiKTsKKyAgICAgIGlmICghaW4pCisJZmF0YWxfZXJyb3IgKGlucHV0X2xv Y2F0aW9uLCAiY2Fubm90IG9wZW4gb21wX3JlcXVpcmVzIGZpbGUgJXFzIiwKKwkJICAgICBv bXBfcmVxdWlyZXNfZmlsZSk7CisgICAgICB1aW50MzJfdCBvbXBfcmVxdWlyZXM7CisgICAg ICBpZiAoZnJlYWQgKCZvbXBfcmVxdWlyZXMsIHNpemVvZiAob21wX3JlcXVpcmVzKSwgMSwg aW4pICE9IDEpCisJZmF0YWxfZXJyb3IgKGlucHV0X2xvY2F0aW9uLCAiY2Fubm90IHJlYWQg b21wX3JlcXVpcmVzIGZpbGUgJXFzIiwKKwkJICAgICBvbXBfcmVxdWlyZXNfZmlsZSk7Cisg ICAgICBmY2xvc2UgKGluKTsKKwogICAgICAgaW4gPSBmb3BlbiAocHR4X25hbWUsICJyIik7 CiAgICAgICBpZiAoIWluKQogCWZhdGFsX2Vycm9yIChpbnB1dF9sb2NhdGlvbiwgImNhbm5v dCBvcGVuIGludGVybWVkaWF0ZSBwdHggZmlsZSIpOwogCi0gICAgICBwcm9jZXNzIChpbiwg b3V0KTsKKyAgICAgIHByb2Nlc3MgKGluLCBvdXQsIG9tcF9yZXF1aXJlcyk7CiAgICAgICBm Y2xvc2UgKGluKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL2djYy9jcC9wYXJzZXIuY2MgYi9n Y2MvY3AvcGFyc2VyLmNjCmluZGV4IGRhMmYzNzBjZGNhLi4wODliNzUxMjFlZCAxMDA2NDQK LS0tIGEvZ2NjL2NwL3BhcnNlci5jYworKysgYi9nY2MvY3AvcGFyc2VyLmNjCkBAIC00NDI4 Nyw2ICs0NDI4NywxMCBAQCBjcF9wYXJzZXJfb21wX3RlYW1zIChjcF9wYXJzZXIgKnBhcnNl ciwgY3BfdG9rZW4gKnByYWdtYV90b2ssCiBzdGF0aWMgdHJlZQogY3BfcGFyc2VyX29tcF90 YXJnZXRfZGF0YSAoY3BfcGFyc2VyICpwYXJzZXIsIGNwX3Rva2VuICpwcmFnbWFfdG9rLCBi b29sICppZl9wKQogeworICBpZiAoZmxhZ19vcGVubXApCisgICAgb21wX3JlcXVpcmVzX21h c2sKKyAgICAgID0gKGVudW0gb21wX3JlcXVpcmVzKSAob21wX3JlcXVpcmVzX21hc2sgfCBP TVBfUkVRVUlSRVNfVEFSR0VUX1VTRUQpOworCiAgIHRyZWUgY2xhdXNlcwogICAgID0gY3Bf cGFyc2VyX29tcF9hbGxfY2xhdXNlcyAocGFyc2VyLCBPTVBfVEFSR0VUX0RBVEFfQ0xBVVNF X01BU0ssCiAJCQkJICIjcHJhZ21hIG9tcCB0YXJnZXQgZGF0YSIsIHByYWdtYV90b2spOwpA QCAtNDQzOTAsNiArNDQzOTQsMTAgQEAgY3BfcGFyc2VyX29tcF90YXJnZXRfZW50ZXJfZGF0 YSAoY3BfcGFyc2VyICpwYXJzZXIsIGNwX3Rva2VuICpwcmFnbWFfdG9rLAogICAgICAgcmV0 dXJuIHRydWU7CiAgICAgfQogCisgIGlmIChmbGFnX29wZW5tcCkKKyAgICBvbXBfcmVxdWly ZXNfbWFzaworICAgICAgPSAoZW51bSBvbXBfcmVxdWlyZXMpIChvbXBfcmVxdWlyZXNfbWFz ayB8IE9NUF9SRVFVSVJFU19UQVJHRVRfVVNFRCk7CisKICAgdHJlZSBjbGF1c2VzCiAgICAg PSBjcF9wYXJzZXJfb21wX2FsbF9jbGF1c2VzIChwYXJzZXIsIE9NUF9UQVJHRVRfRU5URVJf REFUQV9DTEFVU0VfTUFTSywKIAkJCQkgIiNwcmFnbWEgb21wIHRhcmdldCBlbnRlciBkYXRh IiwgcHJhZ21hX3Rvayk7CkBAIC00NDQ4MSw2ICs0NDQ4OSwxMCBAQCBjcF9wYXJzZXJfb21w X3RhcmdldF9leGl0X2RhdGEgKGNwX3BhcnNlciAqcGFyc2VyLCBjcF90b2tlbiAqcHJhZ21h X3RvaywKICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICBpZiAoZmxhZ19vcGVubXAp CisgICAgb21wX3JlcXVpcmVzX21hc2sKKyAgICAgID0gKGVudW0gb21wX3JlcXVpcmVzKSAo b21wX3JlcXVpcmVzX21hc2sgfCBPTVBfUkVRVUlSRVNfVEFSR0VUX1VTRUQpOworCiAgIHRy ZWUgY2xhdXNlcwogICAgID0gY3BfcGFyc2VyX29tcF9hbGxfY2xhdXNlcyAocGFyc2VyLCBP TVBfVEFSR0VUX0VYSVRfREFUQV9DTEFVU0VfTUFTSywKIAkJCQkgIiNwcmFnbWEgb21wIHRh cmdldCBleGl0IGRhdGEiLCBwcmFnbWFfdG9rKTsKQEAgLTQ0NTY3LDYgKzQ0NTc5LDEwIEBA IGNwX3BhcnNlcl9vbXBfdGFyZ2V0X3VwZGF0ZSAoY3BfcGFyc2VyICpwYXJzZXIsIGNwX3Rv a2VuICpwcmFnbWFfdG9rLAogICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgIGlmIChm bGFnX29wZW5tcCkKKyAgICBvbXBfcmVxdWlyZXNfbWFzaworICAgICAgPSAoZW51bSBvbXBf cmVxdWlyZXMpIChvbXBfcmVxdWlyZXNfbWFzayB8IE9NUF9SRVFVSVJFU19UQVJHRVRfVVNF RCk7CisKICAgdHJlZSBzdG10ID0gbWFrZV9ub2RlIChPTVBfVEFSR0VUX1VQREFURSk7CiAg IFRSRUVfVFlQRSAoc3RtdCkgPSB2b2lkX3R5cGVfbm9kZTsKICAgT01QX1RBUkdFVF9VUERB VEVfQ0xBVVNFUyAoc3RtdCkgPSBjbGF1c2VzOwpAQCAtNDY4NjEsOSArNDY4NzcsNiBAQCBj cF9wYXJzZXJfb21wX3JlcXVpcmVzIChjcF9wYXJzZXIgKnBhcnNlciwgY3BfdG9rZW4gKnBy YWdtYV90b2spCiAJICAgICAgY3BfcGFyc2VyX3NraXBfdG9fcHJhZ21hX2VvbCAocGFyc2Vy LCBwcmFnbWFfdG9rKTsKIAkgICAgICByZXR1cm4gZmFsc2U7CiAJICAgIH0KLQkgIGlmIChw ICYmIHRoaXNfcmVxICE9IE9NUF9SRVFVSVJFU19EWU5BTUlDX0FMTE9DQVRPUlMpCi0JICAg IHNvcnJ5X2F0IChjbG9jLCAiJXFzIGNsYXVzZSBvbiAlPHJlcXVpcmVzJT4gZGlyZWN0aXZl IG5vdCAiCi0JCQkgICAgInN1cHBvcnRlZCB5ZXQiLCBwKTsKIAkgIGlmIChwKQogCSAgICBj cF9sZXhlcl9jb25zdW1lX3Rva2VuIChwYXJzZXItPmxleGVyKTsKIAkgIGlmICh0aGlzX3Jl cSkKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL29wZW5tcC5jYyBiL2djYy9mb3J0cmFuL29w ZW5tcC5jYwppbmRleCBhZWI4YTQzZTEyZS4uYTY4NzExMDgxZTIgMTAwNjQ0Ci0tLSBhL2dj Yy9mb3J0cmFuL29wZW5tcC5jYworKysgYi9nY2MvZm9ydHJhbi9vcGVubXAuY2MKQEAgLTU0 ODgsMTAgKzU0ODgsNiBAQCBnZmNfbWF0Y2hfb21wX3JlcXVpcmVzICh2b2lkKQogICAgICAg ZWxzZQogCWdvdG8gZXJyb3I7CiAKLSAgICAgIGlmIChyZXF1aXJlc19jbGF1c2UgJiB+KE9N UF9SRVFfQVRPTUlDX01FTV9PUkRFUl9NQVNLCi0JCQkgICAgICB8IE9NUF9SRVFfRFlOQU1J Q19BTExPQ0FUT1JTKSkKLQlnZmNfZXJyb3Jfbm93ICgiU29ycnksICVxcyBjbGF1c2UgYXQg JUwgb24gUkVRVUlSRVMgZGlyZWN0aXZlIGlzIG5vdCAiCi0JCSAgICAgICAieWV0IHN1cHBv cnRlZCIsIGNsYXVzZSwgJm9sZF9sb2MpOwogICAgICAgaWYgKCFnZmNfb21wX3JlcXVpcmVz X2FkZF9jbGF1c2UgKHJlcXVpcmVzX2NsYXVzZSwgY2xhdXNlLCAmb2xkX2xvYywgTlVMTCkp CiAJZ290byBlcnJvcjsKICAgICAgIHJlcXVpcmVzX2NsYXVzZXMgfD0gcmVxdWlyZXNfY2xh dXNlOwpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vcGFyc2UuY2MgYi9nY2MvZm9ydHJhbi9w YXJzZS5jYwppbmRleCA3MzU2ZDFiNWEzYS4uMGI0YzU5Njk5NmMgMTAwNjQ0Ci0tLSBhL2dj Yy9mb3J0cmFuL3BhcnNlLmNjCisrKyBiL2djYy9mb3J0cmFuL3BhcnNlLmNjCkBAIC0xMTY4 LDcgKzExNjgsOCBAQCBkZWNvZGVfb21wX2RpcmVjdGl2ZSAodm9pZCkKICAgICB9CiAgIHN3 aXRjaCAocmV0KQogICAgIHsKLSAgICBjYXNlIFNUX09NUF9ERUNMQVJFX1RBUkdFVDoKKyAg ICAvKiBTZXQgb21wX3RhcmdldF9zZWVuOyBleGNsdWRlIFNUX09NUF9ERUNMQVJFX1RBUkdF VC4KKyAgICAgICBGSVhNRTogR2V0IGNsYXJpZmljYXRpb24sIGNmLiBPcGVuTVAgU3BlYyBJ c3N1ZSAjMzI0MC4gICovCiAgICAgY2FzZSBTVF9PTVBfVEFSR0VUOgogICAgIGNhc2UgU1Rf T01QX1RBUkdFVF9EQVRBOgogICAgIGNhc2UgU1RfT01QX1RBUkdFVF9FTlRFUl9EQVRBOgpA QCAtNjg3OSwxMSArNjg4MCwxNCBAQCBkb25lOgogCiAgIC8qIEZpeHVwIGZvciBleHRlcm5h bCBwcm9jZWR1cmVzIGFuZCByZXNvbHZlICdvbXAgcmVxdWlyZXMnLiAgKi8KICAgaW50IG9t cF9yZXF1aXJlczsKKyAgYm9vbCBvbXBfdGFyZ2V0X3NlZW47CiAgIG9tcF9yZXF1aXJlcyA9 IDA7CisgIG9tcF90YXJnZXRfc2VlbiA9IGZhbHNlOwogICBmb3IgKGdmY19jdXJyZW50X25z ID0gZ2ZjX2dsb2JhbF9uc19saXN0OyBnZmNfY3VycmVudF9uczsKICAgICAgICBnZmNfY3Vy cmVudF9ucyA9IGdmY19jdXJyZW50X25zLT5zaWJsaW5nKQogICAgIHsKICAgICAgIG9tcF9y ZXF1aXJlcyB8PSBnZmNfY3VycmVudF9ucy0+b21wX3JlcXVpcmVzOworICAgICAgb21wX3Rh cmdldF9zZWVuIHw9IGdmY19jdXJyZW50X25zLT5vbXBfdGFyZ2V0X3NlZW47CiAgICAgICBn ZmNfY2hlY2tfZXh0ZXJuYWxzIChnZmNfY3VycmVudF9ucyk7CiAgICAgfQogICBmb3IgKGdm Y19jdXJyZW50X25zID0gZ2ZjX2dsb2JhbF9uc19saXN0OyBnZmNfY3VycmVudF9uczsKQEAg LTY5MDgsNiArNjkxMiwyMiBAQCBkb25lOgogICAgICAgYnJlYWs7CiAgICAgfQogCisgIGlm IChvbXBfdGFyZ2V0X3NlZW4pCisgICAgb21wX3JlcXVpcmVzX21hc2sgPSAoZW51bSBvbXBf cmVxdWlyZXMpIChvbXBfcmVxdWlyZXNfbWFzaworCQkJCQkgICAgIHwgT01QX1JFUVVJUkVT X1RBUkdFVF9VU0VEKTsKKyAgaWYgKG9tcF9yZXF1aXJlcyAmIE9NUF9SRVFfUkVWRVJTRV9P RkZMT0FEKQorICAgIG9tcF9yZXF1aXJlc19tYXNrID0gKGVudW0gb21wX3JlcXVpcmVzKSAo b21wX3JlcXVpcmVzX21hc2sKKwkJCQkJICAgICB8IE9NUF9SRVFVSVJFU19SRVZFUlNFX09G RkxPQUQpOworICBpZiAob21wX3JlcXVpcmVzICYgT01QX1JFUV9VTklGSUVEX0FERFJFU1Mp CisgICAgb21wX3JlcXVpcmVzX21hc2sgPSAoZW51bSBvbXBfcmVxdWlyZXMpIChvbXBfcmVx dWlyZXNfbWFzaworCQkJCQkgICAgIHwgT01QX1JFUVVJUkVTX1VOSUZJRURfQUREUkVTUyk7 CisgIGlmIChvbXBfcmVxdWlyZXMgJiBPTVBfUkVRX1VOSUZJRURfU0hBUkVEX01FTU9SWSkK KyAgICBvbXBfcmVxdWlyZXNfbWFzaworCSAgPSAoZW51bSBvbXBfcmVxdWlyZXMpIChvbXBf cmVxdWlyZXNfbWFzaworCQkJCSB8IE9NUF9SRVFVSVJFU19VTklGSUVEX1NIQVJFRF9NRU1P UlkpOworICBpZiAob21wX3JlcXVpcmVzICYgT01QX1JFUV9EWU5BTUlDX0FMTE9DQVRPUlMp CisgICAgb21wX3JlcXVpcmVzX21hc2sgPSAoZW51bSBvbXBfcmVxdWlyZXMpIChvbXBfcmVx dWlyZXNfbWFzaworCQkJCQkgICAgIHwgT01QX1JFUVVJUkVTX0RZTkFNSUNfQUxMT0NBVE9S Uyk7CiAgIC8qIERvIHRoZSBwYXJzZSB0cmVlIGR1bXAuICAqLwogICBnZmNfY3VycmVudF9u cyA9IGZsYWdfZHVtcF9mb3J0cmFuX29yaWdpbmFsID8gZ2ZjX2dsb2JhbF9uc19saXN0IDog TlVMTDsKIApkaWZmIC0tZ2l0IGEvZ2NjL2x0by1jZ3JhcGguY2MgYi9nY2MvbHRvLWNncmFw aC5jYwppbmRleCAyMzc3NDNlZjBiYS4uODdmMDFjYmQyYWYgMTAwNjQ0Ci0tLSBhL2djYy9s dG8tY2dyYXBoLmNjCisrKyBiL2djYy9sdG8tY2dyYXBoLmNjCkBAIC0zNyw2ICszNyw3IEBA IGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qgc2VlCiAj aW5jbHVkZSAicGFzc19tYW5hZ2VyLmgiCiAjaW5jbHVkZSAiaXBhLXV0aWxzLmgiCiAjaW5j bHVkZSAib21wLW9mZmxvYWQuaCIKKyNpbmNsdWRlICJvbXAtZ2VuZXJhbC5oIgogI2luY2x1 ZGUgInN0cmluZ3Bvb2wuaCIKICNpbmNsdWRlICJhdHRyaWJzLmgiCiAjaW5jbHVkZSAiYWxs b2MtcG9vbC5oIgpAQCAtMTA2OCw3ICsxMDY5LDEwIEBAIHJlYWRfc3RyaW5nIChjbGFzcyBs dG9faW5wdXRfYmxvY2sgKmliKQogdm9pZAogb3V0cHV0X29mZmxvYWRfdGFibGVzICh2b2lk KQogewotICBpZiAodmVjX3NhZmVfaXNfZW1wdHkgKG9mZmxvYWRfZnVuY3MpICYmIHZlY19z YWZlX2lzX2VtcHR5IChvZmZsb2FkX3ZhcnMpKQorICBib29sIG91dHB1dF9yZXF1aXJlcyA9 IChmbGFnX29wZW5tcAorCQkJICAmJiAob21wX3JlcXVpcmVzX21hc2sgJiBPTVBfUkVRVUlS RVNfVEFSR0VUX1VTRUQpICE9IDApOworICBpZiAodmVjX3NhZmVfaXNfZW1wdHkgKG9mZmxv YWRfZnVuY3MpICYmIHZlY19zYWZlX2lzX2VtcHR5IChvZmZsb2FkX3ZhcnMpCisgICAgICAm JiAhb3V0cHV0X3JlcXVpcmVzKQogICAgIHJldHVybjsKIAogICBzdHJ1Y3QgbHRvX3NpbXBs ZV9vdXRwdXRfYmxvY2sgKm9iCkBAIC0xMDk4LDYgKzExMDIsMTkgQEAgb3V0cHV0X29mZmxv YWRfdGFibGVzICh2b2lkKQogCQkJICAgICAgICgqb2ZmbG9hZF92YXJzKVtpXSk7CiAgICAg fQogCisgIGlmIChvdXRwdXRfcmVxdWlyZXMpCisgICAgeworICAgICAgSE9TVF9XSURFX0lO VCB2YWwgPSAoKEhPU1RfV0lERV9JTlQpIG9tcF9yZXF1aXJlc19tYXNrCisJCQkgICAmIChP TVBfUkVRVUlSRVNfVU5JRklFRF9BRERSRVNTCisJCQkgICAgICB8IE9NUF9SRVFVSVJFU19V TklGSUVEX1NIQVJFRF9NRU1PUlkKKwkJCSAgICAgIHwgT01QX1JFUVVJUkVTX1JFVkVSU0Vf T0ZGTE9BRAorCQkJICAgICAgfCBPTVBfUkVRVUlSRVNfVEFSR0VUX1VTRUQpKTsKKyAgICAg IC8qIChNaXMpdXNlIExUT19zeW10YWJfZWRnZSBmb3IgdGhpcyB2YXJpYWJsZS4gICovCisg ICAgICBzdHJlYW1lcl93cml0ZV9lbnVtIChvYi0+bWFpbl9zdHJlYW0sIExUT19zeW10YWJf dGFncywKKwkJCSAgIExUT19zeW10YWJfbGFzdF90YWcsIExUT19zeW10YWJfZWRnZSk7Cisg ICAgICBzdHJlYW1lcl93cml0ZV9od2lfc3RyZWFtIChvYi0+bWFpbl9zdHJlYW0sIHZhbCk7 CisgICAgfQorCiAgIHN0cmVhbWVyX3dyaXRlX3Vod2lfc3RyZWFtIChvYi0+bWFpbl9zdHJl YW0sIDApOwogICBsdG9fZGVzdHJveV9zaW1wbGVfb3V0cHV0X2Jsb2NrIChvYik7CiAKQEAg LTE3NjQsNiArMTc4MSwyMCBAQCBpbnB1dF9zeW10YWIgKHZvaWQpCiAgICAgfQogfQogCitz dGF0aWMgdm9pZAorb21wX3JlcXVpcmVzX3RvX25hbWUgKGNoYXIgKmJ1Ziwgc2l6ZV90IHNp emUsIHVuc2lnbmVkIGludCByZXF1aXJlc19tYXNrKQoreworICBjaGFyICplbmQgPSBidWYg KyBzaXplLCAqcCA9IGJ1ZjsKKyAgaWYgKHJlcXVpcmVzX21hc2sgJiBHT01QX1JFUVVJUkVT X1VOSUZJRURfQUREUkVTUykKKyAgICBwICs9IHNucHJpbnRmIChwLCBlbmQgLSBwLCAidW5p ZmllZF9hZGRyZXNzIik7CisgIGlmIChyZXF1aXJlc19tYXNrICYgR09NUF9SRVFVSVJFU19V TklGSUVEX1NIQVJFRF9NRU1PUlkpCisgICAgcCArPSBzbnByaW50ZiAocCwgZW5kIC0gcCwg IiVzdW5pZmllZF9zaGFyZWRfbWVtb3J5IiwKKwkJICAgKHAgPT0gYnVmID8gIiIgOiAiLCAi KSk7CisgIGlmIChyZXF1aXJlc19tYXNrICYgR09NUF9SRVFVSVJFU19SRVZFUlNFX09GRkxP QUQpCisgICAgcCArPSBzbnByaW50ZiAocCwgZW5kIC0gcCwgIiVzcmV2ZXJzZV9vZmZsb2Fk IiwKKwkJICAgKHAgPT0gYnVmID8gIiIgOiAiLCAiKSk7Cit9CisKIC8qIElucHV0IGZ1bmN0 aW9uL3ZhcmlhYmxlIHRhYmxlcyB0aGF0IHdpbGwgYWxsb3cgbGliZ29tcCB0byBsb29rIHVw IG9mZmxvYWQKICAgIHRhcmdldCBjb2RlLCBhbmQgc3RvcmUgdGhlbSBpbnRvIE9GRkxPQURf RlVOQ1MgYW5kIE9GRkxPQURfVkFSUy4gICovCiAKQEAgLTE3NzMsNiArMTgwNCwxMCBAQCBp bnB1dF9vZmZsb2FkX3RhYmxlcyAoYm9vbCBkb19mb3JjZV9vdXRwdXQpCiAgIHN0cnVjdCBs dG9fZmlsZV9kZWNsX2RhdGEgKipmaWxlX2RhdGFfdmVjID0gbHRvX2dldF9maWxlX2RlY2xf ZGF0YSAoKTsKICAgc3RydWN0IGx0b19maWxlX2RlY2xfZGF0YSAqZmlsZV9kYXRhOwogICB1 bnNpZ25lZCBpbnQgaiA9IDA7CisgIGNvbnN0IGNoYXIgKnJlcXVpcmVzX2ZuID0gTlVMTDsK KyAgdHJlZSByZXF1aXJlc19kZWNsID0gTlVMTF9UUkVFOworCisgIG9tcF9yZXF1aXJlc19t YXNrID0gKG9tcF9yZXF1aXJlcykgMDsKIAogICB3aGlsZSAoKGZpbGVfZGF0YSA9IGZpbGVf ZGF0YV92ZWNbaisrXSkpCiAgICAgewpAQCAtMTc4NCw2ICsxODE5LDcgQEAgaW5wdXRfb2Zm bG9hZF90YWJsZXMgKGJvb2wgZG9fZm9yY2Vfb3V0cHV0KQogICAgICAgaWYgKCFpYikKIAlj b250aW51ZTsKIAorICAgICAgdHJlZSB0bXBfZGVjbCA9IE5VTExfVFJFRTsKICAgICAgIGVu dW0gTFRPX3N5bXRhYl90YWdzIHRhZwogCT0gc3RyZWFtZXJfcmVhZF9lbnVtIChpYiwgTFRP X3N5bXRhYl90YWdzLCBMVE9fc3ltdGFiX2xhc3RfdGFnKTsKICAgICAgIHdoaWxlICh0YWcp CkBAIC0xNzk5LDYgKzE4MzUsNyBAQCBpbnB1dF9vZmZsb2FkX3RhYmxlcyAoYm9vbCBkb19m b3JjZV9vdXRwdXQpCiAJCSBMVE8gbW9kZS4gICovCiAJICAgICAgaWYgKGRvX2ZvcmNlX291 dHB1dCkKIAkJY2dyYXBoX25vZGU6OmdldCAoZm5fZGVjbCktPm1hcmtfZm9yY2Vfb3V0cHV0 ICgpOworCSAgICAgIHRtcF9kZWNsID0gZm5fZGVjbDsKIAkgICAgfQogCSAgZWxzZSBpZiAo dGFnID09IExUT19zeW10YWJfdmFyaWFibGUpCiAJICAgIHsKQEAgLTE4MTAsNiArMTg0Nyw1 NCBAQCBpbnB1dF9vZmZsb2FkX3RhYmxlcyAoYm9vbCBkb19mb3JjZV9vdXRwdXQpCiAJCSBt YXkgYmUgbm8gcmVmcyB0byB2YXJfZGVjbCBpbiBvZmZsb2FkIExUTyBtb2RlLiAgKi8KIAkg ICAgICBpZiAoZG9fZm9yY2Vfb3V0cHV0KQogCQl2YXJwb29sX25vZGU6OmdldCAodmFyX2Rl Y2wpLT5mb3JjZV9vdXRwdXQgPSAxOworCSAgICAgIHRtcF9kZWNsID0gdmFyX2RlY2w7CisJ ICAgIH0KKwkgIGVsc2UgaWYgKHRhZyA9PSBMVE9fc3ltdGFiX2VkZ2UpCisJICAgIHsKKwkg ICAgICBzdGF0aWMgYm9vbCBlcnJvcl9lbWl0dGVkID0gZmFsc2U7CisJICAgICAgSE9TVF9X SURFX0lOVCB2YWwgPSBzdHJlYW1lcl9yZWFkX2h3aSAoaWIpOworCisJICAgICAgaWYgKG9t cF9yZXF1aXJlc19tYXNrID09IDApCisJCXsKKwkJICBvbXBfcmVxdWlyZXNfbWFzayA9IChv bXBfcmVxdWlyZXMpIHZhbDsKKwkJICByZXF1aXJlc19kZWNsID0gdG1wX2RlY2w7CisJCSAg cmVxdWlyZXNfZm4gPSBmaWxlX2RhdGEtPmZpbGVfbmFtZTsKKwkJfQorCSAgICAgIGVsc2Ug aWYgKG9tcF9yZXF1aXJlc19tYXNrICE9IHZhbCAmJiAhZXJyb3JfZW1pdHRlZCkKKwkJewor CQkgIGNoYXIgYnVmWzY0XSwgYnVmMls2NF07CisJCSAgb21wX3JlcXVpcmVzX3RvX25hbWUg KGJ1Ziwgc2l6ZW9mIChidWYpLCBvbXBfcmVxdWlyZXNfbWFzayk7CisJCSAgb21wX3JlcXVp cmVzX3RvX25hbWUgKGJ1ZjIsIHNpemVvZiAoYnVmMiksIHZhbCk7CisJCSAgZXJyb3IgKCJP cGVuTVAgJTxyZXF1aXJlcyU+IGRpcmVjdGl2ZSB3aXRoIG5vbi1pZGVudGljYWwgIgorCQkJ ICJjbGF1c2VzIGluIG11bHRpcGxlIGNvbXBpbGF0aW9uIHVuaXRzOiAlcXMgdnMuICVxcyIs CisJCQkgYnVmLCBidWYyKTsKKwkJICBpZiAocmVxdWlyZXNfZGVjbCAhPSBOVUxMX1RSRUUp CisJCSAgICB7CisJCSAgICAgIHdoaWxlIChERUNMX0NPTlRFWFQgKHJlcXVpcmVzX2RlY2wp ICE9IE5VTExfVFJFRQorCQkJICAgICAmJiBUUkVFX0NPREUgKHJlcXVpcmVzX2RlY2wpICE9 IFRSQU5TTEFUSU9OX1VOSVRfREVDTCkKKwkJCXJlcXVpcmVzX2RlY2wgPSBERUNMX0NPTlRF WFQgKHJlcXVpcmVzX2RlY2wpOworCQkgICAgICBpZiAocmVxdWlyZXNfZGVjbCAhPSBOVUxM X1RSRUUpCisJCQlpbmZvcm0gKFVOS05PV05fTE9DQVRJT04sICIlcXMgaGFzICVxcyIsCisJ CQkJSURFTlRJRklFUl9QT0lOVEVSIChERUNMX05BTUUgKHJlcXVpcmVzX2RlY2wpKSwKKwkJ CQlidWYpOworCQkgICAgfQorCQkgIGVsc2UKKwkJICAgIGluZm9ybSAoVU5LTk9XTl9MT0NB VElPTiwgIiVxcyBoYXMgJXFzIiwgcmVxdWlyZXNfZm4sIGJ1Zik7CisJCSAgaWYgKHRtcF9k ZWNsICE9IE5VTExfVFJFRSkKKwkJICAgIHsKKwkJICAgICAgd2hpbGUgKERFQ0xfQ09OVEVY VCAodG1wX2RlY2wpICE9IE5VTExfVFJFRQorCQkJICAgICAmJiBUUkVFX0NPREUgKHRtcF9k ZWNsKSAhPSBUUkFOU0xBVElPTl9VTklUX0RFQ0wpCisJCQl0bXBfZGVjbCA9IERFQ0xfQ09O VEVYVCAodG1wX2RlY2wpOworCQkgICAgICBpZiAodG1wX2RlY2wgIT0gTlVMTF9UUkVFKQor CQkJaW5mb3JtIChVTktOT1dOX0xPQ0FUSU9OLCAiJXFzIGhhcyAlcXMiLAorCQkJCUlERU5U SUZJRVJfUE9JTlRFUiAoREVDTF9OQU1FICh0bXBfZGVjbCkpLAorCQkJCWJ1ZjIpOworCQkg ICAgfQorCQkgIGVsc2UKKwkJICAgIGluZm9ybSAoVU5LTk9XTl9MT0NBVElPTiwgIiVxcyBo YXMgJXFzIiwKKwkJCSAgICBmaWxlX2RhdGEtPmZpbGVfbmFtZSwgYnVmMik7CisJCSAgZXJy b3JfZW1pdHRlZCA9IHRydWU7CisJCX0KIAkgICAgfQogCSAgZWxzZQogCSAgICBmYXRhbF9l cnJvciAoaW5wdXRfbG9jYXRpb24sCkBAIC0xODIxLDYgKzE5MDYsMTggQEAgaW5wdXRfb2Zm bG9hZF90YWJsZXMgKGJvb2wgZG9fZm9yY2Vfb3V0cHV0KQogICAgICAgbHRvX2Rlc3Ryb3lf c2ltcGxlX2lucHV0X2Jsb2NrIChmaWxlX2RhdGEsIExUT19zZWN0aW9uX29mZmxvYWRfdGFi bGUsCiAJCQkJICAgICAgaWIsIGRhdGEsIGxlbik7CiAgICAgfQorI2lmZGVmIEFDQ0VMX0NP TVBJTEVSCisgIGNoYXIgKm9tcF9yZXF1aXJlc19maWxlID0gZ2V0ZW52ICgiR0NDX09GRkxP QURfT01QX1JFUVVJUkVTX0ZJTEUiKTsKKyAgaWYgKG9tcF9yZXF1aXJlc19maWxlID09IE5V TEwgfHwgb21wX3JlcXVpcmVzX2ZpbGVbMF0gPT0gJ1wwJykKKyAgICBmYXRhbF9lcnJvciAo aW5wdXRfbG9jYXRpb24sICJHQ0NfT0ZGTE9BRF9PTVBfUkVRVUlSRVNfRklMRSB1bnNldCIp OworICBGSUxFICpmID0gZm9wZW4gKG9tcF9yZXF1aXJlc19maWxlLCAid2IiKTsKKyAgaWYg KCFmKQorICAgIGZhdGFsX2Vycm9yIChpbnB1dF9sb2NhdGlvbiwgIkNhbm5vdCBvcGVuIG9t cF9yZXF1aXJlcyBmaWxlICVxcyIsCisJCSBvbXBfcmVxdWlyZXNfZmlsZSk7CisgIHVpbnQz Ml90IHJlcV9tYXNrID0gb21wX3JlcXVpcmVzX21hc2sgJiB+T01QX1JFUVVJUkVTX1RBUkdF VF9VU0VEOworICBmd3JpdGUgKCZyZXFfbWFzaywgc2l6ZW9mIChyZXFfbWFzayksIDEsIGYp OworICBmY2xvc2UgKGYpOworI2VuZGlmCiB9CiAKIC8qIFRydWUgd2hlbiB3ZSBuZWVkIG9w dGltaXphdGlvbiBzdW1tYXJ5IGZvciBOT0RFLiAgKi8KZGlmZiAtLWdpdCBhL2djYy9vbXAt bG93LmNjIGIvZ2NjL29tcC1sb3cuY2MKaW5kZXggYjlkNTUyOWYyMTIuLmQ3M2MxNjVmMDI5 IDEwMDY0NAotLS0gYS9nY2Mvb21wLWxvdy5jYworKysgYi9nY2Mvb21wLWxvdy5jYwpAQCAt MTI3MDEsNiArMTI3MDEsMTEgQEAgbG93ZXJfb21wX3RhcmdldCAoZ2ltcGxlX3N0bXRfaXRl cmF0b3IgKmdzaV9wLCBvbXBfY29udGV4dCAqY3R4KQogICAgICAgZ2NjX3VucmVhY2hhYmxl ICgpOwogICAgIH0KIAorICAvKiBFbnN1cmUgdGhhdCByZXF1aXJlcyBtYXAgaXMgd3JpdHRl biB2aWEgb3V0cHV0X29mZmxvYWRfdGFibGVzLCBldmVuIGlmIG9ubHkKKyAgICAgJ3Rhcmdl dCAoZW50ZXIvZXhpdCkgZGF0YScgaXMgdXNlZCBpbiB0aGUgdHJhbnNsYXRpb24gdW5pdC4g ICovCisgIGlmIChFTkFCTEVfT0ZGTE9BRElORyAmJiAob21wX3JlcXVpcmVzX21hc2sgJiBP TVBfUkVRVUlSRVNfVEFSR0VUX1VTRUQpKQorICAgIGctPmhhdmVfb2ZmbG9hZCA9IHRydWU7 CisKICAgY2xhdXNlcyA9IGdpbXBsZV9vbXBfdGFyZ2V0X2NsYXVzZXMgKHN0bXQpOwogCiAg IGdpbXBsZV9zZXEgZGVwX2lsaXN0ID0gTlVMTDsKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvYy1jKystY29tbW9uL2dvbXAvcmVxdWlyZXMtNC5jIGIvZ2NjL3Rlc3RzdWl0ZS9jLWMr Ky1jb21tb24vZ29tcC9yZXF1aXJlcy00LmMKaW5kZXggODhiYTc3NDZjZjguLjhmNDVkODNl YTZlIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9nb21wL3JlcXVp cmVzLTQuYworKysgYi9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9nb21wL3JlcXVpcmVz LTQuYwpAQCAtOSw1ICs5LDMgQEAgZm9vICh2b2lkKQogI3ByYWdtYSBvbXAgcmVxdWlyZXMg dW5pZmllZF9zaGFyZWRfbWVtb3J5CS8qIHsgZGctZXJyb3IgIid1bmlmaWVkX3NoYXJlZF9t ZW1vcnknIGNsYXVzZSB1c2VkIGxleGljYWxseSBhZnRlciBmaXJzdCB0YXJnZXQgY29uc3Ry dWN0IG9yIG9mZmxvYWRpbmcgQVBJIiB9ICovCiAjcHJhZ21hIG9tcCByZXF1aXJlcyB1bmlm aWVkX2FkZHJlc3MJLyogeyBkZy1lcnJvciAiJ3VuaWZpZWRfYWRkcmVzcycgY2xhdXNlIHVz ZWQgbGV4aWNhbGx5IGFmdGVyIGZpcnN0IHRhcmdldCBjb25zdHJ1Y3Qgb3Igb2ZmbG9hZGlu ZyBBUEkiIH0gKi8KICNwcmFnbWEgb21wIHJlcXVpcmVzIHJldmVyc2Vfb2ZmbG9hZAkvKiB7 IGRnLWVycm9yICIncmV2ZXJzZV9vZmZsb2FkJyBjbGF1c2UgdXNlZCBsZXhpY2FsbHkgYWZ0 ZXIgZmlyc3QgdGFyZ2V0IGNvbnN0cnVjdCBvciBvZmZsb2FkaW5nIEFQSSIgfSAqLwotCi0v KiB7IGRnLXBydW5lLW91dHB1dCAibm90IHN1cHBvcnRlZCB5ZXQiIH0gKi8KZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL2dvbXAvcmV2ZXJzZS1vZmZsb2FkLTEu YyBiL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL2dvbXAvcmV2ZXJzZS1vZmZsb2FkLTEu YwppbmRleCA5YTNmYTUyMzBmOC4uMzQ1MjE1NmY5NDggMTAwNjQ0Ci0tLSBhL2djYy90ZXN0 c3VpdGUvYy1jKystY29tbW9uL2dvbXAvcmV2ZXJzZS1vZmZsb2FkLTEuYworKysgYi9nY2Mv dGVzdHN1aXRlL2MtYysrLWNvbW1vbi9nb21wL3JldmVyc2Utb2ZmbG9hZC0xLmMKQEAgLTQz LDcgKzQzLDcgQEAgdGdfZm4gKGludCAqeCwgaW50ICp5KQogICB4MiA9IHgyICsgMiArIGNh bGxlZF9pbl90YXJnZXQxICgpOwogICB5MiA9IHkyICsgNzsKIAotICAjcHJhZ21hIG9tcCB0 YXJnZXQgZGV2aWNlKGFuY2VzdG9yIDogMSkgbWFwKHRvZnJvbTogeDIpCisgICNwcmFnbWEg b21wIHRhcmdldCBkZXZpY2UoYW5jZXN0b3IgOiAxKSBtYXAodG9mcm9tOiB4MikgIC8qIHsg ZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6ICdhbmNlc3Rvcicgbm90IHlldCBz dXBwb3J0ZWQiIH0gKi8KICAgICBjaGVja19vZmZsb2FkKCZ4MiwgJnkyKTsKIAogICBpZiAo eDIgIT0gMisyKzMrNDIgfHwgeTIgIT0gMyArIDcpCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1 aXRlL2MtYysrLWNvbW1vbi9nb21wL3RhcmdldC1kZXZpY2UtYW5jZXN0b3ItMi5jIGIvZ2Nj L3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vZ29tcC90YXJnZXQtZGV2aWNlLWFuY2VzdG9yLTIu YwppbmRleCBjZjA1YzUwNTAwNC4uYjE2ZTcwMWJkNWEgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0 c3VpdGUvYy1jKystY29tbW9uL2dvbXAvdGFyZ2V0LWRldmljZS1hbmNlc3Rvci0yLmMKKysr IGIvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vZ29tcC90YXJnZXQtZGV2aWNlLWFuY2Vz dG9yLTIuYwpAQCAtMSwxMyArMSwxMSBAQAogLyogeyBkZy1kbyBjb21waWxlIH0gKi8KIAot I3ByYWdtYSBvbXAgcmVxdWlyZXMgcmV2ZXJzZV9vZmZsb2FkIC8qIHsgZGctbWVzc2FnZSAi c29ycnksIHVuaW1wbGVtZW50ZWQ6ICdyZXZlcnNlX29mZmxvYWQnIGNsYXVzZSBvbiAncmVx dWlyZXMnIGRpcmVjdGl2ZSBub3Qgc3VwcG9ydGVkIHlldCIgfSAqLworI3ByYWdtYSBvbXAg cmVxdWlyZXMgcmV2ZXJzZV9vZmZsb2FkCiAKIHZvaWQKIGZvbyAoaW50IG4pCiB7Ci0gIC8q IFRoZSBmb2xsb3dpbmcgdGVzdCBpcyBtYXJrZWQgd2l0aCAneGZhaWwnIGJlY2F1c2UgYSBw cmV2aW91cyAnc29ycnknIGZyb20KLSAgICAgJ3JldmVyc2Vfb2ZmbG9hZCcgc3VwcHJlc3Nl cyB0aGUgJ3NvcnJ5JyBmb3IgJ2FuY2VzdG9yJy4gICovCi0gICNwcmFnbWEgb21wIHRhcmdl dCBkZXZpY2UgKGFuY2VzdG9yOiAxKSAvKiB7IGRnLW1lc3NhZ2UgIiIgInNvcnJ5LCB1bmlt cGxlbWVudGVkOiAnYW5jZXN0b3InIG5vdCB5ZXQgc3VwcG9ydGVkIiB7IHhmYWlsICotKi0q IH0gfSAqLworICAjcHJhZ21hIG9tcCB0YXJnZXQgZGV2aWNlIChhbmNlc3RvcjogMSkKICAg OwogCiAKQEAgLTE5LDkgKzE3LDkgQEAgZm9vIChpbnQgbikKICAgI3ByYWdtYSBvbXAgdGFy Z2V0IGRldmljZSAoYW5jZXN0b3IgOiA0MikgLyogeyBkZy1lcnJvciAidGhlICdkZXZpY2Un IGNsYXVzZSBleHByZXNzaW9uIG11c3QgZXZhbHVhdGUgdG8gJzEnIiB9ICovCiAgIDsKIAot ICAjcHJhZ21hIG9tcCB0YXJnZXQgZGV2aWNlIChhbmNlc3RvciA6IG4pIC8qIHsgZGctbWVz c2FnZSAiIiAic29ycnksIHVuaW1wbGVtZW50ZWQ6ICdhbmNlc3Rvcicgbm90IHlldCBzdXBw b3J0ZWQiIHsgeGZhaWwgKi0qLSogfSB9ICovCisgICNwcmFnbWEgb21wIHRhcmdldCBkZXZp Y2UgKGFuY2VzdG9yIDogbikKICAgOwotICAjcHJhZ21hIG9tcCB0YXJnZXQgZGV2aWNlIChh bmNlc3RvciA6IG4gKyAxKSAvKiB7IGRnLW1lc3NhZ2UgIiIgInNvcnJ5LCB1bmltcGxlbWVu dGVkOiAnYW5jZXN0b3InIG5vdCB5ZXQgc3VwcG9ydGVkIiB7IHhmYWlsICotKi0qIH0gfSAq LworICAjcHJhZ21hIG9tcCB0YXJnZXQgZGV2aWNlIChhbmNlc3RvciA6IG4gKyAxKQogICA7 CiAKIApkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vZ29tcC90YXJn ZXQtZGV2aWNlLWFuY2VzdG9yLTMuYyBiL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL2dv bXAvdGFyZ2V0LWRldmljZS1hbmNlc3Rvci0zLmMKaW5kZXggZWE2ZTVhMGNmNmMuLmQxNjU5 MDEwN2QyIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9nb21wL3Rh cmdldC1kZXZpY2UtYW5jZXN0b3ItMy5jCisrKyBiL2djYy90ZXN0c3VpdGUvYy1jKystY29t bW9uL2dvbXAvdGFyZ2V0LWRldmljZS1hbmNlc3Rvci0zLmMKQEAgLTExLDcgKzExLDcgQEAg aW50IGJhciAodm9pZCk7CiAKIC8qIHsgZGctZG8gY29tcGlsZSB9ICovCiAKLSNwcmFnbWEg b21wIHJlcXVpcmVzIHJldmVyc2Vfb2ZmbG9hZCAvKiB7IGRnLW1lc3NhZ2UgInNvcnJ5LCB1 bmltcGxlbWVudGVkOiAncmV2ZXJzZV9vZmZsb2FkJyBjbGF1c2Ugb24gJ3JlcXVpcmVzJyBk aXJlY3RpdmUgbm90IHN1cHBvcnRlZCB5ZXQiIH0gKi8KKyNwcmFnbWEgb21wIHJlcXVpcmVz IHJldmVyc2Vfb2ZmbG9hZAogCiB2b2lkCiBmb28gKHZvaWQpCmRpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2MtYysrLWNvbW1vbi9nb21wL3RhcmdldC1kZXZpY2UtYW5jZXN0b3ItNC5j IGIvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vZ29tcC90YXJnZXQtZGV2aWNlLWFuY2Vz dG9yLTQuYwppbmRleCBiNGI1NjIwYmJjMC4uMjQxMjM0ZjhkYWYgMTAwNjQ0Ci0tLSBhL2dj Yy90ZXN0c3VpdGUvYy1jKystY29tbW9uL2dvbXAvdGFyZ2V0LWRldmljZS1hbmNlc3Rvci00 LmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vZ29tcC90YXJnZXQtZGV2aWNl LWFuY2VzdG9yLTQuYwpAQCAtNCwxMiArNCwxMiBAQAogICAvKiBUZXN0IHRvIGVuc3VyZSB0 aGF0IGRldmljZS1tb2RpZmllciAnYW5jZXN0b3InIGlzIHBhcnNlZCBjb3JyZWN0bHkgaW4K ICAgICAgZGV2aWNlIGNsYXVzZXMuICovCiAKLSNwcmFnbWEgb21wIHJlcXVpcmVzIHJldmVy c2Vfb2ZmbG9hZCAvKiB7IGRnLW1lc3NhZ2UgInNvcnJ5LCB1bmltcGxlbWVudGVkOiAncmV2 ZXJzZV9vZmZsb2FkJyBjbGF1c2Ugb24gJ3JlcXVpcmVzJyBkaXJlY3RpdmUgbm90IHN1cHBv cnRlZCB5ZXQiIH0gKi8KKyNwcmFnbWEgb21wIHJlcXVpcmVzIHJldmVyc2Vfb2ZmbG9hZAog CiB2b2lkCiBmb28gKHZvaWQpCiB7Ci0gICNwcmFnbWEgb21wIHRhcmdldCBkZXZpY2UgKGFu Y2VzdG9yOiAxKSAvKiB7IGRnLW1lc3NhZ2UgIiIgInNvcnJ5LCB1bmltcGxlbWVudGVkOiAn YW5jZXN0b3InIG5vdCB5ZXQgc3VwcG9ydGVkIiB7IHhmYWlsICotKi0qIH0gfSAqLworICAj cHJhZ21hIG9tcCB0YXJnZXQgZGV2aWNlIChhbmNlc3RvcjogMSkgLyogeyBkZy1tZXNzYWdl ICJzb3JyeSwgdW5pbXBsZW1lbnRlZDogJ2FuY2VzdG9yJyBub3QgeWV0IHN1cHBvcnRlZCIg fSAqLwogICA7CiAKIH0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9u L2dvbXAvdGFyZ2V0LWRldmljZS1hbmNlc3Rvci01LmMgYi9nY2MvdGVzdHN1aXRlL2MtYysr LWNvbW1vbi9nb21wL3RhcmdldC1kZXZpY2UtYW5jZXN0b3ItNS5jCmluZGV4IGI2ZmY4NGJj ZGFiLi5iMTUyMGZmMDYzNiAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21t b24vZ29tcC90YXJnZXQtZGV2aWNlLWFuY2VzdG9yLTUuYworKysgYi9nY2MvdGVzdHN1aXRl L2MtYysrLWNvbW1vbi9nb21wL3RhcmdldC1kZXZpY2UtYW5jZXN0b3ItNS5jCkBAIC0xLDQg KzEsNCBAQAotI3ByYWdtYSBvbXAgcmVxdWlyZXMgcmV2ZXJzZV9vZmZsb2FkICAvKiB7IGRn LW1lc3NhZ2UgInNvcnJ5LCB1bmltcGxlbWVudGVkOiAncmV2ZXJzZV9vZmZsb2FkJyBjbGF1 c2Ugb24gJ3JlcXVpcmVzJyBkaXJlY3RpdmUgbm90IHN1cHBvcnRlZCB5ZXQiIH0gKi8KKyNw cmFnbWEgb21wIHJlcXVpcmVzIHJldmVyc2Vfb2ZmbG9hZAogCiB2b2lkCiBmb28gKCkKZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9yZXF1aXJlcy04LmY5 MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9yZXF1aXJlcy04LmY5MAppbmRl eCBlODRkNjA5YWQyOS4uNTgzYzVhNTZiMzIgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUv Z2ZvcnRyYW4uZGcvZ29tcC9yZXF1aXJlcy04LmY5MAorKysgYi9nY2MvdGVzdHN1aXRlL2dm b3J0cmFuLmRnL2dvbXAvcmVxdWlyZXMtOC5mOTAKQEAgLTEsMyArMSw3IEBACittb2R1bGUg bTAKKyAgaW50ZWdlciA6OiB4CitlbmQgbW9kdWxlIG0wCisKIG1vZHVsZSBtICAhICB7IGRn LWVycm9yICJoYXMgT3Blbk1QIGRldmljZSBjb25zdHJ1Y3RzL3JvdXRpbmVzIGJ1dCBkb2Vz IG5vdCBzZXQgIS5PTVAgUkVRVUlSRVMgVU5JRklFRF9TSEFSRURfTUVNT1JZIGJ1dCBvdGhl ciBwcm9ncmFtIHVuaXRzIGRvIiB9CiAgICEkb21wIHJlcXVpcmVzIHJldmVyc2Vfb2ZmbG9h ZAogY29udGFpbnMKQEAgLTEzLDEwICsxNywxNCBAQCBjb250YWlucwogIGVuZCBzdWJyb3V0 aW5lIGZvbwogZW5kIG1vZHVsZSBtCiAKLXN1YnJvdXRpbmUgYmFyICAhIHsgZGctZXJyb3Ig ImhhcyBPcGVuTVAgZGV2aWNlIGNvbnN0cnVjdHMvcm91dGluZXMgYnV0IGRvZXMgbm90IHNl dCAhLk9NUCBSRVFVSVJFUyBSRVZFUlNFX09GRkxPQUQgYnV0IG90aGVyIHByb2dyYW0gdW5p dHMgZG8iIH0KK3N1YnJvdXRpbmUgYmFyCiAgICF1c2UgbQotICAhJG9tcCByZXF1aXJlcyB1 bmlmaWVkX3NoYXJlZF9tZW1vcnkKKyAgISRvbXAgcmVxdWlyZXMgdW5pZmllZF9zaGFyZWRf bWVtb3J5ICAhIFBvc3NpYmx5IE9LIC0gbmVlZHMgT3Blbk1QIExhbmcgU3BlYyBjbGFyaWZp Y2F0aW9uICgtPiAjMzI0MCkKICAgISRvbXAgZGVjbGFyZSB0YXJnZXQKIGVuZCBzdWJyb3V0 aW5lIGJhcgogCi0hIHsgZGctcHJ1bmUtb3V0cHV0ICJub3QgeWV0IHN1cHBvcnRlZCIgfQor c3Vicm91dGluZSBmb29iYXIgICEgeyBkZy1lcnJvciAiaGFzIE9wZW5NUCBkZXZpY2UgY29u c3RydWN0cy9yb3V0aW5lcyBidXQgZG9lcyBub3Qgc2V0ICEuT01QIFJFUVVJUkVTIFJFVkVS U0VfT0ZGTE9BRCBidXQgb3RoZXIgcHJvZ3JhbSB1bml0cyBkbyIgfQorICB1c2UgbTAKKyAg ISRvbXAgcmVxdWlyZXMgdW5pZmllZF9zaGFyZWRfbWVtb3J5CisgICEkb21wIHRhcmdldCBl bnRlciBkYXRhIG1hcCh0bzp4KQorZW5kIHN1YnJvdXRpbmUgZm9vYmFyCmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvdGFyZ2V0LWRldmljZS1hbmNlc3Rv ci0yLmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC90YXJnZXQtZGV2aWNl LWFuY2VzdG9yLTIuZjkwCmluZGV4IDExN2ExZDAwMGE1Li4yMzBjNjkwZDg0YyAxMDA2NDQK LS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL3RhcmdldC1kZXZpY2UtYW5j ZXN0b3ItMi5mOTAKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL3Rhcmdl dC1kZXZpY2UtYW5jZXN0b3ItMi5mOTAKQEAgLTQsMTkgKzQsMTYgQEAgaW1wbGljaXQgbm9u ZQogCiBpbnRlZ2VyIDo6IGEsIGIsIGMKIAotISRvbXAgcmVxdWlyZXMgcmV2ZXJzZV9vZmZs b2FkICAhIHsgZGctZXJyb3IgIlNvcnJ5LCAncmV2ZXJzZV9vZmZsb2FkJyBjbGF1c2UgYXQg XFwoMVxcKSBvbiBSRVFVSVJFUyBkaXJlY3RpdmUgaXMgbm90IHlldCBzdXBwb3J0ZWQiIH0K KyEkb21wIHJlcXVpcmVzIHJldmVyc2Vfb2ZmbG9hZAogCiAKLSEgVGhlIGZvbGxvd2luZyB0 ZXN0IGNhc2UgaXMgbWFya2VkIHdpdGggJ3hmYWlsJyBiZWNhdXNlIGEgcHJldmlvdXMgJ3Nv cnJ5JyBmcm9tCi0hICdyZXZlcnNlX29mZmxvYWQnIHN1cHByZXNzZXMgdGhlICdzb3JyeScg Zm9yICdhbmNlc3RvcicuCi0KLSEkb21wIHRhcmdldCBkZXZpY2UgKGFuY2VzdG9yOiAxKSAg ISB7IGRnLW1lc3NhZ2UgIiIgInNvcnJ5LCB1bmltcGxlbWVudGVkOiAnYW5jZXN0b3InIG5v dCB5ZXQgc3VwcG9ydGVkIiB7IHhmYWlsICotKi0qIH0gfQorISRvbXAgdGFyZ2V0IGRldmlj ZSAoYW5jZXN0b3I6IDEpCiAhJG9tcCBlbmQgdGFyZ2V0CiAKLSEkb21wIHRhcmdldCBkZXZp Y2UgKGFuY2VzdG9yIDogYSkgICEgeyBkZy1tZXNzYWdlICIiICJzb3JyeSwgdW5pbXBsZW1l bnRlZDogJ2FuY2VzdG9yJyBub3QgeWV0IHN1cHBvcnRlZCIgeyB4ZmFpbCAqLSotKiB9IH0K KyEkb21wIHRhcmdldCBkZXZpY2UgKGFuY2VzdG9yIDogYSkKICEkb21wIGVuZCB0YXJnZXQK IAotISRvbXAgdGFyZ2V0IGRldmljZSAoYW5jZXN0b3IgOiBhICsgMSkgICEgeyBkZy1tZXNz YWdlICIiICJzb3JyeSwgdW5pbXBsZW1lbnRlZDogJ2FuY2VzdG9yJyBub3QgeWV0IHN1cHBv cnRlZCIgeyB4ZmFpbCAqLSotKiB9IH0KKyEkb21wIHRhcmdldCBkZXZpY2UgKGFuY2VzdG9y IDogYSArIDEpCiAhJG9tcCBlbmQgdGFyZ2V0CiAKIApAQCAtMzIsNjEgKzI5LDQgQEAgaW50 ZWdlciA6OiBhLCBiLCBjCiAhJG9tcCB0YXJnZXQgZGV2aWNlICg0MikKICEkb21wIGVuZCB0 YXJnZXQKIAotCi0hIEVuc3VyZSB0aGF0IG5vIE9wZW5NUCBjb25zdHJ1Y3RzIGFwcGVhciBp bnNpZGUgdGFyZ2V0IHJlZ2lvbnMgd2l0aCAnYW5jZXN0b3InLgotISBUaGUgZm9sbG93aW5n IHRlc3QgY2FzZSBpcyBtYXJrZWQgd2l0aCAneGZhaWwnIGJlY2F1c2UgYSBwcmV2aW91cyAn c29ycnknIGZyb20KLSEgJ3JldmVyc2Vfb2ZmbG9hZCcgc3VwcHJlc3NlcyB0aGUgJ3NvcnJ5 JyBmb3IgJ2FuY2VzdG9yJy4KLQotISRvbXAgdGFyZ2V0IGRldmljZSAoYW5jZXN0b3I6IDEp Ci0gICEkb21wIHRlYW1zICAhIHsgZGctZXJyb3IgIiIgIk9wZW5NUCBjb25zdHJ1Y3RzIGFy ZSBub3QgYWxsb3dlZCBpbiB0YXJnZXQgcmVnaW9uIHdpdGggJ2FuY2VzdG9yJyIgeyB4ZmFp bCAqLSotKiB9IH0KLSAgISRvbXAgZW5kIHRlYW1zCi0hJG9tcCBlbmQgdGFyZ2V0Ci0KLSEk b21wIHRhcmdldCBkZXZpY2UgKGRldmljZV9udW06IDEpCi0gICEkb21wIHRlYW1zCi0gICEk b21wIGVuZCB0ZWFtcwotISRvbXAgZW5kIHRhcmdldAotCi0hJG9tcCB0YXJnZXQgZGV2aWNl ICgxKQotICAhJG9tcCB0ZWFtcwotICAhJG9tcCBlbmQgdGVhbXMKLSEkb21wIGVuZCB0YXJn ZXQKLQotCi0hIEVuc3VyZSB0aGF0IHdpdGggJ2FuY2VzdG9yJyBvbmx5IHRoZSAnZGV2aWNl JywgJ2ZpcnN0cHJpdmF0ZScsICdwcml2YXRlJywKLSEgJ2RlZmF1bHRtYXAnLCBhbmQgJ21h cCcgY2xhdXNlcyBhcHBlYXIgb24gdGhlIGNvbnN0cnVjdC4KLSEgVGhlIGZvbGxvd2luZyB0 ZXN0IGNhc2UgaXMgbWFya2VkIHdpdGggJ3hmYWlsJyBiZWNhdXNlIGEgcHJldmlvdXMgJ3Nv cnJ5JyBmcm9tCi0hICdyZXZlcnNlX29mZmxvYWQnIHN1cHByZXNzZXMgdGhlICdzb3JyeScg Zm9yICdhbmNlc3RvcicuCi0KLSEkb21wIHRhcmdldCBub3dhaXQgZGV2aWNlIChhbmNlc3Rv cjogMSkgICEgeyBkZy1lcnJvciAiIiAid2l0aCAnYW5jZXN0b3InLCBvbmx5IHRoZSAnZGV2 aWNlJywgJ2ZpcnN0cHJpdmF0ZScsICdwcml2YXRlJywgJ2RlZmF1bHRtYXAnLCBhbmQgJ21h cCcgY2xhdXNlcyBtYXkgYXBwZWFyIG9uIHRoZSBjb25zdHJ1Y3QiIHsgeGZhaWwgKi0qLSog fSB9Ci0hJG9tcCBlbmQgdGFyZ2V0Ci0KLSEkb21wIHRhcmdldCBkZXZpY2UgKGFuY2VzdG9y OiAxKSBub3dhaXQgICEgeyBkZy1lcnJvciAiIiAid2l0aCAnYW5jZXN0b3InLCBvbmx5IHRo ZSAnZGV2aWNlJywgJ2ZpcnN0cHJpdmF0ZScsICdwcml2YXRlJywgJ2RlZmF1bHRtYXAnLCBh bmQgJ21hcCcgY2xhdXNlcyBtYXkgYXBwZWFyIG9uIHRoZSBjb25zdHJ1Y3QiIHsgeGZhaWwg Ki0qLSogfSB9Ci0hJG9tcCBlbmQgdGFyZ2V0Ci0KLSEkb21wIHRhcmdldCBub3dhaXQgZGV2 aWNlIChkZXZpY2VfbnVtOiAxKQotISRvbXAgZW5kIHRhcmdldAotCi0hJG9tcCB0YXJnZXQg bm93YWl0IGRldmljZSAoMSkKLSEkb21wIGVuZCB0YXJnZXQKLQotISRvbXAgdGFyZ2V0IGRl dmljZSAoYW5jZXN0b3I6IDEpIGZpcnN0cHJpdmF0ZSAoYSkgcHJpdmF0ZSAoYikgZGVmYXVs dG1hcCAobm9uZSkgbWFwIChjKQotISRvbXAgZW5kIHRhcmdldAotCi0KLSEgRW5zdXJlIHRo YXQgJ2FuY2VzdG9yJyBpcyBvbmx5IHVzZWQgd2l0aCAndGFyZ2V0JyBjb25zdHJ1Y3RzIChu b3Qgd2l0aAotISAndGFyZ2V0IGRhdGEnLCAndGFyZ2V0IHVwZGF0ZScgZXRjLikuCi0hIFRo ZSBmb2xsb3dpbmcgdGVzdCBjYXNlIGlzIG1hcmtlZCB3aXRoICd4ZmFpbCcgYmVjYXVzZSBh IHByZXZpb3VzICdzb3JyeScgZnJvbQotISAncmV2ZXJzZV9vZmZsb2FkJyBzdXBwcmVzc2Vz IHRoZSAnc29ycnknIGZvciAnYW5jZXN0b3InLgotCi0hJG9tcCB0YXJnZXQgZGF0YSBtYXAg KGEpIGRldmljZSAoYW5jZXN0b3I6IDEpICAhIHsgZGctZXJyb3IgIiIgIidkZXZpY2UnIGNs YXVzZSB3aXRoICdhbmNlc3RvcicgaXMgb25seSBhbGxvd2VkIG9uICd0YXJnZXQnIGNvbnN0 cnVjdCIgeyB4ZmFpbCAqLSotKiB9IH0KLSEkb21wIGVuZCB0YXJnZXQgZGF0YQotCi0hJG9t cCB0YXJnZXQgZW50ZXIgZGF0YSBtYXAgKHRvOiBhKSBkZXZpY2UgKGFuY2VzdG9yOiAxKSAg ISB7IGRnLWVycm9yICIiICInZGV2aWNlJyBjbGF1c2Ugd2l0aCAnYW5jZXN0b3InIGlzIG9u bHkgYWxsb3dlZCBvbiAndGFyZ2V0JyBjb25zdHJ1Y3QiIHsgeGZhaWwgKi0qLSogfSB9Ci0h JG9tcCB0YXJnZXQgZXhpdCBkYXRhIG1hcCAoZnJvbTogYSkgZGV2aWNlIChhbmNlc3Rvcjog MSkgICEgeyBkZy1lcnJvciAiIiAiJ2RldmljZScgY2xhdXNlIHdpdGggJ2FuY2VzdG9yJyBp cyBvbmx5IGFsbG93ZWQgb24gJ3RhcmdldCcgY29uc3RydWN0IiB7IHhmYWlsICotKi0qIH0g fQotCi0hJG9tcCB0YXJnZXQgdXBkYXRlIHRvIChhKSBkZXZpY2UgKGFuY2VzdG9yOiAxKSAg ISB7IGRnLWVycm9yICInZGV2aWNlJyBjbGF1c2Ugd2l0aCAnYW5jZXN0b3InIGlzIG9ubHkg YWxsb3dlZCBvbiAndGFyZ2V0JyBjb25zdHJ1Y3QiICIiIHsgeGZhaWwgKi0qLSogfSB9Ci0h IHsgZGctZXJyb3IgIndpdGggJ2FuY2VzdG9yJywgb25seSB0aGUgJ2RldmljZScsICdmaXJz dHByaXZhdGUnLCAncHJpdmF0ZScsICdkZWZhdWx0bWFwJywgYW5kICdtYXAnIGNsYXVzZXMg bWF5IGFwcGVhciBvbiB0aGUgY29uc3RydWN0IiAiIiB7IHhmYWlsICotKi0qIH0gLi0xIH0K LQotCi1lbmQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitlbmQKZGlmZiAtLWdpdCBh L2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC90YXJnZXQtZGV2aWNlLWFuY2VzdG9y LTJhLmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC90YXJnZXQtZGV2aWNl LWFuY2VzdG9yLTJhLmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uZmViNzZmZTIxNDQKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0 cmFuLmRnL2dvbXAvdGFyZ2V0LWRldmljZS1hbmNlc3Rvci0yYS5mOTAKQEAgLTAsMCArMSw4 MCBAQAorISB7IGRnLWRvIGNvbXBpbGUgfQorCitpbXBsaWNpdCBub25lCisKK2ludGVnZXIg OjogYSwgYiwgYworCishJG9tcCByZXF1aXJlcyByZXZlcnNlX29mZmxvYWQKKworISRvbXAg dGFyZ2V0IGRldmljZSAoYW5jZXN0b3I6IDEpCishJG9tcCBlbmQgdGFyZ2V0CisKKyEkb21w IHRhcmdldCBkZXZpY2UgKGFuY2VzdG9yIDogYSkKKyEkb21wIGVuZCB0YXJnZXQKKworISRv bXAgdGFyZ2V0IGRldmljZSAoYW5jZXN0b3IgOiBhICsgMSkKKyEkb21wIGVuZCB0YXJnZXQK KworCishJG9tcCB0YXJnZXQgZGV2aWNlIChkZXZpY2VfbnVtOjQyKQorISRvbXAgZW5kIHRh cmdldAorCishJG9tcCB0YXJnZXQgZGV2aWNlICg0MikKKyEkb21wIGVuZCB0YXJnZXQKKwor CishIEVuc3VyZSB0aGF0IG5vIE9wZW5NUCBjb25zdHJ1Y3RzIGFwcGVhciBpbnNpZGUgdGFy Z2V0IHJlZ2lvbnMgd2l0aCAnYW5jZXN0b3InLgorCishJG9tcCB0YXJnZXQgZGV2aWNlIChh bmNlc3RvcjogMSkKKyAgISRvbXAgdGVhbXMgICEgeyBkZy1lcnJvciAiT3Blbk1QIGNvbnN0 cnVjdHMgYXJlIG5vdCBhbGxvd2VkIGluIHRhcmdldCByZWdpb24gd2l0aCAnYW5jZXN0b3In IiB9CisgICEkb21wIGVuZCB0ZWFtcworISRvbXAgZW5kIHRhcmdldAorCishJG9tcCB0YXJn ZXQgZGV2aWNlIChkZXZpY2VfbnVtOiAxKQorICAhJG9tcCB0ZWFtcworICAhJG9tcCBlbmQg dGVhbXMKKyEkb21wIGVuZCB0YXJnZXQKKworISRvbXAgdGFyZ2V0IGRldmljZSAoMSkKKyAg ISRvbXAgdGVhbXMKKyAgISRvbXAgZW5kIHRlYW1zCishJG9tcCBlbmQgdGFyZ2V0CisKKwor ISBFbnN1cmUgdGhhdCB3aXRoICdhbmNlc3Rvcicgb25seSB0aGUgJ2RldmljZScsICdmaXJz dHByaXZhdGUnLCAncHJpdmF0ZScsCishICdkZWZhdWx0bWFwJywgYW5kICdtYXAnIGNsYXVz ZXMgYXBwZWFyIG9uIHRoZSBjb25zdHJ1Y3QuCisKKyEkb21wIHRhcmdldCBub3dhaXQgZGV2 aWNlIChhbmNlc3RvcjogMSkgICEgeyBkZy1lcnJvciAid2l0aCAnYW5jZXN0b3InLCBvbmx5 IHRoZSAnZGV2aWNlJywgJ2ZpcnN0cHJpdmF0ZScsICdwcml2YXRlJywgJ2RlZmF1bHRtYXAn LCBhbmQgJ21hcCcgY2xhdXNlcyBtYXkgYXBwZWFyIG9uIHRoZSBjb25zdHJ1Y3QiIH0KKyEk b21wIGVuZCB0YXJnZXQKKworISRvbXAgdGFyZ2V0IGRldmljZSAoYW5jZXN0b3I6IDEpIG5v d2FpdCAgISB7IGRnLWVycm9yICJ3aXRoICdhbmNlc3RvcicsIG9ubHkgdGhlICdkZXZpY2Un LCAnZmlyc3Rwcml2YXRlJywgJ3ByaXZhdGUnLCAnZGVmYXVsdG1hcCcsIGFuZCAnbWFwJyBj bGF1c2VzIG1heSBhcHBlYXIgb24gdGhlIGNvbnN0cnVjdCIgfQorISRvbXAgZW5kIHRhcmdl dAorCishJG9tcCB0YXJnZXQgbm93YWl0IGRldmljZSAoZGV2aWNlX251bTogMSkKKyEkb21w IGVuZCB0YXJnZXQKKworISRvbXAgdGFyZ2V0IG5vd2FpdCBkZXZpY2UgKDEpCishJG9tcCBl bmQgdGFyZ2V0CisKKyEkb21wIHRhcmdldCBkZXZpY2UgKGFuY2VzdG9yOiAxKSBmaXJzdHBy aXZhdGUgKGEpIHByaXZhdGUgKGIpIGRlZmF1bHRtYXAgKG5vbmUpIG1hcCAoYykKKyEkb21w IGVuZCB0YXJnZXQKKworCishIEVuc3VyZSB0aGF0ICdhbmNlc3RvcicgaXMgb25seSB1c2Vk IHdpdGggJ3RhcmdldCcgY29uc3RydWN0cyAobm90IHdpdGgKKyEgJ3RhcmdldCBkYXRhJywg J3RhcmdldCB1cGRhdGUnIGV0Yy4pLgorISBUaGUgZm9sbG93aW5nIHRlc3QgY2FzZSBpcyBt YXJrZWQgd2l0aCAneGZhaWwnIGJlY2F1c2UgYSBwcmV2aW91cyAnc29ycnknIGZyb20KKyEg J3JldmVyc2Vfb2ZmbG9hZCcgc3VwcHJlc3NlcyB0aGUgJ3NvcnJ5JyBmb3IgJ2FuY2VzdG9y Jy4KKworISRvbXAgdGFyZ2V0IGRhdGEgbWFwIChhKSBkZXZpY2UgKGFuY2VzdG9yOiAxKSAg ISB7IGRnLWVycm9yICInZGV2aWNlJyBjbGF1c2Ugd2l0aCAnYW5jZXN0b3InIGlzIG9ubHkg YWxsb3dlZCBvbiAndGFyZ2V0JyBjb25zdHJ1Y3QiIH0KKyEkb21wIGVuZCB0YXJnZXQgZGF0 YQorCishJG9tcCB0YXJnZXQgZW50ZXIgZGF0YSBtYXAgKHRvOiBhKSBkZXZpY2UgKGFuY2Vz dG9yOiAxKSAgISB7IGRnLWVycm9yICInZGV2aWNlJyBjbGF1c2Ugd2l0aCAnYW5jZXN0b3In IGlzIG9ubHkgYWxsb3dlZCBvbiAndGFyZ2V0JyBjb25zdHJ1Y3QiIH0KKyEkb21wIHRhcmdl dCBleGl0IGRhdGEgbWFwIChmcm9tOiBhKSBkZXZpY2UgKGFuY2VzdG9yOiAxKSAgISB7IGRn LWVycm9yICInZGV2aWNlJyBjbGF1c2Ugd2l0aCAnYW5jZXN0b3InIGlzIG9ubHkgYWxsb3dl ZCBvbiAndGFyZ2V0JyBjb25zdHJ1Y3QiIH0KKworISRvbXAgdGFyZ2V0IHVwZGF0ZSB0byAo YSkgZGV2aWNlIChhbmNlc3RvcjogMSkgICEgeyBkZy1lcnJvciAiJ2RldmljZScgY2xhdXNl IHdpdGggJ2FuY2VzdG9yJyBpcyBvbmx5IGFsbG93ZWQgb24gJ3RhcmdldCcgY29uc3RydWN0 IiB9CisKKyEkb21wIHRhcmdldCBkZXZpY2UgKGFuY2VzdG9yOiAxKSBpZiguZmFsc2UuKQor ISB7IGRnLWVycm9yICJ3aXRoICdhbmNlc3RvcicsIG9ubHkgdGhlICdkZXZpY2UnLCAnZmly c3Rwcml2YXRlJywgJ3ByaXZhdGUnLCAnZGVmYXVsdG1hcCcsIGFuZCAnbWFwJyBjbGF1c2Vz IG1heSBhcHBlYXIgb24gdGhlIGNvbnN0cnVjdCIgIiIgeyB0YXJnZXQgKi0qLSogfSAuLTEg fQorISRvbXAgZW5kIHRhcmdldAorCitlbmQKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2ZvcnRyYW4uZGcvZ29tcC90YXJnZXQtZGV2aWNlLWFuY2VzdG9yLTMuZjkwIGIvZ2NjL3Rl c3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL3RhcmdldC1kZXZpY2UtYW5jZXN0b3ItMy5mOTAK aW5kZXggZjExNDViZGUyZWMuLmU4OTc1ZTZhMDhiIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1 aXRlL2dmb3J0cmFuLmRnL2dvbXAvdGFyZ2V0LWRldmljZS1hbmNlc3Rvci0zLmY5MAorKysg Yi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvdGFyZ2V0LWRldmljZS1hbmNlc3Rv ci0zLmY5MApAQCAtMTYsMTAgKzE2LDEwIEBAIHN1YnJvdXRpbmUgZjEgKCkKICAgaW1wbGlj aXQgbm9uZQogICBpbnRlZ2VyIDo6IG4KIAotICAhJG9tcCByZXF1aXJlcyByZXZlcnNlX29m ZmxvYWQgICEgeyBkZy1lcnJvciAiU29ycnksICdyZXZlcnNlX29mZmxvYWQnIGNsYXVzZSBh dCBcXCgxXFwpIG9uIFJFUVVJUkVTIGRpcmVjdGl2ZSBpcyBub3QgeWV0IHN1cHBvcnRlZCIg fQorICAhJG9tcCByZXF1aXJlcyByZXZlcnNlX29mZmxvYWQKIAogICAhJG9tcCB0YXJnZXQg ZGV2aWNlIChhbmNlc3RvciA6IDEpCi0gICAgbiA9IG9tcF9nZXRfdGhyZWFkX251bSAoKSAg ISB7IGRnLWVycm9yICIiICJPcGVuTVAgcnVudGltZSBBUEkgY2FsbCAnb21wX2dldF90aHJl YWRfbnVtJyBpbiBhIHJlZ2lvbiB3aXRoICdkZXZpY2VcXChhbmNlc3RvclxcKScgY2xhdXNl IiB7IHhmYWlsICotKi0qIH0gfQorICAgIG4gPSBvbXBfZ2V0X3RocmVhZF9udW0gKCkgICEg eyBkZy1lcnJvciAiT3Blbk1QIHJ1bnRpbWUgQVBJIGNhbGwgJ29tcF9nZXRfdGhyZWFkX251 bScgaW4gYSByZWdpb24gd2l0aCAnZGV2aWNlXFwoYW5jZXN0b3JcXCknIGNsYXVzZSIgfQog ICAhJG9tcCBlbmQgdGFyZ2V0CiAKICAgISRvbXAgdGFyZ2V0IGRldmljZSAoZGV2aWNlX251 bSA6IDEpCkBAIC0zMCw0ICszMCw0IEBAIHN1YnJvdXRpbmUgZjEgKCkKICAgICBuID0gb21w X2dldF90aHJlYWRfbnVtICgpCiAgICEkb21wIGVuZCB0YXJnZXQKIAotZW5kClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQorZW5kCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dm b3J0cmFuLmRnL2dvbXAvdGFyZ2V0LWRldmljZS1hbmNlc3Rvci00LmY5MCBiL2djYy90ZXN0 c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC90YXJnZXQtZGV2aWNlLWFuY2VzdG9yLTQuZjkwCmlu ZGV4IDYzODcyZmE1MWZiLi5hYjU2ZTJkMWQ1MiAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0 ZS9nZm9ydHJhbi5kZy9nb21wL3RhcmdldC1kZXZpY2UtYW5jZXN0b3ItNC5mOTAKKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL3RhcmdldC1kZXZpY2UtYW5jZXN0b3It NC5mOTAKQEAgLTQsMTEgKzQsMTEgQEAKICEgVGVzdCB0byBlbnN1cmUgdGhhdCBkZXZpY2Ut bW9kaWZpZXIgJ2FuY2VzdG9yJyBpcyBwYXJzZWQgY29ycmVjdGx5IGluCiAhIGRldmljZSBj bGF1c2VzLgogCi0hJG9tcCByZXF1aXJlcyByZXZlcnNlX29mZmxvYWQgICEgeyBkZy1lcnJv ciAiU29ycnksICdyZXZlcnNlX29mZmxvYWQnIGNsYXVzZSBhdCBcXCgxXFwpIG9uIFJFUVVJ UkVTIGRpcmVjdGl2ZSBpcyBub3QgeWV0IHN1cHBvcnRlZCIgfQorISRvbXAgcmVxdWlyZXMg cmV2ZXJzZV9vZmZsb2FkCiAKLSEkb21wIHRhcmdldCBkZXZpY2UgKGFuY2VzdG9yIDogMSkg ICEgeyBkZy1tZXNzYWdlICIiICJzb3JyeSwgdW5pbXBsZW1lbnRlZDogJ2FuY2VzdG9yJyBu b3QgeWV0IHN1cHBvcnRlZCIgeyB4ZmFpbCAqLSotKiB9IH0KKyEkb21wIHRhcmdldCBkZXZp Y2UgKGFuY2VzdG9yIDogMSkgICEgeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5pbXBsZW1lbnRl ZDogJ2FuY2VzdG9yJyBub3QgeWV0IHN1cHBvcnRlZCIgfQogISRvbXAgZW5kIHRhcmdldAog CiBlbmQKIAotISBUT0RPOiBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJwcmFn bWEgb21wIHRhcmdldCBcW15cblxyKV0qZGV2aWNlXFwoYW5jZXN0b3I6MVxcKSIgMSAib3Jp Z2luYWwiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgInByYWdt YSBvbXAgdGFyZ2V0IFxbXlxuXHIpXSpkZXZpY2VcXChhbmNlc3RvcjoxXFwpIiAxICJvcmln aW5hbCIgfSB9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAv dGFyZ2V0LWRldmljZS1hbmNlc3Rvci01LmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4u ZGcvZ29tcC90YXJnZXQtZGV2aWNlLWFuY2VzdG9yLTUuZjkwCmluZGV4IDA2YTExZWI1MDky Li5jYThkNGIyODJhMCAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9n b21wL3RhcmdldC1kZXZpY2UtYW5jZXN0b3ItNS5mOTAKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Zm9ydHJhbi5kZy9nb21wL3RhcmdldC1kZXZpY2UtYW5jZXN0b3ItNS5mOTAKQEAgLTYsNyAr Niw3IEBACiAhCiAKIG1vZHVsZSBtCi0gICEkb21wIHJlcXVpcmVzIHJldmVyc2Vfb2ZmbG9h ZCAgISB7IGRnLWVycm9yICJSRVFVSVJFUyBkaXJlY3RpdmUgaXMgbm90IHlldCBzdXBwb3J0 ZWQiIH0KKyAgISRvbXAgcmVxdWlyZXMgcmV2ZXJzZV9vZmZsb2FkCiBjb250YWlucwogICBz dWJyb3V0aW5lIGZvbygpCiAgICAgISRvbXAgdGFyZ2V0IGRldmljZShhbmNlc3RvcjoxKQpA QCAtMTcsNyArMTcsNyBAQCBjb250YWlucwogICAgIGJsb2NrCiAgICAgICBibG9jawogICAg ICAgICBibG9jawotICAgICAgICAgICEkb21wIHRhcmdldCBkZXZpY2UoYW5jZXN0b3I6MSkK KyAgICAgICAgICAhJG9tcCB0YXJnZXQgZGV2aWNlKGFuY2VzdG9yOjEpICAhIHsgZGctbWVz c2FnZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6ICdhbmNlc3Rvcicgbm90IHlldCBzdXBwb3J0 ZWQiIH0KICAgICAgICAgICAhJG9tcCBlbmQgdGFyZ2V0CiAgICAgICAgIGVuZCBibG9jawog ICAgICAgZW5kIGJsb2NrCkBAIC0yNiw3ICsyNiw3IEBAIGNvbnRhaW5zCiBlbmQgbW9kdWxl IG0KIAogc3Vicm91dGluZSBmb28oKQotICAhJG9tcCByZXF1aXJlcyByZXZlcnNlX29mZmxv YWQgICEgeyBkZy1lcnJvciAiUkVRVUlSRVMgZGlyZWN0aXZlIGlzIG5vdCB5ZXQgc3VwcG9y dGVkIiB9CisgICEkb21wIHJlcXVpcmVzIHJldmVyc2Vfb2ZmbG9hZAogICBibG9jawogICAg IGJsb2NrCiAgICAgICBibG9jawpAQCAtNDksNyArNDksNyBAQCBjb250YWlucwogZW5kIHN1 YnJvdXRpbmUgZm9vCiAKIHByb2dyYW0gbWFpbgotICAhJG9tcCByZXF1aXJlcyByZXZlcnNl X29mZmxvYWQgICEgeyBkZy1lcnJvciAiUkVRVUlSRVMgZGlyZWN0aXZlIGlzIG5vdCB5ZXQg c3VwcG9ydGVkIiB9CisgICEkb21wIHJlcXVpcmVzIHJldmVyc2Vfb2ZmbG9hZAogY29udGFp bnMKICAgc3Vicm91dGluZSBmb28oKQogICAgICEkb21wIHRhcmdldCBkZXZpY2UoYW5jZXN0 b3I6MSkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZ29tcC1jb25zdGFudHMuaCBiL2luY2x1ZGUv Z29tcC1jb25zdGFudHMuaAppbmRleCBlNGRkOGVmM2UxZC4uNWFhYjE4M2M2OWEgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvZ29tcC1jb25zdGFudHMuaAorKysgYi9pbmNsdWRlL2dvbXAtY29u c3RhbnRzLmgKQEAgLTI4Miw3ICsyODIsNyBAQCBlbnVtIGdvbXBfbWFwX2tpbmQKIC8qIFZl cnNpb25zIG9mIGxpYmdvbXAgYW5kIGRldmljZS1zcGVjaWZpYyBwbHVnaW5zLiAgR09NUF9W RVJTSU9OCiAgICBzaG91bGQgYmUgaW5jcmVtZW50ZWQgd2hlbmV2ZXIgYW4gQUJJLWluY29t cGF0aWJsZSBjaGFuZ2UgaXMgaW50cm9kdWNlZAogICAgdG8gdGhlIHBsdWdpbiBpbnRlcmZh Y2UgZGVmaW5lZCBpbiBsaWJnb21wL2xpYmdvbXAuaC4gICovCi0jZGVmaW5lIEdPTVBfVkVS U0lPTgkxCisjZGVmaW5lIEdPTVBfVkVSU0lPTgkyCiAjZGVmaW5lIEdPTVBfVkVSU0lPTl9O VklESUFfUFRYIDEKICNkZWZpbmUgR09NUF9WRVJTSU9OX0lOVEVMX01JQyAwCiAjZGVmaW5l IEdPTVBfVkVSU0lPTl9HQ04gMgpAQCAtMzQxLDYgKzM0MSwxMiBAQCBlbnVtIGdvbXBfbWFw X2tpbmQKICNkZWZpbmUgR09NUF9ERVBFTkRfTVVURVhJTk9VVFNFVAk0CiAjZGVmaW5lIEdP TVBfREVQRU5EX0lOT1VUU0VUCQk1CiAKKy8qIEZsYWcgdmFsdWVzIGZvciByZXF1aXJlcy1k aXJlY3RpdmUgZmVhdHVyZXMsIG11c3QgbWF0Y2ggY29ycmVzcG9uZGluZworICAgT01QX1JF UVVJUkVTXyogdmFsdWVzIGluIGdjYy9vbXAtZ2VuZXJhbC5oLiAgKi8KKyNkZWZpbmUgR09N UF9SRVFVSVJFU19VTklGSUVEX0FERFJFU1MgICAgICAgMHgxMAorI2RlZmluZSBHT01QX1JF UVVJUkVTX1VOSUZJRURfU0hBUkVEX01FTU9SWSAweDIwCisjZGVmaW5lIEdPTVBfUkVRVUlS RVNfUkVWRVJTRV9PRkZMT0FEICAgICAgIDB4ODAKKwogLyogSFNBIHNwZWNpZmljIGRhdGEg c3RydWN0dXJlcy4gICovCiAKIC8qIElkZW50aWZpZXJzIG9mIGRldmljZS1zcGVjaWZpYyB0 YXJnZXQgYXJndW1lbnRzLiAgKi8KZGlmZiAtLWdpdCBhL2xpYmdvbXAvbGliZ29tcC1wbHVn aW4uaCBiL2xpYmdvbXAvbGliZ29tcC1wbHVnaW4uaAppbmRleCAwN2FiNzAwYjgwYy4uYWIz ZWQ2Mzg0NzUgMTAwNjQ0Ci0tLSBhL2xpYmdvbXAvbGliZ29tcC1wbHVnaW4uaAorKysgYi9s aWJnb21wL2xpYmdvbXAtcGx1Z2luLmgKQEAgLTEyNSw3ICsxMjUsNyBAQCBleHRlcm4gdm9p ZCBHT01QX1BMVUdJTl9mYXRhbCAoY29uc3QgY2hhciAqLCAuLi4pCiBleHRlcm4gY29uc3Qg Y2hhciAqR09NUF9PRkZMT0FEX2dldF9uYW1lICh2b2lkKTsKIGV4dGVybiB1bnNpZ25lZCBp bnQgR09NUF9PRkZMT0FEX2dldF9jYXBzICh2b2lkKTsKIGV4dGVybiBpbnQgR09NUF9PRkZM T0FEX2dldF90eXBlICh2b2lkKTsKLWV4dGVybiBpbnQgR09NUF9PRkZMT0FEX2dldF9udW1f ZGV2aWNlcyAodm9pZCk7CitleHRlcm4gaW50IEdPTVBfT0ZGTE9BRF9nZXRfbnVtX2Rldmlj ZXMgKHVuc2lnbmVkIGludCk7CiBleHRlcm4gYm9vbCBHT01QX09GRkxPQURfaW5pdF9kZXZp Y2UgKGludCk7CiBleHRlcm4gYm9vbCBHT01QX09GRkxPQURfZmluaV9kZXZpY2UgKGludCk7 CiBleHRlcm4gdW5zaWduZWQgR09NUF9PRkZMT0FEX3ZlcnNpb24gKHZvaWQpOwpkaWZmIC0t Z2l0IGEvbGliZ29tcC9saWJnb21wLnRleGkgYi9saWJnb21wL2xpYmdvbXAudGV4aQppbmRl eCAyYzQ2MjJjMTA5Mi4uYzEyYmRkOGJkMjggMTAwNjQ0Ci0tLSBhL2xpYmdvbXAvbGliZ29t cC50ZXhpCisrKyBiL2xpYmdvbXAvbGliZ29tcC50ZXhpCkBAIC0xODksOCArMTg5LDggQEAg VGhlIE9wZW5NUCA0LjUgc3BlY2lmaWNhdGlvbiBpcyBmdWxseSBzdXBwb3J0ZWQuCiAgICAg ICBlbnYgdmFyaWFibGUgQHRhYiBZIEB0YWIKIEBpdGVtIE5lc3RlZC1wYXJhbGxlbCBjaGFu Z2VzIHRvIEBlbXBoe21heC1hY3RpdmUtbGV2ZWxzLXZhcn0gSUNWIEB0YWIgWSBAdGFiCiBA aXRlbSBAY29kZXtyZXF1aXJlc30gZGlyZWN0aXZlIEB0YWIgUAotICAgICAgQHRhYiBPbmx5 IGZ1bGZpbGxhYmxlIHJlcXVpcmVtZW50IGFyZSBAY29kZXthdG9taWNfZGVmYXVsdF9tZW1f b3JkZXJ9Ci0gICAgICBhbmQgQGNvZGV7ZHluYW1pY19hbGxvY2F0b3JzfQorICAgICAgQHRh YiBjb21wbGV0ZSBidXQgbm8gbm9uLWhvc3QgZGV2aWNlcyBwcm92aWRlcyBAY29kZXt1bmlm aWVkX2FkZHJlc3N9LAorICAgICAgQGNvZGV7dW5pZmllZF9zaGFyZWRfbWVtb3J5fSBvciBA Y29kZXtyZXZlcnNlX29mZmxvYWR9CiBAaXRlbSBAY29kZXt0ZWFtc30gY29uc3RydWN0IG91 dHNpZGUgYW4gZW5jbG9zaW5nIHRhcmdldCByZWdpb24gQHRhYiBZIEB0YWIKIEBpdGVtIE5v bi1yZWN0YW5ndWxhciBsb29wIG5lc3RzIEB0YWIgWSBAdGFiCiBAaXRlbSBAY29kZXshPX0g YXMgcmVsYXRpb25hbC1vcCBpbiBjYW5vbmljYWwgbG9vcCBmb3JtIGZvciBDL0MrKyBAdGFi IFkgQHRhYgpAQCAtMzQ0LDYgKzM0NCw4IEBAIFRoZSBPcGVuTVAgNC41IHNwZWNpZmljYXRp b24gaXMgZnVsbHkgc3VwcG9ydGVkLgogQGl0ZW0gQGNvZGV7dW5jb25zdHJhaW5lZH0gYW5k IEBjb2Rle3JlcHJvZHVjaWJsZX0gbW9kaWZpZXJzIG9uIEBjb2Rle29yZGVyfQogICAgICAg Y2xhdXNlIEB0YWIgWSBAdGFiCiBAaXRlbSBTdXBwb3J0IEBjb2Rle2JlZ2luL2VuZCBkZWNs YXJlIHRhcmdldH0gc3ludGF4IGluIEMvQysrIEB0YWIgTiBAdGFiCitAaXRlbSBQb2ludGVy IHByZWRldGVybWluZWQgZmlyc3Rwcml2YXRlIGdldHRpbmcgaW5pdGlhbGl6ZWQKK3RvIGFk ZHJlc3Mgb2YgbWF0Y2hpbmcgbWFwcGVkIGxpc3QgaXRlbSBwZXIgNS4xLCBTZWN0LiAyLjIx LjcuMiBAdGFiIE4gQHRhYgogQGVuZCBtdWx0aXRhYmxlCiAKIApAQCAtMzYxLDcgKzM2Myw3 IEBAIFRoZSBPcGVuTVAgNC41IHNwZWNpZmljYXRpb24gaXMgZnVsbHkgc3VwcG9ydGVkLgog QGl0ZW0gQ2xhdXNlcyBvbiBAY29kZXtlbmR9IGRpcmVjdGl2ZSBjYW4gYmUgb24gZGlyZWN0 aXZlIEB0YWIgTiBAdGFiCiBAaXRlbSBEZXByZWNhdGlvbiBvZiBuby1hcmd1bWVudCBAY29k ZXtkZXN0cm95fSBjbGF1c2Ugb24gQGNvZGV7ZGVwb2JqfQogICAgICAgQHRhYiBOIEB0YWIK LUBpdGVtIEBjb2Rle2xpbmVhcn0gY2xhdXNlIHN5bnRheCBjaGFuZ2VzIGFuZCBAY29kZXtz dGVwfSBtb2RpZmllciBAdGFiIE4gQHRhYgorQGl0ZW0gQGNvZGV7bGluZWFyfSBjbGF1c2Ug c3ludGF4IGNoYW5nZXMgYW5kIEBjb2Rle3N0ZXB9IG1vZGlmaWVyIEB0YWIgUCBAdGFiIG9u bHkgQy9DKysKIEBpdGVtIERlcHJlY2F0aW9uIG9mIG1pbnVzIG9wZXJhdG9yIGZvciByZWR1 Y3Rpb25zIEB0YWIgTiBAdGFiCiBAaXRlbSBEZXByZWNhdGlvbiBvZiBzZXBhcmF0aW5nIEBj b2Rle21hcH0gbW9kaWZpZXJzIHdpdGhvdXQgY29tbWEgQHRhYiBOIEB0YWIKIEBpdGVtIEBj b2Rle2RlY2xhcmUgbWFwcGVyfSB3aXRoIGl0ZXJhdG9yIGFuZCBAY29kZXtwcmVzZW50fSBt b2RpZmllcnMKZGlmZiAtLWdpdCBhL2xpYmdvbXAvb2FjYy1ob3N0LmMgYi9saWJnb21wL29h Y2MtaG9zdC5jCmluZGV4IDViYjg4OTkyNmQzLi5lYjExYjljZjE2YSAxMDA2NDQKLS0tIGEv bGliZ29tcC9vYWNjLWhvc3QuYworKysgYi9saWJnb21wL29hY2MtaG9zdC5jCkBAIC01NCw3 ICs1NCw3IEBAIGhvc3RfZ2V0X3R5cGUgKHZvaWQpCiB9CiAKIHN0YXRpYyBpbnQKLWhvc3Rf Z2V0X251bV9kZXZpY2VzICh2b2lkKQoraG9zdF9nZXRfbnVtX2RldmljZXMgKHVuc2lnbmVk IGludCBvbXBfcmVxdWlyZXNfbWFzayBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSkKIHsKICAg cmV0dXJuIDE7CiB9CkBAIC0yMjksNyArMjI5LDcgQEAgaG9zdF9vcGVuYWNjX2dldF9wcm9w ZXJ0eSAoaW50IG4sIGVudW0gZ29hY2NfcHJvcGVydHkgcHJvcCkKIHsKICAgdW5pb24gZ29h Y2NfcHJvcGVydHlfdmFsdWUgbnVsbHZhbCA9IHsgLnZhbCA9IDAgfTsKIAotICBpZiAobiA+ PSBob3N0X2dldF9udW1fZGV2aWNlcyAoKSkKKyAgaWYgKG4gPj0gaG9zdF9nZXRfbnVtX2Rl dmljZXMgKDApKQogICAgIHJldHVybiBudWxsdmFsOwogCiAgIHN3aXRjaCAocHJvcCkKZGlm ZiAtLWdpdCBhL2xpYmdvbXAvb2FjYy1pbml0LmMgYi9saWJnb21wL29hY2MtaW5pdC5jCmlu ZGV4IDE1NjVhYTBmMjkwLi40MmMzZTc0ZTZiYSAxMDA2NDQKLS0tIGEvbGliZ29tcC9vYWNj LWluaXQuYworKysgYi9saWJnb21wL29hY2MtaW5pdC5jCkBAIC0xNDgsNyArMTQ4LDcgQEAg cmVzb2x2ZV9kZXZpY2UgKGFjY19kZXZpY2VfdCBkLCBib29sIGZhaWxfaXNfZXJyb3IpCiAJ ICAgICAgaWYgKGRpc3BhdGNoZXJzW2RdCiAJCSAgJiYgIXN0cmNhc2VjbXAgKGdvYWNjX2Rl dmljZV90eXBlLAogCQkJCSAgZ2V0X29wZW5hY2NfbmFtZSAoZGlzcGF0Y2hlcnNbZF0tPm5h bWUpKQotCQkgICYmIGRpc3BhdGNoZXJzW2RdLT5nZXRfbnVtX2RldmljZXNfZnVuYyAoKSA+ IDApCisJCSAgJiYgZGlzcGF0Y2hlcnNbZF0tPmdldF9udW1fZGV2aWNlc19mdW5jICgwKSA+ IDApCiAJCWdvdG8gZm91bmQ7CiAKIAkgICAgaWYgKGZhaWxfaXNfZXJyb3IpCkBAIC0xNjks NyArMTY5LDcgQEAgcmVzb2x2ZV9kZXZpY2UgKGFjY19kZXZpY2VfdCBkLCBib29sIGZhaWxf aXNfZXJyb3IpCiAgICAgY2FzZSBhY2NfZGV2aWNlX25vdF9ob3N0OgogICAgICAgLyogRmlu ZCB0aGUgZmlyc3QgYXZhaWxhYmxlIGRldmljZSBhZnRlciBhY2NfZGV2aWNlX25vdF9ob3N0 LiAgKi8KICAgICAgIHdoaWxlIChrbm93bl9kZXZpY2VfdHlwZV9wICgrK2QpKQotCWlmIChk aXNwYXRjaGVyc1tkXSAmJiBkaXNwYXRjaGVyc1tkXS0+Z2V0X251bV9kZXZpY2VzX2Z1bmMg KCkgPiAwKQorCWlmIChkaXNwYXRjaGVyc1tkXSAmJiBkaXNwYXRjaGVyc1tkXS0+Z2V0X251 bV9kZXZpY2VzX2Z1bmMgKDApID4gMCkKIAkgIGdvdG8gZm91bmQ7CiAgICAgICBpZiAoZF9h cmcgPT0gYWNjX2RldmljZV9kZWZhdWx0KQogCXsKQEAgLTMwMiw3ICszMDIsNyBAQCBhY2Nf aW5pdF8xIChhY2NfZGV2aWNlX3QgZCwgYWNjX2NvbnN0cnVjdF90IHBhcmVudF9jb25zdHJ1 Y3QsIGludCBpbXBsaWNpdCkKIAogICBiYXNlX2RldiA9IHJlc29sdmVfZGV2aWNlIChkLCB0 cnVlKTsKIAotICBuZGV2cyA9IGJhc2VfZGV2LT5nZXRfbnVtX2RldmljZXNfZnVuYyAoKTsK KyAgbmRldnMgPSBiYXNlX2Rldi0+Z2V0X251bV9kZXZpY2VzX2Z1bmMgKDApOwogCiAgIGlm IChuZGV2cyA8PSAwIHx8IGdvYWNjX2RldmljZV9udW0gPj0gbmRldnMpCiAgICAgYWNjX2Rl dl9udW1fb3V0X29mX3JhbmdlIChkLCBnb2FjY19kZXZpY2VfbnVtLCBuZGV2cyk7CkBAIC0z NTEsNyArMzUxLDcgQEAgYWNjX3NodXRkb3duXzEgKGFjY19kZXZpY2VfdCBkKQogICAvKiBH ZXQgdGhlIGJhc2UgZGV2aWNlIGZvciB0aGlzIGRldmljZSB0eXBlLiAgKi8KICAgYmFzZV9k ZXYgPSByZXNvbHZlX2RldmljZSAoZCwgdHJ1ZSk7CiAKLSAgbmRldnMgPSBiYXNlX2Rldi0+ Z2V0X251bV9kZXZpY2VzX2Z1bmMgKCk7CisgIG5kZXZzID0gYmFzZV9kZXYtPmdldF9udW1f ZGV2aWNlc19mdW5jICgwKTsKIAogICAvKiBVbmxvYWQgYWxsIHRoZSBkZXZpY2VzIG9mIHRo aXMgdHlwZSB0aGF0IGhhdmUgYmVlbiBvcGVuZWQuICAqLwogICBmb3IgKGkgPSAwOyBpIDwg bmRldnM7IGkrKykKQEAgLTUyMCw3ICs1MjAsNyBAQCBnb2FjY19hdHRhY2hfaG9zdF90aHJl YWRfdG9fZGV2aWNlIChpbnQgb3JkKQogICAgICAgYmFzZV9kZXYgPSBjYWNoZWRfYmFzZV9k ZXY7CiAgICAgfQogICAKLSAgbnVtX2RldmljZXMgPSBiYXNlX2Rldi0+Z2V0X251bV9kZXZp Y2VzX2Z1bmMgKCk7CisgIG51bV9kZXZpY2VzID0gYmFzZV9kZXYtPmdldF9udW1fZGV2aWNl c19mdW5jICgwKTsKICAgaWYgKG51bV9kZXZpY2VzIDw9IDAgfHwgb3JkID49IG51bV9kZXZp Y2VzKQogICAgIGFjY19kZXZfbnVtX291dF9vZl9yYW5nZSAoYWNjX2RldmljZV90eXBlIChi YXNlX2Rldi0+dHlwZSksIG9yZCwKIAkJCSAgICAgIG51bV9kZXZpY2VzKTsKQEAgLTU5OSw3 ICs1OTksNyBAQCBhY2NfZ2V0X251bV9kZXZpY2VzIChhY2NfZGV2aWNlX3QgZCkKICAgaWYg KCFhY2NfZGV2KQogICAgIHJldHVybiAwOwogCi0gIG4gPSBhY2NfZGV2LT5nZXRfbnVtX2Rl dmljZXNfZnVuYyAoKTsKKyAgbiA9IGFjY19kZXYtPmdldF9udW1fZGV2aWNlc19mdW5jICgw KTsKICAgaWYgKG4gPCAwKQogICAgIG4gPSAwOwogCkBAIC03NzksNyArNzc5LDcgQEAgYWNj X3NldF9kZXZpY2VfbnVtIChpbnQgb3JkLCBhY2NfZGV2aWNlX3QgZCkKIAogICAgICAgY2Fj aGVkX2Jhc2VfZGV2ID0gYmFzZV9kZXYgPSByZXNvbHZlX2RldmljZSAoZCwgdHJ1ZSk7CiAK LSAgICAgIG51bV9kZXZpY2VzID0gYmFzZV9kZXYtPmdldF9udW1fZGV2aWNlc19mdW5jICgp OworICAgICAgbnVtX2RldmljZXMgPSBiYXNlX2Rldi0+Z2V0X251bV9kZXZpY2VzX2Z1bmMg KDApOwogCiAgICAgICBpZiAobnVtX2RldmljZXMgPD0gMCB8fCBvcmQgPj0gbnVtX2Rldmlj ZXMpCiAgICAgICAgIGFjY19kZXZfbnVtX291dF9vZl9yYW5nZSAoZCwgb3JkLCBudW1fZGV2 aWNlcyk7CkBAIC04MTQsNyArODE0LDcgQEAgZ2V0X3Byb3BlcnR5X2FueSAoaW50IG9yZCwg YWNjX2RldmljZV90IGQsIGFjY19kZXZpY2VfcHJvcGVydHlfdCBwcm9wKQogCiAgIHN0cnVj dCBnb21wX2RldmljZV9kZXNjciAqZGV2ID0gcmVzb2x2ZV9kZXZpY2UgKGQsIHRydWUpOwog Ci0gIGludCBudW1fZGV2aWNlcyA9IGRldi0+Z2V0X251bV9kZXZpY2VzX2Z1bmMgKCk7Cisg IGludCBudW1fZGV2aWNlcyA9IGRldi0+Z2V0X251bV9kZXZpY2VzX2Z1bmMgKDApOwogCiAg IGlmIChudW1fZGV2aWNlcyA8PSAwIHx8IG9yZCA+PSBudW1fZGV2aWNlcykKICAgICBhY2Nf ZGV2X251bV9vdXRfb2ZfcmFuZ2UgKGQsIG9yZCwgbnVtX2RldmljZXMpOwpkaWZmIC0tZ2l0 IGEvbGliZ29tcC9wbHVnaW4vcGx1Z2luLWdjbi5jIGIvbGliZ29tcC9wbHVnaW4vcGx1Z2lu LWdjbi5jCmluZGV4IDFjMDQzNjg0MmRhLi5lYTMyN2JmMmNhMCAxMDA2NDQKLS0tIGEvbGli Z29tcC9wbHVnaW4vcGx1Z2luLWdjbi5jCisrKyBiL2xpYmdvbXAvcGx1Z2luL3BsdWdpbi1n Y24uYwpAQCAtMzIyMSwxMCArMzIyMSwxNCBAQCBHT01QX09GRkxPQURfdmVyc2lvbiAodm9p ZCkKIC8qIFJldHVybiB0aGUgbnVtYmVyIG9mIEdDTiBkZXZpY2VzIG9uIHRoZSBzeXN0ZW0u ICAqLwogCiBpbnQKLUdPTVBfT0ZGTE9BRF9nZXRfbnVtX2RldmljZXMgKHZvaWQpCitHT01Q X09GRkxPQURfZ2V0X251bV9kZXZpY2VzICh1bnNpZ25lZCBpbnQgb21wX3JlcXVpcmVzX21h c2spCiB7CiAgIGlmICghaW5pdF9oc2FfY29udGV4dCAoKSkKICAgICByZXR1cm4gMDsKKyAg LyogUmV0dXJuIC0xIGlmIG5vIG9tcF9yZXF1aXJlc19tYXNrIGNhbm5vdCBiZSBmdWxmaWxs ZWQgYnV0CisgICAgIGRldmljZXMgd2VyZSBwcmVzZW50LiAgKi8KKyAgaWYgKGhzYV9jb250 ZXh0LmFnZW50X2NvdW50ID4gMCAmJiBvbXBfcmVxdWlyZXNfbWFzayAhPSAwKQorICAgIHJl dHVybiAtMTsKICAgcmV0dXJuIGhzYV9jb250ZXh0LmFnZW50X2NvdW50OwogfQogCmRpZmYg LS1naXQgYS9saWJnb21wL3BsdWdpbi9wbHVnaW4tbnZwdHguYyBiL2xpYmdvbXAvcGx1Z2lu L3BsdWdpbi1udnB0eC5jCmluZGV4IDM4N2JjYmJjNTJhLi5iYzYzZTI3NGNkZiAxMDA2NDQK LS0tIGEvbGliZ29tcC9wbHVnaW4vcGx1Z2luLW52cHR4LmMKKysrIGIvbGliZ29tcC9wbHVn aW4vcGx1Z2luLW52cHR4LmMKQEAgLTExNzUsOSArMTE3NSwxNCBAQCBHT01QX09GRkxPQURf Z2V0X3R5cGUgKHZvaWQpCiB9CiAKIGludAotR09NUF9PRkZMT0FEX2dldF9udW1fZGV2aWNl cyAodm9pZCkKK0dPTVBfT0ZGTE9BRF9nZXRfbnVtX2RldmljZXMgKHVuc2lnbmVkIGludCBv bXBfcmVxdWlyZXNfbWFzaykKIHsKLSAgcmV0dXJuIG52cHR4X2dldF9udW1fZGV2aWNlcyAo KTsKKyAgaW50IG51bV9kZXZpY2VzID0gbnZwdHhfZ2V0X251bV9kZXZpY2VzICgpOworICAv KiBSZXR1cm4gLTEgaWYgbm8gb21wX3JlcXVpcmVzX21hc2sgY2Fubm90IGJlIGZ1bGZpbGxl ZCBidXQKKyAgICAgZGV2aWNlcyB3ZXJlIHByZXNlbnQuICAqLworICBpZiAobnVtX2Rldmlj ZXMgPiAwICYmIG9tcF9yZXF1aXJlc19tYXNrICE9IDApCisgICAgcmV0dXJuIC0xOworICBy ZXR1cm4gbnVtX2RldmljZXM7CiB9CiAKIGJvb2wKZGlmZiAtLWdpdCBhL2xpYmdvbXAvdGFy Z2V0LmMgYi9saWJnb21wL3RhcmdldC5jCmluZGV4IGMwODQ0ZjIyNjVhLi41YTIzYWFkOTJj OSAxMDA2NDQKLS0tIGEvbGliZ29tcC90YXJnZXQuYworKysgYi9saWJnb21wL3RhcmdldC5j CkBAIC0zNiw2ICszNiw3IEBACiAjIGluY2x1ZGUgPGludHR5cGVzLmg+ICAvKiBGb3IgUFJJ dTY0LiAgKi8KICNlbmRpZgogI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGlv Lmg+ICAvKiBGb3Igc25wcmludGYuICovCiAjaW5jbHVkZSA8YXNzZXJ0Lmg+CiAjaW5jbHVk ZSA8ZXJybm8uaD4KIApAQCAtOTgsNiArOTksOSBAQCBzdGF0aWMgaW50IG51bV9kZXZpY2Vz OwogLyogTnVtYmVyIG9mIEdPTVBfT0ZGTE9BRF9DQVBfT1BFTk1QXzQwMCBkZXZpY2VzLiAg Ki8KIHN0YXRpYyBpbnQgbnVtX2RldmljZXNfb3Blbm1wOwogCisvKiBPcGVuTVAgcmVxdWly ZXMgbWFzay4gICovCitzdGF0aWMgaW50IG9tcF9yZXF1aXJlc19tYXNrOworCiAvKiBTaW1p bGFyIHRvIGdvbXBfcmVhbGxvYywgYnV0IHJlbGVhc2UgcmVnaXN0ZXJfbG9jayBiZWZvcmUg Z29tcF9mYXRhbC4gICovCiAKIHN0YXRpYyB2b2lkICoKQEAgLTIzMTQsNiArMjMxOCwyMCBA QCBnb21wX3VubG9hZF9pbWFnZV9mcm9tX2RldmljZSAoc3RydWN0IGdvbXBfZGV2aWNlX2Rl c2NyICpkZXZpY2VwLAogICAgIH0KIH0KIAorc3RhdGljIHZvaWQKK2dvbXBfcmVxdWlyZXNf dG9fbmFtZSAoY2hhciAqYnVmLCBzaXplX3Qgc2l6ZSwgaW50IHJlcXVpcmVzX21hc2spCit7 CisgIGNoYXIgKmVuZCA9IGJ1ZiArIHNpemUsICpwID0gYnVmOworICBpZiAocmVxdWlyZXNf bWFzayAmIEdPTVBfUkVRVUlSRVNfVU5JRklFRF9BRERSRVNTKQorICAgIHAgKz0gc25wcmlu dGYgKHAsIGVuZCAtIHAsICJ1bmlmaWVkX2FkZHJlc3MiKTsKKyAgaWYgKHJlcXVpcmVzX21h c2sgJiBHT01QX1JFUVVJUkVTX1VOSUZJRURfU0hBUkVEX01FTU9SWSkKKyAgICBwICs9IHNu cHJpbnRmIChwLCBlbmQgLSBwLCAiJXN1bmlmaWVkX3NoYXJlZF9tZW1vcnkiLAorCQkgICAo cCA9PSBidWYgPyAiIiA6ICIsICIpKTsKKyAgaWYgKHJlcXVpcmVzX21hc2sgJiBHT01QX1JF UVVJUkVTX1JFVkVSU0VfT0ZGTE9BRCkKKyAgICBwICs9IHNucHJpbnRmIChwLCBlbmQgLSBw LCAiJXNyZXZlcnNlX29mZmxvYWQiLAorCQkgICAocCA9PSBidWYgPyAiIiA6ICIsICIpKTsK K30KKwogLyogVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIGZyb20gZXZlcnkgb2Zm bG9hZCBpbWFnZSB3aGlsZSBsb2FkaW5nLgogICAgSXQgZ2V0cyB0aGUgZGVzY3JpcHRvciBv ZiB0aGUgaG9zdCBmdW5jIGFuZCB2YXIgdGFibGVzIEhPU1RfVEFCTEUsIFRZUEUgb2YKICAg IHRoZSB0YXJnZXQsIGFuZCBUQVJHRVRfREFUQSBuZWVkZWQgYnkgdGFyZ2V0IHBsdWdpbi4g ICovCkBAIC0yMzIzLDExICsyMzQxLDI5IEBAIEdPTVBfb2ZmbG9hZF9yZWdpc3Rlcl92ZXIg KHVuc2lnbmVkIHZlcnNpb24sIGNvbnN0IHZvaWQgKmhvc3RfdGFibGUsCiAJCQkgICBpbnQg dGFyZ2V0X3R5cGUsIGNvbnN0IHZvaWQgKnRhcmdldF9kYXRhKQogewogICBpbnQgaTsKKyAg aW50IG9tcF9yZXEgPSBvbXBfcmVxdWlyZXNfbWFzazsKIAogICBpZiAoR09NUF9WRVJTSU9O X0xJQiAodmVyc2lvbikgPiBHT01QX1ZFUlNJT04pCiAgICAgZ29tcF9mYXRhbCAoIkxpYnJh cnkgdG9vIG9sZCBmb3Igb2ZmbG9hZCAodmVyc2lvbiAldSA8ICV1KSIsCiAJCUdPTVBfVkVS U0lPTiwgR09NUF9WRVJTSU9OX0xJQiAodmVyc2lvbikpOwotICAKKworICBpZiAoR09NUF9W RVJTSU9OX0xJQiAodmVyc2lvbikgPiAxKQorICAgIHsKKyAgICAgIG9tcF9yZXEgPSAoaW50 KSAoc2l6ZV90KSAoKHZvaWQgKiopIHRhcmdldF9kYXRhKVswXTsKKyAgICAgIHRhcmdldF9k YXRhID0gJigodm9pZCAqKikgdGFyZ2V0X2RhdGEpWzFdOworICAgICAgaWYgKG51bV9kZXZp Y2VzICYmIChvbXBfcmVxICYgfm9tcF9yZXF1aXJlc19tYXNrKSkKKwl7CisJICBjaGFyIGJ1 Zls2NF07CisJICBnb21wX3JlcXVpcmVzX3RvX25hbWUgKGJ1Ziwgc2l6ZW9mIChidWYpLAor CQkJCSBvbXBfcmVxICYgfm9tcF9yZXF1aXJlc19tYXNrKTsKKwkgIGdvbXBfZXJyb3IgKCJk ZXZpY2VzIGFscmVhZHkgaW5pdGlhbGl6ZWQgd2hlbiByZWdpc3RlcmluZyBhZGRpdGlvbmFs ICIKKwkJICAgICAgIm9mZmxvYWQgaW1hZ2VzIHRoYXQgdXNlIHRoZSBhZGRpdGlvbmFsIE9w ZW5NUCAncmVxdWlyZXMnIgorCQkgICAgICAiIGRpcmVjdGl2ZSBjbGF1c2VzICVzLiBUaGVy ZWZvcmUsIHRoZSBwcm9ncmFtIG1pZ2h0IG5vdCAiCisJCSAgICAgICJydW4gY29ycmVjdGx5 IiwgYnVmKTsKKwl9CisgICAgICBvbXBfcmVxdWlyZXNfbWFzayB8PSBvbXBfcmVxOworICAg IH0KKwogICBnb21wX211dGV4X2xvY2sgKCZyZWdpc3Rlcl9sb2NrKTsKIAogICAvKiBMb2Fk IGltYWdlIHRvIGFsbCBpbml0aWFsaXplZCBkZXZpY2VzLiAgKi8KQEAgLTQxMjUsOCArNDE2 MSwzMCBAQCBnb21wX3RhcmdldF9pbml0ICh2b2lkKQogCiAJaWYgKGdvbXBfbG9hZF9wbHVn aW5fZm9yX2RldmljZSAoJmN1cnJlbnRfZGV2aWNlLCBwbHVnaW5fbmFtZSkpCiAJICB7Ci0J ICAgIG5ld19udW1fZGV2cyA9IGN1cnJlbnRfZGV2aWNlLmdldF9udW1fZGV2aWNlc19mdW5j ICgpOwotCSAgICBpZiAobmV3X251bV9kZXZzID49IDEpCisJICAgIG5ld19udW1fZGV2cwor CSAgICAgID0gY3VycmVudF9kZXZpY2UuZ2V0X251bV9kZXZpY2VzX2Z1bmMgKG9tcF9yZXF1 aXJlc19tYXNrKTsKKwkgICAgaWYgKG5ld19udW1fZGV2cyA8IDApCisJICAgICAgeworCQli b29sIGZvdW5kID0gZmFsc2U7CisJCWludCB0eXBlID0gY3VycmVudF9kZXZpY2UuZ2V0X3R5 cGVfZnVuYyAoKTsKKwkJZm9yIChpbnQgaW1nID0gMDsgaW1nIDwgbnVtX29mZmxvYWRfaW1h Z2VzOyBpbWcrKykKKwkJICBpZiAodHlwZSA9PSBvZmZsb2FkX2ltYWdlc1tpbWddLnR5cGUp CisJCSAgICBmb3VuZCA9IHRydWU7CisJCWlmIChmb3VuZCkKKwkJICB7CisJCSAgICBjaGFy IGJ1Zls2NF07CisJCSAgICBnb21wX3JlcXVpcmVzX3RvX25hbWUgKGJ1Ziwgc2l6ZW9mIChi dWYpLAorCQkJCQkgICBvbXBfcmVxdWlyZXNfbWFzayk7CisJCSAgICBjaGFyICpuYW1lID0g KGNoYXIgKikgbWFsbG9jIChjdXJfbGVuICsgMSk7CisJCSAgICBtZW1jcHkgKG5hbWUsIGN1 ciwgY3VyX2xlbik7CisJCSAgICBuYW1lW2N1cl9sZW5dID0gJ1wwJzsKKwkJICAgIEdPTVBf UExVR0lOX2Vycm9yICgibm90ZTogJXMgZGV2aWNlcyBwcmVzZW50IGJ1dCAnb21wICIKKwkJ CQkgICAgICAgInJlcXVpcmVzICVzJyBjYW5ub3QgYmUgZnVsZmlsbGVkIiwKKwkJCQkgICAg ICAgbmFtZSwgYnVmKTsKKwkJICAgIGZyZWUgKG5hbWUpOworCQkgIH0KKwkgICAgICB9CisJ ICAgIGVsc2UgaWYgKG5ld19udW1fZGV2cyA+PSAxKQogCSAgICAgIHsKIAkJLyogQXVnbWVu dCBERVZJQ0VTIGFuZCBOVU1fREVWSUNFUy4gICovCiAKZGlmZiAtLWdpdCBhL2xpYmdvbXAv dGVzdHN1aXRlL2xpYmdvbXAuYy1jKystY29tbW9uL3JlcXVpcmVzLTEtYXV4LmMgYi9saWJn b21wL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy0xLWF1eC5jCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iZGNhNjYyZTQyZgotLS0g L2Rldi9udWxsCisrKyBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuYy1jKystY29tbW9u L3JlcXVpcmVzLTEtYXV4LmMKQEAgLTAsMCArMSwxMSBAQAorLyogeyBkZy1za2lwLWlmICIi IHsgKi0qLSogfSB9ICovCisKKyNwcmFnbWEgb21wIHJlcXVpcmVzIHVuaWZpZWRfYWRkcmVz cworCitpbnQgeDsKKwordm9pZCBmb28gKHZvaWQpCit7CisgICNwcmFnbWEgb21wIHRhcmdl dAorICB4ID0gMTsKK30KZGlmZiAtLWdpdCBhL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAu Yy1jKystY29tbW9uL3JlcXVpcmVzLTEuYyBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAu Yy1jKystY29tbW9uL3JlcXVpcmVzLTEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uZmVkZjk3Nzk3NjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJnb21wL3Rl c3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy0xLmMKQEAgLTAsMCArMSwy NCBAQAorLyogeyBkZy1kbyBsaW5rIHsgdGFyZ2V0IHsgb2ZmbG9hZF90YXJnZXRfbnZwdHgg fHwgb2ZmbG9hZF90YXJnZXRfYW1kZ2NuIH0gfSB9ICovCisvKiB7IGRnLWFkZGl0aW9uYWwt c291cmNlcyByZXF1aXJlcy0xLWF1eC5jIH0gKi8KKworLyogQ2hlY2sgZGlhZ25vc3RpYyBi eSBkZXZpY2UtY29tcGlsZXIncyBsdG8xLgorICAgT3RoZXIgZmlsZSB1c2VzOiAncmVxdWly ZXMgdW5pZmllZF9hZGRyZXNzJy4gICovCisKKyNwcmFnbWEgb21wIHJlcXVpcmVzIHVuaWZp ZWRfc2hhcmVkX21lbW9yeQorCitpbnQgYVsxMF07CitleHRlcm4gdm9pZCBmb28gKHZvaWQp OworCitpbnQKK21haW4gKHZvaWQpCit7CisgICNwcmFnbWEgb21wIHRhcmdldAorICBmb3Ig KGludCBpID0gMDsgaSA8IDEwOyBpKyspCisgICAgYVtpXSA9IDA7CisKKyAgZm9vICgpOwor ICByZXR1cm4gMDsKK30KKworLyogeyBkZy1lcnJvciAiT3Blbk1QICdyZXF1aXJlcycgZGly ZWN0aXZlIHdpdGggbm9uLWlkZW50aWNhbCBjbGF1c2VzIGluIG11bHRpcGxlIGNvbXBpbGF0 aW9uIHVuaXRzOiAndW5pZmllZF9zaGFyZWRfbWVtb3J5JyB2cy4gJ3VuaWZpZWRfYWRkcmVz cyciICIiIHsgdGFyZ2V0ICotKi0qIH0gMCB9ICAqLworLyogeyBkZy1leGNlc3MtZXJyb3Jz ICJJZ25vcmUgbWVzc2FnZXMgbGlrZTogZXJyb3JzIGR1cmluZyBtZXJnaW5nIG9mIHRyYW5z bGF0aW9uIHVuaXRzfG1rb2ZmbG9hZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzIiB9ICovCmRp ZmYgLS1naXQgYS9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1 aXJlcy0yLWF1eC5jIGIvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5jLWMrKy1jb21tb24v cmVxdWlyZXMtMi1hdXguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uNjE3NTc3NDQ4ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJnb21wL3Rlc3RzdWl0ZS9s aWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy0yLWF1eC5jCkBAIC0wLDAgKzEsOSBAQAor LyogeyBkZy1za2lwLWlmICIiIHsgKi0qLSogfSB9ICovCisKK2ludCB4OworCit2b2lkIGZv byAodm9pZCkKK3sKKyAgI3ByYWdtYSBvbXAgdGFyZ2V0CisgIHggPSAxOworfQpkaWZmIC0t Z2l0IGEvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5jLWMrKy1jb21tb24vcmVxdWlyZXMt Mi5jIGIvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5jLWMrKy1jb21tb24vcmVxdWlyZXMt Mi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hYzdmM2VmNTEy YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuYy1jKyst Y29tbW9uL3JlcXVpcmVzLTIuYwpAQCAtMCwwICsxLDI1IEBACisvKiB7IGRnLWRvIGxpbmsg eyB0YXJnZXQgb2ZmbG9hZGluZ19lbmFibGVkIH0gfSAqLworLyogeyBkZy1hZGRpdGlvbmFs LW9wdGlvbnMgIi1mb2ZmbG9hZD1kaXNhYmxlIC1mbHRvIiB9ICovCisvKiB7IGRnLWFkZGl0 aW9uYWwtc291cmNlcyByZXF1aXJlcy0yLWF1eC5jIH0gKi8KKworLyogQ2hlY2sgZGlhZ25v c3RpYyBieSBob3N0J3MgbHRvMS4KKyAgIE90aGVyIGZpbGUgZG9lcyBub3QgaGF2ZSBhbnkg J29tcCByZXF1aXJlcycuICovCisKKyNwcmFnbWEgb21wIHJlcXVpcmVzIHVuaWZpZWRfc2hh cmVkX21lbW9yeQorCitpbnQgYVsxMF07CitleHRlcm4gdm9pZCBmb28gKHZvaWQpOworCitp bnQKK21haW4gKHZvaWQpCit7CisgICNwcmFnbWEgb21wIHRhcmdldAorICBmb3IgKGludCBp ID0gMDsgaSA8IDEwOyBpKyspCisgICAgYVtpXSA9IDA7CisKKyAgZm9vICgpOworICByZXR1 cm4gMDsKK30KKworLyogeyBkZy1lcnJvciAiT3Blbk1QICdyZXF1aXJlcycgZGlyZWN0aXZl IHdpdGggbm9uLWlkZW50aWNhbCBjbGF1c2VzIGluIG11bHRpcGxlIGNvbXBpbGF0aW9uIHVu aXRzOiAndW5pZmllZF9zaGFyZWRfbWVtb3J5JyB2cy4gJyciICIiIHsgdGFyZ2V0ICotKi0q IH0gMCB9ICAqLworLyogeyBkZy1leGNlc3MtZXJyb3JzICJJZ25vcmUgbWVzc2FnZXMgbGlr ZTogZXJyb3JzIGR1cmluZyBtZXJnaW5nIG9mIHRyYW5zbGF0aW9uIHVuaXRzfG1rb2ZmbG9h ZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzIiB9ICovCmRpZmYgLS1naXQgYS9saWJnb21wL3Rl c3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy0zLWF1eC5jIGIvbGliZ29t cC90ZXN0c3VpdGUvbGliZ29tcC5jLWMrKy1jb21tb24vcmVxdWlyZXMtMy1hdXguYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYmRjYTY2MmU0MmYKLS0tIC9k ZXYvbnVsbAorKysgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9y ZXF1aXJlcy0zLWF1eC5jCkBAIC0wLDAgKzEsMTEgQEAKKy8qIHsgZGctc2tpcC1pZiAiIiB7 ICotKi0qIH0gfSAqLworCisjcHJhZ21hIG9tcCByZXF1aXJlcyB1bmlmaWVkX2FkZHJlc3MK KworaW50IHg7CisKK3ZvaWQgZm9vICh2b2lkKQoreworICAjcHJhZ21hIG9tcCB0YXJnZXQK KyAgeCA9IDE7Cit9CmRpZmYgLS1naXQgYS9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMt YysrLWNvbW1vbi9yZXF1aXJlcy0zLmMgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMt YysrLWNvbW1vbi9yZXF1aXJlcy0zLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAuLjRiMDdmZmRkMDliCi0tLSAvZGV2L251bGwKKysrIGIvbGliZ29tcC90ZXN0 c3VpdGUvbGliZ29tcC5jLWMrKy1jb21tb24vcmVxdWlyZXMtMy5jCkBAIC0wLDAgKzEsMjQg QEAKKy8qIHsgZGctZG8gbGluayB7IHRhcmdldCBvZmZsb2FkaW5nX2VuYWJsZWQgfSB9ICov CisvKiB7IGRnLWFkZGl0aW9uYWwtc291cmNlcyByZXF1aXJlcy0zLWF1eC5jIH0gKi8KKwor LyogQ2hlY2sgZGlhZ25vc3RpYyBieSBkZXZpY2UtY29tcGlsZXIncyBsdG8xLgorICAgT3Ro ZXIgZmlsZSB1c2VzOiAncmVxdWlyZXMgdW5pZmllZF9hZGRyZXNzJy4gICovCisKKyNwcmFn bWEgb21wIHJlcXVpcmVzIHVuaWZpZWRfYWRkcmVzcyx1bmlmaWVkX3NoYXJlZF9tZW1vcnkK KworaW50IGFbMTBdOworZXh0ZXJuIHZvaWQgZm9vICh2b2lkKTsKKworaW50CittYWluICh2 b2lkKQoreworICAjcHJhZ21hIG9tcCB0YXJnZXQKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCAx MDsgaSsrKQorICAgIGFbaV0gPSAwOworCisgIGZvbyAoKTsKKyAgcmV0dXJuIDA7Cit9CisK Ky8qIHsgZGctZXJyb3IgIk9wZW5NUCAncmVxdWlyZXMnIGRpcmVjdGl2ZSB3aXRoIG5vbi1p ZGVudGljYWwgY2xhdXNlcyBpbiBtdWx0aXBsZSBjb21waWxhdGlvbiB1bml0czogJ3VuaWZp ZWRfYWRkcmVzcywgdW5pZmllZF9zaGFyZWRfbWVtb3J5JyB2cy4gJ3VuaWZpZWRfYWRkcmVz cyciICIiIHsgdGFyZ2V0ICotKi0qIH0gMCB9ICAqLworLyogeyBkZy1leGNlc3MtZXJyb3Jz ICJJZ25vcmUgbWVzc2FnZXMgbGlrZTogZXJyb3JzIGR1cmluZyBtZXJnaW5nIG9mIHRyYW5z bGF0aW9uIHVuaXRzfG1rb2ZmbG9hZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzIiB9ICovCmRp ZmYgLS1naXQgYS9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1 aXJlcy00LWF1eC5jIGIvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5jLWMrKy1jb21tb24v cmVxdWlyZXMtNC1hdXguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uYjhiNTFhZThjYTcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJnb21wL3Rlc3RzdWl0ZS9s aWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy00LWF1eC5jCkBAIC0wLDAgKzEsMTMgQEAK Ky8qIHsgZGctc2tpcC1pZiAiIiB7ICotKi0qIH0gfSAqLworCisjcHJhZ21hIG9tcCByZXF1 aXJlcyByZXZlcnNlX29mZmxvYWQKKworLyogTm90ZTogVGhlIGZpbGUgZG9lcyBub3QgaGF2 ZSBuZWl0aGVyIG9mOgorICAgZGVjbGFyZSB0YXJnZXQgZGlyZWN0aXZlcywgZGV2aWNlIGNv bnN0cnVjdHMgb3IgZGV2aWNlIHJvdXRpbmVzLiAgKi8KKworaW50IHg7CisKK3ZvaWQgZm9v ICh2b2lkKQoreworICB4ID0gMTsKK30KZGlmZiAtLWdpdCBhL2xpYmdvbXAvdGVzdHN1aXRl L2xpYmdvbXAuYy1jKystY29tbW9uL3JlcXVpcmVzLTQuYyBiL2xpYmdvbXAvdGVzdHN1aXRl L2xpYmdvbXAuYy1jKystY29tbW9uL3JlcXVpcmVzLTQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uMTI4ZmRiYjg0NjMKLS0tIC9kZXYvbnVsbAorKysgYi9s aWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy00LmMKQEAg LTAsMCArMSwyMyBAQAorLyogeyBkZy1kbyBsaW5rIHsgdGFyZ2V0IG9mZmxvYWRpbmdfZW5h YmxlZCB9IH0gKi8KKy8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItZmx0byIgfSAqLwor LyogeyBkZy1hZGRpdGlvbmFsLXNvdXJjZXMgcmVxdWlyZXMtNC1hdXguYyB9ICovCisKKy8q IENoZWNrIGRpYWdub3N0aWMgYnkgZGV2aWNlLWNvbXBpbGVyJ3Mgb3IgaG9zdCBjb21waWxl cidzIGx0bzEuCisgICBPdGhlciBmaWxlIHVzZXM6ICdyZXF1aXJlcyByZXZlcnNlX29mZmxv YWQnLCBidXQgdGhhdCdzIGluYWN0aXZlIGFzCisgICB0aGVyZSBhcmUgbm8gZGVjbGFyZSB0 YXJnZXQgZGlyZWN0aXZlcywgZGV2aWNlIGNvbnN0cnVjdHMgbm9yIGRldmljZSByb3V0aW5l cyAgKi8KKworI3ByYWdtYSBvbXAgcmVxdWlyZXMgdW5pZmllZF9hZGRyZXNzLHVuaWZpZWRf c2hhcmVkX21lbW9yeQorCitpbnQgYVsxMF07CitleHRlcm4gdm9pZCBmb28gKHZvaWQpOwor CitpbnQKK21haW4gKHZvaWQpCit7CisgICNwcmFnbWEgb21wIHRhcmdldAorICBmb3IgKGlu dCBpID0gMDsgaSA8IDEwOyBpKyspCisgICAgYVtpXSA9IDA7CisKKyAgZm9vICgpOworICBy ZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuYy1j KystY29tbW9uL3JlcXVpcmVzLTUtYXV4LmMgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21w LmMtYysrLWNvbW1vbi9yZXF1aXJlcy01LWF1eC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi5kMjIzNzQ5ZjBhMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmdv bXAvdGVzdHN1aXRlL2xpYmdvbXAuYy1jKystY29tbW9uL3JlcXVpcmVzLTUtYXV4LmMKQEAg LTAsMCArMSwxMSBAQAorLyogeyBkZy1za2lwLWlmICIiIHsgKi0qLSogfSB9ICovCisKKyNw cmFnbWEgb21wIHJlcXVpcmVzIHVuaWZpZWRfc2hhcmVkX21lbW9yeSwgdW5pZmllZF9hZGRy ZXNzLCByZXZlcnNlX29mZmxvYWQKKworaW50IHg7CisKK3ZvaWQgZm9vICh2b2lkKQorewor ICAjcHJhZ21hIG9tcCB0YXJnZXQKKyAgeCA9IDE7Cit9CmRpZmYgLS1naXQgYS9saWJnb21w L3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy01LmMgYi9saWJnb21w L3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy01LmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNkMTViZGUyMWYwCi0tLSAvZGV2L251 bGwKKysrIGIvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5jLWMrKy1jb21tb24vcmVxdWly ZXMtNS5jCkBAIC0wLDAgKzEsMjAgQEAKKy8qIHsgZGctZG8gcnVuIHsgdGFyZ2V0IHsgb2Zm bG9hZF90YXJnZXRfbnZwdHggfHwgb2ZmbG9hZF90YXJnZXRfYW1kZ2NuIH0gfSB9ICovCisv KiB7IGRnLWFkZGl0aW9uYWwtc291cmNlcyByZXF1aXJlcy01LWF1eC5jIH0gKi8KKworI3By YWdtYSBvbXAgcmVxdWlyZXMgdW5pZmllZF9zaGFyZWRfbWVtb3J5LCB1bmlmaWVkX2FkZHJl c3MsIHJldmVyc2Vfb2ZmbG9hZAorCitpbnQgYVsxMF07CitleHRlcm4gdm9pZCBmb28gKHZv aWQpOworCitpbnQKK21haW4gKHZvaWQpCit7CisgICNwcmFnbWEgb21wIHRhcmdldAorICBm b3IgKGludCBpID0gMDsgaSA8IDEwOyBpKyspCisgICAgYVtpXSA9IDA7CisKKyAgZm9vICgp OworICByZXR1cm4gMDsKK30KKworLyogeyBkZy1vdXRwdXQgImRldmljZXMgcHJlc2VudCBi dXQgJ29tcCByZXF1aXJlcyB1bmlmaWVkX2FkZHJlc3MsIHVuaWZpZWRfc2hhcmVkX21lbW9y eSwgcmV2ZXJzZV9vZmZsb2FkJyBjYW5ub3QgYmUgZnVsZmlsbGVkIiB9ICovCmRpZmYgLS1n aXQgYS9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy02 LmMgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy02 LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmIwMGM3NDU5YmJj Ci0tLSAvZGV2L251bGwKKysrIGIvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5jLWMrKy1j b21tb24vcmVxdWlyZXMtNi5jCkBAIC0wLDAgKzEsMTcgQEAKKyNwcmFnbWEgb21wIHJlcXVp cmVzIHVuaWZpZWRfc2hhcmVkX21lbW9yeSwgdW5pZmllZF9hZGRyZXNzLCByZXZlcnNlX29m ZmxvYWQKKworLyogVGhlIHJlcXVpcmVzIGxpbmUgaXMgbm90IGFjdGl2ZSBhcyB0aGVyZSBp cyBub25lIG9mOgorICAgICBkZWNsYXJlIHRhcmdldCBkaXJlY3RpdmVzLCBkZXZpY2UgY29u c3RydWN0cyBvciBkZXZpY2Ugcm91dGluZXMuCisgICBUaHVzLCB0aGlzIGNvZGUgaXMgZXhw ZWN0ZWQgdG8gd29yayBldmVyeXdoZXJlLiAgKi8KKworaW50IGFbMTBdOworZXh0ZXJuIHZv aWQgZm9vICh2b2lkKTsKKworaW50CittYWluICh2b2lkKQoreworICBmb3IgKGludCBpID0g MDsgaSA8IDEwOyBpKyspCisgICAgYVtpXSA9IDA7CisKKyAgcmV0dXJuIDA7Cit9CmRpZmYg LS1naXQgYS9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJl cy03LWF1eC5jIGIvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5jLWMrKy1jb21tb24vcmVx dWlyZXMtNy1hdXguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u MDkxNmRiOGEwY2UKLS0tIC9kZXYvbnVsbAorKysgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJn b21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy03LWF1eC5jCkBAIC0wLDAgKzEsMTEgQEAKKy8q IHsgZGctc2tpcC1pZiAiIiB7ICotKi0qIH0gfSAqLworCisjcHJhZ21hIG9tcCByZXF1aXJl cyB1bmlmaWVkX2FkZHJlc3MKKworaW50IHg7CisKK3ZvaWQgZm9vICh2b2lkKQoreworICB4 ID0gMTsKKyAgI3ByYWdtYSBvbXAgdGFyZ2V0IGVudGVyIGRhdGEgbWFwKGFsd2F5cyx0bzog eCkKK30KZGlmZiAtLWdpdCBhL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuYy1jKystY29t bW9uL3JlcXVpcmVzLTcuYyBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuYy1jKystY29t bW9uL3JlcXVpcmVzLTcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uYzk0YTRjMTA4NDYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJnb21wL3Rlc3RzdWl0ZS9s aWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy03LmMKQEAgLTAsMCArMSwyNCBAQAorLyog eyBkZy1kbyBsaW5rIHsgdGFyZ2V0IHsgb2ZmbG9hZF90YXJnZXRfbnZwdHggfHwgb2ZmbG9h ZF90YXJnZXRfYW1kZ2NuIH0gfSB9ICovCisvKiB7IGRnLWFkZGl0aW9uYWwtc291cmNlcyBy ZXF1aXJlcy03LWF1eC5jIH0gKi8KKworLyogQ2hlY2sgZGlhZ25vc3RpYyBieSBkZXZpY2Ut Y29tcGlsZXIncyBsdG8xLgorICAgT3RoZXIgZmlsZSB1c2VzOiAncmVxdWlyZXMgdW5pZmll ZF9hZGRyZXNzJy4gICovCisKKyNwcmFnbWEgb21wIHJlcXVpcmVzIHVuaWZpZWRfc2hhcmVk X21lbW9yeQorCitpbnQgYVsxMF07CitleHRlcm4gdm9pZCBmb28gKHZvaWQpOworCitpbnQK K21haW4gKHZvaWQpCit7CisgICNwcmFnbWEgb21wIHRhcmdldAorICBmb3IgKGludCBpID0g MDsgaSA8IDEwOyBpKyspCisgICAgYVtpXSA9IDA7CisKKyAgZm9vICgpOworICByZXR1cm4g MDsKK30KKworLyogeyBkZy1lcnJvciAiT3Blbk1QICdyZXF1aXJlcycgZGlyZWN0aXZlIHdp dGggbm9uLWlkZW50aWNhbCBjbGF1c2VzIGluIG11bHRpcGxlIGNvbXBpbGF0aW9uIHVuaXRz OiAndW5pZmllZF9zaGFyZWRfbWVtb3J5JyB2cy4gJ3VuaWZpZWRfYWRkcmVzcyciICIiIHsg dGFyZ2V0ICotKi0qIH0gMCB9ICAqLworLyogeyBkZy1leGNlc3MtZXJyb3JzICJJZ25vcmUg bWVzc2FnZXMgbGlrZTogZXJyb3JzIGR1cmluZyBtZXJnaW5nIG9mIHRyYW5zbGF0aW9uIHVu aXRzfG1rb2ZmbG9hZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzIiB9ICovCmRpZmYgLS1naXQg YS9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vcmVxdWlyZXMtMS1hdXguZjkw IGIvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL3JlcXVpcmVzLTEtYXV4LmY5 MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTE4Y2FlYjRjNjkK LS0tIC9kZXYvbnVsbAorKysgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4v cmVxdWlyZXMtMS1hdXguZjkwCkBAIC0wLDAgKzEsMTQgQEAKKyEgeyBkZy1za2lwLWlmICIi IHsgKi0qLSogfSB9CisKK21vZHVsZSBtCisgIGludGVnZXIgeAorZW5kIG1vZHVsZSBtCisK K3N1YnJvdXRpbmUgZm9vCisgIHVzZSBtCisgIGltcGxpY2l0IG5vbmUKKyAgISRvbXAgcmVx dWlyZXMgdW5pZmllZF9hZGRyZXNzCisKKyAgeCA9IDEKKyAgISRvbXAgdGFyZ2V0IGVudGVy IGRhdGEgbWFwKGFsd2F5cyx0bzogeCkKK2VuZApkaWZmIC0tZ2l0IGEvbGliZ29tcC90ZXN0 c3VpdGUvbGliZ29tcC5mb3J0cmFuL3JlcXVpcmVzLTEuZjkwIGIvbGliZ29tcC90ZXN0c3Vp dGUvbGliZ29tcC5mb3J0cmFuL3JlcXVpcmVzLTEuZjkwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi4zMzc0MWFmMTVmMQotLS0gL2Rldi9udWxsCisrKyBiL2xp YmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi9yZXF1aXJlcy0xLmY5MApAQCAtMCww ICsxLDI2IEBACishIHsgZGctZG8gbGluayB7IHRhcmdldCB7IG9mZmxvYWRfdGFyZ2V0X252 cHR4IHx8IG9mZmxvYWRfdGFyZ2V0X2FtZGdjbiB9IH0gfQorISB7IGRnLWFkZGl0aW9uYWwt c291cmNlcyByZXF1aXJlcy0xLWF1eC5mOTAgfQorCishIENoZWNrIGRpYWdub3N0aWMgYnkg ZGV2aWNlLWNvbXBpbGVyJ3MgbHRvMS4KKyEgICBPdGhlciBmaWxlIHVzZXM6ICdyZXF1aXJl cyB1bmlmaWVkX2FkZHJlc3MnLgorCittb2R1bGUgbQorICBpbnRlZ2VyIDo6IGEoMTApCisg IGludGVyZmFjZQorICAgIHN1YnJvdXRpbmUgZm9vCisgICAgZW5kCisgIGVuZCBpbnRlcmZh Y2UKK2VuZAorCitwcm9ncmFtIG1haW4KKyAgISRvbXAgcmVxdWlyZXMgdW5pZmllZF9zaGFy ZWRfbWVtb3J5CisKKyAgISRvbXAgdGFyZ2V0CisgICAgYSA9IDAKKyAgISRvbXAgZW5kIHRh cmdldAorCisgIGNhbGwgZm9vICgpCitlbmQKKworISB7IGRnLWVycm9yICJPcGVuTVAgJ3Jl cXVpcmVzJyBkaXJlY3RpdmUgd2l0aCBub24taWRlbnRpY2FsIGNsYXVzZXMgaW4gbXVsdGlw bGUgY29tcGlsYXRpb24gdW5pdHM6ICd1bmlmaWVkX3NoYXJlZF9tZW1vcnknIHZzLiAndW5p ZmllZF9hZGRyZXNzJyIgIiIgeyB0YXJnZXQgKi0qLSogfSAwIH0KKyEgeyBkZy1leGNlc3Mt ZXJyb3JzICJJZ25vcmUgbWVzc2FnZXMgbGlrZTogZXJyb3JzIGR1cmluZyBtZXJnaW5nIG9m IHRyYW5zbGF0aW9uIHVuaXRzfG1rb2ZmbG9hZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzIiB9 CmRpZmYgLS1naXQgYS9saWJvZmZsb2FkbWljL3BsdWdpbi9saWJnb21wLXBsdWdpbi1pbnRl bG1pYy5jcHAgYi9saWJvZmZsb2FkbWljL3BsdWdpbi9saWJnb21wLXBsdWdpbi1pbnRlbG1p Yy5jcHAKaW5kZXggZDE2NzhkMDUxNGUuLjMzYmFlMDY1MGI0IDEwMDY0NAotLS0gYS9saWJv ZmZsb2FkbWljL3BsdWdpbi9saWJnb21wLXBsdWdpbi1pbnRlbG1pYy5jcHAKKysrIGIvbGli b2ZmbG9hZG1pYy9wbHVnaW4vbGliZ29tcC1wbHVnaW4taW50ZWxtaWMuY3BwCkBAIC0xNjgs OCArMTY4LDEyIEBAIEdPTVBfT0ZGTE9BRF9nZXRfdHlwZSAodm9pZCkKIH0KIAogZXh0ZXJu ICJDIiBpbnQKLUdPTVBfT0ZGTE9BRF9nZXRfbnVtX2RldmljZXMgKHZvaWQpCitHT01QX09G RkxPQURfZ2V0X251bV9kZXZpY2VzICh1bnNpZ25lZCBpbnQgb21wX3JlcXVpcmVzX21hc2sp CiB7CisgIC8qIFJldHVybiAtMSBpZiBubyBvbXBfcmVxdWlyZXNfbWFzayBjYW5ub3QgYmUg ZnVsZmlsbGVkIGJ1dAorICAgICBkZXZpY2VzIHdlcmUgcHJlc2VudC4gICovCisgIGlmIChu dW1fZGV2aWNlcyA+IDAgJiYgb21wX3JlcXVpcmVzX21hc2sgIT0gMCkKKyAgICByZXR1cm4g LTE7CiAgIFRSQUNFICgiKCk6IHJldHVybiAlZCIsIG51bV9kZXZpY2VzKTsKICAgcmV0dXJu IG51bV9kZXZpY2VzOwogfQo= --------------S6MEVNJq0D0vWpwhn0nlgvWl--