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 CA7826E79F for ; Tue, 26 Mar 2019 08:03:14 +0000 (UTC) From: Stanislav Lisovskiy Date: Tue, 26 Mar 2019 10:03:05 +0200 Message-Id: <20190326080305.29764-1-stanislav.lisovskiy@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v5] igt/tests: kms_plane_stress: Add plane stress test 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: stanislav.lisovskiy@intel.com, ville.syrjala@intel.com, martin.peres@intel.com List-ID: VGhpcyB0ZXN0IGF0dGVtcHRzIHRvIHV0aWxpemUgYWxsIGNvbm5lY3RlZApvdXRwdXRzIGF0IHRo ZSBzYW1lIHRpbWUsIHVzaW5nIG1heGltdW0gcG9zc2libGUKcmVzb2x1dGlvbiBhbmQgYW1vdW50 IG9mIHBsYW5lcywgdG8gY2hlY2sgd2hldGhlcgp3ZSBhcmUgaGl0aW5nIGFueSBraW5kIG9mIGJh bmR3aWR0aCwgd2F0ZXJtYXJrIG9yCm90aGVyIGxpbWl0YXRpb25zLgoKdjI6IEFkZGVkIGNwdSBh bmQgZ3B1IGxvYWQgdGhyZWFkcywgd2hpY2ggY29uc3VtZQogICAgYWRkaXRpb25hbCBiYW5kd2lk dGguCgp2MzogUmVtb3ZlZCBiaW5hcnkgcGljdHVyZSBmaWxlLCB1c2luZyBwYXR0ZXJuIGZiCiAg ICBpbnN0ZWFkLgoKdjQ6IE1vdmVkIEZCIGNyZWF0aW9uL3JlbW92YWwgdG8gYmV0dGVyIHBsYWNl LgoKdjU6IEZpeGVkIHJlYmFzZSBjb25mbGljdCBhbmQgY2hhbmdlZCAiZmItPnRpbGluZyIKICAg IHRvICJmYi0+bW9kaWZpZXIiLgoKU2lnbmVkLW9mZi1ieTogU3RhbmlzbGF2IExpc292c2tpeSA8 c3RhbmlzbGF2Lmxpc292c2tpeUBpbnRlbC5jb20+Ci0tLQogbGliL2lndF9rbXMuaCAgICAgICAg ICAgIHwgICA3ICsKIHRlc3RzL01ha2VmaWxlLnNvdXJjZXMgICB8ICAgMSArCiB0ZXN0cy9rbXNf cGxhbmVfc3RyZXNzLmMgfCA1NDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCiB0ZXN0cy9tZXNvbi5idWlsZCAgICAgICAgfCAgIDEgKwogNCBmaWxlcyBjaGFuZ2VkLCA1 NTUgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2ttc19wbGFuZV9zdHJl c3MuYwoKZGlmZiAtLWdpdCBhL2xpYi9pZ3Rfa21zLmggYi9saWIvaWd0X2ttcy5oCmluZGV4IDQw N2YzZDY0Li4wZTY3ODRjYSAxMDA2NDQKLS0tIGEvbGliL2lndF9rbXMuaAorKysgYi9saWIvaWd0 X2ttcy5oCkBAIC01MTksNiArNTE5LDEzIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpZ3Rfb3V0cHV0 X2lzX2Nvbm5lY3RlZChpZ3Rfb3V0cHV0X3QgKm91dHB1dCkKIAkJZm9yX2VhY2hfaWYgKCgoKG91 dHB1dCkgPSAmKGRpc3BsYXkpLT5vdXRwdXRzW2Nvbl9fXSksIFwKIAkJCSAgICAgaWd0X3BpcGVf Y29ubmVjdG9yX3ZhbGlkKChwaXBlKSwgKG91dHB1dCkpKSkKIAorI2RlZmluZSBmb3JfZWFjaF9w aXBlX3dpdGhfbmV3X291dHB1dChkaXNwbGF5LCBwaXBlLCBvdXRwdXQpIFwKKwkJCWZvciAoaW50 IGNvbiA9IDAsIChwaXBlKSA9IDA7IGNvbiA8IChkaXNwbGF5KS0+bl9vdXRwdXRzOyBjb24rKykg XAorCQkJCWZvcl9lYWNoX2lmKChvdXRwdXQpID0gJihkaXNwbGF5KS0+b3V0cHV0c1tjb25dKSBc CisJCQkJCWZvcl9lYWNoX2lmKChwaXBlKSA8IElHVF9NQVhfUElQRVMpIFwKKwkJCQkJCWZvcl9l YWNoX2lmKGlndF9waXBlX2Nvbm5lY3Rvcl92YWxpZCgocGlwZSksIChvdXRwdXQpKSkKKworCiBp Z3Rfb3V0cHV0X3QgKipfX2lndF9waXBlX3BvcHVsYXRlX291dHB1dHMoaWd0X2Rpc3BsYXlfdCAq ZGlzcGxheSwKIAkJCQkJICAgaWd0X291dHB1dF90ICoqY2hvc2VuX291dHB1dHMpOwogCmRpZmYg LS1naXQgYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwpp bmRleCA3MWNjZjAwYS4uOWQwNGQ4ODggMTAwNjQ0Ci0tLSBhL3Rlc3RzL01ha2VmaWxlLnNvdXJj ZXMKKysrIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwpAQCAtNTksNiArNTksNyBAQCBURVNUU19w cm9ncyA9IFwKIAlrbXNfcGxhbmVfbG93cmVzIFwKIAlrbXNfcGxhbmVfbXVsdGlwbGUgXAogCWtt c19wbGFuZV9zY2FsaW5nIFwKKwlrbXNfcGxhbmVfc3RyZXNzIFwKIAlrbXNfcHJvcF9ibG9iIFwK IAlrbXNfcHJvcGVydGllcyBcCiAJa21zX3BzciBcCmRpZmYgLS1naXQgYS90ZXN0cy9rbXNfcGxh bmVfc3RyZXNzLmMgYi90ZXN0cy9rbXNfcGxhbmVfc3RyZXNzLmMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAuLjNmMjc0NDBlCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMva21z X3BsYW5lX3N0cmVzcy5jCkBAIC0wLDAgKzEsNTQ2IEBACisvKgorICogQ29weXJpZ2h0IMKpIDIw MTYgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVk LCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0 aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29m dHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24s IGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5 LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5k L29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRv IHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8g dGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90 aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBh cmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBw b3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9W SURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisg KiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9G IE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFO RCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1Ig Q09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RI RVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQg T1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBX SVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUg U09GVFdBUkUuCisgKi8KKworI2luY2x1ZGUgImlndC5oIgorI2luY2x1ZGUgImlndF9yYW5kLmgi CisjaW5jbHVkZSAiZHJtdGVzdC5oIgorI2luY2x1ZGUgInN3X3N5bmMuaCIKKyNpbmNsdWRlIDxl cnJuby5oPgorI2luY2x1ZGUgPHB0aHJlYWQuaD4KKyNpbmNsdWRlIDxzdGRib29sLmg+CisjaW5j bHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDx0aW1lLmg+Cisj aW5jbHVkZSA8cG9sbC5oPgorI2luY2x1ZGUgPHB0aHJlYWQuaD4KKworI2lmbmRlZiBEUk1fQ0FQ X0NVUlNPUl9XSURUSAorI2RlZmluZSBEUk1fQ0FQX0NVUlNPUl9XSURUSCAweDgKKyNlbmRpZgor I2lmbmRlZiBEUk1fQ0FQX0NVUlNPUl9IRUlHSFQKKyNkZWZpbmUgRFJNX0NBUF9DVVJTT1JfSEVJ R0hUIDB4OQorI2VuZGlmCisKKworZHJtTW9kZU1vZGVJbmZvIHVoZF9tb2RlXzYwaHogPSB7CisJ Lm5hbWUgPSAiMzg0MHgyMTYwQDYwaHoiLAorCS52cmVmcmVzaCA9IDYwLAorCS5jbG9jayA9IDE0 MjY2NyoyLAorCS5oZGlzcGxheSA9IDM4NDAsCisJLmhzeW5jX3N0YXJ0ID0gMTkzNioyLAorCS5o c3luY19lbmQgPSAxOTUyKjIsCisJLmh0b3RhbCA9IDIxMDQqMiwKKwkudmRpc3BsYXkgPSAyMTYw LAorCS52c3luY19zdGFydCA9IDEwODMqMiwKKwkudnN5bmNfZW5kID0gMTA5NyoyLAorCS52dG90 YWwgPSAxMTI4KjIsCisJLmZsYWdzID0gMHhhLAorfTsKKworI2RlZmluZSBOX0ZPUk1BVFMgMwor c3RhdGljIGNvbnN0IHVpbnQzMl90IGZvcm1hdHNbTl9GT1JNQVRTXSA9IHsKKwlEUk1fRk9STUFU X1hSR0I4ODg4LAorCURSTV9GT1JNQVRfUkdCNTY1LAorCURSTV9GT1JNQVRfWFJHQjIxMDEwMTAs Cit9OworCisjZGVmaW5lIE5fVElMSU5HX01FVEhPRFMgMworc3RhdGljIGNvbnN0IHVpbnQ2NF90 IHRpbGluZ3NbTl9USUxJTkdfTUVUSE9EU10gPSB7CisJRFJNX0ZPUk1BVF9NT0RfTElORUFSLAor CUk5MTVfRk9STUFUX01PRF9YX1RJTEVELAorCUk5MTVfRk9STUFUX01PRF9ZX1RJTEVELAorfTsK Kworc3RhdGljIGNvbnN0IGNoYXIgKmZvcm1hdF9zdHIoaW50IGZvcm1hdF9pbmRleCkKK3sKKwlz d2l0Y2ggKGZvcm1hdHNbZm9ybWF0X2luZGV4XSkgeworCWNhc2UgRFJNX0ZPUk1BVF9SR0I1NjU6 CisJCXJldHVybiAicmdiNTY1IjsKKwljYXNlIERSTV9GT1JNQVRfWFJHQjg4ODg6CisJCXJldHVy biAieHJnYjg4ODgiOworCWNhc2UgRFJNX0ZPUk1BVF9YUkdCMjEwMTAxMDoKKwkJcmV0dXJuICJ4 cmdiMjEwMTAxMCI7CisJZGVmYXVsdDoKKwkJaWd0X2Fzc2VydChmYWxzZSk7CisJfQorfQorCitz dGF0aWMgY29uc3QgY2hhciAqdGlsaW5nX3N0cihpbnQgdGlsaW5nX2luZGV4KQoreworCXN3aXRj aCAodGlsaW5nc1t0aWxpbmdfaW5kZXhdKSB7CisJY2FzZSBEUk1fRk9STUFUX01PRF9MSU5FQVI6 CisJCXJldHVybiAidW50aWxlZCI7CisJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWF9USUxFRDoKKwkJ cmV0dXJuICJ4dGlsZWQiOworCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQ6CisJCXJldHVy biAieXRpbGVkIjsKKwlkZWZhdWx0OgorCQlpZ3RfYXNzZXJ0KGZhbHNlKTsKKwl9Cit9CisKKwor I2RlZmluZSBNQVhfQ09SRVMgOAorCitzdHJ1Y3QgZGF0YTsKKworc3RydWN0IHRocmVhZF9jb250 ZXh0IHsKKwlzdHJ1Y3QgZGF0YSAqZGF0YTsKKwlpbnQgaWQ7CisJdm9pZCAqYnVmMTsKKwl2b2lk ICpidWYyOworfTsKKworc3RydWN0IGdwdV9jb250ZXh0IHsKKwlzdHJ1Y3QgZGF0YSAqZGF0YTsK KwlpbnQgcGlwZTsKKwlpbnQgY29sb3I7Cit9OworCitzdHJ1Y3QgZGF0YSB7CisJaW50IGRybV9m ZDsKKwlpZ3RfZGlzcGxheV90IGRpc3BsYXk7CisJaW50IG51bV9wbGFuZXM7CisJdWludDMyX3Qg Zm9ybWF0OworCXVpbnQ2NF90IG1vZGlmaWVyOworCXVpbnQzMl90IGRldmlkOworCWRybV9pbnRl bF9idWZtZ3IgKmJ1Zm1ncjsKKwlzdHJ1Y3QgaWd0X2ZiIGZiW0lHVF9NQVhfUElQRVNdOworCXN0 cnVjdCBpZ3RfZmIgY3Vyc29yX2ZiW0lHVF9NQVhfUElQRVNdOworCXB0aHJlYWRfdCBjcHVfdGhy ZWFkW01BWF9DT1JFU107CisJYm9vbCBjcHVfdGhyZWFkX3N0b3BbTUFYX0NPUkVTXTsKKwlzdHJ1 Y3QgdGhyZWFkX2NvbnRleHQgY3B1X2NvbnRleHRbTUFYX0NPUkVTXTsKKwlzdHJ1Y3QgZ3B1X2Nv bnRleHQgZ3B1X2NvbnRleHRbSUdUX01BWF9QSVBFU107Cit9OworCisKK3N0cnVjdCBiYXNlX2Ny YyB7CisJYm9vbCBzZXQ7CisJaWd0X2NyY190IGNyYzsKK307CisKK2lndF9waXBlX2NyY190ICpw aXBlX2NyYzsKKworI2RlZmluZSBCVUZfU0laRSAxMjgqMTAyNCoxMDI0CisKK3N0YXRpYyB2b2lk ICpjcHVfbG9hZCh2b2lkICpkKQoreworCWNoYXIgKmJ1ZjEsICpidWYyOworCXN0cnVjdCB0aHJl YWRfY29udGV4dCAqY29udGV4dCA9IChzdHJ1Y3QgdGhyZWFkX2NvbnRleHQgKilkOworCXN0cnVj dCBkYXRhICpkYXRhID0gY29udGV4dC0+ZGF0YTsKKworCWJ1ZjEgPSBjb250ZXh0LT5idWYxOwor CWJ1ZjIgPSBjb250ZXh0LT5idWYyOworCisJZGF0YS0+Y3B1X3RocmVhZF9zdG9wW2NvbnRleHQt PmlkXSA9IGZhbHNlOworCisJd2hpbGUoIWRhdGEtPmNwdV90aHJlYWRfc3RvcFtjb250ZXh0LT5p ZF0pIHsKKwkJbWVtY3B5KGJ1ZjEsIGJ1ZjIsIEJVRl9TSVpFKTsKKwkJbWVtY3B5KGJ1ZjIsIGJ1 ZjEsIEJVRl9TSVpFKTsKKwl9CisKKwlyZXR1cm4gTlVMTDsKK30KKworCitzdGF0aWMgdm9pZCBz Y3JhdGNoX2J1Zl9pbml0KHN0cnVjdCBpZ3RfYnVmICpidWYsCisJCQlkcm1faW50ZWxfYm8gKmJv LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCBzdHJpZGUsIGludCB0aWxpbmcpCit7CisJYnVm LT5ibyA9IGJvOworCWJ1Zi0+c3RyaWRlID0gc3RyaWRlOworCWJ1Zi0+dGlsaW5nID0gdGlsaW5n OworCWJ1Zi0+c2l6ZSA9IHdpZHRoICogaGVpZ2h0ICogNDsKKwlidWYtPmJwcCA9IDMyOworfQor CisKK3N0YXRpYyB2b2lkIGdwdV9sb2FkKHN0cnVjdCBncHVfY29udGV4dCAqZ3B1X2NvbnRleHQp Cit7CisJc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCA9IE5VTEw7CisJc3RydWN0IGln dF9idWYgZHN0OworCXN0cnVjdCBkYXRhICpkYXRhID0gZ3B1X2NvbnRleHQtPmRhdGE7CisJaW50 IHBpcGUgPSBncHVfY29udGV4dC0+cGlwZTsKKwlpZ3RfZmlsbGZ1bmNfdCBncGdwdV9maWxsID0g TlVMTDsKKwlkcm1faW50ZWxfYm8gKmJvOworCXN0cnVjdCBpZ3RfZmIgKmZiID0gJmRhdGEtPmZi W3BpcGVdOworCisJaWYgKCFkYXRhLT5kZXZpZCkgeworCQlkYXRhLT5kZXZpZCA9IGludGVsX2dl dF9kcm1fZGV2aWQoZGF0YS0+ZHJtX2ZkKTsKKwkJaWd0X3JlcXVpcmVfZ2VtKGRhdGEtPmRybV9m ZCk7CisKKwkJZGF0YS0+YnVmbWdyID0gZHJtX2ludGVsX2J1Zm1ncl9nZW1faW5pdChkYXRhLT5k cm1fZmQsIDQwOTYpOworCQlpZ3RfYXNzZXJ0KGRhdGEtPmJ1Zm1ncik7CisJfQorCisJZ3BncHVf ZmlsbCA9IGlndF9nZXRfZ3BncHVfZmlsbGZ1bmMoZGF0YS0+ZGV2aWQpOworCisJaWd0X3JlcXVp cmVfZihncGdwdV9maWxsLAorCSAgICAgICJubyBncGdwdS1maWxsIGZ1bmN0aW9uXG4iKTsKKwor CWJhdGNoID0gaW50ZWxfYmF0Y2hidWZmZXJfYWxsb2MoZGF0YS0+YnVmbWdyLCBkYXRhLT5kZXZp ZCk7CisJaWd0X2Fzc2VydChiYXRjaCk7CisKKwlibyA9IGdlbV9oYW5kbGVfdG9fbGliZHJtX2Jv KGRhdGEtPmJ1Zm1nciwgZGF0YS0+ZHJtX2ZkLCAiIiwgZmItPmdlbV9oYW5kbGUpOworCisJc2Ny YXRjaF9idWZfaW5pdCgmZHN0LCBibywgZmItPndpZHRoLCBmYi0+aGVpZ2h0LCBmYi0+c3RyaWRl c1swXSwgZmItPm1vZGlmaWVyKTsKKworCWdwZ3B1X2ZpbGwoYmF0Y2gsCisJICAgJmRzdCwgMCwg MCwgKGZiLT53aWR0aCAqIDQpLCBmYi0+aGVpZ2h0LAorCSAgIGdwdV9jb250ZXh0LT5jb2xvcik7 CisKKwlncHVfY29udGV4dC0+Y29sb3IgKz0gMHgxMDsKKworCWludGVsX2JhdGNoYnVmZmVyX2Zy ZWUoYmF0Y2gpOworfQorCitzdGF0aWMgaW5saW5lIHVpbnQzMl90IHBpcGVfc2VsZWN0KGVudW0g cGlwZSBwaXBlKQoreworCWlmIChwaXBlID4gMSkKKwkJcmV0dXJuIHBpcGUgPDwgRFJNX1ZCTEFO S19ISUdIX0NSVENfU0hJRlQ7CisJZWxzZSBpZiAocGlwZSA+IDApCisJCXJldHVybiBEUk1fVkJM QU5LX1NFQ09OREFSWTsKKwllbHNlCisJCXJldHVybiAwOworfQorCitzdGF0aWMgdW5zaWduZWQg Z2V0X3ZibGFuayhpbnQgZmQsIGVudW0gcGlwZSBwaXBlLCB1bnNpZ25lZCBmbGFncykKK3sKKwl1 bmlvbiBkcm1fd2FpdF92YmxhbmsgdmJsOworCisJbWVtc2V0KCZ2YmwsIDAsIHNpemVvZih2Ymwp KTsKKwl2YmwucmVxdWVzdC50eXBlID0gRFJNX1ZCTEFOS19SRUxBVElWRSB8IHBpcGVfc2VsZWN0 KHBpcGUpIHwgZmxhZ3M7CisJaWYgKGRybUlvY3RsKGZkLCBEUk1fSU9DVExfV0FJVF9WQkxBTkss ICZ2YmwpKQorCQlyZXR1cm4gMDsKKworCXJldHVybiB2YmwucmVwbHkuc2VxdWVuY2U7Cit9CisK Kworc3RhdGljIGludCBwbGFuZV9zdHJlc3Moc3RydWN0IGRhdGEgKmRhdGEsIGlndF9vdXRwdXRf dCAqb3V0cHV0LCBlbnVtIHBpcGUgcGlwZSwgZHJtTW9kZU1vZGVJbmZvICptb2RlLCBib29sIGdw dSkKK3sKKwlpZ3RfcGxhbmVfdCAqcGxhbmU7CisJdWludDY0X3QgY3Vyc29yX3dpZHRoLCBjdXJz b3JfaGVpZ2h0OworCWludCBpOworCWludCByZXQ7CisJaWd0X2NyY190CWNyYywgY3JjMjsKKwor CWlndF9vdXRwdXRfb3ZlcnJpZGVfbW9kZShvdXRwdXQsIG1vZGUpOworCXJldCA9IGlndF9kaXNw bGF5X3RyeV9jb21taXRfYXRvbWljKCZkYXRhLT5kaXNwbGF5LAorCQkJRFJNX01PREVfQVRPTUlD X1RFU1RfT05MWSB8IERSTV9NT0RFX0FUT01JQ19BTExPV19NT0RFU0VULCBOVUxMKTsKKwlpZiAo cmV0KSB7CisJCXJldHVybiByZXQ7CisJfQorCisJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQs IHBpcGUpOworCisJaWd0X2Rpc3BsYXlfY29tbWl0MigmZGF0YS0+ZGlzcGxheSwgQ09NTUlUX0FU T01JQyk7CisKKwltb2RlID0gaWd0X291dHB1dF9nZXRfbW9kZShvdXRwdXQpOworCisJZG9fb3Jf ZGllKGRybUdldENhcChkYXRhLT5kcm1fZmQsIERSTV9DQVBfQ1VSU09SX1dJRFRILCAmY3Vyc29y X3dpZHRoKSk7CisJZG9fb3JfZGllKGRybUdldENhcChkYXRhLT5kcm1fZmQsIERSTV9DQVBfQ1VS U09SX0hFSUdIVCwgJmN1cnNvcl9oZWlnaHQpKTsKKworCWlmICghZGF0YS0+Y3Vyc29yX2ZiW3Bp cGVdLmZiX2lkKSB7CisJCWlndF9jcmVhdGVfY29sb3JfZmIoZGF0YS0+ZHJtX2ZkLCBjdXJzb3Jf d2lkdGgsIGN1cnNvcl9oZWlnaHQsCisJCQkJRFJNX0ZPUk1BVF9BUkdCODg4OCwKKwkJCQlMT0NB TF9EUk1fRk9STUFUX01PRF9OT05FLAorCQkJCQkxLjAsMC4wLDAuMCwKKwkJCQkJJmRhdGEtPmN1 cnNvcl9mYltwaXBlXSk7CisJfQorCisJaWYgKCFkYXRhLT5mYltwaXBlXS5mYl9pZCkgeworCQlp Z3RfY3JlYXRlX2NvbG9yX3BhdHRlcm5fZmIoZGF0YS0+ZHJtX2ZkLCBtb2RlLT5oZGlzcGxheSwg bW9kZS0+dmRpc3BsYXksCisJCQkJICAgIGRhdGEtPmZvcm1hdCwKKwkJCQkgICAgZGF0YS0+bW9k aWZpZXIsCisJCQkJICAgIDAuMCwgMS4wLCAwLjAsICZkYXRhLT5mYltwaXBlXSk7CisJfQorCisJ cmV0ID0gaWd0X2Rpc3BsYXlfdHJ5X2NvbW1pdF9hdG9taWMoJmRhdGEtPmRpc3BsYXksIERSTV9N T0RFX0FUT01JQ19URVNUX09OTFkgfCBEUk1fTU9ERV9BVE9NSUNfQUxMT1dfTU9ERVNFVCwgTlVM TCk7CisJaWYgKHJldCkgeworCQlpZ3RfaW5mbygiUGxhbmUgJWQgcGlwZSAlZCB0cnkgY29tbWl0 IGZhaWxlZCwgZXhpdGluZ1xuIiwgaSwgcGlwZSk7CisJCWdvdG8gY2xlYW51cDsKKwl9CisKKwlp Z3RfZGlzcGxheV9jb21taXQyKCZkYXRhLT5kaXNwbGF5LCBDT01NSVRfQVRPTUlDKTsKKworCWkg PSAwOworCisJZm9yX2VhY2hfcGxhbmVfb25fcGlwZSgmZGF0YS0+ZGlzcGxheSwgcGlwZSwgcGxh bmUpIHsKKworCQlpZiAocGxhbmUtPnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SKSB7CisJ CQlpZ3RfcGxhbmVfc2V0X2ZiKHBsYW5lLCAmZGF0YS0+Y3Vyc29yX2ZiW3BpcGVdKTsKKwkJCWln dF9mYl9zZXRfc2l6ZSgmZGF0YS0+Y3Vyc29yX2ZiW3BpcGVdLCBwbGFuZSwgY3Vyc29yX3dpZHRo LCBjdXJzb3JfaGVpZ2h0KTsKKwkJCWlndF9wbGFuZV9zZXRfc2l6ZShwbGFuZSwgY3Vyc29yX3dp ZHRoLCBjdXJzb3JfaGVpZ2h0KTsKKwkJfSBlbHNlIHsKKwkJCWlndF9wbGFuZV9zZXRfZmIocGxh bmUsICZkYXRhLT5mYltwaXBlXSk7CisJCQlpZ3RfcGxhbmVfc2V0X3Bvc2l0aW9uKHBsYW5lLCAw LCAwKTsKKwkJCWlndF9mYl9zZXRfc2l6ZSgmZGF0YS0+ZmJbcGlwZV0sIHBsYW5lLCBtb2RlLT5o ZGlzcGxheSwgbW9kZS0+dmRpc3BsYXkpOworCQkJaWd0X3BsYW5lX3NldF9zaXplKHBsYW5lLCBt b2RlLT5oZGlzcGxheSwgbW9kZS0+dmRpc3BsYXkpOworCQl9CisKKwkJcmV0ID0gaWd0X2Rpc3Bs YXlfdHJ5X2NvbW1pdF9hdG9taWMoJmRhdGEtPmRpc3BsYXksIERSTV9NT0RFX0FUT01JQ19URVNU X09OTFkgfCBEUk1fTU9ERV9BVE9NSUNfQUxMT1dfTU9ERVNFVCwgTlVMTCk7CisJCWlmIChyZXQp IHsKKwkJCWlndF9pbmZvKCJQbGFuZSAlZCBwaXBlICVkIHRyeSBjb21taXQgZmFpbGVkLCBleGl0 aW5nXG4iLCBpLCBwaXBlKTsKKwkJCWdvdG8gY2xlYW51cDsKKwkJfQorCisJCWlmICgrK2kgPj0g ZGF0YS0+bnVtX3BsYW5lcykKKwkJCWJyZWFrOworCX0KKworCWlmIChncHUpIHsKKwkJZ3B1X2xv YWQoJmRhdGEtPmdwdV9jb250ZXh0W3BpcGVdKTsKKwl9CisKKwlpZ3RfZGlzcGxheV9jb21taXQy KCZkYXRhLT5kaXNwbGF5LCBDT01NSVRfQVRPTUlDKTsKKworCWdldF92YmxhbmsoZGF0YS0+ZGlz cGxheS5kcm1fZmQsIHBpcGUsIERSTV9WQkxBTktfTkVYVE9OTUlTUyk7CisKKwlpZ3RfcGlwZV9j cmNfY29sbGVjdF9jcmMocGlwZV9jcmMsICZjcmMpOworCisJZ2V0X3ZibGFuayhkYXRhLT5kaXNw bGF5LmRybV9mZCwgcGlwZSwgRFJNX1ZCTEFOS19ORVhUT05NSVNTKTsKKworCWlndF9waXBlX2Ny Y19jb2xsZWN0X2NyYyhwaXBlX2NyYywgJmNyYzIpOworCWlndF9hc3NlcnRfY3JjX2VxdWFsKCZj cmMsICZjcmMyKTsKKworCXJldHVybiAwOworCitjbGVhbnVwOgorCWZvcl9lYWNoX3BsYW5lX29u X3BpcGUoJmRhdGEtPmRpc3BsYXksIHBpcGUsIHBsYW5lKSB7CisJCWlndF9wbGFuZV9zZXRfZmIo cGxhbmUsIE5VTEwpOworCX0KKwlpZ3RfcmVtb3ZlX2ZiKGRhdGEtPmRpc3BsYXkuZHJtX2ZkLCAm ZGF0YS0+ZmJbcGlwZV0pOworCWRhdGEtPmZiW3BpcGVdLmZiX2lkID0gMDsKKworCXJldHVybiBy ZXQ7Cit9CisKKyNkZWZpbmUgRFVSQVRJT05fU0VDIDUuMDAKKworc3RhdGljIGRybU1vZGVNb2Rl SW5mbyAqIGZpbmRfaGlnaGVzdF9tb2RlKGRybU1vZGVDb25uZWN0b3IgKmNvbm5lY3RvcikKK3sK Kwlkcm1Nb2RlTW9kZUluZm8gKmhpZ2hlc3RfbW9kZSA9IE5VTEw7CisJaW50IGo7CisKKwlmb3Ig KGogPSAwOyBqIDwgY29ubmVjdG9yLT5jb3VudF9tb2RlczsgaisrKSB7CisJCWlmICghaGlnaGVz dF9tb2RlKSB7CisJCQloaWdoZXN0X21vZGUgPSAmY29ubmVjdG9yLT5tb2Rlc1tqXTsKKwkJfQor CQllbHNlIGlmIChjb25uZWN0b3ItPm1vZGVzW2pdLnZkaXNwbGF5ICYmIGNvbm5lY3Rvci0+bW9k ZXNbal0uaGRpc3BsYXkpIHsKKwkJCWlmIChoaWdoZXN0X21vZGUtPmhkaXNwbGF5IDwgY29ubmVj dG9yLT5tb2Rlc1tqXS5oZGlzcGxheSkKKwkJCQloaWdoZXN0X21vZGUgPSAmY29ubmVjdG9yLT5t b2Rlc1tqXTsKKwkJCX0KKwl9CisKKwlyZXR1cm4gaGlnaGVzdF9tb2RlOworfQorCitzdGF0aWMg dm9pZCBzdHJlc3Moc3RydWN0IGRhdGEgKmRhdGEsIGJvb2wgb3ZlcnJpZGUsIGJvb2wgZ3B1LCBp bnQgZm9ybWF0X2lkeCwgaW50IHRpbGluZ19pZHgpCit7CisJc3RydWN0IHRpbWVzcGVjIHN0YXJ0 LCBlbmQ7CisJaWd0X291dHB1dF90ICpvdXRwdXQ7CisJaW50IHJldDtpbnQgY3J0Y19pZCA9IDA7 CisJaW50IGk7CisJZHJtTW9kZU1vZGVJbmZvICpoaWdoZXN0X21vZGUgPSBOVUxMOworCisJZHJt TW9kZVJlcyAqbW9kZV9yZXNvdXJjZXMgPSBkcm1Nb2RlR2V0UmVzb3VyY2VzKGRhdGEtPmRybV9m ZCk7CisKKwlpZiAoIW1vZGVfcmVzb3VyY2VzKSB7CisJCWlndF93YXJuKCJkcm1Nb2RlR2V0UmVz b3VyY2VzIGZhaWxlZDogJXNcbiIsIHN0cmVycm9yKGVycm5vKSk7CisJCXJldHVybjsKKwl9CisK KwljbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05JQywgJnN0YXJ0KTsKKworCWRvIHsKKwkJZm9y X2VhY2hfcGlwZV93aXRoX25ld19vdXRwdXQoJmRhdGEtPmRpc3BsYXksIHBpcGUsIG91dHB1dCkg eworCQkJY3J0Y19pZCA9IDA7CisJCQlmb3IgKGkgPSAwOyBpIDwgbW9kZV9yZXNvdXJjZXMtPmNv dW50X2Nvbm5lY3RvcnM7IGkrKykgeworCQkJCWRybU1vZGVDb25uZWN0b3IgKmNvbm5lY3RvcjsK KworCQkJCWNvbm5lY3RvciA9IGRybU1vZGVHZXRDb25uZWN0b3JDdXJyZW50KGRhdGEtPmRybV9m ZCwKKwkJCQkJCQkgICAgICAgbW9kZV9yZXNvdXJjZXMtPmNvbm5lY3RvcnNbaV0pOworCQkJCWlm ICghY29ubmVjdG9yKSB7CisJCQkJCWlndF93YXJuKCJjb3VsZCBub3QgZ2V0IGNvbm5lY3RvciAl aTogJXNcbiIsIG1vZGVfcmVzb3VyY2VzLT5jb25uZWN0b3JzW2ldLCBzdHJlcnJvcihlcnJubykp OworCQkJCQljb250aW51ZTsKKwkJCQl9CisKKwkJCQlpZiAoIWNvbm5lY3Rvci0+Y291bnRfbW9k ZXMpIHsKKwkJCQkJZHJtTW9kZUZyZWVDb25uZWN0b3IoY29ubmVjdG9yKTsKKwkJCQkJY29udGlu dWU7CisJCQkJfQorCisJCQkJaWYgKGNvbm5lY3Rvci0+Y29ubmVjdGlvbiA9PSBEUk1fTU9ERV9D T05ORUNURUQpIHsKKwkJCQkJaWYgKGNydGNfaWQgPT0gcGlwZSkgeworCQkJCQkJaWYgKCFvdmVy cmlkZSkgeworCQkJCQkJCWhpZ2hlc3RfbW9kZSA9IGZpbmRfaGlnaGVzdF9tb2RlKGNvbm5lY3Rv cik7CisJCQkJCQl9CisJCQkJCQllbHNlCisJCQkJCQkJaGlnaGVzdF9tb2RlID0gJnVoZF9tb2Rl XzYwaHo7CisKKwkJCQkJCWRhdGEtPmZvcm1hdCA9IGZvcm1hdHNbZm9ybWF0X2lkeF07CisJCQkJ CQlkYXRhLT5tb2RpZmllciA9IHRpbGluZ3NbdGlsaW5nX2lkeF07CisJCQkJCQlkYXRhLT5udW1f cGxhbmVzID0gZGF0YS0+ZGlzcGxheS5waXBlc1twaXBlXS5uX3BsYW5lczsKKworCQkJCQkJaWd0 X2luZm8oIlBpcGUgJXMgJWQgcGxhbmVzLCB1c2luZyBtb2RlOiIsIGttc3Rlc3RfcGlwZV9uYW1l KHBpcGUpLAorCQkJCQkJCQlkYXRhLT5udW1fcGxhbmVzKTsKKworCQkJCQkJa21zdGVzdF9kdW1w X21vZGUoaGlnaGVzdF9tb2RlKTsKKworCQkJCQkJcGlwZV9jcmMgPSBpZ3RfcGlwZV9jcmNfbmV3 KGRhdGEtPmRybV9mZCwgcGlwZSwKKwkJCQkJCQlJTlRFTF9QSVBFX0NSQ19TT1VSQ0VfQVVUTyk7 CisKKwkJCQkJCXJldCA9IHBsYW5lX3N0cmVzcyhkYXRhLCBvdXRwdXQsIHBpcGUsIGhpZ2hlc3Rf bW9kZSwgZ3B1KTsKKworCQkJCQkJaWd0X3BpcGVfY3JjX2ZyZWUocGlwZV9jcmMpOworCQkJCQl9 CisJCQkJCWNydGNfaWQrKzsKKwkJCQl9CisJCQkJZHJtTW9kZUZyZWVDb25uZWN0b3IoY29ubmVj dG9yKTsKKwkJCX0KKwkJCXBpcGUrKzsKKwkJfQorCQljbG9ja19nZXR0aW1lKENMT0NLX01PTk9U T05JQywgJmVuZCk7CisJfSB3aGlsZSAoKGlndF90aW1lX2VsYXBzZWQoJnN0YXJ0LCAmZW5kKSA8 IERVUkFUSU9OX1NFQykgJiYgIXJldCk7CisKKwlkcm1Nb2RlRnJlZVJlc291cmNlcyhtb2RlX3Jl c291cmNlcyk7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3Qoc3RydWN0IGRhdGEgKmRhdGEsIGJvb2wg b3ZlcnJpZGUsIGJvb2wgY3B1LCBib29sIGdwdSkKK3sKKwlpbnQgaTsKKwlpbnQgbnVtYmVyX29m X2NvcmVzID0gbWluKHN5c2NvbmYoX1NDX05QUk9DRVNTT1JTX09OTE4pLCBNQVhfQ09SRVMpOwor CWludCBmb3JtYXRfaWR4LCB0aWxpbmdfaWR4OworCisJaWd0X2ZpeHR1cmUgeworCQlmb3IgKGkg PSAwOyBpIDwgSUdUX01BWF9QSVBFUzsgaSsrKSB7CisJCQkJZGF0YS0+ZmJbaV0uZmJfaWQgPSAw OworCQkJCWRhdGEtPmN1cnNvcl9mYltpXS5mYl9pZCA9IDA7CisJCX0KKwkJaWYgKGdwdSkgewor CQkJZm9yIChpID0gMDsgaSA8IElHVF9NQVhfUElQRVM7IGkrKykgeworCQkJCWRhdGEtPmdwdV9j b250ZXh0W2ldLmRhdGEgPSBkYXRhOworCQkJCWRhdGEtPmdwdV9jb250ZXh0W2ldLnBpcGUgPSBp OworCQkJfQorCQl9CisKKwkJaWYgKGNwdSkgeworCQkJZm9yIChpID0gMDsgaSA8IG51bWJlcl9v Zl9jb3JlcztpKyspIHsKKwkJCQlkYXRhLT5jcHVfY29udGV4dFtpXS5idWYxID0gbWFsbG9jKEJV Rl9TSVpFKTsKKwkJCQlkYXRhLT5jcHVfY29udGV4dFtpXS5idWYyID0gbWFsbG9jKEJVRl9TSVpF KTsKKwkJCQlkYXRhLT5jcHVfY29udGV4dFtpXS5pZCA9IGk7CisJCQkJZGF0YS0+Y3B1X2NvbnRl eHRbaV0uZGF0YSA9IGRhdGE7CisJCQkJcHRocmVhZF9jcmVhdGUoJmRhdGEtPmNwdV90aHJlYWRb aV0sIE5VTEwsIGNwdV9sb2FkLCAodm9pZCopJmRhdGEtPmNwdV9jb250ZXh0W2ldKTsKKwkJCX0K KwkJfQorCX0KKworCWZvciAoZm9ybWF0X2lkeCA9IDA7IGZvcm1hdF9pZHggPCBOX0ZPUk1BVFM7 IGZvcm1hdF9pZHgrKykgeworCQlmb3IgKHRpbGluZ19pZHggPSAwOyB0aWxpbmdfaWR4IDwgTl9U SUxJTkdfTUVUSE9EUzsgdGlsaW5nX2lkeCsrKSB7CisKKwkJCWlndF9zdWJ0ZXN0X2YoInN0cmVz cyVzJXMlcy0lcy0lcyIsCisJCQkJICAgICAgb3ZlcnJpZGUgPT0gZmFsc2UgPyAiIiA6ICItbW9k ZS1vdmVycmlkZSIsCisJCQkJICAgICAgY3B1ID09IGZhbHNlID8gIiIgOiAiLWNwdS1sb2FkIiwK KwkJCQkgICAgICBncHUgPT0gZmFsc2UgPyAiIiA6ICItZ3B1LWxvYWQiLAorCQkJCSAgICAgIGZv cm1hdF9zdHIoZm9ybWF0X2lkeCksCisJCQkJICAgICAgdGlsaW5nX3N0cih0aWxpbmdfaWR4KSkK KworCQkJc3RyZXNzKGRhdGEsIG92ZXJyaWRlLCBncHUsIGZvcm1hdF9pZHgsIHRpbGluZ19pZHgp OworCisJCQkvKgorCQkJICogQXMgd2UgY2hhbmdlIHRpbGluZy9mb3JtYXQgd2UgbmVlZCBhIG5l dyBGQgorCQkJICovCisJCQlmb3IgKGkgPSAwOyBpIDwgSUdUX01BWF9QSVBFUzsgaSsrKSB7CisJ CQkJaWYgKGRhdGEtPmZiW2ldLmZiX2lkKSB7CisJCQkJCWlndF9yZW1vdmVfZmIoZGF0YS0+ZGlz cGxheS5kcm1fZmQsICZkYXRhLT5mYltpXSk7CisJCQkJCWRhdGEtPmZiW2ldLmZiX2lkID0gMDsK KwkJCQl9CisJCQkJaWYgKGRhdGEtPmN1cnNvcl9mYltpXS5mYl9pZCkgeworCQkJCQlpZ3RfcmVt b3ZlX2ZiKGRhdGEtPmRpc3BsYXkuZHJtX2ZkLCAmZGF0YS0+Y3Vyc29yX2ZiW2ldKTsKKwkJCQkJ ZGF0YS0+Y3Vyc29yX2ZiW2ldLmZiX2lkID0gMDsKKwkJCQl9CisJCQl9CisJCX0KKwl9CisKKwlp Z3RfZml4dHVyZSB7CisJCWlmIChjcHUpIHsKKwkJCWZvciAoaSA9IDA7IGkgPCBudW1iZXJfb2Zf Y29yZXM7aSsrKSB7CisJCQkJZGF0YS0+Y3B1X3RocmVhZF9zdG9wW2ldID0gdHJ1ZTsKKwkJCQlw dGhyZWFkX2pvaW4oZGF0YS0+Y3B1X3RocmVhZFtpXSwgTlVMTCk7CisJCQl9CisJCQlmb3IgKGkg PSAwO2kgPCBudW1iZXJfb2ZfY29yZXM7IGkrKykgeworCQkJCWZyZWUoZGF0YS0+Y3B1X2NvbnRl eHRbaV0uYnVmMSk7CisJCQkJZnJlZShkYXRhLT5jcHVfY29udGV4dFtpXS5idWYyKTsKKwkJCX0K KwkJfQorCX0KK30KKworCitzdHJ1Y3QgZGF0YSBkYXRhID0geworCS5udW1fcGxhbmVzID0gNywK KwkuZm9ybWF0ID0gRFJNX0ZPUk1BVF9YUkdCODg4OCwKKwkubW9kaWZpZXIgPSBEUk1fRk9STUFU X01PRF9MSU5FQVIsCisJLmRldmlkID0gMCwKK307CisKKworaWd0X21haW4KK3sKKwlib29sIG1v ZGVfb3ZlcnJpZGUgPSBmYWxzZTsKKwlib29sIGNwdV9sb2FkID0gZmFsc2U7CisJYm9vbCBncHVf bG9hZCA9IGZhbHNlOworCisJaWd0X2ZpeHR1cmUgeworCQlkYXRhLmRybV9mZCA9IGRhdGEuZGlz cGxheS5kcm1fZmQgPSBkcm1fb3Blbl9kcml2ZXJfbWFzdGVyKERSSVZFUl9BTlkpOworCisJCWtt c3Rlc3Rfc2V0X3Z0X2dyYXBoaWNzX21vZGUoKTsKKworCQlpZ3RfZGlzcGxheV9yZXF1aXJlKCZk YXRhLmRpc3BsYXksIGRhdGEuZGlzcGxheS5kcm1fZmQpOworCQlpZ3RfcmVxdWlyZShkYXRhLmRp c3BsYXkuaXNfYXRvbWljKTsKKwkJaWd0X2Rpc3BsYXlfcmVxdWlyZV9vdXRwdXQoJmRhdGEuZGlz cGxheSk7CisJfQorCisJdGVzdCgmZGF0YSwgbW9kZV9vdmVycmlkZSwgY3B1X2xvYWQsIGdwdV9s b2FkKTsKKworCWNwdV9sb2FkID0gdHJ1ZTsKKwlncHVfbG9hZCA9IHRydWU7CisKKwl0ZXN0KCZk YXRhLCBtb2RlX292ZXJyaWRlLCBjcHVfbG9hZCwgZ3B1X2xvYWQpOworCisJbW9kZV9vdmVycmlk ZSA9IHRydWU7CisJY3B1X2xvYWQgPSBmYWxzZTsKKwlncHVfbG9hZCA9IGZhbHNlOworCisJdGVz dCgmZGF0YSwgbW9kZV9vdmVycmlkZSwgY3B1X2xvYWQsIGdwdV9sb2FkKTsKKworCWNwdV9sb2Fk ID0gdHJ1ZTsKKwlncHVfbG9hZCA9IHRydWU7CisKKwl0ZXN0KCZkYXRhLCBtb2RlX292ZXJyaWRl LCBjcHVfbG9hZCwgZ3B1X2xvYWQpOworCisJaWd0X2ZpeHR1cmUgeworCQlpZ3RfZGlzcGxheV9m aW5pKCZkYXRhLmRpc3BsYXkpOworCX0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp ZmYgLS1naXQgYS90ZXN0cy9tZXNvbi5idWlsZCBiL3Rlc3RzL21lc29uLmJ1aWxkCmluZGV4IDkw MTVmODA5Li5jNTg2NjQyYyAxMDA2NDQKLS0tIGEvdGVzdHMvbWVzb24uYnVpbGQKKysrIGIvdGVz dHMvbWVzb24uYnVpbGQKQEAgLTQ2LDYgKzQ2LDcgQEAgdGVzdF9wcm9ncyA9IFsKIAkna21zX3Bs YW5lX2xvd3JlcycsCiAJJ2ttc19wbGFuZV9tdWx0aXBsZScsCiAJJ2ttc19wbGFuZV9zY2FsaW5n JywKKwkna21zX3BsYW5lX3N0cmVzcycsCiAJJ2ttc19wcm9wX2Jsb2InLAogCSdrbXNfcHJvcGVy dGllcycsCiAJJ2ttc19wc3InLAotLSAKMi4xNy4xCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2lndC1kZXY=