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=-6.8 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham 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 CBFCEC433FF for ; Thu, 8 Aug 2019 19:29:52 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (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 8F6B621743 for ; Thu, 8 Aug 2019 19:29:52 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="vTlY5Ttl" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8F6B621743 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hvo6P-0003aG-9e; Thu, 08 Aug 2019 19:29:33 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hvo6N-0003aB-PS for xen-devel@lists.xenproject.org; Thu, 08 Aug 2019 19:29:31 +0000 X-Inumbo-ID: d700eac8-ba12-11e9-8980-bc764e045a96 Received: from mail-lf1-x144.google.com (unknown [2a00:1450:4864:20::144]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id d700eac8-ba12-11e9-8980-bc764e045a96; Thu, 08 Aug 2019 19:29:29 +0000 (UTC) Received: by mail-lf1-x144.google.com with SMTP id x3so13927136lfn.6 for ; Thu, 08 Aug 2019 12:29:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=DzTTcRoo7RjrUklQi3oAbuvaasG1RQXZuXGiSWnwaBg=; b=vTlY5Ttl07gjwtDnh1DHk2i8/0X+JoPh57bcGHF77zVcYlfG4FdvoD3ym8q6PsRQ8c QfdUijWiFi1mMVlpVowymLA36290bZ9/XUb77Ybr6ZBNTEGE/V6X1eKWQ7C7/zAYKvcC NEAO5hBbCHTVWXo13LJ+YSmcSSFq3kPS5j+OfsrGkoFtwcNdQ3nemOFRrPlWScKJCFk3 B0Qk2oNMKdggzX0M//68QrgUlxbgCPLR/4zVfVCScWw+QFyk4ZtwrekTuHXpUB0uVkN8 RJb5u/EO0E4+G5eH987/4TvG+OKLTwrMWY/eozzk+w7uOZ14mDaqaG0K7XAKbfWi9B8X jKkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=DzTTcRoo7RjrUklQi3oAbuvaasG1RQXZuXGiSWnwaBg=; b=aBIHMWoKyQDKj5gyG1q9Rn4Buxv44QNUjHsJ3oxk6N3bdxdMBTJW9lIALSpDzjzraH MvdwY2E3sgUUK70mipNrx2CwYJO4PVhkEAte3oQN7kVKZEvsDQ+qyJsoEmJOl3p3xofK YIhNSmXu4zLIbJYO6hIqFtv44Wgh+BbiH1AkLfvG873ik1owmVdQP4kg7epKO39j5FII s8aFlRKIHitnhMsqiXGcR0mqbedJJZ+vSg+jx6+XXC0nB6R7EshgrXSSEyitWztrAxLe XBraJuMxTdRNWCz6d1rL3RBd3Dw+Qnv8GjVL2dKJfTymKtmhV4NmYRxuKjbk7nOudOfT G2mw== X-Gm-Message-State: APjAAAXqBk2S9TUyChVJOnG9R6ZTae9fu7XZDSH6MGht6nIcZJuirGCq WHx58PMNcnZzYLXliOa3D8U= X-Google-Smtp-Source: APXvYqz3rwrDk+5PSzm9vsTBoSkzXJE9WOMsq4DY/p1KcvCsOjGXoPjLoY94o+XqpnmWK7Cs9Cdgkg== X-Received: by 2002:ac2:545b:: with SMTP id d27mr10515726lfn.36.1565292568541; Thu, 08 Aug 2019 12:29:28 -0700 (PDT) Received: from [10.17.182.120] (ll-22.209.223.85.sovam.net.ua. [85.223.209.22]) by smtp.gmail.com with ESMTPSA id s19sm18732392lji.38.2019.08.08.12.29.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 08 Aug 2019 12:29:27 -0700 (PDT) To: Julien Grall References: <1564763985-20312-1-git-send-email-olekstysh@gmail.com> <1564763985-20312-7-git-send-email-olekstysh@gmail.com> <42cc28a7-5ab3-e24f-16d3-7a287f7f14e8@arm.com> <7cecce50-31e9-0e3f-d41c-a051ea6f9971@arm.com> <11de4dee-2d2f-2578-57ae-4313c985e645@gmail.com> <03b1bac9-40ca-3bd4-d3fa-a4acc4e9e958@arm.com> From: Oleksandr Message-ID: <862f74f1-2039-8737-6d71-fe3fc07a06ff@gmail.com> Date: Thu, 8 Aug 2019 22:29:26 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US Subject: Re: [Xen-devel] [PATCH V2 6/6] iommu/arm: Add Renesas IPMMU-VMSA support X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: "xen-devel@lists.xenproject.org" , Yoshihiro Shimoda , "sstabellini@kernel.org" , Oleksandr Tyshchenko Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" CkhpLCBKdWxpZW4uCgoKPj4+Pj4KPj4+Pj4+IFNvcnJ5IGZvciB0aGUgcG9zc2libGUgZm9ybWF0 IGlzc3Vlcy4KPj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gwqDCoMKgwqAgPiBObywgaXQgaXMgbm90IGRp c2FibGVkLiBCdXQsIGlwbW11X2lycSgpIHVzZXMgYW5vdGhlciAKPj4+Pj4+IG1tdS0+bG9jay4g U28sIEkKPj4+Pj4+IMKgwqDCoMKgID4gdGhpbmssIHRoZXJlIHdvbid0IGJlIGEgZGVhZGxvY2su Cj4+Pj4+PiDCoMKgwqDCoCA+Cj4+Pj4+PiDCoMKgwqDCoCA+IE9yIEkgcmVhbGx5IG1pc3NlZCBz b21ldGhpbmc/Cj4+Pj4+PiDCoMKgwqDCoCA+Cj4+Pj4+PiDCoMKgwqDCoCA+IElmIHdlIHdvcnJ5 IGFib3V0IGlwbW11X3RsYl9pbnZhbGlkYXRlKCkgd2hpY2ggaXMgY2FsbGVkIAo+Pj4+Pj4gaGVy ZSAodG8KPj4+Pj4+IMKgwqDCoMKgID4gcGVyZm9ybSBhIGZsdXNoIGJ5IHJlcXVlc3QgZnJvbSBQ Mk0gY29kZSwgd2hpY2ggbWFuYWdlcyBhIAo+Pj4+Pj4gcGFnZSB0YWJsZSkKPj4+Pj4+IMKgwqDC oMKgID4gYW5kIGZyb20gdGhlIGlycSBoYW5kbGVyICh0byBwZXJmb3JtIGEgZmx1c2ggdG8gcmVz dW1lIAo+Pj4+Pj4gYWRkcmVzcwo+Pj4+Pj4gwqDCoMKgwqAgPiB0cmFuc2xhdGlvbiksIEkgY291 bGQgdXNlIGEgdGFza2xldCB0byBzY2hlZHVsZSAKPj4+Pj4+IGlwbW11X3RsYl9pbnZhbGlkYXRl KCkKPj4+Pj4+IMKgwqDCoMKgID4gZnJvbSB0aGUgaXJxIGhhbmRsZXIgdGhlbi4gVGhpcyB3YXkg d2Ugd291bGQgZ2V0IHRoaXMgCj4+Pj4+PiBzZXJpYWxpemVkLiBXaGF0Cj4+Pj4+PiDCoMKgwqDC oCA+IGRvIHlvdSB0aGluaz8KPj4+Pj4+Cj4+Pj4+PiDCoMKgwqAgSSBhbSBhZnJhaWQgYSB0YXNr bGV0IGlzIG5vdCBhbiBvcHRpb24uIFlvdSBuZWVkIHRvIHBlcmZvcm0gCj4+Pj4+PiB0aGUgVExC Cj4+Pj4+PiDCoMKgwqAgZmx1c2ggd2hlbiByZXF1ZXN0ZWQgb3RoZXJ3aXNlIHlvdSBhcmUgaW50 cm9kdWNpbmcgYSBzZWN1cml0eSAKPj4+Pj4+IGlzc3VlLgo+Pj4+Pj4KPj4+Pj4+IMKgwqDCoCBU aGlzIGlzIGJlY2F1c2UgYXMgc29vbiBhcyBhIHJlZ2lvbiBpcyB1bm1hcHBlZCBpbiB0aGUgcGFn ZSAKPj4+Pj4+IHRhYmxlLCB3ZQo+Pj4+Pj4gwqDCoMKgIHJlbW92ZSB0aGUgZHJvcCB0aGUgcmVm ZXJlbmNlIG9uIGFueSBwYWdlIGJhY2tpbmcgdGhhdCAKPj4+Pj4+IHJlZ2lvbi4gV2hlbiB0aGUK Pj4+Pj4+IMKgwqDCoCByZWZlcmVuY2UgaXMgZHJvcHBlZCB0byB6ZXJvLCB0aGUgcGFnZSBjYW4g YmUgcmVhbGxvY2F0ZWQgdG8gCj4+Pj4+PiBhbm90aGVyCj4+Pj4+PiDCoMKgwqAgZG9tYWluIG9y IGV2ZW4gWGVuLiBJZiB0aGUgVExCIGZsdXNoIGhhcHBlbiBhZnRlciwgdGhlbiB0aGUgCj4+Pj4+ PiBndWVzdCBtYXkKPj4+Pj4+IMKgwqDCoCBzdGlsbCBiZSBhYmxlIHRvIGFjY2VzcyB0aGUgcGFn ZSBmb3IgYSBzaG9ydCB0aW1lIGlmIHRoZSAKPj4+Pj4+IHRyYW5zbGF0aW9uIGhhcwo+Pj4+Pj4g wqDCoMKgIGJlZW4gY2FjaGVkIGJ5IHRoZSBhbnkgVExCIChJT01NVSwgUHJvY2Vzc29yKS4KPj4+ Pj4+Cj4+Pj4+Pgo+Pj4+Pj4KPj4+Pj4+IEkgdW5kZXJzdGFuZCB0aGlzLiBJwqBhbSBub3QgcHJv cG9zaW5nIHRvIGRlbGF5IGEgcmVxdWVzdGVkIGJ5IFAyTSAKPj4+Pj4+IGNvZGUgVExCIGZsdXNo IGluIGFueSBjYXNlLiBJIGp1c3QgcHJvcG9zZSB0byBpc3N1ZSBUTEIgZmx1c2ggCj4+Pj4+PiAo d2hpY2ggd2UgaGF2ZSB0byBwZXJmb3JtIGluIGNhc2Ugb2YgcGFnZSBmYXVsdHMsIHRvIHJlc29s dmUgCj4+Pj4+PiBlcnJvciBjb25kaXRpb24gYW5kIHJlc3VtZSB0cmFuc2xhdGlvbnMpIGZyb20g YSB0YXNrbGV0IHJhdGhlciAKPj4+Pj4+IHRoYW4gZnJvbSBpbnRlcnJ1cHQgaGFuZGxlciBkaXJl Y3RseS4gVGhpcyBpcyB0aGUgVExCIGZsdXNoIEkgYW0gCj4+Pj4+PiBzcGVha2luZyBhYm91dDoK Pj4+Pj4+Cj4+Pj4+PiBodHRwczovL2dpdGh1Yi5jb20vb3R5c2hjaGVua28xL3hlbi9ibG9iL2lw bW11X3Vwc3RyZWFtMi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vaXBtbXUtdm1zYS5jI0w1 OTggCj4+Pj4+Pgo+Pj4+Pj4KPj4+Pj4+IFNvcnJ5IGlmIEkgd2FzIHVuY2xlYXIuCj4+Pj4+Cj4+ Pj4+IE15IG1pc3Rha2UsIEkgbWlzcmVhZCB3aGF0IHlvdSB3cm90ZS4KPj4+Pj4KPj4+Pj4gSSBm b3VuZCB0aGUgZmx1c2ggaW4gdGhlIHJlbmVzYXMtYnNwIGFuZCBub3QgTGludXggdXBzdHJlYW0g YnV0IGl0IAo+Pj4+PiBpcyBub3QgY2xlYXIgd2h5IHRoaXMgaXMgYWN0dWFsbHkgcmVxdWlyZWQu IFlvdSBhcmUgbm90IGZpeGluZyBhbnkgCj4+Pj4+IHRyYW5zbGF0aW9uIGVycm9yLiBTbyB3aGF0 IHRoaXMgZmx1c2ggd2lsbCBkbz8KPj4+Pj4KPj4+Pj4gUmVnYXJkaW5nIHRoZSBwbGFjZW1lbnQg b2YgdGhlIGZsdXNoLCB0aGVuIGlmIHlvdSBleGVjdXRlIGluIGEgCj4+Pj4+IHRhc2tsZXQgaXQg d2lsbCBsaWtlbHkgYmUgZG9uZSBsYXRlciBvbiB3aGVuIHRoZSBJUlEgaGFzIGJlZW4gCj4+Pj4+ IGFja25vd2xlZGdlLiBXaGF0J3MgdGhlIGltcGxpY2F0aW9uIHRvIGRlbGF5IGl0Pwo+Pj4+Cj4+ Pj4KPj4+PiBMb29rcyBsaWtlLCB0aGVyZSBpcyBubyBuZWVkIHRvIHB1dCB0aGlzIGZsdXNoIGlu dG8gYSB0YXNrbGV0LiBBcyBJIAo+Pj4+IHVuZGVyc3RhbmQgZnJvbSBTaGltb2RhLXNhbidzIGFu c3dlciBpdCBpcyBPSyB0byBjYWxsIGZsdXNoIGhlcmUuCj4+Pj4KPj4+PiBTbywgbXkgd29ycnkg YWJvdXQgY2FsbGluZyBpcG1tdV90bGJfaW52YWxpZGF0ZSgpIGRpcmVjdGx5IGZyb20gdGhlIAo+ Pj4+IGludGVycnVwdCBoYW5kbGVyIGlzIG5vdCBhY3R1YWwgYW55bW9yZS4KPj4+PiAtLS0tLS0t LS0tCj4+Pj4gVGhpcyBpcyBteSB1bmRlcnN0YW5kaW5nIHJlZ2FyZGluZyB0aGUgZmx1c2ggcHVy cG9zZSBoZXJlLiBUaGlzIAo+Pj4+IGNvZGUsIGp1c3QgZm9sbG93cyB0aGUgVFJNLCBubyBtb3Jl IG5vIGxlc3MsCj4+Pj4gd2hpY2ggbWVudGlvbnMgYWJvdXQgYSBuZWVkIHRvIGZsdXNoIFRMQiBh ZnRlciBjbGVhcmluZyBlcnJvciAKPj4+PiBzdGF0dXMgcmVnaXN0ZXIgYW5kIHVwZGF0aW5nIGEg cGFnZSB0YWJsZSBlbnRyaWVzICh3aGljaCwgSSBhc3N1bWUsIAo+Pj4+IG1lYW5zIHRvIHJlc29s dmUgYSByZWFzb24gd2h5IHRyYW5zbGF0aW9uL3BhZ2UgZmF1bHQgZXJyb3IgYWN0dWFsbHkgCj4+ Pj4gaGF2ZSBoYXBwZW5lZCkgdG8gcmVzdW1lIGFkZHJlc3MgdHJhbnNsYXRpb24gcmVxdWVzdC4K Pj4+Cj4+PiBXZWxsLCBJIGRvbid0IGhhdmUgdGhlIFRSTS4uLiBzbyBteSBwb2ludCBvZiByZWZl cmVuY2UgaXMgTGludXguIFdoeSAKPj4+IGRvZXMgdXBzdHJlYW0gbm90IGRvIHRoZSBUTEIgZmx1 c2g/Cj4+Cj4+IEkgaGF2ZSBubyBpZGVhIHJlZ2FyZGluZyB0aGF0LiA+Cj4+Cj4+Pgo+Pj4KPj4+ IEkgaGF2ZSBiZWVuIHRvbGQgdGhpcyBpcyBhbiBlcnJhdGEgb24gdGhlIElQTU1VLiBJcyBpdCBy ZWxhdGVkIHRvIAo+Pj4gdGhlIHNlcmllcyBwb3N0ZWQgb24gbGludXgtaW9tbXUgWzFdPwo+Pgo+ PiBJIGRvbid0IHRoaW5rLCB0aGUgVExCIGZsdXNoIHdlIGFyZSBzcGVha2luZyBhYm91dCwgaXMg cmVsYXRlZCB0byAKPj4gdGhhdCBzZXJpZXMgWzFdIHNvbWVob3cuIFRoaXMgVExCIGZsdXNoLCBJ IHRoaW5rLCBpcyBqdXN0IHRoZSBsYXN0IAo+PiBzdGVwIGluIGEgc2VxdWVuY2Ugb2YgYWN0aW9u cyB3aGljaCBzaG91bGQgYmUgcGVyZm9ybWVkIHdoZW4gdGhlIAo+PiBlcnJvciBvY2N1cnMsIG5v IG1vcmUgbm8gbGVzcy4gVGhpcyBpcyBob3cgSSB1bmRlcnN0YW5kIHRoaXMuCj4KPiBJZiB5b3Ug aGF2ZSB0byBmbHVzaCB0aGUgVExCcyBpbiB0aGUgSVJRIGNvbnRleHQgdGhlbiBzb21ldGhpbmcg aGFzIAo+IGdvbmUgcmVhbGx5IHdyb25nLgo+Cj4gSSBkb24ndCBkZW55IHRoYXQgQnJlYWstQmVm b3JlLU1ha2UgaXMgYW4gaXNzdWUuIEhvd2V2ZXIsIGlmIGl0IGlzIAo+IGhhbmRsZWQgY29ycmVj dGx5IGluIHRoZSBQMk0gY29kZS4gWW91IHNob3VsZCBvbmx5IGJlIHRoZXJlIGJlY2F1c2UgCj4g dGhlcmUgYXJlIG5vIG1hcHBpbmcgaW4gdGhlIFRMQnMgZm9yIHRoZSBhZGRyZXNzIGFjY2Vzc2Vk LiBTbyBmbHVzaGluZyAKPiB0aGUgVExCcyBzaG91bGQgYmUgdW5uZWNlc3NhcnksIHVubGVzcyB5 b3VyIFRMQiBpcyBhbHNvIGNhY2hpbmcgCj4gaW52YWxpZCBlbnRyeT8KClNvcnJ5LCBJIGRvbid0 IHF1aXRlIHVuZGVyc3RhbmQgd2h5IHdlIG5lZWQgdG8gd29ycnkgYWJvdXQgdGhpcyBmbHVzaCAK dG9vIG11Y2ggZm9yIGEgY2FzZSB3aGljaCB3b24ndCBvY2N1ciBpbiBub3JtYWwgY29uZGl0aW9u IChpZiBldmVyeXRoaW5nIAppcyBjb3JyZWN0KS4gV2h5IHdlIGNhbid0IGp1c3QgY29uc2lkZXIg dGhpcyBmbHVzaCBhcyBhIHJlcXVpcmVkIGFjdGlvbiwgCndoaWNoIG5lZWRlZCB0byBleGl0IGZy b20gdGhlIGVycm9yIHN0YXRlIGFuZCByZXN1bWUgc3RvcHBlZCBhZGRyZXNzIAp0cmFuc2xhdGlv biByZXF1ZXN0LiBUaGUgc2FtZSByZXF1aXJlZCBhY3Rpb24gYXMgImNsZWFyaW5nIGVycm9yIHN0 YXR1cyAKZmxhZ3MiIGJlZm9yZS4gV2UgYXJlIG5vdCB0cnlpbmcgdG8gdW5kZXJzdGFuZCwgd2h5 IGlzIGl0IHNvIG5lY2Vzc2FyeSAKdG8gY2xlYXIgZXJyb3IgZmxhZ3Mgd2hlbiBlcnJvciBoYXBw ZW5zLCBvciBjYW4gd2UgZW5kIHVwIHdpdGhvdXQgCmNsZWFyaW5nIGl0LCBmb3IgZXhhbXBsZS4g V2UganVzdCBmb2xsb3cgd2hhdCBkZXNjcmliZWQgaW4gZG9jdW1lbnQuIFRoZSAKc2FtZSwgSSB0 aGluaywgd2UgaGF2ZSBmb3IgdGhhdCBmbHVzaCwgaWYgZGVzY3JpYmVkLCB0aGVuIHNob3VsZCBi ZSAKZm9sbG93ZWQuIExvb2tzIGxpa2UgdGhpcyBmbHVzaCBhY3RzIGFzIGEgdHJpZ2dlciB0byB1 bmJsb2NrIHN0b3BwZWQgCnRyYW5zYWN0aW9uIGluIHRoYXQgcGFydGljdWxhciBjYXNlLgoKRGlm ZmVyZW50IEgvVyBjb3VsZCBoYXZlIGRpZmZlcmVudCByZXN0b3Jpbmcgc2VxdWVuY2VzLiBTb21l IEgvVyAKcmVxdWlyZXMganVzdCBjbGVhcmluZyBlcnJvciBzdGF0dXMsIG90aGVyIEgvVyByZXF1 aXJlcyBmdWxsIApyZS1pbml0aWFsaXphdGlvbiBpbiBhIHNwZWNpZmljIG9yZGVyIHRvIHJlY292 ZXIgZnJvbSB0aGUgZXJyb3Igc3RhdGUuCgpQbGVhc2UgY29ycmVjdCBtZSBpZiBJIGFtIHdyb25n LgoKPgo+Pj4KPj4+Pgo+Pj4+IEJ1dCwgd2l0aCBvbmUgcmVtYXJrLCBhcyB5b3UgaGF2ZSBhbHJl YWR5IG5vdGVkLCB3ZSBhcmUgbm90IHRyeWluZyAKPj4+PiB0byBoYW5kbGUvZml4IHRoaXMgZmF1 bHQgKHVwZGF0ZSBwYWdlIHRhYmxlIGVudHJpZXMpLCBkcml2ZXIgCj4+Pj4gZG9lc24ndCBtYW5h Z2UgcGFnZSB0YWJsZSBhbmQgaXMgbm90IGF3YXJlIHdoYXQgdGhlIHBhZ2UgdGFibGUgaXMuIAo+ Pj4+IFdoYXQgaXMgbW9yZSwgaXQgaXMgdW5jbGVhciB3aGF0IGFjdHVhbGx5IG5lZWQgdG8gYmUg Zml4ZWQgaW4gdGhlIAo+Pj4+IHBhZ2UgdGFibGUgd2hpY2ggaXMgYSBDUFUgcGFnZSB0YWJsZSBh cyB0aGUgc2FtZSB0aW1lLgo+Pj4+Cj4+Pj4gSSBoYXZlIGhlYXJkIHRoZXJlIGlzIGEgYnJlYWst YmVmb3JlLW1ha2Ugc2VxdWVuY2Ugd2hlbiB1cGRhdGluZyAKPj4+PiB0aGUgcGFnZSB0YWJsZS4g U28sIGlmIGRldmljZSBpbiBhIGRvbWFpbiBpcyBpc3N1aW5nIERNQSBzb21ld2hlcmUgCj4+Pj4g aW4gdGhlIG1pZGRsZSBvZiB1cGRhdGluZyBhIHBhZ2UgdGFibGUsIHRoZW9yZXRpY2FsbHksIHdl IG1pZ2h0IGhpdCAKPj4+PiBpbnRvIHRoaXMgZmF1bHQuIEluIHRoaXMgY2FzZSB0aGUgcGFnZSB0 YWJsZSBpcyBjb3JyZWN0IGFuZCB3ZSAKPj4+PiBkb24ndCBuZWVkIHRvIGZpeCBhbnl0aGluZy4u LiDCoCBCZWluZyBob25lc3QsIEkgaGF2ZSBuZXZlciBzZWVuIGEgCj4+Pj4gZmF1bHQgY2F1c2Vk IGJ5IGJyZWFrLWJlZm9yZS1tYWtlIHNlcXVlbmNlLgo+Pj4KPj4+IE9rLCBzbyBpdCBsb29rcyBs aWtlIHlvdSBhcmUgdHJ5aW5nIHRvIGZpeCBbMV0uIE15IGZpcnN0IGNvbmNlcm4gCj4+PiBoZXJl IGlzIHRoZXJlIGFyZSBubyBncm91bmQgZm9yIHNvbWVvbmUgd2l0aG91dCBhY2Nlc3MgdG8gdGhl IFRSTSAKPj4+IHdoeSB0aGlzIGlzIGRvbmUuCj4+Cj4+IE5vLCBJIGFtIGRlZmluaXRlbHkgbm90 IHRyeWluZyB0byBmaXggWzFdLiBJIGp1c3QgZm9sbG93IHRoZSBCU1AgCj4+IGRyaXZlciBJIGFt IGJhc2VkIG9uLCB3aGljaCBpbiB0dXJuIGZvbGxvd3MgdGhlIFRSTS4gSSBjYW4gZXh0ZW5kIGEg Cj4+IGNvbW1lbnQgaW4gdGhlIGNvZGUgYmVmb3JlIGNhbGxpbmcgaXBtbXVfdGxiX2ludmFsaWRh dGUoKS4KPgo+IFRoZSBmYWN0IHRoYXQgdGhlIGNvZGUgaXMgaW4gdGhlIEJTUCBhbmQgbm90IGlu IExpbnV4IGlzIHdvcnJ5aW5nIG1lLiAKPiBUaGUgY29tbWl0IG1lc3NhZ2UgaW4gdGhlIEJTUCBp cyBxdWl0ZSB1bmhlbHBmdWwgdG8gZGV0ZXJtaW5lIHRoZSAKPiBleGFjdCByZWFzb24uCj4KPiBJ dCBlaXRoZXIgbWVhbnMgTGludXggcmVqZWN0ZWQgdGhlIHBhdGNoIG9yIHRoaXMgd2FzIG5vdCBz dWJtaXR0ZWQuIAo+IEVpdGhlciB3YXksIHRoaXMgc2hvdWxkIGJlIHVuZGVyc3Rvb2Qgd2h5IHN1 Y2ggZGlzY3JlcGFuY3kuCgpJIGZhaWxlZCB0byBmaW5kIHNvbWV0aGluZyBzaW1pbGFyIGluIHRo ZSBNTC4gU28sIHByb2JhYmx5LCB3YXMgbm90IApzdWJtaXR0ZWQuIEhvcGUsIHdlIHdpbGwgYmUg YWJsZSB0byBjbGFyaWZ5IGEgcmVhc29uLgoKCi0tIApSZWdhcmRzLAoKT2xla3NhbmRyIFR5c2hj aGVua28KCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRw czovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs