From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH libdrm 02/10] tests: Move name tables to libutil Date: Wed, 9 Dec 2015 18:37:40 +0100 Message-ID: <1449682668-22487-2-git-send-email-thierry.reding@gmail.com> References: <1449682668-22487-1-git-send-email-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pa0-f49.google.com (mail-pa0-f49.google.com [209.85.220.49]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2A3B06E293 for ; Wed, 9 Dec 2015 09:37:57 -0800 (PST) Received: by pacej9 with SMTP id ej9so33035960pac.2 for ; Wed, 09 Dec 2015 09:37:56 -0800 (PST) In-Reply-To: <1449682668-22487-1-git-send-email-thierry.reding@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Emil Velikov , Hyungwon Hwang List-Id: dri-devel@lists.freedesktop.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KClRoZXNlIHRhYmxlcyBh cmUgZHVwbGljYXRlZCBpbiBzZXZlcmFsIHBsYWNlcywgc28gbW92ZSB0aGVtIGludG8gbGlidXRp bApzbyB0aGF0IHRoZXkgY2FuIGJlIHNoYXJlZC4KCkFja2VkLWJ5OiBMYXVyZW50IFBpbmNoYXJ0 IDxsYXVyZW50LnBpbmNoYXJ0QGlkZWFzb25ib2FyZC5jb20+ClNpZ25lZC1vZmYtYnk6IFRoaWVy cnkgUmVkaW5nIDx0cmVkaW5nQG52aWRpYS5jb20+Ci0tLQogdGVzdHMvbW9kZXRlc3QvbW9kZXRl c3QuYyAgIHwgIDY4ICsrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogdGVzdHMvcHJvcHRlc3QvcHJv cHRlc3QuYyAgIHwgIDQxICstLS0tLS0tLS0tLS0tLQogdGVzdHMvdXRpbC9NYWtlZmlsZS5zb3Vy Y2VzIHwgICAyICsKIHRlc3RzL3V0aWwva21zLmMgICAgICAgICAgICB8IDEyMiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogdGVzdHMvdXRpbC9rbXMuaCAgICAg ICAgICAgIHwgIDMzICsrKysrKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAxNjUgaW5zZXJ0aW9u cygrKSwgMTAxIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL3V0aWwva21z LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy91dGlsL2ttcy5oCgpkaWZmIC0tZ2l0IGEvdGVz dHMvbW9kZXRlc3QvbW9kZXRlc3QuYyBiL3Rlc3RzL21vZGV0ZXN0L21vZGV0ZXN0LmMKaW5kZXgg MzYxYzZkYTkwMTZmLi4wZTAwOWQ4N2ZkZWUgMTAwNjQ0Ci0tLSBhL3Rlc3RzL21vZGV0ZXN0L21v ZGV0ZXN0LmMKKysrIGIvdGVzdHMvbW9kZXRlc3QvbW9kZXRlc3QuYwpAQCAtNjIsNiArNjIsNyBA QAogCiAjaW5jbHVkZSAidXRpbC9jb21tb24uaCIKICNpbmNsdWRlICJ1dGlsL2Zvcm1hdC5oIgor I2luY2x1ZGUgInV0aWwva21zLmgiCiAjaW5jbHVkZSAidXRpbC9wYXR0ZXJuLmgiCiAKICNpbmNs dWRlICJidWZmZXJzLmgiCkBAIC0xMjYsNjQgKzEyNyw2IEBAIHN0YXRpYyBpbmxpbmUgaW50NjRf dCBVNjQySTY0KHVpbnQ2NF90IHZhbCkKIAlyZXR1cm4gKGludDY0X3QpKigoaW50NjRfdCAqKSZ2 YWwpOwogfQogCi1zdHJ1Y3QgdHlwZV9uYW1lIHsKLQlpbnQgdHlwZTsKLQljb25zdCBjaGFyICpu YW1lOwotfTsKLQotI2RlZmluZSB0eXBlX25hbWVfZm4ocmVzKSBcCi1jb25zdCBjaGFyICogcmVz IyNfc3RyKGludCB0eXBlKSB7CQkJXAotCXVuc2lnbmVkIGludCBpOwkJCQkJXAotCWZvciAoaSA9 IDA7IGkgPCBBUlJBWV9TSVpFKHJlcyMjX25hbWVzKTsgaSsrKSB7IFwKLQkJaWYgKHJlcyMjX25h bWVzW2ldLnR5cGUgPT0gdHlwZSkJXAotCQkJcmV0dXJuIHJlcyMjX25hbWVzW2ldLm5hbWU7CVwK LQl9CQkJCQkJXAotCXJldHVybiAiKGludmFsaWQpIjsJCQkJXAotfQotCi1zdHJ1Y3QgdHlwZV9u YW1lIGVuY29kZXJfdHlwZV9uYW1lc1tdID0gewotCXsgRFJNX01PREVfRU5DT0RFUl9OT05FLCAi bm9uZSIgfSwKLQl7IERSTV9NT0RFX0VOQ09ERVJfREFDLCAiREFDIiB9LAotCXsgRFJNX01PREVf RU5DT0RFUl9UTURTLCAiVE1EUyIgfSwKLQl7IERSTV9NT0RFX0VOQ09ERVJfTFZEUywgIkxWRFMi IH0sCi0JeyBEUk1fTU9ERV9FTkNPREVSX1RWREFDLCAiVFZEQUMiIH0sCi0JeyBEUk1fTU9ERV9F TkNPREVSX1ZJUlRVQUwsICJWaXJ0dWFsIiB9LAotCXsgRFJNX01PREVfRU5DT0RFUl9EU0ksICJE U0kiIH0sCi0JeyBEUk1fTU9ERV9FTkNPREVSX0RQTVNULCAiRFBNU1QiIH0sCi19OwotCi1zdGF0 aWMgdHlwZV9uYW1lX2ZuKGVuY29kZXJfdHlwZSkKLQotc3RydWN0IHR5cGVfbmFtZSBjb25uZWN0 b3Jfc3RhdHVzX25hbWVzW10gPSB7Ci0JeyBEUk1fTU9ERV9DT05ORUNURUQsICJjb25uZWN0ZWQi IH0sCi0JeyBEUk1fTU9ERV9ESVNDT05ORUNURUQsICJkaXNjb25uZWN0ZWQiIH0sCi0JeyBEUk1f TU9ERV9VTktOT1dOQ09OTkVDVElPTiwgInVua25vd24iIH0sCi19OwotCi1zdGF0aWMgdHlwZV9u YW1lX2ZuKGNvbm5lY3Rvcl9zdGF0dXMpCi0KLXN0cnVjdCB0eXBlX25hbWUgY29ubmVjdG9yX3R5 cGVfbmFtZXNbXSA9IHsKLQl7IERSTV9NT0RFX0NPTk5FQ1RPUl9Vbmtub3duLCAidW5rbm93biIg fSwKLQl7IERSTV9NT0RFX0NPTk5FQ1RPUl9WR0EsICJWR0EiIH0sCi0JeyBEUk1fTU9ERV9DT05O RUNUT1JfRFZJSSwgIkRWSS1JIiB9LAotCXsgRFJNX01PREVfQ09OTkVDVE9SX0RWSUQsICJEVkkt RCIgfSwKLQl7IERSTV9NT0RFX0NPTk5FQ1RPUl9EVklBLCAiRFZJLUEiIH0sCi0JeyBEUk1fTU9E RV9DT05ORUNUT1JfQ29tcG9zaXRlLCAiY29tcG9zaXRlIiB9LAotCXsgRFJNX01PREVfQ09OTkVD VE9SX1NWSURFTywgInMtdmlkZW8iIH0sCi0JeyBEUk1fTU9ERV9DT05ORUNUT1JfTFZEUywgIkxW RFMiIH0sCi0JeyBEUk1fTU9ERV9DT05ORUNUT1JfQ29tcG9uZW50LCAiY29tcG9uZW50IiB9LAot CXsgRFJNX01PREVfQ09OTkVDVE9SXzlQaW5ESU4sICI5LXBpbiBESU4iIH0sCi0JeyBEUk1fTU9E RV9DT05ORUNUT1JfRGlzcGxheVBvcnQsICJEUCIgfSwKLQl7IERSTV9NT0RFX0NPTk5FQ1RPUl9I RE1JQSwgIkhETUktQSIgfSwKLQl7IERSTV9NT0RFX0NPTk5FQ1RPUl9IRE1JQiwgIkhETUktQiIg fSwKLQl7IERSTV9NT0RFX0NPTk5FQ1RPUl9UViwgIlRWIiB9LAotCXsgRFJNX01PREVfQ09OTkVD VE9SX2VEUCwgImVEUCIgfSwKLQl7IERSTV9NT0RFX0NPTk5FQ1RPUl9WSVJUVUFMLCAiVmlydHVh bCIgfSwKLQl7IERSTV9NT0RFX0NPTk5FQ1RPUl9EU0ksICJEU0kiIH0sCi19OwotCi1zdGF0aWMg dHlwZV9uYW1lX2ZuKGNvbm5lY3Rvcl90eXBlKQotCiAjZGVmaW5lIGJpdF9uYW1lX2ZuKHJlcykJ CQkJCVwKIGNvbnN0IGNoYXIgKiByZXMjI19zdHIoaW50IHR5cGUpIHsJCQkJXAogCXVuc2lnbmVk IGludCBpOwkJCQkJCVwKQEAgLTI0Myw3ICsxODYsNyBAQCBzdGF0aWMgdm9pZCBkdW1wX2VuY29k ZXJzKHN0cnVjdCBkZXZpY2UgKmRldikKIAkJcHJpbnRmKCIlZFx0JWRcdCVzXHQweCUwOHhcdDB4 JTA4eFxuIiwKIAkJICAgICAgIGVuY29kZXItPmVuY29kZXJfaWQsCiAJCSAgICAgICBlbmNvZGVy LT5jcnRjX2lkLAotCQkgICAgICAgZW5jb2Rlcl90eXBlX3N0cihlbmNvZGVyLT5lbmNvZGVyX3R5 cGUpLAorCQkgICAgICAgdXRpbF9sb29rdXBfZW5jb2Rlcl90eXBlX25hbWUoZW5jb2Rlci0+ZW5j b2Rlcl90eXBlKSwKIAkJICAgICAgIGVuY29kZXItPnBvc3NpYmxlX2NydGNzLAogCQkgICAgICAg ZW5jb2Rlci0+cG9zc2libGVfY2xvbmVzKTsKIAl9CkBAIC0zODcsNyArMzMwLDcgQEAgc3RhdGlj IHZvaWQgZHVtcF9jb25uZWN0b3JzKHN0cnVjdCBkZXZpY2UgKmRldikKIAkJcHJpbnRmKCIlZFx0 JWRcdCVzXHQlLTE1c1x0JWR4JWRcdFx0JWRcdCIsCiAJCSAgICAgICBjb25uZWN0b3ItPmNvbm5l Y3Rvcl9pZCwKIAkJICAgICAgIGNvbm5lY3Rvci0+ZW5jb2Rlcl9pZCwKLQkJICAgICAgIGNvbm5l Y3Rvcl9zdGF0dXNfc3RyKGNvbm5lY3Rvci0+Y29ubmVjdGlvbiksCisJCSAgICAgICB1dGlsX2xv b2t1cF9jb25uZWN0b3Jfc3RhdHVzX25hbWUoY29ubmVjdG9yLT5jb25uZWN0aW9uKSwKIAkJICAg ICAgIF9jb25uZWN0b3ItPm5hbWUsCiAJCSAgICAgICBjb25uZWN0b3ItPm1tV2lkdGgsIGNvbm5l Y3Rvci0+bW1IZWlnaHQsCiAJCSAgICAgICBjb25uZWN0b3ItPmNvdW50X21vZGVzKTsKQEAgLTYx MSwxMCArNTU0LDExIEBAIHN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2VzICpnZXRfcmVzb3VyY2VzKHN0 cnVjdCBkZXZpY2UgKmRldikKIAkvKiBTZXQgdGhlIG5hbWUgb2YgYWxsIGNvbm5lY3RvcnMgYmFz ZWQgb24gdGhlIHR5cGUgbmFtZSBhbmQgdGhlIHBlci10eXBlIElELiAqLwogCWZvciAoaSA9IDA7 IGkgPCByZXMtPnJlcy0+Y291bnRfY29ubmVjdG9yczsgaSsrKSB7CiAJCXN0cnVjdCBjb25uZWN0 b3IgKmNvbm5lY3RvciA9ICZyZXMtPmNvbm5lY3RvcnNbaV07CisJCWRybU1vZGVDb25uZWN0b3Ig KmNvbm4gPSBjb25uZWN0b3ItPmNvbm5lY3RvcjsKIAogCQlhc3ByaW50ZigmY29ubmVjdG9yLT5u YW1lLCAiJXMtJXUiLAotCQkJIGNvbm5lY3Rvcl90eXBlX3N0cihjb25uZWN0b3ItPmNvbm5lY3Rv ci0+Y29ubmVjdG9yX3R5cGUpLAotCQkJIGNvbm5lY3Rvci0+Y29ubmVjdG9yLT5jb25uZWN0b3Jf dHlwZV9pZCk7CisJCQkgdXRpbF9sb29rdXBfY29ubmVjdG9yX3R5cGVfbmFtZShjb25uLT5jb25u ZWN0b3JfdHlwZSksCisJCQkgY29ubi0+Y29ubmVjdG9yX3R5cGVfaWQpOwogCX0KIAogI2RlZmlu ZSBnZXRfcHJvcGVydGllcyhfcmVzLCBfX3JlcywgdHlwZSwgVHlwZSkJCQkJCVwKZGlmZiAtLWdp dCBhL3Rlc3RzL3Byb3B0ZXN0L3Byb3B0ZXN0LmMgYi90ZXN0cy9wcm9wdGVzdC9wcm9wdGVzdC5j CmluZGV4IGI2ZTAwY2ZjZmM0Zi4uMTFlYjZlODhjZWY1IDEwMDY0NAotLS0gYS90ZXN0cy9wcm9w dGVzdC9wcm9wdGVzdC5jCisrKyBiL3Rlc3RzL3Byb3B0ZXN0L3Byb3B0ZXN0LmMKQEAgLTM2LDYg KzM2LDcgQEAKICNpbmNsdWRlICJ4Zjg2ZHJtTW9kZS5oIgogCiAjaW5jbHVkZSAidXRpbC9jb21t b24uaCIKKyNpbmNsdWRlICJ1dGlsL2ttcy5oIgogCiBzdGF0aWMgaW5saW5lIGludDY0X3QgVTY0 Mkk2NCh1aW50NjRfdCB2YWwpCiB7CkBAIC00NSw0NCArNDYsNiBAQCBzdGF0aWMgaW5saW5lIGlu dDY0X3QgVTY0Mkk2NCh1aW50NjRfdCB2YWwpCiBpbnQgZmQ7CiBkcm1Nb2RlUmVzUHRyIHJlcyA9 IE5VTEw7CiAKLXN0YXRpYyBjb25zdCBjaGFyICpjb25uZWN0b3JfdHlwZV9zdHIodWludDMyX3Qg dHlwZSkKLXsKLQlzd2l0Y2ggKHR5cGUpIHsKLQljYXNlIERSTV9NT0RFX0NPTk5FQ1RPUl9Vbmtu b3duOgotCQlyZXR1cm4gIlVua25vd24iOwotCWNhc2UgRFJNX01PREVfQ09OTkVDVE9SX1ZHQToK LQkJcmV0dXJuICJWR0EiOwotCWNhc2UgRFJNX01PREVfQ09OTkVDVE9SX0RWSUk6Ci0JCXJldHVy biAiRFZJLUkiOwotCWNhc2UgRFJNX01PREVfQ09OTkVDVE9SX0RWSUQ6Ci0JCXJldHVybiAiRFZJ LUQiOwotCWNhc2UgRFJNX01PREVfQ09OTkVDVE9SX0RWSUE6Ci0JCXJldHVybiAiRFZJLUEiOwot CWNhc2UgRFJNX01PREVfQ09OTkVDVE9SX0NvbXBvc2l0ZToKLQkJcmV0dXJuICJDb21wb3NpdGUi OwotCWNhc2UgRFJNX01PREVfQ09OTkVDVE9SX1NWSURFTzoKLQkJcmV0dXJuICJTVklERU8iOwot CWNhc2UgRFJNX01PREVfQ09OTkVDVE9SX0xWRFM6Ci0JCXJldHVybiAiTFZEUyI7Ci0JY2FzZSBE Uk1fTU9ERV9DT05ORUNUT1JfQ29tcG9uZW50OgotCQlyZXR1cm4gIkNvbXBvbmVudCI7Ci0JY2Fz ZSBEUk1fTU9ERV9DT05ORUNUT1JfOVBpbkRJTjoKLQkJcmV0dXJuICI5UGluRGluIjsKLQljYXNl IERSTV9NT0RFX0NPTk5FQ1RPUl9EaXNwbGF5UG9ydDoKLQkJcmV0dXJuICJEaXNwbGF5UG9ydCI7 Ci0JY2FzZSBEUk1fTU9ERV9DT05ORUNUT1JfSERNSUE6Ci0JCXJldHVybiAiSERNSS1BIjsKLQlj YXNlIERSTV9NT0RFX0NPTk5FQ1RPUl9IRE1JQjoKLQkJcmV0dXJuICJIRE1JLUIiOwotCWNhc2Ug RFJNX01PREVfQ09OTkVDVE9SX1RWOgotCQlyZXR1cm4gIlRWIjsKLQljYXNlIERSTV9NT0RFX0NP Tk5FQ1RPUl9lRFA6Ci0JCXJldHVybiAiZURQIjsKLQlkZWZhdWx0OgotCQlyZXR1cm4gIkludmFs aWQiOwotCX0KLX0KLQogLyogZHVtcF9ibG9iIGFuZCBkdW1wX3Byb3Agc2hhbWVsZXNzbHkgY29w aWVkIGZyb20gLi4vbW9kZXRlc3QvbW9kZXRlc3QuYyAqLwogc3RhdGljIHZvaWQKIGR1bXBfYmxv Yih1aW50MzJfdCBibG9iX2lkKQpAQCAtMjI2LDcgKzE4OSw3IEBAIHN0YXRpYyB2b2lkIGxpc3RD b25uZWN0b3JQcm9wZXJ0aWVzKHZvaWQpCiAJCX0KIAogCQlwcmludGYoIkNvbm5lY3RvciAldSAo JXMtJXUpXG4iLCBjLT5jb25uZWN0b3JfaWQsCi0JCSAgICAgICBjb25uZWN0b3JfdHlwZV9zdHIo Yy0+Y29ubmVjdG9yX3R5cGUpLAorCQkgICAgICAgdXRpbF9sb29rdXBfY29ubmVjdG9yX3R5cGVf bmFtZShjLT5jb25uZWN0b3JfdHlwZSksCiAJCSAgICAgICBjLT5jb25uZWN0b3JfdHlwZV9pZCk7 CiAKIAkJbGlzdE9iamVjdFByb3BlcnRpZXMoYy0+Y29ubmVjdG9yX2lkLApkaWZmIC0tZ2l0IGEv dGVzdHMvdXRpbC9NYWtlZmlsZS5zb3VyY2VzIGIvdGVzdHMvdXRpbC9NYWtlZmlsZS5zb3VyY2Vz CmluZGV4IGU5MWZhNzIyNjUwZi4uZTVmODUxMTM2ZGQ0IDEwMDY0NAotLS0gYS90ZXN0cy91dGls L01ha2VmaWxlLnNvdXJjZXMKKysrIGIvdGVzdHMvdXRpbC9NYWtlZmlsZS5zb3VyY2VzCkBAIC0y LDUgKzIsNyBAQCBVVElMX0ZJTEVTIDo9IFwKIAljb21tb24uaCBcCiAJZm9ybWF0LmMgXAogCWZv cm1hdC5oIFwKKwlrbXMuYyBcCisJa21zLmggXAogCXBhdHRlcm4uYyBcCiAJcGF0dGVybi5oCmRp ZmYgLS1naXQgYS90ZXN0cy91dGlsL2ttcy5jIGIvdGVzdHMvdXRpbC9rbXMuYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjY4N2IzYzNjMWNmMwotLS0gL2Rldi9udWxs CisrKyBiL3Rlc3RzL3V0aWwva21zLmMKQEAgLTAsMCArMSwxMjIgQEAKKy8qCisgKiBDb3B5cmln aHQgMjAwOCBUdW5nc3RlbiBHcmFwaGljcworICogICBKYWtvYiBCb3JuZWNyYW50eiA8amFrb2JA dHVuZ3N0ZW5ncmFwaGljcy5jb20+CisgKiBDb3B5cmlnaHQgMjAwOCBJbnRlbCBDb3Jwb3JhdGlv bgorICogICBKZXNzZSBCYXJuZXMgPGplc3NlLmJhcm5lc0BpbnRlbC5jb20+CisgKgorICogUGVy bWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24g b2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1 bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0 d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisg KiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJp YnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUs IGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlz aGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisg KiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBz aGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9u cyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJ UyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQs IElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB QklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJ TkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBI T0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFC SUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lT RSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09G VFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUworICogSU4gVEhFIFNPRlRXQVJFLgor ICovCisKKy8qCisgKiBUaGlzIGZhaXJseSBzaW1wbGUgdGVzdCBwcm9ncmFtIGR1bXBzIG91dHB1 dCBpbiBhIHNpbWlsYXIgZm9ybWF0IHRvIHRoZQorICogInhyYW5kciIgdG9vbCBldmVyeW9uZSBr bm93cyAmIGxvdmVzLiAgSXQncyBuZWNlc3NhcmlseSBzbGlnaHRseSBkaWZmZXJlbnQKKyAqIHNp bmNlIHRoZSBrZXJuZWwgc2VwYXJhdGVzIG91dHB1dHMgaW50byBlbmNvZGVyIGFuZCBjb25uZWN0 b3Igc3RydWN0dXJlcywKKyAqIGVhY2ggd2l0aCB0aGVpciBvd24gdW5pcXVlIElELiAgVGhlIHBy b2dyYW0gYWxzbyBhbGxvd3MgdGVzdCB0ZXN0aW5nIG9mIHRoZQorICogbWVtb3J5IG1hbmFnZW1l bnQgYW5kIG1vZGUgc2V0dGluZyBBUElzIGJ5IGFsbG93aW5nIHRoZSB1c2VyIHRvIHNwZWNpZnkg YQorICogY29ubmVjdG9yIGFuZCBtb2RlIHRvIHVzZSBmb3IgbW9kZSBzZXR0aW5nLiAgSWYgYWxs IHdvcmtzIGFzIGV4cGVjdGVkLCBhCisgKiBibHVlIGJhY2tncm91bmQgc2hvdWxkIGJlIHBhaW50 ZWQgb24gdGhlIG1vbml0b3IgYXR0YWNoZWQgdG8gdGhlIHNwZWNpZmllZAorICogY29ubmVjdG9y IGFmdGVyIHRoZSBzZWxlY3RlZCBtb2RlIGlzIHNldC4KKyAqCisgKiBUT0RPOiB1c2UgY2Fpcm8g dG8gd3JpdGUgdGhlIG1vZGUgaW5mbyBvbiB0aGUgc2VsZWN0ZWQgb3V0cHV0IG9uY2UKKyAqICAg ICAgIHRoZSBtb2RlIGhhcyBiZWVuIHByb2dyYW1tZWQsIGFsb25nIHdpdGggcG9zc2libGUgdGVz dCBwYXR0ZXJucy4KKyAqLworCisjaWZkZWYgSEFWRV9DT05GSUdfSAorI2luY2x1ZGUgImNvbmZp Zy5oIgorI2VuZGlmCisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4K KworI2luY2x1ZGUgInhmODZkcm1Nb2RlLmgiCisKKyNpbmNsdWRlICJjb21tb24uaCIKKworc3Ry dWN0IHR5cGVfbmFtZSB7CisJdW5zaWduZWQgaW50IHR5cGU7CisJY29uc3QgY2hhciAqbmFtZTsK K307CisKK3N0YXRpYyBjb25zdCBjaGFyICp1dGlsX2xvb2t1cF90eXBlX25hbWUodW5zaWduZWQg aW50IHR5cGUsCisJCQkJCSBjb25zdCBzdHJ1Y3QgdHlwZV9uYW1lICp0YWJsZSwKKwkJCQkJIHVu c2lnbmVkIGludCBjb3VudCkKK3sKKwl1bnNpZ25lZCBpbnQgaTsKKworCWZvciAoaSA9IDA7IGkg PCBjb3VudDsgaSsrKQorCQlpZiAodGFibGVbaV0udHlwZSA9PSB0eXBlKQorCQkJcmV0dXJuIHRh YmxlW2ldLm5hbWU7CisKKwlyZXR1cm4gTlVMTDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCB0 eXBlX25hbWUgZW5jb2Rlcl90eXBlX25hbWVzW10gPSB7CisJeyBEUk1fTU9ERV9FTkNPREVSX05P TkUsICJub25lIiB9LAorCXsgRFJNX01PREVfRU5DT0RFUl9EQUMsICJEQUMiIH0sCisJeyBEUk1f TU9ERV9FTkNPREVSX1RNRFMsICJUTURTIiB9LAorCXsgRFJNX01PREVfRU5DT0RFUl9MVkRTLCAi TFZEUyIgfSwKKwl7IERSTV9NT0RFX0VOQ09ERVJfVFZEQUMsICJUVkRBQyIgfSwKKwl7IERSTV9N T0RFX0VOQ09ERVJfVklSVFVBTCwgIlZpcnR1YWwiIH0sCisJeyBEUk1fTU9ERV9FTkNPREVSX0RT SSwgIkRTSSIgfSwKKwl7IERSTV9NT0RFX0VOQ09ERVJfRFBNU1QsICJEUE1TVCIgfSwKK307CisK K2NvbnN0IGNoYXIgKnV0aWxfbG9va3VwX2VuY29kZXJfdHlwZV9uYW1lKHVuc2lnbmVkIGludCB0 eXBlKQoreworCXJldHVybiB1dGlsX2xvb2t1cF90eXBlX25hbWUodHlwZSwgZW5jb2Rlcl90eXBl X25hbWVzLAorCQkJCSAgICAgQVJSQVlfU0laRShlbmNvZGVyX3R5cGVfbmFtZXMpKTsKK30KKwor c3RhdGljIGNvbnN0IHN0cnVjdCB0eXBlX25hbWUgY29ubmVjdG9yX3N0YXR1c19uYW1lc1tdID0g eworCXsgRFJNX01PREVfQ09OTkVDVEVELCAiY29ubmVjdGVkIiB9LAorCXsgRFJNX01PREVfRElT Q09OTkVDVEVELCAiZGlzY29ubmVjdGVkIiB9LAorCXsgRFJNX01PREVfVU5LTk9XTkNPTk5FQ1RJ T04sICJ1bmtub3duIiB9LAorfTsKKworY29uc3QgY2hhciAqdXRpbF9sb29rdXBfY29ubmVjdG9y X3N0YXR1c19uYW1lKHVuc2lnbmVkIGludCBzdGF0dXMpCit7CisJcmV0dXJuIHV0aWxfbG9va3Vw X3R5cGVfbmFtZShzdGF0dXMsIGNvbm5lY3Rvcl9zdGF0dXNfbmFtZXMsCisJCQkJICAgICBBUlJB WV9TSVpFKGNvbm5lY3Rvcl9zdGF0dXNfbmFtZXMpKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVj dCB0eXBlX25hbWUgY29ubmVjdG9yX3R5cGVfbmFtZXNbXSA9IHsKKwl7IERSTV9NT0RFX0NPTk5F Q1RPUl9Vbmtub3duLCAidW5rbm93biIgfSwKKwl7IERSTV9NT0RFX0NPTk5FQ1RPUl9WR0EsICJW R0EiIH0sCisJeyBEUk1fTU9ERV9DT05ORUNUT1JfRFZJSSwgIkRWSS1JIiB9LAorCXsgRFJNX01P REVfQ09OTkVDVE9SX0RWSUQsICJEVkktRCIgfSwKKwl7IERSTV9NT0RFX0NPTk5FQ1RPUl9EVklB LCAiRFZJLUEiIH0sCisJeyBEUk1fTU9ERV9DT05ORUNUT1JfQ29tcG9zaXRlLCAiY29tcG9zaXRl IiB9LAorCXsgRFJNX01PREVfQ09OTkVDVE9SX1NWSURFTywgInMtdmlkZW8iIH0sCisJeyBEUk1f TU9ERV9DT05ORUNUT1JfTFZEUywgIkxWRFMiIH0sCisJeyBEUk1fTU9ERV9DT05ORUNUT1JfQ29t cG9uZW50LCAiY29tcG9uZW50IiB9LAorCXsgRFJNX01PREVfQ09OTkVDVE9SXzlQaW5ESU4sICI5 LXBpbiBESU4iIH0sCisJeyBEUk1fTU9ERV9DT05ORUNUT1JfRGlzcGxheVBvcnQsICJEUCIgfSwK Kwl7IERSTV9NT0RFX0NPTk5FQ1RPUl9IRE1JQSwgIkhETUktQSIgfSwKKwl7IERSTV9NT0RFX0NP Tk5FQ1RPUl9IRE1JQiwgIkhETUktQiIgfSwKKwl7IERSTV9NT0RFX0NPTk5FQ1RPUl9UViwgIlRW IiB9LAorCXsgRFJNX01PREVfQ09OTkVDVE9SX2VEUCwgImVEUCIgfSwKKwl7IERSTV9NT0RFX0NP Tk5FQ1RPUl9WSVJUVUFMLCAiVmlydHVhbCIgfSwKKwl7IERSTV9NT0RFX0NPTk5FQ1RPUl9EU0ks ICJEU0kiIH0sCit9OworCitjb25zdCBjaGFyICp1dGlsX2xvb2t1cF9jb25uZWN0b3JfdHlwZV9u YW1lKHVuc2lnbmVkIGludCB0eXBlKQoreworCXJldHVybiB1dGlsX2xvb2t1cF90eXBlX25hbWUo dHlwZSwgY29ubmVjdG9yX3R5cGVfbmFtZXMsCisJCQkJICAgICBBUlJBWV9TSVpFKGNvbm5lY3Rv cl90eXBlX25hbWVzKSk7Cit9CmRpZmYgLS1naXQgYS90ZXN0cy91dGlsL2ttcy5oIGIvdGVzdHMv dXRpbC9rbXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmZhOWFi Njk5ODNhYwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL3V0aWwva21zLmgKQEAgLTAsMCArMSwz MyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA4IFR1bmdzdGVuIEdyYXBoaWNzCisgKiAgIEpha29i IEJvcm5lY3JhbnR6IDxqYWtvYkB0dW5nc3RlbmdyYXBoaWNzLmNvbT4KKyAqIENvcHlyaWdodCAy MDA4IEludGVsIENvcnBvcmF0aW9uCisgKiAgIEplc3NlIEJhcm5lcyA8amVzc2UuYmFybmVzQGlu dGVsLmNvbT4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNo YXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJl IGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAq IHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3 aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1l cmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29w aWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisg KiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2lu ZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlz IHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9y IHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdB UkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQ UkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FS UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFV VEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFH RVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJB Q1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09O TkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCisg KiBJTiBUSEUgU09GVFdBUkUuCisgKi8KKworI2lmbmRlZiBVVElMX0tNU19ICisjZGVmaW5lIFVU SUxfS01TX0gKKworY29uc3QgY2hhciAqdXRpbF9sb29rdXBfZW5jb2Rlcl90eXBlX25hbWUodW5z aWduZWQgaW50IHR5cGUpOworY29uc3QgY2hhciAqdXRpbF9sb29rdXBfY29ubmVjdG9yX3N0YXR1 c19uYW1lKHVuc2lnbmVkIGludCB0eXBlKTsKK2NvbnN0IGNoYXIgKnV0aWxfbG9va3VwX2Nvbm5l Y3Rvcl90eXBlX25hbWUodW5zaWduZWQgaW50IHR5cGUpOworCisjZW5kaWYgLyogVVRJTF9LTVNf SCAqLwotLSAKMi41LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVsCg==