From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH v6 6/6] drm/i915: Add NV12 as supported format for sprite plane Date: Mon, 7 May 2018 10:28:37 +0200 Message-ID: References: <1525628685-24554-1-git-send-email-vidya.srinivas@intel.com> <1525628685-24554-7-git-send-email-vidya.srinivas@intel.com> <40dcab43-10d0-e759-324f-9dd198c5e54b@linux.intel.com> <75c168f9-1cd0-f320-0ae3-41447de9c6ca@linux.intel.com> <351d6369-2407-a1d0-d171-cc1efe4d1255@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id E96306E333 for ; Mon, 7 May 2018 08:30:20 +0000 (UTC) In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Srinivas, Vidya" , "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T3AgMDctMDUtMTggb20gMTA6Mjkgc2NocmVlZiBTcmluaXZhcywgVmlkeWE6Cj4KPj4gLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0KPj4gRnJvbTogTWFhcnRlbiBMYW5raG9yc3QgW21haWx0bzpt YWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb21dCj4+IFNlbnQ6IE1vbmRheSwgTWF5IDcs IDIwMTggMTo1NSBQTQo+PiBUbzogU3Jpbml2YXMsIFZpZHlhIDx2aWR5YS5zcmluaXZhc0BpbnRl bC5jb20+OyBpbnRlbC0KPj4gZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiBTdWJqZWN0OiBS ZTogW0ludGVsLWdmeF0gW1BBVENIIHY2IDYvNl0gZHJtL2k5MTU6IEFkZCBOVjEyIGFzIHN1cHBv cnRlZAo+PiBmb3JtYXQgZm9yIHNwcml0ZSBwbGFuZQo+Pgo+PiBPcCAwNy0wNS0xOCBvbSAxMDoy MCBzY2hyZWVmIFNyaW5pdmFzLCBWaWR5YToKPj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQo+Pj4+IEZyb206IFNyaW5pdmFzLCBWaWR5YQo+Pj4+IFNlbnQ6IE1vbmRheSwgTWF5IDcsIDIw MTggMTo0NiBQTQo+Pj4+IFRvOiAnTWFhcnRlbiBMYW5raG9yc3QnIDxtYWFydGVuLmxhbmtob3Jz dEBsaW51eC5pbnRlbC5jb20+OyBpbnRlbC0KPj4+PiBnZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cj4+Pj4gU3ViamVjdDogUkU6IFtJbnRlbC1nZnhdIFtQQVRDSCB2NiA2LzZdIGRybS9pOTE1OiBB ZGQgTlYxMiBhcwo+Pj4+IHN1cHBvcnRlZCBmb3JtYXQgZm9yIHNwcml0ZSBwbGFuZQo+Pj4+Cj4+ Pj4KPj4+Pgo+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+Pj4+PiBGcm9tOiBNYWFy dGVuIExhbmtob3JzdCBbbWFpbHRvOm1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbV0K Pj4+Pj4gU2VudDogTW9uZGF5LCBNYXkgNywgMjAxOCAxOjQ0IFBNCj4+Pj4+IFRvOiBTcmluaXZh cywgVmlkeWEgPHZpZHlhLnNyaW5pdmFzQGludGVsLmNvbT47IGludGVsLQo+Pj4+PiBnZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCj4+Pj4+IFN1YmplY3Q6IFJlOiBbSW50ZWwtZ2Z4XSBbUEFUQ0gg djYgNi82XSBkcm0vaTkxNTogQWRkIE5WMTIgYXMKPj4+Pj4gc3VwcG9ydGVkIGZvcm1hdCBmb3Ig c3ByaXRlIHBsYW5lCj4+Pj4+Cj4+Pj4+IE9wIDA3LTA1LTE4IG9tIDEwOjExIHNjaHJlZWYgU3Jp bml2YXMsIFZpZHlhOgo+Pj4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4+Pj4+Pj4g RnJvbTogTWFhcnRlbiBMYW5raG9yc3QgW21haWx0bzptYWFydGVuLmxhbmtob3JzdEBsaW51eC5p bnRlbC5jb21dCj4+Pj4+Pj4gU2VudDogTW9uZGF5LCBNYXkgNywgMjAxOCAxOjM4IFBNCj4+Pj4+ Pj4gVG86IFNyaW5pdmFzLCBWaWR5YSA8dmlkeWEuc3Jpbml2YXNAaW50ZWwuY29tPjsgaW50ZWwt Cj4+Pj4+Pj4gZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+Pj4+Pj4+IFN1YmplY3Q6IFJlOiBb SW50ZWwtZ2Z4XSBbUEFUQ0ggdjYgNi82XSBkcm0vaTkxNTogQWRkIE5WMTIgYXMKPj4+Pj4+PiBz dXBwb3J0ZWQgZm9ybWF0IGZvciBzcHJpdGUgcGxhbmUKPj4+Pj4+Pgo+Pj4+Pj4+IE9wIDA2LTA1 LTE4IG9tIDE5OjQ0IHNjaHJlZWYgVmlkeWEgU3Jpbml2YXM6Cj4+Pj4+Pj4+IEZyb206IENoYW5k cmEgS29uZHVydSA8Y2hhbmRyYS5rb25kdXJ1QGludGVsLmNvbT4KPj4+Pj4+Pj4KPj4+Pj4+Pj4g VGhpcyBwYXRjaCBhZGRzIE5WMTIgdG8gbGlzdCBvZiBzdXBwb3J0ZWQgZm9ybWF0cyBmb3Igc3By aXRlIHBsYW5lLgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiB2MjogUmViYXNlZCAobWUpCj4+Pj4+Pj4+Cj4+ Pj4+Pj4+IHYzOiBSZXZpZXcgY29tbWVudHMgYnkgVmlsbGUgYWRkcmVzc2VkCj4+Pj4+Pj4+IC0g UmVtb3ZlZCBza2xfcGxhbmVfZm9ybWF0c193aXRoX252MTIgYW5kIGFkZGVkCj4+Pj4+Pj4+IE5W MTIgY2FzZSBpbiBleGlzdGluZyBza2xfcGxhbmVfZm9ybWF0cwo+Pj4+Pj4+PiAtIEFkZGVkIHRo ZSAxMGJwYyBSR0IgZm9ybWF0cwo+Pj4+Pj4+Pgo+Pj4+Pj4+PiB2NDogQWRkcmVzc2VkIHJldmll dyBjb21tZW50cyBmcm9tIENsaW50b24gQSBUYXlsb3IgIldoeSBhcmUgd2UKPj4+Pj4+PiBhZGRp bmcKPj4+Pj4+Pj4gMTAgYml0IFJHQiBmb3JtYXRzIHdpdGggdGhlIE5WMTIgc2VyaWVzIHBhdGNo ZXM/Cj4+Pj4+Pj4+IFRyeWluZyB0byBzZXQgWFIzMCBvciBBQjMwIHJlc3VsdHMgaW4gZXJyb3Ig cmV0dXJuZWQgZXZlbiB0aG91Z2gKPj4+Pj4+Pj4gdGhlIG1vZGVzIGFyZSBhZHZlcnRpc2VkIGZv ciB0aGUgcGxhbmVzIgo+Pj4+Pj4+PiAtIFJlbW92ZWQgMTBiaXQgUkdCIGZvcm1hdHMgYWRkZWQg cHJldmlvdXNseSB3aXRoIE5WMTIgc2VyaWVzCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IHY1OiBNaXNzZWQg dGhlIFRlc3RlZC1ieS9SZXZpZXdlZC1ieSBpbiB0aGUgcHJldmlvdXMgc2VyaWVzCj4+Pj4+Pj4+ IEFkZGluZyB0aGUgc2FtZSB0byBjb21taXQgbWVzc2FnZSBpbiB0aGlzIHZlcnNpb24uCj4+Pj4+ Pj4+IEFkZHJlc3NlZCByZXZpZXcgY29tbWVudHMgZnJvbSBDbGludG9uIEEgVGF5bG9yICJXaHkg YXJlIHdlCj4+Pj4gYWRkaW5nCj4+Pj4+Pj4+IDEwIGJpdCBSR0IgZm9ybWF0cyB3aXRoIHRoZSBO VjEyIHNlcmllcyBwYXRjaGVzPwo+Pj4+Pj4+PiBUcnlpbmcgdG8gc2V0IFhSMzAgb3IgQUIzMCBy ZXN1bHRzIGluIGVycm9yIHJldHVybmVkIGV2ZW4gdGhvdWdoCj4+Pj4+Pj4+IHRoZSBtb2RlcyBh cmUgYWR2ZXJ0aXNlZCBmb3IgdGhlIHBsYW5lcyIKPj4+Pj4+Pj4gLSBQcmV2aW91cyB2ZXJzaW9u IGhhcyAxMGJpdCBSR0IgZm9ybWF0IHJlbW92ZWQgZnJvbSBWTFYgZm9ybWF0cwo+Pj4+Pj4+PiBi eSBtaXN0YWtlLiBGaXhpbmcgdGhhdCBpbiB0aGlzIHZlcnNpb24uCj4+Pj4+Pj4+IFJlbW92ZWQg MTBiaXQgUkdCIGZvcm1hdHMgYWRkZWQgcHJldmlvdXNseSB3aXRoIE5WMTIgc2VyaWVzIGZvcgo+ Pj4+IFNLTC4KPj4+Pj4+Pj4gdjY6IEFkZHJlc3NlZCByZXZpZXcgY29tbWVudHMgYnkgVmlsbGUg UmVzdHJpY3RpbmcgdGhlIE5WMTIgdG8KPj4+Pj4+Pj4gQlhUIGFuZCBQSVBFIEEgYW5kIEIKPj4+ Pj4+Pj4KPj4+Pj4+Pj4gdjc6IFJlYmFzZWQgKG1lKQo+Pj4+Pj4+Pgo+Pj4+Pj4+PiB2ODogUmVi YXNlZCAobWUpCj4+Pj4+Pj4+IFJlc3RyaWN0aW5nIE5WMTIgY2hhbmdlcyB0byBCWFQgYW5kIEtC TCBSZXN0cmljdGluZyBOVjEyIGNoYW5nZXMKPj4+Pj4+Pj4gZm9yIHBsYW5lIDAgKG92ZXJsYXkp Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IHY5OiBSZWJhc2VkIChtZSkKPj4+Pj4+Pj4KPj4+Pj4+Pj4gdjEw OiBBZGRyZXNzZWQgcmV2aWV3IGNvbW1lbnRzIGZyb20gTWFhcnRlbi4KPj4+Pj4+Pj4gQWRkaW5n IE5WMTIgdG8gc2tsX3BsYW5lX2Zvcm1hdHMgaXRzZWxmLgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiB2MTE6 IEFkZHJlc3NlZCByZXZpZXcgY29tbWVudHMgZnJvbSBTaGFzaGFuayBTaGFybWEKPj4+Pj4+Pj4K Pj4+Pj4+Pj4gdjEyOiBBZGRyZXNzZWQgcmV2aWV3IGNvbW1lbnRzIGZyb20gU2hhc2hhbmsgU2hh cm1hIE1hZGUgdGhlCj4+Pj4+Pj4gY29uZGl0aW9uCj4+Pj4+Pj4+IGluIGludGVsX3Nwcml0ZV9w bGFuZV9jcmVhdGUgc2ltcGxlIGFuZCBlYXN5IHRvIHJlYWQgYXMgc3VnZ2VzdGVkLgo+Pj4+Pj4+ Pgo+Pj4+Pj4+PiB2MTM6IEFkZGluZyByZXZpZXdlZCBieSB0YWcgZnJvbSBTaGFzaGFuayBTaGFy bWEgQWRkcmVzc2VkCj4+IHJldmlldwo+Pj4+Pj4+PiBjb21tZW50cyBmcm9tIEp1aGEtUGVra2Eg SGVpa2tpbGEKPj4+Pj4+Pj4gIk5WMTIgbm90IHRvIGJlIHN1cHBvcnRlZCBieSBTS0wiCj4+Pj4+ Pj4+Cj4+Pj4+Pj4+IHYxNDogQWRkcmVzc2VkIHJldmlldyBjb21tZW50cyBmcm9tIFZpbGxlIEFk ZGVkCj4+Pj4gc2tsX3BsYW5hcl9mb3JtYXRzCj4+Pj4+Pj4+IHRvIGluY2x1ZGUgTlYxMiBhbmQg YSBjaGVjayBza2xfcGxhbmVfaGFzX3BsYW5hciBpbiBzcHJpdGUgY3JlYXRlCj4+Pj4+Pj4+IEFk ZGVkCj4+Pj4+Pj4+IE5WMTIgZm9ybWF0IHRvIHNrbF9tb2Rfc3VwcG9ydGVkLiBUaGVzZSB3ZXJl IHJldmlldyBjb21tZW50cwo+Pj4+PiBmcm9tCj4+Pj4+Pj4+IEtyaXN0aWFuIEjDuGdzYmVyZyA8 aG9lZ3NiZXJnQGdtYWlsLmNvbT4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gdjE1OiBBZGRlZCByZXZpZXdl ZCBieSBmcm9tIEp1aGEtUGVra2EgSGVpa2tpbGEKPj4+Pj4+Pj4KPj4+Pj4+Pj4gdjE2OiBSZWJh c2VkIHRoZSBzZXJpZXMKPj4+Pj4+Pj4KPj4+Pj4+Pj4gdjE3OiBBZGRlZCBhbGwgdGlsaW5nIHVu ZGVyIG1vZCBzdXBwb3J0ZWQgZm9yIE5WMTIgQ3JlZGl0cyB0bwo+Pj4+Pj4+PiBNZWdoYSBBZ2dh cndhbAo+Pj4+Pj4+Pgo+Pj4+Pj4+PiB2MTg6IEFkZGVkIFJCIGJ5IE1hYXJ0ZW4gYW5kIEtyaXN0 aWFuCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IENyZWRpdHMtdG86IE1lZ2hhIEFnZ2Fyd2FsIDxtZWdoYS5h Z2dhcndhbEBpbnRlbC5jb20+Cj4+Pj4+Pj4+IENyZWRpdHMtdG86IEtyaXN0aWFuIEjDuGdzYmVy ZyA8aG9lZ3NiZXJnQGdtYWlsLmNvbT4KPj4+Pj4+Pj4gUmV2aWV3ZWQtYnk6IEtyaXN0aWFuIEjD uGdzYmVyZyA8aG9lZ3NiZXJnQGdtYWlsLmNvbT4KPj4+Pj4+Pj4gUmV2aWV3ZWQtYnk6IE1hYXJ0 ZW4gTGFua2hvcnN0Cj4+Pj4gPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPj4+ Pj4+Pj4gVGVzdGVkLWJ5OiBDbGludG9uIFRheWxvciA8Y2xpbnRvbi5hLnRheWxvckBpbnRlbC5j b20+Cj4+Pj4+Pj4+IFJldmlld2VkLWJ5OiBKdWhhLVBla2thIEhlaWtraWxhIDxqdWhhcGVra2Eu aGVpa2tpbGFAZ21haWwuY29tPgo+Pj4+Pj4+PiBSZXZpZXdlZC1ieTogU2hhc2hhbmsgU2hhcm1h IDxzaGFzaGFuay5zaGFybWFAaW50ZWwuY29tPgo+Pj4+Pj4+PiBSZXZpZXdlZC1ieTogQ2xpbnRv biBUYXlsb3IgPGNsaW50b24uYS50YXlsb3JAaW50ZWwuY29tPgo+Pj4+Pj4+PiBTaWduZWQtb2Zm LWJ5OiBDaGFuZHJhIEtvbmR1cnUgPGNoYW5kcmEua29uZHVydUBpbnRlbC5jb20+Cj4+Pj4+Pj4+ IFNpZ25lZC1vZmYtYnk6IE5hYmVuZHUgTWFpdGkgPG5hYmVuZHUuYmlrYXNoLm1haXRpQGludGVs LmNvbT4KPj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogVmlkeWEgU3Jpbml2YXMgPHZpZHlhLnNyaW5p dmFzQGludGVsLmNvbT4KPj4+Pj4+Pj4gLS0tCj4+Pj4+Pj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9zcHJpdGUuYyB8IDI5Cj4+Pj4+Pj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tCj4+Pj4+Pj4+ICAxIGZpbGUgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv bnMoLSkKPj4+Pj4+Pj4KPj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3Nwcml0ZS5jCj4+Pj4+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3By aXRlLmMKPj4+Pj4+Pj4gaW5kZXggYzczNTUzYS4uY2RjYWU5ZSAxMDA2NDQKPj4+Pj4+Pj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPj4+Pj4+Pj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPj4+Pj4+Pj4gQEAgLTExODAsNiArMTE4 MCwxOSBAQCBzdGF0aWMgdWludDMyX3Qgc2tsX3BsYW5lX2Zvcm1hdHNbXSA9IHsKPj4+Pj4+Pj4g IAlEUk1fRk9STUFUX1ZZVVksCj4+Pj4+Pj4+ICB9Owo+Pj4+Pj4+Pgo+Pj4+Pj4+PiArc3RhdGlj IHVpbnQzMl90IHNrbF9wbGFuYXJfZm9ybWF0c1tdID0gewo+Pj4+Pj4+PiArCURSTV9GT1JNQVRf UkdCNTY1LAo+Pj4+Pj4+PiArCURSTV9GT1JNQVRfQUJHUjg4ODgsCj4+Pj4+Pj4+ICsJRFJNX0ZP Uk1BVF9BUkdCODg4OCwKPj4+Pj4+Pj4gKwlEUk1fRk9STUFUX1hCR1I4ODg4LAo+Pj4+Pj4+PiAr CURSTV9GT1JNQVRfWFJHQjg4ODgsCj4+Pj4+Pj4+ICsJRFJNX0ZPUk1BVF9ZVVlWLAo+Pj4+Pj4+ PiArCURSTV9GT1JNQVRfWVZZVSwKPj4+Pj4+Pj4gKwlEUk1fRk9STUFUX1VZVlksCj4+Pj4+Pj4+ ICsJRFJNX0ZPUk1BVF9WWVVZLAo+Pj4+Pj4+PiArCURSTV9GT1JNQVRfTlYxMiwKPj4+Pj4+Pj4g K307Cj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4gIHN0YXRpYyBjb25zdCB1aW50NjRfdCBza2xfcGxhbmVf Zm9ybWF0X21vZGlmaWVyc19ub2Njc1tdID0gewo+Pj4+Pj4+PiAgCUk5MTVfRk9STUFUX01PRF9Z Zl9USUxFRCwKPj4+Pj4+Pj4gIAlJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRCwKPj4+Pj4+Pj4gQEAg LTEyNzcsNiArMTI5MCwxMiBAQCBzdGF0aWMgYm9vbCBza2xfbW9kX3N1cHBvcnRlZCh1aW50MzJf dAo+Pj4+Pj4+IGZvcm1hdCwgdWludDY0X3QgbW9kaWZpZXIpCj4+Pj4+Pj4+ICAJCWlmIChtb2Rp ZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRUQpCj4+Pj4+Pj4+ICAJCQlyZXR1cm4gdHJ1 ZTsKPj4+Pj4+Pj4gIAkJLyogZmFsbCB0aHJvdWdoICovCj4+Pj4+Pj4+ICsJY2FzZSBEUk1fRk9S TUFUX05WMTI6Cj4+Pj4+Pj4+ICsJCWlmIChtb2RpZmllciA9PSBEUk1fRk9STUFUX01PRF9MSU5F QVIgfHwKPj4+Pj4+Pj4gKwkJICAgIG1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9YX1RJTEVE IHx8Cj4+Pj4+Pj4+ICsJCSAgICBtb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRCB8 fAo+Pj4+Pj4+PiArCQkgICAgbW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVEKQo+ Pj4+Pj4+PiArCQkJcmV0dXJuIHRydWU7Cj4+Pj4+Pj4gT24gcGF0Y2ggNSBhbmQgNjogdGhpcyBp cyBhIHRhZCBvdmVya2lsbCwganVzdCBwdXQgaXQgYmVsb3cKPj4+Pj4+PiBEUk1fRk9STUFUX1ZZ VVkgYW5kIGxldCBpdCBmYWxsIHRocm91Z2guIEl0J3Mgbm90IGRpZmZlcmVudCBmcm9tCj4+Pj4+ Pj4gdGhlIG90aGVyIGZvcm1hdHMuIDopIE90aGVyd2lzZSBsb29rcyBnb29kLCBJJ2xsIHdhaXQg dW50aWwgdGhlCj4+Pj4+Pj4gY2hhbmdlcyBmcm9tIGRybS1taXNjLSBuZXh0IGFyZSBtZXJnZWQg aW50byBkcm0taW50ZWwtbmV4dC1xdWV1ZWQKPj4+Pj4+PiB0aGVuIHRoaXMgc2VyaWVzIGNhbiBi ZSBhcHBsaWVkIHdpdGggdGhlIG1pbm9yIGZpeHVwLgo+Pj4+Pj4gU3VyZSwgdGhhbmsgeW91LiBJ J2xsIG1ha2UgdGhlIGNoYW5nZS4gSSBkaWQgdGhpcyB0byBmaXggYSByZXZpZXcKPj4+Pj4+IGNv bW1lbnQgLSB3aGljaCBzYWlkIGFsbCBtb2RpZmllcnMgYXJlbuKAmXQgQ292ZXJlZCBmb3IgTlYx MiAtIHdoZW4KPj4+Pj4+IHdlCj4+Pj4+IGVhcmxpZXIgaGFkIGl0IHVuZGVyIFZZVVYuIFdvdWxk IHRoYXQgYmUgc3RpbGwgb2theT8KPj4+Pj4gU2VlbXMgb25seSBDQ1MgaXNuJ3QgY292ZXJlZCwg c28gcHV0dGluZyBpdCB0aGVyZSBzaG91bGQgYmUgZmluZS4gOikKPj4+PiBPaCBva2F5IC0gc3Vy ZSB0aGFuayB5b3UuIFdpbGwgbWFrZSB0aGUgY2hhbmdlIGFuZCBmbG9hdCB0aGUgc2VyaWVzLgo+ Pj4gU29ycnkgdG8gYXNrIC0gdW5kZXIgVllVViBvbmx5IFlmX1RJTEVEIHJldHVybnMgdHJ1ZS4g RG9u4oCZdCB3ZSBuZWVkIHRvCj4+PiBhZGQgdGhlIG90aGVyIG1vZGlmaWVycyBsaWtlIE1PRF9M SU5FQVIsIE1PRF9YX1RJTEVEIGFuZAo+PiBNT0RfWV9USUxFRD8KPj4+PiBSZWdhcmRzCj4+Pj4g VmlkeWEKPj4gVGhpcyBpcyBhIEMgc3dpdGNoLCB1bmxlc3MgdGhlcmUgaXMgYSBicmVhayBpdCB3 aWxsIGNvbnRpbnVlLCBzbyBpdCB3b3JrcyBhcwo+PiBpbnRlbmRlZC4gOikKPj4KPj4gRm9yIGV4 YW1wbGUgZm9ybWF0IFVZVlkgaWYgbW9kaWZpZXIgPT0gWWZfVElMRURfQ0NTLCBpdCB3aWxsIGln bm9yZSBhbGwgdGhlCj4+IGxpbmVzIHdpdGggY2FzZSBhbmQgZGVmYXVsdCwgYW5kIGNvbnRpbnVl IHRvIHRoZSBlbmQgb2YgdGhlIHN3aXRjaAo+PiBzdGF0ZW1lbnQsIG9yIHVudGlsIGl0IGhpdHMg YSAnYnJlYWsnIHNvIHRoZSBiZWxvdzoKPiBJIGFtIHNvIHNvcnJ5LCBJIGRpZCBub3Qgbm90aWNl IHRoZXJlIHdhcyBubyBicmVhayA6KCBHb3QgY29uZnVzZWQuIFRoYW5rIHlvdS4KWWVhaCwgaW4g Z2VuZXJhbCB0aGF0J3Mgd2hhdCB0aGUgJ2ZhbGwgdGhyb3VnaCcgY29tbWVudCBpcyBmb3IsIHRv IG1ha2UgaXQgY2xlYXIgdGhhdCB0aGUgbGFjayBvZiBicmVhayBpcyBpbnRlbnRpb25hbCBhbmQg bm90IGEgYnVnLiA6KQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK