From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 5/5] drm/selftests: Add drm helper selftest Date: Thu, 3 May 2018 16:36:27 +0300 Message-ID: <20180503133627.GV23723@intel.com> References: <20180503112217.37292-1-maarten.lankhorst@linux.intel.com> <20180503112217.37292-6-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20180503112217.37292-6-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org, Vidya Srinivas , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBNYXkgMDMsIDIwMTggYXQgMDE6MjI6MTdQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFu a2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL0tjb25maWcg ICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKPiAgZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0 cy9NYWtlZmlsZSAgICAgICAgICAgIHwgICAyICstCj4gIC4uLi9ncHUvZHJtL3NlbGZ0ZXN0cy9k cm1faGVscGVyX3NlbGZ0ZXN0cy5oICB8ICAgOSArCj4gIGRyaXZlcnMvZ3B1L2RybS9zZWxmdGVz dHMvdGVzdC1kcm0taGVscGVyLmMgICB8IDI0NyArKysrKysrKysrKysrKysrKysKPiAgNCBmaWxl cyBjaGFuZ2VkLCAyNTggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+ICBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy9kcm1faGVscGVyX3NlbGZ0ZXN0cy5o Cj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL3Rlc3QtZHJt LWhlbHBlci5jCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnIGIvZHJp dmVycy9ncHUvZHJtL0tjb25maWcKPiBpbmRleCBkNjg0ODU1Yjk1YzIuLjI4ZDA1OTAwN2FjMiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9LY29uZmlnCj4gQEAgLTU1LDYgKzU1LDcgQEAgY29uZmlnIERSTV9ERUJVR19TRUxGVEVT VAo+ICAJZGVwZW5kcyBvbiBERUJVR19LRVJORUwKPiAgCXNlbGVjdCBQUklNRV9OVU1CRVJTCj4g IAlzZWxlY3QgRFJNX0xJQl9SQU5ET00KPiArCXNlbGVjdCBEUk1fS01TX0hFTFBFUgo+ICAJZGVm YXVsdCBuCj4gIAloZWxwCj4gIAkgIFRoaXMgb3B0aW9uIHByb3ZpZGVzIGtlcm5lbCBtb2R1bGVz IHRoYXQgY2FuIGJlIHVzZWQgdG8gcnVuCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9z ZWxmdGVzdHMvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL01ha2VmaWxlCj4g aW5kZXggZjdkZDY2ZTg1OWE5Li45ZmMzNDlmYTE4ZTkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL3NlbGZ0ZXN0cy9NYWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9zZWxmdGVz dHMvTWFrZWZpbGUKPiBAQCAtMSArMSBAQAo+IC1vYmotJChDT05GSUdfRFJNX0RFQlVHX1NFTEZU RVNUKSArPSB0ZXN0LWRybV9tbS5vCj4gK29iai0kKENPTkZJR19EUk1fREVCVUdfU0VMRlRFU1Qp ICs9IHRlc3QtZHJtX21tLm8gdGVzdC1kcm0taGVscGVyLm8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3NlbGZ0ZXN0cy9kcm1faGVscGVyX3NlbGZ0ZXN0cy5oIGIvZHJpdmVycy9ncHUv ZHJtL3NlbGZ0ZXN0cy9kcm1faGVscGVyX3NlbGZ0ZXN0cy5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2 NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLjk3NzEyOTBlZDIyOAo+IC0tLSAvZGV2L251bGwKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL2RybV9oZWxwZXJfc2VsZnRlc3RzLmgKPiBA QCAtMCwwICsxLDkgQEAKPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8K PiArLyogTGlzdCBlYWNoIHVuaXQgdGVzdCBhcyBzZWxmdGVzdChuYW1lLCBmdW5jdGlvbikKPiAr ICoKPiArICogVGhlIG5hbWUgaXMgdXNlZCBhcyBib3RoIGFuIGVudW0gYW5kIGV4cGFuZGVkIGFz IGlndF9fbmFtZSB0byBjcmVhdGUKPiArICogYSBtb2R1bGUgcGFyYW1ldGVyLiBJdCBtdXN0IGJl IHVuaXF1ZSBhbmQgbGVnYWwgZm9yIGEgQyBpZGVudGlmaWVyLgo+ICsgKgo+ICsgKiBUZXN0cyBh cmUgZXhlY3V0ZWQgaW4gb3JkZXIgYnkgaWd0L2RybV9zZWxmdGVzdHNfaGVscGVyCj4gKyAqLwo+ ICtzZWxmdGVzdChjaGVja19wbGFuZV9zdGF0ZSwgaWd0X2NoZWNrX3BsYW5lX3N0YXRlKQo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL3Rlc3QtZHJtLWhlbHBlci5jIGIv ZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy90ZXN0LWRybS1oZWxwZXIuYwo+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi5hMDE1NzEyYjQzZTgKPiAtLS0gL2Rldi9u dWxsCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy90ZXN0LWRybS1oZWxwZXIuYwo+ IEBAIC0wLDAgKzEsMjQ3IEBACj4gKy8qCj4gKyAqIFRlc3QgY2FzZXMgZm9yIHRoZSBkcm1fa21z X2hlbHBlciBmdW5jdGlvbnMKPiArICovCj4gKwo+ICsjZGVmaW5lIHByX2ZtdChmbXQpICJkcm1f a21zX2hlbHBlcjogIiBmbXQKPiArCj4gKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KPiArCj4g KyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1f cGxhbmVfaGVscGVyLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX21vZGVzLmg+Cj4gKwo+ICsjZGVm aW5lIFRFU1RTICJkcm1faGVscGVyX3NlbGZ0ZXN0cy5oIgo+ICsjaW5jbHVkZSAiZHJtX3NlbGZ0 ZXN0LmgiCj4gKwo+ICsjZGVmaW5lIEZBSUwodGVzdCwgbXNnLCAuLi4pIFwKPiArCWRvIHsgXAo+ ICsJCWlmICh0ZXN0KSB7IFwKPiArCQkJcHJfZXJyKCIlcy8ldTogIiBtc2csIF9fRlVOQ1RJT05f XywgX19MSU5FX18sICMjX19WQV9BUkdTX18pOyBcCj4gKwkJCXJldHVybiAtRUlOVkFMOyBcCj4g KwkJfSBcCj4gKwl9IHdoaWxlICgwKQo+ICsKPiArI2RlZmluZSBGQUlMX09OKHgpIEZBSUwoKHgp LCAiJXMiLCAiRkFJTF9PTigiIF9fc3RyaW5naWZ5KHgpICIpXG4iKQo+ICsKPiArc3RhdGljIHZv aWQgc2V0X3NyYyhzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSwKPiArCQkgICAg dW5zaWduZWQgc3JjX3gsIHVuc2lnbmVkIHNyY195LAo+ICsJCSAgICB1bnNpZ25lZCBzcmNfdywg dW5zaWduZWQgc3JjX2gpCj4gK3sKPiArCXBsYW5lX3N0YXRlLT5zcmNfeCA9IHNyY194Owo+ICsJ cGxhbmVfc3RhdGUtPnNyY195ID0gc3JjX3k7Cj4gKwlwbGFuZV9zdGF0ZS0+c3JjX3cgPSBzcmNf dzsKPiArCXBsYW5lX3N0YXRlLT5zcmNfaCA9IHNyY19oOwo+ICt9Cj4gKwo+ICtzdGF0aWMgYm9v bCBjaGVja19zcmNfZXEoc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUsCj4gKwkJ CSB1bnNpZ25lZCBzcmNfeCwgdW5zaWduZWQgc3JjX3ksCj4gKwkJCSB1bnNpZ25lZCBzcmNfdywg dW5zaWduZWQgc3JjX2gpCj4gK3sKPiArCWlmIChwbGFuZV9zdGF0ZS0+c3JjLngxIDwgMCkgewo+ ICsJCXByX2Vycigic3JjIHggY29vcmRpbmF0ZSAleCBzaG91bGQgbmV2ZXIgYmUgYmVsb3cgMC5c biIsIHBsYW5lX3N0YXRlLT5zcmMueDEpOwo+ICsJCWRybV9yZWN0X2RlYnVnX3ByaW50KCJzcmM6 ICIsICZwbGFuZV9zdGF0ZS0+c3JjLCB0cnVlKTsKPiArCQlyZXR1cm4gZmFsc2U7Cj4gKwl9Cj4g KwlpZiAocGxhbmVfc3RhdGUtPnNyYy55MSA8IDApIHsKPiArCQlwcl9lcnIoInNyYyB5IGNvb3Jk aW5hdGUgJXggc2hvdWxkIG5ldmVyIGJlIGJlbG93IDAuXG4iLCBwbGFuZV9zdGF0ZS0+c3JjLnkx KTsKPiArCQlkcm1fcmVjdF9kZWJ1Z19wcmludCgic3JjOiAiLCAmcGxhbmVfc3RhdGUtPnNyYywg dHJ1ZSk7Cj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsJfQo+ICsKPiArCWlmIChwbGFuZV9zdGF0ZS0+ c3JjLngxICE9IHNyY194IHx8Cj4gKwkgICAgcGxhbmVfc3RhdGUtPnNyYy55MSAhPSBzcmNfeSB8 fAo+ICsJICAgIGRybV9yZWN0X3dpZHRoKCZwbGFuZV9zdGF0ZS0+c3JjKSAhPSBzcmNfdyB8fAo+ ICsJICAgIGRybV9yZWN0X2hlaWdodCgmcGxhbmVfc3RhdGUtPnNyYykgIT0gc3JjX2gpIHsKPiAr CQlkcm1fcmVjdF9kZWJ1Z19wcmludCgic3JjOiAiLCAmcGxhbmVfc3RhdGUtPnNyYywgdHJ1ZSk7 Cj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsJfQo+ICsKPiArCXJldHVybiB0cnVlOwo+ICt9Cj4gKwo+ ICtzdGF0aWMgdm9pZCBzZXRfY3J0YyhzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0 ZSwKPiArCQkgICAgIGludCBjcnRjX3gsIGludCBjcnRjX3ksCj4gKwkJICAgICB1bnNpZ25lZCBj cnRjX3csIHVuc2lnbmVkIGNydGNfaCkKPiArewo+ICsJcGxhbmVfc3RhdGUtPmNydGNfeCA9IGNy dGNfeDsKPiArCXBsYW5lX3N0YXRlLT5jcnRjX3kgPSBjcnRjX3k7Cj4gKwlwbGFuZV9zdGF0ZS0+ Y3J0Y193ID0gY3J0Y193Owo+ICsJcGxhbmVfc3RhdGUtPmNydGNfaCA9IGNydGNfaDsKPiArfQo+ ICsKPiArc3RhdGljIGJvb2wgY2hlY2tfY3J0Y19lcShzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpw bGFuZV9zdGF0ZSwKPiArCQkJICBpbnQgY3J0Y194LCBpbnQgY3J0Y195LAo+ICsJCQkgIHVuc2ln bmVkIGNydGNfdywgdW5zaWduZWQgY3J0Y19oKQo+ICt7Cj4gKwlpZiAocGxhbmVfc3RhdGUtPmRz dC54MSAhPSBjcnRjX3ggfHwKPiArCSAgICBwbGFuZV9zdGF0ZS0+ZHN0LnkxICE9IGNydGNfeSB8 fAo+ICsJICAgIGRybV9yZWN0X3dpZHRoKCZwbGFuZV9zdGF0ZS0+ZHN0KSAhPSBjcnRjX3cgfHwK PiArCSAgICBkcm1fcmVjdF9oZWlnaHQoJnBsYW5lX3N0YXRlLT5kc3QpICE9IGNydGNfaCkgewo+ ICsJCWRybV9yZWN0X2RlYnVnX3ByaW50KCJkc3Q6ICIsICZwbGFuZV9zdGF0ZS0+ZHN0LCBmYWxz ZSk7Cj4gKwo+ICsJCXJldHVybiBmYWxzZTsKPiArCX0KPiArCj4gKwlyZXR1cm4gdHJ1ZTsKPiAr fQo+ICsKPiArc3RhdGljIGludCBpZ3RfY2hlY2tfcGxhbmVfc3RhdGUodm9pZCAqaWdub3JlZCkK PiArewo+ICsJaW50IHJldDsKPiArCj4gKwljb25zdCBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgY3J0 Y19zdGF0ZSA9IHsKPiArCQkuY3J0YyA9IFpFUk9fU0laRV9QVFIsCj4gKwkJLmVuYWJsZSA9IHRy dWUsCj4gKwkJLmFjdGl2ZSA9IHRydWUsCj4gKwkJLm1vZGUgPSB7Cj4gKwkJCURSTV9NT0RFKCIx MDI0eDc2OCIsIDAsIDY1MDAwLCAxMDI0LCAxMDQ4LAo+ICsJCQkJMTE4NCwgMTM0NCwgMCwgNzY4 LCA3NzEsIDc3NywgODA2LCAwLAo+ICsJCQkJRFJNX01PREVfRkxBR19OSFNZTkMgfCBEUk1fTU9E RV9GTEFHX05WU1lOQykKPiArCQl9LAo+ICsJfTsKPiArCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIg ZmIgPSB7Cj4gKwkJLndpZHRoID0gMjA0OCwKPiArCQkuaGVpZ2h0ID0gMjA0OAo+ICsJfTsKPiAr CXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgcGxhbmVfc3RhdGUgPSB7Cj4gKwkJLmNydGMgPSBaRVJP X1NJWkVfUFRSLAo+ICsJCS5mYiA9ICZmYiwKPiArCQkucm90YXRpb24gPSBEUk1fTU9ERV9ST1RB VEVfMAo+ICsJfTsKPiArCj4gKwkvKiBTaW1wbGUgY2xpcHBpbmcsIG5vIHNjYWxpbmcuICovCj4g KwlzZXRfc3JjKCZwbGFuZV9zdGF0ZSwgMCwgMCwgZmIud2lkdGggPDwgMTYsIGZiLmhlaWdodCA8 PCAxNik7Cj4gKwlzZXRfY3J0YygmcGxhbmVfc3RhdGUsIDAsIDAsIGZiLndpZHRoLCBmYi5oZWln aHQpOwo+ICsJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUoJnBsYW5l X3N0YXRlLCAmY3J0Y19zdGF0ZSwKPiArCQkJCQkJICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJ TkcsCj4gKwkJCQkJCSAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAo+ICsJCQkJCQkgIGZh bHNlLCBmYWxzZSk7Cj4gKwlGQUlMKHJldCA8IDAsICJTaW1wbGUgY2xpcHBpbmcgY2hlY2sgc2hv dWxkIHBhc3NcbiIpOwo+ICsJRkFJTF9PTighcGxhbmVfc3RhdGUudmlzaWJsZSk7Cj4gKwlGQUlM X09OKCFjaGVja19zcmNfZXEoJnBsYW5lX3N0YXRlLCAwLCAwLCAxMDI0IDw8IDE2LCA3NjggPDwg MTYpKTsKPiArCUZBSUxfT04oIWNoZWNrX2NydGNfZXEoJnBsYW5lX3N0YXRlLCAwLCAwLCAxMDI0 LCA3NjgpKTsKPiArCj4gKwkvKiBSb3RhdGVkIGNsaXBwaW5nICsgcmVmbGVjdGlvbiwgbm8gc2Nh bGluZy4gKi8KPiArCXBsYW5lX3N0YXRlLnJvdGF0aW9uID0gRFJNX01PREVfUk9UQVRFXzkwIHwg RFJNX01PREVfUkVGTEVDVF9YOwo+ICsJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxh bmVfc3RhdGUoJnBsYW5lX3N0YXRlLCAmY3J0Y19zdGF0ZSwKPiArCQkJCQkJICBEUk1fUExBTkVf SEVMUEVSX05PX1NDQUxJTkcsCj4gKwkJCQkJCSAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5H LAo+ICsJCQkJCQkgIGZhbHNlLCBmYWxzZSk7Cj4gKwlGQUlMKHJldCA8IDAsICJSb3RhdGVkIGNs aXBwaW5nIGNoZWNrIHNob3VsZCBwYXNzXG4iKTsKPiArCUZBSUxfT04oIXBsYW5lX3N0YXRlLnZp c2libGUpOwo+ICsJRkFJTF9PTighY2hlY2tfc3JjX2VxKCZwbGFuZV9zdGF0ZSwgMCwgMCwgNzY4 IDw8IDE2LCAxMDI0IDw8IDE2KSk7Cj4gKwlGQUlMX09OKCFjaGVja19jcnRjX2VxKCZwbGFuZV9z dGF0ZSwgMCwgMCwgMTAyNCwgNzY4KSk7CgpJIGd1ZXNzIHdlIG1pZ2h0IHdhbnQgYSBmZXcgbW9y ZSByb3RhdGVkL3JlZmxlY3RlZCBjYXNlcyB0byBtYWtlCnN1cmUgdGhlIGNsaXBwaW5nIGFmZmVj dHMgZWFjaCBlZGdlIGNvcnJlY3RseS4KCj4gKwlwbGFuZV9zdGF0ZS5yb3RhdGlvbiA9IERSTV9N T0RFX1JPVEFURV8wOwo+ICsKPiArCS8qIENoZWNrIHdoZXRoZXIgcG9zaXRpb25pbmcgd29ya3Mg Y29ycmVjdGx5LiAqLwo+ICsJc2V0X3NyYygmcGxhbmVfc3RhdGUsIDAsIDAsIDEwMjMgPDwgMTYs IDc2NyA8PCAxNik7Cj4gKwlzZXRfY3J0YygmcGxhbmVfc3RhdGUsIDAsIDAsIDEwMjMsIDc2Nyk7 Cj4gKwlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19wbGFuZV9zdGF0ZSgmcGxhbmVfc3Rh dGUsICZjcnRjX3N0YXRlLAo+ICsJCQkJCQkgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywK PiArCQkJCQkJICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCj4gKwkJCQkJCSAgZmFsc2Us IGZhbHNlKTsKPiArCUZBSUwoIXJldCwgIlNob3VsZCBub3QgYmUgYWJsZSB0byBwb3NpdGlvbiBv biB0aGUgY3J0YyB3aXRoIGNhbl9wb3NpdGlvbj1mYWxzZVxuIik7Cj4gKwo+ICsJcmV0ID0gZHJt X2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUoJnBsYW5lX3N0YXRlLCAmY3J0Y19zdGF0 ZSwKPiArCQkJCQkJICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCj4gKwkJCQkJCSAgRFJN X1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAo+ICsJCQkJCQkgIHRydWUsIGZhbHNlKTsKPiArCUZB SUwocmV0IDwgMCwgIlNpbXBsZSBwb3NpdGlvbmluZyBzaG91bGQgd29ya1xuIik7Cj4gKwlGQUlM X09OKCFwbGFuZV9zdGF0ZS52aXNpYmxlKTsKPiArCUZBSUxfT04oIWNoZWNrX3NyY19lcSgmcGxh bmVfc3RhdGUsIDAsIDAsIDEwMjMgPDwgMTYsIDc2NyA8PCAxNikpOwo+ICsJRkFJTF9PTighY2hl Y2tfY3J0Y19lcSgmcGxhbmVfc3RhdGUsIDAsIDAsIDEwMjMsIDc2NykpOwo+ICsKPiArCS8qIFNp bXBsZSBzY2FsaW5nIHRlc3RzLiAqLwo+ICsJc2V0X3NyYygmcGxhbmVfc3RhdGUsIDAsIDAsIDUx MiA8PCAxNiwgMzg0IDw8IDE2KTsKPiArCXNldF9jcnRjKCZwbGFuZV9zdGF0ZSwgMCwgMCwgMTAy NCwgNzY4KTsKPiArCXJldCA9IGRybV9hdG9taWNfaGVscGVyX2NoZWNrX3BsYW5lX3N0YXRlKCZw bGFuZV9zdGF0ZSwgJmNydGNfc3RhdGUsCj4gKwkJCQkJCSAgMHg4MDAxLAo+ICsJCQkJCQkgIERS TV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKPiArCQkJCQkJICBmYWxzZSwgZmFsc2UpOwo+ICsJ RkFJTCghcmV0LCAiVXBzY2FsaW5nIG91dCBvZiByYW5nZSBzaG91bGQgZmFpbC5cbiIpOwo+ICsJ cmV0ID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUoJnBsYW5lX3N0YXRlLCAm Y3J0Y19zdGF0ZSwKPiArCQkJCQkJICAweDgwMDAsCj4gKwkJCQkJCSAgRFJNX1BMQU5FX0hFTFBF Ul9OT19TQ0FMSU5HLAo+ICsJCQkJCQkgIGZhbHNlLCBmYWxzZSk7Cj4gKwlGQUlMKHJldCA8IDAs ICJVcHNjYWxpbmcgZXhhY3RseSAyeCBzaG91bGQgd29ya1xuIik7Cj4gKwlGQUlMX09OKCFwbGFu ZV9zdGF0ZS52aXNpYmxlKTsKPiArCUZBSUxfT04oIWNoZWNrX3NyY19lcSgmcGxhbmVfc3RhdGUs IDAsIDAsIDUxMiA8PCAxNiwgMzg0IDw8IDE2KSk7Cj4gKwlGQUlMX09OKCFjaGVja19jcnRjX2Vx KCZwbGFuZV9zdGF0ZSwgMCwgMCwgMTAyNCwgNzY4KSk7Cj4gKwo+ICsJc2V0X3NyYygmcGxhbmVf c3RhdGUsIDAsIDAsIDIwNDggPDwgMTYsIDE1MzYgPDwgMTYpOwo+ICsJcmV0ID0gZHJtX2F0b21p Y19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUoJnBsYW5lX3N0YXRlLCAmY3J0Y19zdGF0ZSwKPiAr CQkJCQkJICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCj4gKwkJCQkJCSAgMHgxZmZmZiwg ZmFsc2UsIGZhbHNlKTsKPiArCUZBSUwoIXJldCwgIkRvd25zY2FsaW5nIG91dCBvZiByYW5nZSBz aG91bGQgZmFpbC5cbiIpOwo+ICsJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVf c3RhdGUoJnBsYW5lX3N0YXRlLCAmY3J0Y19zdGF0ZSwKPiArCQkJCQkJICBEUk1fUExBTkVfSEVM UEVSX05PX1NDQUxJTkcsCj4gKwkJCQkJCSAgMHgyMDAwMCwgZmFsc2UsIGZhbHNlKTsKPiArCUZB SUwocmV0IDwgMCwgIlNob3VsZCBzdWNjZWVkIHdpdGggZXhhY3Qgc2NhbGluZyBsaW1pdFxuIik7 CgoiRG93bnNjYWxpbmcgZXhhY3RseSAyeCBzaG91bGQgd29ya1xuIgp0byBiZSBjb25zaXN0ZW50 IHdpdGggdGhlIGVycm9yIGZyb20gdGhlIHByZXZpb3VzIHRlc3Q/Cgo+ICsJRkFJTF9PTighcGxh bmVfc3RhdGUudmlzaWJsZSk7Cj4gKwlGQUlMX09OKCFjaGVja19zcmNfZXEoJnBsYW5lX3N0YXRl LCAwLCAwLCAyMDQ4IDw8IDE2LCAxNTM2IDw8IDE2KSk7Cj4gKwlGQUlMX09OKCFjaGVja19jcnRj X2VxKCZwbGFuZV9zdGF0ZSwgMCwgMCwgMTAyNCwgNzY4KSk7Cj4gKwo+ICsJLyogVGVzdGluZyBy b3VuZGluZyBlcnJvcnMuICovCj4gKwlzZXRfc3JjKCZwbGFuZV9zdGF0ZSwgMCwgMCwgMHg0MDAw MSwgMHg0MDAwMSk7Cj4gKwlzZXRfY3J0YygmcGxhbmVfc3RhdGUsIDEwMjIsIDc2NiwgNCwgNCk7 Cj4gKwlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19wbGFuZV9zdGF0ZSgmcGxhbmVfc3Rh dGUsICZjcnRjX3N0YXRlLAo+ICsJCQkJCQkgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywK PiArCQkJCQkJICAweDEwMDAxLAo+ICsJCQkJCQkgIHRydWUsIGZhbHNlKTsKPiArCUZBSUwocmV0 IDwgMCwgIlNob3VsZCBzdWNjZWVkIGJ5IGNsaXBwaW5nIHRvIGV4YWN0IG11bHRpcGxlIik7CgpX aGF0IGRvZXMgImV4YWN0IG11bHRpcGxlIiBtZWFuIGZvciB0aGVzZT8gc3JjIGFuZCBkc3QgYXJl IG5vdCBpbnRlZ2VyCm11bHRpcGxlcyBvZiBlYWNoIG90aGVyIGluIHRoZXNlIHRlc3RzIHNvIG5v dCBzdXJlIHdoYXQgdGhpcyBpcyB0cnlpbmcKdG8gc2F5LgoKPiArCUZBSUxfT04oIXBsYW5lX3N0 YXRlLnZpc2libGUpOwo+ICsJRkFJTF9PTighY2hlY2tfc3JjX2VxKCZwbGFuZV9zdGF0ZSwgMCwg MCwgMiA8PCAxNiwgMiA8PCAxNikpOwo+ICsJRkFJTF9PTighY2hlY2tfY3J0Y19lcSgmcGxhbmVf c3RhdGUsIDEwMjIsIDc2NiwgMiwgMikpOwo+ICsKPiArCXNldF9zcmMoJnBsYW5lX3N0YXRlLCAw eDIwMDAxLCAweDIwMDAxLCAweDQwNDAwMDEsIDB4MzA0MDAwMSk7Cj4gKwlzZXRfY3J0YygmcGxh bmVfc3RhdGUsIC0yLCAtMiwgMTAyOCwgNzcyKTsKPiArCXJldCA9IGRybV9hdG9taWNfaGVscGVy X2NoZWNrX3BsYW5lX3N0YXRlKCZwbGFuZV9zdGF0ZSwgJmNydGNfc3RhdGUsCj4gKwkJCQkJCSAg RFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAo+ICsJCQkJCQkgIDB4MTAwMDEsCj4gKwkJCQkJ CSAgZmFsc2UsIGZhbHNlKTsKPiArCUZBSUwocmV0IDwgMCwgIlNob3VsZCBzdWNjZWVkIGJ5IGNs aXBwaW5nIHRvIGV4YWN0IG11bHRpcGxlIik7Cj4gKwlGQUlMX09OKCFwbGFuZV9zdGF0ZS52aXNp YmxlKTsKPiArCUZBSUxfT04oIWNoZWNrX3NyY19lcSgmcGxhbmVfc3RhdGUsIDB4NDAwMDIsIDB4 NDAwMDIsIDEwMjQgPDwgMTYsIDc2OCA8PCAxNikpOwo+ICsJRkFJTF9PTighY2hlY2tfY3J0Y19l cSgmcGxhbmVfc3RhdGUsIDAsIDAsIDEwMjQsIDc2OCkpOwo+ICsKPiArCXNldF9zcmMoJnBsYW5l X3N0YXRlLCAwLCAwLCAweDNmZmZmLCAweDNmZmZmKTsKPiArCXNldF9jcnRjKCZwbGFuZV9zdGF0 ZSwgMTAyMiwgNzY2LCA0LCA0KTsKPiArCXJldCA9IGRybV9hdG9taWNfaGVscGVyX2NoZWNrX3Bs YW5lX3N0YXRlKCZwbGFuZV9zdGF0ZSwgJmNydGNfc3RhdGUsCj4gKwkJCQkJCSAgMHhmZmZmLAo+ ICsJCQkJCQkgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKPiArCQkJCQkJICB0cnVlLCBm YWxzZSk7Cj4gKwlGQUlMKHJldCA8IDAsICJTaG91bGQgc3VjY2VlZCBieSBjbGlwcGluZyB0byBl eGFjdCBtdWx0aXBsZSIpOwo+ICsJRkFJTF9PTighcGxhbmVfc3RhdGUudmlzaWJsZSk7Cj4gKwkv KiBTaG91bGQgbm90IGJlIHJvdW5kZWQgdG8gMHgyMDAwMSwgd2hpY2ggd291bGQgYmUgdXBzY2Fs aW5nLiAqLwoKImRvd25zY2FsaW5nIi4gc3JjPGRzdCBzbyB0aGUgInVzZXIiIGFza2VkIGZvciB1 cHNjYWxpbmcuIFRoZSBvdGhlcgp0ZXN0cyBkb24ndCBoYXZlIGFueSBjb21tZW50cyB0aG91Z2gu IE5vdCBzdXJlIHdoeSB0aGlzIG9uZSBpcwpzcGVjaWFsLgoKPiArCUZBSUxfT04oIWNoZWNrX3Ny Y19lcSgmcGxhbmVfc3RhdGUsIDAsIDAsIDIgPDwgMTYsIDIgPDwgMTYpKTsKPiArCUZBSUxfT04o IWNoZWNrX2NydGNfZXEoJnBsYW5lX3N0YXRlLCAxMDIyLCA3NjYsIDIsIDIpKTsKPiArCj4gKwlz ZXRfc3JjKCZwbGFuZV9zdGF0ZSwgMHgxZmZmZiwgMHgxZmZmZiwgMHg0MDNmZmZmLCAweDMwM2Zm ZmYpOwo+ICsJc2V0X2NydGMoJnBsYW5lX3N0YXRlLCAtMiwgLTIsIDEwMjgsIDc3Mik7Cj4gKwly ZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19wbGFuZV9zdGF0ZSgmcGxhbmVfc3RhdGUsICZj cnRjX3N0YXRlLAo+ICsJCQkJCQkgIDB4ZmZmZiwKPiArCQkJCQkJICBEUk1fUExBTkVfSEVMUEVS X05PX1NDQUxJTkcsCj4gKwkJCQkJCSAgZmFsc2UsIGZhbHNlKTsKPiArCUZBSUwocmV0IDwgMCwg IlNob3VsZCBzdWNjZWVkIGJ5IGNsaXBwaW5nIHRvIGV4YWN0IG11bHRpcGxlIik7Cj4gKwlGQUlM X09OKCFwbGFuZV9zdGF0ZS52aXNpYmxlKTsKPiArCUZBSUxfT04oIWNoZWNrX3NyY19lcSgmcGxh bmVfc3RhdGUsIDB4M2ZmZmUsIDB4M2ZmZmUsIDEwMjQgPDwgMTYsIDc2OCA8PCAxNikpOwo+ICsJ RkFJTF9PTighY2hlY2tfY3J0Y19lcSgmcGxhbmVfc3RhdGUsIDAsIDAsIDEwMjQsIDc2OCkpOwoK VGhlc2UgYXJlIGFsbCB2ZXJ5IHNwZWNpZmljIHRvIHRoZSByb3VuZGluZyBiZWhhdmlvdXIgeW91 IGltcGxlbWVudGVkLApidXQgSSBndWVzcyB0aGF0J3Mgd2hhdCB3ZSB3YW50LgoKSSBndWVzcyB3 ZSBtaWd0aCBhbHNvIHdhbnQgc29tZSB0ZXN0cyBmb3IgdGhlIGZ1bGx5IGNsaXBwZWQgY2FzZXM/ IENvdWxkCmJlIGFkZGVkIGxhdGVyIHRob3VnaC4KCkluIGdlbmVyYWwgdGhlc2UgbG9vayBjb3Jy ZWN0IGVub3VnaCB0byBtZS4KUmV2aWV3ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3ly amFsYUBsaW51eC5pbnRlbC5jb20+Cgo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICsjaW5j bHVkZSAiZHJtX3NlbGZ0ZXN0LmMiCj4gKwo+ICtzdGF0aWMgaW50IF9faW5pdCB0ZXN0X2RybV9o ZWxwZXJfaW5pdCh2b2lkKQo+ICt7Cj4gKwlpbnQgZXJyOwo+ICsKPiArCWVyciA9IHJ1bl9zZWxm dGVzdHMoc2VsZnRlc3RzLCBBUlJBWV9TSVpFKHNlbGZ0ZXN0cyksIE5VTEwpOwo+ICsKPiArCXJl dHVybiBlcnIgPiAwID8gMCA6IGVycjsKPiArfQo+ICsKPiArbW9kdWxlX2luaXQodGVzdF9kcm1f aGVscGVyX2luaXQpOwo+ICsKPiArTU9EVUxFX0FVVEhPUigiSW50ZWwgQ29ycG9yYXRpb24iKTsK PiArTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwo+IC0tIAo+IDIuMTcuMAoKLS0gClZpbGxlIFN5cmrD pGzDpApJbnRlbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK