IyBNaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBQcm9qZWN0IEZpbGUgLSBOYW1lPSJyZGpwZ2NvbSIgLSBQYWNrYWdlIE93bmVyPTw0PgojIE1pY3Jvc29mdCBEZXZlbG9wZXIgU3R1ZGlvIEdlbmVyYXRlZCBCdWlsZCBGaWxlLCBGb3JtYXQgVmVyc2lvbiA2LjAwCiMgKiogTklDSFQgQkVBUkJFSVRFTiAqKgoKIyBUQVJHVFlQRSAiV2luMzIgKHg4NikgQ29uc29sZSBBcHBsaWNhdGlvbiIgMHgwMTAzCgpDRkc9cmRqcGdjb20gLSBXaW4zMgohTUVTU0FHRSBEaWVzIGlzdCBrZWluIGeBbHRpZ2VzIE1ha2VmaWxlLiBadW0gRXJzdGVsbGVuIGRpZXNlcyBQcm9qZWt0cyBtaXQgTk1BS0UKIU1FU1NBR0UgdmVyd2VuZGVuIFNpZSBkZW4gQmVmZWhsICJNYWtlZmlsZSBleHBvcnRpZXJlbiIgdW5kIGaBaHJlbiBTaWUgZGVuIEJlZmVobAohTUVTU0FHRSAKIU1FU1NBR0UgTk1BS0UgL2YgInJkanBnY29tLm1hayIuCiFNRVNTQUdFIAohTUVTU0FHRSBTaWUga/dubmVuIGJlaW0gQXVzZoFocmVuIHZvbiBOTUFLRSBlaW5lIEtvbmZpZ3VyYXRpb24gYW5nZWJlbgohTUVTU0FHRSBkdXJjaCBEZWZpbmllcmVuIGRlcyBNYWtyb3MgQ0ZHIGluIGRlciBCZWZlaGxzemVpbGUuIFp1bSBCZWlzcGllbDoKIU1FU1NBR0UgCiFNRVNTQUdFIE5NQUtFIC9mICJyZGpwZ2NvbS5tYWsiIENGRz0icmRqcGdjb20gLSBXaW4zMiIKIU1FU1NBR0UgCiFNRVNTQUdFIEaBciBkaWUgS29uZmlndXJhdGlvbiBzdGVoZW4genVyIEF1c3dhaGw6CiFNRVNTQUdFIAohTUVTU0FHRSAicmRqcGdjb20gLSBXaW4zMiIgKGJhc2llcmVuZCBhdWYgICJXaW4zMiAoeDg2KSBDb25zb2xlIEFwcGxpY2F0aW9uIikKIU1FU1NBR0UgCgojIEJlZ2luIFByb2plY3QKIyBQUk9QIEFsbG93UGVyQ29uZmlnRGVwZW5kZW5jaWVzIDAKIyBQUk9QIFNjY19Qcm9qTmFtZSAiIgojIFBST1AgU2NjX0xvY2FsUGF0aCAiIgpDUFA9Y2wuZXhlClJTQz1yYy5leGUKIyBQUk9QIEJBU0UgVXNlX01GQyAwCiMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMAojIFBST1AgQkFTRSBPdXRwdXRfRGlyICIuXHJkanBnY29tXFJlbGVhc2UiCiMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIi5ccmRqcGdjb21cUmVsZWFzZSIKIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiLlxyZGpwZ2NvbSIKIyBQUk9QIFVzZV9NRkMgMAojIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAwCiMgUFJPUCBPdXRwdXRfRGlyICIuXHJkanBnY29tXFJlbGVhc2UiCiMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICIuXHJkanBnY29tXFJlbGVhc2UiCiMgUFJPUCBJZ25vcmVfRXhwb3J0X0xpYiAwCiMgUFJPUCBUYXJnZXRfRGlyICIuXHJkanBnY29tIgojIEFERCBCQVNFIENQUCAvbm9sb2dvIC9XMyAvR1ggL08yIC9EICJXSU4zMiIgL0QgIk5ERUJVRyIgL0QgIl9DT05TT0xFIiAvWVggL2MKIyBBREQgQ1BQIC9ub2xvZ28gL0c2IC9NVCAvVzMgL0dYIC9PeCAvT2EgL09iMiAvRCAiV0lOMzIiIC9EICJOREVCVUciIC9EICJfQ09OU09MRSIgL1lYIC9GRCAvYwojIEFERCBCQVNFIFJTQyAvbCAweDQwOSAvZCAiTkRFQlVHIgojIEFERCBSU0MgL2wgMHg0MDkgL2QgIk5ERUJVRyIKQlNDMzI9YnNjbWFrZS5leGUKIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvCiMgQUREIEJTQzMyIC9ub2xvZ28KTElOSzMyPWxpbmsuZXhlCiMgQUREIEJBU0UgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9tYWNoaW5lOkkzODYKIyBBREQgTElOSzMyIFJlbGVhc2VcanBlZy5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgZ2RpMzIubGliIHdpbnNwb29sLmxpYiBjb21kbGczMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIG9sZTMyLmxpYiBvbGVhdXQzMi5saWIgdXVpZC5saWIgb2RiYzMyLmxpYiBvZGJjY3AzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL21hY2hpbmU6STM4NgojIEJlZ2luIFRhcmdldAoKIyBOYW1lICJyZGpwZ2NvbSAtIFdpbjMyIgojIEJlZ2luIEdyb3VwICJRdWVsbGNvZGVkYXRlaWVuIgoKIyBQUk9QIERlZmF1bHRfRmlsdGVyICJjcHA7YztjeHg7cmM7ZGVmO3I7b2RsO2lkbDtocGo7YmF0O2ZvcjtmOTAiCiMgQmVnaW4gU291cmNlIEZpbGUKClNPVVJDRT0uXHJkanBnY29tLmMKIyBFbmQgU291cmNlIEZpbGUKIyBFbmQgR3JvdXAKIyBCZWdpbiBHcm91cCAiSGVhZGVyLURhdGVpZW4iCgojIFBST1AgRGVmYXVsdF9GaWx0ZXIgImg7aHBwO2h4eDtobTtpbmw7Zmk7ZmQiCiMgQmVnaW4gU291cmNlIEZpbGUKClNPVVJDRT0uXGpjb25maWcuaAojIEVuZCBTb3VyY2UgRmlsZQojIEJlZ2luIFNvdXJjZSBGaWxlCgpTT1VSQ0U9LlxqaW5jbHVkZS5oCiMgRW5kIFNvdXJjZSBGaWxlCiMgRW5kIEdyb3VwCiMgQmVnaW4gR3JvdXAgIlJlc3NvdXJjZW5kYXRlaWVuIgoKIyBQUk9QIERlZmF1bHRfRmlsdGVyICJpY287Y3VyO2JtcDtkbGc7cmMyO3JjdDtiaW47Y250O3J0ZjtnaWY7anBnO2pwZWc7anBlIgojIEVuZCBHcm91cAojIEVuZCBUYXJnZXQKIyBFbmQgUHJvamVjdAo=