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=-15.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,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 22543C47082 for ; Tue, 8 Jun 2021 07:47:20 +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 1623661184 for ; Tue, 8 Jun 2021 07:47:19 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1623661184 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=daenzer.net Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=amd-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id CC7716E0DA; Tue, 8 Jun 2021 07:47:18 +0000 (UTC) Received: from netline-mail3.netline.ch (mail.netline.ch [148.251.143.180]) by gabe.freedesktop.org (Postfix) with ESMTP id 16B776E0DA for ; Tue, 8 Jun 2021 07:47:16 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by netline-mail3.netline.ch (Postfix) with ESMTP id D2A3A20201B; Tue, 8 Jun 2021 09:47:15 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at netline-mail3.netline.ch Received: from netline-mail3.netline.ch ([127.0.0.1]) by localhost (netline-mail3.netline.ch [127.0.0.1]) (amavisd-new, port 10024) with LMTP id GepYug1kzFDr; Tue, 8 Jun 2021 09:47:15 +0200 (CEST) Received: from thor (24.99.2.85.dynamic.wline.res.cust.swisscom.ch [85.2.99.24]) by netline-mail3.netline.ch (Postfix) with ESMTPA id 4C57B20201A; Tue, 8 Jun 2021 09:47:15 +0200 (CEST) Received: from [::1] by thor with esmtp (Exim 4.94.2) (envelope-from ) id 1lqWSA-000Zl3-C2; Tue, 08 Jun 2021 09:47:14 +0200 To: Sean Paul , Harry Wentland References: <20210514114734.687096-1-Rodrigo.Siqueira@amd.com> <857025a9-2ac0-ed37-bc9e-a2be9e1780a9@amd.com> <20210518185806.gsrzfcxcwo6o47kc@outlook.office365.com> <517b3280-f7aa-eab3-472e-5e23ad5dc243@amd.com> From: =?UTF-8?Q?Michel_D=c3=a4nzer?= Subject: Re: [PATCH] drm/amd/display: Fix overlay validation by considering cursors Message-ID: <3dfd5d78-f36f-388f-0995-fa9f421bdf0a@daenzer.net> Date: Tue, 8 Jun 2021 09:47:14 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.2 MIME-Version: 1.0 In-Reply-To: Content-Language: en-CA X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Yacoub , "Tianci . Yin" , Rodrigo Siqueira , amd-gfx list , Daniel Wheeler , Nicholas Choi , Bhawanpreet Lakha , Nicholas Kazlauskas , Mark Yacoub Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" T24gMjAyMS0wNi0wNyA4OjQ1IHAubS4sIFNlYW4gUGF1bCB3cm90ZToKPiAKPiAKPiBPbiBNb24s IEp1biA3LCAyMDIxIGF0IDI6MzcgUE0gSGFycnkgV2VudGxhbmQgPGhhcnJ5LndlbnRsYW5kQGFt ZC5jb20gPG1haWx0bzpoYXJyeS53ZW50bGFuZEBhbWQuY29tPj4gd3JvdGU6Cj4gCj4gICAgIE9u IDIwMjEtMDYtMDcgMjoxOSBwLm0uLCBTZWFuIFBhdWwgd3JvdGU6Cj4gICAgID4gT24gVHVlLCBN YXkgMTgsIDIwMjEgYXQgMjo1OCBQTSBSb2RyaWdvIFNpcXVlaXJhCj4gICAgID4gPFJvZHJpZ28u U2lxdWVpcmFAYW1kLmNvbSA8bWFpbHRvOlJvZHJpZ28uU2lxdWVpcmFAYW1kLmNvbT4+IHdyb3Rl Ogo+ICAgICA+Pgo+ICAgICA+PiBPbiAwNS8xNCwgTWFyayBZYWNvdWIgd3JvdGU6Cj4gICAgID4+ PiBPbiBGcmksIE1heSAxNCwgMjAyMSBhdCAxMjozMSBQTSBNYXJrIFlhY291YiA8bWFya3lhY291 YkBnb29nbGUuY29tIDxtYWlsdG86bWFya3lhY291YkBnb29nbGUuY29tPj4gd3JvdGU6Cj4gICAg ID4+Pj4KPiAgICAgPj4+PiBPbiBGcmksIE1heSAxNCwgMjAyMSBhdCAxMToyOCBBTSBIYXJyeSBX ZW50bGFuZCA8aGFycnkud2VudGxhbmRAYW1kLmNvbSA8bWFpbHRvOmhhcnJ5LndlbnRsYW5kQGFt ZC5jb20+PiB3cm90ZToKPiAgICAgPj4+Pj4KPiAgICAgPj4+Pj4gT24gMjAyMS0wNS0xNCA3OjQ3 IGEubS4sIFJvZHJpZ28gU2lxdWVpcmEgd3JvdGU6Cj4gICAgID4+Pj4+PiBBIGZldyB3ZWVrcyBh Z28sIHdlIHNhdyBhIHR3byBjdXJzb3IgaXNzdWUgaW4gYSBDaHJvbWVPUyBzeXN0ZW0uIFdlCj4g ICAgID4+Pj4+PiBmaXhlZCBpdCBpbiB0aGUgY29tbWl0Ogo+ICAgICA+Pj4+Pj4KPiAgICAgPj4+ Pj4+wqAgZHJtL2FtZC9kaXNwbGF5OiBGaXggdHdvIGN1cnNvciBkdXBsaWNhdGlvbiB3aGVuIHVz aW5nIG92ZXJsYXkKPiAgICAgPj4+Pj4+wqAgKHJlYWQgdGhlIGNvbW1pdCBtZXNzYWdlIGZvciBt b3JlIGRldGFpbHMpCj4gICAgID4+Pj4+Pgo+ICAgICA+Pj4+Pj4gQWZ0ZXIgdGhpcyBjaGFuZ2Us IHdlIG5vdGljZWQgdGhhdCBzb21lIElHVCBzdWJ0ZXN0cyByZWxhdGVkIHRvCj4gICAgID4+Pj4+ PiBrbXNfcGxhbmUgYW5kIGttc19wbGFuZV9zY2FsaW5nIHN0YXJ0ZWQgdG8gZmFpbC4gQWZ0ZXIg aW52ZXN0aWdhdGluZwo+ICAgICA+Pj4+Pj4gdGhpcyBpc3N1ZSwgd2Ugbm90aWNlZCB0aGF0IGFs bCBzdWJ0ZXN0cyB0aGF0IGZhaWwgaGF2ZSBhIHByaW1hcnkgcGxhbmUKPiAgICAgPj4+Pj4+IGNv dmVyaW5nIHRoZSBvdmVybGF5IHBsYW5lLCB3aGljaCBpcyBjdXJyZW50bHkgcmVqZWN0ZWQgYnkg YW1kZ3B1IGRtLgo+ICAgICA+Pj4+Pj4gRmFpbCB0aG9zZSBJR1QgdGVzdHMgaGlnaGxpZ2h0IHRo YXQgb3VyIHZlcmlmaWNhdGlvbiB3YXMgdG9vIGJyb2FkIGFuZAo+ICAgICA+Pj4+Pj4gY29tcHJv bWlzZXMgdGhlIG92ZXJsYXkgdXNhZ2UgaW4gb3VyIGRyaXZlLiBUaGlzIHBhdGNoIGZpeGVzIHRo aXMgaXNzdWUKPiAgICAgPj4+IG5pdDogcy9kcml2ZS9kcml2ZXI/Cj4gICAgID4+Pj4+PiBieSBl bnN1cmluZyB0aGF0IHdlIG9ubHkgcmVqZWN0IGNvbW1pdHMgd2hlcmUgdGhlIHByaW1hcnkgcGxh bmUgaXMgbm90Cj4gICAgID4+Pj4+PiBmdWxseSBjb3ZlcmVkIGJ5IHRoZSBvdmVybGF5IHdoZW4g dGhlIGN1cnNvciBoYXJkd2FyZSBpcyBlbmFibGVkLiBXaXRoCj4gICAgID4+Pj4+PiB0aGlzIGZp eCwgYWxsIElHVCB0ZXN0cyBzdGFydCB0byBwYXNzIGFnYWluLCB3aGljaCBtZWFucyBvdXIgb3Zl cmxheQo+ICAgICA+Pj4+Pj4gc3VwcG9ydCB3b3JrcyBhcyBleHBlY3RlZC4KPiAgICAgPj4+Pj4+ Cj4gICAgID4+Pj4+PiBDYzogVGlhbmNpLllpbiA8dGlhbmNpLnlpbkBhbWQuY29tIDxtYWlsdG86 dGlhbmNpLnlpbkBhbWQuY29tPj4KPiAgICAgPj4+Pj4+IENjOiBIYXJyeSBXZW50bGFuZCA8aGFy cnkud2VudGxhbmRAYW1kLmNvbSA8bWFpbHRvOmhhcnJ5LndlbnRsYW5kQGFtZC5jb20+Pgo+ICAg ICA+Pj4+Pj4gQ2M6IE5pY2hvbGFzIENob2kgPG5pY2hvbGFzLmNob2lAYW1kLmNvbSA8bWFpbHRv Om5pY2hvbGFzLmNob2lAYW1kLmNvbT4+Cj4gICAgID4+Pj4+PiBDYzogQmhhd2FucHJlZXQgTGFr aGEgPGJoYXdhbnByZWV0Lmxha2hhQGFtZC5jb20gPG1haWx0bzpiaGF3YW5wcmVldC5sYWtoYUBh bWQuY29tPj4KPiAgICAgPj4+Pj4+IENjOiBOaWNob2xhcyBLYXpsYXVza2FzIDxOaWNob2xhcy5L YXpsYXVza2FzQGFtZC5jb20gPG1haWx0bzpOaWNob2xhcy5LYXpsYXVza2FzQGFtZC5jb20+Pgo+ ICAgICA+Pj4+Pj4gQ2M6IE1hcmsgWWFjb3ViIDxtYXJreWFjb3ViQGdvb2dsZS5jb20gPG1haWx0 bzptYXJreWFjb3ViQGdvb2dsZS5jb20+Pgo+ICAgICA+Pj4+Pj4gQ2M6IERhbmllbCBXaGVlbGVy IDxkYW5pZWwud2hlZWxlckBhbWQuY29tIDxtYWlsdG86ZGFuaWVsLndoZWVsZXJAYW1kLmNvbT4+ Cj4gICAgID4+Pj4+Pgo+ICAgICA+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogUm9kcmlnbyBTaXF1ZWly YSA8Um9kcmlnby5TaXF1ZWlyYUBhbWQuY29tIDxtYWlsdG86Um9kcmlnby5TaXF1ZWlyYUBhbWQu Y29tPj4KPiAgICAgPj4+Pj4+IC0tLQo+ICAgICA+Pj4+Pj7CoCBkcml2ZXJzL2dwdS9kcm0vYW1k L2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5jIHwgMTAgKysrKysrKysrLQo+ICAgICA+Pj4+ Pj7CoCAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4gICAg ID4+Pj4+Pgo+ICAgICA+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlz cGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkv YW1kZ3B1X2RtL2FtZGdwdV9kbS5jCj4gICAgID4+Pj4+PiBpbmRleCBjY2Q2NzAwM2IxMjAuLjlj MjUzN2ExN2E3YiAxMDA2NDQKPiAgICAgPj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv ZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmMKPiAgICAgPj4+Pj4+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmMKPiAgICAgPj4+Pj4+IEBA IC0xMDA2Nyw3ICsxMDA2Nyw3IEBAIHN0YXRpYyBpbnQgdmFsaWRhdGVfb3ZlcmxheShzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gICAgID4+Pj4+PsKgIMKgIMKgIMKgaW50IGk7Cj4g ICAgID4+Pj4+PsKgIMKgIMKgIMKgc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4gICAgID4+Pj4+ PsKgIMKgIMKgIMKgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3BsYW5lX3N0YXRlLCAqbmV3 X3BsYW5lX3N0YXRlOwo+ICAgICA+Pj4+Pj4gLcKgIMKgIMKgc3RydWN0IGRybV9wbGFuZV9zdGF0 ZSAqcHJpbWFyeV9zdGF0ZSwgKm92ZXJsYXlfc3RhdGUgPSBOVUxMOwo+ICAgICA+Pj4+Pj4gK8Kg IMKgIMKgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcHJpbWFyeV9zdGF0ZSwgKmN1cnNvcl9zdGF0 ZSwgKm92ZXJsYXlfc3RhdGUgPSBOVUxMOwo+ICAgICA+Pj4+Pj4KPiAgICAgPj4+Pj4+wqAgwqAg wqAgwqAvKiBDaGVjayBpZiBwcmltYXJ5IHBsYW5lIGlzIGNvbnRhaW5lZCBpbnNpZGUgb3Zlcmxh eSAqLwo+ICAgICA+Pj4+Pj7CoCDCoCDCoCDCoGZvcl9lYWNoX29sZG5ld19wbGFuZV9pbl9zdGF0 ZV9yZXZlcnNlKHN0YXRlLCBwbGFuZSwgb2xkX3BsYW5lX3N0YXRlLCBuZXdfcGxhbmVfc3RhdGUs IGkpIHsKPiAgICAgPj4+Pj4+IEBAIC0xMDA5Nyw2ICsxMDA5NywxNCBAQCBzdGF0aWMgaW50IHZh bGlkYXRlX292ZXJsYXkoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICAgICA+Pj4+ Pj7CoCDCoCDCoCDCoGlmICghcHJpbWFyeV9zdGF0ZS0+Y3J0YykKPiAgICAgPj4+Pj4+wqAgwqAg wqAgwqAgwqAgwqAgwqAgwqByZXR1cm4gMDsKPiAgICAgPj4+Pj4+Cj4gICAgID4+Pj4+PiArwqAg wqAgwqAvKiBjaGVjayBpZiBjdXJzb3IgcGxhbmUgaXMgZW5hYmxlZCAqLwo+ICAgICA+Pj4+Pj4g K8KgIMKgIMKgY3Vyc29yX3N0YXRlID0gZHJtX2F0b21pY19nZXRfcGxhbmVfc3RhdGUoc3RhdGUs IG92ZXJsYXlfc3RhdGUtPmNydGMtPmN1cnNvcik7Cj4gICAgID4+Pj4+PiArwqAgwqAgwqBpZiAo SVNfRVJSKGN1cnNvcl9zdGF0ZSkpCj4gICAgID4+Pj4+PiArwqAgwqAgwqAgwqAgwqAgwqAgwqBy ZXR1cm4gUFRSX0VSUihjdXJzb3Jfc3RhdGUpOwo+ICAgICA+Pj4+Pj4gKwo+ICAgICA+Pj4+Pj4g K8KgIMKgIMKgaWYgKGRybV9hdG9taWNfcGxhbmVfZGlzYWJsaW5nKHBsYW5lLT5zdGF0ZSwgY3Vy c29yX3N0YXRlKSkKPiAgICAgPj4+Pj4+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoHJldHVybiAwOwo+ ICAgICA+Pj4+Pj4gKwo+ICAgICA+Pj4+Pgo+ICAgICA+Pj4+PiBJIHRob3VnaHQgdGhpcyBicmVh a3MgQ2hyb21lJ3MgY29tcG9zaXRvciBzaW5jZSBpdCBjYW4ndCBoYW5kbGUgYW4gYXRvbWljIGNv bW1pdCByZWplY3Rpb24KPiAgICAgPj4+Pj4gYmFzZWQgc29sZWx5IG9uIHdoZXRoZXIgYSBjdXJz b3IgaXMgZW5hYmxlZCBvciBub3QuCj4gICAgID4+PiBGb3IgY29udGV4dDogVG8gdXNlIG92ZXJs YXlzICh0aGUgb2xkL2N1cnJlbnQgYXN5bmMgd2F5KSwgQ2hyb21lIHRlc3RzCj4gICAgID4+PiBp ZiBhbiBvdmVybGF5IHN0cmF0ZWd5IHdpbGwgd29yayBieSBkb2luZyBhbiBhdG9taWMgY29tbWl0 IHdpdGggYSBURVNUCj4gICAgID4+PiBmbGFnIHRvIGNoZWNrIGlmIHRoZSBjb21iaW5hdGlvbiB3 b3VsZCB3b3JrLiBJZiBpdCB3b3JrcywgaXQgZmxhZ3MKPiAgICAgPj4+IHRoaXMgcGxhbmVzIGNv bmZpZ3VyYXRpb24gYXMgdmFsaWQuIEFzIGl0J3MgdmFsaWQsIGl0IHBlcmZvcm1zIGFuCj4gICAg ID4+PiBhdG9taWMgcGFnZSBmbGlwICh3aGljaCBjb3VsZCBhbHNvIGluY2x1ZGUgdGhlIGN1cnNv cikuCj4gICAgID4+PiBTbyB0byBIYXJyeSdzIHBvaW50LCB5b3Ugd291bGQgcGFzcyBhbiBhdG9t aWMgdGVzdCBidXQgZmFpbCBvbiBhbgo+ICAgICA+Pj4gYXRvbWljIHBhZ2UgZmxpcCB3aXRoIHRo ZSBleGFjdCBzYW1lIGNvbmZpZ3VyYXRpb24gdGhhdCdzIGJlZW4gZmxhZ2dlZAo+ICAgICA+Pj4g YXMgdmFsaWQuIEZhaWxpbmcgYSBwYWdlZmxpcCBjYXVzZXMgQ2hyb21lIHRvIGNyYXNoIChSZXNl dCB0aGUgR1BVCj4gICAgID4+PiBwcm9jZXNzIGNhdXNlIHNvbWV0aGluZyB3ZW50IGhvcnJpYmx5 IHdyb25nIHdoZW4gaXQgc2hvdWxkbid0KS4KPiAgICAgPj4KPiAgICAgPj4gSGkgTWFyayBhbmQg U2VhbiwKPiAgICAgPj4KPiAgICAgPj4gSSBkb24ndCBrbm93IGlmIEkgZnVsbHkgY29tcHJlaGVu ZGVkIHRoZSBzY2VuYXJpbyB3aGljaCBpbiBteSBwYXRjaAo+ICAgICA+PiBtaWdodCBjYXVzZSBh IENocm9tZU9TIGNyYXNoLCBidXQgdGhpcyBpcyB3aGF0IEkgdW5kZXJzdG9vZDoKPiAgICAgPj4K PiAgICAgPgo+ICAgICA+IENocm9tZSBjb21wb3NpdG9yIG9ubHkgZG9lcyBhbiBhdG9taWMgdGVz dCB3aGVuIHRoZSBsYXlvdXQgZ2VvbWV0cnkKPiAgICAgPiBjaGFuZ2VzIChpZTogcGxhbmUgaXMg YWRkZWQvcmVtb3ZlZC9yZXNpemVkL21vdmVkKS4gVGhpcyBkb2VzIG5vdCB0YWtlCj4gICAgID4g aW50byBjb25zaWRlcmF0aW9uIHRoZSBjdXJzb3IuIE9uY2UgdGhlIGF0b21pYyB0ZXN0IGhhcyBi ZWVuIHZhbGlkYXRlZAo+ICAgICA+IGZvciBhIGdpdmVuIGxheW91dCBnZW9tZXRyeSAoc2V0IG9m IHBsYW5lcy9mYnMgYWxvbmcgd2l0aCB0aGVpciBzaXplcwo+ICAgICA+IGFuZCBsb2NhdGlvbnMp LCBDaHJvbWUgYXNzdW1lcyB0aGlzIHdpbGwgY29udGludWUgdG8gYmUgdmFsaWQuCj4gICAgID4K PiAgICAgPiBTbyB0aGUgc2l0dWF0aW9uIEknbSBlbnZpc2lvbmluZyBpcyBpZiB0aGUgY3Vyc29y IGlzIGhpZGRlbiwgYW4KPiAgICAgPiBvdmVybGF5LWJhc2VkIHN0cmF0ZWd5IHdpbGwgcGFzcyBp biB0aGUga2VybmVsLiBJZiBhdCBhbnkgdGltZSB0aGUKPiAgICAgPiBjdXJzb3IgYmVjb21lcyB2 aXNpYmxlLCB0aGUga2VybmVsIHdpbGwgc3RhcnQgZmFpbGluZyBjb21taXRzIHdoaWNoCj4gICAg ID4gY2F1c2VzIENocm9tZSdzIEdQVSBwcm9jZXNzIHRvIGNyYXNoLgo+ICAgICA+Cj4gICAgID4g SW4gZ2VuZXJhbCBJJ20gdW5lYXN5IHdpdGggdXNpbmcgdGhlIGN1cnNvciBpbiB0aGUgYXRvbWlj IGNoZWNrIHNpbmNlCj4gICAgID4gaXQgZmVlbHMgbGlrZSBpdCBjb3VsZCBiZSByYWN5IGluZGVw ZW5kZW50IG9mIHRoZSBpc3N1ZSBhYm92ZS4gSQo+ICAgICA+IGhhdmVuJ3QgZG92ZSBpbnRvIHRo ZSBoZWxwZXIgY29kZSBlbm91Z2ggdG8gcHJvdmUgaXQsIGp1c3QgYQo+ICAgICA+IHNwaWRleS1z ZW5zZS4KPiAgICAgPgo+IAo+ICAgICBJc24ndCB0aGUgY3Vyc29yIHN1cHBvc2VkIHRvIGJlIGp1 c3QgYW5vdGhlciBwbGFuZT8gSWYgc28sIHNob3VsZG4ndAo+ICAgICBhZGRpbmcvcmVtb3Zpbmcg dGhlIGN1cnNvciB0cmlnZ2VyIGFuIGF0b21pYyB0ZXN0Pwo+IAo+IAo+IENocm9tZSBpcyB1c2lu ZyBsZWdhY3kgY3Vyc29yLgo+IAo+IFllcyBpdCB3aWxsIHRyaWdnZXIgYW4gYXRvbWljIHRlc3Qg aW4gdGhlIGtlcm5lbCwgYW5kIHRoYXQgYXRvbWljIHRlc3Qgd2lsbCBmYWlsLiBVbmZvcnR1bmF0 ZWx5IENocm9tZSBkb2VzIG5vdCBleHBlY3QgYSBmYWlsdXJlIHNvIGl0IHdpbGwgY3Jhc2guCgpU aGUgc29sdXRpb24gaXMgcHJvYmFibHkgaW5kZWVkIGZvciBhdG9taWMgY2hlY2sgdG8gcmVqZWN0 IHN0YXRlIHdoaWNoIGNvdWxkbid0IHdvcmsgaWYgdGhlIGN1cnNvciB3YXMgZW5hYmxlZCwgZXZl biBpZiB0aGUgY3Vyc29yIGlzIGN1cnJlbnRseSBkaXNhYmxlZC4gT3RoZXJ3aXNlIG9uZSBjYW4g aGl0IHZhcmlvdXMgc3VycHJpc2luZyBlcnJvcnMgdmlhIGxlZ2FjeSBBUElzLCBhcyBkZXNjcmli ZWQgaW4gYjgzNmEyNzRiNzk3ICJkcm0vYW1kZ3B1L2RjOiBSZXF1aXJlIHByaW1hcnkgcGxhbmUg dG8gYmUgZW5hYmxlZCB3aGVuZXZlciB0aGUgQ1JUQyBpcyIuCgoKLS0gCkVhcnRobGluZyBNaWNo ZWwgRMOkbnplciAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICBodHRwczovL3JlZGhhdC5j b20KTGlicmUgc29mdHdhcmUgZW50aHVzaWFzdCAgICAgICAgICAgICB8ICAgICAgICAgICAgIE1l c2EgYW5kIFggZGV2ZWxvcGVyCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdm eAo=