From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0160B13AC9; Mon, 8 Jan 2024 09:45:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nAbQPibr" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CF012C433C8; Mon, 8 Jan 2024 09:45:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1704707146; bh=f6WCM1z5/+ZFnyvuqtaD9vtixmN+3lnBNV++wPJ45j0=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=nAbQPibrQv3/Hig92JSWM9+EyJ2L7BwdnVsvdnKK9UBDsZva0Y0T1cGvdXfUXuetn CFL60LWh68TC+opYZUkdUQ5BxRNhWG1wthBvONFdLirRanS8lqw3CtIUdGNgtURYsW jwqM+5byNHS9eS7RLYU8PQmRjT6ZLfO//UZHEtgnKiT3jLP0tMXaKPyPnOLF8x2Rrc SwQ8av8OlFUAf1d6stadBWO/sqzFiOUZA2AnaVFMSGan5h27z+G0XW4VlfiExAqN0k cGIcVzf8OBj7+Ft/4Ia2Y3xYmPkIguRXHhezDyPoZtGV3RhoUjSAmO/CYOEbcTGtaa hKqFoEA5R/Cww== Date: Mon, 8 Jan 2024 10:45:40 +0100 From: Lorenzo Pieralisi To: "Rafael J. Wysocki" Cc: "Russell King (Oracle)" , Marc Zyngier , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-acpi@vger.kernel.org, acpica-devel@lists.linux.dev, Mark Rutland , Robin Murphy , Fang Xiang , Robert Moore Subject: Re: [PATCH v4 0/3] irqchip/gic-v3: Enable non-coherent GIC designs probing Message-ID: References: <20230905104721.52199-1-lpieralisi@kernel.org> <20231227110038.55453-1-lpieralisi@kernel.org> <86h6jt9vs7.wl-maz@kernel.org> Precedence: bulk X-Mailing-List: acpica-devel@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: On Thu, Jan 04, 2024 at 02:21:44PM +0100, Rafael J. Wysocki wrote: > On Thu, Jan 4, 2024 at 1:04 PM Russell King (Oracle) > wrote: > > > > On Thu, Jan 04, 2024 at 11:34:48AM +0000, Marc Zyngier wrote: > > > On Wed, 03 Jan 2024 13:43:16 +0000, > > > "Rafael J. Wysocki" wrote: > > > > > > > > On Wed, Dec 27, 2023 at 12:00 PM Lorenzo Pieralisi > > > > wrote: > > > > > > > > > > This series is v4 of previous series: > > > > > > > > > > v3: https://lore.kernel.org/all/20231006125929.48591-1-lpieralisi@kernel.org > > > > > v2: https://lore.kernel.org/all/20230906094139.16032-1-lpieralisi@kernel.org > > > > > v1: https://lore.kernel.org/all/20230905104721.52199-1-lpieralisi@kernel.org > > > > > > > > > > v3 -> v4: > > > > > - Dropped patches [1-3], already merged > > > > > - Added Linuxized ACPICA changes accepted upstream > > > > > - Rebased against v6.7-rc3 > > > > > > > > > > v2 -> v3: > > > > > - Added ACPICA temporary changes and ACPI changes to implement > > > > > ECR https://bugzilla.tianocore.org/show_bug.cgi?id=4557 > > > > > - ACPI changes are for testing purposes - subject to ECR code > > > > > first approval > > > > > > > > > > v1 -> v2: > > > > > - Updated DT bindings as per feedback > > > > > - Updated patch[2] to use GIC quirks infrastructure > > > > > > > > > > Original cover letter > > > > > --- > > > > > The GICv3 architecture specifications provide a means for the > > > > > system programmer to set the shareability and cacheability > > > > > attributes the GIC components (redistributors and ITSes) use > > > > > to drive memory transactions. > > > > > > > > > > Albeit the architecture give control over shareability/cacheability > > > > > memory transactions attributes (and barriers), it is allowed to > > > > > connect the GIC interconnect ports to non-coherent memory ports > > > > > on the interconnect, basically tying off shareability/cacheability > > > > > "wires" and de-facto making the redistributors and ITSes non-coherent > > > > > memory observers. > > > > > > > > > > This series aims at starting a discussion over a possible solution > > > > > to this problem, by adding to the GIC device tree bindings the > > > > > standard dma-noncoherent property. The GIC driver uses the property > > > > > to force the redistributors and ITSes shareability attributes to > > > > > non-shareable, which consequently forces the driver to use CMOs > > > > > on GIC memory tables. > > > > > > > > > > On ARM DT DMA is default non-coherent, so the GIC driver can't rely > > > > > on the generic DT dma-coherent/non-coherent property management layer > > > > > (of_dma_is_coherent()) which would default all GIC designs in the field > > > > > as non-coherent; it has to rely on ad-hoc dma-noncoherent property handling. > > > > > > > > > > When a consistent approach is agreed upon for DT an equivalent binding will > > > > > be put forward for ACPI based systems. > > > > > > > > > > Lorenzo Pieralisi (3): > > > > > ACPICA: MADT: Add GICC online capable bit handling > > > > > ACPICA: MADT: Add new MADT GICC/GICR/ITS non-coherent flags handling > > > > > irqchip/gic-v3: Enable non-coherent redistributors/ITSes ACPI probing > > > > > > > > > > drivers/acpi/processor_core.c | 21 +++++++++++++++++++++ > > > > > drivers/irqchip/irq-gic-common.h | 8 ++++++++ > > > > > drivers/irqchip/irq-gic-v3-its.c | 4 ++++ > > > > > drivers/irqchip/irq-gic-v3.c | 9 +++++++++ > > > > > include/acpi/actbl2.h | 12 ++++++++++-- > > > > > include/linux/acpi.h | 3 +++ > > > > > 6 files changed, 55 insertions(+), 2 deletions(-) > > > > > > > > > > -- > > > > > > > > I can apply the first 2 patches, but I would need an ACK for the 3rd one. > > > > > > > > Alternatively, feel free to add > > > > > > > > Acked-by: Rafael J. Wysocki > > > > > > > > to the first 2 patches and route them via ARM64. > > > > > > Thanks for that. I have some comments on the third patch, which I'd > > > like to see addressed beforehand. This is probably all 6.9 material > > > anyway (nobody is affected by this so far). > > > > From a purely selfish point of view, it would be useful to have the > > first patch merged merely to reduce the burden of patches for vcpu > > hotplug. > > OK, since there will be at least one more iteration of patch [3/3] > AFAICS, I'll queue up patches [1-2/3] for 6.8 (next week, though). Thank you Rafael. Lorenzo 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 DFC6CC47073 for ; Mon, 8 Jan 2024 09:46:21 +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:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc: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=SSEjl56/1MtlUht6i8Ycmj3HXR15aQZIs82nBK/6vCE=; b=wHFIELOCVKeJ40 +6VTvjcn6tViuMg9/e6G70sTzQLisu+X7fvn6PwXmS/jQZBKkfCXLSotnb674g6oqcGdqj5oKdr/+ SYtZx35hwPKLCNXysu9o9Brpcx672rXsgpBPTHPvrEIervNKZF1/Cyo2mzLJSrNJ20NQBRgs9jLJJ TmacEuBeCpK9wPVkZgGg0h19+AIm1bvGFRiyS/wbRnOviscsmbLkowomZn1zoh+gZlV4qQnWP9qEt XcYaEy+5WDQ5uSpAa8CgKi8/N+doqPrfZyZoY470wp7B3YKKP3uargOcgjNodfgwf1EkLsklvG6QR 67lxSkmLic6VLfr1WRFw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rMmCg-004Wo1-0H; Mon, 08 Jan 2024 09:45:54 +0000 Received: from sin.source.kernel.org ([145.40.73.55]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rMmCc-004Wly-2j for linux-arm-kernel@lists.infradead.org; Mon, 08 Jan 2024 09:45:52 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 4762DCE0FD0; Mon, 8 Jan 2024 09:45:47 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id CF012C433C8; Mon, 8 Jan 2024 09:45:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1704707146; bh=f6WCM1z5/+ZFnyvuqtaD9vtixmN+3lnBNV++wPJ45j0=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=nAbQPibrQv3/Hig92JSWM9+EyJ2L7BwdnVsvdnKK9UBDsZva0Y0T1cGvdXfUXuetn CFL60LWh68TC+opYZUkdUQ5BxRNhWG1wthBvONFdLirRanS8lqw3CtIUdGNgtURYsW jwqM+5byNHS9eS7RLYU8PQmRjT6ZLfO//UZHEtgnKiT3jLP0tMXaKPyPnOLF8x2Rrc SwQ8av8OlFUAf1d6stadBWO/sqzFiOUZA2AnaVFMSGan5h27z+G0XW4VlfiExAqN0k cGIcVzf8OBj7+Ft/4Ia2Y3xYmPkIguRXHhezDyPoZtGV3RhoUjSAmO/CYOEbcTGtaa hKqFoEA5R/Cww== Date: Mon, 8 Jan 2024 10:45:40 +0100 From: Lorenzo Pieralisi To: "Rafael J. Wysocki" Cc: "Russell King (Oracle)" , Marc Zyngier , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-acpi@vger.kernel.org, acpica-devel@lists.linux.dev, Mark Rutland , Robin Murphy , Fang Xiang , Robert Moore Subject: Re: [PATCH v4 0/3] irqchip/gic-v3: Enable non-coherent GIC designs probing Message-ID: References: <20230905104721.52199-1-lpieralisi@kernel.org> <20231227110038.55453-1-lpieralisi@kernel.org> <86h6jt9vs7.wl-maz@kernel.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240108_014551_222162_0848D7EC X-CRM114-Status: GOOD ( 36.39 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gVGh1LCBKYW4gMDQsIDIwMjQgYXQgMDI6MjE6NDRQTSArMDEwMCwgUmFmYWVsIEouIFd5c29j a2kgd3JvdGU6Cj4gT24gVGh1LCBKYW4gNCwgMjAyNCBhdCAxOjA04oCvUE0gUnVzc2VsbCBLaW5n IChPcmFjbGUpCj4gPGxpbnV4QGFybWxpbnV4Lm9yZy51az4gd3JvdGU6Cj4gPgo+ID4gT24gVGh1 LCBKYW4gMDQsIDIwMjQgYXQgMTE6MzQ6NDhBTSArMDAwMCwgTWFyYyBaeW5naWVyIHdyb3RlOgo+ ID4gPiBPbiBXZWQsIDAzIEphbiAyMDI0IDEzOjQzOjE2ICswMDAwLAo+ID4gPiAiUmFmYWVsIEou IFd5c29ja2kiIDxyYWZhZWxAa2VybmVsLm9yZz4gd3JvdGU6Cj4gPiA+ID4KPiA+ID4gPiBPbiBX ZWQsIERlYyAyNywgMjAyMyBhdCAxMjowMOKAr1BNIExvcmVuem8gUGllcmFsaXNpCj4gPiA+ID4g PGxwaWVyYWxpc2lAa2VybmVsLm9yZz4gd3JvdGU6Cj4gPiA+ID4gPgo+ID4gPiA+ID4gVGhpcyBz ZXJpZXMgaXMgdjQgb2YgcHJldmlvdXMgc2VyaWVzOgo+ID4gPiA+ID4KPiA+ID4gPiA+IHYzOiBo dHRwczovL2xvcmUua2VybmVsLm9yZy9hbGwvMjAyMzEwMDYxMjU5MjkuNDg1OTEtMS1scGllcmFs aXNpQGtlcm5lbC5vcmcKPiA+ID4gPiA+IHYyOiBodHRwczovL2xvcmUua2VybmVsLm9yZy9hbGwv MjAyMzA5MDYwOTQxMzkuMTYwMzItMS1scGllcmFsaXNpQGtlcm5lbC5vcmcKPiA+ID4gPiA+IHYx OiBodHRwczovL2xvcmUua2VybmVsLm9yZy9hbGwvMjAyMzA5MDUxMDQ3MjEuNTIxOTktMS1scGll cmFsaXNpQGtlcm5lbC5vcmcKPiA+ID4gPiA+Cj4gPiA+ID4gPiB2MyAtPiB2NDoKPiA+ID4gPiA+ ICAgICAgICAgLSBEcm9wcGVkIHBhdGNoZXMgWzEtM10sIGFscmVhZHkgbWVyZ2VkCj4gPiA+ID4g PiAgICAgICAgIC0gQWRkZWQgTGludXhpemVkIEFDUElDQSBjaGFuZ2VzIGFjY2VwdGVkIHVwc3Ry ZWFtCj4gPiA+ID4gPiAgICAgICAgIC0gUmViYXNlZCBhZ2FpbnN0IHY2LjctcmMzCj4gPiA+ID4g Pgo+ID4gPiA+ID4gdjIgLT4gdjM6Cj4gPiA+ID4gPiAgICAgICAgIC0gQWRkZWQgQUNQSUNBIHRl bXBvcmFyeSBjaGFuZ2VzIGFuZCBBQ1BJIGNoYW5nZXMgdG8gaW1wbGVtZW50Cj4gPiA+ID4gPiAg ICAgICAgICAgRUNSIGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/ aWQ9NDU1Nwo+ID4gPiA+ID4gICAgICAgICAtIEFDUEkgY2hhbmdlcyBhcmUgZm9yIHRlc3Rpbmcg cHVycG9zZXMgLSBzdWJqZWN0IHRvIEVDUiBjb2RlCj4gPiA+ID4gPiAgICAgICAgICAgZmlyc3Qg YXBwcm92YWwKPiA+ID4gPiA+Cj4gPiA+ID4gPiB2MSAtPiB2MjoKPiA+ID4gPiA+ICAgICAgICAg LSBVcGRhdGVkIERUIGJpbmRpbmdzIGFzIHBlciBmZWVkYmFjawo+ID4gPiA+ID4gICAgICAgICAt IFVwZGF0ZWQgcGF0Y2hbMl0gdG8gdXNlIEdJQyBxdWlya3MgaW5mcmFzdHJ1Y3R1cmUKPiA+ID4g PiA+Cj4gPiA+ID4gPiBPcmlnaW5hbCBjb3ZlciBsZXR0ZXIKPiA+ID4gPiA+IC0tLQo+ID4gPiA+ ID4gVGhlIEdJQ3YzIGFyY2hpdGVjdHVyZSBzcGVjaWZpY2F0aW9ucyBwcm92aWRlIGEgbWVhbnMg Zm9yIHRoZQo+ID4gPiA+ID4gc3lzdGVtIHByb2dyYW1tZXIgdG8gc2V0IHRoZSBzaGFyZWFiaWxp dHkgYW5kIGNhY2hlYWJpbGl0eQo+ID4gPiA+ID4gYXR0cmlidXRlcyB0aGUgR0lDIGNvbXBvbmVu dHMgKHJlZGlzdHJpYnV0b3JzIGFuZCBJVFNlcykgdXNlCj4gPiA+ID4gPiB0byBkcml2ZSBtZW1v cnkgdHJhbnNhY3Rpb25zLgo+ID4gPiA+ID4KPiA+ID4gPiA+IEFsYmVpdCB0aGUgYXJjaGl0ZWN0 dXJlIGdpdmUgY29udHJvbCBvdmVyIHNoYXJlYWJpbGl0eS9jYWNoZWFiaWxpdHkKPiA+ID4gPiA+ IG1lbW9yeSB0cmFuc2FjdGlvbnMgYXR0cmlidXRlcyAoYW5kIGJhcnJpZXJzKSwgaXQgaXMgYWxs b3dlZCB0bwo+ID4gPiA+ID4gY29ubmVjdCB0aGUgR0lDIGludGVyY29ubmVjdCBwb3J0cyB0byBu b24tY29oZXJlbnQgbWVtb3J5IHBvcnRzCj4gPiA+ID4gPiBvbiB0aGUgaW50ZXJjb25uZWN0LCBi YXNpY2FsbHkgdHlpbmcgb2ZmIHNoYXJlYWJpbGl0eS9jYWNoZWFiaWxpdHkKPiA+ID4gPiA+ICJ3 aXJlcyIgYW5kIGRlLWZhY3RvIG1ha2luZyB0aGUgcmVkaXN0cmlidXRvcnMgYW5kIElUU2VzIG5v bi1jb2hlcmVudAo+ID4gPiA+ID4gbWVtb3J5IG9ic2VydmVycy4KPiA+ID4gPiA+Cj4gPiA+ID4g PiBUaGlzIHNlcmllcyBhaW1zIGF0IHN0YXJ0aW5nIGEgZGlzY3Vzc2lvbiBvdmVyIGEgcG9zc2li bGUgc29sdXRpb24KPiA+ID4gPiA+IHRvIHRoaXMgcHJvYmxlbSwgYnkgYWRkaW5nIHRvIHRoZSBH SUMgZGV2aWNlIHRyZWUgYmluZGluZ3MgdGhlCj4gPiA+ID4gPiBzdGFuZGFyZCBkbWEtbm9uY29o ZXJlbnQgcHJvcGVydHkuIFRoZSBHSUMgZHJpdmVyIHVzZXMgdGhlIHByb3BlcnR5Cj4gPiA+ID4g PiB0byBmb3JjZSB0aGUgcmVkaXN0cmlidXRvcnMgYW5kIElUU2VzIHNoYXJlYWJpbGl0eSBhdHRy aWJ1dGVzIHRvCj4gPiA+ID4gPiBub24tc2hhcmVhYmxlLCB3aGljaCBjb25zZXF1ZW50bHkgZm9y Y2VzIHRoZSBkcml2ZXIgdG8gdXNlIENNT3MKPiA+ID4gPiA+IG9uIEdJQyBtZW1vcnkgdGFibGVz Lgo+ID4gPiA+ID4KPiA+ID4gPiA+IE9uIEFSTSBEVCBETUEgaXMgZGVmYXVsdCBub24tY29oZXJl bnQsIHNvIHRoZSBHSUMgZHJpdmVyIGNhbid0IHJlbHkKPiA+ID4gPiA+IG9uIHRoZSBnZW5lcmlj IERUIGRtYS1jb2hlcmVudC9ub24tY29oZXJlbnQgcHJvcGVydHkgbWFuYWdlbWVudCBsYXllcgo+ ID4gPiA+ID4gKG9mX2RtYV9pc19jb2hlcmVudCgpKSB3aGljaCB3b3VsZCBkZWZhdWx0IGFsbCBH SUMgZGVzaWducyBpbiB0aGUgZmllbGQKPiA+ID4gPiA+IGFzIG5vbi1jb2hlcmVudDsgaXQgaGFz IHRvIHJlbHkgb24gYWQtaG9jIGRtYS1ub25jb2hlcmVudCBwcm9wZXJ0eSBoYW5kbGluZy4KPiA+ ID4gPiA+Cj4gPiA+ID4gPiBXaGVuIGEgY29uc2lzdGVudCBhcHByb2FjaCBpcyBhZ3JlZWQgdXBv biBmb3IgRFQgYW4gZXF1aXZhbGVudCBiaW5kaW5nIHdpbGwKPiA+ID4gPiA+IGJlIHB1dCBmb3J3 YXJkIGZvciBBQ1BJIGJhc2VkIHN5c3RlbXMuCj4gPiA+ID4gPgo+ID4gPiA+ID4gTG9yZW56byBQ aWVyYWxpc2kgKDMpOgo+ID4gPiA+ID4gICBBQ1BJQ0E6IE1BRFQ6IEFkZCBHSUNDIG9ubGluZSBj YXBhYmxlIGJpdCBoYW5kbGluZwo+ID4gPiA+ID4gICBBQ1BJQ0E6IE1BRFQ6IEFkZCBuZXcgTUFE VCBHSUNDL0dJQ1IvSVRTIG5vbi1jb2hlcmVudCBmbGFncyBoYW5kbGluZwo+ID4gPiA+ID4gICBp cnFjaGlwL2dpYy12MzogRW5hYmxlIG5vbi1jb2hlcmVudCByZWRpc3RyaWJ1dG9ycy9JVFNlcyBB Q1BJIHByb2JpbmcKPiA+ID4gPiA+Cj4gPiA+ID4gPiAgZHJpdmVycy9hY3BpL3Byb2Nlc3Nvcl9j b3JlLmMgICAgfCAyMSArKysrKysrKysrKysrKysrKysrKysKPiA+ID4gPiA+ICBkcml2ZXJzL2ly cWNoaXAvaXJxLWdpYy1jb21tb24uaCB8ICA4ICsrKysrKysrCj4gPiA+ID4gPiAgZHJpdmVycy9p cnFjaGlwL2lycS1naWMtdjMtaXRzLmMgfCAgNCArKysrCj4gPiA+ID4gPiAgZHJpdmVycy9pcnFj aGlwL2lycS1naWMtdjMuYyAgICAgfCAgOSArKysrKysrKysKPiA+ID4gPiA+ICBpbmNsdWRlL2Fj cGkvYWN0YmwyLmggICAgICAgICAgICB8IDEyICsrKysrKysrKystLQo+ID4gPiA+ID4gIGluY2x1 ZGUvbGludXgvYWNwaS5oICAgICAgICAgICAgIHwgIDMgKysrCj4gPiA+ID4gPiAgNiBmaWxlcyBj aGFuZ2VkLCA1NSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+ID4gPiA+ID4KPiA+ID4g PiA+IC0tCj4gPiA+ID4KPiA+ID4gPiBJIGNhbiBhcHBseSB0aGUgZmlyc3QgMiBwYXRjaGVzLCBi dXQgSSB3b3VsZCBuZWVkIGFuIEFDSyBmb3IgdGhlIDNyZCBvbmUuCj4gPiA+ID4KPiA+ID4gPiBB bHRlcm5hdGl2ZWx5LCBmZWVsIGZyZWUgdG8gYWRkCj4gPiA+ID4KPiA+ID4gPiBBY2tlZC1ieTog UmFmYWVsIEouIFd5c29ja2kgPHJhZmFlbC5qLnd5c29ja2lAaW50ZWwuY29tPgo+ID4gPiA+Cj4g PiA+ID4gdG8gdGhlIGZpcnN0IDIgcGF0Y2hlcyBhbmQgcm91dGUgdGhlbSB2aWEgQVJNNjQuCj4g PiA+Cj4gPiA+IFRoYW5rcyBmb3IgdGhhdC4gSSBoYXZlIHNvbWUgY29tbWVudHMgb24gdGhlIHRo aXJkIHBhdGNoLCB3aGljaCBJJ2QKPiA+ID4gbGlrZSB0byBzZWUgYWRkcmVzc2VkIGJlZm9yZWhh bmQuIFRoaXMgaXMgcHJvYmFibHkgYWxsIDYuOSBtYXRlcmlhbAo+ID4gPiBhbnl3YXkgKG5vYm9k eSBpcyBhZmZlY3RlZCBieSB0aGlzIHNvIGZhcikuCj4gPgo+ID4gRnJvbSBhIHB1cmVseSBzZWxm aXNoIHBvaW50IG9mIHZpZXcsIGl0IHdvdWxkIGJlIHVzZWZ1bCB0byBoYXZlIHRoZQo+ID4gZmly c3QgcGF0Y2ggbWVyZ2VkIG1lcmVseSB0byByZWR1Y2UgdGhlIGJ1cmRlbiBvZiBwYXRjaGVzIGZv ciB2Y3B1Cj4gPiBob3RwbHVnLgo+IAo+IE9LLCBzaW5jZSB0aGVyZSB3aWxsIGJlIGF0IGxlYXN0 IG9uZSBtb3JlIGl0ZXJhdGlvbiBvZiBwYXRjaCBbMy8zXQo+IEFGQUlDUywgSSdsbCBxdWV1ZSB1 cCBwYXRjaGVzIFsxLTIvM10gZm9yIDYuOCAobmV4dCB3ZWVrLCB0aG91Z2gpLgoKVGhhbmsgeW91 IFJhZmFlbC4KCkxvcmVuem8KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxA bGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK