From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 524CF6E3F0 for ; Tue, 7 Apr 2020 16:29:51 +0000 (UTC) From: "Souza, Jose" Date: Tue, 7 Apr 2020 16:29:49 +0000 Message-ID: <98d6cb85b95d4ca3c54f46a48f1c753fc3d61632.camel@intel.com> References: <20200325191819.10196-1-jose.souza@intel.com> <69830c0d-6dc5-5332-32f2-35e7fe5615d7@gmail.com> In-Reply-To: <69830c0d-6dc5-5332-32f2-35e7fe5615d7@gmail.com> Content-Language: en-US Content-ID: MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t v6 without-hack-patches 1/5] tests/kms_frontbuffer_tracking: Add tiling to test_mode 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: "juhapekka.heikkila@gmail.com" , "igt-dev@lists.freedesktop.org" List-ID: T24gTW9uLCAyMDIwLTA0LTA2IGF0IDE3OjI2ICswMzAwLCBKdWhhLVBla2thIEhlaWtraWxhIHdy b3RlOg0KPiBJIHdhc24ndCBiaWcgZmFuIG9mIG5ldyBpbnRyb2R1Y2VkIGVudW0gYnV0IGl0IHNl ZW1zIHRvIGJlIGluIGxpbmUNCj4gd2l0aCANCj4gc3R5bGUgb2YgdGhlIHRlc3QuDQo+IA0KPiBw YXRjaGVzIDEsIDIgYW5kIDMgYXJlDQo+IFJldmlld2VkLWJ5OiBKdWhhLVBla2thIEhlaWtraWxh IDxqdWhhcGVra2EuaGVpa2tpbGFAZ21haWwuY29tPg0KDQpUaGFua3MsIHB1c2hlZCB0aGUgMyBw YXRjaGVzLg0KV2lsbCByZXNlbmQgdGhlIDIgcmVtYW5pbmcuDQoNCj4gDQo+IE9uIDI1LjMuMjAy MCAyMS4xOCwgSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSB3cm90ZToNCj4gPiBUaGlzIHdpbGwgYWxs b3cgdXMgdG8gZG8gdGVzdHMgd2l0aCBkaWZmZXJlbnQgdGlsZSB0eXBlcywgZm9yIG5vdw0KPiA+ IGFsbCB0ZXN0cyB3aWxsIGNvbnRpbnVlIHRvIHJ1biB3aXRoIHRoZSBkZWZhdWx0IFggdGlsaW5n Lg0KPiA+IEl0IHdpbGwgYmUgdXNlZCBpbiB1cGNvbWluZyBwYXRjaGVzLg0KPiA+IA0KPiA+IEl0 IGFsc28gYWxsb3cgdXNlciB0byBydW4gYWxsIHRlc3RzIHdpdGggbGluZXIgdGlsaW5nIHdoZW4g c2V0IGJ5DQo+ID4gcGFyYW1ldGVyLg0KPiA+IA0KPiA+IHYyOg0KPiA+IC0gcmVuYW1lZCB0aWxl IHRvIHRpbGluZyAoVmlsbGUpDQo+ID4gLSBhZGRlZCB0byB0aGUgY29tbWl0IG1lc3NhZ2UgdGhh dCB0aGlzIHdpbGwgYmUgdXNlZCBpbiB1cGNvbWluZw0KPiA+IHBhdGNoZXMNCj4gPiANCj4gPiBD YzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4NCj4gPiBT aWduZWQtb2ZmLWJ5OiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxqb3NlLnNvdXphQGludGVsLmNv bT4NCj4gPiAtLS0NCj4gPiAgIHRlc3RzL2ttc19mcm9udGJ1ZmZlcl90cmFja2luZy5jIHwgMTIy ICsrKysrKysrKysrKysrKysrKysrLS0tLQ0KPiA+IC0tLS0tLS0NCj4gPiAgIDEgZmlsZSBjaGFu Z2VkLCA3OCBpbnNlcnRpb25zKCspLCA0NCBkZWxldGlvbnMoLSkNCj4gPiANCj4gPiBkaWZmIC0t Z2l0IGEvdGVzdHMva21zX2Zyb250YnVmZmVyX3RyYWNraW5nLmMNCj4gPiBiL3Rlc3RzL2ttc19m cm9udGJ1ZmZlcl90cmFja2luZy5jDQo+ID4gaW5kZXggYzRiNGFmNDMuLmM0ZGViNzJiIDEwMDY0 NA0KPiA+IC0tLSBhL3Rlc3RzL2ttc19mcm9udGJ1ZmZlcl90cmFja2luZy5jDQo+ID4gKysrIGIv dGVzdHMva21zX2Zyb250YnVmZmVyX3RyYWNraW5nLmMNCj4gPiBAQCAtMTMwLDYgKzEzMCwxNCBA QCBzdHJ1Y3QgdGVzdF9tb2RlIHsNCj4gPiAgIAkJRkxJUF9DT1VOVCwNCj4gPiAgIAl9IGZsaXA7 DQo+ID4gICANCj4gPiArCWVudW0gdGlsaW5nX3R5cGUgew0KPiA+ICsJCVRJTElOR19MSU5FQVIg PSAwLA0KPiA+ICsJCVRJTElOR19YLA0KPiA+ICsJCVRJTElOR19ZLA0KPiA+ICsJCVRJTElOR19D T1VOVCwNCj4gPiArCQlUSUxJTkdfREVGQVVMVCA9IFRJTElOR19YLA0KPiA+ICsJfSB0aWxpbmc7 DQo+ID4gKw0KPiA+ICAgCWVudW0gaWd0X2RyYXdfbWV0aG9kIG1ldGhvZDsNCj4gPiAgIH07DQo+ ID4gICANCj4gPiBAQCAtMjM1LDcgKzI0Myw3IEBAIHN0cnVjdCB7DQo+ID4gICAJaW50IG9ubHlf cGlwZXM7DQo+ID4gICAJaW50IHNoYXJlZF9mYl94X29mZnNldDsNCj4gPiAgIAlpbnQgc2hhcmVk X2ZiX3lfb2Zmc2V0Ow0KPiA+IC0JdWludDY0X3QgdGlsaW5nOw0KPiA+ICsJZW51bSB0aWxpbmdf dHlwZSB0aWxpbmc7DQo+ID4gICB9IG9wdCA9IHsNCj4gPiAgIAkuY2hlY2tfc3RhdHVzID0gdHJ1 ZSwNCj4gPiAgIAkuY2hlY2tfY3JjID0gdHJ1ZSwNCj4gPiBAQCAtMjQ4LDcgKzI1Niw3IEBAIHN0 cnVjdCB7DQo+ID4gICAJLm9ubHlfcGlwZXMgPSBQSVBFX0NPVU5ULA0KPiA+ICAgCS5zaGFyZWRf ZmJfeF9vZmZzZXQgPSAyNDgsDQo+ID4gICAJLnNoYXJlZF9mYl95X29mZnNldCA9IDUwMCwNCj4g PiAtCS50aWxpbmcgPSBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCwNCj4gPiArCS50aWxp bmcgPSBUSUxJTkdfREVGQVVMVCwNCj4gPiAgIH07DQo+ID4gICANCj4gPiAgIHN0cnVjdCBtb2Rl c2V0X3BhcmFtcyB7DQo+ID4gQEAgLTQ0NCwxMyArNDUyLDI2IEBAIHN0YXRpYyBib29sIGluaXRf bW9kZXNldF9jYWNoZWRfcGFyYW1zKHZvaWQpDQo+ID4gICAJcmV0dXJuIHRydWU7DQo+ID4gICB9 DQo+ID4gICANCj4gPiArc3RhdGljIHVpbnQ2NF90IHRpbGluZ190b19tb2RpZmllcihlbnVtIHRp bGluZ190eXBlIHRpbGluZykNCj4gPiArew0KPiA+ICsJc3dpdGNoICh0aWxpbmcpIHsNCj4gPiAr CWNhc2UgVElMSU5HX0xJTkVBUjoNCj4gPiArCQlyZXR1cm4gTE9DQUxfRFJNX0ZPUk1BVF9NT0Rf Tk9ORTsNCj4gPiArCWNhc2UgVElMSU5HX1g6DQo+ID4gKwkJcmV0dXJuIExPQ0FMX0k5MTVfRk9S TUFUX01PRF9YX1RJTEVEOw0KPiA+ICsJY2FzZSBUSUxJTkdfWToNCj4gPiArCQlyZXR1cm4gTE9D QUxfSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQ7DQo+ID4gKwlkZWZhdWx0Og0KPiA+ICsJCWlndF9h c3NlcnQoZmFsc2UpOw0KPiA+ICsJfQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICAgc3RhdGljIHZvaWQg Y3JlYXRlX2ZiKGVudW0gcGl4ZWxfZm9ybWF0IHBmb3JtYXQsIGludCB3aWR0aCwgaW50DQo+ID4g aGVpZ2h0LA0KPiA+IC0JCSAgICAgIHVpbnQ2NF90IHRpbGluZywgaW50IHBsYW5lLCBzdHJ1Y3Qg aWd0X2ZiICpmYikNCj4gPiArCQkgICAgICBlbnVtIHRpbGluZ190eXBlIHRpbGluZywgaW50IHBs YW5lLCBzdHJ1Y3QgaWd0X2ZiDQo+ID4gKmZiKQ0KPiA+ICAgew0KPiA+ICAgCXVpbnQzMl90IGZv cm1hdDsNCj4gPiAtCXVpbnQ2NF90IHNpemU7DQo+ID4gKwl1aW50NjRfdCBzaXplLCBtb2RpZmll cjsNCj4gPiAgIAl1bnNpZ25lZCBpbnQgc3RyaWRlOw0KPiA+IC0JdWludDY0X3QgdGlsaW5nX2Zv cl9zaXplOw0KPiA+ICAgDQo+ID4gICAJc3dpdGNoIChwZm9ybWF0KSB7DQo+ID4gICAJY2FzZSBG T1JNQVRfUkdCODg4Og0KPiA+IEBAIC00ODAsMTkgKzUwMSwxNCBAQCBzdGF0aWMgdm9pZCBjcmVh dGVfZmIoZW51bSBwaXhlbF9mb3JtYXQNCj4gPiBwZm9ybWF0LCBpbnQgd2lkdGgsIGludCBoZWln aHQsDQo+ID4gICAJCWlndF9hc3NlcnQoZmFsc2UpOw0KPiA+ICAgCX0NCj4gPiAgIA0KPiA+IC0J LyogV2Ugd2FudCBhbGwgZnJvbnRidWZmZXJzIHdpdGggdGhlIHNhbWUgd2lkdGgvaGVpZ2h0L2Zv cm1hdA0KPiA+IHRvIGhhdmUNCj4gPiAtCSAqIHRoZSBzYW1lIHNpemUgcmVnYXJkbGVzcyBvZiB0 aWxpbmcgc2luY2Ugd2Ugd2FudCB0byBwcm9wZXJseQ0KPiA+IGV4ZXJjaXNlDQo+ID4gLQkgKiB0 aGUgS2VybmVsJ3Mgc3BlY2lmaWMgdGlsaW5nLWNoZWNraW5nIGNvZGUgcGF0aHMgd2l0aG91dA0K PiA+IGFjY2lkZW50YWxseQ0KPiA+IC0JICogaGl0dGluZyBzaXplLWNoZWNraW5nIG9uZXMgZmly c3QuICovDQo+ID4gLQlpZiAocGxhbmUgPT0gUExBTkVfQ1VSKQ0KPiA+IC0JCXRpbGluZ19mb3Jf c2l6ZSA9IExPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkU7DQo+ID4gLQllbHNlDQo+ID4gLQkJdGls aW5nX2Zvcl9zaXplID0gb3B0LnRpbGluZzsNCj4gPiArCW1vZGlmaWVyID0gdGlsaW5nX3RvX21v ZGlmaWVyKHRpbGluZyk7DQo+ID4gICANCj4gPiAtCWlndF9jYWxjX2ZiX3NpemUoZHJtLmZkLCB3 aWR0aCwgaGVpZ2h0LCBmb3JtYXQsDQo+ID4gdGlsaW5nX2Zvcl9zaXplLCAmc2l6ZSwNCj4gPiAr CWlndF93YXJuX29uKHBsYW5lID09IFBMQU5FX0NVUiAmJiB0aWxpbmcgIT0gVElMSU5HX0xJTkVB Uik7DQo+ID4gKw0KPiA+ICsJaWd0X2NhbGNfZmJfc2l6ZShkcm0uZmQsIHdpZHRoLCBoZWlnaHQs IGZvcm1hdCwgbW9kaWZpZXIsDQo+ID4gJnNpemUsDQo+ID4gICAJCQkgJnN0cmlkZSk7DQo+ID4g ICANCj4gPiAtCWlndF9jcmVhdGVfZmJfd2l0aF9ib19zaXplKGRybS5mZCwgd2lkdGgsIGhlaWdo dCwgZm9ybWF0LA0KPiA+IHRpbGluZywNCj4gPiArCWlndF9jcmVhdGVfZmJfd2l0aF9ib19zaXpl KGRybS5mZCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LA0KPiA+IG1vZGlmaWVyLA0KPiA+ICAgCQkJ CSAgIElHVF9DT0xPUl9ZQ0JDUl9CVDcwOSwNCj4gPiAgIAkJCQkgICBJR1RfQ09MT1JfWUNCQ1Jf TElNSVRFRF9SQU5HRSwNCj4gPiAgIAkJCQkgICBmYiwgc2l6ZSwgc3RyaWRlKTsNCj4gPiBAQCAt NTk0LDcgKzYxMCw3IEBAIHN0YXRpYyB2b2lkIGZpbGxfZmIoc3RydWN0IGlndF9mYiAqZmIsIGVu dW0NCj4gPiBjb2xvciBlY29sb3IpDQo+ID4gICAgKiBXZSBkbyBpdCB2ZXJ0aWNhbGx5IGluc3Rl YWQgb2YgdGhlIG1vcmUgY29tbW9uIGhvcml6b250YWwgY2FzZQ0KPiA+IGluIG9yZGVyIHRvDQo+ ID4gICAgKiBhdm9pZCBzdXBlciBodWdlIHN0cmlkZXMgbm90IHN1cHBvcnRlZCBieSBGQkMuDQo+ ID4gICAgKi8NCj4gPiAtc3RhdGljIHZvaWQgY3JlYXRlX3NoYXJlZF9mYihlbnVtIHBpeGVsX2Zv cm1hdCBmb3JtYXQpDQo+ID4gK3N0YXRpYyB2b2lkIGNyZWF0ZV9zaGFyZWRfZmIoZW51bSBwaXhl bF9mb3JtYXQgZm9ybWF0LCBlbnVtDQo+ID4gdGlsaW5nX3R5cGUgdGlsaW5nKQ0KPiA+ICAgew0K PiA+ICAgCWludCBwcmltX3csIHByaW1faCwgc2NuZF93LCBzY25kX2gsIG9mZnNfdywgb2Zmc19o LCBiaWdfdywNCj4gPiBiaWdfaDsNCj4gPiAgIAlzdHJ1Y3Qgc2NyZWVuX2ZicyAqcyA9ICZmYnNb Zm9ybWF0XTsNCj4gPiBAQCAtNjIxLDcgKzYzNyw3IEBAIHN0YXRpYyB2b2lkIGNyZWF0ZV9zaGFy ZWRfZmIoZW51bSBwaXhlbF9mb3JtYXQNCj4gPiBmb3JtYXQpDQo+ID4gICANCj4gPiAgIAliaWdf aCA9IHByaW1faCArIHNjbmRfaCArIG9mZnNfaCArIG9wdC5zaGFyZWRfZmJfeV9vZmZzZXQ7DQo+ ID4gICANCj4gPiAtCWNyZWF0ZV9mYihmb3JtYXQsIGJpZ193LCBiaWdfaCwgb3B0LnRpbGluZywg UExBTkVfUFJJLCAmcy0NCj4gPiA+YmlnKTsNCj4gPiArCWNyZWF0ZV9mYihmb3JtYXQsIGJpZ193 LCBiaWdfaCwgdGlsaW5nLCBQTEFORV9QUkksICZzLT5iaWcpOw0KPiA+ICAgfQ0KPiA+ICAgDQo+ ID4gICBzdGF0aWMgdm9pZCBkZXN0cm95X2ZicyhlbnVtIHBpeGVsX2Zvcm1hdCBmb3JtYXQpDQo+ ID4gQEAgLTY0Myw3ICs2NTksNyBAQCBzdGF0aWMgdm9pZCBkZXN0cm95X2ZicyhlbnVtIHBpeGVs X2Zvcm1hdA0KPiA+IGZvcm1hdCkNCj4gPiAgIAlpZ3RfcmVtb3ZlX2ZiKGRybS5mZCwgJnMtPmJp Zyk7DQo+ID4gICB9DQo+ID4gICANCj4gPiAtc3RhdGljIHZvaWQgY3JlYXRlX2ZicyhlbnVtIHBp eGVsX2Zvcm1hdCBmb3JtYXQpDQo+ID4gK3N0YXRpYyB2b2lkIGNyZWF0ZV9mYnMoZW51bSBwaXhl bF9mb3JtYXQgZm9ybWF0LCBlbnVtIHRpbGluZ190eXBlDQo+ID4gdGlsaW5nKQ0KPiA+ICAgew0K PiA+ICAgCXN0cnVjdCBzY3JlZW5fZmJzICpzID0gJmZic1tmb3JtYXRdOw0KPiA+ICAgDQo+ID4g QEAgLTY1MywzMCArNjY5LDI5IEBAIHN0YXRpYyB2b2lkIGNyZWF0ZV9mYnMoZW51bSBwaXhlbF9m b3JtYXQNCj4gPiBmb3JtYXQpDQo+ID4gICAJcy0+aW5pdGlhbGl6ZWQgPSB0cnVlOw0KPiA+ICAg DQo+ID4gICAJY3JlYXRlX2ZiKGZvcm1hdCwgcHJpbV9tb2RlX3BhcmFtcy5tb2RlLT5oZGlzcGxh eSwNCj4gPiAtCQkgIHByaW1fbW9kZV9wYXJhbXMubW9kZS0+dmRpc3BsYXksIG9wdC50aWxpbmcs DQo+ID4gUExBTkVfUFJJLA0KPiA+ICsJCSAgcHJpbV9tb2RlX3BhcmFtcy5tb2RlLT52ZGlzcGxh eSwgdGlsaW5nLCBQTEFORV9QUkksDQo+ID4gICAJCSAgJnMtPnByaW1fcHJpKTsNCj4gPiAgIAlj cmVhdGVfZmIoZm9ybWF0LCBwcmltX21vZGVfcGFyYW1zLmN1cnNvci53LA0KPiA+ICAgCQkgIHBy aW1fbW9kZV9wYXJhbXMuY3Vyc29yLmgsIExPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkUsDQo+ID4g ICAJCSAgUExBTkVfQ1VSLCAmcy0+cHJpbV9jdXIpOw0KPiA+ICAgCWNyZWF0ZV9mYihmb3JtYXQs IHByaW1fbW9kZV9wYXJhbXMuc3ByaXRlLncsDQo+ID4gLQkJICBwcmltX21vZGVfcGFyYW1zLnNw cml0ZS5oLCBvcHQudGlsaW5nLCBQTEFORV9TUFIsDQo+ID4gLQkJICAmcy0+cHJpbV9zcHIpOw0K PiA+ICsJCSAgcHJpbV9tb2RlX3BhcmFtcy5zcHJpdGUuaCwgdGlsaW5nLCBQTEFORV9TUFIsICZz LQ0KPiA+ID5wcmltX3Nwcik7DQo+ID4gICANCj4gPiAtCWNyZWF0ZV9mYihmb3JtYXQsIG9mZnNj cmVlbl9mYi53LCBvZmZzY3JlZW5fZmIuaCwgb3B0LnRpbGluZywNCj4gPiBQTEFORV9QUkksDQo+ ID4gKwljcmVhdGVfZmIoZm9ybWF0LCBvZmZzY3JlZW5fZmIudywgb2Zmc2NyZWVuX2ZiLmgsIHRp bGluZywNCj4gPiBQTEFORV9QUkksDQo+ID4gICAJCSAgJnMtPm9mZnNjcmVlbik7DQo+ID4gICAN Cj4gPiAtCWNyZWF0ZV9zaGFyZWRfZmIoZm9ybWF0KTsNCj4gPiArCWNyZWF0ZV9zaGFyZWRfZmIo Zm9ybWF0LCB0aWxpbmcpOw0KPiA+ICAgDQo+ID4gICAJaWYgKCFzY25kX21vZGVfcGFyYW1zLm91 dHB1dCkNCj4gPiAgIAkJcmV0dXJuOw0KPiA+ICAgDQo+ID4gICAJY3JlYXRlX2ZiKGZvcm1hdCwg c2NuZF9tb2RlX3BhcmFtcy5tb2RlLT5oZGlzcGxheSwNCj4gPiAtCQkgIHNjbmRfbW9kZV9wYXJh bXMubW9kZS0+dmRpc3BsYXksIG9wdC50aWxpbmcsDQo+ID4gUExBTkVfUFJJLA0KPiA+ICsJCSAg c2NuZF9tb2RlX3BhcmFtcy5tb2RlLT52ZGlzcGxheSwgdGlsaW5nLCBQTEFORV9QUkksDQo+ID4g ICAJCSAgJnMtPnNjbmRfcHJpKTsNCj4gPiAgIAljcmVhdGVfZmIoZm9ybWF0LCBzY25kX21vZGVf cGFyYW1zLmN1cnNvci53LA0KPiA+IHNjbmRfbW9kZV9wYXJhbXMuY3Vyc29yLmgsDQo+ID4gICAJ CSAgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwgUExBTkVfQ1VSLCAmcy0+c2NuZF9jdXIpOw0K PiA+ICAgCWNyZWF0ZV9mYihmb3JtYXQsIHNjbmRfbW9kZV9wYXJhbXMuc3ByaXRlLncsDQo+ID4g c2NuZF9tb2RlX3BhcmFtcy5zcHJpdGUuaCwNCj4gPiAtCQkgIG9wdC50aWxpbmcsIFBMQU5FX1NQ UiwgJnMtPnNjbmRfc3ByKTsNCj4gPiArCQkgIHRpbGluZywgUExBTkVfU1BSLCAmcy0+c2NuZF9z cHIpOw0KPiA+ICAgfQ0KPiA+ICAgDQo+ID4gICBzdGF0aWMgdm9pZCBfX3NldF9wcmltX3BsYW5l X2Zvcl9wYXJhbXMoc3RydWN0IG1vZGVzZXRfcGFyYW1zDQo+ID4gKnBhcmFtcykNCj4gPiBAQCAt MTE3Nyw3ICsxMTkyLDcgQEAgc3RhdGljIHZvaWQgY29sbGVjdF9jcmMoaWd0X2NyY190ICpjcmMp DQo+ID4gICAJaWd0X3BpcGVfY3JjX2NvbGxlY3RfY3JjKHBpcGVfY3JjLCBjcmMpOw0KPiA+ICAg fQ0KPiA+ICAgDQo+ID4gLXN0YXRpYyB2b2lkIGluaXRfYmx1ZV9jcmMoZW51bSBwaXhlbF9mb3Jt YXQgZm9ybWF0KQ0KPiA+ICtzdGF0aWMgdm9pZCBpbml0X2JsdWVfY3JjKGVudW0gcGl4ZWxfZm9y bWF0IGZvcm1hdCwgZW51bQ0KPiA+IHRpbGluZ190eXBlIHRpbGluZykNCj4gPiAgIHsNCj4gPiAg IAlzdHJ1Y3QgaWd0X2ZiIGJsdWU7DQo+ID4gICANCj4gPiBAQCAtMTE4NSw3ICsxMjAwLDcgQEAg c3RhdGljIHZvaWQgaW5pdF9ibHVlX2NyYyhlbnVtIHBpeGVsX2Zvcm1hdA0KPiA+IGZvcm1hdCkN Cj4gPiAgIAkJcmV0dXJuOw0KPiA+ICAgDQo+ID4gICAJY3JlYXRlX2ZiKGZvcm1hdCwgcHJpbV9t b2RlX3BhcmFtcy5tb2RlLT5oZGlzcGxheSwNCj4gPiAtCQkgIHByaW1fbW9kZV9wYXJhbXMubW9k ZS0+dmRpc3BsYXksIG9wdC50aWxpbmcsDQo+ID4gUExBTkVfUFJJLA0KPiA+ICsJCSAgcHJpbV9t b2RlX3BhcmFtcy5tb2RlLT52ZGlzcGxheSwgdGlsaW5nLCBQTEFORV9QUkksDQo+ID4gICAJCSAg JmJsdWUpOw0KPiA+ICAgDQo+ID4gICAJZmlsbF9mYigmYmx1ZSwgQ09MT1JfUFJJTV9CRyk7DQo+ ID4gQEAgLTEyMTEsNyArMTIyNiw3IEBAIHN0YXRpYyB2b2lkIGluaXRfYmx1ZV9jcmMoZW51bSBw aXhlbF9mb3JtYXQNCj4gPiBmb3JtYXQpDQo+ID4gICAJYmx1ZV9jcmNzW2Zvcm1hdF0uaW5pdGlh bGl6ZWQgPSB0cnVlOw0KPiA+ICAgfQ0KPiA+ICAgDQo+ID4gLXN0YXRpYyB2b2lkIGluaXRfY3Jj cyhlbnVtIHBpeGVsX2Zvcm1hdCBmb3JtYXQsDQo+ID4gK3N0YXRpYyB2b2lkIGluaXRfY3Jjcyhl bnVtIHBpeGVsX2Zvcm1hdCBmb3JtYXQsIGVudW0gdGlsaW5nX3R5cGUNCj4gPiB0aWxpbmcsDQo+ ID4gICAJCSAgICAgIHN0cnVjdCBkcmF3X3BhdHRlcm5faW5mbyAqcGF0dGVybikNCj4gPiAgIHsN Cj4gPiAgIAlpbnQgciwgcl87DQo+ID4gQEAgLTEyMjUsNyArMTI0MCw3IEBAIHN0YXRpYyB2b2lk IGluaXRfY3JjcyhlbnVtIHBpeGVsX2Zvcm1hdA0KPiA+IGZvcm1hdCwNCj4gPiAgIA0KPiA+ICAg CWZvciAociA9IDA7IHIgPCBwYXR0ZXJuLT5uX3JlY3RzOyByKyspDQo+ID4gICAJCWNyZWF0ZV9m Yihmb3JtYXQsIHByaW1fbW9kZV9wYXJhbXMubW9kZS0+aGRpc3BsYXksDQo+ID4gLQkJCSAgcHJp bV9tb2RlX3BhcmFtcy5tb2RlLT52ZGlzcGxheSwgb3B0LnRpbGluZywNCj4gPiArCQkJICBwcmlt X21vZGVfcGFyYW1zLm1vZGUtPnZkaXNwbGF5LCB0aWxpbmcsDQo+ID4gICAJCQkgIFBMQU5FX1BS SSwgJnRtcF9mYnNbcl0pOw0KPiA+ICAgDQo+ID4gICAJZm9yIChyID0gMDsgciA8IHBhdHRlcm4t Pm5fcmVjdHM7IHIrKykNCj4gPiBAQCAtMTI5MCw3ICsxMzA1LDcgQEAgc3RhdGljIHZvaWQgc2V0 dXBfbW9kZXNldCh2b2lkKQ0KPiA+ICAgCW9mZnNjcmVlbl9mYi5mYiA9IE5VTEw7DQo+ID4gICAJ b2Zmc2NyZWVuX2ZiLncgPSAxMDI0Ow0KPiA+ICAgCW9mZnNjcmVlbl9mYi5oID0gMTAyNDsNCj4g PiAtCWNyZWF0ZV9mYnMoRk9STUFUX0RFRkFVTFQpOw0KPiA+ICsJY3JlYXRlX2ZicyhGT1JNQVRf REVGQVVMVCwgb3B0LnRpbGluZyk7DQo+ID4gICB9DQo+ID4gICANCj4gPiAgIHN0YXRpYyB2b2lk IHRlYXJkb3duX21vZGVzZXQodm9pZCkNCj4gPiBAQCAtMTc1MSw3ICsxNzY2LDcgQEAgc3RhdGlj IHZvaWQgc2V0X2NydGNfZmJzKGNvbnN0IHN0cnVjdA0KPiA+IHRlc3RfbW9kZSAqdCkNCj4gPiAg IHsNCj4gPiAgIAlzdHJ1Y3Qgc2NyZWVuX2ZicyAqcyA9ICZmYnNbdC0+Zm9ybWF0XTsNCj4gPiAg IA0KPiA+IC0JY3JlYXRlX2Zicyh0LT5mb3JtYXQpOw0KPiA+ICsJY3JlYXRlX2Zicyh0LT5mb3Jt YXQsIHQtPnRpbGluZyk7DQo+ID4gICANCj4gPiAgIAlzd2l0Y2ggKHQtPmZicykgew0KPiA+ICAg CWNhc2UgRkJTX0lORElWSURVQUw6DQo+ID4gQEAgLTE4MTEsOSArMTgyNiw5IEBAIHN0YXRpYyB2 b2lkIHByZXBhcmVfc3VidGVzdF9kYXRhKGNvbnN0IHN0cnVjdA0KPiA+IHRlc3RfbW9kZSAqdCwN Cj4gPiAgIAlpZiAobmVlZF9tb2Rlc2V0KQ0KPiA+ICAgCQlpZ3RfZGlzcGxheV9jb21taXQoJmRy bS5kaXNwbGF5KTsNCj4gPiAgIA0KPiA+IC0JaW5pdF9ibHVlX2NyYyh0LT5mb3JtYXQpOw0KPiA+ ICsJaW5pdF9ibHVlX2NyYyh0LT5mb3JtYXQsIHQtPnRpbGluZyk7DQo+ID4gICAJaWYgKHBhdHRl cm4pDQo+ID4gLQkJaW5pdF9jcmNzKHQtPmZvcm1hdCwgcGF0dGVybik7DQo+ID4gKwkJaW5pdF9j cmNzKHQtPmZvcm1hdCwgdC0+dGlsaW5nLCBwYXR0ZXJuKTsNCj4gPiAgIA0KPiA+ICAgCW5lZWRf bW9kZXNldCA9IGVuYWJsZV9mZWF0dXJlc19mb3JfdGVzdCh0KTsNCj4gPiAgIAlpZiAobmVlZF9t b2Rlc2V0KQ0KPiA+IEBAIC0yMzA0LDcgKzIzMTksNyBAQCBzdGF0aWMgdm9pZCBmbGlwX3N1YnRl c3QoY29uc3Qgc3RydWN0DQo+ID4gdGVzdF9tb2RlICp0KQ0KPiA+ICAgCXByZXBhcmVfc3VidGVz dCh0LCBwYXR0ZXJuKTsNCj4gPiAgIA0KPiA+ICAgCWNyZWF0ZV9mYih0LT5mb3JtYXQsIHBhcmFt cy0+cHJpbWFyeS5mYi0+d2lkdGgsIHBhcmFtcy0NCj4gPiA+cHJpbWFyeS5mYi0+aGVpZ2h0LA0K PiA+IC0JCSAgb3B0LnRpbGluZywgdC0+cGxhbmUsICZmYjIpOw0KPiA+ICsJCSAgdC0+dGlsaW5n LCB0LT5wbGFuZSwgJmZiMik7DQo+ID4gICAJZmlsbF9mYigmZmIyLCBiZ19jb2xvcik7DQo+ID4g ICAJb3JpZ19mYiA9IHBhcmFtcy0+cHJpbWFyeS5mYjsNCj4gPiAgIA0KPiA+IEBAIC0yMzUzLDcg KzIzNjgsNyBAQCBzdGF0aWMgdm9pZCBmbGlwdHJhY2tfc3VidGVzdChjb25zdCBzdHJ1Y3QNCj4g PiB0ZXN0X21vZGUgKnQsIGVudW0gZmxpcF90eXBlIHR5cGUpDQo+ID4gICAJcHJlcGFyZV9zdWJ0 ZXN0KHQsIHBhdHRlcm4pOw0KPiA+ICAgDQo+ID4gICAJY3JlYXRlX2ZiKHQtPmZvcm1hdCwgcGFy YW1zLT5wcmltYXJ5LmZiLT53aWR0aCwgcGFyYW1zLQ0KPiA+ID5wcmltYXJ5LmZiLT5oZWlnaHQs DQo+ID4gLQkJICBvcHQudGlsaW5nLCB0LT5wbGFuZSwgJmZiMik7DQo+ID4gKwkJICB0LT50aWxp bmcsIHQtPnBsYW5lLCAmZmIyKTsNCj4gPiAgIAlmaWxsX2ZiKCZmYjIsIENPTE9SX1BSSU1fQkcp Ow0KPiA+ICAgCW9yaWdfZmIgPSBwYXJhbXMtPnByaW1hcnkuZmI7DQo+ID4gICANCj4gPiBAQCAt MjUxMSw3ICsyNTI2LDcgQEAgc3RhdGljIHZvaWQgZnVsbHNjcmVlbl9wbGFuZV9zdWJ0ZXN0KGNv bnN0DQo+ID4gc3RydWN0IHRlc3RfbW9kZSAqdCkNCj4gPiAgIAlwcmVwYXJlX3N1YnRlc3QodCwg cGF0dGVybik7DQo+ID4gICANCj4gPiAgIAlyZWN0ID0gcGF0dGVybi0+Z2V0X3JlY3QoJnBhcmFt cy0+cHJpbWFyeSwgMCk7DQo+ID4gLQljcmVhdGVfZmIodC0+Zm9ybWF0LCByZWN0LncsIHJlY3Qu aCwgb3B0LnRpbGluZywgdC0+cGxhbmUsDQo+ID4gKwljcmVhdGVfZmIodC0+Zm9ybWF0LCByZWN0 LncsIHJlY3QuaCwgdC0+dGlsaW5nLCB0LT5wbGFuZSwNCj4gPiAgIAkJICAmZnVsbHNjcmVlbl9m Yik7DQo+ID4gICAJLyogQ2FsbCBwaWNrX2NvbG9yKCkgYWdhaW4gc2luY2UgUFJJIGFuZCBTUFIg bWF5IG5vdCBzdXBwb3J0DQo+ID4gdGhlIHNhbWUNCj4gPiAgIAkgKiBwaXhlbCBmb3JtYXRzLiAq Lw0KPiA+IEBAIC0yNTg0LDcgKzI1OTksNyBAQCBzdGF0aWMgdm9pZCBzY2FsZWRwcmltYXJ5X3N1 YnRlc3QoY29uc3QNCj4gPiBzdHJ1Y3QgdGVzdF9tb2RlICp0KQ0KPiA+ICAgCW9sZF9mYiA9IHJl Zy0+ZmI7DQo+ID4gICANCj4gPiAgIAljcmVhdGVfZmIodC0+Zm9ybWF0LCByZWctPmZiLT53aWR0 aCwgcmVnLT5mYi0+aGVpZ2h0LA0KPiA+IC0JCSAgb3B0LnRpbGluZywgdC0+cGxhbmUsICZuZXdf ZmIpOw0KPiA+ICsJCSAgdC0+dGlsaW5nLCB0LT5wbGFuZSwgJm5ld19mYik7DQo+ID4gICAJZmls bF9mYigmbmV3X2ZiLCBDT0xPUl9CTFVFKTsNCj4gPiAgIA0KPiA+ICAgCWlndF9kcmF3X3JlY3Rf ZmIoZHJtLmZkLCBkcm0uYnVmbWdyLCBOVUxMLCAmbmV3X2ZiLCB0LT5tZXRob2QsDQo+ID4gQEAg LTI2NzksNyArMjY5NCw3IEBAIHN0YXRpYyB2b2lkIG1vZGVzZXRmcm9tYnVzeV9zdWJ0ZXN0KGNv bnN0DQo+ID4gc3RydWN0IHRlc3RfbW9kZSAqdCkNCj4gPiAgIAlwcmVwYXJlX3N1YnRlc3QodCwg TlVMTCk7DQo+ID4gICANCj4gPiAgIAljcmVhdGVfZmIodC0+Zm9ybWF0LCBwYXJhbXMtPnByaW1h cnkuZmItPndpZHRoLCBwYXJhbXMtDQo+ID4gPnByaW1hcnkuZmItPmhlaWdodCwNCj4gPiAtCQkg IG9wdC50aWxpbmcsIHQtPnBsYW5lLCAmZmIyKTsNCj4gPiArCQkgIHQtPnRpbGluZywgdC0+cGxh bmUsICZmYjIpOw0KPiA+ICAgCWZpbGxfZmIoJmZiMiwgQ09MT1JfUFJJTV9CRyk7DQo+ID4gICAN Cj4gPiAgIAlzdGFydF9idXN5X3RocmVhZChwYXJhbXMtPnByaW1hcnkuZmIpOw0KPiA+IEBAIC0y NzgyLDcgKzI3OTcsNyBAQCBzdGF0aWMgdm9pZCBmYXJmcm9tZmVuY2Vfc3VidGVzdChjb25zdCBz dHJ1Y3QNCj4gPiB0ZXN0X21vZGUgKnQpDQo+ID4gICAJcHJlcGFyZV9zdWJ0ZXN0KHQsIHBhdHRl cm4pOw0KPiA+ICAgCXRhcmdldCA9IHBpY2tfdGFyZ2V0KHQsIHBhcmFtcyk7DQo+ID4gICANCj4g PiAtCWNyZWF0ZV9mYih0LT5mb3JtYXQsIHBhcmFtcy0+bW9kZS0+aGRpc3BsYXksIG1heF9oZWln aHQsDQo+ID4gb3B0LnRpbGluZywNCj4gPiArCWNyZWF0ZV9mYih0LT5mb3JtYXQsIHBhcmFtcy0+ bW9kZS0+aGRpc3BsYXksIG1heF9oZWlnaHQsIHQtDQo+ID4gPnRpbGluZywNCj4gPiAgIAkJICB0 LT5wbGFuZSwgJnRhbGxfZmIpOw0KPiA+ICAgDQo+ID4gICAJZmlsbF9mYigmdGFsbF9mYiwgQ09M T1JfUFJJTV9CRyk7DQo+ID4gQEAgLTI4NTksNyArMjg3NCw3IEBAIHN0YXRpYyB2b2lkIGJhZHN0 cmlkZV9zdWJ0ZXN0KGNvbnN0IHN0cnVjdA0KPiA+IHRlc3RfbW9kZSAqdCkNCj4gPiAgIAlvbGRf ZmIgPSBwYXJhbXMtPnByaW1hcnkuZmI7DQo+ID4gICANCj4gPiAgIAljcmVhdGVfZmIodC0+Zm9y bWF0LCBwYXJhbXMtPnByaW1hcnkuZmItPndpZHRoICsgNDA5NiwgcGFyYW1zLQ0KPiA+ID5wcmlt YXJ5LmZiLT5oZWlnaHQsDQo+ID4gLQkJICBvcHQudGlsaW5nLCB0LT5wbGFuZSwgJndpZGVfZmIp Ow0KPiA+ICsJCSAgdC0+dGlsaW5nLCB0LT5wbGFuZSwgJndpZGVfZmIpOw0KPiA+ICAgCWlndF9h c3NlcnQod2lkZV9mYi5zdHJpZGVzWzBdID4gMTYzODQpOw0KPiA+ICAgDQo+ID4gICAJZmlsbF9m Yigmd2lkZV9mYiwgQ09MT1JfUFJJTV9CRyk7DQo+ID4gQEAgLTMwMzksNyArMzA1NCw3IEBAIHN0 YXRpYyB2b2lkIGJhc2ljX3N1YnRlc3QoY29uc3Qgc3RydWN0DQo+ID4gdGVzdF9tb2RlICp0KQ0K PiA+ICAgCXByZXBhcmVfc3VidGVzdCh0LCBwYXR0ZXJuKTsNCj4gPiAgIA0KPiA+ICAgCWNyZWF0 ZV9mYih0LT5mb3JtYXQsIHBhcmFtcy0+cHJpbWFyeS5mYi0+d2lkdGgsIHBhcmFtcy0NCj4gPiA+ cHJpbWFyeS5mYi0+aGVpZ2h0LA0KPiA+IC0JCSAgb3B0LnRpbGluZywgdC0+cGxhbmUsICZmYjIp Ow0KPiA+ICsJCSAgdC0+dGlsaW5nLCB0LT5wbGFuZSwgJmZiMik7DQo+ID4gICAJZmIxID0gcGFy YW1zLT5wcmltYXJ5LmZiOw0KPiA+ICAgDQo+ID4gICAJZm9yIChyID0gMCwgbWV0aG9kID0gMDsg bWV0aG9kIDwgSUdUX0RSQVdfTUVUSE9EX0NPVU5UOw0KPiA+IG1ldGhvZCsrKSB7DQo+ID4gQEAg LTMxMjAsMTAgKzMxMzUsMTIgQEAgc3RhdGljIGludCBvcHRfaGFuZGxlcihpbnQgb3B0aW9uLCBp bnQNCj4gPiBvcHRpb25faW5kZXgsIHZvaWQgKmRhdGEpDQo+ID4gICAJCWJyZWFrOw0KPiA+ICAg CWNhc2UgJ2wnOg0KPiA+ICAgCQlpZiAoIXN0cmNtcChvcHRhcmcsICJ4IikpDQo+ID4gLQkJCW9w dC50aWxpbmcgPSBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWF9USUxFRDsNCj4gPiArCQkJb3B0LnRp bGluZyA9IFRJTElOR19YOw0KPiA+ICAgCQllbHNlIGlmICghc3RyY21wKG9wdGFyZywgInkiKSkN Cj4gPiAtCQkJb3B0LnRpbGluZyA9IExPQ0FMX0k5MTVfRk9STUFUX01PRF9ZX1RJTEVEOw0KPiA+ IC0JCWVsc2Ugew0KPiA+ICsJCQlvcHQudGlsaW5nID0gVElMSU5HX1k7DQo+ID4gKwkJZWxzZSBp ZiAoIXN0cmNtcChvcHRhcmcsICJsIikpIHsNCj4gPiArCQkJb3B0LnRpbGluZyA9IFRJTElOR19M SU5FQVI7DQo+ID4gKwkJfSBlbHNlIHsNCj4gPiAgIAkJCWlndF93YXJuKCJCYWQgdGlsaW5nIHZh bHVlOiAlc1xuIiwgb3B0YXJnKTsNCj4gPiAgIAkJCXJldHVybiBJR1RfT1BUX0hBTkRMRVJfRVJS T1I7DQo+ID4gICAJCX0NCj4gPiBAQCAtMzI1NSw5ICszMjcyLDI0IEBAIHN0YXRpYyBjb25zdCBj aGFyICpmbGlwX3N0cihlbnVtIGZsaXBfdHlwZQ0KPiA+IGZsaXApDQo+ID4gICAJfQ0KPiA+ICAg fQ0KPiA+ICAgDQo+ID4gK3N0YXRpYyBjb25zdCBjaGFyICp0aWxpbmdfc3RyKGVudW0gdGlsaW5n X3R5cGUgdGlsaW5nKQ0KPiA+ICt7DQo+ID4gKwlzd2l0Y2ggKHRpbGluZykgew0KPiA+ICsJY2Fz ZSBUSUxJTkdfTElORUFSOg0KPiA+ICsJCXJldHVybiAibGluZWFyIjsNCj4gPiArCWNhc2UgVElM SU5HX1g6DQo+ID4gKwkJcmV0dXJuICJ4IjsNCj4gPiArCWNhc2UgVElMSU5HX1k6DQo+ID4gKwkJ cmV0dXJuICJ5IjsNCj4gPiArCWRlZmF1bHQ6DQo+ID4gKwkJaWd0X2Fzc2VydChmYWxzZSk7DQo+ ID4gKwl9DQo+ID4gK30NCj4gPiArDQo+ID4gICAjZGVmaW5lIFRFU1RfTU9ERV9JVEVSX0JFR0lO KHQpIFwNCj4gPiAgIAl0LmZvcm1hdCA9IEZPUk1BVF9ERUZBVUxUOwkJCQkJICAgDQo+ID4gXA0K PiA+ICAgCXQuZmxpcCA9IEZMSVBfUEFHRUZMSVA7CQkJCQkJDQo+ID4gICAgXA0KPiA+ICsJdC50 aWxpbmcgPSBvcHQudGlsaW5nOzsJCQkJCQkNCj4gPiAgICBcDQo+ID4gICAJZm9yICh0LmZlYXR1 cmUgPSAwOyB0LmZlYXR1cmUgPCBGRUFUVVJFX0NPVU5UOyB0LmZlYXR1cmUrKykgewkNCj4gPiAg ICBcDQo+ID4gICAJZm9yICh0LnBpcGVzID0gMDsgdC5waXBlcyA8IFBJUEVfQ09VTlQ7IHQucGlw ZXMrKykgewkJDQo+ID4gICAgXA0KPiA+ICAgCWZvciAodC5zY3JlZW4gPSAwOyB0LnNjcmVlbiA8 IFNDUkVFTl9DT1VOVDsgdC5zY3JlZW4rKykgewkgICANCj4gPiBcDQo+ID4gQEAgLTMzMTUsNiAr MzM0Nyw3IEBAIGlndF9tYWluX2FyZ3MoIiIsIGxvbmdfb3B0aW9ucywgaGVscF9zdHIsDQo+ID4g b3B0X2hhbmRsZXIsIE5VTEwpDQo+ID4gICAJCQkvKiBNYWtlIHN1cmUgbm90aGluZyBpcyB1c2lu ZyB0aGVzZSB2YWx1ZXMuICovDQo+ID4gICAJCQl0LmZsaXAgPSAtMTsNCj4gPiAgIAkJCXQubWV0 aG9kID0gLTE7DQo+ID4gKwkJCXQudGlsaW5nID0gb3B0LnRpbGluZzsNCj4gPiAgIA0KPiA+ICAg CQkJaWd0X3N1YnRlc3RfZigiJXMtJXMtcnRlIiwNCj4gPiAgIAkJCQkgICAgICBmZWF0dXJlX3N0 cih0LmZlYXR1cmUpLA0KPiA+IEBAIC0zNDk5LDYgKzM1MzIsNyBAQCBpZ3RfbWFpbl9hcmdzKCIi LCBsb25nX29wdGlvbnMsIGhlbHBfc3RyLA0KPiA+IG9wdF9oYW5kbGVyLCBOVUxMKQ0KPiA+ICAg CXQuZmVhdHVyZSA9IEZFQVRVUkVfREVGQVVMVDsNCj4gPiAgIAl0LmZvcm1hdCA9IEZPUk1BVF9E RUZBVUxUOw0KPiA+ICAgCXQuZmxpcCA9IEZMSVBfUEFHRUZMSVA7DQo+ID4gKwl0LnRpbGluZyA9 IG9wdC50aWxpbmc7DQo+ID4gICAJaWd0X3N1YnRlc3QoImJhc2ljIikgew0KPiA+ICAgCQlpZ3Rf cmVxdWlyZV9nZW0oZHJtLmZkKTsNCj4gPiAgIAkJYmFzaWNfc3VidGVzdCgmdCk7DQo+ID4gDQo+ IA0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiBp Z3QtZGV2IG1haWxpbmcgbGlzdA0KPiBpZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0KPiBo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYNCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFp bGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=