From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 01E0D89FF6 for ; Wed, 31 Jul 2019 00:42:44 +0000 (UTC) From: "Tolakanahalli Pradeep, Madhumitha" Date: Wed, 31 Jul 2019 00:42:43 +0000 Message-ID: References: <20190717180257.32314-1-madhumitha.tolakanahalli.pradeep@intel.com> In-Reply-To: Content-Language: en-US Content-ID: <90A8582F06B4694D86B2EE41EEED5B56@intel.com> MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t] igt/tests/kms_dp_tiled_display.c : kms test file for display port tiled displays 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: "igt-dev@lists.freedesktop.org" , "Ser, Simon" Cc: "Navare, Manasi D" , "Latvala, Petri" List-ID: VGhhbmsgeW91IHZlcnkgbXVjaCBmb3IgeW91ciBjb21tZW50cywgU2ltb24uDQoNClRoYW5rcyBm b3IgcG9pbnRpbmcgb3V0IHRoZSBzdHlsZSByZWFsdGVkIGlzc3VlcywgSSBoYXZlIHRoZW0NCmZp eGVkICh0YWJzLCBgXGAgZXRjKS4NCg0KT24gVGh1LCAyMDE5LTA3LTE4IGF0IDA3OjQzICswMTAw LCBTZXIsIFNpbW9uIHdyb3RlOg0KPiBUaGFua3MgZm9yIHlvdXIgcGF0Y2ghIEhlcmUgYXJlIHNv bWUgY29tbWVudHMuDQo+IA0KPiBTdHlsZTogd2UgdXNlIHRhYnMgZm9yIGluZGVudGF0aW9uLCBu b3Qgc3BhY2VzLg0KPiANCj4gT24gV2VkLCAyMDE5LTA3LTE3IGF0IDExOjAyIC0wNzAwLCBNYWRo dW1pdGhhIFRvbGFrYW5haGFsbGkgUHJhZGVlcA0KPiB3cm90ZToNCj4gPiBUaGlzIHRlc3QgdmFs aWRhdGVzIHRoZSB0aWxlZCBEUCBkaXNwbGF5cyB0byBkaXNwbGF5IGEgdGVzdCBwYXR0ZXJuDQo+ ID4gc2VhbWxlc3NseQ0KPiA+IGFjcm9zcyB0aGUgdHdvIHRpbGVzLiBJdCB2YWxpZGF0ZXMgdGhl IHRyYW5zY29kZXIgcG9ydCBzeW5jIGZlYXR1cmUNCj4gPiBvbiBpOTE1IHRvDQo+ID4gZ2V0IGEg dGVhcmZyZWUgdGlsZWQgZGlzcGxheSBvdXRwdXQuDQo+ID4gDQo+ID4gUmVsYXRlZCBrZXJuZWwg d29yayBwYXRjaGVzIC0+IA0KPiA+IGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9z ZXJpZXMvNTk4MzcvI3JldjQuDQo+ID4gVGhpcyB0ZXN0IGNhbiBldmVudHVhbGx5IGJlIGV4dGVu ZGVkIHRvIGNvdmVyIHRpbGVkIGRpc3BsYXkgc3VwcG9ydA0KPiA+IG9uIG90aGVyIGNvbm5lY3Rv cg0KPiA+IHR5cGVzLg0KPiA+IA0KPiA+IENjOiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZh cmVAaW50ZWwuY29tPg0KPiA+IENjOiBQZXRyaSBMYXR2YWxhIDxwZXRyaS5sYXR2YWxhQGludGVs LmNvbT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBNYWRodW1pdGhhIFRvbGFrYW5haGFsbGkgUHJhZGVl cCA8DQo+ID4gbWFkaHVtaXRoYS50b2xha2FuYWhhbGxpLnByYWRlZXBAaW50ZWwuY29tPg0KPiAN Cj4gTmV4dCB0aW1lLCBjYW4geW91IHNlbmQgYm90aCBwYXRjaGVzIGluIG9uZSBnbz8gSXQncyBu b3QgcG9zc2libGUgdG8NCj4gY2hlY2sgd2hldGhlciB0aGlzIHRlc3QgYWN0dWFsbHkgcGFzc2Vz IENJLCBzaW5jZSBidWlsZCBmYWlscyAoc2VlDQo+IHRoZQ0KPiB0d28gYXV0b21hdGVkIGZhaWx1 cmUgcmVwbGllcykuDQoNCk15IGFwb2xvZ2llcywgSSBzaGFsbCBrZWVwIHRoYXQgaW4gbWluZCBm b3IgdGhlIG5leHQgdGltZS4NCg0KPiBUbyBsZWFybiBob3cgdG8gdXNlIGdpdC1zZW5kLWVtYWls LCB5b3UgY2FuIHJlYWQ6DQo+IGh0dHBzOi8vZ2l0LXNlbmQtZW1haWwuaW8vDQo+IA0KPiA+IC0t LQ0KPiA+ICB0ZXN0cy9NYWtlZmlsZS5zb3VyY2VzICAgICAgIHwgICAxICsNCj4gPiAgdGVzdHMv a21zX2RwX3RpbGVkX2Rpc3BsYXkuYyB8IDIzOQ0KPiA+ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrDQo+ID4gIHRlc3RzL21lc29uLmJ1aWxkICAgICAgICAgICAgfCAgIDEgKw0K PiA+ICAzIGZpbGVzIGNoYW5nZWQsIDI0MSBpbnNlcnRpb25zKCspDQo+ID4gIGNyZWF0ZSBtb2Rl IDEwMDY0NCB0ZXN0cy9rbXNfZHBfdGlsZWRfZGlzcGxheS5jDQo+ID4gDQo+ID4gZGlmZiAtLWdp dCBhL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzDQo+ID4g aW5kZXggMjUwZGJkMzMuLmU5MzczOTQxIDEwMDY0NA0KPiA+IC0tLSBhL3Rlc3RzL01ha2VmaWxl LnNvdXJjZXMNCj4gPiArKysgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzDQo+ID4gQEAgLTQwLDYg KzQwLDcgQEAgVEVTVFNfcHJvZ3MgPSBcDQo+ID4gIAlrbXNfY3Vyc29yX2VkZ2Vfd2FsayBcDQo+ ID4gIAlrbXNfY3Vyc29yX2xlZ2FjeSBcDQo+ID4gIAlrbXNfZHBfZHNjIFwNCj4gPiArCWttc19k cF90aWxlZF9kaXNwbGF5IFwNCj4gPiAgCWttc19kcmF3X2NyYyBcDQo+ID4gIAlrbXNfZmJjb25f ZmJ0IFwNCj4gPiAgCWttc19mZW5jZV9waW5fbGVhayBcDQo+ID4gZGlmZiAtLWdpdCBhL3Rlc3Rz L2ttc19kcF90aWxlZF9kaXNwbGF5LmMNCj4gPiBiL3Rlc3RzL2ttc19kcF90aWxlZF9kaXNwbGF5 LmMNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAwLi5hZjY0NDU3 Mw0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi90ZXN0cy9rbXNfZHBfdGlsZWRfZGlzcGxh eS5jDQo+ID4gQEAgLTAsMCArMSwyMzkgQEANCj4gPiArLyoNCj4gPiArICogQ29weXJpZ2h0IMKp IDIwMTggSW50ZWwgQ29ycG9yYXRpb24NCj4gPiArICoNCj4gPiArICogUGVybWlzc2lvbiBpcyBo ZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24NCj4gPiBvYnRhaW5p bmcgYQ0KPiA+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1l bnRhdGlvbiBmaWxlcyAodGhlDQo+ID4gIlNvZnR3YXJlIiksDQo+ID4gKyAqIHRvIGRlYWwgaW4g dGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0DQo+ID4g bGltaXRhdGlvbg0KPiA+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn ZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwNCj4gPiBzdWJsaWNlbnNlLA0KPiA+ICsgKiBhbmQvb3Ig c2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8NCj4g PiB3aG9tIHRoZQ0KPiA+ICsgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1Ympl Y3QgdG8gdGhlIGZvbGxvd2luZw0KPiA+IGNvbmRpdGlvbnM6DQo+ID4gKyAqDQo+ID4gKyAqIFRo ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlDQo+ID4g KGluY2x1ZGluZyB0aGUgbmV4dA0KPiA+ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVk IGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwNCj4gPiBwb3J0aW9ucyBvZiB0aGUNCj4gPiAr ICogU29mdHdhcmUuDQo+ID4gKyAqDQo+ID4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAi QVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELA0KPiA+IEVYUFJFU1MgT1INCj4g PiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElF UyBPRg0KPiA+IE1FUkNIQU5UQUJJTElUWSwNCj4gPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PDQo+ID4gRVZFTlQgU0hBTEwN Cj4gPiArICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBB TlkgQ0xBSU0sDQo+ID4gREFNQUdFUyBPUiBPVEhFUg0KPiA+ICsgKiBMSUFCSUxJVFksIFdIRVRI RVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwNCj4gPiBBUklT SU5HDQo+ID4gKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRX QVJFIE9SIFRIRSBVU0UgT1INCj4gPiBPVEhFUiBERUFMSU5HUw0KPiA+ICsgKiBJTiBUSEUgU09G VFdBUkUuDQo+ID4gKyAqDQo+ID4gKyAqIEF1dGhvcnM6DQo+ID4gKyAqICBNYWRodW1pdGhhIFRv bGFrYW5haGFsbGkgUHJhZGVlcA0KPiA+ICsgKiAgICAgIDxtYWRodW1pdGhhLnRvbGFrYW5haGFs bGkucHJhZGVlcEBpbnRlbC5jb20+DQo+ID4gKyAqDQo+ID4gKyAqIERpc3BsYXkgUG9ydCBUaWxl ZCBEaXNwbGF5IFRlc3QNCj4gPiArICogVGhpcyB0ZXN0IHBhcnNlcyB0aGUgdGlsZSBpbmZvcm1h dGlvbiBvZiB0aGUgY29ubmVjdG9ycyB0aGF0DQo+ID4gaGF2ZSBUSUxFDQo+ID4gKyAqIHByb3Bl cnR5IHNldCwgc2V0cyB1cCB0aGUgZnJhbWVidWZmZXIgd2l0aCBjb3JyZWN0IG9mZnNldHMNCj4g PiBjb3JyZXNwb25kaW5nIHRvDQo+ID4gKyAqIHRoZSB0aWxlIG9mZnNldHMgYW5kIGRvZXMgYW4g YXRvbWljIG1vZGVzZXQgd2l0aCB0d28gQ1JUQ3MgZm9yDQo+ID4gdHdvDQo+ID4gKyAqIGNvbm5l Y3RvcnMuDQo+ID4gKyAqDQo+ID4gKyAqIFRoaXMgdGVzdCBjdXJyZW50bHkgc3VwcG9ydHMgb25s eSBob3Jpem9udGFsbHkgdGlsZWQgZGlzcGxheXMsDQo+ID4gaW4gbGluZSB3aXRoDQo+ID4gKyAq IHRoZSBkaXNwbGF5cyBzdXBwb3J0ZWQgYnkgdGhlIGtlcm5lbCBhdCB0aGUgbW9tZW50Lg0KPiA+ ICsgKi8NCj4gPiArDQo+ID4gKyNpbmNsdWRlICJkcm1fbW9kZS5oIg0KPiA+ICsjaW5jbHVkZSAi ZHJtX2ZvdXJjYy5oIg0KPiA+ICsjaW5jbHVkZSAiaWd0LmgiDQo+ID4gKw0KPiA+ICt0eXBlZGVm IHN0cnVjdCB7DQo+ID4gKyAgICBpbnQgZHJtX2ZkOw0KPiA+ICsgICAgaW50IG51bV9oX3RpbGVz Ow0KPiA+ICsgICAgaWd0X2Rpc3BsYXlfdCAqZGlzcGxheTsNCj4gPiArICAgIGVudW0gaWd0X2Nv bW1pdF9zdHlsZSBjb21taXQ7DQo+ID4gK30gZGF0YV90Ow0KPiA+ICsNCj4gPiArdHlwZWRlZiBz dHJ1Y3Qgew0KPiA+ICsgICAgaWd0X291dHB1dF90ICpvdXRwdXQ7DQo+ID4gKyAgICBpZ3RfdGls ZV9pbmZvX3QgKnRpbGU7DQo+ID4gKyAgICBpZ3RfZmJfdCBmYl90ZXN0X3BhdHRlcm47DQo+ID4g KyAgICBkcm1Nb2RlQ29ubmVjdG9yUHRyIGNvbm5lY3RvcjsNCj4gPiArICAgIGVudW0gcGlwZSBw aXBlOw0KPiA+ICsgICAgZW51bSBpZ3RfY29tbWl0X3N0eWxlIGNvbW1pdDsNCj4gPiArfSBkYXRh X2Nvbm5lY3Rvcl90Ow0KPiA+ICsNCj4gPiArc3RhdGljIGlubGluZSBpbnQgZHJtX3Byb3BlcnR5 X2lzX3RpbGUoZHJtTW9kZVByb3BlcnR5UHRyIHByb3ApDQo+IA0KPiBJIHdvdWxkbid0IHBlcnNv bmFsbHkgdXNlIGBpbmxpbmVgLiBUaGUgY29tcGlsZXIgaXMgc21hcnRlciB0aGFuDQo+IGh1bWFu cw0KPiB0byBkZWNpZGUgd2hldGhlciBvciBub3QgYSBmdW5jdGlvbiBzaG91bGQgYmUgaW5saW5l ZC4NCj4gDQoNCk1ha2VzIHNlbnNlLCBJIHNoYWxsIHJlbW92ZSAnaW5saW5lJy4NCg0KPiA+ICt7 DQo+ID4gKwlyZXR1cm4oc3RyY21wKHByb3AtPm5hbWUgPyBwcm9wLT5uYW1lIDogIiIsICJUSUxF Iik/IDAgOiAxKTsNCj4gDQo+IFN0eWxlOiB1bm5lY2Vzc2FyeSBwYXJlbnRoZXNlcywgbWlzc2lu ZyBzcGFjZSBiZWZvcmUgYD9gLg0KPiANCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIHZvaWQg Z2V0X251bWJlcl9vZl9oX3RpbGVzKGRhdGFfdCAqZGF0YSkNCj4gDQo+IFdoYXQgaWYgbXVsdGlw bGUgdGlsZXMgYXJlIGNvbm5lY3RlZD8gU2hvdWxkbid0IHdlIHVzZSB0aWxlX2dyb3VwX2lkPw0K DQpDdXJyZW50bHksIHRoZSBoYXJkd2FyZSBkb2VzIG5vdCBzdXBwb3J0IGRpc3BsYXlzIHRoYXQg YXJlIGNvbm5lY3RlZCB0bw0KbXVsdGlwbGUgdGlsZXMuIE9ubHkgY29ubmVjdG9ycyB3aXRoIHRo ZSBzYW1lIHRpbGVfZ3JvdXBfaWQgYXJlDQpzdXBwb3J0ZWQgZm9yIHRpbGVkIG1vbml0b3JzLiAN Ckkgd2FzIHRoaW5raW5nIG9mIGFkZGluZyBhIGNoZWNrIGZvciBtYWtpbmcgc3VyZSBib3RoIHRo ZSBjb25uZWN0ZWQgRFANCmNvbm5lY3RvcnMgYmVsb25nIHRvIHRoZSBzYW1lIHRpbGUgZ3JvdXAg YXMgdGhhdCBtYWtlIHRoZSB0ZXN0IG1vcmUNCnJvYnVzdC4gQW55IHN1Z2dlc3Rpb25zIGZvciB0 aGUgc2FtZT8NCg0KPiANCj4gDQo+ID4gK3sNCj4gPiArICAgIGludCBpOw0KPiA+ICsgICAgZHJt TW9kZVJlcyAqcmVzOw0KPiA+ICsgICAgZHJtTW9kZUNvbm5lY3RvciAqY29ubmVjdG9yOw0KPiA+ ICsgICAgZHJtTW9kZVByb3BlcnR5UHRyIHByb3A7DQo+ID4gKyAgICBkcm1Nb2RlUHJvcGVydHlC bG9iUHRyIGJsb2I7DQo+ID4gKyAgICBpZ3RfdGlsZV9pbmZvX3QgdGlsZTsNCj4gPiArDQo+ID4g KyAgICBpZ3RfcmVxdWlyZShyZXMgPSBkcm1Nb2RlR2V0UmVzb3VyY2VzKGRhdGEtPmRybV9mZCkp Ow0KPiANCj4gVGhpcyBzaG91bGQgcHJvYmFibHkgYmUgaWd0X2Fzc2VydC4NCg0KWWVzLCBtYWtl cyBzZW5zZS4gSSBzaGFsbCB1cGRhdGUgaXQgZm9yIHJldjIuDQoNCj4gDQo+ID4gKyAgICBmb3Io aSA9IDA7IGkgPCByZXMtPmNvdW50X2Nvbm5lY3RvcnM7IGkrKykNCj4gPiArICAgIHsNCj4gDQo+ IFN0eWxlOiBubyBuZXdsaW5lIGJlZm9yZSBge2AgKG9ubHkgZm9yIGZ1bmN0aW9ucywgYXBwbGll cyB0byB0aGUNCj4gd2hvbGUNCj4gcGF0Y2gpLg0KPiANCj4gPiArICAgICAgICBjb25uZWN0b3Ig PSBkcm1Nb2RlR2V0Q29ubmVjdG9yQ3VycmVudChkYXRhLT5kcm1fZmQsIFwNCj4gDQo+IFN0eWxl OiB1bm5lY2Vzc2FyeSBgXGAuDQo+IA0KPiBXZSBjb3VsZCBpZ3RfYXNzZXJ0KGNvbm5lY3Rvciku DQoNClllcywgbWFrZXMgc2Vuc2UuIEkgc2hhbGwgdXBkYXRlIGl0IGZvciByZXYyLg0KDQo+IA0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy0N Cj4gPiA+Y29ubmVjdG9yc1tpXSk7DQo+ID4gKw0KPiA+ICsgICAgICAgIGlmKCEoKGNvbm5lY3Rv ci0+Y29ubmVjdGlvbiA9PSBEUk1fTU9ERV9DT05ORUNURUQpICYmDQo+ID4gKyAgICAgICAgICAg IChjb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlID09DQo+ID4gRFJNX01PREVfQ09OTkVDVE9SX0Rp c3BsYXlQb3J0KSkpDQo+ID4gKyAgICAgICAgICAgICAgICBjb250aW51ZTsNCj4gDQo+IFN0eWxl OiB3ZSBjYW4gaW52ZXJ0IHRoaXMgY29uZGl0aW9uIHRvIG1ha2UgY2xlYXJlci4NCg0KVGhpcyB3 YXMgZG9uZSB0byByZWR1Y2UgbmVzdGluZy4gV291bGQgeW91IHN1Z2dlc3Qgd2UgZG8gb3RoZXJ3 aXNlPw0KDQo+IA0KPiA+ICsNCj4gPiArICAgICAgICBmb3IoaSA9IDA7IGkgPCBjb25uZWN0b3It PmNvdW50X3Byb3BzOyBpKyspDQo+ID4gKyAgICAgICAgew0KPiA+ICsgICAgICAgICAgICBwcm9w ID0gZHJtTW9kZUdldFByb3BlcnR5KGRhdGEtPmRybV9mZCwgY29ubmVjdG9yLQ0KPiA+ID5wcm9w c1tpXSk7DQo+IA0KPiBXZSBjb3VsZCBpZ3RfYXNzZXJ0KHByb3ApDQoNClllcywgbWFrZXMgc2Vu c2UuIEkgc2hhbGwgdXBkYXRlIGl0IGZvciByZXYyLg0KDQo+IFdlIG5lZWQgdG8gZnJlZSBpdCBh dCBzb21lIHBvaW50Lg0KDQoncHJvcCcgaXMgYSBsb2NhbCBwb2ludGVyIHRoYXQgaXNudCBkeW5h bWljYWxseSBhbGxvY2F0ZWQuIE5vdCB0b28gc3VyZQ0Kd2h5IHRoYXQgd291bGQgbmVlZCBmcmVl LWluZy4gQ291bGQgeW91IHBsZWFzZSBwcm92aWRlIG1vcmUgY2xhcml0eSBvbg0KdGhlIGFib3Zl IGNvbW1lbnQ/DQoNCj4gDQo+ID4gKyAgICAgICAgICAgIGlmKCEoZHJtX3Byb3BlcnR5X2lzX3Rp bGUocHJvcCkgJiYNCj4gDQo+IFN0eWxlOiBtaXNzaW5nIHNwYWNlIGFmdGVyIGlmIGtleXdvcmQg KGFwcGxpZXMgdG8gdGhlIHdob2xlIHBhdGNoKS4NCj4gDQo+ID4gKyAgICAgICAgICAgICAgICBk cm1fcHJvcGVydHlfdHlwZV9pcyhwcm9wLCBEUk1fTU9ERV9QUk9QX0JMT0IpKSkNCj4gDQo+IEkn ZCBtb3ZlIHRoaXMgY2hlY2sgaW50byBkcm1fcHJvcGVydHlfaXNfdGlsZS4NCg0KWWVzLCBtYWtl cyBzZW5zZS4gSSBzaGFsbCB1cGRhdGUgaXQgZm9yIHJldjIuDQoNCj4gDQo+ID4gKyAgICAgICAg ICAgICAgICBjb250aW51ZTsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgIGJsb2IgPSBkcm1Nb2Rl R2V0UHJvcGVydHlCbG9iKGRhdGEtPmRybV9mZCwgXA0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0b3ItDQo+ID4gPnByb3BfdmFsdWVzW2ldKTsN Cj4gPiArDQo+ID4gKyAgICAgICAgICAgIGlmKCFibG9iKQ0KPiA+ICsgICAgICAgICAgICAgICAg YnJlYWs7DQo+ID4gKyAgICAgICAgICAgIGlndF9wYXJzZV9jb25uZWN0b3JfdGlsZV9ibG9iKGJs b2IsICZ0aWxlKTsNCj4gPiArICAgICAgICAgICAgZGF0YS0+bnVtX2hfdGlsZXMgPSB0aWxlLm51 bV9oX3RpbGU7DQo+ID4gKyAgICAgICAgICAgIGJyZWFrOw0KPiA+ICsgICAgICAgIH0NCj4gPiAr ICAgIH0NCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGludCBzZXRfdGVzdF9wYXR0ZXJuX2Zi KGRhdGFfdCAqZGF0YSwgZGF0YV9jb25uZWN0b3JfdA0KPiA+ICpjb25uX2RhdGEpDQo+ID4gK3sN Cj4gPiArICAgIGludCBpOw0KPiA+ICsgICAgaW50IGNvdW50ID0gMDsNCj4gPiArICAgIGJvb2wg aXNfdGlsZSA9IGZhbHNlOw0KPiA+ICsgICAgZW51bSBwaXBlIHBpcGU7DQo+ID4gKyAgICBpZ3Rf dGlsZV9pbmZvX3QgdGlsZTsNCj4gPiArICAgIGlndF9vdXRwdXRfdCAqb3V0cHV0Ow0KPiA+ICsg ICAgaWd0X3BsYW5lX3QgKnByaW1hcnk7DQo+ID4gKyAgICBkcm1Nb2RlUHJvcGVydHlQdHIgcHJv cDsNCj4gPiArICAgIGRybU1vZGVQcm9wZXJ0eUJsb2JQdHIgYmxvYjsNCj4gPiArDQo+ID4gKyAg ICBmb3JfZWFjaF9jb25uZWN0ZWRfb3V0cHV0KGRhdGEtPmRpc3BsYXksIG91dHB1dCkNCj4gPiAr ICAgIHsNCj4gPiArICAgICAgICBpc190aWxlID0gZmFsc2U7DQo+ID4gKw0KPiA+ICsgICAgICAg IGNvbm5fZGF0YVtjb3VudF0uY29ubmVjdG9yID0gZHJtTW9kZUdldENvbm5lY3RvcihkYXRhLQ0K PiA+ID5kaXNwbGF5LT5kcm1fZmQsIFwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LQ0KPiA+ID5pZCk7DQo+ID4gKw0K PiA+ICsgICAgICAgIGlmKCEoY29ubl9kYXRhW2NvdW50XS5jb25uZWN0b3ItPmNvbm5lY3Rvcl90 eXBlID09DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIERSTV9NT0RFX0NPTk5FQ1RPUl9E aXNwbGF5UG9ydCkpDQo+ID4gKyAgICAgICAgICAgIGNvbnRpbnVlOw0KPiA+ICsNCj4gPiArICAg ICAgICAvKiBQYXJzZSB0aHJvdWdoIGVhY2ggY29ubmVjdG9yIHByb3BlcnR5ICovDQo+ID4gKyAg ICAgICAgZm9yKGkgPSAwOyBpIDwgY29ubl9kYXRhW2NvdW50XS5jb25uZWN0b3ItPmNvdW50X3By b3BzOw0KPiA+IGkrKykNCj4gPiArICAgICAgICB7DQo+ID4gKyAgICAgICAgICAgIHByb3AgPSBk cm1Nb2RlR2V0UHJvcGVydHkoZGF0YS0+ZGlzcGxheS0+ZHJtX2ZkLCBcDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubl9kYXRhW2NvdW50XS5jb25uZWN0b3It DQo+ID4gPnByb3BzW2ldKTsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgIGlmKCEoKGRybV9wcm9w ZXJ0eV9pc190aWxlKHByb3ApICYmDQo+ID4gKyAgICAgICAgICAgICAgICBkcm1fcHJvcGVydHlf dHlwZV9pcyhwcm9wLCBEUk1fTU9ERV9QUk9QX0JMT0IpKSkpDQo+ID4gKyAgICAgICAgICAgICAg ICBjb250aW51ZTsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgIGJsb2IgPSBkcm1Nb2RlR2V0UHJv cGVydHlCbG9iKGRhdGEtPmRpc3BsYXktPmRybV9mZCwgXA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29ubl9kYXRhW2NvdW50XS5jb25uZWN0b3ItDQo+ID4gPnByb3BfdmFsdWVz W2ldKTsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgIGlmKCFibG9iKQ0KPiA+ICsgICAgICAgICAg ICAgICAgYnJlYWs7DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICBpZ3RfcGFyc2VfY29ubmVjdG9y X3RpbGVfYmxvYihibG9iLCAmdGlsZSk7DQo+ID4gKyAgICAgICAgICAgIGNvbm5fZGF0YVtjb3Vu dF0udGlsZSA9ICZ0aWxlOw0KPiA+ICsgICAgICAgICAgICBpc190aWxlID0gdHJ1ZTsNCj4gPiAr ICAgICAgICAgICAgYnJlYWs7DQo+ID4gKyAgICAgICAgfQ0KPiANCj4gSSBmZWVsIGxpa2UgdGhp cyB3aG9sZSBibG9jayBhYm92ZSBpcyBkdXBsaWNhdGVkLiBDb3VsZCBiZSBleHRyYWN0ZWQNCj4g aW50byBhIGZ1bmN0aW9uLCBlLmcuDQoNCkkgd2FzIGNvbnRlbXBsYXRpbmcgb24gdGhhdCB0b28s IHNoYWxsIGRvIGl0IGZvciByZXYyLg0KDQo+ICAgICBib29sIGNvbm5lY3Rvcl9nZXRfdGlsZShk cm1Nb2RlQ29ubmVjdG9yUmVzICpjb25uLA0KPiBpZ3RfdGlsZV9pbmZvX3QgKnRpbGVfaW5mbykN Cj4gDQo+ID4gKyAgICAgICAgaWYoIWlzX3RpbGUpDQo+ID4gKyAgICAgICAgICAgIGNvbnRpbnVl Ow0KPiA+ICsNCj4gPiArICAgICAgICBvdXRwdXQgPSBpZ3Rfb3V0cHV0X2Zyb21fY29ubmVjdG9y KGRhdGEtPmRpc3BsYXksIFwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbm5fZGF0YVtjb3VudF0uY29ubmVjDQo+ID4gdG9yKTsNCj4gDQo+IFN0eWxl OiB1bm5lY2Vzc2FyeSBgXGAuIEFwcGxpZXMgdG8gdGhlIHdob2xlIHBhdGNoLg0KPiANCj4gPiAr DQo+ID4gKyAgICAgICAgZm9yX2VhY2hfcGlwZShkYXRhLT5kaXNwbGF5LCBwaXBlKQ0KPiA+ICsg ICAgICAgIHsNCj4gPiArICAgICAgICAgICAgaWd0X2RlYnVnKCJDdXJyZW50IFBJUEUgaXMgJWRc biIsIHBpcGUpOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAgaWYoKGNvdW50ID4gMCkgJiYgKHBp cGUgPT0gY29ubl9kYXRhW2NvdW50LTFdLnBpcGUpKQ0KPiA+ICsgICAgICAgICAgICAgICAgY29u dGludWU7DQo+IA0KPiBTdHlsZTogdW5uZWNlc3NhcnkgcGFyZW50aGVzZXMuDQo+IA0KPiA+ICsg ICAgICAgICAgICBpZihpZ3RfcGlwZV9jb25uZWN0b3JfdmFsaWQocGlwZSwgb3V0cHV0KSkgew0K PiA+ICsgICAgICAgICAgICAgICAgY29ubl9kYXRhW2NvdW50XS5waXBlID0gcGlwZTsNCj4gPiAr ICAgICAgICAgICAgICAgIGNvbm5fZGF0YVtjb3VudF0ub3V0cHV0ID0gb3V0cHV0Ow0KPiA+ICsN Cj4gPiArICAgICAgICAgICAgICAgIGlndF9vdXRwdXRfc2V0X3BpcGUoY29ubl9kYXRhW2NvdW50 XS5vdXRwdXQsIFwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u bl9kYXRhW2NvdW50XS5waXBlKTsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgICBpZ3RfY3Jl YXRlX3BhdHRlcm5fZmIoZGF0YS0+ZHJtX2ZkLFwNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGNvbm5fZGF0YVtjb3VudF0udGlsZS0NCj4gPiA+dGlsZV9oX3NpemUg KlwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtPm51bV9o X3RpbGVzKSxcDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25u X2RhdGFbY291bnRdLnRpbGUtDQo+ID4gPnRpbGVfdl9zaXplLFwNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIERSTV9GT1JNQVRfWEJHUjg4ODgsXA0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9O RSxcDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29ubl9kYXRh W2NvdW50XS5mYl90ZXN0X3BhdA0KPiA+IHRlcm4pOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAg ICAgIHByaW1hcnkgPQ0KPiA+IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUoY29ubl9kYXRhW2Nv dW50XS5vdXRwdXQsXA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRFJNX1BMQU5FX1RZUEUNCj4gPiBfUFJJTUFSWSk7DQo+ID4gKw0KPiA+ ICsgICAgICAgICAgICAgICAgaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LA0KPiA+ICZjb25uX2Rh dGFbY291bnRdLmZiX3Rlc3RfcGF0dGVybik7DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICAg aWd0X2ZiX3NldF9zaXplKCZjb25uX2RhdGFbY291bnRdLmZiX3Rlc3RfcGF0dGVybiwNCj4gPiBw cmltYXJ5LFwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uX2RhdGFb Y291bnRdLnRpbGUtDQo+ID4gPnRpbGVfaF9zaXplLFwNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25uX2RhdGFbY291bnRdLnRpbGUtDQo+ID4gPnRpbGVfdl9zaXplKTsN Cj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgICBpZ3RfZmJfc2V0X3Bvc2l0aW9uKCZjb25uX2Rh dGFbY291bnRdLmZiX3Rlc3RfcGF0dA0KPiA+IGVybiwgXA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwcmltYXJ5LFwNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGNvbm5fZGF0YVtjb3VudF0udGlsZS0NCj4gPiA+dGlsZV9oX3NpemUg KlwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubl9kYXRhW2Nv dW50XS50aWxlLQ0KPiA+ID50aWxlX2hfbG9jKSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGNvbm5fZGF0YVtjb3VudF0udGlsZS0NCj4gPiA+dGlsZV92X3NpemUg KlwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubl9kYXRhW2Nv dW50XS50aWxlLQ0KPiA+ID50aWxlX3ZfbG9jKSk7DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAg ICAgaWd0X3BsYW5lX3NldF9zaXplKHByaW1hcnksXA0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbm5fZGF0YVtjb3VudF0udGlsZS0NCj4gPiA+dGlsZV9oX3NpemUs XA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5fZGF0YVtjb3Vu dF0udGlsZS0NCj4gPiA+dGlsZV92X3NpemUpOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICAg IGJyZWFrOw0KPiA+ICsgICAgICAgICAgICB9DQo+ID4gKyAgICAgICAgfQ0KPiA+ICsgICAgICAg IGNvdW50Kys7DQo+ID4gKyAgICB9DQo+ID4gKw0KPiA+ICsgICAgcmV0dXJuIGNvdW50Ow0KPiA+ ICt9DQo+ID4gKw0KPiA+ICtpZ3RfbWFpbg0KPiA+ICt7DQo+ID4gKyAgICBpZ3RfZGlzcGxheV90 IGRpc3BsYXk7DQo+ID4gKyAgICBkYXRhX3QgZGF0YSA9IHt9Ow0KPiA+ICsgICAgZGF0YV9jb25u ZWN0b3JfdCAqY29ubl9kYXRhOw0KPiA+ICsNCj4gPiArICAgIGlndF9maXh0dXJlIHsNCj4gPiAr ICAgICAgICBkYXRhLmRybV9mZCA9IGRybV9vcGVuX2RyaXZlcl9tYXN0ZXIoRFJJVkVSX0FOWSk7 DQo+ID4gKyAgICAgICAga21zdGVzdF9zZXRfdnRfZ3JhcGhpY3NfbW9kZSgpOw0KPiA+ICsgICAg ICAgIGlndF9kaXNwbGF5X3JlcXVpcmUoJmRpc3BsYXksIGRhdGEuZHJtX2ZkKTsNCj4gPiArICAg ICAgICBkYXRhLmRpc3BsYXkgPSAmZGlzcGxheTsNCj4gPiArDQo+ID4gKyAgICAgICAgZ2V0X251 bWJlcl9vZl9oX3RpbGVzKCZkYXRhKTsNCj4gPiArICAgICAgICBpZ3RfZGVidWcoIk51bWJlciBv ZiBIb3Jpem9udGFsIFRpbGVzOiAlZFxuIiwNCj4gPiBkYXRhLm51bV9oX3RpbGVzKTsNCj4gPiAr ICAgICAgICBkYXRhLmNvbW1pdCA9IGRhdGEuZGlzcGxheS0+aXNfYXRvbWljID8gQ09NTUlUX0FU T01JQyA6DQo+ID4gQ09NTUlUX0xFR0FDWTsNCj4gPiArICAgIH0NCj4gPiArDQo+ID4gKyAgICBp ZihkYXRhLm51bV9oX3RpbGVzID4gMCkNCj4gPiArICAgICAgICBjb25uX2RhdGEgPSAoZGF0YV9j b25uZWN0b3JfdCAqKW1hbGxvYyhkYXRhLm51bV9oX3RpbGVzICoNCj4gPiBcDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihkYXRhX2Nv bm5lYw0KPiA+IHRvcl90KSk7DQo+IA0KPiBObyBuZWVkIGZvciB0aGlzIGNhc3QsIHVubmVjZXNz YXJ5IGBcYC4NCj4gDQo+ID4gKyAgICBpZ3RfYXNzZXJ0KGNvbm5fZGF0YSk7DQo+IA0KPiBUaGlz IGNoZWNrIHJlYWRzIGdhcmJhZ2UgZnJvbSB0aGUgc3RhY2sgaWYgZGF0YS5udW1faF90aWxlcyA9 PSAwLg0KDQpJIG1vdmVkIHRoZSBhc3NlcnQgdG8gaWd0X3N1YnRlc3QgYmxvY2sgYWZ0ZXIgaWd0 X3NraXBfb24gc28gdGhhdCBpZg0KZGF0YS5udW1faF90aWxlcyA9PSAwLCBhc3NlcnQgd291bGQg bm90IGJlIHBlcmZvcm1lZC4NCg0KPiANCj4gPiArICAgIGlndF9zdWJ0ZXN0X2YoImJhc2ljLXRl c3QtcGF0dGVybiIpIHsNCj4gDQo+IE5vIG5lZWQgZm9yIHRoZSBfZiBzdWZmaXguDQoNClllcywg bWFrZXMgc2Vuc2UuIEkgc2hhbGwgdXBkYXRlIGl0IGZvciByZXYyLg0KDQo+IA0KPiBUaGlzIHN1 YnRlc3QgaXMgbWlzc2luZyBhIGRlc2NyaXB0aW9uLiBDb3VsZCB5b3UgYWRkIG9uZT8gRm9yIG1v cmUNCj4gaW5mb3JtYXRpb24sIHNlZToNCj4gDQpodHRwczovL2RybS5wYWdlcy5mcmVlZGVza3Rv cC5vcmcvaWd0LWdwdS10b29scy9pZ3QtZ3B1LXRvb2xzLUNvcmUuaHRtbCNpZ3QtZGVzY3JpYmUN Cg0KSSBzaGFsbCBhZGQgYSBkZXNjcmlwdGlvbi4NCg0KDQo+IA0KPiA+ICsgICAgICAgIGlndF9z a2lwX29uKCFkYXRhLm51bV9oX3RpbGVzKTsNCj4gPiArICAgICAgICBzZXRfdGVzdF9wYXR0ZXJu X2ZiKCZkYXRhLCBjb25uX2RhdGEpOw0KPiA+ICsgICAgICAgIGlndF9kaXNwbGF5X2NvbW1pdDIo ZGF0YS5kaXNwbGF5LCBkYXRhLmNvbW1pdCk7DQo+IA0KPiBJJ20gbm90IHN1cmUgSSB1bmRlcnN0 YW5kIHdoYXQgdGhpcyB0ZXN0IGNoZWNrcy4gSXQgZG9lcyBhIGNvbW1pdCBvbg0KPiBhbGwgdGls ZWQgY29ubmVjdG9ycywgYnV0IGRvZXNuJ3QgY2hlY2sgYW55dGhpbmcgYWZ0ZXJ3YXJkcy4gTWF5 YmUgaXQNCj4gc2hvdWxkIGNoZWNrIHRoZSBwYWdlZmxpcCBzZXJpYWwgYW5kIHRpbWluZ3M/DQoN ClRoaXMgdGVzdCB3YXMgbWVhbnQgdG8gbWFrZSBzdXJlIHRoZSB0cmFuc2NvZGVyIHBvcnQgc3lu YyBmZWF0dXJlIHdhcw0Kd29ya2luZyB3aXRob3V0IGFueSBvZmZzZXRzIGluIHRoZSB0d28gdGls ZXMgb2YgdGhlIGRpc3BsYXkuIEFueQ0Kc3VnZ2VzdGlvbnMvcmVzb3VyY2VzIGZvciBob3cgdG8g dGVzdCBwYWdlZmxpcHM/DQoNCj4gDQo+ID4gKyAgICB9DQo+ID4gKw0KPiA+ICsgICAgaWd0X2Zp eHR1cmUgew0KPiA+ICsgICAgICAgIGlmKGRhdGEubnVtX2hfdGlsZXMgPiAwKQ0KPiA+ICsgICAg ICAgICAgICBmcmVlKGNvbm5fZGF0YSk7DQo+IA0KPiBJZiBjb25uX2RhdGEgd2FzIGluaXRpYWxp emVkIHRvIE5VTEwsIG5vIG5lZWQgZm9yIHRoZSBjaGVjaywgYmVjYXVzZQ0KPiBmcmVlKE5VTEwp IGlzIGEgbm8tb3AuDQoNClllcywgbWFrZXMgc2Vuc2UuIEkgc2hhbGwgdXBkYXRlIGl0IGZvciBy ZXYyLg0KDQo+IA0KPiA+ICsgICAgICAgIGttc3Rlc3RfcmVzdG9yZV92dF9tb2RlKCk7DQo+ID4g KyAgICAgICAgaWd0X2Rpc3BsYXlfZmluaShkYXRhLmRpc3BsYXkpOw0KPiA+ICsgICAgfQ0KPiA+ ICt9DQo+ID4gZGlmZiAtLWdpdCBhL3Rlc3RzL21lc29uLmJ1aWxkIGIvdGVzdHMvbWVzb24uYnVp bGQNCj4gPiBpbmRleCAzNGE3NDAyNS4uNmE2ZTljZTkgMTAwNjQ0DQo+ID4gLS0tIGEvdGVzdHMv bWVzb24uYnVpbGQNCj4gPiArKysgYi90ZXN0cy9tZXNvbi5idWlsZA0KPiA+IEBAIC0yNSw2ICsy NSw3IEBAIHRlc3RfcHJvZ3MgPSBbDQo+ID4gIAkna21zX2N1cnNvcl9lZGdlX3dhbGsnLA0KPiA+ ICAJJ2ttc19jdXJzb3JfbGVnYWN5JywNCj4gPiAgCSdrbXNfZHBfZHNjJywNCj4gPiArCSdrbXNf ZHBfdGlsZWRfZGlzcGxheScsDQo+ID4gIAkna21zX2RyYXdfY3JjJywNCj4gPiAgCSdrbXNfZmJj b25fZmJ0JywNCj4gPiAgCSdrbXNfZmVuY2VfcGluX2xlYWsnLA0KX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRl dkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pZ3QtZGV2