From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Weinehall Subject: [PATCH i-g-t v4 2/3] lib/igt_core: Unify handling of slow/combinatorial tests Date: Thu, 11 Feb 2016 13:09:33 +0200 Message-ID: <1455188974-17801-3-git-send-email-david.weinehall@linux.intel.com> References: <1455188974-17801-1-git-send-email-david.weinehall@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 4351A6E1FB for ; Thu, 11 Feb 2016 03:13:41 -0800 (PST) In-Reply-To: <1455188974-17801-1-git-send-email-david.weinehall@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org U29tZSBzdWJ0ZXN0cyBhcmUgbm90IHJ1biBieSBkZWZhdWx0LCBmb3IgdmFyaW91cyByZWFzb25z OwpiZSBpdCBiZWNhdXNlIHRoZXkncmUgb25seSBmb3IgZGVidWdnaW5nLCBiZWNhdXNlIHRoZXkn cmUgc2xvdywKb3IgYmVjYXVzZSB0aGV5IGFyZSBub3Qgb2YgaGlnaCBlbm91Z2ggcXVhbGl0eS4K ClRoaXMgcGF0Y2ggYWltcyB0byBpbnRyb2R1Y2UgYSBjb21tb24gbWVjaGFuaXNtIGZvciBjYXRl Z29yaXNpbmcKdGhlIHN1YnRlc3RzIGFuZCBpbnRyb2R1Y2VzIGEgZmxhZyAoLS1hbGwpIHRoYXQg cnVucy9saXN0cyBhbGwKc3VidGVzdHMgaW5zdGVhZCBvZiBqdXN0IHRoZSBkZWZhdWx0IHNldC4K ClNpZ25lZC1vZmYtYnk6IERhdmlkIFdlaW5laGFsbCA8ZGF2aWQud2VpbmVoYWxsQGxpbnV4Lmlu dGVsLmNvbT4KLS0tCiBsaWIvaWd0X2NvcmUuYyAgICAgICAgICAgICAgICAgICB8ICA0MyArKysr KysrLS0KIGxpYi9pZ3RfY29yZS5oICAgICAgICAgICAgICAgICAgIHwgIDQyICsrKysrKysrKwog dGVzdHMvZ2VtX2NvbmN1cnJlbnRfYmxpdC5jICAgICAgfCAgNTAgKysrKystLS0tLS0KIHRlc3Rz L2ttc19mcm9udGJ1ZmZlcl90cmFja2luZy5jIHwgMTg2ICsrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAyMTAgaW5zZXJ0aW9ucygrKSwgMTEx IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYi9pZ3RfY29yZS5jIGIvbGliL2lndF9jb3Jl LmMKaW5kZXggNmI2OWJiNzgwNzAwLi5lNmU2OTQ5ZWQ2NWEgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3Rf Y29yZS5jCisrKyBiL2xpYi9pZ3RfY29yZS5jCkBAIC0yMTYsNiArMjE2LDcgQEAgY29uc3QgY2hh ciAqaWd0X2ludGVyYWN0aXZlX2RlYnVnOwogCiAvKiBzdWJ0ZXN0cyBoZWxwZXJzICovCiBzdGF0 aWMgYm9vbCBsaXN0X3N1YnRlc3RzID0gZmFsc2U7CitzdGF0aWMgdW5zaWduZWQgaW50IHN1YnRl c3RfdHlwZXNfbWFzayA9IFNVQlRFU1RfVFlQRV9OT1JNQUw7CiBzdGF0aWMgY2hhciAqcnVuX3Np bmdsZV9zdWJ0ZXN0ID0gTlVMTDsKIHN0YXRpYyBib29sIHJ1bl9zaW5nbGVfc3VidGVzdF9mb3Vu ZCA9IGZhbHNlOwogc3RhdGljIGNvbnN0IGNoYXIgKmluX3N1YnRlc3QgPSBOVUxMOwpAQCAtMjM3 LDEyICsyMzgsMTMgQEAgaW50IHRlc3RfY2hpbGRyZW5fc3o7CiBib29sIHRlc3RfY2hpbGQ7CiAK IGVudW0gewotIE9QVF9MSVNUX1NVQlRFU1RTLAotIE9QVF9SVU5fU1VCVEVTVCwKLSBPUFRfREVT Q1JJUFRJT04sCi0gT1BUX0RFQlVHLAotIE9QVF9JTlRFUkFDVElWRV9ERUJVRywKLSBPUFRfSEVM UCA9ICdoJworCU9QVF9MSVNUX1NVQlRFU1RTLAorCU9QVF9XSVRIX0FMTF9TVUJURVNUUywKKwlP UFRfUlVOX1NVQlRFU1QsCisJT1BUX0RFU0NSSVBUSU9OLAorCU9QVF9ERUJVRywKKwlPUFRfSU5U RVJBQ1RJVkVfREVCVUcsCisJT1BUX0hFTFAgPSAnaCcKIH07CiAKIHN0YXRpYyBpbnQgaWd0X2V4 aXRjb2RlID0gSUdUX0VYSVRfU1VDQ0VTUzsKQEAgLTUxNiw2ICs1MTgsNyBAQCBzdGF0aWMgdm9p ZCBwcmludF91c2FnZShjb25zdCBjaGFyICpoZWxwX3N0ciwgYm9vbCBvdXRwdXRfb25fc3RkZXJy KQogCiAJZnByaW50ZihmLCAiVXNhZ2U6ICVzIFtPUFRJT05TXVxuIiwgY29tbWFuZF9zdHIpOwog CWZwcmludGYoZiwgIiAgLS1saXN0LXN1YnRlc3RzXG4iCisJCSAgICIgIC0tYWxsXG4iCiAJCSAg ICIgIC0tcnVuLXN1YnRlc3QgPHBhdHRlcm4+XG4iCiAJCSAgICIgIC0tZGVidWdbPWxvZy1kb21h aW5dXG4iCiAJCSAgICIgIC0taW50ZXJhY3RpdmUtZGVidWdbPWRvbWFpbl1cbiIKQEAgLTU0OCw2 ICs1NTEsNyBAQCBzdGF0aWMgaW50IGNvbW1vbl9pbml0KGludCAqYXJnYywgY2hhciAqKmFyZ3Ys CiAJaW50IGMsIG9wdGlvbl9pbmRleCA9IDAsIGksIHg7CiAJc3RhdGljIHN0cnVjdCBvcHRpb24g bG9uZ19vcHRpb25zW10gPSB7CiAJCXsibGlzdC1zdWJ0ZXN0cyIsIDAsIDAsIE9QVF9MSVNUX1NV QlRFU1RTfSwKKwkJeyJhbGwiLCAwLCAwLCBPUFRfV0lUSF9BTExfU1VCVEVTVFN9LAogCQl7InJ1 bi1zdWJ0ZXN0IiwgMSwgMCwgT1BUX1JVTl9TVUJURVNUfSwKIAkJeyJoZWxwLWRlc2NyaXB0aW9u IiwgMCwgMCwgT1BUX0RFU0NSSVBUSU9OfSwKIAkJeyJkZWJ1ZyIsIG9wdGlvbmFsX2FyZ3VtZW50 LCAwLCBPUFRfREVCVUd9LApAQCAtNjU5LDYgKzY2MywxMCBAQCBzdGF0aWMgaW50IGNvbW1vbl9p bml0KGludCAqYXJnYywgY2hhciAqKmFyZ3YsCiAJCQlpZiAoIXJ1bl9zaW5nbGVfc3VidGVzdCkK IAkJCQlsaXN0X3N1YnRlc3RzID0gdHJ1ZTsKIAkJCWJyZWFrOworCQljYXNlIE9QVF9XSVRIX0FM TF9TVUJURVNUUzoKKwkJCWlmICghcnVuX3NpbmdsZV9zdWJ0ZXN0KQorCQkJCXN1YnRlc3RfdHlw ZXNfbWFzayA9IFNVQlRFU1RfVFlQRV9BTEw7CisJCQlicmVhazsKIAkJY2FzZSBPUFRfUlVOX1NV QlRFU1Q6CiAJCQlpZiAoIWxpc3Rfc3VidGVzdHMpCiAJCQkJcnVuX3NpbmdsZV9zdWJ0ZXN0ID0g c3RyZHVwKG9wdGFyZyk7CkBAIC0xNjY3LDYgKzE2NzUsMjkgQEAgdm9pZCBpZ3Rfc2tpcF9vbl9z aW11bGF0aW9uKHZvaWQpCiAJCWlndF9yZXF1aXJlKCFpZ3RfcnVuX2luX3NpbXVsYXRpb24oKSk7 CiB9CiAKKy8qKgorICogaWd0X21hdGNoX3N1YnRlc3RfZmxhZ3M6CisgKgorICogVGhpcyBmdW5j dGlvbiBpcyB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIHN1YnRl c3QKKyAqIG1ha2VzIGl0IGEgY2FuZGlkYXRlIGZvciBpbmNsdXNpb24gaW4gdGhlIHRlc3QgcnVu OyB0aGlzIGlzIHVzZWQgdG8KKyAqIGNhdGVnb3Jpc2UgdGVzdHMsIGZvciBpbnN0YW5jZSB0byBl eGNsdWRlIHRlc3RzIHRoYXQgYXJlIHB1cmVseSBmb3IKKyAqIGRlYnVnIHB1cnBvc2VzLCB0ZXN0 cyB0aGF0IGFyZSBzcGVjaWZpYyB0byBjZXJ0YWluIGVudmlyb25tZW50cywKKyAqIG9yIHRlc3Rz IHRoYXQgYXJlIHZlcnkgc2xvdy4KKyAqCisgKiBOb3RlIHRoYXQgYSB0ZXN0IGhhcyB0byBoYXZl IGFsbCBpdHMgZmxhZ3MgbWV0IHRvIGJlIHJ1bjsgZm9yIGluc3RhbmNlCisgKiBhIHN1YnRlc3Qg d2l0aCB0aGUgZmxhZ3MgU1VCVEVTVF9UWVBFX1NMT1cgfCBTVUJURVNUX1RZUEVfREVCVUcgcmVx dWlyZXMKKyAqICItLXN1YnRlc3QtdHlwZXM9c2xvdyxkZWJ1ZyIgb3IgIi0tYWxsIiB0byBiZSBl eGVjdXRlZAorICoKKyAqIEBzdWJ0ZXN0X2ZsYWdzOiBUaGUgc3VidGVzdHMgdG8gY2hlY2sgZm9y CisgKgorICogUmV0dXJuczogdHJ1ZSBpZiB0aGUgc3VidGVzdCB0ZXN0IHNob3VsZCBiZSBydW4s CisgKiAgICAgICAgICBmYWxzZSBpZiB0aGUgc3VidGVzdCBzaG91bGQgYmUgc2tpcHBlZAorICov Citib29sIGlndF9tYXRjaF9zdWJ0ZXN0X2ZsYWdzKHVuc2lnbmVkIGxvbmcgc3VidGVzdF9mbGFn cykKK3sKKwlyZXR1cm4gKChzdWJ0ZXN0X2ZsYWdzICYgc3VidGVzdF90eXBlc19tYXNrKSA9PSBz dWJ0ZXN0X2ZsYWdzKTsKK30KKwogLyogc3RydWN0dXJlZCBsb2dnaW5nICovCiAKIC8qKgpkaWZm IC0tZ2l0IGEvbGliL2lndF9jb3JlLmggYi9saWIvaWd0X2NvcmUuaAppbmRleCA4ZjI5N2UwNmEw NjguLmJmODNkZTYwOWJmYSAxMDA2NDQKLS0tIGEvbGliL2lndF9jb3JlLmgKKysrIGIvbGliL2ln dF9jb3JlLmgKQEAgLTE5Myw2ICsxOTMsNDggQEAgYm9vbCBfX2lndF9ydW5fc3VidGVzdChjb25z dCBjaGFyICpzdWJ0ZXN0X25hbWUpOwogI2RlZmluZSBpZ3Rfc3VidGVzdF9mKGYuLi4pIFwKIAlf X2lndF9zdWJ0ZXN0X2YoaWd0X3Rva2VuY2F0KF9fdG1wY2hhciwgX19MSU5FX18pLCBmKQogCitl bnVtIHsKKwkvKiBUaGUgc2V0IG9mIHRlc3RzIHJ1biBpZiBub3RoaW5nIGVsc2UgaXMgc3BlY2lm aWVkICovCisJU1VCVEVTVF9UWVBFX05PUk1BTCA9IDEgPDwgMCwKKwkvKiBCYXNpYyBBY2NlcHRh bmNlIFRlc3Rpbmcgc2V0ICovCisJU1VCVEVTVF9UWVBFX0JBU0lDID0gMSA8PCAxLAorCS8qIFRl c3RzIHRoYXQgYXJlIHZlcnkgc2xvdyAqLworCVNVQlRFU1RfVFlQRV9TTE9XID0gMSA8PCAyLAor CS8qIFRlc3RzIHRoYXQgbWFpbmx5IGludGVuZGVkIGZvciBkZWJ1Z2dpbmcgKi8KKwlTVUJURVNU X1RZUEVfREVCVUcgPSAxIDw8IDMsCisJU1VCVEVTVF9UWVBFX0FMTCA9IH4wCit9IHN1YnRlc3Rf dHlwZXM7CisKK2Jvb2wgaWd0X21hdGNoX3N1YnRlc3RfZmxhZ3ModW5zaWduZWQgbG9uZyBzdWJ0 ZXN0X2ZsYWdzKTsKKworLyoqCisgKiBpZ3Rfc3VidGVzdF9mbGFnczoKKyAqIEBuYW1lOiBuYW1l IG9mIHRoZSBzdWJ0ZXN0CisgKiBAX19zdWJ0ZXN0X2ZsYWdzOiB0aGUgY2F0ZWdvcmllcyB0aGUg c3VidGVzdCBiZWxvbmdzIHRvCisgKgorICogVGhpcyBpcyBhIHdyYXBwZXIgYXJvdW5kIGlndF9z dWJ0ZXN0IHRoYXQgd2lsbCBvbmx5IGV4ZWN1dGUgdGhlCisgKiB0ZXN0Y2FzZSBpZiBhbGwgb2Yg dGhlIGZsYWdzIHBhc3NlZCB0byB0aGlzIGZ1bmN0aW9uIG1hdGNoIHRob3NlCisgKiBzcGVjaWZp ZWQgYnkgdGhlIGxpc3Qgb2Ygc3VidGVzdCBjYXRlZ29yaWVzIHBhc3NlZCBmcm9tIHRoZQorICog Y29tbWFuZCBsaW5lOyB0aGUgZGVmYXVsdCBjYXRlZ29yeSBpcyBTVUJURVNUX1RZUEVfTk9STUFM LgorICovCisjZGVmaW5lIGlndF9zdWJ0ZXN0X2ZsYWdzKG5hbWUsIF9fc3VidGVzdF9mbGFncykg XAorCWlmIChpZ3RfbWF0Y2hfc3VidGVzdF9mbGFncyhfX3N1YnRlc3RfZmxhZ3MpKSBcCisJCWln dF9zdWJ0ZXN0KG5hbWUpCisKKy8qKgorICogaWd0X3N1YnRlc3RfZmxhZ3NfZjoKKyAqIEAuLi46 IGZvcm1hdCBzdHJpbmcgYW5kIG9wdGlvbmFsIGFyZ3VtZW50cworICogQF9fc3VidGVzdF9mbGFn czogdGhlIGNhdGVnb3JpZXMgdGhlIHN1YnRlc3QgYmVsb25ncyB0bworICoKKyAqIFRoaXMgaXMg YSB3cmFwcGVyIGFyb3VuZCBpZ3Rfc3VidGVzdF9mIHRoYXQgd2lsbCBvbmx5IGV4ZWN1dGUgdGhl CisgKiB0ZXN0Y2FzZSBpZiBhbGwgb2YgdGhlIGZsYWdzIHBhc3NlZCB0byB0aGlzIGZ1bmN0aW9u IG1hdGNoIHRob3NlCisgKiBzcGVjaWZpZWQgYnkgdGhlIGxpc3Qgb2Ygc3VidGVzdCBjYXRlZ29y aWVzIHBhc3NlZCBmcm9tIHRoZQorICogY29tbWFuZCBsaW5lOyB0aGUgZGVmYXVsdCBjYXRlZ29y eSBpcyBTVUJURVNUX1RZUEVfTk9STUFMLgorICovCisjZGVmaW5lIGlndF9zdWJ0ZXN0X2ZsYWdz X2YoX19zdWJ0ZXN0X2ZsYWdzLCBmLi4uKSBcCisJaWYgKGlndF9tYXRjaF9zdWJ0ZXN0X2ZsYWdz KF9fc3VidGVzdF9mbGFncykpIFwKKwkJX19pZ3Rfc3VidGVzdF9mKGlndF90b2tlbmNhdChfX3Rt cGNoYXIsIF9fTElORV9fKSwgZikKKwogY29uc3QgY2hhciAqaWd0X3N1YnRlc3RfbmFtZSh2b2lk KTsKIGJvb2wgaWd0X29ubHlfbGlzdF9zdWJ0ZXN0cyh2b2lkKTsKIApkaWZmIC0tZ2l0IGEvdGVz dHMvZ2VtX2NvbmN1cnJlbnRfYmxpdC5jIGIvdGVzdHMvZ2VtX2NvbmN1cnJlbnRfYmxpdC5jCmlu ZGV4IDliN2VmODcwMGUzMS4uM2MyM2E5NWM0NjMxIDEwMDY0NAotLS0gYS90ZXN0cy9nZW1fY29u Y3VycmVudF9ibGl0LmMKKysrIGIvdGVzdHMvZ2VtX2NvbmN1cnJlbnRfYmxpdC5jCkBAIC02NCw3 ICs2NCw2IEBAIHN0cnVjdCBsb2NhbF9pOTE1X2dlbV91c2VycHRyIHsKIAogaW50IGZkLCBkZXZp ZCwgZ2VuOwogc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaDsKLWludCBhbGw7CiBpbnQg cGFzczsKIAogc3RydWN0IGJ1ZmZlcnMgewpAQCAtMTI1NiwxMCArMTI1NSwxNCBAQCBydW5fYmFz aWNfbW9kZXMoY29uc3QgY2hhciAqcHJlZml4LAogCX0sICpoOwogCiAJZm9yIChoID0gaGFuZ3M7 IGgtPnN1ZmZpeDsgaCsrKSB7Ci0JCWlmICghYWxsICYmICpoLT5zdWZmaXgpCi0JCQljb250aW51 ZTsKKwkJdW5zaWduZWQgaW50IHN1YnRlc3RfZmxhZ3M7CiAKLQkJZm9yIChwID0gYWxsID8gcGlw ZWxpbmVzIDogcHNraXA7IHAtPnByZWZpeDsgcCsrKSB7CisJCWlmICgqaC0+c3VmZml4KQorCQkJ c3VidGVzdF9mbGFncyA9IFNVQlRFU1RfVFlQRV9TTE9XOworCQllbHNlCisJCQlzdWJ0ZXN0X2Zs YWdzID0gU1VCVEVTVF9UWVBFX05PUk1BTDsKKworCQlmb3IgKHAgPSBpZ3RfbWF0Y2hfc3VidGVz dF9mbGFncyhTVUJURVNUX1RZUEVfU0xPVykgPyBwaXBlbGluZXMgOiBwc2tpcDsgcC0+cHJlZml4 OyBwKyspIHsKIAkJCXN0cnVjdCBidWZmZXJzIGJ1ZmZlcnM7CiAKIAkJCWlndF9maXh0dXJlCkBA IC0xMjY3LDIxICsxMjcwLDIxIEBAIHJ1bl9iYXNpY19tb2Rlcyhjb25zdCBjaGFyICpwcmVmaXgs CiAJCQkJCQkgICAgIDUxMiwgNTEyLCBmZCwKIAkJCQkJCSAgICAgcnVuX3dyYXBfZnVuYyAhPSBy dW5fY2hpbGQpOwogCi0JCQlpZ3Rfc3VidGVzdF9mKCIlcy0lcy0lcy1zYW5pdHljaGVjazAlcyVz IiwgcHJlZml4LCBtb2RlLT5uYW1lLCBwLT5wcmVmaXgsIHN1ZmZpeCwgaC0+c3VmZml4KSB7CisJ CQlpZ3Rfc3VidGVzdF9mbGFnc19mKHN1YnRlc3RfZmxhZ3MsICIlcy0lcy0lcy1zYW5pdHljaGVj azAlcyVzIiwgcHJlZml4LCBtb2RlLT5uYW1lLCBwLT5wcmVmaXgsIHN1ZmZpeCwgaC0+c3VmZml4 KSB7CiAJCQkJcC0+cmVxdWlyZSgpOwogCQkJCWJ1ZmZlcnNfY3JlYXRlKCZidWZmZXJzLCBudW1f YnVmZmVycyk7CiAJCQkJcnVuX3dyYXBfZnVuYygmYnVmZmVycywgZG9fYmFzaWMwLAogCQkJCQkg ICAgICBwLT5jb3B5LCBoLT5oYW5nKTsKIAkJCX0KIAotCQkJaWd0X3N1YnRlc3RfZigiJXMtJXMt JXMtc2FuaXR5Y2hlY2sxJXMlcyIsIHByZWZpeCwgbW9kZS0+bmFtZSwgcC0+cHJlZml4LCBzdWZm aXgsIGgtPnN1ZmZpeCkgeworCQkJaWd0X3N1YnRlc3RfZmxhZ3NfZihzdWJ0ZXN0X2ZsYWdzLCAi JXMtJXMtJXMtc2FuaXR5Y2hlY2sxJXMlcyIsIHByZWZpeCwgbW9kZS0+bmFtZSwgcC0+cHJlZml4 LCBzdWZmaXgsIGgtPnN1ZmZpeCkgewogCQkJCXAtPnJlcXVpcmUoKTsKIAkJCQlidWZmZXJzX2Ny ZWF0ZSgmYnVmZmVycywgbnVtX2J1ZmZlcnMpOwogCQkJCXJ1bl93cmFwX2Z1bmMoJmJ1ZmZlcnMs IGRvX2Jhc2ljMSwKIAkJCQkJICAgICAgcC0+Y29weSwgaC0+aGFuZyk7CiAJCQl9CiAKLQkJCWln dF9zdWJ0ZXN0X2YoIiVzLSVzLSVzLXNhbml0eWNoZWNrTiVzJXMiLCBwcmVmaXgsIG1vZGUtPm5h bWUsIHAtPnByZWZpeCwgc3VmZml4LCBoLT5zdWZmaXgpIHsKKwkJCWlndF9zdWJ0ZXN0X2ZsYWdz X2Yoc3VidGVzdF9mbGFncywgIiVzLSVzLSVzLXNhbml0eWNoZWNrTiVzJXMiLCBwcmVmaXgsIG1v ZGUtPm5hbWUsIHAtPnByZWZpeCwgc3VmZml4LCBoLT5zdWZmaXgpIHsKIAkJCQlwLT5yZXF1aXJl KCk7CiAJCQkJYnVmZmVyc19jcmVhdGUoJmJ1ZmZlcnMsIG51bV9idWZmZXJzKTsKIAkJCQlydW5f d3JhcF9mdW5jKCZidWZmZXJzLCBkb19iYXNpY04sCkBAIC0xMjg5LDcgKzEyOTIsNyBAQCBydW5f YmFzaWNfbW9kZXMoY29uc3QgY2hhciAqcHJlZml4LAogCQkJfQogCiAJCQkvKiB0cnkgdG8gb3Zl cndyaXRlIHRoZSBzb3VyY2UgdmFsdWVzICovCi0JCQlpZ3Rfc3VidGVzdF9mKCIlcy0lcy0lcy1v dmVyd3JpdGUtc291cmNlLW9uZSVzJXMiLCBwcmVmaXgsIG1vZGUtPm5hbWUsIHAtPnByZWZpeCwg c3VmZml4LCBoLT5zdWZmaXgpIHsKKwkJCWlndF9zdWJ0ZXN0X2ZsYWdzX2Yoc3VidGVzdF9mbGFn cywgIiVzLSVzLSVzLW92ZXJ3cml0ZS1zb3VyY2Utb25lJXMlcyIsIHByZWZpeCwgbW9kZS0+bmFt ZSwgcC0+cHJlZml4LCBzdWZmaXgsIGgtPnN1ZmZpeCkgewogCQkJCXAtPnJlcXVpcmUoKTsKIAkJ CQlidWZmZXJzX2NyZWF0ZSgmYnVmZmVycywgbnVtX2J1ZmZlcnMpOwogCQkJCXJ1bl93cmFwX2Z1 bmMoJmJ1ZmZlcnMsCkBAIC0xMjk3LDcgKzEzMDAsNyBAQCBydW5fYmFzaWNfbW9kZXMoY29uc3Qg Y2hhciAqcHJlZml4LAogCQkJCQkgICAgICBwLT5jb3B5LCBoLT5oYW5nKTsKIAkJCX0KIAotCQkJ aWd0X3N1YnRlc3RfZigiJXMtJXMtJXMtb3ZlcndyaXRlLXNvdXJjZSVzJXMiLCBwcmVmaXgsIG1v ZGUtPm5hbWUsIHAtPnByZWZpeCwgc3VmZml4LCBoLT5zdWZmaXgpIHsKKwkJCWlndF9zdWJ0ZXN0 X2ZsYWdzX2Yoc3VidGVzdF9mbGFncywgIiVzLSVzLSVzLW92ZXJ3cml0ZS1zb3VyY2UlcyVzIiwg cHJlZml4LCBtb2RlLT5uYW1lLCBwLT5wcmVmaXgsIHN1ZmZpeCwgaC0+c3VmZml4KSB7CiAJCQkJ cC0+cmVxdWlyZSgpOwogCQkJCWJ1ZmZlcnNfY3JlYXRlKCZidWZmZXJzLCBudW1fYnVmZmVycyk7 CiAJCQkJcnVuX3dyYXBfZnVuYygmYnVmZmVycywKQEAgLTEzMDUsNyArMTMwOCw3IEBAIHJ1bl9i YXNpY19tb2Rlcyhjb25zdCBjaGFyICpwcmVmaXgsCiAJCQkJCSAgICAgIHAtPmNvcHksIGgtPmhh bmcpOwogCQkJfQogCi0JCQlpZ3Rfc3VidGVzdF9mKCIlcy0lcy0lcy1vdmVyd3JpdGUtc291cmNl LXJlYWQtYmNzJXMlcyIsIHByZWZpeCwgbW9kZS0+bmFtZSwgcC0+cHJlZml4LCBzdWZmaXgsIGgt PnN1ZmZpeCkgeworCQkJaWd0X3N1YnRlc3RfZmxhZ3NfZihzdWJ0ZXN0X2ZsYWdzLCAiJXMtJXMt JXMtb3ZlcndyaXRlLXNvdXJjZS1yZWFkLWJjcyVzJXMiLCBwcmVmaXgsIG1vZGUtPm5hbWUsIHAt PnByZWZpeCwgc3VmZml4LCBoLT5zdWZmaXgpIHsKIAkJCQlwLT5yZXF1aXJlKCk7CiAJCQkJYnVm ZmVyc19jcmVhdGUoJmJ1ZmZlcnMsIG51bV9idWZmZXJzKTsKIAkJCQlydW5fd3JhcF9mdW5jKCZi dWZmZXJzLApAQCAtMTMxMyw3ICsxMzE2LDcgQEAgcnVuX2Jhc2ljX21vZGVzKGNvbnN0IGNoYXIg KnByZWZpeCwKIAkJCQkJICAgICAgcC0+Y29weSwgaC0+aGFuZyk7CiAJCQl9CiAKLQkJCWlndF9z dWJ0ZXN0X2YoIiVzLSVzLSVzLW92ZXJ3cml0ZS1zb3VyY2UtcmVhZC1yY3MlcyVzIiwgcHJlZml4 LCBtb2RlLT5uYW1lLCBwLT5wcmVmaXgsIHN1ZmZpeCwgaC0+c3VmZml4KSB7CisJCQlpZ3Rfc3Vi dGVzdF9mbGFnc19mKHN1YnRlc3RfZmxhZ3MsICIlcy0lcy0lcy1vdmVyd3JpdGUtc291cmNlLXJl YWQtcmNzJXMlcyIsIHByZWZpeCwgbW9kZS0+bmFtZSwgcC0+cHJlZml4LCBzdWZmaXgsIGgtPnN1 ZmZpeCkgewogCQkJCXAtPnJlcXVpcmUoKTsKIAkJCQlpZ3RfcmVxdWlyZShyZW5kZXJjb3B5KTsK IAkJCQlidWZmZXJzX2NyZWF0ZSgmYnVmZmVycywgbnVtX2J1ZmZlcnMpOwpAQCAtMTMyMiw3ICsx MzI1LDcgQEAgcnVuX2Jhc2ljX21vZGVzKGNvbnN0IGNoYXIgKnByZWZpeCwKIAkJCQkJICAgICAg cC0+Y29weSwgaC0+aGFuZyk7CiAJCQl9CiAKLQkJCWlndF9zdWJ0ZXN0X2YoIiVzLSVzLSVzLW92 ZXJ3cml0ZS1zb3VyY2UtcmV2JXMlcyIsIHByZWZpeCwgbW9kZS0+bmFtZSwgcC0+cHJlZml4LCBz dWZmaXgsIGgtPnN1ZmZpeCkgeworCQkJaWd0X3N1YnRlc3RfZmxhZ3NfZihzdWJ0ZXN0X2ZsYWdz LCAiJXMtJXMtJXMtb3ZlcndyaXRlLXNvdXJjZS1yZXYlcyVzIiwgcHJlZml4LCBtb2RlLT5uYW1l LCBwLT5wcmVmaXgsIHN1ZmZpeCwgaC0+c3VmZml4KSB7CiAJCQkJcC0+cmVxdWlyZSgpOwogCQkJ CWJ1ZmZlcnNfY3JlYXRlKCZidWZmZXJzLCBudW1fYnVmZmVycyk7CiAJCQkJcnVuX3dyYXBfZnVu YygmYnVmZmVycywKQEAgLTEzMzEsNyArMTMzNCw3IEBAIHJ1bl9iYXNpY19tb2Rlcyhjb25zdCBj aGFyICpwcmVmaXgsCiAJCQl9CiAKIAkJCS8qIHRyeSB0byBpbnRlcm1peCBjb3BpZXMgd2l0aCBH UFUgY29waWVzKi8KLQkJCWlndF9zdWJ0ZXN0X2YoIiVzLSVzLSVzLWludGVybWl4LXJjcyVzJXMi LCBwcmVmaXgsIG1vZGUtPm5hbWUsIHAtPnByZWZpeCwgc3VmZml4LCBoLT5zdWZmaXgpIHsKKwkJ CWlndF9zdWJ0ZXN0X2ZsYWdzX2Yoc3VidGVzdF9mbGFncywgIiVzLSVzLSVzLWludGVybWl4LXJj cyVzJXMiLCBwcmVmaXgsIG1vZGUtPm5hbWUsIHAtPnByZWZpeCwgc3VmZml4LCBoLT5zdWZmaXgp IHsKIAkJCQlwLT5yZXF1aXJlKCk7CiAJCQkJaWd0X3JlcXVpcmUocmVuZGVyY29weSk7CiAJCQkJ YnVmZmVyc19jcmVhdGUoJmJ1ZmZlcnMsIG51bV9idWZmZXJzKTsKQEAgLTEzMzksNyArMTM0Miw3 IEBAIHJ1bl9iYXNpY19tb2Rlcyhjb25zdCBjaGFyICpwcmVmaXgsCiAJCQkJCSAgICAgIGRvX2lu dGVybWl4X3JjcywKIAkJCQkJICAgICAgcC0+Y29weSwgaC0+aGFuZyk7CiAJCQl9Ci0JCQlpZ3Rf c3VidGVzdF9mKCIlcy0lcy0lcy1pbnRlcm1peC1iY3MlcyVzIiwgcHJlZml4LCBtb2RlLT5uYW1l LCBwLT5wcmVmaXgsIHN1ZmZpeCwgaC0+c3VmZml4KSB7CisJCQlpZ3Rfc3VidGVzdF9mbGFnc19m KHN1YnRlc3RfZmxhZ3MsICIlcy0lcy0lcy1pbnRlcm1peC1iY3MlcyVzIiwgcHJlZml4LCBtb2Rl LT5uYW1lLCBwLT5wcmVmaXgsIHN1ZmZpeCwgaC0+c3VmZml4KSB7CiAJCQkJcC0+cmVxdWlyZSgp OwogCQkJCWlndF9yZXF1aXJlKHJlbmRlcmNvcHkpOwogCQkJCWJ1ZmZlcnNfY3JlYXRlKCZidWZm ZXJzLCBudW1fYnVmZmVycyk7CkBAIC0xMzQ3LDcgKzEzNTAsNyBAQCBydW5fYmFzaWNfbW9kZXMo Y29uc3QgY2hhciAqcHJlZml4LAogCQkJCQkgICAgICBkb19pbnRlcm1peF9iY3MsCiAJCQkJCSAg ICAgIHAtPmNvcHksIGgtPmhhbmcpOwogCQkJfQotCQkJaWd0X3N1YnRlc3RfZigiJXMtJXMtJXMt aW50ZXJtaXgtYm90aCVzJXMiLCBwcmVmaXgsIG1vZGUtPm5hbWUsIHAtPnByZWZpeCwgc3VmZml4 LCBoLT5zdWZmaXgpIHsKKwkJCWlndF9zdWJ0ZXN0X2ZsYWdzX2Yoc3VidGVzdF9mbGFncywgIiVz LSVzLSVzLWludGVybWl4LWJvdGglcyVzIiwgcHJlZml4LCBtb2RlLT5uYW1lLCBwLT5wcmVmaXgs IHN1ZmZpeCwgaC0+c3VmZml4KSB7CiAJCQkJcC0+cmVxdWlyZSgpOwogCQkJCWlndF9yZXF1aXJl KHJlbmRlcmNvcHkpOwogCQkJCWJ1ZmZlcnNfY3JlYXRlKCZidWZmZXJzLCBudW1fYnVmZmVycyk7 CkBAIC0xMzU3LDcgKzEzNjAsNyBAQCBydW5fYmFzaWNfbW9kZXMoY29uc3QgY2hhciAqcHJlZml4 LAogCQkJfQogCiAJCQkvKiB0cnkgdG8gcmVhZCB0aGUgcmVzdWx0cyBiZWZvcmUgdGhlIGNvcHkg Y29tcGxldGVzICovCi0JCQlpZ3Rfc3VidGVzdF9mKCIlcy0lcy0lcy1lYXJseS1yZWFkJXMlcyIs IHByZWZpeCwgbW9kZS0+bmFtZSwgcC0+cHJlZml4LCBzdWZmaXgsIGgtPnN1ZmZpeCkgeworCQkJ aWd0X3N1YnRlc3RfZmxhZ3NfZihzdWJ0ZXN0X2ZsYWdzLCAiJXMtJXMtJXMtZWFybHktcmVhZCVz JXMiLCBwcmVmaXgsIG1vZGUtPm5hbWUsIHAtPnByZWZpeCwgc3VmZml4LCBoLT5zdWZmaXgpIHsK IAkJCQlwLT5yZXF1aXJlKCk7CiAJCQkJYnVmZmVyc19jcmVhdGUoJmJ1ZmZlcnMsIG51bV9idWZm ZXJzKTsKIAkJCQlydW5fd3JhcF9mdW5jKCZidWZmZXJzLApAQCAtMTM2NiwxNCArMTM2OSwxNCBA QCBydW5fYmFzaWNfbW9kZXMoY29uc3QgY2hhciAqcHJlZml4LAogCQkJfQogCiAJCQkvKiBjb25j dXJyZW50IHJlYWRzICovCi0JCQlpZ3Rfc3VidGVzdF9mKCIlcy0lcy0lcy1yZWFkLXJlYWQtYmNz JXMlcyIsIHByZWZpeCwgbW9kZS0+bmFtZSwgcC0+cHJlZml4LCBzdWZmaXgsIGgtPnN1ZmZpeCkg eworCQkJaWd0X3N1YnRlc3RfZmxhZ3NfZihzdWJ0ZXN0X2ZsYWdzLCAiJXMtJXMtJXMtcmVhZC1y ZWFkLWJjcyVzJXMiLCBwcmVmaXgsIG1vZGUtPm5hbWUsIHAtPnByZWZpeCwgc3VmZml4LCBoLT5z dWZmaXgpIHsKIAkJCQlwLT5yZXF1aXJlKCk7CiAJCQkJYnVmZmVyc19jcmVhdGUoJmJ1ZmZlcnMs IG51bV9idWZmZXJzKTsKIAkJCQlydW5fd3JhcF9mdW5jKCZidWZmZXJzLAogCQkJCQkgICAgICBk b19yZWFkX3JlYWRfYmNzLAogCQkJCQkgICAgICBwLT5jb3B5LCBoLT5oYW5nKTsKIAkJCX0KLQkJ CWlndF9zdWJ0ZXN0X2YoIiVzLSVzLSVzLXJlYWQtcmVhZC1yY3MlcyVzIiwgcHJlZml4LCBtb2Rl LT5uYW1lLCBwLT5wcmVmaXgsIHN1ZmZpeCwgaC0+c3VmZml4KSB7CisJCQlpZ3Rfc3VidGVzdF9m bGFnc19mKHN1YnRlc3RfZmxhZ3MsICIlcy0lcy0lcy1yZWFkLXJlYWQtcmNzJXMlcyIsIHByZWZp eCwgbW9kZS0+bmFtZSwgcC0+cHJlZml4LCBzdWZmaXgsIGgtPnN1ZmZpeCkgewogCQkJCXAtPnJl cXVpcmUoKTsKIAkJCQlpZ3RfcmVxdWlyZShyZW5kZXJjb3B5KTsKIAkJCQlidWZmZXJzX2NyZWF0 ZSgmYnVmZmVycywgbnVtX2J1ZmZlcnMpOwpAQCAtMTM4MywxNCArMTM4NiwxNCBAQCBydW5fYmFz aWNfbW9kZXMoY29uc3QgY2hhciAqcHJlZml4LAogCQkJfQogCiAJCQkvKiBzcGxpdCBjb3B5aW5n IGJldHdlZW4gcmluZ3MgKi8KLQkJCWlndF9zdWJ0ZXN0X2YoIiVzLSVzLSVzLXdyaXRlLXJlYWQt YmNzJXMlcyIsIHByZWZpeCwgbW9kZS0+bmFtZSwgcC0+cHJlZml4LCBzdWZmaXgsIGgtPnN1ZmZp eCkgeworCQkJaWd0X3N1YnRlc3RfZmxhZ3NfZihzdWJ0ZXN0X2ZsYWdzLCAiJXMtJXMtJXMtd3Jp dGUtcmVhZC1iY3MlcyVzIiwgcHJlZml4LCBtb2RlLT5uYW1lLCBwLT5wcmVmaXgsIHN1ZmZpeCwg aC0+c3VmZml4KSB7CiAJCQkJcC0+cmVxdWlyZSgpOwogCQkJCWJ1ZmZlcnNfY3JlYXRlKCZidWZm ZXJzLCBudW1fYnVmZmVycyk7CiAJCQkJcnVuX3dyYXBfZnVuYygmYnVmZmVycywKIAkJCQkJICAg ICAgZG9fd3JpdGVfcmVhZF9iY3MsCiAJCQkJCSAgICAgIHAtPmNvcHksIGgtPmhhbmcpOwogCQkJ fQotCQkJaWd0X3N1YnRlc3RfZigiJXMtJXMtJXMtd3JpdGUtcmVhZC1yY3MlcyVzIiwgcHJlZml4 LCBtb2RlLT5uYW1lLCBwLT5wcmVmaXgsIHN1ZmZpeCwgaC0+c3VmZml4KSB7CisJCQlpZ3Rfc3Vi dGVzdF9mbGFnc19mKHN1YnRlc3RfZmxhZ3MsICIlcy0lcy0lcy13cml0ZS1yZWFkLXJjcyVzJXMi LCBwcmVmaXgsIG1vZGUtPm5hbWUsIHAtPnByZWZpeCwgc3VmZml4LCBoLT5zdWZmaXgpIHsKIAkJ CQlwLT5yZXF1aXJlKCk7CiAJCQkJaWd0X3JlcXVpcmUocmVuZGVyY29weSk7CiAJCQkJYnVmZmVy c19jcmVhdGUoJmJ1ZmZlcnMsIG51bV9idWZmZXJzKTsKQEAgLTEzOTksOCArMTQwMiw4IEBAIHJ1 bl9iYXNpY19tb2Rlcyhjb25zdCBjaGFyICpwcmVmaXgsCiAJCQkJCSAgICAgIHAtPmNvcHksIGgt PmhhbmcpOwogCQkJfQogCi0JCQkvKiBhbmQgZmluYWxseSB0cnkgdG8gdHJpY2sgdGhlIGtlcm5l bCBpbnRvIGxvb3NpbmcgdGhlIHBlbmRpbmcgd3JpdGUgKi8KLQkJCWlndF9zdWJ0ZXN0X2YoIiVz LSVzLSVzLWdwdS1yZWFkLWFmdGVyLXdyaXRlJXMlcyIsIHByZWZpeCwgbW9kZS0+bmFtZSwgcC0+ cHJlZml4LCBzdWZmaXgsIGgtPnN1ZmZpeCkgeworCQkJLyogYW5kIGZpbmFsbHkgdHJ5IHRvIHRy aWNrIHRoZSBrZXJuZWwgaW50byBsb3NpbmcgdGhlIHBlbmRpbmcgd3JpdGUgKi8KKwkJCWlndF9z dWJ0ZXN0X2ZsYWdzX2Yoc3VidGVzdF9mbGFncywgIiVzLSVzLSVzLWdwdS1yZWFkLWFmdGVyLXdy aXRlJXMlcyIsIHByZWZpeCwgbW9kZS0+bmFtZSwgcC0+cHJlZml4LCBzdWZmaXgsIGgtPnN1ZmZp eCkgewogCQkJCXAtPnJlcXVpcmUoKTsKIAkJCQlidWZmZXJzX2NyZWF0ZSgmYnVmZmVycywgbnVt X2J1ZmZlcnMpOwogCQkJCXJ1bl93cmFwX2Z1bmMoJmJ1ZmZlcnMsCkBAIC0xNDU0LDkgKzE0NTcs NiBAQCBpZ3RfbWFpbgogCiAJaWd0X3NraXBfb25fc2ltdWxhdGlvbigpOwogCi0JaWYgKHN0cnN0 cihpZ3RfdGVzdF9uYW1lKCksICJhbGwiKSkKLQkJYWxsID0gdHJ1ZTsKLQogCWlndF9maXh0dXJl IHsKIAkJZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVSX0lOVEVMKTsKIAkJaW50ZWxfZGV0ZWN0 X2FuZF9jbGVhcl9taXNzZWRfaW50ZXJydXB0cyhmZCk7CmRpZmYgLS1naXQgYS90ZXN0cy9rbXNf ZnJvbnRidWZmZXJfdHJhY2tpbmcuYyBiL3Rlc3RzL2ttc19mcm9udGJ1ZmZlcl90cmFja2luZy5j CmluZGV4IDY0Zjg4MGM2NjdhMy4uNjUxMzAzZTlkMzkyIDEwMDY0NAotLS0gYS90ZXN0cy9rbXNf ZnJvbnRidWZmZXJfdHJhY2tpbmcuYworKysgYi90ZXN0cy9rbXNfZnJvbnRidWZmZXJfdHJhY2tp bmcuYwpAQCAtNDcsOCArNDcsNyBAQCBJR1RfVEVTVF9ERVNDUklQVElPTigiVGVzdCB0aGUgS2Vy bmVsJ3MgZnJvbnRidWZmZXIgdHJhY2tpbmcgbWVjaGFuaXNtIGFuZCAiCiAgKiBjb21iaW5hdGlv bnMgdGhhdCBhcmUgc29tZXdoYXQgcmVkdW5kYW50IGFuZCBkb24ndCBhZGQgbXVjaCB2YWx1ZSB0 byB0aGUKICAqIHRlc3QuIEZvciBleGFtcGxlLCBzaW5jZSB3ZSBhbHJlYWR5IGRvIHRoZSBvZmZz Y3JlZW4gdGVzdGluZyB3aXRoIGEgc2luZ2xlCiAgKiBwaXBlIGVuYWJsZWQsIHRoZXJlJ3Mgbm8g bXVjaCB2YWx1ZSBpbiBkb2luZyBpdCBhZ2FpbiB3aXRoIGR1YWwgcGlwZXMuIElmIHlvdQotICog c3RpbGwgd2FudCB0byB0cnkgdGhlc2UgcmVkdW5kYW50IHRlc3RzLCB5b3UgbmVlZCB0byB1c2Ug dGhlIC0tc2hvdy1oaWRkZW4KLSAqIG9wdGlvbi4KKyAqIHN0aWxsIHdhbnQgdG8gdHJ5IHRoZXNl IHJlZHVuZGFudCB0ZXN0cywgeW91IG5lZWQgdG8gdXNlIHRoZSAtLWFsbCBvcHRpb24uCiAgKgog ICogVGhlIG1vc3QgaW1wb3J0YW50IGhpZGRlbiB0aGluZyBpcyB0aGUgRkVBVFVSRV9OT05FIHNl dCBvZiB0ZXN0cy4gV2hlbmV2ZXIKICAqIHlvdSBnZXQgYSBmYWlsdXJlIG9uIGFueSB0ZXN0LCBp dCBpcyBpbXBvcnRhbnQgdG8gY2hlY2sgd2hldGhlciB0aGUgc2FtZSB0ZXN0CkBAIC0xMjYsNiAr MTI1LDkgQEAgc3RydWN0IHRlc3RfbW9kZSB7CiAJfSBmbGlwOwogCiAJZW51bSBpZ3RfZHJhd19t ZXRob2QgbWV0aG9kOworCisJLyogU3BlY2lmaWVzIHRoZSBzdWJ0ZXN0IGNhdGVnb3JpZXMgdGhp cyBzdWJ0ZXN0IGJlbG9uZ3MgdG8gKi8KKwl1bnNpZ25lZCBsb25nIHN1YnRlc3RfZmxhZ3M7CiB9 OwogCiBlbnVtIGNvbG9yIHsKQEAgLTI0MSw3ICsyNDMsNiBAQCBzdHJ1Y3QgewogCWJvb2wgZmJj X2NoZWNrX2xhc3RfYWN0aW9uOwogCWJvb2wgbm9fZWRwOwogCWJvb2wgc21hbGxfbW9kZXM7Ci0J Ym9vbCBzaG93X2hpZGRlbjsKIAlpbnQgc3RlcDsKIAlpbnQgb25seV9waXBlczsKIAlpbnQgc2hh cmVkX2ZiX3hfb2Zmc2V0OwpAQCAtMjUzLDcgKzI1NCw2IEBAIHN0cnVjdCB7CiAJLmZiY19jaGVj a19sYXN0X2FjdGlvbiA9IHRydWUsCiAJLm5vX2VkcCA9IGZhbHNlLAogCS5zbWFsbF9tb2RlcyA9 IGZhbHNlLAotCS5zaG93X2hpZGRlbj0gZmFsc2UsCiAJLnN0ZXAgPSAwLAogCS5vbmx5X3BpcGVz ID0gUElQRV9DT1VOVCwKIAkuc2hhcmVkX2ZiX3hfb2Zmc2V0ID0gNTAwLApAQCAtMzA3NSw5ICsz MDc1LDYgQEAgc3RhdGljIGludCBvcHRfaGFuZGxlcihpbnQgb3B0aW9uLCBpbnQgb3B0aW9uX2lu ZGV4LCB2b2lkICpkYXRhKQogCWNhc2UgJ20nOgogCQlvcHQuc21hbGxfbW9kZXMgPSB0cnVlOwog CQlicmVhazsKLQljYXNlICdpJzoKLQkJb3B0LnNob3dfaGlkZGVuID0gdHJ1ZTsKLQkJYnJlYWs7 CiAJY2FzZSAndCc6CiAJCW9wdC5zdGVwKys7CiAJCWJyZWFrOwpAQCAtMzExMyw3ICszMTEwLDYg QEAgY29uc3QgY2hhciAqaGVscF9zdHIgPQogIiAgLS1uby1mYmMtYWN0aW9uLWNoZWNrICAgICAg IERvbid0IGNoZWNrIGZvciB0aGUgRkJDIGxhc3QgYWN0aW9uXG4iCiAiICAtLW5vLWVkcCAgICAg ICAgICAgICAgICAgICAgRG9uJ3QgdXNlIGVEUCBtb25pdG9yc1xuIgogIiAgLS11c2Utc21hbGwt bW9kZXMgICAgICAgICAgIFVzZSBzbWFsbGVyIHJlc29sdXRpb25zIGZvciB0aGUgbW9kZXNcbiIK LSIgIC0tc2hvdy1oaWRkZW4gICAgICAgICAgICAgICBTaG93IGhpZGRlbiBzdWJ0ZXN0c1xuIgog IiAgLS1zdGVwICAgICAgICAgICAgICAgICAgICAgIFN0b3Agb24gZWFjaCBzdGVwIHNvIHlvdSBj YW4gY2hlY2sgdGhlIHNjcmVlblxuIgogIiAgLS1zaGFyZWQtZmIteCBvZmZzZXQgICAgICAgIFVz ZSAnb2Zmc2V0JyBhcyB0aGUgWCBvZmZzZXQgZm9yIHRoZSBzaGFyZWQgRkJcbiIKICIgIC0tc2hh cmVkLWZiLXkgb2Zmc2V0ICAgICAgICBVc2UgJ29mZnNldCcgYXMgdGhlIFkgb2Zmc2V0IGZvciB0 aGUgc2hhcmVkIEZCXG4iCkBAIC0zMjI3LDE4ICszMjIzLDE5IEBAIHN0YXRpYyBjb25zdCBjaGFy ICpmbGlwX3N0cihlbnVtIGZsaXBfdHlwZSBmbGlwKQogCWZvciAodC5wbGFuZSA9IDA7IHQucGxh bmUgPCBQTEFORV9DT1VOVDsgdC5wbGFuZSsrKSB7CQkgICBcCiAJZm9yICh0LmZicyA9IDA7IHQu ZmJzIDwgRkJTX0NPVU5UOyB0LmZicysrKSB7CQkJICAgXAogCWZvciAodC5tZXRob2QgPSAwOyB0 Lm1ldGhvZCA8IElHVF9EUkFXX01FVEhPRF9DT1VOVDsgdC5tZXRob2QrKykgeyBcCisJCXQuc3Vi dGVzdF9mbGFncyA9IFNVQlRFU1RfVFlQRV9OT1JNQUw7CQkJICAgXAogCQlpZiAodC5waXBlcyA9 PSBQSVBFX1NJTkdMRSAmJiB0LnNjcmVlbiA9PSBTQ1JFRU5fU0NORCkJICAgXAogCQkJY29udGlu dWU7CQkJCQkgICBcCiAJCWlmICh0LnNjcmVlbiA9PSBTQ1JFRU5fT0ZGU0NSRUVOICYmIHQucGxh bmUgIT0gUExBTkVfUFJJKSAgXAogCQkJY29udGludWU7CQkJCQkgICBcCi0JCWlmICghb3B0LnNo b3dfaGlkZGVuICYmIHQucGlwZXMgPT0gUElQRV9EVUFMICYmCQkgICBcCisJCWlmICh0LnBpcGVz ID09IFBJUEVfRFVBTCAmJgkJCQkgICBcCiAJCSAgICB0LnNjcmVlbiA9PSBTQ1JFRU5fT0ZGU0NS RUVOKQkJCSAgIFwKLQkJCWNvbnRpbnVlOwkJCQkJICAgXAotCQlpZiAoIW9wdC5zaG93X2hpZGRl biAmJiB0LmZlYXR1cmUgPT0gRkVBVFVSRV9OT05FKQkgICBcCi0JCQljb250aW51ZTsJCQkJCSAg IFwKLQkJaWYgKCFvcHQuc2hvd19oaWRkZW4gJiYgdC5mYnMgPT0gRkJTX1NIQVJFRCAmJgkJICAg XAorCQkJdC5zdWJ0ZXN0X2ZsYWdzID0gU1VCVEVTVF9UWVBFX1NMT1c7CQkgICBcCisJCWlmICh0 LmZlYXR1cmUgPT0gRkVBVFVSRV9OT05FKQkJCQkgICBcCisJCQl0LnN1YnRlc3RfZmxhZ3MgPSBT VUJURVNUX1RZUEVfU0xPVzsJCSAgIFwKKwkJaWYgKHQuZmJzID09IEZCU19TSEFSRUQgJiYJCQkJ ICAgXAogCQkgICAgKHQucGxhbmUgPT0gUExBTkVfQ1VSIHx8IHQucGxhbmUgPT0gUExBTkVfU1BS KSkJICAgXAotCQkJY29udGludWU7CisJCQl0LnN1YnRlc3RfZmxhZ3MgPSBTVUJURVNUX1RZUEVf U0xPVzsKIAogCiAjZGVmaW5lIFRFU1RfTU9ERV9JVEVSX0VORCB9IH0gfSB9IH0gfQpAQCAtMzI1 Myw3ICszMjUwLDYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJeyAibm8t ZmJjLWFjdGlvbi1jaGVjayIsICAgICAgMCwgMCwgJ2EnfSwKIAkJeyAibm8tZWRwIiwgICAgICAg ICAgICAgICAgICAgMCwgMCwgJ2UnfSwKIAkJeyAidXNlLXNtYWxsLW1vZGVzIiwgICAgICAgICAg MCwgMCwgJ20nfSwKLQkJeyAic2hvdy1oaWRkZW4iLCAgICAgICAgICAgICAgMCwgMCwgJ2knfSwK IAkJeyAic3RlcCIsICAgICAgICAgICAgICAgICAgICAgMCwgMCwgJ3QnfSwKIAkJeyAic2hhcmVk LWZiLXgiLCAgICAgICAgICAgICAgMSwgMCwgJ3gnfSwKIAkJeyAic2hhcmVkLWZiLXkiLCAgICAg ICAgICAgICAgMSwgMCwgJ3knfSwKQEAgLTMyNjksOCArMzI2NSw5IEBAIGludCBtYWluKGludCBh cmdjLCBjaGFyICphcmd2W10pCiAJCXNldHVwX2Vudmlyb25tZW50KCk7CiAKIAlmb3IgKHQuZmVh dHVyZSA9IDA7IHQuZmVhdHVyZSA8IEZFQVRVUkVfQ09VTlQ7IHQuZmVhdHVyZSsrKSB7Ci0JCWlm ICghb3B0LnNob3dfaGlkZGVuICYmIHQuZmVhdHVyZSA9PSBGRUFUVVJFX05PTkUpCi0JCQljb250 aW51ZTsKKwkJdC5zdWJ0ZXN0X2ZsYWdzID0gU1VCVEVTVF9UWVBFX05PUk1BTDsKKwkJaWYgKHQu ZmVhdHVyZSA9PSBGRUFUVVJFX05PTkUpCisJCQl0LnN1YnRlc3RfZmxhZ3MgPSBTVUJURVNUX1RZ UEVfU0xPVzsKIAkJZm9yICh0LnBpcGVzID0gMDsgdC5waXBlcyA8IFBJUEVfQ09VTlQ7IHQucGlw ZXMrKykgewogCQkJdC5zY3JlZW4gPSBTQ1JFRU5fUFJJTTsKIAkJCXQucGxhbmUgPSBQTEFORV9Q Ukk7CkBAIC0zMjgwLDM4ICszMjc3LDQzIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2 W10pCiAJCQl0LmZsaXAgPSAtMTsKIAkJCXQubWV0aG9kID0gLTE7CiAKLQkJCWlndF9zdWJ0ZXN0 X2YoIiVzLSVzLXJ0ZSIsCi0JCQkJICAgICAgZmVhdHVyZV9zdHIodC5mZWF0dXJlKSwKLQkJCQkg ICAgICBwaXBlc19zdHIodC5waXBlcykpCisJCQlpZ3Rfc3VidGVzdF9mbGFnc19mKHQuc3VidGVz dF9mbGFncywKKwkJCQkJICAgICIlcy0lcy1ydGUiLAorCQkJCQkgICAgZmVhdHVyZV9zdHIodC5m ZWF0dXJlKSwKKwkJCQkJICAgIHBpcGVzX3N0cih0LnBpcGVzKSkKIAkJCQlydGVfc3VidGVzdCgm dCk7CiAJCX0KIAl9CiAKIAlURVNUX01PREVfSVRFUl9CRUdJTih0KQotCQlpZ3Rfc3VidGVzdF9m KCIlcy0lcy0lcy0lcy0lcy1kcmF3LSVzIiwKLQkJCSAgICAgIGZlYXR1cmVfc3RyKHQuZmVhdHVy ZSksCi0JCQkgICAgICBwaXBlc19zdHIodC5waXBlcyksCi0JCQkgICAgICBzY3JlZW5fc3RyKHQu c2NyZWVuKSwKLQkJCSAgICAgIHBsYW5lX3N0cih0LnBsYW5lKSwKLQkJCSAgICAgIGZic19zdHIo dC5mYnMpLAotCQkJICAgICAgaWd0X2RyYXdfZ2V0X21ldGhvZF9uYW1lKHQubWV0aG9kKSkKKwkJ aWd0X3N1YnRlc3RfZmxhZ3NfZih0LnN1YnRlc3RfZmxhZ3MsCisJCQkJICAgICIlcy0lcy0lcy0l cy0lcy1kcmF3LSVzIiwKKwkJCQkgICAgZmVhdHVyZV9zdHIodC5mZWF0dXJlKSwKKwkJCQkgICAg cGlwZXNfc3RyKHQucGlwZXMpLAorCQkJCSAgICBzY3JlZW5fc3RyKHQuc2NyZWVuKSwKKwkJCQkg ICAgcGxhbmVfc3RyKHQucGxhbmUpLAorCQkJCSAgICBmYnNfc3RyKHQuZmJzKSwKKwkJCQkgICAg aWd0X2RyYXdfZ2V0X21ldGhvZF9uYW1lKHQubWV0aG9kKSkKIAkJCWRyYXdfc3VidGVzdCgmdCk7 CiAJVEVTVF9NT0RFX0lURVJfRU5ECiAKIAlURVNUX01PREVfSVRFUl9CRUdJTih0KQogCQlpZiAo dC5wbGFuZSAhPSBQTEFORV9QUkkgfHwKLQkJICAgIHQuc2NyZWVuID09IFNDUkVFTl9PRkZTQ1JF RU4gfHwKLQkJICAgICghb3B0LnNob3dfaGlkZGVuICYmIHQubWV0aG9kICE9IElHVF9EUkFXX0JM VCkpCisJCSAgICB0LnNjcmVlbiA9PSBTQ1JFRU5fT0ZGU0NSRUVOKQogCQkJY29udGludWU7CiAK KwkJaWYgKHQubWV0aG9kICE9IElHVF9EUkFXX0JMVCkKKwkJCXQuc3VidGVzdF9mbGFncyA9IFNV QlRFU1RfVFlQRV9TTE9XOworCiAJCWZvciAodC5mbGlwID0gMDsgdC5mbGlwIDwgRkxJUF9DT1VO VDsgdC5mbGlwKyspCi0JCQlpZ3Rfc3VidGVzdF9mKCIlcy0lcy0lcy0lcy0lc2ZsaXAtJXMiLAot CQkJCSAgICAgIGZlYXR1cmVfc3RyKHQuZmVhdHVyZSksCi0JCQkJICAgICAgcGlwZXNfc3RyKHQu cGlwZXMpLAotCQkJCSAgICAgIHNjcmVlbl9zdHIodC5zY3JlZW4pLAotCQkJCSAgICAgIGZic19z dHIodC5mYnMpLAotCQkJCSAgICAgIGZsaXBfc3RyKHQuZmxpcCksCi0JCQkJICAgICAgaWd0X2Ry YXdfZ2V0X21ldGhvZF9uYW1lKHQubWV0aG9kKSkKKwkJCWlndF9zdWJ0ZXN0X2ZsYWdzX2YodC5z dWJ0ZXN0X2ZsYWdzLAorCQkJCQkgICAgIiVzLSVzLSVzLSVzLSVzZmxpcC0lcyIsCisJCQkJCSAg ICBmZWF0dXJlX3N0cih0LmZlYXR1cmUpLAorCQkJCQkgICAgcGlwZXNfc3RyKHQucGlwZXMpLAor CQkJCQkgICAgc2NyZWVuX3N0cih0LnNjcmVlbiksCisJCQkJCSAgICBmYnNfc3RyKHQuZmJzKSwK KwkJCQkJICAgIGZsaXBfc3RyKHQuZmxpcCksCisJCQkJCSAgICBpZ3RfZHJhd19nZXRfbWV0aG9k X25hbWUodC5tZXRob2QpKQogCQkJCWZsaXBfc3VidGVzdCgmdCk7CiAJVEVTVF9NT0RFX0lURVJf RU5ECiAKQEAgLTMzMjIsMTAgKzMzMjQsMTEgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFy Z3ZbXSkKIAkJICAgICh0LmZlYXR1cmUgJiBGRUFUVVJFX0ZCQykgPT0gMCkKIAkJCWNvbnRpbnVl OwogCi0JCWlndF9zdWJ0ZXN0X2YoIiVzLSVzLSVzLWZsaXB0cmFjayIsCi0JCQkgICAgICBmZWF0 dXJlX3N0cih0LmZlYXR1cmUpLAotCQkJICAgICAgcGlwZXNfc3RyKHQucGlwZXMpLAotCQkJICAg ICAgZmJzX3N0cih0LmZicykpCisJCWlndF9zdWJ0ZXN0X2ZsYWdzX2YodC5zdWJ0ZXN0X2ZsYWdz LAorCQkJCSAgICAiJXMtJXMtJXMtZmxpcHRyYWNrIiwKKwkJCQkgICAgZmVhdHVyZV9zdHIodC5m ZWF0dXJlKSwKKwkJCQkgICAgcGlwZXNfc3RyKHQucGlwZXMpLAorCQkJCSAgICBmYnNfc3RyKHQu ZmJzKSkKIAkJCWZsaXB0cmFja19zdWJ0ZXN0KCZ0LCBGTElQX1BBR0VGTElQKTsKIAlURVNUX01P REVfSVRFUl9FTkQKIApAQCAtMzMzNSwyMCArMzMzOCwyMiBAQCBpbnQgbWFpbihpbnQgYXJnYywg Y2hhciAqYXJndltdKQogCQkgICAgdC5wbGFuZSA9PSBQTEFORV9QUkkpCiAJCQljb250aW51ZTsK IAotCQlpZ3Rfc3VidGVzdF9mKCIlcy0lcy0lcy0lcy0lcy1tb3ZlIiwKLQkJCSAgICAgIGZlYXR1 cmVfc3RyKHQuZmVhdHVyZSksCi0JCQkgICAgICBwaXBlc19zdHIodC5waXBlcyksCi0JCQkgICAg ICBzY3JlZW5fc3RyKHQuc2NyZWVuKSwKLQkJCSAgICAgIHBsYW5lX3N0cih0LnBsYW5lKSwKLQkJ CSAgICAgIGZic19zdHIodC5mYnMpKQorCQlpZ3Rfc3VidGVzdF9mbGFnc19mKHQuc3VidGVzdF9m bGFncywKKwkJCQkgICAgIiVzLSVzLSVzLSVzLSVzLW1vdmUiLAorCQkJCSAgICBmZWF0dXJlX3N0 cih0LmZlYXR1cmUpLAorCQkJCSAgICBwaXBlc19zdHIodC5waXBlcyksCisJCQkJICAgIHNjcmVl bl9zdHIodC5zY3JlZW4pLAorCQkJCSAgICBwbGFuZV9zdHIodC5wbGFuZSksCisJCQkJICAgIGZi c19zdHIodC5mYnMpKQogCQkJbW92ZV9zdWJ0ZXN0KCZ0KTsKIAotCQlpZ3Rfc3VidGVzdF9mKCIl cy0lcy0lcy0lcy0lcy1vbm9mZiIsCi0JCQkgICAgICBmZWF0dXJlX3N0cih0LmZlYXR1cmUpLAot CQkJICAgICAgcGlwZXNfc3RyKHQucGlwZXMpLAotCQkJICAgICAgc2NyZWVuX3N0cih0LnNjcmVl biksCi0JCQkgICAgICBwbGFuZV9zdHIodC5wbGFuZSksCi0JCQkgICAgICBmYnNfc3RyKHQuZmJz KSkKKwkJaWd0X3N1YnRlc3RfZmxhZ3NfZih0LnN1YnRlc3RfZmxhZ3MsCisJCQkJICAgICIlcy0l cy0lcy0lcy0lcy1vbm9mZiIsCisJCQkJICAgIGZlYXR1cmVfc3RyKHQuZmVhdHVyZSksCisJCQkJ ICAgIHBpcGVzX3N0cih0LnBpcGVzKSwKKwkJCQkgICAgc2NyZWVuX3N0cih0LnNjcmVlbiksCisJ CQkJICAgIHBsYW5lX3N0cih0LnBsYW5lKSwKKwkJCQkgICAgZmJzX3N0cih0LmZicykpCiAJCQlv bm9mZl9zdWJ0ZXN0KCZ0KTsKIAlURVNUX01PREVfSVRFUl9FTkQKIApAQCAtMzM1OCwyNyArMzM2 MywzMSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQkgICAgdC5wbGFuZSAh PSBQTEFORV9TUFIpCiAJCQljb250aW51ZTsKIAotCQlpZ3Rfc3VidGVzdF9mKCIlcy0lcy0lcy0l cy0lcy1mdWxsc2NyZWVuIiwKLQkJCSAgICAgIGZlYXR1cmVfc3RyKHQuZmVhdHVyZSksCi0JCQkg ICAgICBwaXBlc19zdHIodC5waXBlcyksCi0JCQkgICAgICBzY3JlZW5fc3RyKHQuc2NyZWVuKSwK LQkJCSAgICAgIHBsYW5lX3N0cih0LnBsYW5lKSwKLQkJCSAgICAgIGZic19zdHIodC5mYnMpKQor CQlpZ3Rfc3VidGVzdF9mbGFnc19mKHQuc3VidGVzdF9mbGFncywKKwkJCQkgICAgIiVzLSVzLSVz LSVzLSVzLWZ1bGxzY3JlZW4iLAorCQkJCSAgICBmZWF0dXJlX3N0cih0LmZlYXR1cmUpLAorCQkJ CSAgICBwaXBlc19zdHIodC5waXBlcyksCisJCQkJICAgIHNjcmVlbl9zdHIodC5zY3JlZW4pLAor CQkJCSAgICBwbGFuZV9zdHIodC5wbGFuZSksCisJCQkJICAgIGZic19zdHIodC5mYnMpKQogCQkJ ZnVsbHNjcmVlbl9wbGFuZV9zdWJ0ZXN0KCZ0KTsKIAlURVNUX01PREVfSVRFUl9FTkQKIAogCVRF U1RfTU9ERV9JVEVSX0JFR0lOKHQpCiAJCWlmICh0LnNjcmVlbiAhPSBTQ1JFRU5fUFJJTSB8fAot CQkgICAgdC5tZXRob2QgIT0gSUdUX0RSQVdfQkxUIHx8Ci0JCSAgICAoIW9wdC5zaG93X2hpZGRl biAmJiB0LnBsYW5lICE9IFBMQU5FX1BSSSkgfHwKLQkJICAgICghb3B0LnNob3dfaGlkZGVuICYm IHQuZmJzICE9IEZCU19JTkRJVklEVUFMKSkKKwkJICAgIHQubWV0aG9kICE9IElHVF9EUkFXX0JM VCkKIAkJCWNvbnRpbnVlOwogCi0JCWlndF9zdWJ0ZXN0X2YoIiVzLSVzLSVzLSVzLW11bHRpZHJh dyIsCi0JCQkgICAgICBmZWF0dXJlX3N0cih0LmZlYXR1cmUpLAotCQkJICAgICAgcGlwZXNfc3Ry KHQucGlwZXMpLAotCQkJICAgICAgcGxhbmVfc3RyKHQucGxhbmUpLAotCQkJICAgICAgZmJzX3N0 cih0LmZicykpCisJCWlmICh0LnBsYW5lICE9IFBMQU5FX1BSSSB8fAorCQkgICAgdC5mYnMgIT0g RkJTX0lORElWSURVQUwpCisJCQl0LnN1YnRlc3RfZmxhZ3MgPSBTVUJURVNUX1RZUEVfU0xPVzsK KworCQlpZ3Rfc3VidGVzdF9mbGFnc19mKHQuc3VidGVzdF9mbGFncywKKwkJCQkgICAgIiVzLSVz LSVzLSVzLW11bHRpZHJhdyIsCisJCQkJICAgIGZlYXR1cmVfc3RyKHQuZmVhdHVyZSksCisJCQkJ ICAgIHBpcGVzX3N0cih0LnBpcGVzKSwKKwkJCQkgICAgcGxhbmVfc3RyKHQucGxhbmUpLAorCQkJ CSAgICBmYnNfc3RyKHQuZmJzKSkKIAkJCW11bHRpZHJhd19zdWJ0ZXN0KCZ0KTsKIAlURVNUX01P REVfSVRFUl9FTkQKIApAQCAtMzM5MCw3ICszMzk5LDkgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNo YXIgKmFyZ3ZbXSkKIAkJICAgIHQubWV0aG9kICE9IElHVF9EUkFXX01NQVBfR1RUKQogCQkJY29u dGludWU7CiAKLQkJaWd0X3N1YnRlc3RfZigiJXMtZmFyZnJvbWZlbmNlIiwgZmVhdHVyZV9zdHIo dC5mZWF0dXJlKSkKKwkJaWd0X3N1YnRlc3RfZmxhZ3NfZih0LnN1YnRlc3RfZmxhZ3MsCisJCQkJ ICAgICIlcy1mYXJmcm9tZmVuY2UiLAorCQkJCSAgICBmZWF0dXJlX3N0cih0LmZlYXR1cmUpKQog CQkJZmFyZnJvbWZlbmNlX3N1YnRlc3QoJnQpOwogCVRFU1RfTU9ERV9JVEVSX0VORAogCkBAIC0z NDA2LDEwICszNDE3LDExIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJCQlp ZiAodC5mb3JtYXQgPT0gRk9STUFUX0RFRkFVTFQpCiAJCQkJY29udGludWU7CiAKLQkJCWlndF9z dWJ0ZXN0X2YoIiVzLSVzLWRyYXctJXMiLAotCQkJCSAgICAgIGZlYXR1cmVfc3RyKHQuZmVhdHVy ZSksCi0JCQkJICAgICAgZm9ybWF0X3N0cih0LmZvcm1hdCksCi0JCQkJICAgICAgaWd0X2RyYXdf Z2V0X21ldGhvZF9uYW1lKHQubWV0aG9kKSkKKwkJCWlndF9zdWJ0ZXN0X2ZsYWdzX2YodC5zdWJ0 ZXN0X2ZsYWdzLAorCQkJCQkgICAgIiVzLSVzLWRyYXctJXMiLAorCQkJCQkgICAgZmVhdHVyZV9z dHIodC5mZWF0dXJlKSwKKwkJCQkJICAgIGZvcm1hdF9zdHIodC5mb3JtYXQpLAorCQkJCQkgICAg aWd0X2RyYXdfZ2V0X21ldGhvZF9uYW1lKHQubWV0aG9kKSkKIAkJCQlmb3JtYXRfZHJhd19zdWJ0 ZXN0KCZ0KTsKIAkJfQogCVRFU1RfTU9ERV9JVEVSX0VORApAQCAtMzQyMCw5ICszNDMyLDExIEBA IGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJCSAgICB0LnBsYW5lICE9IFBMQU5F X1BSSSB8fAogCQkgICAgdC5tZXRob2QgIT0gSUdUX0RSQVdfTU1BUF9DUFUpCiAJCQljb250aW51 ZTsKLQkJaWd0X3N1YnRlc3RfZigiJXMtJXMtc2NhbGVkcHJpbWFyeSIsCi0JCQkgICAgICBmZWF0 dXJlX3N0cih0LmZlYXR1cmUpLAotCQkJICAgICAgZmJzX3N0cih0LmZicykpCisKKwkJaWd0X3N1 YnRlc3RfZmxhZ3NfZih0LnN1YnRlc3RfZmxhZ3MsCisJCQkJICAgICIlcy0lcy1zY2FsZWRwcmlt YXJ5IiwKKwkJCQkgICAgZmVhdHVyZV9zdHIodC5mZWF0dXJlKSwKKwkJCQkgICAgZmJzX3N0cih0 LmZicykpCiAJCQlzY2FsZWRwcmltYXJ5X3N1YnRlc3QoJnQpOwogCVRFU1RfTU9ERV9JVEVSX0VO RAogCkBAIC0zNDM0LDI1ICszNDQ4LDM3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2 W10pCiAJCSAgICB0Lm1ldGhvZCAhPSBJR1RfRFJBV19NTUFQX0NQVSkKIAkJCWNvbnRpbnVlOwog Ci0JCWlndF9zdWJ0ZXN0X2YoIiVzLW1vZGVzZXRmcm9tYnVzeSIsIGZlYXR1cmVfc3RyKHQuZmVh dHVyZSkpCisJCWlndF9zdWJ0ZXN0X2ZsYWdzX2YodC5zdWJ0ZXN0X2ZsYWdzLAorCQkJCSAgICAi JXMtbW9kZXNldGZyb21idXN5IiwKKwkJCQkgICAgZmVhdHVyZV9zdHIodC5mZWF0dXJlKSkKIAkJ CW1vZGVzZXRmcm9tYnVzeV9zdWJ0ZXN0KCZ0KTsKIAogCQlpZiAodC5mZWF0dXJlICYgRkVBVFVS RV9GQkMpIHsKLQkJCWlndF9zdWJ0ZXN0X2YoIiVzLWJhZHN0cmlkZSIsIGZlYXR1cmVfc3RyKHQu ZmVhdHVyZSkpCisJCQlpZ3Rfc3VidGVzdF9mbGFnc19mKHQuc3VidGVzdF9mbGFncywKKwkJCQkJ ICAgICIlcy1iYWRzdHJpZGUiLAorCQkJCQkgICAgZmVhdHVyZV9zdHIodC5mZWF0dXJlKSkKIAkJ CQliYWRzdHJpZGVfc3VidGVzdCgmdCk7CiAKLQkJCWlndF9zdWJ0ZXN0X2YoIiVzLXN0cmlkZWNo YW5nZSIsIGZlYXR1cmVfc3RyKHQuZmVhdHVyZSkpCisJCQlpZ3Rfc3VidGVzdF9mbGFnc19mKHQu c3VidGVzdF9mbGFncywKKwkJCQkJICAgICIlcy1zdHJpZGVjaGFuZ2UiLAorCQkJCQkgICAgZmVh dHVyZV9zdHIodC5mZWF0dXJlKSkKIAkJCQlzdHJpZGVjaGFuZ2Vfc3VidGVzdCgmdCk7CiAKLQkJ CWlndF9zdWJ0ZXN0X2YoIiVzLXRpbGluZ2NoYW5nZSIsIGZlYXR1cmVfc3RyKHQuZmVhdHVyZSkp CisJCQlpZ3Rfc3VidGVzdF9mbGFnc19mKHQuc3VidGVzdF9mbGFncywKKwkJCQkJICAgICIlcy10 aWxpbmdjaGFuZ2UiLAorCQkJCQkgICAgZmVhdHVyZV9zdHIodC5mZWF0dXJlKSkKIAkJCQl0aWxp bmdjaGFuZ2Vfc3VidGVzdCgmdCk7CiAJCX0KIAogCQlpZiAodC5mZWF0dXJlICYgRkVBVFVSRV9Q U1IpCi0JCQlpZ3Rfc3VidGVzdF9mKCIlcy1zbG93ZHJhdyIsIGZlYXR1cmVfc3RyKHQuZmVhdHVy ZSkpCisJCQlpZ3Rfc3VidGVzdF9mbGFnc19mKHQuc3VidGVzdF9mbGFncywKKwkJCQkJICAgICIl cy1zbG93ZHJhdyIsCisJCQkJCSAgICBmZWF0dXJlX3N0cih0LmZlYXR1cmUpKQogCQkJCXNsb3df ZHJhd19zdWJ0ZXN0KCZ0KTsKIAotCQlpZ3Rfc3VidGVzdF9mKCIlcy1zdXNwZW5kIiwgZmVhdHVy ZV9zdHIodC5mZWF0dXJlKSkKKwkJaWd0X3N1YnRlc3RfZmxhZ3NfZih0LnN1YnRlc3RfZmxhZ3Ms CisJCQkJICAgICIlcy1zdXNwZW5kIiwKKwkJCQkgICAgZmVhdHVyZV9zdHIodC5mZWF0dXJlKSkK IAkJCXN1c3BlbmRfc3VidGVzdCgmdCk7CiAJVEVTVF9NT0RFX0lURVJfRU5ECiAKLS0gCjIuNy4w CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK