From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH 01/10] drm/rockchip: YUV overlays BT.601 color conversion. Date: Tue, 27 Feb 2018 10:03:01 -0500 Message-ID: <20180227150301.GA223881@art_vandelay> References: <20180215053300.70482-1-dcastagna@chromium.org> <20180215053300.70482-2-dcastagna@chromium.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-yw0-x242.google.com (mail-yw0-x242.google.com [IPv6:2607:f8b0:4002:c05::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 472836E6E0 for ; Tue, 27 Feb 2018 15:03:03 +0000 (UTC) Received: by mail-yw0-x242.google.com with SMTP id y186so6382613ywf.7 for ; Tue, 27 Feb 2018 07:03:03 -0800 (PST) Content-Disposition: inline In-Reply-To: <20180215053300.70482-2-dcastagna@chromium.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniele Castagna Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBGZWIgMTUsIDIwMTggYXQgMTI6MzI6NTFBTSAtMDUwMCwgRGFuaWVsZSBDYXN0YWdu YSB3cm90ZToKPiBDdXJyZW50bHkgTlYxMiBoYXJkd2FyZSBvdmVybGF5cyBzY2hlZHVsZWQgd2l0 aCBhdG9taWMgaW50ZXJmYWNlIGFyZQo+IGNvbnZlcnRlZCB0byBSR0IgdXNpbmcgYSBjb2xvciBz cGFjZSBjb252ZXJzaW9uIGRpZmZlcmVudCB0aGFuIEJULjYwMS4KPiAKPiBUaGUgcmVzdWx0IGlz IHRoYXQgY29sb3JzIG9mIE5WMTIgYnVmZmVycyBjb21wb3NpdGVkIHdpdGggTWFsaSBkb24ndAo+ IG1hdGNoIGNvbG9ycyBvZiBZVVYgaGFyZHdhcmUgb3ZlcmxheXMuCj4gCj4gUnVubmluZyBtb2Rl dGVzdCB3aXRoIGFuIE5WMTIgcGxhbmUgYWxzbyBzaG93cyBjb2xvcnMgYXJlIGluY29ycmVjdAo+ IGlmIGNvbXBhcmVkIHRvIGFuIFJHQiBvdmVybGF5IHRoYXQgcmVwcmVzZW50cyB0aGUgc2FtZSBj b2xvciBwYXR0ZXJuLgo+IAo+IFRoaXMgQ0wgYWRkcyBzdXBwb3J0IGZvciBZVVYyWVVWIGNvbG9y IHNwYWNlIGNvbnZlcnNpb24gKENTQykgbW9kdWxlIG9uCj4gcm9ja2NoaXAgYW5kIGVuYWJsZXMg dGhlIFlVVjJSR0IgcGFydCB0aGF0IGFsbG93cyB0byBzcGVjaWZ5IGEgNHgzCj4gbWF0cml4IHRv IGNvbnZlcnQgdGhlIGNvbG9ycy4KPiAKPiBUaGUgbWF0cml4IGlzIHNldCB0byBCVC42MDEgY29l ZmZpY2llbnRzIHRvIGFsaWduIHRvIE1hbGkgYW5kIHRvIHdoYXQKPiBtb2RldGVzdCBleHBlY3Rz LgoKSGV5IERhbmllbGUsCkFwb2xvZ2llcyBmb3IgbWlzc2luZyB0aGlzIHNldC4gCgo+IAo+IFRF U1Q9bW9kZXRlc3QgLU0gcm9ja2NoaXAgLXMgMzRAMzA6MjQwMHgxNjAwIC1QIDMwOjY0MHg0ODAr NjUwKzEwQE5WMTIgLVAgMzA6NjQweDQ4MCsxMCsxMEBYUjI0Cj4gCj4gQ2hhbmdlLUlkOiBJYTVh M2I0NzkzMjI5ZTJjNjNmNzlmOWY0MTRkMWNiZTZjY2M2M2ZjMQoKSXQncyB1c3VhbGx5IGdvb2Qg Zm9ybSB0byBzdHJpcCBvdXQgdGhlIGdlcnJpdCBDaGFuZ2UtSWQgZnJvbSB0aGUgY29tbWl0Cm1l c3NhZ2UuCgo+IFRlc3RlZC1ieTogRGFuaWVsZSBDYXN0YWduYSA8ZGNhc3RhZ25hQGNocm9taXVt Lm9yZz4KPiBSZXZpZXdlZC1ieTogRGFuaWVsZSBDYXN0YWduYSA8ZGNhc3RhZ25hQGNocm9taXVt Lm9yZz4KPiBSZXZpZXdlZC1ieTogS3Jpc3RpYW4gSC4gS3Jpc3RlbnNlbiA8aG9lZ3NiZXJnQGNo cm9taXVtLm9yZz4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2Ry bV92b3AuYyB8IDQwICsrKysrKysrKysrKysrKysrKysrLQo+ICBkcml2ZXJzL2dwdS9kcm0vcm9j a2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5oIHwgIDkgKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL3Jv Y2tjaGlwL3JvY2tjaGlwX3ZvcF9yZWcuYyB8IDM5ICsrKysrKysrKysrKysrKysrKy0tCj4gIDMg ZmlsZXMgY2hhbmdlZCwgODUgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKPiAKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuYyBiL2Ry aXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMKPiBpbmRleCBiYTc1MDUy OTJiNzg2Li5lYTQzYWI3OTdmNTU1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2Nr Y2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAv cm9ja2NoaXBfZHJtX3ZvcC5jCj4gQEAgLTUwLDYgKzUwLDEwIEBACj4gIAkJdm9wX3JlZ19zZXQo dm9wLCAmd2luLT5waHktPnNjbC0+ZXh0LT5uYW1lLCBcCj4gIAkJCSAgICB3aW4tPmJhc2UsIH4w LCB2LCAjbmFtZSkKPiAgCj4gKyNkZWZpbmUgVk9QX1lVVjJZVVZfU0VUKHgsIG5hbWUsIHYpIFwK PiArCQlpZiAoKHgpLT5kYXRhLT55dXYyeXV2KSBcCj4gKwkJCXZvcF9yZWdfc2V0KHZvcCwgJnZv cC0+ZGF0YS0+eXV2Mnl1di0+bmFtZSwgMCwgfjAsIHYsICNuYW1lKQo+ICsKPiAgI2RlZmluZSBW T1BfSU5UUl9TRVRfTUFTSyh2b3AsIG5hbWUsIG1hc2ssIHYpIFwKPiAgCQl2b3BfcmVnX3NldCh2 b3AsICZ2b3AtPmRhdGEtPmludHItPm5hbWUsIDAsIG1hc2ssIHYsICNuYW1lKQo+ICAKPiBAQCAt NzksNiArODMsMTggQEAKPiAgI2RlZmluZSB0b192b3AoeCkgY29udGFpbmVyX29mKHgsIHN0cnVj dCB2b3AsIGNydGMpCj4gICNkZWZpbmUgdG9fdm9wX3dpbih4KSBjb250YWluZXJfb2YoeCwgc3Ry dWN0IHZvcF93aW4sIGJhc2UpCj4gIAo+ICsvKgo+ICsgKiBUaGUgY29lZmZpY2llbnRzIG9mIHRo ZSBmb2xsb3dpbmcgbWF0cml4IGFyZSBhbGwgZml4ZWQgcG9pbnRzLgo+ICsgKiBUaGUgZm9ybWF0 IGlzIFMyLjEwIGZvciB0aGUgM3gzIHBhcnQgb2YgdGhlIG1hdHJpeCwgYW5kIFM5LjEyIGZvciB0 aGUgb2Zmc2V0cy4KPiArICogVGhleSBhcmUgYWxsIHJlcHJlc2VudGVkIGluIHR3bydzIGNvbXBs ZW1lbnQuCj4gKyAqLwo+ICtzdGF0aWMgY29uc3QgdWludDMyX3QgYnQ2MDFfeXV2MnJnYltdID0g ewo+ICsJMHg0QTgsIDB4MCwgICAgMHg2NjIsCj4gKwkweDRBOCwgMHgxRTZGLCAweDFDQkYsCj4g KwkweDRBOCwgMHg4MTIsICAweDAsCj4gKwkweDMyMTE2OCwgMHgwODc3Q0YsIDB4MkVCMTI3Cj4g K307Cj4gKwo+ICBlbnVtIHZvcF9wZW5kaW5nIHsKPiAgCVZPUF9QRU5ESU5HX0ZCX1VOUkVGLAo+ ICB9Owo+IEBAIC03MjIsNiArNzM4LDkgQEAgc3RhdGljIHZvaWQgdm9wX3BsYW5lX2F0b21pY191 cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAl1aW50MzJfdCB2YWw7Cj4gIAlib29s IHJiX3N3YXA7Cj4gIAlpbnQgZm9ybWF0Owo+ICsJaW50IGlzX3l1diA9IGlzX3l1dl9zdXBwb3J0 KGZiLT5mb3JtYXQtPmZvcm1hdCk7Cj4gKwlpbnQgd2luX2luZGV4ID0gVk9QX1dJTl9UT19JTkRF WCh2b3Bfd2luKTsKPiArCWludCBpOwo+ICAKPiAgCS8qCj4gIAkgKiBjYW4ndCB1cGRhdGUgcGxh bmUgd2hlbiB2b3AgaXMgZGlzYWJsZWQuCj4gQEAgLTc2Miw3ICs3ODEsMTQgQEAgc3RhdGljIHZv aWQgdm9wX3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAlW T1BfV0lOX1NFVCh2b3AsIHdpbiwgZm9ybWF0LCBmb3JtYXQpOwo+ICAJVk9QX1dJTl9TRVQodm9w LCB3aW4sIHlyZ2JfdmlyLCBESVZfUk9VTkRfVVAoZmItPnBpdGNoZXNbMF0sIDQpKTsKPiAgCVZP UF9XSU5fU0VUKHZvcCwgd2luLCB5cmdiX21zdCwgZG1hX2FkZHIpOwo+IC0JaWYgKGlzX3l1dl9z dXBwb3J0KGZiLT5mb3JtYXQtPmZvcm1hdCkpIHsKPiArCj4gKwlpZiAoIXdpbl9pbmRleCkgewo+ ICsJCVZPUF9ZVVYyWVVWX1NFVCh2b3AsIHdpbjBfeTJyX2VuLCBpc195dXYpOwo+ICsJfSBlbHNl IGlmICh3aW5faW5kZXggPT0gMSkgewo+ICsJCVZPUF9ZVVYyWVVWX1NFVCh2b3AsIHdpbjFfeTJy X2VuLCBpc195dXYpOwo+ICsJfQo+ICsKPiArCWlmIChpc195dXYpIHsKPiAgCQlpbnQgaHN1YiA9 IGRybV9mb3JtYXRfaG9yel9jaHJvbWFfc3Vic2FtcGxpbmcoZmItPmZvcm1hdC0+Zm9ybWF0KTsK PiAgCQlpbnQgdnN1YiA9IGRybV9mb3JtYXRfdmVydF9jaHJvbWFfc3Vic2FtcGxpbmcoZmItPmZv cm1hdC0+Zm9ybWF0KTsKPiAgCQlpbnQgYnBwID0gZmItPmZvcm1hdC0+Y3BwWzFdOwo+IEBAIC03 NzYsNiArODAyLDE4IEBAIHN0YXRpYyB2b2lkIHZvcF9wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJCWRtYV9hZGRyID0gcmtfdXZfb2JqLT5kbWFfYWRkciAr IG9mZnNldCArIGZiLT5vZmZzZXRzWzFdOwo+ICAJCVZPUF9XSU5fU0VUKHZvcCwgd2luLCB1dl92 aXIsIERJVl9ST1VORF9VUChmYi0+cGl0Y2hlc1sxXSwgNCkpOwo+ICAJCVZPUF9XSU5fU0VUKHZv cCwgd2luLCB1dl9tc3QsIGRtYV9hZGRyKTsKPiArCj4gKwkJZm9yIChpID0gMDsgaSA8IDEyOyBp KyspIHsKPiArCQkJaWYgKCF3aW5faW5kZXgpIHsKPiArCQkJCVZPUF9ZVVYyWVVWX1NFVCh2b3As Cj4gKwkJCQkJCXdpbjBfeTJyX2NvZWZmaWNpZW50c1tpXSwKPiArCQkJCQkJYnQ2MDFfeXV2MnJn YltpXSk7Cj4gKwkJCX0gZWxzZSB7Cj4gKwkJCQlWT1BfWVVWMllVVl9TRVQodm9wLAo+ICsJCQkJ CQl3aW4xX3kycl9jb2VmZmljaWVudHNbaV0sCj4gKwkJCQkJCWJ0NjAxX3l1djJyZ2JbaV0pOwo+ ICsJCQl9Cj4gKwkJfQo+ICAJfQo+ICAKPiAgCWlmICh3aW4tPnBoeS0+c2NsKQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5oIGIvZHJpdmVy cy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuaAo+IGluZGV4IDU2YmJkMmUyYThl ZmIuLmFhOGE1ZDI2OTAzNzYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlw L3JvY2tjaGlwX2RybV92b3AuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2Nr Y2hpcF9kcm1fdm9wLmgKPiBAQCAtNzksNiArNzksMTQgQEAgc3RydWN0IHZvcF9taXNjIHsKPiAg CXN0cnVjdCB2b3BfcmVnIGdsb2JhbF9yZWdkb25lX2VuOwo+ICB9Owo+ICAKPiArc3RydWN0IHZv cF95dXYyeXV2IHsKPiArCXN0cnVjdCB2b3BfcmVnIHdpbjBfeTJyX2VuOwo+ICsJc3RydWN0IHZv cF9yZWcgd2luMF95MnJfY29lZmZpY2llbnRzWzEyXTsKPiArCj4gKwlzdHJ1Y3Qgdm9wX3JlZyB3 aW4xX3kycl9lbjsKPiArCXN0cnVjdCB2b3BfcmVnIHdpbjFfeTJyX2NvZWZmaWNpZW50c1sxMl07 Cj4gK307CgpzdHJ1Y3Qgdm9wX3l1djJ5dXYgewogICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAg ICAgICBzdHJ1Y3Qgdm9wX3JlZyB5MnJfZW47CiAgICAgICAgICAgICAgICBzdHJ1Y3Qgdm9wX3Jl ZyB5MnJfY29lZmZpY2llbnRzWzEyXTsKICAgICAgICB9IHJlZ3NbMl07Cn07CgpUaGVuIGFkZCB3 aW5faW5kZXggdG8gdGhlIG1hY3JvIGFib3ZlIGFuZCB5b3UgY2FuIGF2b2lkIHRoZSBpZiAoIXdp bl9pbmRleCkKY2hlY2tzIGV2ZXJ5d2hlcmUuCgpCb251cyBwb2ludHMgaWYgeW91ICNkZWZpbmUg dGhlICcyJyBhbmQgJzEyJyBhcyBzb21ldGhpbmcgbW9yZSBtZWFuaW5nZnVsCgo+ICsKPiAgc3Ry dWN0IHZvcF9pbnRyIHsKPiAgCWNvbnN0IGludCAqaW50cnM7Cj4gIAl1aW50MzJfdCBuaW50cnM7 Cj4gQEAgLTE1Nyw2ICsxNjUsNyBAQCBzdHJ1Y3Qgdm9wX2RhdGEgewo+ICAJY29uc3Qgc3RydWN0 IHZvcF9taXNjICptaXNjOwo+ICAJY29uc3Qgc3RydWN0IHZvcF9tb2Rlc2V0ICptb2Rlc2V0Owo+ ICAJY29uc3Qgc3RydWN0IHZvcF9vdXRwdXQgKm91dHB1dDsKPiArCWNvbnN0IHN0cnVjdCB2b3Bf eXV2Mnl1diAqeXV2Mnl1djsKPiAgCWNvbnN0IHN0cnVjdCB2b3Bfd2luX2RhdGEgKndpbjsKPiAg CXVuc2lnbmVkIGludCB3aW5fc2l6ZTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9yb2NrY2hpcC9yb2NrY2hpcF92b3BfcmVnLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAv cm9ja2NoaXBfdm9wX3JlZy5jCj4gaW5kZXggMmU0ZWVhMzQ1OWZlNi4uYmU5YzQxNGUyZTRiYyAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfdm9wX3JlZy5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX3ZvcF9yZWcuYwo+IEBA IC00MjIsNiArNDIyLDQwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm9wX291dHB1dCByazMzOTlf b3V0cHV0ID0gewo+ICAJLm1pcGlfZW4gPSBWT1BfUkVHKFJLMzI4OF9TWVNfQ1RSTCwgMHgxLCAx NSksCj4gIH07Cj4gIAo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHZvcF95dXYyeXV2IHJrMzM5OV92 b3BfeXV2Mnl1diA9IHsKPiArCS53aW4wX3kycl9lbiA9IFZPUF9SRUcoUkszMzk5X1lVVjJZVVZf V0lOLCAweDEsIDEpLAo+ICsJLndpbjBfeTJyX2NvZWZmaWNpZW50cyA9IHsKPiArCQlWT1BfUkVH KFJLMzM5OV9XSU4xX1lVVjJZVVZfWTJSICsgMCwgMHhmZmZmLCAwKSwKPiArCQlWT1BfUkVHKFJL MzM5OV9XSU4xX1lVVjJZVVZfWTJSICsgMCwgMHhmZmZmLCAxNiksCj4gKwkJVk9QX1JFRyhSSzMz OTlfV0lOMV9ZVVYyWVVWX1kyUiArIDQsIDB4ZmZmZiwgMCksCj4gKwkJVk9QX1JFRyhSSzMzOTlf V0lOMV9ZVVYyWVVWX1kyUiArIDQsIDB4ZmZmZiwgMTYpLAo+ICsJCVZPUF9SRUcoUkszMzk5X1dJ TjFfWVVWMllVVl9ZMlIgKyA4LCAweGZmZmYsIDApLAo+ICsJCVZPUF9SRUcoUkszMzk5X1dJTjFf WVVWMllVVl9ZMlIgKyA4LCAweGZmZmYsIDE2KSwKPiArCQlWT1BfUkVHKFJLMzM5OV9XSU4xX1lV VjJZVVZfWTJSICsgMTIsIDB4ZmZmZiwgMCksCj4gKwkJVk9QX1JFRyhSSzMzOTlfV0lOMV9ZVVYy WVVWX1kyUiArIDEyLCAweGZmZmYsIDE2KSwKPiArCQlWT1BfUkVHKFJLMzM5OV9XSU4xX1lVVjJZ VVZfWTJSICsgMTYsIDB4ZmZmZiwgMCksCj4gKwkJVk9QX1JFRyhSSzMzOTlfV0lOMV9ZVVYyWVVW X1kyUiArIDIwLCAweGZmZmZmZmZmLCAwKSwKPiArCQlWT1BfUkVHKFJLMzM5OV9XSU4xX1lVVjJZ VVZfWTJSICsgMjQsIDB4ZmZmZmZmZmYsIDApLAo+ICsJCVZPUF9SRUcoUkszMzk5X1dJTjFfWVVW MllVVl9ZMlIgKyAyOCwgMHhmZmZmZmZmZiwgMCksCj4gKwl9LAo+ICsKPiArCS53aW4xX3kycl9l biA9IFZPUF9SRUcoUkszMzk5X1lVVjJZVVZfV0lOLCAweDEsIDkpLAo+ICsJLndpbjFfeTJyX2Nv ZWZmaWNpZW50cyA9IHsKPiArCQlWT1BfUkVHKFJLMzM5OV9XSU4xX1lVVjJZVVZfWTJSICsgMCwg MHhmZmZmLCAwKSwKPiArCQlWT1BfUkVHKFJLMzM5OV9XSU4xX1lVVjJZVVZfWTJSICsgMCwgMHhm ZmZmLCAxNiksCj4gKwkJVk9QX1JFRyhSSzMzOTlfV0lOMV9ZVVYyWVVWX1kyUiArIDQsIDB4ZmZm ZiwgMCksCj4gKwkJVk9QX1JFRyhSSzMzOTlfV0lOMV9ZVVYyWVVWX1kyUiArIDQsIDB4ZmZmZiwg MTYpLAo+ICsJCVZPUF9SRUcoUkszMzk5X1dJTjFfWVVWMllVVl9ZMlIgKyA4LCAweGZmZmYsIDAp LAo+ICsJCVZPUF9SRUcoUkszMzk5X1dJTjFfWVVWMllVVl9ZMlIgKyA4LCAweGZmZmYsIDE2KSwK PiArCQlWT1BfUkVHKFJLMzM5OV9XSU4xX1lVVjJZVVZfWTJSICsgMTIsIDB4ZmZmZiwgMCksCj4g KwkJVk9QX1JFRyhSSzMzOTlfV0lOMV9ZVVYyWVVWX1kyUiArIDEyLCAweGZmZmYsIDE2KSwKPiAr CQlWT1BfUkVHKFJLMzM5OV9XSU4xX1lVVjJZVVZfWTJSICsgMTYsIDB4ZmZmZiwgMCksCj4gKwkJ Vk9QX1JFRyhSSzMzOTlfV0lOMV9ZVVYyWVVWX1kyUiArIDIwLCAweGZmZmZmZmZmLCAwKSwKPiAr CQlWT1BfUkVHKFJLMzM5OV9XSU4xX1lVVjJZVVZfWTJSICsgMjQsIDB4ZmZmZmZmZmYsIDApLAo+ ICsJCVZPUF9SRUcoUkszMzk5X1dJTjFfWVVWMllVVl9ZMlIgKyAyOCwgMHhmZmZmZmZmZiwgMCks Cj4gKwl9LAo+ICt9Owo+ICsKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCB2b3BfZGF0YSByazMzOTlf dm9wX2JpZyA9IHsKPiAgCS52ZXJzaW9uID0gVk9QX1ZFUlNJT04oMywgNSksCj4gIAkuZmVhdHVy ZSA9IFZPUF9GRUFUVVJFX09VVFBVVF9SR0IxMCwKPiBAQCAtNDMwLDggKzQ2NCw5IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3Qgdm9wX2RhdGEgcmszMzk5X3ZvcF9iaWcgPSB7Cj4gIAkubW9kZXNldCA9 ICZyazMyODhfbW9kZXNldCwKPiAgCS5vdXRwdXQgPSAmcmszMzk5X291dHB1dCwKPiAgCS5taXNj ID0gJnJrMzM2OF9taXNjLAo+IC0JLndpbiA9IHJrMzM2OF92b3Bfd2luX2RhdGEsCj4gLQkud2lu X3NpemUgPSBBUlJBWV9TSVpFKHJrMzM2OF92b3Bfd2luX2RhdGEpLAo+ICsJLnl1djJ5dXYgPSAm cmszMzk5X3ZvcF95dXYyeXV2LAo+ICsJLndpbiA9IHJrMzM5OV92b3Bfd2luX2RhdGEsCj4gKwku d2luX3NpemUgPSBBUlJBWV9TSVpFKHJrMzM5OV92b3Bfd2luX2RhdGEpLAo+ICB9Owo+ICAKPiAg c3RhdGljIGNvbnN0IHN0cnVjdCB2b3Bfd2luX2RhdGEgcmszMzk5X3ZvcF9saXRfd2luX2RhdGFb XSA9IHsKPiAtLSAKPiAyLjE2LjEuMjkxLmc0NDM3ZjNmMTMyLWdvb2cKPiAKPiBfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKPiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKCi0tIApTZWFuIFBhdWws IFNvZnR3YXJlIEVuZ2luZWVyLCBHb29nbGUgLyBDaHJvbWl1bSBPUwpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK