From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 58BA96E125 for ; Wed, 30 Jan 2019 20:58:14 +0000 (UTC) Message-ID: <9943f748cd3002893a96d9185ef7076a0995cab1.camel@intel.com> From: Dhinakaran Pandiyan Date: Wed, 30 Jan 2019 12:58:06 -0800 In-Reply-To: References: <20190126013256.19255-1-jose.souza@intel.com> <20190126013256.19255-3-jose.souza@intel.com> Mime-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t v5 3/4] test: Add PSR2 selective update tests List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: dhinakaran.pandiyan@intel.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: "Souza, Jose" , "igt-dev@lists.freedesktop.org" Cc: "Vivi, Rodrigo" List-ID: T24gVHVlLCAyMDE5LTAxLTI5IGF0IDE3OjM0IC0wODAwLCBTb3V6YSwgSm9zZSB3cm90ZToKPiBP biBUdWUsIDIwMTktMDEtMjkgYXQgMTU6NTIgLTA4MDAsIFBhbmRpeWFuLCBEaGluYWthcmFuIHdy b3RlOgo+ID4gT24gRnJpLCAyMDE5LTAxLTI1IGF0IDE3OjMyIC0wODAwLCBKb3PDqSBSb2JlcnRv IGRlIFNvdXphIHdyb3RlOgo+ID4gPiBUaGlzIHRlc3RzIGNoZWNrcyBpZiBoYXJkd2FyZSBpcyBh YmxlIHRvIGRvIHNlbGVjdGl2ZSB1cGRhdGUgd2hlbgo+ID4gPiBzY3JlZW4gY2hhbmdlcy4KPiA+ ID4gUFNSMiBkb24ndCB0cmlnZ2VyIGludGVycnVwdGlvbnMgYW5kIHRoZSAnUFNSMiBTVSBzdGF0 dXMnCj4gPiA+IHJlZ2lzdGVyCj4gPiA+IGlzIG5vdCBrZXB0IGxvYWRlZCBhbGwgdGhlIHRpbWVz LCBzbyBpdCBpcyBuZWNlc3Nhcnkga2VlcCBwb2xsaW5nCj4gPiA+IFBTUiBzdGF0dXMgZGVidWdm cyB1bnRpbCB0aG9zZSB2YWx1ZXMgYXJlIGxvYWRlZC4KPiA+ID4gCj4gPiA+IEFsc28gZnJvbSBE RUVQX1NMRUVQIHN0YXRlIEhXIHdpbGwgbm90IGRvIGEgc2VsZXRpdmUgdXBkYXRlLCBhcwo+ID4g PiBtb3N0IG9mIHRoZSBtZW1vcnkvY29udGV4dCBpcyBsb3N0IGluIGRlZXAgc2xlZXAgc3RhdGUg aGFyZHdhcmUKPiA+ID4gd2lsbAo+ID4gPiBuZWVkIHRvIGV4aXQgUFNSIG1vZGUgdGhlbiB3YWl0 IGEgY29uZmlndXJlZCBudW1iZXIgb2YgZnJhbWVzIHRvCj4gPiA+IGFjdGl2YXRlIFBTUiBhZ2Fp biB0byB0aGVuIHN0YXJ0IGRvaW5nIHNlbGV0aXZlIHVwZGF0ZXMsIHRoYXQgaXMKPiA+ID4gd2h5 Cj4gPiA+IGp1c3Qgb25lIHNjcmVlbiBjaGFuZ2UgaXMgbm90IGVub3VnaCB0byBwYXNzIHRoaXMg dGVzdHMuCj4gPiA+IAo+ID4gPiBXaGVuIGEgc2VsZWN0aXZlIHVwZGF0ZSBoYXBwZW5zIGFuZCB0 aGUgdmFsdWVzIGFyZSBsb2FkZWQgYW5kCj4gPiA+IHJlYWQKPiA+ID4gZnJvbSBkZWJ1Z2ZzIGl0 IGlzIGNvbXBhcmVkIHdpdGggdGhlIGV4cGVjdGVkIHZhbHVlIG9mIHNlbGV0aXZlCj4gPiA+IHVw ZGF0ZSBibG9ja3MsIGlmIG1hdGNoZXMgdGhlIHBvbGxpbmcgaXMgc3RvcHBlZCBhbmQgdGhlIHRl c3QKPiA+ID4gcGFzc2VkCj4gPiA+IG90aGVyd2lzZSBpdCB3aWxsIHdhaXQgdW50aWwgaXQgcmVh Y2hzIGEgbWF4aW11bSBudW1iZXIgbyBzY3JlZW4KPiA+ID4gY2hhbmdlcyB0byBmYWlsIHRoZSB0 ZXN0Lgo+ID4gPiAKPiA+ID4gdjI6IFVzaW5nIG5ldyBTVSBibG9ja3MgZGVidWdmcyBvdXRwdXQK PiA+ID4gCj4gPiA+IHYzOgo+ID4gPiAtIHJlbW92ZWQgdGhlIHRpbWVyZmQgdG8gZmFpbCB0aGUg dGVzdCwgbm93IGZhaWxpbmcgYmFzZWQgaW4gYQo+ID4gPiBtYXhpbXVtIG51bWJlciBvZiBzY3Jl ZW4gY2hhbmdlcwo+ID4gPiAtIHJlbW92aW5nIHRocmVhZCB0byByZWFkIGRlYnVnZnMsIHJlYWQg ZnJvbSBtYWluIHRocmVhZCBpcwo+ID4gPiBlbm91Z2gKPiA+ID4gLSBpbXByb3ZlZCBjb21taXQg bWVzc2FnZQo+ID4gPiAKPiA+ID4gdjQ6Cj4gPiA+IC0gZ2V0dGluZyBjYWlybyBjb250ZXh0IGZv ciBmcm9udGJ1ZmZlciB0ZXN0IGluIHByZXBhcmUoKQo+ID4gPiAtIGRyb3Bwb2luZyBwb2xsKCks IHVzaW5nIGJsb2NraW5nIHRpbWVyZmQgaW5zdGVhZAo+ID4gPiAKPiA+ID4gdjU6Cj4gPiA+IC0g RG9pbmcgYSBtb2Rlc2V0IGJlZm9yZSB0cnlpbmcgdG8gZW5hYmxlIFBTUjIKPiA+ID4gCj4gPiA+ IENjOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+Cj4gPiA+IENjOiBEaGlu YWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4KPiA+ID4gU2ln bmVkLW9mZi1ieTogSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+ Cj4gPiA+IC0tLQo+ID4gPiAgbGliL2lndF9wc3IuYyAgICAgICAgICB8ICAyOSArKysrCj4gPiA+ ICBsaWIvaWd0X3Bzci5oICAgICAgICAgIHwgICAxICsKPiA+ID4gIHRlc3RzL01ha2VmaWxlLnNv dXJjZXMgfCAgIDEgKwo+ID4gPiAgdGVzdHMva21zX3BzcjJfc3UuYyAgICB8IDI5OAo+ID4gPiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ID4gPiAgdGVzdHMvbWVz b24uYnVpbGQgICAgICB8ICAgMSArCj4gPiA+ICA1IGZpbGVzIGNoYW5nZWQsIDMzMCBpbnNlcnRp b25zKCspCj4gPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMva21zX3BzcjJfc3UuYwo+ID4g PiAKPiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9pZ3RfcHNyLmMgYi9saWIvaWd0X3Bzci5jCj4gPiA+ IGluZGV4IDU5MWIyMDEzLi4wMTVjYjRhNCAxMDA2NDQKPiA+ID4gLS0tIGEvbGliL2lndF9wc3Iu Ywo+ID4gPiArKysgYi9saWIvaWd0X3Bzci5jCj4gPiA+IEBAIC0yMDgsMyArMjA4LDMyIEBAIGJv b2wgcHNyX2Rpc2FibGVkX3JlYXNvbl9nZXQoaW50IGRlYnVnZnNfZmQsCj4gPiA+IGNoYXIgKnJl YXNvbiwgaW50IGxlbikKPiA+ID4gIAo+ID4gPiAgCXJldHVybiB0cnVlOwo+ID4gPiAgfQo+ID4g PiArCj4gPiA+ICsjZGVmaW5lIFBTUjJfU1VfQkxPQ0tfU1RSX0xPT0tVUCAiUFNSMiBTVSBibG9j a3M6XG4wXHQiCj4gPiA+ICsKPiA+ID4gK3N0YXRpYyBib29sCj4gPiA+ICtwc3IyX3JlYWRfbGFz dF9udW1fc3VfYmxvY2tzX3ZhbChpbnQgZGVidWdmc19mZCwgdWludDE2X3QKPiA+ID4gKm51bV9z dV9ibG9ja3MpCj4gPiA+ICt7Cj4gPiA+ICsJY2hhciBidWZbUFNSX1NUQVRVU19NQVhfTEVOXTsK PiA+ID4gKwljaGFyICpzdHI7Cj4gPiA+ICsJaW50IHJldDsKPiA+ID4gKwo+ID4gPiArCXJldCA9 IGlndF9kZWJ1Z2ZzX3NpbXBsZV9yZWFkKGRlYnVnZnNfZmQsCj4gPiA+ICJpOTE1X2VkcF9wc3Jf c3RhdHVzIiwgYnVmLAo+ID4gPiArCQkJCSAgICAgIHNpemVvZihidWYpKTsKPiA+ID4gKwlpZiAo cmV0IDwgMCkKPiA+ID4gKwkJcmV0dXJuIGZhbHNlOwo+ID4gPiArCj4gPiA+ICsJc3RyID0gc3Ry c3RyKGJ1ZiwgUFNSMl9TVV9CTE9DS19TVFJfTE9PS1VQKTsKPiA+ID4gKwlpZiAoIXN0cikKPiA+ ID4gKwkJcmV0dXJuIGZhbHNlOwo+ID4gPiArCj4gPiA+ICsJc3RyID0gJnN0cltzdHJsZW4oUFNS Ml9TVV9CTE9DS19TVFJfTE9PS1VQKV07Cj4gPiA+ICsJKm51bV9zdV9ibG9ja3MgPSAodWludDE2 X3Qpc3RydG9sKHN0ciwgTlVMTCwgMTApOwo+ID4gPiArCj4gPiA+ICsJcmV0dXJuIHRydWU7Cj4g PiA+ICt9Cj4gPiA+ICsKPiA+ID4gK2Jvb2wgcHNyMl93YWl0X3N1KGludCBkZWJ1Z2ZzX2ZkLCB1 aW50MTZfdCAqbnVtX3N1X2Jsb2NrcykKPiA+ID4gK3sKPiA+ID4gKwlyZXR1cm4gaWd0X3dhaXQo cHNyMl9yZWFkX2xhc3RfbnVtX3N1X2Jsb2Nrc192YWwoZGVidWdmc19mZCwKPiA+ID4gbnVtX3N1 X2Jsb2NrcyksIDQwLCAxKTsKPiA+ID4gK30KPiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9pZ3RfcHNy LmggYi9saWIvaWd0X3Bzci5oCj4gPiA+IGluZGV4IDQ2NTgzOWQyLi5iMWU4NGUzOSAxMDA2NDQK PiA+ID4gLS0tIGEvbGliL2lndF9wc3IuaAo+ID4gPiArKysgYi9saWIvaWd0X3Bzci5oCj4gPiA+ IEBAIC00MSw1ICs0MSw2IEBAIGJvb2wgcHNyX2VuYWJsZShpbnQgZGVidWdmc19mZCwgZW51bSBw c3JfbW9kZSk7Cj4gPiA+ICBib29sIHBzcl9kaXNhYmxlKGludCBkZWJ1Z2ZzX2ZkKTsKPiA+ID4g IGJvb2wgcHNyX3Npbmtfc3VwcG9ydChpbnQgZGVidWdmc19mZCwgZW51bSBwc3JfbW9kZSk7Cj4g PiA+ICBib29sIHBzcl9kaXNhYmxlZF9yZWFzb25fZ2V0KGludCBkZWJ1Z2ZzX2ZkLCBjaGFyICpy ZWFzb24sIGludAo+ID4gPiBsZW4pOwo+ID4gPiArYm9vbCBwc3IyX3dhaXRfc3UoaW50IGRlYnVn ZnNfZmQsIHVpbnQxNl90ICpudW1fc3VfYmxvY2tzKTsKPiA+ID4gIAo+ID4gPiAgI2VuZGlmCj4g PiA+IGRpZmYgLS1naXQgYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzIGIvdGVzdHMvTWFrZWZpbGUu c291cmNlcwo+ID4gPiBpbmRleCA1MTllYWM3OS4uOTE3NGFlY2MgMTAwNjQ0Cj4gPiA+IC0tLSBh L3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKPiA+ID4gKysrIGIvdGVzdHMvTWFrZWZpbGUuc291cmNl cwo+ID4gPiBAQCAtODAsNiArODAsNyBAQCBURVNUU19wcm9ncyA9IFwKPiA+ID4gIAlrbXNfcGxh bmVfc2NhbGluZyBcCj4gPiA+ICAJa21zX3Byb3BlcnRpZXMgXAo+ID4gPiAgCWttc19wc3IgXAo+ ID4gPiArCWttc19wc3IyX3N1IFwKPiA+ID4gIAlrbXNfcHdyaXRlX2NyYyBcCj4gPiA+ICAJa21z X3JtZmIgXAo+ID4gPiAgCWttc19yb3RhdGlvbl9jcmMgXAo+ID4gPiBkaWZmIC0tZ2l0IGEvdGVz dHMva21zX3BzcjJfc3UuYyBiL3Rlc3RzL2ttc19wc3IyX3N1LmMKPiA+ID4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQKPiA+ID4gaW5kZXggMDAwMDAwMDAuLmIwYWJiMDQ4Cj4gPiA+IC0tLSAvZGV2L251 bGwKPiA+ID4gKysrIGIvdGVzdHMva21zX3BzcjJfc3UuYwo+ID4gPiBAQCAtMCwwICsxLDI5OCBA QAo+ID4gPiArLyoKPiA+ID4gKyAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9u Cj4gPiA+ICsgKgo+ID4gPiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBv ZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24KPiA+ID4gb2J0YWluaW5nIGEKPiA+ID4gKyAqIGNvcHkg b2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUK PiA+ID4gIlNvZnR3YXJlIiksCj4gPiA+ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRo b3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKPiA+ID4gd2l0aG91dAo+ID4gPiBsaW1pdGF0aW9u Cj4gPiA+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlz aCwgZGlzdHJpYnV0ZSwKPiA+ID4gc3VibGljZW5zZSwKPiA+ID4gKyAqIGFuZC9vciBzZWxsIGNv cGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0bwo+ID4gPiB3aG9t Cj4gPiA+IHRoZQo+ID4gPiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJq ZWN0IHRvIHRoZSBmb2xsb3dpbmcKPiA+ID4gY29uZGl0aW9uczoKPiA+ID4gKyAqCj4gPiA+ICsg KiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZQo+ ID4gPiAoaW5jbHVkaW5nCj4gPiA+IHRoZSBuZXh0Cj4gPiA+ICsgKiBwYXJhZ3JhcGgpIHNoYWxs IGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwKPiA+ID4gcG9ydGlvbnMg b2YgdGhlCj4gPiA+ICsgKiBTb2Z0d2FyZS4KPiA+ID4gKyAqCj4gPiA+ICsgKiBUSEUgU09GVFdB UkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkKPiA+ID4gS0lO RCwKPiA+ID4gRVhQUkVTUyBPUgo+ID4gPiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1Qg TElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgo+ID4gPiBNRVJDSEFOVEFCSUxJVFksCj4gPiA+ ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5U LiAgSU4gTk8KPiA+ID4gRVZFTlQgU0hBTEwKPiA+ID4gKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlS SUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLAo+ID4gPiBEQU1BR0VTCj4gPiA+ IE9SIE9USEVSCj4gPiA+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENP TlRSQUNULCBUT1JUIE9SCj4gPiA+IE9USEVSV0lTRSwKPiA+ID4gQVJJU0lORwo+ID4gPiArICog RlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVT RSBPUgo+ID4gPiBPVEhFUiBERUFMSU5HUwo+ID4gPiArICogSU4gVEhFIFNPRlRXQVJFLgo+ID4g PiArICoKPiA+ID4gKyAqLwo+ID4gPiArCj4gPiA+ICsjaW5jbHVkZSAiaWd0LmgiCj4gPiA+ICsj aW5jbHVkZSAiaWd0X3N5c2ZzLmgiCj4gPiA+ICsjaW5jbHVkZSAiaWd0X3Bzci5oIgo+ID4gPiAr I2luY2x1ZGUgPGVycm5vLmg+Cj4gPiA+ICsjaW5jbHVkZSA8c3RkYm9vbC5oPgo+ID4gPiArI2lu Y2x1ZGUgPHN0ZGlvLmg+Cj4gPiA+ICsjaW5jbHVkZSA8c3RyaW5nLmg+Cj4gPiA+ICsjaW5jbHVk ZSA8c3lzL3RpbWVyZmQuaD4KPiA+ID4gKyNpbmNsdWRlICJpbnRlbF9idWZtZ3IuaCIKPiA+ID4g Kwo+ID4gPiArSUdUX1RFU1RfREVTQ1JJUFRJT04oIlRlc3QgUFNSMiBzZWxlY3RpdmUgdXBkYXRl Iik7Cj4gPiA+ICsKPiA+ID4gKyNkZWZpbmUgU1FVQVJFX1NJWkUgMTAwCj4gPiA+ICsvKiBlYWNo IHNlbGVjdGl2ZSB1cGRhdGUgYmxvY2sgaXMgNCBsaW5lcyB0YWxsICovCj4gPiA+ICsjZGVmaW5l IEVYUEVDVEVEX05VTV9TVV9CTE9DS1MgKChTUVVBUkVfU0laRSAvIDQpICsgKFNRVUFSRV9TSVpF Cj4gPiA+ICUKPiA+ID4gNAo+ID4gPiA/IDEgOiAwKSkKPiA+ID4gKwo+ID4gPiArLyoKPiA+ID4g KyAqIE1pbmltdW0gaXMgMTUgYXMgdGhlIG51bWJlciBvZiBmcmFtZXMgdG8gYWN0aXZlIFBTUjIg Y291bGQgYmUKPiA+ID4gY29uZmlndXJlZAo+ID4gPiArICogdG8gMTUgZnJhbWVzIHBsdXMgYSBm ZXcgbW9yZSBpbiBjYXNlIHdlIG1pc3MgYSBzZWxlY3RpdmUKPiA+ID4gdXBkYXRlCj4gPiA+IGJl dHdlZW4KPiA+ID4gKyAqIGRlYnVnZnMgcmVhZHMuCj4gPiA+ICsgKi8KPiA+ID4gKyNkZWZpbmUg TUFYX1NDUkVFTl9DSEFOR0VTIDIwCj4gPiA+ICsKPiA+ID4gK2VudW0gb3BlcmF0aW9ucyB7Cj4g PiA+ICsJUEFHRV9GTElQLAo+ID4gPiArCUZST05UQlVGRkVSLAo+ID4gPiArCUxBU1QKPiA+ID4g K307Cj4gPiA+ICsKPiA+ID4gK3N0YXRpYyBjb25zdCBjaGFyICpvcF9zdHIoZW51bSBvcGVyYXRp b25zIG9wKQo+ID4gPiArewo+ID4gPiArCXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgbmFtZVtd ID0gewo+ID4gPiArCQlbUEFHRV9GTElQXSA9ICJwYWdlX2ZsaXAiLAo+ID4gPiArCQlbRlJPTlRC VUZGRVJdID0gImZyb250YnVmZmVyIgo+ID4gPiArCX07Cj4gPiA+ICsKPiA+ID4gKwlyZXR1cm4g bmFtZVtvcF07Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gK3R5cGVkZWYgc3RydWN0IHsKPiA+ID4g KwlpbnQgZHJtX2ZkOwo+ID4gPiArCWludCBkZWJ1Z2ZzX2ZkOwo+ID4gPiArCWlndF9kaXNwbGF5 X3QgZGlzcGxheTsKPiA+ID4gKwlkcm1faW50ZWxfYnVmbWdyICpidWZtZ3I7Cj4gPiA+ICsJZHJt TW9kZU1vZGVJbmZvICptb2RlOwo+ID4gPiArCWlndF9vdXRwdXRfdCAqb3V0cHV0Owo+ID4gPiAr CXN0cnVjdCBpZ3RfZmIgZmJbMl07Cj4gPiA+ICsJZW51bSBvcGVyYXRpb25zIG9wOwo+ID4gPiAr CWNhaXJvX3QgKmNyOwo+ID4gPiArCWludCBjaGFuZ2Vfc2NyZWVuX3RpbWVyZmQ7Cj4gPiA+ICsJ dWludDMyX3Qgc2NyZWVuX2NoYW5nZXM7Cj4gPiA+ICt9IGRhdGFfdDsKPiA+ID4gKwo+ID4gPiAr c3RhdGljIHZvaWQgc2V0dXBfb3V0cHV0KGRhdGFfdCAqZGF0YSkKPiA+ID4gK3sKPiA+ID4gKwlp Z3RfZGlzcGxheV90ICpkaXNwbGF5ID0gJmRhdGEtPmRpc3BsYXk7Cj4gPiA+ICsJaWd0X291dHB1 dF90ICpvdXRwdXQ7Cj4gPiA+ICsJZW51bSBwaXBlIHBpcGU7Cj4gPiA+ICsKPiA+ID4gKwlmb3Jf ZWFjaF9waXBlX3dpdGhfdmFsaWRfb3V0cHV0KGRpc3BsYXksIHBpcGUsIG91dHB1dCkgewo+ID4g PiArCQlkcm1Nb2RlQ29ubmVjdG9yUHRyIGMgPSBvdXRwdXQtPmNvbmZpZy5jb25uZWN0b3I7Cj4g PiA+ICsKPiA+ID4gKwkJaWYgKGMtPmNvbm5lY3Rvcl90eXBlICE9IERSTV9NT0RFX0NPTk5FQ1RP Ul9lRFApCj4gPiA+ICsJCQljb250aW51ZTsKPiA+ID4gKwo+ID4gPiArCQlpZ3Rfb3V0cHV0X3Nl dF9waXBlKG91dHB1dCwgcGlwZSk7Cj4gPiA+ICsJCWRhdGEtPm91dHB1dCA9IG91dHB1dDsKPiA+ ID4gKwkJZGF0YS0+bW9kZSA9IGlndF9vdXRwdXRfZ2V0X21vZGUob3V0cHV0KTsKPiA+ID4gKwo+ ID4gPiArCQlyZXR1cm47Cj4gPiA+ICsJfQo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMg dm9pZCBkaXNwbGF5X2luaXQoZGF0YV90ICpkYXRhKQo+ID4gPiArewo+ID4gPiArCWlndF9kaXNw bGF5X3JlcXVpcmUoJmRhdGEtPmRpc3BsYXksIGRhdGEtPmRybV9mZCk7Cj4gPiA+ICsJc2V0dXBf b3V0cHV0KGRhdGEpOwpUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IGRvIGFueXRoaW5nIG9uIGl0J3Mg b3duLCBwbGVhc2UgY29uc2lkZXIKaW5saW5pbmcgc2V0dXBfb3V0cHV0KCkgaW5zdGVhZC4KCj4g PiA+ICt9Cj4gPiA+ICsKPiA+ID4gK3N0YXRpYyB2b2lkIGRpc3BsYXlfZmluaShkYXRhX3QgKmRh dGEpCj4gPiA+ICt7Cj4gPiA+ICsJaWd0X2Rpc3BsYXlfZmluaSgmZGF0YS0+ZGlzcGxheSk7Cj4g PiA+ICt9Cj4gPiA+ICsKPiA+ID4gK3N0YXRpYyB2b2lkIHByZXBhcmUoZGF0YV90ICpkYXRhKQo+ ID4gPiArewo+ID4gPiArCWlndF9wbGFuZV90ICpwcmltYXJ5Owo+ID4gPiArCj4gPiA+ICsJLyog YWxsIGdyZWVuIGZyYW1lICovCj4gPiA+ICsJaWd0X2NyZWF0ZV9jb2xvcl9mYihkYXRhLT5kcm1f ZmQsCj4gPiA+ICsJCQkgICAgZGF0YS0+bW9kZS0+aGRpc3BsYXksIGRhdGEtPm1vZGUtPnZkaXNw bGF5LAo+ID4gPiArCQkJICAgIERSTV9GT1JNQVRfWFJHQjg4ODgsCj4gPiA+ICsJCQkgICAgTE9D QUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwKPiA+ID4gKwkJCSAgICAwLjAsIDEuMCwgMC4wLAo+ID4g PiArCQkJICAgICZkYXRhLT5mYlswXSk7Cj4gPiA+ICsKPiA+ID4gKwlpZiAoZGF0YS0+b3AgPT0g UEFHRV9GTElQKSB7Cj4gPiA+ICsJCWNhaXJvX3QgKmNyOwo+ID4gPiArCj4gPiA+ICsJCWlndF9j cmVhdGVfY29sb3JfZmIoZGF0YS0+ZHJtX2ZkLAo+ID4gPiArCQkJCSAgICBkYXRhLT5tb2RlLT5o ZGlzcGxheSwgZGF0YS0+bW9kZS0KPiA+ID4gPiB2ZGlzcGxheSwKPiA+ID4gCj4gPiA+ICsJCQkJ ICAgIERSTV9GT1JNQVRfWFJHQjg4ODgsCj4gPiA+ICsJCQkJICAgIExPQ0FMX0RSTV9GT1JNQVRf TU9EX05PTkUsCj4gPiA+ICsJCQkJICAgIDAuMCwgMS4wLCAwLjAsCj4gPiA+ICsJCQkJICAgICZk YXRhLT5mYlsxXSk7Cj4gPiA+ICsKPiA+ID4gKwkJY3IgPSBpZ3RfZ2V0X2NhaXJvX2N0eChkYXRh LT5kcm1fZmQsICZkYXRhLT5mYlsxXSk7Cj4gPiA+ICsJCS8qIHBhaW50IGEgd2hpdGUgc3F1YXJl ICovCj4gPiA+ICsJCWlndF9wYWludF9jb2xvcl9hbHBoYShjciwgMCwgMCwgU1FVQVJFX1NJWkUs Cj4gPiA+IFNRVUFSRV9TSVpFLAo+ID4gPiArCQkJCSAgICAgIDEuMCwgMS4wLCAxLjAsIDEuMCk7 Cj4gPiA+ICsJCWlndF9wdXRfY2Fpcm9fY3R4KGRhdGEtPmRybV9mZCwgICZkYXRhLT5mYlsxXSwg Y3IpOwo+ID4gPiArCX0gZWxzZSBpZiAoZGF0YS0+b3AgPT0gRlJPTlRCVUZGRVIpIHsKPiA+ID4g KwkJZGF0YS0+Y3IgPSBpZ3RfZ2V0X2NhaXJvX2N0eChkYXRhLT5kcm1fZmQsICZkYXRhLQo+ID4g PiA+IGZiWzBdKTsKPiA+ID4gCj4gPiA+ICsJfQo+ID4gPiArCj4gPiA+ICsJcHJpbWFyeSA9IGln dF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUoZGF0YS0+b3V0cHV0LAo+ID4gPiArCQkJCQkgICAgRFJN X1BMQU5FX1RZUEVfUFJJTUFSWSk7Cj4gPiA+ICsJaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCBO VUxMKTsKPiA+ID4gKwo+ID4gPiArCWlndF9kaXNwbGF5X2NvbW1pdCgmZGF0YS0+ZGlzcGxheSk7 Cj4gPiA+ICsJaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCAmZGF0YS0+ZmJbMF0pOwo+ID4gPiAr CWlndF9kaXNwbGF5X2NvbW1pdCgmZGF0YS0+ZGlzcGxheSk7Cj4gPiA+ICsKPiA+ID4gKwlpZ3Rf YXNzZXJ0KHBzcl93YWl0X2VudHJ5KGRhdGEtPmRlYnVnZnNfZmQsIFBTUl9NT0RFXzIpKTsKPiA+ ID4gKwo+ID4gPiArCWRhdGEtPnNjcmVlbl9jaGFuZ2VzID0gMDsKPiA+ID4gK30KPiA+ID4gKwo+ ID4gPiArc3RhdGljIGJvb2wgdXBkYXRlX3NjcmVlbl9hbmRfdGVzdChkYXRhX3QgKmRhdGEpCj4g PiA+ICt7Cj4gPiA+ICsJdWludDE2X3Qgc3VfYmxvY2tzOwo+ID4gPiArCWJvb2wgcmV0ID0gZmFs c2U7Cj4gPiA+ICsKPiA+ID4gKwlkYXRhLT5zY3JlZW5fY2hhbmdlcysrOwo+ID4gPiArCj4gPiA+ ICsJc3dpdGNoIChkYXRhLT5vcCkgewo+ID4gPiArCWNhc2UgUEFHRV9GTElQOiB7Cj4gPiA+ICsJ CWlndF9wbGFuZV90ICpwcmltYXJ5Owo+ID4gPiArCj4gPiA+ICsJCXByaW1hcnkgPSBpZ3Rfb3V0 cHV0X2dldF9wbGFuZV90eXBlKGRhdGEtPm91dHB1dCwKPiA+ID4gKwkJCQkJCSAgICBEUk1fUExB TkVfVFlQRV9QUklNCj4gPiA+IEFSWSk7Cj4gPiA+ICsKPiA+ID4gKwkJaWd0X3BsYW5lX3NldF9m YihwcmltYXJ5LCAmZGF0YS0+ZmJbZGF0YS0KPiA+ID4gPiBzY3JlZW5fY2hhbmdlcyAmIDFdKTsK PiA+ID4gCj4gPiA+ICsJCWlndF9kaXNwbGF5X2NvbW1pdCgmZGF0YS0+ZGlzcGxheSk7CkNPTU1J VF9BVE9NSUMsIGxpa2Ugd2UgZGlzY3Vzc2VkIGVhcmxpZXIuCgo+ID4gPiArCQlicmVhazsKPiA+ ID4gKwl9Cj4gPiA+ICsJY2FzZSBGUk9OVEJVRkZFUjogewo+ID4gPiArCQlkcm1Nb2RlQ2xpcCBj bGlwOwo+ID4gPiArCQlpbnQgcjsKPiA+ID4gKwo+ID4gPiArCQljbGlwLngxID0gY2xpcC55MSA9 IDA7Cj4gPiA+ICsJCWNsaXAueDIgPSBjbGlwLnkyID0gU1FVQVJFX1NJWkU7Cj4gPiA+ICsKPiA+ ID4gKwkJaWYgKGRhdGEtPnNjcmVlbl9jaGFuZ2VzICYgMSkgewo+ID4gPiArCQkJLyogZ28gYmFj ayB0byBhbGwgZ3JlZW4gZnJhbWUgd2l0aCB3aXRoIHNxdWFyZQo+ID4gPiAqLwo+ID4gPiArCQkJ aWd0X3BhaW50X2NvbG9yX2FscGhhKGRhdGEtPmNyLCAwLCAwLAo+ID4gPiBTUVVBUkVfU0laRSwK PiA+ID4gKwkJCQkJICAgICAgU1FVQVJFX1NJWkUsIDEuMCwgMS4wLAo+ID4gPiAxLjAsIDEuMCk7 Cj4gPiA+ICsJCX0gZWxzZSB7Cj4gPiA+ICsJCQkvKiBnbyBiYWNrIHRvIGFsbCBncmVlbiBmcmFt ZSAqLwo+ID4gPiArCQkJaWd0X3BhaW50X2NvbG9yX2FscGhhKGRhdGEtPmNyLCAwLCAwLAo+ID4g PiBTUVVBUkVfU0laRSwKPiA+ID4gKwkJCQkJICAgICAgU1FVQVJFX1NJWkUsIDAsIDEuMCwgMCwK PiA+ID4gMS4wKTsKPiA+ID4gKwkJfQo+ID4gPiArCj4gPiA+ICsJCXIgPSBkcm1Nb2RlRGlydHlG QihkYXRhLT5kcm1fZmQsIGRhdGEtPmZiWzBdLmZiX2lkLAo+ID4gPiAmY2xpcCwgMSk7Cj4gPiA+ ICsJCWlndF9hc3NlcnQociA9PSAwIHx8IHIgPT0gLUVOT1NZUyk7Cj4gPiA+ICsJCWJyZWFrOwo+ ID4gPiArCX0KPiA+ID4gKwlkZWZhdWx0Ogo+ID4gPiArCQlpZ3RfYXNzZXJ0X2YoZGF0YS0+b3As ICJPcGVyYXRpb24gbm90IGhhbmRsZWRcbiIpOwo+ID4gPiArCX0KPiA+ID4gKwo+ID4gPiArCWlm IChwc3IyX3dhaXRfc3UoZGF0YS0+ZGVidWdmc19mZCwgJnN1X2Jsb2NrcykpCj4gPiA+ICsJCXJl dCA9IHN1X2Jsb2NrcyA9PSBFWFBFQ1RFRF9OVU1fU1VfQkxPQ0tTOwpXZSBjb3VsZCBwZXJoYXBz IGhhdmUgYSBzdHJpY3RlciByZXN0cmljdGlvbiwgaW1tZWRpYXRlbHkgZmFpbCBmb3Igbm9uLQp6 ZXJvIHZhbHVlcyB0aGF0IGRvIG5vdCBtYXRjaCAiRVhQRUNURURfTlVNX1NVX0JMT0NLUyIKCgo+ ID4gPiArCj4gPiA+ICsJcmV0dXJuIHJldDsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiArc3RhdGlj IHZvaWQgcnVuKGRhdGFfdCAqZGF0YSkKPiA+ID4gK3sKPiA+ID4gKwlib29sIHJlc3VsdCA9IGZh bHNlOwo+ID4gPiArCj4gPiA+ICsJd2hpbGUgKGRhdGEtPnNjcmVlbl9jaGFuZ2VzIDwgTUFYX1ND UkVFTl9DSEFOR0VTICYmICFyZXN1bHQpIHsKPiA+ID4gKwkJdWludDY0X3QgZXhwOwo+ID4gPiAr CQlpbnQgcjsKPiA+ID4gKwo+ID4gPiArCQlyID0gcmVhZChkYXRhLT5jaGFuZ2Vfc2NyZWVuX3Rp bWVyZmQsICZleHAsCj4gPiA+IHNpemVvZihleHApKTsKPiA+ID4gKwkJaWYgKHIgPT0gc2l6ZW9m KHVpbnQ2NF90KSAmJiBleHApCj4gPiA+ICsJCQlyZXN1bHQgPSB1cGRhdGVfc2NyZWVuX2FuZF90 ZXN0KGRhdGEpOwo+ID4gPiArCX0KPiA+ID4gKwo+ID4gPiArCWlndF9kZWJ1ZygiU2NyZWVuIGNo YW5nZXM6ICV1XG4iLCBkYXRhLT5zY3JlZW5fY2hhbmdlcyk7Cj4gPiA+ICsJaWd0X2Fzc2VydF9m KHJlc3VsdCwKPiA+ID4gKwkJICAgICAiTm8gbWF0Y2hpbmcgc2VsZWN0aXZlIHVwZGF0ZSBibG9j a3MgcmVhZCBmcm9tCj4gPiA+IGRlYnVnZnNcbiIpOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtz dGF0aWMgdm9pZCBjbGVhbnVwKGRhdGFfdCAqZGF0YSkKPiA+ID4gK3sKPiA+ID4gKwlpZ3RfcGxh bmVfdCAqcHJpbWFyeTsKPiA+ID4gKwo+ID4gPiArCXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dldF9w bGFuZV90eXBlKGRhdGEtPm91dHB1dCwKPiA+ID4gKwkJCQkJICAgIERSTV9QTEFORV9UWVBFX1BS SU1BUlkpOwo+ID4gPiArCWlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgTlVMTCk7Cj4gPiA+ICsJ aWd0X2Rpc3BsYXlfY29tbWl0KCZkYXRhLT5kaXNwbGF5KTsKPiA+ID4gKwo+ID4gPiArCWlmIChk YXRhLT5vcCA9PSBQQUdFX0ZMSVApCj4gPiA+ICsJCWlndF9yZW1vdmVfZmIoZGF0YS0+ZHJtX2Zk LCAmZGF0YS0+ZmJbMV0pOwo+ID4gPiArCWVsc2UgaWYgKGRhdGEtPm9wID09IEZST05UQlVGRkVS KQo+ID4gPiArCQlpZ3RfcHV0X2NhaXJvX2N0eChkYXRhLT5kcm1fZmQsICZkYXRhLT5mYlswXSwg ZGF0YS0KPiA+ID4gPiBjcik7Cj4gPiA+IAo+ID4gPiArCj4gPiA+ICsJaWd0X3JlbW92ZV9mYihk YXRhLT5kcm1fZmQsICZkYXRhLT5mYlswXSk7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gK2ludCBt YWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCj4gPiA+ICt7Cj4gPiA+ICsJZGF0YV90IGRhdGEg PSB7fTsKPiA+ID4gKwo+ID4gPiArCWlndF9zdWJ0ZXN0X2luaXRfcGFyc2Vfb3B0cygmYXJnYywg YXJndiwgIiIsIE5VTEwsCj4gPiA+ICsJCQkJICAgIE5VTEwsIE5VTEwsIE5VTEwpOwo+ID4gPiAr CWlndF9za2lwX29uX3NpbXVsYXRpb24oKTsKPiA+ID4gKwo+ID4gPiArCWlndF9maXh0dXJlIHsK PiA+ID4gKwkJc3RydWN0IGl0aW1lcnNwZWMgaW50ZXJ2YWw7Cj4gPiA+ICsJCWludCByOwpib29s IHI/Cgo+ID4gPiArCj4gPiA+ICsJCWRhdGEuZHJtX2ZkID0gZHJtX29wZW5fZHJpdmVyX21hc3Rl cihEUklWRVJfSU5URUwpOwo+ID4gPiArCQlkYXRhLmRlYnVnZnNfZmQgPSBpZ3RfZGVidWdmc19k aXIoZGF0YS5kcm1fZmQpOwo+ID4gPiArCQlrbXN0ZXN0X3NldF92dF9ncmFwaGljc19tb2RlKCk7 Cj4gPiA+ICsKPiA+ID4gKwkJaWd0X3JlcXVpcmVfZihwc3Jfc2lua19zdXBwb3J0KGRhdGEuZGVi dWdmc19mZCwKPiA+ID4gUFNSX01PREVfMiksCj4gPiA+ICsJCQkgICAgICAiU2luayBkb2VzIG5v dCBzdXBwb3J0IFBTUjJcbiIpOwo+ID4gPiArCj4gPiA+ICsJCWRhdGEuYnVmbWdyID0gZHJtX2lu dGVsX2J1Zm1ncl9nZW1faW5pdChkYXRhLmRybV9mZCwKPiA+ID4gNDA5Nik7Cj4gPiA+ICsJCWln dF9hc3NlcnQoZGF0YS5idWZtZ3IpOwo+ID4gPiArCQlkcm1faW50ZWxfYnVmbWdyX2dlbV9lbmFi bGVfcmV1c2UoZGF0YS5idWZtZ3IpOwo+ID4gPiArCj4gPiA+ICsJCWRpc3BsYXlfaW5pdCgmZGF0 YSk7Cj4gPiA+ICsKPiA+ID4gKwkJLyogVGVzdCBpZiBQU1IyIGNhbiBiZSBlbmFibGVkICovCj4g PiA+ICsJCWlndF9yZXF1aXJlX2YocHNyX2VuYWJsZShkYXRhLmRlYnVnZnNfZmQsIFBTUl9NT0RF XzIpLApJIG5vdGljZWQgdGhhdCB0aGlzIGlzIGJyb2tlbiBpbiB0aGUga2VybmVsLCBQU1IgbW9k ZSBkb2VzIG5vdCBnZXQKcmVzdG9yZWQgY29ycmVjdGx5IGFmdGVyIHRoZSB0ZXN0IGVuZHMuIHN3 aXRjaGluZ19wc3IoKSBpbiBpbnRlbF9wc3IuYwpuZWVkcyB0byBiZSBmaXhlZCB0byBzd2l0Y2gg dG8gUFNSMSBmb3IgY2FzZXMgd2hlbiB0ZXN0IHNldHMgdGhlCmRlZmF1bHQgZGVidWdmcyBtb2Rl LgoKCgo+ID4gPiArCQkJICAgICAgIlNpbmsgZG8gbm90IHN1cHBvcnQgUFNSMlxuIik7Cj4gPiAK PiA+IFRoZSBjb21tZW50IGFuZCBlcnJvciBtZXNzYWdlIGxvb2sgd3JvbmcsIGEgZmFsc2UgZnJv bSBwc3JfZW5hYmxlKCkKPiA+IGluZGljYXRlcyBkZWJ1Z2ZzIGRvZXMgbm90IHN1cHBvcnQgUFNS IDIgbW9kZSBjaGFuZ2UuCj4gCj4gWW91IGFyZSByaWdodCwgY2hhbmdpbmcgdG86IEVycm9yIGVu YWJsaW5nIFBTUjIKPiBXaGF0IGRvIHlvdSB0aGluaz8KIktlcm5lbCBkb2VzIG5vdCBzdXBwb3J0 IGVuYWJsaW5nIFBTUjIgdmlhIGRlYnVnZnMiCj4gCj4gCj4gPiAKPiA+ID4gKwkJZGF0YS5vcCA9 IEZST05UQlVGRkVSOwo+ID4gPiArCQlwcmVwYXJlKCZkYXRhKTsKPiA+ID4gKwkJciA9IHBzcl93 YWl0X2VudHJ5KGRhdGEuZGVidWdmc19mZCwgUFNSX01PREVfMik7Cj4gPiA+ICsJCWNsZWFudXAo JmRhdGEpOwo+ID4gPiArCQlpZ3RfcmVxdWlyZV9mKHIsICJQU1IyIGNhbiBub3QgYmUgZW5hYmxl ZFxuIik7Cj4gPiAKPiA+IENJIHJlc3VsdHMgc2hvd3MgdGhlIGFzc2VydGlvbiBpbiBwcmVwYXJl KCkgZmFpbGVkLiBUaGUgYXNzZXJ0aW9uCj4gPiBzaG91bGQgaGF2ZSBjYXVzZWQgYSBza2lwIG9u IHdobCwgbm8/Cj4gCj4gSHV1bSBpdCBmYWlsZWQgaW4gdGhlIHByZXBhcmUoKSBpbnNpZGUgb2Yg aWd0X2ZpeHR1cmUoKSwgb25lIHRoZSBsYXN0Cj4gdGhpbmdzIHRoYXQgcHJlcGFyZSgpIGRvZXMg aXMgaWd0X2Fzc2VydChwc3Jfd2FpdF9lbnRyeShkYXRhLQo+ID4gZGVidWdmc19mZCwgUFNSX01P REVfMikpLgo+IAo+IFNvIEknbSBtb3ZpbmcgaXQgdG8gdGhlIGJlZ2luaW5nIG9mIHJ1bigpLCBp dCBzaG91bGQgZml4IHRoZSBpc3N1ZS4gCj4gCj4gCj4gPiAKPiA+ID4gKwo+ID4gPiArCQkvKiBi bG9ja2luZyB0aW1lcmZkICovCj4gPiA+ICsJCWRhdGEuY2hhbmdlX3NjcmVlbl90aW1lcmZkID0K PiA+ID4gdGltZXJmZF9jcmVhdGUoQ0xPQ0tfTU9OT1RPTklDLCAwKTsKPiA+ID4gKwkJaWd0X3Jl cXVpcmUoZGF0YS5jaGFuZ2Vfc2NyZWVuX3RpbWVyZmQgIT0gLTEpOwo+ID4gPiArCQkvKiBDaGFu Z2luZyBzY3JlZW4gYXQgMzBoeiB0byBzdXBwb3J0IDMwaHogcGFuZWxzICovCj4gPiA+ICsJCWlu dGVydmFsLml0X3ZhbHVlLnR2X25zZWMgPSBOU0VDX1BFUl9TRUMgLyAzMDsKPiA+ID4gKwkJaW50 ZXJ2YWwuaXRfdmFsdWUudHZfc2VjID0gMDsKPiA+ID4gKwkJaW50ZXJ2YWwuaXRfaW50ZXJ2YWwu dHZfbnNlYyA9Cj4gPiA+IGludGVydmFsLml0X3ZhbHVlLnR2X25zZWM7Cj4gPiA+ICsJCWludGVy dmFsLml0X2ludGVydmFsLnR2X3NlYyA9IGludGVydmFsLml0X3ZhbHVlLnR2X3NlYzsKQ2FuIHdl IGRvIHNvbWV0aGluZyBsaWtlIHRoaXMgdG8gcmVkdWNlIHRoZXNlIGxpbmVzPwpzdHJ1Y3QgaXRp bWVyc3BlYyBpbnRlcnZhbCA9IHt7TlNFQ19QRVJfU0VDIC8gMzAsIDB9LAoJCQkgICAgICB7TlNF Q19QRVJfU0VDIC8gMzAsIDB9fTsKCgo+ID4gPiArCQlyID0gdGltZXJmZF9zZXR0aW1lKGRhdGEu Y2hhbmdlX3NjcmVlbl90aW1lcmZkLCAwLAo+ID4gPiAmaW50ZXJ2YWwsIE5VTEwpOwpPa2F5LCBu b3cgSSBzZWUgeW91IGNob3NlIGludC4KCj4gPiA+ICsJCWlndF9yZXF1aXJlX2YociAhPSAtMSwg IkVycm9yIHNldHRpbmcgdGltZXJmZFxuIik7Cj4gPiA+ICsJfQo+ID4gPiArCj4gPiA+ICsJZm9y IChkYXRhLm9wID0gUEFHRV9GTElQOyBkYXRhLm9wIDwgTEFTVDsgZGF0YS5vcCsrKSB7Cj4gPiA+ ICsJCWlndF9zdWJ0ZXN0X2YoIiVzIiwgb3Bfc3RyKGRhdGEub3ApKSB7Cj4gPiA+ICsJCQlwcmVw YXJlKCZkYXRhKTsKPiA+ID4gKwkJCXJ1bigmZGF0YSk7Cj4gPiA+ICsJCQljbGVhbnVwKCZkYXRh KTsKPiA+ID4gKwkJfQo+ID4gPiArCX0KPiA+ID4gKwo+ID4gPiArCWlndF9maXh0dXJlIHsKPiA+ ID4gKwkJY2xvc2UoZGF0YS5kZWJ1Z2ZzX2ZkKTsKPiA+ID4gKwkJZHJtX2ludGVsX2J1Zm1ncl9k ZXN0cm95KGRhdGEuYnVmbWdyKTsKPiA+ID4gKwkJZGlzcGxheV9maW5pKCZkYXRhKTsKPiA+ID4g Kwl9Cj4gPiA+ICsKPiA+ID4gKwlpZ3RfZXhpdCgpOwo+ID4gPiArfQo+ID4gPiBkaWZmIC0tZ2l0 IGEvdGVzdHMvbWVzb24uYnVpbGQgYi90ZXN0cy9tZXNvbi5idWlsZAo+ID4gPiBpbmRleCBlMTRh YjJiNC4uNjgyY2E5MzkgMTAwNjQ0Cj4gPiA+IC0tLSBhL3Rlc3RzL21lc29uLmJ1aWxkCj4gPiA+ ICsrKyBiL3Rlc3RzL21lc29uLmJ1aWxkCj4gPiA+IEBAIC01MCw2ICs1MCw3IEBAIHRlc3RfcHJv Z3MgPSBbCj4gPiA+ICAJJ2ttc19wbGFuZV9zY2FsaW5nJywKPiA+ID4gIAkna21zX3Byb3BlcnRp ZXMnLAo+ID4gPiAgCSdrbXNfcHNyJywKPiA+ID4gKwkna21zX3BzcjJfc3UnLAo+ID4gPiAgCSdr bXNfcHdyaXRlX2NyYycsCj4gPiA+ICAJJ2ttc19ybWZiJywKPiA+ID4gIAkna21zX3JvdGF0aW9u X2NyYycsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpp Z3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK