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 1D4476E35F for ; Wed, 19 Jun 2019 11:51:26 +0000 (UTC) From: Petri Latvala Date: Wed, 19 Jun 2019 14:51:02 +0300 Message-Id: <20190619115107.2908-2-petri.latvala@intel.com> In-Reply-To: <20190619115107.2908-1-petri.latvala@intel.com> References: <20190619115107.2908-1-petri.latvala@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 1/6] lib: Introduce dynamic subtests 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: Petri Latvala List-ID: RHluYW1pYyBzdWJ0ZXN0cywgb3Igc3VidGVzdHMgb2Ygc3VidGVzdHMsIGFyZSBpbmRpdmlkdWFs IHBpZWNlcyBvZgp0ZXN0cyB0aGF0IGFyZSBub3Qgc3RhdGljYWxseSBhdmFpbGFibGUgYWxsIHRo ZSB0aW1lLgoKQSBnb29kIGV4YW1wbGUgb2YgYSBuZWVkIGZvciBhIGR5bmFtaWMgc3VidGVzdCBp cyBpOTE1IGVuZ2luZSBsaXN0aW5nOgpBIG5vcm1hbCBzdWJ0ZXN0IGZvciBlYWNoIGVuZ2luZSBj bGFzcyAoImJzZCIpLCBhbmQgYSBkeW5hbWljIHN1YnRlc3QKZm9yIGVhY2ggaW5zdGFuY2UgKCJi c2QwIiwgImJzZDIiLCBldGMpLiBPciBhIG5vcm1hbCBzdWJ0ZXN0IGZvciBhbgpvcGVyYXRpb24g d2l0aCBhIGR5bmFtaWMgc3VidGVzdCBmb3IgZXZlcnkgZW5naW5lIHRoZXJlIGlzLgoKQW5vdGhl ciBleGFtcGxlIGlzIGEgZHluYW1pYyBzdWJ0ZXN0IGZvciBwaXBlczogSW5zdGVhZCBvZiB1c2lu Zwpmb3JlYWNoX3BpcGVfc3RhdGljLCBtYWtlIG9uZSBzdWJ0ZXN0IGFuZCB1c2UgZm9yZWFjaF9w aXBlIHdpdGgKZHluYW1pYyBzdWJ0ZXN0cyBmb3IgZWFjaCBwaXBlLgoKU2lnbmVkLW9mZi1ieTog UGV0cmkgTGF0dmFsYSA8cGV0cmkubGF0dmFsYUBpbnRlbC5jb20+Ci0tLQogbGliL2lndF9jb3Jl LmMgfCAxMTkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LQogbGliL2lndF9jb3JlLmggfCAgODkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCiAyIGZpbGVzIGNoYW5nZWQsIDE5NyBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9saWIvaWd0X2NvcmUuYyBiL2xpYi9pZ3RfY29yZS5jCmluZGV4IDZiOWYw NDI1Li45MzdjMjQ5MCAxMDA2NDQKLS0tIGEvbGliL2lndF9jb3JlLmMKKysrIGIvbGliL2lndF9j b3JlLmMKQEAgLTI2MCw5ICsyNjAsMTIgQEAgY29uc3QgY2hhciAqaWd0X2ludGVyYWN0aXZlX2Rl YnVnOwogLyogc3VidGVzdHMgaGVscGVycyAqLwogc3RhdGljIGJvb2wgbGlzdF9zdWJ0ZXN0cyA9 IGZhbHNlOwogc3RhdGljIGNoYXIgKnJ1bl9zaW5nbGVfc3VidGVzdCA9IE5VTEw7CitzdGF0aWMg Y2hhciAqcnVuX3NpbmdsZV9keW5hbWljX3N1YnRlc3QgPSBOVUxMOwogc3RhdGljIGJvb2wgcnVu X3NpbmdsZV9zdWJ0ZXN0X2ZvdW5kID0gZmFsc2U7CiBzdGF0aWMgY29uc3QgY2hhciAqaW5fc3Vi dGVzdCA9IE5VTEw7CitzdGF0aWMgY29uc3QgY2hhciAqaW5fZHluYW1pY19zdWJ0ZXN0ID0gTlVM TDsKIHN0YXRpYyBzdHJ1Y3QgdGltZXNwZWMgc3VidGVzdF90aW1lOworc3RhdGljIHN0cnVjdCB0 aW1lc3BlYyBkeW5hbWljX3N1YnRlc3RfdGltZTsKIHN0YXRpYyBjbG9ja2lkX3QgaWd0X2Nsb2Nr ID0gKGNsb2NraWRfdCktMTsKIHN0YXRpYyBib29sIGluX2ZpeHR1cmUgPSBmYWxzZTsKIHN0YXRp YyBib29sIHRlc3Rfd2l0aF9zdWJ0ZXN0cyA9IGZhbHNlOwpAQCAtMjg2LDYgKzI4OSw3IEBAIGVu dW0gewogCSAqLwogCU9QVF9MSVNUX1NVQlRFU1RTID0gNTAwLAogCU9QVF9SVU5fU1VCVEVTVCwK KwlPUFRfUlVOX0RZTkFNSUNfU1VCVEVTVCwKIAlPUFRfREVTQ1JJUFRJT04sCiAJT1BUX0RFQlVH LAogCU9QVF9JTlRFUkFDVElWRV9ERUJVRywKQEAgLTMwOCw2ICszMTIsOCBAQCBjaGFyICppZ3Rf ZnJhbWVfZHVtcF9wYXRoOwogCiBzdGF0aWMgYm9vbCBzdGRlcnJfbmVlZHNfc2VudGluZWwgPSBm YWxzZTsKIAorc3RhdGljIGludCBfaWd0X2R5bmFtaWNfdGVzdHNfZXhlY3V0ZWQgPSAtMTsKKwog Y29uc3QgY2hhciAqaWd0X3Rlc3RfbmFtZSh2b2lkKQogewogCXJldHVybiBjb21tYW5kX3N0cjsK QEAgLTMzOSw3ICszNDUsOSBAQCBzdGF0aWMgdm9pZCBfaWd0X2xvZ19idWZmZXJfZHVtcCh2b2lk KQogewogCXVpbnQ4X3QgaTsKIAotCWlmIChpbl9zdWJ0ZXN0KQorCWlmIChpbl9keW5hbWljX3N1 YnRlc3QpCisJCWZwcmludGYoc3RkZXJyLCAiRHluYW1pYyBzdWJ0ZXN0ICVzIGZhaWxlZC5cbiIs IGluX2R5bmFtaWNfc3VidGVzdCk7CisJZWxzZSBpZiAoaW5fc3VidGVzdCkKIAkJZnByaW50Zihz dGRlcnIsICJTdWJ0ZXN0ICVzIGZhaWxlZC5cbiIsIGluX3N1YnRlc3QpOwogCWVsc2UKIAkJZnBy aW50ZihzdGRlcnIsICJUZXN0ICVzIGZhaWxlZC5cbiIsIGNvbW1hbmRfc3RyKTsKQEAgLTU1NSw2 ICs1NjMsNyBAQCBzdGF0aWMgdm9pZCBwcmludF91c2FnZShjb25zdCBjaGFyICpoZWxwX3N0ciwg Ym9vbCBvdXRwdXRfb25fc3RkZXJyKQogCWZwcmludGYoZiwgIlVzYWdlOiAlcyBbT1BUSU9OU11c biIsIGNvbW1hbmRfc3RyKTsKIAlmcHJpbnRmKGYsICIgIC0tbGlzdC1zdWJ0ZXN0c1xuIgogCQkg ICAiICAtLXJ1bi1zdWJ0ZXN0IDxwYXR0ZXJuPlxuIgorCQkgICAiICAtLWR5bmFtaWMtc3VidGVz dCA8cGF0dGVybj5cbiIKIAkJICAgIiAgLS1kZWJ1Z1s9bG9nLWRvbWFpbl1cbiIKIAkJICAgIiAg LS1pbnRlcmFjdGl2ZS1kZWJ1Z1s9ZG9tYWluXVxuIgogCQkgICAiICAtLWhlbHAtZGVzY3JpcHRp b25cbiIKQEAgLTY3Miw2ICs2ODEsNyBAQCBzdGF0aWMgaW50IGNvbW1vbl9pbml0KGludCAqYXJn YywgY2hhciAqKmFyZ3YsCiAJc3RhdGljIHN0cnVjdCBvcHRpb24gbG9uZ19vcHRpb25zW10gPSB7 CiAJCXsibGlzdC1zdWJ0ZXN0cyIsICAgICBub19hcmd1bWVudCwgICAgICAgTlVMTCwgT1BUX0xJ U1RfU1VCVEVTVFN9LAogCQl7InJ1bi1zdWJ0ZXN0IiwgICAgICAgcmVxdWlyZWRfYXJndW1lbnQs IE5VTEwsIE9QVF9SVU5fU1VCVEVTVH0sCisJCXsiZHluYW1pYy1zdWJ0ZXN0IiwgICByZXF1aXJl ZF9hcmd1bWVudCwgTlVMTCwgT1BUX1JVTl9EWU5BTUlDX1NVQlRFU1R9LAogCQl7ImhlbHAtZGVz Y3JpcHRpb24iLCAgbm9fYXJndW1lbnQsICAgICAgIE5VTEwsIE9QVF9ERVNDUklQVElPTn0sCiAJ CXsiZGVidWciLCAgICAgICAgICAgICBvcHRpb25hbF9hcmd1bWVudCwgTlVMTCwgT1BUX0RFQlVH fSwKIAkJeyJpbnRlcmFjdGl2ZS1kZWJ1ZyIsIG9wdGlvbmFsX2FyZ3VtZW50LCBOVUxMLCBPUFRf SU5URVJBQ1RJVkVfREVCVUd9LApAQCAtNzgyLDYgKzc5MiwxMSBAQCBzdGF0aWMgaW50IGNvbW1v bl9pbml0KGludCAqYXJnYywgY2hhciAqKmFyZ3YsCiAJCQlpZiAoIWxpc3Rfc3VidGVzdHMpCiAJ CQkJcnVuX3NpbmdsZV9zdWJ0ZXN0ID0gc3RyZHVwKG9wdGFyZyk7CiAJCQlicmVhazsKKwkJY2Fz ZSBPUFRfUlVOX0RZTkFNSUNfU1VCVEVTVDoKKwkJCWFzc2VydChvcHRhcmcpOworCQkJaWYgKCFs aXN0X3N1YnRlc3RzKQorCQkJCXJ1bl9zaW5nbGVfZHluYW1pY19zdWJ0ZXN0ID0gc3RyZHVwKG9w dGFyZyk7CisJCQlicmVhazsKIAkJY2FzZSBPUFRfREVTQ1JJUFRJT046CiAJCQlwcmludF90ZXN0 X2Rlc2NyaXB0aW9uKCk7CiAJCQlyZXQgPSAtMTsKQEAgLTk5Miw2ICsxMDA3LDQxIEBAIGJvb2wg X19pZ3RfcnVuX3N1YnRlc3QoY29uc3QgY2hhciAqc3VidGVzdF9uYW1lKQogCXJldHVybiAoaW5f c3VidGVzdCA9IHN1YnRlc3RfbmFtZSk7CiB9CiAKK2Jvb2wgX19pZ3RfcnVuX2R5bmFtaWNfc3Vi dGVzdChjb25zdCBjaGFyICpkeW5hbWljX3N1YnRlc3RfbmFtZSkKK3sKKwlpbnQgaTsKKworCWFz c2VydChpbl9zdWJ0ZXN0KTsKKwlhc3NlcnQoX2lndF9keW5hbWljX3Rlc3RzX2V4ZWN1dGVkID49 IDApOworCisJLyogY2hlY2sgdGhlIGR5bmFtaWNfc3VidGVzdCBuYW1lIG9ubHkgY29udGFpbnMg YS16LCBBLVosIDAtOSwgJy0nIGFuZCAnXycgKi8KKwlmb3IgKGkgPSAwOyBkeW5hbWljX3N1YnRl c3RfbmFtZVtpXSAhPSAnXDAnOyBpKyspCisJCWlmIChkeW5hbWljX3N1YnRlc3RfbmFtZVtpXSAh PSAnXycgJiYgZHluYW1pY19zdWJ0ZXN0X25hbWVbaV0gIT0gJy0nCisJCSAgICAmJiAhaXNhbG51 bShkeW5hbWljX3N1YnRlc3RfbmFtZVtpXSkpIHsKKwkJCWlndF9jcml0aWNhbCgiSW52YWxpZCBk eW5hbWljIHN1YnRlc3QgbmFtZSBcIiVzXCIuXG4iLAorCQkJCSAgICAgZHluYW1pY19zdWJ0ZXN0 X25hbWUpOworCQkJaWd0X2V4aXQoKTsKKwkJfQorCisJaWYgKHJ1bl9zaW5nbGVfZHluYW1pY19z dWJ0ZXN0ICYmCisJICAgIHV3aWxkbWF0KGR5bmFtaWNfc3VidGVzdF9uYW1lLCBydW5fc2luZ2xl X2R5bmFtaWNfc3VidGVzdCkgPT0gMCkKKwkJcmV0dXJuIGZhbHNlOworCisJaWd0X2ttc2coS01T R19JTkZPICIlczogc3RhcnRpbmcgZHluYW1pYyBzdWJ0ZXN0ICVzXG4iLAorCQkgY29tbWFuZF9z dHIsIGR5bmFtaWNfc3VidGVzdF9uYW1lKTsKKwlpZ3RfaW5mbygiU3RhcnRpbmcgZHluYW1pYyBz dWJ0ZXN0OiAlc1xuIiwgZHluYW1pY19zdWJ0ZXN0X25hbWUpOworCWZmbHVzaChzdGRvdXQpOwor CWlmIChzdGRlcnJfbmVlZHNfc2VudGluZWwpCisJCWZwcmludGYoc3RkZXJyLCAiU3RhcnRpbmcg ZHluYW1pYyBzdWJ0ZXN0OiAlc1xuIiwgZHluYW1pY19zdWJ0ZXN0X25hbWUpOworCisJX2lndF9s b2dfYnVmZmVyX3Jlc2V0KCk7CisKKwlfaWd0X2R5bmFtaWNfdGVzdHNfZXhlY3V0ZWQrKzsKKwor CWlndF9nZXR0aW1lKCZkeW5hbWljX3N1YnRlc3RfdGltZSk7CisJcmV0dXJuIChpbl9keW5hbWlj X3N1YnRlc3QgPSBkeW5hbWljX3N1YnRlc3RfbmFtZSk7Cit9CisKIC8qKgogICogaWd0X3N1YnRl c3RfbmFtZToKICAqCkBAIC0xMDI5LDI2ICsxMDc5LDUwIEBAIHZvaWQgX19pZ3Rfc3VidGVzdF9n cm91cF9yZXN0b3JlKGludCBzYXZlKQogc3RhdGljIGJvb2wgc2tpcHBlZF9vbmUgPSBmYWxzZTsK IHN0YXRpYyBib29sIHN1Y2NlZWRlZF9vbmUgPSBmYWxzZTsKIHN0YXRpYyBib29sIGZhaWxlZF9v bmUgPSBmYWxzZTsKK3N0YXRpYyBib29sIGR5bmFtaWNfZmFpbGVkX29uZSA9IGZhbHNlOworCiti b29sIF9faWd0X2VudGVyX2R5bmFtaWNfY29udGFpbmVyKHZvaWQpCit7CisJX2lndF9keW5hbWlj X3Rlc3RzX2V4ZWN1dGVkID0gMDsKKwlkeW5hbWljX2ZhaWxlZF9vbmUgPSBmYWxzZTsKKworCXJl dHVybiB0cnVlOworfQogCiBzdGF0aWMgdm9pZCBleGl0X3N1YnRlc3QoY29uc3QgY2hhciAqKSBf X2F0dHJpYnV0ZV9fKChub3JldHVybikpOwogc3RhdGljIHZvaWQgZXhpdF9zdWJ0ZXN0KGNvbnN0 IGNoYXIgKnJlc3VsdCkKIHsKIAlzdHJ1Y3QgdGltZXNwZWMgbm93OworCWNvbnN0IGNoYXIgKnN1 YnRlc3RfdGV4dCA9IGluX2R5bmFtaWNfc3VidGVzdCA/ICJEeW5hbWljIHN1YnRlc3QiIDogIlN1 YnRlc3QiOworCWNvbnN0IGNoYXIgKipzdWJ0ZXN0X25hbWUgPSBpbl9keW5hbWljX3N1YnRlc3Qg PyAmaW5fZHluYW1pY19zdWJ0ZXN0IDogJmluX3N1YnRlc3Q7CisJc3RydWN0IHRpbWVzcGVjICp0 aGVudGltZSA9IGluX2R5bmFtaWNfc3VidGVzdCA/ICZkeW5hbWljX3N1YnRlc3RfdGltZSA6ICZz dWJ0ZXN0X3RpbWU7CisJam1wX2J1ZiAqam1wdGFyZ2V0ID0gaW5fZHluYW1pY19zdWJ0ZXN0ID8g JmlndF9keW5hbWljX3N1YnRlc3Rfam1wYnVmIDogJmlndF9zdWJ0ZXN0X2ptcGJ1ZjsKIAogCWln dF9nZXR0aW1lKCZub3cpOwotCWlndF9pbmZvKCIlc1N1YnRlc3QgJXM6ICVzICglLjNmcyklc1xu IiwKKworCWlndF9pbmZvKCIlcyVzICVzOiAlcyAoJS4zZnMpJXNcbiIsCiAJCSAoIV9faWd0X3Bs YWluX291dHB1dCkgPyAiXHgxYlsxbSIgOiAiIiwKLQkJIGluX3N1YnRlc3QsIHJlc3VsdCwgaWd0 X3RpbWVfZWxhcHNlZCgmc3VidGVzdF90aW1lLCAmbm93KSwKKwkJIHN1YnRlc3RfdGV4dCwgKnN1 YnRlc3RfbmFtZSwgcmVzdWx0LAorCQkgaWd0X3RpbWVfZWxhcHNlZCh0aGVudGltZSwgJm5vdyks CiAJCSAoIV9faWd0X3BsYWluX291dHB1dCkgPyAiXHgxYlswbSIgOiAiIik7CiAJZmZsdXNoKHN0 ZG91dCk7CiAJaWYgKHN0ZGVycl9uZWVkc19zZW50aW5lbCkKLQkJZnByaW50ZihzdGRlcnIsICJT dWJ0ZXN0ICVzOiAlcyAoJS4zZnMpXG4iLAotCQkJaW5fc3VidGVzdCwgcmVzdWx0LCBpZ3RfdGlt ZV9lbGFwc2VkKCZzdWJ0ZXN0X3RpbWUsICZub3cpKTsKKwkJZnByaW50ZihzdGRlcnIsICIlcyAl czogJXMgKCUuM2ZzKVxuIiwKKwkJCXN1YnRlc3RfdGV4dCwgKnN1YnRlc3RfbmFtZSwKKwkJCXJl c3VsdCwgaWd0X3RpbWVfZWxhcHNlZCh0aGVudGltZSwgJm5vdykpOwogCiAJaWd0X3Rlcm1pbmF0 ZV9zcGlucygpOwogCi0JaW5fc3VidGVzdCA9IE5VTEw7Ci0Jc2lnbG9uZ2ptcChpZ3Rfc3VidGVz dF9qbXBidWYsIDEpOworCWlmICghaW5fZHluYW1pY19zdWJ0ZXN0KQorCQlfaWd0X2R5bmFtaWNf dGVzdHNfZXhlY3V0ZWQgPSAtMTsKKworCS8qIERvbid0IGtlZXAgdGhlIGFib3ZlIHRleHQgaW4g dGhlIGxvZywgdGhlIGNvbnRhaW5lciB3b3VsZCBwcmludCBpdCBhZ2FpbiBvdGhlcndpc2UgKi8K KwlpZiAoaW5fZHluYW1pY19zdWJ0ZXN0KQorCQlfaWd0X2xvZ19idWZmZXJfcmVzZXQoKTsKKwor CSpzdWJ0ZXN0X25hbWUgPSBOVUxMOworCisJc2lnbG9uZ2ptcCgqam1wdGFyZ2V0LCAxKTsKIH0K IAogLyoqCkBAIC0xMDc5LDYgKzExNTMsNyBAQCB2b2lkIGlndF9za2lwKGNvbnN0IGNoYXIgKmYs IC4uLikKIAl9CiAKIAlpZiAoaW5fc3VidGVzdCkgeworCQkvKiBEb2luZyB0aGUgc2FtZSBldmVu IGlmIGluc2lkZSBhIGR5bmFtaWMgc3VidGVzdCAqLwogCQlleGl0X3N1YnRlc3QoIlNLSVAiKTsK IAl9IGVsc2UgaWYgKHRlc3Rfd2l0aF9zdWJ0ZXN0cykgewogCQlza2lwX3N1YnRlc3RzX2hlbmNl Zm9ydGggPSBTS0lQOwpAQCAtMTEzNSw3ICsxMjEwLDIyIEBAIHZvaWQgX19pZ3Rfc2tpcF9jaGVj ayhjb25zdCBjaGFyICpmaWxlLCBjb25zdCBpbnQgbGluZSwKICAqLwogdm9pZCBpZ3Rfc3VjY2Vz cyh2b2lkKQogewotCXN1Y2NlZWRlZF9vbmUgPSB0cnVlOworCWlmIChpbl9zdWJ0ZXN0ICYmICFp bl9keW5hbWljX3N1YnRlc3QgJiYgX2lndF9keW5hbWljX3Rlc3RzX2V4ZWN1dGVkID49IDApIHsK KwkJLyoKKwkJICogV2UncmUgZXhpdGluZyBhIGR5bmFtaWMgY29udGFpbmVyLCB5aWVsZCBhIHJl c3VsdAorCQkgKiBhY2NvcmRpbmcgdG8gdGhlIGR5bmFtaWMgdGVzdHMgdGhhdCBnb3QKKwkJICog ZXhlY3V0ZWQuCisJCSAqLworCQlpZiAoZHluYW1pY19mYWlsZWRfb25lKQorCQkJaWd0X2ZhaWwo SUdUX0VYSVRfRkFJTFVSRSk7CisKKwkJaWYgKF9pZ3RfZHluYW1pY190ZXN0c19leGVjdXRlZCA9 PSAwKQorCQkJaWd0X3NraXAoIk5vIGR5bmFtaWMgdGVzdHMgZXhlY3V0ZWQuXG4iKTsKKwl9CisK KwlpZiAoIWluX2R5bmFtaWNfc3VidGVzdCkKKwkJc3VjY2VlZGVkX29uZSA9IHRydWU7CisKIAlp ZiAoaW5fc3VidGVzdCkKIAkJZXhpdF9zdWJ0ZXN0KCJTVUNDRVNTIik7CiB9CkBAIC0xMTY2LDEw ICsxMjU2LDE3IEBAIHZvaWQgaWd0X2ZhaWwoaW50IGV4aXRjb2RlKQogCWlmIChpbl9hdGV4aXRf aGFuZGxlcikKIAkJX2V4aXQoSUdUX0VYSVRfRkFJTFVSRSk7CiAKLQlpZiAoIWZhaWxlZF9vbmUp Ci0JCWlndF9leGl0Y29kZSA9IGV4aXRjb2RlOworCWlmIChpbl9keW5hbWljX3N1YnRlc3QpIHsK KwkJZHluYW1pY19mYWlsZWRfb25lID0gdHJ1ZTsKKwl9IGVsc2UgeworCQkvKiBEeW5hbWljIHN1 YnRlc3QgY29udGFpbmVycyBtdXN0IG5vdCBmYWlsIGV4cGxpY2l0bHkgKi8KKwkJYXNzZXJ0KF9p Z3RfZHluYW1pY190ZXN0c19leGVjdXRlZCA8IDAgfHwgZHluYW1pY19mYWlsZWRfb25lKTsKKwor CQlpZiAoIWZhaWxlZF9vbmUpCisJCQlpZ3RfZXhpdGNvZGUgPSBleGl0Y29kZTsKIAotCWZhaWxl ZF9vbmUgPSB0cnVlOworCQlmYWlsZWRfb25lID0gdHJ1ZTsKKwl9CiAKIAkvKiBTaWxlbnQgZXhp dCwgcGFyZW50IHdpbGwgZG8gdGhlIHllbGxpbmcuICovCiAJaWYgKHRlc3RfY2hpbGQpCmRpZmYg LS1naXQgYS9saWIvaWd0X2NvcmUuaCBiL2xpYi9pZ3RfY29yZS5oCmluZGV4IDg4YTk1ZWMyLi40 MWUwZmEyYyAxMDA2NDQKLS0tIGEvbGliL2lndF9jb3JlLmgKKysrIGIvbGliL2lndF9jb3JlLmgK QEAgLTE0NCw2ICsxNDQsNyBAQCB2b2lkIF9faWd0X2ZpeHR1cmVfZW5kKHZvaWQpIF9fYXR0cmli dXRlX18oKG5vcmV0dXJuKSk7CiAKIC8qIHN1YnRlc3QgaW5mcmFzdHJ1Y3R1cmUgKi8KIGptcF9i dWYgaWd0X3N1YnRlc3Rfam1wYnVmOworam1wX2J1ZiBpZ3RfZHluYW1pY19zdWJ0ZXN0X2ptcGJ1 ZjsKIHR5cGVkZWYgaW50ICgqaWd0X29wdF9oYW5kbGVyX3QpKGludCBvcHQsIGludCBvcHRfaW5k ZXgsIHZvaWQgKmRhdGEpOwogI2RlZmluZSBJR1RfT1BUX0hBTkRMRVJfU1VDQ0VTUyAwCiAjZGVm aW5lIElHVF9PUFRfSEFORExFUl9FUlJPUiAtMgpAQCAtMTc1LDYgKzE3Niw4IEBAIGludCBpZ3Rf c3VidGVzdF9pbml0X3BhcnNlX29wdHMoaW50ICphcmdjLCBjaGFyICoqYXJndiwKIAlpZ3Rfc3Vi dGVzdF9pbml0X3BhcnNlX29wdHMoJmFyZ2MsIGFyZ3YsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEws IE5VTEwpOwogCiBib29sIF9faWd0X3J1bl9zdWJ0ZXN0KGNvbnN0IGNoYXIgKnN1YnRlc3RfbmFt ZSk7Citib29sIF9faWd0X2VudGVyX2R5bmFtaWNfY29udGFpbmVyKHZvaWQpOworYm9vbCBfX2ln dF9ydW5fZHluYW1pY19zdWJ0ZXN0KGNvbnN0IGNoYXIgKmR5bmFtaWNfc3VidGVzdF9uYW1lKTsK ICNkZWZpbmUgX19pZ3RfdG9rZW5jYXQyKHgsIHkpIHggIyMgeQogCiAvKioKQEAgLTIyNCw2ICsy MjcsOTIgQEAgYm9vbCBfX2lndF9ydW5fc3VidGVzdChjb25zdCBjaGFyICpzdWJ0ZXN0X25hbWUp OwogI2RlZmluZSBpZ3Rfc3VidGVzdF9mKGYuLi4pIFwKIAlfX2lndF9zdWJ0ZXN0X2YoaWd0X3Rv a2VuY2F0KF9fdG1wY2hhciwgX19MSU5FX18pLCBmKQogCisvKioKKyAqIGlndF9keW5hbWljX3N1 YnRlc3RfY29udGFpbmVyOgorICogQG5hbWU6IG5hbWUgb2YgdGhlIHN1YnRlc3QKKyAqCisgKiBU aGlzIGlzIGEgbWFnaWMgY29udHJvbCBmbG93IGJsb2NrIHdoaWNoIGRlbm90ZXMgYSBzdWJ0ZXN0 IGNvZGUKKyAqIGJsb2NrIHRoYXQgY29udGFpbnMgZHluYW1pYyBzdWJ0ZXN0cy4gVGhlIF9mIHZh cmlhbnQgYWNjZXB0cyBhCisgKiBwcmludGYgZm9ybWF0IHN0cmluZywgd2hpY2ggaXMgdXNlZnVs IGZvciBjb25zdHJ1Y3RpbmcKKyAqIGNvbWJpbmF0b3JpYWwgdGVzdHMuCisgKgorICogV2l0aGlu IGEgZHluYW1pYyBzdWJ0ZXN0IGNvbnRhaW5lciwgZXhwbGljaXQgZmFpbHVyZQorICogKGUuZy4g aWd0X2Fzc2VydCkgaXMgbm90IGFsbG93ZWQsIG9ubHkgZHluYW1pYyBzdWJ0ZXN0cyB0aGVtc2Vs dmVzCisgKiB3aWxsIHByb2R1Y2UgdGVzdCByZXN1bHRzLiBpZ3Rfc2tpcCgpL2lndF9yZXF1aXJl KCkgaXMgYWxsb3dlZC4KKyAqCisgKiBUaGlzIGlzIGEgc2ltcGxlciB2ZXJzaW9uIG9mIGlndF9k eW5hbWljX3N1YnRlc3RfY29udGFpbmVyX2YoKQorICovCisjZGVmaW5lIGlndF9keW5hbWljX3N1 YnRlc3RfY29udGFpbmVyKG5hbWUpIGZvciAoOyBfX2lndF9ydW5fc3VidGVzdCgobmFtZSkpICYm IFwKKwkJCQkJCQkgX19pZ3RfZW50ZXJfZHluYW1pY19jb250YWluZXIoKSAmJiBcCisJCQkJCQkJ IChzaWdzZXRqbXAoaWd0X3N1YnRlc3Rfam1wYnVmLCAxKSA9PSAwKTsgXAorCQkJCQkJIGlndF9z dWNjZXNzKCkpCisjZGVmaW5lIF9faWd0X2R5bmFtaWNfc3VidGVzdF9jb250YWluZXJfZih0bXAs IGZvcm1hdC4uLikgXAorCWZvciAoY2hhciB0bXAgWzI1Nl07IFwKKwkgICAgIHNucHJpbnRmKCB0 bXAgLCBzaXplb2YoIHRtcCApLCBcCisJCSAgICAgIGZvcm1hdCksIFwKKwkgICAgIF9faWd0X3J1 bl9zdWJ0ZXN0KCB0bXAgKSAmJiBcCisJICAgICBfX2lndF9lbnRlcl9keW5hbWljX2NvbnRhaW5l cigpICYmIFwKKwkgICAgIChzaWdzZXRqbXAoaWd0X3N1YnRlc3Rfam1wYnVmLCAxKSA9PSAwKTsg XAorCSAgICAgaWd0X3N1Y2Nlc3MoKSkKKworLyoqCisgKiBpZ3RfZHluYW1pY19zdWJ0ZXN0X2Nv bnRhaW5lcl9mOgorICogQC4uLjogZm9ybWF0IHN0cmluZyBhbmQgb3B0aW9uYWwgYXJndW1lbnRz CisgKgorICogVGhpcyBpcyBhIG1hZ2ljIGNvbnRyb2wgZmxvdyBibG9jayB3aGljaCBkZW5vdGVz IGEgc3VidGVzdCBjb2RlCisgKiBibG9jayB0aGF0IGNvbnRhaW5zIGR5bmFtaWMgc3VidGVzdHMu IFRoZSBfZiB2YXJpYW50IGFjY2VwdHMgYQorICogcHJpbnRmIGZvcm1hdCBzdHJpbmcsIHdoaWNo IGlzIHVzZWZ1bCBmb3IgY29uc3RydWN0aW5nCisgKiBjb21iaW5hdG9yaWFsIHRlc3RzLgorICoK KyAqIFdpdGhpbiBhIGR5bmFtaWMgc3VidGVzdCBjb250YWluZXIsIGV4cGxpY2l0IGZhaWx1cmUK KyAqIChlLmcuIGlndF9hc3NlcnQpIGlzIG5vdCBhbGxvd2VkLCBvbmx5IGR5bmFtaWMgc3VidGVz dHMgdGhlbXNlbHZlcworICogd2lsbCBwcm9kdWNlIHRlc3QgcmVzdWx0cy4gaWd0X3NraXAoKS9p Z3RfcmVxdWlyZSgpIGlzIGFsbG93ZWQuCisgKgorICogTGlrZSBpZ3RfZHluYW1pY19zdWJ0ZXN0 X2NvbnRhaW5lcigpLCBidXQgYWxzbyBhY2NlcHRzIGEgcHJpbnRmCisgKiBmb3JtYXQgc3RyaW5n IGluc3RlYWQgb2YgYSBzdGF0aWMgc3RyaW5nLgorICovCisjZGVmaW5lIGlndF9keW5hbWljX3N1 YnRlc3RfY29udGFpbmVyX2YoZi4uLikgXAorCV9faWd0X2R5bmFtaWNfc3VidGVzdF9jb250YWlu ZXJfZihpZ3RfdG9rZW5jYXQoX190bXBjaGFyLCBfX0xJTkVfXyksIGYpCisKKy8qKgorICogaWd0 X2R5bmFtaWNfc3VidGVzdDoKKyAqIEBuYW1lOiBuYW1lIG9mIHRoZSBkeW5hbWljIHN1YnRlc3QK KyAqCisgKiBUaGlzIGlzIGEgbWFnaWMgY29udHJvbCBmbG93IGJsb2NrIHdoaWNoIGRlbm90ZXMg YSBkeW5hbWljCisgKiBzdWJ0ZXN0LW9mLWEtc3VidGVzdCBjb2RlIGJsb2NrLiBXaXRoaW4gdGhh dCBjb2RlIGJsb2NrCisgKiBpZ3Rfc2tpcHxzdWNjZXNzIHdpbGwgb25seSBiYWlsIG91dCBvZiB0 aGUgZHluYW1pYyBzdWJ0ZXN0LiBUaGUgX2YKKyAqIHZhcmlhbnQgYWNjZXB0cyBhIHByaW50ZiBm b3JtYXQgc3RyaW5nLCB3aGljaCBpcyB1c2VmdWwgZm9yCisgKiBjb25zdHJ1Y3RpbmcgY29tYmlu YXRvcmlhbCB0ZXN0cy4KKyAqCisgKiBUaGlzIGlzIGEgc2ltcGxlciB2ZXJzaW9uIG9mIGlndF9k eW5hbWljX3N1YnRlc3RfZigpCisgKi8KKyNkZWZpbmUgaWd0X2R5bmFtaWNfc3VidGVzdChuYW1l KSBmb3IgKDsgX19pZ3RfcnVuX2R5bmFtaWNfc3VidGVzdCgobmFtZSkpICYmIFwKKwkJCQkJICAo c2lnc2V0am1wKGlndF9keW5hbWljX3N1YnRlc3Rfam1wYnVmLCAxKSA9PSAwKTsgXAorCQkJCSAg aWd0X3N1Y2Nlc3MoKSkKKyNkZWZpbmUgX19pZ3RfZHluYW1pY19zdWJ0ZXN0X2YodG1wLCBmb3Jt YXQuLi4pIFwKKwlmb3IgKGNoYXIgdG1wIFsyNTZdOyBcCisJICAgICBzbnByaW50ZiggdG1wICwg c2l6ZW9mKCB0bXAgKSwgXAorCQkgICAgICBmb3JtYXQpLCBcCisJICAgICBfX2lndF9ydW5fZHlu YW1pY19zdWJ0ZXN0KCB0bXAgKSAmJiBcCisJICAgICAoc2lnc2V0am1wKGlndF9keW5hbWljX3N1 YnRlc3Rfam1wYnVmLCAxKSA9PSAwKTsgXAorCSAgICAgaWd0X3N1Y2Nlc3MoKSkKKworLyoqCisg KiBpZ3RfZHluYW1pY19zdWJ0ZXN0X2Y6CisgKiBALi4uOiBmb3JtYXQgc3RyaW5nIGFuZCBvcHRp b25hbCBhcmd1bWVudHMKKyAqCisgKiBUaGlzIGlzIGEgbWFnaWMgY29udHJvbCBmbG93IGJsb2Nr IHdoaWNoIGRlbm90ZXMgYSBkeW5hbWljCisgKiBzdWJ0ZXN0LW9mLWEtc3VidGVzdCBjb2RlIGJs b2NrLiBXaXRoaW4gdGhhdCBjb2RlIGJsb2NrCisgKiBpZ3Rfc2tpcHxzdWNjZXNzIHdpbGwgb25s eSBiYWlsIG91dCBvZiB0aGUgZHluYW1pYyBzdWJ0ZXN0LiBUaGUgX2YKKyAqIHZhcmlhbnQgYWNj ZXB0cyBhIHByaW50ZiBmb3JtYXQgc3RyaW5nLCB3aGljaCBpcyB1c2VmdWwgZm9yCisgKiBjb25z dHJ1Y3RpbmcgY29tYmluYXRvcmlhbCB0ZXN0cy4KKyAqCisgKiBMaWtlIGlndF9keW5hbWljX3N1 YnRlc3QoKSwgYnV0IGFsc28gYWNjZXB0cyBhIHByaW50ZiBmb3JtYXQgc3RyaW5nCisgKiBpbnN0 ZWFkIG9mIGEgc3RhdGljIHN0cmluZy4KKyAqLworI2RlZmluZSBpZ3RfZHluYW1pY19zdWJ0ZXN0 X2YoZi4uLikgXAorCV9faWd0X2R5bmFtaWNfc3VidGVzdF9mKGlndF90b2tlbmNhdChfX3RtcGNo YXIsIF9fTElORV9fKSwgZikKKwogY29uc3QgY2hhciAqaWd0X3N1YnRlc3RfbmFtZSh2b2lkKTsK IGJvb2wgaWd0X29ubHlfbGlzdF9zdWJ0ZXN0cyh2b2lkKTsKIAotLSAKMi4xOS4xCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcg bGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=