From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id B4A146E44E for ; Wed, 5 Dec 2018 20:13:06 +0000 (UTC) From: Manasi Navare Date: Wed, 5 Dec 2018 12:15:23 -0800 Message-Id: <20181205201523.4904-1-manasi.d.navare@intel.com> MIME-Version: 1.0 Subject: [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: Anusha Srivatsa , Petri Latvala , Manasi Navare , Dhinakaran Pandiyan List-ID: VGhpcyBwYXRjaCBhZGRzIGEgYmFzaWMga21zIHRlc3QgdG8gdmFsaWRhdGUgdGhlIGRpc3BsYXkg c3RyZWFtCmNvbXByZXNzaW9uIGZ1bmN0aW9uYWxpdHkgaWYgc3VwcG9ydGVkIG9uIERQL2VEUCBj b25uZWN0b3IuCkN1cnJlbnRseSB0aGlzIGhhcyBvbmx5IHR3byBzdWJ0ZXN0cyB0byBmb3JjZSB0 aGUgRFNDIG9uIGFsbAp0aGUgZURQIGFuZCBEUCBjb25uZWN0b3JzIHRoYXQgc3VwcG9ydCBpdCB3 aXRoIGRlZmF1bHQgcGFyYW1ldGVycy4KVGhpcyB3aWxsIGJlIGV4cGFuZGVkIHRvIGFkZCBtb3Jl IHN1YnRlc3RzIHRvIHR3ZWFrIERTQyBwYXJhbWV0ZXJzLgoKdjU6CiogRml4IHRlc3QgY2xlYW51 cCB0byBhdm9pZCBjcmFzaCAoUGV0cmkpCnY0OgoqIEZ1dHVyZSBwcm9vZiBmb3IgbW9yZSB0ZXN0 IHR5cGVzIChQZXRyaSkKKiBGaXggYWxwaGFiZXRpY2FsIG9yZGVyIChQZXRyaSkKKiBzL2lndF9k aXNwbGF5X2luaXQvaWd0X2Rpc3BsYXlfcmVxdWlyZSAoUGV0cmkpCiogUmVtb3ZlIGJsYW5rIGxp bmVzIGFmdGVyIHJldHVybiAoUGV0cmkpCnYzOgoqIFVzZSBhcnJheSBvZiBjb25uZWN0b3JzIGFu ZCBsb29wIHRocm91Z2ggKFBldHJpKQoqIEFsc28gY2hlY2sgZm9yIEZFQyBvbiBEUCBjb25uZWN0 b3JzIChNYW5hc2kpCiogQWRkIGEgUGlwZV9BIHJlc3RyaWN0aW9uIG9uIERQIChWaWxsZSkKdjI6 CiogVXNlIElHVCB3cmFwcGVycyBmb3IgYWxsIChESywgQW50b25pbykKKiBTcGxpdCBpbnRvIHR3 byBzdWJ0ZXN0cyBmb3IgZURQIGFuZCBEUCB0eXBlcyAoUGV0cmkpCgpDYzogUGV0cmkgTGF0dmFs YSA8cGV0cmkubGF0dmFsYUBpbnRlbC5jb20+CkNjOiBBbnRvbmlvIEFyZ2Vuemlhbm8gPGFudG9u aW8uYXJnZW56aWFub0BpbnRlbC5jb20+CkNjOiBEaGluYWthcmFuIFBhbmRpeWFuIDxkaGluYWth cmFuLnBhbmRpeWFuQGludGVsLmNvbT4KQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFs YUBsaW51eC5pbnRlbC5jb20+CkNjOiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBp bnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBp bnRlbC5jb20+Ci0tLQogdGVzdHMvTWFrZWZpbGUuc291cmNlcyB8ICAgMSArCiB0ZXN0cy9rbXNf ZHBfZHNjLmMgICAgIHwgMjU4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCiB0ZXN0cy9tZXNvbi5idWlsZCAgICAgIHwgICAxICsKIDMgZmlsZXMgY2hhbmdlZCwgMjYw IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9rbXNfZHBfZHNjLmMKCmRp ZmYgLS1naXQgYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzIGIvdGVzdHMvTWFrZWZpbGUuc291cmNl cwppbmRleCBlZWRkZTFlOC4uYTNjMjRjOTkgMTAwNjQ0Ci0tLSBhL3Rlc3RzL01ha2VmaWxlLnNv dXJjZXMKKysrIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwpAQCAtNTQsNiArNTQsNyBAQCBURVNU U19wcm9ncyA9IFwKIAlrbXNfY3J0Y19iYWNrZ3JvdW5kX2NvbG9yIFwKIAlrbXNfY3Vyc29yX2Ny YyBcCiAJa21zX2N1cnNvcl9sZWdhY3kgXAorCWttc19kcF9kc2MgXAogCWttc19kcmF3X2NyYyBc CiAJa21zX2ZiY29uX2ZidCBcCiAJa21zX2ZlbmNlX3Bpbl9sZWFrIFwKZGlmZiAtLWdpdCBhL3Rl c3RzL2ttc19kcF9kc2MuYyBiL3Rlc3RzL2ttc19kcF9kc2MuYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMC4uZTBmYWVjMWYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9rbXNf ZHBfZHNjLmMKQEAgLTAsMCArMSwyNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOCBJbnRl bCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUg b2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29m dHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIp LAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVk aW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlm eSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2Vs bCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0 aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9s bG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k IHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBo KSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25z IG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJB UyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJ RUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hB TlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklO RlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklH SFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICog TElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhF UldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhF IFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKKyAqIElOIFRIRSBTT0ZUV0FS RS4KKyAqCisgKiBEaXNwbGF5cG9ydCBEaXNwbGF5IFN0cmVhbSBDb21wcmVzc2lvbiB0ZXN0Cisg KiBVbnRpbCB0aGUgQ1JDIHN1cHBvcnQgaXMgYWRkZWQgdGhpcyBuZWVkcyB0byBiZSBpbnZva2Vk IHdpdGggLS1pbnRlcmFjdGl2ZQorICogdG8gbWFudWFsbHkgdmVyaWZ5IGlmIHRoZSB0ZXN0IHBh dHRlcm4gaXMgc2VlbiB3aXRob3V0IGNvcnJ1cHRpb24gZm9yIGVhY2gKKyAqIHN1YnRlc3QuCisg KgorICogQXV0aG9yczoKKyAqIE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5j b20+CisgKgorICovCisjaW5jbHVkZSAiaWd0LmgiCisjaW5jbHVkZSAiaWd0X3N5c2ZzLmgiCisj aW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxnZXRvcHQuaD4KKyNpbmNsdWRlIDxtYXRoLmg+ CisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8c3RkYm9vbC5oPgorI2luY2x1ZGUgPHN0 cmluZ3MuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNs dWRlIDxzaWduYWwuaD4KKyNpbmNsdWRlIDx0aW1lLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNp bmNsdWRlIDx0ZXJtaW9zLmg+CisKK2VudW0gZHNjX3Rlc3RfdHlwZQoreworCXRlc3RfYmFzaWNf ZHNjX2VuYWJsZQorfTsKKwordHlwZWRlZiBzdHJ1Y3QgeworCWludCBkcm1fZmQ7CisJaW50IGRl YnVnZnNfZmQ7CisJdWludDMyX3QgaWQ7CisJaWd0X2Rpc3BsYXlfdCBkaXNwbGF5OworCXN0cnVj dCBpZ3RfZmIgZmJfdGVzdF9wYXR0ZXJuOworCWlndF9vdXRwdXRfdCAqb3V0cHV0OworCWludCBt b2RlX3ZhbGlkOworCWRybU1vZGVNb2RlSW5mbyAqbW9kZTsKKwlkcm1Nb2RlQ29ubmVjdG9yICpj b25uZWN0b3I7CisJZHJtTW9kZUVuY29kZXIgKmVuY29kZXI7CisJaW50IGNydGM7CisJZW51bSBw aXBlIHBpcGU7CisJY2hhciBjb25uX25hbWVbMTI4XTsKK30gZGF0YV90OworCitzdGF0aWMgaW5s aW5lIHZvaWQgbWFudWFsKGNvbnN0IGNoYXIgKmV4cGVjdGVkKQoreworCWlndF9kZWJ1Z19tYW51 YWxfY2hlY2soImFsbCIsIGV4cGVjdGVkKTsKK30KKworc3RhdGljIGJvb2wgaXNfZHBfZHNjX3N1 cHBvcnRlZChkYXRhX3QgKmRhdGEpCit7CisJY2hhciBmaWxlX25hbWVbMTI4XSA9IHswfTsKKwlj aGFyIGJ1Zls1MTJdOworCisJc3RyY3B5KGZpbGVfbmFtZSwgZGF0YS0+Y29ubl9uYW1lKTsKKwlz dHJjYXQoZmlsZV9uYW1lLCAiL2k5MTVfZHNjX2ZlY19zdXBwb3J0Iik7CisJaWd0X3JlcXVpcmUo aWd0X2RlYnVnZnNfc2ltcGxlX3JlYWQoZGF0YS0+ZGVidWdmc19mZCwgZmlsZV9uYW1lLCBidWYs CisJCQkJCSAgICBzaXplb2YoYnVmKSkgPiAwKTsKKwlpZ3RfZGVidWdmc19yZWFkKGRhdGEtPmRy bV9mZCwgZmlsZV9uYW1lLCBidWYpOworCisJcmV0dXJuIHN0cnN0cihidWYsICJEU0NfU2lua19T dXBwb3J0OiB5ZXMiKTsKK30KKworc3RhdGljIGJvb2wgaXNfZHBfZmVjX3N1cHBvcnRlZChkYXRh X3QgKmRhdGEpCit7CisJY2hhciBmaWxlX25hbWVbMTI4XSA9IHswfTsKKwljaGFyIGJ1Zls1MTJd OworCisJc3RyY3B5KGZpbGVfbmFtZSwgZGF0YS0+Y29ubl9uYW1lKTsKKwlzdHJjYXQoZmlsZV9u YW1lLCAiL2k5MTVfZHNjX2ZlY19zdXBwb3J0Iik7CisJaWd0X2RlYnVnZnNfcmVhZChkYXRhLT5k cm1fZmQsIGZpbGVfbmFtZSwgYnVmKTsKKworCXJldHVybiBzdHJzdHIoYnVmLCAiRkVDX1Npbmtf U3VwcG9ydDogeWVzIik7Cit9CisKK3N0YXRpYyBib29sIGlzX2RwX2RzY19lbmFibGVkKGRhdGFf dCAqZGF0YSkKK3sKKwljaGFyIGZpbGVfbmFtZVsxMjhdID0gezB9OworCWNoYXIgYnVmWzUxMl07 CisKKwlzdHJjcHkoZmlsZV9uYW1lLCBkYXRhLT5jb25uX25hbWUpOworCXN0cmNhdChmaWxlX25h bWUsICIvaTkxNV9kc2NfZmVjX3N1cHBvcnQiKTsKKwlpZ3RfZGVidWdmc19yZWFkKGRhdGEtPmRy bV9mZCwgZmlsZV9uYW1lLCBidWYpOworCisJcmV0dXJuIHN0cnN0cihidWYsICJEU0NfRW5hYmxl ZDogeWVzIik7Cit9CisKK3N0YXRpYyB2b2lkIGZvcmNlX2RwX2RzY19lbmFibGUoZGF0YV90ICpk YXRhKQoreworCWNoYXIgZmlsZV9uYW1lWzEyOF0gPSB7MH07CisJaW50IHJldDsKKworCXN0cmNw eShmaWxlX25hbWUsIGRhdGEtPmNvbm5fbmFtZSk7CisJc3RyY2F0KGZpbGVfbmFtZSwgIi9pOTE1 X2RzY19mZWNfc3VwcG9ydCIpOworCWlndF9kZWJ1ZyAoIkZvcmNpbmcgRFNDIGVuYWJsZSBvbiAl c1xuIiwgZGF0YS0+Y29ubl9uYW1lKTsKKwlyZXQgPSBpZ3Rfc3lzZnNfd3JpdGUoZGF0YS0+ZGVi dWdmc19mZCwgZmlsZV9uYW1lLCAiMSIsIDEpOworCWlndF9hc3NlcnRfZihyZXQgPiAwLCAiZGVi dWdmc193cml0ZSBmYWlsZWQiKTsKK30KKworc3RhdGljIHZvaWQgY2xlYXJfZHBfZHNjX2VuYWJs ZShkYXRhX3QgKmRhdGEpCit7CisJY2hhciBmaWxlX25hbWVbMTI4XSA9IHswfTsKKwlpbnQgcmV0 OworCisJc3RyY3B5KGZpbGVfbmFtZSwgZGF0YS0+Y29ubl9uYW1lKTsKKwlzdHJjYXQoZmlsZV9u YW1lLCAiL2k5MTVfZHNjX2ZlY19zdXBwb3J0Iik7CisJaWd0X2RlYnVnICgiQ2xlYXJpbmcgRFND IGVuYWJsZSBvbiAlc1xuIiwgZGF0YS0+Y29ubl9uYW1lKTsKKwlyZXQgPSBpZ3Rfc3lzZnNfd3Jp dGUoZGF0YS0+ZGVidWdmc19mZCwgZmlsZV9uYW1lLCAiMCIsIDEpOworCWlndF9hc3NlcnRfZihy ZXQgPiAwLCAiZGVidWdmc193cml0ZSBmYWlsZWQiKTsKK30KKworc3RhdGljIHZvaWQgdGVzdF9j bGVhbnVwKGRhdGFfdCAqZGF0YSkgeworCWlndF9wbGFuZV90ICpwcmltYXJ5OworCisJcHJpbWFy eSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUoZGF0YS0+b3V0cHV0LAorCQkJCQkgICAgRFJN X1BMQU5FX1RZUEVfUFJJTUFSWSk7CisJaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCBOVUxMKTsK KwlpZ3RfZGlzcGxheV9jb21taXQoJmRhdGEtPmRpc3BsYXkpOworCisJaWd0X3JlbW92ZV9mYihk YXRhLT5kcm1fZmQsICZkYXRhLT5mYl90ZXN0X3BhdHRlcm4pOworfQorCisKKy8qCisgKiBSZS1w cm9iZSBjb25uZWN0b3JzIGFuZCBkbyBhIG1vZGVzZXQgd2l0aCBEU0MKKyAqCisgKi8KK3N0YXRp YyB2b2lkIHVwZGF0ZV9kaXNwbGF5KGRhdGFfdCAqZGF0YSwgZW51bSBkc2NfdGVzdF90eXBlIHRl c3RfdHlwZSkKK3sKKwlpZ3RfcGxhbmVfdCAqcHJpbWFyeTsKKwlkYXRhLT5tb2RlID0gaWd0X291 dHB1dF9nZXRfbW9kZShkYXRhLT5vdXRwdXQpOworCWRhdGEtPmNvbm5lY3RvciA9IGRhdGEtPm91 dHB1dC0+Y29uZmlnLmNvbm5lY3RvcjsKKworCWlmIChkYXRhLT5jb25uZWN0b3ItPmNvbm5lY3Rv cl90eXBlID09IERSTV9NT0RFX0NPTk5FQ1RPUl9EaXNwbGF5UG9ydCAmJgorCSAgICBkYXRhLT5w aXBlID09IFBJUEVfQSkgeworCQlpZ3RfZGVidWcgKCJEU0Mgbm90IHN1cHBvcnRlZCBvbiBQaXBl IEEgb24gZXh0ZXJuYWwgRFBcbiIpOworCQlyZXR1cm47CisJfQorCisJaWYgKHRlc3RfdHlwZSA9 PSB0ZXN0X2Jhc2ljX2RzY19lbmFibGUpIHsKKwkJaWd0X2RlYnVnICgiRFNDIGlzIHN1cHBvcnRl ZCBvbiAlc1xuIiwKKwkJCSAgIGRhdGEtPmNvbm5fbmFtZSk7CisJCWZvcmNlX2RwX2RzY19lbmFi bGUoZGF0YSk7CisJCWlndF9jcmVhdGVfcGF0dGVybl9mYihkYXRhLT5kcm1fZmQsIGRhdGEtPm1v ZGUtPmhkaXNwbGF5LAorCQkJCSAgICAgIGRhdGEtPm1vZGUtPnZkaXNwbGF5LAorCQkJCSAgICAg IERSTV9GT1JNQVRfWFJHQjg4ODgsCisJCQkJICAgICAgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9O RSwKKwkJCQkgICAgICAmZGF0YS0+ZmJfdGVzdF9wYXR0ZXJuKTsKKwkJcHJpbWFyeSA9IGlndF9v dXRwdXRfZ2V0X3BsYW5lX3R5cGUoZGF0YS0+b3V0cHV0LAorCQkJCQkJICAgIERSTV9QTEFORV9U WVBFX1BSSU1BUlkpOworCQlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksICZkYXRhLT5mYl90ZXN0 X3BhdHRlcm4pOworCQlpZ3RfZGlzcGxheV9jb21taXQoJmRhdGEtPmRpc3BsYXkpOworCQkvKiBV bnRpbCB3ZSBoYXZlIENSQyBjaGVjayBzdXBwb3J0LCBtYW51YWxseSBjaGVjayBpZiBSR0IgdGVz dCBwYXR0ZXJuIGhhcyBubyBjb3JydXB0aW9uICovCisJCW1hbnVhbCAoIlJHQiB0ZXN0IHBhdHRl cm4gd2l0aG91dCBjb3JydXB0aW9uIik7CisJCWlndF9hc3NlcnRfZihpc19kcF9kc2NfZW5hYmxl ZChkYXRhKSwKKwkJCSAgICAgIkRlZmF1bHQgRFNDIGVuYWJsZSBmYWlsZWQgb24gQ29ubmVjdG9y OiAlcyBQaXBlOiAlcyIsCisJCQkgICAgIGRhdGEtPmNvbm5fbmFtZSwKKwkJCSAgICAga21zdGVz dF9waXBlX25hbWUoZGF0YS0+cGlwZSkpOworCQljbGVhcl9kcF9kc2NfZW5hYmxlKGRhdGEpOwor CX0gZWxzZSB7CisJCWlndF9hc3NlcnQoISJVbmtub3duIHRlc3QgdHlwZVxuIik7CisJfQorfQor CitzdGF0aWMgdm9pZCBydW5fdGVzdChkYXRhX3QgKmRhdGEsIGlndF9vdXRwdXRfdCAqb3V0cHV0 LAorCQkgICAgIGVudW0gZHNjX3Rlc3RfdHlwZSB0ZXN0X3R5cGUpCit7CisJZW51bSBwaXBlIHBp cGU7CisKKwlmb3JfZWFjaF9waXBlX3dpdGhfdmFsaWRfb3V0cHV0KCZkYXRhLT5kaXNwbGF5LCBw aXBlLCBvdXRwdXQpIHsKKwkJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIHBpcGUpOworCQlk YXRhLT5waXBlID0gcGlwZTsKKwkJZGF0YS0+b3V0cHV0ID0gb3V0cHV0OworCQl1cGRhdGVfZGlz cGxheShkYXRhLCB0ZXN0X3R5cGUpOworCX0KK30KKworaWd0X21haW4KK3sKKwlkYXRhX3QgZGF0 YSA9IHt9OworCWlndF9vdXRwdXRfdCAqb3V0cHV0OworCWRybU1vZGVSZXMgKnJlczsKKwlkcm1N b2RlQ29ubmVjdG9yICpjb25uZWN0b3I7CisJaW50IGksIHRlc3RfY29ubl9jbnQsIHRlc3RfY250 OworCWludCB0ZXN0c1tdID0ge0RSTV9NT0RFX0NPTk5FQ1RPUl9lRFAsIERSTV9NT0RFX0NPTk5F Q1RPUl9EaXNwbGF5UG9ydH07CisKKwlpZ3RfZml4dHVyZSB7CisJCWRhdGEuZHJtX2ZkID0gZHJt X29wZW5fZHJpdmVyX21hc3RlcihEUklWRVJfQU5ZKTsKKwkJZGF0YS5kZWJ1Z2ZzX2ZkID0gaWd0 X2RlYnVnZnNfZGlyKGRhdGEuZHJtX2ZkKTsKKwkJa21zdGVzdF9zZXRfdnRfZ3JhcGhpY3NfbW9k ZSgpOworCQlpZ3RfZGlzcGxheV9yZXF1aXJlKCZkYXRhLmRpc3BsYXksIGRhdGEuZHJtX2ZkKTsK KwkJaWd0X3JlcXVpcmUocmVzID0gZHJtTW9kZUdldFJlc291cmNlcyhkYXRhLmRybV9mZCkpOwor CX0KKworCWZvciAodGVzdF9jbnQgPSAwOyB0ZXN0X2NudCA8IEFSUkFZX1NJWkUodGVzdHMpOyB0 ZXN0X2NudCsrKSB7CisKKwkJaWd0X3N1YnRlc3RfZigiYmFzaWMtZHNjLWVuYWJsZS0lcyIsCisJ CQkgICAgICBrbXN0ZXN0X2Nvbm5lY3Rvcl90eXBlX3N0cih0ZXN0c1t0ZXN0X2NudF0pKSB7CisJ CQl0ZXN0X2Nvbm5fY250ID0gMDsKKwkJCWZvciAoaSA9IDA7IGkgPCByZXMtPmNvdW50X2Nvbm5l Y3RvcnM7IGkrKykgeworCQkJCWNvbm5lY3RvciA9IGRybU1vZGVHZXRDb25uZWN0b3JDdXJyZW50 KGRhdGEuZHJtX2ZkLAorCQkJCQkJCQkgICAgICAgcmVzLT5jb25uZWN0b3JzW2ldKTsKKwkJCQlp ZiAoY29ubmVjdG9yLT5jb25uZWN0aW9uICE9IERSTV9NT0RFX0NPTk5FQ1RFRCB8fAorCQkJCSAg ICBjb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlICE9CisJCQkJICAgIHRlc3RzW3Rlc3RfY250XSkK KwkJCQkJY29udGludWU7CisJCQkJdGVzdF9jb25uX2NudCsrOworCQkJCW91dHB1dCA9IGlndF9v dXRwdXRfZnJvbV9jb25uZWN0b3IoJmRhdGEuZGlzcGxheSwgY29ubmVjdG9yKTsKKwkJCQlzcHJp bnRmKGRhdGEuY29ubl9uYW1lLCAiJXMtJWQiLAorCQkJCQlrbXN0ZXN0X2Nvbm5lY3Rvcl90eXBl X3N0cihjb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlKSwKKwkJCQkJdGVzdF9jb25uX2NudCk7CisJ CQkJaWd0X3JlcXVpcmVfZihpc19kcF9kc2Nfc3VwcG9ydGVkKCZkYXRhKSwKKwkJCQkJICAgICAg IkRTQyBub3Qgc3VwcG9ydGVkIG9uIGNvbm5lY3RvciAlcyBcbiIsCisJCQkJCSAgICAgIGRhdGEu Y29ubl9uYW1lKTsKKwkJCQlpZiAoY29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSA9PSBEUk1fTU9E RV9DT05ORUNUT1JfRGlzcGxheVBvcnQpCisJCQkJCWlndF9yZXF1aXJlX2YoaXNfZHBfZmVjX3N1 cHBvcnRlZCgmZGF0YSksCisJCQkJCQkgICAgICAiRFNDIGNhbm5vdCBiZSBlbmFibGVkIHdpdGhv dXQgRkVDIG9uICVzXG4iLAorCQkJCQkJICAgICAgZGF0YS5jb25uX25hbWUpOworCQkJCXJ1bl90 ZXN0KCZkYXRhLCBvdXRwdXQsIHRlc3RfYmFzaWNfZHNjX2VuYWJsZSk7CisJCQl9CisJCQlpZiAo ZGF0YS5vdXRwdXQpCisJCQkJdGVzdF9jbGVhbnVwKCZkYXRhKTsKKwkJCWlndF9za2lwX29uKHRl c3RfY29ubl9jbnQgPT0gMCk7CisJCX0KKwl9CisKKwlpZ3RfZml4dHVyZSB7CisJCWRybU1vZGVG cmVlQ29ubmVjdG9yKGNvbm5lY3Rvcik7CisJCWRybU1vZGVGcmVlUmVzb3VyY2VzKHJlcyk7CisJ CWNsb3NlKGRhdGEuZGVidWdmc19mZCk7CisJCWNsb3NlKGRhdGEuZHJtX2ZkKTsKKwkJaWd0X2Rp c3BsYXlfZmluaSgmZGF0YS5kaXNwbGF5KTsKKwl9CisJaWd0X2V4aXQoKTsKK30KZGlmZiAtLWdp dCBhL3Rlc3RzL21lc29uLmJ1aWxkIGIvdGVzdHMvbWVzb24uYnVpbGQKaW5kZXggYjhhNmU2MWIu LmUxNGFiMmI0IDEwMDY0NAotLS0gYS90ZXN0cy9tZXNvbi5idWlsZAorKysgYi90ZXN0cy9tZXNv bi5idWlsZApAQCAtMjUsNiArMjUsNyBAQCB0ZXN0X3Byb2dzID0gWwogCSdrbXNfY3J0Y19iYWNr Z3JvdW5kX2NvbG9yJywKIAkna21zX2N1cnNvcl9jcmMnLAogCSdrbXNfY3Vyc29yX2xlZ2FjeScs CisJJ2ttc19kcF9kc2MnLAogCSdrbXNfZHJhd19jcmMnLAogCSdrbXNfZmJjb25fZmJ0JywKIAkn a21zX2ZlbmNlX3Bpbl9sZWFrJywKLS0gCjIuMTkuMQoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pZ3QtZGV2Cg==