LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQ29weXJpZ2h0IChDKSBNYXJ2ZWxsIEludGVybmF0aW9uYWwgTHRkLiBhbmQgaXRzIGFmZmlsaWF0ZXMKClRoaXMgc29mdHdhcmUgZmlsZSAodGhlICJGaWxlIikgaXMgb3duZWQgYW5kIGRpc3RyaWJ1dGVkIGJ5IE1hcnZlbGwgCkludGVybmF0aW9uYWwgTHRkLiBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMgKCJNYXJ2ZWxsIikgdW5kZXIgdGhlIGZvbGxvd2luZwphbHRlcm5hdGl2ZSBsaWNlbnNpbmcgdGVybXMuICBPbmNlIHlvdSBoYXZlIG1hZGUgYW4gZWxlY3Rpb24gdG8gZGlzdHJpYnV0ZSB0aGUKRmlsZSB1bmRlciBvbmUgb2YgdGhlIGZvbGxvd2luZyBsaWNlbnNlIGFsdGVybmF0aXZlcywgcGxlYXNlIChpKSBkZWxldGUgdGhpcwppbnRyb2R1Y3Rvcnkgc3RhdGVtZW50IHJlZ2FyZGluZyBsaWNlbnNlIGFsdGVybmF0aXZlcywgKGlpKSBkZWxldGUgdGhlIHR3bwpsaWNlbnNlIGFsdGVybmF0aXZlcyB0aGF0IHlvdSBoYXZlIG5vdCBlbGVjdGVkIHRvIHVzZSBhbmQgKGlpaSkgcHJlc2VydmUgdGhlCk1hcnZlbGwgY29weXJpZ2h0IG5vdGljZSBhYm92ZS4KCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCk1hcnZlbGwgQ29tbWVyY2lhbCBMaWNlbnNlIE9wdGlvbgoKSWYgeW91IHJlY2VpdmVkIHRoaXMgRmlsZSBmcm9tIE1hcnZlbGwgYW5kIHlvdSBoYXZlIGVudGVyZWQgaW50byBhIGNvbW1lcmNpYWwKbGljZW5zZSBhZ3JlZW1lbnQgKGEgIkNvbW1lcmNpYWwgTGljZW5zZSIpIHdpdGggTWFydmVsbCwgdGhlIEZpbGUgaXMgbGljZW5zZWQKdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgYXBwbGljYWJsZSBDb21tZXJjaWFsIExpY2Vuc2UuCgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpNYXJ2ZWxsIEdQTCBMaWNlbnNlIE9wdGlvbgoKSWYgeW91IHJlY2VpdmVkIHRoaXMgRmlsZSBmcm9tIE1hcnZlbGwsIHlvdSBtYXkgb3B0IHRvIHVzZSwgcmVkaXN0cmlidXRlIGFuZC9vciAKbW9kaWZ5IHRoaXMgRmlsZSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBHZW5lcmFsIApQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIsIEp1bmUgMTk5MSAodGhlICJHUEwgTGljZW5zZSIpLCBhIGNvcHkgb2Ygd2hpY2ggaXMgCmF2YWlsYWJsZSBhbG9uZyB3aXRoIHRoZSBGaWxlIGluIHRoZSBsaWNlbnNlLnR4dCBmaWxlIG9yIGJ5IHdyaXRpbmcgdG8gdGhlIEZyZWUgClNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgb3IgCm9uIHRoZSB3b3JsZHdpZGUgd2ViIGF0IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwudHh0LiAKClRIRSBGSUxFIElTIERJU1RSSUJVVEVEIEFTLUlTLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBBTkQgVEhFIElNUExJRUQgCldBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBFWFBSRVNTTFkgCkRJU0NMQUlNRUQuICBUaGUgR1BMIExpY2Vuc2UgcHJvdmlkZXMgYWRkaXRpb25hbCBkZXRhaWxzIGFib3V0IHRoaXMgd2FycmFudHkgCmRpc2NsYWltZXIuCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCk1hcnZlbGwgQlNEIExpY2Vuc2UgT3B0aW9uCgpJZiB5b3UgcmVjZWl2ZWQgdGhpcyBGaWxlIGZyb20gTWFydmVsbCwgeW91IG1heSBvcHQgdG8gdXNlLCByZWRpc3RyaWJ1dGUgYW5kL29yIAptb2RpZnkgdGhpcyBGaWxlIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zaW5nIHRlcm1zLiAKUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgCmFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKCiAgICAqICAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAoJICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAoKICAgICogICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAogICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICAgICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKCiAgICAqICAgTmVpdGhlciB0aGUgbmFtZSBvZiBNYXJ2ZWxsIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgCiAgICAgICAgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCAKICAgICAgICBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAogICAgClRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgCkFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIApXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIApESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIApBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgCihJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgCkxPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiAKQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgCihJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIApTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgojaWZuZGVmIF9fSU5DUENJUkVHU0gKI2RlZmluZSBfX0lOQ1BDSVJFR1NICgoKI2luY2x1ZGUgInBjaS1pZi9tdlBjaUlmUmVncy5oIgovKiBkZWZpbmVzICovCiNkZWZpbmUgTUFYX1BDSV9ERVZJQ0VTICAgICAgICAgMzIKI2RlZmluZSBNQVhfUENJX0ZVTkNTICAgICAgICAgICA4CiNkZWZpbmUgTUFYX1BDSV9CVVNTRVMgICAgICAgICAgMTI4CgovKiBlbnVtZXJhdG9ycyAqLwoKLyogVGhpcyBlbnVtZXJhdG9yIGRlc2NyaWJlZCB0aGUgcG9zc2libGUgUENJIHNsYXZlIHRhcmdldHMuICAgIAkgICAqLwovKiBQQ0kgc2xhdmUgdGFyZ2V0cyBhcmUgZGVzaWduYXRlZCBtZW1vcnkvSU8gYWRkcmVzcyBzcGFjZXMgdGhhdCB0aGUgICovCi8qIFBDSSBzbGF2ZSB0YXJnZXRzIGNhbiBhY2Nlc3MuIFRoZXkgYXJlIGFsc28gcmVmZXJlZCBhcyAidGFyZ2V0cyIgICAgKi8KLyogdGhpcyBlbnVtZXJhdG9lIG9yZGVyIGlzIGRldGVybWluZWQgYnkgdGhlIGNvbnRlbnQgb2YgOiAKCQlQQ0lfQkFTRV9BRERSX0VOQUJMRV9SRUcgCQkJCSAJCQkJCSovCgoKLyogcmVnaXN0ZXJzIG9mZnNldGVzIGRlZmluZXMgKi8KCgoKLyoqKioqKioqKioqKioqKioqKioqKioqKiovCi8qIFBDSSBjb250cm9sIHJlZ2lzdGVycyAqLwovKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyogbWFlbiA6IHNob3VsZCBhZGQgbmV3IHJlZ2lzdGVycyAqLwojZGVmaW5lIFBDSV9DTURfUkVHKHBjaUlmKQkJCQkgCQkoMHgzMGMwMCAgKyAoKHBjaUlmKSAqIDB4ODApKQojZGVmaW5lIFBDSV9NT0RFX1JFRyhwY2lJZikJCQkJIAkJKDB4MzBkMDAgICsgKChwY2lJZikgKiAweDgwKSkKI2RlZmluZSBQQ0lfUkVUUllfUkVHKHBjaUlmKQkJCQkJKDB4MzBjMDQgICsgKChwY2lJZikgKiAweDgwKSkKI2RlZmluZSBQQ0lfRElTQ0FSRF9USU1FUl9SRUcocGNpSWYpCQkJKDB4MzBkMDQgICsgKChwY2lJZikgKiAweDgwKSkKI2RlZmluZSBQQ0lfQVJCSVRFUl9DVFJMX1JFRyhwY2lJZikJCQkJKDB4MzFkMDAgKyAoKHBjaUlmKSAqIDB4ODApKQojZGVmaW5lIFBDSV9QMlBfQ09ORklHX1JFRyhwY2lJZikJCQkJKDB4MzFkMTQgKyAoKHBjaUlmKSAqIDB4ODApKQojZGVmaW5lIFBDSV9BQ0NFU1NfQ1RSTF9CQVNFTF9SRUcocGNpSWYsIHRhcmdldFdpbikgXAoJCQkJCQkJKDB4MzFlMDAgKyAoKHBjaUlmKSAqIDB4ODApICsgKCh0YXJnZXRXaW4pICogMHgxMCkpCiNkZWZpbmUgUENJX0FDQ0VTU19DVFJMX0JBU0VIX1JFRyhwY2lJZiwgdGFyZ2V0V2luKSBcCgkJCQkJCQkoMHgzMWUwNCArICgocGNpSWYpICogMHg4MCkgKyAoKHRhcmdldFdpbikgKiAweDEwKSkKI2RlZmluZSBQQ0lfQUNDRVNTX0NUUkxfU0laRV9SRUcocGNpSWYsIHRhcmdldFdpbikJXAoJCQkJCQkJKDB4MzFlMDggKyAoKHBjaUlmKSAqIDB4ODApICsgKCh0YXJnZXRXaW4pICogMHgxMCkpCgkJCQkJCQkKI2RlZmluZSBQQ0lfRExMX0NUUkxfUkVHKHBjaUlmKQkgICAJCSAJCSgweDMxZDIwICArICgocGNpSWYpICogMHg4MCkpCgovKiBQQ0kgRGxsIENvbnRyb2wgKFBEQykqLwojZGVmaW5lIFBEQ19ETExfRU4JCQkJCUJJVDAKCgovKiBQQ0kgQ29tbWFuZCBSZWdpc3RlciAoUENSKSAqLwojZGVmaW5lIFBDUl9NQVNURVJfQllURV9TV0FQX0VOICAgICBCSVQwCiNkZWZpbmUgUENSX01BU1RFUl9XUl9DT01CSU5FX0VOICAgIEJJVDQKI2RlZmluZSBQQ1JfTUFTVEVSX1JEX0NPTUJJTkVfRU4gICAgQklUNQojZGVmaW5lIFBDUl9NQVNURVJfV1JfVFJJR19XSE9MRSAgICBCSVQ2CiNkZWZpbmUgUENSX01BU1RFUl9SRF9UUklHX1dIT0xFICAgIEJJVDcKI2RlZmluZSBQQ1JfTUFTVEVSX01FTV9SRF9MSU5FX0VOICAgQklUOAojZGVmaW5lIFBDUl9NQVNURVJfTUVNX1JEX01VTFRfRU4gICBCSVQ5CiNkZWZpbmUgUENSX01BU1RFUl9XT1JEX1NXQVBfRU4gICAgIEJJVDEwCiNkZWZpbmUgUENSX1NMQVZFX1dPUkRfU1dBUF9FTiAgICAgIEJJVDExCiNkZWZpbmUgUENSX05TX0FDQ09SRElOR19SQ1ZfVFJBTlMgIEJJVDE0CiNkZWZpbmUgUENSX01BU1RFUl9QQ0lYX1JFUTY0Tl9FTiAgIEJJVDE1CiNkZWZpbmUgUENSX1NMQVZFX0JZVEVfU1dBUF9FTiAgICAgIEJJVDE2CiNkZWZpbmUgUENSX01BU1RFUl9EQUNfRU4gICAgICAgICAgIEJJVDE3CiNkZWZpbmUgUENSX01BU1RFUl9NNjRfQUxMSUdOICAgICAgIEJJVDE4CiNkZWZpbmUgUENSX0VSUk9SU19QUk9QQUdBVElPTl9FTiAgIEJJVDE5CiNkZWZpbmUgUENSX1NMQVZFX1NXQVBfRU5BQkxFICAgICAgIEJJVDIwCiNkZWZpbmUgUENSX01BU1RFUl9TV0FQX0VOQUJMRSAgICAgIEJJVDIxCiNkZWZpbmUgUENSX01BU1RFUl9JTlRfU1dBUF9FTiAgICAgIEJJVDIyCiNkZWZpbmUgUENSX0xPT1BfQkFDS19FTkFCTEUgICAgICAgIEJJVDIzCiNkZWZpbmUgUENSX1NMQVZFX0lOVFJFR19TV0FQX09GRlMgIDI0CiNkZWZpbmUgUENSX1NMQVZFX0lOVFJFR19TV0FQX01BU0sgIDB4MwojZGVmaW5lIFBDUl9TTEFWRV9JTlRSRUdfQllURV9TV0FQICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKE1WX0JZVEVfU1dBUCA8PCBQQ1JfU0xBVkVfSU5UX1JFR19TV0FQX01BU0spCiNkZWZpbmUgUENSX1NMQVZFX0lOVFJFR19OT19TV0FQICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTVZfTk9fU1dBUCAgIDw8IFBDUl9TTEFWRV9JTlRfUkVHX1NXQVBfTUFTSykKI2RlZmluZSBQQ1JfU0xBVkVfSU5UUkVHX0JZVEVfV09SRCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChNVl9CWVRFX1dPUkRfU1dBUCA8PCBQQ1JfU0xBVkVfSU5UX1JFR19TV0FQX01BU0spCiNkZWZpbmUgUENSX1NMQVZFX0lOVFJFR19XT1JEX1NXQVAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTVZfV09SRF9TV0FQIDw8IFBDUl9TTEFWRV9JTlRfUkVHX1NXQVBfTUFTSykKI2RlZmluZSBQQ1JfUkVTRVRfUkVBU1NFUlRJT05fRU4gICAgQklUMjYKI2RlZmluZSBQQ1JfUENJX1RPX0NQVV9SRUdfT1JERVJfRU4gQklUMjgKI2RlZmluZSBQQ1JfQ1BVX1RPX1BDSV9PUkRFUl9FTiAgICAgQklUMjkKI2RlZmluZSBQQ1JfUENJX1RPX0NQVV9PUkRFUl9FTiAgICAgQklUMzAKCi8qIFBDSSBNb2RlIFJlZ2lzdGVyIChQTVIpICovCiNkZWZpbmUgUE1SX1BDSV9JRF9PRkZTIAkJCTAgIC8qIFBDSSBJbnRlcmZhY2UgSUQgKi8KI2RlZmluZSBQTVJfUENJX0lEX01BU0sgCQkJKDB4MSA8PCBQTVJfUENJX0lEX09GRlMpCiNkZWZpbmUgUE1SX1BDSV9JRF9QQ0kocGNpTnVtKSAJCSgocGNpTnVtKSA8PCBQQ0lfTU9ERV9QQ0lJRF9PRkZTKQoKI2RlZmluZSBQTVJfUENJXzY0X09GRlMJCQkJMiAJLyogNjQtYml0IFBDSSBJbnRlcmZhY2UgKi8KI2RlZmluZSBQTVJfUENJXzY0X01BU0sJCQkJKDB4MSA8PCBQTVJfUENJXzY0X09GRlMpCiNkZWZpbmUgUE1SX1BDSV82NF82NEJJVAkJCSgweDEgPDwgUE1SX1BDSV82NF9PRkZTKQojZGVmaW5lIFBNUl9QQ0lfNjRfMzJCSVQJCQkoMHgwIDw8IFBNUl9QQ0lfNjRfT0ZGUykKCiNkZWZpbmUgUE1SX1BDSV9NT0RFX09GRlMJCQk0IAkvKiBQQ0kgaW50ZXJmYWNlIG1vZGUgb2Ygb3BlcmF0aW9uICovCiNkZWZpbmUgUE1SX1BDSV9NT0RFX01BU0sJCQkoMHgzIDw8IFBNUl9QQ0lfTU9ERV9PRkZTKQojZGVmaW5lIFBNUl9QQ0lfTU9ERV9DT05WCQkJKDB4MCA8PCBQTVJfUENJX01PREVfT0ZGUykKI2RlZmluZSBQTVJfUENJX01PREVfUENJWF82Nk1IWgkJKDB4MSA8PCBQTVJfUENJX01PREVfT0ZGUykKI2RlZmluZSBQTVJfUENJX01PREVfUENJWF8xMDBNSFoJKDB4MiA8PCBQTVJfUENJX01PREVfT0ZGUykKI2RlZmluZSBQTVJfUENJX01PREVfUENJWF8xMzNNSFoJKDB4MyA8PCBQTVJfUENJX01PREVfT0ZGUykKCiNkZWZpbmUgUE1SX0VYUF9ST01fU1VQUE9SVAkJCUJJVDgJLyogRXhwYW5zaW9uIFJPTSBBY3RpdmUgKi8KCiNkZWZpbmUgUE1SX1BDSV9SRVNFVF9PRkZTCQkJMzEgLyogUENJIEludGVyZmFjZSBSZXNldCBJbmRpY2F0aW9uICovCiNkZWZpbmUgUE1SX1BDSV9SRVNFVF9NQVNLCQkJKDB4MSA8PCBQTVJfUENJX1JFU0VUX09GRlMpCiNkZWZpbmUgUE1SX1BDSV9SRVNFVF9QQ0lYUlNUCQkoMHgwIDw8IFBNUl9QQ0lfUkVTRVRfT0ZGUykKCgovKiBQQ0kgUmV0cnkgUmVnaXN0ZXIgKFBSUikgKi8KI2RlZmluZSBQUlJfUkVUUllfQ05UUl9PRkZTCQkJMTYgLyogUmV0cnkgQ291bnRlciAqLwojZGVmaW5lIFBSUl9SRVRSWV9DTlRSX01BWAkJCTB4ZmYKI2RlZmluZSBQUlJfUkVUUllfQ05UUl9NQVNLCQkJKFBSUl9SRVRSWV9DTlRSX01BWCA8PCBQUlJfUkVUUllfQ05UUl9PRkZTKQoKCi8qIFBDSSBEaXNjYXJkIFRpbWVyIFJlZ2lzdGVyIChQRFRSKSAqLwojZGVmaW5lIFBEVFJfVElNRVJfT0ZGUwkJCQkwCS8qIFRpbWVyICovCiNkZWZpbmUgUERUUl9USU1FUl9NQVgJCQkJMHhmZmZmCiNkZWZpbmUgUERUUl9USU1FUl9NSU4JCQkJMHg3RgojZGVmaW5lIFBEVFJfVElNRVJfTUFTSwkJCQkoUERUUl9USU1FUl9NQVggPDwgUERUUl9USU1FUl9PRkZTKQoKCi8qIFBDSSBBcmJpdGVyIENvbnRyb2wgUmVnaXN0ZXIgKFBBQ1IpICovCiNkZWZpbmUgUEFDUl9CUk9LRU5fREVURUNUX0VOCQlCSVQxCS8qIEJyb2tlbiBEZXRlY3Rpb24gRW5hYmxlICovCgojZGVmaW5lIFBBQ1JfQlJPS0VOX1ZBTF9PRkZTCQkzCS8qIEJyb2tlbiBWYWx1ZSAqLwojZGVmaW5lIFBBQ1JfQlJPS0VOX1ZBTF9NQVNLCQkoMHhmIDw8IFBBQ1JfQlJPS0VOX1ZBTF9PRkZTKQojZGVmaW5lIFBBQ1JfQlJPS0VOX1ZBTF9DT05WX01JTgkweDIKI2RlZmluZSBQQUNSX0JST0tFTl9WQUxfUENJWF9NSU4JMHg2CgojZGVmaW5lIFBBQ1JfUEFSS19ESVNfT0ZGUwkJMTQJLyogUGFya2luZyBEaXNhYmxlICovCiNkZWZpbmUgUEFDUl9QQVJLX0RJU19NQVhfQUdFTlQJMHgzZgojZGVmaW5lIFBBQ1JfUEFSS19ESVNfTUFTSwkJKFBBQ1JfUEFSS19ESVNfTUFYX0FHRU5UPDxQQUNSX1BBUktfRElTX09GRlMpCiNkZWZpbmUgUEFDUl9QQVJLX0RJUyhhZ2VudCkJKCgxIDw8IChhZ2VudCkpIDw8IFBBQ1JfUEFSS19ESVNfT0ZGUykKCiNkZWZpbmUgUEFDUl9BUkJfRU5BQkxFCQkJCUJJVDMxCS8qIEVuYWJsZSBJbnRlcm5hbCBBcmJpdGVyICovCgoKLyogUENJIFAyUCBDb25maWd1cmF0aW9uIFJlZ2lzdGVyIChQUENSKSAqLwojZGVmaW5lIFBQQ1JfMk5EX0JVU19MX09GRlMJCQkwCS8qIDJuZCBQQ0kgSW50ZXJmYWNlIEJ1cyBSYW5nZSBMb3dlciAqLwojZGVmaW5lIFBQQ1JfMk5EX0JVU19MX01BU0sJCQkoMHhmZiA8PCBQUENSXzJORF9CVVNfTF9PRkZTKQoKI2RlZmluZSBQUENSXzJORF9CVVNfSF9PRkZTCQkJOAkvKiAybmQgUENJIEludGVyZmFjZSBCdXMgUmFuZ2UgVXBwZXIgKi8KI2RlZmluZSBQUENSXzJORF9CVVNfSF9NQVNLCQkJKDB4ZmYgPDwgUFBDUl8yTkRfQlVTX0hfT0ZGUykKCiNkZWZpbmUgUFBDUl9CVVNfTlVNX09GRlMJCQkxNiAgLyogVGhlIFBDSSBpbnRlcmZhY2UncyBCdXMgbnVtYmVyICovCiNkZWZpbmUgUFBDUl9CVVNfTlVNX01BU0sJCQkoMHhmZiA8PCBQUENSX0JVU19OVU1fT0ZGUykKCiNkZWZpbmUgUFBDUl9ERVZfTlVNX09GRlMJCQkyNCAgLyogVGhlIFBDSSBpbnRlcmZhY2WScyBEZXZpY2UgbnVtYmVyICovCiNkZWZpbmUgUFBDUl9ERVZfTlVNX01BU0sJCQkoMHhmZiA8PCBQUENSX0RFVl9OVU1fT0ZGUykKCgovKiBQQ0kgQWNjZXNzIENvbnRyb2wgQmFzZSBMb3cgUmVnaXN0ZXIgKFBBQ0JMUikgKi8KI2RlZmluZSBQQUNCTFJfRU4JCQkJCUJJVDAgLyogQWNjZXNzIGNvbnRyb2wgd2luZG93IGVuYWJsZSAqLwoKI2RlZmluZSBQQUNCTFJfQUNDUFJPVAkJCQlCSVQ0IC8qIEFjY2VzcyBQcm90ZWN0ICovCiNkZWZpbmUgUEFDQkxSX1dSUFJPVAkJCQlCSVQ1IC8qIFdyaXRlIFByb3RlY3QgKi8KCiNkZWZpbmUgUEFDQkxSX1BDSVNXQVBfT0ZGUwkJCTYgCSAvKiBQQ0kgc2xhdmUgRGF0YSBTd2FwIENvbnRyb2wgKi8KI2RlZmluZSBQQUNCTFJfUENJU1dBUF9NQVNLCQkJKDB4MyA8PCBQQUNCTFJfUENJU1dBUF9PRkZTKQojZGVmaW5lIFBBQ0JMUl9QQ0lTV0FQX0JZVEUJCQkoMHgwIDw8IFBBQ0JMUl9QQ0lTV0FQX09GRlMpCiNkZWZpbmUgUEFDQkxSX1BDSVNXQVBfTk9fU1dBUAkJKDB4MSA8PCBQQUNCTFJfUENJU1dBUF9PRkZTKQojZGVmaW5lIFBBQ0JMUl9QQ0lTV0FQX0JZVEVfV09SRAkoMHgyIDw8IFBBQ0JMUl9QQ0lTV0FQX09GRlMpCiNkZWZpbmUgUEFDQkxSX1BDSVNXQVBfV09SRAkJCSgweDMgPDwgUEFDQkxSX1BDSVNXQVBfT0ZGUykKCiNkZWZpbmUgUEFDQkxSX1JETUJVUlNUX09GRlMJCTggLyogUmVhZCBNYXggQnVyc3QgKi8KI2RlZmluZSBQQUNCTFJfUkRNQlVSU1RfTUFTSwkJKDB4MyA8PCBQQUNCTFJfUkRNQlVSU1RfT0ZGUykKI2RlZmluZSBQQUNCTFJfUkRNQlVSU1RfMzJCWVRFCQkoMHgwIDw8IFBBQ0JMUl9SRE1CVVJTVF9PRkZTKQojZGVmaW5lIFBBQ0JMUl9SRE1CVVJTVF82NEJZVEUJCSgweDEgPDwgUEFDQkxSX1JETUJVUlNUX09GRlMpCiNkZWZpbmUgUEFDQkxSX1JETUJVUlNUXzEyOEJZVEUJCSgweDIgPDwgUEFDQkxSX1JETUJVUlNUX09GRlMpCgojZGVmaW5lIFBBQ0JMUl9SRFNJWkVfT0ZGUwkJCTEwIC8qIFR5cGljYWwgUENJIHJlYWQgdHJhbnNhY3Rpb24gU2l6ZS4gKi8KI2RlZmluZSBQQUNCTFJfUkRTSVpFX01BU0sJCQkoMHgzIDw8IFBBQ0JMUl9SRFNJWkVfT0ZGUykKI2RlZmluZSBQQUNCTFJfUkRTSVpFXzMyQllURQkJKDB4MCA8PCBQQUNCTFJfUkRTSVpFX09GRlMpCiNkZWZpbmUgUEFDQkxSX1JEU0laRV82NEJZVEUJCSgweDEgPDwgUEFDQkxSX1JEU0laRV9PRkZTKQojZGVmaW5lIFBBQ0JMUl9SRFNJWkVfMTI4QllURQkJKDB4MiA8PCBQQUNCTFJfUkRTSVpFX09GRlMpCiNkZWZpbmUgUEFDQkxSX1JEU0laRV8yNTZCWVRFCQkoMHgzIDw8IFBBQ0JMUl9SRFNJWkVfT0ZGUykKCiNkZWZpbmUgUEFDQkxSX0JBU0VfTF9PRkZTCQkJMTIJLyogQ29ycmVzcG9uZHMgdG8gYWRkcmVzcyBiaXRzIFszMToxMl0gKi8KI2RlZmluZSBQQUNCTFJfQkFTRV9MX01BU0sJCQkoMHhmZmZmZiA8PCBQQUNCTFJfQkFTRV9MX09GRlMpCiNkZWZpbmUgUEFDQkxSX0JBU0VfTF9BTElHTk1FTlQJCSgxIDw8IFBBQ0JMUl9CQVNFX0xfT0ZGUykKI2RlZmluZSBQQUNCTFJfQkFTRV9BTElHTl9VUChiYXNlKSAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoYmFzZStQQUNCTFJfQkFTRV9MX0FMSUdOTUVOVCkmUEFDQkxSX0JBU0VfTF9NQVNLKQojZGVmaW5lIFBBQ0JMUl9CQVNFX0FMSUdOX0RPV04oYmFzZSkgIChiYXNlICYgUEFDQkxSX0JBU0VfTF9NQVNLKQoKCi8qIFBDSSBBY2Nlc3MgQ29udHJvbCBCYXNlIEhpZ2ggUmVnaXN0ZXIgKFBBQ0JIUikgCSovCiNkZWZpbmUgUEFDQkhSX0JBU0VfSF9PRkZTCQkJMAkvKiBDb3JyZXNwb25kcyB0byBhZGRyZXNzIGJpdHMgWzYzOjMyXSAqLwojZGVmaW5lIFBBQ0JIUl9DVFJMX0JBU0VfSF9NQVNLCQkoMHhmZmZmZmZmZiA8PCBQQUNCSFJfQkFTRV9IX09GRlMpCgovKiBQQ0kgQWNjZXNzIENvbnRyb2wgU2l6ZSBSZWdpc3RlciAoUEFDU1IpIAkJKi8KI2RlZmluZSBQQUNTUl9XUk1CVVJTVF9PRkZTCQkJOCAvKiBXcml0ZSBNYXggQnVyc3QgKi8KI2RlZmluZSBQQUNTUl9XUk1CVVJTVF9NQVNLCQkJKDB4MyA8PCBQQUNTUl9XUk1CVVJTVF9PRkZTKQojZGVmaW5lIFBBQ1NSX1dSTUJVUlNUXzMyQllURQkJKDB4MCA8PCBQQUNTUl9XUk1CVVJTVF9PRkZTKQojZGVmaW5lIFBBQ1NSX1dSTUJVUlNUXzY0QllURQkJKDB4MSA8PCBQQUNTUl9XUk1CVVJTVF9PRkZTKQojZGVmaW5lIFBBQ1NSX1dSTUJVUlNUXzEyOEJZVEUJCSgweDIgPDwgUEFDU1JfV1JNQlVSU1RfT0ZGUykKCiNkZWZpbmUgUEFDU1JfUENJX09SREVSSU5HCQkJQklUMTEgLyogUENJIE9yZGVyaW5nIHJlcXVpcmVkICovCgojZGVmaW5lIFBBQ1NSX1NJWkVfT0ZGUwkJCQkxMgkvKiBQQ0kgYWNjZXNzIHdpbmRvdyBzaXplICovCiNkZWZpbmUgUEFDU1JfU0laRV9NQVNLCQkJCSgweGZmZmZmIDw8IFBBQ1NSX1NJWkVfT0ZGUykKI2RlZmluZSBQQUNTUl9TSVpFX0FMSUdOTUVOVAkJKDEgPDwgUEFDU1JfU0laRV9PRkZTKQojZGVmaW5lIFBBQ1NSX1NJWkVfQUxJR05fVVAoc2l6ZSkgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChzaXplK1BBQ1NSX1NJWkVfQUxJR05NRU5UKSZQQUNTUl9TSVpFX01BU0spCiNkZWZpbmUgUEFDU1JfU0laRV9BTElHTl9ET1dOKHNpemUpIChzaXplICYgUEFDU1JfU0laRV9NQVNLKQoKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qIFBDSSBDb25maWd1cmF0aW9uIEFjY2VzcyBSZWdpc3RlcnMgICovCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgojZGVmaW5lIFBDSV9DT05GSUdfQUREUl9SRUcocGNpSWYpCSgweDMwQzc4IC0gKChwY2lJZikgKiAweDgwKSApCiNkZWZpbmUgUENJX0NPTkZJR19EQVRBX1JFRyhwY2lJZikJKDB4MzBDN0MgLSAoKHBjaUlmKSAqIDB4ODApICkKI2RlZmluZSBQQ0lfSU5UX0FDS19SRUcocGNpSWYpCQkoMHgzMEMzNCArICgocGNpSWYpICogMHg4MCkgKQoKLyogUENJIENvbmZpZ3VyYXRpb24gQWRkcmVzcyBSZWdpc3RlciAoUENBUikgKi8KI2RlZmluZSBQQ0FSX1JFR19OVU1fT0ZGUwkJCTIKI2RlZmluZSBQQ0FSX1JFR19OVU1fTUFTSwkJCSgweDNGIDw8IFBDQVJfUkVHX05VTV9PRkZTKQoJCQojZGVmaW5lIFBDQVJfRlVOQ19OVU1fT0ZGUwkJCTgKI2RlZmluZSBQQ0FSX0ZVTkNfTlVNX01BU0sJCQkoMHg3IDw8IFBDQVJfRlVOQ19OVU1fT0ZGUykKCQkKI2RlZmluZSBQQ0FSX0RFVklDRV9OVU1fT0ZGUwkJMTEKI2RlZmluZSBQQ0FSX0RFVklDRV9OVU1fTUFTSwkJKDB4MUYgPDwgUENBUl9ERVZJQ0VfTlVNX09GRlMpCgkJCiNkZWZpbmUgUENBUl9CVVNfTlVNX09GRlMJCQkxNgojZGVmaW5lIFBDQVJfQlVTX05VTV9NQVNLCQkJKDB4RkYgPDwgUENBUl9CVVNfTlVNX09GRlMpCgkJCiNkZWZpbmUgUENBUl9DT05GSUdfRU4JCQkJQklUMzEKCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwovKiBQQ0kgQ29uZmlndXJhdGlvbiByZWdpc3RlcnMgKi8KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qIFBDSSBDb25maWd1cmF0aW9uLCBGdW5jdGlvbiAwLCBSZWdpc3RlcnMgICovCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgovKiBNYXJ2ZWxsIFNwZWNpZmljICovCiNkZWZpbmUgUENJX1NDUzBfQkFTRV9BRERSX0xPVwkJCSAgIAkJCTB4MDEwCiNkZWZpbmUgUENJX1NDUzBfQkFTRV9BRERSX0hJR0gJCQkgICAJCQkweDAxNAojZGVmaW5lIFBDSV9TQ1MxX0JBU0VfQUREUl9MT1cJCSAgCQkJCTB4MDE4CiNkZWZpbmUgUENJX1NDUzFfQkFTRV9BRERSX0hJR0gJCQkgIAkJCTB4MDFDCiNkZWZpbmUgUENJX0lOVEVSX1JFR19NRU1fTUFQUEVEX0JBU0VfQUREUl9MIAkJMHgwMjAKI2RlZmluZSBQQ0lfSU5URVJfUkVHX01FTV9NQVBQRURfQkFTRV9BRERSX0gJCTB4MDI0CgovKiBjYXBhYmlsaXR5IGxpc3QgKi8KI2RlZmluZSBQQ0lfUE9XRVJfTU5HX0NBUEFCSUxJVFkJCSAgICAgICAgICAgIDB4MDQwCiNkZWZpbmUgUENJX1BPV0VSX01OR19TVEFUVVNfQ09OVFJPTAkJICAgICAgICAweDA0NAojZGVmaW5lIFBDSV9WUERfQUREUkVTU19SRUcJICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDgKI2RlZmluZSBQQ0lfVlBEX0RBVEFfUkVHCSAgICAgICAgICAgICAgICAgICAgICAgIDB4MDRjCiNkZWZpbmUgUENJX01TSV9NRVNTQUdFX0NPTlRST0wJCQkJCQkweDA1MAojZGVmaW5lIFBDSV9NU0lfTUVTU0FHRV9BRERSCQkgICAgICAgICAgICAgICAgMHgwNTQKI2RlZmluZSBQQ0lfTVNJX01FU1NBR0VfVVBQRVJfQUREUgkJICAgICAgICAgICAgMHgwNTgKI2RlZmluZSBQQ0lfTVNJX01FU1NBR0VfREFUQQkJICAgICAgICAgICAgICAgIDB4MDVjCiNkZWZpbmUgUENJWF9DT01NQU5ECQkgICAgICAgICAgICAgICAgICAgICAgICAweDA2MAojZGVmaW5lIFBDSVhfU1RBVFVTCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjQKI2RlZmluZSBQQ0lfQ09NUEFDVF9QQ0lfSE9UX1NXQVAJCSAgICAgICAgICAgIDB4MDY4CgoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyogUENJIENvbmZpZ3VyYXRpb24sIEZ1bmN0aW9uIDEsIFJlZ2lzdGVycyAgKi8KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiNkZWZpbmUgUENJX1NDUzJfQkFTRV9BRERSX0xPVwkJCQkJCTB4MTAKI2RlZmluZSBQQ0lfU0NTMl9CQVNFX0FERFJfSElHSAkJCQkJCTB4MTQKI2RlZmluZSBQQ0lfU0NTM19CQVNFX0FERFJfTE9XCQkgCQkJCTB4MTgKI2RlZmluZSBQQ0lfU0NTM19CQVNFX0FERFJfSElHSAkJCQkJCTB4MWMKCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qICBQQ0kgQ29uZmlndXJhdGlvbiwgRnVuY3Rpb24gMiwgUmVnaXN0ZXJzICAgKi8KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKI2RlZmluZSBQQ0lfREVWQ1MwX0JBU0VfQUREUl9MT1cJCQkJCTB4MTAKI2RlZmluZSBQQ0lfREVWQ1MwX0JBU0VfQUREUl9ISUdICQkgCQkJMHgxNAojZGVmaW5lIFBDSV9ERVZDUzFfQkFTRV9BRERSX0xPVwkJIAkJCTB4MTgKI2RlZmluZSBQQ0lfREVWQ1MxX0JBU0VfQUREUl9ISUdICQkgICAgICAJCTB4MWMKI2RlZmluZSBQQ0lfREVWQ1MyX0JBU0VfQUREUl9MT1cJCSAJCQkweDIwCiNkZWZpbmUgUENJX0RFVkNTMl9CQVNFX0FERFJfSElHSAkJICAgICAgCQkweDI0CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qICBQQ0kgQ29uZmlndXJhdGlvbiwgRnVuY3Rpb24gMywgUmVnaXN0ZXJzICAgKi8KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKI2RlZmluZSBQQ0lfQk9PVENTX0JBU0VfQUREUl9MT1cJCQkJCTB4MTgKI2RlZmluZSBQQ0lfQk9PVENTX0JBU0VfQUREUl9ISUdICQkgICAgICAJCTB4MWMKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyogIFBDSSBDb25maWd1cmF0aW9uLCBGdW5jdGlvbiA0LCBSZWdpc3RlcnMgICAqLwovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgojZGVmaW5lIFBDSV9QMlBfTUVNMF9CQVNFX0FERFJfTE9XCQkJCSAgIAkweDEwCiNkZWZpbmUgUENJX1AyUF9NRU0wX0JBU0VfQUREUl9ISUdICQkgCQkJMHgxNAojZGVmaW5lIFBDSV9QMlBfSU9fQkFTRV9BRERSCQkgICAgICAgICAgICAgICAJMHgyMAojZGVmaW5lIFBDSV9JTlRFUl9SRUdTX0lPX01BUFBFRF9CQVNFX0FERFIJCSAgIDB4MjQKCi8qIFBDSVhfU1RBVFVTICByZWdpc3RlciBmaWVsZHMgKFBYUykgKi8KCiNkZWZpbmUgUFhTX0ZOX09GRlMJCTAJLyogRGVzY3JpcHRpb24gTnVtYmVyICovCiNkZWZpbmUgUFhTX0ZOX01BU0sJCSgweDcgPDwgUFhTX0ZOX09GRlMpCgojZGVmaW5lIFBYU19ETl9PRkZTCQkzCS8qIERldmljZSBOdW1iZXIgKi8KI2RlZmluZSBQWFNfRE5fTUFTSwkJKDB4MWYgPDwgUFhTX0ROX09GRlMpCgojZGVmaW5lIFBYU19CTl9PRkZTCQk4CS8qIEJ1cyBOdW1iZXIgKi8KI2RlZmluZSBQWFNfQk5fTUFTSwkJKDB4ZmYgPDwgUFhTX0JOX09GRlMpCgoKLyogUENJIEVycm9yIFJlcG9ydCBSZWdpc3RlciBNYXAgKi8KI2RlZmluZSBQQ0lfU0VSUk5fTUFTS19SRUcocGNpSWYpCQkoMHgzMGMyOCAgKyAocGNpSWYgKiAweDgwKSkKI2RlZmluZSBQQ0lfQ0FVU0VfUkVHKHBjaUlmKQkJCSgweDMxZDU4ICsgKHBjaUlmICogMHg4MCkpCiNkZWZpbmUgUENJX01BU0tfUkVHKHBjaUlmKQkJCQkoMHgzMWQ1QyArIChwY2lJZiAqIDB4ODApKQojZGVmaW5lIFBDSV9FUlJPUl9BRERSX0xPV19SRUcocGNpSWYpCSgweDMxZDQwICsgKHBjaUlmICogMHg4MCkpCiNkZWZpbmUgUENJX0VSUk9SX0FERFJfSElHSF9SRUcocGNpSWYpCSgweDMxZDQ0ICsgKHBjaUlmICogMHg4MCkpCiNkZWZpbmUgUENJX0VSUk9SX0FUVFJJQlVURV9SRUcocGNpSWYpCSgweDMxZDQ4ICsgKHBjaUlmICogMHg4MCkpCiNkZWZpbmUgUENJX0VSUk9SX0NPTU1BTkRfUkVHKHBjaUlmKQkoMHgzMWQ1MCArIChwY2lJZiAqIDB4ODApKQoKLyogUENJIEludGVycnVwdCBDYXVzZSBSZWdpc3RlciAoUElDUikgKi8KI2RlZmluZSBQSUNSX0VSUl9TRUxfT0ZGUyAgICAgICAgICAgMjcKI2RlZmluZSBQSUNSX0VSUl9TRUxfTUFTSyAgICAgICAgICAgKDB4MWYgPDwgUElDUl9FUlJfU0VMX09GRlMpCgovKiBQQ0kgRXJyb3IgQ29tbWFuZCBSZWdpc3RlciAoUEVDUikgKi8KI2RlZmluZSBQRUNSX0VSUl9DTURfT0ZGUwkJCTAKI2RlZmluZSBQRUNSX0VSUl9DTURfTUFTSwkJCSgweGYgPDwgUEVDUl9FUlJfQ01EX09GRlMpCiNkZWZpbmUgUEVDUl9EQUMJCQkJCUJJVDQKCgovKiBkZWZhdWx0cyAqLwovKiBTZXQgYml0cyBtZWFucyB2YWx1ZSBpcyBhYm91dCB0byBjaGFuZ2UgYWNjb3JkaW5nIHRvIG5ldyB2YWx1ZSAqLwojZGVmaW5lIFBDSV9DT01NQU5EX0RFRkFVTFRfTUFTSyAgICAgICAgICAgICAgICAweGZmZmZkZmYxCiNkZWZpbmUgUENJX0NPTU1BTkRfREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgKFBDUl9NQVNURVJfV1JfVFJJR19XSE9MRSAgIHwgICBcCiAgICAgICAgIFBDUl9NQVNURVJfUkRfVFJJR19XSE9MRSAgICAgICB8ICAgICAgIFwKICAgICAgICAgICAgICAgICBQQ1JfTUFTVEVSX01FTV9SRF9MSU5FX0VOICAgICAgfCAgICAgICBcCiAgICAgICAgIFBDUl9NQVNURVJfTUVNX1JEX01VTFRfRU4gIHwgICBcCiAgICAgICAgICAgICAgICAgUENSX05TX0FDQ09SRElOR19SQ1ZfVFJBTlMgICAgIHwgICAgICAgXAogICAgICAgICAgICAgICAgIFBDUl9NQVNURVJfUENJWF9SRVE2NE5fRU4gICAgICB8ICAgICAgIFwKICAgICAgICAgICAgICAgICBQQ1JfTUFTVEVSX0RBQ19FTiAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIFwKICAgICAgICAgICAgICAgICBQQ1JfTUFTVEVSX002NF9BTExJR04gICAgICAgICAgfCAgICAgICBcCiAgICAgICAgICAgICAgICAgUENSX0VSUk9SU19QUk9QQUdBVElPTl9FTikKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAKI2RlZmluZSBQQ0lfQVJCSVRFUl9DVFJMX0RFRkFVTFRfTUFTSyAgIDB4ODAxZmMwN2EKI2RlZmluZSBQQ0lfQVJCSVRFUl9DVFJMX0RFRkFVTFQgICAgICAgIFwKICAgICAgICAoUEFDUl9CUk9LRU5fVkFMX1BDSVhfTUlOIDw8IFBBQ1JfQlJPS0VOX1ZBTF9PRkZTKQoKCiNlbmRpZiAvKiAjaWZuZGVmIF9fSU5DUENJUkVHU0ggKi8KCg==