From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 274716E263 for ; Fri, 11 Jan 2019 23:15:05 +0000 (UTC) Message-ID: <586981e862787b6cf77903c813a01692aa89f5ea.camel@intel.com> From: Dhinakaran Pandiyan Date: Fri, 11 Jan 2019 15:15:01 -0800 In-Reply-To: <20190103143641.20200-9-jose.souza@intel.com> References: <20190103143641.20200-1-jose.souza@intel.com> <20190103143641.20200-9-jose.souza@intel.com> Mime-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t v2 9/9] 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: =?ISO-8859-1?Q?Jos=E9?= Roberto de Souza , igt-dev@lists.freedesktop.org Cc: Rodrigo Vivi List-ID: T24gVGh1LCAyMDE5LTAxLTAzIGF0IDA2OjM2IC0wODAwLCBKb3PDqSBSb2JlcnRvIGRlIFNvdXph IHdyb3RlOgo+IFRoaXMgdGVzdHMgY2hlY2tzIGlmIGhhcmR3YXJlIGlzIGFibGUgdG8gZG8gc2Vs ZWN0aXZlIHVwZGF0ZSB3aGVuCj4gc2NyZWVuIGNoYW5nZXMuCj4gUFNSMiBkb24ndCB0cmlnZ2Vy IGludGVycnVwdGlvbnMgYW5kIHRoZSAnUFNSMiBTVSBzdGF0dXMnIHJlZ2lzdGVyCj4gaXMgbm90 IGtlcHQgbG9hZGVkIGFsbCB0aGUgdGltZXMsIHNvIGl0IGlzIG5lY2Vzc2FyeSBrZWVwIHBvbGxp bmcKPiBQU1Igc3RhdHVzIGRlYnVnZnMgdW50aWwgdGhvc2UgdmFsdWVzIGFyZSBsb2FkZWQuCkRv ZXMgdGhpcyBtZWFuIGZsaXBwaW5nIG9uY2Ugd2hpbGUgcG9sbGluZyBTVSBzdGF0dXMgcmVnaXN0 ZXJzIGlzIG5vdApzdWZmaWNpZW50PwoKCj4gV2hlbiBsb2FkZWQgaXQgaXMgY29tcGFyZWQgd2l0 aCB0aGUgZXhwZWN0ZWQgdmFsdWUsIGlmIG1hdGNoZXMKPiB0aGUgcG9sbGluZyBpcyBzdG9wcGVk IGFuZCB0aGUgdGVzdCBwYXNzZWQgb3RoZXJ3aXNlIGl0IHdpbGwKPiB3YWl0IHVudGlsIGZhaWxf dGltZXJmZCB0byBleHBpcmUgdG8gZmFpbCB0aGUgdGVzdC4KVGhpcyBwYXRjaCB3YXJyYW50cyBz b21lIGV4cGxhbmF0aW9uIGFib3V0IHRoZSB0aW1lb3V0cyB1c2VkIGFuZCBob3cKdGhleSB3ZXJl IHNlbGVjdGVkLgoKPiAKPiB2MjogVXNpbmcgbmV3IFNVIGJsb2NrcyBkZWJ1Z2ZzIG91dHB1dAo+ IAo+IENjOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+Cj4gQ2M6IERoaW5h a2FyYW4gUGFuZGl5YW4gPGRoaW5ha2FyYW4ucGFuZGl5YW5AaW50ZWwuY29tPgo+IFNpZ25lZC1v ZmYtYnk6IEpvc8OpIFJvYmVydG8gZGUgU291emEgPGpvc2Uuc291emFAaW50ZWwuY29tPgo+IC0t LQo+ICBsaWIvaWd0X3Bzci5jICAgICAgICAgIHwgIDIzICsrKwo+ICBsaWIvaWd0X3Bzci5oICAg ICAgICAgIHwgICAxICsKPiAgdGVzdHMvTWFrZWZpbGUuc291cmNlcyB8ICAgMSArCj4gIHRlc3Rz L2ttc19wc3IyX3N1LmMgICAgfCAzNjIKPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwo+ICB0ZXN0cy9tZXNvbi5idWlsZCAgICAgIHwgICAxICsKPiAgNSBmaWxlcyBj aGFuZ2VkLCAzODggaW5zZXJ0aW9ucygrKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMva21z X3BzcjJfc3UuYwo+IAo+IGRpZmYgLS1naXQgYS9saWIvaWd0X3Bzci5jIGIvbGliL2lndF9wc3Iu Ywo+IGluZGV4IDBmNGIyZTIzLi5hOGI5ZTRjZSAxMDA2NDQKPiAtLS0gYS9saWIvaWd0X3Bzci5j Cj4gKysrIGIvbGliL2lndF9wc3IuYwo+IEBAIC0yMzQsMyArMjM0LDI2IEBAIGJvb2wgcHNyMl93 YWl0X3VwZGF0ZShpbnQgZGVidWdmc19mZCkKPiAgewo+ICAJcmV0dXJuIGlndF93YWl0KHBzcjJf c3RhdHVzX3VwZGF0ZShkZWJ1Z2ZzX2ZkKSwgNDAsIDEwKTsKPiAgfQo+ICsKPiArI2RlZmluZSBQ U1IyX1NVX0JMT0NLX1NUUl9MT09LVVAgIlBTUjIgU1UgYmxvY2tzOlxuMFx0Igo+ICsKPiArYm9v bCBwc3IyX3JlYWRfbGFzdF9udW1fc3VfYmxvY2tzX3ZhbChpbnQgZGVidWdmc19mZCwgdWludDE2 X3QKPiAqbnVtX3N1X2Jsb2NrcykKPiArewo+ICsJY2hhciBidWZbUFNSX1NUQVRVU19NQVhfTEVO XTsKPiArCWNoYXIgKnN0cjsKPiArCWludCByZXQ7Cj4gKwo+ICsJcmV0ID0gaWd0X2RlYnVnZnNf c2ltcGxlX3JlYWQoZGVidWdmc19mZCwKPiAiaTkxNV9lZHBfcHNyX3N0YXR1cyIsIGJ1ZiwKPiAr CQkJCSAgICAgIHNpemVvZihidWYpKTsKPiArCWlmIChyZXQgPCAwKQo+ICsJCXJldHVybiBmYWxz ZTsKPiArCj4gKwlzdHIgPSBzdHJzdHIoYnVmLCBQU1IyX1NVX0JMT0NLX1NUUl9MT09LVVApOwo+ ICsJaWYgKCFzdHIpCj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsKPiArCXN0ciA9ICZzdHJbc3RybGVu KFBTUjJfU1VfQkxPQ0tfU1RSX0xPT0tVUCldOwo+ICsJKm51bV9zdV9ibG9ja3MgPSAodWludDE2 X3Qpc3RydG9sKHN0ciwgTlVMTCwgMTApOwo+ICsKPiArCXJldHVybiB0cnVlOwo+ICt9Cj4gZGlm ZiAtLWdpdCBhL2xpYi9pZ3RfcHNyLmggYi9saWIvaWd0X3Bzci5oCj4gaW5kZXggMmI4ZDFhOTAu LjM0OWViMGMyIDEwMDY0NAo+IC0tLSBhL2xpYi9pZ3RfcHNyLmgKPiArKysgYi9saWIvaWd0X3Bz ci5oCj4gQEAgLTQxLDUgKzQxLDYgQEAgYm9vbCBwc3IyX3dhaXRfdXBkYXRlKGludCBkZWJ1Z2Zz X2ZkKTsKPiAgYm9vbCBwc3IyX2VuYWJsZShpbnQgZGVidWdmc19mZCk7Cj4gIGJvb2wgcHNyMl9k aXNhYmxlKGludCBkZWJ1Z2ZzX2ZkKTsKPiAgYm9vbCBwc3IyX3Npbmtfc3VwcG9ydChpbnQgZGVi dWdmc19mZCk7Cj4gK2Jvb2wgcHNyMl9yZWFkX2xhc3RfbnVtX3N1X2Jsb2Nrc192YWwoaW50IGRl YnVnZnNfZmQsIHVpbnQxNl90Cj4gKm51bV9zdV9ibG9ja3MpOwo+ICAKPiAgI2VuZGlmCj4gZGlm ZiAtLWdpdCBhL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2Vz Cj4gaW5kZXggZWVkZGUxZTguLjNjNzllZWMwIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL01ha2VmaWxl LnNvdXJjZXMKPiArKysgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCj4gQEAgLTc4LDYgKzc4LDcg QEAgVEVTVFNfcHJvZ3MgPSBcCj4gIAlrbXNfcGxhbmVfc2NhbGluZyBcCj4gIAlrbXNfcHJvcGVy dGllcyBcCj4gIAlrbXNfcHNyIFwKPiArCWttc19wc3IyX3N1IFwKPiAgCWttc19wd3JpdGVfY3Jj IFwKPiAgCWttc19ybWZiIFwKPiAgCWttc19yb3RhdGlvbl9jcmMgXAo+IGRpZmYgLS1naXQgYS90 ZXN0cy9rbXNfcHNyMl9zdS5jIGIvdGVzdHMva21zX3BzcjJfc3UuYwo+IG5ldyBmaWxlIG1vZGUg MTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAuLjY3YzAyZjI1Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBi L3Rlc3RzL2ttc19wc3IyX3N1LmMKPiBAQCAtMCwwICsxLDM2MiBAQAo+ICsvKgo+ICsgKiBDb3B5 cmlnaHQgwqkgMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbgo+ICsgKgo+ICsgKiBQZXJtaXNzaW9uIGlz IGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbgo+IG9idGFpbmlu ZyBhCj4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0 aW9uIGZpbGVzICh0aGUKPiAiU29mdHdhcmUiKSwKPiArICogdG8gZGVhbCBpbiB0aGUgU29mdHdh cmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQKPiBsaW1pdGF0aW9uCj4g KyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0 cmlidXRlLAo+IHN1YmxpY2Vuc2UsCj4gKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29m dHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tCj4gdGhlCj4gKyAqIFNvZnR3YXJl IGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nCj4gY29uZGl0 aW9uczoKPiArICoKPiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVy bWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZwo+IHRoZSBuZXh0Cj4gKyAqIHBhcmFncmFwaCkgc2hh bGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbAo+IHBvcnRpb25zIG9m IHRoZQo+ICsgKiBTb2Z0d2FyZS4KPiArICoKPiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVE ICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCj4gRVhQUkVTUyBPUgo+ICsg KiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9G Cj4gTUVSQ0hBTlRBQklMSVRZLAo+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8KPiBFVkVOVCBTSEFMTAo+ICsgKiBUSEUgQVVU SE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdF Uwo+IE9SIE9USEVSCj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09O VFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAo+IEFSSVNJTkcKPiArICogRlJPTSwgT1VUIE9GIE9S IElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgo+IE9USEVSIERF QUxJTkdTCj4gKyAqIElOIFRIRSBTT0ZUV0FSRS4KPiArICoKPiArICovCj4gKwo+ICsjaW5jbHVk ZSAiaWd0LmgiCj4gKyNpbmNsdWRlICJpZ3Rfc3lzZnMuaCIKPiArI2luY2x1ZGUgImlndF9wc3Iu aCIKPiArI2luY2x1ZGUgPGVycm5vLmg+Cj4gKyNpbmNsdWRlIDxwb2xsLmg+Cj4gKyNpbmNsdWRl IDxwdGhyZWFkLmg+Cj4gKyNpbmNsdWRlIDxzdGRib29sLmg+Cj4gKyNpbmNsdWRlIDxzdGRpby5o Pgo+ICsjaW5jbHVkZSA8c3RyaW5nLmg+Cj4gKyNpbmNsdWRlIDxzeXMvdGltZXJmZC5oPgo+ICsj aW5jbHVkZSAiaW50ZWxfYnVmbWdyLmgiCj4gKwo+ICtJR1RfVEVTVF9ERVNDUklQVElPTigiVGVz dCBQU1IyIHNlbGVjdGl2ZSB1cGRhdGUiKTsKPiArCj4gKyNkZWZpbmUgU1FVQVJFX1NJWkUgMTAw Cj4gKwo+ICtlbnVtIG9wZXJhdGlvbnMgewo+ICsJUEFHRV9GTElQLAo+ICsJRlJPTlRCVUZGRVIs Cj4gKwlMQVNUCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3QgY2hhciAqb3Bfc3RyKGVudW0gb3Bl cmF0aW9ucyBvcCkKPiArewo+ICsJc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBuYW1lW10gPSB7 Cj4gKwkJW1BBR0VfRkxJUF0gPSAicGFnZV9mbGlwIiwKPiArCQlbRlJPTlRCVUZGRVJdID0gImZy b250YnVmZmVyIgo+ICsJfTsKPiArCj4gKwlyZXR1cm4gbmFtZVtvcF07Cj4gK30KPiArCj4gK3R5 cGVkZWYgc3RydWN0IHsKPiArCXN0cnVjdCBpZ3RfZmIgZmJbMl07Cj4gKwlzdHJ1Y3QgcG9sbGZk IHBvbGxmZHNbMl07Cj4gKwlwdGhyZWFkX3QgdGhyZWFkX2lkOwo+ICsJaW50IGRybV9mZDsKPiAr CWludCBkZWJ1Z2ZzX2ZkOwo+ICsJaW50IGZsaXBfdGltZXJmZDsKPiArCWludCBmYWlsX3RpbWVy ZmQ7Cj4gKwl1aW50MzJfdCBjaGFuZ2VzOwo+ICsJdm9sYXRpbGUgYm9vbCBydW47Cj4gKwl2b2xh dGlsZSBib29sIHN1Y2VzczsKPiArCj4gKwllbnVtIG9wZXJhdGlvbnMgb3A7Cj4gKwl1aW50MzJf dCBkZXZpZDsKPiArCXVpbnQzMl90IGNydGNfaWQ7Cj4gKwlpZ3RfZGlzcGxheV90IGRpc3BsYXk7 Cj4gKwlkcm1faW50ZWxfYnVmbWdyICpidWZtZ3I7Cj4gKwlpbnQgbW9kX3NpemU7Cj4gKwlpbnQg bW9kX3N0cmlkZTsKPiArCWRybU1vZGVNb2RlSW5mbyAqbW9kZTsKPiArCWlndF9vdXRwdXRfdCAq b3V0cHV0Owo+ICt9IGRhdGFfdDsKPiArCj4gK3N0YXRpYyB2b2lkIHNldHVwX291dHB1dChkYXRh X3QgKmRhdGEpCj4gK3sKPiArCWlndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSAmZGF0YS0+ZGlzcGxh eTsKPiArCWlndF9vdXRwdXRfdCAqb3V0cHV0Owo+ICsJZW51bSBwaXBlIHBpcGU7Cj4gKwo+ICsJ Zm9yX2VhY2hfcGlwZV93aXRoX3ZhbGlkX291dHB1dChkaXNwbGF5LCBwaXBlLCBvdXRwdXQpIHsK PiArCQlkcm1Nb2RlQ29ubmVjdG9yUHRyIGMgPSBvdXRwdXQtPmNvbmZpZy5jb25uZWN0b3I7Cj4g Kwo+ICsJCWlmIChjLT5jb25uZWN0b3JfdHlwZSAhPSBEUk1fTU9ERV9DT05ORUNUT1JfZURQKQo+ ICsJCQljb250aW51ZTsKPiArCj4gKwkJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIHBpcGUp Owo+ICsJCWRhdGEtPmNydGNfaWQgPSBvdXRwdXQtPmNvbmZpZy5jcnRjLT5jcnRjX2lkOwo+ICsJ CWRhdGEtPm91dHB1dCA9IG91dHB1dDsKPiArCQlkYXRhLT5tb2RlID0gaWd0X291dHB1dF9nZXRf bW9kZShvdXRwdXQpOwo+ICsKPiArCQlyZXR1cm47Cj4gKwl9Cj4gK30KPiArCj4gK3N0YXRpYyB2 b2lkIGRpc3BsYXlfaW5pdChkYXRhX3QgKmRhdGEpCj4gK3sKPiArCWlndF9kaXNwbGF5X3JlcXVp cmUoJmRhdGEtPmRpc3BsYXksIGRhdGEtPmRybV9mZCk7Cj4gKwlzZXR1cF9vdXRwdXQoZGF0YSk7 Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGRpc3BsYXlfZmluaShkYXRhX3QgKmRhdGEpCj4gK3sK PiArCWlndF9kaXNwbGF5X2ZpbmkoJmRhdGEtPmRpc3BsYXkpOwo+ICt9Cj4gKwo+ICtzdGF0aWMg dm9pZCAqZGVidWdmc190aHJlYWQodm9pZCAqcHRyKQo+ICt7Cj4gKwlkYXRhX3QgKmRhdGEgPSBw dHI7Cj4gKwl1aW50MTZfdCBleHBlY3RlZF9udW1fc3VfYmxvY2tzOwo+ICsKPiArCS8qIGVhY2gg c2VsZWN0aXZlIHVwZGF0ZSBibG9jayBpcyA0IGxpbmVzIHRhbGwgKi8KPiArCWV4cGVjdGVkX251 bV9zdV9ibG9ja3MgPSBTUVVBUkVfU0laRSAvIDQ7Cj4gKwlleHBlY3RlZF9udW1fc3VfYmxvY2tz ICs9IFNRVUFSRV9TSVpFICUgNCA/IDEgOiAwOwo+ICsKPiArCXdoaWxlIChkYXRhLT5ydW4pIHsK PiArCQl1aW50MTZfdCBudW1fc3VfYmxvY2tzOwo+ICsJCWJvb2wgcjsKPiArCj4gKwkJciA9IHBz cjJfcmVhZF9sYXN0X251bV9zdV9ibG9ja3NfdmFsKGRhdGEtPmRlYnVnZnNfZmQsCj4gKwkJCQkJ CSAgICAgJm51bV9zdV9ibG9ja3MpOwo+ICsJCWlmIChyICYmIG51bV9zdV9ibG9ja3MgPT0gZXhw ZWN0ZWRfbnVtX3N1X2Jsb2Nrcykgewo+ICsJCQlkYXRhLT5ydW4gPSBmYWxzZTsKPiArCQkJZGF0 YS0+c3VjZXNzID0gdHJ1ZTsKPiArCQkJYnJlYWs7Cj4gKwkJfQo+ICsKPiArCQl1c2xlZXAoMSk7 Cj4gKwl9Cj4gKwoKV2hhdCBoYXBwZW5zIGlmIHlvdSBzdGFydCB0aGlzIHRocmVhZCBhbmQgdGhl biBmbGlwIGp1c3Qgb25jZT8gRG8geW91CnNlZSB0aGUgZXhwZWN0ZWQgYmxvY2sgY291bnQgaW4g ZGVidWdmcyBhdCBzb21lIGluc3RhbmNlIGFmdGVyIHRoZQpmbGlwPwoKPiArCXJldHVybiBOVUxM Owo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBwcmVwYXJlKGRhdGFfdCAqZGF0YSkKPiArewo+ICsJ c3RydWN0IGl0aW1lcnNwZWMgaW50ZXJ2YWw7Cj4gKwlpZ3RfcGxhbmVfdCAqcHJpbWFyeTsKPiAr CWludCByOwo+ICsKPiArCS8qIGFsbCBncmVlbiBmcmFtZSAqLwo+ICsJaWd0X2NyZWF0ZV9jb2xv cl9mYihkYXRhLT5kcm1fZmQsCj4gKwkJCSAgICBkYXRhLT5tb2RlLT5oZGlzcGxheSwgZGF0YS0+ bW9kZS0+dmRpc3BsYXksCj4gKwkJCSAgICBEUk1fRk9STUFUX1hSR0I4ODg4LAo+ICsJCQkgICAg TE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwKPiArCQkJICAgIDAuMCwgMS4wLCAwLjAsCj4gKwkJ CSAgICAmZGF0YS0+ZmJbMF0pOwo+ICsKPiArCWlmIChkYXRhLT5vcCA9PSBQQUdFX0ZMSVApIHsK PiArCQljYWlyb190ICpjcjsKPiArCj4gKwkJaWd0X2NyZWF0ZV9jb2xvcl9mYihkYXRhLT5kcm1f ZmQsCj4gKwkJCQkgICAgZGF0YS0+bW9kZS0+aGRpc3BsYXksIGRhdGEtPm1vZGUtCj4gPnZkaXNw bGF5LAo+ICsJCQkJICAgIERSTV9GT1JNQVRfWFJHQjg4ODgsCj4gKwkJCQkgICAgTE9DQUxfRFJN X0ZPUk1BVF9NT0RfTk9ORSwKPiArCQkJCSAgICAwLjAsIDEuMCwgMC4wLAo+ICsJCQkJICAgICZk YXRhLT5mYlsxXSk7Cj4gKwo+ICsJCWNyID0gaWd0X2dldF9jYWlyb19jdHgoZGF0YS0+ZHJtX2Zk LCAmZGF0YS0+ZmJbMV0pOwo+ICsJCS8qIGEgd2hpdGUgc3F1YXJlICovCj4gKwkJaWd0X3BhaW50 X2NvbG9yX2FscGhhKGNyLCAwLCAwLCBTUVVBUkVfU0laRSwKPiBTUVVBUkVfU0laRSwKPiArCQkJ CSAgICAgIDEuMCwgMS4wLCAxLjAsIDEuMCk7Cj4gKwkJaWd0X3B1dF9jYWlyb19jdHgoZGF0YS0+ ZHJtX2ZkLCAgJmRhdGEtPmZiWzFdLCBjcik7Cj4gKwl9Cj4gKwo+ICsJcHJpbWFyeSA9IGlndF9v dXRwdXRfZ2V0X3BsYW5lX3R5cGUoZGF0YS0+b3V0cHV0LAo+ICsJCQkJCSAgICBEUk1fUExBTkVf VFlQRV9QUklNQVJZKTsKPiArCWlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgTlVMTCk7Cj4gKwo+ ICsJaWd0X2Rpc3BsYXlfY29tbWl0KCZkYXRhLT5kaXNwbGF5KTsKPiArCWlndF9wbGFuZV9zZXRf ZmIocHJpbWFyeSwgJmRhdGEtPmZiWzBdKTsKPiArCWlndF9kaXNwbGF5X2NvbW1pdCgmZGF0YS0+ ZGlzcGxheSk7Cj4gKwo+ICsJaWd0X2Fzc2VydChwc3IyX3dhaXRfZGVlcF9zbGVlcChkYXRhLT5k ZWJ1Z2ZzX2ZkKSk7Cj4gKwo+ICsJZGF0YS0+cnVuID0gdHJ1ZTsKPiArCWRhdGEtPnN1Y2VzcyA9 IGZhbHNlOwo+ICsJZGF0YS0+Y2hhbmdlcyA9IDA7Cj4gKwo+ICsJciA9IHB0aHJlYWRfY3JlYXRl KCZkYXRhLT50aHJlYWRfaWQsIE5VTEwsIGRlYnVnZnNfdGhyZWFkLAo+IGRhdGEpOwo+ICsJaWYg KHIpCj4gKwkJaWd0X3dhcm4oIkVycm9yIHN0YXJ0aW5nIHRocmVhZDogJWlcbiIsIHIpOwo+ICsK PiArCWludGVydmFsLml0X3ZhbHVlLnR2X25zZWMgPSAwOwo+ICsJaW50ZXJ2YWwuaXRfdmFsdWUu dHZfc2VjID0gMzsKPiArCWludGVydmFsLml0X2ludGVydmFsLnR2X25zZWMgPSBpbnRlcnZhbC5p dF92YWx1ZS50dl9uc2VjOwo+ICsJaW50ZXJ2YWwuaXRfaW50ZXJ2YWwudHZfc2VjID0gaW50ZXJ2 YWwuaXRfdmFsdWUudHZfc2VjOwo+ICsJciA9IHRpbWVyZmRfc2V0dGltZShkYXRhLT5mYWlsX3Rp bWVyZmQsIDAsICZpbnRlcnZhbCwgTlVMTCk7Cj4gKwlpZ3RfcmVxdWlyZV9mKHIgIT0gLTEsICJF cnJvciBzZXR0aW5nIHRpbWVyZmRcbiIpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCB1cGRhdGVf c2NyZWVuKGRhdGFfdCAqZGF0YSkKPiArewo+ICsJZGF0YS0+Y2hhbmdlcysrOwo+ICsKPiArCXN3 aXRjaCAoZGF0YS0+b3ApIHsKPiArCWNhc2UgUEFHRV9GTElQOiB7Cj4gKwkJaWd0X3BsYW5lX3Qg KnByaW1hcnk7Cj4gKwo+ICsJCXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKGRh dGEtPm91dHB1dCwKPiArCQkJCQkJICAgIERSTV9QTEFORV9UWVBFX1BSSU0KPiBBUlkpOwo+ICsK PiArCQlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksICZkYXRhLT5mYltkYXRhLT5jaGFuZ2VzICYK PiAxXSk7Cj4gKwkJaWd0X2Rpc3BsYXlfY29tbWl0KCZkYXRhLT5kaXNwbGF5KTsKPiArCQlicmVh azsKPiArCX0KPiArCWNhc2UgRlJPTlRCVUZGRVI6IHsKPiArCQlkcm1Nb2RlQ2xpcCBjbGlwOwo+ ICsJCWNhaXJvX3QgKmNyOwo+ICsJCWludCByOwo+ICsKPiArCQljbGlwLngxID0gY2xpcC55MSA9 IDA7Cj4gKwkJY2xpcC54MiA9IGNsaXAueTIgPSBTUVVBUkVfU0laRTsKPiArCj4gKwkJY3IgPSBp Z3RfZ2V0X2NhaXJvX2N0eChkYXRhLT5kcm1fZmQsICZkYXRhLT5mYlswXSk7Cj4gKwo+ICsJCWlm IChkYXRhLT5jaGFuZ2VzICYgMSkgewo+ICsJCQkvKiBnbyBiYWNrIHRvIGFsbCBncmVlbiBmcmFt ZSB3aXRoIHdpdGggc3F1YXJlCj4gKi8KPiArCQkJaWd0X3BhaW50X2NvbG9yX2FscGhhKGNyLCAw LCAwLCBTUVVBUkVfU0laRSwKPiArCQkJCQkgICAgICBTUVVBUkVfU0laRSwgMS4wLCAxLjAsCj4g MS4wLCAxLjApOwo+ICsJCX0gZWxzZSB7Cj4gKwkJCS8qIGdvIGJhY2sgdG8gYWxsIGdyZWVuIGZy YW1lICovCj4gKwkJCWlndF9wYWludF9jb2xvcl9hbHBoYShjciwgMCwgMCwgU1FVQVJFX1NJWkUs Cj4gKwkJCQkJICAgICAgU1FVQVJFX1NJWkUsIDAsIDEuMCwgMCwKPiAxLjApOwo+ICsJCX0KPiAr Cj4gKwkJciA9IGRybU1vZGVEaXJ0eUZCKGRhdGEtPmRybV9mZCwgZGF0YS0+ZmJbMF0uZmJfaWQs Cj4gJmNsaXAsIDEpOwo+ICsJCWlndF9hc3NlcnQociA9PSAwIHx8IHIgPT0gLUVOT1NZUyk7Cj4g KwkJYnJlYWs7Cj4gKwl9Cj4gKwlkZWZhdWx0Ogo+ICsJCWlndF9hc3NlcnRfZihkYXRhLT5vcCwg Ik9wZXJhdGlvbiBub3QgaGFuZGxlZFxuIik7Cj4gKwl9Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lk IHJ1bihkYXRhX3QgKmRhdGEpCj4gK3sKPiArCXdoaWxlIChkYXRhLT5ydW4pIHsKPiArCQl1aW50 NjRfdCBleHA7Cj4gKwkJaW50IHI7Cj4gKwo+ICsJCXIgPSBwb2xsKGRhdGEtPnBvbGxmZHMsCj4g KwkJCSBzaXplb2YoZGF0YS0+cG9sbGZkcykgLyBzaXplb2YoZGF0YS0KPiA+cG9sbGZkc1swXSks IC0xKTsKPiArCQlpZiAociA8IDApCj4gKwkJCWJyZWFrOwo+ICsKPiArCQkvKiBmbGlwX3RpbWVy ZmQgdGltZW91dCAqLwo+ICsJCWlmIChkYXRhLT5wb2xsZmRzWzBdLnJldmVudHMgJiBQT0xMSU4p IHsKPiArCQkJciA9IHJlYWQoZGF0YS0+cG9sbGZkc1swXS5mZCwgJmV4cCwKPiBzaXplb2YoZXhw KSk7Cj4gKwo+ICsJCQlpZiAociAhPSBzaXplb2YodWludDY0X3QpKSB7Cj4gKwkJCQlpZ3Rfd2Fy bigicmVhZCBhIG5vdCBleHBlY3RlZCBudW1iZXIgb2YKPiBieXRlcyBmcm9tIGZsaXBfdGltZXJm ZDogJWlcbiIsIHIpOwo+ICsJCQl9IGVsc2UgaWYgKGV4cCkKPiArCQkJCXVwZGF0ZV9zY3JlZW4o ZGF0YSk7Cj4gKwkJfQo+ICsKPiArCQkvKiBmYWlsX3RpbWVyZmQgdGltZW91dCAqLwpXb3VsZG4n dCBpdCBiZSBzaW1wbGVyIHRvIGZsaXAgYSBmaXhlZCBudW1iZXIgb2YgdGltZXM/CgoKPiArCQlp ZiAoZGF0YS0+cG9sbGZkc1sxXS5yZXZlbnRzICYgUE9MTElOKSB7Cj4gKwkJCXIgPSByZWFkKGRh dGEtPnBvbGxmZHNbMV0uZmQsICZleHAsCj4gc2l6ZW9mKGV4cCkpOwo+ICsKPiArCQkJaWYgKHIg IT0gc2l6ZW9mKHVpbnQ2NF90KSkgewo+ICsJCQkJaWd0X3dhcm4oInJlYWQgYSBub3QgZXhwZWN0 ZWQgbnVtYmVyIG9mCj4gYnl0ZXMgZnJvbSBmYWlsX3RpbWVyZmQ6ICVpXG4iLCByKTsKPiArCQkJ fSBlbHNlIGlmIChleHApCj4gKwkJCQlicmVhazsKPiArCQl9Cj4gKwl9Cj4gKwo+ICsJZGF0YS0+ cnVuID0gZmFsc2U7Cj4gKwlwdGhyZWFkX2pvaW4oZGF0YS0+dGhyZWFkX2lkLCBOVUxMKTsKPiAr Cj4gKwlpZ3RfZGVidWcoIkNoYW5nZXM6ICV1XG4iLCBkYXRhLT5jaGFuZ2VzKTsKPiArCWlndF9h c3NlcnQoZGF0YS0+c3VjZXNzKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgY2xlYW51cChkYXRh X3QgKmRhdGEpCj4gK3sKPiArCWlndF9wbGFuZV90ICpwcmltYXJ5Owo+ICsKPiArCXByaW1hcnkg PSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKGRhdGEtPm91dHB1dCwKPiArCQkJCQkgICAgRFJN X1BMQU5FX1RZUEVfUFJJTUFSWSk7Cj4gKwlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksIE5VTEwp Owo+ICsJaWd0X2Rpc3BsYXlfY29tbWl0KCZkYXRhLT5kaXNwbGF5KTsKPiArCj4gKwlpZ3RfcmVt b3ZlX2ZiKGRhdGEtPmRybV9mZCwgJmRhdGEtPmZiWzBdKTsKPiArCWlmIChkYXRhLT5vcCA9PSBQ QUdFX0ZMSVApCj4gKwkJaWd0X3JlbW92ZV9mYihkYXRhLT5kcm1fZmQsICZkYXRhLT5mYlsxXSk7 Cj4gK30KPiArCj4gK2ludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCj4gK3sKPiArCWRh dGFfdCBkYXRhID0ge307Cj4gKwllbnVtIG9wZXJhdGlvbnMgb3A7Cj4gKwo+ICsJaWd0X3N1YnRl c3RfaW5pdF9wYXJzZV9vcHRzKCZhcmdjLCBhcmd2LCAiIiwgTlVMTCwKPiArCQkJCSAgICBOVUxM LCBOVUxMLCBOVUxMKTsKPiArCWlndF9za2lwX29uX3NpbXVsYXRpb24oKTsKPiArCj4gKwlpZ3Rf Zml4dHVyZSB7Cj4gKwkJc3RydWN0IGl0aW1lcnNwZWMgaW50ZXJ2YWw7Cj4gKwkJaW50IHI7Cj4g Kwo+ICsJCWRhdGEuZHJtX2ZkID0gZHJtX29wZW5fZHJpdmVyX21hc3RlcihEUklWRVJfSU5URUwp Owo+ICsJCWRhdGEuZGVidWdmc19mZCA9IGlndF9kZWJ1Z2ZzX2RpcihkYXRhLmRybV9mZCk7Cj4g KwkJa21zdGVzdF9zZXRfdnRfZ3JhcGhpY3NfbW9kZSgpOwo+ICsJCWRhdGEuZGV2aWQgPSBpbnRl bF9nZXRfZHJtX2RldmlkKGRhdGEuZHJtX2ZkKTsKPiArCj4gKwkJaWd0X3JlcXVpcmVfZihwc3Iy X3Npbmtfc3VwcG9ydChkYXRhLmRlYnVnZnNfZmQpLAo+ICsJCQkgICAgICAiU2luayBkb2VzIG5v dCBzdXBwb3J0IFBTUjJcbiIpOwo+ICsKPiArCQlkYXRhLmJ1Zm1nciA9IGRybV9pbnRlbF9idWZt Z3JfZ2VtX2luaXQoZGF0YS5kcm1fZmQsCj4gNDA5Nik7Cj4gKwkJaWd0X2Fzc2VydChkYXRhLmJ1 Zm1ncik7Cj4gKwkJZHJtX2ludGVsX2J1Zm1ncl9nZW1fZW5hYmxlX3JldXNlKGRhdGEuYnVmbWdy KTsKPiArCj4gKwkJZGlzcGxheV9pbml0KCZkYXRhKTsKPiArCj4gKwkJaWd0X3JlcXVpcmUocHNy Ml9lbmFibGUoZGF0YS5kZWJ1Z2ZzX2ZkKSk7Cj4gKwkJaWd0X3JlcXVpcmUocHNyMl93YWl0X2Rl ZXBfc2xlZXAoZGF0YS5kZWJ1Z2ZzX2ZkKSk7Cj4gKwo+ICsJCWRhdGEuZmxpcF90aW1lcmZkID0g dGltZXJmZF9jcmVhdGUoQ0xPQ0tfTU9OT1RPTklDLAo+ICsJCQkJCQkgICBURkRfTk9OQkxPQ0sp Owo+ICsJCWlndF9yZXF1aXJlKGRhdGEuZmxpcF90aW1lcmZkICE9IC0xKTsKPiArCQlpbnRlcnZh bC5pdF92YWx1ZS50dl9uc2VjID0gTlNFQ19QRVJfU0VDIC8gMTU7CldoYXQncyB0aGUgcmF0aW9u YWxlIGZvciB0aGlzIG51bWJlcj8KCj4gKwkJaW50ZXJ2YWwuaXRfdmFsdWUudHZfc2VjID0gMDsK PiArCQlpbnRlcnZhbC5pdF9pbnRlcnZhbC50dl9uc2VjID0KPiBpbnRlcnZhbC5pdF92YWx1ZS50 dl9uc2VjOwo+ICsJCWludGVydmFsLml0X2ludGVydmFsLnR2X3NlYyA9IGludGVydmFsLml0X3Zh bHVlLnR2X3NlYzsKPiArCQlyID0gdGltZXJmZF9zZXR0aW1lKGRhdGEuZmxpcF90aW1lcmZkLCAw LCAmaW50ZXJ2YWwsCj4gTlVMTCk7Cj4gKwkJaWd0X3JlcXVpcmVfZihyICE9IC0xLCAiRXJyb3Ig c2V0dGluZyB0aW1lcmZkXG4iKTsKPiArCj4gKwkJZGF0YS5mYWlsX3RpbWVyZmQgPSB0aW1lcmZk X2NyZWF0ZShDTE9DS19NT05PVE9OSUMsCj4gKwkJCQkJCSAgIFRGRF9OT05CTE9DSyk7Cj4gKwkJ aWd0X3JlcXVpcmUoZGF0YS5mYWlsX3RpbWVyZmQgIT0gLTEpOwo+ICsKPiArCQlkYXRhLnBvbGxm ZHNbMF0uZmQgPSBkYXRhLmZsaXBfdGltZXJmZDsKPiArCQlkYXRhLnBvbGxmZHNbMF0uZXZlbnRz ID0gUE9MTElOOwo+ICsJCWRhdGEucG9sbGZkc1swXS5yZXZlbnRzID0gMDsKPiArCj4gKwkJZGF0 YS5wb2xsZmRzWzFdLmZkID0gZGF0YS5mYWlsX3RpbWVyZmQ7Cj4gKwkJZGF0YS5wb2xsZmRzWzFd LmV2ZW50cyA9IFBPTExJTjsKPiArCQlkYXRhLnBvbGxmZHNbMV0ucmV2ZW50cyA9IDA7Cj4gKwl9 Cj4gKwo+ICsJZm9yIChvcCA9IFBBR0VfRkxJUDsgb3AgPCBMQVNUOyBvcCsrKSB7Cj4gKwkJaWd0 X3N1YnRlc3RfZigiJXMiLCBvcF9zdHIob3ApKSB7Cj4gKwkJCWRhdGEub3AgPSBvcDsKPiArCQkJ cHJlcGFyZSgmZGF0YSk7Cj4gKwkJCXJ1bigmZGF0YSk7Cj4gKwkJCWNsZWFudXAoJmRhdGEpOwo+ ICsJCX0KPiArCX0KPiArCj4gKwlpZ3RfZml4dHVyZSB7Cj4gKwkJY2xvc2UoZGF0YS5kZWJ1Z2Zz X2ZkKTsKPiArCQlkcm1faW50ZWxfYnVmbWdyX2Rlc3Ryb3koZGF0YS5idWZtZ3IpOwo+ICsJCWRp c3BsYXlfZmluaSgmZGF0YSk7Cj4gKwl9Cj4gKwo+ICsJaWd0X2V4aXQoKTsKPiArfQo+IGRpZmYg LS1naXQgYS90ZXN0cy9tZXNvbi5idWlsZCBiL3Rlc3RzL21lc29uLmJ1aWxkCj4gaW5kZXggYjhh NmU2MWIuLmM1NTczMzNjIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL21lc29uLmJ1aWxkCj4gKysrIGIv dGVzdHMvbWVzb24uYnVpbGQKPiBAQCAtNDksNiArNDksNyBAQCB0ZXN0X3Byb2dzID0gWwo+ICAJ J2ttc19wbGFuZV9zY2FsaW5nJywKPiAgCSdrbXNfcHJvcGVydGllcycsCj4gIAkna21zX3Bzcics Cj4gKwkna21zX3BzcjJfc3UnLAo+ICAJJ2ttc19wd3JpdGVfY3JjJywKPiAgCSdrbXNfcm1mYics Cj4gIAkna21zX3JvdGF0aW9uX2NyYycsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2lndC1kZXYK