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 4A5B1C43334 for ; Tue, 5 Jul 2022 09:11:42 +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-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=fKVzuGRe1O+y1D/YVk1quY+cqPyYbmLOzPonJyrMW+Q=; b=4wYNzn6z6A36NB 1vG36DqLTN2wParIPqVbOE/Xr1i0CFIvhakRWkFb/CE+tXIxFQq5leHeWW7OxtZdxxdgj8oPgyCnP WPVA+ICAmYBvCq1dJS6ceR+YojGE6OmjhdNBy9kjFayeGtzig0y458SNQAizkp68nry61T9nMtGNz 9dTwUdd3KlpwtkH7jHqj1sSy8k3EgJGCZimuaF20URrHRrRBN0rSCKS670KwDFLv2sRKaMvpnV11z Dvb7Xp12TLYJNMga8prEUrTE/gIyVVxfHDkjmqi5iv0GanImNW4iOLCyZszrQ9hyXPgjvm5QWyBtR CjRxXk816PBkifOCWK/g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o8eZh-00GXGd-Fn; Tue, 05 Jul 2022 09:10:29 +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 1o8eVx-00GUrW-Fa for linux-arm-kernel@lists.infradead.org; Tue, 05 Jul 2022 09:06:40 +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 F1563152B; Tue, 5 Jul 2022 02:06:32 -0700 (PDT) Received: from [10.57.86.91] (unknown [10.57.86.91]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id AF36E3F792; Tue, 5 Jul 2022 02:06:30 -0700 (PDT) Message-ID: Date: Tue, 5 Jul 2022 10:06:26 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: [PATCH v2 03/14] iommu: Move bus setup to IOMMU device registration Content-Language: en-GB To: Baolu Lu , joro@8bytes.org, will@kernel.org Cc: jean-philippe@linaro.org, zhang.lyra@gmail.com, linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org, thierry.reding@gmail.com, linux-arm-kernel@lists.infradead.org, gerald.schaefer@linux.ibm.com References: <1faba5b5c094379df3d99b8fec924ab50ad75482.1650890638.git.robin.murphy@arm.com> <0e459e6e-f236-7a58-970a-a47677a23b44@linux.intel.com> <1322706e-5905-433b-5bc5-ed44f881b510@arm.com> From: Robin Murphy In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220705_020637_695057_6FFE8ACD X-CRM114-Status: GOOD ( 23.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 T24gMjAyMi0wNy0wNSAwNTo1MSwgQmFvbHUgTHUgd3JvdGU6Cj4gSGkgUm9iaW4sCj4gCj4gT24g MjAyMi80LzMwIDAyOjA2LCBSb2JpbiBNdXJwaHkgd3JvdGU6Cj4+IE9uIDI5LzA0LzIwMjIgOTo1 MCBhbSwgUm9iaW4gTXVycGh5IHdyb3RlOgo+Pj4gT24gMjAyMi0wNC0yOSAwNzo1NywgQmFvbHUg THUgd3JvdGU6Cj4+Pj4gSGkgUm9iaW4sCj4+Pj4KPj4+PiBPbiAyMDIyLzQvMjggMjE6MTgsIFJv YmluIE11cnBoeSB3cm90ZToKPj4+Pj4gTW92ZSB0aGUgYnVzIHNldHVwIHRvIGlvbW11X2Rldmlj ZV9yZWdpc3RlcigpLiBUaGlzIHNob3VsZCBhbGxvdwo+Pj4+PiBidXNfaW9tbXVfcHJvYmUoKSB0 byBiZSBjb3JyZWN0bHkgcmVwbGF5ZWQgZm9yIG11bHRpcGxlIElPTU1VIAo+Pj4+PiBpbnN0YW5j ZXMsCj4+Pj4+IGFuZCBsZWF2ZXMgYnVzX3NldF9pb21tdSgpIGFzIGEgZ2xvcmlmaWVkIG5vLW9w IHRvIGJlIGNsZWFuZWQgdXAgbmV4dC4KPj4+Pgo+Pj4+IEkgcmUtZmV0Y2hlZCB0aGUgbGF0ZXN0 IHBhdGNoZXMgb24KPj4+Pgo+Pj4+IGh0dHBzOi8vZ2l0bGFiLmFybS5jb20vbGludXgtYXJtL2xp bnV4LXJtLy0vY29tbWl0cy9pb21tdS9idXMKPj4+Pgo+Pj4+IGFuZCByb2xsZWQgYmFjayB0aGUg aGVhZCB0byAiaW9tbXU6IENsZWFudXAgYnVzX3NldF9pb21tdSIuCj4+Pj4KPj4+PiBUaGUgdGVz dCBtYWNoaW5lIHN0aWxsIGhhbmdzIGR1cmluZyBib290Lgo+Pj4+Cj4+Pj4gSSB3ZW50IHRocm91 Z2ggdGhlIGNvZGUuIEl0IHNlZW1zIHRoYXQgdGhlIC5wcm9iZV9kZXZpY2UgZm9yIEludGVsIAo+ Pj4+IElPTU1VCj4+Pj4gZHJpdmVyIGNhbid0IGhhbmRsZSB0aGUgcHJvYmUgcmVwbGF5IHdlbGwu IEl0IGFsd2F5cyBhc3N1bWVzIHRoYXQgdGhlCj4+Pj4gZGV2aWNlIGhhcyBuZXZlciBiZWVuIHBy b2JlZC4KPj4+Cj4+PiBIbW0sIGJ1dCBwcm9iZV9pb21tdV9ncm91cCgpIGlzIHN1cHBvc2VkIHRv IHByZXZlbnQgdGhlIAo+Pj4gX19pb21tdV9wcm9iZV9kZXZpY2UoKSBjYWxsIGV2ZW4gaGFwcGVu aW5nIGlmIHRoZSBkZXZpY2UgKmhhcyogCj4+PiBhbHJlYWR5IGJlZW4gcHJvYmVkIGJlZm9yZSA6 Lwo+Pj4KPj4+IEkndmUgc3RpbGwgZ290IGFuIG9sZCBJbnRlbCBib3ggc3BhcmUgaW4gdGhlIG9m ZmljZSBzbyBJJ2xsIHJpZyB0aGF0IAo+Pj4gdXAgYW5kIHNlZSBpZiBJIGNhbiBzZWUgd2hhdCBt aWdodCBiZSBnb2luZyBvbiBoZXJlLi4uCj4+Cj4+IE9LLCBvbiBhIFhlb24gd2l0aCB0d28gRE1B UiB1bml0cywgdGhpcyBzZWVtcyB0byBib290IE9LIHdpdGggb3IgCj4+IHdpdGhvdXQgcGF0Y2gg IzEsIHNvIGl0IGRvZXNuJ3Qgc2VlbSB0byBiZSBhIGdlbmVyYWwgcHJvYmxlbSB3aXRoIAo+PiBy ZXBsYXlpbmcgaW4gaW9tbXVfZGV2aWNlX3JlZ2lzdGVyKCksIG9yIHdpdGggcGxhdGZvcm0gZGV2 aWNlcy4gTm90IAo+PiBzdXJlIHdoZXJlIHRvIGdvIGZyb20gaGVyZS4uLiA6Lwo+IAo+IFRoZSBr ZXJuZWwgYm9vdCBwYW5pYyBtZXNzYWdlOgo+IAo+IFvCoMKgwqAgNi42Mzk0MzJdIEJVRzoga2Vy bmVsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSwgYWRkcmVzczogCj4gMDAwMDAwMDAwMDAwMDAy OAo+IFvCoMKgwqAgNi43NDM4MjldICNQRjogc3VwZXJ2aXNvciByZWFkIGFjY2VzcyBpbiBrZXJu ZWwgbW9kZQo+IFvCoMKgwqAgNi43NDM4MjldICNQRjogZXJyb3JfY29kZSgweDAwMDApIC0gbm90 LXByZXNlbnQgcGFnZQo+IFvCoMKgwqAgNi43NDM4MjldIFBHRCAwCj4gW8KgwqDCoCA2Ljc0Mzgy OV0gT29wczogMDAwMCBbIzFdIFBSRUVNUFQgU01QIE5PUFRJCj4gW8KgwqDCoCA2Ljc0MzgyOV0g Q1BVOiAwIFBJRDogMSBDb21tOiBzd2FwcGVyLzAgVGFpbnRlZDogR8KgwqDCoMKgwqDCoMKgwqDC oCBJIAo+ICDCoDUuMTkuMC1yYzMrICMxODIKPiBbwqDCoMKgIDYuNzQzODI5XSBSSVA6IDAwMTA6 X19pb21tdV9wcm9iZV9kZXZpY2UrMHgxMTUvMHgyMDAKPiBbwqDCoMKgIDYuNzQzODI5XSBDb2Rl OiA4OSBmZiBlOCAzZSBlMSBmZiBmZiA0OCA4NSBjMCAwZiA4NSA0NyBmZiBmZiBmZiA0MSAKPiBi ZCBmNCBmZiBmZiBmZiBlYiA4MyA0OCA4YiA4MyBkOCAwMiAwMCAwMCA0OCA4OSBkZiA0OCA4YiA0 MCAzOCA0OCA4YiA0MCAKPiAxMCA8NDg+IDhiIDQwIDI4IGZmIGQwIDBmIDFmIDAwIDQ4IDg5IGMx IDQ4IDg1IGMwIDBmIDg0IGI3IDAwIDAwIDAwIDQ4Cj4gW8KgwqDCoCA2Ljc0MzgyOV0gUlNQOiAw MDAwOmZmMzA2MDVjMDAwNjNkNDAgRUZMQUdTOiAwMDAxMDI0Ngo+IFvCoMKgwqAgNi43NDM4Mjld IFJBWDogMDAwMDAwMDAwMDAwMDAwMCBSQlg6IGZmMTI4YjljNWZkYzkwZDAgUkNYOiAKPiAwMDAw MDAwMDAwMDAwMDAwCj4gW8KgwqDCoCA2Ljc0MzgyOV0gUkRYOiAwMDAwMDAwMDgwMDAwMDAxIFJT STogMDAwMDAwMDAwMDAwMDI0NiBSREk6IAo+IGZmMTI4YjljNWZkYzkwZDAKPiBbwqDCoMKgIDYu NzQzODI5XSBSQlA6IGZmZmZmZmZmYjYwYzM0ZTAgUjA4OiBmZmZmZmZmZmI2ODY2NGQwIFIwOTog Cj4gZmYxMjhiOTUwMWQ0Y2U0MAo+IFvCoMKgwqAgNi43NDM4MjldIFIxMDogZmZmZmZmZmZiNjI2 NzA5NiBSMTE6IGZmMTI4Yjk1MDAxNGMyNjcgUjEyOiAKPiBmZjMwNjA1YzAwMDYzZGUwCj4gW8Kg wqDCoCA2Ljc0MzgyOV0gUjEzOiAwMDAwMDAwMDAwMWI5ZDI4IFIxNDogZmYxMjhiOTUwMDFiOWQy OCBSMTU6IAo+IGZmMTI4YjljNWZkYzkzYTgKPiBbwqDCoMKgIDYuNzQzODI5XSBGUzrCoCAwMDAw MDAwMDAwMDAwMDAwKDAwMDApIEdTOmZmMTI4YjljNWZjMDAwMDAoMDAwMCkgCj4ga25sR1M6MDAw MDAwMDAwMDAwMDAwMAo+IFvCoMKgwqAgNi43NDM4MjldIENTOsKgIDAwMTAgRFM6IDAwMDAgRVM6 IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzCj4gW8KgwqDCoCA2Ljc0MzgyOV0gQ1IyOiAwMDAw MDAwMDAwMDAwMDI4IENSMzogMDAwMDAwMDE0OTIxMDAwMSBDUjQ6IAo+IDAwMDAwMDAwMDA3NzFl ZjAKPiBbwqDCoMKgIDYuNzQzODI5XSBEUjA6IDAwMDAwMDAwMDAwMDAwMDAgRFIxOiAwMDAwMDAw MDAwMDAwMDAwIERSMjogCj4gMDAwMDAwMDAwMDAwMDAwMAo+IFvCoMKgwqAgNi43NDM4MjldIERS MzogMDAwMDAwMDAwMDAwMDAwMCBEUjY6IDAwMDAwMDAwZmZmZjA3ZjAgRFI3OiAKPiAwMDAwMDAw MDAwMDAwNDAwCj4gW8KgwqDCoCA2Ljc0MzgyOV0gUEtSVTogNTU1NTU1NTQKPiBbwqDCoMKgIDYu NzQzODI5XSBDYWxsIFRyYWNlOgo+IFvCoMKgwqAgNi43NDM4MjldwqAgPFRBU0s+Cj4gW8KgwqDC oCA2Ljc0MzgyOV3CoCA/IF9yYXdfc3Bpbl9sb2NrX2lycXNhdmUrMHgxNy8weDQwCj4gW8KgwqDC oCA2Ljc0MzgyOV3CoCA/IF9faW9tbXVfcHJvYmVfZGV2aWNlKzB4MjAwLzB4MjAwCj4gW8KgwqDC oCA2Ljc0MzgyOV3CoCBwcm9iZV9pb21tdV9ncm91cCsweDJkLzB4NDAKPiBbwqDCoMKgIDYuNzQz ODI5XcKgIGJ1c19mb3JfZWFjaF9kZXYrMHg3NC8weGMwCj4gW8KgwqDCoCA2Ljc0MzgyOV3CoCBi dXNfaW9tbXVfcHJvYmUrMHg0OC8weDJkMAo+IFvCoMKgwqAgNi43NDM4MjldwqAgaW9tbXVfZGV2 aWNlX3JlZ2lzdGVyKzB4ZGUvMHgxMjAKPiBbwqDCoMKgIDYuNzQzODI5XcKgIGludGVsX2lvbW11 X2luaXQrMHgzNWYvMHg1ZjIKPiBbwqDCoMKgIDYuNzQzODI5XcKgID8gaW9tbXVfc2V0dXArMHgy N2QvMHgyN2QKPiBbwqDCoMKgIDYuNzQzODI5XcKgID8gcmRpbml0X3NldHVwKzB4MmMvMHgyYwo+ IFvCoMKgwqAgNi43NDM4MjldwqAgcGNpX2lvbW11X2luaXQrMHhlLzB4MzIKPiBbwqDCoMKgIDYu NzQzODI5XcKgIGRvX29uZV9pbml0Y2FsbCsweDQxLzB4MjAwCj4gW8KgwqDCoCA2Ljc0MzgyOV3C oCBrZXJuZWxfaW5pdF9mcmVlYWJsZSsweDFkZS8weDIyOAo+IFvCoMKgwqAgNi43NDM4MjldwqAg PyByZXN0X2luaXQrMHhjMC8weGMwCj4gW8KgwqDCoCA2Ljc0MzgyOV3CoCBrZXJuZWxfaW5pdCsw eDE2LzB4MTIwCj4gW8KgwqDCoCA2Ljc0MzgyOV3CoCByZXRfZnJvbV9mb3JrKzB4MWYvMHgzMAo+ IFvCoMKgwqAgNi43NDM4MjldwqAgPC9UQVNLPgo+IFvCoMKgwqAgNi43NDM4MjldIE1vZHVsZXMg bGlua2VkIGluOgo+IFvCoMKgwqAgNi43NDM4MjldIENSMjogMDAwMDAwMDAwMDAwMDAyOAo+IFvC oMKgwqAgNi43NDM4MjldIC0tLVsgZW5kIHRyYWNlIDAwMDAwMDAwMDAwMDAwMDAgXS0tLQo+IFvC oMKgwqAgNi43NDM4MjldIFJJUDogMDAxMDpfX2lvbW11X3Byb2JlX2RldmljZSsweDExNS8weDIw MAo+IFvCoMKgwqAgNi43NDM4MjldIENvZGU6IDg5IGZmIGU4IDNlIGUxIGZmIGZmIDQ4IDg1IGMw IDBmIDg1IDQ3IGZmIGZmIGZmIDQxIAo+IGJkIGY0IGZmIGZmIGZmIGViIDgzIDQ4IDhiIDgzIGQ4 IDAyIDAwIDAwIDQ4IDg5IGRmIDQ4IDhiIDQwIDM4IDQ4IDhiIDQwIAo+IDEwIDw0OD4gOGIgNDAg MjggZmYgZDAgMGYgMWYgMDAgNDggODkgYzEgNDggODUgYzAgMGYgODQgYjcgMDAgMDAgMDAgNDgK PiBbwqDCoMKgIDYuNzQzODI5XSBSU1A6IDAwMDA6ZmYzMDYwNWMwMDA2M2Q0MCBFRkxBR1M6IDAw MDEwMjQ2Cj4gW8KgwqDCoCA2Ljc0MzgyOV0gUkFYOiAwMDAwMDAwMDAwMDAwMDAwIFJCWDogZmYx MjhiOWM1ZmRjOTBkMCBSQ1g6IAo+IDAwMDAwMDAwMDAwMDAwMDAKPiBbwqDCoMKgIDYuNzQzODI5 XSBSRFg6IDAwMDAwMDAwODAwMDAwMDEgUlNJOiAwMDAwMDAwMDAwMDAwMjQ2IFJESTogCj4gZmYx MjhiOWM1ZmRjOTBkMAo+IFvCoMKgwqAgNi43NDM4MjldIFJCUDogZmZmZmZmZmZiNjBjMzRlMCBS MDg6IGZmZmZmZmZmYjY4NjY0ZDAgUjA5OiAKPiBmZjEyOGI5NTAxZDRjZTQwCj4gW8KgwqDCoCA2 Ljc0MzgyOV0gUjEwOiBmZmZmZmZmZmI2MjY3MDk2IFIxMTogZmYxMjhiOTUwMDE0YzI2NyBSMTI6 IAo+IGZmMzA2MDVjMDAwNjNkZTAKPiBbwqDCoMKgIDYuNzQzODI5XSBSMTM6IDAwMDAwMDAwMDAx YjlkMjggUjE0OiBmZjEyOGI5NTAwMWI5ZDI4IFIxNTogCj4gZmYxMjhiOWM1ZmRjOTNhOAo+IFvC oMKgwqAgNi43NDM4MjldIEZTOsKgIDAwMDAwMDAwMDAwMDAwMDAoMDAwMCkgR1M6ZmYxMjhiOWM1 ZmMwMDAwMCgwMDAwKSAKPiBrbmxHUzowMDAwMDAwMDAwMDAwMDAwCj4gW8KgwqDCoCA2Ljc0Mzgy OV0gQ1M6wqAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKPiBb wqDCoMKgIDYuNzQzODI5XSBDUjI6IDAwMDAwMDAwMDAwMDAwMjggQ1IzOiAwMDAwMDAwMTQ5MjEw MDAxIENSNDogCj4gMDAwMDAwMDAwMDc3MWVmMAo+IFvCoMKgwqAgNi43NDM4MjldIERSMDogMDAw MDAwMDAwMDAwMDAwMCBEUjE6IDAwMDAwMDAwMDAwMDAwMDAgRFIyOiAKPiAwMDAwMDAwMDAwMDAw MDAwCj4gW8KgwqDCoCA2Ljc0MzgyOV0gRFIzOiAwMDAwMDAwMDAwMDAwMDAwIERSNjogMDAwMDAw MDBmZmZmMDdmMCBEUjc6IAo+IDAwMDAwMDAwMDAwMDA0MDAKPiBbwqDCoMKgIDYuNzQzODI5XSBQ S1JVOiA1NTU1NTU1NAo+IFvCoMKgwqAgNi43NDM4MjldIEtlcm5lbCBwYW5pYyAtIG5vdCBzeW5j aW5nOiBGYXRhbCBleGNlcHRpb24KPiBbwqDCoMKgIDYuNzQzODI5XSAtLS1bIGVuZCBLZXJuZWwg cGFuaWMgLSBub3Qgc3luY2luZzogRmF0YWwgZXhjZXB0aW9uIF0tLS0KPiAKPiBUaGUgIk5VTEwg cG9pbnRlciBkZXJlZmVyZW5jZSIgaGFwcGVucyBhdCBsaW5lIDE2MjAgb2YgYmVsb3cgY29kZS4K PiAKPiAxNjEwIHN0YXRpYyBzdHJ1Y3QgaW9tbXVfZ3JvdXAgKmlvbW11X2dyb3VwX2dldF9mb3Jf ZGV2KHN0cnVjdCBkZXZpY2UgKmRldikKPiAxNjExIHsKPiAxNjEywqDCoMKgwqDCoMKgwqDCoCBj b25zdCBzdHJ1Y3QgaW9tbXVfb3BzICpvcHMgPSBkZXZfaW9tbXVfb3BzKGRldik7Cj4gMTYxM8Kg wqDCoMKgwqDCoMKgwqAgc3RydWN0IGlvbW11X2dyb3VwICpncm91cDsKPiAxNjE0wqDCoMKgwqDC oMKgwqDCoCBpbnQgcmV0Owo+IDE2MTUKPiAxNjE2wqDCoMKgwqDCoMKgwqDCoCBncm91cCA9IGlv bW11X2dyb3VwX2dldChkZXYpOwo+IDE2MTfCoMKgwqDCoMKgwqDCoMKgIGlmIChncm91cCkKPiAx NjE4wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIGdyb3VwOwo+IDE2MTkK PiAxNjIwwqDCoMKgwqDCoMKgwqDCoCBncm91cCA9IG9wcy0+ZGV2aWNlX2dyb3VwKGRldik7Cj4g MTYyMcKgwqDCoMKgwqDCoMKgwqAgaWYgKFdBUk5fT05fT05DRShncm91cCA9PSBOVUxMKSkKPiAx NjIywqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIEVSUl9QVFIoLUVJTlZB TCk7Cj4gMTYyMwo+IDE2MjTCoMKgwqDCoMKgwqDCoMKgIGlmIChJU19FUlIoZ3JvdXApKQo+IDE2 MjXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gZ3JvdXA7Cj4gCj4gVGhp cyBwbGF0Zm9ybSBoYXMgbXVsdGlwbGUgSU9NTVUgdW5pdHMsIGVhY2ggc2VydmluZyBkaWZmZXJl bnQgUENJCj4gZGV2aWNlcy4gVGhlIG9wcyBmaWVsZCBvZiBlYWNoIGlvbW11X2RldmljZSBpcyBp bml0aWFsaXplZCBpbgo+IGlvbW11X2RldmljZV9yZWdpc3RlcigpLCBoZW5jZSB3aGVuIHRoZSBm aXJzdCBJT01NVSBkZXZpY2UgZ2V0cwo+IHJlZ2lzdGVyZWQsIG9wcyBmaWVsZHMgb2Ygb3RoZXIg aW9tbXVfZGV2aWNlcyBhcmUgTlVMTC4KPiAKPiBVbmZvcnR1bmF0ZWx5IGJ1c19pb21tdV9wcm9i ZSgpIGNhbGxlZCBpbiBpb21tdV9kZXZpY2VfcmVnaXN0ZXIoKSBwcm9iZXMKPiAqYWxsKiBQQ0kg ZGV2aWNlcy4gVGhpcyBwcm9iYWJseSBsZWFkcyB0byBhYm92ZSBOVUxMIHBvaW50ZXIgZGVyZWZl cmVuY2UKPiBpc3N1ZS4KPiAKPiBQbGVhc2UgY29ycmVjdCBtZSBpZiBJIG92ZXJsb29rZWQgYW55 dGhpbmcuCgpIYSwgYXMgaXQgaGFwcGVucyBJIGFsc28ganVzdCBmaWd1cmVkIHRoaXMgb3V0IHll c3RlcmRheSAoYWZ0ZXIgCnJlbWVtYmVyaW5nIHRoZSBpbXBvcnRhbnQgZGV0YWlsIG9mICJpbnRl bF9pb21tdT1vbiIsIHRyeWluZyB0aGUgbG9ja2RlcCAKdGVzdCksIHNvIGl0J3MgZ29vZCB0byBo YXZlIGNvbmZpcm1hdGlvbiwgdGhhbmtzISBJJ2xsIHRlc3QgYSBmaXggdG9kYXkgCmFuZCBzZW5k IHYzIHNvb24uCgpDaGVlcnMsClJvYmluLgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJt LWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=