LyoKICogUHJvZ3JhbSBNYW5hZ2VyCiAqCiAqIFNpIHZvcyB2b2xveiBhaWRlciBhdm91IGxpIHJhdG/7cm5hZWRqZSBkZXMgbGliZXMgcHJvZ3JhbWVzIOggd2Fsb24sCiAqIHZvcyBwb2xveiBzY3LucmUgYSBsJyBhZHJlc3NlIGVtaWxlIDxsaW51eC13YUBjaGFuYWUuYWxwaGFuZXQuY2g+CiAqLwoKI2RlZmluZSBMQU5HVUFHRV9JRCAgICAgICAgICAgICAgICAgIFdhCiNkZWZpbmUgTEFOR1VBR0VfTlVNQkVSICAgICAgICAgICAgICA5MAojZGVmaW5lIExBTkdVQUdFX01FTlVfSVRFTSAgICAgICAgICAgIiZXYWxvbiIKCi8qIE1lbnUgKi8KCiNkZWZpbmUgTUVOVV9GSUxFICAgICAgICAgICAgICAgICAgICAiJkZpdGNo7iIKI2RlZmluZSBNRU5VX0ZJTEVfTkVXICAgICAgICAgICAgICAgICImTm92ZWEuLi4iCiNkZWZpbmUgTUVOVV9GSUxFX09QRU4gICAgICAgICAgICAgICAiJkRyb3buXHRFbnRlciIKI2RlZmluZSBNRU5VX0ZJTEVfTU9WRSAgICAgICAgICAgICAgICImQm9kau4uLi5cdEY3IgojZGVmaW5lIE1FTlVfRklMRV9DT1BZICAgICAgICAgICAgICAgIiZDb3B57i4uLlx0RjgiCiNkZWZpbmUgTUVOVV9GSUxFX0RFTEVURSAgICAgICAgICAgICAiJlJhZmFjZXJcdERlbCIKI2RlZmluZSBNRU5VX0ZJTEVfQVRUUklCVVRFUyAgICAgICAgICImQXRyaWJ1dHMuLi5cdEFsdCtFbnRlciIKI2RlZmluZSBNRU5VX0ZJTEVfRVhFQ1VURSAgICAgICAgICAgICImRW5vbmRlci4uLiIKI2RlZmluZSBNRU5VX0ZJTEVfRVhJVCAgICAgICAgICAgICAgICJNb3Vzc+4gJkZv+yBkaSBXaW5kb3dzLi4uIgoKI2RlZmluZSBNRU5VX09QVElPTlMgICAgICAgICAgICAgICAgICImVGNo+3plcyIKI2RlZmluZSBNRU5VX09QVElPTlNfQVVUT19BUlJBTkdFICAgICImQXJpbmRqaSB0b3Qgc2V1IgojZGVmaW5lIE1FTlVfT1BUSU9OU19NSU5fT05fUlVOICAgICAgIiZNaW5pbWl6ZSBvbiBydW4iCiNkZWZpbmUgTUVOVV9PUFRJT05TX1NBVkVfU0VUVElOR1MgICAiJlNjaGFwZXIgbGVzIHRjaPt6ZXMgY3dhbmQgZXN0IGNsb3l1IgoKI2RlZmluZSBNRU5VX1dJTkRPV1MgICAgICAgICAgICAgICAgICImUHVybmVhcyIKI2RlZmluZSBNRU5VX1dJTkRPV1NfT1ZFUkxBUCAgICAgICAgICImU28gb25rIGwnIPR0ZVx0U2hpZnQrRjUiCiNkZWZpbmUgTUVOVV9XSU5ET1dTX1NJREVfQllfU0lERSAgICAiQSAmQ29zdOkgT25rIGwnIPR0ZVx0U2hpZnQrRjQiCiNkZWZpbmUgTUVOVV9XSU5ET1dTX0FSUkFOR0UgICAgICAgICAiJkFycmFuZ2UgU3ltYm9scyIKCiNkZWZpbmUgTUVOVV9MQU5HVUFHRSAgICAgICAgICAgICAgICAiJkxpbmdhZWRqZSIKCiNkZWZpbmUgTUVOVV9IRUxQICAgICAgICAgICAgICAgICAgICAiJkFpZGUiCiNkZWZpbmUgTUVOVV9IRUxQX0NPTlRFTlRTICAgICAgICAgICAixSZkdmlucyIKI2RlZmluZSBNRU5VX0hFTFBfU0VBUkNIICAgICAgICAgICAgICJDJndlcu4uLi4iCiNkZWZpbmUgTUVOVV9IRUxQX0hFTFBfT05fSEVMUCAgICAgICAiJkFpZGUgc28gbCcgQWlkZSIKI2RlZmluZSBNRU5VX0hFTFBfVFVUT1JJQUwgICAgICAgICAgICImVHV0b3Jp5SIKCiNkZWZpbmUgTUVOVV9JTkZPICAgICAgICAgICAgICAgICAgICAiJkluZm9ybeVjaW9uLi4uIgojZGVmaW5lIE1FTlVfSU5GT19MSUNFTlNFICAgICAgICAgICAgIiZMaWNpbnNlIgojZGVmaW5lIE1FTlVfSU5GT19OT19XQVJSQU5UWSAgICAgICAgIiZOT0xFIFdBUkFOVEVZRSIKI2RlZmluZSBNRU5VX0lORk9fQUJPVVRfV0lORSAgICAgICAgICLFICZkZmFpdCBkaSBXSU5FIgoKLyogRGlhbG9ncyAqLwoKI2RlZmluZSBESUFMT0dfT0sgICAgICAgICAgICAgICAgICAgICJJIFZhIgojZGVmaW5lIERJQUxPR19DQU5DRUwgICAgICAgICAgICAgICAgIlJpbm9uY+4iCiNkZWZpbmUgRElBTE9HX0JST1dTRSAgICAgICAgICAgICAgICAiJkZveXRlciIKI2RlZmluZSBESUFMT0dfSEVMUCAgICAgICAgICAgICAgICAgICImQWlkZSIKCiNkZWZpbmUgRElBTE9HX05FV19DQVBUSU9OICAgICAgICAgICAiTm92ZWEgUHJvZ3JhbWUiCiNkZWZpbmUgRElBTE9HX05FV19ORVcgICAgICAgICAgICAgICAiTm92ZWEiCiNkZWZpbmUgRElBTE9HX05FV19HUk9VUCAgICAgICAgICAgICAiJkdyb3VwZSBkaSBwcm9ncmFtZXMiCiNkZWZpbmUgRElBTE9HX05FV19QUk9HUkFNICAgICAgICAgICAiJlByb2dyYW1lIgoKI2RlZmluZSBESUFMT0dfTU9WRV9DQVBUSU9OICAgICAgICAgICJCb2Rq7iBQcm9ncmFtZSIKI2RlZmluZSBESUFMT0dfTU9WRV9QUk9HUkFNICAgICAgICAgICJCb2Rq7iBsJyAmcHJvZ3JhbWU6IgojZGVmaW5lIERJQUxPR19NT1ZFX0ZST01fR1JPVVAgICAgICAgIiZEbyBncm91cGU6IgojZGVmaW5lIERJQUxPR19NT1ZFX1RPX0dST1VQICAgICAgICAgIibFIGdyb3VwZToiCgojZGVmaW5lIERJQUxPR19DT1BZX0NBUFRJT04gICAgICAgICAgIkNvcHnuIFByb2dyYW1lIgojZGVmaW5lIERJQUxPR19DT1BZX1BST0dSQU0gICAgICAgICAgIkNvcHnuIGwnICZwcm9ncmFtZToiCiNkZWZpbmUgRElBTE9HX0NPUFlfRlJPTV9HUk9VUCAgICAgICBESUFMT0dfTU9WRV9GUk9NX0dST1VQCiNkZWZpbmUgRElBTE9HX0NPUFlfVE9fR1JPVVAgICAgICAgICBESUFMT0dfTU9WRV9UT19HUk9VUAoKI2RlZmluZSBESUFMT0dfR1JPVVBfQ0FQVElPTiAgICAgICAgICJBdHJpYnV0cyBkbyBHcm91cGUgZGkgUHJvZ3JhbWVzIgojZGVmaW5lIERJQUxPR19HUk9VUF9ERVNDUklQVElPTiAgICAgIiZEZXNjcmlwY2lvbjoiCiNkZWZpbmUgRElBTE9HX0dST1VQX0ZJTEUgICAgICAgICAgICAiJkZpdGNo7iBHcm91cGU6IgoKI2RlZmluZSBESUFMT0dfUFJPR1JBTV9DQVBUSU9OICAgICAgICJBdHJpYnV0cyBkbyBQcm9ncmFtZSIKI2RlZmluZSBESUFMT0dfUFJPR1JBTV9ERVNDUklQVElPTiAgIERJQUxPR19HUk9VUF9ERVNDUklQVElPTgojZGVmaW5lIERJQUxPR19QUk9HUkFNX0NPTU1BTkRfTElORSAgIiZDb21hbmRlOiIKI2RlZmluZSBESUFMT0dfUFJPR1JBTV9ESVJFQ1RPUlkgICAgICImUmlkYW50IHdpc2snIG9uIGwnIGVub25kZToiCiNkZWZpbmUgRElBTE9HX1BST0dSQU1fSE9UX0tFWSAgICAgICAiJkxveWFlZGplIGRpIHRhcGVzOiIKI2RlZmluZSBESUFMT0dfUFJPR1JBTV9TWU1CT0wgICAgICAgICJDb21lICZJbeVkamV0ZSIKI2RlZmluZSBESUFMT0dfUFJPR1JBTV9PVEhFUl9TWU1CT0wgICIm1HRlcyBpbeVkamV0ZXMuLi4iCgojZGVmaW5lIERJQUxPR19TWU1CT0xfQ0FQVElPTiAgICAgICAgIlRjaHdleml4aG96IGVuZSBJbeVkamV0ZSIKI2RlZmluZSBESUFMT0dfU1lNQk9MX0ZJTEUgICAgICAgICAgICImTm8gZG8gZml0Y2juOiIKI2RlZmluZSBESUFMT0dfU1lNQk9MX0NVUlJFTlQgICAgICAgICImSW3lZGpldGUgZG8gbW91bWludDoiCgojZGVmaW5lIERJQUxPR19FWEVDVVRFX0NBUFRJT04gICAgICAgIkVub25kZXIgUHJvZ3JhbWUiCiNkZWZpbmUgRElBTE9HX0VYRUNVVEVfQ09NTUFORF9MSU5FICBESUFMT0dfUFJPR1JBTV9DT01NQU5EX0xJTkUKI2RlZmluZSBESUFMT0dfRVhFQ1VURV9TWU1CT0wgICAgICAgIERJQUxPR19QUk9HUkFNX1NZTUJPTAoKLyogU3RyaW5ncyAqLwoKI2RlZmluZSBTVFJJTkdfUFJPR1JBTV9NQU5BR0VSICAgICAgICAgICAgIk1hbmFlZGpldSBkaSBQcm9ncmFtZXMiCiNkZWZpbmUgU1RSSU5HX0VSUk9SICAgICAgICAgICAgICAgICAgICAgICJBUk9LRSIKI2RlZmluZSBTVFJJTkdfV0FSTklORyAgICAgICAgICAgICAgICAgICAgIkFEVkVSVElYSE1JTlQiCiNkZWZpbmUgU1RSSU5HX0lORk8gICAgICAgICAgICAgICAgICAgICAgICJJbmZvcm3lY2lvbiIKI2RlZmluZSBTVFJJTkdfREVMRVRFICAgICAgICAgICAgICAgICAgICAgIkRpc2ZhY2VyIgojZGVmaW5lIFNUUklOR19ERUxFVEVfR1JPVVBfcyAgICAgICAgICAgICAiRGlzZmFjZXIgbGkgZ3JvdXBlIGAlcycgPyIKI2RlZmluZSBTVFJJTkdfREVMRVRFX1BST0dSQU1fcyAgICAgICAgICAgIkRpc2ZhY2VyIGxpIHByb2dyYW1lIGAlcycgPyIKI2RlZmluZSBTVFJJTkdfTk9UX0lNUExFTUVOVEVEICAgICAgICAgICAgIk7pbiBjbyBwb3NzaWJlIgojZGVmaW5lIFNUUklOR19GSUxFX1JFQURfRVJST1JfcyAgICAgICAgICAiWeVrIG4nIGEgbuluIHN07iDlIG1vdW1pbnQgZGkgbGVyZSBgJXMnIgojZGVmaW5lIFNUUklOR19GSUxFX1dSSVRFX0VSUk9SX3MgICAgICAgICAiWeVrIG4nIGEgbuluIHN07iDlIG1vdW1pbnQgZGkgc2NoYXBlciBgJXMnIgoKI2RlZmluZSBTVFJJTkdfR1JQRklMRV9SRUFEX0VSUk9SX3MgICAgICAgIlwKTGkgZml0Y2juIGRpIGdyb3VwZSBgJXMnIG4nIHBvdXQgbuluIGVzc2UgZHJvdmkuXG5cClZvbG96IHNheWkgcHVzIHTlcmQgPyIKCiNkZWZpbmUgU1RSSU5HX09VVF9PRl9NRU1PUlkgICAgICAgICAgICAgICJNZW13ZXJlIHBsaW5uZSIKI2RlZmluZSBTVFJJTkdfV0lOSEVMUF9FUlJPUiAgICAgICAgICAgICAgIkkgZ24gYSBwb250IGQnIGFpZGUiCiNkZWZpbmUgU1RSSU5HX1VOS05PV05fRkVBVFVSRV9zICAgICAgICAgICJPc3RpIG7pbiBjbm94aHUgZGlucyAlcyIKI2RlZmluZSBTVFJJTkdfRklMRV9OT1RfT1ZFUldSSVRURU5fcyAgICAgIkxpIGZpdGNo7iBgJXMnIGVnemlzdGV5ZSBkZGphLiBO6W4gc3BvdGNo7i4iCiNkZWZpbmUgU1RSSU5HX1NBVkVfR1JPVVBfQVNfcyAgICAgICAgICAgICJHcm91cGUgc2NoYXDpIOh0IHJsb23pIGNvbWUgYCVzJyBwbyBu6W4gc3BvdGNo7iBsZXMgZml0Y2juIGRpIGR2YW50IgoKI2RlZmluZSBTVFJJTkdfTk9fSE9UX0tFWSAgICAgICAgICAgICAgICAgIk5vbGUiCgojZGVmaW5lIFNUUklOR19BTExfRklMRVMgICAgICAgICAgICAgICAgICAiVG9zIGxlcyBmaXRjaO5zICgqLiopIgojZGVmaW5lIFNUUklOR19QUk9HUkFNUyAgICAgICAgICAgICAgICAgICAiUHJvZ3JhbWVzIgojZGVmaW5lIFNUUklOR19MSUJSQVJJRVNfRExMICAgICAgICAgICAgICAiTO52cmV5ZXMgKCouZGxsKSIKI2RlZmluZSBTVFJJTkdfU1lNQk9MX0ZJTEVTICAgICAgICAgICAgICAgIkZpdGNo7nMgZGkgc2ltYvRsZXMiCiNkZWZpbmUgU1RSSU5HX1NZTUJPTFNfSUNPICAgICAgICAgICAgICAgICJJbeVkamV0ZXMgKCouaWNvKSIKCiNpbmNsdWRlICJYeC5yYyIK