From: Thomas Garnier Subject: [PATCH v3 15/27] compiler: Option to default to hidden symbols Date: Wed, 23 May 2018 12:54:09 -0700 Message-ID: <20180523195421.180248-16-thgarnie@google.com> References: <20180523195421.180248-1-thgarnie@google.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: linux-arch@vger.kernel.org, kvm@vger.kernel.org, linux-pm@vger.kernel.org, x86@kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, virtualization@lists.linux-foundation.org, linux-sparse@vger.kernel.org, linux-crypto@vger.kernel.org, kernel-hardening@lists.openwall.com, xen-devel@lists.xenproject.org To: Herbert Xu , "David S . Miller" , Thomas Gleixner , Ingo Molnar , "H . Peter Anvin" , Peter Zijlstra , Josh Poimboeuf , Greg Kroah-Hartman , Thomas Garnier , Philippe Ombredanne , Kate Stewart , Arnaldo Carvalho de Melo , Yonghong Song , Andrey Ryabinin , Kees Cook , Tom Lendacky , "Kirill A . Shutemov" , Andy Lutomirski , Dominik Brodowski , Borislav Petkov , Borislav Petkov , "Rafael J . Wysocki" , Len Return-path: In-Reply-To: <20180523195421.180248-1-thgarnie@google.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" List-Id: linux-crypto.vger.kernel.org UHJvdmlkZSBhbiBvcHRpb24gdG8gZGVmYXVsdCB2aXNpYmlsaXR5IHRvIGhpZGRlbiBleGNlcHQg Zm9yIGtleQpzeW1ib2xzLiBUaGlzIG9wdGlvbiBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IGFuZCB3 aWxsIGJlIHVzZWQgYnkgeDg2XzY0ClBJRSBzdXBwb3J0IHRvIHJlbW92ZSBlcnJvcnMgYmV0d2Vl biBjb21waWxhdGlvbiB1bml0cy4KClRoZSBkZWZhdWx0IHZpc2liaWxpdHkgaXMgYWxzbyBlbmFi bGVkIGZvciBleHRlcm5hbCBzeW1ib2xzIHRoYXQgYXJlCmNvbXBhcmVkIGFzIHRoZXkgbWF5YmUg ZXF1YWxzIChzdGFydC9lbmQgb2Ygc2VjdGlvbnMpLiBJbiB0aGlzIGNhc2UsCm9sZGVyIHZlcnNp b25zIG9mIEdDQyB3aWxsIHJlbW92ZSB0aGUgY29tcGFyaXNvbiBpZiB0aGUgc3ltYm9scyBhcmUK aGlkZGVuLiBUaGlzIGlzc3VlIGV4aXN0cyBhdCBsZWFzdCBvbiBnY2MgNC45IGFuZCBiZWZvcmUu CgpTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgR2FybmllciA8dGhnYXJuaWVAZ29vZ2xlLmNvbT4KLS0t CiBhcmNoL3g4Ni9ib290L2Jvb3QuaCAgICAgICAgICAgICAgICAgfCAgMiArLQogYXJjaC94ODYv aW5jbHVkZS9hc20vc2V0dXAuaCAgICAgICAgIHwgIDIgKy0KIGFyY2gveDg2L2tlcm5lbC9jcHUv bWljcm9jb2RlL2NvcmUuYyB8ICA0ICsrLS0KIGRyaXZlcnMvYmFzZS9maXJtd2FyZV9sb2FkZXIv bWFpbi5jICB8ICA0ICsrLS0KIGluY2x1ZGUvYXNtLWdlbmVyaWMvc2VjdGlvbnMuaCAgICAgICB8 ICA2ICsrKysrKwogaW5jbHVkZS9saW51eC9jb21waWxlci5oICAgICAgICAgICAgIHwgIDcgKysr KysrKwogaW5pdC9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDcgKysrKysrKwog a2VybmVsL2thbGxzeW1zLmMgICAgICAgICAgICAgICAgICAgIHwgMTYgKysrKysrKystLS0tLS0t LQoga2VybmVsL3RyYWNlL3RyYWNlLmggICAgICAgICAgICAgICAgIHwgIDQgKystLQogbGliL2R5 bmFtaWNfZGVidWcuYyAgICAgICAgICAgICAgICAgIHwgIDQgKystLQogMTAgZmlsZXMgY2hhbmdl ZCwgMzggaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC94 ODYvYm9vdC9ib290LmggYi9hcmNoL3g4Ni9ib290L2Jvb3QuaAppbmRleCBlZjVhOWNjNjZmYjgu LmQ3MjZjMzViZGQ5NiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvYm9vdC9ib290LmgKKysrIGIvYXJj aC94ODYvYm9vdC9ib290LmgKQEAgLTE5Myw3ICsxOTMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg bWVtY21wX2dzKGNvbnN0IHZvaWQgKnMxLCBhZGRyX3QgczIsIHNpemVfdCBsZW4pCiB9CiAKIC8q IEhlYXAgLS0gYXZhaWxhYmxlIGZvciBkeW5hbWljIGxpc3RzLiAqLwotZXh0ZXJuIGNoYXIgX2Vu ZFtdOworZXh0ZXJuIGNoYXIgX2VuZFtdIF9fZGVmYXVsdF92aXNpYmlsaXR5OwogZXh0ZXJuIGNo YXIgKkhFQVA7CiBleHRlcm4gY2hhciAqaGVhcF9lbmQ7CiAjZGVmaW5lIFJFU0VUX0hFQVAoKSAo KHZvaWQgKikoIEhFQVAgPSBfZW5kICkpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2Fz bS9zZXR1cC5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vc2V0dXAuaAppbmRleCBhZTEzYmM5NzQ0 MTYuLjA4M2E2ZTk5Yjg4NCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20vc2V0dXAu aAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zZXR1cC5oCkBAIC02OCw3ICs2OCw3IEBAIHN0 YXRpYyBpbmxpbmUgdm9pZCB4ODZfY2U0MTAwX2Vhcmx5X3NldHVwKHZvaWQpIHsgfQogICogVGhp cyBpcyBzZXQgdXAgYnkgdGhlIHNldHVwLXJvdXRpbmUgYXQgYm9vdC10aW1lCiAgKi8KIGV4dGVy biBzdHJ1Y3QgYm9vdF9wYXJhbXMgYm9vdF9wYXJhbXM7Ci1leHRlcm4gY2hhciBfdGV4dFtdOwor ZXh0ZXJuIGNoYXIgX3RleHRbXSBfX2RlZmF1bHRfdmlzaWJpbGl0eTsKIAogc3RhdGljIGlubGlu ZSBib29sIGthc2xyX2VuYWJsZWQodm9pZCkKIHsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5l bC9jcHUvbWljcm9jb2RlL2NvcmUuYyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbWljcm9jb2RlL2Nv cmUuYwppbmRleCA3N2UyMDEzMDE1MjguLjZhNGY1ZDlkN2ViNiAxMDA2NDQKLS0tIGEvYXJjaC94 ODYva2VybmVsL2NwdS9taWNyb2NvZGUvY29yZS5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHUv bWljcm9jb2RlL2NvcmUuYwpAQCAtMTQ5LDggKzE0OSw4IEBAIHN0YXRpYyBib29sIF9faW5pdCBj aGVja19sb2FkZXJfZGlzYWJsZWRfYnNwKHZvaWQpCiAJcmV0dXJuICpyZXM7CiB9CiAKLWV4dGVy biBzdHJ1Y3QgYnVpbHRpbl9mdyBfX3N0YXJ0X2J1aWx0aW5fZndbXTsKLWV4dGVybiBzdHJ1Y3Qg YnVpbHRpbl9mdyBfX2VuZF9idWlsdGluX2Z3W107CitleHRlcm4gc3RydWN0IGJ1aWx0aW5fZncg X19zdGFydF9idWlsdGluX2Z3W10gX19kZWZhdWx0X3Zpc2liaWxpdHk7CitleHRlcm4gc3RydWN0 IGJ1aWx0aW5fZncgX19lbmRfYnVpbHRpbl9md1tdIF9fZGVmYXVsdF92aXNpYmlsaXR5OwogCiBi b29sIGdldF9idWlsdGluX2Zpcm13YXJlKHN0cnVjdCBjcGlvX2RhdGEgKmNkLCBjb25zdCBjaGFy ICpuYW1lKQogewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9iYXNlL2Zpcm13YXJlX2xvYWRlci9tYWlu LmMgYi9kcml2ZXJzL2Jhc2UvZmlybXdhcmVfbG9hZGVyL21haW4uYwppbmRleCAwOTQzZTcwNjVl MGUuLjJmZmQwMTlhZjJkNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9iYXNlL2Zpcm13YXJlX2xvYWRl ci9tYWluLmMKKysrIGIvZHJpdmVycy9iYXNlL2Zpcm13YXJlX2xvYWRlci9tYWluLmMKQEAgLTk0 LDggKzk0LDggQEAgc3RhdGljIHN0cnVjdCBmaXJtd2FyZV9jYWNoZSBmd19jYWNoZTsKIAogI2lm ZGVmIENPTkZJR19GV19MT0FERVIKIAotZXh0ZXJuIHN0cnVjdCBidWlsdGluX2Z3IF9fc3RhcnRf YnVpbHRpbl9md1tdOwotZXh0ZXJuIHN0cnVjdCBidWlsdGluX2Z3IF9fZW5kX2J1aWx0aW5fZndb XTsKK2V4dGVybiBzdHJ1Y3QgYnVpbHRpbl9mdyBfX3N0YXJ0X2J1aWx0aW5fZndbXSBfX2RlZmF1 bHRfdmlzaWJpbGl0eTsKK2V4dGVybiBzdHJ1Y3QgYnVpbHRpbl9mdyBfX2VuZF9idWlsdGluX2Z3 W10gX19kZWZhdWx0X3Zpc2liaWxpdHk7CiAKIHN0YXRpYyB2b2lkIGZ3X2NvcHlfdG9fcHJlYWxs b2NfYnVmKHN0cnVjdCBmaXJtd2FyZSAqZncsCiAJCQkJICAgIHZvaWQgKmJ1Ziwgc2l6ZV90IHNp emUpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1nZW5lcmljL3NlY3Rpb25zLmggYi9pbmNsdWRl L2FzbS1nZW5lcmljL3NlY3Rpb25zLmgKaW5kZXggODQ5Y2Q4ZWI1Y2EwLi4wYTBlMjM0MDVkZGQg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvc2VjdGlvbnMuaAorKysgYi9pbmNsdWRl L2FzbS1nZW5lcmljL3NlY3Rpb25zLmgKQEAgLTMyLDYgKzMyLDkgQEAKICAqCV9fc29mdGlycWVu dHJ5X3RleHRfc3RhcnQsIF9fc29mdGlycWVudHJ5X3RleHRfZW5kCiAgKglfX3N0YXJ0X29wZCwg X19lbmRfb3BkCiAgKi8KKyNpZmRlZiBDT05GSUdfREVGQVVMVF9ISURERU4KKyNwcmFnbWEgR0ND IHZpc2liaWxpdHkgcHVzaChkZWZhdWx0KQorI2VuZGlmCiBleHRlcm4gY2hhciBfdGV4dFtdLCBf c3RleHRbXSwgX2V0ZXh0W107CiBleHRlcm4gY2hhciBfZGF0YVtdLCBfc2RhdGFbXSwgX2VkYXRh W107CiBleHRlcm4gY2hhciBfX2Jzc19zdGFydFtdLCBfX2Jzc19zdG9wW107CkBAIC00OSw2ICs1 Miw5IEBAIGV4dGVybiBjaGFyIF9fc3RhcnRfb25jZVtdLCBfX2VuZF9vbmNlW107CiAKIC8qIFN0 YXJ0IGFuZCBlbmQgb2YgLmN0b3JzIHNlY3Rpb24gLSB1c2VkIGZvciBjb25zdHJ1Y3RvciBjYWxs cy4gKi8KIGV4dGVybiBjaGFyIF9fY3RvcnNfc3RhcnRbXSwgX19jdG9yc19lbmRbXTsKKyNpZmRl ZiBDT05GSUdfREVGQVVMVF9ISURERU4KKyNwcmFnbWEgR0NDIHZpc2liaWxpdHkgcG9wCisjZW5k aWYKIAogLyogU3RhcnQgYW5kIGVuZCBvZiAub3BkIHNlY3Rpb24gLSB1c2VkIGZvciBmdW5jdGlv biBkZXNjcmlwdG9ycy4gKi8KIGV4dGVybiBjaGFyIF9fc3RhcnRfb3BkW10sIF9fZW5kX29wZFtd OwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9jb21waWxlci5oIGIvaW5jbHVkZS9saW51eC9j b21waWxlci5oCmluZGV4IDM0MWI2Y2Y4YzAyOS4uODFhOTk4NmNhZDc4IDEwMDY0NAotLS0gYS9p bmNsdWRlL2xpbnV4L2NvbXBpbGVyLmgKKysrIGIvaW5jbHVkZS9saW51eC9jb21waWxlci5oCkBA IC0yNzgsNiArMjc4LDEzIEBAIHVuc2lnbmVkIGxvbmcgcmVhZF93b3JkX2F0X2FfdGltZShjb25z dCB2b2lkICphZGRyKQogCV9fdS5fX3ZhbDsJCQkJCVwKIH0pCiAKKyNpZmRlZiBDT05GSUdfREVG QVVMVF9ISURERU4KKyNwcmFnbWEgR0NDIHZpc2liaWxpdHkgcHVzaChoaWRkZW4pCisjZGVmaW5l IF9fZGVmYXVsdF92aXNpYmlsaXR5ICBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5ICgiZGVmYXVs dCIpKSkKKyNlbHNlCisjZGVmaW5lIF9fZGVmYXVsdF92aXNpYmlsaXR5CisjZW5kaWYKKwogI2Vu ZGlmIC8qIF9fS0VSTkVMX18gKi8KIAogI2VuZGlmIC8qIF9fQVNTRU1CTFlfXyAqLwpkaWZmIC0t Z2l0IGEvaW5pdC9LY29uZmlnIGIvaW5pdC9LY29uZmlnCmluZGV4IDg5MTVhM2NlNWYwYy4uMGZj M2E1OGQ5ZjJmIDEwMDY0NAotLS0gYS9pbml0L0tjb25maWcKKysrIGIvaW5pdC9LY29uZmlnCkBA IC0xNjk0LDYgKzE2OTQsMTMgQEAgY29uZmlnIFBST0ZJTElORwogY29uZmlnIFRSQUNFUE9JTlRT CiAJYm9vbAogCisjCisjIERlZmF1bHQgdG8gaGlkZGVuIHZpc2liaWxpdHkgZm9yIGFsbCBzeW1i b2xzLgorIyBVc2VmdWwgZm9yIFBvc2l0aW9uIEluZGVwZW5kZW50IENvZGUgdG8gcmVkdWNlIGds b2JhbCByZWZlcmVuY2VzLgorIworY29uZmlnIERFRkFVTFRfSElEREVOCisJYm9vbAorCiBzb3Vy Y2UgImFyY2gvS2NvbmZpZyIKIAogZW5kbWVudQkJIyBHZW5lcmFsIHNldHVwCmRpZmYgLS1naXQg YS9rZXJuZWwva2FsbHN5bXMuYyBiL2tlcm5lbC9rYWxsc3ltcy5jCmluZGV4IGEyM2UyMWFkYTgx Yi4uZjRlNThiN2E2ZGFmIDEwMDY0NAotLS0gYS9rZXJuZWwva2FsbHN5bXMuYworKysgYi9rZXJu ZWwva2FsbHN5bXMuYwpAQCAtMjksMjQgKzI5LDI0IEBACiAgKiBUaGVzZSB3aWxsIGJlIHJlLWxp bmtlZCBhZ2FpbnN0IHRoZWlyIHJlYWwgdmFsdWVzCiAgKiBkdXJpbmcgdGhlIHNlY29uZCBsaW5r IHN0YWdlLgogICovCi1leHRlcm4gY29uc3QgdW5zaWduZWQgbG9uZyBrYWxsc3ltc19hZGRyZXNz ZXNbXSBfX3dlYWs7Ci1leHRlcm4gY29uc3QgaW50IGthbGxzeW1zX29mZnNldHNbXSBfX3dlYWs7 Ci1leHRlcm4gY29uc3QgdTgga2FsbHN5bXNfbmFtZXNbXSBfX3dlYWs7CitleHRlcm4gY29uc3Qg dW5zaWduZWQgbG9uZyBrYWxsc3ltc19hZGRyZXNzZXNbXSBfX3dlYWsgX19kZWZhdWx0X3Zpc2li aWxpdHk7CitleHRlcm4gY29uc3QgaW50IGthbGxzeW1zX29mZnNldHNbXSBfX3dlYWsgX19kZWZh dWx0X3Zpc2liaWxpdHk7CitleHRlcm4gY29uc3QgdTgga2FsbHN5bXNfbmFtZXNbXSBfX3dlYWsg X19kZWZhdWx0X3Zpc2liaWxpdHk7CiAKIC8qCiAgKiBUZWxsIHRoZSBjb21waWxlciB0aGF0IHRo ZSBjb3VudCBpc24ndCBpbiB0aGUgc21hbGwgZGF0YSBzZWN0aW9uIGlmIHRoZSBhcmNoCiAgKiBo YXMgb25lIChlZzogRlJWKS4KICAqLwogZXh0ZXJuIGNvbnN0IHVuc2lnbmVkIGxvbmcga2FsbHN5 bXNfbnVtX3N5bXMKLV9fYXR0cmlidXRlX18oKHdlYWssIHNlY3Rpb24oIi5yb2RhdGEiKSkpOwor X19hdHRyaWJ1dGVfXygod2Vhaywgc2VjdGlvbigiLnJvZGF0YSIpKSkgX19kZWZhdWx0X3Zpc2li aWxpdHk7CiAKIGV4dGVybiBjb25zdCB1bnNpZ25lZCBsb25nIGthbGxzeW1zX3JlbGF0aXZlX2Jh c2UKLV9fYXR0cmlidXRlX18oKHdlYWssIHNlY3Rpb24oIi5yb2RhdGEiKSkpOworX19hdHRyaWJ1 dGVfXygod2Vhaywgc2VjdGlvbigiLnJvZGF0YSIpKSkgX19kZWZhdWx0X3Zpc2liaWxpdHk7CiAK LWV4dGVybiBjb25zdCB1OCBrYWxsc3ltc190b2tlbl90YWJsZVtdIF9fd2VhazsKLWV4dGVybiBj b25zdCB1MTYga2FsbHN5bXNfdG9rZW5faW5kZXhbXSBfX3dlYWs7CitleHRlcm4gY29uc3QgdTgg a2FsbHN5bXNfdG9rZW5fdGFibGVbXSBfX3dlYWsgX19kZWZhdWx0X3Zpc2liaWxpdHk7CitleHRl cm4gY29uc3QgdTE2IGthbGxzeW1zX3Rva2VuX2luZGV4W10gX193ZWFrIF9fZGVmYXVsdF92aXNp YmlsaXR5OwogCi1leHRlcm4gY29uc3QgdW5zaWduZWQgbG9uZyBrYWxsc3ltc19tYXJrZXJzW10g X193ZWFrOworZXh0ZXJuIGNvbnN0IHVuc2lnbmVkIGxvbmcga2FsbHN5bXNfbWFya2Vyc1tdIF9f d2VhayBfX2RlZmF1bHRfdmlzaWJpbGl0eTsKIAogLyoKICAqIEV4cGFuZCBhIGNvbXByZXNzZWQg c3ltYm9sIGRhdGEgaW50byB0aGUgcmVzdWx0aW5nIHVuY29tcHJlc3NlZCBzdHJpbmcsCmRpZmYg LS1naXQgYS9rZXJuZWwvdHJhY2UvdHJhY2UuaCBiL2tlcm5lbC90cmFjZS90cmFjZS5oCmluZGV4 IDZmYjQ2YTA2YzlkYy4uZTY1OWY0NTJjZjhjIDEwMDY0NAotLS0gYS9rZXJuZWwvdHJhY2UvdHJh Y2UuaAorKysgYi9rZXJuZWwvdHJhY2UvdHJhY2UuaApAQCAtMTc0Niw4ICsxNzQ2LDggQEAgZXh0 ZXJuIGludCB0cmFjZV9ldmVudF9lbmFibGVfZGlzYWJsZShzdHJ1Y3QgdHJhY2VfZXZlbnRfZmls ZSAqZmlsZSwKIAkJCQkgICAgICBpbnQgZW5hYmxlLCBpbnQgc29mdF9kaXNhYmxlKTsKIGV4dGVy biBpbnQgdHJhY2luZ19hbGxvY19zbmFwc2hvdCh2b2lkKTsKIAotZXh0ZXJuIGNvbnN0IGNoYXIg Kl9fc3RhcnRfX190cmFjZV9icHJpbnRrX2ZtdFtdOwotZXh0ZXJuIGNvbnN0IGNoYXIgKl9fc3Rv cF9fX3RyYWNlX2JwcmludGtfZm10W107CitleHRlcm4gY29uc3QgY2hhciAqX19zdGFydF9fX3Ry YWNlX2JwcmludGtfZm10W10gX19kZWZhdWx0X3Zpc2liaWxpdHk7CitleHRlcm4gY29uc3QgY2hh ciAqX19zdG9wX19fdHJhY2VfYnByaW50a19mbXRbXSBfX2RlZmF1bHRfdmlzaWJpbGl0eTsKIAog ZXh0ZXJuIGNvbnN0IGNoYXIgKl9fc3RhcnRfX190cmFjZXBvaW50X3N0cltdOwogZXh0ZXJuIGNv bnN0IGNoYXIgKl9fc3RvcF9fX3RyYWNlcG9pbnRfc3RyW107CmRpZmYgLS1naXQgYS9saWIvZHlu YW1pY19kZWJ1Zy5jIGIvbGliL2R5bmFtaWNfZGVidWcuYwppbmRleCBjN2M5NmJjNzY1NGEuLjQw Yjc1MmI1MzYyNyAxMDA2NDQKLS0tIGEvbGliL2R5bmFtaWNfZGVidWcuYworKysgYi9saWIvZHlu YW1pY19kZWJ1Zy5jCkBAIC0zNyw4ICszNyw4IEBACiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+ CiAjaW5jbHVkZSA8bGludXgvbmV0ZGV2aWNlLmg+CiAKLWV4dGVybiBzdHJ1Y3QgX2RkZWJ1ZyBf X3N0YXJ0X19fdmVyYm9zZVtdOwotZXh0ZXJuIHN0cnVjdCBfZGRlYnVnIF9fc3RvcF9fX3ZlcmJv c2VbXTsKK2V4dGVybiBzdHJ1Y3QgX2RkZWJ1ZyBfX3N0YXJ0X19fdmVyYm9zZVtdIF9fZGVmYXVs dF92aXNpYmlsaXR5OworZXh0ZXJuIHN0cnVjdCBfZGRlYnVnIF9fc3RvcF9fX3ZlcmJvc2VbXSBf X2RlZmF1bHRfdmlzaWJpbGl0eTsKIAogc3RydWN0IGRkZWJ1Z190YWJsZSB7CiAJc3RydWN0IGxp c3RfaGVhZCBsaW5rOwotLSAKMi4xNy4wLjQ0MS5nYjQ2ZmU2MGUxZC1nb29nCgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcg bGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9q ZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==