From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id F32D26E0B8 for ; Wed, 3 Jul 2019 08:24:05 +0000 (UTC) From: "Ser, Simon" Date: Wed, 3 Jul 2019 08:24:02 +0000 Message-ID: References: <20190702125038.21621-1-simon.ser@intel.com> <20190702125038.21621-5-simon.ser@intel.com> <20190702155103.GU5942@intel.com> In-Reply-To: <20190702155103.GU5942@intel.com> Content-Language: en-US Content-ID: <97250E1C2D83044C8F36AF11D054AE00@intel.com> MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t 5/5] lib/igt_kms: use igt_edid to generate a 4K EDID 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: "ville.syrjala@linux.intel.com" Cc: "igt-dev@lists.freedesktop.org" , "Peres, Martin" List-ID: VGhhbmtzIGZvciB5b3VyIHJldmlld3MsIHRoZXNlIGFyZSBnb29kIHBvaW50cyENCg0KUmVwbGll cyBpbmxpbmUuDQoNCk9uIFR1ZSwgMjAxOS0wNy0wMiBhdCAxODo1MSArMDMwMCwgVmlsbGUgU3ly asOkbMOkIHdyb3RlOg0KPiBPbiBUdWUsIEp1bCAwMiwgMjAxOSBhdCAwMzo1MDozOFBNICswMzAw LCBTaW1vbiBTZXIgd3JvdGU6DQo+ID4gVGhlIG5ldyBFRElEIGhhcyBiZWVuIGJ5dGUtYnktYnl0 ZSBjaGVja2VkIHRvIGJlIGV4YWN0bHkgdGhlIHNhbWUgYXMgYmVmb3JlLg0KPiA+IA0KPiA+IFNp Z25lZC1vZmYtYnk6IFNpbW9uIFNlciA8c2ltb24uc2VyQGludGVsLmNvbT4NCj4gPiAtLS0NCj4g PiAgbGliL2lndF9rbXMuYyAgICAgICAgICAgICAgIHwgMTA3ICsrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICBsaWIvaWd0X2ttcy5oICAgICAgICAgICAgICAgfCAgIDIg Ky0NCj4gPiAgbGliL3Rlc3RzL2lndF9lZGlkLmMgICAgICAgIHwgICAxICsNCj4gPiAgbGliL3Rl c3RzL2lndF9oZG1pX2luamVjdC5jIHwgICAxIC0NCj4gPiAgdGVzdHMva21zX2hkbWlfaW5qZWN0 LmMgICAgIHwgICA5ICstLQ0KPiA+ICA1IGZpbGVzIGNoYW5nZWQsIDY0IGluc2VydGlvbnMoKyks IDU2IGRlbGV0aW9ucygtKQ0KPiA+IA0KPiA+IGRpZmYgLS1naXQgYS9saWIvaWd0X2ttcy5jIGIv bGliL2lndF9rbXMuYw0KPiA+IGluZGV4IDQ1Yzc5YTM4MGRhZi4uNDQ0NjA1ZTRiMTEwIDEwMDY0 NA0KPiA+IC0tLSBhL2xpYi9pZ3Rfa21zLmMNCj4gPiArKysgYi9saWIvaWd0X2ttcy5jDQo+ID4g QEAgLTI4NCw2ICsyODQsNjYgQEAgY29uc3QgdW5zaWduZWQgY2hhciAqaWd0X2ttc19nZXRfZHBf YXVkaW9fZWRpZCh2b2lkKQ0KPiA+ICAJcmV0dXJuIHJhd19lZGlkOw0KPiA+ICB9DQo+ID4gIA0K PiA+ICtzdGF0aWMgY29uc3QgdWludDhfdCBlZGlkXzRrX3N2ZHNbXSA9IHsNCj4gPiArCTMyIHwg Q0VBX1NWRF9OQVRJVkUsIC8qIDEwODBwIEAgMjRIeiAobmF0aXZlKSAqLw0KPiA+ICsJNSwgICAg ICAgICAgICAgICAgICAgLyogMTA4MGkgQCA2MEh6ICovDQo+ID4gKwkyMCwgICAgICAgICAgICAg ICAgICAvKiAxMDgwaSBAIDUwSHogKi8NCj4gPiArCTQsICAgICAgICAgICAgICAgICAgIC8qIDcy MHAgQCA2MEh6ICovDQo+ID4gKwkxOSwgICAgICAgICAgICAgICAgICAvKiA3MjBwIEAgNTBIeiAq Lw0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArY29uc3QgdW5zaWduZWQgY2hhciAqaWd0X2ttc19nZXRf NGtfZWRpZCh2b2lkKQ0KPiA+ICt7DQo+ID4gKwlzdGF0aWMgdW5zaWduZWQgY2hhciByYXdfZWRp ZFsyNTZdOw0KPiA+ICsJc3RydWN0IGVkaWQgKmVkaWQ7DQo+ID4gKwlzdHJ1Y3QgZWRpZF9leHQg KmVkaWRfZXh0Ow0KPiA+ICsJc3RydWN0IGVkaWRfY2VhICplZGlkX2NlYTsNCj4gPiArCWNoYXIg KmNlYV9kYXRhOw0KPiA+ICsJc3RydWN0IGVkaWRfY2VhX2RhdGFfYmxvY2sgKmJsb2NrOw0KPiA+ ICsJY2hhciByYXdfaGRtaVtIRE1JX1ZTRF9NSU5fU0laRSArIDZdID0gezB9Ow0KPiA+ICsJc3Ry dWN0IGhkbWlfdnNkICpoZG1pOw0KPiA+ICsJc2l6ZV90IGNlYV9kYXRhX3NpemUgPSAwOw0KPiA+ ICsJc2l6ZV90IHN2ZHNfbGVuOw0KPiA+ICsNCj4gPiArCS8qIENyZWF0ZSBhIG5ldyBFRElEIGZy b20gdGhlIGJhc2UgSUdUIEVESUQsIGFuZCBhZGQgYW4NCj4gPiArCSAqIGV4dGVuc2lvbiB0aGF0 IGFkdmVydGlzZXMgNEsgc3VwcG9ydC4gKi8NCj4gPiArCWVkaWQgPSAoc3RydWN0IGVkaWQgKikg cmF3X2VkaWQ7DQo+ID4gKwltZW1jcHkoZWRpZCwgaWd0X2ttc19nZXRfYmFzZV9lZGlkKCksIHNp emVvZihzdHJ1Y3QgZWRpZCkpOw0KPiANCj4gVGhhdCBvbmx5IGNvbnRhaW5zIHRoZSBiYXNlIGJs b2NrLiBBcmUgd2UgbGVhdmluZyBzdGFjayBnYXJiYWdlIGluIHRoZQ0KPiBleHRlbnNpb24gYmxv Y2s/DQoNCnJhd19lZGlkIGlzIHplcm8taW5pdGlhbGl6ZWQuIGVkaWQgaXMganVzdCBhIHBvaW50 ZXIgdG8gcmF3X2VkaWQuDQoNCj4gPiArCWVkaWQtPmV4dGVuc2lvbnNfbGVuID0gMTsNCj4gPiAr CWVkaWRfZXh0ID0gJmVkaWQtPmV4dGVuc2lvbnNbMF07DQo+ID4gKwllZGlkX2NlYSA9ICZlZGlk X2V4dC0+ZGF0YS5jZWE7DQo+ID4gKwljZWFfZGF0YSA9IGVkaWRfY2VhLT5kYXRhOw0KPiA+ICsN Cj4gPiArCS8qIFNob3J0IFZpZGVvIERlc2NyaXB0b3IgKi8NCj4gPiArCWJsb2NrID0gKHN0cnVj dCBlZGlkX2NlYV9kYXRhX2Jsb2NrICopICZjZWFfZGF0YVtjZWFfZGF0YV9zaXplXTsNCj4gPiAr CXN2ZHNfbGVuID0gc2l6ZW9mKGVkaWRfNGtfc3ZkcykgLyBzaXplb2YoZWRpZF80a19zdmRzWzBd KTsNCj4gDQo+IEkgdGhpbmsgd2UgaGF2ZSBhbiBBUlJBWV9TSVpFKCkuIEFsdGhvdWdoIHNpbmNl IHdlIGtub3cgdGhlc2UgYXJlIGJ5dGVzDQo+IG1heWJlIGp1c3QgYSBzaXplb2YoKSB3b3VsZCBi ZSBnb29kIGVub3VnaC4NCg0KRmFpcg0KDQo+ID4gKwljZWFfZGF0YV9zaXplICs9IGVkaWRfY2Vh X2RhdGFfYmxvY2tfc2V0X3N2ZChibG9jaywgZWRpZF80a19zdmRzLA0KPiA+ICsJCQkJCQkgICAg IHN2ZHNfbGVuKTsNCj4gPiArDQo+ID4gKwkvKiBWZW5kb3IgU3BlY2lmaWMgRGF0YSBibG9jayAq Lw0KPiA+ICsJaGRtaSA9IChzdHJ1Y3QgaGRtaV92c2QgKikgcmF3X2hkbWk7DQo+ID4gKwloZG1p LT5zcmNfcGh5X2FkZHJbMF0gPSAweDEwOw0KPiA+ICsJaGRtaS0+c3JjX3BoeV9hZGRyWzFdID0g MHgwMDsNCj4gPiArCWhkbWktPmZsYWdzMSA9IDA7DQo+ID4gKwloZG1pLT5tYXhfdGRtc19jbG9j ayA9IDA7DQo+ID4gKwloZG1pLT5mbGFnczIgPSBIRE1JX1ZTRF9WSURFT19QUkVTRU5UOw0KPiA+ ICsJaGRtaS0+ZGF0YVswXSA9IDB4MDA7IC8qIEhETUkgdmlkZW8gZmxhZ3MgKi8NCj4gPiArCWhk bWktPmRhdGFbMV0gPSAxIDw8IDU7IC8qIDEgVklDIGVudHJ5LCAwIDNEIGVudHJpZXMgKi8NCj4g PiArCWhkbWktPmRhdGFbMl0gPSAweDAxOyAvKiAyMTYwcCwgc3BlY2lmaWVkIGFzIHNob3J0IGRl c2NyaXB0b3IgKi8NCj4gPiArDQo+ID4gKwlibG9jayA9IChzdHJ1Y3QgZWRpZF9jZWFfZGF0YV9i bG9jayAqKSAmY2VhX2RhdGFbY2VhX2RhdGFfc2l6ZV07DQo+ID4gKwljZWFfZGF0YV9zaXplICs9 IGVkaWRfY2VhX2RhdGFfYmxvY2tfc2V0X2hkbWlfdnNkKGJsb2NrLCBoZG1pLA0KPiA+ICsJCQkJ CQkJICBzaXplb2YocmF3X2hkbWkpKTsNCj4gPiArDQo+ID4gKwlhc3NlcnQoY2VhX2RhdGFfc2l6 ZSA8PSBzaXplb2YoZWRpZF9jZWEtPmRhdGEpKTsNCj4gPiArDQo+ID4gKwllZGlkX2V4dF9zZXRf Y2VhKGVkaWRfZXh0LCBjZWFfZGF0YV9zaXplLCAwLCAwKTsNCj4gPiArDQo+ID4gKwllZGlkX3Vw ZGF0ZV9jaGVja3N1bShlZGlkKTsNCj4gPiArCWVkaWRfZXh0X3VwZGF0ZV9jZWFfY2hlY2tzdW0o ZWRpZF9leHQpOw0KPiA+ICsJcmV0dXJuIHJhd19lZGlkOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICBj b25zdCBjaGFyICogY29uc3QgaWd0X3BsYW5lX3Byb3BfbmFtZXNbSUdUX05VTV9QTEFORV9QUk9Q U10gPSB7DQo+ID4gIAlbSUdUX1BMQU5FX1NSQ19YXSA9ICJTUkNfWCIsDQo+ID4gIAlbSUdUX1BM QU5FX1NSQ19ZXSA9ICJTUkNfWSIsDQo+ID4gQEAgLTEzNDgsOCArMTQwOCw2IEBAIHN0cnVjdCBl ZGlkX2Jsb2NrIHsNCj4gPiAgICAgIHVuc2lnbmVkIGNoYXIgKmRhdGE7DQo+ID4gIH07DQo+ID4g IA0KPiA+IC0jZGVmaW5lIERURF9TVVBQT1JUU19BVURJTyAxPDw2DQo+ID4gLQ0KPiA+ICBzdGF0 aWMgc3RydWN0IGVkaWRfYmxvY2sNCj4gPiAgaW5pdF9jZWFfYmxvY2soY29uc3QgdW5zaWduZWQg Y2hhciAqZWRpZCwgc2l6ZV90IGxlbmd0aCwNCj4gPiAgCSAgICAgICB1bnNpZ25lZCBjaGFyICpu ZXdfZWRpZF9wdHJbXSwgc2l6ZV90ICpuZXdfbGVuZ3RoLA0KPiA+IEBAIC0xNDM3LDUxICsxNDk1 LDYgQEAgdm9pZCBrbXN0ZXN0X2VkaWRfYWRkXzNkKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmVkaWQs IHNpemVfdCBsZW5ndGgsDQo+ID4gIAl1cGRhdGVfZWRpZF9jc3VtKG5ld19lZGlkLmRhdGEsIGxl bmd0aCk7DQo+ID4gIH0NCj4gPiAgDQo+ID4gLS8qKg0KPiA+IC0gKiBrbXN0ZXN0X2VkaWRfYWRk XzRrOg0KPiA+IC0gKiBAZWRpZDogYW4gZXhpc3RpbmcgdmFsaWQgZWRpZCBibG9jaw0KPiA+IC0g KiBAbGVuZ3RoOiBsZW5ndGggb2YgQGVkaWQNCj4gPiAtICogQG5ld19lZGlkX3B0cjogcG9pbnRl ciB0byB3aGVyZSB0aGUgbmV3IGVkaWQgd2lsbCBiZSBwbGFjZWQNCj4gPiAtICogQG5ld19sZW5n dGg6IHBvaW50ZXIgdG8gdGhlIHNpemUgb2YgdGhlIG5ldyBlZGlkDQo+ID4gLSAqDQo+ID4gLSAq IE1ha2VzIGEgY29weSBvZiBhbiBleGlzdGluZyBlZGlkIGJsb2NrIGFuZCBhZGRzIGFuIGV4dGVu c2lvbiBpbmRpY2F0aW5nDQo+ID4gLSAqIGEgSERNSSA0SyBtb2RlIGluIHZzZGIuDQo+ID4gLSAq Lw0KPiA+IC12b2lkIGttc3Rlc3RfZWRpZF9hZGRfNGsoY29uc3QgdW5zaWduZWQgY2hhciAqZWRp ZCwgc2l6ZV90IGxlbmd0aCwNCj4gPiAtCQkJIHVuc2lnbmVkIGNoYXIgKm5ld19lZGlkX3B0cltd LCBzaXplX3QgKm5ld19sZW5ndGgpDQo+ID4gLXsNCj4gPiAtCWNoYXIgdnNkYl9ibG9ja19sZW4g PSAxMjsNCj4gPiAtCXN0cnVjdCBlZGlkX2Jsb2NrIG5ld19lZGlkID0gaW5pdF9jZWFfYmxvY2so ZWRpZCwgbGVuZ3RoLCBuZXdfZWRpZF9wdHIsDQo+ID4gLQkJCQkJCSAgICBuZXdfbGVuZ3RoLCB2 c2RiX2Jsb2NrX2xlbiwNCj4gPiAtCQkJCQkJICAgIDApOw0KPiA+IC0JaW50IHBvcyA9IG5ld19l ZGlkLnBvczsNCj4gPiAtDQo+ID4gLQkvKiB2c2RiIGJsb2NrICggaWQgfCBsZW5ndGggKSAqLw0K PiA+IC0JbmV3X2VkaWQuZGF0YVtwb3MrK10gPSAzIDw8IDUgfCAodnNkYl9ibG9ja19sZW4gLSAx KTsNCj4gPiAtCS8qIHJlZ2lzdHJhdGlvbiBpZCAqLw0KPiA+IC0JbmV3X2VkaWQuZGF0YVtwb3Mr K10gPSAweDM7DQo+ID4gLQluZXdfZWRpZC5kYXRhW3BvcysrXSA9IDB4YzsNCj4gPiAtCW5ld19l ZGlkLmRhdGFbcG9zKytdID0gMHgwOw0KPiA+IC0JLyogc291cmNlIHBoeXNpY2FsIGFkZHJlc3Mg Ki8NCj4gPiAtCW5ld19lZGlkLmRhdGFbcG9zKytdID0gMHgxMDsNCj4gPiAtCW5ld19lZGlkLmRh dGFbcG9zKytdID0gMHgwMDsNCj4gPiAtCS8qIFN1cHBvcnRzX0FJIC4uLiBldGMgKi8NCj4gPiAt CW5ld19lZGlkLmRhdGFbcG9zKytdID0gMHgwMDsNCj4gPiAtCS8qIE1heCBUTURTIENsb2NrICov DQo+ID4gLQluZXdfZWRpZC5kYXRhW3BvcysrXSA9IDB4MDA7DQo+ID4gLQkvKiBMYXRlbmN5IHBy ZXNlbnQsIEhETUkgVmlkZW8gUHJlc2VudCAqLw0KPiA+IC0JbmV3X2VkaWQuZGF0YVtwb3MrK10g PSAweDIwOw0KPiA+IC0JLyogSERNSSBWaWRlbyAqLw0KPiA+IC0JbmV3X2VkaWQuZGF0YVtwb3Mr K10gPSAweDAwOyAvKiAzRCBwcmVzZW50ICovDQo+ID4gLQ0KPiA+IC0JLyogSERNSSBNT0RFIExF TiAtLSBob3cgbWFueSBlbnRyaWVzICovDQo+ID4gLQluZXdfZWRpZC5kYXRhW3BvcysrXSA9IDB4 MjA7DQo+ID4gLQkvKiAyMTYwcCwgc3BlY2lmaWVkIGFzIHNob3J0IGRlc2NyaXB0b3IgKi8NCj4g PiAtCW5ld19lZGlkLmRhdGFbcG9zKytdID0gMHgwMTsNCj4gPiAtDQo+ID4gLQl1cGRhdGVfZWRp ZF9jc3VtKG5ld19lZGlkLmRhdGEsIGxlbmd0aCk7DQo+ID4gLX0NCj4gPiAtDQo+ID4gIC8qKg0K PiA+ICAgKiBrbXN0ZXN0X3Vuc2V0X2FsbF9jcnRjczoNCj4gPiAgICogQGRybV9mZDogdGhlIERS TSBmZA0KPiA+IGRpZmYgLS1naXQgYS9saWIvaWd0X2ttcy5oIGIvbGliL2lndF9rbXMuaA0KPiA+ IGluZGV4IGY3MjUwODY0MDcxMi4uMjAzNzE5ODc4ZDg2IDEwMDY0NA0KPiA+IC0tLSBhL2xpYi9p Z3Rfa21zLmgNCj4gPiArKysgYi9saWIvaWd0X2ttcy5oDQo+ID4gQEAgLTE5NSw3ICsxOTUsNiBA QCBlbnVtIGludGVsX2Jyb2FkY2FzdF9yZ2JfbW9kZSB7DQo+ID4gIGJvb2wga21zdGVzdF9mb3Jj ZV9jb25uZWN0b3IoaW50IGZkLCBkcm1Nb2RlQ29ubmVjdG9yICpjb25uZWN0b3IsDQo+ID4gIAkJ CSAgICAgZW51bSBrbXN0ZXN0X2ZvcmNlX2Nvbm5lY3Rvcl9zdGF0ZSBzdGF0ZSk7DQo+ID4gIHZv aWQga21zdGVzdF9lZGlkX2FkZF8zZChjb25zdCB1bnNpZ25lZCBjaGFyICplZGlkLCBzaXplX3Qg bGVuZ3RoLCB1bnNpZ25lZCBjaGFyICpuZXdfZWRpZF9wdHJbXSwgc2l6ZV90ICpuZXdfbGVuZ3Ro KTsNCj4gPiAtdm9pZCBrbXN0ZXN0X2VkaWRfYWRkXzRrKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmVk aWQsIHNpemVfdCBsZW5ndGgsIHVuc2lnbmVkIGNoYXIgKm5ld19lZGlkX3B0cltdLCBzaXplX3Qg Km5ld19sZW5ndGgpOw0KPiA+ICB2b2lkIGttc3Rlc3RfZm9yY2VfZWRpZChpbnQgZHJtX2ZkLCBk cm1Nb2RlQ29ubmVjdG9yICpjb25uZWN0b3IsDQo+ID4gIAkJCWNvbnN0IHVuc2lnbmVkIGNoYXIg KmVkaWQpOw0KPiA+ICANCj4gPiBAQCAtNzYzLDYgKzc2Miw3IEBAIGNvbnN0IHVuc2lnbmVkIGNo YXIgKmlndF9rbXNfZ2V0X2Jhc2VfZWRpZCh2b2lkKTsNCj4gPiAgY29uc3QgdW5zaWduZWQgY2hh ciAqaWd0X2ttc19nZXRfYWx0X2VkaWQodm9pZCk7DQo+ID4gIGNvbnN0IHVuc2lnbmVkIGNoYXIg KmlndF9rbXNfZ2V0X2hkbWlfYXVkaW9fZWRpZCh2b2lkKTsNCj4gPiAgY29uc3QgdW5zaWduZWQg Y2hhciAqaWd0X2ttc19nZXRfZHBfYXVkaW9fZWRpZCh2b2lkKTsNCj4gPiArY29uc3QgdW5zaWdu ZWQgY2hhciAqaWd0X2ttc19nZXRfNGtfZWRpZCh2b2lkKTsNCj4gPiAgDQo+ID4gIHN0cnVjdCB1 ZGV2X21vbml0b3IgKmlndF93YXRjaF9ob3RwbHVnKHZvaWQpOw0KPiA+ICBib29sIGlndF9ob3Rw bHVnX2RldGVjdGVkKHN0cnVjdCB1ZGV2X21vbml0b3IgKm1vbiwNCj4gPiBkaWZmIC0tZ2l0IGEv bGliL3Rlc3RzL2lndF9lZGlkLmMgYi9saWIvdGVzdHMvaWd0X2VkaWQuYw0KPiA+IGluZGV4IGE4 NDdkZjI3MjUyNS4uMWE3OGIzOGE5NDViIDEwMDY0NA0KPiA+IC0tLSBhL2xpYi90ZXN0cy9pZ3Rf ZWRpZC5jDQo+ID4gKysrIGIvbGliL3Rlc3RzL2lndF9lZGlkLmMNCj4gPiBAQCAtNzYsNiArNzYs NyBAQCBpZ3Rfc2ltcGxlX21haW4NCj4gPiAgCQl7ICJiYXNlIiwgaWd0X2ttc19nZXRfYmFzZV9l ZGlkLCAwIH0sDQo+ID4gIAkJeyAiYWx0IiwgaWd0X2ttc19nZXRfYWx0X2VkaWQsIDAgfSwNCj4g PiAgCQl7ICJoZG1pX2F1ZGlvIiwgaWd0X2ttc19nZXRfaGRtaV9hdWRpb19lZGlkLCAxIH0sDQo+ ID4gKwkJeyAiNGsiLCBpZ3Rfa21zX2dldF80a19lZGlkLCAxIH0sDQo+ID4gIAkJezB9LA0KPiA+ ICAJfSwgKmY7DQo+ID4gIAljb25zdCB1bnNpZ25lZCBjaGFyICplZGlkOw0KPiA+IGRpZmYgLS1n aXQgYS9saWIvdGVzdHMvaWd0X2hkbWlfaW5qZWN0LmMgYi9saWIvdGVzdHMvaWd0X2hkbWlfaW5q ZWN0LmMNCj4gPiBpbmRleCAyNTM0YjFhMjNhY2IuLmM3MGMzMTk1Y2IxZCAxMDA2NDQNCj4gPiAt LS0gYS9saWIvdGVzdHMvaWd0X2hkbWlfaW5qZWN0LmMNCj4gPiArKysgYi9saWIvdGVzdHMvaWd0 X2hkbWlfaW5qZWN0LmMNCj4gPiBAQCAtNzIsNyArNzIsNiBAQCBpZ3Rfc2ltcGxlX21haW4NCj4g PiAgCQloZG1pX2luamVjdF9mdW5jIGluamVjdDsNCj4gPiAgCX0gZnVuY3NbXSA9IHsNCj4gPiAg CQl7ICIzRCIsIGttc3Rlc3RfZWRpZF9hZGRfM2QgfSwNCj4gPiAtCQl7ICI0ayIsIGttc3Rlc3Rf ZWRpZF9hZGRfNGsgfSwNCj4gPiAgCQl7IE5VTEwsIE5VTEwgfSwNCj4gPiAgCX0sICpmOw0KPiA+ ICANCj4gPiBkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2hkbWlfaW5qZWN0LmMgYi90ZXN0cy9rbXNf aGRtaV9pbmplY3QuYw0KPiA+IGluZGV4IDlhOTY4ZmE5ZTUwZS4uNjAxOThmNTI5ODE3IDEwMDY0 NA0KPiA+IC0tLSBhL3Rlc3RzL2ttc19oZG1pX2luamVjdC5jDQo+ID4gKysrIGIvdGVzdHMva21z X2hkbWlfaW5qZWN0LmMNCj4gPiBAQCAtNzYsOCArNzYsNyBAQCBnZXRfY29ubmVjdG9yKGludCBk cm1fZmQsIGRybU1vZGVSZXMgKnJlcykNCj4gPiAgc3RhdGljIHZvaWQNCj4gPiAgaGRtaV9pbmpl Y3RfNGsoaW50IGRybV9mZCwgZHJtTW9kZUNvbm5lY3RvciAqY29ubmVjdG9yKQ0KPiA+ICB7DQo+ ID4gLQl1bnNpZ25lZCBjaGFyICplZGlkOw0KPiA+IC0Jc2l6ZV90IGxlbmd0aDsNCj4gPiArCWNv bnN0IHVuc2lnbmVkIGNoYXIgKmVkaWQ7DQo+ID4gIAlzdHJ1Y3Qga21zdGVzdF9jb25uZWN0b3Jf Y29uZmlnIGNvbmZpZzsNCj4gPiAgCWludCByZXQsIGNpZCwgaSwgY3J0Y19tYXNrID0gLTE7DQo+ ID4gIAlpbnQgZmJfaWQ7DQo+ID4gQEAgLTkwLDkgKzg5LDcgQEAgaGRtaV9pbmplY3RfNGsoaW50 IGRybV9mZCwgZHJtTW9kZUNvbm5lY3RvciAqY29ubmVjdG9yKQ0KPiA+ICAJLyogNEsgcmVxdWly ZXMgYXQgbGVhc3QgSFNXICovDQo+ID4gIAlpZ3RfcmVxdWlyZShJU19IQVNXRUxMKGRldmlkKSB8 fCBpbnRlbF9nZW4oZGV2aWQpID49IDgpOw0KPiA+ICANCj4gPiAtCWttc3Rlc3RfZWRpZF9hZGRf NGsoaWd0X2ttc19nZXRfYmFzZV9lZGlkKCksIEVESURfTEVOR1RILCAmZWRpZCwNCj4gPiAtCQkJ ICAgICZsZW5ndGgpOw0KPiA+IC0NCj4gPiArCWVkaWQgPSBpZ3Rfa21zX2dldF80a19lZGlkKCk7 DQo+ID4gIAlrbXN0ZXN0X2ZvcmNlX2VkaWQoZHJtX2ZkLCBjb25uZWN0b3IsIGVkaWQpOw0KPiA+ ICANCj4gPiAgCWlmICgha21zdGVzdF9mb3JjZV9jb25uZWN0b3IoZHJtX2ZkLCBjb25uZWN0b3Is IEZPUkNFX0NPTk5FQ1RPUl9PTikpDQo+ID4gQEAgLTEzNSw4ICsxMzIsNiBAQCBoZG1pX2luamVj dF80ayhpbnQgZHJtX2ZkLCBkcm1Nb2RlQ29ubmVjdG9yICpjb25uZWN0b3IpDQo+ID4gIA0KPiA+ ICAJa21zdGVzdF9mb3JjZV9jb25uZWN0b3IoZHJtX2ZkLCBjb25uZWN0b3IsIEZPUkNFX0NPTk5F Q1RPUl9VTlNQRUNJRklFRCk7DQo+ID4gIAlrbXN0ZXN0X2ZvcmNlX2VkaWQoZHJtX2ZkLCBjb25u ZWN0b3IsIE5VTEwpOw0KPiA+IC0NCj4gPiAtCWZyZWUoZWRpZCk7DQo+ID4gIH0NCj4gPiAgDQo+ ID4gIHN0YXRpYyB2b2lkDQo+ID4gLS0gDQo+ID4gMi4yMi4wDQo+ID4gDQo+ID4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gPiBpZ3QtZGV2IG1haWxp bmcgbGlzdA0KPiA+IGlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+ID4gaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2DQpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlz dAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=