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=-16.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,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 50D10C49EAF for ; Mon, 28 Jun 2021 04:35:44 +0000 (UTC) Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (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 EE4D1619AD for ; Mon, 28 Jun 2021 04:35:43 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EE4D1619AD Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=iommu-bounces@lists.linux-foundation.org Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 8681582F84; Mon, 28 Jun 2021 04:35:43 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LKinBf8zUPS3; Mon, 28 Jun 2021 04:35:42 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp1.osuosl.org (Postfix) with ESMTPS id D758B82F9E; Mon, 28 Jun 2021 04:35:41 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 0E18CC0026; Mon, 28 Jun 2021 04:35:41 +0000 (UTC) Received: from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138]) by lists.linuxfoundation.org (Postfix) with ESMTP id 44C75C000E for ; Mon, 28 Jun 2021 04:35:40 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 3353882D07 for ; Mon, 28 Jun 2021 04:35:40 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id iE5DqPL4Fb_r for ; Mon, 28 Jun 2021 04:35:37 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by smtp1.osuosl.org (Postfix) with ESMTPS id 6380982F57 for ; Mon, 28 Jun 2021 04:35:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1624854935; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=mnTDFtsoSEiMYILuCVO1PH8F5a59UkbYZZKoDIAh+I8=; b=NZ+70ihgjZWZSnn0yzzvhJ+MzpU4DWBSdNUU4jMX41yPNnUWYM69sj0gjWg/9WiFMcZKaB o25SJQcPq0pFQ+xYEkBMc8BmxTKgBgbAhsUMVv/Infuy8LFxa/Y01dLWPY86DLo2KuouVk vgnakbgyWtvzuZx3/m4qzFRSPyVbvJQ= Received: from mail-pf1-f198.google.com (mail-pf1-f198.google.com [209.85.210.198]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-508-ZwX2pyOzNcit6Y04H_Mhmw-1; Mon, 28 Jun 2021 00:35:33 -0400 X-MC-Unique: ZwX2pyOzNcit6Y04H_Mhmw-1 Received: by mail-pf1-f198.google.com with SMTP id h6-20020a056a001a46b029030cacfca7bdso624857pfv.13 for ; Sun, 27 Jun 2021 21:35:33 -0700 (PDT) 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=mnTDFtsoSEiMYILuCVO1PH8F5a59UkbYZZKoDIAh+I8=; b=WaHMA+9R8DFCaTwImce8UAbI3MsIEbPNi79l2fWKk3kMA0s8NgRwYpMaLkAC/JAVNm I6i8fZwmm16JENny6AhHoTGTJKeO18D+YPDcZja58VEcoPHChM0o28b+DCp0/wua5YB8 u7sZChmsxtl9L7sAzvkk3hraogo3ktLxefAxQFUnDpOuN3E+HJtysVs+z0SggRXlte3H quOICzUDqHNyyJ6nRqoqd/GzevfzJ9c00knVD7UoBHbFaNKyt69LgcRzqKGbNBxv0/5f JSL2nU4W/vdX9FoRp2RQcmLpK9VA6ppFd53F1WKplajQ3hNjqsXkr1xxtBJmbEZlju6z MoGQ== X-Gm-Message-State: AOAM532kWT0wjYe939xU6lkebcr8AcUa6s8UQLcyP7BjyzvM4Tn22m96 xMkWn1pwHs4l87Lj+BPrsjLevwdTbnyKJgm8BmJQZeR3LETdJBaOn+YW0P84iaPBQfpehFXgUG1 L8T6U0LgrvvcinDoYzyhNCvL2uUrnKA== X-Received: by 2002:a17:902:7103:b029:124:72fd:fbd1 with SMTP id a3-20020a1709027103b029012472fdfbd1mr21345313pll.64.1624854932175; Sun, 27 Jun 2021 21:35:32 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx52zTA6pmge2S10uyiK3pEuGZ+MqwPtRdFfD6S42HxmdgC7sLtwit/u9sNWEF4grCOA9w1Iw== X-Received: by 2002:a17:902:7103:b029:124:72fd:fbd1 with SMTP id a3-20020a1709027103b029012472fdfbd1mr21345275pll.64.1624854931785; Sun, 27 Jun 2021 21:35:31 -0700 (PDT) Received: from wangxiaodeMacBook-Air.local ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id lt14sm12902157pjb.47.2021.06.27.21.35.24 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 27 Jun 2021 21:35:31 -0700 (PDT) Subject: Re: [PATCH v8 00/10] Introduce VDUSE - vDPA Device in Userspace To: Liu Xiaodong , Xie Yongji , mst@redhat.com, stefanha@redhat.com, sgarzare@redhat.com, parav@nvidia.com, hch@infradead.org, christian.brauner@canonical.com, rdunlap@infradead.org, willy@infradead.org, viro@zeniv.linux.org.uk, axboe@kernel.dk, bcrl@kvack.org, corbet@lwn.net, mika.penttila@nextfour.com, dan.carpenter@oracle.com, joro@8bytes.org, gregkh@linuxfoundation.org References: <20210615141331.407-1-xieyongji@bytedance.com> <20210628103309.GA205554@storage2.sh.intel.com> From: Jason Wang Message-ID: Date: Mon, 28 Jun 2021 12:35:06 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <20210628103309.GA205554@storage2.sh.intel.com> Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=jasowang@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Cc: kvm@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, virtualization@lists.linux-foundation.org, iommu@lists.linux-foundation.org, songmuchun@bytedance.com, linux-fsdevel@vger.kernel.org X-BeenThere: iommu@lists.linux-foundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Development issues for Linux IOMMU support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="gbk"; Format="flowed" Errors-To: iommu-bounces@lists.linux-foundation.org Sender: "iommu" CtTaIDIwMjEvNi8yOCDPws7nNjozMywgTGl1IFhpYW9kb25nINC0tcA6Cj4gT24gVHVlLCBKdW4g MTUsIDIwMjEgYXQgMTA6MTM6MjFQTSArMDgwMCwgWGllIFlvbmdqaSB3cm90ZToKPj4gVGhpcyBz ZXJpZXMgaW50cm9kdWNlcyBhIGZyYW1ld29yayB0aGF0IG1ha2VzIGl0IHBvc3NpYmxlIHRvIGlt cGxlbWVudAo+PiBzb2Z0d2FyZS1lbXVsYXRlZCB2RFBBIGRldmljZXMgaW4gdXNlcnNwYWNlLiBB bmQgdG8gbWFrZSBpdCBzaW1wbGUsIHRoZQo+PiBlbXVsYXRlZCB2RFBBIGRldmljZSdzIGNvbnRy b2wgcGF0aCBpcyBoYW5kbGVkIGluIHRoZSBrZXJuZWwgYW5kIG9ubHkgdGhlCj4+IGRhdGEgcGF0 aCBpcyBpbXBsZW1lbnRlZCBpbiB0aGUgdXNlcnNwYWNlLgo+Pgo+PiBTaW5jZSB0aGUgZW11bGRh dGVkIHZEUEEgZGV2aWNlJ3MgY29udHJvbCBwYXRoIGlzIGhhbmRsZWQgaW4gdGhlIGtlcm5lbCwK Pj4gYSBtZXNzYWdlIG1lY2huaXNtIGlzIGludHJvZHVjZWQgdG8gbWFrZSB1c2Vyc3BhY2UgYmUg YXdhcmUgb2YgdGhlIGRhdGEKPj4gcGF0aCByZWxhdGVkIGNoYW5nZXMuIFVzZXJzcGFjZSBjYW4g dXNlIHJlYWQoKS93cml0ZSgpIHRvIHJlY2VpdmUvcmVwbHkKPj4gdGhlIGNvbnRyb2wgbWVzc2Fn ZXMuCj4+Cj4+IEluIHRoZSBkYXRhIHBhdGgsIHRoZSBjb3JlIGlzIG1hcHBpbmcgZG1hIGJ1ZmZl ciBpbnRvIFZEVVNFIGRhZW1vbidzCj4+IGFkZHJlc3Mgc3BhY2UsIHdoaWNoIGNhbiBiZSBpbXBs ZW1lbnRlZCBpbiBkaWZmZXJlbnQgd2F5cyBkZXBlbmRpbmcgb24KPj4gdGhlIHZkcGEgYnVzIHRv IHdoaWNoIHRoZSB2RFBBIGRldmljZSBpcyBhdHRhY2hlZC4KPj4KPj4gSW4gdmlydGlvLXZkcGEg Y2FzZSwgd2UgaW1wbGVtZW50cyBhIE1NVS1iYXNlZCBvbi1jaGlwIElPTU1VIGRyaXZlciB3aXRo Cj4+IGJvdW5jZS1idWZmZXJpbmcgbWVjaGFuaXNtIHRvIGFjaGlldmUgdGhhdC4gQW5kIGluIHZo b3N0LXZkcGEgY2FzZSwgdGhlIGRtYQo+PiBidWZmZXIgaXMgcmVzaWRlIGluIGEgdXNlcnNwYWNl IG1lbW9yeSByZWdpb24gd2hpY2ggY2FuIGJlIHNoYXJlZCB0byB0aGUKPj4gVkRVU0UgdXNlcnNw YWNlIHByb2Nlc3NzIHZpYSB0cmFuc2ZlcnJpbmcgdGhlIHNobWZkLgo+Pgo+PiBUaGUgZGV0YWls cyBhbmQgb3VyIHVzZXIgY2FzZSBpcyBzaG93biBiZWxvdzoKPj4KPj4gLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IHwgICAgICAgICAgICBDb250YWluZXIg fCAgICB8ICAgICAgICAgICAgICBRRU1VKFZNKSB8ICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBWRFVTRSBkYWVtb24gfAo+PiB8ICAgICAgIC0tLS0tLS0tLSAgICAgIHwgICAgfCAg LS0tLS0tLS0tLS0tLS0tLS0tLSAgfCAgIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAtLS0t LS0tLS0tLS0tLS0tIHwKPj4gfCAgICAgICB8ZGV2L3ZkeHwgICAgICB8ICAgIHwgIHwvZGV2L3Zo b3N0LXZkcGEteHwgIHwgICB8IHwgdkRQQSBkZXZpY2UgZW11bGF0aW9uIHwgfCBibG9jayBkcml2 ZXIgfCB8Cj4+IC0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSAgICAgLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tICAgLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQo+ PiAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8Cj4+ICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgIHwKPj4gLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tCj4+IHwgICAgfCBibG9jayBkZXZpY2UgfCAgICAgICAgICAgfCAgdmhv c3QgZGV2aWNlIHwgICAgICAgICAgICB8IHZkdXNlIGRyaXZlciB8ICAgICAgICAgIHwgVENQL0lQ IHwgICAgfAo+PiB8ICAgIC0tLS0tLS0rLS0tLS0tLS0gICAgICAgICAgIC0tLS0tLS0tKy0tLS0t LS0tICAgICAgICAgICAgLS0tLS0tLSstLS0tLS0tLSAgICAgICAgICAtLS0tLSstLS0tICAgIHwK Pj4gfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICB8Cj4+IHwgLS0t LS0tLS0tLSstLS0tLS0tLS0tICAgICAgIC0tLS0tLS0tLS0rLS0tLS0tLS0tLS0gICAgICAgICAt LS0tLS0tKy0tLS0tLS0gICAgICAgICAgICAgICAgfCAgICAgICAgfAo+PiB8IHwgdmlydGlvLWJs ayBkcml2ZXIgfCAgICAgICB8ICB2aG9zdC12ZHBhIGRyaXZlciB8ICAgICAgICAgfCB2ZHBhIGRl dmljZSB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwKPj4gfCAtLS0tLS0tLS0tKy0tLS0tLS0t LS0gICAgICAgLS0tLS0tLS0tLSstLS0tLS0tLS0tLSAgICAgICAgIC0tLS0tLS0rLS0tLS0tLSAg ICAgICAgICAgICAgICB8ICAgICAgICB8Cj4+IHwgICAgICAgICAgIHwgICAgICB2aXJ0aW8gYnVz ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgfAo+PiB8ICAgLS0tLS0tLS0rLS0tLSstLS0tLS0tLS0tLSAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgIHwKPj4gfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICB8 Cj4+IHwgICAgICAtLS0tLS0tLS0tKy0tLS0tLS0tLS0gICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgfAo+PiB8ICAg ICAgfCB2aXJ0aW8tYmxrIGRldmljZSB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgIHwKPj4gfCAgICAgIC0tLS0t LS0tLS0rLS0tLS0tLS0tLSAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICB8Cj4+IHwgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgfAo+PiB8ICAgICAtLS0tLS0tLS0tLSstLS0tLS0tLS0t LSAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgIHwKPj4gfCAgICAgfCAgdmlydGlvLXZkcGEgZHJpdmVyIHwgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICB8Cj4+IHwgICAgIC0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg fAo+PiB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgdmRwYSBidXMgICAgICAgICAgIHwgICAgICAgIHwKPj4gfCAg ICAgLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tICAgICAgICAgICB8ICAgICAgICB8Cj4+IHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLS0tKy0tLSAgICAgfAo+PiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLXwgTklDIHwtLS0tLS0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLS0tKy0tLQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLS0tLS0tLSstLS0tLS0tLS0KPj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCBSZW1vdGUgU3RvcmFnZXMgfAo+PiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tCj4+Cj4+IFdlIG1ha2UgdXNlIG9mIGl0 IHRvIGltcGxlbWVudCBhIGJsb2NrIGRldmljZSBjb25uZWN0aW5nIHRvCj4+IG91ciBkaXN0cmli dXRlZCBzdG9yYWdlLCB3aGljaCBjYW4gYmUgdXNlZCBib3RoIGluIGNvbnRhaW5lcnMgYW5kCj4+ IFZNcy4gVGh1cywgd2UgY2FuIGhhdmUgYW4gdW5pZmllZCB0ZWNobm9sb2d5IHN0YWNrIGluIHRo aXMgdHdvIGNhc2VzLgo+Pgo+PiBUbyB0ZXN0IGl0IHdpdGggbnVsbC1ibGs6Cj4+Cj4+ICAgICQg cWVtdS1zdG9yYWdlLWRhZW1vbiBcCj4+ICAgICAgICAtLWNoYXJkZXYgc29ja2V0LGlkPWNoYXJt b25pdG9yLHBhdGg9L3RtcC9xbXAuc29jayxzZXJ2ZXIsbm93YWl0IFwKPj4gICAgICAgIC0tbW9u aXRvciBjaGFyZGV2PWNoYXJtb25pdG9yIFwKPj4gICAgICAgIC0tYmxvY2tkZXYgZHJpdmVyPWhv c3RfZGV2aWNlLGNhY2hlLmRpcmVjdD1vbixhaW89bmF0aXZlLGZpbGVuYW1lPS9kZXYvbnVsbGIw LG5vZGUtbmFtZT1kaXNrMCBcCj4+ICAgICAgICAtLWV4cG9ydCB0eXBlPXZkdXNlLWJsayxpZD10 ZXN0LG5vZGUtbmFtZT1kaXNrMCx3cml0YWJsZT1vbixuYW1lPXZkdXNlLW51bGwsbnVtLXF1ZXVl cz0xNixxdWV1ZS1zaXplPTEyOAo+Pgo+PiBUaGUgcWVtdS1zdG9yYWdlLWRhZW1vbiBjYW4gYmUg Zm91bmQgYXQgaHR0cHM6Ly9naXRodWIuY29tL2J5dGVkYW5jZS9xZW11L3RyZWUvdmR1c2UKPj4K Pj4gVG8gbWFrZSB0aGUgdXNlcnNwYWNlIFZEVVNFIHByb2Nlc3NlcyBzdWNoIGFzIHFlbXUtc3Rv cmFnZS1kYWVtb24gYWJsZSB0bwo+PiBiZSBydW4gYnkgYW4gdW5wcml2aWxlZ2VkIHVzZXIuIFdl IGRpZCBzb21lIHdvcmtzIG9uIHZpcnRpbyBkcml2ZXIgdG8gYXZvaWQKPj4gdHJ1c3RpbmcgZGV2 aWNlLCBpbmNsdWRpbmc6Cj4+Cj4+ICAgIC0gdmFsaWRhdGluZyB0aGUgdXNlZCBsZW5ndGg6Cj4+ Cj4+ICAgICAgKiBodHRwczovL2xvcmUua2VybmVsLm9yZy9sa21sLzIwMjEwNTMxMTM1ODUyLjEx My0xLXhpZXlvbmdqaUBieXRlZGFuY2UuY29tLwo+PiAgICAgICogaHR0cHM6Ly9sb3JlLmtlcm5l bC5vcmcvbGttbC8yMDIxMDUyNTEyNTYyMi4xMjAzLTEteGlleW9uZ2ppQGJ5dGVkYW5jZS5jb20v Cj4+Cj4+ICAgIC0gdmFsaWRhdGluZyB0aGUgZGV2aWNlIGNvbmZpZzoKPj4KPj4gICAgICAqIGh0 dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xrbWwvMjAyMTA2MTUxMDQ4MTAuMTUxLTEteGlleW9uZ2pp QGJ5dGVkYW5jZS5jb20vCj4+Cj4+ICAgIC0gdmFsaWRhdGluZyB0aGUgZGV2aWNlIHJlc3BvbnNl Ogo+Pgo+PiAgICAgICogaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGttbC8yMDIxMDYxNTEwNTIx OC4yMTQtMS14aWV5b25namlAYnl0ZWRhbmNlLmNvbS8KPj4KPj4gU2luY2UgSSdtIG5vdCBzdXJl IGlmIEkgbWlzc2luZyBzb21ldGhpbmcgZHVyaW5nIGF1ZGl0aW5nLCBlc3BlY2lhbGx5IG9uIHNv bWUKPj4gdmlydGlvIGRldmljZSBkcml2ZXJzIHRoYXQgSSdtIG5vdCBmYW1pbGlhciB3aXRoLCB3 ZSBsaW1pdCB0aGUgc3VwcG9ydGVkIGRldmljZQo+PiB0eXBlIHRvIHZpcnRpbyBibG9jayBkZXZp Y2UgY3VycmVudGx5LiBUaGUgc3VwcG9ydCBmb3Igb3RoZXIgZGV2aWNlIHR5cGVzIGNhbiBiZQo+ PiBhZGRlZCBhZnRlciB0aGUgc2VjdXJpdHkgaXNzdWUgb2YgY29ycmVzcG9uZGluZyBkZXZpY2Ug ZHJpdmVyIGlzIGNsYXJpZmllZCBvcgo+PiBmaXhlZCBpbiB0aGUgZnV0dXJlLgo+Pgo+PiBGdXR1 cmUgd29yazoKPj4gICAgLSBJbXByb3ZlIHBlcmZvcm1hbmNlCj4+ICAgIC0gVXNlcnNwYWNlIGxp YnJhcnkgKGZpbmQgYSB3YXkgdG8gcmV1c2UgZGV2aWNlIGVtdWxhdGlvbiBjb2RlIGluIHFlbXUv cnVzdC12bW0pCj4+ICAgIC0gU3VwcG9ydCBtb3JlIGRldmljZSB0eXBlcwo+Pgo+PiBWNyB0byBW ODoKPj4gLSBSZWJhc2VkIHRvIG5ld2VzdCBrZXJuZWwgdHJlZQo+PiAtIFJld29yayBWRFVTRSBk cml2ZXIgdG8gaGFuZGxlIHRoZSBkZXZpY2UncyBjb250cm9sIHBhdGggaW4ga2VybmVsCj4+IC0g TGltaXQgdGhlIHN1cHBvcnRlZCBkZXZpY2UgdHlwZSB0byB2aXJ0aW8gYmxvY2sgZGV2aWNlCj4+ IC0gRXhwb3J0IGZyZWVfaW92YV9mYXN0KCkKPj4gLSBSZW1vdmUgdGhlIHZpcnRpby1ibGsgYW5k IHZpcnRpby1zY3NpIHBhdGNoZXMgKHdpbGwgc2VuZCB0aGVtIGFsb25lKQo+PiAtIFJlbW92ZSBh bGwgbW9kdWxlIHBhcmFtZXRlcnMKPj4gLSBVc2UgdGhlIHNhbWUgTUFKT1IgZm9yIGJvdGggY29u dHJvbCBkZXZpY2UgYW5kIFZEVVNFIGRldmljZXMKPj4gLSBBdm9pZCBldmVudGZkIGNsZWFudXAg aW4gdmR1c2VfZGV2X3JlbGVhc2UoKQo+Pgo+PiBWNiB0byBWNzoKPj4gLSBFeHBvcnQgYWxsb2Nf aW92YV9mYXN0KCkKPj4gLSBBZGQgZ2V0X2NvbmZpZ19zaXplKCkgY2FsbGJhY2sKPj4gLSBBZGQg c29tZSBwYXRjaGVzIHRvIGF2b2lkIHRydXN0aW5nIHZpcnRpbyBkZXZpY2VzCj4+IC0gQWRkIGxp bWl0ZWQgZGV2aWNlIGVtdWxhdGlvbgo+PiAtIEFkZCBzb21lIGRvY3VtZW50cwo+PiAtIFVzZSB3 b3JrcXVldWUgdG8gaW5qZWN0IGNvbmZpZyBpcnEKPj4gLSBBZGQgcGFyYW1ldGVyIG9uIHZxIGly cSBpbmplY3RpbmcKPj4gLSBSZW5hbWUgdmR1c2VfZG9tYWluX2dldF9tYXBwaW5nX3BhZ2UoKSB0 byB2ZHVzZV9kb21haW5fZ2V0X2NvaGVyZW50X3BhZ2UoKQo+PiAtIEFkZCBXQVJOX09OKCkgdG8g Y2F0Y2ggbWVzc2FnZSBmYWlsdXJlCj4+IC0gQWRkIHNvbWUgcGFkZGluZy9yZXNlcnZlZCBmaWVs ZHMgdG8gdUFQSSBzdHJ1Y3R1cmUKPj4gLSBGaXggc29tZSBidWdzCj4+IC0gUmViYXNlIHRvIHZo b3N0LmdpdAo+Pgo+PiBWNSB0byBWNjoKPj4gLSBFeHBvcnQgcmVjZWl2ZV9mZCgpIGluc3RlYWQg b2YgX19yZWNlaXZlX2ZkKCkKPj4gLSBGYWN0b3Igb3V0IHRoZSB1bm1hcHBpbmcgbG9naWMgb2Yg cGEgYW5kIHZhIHNlcGFyYXRlZGx5Cj4+IC0gUmVtb3ZlIHRoZSBsb2dpYyBvZiBib3VuY2UgcGFn ZSBhbGxvY2F0aW9uIGluIHBhZ2UgZmF1bHQgaGFuZGxlcgo+PiAtIFVzZSBQQUdFX1NJWkUgYXMg SU9WQSBhbGxvY2F0aW9uIGdyYW51bGUKPj4gLSBBZGQgRVBPTExPVVQgc3VwcG9ydAo+PiAtIEVu YWJsZSBzZXR0aW5nIEFQSSB2ZXJzaW9uIGluIHVzZXJzcGFjZQo+PiAtIEZpeCBzb21lIGJ1Z3MK Pj4KPj4gVjQgdG8gVjU6Cj4+IC0gUmVtb3ZlIHRoZSBwYXRjaCBmb3IgaXJxIGJpbmRpbmcKPj4g LSBVc2UgYSBzaW5nbGUgSU9UTEIgZm9yIGFsbCB0eXBlcyBvZiBtYXBwaW5nCj4+IC0gRmFjdG9y IG91dCB2aG9zdF92ZHBhX3BhX21hcCgpCj4+IC0gQWRkIHNvbWUgc2FtcGxlIGNvZGVzIGluIGRv Y3VtZW50Cj4+IC0gVXNlIHJlY2VpY2VfZmRfdXNlcigpIHRvIHBhc3MgZmlsZSBkZXNjcmlwdG9y Cj4+IC0gRml4IHNvbWUgYnVncwo+Pgo+PiBWMyB0byBWNDoKPj4gLSBSZWJhc2UgdG8gdmhvc3Qu Z2l0Cj4+IC0gU3BsaXQgc29tZSBwYXRjaGVzCj4+IC0gQWRkIHNvbWUgZG9jdW1lbnRzCj4+IC0g VXNlIGlvY3RsIHRvIGluamVjdCBpbnRlcnJ1cHQgcmF0aGVyIHRoYW4gZXZlbnRmZAo+PiAtIEVu YWJsZSBjb25maWcgaW50ZXJydXB0IHN1cHBvcnQKPj4gLSBTdXBwb3J0IGJpbmRpbmcgaXJxIHRv IHRoZSBzcGVjaWZpZWQgY3B1Cj4+IC0gQWRkIHR3byBtb2R1bGUgcGFyYW1ldGVyIHRvIGxpbWl0 IGJvdW5jZS9pb3ZhIHNpemUKPj4gLSBDcmVhdGUgY2hhciBkZXZpY2UgcmF0aGVyIHRoYW4gYW5v biBpbm9kZSBwZXIgdmR1c2UKPj4gLSBSZXVzZSB2aG9zdCBJT1RMQiBmb3IgaW92YSBkb21haW4K Pj4gLSBSZXdvcmsgdGhlIG1lc3NhZ2UgbWVjaG5pc20gaW4gY29udHJvbCBwYXRoCj4+Cj4+IFYy IHRvIFYzOgo+PiAtIFJld29yayB0aGUgTU1VLWJhc2VkIElPTU1VIGRyaXZlcgo+PiAtIFVzZSB0 aGUgaW92YSBkb21haW4gYXMgaW92YSBhbGxvY2F0b3IgaW5zdGVhZCBvZiBnZW5wb29sCj4+IC0g U3VwcG9ydCB0cmFuc2ZlcnJpbmcgdm1hLT52bV9maWxlIGluIHZob3N0LXZkcGEKPj4gLSBBZGQg U1ZBIHN1cHBvcnQgaW4gdmhvc3QtdmRwYQo+PiAtIFJlbW92ZSB0aGUgcGF0Y2hlcyBvbiBib3Vu Y2UgcGFnZXMgcmVjbGFpbQo+Pgo+PiBWMSB0byBWMjoKPj4gLSBBZGQgdmhvc3QtdmRwYSBzdXBw b3J0Cj4+IC0gQWRkIHNvbWUgZG9jdW1lbnRzCj4+IC0gQmFzZWQgb24gdGhlIHZkcGEgbWFuYWdl bWVudCB0b29sCj4+IC0gSW50cm9kdWNlIGEgd29ya3F1ZXVlIGZvciBpcnEgaW5qZWN0aW9uCj4+ IC0gUmVwbGFjZSBpbnRlcnZhbCB0cmVlIHdpdGggYXJyYXkgbWFwIHRvIHN0b3JlIHRoZSBpb3Zh X21hcAo+Pgo+PiBYaWUgWW9uZ2ppICgxMCk6Cj4+ICAgIGlvdmE6IEV4cG9ydCBhbGxvY19pb3Zh X2Zhc3QoKSBhbmQgZnJlZV9pb3ZhX2Zhc3QoKTsKPj4gICAgZmlsZTogRXhwb3J0IHJlY2VpdmVf ZmQoKSB0byBtb2R1bGVzCj4+ICAgIGV2ZW50ZmQ6IEluY3JlYXNlIHRoZSByZWN1cnNpb24gZGVw dGggb2YgZXZlbnRmZF9zaWduYWwoKQo+PiAgICB2aG9zdC1pb3RsYjogQWRkIGFuIG9wYXF1ZSBw b2ludGVyIGZvciB2aG9zdCBJT1RMQgo+PiAgICB2ZHBhOiBBZGQgYW4gb3BhcXVlIHBvaW50ZXIg Zm9yIHZkcGFfY29uZmlnX29wcy5kbWFfbWFwKCkKPj4gICAgdmRwYTogZmFjdG9yIG91dCB2aG9z dF92ZHBhX3BhX21hcCgpIGFuZCB2aG9zdF92ZHBhX3BhX3VubWFwKCkKPj4gICAgdmRwYTogU3Vw cG9ydCB0cmFuc2ZlcnJpbmcgdmlydHVhbCBhZGRyZXNzaW5nIGR1cmluZyBETUEgbWFwcGluZwo+ PiAgICB2ZHVzZTogSW1wbGVtZW50IGFuIE1NVS1iYXNlZCBJT01NVSBkcml2ZXIKPj4gICAgdmR1 c2U6IEludHJvZHVjZSBWRFVTRSAtIHZEUEEgRGV2aWNlIGluIFVzZXJzcGFjZQo+PiAgICBEb2N1 bWVudGF0aW9uOiBBZGQgZG9jdW1lbnRhdGlvbiBmb3IgVkRVU0UKPj4KPj4gICBEb2N1bWVudGF0 aW9uL3VzZXJzcGFjZS1hcGkvaW5kZXgucnN0ICAgICAgICAgICAgICB8ICAgIDEgKwo+PiAgIERv Y3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9pb2N0bC9pb2N0bC1udW1iZXIucnN0IHwgICAgMSAr Cj4+ICAgRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL3ZkdXNlLnJzdCAgICAgICAgICAgICAg fCAgMjIyICsrKwo+PiAgIGRyaXZlcnMvaW9tbXUvaW92YS5jICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgMiArCj4+ICAgZHJpdmVycy92ZHBhL0tjb25maWcgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDEwICsKPj4gICBkcml2ZXJzL3ZkcGEvTWFrZWZpbGUgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwo+PiAgIGRyaXZlcnMvdmRwYS9pZmN2 Zi9pZmN2Zl9tYWluLmMgICAgICAgICAgICAgICAgICAgIHwgICAgMiArLQo+PiAgIGRyaXZlcnMv dmRwYS9tbHg1L25ldC9tbHg1X3ZuZXQuYyAgICAgICAgICAgICAgICAgIHwgICAgMiArLQo+PiAg IGRyaXZlcnMvdmRwYS92ZHBhLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg OSArLQo+PiAgIGRyaXZlcnMvdmRwYS92ZHBhX3NpbS92ZHBhX3NpbS5jICAgICAgICAgICAgICAg ICAgIHwgICAgOCArLQo+PiAgIGRyaXZlcnMvdmRwYS92ZHBhX3VzZXIvTWFrZWZpbGUgICAgICAg ICAgICAgICAgICAgIHwgICAgNSArCj4+ICAgZHJpdmVycy92ZHBhL3ZkcGFfdXNlci9pb3ZhX2Rv bWFpbi5jICAgICAgICAgICAgICAgfCAgNTQ1ICsrKysrKysrCj4+ICAgZHJpdmVycy92ZHBhL3Zk cGFfdXNlci9pb3ZhX2RvbWFpbi5oICAgICAgICAgICAgICAgfCAgIDczICsKPj4gICBkcml2ZXJz L3ZkcGEvdmRwYV91c2VyL3ZkdXNlX2Rldi5jICAgICAgICAgICAgICAgICB8IDE0NTMgKysrKysr KysrKysrKysrKysrKysKPj4gICBkcml2ZXJzL3ZkcGEvdmlydGlvX3BjaS92cF92ZHBhLmMgICAg ICAgICAgICAgICAgICB8ICAgIDIgKy0KPj4gICBkcml2ZXJzL3Zob3N0L2lvdGxiLmMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjAgKy0KPj4gICBkcml2ZXJzL3Zob3N0L3ZkcGEu YyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxNDggKy0KPj4gICBmcy9ldmVudGZk LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKy0KPj4gICBm cy9maWxlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYg Kwo+PiAgIGluY2x1ZGUvbGludXgvZXZlbnRmZC5oICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgNSArLQo+PiAgIGluY2x1ZGUvbGludXgvZmlsZS5oICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgNyArLQo+PiAgIGluY2x1ZGUvbGludXgvdmRwYS5oICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAyMSArLQo+PiAgIGluY2x1ZGUvbGludXgvdmhvc3RfaW90 bGIuaCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMyArCj4+ICAgaW5jbHVkZS91YXBpL2xp bnV4L3ZkdXNlLmggICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTQzICsrCj4+ICAgMjQgZmls ZXMgY2hhbmdlZCwgMjY0MSBpbnNlcnRpb25zKCspLCA1MCBkZWxldGlvbnMoLSkKPj4gICBjcmVh dGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL3ZkdXNlLnJzdAo+PiAg IGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3ZkcGEvdmRwYV91c2VyL01ha2VmaWxlCj4+ICAg Y3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvdmRwYS92ZHBhX3VzZXIvaW92YV9kb21haW4uYwo+ PiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3ZkcGEvdmRwYV91c2VyL2lvdmFfZG9tYWlu LmgKPj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy92ZHBhL3ZkcGFfdXNlci92ZHVzZV9k ZXYuYwo+PiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3VhcGkvbGludXgvdmR1c2UuaAo+ Pgo+PiAtLQo+PiAyLjExLjAKPiBIaSwgWW9uZ2ppCj4KPiBHcmVhdCB3b3JrISB5b3VyIG1ldGhv ZCBpcyByZWFsbHkgd2lzZSB0aGF0IGltcGxlbWVudHMgYSBzb2Z0d2FyZSBJT01NVQo+IHNvIHRo YXQgZGF0YSBwYXRoIGdldHMgcHJvY2Vzc2VkIGJ5IHVzZXJzcGFjZSBhcHBsaWNhdGlvbiBlZmZp Y2llbnRseS4KPiBTb3JyeSwgSSd2ZSBqdXN0IHJlYWxpemVkIHlvdXIgd29yayBhbmQgcGF0Y2hl cy4KPgo+Cj4gSSB3YXMgd29ya2luZyBvbiBhIHNpbWlsYXIgdGhpbmcgYWltaW5nIHRvIGdldCB2 aG9zdC11c2VyLWJsayBkZXZpY2UKPiBmcm9tIFNQREsgdmhvc3QtdGFyZ2V0IHRvIGJlIGV4cG9y dGVkIGFzIGxvY2FsIGhvc3Qga2VybmVsIGJsb2NrIGRldmljZS4KPiBJdCdzIGRpYWdyYW0gaXMg bGlrZSB0aGlzOgo+Cj4KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgICAgICAg fCAgICAtLS0tLS0tLS0tLS0tLS0tLSAgICAgIHwgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCj4gfCAgIDxSdW5DIENvbnRhaW5lcj4gICB8ICAgICA8PDw8PDw8PHwg U2hhcmVkLU1lbW9yeSB8Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4g ICAgICAgIHwKPiB8ICAgICAgIC0tLS0tLS0tLSAgICAgIHwgICAgIHYgIHwgICAgLS0tLS0tLS0t LS0tLS0tLS0gICAgICB8ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAgICAgICAg fAo+IHwgICAgICAgfGRldi92ZHh8ICAgICAgfCAgICAgdiAgfCAgIDx2aXJ0aW8tbG9jYWwtYWdl bnQ+ICAgIHwgICAgfCAgICAgIDxWaG9zdC11c2VyIFRhcmdldD4gICB2ICAgICAgICB8Cj4gLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tICAgICB2ICB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAg fCAgICB8ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXYtLS0tLS0gIHwKPiAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICB2ICB8IHwvZGV2L3ZpcnRpby1sb2NhbC1jdHJsfCAgfCAgICB8 ICB8IHVuaXggc29ja2V0IHwgICB8YmxvY2sgZHJpdmVyIHwgIHwKPiAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICB2ICAtLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSAgICAtLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLXYtLS0tLS0tLS0KPiAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICB2ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHYKPiAtLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLXYtLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t di0tLS0tLS0tfAo+IHwgICAgfCBibG9jayBkZXZpY2UgfCAgICAgICAgdiAgICAgIHwgIE1pc2Mg ZGV2aWNlIHwgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB2ICAgICAg ICB8Cj4gfCAgICAtLS0tLS0tKy0tLS0tLS0tICAgICAgICB2ICAgICAgLS0tLS0tLS0rLS0tLS0t LSAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHYgICAgICAgIHwKPiB8 ICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHYgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgdiAgICAgICAgfAo+IHwgLS0tLS0t LS0tLSstLS0tLS0tLS0tICAgICAgdiAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB2ICAgICAgICB8Cj4gfCB8IHZpcnRpby1ibGsg ZHJpdmVyIHwgICAgICB2ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgIHYgICAgICAgIHwKPiB8IC0tLS0tLS0tLS0rLS0tLS0tLS0t LSAgICAgIHYgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgdiAgICAgICAgfAo+IHwgICAgICAgICAgIHwgdmlydGlvIGJ1cyAgICAg diAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICB2ICAgICAgICB8Cj4gfCAgIC0tLS0tLS0tKy0tLSstLS0tLS0tICAgICB2ICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg IHYgICAgICAgIHwKPiB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHYgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgdiAgICAg ICAgfAo+IHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgdiAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB2ICAgICAgICB8Cj4g fCAgICAgLS0tLS0tLS0tLSstLS0tLS0tLS0tICB2ICAgICAtLS0tLS0tLS0rLS0tLS0tLS0tLS0g ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHYgICAgICAgIHwKPiB8ICAgICB8 IHZpcnRpby1ibGsgZGV2aWNlIHwtLTwtLS0tfCB2aXJ0aW8tbG9jYWwgZHJpdmVyIHwtLS0tLS0t LS0tLS0tLS0tPCAgICAgICAgICAgICAgICAgICAgdiAgICAgICAgfAo+IHwgICAgIC0tLS0tLS0t LS0rLS0tLS0tLS0tLSAgICAgICAtLS0tLS0tLS0tKy0tLS0tLS0tLS0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2ICAgICAgICB8Cj4gfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC0tLS0tLS0tLSstLS0tLS0tLXwKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t fCBSTklDIHwtLXwgUENJZSB8LQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tLSst LS0gIHwgTlZNZSB8Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgLS0t LS0tLS0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0tLS0rLS0tLS0tLS0tCj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCBSZW1vdGUgU3RvcmFnZXMgfAo+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0KPgo+Cj4gSSBqdXN0IGRyYWZ0IG91dCBhbiBp bml0aWFsIHByb29mIHZlcnNpb24uIFdoZW4gc2VlaW5nIHlvdXIgUkZDIG1haWwsCj4gSSdtIHRo aW5raW5nIHRoYXQgU1BESyB0YXJnZXQgbWF5IGRlcGVuZHMgb24geW91ciB3b3JrLCBzbyBJIGNv dWxkCj4gZGlyZWN0bHkgZHJvcCBtaW5lLgo+IEJ1dCBhZnRlciBhIGdsYW5jZSBvZiB0aGUgUkZD IHBhdGNoZXMsIHNlZW1zIGl0IGlzIG5vdCBzbyBlYXN5IG9yCj4gZWZmaWNpZW50IHRvIGdldCB2 ZHVzZSBsZXZlcmFnZWQgYnkgU1BESy4KPiAoUGxlYXNlIGNvcnJlY3QgbWUsIGlmIEkgZ2V0IHdy b25nIHVuZGVyc3RhbmRpbmcgb24gdmR1c2UuIDopICkKPgo+IFRoZSBsYXJnZSBiYXJyaWVyIGlz IGJvdW5jZS1idWZmZXIgbWFwcGluZzogU1BESyByZXF1aXJlcyBodWdlcGFnZXMKPiBmb3IgTlZN ZSBvdmVyIFBDSWUgYW5kIFJETUEsIHNvIHRha2Ugc29tZSBwcmVhbGxjb2F0ZWQgaHVnZXBhZ2Vz IHRvCj4gbWFwIGFzIGJvdW5jZSBidWZmZXIgaXMgbmVjZXNzYXJ5LiBPciBpdCdzIGhhcmQgdG8g YXZvaWQgYW4gZXh0cmEKPiBtZW1jcHkgZnJvbSBib3VuY2UtYnVmZmVyIHRvIGh1Z2VwYWdlLgo+ IElmIHlvdSBjYW4gYWRkIGFuIG9wdGlvbiB0byBtYXAgaHVnZXBhZ2VzIGFzIGJvdW5jZS1idWZm ZXIsCj4gdGhlbiBTUERLIGNvdWxkIGFsc28gYmUgYSBwb3RlbnRpYWwgdXNlciBvZiB2ZHVzZS4K CgpTZXZlcmFsIGlzc3VlczoKCi0gVkRVU0UgbmVlZHMgdG8gbGltaXQgdGhlIHRvdGFsIHNpemUg b2YgdGhlIGJvdW5jZSBidWZmZXJzICg2NE0gaWYgSSAKd2FzIG5vdCB3cm9uZykuIERvZXMgaXQg d29yayBmb3IgU1BESz8KLSBWRFVTRSBjYW4gdXNlIGh1Z2VwYWdlcyBidXQgSSdtIG5vdCBzdXJl IHdlIGNhbiBtYW5kYXRlIGh1Z2VwYWdlcyAob3IgCndlIG5lZWQgaW50cm9kdWNlIG5ldyBmbGFn cyBmb3Igc3VwcG9ydGluZyB0aGlzKQoKVGhhbmtzCgoKPgo+IEl0IHdvdWxkIGJlIGJldHRlciBp ZiBTUERLIHZob3N0LXRhcmdldCBjb3VsZCBsZXZlcmFnZSB0aGUgZGF0YXBhdGggb2YKPiB2ZHVz ZSBkaXJlY3RseSBhbmQgZWZmaWNpZW50bHkuIEV2ZW4gdGhlIGNvbnRyb2wgcGF0aCBpcyB2ZHBh IGJhc2VkLAo+IHdlIG1heSB3b3JrIG91dCBvbmUgZGFlbW9uIGFzIGFnZW50IHRvIGJyaWRnZSBT UERLIHZob3N0LXRhcmdldCB3aXRoIHZkdXNlLgo+IFRoZW4gdXNlcnMgd2hvIGFscmVhZHkgZGVw bG95ZWQgU1BESyB2aG9zdC10YXJnZXQsIGNhbiBzbW9vdGhseSBydW4KPiBzb21lIGFnZW50IGRh ZW1vbiB3aXRob3V0IGNvZGUgbW9kaWZpY2F0aW9uIG9uIFNQREsgdmhvc3QtdGFyZ2V0IGl0c2Vs Zi4KPiAoSXQgaXMgb25seSBiZXR0ZXItdG8taGF2ZSBmb3IgU1BESyB2aG9zdC10YXJnZXQgYXBw LCBub3QgbWFuZGF0b3J5IGZvciBTUERLKSA6KQo+IEF0IGxlYXN0LCBzb21lIHNtYWxsIGJhcnJp ZXIgaXMgdGhlcmUgdGhhdCBibG9ja2VkIGEgdmhvc3QtdGFyZ2V0IHVzZSB2ZHVzZQo+IGRhdGFw YXRoIGVmZmljaWVudGx5Ogo+IC0gQ3VycmVudCBJTyBjb21wbGV0aW9uIGlycSBvZiB2ZHVzZSBp cyBJT0NUTCBiYXNlZC4gSWYgYWRkIG9uZSBvcHRpb24KPiB0byBnZXQgaXQgZXZlbnRmZCBiYXNl ZCwgdGhlbiB2aG9zdC10YXJnZXQgY2FuIGRpcmVjdGx5IG5vdGlmeSBJTwo+IGNvbXBsZXRpb24g dmlhIG5lZ290aWF0ZWQgZXZlbnRmZC4KPgo+Cj4gVGhhbmtzCj4gIEZyb20gWGlhb2RvbmcKPgo+ Cj4KPgo+Cj4gCQkJCQkJCQkJCj4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmlvbW11IG1haWxpbmcgbGlzdAppb21tdUBsaXN0cy5saW51eC1mb3VuZGF0 aW9uLm9yZwpodHRwczovL2xpc3RzLmxpbnV4Zm91bmRhdGlvbi5vcmcvbWFpbG1hbi9saXN0aW5m by9pb21tdQ==