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 X-Spam-Level: X-Spam-Status: No, score=-11.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A62B5C4338F for ; Thu, 29 Jul 2021 11:01:17 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 789F260524 for ; Thu, 29 Jul 2021 11:01:17 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 789F260524 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=srXvaKHXWvrZtiidzBRyNtGeKvZuK0IDRmDKD63t6rM=; b=C7y8X5CD8L0shbIoUNpF2zOoWD qIgZKygGhOCQHp6FpeXfyMGWHk9FaRbBT/CMimgJX51nnA/l618e6KBztv1iryh72iFjj9WVDJQzL /NlnMkxIJGrmctulHy5CEnYluQa1PGEuwsA9h05VW8GQ8kfmM5QsohfZmdV13M8Su+LsWQH8GTGyX Fjs17ol8h5F4oFTpV7DS4PiludTYcmoiiFB9kqes+z5g9TTx+He9Q7SZcxpD2TEwxdzZg7o1S9fCC oDSe8v1reizuGs+3dgHjQCfmsrGUYYqDVrUuruhNTeUTpoZKpZUNDMUzpM0C3Js58nGUbk2ZMBKxP OXpazpzg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1m93ky-003vUd-43; Thu, 29 Jul 2021 10:59:16 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1m93kt-003vRg-4Y for linux-arm-kernel@lists.infradead.org; Thu, 29 Jul 2021 10:59:13 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 2D97D6D; Thu, 29 Jul 2021 03:59:09 -0700 (PDT) Received: from [10.57.36.146] (unknown [10.57.36.146]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 32E8D3F66F; Thu, 29 Jul 2021 03:59:07 -0700 (PDT) Subject: Re: [PATCH v2 00/24] iommu: Refactor DMA domain strictness To: "chenxiang (M)" , joro@8bytes.org, will@kernel.org Cc: Maxime Ripard , Jean-Philippe Brucker , Heiko Stuebner , Geert Uytterhoeven , linux-kernel@vger.kernel.org, Chunyan Zhang , dianders@chromium.org, iommu@lists.linux-foundation.org, linux-arm-kernel@lists.infradead.org, "linuxarm@huawei.com" References: <49c7ca2c-11a3-ff93-05bc-feb482a79980@hisilicon.com> From: Robin Murphy Message-ID: <942c3da1-fb79-967a-d50e-4cbf5331261c@arm.com> Date: Thu, 29 Jul 2021 11:59:01 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Thunderbird/78.12.0 MIME-Version: 1.0 In-Reply-To: <49c7ca2c-11a3-ff93-05bc-feb482a79980@hisilicon.com> Content-Language: en-GB X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210729_035911_333117_1294FA45 X-CRM114-Status: GOOD ( 34.23 ) 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gMjAyMS0wNy0yOSAwMzo1NSwgY2hlbnhpYW5nIChNKSB3cm90ZToKPiBIaSBSb2JpbiwKPiAK PiAKPiDlnKggMjAyMS83LzI4IDIzOjU4LCBSb2JpbiBNdXJwaHkg5YaZ6YGTOgo+PiBIaSBhbGws Cj4+Cj4+IEhlcmUncyB2MiB3aGVyZSB0aGluZ3Mgc3RhcnQgdG8gbG9vayBtb3JlIHJlYWxpc3Rp YywgaGVuY2UgdGhlIGV4cGFuZGVkCj4+IENDIGxpc3QuIFRoZSBwYXRjaGVzIGFyZSBub3cgYmFz ZWQgb24gdGhlIGN1cnJlbnQgaW9tbXUvY29yZSBicmFuY2ggdG8KPj4gdGFrZSBKb2huJ3MgaW9t bXVfc2V0X2RtYV9zdHJpY3QoKSBjbGVhbnVwIGludG8gYWNjb3VudC4KPj4KPj4gVGhlIHNlcmll cyByZW1pYWlucyBpbiB0d28gKG9yIHBvc3NpYmx5IDMpIGxvZ2ljYWwgcGFydHMgLSBmb3IgcGVv cGxlCj4+IENDJ2Qgb24gY29va2llIGNsZWFudXAgcGF0Y2hlcywgdGhlIGxhdGVyIHBhcnRzIHNo b3VsZCBub3QgYWZmZWN0IHlvdQo+PiBzaW5jZSB5b3VyIGRyaXZlcnMgZG9uJ3QgaW1wbGVtZW50 IG5vbi1zdHJpY3QgbW9kZSBhbnl3YXk7IHRoZSBjbGVhbnVwCj4+IGlzIGFsbCBwcmV0dHkgc3Ry YWlnaHRmb3J3YXJkLCBidXQgcGxlYXNlIGRvIHllbGwgYXQgbWUgaWYgSSd2ZSBtYW5hZ2VkCj4+ IHRvIGxldCBhIHNpbGx5IG1pc3Rha2Ugc2xpcCB0aHJvdWdoIGFuZCBicm9rZW4geW91ciBkcml2 ZXIuCj4+Cj4+IFRoaXMgdGltZSBJIGhhdmUgYWxzbyBidWlsZC10ZXN0ZWQgeDg2IGFzIHdlbGwg YXMgYXJtNjQgOikKPiAKPiBJIGhhdmUgdGVzdGVkIHRob3NlIHBhdGNoc2V0IG9uIEFSTTY0IHdp dGggU01NVVYzLCBhbmQgdGhlIHRlc3RjYXNlcyBhcmUgCj4gYXMgZm9sbG93czoKPiAtIEJvb3Qg d2l0aCBpb21tdS5zdHJpY3Q9MCwgcnVubmluZyBmaW8gYW5kIGl0IHdvcmtzIHdlbGw7Cj4gLSBC b290IHdpdGggaW9tbXUuc3RyaWN0PTEsIHJ1bm5pbmcgZmlvIGFuZCBpdCB3b3JrcyB3ZWxsOwo+ IC0gQ2hhbmdlIHN0cmljdCBtb2RlIHRvIGxhenkgbW9kZSB3aGVuIGJ1aWxkaW5nLCB0aGUgY2hh bmdlIHRha2VzIGVmZmVjdDsKPiAtIEJvb3Qgd2l0aG91dCBpb21tdS5zdHJpY3QoZGVmYXVsdCBz dHJpY3QgbW9kZSksIGNoYW5nZSB0aGUgc3lzZnMgCj4gaW50ZXJmYWNlIHR5cGUgZnJvbSBETUEg dG8gRE1BLUZRIGR5bmFtaWNhbGx5IGR1cmluZyBydW5uaW5nIGZpbywgYW5kIGl0IAo+IHdvcmtz IHdlbGw7Cj4gLSBCb290IHdpdGhvdXQgaW9tbXUuc3RyaWN0KGRlZmF1bHQgc3RyaWN0IG1vZGUp LCBjaGFuZ2UgdGhlIHN5c2ZzIAo+IGludGVyZmFjZSB0eXBlIGZyb20gRE1BLUZRIHRvIERNQSBk eW5hbWljYWxseSwgYW5kIGl0IGlzIG5vdCBhbGxvd2VkIGFuZCAKPiBwcmludCAiRGV2aWNlIG9y IHJlc291cmNlIGJ1c3kiCj4gKGkga25vdyBpdCBpcyBxdWFsaWZpZWQsIGFuZCB3ZSBjYW4gY2hh bmdlIG5vLXN0cmljdCBtb2RlIHRvIHN0cmljdCBieSAKPiB1bmJpbmQgdGhlIGRyaXZlciAtPiBj aGFuZ2UgdGhlIHN5c2ZzIGludGVyZmFjZSAodHlwZSktPmJpbmQgdGhlIGRyaXZlciAKPiAodGVz dGVkIHRoaXMgYW5kIGl0IHdvcmtzIHdlbGwpLAo+IGJ1dCBpIGhhdmUgYSBzbWFsbCBxdWVzdGlv bjogaXMgaXQgYWxzbyBwb3NzaWJsZSB0byBjaGFuZ2UgZnJvbSBETUEtRlEgCj4gdG8gRE1BIGR5 bmFtaWNhbGx5PyApCgpBcyBwYXRjaCAjMjIgbWVudGlvbnMsIEkgdGhpbmsgaXQncyBwb3NzaWJs ZSBpbiBwcmluY2lwbGUsIGJ1dCBpdCdzIApjZXJ0YWlubHkgdHJpY2tpZXIuIFdoZW4gZW5hYmxp bmcgYSBmbHVzaCBxdWV1ZSwgaXQgZG9lc24ndCBtYXR0ZXIgaWYgaXQgCnRha2VzIGEgd2hpbGUg Zm9yIG90aGVyIHRocmVhZHMgdG8gbm90aWNlIHRoYXQgY29va2llLT5mcV9kb21haW4gaXMgbm93 IApzZXQgYW5kIHN0b3AgZG9pbmcgc3luY2hyb25vdXMgaW52YWxpZGF0aW9ucyAoYW5kIGluIHRo ZSBTTU1VIGNhc2UgaXQgCnNlZW1zIGxpa2UgdGhlcmUgYXJlIHByb2JhYmx5IGVub3VnaCBkZXBl bmRlbmNpZXMgdG8gYWRkaXRpb25hbGx5IApwcmV2ZW50IHRoZSBpb19wZ3RhYmxlIHF1aXJrIGJl aW5nIG9ic2VydmFibGUgYmVmb3JlIHRoYXQpLiBIb3dldmVyIHdoZW4gCmRpc2FibGluZywgd2Un ZCBuZWVkIHRvIGJlIGFic29sdXRlbHkgc3VyZSB0aGF0IHRoZSBkcml2ZXIgKmhhcyogc3RhcnRl ZCAKaW52YWxpZGF0aW5nIHN0cmljdGx5IGJlZm9yZSB3ZSBzdG9wIHF1ZXVlaW5nIGZyZWVkIElP VkFzLCBwbHVzIHdlIG5lZWQgCnRvIGJlIGFic29sdXRlbHkgc3VyZSB0aGF0IHdlJ3ZlIHN0b3Bw ZWQgcXVldWVpbmcgZnJlZWQgSU9WQXMgYmVmb3JlIHdlIAphdHRlbXB0IHRvIHRlYXIgZG93biB0 aGUgZmx1c2ggcXVldWUgaXRzZWxmLiBJJ20gbm90IHN1cmUgb2ZmLWhhbmQgaG93IApmZWFzaWJs ZSBpdCB3b3VsZCBiZSB0byBwdXQgYWxsIHRoYXQgc3luY2hyb25pc2F0aW9uIGluIHRoZSByaWdo dCBwbGFjZXMgCndpdGhvdXQgaXQgYWxzbyBpbXBhY3Rpbmcgbm9ybWFsIG9wZXJhdGlvbi4KCkZ1 cnRoZXJtb3JlLCBhcyBhbHNvIG5vdGVkLCB0aGVyZSBkb2Vzbid0IHNlZW0gdG8gYmUgYSBnb29k IHJlYXNvbiBmb3IgCmV2ZXIgYWN0dWFsbHkgbmVlZGluZyB0byBkbyB0aGF0LiBJZiBhIGRldmlj ZSBpc24ndCB0cnVzdGVkLCBpdCBzaG91bGQgCmJlIGdpdmVuIGEgc3RyaWN0IGRvbWFpbiAqYmVm b3JlKiBhbnkgZHJpdmVyIGhhcyBhIGNoYW5jZSB0byBzdGFydCBkb2luZyAKYW55dGhpbmcsIG9y IHlvdXIgdHJ1c3QgbW9kZWwgaXMgYnJva2VuIGFuZCBwcmV0dHkgdXNlbGVzcy4gSSBjYW4gCmlt YWdpbmUgc29tZSBuaWNoZSBkZWJ1Z2dpbmcvYmVuY2htYXJraW5nIGNhc2VzIHdoZXJlIGl0IG1p Z2h0IGhlbHAgc2F2ZSAKYSBiaXQgb2YgZWZmb3J0LCBidXQgbm90aGluZyB3aXRoIGEgc3Ryb25n IGVub3VnaCBqdXN0aWZpY2F0aW9uIHRvIGJlIAp3b3J0aCBzdXBwb3J0aW5nIGluIG1haW5saW5l LgoKPiBBbnl3YXksIHBsZWFzZSBmZWVsIGZyZWUgdG8gYWRkIDoKPiBUZXN0ZWQtYnk6IFhpYW5n IENoZW4gPGNoZW54aWFuZzY2QGhpc2lsaWNvbi5jb20+CgpUaGF0J3MgZ3JlYXQsIHRoYW5rcyEK ClJvYmluLgoKPj4gQ2hhbmdlcyBpbiB2MjoKPj4KPj4gLSBBZGQgaW9tbXVfaXNfZG1hX2RvbWFp bigpIGhlbHBlciB0byBhYnN0cmFjdCBmbGFnIGNoZWNrIChhbmQgaGVscAo+PiDCoMKgIGF2b2lk IHNpbGx5IHR5cG9zIGxpa2UgdGhlIG9uZSBpbiB2MSkuCj4+IC0gVHdlYWsgYSBmZXcgY29tbWl0 IG1lc3NhZ2VzIGZvciBzcGVsbGluZyBhbmQgKGhvcGVmdWxseSkgY2xhcml0eS4KPj4gLSBNb3Zl IHRoZSBpb21tdV9jcmVhdGVfZGV2aWNlX2RpcmVjdF9tYXBwaW5ncygpIHVwZGF0ZSB0byBwYXRj aCAjMTQKPj4gwqDCoCB3aGVyZSBpdCBzaG91bGQgaGF2ZSBiZWVuLgo+PiAtIFJld3JpdGUgcGF0 Y2ggIzIwIGFzIGEgY29udmVyc2lvbiBvZiB0aGUgbm93LWV4aXN0aW5nIG9wdGlvbi4KPj4gLSBD bGVhbiB1cCB0aGUgb3BzLT5mbHVzaF9pb3RsYl9hbGwgY2hlY2sgd2hpY2ggaXMgYWxzbyBtYWRl IHJlZHVuZGFudAo+PiDCoMKgIGJ5IHRoZSBuZXcgZG9tYWluIHR5cGUKPj4gLSBBZGQgcGF0Y2gg IzI0LCB3aGljaCBpcyBhcmd1YWJseSB0YW5nZW50aWFsLCBidXQgaXQgd2FzIHNvbWV0aGluZyBJ Cj4+IMKgwqAgc3BvdHRlZCBkdXJpbmcgdGhlIHJlYmFzZSwgc28uLi4KPj4KPj4gT25jZSBhZ2Fp biwgdGhlIHdob2xlIGxvdCBpcyBhdmFpbGFibGUgb24gYSBicmFuY2ggaGVyZToKPj4KPj4gaHR0 cHM6Ly9naXRsYWIuYXJtLmNvbS9saW51eC1hcm0vbGludXgtcm0vLS90cmVlL2lvbW11L2ZxCj4+ Cj4+IFRoYW5rcywKPj4gUm9iaW4uCj4+Cj4+Cj4+IENDOiBNYXJlayBTenlwcm93c2tpIDxtLnN6 eXByb3dza2lAc2Ftc3VuZy5jb20+Cj4+IENDOiBZb3NoaWhpcm8gU2hpbW9kYSA8eW9zaGloaXJv LnNoaW1vZGEudWhAcmVuZXNhcy5jb20+Cj4+IENDOiBHZWVydCBVeXR0ZXJob2V2ZW4gPGdlZXJ0 K3JlbmVzYXNAZ2xpZGVyLmJlPgo+PiBDQzogWW9uZyBXdSA8eW9uZy53dUBtZWRpYXRlay5jb20+ Cj4+IENDOiBIZWlrbyBTdHVlYm5lciA8aGVpa29Ac250ZWNoLmRlPgo+PiBDQzogQ2h1bnlhbiBa aGFuZyA8Y2h1bnlhbi56aGFuZ0B1bmlzb2MuY29tPgo+PiBDQzogQ2h1bnlhbiBaaGFuZyA8Y2h1 bnlhbi56aGFuZ0B1bmlzb2MuY29tPgo+PiBDQzogTWF4aW1lIFJpcGFyZCA8bXJpcGFyZEBrZXJu ZWwub3JnPgo+PiBDQzogSmVhbi1QaGlsaXBwZSBCcnVja2VyIDxqZWFuLXBoaWxpcHBlQGxpbmFy by5vcmc+Cj4+Cj4+IFJvYmluIE11cnBoeSAoMjQpOgo+PiDCoMKgIGlvbW11OiBQdWxsIElPVkEg Y29va2llIG1hbmFnZW1lbnQgaW50byB0aGUgY29yZQo+PiDCoMKgIGlvbW11L2FtZDogRHJvcCBJ T1ZBIGNvb2tpZSBtYW5hZ2VtZW50Cj4+IMKgwqAgaW9tbXUvYXJtLXNtbXU6IERyb3AgSU9WQSBj b29raWUgbWFuYWdlbWVudAo+PiDCoMKgIGlvbW11L3Z0LWQ6IERyb3AgSU9WQSBjb29raWUgbWFu YWdlbWVudAo+PiDCoMKgIGlvbW11L2V4eW5vczogRHJvcCBJT1ZBIGNvb2tpZSBtYW5hZ2VtZW50 Cj4+IMKgwqAgaW9tbXUvaXBtbXUtdm1zYTogRHJvcCBJT1ZBIGNvb2tpZSBtYW5hZ2VtZW50Cj4+ IMKgwqAgaW9tbXUvbXRrOiBEcm9wIElPVkEgY29va2llIG1hbmFnZW1lbnQKPj4gwqDCoCBpb21t dS9yb2NrY2hpcDogRHJvcCBJT1ZBIGNvb2tpZSBtYW5hZ2VtZW50Cj4+IMKgwqAgaW9tbXUvc3By ZDogRHJvcCBJT1ZBIGNvb2tpZSBtYW5hZ2VtZW50Cj4+IMKgwqAgaW9tbXUvc3VuNTBpOiBEcm9w IElPVkEgY29va2llIG1hbmFnZW1lbnQKPj4gwqDCoCBpb21tdS92aXJ0aW86IERyb3AgSU9WQSBj b29raWUgbWFuYWdlbWVudAo+PiDCoMKgIGlvbW11L2RtYTogVW5leHBvcnQgSU9WQSBjb29raWUg bWFuYWdlbWVudAo+PiDCoMKgIGlvbW11L2RtYTogUmVtb3ZlIHJlZHVuZGFudCAiIWRldiIgY2hl Y2tzCj4+IMKgwqAgaW9tbXU6IEludHJvZHVjZSBleHBsaWNpdCB0eXBlIGZvciBub24tc3RyaWN0 IERNQSBkb21haW5zCj4+IMKgwqAgaW9tbXUvYW1kOiBQcmVwYXJlIGZvciBtdWx0aXBsZSBETUEg ZG9tYWluIHR5cGVzCj4+IMKgwqAgaW9tbXUvYXJtLXNtbXU6IFByZXBhcmUgZm9yIG11bHRpcGxl IERNQSBkb21haW4gdHlwZXMKPj4gwqDCoCBpb21tdS92dC1kOiBQcmVwYXJlIGZvciBtdWx0aXBs ZSBETUEgZG9tYWluIHR5cGVzCj4+IMKgwqAgaW9tbXU6IEV4cHJlc3MgRE1BIHN0cmljdG5lc3Mg dmlhIHRoZSBkb21haW4gdHlwZQo+PiDCoMKgIGlvbW11OiBFeHBvc2UgRE1BIGRvbWFpbiBzdHJp Y3RuZXNzIHZpYSBzeXNmcwo+PiDCoMKgIGlvbW11OiBNZXJnZSBzdHJpY3RuZXNzIGFuZCBkb21h aW4gdHlwZSBjb25maWdzCj4+IMKgwqAgaW9tbXUvZG1hOiBGYWN0b3Igb3V0IGZsdXNoIHF1ZXVl IGluaXQKPj4gwqDCoCBpb21tdTogQWxsb3cgZW5hYmxpbmcgbm9uLXN0cmljdCBtb2RlIGR5bmFt aWNhbGx5Cj4+IMKgwqAgaW9tbXUvYXJtLXNtbXU6IEFsbG93IG5vbi1zdHJpY3QgaW4gcGd0YWJs ZV9xdWlya3MgaW50ZXJmYWNlCj4+IMKgwqAgaW9tbXU6IE9ubHkgbG9nIHN0cmljdG5lc3MgZm9y IERNQSBkb21haW5zCj4+Cj4+IMKgIC4uLi9BQkkvdGVzdGluZy9zeXNmcy1rZXJuZWwtaW9tbXVf Z3JvdXBzwqDCoMKgwqAgfMKgIDIgKwo+PiDCoCBkcml2ZXJzL2lvbW11L0tjb25maWfCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCA4MCArKysrKysrKyst LS0tLS0tLS0tCj4+IMKgIGRyaXZlcnMvaW9tbXUvYW1kL2lvbW11LmPCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgMjEgKy0tLS0KPj4gwqAgZHJpdmVycy9pb21tdS9h cm0vYXJtLXNtbXUtdjMvYXJtLXNtbXUtdjMuY8KgwqAgfCAyNSArKysrLS0KPj4gwqAgZHJpdmVy cy9pb21tdS9hcm0vYXJtLXNtbXUvYXJtLXNtbXUuY8KgwqDCoMKgwqDCoMKgwqAgfCAyOSArKysr LS0tCj4+IMKgIGRyaXZlcnMvaW9tbXUvYXJtL2FybS1zbW11L3Fjb21faW9tbXUuY8KgwqDCoMKg wqDCoCB8wqAgOCAtLQo+PiDCoCBkcml2ZXJzL2lvbW11L2RtYS1pb21tdS5jwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDQ0ICsrKysrLS0tLS0KPj4gwqAgZHJpdmVy cy9pb21tdS9leHlub3MtaW9tbXUuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg fCAxOCArLS0tLQo+PiDCoCBkcml2ZXJzL2lvbW11L2ludGVsL2lvbW11LmPCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCAyMyArKy0tLS0KPj4gwqAgZHJpdmVycy9pb21tdS9p b21tdS5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwg NTMgKysrKysrKy0tLS0tCj4+IMKgIGRyaXZlcnMvaW9tbXUvaXBtbXUtdm1zYS5jwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCAyNyArLS0tLS0tCj4+IMKgIGRyaXZlcnMv aW9tbXUvbXRrX2lvbW11LmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHzCoCA2IC0tCj4+IMKgIGRyaXZlcnMvaW9tbXUvcm9ja2NoaXAtaW9tbXUuY8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCB8IDExICstLQo+PiDCoCBkcml2ZXJzL2lvbW11L3NwcmQtaW9t bXUuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA2IC0tCj4+IMKg IGRyaXZlcnMvaW9tbXUvc3VuNTBpLWlvbW11LmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHwgMTIgKy0tCj4+IMKgIGRyaXZlcnMvaW9tbXUvdmlydGlvLWlvbW11LmPCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA4IC0tCj4+IMKgIGluY2x1ZGUvbGludXgv ZG1hLWlvbW11LmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA5 ICsrLQo+PiDCoCBpbmNsdWRlL2xpbnV4L2lvbW11LmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCAxNSArKystCj4+IMKgIDE4IGZpbGVzIGNoYW5nZWQs IDE3MSBpbnNlcnRpb25zKCspLCAyMjYgZGVsZXRpb25zKC0pCj4+Cj4gCj4gCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1h aWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xp c3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==