From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9ACF16E588 for ; Tue, 19 Nov 2019 10:42:59 +0000 (UTC) From: "Kahola, Mika" Date: Tue, 19 Nov 2019 10:42:57 +0000 Message-ID: <06989bb518823645f44541a6d037932c90cb80e4.camel@intel.com> References: <20191108155704.31802-1-ville.syrjala@linux.intel.com> <20191108155704.31802-2-ville.syrjala@linux.intel.com> In-Reply-To: <20191108155704.31802-2-ville.syrjala@linux.intel.com> Content-Language: en-US Content-ID: <453D1B15E918524BA3CB2759632F7EBF@intel.com> MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t 2/3] tests/kms_plane_lowres: Stop relying in debugfs display_info 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: "ville.syrjala@linux.intel.com" , "igt-dev@lists.freedesktop.org" List-ID: T24gRnJpLCAyMDE5LTExLTA4IGF0IDE3OjU3ICswMjAwLCBWaWxsZSBTeXJqYWxhIHdyb3RlOgo+ IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4g Cj4gU3dpdGNoIHRoZSB0ZXN0IHRvIHJlbHkgcHVyZWx5IG9uIGNyY3MgaW5zdGVhZCBvZiBwYXJz aW5nIHN0dWZmCj4gZnJvbSB0aGUgZGVidWdmcyBkaXNwbGF5X2luZm8gZmlsZS4gU3VjaCBwYXJz aW4gaXMgZnJhZ2lsZSBhbmQKPiB3aWxsIGNhdXNlIHRlc3QgZmFpbHVyZXMgd2hlbmV2ZXIgYW55 b25lIHRyaWVzIHRvIGFkanVzdCB0aGUKPiBmaWxlIGxheW91dC4gTGV0J3MgdHJ1c3QgdGhhdCBj cmNzIGFyZSBnb29kIGVub3VnaCB0byBjYXRjaAo+IGNhc2VzIHdoZXJlIHdlIG1pc2NvbmZpZ3Vy ZSB0aGUgcGxhbmVzLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUu c3lyamFsYUBsaW51eC5pbnRlbC5jb20+CgpSZXZpZXdlZC1ieTogTWlrYSBLYWhvbGEgPG1pa2Eu a2Fob2xhQGludGVsLmNvbT4KCj4gLS0tCj4gIHRlc3RzL2ttc19wbGFuZV9sb3dyZXMuYyB8IDE4 NyArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQo+IC0tLS0KPiAgMSBmaWxlIGNo YW5nZWQsIDEwMiBpbnNlcnRpb25zKCspLCA4NSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0 IGEvdGVzdHMva21zX3BsYW5lX2xvd3Jlcy5jIGIvdGVzdHMva21zX3BsYW5lX2xvd3Jlcy5jCj4g aW5kZXggMWQzMDUzNDIwZDEwLi44NjVjNDNlMjMzM2MgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMva21z X3BsYW5lX2xvd3Jlcy5jCj4gKysrIGIvdGVzdHMva21zX3BsYW5lX2xvd3Jlcy5jCj4gQEAgLTMy LDI2ICszMiwzNiBAQAo+ICAKPiAgSUdUX1RFU1RfREVTQ1JJUFRJT04oIlRlc3QgYXRvbWljIG1v ZGUgc2V0dGluZyB3aXRoIGEgcGxhbmUgYnkKPiBzd2l0Y2hpbmcgYmV0d2VlbiBoaWdoIGFuZCBs b3cgcmVzb2x1dGlvbnMiKTsKPiAgCj4gLSNkZWZpbmUgU0laRSAgICAgICAgICAgIDI1Ngo+ICsj ZGVmaW5lIFNJWkUgNjQKPiAgCj4gIHR5cGVkZWYgc3RydWN0IHsKPiAgCWludCBkcm1fZmQ7Cj4g IAlpZ3RfZGlzcGxheV90IGRpc3BsYXk7Cj4gIAlzdHJ1Y3QgaWd0X2ZiIGZiX3ByaW1hcnk7Cj4g LQlzdHJ1Y3QgaWd0X2ZiIGZiX3BsYW5lOwo+ICsJc3RydWN0IGlndF9mYiBmYl9wbGFuZVsyXTsK PiArCXN0cnVjdCB7Cj4gKwkJc3RydWN0IGlndF9mYiBmYjsKPiArCQlpZ3RfY3JjX3QgY3JjOwo+ ICsJfSByZWZfbG93cmVzOwo+ICsJc3RydWN0IHsKPiArCQlzdHJ1Y3QgaWd0X2ZiIGZiOwo+ICsJ CWlndF9jcmNfdCBjcmM7Cj4gKwl9IHJlZl9oaXJlczsKPiArCWludCB4LCB5Owo+ICB9IGRhdGFf dDsKPiAgCj4gIHN0YXRpYyBkcm1Nb2RlTW9kZUluZm8KPiAtZ2V0X2xvd3Jlc19tb2RlKGludCBk cm1mZCwgaWd0X291dHB1dF90ICpvdXRwdXQsIGRybU1vZGVNb2RlSW5mbwo+ICptb2RlX2RlZmF1 bHQpCj4gK2dldF9sb3dyZXNfbW9kZShpbnQgZHJtZmQsIGlndF9vdXRwdXRfdCAqb3V0cHV0LAo+ ICsJCWNvbnN0IGRybU1vZGVNb2RlSW5mbyAqbW9kZV9kZWZhdWx0KQo+ICB7Cj4gLQlkcm1Nb2Rl TW9kZUluZm8gbW9kZTsKPiArCWNvbnN0IGRybU1vZGVNb2RlSW5mbyAqbW9kZTsKPiAgCWJvb2wg Zm91bmQgPSBmYWxzZTsKPiAgCWludCBsaW1pdCA9IG1vZGVfZGVmYXVsdC0+dmRpc3BsYXkgLSBT SVpFOwo+ICAJaW50IGo7Cj4gIAo+ICAJZm9yIChqID0gMDsgaiA8IG91dHB1dC0+Y29uZmlnLmNv bm5lY3Rvci0+Y291bnRfbW9kZXM7IGorKykgewo+IC0JCW1vZGUgPSBvdXRwdXQtPmNvbmZpZy5j b25uZWN0b3ItPm1vZGVzW2pdOwo+IC0JCWlmIChtb2RlLnZkaXNwbGF5IDwgbGltaXQpIHsKPiAr CQltb2RlID0gJm91dHB1dC0+Y29uZmlnLmNvbm5lY3Rvci0+bW9kZXNbal07Cj4gKwkJaWYgKG1v ZGUtPnZkaXNwbGF5IDwgbGltaXQpIHsKPiAgCQkJZm91bmQgPSB0cnVlOwo+ICAJCQlicmVhazsK PiAgCQl9Cj4gQEAgLTY0LDczICs3NCw2OSBAQCBnZXRfbG93cmVzX21vZGUoaW50IGRybWZkLCBp Z3Rfb3V0cHV0X3QgKm91dHB1dCwKPiBkcm1Nb2RlTW9kZUluZm8gKm1vZGVfZGVmYXVsdCkKPiAg CQlyZXR1cm4gKmlndF9zdGRfMTAyNF9tb2RlX2dldCgpOwo+ICAJfQo+ICAKPiAtCXJldHVybiBt b2RlOwo+ICsJcmV0dXJuICptb2RlOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZAo+IC1jaGVja19t b2RlKGRybU1vZGVNb2RlSW5mbyAqbW9kZTEsIGRybU1vZGVNb2RlSW5mbyAqbW9kZTIpCj4gK3N0 YXRpYyBib29sIHNldHVwX3BsYW5lKGRhdGFfdCAqZGF0YSwgaWd0X3BsYW5lX3QgKnBsYW5lKQo+ ICB7Cj4gLQlpZ3RfYXNzZXJ0X2VxKG1vZGUxLT5oZGlzcGxheSwgbW9kZTItPmhkaXNwbGF5KTsK PiAtCWlndF9hc3NlcnRfZXEobW9kZTEtPnZkaXNwbGF5LCBtb2RlMi0+dmRpc3BsYXkpOwo+IC0J aWd0X2Fzc2VydF9lcShtb2RlMS0+dnJlZnJlc2gsIG1vZGUyLT52cmVmcmVzaCk7Cj4gLX0KPiAt Cj4gLS8qCj4gLSAqIFJldHVybiBmYWxzZSBpZiB0ZXN0IG9uIHRoaXMgcGxhbmUgc2hvdWxkIGJl IHNraXBwZWQKPiAtICovCj4gLXN0YXRpYyBib29sCj4gLXNldHVwX3BsYW5lKGRhdGFfdCAqZGF0 YSwgaWd0X3BsYW5lX3QgKnBsYW5lLCBkcm1Nb2RlTW9kZUluZm8gKm1vZGUsCj4gLQkgICAgdWlu dDY0X3QgbW9kaWZpZXIpCj4gLXsKPiAtCXVpbnQ2NF90IHBsYW5lX21vZGlmaWVyOwo+IC0JdWlu dDMyX3QgcGxhbmVfZm9ybWF0Owo+IC0JaW50IHNpemUsIHgsIHk7Cj4gKwlzdHJ1Y3QgaWd0X2Zi ICpmYjsKPiAgCj4gIAlpZiAocGxhbmUtPnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSkK PiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAo+IC0JaWYgKHBsYW5lLT50eXBlID09IERSTV9QTEFORV9U WVBFX0NVUlNPUikKPiAtCQlzaXplID0gNjQ7Cj4gLQllbHNlCj4gLQkJc2l6ZSA9IFNJWkU7Cj4g KwlmYiA9ICZkYXRhLT5mYl9wbGFuZVswXTsKPiArCWlmICghaWd0X3BsYW5lX2hhc19mb3JtYXRf bW9kKHBsYW5lLCBmYi0+ZHJtX2Zvcm1hdCwgZmItCj4gPm1vZGlmaWVyKSkKPiArCQlmYiA9ICZk YXRhLT5mYl9wbGFuZVsxXTsKPiArCWlmICghaWd0X3BsYW5lX2hhc19mb3JtYXRfbW9kKHBsYW5l LCBmYi0+ZHJtX2Zvcm1hdCwgZmItCj4gPm1vZGlmaWVyKSkKPiArCQlyZXR1cm4gZmFsc2U7Cj4g IAo+IC0JeCA9IDA7Cj4gLQl5ID0gbW9kZS0+dmRpc3BsYXkgLSBzaXplOwo+ICsJaWd0X3BsYW5l X3NldF9wb3NpdGlvbihwbGFuZSwgZGF0YS0+eCwgZGF0YS0+eSk7Cj4gKwlpZ3RfcGxhbmVfc2V0 X2ZiKHBsYW5lLCBmYik7Cj4gIAo+IC0JaWYgKHBsYW5lLT50eXBlID09IERSTV9QTEFORV9UWVBF X0NVUlNPUikgewo+IC0JCXBsYW5lX2Zvcm1hdCA9IERSTV9GT1JNQVRfQVJHQjg4ODg7Cj4gLQkJ cGxhbmVfbW9kaWZpZXIgPSBMT0NBTF9EUk1fRk9STUFUX01PRF9OT05FOwo+IC0JfSBlbHNlIHsK PiAtCQlwbGFuZV9mb3JtYXQgPSBEUk1fRk9STUFUX1hSR0I4ODg4Owo+IC0JCXBsYW5lX21vZGlm aWVyID0gbW9kaWZpZXI7Cj4gLQl9Cj4gKwlyZXR1cm4gdHJ1ZTsKPiArfQo+ICAKPiAtCWlmICgh aWd0X3BsYW5lX2hhc19mb3JtYXRfbW9kKHBsYW5lLCBwbGFuZV9mb3JtYXQsCj4gcGxhbmVfbW9k aWZpZXIpKQo+IC0JCXJldHVybiBmYWxzZTsKPiArc3RhdGljIHZvaWQgYmxpdChkYXRhX3QgKmRh dGEsIGNhaXJvX3QgKmNyLAo+ICsJCSBzdHJ1Y3QgaWd0X2ZiICpzcmMsIGludCB4LCBpbnQgeSkK PiArewo+ICsJY2Fpcm9fc3VyZmFjZV90ICpzdXJmYWNlOwo+ICAKPiAtCWlndF9jcmVhdGVfY29s b3JfZmIoZGF0YS0+ZHJtX2ZkLCBzaXplLCBzaXplLCBwbGFuZV9mb3JtYXQsCj4gLQkJCSAgICBw bGFuZV9tb2RpZmllciwgMS4wLCAxLjAsIDAuMCwgJmRhdGEtCj4gPmZiX3BsYW5lKTsKPiAtCWln dF9wbGFuZV9zZXRfcG9zaXRpb24ocGxhbmUsIHgsIHkpOwo+IC0JaWd0X3BsYW5lX3NldF9mYihw bGFuZSwgJmRhdGEtPmZiX3BsYW5lKTsKPiArCXN1cmZhY2UgPSBpZ3RfZ2V0X2NhaXJvX3N1cmZh Y2UoZGF0YS0+ZHJtX2ZkLCBzcmMpOwo+ICAKPiAtCXJldHVybiB0cnVlOwo+ICsJY2Fpcm9fc2V0 X3NvdXJjZV9zdXJmYWNlKGNyLCBzdXJmYWNlLCB4LCB5KTsKPiArCWNhaXJvX3JlY3RhbmdsZShj ciwgeCwgeSwgc3JjLT53aWR0aCwgc3JjLT5oZWlnaHQpOwo+ICsJY2Fpcm9fZmlsbCAoY3IpOwo+ ICsKPiArCWNhaXJvX3N1cmZhY2VfZGVzdHJveShzdXJmYWNlKTsKPiAgfQo+ICAKPiAtc3RhdGlj IGlndF9wbGFuZV90ICoKPiAtcHJpbWFyeV9wbGFuZV9nZXQoaWd0X2Rpc3BsYXlfdCAqZGlzcGxh eSwgZW51bSBwaXBlIHBpcGUpCj4gK3N0YXRpYyB2b2lkIGNyZWF0ZV9yZWZfZmIoZGF0YV90ICpk YXRhLCB1aW50NjRfdCBtb2RpZmllciwKPiArCQkJICBjb25zdCBkcm1Nb2RlTW9kZUluZm8gKm1v ZGUsIHN0cnVjdCBpZ3RfZmIKPiAqZmIpCj4gIHsKPiAtCXVuc2lnbmVkIHBsYW5lX3ByaW1hcnlf aWQgPSBkaXNwbGF5LT5waXBlc1twaXBlXS5wbGFuZV9wcmltYXJ5Owo+IC0JcmV0dXJuICZkaXNw bGF5LT5waXBlc1twaXBlXS5wbGFuZXNbcGxhbmVfcHJpbWFyeV9pZF07Cj4gKwljYWlyb190ICpj cjsKPiArCj4gKwlpZ3RfY3JlYXRlX2ZiKGRhdGEtPmRybV9mZCwgbW9kZS0+aGRpc3BsYXksIG1v ZGUtPnZkaXNwbGF5LAo+ICsJCSAgICAgIERSTV9GT1JNQVRfWFJHQjg4ODgsIG1vZGlmaWVyLCBm Yik7Cj4gKwo+ICsJY3IgPSBpZ3RfZ2V0X2NhaXJvX2N0eChkYXRhLT5kcm1fZmQsIGZiKTsKPiAr CWJsaXQoZGF0YSwgY3IsICZkYXRhLT5mYl9wcmltYXJ5LCAwLCAwKTsKPiArCWJsaXQoZGF0YSwg Y3IsICZkYXRhLT5mYl9wbGFuZVswXSwgZGF0YS0+eCwgZGF0YS0+eSk7Cj4gKwlpZ3RfcHV0X2Nh aXJvX2N0eChkYXRhLT5kcm1fZmQsIGZiLCBjcik7Cj4gIH0KPiAgCj4gIHN0YXRpYyB1bnNpZ25l ZAo+ICB0ZXN0X3BsYW5lc19vbl9waXBlX3dpdGhfb3V0cHV0KGRhdGFfdCAqZGF0YSwgZW51bSBw aXBlIHBpcGUsCj4gIAkJCQlpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgdWludDY0X3QKPiBtb2RpZmll cikKPiAgewo+IC0JZHJtTW9kZU1vZGVJbmZvICptb2RlLCBtb2RlX2xvd3JlczsKPiArCWlndF9w aXBlX3QgKnBpcGVfb2JqID0gJmRhdGEtPmRpc3BsYXkucGlwZXNbcGlwZV07Cj4gKwljb25zdCBk cm1Nb2RlTW9kZUluZm8gKm1vZGU7Cj4gKwlkcm1Nb2RlTW9kZUluZm8gbW9kZV9sb3dyZXM7Cj4g IAlpZ3RfcGlwZV9jcmNfdCAqcGlwZV9jcmM7Cj4gIAl1bnNpZ25lZCB0ZXN0ZWQgPSAwOwo+ICAJ aWd0X3BsYW5lX3QgKnBsYW5lOwo+ICsJaWd0X3BsYW5lX3QgKnByaW1hcnk7Cj4gKwo+ICsJcHJp bWFyeSA9IGlndF9waXBlX2dldF9wbGFuZV90eXBlKHBpcGVfb2JqLAo+IERSTV9QTEFORV9UWVBF X1BSSU1BUlkpOwo+ICAKPiAgCWlndF9pbmZvKCJUZXN0aW5nIGNvbm5lY3RvciAlcyB1c2luZyBw aXBlICVzXG4iLAo+ICAJCSBpZ3Rfb3V0cHV0X25hbWUob3V0cHV0KSwga21zdGVzdF9waXBlX25h bWUocGlwZSkpOwo+IEBAIC0xMzksNzIgKzE0NSw4MyBAQCB0ZXN0X3BsYW5lc19vbl9waXBlX3dp dGhfb3V0cHV0KGRhdGFfdCAqZGF0YSwKPiBlbnVtIHBpcGUgcGlwZSwKPiAgCW1vZGUgPSBpZ3Rf b3V0cHV0X2dldF9tb2RlKG91dHB1dCk7Cj4gIAltb2RlX2xvd3JlcyA9IGdldF9sb3dyZXNfbW9k ZShkYXRhLT5kcm1fZmQsIG91dHB1dCwgbW9kZSk7Cj4gIAo+IC0JaWd0X2NyZWF0ZV9jb2xvcl9m YihkYXRhLT5kcm1fZmQsIG1vZGUtPmhkaXNwbGF5LCBtb2RlLQo+ID52ZGlzcGxheSwKPiAtCQkJ ICAgIERSTV9GT1JNQVRfWFJHQjg4ODgsIG1vZGlmaWVyLCAwLjAsIDAuMCwKPiAxLjAsCj4gLQkJ CSAgICAmZGF0YS0+ZmJfcHJpbWFyeSk7Cj4gLQlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnlfcGxh bmVfZ2V0KCZkYXRhLT5kaXNwbGF5LCBwaXBlKSwKPiAtCQkJICZkYXRhLT5mYl9wcmltYXJ5KTsK PiArCWlndF9jcmVhdGVfY29sb3JfcGF0dGVybl9mYihkYXRhLT5kcm1fZmQsIG1vZGUtPmhkaXNw bGF5LCBtb2RlLQo+ID52ZGlzcGxheSwKPiArCQkJCSAgICBEUk1fRk9STUFUX1hSR0I4ODg4LCBt b2RpZmllciwgMC4wLAo+IDAuMCwgMS4wLAo+ICsJCQkJICAgICZkYXRhLT5mYl9wcmltYXJ5KTsK PiArCj4gKwlkYXRhLT54ID0gMDsKPiArCWRhdGEtPnkgPSBtb2RlLT52ZGlzcGxheSAtIFNJWkU7 Cj4gKwo+ICsJLyogZm9yIG90aGVyIHBsYW5lcyAqLwo+ICsJaWd0X2NyZWF0ZV9jb2xvcl9wYXR0 ZXJuX2ZiKGRhdGEtPmRybV9mZCwgU0laRSwgU0laRSwKPiArCQkJCSAgICBEUk1fRk9STUFUX1hS R0I4ODg4LCBtb2RpZmllciwKPiArCQkJCSAgICAxLjAsIDEuMCwgMC4wLCAmZGF0YS0+ZmJfcGxh bmVbMF0pOwo+ICsJLyogZm9yIGN1cnNvciAqLwo+ICsJaWd0X2NyZWF0ZV9jb2xvcl9wYXR0ZXJu X2ZiKGRhdGEtPmRybV9mZCwgU0laRSwgU0laRSwKPiArCQkJCSAgICBEUk1fRk9STUFUX0FSR0I4 ODg4LAo+IERSTV9GT1JNQVRfTU9EX0xJTkVBUiwKPiArCQkJCSAgICAxLjAsIDEuMCwgMC4wLCAm ZGF0YS0+ZmJfcGxhbmVbMV0pOwo+ICsKPiArCWNyZWF0ZV9yZWZfZmIoZGF0YSwgbW9kaWZpZXIs IG1vZGUsICZkYXRhLT5yZWZfaGlyZXMuZmIpOwo+ICsJY3JlYXRlX3JlZl9mYihkYXRhLCBtb2Rp ZmllciwgJm1vZGVfbG93cmVzLCAmZGF0YS0KPiA+cmVmX2xvd3Jlcy5mYik7Cj4gIAo+ICAJcGlw ZV9jcmMgPSBpZ3RfcGlwZV9jcmNfbmV3KGRhdGEtPmRybV9mZCwgcGlwZSwKPiAgCQkJCSAgICBJ TlRFTF9QSVBFX0NSQ19TT1VSQ0VfQVVUTyk7Cj4gIAo+ICsJaWd0X291dHB1dF9vdmVycmlkZV9t b2RlKG91dHB1dCwgJm1vZGVfbG93cmVzKTsKPiArCWlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwg JmRhdGEtPnJlZl9sb3dyZXMuZmIpOwo+ICsJaWd0X2Rpc3BsYXlfY29tbWl0MigmZGF0YS0+ZGlz cGxheSwgQ09NTUlUX0FUT01JQyk7Cj4gKwlpZ3RfcGlwZV9jcmNfY29sbGVjdF9jcmMocGlwZV9j cmMsICZkYXRhLT5yZWZfbG93cmVzLmNyYyk7Cj4gKwo+ICsJaWd0X291dHB1dF9vdmVycmlkZV9t b2RlKG91dHB1dCwgTlVMTCk7Cj4gKwlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksICZkYXRhLT5y ZWZfaGlyZXMuZmIpOwo+ICsJaWd0X2Rpc3BsYXlfY29tbWl0MigmZGF0YS0+ZGlzcGxheSwgQ09N TUlUX0FUT01JQyk7Cj4gKwlpZ3RfcGlwZV9jcmNfY29sbGVjdF9jcmMocGlwZV9jcmMsICZkYXRh LT5yZWZfaGlyZXMuY3JjKTsKPiArCj4gKwlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksICZkYXRh LT5mYl9wcmltYXJ5KTsKPiArCWlndF9kaXNwbGF5X2NvbW1pdDIoJmRhdGEtPmRpc3BsYXksIENP TU1JVF9BVE9NSUMpOwo+ICsKPiAgCS8qIHllbGxvdyBzcHJpdGUgcGxhbmUgaW4gbG93ZXIgbGVm dCBjb3JuZXIgKi8KPiAgCWZvcl9lYWNoX3BsYW5lX29uX3BpcGUoJmRhdGEtPmRpc3BsYXksIHBp cGUsIHBsYW5lKSB7Cj4gLQkJaWd0X2NyY190IGNyY19oaXJlczEsIGNyY19oaXJlczI7Cj4gLQkJ aW50IHI7Cj4gLQo+IC0JCWlmICghc2V0dXBfcGxhbmUoZGF0YSwgcGxhbmUsIG1vZGUsIG1vZGlm aWVyKSkKPiAtCQkJY29udGludWU7Cj4gKwkJaWd0X2NyY190IGNyY19sb3dyZXMsIGNyY19oaXJl czEsIGNyY19oaXJlczI7Cj4gIAo+IC0JCXIgPSBpZ3RfZGlzcGxheV90cnlfY29tbWl0MigmZGF0 YS0+ZGlzcGxheSwKPiBDT01NSVRfQVRPTUlDKTsKPiAtCQlpZiAocikgewo+IC0JCQlpZ3RfZGVi dWcoIkNvbW1pdCBmYWlsZWQgJWkiLCByKTsKPiArCQlpZiAoIXNldHVwX3BsYW5lKGRhdGEsIHBs YW5lKSkKPiAgCQkJY29udGludWU7Cj4gLQkJfQo+ICAKPiAtCQlpZ3RfcGlwZV9jcmNfc3RhcnQo cGlwZV9jcmMpOwo+IC0JCWlndF9waXBlX2NyY19nZXRfc2luZ2xlKHBpcGVfY3JjLCAmY3JjX2hp cmVzMSk7Cj4gKwkJaWd0X2Rpc3BsYXlfY29tbWl0MigmZGF0YS0+ZGlzcGxheSwgQ09NTUlUX0FU T01JQyk7Cj4gIAo+IC0JCWlndF9hc3NlcnRfcGxhbmVfdmlzaWJsZShkYXRhLT5kcm1fZmQsIHBp cGUsIHBsYW5lLQo+ID5pbmRleCwKPiAtCQkJCQkgdHJ1ZSk7Cj4gKwkJaWd0X3BpcGVfY3JjX2Nv bGxlY3RfY3JjKHBpcGVfY3JjLCAmY3JjX2hpcmVzMSk7Cj4gIAo+ICAJCS8qIHN3aXRjaCB0byBs b3dlciByZXNvbHV0aW9uICovCj4gIAkJaWd0X291dHB1dF9vdmVycmlkZV9tb2RlKG91dHB1dCwg Jm1vZGVfbG93cmVzKTsKPiAtCQlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgcGlwZSk7Cj4g LQkJY2hlY2tfbW9kZSgmbW9kZV9sb3dyZXMsIGlndF9vdXRwdXRfZ2V0X21vZGUob3V0cHV0KSk7 Cj4gLQo+ICAJCWlndF9kaXNwbGF5X2NvbW1pdDIoJmRhdGEtPmRpc3BsYXksIENPTU1JVF9BVE9N SUMpOwo+ICAKPiAtCQlpZ3RfYXNzZXJ0X3BsYW5lX3Zpc2libGUoZGF0YS0+ZHJtX2ZkLCBwaXBl LCBwbGFuZS0KPiA+aW5kZXgsCj4gLQkJCQkJIGZhbHNlKTsKPiArCQlpZ3RfcGlwZV9jcmNfY29s bGVjdF9jcmMocGlwZV9jcmMsICZjcmNfbG93cmVzKTsKPiAgCj4gIAkJLyogc3dpdGNoIGJhY2sg dG8gaGlnaGVyIHJlc29sdXRpb24gKi8KPiAgCQlpZ3Rfb3V0cHV0X292ZXJyaWRlX21vZGUob3V0 cHV0LCBOVUxMKTsKPiAtCQlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgcGlwZSk7Cj4gLQkJ Y2hlY2tfbW9kZShtb2RlLCBpZ3Rfb3V0cHV0X2dldF9tb2RlKG91dHB1dCkpOwo+IC0KPiAgCQlp Z3RfZGlzcGxheV9jb21taXQyKCZkYXRhLT5kaXNwbGF5LCBDT01NSVRfQVRPTUlDKTsKPiAgCj4g LQkJaWd0X3BpcGVfY3JjX2dldF9jdXJyZW50KGRhdGEtPmRybV9mZCwgcGlwZV9jcmMsCj4gJmNy Y19oaXJlczIpOwo+IC0KPiAtCQlpZ3RfYXNzZXJ0X3BsYW5lX3Zpc2libGUoZGF0YS0+ZHJtX2Zk LCBwaXBlLCBwbGFuZS0KPiA+aW5kZXgsCj4gLQkJCQkJIHRydWUpOwo+ICsJCWlndF9waXBlX2Ny Y19jb2xsZWN0X2NyYyhwaXBlX2NyYywgJmNyY19oaXJlczIpOwo+ICAKPiAtCQlpZ3RfYXNzZXJ0 X2NyY19lcXVhbCgmY3JjX2hpcmVzMSwgJmNyY19oaXJlczIpOwo+IC0KPiAtCQlpZ3RfcGlwZV9j cmNfc3RvcChwaXBlX2NyYyk7Cj4gKwkJaWd0X2Fzc2VydF9jcmNfZXF1YWwoJmRhdGEtPnJlZl9o aXJlcy5jcmMsCj4gJmNyY19oaXJlczEpOwo+ICsJCWlndF9hc3NlcnRfY3JjX2VxdWFsKCZkYXRh LT5yZWZfaGlyZXMuY3JjLAo+ICZjcmNfaGlyZXMyKTsKPiArCQlpZ3RfYXNzZXJ0X2NyY19lcXVh bCgmZGF0YS0+cmVmX2xvd3Jlcy5jcmMsCj4gJmNyY19sb3dyZXMpOwo+ICAKPiAgCQlpZ3RfcGxh bmVfc2V0X2ZiKHBsYW5lLCBOVUxMKTsKPiAtCQlpZ3RfcmVtb3ZlX2ZiKGRhdGEtPmRybV9mZCwg JmRhdGEtPmZiX3BsYW5lKTsKPiAgCQl0ZXN0ZWQrKzsKPiAgCX0KPiAgCj4gIAlpZ3RfcGlwZV9j cmNfZnJlZShwaXBlX2NyYyk7Cj4gIAo+IC0JaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5X3BsYW5l X2dldCgmZGF0YS0+ZGlzcGxheSwgcGlwZSksCj4gTlVMTCk7Cj4gLQlpZ3RfcmVtb3ZlX2ZiKGRh dGEtPmRybV9mZCwgJmRhdGEtPmZiX3ByaW1hcnkpOwo+ICsJaWd0X3BsYW5lX3NldF9mYihwcmlt YXJ5LCBOVUxMKTsKPiAgCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBQSVBFX05PTkUpOwo+ ICAKPiArCWlndF9yZW1vdmVfZmIoZGF0YS0+ZHJtX2ZkLCAmZGF0YS0+ZmJfcGxhbmVbMV0pOwo+ ICsJaWd0X3JlbW92ZV9mYihkYXRhLT5kcm1fZmQsICZkYXRhLT5mYl9wbGFuZVswXSk7Cj4gKwlp Z3RfcmVtb3ZlX2ZiKGRhdGEtPmRybV9mZCwgJmRhdGEtPmZiX3ByaW1hcnkpOwo+ICsJaWd0X3Jl bW92ZV9mYihkYXRhLT5kcm1fZmQsICZkYXRhLT5yZWZfaGlyZXMuZmIpOwo+ICsJaWd0X3JlbW92 ZV9mYihkYXRhLT5kcm1fZmQsICZkYXRhLT5yZWZfbG93cmVzLmZiKTsKPiArCj4gIAlyZXR1cm4g dGVzdGVkOwo+ICB9Cj4gIApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=