From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mblankhorst.nl (mblankhorst.nl [IPv6:2a02:2308::216:3eff:fe92:dfa3]) by gabe.freedesktop.org (Postfix) with ESMTPS id 390D36E150 for ; Wed, 24 Jan 2018 10:25:06 +0000 (UTC) From: Maarten Lankhorst Date: Wed, 24 Jan 2018 11:25:00 +0100 Message-Id: <20180124102500.71999-1-maarten.lankhorst@linux.intel.com> Subject: [igt-dev] [PATCH i-g-t] tests/kms_render: Rewrite test to take advantage of igt_display. List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 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 List-ID: VGhpcyB0ZXN0IHdhcyB0YWtpbmcgfjEwMHMgZm9yIGVhY2ggc3VidGVzdCwgYW5kIGJvdGggdGVz dHMgd2VyZSB0aGUgc2FtZSwKYnV0IHJlcXVpcmVkIHRoZSB1c2VyIHRvIHBheSBhdHRlbnRpb24u IEkndmUgY2hhbmdlZCBpdCB0byBhdXRvbWF0ZWQKY2hlY2tpbmcgd2l0aCBDUkMsIGFuZCByZW1v dmVkIHRoZSBzdWJ0ZXN0cy4KClRoaXMgcmVkdWNlcyB0aGUgcnVudGltZSBmb3IgdGhlIHRlc3Qg ZnJvbSBhYm91dCAyMDBzIHRvIDEwcwood2l0aCBOVjEyIGVuYWJsZWQpLCBhbmQgY2hlY2tzIHdo ZXRoZXIgcGl4ZWwgZm9ybWF0cyBhcmUgc3VwcG9ydGVkCndpdGhvdXQgc3BlY2lhbCBjYXNpbmcg dGhlbS4KClNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3Jz dEBsaW51eC5pbnRlbC5jb20+Ci0tLQogdGVzdHMva21zX3JlbmRlci5jIHwgMTkxICsrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgNjQgaW5zZXJ0aW9ucygrKSwgMTI3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rl c3RzL2ttc19yZW5kZXIuYyBiL3Rlc3RzL2ttc19yZW5kZXIuYwppbmRleCAyNTVjZjNkZTM5Y2Yu LjBiMzFkMzUxZGQ5MCAxMDA2NDQKLS0tIGEvdGVzdHMva21zX3JlbmRlci5jCisrKyBiL3Rlc3Rz L2ttc19yZW5kZXIuYwpAQCAtMzEsMTYgKzMxLDcgQEAKIAogI2luY2x1ZGUgImludGVsX2J1Zm1n ci5oIgogCi1kcm1Nb2RlUmVzICpyZXNvdXJjZXM7Ci1pbnQgZHJtX2ZkOwotCi1lbnVtIHRlc3Rf ZmxhZ3MgewotCVRFU1RfRElSRUNUX1JFTkRFUgk9IDB4MDEsCi0JVEVTVF9HUFVfQkxJVAkJPSAw eDAyLAotfTsKLQotc3RhdGljIGludCBwYWludF9mYihzdHJ1Y3QgaWd0X2ZiICpmYiwgY29uc3Qg Y2hhciAqdGVzdF9uYW1lLAotCQkgICAgY29uc3QgY2hhciAqbW9kZV9mb3JtYXRfc3RyLCBjb25z dCBjaGFyICpjY29uZl9zdHIpCitzdGF0aWMgaW50IHBhaW50X2ZiKGludCBkcm1fZmQsIHN0cnVj dCBpZ3RfZmIgKmZiLCBjb25zdCBjaGFyICptb2RlX2Zvcm1hdF9zdHIsIGNvbnN0IGNoYXIgKmNj b25mX3N0cikKIHsKIAljYWlyb190ICpjcjsKIApAQCAtNTEsNyArNDIsNyBAQCBzdGF0aWMgaW50 IHBhaW50X2ZiKHN0cnVjdCBpZ3RfZmIgKmZiLCBjb25zdCBjaGFyICp0ZXN0X25hbWUsCiAKIAlj YWlyb19tb3ZlX3RvKGNyLCBmYi0+d2lkdGggLyAyLCBmYi0+aGVpZ2h0IC8gMik7CiAJY2Fpcm9f c2V0X2ZvbnRfc2l6ZShjciwgMzYpOwotCWlndF9jYWlyb19wcmludGZfbGluZShjciwgYWxpZ25f aGNlbnRlciwgMTAsICIlcyIsIHRlc3RfbmFtZSk7CisJaWd0X2NhaXJvX3ByaW50Zl9saW5lKGNy LCBhbGlnbl9oY2VudGVyLCAxMCwgImttc19yZW5kZXIiKTsKIAlpZ3RfY2Fpcm9fcHJpbnRmX2xp bmUoY3IsIGFsaWduX2hjZW50ZXIsIDEwLCAiJXMiLCBtb2RlX2Zvcm1hdF9zdHIpOwogCWlndF9j YWlyb19wcmludGZfbGluZShjciwgYWxpZ25faGNlbnRlciwgMTAsICIlcyIsIGNjb25mX3N0cik7 CiAKQEAgLTYwLDcgKzUxLDcgQEAgc3RhdGljIGludCBwYWludF9mYihzdHJ1Y3QgaWd0X2ZiICpm YiwgY29uc3QgY2hhciAqdGVzdF9uYW1lLAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBn cHVfYmxpdChzdHJ1Y3QgaWd0X2ZiICpkc3RfZmIsIHN0cnVjdCBpZ3RfZmIgKnNyY19mYikKK3N0 YXRpYyB2b2lkIGdwdV9ibGl0KGludCBkcm1fZmQsIHN0cnVjdCBpZ3RfZmIgKmRzdF9mYiwgc3Ry dWN0IGlndF9mYiAqc3JjX2ZiKQogewogCWRybV9pbnRlbF9ibyAqZHN0X2JvOwogCWRybV9pbnRl bF9ibyAqc3JjX2JvOwpAQCAtMTAxLDE1NiArOTIsMTAyIEBAIHN0YXRpYyB2b2lkIGdwdV9ibGl0 KHN0cnVjdCBpZ3RfZmIgKmRzdF9mYiwgc3RydWN0IGlndF9mYiAqc3JjX2ZiKQogCWRybV9pbnRl bF9ib191bnJlZmVyZW5jZShkc3RfYm8pOwogfQogCi1zdGF0aWMgaW50IHRlc3RfZm9ybWF0KGNv bnN0IGNoYXIgKnRlc3RfbmFtZSwKLQkJICAgICAgIHN0cnVjdCBrbXN0ZXN0X2Nvbm5lY3Rvcl9j b25maWcgKmNjb25mLAotCQkgICAgICAgZHJtTW9kZU1vZGVJbmZvICptb2RlLCB1aW50MzJfdCBm b3JtYXQsCi0JCSAgICAgICBlbnVtIHRlc3RfZmxhZ3MgZmxhZ3MpCitzdGF0aWMgdm9pZCB0ZXN0 X2Zvcm1hdChpZ3RfZGlzcGxheV90ICpkaXNwbGF5LAorCQkJZW51bSBwaXBlIHBpcGUsCisJCQlp Z3Rfb3V0cHV0X3QgKm91dHB1dCwKKwkJCWlndF9wbGFuZV90ICpwcmltYXJ5LAorCQkJdWludDMy X3QgZm9ybWF0KQogewotCWludCB3aWR0aDsKLQlpbnQgaGVpZ2h0OworCWRybU1vZGVNb2RlSW5m byAqbW9kZSA9IGlndF9vdXRwdXRfZ2V0X21vZGUob3V0cHV0KTsKKwlpbnQgd2lkdGggPSBtb2Rl LT5oZGlzcGxheSwgaGVpZ2h0ID0gbW9kZS0+dmRpc3BsYXksIHJldCwgZHJtX2ZkID0gZGlzcGxh eS0+ZHJtX2ZkOwogCXN0cnVjdCBpZ3RfZmIgZmJbMl07CiAJY2hhciAqbW9kZV9mb3JtYXRfc3Ry OwogCWNoYXIgKmNjb25mX3N0cjsKLQlpbnQgcmV0OworCWlndF9waXBlX2NyY190ICpwaXBlX2Ny YzsKKwlpZ3RfY3JjX3QgZGlyZWN0LCBibGl0OwogCiAJcmV0ID0gYXNwcmludGYoJm1vZGVfZm9y bWF0X3N0ciwgIiVzIEAgJWRIeiAvICVzIiwKLQkJIG1vZGUtPm5hbWUsIG1vZGUtPnZyZWZyZXNo LCBpZ3RfZm9ybWF0X3N0cihmb3JtYXQpKTsKKwkJICAgICAgIG1vZGUtPm5hbWUsIG1vZGUtPnZy ZWZyZXNoLCBpZ3RfZm9ybWF0X3N0cihmb3JtYXQpKTsKIAlpZ3RfYXNzZXJ0X2x0KDAsIHJldCk7 CisKIAlyZXQgPSBhc3ByaW50ZigmY2NvbmZfc3RyLCAicGlwZSAlcywgZW5jb2RlciAlcywgY29u bmVjdG9yICVzIiwKLQkJICAgICAgIGttc3Rlc3RfcGlwZV9uYW1lKGNjb25mLT5waXBlKSwKLQkJ ICAgICAgIGttc3Rlc3RfZW5jb2Rlcl90eXBlX3N0cihjY29uZi0+ZW5jb2Rlci0+ZW5jb2Rlcl90 eXBlKSwKLQkJICAgICAgIGttc3Rlc3RfY29ubmVjdG9yX3R5cGVfc3RyKGNjb25mLT5jb25uZWN0 b3ItPmNvbm5lY3Rvcl90eXBlKSk7CisJCSAgICAgICBrbXN0ZXN0X3BpcGVfbmFtZShwaXBlKSwK KwkJICAgICAgIGttc3Rlc3RfZW5jb2Rlcl90eXBlX3N0cihvdXRwdXQtPmNvbmZpZy5lbmNvZGVy LT5lbmNvZGVyX3R5cGUpLAorCQkgICAgICAgb3V0cHV0LT5uYW1lKTsKIAlpZ3RfYXNzZXJ0X2x0 KDAsIHJldCk7CiAKLQlpZ3RfaW5mbygiQmVnaW5uaW5nIHRlc3QgJXMgd2l0aCAlcyBvbiAlc1xu IiwKLQkJIHRlc3RfbmFtZSwgbW9kZV9mb3JtYXRfc3RyLCBjY29uZl9zdHIpOwotCi0Jd2lkdGgg PSBtb2RlLT5oZGlzcGxheTsKLQloZWlnaHQgPSBtb2RlLT52ZGlzcGxheTsKLQotCWlmICghaWd0 X2NyZWF0ZV9mYihkcm1fZmQsIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwKLQkJCSAgIExPQ0FMX0RS TV9GT1JNQVRfTU9EX05PTkUsICZmYlswXSkpCi0JCWdvdG8gZXJyMTsKLQotCWlmICghaWd0X2Ny ZWF0ZV9mYihkcm1fZmQsIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwKLQkJCSAgIExPQ0FMX0RSTV9G T1JNQVRfTU9EX05PTkUsCSZmYlsxXSkpCi0JCWdvdG8gZXJyMjsKLQotCWlmIChkcm1Nb2RlU2V0 Q3J0Yyhkcm1fZmQsIGNjb25mLT5jcnRjLT5jcnRjX2lkLCBmYlswXS5mYl9pZCwKLQkJCQkgMCwg MCwgJmNjb25mLT5jb25uZWN0b3ItPmNvbm5lY3Rvcl9pZCwgMSwKLQkJCQkgbW9kZSkpCi0JCWdv dG8gZXJyMjsKLQlkb19vcl9kaWUoZHJtTW9kZVBhZ2VGbGlwKGRybV9mZCwgY2NvbmYtPmNydGMt PmNydGNfaWQsIGZiWzBdLmZiX2lkLAotCQkJCSAgMCwgTlVMTCkpOwotCXNsZWVwKDIpOwotCi0J aWYgKGZsYWdzICYgVEVTVF9ESVJFQ1RfUkVOREVSKSB7Ci0JCXBhaW50X2ZiKCZmYlswXSwgdGVz dF9uYW1lLCBtb2RlX2Zvcm1hdF9zdHIsIGNjb25mX3N0cik7Ci0JfSBlbHNlIGlmIChmbGFncyAm IFRFU1RfR1BVX0JMSVQpIHsKLQkJcGFpbnRfZmIoJmZiWzFdLCB0ZXN0X25hbWUsIG1vZGVfZm9y bWF0X3N0ciwgY2NvbmZfc3RyKTsKLQkJZ3B1X2JsaXQoJmZiWzBdLCAmZmJbMV0pOwotCX0KLQlz bGVlcCg1KTsKKwlpZ3RfY3JlYXRlX2ZiKGRybV9mZCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LAor CQkgICAgICBMT0NBTF9EUk1fRk9STUFUX01PRF9OT05FLCAmZmJbMF0pOwogCi0JaWd0X2luZm8o IlRlc3QgJXMgd2l0aCAlcyBvbiAlczogUEFTU0VEXG4iLAotCQkgdGVzdF9uYW1lLCBtb2RlX2Zv cm1hdF9zdHIsIGNjb25mX3N0cik7Ci0JZnJlZShtb2RlX2Zvcm1hdF9zdHIpOwotCWZyZWUoY2Nv bmZfc3RyKTsKKwlpZ3RfY3JlYXRlX2ZiKGRybV9mZCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LAor CQkgICAgICBMT0NBTF9EUk1fRk9STUFUX01PRF9OT05FLCAmZmJbMV0pOwogCi0JaWd0X3JlbW92 ZV9mYihkcm1fZmQsICZmYlsxXSk7Ci0JaWd0X3JlbW92ZV9mYihkcm1fZmQsICZmYlswXSk7CisJ cGFpbnRfZmIoZHJtX2ZkLCAmZmJbMF0sIG1vZGVfZm9ybWF0X3N0ciwgY2NvbmZfc3RyKTsKKwln cHVfYmxpdChkcm1fZmQsICZmYlsxXSwgJmZiWzBdKTsKIAotCXJldHVybiAwOworCWlndF9wbGFu ZV9zZXRfZmIocHJpbWFyeSwgJmZiWzBdKTsKKwlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXks IGRpc3BsYXktPmlzX2F0b21pYyA/IENPTU1JVF9BVE9NSUMgOiBDT01NSVRfTEVHQUNZKTsKKwor CXBpcGVfY3JjID0gaWd0X3BpcGVfY3JjX25ldyhkcm1fZmQsIHBpcGUsIElOVEVMX1BJUEVfQ1JD X1NPVVJDRV9BVVRPKTsKKwlpZ3RfcGlwZV9jcmNfY29sbGVjdF9jcmMocGlwZV9jcmMsICZkaXJl Y3QpOworCisJaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCAmZmJbMV0pOworCWlndF9kaXNwbGF5 X2NvbW1pdDIoZGlzcGxheSwgZGlzcGxheS0+aXNfYXRvbWljID8gQ09NTUlUX0FUT01JQyA6IENP TU1JVF9MRUdBQ1kpOworCWlndF9waXBlX2NyY19jb2xsZWN0X2NyYyhwaXBlX2NyYywgJmJsaXQp OworCisJaWd0X2Fzc2VydF9jcmNfZXF1YWwoJmRpcmVjdCwgJmJsaXQpOworCisJaWd0X3BpcGVf Y3JjX2ZyZWUocGlwZV9jcmMpOwogCi1lcnIyOgotCWlndF9yZW1vdmVfZmIoZHJtX2ZkLCAmZmJb MF0pOwotZXJyMToKLQlpZ3RfaW5mbygiVGVzdCAlcyB3aXRoICVzIG9uICVzOiBTS0lQUEVEXG4i LAotCQkgdGVzdF9uYW1lLCBtb2RlX2Zvcm1hdF9zdHIsIGNjb25mX3N0cik7CiAJZnJlZShtb2Rl X2Zvcm1hdF9zdHIpOwogCWZyZWUoY2NvbmZfc3RyKTsKIAotCXJldHVybiAtMTsKKwlpZ3RfcmVt b3ZlX2ZiKGRybV9mZCwgJmZiWzFdKTsKKwlpZ3RfcmVtb3ZlX2ZiKGRybV9mZCwgJmZiWzBdKTsK IH0KIAotc3RhdGljIHZvaWQgdGVzdF9jb25uZWN0b3IoY29uc3QgY2hhciAqdGVzdF9uYW1lLAot CQkJICAgc3RydWN0IGttc3Rlc3RfY29ubmVjdG9yX2NvbmZpZyAqY2NvbmYsCi0JCQkgICBlbnVt IHRlc3RfZmxhZ3MgZmxhZ3MpCitzdGF0aWMgdm9pZCB0ZXN0X2Nvbm5lY3RvcihpZ3RfZGlzcGxh eV90ICpkaXNwbGF5LCBlbnVtIHBpcGUgcGlwZSwKKwkJCSAgIGlndF9vdXRwdXRfdCAqb3V0cHV0 KQogewogCWNvbnN0IHVpbnQzMl90ICpmb3JtYXRzOwotCWludCBmb3JtYXRfY291bnQ7Ci0JaW50 IGk7CisJaWd0X3BsYW5lX3QgKnByaW1hcnkgPSAmZGlzcGxheS0+cGlwZXNbcGlwZV0ucGxhbmVz WzBdOworCWludCBmb3JtYXRfY291bnQsIGksIGosIHRlc3RlZCA9IDA7CisKKwlpZ3RfZGlzcGxh eV9yZXNldChkaXNwbGF5KTsKKwlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgcGlwZSk7CiAK IAlpZ3RfZ2V0X2FsbF9jYWlyb19mb3JtYXRzKCZmb3JtYXRzLCAmZm9ybWF0X2NvdW50KTsKIAlm b3IgKGkgPSAwOyBpIDwgZm9ybWF0X2NvdW50OyBpKyspIHsKLQkJaWYgKGlzX2k5MTVfZGV2aWNl KGRybV9mZCkKLQkJICAgICYmIGludGVsX2dlbihpbnRlbF9nZXRfZHJtX2RldmlkKGRybV9mZCkp IDwgNAotCQkgICAgJiYgZm9ybWF0c1tpXSA9PSBEUk1fRk9STUFUX1hSR0IyMTAxMDEwKSB7Ci0J CQlpZ3RfaW5mbygiZ2VuMi8zIGRvbid0IHN1cHBvcnQgMTBicGMsIHNraXBwaW5nXG4iKTsKLQkJ CWNvbnRpbnVlOwotCQl9Ci0KLQkJdGVzdF9mb3JtYXQodGVzdF9uYW1lLAotCQkJICAgIGNjb25m LCAmY2NvbmYtPmNvbm5lY3Rvci0+bW9kZXNbMF0sCi0JCQkgICAgZm9ybWF0c1tpXSwgZmxhZ3Mp OwotCX0KLX0KLQotc3RhdGljIGludCBydW5fdGVzdChjb25zdCBjaGFyICp0ZXN0X25hbWUsIGVu dW0gdGVzdF9mbGFncyBmbGFncykKLXsKLQlpbnQgaTsKLQotCXJlc291cmNlcyA9IGRybU1vZGVH ZXRSZXNvdXJjZXMoZHJtX2ZkKTsKLQlpZ3RfYXNzZXJ0KHJlc291cmNlcyk7Ci0KLQkvKiBGaW5k IGFueSBjb25uZWN0ZWQgZGlzcGxheXMgKi8KLQlmb3IgKGkgPSAwOyBpIDwgcmVzb3VyY2VzLT5j b3VudF9jb25uZWN0b3JzOyBpKyspIHsKLQkJdWludDMyX3QgY29ubmVjdG9yX2lkOwotCQlpbnQg ajsKLQotCQljb25uZWN0b3JfaWQgPSByZXNvdXJjZXMtPmNvbm5lY3RvcnNbaV07Ci0JCWZvciAo aiA9IDA7IGogPCByZXNvdXJjZXMtPmNvdW50X2NydGNzOyBqKyspIHsKLQkJCXN0cnVjdCBrbXN0 ZXN0X2Nvbm5lY3Rvcl9jb25maWcgY2NvbmY7Ci0KLQkJCWlmICgha21zdGVzdF9nZXRfY29ubmVj dG9yX2NvbmZpZyhkcm1fZmQsIGNvbm5lY3Rvcl9pZCwKLQkJCQkJCQkgICAxIDw8IGosICZjY29u ZikpCisJCWZvciAoaiA9IDA7IGogPCBwcmltYXJ5LT5kcm1fcGxhbmUtPmNvdW50X2Zvcm1hdHM7 IGorKykgeworCQkJaWYgKHByaW1hcnktPmRybV9wbGFuZS0+Zm9ybWF0c1tqXSAhPSBmb3JtYXRz W2ldKQogCQkJCWNvbnRpbnVlOwogCi0JCQl0ZXN0X2Nvbm5lY3Rvcih0ZXN0X25hbWUsICZjY29u ZiwgZmxhZ3MpOwotCi0JCQlrbXN0ZXN0X2ZyZWVfY29ubmVjdG9yX2NvbmZpZygmY2NvbmYpOwor CQkJdGVzdF9mb3JtYXQoZGlzcGxheSwgcGlwZSwgb3V0cHV0LAorCQkJCSAgICBwcmltYXJ5LCBm b3JtYXRzW2ldKTsKKwkJCXRlc3RlZCA9IDE7CisJCQlicmVhazsKIAkJfQogCX0KLQotCWRybU1v ZGVGcmVlUmVzb3VyY2VzKHJlc291cmNlcyk7Ci0KLQlyZXR1cm4gMTsKKwlpZ3RfcmVxdWlyZV9m KHRlc3RlZCA+IDAsICJObyB2YWxpZCBmb3JtYXRzIGNvdWxkIGJlIHRlc3RlZFxuIik7CiB9CiAK LWlndF9tYWluCitpZ3Rfc2ltcGxlX21haW4KIHsKLQlzdHJ1Y3QgewotCQllbnVtIHRlc3RfZmxh Z3MgZmxhZ3M7Ci0JCWNvbnN0IGNoYXIgKm5hbWU7Ci0JfSB0ZXN0c1tdID0gewotCQl7IFRFU1Rf RElSRUNUX1JFTkRFUiwJImRpcmVjdC1yZW5kZXIiIH0sCi0JCXsgVEVTVF9HUFVfQkxJVCwJImdw dS1ibGl0IiB9LAotCX07Ci0JaW50IGk7CisJaWd0X2Rpc3BsYXlfdCBkaXNwbGF5OworCWlndF9v dXRwdXRfdCAqb3V0cHV0OworCWVudW0gcGlwZSBwaXBlOwogCiAJaWd0X3NraXBfb25fc2ltdWxh dGlvbigpOwogCi0JaWd0X2ZpeHR1cmUgewotCQlkcm1fZmQgPSBkcm1fb3Blbl9kcml2ZXJfbWFz dGVyKERSSVZFUl9BTlkpOworCWRpc3BsYXkuZHJtX2ZkID0gZHJtX29wZW5fZHJpdmVyX21hc3Rl cihEUklWRVJfQU5ZKTsKIAotCQlrbXN0ZXN0X3NldF92dF9ncmFwaGljc19tb2RlKCk7Ci0JfQor CWttc3Rlc3Rfc2V0X3Z0X2dyYXBoaWNzX21vZGUoKTsKKwlpZ3RfZGlzcGxheV9pbml0KCZkaXNw bGF5LCBkaXNwbGF5LmRybV9mZCk7CisJaWd0X2Rpc3BsYXlfcmVxdWlyZV9vdXRwdXQoJmRpc3Bs YXkpOwogCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUodGVzdHMpOyBpKyspIHsKLQkJaWd0 X3N1YnRlc3QodGVzdHNbaV0ubmFtZSkKLQkJCXJ1bl90ZXN0KHRlc3RzW2ldLm5hbWUsIHRlc3Rz W2ldLmZsYWdzKTsKLQl9CisJZm9yX2VhY2hfcGlwZV93aXRoX3ZhbGlkX291dHB1dCgmZGlzcGxh eSwgcGlwZSwgb3V0cHV0KQorCQl0ZXN0X2Nvbm5lY3RvcigmZGlzcGxheSwgcGlwZSwgb3V0cHV0 KTsKIAotCWlndF9maXh0dXJlCi0JCWNsb3NlKGRybV9mZCk7CisJaWd0X2Rpc3BsYXlfZmluaSgm ZGlzcGxheSk7CisJY2xvc2UoZGlzcGxheS5kcm1fZmQpOwogfQotLSAKMi4xNS4xCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcg bGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK