From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id A265B10E9AD for ; Fri, 13 Jan 2023 08:30:04 +0000 (UTC) From: "Hogander, Jouni" To: "igt-dev@lists.freedesktop.org" , "Sharma, Swati2" Date: Fri, 13 Jan 2023 08:29:54 +0000 Message-ID: <3af9607a8b8b8843f8a75baf79141648cb31b48c.camel@intel.com> References: <20230112073537.27890-1-swati2.sharma@intel.com> <20230112073537.27890-6-swati2.sharma@intel.com> In-Reply-To: <20230112073537.27890-6-swati2.sharma@intel.com> Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: <46734C826B6C8A439B03C189D1D3BA38@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t v4 5/8] tests/i915/kms_dsc: Enable validation for VDSC YCbCr420 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" List-ID: SGVsbG8gU3dhdGksIGNvdXBsZSBvZiBpbmxpbmUgY29tbWVudHMgYmVsb3cuCgpPbiBUaHUsIDIw MjMtMDEtMTIgYXQgMTM6MDUgKzA1MzAsIFN3YXRpIFNoYXJtYSB3cm90ZToKPiBFeGlzdGluZyBp LWctdCBpcyBleHRlbmRlZCB0byBlbmFibGUgdmFsaWRhdGlvbiBmb3IgVkRTQyBZQ2JDcjQyMC4K PiBJZiBhIG1vZGUgaXMgc3VwcG9ydGVkIGluIGJvdGggUkdCIGFuZCBZQ2JDcjQyMCBvdXRwdXQg Zm9ybWF0cyBieSB0aGUKPiBzaW5rLCBpOTE1IGRyaXZlciBwb2xpY3kgaXMgdG8gdHJ5IFJHQiBm aXJzdCBhbmQgZmFsbCBiYWNrIHRvCj4gWUNiQ3I0MjAsIGlmCj4gbW9kZSBjYW5ub3QgYmUgc2hv d24gdXNpbmcgUkdCLiBUbyB0ZXN0IFlDYkNyNDIwLCB3ZSBuZWVkIGEgZGVidWdmcwo+IGVudHJ5 IChmb3JjZV9kc2NfeWNiY3I0MjApIHRvIGZvcmNlIHRoaXMgb3V0cHV0IGZvcm1hdDsgc28gdGhh dAo+IFlDYkNyNDIwIGNvZGUKPiBnZXRzIGV4ZWN1dGVkLgo+IEZyb20gaS1nLXQsIHdlIGhhdmUg c2V0IHRoaXMgZGVidWdmcyBlbnRyeS4gSG93ZXZlciwgYmVmb3JlIHNldHRpbmcKPiBkZWJ1Z2Zz IGVudHJ5LCB3ZSBoYXZlIGNoZWNrZWQgY2FwYWJpbGl0eSBpLmUuIFlDYkNyNDIwIGlzIHN1cHBv cnRlZAo+IGJ5Cj4gYm90aCBwbGF0Zm9ybSAoRDE0KykgYW5kIHNpbmsuCj4gQWxzbywgYWxsIHRo ZSBtb2RlcyBkb2Vzbid0IHN1cHBvcnQgYm90aCBZQ2JDcjQyMCBhbmQgUkdCIGZvcm1hdHM7IHNv Cj4gaWYKPiBzaW5rIGFuZCBwbGF0Zm9ybSBzdXBwb3J0cyBZQ2JDcjQyMCB3ZSB3aWxsIGRvIHRy eSBjb21taXQgd2l0aCBlYWNoCj4gbW9kZQo+IHRpbGwgd2UgZ2V0IGEgc3VjY2Vzc2Z1bCBjb21t aXQuCj4gCj4gdjI6IC11c2VkIGlzX2RzY195Y2JjcjQyMF9zdXBwb3J0ZWQoKSAoQW5raXQpCj4g wqDCoMKgIC1oYW5kbGVkIHRyeS1jb21taXQgY29ycmVjdGx5IChBbmtpdCkKPiDCoMKgwqAgLWlu c3RlYWQgb2YgZmxhZyB1c2UgZW51bSBmb3Igb3V0cHV0IGZvcm1hdHMgKEFua2l0KQo+IHYzOiAt aW5zdGVhZCBvZiBnbG9iYWwgY291bnQsIHBhc3MgY291bnQgYXMgcGFyYSAoQW5raXQpCj4gwqDC oMKgIC1wcmludCBvdXRwdXQgZm9ybWF0IChBbmtpdCkKPiB2NDogLW9wdGltaXplZCB3aGlsZSBs b29wIChKb3VuaSkKPiDCoMKgwqAgLXVzZWQgb25seSB0cnkgY29tbWl0IChKb3VuaSkKPiDCoMKg wqAgLWZpeGVkIGdldF9uZXh0X21vZGUoKSAoSm91bmkpCj4gCj4gU2lnbmVkLW9mZi1ieTogU3dh dGkgU2hhcm1hIDxzd2F0aTIuc2hhcm1hQGludGVsLmNvbT4KPiAtLS0KPiDCoGxpYi9pZ3Rfa21z LmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgMTcgKysrKysrKysKPiDCoGxpYi9pZ3Rf a21zLmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA2ICsrKwo+IMKgdGVzdHMvaTkx NS9rbXNfZHNjLmPCoMKgwqDCoMKgwqDCoCB8IDg0ICsrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tCj4gLS0KPiDCoHRlc3RzL2k5MTUva21zX2RzY19oZWxwZXIuYyB8IDQ1ICsrKysr KysrKysrKysrKysrKysrCj4gwqB0ZXN0cy9pOTE1L2ttc19kc2NfaGVscGVyLmggfMKgIDQgKysK PiDCoDUgZmlsZXMgY2hhbmdlZCwgMTMzIGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQo+ IAo+IGRpZmYgLS1naXQgYS9saWIvaWd0X2ttcy5jIGIvbGliL2lndF9rbXMuYwo+IGluZGV4IDMx ZTZkZmRhMC4uMGYxZjdjNmI5IDEwMDY0NAo+IC0tLSBhL2xpYi9pZ3Rfa21zLmMKPiArKysgYi9s aWIvaWd0X2ttcy5jCj4gQEAgLTk2Niw2ICs5NjYsMjMgQEAgY29uc3QgY2hhciAqa21zdGVzdF9z Y2FsaW5nX2ZpbHRlcl9zdHIoaW50Cj4gZmlsdGVyKQo+IMKgwqDCoMKgwqDCoMKgwqByZXR1cm4g ZmluZF90eXBlX25hbWUoc2NhbGluZ19maWx0ZXJfbmFtZXMsIGZpbHRlcik7Cj4gwqB9Cj4gwqAK PiArc3RhdGljIGNvbnN0IHN0cnVjdCB0eXBlX25hbWUgZHNjX291dHB1dF9mb3JtYXRfbmFtZXNb XSA9IHsKPiArwqDCoMKgwqDCoMKgwqB7IERTQ19GT1JNQVRfUkdCNDQ0LCAiUkdCNDQ0IiB9LAo+ ICvCoMKgwqDCoMKgwqDCoHsgRFNDX0ZPUk1BVF9ZQ0JDUjQyMCwgIllDQkNSNDIwIiB9LAo+ICvC oMKgwqDCoMKgwqDCoHt9Cj4gK307Cj4gKwo+ICsvKioKPiArICoga21zdGVzdF9kc2Nfb3V0cHV0 X2Zvcm1hdF9zdHI6Cj4gKyAqIEBvdXRwdXRfZm9ybWF0OiBEU0NfRk9STUFUXyogb3V0cHV0IGZv cm1hdCB2YWx1ZQo+ICsgKgo+ICsgKiBSZXR1cm5zOiBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhl IG91dHB1dCBmb3JtYXQgQG91dHB1dCBmb3JtYXQuCj4gKyAqLwo+ICtjb25zdCBjaGFyICprbXN0 ZXN0X2RzY19vdXRwdXRfZm9ybWF0X3N0cihpbnQgb3V0cHV0X2Zvcm1hdCkKPiArewo+ICvCoMKg wqDCoMKgwqDCoHJldHVybiBmaW5kX3R5cGVfbmFtZShkc2Nfb3V0cHV0X2Zvcm1hdF9uYW1lcywK PiBvdXRwdXRfZm9ybWF0KTsKPiArfQo+ICsKPiDCoHN0YXRpYyBjb25zdCBzdHJ1Y3QgdHlwZV9u YW1lIGNvbm5lY3Rvcl90eXBlX25hbWVzW10gPSB7Cj4gwqDCoMKgwqDCoMKgwqDCoHsgRFJNX01P REVfQ09OTkVDVE9SX1Vua25vd24sICJVbmtub3duIiB9LAo+IMKgwqDCoMKgwqDCoMKgwqB7IERS TV9NT0RFX0NPTk5FQ1RPUl9WR0EsICJWR0EiIH0sCj4gZGlmZiAtLWdpdCBhL2xpYi9pZ3Rfa21z LmggYi9saWIvaWd0X2ttcy5oCj4gaW5kZXggYmU1NDgyZTA4Li42MWVjOGZiZWMgMTAwNjQ0Cj4g LS0tIGEvbGliL2lndF9rbXMuaAo+ICsrKyBiL2xpYi9pZ3Rfa21zLmgKPiBAQCAtMTA2LDEwICsx MDYsMTYgQEAgZW51bSBpZ3RfY3VzdG9tX2VkaWRfdHlwZSB7Cj4gwqAgKi8KPiDCoCNkZWZpbmUg a21zdGVzdF9wb3J0X25hbWUocG9ydCkgKChwb3J0KSArICdBJykKPiDCoAo+ICtlbnVtIGRzY19v dXRwdXRfZm9ybWF0IHsKPiArwqDCoMKgwqDCoMKgwqBEU0NfRk9STUFUX1JHQjQ0NCwKPiArwqDC oMKgwqDCoMKgwqBEU0NfRk9STUFUX1lDQkNSNDIwCj4gK307Cj4gKwo+IMKgY29uc3QgY2hhciAq a21zdGVzdF9lbmNvZGVyX3R5cGVfc3RyKGludCB0eXBlKTsKPiDCoGNvbnN0IGNoYXIgKmttc3Rl c3RfY29ubmVjdG9yX3N0YXR1c19zdHIoaW50IHN0YXR1cyk7Cj4gwqBjb25zdCBjaGFyICprbXN0 ZXN0X2Nvbm5lY3Rvcl90eXBlX3N0cihpbnQgdHlwZSk7Cj4gwqBjb25zdCBjaGFyICprbXN0ZXN0 X3NjYWxpbmdfZmlsdGVyX3N0cihpbnQgZmlsdGVyKTsKPiArY29uc3QgY2hhciAqa21zdGVzdF9k c2Nfb3V0cHV0X2Zvcm1hdF9zdHIoaW50IG91dHB1dF9mb3JtYXQpOwo+IMKgCj4gwqB2b2lkIGtt c3Rlc3RfZHVtcF9tb2RlKGRybU1vZGVNb2RlSW5mbyAqbW9kZSk7Cj4gwqAjZGVmaW5lIE1BWF9I RElTUExBWV9QRVJfUElQRSA1MTIwCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUva21zX2RzYy5j IGIvdGVzdHMvaTkxNS9rbXNfZHNjLmMKPiBpbmRleCAwYmFjOWQyNmIuLjM2NjIwNWE0ZSAxMDA2 NDQKPiAtLS0gYS90ZXN0cy9pOTE1L2ttc19kc2MuYwo+ICsrKyBiL3Rlc3RzL2k5MTUva21zX2Rz Yy5jCj4gQEAgLTgwLDYgKzgwLDE3IEBAIHN0YXRpYyBkcm1Nb2RlTW9kZUluZm8KPiAqZ2V0X2hp Z2hyZXNfbW9kZShpZ3Rfb3V0cHV0X3QgKm91dHB1dCkKPiDCoMKgwqDCoMKgwqDCoMKgcmV0dXJu IGhpZ2hlc3RfbW9kZTsKPiDCoH0KPiDCoAo+ICtzdGF0aWMgZHJtTW9kZU1vZGVJbmZvICpnZXRf bmV4dF9tb2RlKGlndF9vdXRwdXRfdCAqb3V0cHV0LCBpbnQKPiBpbmRleCkKPiArewo+ICvCoMKg wqDCoMKgwqDCoGRybU1vZGVDb25uZWN0b3IgKmNvbm5lY3RvciA9IG91dHB1dC0+Y29uZmlnLmNv bm5lY3RvcjsKPiArwqDCoMKgwqDCoMKgwqBkcm1Nb2RlTW9kZUluZm8gKm5leHRfbW9kZSA9IE5V TEw7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoGlmIChpbmRleCA8IGNvbm5lY3Rvci0+Y291bnRfbW9k ZXMpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG5leHRfbW9kZSA9ICZjb25uZWN0 b3ItPm1vZGVzW2luZGV4XTsKPiArCj4gK8KgwqDCoMKgwqDCoMKgcmV0dXJuIG5leHRfbW9kZTsK PiArfQo+ICsKPiDCoHN0YXRpYyBib29sIGNoZWNrX2JpZ19qb2luZXJfcGlwZV9jb25zdHJhaW50 KGRhdGFfdCAqZGF0YSkKPiDCoHsKPiDCoMKgwqDCoMKgwqDCoMKgaWd0X291dHB1dF90ICpvdXRw dXQgPSBkYXRhLT5vdXRwdXQ7Cj4gQEAgLTEwOSw5ICsxMjAsMTEgQEAgc3RhdGljIHZvaWQgdGVz dF9jbGVhbnVwKGRhdGFfdCAqZGF0YSkKPiDCoAo+IMKgLyogcmUtcHJvYmUgY29ubmVjdG9ycyBh bmQgZG8gYSBtb2Rlc2V0IHdpdGggRFNDICovCj4gwqBzdGF0aWMgdm9pZCB1cGRhdGVfZGlzcGxh eShkYXRhX3QgKmRhdGEsIGVudW0gZHNjX3Rlc3RfdHlwZQo+IHRlc3RfdHlwZSwKPiAtwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdW5zaWduZWQgaW50 IHBsYW5lX2Zvcm1hdCkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgdW5zaWduZWQgaW50IHBsYW5lX2Zvcm1hdCwgZW51bQo+IGRzY19vdXRwdXRf Zm9ybWF0IG91dHB1dF9mb3JtYXQpCj4gwqB7Cj4gK8KgwqDCoMKgwqDCoMKgaW50IHJldDsKPiDC oMKgwqDCoMKgwqDCoMKgYm9vbCBlbmFibGVkOwo+ICvCoMKgwqDCoMKgwqDCoGludCBpbmRleCA9 IDA7Cj4gwqDCoMKgwqDCoMKgwqDCoGlndF9wbGFuZV90ICpwcmltYXJ5Owo+IMKgwqDCoMKgwqDC oMKgwqBkcm1Nb2RlTW9kZUluZm8gKm1vZGU7Cj4gwqDCoMKgwqDCoMKgwqDCoGlndF9vdXRwdXRf dCAqb3V0cHV0ID0gZGF0YS0+b3V0cHV0Owo+IEBAIC0xMjUsMzMgKzEzOCw1MSBAQCBzdGF0aWMg dm9pZCB1cGRhdGVfZGlzcGxheShkYXRhX3QgKmRhdGEsIGVudW0KPiBkc2NfdGVzdF90eXBlIHRl c3RfdHlwZSwKPiDCoMKgwqDCoMKgwqDCoMKgc2F2ZV9mb3JjZV9kc2NfZW4oZGF0YS0+ZHJtX2Zk LCBkYXRhLT5vdXRwdXQpOwo+IMKgwqDCoMKgwqDCoMKgwqBmb3JjZV9kc2NfZW5hYmxlKGRhdGEt PmRybV9mZCwgZGF0YS0+b3V0cHV0KTsKPiDCoAo+ICvCoMKgwqDCoMKgwqDCoGlmIChvdXRwdXRf Zm9ybWF0ID09IERTQ19GT1JNQVRfWUNCQ1I0MjApIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgaWd0X2RlYnVnKCJEU0MgWUNiQ3I0MjAgaXMgc3VwcG9ydGVkIG9uICVzXG4iLCBk YXRhLQo+ID5vdXRwdXQtPm5hbWUpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBz YXZlX2ZvcmNlX2RzY195Y2JjcjQyMF9lbihkYXRhLT5kcm1fZmQsIGRhdGEtCj4gPm91dHB1dCk7 Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZvcmNlX2RzY195Y2JjcjQyMF9lbmFi bGUoZGF0YS0+ZHJtX2ZkLCBkYXRhLQo+ID5vdXRwdXQpOwo+ICvCoMKgwqDCoMKgwqDCoH0KPiAr Cj4gwqDCoMKgwqDCoMKgwqDCoGlmICh0ZXN0X3R5cGUgPT0gVEVTVF9EU0NfQlBDKSB7Cj4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZ3RfZGVidWcoIlRyeWluZyB0byBzZXQgaW5w dXQgQlBDIHRvICVkXG4iLCBkYXRhLQo+ID5pbnB1dF9icGMpOwo+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgZm9yY2VfZHNjX2VuYWJsZV9icGMoZGF0YS0+ZHJtX2ZkLCBkYXRhLT5v dXRwdXQsCj4gZGF0YS0+aW5wdXRfYnBjKTsKPiDCoMKgwqDCoMKgwqDCoMKgfQo+IMKgCj4gwqDC oMKgwqDCoMKgwqDCoGlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBkYXRhLT5waXBlKTsKPiAt Cj4gLcKgwqDCoMKgwqDCoMKgbW9kZSA9IGdldF9oaWdocmVzX21vZGUob3V0cHV0KTsKPiAtwqDC oMKgwqDCoMKgwqBpZ3RfcmVxdWlyZShtb2RlICE9IE5VTEwpOwo+IC3CoMKgwqDCoMKgwqDCoGln dF9vdXRwdXRfb3ZlcnJpZGVfbW9kZShvdXRwdXQsIG1vZGUpOwo+IC0KPiDCoMKgwqDCoMKgwqDC oMKgcHJpbWFyeSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUob3V0cHV0LAo+IERSTV9QTEFO RV9UWVBFX1BSSU1BUlkpOwo+IC0KPiDCoMKgwqDCoMKgwqDCoMKgaWd0X3NraXBfb24oIWlndF9w bGFuZV9oYXNfZm9ybWF0X21vZChwcmltYXJ5LCBwbGFuZV9mb3JtYXQsCj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgRFJNX0ZPUk1BVF9NT0RfTElORUFSKSk7Cj4gwqAK PiAtwqDCoMKgwqDCoMKgwqBpZ3RfY3JlYXRlX3BhdHRlcm5fZmIoZGF0YS0+ZHJtX2ZkLAo+IC3C oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBt b2RlLT5oZGlzcGxheSwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgbW9kZS0+dmRpc3BsYXksCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHBsYW5lX2Zvcm1hdCwKPiAtwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgRFJN X0ZPUk1BVF9NT0RfTElORUFSLAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAmZGF0YS0+ZmJfdGVzdF9wYXR0ZXJuKTsKPiAtCj4gLcKg wqDCoMKgwqDCoMKgaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCAmZGF0YS0+ZmJfdGVzdF9wYXR0 ZXJuKTsKPiAtwqDCoMKgwqDCoMKgwqBpZ3RfZGlzcGxheV9jb21taXQoZGlzcGxheSk7Cj4gLQo+ IC3CoMKgwqDCoMKgwqDCoC8qIHVudGlsIHdlIGhhdmUgQ1JDIGNoZWNrIHN1cHBvcnQsIG1hbnVh bGx5IGNoZWNrIGlmIFJHQgo+IHRlc3QKPiArwqDCoMKgwqDCoMKgwqBkbyB7Cj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmIChvdXRwdXRfZm9ybWF0ID09IERTQ19GT1JNQVRfWUNC Q1I0MjApIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oG1vZGUgPSBnZXRfbmV4dF9tb2RlKG91dHB1dCwgaW5kZXgpOwo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaW5kZXgrKzsKPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgfSBlbHNlCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBtb2RlID0gZ2V0X2hpZ2hyZXNfbW9kZShvdXRwdXQpOwo+ICsKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X3JlcXVpcmUobW9kZSAhPSBOVUxMKTsKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X291dHB1dF9vdmVycmlkZV9tb2RlKG91 dHB1dCwgbW9kZSk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9jcmVhdGVf cGF0dGVybl9mYihkYXRhLT5kcm1fZmQsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtb2RlLT5oZGlzcGxh eSwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1vZGUtPnZkaXNwbGF5LAo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg cGxhbmVfZm9ybWF0LAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgRFJNX0ZPUk1BVF9NT0RfTElORUFSLAo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgJmRhdGEtPmZiX3Rlc3RfcGF0dGVybik7Cj4gKwo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksICZkYXRhLT5m Yl90ZXN0X3BhdHRlcm4pOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXQgPSBp Z3RfZGlzcGxheV90cnlfY29tbWl0X2F0b21pYyhkaXNwbGF5LAo+IERSTV9NT0RFX0FUT01JQ19B TExPV19NT0RFU0VULCBOVUxMKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYg KG91dHB1dF9mb3JtYXQgPT0gRFNDX0ZPUk1BVF9ZQ0JDUjQyMCAmJiByZXQgIT0gMCkKPiB7Cj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZ3RfcmVtb3Zl X2ZiKGRhdGEtPmRybV9mZCwgJmRhdGEtCj4gPmZiX3Rlc3RfcGF0dGVybik7Cj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY29u dGludWU7CgpJbmRlbnRhdGlvbi4KCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0g ZWxzZQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYnJl YWs7CgpFbHNlIGlzIG5vdCBuZWNlc3NhcnkuIFlvdSBjYW4ganVzdCBicmVhay4gSSdtIGZpbmUg aWYgeW91IHRoaW5rIGl0J3MKbW9yZSBjbGVhciB0aGlzIHdheS4gSWYgeW91IGRlY2lkZSB0byBr ZWVwIGl0OiBwbGVhc2UgYWRkIGJyYWNlcyB0bwplbHNlIGFzIHdlbGwgKGNvZGluZyBzdHlsZSku Cgo+ICvCoMKgwqDCoMKgwqDCoH0gd2hpbGUoMSk7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoGlndF9h c3NlcnRfZXEocmV0LCAwKTsKPiArCj4gK8KgwqDCoMKgwqDCoMKgLyoKPiArwqDCoMKgwqDCoMKg wqAgKiBVbnRpbCB3ZSBoYXZlIENSQyBjaGVjayBzdXBwb3J0LCBtYW51YWxseSBjaGVjayBpZiBS R0IKPiB0ZXN0Cj4gwqDCoMKgwqDCoMKgwqDCoCAqIHBhdHRlcm4gaGFzIG5vIGNvcnJ1cHRpb24u Cj4gwqDCoMKgwqDCoMKgwqDCoCAqLwo+IMKgwqDCoMKgwqDCoMKgwqBtYW51YWwoIlJHQiB0ZXN0 IHBhdHRlcm4gd2l0aG91dCBjb3JydXB0aW9uIik7Cj4gQEAgLTE2NCw3ICsxOTUsMTAgQEAgc3Rh dGljIHZvaWQgdXBkYXRlX2Rpc3BsYXkoZGF0YV90ICpkYXRhLCBlbnVtCj4gZHNjX3Rlc3RfdHlw ZSB0ZXN0X3R5cGUsCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGVuYWJsZWQgPyAiT04iIDogIk9GRiIpOwo+IMKgCj4gwqDC oMKgwqDCoMKgwqDCoHJlc3RvcmVfZm9yY2VfZHNjX2VuKCk7Cj4gLcKgwqDCoMKgwqDCoMKgaWd0 X2RlYnVnKCJSZXNldCBjb21wcmVzc2lvbiBCUENcbiIpOwo+ICvCoMKgwqDCoMKgwqDCoGlmIChv dXRwdXRfZm9ybWF0ID09IERTQ19GT1JNQVRfWUNCQ1I0MjApCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoHJlc3RvcmVfZm9yY2VfZHNjX3ljYmNyNDIwX2VuKCk7Cj4gKwo+ICvCoMKg wqDCoMKgwqDCoGlndF9kZWJ1ZygiUmVzZXQgaW5wdXQgQlBDXG4iKTsKPiDCoMKgwqDCoMKgwqDC oMKgZGF0YS0+aW5wdXRfYnBjID0gMDsKPiDCoMKgwqDCoMKgwqDCoMKgZm9yY2VfZHNjX2VuYWJs ZV9icGMoZGF0YS0+ZHJtX2ZkLCBkYXRhLT5vdXRwdXQsIGRhdGEtCj4gPmlucHV0X2JwYyk7Cj4g wqAKPiBAQCAtMTc3LDcgKzIxMSw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9kaXNwbGF5KGRhdGFf dCAqZGF0YSwgZW51bQo+IGRzY190ZXN0X3R5cGUgdGVzdF90eXBlLAo+IMKgfQo+IMKgCj4gwqBz dGF0aWMgdm9pZCB0ZXN0X2RzYyhkYXRhX3QgKmRhdGEsIGVudW0gZHNjX3Rlc3RfdHlwZSB0ZXN0 X3R5cGUsIGludAo+IGJwYywKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgdW5zaWduZWQgaW50IHBsYW5lX2Zvcm1hdCkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgdW5zaWduZWQgaW50IHBsYW5lX2Zvcm1hdCwgZW51bQo+IGRzY19vdXRw dXRfZm9ybWF0IG91dHB1dF9mb3JtYXQpCj4gwqB7Cj4gwqDCoMKgwqDCoMKgwqDCoGlndF9kaXNw bGF5X3QgKmRpc3BsYXkgPSAmZGF0YS0+ZGlzcGxheTsKPiDCoMKgwqDCoMKgwqDCoMKgaWd0X291 dHB1dF90ICpvdXRwdXQ7Cj4gQEAgLTIwNiwxNSArMjQwLDE5IEBAIHN0YXRpYyB2b2lkIHRlc3Rf ZHNjKGRhdGFfdCAqZGF0YSwgZW51bQo+IGRzY190ZXN0X3R5cGUgdGVzdF90eXBlLCBpbnQgYnBj LAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZWxzZQo+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHNucHJpbnRmKG5hbWUsIHNpemVvZihu YW1lKSwgIi0lcyIsCj4gaWd0X2Zvcm1hdF9zdHIocGxhbmVfZm9ybWF0KSk7Cj4gwqAKPiAtwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X2R5bmFtaWNfZigicGlwZS0lcy0lcyVzIizC oAo+IGttc3Rlc3RfcGlwZV9uYW1lKGRhdGEtPnBpcGUpLCBkYXRhLT5vdXRwdXQtPm5hbWUsIG5h bWUpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB1cGRh dGVfZGlzcGxheShkYXRhLCB0ZXN0X3R5cGUsCj4gcGxhbmVfZm9ybWF0KTsKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X2R5bmFtaWNfZigicGlwZS0lcy0lcyVzLSVzIizCoAo+ IGttc3Rlc3RfcGlwZV9uYW1lKGRhdGEtPnBpcGUpLCBkYXRhLT5vdXRwdXQtPm5hbWUsIG5hbWUs Cj4ga21zdGVzdF9kc2Nfb3V0cHV0X2Zvcm1hdF9zdHIob3V0cHV0X2Zvcm1hdCkpCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB1cGRhdGVfZGlzcGxheShk YXRhLCB0ZXN0X3R5cGUsIHBsYW5lX2Zvcm1hdCwKPiBvdXRwdXRfZm9ybWF0KTsKPiDCoMKgwqDC oMKgwqDCoMKgfQo+IMKgfQo+IMKgCj4gwqBzdGF0aWMgdm9pZCBydW5fdGVzdChkYXRhX3QgKmRh dGEsIGVudW0gZHNjX3Rlc3RfdHlwZSB0ZXN0X3R5cGUsIGludAo+IGJwYywKPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGludCBwbGFuZV9mb3JtYXQp Cj4gwqB7Cj4gLcKgwqDCoMKgwqDCoMKgdGVzdF9kc2MoZGF0YSwgdGVzdF90eXBlLCBicGMsIHBs YW5lX2Zvcm1hdCk7Cj4gK8KgwqDCoMKgwqDCoMKgdGVzdF9kc2MoZGF0YSwgdGVzdF90eXBlLCBi cGMsIHBsYW5lX2Zvcm1hdCwKPiBEU0NfRk9STUFUX1JHQjQ0NCk7Cj4gKwo+ICvCoMKgwqDCoMKg wqDCoC8qIFlDYkNyNDIwIERTQyBpcyBzdXBwb3J0ZWQgb24gZGlzcGxheSB2ZXJzaW9uIDE0KyAq Lwo+ICvCoMKgwqDCoMKgwqDCoGlmICgoZGF0YS0+ZGlzcF92ZXIgPj0gMTQpICYmCj4gKGlzX2Rz Y195Y2JjcjQyMF9zdXBwb3J0ZWQoZGF0YS0+ZHJtX2ZkLCBkYXRhLT5vdXRwdXQpKSkKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdGVzdF9kc2MoZGF0YSwgdGVzdF90eXBlLCBicGMs IHBsYW5lX2Zvcm1hdCwKPiBEU0NfRk9STUFUX1lDQkNSNDIwKTsKPiDCoH0KPiDCoAo+IMKgaWd0 X21haW4KPiBkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9rbXNfZHNjX2hlbHBlci5jCj4gYi90ZXN0 cy9pOTE1L2ttc19kc2NfaGVscGVyLmMKPiBpbmRleCAxYTExZjg0ZWYuLjEzNWU5Y2Y1OCAxMDA2 NDQKPiAtLS0gYS90ZXN0cy9pOTE1L2ttc19kc2NfaGVscGVyLmMKPiArKysgYi90ZXN0cy9pOTE1 L2ttc19kc2NfaGVscGVyLmMKPiBAQCAtNiw3ICs2LDkgQEAKPiDCoCNpbmNsdWRlICJrbXNfZHNj X2hlbHBlci5oIgo+IMKgCj4gwqBib29sIGZvcmNlX2RzY19lbl9vcmlnOwo+ICtib29sIGZvcmNl X2RzY195Y2JjcjQyMF9lbl9vcmlnOwo+IMKgaW50IGZvcmNlX2RzY19yZXN0b3JlX2ZkID0gLTE7 Cj4gK2ludCBmb3JjZV9kc2NfeWNiY3I0MjBfcmVzdG9yZV9mZCA9IC0xOwoKU3RhdGljCgo+IMKg Cj4gwqB2b2lkIGZvcmNlX2RzY19lbmFibGUoaW50IGRybWZkLCBpZ3Rfb3V0cHV0X3QgKm91dHB1 dCkKPiDCoHsKPiBAQCAtNTEsNiArNTMsNyBAQCB2b2lkIHJlc3RvcmVfZm9yY2VfZHNjX2VuKHZv aWQpCj4gwqB2b2lkIGttc19kc2NfZXhpdF9oYW5kbGVyKGludCBzaWcpCj4gwqB7Cj4gwqDCoMKg wqDCoMKgwqDCoHJlc3RvcmVfZm9yY2VfZHNjX2VuKCk7Cj4gK8KgwqDCoMKgwqDCoMKgcmVzdG9y ZV9mb3JjZV9kc2NfeWNiY3I0MjBfZW4oKTsKPiDCoH0KPiDCoAo+IMKgYm9vbCBjaGVja19kc2Nf b25fY29ubmVjdG9yKGludCBkcm1mZCwgaWd0X291dHB1dF90ICpvdXRwdXQpCj4gQEAgLTk3LDMg KzEwMCw0NSBAQCBib29sIGNoZWNrX2dlbjExX2JwY19jb25zdHJhaW50KGludCBkcm1mZCwKPiBp Z3Rfb3V0cHV0X3QgKm91dHB1dCwgaW50IGlucHV0X2JwYykKPiDCoAo+IMKgwqDCoMKgwqDCoMKg wqByZXR1cm4gdHJ1ZTsKPiDCoH0KPiArCj4gK3ZvaWQgZm9yY2VfZHNjX3ljYmNyNDIwX2VuYWJs ZShpbnQgZHJtZmQsIGlndF9vdXRwdXRfdCAqb3V0cHV0KQo+ICt7Cj4gK8KgwqDCoMKgwqDCoMKg aW50IHJldDsKPiArCj4gK8KgwqDCoMKgwqDCoMKgaWd0X2RlYnVnKCJGb3JjaW5nIERTQyBZQ2JD cjQyMCBvbiAlc1xuIiwgb3V0cHV0LT5uYW1lKTsKPiArwqDCoMKgwqDCoMKgwqByZXQgPSBpZ3Rf Zm9yY2VfZHNjX3ljYmNyNDIwX2VuYWJsZShkcm1mZCwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIG91dHB1dC0+bmFtZSk7Cj4gK8KgwqDCoMKgwqDCoMKgaWd0X2Fzc2VydF9mKHJldCA+ IDAsICJmb3JjaW5nIGRzYyB5Y2JjcjQyMCBkZWJ1Z2ZzX3dyaXRlCj4gZmFpbGVkXG4iKTsKPiAr fQo+ICsKPiArdm9pZCBzYXZlX2ZvcmNlX2RzY195Y2JjcjQyMF9lbihpbnQgZHJtZmQsIGlndF9v dXRwdXRfdCAqb3V0cHV0KQo+ICt7Cj4gK8KgwqDCoMKgwqDCoMKgZm9yY2VfZHNjX3ljYmNyNDIw X2VuX29yaWcgPQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZ3RfaXNfZm9yY2Vf ZHNjX3ljYmNyNDIwX2VuYWJsZWQoZHJtZmQsIG91dHB1dC0KPiA+bmFtZSk7Cj4gK8KgwqDCoMKg wqDCoMKgZm9yY2VfZHNjX3ljYmNyNDIwX3Jlc3RvcmVfZmQgPQo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBpZ3RfZ2V0X2RzY195Y2JjcjQyMF9kZWJ1Z2ZzX2ZkKGRybWZkLCBvdXRw dXQtPm5hbWUpOwo+ICvCoMKgwqDCoMKgwqDCoGlndF9hc3NlcnQoZm9yY2VfZHNjX3ljYmNyNDIw X3Jlc3RvcmVfZmQgPj0gMCk7Cj4gK30KPiArCj4gK3ZvaWQgcmVzdG9yZV9mb3JjZV9kc2NfeWNi Y3I0MjBfZW4odm9pZCkKPiArewo+ICvCoMKgwqDCoMKgwqDCoGlmIChmb3JjZV9kc2NfeWNiY3I0 MjBfcmVzdG9yZV9mZCA8IDApCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVy bjsKPiArCj4gK8KgwqDCoMKgwqDCoMKgaWd0X2RlYnVnKCJSZXN0b3JpbmcgRFNDIFlDYkNyNDIw IGVuYWJsZVxuIik7Cj4gK8KgwqDCoMKgwqDCoMKgaWd0X2Fzc2VydCh3cml0ZShmb3JjZV9kc2Nf eWNiY3I0MjBfcmVzdG9yZV9mZCwKPiBmb3JjZV9kc2NfeWNiY3I0MjBfZW5fb3JpZyA/ICIxIiA6 ICIwIiwgMSkgPT0gMSk7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoGNsb3NlKGZvcmNlX2RzY195Y2Jj cjQyMF9yZXN0b3JlX2ZkKTsKPiArwqDCoMKgwqDCoMKgwqBmb3JjZV9kc2NfeWNiY3I0MjBfcmVz dG9yZV9mZCA9IC0xOwo+ICt9Cj4gKwo+ICtib29sIGlzX2RzY195Y2JjcjQyMF9zdXBwb3J0ZWQo aW50IGRybWZkLCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCkKPiArewo+ICvCoMKgwqDCoMKgwqDCoGlm ICghaWd0X2lzX2RzY195Y2JjcjQyMF9zdXBwb3J0ZWQoZHJtZmQsIG91dHB1dC0+bmFtZSkpIHsK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X2RlYnVnKCJEU0MgWUNiQ3I0MjAg bm90IHN1cHBvcnRlZCBvbiBjb25uZWN0b3IKPiAlc1xuIiwKPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG91dHB1dC0+bmFtZSk7Cj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiBmYWxzZTsKPiArwqDCoMKgwqDCoMKgwqB9Cj4g Kwo+ICvCoMKgwqDCoMKgwqDCoHJldHVybiB0cnVlOwo+ICt9Cj4gZGlmZiAtLWdpdCBhL3Rlc3Rz L2k5MTUva21zX2RzY19oZWxwZXIuaAo+IGIvdGVzdHMvaTkxNS9rbXNfZHNjX2hlbHBlci5oCj4g aW5kZXggZmU0NzlkYWM0Li44MzkwNWZhZmUgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvaTkxNS9rbXNf ZHNjX2hlbHBlci5oCj4gKysrIGIvdGVzdHMvaTkxNS9rbXNfZHNjX2hlbHBlci5oCj4gQEAgLTMx LDUgKzMxLDkgQEAgdm9pZCBrbXNfZHNjX2V4aXRfaGFuZGxlcihpbnQgc2lnKTsKPiDCoGJvb2wg Y2hlY2tfZHNjX29uX2Nvbm5lY3RvcihpbnQgZHJtZmQsIGlndF9vdXRwdXRfdCAqb3V0cHV0KTsK PiDCoGJvb2wgY2hlY2tfZ2VuMTFfZHBfY29uc3RyYWludChpbnQgZHJtZmQsIGlndF9vdXRwdXRf dCAqb3V0cHV0LCBlbnVtCj4gcGlwZSBwaXBlKTsKPiDCoGJvb2wgY2hlY2tfZ2VuMTFfYnBjX2Nv bnN0cmFpbnQoaW50IGRybWZkLCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgaW50Cj4gaW5wdXRfYnBj KTsKPiArdm9pZCBmb3JjZV9kc2NfeWNiY3I0MjBfZW5hYmxlKGludCBkcm1mZCwgaWd0X291dHB1 dF90ICpvdXRwdXQpOwo+ICt2b2lkIHNhdmVfZm9yY2VfZHNjX3ljYmNyNDIwX2VuKGludCBkcm1m ZCwgaWd0X291dHB1dF90ICpvdXRwdXQpOwo+ICt2b2lkIHJlc3RvcmVfZm9yY2VfZHNjX3ljYmNy NDIwX2VuKHZvaWQpOwo+ICtib29sIGlzX2RzY195Y2JjcjQyMF9zdXBwb3J0ZWQoaW50IGRybWZk LCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCk7Cj4gwqAKPiDCoCNlbmRpZgoK