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=-3.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED autolearn=no 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 5F63DC4361B for ; Thu, 17 Dec 2020 19:20:59 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 54FFB239EB for ; Thu, 17 Dec 2020 19:20:58 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 54FFB239EB Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B273A8961E; Thu, 17 Dec 2020 19:20:57 +0000 (UTC) Received: from mail-ot1-x32d.google.com (mail-ot1-x32d.google.com [IPv6:2607:f8b0:4864:20::32d]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6B2478961E for ; Thu, 17 Dec 2020 19:20:56 +0000 (UTC) Received: by mail-ot1-x32d.google.com with SMTP id o11so28458964ote.4 for ; Thu, 17 Dec 2020 11:20:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=LXAAVeN0oU7irbvId2QTrjov5h3idumKLbFQNK/Rxqg=; b=edkAmvKjwGBlMVNL04NfZleEJy/DpCY/ZtepvZYU/R7s1AHs1LSofIjHqCTCGeYLOz RqbqirmBRG+gD0Rb8vhomaVf6DKo0+It3Aqb/rvXLvujuXa12oG9Vey1psTqysN5WT6T BWt4KqlBtspNMvPUsy1Lv+ZiKS1fYKLvphPco= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=LXAAVeN0oU7irbvId2QTrjov5h3idumKLbFQNK/Rxqg=; b=hs7quWN/9kB071JEiVKnGpWI4EoPArBrKvsFlywO6tIQa4rsW7cUW+wHRXSc9IerPE LxiGxeQVJYbPsDOtUsaPxQmkTFQuJH3kxQdLwovIl3kh94UeioAT4Fs/f2qJJ2FU3A9R aU96dPcHWsneBWJ/Aa7G8Kw07KngB4T4UsdNJl2BGtgMJ38f/vsborKoYXSHUeyxXiWw +s3BlZpYOlG0q8sMWmvIUbxtXXt29+Dg2TdasTWx7QRIlqzUy1u836QDgwQvFNiBfTZf 9u6PiLPZfwlUn9ajmfbeVXqW0CUiPOngs5PTH5P8oeXvaRFkx6+qxS+hqzZrMAuzhb4o xg9Q== X-Gm-Message-State: AOAM5324Q1QXVHAp5mEe0w8+5N3Velb3WtVeGD32fhS0i1xe2o0D0gpI 7cfMoqCzoav5jS1YtONmc++JeMU1rUeD+yY29Xr9HQ== X-Google-Smtp-Source: ABdhPJzSosM5o2qrDgY6FtbQZJycLGKPEnAFUbwSBWh8O/92agJUQ/vsvYm5/cYINhnr/8DQ/zyHjvXIKaK3w4cmTho= X-Received: by 2002:a9d:23ca:: with SMTP id t68mr306361otb.281.1608232855512; Thu, 17 Dec 2020 11:20:55 -0800 (PST) MIME-Version: 1.0 References: <20201216140427.1253-1-christian.koenig@amd.com> <2d702307-052c-f59d-a385-f373d1eae823@gmail.com> <0e50223b-d851-fdaa-d25e-5402d14444af@amd.com> <20201217180917.GA1277524@redhat.com> <20201217184041.GB1277524@redhat.com> In-Reply-To: <20201217184041.GB1277524@redhat.com> From: Daniel Vetter Date: Thu, 17 Dec 2020 20:20:44 +0100 Message-ID: Subject: Re: [PATCH 1/2] drm/ttm: rework ttm_tt page limit v2 To: Jerome Glisse X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Ralph Campbell , Dave Airlie , John Hubbard , Roland Scheidegger , dri-devel , Huang Rui , VMware Graphics , Ben Skeggs , =?UTF-8?Q?Christian_K=C3=B6nig?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gVGh1LCBEZWMgMTcsIDIwMjAgYXQgNzo0MCBQTSBKZXJvbWUgR2xpc3NlIDxqZ2xpc3NlQHJl ZGhhdC5jb20+IHdyb3RlOgo+Cj4gT24gVGh1LCBEZWMgMTcsIDIwMjAgYXQgMDc6MTk6MDdQTSAr MDEwMCwgRGFuaWVsIFZldHRlciB3cm90ZToKPiA+IE9uIFRodSwgRGVjIDE3LCAyMDIwIGF0IDc6 MDkgUE0gSmVyb21lIEdsaXNzZSA8amdsaXNzZUByZWRoYXQuY29tPiB3cm90ZToKPiA+ID4KPiA+ ID4gQWRkaW5nIGZldyBmb2xrcyBvbiBjYyBqdXN0IHRvIHJhaXNlIGF3YXJlbmVzcyBhbmQgc28g dGhhdCBpCj4gPiA+IGNvdWxkIGdldCBjb3JyZWN0ZWQgaWYgaSBzYWlkIGFueXRoaW5nIHdyb25n Lgo+ID4gPgo+ID4gPiBPbiBUaHUsIERlYyAxNywgMjAyMCBhdCAwNDo0NTo1NVBNICswMTAwLCBE YW5pZWwgVmV0dGVyIHdyb3RlOgo+ID4gPiA+IE9uIFRodSwgRGVjIDE3LCAyMDIwIGF0IDQ6MzYg UE0gQ2hyaXN0aWFuIEvDtm5pZwo+ID4gPiA+IDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+IHdy b3RlOgo+ID4gPiA+ID4gQW0gMTcuMTIuMjAgdW0gMTY6MjYgc2NocmllYiBEYW5pZWwgVmV0dGVy Ogo+ID4gPiA+ID4gPiBPbiBUaHUsIERlYyAxNywgMjAyMCBhdCA0OjEwIFBNIENocmlzdGlhbiBL w7ZuaWcKPiA+ID4gPiA+ID4gPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4gd3JvdGU6Cj4gPiA+ ID4gPiA+PiBBbSAxNy4xMi4yMCB1bSAxNTozNiBzY2hyaWViIERhbmllbCBWZXR0ZXI6Cj4gPiA+ ID4gPiA+Pj4gT24gVGh1LCBEZWMgMTcsIDIwMjAgYXQgMjo0NiBQTSBDaHJpc3RpYW4gS8O2bmln Cj4gPiA+ID4gPiA+Pj4gPGNrb2VuaWcubGVpY2h0enVtZXJrZW5AZ21haWwuY29tPiB3cm90ZToK PiA+ID4gPiA+ID4+Pj4gQW0gMTYuMTIuMjAgdW0gMTY6MDkgc2NocmllYiBEYW5pZWwgVmV0dGVy Ogo+ID4gPiA+ID4gPj4+Pj4gT24gV2VkLCBEZWMgMTYsIDIwMjAgYXQgMDM6MDQ6MjZQTSArMDEw MCwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPiA+ID4gPiA+ID4+Pj4+IFtTTklQXQo+ID4gPiA+ ID4gPj4+Pj4+ICsKPiA+ID4gPiA+ID4+Pj4+PiArLyogQXMgbG9uZyBhcyBwYWdlcyBhcmUgYXZh aWxhYmxlIG1ha2Ugc3VyZSB0byByZWxlYXNlIGF0IGxlYXN0IG9uZSAqLwo+ID4gPiA+ID4gPj4+ Pj4+ICtzdGF0aWMgdW5zaWduZWQgbG9uZyB0dG1fdHRfc2hyaW5rZXJfc2NhbihzdHJ1Y3Qgc2hy aW5rZXIgKnNocmluaywKPiA+ID4gPiA+ID4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3Qgc2hyaW5rX2NvbnRyb2wgKnNjKQo+ID4gPiA+ID4gPj4+Pj4+ ICt7Cj4gPiA+ID4gPiA+Pj4+Pj4gKyAgICBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0g ewo+ID4gPiA+ID4gPj4+Pj4+ICsgICAgICAgICAgICAubm9fd2FpdF9ncHUgPSB0cnVlCj4gPiA+ ID4gPiA+Pj4+PiBJaXJjIHRoZXJlJ3MgYW4gZXZlbnR1YWwgc2hyaW5rZXIgbGltaXQgd2hlcmUg aXQgZ2V0cyBkZXNwZXJhdGUuIEkgdGhpbmsKPiA+ID4gPiA+ID4+Pj4+IG9uY2Ugd2UgaGl0IHRo YXQsIHdlIHNob3VsZCBhbGxvdyBncHUgd2FpdHMuIEJ1dCBpdCdzIG5vdCBwYXNzZWQgdG8KPiA+ ID4gPiA+ID4+Pj4+IHNocmlua2VycyBmb3IgcmVhc29ucywgc28gbWF5YmUgd2Ugc2hvdWxkIGhh dmUgYSBzZWNvbmQgcm91bmQgdGhhdCB0cmllcwo+ID4gPiA+ID4gPj4+Pj4gdG8gbW9yZSBhY3Rp dmVseSBzaHJpbmsgb2JqZWN0cyBpZiB3ZSBmZWxsIHN1YnN0YW50aWFsbHkgc2hvcnQgb2Ygd2hh dAo+ID4gPiA+ID4gPj4+Pj4gcmVjbGFpbSBleHBlY3RlZCB1cyB0byBkbz8KPiA+ID4gPiA+ID4+ Pj4gSSB0aGluayB3ZSBzaG91bGQgdHJ5IHRvIGF2b2lkIHdhaXRpbmcgZm9yIHRoZSBHUFUgaW4g dGhlIHNocmlua2VyIGNhbGxiYWNrLgo+ID4gPiA+ID4gPj4+Pgo+ID4gPiA+ID4gPj4+PiBXaGVu IHdlIGdldCBITU0gd2Ugd2lsbCBoYXZlIGNhc2VzIHdoZXJlIHRoZSBzaHJpbmtlciBpcyBjYWxs ZWQgZnJvbQo+ID4gPiA+ID4gPj4+PiB0aGVyZSBhbmQgd2UgY2FuJ3Qgd2FpdCBmb3IgdGhlIEdQ VSB0aGVuIHdpdGhvdXQgY2F1c2luZyBkZWFkbG9ja3MuCj4gPiA+ID4gPiA+Pj4gVWggdGhhdCBk b2Vzbid0IHdvcmsuIEFsc28sIHRoZSBjdXJyZW50IHJ1bGVzIGFyZSB0aGF0IHlvdSBhcmUgYWxs b3dlZAo+ID4gPiA+ID4gPj4+IHRvIGNhbGwgZG1hX2ZlbmNlX3dhaXQgZnJvbSBzaHJpbmtlciBj YWxsYmFja3MsIHNvIHRoYXQgc2hpcHBlZCBzYWlsZWQKPiA+ID4gPiA+ID4+PiBhbHJlYWR5LiBU aGlzIGlzIGJlY2F1c2Ugc2hyaW5rZXJzIGFyZSBhIGxlc3MgcmVzdHJpY3RpdmUgY29udGV4dCB0 aGFuCj4gPiA+ID4gPiA+Pj4gbW11IG5vdGlmaWVyIGludmFsaWRhdGlvbiwgYW5kIHdlIHdhaXQg aW4gdGhlcmUgdG9vLgo+ID4gPiA+ID4gPj4+Cj4gPiA+ID4gPiA+Pj4gU28gaWYgeW91IGNhbid0 IHdhaXQgaW4gc2hyaW5rZXJzLCB5b3UgYWxzbyBjYW4ndCB3YWl0IGluIG1tdQo+ID4gPiA+ID4g Pj4+IG5vdGlmaWVycyAoYW5kIGFsc28gbm90IGluIEhNTSwgd8SlaWNoIGlzIHRoZSBzYW1lIHRo aW5nKS4gV2h5IGRvIHlvdQo+ID4gPiA+ID4gPj4+IG5lZWQgdGhpcz8KPiA+ID4gPiA+ID4+IFRo ZSBjb3JlIGNvbmNlcHQgb2YgSE1NIGlzIHRoYXQgcGFnZXMgYXJlIGZhdWx0ZWQgaW4gb24gZGVt YW5kIGFuZCBpdCBpcwo+ID4gPiA+ID4gPj4gcGVyZmVjdGx5IHZhbGlkIGZvciBvbmUgb2YgdGhv c2UgcGFnZXMgdG8gYmUgb24gZGlzay4KPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+PiBTbyB3aGVu IGEgcGFnZSBmYXVsdCBoYXBwZW5zIHdlIG1pZ2h0IG5lZWQgdG8gYmUgYWJsZSB0byBhbGxvY2F0 ZSBtZW1vcnkKPiA+ID4gPiA+ID4+IGFuZCBmZXRjaCBzb21ldGhpbmcgZnJvbSBkaXNrIHRvIGhh bmRsZSB0aGF0Lgo+ID4gPiA+ID4gPj4KPiA+ID4gPiA+ID4+IFdoZW4gdGhpcyBtZW1vcnkgYWxs b2NhdGlvbiB0aGVuIGluIHR1cm4gd2FpdHMgZm9yIHRoZSBHUFUgd2hpY2ggaXMKPiA+ID4gPiA+ ID4+IHJ1bm5pbmcgdGhlIEhNTSBwcm9jZXNzIHdlIGFyZSBwcmV0dHkgbXVjaCBidXN0ZWQuCj4g PiA+ID4gPiA+IFllYWggeW91IGNhbid0IGRvIHRoYXQuIFRoYXQncyB0aGUgZW50aXJlIGluZmlu aXRlIGZlbmNlcyBkaXNjdXNzaW9ucy4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBZZXMsIGV4YWN0bHku Cj4gPiA+ID4gPgo+ID4gPiA+ID4gPiBGb3IgSE1NIHRvIHdvcmssIHdlIG5lZWQgdG8gc3RvcCB1 c2luZyBkbWFfZmVuY2UgZm9yIHVzZXJzcGFjZSBzeW5jLAo+ID4gPiA+ID4KPiA+ID4gPiA+IEkg d2FzIGNvbnNpZGVyaW5nIG9mIHNlcGFyYXRpbmcgdGhhdCBpbnRvIGEgZG1hX2ZlbmNlIGFuZCBh IGhtbV9mZW5jZS4KPiA+ID4gPiA+IE9yIHNvbWV0aGluZyBsaWtlIHRoaXMuCj4gPiA+ID4KPiA+ ID4gPiBUaGUgdHJvdWJsZSBpcyB0aGF0IGRtYV9mZW5jZSBpdCBhbGwgaXRzIGZvcm1zIGlzIHVh cGkuIEFuZCBvbiBncHVzCj4gPiA+ID4gd2l0aG91dCBwYWdlIGZhdWx0IHN1cHBvcnQgZG1hX2Zl bmNlX3dhaXQgaXMgc3RpbGwgcmVxdWlyZWQgaW4KPiA+ID4gPiBhbGxvY2F0aW9uIGNvbnRleHRz LiBTbyBjcmVhdGluZyBhIG5ldyBrZXJuZWwgc3RydWN0dXJlIGRvZXNuJ3QgcmVhbGx5Cj4gPiA+ ID4gc29sdmUgYW55dGhpbmcgSSB0aGluaywgaXQgbmVlZHMgZW50aXJlIG5ldyB1YXBpIGNvbXBs ZXRlbHkgZGVjb3VwbGVkCj4gPiA+ID4gZnJvbSBtZW1vcnkgbWFuYWdlbWVudC4gTGFzdCB0aW1l IHdlJ3ZlIGRvbmUgbmV3IHVhcGkgd2FzIHByb2JhYmx5Cj4gPiA+ID4gbW9kaWZpZXJzLCBhbmQg dGhhdCdzIHN0aWxsIG5vdCByb2xsZWQgb3V0IHllYXJzIGxhdGVyLgo+ID4gPgo+ID4gPiBXaXRo IGhtbSB0aGVyZSBzaG91bGQgbm90IGJlIGFueSBmZW5jZSAhIFlvdSBkbyBub3QgbmVlZCB0aGVt Lgo+ID4gPiBJZiB5b3UgZmVlbCB5b3UgbmVlZCB0aGVtIHRoYW4geW91IGFyZSBkb2luZyBzb21l dGhpbmcgaG9ycmlibHkKPiA+ID4gd3JvbmcuIFNlZSBiZWxvdyBvbiB3aGF0IEhNTSBuZWVkcyBh bmQgd2hhdCBpdCBtZWFucy4KPiA+ID4KPiA+ID4KPiA+ID4gPiA+ID4gYW5kIHlvdSBjYW4gb25s eSB1c2UgdGhlIGFtZGtmZCBzdHlsZSBwcmVlbXB0IGZlbmNlcy4gQW5kIHByZWVtcHRpbmcKPiA+ ID4gPiA+ID4gd2hpbGUgdGhlIHBhZ2VmYXVsdCBpcyBwZW5kaW5nIGlzIEkgdGhvdWdodCBzb21l dGhpbmcgd2UgcmVxdWlyZS4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBZZWFoLCBwcm9ibGVtIGlzIHRo YXQgbW9zdCBoYXJkd2FyZSBjYW4ndCBkbyB0aGF0IDopCj4gPiA+ID4gPgo+ID4gPiA+ID4gR2V0 dGluZyBwYWdlIGZhdWx0cyB0byB3b3JrIGlzIGhhcmQgZW5vdWdoLCBwcmVlbXB0aW5nIHdoaWxl IHdhaXRpbmcgZm9yCj4gPiA+ID4gPiBhIGZhdWx0IHRvIHJldHVybiBpcyBub3Qgc29tZXRoaW5n IHdoaWNoIHdhcyBhbnRpY2lwYXRlZCA6KQo+ID4gPiA+Cj4gPiA+ID4gSG0gbGFzdCBzdW1tZXIg aW4gYSB0aHJlYWQgeW91IHNhaWQgeW91J3ZlIGJsb2NrZWQgdGhhdCBiZWNhdXNlIGl0Cj4gPiA+ ID4gZG9lc24ndCB3b3JrLiBJIGFncmVlZCwgcGFnZSBmYXVsdCB3aXRob3V0IHByZWVtcHQgaXMg cmF0aGVyIHRvdWdoIHRvCj4gPiA+ID4gbWFrZSB3b3JrLgo+ID4gPiA+Cj4gPiA+ID4gPiA+IElv dywgdGhlIEhNTSBwYWdlIGZhdWx0IGhhbmRsZXIgbXVzdCBub3QgYmUgYSBkbWEtZmVuY2UgY3Jp dGljYWwKPiA+ID4gPiA+ID4gc2VjdGlvbiwgaS5lLiBpdCdzIG5vdCBhbGxvd2VkIHRvIGhvbGQg dXAgYW55IGRtYV9mZW5jZSwgZXZlci4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBXaGF0IGRvIHlvdSBt ZWFuIHdpdGggdGhhdD8KPiA+ID4gPgo+ID4gPiA+IGRtYV9mZW5jZV9zaWduYWxsaW5nX2JlZ2lu L2VuZCgpIGFubm90YXRpb25zIGVzc2VudGlhbGx5LCBpLmUuCj4gPiA+ID4gY3Jvc3MtcmVsZWFz ZSBkZXBlbmRlbmNpZXMuIE9yIHRoZSBvdGhlciB3YXkgcm91bmQsIGlmIHlvdSB3YW50IHRvIGJl Cj4gPiA+ID4gYWJsZSB0byBhbGxvY2F0ZSBtZW1vcnkgeW91IGhhdmUgdG8gZ3VhcmFudGVlIHRo YXQgeW91J3JlIG5ldmVyCj4gPiA+ID4gaG9sZGluZyB1cCBhIGRtYV9mZW5jZS4KPiA+ID4KPiA+ ID4gQ29ycmVjdCBub3RoaW5nIHJlZ2FyZGluZyBkbWEvdHRtL2dlbSBzaG91bGQgY3JlZXAgaW50 byBITU0gY29kZQo+ID4gPiBwYXRoLgo+ID4gPgo+ID4gPgo+ID4gPiBGb3IgSE1NIHdoYXQgeW91 IHdhbnQgd2hlbiBoYW5kbGluZyBHUFUgZmF1bHQgaXMgZG9pbmcgaXQgd2l0aG91dAo+ID4gPiBo b2xkaW5nIGFueSBHUFUgZHJpdmVyIGxvY2tzIHNvIHRoYXQgdGhlIHJlZ3VsYXIgcGFnZSBmYXVs dCBoYW5kbGVyCj4gPiA+IGNvZGUgcGF0aCBjYW4gZ28gYmFjayBpbnRvIHRoZSBHUFUgZHJpdmVy ICh0aHJvdWdoIHNocmlua2VyKSB3aXRob3V0Cj4gPiA+IHdvcnJ5aW5nIGFib3V0IGl0Lgo+ID4g Pgo+ID4gPiBUaGlzIGlzIGhvdyBub3V2ZWF1IGRvZXMgaXQ6Cj4gPiA+ICAgICAtIGdldCBldmVu dCBhYm91dCBwYWdlIGZhdWx0IChtaWdodCBob2xkIHNvbWUgR1BVIGxvY2spCj4gPiA+ICAgICAt IHdhbGsgdGhlIGV2ZW50IGJ1ZmZlciB0byBnZXQgYWxsIGZhdWx0aW5nIGFkZHJlc3Nlcwo+ID4g PiAgICAgICAobWlnaHQgaG9sZCBzb21lIEdQVSBsb2NrKQo+ID4gPgo+ID4gPiAgICAgISBEUk9Q IEFMTCBHUFUvRFJJVkVSIExPQ0sgIQo+ID4gPgo+ID4gPiAgICAgLSB0cnkgdG8gY29hbGxlc2Nl IGZhdWx0IHRvZ2V0aGVyIChhZGphY2VudCBhZGRyZXNzCj4gPiA+ICAgICAgIHRyaWdnZXIgYSBm YXVsdCBmb3IgYSBzaW5nbGUgcmFuZ2UpCj4gPiA+ICAgICAtIGNhbGwgaW4gSE1NL21tdSBub3Rp ZmllciBoZWxwZXJzIHRvIGhhbmRsZSB0aGUgZmF1bHQKPiA+ID4gICAgIC0gdGFrZSBHUFUgbG9j ayAoc3ZtbS0+bXV0ZXggZm9yIG5vdXZlYXUpCj4gPiA+ICAgICAtIGZyb20gdGhlIGZhdWx0IHJl c3VsdCB1cGRhdGUgR1BVIHBhZ2UgdGFibGUKPiA+ID4KPiA+ID4gICAgIC0gVGVsbCBHUFUgaXQg Y2FuIHJlc3VtZSAodGhpcyBjYW4gYmUgZG9uZSBhZnRlciByZWxlYXNpbmcKPiA+ID4gICAgICAg dGhlIGxvY2sgYmVsb3csIGl0IGlzIGp1c3QgdXAgdG8gdGhlIGRldmljZSBkcml2ZXIgZm9sa3MK PiA+ID4gICAgICAgdG8gZGVjaWRlIHdoZW4gdG8gZG8gdGhhdCkuCj4gPiA+Cj4gPiA+ICAgICAt IHVubG9jayBHUFUgKHN2bW0tPm11dGV4IGZvciBub3V2ZWF1KQo+ID4gPgo+ID4gPiAoc2VlIG5v dXZlYXVfc3ZtLmMgbG9vayBmb3IgcmFuZ2VfZmF1bHQpCj4gPiA+Cj4gPiA+IEdQVSBwYWdlIGZh dWx0IHNob3VsZCBuZXZlciBuZWVkIHRvIHJlbHkgb24gc2hyaW5rZXIgdG8gc3VjY2VlZAo+ID4g PiBpbnRvIHJlY2xhaW1pbmcgbWVtb3J5LiBUaGUgcmF0aW9uYWwgaGVyZSBpcyB0aGF0IHJlZ3Vs YXIgbWVtb3J5Cj4gPiA+IHJlY2xhaW0gKHdoaWNoIGluY2x1ZGVzIHJlZ3VsYXIgYW5vbnltb3Vz IG9yIG1tYXAgZmlsZSBiYWNrCj4gPiA+IG1lbW9yeSkgd2lsbCBiZSBhYmxlIHRvIG1ha2UgZm9y d2FyZCBwcm9ncmVzcyBldmVuIGR1cmluZyBHUFUKPiA+ID4gcGFnZSBmYXVsdC4gVGhpcyBvZiBj b3Vyc2UgbWVhbnMgdGhhdCB3aGlsZSBzZXJ2aWNpbmcgYSBHUFUgcGFnZQo+ID4gPiBmYXVsdCB5 b3UgbWlnaHQgZnJlZXVwIG1lbW9yeSB0aGF0IHdhcyBhbHNvIHVzZSBieSB0aGUgR1BVIGFuZAo+ ID4gPiB3aGljaCB3aWxsIHJlLWZhdWx0IGFnYWluIGJ1dCB0aGUgbHJ1IGxpc3Qgc2hvdWxkIG1h a2UgdGhhdCB2ZXJ5Cj4gPiA+IHVubGlrZWx5Lgo+ID4gPgo+ID4gPgo+ID4gPiBOb3RlIHRoYXQg Zm9yIHJlZ3VsYXIgbWVtb3J5IHJlY2xhaW0gdG8gbWFrZSBmb3J3YXJkIHByb2dyZXNzCj4gPiA+ IG1lYW5zIHRoYXQgdGhlIEdQVSBfbXVzdF8gc3VwcG9ydCBhc3luY2hyb25vdXMgR1BVIHBhZ2Ug dGFibGUKPiA+ID4gdXBkYXRlIGllIGJlaW5nIGFibGUgdG8gdW5tYXAgdGhpbmdzIGZyb20gR1BV IHBhZ2UgdGFibGUgYW5kCj4gPiA+IGZsdXNoIEdQVSBUTEIgd2l0aG91dCBoYXZpbmcgdG8gd2Fp dCBmb3IgYW55dGhpbmcgcnVubmluZyBvbgo+ID4gPiB0aGUgR1BVLiBUaGlzIGlzIHdoZXJlIG5v dCBhbGwgaGFyZHdhcmUgbWlnaHQgd29yay4gT25seSB0aGluZ3MKPiA+ID4gcG9wdWxhdGVkIHRo cm91Z2ggSE1NIG5lZWQgdG8gYmUgdW5tYXBwZWQgKGRtYS90dG0vZ2VtIHNob3VsZAo+ID4gPiBu b3QgYmUgY29uc2lkZXJlZCB1bmxlc3MgdGhleSB0b28gY2FuIGJlIHVubWFwcGVkIHdpdGhvdXQK PiA+ID4gZGVhZGxvY2spLgo+ID4gPgo+ID4gPiBGb3Igbm91dmVhdSB0aGlzIGlzIGRvbmUgdGhy b3VnaCByZWdpc3RlciB3cml0ZSAoc2VlCj4gPiA+IGdmMTAwX3ZtbV9pbnZhbGlkYXRlIGFuZCBn cDEwMF92bW1faW52YWxpZGF0ZV9wZGIgYW5kIHRoZQo+ID4gPiBHUFUgcGFnZSB0YWJsZSBpdHNl bGYgaXMgdXBkYXRlZCB0aHJvdWdoIHRoZSBDUFUpLgo+ID4gPgo+ID4gPiBJIHRoaW5rIGlzc3Vl IGZvciBBTUQgaGVyZSBpcyB0aGF0IHlvdSByZWx5IG9uIHVwZGF0aW5nIHRoZQo+ID4gPiBHUFUg cGFnZSB0YWJsZSB0aHJvdWdoIHRoZSBHUFUgY29tbWFuZCBwcm9jZXNzb3IgYW5kIHRoaXMKPiA+ ID4gd2lsbCBub3Qgd29yayB3aXRoIEhNTS4gVW5sZXNzIHlvdSBoYXZlIGEgQ1AgY2hhbm5lbCB0 aGF0Cj4gPiA+IGNhbiBhbHdheXMgbWFrZSBmb3J3YXJkIHByb2dyZXNzIG5vIG1hdHRlciB3aGF0 LiBPciB1cGRhdGUKPiA+ID4gdGhlIEdQVSBwYWdlIHRhYmxlIHdpdGggdGhlIENQVSBhbmQgZmx1 c2ggR1BVIFRMQiB0aHJvdWdoCj4gPiA+IHNvbWUgcmVnaXN0ZXIgd3JpdGUgKGlpcmMgdGhpcyBz aG91bGQgYmUgZG9hYmxlIG9uIEFNRCBidXQKPiA+ID4gaSBmb3JnZXR0aW5nIHRoaW5ncyBub3cp Lgo+ID4gPgo+ID4gPgo+ID4gPiBUaGVyZSBpcyBubyBuZWVkIGZvciBwcmVlbXB0aW9uIGV2ZW4g aWYgaXQgaXMgYSBuaWNlIHRvIGhhdmUKPiA+ID4gZmVhdHVyZSAobGF6eSBHUFUgZGVzaWduIGFy Y2hpdGVjdCBhbmQgaGFyZHdhcmUgZGVzaWduZXIgISA7KSkuCj4gPiA+Cj4gPiA+Cj4gPiA+IE5v dyBpZiBkbWEvdHRtL2dlbSBHUFUgbWVtb3J5IGFsbG9jYXRpb24gdXNlIGFsbCB0aGUgc3lzdGVt Cj4gPiA+IG1lbW9yeSB0aGVuIHdlIGFyZSBpbiB0cm91YmxlLiBUaGlzIHdhcyB0aGUgd2hvbGUg cmVhc29uIGZvcgo+ID4gPiBsaW1pdGluZyBvdXJzZWxmLCBvbmNlIHVwb24gYSB0aW1lLCB0byBu b3QgdXNlIG92ZXIgNTAlIG9mCj4gPiA+IG1lbW9yeSB3aXRoIGRtYS90dG0vZ2VtLiBJIGRvIG5v dCBoYXZlIGFueSBnb29kIHdheSB0byBzb2x2ZQo+ID4gPiB0aGF0LiBJZiB0byBtYWtlIGZvcndh cmQgcHJvZ3Jlc3MgdGhlIEdQVSBuZWVkcyB0byBhbGxvY2F0ZQo+ID4gPiBtb3JlIG1lbW9yeSBi dXQgaXQgYWxyZWFkeSBoYXMgZXhoYXVzdGVkIGFsbCBtZW1vcnkgdGhyb3VnaAo+ID4gPiBkbWEv dHRtL2dlbSB0aGVuIHRoZXJlIGlzIGp1c3Qgbm90aGluZyB3ZSBjYW4gZG8uCj4gPiA+Cj4gPiA+ IEkgc3RpbGwgYmVsaWV2ZSB3ZSBzaG91bGQgbGltaXQgZG1hL3R0bS9nZW0gbWVtb3J5IHVzYWdl IHNvCj4gPiA+IHRoYXQgd2UgbmV2ZXIgZW5kdXAgcGlubmluZyBhbGwgc3lzdGVtIG1lbW9yeSBp biBHUFUgcmVhbG1zLgo+ID4KPiA+IFdlbGwgdGhpcyBpcyBleGFjdGx5IHdoYXQgd2UncmUgdHJ5 aW5nIHRvIGRvIGhlcmUuIEFuZCB0byBiZSBhYmxlIHRvCj4gPiBzaHJpbmsgZG1hL3R0bS9nZW0g bWVtb3J5IHlvdSBldmVudHVhbGx5IGhhdmUgdG8gY2FsbCBkbWFfZmVuY2Vfd2FpdCwKPiA+IHdo aWNoIGlzIHdoZXJlIHRoZSBlbnRpcmUgdHJvdWJsZSBjb21lcyBpbi4KPiA+Cj4gPiBUaGUgb3Ro ZXIgc291cmNlIG9mIHRyb3VibGUgaXMgYnVmZmVyIGJhc2VkIHVzZXJwdHIsIHdoZXJlIHdlIGFs c28KPiA+IGNhbGwgZG1hX2ZlbmNlX3dhaXQuCj4gPgo+ID4gQW5kIG9mIGNvdXJzZSB0aHJvdWdo IGRlcGRlbmNpZXMgKGV2ZW4gYWNyb3NzIGdwdXMpIHRoaXMKPiA+IGRtYV9mZW5jZV93YWl0IGNv dWxkIGVuZCB1cCBiZWluZyBibG9ja2VkIG9uIHJ1bm5pbmcgc29tZSAobm9uLWhtbSkKPiA+IGNv bnRleHQgb24gdGhlIHNhbWUgZ3B1IGVuZ2luZSB3aGljaCBpcyBjdXJyZW50bHkgcnVubmluZyB5 b3VyIGhtbQo+ID4gY29udGV4dCBhbmQgc3R1Y2sgb24gc29tZSBraW5kIG9mIGZhdWx0Lgo+ID4K PiA+IEFsc28sIHdpdGggdGhlIHJlY2VudCBkbWEtZmVuY2UgYW5ub3RhdGlvbiBwYXRjaCB3ZSBh bHJlYWR5IGxvY2tlZAo+ID4gZG93biB0aGUgcnVsZSB0aGF0IGRtYV9mZW5jZV93YWl0IGZyb20g bWVtb3J5IHJlY2xhaW0gcGF0aHMgaXMgb2sKPiA+IChpOTE1IGFscmVhZHkgaGFzIG5vIGxpbWl0 IG9uIHN5c3RlbSBtZW1vcnkgdXNhZ2UsIGFuZCBDaHJpc3RpYW4KPiA+IHJlYWxseSB3YW50cyB0 byBkcm9wIGl0IGZvciB0dG0gZHJpdmVycyB0b28pLgo+ID4KPiA+ID4gSG9wZXMgdGhpcyBoZWxw IGNsYXJpZnkgcmVxdWlyZW1lbnQgYW5kIGV4cGVjdGF0aW9uLgo+ID4KPiA+IFNvIC4uLiB3aGF0 IG5vdz8KPiA+Cj4gPiBJIHNlZSBhIGZldyBvcHRpb25zOgo+ID4gLSByZXF1aXJlIHByZWVtcHQu IFRvdWdoIG9uIHRoZSBoYXJkd2FyZS4KPiA+IC0gcmV3b3JrIHRoZSBlbnRpcmUgbWVtb3J5IGhh bmRsaW5nLiBOb3Qgc3VyZSB0aGF0J3MgcG9zc2libGUsIHNpbmNlCj4gPiBpdCB3b3VsZCBtZWFu IHRoYXQgSE1NIGdwdXMgYW5kIGJ1ZmZlciBiYXNlZCBtZW1vcnkgbWFuZ2VtZW50IGdwdXMKPiA+ IGNhbm5vdCBjby1leGlzdCBvbiB0aGUgc2FtZSBzeXN0ZW0uIEZsYWcgZGF5cyBsaWtlIHRoYXQg YWNyb3NzIGFuCj4gPiBlbnRpcmUgc3Vic3lzdGVtIGRvbnQgd29yay4KPiA+IC0gZ2FuZyBzY2hl ZHVsaW5nLCBpLmUuIHdoZW4gYSBncHUgaXMgcnVubmluZyBhbiBITU0gY29udGV4dCBpcyBtdXN0 Cj4gPiBndWFyYW50ZWUgdGhhdCB0aGVyZSdzIG5vdCBhIHNpbmdsZSBidWZmZXIgYmFzZWQgZG1h LWJ1Zi90dG0vZ2VtCj4gPiBjb250ZXh0IHBlbmRpbmcgKGFuZCBibG9jayBhbnkgZXhlY2J1Zi9j cyBpb2N0bCBiZWZvcmUgd2Ugc3VibWl0IGEgbmV3Cj4gPiBvbmUpCj4KPiBITU0gc2hvdWxkIG5v dCBwbGF5IGhlcmUsIEhNTSBzaG91bGQgYmUgdGhlIHBvbGl0ZSB1c2VyIGFzc3VtaW5nCj4geW91 IGZvbGxvdyB3aGF0IGkgZXhwb3NlIGFib3ZlIGllIEhNTSBuZXZlciBwaW5zIG1lbW9yeSBhbmQg YWx3YXlzCj4gYWxsb3cgbWVtb3J5IHJlY2xhaW0gdG8gbWFrZSBmb3J3YXJkIHByb2dyZXNzIHdp dGhvdXQgaGF2aW5nIHRvCj4gdXNlIGFueSBraW5kIG9mIGZlbmNlLgoKSE1NIGlzIG5vdCBwaW5u aW5nIGFueSBtZW1vcnkgd2l0aCB0aGlzIHNjaGVtZS4gVGhhdCB3b3VsZG4ndCB3b3JrLgoKPiBU aGUgaXNzdWUgaXMgYWxsIGFib3V0IGRtYS90dG0vZ2VtIGFuZCBzaHJpbmtlciBuZWVkaW5nIHRv IHdhaXQgZm9yCj4gZmVuY2VzIGZvciB0aG9zZS4KPgo+Cj4gPiAtIC4uIHNvbWV0aGluZyBlbHNl Pwo+ID4KPgo+IE9uZSBvZiB0aGUgbmV3IGlkZWEgaSBoYWQgb24gdGhlIHRvcGljIGlzIHRvIGhh dmUgdGhlIEdQVSBkcml2ZXIKPiBzY2hlZHVsZXIgKHRoZSB0aGluZyB0aGF0IGFjdHVhbHkgc2No ZWR1bGUgdXNlcnNwYWNlIGNvbW1hbmQgYnVmZmVyCj4gaW4gdGhlIGtlcm5lbCkga2VlcCB0cmFj a3Mgb2YgaG93IG11Y2ggbWVtb3J5IGl0IGhhcyBwaW4gdGhyb3VnaCBpcwo+IGNvbW1hbmQgcXVl dWUgYW5kIGZvciBpdCB0byByZWZ1c2UgdG8gc2NoZWR1bGUgYW55dGhpbmcgbW9yZSBhYm92ZQo+ IHNvbWUgdGhyZXNob2xkIChpdCB3b3VsZCB3YWl0IHVudGlsIHBlbmRpbmcgR1BVIGFjdGl2aXRp ZXMgZmluaXNodXAKPiBhbmQgd2hpY2ggbWFrZXMgdGhlIG1lbW9yeSB1c2UgZ2F1Z2UgZ28gZG93 biBiZWxvdyB0aGUgdGhyZXNob2xkKS4KCiJwaW4gYWxsIGdwdSBtZW1vcnksIGZpeGVkIGxpbWl0 IiBpcyB3aGF0IHdlJ3JlIHRyeWluZyB0byBnZXQgYXdheSBmcm9tLgoKV2UgY291bGQgbWFrZSBp dCBtb3JlIGZsZXhpYmxlIHdpdGggb3VyIG93biBncHUgc2hyaW5rZXIgYXMgYSBzaWRlCndhZ29u LCBsaWtlIHRoZSB0dG1fc2hyaW5rX3dvcmsuIEJ1dCB0aGF0J3MgYWdhaW4gbm90IGdyZWF0IGJl Y2F1c2UKdGhlbiB3ZSdyZSB0cnlpbmcgdG8gYmFsYW5jZSBtZW1vcnkgdXNhZ2Ugd2l0aG91dCBi ZWluZyBpbnRlZ3JhdGVkCmludG8gY29yZSBtbSByZWNsYWltIGxvZ2ljLCBhbmQgdGhhdCBkb2Vz bid0IHdvcmsgdGhhdCB3ZWxsIGZyb20gYQpjb250cm9sIHBvdi4KCj4gVGhlIGJpZyBpc3N1ZSBp cyB3aXRoIHVzZXIgc3BhY2UgbWFuYWdlZCBjb21tYW5kIHJpbmcuIEkgYW0gbm90IHN1cmUKPiB3 aGF0IGFyZSBhbGwgdGhlIGhhcmR3YXJlIGNhcGFiaWxpdGllcyB0aGVyZSBidXQgbWF5YmUgaWYg d2UgY2FuCj4gdW5iaW5kIChmcm9tIHRoZSBrZXJuZWwpIHRoZSB1c2VyIHNwYWNlIHJpbmcgYW55 IHRpbWUgd2Ugc2VlIHNvbWUKPiB0aHJlc2hvbGQgdGhlbiB3ZSBjYW4gY2lyY2xlIGJhY2sgb24g dGhhdCBpZGVhLgoKVXNlcnNwYWNlIG1hbmFnZWQgcmluZyBuZWVkcyBjdHggcHJlZW1wdCBvciB5 b3UgaGF2ZSBpbmZpbml0ZSBmZW5jZXMuCkkgdGhpbmsgdGhhdCBzaG91bGQgYmUgY2xlYXIsIGFu ZCB0aGlzIEkgdGhpbmsgdGhpcyBpcyBvcnRob2dvbmFsIHRvCnRoZSBlbnRpcmUgaG1tL3BhZ2Ug ZmF1bHQgaGFuZGxpbmcgdG9waWMuCi1EYW5pZWwKCj4gQW5vdGhlciBkcmF3YmFjayBpcyB0aGF0 IHlvdSBjYW4gbm90IHNjaGVkdWxlIGEgc2luZ2xlIGpvYiB0aGF0IHVzZQo+IG1vcmUgbWVtb3J5 IHRoYW4gdGhlIHRocmVzaG9sZC4KPgo+Cj4gQWxzbyBvbmUgd2F5IHRvIG1pbmltaXplIHRoZSBp c3N1ZSBtaWdodCBiZSB0byBzd2Fwb3V0IGRtYS90dG0vZ2VtCj4gc21hbGwgY2h1bmsgYnkgc21h bGwgY2h1bmsgaW5zdGVhZCBvZiBoYXZpbmcgdG8gZmlyc3QgYWxsb2NhdGUKPiB0aGUgd2hvbGUg b2JqZWN0IHNpemUgb2Ygc3lzdGVtIG1lbW9yeSBiZWZvcmUgc3dhcHBpbmcgaXQgb3V0Lgo+Cj4g SsOpcsO0bWUKPgoKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBD b3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWwK