From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4EDB8C47DAF for ; Mon, 22 Jan 2024 08:50:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=UqiSmkJbD1mR8kx6rOTuwjNRGObE4PVZHLxDBPFVOJo=; b=yCvG/Lw1Wn0Pdo nfnxUL8GYsMyVVhGyTokr/FcOPYsGgpgVp+IxT4ILcXtQffR+ap3/MjgDmUoWAj9pxZFIboDfOGEL OxFq0oxVfckjP6D4cIJCp0J4VQNVj4F1eSVKyGDBRebC4a6+PJEI6r3Mam/Jh7jAreFrNuy8eyXo4 y9+GI5QwtqzjW01belghVVJwPmaUNajupDinH7Hc4Zw4pBWYKy6ufB5fOnNMffJXIEiVJh1traTCj /lAALFx6HBH2o+F6xfsnRDu5cV2NcIN72FbHEXNNFUREIWBWxZJSSHKLHgbOQWOi4eKaLl48cTTT5 BACShQASXyot7/CVm68w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rRq0r-00B8dU-3C; Mon, 22 Jan 2024 08:50:37 +0000 Received: from 60-248-80-70.hinet-ip.hinet.net ([60.248.80.70] helo=Atcsqr.andestech.com) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rRq0m-00B8bU-1Y; Mon, 22 Jan 2024 08:50:35 +0000 Received: from mail.andestech.com (ATCPCS16.andestech.com [10.0.1.222]) by Atcsqr.andestech.com with ESMTP id 40M8mbXp088104; Mon, 22 Jan 2024 16:48:37 +0800 (+08) (envelope-from peterlin@andestech.com) Received: from APC323 (10.0.12.98) by ATCPCS16.andestech.com (10.0.1.222) with Microsoft SMTP Server id 14.3.498.0; Mon, 22 Jan 2024 16:48:36 +0800 Date: Mon, 22 Jan 2024 16:48:32 +0800 From: Yu-Chien Peter Lin To: Atish Patra Subject: Re: [PATCH v7 07/16] RISC-V: Move T-Head PMU to CPU feature alternative framework Message-ID: References: <20240110073917.2398826-1-peterlin@andestech.com> <20240110073917.2398826-8-peterlin@andestech.com> <20240116-cherub-revival-5d32cc5f1fd0@spud> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/2.2.12 (2023-09-09) X-Originating-IP: [10.0.12.98] X-DNSRBL: X-MAIL: Atcsqr.andestech.com 40M8mbXp088104 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240122_005033_202750_F0F11225 X-CRM114-Status: GOOD ( 62.42 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: mark.rutland@arm.com, irogers@google.com, heiko@sntech.de, geert+renesas@glider.be, alexander.shishkin@linux.intel.com, linux-kernel@vger.kernel.org, conor.dooley@microchip.com, guoren@kernel.org, krzysztof.kozlowski+dt@linaro.org, linux-riscv@lists.infradead.org, will@kernel.org, linux-renesas-soc@vger.kernel.org, tim609@andestech.com, samuel@sholland.org, anup@brainfault.org, dminus@andestech.com, magnus.damm@gmail.com, jernej.skrabec@gmail.com, peterz@infradead.org, wens@csie.org, mingo@redhat.com, jszhang@kernel.org, inochiama@outlook.com, linux-sunxi@lists.linux.dev, ajones@ventanamicro.com, devicetree@vger.kernel.org, conor+dt@kernel.org, aou@eecs.berkeley.edu, andre.przywara@arm.com, locus84@andestech.com, acme@kernel.org, prabhakar.mahadev-lad.rj@bp.renesas.com, robh+dt@kernel.org, paul.walmsley@sifive.com, namhyung@kernel.org, tglx@linutronix.de, linux-arm-kernel@lists.infradead.org, ycliang@andestech.com, n.shubin@yadro.com, rdunlap@infradead.org, chao.wei@sophgo.com, adrian.hunter@intel.com, Conor Dooley , linux-perf-users@vger.kernel.org, evan@rivosinc.com, palmer@dabbelt.com, jolsa@kernel.org, unicorn_wang@outlook.com, wefu@redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org VGhhbmsgeW91IGFsbCBmb3IgeW91ciBvcGluaW9uLApJbiBmYWN0LCB0aGUgU3Njb2ZwbWYgaGFz IGJlZW4gaW1wbGVtZW50ZWQgaW4gQW5kZXMgY29yZXMgbmV3ZXIgdGhhbgpBWDQ1LCB3aGljaCBp cyB0aGUgbGFzdCBvbmUgdG8gc3VwcG9ydCBBbmRlcyBQTVUuIEFkZGl0aW9uYWxseSwgdGhpcwpm ZWF0dXJlIHdpbGwgYmUgc3dpdGNoZWQgdG8gU3Njb2ZwbWYgb25jZSBBbmRlcyBjb3JlIHN1cHBv cnRzIEFJQS4KCk9uIFdlZCwgSmFuIDE3LCAyMDI0IGF0IDEyOjU4OjIxQU0gLTA4MDAsIEF0aXNo IFBhdHJhIHdyb3RlOgo+IE9uIFR1ZSwgSmFuIDE2LCAyMDI0IGF0IDQ6MTbigK9QTSBDb25vciBE b29sZXkgPGNvbm9yQGtlcm5lbC5vcmc+IHdyb3RlOgo+ID4KPiA+IE9uIFR1ZSwgSmFuIDE2LCAy MDI0IGF0IDEyOjU1OjQxUE0gLTA4MDAsIEF0aXNoIFBhdHJhIHdyb3RlOgo+ID4gPiBPbiBUdWUs IEphbiA5LCAyMDI0IGF0IDExOjQw4oCvUE0gWXUgQ2hpZW4gUGV0ZXIgTGluCj4gPiA+IDxwZXRl cmxpbkBhbmRlc3RlY2guY29tPiB3cm90ZToKPiA+ID4gPgo+ID4gPiA+IFRoZSBjdXN0b20gUE1V IGV4dGVuc2lvbiBhaW1zIHRvIHN1cHBvcnQgcGVyZiBldmVudCBzYW1wbGluZyBwcmlvcgo+ID4g PiA+IHRvIHRoZSByYXRpZmljYXRpb24gb2YgU3Njb2ZwbWYuIEluc3RlYWQgb2YgZGl2ZXJ0aW5n IHRoZSBiaXRzIGFuZAo+ID4gPiA+IHJlZ2lzdGVyIHJlc2VydmVkIGZvciBmdXR1cmUgc3RhbmRh cmQsIGEgc2V0IG9mIGN1c3RvbSByZWdpc3RlcnMgaXMKPiA+ID4gPiBhZGRlZC4gIEhlbmNlLCB3 ZSBtYXkgY29uc2lkZXIgaXQgYXMgYSBDUFUgZmVhdHVyZSByYXRoZXIgdGhhbiBhbgo+ID4gPiA+ IGVycmF0dW0uCj4gPiA+ID4KPiA+ID4KPiA+ID4gSSBkb24ndCB0aGluayB3ZSBzaG91bGQgZG8g dGhhdC4gQW55IGN1c3RvbSBpbXBsZW1lbnRhdGlvbiB0aGF0Cj4gPiA+IHZpb2xhdGVzIHRoZSBz dGFuZGFyZCBSSVNDLVYgc3BlYyBzaG91bGQKPiA+ID4gYmUgYW4gZXJyYXRhIG5vdCBhIGZlYXR1 cmUuCj4gPiA+IEFzIHBlciBteSB1bmRlcnN0YW5kaW5nLCBhIHZlbmRvciBjYW4gY2FsbCBhbiBl eHRlbnNpb24gY3VzdG9tIElTQQo+ID4gPiBleHRlbnNpb24gaWYgdGhlIHNhbWUgZmVhdHVyZSBp cyBub3QgYXZhaWxhYmxlCj4gPiA+IGluIHRoZSBzdGFuZGFyZCBJU0EgZXh0ZW5zaW9ucyBvciB0 aGUgbWVjaGFuaXNtIGlzIGNvbXBsZXRlbHkKPiA+ID4gZGlmZmVyZW50LiBJdCBtdXN0IGFsc28g bm90IHZpb2xhdGUgYW55IHN0YW5kYXJkIHNwZWMgYXMgd2VsbC4KPiA+ID4KPiA+ID4gSW4gdGhp cyBjYXNlLCBhIHN0YW5kYXJkIHNzY29mcG1mIGlzIGFscmVhZHkgYXZhaWxhYmxlLiBNb3Jlb3Zl ciwgYm90aAo+ID4gPiBBbmRlcyBhbmQgVC1oZWFkIGV4dGVuc2lvbnMgdmlvbGF0ZSB0aGUgc3Rh bmRhcmQKPiA+ID4gc3BlYyBieSByZXVzaW5nIGxvY2FsIGludGVycnVwdCBudW1iZXJzICgxNyhU aGVhZCkgJiAxOChBbmRlcykpIHdoaWNoCj4gPiA+IGFyZSBjbGVhcmx5IHNwZWNpZmllZCBhcyBy ZXNlcnZlZCBmb3Igc3RhbmRhcmQgbG9jYWwgaW50ZXJydXB0cwo+ID4gPiBpbiB0aGUgQUlBIHNw ZWNpZmljYXRpb24uCj4gPgo+ID4gSSBkaXNhZ3JlZSB3aXRoIHlvdSBoZXJlLiBUaGUgQW5kZXMg aW1wbGVtZW50YXRpb24gcHJlZGF0ZWQgKElJUkMgdGhhdAo+ID4gaXMgd2hhdCB3YXMgc2FpZCBp biByZXBsaWVzIHRvIGFuIGVhcmxpZXIgcmV2aXNpb24pIHRoZSBTc2NvZnBtZgo+ID4gZXh0ZW5z aW9uIGFuZCBjZXJ0YWlubHkgcHJlZGF0ZXMgdGhlIEFJQSBzcGVjaWZpY2F0aW9uLiBJIHdvdWxk IGJlIG9uCj4gPiBib2FyZCB3aXRoIHRoaXMgbGluZSBvZiB0aGlua2luZyBpZiBzb21lb25lIGNv bWVzIGFsb25nIGluIDIwMzAgd2l0aAo+ID4gIlpiYiBidXQgd2l0aCB0aGlzIG9uZSB0d2VhayIg b3Igd2hlcmUgc29tZXRoaW5nIGZsaWVzIGVudGlyZWx5IGluIHRoZQo+ID4gZmFjZSBvZiB0aGUg c3RhbmRhcmQgKGxpa2UgdGhlIElPQ1AgY2FjaGUgc3R1ZmYpLiBUaGUgcmVsZXZhbnQgc2VjdGlv bgo+ID4gaW4gdGhlIEFJQSBzcGVjIHNlZW1zIHRvIHNheToKPiA+IHwgSW50ZXJydXB0IGNhdXNl cyB0aGF0IGFyZSBzdGFuZGFyZGl6ZWQgYnkgdGhlIFByaXZpbGVnZWQgQXJjaGl0ZWN0dXJlCj4g PiB8IGhhdmUgbWFqb3IgaWRlbnRpdGllcyBpbiB0aGUgcmFuZ2UgMOKAkzE1LCB3aGlsZSBudW1i ZXJzIDE2IGFuZCBoaWdoZXIgYXJlCj4gPiB8IG9mZmljaWFsbHkgYXZhaWxhYmxlIGZvciBwbGF0 Zm9ybSBzdGFuZGFyZHMgb3IgZm9yIGN1c3RvbSB1c2UuCj4gPiB8IFRoZSBBZHZhbmNlZCBJbnRl cnJ1cHQgQXJjaGl0ZWN0dXJlIGNsYWltcyBmdXJ0aGVyIGF1dGhvcml0eSBvdmVyCj4gPiB8IGlk ZW50aXR5IG51bWJlcnMgaW4gdGhlIHJhbmdlcyAxNuKAkzIzIGFuZCAzMuKAkzQ3LCBsZWF2aW5n IG51bWJlcnMgaW4gdGhlCj4gPiB8IHJhbmdlIDI04oCTMzEgYW5kIGFsbCBtYWpvciBpZGVudGl0 aWVzIDQ4IGFuZCBoaWdoZXIgc3RpbGwgZnJlZSBmb3IgY3VzdG9tCj4gPiB8IHVzZS4KPiA+IEkg ZG9uJ3Qgc2VlIGhvdyB0aGF0IGNhbiBiZSBwcm9ibGVtYXRpYyBnaXZlbiB0aGUgQW5kZXMgaW1w bGVtdGF0aW9uCj4gPiBkYXRlcyBmcm9tIGJlZm9yZSBBSUEgd2FzIGEgdGhpbmcuIEl0IHdvdWxk IGJlIHNpbGx5IHRvIHNheSB0aGF0IGJlY2F1c2UKPiA+IGFuIG9wdGlvbmFsIGV4dGVuc2lvbiBs YXRlciBjYW1lIGFsb25nIGFuZCB0b29rIG92ZXIgc29tZXRoaW5nIHByZXZpb3VzbHkKPiA+IGFs bG93ZWQgZm9yIGluZGlzY3JpbWluYXRlIGN1c3RvbSB1c2UsIHRoYXQgc3VwcG9ydCBmb3IgdGhh dCBjdXN0b20KPiA+IGV4dGVuc2lvbiBpcyBub3QgcGVybWl0dGVkLgo+ID4KPiAKPiBBSUEgaXMg bm90IHNvbWUgb3B0aW9uYWwgZXh0ZW5zaW9uLiBJdCBkZWZpbmVzIHRoZSBSSVNDLVYgaW50ZXJy dXB0Cj4gYXJjaGl0ZWN0dXJlIGdvaW5nIGZvcndhcmQgYW5kIHdpbGwgYmUgdGhlIGRlZmF1bHQg aW1wbGVtZW50YXRpb24KPiBpbiB0aGUgZnV0dXJlLiBJTU8sIHRoaXMgd2lsbCBiZSBhIHNsaXBw ZXJ5IHNsb3BlIGlmIHdlIHN0YXJ0Cj4gc3VwcG9ydGluZyBjdXN0b20gaW1wbGVtZW50YXRpb25z IHRvIG92ZXJyaWRlIGludGVycnVwdCBJRCBkZWZpbml0aW9ucwo+IHZpYSBjdXN0b20gY3B1IGZl YXR1cmVzLiBULWhlYWQgaW1wbGVtZW50YXRpb24gd29ya3MgcGVyZmVjdGx5IGZpbmUgYXMKPiBh biBlcnJhdGEgYW5kIEkgZG9uJ3QgdW5kZXJzdGFuZCB3aHkKPiB0aGVyZSBpcyBhIHB1c2ggdG8g bWFrZSBpdCBhIGNwdSBmZWF0dXJlLiBXZSBzaG91bGQgdHJ5IHRvIGltcHJvdmUgdGhlCj4gZWNv c3lzdGVtIGZvciBmdXR1cmUgcGxhdGZvcm1zIHJhdGhlciB0aGFuIGJlbmRpbmcKPiBiYWNrd2Fy ZHMgdG8gc3VwcG9ydCBvbGRlciBpbXBsZW1lbnRhdGlvbnMuCj4gCj4gSSB1bmRlcnN0YW5kIHRo ZSBwdXNoIHRvIGJyYW5kIHRoaXMgYXMgYSBjdXN0b20gZXh0ZW5zaW9uIGlmIGN1cnJlbnQKPiBl cnJhdGEvYWx0ZXJuYXRpdmUgY2FuJ3Qgc3VwcG9ydCBpdC4gQnV0IEkgZG9uJ3QgdGhpbmsgdGhh dCdzIHRoZSBjYXNlCj4gaGVyZSB0aG91Z2guIFBsZWFzZSBjb3JyZWN0IG1lIGlmIEkgYW0gd3Jv bmcuCj4gCj4gPiBJIG1heSB3ZWxsIGJlIG1pc3Npbmcgc29tZXRoaW5nIGhlcmUgdGhvdWdoLCB5 b3UgY2xlYXJseSBrbm93IHRoZXNlCj4gPiBzcGVjcyBiZXR0ZXIgdGhhbiBJIGRvLCBidXQgZnJv bSB3aGF0IEkgaGF2ZSByZWFkIEkgZGlzYWdyZWUuCj4gPgo+ID4gPiBQbGVhc2UgaW1wbGVtZW50 YXRpb24gQW5kZXMgUE1VIHN1cHBvcnQgYXMgYW4gZXJyYXRhIGFzIHdlbGwgc2ltaWxhciB0byBU LWhlYWQKPiA+Cj4gPiBJIGNlcnRhaW5seSBfZG8gbm90XyB3YW50IHRvIHNlZSB0aGluZ3MgbGlr ZSB0aGlzIGRldGVjdGVkIHZpYSBsb29rdXAKPiA+IHRhYmxlcyBvZiBtYXJjaGlkIGFuZCBjbyBp biB0aGUga2VybmVsIHVubGVzcyBpdCBpcyBhYnNvbHV0ZWx5IHJlcXVpcmVkLgo+ID4gV2UgaGF2 ZSBzdGFuZGFyZCBwcm9iaW5nIG1lY2hhbmlzbXMgZm9yIGZlYXR1cmUgZGV0ZWN0aW9uIChiZWNh dXNlIHRvIG1lCj4gPiB0aGlzIF9pc18gYSBmZWF0dXJlKSBhbmQgdGhleSBzaG91bGQgYmUgdXNl ZC4gQWRkaXRpb25hbGx5LCB3ZSBkZWZpbmUgd2hhdAo+ID4gZW50cmllcyBpbiB0aGUgRFQgcHJv cGVydGllcyBtZWFuLCBhbmQgaWYgaXQgaXMgY29udmVuaWVudCB0byBwdXQKPiA+ICJwc3VlZG8i IGV4dGVuc2lvbnMgaW50byB0aGUgRFQsIHRoZW4gd2Ugc2hvdWxkIGRvIHNvLiBHZXR0aW5nIGF3 YXkgZnJvbQo+ID4gYmVpbmcgdGllZCB0byB3aGF0IFJWSSBkZWNyZWVzIHdhcyBvbmUgb2YgdGhl IGdvYWxzIG9mIHRoZSBuZXcKPiA+IHByb3BlcnRpZXMgYWZ0ZXIgYWxsLCBzbyB0aGF0IHdlIGNv dWxkIHVzZSBhIHN0YW5kYXJkIG1lY2hhbmlzbSBvZiBEVAo+ID4gcHJvYmluZyBmb3IgdGhpbmdz IGxpa2UgdGhpcy4KPiA+Cj4gCj4gWWVzLiBUaGF0J3MgYSBwZXJmZWN0bHkgdmFsaWQgbWVjaGFu aXNtIGZvciBhY3R1YWwgY3VzdG9tL3ZlbmRvciBJU0EgZXh0ZW5zaW9ucy4KPiBJJ20gc3VyZSB3 ZSdsbCBoYXZlIG1hbnkgb2YgdGhvc2UsIHdoaWNoIHdpbGwgYmUgbGV2ZXJhZ2VkIHZpYSBwc2V1 ZG8KPiBleHRlbnNpb25zIGluIHRoZSBEVC4KPiBIb3dldmVyLCB0aGVzZSBzaG91bGRuJ3QgY28t ZXhpc3Qgd2l0aCBzdGFuZGFyZCBJU0EgZXh0ZW5zaW9ucyBpbiB0aGUKPiBuYW1lc3BhY2UgaW4g cmlzY3ZfaXNhX2V4dCBhbmQvb3IgaHdwcm9iZS4KPiBUaGUgdmVuZG9yLXNwZWNpZmljIGV4dGVu c2lvbnMgc2hvdWxkIGJlIGRlZmluZWQgdW5kZXIgYQo+IHZlbmRvci1zcGVjaWZpYyBuYW1lc3Bh Y2UuCgpJIHdpbGwgcmVtb3ZlIFQtSGVhZCBQTVUgY2hhbmdlcyBmcm9tIHRoaXMgc2VyaWVzLgpD b3VsZCB5b3UgcGxlYXNlIGVsYWJvcmF0ZSBhIGJpdCBtb3JlIG9uIGhvdyBzaG91bGQgSSBhZGQg YSB2ZW5kb3Itc3BlY2lmaWMKZXh0ZW5zaW9uPwoKVGhhbmtzLApQZXRlciBMaW4KCj4gVGhpcyB3 YXMgYW5vdGhlciBpc3N1ZSB3aXRoIHRoaXMgc2VyaWVzIGFzIHdlbGwuIEkgZGlkbid0IHJhaXNl IHRoaXMKPiB0b3BpYyBlYXJsaWVyIGJlY2F1c2UgSSBkb24ndCB0aGluayBvdmVycmlkaW5nIGlu dGVycnVwdAo+IGlkZW50aXRpZXMgcXVhbGlmaWVzIGZvciBhIGN1c3RvbSBJU0EgZXh0ZW5zaW9u Cj4gCj4gPiBUaGFua3MsCj4gPiBDb25vci4KPiA+Cj4gPiA+ID4gVC1IZWFkIGNvcmVzIG5lZWQg dG8gYXBwZW5kICJ4dGhlYWRwbXUiIHRvIHRoZSByaXNjdixpc2EtZXh0ZW5zaW9ucwo+ID4gPiA+ IGZvciBlYWNoIGNwdSBub2RlIGluIGRldmljZSB0cmVlLCBhbmQgZW5hYmxlIENPTkZJR19USEVB RF9DVVNUT01fUE1VCj4gPiA+ID4gZm9yIHByb3BlciBmdW5jdGlvbmluZyBhcyBvZiB0aGlzIGNv bW1pdC4KPiA+ID4gPgo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IFl1IENoaWVuIFBldGVyIExpbiA8 cGV0ZXJsaW5AYW5kZXN0ZWNoLmNvbT4KPiA+ID4gPiBSZXZpZXdlZC1ieTogR3VvIFJlbiA8Z3Vv cmVuQGtlcm5lbC5vcmc+Cj4gPiA+ID4gUmV2aWV3ZWQtYnk6IENvbm9yIERvb2xleSA8Y29ub3Iu ZG9vbGV5QG1pY3JvY2hpcC5jb20+Cj4gPiA+ID4gLS0tCj4gPiA+ID4gQ2hhbmdlcyB2MSAtPiB2 MjoKPiA+ID4gPiAgIC0gTmV3IHBhdGNoCj4gPiA+ID4gQ2hhbmdlcyB2MiAtPiB2MzoKPiA+ID4g PiAgIC0gUmVtb3ZlZCBte3ZlbmRvci9hcmNoL2ltcH1pZCBjaGVja3MgaW4gcG11X3NiaV9zZXR1 cF9pcnFzKCkKPiA+ID4gPiBDaGFuZ2VzIHYzIC0+IHY0Ogo+ID4gPiA+ICAgLSBObyBjaGFuZ2UK PiA+ID4gPiBDaGFuZ2VzIHY0IC0+IHY1Ogo+ID4gPiA+ICAgLSBJbmNsdWRlIEd1bydzIFJldmll d2VkLWJ5Cj4gPiA+ID4gICAtIExldCBUSEVBRF9DVVNUT01fUE1VIGRlcGVuZCBvbiBBUkNIX1RI RUFECj4gPiA+ID4gQ2hhbmdlcyB2NSAtPiB2NjoKPiA+ID4gPiAgIC0gSW5jbHVkZSBDb25vcidz IFJldmlld2VkLWJ5Cj4gPiA+ID4gQ2hhbmdlcyB2NiAtPiB2NzoKPiA+ID4gPiAgIC0gTm8gY2hh bmdlCj4gPiA+ID4gLS0tCj4gPiA+ID4gIGFyY2gvcmlzY3YvS2NvbmZpZy5lcnJhdGEgICAgICAg ICAgICB8IDEzIC0tLS0tLS0tLS0tLS0KPiA+ID4gPiAgYXJjaC9yaXNjdi9lcnJhdGEvdGhlYWQv ZXJyYXRhLmMgICAgIHwgMTkgLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiA+ICBhcmNoL3Jpc2N2 L2luY2x1ZGUvYXNtL2VycmF0YV9saXN0LmggfCAxNSArLS0tLS0tLS0tLS0tLS0KPiA+ID4gPiAg YXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9od2NhcC5oICAgICAgIHwgIDEgKwo+ID4gPiA+ICBhcmNo L3Jpc2N2L2tlcm5lbC9jcHVmZWF0dXJlLmMgICAgICAgfCAgMSArCj4gPiA+ID4gIGRyaXZlcnMv cGVyZi9LY29uZmlnICAgICAgICAgICAgICAgICB8IDEzICsrKysrKysrKysrKysKPiA+ID4gPiAg ZHJpdmVycy9wZXJmL3Jpc2N2X3BtdV9zYmkuYyAgICAgICAgIHwgMTkgKysrKysrKysrKysrKyst LS0tLQo+ID4gPiA+ICA3IGZpbGVzIGNoYW5nZWQsIDMwIGluc2VydGlvbnMoKyksIDUxIGRlbGV0 aW9ucygtKQo+ID4gPiA+Cj4gPiA+ID4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvS2NvbmZpZy5l cnJhdGEgYi9hcmNoL3Jpc2N2L0tjb25maWcuZXJyYXRhCj4gPiA+ID4gaW5kZXggZTJjNzMxY2Zl ZDhjLi4wZDE5ZjQ3ZDEwMTggMTAwNjQ0Cj4gPiA+ID4gLS0tIGEvYXJjaC9yaXNjdi9LY29uZmln LmVycmF0YQo+ID4gPiA+ICsrKyBiL2FyY2gvcmlzY3YvS2NvbmZpZy5lcnJhdGEKPiA+ID4gPiBA QCAtODYsMTcgKzg2LDQgQEAgY29uZmlnIEVSUkFUQV9USEVBRF9DTU8KPiA+ID4gPgo+ID4gPiA+ ICAgICAgICAgICBJZiB5b3UgZG9uJ3Qga25vdyB3aGF0IHRvIGRvIGhlcmUsIHNheSAiWSIuCj4g PiA+ID4KPiA+ID4gPiAtY29uZmlnIEVSUkFUQV9USEVBRF9QTVUKPiA+ID4gPiAtICAgICAgIGJv b2wgIkFwcGx5IFQtSGVhZCBQTVUgZXJyYXRhIgo+ID4gPiA+IC0gICAgICAgZGVwZW5kcyBvbiBF UlJBVEFfVEhFQUQgJiYgUklTQ1ZfUE1VX1NCSQo+ID4gPiA+IC0gICAgICAgZGVmYXVsdCB5Cj4g PiA+ID4gLSAgICAgICBoZWxwCj4gPiA+ID4gLSAgICAgICAgIFRoZSBULUhlYWQgQzl4eCBjb3Jl cyBpbXBsZW1lbnQgYSBQTVUgb3ZlcmZsb3cgZXh0ZW5zaW9uIHZlcnkKPiA+ID4gPiAtICAgICAg ICAgc2ltaWxhciB0byB0aGUgY29yZSBTU0NPRlBNRiBleHRlbnNpb24uCj4gPiA+ID4gLQo+ID4g PiA+IC0gICAgICAgICBUaGlzIHdpbGwgYXBwbHkgdGhlIG92ZXJmbG93IGVycmF0YSB0byBoYW5k bGUgdGhlIG5vbi1zdGFuZGFyZAo+ID4gPiA+IC0gICAgICAgICBiZWhhdmlvdXIgdmlhIHRoZSBy ZWd1bGFyIFNCSSBQTVUgZHJpdmVyIGFuZCBpbnRlcmZhY2UuCj4gPiA+ID4gLQo+ID4gPiA+IC0g ICAgICAgICBJZiB5b3UgZG9uJ3Qga25vdyB3aGF0IHRvIGRvIGhlcmUsIHNheSAiWSIuCj4gPiA+ ID4gLQo+ID4gPiA+ICBlbmRtZW51ICMgIkNQVSBlcnJhdGEgc2VsZWN0aW9uIgo+ID4gPiA+IGRp ZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2VycmF0YS90aGVhZC9lcnJhdGEuYyBiL2FyY2gvcmlzY3Yv ZXJyYXRhL3RoZWFkL2VycmF0YS5jCj4gPiA+ID4gaW5kZXggMDU1NGVkNGJmMDg3Li41ZGU1Zjcy MDkxMzIgMTAwNjQ0Cj4gPiA+ID4gLS0tIGEvYXJjaC9yaXNjdi9lcnJhdGEvdGhlYWQvZXJyYXRh LmMKPiA+ID4gPiArKysgYi9hcmNoL3Jpc2N2L2VycmF0YS90aGVhZC9lcnJhdGEuYwo+ID4gPiA+ IEBAIC01MywyMiArNTMsNiBAQCBzdGF0aWMgYm9vbCBlcnJhdGFfcHJvYmVfY21vKHVuc2lnbmVk IGludCBzdGFnZSwKPiA+ID4gPiAgICAgICAgIHJldHVybiB0cnVlOwo+ID4gPiA+ICB9Cj4gPiA+ ID4KPiA+ID4gPiAtc3RhdGljIGJvb2wgZXJyYXRhX3Byb2JlX3BtdSh1bnNpZ25lZCBpbnQgc3Rh Z2UsCj4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGFy Y2hfaWQsIHVuc2lnbmVkIGxvbmcgaW1waWQpCj4gPiA+ID4gLXsKPiA+ID4gPiAtICAgICAgIGlm ICghSVNfRU5BQkxFRChDT05GSUdfRVJSQVRBX1RIRUFEX1BNVSkpCj4gPiA+ID4gLSAgICAgICAg ICAgICAgIHJldHVybiBmYWxzZTsKPiA+ID4gPiAtCj4gPiA+ID4gLSAgICAgICAvKiB0YXJnZXQt Yzl4eCBjb3JlcyByZXBvcnQgYXJjaF9pZCBhbmQgaW1waWQgYXMgMCAqLwo+ID4gPiA+IC0gICAg ICAgaWYgKGFyY2hfaWQgIT0gMCB8fCBpbXBpZCAhPSAwKQo+ID4gPiA+IC0gICAgICAgICAgICAg ICByZXR1cm4gZmFsc2U7Cj4gPiA+ID4gLQo+ID4gPiA+IC0gICAgICAgaWYgKHN0YWdlID09IFJJ U0NWX0FMVEVSTkFUSVZFU19FQVJMWV9CT09UKQo+ID4gPiA+IC0gICAgICAgICAgICAgICByZXR1 cm4gZmFsc2U7Cj4gPiA+ID4gLQo+ID4gPiA+IC0gICAgICAgcmV0dXJuIHRydWU7Cj4gPiA+ID4g LX0KPiA+ID4gPiAtCj4gPiA+ID4gIHN0YXRpYyB1MzIgdGhlYWRfZXJyYXRhX3Byb2JlKHVuc2ln bmVkIGludCBzdGFnZSwKPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp Z25lZCBsb25nIGFyY2hpZCwgdW5zaWduZWQgbG9uZyBpbXBpZCkKPiA+ID4gPiAgewo+ID4gPiA+ IEBAIC04MCw5ICs2NCw2IEBAIHN0YXRpYyB1MzIgdGhlYWRfZXJyYXRhX3Byb2JlKHVuc2lnbmVk IGludCBzdGFnZSwKPiA+ID4gPiAgICAgICAgIGlmIChlcnJhdGFfcHJvYmVfY21vKHN0YWdlLCBh cmNoaWQsIGltcGlkKSkKPiA+ID4gPiAgICAgICAgICAgICAgICAgY3B1X3JlcV9lcnJhdGEgfD0g QklUKEVSUkFUQV9USEVBRF9DTU8pOwo+ID4gPiA+Cj4gPiA+ID4gLSAgICAgICBpZiAoZXJyYXRh X3Byb2JlX3BtdShzdGFnZSwgYXJjaGlkLCBpbXBpZCkpCj4gPiA+ID4gLSAgICAgICAgICAgICAg IGNwdV9yZXFfZXJyYXRhIHw9IEJJVChFUlJBVEFfVEhFQURfUE1VKTsKPiA+ID4gPiAtCj4gPiA+ ID4gICAgICAgICByZXR1cm4gY3B1X3JlcV9lcnJhdGE7Cj4gPiA+ID4gIH0KPiA+ID4gPgo+ID4g PiA+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2VycmF0YV9saXN0LmggYi9h cmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2VycmF0YV9saXN0LmgKPiA+ID4gPiBpbmRleCA0ZWQyMWE2 MjE1OGMuLjliY2NjMmJhMGViNSAxMDA2NDQKPiA+ID4gPiAtLS0gYS9hcmNoL3Jpc2N2L2luY2x1 ZGUvYXNtL2VycmF0YV9saXN0LmgKPiA+ID4gPiArKysgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNt L2VycmF0YV9saXN0LmgKPiA+ID4gPiBAQCAtMjUsOCArMjUsNyBAQAo+ID4gPiA+ICAjaWZkZWYg Q09ORklHX0VSUkFUQV9USEVBRAo+ID4gPiA+ICAjZGVmaW5lICAgICAgICBFUlJBVEFfVEhFQURf UEJNVCAwCj4gPiA+ID4gICNkZWZpbmUgICAgICAgIEVSUkFUQV9USEVBRF9DTU8gMQo+ID4gPiA+ IC0jZGVmaW5lICAgICAgICBFUlJBVEFfVEhFQURfUE1VIDIKPiA+ID4gPiAtI2RlZmluZSAgICAg ICAgRVJSQVRBX1RIRUFEX05VTUJFUiAzCj4gPiA+ID4gKyNkZWZpbmUgICAgICAgIEVSUkFUQV9U SEVBRF9OVU1CRVIgMgo+ID4gPiA+ICAjZW5kaWYKPiA+ID4gPgo+ID4gPiA+ICAjaWZkZWYgX19B U1NFTUJMWV9fCj4gPiA+ID4gQEAgLTE0NywxOCArMTQ2LDYgQEAgYXNtIHZvbGF0aWxlKEFMVEVS TkFUSVZFXzIoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAo+ID4gPiA+ICAgICAgICAgICAgICJyIigodW5zaWduZWQgbG9uZykoX3N0YXJ0KSArIChfc2l6 ZSkpICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ID4gPiAgICAgICAgIDogImEwIikKPiA+ID4g Pgo+ID4gPiA+IC0jZGVmaW5lIFRIRUFEX0M5WFhfUlZfSVJRX1BNVSAgICAgICAgICAgICAgICAg IDE3Cj4gPiA+ID4gLSNkZWZpbmUgVEhFQURfQzlYWF9DU1JfU0NPVU5URVJPRiAgICAgICAgICAg ICAgMHg1YzUKPiA+ID4gPiAtCj4gPiA+ID4gLSNkZWZpbmUgQUxUX1NCSV9QTVVfT1ZFUkZMT1co X19vdmwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+IC1hc20g dm9sYXRpbGUoQUxURVJOQVRJVkUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKPiA+ID4gPiAtICAgICAgICJjc3JyICUwLCAiIF9fc3RyaW5naWZ5KENTUl9T U0NPVU5UT1ZGKSwgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiA+ID4gLSAgICAgICAiY3Ny ciAlMCwgIiBfX3N0cmluZ2lmeShUSEVBRF9DOVhYX0NTUl9TQ09VTlRFUk9GKSwgICAgICAgICAg ICAgXAo+ID4gPiA+IC0gICAgICAgICAgICAgICBUSEVBRF9WRU5ET1JfSUQsIEVSUkFUQV9USEVB RF9QTVUsICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ID4gPiAtICAgICAgICAgICAgICAgQ09O RklHX0VSUkFUQV9USEVBRF9QTVUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4g PiA+ID4gLSAgICAgICA6ICI9ciIgKF9fb3ZsKSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+IC0gICAgICAgOiAibWVtb3J5IikKPiA+ID4g PiAtCj4gPiA+ID4gICNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8KPiA+ID4gPgo+ID4gPiA+ICAj ZW5kaWYKPiA+ID4gPiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9od2NhcC5o IGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9od2NhcC5oCj4gPiA+ID4gaW5kZXggNTM0MGY4MTg3 NDZiLi40ODBmOWRhN2ZiYTcgMTAwNjQ0Cj4gPiA+ID4gLS0tIGEvYXJjaC9yaXNjdi9pbmNsdWRl L2FzbS9od2NhcC5oCj4gPiA+ID4gKysrIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9od2NhcC5o Cj4gPiA+ID4gQEAgLTgwLDYgKzgwLDcgQEAKPiA+ID4gPiAgI2RlZmluZSBSSVNDVl9JU0FfRVhU X1pGQSAgICAgICAgICAgICAgNzEKPiA+ID4gPiAgI2RlZmluZSBSSVNDVl9JU0FfRVhUX1pUU08g ICAgICAgICAgICAgNzIKPiA+ID4gPiAgI2RlZmluZSBSSVNDVl9JU0FfRVhUX1pBQ0FTICAgICAg ICAgICAgNzMKPiA+ID4gPiArI2RlZmluZSBSSVNDVl9JU0FfRVhUX1hUSEVBRFBNVSAgICAgICAg ICAgICAgICA3NAo+ID4gPiA+Cj4gPiA+ID4gICNkZWZpbmUgUklTQ1ZfSVNBX0VYVF9NQVggICAg ICAgICAgICAgIDEyOAo+ID4gPiA+ICAjZGVmaW5lIFJJU0NWX0lTQV9FWFRfSU5WQUxJRCAgICAg ICAgICBVMzJfTUFYCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva2VybmVsL2NwdWZl YXR1cmUuYyBiL2FyY2gvcmlzY3Yva2VybmVsL2NwdWZlYXR1cmUuYwo+ID4gPiA+IGluZGV4IGUz MjU5MWU5ZGE5MC4uNGFkZWQ1YmY4ZmMzIDEwMDY0NAo+ID4gPiA+IC0tLSBhL2FyY2gvcmlzY3Yv a2VybmVsL2NwdWZlYXR1cmUuYwo+ID4gPiA+ICsrKyBiL2FyY2gvcmlzY3Yva2VybmVsL2NwdWZl YXR1cmUuYwo+ID4gPiA+IEBAIC0zMDMsNiArMzAzLDcgQEAgY29uc3Qgc3RydWN0IHJpc2N2X2lz YV9leHRfZGF0YSByaXNjdl9pc2FfZXh0W10gPSB7Cj4gPiA+ID4gICAgICAgICBfX1JJU0NWX0lT QV9FWFRfREFUQShzdmludmFsLCBSSVNDVl9JU0FfRVhUX1NWSU5WQUwpLAo+ID4gPiA+ICAgICAg ICAgX19SSVNDVl9JU0FfRVhUX0RBVEEoc3ZuYXBvdCwgUklTQ1ZfSVNBX0VYVF9TVk5BUE9UKSwK PiA+ID4gPiAgICAgICAgIF9fUklTQ1ZfSVNBX0VYVF9EQVRBKHN2cGJtdCwgUklTQ1ZfSVNBX0VY VF9TVlBCTVQpLAo+ID4gPiA+ICsgICAgICAgX19SSVNDVl9JU0FfRVhUX0RBVEEoeHRoZWFkcG11 LCBSSVNDVl9JU0FfRVhUX1hUSEVBRFBNVSksCj4gPiA+ID4gIH07Cj4gPiA+ID4KPiA+ID4gPiAg Y29uc3Qgc2l6ZV90IHJpc2N2X2lzYV9leHRfY291bnQgPSBBUlJBWV9TSVpFKHJpc2N2X2lzYV9l eHQpOwo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BlcmYvS2NvbmZpZyBiL2RyaXZlcnMv cGVyZi9LY29uZmlnCj4gPiA+ID4gaW5kZXggMjczZDY3ZWNmNmQyLi42Y2VmMTVlYzdjMjUgMTAw NjQ0Cj4gPiA+ID4gLS0tIGEvZHJpdmVycy9wZXJmL0tjb25maWcKPiA+ID4gPiArKysgYi9kcml2 ZXJzL3BlcmYvS2NvbmZpZwo+ID4gPiA+IEBAIC04Niw2ICs4NiwxOSBAQCBjb25maWcgUklTQ1Zf UE1VX1NCSQo+ID4gPiA+ICAgICAgICAgICBmdWxsIHBlcmYgZmVhdHVyZSBzdXBwb3J0IGkuZS4g Y291bnRlciBvdmVyZmxvdywgcHJpdmlsZWdlIG1vZGUKPiA+ID4gPiAgICAgICAgICAgZmlsdGVy aW5nLCBjb3VudGVyIGNvbmZpZ3VyYXRpb24uCj4gPiA+ID4KPiA+ID4gPiArY29uZmlnIFRIRUFE X0NVU1RPTV9QTVUKPiA+ID4gPiArICAgICAgIGJvb2wgIlQtSGVhZCBjdXN0b20gUE1VIHN1cHBv cnQiCj4gPiA+ID4gKyAgICAgICBkZXBlbmRzIG9uIEFSQ0hfVEhFQUQgJiYgUklTQ1ZfQUxURVJO QVRJVkUgJiYgUklTQ1ZfUE1VX1NCSQo+ID4gPiA+ICsgICAgICAgZGVmYXVsdCB5Cj4gPiA+ID4g KyAgICAgICBoZWxwCj4gPiA+ID4gKyAgICAgICAgIFRoZSBULUhlYWQgQzl4eCBjb3JlcyBpbXBs ZW1lbnQgYSBQTVUgb3ZlcmZsb3cgZXh0ZW5zaW9uIHZlcnkKPiA+ID4gPiArICAgICAgICAgc2lt aWxhciB0byB0aGUgY29yZSBTU0NPRlBNRiBleHRlbnNpb24uCj4gPiA+ID4gKwo+ID4gPiA+ICsg ICAgICAgICBUaGlzIHdpbGwgcGF0Y2ggdGhlIG92ZXJmbG93IENTUiBhbmQgaGFuZGxlIHRoZSBu b24tc3RhbmRhcmQKPiA+ID4gPiArICAgICAgICAgYmVoYXZpb3VyIHZpYSB0aGUgcmVndWxhciBT QkkgUE1VIGRyaXZlciBhbmQgaW50ZXJmYWNlLgo+ID4gPiA+ICsKPiA+ID4gPiArICAgICAgICAg SWYgeW91IGRvbid0IGtub3cgd2hhdCB0byBkbyBoZXJlLCBzYXkgIlkiLgo+ID4gPiA+ICsKPiA+ ID4gPiAgY29uZmlnIEFSTV9QTVVfQUNQSQo+ID4gPiA+ICAgICAgICAgZGVwZW5kcyBvbiBBUk1f UE1VICYmIEFDUEkKPiA+ID4gPiAgICAgICAgIGRlZl9ib29sIHkKPiA+ID4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9wZXJmL3Jpc2N2X3BtdV9zYmkuYyBiL2RyaXZlcnMvcGVyZi9yaXNjdl9wbXVf c2JpLmMKPiA+ID4gPiBpbmRleCAyZWRiYzM3YWJhZGYuLjMxY2E3OTg0NjM5OSAxMDA2NDQKPiA+ ID4gPiAtLS0gYS9kcml2ZXJzL3BlcmYvcmlzY3ZfcG11X3NiaS5jCj4gPiA+ID4gKysrIGIvZHJp dmVycy9wZXJmL3Jpc2N2X3BtdV9zYmkuYwo+ID4gPiA+IEBAIC0yMCwxMCArMjAsMjEgQEAKPiA+ ID4gPiAgI2luY2x1ZGUgPGxpbnV4L2NwdV9wbS5oPgo+ID4gPiA+ICAjaW5jbHVkZSA8bGludXgv c2NoZWQvY2xvY2suaD4KPiA+ID4gPgo+ID4gPiA+IC0jaW5jbHVkZSA8YXNtL2VycmF0YV9saXN0 Lmg+Cj4gPiA+ID4gICNpbmNsdWRlIDxhc20vc2JpLmg+Cj4gPiA+ID4gICNpbmNsdWRlIDxhc20v Y3B1ZmVhdHVyZS5oPgo+ID4gPiA+Cj4gPiA+ID4gKyNkZWZpbmUgVEhFQURfQzlYWF9SVl9JUlFf UE1VICAgICAgICAgIDE3Cj4gPiA+ID4gKyNkZWZpbmUgVEhFQURfQzlYWF9DU1JfU0NPVU5URVJP RiAgICAgIDB4NWM1Cj4gPiA+ID4gKwo+ID4gPiA+ICsjZGVmaW5lIEFMVF9TQklfUE1VX09WRVJG TE9XKF9fb3ZsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ID4gPiAr YXNtIHZvbGF0aWxlKEFMVEVSTkFUSVZFKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCj4gPiA+ID4gKyAgICAgICAiY3NyciAlMCwgIiBfX3N0cmluZ2lmeShD U1JfU1NDT1VOVE9WRiksICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+ICsgICAgICAg ImNzcnIgJTAsICIgX19zdHJpbmdpZnkoVEhFQURfQzlYWF9DU1JfU0NPVU5URVJPRiksICAgICAg ICAgICAgIFwKPiA+ID4gPiArICAgICAgICAgICAgICAgMCwgUklTQ1ZfSVNBX0VYVF9YVEhFQURQ TVUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiA+ID4gKyAgICAgICAgICAgICAg IENPTkZJR19USEVBRF9DVVNUT01fUE1VKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAo+ID4gPiA+ICsgICAgICAgOiAiPXIiIChfX292bCkgOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ID4gPiArICAgICAgIDogIm1lbW9yeSIpCj4g PiA+ID4gKwo+ID4gPiA+ICAjZGVmaW5lIFNZU0NUTF9OT19VU0VSX0FDQ0VTUyAgMAo+ID4gPiA+ ICAjZGVmaW5lIFNZU0NUTF9VU0VSX0FDQ0VTUyAgICAgMQo+ID4gPiA+ICAjZGVmaW5lIFNZU0NU TF9MRUdBQ1kgICAgICAgICAgMgo+ID4gPiA+IEBAIC04MDgsMTAgKzgxOSw4IEBAIHN0YXRpYyBp bnQgcG11X3NiaV9zZXR1cF9pcnFzKHN0cnVjdCByaXNjdl9wbXUgKnBtdSwgc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRlCj4gPiA+ID4gICAgICAgICBpZiAocmlzY3ZfaXNhX2V4dGVuc2lvbl9h dmFpbGFibGUoTlVMTCwgU1NDT0ZQTUYpKSB7Cj4gPiA+ID4gICAgICAgICAgICAgICAgIHJpc2N2 X3BtdV9pcnFfbnVtID0gUlZfSVJRX1BNVTsKPiA+ID4gPiAgICAgICAgICAgICAgICAgcmlzY3Zf cG11X3VzZV9pcnEgPSB0cnVlOwo+ID4gPiA+IC0gICAgICAgfSBlbHNlIGlmIChJU19FTkFCTEVE KENPTkZJR19FUlJBVEFfVEhFQURfUE1VKSAmJgo+ID4gPiA+IC0gICAgICAgICAgICAgICAgICBy aXNjdl9jYWNoZWRfbXZlbmRvcmlkKDApID09IFRIRUFEX1ZFTkRPUl9JRCAmJgo+ID4gPiA+IC0g ICAgICAgICAgICAgICAgICByaXNjdl9jYWNoZWRfbWFyY2hpZCgwKSA9PSAwICYmCj4gPiA+ID4g LSAgICAgICAgICAgICAgICAgIHJpc2N2X2NhY2hlZF9taW1waWQoMCkgPT0gMCkgewo+ID4gPiA+ ICsgICAgICAgfSBlbHNlIGlmIChyaXNjdl9pc2FfZXh0ZW5zaW9uX2F2YWlsYWJsZShOVUxMLCBY VEhFQURQTVUpICYmCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgIElTX0VOQUJMRUQoQ09ORklH X1RIRUFEX0NVU1RPTV9QTVUpKSB7Cj4gPiA+ID4gICAgICAgICAgICAgICAgIHJpc2N2X3BtdV9p cnFfbnVtID0gVEhFQURfQzlYWF9SVl9JUlFfUE1VOwo+ID4gPiA+ICAgICAgICAgICAgICAgICBy aXNjdl9wbXVfdXNlX2lycSA9IHRydWU7Cj4gPiA+ID4gICAgICAgICB9Cj4gPiA+ID4gLS0KPiA+ ID4gPiAyLjM0LjEKPiA+ID4gPgo+ID4gPgo+ID4gPgo+ID4gPiAtLQo+ID4gPiBSZWdhcmRzLAo+ ID4gPiBBdGlzaAo+IAo+IAo+IAo+IC0tIAo+IFJlZ2FyZHMsCj4gQXRpc2gKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LXJpc2N2IG1haWxpbmcg bGlzdApsaW51eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRl YWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcmlzY3YK