From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3961E89FAC for ; Mon, 20 Jul 2020 08:55:03 +0000 (UTC) From: Bhanuprakash Modem Date: Mon, 20 Jul 2020 22:20:11 +0530 Message-Id: <20200720165011.23918-1-bhanuprakash.modem@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t] Add new IGT test to validate crtc Dithering 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: bhanuprakash.modem@intel.com, igt-dev@lists.freedesktop.org List-ID: RXZlbiB0aG91Z2ggZmVhdHVyZSBEaXRoZXJpbmcgaXMgdGhlcmUgc2luY2UgbGVnYWN5LCB0aGVy ZSBpcyBubwpzcGVjaWZpYyBJR1QgZm9yIHRoaXMuCgpUaGlzIHBhdGNoIHdpbGwgY3JlYXRlIE5l dyBJR1QgZm9yIERpdGhlcmluZy4gQW5kIGJlbG93IGlzIHRoZQp0cnV0aCB0YWJsZSBmb3IgQ1JU QyBEaXRoZXJpbmcuCgp8LS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwK fCAgRnJhbWUgYnVmZmVyICB8ICBQYW5lbCAgfCAgRGl0aGVyaW5nICB8CnwtLS0tLS0tLS0tLS0t LS0tfC0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfAp8ICAgICAgOCBCUEMgICAgIHwgIDYgQlBDICB8 ICAgICBZZXMgICAgIHwKfC0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18 CnwgICAgICA4IEJQQyAgICAgfCAgOCBCUEMgIHwgICAgIE5vICAgICAgfAp8LS0tLS0tLS0tLS0t LS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwKfCAgICAgIDggQlBDICAgICB8IDEwIEJQQyAg fCAgICAgTm8gICAgICB8CnwtLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLXwtLS0tLS0tLS0tLS0t fAp8ICAgICAxMCBCUEMgICAgIHwgIDYgQlBDICB8ICAgICBZZXMgICAgIHwKfC0tLS0tLS0tLS0t LS0tLS18LS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18CnwgICAgIDEwIEJQQyAgICAgfCAgOCBCUEMg IHwgICAgIFllcyAgICAgfAp8LS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLS0t LXwKfCAgICAgMTAgQlBDICAgICB8IDEwIEJQQyAgfCAgICAgTm8gICAgICB8CnwtLS0tLS0tLS0t LS0tLS0tfC0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfAp8ICAgICAxNiBCUEMgICAgIHwgIDYgQlBD ICB8ICAgICBZZXMgICAgIHwKfC0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tfC0tLS0tLS0tLS0t LS18CnwgICAgIDE2IEJQQyAgICAgfCAgOCBCUEMgIHwgICAgIFllcyAgICAgfAp8LS0tLS0tLS0t LS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwKfCAgICAgMTYgQlBDICAgICB8IDEwIEJQ QyAgfCAgICAgWWVzICAgICB8CnwtLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLXwtLS0tLS0tLS0t LS0tfAoKQ2M6IFN3YXRpIFNoYXJtYSA8c3dhdGkyLnNoYXJtYUBpbnRlbC5jb20+CkNjOiBLYXJ0 aGlrIEIgUyA8a2FydGhpay5iLnNAaW50ZWwuY29tPgpDYzogVW1hIFNoYW5rYXIgPHVtYS5zaGFu a2FyQGludGVsLmNvbT4KQ2M6IFBhbmthaiBCaGFyYWRpeWEgPHBhbmthai5sYXhtaW5hcmF5YW4u YmhhcmFkaXlhQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogQmhhbnVwcmFrYXNoIE1vZGVtIDxi aGFudXByYWthc2gubW9kZW1AaW50ZWwuY29tPgotLS0KIHRlc3RzL01ha2VmaWxlLnNvdXJjZXMg fCAgIDEgKwogdGVzdHMva21zX2RpdGhlci5jICAgICB8IDI1MiArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwogdGVzdHMvbWVzb24uYnVpbGQgICAgICB8ICAgMSArCiAz IGZpbGVzIGNoYW5nZWQsIDI1NCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVz dHMva21zX2RpdGhlci5jCgpkaWZmIC0tZ2l0IGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcyBiL3Rl c3RzL01ha2VmaWxlLnNvdXJjZXMKaW5kZXggMDY1M2MzZDMuLmU4MTYwMzdjIDEwMDY0NAotLS0g YS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCisrKyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKQEAg LTQzLDYgKzQzLDcgQEAgVEVTVFNfcHJvZ3MgPSBcCiAJa21zX2N1cnNvcl9jcmMgXAogCWttc19j dXJzb3JfZWRnZV93YWxrIFwKIAlrbXNfY3Vyc29yX2xlZ2FjeSBcCisJa21zX2RpdGhlciBcCiAJ a21zX2RwX2F1eF9kZXYgXAogCWttc19kcF9kc2MgXAogCWttc19kcF90aWxlZF9kaXNwbGF5IFwK ZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19kaXRoZXIuYyBiL3Rlc3RzL2ttc19kaXRoZXIuYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uZjRiMTQzYmIKLS0tIC9kZXYvbnVsbAor KysgYi90ZXN0cy9rbXNfZGl0aGVyLmMKQEAgLTAsMCArMSwyNTIgQEAKKy8qCisgKiBDb3B5cmln aHQgwqkgMjAyMCBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5 IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBj b3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAo dGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0 cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1 c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2Us CisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBl cnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3Vi amVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHly aWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4 dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0 YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJF IElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJF U1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJB TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09Q WVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERB TUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09O VFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4g Q09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFM SU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKworI2luY2x1ZGUgImlndC5oIgorI2luY2x1ZGUg PGZjbnRsLmg+CisjaW5jbHVkZSA8dGVybWlvcy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCitJ R1RfVEVTVF9ERVNDUklQVElPTigiVGVzdCBEaXRoZXJpbmcgYmxvY2sgc3RhdHVzIik7CisKKy8q IENvbm5lY3RvciBCUEMgKi8KKyNkZWZpbmUgSUdUX0NPTk5FQ1RPUl9CUENfNgkJNgorI2RlZmlu ZSBJR1RfQ09OTkVDVE9SX0JQQ184CQk4CisjZGVmaW5lIElHVF9DT05ORUNUT1JfQlBDXzEwCQkx MAorI2RlZmluZSBJR1RfQ09OTkVDVE9SX0JQQ18xMgkJMTIKKworLyogRnJhbWVidWZmZXIgQlBD ICovCisjZGVmaW5lIElHVF9GUkFNRV9CVUZGRVJfQlBDXzgJCTgKKyNkZWZpbmUgSUdUX0ZSQU1F X0JVRkZFUl9CUENfMTAJCTEwCisjZGVmaW5lIElHVF9GUkFNRV9CVUZGRVJfQlBDXzE2CQkxNgor CisvKiBUZXN0IGZsYWdzLiAqLworZW51bSB7CisJVEVTVF9OT05FID0gMSA8PCAwLAorCVRFU1Rf U1VTUEVORCA9IDEgPDwgMSwKK307CisKKy8qIENvbW1vbiB0ZXN0IGRhdGEuICovCit0eXBlZGVm IHN0cnVjdCBkYXRhIHsKKwlpZ3RfZGlzcGxheV90IGRpc3BsYXk7CisJaWd0X3BsYW5lX3QgKnBy aW1hcnk7CisJaWd0X291dHB1dF90ICpvdXRwdXQ7CisJaWd0X3BpcGVfdCAqcGlwZTsKKwlkcm1N b2RlTW9kZUluZm8gKm1vZGU7CisJZW51bSBwaXBlIHBpcGVfaWQ7CisJaW50IGRybV9mZDsKK30g ZGF0YV90OworCisvKiBQcmVwYXJlIHRlc3QgZGF0YS4gKi8KK3N0YXRpYyB2b2lkIHByZXBhcmVf dGVzdChkYXRhX3QgKmRhdGEsIGlndF9vdXRwdXRfdCAqb3V0cHV0LCBlbnVtIHBpcGUgcGlwZSkK K3sKKwlpZ3RfZGlzcGxheV90ICpkaXNwbGF5ID0gJmRhdGEtPmRpc3BsYXk7CisKKwlkYXRhLT5w aXBlX2lkID0gcGlwZTsKKwlkYXRhLT5waXBlID0gJmRhdGEtPmRpc3BsYXkucGlwZXNbZGF0YS0+ cGlwZV9pZF07CisJaWd0X2Fzc2VydChkYXRhLT5waXBlKTsKKworCWlndF9kaXNwbGF5X3Jlc2V0 KGRpc3BsYXkpOworCisJZGF0YS0+b3V0cHV0ID0gb3V0cHV0OworCWlndF9hc3NlcnQoZGF0YS0+ b3V0cHV0KTsKKworCWRhdGEtPm1vZGUgPSBpZ3Rfb3V0cHV0X2dldF9tb2RlKGRhdGEtPm91dHB1 dCk7CisJaWd0X2Fzc2VydChkYXRhLT5tb2RlKTsKKworCWRhdGEtPnByaW1hcnkgPQorCQlpZ3Rf cGlwZV9nZXRfcGxhbmVfdHlwZShkYXRhLT5waXBlLCBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsK KworCWlndF9vdXRwdXRfc2V0X3BpcGUoZGF0YS0+b3V0cHV0LCBkYXRhLT5waXBlX2lkKTsKK30K KworLyogUmV0dXJucyB0aGUgY3VycmVudCBzdGF0ZSBvZiBkaXRoZXJpbmcgZnJvbSB0aGUgY3J0 YyBkZWJ1Z2ZzLiAqLworc3RhdGljIGJvb2wgZ2V0X2RpdGhlcl9zdGF0ZShkYXRhX3QgKmRhdGEp Cit7CisJY2hhciBidWZbMjU2XTsKKwljaGFyIGNydGNfbmFtZVs3XTsKKwljaGFyICpzdGFydF9s b2M7CisJaW50IGZkLCByZXM7CisJdW5zaWduZWQgaW50IHN0YXR1czsKKworCXNucHJpbnRmKGNy dGNfbmFtZSwgNywgImNydGMtJWQiLCBkYXRhLT5waXBlX2lkKTsKKwlmZCA9IGlndF9kZWJ1Z2Zz X29wZW4oZGF0YS0+ZHJtX2ZkLCBjcnRjX25hbWUsIE9fUkRPTkxZKTsKKwlpZ3RfYXNzZXJ0KGZk ID49IDApOworCisJcmVzID0gaWd0X2RlYnVnZnNfc2ltcGxlX3JlYWQoZmQsICJkaXRoZXIiLCBi dWYsIHNpemVvZihidWYpKTsKKwlpZ3RfcmVxdWlyZShyZXMgPiAwKTsKKwljbG9zZShmZCk7CisK KwlpZ3RfYXNzZXJ0KHN0YXJ0X2xvYyA9IHN0cnN0cihidWYsICJEaXRoZXI6ICIpKTsKKwlpZ3Rf YXNzZXJ0X2VxKHNzY2FuZihzdGFydF9sb2MsICJEaXRoZXI6ICV1IiwgJnN0YXR1cyksIDEpOwor CisJcmV0dXJuICEhc3RhdHVzOworfQorCisvKiBSZXR1cm5zIHRoZSBjdXJyZW50IGFuZCBtYXhp bXVtIGJwYyBmcm9tIHRoZSBjb25uZWN0b3IgZGVidWdmcy4gKi8KK3N0YXRpYyB1bnNpZ25lZCBp bnQgZ2V0X291dHB1dF9icGMoZGF0YV90ICpkYXRhLCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCkKK3sK KwljaGFyIGJ1ZlsyNTZdOworCWNoYXIgKnN0YXJ0X2xvYzsKKwlpbnQgZmQsIHJlczsKKwl1bnNp Z25lZCBpbnQgbWF4X2JwYzsKKworCWZkID0gaWd0X2RlYnVnZnNfY29ubmVjdG9yX2RpcihkYXRh LT5kcm1fZmQsIG91dHB1dC0+bmFtZSwgT19SRE9OTFkpOworCWlndF9hc3NlcnQoZmQgPj0gMCk7 CisKKwlyZXMgPSBpZ3RfZGVidWdmc19zaW1wbGVfcmVhZChmZCwgIm91dHB1dF9icGMiLCBidWYs IHNpemVvZihidWYpKTsKKworCWlndF9yZXF1aXJlKHJlcyA+IDApOworCisJY2xvc2UoZmQpOwor CisJaWd0X2Fzc2VydChzdGFydF9sb2MgPSBzdHJzdHIoYnVmLCAiTWF4aW11bTogIikpOworCWln dF9hc3NlcnRfZXEoc3NjYW5mKHN0YXJ0X2xvYywgIk1heGltdW06ICV1IiwgJm1heF9icGMpLCAx KTsKKworCXJldHVybiBtYXhfYnBjOworfQorCitzdGF0aWMgdm9pZCB0ZXN0X2RpdGhlcmluZ19v bl9vdXRwdXQoZGF0YV90ICpkYXRhLCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCwKKwkJaW50IGZiX2Jw YywgaW50IGZiX2Zvcm1hdCwgaW50IG91dHB1dF9icGMsCisJCXVpbnQzMl90IGZsYWdzKQorewor CWlndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSAmZGF0YS0+ZGlzcGxheTsKKwllbnVtIHBpcGUgcGlw ZTsKKwlpZ3RfZmJfdCBmYjsKKwlpbnQgcmV0OworCWJvb2wgZW5hYmxlZDsKKworCWZvcl9lYWNo X3BpcGUoZGlzcGxheSwgcGlwZSkgeworCQlpZiAoIWlndF9waXBlX2Nvbm5lY3Rvcl92YWxpZChw aXBlLCBvdXRwdXQpKQorCQkJY29udGludWU7CisKKwkJaWd0X2luZm8oIkRpdGhlcmluZyB0ZXN0 IGV4ZWN1dGlvbiBvbiAlcyBQSVBFXyVzXG4iLAorCQkJCW91dHB1dC0+bmFtZSwga21zdGVzdF9w aXBlX25hbWUocGlwZSkpOworCQlwcmVwYXJlX3Rlc3QoZGF0YSwgb3V0cHV0LCBwaXBlKTsKKwor CQlyZXQgPSBpZ3RfY3JlYXRlX2ZiKGRhdGEtPmRybV9mZCwgNTEyLCA1MTIsIGZiX2Zvcm1hdCwK KwkJCQkgICAgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwKKwkJCQkgICAgJmZiKTsKKwkJaWd0 X2Fzc2VydChyZXQpOworCisJCWlndF9wbGFuZV9zZXRfZmIoZGF0YS0+cHJpbWFyeSwgJmZiKTsK KwkJaWd0X3BsYW5lX3NldF9zaXplKGRhdGEtPnByaW1hcnksIGRhdGEtPm1vZGUtPmhkaXNwbGF5 LCBkYXRhLT5tb2RlLT52ZGlzcGxheSk7CisJCWlndF9vdXRwdXRfc2V0X3Byb3BfdmFsdWUoZGF0 YS0+b3V0cHV0LCBJR1RfQ09OTkVDVE9SX01BWF9CUEMsIG91dHB1dF9icGMpOworCQlpZ3RfZGlz cGxheV9jb21taXQyKGRpc3BsYXksIGRpc3BsYXktPmlzX2F0b21pYyA/IENPTU1JVF9BVE9NSUMg OiBDT01NSVRfTEVHQUNZKTsKKworCQkvKiBDaGVjayB0aGUgc3RhdHVzIG9mIERpdGhlcmluZyBi bG9jaworCQkgKiBJZiBmYl9icGMgaXMgZ3JlYXRlciB0aGFuIG91dHB1dF9icGMsIERpdGhlcmlu ZyBzaG91bGQgYmUgRW5hYmxlZAorCQkgKiBlbHNlIERpc2FibGVkCisJCSAqLworCQllbmFibGVk ID0gZ2V0X2RpdGhlcl9zdGF0ZShkYXRhKTsKKwkJaWYgKGZiX2JwYyA+IG91dHB1dF9icGMpCisJ CQlpZ3RfYXNzZXJ0X2YoZW5hYmxlZCwgIihmYl8lZGJwYyA+IG91dHB1dF8lZGJwYyk6IERpdGhl ciBzaG91bGQgYmUgZW5hYmxlZFxuIiwKKwkJCQkJZmJfYnBjLCBvdXRwdXRfYnBjKTsKKwkJZWxz ZQorCQkJaWd0X2Fzc2VydF9mKCFlbmFibGVkLCAiKGZiXyVkYnBjIDw9IG91dHB1dF8lZGJwYyk6 IERpdGhlciBzaG91bGQgYmUgZGlzYWJsZWRcbiIsCisJCQkJCWZiX2JwYywgb3V0cHV0X2JwYyk7 CisKKwkJaWd0X3BsYW5lX3NldF9mYihkYXRhLT5wcmltYXJ5LCBOVUxMKTsKKwkJaWd0X291dHB1 dF9zZXRfcGlwZShvdXRwdXQsIFBJUEVfQU5ZKTsKKwkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNw bGF5LCBkaXNwbGF5LT5pc19hdG9taWMgPyBDT01NSVRfQVRPTUlDIDogQ09NTUlUX0xFR0FDWSk7 CisJCWlndF9yZW1vdmVfZmIoZGF0YS0+ZHJtX2ZkLCAmZmIpOworCX0KKwlyZXR1cm47Cit9CisK Ky8qIFJldHVybnMgdHJ1ZSBpZiBhbiBvdXRwdXQgc3VwcG9ydHMgbWF4IGJwYyBwcm9wZXJ0eS4g Ki8KK3N0YXRpYyBib29sIGhhc19tYXhfYnBjKGlndF9vdXRwdXRfdCAqb3V0cHV0KQoreworICAg ICAgICByZXR1cm4gaWd0X291dHB1dF9oYXNfcHJvcChvdXRwdXQsIElHVF9DT05ORUNUT1JfTUFY X0JQQykgJiYKKyAgICAgICAgICAgICAgIGlndF9vdXRwdXRfZ2V0X3Byb3Aob3V0cHV0LCBJR1Rf Q09OTkVDVE9SX01BWF9CUEMpOworfQorCitzdGF0aWMgdm9pZAorcnVuX2RpdGhlcl90ZXN0KGRh dGFfdCAqZGF0YSwgaW50IGZiX2JwYywgaW50IGZiX2Zvcm1hdCwgaW50IG91dHB1dF9icGMsCisJ CXVpbnQzMl90IGZsYWdzKQoreworCWlndF9vdXRwdXRfdCAqb3V0cHV0OworCXVuc2lnbmVkIGlu dCBtYXhfYnBjOworCWludCB2YWxpZF9vdXRwdXRzID0gMDsKKworCWZvcl9lYWNoX2Nvbm5lY3Rl ZF9vdXRwdXQoJmRhdGEtPmRpc3BsYXksIG91dHB1dCkgeworCQlpZiAoIWhhc19tYXhfYnBjKG91 dHB1dCkpCisJCQljb250aW51ZTsKKworCQltYXhfYnBjID0gZ2V0X291dHB1dF9icGMoZGF0YSwg b3V0cHV0KTsKKwkJaWYobWF4X2JwYyA8IG91dHB1dF9icGMpCisJCQljb250aW51ZTsKKworCQl0 ZXN0X2RpdGhlcmluZ19vbl9vdXRwdXQoZGF0YSwgb3V0cHV0LCBmYl9icGMsIGZiX2Zvcm1hdCwg b3V0cHV0X2JwYywgZmxhZ3MpOworCQl2YWxpZF9vdXRwdXRzKys7CisJfQorCisJaWd0X3JlcXVp cmVfZih2YWxpZF9vdXRwdXRzLCAiTm8gY29ubmVjdG9yIGZvdW5kIHdpdGggTUFYIEJQQyBjb25u ZWN0b3IgcHJvcGVydHkuIChvcikgIgorCQkJCSAgICAgIk5vIGNvbm5lY3RvciBmb3VuZCB3aXRo IE1heCBQYW5lbCBCUEMgKCVkKSA+PSAlZC5cbiIsCisJCSAgICAgIG1heF9icGMsIG91dHB1dF9i cGMpOworfQorCitpZ3RfbWFpbgoreworCXN0cnVjdCB7CisJCWludCBicGM7CisJCWludCBmb3Jt YXQ7CisJfSBmYl9mb3JtYXRzW10gPSB7CisJCXsgSUdUX0ZSQU1FX0JVRkZFUl9CUENfOCwgRFJN X0ZPUk1BVF9SR0I4ODggfSwKKwkJeyBJR1RfRlJBTUVfQlVGRkVSX0JQQ18xMCwgRFJNX0ZPUk1B VF9YUkdCMjEwMTAxMCB9LAorCQl7IElHVF9GUkFNRV9CVUZGRVJfQlBDXzE2LCBEUk1fRk9STUFU X1hSR0IxNjE2MTYxNkYgfSwKKwl9OworCWludCBvdXRwdXRfYnBjW10gPSB7CisJCUlHVF9DT05O RUNUT1JfQlBDXzYsCisJCUlHVF9DT05ORUNUT1JfQlBDXzgsCisJCUlHVF9DT05ORUNUT1JfQlBD XzEwCisJfTsKKwlpbnQgaSwgajsKKwlkYXRhX3QgZGF0YSA9IHsgMCB9OworCisJaWd0X2ZpeHR1 cmUgeworCQlkYXRhLmRybV9mZCA9IGRybV9vcGVuX2RyaXZlcl9tYXN0ZXIoRFJJVkVSX0lOVEVM KTsKKwkJa21zdGVzdF9zZXRfdnRfZ3JhcGhpY3NfbW9kZSgpOworCisJCWlndF9kaXNwbGF5X3Jl cXVpcmUoJmRhdGEuZGlzcGxheSwgZGF0YS5kcm1fZmQpOworCQlpZ3RfZGlzcGxheV9yZXF1aXJl X291dHB1dCgmZGF0YS5kaXNwbGF5KTsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0la RShmYl9mb3JtYXRzKTsgaSsrKSB7CisJCWZvciAoaiA9IDA7IGogPCBBUlJBWV9TSVpFKG91dHB1 dF9icGMpOyBqKyspIHsKKwkJCWlndF9kZXNjcmliZV9mKCJGcmFtZWJ1ZmZlciBCUEM6JWQsIFBh bmVsIEJQQzolZCwgRXhwZWN0ZWQgRGl0aGVyOiVzXG4iLAorCQkJCSAgICAgICBmYl9mb3JtYXRz W2ldLmJwYywgb3V0cHV0X2JwY1tqXSwKKwkJCQkgICAgICAgKGZiX2Zvcm1hdHNbaV0uYnBjID4g b3V0cHV0X2JwY1tqXSkgPyAiRW5hYmxlIjogIkRpc2FibGUiKTsKKworCQkJaWd0X3N1YnRlc3Rf ZigiRkItJWRCUEMtVnMtUGFuZWwtJWRCUEMiLCBmYl9mb3JtYXRzW2ldLmJwYywgb3V0cHV0X2Jw Y1tqXSkKKwkJCQlydW5fZGl0aGVyX3Rlc3QoJmRhdGEsCisJCQkJCQlmYl9mb3JtYXRzW2ldLmJw YywKKwkJCQkJCWZiX2Zvcm1hdHNbaV0uZm9ybWF0LAorCQkJCQkJb3V0cHV0X2JwY1tqXSwKKwkJ CQkJCVRFU1RfTk9ORSk7CisJCX0KKwl9CisKKwlpZ3RfZml4dHVyZSB7CisJCWlndF9kaXNwbGF5 X2ZpbmkoJmRhdGEuZGlzcGxheSk7CisJfQorfQpkaWZmIC0tZ2l0IGEvdGVzdHMvbWVzb24uYnVp bGQgYi90ZXN0cy9tZXNvbi5idWlsZAppbmRleCBjZmU1MDhjNC4uMDVhOWNmYjggMTAwNjQ0Ci0t LSBhL3Rlc3RzL21lc29uLmJ1aWxkCisrKyBiL3Rlc3RzL21lc29uLmJ1aWxkCkBAIC0yNyw2ICsy Nyw3IEBAIHRlc3RfcHJvZ3MgPSBbCiAJJ2ttc19jdXJzb3JfY3JjJywKIAkna21zX2N1cnNvcl9l ZGdlX3dhbGsnLAogCSdrbXNfY3Vyc29yX2xlZ2FjeScsCisJJ2ttc19kaXRoZXInLAogCSdrbXNf ZHBfYXV4X2RldicsCiAJJ2ttc19kcF9kc2MnLAogCSdrbXNfZHBfdGlsZWRfZGlzcGxheScsCi0t IAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=