From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 109916E415 for ; Tue, 29 Jan 2019 23:52:29 +0000 (UTC) From: "Pandiyan, Dhinakaran" Date: Tue, 29 Jan 2019 23:52:27 +0000 Message-ID: References: <20190126013256.19255-1-jose.souza@intel.com> <20190126013256.19255-3-jose.souza@intel.com> In-Reply-To: <20190126013256.19255-3-jose.souza@intel.com> Content-Language: en-US Content-ID: <0FC89470E939B3449D44C4BAA8E22B38@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: , 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" , "Souza, Jose" Cc: "Vivi, Rodrigo" List-ID: T24gRnJpLCAyMDE5LTAxLTI1IGF0IDE3OjMyIC0wODAwLCBKb3PDqSBSb2JlcnRvIGRlIFNvdXph IHdyb3RlOg0KPiBUaGlzIHRlc3RzIGNoZWNrcyBpZiBoYXJkd2FyZSBpcyBhYmxlIHRvIGRvIHNl bGVjdGl2ZSB1cGRhdGUgd2hlbg0KPiBzY3JlZW4gY2hhbmdlcy4NCj4gUFNSMiBkb24ndCB0cmln Z2VyIGludGVycnVwdGlvbnMgYW5kIHRoZSAnUFNSMiBTVSBzdGF0dXMnIHJlZ2lzdGVyDQo+IGlz IG5vdCBrZXB0IGxvYWRlZCBhbGwgdGhlIHRpbWVzLCBzbyBpdCBpcyBuZWNlc3Nhcnkga2VlcCBw b2xsaW5nDQo+IFBTUiBzdGF0dXMgZGVidWdmcyB1bnRpbCB0aG9zZSB2YWx1ZXMgYXJlIGxvYWRl ZC4NCj4gDQo+IEFsc28gZnJvbSBERUVQX1NMRUVQIHN0YXRlIEhXIHdpbGwgbm90IGRvIGEgc2Vs ZXRpdmUgdXBkYXRlLCBhcw0KPiBtb3N0IG9mIHRoZSBtZW1vcnkvY29udGV4dCBpcyBsb3N0IGlu IGRlZXAgc2xlZXAgc3RhdGUgaGFyZHdhcmUgd2lsbA0KPiBuZWVkIHRvIGV4aXQgUFNSIG1vZGUg dGhlbiB3YWl0IGEgY29uZmlndXJlZCBudW1iZXIgb2YgZnJhbWVzIHRvDQo+IGFjdGl2YXRlIFBT UiBhZ2FpbiB0byB0aGVuIHN0YXJ0IGRvaW5nIHNlbGV0aXZlIHVwZGF0ZXMsIHRoYXQgaXMgd2h5 DQo+IGp1c3Qgb25lIHNjcmVlbiBjaGFuZ2UgaXMgbm90IGVub3VnaCB0byBwYXNzIHRoaXMgdGVz dHMuDQo+IA0KPiBXaGVuIGEgc2VsZWN0aXZlIHVwZGF0ZSBoYXBwZW5zIGFuZCB0aGUgdmFsdWVz IGFyZSBsb2FkZWQgYW5kIHJlYWQNCj4gZnJvbSBkZWJ1Z2ZzIGl0IGlzIGNvbXBhcmVkIHdpdGgg dGhlIGV4cGVjdGVkIHZhbHVlIG9mIHNlbGV0aXZlDQo+IHVwZGF0ZSBibG9ja3MsIGlmIG1hdGNo ZXMgdGhlIHBvbGxpbmcgaXMgc3RvcHBlZCBhbmQgdGhlIHRlc3QgcGFzc2VkDQo+IG90aGVyd2lz ZSBpdCB3aWxsIHdhaXQgdW50aWwgaXQgcmVhY2hzIGEgbWF4aW11bSBudW1iZXIgbyBzY3JlZW4N Cj4gY2hhbmdlcyB0byBmYWlsIHRoZSB0ZXN0Lg0KPiANCj4gdjI6IFVzaW5nIG5ldyBTVSBibG9j a3MgZGVidWdmcyBvdXRwdXQNCj4gDQo+IHYzOg0KPiAtIHJlbW92ZWQgdGhlIHRpbWVyZmQgdG8g ZmFpbCB0aGUgdGVzdCwgbm93IGZhaWxpbmcgYmFzZWQgaW4gYQ0KPiBtYXhpbXVtIG51bWJlciBv ZiBzY3JlZW4gY2hhbmdlcw0KPiAtIHJlbW92aW5nIHRocmVhZCB0byByZWFkIGRlYnVnZnMsIHJl YWQgZnJvbSBtYWluIHRocmVhZCBpcyBlbm91Z2gNCj4gLSBpbXByb3ZlZCBjb21taXQgbWVzc2Fn ZQ0KPiANCj4gdjQ6DQo+IC0gZ2V0dGluZyBjYWlybyBjb250ZXh0IGZvciBmcm9udGJ1ZmZlciB0 ZXN0IGluIHByZXBhcmUoKQ0KPiAtIGRyb3Bwb2luZyBwb2xsKCksIHVzaW5nIGJsb2NraW5nIHRp bWVyZmQgaW5zdGVhZA0KPiANCj4gdjU6DQo+IC0gRG9pbmcgYSBtb2Rlc2V0IGJlZm9yZSB0cnlp bmcgdG8gZW5hYmxlIFBTUjINCj4gDQo+IENjOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBp bnRlbC5jb20+DQo+IENjOiBEaGluYWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFu QGludGVsLmNvbT4NCj4gU2lnbmVkLW9mZi1ieTogSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9z ZS5zb3V6YUBpbnRlbC5jb20+DQo+IC0tLQ0KPiAgbGliL2lndF9wc3IuYyAgICAgICAgICB8ICAy OSArKysrDQo+ICBsaWIvaWd0X3Bzci5oICAgICAgICAgIHwgICAxICsNCj4gIHRlc3RzL01ha2Vm aWxlLnNvdXJjZXMgfCAgIDEgKw0KPiAgdGVzdHMva21zX3BzcjJfc3UuYyAgICB8IDI5OA0KPiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiAgdGVzdHMvbWVzb24u YnVpbGQgICAgICB8ICAgMSArDQo+ICA1IGZpbGVzIGNoYW5nZWQsIDMzMCBpbnNlcnRpb25zKCsp DQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMva21zX3BzcjJfc3UuYw0KPiANCj4gZGlmZiAt LWdpdCBhL2xpYi9pZ3RfcHNyLmMgYi9saWIvaWd0X3Bzci5jDQo+IGluZGV4IDU5MWIyMDEzLi4w MTVjYjRhNCAxMDA2NDQNCj4gLS0tIGEvbGliL2lndF9wc3IuYw0KPiArKysgYi9saWIvaWd0X3Bz ci5jDQo+IEBAIC0yMDgsMyArMjA4LDMyIEBAIGJvb2wgcHNyX2Rpc2FibGVkX3JlYXNvbl9nZXQo aW50IGRlYnVnZnNfZmQsDQo+IGNoYXIgKnJlYXNvbiwgaW50IGxlbikNCj4gIA0KPiAgCXJldHVy biB0cnVlOw0KPiAgfQ0KPiArDQo+ICsjZGVmaW5lIFBTUjJfU1VfQkxPQ0tfU1RSX0xPT0tVUCAi UFNSMiBTVSBibG9ja3M6XG4wXHQiDQo+ICsNCj4gK3N0YXRpYyBib29sDQo+ICtwc3IyX3JlYWRf bGFzdF9udW1fc3VfYmxvY2tzX3ZhbChpbnQgZGVidWdmc19mZCwgdWludDE2X3QNCj4gKm51bV9z dV9ibG9ja3MpDQo+ICt7DQo+ICsJY2hhciBidWZbUFNSX1NUQVRVU19NQVhfTEVOXTsNCj4gKwlj aGFyICpzdHI7DQo+ICsJaW50IHJldDsNCj4gKw0KPiArCXJldCA9IGlndF9kZWJ1Z2ZzX3NpbXBs ZV9yZWFkKGRlYnVnZnNfZmQsDQo+ICJpOTE1X2VkcF9wc3Jfc3RhdHVzIiwgYnVmLA0KPiArCQkJ CSAgICAgIHNpemVvZihidWYpKTsNCj4gKwlpZiAocmV0IDwgMCkNCj4gKwkJcmV0dXJuIGZhbHNl Ow0KPiArDQo+ICsJc3RyID0gc3Ryc3RyKGJ1ZiwgUFNSMl9TVV9CTE9DS19TVFJfTE9PS1VQKTsN Cj4gKwlpZiAoIXN0cikNCj4gKwkJcmV0dXJuIGZhbHNlOw0KPiArDQo+ICsJc3RyID0gJnN0cltz dHJsZW4oUFNSMl9TVV9CTE9DS19TVFJfTE9PS1VQKV07DQo+ICsJKm51bV9zdV9ibG9ja3MgPSAo dWludDE2X3Qpc3RydG9sKHN0ciwgTlVMTCwgMTApOw0KPiArDQo+ICsJcmV0dXJuIHRydWU7DQo+ ICt9DQo+ICsNCj4gK2Jvb2wgcHNyMl93YWl0X3N1KGludCBkZWJ1Z2ZzX2ZkLCB1aW50MTZfdCAq bnVtX3N1X2Jsb2NrcykNCj4gK3sNCj4gKwlyZXR1cm4gaWd0X3dhaXQocHNyMl9yZWFkX2xhc3Rf bnVtX3N1X2Jsb2Nrc192YWwoZGVidWdmc19mZCwNCj4gbnVtX3N1X2Jsb2NrcyksIDQwLCAxKTsN Cj4gK30NCj4gZGlmZiAtLWdpdCBhL2xpYi9pZ3RfcHNyLmggYi9saWIvaWd0X3Bzci5oDQo+IGlu ZGV4IDQ2NTgzOWQyLi5iMWU4NGUzOSAxMDA2NDQNCj4gLS0tIGEvbGliL2lndF9wc3IuaA0KPiAr KysgYi9saWIvaWd0X3Bzci5oDQo+IEBAIC00MSw1ICs0MSw2IEBAIGJvb2wgcHNyX2VuYWJsZShp bnQgZGVidWdmc19mZCwgZW51bSBwc3JfbW9kZSk7DQo+ICBib29sIHBzcl9kaXNhYmxlKGludCBk ZWJ1Z2ZzX2ZkKTsNCj4gIGJvb2wgcHNyX3Npbmtfc3VwcG9ydChpbnQgZGVidWdmc19mZCwgZW51 bSBwc3JfbW9kZSk7DQo+ICBib29sIHBzcl9kaXNhYmxlZF9yZWFzb25fZ2V0KGludCBkZWJ1Z2Zz X2ZkLCBjaGFyICpyZWFzb24sIGludCBsZW4pOw0KPiArYm9vbCBwc3IyX3dhaXRfc3UoaW50IGRl YnVnZnNfZmQsIHVpbnQxNl90ICpudW1fc3VfYmxvY2tzKTsNCj4gIA0KPiAgI2VuZGlmDQo+IGRp ZmYgLS1naXQgYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzIGIvdGVzdHMvTWFrZWZpbGUuc291cmNl cw0KPiBpbmRleCA1MTllYWM3OS4uOTE3NGFlY2MgMTAwNjQ0DQo+IC0tLSBhL3Rlc3RzL01ha2Vm aWxlLnNvdXJjZXMNCj4gKysrIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcw0KPiBAQCAtODAsNiAr ODAsNyBAQCBURVNUU19wcm9ncyA9IFwNCj4gIAlrbXNfcGxhbmVfc2NhbGluZyBcDQo+ICAJa21z X3Byb3BlcnRpZXMgXA0KPiAgCWttc19wc3IgXA0KPiArCWttc19wc3IyX3N1IFwNCj4gIAlrbXNf cHdyaXRlX2NyYyBcDQo+ICAJa21zX3JtZmIgXA0KPiAgCWttc19yb3RhdGlvbl9jcmMgXA0KPiBk aWZmIC0tZ2l0IGEvdGVzdHMva21zX3BzcjJfc3UuYyBiL3Rlc3RzL2ttc19wc3IyX3N1LmMNCj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAuLmIwYWJiMDQ4DQo+IC0tLSAv ZGV2L251bGwNCj4gKysrIGIvdGVzdHMva21zX3BzcjJfc3UuYw0KPiBAQCAtMCwwICsxLDI5OCBA QA0KPiArLyoNCj4gKyAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uDQo+ICsg Kg0KPiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRv IGFueSBwZXJzb24NCj4gb2J0YWluaW5nIGENCj4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBh bmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUNCj4gIlNvZnR3YXJlIiksDQo+ ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRp bmcgd2l0aG91dA0KPiBsaW1pdGF0aW9uDQo+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwg bW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwNCj4gc3VibGljZW5zZSwNCj4gKyAq IGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29u cyB0byB3aG9tDQo+IHRoZQ0KPiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBz dWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcNCj4gY29uZGl0aW9uczoNCj4gKyAqDQo+ICsgKiBUaGUg YWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVk aW5nDQo+IHRoZSBuZXh0DQo+ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFs bCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwNCj4gcG9ydGlvbnMgb2YgdGhlDQo+ICsgKiBTb2Z0d2Fy ZS4NCj4gKyAqDQo+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9V VCBXQVJSQU5UWSBPRiBBTlkgS0lORCwNCj4gRVhQUkVTUyBPUg0KPiArICogSU1QTElFRCwgSU5D TFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRg0KPiBNRVJDSEFOVEFC SUxJVFksDQo+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5G UklOR0VNRU5ULiAgSU4gTk8NCj4gRVZFTlQgU0hBTEwNCj4gKyAqIFRIRSBBVVRIT1JTIE9SIENP UFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTDQo+IE9SIE9U SEVSDQo+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBU T1JUIE9SIE9USEVSV0lTRSwNCj4gQVJJU0lORw0KPiArICogRlJPTSwgT1VUIE9GIE9SIElOIENP Tk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUg0KPiBPVEhFUiBERUFMSU5H Uw0KPiArICogSU4gVEhFIFNPRlRXQVJFLg0KPiArICoNCj4gKyAqLw0KPiArDQo+ICsjaW5jbHVk ZSAiaWd0LmgiDQo+ICsjaW5jbHVkZSAiaWd0X3N5c2ZzLmgiDQo+ICsjaW5jbHVkZSAiaWd0X3Bz ci5oIg0KPiArI2luY2x1ZGUgPGVycm5vLmg+DQo+ICsjaW5jbHVkZSA8c3RkYm9vbC5oPg0KPiAr I2luY2x1ZGUgPHN0ZGlvLmg+DQo+ICsjaW5jbHVkZSA8c3RyaW5nLmg+DQo+ICsjaW5jbHVkZSA8 c3lzL3RpbWVyZmQuaD4NCj4gKyNpbmNsdWRlICJpbnRlbF9idWZtZ3IuaCINCj4gKw0KPiArSUdU X1RFU1RfREVTQ1JJUFRJT04oIlRlc3QgUFNSMiBzZWxlY3RpdmUgdXBkYXRlIik7DQo+ICsNCj4g KyNkZWZpbmUgU1FVQVJFX1NJWkUgMTAwDQo+ICsvKiBlYWNoIHNlbGVjdGl2ZSB1cGRhdGUgYmxv Y2sgaXMgNCBsaW5lcyB0YWxsICovDQo+ICsjZGVmaW5lIEVYUEVDVEVEX05VTV9TVV9CTE9DS1Mg KChTUVVBUkVfU0laRSAvIDQpICsgKFNRVUFSRV9TSVpFICUgNA0KPiA/IDEgOiAwKSkNCj4gKw0K PiArLyoNCj4gKyAqIE1pbmltdW0gaXMgMTUgYXMgdGhlIG51bWJlciBvZiBmcmFtZXMgdG8gYWN0 aXZlIFBTUjIgY291bGQgYmUNCj4gY29uZmlndXJlZA0KPiArICogdG8gMTUgZnJhbWVzIHBsdXMg YSBmZXcgbW9yZSBpbiBjYXNlIHdlIG1pc3MgYSBzZWxlY3RpdmUgdXBkYXRlDQo+IGJldHdlZW4N Cj4gKyAqIGRlYnVnZnMgcmVhZHMuDQo+ICsgKi8NCj4gKyNkZWZpbmUgTUFYX1NDUkVFTl9DSEFO R0VTIDIwDQo+ICsNCj4gK2VudW0gb3BlcmF0aW9ucyB7DQo+ICsJUEFHRV9GTElQLA0KPiArCUZS T05UQlVGRkVSLA0KPiArCUxBU1QNCj4gK307DQo+ICsNCj4gK3N0YXRpYyBjb25zdCBjaGFyICpv cF9zdHIoZW51bSBvcGVyYXRpb25zIG9wKQ0KPiArew0KPiArCXN0YXRpYyBjb25zdCBjaGFyICog Y29uc3QgbmFtZVtdID0gew0KPiArCQlbUEFHRV9GTElQXSA9ICJwYWdlX2ZsaXAiLA0KPiArCQlb RlJPTlRCVUZGRVJdID0gImZyb250YnVmZmVyIg0KPiArCX07DQo+ICsNCj4gKwlyZXR1cm4gbmFt ZVtvcF07DQo+ICt9DQo+ICsNCj4gK3R5cGVkZWYgc3RydWN0IHsNCj4gKwlpbnQgZHJtX2ZkOw0K PiArCWludCBkZWJ1Z2ZzX2ZkOw0KPiArCWlndF9kaXNwbGF5X3QgZGlzcGxheTsNCj4gKwlkcm1f aW50ZWxfYnVmbWdyICpidWZtZ3I7DQo+ICsJZHJtTW9kZU1vZGVJbmZvICptb2RlOw0KPiArCWln dF9vdXRwdXRfdCAqb3V0cHV0Ow0KPiArCXN0cnVjdCBpZ3RfZmIgZmJbMl07DQo+ICsJZW51bSBv cGVyYXRpb25zIG9wOw0KPiArCWNhaXJvX3QgKmNyOw0KPiArCWludCBjaGFuZ2Vfc2NyZWVuX3Rp bWVyZmQ7DQo+ICsJdWludDMyX3Qgc2NyZWVuX2NoYW5nZXM7DQo+ICt9IGRhdGFfdDsNCj4gKw0K PiArc3RhdGljIHZvaWQgc2V0dXBfb3V0cHV0KGRhdGFfdCAqZGF0YSkNCj4gK3sNCj4gKwlpZ3Rf ZGlzcGxheV90ICpkaXNwbGF5ID0gJmRhdGEtPmRpc3BsYXk7DQo+ICsJaWd0X291dHB1dF90ICpv dXRwdXQ7DQo+ICsJZW51bSBwaXBlIHBpcGU7DQo+ICsNCj4gKwlmb3JfZWFjaF9waXBlX3dpdGhf dmFsaWRfb3V0cHV0KGRpc3BsYXksIHBpcGUsIG91dHB1dCkgew0KPiArCQlkcm1Nb2RlQ29ubmVj dG9yUHRyIGMgPSBvdXRwdXQtPmNvbmZpZy5jb25uZWN0b3I7DQo+ICsNCj4gKwkJaWYgKGMtPmNv bm5lY3Rvcl90eXBlICE9IERSTV9NT0RFX0NPTk5FQ1RPUl9lRFApDQo+ICsJCQljb250aW51ZTsN Cj4gKw0KPiArCQlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgcGlwZSk7DQo+ICsJCWRhdGEt Pm91dHB1dCA9IG91dHB1dDsNCj4gKwkJZGF0YS0+bW9kZSA9IGlndF9vdXRwdXRfZ2V0X21vZGUo b3V0cHV0KTsNCj4gKw0KPiArCQlyZXR1cm47DQo+ICsJfQ0KPiArfQ0KPiArDQo+ICtzdGF0aWMg dm9pZCBkaXNwbGF5X2luaXQoZGF0YV90ICpkYXRhKQ0KPiArew0KPiArCWlndF9kaXNwbGF5X3Jl cXVpcmUoJmRhdGEtPmRpc3BsYXksIGRhdGEtPmRybV9mZCk7DQo+ICsJc2V0dXBfb3V0cHV0KGRh dGEpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZCBkaXNwbGF5X2ZpbmkoZGF0YV90ICpkYXRh KQ0KPiArew0KPiArCWlndF9kaXNwbGF5X2ZpbmkoJmRhdGEtPmRpc3BsYXkpOw0KPiArfQ0KPiAr DQo+ICtzdGF0aWMgdm9pZCBwcmVwYXJlKGRhdGFfdCAqZGF0YSkNCj4gK3sNCj4gKwlpZ3RfcGxh bmVfdCAqcHJpbWFyeTsNCj4gKw0KPiArCS8qIGFsbCBncmVlbiBmcmFtZSAqLw0KPiArCWlndF9j cmVhdGVfY29sb3JfZmIoZGF0YS0+ZHJtX2ZkLA0KPiArCQkJICAgIGRhdGEtPm1vZGUtPmhkaXNw bGF5LCBkYXRhLT5tb2RlLT52ZGlzcGxheSwNCj4gKwkJCSAgICBEUk1fRk9STUFUX1hSR0I4ODg4 LA0KPiArCQkJICAgIExPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkUsDQo+ICsJCQkgICAgMC4wLCAx LjAsIDAuMCwNCj4gKwkJCSAgICAmZGF0YS0+ZmJbMF0pOw0KPiArDQo+ICsJaWYgKGRhdGEtPm9w ID09IFBBR0VfRkxJUCkgew0KPiArCQljYWlyb190ICpjcjsNCj4gKw0KPiArCQlpZ3RfY3JlYXRl X2NvbG9yX2ZiKGRhdGEtPmRybV9mZCwNCj4gKwkJCQkgICAgZGF0YS0+bW9kZS0+aGRpc3BsYXks IGRhdGEtPm1vZGUtDQo+ID52ZGlzcGxheSwNCj4gKwkJCQkgICAgRFJNX0ZPUk1BVF9YUkdCODg4 OCwNCj4gKwkJCQkgICAgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwNCj4gKwkJCQkgICAgMC4w LCAxLjAsIDAuMCwNCj4gKwkJCQkgICAgJmRhdGEtPmZiWzFdKTsNCj4gKw0KPiArCQljciA9IGln dF9nZXRfY2Fpcm9fY3R4KGRhdGEtPmRybV9mZCwgJmRhdGEtPmZiWzFdKTsNCj4gKwkJLyogcGFp bnQgYSB3aGl0ZSBzcXVhcmUgKi8NCj4gKwkJaWd0X3BhaW50X2NvbG9yX2FscGhhKGNyLCAwLCAw LCBTUVVBUkVfU0laRSwNCj4gU1FVQVJFX1NJWkUsDQo+ICsJCQkJICAgICAgMS4wLCAxLjAsIDEu MCwgMS4wKTsNCj4gKwkJaWd0X3B1dF9jYWlyb19jdHgoZGF0YS0+ZHJtX2ZkLCAgJmRhdGEtPmZi WzFdLCBjcik7DQo+ICsJfSBlbHNlIGlmIChkYXRhLT5vcCA9PSBGUk9OVEJVRkZFUikgew0KPiAr CQlkYXRhLT5jciA9IGlndF9nZXRfY2Fpcm9fY3R4KGRhdGEtPmRybV9mZCwgJmRhdGEtDQo+ID5m YlswXSk7DQo+ICsJfQ0KPiArDQo+ICsJcHJpbWFyeSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5 cGUoZGF0YS0+b3V0cHV0LA0KPiArCQkJCQkgICAgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7DQo+ ICsJaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCBOVUxMKTsNCj4gKw0KPiArCWlndF9kaXNwbGF5 X2NvbW1pdCgmZGF0YS0+ZGlzcGxheSk7DQo+ICsJaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCAm ZGF0YS0+ZmJbMF0pOw0KPiArCWlndF9kaXNwbGF5X2NvbW1pdCgmZGF0YS0+ZGlzcGxheSk7DQo+ ICsNCj4gKwlpZ3RfYXNzZXJ0KHBzcl93YWl0X2VudHJ5KGRhdGEtPmRlYnVnZnNfZmQsIFBTUl9N T0RFXzIpKTsNCj4gKw0KPiArCWRhdGEtPnNjcmVlbl9jaGFuZ2VzID0gMDsNCj4gK30NCj4gKw0K PiArc3RhdGljIGJvb2wgdXBkYXRlX3NjcmVlbl9hbmRfdGVzdChkYXRhX3QgKmRhdGEpDQo+ICt7 DQo+ICsJdWludDE2X3Qgc3VfYmxvY2tzOw0KPiArCWJvb2wgcmV0ID0gZmFsc2U7DQo+ICsNCj4g KwlkYXRhLT5zY3JlZW5fY2hhbmdlcysrOw0KPiArDQo+ICsJc3dpdGNoIChkYXRhLT5vcCkgew0K PiArCWNhc2UgUEFHRV9GTElQOiB7DQo+ICsJCWlndF9wbGFuZV90ICpwcmltYXJ5Ow0KPiArDQo+ ICsJCXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKGRhdGEtPm91dHB1dCwNCj4g KwkJCQkJCSAgICBEUk1fUExBTkVfVFlQRV9QUklNDQo+IEFSWSk7DQo+ICsNCj4gKwkJaWd0X3Bs YW5lX3NldF9mYihwcmltYXJ5LCAmZGF0YS0+ZmJbZGF0YS0NCj4gPnNjcmVlbl9jaGFuZ2VzICYg MV0pOw0KPiArCQlpZ3RfZGlzcGxheV9jb21taXQoJmRhdGEtPmRpc3BsYXkpOw0KPiArCQlicmVh azsNCj4gKwl9DQo+ICsJY2FzZSBGUk9OVEJVRkZFUjogew0KPiArCQlkcm1Nb2RlQ2xpcCBjbGlw Ow0KPiArCQlpbnQgcjsNCj4gKw0KPiArCQljbGlwLngxID0gY2xpcC55MSA9IDA7DQo+ICsJCWNs aXAueDIgPSBjbGlwLnkyID0gU1FVQVJFX1NJWkU7DQo+ICsNCj4gKwkJaWYgKGRhdGEtPnNjcmVl bl9jaGFuZ2VzICYgMSkgew0KPiArCQkJLyogZ28gYmFjayB0byBhbGwgZ3JlZW4gZnJhbWUgd2l0 aCB3aXRoIHNxdWFyZQ0KPiAqLw0KPiArCQkJaWd0X3BhaW50X2NvbG9yX2FscGhhKGRhdGEtPmNy LCAwLCAwLA0KPiBTUVVBUkVfU0laRSwNCj4gKwkJCQkJICAgICAgU1FVQVJFX1NJWkUsIDEuMCwg MS4wLA0KPiAxLjAsIDEuMCk7DQo+ICsJCX0gZWxzZSB7DQo+ICsJCQkvKiBnbyBiYWNrIHRvIGFs bCBncmVlbiBmcmFtZSAqLw0KPiArCQkJaWd0X3BhaW50X2NvbG9yX2FscGhhKGRhdGEtPmNyLCAw LCAwLA0KPiBTUVVBUkVfU0laRSwNCj4gKwkJCQkJICAgICAgU1FVQVJFX1NJWkUsIDAsIDEuMCwg MCwNCj4gMS4wKTsNCj4gKwkJfQ0KPiArDQo+ICsJCXIgPSBkcm1Nb2RlRGlydHlGQihkYXRhLT5k cm1fZmQsIGRhdGEtPmZiWzBdLmZiX2lkLA0KPiAmY2xpcCwgMSk7DQo+ICsJCWlndF9hc3NlcnQo ciA9PSAwIHx8IHIgPT0gLUVOT1NZUyk7DQo+ICsJCWJyZWFrOw0KPiArCX0NCj4gKwlkZWZhdWx0 Og0KPiArCQlpZ3RfYXNzZXJ0X2YoZGF0YS0+b3AsICJPcGVyYXRpb24gbm90IGhhbmRsZWRcbiIp Ow0KPiArCX0NCj4gKw0KPiArCWlmIChwc3IyX3dhaXRfc3UoZGF0YS0+ZGVidWdmc19mZCwgJnN1 X2Jsb2NrcykpDQo+ICsJCXJldCA9IHN1X2Jsb2NrcyA9PSBFWFBFQ1RFRF9OVU1fU1VfQkxPQ0tT Ow0KPiArDQo+ICsJcmV0dXJuIHJldDsNCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQgcnVuKGRh dGFfdCAqZGF0YSkNCj4gK3sNCj4gKwlib29sIHJlc3VsdCA9IGZhbHNlOw0KPiArDQo+ICsJd2hp bGUgKGRhdGEtPnNjcmVlbl9jaGFuZ2VzIDwgTUFYX1NDUkVFTl9DSEFOR0VTICYmICFyZXN1bHQp IHsNCj4gKwkJdWludDY0X3QgZXhwOw0KPiArCQlpbnQgcjsNCj4gKw0KPiArCQlyID0gcmVhZChk YXRhLT5jaGFuZ2Vfc2NyZWVuX3RpbWVyZmQsICZleHAsDQo+IHNpemVvZihleHApKTsNCj4gKwkJ aWYgKHIgPT0gc2l6ZW9mKHVpbnQ2NF90KSAmJiBleHApDQo+ICsJCQlyZXN1bHQgPSB1cGRhdGVf c2NyZWVuX2FuZF90ZXN0KGRhdGEpOw0KPiArCX0NCj4gKw0KPiArCWlndF9kZWJ1ZygiU2NyZWVu IGNoYW5nZXM6ICV1XG4iLCBkYXRhLT5zY3JlZW5fY2hhbmdlcyk7DQo+ICsJaWd0X2Fzc2VydF9m KHJlc3VsdCwNCj4gKwkJICAgICAiTm8gbWF0Y2hpbmcgc2VsZWN0aXZlIHVwZGF0ZSBibG9ja3Mg cmVhZCBmcm9tDQo+IGRlYnVnZnNcbiIpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZCBjbGVh bnVwKGRhdGFfdCAqZGF0YSkNCj4gK3sNCj4gKwlpZ3RfcGxhbmVfdCAqcHJpbWFyeTsNCj4gKw0K PiArCXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKGRhdGEtPm91dHB1dCwNCj4g KwkJCQkJICAgIERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOw0KPiArCWlndF9wbGFuZV9zZXRfZmIo cHJpbWFyeSwgTlVMTCk7DQo+ICsJaWd0X2Rpc3BsYXlfY29tbWl0KCZkYXRhLT5kaXNwbGF5KTsN Cj4gKw0KPiArCWlmIChkYXRhLT5vcCA9PSBQQUdFX0ZMSVApDQo+ICsJCWlndF9yZW1vdmVfZmIo ZGF0YS0+ZHJtX2ZkLCAmZGF0YS0+ZmJbMV0pOw0KPiArCWVsc2UgaWYgKGRhdGEtPm9wID09IEZS T05UQlVGRkVSKQ0KPiArCQlpZ3RfcHV0X2NhaXJvX2N0eChkYXRhLT5kcm1fZmQsICZkYXRhLT5m YlswXSwgZGF0YS0NCj4gPmNyKTsNCj4gKw0KPiArCWlndF9yZW1vdmVfZmIoZGF0YS0+ZHJtX2Zk LCAmZGF0YS0+ZmJbMF0pOw0KPiArfQ0KPiArDQo+ICtpbnQgbWFpbihpbnQgYXJnYywgY2hhciAq YXJndltdKQ0KPiArew0KPiArCWRhdGFfdCBkYXRhID0ge307DQo+ICsNCj4gKwlpZ3Rfc3VidGVz dF9pbml0X3BhcnNlX29wdHMoJmFyZ2MsIGFyZ3YsICIiLCBOVUxMLA0KPiArCQkJCSAgICBOVUxM LCBOVUxMLCBOVUxMKTsNCj4gKwlpZ3Rfc2tpcF9vbl9zaW11bGF0aW9uKCk7DQo+ICsNCj4gKwlp Z3RfZml4dHVyZSB7DQo+ICsJCXN0cnVjdCBpdGltZXJzcGVjIGludGVydmFsOw0KPiArCQlpbnQg cjsNCj4gKw0KPiArCQlkYXRhLmRybV9mZCA9IGRybV9vcGVuX2RyaXZlcl9tYXN0ZXIoRFJJVkVS X0lOVEVMKTsNCj4gKwkJZGF0YS5kZWJ1Z2ZzX2ZkID0gaWd0X2RlYnVnZnNfZGlyKGRhdGEuZHJt X2ZkKTsNCj4gKwkJa21zdGVzdF9zZXRfdnRfZ3JhcGhpY3NfbW9kZSgpOw0KPiArDQo+ICsJCWln dF9yZXF1aXJlX2YocHNyX3Npbmtfc3VwcG9ydChkYXRhLmRlYnVnZnNfZmQsDQo+IFBTUl9NT0RF XzIpLA0KPiArCQkJICAgICAgIlNpbmsgZG9lcyBub3Qgc3VwcG9ydCBQU1IyXG4iKTsNCj4gKw0K PiArCQlkYXRhLmJ1Zm1nciA9IGRybV9pbnRlbF9idWZtZ3JfZ2VtX2luaXQoZGF0YS5kcm1fZmQs DQo+IDQwOTYpOw0KPiArCQlpZ3RfYXNzZXJ0KGRhdGEuYnVmbWdyKTsNCj4gKwkJZHJtX2ludGVs X2J1Zm1ncl9nZW1fZW5hYmxlX3JldXNlKGRhdGEuYnVmbWdyKTsNCj4gKw0KPiArCQlkaXNwbGF5 X2luaXQoJmRhdGEpOw0KPiArDQo+ICsJCS8qIFRlc3QgaWYgUFNSMiBjYW4gYmUgZW5hYmxlZCAq Lw0KPiArCQlpZ3RfcmVxdWlyZV9mKHBzcl9lbmFibGUoZGF0YS5kZWJ1Z2ZzX2ZkLCBQU1JfTU9E RV8yKSwNCj4gKwkJCSAgICAgICJTaW5rIGRvIG5vdCBzdXBwb3J0IFBTUjJcbiIpOw0KVGhlIGNv bW1lbnQgYW5kIGVycm9yIG1lc3NhZ2UgbG9vayB3cm9uZywgYSBmYWxzZSBmcm9tIHBzcl9lbmFi bGUoKQ0KaW5kaWNhdGVzIGRlYnVnZnMgZG9lcyBub3Qgc3VwcG9ydCBQU1IgMiBtb2RlIGNoYW5n ZS4NCg0KPiArCQlkYXRhLm9wID0gRlJPTlRCVUZGRVI7DQo+ICsJCXByZXBhcmUoJmRhdGEpOw0K PiArCQlyID0gcHNyX3dhaXRfZW50cnkoZGF0YS5kZWJ1Z2ZzX2ZkLCBQU1JfTU9ERV8yKTsNCj4g KwkJY2xlYW51cCgmZGF0YSk7DQo+ICsJCWlndF9yZXF1aXJlX2YociwgIlBTUjIgY2FuIG5vdCBi ZSBlbmFibGVkXG4iKTsNCkNJIHJlc3VsdHMgc2hvd3MgdGhlIGFzc2VydGlvbiBpbiBwcmVwYXJl KCkgZmFpbGVkLiBUaGUgYXNzZXJ0aW9uDQpzaG91bGQgaGF2ZSBjYXVzZWQgYSBza2lwIG9uIHdo bCwgbm8/DQoNCj4gKw0KPiArCQkvKiBibG9ja2luZyB0aW1lcmZkICovDQo+ICsJCWRhdGEuY2hh bmdlX3NjcmVlbl90aW1lcmZkID0NCj4gdGltZXJmZF9jcmVhdGUoQ0xPQ0tfTU9OT1RPTklDLCAw KTsNCj4gKwkJaWd0X3JlcXVpcmUoZGF0YS5jaGFuZ2Vfc2NyZWVuX3RpbWVyZmQgIT0gLTEpOw0K PiArCQkvKiBDaGFuZ2luZyBzY3JlZW4gYXQgMzBoeiB0byBzdXBwb3J0IDMwaHogcGFuZWxzICov DQo+ICsJCWludGVydmFsLml0X3ZhbHVlLnR2X25zZWMgPSBOU0VDX1BFUl9TRUMgLyAzMDsNCj4g KwkJaW50ZXJ2YWwuaXRfdmFsdWUudHZfc2VjID0gMDsNCj4gKwkJaW50ZXJ2YWwuaXRfaW50ZXJ2 YWwudHZfbnNlYyA9DQo+IGludGVydmFsLml0X3ZhbHVlLnR2X25zZWM7DQo+ICsJCWludGVydmFs Lml0X2ludGVydmFsLnR2X3NlYyA9IGludGVydmFsLml0X3ZhbHVlLnR2X3NlYzsNCj4gKwkJciA9 IHRpbWVyZmRfc2V0dGltZShkYXRhLmNoYW5nZV9zY3JlZW5fdGltZXJmZCwgMCwNCj4gJmludGVy dmFsLCBOVUxMKTsNCj4gKwkJaWd0X3JlcXVpcmVfZihyICE9IC0xLCAiRXJyb3Igc2V0dGluZyB0 aW1lcmZkXG4iKTsNCj4gKwl9DQo+ICsNCj4gKwlmb3IgKGRhdGEub3AgPSBQQUdFX0ZMSVA7IGRh dGEub3AgPCBMQVNUOyBkYXRhLm9wKyspIHsNCj4gKwkJaWd0X3N1YnRlc3RfZigiJXMiLCBvcF9z dHIoZGF0YS5vcCkpIHsNCj4gKwkJCXByZXBhcmUoJmRhdGEpOw0KPiArCQkJcnVuKCZkYXRhKTsN Cj4gKwkJCWNsZWFudXAoJmRhdGEpOw0KPiArCQl9DQo+ICsJfQ0KPiArDQo+ICsJaWd0X2ZpeHR1 cmUgew0KPiArCQljbG9zZShkYXRhLmRlYnVnZnNfZmQpOw0KPiArCQlkcm1faW50ZWxfYnVmbWdy X2Rlc3Ryb3koZGF0YS5idWZtZ3IpOw0KPiArCQlkaXNwbGF5X2ZpbmkoJmRhdGEpOw0KPiArCX0N Cj4gKw0KPiArCWlndF9leGl0KCk7DQo+ICt9DQo+IGRpZmYgLS1naXQgYS90ZXN0cy9tZXNvbi5i dWlsZCBiL3Rlc3RzL21lc29uLmJ1aWxkDQo+IGluZGV4IGUxNGFiMmI0Li42ODJjYTkzOSAxMDA2 NDQNCj4gLS0tIGEvdGVzdHMvbWVzb24uYnVpbGQNCj4gKysrIGIvdGVzdHMvbWVzb24uYnVpbGQN Cj4gQEAgLTUwLDYgKzUwLDcgQEAgdGVzdF9wcm9ncyA9IFsNCj4gIAkna21zX3BsYW5lX3NjYWxp bmcnLA0KPiAgCSdrbXNfcHJvcGVydGllcycsDQo+ICAJJ2ttc19wc3InLA0KPiArCSdrbXNfcHNy Ml9zdScsDQo+ICAJJ2ttc19wd3JpdGVfY3JjJywNCj4gIAkna21zX3JtZmInLA0KPiAgCSdrbXNf cm90YXRpb25fY3JjJywNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=