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=-0.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 DA440C4332B for ; Fri, 20 Mar 2020 11:27:11 +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 5BAB62078A for ; Fri, 20 Mar 2020 11:27:11 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=emersion.fr header.i=@emersion.fr header.b="IUducrEP" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5BAB62078A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=emersion.fr 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 D12E46E08E; Fri, 20 Mar 2020 11:27:10 +0000 (UTC) Received: from mail-40131.protonmail.ch (mail-40131.protonmail.ch [185.70.40.131]) by gabe.freedesktop.org (Postfix) with ESMTPS id 37E4B6E08E for ; Fri, 20 Mar 2020 11:27:09 +0000 (UTC) Date: Fri, 20 Mar 2020 11:27:04 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=emersion.fr; s=protonmail; t=1584703626; bh=MP5U5k2BCwLjI5+1zvkWRC81s/yP0c8TRt4sYIE7Rc0=; h=Date:To:From:Cc:Reply-To:Subject:In-Reply-To:References:From; b=IUducrEPy3ek1ShZWbB0f2LGqHf2lAB1bTRt3MxKYSr1Fv+mHAgShC6OnKP2TiQLc poWrlUDvOkraCcSqx9+SOLgd2Qv1Z6dpeplpkexJlCsutPewKnppK/zIUOcY9EDnQN sLk6/yep5/hL1VvwBShc2u1WKm7q7vuVIlzOTEyU= To: =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= From: Simon Ser Subject: Re: Atomic KMS API lacks the ability to set cursor hot-spot coordinates Message-ID: In-Reply-To: References: <9d86bbe4-70cf-273d-4d61-aec06011d441@redhat.com> <20200319171633.2ee4afa4@eldfell.localdomain> <217ab553-9c16-329d-bbbd-02067a2ccd6e@redhat.com> <817f61b4-2b27-fd96-9e42-79ba2a6889bc@redhat.com> <3f0b858c-aa1b-2391-a936-6d1c8e36c0df@shipmail.org> <20200320111304.67c4dd01@eldfell.localdomain> MIME-Version: 1.0 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: , Reply-To: Simon Ser Cc: Hans de Goede , =?UTF-8?Q?Jonas_=C3=85dahl?= , "dri-devel@lists.freedesktop.org" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gRnJpZGF5LCBNYXJjaCAyMCwgMjAyMCAxMTo1OSBBTSwgVGhvbWFzIEhlbGxzdHLDtm0gPHRo b21hc19vc0BzaGlwbWFpbC5vcmc+IHdyb3RlOgoKPiBPbiAzLzIwLzIwIDEwOjEzIEFNLCBQZWtr YSBQYWFsYW5lbiB3cm90ZToKPgo+ID4gT24gVGh1LCAxOSBNYXIgMjAyMCAyMzo1NzowOSArMDEw MAo+ID4gVGhvbWFzIEhlbGxzdHLDtm0gKFZNd2FyZSkgdGhvbWFzX29zQHNoaXBtYWlsLm9yZyB3 cm90ZToKPiA+Cj4gPiA+IEhpLAo+ID4gPiBPbiAzLzE5LzIwIDEwOjA3IFBNLCBTaW1vbiBTZXIg d3JvdGU6Cj4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBJcyB0aGF0IHNvbWV0aGluZyB0aGF0IHNob3Vs ZCBiZSBkb25lPwo+ID4gPiA+ID4gPiA+ID4gSWYgdGhlIGhvdHNwb3QgcHJvcGVydHkgYWxzbyBo YWQgYSAiZGlzYWJsZWQiIHZhbHVlLCB0aGVuIFdlc3RvbiBjb3VsZAo+ID4gPiA+ID4gPiA+ID4g c2V0IHRoZSBob3RzcG90IHRvIGRpc2FibGVkIHdoZW4gaXQgaXMgdXNpbmcgdGhlIGN1cnNvciBw bGFuZSBmb3IKPiA+ID4gPiA+ID4gPiA+IG5vbi1jdXJzb3IgY29udGVudCBhbmQgbm90IGxvc2Ug dGhlIGZlYXR1cmUuIEFuZCBvZiBjb3Vyc2Ugc2V0IGhvdHNwb3QKPiA+ID4gPiA+ID4gPiA+IGNv cnJlY3RseSB3aGVuIGl0IGluIGZhY3QgaXMgYSBjdXJzb3IgKGJ1dCBmb3Igd2hhdCBpbnB1dD8p Lgo+ID4gPiA+ID4gPiA+ID4gSSBiZWxpZXZlIGN1cnNvciBwbGFuZXMgaW4gdGhlIGFmZmVjdGVk IHZpcnR1YWwgZ2Z4LWNhcmRzIGRvIG5vdAo+ID4gPiA+ID4gPiA+ID4gcmVhbGx5IGhhdmUgYSBt b2RlIHdoZXJlIHRoZXkgY2FuIGFjdHVhbGx5IGJlIHVzZWQgYXMgYSBnZW5lcmljIG92ZXJsYXkK PiA+ID4gPiA+ID4gPiA+IHBsYW5lLCBjZXJ0YWlubHkgbm90IGluIGEgdXNlZnVsIG1hbm5lciAo aWYgYW55dGhpbmcgd29ya3MgaXQgd2lsbCBhbGwKPiA+ID4gPiA+ID4gPiA+IGJlIHNvZnR3YXJl IGVtdWxhdGlvbiksIGltcGxlbWVudGluZyBhIGhvdHNwb3QgZGlzYWJsZWQgbW9kZSB3b3VsZCBi ZQo+ID4gPiA+ID4gPiA+ID4gdHJpY2t5IGFuZCB0aGlzIHdvdWxkIG5lZWRzIHRvIGJlIGR1cGxp Y2F0ZWQgaW4gYWxsIHZpcnR1YWwtZ2Z4IGNhcmRzCj4gPiA+ID4gPiA+ID4gPiBrbXMgZHJpdmVy cy4KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IElmIEkgdW5kZXJzdG9vZCBEYW5pZWwncyBw cm9wb3NhbCBmb3IgaG93IHRvIGRlYWwgd2l0aCB0aGlzIHByb3Blcmx5LAo+ID4gPiA+ID4gPiA+ IHRoZW4gb25seSBjdXJzb3IgcGxhbmVzIHdoaWNoIGFjdHVhbGx5IG5lZWQgdGhlbSB3b3VsZCBn ZXQgdGhlIG5ldwo+ID4gPiA+ID4gPiA+IGhvdHNwb3QgeC95IHByb3BlcnRpZXMuIElmIHdlIGRv IHRoYXQgdGhlbiBXZXN0b24gY291bGQgdXNlIHRoZQo+ID4gPiA+ID4gPiA+IHByZXNlbmNlIG9m IHRoZSBob3RzcG90IHgveSBwcm9wZXJ0aWVzIHRvIGRldGVjdCBpZiBpdCBpcyBkZWFsaW5nCj4g PiA+ID4gPiA+ID4gd2l0aCBhIHByb3BlciBodyBwbGFuZSB3aGljaCBjYW4gYWxzbyBiZSB1c2Vk IGFzIGEgZ2VuZXJpYwo+ID4gPiA+ID4gPiA+IHBsYW5lOyBvciBhIHZpcnR1YWwtZ2Z4IGNhcmRz IGN1cnNvci1wbGFuZSwgYW5kIHRoZW4ganVzdCBub3QKPiA+ID4gPiA+ID4gPiBib3RoZXIgd2l0 aCB0cnlpbmcgdG8gdXNlIHRoZSBwbGFuZSBhcyBhIGdlbmVyaWMgaHcgcGxhbmUuCj4gPiA+ID4g PiA+ID4gV291bGQgdGhhdCB3b3JrPwo+ID4gPiA+ID4gPiA+IFRoYXQgd291bGQgbmVlZCB0byBh dCBsZWFzdCBiZSBoaWRkZW4gYmVoaW5kIGEgRFJNIGNhcGFiaWxpdHksIG90aGVyd2lzZQo+ID4g PiA+ID4gPiA+IGl0IHdvdWxkIGJyZWFrIGV4aXN0aW5nIHVzZXItc3BhY2UgaWdub3JpbmcgdGhl IGhvdHNwb3QgcHJvcHMgKGUuZy4KPiA+ID4gPiA+ID4gPiBjdXJyZW50IFdlc3RvbikuCj4gPiA+ ID4gPiA+ID4gQ3VycmVudCBXZXN0b24gaXMgYWxyZWFkeSBicm9rZW4sIGZpeGluZyB0aGF0IGlz IHdoYXQgdGhpcyB3aG9sZQo+ID4gPiA+ID4gPiA+IHRocmVhZCBpcyBhYm91dC4KPiA+ID4gPiA+ Cj4gPiA+ID4gPiBUaGUgdmlydHVhbCBnZngtY2FyZHMgZHJpdmVycyBzaW1wbHkgbXVzdCBub3cg dGhlIGhvdHNwb3QgZm9yIHRoaW5ncyB0bwo+ID4gPiA+ID4gd29yazsgYW5kIGEgY2FwYWJpbGl0 eSBpcyBub3QgZ29pbmcgdG8gaGVscCBoZXJlIGZvciAyIHJlYXNvbnM6Cj4gPiA+ID4gPgo+ID4g PiA+ID4gMS4gIFNob3J0IG9mIGRpc2FibGluZyBzZWFtbGVzcyBtb2RlIHRoZXJlIGlzIG5vdGhp bmcgdGhlIHZpcnR1YWwKPiA+ID4gPiA+ICAgICBnZngtY2FyZHMgZHJpdmVycyBjYW4gZG8gd2hl biBjbGllbnRzIGRvIG5vdCBwYXNzIHRoZSBob3RzcG90IGluZm87Cj4gPiA+ID4gPiAgICAgYW5k IGluIHNvbWUgY2FzZXMgdGhleSBjYW5ub3QgZXZlbiBkbyB0aGlzIGFzIGl0IGlzIHVuZGVyIGNv bnRyb2wKPiA+ID4gPiA+ICAgICBvZiBhIHVzZXJzcGFjZSBhZ2VudCBwcm9jZXNzIHdpdGggaXRz IG93biBjaGFubmVsIHRvIHRoZSBoeXBlcnZpc29yLgo+ID4gPiA+ID4KPiA+ID4gPiA+IDIuICBN b3N0IGV4aXN0aW5nIGNsaWVudHMgd2hpY2ggb2J2aW91c2x5IGRvIG5vdCBzZXQgdGhpcyB0by1i ZS1pbnRyb2R1Y2VkCj4gPiA+ID4gPiAgICAgY2FwYWJpbGl0eSBhbHJlYWR5IHBhc3MgdGhlIGhv dHNwb3QgaW5mbyB1c2luZyB0aGUgRFJNX0lPQ1RMX01PREVfQ1VSU09SMgo+ID4gPiA+ID4gICAg IGlvY3RsLiBEaXNhYmxpbmcgc2VhbWxlc3MgbW9kZSB3aGVuIHRoaXMgdG8tYmUtaW50cm9kdWNl ZCBjYXBhYmlsaXR5IGlzCj4gPiA+ID4gPiAgICAgbm90IHNldCB3b3VsZCBjYXVzZSBhIGh1Z2Ug cmVncmVzc2lvbiBmb3IgYWxsIHRoZXNlIGV4aXN0aW5nIGNsaWVudHMuCj4gPiA+ID4gPiAgICAg Q29tcG9zaXRvcnMgd2hpY2ggZG9uJ3Qgc3VwcG9ydCB0aGUgaG90c3BvdCBwcm9wIGFyZSBhbmQg d2lsbCBjb250aW51ZSB0byBicmVhawo+ID4gPiA+ID4gICAgIHNlYW1sZXNzIG1vZGUuIFNldHRp bmcgdGhlIHByb3Agd2lsbCBuZXZlciBiZSBtYW5kYXRvcnksIGJlY2F1c2UgYWxsIHVzZXItc3Bh Y2UKPiA+ID4gPiA+ICAgICB0b2RheSBkb2Vzbid0IGRvIGl0Lgo+ID4gPiA+ID4KPiA+ID4gPgo+ ID4gPiA+IFNpbmNlIHdlIG5lZWQgdG8gdXBkYXRlIGFsbCB1c2VyLXNwYWNlIHRvIGFkZCBzdXBw b3J0IGZvciB0aGlzIHByb3AsIGl0IHdvdWxkCj4gPiA+ID4gYmUgYSBnb29kIGlkZWEgdG8gcmVj b2duaXplIHVzZXItc3BhY2UgdGhhdCBkb2Vzbid0IHN1cHBvcnQgaXQuIERvaW5nIHNvbWV0aGlu Zwo+ID4gPiA+IHNlbnNpYmxlIHdpdGggdXNlci1zcGFjZSB0aGF0IGRvZXNuJ3Qgc3VwcG9ydCB0 aGUgcHJvcCBpcyB1cCB0byB0aGUgdmlydHVhbAo+ID4gPiA+IGRyaXZlci4KPiA+ID4gPiBJZiB3 ZSBoYXZlIGEgY2FwYWJpbGl0eSwgdGhlIHZpcnR1YWwgZHJpdmVyIGNvdWxkIGZvciBpbnN0YW5j ZSBub3QgYWR2ZXJ0aXNlIGEKPiA+ID4gPiBjdXJzb3IgcGxhbmUgYXQgYWxsIGlmIHVzZXItc3Bh Y2Ugd29uJ3QgY29ycmVjdGx5IHNldCB0aGUgaG90c3BvdCBhbnl3YXkuCj4gPiA+ID4gV2hhdCBj b21wb3NpdG9ycyBkbyB3ZSBoYXZlIGFyb3VuZCB0b2RheSB0aGF0IHdvdWxkbid0IHdhbnQgdG8g c3VwcG9ydAo+ID4gPiA+IHNldHRpbmcgdGhlIGhvdHNwb3QgY29ycmVjdGx5PyBEbyB3ZSBsaWtl IHRvIGtlZXAgdGhlbSB0aGF0IHdheSwgYW5kIGRvCj4gPiA+ID4gd2Ugd2FudCB0byBlbmNvdXJh Z2UgYW55IG5ldyBjb21wb3NpdG9ycyB0byBhbHNvIG5vdCBkbyB0aGlzIHByb3Blcmx5Pwo+ID4g PiA+IEFsbCBjb21wb3NpdG9ycyB0aGF0IHNvbWV0aW1lcyB3YW50IHRvIHVzZSBjdXJzb3IgcGxh bmVzIGZvciBub24tY3Vyc29yCj4gPiA+ID4gY29udGVudC4gSWYgYSBjdXJzb3IgcGxhbmUgZG9l cyBub3QgYWN0dWFsbHkgaGF2ZSBhbnkgcGVyZm9ybWFuY2UKPiA+ID4gPiBiZW5lZml0cywgdGhl biBzb21laG93IHVzZXJzcGFjZSB3b3VsZCBuZWVkIHRvIGtub3cgdG8gbm90IHVzZSBpdCBpbgo+ ID4gPiA+IHRoYXQgY2FzZS4KPgo+IFllcywgYnV0IGlzIHRoYXQgV2VzdG9uIG9ubHk/IERvIHdl IGtub3cgYWJvdXQgb3RoZXJzPwoKd2xyb290cyBwbGFucyB0byBkbyB0aGUgc2FtZSBhcyBXZXN0 b24uCgo+ID4gSSB0aGluayB0aGUgY2FwYWJpbGl0eSBpcyBhIHdlbGwtZGVzaWduZWQgc29sdXRp b246IGEgZHJpdmVyIHRoYXQKPiA+IGtub3dzIHRoZSBjdXJzb3IgcGxhbmUgd2lsbCBub3QgYmUg YWx3YXlzIGV4YWN0bHkgbGlrZSB1c2Vyc3BhY2UKPiA+IHByb2dyYW1zIGl0IHNob3VsZCBub3Qg YWR2ZXJ0aXNlIHRoZSBjdXJzb3IgcGxhbmUgYXQgYWxsIGlmIHVzZXJzcGFjZQo+ID4gZG9lcyBu b3Qgc2V0IHRoZSBuZXcgY2FwLCBhbmQgdGhlIGNhcCBpcyBhIHByb21pc2UgdGhhdCB1c2Vyc3Bh Y2Ugd2lsbAo+ID4gc2V0IHRoZSBob3RzcG90IGNvcnJlY3RseS4KPiA+IFRoaXMgY2FwIHdpbGwg bm90IGJyZWFrIHVzZXJzcGFjZSB0aGF0IHVzZXMgRFJNX0lPQ1RMX01PREVfQ1VSU09SMiB3aXRo Cj4gPiBjb3JyZWN0IGhvdHNwb3QgaW5mbyBiZWNhdXNlIHRoYXQgaXMgYSBsZWdhY3kgS01TIEFQ SSBhbmQgd2UgYXJlCj4gPiB0YWxraW5nIGFib3V0IGF0b21pYyBoZXJlLiBUaGUgbGVnYWN5IGlv Y3RsIGNhbiBjb250aW51ZSB0byBpZ25vcmUgdGhlCj4gPiBuZXcgY2FwLgo+ID4gSXQgZG9lcyBt ZWFuIHRoYXQgaWYgbGVnYWN5IEtNUyB1c2Vyc3BhY2UgdXNlcyB0aGUgY3Vyc29yIHBsYW5lIGZv cgo+ID4gbm9uLWN1cnNvciBjb250ZW50LCBpdCBrZWVwcyBiZWluZyBicm9rZW4gZm9yIGRyaXZl cnMgdGhhdCBtYW5nbGUgY3Vyc29yCj4gPiBwbGFuZXMuIEkgY2FuIGNlcnRhaW5seSBsaXZlIHdp dGggdGhhdC4KPgo+IFdoYXQgSSdtIGFmcmFpZCBvZiBpcyB0aGF0IHBlb3BsZSB3cml0aW5nIGNv bXBvc2l0b3JzIHdpbGwganVzdCBsZWF2ZQo+IHRoYXQgY2FwIG9mZiwgaWdub3JpbmcgdGhlIGh1 Z2UgYmVuZWZpdCBmb3IgdmlydHVhbCBlbnZpcm9ubWVudHMgYW5kCj4gZnV0dXJlIGttcy1iYXNl ZCByZW1vdGluZyBzb2x1dGlvbnMuCj4KPiBDb3VsZG4ndCBjb21wb3NpdG9ycyB0aGF0IHNlZSBo b3RzcG90IHByb3BlcnRpZXMgb24gYSBwbGFuZSBqdXN0IGlnbm9yZQo+IHRoYXQgcGxhbmUgZm9y IG90aGVyIHN0dWZmIHRoYW4gY3Vyc29ycz8KCktNUyBjbGllbnRzIHdpbGwgbmVlZCBwYXRjaGlu ZyBhbnl3YXkgdG8gcG9wdWxhdGUgdGhlIG5ldyBwcm9wLgpFbmFibGluZyBhIGNhcCBpcyBhIG9u ZS1saW5lci4KCklzIHRoZSBwbGFuIHRvIGludGVudGlvbmFsbHkgYnJlYWsgS01TIGNsaWVudHMg dG8gZm9yY2UgdGhlbSB0byBhZGQKc3VwcG9ydCBmb3IgdGhlIHByb3BlcnR5PyBUaGlzIGluY3Jl YXNlcyB0aGUgbnVtYmVyIG9mIHRoaW5ncyBLTVMKY2xpZW50cyBuZWVkIHRvIGRvIGluIG9yZGVy IHRvIGNvcnJlY3RseSB3b3JrLiBJIHRoaW5rIHRoZSBLTVMgY2xpZW50cycKam9iIGlzIGFscmVh ZHkgaGFyZCBlbm91Z2ggYXMtaXMuCgpUaGVyZSB3aWxsIGFsd2F5cyBleGlzdCB1c2VyLXNwYWNl IHdoaWNoIGRvZXNuJ3Qgc2V0IHRoZSBwcm9wLiBJJ20gbm90Cmp1c3QgdGhpbmtpbmcgYWJvdXQg b2xkIGNvbXBvc2l0b3JzIGhlcmU6IEtNUyBjbGllbnRzIGFyZSBub3QgbGltaXRlZAp0byBqdXN0 IGNvbXBvc2l0b3JzLiBUaGluayBhYm91dCBLb2RpIGZvciBpbnN0YW5jZSBvciBEUk0gbGVhc2UK Y2xpZW50cy4KCj4gPiBJdCBzZWVtcyBwZW9wbGUgYXJlIGFsc28gZm9yZ2V0dGluZyB0aGUgcHJv YmxlbSBvZiBhc3NvY2lhdGluZyB0aGUKPiA+IGN1cnNvciBwbGFuZSB3aXRoIGFuIGlucHV0IGRl dmljZSwgc28gdGhhdCB3aGF0ZXZlciBpcyBsb29raW5nIHRvCj4gPiBtYW5nbGUgdGhlIGN1cnNv ciBwbGFuZSBiZWhpbmQgdGhlIEtNUyBhcHAncyBiYWNrIHdvdWxkIGtub3cgaG93IHRvIGRvCj4g PiBpdCByaWdodC4KPiA+IE15IGZpcnN0IHRob3VnaHQgZm9yIHRoYXQgaXMgYSBuZXcgY3Vyc29y IHBsYW5lIHByb3BlcnR5IHdpdGggdGhlIHZhbHVlCj4gPiBvZiBtYWpvciwgbWlub3Igb2YgdGhl IGtlcm5lbCBpbnB1dCBkZXZpY2UgdGhhdCB1c2Vyc3BhY2UgaXMgdXNpbmcgdG8KPiA+IGNvbnRy b2wgdGhlIGN1cnNvciBwbGFuZS4gVGhpcyBwcm9wZXJ0eSBzaG91bGQgYmUgc2V0IGJ5IHVzZXJz cGFjZSBvbmx5Cj4gPiB3aGVuIHRoZXJlIGlzIGV4YWN0bHkgb25lIGtlcm5lbCBpbnB1dCBkZXZp Y2UgaXQgdXNlcyBmb3IgY29udHJvbGxpbmcKPiA+IHRoZSBjdXJzb3IgcGxhbmUuIFNldHRpbmcg dGhpcyBwcm9wZXJ0eSB0byBub25lL2Rpc2FibGVkIHdvdWxkIGJlIGEKPiA+IGNsZWFyIGluZGlj YXRpb24gdGhhdCAic2VhbWxlc3MgbW9kZSIgd291bGQgYmUgdW53YW50ZWQuIFRoZSBEUk0KPiA+ IGRyaXZlciBvciB3aGF0ZXZlciBpdCB0YWxrcyB0byBjb3VsZCB0aGVuIGNoZWNrIGlmIHRoZSBj dXJzb3IgcGxhbmUgaXMKPiA+IGluZGVlZCBjb250cm9sbGVkIGJ5IHRoZSBpbnB1dCBpdCBzbyBm YXIgaGFzIG9ubHkgYXNzdW1lZCBhbmQKPiA+IGF1dG9tYXRpY2FsbHkgY2hvb3NlIGNvcnJlY3Rs eSBiZXR3ZWVuIHNlYW1sZXNzIG1vZGUgb3Igbm90Lgo+Cj4gQXJlIHlvdSBzdXJlIHRoaXMgaSBy ZWFsbHkgbmVlZGVkPyBWTXdhcmUncyBTVkdBIGRldmljZSBjaGVja3Mgd2hldGhlcgo+IHRoZSBn dWVzdCBjdXJzb3IgcG9zaXRpb24gYW5kIGhvc3QgY3Vyc29yIHBvc2l0aW9uIGFyZSByZWFzb25h Ymx5Cj4gYWxpZ25lZCwgYW5kIGlmIG5vdCwgY29tcG9zaXRlcyB0aGUgZ3Vlc3QgY3Vyc29yIG92 ZXIgdGhlIGRpc3BsYXkgcGxhbmUuCj4gU28gaWYgeW91LCBmb3IgZXhhbXBsZSzCoCBhdHRhY2gg YSBwYXNzdGhyb3VnaCBVU0IgbW91c2UgdG8gdGhlIFZNIHdoaWxlCj4gcnVubmluZyBpbiBzZWFt bGVzcyBtb2RlLCB0aGluZ3MgImp1c3Qgd29yayIuIFNpbWlsYXJseSBpZiB5b3Ugd2VyZSB0bwo+ IGF0dGFjaCBhIGttcy1iYXNlZCB2bmMgc29sdXRpb24gdGhhdCBiZWhhdmVkIGluIHRoZSBzYW1l IHdheSBhbmQgdGhhdAo+IGNyZWF0ZWQgYSBuZXcgaW5wdXQgZGV2aWNlLCB0aGluZ3Mgd291bGQg YWxzbyBsb29rIGZpbmUsIGV4Y2VwdCBmb3IKPiB0ZW1wb3JhcnkgY3Vyc29yIGp1bXBzIHdoZW4g eW91IHN3aXRjaCBpbnB1dCBkZXZpY2UuCgpTZWVtcyBtb3JlIGxpa2UgYSB3b3JrYXJvdW5kIHRo YW4gYSByZWFsIHNvbHV0aW9uLgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9k cmktZGV2ZWwK