From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa4.mentor.iphmx.com (esa4.mentor.iphmx.com [68.232.137.252]) by sourceware.org (Postfix) with ESMTPS id 171143858C54 for ; Fri, 1 Jul 2022 21:08:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 171143858C54 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,238,1650960000"; d="diff'?scan'208";a="78173291" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa4.mentor.iphmx.com with ESMTP; 01 Jul 2022 13:08:23 -0800 IronPort-SDR: Wd/z0FRfCc9c2lRgJXP/Tkgyo5fZ3qQMyYTo7f00fjtK/uVh+WnXja9Nyfm6Snr3LcpnwyrjJ3 uGbLwJgE/ipw/qdsFSudVW4LRiUpKYwYIpnGeeuqjOK46PNsFuD/yUZ/SJd54lv95BsGOZE2Ow r06nlNqt65ooylMegXpmmJDn7dxEsLiF+icIFXNzwzPoVdznuo+IPRmxSvdw+hCiZ22DrjbWds gdbJTUzC0xwrs/gnw4OHw9UthTazXJbmh44jC8piRXUUC7dX4XVfSmmMN9duY9xZ1GOqtMGmgU eCQ= Content-Type: multipart/mixed; boundary="------------Cakm6JXsuOj1p9FaZ1ntldQI" Message-ID: <4d42ab12-53bd-f564-25df-2e8c890f406a@codesourcery.com> Date: Fri, 1 Jul 2022 23:08:16 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: [Patch][v5] OpenMP: Move omp requires checks to libgomp Content-Language: en-US To: Jakub Jelinek CC: gcc-patches References: <7f9c91c1-a479-f94f-ac14-1d6827ce671b@codesourcery.com> <5576fa00-0ddd-8046-17c1-d1cea82bdcf5@codesourcery.com> <77331328-4961-9dab-db58-b5b03daf218c@codesourcery.com> <16ca2aa4-7e73-cf9d-9482-dd59f5b0cdae@codesourcery.com> From: Tobias Burnus In-Reply-To: X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-05.mgc.mentorg.com (139.181.222.5) 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, NICE_REPLY_A, 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 21:08:33 -0000 --------------Cakm6JXsuOj1p9FaZ1ntldQI Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable Updated version attached =E2=80=93 I hope I got everything right, but I sta= rt to get tired, I am not 100% sure. On 01.07.22 18:55, Jakub Jelinek wrote: > Perhaps you're just lucky and the stack contains '\0' there? Probably. > Maybe it would be better to simply use different error message for the > 0 vs. non-0 case, Done so. >> For mkoffload, the single results are merged - and TARGET_USE is strippe= d, >> such that it is either 0 or a combination of USM/UA/RO > I'd find it clearer if we never stripped that, so that even the library k= nows. I have done so =E2=80=93 and I concur that the check works then better in libgomp as well. >>> Pedantically reading current standard probably yes, but perhaps again >>> something to be discussed. The question is what the requires directive >>> in that case would do, nothing at all as there are no device constructs >>> etc.? >> Isn't there a device construct =E2=80=93 which happens to be empty? > In d.c there is. But in c.c there isn't. > So, the question is if the directive in c.c is just completely ignored > (ok, aside from semantic checking) or if it should mean that if it is > specified there, it must be specified elsewhere where device constructs e= tc. > are used too. Good question. The current code follows the wording of the spec and ignores it. I think that's fine but still feels a bit odd. >> Question: If it is not the same, should there just be a message to >> stderr (gomp_error) or should libgomp abort (gomp_fatal)? > I'd say gomp_fatal. Done so - it makes life easier. 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 --------------Cakm6JXsuOj1p9FaZ1ntldQI Content-Type: text/x-patch; charset="UTF-8"; name="omp-requires-v6.1.diff" Content-Disposition: attachment; filename="omp-requires-v6.1.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 CglHT01QX1JFUVVJUkVTX1JFVkVSU0VfT0ZGTE9BRCwgR09NUF9SRVFVSVJFU19UQVJHRVRf VVNFRCk6CglOZXcgZGVmaW5lcy4KCmxpYmdvbXAvQ2hhbmdlTG9nOgoKCSogbGliZ29tcC1w bHVnaW4uaCAoR09NUF9PRkZMT0FEX2dldF9udW1fZGV2aWNlcyk6IEFkZAoJb21wX3JlcXVp cmVzX21hc2sgYXJnLgoJKiBwbHVnaW4vcGx1Z2luLWdjbi5jIChHT01QX09GRkxPQURfZ2V0 X251bV9kZXZpY2VzKTogTGlrZXdpc2U7CglyZXR1cm4gLTEgd2hlbiBkZXZpY2UgYXZhaWxh YmxlIGJ1dCBvbXBfcmVxdWlyZXNfbWFzayAhPSAwLgoJKiBwbHVnaW4vcGx1Z2luLW52cHR4 LmMgKEdPTVBfT0ZGTE9BRF9nZXRfbnVtX2RldmljZXMpOiBMaWtld2lzZS4KCSogb2FjYy1o b3N0LmMgKGhvc3RfZ2V0X251bV9kZXZpY2VzLCBob3N0X29wZW5hY2NfZ2V0X3Byb3BlcnR5 KToKCVVwZGF0ZSBjYWxsLgoJKiBvYWNjLWluaXQuYyAocmVzb2x2ZV9kZXZpY2UsIGFjY19p bml0XzEsIGFjY19zaHV0ZG93bl8xLAoJZ29hY2NfYXR0YWNoX2hvc3RfdGhyZWFkX3RvX2Rl dmljZSwgYWNjX2dldF9udW1fZGV2aWNlcywKCWFjY19zZXRfZGV2aWNlX251bSwgZ2V0X3By b3BlcnR5X2FueSk6IExpa2V3aXNlLgoJKiB0YXJnZXQuYyAob21wX3JlcXVpcmVzX21hc2sp OiBOZXcgZ2xvYmFsIHZhci4KCShnb21wX3JlcXVpcmVzX3RvX25hbWUpOiBOZXcuCgkoR09N UF9vZmZsb2FkX3JlZ2lzdGVyX3Zlcik6IEhhbmRsZSBwYXNzZWQgb21wX3JlcXVpcmVzX21h c2suCgkoZ29tcF90YXJnZXRfaW5pdCk6IEhhbmRsZSBvbXBfcmVxdWlyZXNfbWFzay4KCSog bGliZ29tcC50ZXhpIChPcGVuTVAgNS4wKTogVXBkYXRlIHJlcXVpcmVzIGltcGwuIHN0YXR1 cy4KCShPcGVuTVAgNS4xKTogQWRkIGEgbWlzc2VkIGl0ZW0uCgkoT3Blbk1QIDUuMik6IE1h cmsgbGluZWFyLWNsYXVzZSBjaGFuZ2UgYXMgc3VwcG9ydGVkIGluIEMvQysrLgoJKiB0ZXN0 c3VpdGUvbGliZ29tcC5jLWMrKy1jb21tb24vcmVxdWlyZXMtMS1hdXguYzogTmV3IHRlc3Qu CgkqIHRlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy0xLmM6IE5ldyB0 ZXN0LgoJKiB0ZXN0c3VpdGUvbGliZ29tcC5jLWMrKy1jb21tb24vcmVxdWlyZXMtMi1hdXgu YzogTmV3IHRlc3QuCgkqIHRlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJl cy0yLmM6IE5ldyB0ZXN0LgoJKiB0ZXN0c3VpdGUvbGliZ29tcC5jLWMrKy1jb21tb24vcmVx dWlyZXMtMy1hdXguYzogTmV3IHRlc3QuCgkqIHRlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNv bW1vbi9yZXF1aXJlcy0zLmM6IE5ldyB0ZXN0LgoJKiB0ZXN0c3VpdGUvbGliZ29tcC5jLWMr Ky1jb21tb24vcmVxdWlyZXMtNC1hdXguYzogTmV3IHRlc3QuCgkqIHRlc3RzdWl0ZS9saWJn b21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy00LmM6IE5ldyB0ZXN0LgoJKiB0ZXN0c3VpdGUv bGliZ29tcC5jLWMrKy1jb21tb24vcmVxdWlyZXMtNS1hdXguYzogTmV3IHRlc3QuCgkqIHRl c3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy01LmM6IE5ldyB0ZXN0LgoJ KiB0ZXN0c3VpdGUvbGliZ29tcC5jLWMrKy1jb21tb24vcmVxdWlyZXMtNi5jOiBOZXcgdGVz dC4KCSogdGVzdHN1aXRlL2xpYmdvbXAuYy1jKystY29tbW9uL3JlcXVpcmVzLTctYXV4LmM6 IE5ldyB0ZXN0LgoJKiB0ZXN0c3VpdGUvbGliZ29tcC5jLWMrKy1jb21tb24vcmVxdWlyZXMt Ny5jOiBOZXcgdGVzdC4KCSogdGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi9yZXF1aXJlcy0x LWF1eC5mOTA6IE5ldyB0ZXN0LgoJKiB0ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL3JlcXVp cmVzLTEuZjkwOiBOZXcgdGVzdC4KCmxpYm9mZmxvYWRtaWMvQ2hhbmdlTG9nOgoKCSogcGx1 Z2luL2xpYmdvbXAtcGx1Z2luLWludGVsbWljLmNwcCAoR09NUF9PRkZMT0FEX2dldF9udW1f ZGV2aWNlcyk6CglSZXR1cm4gLTEgd2hlbiBkZXZpY2UgYXZhaWxhYmxlIGJ1dCBvbXBfcmVx dWlyZXNfbWFzayAhPSAwLgoKZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6CgoJKiBjLWMrKy1j b21tb24vZ29tcC9yZXF1aXJlcy00LmM6IFVwZGF0ZSBkZy0qLgoJKiBjLWMrKy1jb21tb24v Z29tcC9yZXZlcnNlLW9mZmxvYWQtMS5jOiBMaWtld2lzZS4KCSogYy1jKystY29tbW9uL2dv bXAvdGFyZ2V0LWRldmljZS1hbmNlc3Rvci0yLmM6IExpa2V3aXNlLgoJKiBjLWMrKy1jb21t b24vZ29tcC90YXJnZXQtZGV2aWNlLWFuY2VzdG9yLTMuYzogTGlrZXdpc2UuCgkqIGMtYysr LWNvbW1vbi9nb21wL3RhcmdldC1kZXZpY2UtYW5jZXN0b3ItNC5jOiBMaWtld2lzZS4KCSog Yy1jKystY29tbW9uL2dvbXAvdGFyZ2V0LWRldmljZS1hbmNlc3Rvci01LmM6IExpa2V3aXNl LgoJKiBnZm9ydHJhbi5kZy9nb21wL3RhcmdldC1kZXZpY2UtYW5jZXN0b3ItMy5mOTA6IExp a2V3aXNlLgoJKiBnZm9ydHJhbi5kZy9nb21wL3RhcmdldC1kZXZpY2UtYW5jZXN0b3ItNC5m OTA6IExpa2V3aXNlLgoJKiBnZm9ydHJhbi5kZy9nb21wL3RhcmdldC1kZXZpY2UtYW5jZXN0 b3ItNS5mOTA6IExpa2V3aXNlLgogICAgICAgICogZ2ZvcnRyYW4uZGcvZ29tcC90YXJnZXQt ZGV2aWNlLWFuY2VzdG9yLTIuZjkwOiBMaWtld2lzZS4gTW92ZQoJcG9zdC1GRSBjaGVja3Mg dG8gLi4uCiAgICAgICAgKiBnZm9ydHJhbi5kZy9nb21wL3RhcmdldC1kZXZpY2UtYW5jZXN0 b3ItMmEuZjkwOiAuLi4gdGhpcyBuZXcgZmlsZS4KCSogZ2ZvcnRyYW4uZGcvZ29tcC9yZXF1 aXJlcy04LmY5MDogVXBkYXRlIGFzIHdlIGRvbid0IHJlZ2FyZAoJJ2RlY2xhcmUgdGFyZ2V0 JyBmb3IgdGhlICdyZXF1aXJlcycgdXNhZ2UgcmVxdWlyZW1lbnQuCgpDby1hdXRob3JlZC1i eTogQ2h1bmctTGluIFRhbmcgPGNsdGFuZ0Bjb2Rlc291cmNlcnkuY29tPgpDby1hdXRob3Jl ZC1ieTogVGhvbWFzIFNjaHdpbmdlIDx0aG9tYXNAY29kZXNvdXJjZXJ5LmNvbT4KCiBnY2Mv Yy9jLXBhcnNlci5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxOSAr KystCiBnY2MvY29uZmlnL2djbi9ta29mZmxvYWQuY2MgICAgICAgICAgICAgICAgICAgICAg ICB8ICAyNyArKysrLQogZ2NjL2NvbmZpZy9udnB0eC9ta29mZmxvYWQuY2MgICAgICAgICAg ICAgICAgICAgICAgfCAgMjkgKysrKy0KIGdjYy9jcC9wYXJzZXIuY2MgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDE5ICsrKy0KIGdjYy9mb3J0cmFuL29wZW5tcC5j YyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0IC0KIGdjYy9mb3J0cmFuL3Bh cnNlLmNjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIyICsrKy0KIGdjYy9s dG8tY2dyYXBoLmNjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTE3ICsr KysrKysrKysrKysrKysrKysrLQogZ2NjL29tcC1sb3cuY2MgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDUgKwogZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24v Z29tcC9yZXF1aXJlcy00LmMgICAgICAgfCAgIDIgLQogLi4uL2MtYysrLWNvbW1vbi9nb21w L3JldmVyc2Utb2ZmbG9hZC0xLmMgICAgICAgICAgfCAgIDIgKy0KIC4uLi9jLWMrKy1jb21t b24vZ29tcC90YXJnZXQtZGV2aWNlLWFuY2VzdG9yLTIuYyAgIHwgIDEwICstCiAuLi4vYy1j KystY29tbW9uL2dvbXAvdGFyZ2V0LWRldmljZS1hbmNlc3Rvci0zLmMgICB8ICAgMiArLQog Li4uL2MtYysrLWNvbW1vbi9nb21wL3RhcmdldC1kZXZpY2UtYW5jZXN0b3ItNC5jICAgfCAg IDQgKy0KIC4uLi9jLWMrKy1jb21tb24vZ29tcC90YXJnZXQtZGV2aWNlLWFuY2VzdG9yLTUu YyAgIHwgICAyICstCiBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvcmVxdWlyZXMt OC5mOTAgICAgICB8ICAxNCArKy0KIC4uLi9nZm9ydHJhbi5kZy9nb21wL3RhcmdldC1kZXZp Y2UtYW5jZXN0b3ItMi5mOTAgIHwgIDcwICstLS0tLS0tLS0tLQogLi4uL2dmb3J0cmFuLmRn L2dvbXAvdGFyZ2V0LWRldmljZS1hbmNlc3Rvci0yYS5mOTAgfCAgODAgKysrKysrKysrKysr KysKIC4uLi9nZm9ydHJhbi5kZy9nb21wL3RhcmdldC1kZXZpY2UtYW5jZXN0b3ItMy5mOTAg IHwgICA2ICstCiAuLi4vZ2ZvcnRyYW4uZGcvZ29tcC90YXJnZXQtZGV2aWNlLWFuY2VzdG9y LTQuZjkwICB8ICAgNiArLQogLi4uL2dmb3J0cmFuLmRnL2dvbXAvdGFyZ2V0LWRldmljZS1h bmNlc3Rvci01LmY5MCAgfCAgIDggKy0KIGluY2x1ZGUvZ29tcC1jb25zdGFudHMuaCAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICA5ICstCiBsaWJnb21wL2xpYmdvbXAtcGx1Z2lu LmggICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogbGliZ29tcC9saWJnb21w LnRleGkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggKy0KIGxpYmdvbXAv b2FjYy1ob3N0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBs aWJnb21wL29hY2MtaW5pdC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAx NiArLS0KIGxpYmdvbXAvcGx1Z2luL3BsdWdpbi1nY24uYyAgICAgICAgICAgICAgICAgICAg ICAgIHwgICA2ICstCiBsaWJnb21wL3BsdWdpbi9wbHVnaW4tbnZwdHguYyAgICAgICAgICAg ICAgICAgICAgICB8ICAgOSArLQogbGliZ29tcC90YXJnZXQuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgNzYgKysrKysrKysrKysrLQogLi4uL2xpYmdvbXAuYy1j KystY29tbW9uL3JlcXVpcmVzLTEtYXV4LmMgICAgICAgICAgfCAgMTEgKysKIC4uLi90ZXN0 c3VpdGUvbGliZ29tcC5jLWMrKy1jb21tb24vcmVxdWlyZXMtMS5jICAgIHwgIDI0ICsrKysr CiAuLi4vbGliZ29tcC5jLWMrKy1jb21tb24vcmVxdWlyZXMtMi1hdXguYyAgICAgICAgICB8 ICAgOSArKwogLi4uL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy0y LmMgICAgfCAgMjUgKysrKysKIC4uLi9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy0z LWF1eC5jICAgICAgICAgIHwgIDExICsrCiAuLi4vdGVzdHN1aXRlL2xpYmdvbXAuYy1jKyst Y29tbW9uL3JlcXVpcmVzLTMuYyAgICB8ICAyNCArKysrKwogLi4uL2xpYmdvbXAuYy1jKyst Y29tbW9uL3JlcXVpcmVzLTQtYXV4LmMgICAgICAgICAgfCAgMTMgKysrCiAuLi4vdGVzdHN1 aXRlL2xpYmdvbXAuYy1jKystY29tbW9uL3JlcXVpcmVzLTQuYyAgICB8ICAyMyArKysrCiAu Li4vbGliZ29tcC5jLWMrKy1jb21tb24vcmVxdWlyZXMtNS1hdXguYyAgICAgICAgICB8ICAx MSArKwogLi4uL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy01LmMg ICAgfCAgMjAgKysrKwogLi4uL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1 aXJlcy02LmMgICAgfCAgMTcgKysrCiAuLi4vbGliZ29tcC5jLWMrKy1jb21tb24vcmVxdWly ZXMtNy1hdXguYyAgICAgICAgICB8ICAxMSArKwogLi4uL3Rlc3RzdWl0ZS9saWJnb21wLmMt YysrLWNvbW1vbi9yZXF1aXJlcy03LmMgICAgfCAgMjQgKysrKysKIC4uLi90ZXN0c3VpdGUv bGliZ29tcC5mb3J0cmFuL3JlcXVpcmVzLTEtYXV4LmY5MCAgIHwgIDE0ICsrKwogbGliZ29t cC90ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL3JlcXVpcmVzLTEuZjkwICAgfCAgMjYgKysr KysKIGxpYm9mZmxvYWRtaWMvcGx1Z2luL2xpYmdvbXAtcGx1Z2luLWludGVsbWljLmNwcCAg IHwgICA2ICstCiA0NCBmaWxlcyBjaGFuZ2VkLCA3MTUgaW5zZXJ0aW9ucygrKSwgMTMyIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2djYy9jL2MtcGFyc2VyLmNjIGIvZ2NjL2MvYy1w YXJzZXIuY2MKaW5kZXggOTdlM2IyM2I1ZDIuLjljMDIxNDFlMmM2IDEwMDY0NAotLS0gYS9n Y2MvYy9jLXBhcnNlci5jYworKysgYi9nY2MvYy9jLXBhcnNlci5jYwpAQCAtMjA5MTUsNiAr MjA5MTUsMTAgQEAgY19wYXJzZXJfb21wX3RlYW1zIChsb2NhdGlvbl90IGxvYywgY19wYXJz ZXIgKnBhcnNlciwKIHN0YXRpYyB0cmVlCiBjX3BhcnNlcl9vbXBfdGFyZ2V0X2RhdGEgKGxv Y2F0aW9uX3QgbG9jLCBjX3BhcnNlciAqcGFyc2VyLCBib29sICppZl9wKQogeworICBpZiAo ZmxhZ19vcGVubXApCisgICAgb21wX3JlcXVpcmVzX21hc2sKKyAgICAgID0gKGVudW0gb21w X3JlcXVpcmVzKSAob21wX3JlcXVpcmVzX21hc2sgfCBPTVBfUkVRVUlSRVNfVEFSR0VUX1VT RUQpOworCiAgIHRyZWUgY2xhdXNlcwogICAgID0gY19wYXJzZXJfb21wX2FsbF9jbGF1c2Vz IChwYXJzZXIsIE9NUF9UQVJHRVRfREFUQV9DTEFVU0VfTUFTSywKIAkJCQkiI3ByYWdtYSBv bXAgdGFyZ2V0IGRhdGEiKTsKQEAgLTIxMDEwLDYgKzIxMDE0LDEwIEBAIGNfcGFyc2VyX29t cF90YXJnZXRfdXBkYXRlIChsb2NhdGlvbl90IGxvYywgY19wYXJzZXIgKnBhcnNlciwKICAg ICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKKyAgaWYgKGZsYWdfb3Blbm1wKQorICAgIG9t cF9yZXF1aXJlc19tYXNrCisgICAgICA9IChlbnVtIG9tcF9yZXF1aXJlcykgKG9tcF9yZXF1 aXJlc19tYXNrIHwgT01QX1JFUVVJUkVTX1RBUkdFVF9VU0VEKTsKKwogICB0cmVlIHN0bXQg PSBtYWtlX25vZGUgKE9NUF9UQVJHRVRfVVBEQVRFKTsKICAgVFJFRV9UWVBFIChzdG10KSA9 IHZvaWRfdHlwZV9ub2RlOwogICBPTVBfVEFSR0VUX1VQREFURV9DTEFVU0VTIChzdG10KSA9 IGNsYXVzZXM7CkBAIC0yMTA1Nyw2ICsyMTA2NSwxMCBAQCBjX3BhcnNlcl9vbXBfdGFyZ2V0 X2VudGVyX2RhdGEgKGxvY2F0aW9uX3QgbG9jLCBjX3BhcnNlciAqcGFyc2VyLAogICAgICAg cmV0dXJuIHRydWU7CiAgICAgfQogCisgIGlmIChmbGFnX29wZW5tcCkKKyAgICBvbXBfcmVx dWlyZXNfbWFzaworICAgICAgPSAoZW51bSBvbXBfcmVxdWlyZXMpIChvbXBfcmVxdWlyZXNf bWFzayB8IE9NUF9SRVFVSVJFU19UQVJHRVRfVVNFRCk7CisKICAgdHJlZSBjbGF1c2VzCiAg ICAgPSBjX3BhcnNlcl9vbXBfYWxsX2NsYXVzZXMgKHBhcnNlciwgT01QX1RBUkdFVF9FTlRF Ul9EQVRBX0NMQVVTRV9NQVNLLAogCQkJCSIjcHJhZ21hIG9tcCB0YXJnZXQgZW50ZXIgZGF0 YSIpOwpAQCAtMjExNTEsNiArMjExNjMsMTAgQEAgY19wYXJzZXJfb21wX3RhcmdldF9leGl0 X2RhdGEgKGxvY2F0aW9uX3QgbG9jLCBjX3BhcnNlciAqcGFyc2VyLAogICAgICAgcmV0dXJu IHRydWU7CiAgICAgfQogCisgIGlmIChmbGFnX29wZW5tcCkKKyAgICBvbXBfcmVxdWlyZXNf bWFzaworICAgICAgPSAoZW51bSBvbXBfcmVxdWlyZXMpIChvbXBfcmVxdWlyZXNfbWFzayB8 IE9NUF9SRVFVSVJFU19UQVJHRVRfVVNFRCk7CisKICAgdHJlZSBjbGF1c2VzCiAgICAgPSBj X3BhcnNlcl9vbXBfYWxsX2NsYXVzZXMgKHBhcnNlciwgT01QX1RBUkdFVF9FWElUX0RBVEFf Q0xBVVNFX01BU0ssCiAJCQkJIiNwcmFnbWEgb21wIHRhcmdldCBleGl0IGRhdGEiKTsKQEAg LTIyNzc5LDkgKzIyNzk1LDYgQEAgY19wYXJzZXJfb21wX3JlcXVpcmVzIChjX3BhcnNlciAq cGFyc2VyKQogCSAgICAgIGNfcGFyc2VyX3NraXBfdG9fcHJhZ21hX2VvbCAocGFyc2VyLCBm YWxzZSk7CiAJICAgICAgcmV0dXJuOwogCSAgICB9Ci0JICBpZiAocCAmJiB0aGlzX3JlcSAh PSBPTVBfUkVRVUlSRVNfRFlOQU1JQ19BTExPQ0FUT1JTKQotCSAgICBzb3JyeV9hdCAoY2xv YywgIiVxcyBjbGF1c2Ugb24gJTxyZXF1aXJlcyU+IGRpcmVjdGl2ZSBub3QgIgotCQkJICAg ICJzdXBwb3J0ZWQgeWV0IiwgcCk7CiAJICBpZiAocCkKIAkgICAgY19wYXJzZXJfY29uc3Vt ZV90b2tlbiAocGFyc2VyKTsKIAkgIGlmICh0aGlzX3JlcSkKZGlmZiAtLWdpdCBhL2djYy9j b25maWcvZ2NuL21rb2ZmbG9hZC5jYyBiL2djYy9jb25maWcvZ2NuL21rb2ZmbG9hZC5jYwpp bmRleCBlZDkzYWU4NDRlNC4uYjhiM2ZlY2ZjYjQgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcv Z2NuL21rb2ZmbG9hZC5jYworKysgYi9nY2MvY29uZmlnL2djbi9ta29mZmxvYWQuY2MKQEAg LTYxMSw2ICs2MTEsNyBAQCBwcm9jZXNzX2FzbSAoRklMRSAqaW4sIEZJTEUgKm91dCwgRklM RSAqY2ZpbGUpCiAgIHN0cnVjdCByZWdjb3VudCAqcmVnY291bnRzID0gWE9CRklOSVNIICgm cmVnY291bnRzX29zLCBzdHJ1Y3QgcmVnY291bnQgKik7CiAKICAgZnByaW50ZiAoY2ZpbGUs ICIjaW5jbHVkZSA8c3RkbGliLmg+XG4iKTsKKyAgZnByaW50ZiAoY2ZpbGUsICIjaW5jbHVk ZSA8c3RkaW50Lmg+XG4iKTsKICAgZnByaW50ZiAoY2ZpbGUsICIjaW5jbHVkZSA8c3RkYm9v bC5oPlxuXG4iKTsKIAogICBmcHJpbnRmIChjZmlsZSwgInN0YXRpYyBjb25zdCBpbnQgZ2Nu X251bV92YXJzID0gJWQ7XG5cbiIsIHZhcl9jb3VudCk7CkBAIC02NjQsNyArNjY1LDcgQEAg cHJvY2Vzc19hc20gKEZJTEUgKmluLCBGSUxFICpvdXQsIEZJTEUgKmNmaWxlKQogLyogRW1i ZWQgYW4gb2JqZWN0IGZpbGUgaW50byBhIEMgc291cmNlIGZpbGUuICAqLwogCiBzdGF0aWMg dm9pZAotcHJvY2Vzc19vYmogKEZJTEUgKmluLCBGSUxFICpjZmlsZSkKK3Byb2Nlc3Nfb2Jq IChGSUxFICppbiwgRklMRSAqY2ZpbGUsIHVpbnQzMl90IG9tcF9yZXF1aXJlcykKIHsKICAg c2l6ZV90IGxlbiA9IDA7CiAgIGNvbnN0IGNoYXIgKmlucHV0ID0gcmVhZF9maWxlIChpbiwg Jmxlbik7CkBAIC02OTIsMTYgKzY5MywxOCBAQCBwcm9jZXNzX29iaiAoRklMRSAqaW4sIEZJ TEUgKmNmaWxlKQogCiAgIGZwcmludGYgKGNmaWxlLAogCSAgICJzdGF0aWMgY29uc3Qgc3Ry dWN0IGdjbl9pbWFnZV9kZXNjIHtcbiIKKwkgICAiICB1aW50cHRyX3Qgb21wX3JlcXVpcmVz X21hc2s7XG4iCiAJICAgIiAgY29uc3Qgc3RydWN0IGdjbl9pbWFnZSAqZ2NuX2ltYWdlO1xu IgogCSAgICIgIHVuc2lnbmVkIGtlcm5lbF9jb3VudDtcbiIKIAkgICAiICBjb25zdCBzdHJ1 Y3QgaHNhX2tlcm5lbF9kZXNjcmlwdGlvbiAqa2VybmVsX2luZm9zO1xuIgogCSAgICIgIHVu c2lnbmVkIGdsb2JhbF92YXJpYWJsZV9jb3VudDtcbiIKIAkgICAifSB0YXJnZXRfZGF0YSA9 IHtcbiIKKwkgICAiICAlZCxcbiIKIAkgICAiICAmZ2NuX2ltYWdlLFxuIgogCSAgICIgIHNp emVvZiAoZ2NuX2tlcm5lbHMpIC8gc2l6ZW9mIChnY25fa2VybmVsc1swXSksXG4iCiAJICAg IiAgZ2NuX2tlcm5lbHMsXG4iCiAJICAgIiAgZ2NuX251bV92YXJzXG4iCi0JICAgIn07XG5c biIpOworCSAgICJ9O1xuXG4iLCBvbXBfcmVxdWlyZXMpOwogCiAgIGZwcmludGYgKGNmaWxl LAogCSAgICIjaWZkZWYgX19jcGx1c3BsdXNcbiIKQEAgLTEwNzcsOSArMTA4MCwyNyBAQCBt YWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgICB1bnNldGVudiAoIkNPTVBJTEVS X1BBVEgiKTsKICAgICAgIHVuc2V0ZW52ICgiTElCUkFSWV9QQVRIIik7CiAKKyAgICAgIGNo YXIgKm9tcF9yZXF1aXJlc19maWxlOworICAgICAgaWYgKHNhdmVfdGVtcHMpCisJb21wX3Jl cXVpcmVzX2ZpbGUgPSBjb25jYXQgKGR1bXBwZngsICIubWtvZmZsb2FkLm9tcF9yZXF1aXJl cyIsIE5VTEwpOworICAgICAgZWxzZQorCW9tcF9yZXF1aXJlc19maWxlID0gbWFrZV90ZW1w X2ZpbGUgKCIubWtvZmZsb2FkLm9tcF9yZXF1aXJlcyIpOworCiAgICAgICAvKiBSdW4gdGhl IGNvbXBpbGVyIHBhc3MuICAqLworICAgICAgeHB1dGVudiAoY29uY2F0ICgiR0NDX09GRkxP QURfT01QX1JFUVVJUkVTX0ZJTEU9Iiwgb21wX3JlcXVpcmVzX2ZpbGUsIE5VTEwpKTsKICAg ICAgIGZvcmtfZXhlY3V0ZSAoY2NfYXJndlswXSwgQ09OU1RfQ0FTVCAoY2hhciAqKiwgY2Nf YXJndiksIHRydWUsICIuZ2NjX2FyZ3MiKTsKICAgICAgIG9ic3RhY2tfZnJlZSAoJmNjX2Fy Z3Zfb2JzdGFjaywgTlVMTCk7CisgICAgICB1bnNldGVudigiR0NDX09GRkxPQURfT01QX1JF UVVJUkVTX0ZJTEUiKTsKKworICAgICAgaW4gPSBmb3BlbiAob21wX3JlcXVpcmVzX2ZpbGUs ICJyYiIpOworICAgICAgaWYgKCFpbikKKwlmYXRhbF9lcnJvciAoaW5wdXRfbG9jYXRpb24s ICJjYW5ub3Qgb3BlbiBvbXBfcmVxdWlyZXMgZmlsZSAlcXMiLAorCQkgICAgIG9tcF9yZXF1 aXJlc19maWxlKTsKKyAgICAgIHVpbnQzMl90IG9tcF9yZXF1aXJlczsKKyAgICAgIGlmIChm cmVhZCAoJm9tcF9yZXF1aXJlcywgc2l6ZW9mIChvbXBfcmVxdWlyZXMpLCAxLCBpbikgIT0g MSkKKwlmYXRhbF9lcnJvciAoaW5wdXRfbG9jYXRpb24sICJjYW5ub3QgcmVhZCBvbXBfcmVx dWlyZXMgZmlsZSAlcXMiLAorCQkgICAgIG9tcF9yZXF1aXJlc19maWxlKTsKKyAgICAgIGZj bG9zZSAoaW4pOwogCiAgICAgICBpbiA9IGZvcGVuIChnY25fczFfbmFtZSwgInIiKTsKICAg ICAgIGlmICghaW4pCkBAIC0xMTAyLDcgKzExMjMsNyBAQCBtYWluIChpbnQgYXJnYywgY2hh ciAqKmFyZ3YpCiAgICAgICBpZiAoIWluKQogCWZhdGFsX2Vycm9yIChpbnB1dF9sb2NhdGlv biwgImNhbm5vdCBvcGVuIGludGVybWVkaWF0ZSBnY24gb2JqIGZpbGUiKTsKIAotICAgICAg cHJvY2Vzc19vYmogKGluLCBjZmlsZSk7CisgICAgICBwcm9jZXNzX29iaiAoaW4sIGNmaWxl LCBvbXBfcmVxdWlyZXMpOwogCiAgICAgICBmY2xvc2UgKGluKTsKIApkaWZmIC0tZ2l0IGEv Z2NjL2NvbmZpZy9udnB0eC9ta29mZmxvYWQuY2MgYi9nY2MvY29uZmlnL252cHR4L21rb2Zm bG9hZC5jYwppbmRleCBiMjhjMWEzMjI5Mi4uZDhjODFlYjA1NDcgMTAwNjQ0Ci0tLSBhL2dj Yy9jb25maWcvbnZwdHgvbWtvZmZsb2FkLmNjCisrKyBiL2djYy9jb25maWcvbnZwdHgvbWtv ZmZsb2FkLmNjCkBAIC0yMzEsNyArMjMxLDcgQEAgYWNjZXNzX2NoZWNrIChjb25zdCBjaGFy ICpuYW1lLCBpbnQgbW9kZSkKIH0KIAogc3RhdGljIHZvaWQKLXByb2Nlc3MgKEZJTEUgKmlu LCBGSUxFICpvdXQpCitwcm9jZXNzIChGSUxFICppbiwgRklMRSAqb3V0LCB1aW50MzJfdCBv bXBfcmVxdWlyZXMpCiB7CiAgIHNpemVfdCBsZW4gPSAwOwogICBjb25zdCBjaGFyICppbnB1 dCA9IHJlYWRfZmlsZSAoaW4sICZsZW4pOwpAQCAtMjQwLDYgKzI0MCw4IEBAIHByb2Nlc3Mg KEZJTEUgKmluLCBGSUxFICpvdXQpCiAgIHVuc2lnbmVkIG9ial9jb3VudCA9IDA7CiAgIHVu c2lnbmVkIGl4OwogCisgIGZwcmludGYgKG91dCwgIiNpbmNsdWRlIDxzdGRpbnQuaD5cblxu Iik7CisKICAgLyogRHVtcCBvdXQgY2hhciBhcnJheXMgZm9yIGVhY2ggUFRYIG9iamVjdCBm aWxlLiAgVGhlc2UgYXJlCiAgICAgIHRlcm1pbmF0ZWQgYnkgYSBOVUwuICAqLwogICBmb3Ig KHNpemVfdCBpID0gMDsgaSAhPSBsZW47KQpAQCAtMzA5LDYgKzMxMSw3IEBAIHByb2Nlc3Mg KEZJTEUgKmluLCBGSUxFICpvdXQpCiAKICAgZnByaW50ZiAob3V0LAogCSAgICJzdGF0aWMg Y29uc3Qgc3RydWN0IG52cHR4X3RkYXRhIHtcbiIKKwkgICAiICB1aW50cHRyX3Qgb21wX3Jl cXVpcmVzX21hc2s7XG4iCiAJICAgIiAgY29uc3Qgc3RydWN0IHB0eF9vYmogKnB0eF9vYmpz O1xuIgogCSAgICIgIHVuc2lnbmVkIHB0eF9udW07XG4iCiAJICAgIiAgY29uc3QgY2hhciAq Y29uc3QgKnZhcl9uYW1lcztcbiIKQEAgLTMxNiwxMiArMzE5LDEyIEBAIHByb2Nlc3MgKEZJ TEUgKmluLCBGSUxFICpvdXQpCiAJICAgIiAgY29uc3Qgc3RydWN0IG52cHR4X2ZuICpmbl9u YW1lcztcbiIKIAkgICAiICB1bnNpZ25lZCBmbl9udW07XG4iCiAJICAgIn0gdGFyZ2V0X2Rh dGEgPSB7XG4iCi0JICAgIiAgcHR4X29ianMsIHNpemVvZiAocHR4X29ianMpIC8gc2l6ZW9m IChwdHhfb2Jqc1swXSksXG4iCisJICAgIiAgJWQsIHB0eF9vYmpzLCBzaXplb2YgKHB0eF9v YmpzKSAvIHNpemVvZiAocHR4X29ianNbMF0pLFxuIgogCSAgICIgIHZhcl9tYXBwaW5ncywi CiAJICAgIiAgc2l6ZW9mICh2YXJfbWFwcGluZ3MpIC8gc2l6ZW9mICh2YXJfbWFwcGluZ3Nb MF0pLFxuIgogCSAgICIgIGZ1bmNfbWFwcGluZ3MsIgogCSAgICIgIHNpemVvZiAoZnVuY19t YXBwaW5ncykgLyBzaXplb2YgKGZ1bmNfbWFwcGluZ3NbMF0pXG4iCi0JICAgIn07XG5cbiIp OworCSAgICJ9O1xuXG4iLCBvbXBfcmVxdWlyZXMpOwogCiAgIGZwcmludGYgKG91dCwgIiNp ZmRlZiBfX2NwbHVzcGx1c1xuIgogCSAgICJleHRlcm4gXCJDXCIge1xuIgpAQCAtNTgzLDE5 ICs1ODYsMzcgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgICAgdW5zZXRl bnYgKCJDT01QSUxFUl9QQVRIIik7CiAgICAgICB1bnNldGVudiAoIkxJQlJBUllfUEFUSCIp OwogCisgICAgICBjaGFyICpvbXBfcmVxdWlyZXNfZmlsZTsKKyAgICAgIGlmIChzYXZlX3Rl bXBzKQorCW9tcF9yZXF1aXJlc19maWxlID0gY29uY2F0IChkdW1wcGZ4LCAiLm1rb2ZmbG9h ZC5vbXBfcmVxdWlyZXMiLCBOVUxMKTsKKyAgICAgIGVsc2UKKwlvbXBfcmVxdWlyZXNfZmls ZSA9IG1ha2VfdGVtcF9maWxlICgiLm1rb2ZmbG9hZC5vbXBfcmVxdWlyZXMiKTsKKworICAg ICAgeHB1dGVudiAoY29uY2F0ICgiR0NDX09GRkxPQURfT01QX1JFUVVJUkVTX0ZJTEU9Iiwg b21wX3JlcXVpcmVzX2ZpbGUsIE5VTEwpKTsKICAgICAgIGZvcmtfZXhlY3V0ZSAobmV3X2Fy Z3ZbMF0sIENPTlNUX0NBU1QgKGNoYXIgKiosIG5ld19hcmd2KSwgdHJ1ZSwKIAkJICAgICIu Z2NjX2FyZ3MiKTsKICAgICAgIG9ic3RhY2tfZnJlZSAoJmFyZ3Zfb2JzdGFjaywgTlVMTCk7 CisgICAgICB1bnNldGVudigiR0NDX09GRkxPQURfT01QX1JFUVVJUkVTX0ZJTEUiKTsKIAog ICAgICAgeHB1dGVudiAoY29uY2F0ICgiR0NDX0VYRUNfUFJFRklYPSIsIGV4ZWNwYXRoLCBO VUxMKSk7CiAgICAgICB4cHV0ZW52IChjb25jYXQgKCJDT01QSUxFUl9QQVRIPSIsIGNwYXRo LCBOVUxMKSk7CiAgICAgICB4cHV0ZW52IChjb25jYXQgKCJMSUJSQVJZX1BBVEg9IiwgbHBh dGgsIE5VTEwpKTsKIAorICAgICAgaW4gPSBmb3BlbiAob21wX3JlcXVpcmVzX2ZpbGUsICJy YiIpOworICAgICAgaWYgKCFpbikKKwlmYXRhbF9lcnJvciAoaW5wdXRfbG9jYXRpb24sICJj YW5ub3Qgb3BlbiBvbXBfcmVxdWlyZXMgZmlsZSAlcXMiLAorCQkgICAgIG9tcF9yZXF1aXJl c19maWxlKTsKKyAgICAgIHVpbnQzMl90IG9tcF9yZXF1aXJlczsKKyAgICAgIGlmIChmcmVh ZCAoJm9tcF9yZXF1aXJlcywgc2l6ZW9mIChvbXBfcmVxdWlyZXMpLCAxLCBpbikgIT0gMSkK KwlmYXRhbF9lcnJvciAoaW5wdXRfbG9jYXRpb24sICJjYW5ub3QgcmVhZCBvbXBfcmVxdWly ZXMgZmlsZSAlcXMiLAorCQkgICAgIG9tcF9yZXF1aXJlc19maWxlKTsKKyAgICAgIGZjbG9z ZSAoaW4pOworCiAgICAgICBpbiA9IGZvcGVuIChwdHhfbmFtZSwgInIiKTsKICAgICAgIGlm ICghaW4pCiAJZmF0YWxfZXJyb3IgKGlucHV0X2xvY2F0aW9uLCAiY2Fubm90IG9wZW4gaW50 ZXJtZWRpYXRlIHB0eCBmaWxlIik7CiAKLSAgICAgIHByb2Nlc3MgKGluLCBvdXQpOworICAg ICAgcHJvY2VzcyAoaW4sIG91dCwgb21wX3JlcXVpcmVzKTsKICAgICAgIGZjbG9zZSAoaW4p OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvZ2NjL2NwL3BhcnNlci5jYyBiL2djYy9jcC9wYXJz ZXIuY2MKaW5kZXggMjEyZWQxNDQ1ZDUuLjc0YWYxNjVlN2Q4IDEwMDY0NAotLS0gYS9nY2Mv Y3AvcGFyc2VyLmNjCisrKyBiL2djYy9jcC9wYXJzZXIuY2MKQEAgLTQ0MzI3LDYgKzQ0MzI3 LDEwIEBAIGNwX3BhcnNlcl9vbXBfdGVhbXMgKGNwX3BhcnNlciAqcGFyc2VyLCBjcF90b2tl biAqcHJhZ21hX3RvaywKIHN0YXRpYyB0cmVlCiBjcF9wYXJzZXJfb21wX3RhcmdldF9kYXRh IChjcF9wYXJzZXIgKnBhcnNlciwgY3BfdG9rZW4gKnByYWdtYV90b2ssIGJvb2wgKmlmX3Ap CiB7CisgIGlmIChmbGFnX29wZW5tcCkKKyAgICBvbXBfcmVxdWlyZXNfbWFzaworICAgICAg PSAoZW51bSBvbXBfcmVxdWlyZXMpIChvbXBfcmVxdWlyZXNfbWFzayB8IE9NUF9SRVFVSVJF U19UQVJHRVRfVVNFRCk7CisKICAgdHJlZSBjbGF1c2VzCiAgICAgPSBjcF9wYXJzZXJfb21w X2FsbF9jbGF1c2VzIChwYXJzZXIsIE9NUF9UQVJHRVRfREFUQV9DTEFVU0VfTUFTSywKIAkJ CQkgIiNwcmFnbWEgb21wIHRhcmdldCBkYXRhIiwgcHJhZ21hX3Rvayk7CkBAIC00NDQzMCw2 ICs0NDQzNCwxMCBAQCBjcF9wYXJzZXJfb21wX3RhcmdldF9lbnRlcl9kYXRhIChjcF9wYXJz ZXIgKnBhcnNlciwgY3BfdG9rZW4gKnByYWdtYV90b2ssCiAgICAgICByZXR1cm4gdHJ1ZTsK ICAgICB9CiAKKyAgaWYgKGZsYWdfb3Blbm1wKQorICAgIG9tcF9yZXF1aXJlc19tYXNrCisg ICAgICA9IChlbnVtIG9tcF9yZXF1aXJlcykgKG9tcF9yZXF1aXJlc19tYXNrIHwgT01QX1JF UVVJUkVTX1RBUkdFVF9VU0VEKTsKKwogICB0cmVlIGNsYXVzZXMKICAgICA9IGNwX3BhcnNl cl9vbXBfYWxsX2NsYXVzZXMgKHBhcnNlciwgT01QX1RBUkdFVF9FTlRFUl9EQVRBX0NMQVVT RV9NQVNLLAogCQkJCSAiI3ByYWdtYSBvbXAgdGFyZ2V0IGVudGVyIGRhdGEiLCBwcmFnbWFf dG9rKTsKQEAgLTQ0NTI5LDYgKzQ0NTM3LDEwIEBAIGNwX3BhcnNlcl9vbXBfdGFyZ2V0X2V4 aXRfZGF0YSAoY3BfcGFyc2VyICpwYXJzZXIsIGNwX3Rva2VuICpwcmFnbWFfdG9rLAogICAg ICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgIGlmIChmbGFnX29wZW5tcCkKKyAgICBvbXBf cmVxdWlyZXNfbWFzaworICAgICAgPSAoZW51bSBvbXBfcmVxdWlyZXMpIChvbXBfcmVxdWly ZXNfbWFzayB8IE9NUF9SRVFVSVJFU19UQVJHRVRfVVNFRCk7CisKICAgdHJlZSBjbGF1c2Vz CiAgICAgPSBjcF9wYXJzZXJfb21wX2FsbF9jbGF1c2VzIChwYXJzZXIsIE9NUF9UQVJHRVRf RVhJVF9EQVRBX0NMQVVTRV9NQVNLLAogCQkJCSAiI3ByYWdtYSBvbXAgdGFyZ2V0IGV4aXQg ZGF0YSIsIHByYWdtYV90b2spOwpAQCAtNDQ2MjMsNiArNDQ2MzUsMTAgQEAgY3BfcGFyc2Vy X29tcF90YXJnZXRfdXBkYXRlIChjcF9wYXJzZXIgKnBhcnNlciwgY3BfdG9rZW4gKnByYWdt YV90b2ssCiAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgaWYgKGZsYWdfb3Blbm1w KQorICAgIG9tcF9yZXF1aXJlc19tYXNrCisgICAgICA9IChlbnVtIG9tcF9yZXF1aXJlcykg KG9tcF9yZXF1aXJlc19tYXNrIHwgT01QX1JFUVVJUkVTX1RBUkdFVF9VU0VEKTsKKwogICB0 cmVlIHN0bXQgPSBtYWtlX25vZGUgKE9NUF9UQVJHRVRfVVBEQVRFKTsKICAgVFJFRV9UWVBF IChzdG10KSA9IHZvaWRfdHlwZV9ub2RlOwogICBPTVBfVEFSR0VUX1VQREFURV9DTEFVU0VT IChzdG10KSA9IGNsYXVzZXM7CkBAIC00NjkxNyw5ICs0NjkzMyw2IEBAIGNwX3BhcnNlcl9v bXBfcmVxdWlyZXMgKGNwX3BhcnNlciAqcGFyc2VyLCBjcF90b2tlbiAqcHJhZ21hX3RvaykK IAkgICAgICBjcF9wYXJzZXJfc2tpcF90b19wcmFnbWFfZW9sIChwYXJzZXIsIHByYWdtYV90 b2spOwogCSAgICAgIHJldHVybiBmYWxzZTsKIAkgICAgfQotCSAgaWYgKHAgJiYgdGhpc19y ZXEgIT0gT01QX1JFUVVJUkVTX0RZTkFNSUNfQUxMT0NBVE9SUykKLQkgICAgc29ycnlfYXQg KGNsb2MsICIlcXMgY2xhdXNlIG9uICU8cmVxdWlyZXMlPiBkaXJlY3RpdmUgbm90ICIKLQkJ CSAgICAic3VwcG9ydGVkIHlldCIsIHApOwogCSAgaWYgKHApCiAJICAgIGNwX2xleGVyX2Nv bnN1bWVfdG9rZW4gKHBhcnNlci0+bGV4ZXIpOwogCSAgaWYgKHRoaXNfcmVxKQpkaWZmIC0t Z2l0IGEvZ2NjL2ZvcnRyYW4vb3Blbm1wLmNjIGIvZ2NjL2ZvcnRyYW4vb3Blbm1wLmNjCmlu ZGV4IDkzZTQwZjI1ZjgyLi41MWI0MjlhNTk3YyAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4v b3Blbm1wLmNjCisrKyBiL2djYy9mb3J0cmFuL29wZW5tcC5jYwpAQCAtNTQ4OCwxMCArNTQ4 OCw2IEBAIGdmY19tYXRjaF9vbXBfcmVxdWlyZXMgKHZvaWQpCiAgICAgICBlbHNlCiAJZ290 byBlcnJvcjsKIAotICAgICAgaWYgKHJlcXVpcmVzX2NsYXVzZSAmIH4oT01QX1JFUV9BVE9N SUNfTUVNX09SREVSX01BU0sKLQkJCSAgICAgIHwgT01QX1JFUV9EWU5BTUlDX0FMTE9DQVRP UlMpKQotCWdmY19lcnJvcl9ub3cgKCJTb3JyeSwgJXFzIGNsYXVzZSBhdCAlTCBvbiBSRVFV SVJFUyBkaXJlY3RpdmUgaXMgbm90ICIKLQkJICAgICAgICJ5ZXQgc3VwcG9ydGVkIiwgY2xh dXNlLCAmb2xkX2xvYyk7CiAgICAgICBpZiAoIWdmY19vbXBfcmVxdWlyZXNfYWRkX2NsYXVz ZSAocmVxdWlyZXNfY2xhdXNlLCBjbGF1c2UsICZvbGRfbG9jLCBOVUxMKSkKIAlnb3RvIGVy cm9yOwogICAgICAgcmVxdWlyZXNfY2xhdXNlcyB8PSByZXF1aXJlc19jbGF1c2U7CmRpZmYg LS1naXQgYS9nY2MvZm9ydHJhbi9wYXJzZS5jYyBiL2djYy9mb3J0cmFuL3BhcnNlLmNjCmlu ZGV4IDczNTZkMWI1YTNhLi4wYjRjNTk2OTk2YyAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4v cGFyc2UuY2MKKysrIGIvZ2NjL2ZvcnRyYW4vcGFyc2UuY2MKQEAgLTExNjgsNyArMTE2OCw4 IEBAIGRlY29kZV9vbXBfZGlyZWN0aXZlICh2b2lkKQogICAgIH0KICAgc3dpdGNoIChyZXQp CiAgICAgewotICAgIGNhc2UgU1RfT01QX0RFQ0xBUkVfVEFSR0VUOgorICAgIC8qIFNldCBv bXBfdGFyZ2V0X3NlZW47IGV4Y2x1ZGUgU1RfT01QX0RFQ0xBUkVfVEFSR0VULgorICAgICAg IEZJWE1FOiBHZXQgY2xhcmlmaWNhdGlvbiwgY2YuIE9wZW5NUCBTcGVjIElzc3VlICMzMjQw LiAgKi8KICAgICBjYXNlIFNUX09NUF9UQVJHRVQ6CiAgICAgY2FzZSBTVF9PTVBfVEFSR0VU X0RBVEE6CiAgICAgY2FzZSBTVF9PTVBfVEFSR0VUX0VOVEVSX0RBVEE6CkBAIC02ODc5LDEx ICs2ODgwLDE0IEBAIGRvbmU6CiAKICAgLyogRml4dXAgZm9yIGV4dGVybmFsIHByb2NlZHVy ZXMgYW5kIHJlc29sdmUgJ29tcCByZXF1aXJlcycuICAqLwogICBpbnQgb21wX3JlcXVpcmVz OworICBib29sIG9tcF90YXJnZXRfc2VlbjsKICAgb21wX3JlcXVpcmVzID0gMDsKKyAgb21w X3RhcmdldF9zZWVuID0gZmFsc2U7CiAgIGZvciAoZ2ZjX2N1cnJlbnRfbnMgPSBnZmNfZ2xv YmFsX25zX2xpc3Q7IGdmY19jdXJyZW50X25zOwogICAgICAgIGdmY19jdXJyZW50X25zID0g Z2ZjX2N1cnJlbnRfbnMtPnNpYmxpbmcpCiAgICAgewogICAgICAgb21wX3JlcXVpcmVzIHw9 IGdmY19jdXJyZW50X25zLT5vbXBfcmVxdWlyZXM7CisgICAgICBvbXBfdGFyZ2V0X3NlZW4g fD0gZ2ZjX2N1cnJlbnRfbnMtPm9tcF90YXJnZXRfc2VlbjsKICAgICAgIGdmY19jaGVja19l eHRlcm5hbHMgKGdmY19jdXJyZW50X25zKTsKICAgICB9CiAgIGZvciAoZ2ZjX2N1cnJlbnRf bnMgPSBnZmNfZ2xvYmFsX25zX2xpc3Q7IGdmY19jdXJyZW50X25zOwpAQCAtNjkwOCw2ICs2 OTEyLDIyIEBAIGRvbmU6CiAgICAgICBicmVhazsKICAgICB9CiAKKyAgaWYgKG9tcF90YXJn ZXRfc2VlbikKKyAgICBvbXBfcmVxdWlyZXNfbWFzayA9IChlbnVtIG9tcF9yZXF1aXJlcykg KG9tcF9yZXF1aXJlc19tYXNrCisJCQkJCSAgICAgfCBPTVBfUkVRVUlSRVNfVEFSR0VUX1VT RUQpOworICBpZiAob21wX3JlcXVpcmVzICYgT01QX1JFUV9SRVZFUlNFX09GRkxPQUQpCisg ICAgb21wX3JlcXVpcmVzX21hc2sgPSAoZW51bSBvbXBfcmVxdWlyZXMpIChvbXBfcmVxdWly ZXNfbWFzaworCQkJCQkgICAgIHwgT01QX1JFUVVJUkVTX1JFVkVSU0VfT0ZGTE9BRCk7Cisg IGlmIChvbXBfcmVxdWlyZXMgJiBPTVBfUkVRX1VOSUZJRURfQUREUkVTUykKKyAgICBvbXBf cmVxdWlyZXNfbWFzayA9IChlbnVtIG9tcF9yZXF1aXJlcykgKG9tcF9yZXF1aXJlc19tYXNr CisJCQkJCSAgICAgfCBPTVBfUkVRVUlSRVNfVU5JRklFRF9BRERSRVNTKTsKKyAgaWYgKG9t cF9yZXF1aXJlcyAmIE9NUF9SRVFfVU5JRklFRF9TSEFSRURfTUVNT1JZKQorICAgIG9tcF9y ZXF1aXJlc19tYXNrCisJICA9IChlbnVtIG9tcF9yZXF1aXJlcykgKG9tcF9yZXF1aXJlc19t YXNrCisJCQkJIHwgT01QX1JFUVVJUkVTX1VOSUZJRURfU0hBUkVEX01FTU9SWSk7CisgIGlm IChvbXBfcmVxdWlyZXMgJiBPTVBfUkVRX0RZTkFNSUNfQUxMT0NBVE9SUykKKyAgICBvbXBf cmVxdWlyZXNfbWFzayA9IChlbnVtIG9tcF9yZXF1aXJlcykgKG9tcF9yZXF1aXJlc19tYXNr CisJCQkJCSAgICAgfCBPTVBfUkVRVUlSRVNfRFlOQU1JQ19BTExPQ0FUT1JTKTsKICAgLyog RG8gdGhlIHBhcnNlIHRyZWUgZHVtcC4gICovCiAgIGdmY19jdXJyZW50X25zID0gZmxhZ19k dW1wX2ZvcnRyYW5fb3JpZ2luYWwgPyBnZmNfZ2xvYmFsX25zX2xpc3QgOiBOVUxMOwogCmRp ZmYgLS1naXQgYS9nY2MvbHRvLWNncmFwaC5jYyBiL2djYy9sdG8tY2dyYXBoLmNjCmluZGV4 IDIzNzc0M2VmMGJhLi40ODYyOTY1MWUzMSAxMDA2NDQKLS0tIGEvZ2NjL2x0by1jZ3JhcGgu Y2MKKysrIGIvZ2NjL2x0by1jZ3JhcGguY2MKQEAgLTM3LDYgKzM3LDcgQEAgYWxvbmcgd2l0 aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUKICNpbmNsdWRlICJw YXNzX21hbmFnZXIuaCIKICNpbmNsdWRlICJpcGEtdXRpbHMuaCIKICNpbmNsdWRlICJvbXAt b2ZmbG9hZC5oIgorI2luY2x1ZGUgIm9tcC1nZW5lcmFsLmgiCiAjaW5jbHVkZSAic3RyaW5n cG9vbC5oIgogI2luY2x1ZGUgImF0dHJpYnMuaCIKICNpbmNsdWRlICJhbGxvYy1wb29sLmgi CkBAIC0xMDY4LDcgKzEwNjksMTAgQEAgcmVhZF9zdHJpbmcgKGNsYXNzIGx0b19pbnB1dF9i bG9jayAqaWIpCiB2b2lkCiBvdXRwdXRfb2ZmbG9hZF90YWJsZXMgKHZvaWQpCiB7Ci0gIGlm ICh2ZWNfc2FmZV9pc19lbXB0eSAob2ZmbG9hZF9mdW5jcykgJiYgdmVjX3NhZmVfaXNfZW1w dHkgKG9mZmxvYWRfdmFycykpCisgIGJvb2wgb3V0cHV0X3JlcXVpcmVzID0gKGZsYWdfb3Bl bm1wCisJCQkgICYmIChvbXBfcmVxdWlyZXNfbWFzayAmIE9NUF9SRVFVSVJFU19UQVJHRVRf VVNFRCkgIT0gMCk7CisgIGlmICh2ZWNfc2FmZV9pc19lbXB0eSAob2ZmbG9hZF9mdW5jcykg JiYgdmVjX3NhZmVfaXNfZW1wdHkgKG9mZmxvYWRfdmFycykKKyAgICAgICYmICFvdXRwdXRf cmVxdWlyZXMpCiAgICAgcmV0dXJuOwogCiAgIHN0cnVjdCBsdG9fc2ltcGxlX291dHB1dF9i bG9jayAqb2IKQEAgLTEwOTgsNiArMTEwMiwxOSBAQCBvdXRwdXRfb2ZmbG9hZF90YWJsZXMg KHZvaWQpCiAJCQkgICAgICAgKCpvZmZsb2FkX3ZhcnMpW2ldKTsKICAgICB9CiAKKyAgaWYg KG91dHB1dF9yZXF1aXJlcykKKyAgICB7CisgICAgICBIT1NUX1dJREVfSU5UIHZhbCA9ICgo SE9TVF9XSURFX0lOVCkgb21wX3JlcXVpcmVzX21hc2sKKwkJCSAgICYgKE9NUF9SRVFVSVJF U19VTklGSUVEX0FERFJFU1MKKwkJCSAgICAgIHwgT01QX1JFUVVJUkVTX1VOSUZJRURfU0hB UkVEX01FTU9SWQorCQkJICAgICAgfCBPTVBfUkVRVUlSRVNfUkVWRVJTRV9PRkZMT0FECisJ CQkgICAgICB8IE9NUF9SRVFVSVJFU19UQVJHRVRfVVNFRCkpOworICAgICAgLyogKE1pcyl1 c2UgTFRPX3N5bXRhYl9lZGdlIGZvciB0aGlzIHZhcmlhYmxlLiAgKi8KKyAgICAgIHN0cmVh bWVyX3dyaXRlX2VudW0gKG9iLT5tYWluX3N0cmVhbSwgTFRPX3N5bXRhYl90YWdzLAorCQkJ ICAgTFRPX3N5bXRhYl9sYXN0X3RhZywgTFRPX3N5bXRhYl9lZGdlKTsKKyAgICAgIHN0cmVh bWVyX3dyaXRlX2h3aV9zdHJlYW0gKG9iLT5tYWluX3N0cmVhbSwgdmFsKTsKKyAgICB9CisK ICAgc3RyZWFtZXJfd3JpdGVfdWh3aV9zdHJlYW0gKG9iLT5tYWluX3N0cmVhbSwgMCk7CiAg IGx0b19kZXN0cm95X3NpbXBsZV9vdXRwdXRfYmxvY2sgKG9iKTsKIApAQCAtMTc2NCw2ICsx NzgxLDIwIEBAIGlucHV0X3N5bXRhYiAodm9pZCkKICAgICB9CiB9CiAKK3N0YXRpYyB2b2lk CitvbXBfcmVxdWlyZXNfdG9fbmFtZSAoY2hhciAqYnVmLCBzaXplX3Qgc2l6ZSwgSE9TVF9X SURFX0lOVCByZXF1aXJlc19tYXNrKQoreworICBjaGFyICplbmQgPSBidWYgKyBzaXplLCAq cCA9IGJ1ZjsKKyAgaWYgKHJlcXVpcmVzX21hc2sgJiBHT01QX1JFUVVJUkVTX1VOSUZJRURf QUREUkVTUykKKyAgICBwICs9IHNucHJpbnRmIChwLCBlbmQgLSBwLCAidW5pZmllZF9hZGRy ZXNzIik7CisgIGlmIChyZXF1aXJlc19tYXNrICYgR09NUF9SRVFVSVJFU19VTklGSUVEX1NI QVJFRF9NRU1PUlkpCisgICAgcCArPSBzbnByaW50ZiAocCwgZW5kIC0gcCwgIiVzdW5pZmll ZF9zaGFyZWRfbWVtb3J5IiwKKwkJICAgKHAgPT0gYnVmID8gIiIgOiAiLCAiKSk7CisgIGlm IChyZXF1aXJlc19tYXNrICYgR09NUF9SRVFVSVJFU19SRVZFUlNFX09GRkxPQUQpCisgICAg cCArPSBzbnByaW50ZiAocCwgZW5kIC0gcCwgIiVzcmV2ZXJzZV9vZmZsb2FkIiwKKwkJICAg KHAgPT0gYnVmID8gIiIgOiAiLCAiKSk7Cit9CisKIC8qIElucHV0IGZ1bmN0aW9uL3Zhcmlh YmxlIHRhYmxlcyB0aGF0IHdpbGwgYWxsb3cgbGliZ29tcCB0byBsb29rIHVwIG9mZmxvYWQK ICAgIHRhcmdldCBjb2RlLCBhbmQgc3RvcmUgdGhlbSBpbnRvIE9GRkxPQURfRlVOQ1MgYW5k IE9GRkxPQURfVkFSUy4gICovCiAKQEAgLTE3NzMsNiArMTgwNCwxMCBAQCBpbnB1dF9vZmZs b2FkX3RhYmxlcyAoYm9vbCBkb19mb3JjZV9vdXRwdXQpCiAgIHN0cnVjdCBsdG9fZmlsZV9k ZWNsX2RhdGEgKipmaWxlX2RhdGFfdmVjID0gbHRvX2dldF9maWxlX2RlY2xfZGF0YSAoKTsK ICAgc3RydWN0IGx0b19maWxlX2RlY2xfZGF0YSAqZmlsZV9kYXRhOwogICB1bnNpZ25lZCBp bnQgaiA9IDA7CisgIGNvbnN0IGNoYXIgKnJlcXVpcmVzX2ZuID0gTlVMTDsKKyAgdHJlZSBy ZXF1aXJlc19kZWNsID0gTlVMTF9UUkVFOworCisgIG9tcF9yZXF1aXJlc19tYXNrID0gKG9t cF9yZXF1aXJlcykgMDsKIAogICB3aGlsZSAoKGZpbGVfZGF0YSA9IGZpbGVfZGF0YV92ZWNb aisrXSkpCiAgICAgewpAQCAtMTc4NCw2ICsxODE5LDcgQEAgaW5wdXRfb2ZmbG9hZF90YWJs ZXMgKGJvb2wgZG9fZm9yY2Vfb3V0cHV0KQogICAgICAgaWYgKCFpYikKIAljb250aW51ZTsK IAorICAgICAgdHJlZSB0bXBfZGVjbCA9IE5VTExfVFJFRTsKICAgICAgIGVudW0gTFRPX3N5 bXRhYl90YWdzIHRhZwogCT0gc3RyZWFtZXJfcmVhZF9lbnVtIChpYiwgTFRPX3N5bXRhYl90 YWdzLCBMVE9fc3ltdGFiX2xhc3RfdGFnKTsKICAgICAgIHdoaWxlICh0YWcpCkBAIC0xNzk5 LDYgKzE4MzUsNyBAQCBpbnB1dF9vZmZsb2FkX3RhYmxlcyAoYm9vbCBkb19mb3JjZV9vdXRw dXQpCiAJCSBMVE8gbW9kZS4gICovCiAJICAgICAgaWYgKGRvX2ZvcmNlX291dHB1dCkKIAkJ Y2dyYXBoX25vZGU6OmdldCAoZm5fZGVjbCktPm1hcmtfZm9yY2Vfb3V0cHV0ICgpOworCSAg ICAgIHRtcF9kZWNsID0gZm5fZGVjbDsKIAkgICAgfQogCSAgZWxzZSBpZiAodGFnID09IExU T19zeW10YWJfdmFyaWFibGUpCiAJICAgIHsKQEAgLTE4MTAsNiArMTg0Nyw3MiBAQCBpbnB1 dF9vZmZsb2FkX3RhYmxlcyAoYm9vbCBkb19mb3JjZV9vdXRwdXQpCiAJCSBtYXkgYmUgbm8g cmVmcyB0byB2YXJfZGVjbCBpbiBvZmZsb2FkIExUTyBtb2RlLiAgKi8KIAkgICAgICBpZiAo ZG9fZm9yY2Vfb3V0cHV0KQogCQl2YXJwb29sX25vZGU6OmdldCAodmFyX2RlY2wpLT5mb3Jj ZV9vdXRwdXQgPSAxOworCSAgICAgIHRtcF9kZWNsID0gdmFyX2RlY2w7CisJICAgIH0KKwkg IGVsc2UgaWYgKHRhZyA9PSBMVE9fc3ltdGFiX2VkZ2UpCisJICAgIHsKKwkgICAgICBzdGF0 aWMgYm9vbCBlcnJvcl9lbWl0dGVkID0gZmFsc2U7CisJICAgICAgSE9TVF9XSURFX0lOVCB2 YWwgPSBzdHJlYW1lcl9yZWFkX2h3aSAoaWIpOworCisJICAgICAgaWYgKG9tcF9yZXF1aXJl c19tYXNrID09IDApCisJCXsKKwkJICBvbXBfcmVxdWlyZXNfbWFzayA9IChvbXBfcmVxdWly ZXMpIHZhbDsKKwkJICByZXF1aXJlc19kZWNsID0gdG1wX2RlY2w7CisJCSAgcmVxdWlyZXNf Zm4gPSBmaWxlX2RhdGEtPmZpbGVfbmFtZTsKKwkJfQorCSAgICAgIGVsc2UgaWYgKG9tcF9y ZXF1aXJlc19tYXNrICE9IHZhbCAmJiAhZXJyb3JfZW1pdHRlZCkKKwkJeworCQkgIGNvbnN0 IGNoYXIgKmZuMSA9IHJlcXVpcmVzX2ZuOworCQkgIGlmIChyZXF1aXJlc19kZWNsICE9IE5V TExfVFJFRSkKKwkJICAgIHsKKwkJICAgICAgd2hpbGUgKERFQ0xfQ09OVEVYVCAocmVxdWly ZXNfZGVjbCkgIT0gTlVMTF9UUkVFCisJCQkgICAgICYmIFRSRUVfQ09ERSAocmVxdWlyZXNf ZGVjbCkgIT0gVFJBTlNMQVRJT05fVU5JVF9ERUNMKQorCQkJcmVxdWlyZXNfZGVjbCA9IERF Q0xfQ09OVEVYVCAocmVxdWlyZXNfZGVjbCk7CisJCSAgICAgIGlmIChyZXF1aXJlc19kZWNs ICE9IE5VTExfVFJFRSkKKwkJCWZuMSA9IElERU5USUZJRVJfUE9JTlRFUiAoREVDTF9OQU1F IChyZXF1aXJlc19kZWNsKSk7CisJCSAgICB9CisKKwkJICBjb25zdCBjaGFyICpmbjIgPSBm aWxlX2RhdGEtPmZpbGVfbmFtZTsKKwkJICBpZiAodG1wX2RlY2wgIT0gTlVMTF9UUkVFKQor CQkgICAgeworCQkgICAgICB3aGlsZSAoREVDTF9DT05URVhUICh0bXBfZGVjbCkgIT0gTlVM TF9UUkVFCisJCQkgICAgICYmIFRSRUVfQ09ERSAodG1wX2RlY2wpICE9IFRSQU5TTEFUSU9O X1VOSVRfREVDTCkKKwkJCXRtcF9kZWNsID0gREVDTF9DT05URVhUICh0bXBfZGVjbCk7CisJ CSAgICAgIGlmICh0bXBfZGVjbCAhPSBOVUxMX1RSRUUpCisJCQlmbjIgPSBJREVOVElGSUVS X1BPSU5URVIgKERFQ0xfTkFNRSAocmVxdWlyZXNfZGVjbCkpOworCQkgICAgfQorCisJCSAg Y2hhciBidWYxW3NpemVvZiAoInVuaWZpZWRfYWRkcmVzcywgdW5pZmllZF9zaGFyZWRfbWVt b3J5LCAiCisJCQkJICAgICJyZXZlcnNlX29mZmxvYWQiKV07CisJCSAgY2hhciBidWYyW3Np emVvZiAoInVuaWZpZWRfYWRkcmVzcywgdW5pZmllZF9zaGFyZWRfbWVtb3J5LCAiCisJCQkJ ICAgICJyZXZlcnNlX29mZmxvYWQiKV07CisJCSAgb21wX3JlcXVpcmVzX3RvX25hbWUgKGJ1 ZjIsIHNpemVvZiAoYnVmMiksCisJCQkJCXZhbCAhPSBPTVBfUkVRVUlSRVNfVEFSR0VUX1VT RUQKKwkJCQkJPyB2YWwKKwkJCQkJOiAoSE9TVF9XSURFX0lOVCkgb21wX3JlcXVpcmVzX21h c2spOworCQkgIGlmICh2YWwgIT0gT01QX1JFUVVJUkVTX1RBUkdFVF9VU0VECisJCSAgICAg ICYmIG9tcF9yZXF1aXJlc19tYXNrICE9IE9NUF9SRVFVSVJFU19UQVJHRVRfVVNFRCkKKwkJ ICAgIHsKKwkJICAgICAgb21wX3JlcXVpcmVzX3RvX25hbWUgKGJ1ZjEsIHNpemVvZiAoYnVm MSksCisJCQkJCSAgICBvbXBfcmVxdWlyZXNfbWFzayk7CisJCSAgICAgIGVycm9yICgiT3Bl bk1QICU8cmVxdWlyZXMlPiBkaXJlY3RpdmUgd2l0aCBub24taWRlbnRpY2FsICIKKwkJCSAg ICAgImNsYXVzZXMgaW4gbXVsdGlwbGUgY29tcGlsYXRpb24gdW5pdHM6ICVxcyB2cy4gIgor CQkJICAgICAiJXFzIiwgYnVmMSwgYnVmMik7CisJCSAgICAgIGluZm9ybSAoVU5LTk9XTl9M T0NBVElPTiwgIiVxcyBoYXMgJXFzIiwgZm4xLCBidWYxKTsKKwkJICAgICAgaW5mb3JtIChV TktOT1dOX0xPQ0FUSU9OLCAiJXFzIGhhcyAlcXMiLCBmbjIsIGJ1ZjIpOworCQkgICAgfQor CQkgIGVsc2UKKwkJICAgIHsKKwkJICAgICAgZXJyb3IgKCJPcGVuTVAgJTxyZXF1aXJlcyU+ IGRpcmVjdGl2ZSB3aXRoICVxcyBzcGVjaWZpZWQgIgorCQkJICAgICAib25seSBpbiBzb21l IGNvbXBpbGF0aW9uIHVuaXRzIiwgYnVmMik7CisJCSAgICAgIGluZm9ybSAoVU5LTk9XTl9M T0NBVElPTiwgIiVxcyBoYXMgJXFzIiwKKwkJCSAgICAgIHZhbCAhPSBPTVBfUkVRVUlSRVNf VEFSR0VUX1VTRUQgPyBmbjIgOiBmbjEsCisJCQkgICAgICBidWYyKTsKKwkJICAgICAgaW5m b3JtIChVTktOT1dOX0xPQ0FUSU9OLCAiYnV0ICVxcyBoYXMgbm90IiwKKwkJCSAgICAgIHZh bCAhPSBPTVBfUkVRVUlSRVNfVEFSR0VUX1VTRUQgPyBmbjEgOiBmbjIpOworCQkgICAgfQor CQkgIGVycm9yX2VtaXR0ZWQgPSB0cnVlOworCQl9CiAJICAgIH0KIAkgIGVsc2UKIAkgICAg ZmF0YWxfZXJyb3IgKGlucHV0X2xvY2F0aW9uLApAQCAtMTgyMSw2ICsxOTI0LDE4IEBAIGlu cHV0X29mZmxvYWRfdGFibGVzIChib29sIGRvX2ZvcmNlX291dHB1dCkKICAgICAgIGx0b19k ZXN0cm95X3NpbXBsZV9pbnB1dF9ibG9jayAoZmlsZV9kYXRhLCBMVE9fc2VjdGlvbl9vZmZs b2FkX3RhYmxlLAogCQkJCSAgICAgIGliLCBkYXRhLCBsZW4pOwogICAgIH0KKyNpZmRlZiBB Q0NFTF9DT01QSUxFUgorICBjaGFyICpvbXBfcmVxdWlyZXNfZmlsZSA9IGdldGVudiAoIkdD Q19PRkZMT0FEX09NUF9SRVFVSVJFU19GSUxFIik7CisgIGlmIChvbXBfcmVxdWlyZXNfZmls ZSA9PSBOVUxMIHx8IG9tcF9yZXF1aXJlc19maWxlWzBdID09ICdcMCcpCisgICAgZmF0YWxf ZXJyb3IgKGlucHV0X2xvY2F0aW9uLCAiR0NDX09GRkxPQURfT01QX1JFUVVJUkVTX0ZJTEUg dW5zZXQiKTsKKyAgRklMRSAqZiA9IGZvcGVuIChvbXBfcmVxdWlyZXNfZmlsZSwgIndiIik7 CisgIGlmICghZikKKyAgICBmYXRhbF9lcnJvciAoaW5wdXRfbG9jYXRpb24sICJDYW5ub3Qg b3BlbiBvbXBfcmVxdWlyZXMgZmlsZSAlcXMiLAorCQkgb21wX3JlcXVpcmVzX2ZpbGUpOwor ICB1aW50MzJfdCByZXFfbWFzayA9IG9tcF9yZXF1aXJlc19tYXNrOworICBmd3JpdGUgKCZy ZXFfbWFzaywgc2l6ZW9mIChyZXFfbWFzayksIDEsIGYpOworICBmY2xvc2UgKGYpOworI2Vu ZGlmCiB9CiAKIC8qIFRydWUgd2hlbiB3ZSBuZWVkIG9wdGltaXphdGlvbiBzdW1tYXJ5IGZv ciBOT0RFLiAgKi8KZGlmZiAtLWdpdCBhL2djYy9vbXAtbG93LmNjIGIvZ2NjL29tcC1sb3cu Y2MKaW5kZXggYjlkNTUyOWYyMTIuLmQ3M2MxNjVmMDI5IDEwMDY0NAotLS0gYS9nY2Mvb21w LWxvdy5jYworKysgYi9nY2Mvb21wLWxvdy5jYwpAQCAtMTI3MDEsNiArMTI3MDEsMTEgQEAg bG93ZXJfb21wX3RhcmdldCAoZ2ltcGxlX3N0bXRfaXRlcmF0b3IgKmdzaV9wLCBvbXBfY29u dGV4dCAqY3R4KQogICAgICAgZ2NjX3VucmVhY2hhYmxlICgpOwogICAgIH0KIAorICAvKiBF bnN1cmUgdGhhdCByZXF1aXJlcyBtYXAgaXMgd3JpdHRlbiB2aWEgb3V0cHV0X29mZmxvYWRf dGFibGVzLCBldmVuIGlmIG9ubHkKKyAgICAgJ3RhcmdldCAoZW50ZXIvZXhpdCkgZGF0YScg aXMgdXNlZCBpbiB0aGUgdHJhbnNsYXRpb24gdW5pdC4gICovCisgIGlmIChFTkFCTEVfT0ZG TE9BRElORyAmJiAob21wX3JlcXVpcmVzX21hc2sgJiBPTVBfUkVRVUlSRVNfVEFSR0VUX1VT RUQpKQorICAgIGctPmhhdmVfb2ZmbG9hZCA9IHRydWU7CisKICAgY2xhdXNlcyA9IGdpbXBs ZV9vbXBfdGFyZ2V0X2NsYXVzZXMgKHN0bXQpOwogCiAgIGdpbXBsZV9zZXEgZGVwX2lsaXN0 ID0gTlVMTDsKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL2dvbXAv cmVxdWlyZXMtNC5jIGIvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vZ29tcC9yZXF1aXJl cy00LmMKaW5kZXggODhiYTc3NDZjZjguLjhmNDVkODNlYTZlIDEwMDY0NAotLS0gYS9nY2Mv dGVzdHN1aXRlL2MtYysrLWNvbW1vbi9nb21wL3JlcXVpcmVzLTQuYworKysgYi9nY2MvdGVz dHN1aXRlL2MtYysrLWNvbW1vbi9nb21wL3JlcXVpcmVzLTQuYwpAQCAtOSw1ICs5LDMgQEAg Zm9vICh2b2lkKQogI3ByYWdtYSBvbXAgcmVxdWlyZXMgdW5pZmllZF9zaGFyZWRfbWVtb3J5 CS8qIHsgZGctZXJyb3IgIid1bmlmaWVkX3NoYXJlZF9tZW1vcnknIGNsYXVzZSB1c2VkIGxl eGljYWxseSBhZnRlciBmaXJzdCB0YXJnZXQgY29uc3RydWN0IG9yIG9mZmxvYWRpbmcgQVBJ IiB9ICovCiAjcHJhZ21hIG9tcCByZXF1aXJlcyB1bmlmaWVkX2FkZHJlc3MJLyogeyBkZy1l cnJvciAiJ3VuaWZpZWRfYWRkcmVzcycgY2xhdXNlIHVzZWQgbGV4aWNhbGx5IGFmdGVyIGZp cnN0IHRhcmdldCBjb25zdHJ1Y3Qgb3Igb2ZmbG9hZGluZyBBUEkiIH0gKi8KICNwcmFnbWEg b21wIHJlcXVpcmVzIHJldmVyc2Vfb2ZmbG9hZAkvKiB7IGRnLWVycm9yICIncmV2ZXJzZV9v ZmZsb2FkJyBjbGF1c2UgdXNlZCBsZXhpY2FsbHkgYWZ0ZXIgZmlyc3QgdGFyZ2V0IGNvbnN0 cnVjdCBvciBvZmZsb2FkaW5nIEFQSSIgfSAqLwotCi0vKiB7IGRnLXBydW5lLW91dHB1dCAi bm90IHN1cHBvcnRlZCB5ZXQiIH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvYy1j KystY29tbW9uL2dvbXAvcmV2ZXJzZS1vZmZsb2FkLTEuYyBiL2djYy90ZXN0c3VpdGUvYy1j KystY29tbW9uL2dvbXAvcmV2ZXJzZS1vZmZsb2FkLTEuYwppbmRleCA5YTNmYTUyMzBmOC4u MzQ1MjE1NmY5NDggMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL2dv bXAvcmV2ZXJzZS1vZmZsb2FkLTEuYworKysgYi9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1v bi9nb21wL3JldmVyc2Utb2ZmbG9hZC0xLmMKQEAgLTQzLDcgKzQzLDcgQEAgdGdfZm4gKGlu dCAqeCwgaW50ICp5KQogICB4MiA9IHgyICsgMiArIGNhbGxlZF9pbl90YXJnZXQxICgpOwog ICB5MiA9IHkyICsgNzsKIAotICAjcHJhZ21hIG9tcCB0YXJnZXQgZGV2aWNlKGFuY2VzdG9y IDogMSkgbWFwKHRvZnJvbTogeDIpCisgICNwcmFnbWEgb21wIHRhcmdldCBkZXZpY2UoYW5j ZXN0b3IgOiAxKSBtYXAodG9mcm9tOiB4MikgIC8qIHsgZGctbWVzc2FnZSAic29ycnksIHVu aW1wbGVtZW50ZWQ6ICdhbmNlc3Rvcicgbm90IHlldCBzdXBwb3J0ZWQiIH0gKi8KICAgICBj aGVja19vZmZsb2FkKCZ4MiwgJnkyKTsKIAogICBpZiAoeDIgIT0gMisyKzMrNDIgfHwgeTIg IT0gMyArIDcpCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9nb21w L3RhcmdldC1kZXZpY2UtYW5jZXN0b3ItMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21t b24vZ29tcC90YXJnZXQtZGV2aWNlLWFuY2VzdG9yLTIuYwppbmRleCBjZjA1YzUwNTAwNC4u YjE2ZTcwMWJkNWEgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL2dv bXAvdGFyZ2V0LWRldmljZS1hbmNlc3Rvci0yLmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9jLWMr Ky1jb21tb24vZ29tcC90YXJnZXQtZGV2aWNlLWFuY2VzdG9yLTIuYwpAQCAtMSwxMyArMSwx MSBAQAogLyogeyBkZy1kbyBjb21waWxlIH0gKi8KIAotI3ByYWdtYSBvbXAgcmVxdWlyZXMg cmV2ZXJzZV9vZmZsb2FkIC8qIHsgZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6 ICdyZXZlcnNlX29mZmxvYWQnIGNsYXVzZSBvbiAncmVxdWlyZXMnIGRpcmVjdGl2ZSBub3Qg c3VwcG9ydGVkIHlldCIgfSAqLworI3ByYWdtYSBvbXAgcmVxdWlyZXMgcmV2ZXJzZV9vZmZs b2FkCiAKIHZvaWQKIGZvbyAoaW50IG4pCiB7Ci0gIC8qIFRoZSBmb2xsb3dpbmcgdGVzdCBp cyBtYXJrZWQgd2l0aCAneGZhaWwnIGJlY2F1c2UgYSBwcmV2aW91cyAnc29ycnknIGZyb20K LSAgICAgJ3JldmVyc2Vfb2ZmbG9hZCcgc3VwcHJlc3NlcyB0aGUgJ3NvcnJ5JyBmb3IgJ2Fu Y2VzdG9yJy4gICovCi0gICNwcmFnbWEgb21wIHRhcmdldCBkZXZpY2UgKGFuY2VzdG9yOiAx KSAvKiB7IGRnLW1lc3NhZ2UgIiIgInNvcnJ5LCB1bmltcGxlbWVudGVkOiAnYW5jZXN0b3In IG5vdCB5ZXQgc3VwcG9ydGVkIiB7IHhmYWlsICotKi0qIH0gfSAqLworICAjcHJhZ21hIG9t cCB0YXJnZXQgZGV2aWNlIChhbmNlc3RvcjogMSkKICAgOwogCiAKQEAgLTE5LDkgKzE3LDkg QEAgZm9vIChpbnQgbikKICAgI3ByYWdtYSBvbXAgdGFyZ2V0IGRldmljZSAoYW5jZXN0b3Ig OiA0MikgLyogeyBkZy1lcnJvciAidGhlICdkZXZpY2UnIGNsYXVzZSBleHByZXNzaW9uIG11 c3QgZXZhbHVhdGUgdG8gJzEnIiB9ICovCiAgIDsKIAotICAjcHJhZ21hIG9tcCB0YXJnZXQg ZGV2aWNlIChhbmNlc3RvciA6IG4pIC8qIHsgZGctbWVzc2FnZSAiIiAic29ycnksIHVuaW1w bGVtZW50ZWQ6ICdhbmNlc3Rvcicgbm90IHlldCBzdXBwb3J0ZWQiIHsgeGZhaWwgKi0qLSog fSB9ICovCisgICNwcmFnbWEgb21wIHRhcmdldCBkZXZpY2UgKGFuY2VzdG9yIDogbikKICAg OwotICAjcHJhZ21hIG9tcCB0YXJnZXQgZGV2aWNlIChhbmNlc3RvciA6IG4gKyAxKSAvKiB7 IGRnLW1lc3NhZ2UgIiIgInNvcnJ5LCB1bmltcGxlbWVudGVkOiAnYW5jZXN0b3InIG5vdCB5 ZXQgc3VwcG9ydGVkIiB7IHhmYWlsICotKi0qIH0gfSAqLworICAjcHJhZ21hIG9tcCB0YXJn ZXQgZGV2aWNlIChhbmNlc3RvciA6IG4gKyAxKQogICA7CiAKIApkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vZ29tcC90YXJnZXQtZGV2aWNlLWFuY2VzdG9yLTMu YyBiL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL2dvbXAvdGFyZ2V0LWRldmljZS1hbmNl c3Rvci0zLmMKaW5kZXggZWE2ZTVhMGNmNmMuLmQxNjU5MDEwN2QyIDEwMDY0NAotLS0gYS9n Y2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9nb21wL3RhcmdldC1kZXZpY2UtYW5jZXN0b3It My5jCisrKyBiL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL2dvbXAvdGFyZ2V0LWRldmlj ZS1hbmNlc3Rvci0zLmMKQEAgLTExLDcgKzExLDcgQEAgaW50IGJhciAodm9pZCk7CiAKIC8q IHsgZGctZG8gY29tcGlsZSB9ICovCiAKLSNwcmFnbWEgb21wIHJlcXVpcmVzIHJldmVyc2Vf b2ZmbG9hZCAvKiB7IGRnLW1lc3NhZ2UgInNvcnJ5LCB1bmltcGxlbWVudGVkOiAncmV2ZXJz ZV9vZmZsb2FkJyBjbGF1c2Ugb24gJ3JlcXVpcmVzJyBkaXJlY3RpdmUgbm90IHN1cHBvcnRl ZCB5ZXQiIH0gKi8KKyNwcmFnbWEgb21wIHJlcXVpcmVzIHJldmVyc2Vfb2ZmbG9hZAogCiB2 b2lkCiBmb28gKHZvaWQpCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1v bi9nb21wL3RhcmdldC1kZXZpY2UtYW5jZXN0b3ItNC5jIGIvZ2NjL3Rlc3RzdWl0ZS9jLWMr Ky1jb21tb24vZ29tcC90YXJnZXQtZGV2aWNlLWFuY2VzdG9yLTQuYwppbmRleCBiNGI1NjIw YmJjMC4uMjQxMjM0ZjhkYWYgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvYy1jKystY29t bW9uL2dvbXAvdGFyZ2V0LWRldmljZS1hbmNlc3Rvci00LmMKKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9jLWMrKy1jb21tb24vZ29tcC90YXJnZXQtZGV2aWNlLWFuY2VzdG9yLTQuYwpAQCAtNCwx MiArNCwxMiBAQAogICAvKiBUZXN0IHRvIGVuc3VyZSB0aGF0IGRldmljZS1tb2RpZmllciAn YW5jZXN0b3InIGlzIHBhcnNlZCBjb3JyZWN0bHkgaW4KICAgICAgZGV2aWNlIGNsYXVzZXMu ICovCiAKLSNwcmFnbWEgb21wIHJlcXVpcmVzIHJldmVyc2Vfb2ZmbG9hZCAvKiB7IGRnLW1l c3NhZ2UgInNvcnJ5LCB1bmltcGxlbWVudGVkOiAncmV2ZXJzZV9vZmZsb2FkJyBjbGF1c2Ug b24gJ3JlcXVpcmVzJyBkaXJlY3RpdmUgbm90IHN1cHBvcnRlZCB5ZXQiIH0gKi8KKyNwcmFn bWEgb21wIHJlcXVpcmVzIHJldmVyc2Vfb2ZmbG9hZAogCiB2b2lkCiBmb28gKHZvaWQpCiB7 Ci0gICNwcmFnbWEgb21wIHRhcmdldCBkZXZpY2UgKGFuY2VzdG9yOiAxKSAvKiB7IGRnLW1l c3NhZ2UgIiIgInNvcnJ5LCB1bmltcGxlbWVudGVkOiAnYW5jZXN0b3InIG5vdCB5ZXQgc3Vw cG9ydGVkIiB7IHhmYWlsICotKi0qIH0gfSAqLworICAjcHJhZ21hIG9tcCB0YXJnZXQgZGV2 aWNlIChhbmNlc3RvcjogMSkgLyogeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5pbXBsZW1lbnRl ZDogJ2FuY2VzdG9yJyBub3QgeWV0IHN1cHBvcnRlZCIgfSAqLwogICA7CiAKIH0KZGlmZiAt LWdpdCBhL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL2dvbXAvdGFyZ2V0LWRldmljZS1h bmNlc3Rvci01LmMgYi9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9nb21wL3RhcmdldC1k ZXZpY2UtYW5jZXN0b3ItNS5jCmluZGV4IGI2ZmY4NGJjZGFiLi5iMTUyMGZmMDYzNiAxMDA2 NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vZ29tcC90YXJnZXQtZGV2aWNl LWFuY2VzdG9yLTUuYworKysgYi9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9nb21wL3Rh cmdldC1kZXZpY2UtYW5jZXN0b3ItNS5jCkBAIC0xLDQgKzEsNCBAQAotI3ByYWdtYSBvbXAg cmVxdWlyZXMgcmV2ZXJzZV9vZmZsb2FkICAvKiB7IGRnLW1lc3NhZ2UgInNvcnJ5LCB1bmlt cGxlbWVudGVkOiAncmV2ZXJzZV9vZmZsb2FkJyBjbGF1c2Ugb24gJ3JlcXVpcmVzJyBkaXJl Y3RpdmUgbm90IHN1cHBvcnRlZCB5ZXQiIH0gKi8KKyNwcmFnbWEgb21wIHJlcXVpcmVzIHJl dmVyc2Vfb2ZmbG9hZAogCiB2b2lkCiBmb28gKCkKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2ZvcnRyYW4uZGcvZ29tcC9yZXF1aXJlcy04LmY5MCBiL2djYy90ZXN0c3VpdGUvZ2Zv cnRyYW4uZGcvZ29tcC9yZXF1aXJlcy04LmY5MAppbmRleCBlODRkNjA5YWQyOS4uNTgzYzVh NTZiMzIgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9yZXF1 aXJlcy04LmY5MAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvcmVxdWly ZXMtOC5mOTAKQEAgLTEsMyArMSw3IEBACittb2R1bGUgbTAKKyAgaW50ZWdlciA6OiB4Citl bmQgbW9kdWxlIG0wCisKIG1vZHVsZSBtICAhICB7IGRnLWVycm9yICJoYXMgT3Blbk1QIGRl dmljZSBjb25zdHJ1Y3RzL3JvdXRpbmVzIGJ1dCBkb2VzIG5vdCBzZXQgIS5PTVAgUkVRVUlS RVMgVU5JRklFRF9TSEFSRURfTUVNT1JZIGJ1dCBvdGhlciBwcm9ncmFtIHVuaXRzIGRvIiB9 CiAgICEkb21wIHJlcXVpcmVzIHJldmVyc2Vfb2ZmbG9hZAogY29udGFpbnMKQEAgLTEzLDEw ICsxNywxNCBAQCBjb250YWlucwogIGVuZCBzdWJyb3V0aW5lIGZvbwogZW5kIG1vZHVsZSBt CiAKLXN1YnJvdXRpbmUgYmFyICAhIHsgZGctZXJyb3IgImhhcyBPcGVuTVAgZGV2aWNlIGNv bnN0cnVjdHMvcm91dGluZXMgYnV0IGRvZXMgbm90IHNldCAhLk9NUCBSRVFVSVJFUyBSRVZF UlNFX09GRkxPQUQgYnV0IG90aGVyIHByb2dyYW0gdW5pdHMgZG8iIH0KK3N1YnJvdXRpbmUg YmFyCiAgICF1c2UgbQotICAhJG9tcCByZXF1aXJlcyB1bmlmaWVkX3NoYXJlZF9tZW1vcnkK KyAgISRvbXAgcmVxdWlyZXMgdW5pZmllZF9zaGFyZWRfbWVtb3J5ICAhIFBvc3NpYmx5IE9L IC0gbmVlZHMgT3Blbk1QIExhbmcgU3BlYyBjbGFyaWZpY2F0aW9uICgtPiAjMzI0MCkKICAg ISRvbXAgZGVjbGFyZSB0YXJnZXQKIGVuZCBzdWJyb3V0aW5lIGJhcgogCi0hIHsgZGctcHJ1 bmUtb3V0cHV0ICJub3QgeWV0IHN1cHBvcnRlZCIgfQorc3Vicm91dGluZSBmb29iYXIgICEg eyBkZy1lcnJvciAiaGFzIE9wZW5NUCBkZXZpY2UgY29uc3RydWN0cy9yb3V0aW5lcyBidXQg ZG9lcyBub3Qgc2V0ICEuT01QIFJFUVVJUkVTIFJFVkVSU0VfT0ZGTE9BRCBidXQgb3RoZXIg cHJvZ3JhbSB1bml0cyBkbyIgfQorICB1c2UgbTAKKyAgISRvbXAgcmVxdWlyZXMgdW5pZmll ZF9zaGFyZWRfbWVtb3J5CisgICEkb21wIHRhcmdldCBlbnRlciBkYXRhIG1hcCh0bzp4KQor ZW5kIHN1YnJvdXRpbmUgZm9vYmFyCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0 cmFuLmRnL2dvbXAvdGFyZ2V0LWRldmljZS1hbmNlc3Rvci0yLmY5MCBiL2djYy90ZXN0c3Vp dGUvZ2ZvcnRyYW4uZGcvZ29tcC90YXJnZXQtZGV2aWNlLWFuY2VzdG9yLTIuZjkwCmluZGV4 IDExN2ExZDAwMGE1Li4yMzBjNjkwZDg0YyAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9n Zm9ydHJhbi5kZy9nb21wL3RhcmdldC1kZXZpY2UtYW5jZXN0b3ItMi5mOTAKKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL3RhcmdldC1kZXZpY2UtYW5jZXN0b3ItMi5m OTAKQEAgLTQsMTkgKzQsMTYgQEAgaW1wbGljaXQgbm9uZQogCiBpbnRlZ2VyIDo6IGEsIGIs IGMKIAotISRvbXAgcmVxdWlyZXMgcmV2ZXJzZV9vZmZsb2FkICAhIHsgZGctZXJyb3IgIlNv cnJ5LCAncmV2ZXJzZV9vZmZsb2FkJyBjbGF1c2UgYXQgXFwoMVxcKSBvbiBSRVFVSVJFUyBk aXJlY3RpdmUgaXMgbm90IHlldCBzdXBwb3J0ZWQiIH0KKyEkb21wIHJlcXVpcmVzIHJldmVy c2Vfb2ZmbG9hZAogCiAKLSEgVGhlIGZvbGxvd2luZyB0ZXN0IGNhc2UgaXMgbWFya2VkIHdp dGggJ3hmYWlsJyBiZWNhdXNlIGEgcHJldmlvdXMgJ3NvcnJ5JyBmcm9tCi0hICdyZXZlcnNl X29mZmxvYWQnIHN1cHByZXNzZXMgdGhlICdzb3JyeScgZm9yICdhbmNlc3RvcicuCi0KLSEk b21wIHRhcmdldCBkZXZpY2UgKGFuY2VzdG9yOiAxKSAgISB7IGRnLW1lc3NhZ2UgIiIgInNv cnJ5LCB1bmltcGxlbWVudGVkOiAnYW5jZXN0b3InIG5vdCB5ZXQgc3VwcG9ydGVkIiB7IHhm YWlsICotKi0qIH0gfQorISRvbXAgdGFyZ2V0IGRldmljZSAoYW5jZXN0b3I6IDEpCiAhJG9t cCBlbmQgdGFyZ2V0CiAKLSEkb21wIHRhcmdldCBkZXZpY2UgKGFuY2VzdG9yIDogYSkgICEg eyBkZy1tZXNzYWdlICIiICJzb3JyeSwgdW5pbXBsZW1lbnRlZDogJ2FuY2VzdG9yJyBub3Qg eWV0IHN1cHBvcnRlZCIgeyB4ZmFpbCAqLSotKiB9IH0KKyEkb21wIHRhcmdldCBkZXZpY2Ug KGFuY2VzdG9yIDogYSkKICEkb21wIGVuZCB0YXJnZXQKIAotISRvbXAgdGFyZ2V0IGRldmlj ZSAoYW5jZXN0b3IgOiBhICsgMSkgICEgeyBkZy1tZXNzYWdlICIiICJzb3JyeSwgdW5pbXBs ZW1lbnRlZDogJ2FuY2VzdG9yJyBub3QgeWV0IHN1cHBvcnRlZCIgeyB4ZmFpbCAqLSotKiB9 IH0KKyEkb21wIHRhcmdldCBkZXZpY2UgKGFuY2VzdG9yIDogYSArIDEpCiAhJG9tcCBlbmQg dGFyZ2V0CiAKIApAQCAtMzIsNjEgKzI5LDQgQEAgaW50ZWdlciA6OiBhLCBiLCBjCiAhJG9t cCB0YXJnZXQgZGV2aWNlICg0MikKICEkb21wIGVuZCB0YXJnZXQKIAotCi0hIEVuc3VyZSB0 aGF0IG5vIE9wZW5NUCBjb25zdHJ1Y3RzIGFwcGVhciBpbnNpZGUgdGFyZ2V0IHJlZ2lvbnMg d2l0aCAnYW5jZXN0b3InLgotISBUaGUgZm9sbG93aW5nIHRlc3QgY2FzZSBpcyBtYXJrZWQg d2l0aCAneGZhaWwnIGJlY2F1c2UgYSBwcmV2aW91cyAnc29ycnknIGZyb20KLSEgJ3JldmVy c2Vfb2ZmbG9hZCcgc3VwcHJlc3NlcyB0aGUgJ3NvcnJ5JyBmb3IgJ2FuY2VzdG9yJy4KLQot ISRvbXAgdGFyZ2V0IGRldmljZSAoYW5jZXN0b3I6IDEpCi0gICEkb21wIHRlYW1zICAhIHsg ZGctZXJyb3IgIiIgIk9wZW5NUCBjb25zdHJ1Y3RzIGFyZSBub3QgYWxsb3dlZCBpbiB0YXJn ZXQgcmVnaW9uIHdpdGggJ2FuY2VzdG9yJyIgeyB4ZmFpbCAqLSotKiB9IH0KLSAgISRvbXAg ZW5kIHRlYW1zCi0hJG9tcCBlbmQgdGFyZ2V0Ci0KLSEkb21wIHRhcmdldCBkZXZpY2UgKGRl dmljZV9udW06IDEpCi0gICEkb21wIHRlYW1zCi0gICEkb21wIGVuZCB0ZWFtcwotISRvbXAg ZW5kIHRhcmdldAotCi0hJG9tcCB0YXJnZXQgZGV2aWNlICgxKQotICAhJG9tcCB0ZWFtcwot ICAhJG9tcCBlbmQgdGVhbXMKLSEkb21wIGVuZCB0YXJnZXQKLQotCi0hIEVuc3VyZSB0aGF0 IHdpdGggJ2FuY2VzdG9yJyBvbmx5IHRoZSAnZGV2aWNlJywgJ2ZpcnN0cHJpdmF0ZScsICdw cml2YXRlJywKLSEgJ2RlZmF1bHRtYXAnLCBhbmQgJ21hcCcgY2xhdXNlcyBhcHBlYXIgb24g dGhlIGNvbnN0cnVjdC4KLSEgVGhlIGZvbGxvd2luZyB0ZXN0IGNhc2UgaXMgbWFya2VkIHdp dGggJ3hmYWlsJyBiZWNhdXNlIGEgcHJldmlvdXMgJ3NvcnJ5JyBmcm9tCi0hICdyZXZlcnNl X29mZmxvYWQnIHN1cHByZXNzZXMgdGhlICdzb3JyeScgZm9yICdhbmNlc3RvcicuCi0KLSEk b21wIHRhcmdldCBub3dhaXQgZGV2aWNlIChhbmNlc3RvcjogMSkgICEgeyBkZy1lcnJvciAi IiAid2l0aCAnYW5jZXN0b3InLCBvbmx5IHRoZSAnZGV2aWNlJywgJ2ZpcnN0cHJpdmF0ZScs ICdwcml2YXRlJywgJ2RlZmF1bHRtYXAnLCBhbmQgJ21hcCcgY2xhdXNlcyBtYXkgYXBwZWFy IG9uIHRoZSBjb25zdHJ1Y3QiIHsgeGZhaWwgKi0qLSogfSB9Ci0hJG9tcCBlbmQgdGFyZ2V0 Ci0KLSEkb21wIHRhcmdldCBkZXZpY2UgKGFuY2VzdG9yOiAxKSBub3dhaXQgICEgeyBkZy1l cnJvciAiIiAid2l0aCAnYW5jZXN0b3InLCBvbmx5IHRoZSAnZGV2aWNlJywgJ2ZpcnN0cHJp dmF0ZScsICdwcml2YXRlJywgJ2RlZmF1bHRtYXAnLCBhbmQgJ21hcCcgY2xhdXNlcyBtYXkg YXBwZWFyIG9uIHRoZSBjb25zdHJ1Y3QiIHsgeGZhaWwgKi0qLSogfSB9Ci0hJG9tcCBlbmQg dGFyZ2V0Ci0KLSEkb21wIHRhcmdldCBub3dhaXQgZGV2aWNlIChkZXZpY2VfbnVtOiAxKQot ISRvbXAgZW5kIHRhcmdldAotCi0hJG9tcCB0YXJnZXQgbm93YWl0IGRldmljZSAoMSkKLSEk b21wIGVuZCB0YXJnZXQKLQotISRvbXAgdGFyZ2V0IGRldmljZSAoYW5jZXN0b3I6IDEpIGZp cnN0cHJpdmF0ZSAoYSkgcHJpdmF0ZSAoYikgZGVmYXVsdG1hcCAobm9uZSkgbWFwIChjKQot ISRvbXAgZW5kIHRhcmdldAotCi0KLSEgRW5zdXJlIHRoYXQgJ2FuY2VzdG9yJyBpcyBvbmx5 IHVzZWQgd2l0aCAndGFyZ2V0JyBjb25zdHJ1Y3RzIChub3Qgd2l0aAotISAndGFyZ2V0IGRh dGEnLCAndGFyZ2V0IHVwZGF0ZScgZXRjLikuCi0hIFRoZSBmb2xsb3dpbmcgdGVzdCBjYXNl IGlzIG1hcmtlZCB3aXRoICd4ZmFpbCcgYmVjYXVzZSBhIHByZXZpb3VzICdzb3JyeScgZnJv bQotISAncmV2ZXJzZV9vZmZsb2FkJyBzdXBwcmVzc2VzIHRoZSAnc29ycnknIGZvciAnYW5j ZXN0b3InLgotCi0hJG9tcCB0YXJnZXQgZGF0YSBtYXAgKGEpIGRldmljZSAoYW5jZXN0b3I6 IDEpICAhIHsgZGctZXJyb3IgIiIgIidkZXZpY2UnIGNsYXVzZSB3aXRoICdhbmNlc3Rvcicg aXMgb25seSBhbGxvd2VkIG9uICd0YXJnZXQnIGNvbnN0cnVjdCIgeyB4ZmFpbCAqLSotKiB9 IH0KLSEkb21wIGVuZCB0YXJnZXQgZGF0YQotCi0hJG9tcCB0YXJnZXQgZW50ZXIgZGF0YSBt YXAgKHRvOiBhKSBkZXZpY2UgKGFuY2VzdG9yOiAxKSAgISB7IGRnLWVycm9yICIiICInZGV2 aWNlJyBjbGF1c2Ugd2l0aCAnYW5jZXN0b3InIGlzIG9ubHkgYWxsb3dlZCBvbiAndGFyZ2V0 JyBjb25zdHJ1Y3QiIHsgeGZhaWwgKi0qLSogfSB9Ci0hJG9tcCB0YXJnZXQgZXhpdCBkYXRh IG1hcCAoZnJvbTogYSkgZGV2aWNlIChhbmNlc3RvcjogMSkgICEgeyBkZy1lcnJvciAiIiAi J2RldmljZScgY2xhdXNlIHdpdGggJ2FuY2VzdG9yJyBpcyBvbmx5IGFsbG93ZWQgb24gJ3Rh cmdldCcgY29uc3RydWN0IiB7IHhmYWlsICotKi0qIH0gfQotCi0hJG9tcCB0YXJnZXQgdXBk YXRlIHRvIChhKSBkZXZpY2UgKGFuY2VzdG9yOiAxKSAgISB7IGRnLWVycm9yICInZGV2aWNl JyBjbGF1c2Ugd2l0aCAnYW5jZXN0b3InIGlzIG9ubHkgYWxsb3dlZCBvbiAndGFyZ2V0JyBj b25zdHJ1Y3QiICIiIHsgeGZhaWwgKi0qLSogfSB9Ci0hIHsgZGctZXJyb3IgIndpdGggJ2Fu Y2VzdG9yJywgb25seSB0aGUgJ2RldmljZScsICdmaXJzdHByaXZhdGUnLCAncHJpdmF0ZScs ICdkZWZhdWx0bWFwJywgYW5kICdtYXAnIGNsYXVzZXMgbWF5IGFwcGVhciBvbiB0aGUgY29u c3RydWN0IiAiIiB7IHhmYWlsICotKi0qIH0gLi0xIH0KLQotCi1lbmQKXCBObyBuZXdsaW5l IGF0IGVuZCBvZiBmaWxlCitlbmQKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRy YW4uZGcvZ29tcC90YXJnZXQtZGV2aWNlLWFuY2VzdG9yLTJhLmY5MCBiL2djYy90ZXN0c3Vp dGUvZ2ZvcnRyYW4uZGcvZ29tcC90YXJnZXQtZGV2aWNlLWFuY2VzdG9yLTJhLmY5MApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmViNzZmZTIxNDQKLS0tIC9k ZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvdGFyZ2V0LWRl dmljZS1hbmNlc3Rvci0yYS5mOTAKQEAgLTAsMCArMSw4MCBAQAorISB7IGRnLWRvIGNvbXBp bGUgfQorCitpbXBsaWNpdCBub25lCisKK2ludGVnZXIgOjogYSwgYiwgYworCishJG9tcCBy ZXF1aXJlcyByZXZlcnNlX29mZmxvYWQKKworISRvbXAgdGFyZ2V0IGRldmljZSAoYW5jZXN0 b3I6IDEpCishJG9tcCBlbmQgdGFyZ2V0CisKKyEkb21wIHRhcmdldCBkZXZpY2UgKGFuY2Vz dG9yIDogYSkKKyEkb21wIGVuZCB0YXJnZXQKKworISRvbXAgdGFyZ2V0IGRldmljZSAoYW5j ZXN0b3IgOiBhICsgMSkKKyEkb21wIGVuZCB0YXJnZXQKKworCishJG9tcCB0YXJnZXQgZGV2 aWNlIChkZXZpY2VfbnVtOjQyKQorISRvbXAgZW5kIHRhcmdldAorCishJG9tcCB0YXJnZXQg ZGV2aWNlICg0MikKKyEkb21wIGVuZCB0YXJnZXQKKworCishIEVuc3VyZSB0aGF0IG5vIE9w ZW5NUCBjb25zdHJ1Y3RzIGFwcGVhciBpbnNpZGUgdGFyZ2V0IHJlZ2lvbnMgd2l0aCAnYW5j ZXN0b3InLgorCishJG9tcCB0YXJnZXQgZGV2aWNlIChhbmNlc3RvcjogMSkKKyAgISRvbXAg dGVhbXMgICEgeyBkZy1lcnJvciAiT3Blbk1QIGNvbnN0cnVjdHMgYXJlIG5vdCBhbGxvd2Vk IGluIHRhcmdldCByZWdpb24gd2l0aCAnYW5jZXN0b3InIiB9CisgICEkb21wIGVuZCB0ZWFt cworISRvbXAgZW5kIHRhcmdldAorCishJG9tcCB0YXJnZXQgZGV2aWNlIChkZXZpY2VfbnVt OiAxKQorICAhJG9tcCB0ZWFtcworICAhJG9tcCBlbmQgdGVhbXMKKyEkb21wIGVuZCB0YXJn ZXQKKworISRvbXAgdGFyZ2V0IGRldmljZSAoMSkKKyAgISRvbXAgdGVhbXMKKyAgISRvbXAg ZW5kIHRlYW1zCishJG9tcCBlbmQgdGFyZ2V0CisKKworISBFbnN1cmUgdGhhdCB3aXRoICdh bmNlc3Rvcicgb25seSB0aGUgJ2RldmljZScsICdmaXJzdHByaXZhdGUnLCAncHJpdmF0ZScs CishICdkZWZhdWx0bWFwJywgYW5kICdtYXAnIGNsYXVzZXMgYXBwZWFyIG9uIHRoZSBjb25z dHJ1Y3QuCisKKyEkb21wIHRhcmdldCBub3dhaXQgZGV2aWNlIChhbmNlc3RvcjogMSkgICEg eyBkZy1lcnJvciAid2l0aCAnYW5jZXN0b3InLCBvbmx5IHRoZSAnZGV2aWNlJywgJ2ZpcnN0 cHJpdmF0ZScsICdwcml2YXRlJywgJ2RlZmF1bHRtYXAnLCBhbmQgJ21hcCcgY2xhdXNlcyBt YXkgYXBwZWFyIG9uIHRoZSBjb25zdHJ1Y3QiIH0KKyEkb21wIGVuZCB0YXJnZXQKKworISRv bXAgdGFyZ2V0IGRldmljZSAoYW5jZXN0b3I6IDEpIG5vd2FpdCAgISB7IGRnLWVycm9yICJ3 aXRoICdhbmNlc3RvcicsIG9ubHkgdGhlICdkZXZpY2UnLCAnZmlyc3Rwcml2YXRlJywgJ3By aXZhdGUnLCAnZGVmYXVsdG1hcCcsIGFuZCAnbWFwJyBjbGF1c2VzIG1heSBhcHBlYXIgb24g dGhlIGNvbnN0cnVjdCIgfQorISRvbXAgZW5kIHRhcmdldAorCishJG9tcCB0YXJnZXQgbm93 YWl0IGRldmljZSAoZGV2aWNlX251bTogMSkKKyEkb21wIGVuZCB0YXJnZXQKKworISRvbXAg dGFyZ2V0IG5vd2FpdCBkZXZpY2UgKDEpCishJG9tcCBlbmQgdGFyZ2V0CisKKyEkb21wIHRh cmdldCBkZXZpY2UgKGFuY2VzdG9yOiAxKSBmaXJzdHByaXZhdGUgKGEpIHByaXZhdGUgKGIp IGRlZmF1bHRtYXAgKG5vbmUpIG1hcCAoYykKKyEkb21wIGVuZCB0YXJnZXQKKworCishIEVu c3VyZSB0aGF0ICdhbmNlc3RvcicgaXMgb25seSB1c2VkIHdpdGggJ3RhcmdldCcgY29uc3Ry dWN0cyAobm90IHdpdGgKKyEgJ3RhcmdldCBkYXRhJywgJ3RhcmdldCB1cGRhdGUnIGV0Yy4p LgorISBUaGUgZm9sbG93aW5nIHRlc3QgY2FzZSBpcyBtYXJrZWQgd2l0aCAneGZhaWwnIGJl Y2F1c2UgYSBwcmV2aW91cyAnc29ycnknIGZyb20KKyEgJ3JldmVyc2Vfb2ZmbG9hZCcgc3Vw cHJlc3NlcyB0aGUgJ3NvcnJ5JyBmb3IgJ2FuY2VzdG9yJy4KKworISRvbXAgdGFyZ2V0IGRh dGEgbWFwIChhKSBkZXZpY2UgKGFuY2VzdG9yOiAxKSAgISB7IGRnLWVycm9yICInZGV2aWNl JyBjbGF1c2Ugd2l0aCAnYW5jZXN0b3InIGlzIG9ubHkgYWxsb3dlZCBvbiAndGFyZ2V0JyBj b25zdHJ1Y3QiIH0KKyEkb21wIGVuZCB0YXJnZXQgZGF0YQorCishJG9tcCB0YXJnZXQgZW50 ZXIgZGF0YSBtYXAgKHRvOiBhKSBkZXZpY2UgKGFuY2VzdG9yOiAxKSAgISB7IGRnLWVycm9y ICInZGV2aWNlJyBjbGF1c2Ugd2l0aCAnYW5jZXN0b3InIGlzIG9ubHkgYWxsb3dlZCBvbiAn dGFyZ2V0JyBjb25zdHJ1Y3QiIH0KKyEkb21wIHRhcmdldCBleGl0IGRhdGEgbWFwIChmcm9t OiBhKSBkZXZpY2UgKGFuY2VzdG9yOiAxKSAgISB7IGRnLWVycm9yICInZGV2aWNlJyBjbGF1 c2Ugd2l0aCAnYW5jZXN0b3InIGlzIG9ubHkgYWxsb3dlZCBvbiAndGFyZ2V0JyBjb25zdHJ1 Y3QiIH0KKworISRvbXAgdGFyZ2V0IHVwZGF0ZSB0byAoYSkgZGV2aWNlIChhbmNlc3Rvcjog MSkgICEgeyBkZy1lcnJvciAiJ2RldmljZScgY2xhdXNlIHdpdGggJ2FuY2VzdG9yJyBpcyBv bmx5IGFsbG93ZWQgb24gJ3RhcmdldCcgY29uc3RydWN0IiB9CisKKyEkb21wIHRhcmdldCBk ZXZpY2UgKGFuY2VzdG9yOiAxKSBpZiguZmFsc2UuKQorISB7IGRnLWVycm9yICJ3aXRoICdh bmNlc3RvcicsIG9ubHkgdGhlICdkZXZpY2UnLCAnZmlyc3Rwcml2YXRlJywgJ3ByaXZhdGUn LCAnZGVmYXVsdG1hcCcsIGFuZCAnbWFwJyBjbGF1c2VzIG1heSBhcHBlYXIgb24gdGhlIGNv bnN0cnVjdCIgIiIgeyB0YXJnZXQgKi0qLSogfSAuLTEgfQorISRvbXAgZW5kIHRhcmdldAor CitlbmQKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC90YXJn ZXQtZGV2aWNlLWFuY2VzdG9yLTMuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9n b21wL3RhcmdldC1kZXZpY2UtYW5jZXN0b3ItMy5mOTAKaW5kZXggZjExNDViZGUyZWMuLmU4 OTc1ZTZhMDhiIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAv dGFyZ2V0LWRldmljZS1hbmNlc3Rvci0zLmY5MAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0 cmFuLmRnL2dvbXAvdGFyZ2V0LWRldmljZS1hbmNlc3Rvci0zLmY5MApAQCAtMTYsMTAgKzE2 LDEwIEBAIHN1YnJvdXRpbmUgZjEgKCkKICAgaW1wbGljaXQgbm9uZQogICBpbnRlZ2VyIDo6 IG4KIAotICAhJG9tcCByZXF1aXJlcyByZXZlcnNlX29mZmxvYWQgICEgeyBkZy1lcnJvciAi U29ycnksICdyZXZlcnNlX29mZmxvYWQnIGNsYXVzZSBhdCBcXCgxXFwpIG9uIFJFUVVJUkVT IGRpcmVjdGl2ZSBpcyBub3QgeWV0IHN1cHBvcnRlZCIgfQorICAhJG9tcCByZXF1aXJlcyBy ZXZlcnNlX29mZmxvYWQKIAogICAhJG9tcCB0YXJnZXQgZGV2aWNlIChhbmNlc3RvciA6IDEp Ci0gICAgbiA9IG9tcF9nZXRfdGhyZWFkX251bSAoKSAgISB7IGRnLWVycm9yICIiICJPcGVu TVAgcnVudGltZSBBUEkgY2FsbCAnb21wX2dldF90aHJlYWRfbnVtJyBpbiBhIHJlZ2lvbiB3 aXRoICdkZXZpY2VcXChhbmNlc3RvclxcKScgY2xhdXNlIiB7IHhmYWlsICotKi0qIH0gfQor ICAgIG4gPSBvbXBfZ2V0X3RocmVhZF9udW0gKCkgICEgeyBkZy1lcnJvciAiT3Blbk1QIHJ1 bnRpbWUgQVBJIGNhbGwgJ29tcF9nZXRfdGhyZWFkX251bScgaW4gYSByZWdpb24gd2l0aCAn ZGV2aWNlXFwoYW5jZXN0b3JcXCknIGNsYXVzZSIgfQogICAhJG9tcCBlbmQgdGFyZ2V0CiAK ICAgISRvbXAgdGFyZ2V0IGRldmljZSAoZGV2aWNlX251bSA6IDEpCkBAIC0zMCw0ICszMCw0 IEBAIHN1YnJvdXRpbmUgZjEgKCkKICAgICBuID0gb21wX2dldF90aHJlYWRfbnVtICgpCiAg ICEkb21wIGVuZCB0YXJnZXQKIAotZW5kClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQor ZW5kCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvdGFyZ2V0 LWRldmljZS1hbmNlc3Rvci00LmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29t cC90YXJnZXQtZGV2aWNlLWFuY2VzdG9yLTQuZjkwCmluZGV4IDYzODcyZmE1MWZiLi5hYjU2 ZTJkMWQ1MiAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL3Rh cmdldC1kZXZpY2UtYW5jZXN0b3ItNC5mOTAKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJh bi5kZy9nb21wL3RhcmdldC1kZXZpY2UtYW5jZXN0b3ItNC5mOTAKQEAgLTQsMTEgKzQsMTEg QEAKICEgVGVzdCB0byBlbnN1cmUgdGhhdCBkZXZpY2UtbW9kaWZpZXIgJ2FuY2VzdG9yJyBp cyBwYXJzZWQgY29ycmVjdGx5IGluCiAhIGRldmljZSBjbGF1c2VzLgogCi0hJG9tcCByZXF1 aXJlcyByZXZlcnNlX29mZmxvYWQgICEgeyBkZy1lcnJvciAiU29ycnksICdyZXZlcnNlX29m ZmxvYWQnIGNsYXVzZSBhdCBcXCgxXFwpIG9uIFJFUVVJUkVTIGRpcmVjdGl2ZSBpcyBub3Qg eWV0IHN1cHBvcnRlZCIgfQorISRvbXAgcmVxdWlyZXMgcmV2ZXJzZV9vZmZsb2FkCiAKLSEk b21wIHRhcmdldCBkZXZpY2UgKGFuY2VzdG9yIDogMSkgICEgeyBkZy1tZXNzYWdlICIiICJz b3JyeSwgdW5pbXBsZW1lbnRlZDogJ2FuY2VzdG9yJyBub3QgeWV0IHN1cHBvcnRlZCIgeyB4 ZmFpbCAqLSotKiB9IH0KKyEkb21wIHRhcmdldCBkZXZpY2UgKGFuY2VzdG9yIDogMSkgICEg eyBkZy1tZXNzYWdlICJzb3JyeSwgdW5pbXBsZW1lbnRlZDogJ2FuY2VzdG9yJyBub3QgeWV0 IHN1cHBvcnRlZCIgfQogISRvbXAgZW5kIHRhcmdldAogCiBlbmQKIAotISBUT0RPOiBkZy1m aW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJwcmFnbWEgb21wIHRhcmdldCBcW15cblxy KV0qZGV2aWNlXFwoYW5jZXN0b3I6MVxcKSIgMSAib3JpZ2luYWwiIH0gfQorISB7IGRnLWZp bmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgInByYWdtYSBvbXAgdGFyZ2V0IFxbXlxuXHIp XSpkZXZpY2VcXChhbmNlc3RvcjoxXFwpIiAxICJvcmlnaW5hbCIgfSB9CmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvdGFyZ2V0LWRldmljZS1hbmNlc3Rv ci01LmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC90YXJnZXQtZGV2aWNl LWFuY2VzdG9yLTUuZjkwCmluZGV4IDA2YTExZWI1MDkyLi5jYThkNGIyODJhMCAxMDA2NDQK LS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL3RhcmdldC1kZXZpY2UtYW5j ZXN0b3ItNS5mOTAKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL3Rhcmdl dC1kZXZpY2UtYW5jZXN0b3ItNS5mOTAKQEAgLTYsNyArNiw3IEBACiAhCiAKIG1vZHVsZSBt Ci0gICEkb21wIHJlcXVpcmVzIHJldmVyc2Vfb2ZmbG9hZCAgISB7IGRnLWVycm9yICJSRVFV SVJFUyBkaXJlY3RpdmUgaXMgbm90IHlldCBzdXBwb3J0ZWQiIH0KKyAgISRvbXAgcmVxdWly ZXMgcmV2ZXJzZV9vZmZsb2FkCiBjb250YWlucwogICBzdWJyb3V0aW5lIGZvbygpCiAgICAg ISRvbXAgdGFyZ2V0IGRldmljZShhbmNlc3RvcjoxKQpAQCAtMTcsNyArMTcsNyBAQCBjb250 YWlucwogICAgIGJsb2NrCiAgICAgICBibG9jawogICAgICAgICBibG9jawotICAgICAgICAg ICEkb21wIHRhcmdldCBkZXZpY2UoYW5jZXN0b3I6MSkKKyAgICAgICAgICAhJG9tcCB0YXJn ZXQgZGV2aWNlKGFuY2VzdG9yOjEpICAhIHsgZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVt ZW50ZWQ6ICdhbmNlc3Rvcicgbm90IHlldCBzdXBwb3J0ZWQiIH0KICAgICAgICAgICAhJG9t cCBlbmQgdGFyZ2V0CiAgICAgICAgIGVuZCBibG9jawogICAgICAgZW5kIGJsb2NrCkBAIC0y Niw3ICsyNiw3IEBAIGNvbnRhaW5zCiBlbmQgbW9kdWxlIG0KIAogc3Vicm91dGluZSBmb28o KQotICAhJG9tcCByZXF1aXJlcyByZXZlcnNlX29mZmxvYWQgICEgeyBkZy1lcnJvciAiUkVR VUlSRVMgZGlyZWN0aXZlIGlzIG5vdCB5ZXQgc3VwcG9ydGVkIiB9CisgICEkb21wIHJlcXVp cmVzIHJldmVyc2Vfb2ZmbG9hZAogICBibG9jawogICAgIGJsb2NrCiAgICAgICBibG9jawpA QCAtNDksNyArNDksNyBAQCBjb250YWlucwogZW5kIHN1YnJvdXRpbmUgZm9vCiAKIHByb2dy YW0gbWFpbgotICAhJG9tcCByZXF1aXJlcyByZXZlcnNlX29mZmxvYWQgICEgeyBkZy1lcnJv ciAiUkVRVUlSRVMgZGlyZWN0aXZlIGlzIG5vdCB5ZXQgc3VwcG9ydGVkIiB9CisgICEkb21w IHJlcXVpcmVzIHJldmVyc2Vfb2ZmbG9hZAogY29udGFpbnMKICAgc3Vicm91dGluZSBmb28o KQogICAgICEkb21wIHRhcmdldCBkZXZpY2UoYW5jZXN0b3I6MSkKZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvZ29tcC1jb25zdGFudHMuaCBiL2luY2x1ZGUvZ29tcC1jb25zdGFudHMuaAppbmRl eCBlNGRkOGVmM2UxZC4uM2UzMDc4ZjA4MmUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZ29tcC1j b25zdGFudHMuaAorKysgYi9pbmNsdWRlL2dvbXAtY29uc3RhbnRzLmgKQEAgLTI4Miw3ICsy ODIsNyBAQCBlbnVtIGdvbXBfbWFwX2tpbmQKIC8qIFZlcnNpb25zIG9mIGxpYmdvbXAgYW5k IGRldmljZS1zcGVjaWZpYyBwbHVnaW5zLiAgR09NUF9WRVJTSU9OCiAgICBzaG91bGQgYmUg aW5jcmVtZW50ZWQgd2hlbmV2ZXIgYW4gQUJJLWluY29tcGF0aWJsZSBjaGFuZ2UgaXMgaW50 cm9kdWNlZAogICAgdG8gdGhlIHBsdWdpbiBpbnRlcmZhY2UgZGVmaW5lZCBpbiBsaWJnb21w L2xpYmdvbXAuaC4gICovCi0jZGVmaW5lIEdPTVBfVkVSU0lPTgkxCisjZGVmaW5lIEdPTVBf VkVSU0lPTgkyCiAjZGVmaW5lIEdPTVBfVkVSU0lPTl9OVklESUFfUFRYIDEKICNkZWZpbmUg R09NUF9WRVJTSU9OX0lOVEVMX01JQyAwCiAjZGVmaW5lIEdPTVBfVkVSU0lPTl9HQ04gMgpA QCAtMzQxLDYgKzM0MSwxMyBAQCBlbnVtIGdvbXBfbWFwX2tpbmQKICNkZWZpbmUgR09NUF9E RVBFTkRfTVVURVhJTk9VVFNFVAk0CiAjZGVmaW5lIEdPTVBfREVQRU5EX0lOT1VUU0VUCQk1 CiAKKy8qIEZsYWcgdmFsdWVzIGZvciByZXF1aXJlcy1kaXJlY3RpdmUgZmVhdHVyZXMsIG11 c3QgbWF0Y2ggY29ycmVzcG9uZGluZworICAgT01QX1JFUVVJUkVTXyogdmFsdWVzIGluIGdj Yy9vbXAtZ2VuZXJhbC5oLiAgKi8KKyNkZWZpbmUgR09NUF9SRVFVSVJFU19VTklGSUVEX0FE RFJFU1MgICAgICAgMHgxMAorI2RlZmluZSBHT01QX1JFUVVJUkVTX1VOSUZJRURfU0hBUkVE X01FTU9SWSAweDIwCisjZGVmaW5lIEdPTVBfUkVRVUlSRVNfUkVWRVJTRV9PRkZMT0FEICAg ICAgIDB4ODAKKyNkZWZpbmUgR09NUF9SRVFVSVJFU19UQVJHRVRfVVNFRCAgICAgICAgICAg MHgyMDAKKwogLyogSFNBIHNwZWNpZmljIGRhdGEgc3RydWN0dXJlcy4gICovCiAKIC8qIElk ZW50aWZpZXJzIG9mIGRldmljZS1zcGVjaWZpYyB0YXJnZXQgYXJndW1lbnRzLiAgKi8KZGlm ZiAtLWdpdCBhL2xpYmdvbXAvbGliZ29tcC1wbHVnaW4uaCBiL2xpYmdvbXAvbGliZ29tcC1w bHVnaW4uaAppbmRleCAwN2FiNzAwYjgwYy4uYWIzZWQ2Mzg0NzUgMTAwNjQ0Ci0tLSBhL2xp YmdvbXAvbGliZ29tcC1wbHVnaW4uaAorKysgYi9saWJnb21wL2xpYmdvbXAtcGx1Z2luLmgK QEAgLTEyNSw3ICsxMjUsNyBAQCBleHRlcm4gdm9pZCBHT01QX1BMVUdJTl9mYXRhbCAoY29u c3QgY2hhciAqLCAuLi4pCiBleHRlcm4gY29uc3QgY2hhciAqR09NUF9PRkZMT0FEX2dldF9u YW1lICh2b2lkKTsKIGV4dGVybiB1bnNpZ25lZCBpbnQgR09NUF9PRkZMT0FEX2dldF9jYXBz ICh2b2lkKTsKIGV4dGVybiBpbnQgR09NUF9PRkZMT0FEX2dldF90eXBlICh2b2lkKTsKLWV4 dGVybiBpbnQgR09NUF9PRkZMT0FEX2dldF9udW1fZGV2aWNlcyAodm9pZCk7CitleHRlcm4g aW50IEdPTVBfT0ZGTE9BRF9nZXRfbnVtX2RldmljZXMgKHVuc2lnbmVkIGludCk7CiBleHRl cm4gYm9vbCBHT01QX09GRkxPQURfaW5pdF9kZXZpY2UgKGludCk7CiBleHRlcm4gYm9vbCBH T01QX09GRkxPQURfZmluaV9kZXZpY2UgKGludCk7CiBleHRlcm4gdW5zaWduZWQgR09NUF9P RkZMT0FEX3ZlcnNpb24gKHZvaWQpOwpkaWZmIC0tZ2l0IGEvbGliZ29tcC9saWJnb21wLnRl eGkgYi9saWJnb21wL2xpYmdvbXAudGV4aQppbmRleCBhNzVjZDI0NGE4My4uMzk0MjZmZjdm YmYgMTAwNjQ0Ci0tLSBhL2xpYmdvbXAvbGliZ29tcC50ZXhpCisrKyBiL2xpYmdvbXAvbGli Z29tcC50ZXhpCkBAIC0xODksOCArMTg5LDggQEAgVGhlIE9wZW5NUCA0LjUgc3BlY2lmaWNh dGlvbiBpcyBmdWxseSBzdXBwb3J0ZWQuCiAgICAgICBlbnYgdmFyaWFibGUgQHRhYiBZIEB0 YWIKIEBpdGVtIE5lc3RlZC1wYXJhbGxlbCBjaGFuZ2VzIHRvIEBlbXBoe21heC1hY3RpdmUt bGV2ZWxzLXZhcn0gSUNWIEB0YWIgWSBAdGFiCiBAaXRlbSBAY29kZXtyZXF1aXJlc30gZGly ZWN0aXZlIEB0YWIgUAotICAgICAgQHRhYiBPbmx5IGZ1bGZpbGxhYmxlIHJlcXVpcmVtZW50 IGFyZSBAY29kZXthdG9taWNfZGVmYXVsdF9tZW1fb3JkZXJ9Ci0gICAgICBhbmQgQGNvZGV7 ZHluYW1pY19hbGxvY2F0b3JzfQorICAgICAgQHRhYiBjb21wbGV0ZSBidXQgbm8gbm9uLWhv c3QgZGV2aWNlcyBwcm92aWRlcyBAY29kZXt1bmlmaWVkX2FkZHJlc3N9LAorICAgICAgQGNv ZGV7dW5pZmllZF9zaGFyZWRfbWVtb3J5fSBvciBAY29kZXtyZXZlcnNlX29mZmxvYWR9CiBA aXRlbSBAY29kZXt0ZWFtc30gY29uc3RydWN0IG91dHNpZGUgYW4gZW5jbG9zaW5nIHRhcmdl dCByZWdpb24gQHRhYiBZIEB0YWIKIEBpdGVtIE5vbi1yZWN0YW5ndWxhciBsb29wIG5lc3Rz IEB0YWIgWSBAdGFiCiBAaXRlbSBAY29kZXshPX0gYXMgcmVsYXRpb25hbC1vcCBpbiBjYW5v bmljYWwgbG9vcCBmb3JtIGZvciBDL0MrKyBAdGFiIFkgQHRhYgpAQCAtMzQ0LDYgKzM0NCw4 IEBAIFRoZSBPcGVuTVAgNC41IHNwZWNpZmljYXRpb24gaXMgZnVsbHkgc3VwcG9ydGVkLgog QGl0ZW0gQGNvZGV7dW5jb25zdHJhaW5lZH0gYW5kIEBjb2Rle3JlcHJvZHVjaWJsZX0gbW9k aWZpZXJzIG9uIEBjb2Rle29yZGVyfQogICAgICAgY2xhdXNlIEB0YWIgWSBAdGFiCiBAaXRl bSBTdXBwb3J0IEBjb2Rle2JlZ2luL2VuZCBkZWNsYXJlIHRhcmdldH0gc3ludGF4IGluIEMv QysrIEB0YWIgTiBAdGFiCitAaXRlbSBQb2ludGVyIHByZWRldGVybWluZWQgZmlyc3Rwcml2 YXRlIGdldHRpbmcgaW5pdGlhbGl6ZWQKK3RvIGFkZHJlc3Mgb2YgbWF0Y2hpbmcgbWFwcGVk IGxpc3QgaXRlbSBwZXIgNS4xLCBTZWN0LiAyLjIxLjcuMiBAdGFiIE4gQHRhYgogQGVuZCBt dWx0aXRhYmxlCiAKIApAQCAtMzYxLDcgKzM2Myw3IEBAIFRoZSBPcGVuTVAgNC41IHNwZWNp ZmljYXRpb24gaXMgZnVsbHkgc3VwcG9ydGVkLgogQGl0ZW0gQ2xhdXNlcyBvbiBAY29kZXtl bmR9IGRpcmVjdGl2ZSBjYW4gYmUgb24gZGlyZWN0aXZlIEB0YWIgTiBAdGFiCiBAaXRlbSBE ZXByZWNhdGlvbiBvZiBuby1hcmd1bWVudCBAY29kZXtkZXN0cm95fSBjbGF1c2Ugb24gQGNv ZGV7ZGVwb2JqfQogICAgICAgQHRhYiBOIEB0YWIKLUBpdGVtIEBjb2Rle2xpbmVhcn0gY2xh dXNlIHN5bnRheCBjaGFuZ2VzIGFuZCBAY29kZXtzdGVwfSBtb2RpZmllciBAdGFiIE4gQHRh YgorQGl0ZW0gQGNvZGV7bGluZWFyfSBjbGF1c2Ugc3ludGF4IGNoYW5nZXMgYW5kIEBjb2Rl e3N0ZXB9IG1vZGlmaWVyIEB0YWIgUCBAdGFiIG9ubHkgQy9DKysKIEBpdGVtIERlcHJlY2F0 aW9uIG9mIG1pbnVzIG9wZXJhdG9yIGZvciByZWR1Y3Rpb25zIEB0YWIgTiBAdGFiCiBAaXRl bSBEZXByZWNhdGlvbiBvZiBzZXBhcmF0aW5nIEBjb2Rle21hcH0gbW9kaWZpZXJzIHdpdGhv dXQgY29tbWEgQHRhYiBOIEB0YWIKIEBpdGVtIEBjb2Rle2RlY2xhcmUgbWFwcGVyfSB3aXRo IGl0ZXJhdG9yIGFuZCBAY29kZXtwcmVzZW50fSBtb2RpZmllcnMKZGlmZiAtLWdpdCBhL2xp YmdvbXAvb2FjYy1ob3N0LmMgYi9saWJnb21wL29hY2MtaG9zdC5jCmluZGV4IDViYjg4OTky NmQzLi5lYjExYjljZjE2YSAxMDA2NDQKLS0tIGEvbGliZ29tcC9vYWNjLWhvc3QuYworKysg Yi9saWJnb21wL29hY2MtaG9zdC5jCkBAIC01NCw3ICs1NCw3IEBAIGhvc3RfZ2V0X3R5cGUg KHZvaWQpCiB9CiAKIHN0YXRpYyBpbnQKLWhvc3RfZ2V0X251bV9kZXZpY2VzICh2b2lkKQor aG9zdF9nZXRfbnVtX2RldmljZXMgKHVuc2lnbmVkIGludCBvbXBfcmVxdWlyZXNfbWFzayBf X2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSkKIHsKICAgcmV0dXJuIDE7CiB9CkBAIC0yMjksNyAr MjI5LDcgQEAgaG9zdF9vcGVuYWNjX2dldF9wcm9wZXJ0eSAoaW50IG4sIGVudW0gZ29hY2Nf cHJvcGVydHkgcHJvcCkKIHsKICAgdW5pb24gZ29hY2NfcHJvcGVydHlfdmFsdWUgbnVsbHZh bCA9IHsgLnZhbCA9IDAgfTsKIAotICBpZiAobiA+PSBob3N0X2dldF9udW1fZGV2aWNlcyAo KSkKKyAgaWYgKG4gPj0gaG9zdF9nZXRfbnVtX2RldmljZXMgKDApKQogICAgIHJldHVybiBu dWxsdmFsOwogCiAgIHN3aXRjaCAocHJvcCkKZGlmZiAtLWdpdCBhL2xpYmdvbXAvb2FjYy1p bml0LmMgYi9saWJnb21wL29hY2MtaW5pdC5jCmluZGV4IDE1NjVhYTBmMjkwLi40MmMzZTc0 ZTZiYSAxMDA2NDQKLS0tIGEvbGliZ29tcC9vYWNjLWluaXQuYworKysgYi9saWJnb21wL29h Y2MtaW5pdC5jCkBAIC0xNDgsNyArMTQ4LDcgQEAgcmVzb2x2ZV9kZXZpY2UgKGFjY19kZXZp Y2VfdCBkLCBib29sIGZhaWxfaXNfZXJyb3IpCiAJICAgICAgaWYgKGRpc3BhdGNoZXJzW2Rd CiAJCSAgJiYgIXN0cmNhc2VjbXAgKGdvYWNjX2RldmljZV90eXBlLAogCQkJCSAgZ2V0X29w ZW5hY2NfbmFtZSAoZGlzcGF0Y2hlcnNbZF0tPm5hbWUpKQotCQkgICYmIGRpc3BhdGNoZXJz W2RdLT5nZXRfbnVtX2RldmljZXNfZnVuYyAoKSA+IDApCisJCSAgJiYgZGlzcGF0Y2hlcnNb ZF0tPmdldF9udW1fZGV2aWNlc19mdW5jICgwKSA+IDApCiAJCWdvdG8gZm91bmQ7CiAKIAkg ICAgaWYgKGZhaWxfaXNfZXJyb3IpCkBAIC0xNjksNyArMTY5LDcgQEAgcmVzb2x2ZV9kZXZp Y2UgKGFjY19kZXZpY2VfdCBkLCBib29sIGZhaWxfaXNfZXJyb3IpCiAgICAgY2FzZSBhY2Nf ZGV2aWNlX25vdF9ob3N0OgogICAgICAgLyogRmluZCB0aGUgZmlyc3QgYXZhaWxhYmxlIGRl dmljZSBhZnRlciBhY2NfZGV2aWNlX25vdF9ob3N0LiAgKi8KICAgICAgIHdoaWxlIChrbm93 bl9kZXZpY2VfdHlwZV9wICgrK2QpKQotCWlmIChkaXNwYXRjaGVyc1tkXSAmJiBkaXNwYXRj aGVyc1tkXS0+Z2V0X251bV9kZXZpY2VzX2Z1bmMgKCkgPiAwKQorCWlmIChkaXNwYXRjaGVy c1tkXSAmJiBkaXNwYXRjaGVyc1tkXS0+Z2V0X251bV9kZXZpY2VzX2Z1bmMgKDApID4gMCkK IAkgIGdvdG8gZm91bmQ7CiAgICAgICBpZiAoZF9hcmcgPT0gYWNjX2RldmljZV9kZWZhdWx0 KQogCXsKQEAgLTMwMiw3ICszMDIsNyBAQCBhY2NfaW5pdF8xIChhY2NfZGV2aWNlX3QgZCwg YWNjX2NvbnN0cnVjdF90IHBhcmVudF9jb25zdHJ1Y3QsIGludCBpbXBsaWNpdCkKIAogICBi YXNlX2RldiA9IHJlc29sdmVfZGV2aWNlIChkLCB0cnVlKTsKIAotICBuZGV2cyA9IGJhc2Vf ZGV2LT5nZXRfbnVtX2RldmljZXNfZnVuYyAoKTsKKyAgbmRldnMgPSBiYXNlX2Rldi0+Z2V0 X251bV9kZXZpY2VzX2Z1bmMgKDApOwogCiAgIGlmIChuZGV2cyA8PSAwIHx8IGdvYWNjX2Rl dmljZV9udW0gPj0gbmRldnMpCiAgICAgYWNjX2Rldl9udW1fb3V0X29mX3JhbmdlIChkLCBn b2FjY19kZXZpY2VfbnVtLCBuZGV2cyk7CkBAIC0zNTEsNyArMzUxLDcgQEAgYWNjX3NodXRk b3duXzEgKGFjY19kZXZpY2VfdCBkKQogICAvKiBHZXQgdGhlIGJhc2UgZGV2aWNlIGZvciB0 aGlzIGRldmljZSB0eXBlLiAgKi8KICAgYmFzZV9kZXYgPSByZXNvbHZlX2RldmljZSAoZCwg dHJ1ZSk7CiAKLSAgbmRldnMgPSBiYXNlX2Rldi0+Z2V0X251bV9kZXZpY2VzX2Z1bmMgKCk7 CisgIG5kZXZzID0gYmFzZV9kZXYtPmdldF9udW1fZGV2aWNlc19mdW5jICgwKTsKIAogICAv KiBVbmxvYWQgYWxsIHRoZSBkZXZpY2VzIG9mIHRoaXMgdHlwZSB0aGF0IGhhdmUgYmVlbiBv cGVuZWQuICAqLwogICBmb3IgKGkgPSAwOyBpIDwgbmRldnM7IGkrKykKQEAgLTUyMCw3ICs1 MjAsNyBAQCBnb2FjY19hdHRhY2hfaG9zdF90aHJlYWRfdG9fZGV2aWNlIChpbnQgb3JkKQog ICAgICAgYmFzZV9kZXYgPSBjYWNoZWRfYmFzZV9kZXY7CiAgICAgfQogICAKLSAgbnVtX2Rl dmljZXMgPSBiYXNlX2Rldi0+Z2V0X251bV9kZXZpY2VzX2Z1bmMgKCk7CisgIG51bV9kZXZp Y2VzID0gYmFzZV9kZXYtPmdldF9udW1fZGV2aWNlc19mdW5jICgwKTsKICAgaWYgKG51bV9k ZXZpY2VzIDw9IDAgfHwgb3JkID49IG51bV9kZXZpY2VzKQogICAgIGFjY19kZXZfbnVtX291 dF9vZl9yYW5nZSAoYWNjX2RldmljZV90eXBlIChiYXNlX2Rldi0+dHlwZSksIG9yZCwKIAkJ CSAgICAgIG51bV9kZXZpY2VzKTsKQEAgLTU5OSw3ICs1OTksNyBAQCBhY2NfZ2V0X251bV9k ZXZpY2VzIChhY2NfZGV2aWNlX3QgZCkKICAgaWYgKCFhY2NfZGV2KQogICAgIHJldHVybiAw OwogCi0gIG4gPSBhY2NfZGV2LT5nZXRfbnVtX2RldmljZXNfZnVuYyAoKTsKKyAgbiA9IGFj Y19kZXYtPmdldF9udW1fZGV2aWNlc19mdW5jICgwKTsKICAgaWYgKG4gPCAwKQogICAgIG4g PSAwOwogCkBAIC03NzksNyArNzc5LDcgQEAgYWNjX3NldF9kZXZpY2VfbnVtIChpbnQgb3Jk LCBhY2NfZGV2aWNlX3QgZCkKIAogICAgICAgY2FjaGVkX2Jhc2VfZGV2ID0gYmFzZV9kZXYg PSByZXNvbHZlX2RldmljZSAoZCwgdHJ1ZSk7CiAKLSAgICAgIG51bV9kZXZpY2VzID0gYmFz ZV9kZXYtPmdldF9udW1fZGV2aWNlc19mdW5jICgpOworICAgICAgbnVtX2RldmljZXMgPSBi YXNlX2Rldi0+Z2V0X251bV9kZXZpY2VzX2Z1bmMgKDApOwogCiAgICAgICBpZiAobnVtX2Rl dmljZXMgPD0gMCB8fCBvcmQgPj0gbnVtX2RldmljZXMpCiAgICAgICAgIGFjY19kZXZfbnVt X291dF9vZl9yYW5nZSAoZCwgb3JkLCBudW1fZGV2aWNlcyk7CkBAIC04MTQsNyArODE0LDcg QEAgZ2V0X3Byb3BlcnR5X2FueSAoaW50IG9yZCwgYWNjX2RldmljZV90IGQsIGFjY19kZXZp Y2VfcHJvcGVydHlfdCBwcm9wKQogCiAgIHN0cnVjdCBnb21wX2RldmljZV9kZXNjciAqZGV2 ID0gcmVzb2x2ZV9kZXZpY2UgKGQsIHRydWUpOwogCi0gIGludCBudW1fZGV2aWNlcyA9IGRl di0+Z2V0X251bV9kZXZpY2VzX2Z1bmMgKCk7CisgIGludCBudW1fZGV2aWNlcyA9IGRldi0+ Z2V0X251bV9kZXZpY2VzX2Z1bmMgKDApOwogCiAgIGlmIChudW1fZGV2aWNlcyA8PSAwIHx8 IG9yZCA+PSBudW1fZGV2aWNlcykKICAgICBhY2NfZGV2X251bV9vdXRfb2ZfcmFuZ2UgKGQs IG9yZCwgbnVtX2RldmljZXMpOwpkaWZmIC0tZ2l0IGEvbGliZ29tcC9wbHVnaW4vcGx1Z2lu LWdjbi5jIGIvbGliZ29tcC9wbHVnaW4vcGx1Z2luLWdjbi5jCmluZGV4IDFjMDQzNjg0MmRh Li5lYTMyN2JmMmNhMCAxMDA2NDQKLS0tIGEvbGliZ29tcC9wbHVnaW4vcGx1Z2luLWdjbi5j CisrKyBiL2xpYmdvbXAvcGx1Z2luL3BsdWdpbi1nY24uYwpAQCAtMzIyMSwxMCArMzIyMSwx NCBAQCBHT01QX09GRkxPQURfdmVyc2lvbiAodm9pZCkKIC8qIFJldHVybiB0aGUgbnVtYmVy IG9mIEdDTiBkZXZpY2VzIG9uIHRoZSBzeXN0ZW0uICAqLwogCiBpbnQKLUdPTVBfT0ZGTE9B RF9nZXRfbnVtX2RldmljZXMgKHZvaWQpCitHT01QX09GRkxPQURfZ2V0X251bV9kZXZpY2Vz ICh1bnNpZ25lZCBpbnQgb21wX3JlcXVpcmVzX21hc2spCiB7CiAgIGlmICghaW5pdF9oc2Ff Y29udGV4dCAoKSkKICAgICByZXR1cm4gMDsKKyAgLyogUmV0dXJuIC0xIGlmIG5vIG9tcF9y ZXF1aXJlc19tYXNrIGNhbm5vdCBiZSBmdWxmaWxsZWQgYnV0CisgICAgIGRldmljZXMgd2Vy ZSBwcmVzZW50LiAgKi8KKyAgaWYgKGhzYV9jb250ZXh0LmFnZW50X2NvdW50ID4gMCAmJiBv bXBfcmVxdWlyZXNfbWFzayAhPSAwKQorICAgIHJldHVybiAtMTsKICAgcmV0dXJuIGhzYV9j b250ZXh0LmFnZW50X2NvdW50OwogfQogCmRpZmYgLS1naXQgYS9saWJnb21wL3BsdWdpbi9w bHVnaW4tbnZwdHguYyBiL2xpYmdvbXAvcGx1Z2luL3BsdWdpbi1udnB0eC5jCmluZGV4IDM4 N2JjYmJjNTJhLi5iYzYzZTI3NGNkZiAxMDA2NDQKLS0tIGEvbGliZ29tcC9wbHVnaW4vcGx1 Z2luLW52cHR4LmMKKysrIGIvbGliZ29tcC9wbHVnaW4vcGx1Z2luLW52cHR4LmMKQEAgLTEx NzUsOSArMTE3NSwxNCBAQCBHT01QX09GRkxPQURfZ2V0X3R5cGUgKHZvaWQpCiB9CiAKIGlu dAotR09NUF9PRkZMT0FEX2dldF9udW1fZGV2aWNlcyAodm9pZCkKK0dPTVBfT0ZGTE9BRF9n ZXRfbnVtX2RldmljZXMgKHVuc2lnbmVkIGludCBvbXBfcmVxdWlyZXNfbWFzaykKIHsKLSAg cmV0dXJuIG52cHR4X2dldF9udW1fZGV2aWNlcyAoKTsKKyAgaW50IG51bV9kZXZpY2VzID0g bnZwdHhfZ2V0X251bV9kZXZpY2VzICgpOworICAvKiBSZXR1cm4gLTEgaWYgbm8gb21wX3Jl cXVpcmVzX21hc2sgY2Fubm90IGJlIGZ1bGZpbGxlZCBidXQKKyAgICAgZGV2aWNlcyB3ZXJl IHByZXNlbnQuICAqLworICBpZiAobnVtX2RldmljZXMgPiAwICYmIG9tcF9yZXF1aXJlc19t YXNrICE9IDApCisgICAgcmV0dXJuIC0xOworICByZXR1cm4gbnVtX2RldmljZXM7CiB9CiAK IGJvb2wKZGlmZiAtLWdpdCBhL2xpYmdvbXAvdGFyZ2V0LmMgYi9saWJnb21wL3RhcmdldC5j CmluZGV4IGMwODQ0ZjIyNjVhLi43NjZlNDg3ZmNlOSAxMDA2NDQKLS0tIGEvbGliZ29tcC90 YXJnZXQuYworKysgYi9saWJnb21wL3RhcmdldC5jCkBAIC0zNiw2ICszNiw3IEBACiAjIGlu Y2x1ZGUgPGludHR5cGVzLmg+ICAvKiBGb3IgUFJJdTY0LiAgKi8KICNlbmRpZgogI2luY2x1 ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+ICAvKiBGb3Igc25wcmludGYuICov CiAjaW5jbHVkZSA8YXNzZXJ0Lmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4KIApAQCAtOTgsNiAr OTksOSBAQCBzdGF0aWMgaW50IG51bV9kZXZpY2VzOwogLyogTnVtYmVyIG9mIEdPTVBfT0ZG TE9BRF9DQVBfT1BFTk1QXzQwMCBkZXZpY2VzLiAgKi8KIHN0YXRpYyBpbnQgbnVtX2Rldmlj ZXNfb3Blbm1wOwogCisvKiBPcGVuTVAgcmVxdWlyZXMgbWFzay4gICovCitzdGF0aWMgaW50 IG9tcF9yZXF1aXJlc19tYXNrOworCiAvKiBTaW1pbGFyIHRvIGdvbXBfcmVhbGxvYywgYnV0 IHJlbGVhc2UgcmVnaXN0ZXJfbG9jayBiZWZvcmUgZ29tcF9mYXRhbC4gICovCiAKIHN0YXRp YyB2b2lkICoKQEAgLTIzMTQsNiArMjMxOCwyMCBAQCBnb21wX3VubG9hZF9pbWFnZV9mcm9t X2RldmljZSAoc3RydWN0IGdvbXBfZGV2aWNlX2Rlc2NyICpkZXZpY2VwLAogICAgIH0KIH0K IAorc3RhdGljIHZvaWQKK2dvbXBfcmVxdWlyZXNfdG9fbmFtZSAoY2hhciAqYnVmLCBzaXpl X3Qgc2l6ZSwgaW50IHJlcXVpcmVzX21hc2spCit7CisgIGNoYXIgKmVuZCA9IGJ1ZiArIHNp emUsICpwID0gYnVmOworICBpZiAocmVxdWlyZXNfbWFzayAmIEdPTVBfUkVRVUlSRVNfVU5J RklFRF9BRERSRVNTKQorICAgIHAgKz0gc25wcmludGYgKHAsIGVuZCAtIHAsICJ1bmlmaWVk X2FkZHJlc3MiKTsKKyAgaWYgKHJlcXVpcmVzX21hc2sgJiBHT01QX1JFUVVJUkVTX1VOSUZJ RURfU0hBUkVEX01FTU9SWSkKKyAgICBwICs9IHNucHJpbnRmIChwLCBlbmQgLSBwLCAiJXN1 bmlmaWVkX3NoYXJlZF9tZW1vcnkiLAorCQkgICAocCA9PSBidWYgPyAiIiA6ICIsICIpKTsK KyAgaWYgKHJlcXVpcmVzX21hc2sgJiBHT01QX1JFUVVJUkVTX1JFVkVSU0VfT0ZGTE9BRCkK KyAgICBwICs9IHNucHJpbnRmIChwLCBlbmQgLSBwLCAiJXNyZXZlcnNlX29mZmxvYWQiLAor CQkgICAocCA9PSBidWYgPyAiIiA6ICIsICIpKTsKK30KKwogLyogVGhpcyBmdW5jdGlvbiBz aG91bGQgYmUgY2FsbGVkIGZyb20gZXZlcnkgb2ZmbG9hZCBpbWFnZSB3aGlsZSBsb2FkaW5n LgogICAgSXQgZ2V0cyB0aGUgZGVzY3JpcHRvciBvZiB0aGUgaG9zdCBmdW5jIGFuZCB2YXIg dGFibGVzIEhPU1RfVEFCTEUsIFRZUEUgb2YKICAgIHRoZSB0YXJnZXQsIGFuZCBUQVJHRVRf REFUQSBuZWVkZWQgYnkgdGFyZ2V0IHBsdWdpbi4gICovCkBAIC0yMzIzLDEzICsyMzQxLDQz IEBAIEdPTVBfb2ZmbG9hZF9yZWdpc3Rlcl92ZXIgKHVuc2lnbmVkIHZlcnNpb24sIGNvbnN0 IHZvaWQgKmhvc3RfdGFibGUsCiAJCQkgICBpbnQgdGFyZ2V0X3R5cGUsIGNvbnN0IHZvaWQg KnRhcmdldF9kYXRhKQogewogICBpbnQgaTsKKyAgaW50IG9tcF9yZXEgPSAwOwogCiAgIGlm IChHT01QX1ZFUlNJT05fTElCICh2ZXJzaW9uKSA+IEdPTVBfVkVSU0lPTikKICAgICBnb21w X2ZhdGFsICgiTGlicmFyeSB0b28gb2xkIGZvciBvZmZsb2FkICh2ZXJzaW9uICV1IDwgJXUp IiwKIAkJR09NUF9WRVJTSU9OLCBHT01QX1ZFUlNJT05fTElCICh2ZXJzaW9uKSk7Ci0gIAor CisgIGlmIChHT01QX1ZFUlNJT05fTElCICh2ZXJzaW9uKSA+IDEpCisgICAgeworICAgICAg b21wX3JlcSA9IChpbnQpIChzaXplX3QpICgodm9pZCAqKikgdGFyZ2V0X2RhdGEpWzBdOwor ICAgICAgdGFyZ2V0X2RhdGEgPSAmKCh2b2lkICoqKSB0YXJnZXRfZGF0YSlbMV07CisgICAg fQorCiAgIGdvbXBfbXV0ZXhfbG9jayAoJnJlZ2lzdGVyX2xvY2spOwogCisgIGlmIChvbXBf cmVxdWlyZXNfbWFzayAmJiBvbXBfcmVxdWlyZXNfbWFzayAhPSBvbXBfcmVxKQorICAgIHsK KyAgICAgIGNoYXIgYnVmMVtzaXplb2YgKCJ1bmlmaWVkX2FkZHJlc3MsIHVuaWZpZWRfc2hh cmVkX21lbW9yeSwgIgorCQkJInJldmVyc2Vfb2ZmbG9hZCIpXTsKKyAgICAgIGNoYXIgYnVm MltzaXplb2YgKCJ1bmlmaWVkX2FkZHJlc3MsIHVuaWZpZWRfc2hhcmVkX21lbW9yeSwgIgor CQkJInJldmVyc2Vfb2ZmbG9hZCIpXTsKKyAgICAgIGdvbXBfcmVxdWlyZXNfdG9fbmFtZSAo YnVmMiwgc2l6ZW9mIChidWYyKSwKKwkJCSAgICAgb21wX3JlcSAhPSBHT01QX1JFUVVJUkVT X1RBUkdFVF9VU0VECisJCQkgICAgID8gb21wX3JlcSA6IG9tcF9yZXF1aXJlc19tYXNrKTsK KyAgICAgIGlmIChvbXBfcmVxICE9IEdPTVBfUkVRVUlSRVNfVEFSR0VUX1VTRUQKKwkgICYm IG9tcF9yZXF1aXJlc19tYXNrICE9IEdPTVBfUkVRVUlSRVNfVEFSR0VUX1VTRUQpCisJewor CSAgZ29tcF9yZXF1aXJlc190b19uYW1lIChidWYxLCBzaXplb2YgKGJ1ZjEpLCBvbXBfcmVx dWlyZXNfbWFzayk7CisJICBnb21wX2ZhdGFsICgiT3Blbk1QICdyZXF1aXJlcycgZGlyZWN0 aXZlIHdpdGggbm9uLWlkZW50aWNhbCBjbGF1c2VzICIKKwkJICAgICAgImluIG11bHRpcGxl IGNvbXBpbGF0aW9uIHVuaXRzOiAnJXMnIHZzLiAnJXMnIiwKKwkJICAgICAgYnVmMSwgYnVm Mik7CisJfQorICAgICAgZWxzZQorCWdvbXBfZmF0YWwgKCJPcGVuTVAgJ3JlcXVpcmVzJyBk aXJlY3RpdmUgd2l0aCAnJXMnIHNwZWNpZmllZCBvbmx5IGluICIKKwkJICAgICJzb21lIGNv bXBpbGF0aW9uIHVuaXRzIiwgYnVmMik7CisgICAgfQorICBvbXBfcmVxdWlyZXNfbWFzayA9 IG9tcF9yZXE7CisKICAgLyogTG9hZCBpbWFnZSB0byBhbGwgaW5pdGlhbGl6ZWQgZGV2aWNl cy4gICovCiAgIGZvciAoaSA9IDA7IGkgPCBudW1fZGV2aWNlczsgaSsrKQogICAgIHsKQEAg LTQxMjUsOCArNDE3MywzMCBAQCBnb21wX3RhcmdldF9pbml0ICh2b2lkKQogCiAJaWYgKGdv bXBfbG9hZF9wbHVnaW5fZm9yX2RldmljZSAoJmN1cnJlbnRfZGV2aWNlLCBwbHVnaW5fbmFt ZSkpCiAJICB7Ci0JICAgIG5ld19udW1fZGV2cyA9IGN1cnJlbnRfZGV2aWNlLmdldF9udW1f ZGV2aWNlc19mdW5jICgpOwotCSAgICBpZiAobmV3X251bV9kZXZzID49IDEpCisJICAgIGlu dCBvbXBfcmVxID0gb21wX3JlcXVpcmVzX21hc2sgJiB+R09NUF9SRVFVSVJFU19UQVJHRVRf VVNFRDsKKwkgICAgbmV3X251bV9kZXZzID0gY3VycmVudF9kZXZpY2UuZ2V0X251bV9kZXZp Y2VzX2Z1bmMgKG9tcF9yZXEpOworCSAgICBpZiAobmV3X251bV9kZXZzIDwgMCkKKwkgICAg ICB7CisJCWJvb2wgZm91bmQgPSBmYWxzZTsKKwkJaW50IHR5cGUgPSBjdXJyZW50X2Rldmlj ZS5nZXRfdHlwZV9mdW5jICgpOworCQlmb3IgKGludCBpbWcgPSAwOyBpbWcgPCBudW1fb2Zm bG9hZF9pbWFnZXM7IGltZysrKQorCQkgIGlmICh0eXBlID09IG9mZmxvYWRfaW1hZ2VzW2lt Z10udHlwZSkKKwkJICAgIGZvdW5kID0gdHJ1ZTsKKwkJaWYgKGZvdW5kKQorCQkgIHsKKwkJ ICAgIGNoYXIgYnVmW3NpemVvZiAoInVuaWZpZWRfYWRkcmVzcywgdW5pZmllZF9zaGFyZWRf bWVtb3J5LCAiCisJCQkJICAgICAicmV2ZXJzZV9vZmZsb2FkIildOworCQkgICAgZ29tcF9y ZXF1aXJlc190b19uYW1lIChidWYsIHNpemVvZiAoYnVmKSwgb21wX3JlcSk7CisJCSAgICBj aGFyICpuYW1lID0gKGNoYXIgKikgbWFsbG9jIChjdXJfbGVuICsgMSk7CisJCSAgICBtZW1j cHkgKG5hbWUsIGN1ciwgY3VyX2xlbik7CisJCSAgICBuYW1lW2N1cl9sZW5dID0gJ1wwJzsK KwkJICAgIEdPTVBfUExVR0lOX2Vycm9yICgibm90ZTogJXMgZGV2aWNlcyBwcmVzZW50IGJ1 dCAnb21wICIKKwkJCQkgICAgICAgInJlcXVpcmVzICVzJyBjYW5ub3QgYmUgZnVsZmlsbGVk IiwKKwkJCQkgICAgICAgbmFtZSwgYnVmKTsKKwkJICAgIGZyZWUgKG5hbWUpOworCQkgIH0K KwkgICAgICB9CisJICAgIGVsc2UgaWYgKG5ld19udW1fZGV2cyA+PSAxKQogCSAgICAgIHsK IAkJLyogQXVnbWVudCBERVZJQ0VTIGFuZCBOVU1fREVWSUNFUy4gICovCiAKZGlmZiAtLWdp dCBhL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuYy1jKystY29tbW9uL3JlcXVpcmVzLTEt YXV4LmMgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJl cy0xLWF1eC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iZGNh NjYyZTQyZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAu Yy1jKystY29tbW9uL3JlcXVpcmVzLTEtYXV4LmMKQEAgLTAsMCArMSwxMSBAQAorLyogeyBk Zy1za2lwLWlmICIiIHsgKi0qLSogfSB9ICovCisKKyNwcmFnbWEgb21wIHJlcXVpcmVzIHVu aWZpZWRfYWRkcmVzcworCitpbnQgeDsKKwordm9pZCBmb28gKHZvaWQpCit7CisgICNwcmFn bWEgb21wIHRhcmdldAorICB4ID0gMTsKK30KZGlmZiAtLWdpdCBhL2xpYmdvbXAvdGVzdHN1 aXRlL2xpYmdvbXAuYy1jKystY29tbW9uL3JlcXVpcmVzLTEuYyBiL2xpYmdvbXAvdGVzdHN1 aXRlL2xpYmdvbXAuYy1jKystY29tbW9uL3JlcXVpcmVzLTEuYwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmVkZjk3Nzk3NjkKLS0tIC9kZXYvbnVsbAorKysg Yi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy0xLmMK QEAgLTAsMCArMSwyNCBAQAorLyogeyBkZy1kbyBsaW5rIHsgdGFyZ2V0IHsgb2ZmbG9hZF90 YXJnZXRfbnZwdHggfHwgb2ZmbG9hZF90YXJnZXRfYW1kZ2NuIH0gfSB9ICovCisvKiB7IGRn LWFkZGl0aW9uYWwtc291cmNlcyByZXF1aXJlcy0xLWF1eC5jIH0gKi8KKworLyogQ2hlY2sg ZGlhZ25vc3RpYyBieSBkZXZpY2UtY29tcGlsZXIncyBsdG8xLgorICAgT3RoZXIgZmlsZSB1 c2VzOiAncmVxdWlyZXMgdW5pZmllZF9hZGRyZXNzJy4gICovCisKKyNwcmFnbWEgb21wIHJl cXVpcmVzIHVuaWZpZWRfc2hhcmVkX21lbW9yeQorCitpbnQgYVsxMF07CitleHRlcm4gdm9p ZCBmb28gKHZvaWQpOworCitpbnQKK21haW4gKHZvaWQpCit7CisgICNwcmFnbWEgb21wIHRh cmdldAorICBmb3IgKGludCBpID0gMDsgaSA8IDEwOyBpKyspCisgICAgYVtpXSA9IDA7CisK KyAgZm9vICgpOworICByZXR1cm4gMDsKK30KKworLyogeyBkZy1lcnJvciAiT3Blbk1QICdy ZXF1aXJlcycgZGlyZWN0aXZlIHdpdGggbm9uLWlkZW50aWNhbCBjbGF1c2VzIGluIG11bHRp cGxlIGNvbXBpbGF0aW9uIHVuaXRzOiAndW5pZmllZF9zaGFyZWRfbWVtb3J5JyB2cy4gJ3Vu aWZpZWRfYWRkcmVzcyciICIiIHsgdGFyZ2V0ICotKi0qIH0gMCB9ICAqLworLyogeyBkZy1l eGNlc3MtZXJyb3JzICJJZ25vcmUgbWVzc2FnZXMgbGlrZTogZXJyb3JzIGR1cmluZyBtZXJn aW5nIG9mIHRyYW5zbGF0aW9uIHVuaXRzfG1rb2ZmbG9hZCByZXR1cm5lZCAxIGV4aXQgc3Rh dHVzIiB9ICovCmRpZmYgLS1naXQgYS9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysr LWNvbW1vbi9yZXF1aXJlcy0yLWF1eC5jIGIvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5j LWMrKy1jb21tb24vcmVxdWlyZXMtMi1hdXguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uNjE3NTc3NDQ4ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJnb21w L3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy0yLWF1eC5jCkBAIC0w LDAgKzEsOSBAQAorLyogeyBkZy1za2lwLWlmICIiIHsgKi0qLSogfSB9ICovCisKK2ludCB4 OworCit2b2lkIGZvbyAodm9pZCkKK3sKKyAgI3ByYWdtYSBvbXAgdGFyZ2V0CisgIHggPSAx OworfQpkaWZmIC0tZ2l0IGEvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5jLWMrKy1jb21t b24vcmVxdWlyZXMtMi5jIGIvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5jLWMrKy1jb21t b24vcmVxdWlyZXMtMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li5iZTE4MzBkMGM0NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmdvbXAvdGVzdHN1aXRlL2xp YmdvbXAuYy1jKystY29tbW9uL3JlcXVpcmVzLTIuYwpAQCAtMCwwICsxLDI1IEBACisvKiB7 IGRnLWRvIGxpbmsgeyB0YXJnZXQgb2ZmbG9hZGluZ19lbmFibGVkIH0gfSAqLworLyogeyBk Zy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1mb2ZmbG9hZD1kaXNhYmxlIC1mbHRvIiB9ICovCisv KiB7IGRnLWFkZGl0aW9uYWwtc291cmNlcyByZXF1aXJlcy0yLWF1eC5jIH0gKi8KKworLyog Q2hlY2sgZGlhZ25vc3RpYyBieSBob3N0J3MgbHRvMS4KKyAgIE90aGVyIGZpbGUgZG9lcyBu b3QgaGF2ZSBhbnkgJ29tcCByZXF1aXJlcycuICovCisKKyNwcmFnbWEgb21wIHJlcXVpcmVz IHVuaWZpZWRfc2hhcmVkX21lbW9yeQorCitpbnQgYVsxMF07CitleHRlcm4gdm9pZCBmb28g KHZvaWQpOworCitpbnQKK21haW4gKHZvaWQpCit7CisgICNwcmFnbWEgb21wIHRhcmdldAor ICBmb3IgKGludCBpID0gMDsgaSA8IDEwOyBpKyspCisgICAgYVtpXSA9IDA7CisKKyAgZm9v ICgpOworICByZXR1cm4gMDsKK30KKworLyogeyBkZy1lcnJvciAiT3Blbk1QICdyZXF1aXJl cycgZGlyZWN0aXZlIHdpdGggJ3VuaWZpZWRfc2hhcmVkX21lbW9yeScgc3BlY2lmaWVkIG9u bHkgaW4gc29tZSBjb21waWxhdGlvbiB1bml0cyIgIiIgeyB0YXJnZXQgKi0qLSogfSAwIH0g ICovCisvKiB7IGRnLWV4Y2Vzcy1lcnJvcnMgIklnbm9yZSBtZXNzYWdlcyBsaWtlOiBlcnJv cnMgZHVyaW5nIG1lcmdpbmcgb2YgdHJhbnNsYXRpb24gdW5pdHN8bWtvZmZsb2FkIHJldHVy bmVkIDEgZXhpdCBzdGF0dXMiIH0gKi8KZGlmZiAtLWdpdCBhL2xpYmdvbXAvdGVzdHN1aXRl L2xpYmdvbXAuYy1jKystY29tbW9uL3JlcXVpcmVzLTMtYXV4LmMgYi9saWJnb21wL3Rlc3Rz dWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy0zLWF1eC5jCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iZGNhNjYyZTQyZgotLS0gL2Rldi9udWxs CisrKyBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuYy1jKystY29tbW9uL3JlcXVpcmVz LTMtYXV4LmMKQEAgLTAsMCArMSwxMSBAQAorLyogeyBkZy1za2lwLWlmICIiIHsgKi0qLSog fSB9ICovCisKKyNwcmFnbWEgb21wIHJlcXVpcmVzIHVuaWZpZWRfYWRkcmVzcworCitpbnQg eDsKKwordm9pZCBmb28gKHZvaWQpCit7CisgICNwcmFnbWEgb21wIHRhcmdldAorICB4ID0g MTsKK30KZGlmZiAtLWdpdCBhL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuYy1jKystY29t bW9uL3JlcXVpcmVzLTMuYyBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuYy1jKystY29t bW9uL3JlcXVpcmVzLTMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uNGIwN2ZmZGQwOWIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJnb21wL3Rlc3RzdWl0ZS9s aWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy0zLmMKQEAgLTAsMCArMSwyNCBAQAorLyog eyBkZy1kbyBsaW5rIHsgdGFyZ2V0IG9mZmxvYWRpbmdfZW5hYmxlZCB9IH0gKi8KKy8qIHsg ZGctYWRkaXRpb25hbC1zb3VyY2VzIHJlcXVpcmVzLTMtYXV4LmMgfSAqLworCisvKiBDaGVj ayBkaWFnbm9zdGljIGJ5IGRldmljZS1jb21waWxlcidzIGx0bzEuCisgICBPdGhlciBmaWxl IHVzZXM6ICdyZXF1aXJlcyB1bmlmaWVkX2FkZHJlc3MnLiAgKi8KKworI3ByYWdtYSBvbXAg cmVxdWlyZXMgdW5pZmllZF9hZGRyZXNzLHVuaWZpZWRfc2hhcmVkX21lbW9yeQorCitpbnQg YVsxMF07CitleHRlcm4gdm9pZCBmb28gKHZvaWQpOworCitpbnQKK21haW4gKHZvaWQpCit7 CisgICNwcmFnbWEgb21wIHRhcmdldAorICBmb3IgKGludCBpID0gMDsgaSA8IDEwOyBpKysp CisgICAgYVtpXSA9IDA7CisKKyAgZm9vICgpOworICByZXR1cm4gMDsKK30KKworLyogeyBk Zy1lcnJvciAiT3Blbk1QICdyZXF1aXJlcycgZGlyZWN0aXZlIHdpdGggbm9uLWlkZW50aWNh bCBjbGF1c2VzIGluIG11bHRpcGxlIGNvbXBpbGF0aW9uIHVuaXRzOiAndW5pZmllZF9hZGRy ZXNzLCB1bmlmaWVkX3NoYXJlZF9tZW1vcnknIHZzLiAndW5pZmllZF9hZGRyZXNzJyIgIiIg eyB0YXJnZXQgKi0qLSogfSAwIH0gICovCisvKiB7IGRnLWV4Y2Vzcy1lcnJvcnMgIklnbm9y ZSBtZXNzYWdlcyBsaWtlOiBlcnJvcnMgZHVyaW5nIG1lcmdpbmcgb2YgdHJhbnNsYXRpb24g dW5pdHN8bWtvZmZsb2FkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMiIH0gKi8KZGlmZiAtLWdp dCBhL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuYy1jKystY29tbW9uL3JlcXVpcmVzLTQt YXV4LmMgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJl cy00LWF1eC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iOGI1 MWFlOGNhNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAu Yy1jKystY29tbW9uL3JlcXVpcmVzLTQtYXV4LmMKQEAgLTAsMCArMSwxMyBAQAorLyogeyBk Zy1za2lwLWlmICIiIHsgKi0qLSogfSB9ICovCisKKyNwcmFnbWEgb21wIHJlcXVpcmVzIHJl dmVyc2Vfb2ZmbG9hZAorCisvKiBOb3RlOiBUaGUgZmlsZSBkb2VzIG5vdCBoYXZlIG5laXRo ZXIgb2Y6CisgICBkZWNsYXJlIHRhcmdldCBkaXJlY3RpdmVzLCBkZXZpY2UgY29uc3RydWN0 cyBvciBkZXZpY2Ugcm91dGluZXMuICAqLworCitpbnQgeDsKKwordm9pZCBmb28gKHZvaWQp Cit7CisgIHggPSAxOworfQpkaWZmIC0tZ2l0IGEvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29t cC5jLWMrKy1jb21tb24vcmVxdWlyZXMtNC5jIGIvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29t cC5jLWMrKy1jb21tb24vcmVxdWlyZXMtNC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi4xMjhmZGJiODQ2MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYmdvbXAv dGVzdHN1aXRlL2xpYmdvbXAuYy1jKystY29tbW9uL3JlcXVpcmVzLTQuYwpAQCAtMCwwICsx LDIzIEBACisvKiB7IGRnLWRvIGxpbmsgeyB0YXJnZXQgb2ZmbG9hZGluZ19lbmFibGVkIH0g fSAqLworLyogeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1mbHRvIiB9ICovCisvKiB7IGRn LWFkZGl0aW9uYWwtc291cmNlcyByZXF1aXJlcy00LWF1eC5jIH0gKi8KKworLyogQ2hlY2sg ZGlhZ25vc3RpYyBieSBkZXZpY2UtY29tcGlsZXIncyBvciBob3N0IGNvbXBpbGVyJ3MgbHRv MS4KKyAgIE90aGVyIGZpbGUgdXNlczogJ3JlcXVpcmVzIHJldmVyc2Vfb2ZmbG9hZCcsIGJ1 dCB0aGF0J3MgaW5hY3RpdmUgYXMKKyAgIHRoZXJlIGFyZSBubyBkZWNsYXJlIHRhcmdldCBk aXJlY3RpdmVzLCBkZXZpY2UgY29uc3RydWN0cyBub3IgZGV2aWNlIHJvdXRpbmVzICAqLwor CisjcHJhZ21hIG9tcCByZXF1aXJlcyB1bmlmaWVkX2FkZHJlc3MsdW5pZmllZF9zaGFyZWRf bWVtb3J5CisKK2ludCBhWzEwXTsKK2V4dGVybiB2b2lkIGZvbyAodm9pZCk7CisKK2ludAor bWFpbiAodm9pZCkKK3sKKyAgI3ByYWdtYSBvbXAgdGFyZ2V0CisgIGZvciAoaW50IGkgPSAw OyBpIDwgMTA7IGkrKykKKyAgICBhW2ldID0gMDsKKworICBmb28gKCk7CisgIHJldHVybiAw OworfQpkaWZmIC0tZ2l0IGEvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5jLWMrKy1jb21t b24vcmVxdWlyZXMtNS1hdXguYyBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuYy1jKyst Y29tbW9uL3JlcXVpcmVzLTUtYXV4LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAuLmQyMjM3NDlmMGExCi0tLSAvZGV2L251bGwKKysrIGIvbGliZ29tcC90ZXN0 c3VpdGUvbGliZ29tcC5jLWMrKy1jb21tb24vcmVxdWlyZXMtNS1hdXguYwpAQCAtMCwwICsx LDExIEBACisvKiB7IGRnLXNraXAtaWYgIiIgeyAqLSotKiB9IH0gKi8KKworI3ByYWdtYSBv bXAgcmVxdWlyZXMgdW5pZmllZF9zaGFyZWRfbWVtb3J5LCB1bmlmaWVkX2FkZHJlc3MsIHJl dmVyc2Vfb2ZmbG9hZAorCitpbnQgeDsKKwordm9pZCBmb28gKHZvaWQpCit7CisgICNwcmFn bWEgb21wIHRhcmdldAorICB4ID0gMTsKK30KZGlmZiAtLWdpdCBhL2xpYmdvbXAvdGVzdHN1 aXRlL2xpYmdvbXAuYy1jKystY29tbW9uL3JlcXVpcmVzLTUuYyBiL2xpYmdvbXAvdGVzdHN1 aXRlL2xpYmdvbXAuYy1jKystY29tbW9uL3JlcXVpcmVzLTUuYwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2QxNWJkZTIxZjAKLS0tIC9kZXYvbnVsbAorKysg Yi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy01LmMK QEAgLTAsMCArMSwyMCBAQAorLyogeyBkZy1kbyBydW4geyB0YXJnZXQgeyBvZmZsb2FkX3Rh cmdldF9udnB0eCB8fCBvZmZsb2FkX3RhcmdldF9hbWRnY24gfSB9IH0gKi8KKy8qIHsgZGct YWRkaXRpb25hbC1zb3VyY2VzIHJlcXVpcmVzLTUtYXV4LmMgfSAqLworCisjcHJhZ21hIG9t cCByZXF1aXJlcyB1bmlmaWVkX3NoYXJlZF9tZW1vcnksIHVuaWZpZWRfYWRkcmVzcywgcmV2 ZXJzZV9vZmZsb2FkCisKK2ludCBhWzEwXTsKK2V4dGVybiB2b2lkIGZvbyAodm9pZCk7CisK K2ludAorbWFpbiAodm9pZCkKK3sKKyAgI3ByYWdtYSBvbXAgdGFyZ2V0CisgIGZvciAoaW50 IGkgPSAwOyBpIDwgMTA7IGkrKykKKyAgICBhW2ldID0gMDsKKworICBmb28gKCk7CisgIHJl dHVybiAwOworfQorCisvKiB7IGRnLW91dHB1dCAiZGV2aWNlcyBwcmVzZW50IGJ1dCAnb21w IHJlcXVpcmVzIHVuaWZpZWRfYWRkcmVzcywgdW5pZmllZF9zaGFyZWRfbWVtb3J5LCByZXZl cnNlX29mZmxvYWQnIGNhbm5vdCBiZSBmdWxmaWxsZWQiIH0gKi8KZGlmZiAtLWdpdCBhL2xp YmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuYy1jKystY29tbW9uL3JlcXVpcmVzLTYuYyBiL2xp YmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuYy1jKystY29tbW9uL3JlcXVpcmVzLTYuYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjAwYzc0NTliYmMKLS0tIC9k ZXYvbnVsbAorKysgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9y ZXF1aXJlcy02LmMKQEAgLTAsMCArMSwxNyBAQAorI3ByYWdtYSBvbXAgcmVxdWlyZXMgdW5p ZmllZF9zaGFyZWRfbWVtb3J5LCB1bmlmaWVkX2FkZHJlc3MsIHJldmVyc2Vfb2ZmbG9hZAor CisvKiBUaGUgcmVxdWlyZXMgbGluZSBpcyBub3QgYWN0aXZlIGFzIHRoZXJlIGlzIG5vbmUg b2Y6CisgICAgIGRlY2xhcmUgdGFyZ2V0IGRpcmVjdGl2ZXMsIGRldmljZSBjb25zdHJ1Y3Rz IG9yIGRldmljZSByb3V0aW5lcy4KKyAgIFRodXMsIHRoaXMgY29kZSBpcyBleHBlY3RlZCB0 byB3b3JrIGV2ZXJ5d2hlcmUuICAqLworCitpbnQgYVsxMF07CitleHRlcm4gdm9pZCBmb28g KHZvaWQpOworCitpbnQKK21haW4gKHZvaWQpCit7CisgIGZvciAoaW50IGkgPSAwOyBpIDwg MTA7IGkrKykKKyAgICBhW2ldID0gMDsKKworICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBh L2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuYy1jKystY29tbW9uL3JlcXVpcmVzLTctYXV4 LmMgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi9yZXF1aXJlcy03 LWF1eC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wOTE2ZGI4 YTBjZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuYy1j KystY29tbW9uL3JlcXVpcmVzLTctYXV4LmMKQEAgLTAsMCArMSwxMSBAQAorLyogeyBkZy1z a2lwLWlmICIiIHsgKi0qLSogfSB9ICovCisKKyNwcmFnbWEgb21wIHJlcXVpcmVzIHVuaWZp ZWRfYWRkcmVzcworCitpbnQgeDsKKwordm9pZCBmb28gKHZvaWQpCit7CisgIHggPSAxOwor ICAjcHJhZ21hIG9tcCB0YXJnZXQgZW50ZXIgZGF0YSBtYXAoYWx3YXlzLHRvOiB4KQorfQpk aWZmIC0tZ2l0IGEvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5jLWMrKy1jb21tb24vcmVx dWlyZXMtNy5jIGIvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5jLWMrKy1jb21tb24vcmVx dWlyZXMtNy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jOTRh NGMxMDg0NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAu Yy1jKystY29tbW9uL3JlcXVpcmVzLTcuYwpAQCAtMCwwICsxLDI0IEBACisvKiB7IGRnLWRv IGxpbmsgeyB0YXJnZXQgeyBvZmZsb2FkX3RhcmdldF9udnB0eCB8fCBvZmZsb2FkX3Rhcmdl dF9hbWRnY24gfSB9IH0gKi8KKy8qIHsgZGctYWRkaXRpb25hbC1zb3VyY2VzIHJlcXVpcmVz LTctYXV4LmMgfSAqLworCisvKiBDaGVjayBkaWFnbm9zdGljIGJ5IGRldmljZS1jb21waWxl cidzIGx0bzEuCisgICBPdGhlciBmaWxlIHVzZXM6ICdyZXF1aXJlcyB1bmlmaWVkX2FkZHJl c3MnLiAgKi8KKworI3ByYWdtYSBvbXAgcmVxdWlyZXMgdW5pZmllZF9zaGFyZWRfbWVtb3J5 CisKK2ludCBhWzEwXTsKK2V4dGVybiB2b2lkIGZvbyAodm9pZCk7CisKK2ludAorbWFpbiAo dm9pZCkKK3sKKyAgI3ByYWdtYSBvbXAgdGFyZ2V0CisgIGZvciAoaW50IGkgPSAwOyBpIDwg MTA7IGkrKykKKyAgICBhW2ldID0gMDsKKworICBmb28gKCk7CisgIHJldHVybiAwOworfQor CisvKiB7IGRnLWVycm9yICJPcGVuTVAgJ3JlcXVpcmVzJyBkaXJlY3RpdmUgd2l0aCBub24t aWRlbnRpY2FsIGNsYXVzZXMgaW4gbXVsdGlwbGUgY29tcGlsYXRpb24gdW5pdHM6ICd1bmlm aWVkX3NoYXJlZF9tZW1vcnknIHZzLiAndW5pZmllZF9hZGRyZXNzJyIgIiIgeyB0YXJnZXQg Ki0qLSogfSAwIH0gICovCisvKiB7IGRnLWV4Y2Vzcy1lcnJvcnMgIklnbm9yZSBtZXNzYWdl cyBsaWtlOiBlcnJvcnMgZHVyaW5nIG1lcmdpbmcgb2YgdHJhbnNsYXRpb24gdW5pdHN8bWtv ZmZsb2FkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMiIH0gKi8KZGlmZiAtLWdpdCBhL2xpYmdv bXAvdGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi9yZXF1aXJlcy0xLWF1eC5mOTAgYi9saWJn b21wL3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vcmVxdWlyZXMtMS1hdXguZjkwCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hMThjYWViNGM2OQotLS0gL2Rl di9udWxsCisrKyBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi9yZXF1aXJl cy0xLWF1eC5mOTAKQEAgLTAsMCArMSwxNCBAQAorISB7IGRnLXNraXAtaWYgIiIgeyAqLSot KiB9IH0KKworbW9kdWxlIG0KKyAgaW50ZWdlciB4CitlbmQgbW9kdWxlIG0KKworc3Vicm91 dGluZSBmb28KKyAgdXNlIG0KKyAgaW1wbGljaXQgbm9uZQorICAhJG9tcCByZXF1aXJlcyB1 bmlmaWVkX2FkZHJlc3MKKworICB4ID0gMQorICAhJG9tcCB0YXJnZXQgZW50ZXIgZGF0YSBt YXAoYWx3YXlzLHRvOiB4KQorZW5kCmRpZmYgLS1naXQgYS9saWJnb21wL3Rlc3RzdWl0ZS9s aWJnb21wLmZvcnRyYW4vcmVxdWlyZXMtMS5mOTAgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJn b21wLmZvcnRyYW4vcmVxdWlyZXMtMS5mOTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjMzNzQxYWYxNWYxCi0tLSAvZGV2L251bGwKKysrIGIvbGliZ29tcC90 ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL3JlcXVpcmVzLTEuZjkwCkBAIC0wLDAgKzEsMjYg QEAKKyEgeyBkZy1kbyBsaW5rIHsgdGFyZ2V0IHsgb2ZmbG9hZF90YXJnZXRfbnZwdHggfHwg b2ZmbG9hZF90YXJnZXRfYW1kZ2NuIH0gfSB9CishIHsgZGctYWRkaXRpb25hbC1zb3VyY2Vz IHJlcXVpcmVzLTEtYXV4LmY5MCB9CisKKyEgQ2hlY2sgZGlhZ25vc3RpYyBieSBkZXZpY2Ut Y29tcGlsZXIncyBsdG8xLgorISAgIE90aGVyIGZpbGUgdXNlczogJ3JlcXVpcmVzIHVuaWZp ZWRfYWRkcmVzcycuCisKK21vZHVsZSBtCisgIGludGVnZXIgOjogYSgxMCkKKyAgaW50ZXJm YWNlCisgICAgc3Vicm91dGluZSBmb28KKyAgICBlbmQKKyAgZW5kIGludGVyZmFjZQorZW5k CisKK3Byb2dyYW0gbWFpbgorICAhJG9tcCByZXF1aXJlcyB1bmlmaWVkX3NoYXJlZF9tZW1v cnkKKworICAhJG9tcCB0YXJnZXQKKyAgICBhID0gMAorICAhJG9tcCBlbmQgdGFyZ2V0CisK KyAgY2FsbCBmb28gKCkKK2VuZAorCishIHsgZGctZXJyb3IgIk9wZW5NUCAncmVxdWlyZXMn IGRpcmVjdGl2ZSB3aXRoIG5vbi1pZGVudGljYWwgY2xhdXNlcyBpbiBtdWx0aXBsZSBjb21w aWxhdGlvbiB1bml0czogJ3VuaWZpZWRfc2hhcmVkX21lbW9yeScgdnMuICd1bmlmaWVkX2Fk ZHJlc3MnIiAiIiB7IHRhcmdldCAqLSotKiB9IDAgfQorISB7IGRnLWV4Y2Vzcy1lcnJvcnMg Iklnbm9yZSBtZXNzYWdlcyBsaWtlOiBlcnJvcnMgZHVyaW5nIG1lcmdpbmcgb2YgdHJhbnNs YXRpb24gdW5pdHN8bWtvZmZsb2FkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMiIH0KZGlmZiAt LWdpdCBhL2xpYm9mZmxvYWRtaWMvcGx1Z2luL2xpYmdvbXAtcGx1Z2luLWludGVsbWljLmNw cCBiL2xpYm9mZmxvYWRtaWMvcGx1Z2luL2xpYmdvbXAtcGx1Z2luLWludGVsbWljLmNwcApp bmRleCBkMTY3OGQwNTE0ZS4uMzNiYWUwNjUwYjQgMTAwNjQ0Ci0tLSBhL2xpYm9mZmxvYWRt aWMvcGx1Z2luL2xpYmdvbXAtcGx1Z2luLWludGVsbWljLmNwcAorKysgYi9saWJvZmZsb2Fk bWljL3BsdWdpbi9saWJnb21wLXBsdWdpbi1pbnRlbG1pYy5jcHAKQEAgLTE2OCw4ICsxNjgs MTIgQEAgR09NUF9PRkZMT0FEX2dldF90eXBlICh2b2lkKQogfQogCiBleHRlcm4gIkMiIGlu dAotR09NUF9PRkZMT0FEX2dldF9udW1fZGV2aWNlcyAodm9pZCkKK0dPTVBfT0ZGTE9BRF9n ZXRfbnVtX2RldmljZXMgKHVuc2lnbmVkIGludCBvbXBfcmVxdWlyZXNfbWFzaykKIHsKKyAg LyogUmV0dXJuIC0xIGlmIG5vIG9tcF9yZXF1aXJlc19tYXNrIGNhbm5vdCBiZSBmdWxmaWxs ZWQgYnV0CisgICAgIGRldmljZXMgd2VyZSBwcmVzZW50LiAgKi8KKyAgaWYgKG51bV9kZXZp Y2VzID4gMCAmJiBvbXBfcmVxdWlyZXNfbWFzayAhPSAwKQorICAgIHJldHVybiAtMTsKICAg VFJBQ0UgKCIoKTogcmV0dXJuICVkIiwgbnVtX2RldmljZXMpOwogICByZXR1cm4gbnVtX2Rl dmljZXM7CiB9Cg== --------------Cakm6JXsuOj1p9FaZ1ntldQI--