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 75FFB6E063 for ; Sun, 2 Aug 2020 06:36:30 +0000 (UTC) From: =?UTF-8?q?Zbigniew=20Kempczy=C5=84ski?= Date: Sun, 2 Aug 2020 08:35:54 +0200 Message-Id: <20200802063601.8259-11-zbigniew.kempczynski@intel.com> In-Reply-To: <20200802063601.8259-1-zbigniew.kempczynski@intel.com> References: <20200802063601.8259-1-zbigniew.kempczynski@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v21 10/17] tests/api_intel_bb: add render tests 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: Chris Wilson List-ID: Q2hlY2sgcmVuZGVyIC8gcmVuZGVyLWNjcyB0ZXN0cyB3b3JrcyBmaW5lIG9uIGFsbCBzdXBwb3J0 ZWQgZ2Vucy4KClNpZ25lZC1vZmYtYnk6IFpiaWduaWV3IEtlbXBjennFhHNraSA8emJpZ25pZXcu a2VtcGN6eW5za2lAaW50ZWwuY29tPgpDYzogRG9taW5payBHcnplZ29yemVrIDxkb21pbmlrLmdy emVnb3J6ZWtAaW50ZWwuY29tPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24u Y28udWs+Ci0tLQogdGVzdHMvaTkxNS9hcGlfaW50ZWxfYmIuYyB8IDI1NiArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDI1NSBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9hcGlfaW50ZWxfYmIu YyBiL3Rlc3RzL2k5MTUvYXBpX2ludGVsX2JiLmMKaW5kZXggYTRiNTdiN2MuLjk2MjVjMGJlIDEw MDY0NAotLS0gYS90ZXN0cy9pOTE1L2FwaV9pbnRlbF9iYi5jCisrKyBiL3Rlc3RzL2k5MTUvYXBp X2ludGVsX2JiLmMKQEAgLTMyLDYgKzMyLDggQEAKICNpbmNsdWRlIDxlcnJuby5oPgogI2luY2x1 ZGUgPHN5cy9zdGF0Lmg+CiAjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CisjaW5jbHVkZSA8Z2xpYi5o PgorI2luY2x1ZGUgPHpsaWIuaD4KICNpbmNsdWRlICJpbnRlbF9idWZvcHMuaCIKIAogI2RlZmlu ZSBQQUdFX1NJWkUgNDA5NgpAQCAtNTgsNiArNjAsNyBAQCBlbnVtIG9ial9jYWNoZV9vcHMgewog c3RhdGljIGJvb2wgZGVidWdfYmIgPSBmYWxzZTsKIHN0YXRpYyBib29sIHdyaXRlX3BuZyA9IGZh bHNlOwogc3RhdGljIGJvb2wgYnVmX2luZm8gPSBmYWxzZTsKK3N0YXRpYyBib29sIHByaW50X2Jh c2U2NCA9IGZhbHNlOwogCiBzdGF0aWMgdm9pZCAqYWxsb2NfYWxpZ25lZCh1aW50NjRfdCBzaXpl KQogewpAQCAtNTc1LDYgKzU3OCw1NCBAQCBzdGF0aWMgaW50IGNvbXBhcmVfYnVmcyhzdHJ1Y3Qg aW50ZWxfYnVmICpidWYxLCBzdHJ1Y3QgaW50ZWxfYnVmICpidWYyLAogCXJldHVybiByZXQ7CiB9 CiAKKyNkZWZpbmUgTElORUxFTiA3Ngorc3RhdGljIGludCBkdW1wX2Jhc2U2NChjb25zdCBjaGFy ICpuYW1lLCBzdHJ1Y3QgaW50ZWxfYnVmICpidWYpCit7CisJdm9pZCAqcHRyOworCWludCBmZCwg cmV0OworCXVMb25nZiBvdXRzaXplID0gYnVmLT5zdXJmYWNlWzBdLnNpemUgKiAzIC8gMjsKKwlC eXRlZiAqZGVzdGJ1ZiA9IG1hbGxvYyhvdXRzaXplKTsKKwlnY2hhciAqc3RyLCAqcG9zOworCisJ ZmQgPSBidWZfb3BzX2dldF9mZChidWYtPmJvcHMpOworCisJcHRyID0gZ2VtX21tYXBfX2Rldmlj ZV9jb2hlcmVudChmZCwgYnVmLT5oYW5kbGUsIDAsCisJCQkJCWJ1Zi0+c3VyZmFjZVswXS5zaXpl LCBQUk9UX1JFQUQpOworCisJcmV0ID0gY29tcHJlc3MyKGRlc3RidWYsICZvdXRzaXplLCBwdHIs IGJ1Zi0+c3VyZmFjZVswXS5zaXplLAorCQkJWl9CRVNUX0NPTVBSRVNTSU9OKTsKKwlpZiAocmV0 ICE9IFpfT0spIHsKKwkJaWd0X3dhcm4oImVycm9yIGNvbXByZXNzaW5nLCByZXQ6ICVkXG4iLCBy ZXQpOworCX0gZWxzZSB7CisJCWlndF9pbmZvKCJjb21wcmVzc2VkICV1IC0+ICVsdVxuIiwKKwkJ CSBidWYtPnN1cmZhY2VbMF0uc2l6ZSwgb3V0c2l6ZSk7CisKKwkJaWd0X2luZm8oIi0tLSAlcyAt LS1cbiIsIG5hbWUpOworCQlwb3MgPSBzdHIgPSBnX2Jhc2U2NF9lbmNvZGUoZGVzdGJ1Ziwgb3V0 c2l6ZSk7CisJCW91dHNpemUgPSBzdHJsZW4oc3RyKTsKKwkJd2hpbGUgKHBvcykgeworCQkJY2hh ciBsaW5lW0xJTkVMRU4gKyAxXTsKKwkJCWludCB0b19jb3B5ID0gbWluKExJTkVMRU4sIG91dHNp emUpOworCisJCQltZW1jcHkobGluZSwgcG9zLCB0b19jb3B5KTsKKwkJCWxpbmVbdG9fY29weV0g PSAwOworCQkJaWd0X2luZm8oIiVzXG4iLCBsaW5lKTsKKwkJCXBvcyArPSBMSU5FTEVOOworCQkJ b3V0c2l6ZSAtPSB0b19jb3B5OworCisJCQlpZiAob3V0c2l6ZSA9PSAwKQorCQkJCWJyZWFrOwor CQl9CisJCWZyZWUoc3RyKTsKKwl9CisKKwltdW5tYXAocHRyLCBidWYtPnN1cmZhY2VbMF0uc2l6 ZSk7CisJZnJlZShkZXN0YnVmKTsKKworCXJldHVybiByZXQ7Cit9CisKKwogc3RhdGljIGludCBf X2RvX2ludGVsX2JiX2JsaXQoc3RydWN0IGJ1Zl9vcHMgKmJvcHMsIHVpbnQzMl90IHRpbGluZykK IHsKIAlzdHJ1Y3QgaW50ZWxfYmIgKmliYjsKQEAgLTc1Myw2ICs4MDQsMTgwIEBAIHN0YXRpYyB2 b2lkIGZ1bGxfYmF0Y2goc3RydWN0IGJ1Zl9vcHMgKmJvcHMpCiAJaW50ZWxfYmJfZGVzdHJveShp YmIpOwogfQogCitzdGF0aWMgaW50IHJlbmRlcihzdHJ1Y3QgYnVmX29wcyAqYm9wcywgdWludDMy X3QgdGlsaW5nLCBib29sIGRvX3JlbG9jLAorCQkgIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBo ZWlnaHQpCit7CisJc3RydWN0IGludGVsX2JiICppYmI7CisJc3RydWN0IGludGVsX2J1ZiBzcmMs IGRzdCwgZmluYWw7CisJaW50IGk5MTUgPSBidWZfb3BzX2dldF9mZChib3BzKTsKKwl1aW50MzJf dCBmYWlscyA9IDA7CisJY2hhciBuYW1lWzEyOF07CisJdWludDMyX3QgZGV2aWQgPSBpbnRlbF9n ZXRfZHJtX2RldmlkKGk5MTUpOworCWlndF9yZW5kZXJfY29weWZ1bmNfdCByZW5kZXJfY29weSA9 IE5VTEw7CisKKwlpZ3RfZGVidWcoIiVzKCkgZ2VuOiAlZFxuIiwgX19mdW5jX18sIGludGVsX2dl bihkZXZpZCkpOworCisJLyogRG9uJ3QgdXNlIHJlbG9jYXRpb25zIG9uIGdlbjEyKyAqLworCWln dF9yZXF1aXJlKChkb19yZWxvYyAmJiBpbnRlbF9nZW4oZGV2aWQpIDwgMTIpIHx8CisJCSAgICAh ZG9fcmVsb2MpOworCisJaWYgKGRvX3JlbG9jKQorCQlpYmIgPSBpbnRlbF9iYl9jcmVhdGVfd2l0 aF9yZWxvY3MoaTkxNSwgUEFHRV9TSVpFKTsKKwllbHNlCisJCWliYiA9IGludGVsX2JiX2NyZWF0 ZShpOTE1LCBQQUdFX1NJWkUpOworCisJaWYgKGRlYnVnX2JiKQorCQlpbnRlbF9iYl9zZXRfZGVi dWcoaWJiLCB0cnVlKTsKKworCWlmIChwcmludF9iYXNlNjQpCisJCWludGVsX2JiX3NldF9kdW1w X2Jhc2U2NChpYmIsIHRydWUpOworCisJc2NyYXRjaF9idWZfaW5pdChib3BzLCAmc3JjLCB3aWR0 aCwgaGVpZ2h0LCBJOTE1X1RJTElOR19OT05FLAorCQkJIEk5MTVfQ09NUFJFU1NJT05fTk9ORSk7 CisJc2NyYXRjaF9idWZfaW5pdChib3BzLCAmZHN0LCB3aWR0aCwgaGVpZ2h0LCB0aWxpbmcsCisJ CQkgSTkxNV9DT01QUkVTU0lPTl9OT05FKTsKKwlzY3JhdGNoX2J1Zl9pbml0KGJvcHMsICZmaW5h bCwgd2lkdGgsIGhlaWdodCwgSTkxNV9USUxJTkdfTk9ORSwKKwkJCSBJOTE1X0NPTVBSRVNTSU9O X05PTkUpOworCisJc2NyYXRjaF9idWZfZHJhd19wYXR0ZXJuKGJvcHMsICZzcmMsCisJCQkJIDAs IDAsIHdpZHRoLCBoZWlnaHQsCisJCQkJIDAsIDAsIHdpZHRoLCBoZWlnaHQsIDApOworCisJcmVu ZGVyX2NvcHkgPSBpZ3RfZ2V0X3JlbmRlcl9jb3B5ZnVuYyhkZXZpZCk7CisJaWd0X2Fzc2VydChy ZW5kZXJfY29weSk7CisKKwlyZW5kZXJfY29weShpYmIsIDAsCisJCSAgICAmc3JjLAorCQkgICAg MCwgMCwgd2lkdGgsIGhlaWdodCwKKwkJICAgICZkc3QsCisJCSAgICAwLCAwKTsKKworCXJlbmRl cl9jb3B5KGliYiwgMCwKKwkJICAgICZkc3QsCisJCSAgICAwLCAwLCB3aWR0aCwgaGVpZ2h0LAor CQkgICAgJmZpbmFsLAorCQkgICAgMCwgMCk7CisKKwlpbnRlbF9iYl9zeW5jKGliYik7CisJaW50 ZWxfYmJfZGVzdHJveShpYmIpOworCisJaWYgKHdyaXRlX3BuZykgeworCQlzbnByaW50ZihuYW1l LCBzaXplb2YobmFtZSkgLSAxLAorCQkJICJyZW5kZXJfZHN0X3RpbGluZ18lZC5wbmciLCB0aWxp bmcpOworCQlpbnRlbF9idWZfd3JpdGVfdG9fcG5nKCZzcmMsICJyZW5kZXJfc3JjX3RpbGluZ19u b25lLnBuZyIpOworCQlpbnRlbF9idWZfd3JpdGVfdG9fcG5nKCZkc3QsIG5hbWUpOworCQlpbnRl bF9idWZfd3JpdGVfdG9fcG5nKCZmaW5hbCwgInJlbmRlcl9maW5hbF90aWxpbmdfbm9uZS5wbmci KTsKKwl9CisKKwkvKiBXZSdsbCBmYWlsIG9uIHNyYyA8LT4gZmluYWwgY29tcGFyZSBzbyBqdXN0 IHdhcm4gKi8KKwlpZiAodGlsaW5nID09IEk5MTVfVElMSU5HX05PTkUpIHsKKwkJaWYgKGNvbXBh cmVfYnVmcygmc3JjLCAmZHN0LCBmYWxzZSkgPiAwKQorCQkJaWd0X3dhcm4oIiVzOiBub25lLT5u b25lIGZhaWxlZCFcbiIsIF9fZnVuY19fKTsKKwl9IGVsc2UgeworCQlpZiAoY29tcGFyZV9idWZz KCZzcmMsICZkc3QsIGZhbHNlKSA9PSAwKQorCQkJaWd0X3dhcm4oIiVzOiBub25lLT50aWxlZCBm YWlsZWQhXG4iLCBfX2Z1bmNfXyk7CisJfQorCisJZmFpbHMgPSBjb21wYXJlX2J1ZnMoJnNyYywg JmZpbmFsLCB0cnVlKTsKKworCWlmIChmYWlscyAmJiBwcmludF9iYXNlNjQpIHsKKwkJZHVtcF9i YXNlNjQoInNyYyIsICZzcmMpOworCQlkdW1wX2Jhc2U2NCgiZHN0IiwgJmRzdCk7CisJCWR1bXBf YmFzZTY0KCJmaW5hbCIsICZmaW5hbCk7CisJfQorCisJaW50ZWxfYnVmX2Nsb3NlKGJvcHMsICZz cmMpOworCWludGVsX2J1Zl9jbG9zZShib3BzLCAmZHN0KTsKKwlpbnRlbF9idWZfY2xvc2UoYm9w cywgJmZpbmFsKTsKKworCWlndF9hc3NlcnRfZihmYWlscyA9PSAwLCAiJXM6ICh0aWxpbmc6ICVk KSBmYWlsczogJWRcbiIsCisJCSAgICAgX19mdW5jX18sIHRpbGluZywgZmFpbHMpOworCisJcmV0 dXJuIGZhaWxzOworfQorCitzdGF0aWMgdWludDMyX3QgY291bnRfY29tcHJlc3NlZChpbnQgZ2Vu LCBzdHJ1Y3QgaW50ZWxfYnVmICpidWYpCit7CisJaW50IGNjc19zaXplID0gaW50ZWxfYnVmX2Nj c193aWR0aChnZW4sIGJ1ZikgKiBpbnRlbF9idWZfY2NzX2hlaWdodChnZW4sIGJ1Zik7CisJdWlu dDhfdCAqcHRyID0gaW50ZWxfYnVmX2RldmljZV9tYXAoYnVmLCBmYWxzZSk7CisJdWludDMyX3Qg Y29tcHJlc3NlZCA9IDA7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgY2NzX3NpemU7IGkr KykKKwkJaWYgKHB0cltidWYtPmNjc1swXS5vZmZzZXQgKyBpXSkKKwkJCWNvbXByZXNzZWQrKzsK KworCWludGVsX2J1Zl91bm1hcChidWYpOworCisJcmV0dXJuIGNvbXByZXNzZWQ7Cit9CisKKyNk ZWZpbmUgSU1HU0laRSAoNTEyICogNTEyICogNCkKKyNkZWZpbmUgQ0NTSU1HU0laRSAoSU1HU0la RSArIDQwOTYpCitzdGF0aWMgdm9pZCByZW5kZXJfY2NzKHN0cnVjdCBidWZfb3BzICpib3BzKQor eworCXN0cnVjdCBpbnRlbF9iYiAqaWJiOworCWNvbnN0IGludCB3aWR0aCA9IDEwMjQ7CisJY29u c3QgaW50IGhlaWdodCA9IDEwMjQ7CisJc3RydWN0IGludGVsX2J1ZiBzcmMsIGRzdCwgZmluYWw7 CisJaW50IGk5MTUgPSBidWZfb3BzX2dldF9mZChib3BzKTsKKwl1aW50MzJfdCBmYWlscyA9IDA7 CisJdWludDMyX3QgY29tcHJlc3NlZCA9IDA7CisJdWludDMyX3QgZGV2aWQgPSBpbnRlbF9nZXRf ZHJtX2RldmlkKGk5MTUpOworCWlndF9yZW5kZXJfY29weWZ1bmNfdCByZW5kZXJfY29weSA9IE5V TEw7CisKKwlpYmIgPSBpbnRlbF9iYl9jcmVhdGUoaTkxNSwgUEFHRV9TSVpFKTsKKwlpZiAoZGVi dWdfYmIpCisJCWludGVsX2JiX3NldF9kZWJ1ZyhpYmIsIHRydWUpOworCisJc2NyYXRjaF9idWZf aW5pdChib3BzLCAmc3JjLCB3aWR0aCwgaGVpZ2h0LCBJOTE1X1RJTElOR19OT05FLAorCQkJIEk5 MTVfQ09NUFJFU1NJT05fTk9ORSk7CisJc2NyYXRjaF9idWZfaW5pdChib3BzLCAmZHN0LCB3aWR0 aCwgaGVpZ2h0LCBJOTE1X1RJTElOR19ZLAorCQkJIEk5MTVfQ09NUFJFU1NJT05fUkVOREVSKTsK KwlzY3JhdGNoX2J1Zl9pbml0KGJvcHMsICZmaW5hbCwgd2lkdGgsIGhlaWdodCwgSTkxNV9USUxJ TkdfTk9ORSwKKwkJCSBJOTE1X0NPTVBSRVNTSU9OX05PTkUpOworCisJcmVuZGVyX2NvcHkgPSBp Z3RfZ2V0X3JlbmRlcl9jb3B5ZnVuYyhkZXZpZCk7CisJaWd0X2Fzc2VydChyZW5kZXJfY29weSk7 CisKKwlzY3JhdGNoX2J1Zl9kcmF3X3BhdHRlcm4oYm9wcywgJnNyYywKKwkJCQkgMCwgMCwgd2lk dGgsIGhlaWdodCwKKwkJCQkgMCwgMCwgd2lkdGgsIGhlaWdodCwgMCk7CisKKwlyZW5kZXJfY29w eShpYmIsIDAsCisJCSAgICAmc3JjLAorCQkgICAgMCwgMCwgd2lkdGgsIGhlaWdodCwKKwkJICAg ICZkc3QsCisJCSAgICAwLCAwKTsKKworCXJlbmRlcl9jb3B5KGliYiwgMCwKKwkJICAgICZkc3Qs CisJCSAgICAwLCAwLCB3aWR0aCwgaGVpZ2h0LAorCQkgICAgJmZpbmFsLAorCQkgICAgMCwgMCk7 CisKKwlpbnRlbF9iYl9zeW5jKGliYik7CisJaW50ZWxfYmJfZGVzdHJveShpYmIpOworCisJZmFp bHMgPSBjb21wYXJlX2J1ZnMoJnNyYywgJmZpbmFsLCB0cnVlKTsKKwljb21wcmVzc2VkID0gY291 bnRfY29tcHJlc3NlZChpYmItPmdlbiwgJmRzdCk7CisKKwlpZ3RfZGVidWcoImZhaWxzOiAldSwg Y29tcHJlc3NlZDogJXVcbiIsIGZhaWxzLCBjb21wcmVzc2VkKTsKKworCWlmICh3cml0ZV9wbmcp IHsKKwkJaW50ZWxfYnVmX3dyaXRlX3RvX3BuZygmc3JjLCAicmVuZGVyLWNjcy1zcmMucG5nIik7 CisJCWludGVsX2J1Zl93cml0ZV90b19wbmcoJmRzdCwgInJlbmRlci1jY3MtZHN0LnBuZyIpOwor CQlpbnRlbF9idWZfd3JpdGVfYXV4X3RvX3BuZygmZHN0LCAicmVuZGVyLWNjcy1kc3QtYXV4LnBu ZyIpOworCQlpbnRlbF9idWZfd3JpdGVfdG9fcG5nKCZmaW5hbCwgInJlbmRlci1jY3MtZmluYWwu cG5nIik7CisJfQorCisJaW50ZWxfYnVmX2Nsb3NlKGJvcHMsICZzcmMpOworCWludGVsX2J1Zl9j bG9zZShib3BzLCAmZHN0KTsKKwlpbnRlbF9idWZfY2xvc2UoYm9wcywgJmZpbmFsKTsKKworCWln dF9hc3NlcnRfZihmYWlscyA9PSAwLCAicmVuZGVyLWNjcyBmYWlsczogJWRcbiIsIGZhaWxzKTsK K30KKwogc3RhdGljIGludCBvcHRfaGFuZGxlcihpbnQgb3B0LCBpbnQgb3B0X2luZGV4LCB2b2lk ICpkYXRhKQogewogCXN3aXRjaCAob3B0KSB7CkBAIC03NjUsNiArOTkwLDkgQEAgc3RhdGljIGlu dCBvcHRfaGFuZGxlcihpbnQgb3B0LCBpbnQgb3B0X2luZGV4LCB2b2lkICpkYXRhKQogCWNhc2Ug J2knOgogCQlidWZfaW5mbyA9IHRydWU7CiAJCWJyZWFrOworCWNhc2UgJ2InOgorCQlwcmludF9i YXNlNjQgPSB0cnVlOworCQlicmVhazsKIAlkZWZhdWx0OgogCQlyZXR1cm4gSUdUX09QVF9IQU5E TEVSX0VSUk9SOwogCX0KQEAgLTc3NiwxMiArMTAwNCwxNCBAQCBjb25zdCBjaGFyICpoZWxwX3N0 ciA9CiAJIiAgLWRcdERlYnVnIGJiXG4iCiAJIiAgLXBcdFdyaXRlIHN1cmZhY2VzIHRvIHBuZ1xu IgogCSIgIC1pXHRQcmludCBidWZmZXIgaW5mb1xuIgorCSIgIC1iXHREdW1wIHRvIGJhc2U2NCAo YmIgYW5kIGltYWdlcylcbiIKIAk7CiAKLWlndF9tYWluX2FyZ3MoImRwaSIsIE5VTEwsIGhlbHBf c3RyLCBvcHRfaGFuZGxlciwgTlVMTCkKK2lndF9tYWluX2FyZ3MoImRwaWIiLCBOVUxMLCBoZWxw X3N0ciwgb3B0X2hhbmRsZXIsIE5VTEwpCiB7CiAJaW50IGk5MTU7CiAJc3RydWN0IGJ1Zl9vcHMg KmJvcHM7CisJdWludDMyX3Qgd2lkdGg7CiAKIAlpZ3RfZml4dHVyZSB7CiAJCWk5MTUgPSBkcm1f b3Blbl9kcml2ZXIoRFJJVkVSX0lOVEVMKTsKQEAgLTgyOSw2ICsxMDU5LDMwIEBAIGlndF9tYWlu X2FyZ3MoImRwaSIsIE5VTEwsIGhlbHBfc3RyLCBvcHRfaGFuZGxlciwgTlVMTCkKIAlpZ3Rfc3Vi dGVzdCgiZnVsbC1iYXRjaCIpCiAJCWZ1bGxfYmF0Y2goYm9wcyk7CiAKKwlmb3IgKHdpZHRoID0g NTEyOyB3aWR0aCA8PSAxMDI0OyB3aWR0aCArPSA1MTIpIHsKKwkJaWd0X3N1YnRlc3RfZigicmVu ZGVyLW5vbmUtJXUiLCB3aWR0aCkgeworCQkJcmVuZGVyKGJvcHMsIEk5MTVfVElMSU5HX05PTkUs IGZhbHNlLCB3aWR0aCwgd2lkdGgpOworCQl9CisJCWlndF9zdWJ0ZXN0X2YoInJlbmRlci14LSV1 Iiwgd2lkdGgpIHsKKwkJCXJlbmRlcihib3BzLCBJOTE1X1RJTElOR19YLCBmYWxzZSwgd2lkdGgs IHdpZHRoKTsKKwkJfQorCQlpZ3Rfc3VidGVzdF9mKCJyZW5kZXIteS0ldSIsIHdpZHRoKSB7CisJ CQlyZW5kZXIoYm9wcywgSTkxNV9USUxJTkdfWSwgZmFsc2UsIHdpZHRoLCB3aWR0aCk7CisJCX0K KwkJaWd0X3N1YnRlc3RfZigicmVuZGVyLW5vbmUtcmVsb2MtJXUiLCB3aWR0aCkgeworCQkJcmVu ZGVyKGJvcHMsIEk5MTVfVElMSU5HX05PTkUsIHRydWUsIHdpZHRoLCB3aWR0aCk7CisJCX0KKwkJ aWd0X3N1YnRlc3RfZigicmVuZGVyLXgtcmVsb2MtJXUiLCB3aWR0aCkgeworCQkJcmVuZGVyKGJv cHMsIEk5MTVfVElMSU5HX1gsIHRydWUsIHdpZHRoLCB3aWR0aCk7CisJCX0KKwkJaWd0X3N1YnRl c3RfZigicmVuZGVyLXktcmVsb2MtJXUiLCB3aWR0aCkgeworCQkJcmVuZGVyKGJvcHMsIEk5MTVf VElMSU5HX1ksIHRydWUsIHdpZHRoLCB3aWR0aCk7CisJCX0KKwl9CisKKwlpZ3Rfc3VidGVzdCgi cmVuZGVyLWNjcyIpCisJCXJlbmRlcl9jY3MoYm9wcyk7CisKIAlpZ3RfZml4dHVyZSB7CiAJCWJ1 Zl9vcHNfZGVzdHJveShib3BzKTsKIAkJY2xvc2UoaTkxNSk7Ci0tIAoyLjI2LjAKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBs aXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=