From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sharma, Shashank" Subject: Re: [PATCH 5/5] drm/i915: Add YCBCR 4:2:0 support for LSPCON Date: Wed, 20 Dec 2017 10:31:54 +0530 Message-ID: <3752ac97-845c-eed6-5725-dfe3ca656ed4@intel.com> References: <1510672646-29918-1-git-send-email-shashank.sharma@intel.com> <1510672646-29918-6-git-send-email-shashank.sharma@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2BEBB6E375 for ; Wed, 20 Dec 2017 05:01:59 +0000 (UTC) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VGhhbmtzIGZvciB0aGUgcmV2aWV3IE1hYXJ0ZW4sCgpNeSBjb21tZW50cyBpbmxpbmUuCgpSZWdh cmRzClNoYXNoYW5rCk9uIDEyLzE5LzIwMTcgMTI6NTMgQU0sIE1hYXJ0ZW4gTGFua2hvcnN0IHdy b3RlOgo+IE9wIDE0LTExLTE3IG9tIDE2OjE3IHNjaHJlZWYgU2hhc2hhbmsgU2hhcm1hOgo+PiBM U1BDT04gY2hpcHMgYXJlIGNhcGFibGUgb2YgZ2VuZXJhdGluZyBZQ0JDUiA0OjI6MCBvdXRwdXRz LCBpZiBhc2tlZAo+PiBuaWNlbHkgOikuIEluIG9yZGVyIHRvIGdlbmVyYXRlIFlDQkNSIDQ6Mjow IG91dHB1dHMsIGEgc291cmNlIG11c3Q6Cj4+IC0gc2VuZCBZQ0JDUiA0OjQ6NCBzaWduYWxzIHRv IExTUENPTgo+PiAtIHByb2dyYW0gY29sb3Igc3BhY2UgYXMgNDoyOjAgaW4gQVZJIGluZm9mcmFt ZXMKPj4KPj4gVGhpcyB3aWxsIGluZGljYXRlIExTUENPTiBGVyB0byBzdGFydCBzY2FsaW5nIGRv d24gZnJvbSBZQ0JDUiA0OjQ6NAo+PiBhbmQgZ2VuZXJhdGUgWUNCQ1IgNDoyOjAgb3V0cHV0LiBV bmxpa2UgSERNSSAyLjAgbmF0aXZlIGNhc2UsIGFzIHRoZQo+PiBzY2FsaW5nIGlzIGRvbmUgYnkg TFNQQ09OIGRldmljZSwgd2UgbmVlZCBub3QgdG8gcmVzZXJ2ZSBhIHNjYWxlciBmb3IKPj4gNDoy OjAgb3V0cHV0cy4KPj4KPj4gU2lnbmVkLW9mZi1ieTogU2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFu ay5zaGFybWFAaW50ZWwuY29tPgo+PiAtLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3JlZy5oICAgICAgfCAgMiArKwo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5j ICAgICB8ICA4ICsrKysrKysrCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jIHwgMTUgKysrKysrKysrKystLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHAuYyAgICAgIHwgIDcgKysrKysrLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oICAgICB8ICAyICsrCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMg IHwgMjIgKysrKysrKysrKysrKysrKysrKysrKwo+PiAgIDYgZmlsZXMgY2hhbmdlZCwgNTEgaW5z ZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4+ IGluZGV4IGYwZjhmNjAuLmVhNmVmNWUgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVnLmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ PiBAQCAtODQ5NSw2ICs4NDk1LDggQEAgZW51bSBza2xfcG93ZXJfZ2F0ZSB7Cj4+ICAgI2RlZmlu ZSBUUkFOU19NU0FfTUlTQyh0cmFuKSBfTU1JT19UUkFOUzIodHJhbiwgX1RSQU5TQV9NU0FfTUlT QykKPj4gICAKPj4gICAjZGVmaW5lICBUUkFOU19NU0FfU1lOQ19DTEsJCSgxPDwwKQo+PiArI2Rl ZmluZSAgVFJBTlNfTVNBX1NBTVBMSU5HXzQ0NCAgICAgICAgKDI8PDEpCj4+ICsjZGVmaW5lICBU UkFOU19NU0FfQ0xSU1BfWUNCQ1IJCSgyPDwzKQo+PiAgICNkZWZpbmUgIFRSQU5TX01TQV82X0JQ QwkJKDA8PDUpCj4+ICAgI2RlZmluZSAgVFJBTlNfTVNBXzhfQlBDCQkoMTw8NSkKPj4gICAjZGVm aW5lICBUUkFOU19NU0FfMTBfQlBDCQkoMjw8NSkKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMK Pj4gaW5kZXggOWUyYWIwMi4uM2ZkODM5ZCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGRpLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRp LmMKPj4gQEAgLTE0OTksNiArMTQ5OSwxNCBAQCB2b2lkIGludGVsX2RkaV9zZXRfcGlwZV9zZXR0 aW5ncyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPj4gICAJCWJy ZWFrOwo+PiAgIAl9Cj4+ICAgCj4+ICsJLyoKPj4gKwkgKiBUbyBnZXQgWUNCQ1IgNDIwIG91dHB1 dCBmcm9tIExTUENPTiwgd2Ugc2hvdWxkIHNlbmQgWUNCQ1IgNDQ0Cj4+ICsJICogc2lnbmFscy4g QW5kIGFzIHBlciBEUCAxLjIgc3BlYyBzZWN0aW9uIDIuMy40LjMgd2hpbGUgc2VuZGluZwo+PiAr CSAqIFlDQkNSIDQ0NCBzaWduYWxzIHdlIHNob3VsZCBwcm9ncmFtIE1TQSBNSVNDMS8wIGZpZWxk cyB3aXRoCj4+ICsJICogY29sb3JzcGFjZSBpbmZvcm1hdGlvbi4KPj4gKwkgKi8KPj4gKwlpZiAo Y3J0Y19zdGF0ZS0+bHNwY29uX2FjdGl2ZSAmJiBjcnRjX3N0YXRlLT55Y2JjcjQyMCkKPj4gKwkJ dGVtcCB8PSBUUkFOU19NU0FfU0FNUExJTkdfNDQ0IHwgVFJBTlNfTVNBX0NMUlNQX1lDQkNSOwo+ PiAgIAlJOTE1X1dSSVRFKFRSQU5TX01TQV9NSVNDKGNwdV90cmFuc2NvZGVyKSwgdGVtcCk7Cj4+ ICAgfQo+PiAgIAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+IGluZGV4IDcz N2RlMjUuLjc4NzExOWIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMK Pj4gQEAgLTQ2MzgsNyArNDYzOCw4IEBAIHNrbF91cGRhdGVfc2NhbGVyKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLCBib29sIGZvcmNlX2RldGFjaCwKPj4gICAJICovCj4+ICAg CW5lZWRfc2NhbGluZyA9IHNyY193ICE9IGRzdF93IHx8IHNyY19oICE9IGRzdF9oOwo+PiAgIAo+ PiAtCWlmIChjcnRjX3N0YXRlLT55Y2JjcjQyMCAmJiBzY2FsZXJfdXNlciA9PSBTS0xfQ1JUQ19J TkRFWCkKPj4gKwlpZiAoY3J0Y19zdGF0ZS0+eWNiY3I0MjAgJiYgc2NhbGVyX3VzZXIgPT0gU0tM X0NSVENfSU5ERVggJiYKPj4gKwkJIWNydGNfc3RhdGUtPmxzcGNvbl9hY3RpdmUpCj4+ICAgCQlu ZWVkX3NjYWxpbmcgPSB0cnVlOwo+PiAgIAo+PiAgIAkvKgo+PiBAQCAtODEzMyw5ICs4MTM0LDE1 IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfc2V0X3BpcGVtaXNjKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YykKPj4gICAJCQl2YWwgfD0gUElQRU1JU0NfRElUSEVSX0VOQUJMRSB8IFBJUEVNSVNDX0RJVEhF Ul9UWVBFX1NQOwo+PiAgIAo+PiAgIAkJaWYgKGNvbmZpZy0+eWNiY3I0MjApIHsKPj4gLQkJCXZh bCB8PSBQSVBFTUlTQ19PVVRQVVRfQ09MT1JTUEFDRV9ZVVYgfAo+PiAtCQkJCVBJUEVNSVNDX1lV VjQyMF9FTkFCTEUgfAo+PiAtCQkJCVBJUEVNSVNDX1lVVjQyMF9NT0RFX0ZVTExfQkxFTkQ7Cj4+ ICsJCQl2YWwgfD0gUElQRU1JU0NfT1VUUFVUX0NPTE9SU1BBQ0VfWVVWOwo+PiArCQkJLyoKPj4g KwkJCSAqIExTUENPTiBkb2Vzbid0IG5lZWQgc2NhbGluZy9ibGVuZGluZyB0byBiZSBkb25lIGlu Cj4+ICsJCQkgKiBwaXBlLiBJdCBqdXN0IG5lZWRzIFlDQkNSNDQ0IGlucHV0IGFuZCBwcm9wZXIg QVZJCj4+ICsJCQkgKiBpbmZvZnJhbWVzIGZvciA0OjI6MCBvdXRwdXQgZW5hYmxpbmcuCj4+ICsJ CQkgKi8KPj4gKwkJCWlmICghY29uZmlnLT5sc3Bjb25fYWN0aXZlKQo+PiArCQkJCXZhbCB8PSBQ SVBFTUlTQ19ZVVY0MjBfRU5BQkxFIHwKPj4gKwkJCQkgICAgICAgUElQRU1JU0NfWVVWNDIwX01P REVfRlVMTF9CTEVORDsKPj4gICAJCX0KPj4gICAKPj4gICAJCUk5MTVfV1JJVEUoUElQRU1JU0Mo aW50ZWxfY3J0Yy0+cGlwZSksIHZhbCk7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+PiBpbmRl eCBmYTllNWU2Li4xZDRiNjY5IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcC5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPj4gQEAg LTE2NTcsOCArMTY1NywxMyBAQCBpbnRlbF9kcF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPj4gICAJCQkJCQkgICAgaW50ZWxfZHAtPm1heF9saW5rX3JhdGUp Owo+PiAgIAo+PiAgIAkvKiBMU1BDT04gbmVlZHMgc3BlY2lhbCBoYW5kbGluZyB0byBkcml2ZSBZ Q0JDUjQyMCBvdXRwdXRzICovCj4+IC0JaWYgKGxzcGNvbi0+YWN0aXZlKQo+PiArCWlmIChsc3Bj b24tPmFjdGl2ZSkgewo+PiArCQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gJmlu dGVsX2Nvbm5lY3Rvci0+YmFzZTsKPj4gKwo+PiAgIAkJcGlwZV9jb25maWctPmxzcGNvbl9hY3Rp dmUgPSB0cnVlOwo+PiArCQlwaXBlX2NvbmZpZy0+eWNiY3I0MjAgPSBsc3Bjb25feWNiY3I0MjBf Y29uZmlnKGNvbm5lY3RvciwKPj4gKwkJCQkJCQkgICAgICAgcGlwZV9jb25maWcpOwo+PiArCX0K Pj4gICAKPj4gICAJLyogTm8gY29tbW9uIGxpbmsgcmF0ZXMgYmV0d2VlbiBzb3VyY2UgYW5kIHNp bmsgKi8KPj4gICAJV0FSTl9PTihjb21tb25fbGVuIDw9IDApOwo+PiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaAo+PiBpbmRleCBhNDY4ZGQ2Li5mMjcxOTY3IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAo+PiBAQCAtMjA0Nyw2ICsyMDQ3LDggQEAgdm9pZCBsc3Bjb25fc2V0X2luZm9m cmFtZXMoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+PiAgIAkJCSAgIGNvbnN0IHN0cnVj dCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKTsKPj4gICBib29sIGxzcGNvbl9pbmZv ZnJhbWVfZW5hYmxlZChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4+ICAgCQkJICAgICAg Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKTsKPj4gK2Jvb2wgbHNw Y29uX3ljYmNyNDIwX2NvbmZpZyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+PiAr CQkJICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY29uZmlnKTsKPj4gICAKPj4gICAvKiBp bnRlbF9waXBlX2NyYy5jICovCj4+ICAgaW50IGludGVsX3BpcGVfY3JjX2NyZWF0ZShzdHJ1Y3Qg ZHJtX21pbm9yICptaW5vcik7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9sc3Bjb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xzcGNvbi5jCj4+IGlu ZGV4IDc3ZjA2ODcuLmNhNzdmNTAgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xzcGNvbi5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xzcGNv bi5jCj4+IEBAIC0xODAsNiArMTgwLDI2IEBAIHN0YXRpYyBib29sIGxzcGNvbl93YWtlX25hdGl2 ZV9hdXhfY2goc3RydWN0IGludGVsX2xzcGNvbiAqbHNwY29uKQo+PiAgIAlyZXR1cm4gdHJ1ZTsK Pj4gICB9Cj4+ICAgCj4+ICtib29sIGxzcGNvbl95Y2JjcjQyMF9jb25maWcoc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvciwKPj4gKwkJCSAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNvbmZpZykKPj4gK3sKPj4gKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqaW5mbyA9ICZjb25u ZWN0b3ItPmRpc3BsYXlfaW5mbzsKPj4gKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSA9 ICZjb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKPj4gKwo+PiArCWlmIChkcm1fbW9kZV9pc180 MjBfb25seShpbmZvLCBtb2RlKSkgewo+PiArCj4+ICsJCWlmICghY29ubmVjdG9yLT55Y2Jjcl80 MjBfYWxsb3dlZCkgewo+PiArCQkJRFJNX0VSUk9SKCJQbGF0Zm9ybSBkb2Vzbid0IHN1cHBvcnQg WUNCQ1I0MjAgb3V0cHV0XG4iKTsKPj4gKwkJCXJldHVybiBmYWxzZTsKPj4gKwkJfQo+IFNlZW1z IHRvIGJlIGFsd2F5cyB0cnVlIGlmIGxzcGNvbi0+YWN0aXZlIGlzIHRydWU/CkFjdHVhbGx5IHlv dSBhcmUgY29ycmVjdCwgaWYgSEFTX0xTUENPTiAmJiBsc3Bjb24tPmFjdGl2ZSwgeWNiY3JfNDIw IAp3aWxsIGJlIGFsd2F5cyBhbGxvd2VkLiBCdXQgYXMgd2UgYWRkZWQgdGhpcyBmbGFnIHNwZWNp ZmljYWxseSB0byAKY29udHJvbCA0OjI6MCBzdXBwb3J0IGZyb20gY29ubmVjdG9yLCBmb3IgSERN SSAyLjAgbmF0aXZlIGNvbnRyb2xsZXJzLCBJIAp0aG91Z2ggaXQgd291bGQgYmUgbW9yZSByZWFk YWJsZSB0byB1c2UgdGhpcyBmbGFnLiBEbyB5b3UgdGhpbmsgc28gPwo+PiArCQljb25maWctPnBv cnRfY2xvY2sgLz0gMjsKPj4gKwkJcmV0dXJuIHRydWU7Cj4+ICsJfQo+PiArCj4+ICsJcmV0dXJu IGZhbHNlOwo+PiArfQo+PiArCj4+ICAgc3RhdGljIGJvb2wgbHNwY29uX3Byb2JlKHN0cnVjdCBp bnRlbF9sc3Bjb24gKmxzcGNvbikKPj4gICB7Cj4+ICAgCWludCByZXRyeTsKPj4gQEAgLTUxNiw2 ICs1MzYsNyBAQCBib29sIGxzcGNvbl9pbml0KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmlu dGVsX2RpZ19wb3J0KQo+PiAgIAlzdHJ1Y3QgaW50ZWxfbHNwY29uICpsc3Bjb24gPSAmaW50ZWxf ZGlnX3BvcnQtPmxzcGNvbjsKPj4gICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2Rp Z19wb3J0LT5iYXNlLmJhc2UuZGV2Owo+PiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGRldik7Cj4+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv ciA9ICZkcC0+YXR0YWNoZWRfY29ubmVjdG9yLT5iYXNlOwo+PiAgIAo+PiAgIAlpZiAoIUhBU19M U1BDT04oZGV2X3ByaXYpKSB7Cj4+ICAgCQlEUk1fRVJST1IoIkxTUENPTiBpcyBub3Qgc3VwcG9y dGVkIG9uIHRoaXMgcGxhdGZvcm1cbiIpOwo+PiBAQCAtNTQwLDYgKzU2MSw3IEBAIGJvb2wgbHNw Y29uX2luaXQoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQpCj4+ICAg CQlyZXR1cm4gZmFsc2U7Cj4+ICAgCX0KPj4gICAKPj4gKwljb25uZWN0b3ItPnljYmNyXzQyMF9h bGxvd2VkID0gdHJ1ZTsKPiBJcyB0aGlzIGZsYWcgZGlmZmVyZW50IGZyb20gbHNwY29uLT5hY3Rp dmU/Clllcywgd2hlbiB3ZSBkZXNpZ25lZCBIRE1JIDIuMCBuYXRpdmUgY29udHJvbGxlciBmcm9t IEdMSyBhbmQgcGx1cyAKcGxhdGZvcm1zLCB3ZSBhZGRlZCB0aGlzIGNvbm5lY3RvciBmbGFnLCBz byB0aGF0LCBmb3IgdGhlIHBsYXRmb3JtcyAKd2hpY2ggZG8gbm90IHN1cHBvcnQgNDoyOjAgb3V0 cHV0cywgNDoyOjAgb25seSBtb2RlcyB3aWxsIGJlIHJlamVjdGVkIApmcm9tIEVESUQncyBsaXN0 IG9mIG1vZGVzLiBUaGlzIGlzIHRoZSBwbGFjZSB3aGVyZSBjb25uZWN0b3IgYWxsb3dzIHRoZSAK NDoyOjAgY2FwYWJpbGl0eSwgYmFzZWQgb24gdGhlIHBsYXRmb3JtLCB3aGVyZWFzIGlzX2xzcGNv biBpcyBmcm8gdGhlIAplbmNvZGVyIGFuZCBzdGF0ZS4KPj4gICAJbHNwY29uLT5hY3RpdmUgPSB0 cnVlOwo+PiAgIAlEUk1fREVCVUdfS01TKCJTdWNjZXNzOiBMU1BDT04gaW5pdFxuIik7Cj4+ICAg CXJldHVybiB0cnVlOwo+IENvbW1lbnRzIGZyb20gVmlsbGUgc3RpbGwgYXBwbHkgdG9vLiBUaGUg cGlwZSBpcyBzZXQgdG8geWNiY3IgbW9kZSwgc28gaXQgbWFrZXMgbW9yZSBzZW5zZSB0byBoYXZl IGEgeWNiY3I0NDQgZmxhZyBvciBzb21ldGhpbmcsIGFuZCBhIHNlcGFyYXRlIGZsYWcgdG8gZG93 bmNvbnZlcnQgbHNwY29uLgo+Cj4gSXQgd291bGQgYmUgcmVhbGx5IG5pY2UgaWYgd2UgY291bGQg c2V0IHRoZSB5Y2JjcjQ0NCBmbGFnIGluIGh3IHJlYWRvdXQsIGFuZCBpbnRlbF9waXBlX2NvbmZp Z19jb21wYXJlLiBUaGlzIHdheSB3ZSBrbm93IHRoZSBzdyBtb2RlIG1hdGNoZXMgdGhlIGh3IG1v ZGUuIDopCldlIHdpbGwgZXZlbnR1YWxseSBuZWVkIHRoZSByaWdodCBjb2xvcnNwYWNlIGluZm9y bWF0aW9uIHdoaWxlIApwcm9ncmFtbWluZyB0aGUgQVZJIElGLgpBY3R1YWxseSB3ZSBhcmUgdHJ5 aW5nIHRvIGFjY29tbW9kYXRlIExTUENPTiBpbnRvIEhETUkgMi4wIGZyYW1ld29yayBhcyAKc3Vj aC4gSWYgeW91IGFuYWx5emUgdGhlIG5hdGl2ZSA0OjI6MCBmcmFtZXdvcmssIHRoZXJlIGFsc28g d2UgbmVlZCAKc2NhbGluZyBkb3duLCBmb3Igd2hpY2ggd2UgdXNlIFBJUEVNSVNDIHJlZ2lzdGVy LiBTbyB0aGUgcmVxdWlyZW1lbnQgZm9yIApHTEsgd291bGQgYmU6Ci0gb25lIGZsYWcgbGlrZSBZ Q0JDUjQ0NCBmb3IgcGlwZSBjb25maWcgKHNheSBzdGF0ZS0+NDQ0KSB0byBzZXQgQ1NDCi0gb25l IGZsYWcgaW4gc3RhdGUgdG8gbGV0IG1vZGVzZXQga25vdyB0aGF0IHdlIGhhdmUgdG8gcHJvZ3Jh bSBQSVBFTUlTQyAKYW5kIHJlc2VydmUgYSBwaXBlX3NjYWxlciAoc2F5IHN0YXRlLT40MjApCi0g b25lIGZsYWcgdG8gc2V0IGF2aV9pZiBjb2xvcnNwYWNlIHRvIHljYmNyNDIwIChhZ2FpbiBzdGF0 ZS0+NDIwLCBoZXJlIAp3ZSBjYW4ndCB1c2UgNDQ0LCBhcyB3ZSBuZWVkIGFjY3VyYXRlIGNvbG9y c3BhY2UpCgpOb3csIGluIGNhc2Ugb2YgTFNQQ09OLAotIEkgc3RpbGwgbmVlZCBzdGF0ZS0+NDQ0 IHRvIHNldCBDU0MKLSBJbiBtb2Rlc2V0LCBJIGRvbid0IG5lZWQgdG8gcHJvZ3JhbSBQSVBFTUlT QyBhbmQgc2NhbGFyLCBhcyBzY2FsaW5nIApoYXBwZW5zIGluIExTUENPTiBpbnRlcm5hbGx5IHNv IEkgbmVlZCB0byBrbm93IGlmIHRoaXMgaXMgTFNQQ09OIChoZW5jZSAKc3RhdGUtPmxzcGNvbikK LSBPbmUgZmxhZyB0byBzZXQgYXBwcm9wcmlhdGUgYXZpX2luZm9mcmFtZXMgKHNvIHN0YXRlLT40 MjApCgpTbyBJIHJlYWxpemVkIGV2ZW4gaWYgSSB1c2Ugc3RhdGUtPjQ0NCwgSSBzdGlsbCBuZWVk IGEgc3RhdGUtPjQyMCBmbGFncyAKdG8gc2V0IGNvcnJlY3QgY29sb3JzcGFjZSBpbiB0aGUgYXZp IGluZm9mcmFtZXMsIHNvIHRoZXJlIGlzIG5vIGJlbmVmaXQgCm9mIG1ha2luZyB0aGlzIGNoYW5n ZS4KClBsZWFzZSBsZXQgbWUga25vdyB5b3VyIG9waW5pb24uCgotIFNoYXNoYW5rCj4gfk1hYXJ0 ZW4KPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==