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 C511789C3B for ; Wed, 28 Aug 2019 12:58:38 +0000 (UTC) Date: Wed, 28 Aug 2019 15:58:35 +0300 From: Petri Latvala Message-ID: <20190828125835.GC4019@platvala-desk.ger.corp.intel.com> References: <20190816093426.10644-1-petri.latvala@intel.com> <20190816093426.10644-2-petri.latvala@intel.com> <20190828101610.pq4qeko6pghna4de@ahiler-desk1.fi.intel.com> <20190828103023.GA4019@platvala-desk.ger.corp.intel.com> <20190828103844.de3kxmjxsgczmpgv@ahiler-desk1.fi.intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190828103844.de3kxmjxsgczmpgv@ahiler-desk1.fi.intel.com> Subject: Re: [igt-dev] [PATCH i-g-t 01/10] lib: Introduce dynamic subtests 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: Arkadiusz Hiler Cc: igt-dev@lists.freedesktop.org List-ID: T24gV2VkLCBBdWcgMjgsIDIwMTkgYXQgMDE6Mzg6NDRQTSArMDMwMCwgQXJrYWRpdXN6IEhpbGVy IHdyb3RlOgo+IE9uIFdlZCwgQXVnIDI4LCAyMDE5IGF0IDAxOjMwOjIzUE0gKzAzMDAsIFBldHJp IExhdHZhbGEgd3JvdGU6Cj4gPiBPbiBXZWQsIEF1ZyAyOCwgMjAxOSBhdCAwMToxNjoxMFBNICsw MzAwLCBBcmthZGl1c3ogSGlsZXIgd3JvdGU6Cj4gPiA+IE9uIEZyaSwgQXVnIDE2LCAyMDE5IGF0 IDEyOjM0OjE3UE0gKzAzMDAsIFBldHJpIExhdHZhbGEgd3JvdGU6Cj4gPiA+ID4gRHluYW1pYyBz dWJ0ZXN0cywgb3Igc3VidGVzdHMgb2Ygc3VidGVzdHMsIGFyZSBpbmRpdmlkdWFsIHBpZWNlcyBv Zgo+ID4gPiA+IHRlc3RzIHRoYXQgYXJlIG5vdCBzdGF0aWNhbGx5IGF2YWlsYWJsZSBhbGwgdGhl IHRpbWUuCj4gPiA+ID4gCj4gPiA+ID4gQSBnb29kIGV4YW1wbGUgb2YgYSBuZWVkIGZvciBhIGR5 bmFtaWMgc3VidGVzdCBpcyBpOTE1IGVuZ2luZSBsaXN0aW5nOgo+ID4gPiA+IEEgbm9ybWFsIHN1 YnRlc3QgZm9yIGVhY2ggZW5naW5lIGNsYXNzICgiYnNkIiksIGFuZCBhIGR5bmFtaWMgc3VidGVz dAo+ID4gPiA+IGZvciBlYWNoIGluc3RhbmNlICgiYnNkMCIsICJic2QyIiwgZXRjKS4gT3IgYSBu b3JtYWwgc3VidGVzdCBmb3IgYW4KPiA+ID4gPiBvcGVyYXRpb24gd2l0aCBhIGR5bmFtaWMgc3Vi dGVzdCBmb3IgZXZlcnkgZW5naW5lIHRoZXJlIGlzLgo+ID4gPiA+IAo+ID4gPiA+IEFub3RoZXIg ZXhhbXBsZSBpcyBhIGR5bmFtaWMgc3VidGVzdCBmb3IgcGlwZXM6IEluc3RlYWQgb2YgdXNpbmcK PiA+ID4gPiBmb3JlYWNoX3BpcGVfc3RhdGljLCBtYWtlIG9uZSBzdWJ0ZXN0IGFuZCB1c2UgZm9y ZWFjaF9waXBlIHdpdGgKPiA+ID4gPiBkeW5hbWljIHN1YnRlc3RzIGZvciBlYWNoIHBpcGUuCj4g PiA+ID4gCj4gPiA+ID4gdjI6IFJlYmFzZSBhbmQgYWRhcHQgdG8gaWd0X2Rlc2NyaWJlIGNoYW5n ZXMKPiA+ID4gPiAKPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBQZXRyaSBMYXR2YWxhIDxwZXRyaS5s YXR2YWxhQGludGVsLmNvbT4KPiA+ID4gPiAtLS0KPiA+ID4gPiAgbGliL2lndF9jb3JlLmMgfCAx MTkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQo+ID4g PiA+ICBsaWIvaWd0X2NvcmUuaCB8ICA4OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKPiA+ID4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAxOTcgaW5zZXJ0aW9ucygrKSwgMTEgZGVs ZXRpb25zKC0pCj4gPiA+ID4gCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9pZ3RfY29yZS5jIGIv bGliL2lndF9jb3JlLmMKPiA+ID4gPiBpbmRleCAxY2JiMDlmOS4uOGI3NTRiOWYgMTAwNjQ0Cj4g PiA+ID4gLS0tIGEvbGliL2lndF9jb3JlLmMKPiA+ID4gPiArKysgYi9saWIvaWd0X2NvcmUuYwo+ ID4gPiA+IEBAIC0yNjMsOSArMjYzLDEyIEBAIGJvb2wgaWd0X3NraXBfY3JjX2NvbXBhcmU7Cj4g PiA+ID4gIHN0YXRpYyBib29sIGxpc3Rfc3VidGVzdHMgPSBmYWxzZTsKPiA+ID4gPiAgc3RhdGlj IGJvb2wgZGVzY3JpYmVfc3VidGVzdHMgPSBmYWxzZTsKPiA+ID4gPiAgc3RhdGljIGNoYXIgKnJ1 bl9zaW5nbGVfc3VidGVzdCA9IE5VTEw7Cj4gPiA+ID4gK3N0YXRpYyBjaGFyICpydW5fc2luZ2xl X2R5bmFtaWNfc3VidGVzdCA9IE5VTEw7Cj4gPiA+ID4gIHN0YXRpYyBib29sIHJ1bl9zaW5nbGVf c3VidGVzdF9mb3VuZCA9IGZhbHNlOwo+ID4gPiA+ICBzdGF0aWMgY29uc3QgY2hhciAqaW5fc3Vi dGVzdCA9IE5VTEw7Cj4gPiA+ID4gK3N0YXRpYyBjb25zdCBjaGFyICppbl9keW5hbWljX3N1YnRl c3QgPSBOVUxMOwo+ID4gPiA+ICBzdGF0aWMgc3RydWN0IHRpbWVzcGVjIHN1YnRlc3RfdGltZTsK PiA+ID4gPiArc3RhdGljIHN0cnVjdCB0aW1lc3BlYyBkeW5hbWljX3N1YnRlc3RfdGltZTsKPiA+ ID4gPiAgc3RhdGljIGNsb2NraWRfdCBpZ3RfY2xvY2sgPSAoY2xvY2tpZF90KS0xOwo+ID4gPiA+ ICBzdGF0aWMgYm9vbCBpbl9maXh0dXJlID0gZmFsc2U7Cj4gPiA+ID4gIHN0YXRpYyBib29sIHRl c3Rfd2l0aF9zdWJ0ZXN0cyA9IGZhbHNlOwo+ID4gPiA+IEBAIC0zMDAsNiArMzAzLDcgQEAgZW51 bSB7Cj4gPiA+ID4gIAlPUFRfTElTVF9TVUJURVNUUyA9IDUwMCwKPiA+ID4gPiAgCU9QVF9ERVND UklCRV9TVUJURVNUUywKPiA+ID4gPiAgCU9QVF9SVU5fU1VCVEVTVCwKPiA+ID4gPiArCU9QVF9S VU5fRFlOQU1JQ19TVUJURVNULAo+ID4gPiA+ICAJT1BUX0RFU0NSSVBUSU9OLAo+ID4gPiA+ICAJ T1BUX0RFQlVHLAo+ID4gPiA+ICAJT1BUX0lOVEVSQUNUSVZFX0RFQlVHLAo+ID4gPiA+IEBAIC0z MjMsNiArMzI3LDggQEAgY2hhciAqaWd0X2ZyYW1lX2R1bXBfcGF0aDsKPiA+ID4gPiAgCj4gPiA+ ID4gIHN0YXRpYyBib29sIHN0ZGVycl9uZWVkc19zZW50aW5lbCA9IGZhbHNlOwo+ID4gPiA+ICAK PiA+ID4gPiArc3RhdGljIGludCBfaWd0X2R5bmFtaWNfdGVzdHNfZXhlY3V0ZWQgPSAtMTsKPiA+ ID4gPiArCj4gPiA+ID4gIGNvbnN0IGNoYXIgKmlndF90ZXN0X25hbWUodm9pZCkKPiA+ID4gPiAg ewo+ID4gPiA+ICAJcmV0dXJuIGNvbW1hbmRfc3RyOwo+ID4gPiA+IEBAIC0zNTQsNyArMzYwLDkg QEAgc3RhdGljIHZvaWQgX2lndF9sb2dfYnVmZmVyX2R1bXAodm9pZCkKPiA+ID4gPiAgewo+ID4g PiA+ICAJdWludDhfdCBpOwo+ID4gPiA+ICAKPiA+ID4gPiAtCWlmIChpbl9zdWJ0ZXN0KQo+ID4g PiA+ICsJaWYgKGluX2R5bmFtaWNfc3VidGVzdCkKPiA+ID4gPiArCQlmcHJpbnRmKHN0ZGVyciwg IkR5bmFtaWMgc3VidGVzdCAlcyBmYWlsZWQuXG4iLCBpbl9keW5hbWljX3N1YnRlc3QpOwo+ID4g PiA+ICsJZWxzZSBpZiAoaW5fc3VidGVzdCkKPiA+ID4gPiAgCQlmcHJpbnRmKHN0ZGVyciwgIlN1 YnRlc3QgJXMgZmFpbGVkLlxuIiwgaW5fc3VidGVzdCk7Cj4gPiA+ID4gIAllbHNlCj4gPiA+ID4g IAkJZnByaW50ZihzdGRlcnIsICJUZXN0ICVzIGZhaWxlZC5cbiIsIGNvbW1hbmRfc3RyKTsKPiA+ ID4gPiBAQCAtNjE5LDYgKzYyNyw3IEBAIHN0YXRpYyB2b2lkIHByaW50X3VzYWdlKGNvbnN0IGNo YXIgKmhlbHBfc3RyLCBib29sIG91dHB1dF9vbl9zdGRlcnIpCj4gPiA+ID4gIAlmcHJpbnRmKGYs ICJVc2FnZTogJXMgW09QVElPTlNdXG4iLCBjb21tYW5kX3N0cik7Cj4gPiA+ID4gIAlmcHJpbnRm KGYsICIgIC0tbGlzdC1zdWJ0ZXN0c1xuIgo+ID4gPiA+ICAJCSAgICIgIC0tcnVuLXN1YnRlc3Qg PHBhdHRlcm4+XG4iCj4gPiA+ID4gKwkJICAgIiAgLS1keW5hbWljLXN1YnRlc3QgPHBhdHRlcm4+ XG4iCj4gPiA+ID4gIAkJICAgIiAgLS1kZWJ1Z1s9bG9nLWRvbWFpbl1cbiIKPiA+ID4gPiAgCQkg ICAiICAtLWludGVyYWN0aXZlLWRlYnVnWz1kb21haW5dXG4iCj4gPiA+ID4gIAkJICAgIiAgLS1z a2lwLWNyYy1jb21wYXJlXG4iCj4gPiA+ID4gQEAgLTczOSw2ICs3NDgsNyBAQCBzdGF0aWMgaW50 IGNvbW1vbl9pbml0KGludCAqYXJnYywgY2hhciAqKmFyZ3YsCj4gPiA+ID4gIAkJeyJsaXN0LXN1 YnRlc3RzIiwgICAgIG5vX2FyZ3VtZW50LCAgICAgICBOVUxMLCBPUFRfTElTVF9TVUJURVNUU30s Cj4gPiA+ID4gIAkJeyJkZXNjcmliZSIsICAgICAgICAgIG9wdGlvbmFsX2FyZ3VtZW50LCBOVUxM LCBPUFRfREVTQ1JJQkVfU1VCVEVTVFN9LAo+ID4gPiA+ICAJCXsicnVuLXN1YnRlc3QiLCAgICAg ICByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgT1BUX1JVTl9TVUJURVNUfSwKPiA+ID4gPiArCQl7 ImR5bmFtaWMtc3VidGVzdCIsICAgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsIE9QVF9SVU5fRFlO QU1JQ19TVUJURVNUfSwKPiA+ID4gCj4gPiA+IFRoaXMgZGV2aWF0ZXMgZnJvbSAtLXJ1bi1zdWJ0 ZXN0cyBidXQgZXZlbiBPUFRfUlVOX0RZTkFNSUNfU1VCVEVTVCBoYXMKPiA+ID4gInJ1biIgaW4g aXQuIEkgZ3Vlc3MgeW91IGRpZCBpdCB0byBwcmVzZXJ2ZSAnLS1yJyBzaG9ydGhhbmQ/Cj4gPiAK PiA+IFllcyA6UAo+ID4gCj4gPiA+IEFsc28gaW50ZXJhY3Rpb24gYmV0d2VuIC0tcnViLXN1YnRl c3QgYW5kIGlndF9keW5hbWljX3N1YnRlc3RfY29udGFpbmVyCj4gPiA+IGlzIG5vdCB2ZXJ5IG9i dmlvdXMuCj4gPiA+IAo+ID4gPiBTYW1lIGZvciB1c2luZyBib3RoIC0tcnVuLXN1YnRlc3QgYW5k IC0tZHluYW1pYy1zdWJ0ZXN0Lgo+ID4gPiAKPiA+ID4gTWF5YmUgaXQncyB0aW1lIHRvIGludHJv ZHVjZSBzaG9ydCBvcHRpb25zPwo+ID4gPiAKPiA+ID4gPiAgCQl7ImhlbHAtZGVzY3JpcHRpb24i LCAgbm9fYXJndW1lbnQsICAgICAgIE5VTEwsIE9QVF9ERVNDUklQVElPTn0sCj4gPiA+ID4gIAkJ eyJkZWJ1ZyIsICAgICAgICAgICAgIG9wdGlvbmFsX2FyZ3VtZW50LCBOVUxMLCBPUFRfREVCVUd9 LAo+ID4gPiA+ICAJCXsiaW50ZXJhY3RpdmUtZGVidWciLCBvcHRpb25hbF9hcmd1bWVudCwgTlVM TCwgT1BUX0lOVEVSQUNUSVZFX0RFQlVHfSwKPiA+ID4gPiBAQCAtODU4LDYgKzg2OCwxMSBAQCBz dGF0aWMgaW50IGNvbW1vbl9pbml0KGludCAqYXJnYywgY2hhciAqKmFyZ3YsCj4gPiA+ID4gIAkJ CWlmICghbGlzdF9zdWJ0ZXN0cykKPiA+ID4gPiAgCQkJCXJ1bl9zaW5nbGVfc3VidGVzdCA9IHN0 cmR1cChvcHRhcmcpOwo+ID4gPiA+ICAJCQlicmVhazsKPiA+ID4gPiArCQljYXNlIE9QVF9SVU5f RFlOQU1JQ19TVUJURVNUOgo+ID4gPiA+ICsJCQlhc3NlcnQob3B0YXJnKTsKPiA+ID4gPiArCQkJ aWYgKCFsaXN0X3N1YnRlc3RzKQo+ID4gPiA+ICsJCQkJcnVuX3NpbmdsZV9keW5hbWljX3N1YnRl c3QgPSBzdHJkdXAob3B0YXJnKTsKPiA+ID4gPiArCQkJYnJlYWs7Cj4gPiA+ID4gIAkJY2FzZSBP UFRfREVTQ1JJUFRJT046Cj4gPiA+ID4gIAkJCXByaW50X3Rlc3RfZGVzY3JpcHRpb24oKTsKPiA+ ID4gPiAgCQkJcmV0ID0gLTE7Cj4gPiA+ID4gQEAgLTExMDcsNiArMTEyMiw0MSBAQCBib29sIF9f aWd0X3J1bl9zdWJ0ZXN0KGNvbnN0IGNoYXIgKnN1YnRlc3RfbmFtZSwgY29uc3QgY2hhciAqZmls ZSwgY29uc3QgaW50IGxpbgo+ID4gPiA+ICAJcmV0dXJuIChpbl9zdWJ0ZXN0ID0gc3VidGVzdF9u YW1lKTsKPiA+ID4gPiAgfQo+ID4gPiA+ICAKPiA+ID4gPiArYm9vbCBfX2lndF9ydW5fZHluYW1p Y19zdWJ0ZXN0KGNvbnN0IGNoYXIgKmR5bmFtaWNfc3VidGVzdF9uYW1lKQo+ID4gPiA+ICt7Cj4g PiA+ID4gKwlpbnQgaTsKPiA+ID4gPiArCj4gPiA+ID4gKwlhc3NlcnQoaW5fc3VidGVzdCk7Cj4g PiA+ID4gKwlhc3NlcnQoX2lndF9keW5hbWljX3Rlc3RzX2V4ZWN1dGVkID49IDApOwo+ID4gPiA+ ICsKPiA+ID4gPiArCS8qIGNoZWNrIHRoZSBkeW5hbWljX3N1YnRlc3QgbmFtZSBvbmx5IGNvbnRh aW5zIGEteiwgQS1aLCAwLTksICctJyBhbmQgJ18nICovCj4gPiA+ID4gKwlmb3IgKGkgPSAwOyBk eW5hbWljX3N1YnRlc3RfbmFtZVtpXSAhPSAnXDAnOyBpKyspCj4gPiA+ID4gKwkJaWYgKGR5bmFt aWNfc3VidGVzdF9uYW1lW2ldICE9ICdfJyAmJiBkeW5hbWljX3N1YnRlc3RfbmFtZVtpXSAhPSAn LScKPiA+ID4gPiArCQkgICAgJiYgIWlzYWxudW0oZHluYW1pY19zdWJ0ZXN0X25hbWVbaV0pKSB7 Cj4gPiA+ID4gKwkJCWlndF9jcml0aWNhbCgiSW52YWxpZCBkeW5hbWljIHN1YnRlc3QgbmFtZSBc IiVzXCIuXG4iLAo+ID4gPiA+ICsJCQkJICAgICBkeW5hbWljX3N1YnRlc3RfbmFtZSk7Cj4gPiA+ ID4gKwkJCWlndF9leGl0KCk7Cj4gPiA+ID4gKwkJfQo+ID4gPiAKPiA+ID4gU2FtZSBsb2dpYyBh cyBmb3Igbm9ybWFsIHN1YnRlc3RzLCBjb3VsZCB1c2UgYSBoZWxwZXI/Cj4gPiAKPiA+IFllcyEg SSdsbCBkbyB0aGF0IGZvciBuZXh0IHJldmlzaW9uLgo+ID4gCj4gPiAKPiA+ID4gCj4gPiA+ID4g Kwo+ID4gPiA+ICsJaWYgKHJ1bl9zaW5nbGVfZHluYW1pY19zdWJ0ZXN0ICYmCj4gPiA+ID4gKwkg ICAgdXdpbGRtYXQoZHluYW1pY19zdWJ0ZXN0X25hbWUsIHJ1bl9zaW5nbGVfZHluYW1pY19zdWJ0 ZXN0KSA9PSAwKQo+ID4gPiA+ICsJCXJldHVybiBmYWxzZTsKPiA+ID4gPiArCj4gPiA+ID4gKwlp Z3Rfa21zZyhLTVNHX0lORk8gIiVzOiBzdGFydGluZyBkeW5hbWljIHN1YnRlc3QgJXNcbiIsCj4g PiA+ID4gKwkJIGNvbW1hbmRfc3RyLCBkeW5hbWljX3N1YnRlc3RfbmFtZSk7Cj4gPiA+ID4gKwlp Z3RfaW5mbygiU3RhcnRpbmcgZHluYW1pYyBzdWJ0ZXN0OiAlc1xuIiwgZHluYW1pY19zdWJ0ZXN0 X25hbWUpOwo+ID4gPiA+ICsJZmZsdXNoKHN0ZG91dCk7Cj4gPiA+ID4gKwlpZiAoc3RkZXJyX25l ZWRzX3NlbnRpbmVsKQo+ID4gPiA+ICsJCWZwcmludGYoc3RkZXJyLCAiU3RhcnRpbmcgZHluYW1p YyBzdWJ0ZXN0OiAlc1xuIiwgZHluYW1pY19zdWJ0ZXN0X25hbWUpOwo+ID4gPiA+ICsKPiA+ID4g PiArCV9pZ3RfbG9nX2J1ZmZlcl9yZXNldCgpOwo+ID4gPiA+ICsKPiA+ID4gPiArCV9pZ3RfZHlu YW1pY190ZXN0c19leGVjdXRlZCsrOwo+ID4gPiA+ICsKPiA+ID4gPiArCWlndF9nZXR0aW1lKCZk eW5hbWljX3N1YnRlc3RfdGltZSk7Cj4gPiA+ID4gKwlyZXR1cm4gKGluX2R5bmFtaWNfc3VidGVz dCA9IGR5bmFtaWNfc3VidGVzdF9uYW1lKTsKPiA+ID4gPiArfQo+ID4gPiA+ICsKPiA+ID4gPiAg LyoqCj4gPiA+ID4gICAqIGlndF9zdWJ0ZXN0X25hbWU6Cj4gPiA+ID4gICAqCj4gPiA+ID4gQEAg LTExNjEsMjYgKzEyMTEsNTAgQEAgdm9pZCBfX2lndF9zdWJ0ZXN0X2dyb3VwX3Jlc3RvcmUoaW50 IHNhdmUsIGludCBkZXNjKQo+ID4gPiA+ICBzdGF0aWMgYm9vbCBza2lwcGVkX29uZSA9IGZhbHNl Owo+ID4gPiA+ICBzdGF0aWMgYm9vbCBzdWNjZWVkZWRfb25lID0gZmFsc2U7Cj4gPiA+ID4gIHN0 YXRpYyBib29sIGZhaWxlZF9vbmUgPSBmYWxzZTsKPiA+ID4gPiArc3RhdGljIGJvb2wgZHluYW1p Y19mYWlsZWRfb25lID0gZmFsc2U7Cj4gPiA+ID4gKwo+ID4gPiA+ICtib29sIF9faWd0X2VudGVy X2R5bmFtaWNfY29udGFpbmVyKHZvaWQpCj4gPiA+ID4gK3sKPiA+ID4gPiArCV9pZ3RfZHluYW1p Y190ZXN0c19leGVjdXRlZCA9IDA7Cj4gPiA+ID4gKwlkeW5hbWljX2ZhaWxlZF9vbmUgPSBmYWxz ZTsKPiA+ID4gPiArCj4gPiA+ID4gKwlyZXR1cm4gdHJ1ZTsKPiA+ID4gPiArfQo+ID4gPiA+ICAK PiA+ID4gPiAgc3RhdGljIHZvaWQgZXhpdF9zdWJ0ZXN0KGNvbnN0IGNoYXIgKikgX19hdHRyaWJ1 dGVfXygobm9yZXR1cm4pKTsKPiA+ID4gPiAgc3RhdGljIHZvaWQgZXhpdF9zdWJ0ZXN0KGNvbnN0 IGNoYXIgKnJlc3VsdCkKPiA+ID4gPiAgewo+ID4gPiA+ICAJc3RydWN0IHRpbWVzcGVjIG5vdzsK PiA+ID4gPiArCWNvbnN0IGNoYXIgKnN1YnRlc3RfdGV4dCA9IGluX2R5bmFtaWNfc3VidGVzdCA/ ICJEeW5hbWljIHN1YnRlc3QiIDogIlN1YnRlc3QiOwo+ID4gPiA+ICsJY29uc3QgY2hhciAqKnN1 YnRlc3RfbmFtZSA9IGluX2R5bmFtaWNfc3VidGVzdCA/ICZpbl9keW5hbWljX3N1YnRlc3QgOiAm aW5fc3VidGVzdDsKPiA+ID4gPiArCXN0cnVjdCB0aW1lc3BlYyAqdGhlbnRpbWUgPSBpbl9keW5h bWljX3N1YnRlc3QgPyAmZHluYW1pY19zdWJ0ZXN0X3RpbWUgOiAmc3VidGVzdF90aW1lOwo+ID4g PiA+ICsJam1wX2J1ZiAqam1wdGFyZ2V0ID0gaW5fZHluYW1pY19zdWJ0ZXN0ID8gJmlndF9keW5h bWljX3N1YnRlc3Rfam1wYnVmIDogJmlndF9zdWJ0ZXN0X2ptcGJ1ZjsKPiA+ID4gPiAgCj4gPiA+ ID4gIAlpZ3RfZ2V0dGltZSgmbm93KTsKPiA+ID4gPiAtCWlndF9pbmZvKCIlc1N1YnRlc3QgJXM6 ICVzICglLjNmcyklc1xuIiwKPiA+ID4gPiArCj4gPiA+ID4gKwlpZ3RfaW5mbygiJXMlcyAlczog JXMgKCUuM2ZzKSVzXG4iLAo+ID4gPiA+ICAJCSAoIV9faWd0X3BsYWluX291dHB1dCkgPyAiXHgx YlsxbSIgOiAiIiwKPiA+ID4gPiAtCQkgaW5fc3VidGVzdCwgcmVzdWx0LCBpZ3RfdGltZV9lbGFw c2VkKCZzdWJ0ZXN0X3RpbWUsICZub3cpLAo+ID4gPiA+ICsJCSBzdWJ0ZXN0X3RleHQsICpzdWJ0 ZXN0X25hbWUsIHJlc3VsdCwKPiA+ID4gPiArCQkgaWd0X3RpbWVfZWxhcHNlZCh0aGVudGltZSwg Jm5vdyksCj4gPiA+ID4gIAkJICghX19pZ3RfcGxhaW5fb3V0cHV0KSA/ICJceDFiWzBtIiA6ICIi KTsKPiA+ID4gPiAgCWZmbHVzaChzdGRvdXQpOwo+ID4gPiA+ICAJaWYgKHN0ZGVycl9uZWVkc19z ZW50aW5lbCkKPiA+ID4gPiAtCQlmcHJpbnRmKHN0ZGVyciwgIlN1YnRlc3QgJXM6ICVzICglLjNm cylcbiIsCj4gPiA+ID4gLQkJCWluX3N1YnRlc3QsIHJlc3VsdCwgaWd0X3RpbWVfZWxhcHNlZCgm c3VidGVzdF90aW1lLCAmbm93KSk7Cj4gPiA+ID4gKwkJZnByaW50ZihzdGRlcnIsICIlcyAlczog JXMgKCUuM2ZzKVxuIiwKPiA+ID4gPiArCQkJc3VidGVzdF90ZXh0LCAqc3VidGVzdF9uYW1lLAo+ ID4gPiA+ICsJCQlyZXN1bHQsIGlndF90aW1lX2VsYXBzZWQodGhlbnRpbWUsICZub3cpKTsKPiA+ ID4gPiAgCj4gPiA+ID4gIAlpZ3RfdGVybWluYXRlX3NwaW5zKCk7Cj4gPiA+ID4gIAo+ID4gPiA+ IC0JaW5fc3VidGVzdCA9IE5VTEw7Cj4gPiA+ID4gLQlzaWdsb25nam1wKGlndF9zdWJ0ZXN0X2pt cGJ1ZiwgMSk7Cj4gPiA+ID4gKwlpZiAoIWluX2R5bmFtaWNfc3VidGVzdCkKPiA+ID4gPiArCQlf aWd0X2R5bmFtaWNfdGVzdHNfZXhlY3V0ZWQgPSAtMTsKPiA+ID4gPiArCj4gPiA+ID4gKwkvKiBE b24ndCBrZWVwIHRoZSBhYm92ZSB0ZXh0IGluIHRoZSBsb2csIHRoZSBjb250YWluZXIgd291bGQg cHJpbnQgaXQgYWdhaW4gb3RoZXJ3aXNlICovCj4gPiA+ID4gKwlpZiAoaW5fZHluYW1pY19zdWJ0 ZXN0KQo+ID4gPiA+ICsJCV9pZ3RfbG9nX2J1ZmZlcl9yZXNldCgpOwo+ID4gPiA+ICsKPiA+ID4g PiArCSpzdWJ0ZXN0X25hbWUgPSBOVUxMOwo+ID4gPiA+ICsKPiA+ID4gPiArCXNpZ2xvbmdqbXAo KmptcHRhcmdldCwgMSk7Cj4gPiA+ID4gIH0KPiA+ID4gPiAgCj4gPiA+ID4gIC8qKgo+ID4gPiA+ IEBAIC0xMjExLDYgKzEyODUsNyBAQCB2b2lkIGlndF9za2lwKGNvbnN0IGNoYXIgKmYsIC4uLikK PiA+ID4gPiAgCX0KPiA+ID4gPiAgCj4gPiA+ID4gIAlpZiAoaW5fc3VidGVzdCkgewo+ID4gPiA+ ICsJCS8qIERvaW5nIHRoZSBzYW1lIGV2ZW4gaWYgaW5zaWRlIGEgZHluYW1pYyBzdWJ0ZXN0ICov Cj4gPiA+ID4gIAkJZXhpdF9zdWJ0ZXN0KCJTS0lQIik7Cj4gPiA+ID4gIAl9IGVsc2UgaWYgKHRl c3Rfd2l0aF9zdWJ0ZXN0cykgewo+ID4gPiA+ICAJCXNraXBfc3VidGVzdHNfaGVuY2Vmb3J0aCA9 IFNLSVA7Cj4gPiA+ID4gQEAgLTEyNjcsNyArMTM0MiwyMiBAQCB2b2lkIF9faWd0X3NraXBfY2hl Y2soY29uc3QgY2hhciAqZmlsZSwgY29uc3QgaW50IGxpbmUsCj4gPiA+ID4gICAqLwo+ID4gPiA+ ICB2b2lkIGlndF9zdWNjZXNzKHZvaWQpCj4gPiA+ID4gIHsKPiA+ID4gPiAtCXN1Y2NlZWRlZF9v bmUgPSB0cnVlOwo+ID4gPiA+ICsJaWYgKGluX3N1YnRlc3QgJiYgIWluX2R5bmFtaWNfc3VidGVz dCAmJiBfaWd0X2R5bmFtaWNfdGVzdHNfZXhlY3V0ZWQgPj0gMCkgewo+ID4gPiA+ICsJCS8qCj4g PiA+ID4gKwkJICogV2UncmUgZXhpdGluZyBhIGR5bmFtaWMgY29udGFpbmVyLCB5aWVsZCBhIHJl c3VsdAo+ID4gPiA+ICsJCSAqIGFjY29yZGluZyB0byB0aGUgZHluYW1pYyB0ZXN0cyB0aGF0IGdv dAo+ID4gPiA+ICsJCSAqIGV4ZWN1dGVkLgo+ID4gPiA+ICsJCSAqLwo+ID4gPiA+ICsJCWlmIChk eW5hbWljX2ZhaWxlZF9vbmUpCj4gPiA+ID4gKwkJCWlndF9mYWlsKElHVF9FWElUX0ZBSUxVUkUp Owo+ID4gPiA+ICsKPiA+ID4gPiArCQlpZiAoX2lndF9keW5hbWljX3Rlc3RzX2V4ZWN1dGVkID09 IDApCj4gPiA+ID4gKwkJCWlndF9za2lwKCJObyBkeW5hbWljIHRlc3RzIGV4ZWN1dGVkLlxuIik7 Cj4gPiA+ID4gKwl9Cj4gPiA+ID4gKwo+ID4gPiA+ICsJaWYgKCFpbl9keW5hbWljX3N1YnRlc3Qp Cj4gPiA+ID4gKwkJc3VjY2VlZGVkX29uZSA9IHRydWU7Cj4gPiA+ID4gKwo+ID4gPiA+ICAJaWYg KGluX3N1YnRlc3QpCj4gPiA+ID4gIAkJZXhpdF9zdWJ0ZXN0KCJTVUNDRVNTIik7Cj4gPiA+ID4g IH0KPiA+ID4gPiBAQCAtMTI5OCwxMCArMTM4OCwxNyBAQCB2b2lkIGlndF9mYWlsKGludCBleGl0 Y29kZSkKPiA+ID4gPiAgCWlmIChpbl9hdGV4aXRfaGFuZGxlcikKPiA+ID4gPiAgCQlfZXhpdChJ R1RfRVhJVF9GQUlMVVJFKTsKPiA+ID4gPiAgCj4gPiA+ID4gLQlpZiAoIWZhaWxlZF9vbmUpCj4g PiA+ID4gLQkJaWd0X2V4aXRjb2RlID0gZXhpdGNvZGU7Cj4gPiA+ID4gKwlpZiAoaW5fZHluYW1p Y19zdWJ0ZXN0KSB7Cj4gPiA+ID4gKwkJZHluYW1pY19mYWlsZWRfb25lID0gdHJ1ZTsKPiA+ID4g PiArCX0gZWxzZSB7Cj4gPiA+ID4gKwkJLyogRHluYW1pYyBzdWJ0ZXN0IGNvbnRhaW5lcnMgbXVz dCBub3QgZmFpbCBleHBsaWNpdGx5ICovCj4gPiA+ID4gKwkJYXNzZXJ0KF9pZ3RfZHluYW1pY190 ZXN0c19leGVjdXRlZCA8IDAgfHwgZHluYW1pY19mYWlsZWRfb25lKTsKPiA+ID4gPiArCj4gPiA+ ID4gKwkJaWYgKCFmYWlsZWRfb25lKQo+ID4gPiA+ICsJCQlpZ3RfZXhpdGNvZGUgPSBleGl0Y29k ZTsKPiA+ID4gPiAgCj4gPiA+ID4gLQlmYWlsZWRfb25lID0gdHJ1ZTsKPiA+ID4gPiArCQlmYWls ZWRfb25lID0gdHJ1ZTsKPiA+ID4gPiArCX0KPiA+ID4gPiAgCj4gPiA+ID4gIAkvKiBTaWxlbnQg ZXhpdCwgcGFyZW50IHdpbGwgZG8gdGhlIHllbGxpbmcuICovCj4gPiA+ID4gIAlpZiAodGVzdF9j aGlsZCkKPiA+ID4gPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9jb3JlLmggYi9saWIvaWd0X2NvcmUu aAo+ID4gPiA+IGluZGV4IDE3N2QyNDMxLi4yMTI4OWM4ZSAxMDA2NDQKPiA+ID4gPiAtLS0gYS9s aWIvaWd0X2NvcmUuaAo+ID4gPiA+ICsrKyBiL2xpYi9pZ3RfY29yZS5oCj4gPiA+ID4gQEAgLTE0 NCw2ICsxNDQsNyBAQCB2b2lkIF9faWd0X2ZpeHR1cmVfZW5kKHZvaWQpIF9fYXR0cmlidXRlX18o KG5vcmV0dXJuKSk7Cj4gPiA+ID4gIAo+ID4gPiA+ICAvKiBzdWJ0ZXN0IGluZnJhc3RydWN0dXJl ICovCj4gPiA+ID4gIGptcF9idWYgaWd0X3N1YnRlc3Rfam1wYnVmOwo+ID4gPiA+ICtqbXBfYnVm IGlndF9keW5hbWljX3N1YnRlc3Rfam1wYnVmOwo+ID4gPiA+ICB0eXBlZGVmIGludCAoKmlndF9v cHRfaGFuZGxlcl90KShpbnQgb3B0LCBpbnQgb3B0X2luZGV4LCB2b2lkICpkYXRhKTsKPiA+ID4g PiAgI2RlZmluZSBJR1RfT1BUX0hBTkRMRVJfU1VDQ0VTUyAwCj4gPiA+ID4gICNkZWZpbmUgSUdU X09QVF9IQU5ETEVSX0VSUk9SIC0yCj4gPiA+ID4gQEAgLTE3NSw2ICsxNzYsOCBAQCBpbnQgaWd0 X3N1YnRlc3RfaW5pdF9wYXJzZV9vcHRzKGludCAqYXJnYywgY2hhciAqKmFyZ3YsCj4gPiA+ID4g IAlpZ3Rfc3VidGVzdF9pbml0X3BhcnNlX29wdHMoJmFyZ2MsIGFyZ3YsIE5VTEwsIE5VTEwsIE5V TEwsIE5VTEwsIE5VTEwpOwo+ID4gPiA+ICAKPiA+ID4gPiAgYm9vbCBfX2lndF9ydW5fc3VidGVz dChjb25zdCBjaGFyICpzdWJ0ZXN0X25hbWUsIGNvbnN0IGNoYXIgKmZpbGUsIGNvbnN0IGludCBs aW5lKTsKPiA+ID4gPiArYm9vbCBfX2lndF9lbnRlcl9keW5hbWljX2NvbnRhaW5lcih2b2lkKTsK PiA+ID4gPiArYm9vbCBfX2lndF9ydW5fZHluYW1pY19zdWJ0ZXN0KGNvbnN0IGNoYXIgKmR5bmFt aWNfc3VidGVzdF9uYW1lKTsKPiA+ID4gPiAgI2RlZmluZSBfX2lndF90b2tlbmNhdDIoeCwgeSkg eCAjIyB5Cj4gPiA+ID4gIAo+ID4gPiA+ICAvKioKPiA+ID4gPiBAQCAtMjI0LDYgKzIyNyw5MiBA QCBib29sIF9faWd0X3J1bl9zdWJ0ZXN0KGNvbnN0IGNoYXIgKnN1YnRlc3RfbmFtZSwgY29uc3Qg Y2hhciAqZmlsZSwgY29uc3QgaW50IGxpbgo+ID4gPiA+ICAjZGVmaW5lIGlndF9zdWJ0ZXN0X2Yo Zi4uLikgXAo+ID4gPiA+ICAJX19pZ3Rfc3VidGVzdF9mKGlndF90b2tlbmNhdChfX3RtcGNoYXIs IF9fTElORV9fKSwgZikKPiA+ID4gPiAgCj4gPiA+ID4gKy8qKgo+ID4gPiA+ICsgKiBpZ3RfZHlu YW1pY19zdWJ0ZXN0X2NvbnRhaW5lcjoKPiA+ID4gPiArICogQG5hbWU6IG5hbWUgb2YgdGhlIHN1 YnRlc3QKPiA+ID4gPiArICoKPiA+ID4gPiArICogVGhpcyBpcyBhIG1hZ2ljIGNvbnRyb2wgZmxv dyBibG9jayB3aGljaCBkZW5vdGVzIGEgc3VidGVzdCBjb2RlCj4gPiA+ID4gKyAqIGJsb2NrIHRo YXQgY29udGFpbnMgZHluYW1pYyBzdWJ0ZXN0cy4gVGhlIF9mIHZhcmlhbnQgYWNjZXB0cyBhCj4g PiA+ID4gKyAqIHByaW50ZiBmb3JtYXQgc3RyaW5nLCB3aGljaCBpcyB1c2VmdWwgZm9yIGNvbnN0 cnVjdGluZwo+ID4gPiA+ICsgKiBjb21iaW5hdG9yaWFsIHRlc3RzLgo+ID4gPiA+ICsgKgo+ID4g PiA+ICsgKiBXaXRoaW4gYSBkeW5hbWljIHN1YnRlc3QgY29udGFpbmVyLCBleHBsaWNpdCBmYWls dXJlCj4gPiA+ID4gKyAqIChlLmcuIGlndF9hc3NlcnQpIGlzIG5vdCBhbGxvd2VkLCBvbmx5IGR5 bmFtaWMgc3VidGVzdHMgdGhlbXNlbHZlcwo+ID4gPiA+ICsgKiB3aWxsIHByb2R1Y2UgdGVzdCBy ZXN1bHRzLiBpZ3Rfc2tpcCgpL2lndF9yZXF1aXJlKCkgaXMgYWxsb3dlZC4KPiA+ID4gPiArICoK PiA+ID4gPiArICogVGhpcyBpcyBhIHNpbXBsZXIgdmVyc2lvbiBvZiBpZ3RfZHluYW1pY19zdWJ0 ZXN0X2NvbnRhaW5lcl9mKCkKPiA+ID4gPiArICovCj4gPiA+ID4gKyNkZWZpbmUgaWd0X2R5bmFt aWNfc3VidGVzdF9jb250YWluZXIobmFtZSkgZm9yICg7IF9faWd0X3J1bl9zdWJ0ZXN0KChuYW1l KSwgX19GSUxFX18sIF9fTElORV9fKSAmJiBcCj4gPiA+ID4gKwkJCQkJCQkgX19pZ3RfZW50ZXJf ZHluYW1pY19jb250YWluZXIoKSAmJiBcCj4gPiA+ID4gKwkJCQkJCQkgKHNpZ3NldGptcChpZ3Rf c3VidGVzdF9qbXBidWYsIDEpID09IDApOyBcCj4gPiA+ID4gKwkJCQkJCSBpZ3Rfc3VjY2Vzcygp KQo+ID4gPiA+ICsjZGVmaW5lIF9faWd0X2R5bmFtaWNfc3VidGVzdF9jb250YWluZXJfZih0bXAs IGZvcm1hdC4uLikgXAo+ID4gPiA+ICsJZm9yIChjaGFyIHRtcCBbMjU2XTsgXAo+ID4gPiA+ICsJ ICAgICBzbnByaW50ZiggdG1wICwgc2l6ZW9mKCB0bXAgKSwgXAo+ID4gPiA+ICsJCSAgICAgIGZv cm1hdCksIFwKPiA+ID4gPiArCSAgICAgICBfX2lndF9ydW5fc3VidGVzdCh0bXAsIF9fRklMRV9f LCBfX0xJTkVfXyApICYmIFwKPiA+ID4gPiArCSAgICAgX19pZ3RfZW50ZXJfZHluYW1pY19jb250 YWluZXIoKSAmJiBcCj4gPiA+ID4gKwkgICAgIChzaWdzZXRqbXAoaWd0X3N1YnRlc3Rfam1wYnVm LCAxKSA9PSAwKTsgXAo+ID4gPiA+ICsJICAgICBpZ3Rfc3VjY2VzcygpKQo+ID4gPiA+ICsKPiA+ ID4gPiArLyoqCj4gPiA+ID4gKyAqIGlndF9keW5hbWljX3N1YnRlc3RfY29udGFpbmVyX2Y6Cj4g PiA+ID4gKyAqIEAuLi46IGZvcm1hdCBzdHJpbmcgYW5kIG9wdGlvbmFsIGFyZ3VtZW50cwo+ID4g PiA+ICsgKgo+ID4gPiA+ICsgKiBUaGlzIGlzIGEgbWFnaWMgY29udHJvbCBmbG93IGJsb2NrIHdo aWNoIGRlbm90ZXMgYSBzdWJ0ZXN0IGNvZGUKPiA+ID4gPiArICogYmxvY2sgdGhhdCBjb250YWlu cyBkeW5hbWljIHN1YnRlc3RzLiBUaGUgX2YgdmFyaWFudCBhY2NlcHRzIGEKPiA+ID4gPiArICog cHJpbnRmIGZvcm1hdCBzdHJpbmcsIHdoaWNoIGlzIHVzZWZ1bCBmb3IgY29uc3RydWN0aW5nCj4g PiA+ID4gKyAqIGNvbWJpbmF0b3JpYWwgdGVzdHMuCj4gPiA+ID4gKyAqCj4gPiA+ID4gKyAqIFdp dGhpbiBhIGR5bmFtaWMgc3VidGVzdCBjb250YWluZXIsIGV4cGxpY2l0IGZhaWx1cmUKPiA+ID4g PiArICogKGUuZy4gaWd0X2Fzc2VydCkgaXMgbm90IGFsbG93ZWQsIG9ubHkgZHluYW1pYyBzdWJ0 ZXN0cyB0aGVtc2VsdmVzCj4gPiA+ID4gKyAqIHdpbGwgcHJvZHVjZSB0ZXN0IHJlc3VsdHMuIGln dF9za2lwKCkvaWd0X3JlcXVpcmUoKSBpcyBhbGxvd2VkLgo+ID4gPiA+ICsgKgo+ID4gPiA+ICsg KiBMaWtlIGlndF9keW5hbWljX3N1YnRlc3RfY29udGFpbmVyKCksIGJ1dCBhbHNvIGFjY2VwdHMg YSBwcmludGYKPiA+ID4gPiArICogZm9ybWF0IHN0cmluZyBpbnN0ZWFkIG9mIGEgc3RhdGljIHN0 cmluZy4KPiA+ID4gPiArICovCj4gPiA+IAo+ID4gPiBJIHRoaW5rIHdlIG5lZWQgYSBiaXQgbW9y ZSBvZiBleHBsYW5hdGlvbiBoZXJlLiBJdCdzIGhhcmQgdG8gdW5kZXJzdGFuZAo+ID4gPiB3aGVy ZSB0aGUgYXNzZXJ0cyBnbyBhbmQgdGhhdCB0aGlzIGlzIG1vcmUgbGlrZSBhIHN1YnRlc3QgZ3Jv dXAgYW5kIHlvdQo+ID4gPiBoYXZlIHRvIG5lc3QgaWd0X2R5bmFtaWNfc3VidGVzdCB1bmRlciBp dC4KPiA+ID4gCj4gPiA+IEkgdGhpbmsgc29tZSBwc2V1ZG9jb2RlIGNvdWxkIGJlIHVzZWZ1bGUs IGUuZy46Cj4gPiA+IAo+ID4gPiBpZ3RfbWFpbiB7Cj4gPiA+IAlpZ3RfZHluYW1pY19zdWJ0ZXN0 X2NvbnRhaW5lcigiZW5naW5lLXRlc3RzIikgewo+ID4gPiAJCS8qIHJlcXVpcmVzIG9rLCBubyBh c3NlcnRzICovCj4gPiA+IAkJaWd0X3JlcXVpcmUoaXNfYXdlc29tZShmZCkpOwo+ID4gPiAKPiA+ ID4gCQlmb3JfZWFjaF9lbmdpbmUoZSkgewo+ID4gPiAJCQlpZ3RfZHluYW1pY19zdWJ0ZXN0X2Yo IiVzIiwgZS0+bmFtZSkgewo+ID4gPiAJCQkJLyogYXNzZXJ0cyBvayEgKi8KPiA+ID4gCQkJCWln dF9mYWlsKCk7Cj4gPiA+IAkJCX0KPiA+ID4gCQl9Cj4gPiA+IAl9Cj4gPiA+IH0KPiA+ID4gCj4g PiA+IEl0J3MgYWxzbyBub3QgdmVyeSBjbGVhciBob3cgdGhpcyB3aWxsIGJlIHJlcG9ydGVkIG91 dC4KPiA+IAo+ID4gWWVhaCwgeW91ciByZWNlbnQgZXhhbXBsZXMgb2YgZW1iZWRkaW5nIGNvZGUg aW50byBkb2N1bWVudGF0aW9uIHdpdGgKPiA+IHRoZSBpZ3RfZGVzY3JpYmUgY29kZSBub3cgbWFr ZXMgaXQgcG9zc2libGUgZm9yIG1lIHRvIHdyaXRlIGJldHRlcgo+ID4gZG9jcy4gTm90ZWQuCj4g PiAKPiA+ID4gT3IgbWF5YmUgZXZlbiB1c2UgImdyb3VwIiBpbnN0ZWFkIG9mICJjb250YWluZXIi IGhlcmUgdG8gYnVpbGQgdGhlCj4gPiA+IHBhcmFsbGVsIHdpdGggbm9ybWFsIHN1YnRlc3QgZ3Jv dXAsIHRoZSBvYnZpb3VzIGRpZmZlcmVuY2UgYmVpbmcgdGhhdCBpdAo+ID4gPiB0YWtlcyBuYW1l Lgo+ID4gCj4gPiBUaGUgcGVydGluZW50IGlzc3VlIGlzIGhpZGluZyByaWdodCBoZXJlIGluIHBs YWluIHZpZXc6Cj4gPiAKPiA+IE5hbWluZy4KPiA+IAo+ID4gVGhlIG1haW4gcmVsYXRpdmUgZm9y IHRoZSAiY29udGFpbmVyIiBpcyBub3Qgc3VidGVzdCBncm91cCwgYnV0Cj4gPiBzdWJ0ZXN0LiBB ZnRlciBhbGwsIGl0IGlzIGFuIGV4ZWN1dGlvbiBwb2ludCwgbGlzdGVkIHdpdGgKPiA+IC0tbGlz dC1zdWJ0ZXN0cyBhbmQgZXhlY3V0ZWQgd2l0aCAtLXJ1bi1zdWJ0ZXN0Lgo+ID4gCj4gPiBpZ3Rf ZHluYW1pY19zdWJ0ZXN0X2NvbnRhaW5lciBpcyB0aGUgYmVzdCBuYW1lIEkgY291bGQgY29tZSB1 cCB3aXRoLAo+ID4gYW5kIGl0IGFic29sdXRlbHkgc3Vja3MgYXQgY29udmV5aW5nIHRoZSBwdXJw b3NlLiBEZWNpZGluZyBvbiB0aGUgbmFtZQo+ID4gc2hvdWxkIGJlIGNvbnNpZGVyZWQgdG8gYmUg dGhlIG1vc3QgaW1wb3J0YW50IHBhcnQgb2YgcmV2aWV3aW5nIHRoaXMKPiA+IHNlcmllcywgc3Vn Z2VzdGlvbnMgZm9yIHRoYXQgYXJlIHZlcnkgd2VsY29tZSEKPiAKPiBPaywgdGhpcyBpcyBnb2lu ZyB0byBsb29rIGEgYml0IHJpZGljdWxvdXMsIGJ1dCByZWFkIHRoaXMgb3V0Ogo+IAo+IGlndF9z dWJ0ZXN0X3dpdGhfZHluYW1pY19zdWJzdWJ0ZXN0cygieHl6Iik7Cj4gICAtIGNvbnZleXMgdGhh dCBpdCdzIGEgc3VidGVzdCwgc28gd2lsbCB3b3JrIHdpdGggLS1ydW4tc3VidGVzdAo+ICAgLSBt YWtlcyBvYnZpb3VzIHRoYXQgaXQncyBzcGVjaWFsIGJlY2F1c2UgaXQgKmNvbnRhaW5zKiBzb21l dGhpbmcgImR5bmFtaWMiCj4gICAtIG1ha2VzIGl0IGNsZWFyIHRoYXQgc3Vic3VidGVzdHMgbmVz dCB1bmRlciBzdWJ0ZXN0cwo+IAo+IGlndF9keW5hbWljX3N1YnN1YnRlc3QgLSBkb3VibGUgc3Vi LSwgYnV0IGNsYXJpZmllcyBuZXN0aW5nCj4gCj4gSSBhbSBub3QgYWJsZSB0byBjb21lIHVwIHdp dGggYW55dGhpbmcgc2hvcnRlciB0aGF0IHRoaXMsIHRoYXQgd291bGQgbm90Cj4gYmUganVzdCBw bGFpbiBjb25mdXNpbmcuCgoKVGhvc2Ugc291bmQgZ29vZCBlbm91Z2guIFVubGVzcyBhbnl0aGlu ZyBiZXR0ZXIgYXBwZWFycywgSSdtIGdvaW5nCndpdGggdGhvc2UuCgoKLS0KUGV0cmkgTGF0dmFs YQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2 IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=