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 590026E176 for ; Wed, 3 Jul 2019 17:12:22 +0000 (UTC) Date: Wed, 3 Jul 2019 20:12:18 +0300 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Message-ID: <20190703171218.GZ5942@intel.com> References: <20190628194438.2714-3-ville.syrjala@linux.intel.com> <20190702175708.15091-1-ville.syrjala@linux.intel.com> <3f3b5d88-49a0-5479-99fa-7b0b228dda6b@amd.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <3f3b5d88-49a0-5479-99fa-7b0b228dda6b@amd.com> Subject: Re: [igt-dev] [PATCH i-g-t v2 2/3] tests/kms_plane: Test all YCbCr encodings/ranges List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: "Kazlauskas, Nicholas" Cc: "igt-dev@lists.freedesktop.org" List-ID: T24gVHVlLCBKdWwgMDIsIDIwMTkgYXQgMDY6MDc6MjRQTSArMDAwMCwgS2F6bGF1c2thcywgTmlj aG9sYXMgd3JvdGU6Cj4gT24gNy8yLzE5IDE6NTcgUE0sIFZpbGxlIFN5cmphbGEgd3JvdGU6Cj4g PiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ ID4gCj4gPiBUZXN0IGFsbCBzdXBwb3J0IFlDYkNyIGVuY29kaW5nL3JhbmdlIGNvbWJpbmF0aW9u cy4gU28gZmFyCj4gPiB3ZSd2ZSBvbmx5IGJlZW4gdGVzdGluZyBvbmUgcGFydGljdWxhciBjb21i by4KPiA+IAo+ID4gdjI6IFVzZSBpZ3RfY3JlYXRlX2ZiX3dpdGhfYm9fc2l6ZSgpIGFuZCBoYW5k IHJvbGwgdGhlCj4gPiAgICAgIHNvbGlkIGZpbGxzCj4gPiAKPiA+IENjOiBVbWEgU2hhbmthciA8 dW1hLnNoYW5rYXJAaW50ZWwuY29tPgo+ID4gUmV2aWV3ZWQtYnk6IE5pY2hvbGFzIEthemxhdXNr YXMgPG5pY2hvbGFzLmthemxhdXNrYXNAYW1kLmNvbT4gI3YxCj4gPiBSZXZpZXdlZC1ieTogVW1h IFNoYW5rYXIgPHVtYS5zaGFua2FyQGludGVsLmNvbT4gI3YxCj4gPiBTaWduZWQtb2ZmLWJ5OiBW aWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gLS0tCj4g PiAgIHRlc3RzL2ttc19wbGFuZS5jIHwgMTY0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0KPiA+ICAgMSBmaWxlIGNoYW5nZWQsIDEyOSBpbnNlcnRpb25zKCsp LCAzNSBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19wbGFuZS5j IGIvdGVzdHMva21zX3BsYW5lLmMKPiA+IGluZGV4IDU5ZDVmMWU4MGNkMi4uY2U0YmY5ZTFjMjFk IDEwMDY0NAo+ID4gLS0tIGEvdGVzdHMva21zX3BsYW5lLmMKPiA+ICsrKyBiL3Rlc3RzL2ttc19w bGFuZS5jCj4gPiBAQCAtNDI3LDI3ICs0MjcsMzYgQEAgc3RhdGljIHZvaWQgdGVzdF9mb3JtYXRf cGxhbmVfY29sb3IoZGF0YV90ICpkYXRhLCBlbnVtIHBpcGUgcGlwZSwKPiA+ICAgCQkJCSAgICBp Z3RfcGxhbmVfdCAqcGxhbmUsCj4gPiAgIAkJCQkgICAgdWludDMyX3QgZm9ybWF0LCB1aW50NjRf dCBtb2RpZmllciwKPiA+ICAgCQkJCSAgICBpbnQgd2lkdGgsIGludCBoZWlnaHQsCj4gPiArCQkJ CSAgICBlbnVtIGlndF9jb2xvcl9lbmNvZGluZyBjb2xvcl9lbmNvZGluZywKPiA+ICsJCQkJICAg IGVudW0gaWd0X2NvbG9yX3JhbmdlIGNvbG9yX3JhbmdlLAo+ID4gICAJCQkJICAgIGludCBjb2xv ciwgaWd0X2NyY190ICpjcmMsIHN0cnVjdCBpZ3RfZmIgKmZiKQo+ID4gICB7Cj4gPiAgIAljb25z dCBjb2xvcl90ICpjID0gJmNvbG9yc1tjb2xvcl07Cj4gPiAgIAlzdHJ1Y3QgaWd0X2ZiIG9sZF9m YiA9ICpmYjsKPiA+ICsJY2Fpcm9fdCAqY3I7Cj4gPiAgIAo+ID4gICAJaWYgKGRhdGEtPmNyb3Ag PT0gMCB8fCBmb3JtYXQgPT0gRFJNX0ZPUk1BVF9YUkdCODg4OCkgewo+ID4gLQkJaWd0X2NyZWF0 ZV9jb2xvcl9mYihkYXRhLT5kcm1fZmQsIHdpZHRoLCBoZWlnaHQsCj4gPiAtCQkJCSAgICBmb3Jt YXQsIG1vZGlmaWVyLAo+ID4gLQkJCQkgICAgYy0+cmVkLCBjLT5ncmVlbiwgYy0+Ymx1ZSwgZmIp Owo+ID4gKwkJaWd0X2NyZWF0ZV9mYl93aXRoX2JvX3NpemUoZGF0YS0+ZHJtX2ZkLCB3aWR0aCwg aGVpZ2h0LAo+ID4gKwkJCQkJICAgZm9ybWF0LCBtb2RpZmllciwgY29sb3JfZW5jb2RpbmcsCj4g PiArCQkJCQkgICBjb2xvcl9yYW5nZSwgZmIsIDAsIDApOwo+ID4gKwo+ID4gKwkJY3IgPSBpZ3Rf Z2V0X2NhaXJvX2N0eChkYXRhLT5kcm1fZmQsIGZiKTsKPiA+ICsKPiA+ICsJCWlndF9wYWludF9j b2xvcihjciwgMCwgMCwgd2lkdGgsIGhlaWdodCwKPiA+ICsJCQkJYy0+cmVkLCBjLT5ncmVlbiwg Yy0+Ymx1ZSk7Cj4gPiArCj4gPiArCQlpZ3RfcHV0X2NhaXJvX2N0eChkYXRhLT5kcm1fZmQsIGZi LCBjcik7Cj4gPiAgIAl9IGVsc2Ugewo+ID4gKwkJaWd0X2NyZWF0ZV9mYl93aXRoX2JvX3NpemUo ZGF0YS0+ZHJtX2ZkLAo+ID4gKwkJCQkJICAgd2lkdGggKyBkYXRhLT5jcm9wICogMiwKPiA+ICsJ CQkJCSAgIGhlaWdodCArIGRhdGEtPmNyb3AgKiAyLAo+ID4gKwkJCQkJICAgZm9ybWF0LCBtb2Rp ZmllciwgY29sb3JfZW5jb2RpbmcsCj4gPiArCQkJCQkgICBjb2xvcl9yYW5nZSwgZmIsIDAsIDAp Owo+ID4gKwo+ID4gICAJCS8qCj4gPiAgIAkJICogcGFpbnQgYm9yZGVyIGluIGludmVydGVkIGNv bG9yLCB0aGVuIHZpc2libGUgYXJlYSBpbiBtaWRkbGUKPiA+ICAgCQkgKiB3aXRoIGNvcnJlY3Qg Y29sb3IgZm9yIGNsYW1waW5nIHRlc3QKPiA+ICAgCQkgKi8KPiA+IC0JCWNhaXJvX3QgKmNyOwo+ ID4gLQo+ID4gLQkJaWd0X2NyZWF0ZV9mYihkYXRhLT5kcm1fZmQsCj4gPiAtCQkJICAgICAgd2lk dGggKyBkYXRhLT5jcm9wICogMiwKPiA+IC0JCQkgICAgICBoZWlnaHQgKyBkYXRhLT5jcm9wICog MiwKPiA+IC0JCQkgICAgICBmb3JtYXQsIG1vZGlmaWVyLCBmYik7Cj4gPiAtCj4gPiAgIAkJY3Ig PSBpZ3RfZ2V0X2NhaXJvX2N0eChkYXRhLT5kcm1fZmQsIGZiKTsKPiA+ICAgCj4gPiAgIAkJaWd0 X3BhaW50X2NvbG9yKGNyLCAwLCAwLAo+ID4gQEAgLTUwMCw2ICs1MDksMTA0IEBAIHN0YXRpYyBp bnQgbnVtX3VuaXF1ZV9jcmNzKGNvbnN0IGlndF9jcmNfdCBjcmNbXSwgaW50IG51bV9jcmMpCj4g PiAgIAlyZXR1cm4gbnVtX3VuaXF1ZV9jcmM7Cj4gPiAgIH0KPiA+ICAgCj4gPiArc3RhdGljIGJv b2wgdGVzdF9mb3JtYXRfcGxhbmVfY29sb3JzKGRhdGFfdCAqZGF0YSwgZW51bSBwaXBlIHBpcGUs Cj4gPiArCQkJCSAgICAgaWd0X3BsYW5lX3QgKnBsYW5lLAo+ID4gKwkJCQkgICAgIHVpbnQzMl90 IGZvcm1hdCwgdWludDY0X3QgbW9kaWZpZXIsCj4gPiArCQkJCSAgICAgaW50IHdpZHRoLCBpbnQg aGVpZ2h0LAo+ID4gKwkJCQkgICAgIGVudW0gaWd0X2NvbG9yX2VuY29kaW5nIGVuY29kaW5nLAo+ ID4gKwkJCQkgICAgIGVudW0gaWd0X2NvbG9yX3JhbmdlIHJhbmdlLAo+ID4gKwkJCQkgICAgIGln dF9jcmNfdCByZWZfY3JjW0FSUkFZX1NJWkUoY29sb3JzKV0sCj4gPiArCQkJCSAgICAgc3RydWN0 IGlndF9mYiAqZmIpCj4gPiArewo+ID4gKwlpbnQgY3JjX21pc21hdGNoX2NvdW50ID0gMDsKPiA+ ICsJdW5zaWduZWQgaW50IGNyY19taXNtYXRjaF9tYXNrID0gMDsKPiA+ICsJYm9vbCByZXN1bHQg PSB0cnVlOwo+ID4gKwo+ID4gKwlmb3IgKGludCBpID0gMDsgaSA8IEFSUkFZX1NJWkUoY29sb3Jz KTsgaSsrKSB7Cj4gPiArCQlpZ3RfY3JjX3QgY3JjOwo+ID4gKwo+ID4gKwkJdGVzdF9mb3JtYXRf cGxhbmVfY29sb3IoZGF0YSwgcGlwZSwgcGxhbmUsCj4gPiArCQkJCQlmb3JtYXQsIG1vZGlmaWVy LAo+ID4gKwkJCQkJd2lkdGgsIGhlaWdodCwKPiA+ICsJCQkJCWVuY29kaW5nLCByYW5nZSwKPiA+ ICsJCQkJCWksICZjcmMsIGZiKTsKPiA+ICsKPiA+ICsJCWlmICghaWd0X2NoZWNrX2NyY19lcXVh bCgmY3JjLCAmcmVmX2NyY1tpXSkpIHsKPiA+ICsJCQljcmNfbWlzbWF0Y2hfY291bnQrKzsKPiA+ ICsJCQljcmNfbWlzbWF0Y2hfbWFzayB8PSAoMSA8PCBpKTsKPiA+ICsJCQlyZXN1bHQgPSBmYWxz ZTsKPiA+ICsJCX0KPiA+ICsJfQo+ID4gKwo+ID4gKwlpZiAoY3JjX21pc21hdGNoX2NvdW50KQo+ ID4gKwkJaWd0X3dhcm4oIkNSQyBtaXNtYXRjaGVzIHdpdGggZm9ybWF0ICIgSUdUX0ZPUk1BVF9G TVQgIiBvbiAlcy4ldSB3aXRoICVkLyVkIHNvbGlkIGNvbG9ycyB0ZXN0ZWQgKDB4JVgpXG4iLAo+ ID4gKwkJCSBJR1RfRk9STUFUX0FSR1MoZm9ybWF0KSwga21zdGVzdF9waXBlX25hbWUocGlwZSks Cj4gPiArCQkJIHBsYW5lLT5pbmRleCwgY3JjX21pc21hdGNoX2NvdW50LCAoaW50KUFSUkFZX1NJ WkUoY29sb3JzKSwgY3JjX21pc21hdGNoX21hc2spOwo+ID4gKwo+ID4gKwlyZXR1cm4gcmVzdWx0 Owo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgYm9vbCB0ZXN0X2Zvcm1hdF9wbGFuZV9yZ2IoZGF0 YV90ICpkYXRhLCBlbnVtIHBpcGUgcGlwZSwKPiA+ICsJCQkJICBpZ3RfcGxhbmVfdCAqcGxhbmUs Cj4gPiArCQkJCSAgdWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCBtb2RpZmllciwKPiA+ICsJCQkJ ICBpbnQgd2lkdGgsIGludCBoZWlnaHQsCj4gPiArCQkJCSAgaWd0X2NyY190IHJlZl9jcmNbQVJS QVlfU0laRShjb2xvcnMpXSwKPiA+ICsJCQkJICBzdHJ1Y3QgaWd0X2ZiICpmYikKPiA+ICt7Cj4g PiArCWlndF9pbmZvKCJUZXN0aW5nIGZvcm1hdCAiIElHVF9GT1JNQVRfRk1UICIgLyBtb2RpZmll ciAweCUiIFBSSXg2NCAiIG9uICVzLiV1XG4iLAo+ID4gKwkJIElHVF9GT1JNQVRfQVJHUyhmb3Jt YXQpLCBtb2RpZmllciwKPiA+ICsJCSBrbXN0ZXN0X3BpcGVfbmFtZShwaXBlKSwgcGxhbmUtPmlu ZGV4KTsKPiA+ICsKPiA+ICsJcmV0dXJuIHRlc3RfZm9ybWF0X3BsYW5lX2NvbG9ycyhkYXRhLCBw aXBlLCBwbGFuZSwKPiA+ICsJCQkJCWZvcm1hdCwgbW9kaWZpZXIsCj4gPiArCQkJCQl3aWR0aCwg aGVpZ2h0LAo+ID4gKwkJCQkJSUdUX0NPTE9SX1lDQkNSX0JUNjAxLAo+ID4gKwkJCQkJSUdUX0NP TE9SX1lDQkNSX0xJTUlURURfUkFOR0UsCj4gPiArCQkJCQlyZWZfY3JjLCBmYik7Cj4gPiArfQo+ ID4gKwo+ID4gK3N0YXRpYyBib29sIHRlc3RfZm9ybWF0X3BsYW5lX3l1dihkYXRhX3QgKmRhdGEs IGVudW0gcGlwZSBwaXBlLAo+ID4gKwkJCQkgIGlndF9wbGFuZV90ICpwbGFuZSwKPiA+ICsJCQkJ ICB1aW50MzJfdCBmb3JtYXQsIHVpbnQ2NF90IG1vZGlmaWVyLAo+ID4gKwkJCQkgIGludCB3aWR0 aCwgaW50IGhlaWdodCwKPiA+ICsJCQkJICBpZ3RfY3JjX3QgcmVmX2NyY1tBUlJBWV9TSVpFKGNv bG9ycyldLAo+ID4gKwkJCQkgIHN0cnVjdCBpZ3RfZmIgKmZiKQo+ID4gK3sKPiA+ICsJYm9vbCBy ZXN1bHQgPSB0cnVlOwo+ID4gKwo+ID4gKwlpZiAoIWlndF9wbGFuZV9oYXNfcHJvcChwbGFuZSwg SUdUX1BMQU5FX0NPTE9SX0VOQ09ESU5HKSkKPiA+ICsJCXJldHVybiB0cnVlOwo+ID4gKwlpZiAo IWlndF9wbGFuZV9oYXNfcHJvcChwbGFuZSwgSUdUX1BMQU5FX0NPTE9SX1JBTkdFKSkKPiA+ICsJ CXJldHVybiB0cnVlOwo+IAo+IFNraW1tZWQgb3ZlciB0aGlzIGluIG15IGZpcnN0IHBhc3MuCj4g Cj4gRG8gd2UgcmVhbGx5IHdhbnQgdG8gYmUgcmV0dXJuaW5nIHRydWUgaGVyZSBpZiB0aGUgZHJp dmVyIGRvZXNuJ3QgCj4gc3VwcG9ydCBlbmNvZGluZy9yYW5nZT8gSXQncyBwcm9iYWJseSBub3Qg YSBnb29kIGlkZWEgdG8gcmVhbGx5IGV4cG9zZSAKPiBZVVYgZm9ybWF0cyB3aXRoIHRoZW0gc28g aXQgbWlnaHQgYmUgYmVzdCB0byBqdXN0IGFzc2VydCBoZXJlIGluc3RlYWQuCgpJIHN1c3BlY3Qg dGhlcmUgYXJlIHN0aWxsIHF1aXRlIGEgZmV3IGRyaXZlcnMgdGhhdCBkb24ndCBleHBvc2UKdGhl c2UgcHJvcHMuIEFzc2VydGluZy9za2lwcGluZyBoZXJlIHdvdWxkIG1lYW4gc2tpcHBpbmcgdGhl IGVudGlyZQpzdWJ0ZXN0IHdoaWNoIGlzIG5vdCBzbyBncmVhdC4gU28gSU1PIGJldHRlciB0byBq dXN0IHNraXAgdGhlIFlVVgpmb3JtYXRzLgoKPiAKPiBUaGUgcmVzdCBvZiBQMStQMiBsZ3RtLiBJ IGRvbid0IHNlZSBQMyBidXQgdGhhdCBzdGlsbCBvbmx5IG5lZWRzIHRoZSAKPiB0aXRsZSBmaXgu Cj4gCj4gTmljaG9sYXMgS2F6bGF1c2thcwo+IAo+ID4gKwo+ID4gKwlmb3IgKGVudW0gaWd0X2Nv bG9yX2VuY29kaW5nIGUgPSAwOyBlIDwgSUdUX05VTV9DT0xPUl9FTkNPRElOR1M7IGUrKykgewo+ ID4gKwkJaWYgKCFpZ3RfcGxhbmVfdHJ5X3Byb3BfZW51bShwbGFuZSwKPiA+ICsJCQkJCSAgICAg SUdUX1BMQU5FX0NPTE9SX0VOQ09ESU5HLAo+ID4gKwkJCQkJICAgICBpZ3RfY29sb3JfZW5jb2Rp bmdfdG9fc3RyKGUpKSkKPiA+ICsJCQljb250aW51ZTsKPiA+ICsKPiA+ICsJCWZvciAoZW51bSBp Z3RfY29sb3JfcmFuZ2UgciA9IDA7IHIgPCBJR1RfTlVNX0NPTE9SX1JBTkdFUzsgcisrKSB7Cj4g PiArCQkJaWYgKCFpZ3RfcGxhbmVfdHJ5X3Byb3BfZW51bShwbGFuZSwKPiA+ICsJCQkJCQkgICAg IElHVF9QTEFORV9DT0xPUl9SQU5HRSwKPiA+ICsJCQkJCQkgICAgIGlndF9jb2xvcl9yYW5nZV90 b19zdHIocikpKQo+ID4gKwkJCQljb250aW51ZTsKPiA+ICsKPiA+ICsJCQlpZ3RfaW5mbygiVGVz dGluZyBmb3JtYXQgIiBJR1RfRk9STUFUX0ZNVCAiIC8gbW9kaWZpZXIgMHglIiBQUkl4NjQgIiAo JXMsICVzKSBvbiAlcy4ldVxuIiwKPiA+ICsJCQkJIElHVF9GT1JNQVRfQVJHUyhmb3JtYXQpLCBt b2RpZmllciwKPiA+ICsJCQkJIGlndF9jb2xvcl9lbmNvZGluZ190b19zdHIoZSksCj4gPiArCQkJ CSBpZ3RfY29sb3JfcmFuZ2VfdG9fc3RyKHIpLAo+ID4gKwkJCQkga21zdGVzdF9waXBlX25hbWUo cGlwZSksIHBsYW5lLT5pbmRleCk7Cj4gPiArCj4gPiArCQkJcmVzdWx0ICY9IHRlc3RfZm9ybWF0 X3BsYW5lX2NvbG9ycyhkYXRhLCBwaXBlLCBwbGFuZSwKPiA+ICsJCQkJCQkJICAgZm9ybWF0LCBt b2RpZmllciwKPiA+ICsJCQkJCQkJICAgd2lkdGgsIGhlaWdodCwKPiA+ICsJCQkJCQkJICAgZSwg ciwgcmVmX2NyYywgZmIpOwo+ID4gKwkJfQo+ID4gKwl9Cj4gPiArCj4gPiArCXJldHVybiByZXN1 bHQ7Cj4gPiArfQo+ID4gKwo+ID4gICBzdGF0aWMgYm9vbCB0ZXN0X2Zvcm1hdF9wbGFuZShkYXRh X3QgKmRhdGEsIGVudW0gcGlwZSBwaXBlLAo+ID4gICAJCQkgICAgICBpZ3Rfb3V0cHV0X3QgKm91 dHB1dCwgaWd0X3BsYW5lX3QgKnBsYW5lKQo+ID4gICB7Cj4gPiBAQCAtNTY5LDYgKzY3Niw4IEBA IHN0YXRpYyBib29sIHRlc3RfZm9ybWF0X3BsYW5lKGRhdGFfdCAqZGF0YSwgZW51bSBwaXBlIHBp cGUsCj4gPiAgIAkJdGVzdF9mb3JtYXRfcGxhbmVfY29sb3IoZGF0YSwgcGlwZSwgcGxhbmUsCj4g PiAgIAkJCQkJZm9ybWF0LCBtb2RpZmllciwKPiA+ICAgCQkJCQl3aWR0aCwgaGVpZ2h0LAo+ID4g KwkJCQkJSUdUX0NPTE9SX1lDQkNSX0JUNzA5LAo+ID4gKwkJCQkJSUdUX0NPTE9SX1lDQkNSX0xJ TUlURURfUkFOR0UsCj4gPiAgIAkJCQkJaSwgJnJlZl9jcmNbaV0sICZmYik7Cj4gPiAgIAl9Cj4g PiAgIAo+ID4gQEAgLTU4MCwxMCArNjg5LDYgQEAgc3RhdGljIGJvb2wgdGVzdF9mb3JtYXRfcGxh bmUoZGF0YV90ICpkYXRhLCBlbnVtIHBpcGUgcGlwZSwKPiA+ICAgCWlndF9yZXF1aXJlKG51bV91 bmlxdWVfY3JjcyhyZWZfY3JjLCBBUlJBWV9TSVpFKGNvbG9ycykpID4gMSk7Cj4gPiAgIAo+ID4g ICAJZm9yIChpbnQgaSA9IDA7IGkgPCBwbGFuZS0+Zm9ybWF0X21vZF9jb3VudDsgaSsrKSB7Cj4g PiAtCQlpbnQgY3JjX21pc21hdGNoX2NvdW50ID0gMDsKPiA+IC0JCWludCBjcmNfbWlzbWF0Y2hf bWFzayA9IDA7Cj4gPiAtCQlpZ3RfY3JjX3QgY3JjOwo+ID4gLQo+ID4gICAJCWZvcm1hdCA9IHBs YW5lLT5mb3JtYXRzW2ldOwo+ID4gICAJCW1vZGlmaWVyID0gcGxhbmUtPm1vZGlmaWVyc1tpXTsK PiA+ICAgCj4gPiBAQCAtNTk5LDMwICs3MDQsMTkgQEAgc3RhdGljIGJvb2wgdGVzdF9mb3JtYXRf cGxhbmUoZGF0YV90ICpkYXRhLCBlbnVtIHBpcGUgcGlwZSwKPiA+ICAgCQkJCWNvbnRpbnVlOwo+ ID4gICAJCX0KPiA+ICAgCj4gPiAtCQlpZ3RfaW5mbygiVGVzdGluZyBmb3JtYXQgIiBJR1RfRk9S TUFUX0ZNVCAiIC8gbW9kaWZpZXIgMHglIiBQUkl4NjQgIiBvbiAlcy4ldVxuIiwKPiA+IC0JCQkg SUdUX0ZPUk1BVF9BUkdTKGZvcm1hdCksIG1vZGlmaWVyLAo+ID4gLQkJCSBrbXN0ZXN0X3BpcGVf bmFtZShwaXBlKSwgcGxhbmUtPmluZGV4KTsKPiA+IC0KPiA+IC0JCWZvciAoaW50IGogPSAwOyBq IDwgQVJSQVlfU0laRShjb2xvcnMpOyBqKyspIHsKPiA+IC0JCQl0ZXN0X2Zvcm1hdF9wbGFuZV9j b2xvcihkYXRhLCBwaXBlLCBwbGFuZSwKPiA+IC0JCQkJCQlmb3JtYXQsIG1vZGlmaWVyLAo+ID4g LQkJCQkJCXdpZHRoLCBoZWlnaHQsCj4gPiAtCQkJCQkJaiwgJmNyYywgJmZiKTsKPiA+IC0KPiA+ IC0JCQlpZiAoIWlndF9jaGVja19jcmNfZXF1YWwoJmNyYywgJnJlZl9jcmNbal0pKSB7Cj4gPiAt CQkJCWNyY19taXNtYXRjaF9jb3VudCsrOwo+ID4gLQkJCQljcmNfbWlzbWF0Y2hfbWFzayB8PSAo MSA8PCBqKTsKPiA+IC0JCQkJcmVzdWx0ID0gZmFsc2U7Cj4gPiAtCQkJfQo+ID4gLQkJfQo+ID4g KwkJaWYgKGlndF9mb3JtYXRfaXNfeXV2KGZvcm1hdCkpCj4gPiArCQkJcmVzdWx0ICY9IHRlc3Rf Zm9ybWF0X3BsYW5lX3l1dihkYXRhLCBwaXBlLCBwbGFuZSwKPiA+ICsJCQkJCQkJZm9ybWF0LCBt b2RpZmllciwKPiA+ICsJCQkJCQkJd2lkdGgsIGhlaWdodCwKPiA+ICsJCQkJCQkJcmVmX2NyYywg JmZiKTsKPiA+ICsJCWVsc2UKPiA+ICsJCQlyZXN1bHQgJj0gdGVzdF9mb3JtYXRfcGxhbmVfcmdi KGRhdGEsIHBpcGUsIHBsYW5lLAo+ID4gKwkJCQkJCQlmb3JtYXQsIG1vZGlmaWVyLAo+ID4gKwkJ CQkJCQl3aWR0aCwgaGVpZ2h0LAo+ID4gKwkJCQkJCQlyZWZfY3JjLCAmZmIpOwo+ID4gICAKPiA+ ICAgCQlpZiAoZm9ybWF0ID09IERSTV9GT1JNQVRfQzgpCj4gPiAgIAkJCXNldF9sZWdhY3lfbHV0 KGRhdGEsIHBpcGUsIDB4ZmMwMCk7Cj4gPiAtCj4gPiAtCQlpZiAoY3JjX21pc21hdGNoX2NvdW50 KQo+ID4gLQkJCWlndF93YXJuKCJDUkMgbWlzbWF0Y2hlcyB3aXRoIGZvcm1hdCAiIElHVF9GT1JN QVRfRk1UICIgb24gJXMuJXUgd2l0aCAlZC8lZCBzb2xpZCBjb2xvcnMgdGVzdGVkICgweCVYKVxu IiwKPiA+IC0JCQkJIElHVF9GT1JNQVRfQVJHUyhmb3JtYXQpLCBrbXN0ZXN0X3BpcGVfbmFtZShw aXBlKSwKPiA+IC0JCQkJIHBsYW5lLT5pbmRleCwgY3JjX21pc21hdGNoX2NvdW50LCAoaW50KUFS UkFZX1NJWkUoY29sb3JzKSwgY3JjX21pc21hdGNoX21hc2spOwo+ID4gICAJfQo+ID4gICAKPiA+ ICAgCWlndF9waXBlX2NyY19zdG9wKGRhdGEtPnBpcGVfY3JjKTsKPiA+IAo+IAoKLS0gClZpbGxl IFN5cmrDpGzDpApJbnRlbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=