From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id A914C6E0D5 for ; Thu, 6 Dec 2018 15:41:23 +0000 (UTC) Date: Thu, 6 Dec 2018 07:43:44 -0800 From: Manasi Navare Message-ID: <20181206154344.GA11811@intel.com> References: <20181205201523.4904-1-manasi.d.navare@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20181205201523.4904-1-manasi.d.navare@intel.com> Subject: Re: [igt-dev] [PATCH i-g-t v5] test/kms_dp_dsc: Basic KMS test to validate VESA DSC on DP/eDP 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 Cc: Dhinakaran Pandiyan , Anusha Srivatsa , Petri Latvala List-ID: SGkgUGV0cmksCgpUaGlzIHZlcnNpb24gb2YgdGhlIHBhdGNoIGhhZCBjbGVhbiBDSSByZXN1bHRz LgpJcyB0aGlzIGdvb2QgdG8gZ2V0IG1lcmdlZD8KVGhhbmtzIGZvciBhbGwgdGhlIHJldmlldyBm ZWVkYmFjay4KClJlZ2FyZHMKTWFuYXNpCgpPbiBXZWQsIERlYyAwNSwgMjAxOCBhdCAxMjoxNToy M1BNIC0wODAwLCBNYW5hc2kgTmF2YXJlIHdyb3RlOgo+IFRoaXMgcGF0Y2ggYWRkcyBhIGJhc2lj IGttcyB0ZXN0IHRvIHZhbGlkYXRlIHRoZSBkaXNwbGF5IHN0cmVhbQo+IGNvbXByZXNzaW9uIGZ1 bmN0aW9uYWxpdHkgaWYgc3VwcG9ydGVkIG9uIERQL2VEUCBjb25uZWN0b3IuCj4gQ3VycmVudGx5 IHRoaXMgaGFzIG9ubHkgdHdvIHN1YnRlc3RzIHRvIGZvcmNlIHRoZSBEU0Mgb24gYWxsCj4gdGhl IGVEUCBhbmQgRFAgY29ubmVjdG9ycyB0aGF0IHN1cHBvcnQgaXQgd2l0aCBkZWZhdWx0IHBhcmFt ZXRlcnMuCj4gVGhpcyB3aWxsIGJlIGV4cGFuZGVkIHRvIGFkZCBtb3JlIHN1YnRlc3RzIHRvIHR3 ZWFrIERTQyBwYXJhbWV0ZXJzLgo+IAo+IHY1Ogo+ICogRml4IHRlc3QgY2xlYW51cCB0byBhdm9p ZCBjcmFzaCAoUGV0cmkpCj4gdjQ6Cj4gKiBGdXR1cmUgcHJvb2YgZm9yIG1vcmUgdGVzdCB0eXBl cyAoUGV0cmkpCj4gKiBGaXggYWxwaGFiZXRpY2FsIG9yZGVyIChQZXRyaSkKPiAqIHMvaWd0X2Rp c3BsYXlfaW5pdC9pZ3RfZGlzcGxheV9yZXF1aXJlIChQZXRyaSkKPiAqIFJlbW92ZSBibGFuayBs aW5lcyBhZnRlciByZXR1cm4gKFBldHJpKQo+IHYzOgo+ICogVXNlIGFycmF5IG9mIGNvbm5lY3Rv cnMgYW5kIGxvb3AgdGhyb3VnaCAoUGV0cmkpCj4gKiBBbHNvIGNoZWNrIGZvciBGRUMgb24gRFAg Y29ubmVjdG9ycyAoTWFuYXNpKQo+ICogQWRkIGEgUGlwZV9BIHJlc3RyaWN0aW9uIG9uIERQIChW aWxsZSkKPiB2MjoKPiAqIFVzZSBJR1Qgd3JhcHBlcnMgZm9yIGFsbCAoREssIEFudG9uaW8pCj4g KiBTcGxpdCBpbnRvIHR3byBzdWJ0ZXN0cyBmb3IgZURQIGFuZCBEUCB0eXBlcyAoUGV0cmkpCj4g Cj4gQ2M6IFBldHJpIExhdHZhbGEgPHBldHJpLmxhdHZhbGFAaW50ZWwuY29tPgo+IENjOiBBbnRv bmlvIEFyZ2Vuemlhbm8gPGFudG9uaW8uYXJnZW56aWFub0BpbnRlbC5jb20+Cj4gQ2M6IERoaW5h a2FyYW4gUGFuZGl5YW4gPGRoaW5ha2FyYW4ucGFuZGl5YW5AaW50ZWwuY29tPgo+IENjOiBWaWxs ZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IENjOiBBbnVzaGEg U3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogTWFu YXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPiAtLS0KPiAgdGVzdHMvTWFr ZWZpbGUuc291cmNlcyB8ICAgMSArCj4gIHRlc3RzL2ttc19kcF9kc2MuYyAgICAgfCAyNTggKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgdGVzdHMvbWVzb24uYnVp bGQgICAgICB8ICAgMSArCj4gIDMgZmlsZXMgY2hhbmdlZCwgMjYwIGluc2VydGlvbnMoKykKPiAg Y3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2ttc19kcF9kc2MuYwo+IAo+IGRpZmYgLS1naXQgYS90 ZXN0cy9NYWtlZmlsZS5zb3VyY2VzIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwo+IGluZGV4IGVl ZGRlMWU4Li5hM2MyNGM5OSAxMDA2NDQKPiAtLS0gYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCj4g KysrIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwo+IEBAIC01NCw2ICs1NCw3IEBAIFRFU1RTX3By b2dzID0gXAo+ICAJa21zX2NydGNfYmFja2dyb3VuZF9jb2xvciBcCj4gIAlrbXNfY3Vyc29yX2Ny YyBcCj4gIAlrbXNfY3Vyc29yX2xlZ2FjeSBcCj4gKwlrbXNfZHBfZHNjIFwKPiAgCWttc19kcmF3 X2NyYyBcCj4gIAlrbXNfZmJjb25fZmJ0IFwKPiAgCWttc19mZW5jZV9waW5fbGVhayBcCj4gZGlm ZiAtLWdpdCBhL3Rlc3RzL2ttc19kcF9kc2MuYyBiL3Rlc3RzL2ttc19kcF9kc2MuYwo+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAuLmUwZmFlYzFmCj4gLS0tIC9kZXYvbnVs bAo+ICsrKyBiL3Rlc3RzL2ttc19kcF9kc2MuYwo+IEBAIC0wLDAgKzEsMjU4IEBACj4gKy8qCj4g KyAqIENvcHlyaWdodCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uCj4gKyAqCj4gKyAqIFBlcm1p c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9i dGFpbmluZyBhCj4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1 bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCj4gKyAqIHRvIGRlYWwgaW4gdGhlIFNv ZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24K PiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRp c3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCj4gKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29m dHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQo+ICsgKiBTb2Z0d2FyZSBp cyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25z Ogo+ICsgKgo+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNz aW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Cj4gKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUg aW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKPiAr ICogU29mdHdhcmUuCj4gKyAqCj4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMi LCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCj4gKyAqIElNUExJRUQs IElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB QklMSVRZLAo+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5G UklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKPiArICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJ R0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKPiAr ICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBP VEhFUldJU0UsIEFSSVNJTkcKPiArICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lU SCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUwo+ICsgKiBJTiBUSEUg U09GVFdBUkUuCj4gKyAqCj4gKyAqIERpc3BsYXlwb3J0IERpc3BsYXkgU3RyZWFtIENvbXByZXNz aW9uIHRlc3QKPiArICogVW50aWwgdGhlIENSQyBzdXBwb3J0IGlzIGFkZGVkIHRoaXMgbmVlZHMg dG8gYmUgaW52b2tlZCB3aXRoIC0taW50ZXJhY3RpdmUKPiArICogdG8gbWFudWFsbHkgdmVyaWZ5 IGlmIHRoZSB0ZXN0IHBhdHRlcm4gaXMgc2VlbiB3aXRob3V0IGNvcnJ1cHRpb24gZm9yIGVhY2gK PiArICogc3VidGVzdC4KPiArICoKPiArICogQXV0aG9yczoKPiArICogTWFuYXNpIE5hdmFyZSA8 bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPiArICoKPiArICovCj4gKyNpbmNsdWRlICJpZ3Qu aCIKPiArI2luY2x1ZGUgImlndF9zeXNmcy5oIgo+ICsjaW5jbHVkZSA8ZXJybm8uaD4KPiArI2lu Y2x1ZGUgPGdldG9wdC5oPgo+ICsjaW5jbHVkZSA8bWF0aC5oPgo+ICsjaW5jbHVkZSA8c3RkaW50 Lmg+Cj4gKyNpbmNsdWRlIDxzdGRib29sLmg+Cj4gKyNpbmNsdWRlIDxzdHJpbmdzLmg+Cj4gKyNp bmNsdWRlIDx1bmlzdGQuaD4KPiArI2luY2x1ZGUgPHN0ZGxpYi5oPgo+ICsjaW5jbHVkZSA8c2ln bmFsLmg+Cj4gKyNpbmNsdWRlIDx0aW1lLmg+Cj4gKyNpbmNsdWRlIDxmY250bC5oPgo+ICsjaW5j bHVkZSA8dGVybWlvcy5oPgo+ICsKPiArZW51bSBkc2NfdGVzdF90eXBlCj4gK3sKPiArCXRlc3Rf YmFzaWNfZHNjX2VuYWJsZQo+ICt9Owo+ICsKPiArdHlwZWRlZiBzdHJ1Y3Qgewo+ICsJaW50IGRy bV9mZDsKPiArCWludCBkZWJ1Z2ZzX2ZkOwo+ICsJdWludDMyX3QgaWQ7Cj4gKwlpZ3RfZGlzcGxh eV90IGRpc3BsYXk7Cj4gKwlzdHJ1Y3QgaWd0X2ZiIGZiX3Rlc3RfcGF0dGVybjsKPiArCWlndF9v dXRwdXRfdCAqb3V0cHV0Owo+ICsJaW50IG1vZGVfdmFsaWQ7Cj4gKwlkcm1Nb2RlTW9kZUluZm8g Km1vZGU7Cj4gKwlkcm1Nb2RlQ29ubmVjdG9yICpjb25uZWN0b3I7Cj4gKwlkcm1Nb2RlRW5jb2Rl ciAqZW5jb2RlcjsKPiArCWludCBjcnRjOwo+ICsJZW51bSBwaXBlIHBpcGU7Cj4gKwljaGFyIGNv bm5fbmFtZVsxMjhdOwo+ICt9IGRhdGFfdDsKPiArCj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBtYW51 YWwoY29uc3QgY2hhciAqZXhwZWN0ZWQpCj4gK3sKPiArCWlndF9kZWJ1Z19tYW51YWxfY2hlY2so ImFsbCIsIGV4cGVjdGVkKTsKPiArfQo+ICsKPiArc3RhdGljIGJvb2wgaXNfZHBfZHNjX3N1cHBv cnRlZChkYXRhX3QgKmRhdGEpCj4gK3sKPiArCWNoYXIgZmlsZV9uYW1lWzEyOF0gPSB7MH07Cj4g KwljaGFyIGJ1Zls1MTJdOwo+ICsKPiArCXN0cmNweShmaWxlX25hbWUsIGRhdGEtPmNvbm5fbmFt ZSk7Cj4gKwlzdHJjYXQoZmlsZV9uYW1lLCAiL2k5MTVfZHNjX2ZlY19zdXBwb3J0Iik7Cj4gKwlp Z3RfcmVxdWlyZShpZ3RfZGVidWdmc19zaW1wbGVfcmVhZChkYXRhLT5kZWJ1Z2ZzX2ZkLCBmaWxl X25hbWUsIGJ1ZiwKPiArCQkJCQkgICAgc2l6ZW9mKGJ1ZikpID4gMCk7Cj4gKwlpZ3RfZGVidWdm c19yZWFkKGRhdGEtPmRybV9mZCwgZmlsZV9uYW1lLCBidWYpOwo+ICsKPiArCXJldHVybiBzdHJz dHIoYnVmLCAiRFNDX1NpbmtfU3VwcG9ydDogeWVzIik7Cj4gK30KPiArCj4gK3N0YXRpYyBib29s IGlzX2RwX2ZlY19zdXBwb3J0ZWQoZGF0YV90ICpkYXRhKQo+ICt7Cj4gKwljaGFyIGZpbGVfbmFt ZVsxMjhdID0gezB9Owo+ICsJY2hhciBidWZbNTEyXTsKPiArCj4gKwlzdHJjcHkoZmlsZV9uYW1l LCBkYXRhLT5jb25uX25hbWUpOwo+ICsJc3RyY2F0KGZpbGVfbmFtZSwgIi9pOTE1X2RzY19mZWNf c3VwcG9ydCIpOwo+ICsJaWd0X2RlYnVnZnNfcmVhZChkYXRhLT5kcm1fZmQsIGZpbGVfbmFtZSwg YnVmKTsKPiArCj4gKwlyZXR1cm4gc3Ryc3RyKGJ1ZiwgIkZFQ19TaW5rX1N1cHBvcnQ6IHllcyIp Owo+ICt9Cj4gKwo+ICtzdGF0aWMgYm9vbCBpc19kcF9kc2NfZW5hYmxlZChkYXRhX3QgKmRhdGEp Cj4gK3sKPiArCWNoYXIgZmlsZV9uYW1lWzEyOF0gPSB7MH07Cj4gKwljaGFyIGJ1Zls1MTJdOwo+ ICsKPiArCXN0cmNweShmaWxlX25hbWUsIGRhdGEtPmNvbm5fbmFtZSk7Cj4gKwlzdHJjYXQoZmls ZV9uYW1lLCAiL2k5MTVfZHNjX2ZlY19zdXBwb3J0Iik7Cj4gKwlpZ3RfZGVidWdmc19yZWFkKGRh dGEtPmRybV9mZCwgZmlsZV9uYW1lLCBidWYpOwo+ICsKPiArCXJldHVybiBzdHJzdHIoYnVmLCAi RFNDX0VuYWJsZWQ6IHllcyIpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBmb3JjZV9kcF9kc2Nf ZW5hYmxlKGRhdGFfdCAqZGF0YSkKPiArewo+ICsJY2hhciBmaWxlX25hbWVbMTI4XSA9IHswfTsK PiArCWludCByZXQ7Cj4gKwo+ICsJc3RyY3B5KGZpbGVfbmFtZSwgZGF0YS0+Y29ubl9uYW1lKTsK PiArCXN0cmNhdChmaWxlX25hbWUsICIvaTkxNV9kc2NfZmVjX3N1cHBvcnQiKTsKPiArCWlndF9k ZWJ1ZyAoIkZvcmNpbmcgRFNDIGVuYWJsZSBvbiAlc1xuIiwgZGF0YS0+Y29ubl9uYW1lKTsKPiAr CXJldCA9IGlndF9zeXNmc193cml0ZShkYXRhLT5kZWJ1Z2ZzX2ZkLCBmaWxlX25hbWUsICIxIiwg MSk7Cj4gKwlpZ3RfYXNzZXJ0X2YocmV0ID4gMCwgImRlYnVnZnNfd3JpdGUgZmFpbGVkIik7Cj4g K30KPiArCj4gK3N0YXRpYyB2b2lkIGNsZWFyX2RwX2RzY19lbmFibGUoZGF0YV90ICpkYXRhKQo+ ICt7Cj4gKwljaGFyIGZpbGVfbmFtZVsxMjhdID0gezB9Owo+ICsJaW50IHJldDsKPiArCj4gKwlz dHJjcHkoZmlsZV9uYW1lLCBkYXRhLT5jb25uX25hbWUpOwo+ICsJc3RyY2F0KGZpbGVfbmFtZSwg Ii9pOTE1X2RzY19mZWNfc3VwcG9ydCIpOwo+ICsJaWd0X2RlYnVnICgiQ2xlYXJpbmcgRFNDIGVu YWJsZSBvbiAlc1xuIiwgZGF0YS0+Y29ubl9uYW1lKTsKPiArCXJldCA9IGlndF9zeXNmc193cml0 ZShkYXRhLT5kZWJ1Z2ZzX2ZkLCBmaWxlX25hbWUsICIwIiwgMSk7Cj4gKwlpZ3RfYXNzZXJ0X2Yo cmV0ID4gMCwgImRlYnVnZnNfd3JpdGUgZmFpbGVkIik7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lk IHRlc3RfY2xlYW51cChkYXRhX3QgKmRhdGEpIHsKPiArCWlndF9wbGFuZV90ICpwcmltYXJ5Owo+ ICsKPiArCXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKGRhdGEtPm91dHB1dCwK PiArCQkJCQkgICAgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7Cj4gKwlpZ3RfcGxhbmVfc2V0X2Zi KHByaW1hcnksIE5VTEwpOwo+ICsJaWd0X2Rpc3BsYXlfY29tbWl0KCZkYXRhLT5kaXNwbGF5KTsK PiArCj4gKwlpZ3RfcmVtb3ZlX2ZiKGRhdGEtPmRybV9mZCwgJmRhdGEtPmZiX3Rlc3RfcGF0dGVy bik7Cj4gK30KPiArCj4gKwo+ICsvKgo+ICsgKiBSZS1wcm9iZSBjb25uZWN0b3JzIGFuZCBkbyBh IG1vZGVzZXQgd2l0aCBEU0MKPiArICoKPiArICovCj4gK3N0YXRpYyB2b2lkIHVwZGF0ZV9kaXNw bGF5KGRhdGFfdCAqZGF0YSwgZW51bSBkc2NfdGVzdF90eXBlIHRlc3RfdHlwZSkKPiArewo+ICsJ aWd0X3BsYW5lX3QgKnByaW1hcnk7Cj4gKwlkYXRhLT5tb2RlID0gaWd0X291dHB1dF9nZXRfbW9k ZShkYXRhLT5vdXRwdXQpOwo+ICsJZGF0YS0+Y29ubmVjdG9yID0gZGF0YS0+b3V0cHV0LT5jb25m aWcuY29ubmVjdG9yOwo+ICsKPiArCWlmIChkYXRhLT5jb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBl ID09IERSTV9NT0RFX0NPTk5FQ1RPUl9EaXNwbGF5UG9ydCAmJgo+ICsJICAgIGRhdGEtPnBpcGUg PT0gUElQRV9BKSB7Cj4gKwkJaWd0X2RlYnVnICgiRFNDIG5vdCBzdXBwb3J0ZWQgb24gUGlwZSBB IG9uIGV4dGVybmFsIERQXG4iKTsKPiArCQlyZXR1cm47Cj4gKwl9Cj4gKwo+ICsJaWYgKHRlc3Rf dHlwZSA9PSB0ZXN0X2Jhc2ljX2RzY19lbmFibGUpIHsKPiArCQlpZ3RfZGVidWcgKCJEU0MgaXMg c3VwcG9ydGVkIG9uICVzXG4iLAo+ICsJCQkgICBkYXRhLT5jb25uX25hbWUpOwo+ICsJCWZvcmNl X2RwX2RzY19lbmFibGUoZGF0YSk7Cj4gKwkJaWd0X2NyZWF0ZV9wYXR0ZXJuX2ZiKGRhdGEtPmRy bV9mZCwgZGF0YS0+bW9kZS0+aGRpc3BsYXksCj4gKwkJCQkgICAgICBkYXRhLT5tb2RlLT52ZGlz cGxheSwKPiArCQkJCSAgICAgIERSTV9GT1JNQVRfWFJHQjg4ODgsCj4gKwkJCQkgICAgICBMT0NB TF9EUk1fRk9STUFUX01PRF9OT05FLAo+ICsJCQkJICAgICAgJmRhdGEtPmZiX3Rlc3RfcGF0dGVy bik7Cj4gKwkJcHJpbWFyeSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUoZGF0YS0+b3V0cHV0 LAo+ICsJCQkJCQkgICAgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7Cj4gKwkJaWd0X3BsYW5lX3Nl dF9mYihwcmltYXJ5LCAmZGF0YS0+ZmJfdGVzdF9wYXR0ZXJuKTsKPiArCQlpZ3RfZGlzcGxheV9j b21taXQoJmRhdGEtPmRpc3BsYXkpOwo+ICsJCS8qIFVudGlsIHdlIGhhdmUgQ1JDIGNoZWNrIHN1 cHBvcnQsIG1hbnVhbGx5IGNoZWNrIGlmIFJHQiB0ZXN0IHBhdHRlcm4gaGFzIG5vIGNvcnJ1cHRp b24gKi8KPiArCQltYW51YWwgKCJSR0IgdGVzdCBwYXR0ZXJuIHdpdGhvdXQgY29ycnVwdGlvbiIp Owo+ICsJCWlndF9hc3NlcnRfZihpc19kcF9kc2NfZW5hYmxlZChkYXRhKSwKPiArCQkJICAgICAi RGVmYXVsdCBEU0MgZW5hYmxlIGZhaWxlZCBvbiBDb25uZWN0b3I6ICVzIFBpcGU6ICVzIiwKPiAr CQkJICAgICBkYXRhLT5jb25uX25hbWUsCj4gKwkJCSAgICAga21zdGVzdF9waXBlX25hbWUoZGF0 YS0+cGlwZSkpOwo+ICsJCWNsZWFyX2RwX2RzY19lbmFibGUoZGF0YSk7Cj4gKwl9IGVsc2Ugewo+ ICsJCWlndF9hc3NlcnQoISJVbmtub3duIHRlc3QgdHlwZVxuIik7Cj4gKwl9Cj4gK30KPiArCj4g K3N0YXRpYyB2b2lkIHJ1bl90ZXN0KGRhdGFfdCAqZGF0YSwgaWd0X291dHB1dF90ICpvdXRwdXQs Cj4gKwkJICAgICBlbnVtIGRzY190ZXN0X3R5cGUgdGVzdF90eXBlKQo+ICt7Cj4gKwllbnVtIHBp cGUgcGlwZTsKPiArCj4gKwlmb3JfZWFjaF9waXBlX3dpdGhfdmFsaWRfb3V0cHV0KCZkYXRhLT5k aXNwbGF5LCBwaXBlLCBvdXRwdXQpIHsKPiArCQlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwg cGlwZSk7Cj4gKwkJZGF0YS0+cGlwZSA9IHBpcGU7Cj4gKwkJZGF0YS0+b3V0cHV0ID0gb3V0cHV0 Owo+ICsJCXVwZGF0ZV9kaXNwbGF5KGRhdGEsIHRlc3RfdHlwZSk7Cj4gKwl9Cj4gK30KPiArCj4g K2lndF9tYWluCj4gK3sKPiArCWRhdGFfdCBkYXRhID0ge307Cj4gKwlpZ3Rfb3V0cHV0X3QgKm91 dHB1dDsKPiArCWRybU1vZGVSZXMgKnJlczsKPiArCWRybU1vZGVDb25uZWN0b3IgKmNvbm5lY3Rv cjsKPiArCWludCBpLCB0ZXN0X2Nvbm5fY250LCB0ZXN0X2NudDsKPiArCWludCB0ZXN0c1tdID0g e0RSTV9NT0RFX0NPTk5FQ1RPUl9lRFAsIERSTV9NT0RFX0NPTk5FQ1RPUl9EaXNwbGF5UG9ydH07 Cj4gKwo+ICsJaWd0X2ZpeHR1cmUgewo+ICsJCWRhdGEuZHJtX2ZkID0gZHJtX29wZW5fZHJpdmVy X21hc3RlcihEUklWRVJfQU5ZKTsKPiArCQlkYXRhLmRlYnVnZnNfZmQgPSBpZ3RfZGVidWdmc19k aXIoZGF0YS5kcm1fZmQpOwo+ICsJCWttc3Rlc3Rfc2V0X3Z0X2dyYXBoaWNzX21vZGUoKTsKPiAr CQlpZ3RfZGlzcGxheV9yZXF1aXJlKCZkYXRhLmRpc3BsYXksIGRhdGEuZHJtX2ZkKTsKPiArCQlp Z3RfcmVxdWlyZShyZXMgPSBkcm1Nb2RlR2V0UmVzb3VyY2VzKGRhdGEuZHJtX2ZkKSk7Cj4gKwl9 Cj4gKwo+ICsJZm9yICh0ZXN0X2NudCA9IDA7IHRlc3RfY250IDwgQVJSQVlfU0laRSh0ZXN0cyk7 IHRlc3RfY250KyspIHsKPiArCj4gKwkJaWd0X3N1YnRlc3RfZigiYmFzaWMtZHNjLWVuYWJsZS0l cyIsCj4gKwkJCSAgICAgIGttc3Rlc3RfY29ubmVjdG9yX3R5cGVfc3RyKHRlc3RzW3Rlc3RfY250 XSkpIHsKPiArCQkJdGVzdF9jb25uX2NudCA9IDA7Cj4gKwkJCWZvciAoaSA9IDA7IGkgPCByZXMt PmNvdW50X2Nvbm5lY3RvcnM7IGkrKykgewo+ICsJCQkJY29ubmVjdG9yID0gZHJtTW9kZUdldENv bm5lY3RvckN1cnJlbnQoZGF0YS5kcm1fZmQsCj4gKwkJCQkJCQkJICAgICAgIHJlcy0+Y29ubmVj dG9yc1tpXSk7Cj4gKwkJCQlpZiAoY29ubmVjdG9yLT5jb25uZWN0aW9uICE9IERSTV9NT0RFX0NP Tk5FQ1RFRCB8fAo+ICsJCQkJICAgIGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUgIT0KPiArCQkJ CSAgICB0ZXN0c1t0ZXN0X2NudF0pCj4gKwkJCQkJY29udGludWU7Cj4gKwkJCQl0ZXN0X2Nvbm5f Y250Kys7Cj4gKwkJCQlvdXRwdXQgPSBpZ3Rfb3V0cHV0X2Zyb21fY29ubmVjdG9yKCZkYXRhLmRp c3BsYXksIGNvbm5lY3Rvcik7Cj4gKwkJCQlzcHJpbnRmKGRhdGEuY29ubl9uYW1lLCAiJXMtJWQi LAo+ICsJCQkJCWttc3Rlc3RfY29ubmVjdG9yX3R5cGVfc3RyKGNvbm5lY3Rvci0+Y29ubmVjdG9y X3R5cGUpLAo+ICsJCQkJCXRlc3RfY29ubl9jbnQpOwo+ICsJCQkJaWd0X3JlcXVpcmVfZihpc19k cF9kc2Nfc3VwcG9ydGVkKCZkYXRhKSwKPiArCQkJCQkgICAgICAiRFNDIG5vdCBzdXBwb3J0ZWQg b24gY29ubmVjdG9yICVzIFxuIiwKPiArCQkJCQkgICAgICBkYXRhLmNvbm5fbmFtZSk7Cj4gKwkJ CQlpZiAoY29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1JfRGlz cGxheVBvcnQpCj4gKwkJCQkJaWd0X3JlcXVpcmVfZihpc19kcF9mZWNfc3VwcG9ydGVkKCZkYXRh KSwKPiArCQkJCQkJICAgICAgIkRTQyBjYW5ub3QgYmUgZW5hYmxlZCB3aXRob3V0IEZFQyBvbiAl c1xuIiwKPiArCQkJCQkJICAgICAgZGF0YS5jb25uX25hbWUpOwo+ICsJCQkJcnVuX3Rlc3QoJmRh dGEsIG91dHB1dCwgdGVzdF9iYXNpY19kc2NfZW5hYmxlKTsKPiArCQkJfQo+ICsJCQlpZiAoZGF0 YS5vdXRwdXQpCj4gKwkJCQl0ZXN0X2NsZWFudXAoJmRhdGEpOwo+ICsJCQlpZ3Rfc2tpcF9vbih0 ZXN0X2Nvbm5fY250ID09IDApOwo+ICsJCX0KPiArCX0KPiArCj4gKwlpZ3RfZml4dHVyZSB7Cj4g KwkJZHJtTW9kZUZyZWVDb25uZWN0b3IoY29ubmVjdG9yKTsKPiArCQlkcm1Nb2RlRnJlZVJlc291 cmNlcyhyZXMpOwo+ICsJCWNsb3NlKGRhdGEuZGVidWdmc19mZCk7Cj4gKwkJY2xvc2UoZGF0YS5k cm1fZmQpOwo+ICsJCWlndF9kaXNwbGF5X2ZpbmkoJmRhdGEuZGlzcGxheSk7Cj4gKwl9Cj4gKwlp Z3RfZXhpdCgpOwo+ICt9Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL21lc29uLmJ1aWxkIGIvdGVzdHMv bWVzb24uYnVpbGQKPiBpbmRleCBiOGE2ZTYxYi4uZTE0YWIyYjQgMTAwNjQ0Cj4gLS0tIGEvdGVz dHMvbWVzb24uYnVpbGQKPiArKysgYi90ZXN0cy9tZXNvbi5idWlsZAo+IEBAIC0yNSw2ICsyNSw3 IEBAIHRlc3RfcHJvZ3MgPSBbCj4gIAkna21zX2NydGNfYmFja2dyb3VuZF9jb2xvcicsCj4gIAkn a21zX2N1cnNvcl9jcmMnLAo+ICAJJ2ttc19jdXJzb3JfbGVnYWN5JywKPiArCSdrbXNfZHBfZHNj JywKPiAgCSdrbXNfZHJhd19jcmMnLAo+ICAJJ2ttc19mYmNvbl9mYnQnLAo+ICAJJ2ttc19mZW5j ZV9waW5fbGVhaycsCj4gLS0gCj4gMi4xOS4xCj4gCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaWd0LWRldgo=