From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: Re: [PATCH IGT v2 4/6] tests/kms_frontbuffer_tracking: Refactor to use IGT PSR library functions Date: Fri, 30 Jun 2017 17:46:27 -0300 Message-ID: <1498855587.22381.1.camel@intel.com> References: <1498849944-26404-1-git-send-email-jim.bride@linux.intel.com> <1498849944-26404-5-git-send-email-jim.bride@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6CA176E1A5 for ; Fri, 30 Jun 2017 20:46:31 +0000 (UTC) In-Reply-To: <1498849944-26404-5-git-send-email-jim.bride@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jim Bride , intel-gfx@lists.freedesktop.org Cc: Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org RW0gU2V4LCAyMDE3LTA2LTMwIMOgcyAxMjoxMiAtMDcwMCwgSmltIEJyaWRlIGVzY3JldmV1Ogo+ IHYyOiAqIE1pbm9yIGZ1bmN0aW9uYWwgdHdlYWtzIGFuZCBidWcgZml4ZXMKPiDCoMKgwqDCoCog UmViYXNlCj4gCj4gQ2M6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KPiBD YzogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1i eTogSmltIEJyaWRlIDxqaW0uYnJpZGVAbGludXguaW50ZWwuY29tPgoKVGhpcyBwYXRjaCBpcyBu b3QganVzdCBhIHJlZmFjdG9yLiBJdCBjaGFuZ2VzIGEgaG93IHRoZSBjb2RlIGJlaGF2ZXMuClBs ZWFzZSBzcGxpdCBpdCBpbnRvIG1hbnkgcGF0Y2hlczogb25lIHBhdGNoIHJlcGxhY2VzIGNvZGUg d2l0aAplcXVpdmFsZW50IGNvZGUgZnJvbSB0aGUgUFNSIGxpYnJhcnksIGFuZCB0aGUgb3RoZXIg cGF0Y2hlcyBzaG91bGQgZWFjaApkbyBvbmUgb2YgdGhlIGFjdHVhbCBjb2RlIGNoYW5nZXMgdGhh dCB0aGlzIHBhdGNoIGRvZXMuCgo+IC0tLQo+IMKgdGVzdHMva21zX2Zyb250YnVmZmVyX3RyYWNr aW5nLmMgfCAxMTkgKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLS0tLS0tLS0tLS0tCj4g wqAxIGZpbGUgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgMTAwIGRlbGV0aW9ucygtKQo+IAo+ IGRpZmYgLS1naXQgYS90ZXN0cy9rbXNfZnJvbnRidWZmZXJfdHJhY2tpbmcuYwo+IGIvdGVzdHMv a21zX2Zyb250YnVmZmVyX3RyYWNraW5nLmMKPiBpbmRleCBjMjRlNGE4Li4zYThiNzU0IDEwMDY0 NAo+IC0tLSBhL3Rlc3RzL2ttc19mcm9udGJ1ZmZlcl90cmFja2luZy5jCj4gKysrIGIvdGVzdHMv a21zX2Zyb250YnVmZmVyX3RyYWNraW5nLmMKPiBAQCAtMTgzLDcgKzE4Myw3IEBAIHN0cnVjdCB7 Cj4gwqB9Owo+IMKgCj4gwqAKPiAtI2RlZmluZSBTSU5LX0NSQ19TSVpFIDEyCj4gKyNkZWZpbmUg U0lOS19DUkNfU0laRSA2CgpBcyBSb2RyaWdvIG1lbnRpb25lZCwgdGhpcyBpcyBnb2luZyB0byBi cmVhay4KCgo+IMKgdHlwZWRlZiBzdHJ1Y3Qgewo+IMKgCWNoYXIgZGF0YVtTSU5LX0NSQ19TSVpF XTsKPiDCoH0gc2lua19jcmNfdDsKPiBAQCAtMzI3LDI4ICszMjcsNiBAQCBkcm1Nb2RlTW9kZUlu Zm8gc3RkXzEwMjRfbW9kZSA9IHsKPiDCoAkubmFtZSA9ICJDdXN0b20gMTAyNHg3NjgiLAo+IMKg fTsKPiDCoAo+IC1zdGF0aWMgZHJtTW9kZU1vZGVJbmZvUHRyCj4gZ2V0X2Nvbm5lY3Rvcl9zbWFs bGVzdF9tb2RlKGRybU1vZGVDb25uZWN0b3JQdHIgYykKPiAtewo+IC0JaW50IGk7Cj4gLQlkcm1N b2RlTW9kZUluZm9QdHIgc21hbGxlc3QgPSBOVUxMOwo+IC0KPiAtCWZvciAoaSA9IDA7IGkgPCBj LT5jb3VudF9tb2RlczsgaSsrKSB7Cj4gLQkJZHJtTW9kZU1vZGVJbmZvUHRyIG1vZGUgPSAmYy0+ bW9kZXNbaV07Cj4gLQo+IC0JCWlmICghc21hbGxlc3QpCj4gLQkJCXNtYWxsZXN0ID0gbW9kZTsK PiAtCj4gLQkJaWYgKG1vZGUtPmhkaXNwbGF5ICogbW9kZS0+dmRpc3BsYXkgPAo+IC0JCcKgwqDC oMKgc21hbGxlc3QtPmhkaXNwbGF5ICogc21hbGxlc3QtPnZkaXNwbGF5KQo+IC0JCQlzbWFsbGVz dCA9IG1vZGU7Cj4gLQl9Cj4gLQo+IC0JaWYgKGMtPmNvbm5lY3Rvcl90eXBlID09IERSTV9NT0RF X0NPTk5FQ1RPUl9lRFApCj4gLQkJc21hbGxlc3QgPSAmc3RkXzEwMjRfbW9kZTsKPiAtCj4gLQly ZXR1cm4gc21hbGxlc3Q7Cj4gLX0KPiAtCj4gwqBzdGF0aWMgZHJtTW9kZUNvbm5lY3RvclB0ciBn ZXRfY29ubmVjdG9yKHVpbnQzMl90IGlkKQo+IMKgewo+IMKgCWludCBpOwo+IEBAIC00MjEsMzAg KzM5OSw2IEBAIHN0YXRpYyB2b2lkIGluaXRfbW9kZV9wYXJhbXMoc3RydWN0Cj4gbW9kZXNldF9w YXJhbXMgKnBhcmFtcywgdWludDMyX3QgY3J0Y19pZCwKPiDCoAlwYXJhbXMtPnNwcml0ZS5oID0g NjQ7Cj4gwqB9Cj4gwqAKPiAtc3RhdGljIGJvb2wgY29ubmVjdG9yX2dldF9tb2RlKGRybU1vZGVD b25uZWN0b3JQdHIgYywKPiBkcm1Nb2RlTW9kZUluZm9QdHIgKm1vZGUpCj4gLXsKPiAtCSptb2Rl ID0gTlVMTDsKPiAtCj4gLQlpZiAoYy0+Y29ubmVjdGlvbiAhPSBEUk1fTU9ERV9DT05ORUNURUQg fHwgIWMtPmNvdW50X21vZGVzKQo+IC0JCXJldHVybiBmYWxzZTsKPiAtCj4gLQlpZiAoYy0+Y29u bmVjdG9yX3R5cGUgPT0gRFJNX01PREVfQ09OTkVDVE9SX2VEUCAmJgo+IG9wdC5ub19lZHApCj4g LQkJcmV0dXJuIGZhbHNlOwo+IC0KPiAtCWlmIChvcHQuc21hbGxfbW9kZXMpCj4gLQkJKm1vZGUg PSBnZXRfY29ubmVjdG9yX3NtYWxsZXN0X21vZGUoYyk7Cj4gLQllbHNlCj4gLQkJKm1vZGUgPSAm Yy0+bW9kZXNbMF07Cj4gLQo+IC0JwqAvKiBPbiBIU1cgdGhlIENSQyBXQSBpcyBzbyBhd2Z1bCB0 aGF0IGl0IG1ha2VzIHlvdSB0aGluawo+IGV2ZXJ5dGhpbmcgaXMKPiAtCcKgwqAqIGJ1Z2dlZC4g Ki8KPiAtCWlmIChJU19IQVNXRUxMKGludGVsX2dldF9kcm1fZGV2aWQoZHJtLmZkKSkgJiYKPiAt CcKgwqDCoMKgYy0+Y29ubmVjdG9yX3R5cGUgPT0gRFJNX01PREVfQ09OTkVDVE9SX2VEUCkKPiAt CQkqbW9kZSA9ICZzdGRfMTAyNF9tb2RlOwo+IC0KPiAtCXJldHVybiB0cnVlOwo+IC19Cj4gLQo+ IMKgc3RhdGljIGJvb2wgY29ubmVjdG9yX3N1cHBvcnRzX3BpcGVfYShkcm1Nb2RlQ29ubmVjdG9y UHRyIGNvbm5lY3RvcikKPiDCoHsKPiDCoAlpbnQgaTsKPiBAQCAtNDczLDcgKzQyNyw3IEBAIHN0 YXRpYyBib29sIGZpbmRfY29ubmVjdG9yKGJvb2wgZWRwX29ubHksIGJvb2wKPiBwaXBlX2EsIHVp bnQzMl90IGZvcmJpZGRlbl9pZCwKPiDCoAkJCWNvbnRpbnVlOwo+IMKgCQlpZiAoYy0+Y29ubmVj dG9yX2lkID09IGZvcmJpZGRlbl9pZCkKPiDCoAkJCWNvbnRpbnVlOwo+IC0JCWlmICghY29ubmVj dG9yX2dldF9tb2RlKGMsICZtb2RlKSkKPiArCQlpZiAoIWlndF9wc3JfZmluZF9nb29kX21vZGUo YywgJm1vZGUpKQoKaWd0X3Bzcl9maW5kX2dvb2RfbW9kZSgpIGRvZXNuJ3Qgc2VlbSB0byBkbyB3 aGF0IGNvbm5lY3Rvcl9nZXRfbW9kZSgpCmRvZXMsIHdlIGNhbid0IHVzZSBpdC4gVGhpcyBpcyBn b2luZyB0byBpbnRyb2R1Y2UgYnVncy4KCgo+IMKgCQkJY29udGludWU7Cj4gwqAKPiDCoAkJKnJl dF9jb25uZWN0b3IgPSBjOwo+IEBAIC04MDQsMjMgKzc1OCw2IEBAIHN0YXRpYyB2b2lkIGZiY19w cmludF9zdGF0dXModm9pZCkKPiDCoAlpZ3RfaW5mbygiRkJDIHN0YXR1czpcbiVzXG4iLCBidWYp Owo+IMKgfQo+IMKgCj4gLXN0YXRpYyBib29sIHBzcl9pc19lbmFibGVkKHZvaWQpCj4gLXsKPiAt CWNoYXIgYnVmWzI1Nl07Cj4gLQo+IC0JZGVidWdmc19yZWFkKCJpOTE1X2VkcF9wc3Jfc3RhdHVz IiwgYnVmKTsKPiAtCXJldHVybiBzdHJzdHIoYnVmLCAiXG5BY3RpdmU6IHllc1xuIikgJiYKPiAt CcKgwqDCoMKgwqDCoMKgc3Ryc3RyKGJ1ZiwgIlxuSFcgRW5hYmxlZCAmIEFjdGl2ZSBiaXQ6IHll c1xuIik7Cj4gLX0KPiAtCj4gLXN0YXRpYyB2b2lkIHBzcl9wcmludF9zdGF0dXModm9pZCkKPiAt ewo+IC0JY2hhciBidWZbMjU2XTsKPiAtCj4gLQlkZWJ1Z2ZzX3JlYWQoImk5MTVfZWRwX3Bzcl9z dGF0dXMiLCBidWYpOwo+IC0JaWd0X2luZm8oIlBTUiBzdGF0dXM6XG4lc1xuIiwgYnVmKTsKPiAt fQo+IC0KPiDCoHN0YXRpYyBzdHJ1Y3QgdGltZXNwZWMgZmJjX2dldF9sYXN0X2FjdGlvbih2b2lk KQo+IMKgewo+IMKgCXN0cnVjdCB0aW1lc3BlYyByZXQgPSB7IDAsIDAgfTsKPiBAQCAtOTI2LDQ0 ICs4NjMsMzEgQEAgc3RhdGljIGJvb2wgZmJjX3dhaXRfdW50aWxfZW5hYmxlZCh2b2lkKQo+IMKg CXJldHVybiBpZ3Rfd2FpdChmYmNfaXNfZW5hYmxlZCgpLCAyMDAwLCAxKTsKPiDCoH0KPiDCoAo+ IC1zdGF0aWMgYm9vbCBwc3Jfd2FpdF91bnRpbF9lbmFibGVkKHZvaWQpCj4gLXsKPiAtCXJldHVy biBpZ3Rfd2FpdChwc3JfaXNfZW5hYmxlZCgpLCA1MDAwLCAxKTsKPiAtfQo+IC0KPiDCoCNkZWZp bmUgZmJjX2VuYWJsZSgpIGlndF9zZXRfbW9kdWxlX3BhcmFtX2ludCgiZW5hYmxlX2ZiYyIsIDEp Cj4gwqAjZGVmaW5lIGZiY19kaXNhYmxlKCkgaWd0X3NldF9tb2R1bGVfcGFyYW1faW50KCJlbmFi bGVfZmJjIiwgMCkKPiAtI2RlZmluZSBwc3JfZW5hYmxlKCkgaWd0X3NldF9tb2R1bGVfcGFyYW1f aW50KCJlbmFibGVfcHNyIiwgMSkKPiAtI2RlZmluZSBwc3JfZGlzYWJsZSgpIGlndF9zZXRfbW9k dWxlX3BhcmFtX2ludCgiZW5hYmxlX3BzciIsIDApCj4gwqAKPiDCoHN0YXRpYyB2b2lkIGdldF9z aW5rX2NyYyhzaW5rX2NyY190ICpjcmMsIGJvb2wgbWFuZGF0b3J5KQo+IMKgewo+IC0JaW50IHJj LCBlcnJub187Cj4gKwlpbnQgcmM7Cj4gwqAKPiDCoAlpZiAoIXNpbmtfY3JjLnN1cHBvcnRlZCkg ewo+IMKgCQltZW1jcHkoY3JjLCAidW5zdXBwb3J0ZWQhIiwgU0lOS19DUkNfU0laRSk7Cj4gwqAJ CXJldHVybjsKPiDCoAl9Cj4gwqAKPiAtCWxzZWVrKHNpbmtfY3JjLmZkLCAwLCBTRUVLX1NFVCk7 Cj4gLQo+IC0JcmMgPSByZWFkKHNpbmtfY3JjLmZkLCBjcmMtPmRhdGEsIFNJTktfQ1JDX1NJWkUp Owo+IC0JZXJybm9fID0gZXJybm87Cj4gLQo+IC0JaWYgKHJjID09IC0xICYmIGVycm5vXyA9PSBF Tk9UVFkpIHsKPiArCXJjID0gaWd0X3Bzcl9nZXRfc2lua19jcmMoc2lua19jcmMuZmQsIGNyYy0+ ZGF0YSk7Cj4gKwlpZiAocmMgPT0gRU5PVFRZKSB7Cj4gwqAJCWlndF9pbmZvKCJTaW5rIENSQyBu b3Qgc3VwcG9ydGVkOiBwYW5lbCBkb2Vzbid0Cj4gc3VwcG9ydCBpdFxuIik7CgpXZSdsbCBwcmlu dCB0aGlzIHR3aWNlIG5vdy4KCgo+IMKgCQlzaW5rX2NyYy5zdXBwb3J0ZWQgPSBmYWxzZTsKPiAt CX0gZWxzZSBpZiAocmMgPT0gLTEgJiYgZXJybm9fID09IEVUSU1FRE9VVCkgewo+IC0JCWlmIChz aW5rX2NyYy5yZWxpYWJsZSkgewo+IC0JCQlpZ3RfaW5mbygiU2luayBDUkMgaXMgdW5yZWxpYWJs ZSBvbiB0aGlzCj4gbWFjaGluZS5cbiIpOwo+ICsJfSBlbHNlIGlmIChyYyA9PSBFVElNRURPVVQp IHsKPiArCQlpZiAoc2lua19jcmMucmVsaWFibGUpwqAKPiDCoAkJCXNpbmtfY3JjLnJlbGlhYmxl ID0gZmFsc2U7Cj4gLQkJfQo+ICsJCQo+IMKgCgpUaGVyZSBhcmUgc29tZSBwcm9ibGVtcyB3aXRo IHdoaXRlIHNwYWNlcyBpbiB0aGUgbGluZXMgYWJvdmU6IGEgZG91YmxlCmJsYW5rIGxpbmUgYW5k IHRyYWlsaW5nIHNwYWNlcyBhdCB0aGUgZW5kIG9mIGxpbmVzLgoKCj4gwqAJCWlmIChtYW5kYXRv cnkpCj4gwqAJCQlpZ3Rfc2tpcCgiU2luayBDUkMgaXMgdW5yZWxpYWJsZSBvbiB0aGlzCj4gbWFj aGluZS5cbiIpOwo+IMKgCX0gZWxzZSB7Cj4gLQkJaWd0X2Fzc2VydF9mKHJjICE9IC0xLCAiVW5l eHBlY3RlZCBlcnJvcjogJWRcbiIsCj4gZXJybm9fKTsKPiAtCQlpZ3RfYXNzZXJ0KHJjID09IFNJ TktfQ1JDX1NJWkUpOwo+ICsJCWlndF9hc3NlcnRfZihyYyA9PSAwLCAiVW5leHBlY3RlZCBlcnJv cjogJWRcbiIsIHJjKTsKPiDCoAl9Cj4gwqB9Cj4gwqAKPiBAQCAtMTE4MCw3ICsxMTA0LDcgQEAg c3RhdGljIHZvaWQgZGlzYWJsZV9mZWF0dXJlcyhjb25zdCBzdHJ1Y3QKPiB0ZXN0X21vZGUgKnQp Cj4gwqAJCXJldHVybjsKPiDCoAo+IMKgCWZiY19kaXNhYmxlKCk7Cj4gLQlwc3JfZGlzYWJsZSgp Owo+ICsJaWd0X3Bzcl9kaXNhYmxlKCk7Cj4gwqB9Cj4gwqAKPiDCoHN0YXRpYyB2b2lkICpidXN5 X3RocmVhZF9mdW5jKHZvaWQgKmRhdGEpCj4gQEAgLTE0MzIsNyArMTM1Niw3IEBAIHN0YXRpYyB2 b2lkIHNldHVwX3NpbmtfY3JjKHZvaWQpCj4gwqAJZmlsbF9mYl9yZWdpb24oJnByaW1fbW9kZV9w YXJhbXMuZmIsIENPTE9SX1BSSU1fQkcpOwo+IMKgCXNldF9tb2RlX2Zvcl9wYXJhbXMoJnByaW1f bW9kZV9wYXJhbXMpOwo+IMKgCj4gLQlzaW5rX2NyYy5mZCA9IG9wZW5hdChkcm0uZGVidWdmcywg Imk5MTVfc2lua19jcmNfZURQMSIsCj4gT19SRE9OTFkpOwo+ICsJc2lua19jcmMuZmQgPSBpZ3Rf cHNyX29wZW5fc2lua19jcmMoZHJtLmRlYnVnZnMpOwo+IMKgCWlndF9hc3NlcnRfbHRlKDAsIHNp bmtfY3JjLmZkKTsKPiDCoAo+IMKgCS8qIERvIGEgZmlyc3QgcmVhZCB0byB0cnkgdG8gZGV0ZWN0 IGlmIGl0J3Mgc3VwcG9ydGVkLiAqLwo+IEBAIC0xNTQ3LDE0ICsxNDcxLDYgQEAgc3RhdGljIHZv aWQgdGVhcmRvd25fZmJjKHZvaWQpCj4gwqB7Cj4gwqB9Cj4gwqAKPiAtc3RhdGljIGJvb2wgcHNy X3NpbmtfaGFzX3N1cHBvcnQodm9pZCkKPiAtewo+IC0JY2hhciBidWZbMjU2XTsKPiAtCj4gLQlk ZWJ1Z2ZzX3JlYWQoImk5MTVfZWRwX3Bzcl9zdGF0dXMiLCBidWYpOwo+IC0JcmV0dXJuIHN0cnN0 cihidWYsICJTaW5rX1N1cHBvcnQ6IHllc1xuIik7Cj4gLX0KPiAtCj4gwqBzdGF0aWMgdm9pZCBz ZXR1cF9wc3Iodm9pZCkKPiDCoHsKPiDCoAlpZiAoZ2V0X2Nvbm5lY3RvcihwcmltX21vZGVfcGFy YW1zLmNvbm5lY3Rvcl9pZCktCj4gPmNvbm5lY3Rvcl90eXBlICE9Cj4gQEAgLTE1NjMsNyArMTQ3 OSw3IEBAIHN0YXRpYyB2b2lkIHNldHVwX3Bzcih2b2lkKQo+IMKgCQlyZXR1cm47Cj4gwqAJfQo+ IMKgCj4gLQlpZiAoIXBzcl9zaW5rX2hhc19zdXBwb3J0KCkpIHsKPiArCWlmICghaWd0X3Bzcl9z aW5rX3N1cHBvcnQoZHJtLmZkKSkgewo+IMKgCQlpZ3RfaW5mbygiQ2FuJ3QgdGVzdCBQU1I6IG5v dCBzdXBwb3J0ZWQgYnkKPiBzaW5rLlxuIik7Cj4gwqAJCXJldHVybjsKPiDCoAl9Cj4gQEAgLTE3 MTcsMTIgKzE2MzMsMTUgQEAgc3RhdGljIGludCBhZGp1c3RfYXNzZXJ0aW9uX2ZsYWdzKGNvbnN0 Cj4gc3RydWN0IHRlc3RfbW9kZSAqdCwgaW50IGZsYWdzKQo+IMKgCX0JCQkJCQkJCQo+IFwKPiDC oAkJCQkJCQkJCQo+IFwKPiDCoAlpZiAoZmxhZ3NfICYgQVNTRVJUX1BTUl9FTkFCTEVEKSB7CQkJ CQo+IFwKPiAtCQlpZiAoIXBzcl93YWl0X3VudGlsX2VuYWJsZWQoKSkgewkJCQo+IFwKPiAtCQkJ cHNyX3ByaW50X3N0YXR1cygpOwkJCQkKPiBcCj4gKwkJaWYgKCFpZ3RfcHNyX2F3YWl0X3N0YXR1 cyhkcm0uZmQsIHRydWUpKSB7CQkKPiBcCj4gKwkJCWlndF9wc3JfcHJpbnRfc3RhdHVzKGRybS5m ZCk7CQkKPiAJXAo+IMKgCQkJaWd0X2Fzc2VydF9mKGZhbHNlLCAiUFNSIGRpc2FibGVkXG4iKTsJ Cj4gCVwKPiDCoAkJfQkJCQkJCQkKPiBcCj4gwqAJfSBlbHNlIGlmIChmbGFnc18gJiBBU1NFUlRf UFNSX0RJU0FCTEVEKSB7CQkJCj4gXAo+IC0JCWlndF9hc3NlcnQoIXBzcl93YWl0X3VudGlsX2Vu YWJsZWQoKSk7CQkKPiAJXAo+ICsJCWlmICghaWd0X3Bzcl9hd2FpdF9zdGF0dXMoZHJtLmZkLCBm YWxzZSkpIHsJCQo+IFwKPiArCQkJaWd0X3Bzcl9wcmludF9zdGF0dXMoZHJtLmZkKTvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAKPiDCoMKgwqDCoFwKPiArCQkJaWd0X2Fzc2VydF9mKGZh bHNlLCAiUFNSIGVuYWJsZWRcbiIpOwkKPiAJXAo+ICsJCX0JCQkJCQkJCj4gXAo+IMKgCX0JCQkJ CQkJCQo+IFwKPiDCoH0gd2hpbGUgKDApCj4gwqAKPiBAQCAtMTgyMiw3ICsxNzQxLDcgQEAgc3Rh dGljIHZvaWQgZW5hYmxlX2ZlYXR1cmVzX2Zvcl90ZXN0KGNvbnN0Cj4gc3RydWN0IHRlc3RfbW9k ZSAqdCkKPiDCoAlpZiAodC0+ZmVhdHVyZSAmIEZFQVRVUkVfRkJDKQo+IMKgCQlmYmNfZW5hYmxl KCk7Cj4gwqAJaWYgKHQtPmZlYXR1cmUgJiBGRUFUVVJFX1BTUikKPiAtCQlwc3JfZW5hYmxlKCk7 Cj4gKwkJaWd0X3Bzcl9lbmFibGUoKTsKPiDCoH0KPiDCoAo+IMKgc3RhdGljIHZvaWQgY2hlY2tf dGVzdF9yZXF1aXJlbWVudHMoY29uc3Qgc3RydWN0IHRlc3RfbW9kZSAqdCkKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==