LyoKICogIE5vdGVwYWQgKFdhbGxvb24gcmVzb3VyY2VzKQogKgogKiBTaSB2b3Mgdm9sb3ogYWlkZXIgYXZvdSBsaSByYXRv+3JuYWVkamUgZGVzIGxpYmVzIHByb2dyYW1lcyDoIHdhbG9uLAogKiB2b3MgcG9sb3ogc2Ny7nJlIGEgbCcgYWRyZXNzZSBlbWlsZSA8bGludXgtd2FAY2hhbmFlLmFscGhhbmV0LmNoPgogKi8KCiNkZWZpbmUgTEFOR1VBR0VfSUQgICAgICAgICAgICAgICAgICAgICBXYQojZGVmaW5lIExBTkdVQUdFX05VTUJFUiAgICAgICAgICAgICAgICAgOTAKI2RlZmluZSBMQU5HVUFHRV9NRU5VX0lURU0gICAgICAgICAgICAgICImV2Fsb24iCgoKLyogTWVudSAqLwoKI2RlZmluZSBNRU5VX0ZJTEUgICAgICAgICAgICAgICAgICAgICAgICImRml0Y2juIgojZGVmaW5lIE1FTlVfRklMRV9ORVcgICAgICAgICAgICAgICAgICAgIiZOb3ZlYS4uLiIKI2RlZmluZSBNRU5VX0ZJTEVfT1BFTiAgICAgICAgICAgICAgICAgICImRHJvdu4iCiNkZWZpbmUgTUVOVV9GSUxFX1NBVkUgICAgICAgICAgICAgICAgICAiJlNjaGFwZXIiCiNkZWZpbmUgTUVOVV9GSUxFX1NBVkVBUyAgICAgICAgICAgICAgICAiU2NoYXBlciDodCByJmxvbWVyLi4uIgojZGVmaW5lIE1FTlVfRklMRV9QUklOVCAgICAgICAgICAgICAgICAgIiZSZXhoZSIKI2RlZmluZSBNRU5VX0ZJTEVfUEFHRVNFVFVQICAgICAgICAgICAgICJBcnJhbmRqbWludCBkZWwgJlDlZGplLi4uIgojZGVmaW5lIE1FTlVfRklMRV9QUklOVFNFVFVQICAgICAgICAgICAgIiZBcG9udGlhZWRqZSBkZWwgc2NyaXJlY2UuLi4iCiNkZWZpbmUgTUVOVV9GSUxFX0VYSVQgICAgICAgICAgICAgICAgICAiTW91c3PuICZGb/siCgojZGVmaW5lIE1FTlVfRURJVCAgICAgICAgICAgICAgICAgICAgICAgIiZDYW5kau4iCiNkZWZpbmUgTUVOVV9FRElUX1VORE8gICAgICAgICAgICAgICAgICAiJkRpc2bpXHRDdHJsK1oiCiNkZWZpbmUgTUVOVV9FRElUX0NVVCAgICAgICAgICAgICAgICAgICAiQ/QmcGVyXHRDdHJsK1giCiNkZWZpbmUgTUVOVV9FRElUX0NPUFkgICAgICAgICAgICAgICAgICAiJkNvcHnuXHRDdHJsK0MiCiNkZWZpbmUgTUVOVV9FRElUX1BBU1RFICAgICAgICAgICAgICAgICAiQyZsYXBlclx0Q3RybCtWIgojZGVmaW5lIE1FTlVfRURJVF9ERUxFVEUgICAgICAgICAgICAgICAgIiZSYWZhY2VyXHREZWwiCiNkZWZpbmUgTUVOVV9FRElUX1NFTEVDVEFMTCAgICAgICAgICAgICAiJlRjaHdlemkgdG90YWZ3YWl0IgojZGVmaW5lIE1FTlVfRURJVF9USU1FREFURSAgICAgICAgICAgICAgIiZFdXJlL0RhdGVcdEY1IgojZGVmaW5lIE1FTlVfRURJVF9XUkFQICAgICAgICAgICAgICAgICAgIkP0cGVyIGxlcyBybyZ5ZXMiCgojZGVmaW5lIE1FTlVfU0VBUkNIICAgICAgICAgICAgICAgICAgICAgIkMmd2Vy7iIKI2RlZmluZSBNRU5VX1NFQVJDSF9TRUFSQ0ggICAgICAgICAgICAgICJDd2Vy7i4uLiIKI2RlZmluZSBNRU5VX1NFQVJDSF9ORVhUICAgICAgICAgICAgICAgICImU2j7dmFudFx0RjMiCgojZGVmaW5lIE1FTlVfTEFOR1VBR0UgICAgICAgICAgICAgICAgICAgIiZMaW5nYWVkamUiCgojZGVmaW5lIE1FTlVfSEVMUCAgICAgICAgICAgICAgICAgICAgICAgIiZBaWRlIgojZGVmaW5lIE1FTlVfSEVMUF9DT05URU5UUyAgICAgICAgICAgICAgIsUmZHZpbnMiCiNkZWZpbmUgTUVOVV9IRUxQX1NFQVJDSCAgICAgICAgICAgICAgICAiQyZ3ZXLuLi4uIgojZGVmaW5lIE1FTlVfSEVMUF9IRUxQX09OX0hFTFAgICAgICAgICAgIiZBaWRlIHNvIGwnIEFpZGUiCgojZGVmaW5lIE1FTlVfSU5GTyAgICAgICAgICAgICAgICAgICAgICAgIiZJbmZvcm3lY2lvbi4uLiIKI2RlZmluZSBNRU5VX0lORk9fTElDRU5TRSAgICAgICAgICAgICAgICImTGljaW5zZSIKI2RlZmluZSBNRU5VX0lORk9fTk9fV0FSUkFOVFkgICAgICAgICAgICImTk9MRSBXQVJBTlRFWUUiCiNkZWZpbmUgTUVOVV9JTkZPX0FCT1VUX1dJTkUgICAgICAgICAgICAixSAmZGZhaXQgZGkgV2luZSIKCgovKiBEaWFsb2dzICovCgojZGVmaW5lIERJQUxPR19PSyAgICAgICAgICAgICAgICAgICAgICAgIkkgVmEiCiNkZWZpbmUgRElBTE9HX0NBTkNFTCAgICAgICAgICAgICAgICAgICAiUmlub25j7iIKI2RlZmluZSBESUFMT0dfQlJPV1NFICAgICAgICAgICAgICAgICAgICImRm95ZXIuLi4iCiNkZWZpbmUgRElBTE9HX0hFTFAgICAgICAgICAgICAgICAgICAgICAiJkFpZGUiCgojZGVmaW5lIERJQUxPR19QQUdFU0VUVVBfQ0FQVElPTiAgICAgICAgIkFyaW5kam1pbnQgZGVsIFDlZGplIgovKiAiVGl0ZSIgbmkgdmEgbuluIHZyYWl5bWludCwgaSBm5XQgZW5lIHNhY3dlIGQnIG1leWV1IFtoZWFkZXJdICovCiNkZWZpbmUgRElBTE9HX1BBR0VTRVRVUF9IRUFEICAgICAgICAgICAiJlRpdGU6IgojZGVmaW5lIERJQUxPR19QQUdFU0VUVVBfVEFJTCAgICAgICAgICAgIiZQ7m5vdGU6IgovKiAibWFyZGplcyIgPyBbbWFyZ2VzXSAqLwojZGVmaW5lIERJQUxPR19QQUdFU0VUVVBfTUFSR0lOICAgICAgICAgIiZNYXJkamVzOiIKI2RlZmluZSBESUFMT0dfUEFHRVNFVFVQX0xFRlQgICAgICAgICAgICImSGludGNoZToiCiNkZWZpbmUgRElBTE9HX1BBR0VTRVRVUF9SSUdIVCAgICAgICAgICAiJkRyb2V0ZToiCiNkZWZpbmUgRElBTE9HX1BBR0VTRVRVUF9UT1AgICAgICAgICAgICAiJkNvcGV0ZToiCiNkZWZpbmUgRElBTE9HX1BBR0VTRVRVUF9CT1RUT00gICAgICAgICAiJkJhczoiCgoKLyogU3RyaW5ncyAqLwoKI2RlZmluZSBTVFJJTkdfUEFHRVNFVFVQX0hFQURFUlZBTFVFICAgICImbiIgICAgICAgIC8qIEZJWE1FICovCiNkZWZpbmUgU1RSSU5HX1BBR0VTRVRVUF9GT09URVJWQUxVRSAgICAiUOVkamUgJnMiICAgLyogRklYTUUgKi8KI2RlZmluZSBTVFJJTkdfUEFHRVNFVFVQX0xFRlRWQUxVRSAgICAgICIyMCBtbSIgICAgIC8qIEZJWE1FICovCiNkZWZpbmUgU1RSSU5HX1BBR0VTRVRVUF9SSUdIVFZBTFVFICAgICAiMjAgbW0iICAgICAvKiBGSVhNRSAqLwojZGVmaW5lIFNUUklOR19QQUdFU0VUVVBfVE9QVkFMVUUgICAgICAgIjI1IG1tIiAgICAgLyogRklYTUUgKi8KI2RlZmluZSBTVFJJTkdfUEFHRVNFVFVQX0JPVFRPTVZBTFVFICAgICIyNSBtbSIgICAgIC8qIEZJWE1FICovCgojZGVmaW5lIFNUUklOR19OT1RFUEFEICAgICAgICAgICAgICAgICAgIk5vdGVwYWQiCiNkZWZpbmUgU1RSSU5HX0VSUk9SICAgICAgICAgICAgICAgICAgICAiQVJPS0UiCiNkZWZpbmUgU1RSSU5HX1dBUk5JTkcgICAgICAgICAgICAgICAgICAiQURWRVJUSVhITUlOVCIKI2RlZmluZSBTVFJJTkdfSU5GTyAgICAgICAgICAgICAgICAgICAgICJJbmZvcm3lY2lvbiIKCiNkZWZpbmUgU1RSSU5HX1VOVElUTEVEICAgICAgICAgICAgICAgICAiKHNpbiB0aXRlKSIKCiNkZWZpbmUgU1RSSU5HX0FMTF9GSUxFUyAgICAgICAgICAgICAgICAiVG9zIGxlcyBmaXRjaO5zICgqLiopIgojZGVmaW5lIFNUUklOR19URVhUX0ZJTEVTX1RYVCAgICAgICAgICAgIkZpdGNo7nMgdGVrc2UgKCoudHh0KSIKCiNkZWZpbmUgU1RSSU5HX1RPT0xBUkdFICAgICAgICAgIkxpIGZpdGNo7iAnJXMnIGVzdCB0cm9wIGdyb3MgcG9sIG5vdGVwYWQuXG4gXApFcGxveW96IG9uIPR0ZSBhc3BvdWduZXUgZGkgdGVrc2UuIgoKI2RlZmluZSBTVFJJTkdfTk9URVhUICAgICAgICAgICAiVm9zIG4nIGF2b3ogculuIHNpY3LudC4gXApcblRhcGV6IGVuZSBzYWN3ZSDodCByYXNheWV6IgoKLyogRklYTUUgKi8KCiNkZWZpbmUgU1RSSU5HX0RPRVNOT1RFWElTVCAgICAgIkZpbGUgJyVzJ1xuZG9lcyBub3QgZXhpc3RcblxuIFwKRG8geW91IHdhbnQgdG8gY3JlYXRlIGEgbmV3IGZpbGUgPyIKCiNkZWZpbmUgU1RSSU5HX05PVFNBVkVEICAgICAgICAgIkxpIGZpdGNo7iAnJXMnXG5hIGNhbmRq7lxuXG4gXApFbCB2b2xveiBzY2hhcGVyID8iCgojZGVmaW5lIFNUUklOR19OT1RGT1VORCAgICAgICAgICInJXMnIHBvdXQgbuluIGVzc2UgdHJvdukuIgoKI2RlZmluZSBTVFJJTkdfT1VUX09GX01FTU9SWSAgICAiTGkgbWVtd2VyZSBlc3QgcGxpbm5lLiBcblwKQ2xveW96IG9uIHByb2dyYW1lIG91IHB1cyBwbyBtb250ZXIgbGkgbWVtd2VyZSBsaWJlLiIKCiNpbmNsdWRlICJub3RlcGFkLnJjIgo=