From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id EC4AF6E0AC for ; Tue, 15 Jun 2021 06:01:04 +0000 (UTC) From: "Shankar, Uma" Date: Tue, 15 Jun 2021 06:00:58 +0000 Message-ID: <1d7b8e818fae4f14adfeb9048c3a27e3@intel.com> References: <20210611052005.303-1-venkata.sai.patnana@intel.com> <20210611052005.303-9-venkata.sai.patnana@intel.com> In-Reply-To: <20210611052005.303-9-venkata.sai.patnana@intel.com> Content-Language: en-US MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t 09/17] tests/kms_big_fb: Add max HW stride length tests 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: "Patnana, Venkata Sai" , "igt-dev@lists.freedesktop.org" Cc: "Heikkila, Juha-pekka" List-ID: DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogUGF0bmFuYSwgVmVua2F0 YSBTYWkgPHZlbmthdGEuc2FpLnBhdG5hbmFAaW50ZWwuY29tPg0KPiBTZW50OiBGcmlkYXksIEp1 bmUgMTEsIDIwMjEgMTA6NTAgQU0NCj4gVG86IGlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn DQo+IENjOiBQYXRuYW5hLCBWZW5rYXRhIFNhaSA8dmVua2F0YS5zYWkucGF0bmFuYUBpbnRlbC5j b20+OyBIZWlra2lsYSwgSnVoYS1wZWtrYQ0KPiA8anVoYS1wZWtrYS5oZWlra2lsYUBpbnRlbC5j b20+OyBTaGFua2FyLCBVbWEgPHVtYS5zaGFua2FyQGludGVsLmNvbT4NCj4gU3ViamVjdDogW1BB VENIIGktZy10IDA5LzE3XSB0ZXN0cy9rbXNfYmlnX2ZiOiBBZGQgbWF4IEhXIHN0cmlkZSBsZW5n dGggdGVzdHMNCj4gDQo+IEZyb206IEp1aGEtUGVra2EgSGVpa2tpbMOkIDxqdWhhLXBla2thLmhl aWtraWxhQGludGVsLmNvbT4NCj4gDQo+IFRlc3QgbWF4aW11bSBIVyBzdHJpZGUgbGVuZ3Rocy4g T24gSW50ZWwgSFcgZnJvbSBnZW41IHVwIHRvDQo+IEdlbjEwIG1heGltdW0gSFcgc3RyaWRlIGxl bmd0aCBpcyAzMksuIE9uIEdlbjExIHdoZW4gdXNpbmcgNjRicHAgZm9ybWF0cw0KPiBzdHJpZGVz IGNhbiByZWFjaCB1cCB0byA2NGsuIFRoZXNlIHRlc3QgdHJ5IGV4YWN0IG1heGltdW0gSFcgc3Ry aWRlcyBzbyBndHQNCj4gcmVtYXBwaW5nIHdpbGwgbm90IGNvbWUgaW4gcGxheS4NCg0KTG9va3Mg R29vZCB0byBtZS4NClJldmlld2VkLWJ5OiBVbWEgU2hhbmthciA8dW1hLnNoYW5rYXJAaW50ZWwu Y29tPg0KPiANCj4gQ2M6IFVtYSBTaGFua2FyIDx1bWEuc2hhbmthckBpbnRlbC5jb20+DQo+IFNp Z25lZC1vZmYtYnk6IEp1aGEtUGVra2EgSGVpa2tpbMOkIDxqdWhhLXBla2thLmhlaWtraWxhQGlu dGVsLmNvbT4NCj4gLS0tDQo+ICB0ZXN0cy9rbXNfYmlnX2ZiLmMgfCAxNTQgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tDQo+ICAxIGZpbGUgY2hhbmdlZCwgMTQ2 IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvdGVzdHMv a21zX2JpZ19mYi5jIGIvdGVzdHMva21zX2JpZ19mYi5jIGluZGV4IDBlYTA3NjcwNmYuLjY1NTY1 MTI3ZmQNCj4gMTAwNjQ0DQo+IC0tLSBhL3Rlc3RzL2ttc19iaWdfZmIuYw0KPiArKysgYi90ZXN0 cy9rbXNfYmlnX2ZiLmMNCj4gQEAgLTUwLDYgKzUwLDExIEBAIHR5cGVkZWYgc3RydWN0IHsNCj4g IAlpZ3RfcmVuZGVyX2NvcHlmdW5jX3QgcmVuZGVyX2NvcHk7DQo+ICAJc3RydWN0IGJ1Zl9vcHMg KmJvcHM7DQo+ICAJc3RydWN0IGludGVsX2JiICppYmI7DQo+ICsJYm9vbCBtYXhfaHdfc3RyaWRl X3Rlc3Q7DQo+ICsJaW50IGh3X3N0cmlkZTsNCj4gKwlpbnQgbWF4X2h3X2ZiX3dpZHRoOw0KPiAr CXVpbnQzMl90IGZvcm1hdF9vdmVycmlkZTsNCj4gKwl1aW50MzJfdCBzdHJpZGVfb3ZlcnJpZGU7 DQo+ICB9IGRhdGFfdDsNCj4gDQo+ICBzdGF0aWMgc3RydWN0IGludGVsX2J1ZiAqaW5pdF9idWYo ZGF0YV90ICpkYXRhLCBAQCAtODMsNiArODgsMzggQEAgc3RhdGljIHZvaWQNCj4gZmluaV9idWYo c3RydWN0IGludGVsX2J1ZiAqYnVmKQ0KPiAgCWludGVsX2J1Zl9kZXN0cm95KGJ1Zik7DQo+ICB9 DQo+IA0KPiArc3RhdGljIHZvaWQgc2V0dXBfZmIoZGF0YV90ICpkYXRhLCBzdHJ1Y3QgaWd0X2Zi ICpuZXdmYiwgdWludDMyX3Qgd2lkdGgsDQo+ICsJCSAgICAgdWludDMyX3QgaGVpZ2h0LCB1aW50 NjRfdCBmb3JtYXQsIHVpbnQ2NF90IG1vZGlmaWVyLCB1aW50NjRfdA0KPiArc3RyaWRlKSB7DQo+ ICsJc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgZiA9IHswfTsNCj4gKwljYWlyb190ICpjcjsNCj4g Kw0KPiArCW5ld2ZiLT5zdHJpZGVzWzBdID0gc3RyaWRlOw0KPiArCWlndF9jcmVhdGVfYm9fZm9y X2ZiKGRhdGEtPmRybV9mZCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCBtb2RpZmllciwNCj4gKwkJ CSAgICAgbmV3ZmIpOw0KPiArDQo+ICsJaWd0X2Fzc2VydChuZXdmYi0+Z2VtX2hhbmRsZSA+IDAp Ow0KPiArDQo+ICsJZi53aWR0aCA9IG5ld2ZiLT53aWR0aDsNCj4gKwlmLmhlaWdodCA9IG5ld2Zi LT5oZWlnaHQ7DQo+ICsJZi5waXhlbF9mb3JtYXQgPSBuZXdmYi0+ZHJtX2Zvcm1hdDsNCj4gKwlm LmZsYWdzID0gTE9DQUxfRFJNX01PREVfRkJfTU9ESUZJRVJTOw0KPiArDQo+ICsJZm9yIChpbnQg biA9IDA7IG4gPCBuZXdmYi0+bnVtX3BsYW5lczsgbisrKSB7DQo+ICsJCWYuaGFuZGxlc1tuXSA9 IG5ld2ZiLT5nZW1faGFuZGxlOw0KPiArCQlmLm1vZGlmaWVyW25dID0gbmV3ZmItPm1vZGlmaWVy Ow0KPiArCQlmLnBpdGNoZXNbbl0gPSBuZXdmYi0+c3RyaWRlc1tuXTsNCj4gKwkJZi5vZmZzZXRz W25dID0gbmV3ZmItPm9mZnNldHNbbl07DQo+ICsJfQ0KPiArDQo+ICsJY3IgPSBpZ3RfZ2V0X2Nh aXJvX2N0eChkYXRhLT5kcm1fZmQsIG5ld2ZiKTsNCj4gKwlpZ3RfcGFpbnRfY29sb3IoY3IsIDAs IDAsIG5ld2ZiLT53aWR0aCwgbmV3ZmItPmhlaWdodCwgMCwgMCwgMCk7DQo+ICsJaWd0X3B1dF9j YWlyb19jdHgoY3IpOw0KPiArDQo+ICsJaWd0X2Fzc2VydChkcm1Jb2N0bChkYXRhLT5kcm1fZmQs IExPQ0FMX0RSTV9JT0NUTF9NT0RFX0FEREZCMiwgJmYpDQo+ID09IDApOw0KPiArCW5ld2ZiLT5m Yl9pZCA9IGYuZmJfaWQ7DQo+ICt9DQo+ICsNCj4gIHN0YXRpYyB2b2lkIGNvcHlfcGF0dGVybihk YXRhX3QgKmRhdGEsDQo+ICAJCQkgc3RydWN0IGlndF9mYiAqZHN0X2ZiLCBpbnQgZHgsIGludCBk eSwNCj4gIAkJCSBzdHJ1Y3QgaWd0X2ZiICpzcmNfZmIsIGludCBzeCwgaW50IHN5LCBAQCAtMTc4 LDkgKzIxNSw2IEBADQo+IHN0YXRpYyB2b2lkIG1heF9mYl9zaXplKGRhdGFfdCAqZGF0YSwgaW50 ICp3aWR0aCwgaW50ICpoZWlnaHQsDQo+ICAJdWludDY0X3Qgc2l6ZTsNCj4gIAlpbnQgaSA9IDA7 DQo+IA0KPiAtCSp3aWR0aCA9IGRhdGEtPm1heF9mYl93aWR0aDsNCj4gLQkqaGVpZ2h0ID0gZGF0 YS0+bWF4X2ZiX2hlaWdodDsNCj4gLQ0KPiAgCS8qIG1heCBmZW5jZSBzdHJpZGUgaXMgb25seSA4 ayBieXRlcyBvbiBnZW4zICovDQo+ICAJaWYgKGludGVsX2Rpc3BsYXlfdmVyKGRhdGEtPmRldmlk KSA8IDQgJiYNCj4gIAkgICAgZm9ybWF0ID09IERSTV9GT1JNQVRfWFJHQjg4ODgpDQo+IEBAIC0y MDksMTAgKzI0MywxNyBAQCBzdGF0aWMgdm9pZCBwcmVwX2ZiKGRhdGFfdCAqZGF0YSkNCj4gIAlp ZiAoZGF0YS0+YmlnX2ZiLmZiX2lkKQ0KPiAgCQlyZXR1cm47DQo+IA0KPiAtCWlndF9jcmVhdGVf ZmIoZGF0YS0+ZHJtX2ZkLA0KPiAtCQkgICAgICBkYXRhLT5iaWdfZmJfd2lkdGgsIGRhdGEtPmJp Z19mYl9oZWlnaHQsDQo+IC0JCSAgICAgIGRhdGEtPmZvcm1hdCwgZGF0YS0+bW9kaWZpZXIsDQo+ IC0JCSAgICAgICZkYXRhLT5iaWdfZmIpOw0KPiArCWlmIChkYXRhLT5od19zdHJpZGUgPT0gMCkg ew0KPiArCQlpZ3RfY3JlYXRlX2ZiKGRhdGEtPmRybV9mZCwNCj4gKwkJCWRhdGEtPmJpZ19mYl93 aWR0aCwgZGF0YS0+YmlnX2ZiX2hlaWdodCwNCj4gKwkJCWRhdGEtPmZvcm1hdCwgZGF0YS0+bW9k aWZpZXIsDQo+ICsJCQkmZGF0YS0+YmlnX2ZiKTsNCj4gKwl9IGVsc2Ugew0KPiArCQlzZXR1cF9m YihkYXRhLCAmZGF0YS0+YmlnX2ZiLCBkYXRhLT5iaWdfZmJfd2lkdGgsDQo+ICsJCQkgZGF0YS0+ YmlnX2ZiX2hlaWdodCwgZGF0YS0+Zm9ybWF0LCBkYXRhLT5tb2RpZmllciwNCj4gKwkJCSBkYXRh LT5od19zdHJpZGUpOw0KPiArCQlpZ3RfaW5mbygidXNpbmcgc3RyaWRlIGxlbmd0aCAlZFxuIiwg ZGF0YS0+aHdfc3RyaWRlKTsNCj4gKwl9DQo+IA0KPiAgCWdlbmVyYXRlX3BhdHRlcm4oZGF0YSwg JmRhdGEtPmJpZ19mYiwgNjQwLCA0ODApOyAgfSBAQCAtNDM1LDYgKzQ3NiwxNA0KPiBAQCBzdGF0 aWMgYm9vbCB0ZXN0X3BpcGUoZGF0YV90ICpkYXRhKQ0KPiANCj4gIHN0YXRpYyB2b2lkIHRlc3Rf c2Nhbm91dChkYXRhX3QgKmRhdGEpDQo+ICB7DQo+ICsJaWYgKGRhdGEtPm1heF9od19zdHJpZGVf dGVzdCkgew0KPiArCQlkYXRhLT5iaWdfZmJfd2lkdGggPSBkYXRhLT5tYXhfaHdfZmJfd2lkdGg7 DQo+ICsJCWRhdGEtPmJpZ19mYl9oZWlnaHQgPSBkYXRhLT5tYXhfaHdfZmJfd2lkdGg7DQo+ICsJ fSBlbHNlIHsNCj4gKwkJZGF0YS0+YmlnX2ZiX3dpZHRoID0gZGF0YS0+bWF4X2ZiX3dpZHRoOw0K PiArCQlkYXRhLT5iaWdfZmJfaGVpZ2h0ID0gZGF0YS0+bWF4X2ZiX2hlaWdodDsNCj4gKwl9DQo+ ICsNCj4gIAltYXhfZmJfc2l6ZShkYXRhLCAmZGF0YS0+YmlnX2ZiX3dpZHRoLCAmZGF0YS0+Ymln X2ZiX2hlaWdodCwNCj4gIAkJICAgIGRhdGEtPmZvcm1hdCwgZGF0YS0+bW9kaWZpZXIpOw0KPiAN Cj4gQEAgLTU4Nyw3ICs2MzYsMjcgQEAgdGVzdF9hZGRmYihkYXRhX3QgKmRhdGEpDQo+ICAJZ2Vt X2Nsb3NlKGRhdGEtPmRybV9mZCwgYm8pOw0KPiAgfQ0KPiANCj4gLXN0YXRpYyBkYXRhX3QgZGF0 YTsNCj4gKy8qDQo+ICsgKiBUT0RPOiBhZGFwdCBpOXh4X3BsYW5lX21heF9zdHJpZGUoLi4pIGhl cmUgZnJvbSBpbnRlbF9kaXNwbGF5LmMNCj4gKyAqIGluIGtlcm5lbCBzb3VyY2VzIHRvIHN1cHBv cnQgb2xkZXIgZ2VuIGZvciBtYXggaHcgc3RyaWRlIGxlbmd0aA0KPiArICogdGVzdGluZy4NCj4g KyAqLw0KPiArc3RhdGljIHZvaWQNCj4gK3NldF9tYXhfaHdfc3RyaWRlKGRhdGFfdCAqZGF0YSkN Cj4gK3sNCj4gKwlpZiAoaW50ZWxfZGlzcGxheV92ZXIoZGF0YS0+ZGV2aWQpID49IDEzKSB7DQo+ ICsJCS8qDQo+ICsJCSAqIFRoZSBzdHJpZGUgaW4gYnl0ZXMgbXVzdCBub3QgZXhjZWVkIG9mIHRo ZSBzaXplDQo+ICsJCSAqIG9mIDEyOEsgYnl0ZXMuIEZvciBwaXhlbCBmb3JtYXRzIG9mIDY0YnBw IHdpbGwgYWxsb3cNCj4gKwkJICogZm9yIGEgMTZLIHBpeGVsIHN1cmZhY2UuDQo+ICsJCSAqLw0K PiArCQlkYXRhLT5od19zdHJpZGUgPSAxMzEwNzI7DQo+ICsJfSBlbHNlIHsNCj4gKwkJZGF0YS0+ aHdfc3RyaWRlID0gMzI3Njg7DQo+ICsJfQ0KPiArfQ0KPiArDQo+ICtzdGF0aWMgZGF0YV90IGRh dGEgPSB7fTsNCj4gDQo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IHsNCj4gIAl1aW50NjRfdCBtb2Rp ZmllcjsNCj4gQEAgLTYxOSw2ICs2ODgsMTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7DQo+ICAJ eyBJR1RfUk9UQVRJT05fMjcwLCAyNzAsIH0sDQo+ICB9Ow0KPiANCj4gK3N0YXRpYyBjb25zdCBz dHJ1Y3Qgew0KPiArCWlndF9yb3RhdGlvbl90IGZsaXA7DQo+ICsJY29uc3QgY2hhciAqZmxpcG5h bWU7DQo+ICt9IGZsaXB0YWJbXSA9IHsNCj4gKwl7IDAsICIiIH0sDQo+ICsJeyBJR1RfUkVGTEVD VF9YLCAiLWhmbGlwIiB9LA0KPiArfTsNCj4gIGlndF9tYWluDQo+ICB7DQo+ICAJaWd0X2ZpeHR1 cmUgew0KPiBAQCAtNjY1LDYgKzc0MSw5IEBAIGlndF9tYWluDQo+ICAJCQlkYXRhLnJlbmRlcl9j b3B5ID0gaWd0X2dldF9yZW5kZXJfY29weWZ1bmMoZGF0YS5kZXZpZCk7DQo+IA0KPiAgCQlkYXRh LmJvcHMgPSBidWZfb3BzX2NyZWF0ZShkYXRhLmRybV9mZCk7DQo+ICsJCWRhdGEuaWJiID0gaW50 ZWxfYmJfY3JlYXRlKGRhdGEuZHJtX2ZkLCA0MDk2KTsNCj4gKw0KPiArCQlkYXRhLm1heF9od19z dHJpZGVfdGVzdCA9IGZhbHNlOw0KPiAgCX0NCj4gDQo+ICAJLyoNCj4gQEAgLTczMiw2ICs4MTEs NjUgQEAgaWd0X21haW4NCj4gIAkJfQ0KPiAgCX0NCj4gDQo+ICsJZGF0YS5tYXhfaHdfc3RyaWRl X3Rlc3QgPSB0cnVlOw0KPiArCS8vIFJ1biBtYXggaHcgc3RyaWRlIGxlbmd0aCB0ZXN0cyBvbiBn ZW41IGFuZCBsYXRlci4NCj4gKwlmb3IgKGludCBpID0gMDsgaSA8IEFSUkFZX1NJWkUobW9kaWZp ZXJzKTsgaSsrKSB7DQo+ICsJCWRhdGEubW9kaWZpZXIgPSBtb2RpZmllcnNbaV0ubW9kaWZpZXI7 DQo+ICsNCj4gKwkJc2V0X21heF9od19zdHJpZGUoJmRhdGEpOw0KPiArDQo+ICsJCWZvciAoaW50 IGwgPSAwOyBsIDwgQVJSQVlfU0laRShmbGlwdGFiKTsgbCsrKSB7DQo+ICsJCQlmb3IgKGludCBq ID0gMDsgaiA8IEFSUkFZX1NJWkUoZm9ybWF0cyk7IGorKykgew0KPiArCQkJCS8qDQo+ICsJCQkJ KiB0cnkgb25seSB0aG9zZSBmb3JtYXRzIHdoaWNoIGNhbiBzaG93IGZ1bGwgbGVuZ3RoLg0KPiAr CQkJCSogSGVyZSAzMksgaXMgdXNlZCB0byBoYXZlIENJIHRlc3QgcmVzdWx0cyBjb25zaXN0ZW50 DQo+ICsJCQkJKiBmb3IgYWxsIHBsYXRmb3JtcywgMzJLIGlzIHNtYWxsZXN0IG51bWJlciBwb3Nz YmlseQ0KPiArCQkJCSogY29taW5nIHRvIGRhdGEuaHdfc3RyaWRlIGZyb20gYWJvdmUNCj4gc2V0 X21heF9od19zdHJpZGUoKQ0KPiArCQkJCSovDQo+ICsJCQkJaWYgKDMyNzY4IC8gKGZvcm1hdHNb al0uYnBwID4+IDMpID4gODE5MikNCj4gKwkJCQkJY29udGludWU7DQo+ICsNCj4gKwkJCQlkYXRh LmZvcm1hdCA9IGZvcm1hdHNbal0uZm9ybWF0Ow0KPiArDQo+ICsJCQkJZm9yIChpbnQgayA9IDA7 IGsgPCBBUlJBWV9TSVpFKHJvdGF0aW9ucyk7IGsrKykgew0KPiArCQkJCQlkYXRhLnJvdGF0aW9u ID0gcm90YXRpb25zW2tdLnJvdGF0aW9uIHwNCj4gZmxpcHRhYltsXS5mbGlwOw0KPiArDQo+ICsJ CQkJCS8vIHRoaXMgY29tYmluYXRpb24gd2lsbCBuZXZlciBoYXBwZW4uDQo+ICsJCQkJCWlmICgo ZGF0YS5yb3RhdGlvbiAmIChJR1RfUk9UQVRJT05fOTAgfA0KPiBJR1RfUk9UQVRJT05fMjcwKSkg fHwNCj4gKwkJCQkJCShmbGlwdGFiW2xdLmZsaXAgPT0gSUdUX1JFRkxFQ1RfWA0KPiAmJiBtb2Rp ZmllcnNbaV0ubW9kaWZpZXIgPT0gRFJNX0ZPUk1BVF9NT0RfTElORUFSKSkNCj4gKwkJCQkJCWNv bnRpbnVlOw0KPiArDQo+ICsJCQkJCWlndF9kZXNjcmliZSgidGVzdCBtYXhpbXVtIGhhcmR3YXJl DQo+IHN1cHBvcnRlZCBzdHJpZGUgbGVuZ3RoIGZvciBnaXZlbiBicHAgYW5kIG1vZGlmaWVycy4i KTsNCj4gKwkJCQkJaWd0X3N1YnRlc3RfZigiJXMtbWF4LWh3LXN0cmlkZS0lZGJwcC0NCj4gcm90 YXRlLSVkJXMiLCBtb2RpZmllcnNbaV0ubmFtZSwNCj4gKwkJCQkJCWZvcm1hdHNbal0uYnBwLCBy b3RhdGlvbnNba10uYW5nbGUsDQo+IGZsaXB0YWJbbF0uZmxpcG5hbWUpIHsNCj4gKw0KPiAJaWd0 X3JlcXVpcmUoaW50ZWxfZGlzcGxheV92ZXIoaW50ZWxfZ2V0X2RybV9kZXZpZChkYXRhLmRybV9m ZCkpID49IDUpOw0KPiArCQkJCQkJaWYgKGRhdGEuZm9ybWF0X292ZXJyaWRlICE9IDApIHsNCj4g KwkJCQkJCQlpZ3RfaW5mbygidXNpbmcgZm9ybWF0DQo+IG92ZXJyaWRlIGZvdXJjYyAlLjRzXG4i LCAoY2hhciAqKSZkYXRhLmZvcm1hdF9vdmVycmlkZSk7DQo+ICsJCQkJCQkJZGF0YS5mb3JtYXQg PQ0KPiBkYXRhLmZvcm1hdF9vdmVycmlkZTsNCj4gKwkJCQkJCX0NCj4gKwkJCQkJCWlmIChkYXRh LnN0cmlkZV9vdmVycmlkZSAhPSAwKSB7DQo+ICsJCQkJCQkJaWd0X2luZm8oInVzaW5nIEZCIHdp ZHRoDQo+IG92ZXJyaWRlICUuZFxuIiwgZGF0YS5zdHJpZGVfb3ZlcnJpZGUpOw0KPiArCQkJCQkJ CWRhdGEuaHdfc3RyaWRlID0NCj4gZGF0YS5zdHJpZGVfb3ZlcnJpZGU7DQo+ICsJCQkJCQkJZGF0 YS5tYXhfaHdfZmJfd2lkdGggPQ0KPiBkYXRhLnN0cmlkZV9vdmVycmlkZTsNCj4gKw0KPiArCQkJ CQkJfSBlbHNlIHsNCj4gKwkJCQkJCQlkYXRhLm1heF9od19mYl93aWR0aCA9DQo+IG1pbihkYXRh Lmh3X3N0cmlkZSAvIChmb3JtYXRzW2pdLmJwcCA+PiAzKSwgZGF0YS5tYXhfZmJfd2lkdGgpOw0K PiArCQkJCQkJfQ0KPiArDQo+ICsJCQkJCQlpZ3RfcmVxdWlyZShkYXRhLmZvcm1hdCA9PQ0KPiBE Uk1fRk9STUFUX0M4IHx8DQo+ICsNCj4gCWlndF9mYl9zdXBwb3J0ZWRfZm9ybWF0KGRhdGEuZm9y bWF0KSk7DQo+ICsNCj4gCWlndF9yZXF1aXJlKGlndF9kaXNwbGF5X2hhc19mb3JtYXRfbW9kKCZk YXRhLmRpc3BsYXksIGRhdGEuZm9ybWF0LA0KPiBkYXRhLm1vZGlmaWVyKSk7DQo+ICsJCQkJCQl0 ZXN0X3NjYW5vdXQoJmRhdGEpOw0KPiArCQkJCQl9DQo+ICsJCQkJfQ0KPiArDQo+ICsJCQkJaWd0 X2ZpeHR1cmUNCj4gKwkJCQkJY2xlYW51cF9mYigmZGF0YSk7DQo+ICsJCQl9DQo+ICsJCX0NCj4g Kwl9DQo+ICsJZGF0YS5tYXhfaHdfc3RyaWRlX3Rlc3QgPSBmYWxzZTsNCj4gKw0KPiAgCWlndF9m aXh0dXJlIHsNCj4gIAkJaWd0X2Rpc3BsYXlfZmluaSgmZGF0YS5kaXNwbGF5KTsNCj4gIAkJYnVm X29wc19kZXN0cm95KGRhdGEuYm9wcyk7DQo+IC0tDQo+IDIuMjUuMQ0KDQpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdApp Z3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK