Ly9NaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBnZW5lcmF0ZWQgcmVzb3VyY2Ugc2NyaXB0LgovLwojaW5jbHVkZSAicmVzb3VyY2UuaCIKCiNkZWZpbmUgQVBTVFVESU9fUkVBRE9OTFlfU1lNQk9MUwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLwovLyBHZW5lcmF0ZWQgZnJvbSB0aGUgVEVYVElOQ0xVREUgMiByZXNvdXJjZS4KLy8KI2luY2x1ZGUgImFmeHJlcy5oIgoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KI3VuZGVmIEFQU1RVRElPX1JFQURPTkxZX1NZTUJPTFMKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIEVuZ2xpc2ggKFUuUy4pIHJlc291cmNlcwoKI2lmICFkZWZpbmVkKEFGWF9SRVNPVVJDRV9ETEwpIHx8IGRlZmluZWQoQUZYX1RBUkdfRU5VKQojaWZkZWYgX1dJTjMyCkxBTkdVQUdFIExBTkdfRU5HTElTSCwgU1VCTEFOR19FTkdMSVNIX1VTCiNwcmFnbWEgY29kZV9wYWdlKDEyNTIpCiNlbmRpZiAvL19XSU4zMgoKI2lmZGVmIEFQU1RVRElPX0lOVk9LRUQKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8KLy8gVEVYVElOQ0xVREUKLy8KCjEgVEVYVElOQ0xVREUgRElTQ0FSREFCTEUgCkJFR0lOCiAgICAicmVzb3VyY2UuaFwwIgpFTkQKCjIgVEVYVElOQ0xVREUgRElTQ0FSREFCTEUgCkJFR0lOCiAgICAiI2luY2x1ZGUgIiJhZnhyZXMuaCIiXHJcbiIKICAgICJcMCIKRU5ECgozIFRFWFRJTkNMVURFIERJU0NBUkRBQkxFIApCRUdJTgogICAgIiNkZWZpbmUgX0FGWF9OT19TUExJVFRFUl9SRVNPVVJDRVNcclxuIgogICAgIiNkZWZpbmUgX0FGWF9OT19PTEVfUkVTT1VSQ0VTXHJcbiIKICAgICIjZGVmaW5lIF9BRlhfTk9fVFJBQ0tFUl9SRVNPVVJDRVNcclxuIgogICAgIiNkZWZpbmUgX0FGWF9OT19QUk9QRVJUWV9SRVNPVVJDRVNcclxuIgogICAgIlxyXG4iCiAgICAiI2lmICFkZWZpbmVkKEFGWF9SRVNPVVJDRV9ETEwpIHx8IGRlZmluZWQoQUZYX1RBUkdfRU5VKVxyXG4iCiAgICAiI2lmZGVmIF9XSU4zMlxyXG4iCiAgICAiTEFOR1VBR0UgOSwgMVxyXG4iCiAgICAiI3ByYWdtYSBjb2RlX3BhZ2UoMTI1MilcclxuIgogICAgIiNlbmRpZiAvL19XSU4zMlxyXG4iCiAgICAiI2luY2x1ZGUgIiJyZXNcXERpYWdyYW1QcmludC5yYzIiIiAgLy8gbm9uLU1pY3Jvc29mdCBWaXN1YWwgQysrIGVkaXRlZCByZXNvdXJjZXNcclxuIgogICAgIiNpbmNsdWRlICIiYWZ4cmVzLnJjIiIgICAgICAgICAvLyBTdGFuZGFyZCBjb21wb25lbnRzXHJcbiIKICAgICIjZW5kaWZcclxuIgogICAgIlwwIgpFTkQKCiNlbmRpZiAgICAvLyBBUFNUVURJT19JTlZPS0VECgoKI2lmbmRlZiBfTUFDCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vCi8vIFZlcnNpb24KLy8KClZTX1ZFUlNJT05fSU5GTyBWRVJTSU9OSU5GTwogRklMRVZFUlNJT04gMSwwLDAsMQogUFJPRFVDVFZFUlNJT04gMSwwLDAsMQogRklMRUZMQUdTTUFTSyAweDNmTAojaWZkZWYgX0RFQlVHCiBGSUxFRkxBR1MgMHgxTAojZWxzZQogRklMRUZMQUdTIDB4MEwKI2VuZGlmCiBGSUxFT1MgMHg0TAogRklMRVRZUEUgMHgyTAogRklMRVNVQlRZUEUgMHgwTApCRUdJTgogICAgQkxPQ0sgIlN0cmluZ0ZpbGVJbmZvIgogICAgQkVHSU4KICAgICAgICBCTE9DSyAiMDQwOTA0YjAiCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgVkFMVUUgIkNvbW1lbnRzIiwgIlwwIgogICAgICAgICAgICBWQUxVRSAiQ29tcGFueU5hbWUiLCAiSUJNIENvcnBvcmF0aW9uXDAiCiAgICAgICAgICAgIFZBTFVFICJGaWxlRGVzY3JpcHRpb24iLCAiRGlhZ3JhbVByaW50IERMTFwwIgogICAgICAgICAgICBWQUxVRSAiRmlsZVZlcnNpb24iLCAiMSwgMCwgMCwgMVwwIgogICAgICAgICAgICBWQUxVRSAiSW50ZXJuYWxOYW1lIiwgIkRpYWdyYW1QcmludFwwIgogICAgICAgICAgICBWQUxVRSAiTGVnYWxDb3B5cmlnaHQiLCAiTGljZW5zZWQgTWF0ZXJpYWxzIC0tIFByb3BlcnR5IG9mIElCTSAtIChDKSBDb3B5cmlnaHQgSUJNIENvcnBvcmF0aW9uLCAyMDAzLDIwMDMgLSBVUyBHb3Zlcm5tZW50IFVzZXJzIFJlc3RyaWN0ZWQgUmlnaHRzIC0gVXNlLCBkdXBsaWNhdGlvbiBvciBkaXNjbG9zdXJlIHJlc3RyaWN0ZWQgYnkgR1NBIEFEUCBTY2hlZHVsZSBDb250cmFjdCB3aXRoIElCTSBDb3JwLlwwIgogICAgICAgICAgICBWQUxVRSAiTGVnYWxUcmFkZW1hcmtzIiwgIq4gSUJNIGlzIGEgcmVnaXN0ZXJlZCB0cmFkZW1hcmsgb2YgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbi4gIFdpbmRvd3MoVE0pIGlzIGEgdHJhZGVtYXJrIG9mIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cMCIKICAgICAgICAgICAgVkFMVUUgIk9yaWdpbmFsRmlsZW5hbWUiLCAiRGlhZ3JhbVByaW50LkRMTFwwIgogICAgICAgICAgICBWQUxVRSAiUHJpdmF0ZUJ1aWxkIiwgIlwwIgogICAgICAgICAgICBWQUxVRSAiUHJvZHVjdE5hbWUiLCAiRGlhZ3JhbVByaW50IER5bmFtaWMgTGluayBMaWJyYXJ5XDAiCiAgICAgICAgICAgIFZBTFVFICJQcm9kdWN0VmVyc2lvbiIsICIxLCAwLCAwLCAxXDAiCiAgICAgICAgICAgIFZBTFVFICJTcGVjaWFsQnVpbGQiLCAiXDAiCiAgICAgICAgRU5ECiAgICBFTkQKICAgIEJMT0NLICJWYXJGaWxlSW5mbyIKICAgIEJFR0lOCiAgICAgICAgVkFMVUUgIlRyYW5zbGF0aW9uIiwgMHg0MDksIDEyMDAKICAgIEVORApFTkQKCiNlbmRpZiAgICAvLyAhX01BQwoKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vCi8vIERpYWxvZwovLwoKMTUzOCBESUFMT0cgRElTQ0FSREFCTEUgIDMyLCAzMiwgMjg5LCAzNTQKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IERTXzNETE9PSyB8IERTX0NPTlRFWFRIRUxQIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgCiAgICBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJQcmludCIKRk9OVCA4LCAiTVMgU2FucyBTZXJpZiIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiUHJpbnRlciIsMTA3NSw4LDQsMjcyLDg0LFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAgICAgIiZOYW1lOiIsMTA5MywxNiwyMSwzNiw4CiAgICBDT01CT0JPWCAgICAgICAgMTEzOSw1MiwxOCwxNTIsMTUyLENCU19EUk9QRE9XTkxJU1QgfCBDQlNfU09SVCB8IAogICAgICAgICAgICAgICAgICAgIFdTX1ZTQ1JPTEwgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAiJlByb3BlcnRpZXMuLi4iLDEwMjUsMjEyLDE3LDYwLDE0LFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAgICAgIlN0YXR1czoiLDEwOTUsMTYsMzYsMzYsMTAsU1NfTk9QUkVGSVgKICAgIENPTlRST0wgICAgICAgICAiIiwxMDk5LCJTdGF0aWMiLFNTX0xFRlROT1dPUkRXUkFQIHwgU1NfTk9QUkVGSVggfCAKICAgICAgICAgICAgICAgICAgICBXU19HUk9VUCw1MiwzNiwyMjQsMTAKICAgIExURVhUICAgICAgICAgICAiVHlwZToiLDEwOTQsMTYsNDgsMzYsMTAsU1NfTk9QUkVGSVgKICAgIENPTlRST0wgICAgICAgICAiIiwxMDk4LCJTdGF0aWMiLFNTX0xFRlROT1dPUkRXUkFQIHwgU1NfTk9QUkVGSVggfCAKICAgICAgICAgICAgICAgICAgICBXU19HUk9VUCw1Miw0OCwyMjQsMTAKICAgIExURVhUICAgICAgICAgICAiV2hlcmU6IiwxMDk3LDE2LDYwLDM2LDEwLFNTX05PUFJFRklYCiAgICBDT05UUk9MICAgICAgICAgIiIsMTEwMSwiU3RhdGljIixTU19MRUZUTk9XT1JEV1JBUCB8IFNTX05PUFJFRklYIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfR1JPVVAsNTIsNjAsMjI0LDEwCiAgICBMVEVYVCAgICAgICAgICAgIkNvbW1lbnQ6IiwxMDk2LDE2LDcyLDM2LDEwLFNTX05PUFJFRklYCiAgICBDT05UUk9MICAgICAgICAgIiIsMTEwMCwiU3RhdGljIixTU19MRUZUTk9XT1JEV1JBUCB8IFNTX05PUFJFRklYIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfR1JPVVAsNTIsNzIsMTUyLDEwCiAgICBDT05UUk9MICAgICAgICAgIlByaW50IHRvIGZpJmxlIiwxMDQwLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IAogICAgICAgICAgICAgICAgICAgIFdTX0dST1VQIHwgV1NfVEFCU1RPUCwyMTIsNzAsNjQsMTIKICAgIEdST1VQQk9YICAgICAgICAiRGlhZ3JhbSBwcmludCByYW5nZSIsMTA3Miw4LDkzLDI3MiwxMDYsV1NfR1JPVVAKICAgIENPTlRST0wgICAgICAgICAiQyZ1cnJlbnQgZGlhZ3JhbSIsSURDX0NVUlJFTlRfRElBR1JBTSwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsMTYsMTA3LDI1MywxMgogICAgQ09OVFJPTCAgICAgICAgICJBbGwgJmRpYWdyYW1zIGZyb20gb3BlbiBtb2RlbHMiLElEQ19BTExfRElBR1JBTVMsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDEyMSwyNTMsMTIKICAgIENPTlRST0wgICAgICAgICAiUyZlbGVjdGVkIGRpYWdyYW1zOiIsSURDX1NFTEVDVEVEX0RJQUdSQU1TLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9SQURJT0JVVFRPTiwxNiwxMzUsMjUzLDEyCiAgICBMSVNUQk9YICAgICAgICAgSURDX0RJQUdSQU1TLDI4LDE0OSwyNDMsNDMsTEJTX01VTFRJUExFU0VMIHwgCiAgICAgICAgICAgICAgICAgICAgTEJTX05PSU5URUdSQUxIRUlHSFQgfCBXU19WU0NST0xMIHwgV1NfSFNDUk9MTCB8IAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AKICAgIEdST1VQQk9YICAgICAgICAiU2NhbGluZyIsSURDX1NUQVRJQyw4LDIwMiwyNzIsNTEKICAgIENPTlRST0wgICAgICAgICAiQWQmanVzdCB0byAlIG9mIG5vcm1hbCBzaXplOiIsSURDX1NDQUxFX1BFUkNFTlQsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QLDE2LDIxOCwxMDQsMTIKICAgIENPTlRST0wgICAgICAgICAiRiZpdCB0bzoiLElEQ19TQ0FMRV9GSVQsIkJ1dHRvbiIsQlNfQVVUT1JBRElPQlVUVE9OIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxNiwyMzMsMzQsMTIKICAgIExURVhUICAgICAgICAgICAiQWQmanVzdCB0byAlIG9mIG5vcm1hbCBzaXplOiIsMTEwMiwzMCwyMTksODgsOCxOT1QgCiAgICAgICAgICAgICAgICAgICAgV1NfVklTSUJMRQogICAgRURJVFRFWFQgICAgICAgIElEQ19QRVJDRU5ULDEyMiwyMTcsMzIsMTIsRVNfTlVNQkVSCiAgICBMVEVYVCAgICAgICAgICAgInBhZ2VzICZ3aWRlOiIsMTEwNSw3MSwyMzUsNDMsOAogICAgRURJVFRFWFQgICAgICAgIElEQ19QQUdFU00sMTIyLDIzMywzMiwxMixFU19OVU1CRVIKICAgIFJURVhUICAgICAgICAgICAicGFnZXMgJnRhbGw6IixJRENfU1RBVElDLDE3NywyMzUsNTQsMTAKICAgIEVESVRURVhUICAgICAgICBJRENfUEFHRVNOLDIzNSwyMzMsMzIsMTIsRVNfTlVNQkVSCiAgICBMVEVYVCAgICAgICAgICAgIiIsSURDX1NUQVRJQywyNjAsMjM1LDgsOCxOT1QgV1NfVklTSUJMRQogICAgR1JPVVBCT1ggICAgICAgICJQcmludCByYW5nZSIsMTA3NCw4LDI1NywxMzIsNjQsV1NfR1JPVVAKICAgIENPTlRST0wgICAgICAgICAiJkFsbCIsMTA1NiwiQnV0dG9uIixCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCB8IAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMTYsMjcyLDQ3LDEyCiAgICBDT05UUk9MICAgICAgICAgIlBhJmdlcyIsMTA1OCwiQnV0dG9uIixCU19BVVRPUkFESU9CVVRUT04sMTYsMjg2LDQ2LDEyCiAgICBSVEVYVCAgICAgICAgICAgIiZmcm9tOiIsMTA4OSwyNCwzMDIsMjAsOAogICAgRURJVFRFWFQgICAgICAgIDExNTIsNDgsMzAwLDI2LDEyLEVTX05VTUJFUiB8IFdTX0dST1VQCiAgICBSVEVYVCAgICAgICAgICAgIiZ0bzoiLDEwOTAsNzYsMzAyLDIwLDgKICAgIEVESVRURVhUICAgICAgICAxMTUzLDEwMCwzMDAsMjcsMTIsRVNfTlVNQkVSIHwgV1NfR1JPVVAKICAgIEdST1VQQk9YICAgICAgICAiQ29waWVzIiwxMDczLDE0NywyNTcsMTMyLDY0LFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAgICAgIk51bWJlciBvZiAmY29waWVzOiIsMTA5MiwxNjMsMjczLDY4LDgKICAgIEVESVRURVhUICAgICAgICAxMTU0LDIzNSwyNzEsMzIsMTIsRVNfTlVNQkVSIHwgV1NfR1JPVVAKICAgIENPTlRST0wgICAgICAgICAiQyZvbGxhdGUiLDEwNDEsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfR1JPVVAgfCAKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDIzNSwyOTUsMzksMTIKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTgwLDMyOCw0OCwxNCxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICJDYW5jZWwiLElEQ0FOQ0VMLDIzMiwzMjgsNDgsMTQKICAgIElDT04gICAgICAgICAgICAiIiwxMDg2LDE1NiwyOTAsNzAsMjUsV1NfR1JPVVAKRU5ECgoxNTM5IERJQUxPRyBESVNDQVJEQUJMRSAgMzIsIDMyLCAyODgsIDE3OApTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfM0RMT09LIHwgRFNfQ09OVEVYVEhFTFAgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCAKICAgIFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlByaW50IFNldHVwIgpGT05UIDgsICJNUyBTYW5zIFNlcmlmIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICJQcmludGVyIiwxMDc1LDgsNCwyNzIsODQsV1NfR1JPVVAKICAgIExURVhUICAgICAgICAgICAiJk5hbWU6IiwxMDkzLDE2LDIwLDM2LDgKICAgIENPTUJPQk9YICAgICAgICAxMTM2LDUyLDE4LDE1MiwxNTIsQ0JTX0RST1BET1dOTElTVCB8IENCU19TT1JUIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfVlNDUk9MTCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAgICAgICImUHJvcGVydGllcyIsMTAyNSwyMTIsMTcsNjAsMTQsV1NfR1JPVVAKICAgIExURVhUICAgICAgICAgICAiU3RhdHVzOiIsMTA5NSwxNiwzNiwzNiwxMCxTU19OT1BSRUZJWAogICAgQ09OVFJPTCAgICAgICAgICIiLDEwOTksIlN0YXRpYyIsU1NfTEVGVE5PV09SRFdSQVAgfCBTU19OT1BSRUZJWCB8IAogICAgICAgICAgICAgICAgICAgIFdTX0dST1VQLDUyLDM2LDIyNCwxMAogICAgTFRFWFQgICAgICAgICAgICJUeXBlOiIsMTA5NCwxNiw0OCwzNiwxMCxTU19OT1BSRUZJWAogICAgQ09OVFJPTCAgICAgICAgICIiLDEwOTgsIlN0YXRpYyIsU1NfTEVGVE5PV09SRFdSQVAgfCBTU19OT1BSRUZJWCB8IAogICAgICAgICAgICAgICAgICAgIFdTX0dST1VQLDUyLDQ4LDIyNCwxMAogICAgTFRFWFQgICAgICAgICAgICJXaGVyZToiLDEwOTcsMTYsNjAsMzYsMTAsU1NfTk9QUkVGSVgKICAgIENPTlRST0wgICAgICAgICAiIiwxMTAxLCJTdGF0aWMiLFNTX0xFRlROT1dPUkRXUkFQIHwgU1NfTk9QUkVGSVggfCAKICAgICAgICAgICAgICAgICAgICBXU19HUk9VUCw1Miw2MCwyMjQsMTAKICAgIExURVhUICAgICAgICAgICAiQ29tbWVudDoiLDEwOTYsMTYsNzIsMzYsMTAsU1NfTk9QUkVGSVgKICAgIENPTlRST0wgICAgICAgICAiIiwxMTAwLCJTdGF0aWMiLFNTX0xFRlROT1dPUkRXUkFQIHwgU1NfTk9QUkVGSVggfCAKICAgICAgICAgICAgICAgICAgICBXU19HUk9VUCw1Miw3MiwyMjQsMTAKICAgIEdST1VQQk9YICAgICAgICAiUGFwZXIiLDEwNzMsOCw5MiwxNjQsNTYsV1NfR1JPVVAKICAgIExURVhUICAgICAgICAgICAiU2kmemU6IiwxMDg5LDE2LDEwOCwzNiw4CiAgICBDT01CT0JPWCAgICAgICAgMTEzNyw1MiwxMDYsMTEyLDExMixDQlNfRFJPUERPV05MSVNUIHwgQ0JTX1NPUlQgfCAKICAgICAgICAgICAgICAgICAgICBXU19WU0NST0xMIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIiZTb3VyY2U6IiwxMDkwLDE2LDEyOCwzNiw4CiAgICBDT01CT0JPWCAgICAgICAgMTEzOCw1MiwxMjYsMTEyLDExMixDQlNfRFJPUERPV05MSVNUIHwgQ0JTX1NPUlQgfCAKICAgICAgICAgICAgICAgICAgICBXU19WU0NST0xMIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBHUk9VUEJPWCAgICAgICAgIk9yaWVudGF0aW9uIiwxMDcyLDE4MCw5MiwxMDAsNTYsV1NfR1JPVVAKICAgIElDT04gICAgICAgICAgICAiIiwxMDg0LDE5NSwxMTIsMTgsMjAsV1NfR1JPVVAKICAgIENPTlRST0wgICAgICAgICAiUCZvcnRyYWl0IiwxMDU2LCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0dST1VQIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwyMjQsMTA2LDUyLDEyCiAgICBDT05UUk9MICAgICAgICAgIkwmYW5kc2NhcGUiLDEwNTcsIkJ1dHRvbiIsQlNfQVVUT1JBRElPQlVUVE9OLDIyNCwxMjYsNTIsCiAgICAgICAgICAgICAgICAgICAgMTIKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTgwLDE1Niw0OCwxNCxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICJDYW5jZWwiLElEQ0FOQ0VMLDIzMiwxNTYsNDgsMTQKRU5ECgoxNTQ2IERJQUxPRyBESVNDQVJEQUJMRSAgMzIsIDMyLCAyNDAsIDI0MApTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfM0RMT09LIHwgRFNfQ09OVEVYVEhFTFAgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCAKICAgIFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlBhZ2UgU2V0dXAiCkZPTlQgOCwgIk1TIFNhbnMgU2VyaWYiCkJFR0lOCiAgICBDT05UUk9MICAgICAgICAgIiIsMTA4MCwiU3RhdGljIixTU19XSElURVJFQ1QgfCBXU19HUk9VUCw4MCw4LDgwLDgwCiAgICBDT05UUk9MICAgICAgICAgIiIsMTA4MSwiU3RhdGljIixTU19HUkFZUkVDVCB8IFdTX0dST1VQLDE2MCwxMiw0LDgwCiAgICBDT05UUk9MICAgICAgICAgIiIsMTA4MiwiU3RhdGljIixTU19HUkFZUkVDVCB8IFdTX0dST1VQLDg0LDg4LDgwLDQKICAgIEdST1VQQk9YICAgICAgICAiUGFwZXIiLDEwNzMsOCw5NiwyMjQsNTYsV1NfR1JPVVAKICAgIExURVhUICAgICAgICAgICAiU2kmemU6IiwxMDg5LDE2LDExMiwzNiw4CiAgICBDT01CT0JPWCAgICAgICAgMTEzNyw2NCwxMTAsMTYwLDE2MCxDQlNfRFJPUERPV05MSVNUIHwgQ0JTX1NPUlQgfCAKICAgICAgICAgICAgICAgICAgICBXU19WU0NST0xMIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIiZTb3VyY2U6IiwxMDkwLDE2LDEzMiwzNiw4CiAgICBDT01CT0JPWCAgICAgICAgMTEzOCw2NCwxMzAsMTYwLDE2MCxDQlNfRFJPUERPV05MSVNUIHwgQ0JTX1NPUlQgfCAKICAgICAgICAgICAgICAgICAgICBXU19WU0NST0xMIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBHUk9VUEJPWCAgICAgICAgIk9yaWVudGF0aW9uIiwxMDcyLDgsMTU2LDY0LDU2LFdTX0dST1VQCiAgICBDT05UUk9MICAgICAgICAgIlAmb3J0cmFpdCIsMTA1NiwiQnV0dG9uIixCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCB8IAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMTYsMTcwLDUyLDEyCiAgICBDT05UUk9MICAgICAgICAgIkwmYW5kc2NhcGUiLDEwNTcsIkJ1dHRvbiIsQlNfQVVUT1JBRElPQlVUVE9OLDE2LDE5MCw1MiwKICAgICAgICAgICAgICAgICAgICAxMgogICAgR1JPVVBCT1ggICAgICAgICJNYXJnaW5zIiwxMDc1LDgwLDE1NiwxNTIsNTYsV1NfR1JPVVAKICAgIExURVhUICAgICAgICAgICAiJkxlZnQ6IiwxMTAyLDg4LDE3MiwzMiw4CiAgICBFRElUVEVYVCAgICAgICAgMTE1NSwxMjAsMTcwLDI4LDEyLFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAgICAgIiZSaWdodDoiLDExMDMsMTY0LDE3MiwzMiw4CiAgICBFRElUVEVYVCAgICAgICAgMTE1NywxOTYsMTcwLDI4LDEyLFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAgICAgIiZUb3A6IiwxMTA0LDg4LDE5MiwzMiw4CiAgICBFRElUVEVYVCAgICAgICAgMTE1NiwxMjAsMTkwLDI4LDEyLFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAgICAgIiZCb3R0b206IiwxMTA1LDE2NCwxOTIsMzIsOAogICAgRURJVFRFWFQgICAgICAgIDExNTgsMTk2LDE5MCwyOCwxMixXU19HUk9VUAogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSyw4MCwyMjAsNDgsMTQsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAiQ2FuY2VsIixJRENBTkNFTCwxMzIsMjIwLDQ4LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIiZQcmludGVyLi4uIiwxMDI2LDE4NCwyMjAsNDgsMTQKRU5ECgoxMjM0IERJQUxPRyBESVNDQVJEQUJMRSAgMzIsIDMyLCAyODgsIDE4NgpTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfM0RMT09LIHwgRFNfQ09OVEVYVEhFTFAgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCAKICAgIFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlByaW50IgpGT05UIDgsICJNUyBTYW5zIFNlcmlmIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICJQcmludGVyIiwxMDc1LDgsNCwyNzIsODQsV1NfR1JPVVAKICAgIExURVhUICAgICAgICAgICAiJk5hbWU6IiwxMDkzLDE2LDIwLDM2LDgKICAgIENPTUJPQk9YICAgICAgICAxMTM5LDUyLDE4LDE1MiwxNTIsQ0JTX0RST1BET1dOTElTVCB8IENCU19TT1JUIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfVlNDUk9MTCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAgICAgICImUHJvcGVydGllcyIsMTAyNSwyMTIsMTcsNjAsMTQsV1NfR1JPVVAKICAgIExURVhUICAgICAgICAgICAiU3RhdHVzOiIsMTA5NSwxNiwzNiwzNiwxMCxTU19OT1BSRUZJWAogICAgQ09OVFJPTCAgICAgICAgICIiLDEwOTksIlN0YXRpYyIsU1NfTEVGVE5PV09SRFdSQVAgfCBTU19OT1BSRUZJWCB8IAogICAgICAgICAgICAgICAgICAgIFdTX0dST1VQLDUyLDM2LDIyNCwxMAogICAgTFRFWFQgICAgICAgICAgICJUeXBlOiIsMTA5NCwxNiw0OCwzNiwxMCxTU19OT1BSRUZJWAogICAgQ09OVFJPTCAgICAgICAgICIiLDEwOTgsIlN0YXRpYyIsU1NfTEVGVE5PV09SRFdSQVAgfCBTU19OT1BSRUZJWCB8IAogICAgICAgICAgICAgICAgICAgIFdTX0dST1VQLDUyLDQ4LDIyNCwxMAogICAgTFRFWFQgICAgICAgICAgICJXaGVyZToiLDEwOTcsMTYsNjAsMzYsMTAsU1NfTk9QUkVGSVgKICAgIENPTlRST0wgICAgICAgICAiIiwxMTAxLCJTdGF0aWMiLFNTX0xFRlROT1dPUkRXUkFQIHwgU1NfTk9QUkVGSVggfCAKICAgICAgICAgICAgICAgICAgICBXU19HUk9VUCw1Miw2MCwyMjQsMTAKICAgIExURVhUICAgICAgICAgICAiQ29tbWVudDoiLDEwOTYsMTYsNzIsMzYsMTAsU1NfTk9QUkVGSVgKICAgIENPTlRST0wgICAgICAgICAiIiwxMTAwLCJTdGF0aWMiLFNTX0xFRlROT1dPUkRXUkFQIHwgU1NfTk9QUkVGSVggfCAKICAgICAgICAgICAgICAgICAgICBXU19HUk9VUCw1Miw3MiwxNTIsMTAKICAgIENPTlRST0wgICAgICAgICAiUHJpbnQgdG8gZmkmbGUiLDEwNDAsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfR1JPVVAgfCBXU19UQUJTVE9QLDIxMiw3MCw2NCwxMgogICAgR1JPVVBCT1ggICAgICAgICJQcmludCByYW5nZSIsMTA3Miw4LDkyLDE0NCw2NCxXU19HUk9VUAogICAgQ09OVFJPTCAgICAgICAgICImQWxsIiwxMDU2LCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0dST1VQIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxNiwxMDYsNjQsMTIKICAgIENPTlRST0wgICAgICAgICAiUGEmZ2VzIiwxMDU4LCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiwxNiwxMjIsMzYsMTIKICAgIENPTlRST0wgICAgICAgICAiJlNlbGVjdGlvbiIsMTA1NywiQnV0dG9uIixCU19BVVRPUkFESU9CVVRUT04sMTYsMTM4LDY0LAogICAgICAgICAgICAgICAgICAgIDEyCiAgICBSVEVYVCAgICAgICAgICAgIiZmcm9tOiIsMTA4OSw1MiwxMjQsMjAsOAogICAgRURJVFRFWFQgICAgICAgIDExNTIsNzQsMTIyLDI2LDEyLEVTX05VTUJFUiB8IFdTX0dST1VQCiAgICBSVEVYVCAgICAgICAgICAgIiZ0bzoiLDEwOTAsMTAwLDEyNCwxNiw4CiAgICBFRElUVEVYVCAgICAgICAgMTE1MywxMTgsMTIyLDI2LDEyLEVTX05VTUJFUiB8IFdTX0dST1VQCiAgICBHUk9VUEJPWCAgICAgICAgIkNvcGllcyIsMTA3MywxNjAsOTIsMTIwLDY0LFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAgICAgIk51bWJlciBvZiAmY29waWVzOiIsMTA5MiwxNjgsMTA4LDY4LDgKICAgIEVESVRURVhUICAgICAgICAxMTU0LDI0MCwxMDYsMzIsMTIsRVNfTlVNQkVSIHwgV1NfR1JPVVAKICAgIElDT04gICAgICAgICAgICAiIiwxMDg2LDE2MiwxMjQsNzYsMjQsU1NfQ0VOVEVSSU1BR0UgfCBXU19HUk9VUAogICAgQ09OVFJPTCAgICAgICAgICJDJm9sbGF0ZSIsMTA0MSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19HUk9VUCB8IAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMjQwLDEzMCwzNiwxMgogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywxODAsMTY0LDQ4LDE0LFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIkNhbmNlbCIsSURDQU5DRUwsMjMyLDE2NCw0OCwxNApFTkQKCjE1NDcgRElBTE9HRVggMzIsIDMyLCAyODksIDM1NApTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfM0RMT09LIHwgRFNfQ09OVEVYVEhFTFAgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCAKICAgIFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlByaW50IgpGT05UIDgsICJNUyBTYW5zIFNlcmlmIiwgMCwgMCwgMHgxCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIlByaW50ZXIiLDEwNzUsOCw0LDI3Miw4NCxXU19HUk9VUAogICAgTFRFWFQgICAgICAgICAgICImTmFtZToiLDEwOTMsMTYsMjEsMzYsOAogICAgQ09NQk9CT1ggICAgICAgIDExMzksNTIsMTgsMTUyLDE1MixDQlNfRFJPUERPV05MSVNUIHwgQ0JTX1NPUlQgfCAKICAgICAgICAgICAgICAgICAgICBXU19WU0NST0xMIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIiZQcm9wZXJ0aWVzLi4uIiwxMDI1LDIxMiwxNyw2MCwxNCxXU19HUk9VUAogICAgTFRFWFQgICAgICAgICAgICJTdGF0dXM6IiwxMDk1LDE2LDM2LDM2LDEwLFNTX05PUFJFRklYCiAgICBDT05UUk9MICAgICAgICAgIiIsMTA5OSwiU3RhdGljIixTU19MRUZUTk9XT1JEV1JBUCB8IFNTX05PUFJFRklYIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfR1JPVVAsNTIsMzYsMjI0LDEwCiAgICBMVEVYVCAgICAgICAgICAgIlR5cGU6IiwxMDk0LDE2LDQ4LDM2LDEwLFNTX05PUFJFRklYCiAgICBDT05UUk9MICAgICAgICAgIiIsMTA5OCwiU3RhdGljIixTU19MRUZUTk9XT1JEV1JBUCB8IFNTX05PUFJFRklYIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfR1JPVVAsNTIsNDgsMjI0LDEwCiAgICBMVEVYVCAgICAgICAgICAgIldoZXJlOiIsMTA5NywxNiw2MCwzNiwxMCxTU19OT1BSRUZJWAogICAgQ09OVFJPTCAgICAgICAgICIiLDExMDEsIlN0YXRpYyIsU1NfTEVGVE5PV09SRFdSQVAgfCBTU19OT1BSRUZJWCB8IAogICAgICAgICAgICAgICAgICAgIFdTX0dST1VQLDUyLDYwLDIyNCwxMAogICAgTFRFWFQgICAgICAgICAgICJDb21tZW50OiIsMTA5NiwxNiw3MiwzNiwxMCxTU19OT1BSRUZJWAogICAgQ09OVFJPTCAgICAgICAgICIiLDExMDAsIlN0YXRpYyIsU1NfTEVGVE5PV09SRFdSQVAgfCBTU19OT1BSRUZJWCB8IAogICAgICAgICAgICAgICAgICAgIFdTX0dST1VQLDUyLDcyLDE1MiwxMAogICAgQ09OVFJPTCAgICAgICAgICJQcmludCB0byBmaSZsZSIsMTA0MCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCAKICAgICAgICAgICAgICAgICAgICBXU19HUk9VUCB8IFdTX1RBQlNUT1AsMjEyLDcwLDY0LDEyCiAgICBHUk9VUEJPWCAgICAgICAgIkRpYWdyYW0gcHJpbnQgcmFuZ2UiLDEwNzIsOCw5MywyNzIsMTA2LFdTX0dST1VQCiAgICBDT05UUk9MICAgICAgICAgIkMmdXJyZW50IGRpYWdyYW0iLElEQ19DVVJSRU5UX0RJQUdSQU0sIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QLDE2LDEwNywyNTMsMTIKICAgIENPTlRST0wgICAgICAgICAiQWxsICZkaWFncmFtcyBmcm9tIG9wZW4gbW9kZWxzIixJRENfQUxMX0RJQUdSQU1TLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9SQURJT0JVVFRPTiwxNiwxMjEsMjUzLDEyCiAgICBDT05UUk9MICAgICAgICAgIlMmZWxlY3RlZCBkaWFncmFtczoiLElEQ19TRUxFQ1RFRF9ESUFHUkFNUywiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPUkFESU9CVVRUT04sMTYsMTM1LDI1MywxMgogICAgTElTVEJPWCAgICAgICAgIElEQ19ESUFHUkFNUywyOCwxNDksMjQzLDQzLExCU19NVUxUSVBMRVNFTCB8IAogICAgICAgICAgICAgICAgICAgIExCU19OT0lOVEVHUkFMSEVJR0hUIHwgV1NfVlNDUk9MTCB8IFdTX0hTQ1JPTEwgfCAKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QCiAgICBHUk9VUEJPWCAgICAgICAgIlNjYWxpbmciLElEQ19TVEFUSUMsOCwyMDIsMjcyLDUxCiAgICBDT05UUk9MICAgICAgICAgIkFkJmp1c3QgdG8gJSBvZiBub3JtYWwgc2l6ZToiLElEQ19TQ0FMRV9QRVJDRU5ULCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUCwxNiwyMTgsMTA0LDEyCiAgICBDT05UUk9MICAgICAgICAgIkYmaXQgdG86IixJRENfU0NBTEVfRklULCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiB8IAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMTYsMjMzLDM0LDEyCiAgICBMVEVYVCAgICAgICAgICAgIkFkJmp1c3QgdG8gJSBvZiBub3JtYWwgc2l6ZToiLDExMDIsMzAsMjE5LDg4LDgsTk9UIAogICAgICAgICAgICAgICAgICAgIFdTX1ZJU0lCTEUKICAgIEVESVRURVhUICAgICAgICBJRENfUEVSQ0VOVCwxMjIsMjE3LDMyLDEyLEVTX05VTUJFUgogICAgTFRFWFQgICAgICAgICAgICJwYWdlcyAmd2lkZToiLDExMDUsNzEsMjM1LDQzLDgKICAgIEVESVRURVhUICAgICAgICBJRENfUEFHRVNNLDEyMiwyMzMsMzIsMTIsRVNfTlVNQkVSCiAgICBSVEVYVCAgICAgICAgICAgInBhZ2VzICZ0YWxsOiIsSURDX1NUQVRJQywxNzcsMjM1LDU0LDEwCiAgICBFRElUVEVYVCAgICAgICAgSURDX1BBR0VTTiwyMzUsMjMzLDMyLDEyLEVTX05VTUJFUgogICAgTFRFWFQgICAgICAgICAgICIiLElEQ19TVEFUSUMsMjYwLDIzNSw3LDgsTk9UIFdTX1ZJU0lCTEUKICAgIEdST1VQQk9YICAgICAgICAiUHJpbnQgcmFuZ2UiLDEwNzQsOCwyNTcsMTMyLDY0LFdTX0dST1VQCiAgICBDT05UUk9MICAgICAgICAgIiZBbGwiLDEwNTYsIkJ1dHRvbiIsQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfR1JPVVAgfCAKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDE2LDI3Miw0NywxMgogICAgQ09OVFJPTCAgICAgICAgICJQYSZnZXMiLDEwNTgsIkJ1dHRvbiIsQlNfQVVUT1JBRElPQlVUVE9OLDE2LDI4Niw0NiwxMgogICAgUlRFWFQgICAgICAgICAgICImZnJvbToiLDEwODksMjQsMzAyLDIwLDgKICAgIEVESVRURVhUICAgICAgICAxMTUyLDQ4LDMwMCwyNiwxMixFU19OVU1CRVIgfCBXU19HUk9VUAogICAgUlRFWFQgICAgICAgICAgICImdG86IiwxMDkwLDc2LDMwMiwyMCw4CiAgICBFRElUVEVYVCAgICAgICAgMTE1MywxMDAsMzAwLDI3LDEyLEVTX05VTUJFUiB8IFdTX0dST1VQCiAgICBHUk9VUEJPWCAgICAgICAgIkNvcGllcyIsMTA3MywxNDcsMjU3LDEzMiw2NCxXU19HUk9VUAogICAgTFRFWFQgICAgICAgICAgICJOdW1iZXIgb2YgJmNvcGllczoiLDEwOTIsMTYzLDI3Myw2OCw4CiAgICBFRElUVEVYVCAgICAgICAgMTE1NCwyMzUsMjcxLDMyLDEyLEVTX05VTUJFUiB8IFdTX0dST1VQCiAgICBDT05UUk9MICAgICAgICAgIkMmb2xsYXRlIiwxMDQxLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX0dST1VQIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwyMzUsMjk1LDM2LDEyCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDE4MCwzMjgsNDgsMTQsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAiQ2FuY2VsIixJRENBTkNFTCwyMzIsMzI4LDQ4LDE0CiAgICBJQ09OICAgICAgICAgICAgIiIsMTA4NiwxNTYsMjkwLDcwLDI1LFdTX0dST1VQCkVORAoKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vCi8vIERFU0lHTklORk8KLy8KCiNpZmRlZiBBUFNUVURJT19JTlZPS0VECkdVSURFTElORVMgREVTSUdOSU5GTyBESVNDQVJEQUJMRSAKQkVHSU4KICAgIDE1MzgsIERJQUxPRwogICAgQkVHSU4KICAgICAgICBSSUdIVE1BUkdJTiwgMjg2CiAgICAgICAgQk9UVE9NTUFSR0lOLCAzNDIKICAgIEVORAoKICAgIDE1NDcsIERJQUxPRwogICAgQkVHSU4KICAgICAgICBSSUdIVE1BUkdJTiwgMjg2CiAgICAgICAgQk9UVE9NTUFSR0lOLCAzNDIKICAgIEVORApFTkQKI2VuZGlmICAgIC8vIEFQU1RVRElPX0lOVk9LRUQKCiNlbmRpZiAgICAvLyBFbmdsaXNoIChVLlMuKSByZXNvdXJjZXMKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCgoKI2lmbmRlZiBBUFNUVURJT19JTlZPS0VECi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vCi8vIEdlbmVyYXRlZCBmcm9tIHRoZSBURVhUSU5DTFVERSAzIHJlc291cmNlLgovLwojZGVmaW5lIF9BRlhfTk9fU1BMSVRURVJfUkVTT1VSQ0VTCiNkZWZpbmUgX0FGWF9OT19PTEVfUkVTT1VSQ0VTCiNkZWZpbmUgX0FGWF9OT19UUkFDS0VSX1JFU09VUkNFUwojZGVmaW5lIF9BRlhfTk9fUFJPUEVSVFlfUkVTT1VSQ0VTCgojaWYgIWRlZmluZWQoQUZYX1JFU09VUkNFX0RMTCkgfHwgZGVmaW5lZChBRlhfVEFSR19FTlUpCiNpZmRlZiBfV0lOMzIKTEFOR1VBR0UgOSwgMQojcHJhZ21hIGNvZGVfcGFnZSgxMjUyKQojZW5kaWYgLy9fV0lOMzIKI2luY2x1ZGUgInJlc1xEaWFncmFtUHJpbnQucmMyIiAgLy8gbm9uLU1pY3Jvc29mdCBWaXN1YWwgQysrIGVkaXRlZCByZXNvdXJjZXMKI2luY2x1ZGUgImFmeHJlcy5yYyIgICAgICAgICAvLyBTdGFuZGFyZCBjb21wb25lbnRzCiNlbmRpZgoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KI2VuZGlmICAgIC8vIG5vdCBBUFNUVURJT19JTlZPS0VECgo=