From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id E5AB789142 for ; Mon, 8 Apr 2019 22:15:30 +0000 (UTC) Date: Mon, 8 Apr 2019 15:17:40 -0700 From: Manasi Navare Message-ID: <20190408221740.GA24218@intel.com> References: <20190405225549.7306-1-manasi.d.navare@intel.com> <20190408120805.GC4786@ideak-desk.fi.intel.com> <20190408190636.GA23276@intel.com> <20190408203927.GA21909@ideak-desk.fi.intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190408203927.GA21909@ideak-desk.fi.intel.com> Subject: Re: [igt-dev] [PATCH i-g-t v2] tests/kms_dp_dsc: Force a full modeset when we force dsc enable 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: Imre Deak , igt-dev@lists.freedesktop.org Cc: Anusha Srivatsa , Petri Latvala List-ID: VGhhbmtzIGZvciB5b3VyIGZlZWRiYWNrIEltcmUsIEkgd2lsbCBtYWtlIHRoZSBuZWNlc3Nhcnkg Y2hhbmdlcwphbmQgc3BsaXQgdGhlc2UgaW50byB0d28gc2VwYXJhdGUgcGF0Y2hlcy4KClJlZ2Fy ZHMKTWFuYXNpCgpPbiBNb24sIEFwciAwOCwgMjAxOSBhdCAxMTozOToyN1BNICswMzAwLCBJbXJl IERlYWsgd3JvdGU6Cj4gT24gTW9uLCBBcHIgMDgsIDIwMTkgYXQgMTI6MDY6MzdQTSAtMDcwMCwg TWFuYXNpIE5hdmFyZSB3cm90ZToKPiA+IE9uIE1vbiwgQXByIDA4LCAyMDE5IGF0IDAzOjA4OjA1 UE0gKzAzMDAsIEltcmUgRGVhayB3cm90ZToKPiA+ID4gT24gRnJpLCBBcHIgMDUsIDIwMTkgYXQg MDM6NTU6NDlQTSAtMDcwMCwgTWFuYXNpIE5hdmFyZSB3cm90ZToKPiA+ID4gPiBEU0MgZW5hYmxl IGdldHMgY29uZmlndXJlZCBkdXJpbmcgY29tcHV0ZV9jb25maWcgYW5kIG5lZWRzCj4gPiA+ID4g YSBmdWxsIG1vZGVzZXQgdG8gZm9yY2UgRFNDLgo+ID4gPiA+IFNvbWV0aW1lcyBpbiBiZXR3ZWVu IHRoZSB0ZXN0cywgaWYgdGhlIGluaXRpYWwgb3V0cHV0IGlzIHNhbWUgYXMgdGhlCj4gPiA+ID4g bW9kZSBiZWluZyBzZXQgZm9yIERTQyB0aGVuIGl0IHdpbGwgbm90IGRvIGEgZnVsbCBtb2Rlc2V0 Lgo+ID4gPiA+IFNvIHdlIGRpc2FibGUgdGhlIG91dHB1dCBiZWZvcmUgZm9yY2luZyBhIG1vZGUg d2l0aCBEU0MgZW5hYmxlLgo+ID4gPiA+IAo+ID4gPiA+IFlvdSBuZWVkIHRoZSBrZXJuZWwgcGF0 Y2g6Cj4gPiA+ID4gaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3Nlcmllcy81OTA4 NC8KPiA+ID4gPiAKPiA+ID4gPiB2MjoKPiA+ID4gPiAqIFJlc3RvcmUgdGhlIHZhbHVlIG9mIGZv cmNlIGRzYyBlbmFibGUgYWZ0ZXIgdGhlIHRlc3QgYW5kIGluIGlndF9leGl0X2hhbmRsZXIKPiA+ ID4gPiAqIEFkZCBpZ3RfaW5zdGFsbF9leGl0X2hhbmRsZXIgdG8gcmVzdG9yZSB2YWx1ZXMgb24g ZmFpbC9leGl0Cj4gPiA+ID4gCj4gPiA+ID4gRml4ZXM6IGRiMTliY2NjMWMyMiAoInRlc3Qva21z X2RwX2RzYzogQmFzaWMgS01TIHRlc3QgdG8gdmFsaWRhdGUgVkVTQSBEU0Mgb24gRFAvZURQIikK PiA+ID4gPiBDYzogUGV0cmkgTGF0dmFsYSA8cGV0cmkubGF0dmFsYUBpbnRlbC5jb20+Cj4gPiA+ ID4gQ2M6IEFudXNoYSBTcml2YXRzYSA8YW51c2hhLnNyaXZhdHNhQGludGVsLmNvbT4KPiA+ID4g PiBDYzogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgo+ID4gPiA+IFNpZ25lZC1vZmYt Ynk6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+Cj4gPiA+ID4gLS0t Cj4gPiA+ID4gIHRlc3RzL2ttc19kcF9kc2MuYyB8IDEzMyArKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDgxIGluc2Vy dGlvbnMoKyksIDUyIGRlbGV0aW9ucygtKQo+ID4gPiA+IAo+ID4gPiA+IGRpZmYgLS1naXQgYS90 ZXN0cy9rbXNfZHBfZHNjLmMgYi90ZXN0cy9rbXNfZHBfZHNjLmMKPiA+ID4gPiBpbmRleCBkYTkz Y2Q3NC4uYWNhZWU4OTAgMTAwNjQ0Cj4gPiA+ID4gLS0tIGEvdGVzdHMva21zX2RwX2RzYy5jCj4g PiA+ID4gKysrIGIvdGVzdHMva21zX2RwX2RzYy5jCj4gPiA+ID4gQEAgLTYzLDExOSArNjMsMTQ3 IEBAIHR5cGVkZWYgc3RydWN0IHsKPiA+ID4gPiAgCWludCBjcnRjOwo+ID4gPiA+ICAJZW51bSBw aXBlIHBpcGU7Cj4gPiA+ID4gIAljaGFyIGNvbm5fbmFtZVsxMjhdOwo+ID4gPiA+ICsJYm9vbCBm b3JjZV9kc2NfZW47Cj4gPiA+IAo+ID4gPiBmb3JjZV9kc2NfZW5fb3JpZz8KPiA+IAo+ID4gU3Vy ZSwgSSB3aWxsIHJlbmFtZSB0aGlzCj4gPiAKPiA+ID4gCj4gPiA+ID4gIH0gZGF0YV90Owo+ID4g PiA+ICAKPiA+ID4gPiArZGF0YV90IGRhdGEgPSB7fTsKPiA+ID4gPiArCj4gPiA+IAo+ID4gPiBN YXliZSBtYWtlIG9ubHkgZGVidWdmc19mZCBhbmQgZm9yY2VfZHNjX2VuX29yaWcgZ2xvYmFsIHRv IHJlZHVjZSB0aGUKPiA+ID4gY2h1cm4/IEFsc28gaW5pdCBkZWJ1Z2ZzX2ZkIHRvIC0xLCBzbyB0 aGUgZXhpdCBoYW5kbGVyIGtub3dzIGlmIGl0J3MKPiA+ID4gYmVlbiBjbG9zZWQgYWxyZWFkeS4K PiA+IAo+ID4gQnV0IHRoZW4gZm9yIHJlc3RvcmUgSSBhbHNvIG5lZWQgZGF0YS5jb25uX25hbWUu IFNvIGkgdGhvdWdodCBJIHdvdWxkIG1ha2UKPiA+IHRoZSB3aG9sZSB0aGluZyBnbG9iYWwuCj4g Cj4gSSdkIHN0aWxsIGF2b2lkIHRoZSBjaHVybiAobWFraW5nIHRoZSByZXZpZXcgZWFzaWVyKSBi eSBhZGRpbmcgYSBuZXcKPiBnbG9iYWwKPiAKPiAJaW50IGZvcmNlX2RzY19yZXN0b3JlX2ZkID0g LTE7Cj4gCj4gdXNpbmcgaXQgZm9yIHJlc3RvcmluZyB0aGUgZ2xvYmFsIGZvcmNlX2RzY19lbl9v cmlnLiBCeSBkb2luZyB0aGF0IHlvdQo+IHdvbid0IG5lZWQgY29ubl9uYW1lIGluIHRoZSBleGl0 IGhhbmRsZXIsIHNlZSBiZWxvdy4KPiAKPiA+ID4gPiAgc3RhdGljIGlubGluZSB2b2lkIG1hbnVh bChjb25zdCBjaGFyICpleHBlY3RlZCkKPiA+ID4gPiAgewo+ID4gPiA+ICAJaWd0X2RlYnVnX21h bnVhbF9jaGVjaygiYWxsIiwgZXhwZWN0ZWQpOwo+ID4gPiA+ICB9Cj4gPiA+ID4gIAo+ID4gPiA+ IC1zdGF0aWMgYm9vbCBpc19kcF9kc2Nfc3VwcG9ydGVkKGRhdGFfdCAqZGF0YSkKPiA+ID4gPiAr c3RhdGljIGJvb2wgaXNfZHBfZHNjX3N1cHBvcnRlZCh2b2lkKQo+ID4gPiA+ICB7Cj4gPiA+ID4g IAljaGFyIGZpbGVfbmFtZVsxMjhdID0gezB9Owo+ID4gPiA+ICAJY2hhciBidWZbNTEyXTsKPiA+ ID4gPiAgCj4gPiA+ID4gLQlzdHJjcHkoZmlsZV9uYW1lLCBkYXRhLT5jb25uX25hbWUpOwo+ID4g PiA+ICsJc3RyY3B5KGZpbGVfbmFtZSwgZGF0YS5jb25uX25hbWUpOwo+ID4gPiA+ICAJc3RyY2F0 KGZpbGVfbmFtZSwgIi9pOTE1X2RzY19mZWNfc3VwcG9ydCIpOwo+ID4gPiA+IC0JaWd0X3JlcXVp cmUoaWd0X2RlYnVnZnNfc2ltcGxlX3JlYWQoZGF0YS0+ZGVidWdmc19mZCwgZmlsZV9uYW1lLCBi dWYsCj4gPiA+ID4gKwlpZ3RfcmVxdWlyZShpZ3RfZGVidWdmc19zaW1wbGVfcmVhZChkYXRhLmRl YnVnZnNfZmQsIGZpbGVfbmFtZSwgYnVmLAo+ID4gPiA+ICAJCQkJCSAgICBzaXplb2YoYnVmKSkg PiAwKTsKPiA+ID4gPiAtCWlndF9kZWJ1Z2ZzX3JlYWQoZGF0YS0+ZHJtX2ZkLCBmaWxlX25hbWUs IGJ1Zik7Cj4gPiA+ID4gKwlpZ3RfZGVidWdmc19yZWFkKGRhdGEuZHJtX2ZkLCBmaWxlX25hbWUs IGJ1Zik7Cj4gPiA+ID4gIAo+ID4gPiA+ICAJcmV0dXJuIHN0cnN0cihidWYsICJEU0NfU2lua19T dXBwb3J0OiB5ZXMiKTsKPiA+ID4gPiAgfQo+ID4gPiA+ICAKPiA+ID4gPiAtc3RhdGljIGJvb2wg aXNfZHBfZmVjX3N1cHBvcnRlZChkYXRhX3QgKmRhdGEpCj4gPiA+ID4gK3N0YXRpYyBib29sIGlz X2RwX2ZlY19zdXBwb3J0ZWQodm9pZCkKPiA+ID4gPiAgewo+ID4gPiA+ICAJY2hhciBmaWxlX25h bWVbMTI4XSA9IHswfTsKPiA+ID4gPiAgCWNoYXIgYnVmWzUxMl07Cj4gPiA+ID4gIAo+ID4gPiA+ IC0Jc3RyY3B5KGZpbGVfbmFtZSwgZGF0YS0+Y29ubl9uYW1lKTsKPiA+ID4gPiArCXN0cmNweShm aWxlX25hbWUsIGRhdGEuY29ubl9uYW1lKTsKPiA+ID4gPiAgCXN0cmNhdChmaWxlX25hbWUsICIv aTkxNV9kc2NfZmVjX3N1cHBvcnQiKTsKPiA+ID4gPiAtCWlndF9kZWJ1Z2ZzX3JlYWQoZGF0YS0+ ZHJtX2ZkLCBmaWxlX25hbWUsIGJ1Zik7Cj4gPiA+ID4gKwlpZ3RfZGVidWdmc19yZWFkKGRhdGEu ZHJtX2ZkLCBmaWxlX25hbWUsIGJ1Zik7Cj4gPiA+ID4gIAo+ID4gPiA+ICAJcmV0dXJuIHN0cnN0 cihidWYsICJGRUNfU2lua19TdXBwb3J0OiB5ZXMiKTsKPiA+ID4gPiAgfQo+ID4gPiA+ICAKPiA+ ID4gPiAtc3RhdGljIGJvb2wgaXNfZHBfZHNjX2VuYWJsZWQoZGF0YV90ICpkYXRhKQo+ID4gPiA+ ICtzdGF0aWMgYm9vbCBpc19kcF9kc2NfZW5hYmxlZCh2b2lkKQo+ID4gPiA+ICB7Cj4gPiA+ID4g IAljaGFyIGZpbGVfbmFtZVsxMjhdID0gezB9Owo+ID4gPiA+ICAJY2hhciBidWZbNTEyXTsKPiA+ ID4gPiAgCj4gPiA+ID4gLQlzdHJjcHkoZmlsZV9uYW1lLCBkYXRhLT5jb25uX25hbWUpOwo+ID4g PiA+ICsJc3RyY3B5KGZpbGVfbmFtZSwgZGF0YS5jb25uX25hbWUpOwo+ID4gPiA+ICAJc3RyY2F0 KGZpbGVfbmFtZSwgIi9pOTE1X2RzY19mZWNfc3VwcG9ydCIpOwo+ID4gPiA+IC0JaWd0X2RlYnVn ZnNfcmVhZChkYXRhLT5kcm1fZmQsIGZpbGVfbmFtZSwgYnVmKTsKPiA+ID4gPiArCWlndF9kZWJ1 Z2ZzX3JlYWQoZGF0YS5kcm1fZmQsIGZpbGVfbmFtZSwgYnVmKTsKPiA+ID4gPiAgCj4gPiA+ID4g IAlyZXR1cm4gc3Ryc3RyKGJ1ZiwgIkRTQ19FbmFibGVkOiB5ZXMiKTsKPiA+ID4gPiAgfQo+ID4g PiA+ICAKPiA+ID4gPiAtc3RhdGljIHZvaWQgZm9yY2VfZHBfZHNjX2VuYWJsZShkYXRhX3QgKmRh dGEpCj4gPiA+ID4gK3N0YXRpYyBib29sIGlzX2ZvcmNlX2RzY19lbmFibGVkKHZvaWQpCj4gPiA+ ID4gK3sKPiA+ID4gPiArCWNoYXIgZmlsZV9uYW1lWzEyOF0gPSB7MH07Cj4gPiA+ID4gKwljaGFy IGJ1Zls1MTJdOwo+ID4gPiA+ICsKPiA+ID4gPiArCXN0cmNweShmaWxlX25hbWUsIGRhdGEuY29u bl9uYW1lKTsKPiA+ID4gPiArCXN0cmNhdChmaWxlX25hbWUsICIvaTkxNV9kc2NfZmVjX3N1cHBv cnQiKTsKPiA+ID4gPiArCWlndF9kZWJ1Z2ZzX3JlYWQoZGF0YS5kcm1fZmQsIGZpbGVfbmFtZSwg YnVmKTsKPiA+ID4gPiArCj4gPiA+ID4gKwlyZXR1cm4gc3Ryc3RyKGJ1ZiwgIkZvcmNlX0RTQ19F bmFibGU6IHllcyIpOwo+ID4gPiA+ICt9Cj4gPiA+ID4gKwo+ID4gPiA+ICtzdGF0aWMgdm9pZCBm b3JjZV9kcF9kc2NfZW5hYmxlKHZvaWQpCj4gPiA+ID4gIHsKPiA+ID4gPiAgCWNoYXIgZmlsZV9u YW1lWzEyOF0gPSB7MH07Cj4gPiA+ID4gIAlpbnQgcmV0Owo+ID4gPiA+ICAKPiA+ID4gPiAtCXN0 cmNweShmaWxlX25hbWUsIGRhdGEtPmNvbm5fbmFtZSk7Cj4gPiA+ID4gKwlzdHJjcHkoZmlsZV9u YW1lLCBkYXRhLmNvbm5fbmFtZSk7Cj4gPiA+ID4gIAlzdHJjYXQoZmlsZV9uYW1lLCAiL2k5MTVf ZHNjX2ZlY19zdXBwb3J0Iik7Cj4gPiA+ID4gLQlpZ3RfZGVidWcgKCJGb3JjaW5nIERTQyBlbmFi bGUgb24gJXNcbiIsIGRhdGEtPmNvbm5fbmFtZSk7Cj4gPiA+ID4gLQlyZXQgPSBpZ3Rfc3lzZnNf d3JpdGUoZGF0YS0+ZGVidWdmc19mZCwgZmlsZV9uYW1lLCAiMSIsIDEpOwo+ID4gPiA+ICsJaWd0 X2RlYnVnICgiRm9yY2luZyBEU0MgZW5hYmxlIG9uICVzXG4iLCBkYXRhLmNvbm5fbmFtZSk7Cj4g PiA+ID4gKwlyZXQgPSBpZ3Rfc3lzZnNfd3JpdGUoZGF0YS5kZWJ1Z2ZzX2ZkLCBmaWxlX25hbWUs ICIxIiwgMSk7Cj4gPiA+ID4gIAlpZ3RfYXNzZXJ0X2YocmV0ID4gMCwgImRlYnVnZnNfd3JpdGUg ZmFpbGVkIik7Cj4gPiA+ID4gIH0KPiA+ID4gPiAgCj4gPiA+ID4gLXN0YXRpYyB2b2lkIGNsZWFy X2RwX2RzY19lbmFibGUoZGF0YV90ICpkYXRhKQo+ID4gPiA+ICtzdGF0aWMgdm9pZCByZXN0b3Jl X2RwX2RzY19lbmFibGUodm9pZCkKPiA+ID4gCj4gPiA+IEJldHRlciBuYW1lZCBhcyByZXN0b3Jl X2ZvcmNlX2RzY19lbigpPwo+ID4gCj4gPiBPawo+ID4gCj4gPiA+IAo+ID4gPiA+ICB7Cj4gPiA+ ID4gIAljaGFyIGZpbGVfbmFtZVsxMjhdID0gezB9Owo+ID4gPiA+ICAJaW50IHJldDsKPiA+ID4g PiAgCj4gPiA+IAo+ID4gPiBZb3UgbmVlZCB0byBjaGVjayBpZiB0aGUgc2lnIGhhbmRsZXIgd2Fz IGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBmb3Igc29tZQo+ID4gPiByZWFzb246Cj4gPiA+IAo+ID4g PiAJaWYgKGRlYnVnZnNfZmQgPCAwKQo+ID4gPiAJCXJldHVybjsKPiA+IAo+ID4gT2sgd2lsbCBh ZGQgdGhpcyBjaGVjayBoZXJlCj4gPgo+ID4gPiA+IC0Jc3RyY3B5KGZpbGVfbmFtZSwgZGF0YS0+ Y29ubl9uYW1lKTsKPiA+ID4gPiArCXN0cmNweShmaWxlX25hbWUsIGRhdGEuY29ubl9uYW1lKTsK PiA+ID4gPiAgCXN0cmNhdChmaWxlX25hbWUsICIvaTkxNV9kc2NfZmVjX3N1cHBvcnQiKTsKPiA+ ID4gPiAtCWlndF9kZWJ1ZyAoIkNsZWFyaW5nIERTQyBlbmFibGUgb24gJXNcbiIsIGRhdGEtPmNv bm5fbmFtZSk7Cj4gPiA+ID4gLQlyZXQgPSBpZ3Rfc3lzZnNfd3JpdGUoZGF0YS0+ZGVidWdmc19m ZCwgZmlsZV9uYW1lLCAiMCIsIDEpOwo+ID4gPiA+ICsJaWd0X2RlYnVnICgiUmVzdG9yaW5nIERT QyBlbmFibGUgb24gJXNcbiIsIGRhdGEuY29ubl9uYW1lKTsKPiA+ID4gPiArCXJldCA9IGlndF9z eXNmc193cml0ZShkYXRhLmRlYnVnZnNfZmQsIGZpbGVfbmFtZSwKPiA+ID4gPiArCQkJICAgICAg ZGF0YS5mb3JjZV9kc2NfZW4gPyAiMSIgOiAiMCIsIDEpOwo+IAo+IEluc3RlYWQgb2YgdGhlIGFi b3ZlOgo+IAo+IHN0YXRpYyB2b2lkIHJlc3RvcmVfZm9yY2VfZHNjX2VuKHZvaWQpCj4gewo+IAlp ZiAoZm9yY2VfZHNjX3Jlc3RvcmVfZmQgPCAwKQo+IAkJcmV0dXJuOwo+IAo+IAlpZ3RfZGVidWco IlJlc3RvcmluZyBEU0MgZW5hYmxlXG4iKTsKPiAJaWd0X2Fzc2VydCh3cml0ZShmb3JjZV9kc2Nf cmVzdG9yZV9mZCwgZm9yY2VfZHNjX2VuX29yaWcgPyAiMSIgOiAiMCIsIDEpID09IDEpOwo+IAo+ IAljbG9zZShmb3JjZV9kc2NfcmVzdG9yZV9mZCk7Cj4gCWZvcmNlX2RzY19yZXN0b3JlX2ZkID0g LTE7Cj4gfQo+IAo+ID4gQnV0IGlmIEkgY2xvc2UgaXQgaGVyZSwgSSBjYW50IGNhbGwgcmVzdG9y ZSBmdW5jdGlvbiBpbgo+ID4gdXBkYXRlX2Rpc3BsYXkoKSBhZnRlciB0aGUgdGVzdCBpcyBjb21w bGV0ZWQuICAKPiA+IFByb2JhYmx5IGkgZG9udCBuZWVkIGl0IHRoZXJlPwo+IAo+IFllcyBpdCdz IG5lZWRlZCwgd2Ugd2FudCB0byBkbyB0aGUgcmVzdG9yZSBmb3IgZWFjaCBjb25uZWN0b3IuCj4g Cj4gPgo+ID4gPiA+ICAJaWd0X2Fzc2VydF9mKHJldCA+IDAsICJkZWJ1Z2ZzX3dyaXRlIGZhaWxl ZCIpOwo+ID4gPiA+ICB9Cj4gPiA+ID4gIAo+ID4gPiA+IC1zdGF0aWMgdm9pZCB0ZXN0X2NsZWFu dXAoZGF0YV90ICpkYXRhKSB7Cj4gPiA+ID4gK3N0YXRpYyB2b2lkIHRlc3RfY2xlYW51cCh2b2lk KSB7Cj4gPiA+ID4gIAlpZ3RfcGxhbmVfdCAqcHJpbWFyeTsKPiA+ID4gPiAgCj4gPiA+ID4gLQlp ZiAoZGF0YS0+b3V0cHV0KSB7Cj4gPiA+ID4gLQkJcHJpbWFyeSA9IGlndF9vdXRwdXRfZ2V0X3Bs YW5lX3R5cGUoZGF0YS0+b3V0cHV0LAo+ID4gPiA+ICsJaWYgKGRhdGEub3V0cHV0KSB7Cj4gPiA+ ID4gKwkJcHJpbWFyeSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUoZGF0YS5vdXRwdXQsCj4g PiA+ID4gIAkJCQkJCSAgICBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsKPiA+ID4gPiAgCQlpZ3Rf cGxhbmVfc2V0X2ZiKHByaW1hcnksIE5VTEwpOwo+ID4gPiA+IC0JCWlndF9kaXNwbGF5X2NvbW1p dCgmZGF0YS0+ZGlzcGxheSk7Cj4gPiA+ID4gLQkJaWd0X3JlbW92ZV9mYihkYXRhLT5kcm1fZmQs ICZkYXRhLT5mYl90ZXN0X3BhdHRlcm4pOwo+ID4gPiA+ICsJCWlndF9kaXNwbGF5X2NvbW1pdCgm ZGF0YS5kaXNwbGF5KTsKPiA+ID4gPiArCQlpZ3RfcmVtb3ZlX2ZiKGRhdGEuZHJtX2ZkLCAmZGF0 YS5mYl90ZXN0X3BhdHRlcm4pOwo+ID4gPiA+ICAJfQo+ID4gPiA+ICB9Cj4gPiA+ID4gIAo+ID4g PiA+ICtzdGF0aWMgdm9pZCBrbXNfZHBfZHNjX2V4aXRfaGFuZGxlcihpbnQgc2lnKSB7Cj4gPiA+ ID4gKwo+ID4gPiA+ICsJcmVzdG9yZV9kcF9kc2NfZW5hYmxlKCk7Cj4gPiA+ID4gK30KPiA+ID4g PiArCj4gPiA+ID4gIAo+ID4gPiA+ICAvKgo+ID4gPiA+ICAgKiBSZS1wcm9iZSBjb25uZWN0b3Jz IGFuZCBkbyBhIG1vZGVzZXQgd2l0aCBEU0MKPiA+ID4gPiAgICoKPiA+ID4gPiAgICovCj4gPiA+ ID4gLXN0YXRpYyB2b2lkIHVwZGF0ZV9kaXNwbGF5KGRhdGFfdCAqZGF0YSwgZW51bSBkc2NfdGVz dF90eXBlIHRlc3RfdHlwZSkKPiA+ID4gPiArc3RhdGljIHZvaWQgdXBkYXRlX2Rpc3BsYXkoZW51 bSBkc2NfdGVzdF90eXBlIHRlc3RfdHlwZSkKPiA+ID4gPiAgewo+ID4gPiA+ICAJaWd0X3BsYW5l X3QgKnByaW1hcnk7Cj4gPiA+ID4gLQlkYXRhLT5tb2RlID0gaWd0X291dHB1dF9nZXRfbW9kZShk YXRhLT5vdXRwdXQpOwo+ID4gPiA+IC0JZGF0YS0+Y29ubmVjdG9yID0gZGF0YS0+b3V0cHV0LT5j b25maWcuY29ubmVjdG9yOwo+ID4gPiA+ICsJZGF0YS5tb2RlID0gaWd0X291dHB1dF9nZXRfbW9k ZShkYXRhLm91dHB1dCk7Cj4gPiA+ID4gKwlkYXRhLmNvbm5lY3RvciA9IGRhdGEub3V0cHV0LT5j b25maWcuY29ubmVjdG9yOwo+ID4gPiA+ICAKPiA+ID4gPiAtCWlmIChkYXRhLT5jb25uZWN0b3It PmNvbm5lY3Rvcl90eXBlID09IERSTV9NT0RFX0NPTk5FQ1RPUl9EaXNwbGF5UG9ydCAmJgo+ID4g PiA+IC0JICAgIGRhdGEtPnBpcGUgPT0gUElQRV9BKSB7Cj4gPiA+ID4gKwlpZiAoZGF0YS5jb25u ZWN0b3ItPmNvbm5lY3Rvcl90eXBlID09IERSTV9NT0RFX0NPTk5FQ1RPUl9EaXNwbGF5UG9ydCAm Jgo+ID4gPiA+ICsJICAgIGRhdGEucGlwZSA9PSBQSVBFX0EpIHsKPiA+ID4gPiAgCQlpZ3RfZGVi dWcoIkRTQyBub3Qgc3VwcG9ydGVkIG9uIFBpcGUgQSBvbiBleHRlcm5hbCBEUFxuIik7Cj4gPiA+ ID4gIAkJcmV0dXJuOwo+ID4gPiA+ICAJfQo+ID4gPiA+ICAKPiA+ID4gPiArCS8qIERpc2FibGUg dGhlIG91dHB1dCBmaXJzdCAqLwo+ID4gPiA+ICsJaWd0X291dHB1dF9zZXRfcGlwZShkYXRhLm91 dHB1dCwgUElQRV9OT05FKTsKPiA+ID4gPiArCWlndF9kaXNwbGF5X2NvbW1pdCgmZGF0YS5kaXNw bGF5KTsKPiA+ID4gPiArCj4gPiA+ID4gIAlpZiAodGVzdF90eXBlID09IHRlc3RfYmFzaWNfZHNj X2VuYWJsZSkgewo+ID4gPiA+ICAJCWJvb2wgZW5hYmxlZDsKPiA+ID4gPiAgCj4gPiA+ID4gLQkJ aWd0X2RlYnVnKCJEU0MgaXMgc3VwcG9ydGVkIG9uICVzXG4iLCBkYXRhLT5jb25uX25hbWUpOwo+ ID4gPiA+IC0JCWZvcmNlX2RwX2RzY19lbmFibGUoZGF0YSk7Cj4gPiA+ID4gKwkJaWd0X2RlYnVn KCJEU0MgaXMgc3VwcG9ydGVkIG9uICVzXG4iLCBkYXRhLmNvbm5fbmFtZSk7Cj4gCj4gSGVyZSBj YWxsIGEgbmV3IHNhdmVfZm9yY2VfZHNjX2VuKCkgZnVuY3Rpb24gY29udGFpbmluZzoKPiAKPiAJ CWZvcmNlX2RzY19lbl9vcmlnID0gaXNfZm9yY2VfZHNjX2VuYWJsZWQoZGF0YSk7Cj4gCQlzdHJj cHkoZmlsZV9uYW1lLCBkYXRhLT5jb25uX25hbWUpOwo+IAkJc3RyY2F0KGZpbGVfbmFtZSwgIi9p OTE1X2RzY19mZWNfc3VwcG9ydCIpOwo+IAkJZm9yY2VfZHNjX3Jlc3RvcmVfZmQgPSBvcGVuYXQo aWd0X2RlYnVnZnNfZGlyKGRhdGEtPmRybV9mZCksCj4gCQkJCQkgICAgICBmaWxlX25hbWUsIE9f V1JPTkxZKTsKPiAJCWlndF9hc3NlcnQoZm9yY2VfZHNjX3Jlc3RvcmVfZmQgPj0gMCk7Cj4gCj4g Cj4gPiA+ID4gKwkJZm9yY2VfZHBfZHNjX2VuYWJsZSgpOwo+ID4gPiA+ICAKPiA+ID4gPiAtCQlp Z3RfY3JlYXRlX3BhdHRlcm5fZmIoZGF0YS0+ZHJtX2ZkLCBkYXRhLT5tb2RlLT5oZGlzcGxheSwK PiA+ID4gPiAtCQkJCSAgICAgIGRhdGEtPm1vZGUtPnZkaXNwbGF5LAo+ID4gPiA+ICsJCWlndF9v dXRwdXRfc2V0X3BpcGUoZGF0YS5vdXRwdXQsIGRhdGEucGlwZSk7Cj4gPiA+ID4gKwkJaWd0X2Ny ZWF0ZV9wYXR0ZXJuX2ZiKGRhdGEuZHJtX2ZkLCBkYXRhLm1vZGUtPmhkaXNwbGF5LAo+ID4gPiA+ ICsJCQkJICAgICAgZGF0YS5tb2RlLT52ZGlzcGxheSwKPiA+ID4gPiAgCQkJCSAgICAgIERSTV9G T1JNQVRfWFJHQjg4ODgsCj4gPiA+ID4gIAkJCQkgICAgICBMT0NBTF9EUk1fRk9STUFUX01PRF9O T05FLAo+ID4gPiA+IC0JCQkJICAgICAgJmRhdGEtPmZiX3Rlc3RfcGF0dGVybik7Cj4gPiA+ID4g LQkJcHJpbWFyeSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUoZGF0YS0+b3V0cHV0LAo+ID4g PiA+ICsJCQkJICAgICAgJmRhdGEuZmJfdGVzdF9wYXR0ZXJuKTsKPiA+ID4gPiArCQlwcmltYXJ5 ID0gaWd0X291dHB1dF9nZXRfcGxhbmVfdHlwZShkYXRhLm91dHB1dCwKPiA+ID4gPiAgCQkJCQkJ ICAgIERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOwo+ID4gPiA+IC0JCWlndF9wbGFuZV9zZXRfZmIo cHJpbWFyeSwgJmRhdGEtPmZiX3Rlc3RfcGF0dGVybik7Cj4gPiA+ID4gLQkJaWd0X2Rpc3BsYXlf Y29tbWl0KCZkYXRhLT5kaXNwbGF5KTsKPiA+ID4gPiArCj4gPiA+ID4gKwkJLyogTm93IHNldCB0 aGUgb3V0cHV0IHRvIHRoZSBkZXNpcmVkIG1vZGUgKi8KPiA+ID4gPiArCQlpZ3RfcGxhbmVfc2V0 X2ZiKHByaW1hcnksICZkYXRhLmZiX3Rlc3RfcGF0dGVybik7Cj4gPiA+ID4gKwkJaWd0X2Rpc3Bs YXlfY29tbWl0KCZkYXRhLmRpc3BsYXkpOwo+ID4gPiA+ICAKPiA+ID4gPiAgCQkvKgo+ID4gPiA+ ICAJCSAqIFVudGlsIHdlIGhhdmUgQ1JDIGNoZWNrIHN1cHBvcnQsIG1hbnVhbGx5IGNoZWNrIGlm IFJHQiB0ZXN0Cj4gPiA+ID4gQEAgLTE4MywzOCArMjExLDM3IEBAIHN0YXRpYyB2b2lkIHVwZGF0 ZV9kaXNwbGF5KGRhdGFfdCAqZGF0YSwgZW51bSBkc2NfdGVzdF90eXBlIHRlc3RfdHlwZSkKPiA+ ID4gPiAgCQkgKi8KPiA+ID4gPiAgCQltYW51YWwoIlJHQiB0ZXN0IHBhdHRlcm4gd2l0aG91dCBj b3JydXB0aW9uIik7Cj4gPiA+ID4gIAo+ID4gPiA+IC0JCWVuYWJsZWQgPSBpc19kcF9kc2NfZW5h YmxlZChkYXRhKTsKPiA+ID4gPiAtCQljbGVhcl9kcF9kc2NfZW5hYmxlKGRhdGEpOwo+ID4gPiA+ ICsJCWVuYWJsZWQgPSBpc19kcF9kc2NfZW5hYmxlZCgpOwo+ID4gPiA+ICsJCXJlc3RvcmVfZHBf ZHNjX2VuYWJsZSgpOwo+ID4gPiA+ICAKPiA+ID4gPiAgCQlpZ3RfYXNzZXJ0X2YoZW5hYmxlZCwK PiA+ID4gPiAtCQkJICAgICAiRGVmYXVsdCBEU0MgZW5hYmxlIGZhaWxlZCBvbiBDb25uZWN0b3I6 ICVzIFBpcGU6ICVzIiwKPiA+ID4gPiAtCQkJICAgICBkYXRhLT5jb25uX25hbWUsCj4gPiA+ID4g LQkJCSAgICAga21zdGVzdF9waXBlX25hbWUoZGF0YS0+cGlwZSkpOwo+ID4gPiA+ICsJCQkgICAg ICJEZWZhdWx0IERTQyBlbmFibGUgZmFpbGVkIG9uIENvbm5lY3RvcjogJXMgUGlwZTogJXNcbiIs Cj4gPiA+ID4gKwkJCSAgICAgZGF0YS5jb25uX25hbWUsCj4gPiA+ID4gKwkJCSAgICAga21zdGVz dF9waXBlX25hbWUoZGF0YS5waXBlKSk7Cj4gPiA+ID4gIAl9IGVsc2Ugewo+ID4gPiA+ICAJCWln dF9hc3NlcnQoISJVbmtub3duIHRlc3QgdHlwZVxuIik7Cj4gPiA+ID4gIAl9Cj4gPiA+ID4gIH0K PiA+ID4gPiAgCj4gPiA+ID4gLXN0YXRpYyB2b2lkIHJ1bl90ZXN0KGRhdGFfdCAqZGF0YSwgaWd0 X291dHB1dF90ICpvdXRwdXQsCj4gPiA+ID4gK3N0YXRpYyB2b2lkIHJ1bl90ZXN0KGlndF9vdXRw dXRfdCAqb3V0cHV0LAo+ID4gPiA+ICAJCSAgICAgZW51bSBkc2NfdGVzdF90eXBlIHRlc3RfdHlw ZSkKPiA+ID4gPiAgewo+ID4gPiA+ICAJZW51bSBwaXBlIHBpcGU7Cj4gPiA+ID4gIAo+ID4gPiA+ IC0JZm9yX2VhY2hfcGlwZSgmZGF0YS0+ZGlzcGxheSwgcGlwZSkgewo+ID4gPiA+ICsJZm9yX2Vh Y2hfcGlwZSgmZGF0YS5kaXNwbGF5LCBwaXBlKSB7Cj4gPiA+ID4gIAo+ID4gPiA+ICAJCWlmIChp Z3RfcGlwZV9jb25uZWN0b3JfdmFsaWQocGlwZSwgb3V0cHV0KSkgewo+ID4gPiA+IC0JCQlpZ3Rf b3V0cHV0X3NldF9waXBlKG91dHB1dCwgcGlwZSk7Cj4gPiA+ID4gLQkJCWRhdGEtPnBpcGUgPSBw aXBlOwo+ID4gPiA+IC0JCQlkYXRhLT5vdXRwdXQgPSBvdXRwdXQ7Cj4gPiA+ID4gLQkJCXVwZGF0 ZV9kaXNwbGF5KGRhdGEsIHRlc3RfdHlwZSk7Cj4gPiA+ID4gLQkJCXRlc3RfY2xlYW51cChkYXRh KTsKPiA+ID4gPiArCQkJZGF0YS5waXBlID0gcGlwZTsKPiA+ID4gPiArCQkJZGF0YS5vdXRwdXQg PSBvdXRwdXQ7Cj4gPiA+ID4gKwkJCXVwZGF0ZV9kaXNwbGF5KHRlc3RfdHlwZSk7Cj4gPiA+ID4g KwkJCXRlc3RfY2xlYW51cCgpOwo+ID4gPiA+ICAJCX0KPiA+ID4gPiAgCX0KPiA+ID4gPiAgfQo+ ID4gPiA+ICAKPiA+ID4gPiAgaWd0X21haW4KPiA+ID4gPiAgewo+ID4gPiA+IC0JZGF0YV90IGRh dGEgPSB7fTsKPiA+ID4gPiArCS8vZGF0YV90IGRhdGEgPSB7fTsKPiA+ID4gCj4gPiA+IExlZnRv dmVyIGxpbmUuCj4gPiAKPiA+IFllcywgc29ycnkgYWJvdXQgdGhhdCwgd2lsbCBjbGVhbiBpdCB1 cAo+ID4gCj4gPiA+IAo+ID4gPiA+ICAJaWd0X291dHB1dF90ICpvdXRwdXQ7Cj4gPiA+ID4gIAlk cm1Nb2RlUmVzICpyZXM7Cj4gPiA+ID4gIAlkcm1Nb2RlQ29ubmVjdG9yICpjb25uZWN0b3I7Cj4g PiA+ID4gQEAgLTIyNSw2ICsyNTIsNyBAQCBpZ3RfbWFpbgo+ID4gPiA+ICAJCWRhdGEuZHJtX2Zk ID0gZHJtX29wZW5fZHJpdmVyX21hc3RlcihEUklWRVJfQU5ZKTsKPiA+ID4gPiAgCQlkYXRhLmRl YnVnZnNfZmQgPSBpZ3RfZGVidWdmc19kaXIoZGF0YS5kcm1fZmQpOwo+ID4gPiA+ICAJCWttc3Rl c3Rfc2V0X3Z0X2dyYXBoaWNzX21vZGUoKTsKPiA+ID4gPiArCQlpZ3RfaW5zdGFsbF9leGl0X2hh bmRsZXIoa21zX2RwX2RzY19leGl0X2hhbmRsZXIpOwo+ID4gPiAKPiA+ID4gQmVmb3JlIHRoaXMg eW91IG5lZWQgdG8gYWN0dWFsbHkgc2F2ZSB0aGUgb3JpZ2luYWwgdmFsdWUsIG90aGVyd2lzZSB0 aGUKPiA+ID4gZXhpdCBoYW5kbGVyIG1heSByZXN0b3JlIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUg aW4gY2FzZSBpdCdzIGNhbGxlZAo+ID4gPiBiZWZvcmUgeW91IHNhdmUgaXQuCj4gPiAKPiA+IFNp bmNlIHRoZSB2YWx1ZSBpcyBwZXIgY29ubmVjdG9yLCBJIGNhbnQgc2F2ZSBpdCB1bnRpbCBJIGhh dmUgZ29uZQo+ID4gdGhyb3VnaCB0aGUgd2hvbGUgY29ubmVjdG9yIHR5cGUgY2hlY2tzLiAgSSB3 aWxsIG1vdmUgdGhlCj4gPiBpZ3RfaW5zdGFsbF9leGl0X2hhbmRsZXIoa21zX2RwX2RzY19leGl0 X2hhbmRsZXIpOyB0byBiZWZvcmUgcnVuX3Rlc3QKPiA+IGNhbGwgdGhlbj8KPiAKPiBJdCBjYW4g c3RheSBoZXJlIGJhc2VkIG9uIHRoZSBhYm92ZSBjb21tZW50cy4KPiAKPiA+ID4gCj4gPiA+ID4g IAkJaWd0X2Rpc3BsYXlfcmVxdWlyZSgmZGF0YS5kaXNwbGF5LCBkYXRhLmRybV9mZCk7Cj4gPiA+ ID4gIAkJaWd0X3JlcXVpcmUocmVzID0gZHJtTW9kZUdldFJlc291cmNlcyhkYXRhLmRybV9mZCkp Owo+ID4gPiA+ICAJfQo+ID4gPiA+IEBAIC0yNDUsMTkgKzI3MywyMCBAQCBpZ3RfbWFpbgo+ID4g PiA+ICAJCQkJc3ByaW50ZihkYXRhLmNvbm5fbmFtZSwgIiVzLSVkIiwKPiA+ID4gPiAgCQkJCQlr bXN0ZXN0X2Nvbm5lY3Rvcl90eXBlX3N0cihjb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlKSwKPiA+ ID4gPiAgCQkJCQljb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlX2lkKTsKPiA+ID4gPiAtCQkJCWlm KCFpc19kcF9kc2Nfc3VwcG9ydGVkKCZkYXRhKSkgewo+ID4gPiA+ICsJCQkJaWYoIWlzX2RwX2Rz Y19zdXBwb3J0ZWQoKSkgewo+ID4gPiA+ICAJCQkJCWlndF9kZWJ1ZygiRFNDIG5vdCBzdXBwb3J0 ZWQgb24gY29ubmVjdG9yICVzIFxuIiwKPiA+ID4gPiAgCQkJCQkJICBkYXRhLmNvbm5fbmFtZSk7 Cj4gPiA+ID4gIAkJCQkJY29udGludWU7Cj4gPiA+ID4gIAkJCQl9Cj4gPiA+ID4gIAkJCQlpZiAo Y29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1JfRGlzcGxheVBv cnQgJiYKPiA+ID4gPiAtCQkJCSAgICAhaXNfZHBfZmVjX3N1cHBvcnRlZCgmZGF0YSkpIHsKPiA+ ID4gPiArCQkJCSAgICAhaXNfZHBfZmVjX3N1cHBvcnRlZCgpKSB7Cj4gPiA+ID4gIAkJCQkJaWd0 X2RlYnVnKCJEU0MgY2Fubm90IGJlIGVuYWJsZWQgd2l0aG91dCBGRUMgb24gJXNcbiIsCj4gPiA+ ID4gIAkJCQkJCSAgZGF0YS5jb25uX25hbWUpOwo+ID4gPiA+ICAJCQkJCWNvbnRpbnVlOwo+ID4g PiA+ICAJCQkJfQo+ID4gPiA+ICAJCQkJdGVzdF9jb25uX2NudCsrOwo+ID4gPiA+IC0JCQkJcnVu X3Rlc3QoJmRhdGEsIG91dHB1dCwgdGVzdF9iYXNpY19kc2NfZW5hYmxlKTsKPiA+ID4gPiArCQkJ CWRhdGEuZm9yY2VfZHNjX2VuID0gaXNfZm9yY2VfZHNjX2VuYWJsZWQoKTsKPiA+ID4gPiArCQkJ CXJ1bl90ZXN0KG91dHB1dCwgdGVzdF9iYXNpY19kc2NfZW5hYmxlKTsKPiA+ID4gPiAgCQkJfQo+ ID4gPiA+ICAJCQlpZ3Rfc2tpcF9vbih0ZXN0X2Nvbm5fY250ID09IDApOwo+ID4gPiA+ICAJCX0K PiA+ID4gCj4gPiA+IFVuZGVyIGlndF9maXh0dXJlIHlvdSBjbG9zZSBkZWJ1Z2ZzX2ZkLCBidXQg dGhhdCdzIG5vdCBnb29kLCBzaW5jZSB0aGUKPiA+ID4gZXhpdCBoYW5kbGVyIHdpbGwgYmUgY2Fs bGVkIGV2ZW4gZHVyaW5nIG5vcm1hbCBwcm9jZXNzIGV4aXQsIGFuZCBzbyB0aGUKPiA+ID4gZXhp dCBoYW5kbGVyIHdpbGwgZmluZCB1bmV4cGVjdGVkbHkgdGhhdCB0aGUgZmQgaXQgbmVlZHMgaXMg Y2xvc2VkLgo+ID4gPiAKPiA+ID4gSnVzdCBsZWF2ZSB0aGUgY2xvc2luZyB1cCB0byB0aGUgZXhp dCBoYW5kbGVyIGFzIEkgY29tbWVudGVkIGFib3ZlLAo+ID4gPiBsZWF2aW5nIGEgY29tbWVudCBh Ym91dCB0aGlzIGZhY3QgdW5kZXIgaWd0X2ZpeHR1cmUuCj4gPiAKPiA+IE9rIHdpbGwgcmVtb3Zl IHRoZSBkZWJ1Z2ZzIGZkIGZyb20gdGhlIGlndF9maXh0dXJlKCkKPiAKPiBCYXNlZCBvbiB0aGUg YWJvdmUgeW91J2xsIHN0aWxsIG5lZWQgdG8gY2xvc2UgaGVyZSBkZWJ1Z2ZzX2ZkLCBhcyB3ZSds bAo+IG5vdyB1c2UgYSBzZXBhcmF0ZSBmZCBmb3IgcmVzdG9yaW5nLgo+IAo+ID4gCj4gPiBNYW5h c2kKPiA+ID4gCj4gPiA+IC0tSW1yZQo+ID4gPiAKPiA+ID4gPiAtLSAKPiA+ID4gPiAyLjE5LjEK PiA+ID4gPiAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K aWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2