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 0CD856E858 for ; Fri, 2 Aug 2019 01:09:27 +0000 (UTC) From: "Tolakanahalli Pradeep, Madhumitha" Date: Fri, 2 Aug 2019 01:09:26 +0000 Message-ID: <1559480b830440695c6d5f968ba2e3629d4830f4.camel@intel.com> References: <20190717180257.32314-1-madhumitha.tolakanahalli.pradeep@intel.com> <20190730192141.GA2736@intel.com> <3e664b45c4c6911239d18e6317769f1c6ad46ca5.camel@intel.com> <20190731171323.GA9251@intel.com> <20190801173812.GA14996@intel.com> In-Reply-To: <20190801173812.GA14996@intel.com> Content-Language: en-US Content-ID: <8984717469DFEC4787CED764A843FF24@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: "Navare, Manasi D" , "Ser, Simon" Cc: "igt-dev@lists.freedesktop.org" , "Latvala, Petri" List-ID: VGhhbmsgeW91IGZvciB0aGUgZ3JlYXQgaW5wdXRzLCBNYW5hc2kgYW5kIFNpbW9uDQoNCg0KT24g VGh1LCAyMDE5LTA4LTAxIGF0IDEwOjM4IC0wNzAwLCBNYW5hc2kgTmF2YXJlIHdyb3RlOg0KPiBU aGFuayBTaW1vbiBmb3IgYWxsIHlvdXIgaW5wdXRzLiBQbGVhc2UgZmluZCBzb21lIG9mIG15IHF1 ZXN0aW9ucw0KPiBiZWxvdzoNCj4gDQo+IE9uIFRodSwgQXVnIDAxLCAyMDE5IGF0IDEyOjQxOjM3 QU0gLTA3MDAsIFNlciwgU2ltb24gd3JvdGU6DQo+ID4gT24gV2VkLCAyMDE5LTA3LTMxIGF0IDEw OjEzIC0wNzAwLCBNYW5hc2kgTmF2YXJlIHdyb3RlOg0KPiA+ID4gT24gV2VkLCBKdWwgMzEsIDIw MTkgYXQgMTI6MjU6MDlBTSAtMDcwMCwgU2VyLCBTaW1vbiB3cm90ZToNCj4gPiA+ID4gT24gVHVl LCAyMDE5LTA3LTMwIGF0IDEyOjIxIC0wNzAwLCBNYW5hc2kgTmF2YXJlIHdyb3RlOg0KPiA+ID4g PiA+IE9uIFdlZCwgSnVsIDE3LCAyMDE5IGF0IDExOjQzOjQ4UE0gLTA3MDAsIFNlciwgU2ltb24g d3JvdGU6DQo+ID4gPiA+ID4gPiBUaGFua3MgZm9yIHlvdXIgcGF0Y2ghIEhlcmUgYXJlIHNvbWUg Y29tbWVudHMuDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IFN0eWxlOiB3ZSB1c2UgdGFicyBm b3IgaW5kZW50YXRpb24sIG5vdCBzcGFjZXMuDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IE9u IFdlZCwgMjAxOS0wNy0xNyBhdCAxMTowMiAtMDcwMCwgTWFkaHVtaXRoYSBUb2xha2FuYWhhbGxp DQo+ID4gPiA+ID4gPiBQcmFkZWVwIHdyb3RlOg0KPiA+ID4gPiA+ID4gPiBUaGlzIHRlc3QgdmFs aWRhdGVzIHRoZSB0aWxlZCBEUCBkaXNwbGF5cyB0byBkaXNwbGF5IGENCj4gPiA+ID4gPiA+ID4g dGVzdCBwYXR0ZXJuIHNlYW1sZXNzbHkNCj4gPiA+ID4gPiA+ID4gYWNyb3NzIHRoZSB0d28gdGls ZXMuIEl0IHZhbGlkYXRlcyB0aGUgdHJhbnNjb2RlciBwb3J0DQo+ID4gPiA+ID4gPiA+IHN5bmMg ZmVhdHVyZSBvbiBpOTE1IHRvDQo+ID4gPiA+ID4gPiA+IGdldCBhIHRlYXJmcmVlIHRpbGVkIGRp c3BsYXkgb3V0cHV0Lg0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gUmVsYXRlZCBrZXJu ZWwgd29yayBwYXRjaGVzIC0+IA0KPiA+ID4gPiA+ID4gPiBodHRwczovL3BhdGNod29yay5mcmVl ZGVza3RvcC5vcmcvc2VyaWVzLzU5ODM3LyNyZXY0Lg0KPiA+ID4gPiA+ID4gPiBUaGlzIHRlc3Qg Y2FuIGV2ZW50dWFsbHkgYmUgZXh0ZW5kZWQgdG8gY292ZXIgdGlsZWQNCj4gPiA+ID4gPiA+ID4g ZGlzcGxheSBzdXBwb3J0IG9uIG90aGVyIGNvbm5lY3Rvcg0KPiA+ID4gPiA+ID4gPiB0eXBlcy4N Cj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+IENjOiBNYW5hc2kgTmF2YXJlIDxtYW5hc2ku ZC5uYXZhcmVAaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gPiBDYzogUGV0cmkgTGF0dmFsYSA8cGV0 cmkubGF0dmFsYUBpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IE1hZGh1 bWl0aGEgVG9sYWthbmFoYWxsaSBQcmFkZWVwIDwNCj4gPiA+ID4gPiA+ID4gbWFkaHVtaXRoYS50 b2xha2FuYWhhbGxpLnByYWRlZXBAaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4g PiBOZXh0IHRpbWUsIGNhbiB5b3Ugc2VuZCBib3RoIHBhdGNoZXMgaW4gb25lIGdvPyBJdCdzIG5v dA0KPiA+ID4gPiA+ID4gcG9zc2libGUgdG8NCj4gPiA+ID4gPiA+IGNoZWNrIHdoZXRoZXIgdGhp cyB0ZXN0IGFjdHVhbGx5IHBhc3NlcyBDSSwgc2luY2UgYnVpbGQNCj4gPiA+ID4gPiA+IGZhaWxz IChzZWUgdGhlDQo+ID4gPiA+ID4gPiB0d28gYXV0b21hdGVkIGZhaWx1cmUgcmVwbGllcykuDQo+ ID4gPiA+ID4gDQo+ID4gPiA+ID4gWWVzIHBsZWFzZSBzZW5kIHRoaXMgYXMgYSBzZXJpZXMgd2l0 aCAxc3QgcGF0Y2ggdGhhdCBkZWZpbmVzDQo+ID4gPiA+ID4gdGhlIHRpbGUgcGFyc2VyDQo+ID4g PiA+ID4gYW5kIHNlY29uZCB3aXRoIHRoZSBhY3R1YWwgdGVzdCB0aGF0IHVzZXMgaXQNCj4gPiA+ ID4gPiANCj4gPiA+ID4gPiA+IFRvIGxlYXJuIGhvdyB0byB1c2UgZ2l0LXNlbmQtZW1haWwsIHlv dSBjYW4gcmVhZDoNCj4gPiA+ID4gPiA+IGh0dHBzOi8vZ2l0LXNlbmQtZW1haWwuaW8vDQo+ID4g PiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gPiA+ICB0ZXN0cy9NYWtlZmls ZS5zb3VyY2VzICAgICAgIHwgICAxICsNCj4gPiA+ID4gPiA+ID4gIHRlc3RzL2ttc19kcF90aWxl ZF9kaXNwbGF5LmMgfCAyMzkNCj4gPiA+ID4gPiA+ID4gKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysNCj4gPiA+ID4gPiA+ID4gIHRlc3RzL21lc29uLmJ1aWxkICAgICAgICAgICAg fCAgIDEgKw0KPiA+ID4gPiA+ID4gPiAgMyBmaWxlcyBjaGFuZ2VkLCAyNDEgaW5zZXJ0aW9ucygr KQ0KPiA+ID4gPiA+ID4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2ttc19kcF90aWxlZF9k aXNwbGF5LmMNCj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS90ZXN0 cy9NYWtlZmlsZS5zb3VyY2VzDQo+ID4gPiA+ID4gPiA+IGIvdGVzdHMvTWFrZWZpbGUuc291cmNl cw0KPiA+ID4gPiA+ID4gPiBpbmRleCAyNTBkYmQzMy4uZTkzNzM5NDEgMTAwNjQ0DQo+ID4gPiA+ ID4gPiA+IC0tLSBhL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMNCj4gPiA+ID4gPiA+ID4gKysrIGIv dGVzdHMvTWFrZWZpbGUuc291cmNlcw0KPiA+ID4gPiA+ID4gPiBAQCAtNDAsNiArNDAsNyBAQCBU RVNUU19wcm9ncyA9IFwNCj4gPiA+ID4gPiA+ID4gIAlrbXNfY3Vyc29yX2VkZ2Vfd2FsayBcDQo+ ID4gPiA+ID4gPiA+ICAJa21zX2N1cnNvcl9sZWdhY3kgXA0KPiA+ID4gPiA+ID4gPiAgCWttc19k cF9kc2MgXA0KPiA+ID4gPiA+ID4gPiArCWttc19kcF90aWxlZF9kaXNwbGF5IFwNCj4gPiA+ID4g PiA+ID4gIAlrbXNfZHJhd19jcmMgXA0KPiA+ID4gPiA+ID4gPiAgCWttc19mYmNvbl9mYnQgXA0K PiA+ID4gPiA+ID4gPiAgCWttc19mZW5jZV9waW5fbGVhayBcDQo+ID4gPiA+ID4gPiA+IGRpZmYg LS1naXQgYS90ZXN0cy9rbXNfZHBfdGlsZWRfZGlzcGxheS5jDQo+ID4gPiA+ID4gPiA+IGIvdGVz dHMva21zX2RwX3RpbGVkX2Rpc3BsYXkuYw0KPiA+ID4gPiA+ID4gPiBuZXcgZmlsZSBtb2RlIDEw MDY0NA0KPiA+ID4gPiA+ID4gPiBpbmRleCAwMDAwMDAwMC4uYWY2NDQ1NzMNCj4gPiA+ID4gPiA+ ID4gLS0tIC9kZXYvbnVsbA0KPiA+ID4gPiA+ID4gPiArKysgYi90ZXN0cy9rbXNfZHBfdGlsZWRf ZGlzcGxheS5jDQo+ID4gPiA+ID4gPiA+IEBAIC0wLDAgKzEsMjM5IEBADQo+ID4gPiA+ID4gPiA+ ICsvKg0KPiA+ID4gPiA+ID4gPiArICogQ29weXJpZ2h0IMKpIDIwMTggSW50ZWwgQ29ycG9yYXRp b24NCj4gPiA+ID4gPiA+ID4gKyAqDQo+ID4gPiA+ID4gPiA+ICsgKiBQZXJtaXNzaW9uIGlzIGhl cmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55DQo+ID4gPiA+ID4gPiA+IHBlcnNv biBvYnRhaW5pbmcgYQ0KPiA+ID4gPiA+ID4gPiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFu ZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24NCj4gPiA+ID4gPiA+ID4gZmlsZXMgKHRoZSAiU29m dHdhcmUiKSwNCj4gPiA+ID4gPiA+ID4gKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhv dXQgcmVzdHJpY3Rpb24sDQo+ID4gPiA+ID4gPiA+IGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRp b24NCj4gPiA+ID4gPiA+ID4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1l cmdlLCBwdWJsaXNoLA0KPiA+ID4gPiA+ID4gPiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLA0KPiA+ ID4gPiA+ID4gPiArICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRv IHBlcm1pdA0KPiA+ID4gPiA+ID4gPiBwZXJzb25zIHRvIHdob20gdGhlDQo+ID4gPiA+ID4gPiA+ ICsgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlDQo+ID4g PiA+ID4gPiA+IGZvbGxvd2luZyBjb25kaXRpb25zOg0KPiA+ID4gPiA+ID4gPiArICoNCj4gPiA+ ID4gPiA+ID4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np b24gbm90aWNlDQo+ID4gPiA+ID4gPiA+IChpbmNsdWRpbmcgdGhlIG5leHQNCj4gPiA+ID4gPiA+ ID4gKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvcg0KPiA+ ID4gPiA+ID4gPiBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUNCj4gPiA+ID4gPiA+ID4gKyAq IFNvZnR3YXJlLg0KPiA+ID4gPiA+ID4gPiArICoNCj4gPiA+ID4gPiA+ID4gKyAqIFRIRSBTT0ZU V0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GDQo+ID4gPiA+ID4g PiA+IEFOWSBLSU5ELCBFWFBSRVNTIE9SDQo+ID4gPiA+ID4gPiA+ICsgKiBJTVBMSUVELCBJTkNM VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTDQo+ID4gPiA+ID4gPiA+IE9G IE1FUkNIQU5UQUJJTElUWSwNCj4gPiA+ID4gPiA+ID4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFIEFORA0KPiA+ID4gPiA+ID4gPiBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBF VkVOVCBTSEFMTA0KPiA+ID4gPiA+ID4gPiArICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhP TERFUlMgQkUgTElBQkxFIEZPUiBBTlkNCj4gPiA+ID4gPiA+ID4gQ0xBSU0sIERBTUFHRVMgT1Ig T1RIRVINCj4gPiA+ID4gPiA+ID4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04g T0YgQ09OVFJBQ1QsIFRPUlQgT1INCj4gPiA+ID4gPiA+ID4gT1RIRVJXSVNFLCBBUklTSU5HDQo+ ID4gPiA+ID4gPiA+ICsgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBT T0ZUV0FSRSBPUg0KPiA+ID4gPiA+ID4gPiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTDQo+ID4g PiA+ID4gPiA+ICsgKiBJTiBUSEUgU09GVFdBUkUuDQo+ID4gPiA+ID4gPiA+ICsgKg0KPiA+ID4g PiA+ID4gPiArICogQXV0aG9yczoNCj4gPiA+ID4gPiA+ID4gKyAqICBNYWRodW1pdGhhIFRvbGFr YW5haGFsbGkgUHJhZGVlcA0KPiA+ID4gPiA+ID4gPiArICogICAgICA8bWFkaHVtaXRoYS50b2xh a2FuYWhhbGxpLnByYWRlZXBAaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gPiArICoNCj4gPiA+ID4g PiA+ID4gKyAqIERpc3BsYXkgUG9ydCBUaWxlZCBEaXNwbGF5IFRlc3QNCj4gPiA+ID4gPiA+ID4g KyAqIFRoaXMgdGVzdCBwYXJzZXMgdGhlIHRpbGUgaW5mb3JtYXRpb24gb2YgdGhlDQo+ID4gPiA+ ID4gPiA+IGNvbm5lY3RvcnMgdGhhdCBoYXZlIFRJTEUNCj4gPiA+ID4gPiA+ID4gKyAqIHByb3Bl cnR5IHNldCwgc2V0cyB1cCB0aGUgZnJhbWVidWZmZXIgd2l0aCBjb3JyZWN0DQo+ID4gPiA+ID4g PiA+IG9mZnNldHMgY29ycmVzcG9uZGluZyB0bw0KPiA+ID4gPiA+ID4gPiArICogdGhlIHRpbGUg b2Zmc2V0cyBhbmQgZG9lcyBhbiBhdG9taWMgbW9kZXNldCB3aXRoIHR3bw0KPiA+ID4gPiA+ID4g PiBDUlRDcyBmb3IgdHdvDQo+ID4gPiA+ID4gPiA+ICsgKiBjb25uZWN0b3JzLg0KPiA+ID4gPiA+ ID4gPiArICoNCj4gPiA+ID4gPiA+ID4gKyAqIFRoaXMgdGVzdCBjdXJyZW50bHkgc3VwcG9ydHMg b25seSBob3Jpem9udGFsbHkgdGlsZWQNCj4gPiA+ID4gPiA+ID4gZGlzcGxheXMsIGluIGxpbmUg d2l0aA0KPiA+ID4gPiA+ID4gPiArICogdGhlIGRpc3BsYXlzIHN1cHBvcnRlZCBieSB0aGUga2Vy bmVsIGF0IHRoZSBtb21lbnQuDQo+ID4gPiA+ID4gPiA+ICsgKi8NCj4gPiA+ID4gPiA+ID4gKw0K PiA+ID4gPiA+ID4gPiArI2luY2x1ZGUgImRybV9tb2RlLmgiDQo+ID4gPiA+ID4gPiA+ICsjaW5j bHVkZSAiZHJtX2ZvdXJjYy5oIg0KPiA+ID4gPiA+ID4gPiArI2luY2x1ZGUgImlndC5oIg0KPiA+ ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ICt0eXBlZGVmIHN0cnVjdCB7DQo+ID4gPiA+ID4g PiA+ICsgICAgaW50IGRybV9mZDsNCj4gPiA+ID4gPiA+ID4gKyAgICBpbnQgbnVtX2hfdGlsZXM7 DQo+ID4gPiA+ID4gPiA+ICsgICAgaWd0X2Rpc3BsYXlfdCAqZGlzcGxheTsNCj4gPiA+ID4gPiA+ ID4gKyAgICBlbnVtIGlndF9jb21taXRfc3R5bGUgY29tbWl0Ow0KPiA+ID4gPiA+ID4gPiArfSBk YXRhX3Q7DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gK3R5cGVkZWYgc3RydWN0IHsN Cj4gPiA+ID4gPiA+ID4gKyAgICBpZ3Rfb3V0cHV0X3QgKm91dHB1dDsNCj4gPiA+ID4gPiA+ID4g KyAgICBpZ3RfdGlsZV9pbmZvX3QgKnRpbGU7DQo+ID4gPiA+ID4gPiA+ICsgICAgaWd0X2ZiX3Qg ZmJfdGVzdF9wYXR0ZXJuOw0KPiA+ID4gPiA+ID4gPiArICAgIGRybU1vZGVDb25uZWN0b3JQdHIg Y29ubmVjdG9yOw0KPiA+ID4gPiA+ID4gPiArICAgIGVudW0gcGlwZSBwaXBlOw0KPiA+ID4gPiA+ ID4gPiArICAgIGVudW0gaWd0X2NvbW1pdF9zdHlsZSBjb21taXQ7DQo+ID4gPiA+ID4gPiA+ICt9 IGRhdGFfY29ubmVjdG9yX3Q7DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gK3N0YXRp YyBpbmxpbmUgaW50DQo+ID4gPiA+ID4gPiA+IGRybV9wcm9wZXJ0eV9pc190aWxlKGRybU1vZGVQ cm9wZXJ0eVB0ciBwcm9wKQ0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiBJIHdvdWxkbid0IHBl cnNvbmFsbHkgdXNlIGBpbmxpbmVgLiBUaGUgY29tcGlsZXIgaXMgc21hcnRlcg0KPiA+ID4gPiA+ ID4gdGhhbiBodW1hbnMNCj4gPiA+ID4gPiA+IHRvIGRlY2lkZSB3aGV0aGVyIG9yIG5vdCBhIGZ1 bmN0aW9uIHNob3VsZCBiZSBpbmxpbmVkLg0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ICt7 DQo+ID4gPiA+ID4gPiA+ICsJcmV0dXJuKHN0cmNtcChwcm9wLT5uYW1lID8gcHJvcC0+bmFtZSA6 ICIiLCAiVElMRSIpPyAwDQo+ID4gPiA+ID4gPiA+IDogMSk7DQo+ID4gPiA+ID4gPiANCj4gPiA+ ID4gPiA+IFN0eWxlOiB1bm5lY2Vzc2FyeSBwYXJlbnRoZXNlcywgbWlzc2luZyBzcGFjZSBiZWZv cmUgYD9gLg0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ICt9DQo+ID4gPiA+ID4gPiA+ICsN Cj4gPiA+ID4gPiA+ID4gK3N0YXRpYyB2b2lkIGdldF9udW1iZXJfb2ZfaF90aWxlcyhkYXRhX3Qg KmRhdGEpDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IFdoYXQgaWYgbXVsdGlwbGUgdGlsZXMg YXJlIGNvbm5lY3RlZD8gU2hvdWxkbid0IHdlIHVzZQ0KPiA+ID4gPiA+ID4gdGlsZV9ncm91cF9p ZD8NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBZZXMgdGhlcmUgY291bGQgYmUgbXVsdGlwbGUgbW9u aXRvcnMgd2l0aCB0aWxlcyBzbyB1c2UNCj4gPiA+ID4gPiB0aWxlX2dyb3VwX2lkIHRvIGNoZWNr DQo+ID4gPiA+ID4gdGhhdCB0aGUgdGlsZSBiZWxvbmdzIHRvIHRoZSBzYW1lIGdyb3VwIGFuZCB0 aGVuIHVzZQ0KPiA+ID4gPiA+IG51bV9oX3RpbGVzDQo+ID4gPiANCj4gPiA+IEJ1dCBhY3R1YWxs eSB0aGUgY3VycmVudCBoYXJkd2FyZSBsaWtlIE1hZGh1bWl0aGEgbWVudGlvbmVkIG9ubHkNCj4g PiA+IHN1cHBvcnRzIG9uZSB0aWxlIGdyb3VwLA0KPiA+ID4gaWYgd2UgaGF2ZSB0byBzdXBwb3J0 IG11bHRpcGxlIHRpbGUgZ3JvdXBzIHRoZW4gd2Ugd291bGQgbmVlZCB0bw0KPiA+ID4gbWFsbG9j IHRoZSBhcnJheSBvZiBzdHJ1Y3R1cmVzDQo+ID4gPiBmb3IgdGhlIGNvbm5lY3RvcnMgYXNzb2Np YXRlZCB3aXRoIHNlcGFyYXRlIHRpbGUgZ3JvdXBzIGFuZCB0aGVuDQo+ID4gPiBoYXZlIGEgc2Vw YXJhdGUgc3VidGVzdCBmb3INCj4gPiA+IHRpbGUgZ3JvdXAgMSB0aWxlIGdyb3VwIDIgZXRjLiBU aGlzIGxvZ2ljIHdpbGwgbm90IGdldCB0ZXN0ZWQNCj4gPiA+IHJpZ2h0IG5vdyBkdWUgdG8gSFcg Y29uc3RyYWludC4NCj4gPiA+IA0KPiA+ID4gU28gdGhlIGlkZWEgaXMgZm9yIHRoZSBJR1QgdG8g Y2hlY2sgdGhlIHRpbGUgZ3JvdXAgaWQgYnV0IG9ubHkNCj4gPiA+IHN1cHBvcnQgMSB0aWxlIGdy b3VwIHNvIGZhcg0KPiA+ID4gYW5kIGxlYXZlIHRoZSByb29tIGZvciBmdXJ0aGVyIGV4dGVuZGlu ZyBpdCB0byBtdWx0aXBsZSB0aWxlcw0KPiA+ID4gaW5zdGVhZCBvZiBvdmVyIGNvbXBsaWNhdGlu Zw0KPiA+ID4gdGhlIGxvZ2ljIG5vdy4NCj4gPiA+IA0KPiA+ID4gRG9lcyB0aGF0IG1ha2Ugc2Vu c2Ugb3IgZG8geW91IHRoaW5rIHdlIHNob3VsZCBhbHJlYWR5IGFkZCB0aGUNCj4gPiA+IHN1YnRl c3RzIGZvciBtdWx0aXBsZSB0aWxlIGdyb3Vwcz8NCj4gPiANCj4gPiBUaGF0IG1ha2VzIHBlcmZl Y3Qgc2Vuc2UgdG8gbWUsIHN1cHBvcnQgZm9yIG11bHRpcGxlIHRpbGUgZ3JvdXBzDQo+ID4gY2Fu IGJlDQo+ID4gbGVmdCBhcyBhIFRPRE8gZm9yIGxhdGVyLg0KPiA+IA0KPiA+IEluY3JlbWVudGFs IHBhdGNoZXMgYXJlIHdheSBlYXNpZXIgdG8gcmV2aWV3IHRoYW4gb25lLXBhdGNoLXRoYXQtDQo+ ID4gaW1wbGVtZW50cy1hbGwtZmVhdHVyZXMtYXQtb25jZS4gOikNCj4gDQo+IEdyZWF0IHNvIHdl IHdpbGwga2VlcCB0aGUgaW1wbGVtbmV0YXRpb24gdG8gMSB0aWxlIGdyb3VwIGlkIGZvciBub3cN Cj4gDQo+ID4gDQo+ID4gPiA+ID4gPiA+ICt7DQo+ID4gPiA+ID4gPiA+ICsgICAgaW50IGk7DQo+ ID4gPiA+ID4gPiA+ICsgICAgZHJtTW9kZVJlcyAqcmVzOw0KPiA+ID4gPiA+ID4gPiArICAgIGRy bU1vZGVDb25uZWN0b3IgKmNvbm5lY3RvcjsNCj4gPiA+ID4gPiA+ID4gKyAgICBkcm1Nb2RlUHJv cGVydHlQdHIgcHJvcDsNCj4gPiA+ID4gPiA+ID4gKyAgICBkcm1Nb2RlUHJvcGVydHlCbG9iUHRy IGJsb2I7DQo+ID4gPiA+ID4gPiA+ICsgICAgaWd0X3RpbGVfaW5mb190IHRpbGU7DQo+ID4gPiA+ ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gKyAgICBpZ3RfcmVxdWlyZShyZXMgPSBkcm1Nb2RlR2V0 UmVzb3VyY2VzKGRhdGEtDQo+ID4gPiA+ID4gPiA+ID5kcm1fZmQpKTsNCj4gPiA+ID4gPiA+IA0K PiA+ID4gPiA+ID4gVGhpcyBzaG91bGQgcHJvYmFibHkgYmUgaWd0X2Fzc2VydC4NCj4gPiA+ID4g PiA+IA0KPiA+ID4gPiA+ID4gPiArICAgIGZvcihpID0gMDsgaSA8IHJlcy0+Y291bnRfY29ubmVj dG9yczsgaSsrKQ0KPiA+ID4gPiA+ID4gPiArICAgIHsNCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ ID4gU3R5bGU6IG5vIG5ld2xpbmUgYmVmb3JlIGB7YCAob25seSBmb3IgZnVuY3Rpb25zLCBhcHBs aWVzDQo+ID4gPiA+ID4gPiB0byB0aGUgd2hvbGUNCj4gPiA+ID4gPiA+IHBhdGNoKS4NCj4gPiA+ ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiArICAgICAgICBjb25uZWN0b3IgPSBkcm1Nb2RlR2V0Q29u bmVjdG9yQ3VycmVudChkYXRhLQ0KPiA+ID4gPiA+ID4gPiA+ZHJtX2ZkLCBcDQo+ID4gPiA+ID4g PiANCj4gPiA+ID4gPiA+IFN0eWxlOiB1bm5lY2Vzc2FyeSBgXGAuDQo+ID4gPiA+ID4gPiANCj4g PiA+ID4gPiA+IFdlIGNvdWxkIGlndF9hc3NlcnQoY29ubmVjdG9yKS4NCj4gPiA+ID4gPiA+IA0K PiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXMtDQo+ID4gPiA+ID4gPiA+ID5jb25uZWN0b3JzW2ldKTsNCj4gPiA+ID4gPiA+ID4g Kw0KPiA+ID4gPiA+ID4gPiArICAgICAgICBpZighKChjb25uZWN0b3ItPmNvbm5lY3Rpb24gPT0N Cj4gPiA+ID4gPiA+ID4gRFJNX01PREVfQ09OTkVDVEVEKSAmJg0KPiA+ID4gPiA+ID4gPiArICAg ICAgICAgICAgKGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUgPT0NCj4gPiA+ID4gPiA+ID4gRFJN X01PREVfQ09OTkVDVE9SX0Rpc3BsYXlQb3J0KSkpDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAg ICAgICAgY29udGludWU7DQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IFN0eWxlOiB3ZSBjYW4g aW52ZXJ0IHRoaXMgY29uZGl0aW9uIHRvIG1ha2UgY2xlYXJlci4NCj4gPiA+ID4gPiANCj4gPiA+ ID4gPiBCdXQgd291bGRudCB0aGF0IGFkZCBhZGRpdGlvbmFsIG5lc3Rpbmc/DQo+ID4gPiA+IA0K PiA+ID4gPiBJIG1lYW4sIHRoaXMgY291bGQgYmUgcmUtd3JpdHRlbiBhczoNCj4gPiA+ID4gDQo+ ID4gPiA+ICAgICBpZiAoY29ubmVjdG9yLT5jb25uZWN0aW9uICE9IERSTV9NT0RFX0NPTk5FQ1RF RCB8fA0KPiA+ID4gPiAgICAgICAgIGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUgIT0NCj4gPiA+ ID4gRFJNX01PREVfQ09OTkVDVE9SX0Rpc3BsYXlQb3J0KQ0KPiA+ID4gDQo+ID4gPiBPaCB5ZXMg dGhhdCBtYWtlcyBwZXJmZWN0IHNlbnNlIQ0KPiA+ID4gDQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ ID4gPiA+ID4gKyAgICAgICAgZm9yKGkgPSAwOyBpIDwgY29ubmVjdG9yLT5jb3VudF9wcm9wczsg aSsrKQ0KPiA+ID4gPiA+ID4gPiArICAgICAgICB7DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAg ICBwcm9wID0gZHJtTW9kZUdldFByb3BlcnR5KGRhdGEtPmRybV9mZCwNCj4gPiA+ID4gPiA+ID4g Y29ubmVjdG9yLT5wcm9wc1tpXSk7DQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IFdlIGNvdWxk IGlndF9hc3NlcnQocHJvcCkNCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gV2UgbmVlZCB0byBm cmVlIGl0IGF0IHNvbWUgcG9pbnQuDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gKyAgICAg ICAgICAgIGlmKCEoZHJtX3Byb3BlcnR5X2lzX3RpbGUocHJvcCkgJiYNCj4gPiA+ID4gPiA+IA0K PiA+ID4gPiA+ID4gU3R5bGU6IG1pc3Npbmcgc3BhY2UgYWZ0ZXIgaWYga2V5d29yZCAoYXBwbGll cyB0byB0aGUgd2hvbGUNCj4gPiA+ID4gPiA+IHBhdGNoKS4NCj4gPiA+ID4gPiA+IA0KPiA+ID4g PiA+ID4gPiArICAgICAgICAgICAgICAgIGRybV9wcm9wZXJ0eV90eXBlX2lzKHByb3AsDQo+ID4g PiA+ID4gPiA+IERSTV9NT0RFX1BST1BfQkxPQikpKQ0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4g PiBJJ2QgbW92ZSB0aGlzIGNoZWNrIGludG8gZHJtX3Byb3BlcnR5X2lzX3RpbGUuDQo+ID4gPiA+ ID4gPiANCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICBjb250aW51ZTsNCj4gPiA+ID4g PiA+ID4gKw0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgYmxvYiA9IGRybU1vZGVHZXRQcm9w ZXJ0eUJsb2IoZGF0YS0+ZHJtX2ZkLA0KPiA+ID4gPiA+ID4gPiBcDQo+ID4gPiA+ID4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0b3ItDQo+ID4g PiA+ID4gPiA+ID5wcm9wX3ZhbHVlc1tpXSk7DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ ID4gKyAgICAgICAgICAgIGlmKCFibG9iKQ0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAg IGJyZWFrOw0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgaWd0X3BhcnNlX2Nvbm5lY3Rvcl90 aWxlX2Jsb2IoYmxvYiwgJnRpbGUpOw0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgZGF0YS0+ bnVtX2hfdGlsZXMgPSB0aWxlLm51bV9oX3RpbGU7DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAg ICBicmVhazsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgfQ0KPiA+ID4gPiA+ID4gPiArICAgIH0N Cj4gPiA+ID4gPiA+ID4gK30NCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiArc3RhdGlj IGludCBzZXRfdGVzdF9wYXR0ZXJuX2ZiKGRhdGFfdCAqZGF0YSwNCj4gPiA+ID4gPiA+ID4gZGF0 YV9jb25uZWN0b3JfdCAqY29ubl9kYXRhKQ0KPiA+ID4gPiA+ID4gPiArew0KPiA+ID4gPiA+ID4g PiArICAgIGludCBpOw0KPiA+ID4gPiA+ID4gPiArICAgIGludCBjb3VudCA9IDA7DQo+ID4gPiA+ ID4gPiA+ICsgICAgYm9vbCBpc190aWxlID0gZmFsc2U7DQo+ID4gPiA+ID4gPiA+ICsgICAgZW51 bSBwaXBlIHBpcGU7DQo+ID4gPiA+ID4gPiA+ICsgICAgaWd0X3RpbGVfaW5mb190IHRpbGU7DQo+ ID4gPiA+ID4gPiA+ICsgICAgaWd0X291dHB1dF90ICpvdXRwdXQ7DQo+ID4gPiA+ID4gPiA+ICsg ICAgaWd0X3BsYW5lX3QgKnByaW1hcnk7DQo+ID4gPiA+ID4gPiA+ICsgICAgZHJtTW9kZVByb3Bl cnR5UHRyIHByb3A7DQo+ID4gPiA+ID4gPiA+ICsgICAgZHJtTW9kZVByb3BlcnR5QmxvYlB0ciBi bG9iOw0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ICsgICAgZm9yX2VhY2hfY29ubmVj dGVkX291dHB1dChkYXRhLT5kaXNwbGF5LCBvdXRwdXQpDQo+ID4gPiA+ID4gPiA+ICsgICAgew0K PiA+ID4gPiA+ID4gPiArICAgICAgICBpc190aWxlID0gZmFsc2U7DQo+ID4gPiA+ID4gPiA+ICsN Cj4gPiA+ID4gPiA+ID4gKyAgICAgICAgY29ubl9kYXRhW2NvdW50XS5jb25uZWN0b3IgPQ0KPiA+ ID4gPiA+ID4gPiBkcm1Nb2RlR2V0Q29ubmVjdG9yKGRhdGEtPmRpc3BsYXktPmRybV9mZCwgXA0K PiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICANCj4gPiA+ID4gPiA+ID4gIG91dHB1dC0+aWQpOw0KPiA+ID4gPiA+ID4g PiArDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgIGlmKCEoY29ubl9kYXRhW2NvdW50XS5jb25uZWN0 b3ItPmNvbm5lY3Rvcl90eXBlDQo+ID4gPiA+ID4gPiA+ID09DQo+ID4gPiA+ID4gPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICBEUk1fTU9ERV9DT05ORUNUT1JfRGlzcGxheVBvcnQpKQ0KPiA+ ID4gPiA+ID4gPiArICAgICAgICAgICAgY29udGludWU7DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ ID4gPiA+ID4gKyAgICAgICAgLyogUGFyc2UgdGhyb3VnaCBlYWNoIGNvbm5lY3RvciBwcm9wZXJ0 eSAqLw0KPiA+ID4gPiA+ID4gPiArICAgICAgICBmb3IoaSA9IDA7IGkgPCBjb25uX2RhdGFbY291 bnRdLmNvbm5lY3Rvci0NCj4gPiA+ID4gPiA+ID4gPmNvdW50X3Byb3BzOyBpKyspDQo+ID4gPiA+ ID4gPiA+ICsgICAgICAgIHsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgIHByb3AgPSBkcm1N b2RlR2V0UHJvcGVydHkoZGF0YS0+ZGlzcGxheS0NCj4gPiA+ID4gPiA+ID4gPmRybV9mZCwgXA0K PiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25u X2RhdGFbY291bnRdLmMNCj4gPiA+ID4gPiA+ID4gb25uZWN0b3ItPnByb3BzW2ldKTsNCj4gPiA+ ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgaWYoISgoZHJtX3Byb3BlcnR5 X2lzX3RpbGUocHJvcCkgJiYNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICBkcm1fcHJv cGVydHlfdHlwZV9pcyhwcm9wLA0KPiA+ID4gPiA+ID4gPiBEUk1fTU9ERV9QUk9QX0JMT0IpKSkp DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgY29udGludWU7DQo+ID4gPiA+ID4gPiA+ ICsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgIGJsb2IgPSBkcm1Nb2RlR2V0UHJvcGVydHlC bG9iKGRhdGEtPmRpc3BsYXktDQo+ID4gPiA+ID4gPiA+ID5kcm1fZmQsIFwNCj4gPiA+ID4gPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uX2RhdGFbY291bnRdLmNvbm5lY3Rv ci0NCj4gPiA+ID4gPiA+ID4gPnByb3BfdmFsdWVzW2ldKTsNCj4gPiA+ID4gPiA+ID4gKw0KPiA+ ID4gPiA+ID4gPiArICAgICAgICAgICAgaWYoIWJsb2IpDQo+ID4gPiA+ID4gPiA+ICsgICAgICAg ICAgICAgICAgYnJlYWs7DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAg ICAgIGlndF9wYXJzZV9jb25uZWN0b3JfdGlsZV9ibG9iKGJsb2IsICZ0aWxlKTsNCj4gPiA+ID4g PiA+ID4gKyAgICAgICAgICAgIGNvbm5fZGF0YVtjb3VudF0udGlsZSA9ICZ0aWxlOw0KPiA+ID4g PiA+ID4gPiArICAgICAgICAgICAgaXNfdGlsZSA9IHRydWU7DQo+ID4gPiA+ID4gPiA+ICsgICAg ICAgICAgICBicmVhazsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgfQ0KPiA+ID4gPiA+ID4gDQo+ ID4gPiA+ID4gPiBJIGZlZWwgbGlrZSB0aGlzIHdob2xlIGJsb2NrIGFib3ZlIGlzIGR1cGxpY2F0 ZWQuIENvdWxkIGJlDQo+ID4gPiA+ID4gPiBleHRyYWN0ZWQNCj4gPiA+ID4gPiA+IGludG8gYSBm dW5jdGlvbiwgZS5nLg0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiAgICAgYm9vbCBjb25uZWN0 b3JfZ2V0X3RpbGUoZHJtTW9kZUNvbm5lY3RvclJlcyAqY29ubiwNCj4gPiA+ID4gPiA+IGlndF90 aWxlX2luZm9fdCAqdGlsZV9pbmZvKQ0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ICsgICAg ICAgIGlmKCFpc190aWxlKQ0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgY29udGludWU7DQo+ ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgb3V0cHV0ID0gaWd0X291dHB1 dF9mcm9tX2Nvbm5lY3RvcihkYXRhLQ0KPiA+ID4gPiA+ID4gPiA+ZGlzcGxheSwgXA0KPiA+ID4g PiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5f ZGF0YVtjb3UNCj4gPiA+ID4gPiA+ID4gbnRdLmNvbm5lY3Rvcik7DQo+ID4gPiA+ID4gPiANCj4g PiA+ID4gPiA+IFN0eWxlOiB1bm5lY2Vzc2FyeSBgXGAuIEFwcGxpZXMgdG8gdGhlIHdob2xlIHBh dGNoLg0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gKyAgICAg ICAgZm9yX2VhY2hfcGlwZShkYXRhLT5kaXNwbGF5LCBwaXBlKQ0KPiA+ID4gPiA+ID4gPiArICAg ICAgICB7DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICBpZ3RfZGVidWcoIkN1cnJlbnQgUElQ RSBpcyAlZFxuIiwgcGlwZSk7DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gKyAgICAg ICAgICAgIGlmKChjb3VudCA+IDApICYmIChwaXBlID09IGNvbm5fZGF0YVtjb3VudC0NCj4gPiA+ ID4gPiA+ID4gMV0ucGlwZSkpDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgY29udGlu dWU7DQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IFN0eWxlOiB1bm5lY2Vzc2FyeSBwYXJlbnRo ZXNlcy4NCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgaWYoaWd0X3Bp cGVfY29ubmVjdG9yX3ZhbGlkKHBpcGUsIG91dHB1dCkpIHsNCj4gPiA+ID4gPiA+ID4gKyAgICAg ICAgICAgICAgICBjb25uX2RhdGFbY291bnRdLnBpcGUgPSBwaXBlOw0KPiA+ID4gPiA+ID4gPiAr ICAgICAgICAgICAgICAgIGNvbm5fZGF0YVtjb3VudF0ub3V0cHV0ID0gb3V0cHV0Ow0KPiA+ID4g PiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgaWd0X291dHB1dF9zZXRf cGlwZShjb25uX2RhdGFbY291bnRdLm91dA0KPiA+ID4gPiA+ID4gPiBwdXQsIFwNCj4gPiA+ID4g PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5fZGF0YVtjb3Vu dF0ucGlwDQo+ID4gPiA+ID4gPiA+IGUpOw0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ ICsgICAgICAgICAgICAgICAgaWd0X2NyZWF0ZV9wYXR0ZXJuX2ZiKGRhdGEtPmRybV9mZCxcDQo+ ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubl9k YXRhW2NvdW50XS50aQ0KPiA+ID4gPiA+ID4gPiBsZS0+dGlsZV9oX3NpemUgKlwNCj4gPiA+ID4g PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLQ0KPiA+ID4g PiA+ID4gPiA+bnVtX2hfdGlsZXMpLFwNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25uX2RhdGFbY291bnRdLnRpDQo+ID4gPiA+ID4gPiA+IGxl LT50aWxlX3Zfc2l6ZSxcDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRFJNX0ZPUk1BVF9YQkdSODg4OA0KPiA+ID4gPiA+ID4gPiAsXA0KPiA+ID4g PiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExPQ0FMX0RSTV9G T1JNQVRfTU8NCj4gPiA+ID4gPiA+ID4gRF9OT05FLFwNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29ubl9kYXRhW2NvdW50XS5mDQo+ID4gPiA+ ID4gPiA+IGJfdGVzdF9wYXR0ZXJuKTsNCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiAr ICAgICAgICAgICAgICAgIHByaW1hcnkgPQ0KPiA+ID4gPiA+ID4gPiBpZ3Rfb3V0cHV0X2dldF9w bGFuZV90eXBlKGNvbm5fZGF0YVtjb3VudF0ub3V0cHV0LFwNCj4gPiA+ID4gPiA+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEUk1fDQo+ID4g PiA+ID4gPiA+IFBMQU5FX1RZUEVfUFJJTUFSWSk7DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4g PiA+ID4gKyAgICAgICAgICAgICAgICBpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksDQo+ID4gPiA+ ID4gPiA+ICZjb25uX2RhdGFbY291bnRdLmZiX3Rlc3RfcGF0dGVybik7DQo+ID4gPiA+ID4gPiA+ ICsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICBpZ3RfZmJfc2V0X3NpemUoJmNvbm5f ZGF0YVtjb3VudF0uZmJfdGVzDQo+ID4gPiA+ID4gPiA+IHRfcGF0dGVybiwgcHJpbWFyeSxcDQo+ ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5fZGF0YVtj b3VudF0udGlsZS0NCj4gPiA+ID4gPiA+ID4gPnRpbGVfaF9zaXplLFwNCj4gPiA+ID4gPiA+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubl9kYXRhW2NvdW50XS50aWxlLQ0K PiA+ID4gPiA+ID4gPiA+dGlsZV92X3NpemUpOw0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4g PiA+ICsgICAgICAgICAgICAgICAgaWd0X2ZiX3NldF9wb3NpdGlvbigmY29ubl9kYXRhW2NvdW50 XS5mYg0KPiA+ID4gPiA+ID4gPiBfdGVzdF9wYXR0ZXJuLCBcDQo+ID4gPiA+ID4gPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5LFwNCj4gPiA+ID4gPiA+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uX2RhdGFbY291bnRdLnRp DQo+ID4gPiA+ID4gPiA+IGxlLT50aWxlX2hfc2l6ZSAqXA0KPiA+ID4gPiA+ID4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubl9kYXRhW2NvdW50XS50aWwNCj4gPiA+ ID4gPiA+ID4gZS0+dGlsZV9oX2xvYyksDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoY29ubl9kYXRhW2NvdW50XS50aQ0KPiA+ID4gPiA+ID4gPiBs ZS0+dGlsZV92X3NpemUgKlwNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbm5fZGF0YVtjb3VudF0udGlsDQo+ID4gPiA+ID4gPiA+IGUtPnRpbGVf dl9sb2MpKTsNCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAg IGlndF9wbGFuZV9zZXRfc2l6ZShwcmltYXJ5LFwNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29ubl9kYXRhW2NvdW50XS50aWxlDQo+ID4gPiA+ID4g PiA+IC0+dGlsZV9oX3NpemUsXA0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25uX2RhdGFbY291bnRdLnRpbGUNCj4gPiA+ID4gPiA+ID4gLT50aWxl X3Zfc2l6ZSk7DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAg ICBicmVhazsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgIH0NCj4gPiA+ID4gPiA+ID4gKyAg ICAgICAgfQ0KPiA+ID4gPiA+ID4gPiArICAgICAgICBjb3VudCsrOw0KPiA+ID4gPiA+ID4gPiAr ICAgIH0NCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiArICAgIHJldHVybiBjb3VudDsN Cj4gPiA+ID4gPiA+ID4gK30NCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiAraWd0X21h aW4NCj4gPiA+ID4gPiA+ID4gK3sNCj4gPiA+ID4gPiA+ID4gKyAgICBpZ3RfZGlzcGxheV90IGRp c3BsYXk7DQo+ID4gPiA+ID4gPiA+ICsgICAgZGF0YV90IGRhdGEgPSB7fTsNCj4gPiA+ID4gPiA+ ID4gKyAgICBkYXRhX2Nvbm5lY3Rvcl90ICpjb25uX2RhdGE7DQo+ID4gPiA+ID4gPiA+ICsNCj4g PiA+ID4gPiA+ID4gKyAgICBpZ3RfZml4dHVyZSB7DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgIGRh dGEuZHJtX2ZkID0NCj4gPiA+ID4gPiA+ID4gZHJtX29wZW5fZHJpdmVyX21hc3RlcihEUklWRVJf QU5ZKTsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAga21zdGVzdF9zZXRfdnRfZ3JhcGhpY3NfbW9k ZSgpOw0KPiA+ID4gPiA+ID4gPiArICAgICAgICBpZ3RfZGlzcGxheV9yZXF1aXJlKCZkaXNwbGF5 LCBkYXRhLmRybV9mZCk7DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgIGRhdGEuZGlzcGxheSA9ICZk aXNwbGF5Ow0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgIGdldF9udW1i ZXJfb2ZfaF90aWxlcygmZGF0YSk7DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgIGlndF9kZWJ1Zygi TnVtYmVyIG9mIEhvcml6b250YWwgVGlsZXM6ICVkXG4iLA0KPiA+ID4gPiA+ID4gPiBkYXRhLm51 bV9oX3RpbGVzKTsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgZGF0YS5jb21taXQgPSBkYXRhLmRp c3BsYXktPmlzX2F0b21pYyA/DQo+ID4gPiA+ID4gPiA+IENPTU1JVF9BVE9NSUMgOiBDT01NSVRf TEVHQUNZOw0KPiA+ID4gPiA+ID4gPiArICAgIH0NCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ ID4gPiArICAgIGlmKGRhdGEubnVtX2hfdGlsZXMgPiAwKQ0KPiA+ID4gPiA+ID4gPiArICAgICAg ICBjb25uX2RhdGEgPSAoZGF0YV9jb25uZWN0b3JfdA0KPiA+ID4gPiA+ID4gPiAqKW1hbGxvYyhk YXRhLm51bV9oX3RpbGVzICogXA0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGQNCj4gPiA+ID4gPiA+ID4gYXRhX2Nv bm5lY3Rvcl90KSk7DQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IE5vIG5lZWQgZm9yIHRoaXMg Y2FzdCwgdW5uZWNlc3NhcnkgYFxgLg0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ICsgICAg aWd0X2Fzc2VydChjb25uX2RhdGEpOw0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiBUaGlzIGNo ZWNrIHJlYWRzIGdhcmJhZ2UgZnJvbSB0aGUgc3RhY2sgaWYgZGF0YS5udW1faF90aWxlcw0KPiA+ ID4gPiA+ID4gPT0gMC4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBUaGlzIGNoZWNrIHNob3VsZCBw b3NzaWJseSBiZSBpbnNpZGUgdGhlIHNhbWUgaWYNCj4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4g KyAgICBpZ3Rfc3VidGVzdF9mKCJiYXNpYy10ZXN0LXBhdHRlcm4iKSB7DQo+ID4gPiA+ID4gPiAN Cj4gPiA+ID4gPiA+IE5vIG5lZWQgZm9yIHRoZSBfZiBzdWZmaXguDQo+ID4gPiA+ID4gPiANCj4g PiA+ID4gPiA+IFRoaXMgc3VidGVzdCBpcyBtaXNzaW5nIGEgZGVzY3JpcHRpb24uIENvdWxkIHlv dSBhZGQgb25lPw0KPiA+ID4gPiA+ID4gRm9yIG1vcmUNCj4gPiA+ID4gPiA+IGluZm9ybWF0aW9u LCBzZWU6DQo+ID4gPiA+ID4gPiANCmh0dHBzOi8vZHJtLnBhZ2VzLmZyZWVkZXNrdG9wLm9yZy9p Z3QtZ3B1LXRvb2xzL2lndC1ncHUtdG9vbHMtQ29yZS5odG1sI2lndC1kZXNjcmliZQ0KPiA+ID4g PiA+ID4gDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgIGlndF9za2lwX29uKCFkYXRhLm51bV9oX3Rp bGVzKTsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgc2V0X3Rlc3RfcGF0dGVybl9mYigmZGF0YSwg Y29ubl9kYXRhKTsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgaWd0X2Rpc3BsYXlfY29tbWl0Mihk YXRhLmRpc3BsYXksIGRhdGEuY29tbWl0KTsNCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gSSdt IG5vdCBzdXJlIEkgdW5kZXJzdGFuZCB3aGF0IHRoaXMgdGVzdCBjaGVja3MuIEl0IGRvZXMgYQ0K PiA+ID4gPiA+ID4gY29tbWl0IG9uDQo+ID4gPiA+ID4gPiBhbGwgdGlsZWQgY29ubmVjdG9ycywg YnV0IGRvZXNuJ3QgY2hlY2sgYW55dGhpbmcNCj4gPiA+ID4gPiA+IGFmdGVyd2FyZHMuIE1heWJl IGl0DQo+ID4gPiA+ID4gPiBzaG91bGQgY2hlY2sgdGhlIHBhZ2VmbGlwIHNlcmlhbCBhbmQgdGlt aW5ncz8NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBUaGlzIGlzIHNvIGZhciBhIG1hbnVhbCB0ZXN0 IHdoZXJlIHdlIGp1c3QgbG9vayBhdCB0aGUNCj4gPiA+ID4gPiBwYXR0ZXJuIGFuZCBtYWtlIHN1 cmUgbm8gYXJ0aWZhY3RzDQo+ID4gPiA+ID4gYW5kIGF1dG8gdGVzdGluZyBqdXN0IG1ha2Ugc3Vy ZSB0aGUgY29tbWl0IGRpZCBub3QgZmFpbCwgYW55DQo+ID4gPiA+ID4gYmV0dGVyIGlkZWEgdG8g Y2hlY2sgaWYgdGhlDQo+ID4gPiA+ID4gcGFnZV9mbGlwIHRpbWVvdXRzIGRpZG50IG9jY3VyIG9y IG5vdCBzdXJlIGlmIHdlIGNhbiBkbyBjcmMNCj4gPiA+ID4gPiBjaGVja3MgdG8gZW5zdXJlIG5v IGFydGlmYWN0cz8NCj4gPiA+ID4gPiBBbnkgaWRlYXMvc3VnZ2VzdGlvbnM/DQo+ID4gPiA+IA0K PiA+ID4gPiBUbyBiZSBob25lc3QgSSdtIG5vdCBhIGZhbiBvZiBtYW51YWwgdGVzdGluZy4NCj4g PiA+ID4gDQo+ID4gPiA+IEFzIEkgdW5kZXJzdGFuZCBpdCwgdGlsZWQgZGlzcGxheXMgbXVzdCBi ZSB1cGRhdGVkIGluIHN5bmMgc28NCj4gPiA+ID4gdGhhdCB5b3UNCj4gPiA+ID4gZG9uJ3QgZ2V0 IHRlYXJpbmcuIElmIG9uZSBkaXNwbGF5IGlzIHBhZ2UtZmxpcHBlZCBiZWZvcmUgdGhlDQo+ID4g PiA+IG90aGVyLA0KPiA+ID4gPiB0aGVyZSB3aWxsIGJlIHRlYXJpbmcgaW4gdGhlIG1pZGRsZSBv ZiB0aGUgdGlsZWQgc2NyZWVuLiBBbSBJDQo+ID4gPiA+IHJlYWRpbmcNCj4gPiA+ID4gdGhlIGNv bW1pdCBtZXNzYWdlIGNvcnJlY3RseT8NCj4gPiA+IA0KPiA+ID4gWWVzIHRoZXJlIHdvdWxkIGJl IHRlYXJpbmcgaWYgb25lIHRpbGUgcGFnZSBmbGlwcGVkIGJlZm9yZSB0aGUNCj4gPiA+IG90aGVy DQo+ID4gPiBhbmQgdGhlIEhXIHByZXZlbnRzIHRoaXMgZnJvbSBoYXBwZW5pbmcgYnkgc3luY2hy b25pemluZyB0aGUgdHdvDQo+ID4gPiB2YmxhbmtzDQo+ID4gPiBmcm9tIHRoZSB0d28gcG9ydHMu DQo+ID4gPiANCj4gPiA+IElmIHRoZXJlIGFuIGV4YW1wbGUgb2YgaWd0IHdoZXJlIHdlIGNhbiBj aGVjayB0aGUgdmJsYW5rIHRpbWluZw0KPiA+ID4gb3IgcGFnZSBmbGlwIHRpbWluZ3MNCj4gPiA+ IHRvIGFkZCB0aGlzIGNoZWNrPw0KPiA+IA0KPiA+IEkgYmVsaWV2ZSB0ZXN0cyBpbiBrbXNfZmxp cCBkbyBhIHNpbWlsYXIgY2hlY2suIFRoZQ0KPiA+IHBhZ2VfZmxpcF9oYW5kbGVyDQo+ID4gZnVu Y3Rpb24gaGFuZGxlcyB0aGUgcGFnZSBmbGlwIGV2ZW50ICh3aGljaCBpcyBnaXZlbiB0aGUgZmxp cA0KPiA+IHRpbWVzdGFtcA0KPiA+IGFuZCBzZXF1ZW5jZSBudW1iZXIpLiBjaGVja19zdGF0ZSB2 ZXJpZmllcyB0aGF0IHRoZSB0aW1lc3RhbXAgaXMNCj4gPiBjbG9zZQ0KPiA+IGVub3VnaCB0byB3 aGF0IHdlIGV4cGVjdCAoaW4gb3VyIGF0b21pYyBjaGVjaywgbWF5YmUgd2UgY2FuIGNvbXBhcmUN Cj4gPiB3aXRoIHN0cmljdCBlcXVhbGl0eSkuDQo+ID4gDQo+ID4gU2luY2Ugd2UncmUgZGVhbGlu ZyB3aXRoIG11bHRpcGxlIENSVENzLCBpdCBtYXkgYmUgYSBnb29kIGlkZWEgdG8NCj4gPiB1c2UN Cj4gPiBkcm1FdmVudENvbnRleHQudmVyc2lvbiA9IDMgd2l0aCBwYWdlX2ZsaXBfaGFuZGxlcjIg c28gdGhhdCB3ZSBhbHNvDQo+ID4gZ2V0DQo+ID4gdGhlIENSVEMgaW4gdGhlIHBhZ2UgZmxpcCBo YW5kbGVyLiBWZXJzaW9uIDMgaXMgYSBjb3JlIERSTSBmZWF0dXJlLA0KPiA+IGFsbA0KPiA+IGRy aXZlcnMgc3VwcG9ydCBpdCBnaXZlbiBhIHJlY2VudCBlbm91Z2gga2VybmVsLg0KPiA+IA0KPiA+ IFJvdWdoIHBzZXVkby1jb2RlOg0KPiA+IA0KPiA+IAkvKiBXaGVuIGNvbW1pdHRpbmcgYnVmZmVy LCByZXF1ZXN0IGEgcGFnZSBmbGlwICovDQo+ID4gCWRybU1vZGVBdG9taWNDb21taXQoZmQsIHJl cSwgRFJNX01PREVfQVRPTUlDX05PTkJMT0NLIHwNCj4gPiAJCQkgICAgRFJNX01PREVfUEFHRV9G TElQX0VWRU5ULCBkYXRhKTsNCj4gDQo+IEhlcmUgd2UgZG8gdGhlIG1vZGVzZSB3aXRoIGlndF9k aXNwbGF5X2NvbW1pdDIgY2FsbCB0aGF0IHRoZW4gY2FsbHMNCj4gZHJtTW9kZUF0b21pY0NvbW1p dCBidXQNCj4gZG9lc250IGNhbGwgaXQgd2l0aCBQYWdlIGZsaXAsIGRvIHdlIGhhdmUgYW5vdGhl ciBpZ3QgaGVscGVyIHRoYXQNCj4gZG9lcyBhIGF0b21pYyBjb21taXQgd2l0aA0KPiBwYWdlIGZs aXAgZXZlbnQ/DQo+IA0KDQpJIHdhcyBsb29raW5nIGF0IGFkZGluZyBhIGNoZWNrIGZvciBQYWdl IEZsaXAgZXZlbnQgYW5kIHZlcmlmeWluZw0KVGltZXN0YW1wcy4NCkxvb2tzIGxpa2UgaWd0X2Rp c3BsYXlfY29tbWl0X2F0b21pYygpIHdpdGggRFJNX01PREVfUEFHRV9GTElQX0VWRU5UDQpmbGFn IGFsbG93cyB1cyB0byBwZXJmcm9tIGEgY29tbWl0IGFuZCB3aXRoIGEgcGFnZSBmbGlwIGV2ZW50 Lg0KUGxlYXNlIGRvIGxldCBtZSBrbm93IGlmIHRoZXJlIGlzIGEgYmV0dGVyIHdheSB0byBkbyB0 aGlzLg0KDQpNYWRodW1pdGhhDQoNCg0KPiBDYW4gd2Ugbm90IGp1c3QgZG8gYXRvbWljIGNvbW1p dCBhbmQgZ2V0IHZibGFuayBldmVudHMgc28gZm9yIHR3bw0KPiBjcnRjcyB3ZSBnZXQgdHdvIGV2 ZW50cyBhbmQgY29tcGFyZQ0KPiB0aGUgdGltZXN0YW1wIGFuZCBtYWtlIHN1cmUgdGhleSBhcmUg Y2xvc2UgZW5vdWdoPw0KPiANCj4gTWFuYXNpDQo+IA0KPiA+IA0KPiA+IAlzdGF0aWMgdm9pZCBw YWdlX2ZsaXBfaGFuZGxlcihpbnQgZmQsIHVuc2lnbmVkIHNlcSwNCj4gPiAJCQkJICAgICAgdW5z aWduZWQgdHZfc2VjLA0KPiA+IAkJCQkgICAgICB1bnNpZ25lZCB0dl91c2VjLA0KPiA+IAkJCQkg ICAgICB1bnNpZ25lZCBjcnRjX2lkLCB2b2lkICpkYXRhKQ0KPiA+IAl7DQo+ID4gCQkvKiBDb21w YXJlIHBhcmFtcyB3aXRoIHRoZSBvdGhlciBwYWdlIGZsaXAgKi8NCj4gPiAJfQ0KPiA+IA0KPiA+ IAkvKiBXaGVuIHdlIGdldCBQT0xMSU4gaW4gdGhlIERSTSBGRCAqLw0KPiA+IAlkcm1FdmVudENv bnRleHQgZXZlbnQgPSB7DQo+ID4gCQkudmVyc2lvbiA9IDMsDQo+ID4gCQkucGFnZV9mbGlwX2hh bmRsZXIyID0gcGFnZV9mbGlwX2hhbmRsZXIsDQo+ID4gCX07DQo+ID4gCWRybUhhbmRsZUV2ZW50 KGZkLCAmZXZlbnQpOw0KPiA+IA0KPiA+ID4gTWFuYXNpDQo+ID4gPiANCj4gPiA+ID4gSWYgc28s IG1heWJlIHdlIGNhbiBjaGVjayB0aGUgcGFnZS1mbGlwIHRpbWluZ3MgYW5kIG1ha2Ugc3VyZQ0K PiA+ID4gPiB0aGV5IGFyZQ0KPiA+ID4gPiBlcXVhbD8NCj4gPiA+ID4gDQo+ID4gPiA+IEEgQ1JD IGNoZWNrIG1pZ2h0IGJlIGEgZ29vZCBpZGVhIHRvbywgdG8gbWFrZSBzdXJlIGJhbmR3aWR0aA0K PiA+ID4gPiBpc24ndCBhbg0KPiA+ID4gPiBpc3N1ZS4NCj4gPiA+ID4gDQo+ID4gPiA+IENDJ2lu ZyBNYXJ0aW4gaW4gY2FzZSBoZSBoYXMgYmV0dGVyIGlkZWFzLg0KPiA+ID4gPiANCj4gPiA+ID4g PiBNYW5hc2kNCj4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gKyAgICB9DQo+ID4gPiA+ID4gPiA+ ICsNCj4gPiA+ID4gPiA+ID4gKyAgICBpZ3RfZml4dHVyZSB7DQo+ID4gPiA+ID4gPiA+ICsgICAg ICAgIGlmKGRhdGEubnVtX2hfdGlsZXMgPiAwKQ0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAg ZnJlZShjb25uX2RhdGEpOw0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiBJZiBjb25uX2RhdGEg d2FzIGluaXRpYWxpemVkIHRvIE5VTEwsIG5vIG5lZWQgZm9yIHRoZQ0KPiA+ID4gPiA+ID4gY2hl Y2ssIGJlY2F1c2UNCj4gPiA+ID4gPiA+IGZyZWUoTlVMTCkgaXMgYSBuby1vcC4NCj4gPiA+ID4g PiA+IA0KPiA+ID4gPiA+ID4gPiArICAgICAgICBrbXN0ZXN0X3Jlc3RvcmVfdnRfbW9kZSgpOw0K PiA+ID4gPiA+ID4gPiArICAgICAgICBpZ3RfZGlzcGxheV9maW5pKGRhdGEuZGlzcGxheSk7DQo+ ID4gPiA+ID4gPiA+ICsgICAgfQ0KPiA+ID4gPiA+ID4gPiArfQ0KPiA+ID4gPiA+ID4gPiBkaWZm IC0tZ2l0IGEvdGVzdHMvbWVzb24uYnVpbGQgYi90ZXN0cy9tZXNvbi5idWlsZA0KPiA+ID4gPiA+ ID4gPiBpbmRleCAzNGE3NDAyNS4uNmE2ZTljZTkgMTAwNjQ0DQo+ID4gPiA+ID4gPiA+IC0tLSBh L3Rlc3RzL21lc29uLmJ1aWxkDQo+ID4gPiA+ID4gPiA+ICsrKyBiL3Rlc3RzL21lc29uLmJ1aWxk DQo+ID4gPiA+ID4gPiA+IEBAIC0yNSw2ICsyNSw3IEBAIHRlc3RfcHJvZ3MgPSBbDQo+ID4gPiA+ ID4gPiA+ICAJJ2ttc19jdXJzb3JfZWRnZV93YWxrJywNCj4gPiA+ID4gPiA+ID4gIAkna21zX2N1 cnNvcl9sZWdhY3knLA0KPiA+ID4gPiA+ID4gPiAgCSdrbXNfZHBfZHNjJywNCj4gPiA+ID4gPiA+ ID4gKwkna21zX2RwX3RpbGVkX2Rpc3BsYXknLA0KPiA+ID4gPiA+ID4gPiAgCSdrbXNfZHJhd19j cmMnLA0KPiA+ID4gPiA+ID4gPiAgCSdrbXNfZmJjb25fZmJ0JywNCj4gPiA+ID4gPiA+ID4gIAkn a21zX2ZlbmNlX3Bpbl9sZWFrJywNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0 LWRldg==