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 234586E7C2 for ; Tue, 7 May 2019 12:25:26 +0000 (UTC) Date: Tue, 7 May 2019 15:25:21 +0300 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Message-ID: <20190507122521.GN24299@intel.com> References: <20190507085154.32256-1-oleg.vasilev@intel.com> <20190507115810.GC22037@ideak-desk.fi.intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190507115810.GC22037@ideak-desk.fi.intel.com> Subject: Re: [igt-dev] [PATCH] tests/i915_pm_rpm: improved strictness and verbosity of i2c subtest 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: Imre Deak Cc: Jani Nikula , igt-dev@lists.freedesktop.org List-ID: T24gVHVlLCBNYXkgMDcsIDIwMTkgYXQgMDI6NTg6MTBQTSArMDMwMCwgSW1yZSBEZWFrIHdyb3Rl Ogo+IE9uIFR1ZSwgTWF5IDA3LCAyMDE5IGF0IDExOjUxOjU0QU0gKzAzMDAsIE9sZWcgVmFzaWxl diB3cm90ZToKPiA+IFRlc3QgY2hlY2tlZCB0aGF0IHRoZSBudW1iZXIgb2YgdmFsaWQgZWRpZHMg ZnJvbSBkcm0gaXMgZXF1YWwgdG8gdGhlCj4gPiBzYW1lIG51bWJlciBmcm9tIGkyYy4KPiA+IAo+ ID4gTm93IGZvciBlYWNoIGVkaWQgdGhlIHdob2xlIGJsb2IgaXMgY29tcGFyZWQuIEluIGNhc2Ug b2YgbWlzbWF0Y2ggdGhlCj4gPiB3aG9sZSBlZGlkIGlzIHByaW50ZWQuCj4gCj4gSG0sIGlmIEkn bSBwYXJzaW5nIHRoZSBjb2RlIGNvcnJlY3RseSB3ZSBoYXZlIGEgc3ltbGluayB0byB0aGUKPiBj b25uZWN0b3IncyBJMkMgZGV2aWNlIG9ubHkgZm9yIERQIGFuZCBTRFZPIGNvbm5lY3RvcnMsIGJ1 dCBub3QgZm9yCj4gSERNSSBvciBWR0EuCgpGb3IgRFAgdGhlIGF1eC9pMmMgaXMgYSBjaGlsZCBv ZiB0aGUgY29ubmVjdG9yLiBGb3IgZXZlcnl0aGluZyBlbHNlIEkKdGhpbmsgaXQncyBhIGNoaWxk IG9mIHRoZSBwY2kgZGV2aWNlLiBTRFZPIGxvb2tzIGxpa2UgdGhlIG5vbi1EUCBjYXNlCnRvIG1l LCBpZS4gaTJjIGRldiBpcyBhIGNoaWxkIG9mIHRoZSBwY2kgZGV2LiBXaGljaCBwcm9iYWJseSBt YWtlcwpzZW5zZSBpbiBjYXNlIHRoZSBTRFZPIGVuY29kZXIgaGFzIG11bHRpcGxlIGNvbm5lY3Rv cnMuCgo+IAo+IEphbmksIFZpbGxlIGRvIHlvdSBrbm93IHdoYXQncyB0aGUgcmVhc29uIGZvciB0 aGF0PyBJIHRoaW5rIGhhdmluZyBhCj4gc3ltbGluayB3b3VsZCBiZSB1c2VmdWwuCgpZZXMsIHN5 bWxpbmsgd291bGQgYmUgbmljZS4KCj4gCj4gSXMgdGhlcmUgYW5vdGhlciB3YXkgdG8gaWRlbnRp Znkgd2hpY2ggSTJDIGRldmljZSBhIGNvbm5lY3RvciB1c2VzPwo+IAo+ID4gCj4gPiBCdWd6aWxs YTogaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0MDk3Cj4g PiBDYzogQXJrYWRpdXN6IEhpbGVyIDxhcmthZGl1c3ouaGlsZXJAaW50ZWwuY29tPgo+ID4gQ2M6 IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IE9sZWcg VmFzaWxldiA8b2xlZy52YXNpbGV2QGludGVsLmNvbT4KPiA+IC0tLQo+ID4gIHRlc3RzL2k5MTUv aTkxNV9wbV9ycG0uYyB8IDE3NiArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t LS0KPiA+ICAxIGZpbGUgY2hhbmdlZCwgMTA4IGluc2VydGlvbnMoKyksIDY4IGRlbGV0aW9ucygt KQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9pOTE1X3BtX3JwbS5jIGIvdGVzdHMv aTkxNS9pOTE1X3BtX3JwbS5jCj4gPiBpbmRleCBhMmM5ZDBlZC4uZjE1MzAzOTEgMTAwNjQ0Cj4g PiAtLS0gYS90ZXN0cy9pOTE1L2k5MTVfcG1fcnBtLmMKPiA+ICsrKyBiL3Rlc3RzL2k5MTUvaTkx NV9wbV9ycG0uYwo+ID4gQEAgLTU3MSwzMyArNTcxLDU2IEBAIHN0YXRpYyB2b2lkIGFzc2VydF9k cm1faW5mb3NfZXF1YWwoc3RydWN0IGNvbXBhcmVfZGF0YSAqZDEsCj4gPiAgCQlhc3NlcnRfZHJt X2NydGNzX2VxdWFsKGQxLT5jcnRjc1tpXSwgZDItPmNydGNzW2ldKTsKPiA+ICB9Cj4gPiAgCj4g PiAtLyogV2UgY291bGQgY2hlY2sgdGhlIGNoZWNrc3VtIHRvbywgYnV0IGp1c3QgdGhlIGhlYWRl ciBpcyBwcm9iYWJseSBlbm91Z2guICovCj4gPiAtc3RhdGljIGJvb2wgZWRpZF9pc192YWxpZChj b25zdCB1bnNpZ25lZCBjaGFyICplZGlkKQo+ID4gK3N0YXRpYyBib29sIGZpbmRfaTJjX3BhdGgo Y2hhciAqY29ubmVjdG9yX25hbWUsIGNoYXIgKmkyY19wYXRoKQo+ID4gIHsKPiA+IC0JY2hhciBl ZGlkX2hlYWRlcltdID0gewo+ID4gLQkJMHgwLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZG LCAweEZGLCAweDAsCj4gPiAtCX07Cj4gPiArCXN0cnVjdCBkaXJlbnQgKmRpcmVudDsKPiA+ICsJ RElSICpkaXI7Cj4gPiArCWludCBzeXNmc19jYXJkX2ZkID0gaWd0X3N5c2ZzX29wZW4oZHJtX2Zk KTsKPiA+ICsJaW50IGNvbm5lY3Rvcl9mZCA9IC0xOwo+ID4gKwlib29sIGZvdW5kX2kyY19maWxl ID0gZmFsc2U7Cj4gPiAgCj4gPiAtCXJldHVybiAobWVtY21wKGVkaWQsIGVkaWRfaGVhZGVyLCBz aXplb2YoZWRpZF9oZWFkZXIpKSA9PSAwKTsKPiA+IC19Cj4gPiArCWRpciA9IGZkb3BlbmRpcihz eXNmc19jYXJkX2ZkKTsKPiA+ICsJaWd0X2Fzc2VydChkaXIpOwo+ID4gIAo+ID4gLXN0YXRpYyBp bnQgY291bnRfZHJtX3ZhbGlkX2VkaWRzKHN0cnVjdCBtb2RlX3NldF9kYXRhICpkYXRhKQo+ID4g LXsKPiA+IC0JaW50IHJldCA9IDA7Cj4gPiArCXdoaWxlICgoZGlyZW50ID0gcmVhZGRpcihkaXIp KSkgewo+ID4gKwkJLyogU2tpcCAiY2FyZHgtIiBwcmVmaXggKi8KPiA+ICsJCWNoYXIgKmRpcm5h bWUgPSBkaXJlbnQtPmRfbmFtZTsKPiA+ICsJCXdoaWxlKGRpcm5hbWVbMF0gIT0gJ1wwJyAmJiBk aXJuYW1lWzBdICE9ICctJykKPiA+ICsJCQkrK2Rpcm5hbWU7Cj4gPiAgCj4gPiAtCWlmICghZGF0 YS0+cmVzKQo+ID4gLQkJcmV0dXJuIDA7Cj4gPiArCQlpZigqZGlybmFtZSA9PSAnLScpCj4gPiAr CQkJKytkaXJuYW1lOwo+ID4gIAo+ID4gLQlmb3IgKGludCBpID0gMDsgaSA8IGRhdGEtPnJlcy0+ Y291bnRfY29ubmVjdG9yczsgaSsrKQo+ID4gLQkJaWYgKGRhdGEtPmVkaWRzW2ldICYmIGVkaWRf aXNfdmFsaWQoZGF0YS0+ZWRpZHNbaV0tPmRhdGEpKQo+ID4gLQkJCXJldCsrOwo+ID4gLQlyZXR1 cm4gcmV0Owo+ID4gKwkJaWYgKHN0cmNtcChkaXJuYW1lLCBjb25uZWN0b3JfbmFtZSkgPT0gMCkg ewo+ID4gKwkJCWNvbm5lY3Rvcl9mZCA9IG9wZW5hdChzeXNmc19jYXJkX2ZkLCBkaXJlbnQtPmRf bmFtZSwgT19SRE9OTFkpOwo+ID4gKwkJCWJyZWFrOwo+ID4gKwkJfQo+ID4gKwl9Cj4gPiArCWNs b3NlZGlyKGRpcik7Cj4gPiArCj4gPiArCWlmKGNvbm5lY3Rvcl9mZCA8IDApCj4gPiArCQlyZXR1 cm4gZmFsc2U7Cj4gPiArCj4gPiArCWRpciA9IGZkb3BlbmRpcihjb25uZWN0b3JfZmQpOwo+ID4g KwlpZ3RfYXNzZXJ0KGRpcik7Cj4gPiArCj4gPiArCXdoaWxlICgoZGlyZW50ID0gcmVhZGRpcihk aXIpKSkgewo+ID4gKwkJaWYgKHN0cm5jbXAoZGlyZW50LT5kX25hbWUsICJpMmMtIiwgNCkgPT0g MCkgewo+ID4gKwkJCXNwcmludGYoaTJjX3BhdGgsICIvZGV2LyVzIiwgZGlyZW50LT5kX25hbWUp Owo+ID4gKwkJCWZvdW5kX2kyY19maWxlID0gdHJ1ZTsKPiA+ICsJCX0KPiA+ICsJfQo+ID4gKwlj bG9zZWRpcihkaXIpOwo+ID4gKwlyZXR1cm4gZm91bmRfaTJjX2ZpbGU7Cj4gPiAgfQo+ID4gIAo+ ID4gLXN0YXRpYyBib29sIGkyY19lZGlkX2lzX3ZhbGlkKGludCBmZCkKPiA+ICsKPiA+ICtzdGF0 aWMgYm9vbCBpMmNfcmVhZF9lZGlkKGNoYXIgKmNvbm5lY3Rvcl9uYW1lLCB1bnNpZ25lZCBjaGFy ICplZGlkKQo+ID4gIHsKPiA+IC0JaW50IHJjOwo+ID4gLQl1bnNpZ25lZCBjaGFyIGVkaWRbMTI4 XSA9IHt9Owo+ID4gKwljaGFyIGkyY19wYXRoW1BBVEhfTUFYXTsKPiA+ICsJYm9vbCByZXN1bHQg PSBmaW5kX2kyY19wYXRoKGNvbm5lY3Rvcl9uYW1lLCBpMmNfcGF0aCk7Cj4gPiArCWludCByYywg ZmQ7Cj4gPiArCj4gPiAgCXN0cnVjdCBpMmNfbXNnIG1zZ3NbXSA9IHsKPiA+ICAJCXsgLyogU3Rh cnQgYXQgMC4gKi8KPiA+ICAJCQkuYWRkciA9IDB4NTAsCj4gPiBAQCAtNjE2LDY5ICs2MzksODYg QEAgc3RhdGljIGJvb2wgaTJjX2VkaWRfaXNfdmFsaWQoaW50IGZkKQo+ID4gIAkJLm5tc2dzID0g MiwKPiA+ICAJfTsKPiA+ICAKPiA+ICsKPiA+ICsJaWYgKCFyZXN1bHQpCj4gPiArCQlyZXR1cm4g ZmFsc2U7Cj4gPiArCj4gPiArCWZkID0gb3BlbihpMmNfcGF0aCwgT19SRFdSKTsKPiA+ICsJaWd0 X2Fzc2VydF9uZXEoZmQsIC0xKTsKPiA+ICsKPiA+ICAJcmMgPSBpb2N0bChmZCwgSTJDX1JEV1Is ICZtc2dzZXQpOwo+ID4gLQlyZXR1cm4gKHJjID49IDApID8gZWRpZF9pc192YWxpZChlZGlkKSA6 IGZhbHNlOwo+ID4gKwo+ID4gKwljbG9zZShmZCk7Cj4gPiArCXJldHVybiByYyA+PSAwOwo+ID4g IH0KPiA+ICAKPiA+IC1zdGF0aWMgaW50IGNvdW50X2kyY192YWxpZF9lZGlkcyh2b2lkKQo+ID4g K3N0YXRpYyB2b2lkIGZvcm1hdF9oZXhfc3RyaW5nKHVuc2lnbmVkIGNoYXIgZWRpZFtzdGF0aWMg RURJRF9MRU5HVEhdLAo+ID4gKwkJCSAgICAgIGNoYXIgYnVmW3N0YXRpYyBFRElEX0xFTkdUSCAq IDUgKyAxXSkKPiA+ICB7Cj4gPiAtCWludCBmZCwgcmV0ID0gMDsKPiA+IC0JRElSICpkaXI7Cj4g PiArCWZvciAoc2l6ZV90IGkgPSAwOyBpIDwgRURJRF9MRU5HVEg7ICsraSkKPiA+ICsJCXNwcmlu dGYoYnVmK2kqNSwgIjB4JTAyeCAiLCBlZGlkW2ldKTsKPiA+ICt9Cj4gPiAgCj4gPiAtCXN0cnVj dCBkaXJlbnQgKmRpcmVudDsKPiA+IC0JY2hhciBmdWxsX25hbWVbUEFUSF9NQVhdOwo+ID4gK3N0 YXRpYyB2b2lkIHRlc3RfaTJjKHN0cnVjdCBtb2RlX3NldF9kYXRhICpkYXRhKQo+ID4gK3sKPiA+ ICsJYm9vbCBmYWlsZWQgPSBmYWxzZTsKPiA+ICsJaWd0X2Rpc3BsYXlfdCBkaXNwbGF5Owo+ID4g KwlpZ3RfZGlzcGxheV9yZXF1aXJlKCZkaXNwbGF5LCBkcm1fZmQpOwo+ID4gIAo+ID4gLQlkaXIg PSBvcGVuZGlyKCIvZGV2LyIpOwo+ID4gLQlpZ3RfYXNzZXJ0KGRpcik7Cj4gPiArCWZvciAoaW50 IGkgPSAwOyBpIDwgZGF0YS0+cmVzLT5jb3VudF9jb25uZWN0b3JzOyBpKyspIHsKPiA+ICsJCXVu c2lnbmVkIGNoYXIgKmRybV9lZGlkID0gZGF0YS0+ZWRpZHNbaV0gPyBkYXRhLT5lZGlkc1tpXS0+ ZGF0YSA6IE5VTEw7Cj4gPiArCQl1bnNpZ25lZCBjaGFyIGkyY19lZGlkW0VESURfTEVOR1RIXSA9 IHt9Owo+ID4gIAo+ID4gLQl3aGlsZSAoKGRpcmVudCA9IHJlYWRkaXIoZGlyKSkpIHsKPiA+IC0J CWlmIChzdHJuY21wKGRpcmVudC0+ZF9uYW1lLCAiaTJjLSIsIDQpID09IDApIHsKPiA+IC0JCQlz cHJpbnRmKGZ1bGxfbmFtZSwgIi9kZXYvJXMiLCBkaXJlbnQtPmRfbmFtZSk7Cj4gPiAtCQkJZmQg PSBvcGVuKGZ1bGxfbmFtZSwgT19SRFdSKTsKPiA+IC0JCQlpZ3RfYXNzZXJ0X25lcShmZCwgLTEp Owo+ID4gLQkJCWlmIChpMmNfZWRpZF9pc192YWxpZChmZCkpCj4gPiAtCQkJCXJldCsrOwo+ID4g LQkJCWNsb3NlKGZkKTsKPiA+IC0JCX0KPiA+IC0JfQo+ID4gKwkJaWd0X291dHB1dF90ICpvdXRw dXQgPSBpZ3Rfb3V0cHV0X2Zyb21fY29ubmVjdG9yKCZkaXNwbGF5LAo+ID4gKwkJCQkJCQkJIGRh dGEtPmNvbm5lY3RvcnNbaV0pOwo+ID4gKwkJY2hhciAqY29ubmVjdG9yX25hbWUgPSAoY2hhciAq KSBpZ3Rfb3V0cHV0X25hbWUob3V0cHV0KTsKPiA+ICAKPiA+IC0JY2xvc2VkaXIoZGlyKTsKPiA+ ICsJCWJvb2wgZ290X2kyY19lZGlkID0gaTJjX3JlYWRfZWRpZChjb25uZWN0b3JfbmFtZSwgaTJj X2VkaWQpOwo+ID4gKwkJYm9vbCBnb3RfZHJtX2VkaWQgPSBkcm1fZWRpZCAhPSBOVUxMOwo+ID4g KwkJYm9vbCBpc192Z2EgPSBkYXRhLT5jb25uZWN0b3JzW2ldLT5jb25uZWN0b3JfdHlwZSA9PSBE Uk1fTU9ERV9DT05ORUNUT1JfVkdBOwo+ID4gIAo+ID4gLQlyZXR1cm4gcmV0Owo+ID4gLX0KPiA+ ICsJCWJvb2wgZWRpZHNfZXF1YWw7Cj4gPiAgCj4gPiAtc3RhdGljIGludCBjb3VudF92Z2Ffb3V0 cHV0cyhzdHJ1Y3QgbW9kZV9zZXRfZGF0YSAqZGF0YSkKPiA+IC17Cj4gPiAtCWludCBjb3VudCA9 IDA7Cj4gPiArCQkvKiBXZSBmYWlsIHRvIGRldGVjdCBzb21lIFZHQSBtb25pdG9ycyB1c2luZyBv dXIgaTJjIG1ldGhvZC4gSWYgeW91IGxvb2sKPiA+ICsJCSAqIGF0IHRoZSBkbWVzZyBvZiB0aGVz ZSBjYXNlcywgeW91J2xsIHNlZSB0aGUgS2VybmVsIGNvbXBsYWluaW5nIGFib3V0Cj4gPiArCQkg KiB0aGUgRURJRCByZWFkaW5nIG1vc3RseSBGRnMgYW5kIHRoZW4gZGlzYWJsaW5nIGJpdC1iYW5n aW5nLiBTaW5jZSB3ZQo+ID4gKwkJICogZG9uJ3Qgd2FudCB0byByZWltcGxlbWVudCBldmVyeXRo aW5nIHRoZSBLZXJuZWwgZG9lcywgbGV0J3MganVzdAo+ID4gKwkJICogYWNjZXB0IHRoZSBmYWN0 IHRoYXQgc29tZSBWR0Egb3V0cHV0cyB3b24ndCBiZSBwcm9wZXJseSBkZXRlY3RlZC4gKi8KPiA+ ICsJCWlmKGlzX3ZnYSkKPiA+ICsJCQljb250aW51ZTsKPiA+ICAKPiA+IC0JaWYgKCFkYXRhLT5y ZXMpCj4gPiAtCQlyZXR1cm4gMDsKPiA+ICsJCWlmKCFnb3RfaTJjX2VkaWQgJiYgIWdvdF9kcm1f ZWRpZCkKPiA+ICsJCQljb250aW51ZTsKPiA+ICsKPiA+ICsJCWlmKGdvdF9pMmNfZWRpZCAmJiBn b3RfZHJtX2VkaWQpCj4gPiArCQkJZWRpZHNfZXF1YWwgPSAoMCA9PSBtZW1jbXAoZHJtX2VkaWQs IGkyY19lZGlkLCBFRElEX0xFTkdUSCkpOwo+ID4gKwkJZWxzZQo+ID4gKwkJCWVkaWRzX2VxdWFs ID0gZmFsc2U7Cj4gPiAgCj4gPiAtCWZvciAoaW50IGkgPSAwOyBpIDwgZGF0YS0+cmVzLT5jb3Vu dF9jb25uZWN0b3JzOyBpKyspCj4gPiAtCQlpZiAoZGF0YS0+Y29ubmVjdG9yc1tpXS0+Y29ubmVj dG9yX3R5cGUgPT0KPiA+IC0JCSAgICBEUk1fTU9ERV9DT05ORUNUT1JfVkdBKQo+ID4gLQkJCWNv dW50Kys7Cj4gPiAgCj4gPiAtCXJldHVybiBjb3VudDsKPiA+IC19Cj4gPiArCQlpZiAoIWVkaWRz X2VxdWFsKSB7Cj4gPiArCQkJY2hhciBidWZbNSAqIEVESURfTEVOR1RIICsgMV07Cj4gPiArCQkJ aWd0X2NyaXRpY2FsKCJGb3IgY29ubmVjdG9yICVzIEVESUQgbWlzbWF0Y2ghXG4iLAo+ID4gKwkJ CQkgICAgIGNvbm5lY3Rvcl9uYW1lKTsKPiA+ICAKPiA+IC1zdGF0aWMgdm9pZCB0ZXN0X2kyYyhz dHJ1Y3QgbW9kZV9zZXRfZGF0YSAqZGF0YSkKPiA+IC17Cj4gPiAtCWludCBpMmNfZWRpZHMgPSBj b3VudF9pMmNfdmFsaWRfZWRpZHMoKTsKPiA+IC0JaW50IGRybV9lZGlkcyA9IGNvdW50X2RybV92 YWxpZF9lZGlkcyhkYXRhKTsKPiA+IC0JaW50IHZnYV9vdXRwdXRzID0gY291bnRfdmdhX291dHB1 dHMoZGF0YSk7Cj4gPiAtCWludCBkaWZmOwo+ID4gLQo+ID4gLQlpZ3RfZGVidWcoImkyYyBlZGlk czolZCBkcm0gZWRpZHM6JWQgdmdhIG91dHB1dHM6JWRcbiIsCj4gPiAtCQkgIGkyY19lZGlkcywg ZHJtX2VkaWRzLCB2Z2Ffb3V0cHV0cyk7Cj4gPiAtCj4gPiAtCS8qIFdlIGZhaWwgdG8gZGV0ZWN0 IHNvbWUgVkdBIG1vbml0b3JzIHVzaW5nIG91ciBpMmMgbWV0aG9kLiBJZiB5b3UgbG9vawo+ID4g LQkgKiBhdCB0aGUgZG1lc2cgb2YgdGhlc2UgY2FzZXMsIHlvdSdsbCBzZWUgdGhlIEtlcm5lbCBj b21wbGFpbmluZyBhYm91dAo+ID4gLQkgKiB0aGUgRURJRCByZWFkaW5nIG1vc3RseSBGRnMgYW5k IHRoZW4gZGlzYWJsaW5nIGJpdC1iYW5naW5nLiBTaW5jZSB3ZQo+ID4gLQkgKiBkb24ndCB3YW50 IHRvIHJlaW1wbGVtZW50IGV2ZXJ5dGhpbmcgdGhlIEtlcm5lbCBkb2VzLCBsZXQncyBqdXN0Cj4g PiAtCSAqIGFjY2VwdCB0aGUgZmFjdCB0aGF0IHNvbWUgVkdBIG91dHB1dHMgd29uJ3QgYmUgcHJv cGVybHkgZGV0ZWN0ZWQuICovCj4gPiAtCWRpZmYgPSBkcm1fZWRpZHMgLSBpMmNfZWRpZHM7Cj4g PiAtCWlndF9hc3NlcnQoZGlmZiA8PSB2Z2Ffb3V0cHV0cyAmJiBkaWZmID49IDApOwo+ID4gKwkJ CWlmKGdvdF9pMmNfZWRpZCkKPiA+ICsJCQkJZm9ybWF0X2hleF9zdHJpbmcoaTJjX2VkaWQsIGJ1 Zik7Cj4gPiArCQkJZWxzZQo+ID4gKwkJCQlzcHJpbnRmKGJ1ZiwgIk5VTEwiKTsKPiA+ICsKPiA+ ICsJCQlpZ3RfY3JpdGljYWwoImkyYzogJXNcbiIsIGJ1Zik7Cj4gPiArCj4gPiArCQkJaWYoZ290 X2RybV9lZGlkKQo+ID4gKwkJCQlmb3JtYXRfaGV4X3N0cmluZyhkcm1fZWRpZCwgYnVmKTsKPiA+ ICsJCQllbHNlCj4gPiArCQkJCXNwcmludGYoYnVmLCAiTlVMTCIpOwo+ID4gKwo+ID4gKwkJCWln dF9jcml0aWNhbCgiZHJtOiAlc1xuIiwgYnVmKTsKPiA+ICsKPiA+ICsJCQlmYWlsZWQgPSB0cnVl Owo+ID4gKwkJfQo+ID4gKwl9Cj4gPiArCWlndF9mYWlsX29uX2YoZmFpbGVkLCAiTWlzbWF0Y2gg b24gRURJRCB3ZSBnb3QgZnJvbSBpMmMgYW5kIERSTSFcbiIpOwo+ID4gIH0KPiA+ICAKPiA+ICBz dGF0aWMgdm9pZCBzZXR1cF9wYzgodm9pZCkKPiA+IC0tIAo+ID4gMi4yMS4wCj4gPiAKCi0tIApW aWxsZSBTeXJqw6Rsw6QKSW50ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3Qt ZGV2