LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogc21jOTAwMC5oCiAqCiAqIENvcHlyaWdodCAoQykgMTk5OCBieSBEYW5pZWwgRW5nc3Ry9m0KICogQ29weXJpZ2h0IChDKSAxOTk2IGJ5IEVyaWsgU3RhaGxtYW4KICoKICogVGhpcyBzb2Z0d2FyZSBtYXkgYmUgdXNlZCBhbmQgZGlzdHJpYnV0ZWQgYWNjb3JkaW5nIHRvIHRoZSB0ZXJtcwogKiBvZiB0aGUgR05VIFB1YmxpYyBMaWNlbnNlLCBpbmNvcnBvcmF0ZWQgaGVyZWluIGJ5IHJlZmVyZW5jZS4KICoKICogVGhpcyBmaWxlIGNvbnRhaW5zIHJlZ2lzdGVyIGluZm9ybWF0aW9uIGFuZCBhY2Nlc3MgbWFjcm9zIGZvcgogKiB0aGUgU01DOTF4eHggY2hpcHNldC4KICoKICogSW5mb3JtYXRpb24gY29udGFpbmVkIGluIHRoaXMgZmlsZSB3YXMgb2J0YWluZWQgZnJvbSB0aGUgU01DOTFDOTQKICogbWFudWFsIGZyb20gU01DLiAgVG8gZ2V0IGEgY29weSwgaWYgeW91IHJlYWxseSB3YW50IG9uZSwgeW91IGNhbiBmaW5kCiAqIGluZm9ybWF0aW9uIHVuZGVyIHd3dy5zbXNjLmNvbSBpbiB0aGUgY29tcG9uZW50cyBkaXZpc2lvbi4KICogKCB0aGlzIHRoYW5rcyB0byBhZHZpY2UgZnJvbSBEb25hbGQgQmVja2VyICkuCiAqCiAqIEF1dGhvcnMKICogICAgICBEYW5pZWwgRW5nc3Ry9m0gICAgICAgICAgICAgICAgICAgICAgICAgPGRhbmllbC5lbmdzdHJvbUByaWtzbmV0dC5ubz4KICoJRXJpayBTdGFobG1hbgkJCQk8ZXJpa0B2dC5lZHU+CiAqCiAqIEhpc3RvcnkKICogOTYtMDEtMDYJCSBFcmlrIFN0YWhsbWFuICAgbW92ZWQgZGVmaW5pdGlvbnMgaGVyZSBmcm9tIG1haW4gLmMKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlCiAqIDk2LTAxLTE5CQkgRXJpayBTdGFobG1hbgkgcG9saXNoZWQgdGhpcyB1cCBzb21lLCBhbmQgYWRkZWQKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZXR0ZXIgZXJyb3IgaGFuZGxpbmcKICogOTgtMDktMjUgICAgICAgICAgICAgIERhbmllbCBFbmdzdHL2bSBhZGp1c3RlZCBmb3IgRXRoZXJib290CiAqIDk4LTA5LTI3ICAgICAgICAgICAgICBEYW5pZWwgRW5nc3Ry9m0gbW92ZWQgc29tZSBzdGF0aWMgc3RyaW5ncyBiYWNrIHRvIHRoZQogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1haW4gLmMgZmlsZQogKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpGSUxFX0xJQ0VOQ0UgKCBHUExfQU5ZICk7CgojaWZuZGVmCV9TTUM5MDAwX0hfCiMgZGVmaW5lIF9TTUM5MDAwX0hfCgovKiBJIHdhbnQgc29tZSBzaW1wbGUgdHlwZXMgKi8KdHlwZWRlZiB1bnNpZ25lZCBjaGFyCQkJYnl0ZTsKdHlwZWRlZiB1bnNpZ25lZCBzaG9ydAkJCXdvcmQ7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBpbnQJCWR3b3JkOwoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICoKICogQSBkZXNjcmlwdGlvbiBvZiB0aGUgU01DIHJlZ2lzdGVycyBpcyBwcm9iYWJseSBpbiBvcmRlciBoZXJlLAogKiBhbHRob3VnaCBmb3IgZGV0YWlscywgdGhlIFNNQyBkYXRhc2hlZXQgaXMgaW52YWx1YWJsZS4KICoKICogQmFzaWNhbGx5LCB0aGUgY2hpcCBoYXMgNCBiYW5rcyBvZiByZWdpc3RlcnMgKCAwIHRvIDMgKSwgd2hpY2gKICogYXJlIGFjY2Vzc2VkIGJ5IHdyaXRpbmcgYSBudW1iZXIgaW50byB0aGUgQkFOS19TRUxFQ1QgcmVnaXN0ZXIKICogKCBJIGFsc28gdXNlIGEgU01DX1NFTEVDVF9CQU5LIG1hY3JvIGZvciB0aGlzICkuCiAqCiAqIFRoZSBiYW5rcyBhcmUgY29uZmlndXJlZCBzbyB0aGF0IGZvciBtb3N0IHB1cnBvc2VzLCBiYW5rIDIgaXMgYWxsCiAqIHRoYXQgaXMgbmVlZGVkIGZvciBzaW1wbGUgcnVuIHRpbWUgdGFza3MuCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLyoKICogQmFuayBTZWxlY3QgUmVnaXN0ZXI6CiAqCiAqCQl5eXl5IHl5eXkgMDAwMCAwMHh4CiAqCQl4eAkJPSBiYW5rIG51bWJlcgogKgkJeXl5eSB5eXl5CT0gMHgzMywgZm9yIGlkZW50aWZpY2F0aW9uIHB1cnBvc2VzLgogKi8KI2RlZmluZQlCQU5LX1NFTEVDVAkJMTQKCi8qIEJBTksgMCAgKi8KCiNkZWZpbmUJVENSCQkwCS8qIHRyYW5zbWl0IGNvbnRyb2wgcmVnaXN0ZXIgKi8KI2RlZmluZSBUQ1JfRU5BQkxFCTB4MDAwMQkvKiBpZiB0aGlzIGlzIDEsIHdlIGNhbiB0cmFuc21pdCAqLwojZGVmaW5lIFRDUl9GRFVQTFgJMHgwODAwCS8qIHJlY2VpdmUgcGFja2V0cyBzZW50IG91dCAqLwojZGVmaW5lIFRDUl9TVFBfU1FFVAkweDEwMDAJLyogc3RvcCB0cmFuc21pdHRpbmcgaWYgU2lnbmFsIHF1YWxpdHkgZXJyb3IgKi8KI2RlZmluZQlUQ1JfTU9OX0NOUwkweDA0MDAJLyogbW9uaXRvcnMgdGhlIGNhcnJpZXIgc3RhdHVzICovCiNkZWZpbmUJVENSX1BBRF9FTkFCTEUJMHgwMDgwCS8qIHBhZHMgc2hvcnQgcGFja2V0cyB0byA2NCBieXRlcyAqLwoKI2RlZmluZQlUQ1JfQ0xFQVIJMAkvKiBkbyBOT1RISU5HICovCi8qIHRoZSBub3JtYWwgc2V0dGluZ3MgZm9yIHRoZSBUQ1IgcmVnaXN0ZXIgOiAqLwojZGVmaW5lCVRDUl9OT1JNQUwJKFRDUl9FTkFCTEUgfCBUQ1JfUEFEX0VOQUJMRSkKCgojZGVmaW5lIEVQSF9TVEFUVVMJMgojZGVmaW5lIEVTX0xJTktfT0sJMHg0MDAwCS8qIGlzIHRoZSBsaW5rIGludGVncml0eSBvayA/ICovCgojZGVmaW5lCVJDUgkJNAojZGVmaW5lIFJDUl9TT0ZUUkVTRVQJMHg4MDAwCS8qIHJlc2V0cyB0aGUgY2hpcCAqLwojZGVmaW5lCVJDUl9TVFJJUF9DUkMJMHgyMDAJLyogc3RyaXBzIENSQyAqLwojZGVmaW5lIFJDUl9FTkFCTEUJMHgxMDAJLyogSUZGIHRoaXMgaXMgc2V0LCB3ZSBjYW4gcmVjZWl2ZSBwYWNrZXRzICovCiNkZWZpbmUgUkNSX0FMTVVMCTB4NAkvKiByZWNlaXZlIGFsbCBtdWx0aWNhc3QgcGFja2V0cyAqLwojZGVmaW5lCVJDUl9QUk9NSVNDCTB4MgkvKiBlbmFibGUgcHJvbWlzY3VvdXMgbW9kZSAqLwoKLyogdGhlIG5vcm1hbCBzZXR0aW5ncyBmb3IgdGhlIFJDUiByZWdpc3RlciA6ICovCiNkZWZpbmUJUkNSX05PUk1BTAkoUkNSX1NUUklQX0NSQyB8IFJDUl9FTkFCTEUpCiNkZWZpbmUgUkNSX0NMRUFSCTB4MAkJLyogc2V0IGl0IHRvIGEgYmFzZSBzdGF0ZSAqLwoKI2RlZmluZQlDT1VOVEVSCQk2CiNkZWZpbmUJTUlSCQk4CiNkZWZpbmUJTUNSCQkxMAovKiAxMiBpcyByZXNlcnZlZCAqLwoKLy8gUmVjZWl2ZS9QaHkgQ29udHJvbCBSZWdpc3RlcgovKiBCQU5LIDAgICovCiNkZWZpbmUgUlBDX1JFRyAgICAgICAgIDB4MDAwQQojZGVmaW5lIFJQQ19TUEVFRCAgICAgICAweDIwMDAgIC8vIFdoZW4gMSBQSFkgaXMgaW4gMTAwTWJwcyBtb2RlLgojZGVmaW5lIFJQQ19EUExYICAgICAgICAweDEwMDAgIC8vIFdoZW4gMSBQSFkgaXMgaW4gRnVsbC1EdXBsZXggTW9kZQojZGVmaW5lIFJQQ19BTkVHICAgICAgICAweDA4MDAgIC8vIFdoZW4gMSBQSFkgaXMgaW4gQXV0by1OZWdvdGlhdGUgTW9kZQojZGVmaW5lIFJQQ19MU1hBX1NIRlQgICA1ICAgICAgIC8vIEJpdHMgdG8gc2hpZnQgTFMyQSxMUzFBLExTMEEgdG8gbHNiCiNkZWZpbmUgUlBDX0xTWEJfU0hGVCAgIDIgICAgICAgLy8gQml0cyB0byBnZXQgTFMyQixMUzFCLExTMEIgdG8gbHNiCiNkZWZpbmUgUlBDX0xFRF8xMDBfMTAgICgweDAwKSAgLy8gTEVEID0gMTAwTWJwcyBPUidzIHdpdGggMTBNYnBzIGxpbmsgZGV0ZWN0CiNkZWZpbmUgUlBDX0xFRF9SRVMgICAgICgweDAxKSAgLy8gTEVEID0gUmVzZXJ2ZWQKI2RlZmluZSBSUENfTEVEXzEwICAgICAgKDB4MDIpICAvLyBMRUQgPSAxME1icHMgbGluayBkZXRlY3QKI2RlZmluZSBSUENfTEVEX0ZEICAgICAgKDB4MDMpICAvLyBMRUQgPSBGdWxsIER1cGxleCBNb2RlCiNkZWZpbmUgUlBDX0xFRF9UWF9SWCAgICgweDA0KSAgLy8gTEVEID0gVFggb3IgUlggcGFja2V0IG9jY3VycmVkCiNkZWZpbmUgUlBDX0xFRF8xMDAgICAgICgweDA1KSAgLy8gTEVEID0gMTAwTWJwcyBsaW5rIGRlY3RlY3QKI2RlZmluZSBSUENfTEVEX1RYICAgICAgKDB4MDYpICAvLyBMRUQgPSBUWCBwYWNrZXQgb2NjdXJyZWQKI2RlZmluZSBSUENfTEVEX1JYICAgICAgKDB4MDcpICAvLyBMRUQgPSBSWCBwYWNrZXQgb2NjdXJyZWQKI2RlZmluZSBSUENfREVGQVVMVCAoUlBDX0FORUcgfCAoUlBDX0xFRF8xMDAgPDwgUlBDX0xTWEFfU0hGVCkgfCAoUlBDX0xFRF9GRCA8PCBSUENfTFNYQl9TSEZUKSB8IFJQQ19TUEVFRCB8IFJQQ19EUExYKQoKLy8gUmVjZWl2ZS9QaHkgQ29udHJvbCBSZWdpc3RlcgovKiBCQU5LIDAgICovCiNkZWZpbmUgUlBDX1JFRyAgICAgICAgIDB4MDAwQQojZGVmaW5lIFJQQ19TUEVFRCAgICAgICAweDIwMDAgIC8vIFdoZW4gMSBQSFkgaXMgaW4gMTAwTWJwcyBtb2RlLgojZGVmaW5lIFJQQ19EUExYICAgICAgICAweDEwMDAgIC8vIFdoZW4gMSBQSFkgaXMgaW4gRnVsbC1EdXBsZXggTW9kZQojZGVmaW5lIFJQQ19BTkVHICAgICAgICAweDA4MDAgIC8vIFdoZW4gMSBQSFkgaXMgaW4gQXV0by1OZWdvdGlhdGUgTW9kZQojZGVmaW5lIFJQQ19MU1hBX1NIRlQgICA1ICAgICAgIC8vIEJpdHMgdG8gc2hpZnQgTFMyQSxMUzFBLExTMEEgdG8gbHNiCiNkZWZpbmUgUlBDX0xTWEJfU0hGVCAgIDIgICAgICAgLy8gQml0cyB0byBnZXQgTFMyQixMUzFCLExTMEIgdG8gbHNiCiNkZWZpbmUgUlBDX0xFRF8xMDBfMTAgICgweDAwKSAgLy8gTEVEID0gMTAwTWJwcyBPUidzIHdpdGggMTBNYnBzIGxpbmsgZGV0ZWN0CiNkZWZpbmUgUlBDX0xFRF9SRVMgICAgICgweDAxKSAgLy8gTEVEID0gUmVzZXJ2ZWQKI2RlZmluZSBSUENfTEVEXzEwICAgICAgKDB4MDIpICAvLyBMRUQgPSAxME1icHMgbGluayBkZXRlY3QKI2RlZmluZSBSUENfTEVEX0ZEICAgICAgKDB4MDMpICAvLyBMRUQgPSBGdWxsIER1cGxleCBNb2RlCiNkZWZpbmUgUlBDX0xFRF9UWF9SWCAgICgweDA0KSAgLy8gTEVEID0gVFggb3IgUlggcGFja2V0IG9jY3VycmVkCiNkZWZpbmUgUlBDX0xFRF8xMDAgICAgICgweDA1KSAgLy8gTEVEID0gMTAwTWJwcyBsaW5rIGRlY3RlY3QKI2RlZmluZSBSUENfTEVEX1RYICAgICAgKDB4MDYpICAvLyBMRUQgPSBUWCBwYWNrZXQgb2NjdXJyZWQKI2RlZmluZSBSUENfTEVEX1JYICAgICAgKDB4MDcpICAvLyBMRUQgPSBSWCBwYWNrZXQgb2NjdXJyZWQKI2RlZmluZSBSUENfREVGQVVMVCAoUlBDX0FORUcgfCAoUlBDX0xFRF8xMDAgPDwgUlBDX0xTWEFfU0hGVCkgfCAoUlBDX0xFRF9GRCA8PCBSUENfTFNYQl9TSEZUKSB8IFJQQ19TUEVFRCB8IFJQQ19EUExYKQoKLyogQkFOSyAxICovCiNkZWZpbmUgQ09ORklHCQkJMAojZGVmaW5lIENGR19BVUlfU0VMRUNUCQkweDEwMAojZGVmaW5lCUJBU0UJCQkyCiNkZWZpbmUJQUREUjAJCQk0CiNkZWZpbmUJQUREUjEJCQk2CiNkZWZpbmUJQUREUjIJCQk4CiNkZWZpbmUJR0VORVJBTAkJCTEwCiNkZWZpbmUJQ09OVFJPTAkJCTEyCiNkZWZpbmUJQ1RMX1BPV0VSRE9XTgkJMHgyMDAwCiNkZWZpbmUJQ1RMX0xFX0VOQUJMRQkJMHg4MAojZGVmaW5lCUNUTF9DUl9FTkFCTEUJCTB4NDAKI2RlZmluZQlDVExfVEVfRU5BQkxFCQkweDAwMjAKI2RlZmluZSBDVExfQVVUT19SRUxFQVNFCTB4MDgwMAojZGVmaW5lCUNUTF9FUFJPTV9BQ0NFU1MJMHgwMDAzIC8qIGhpZ2ggaWYgRXByb20gaXMgYmVpbmcgcmVhZCAqLwoKLyogQkFOSyAyICovCiNkZWZpbmUgTU1VX0NNRAkJMAojZGVmaW5lIE1DX0JVU1kJCTEJLyogb25seSByZWFkYWJsZSBiaXQgaW4gdGhlIHJlZ2lzdGVyICovCiNkZWZpbmUgTUNfTk9QCQkwCiNkZWZpbmUJTUNfQUxMT0MJMHgyMAkvKiBvciB3aXRoIG51bWJlciBvZiAyNTYgYnl0ZSBwYWNrZXRzICovCiNkZWZpbmUJTUNfUkVTRVQJMHg0MAojZGVmaW5lCU1DX1JFTU9WRQkweDYwCS8qIHJlbW92ZSB0aGUgY3VycmVudCByeCBwYWNrZXQgKi8KI2RlZmluZSBNQ19SRUxFQVNFCTB4ODAJLyogcmVtb3ZlIGFuZCByZWxlYXNlIHRoZSBjdXJyZW50IHJ4IHBhY2tldCAqLwojZGVmaW5lIE1DX0ZSRUVQS1QJMHhBMAkvKiBSZWxlYXNlIHBhY2tldCBpbiBQTlIgcmVnaXN0ZXIgKi8KI2RlZmluZSBNQ19FTlFVRVVFCTB4QzAJLyogRW5xdWV1ZSB0aGUgcGFja2V0IGZvciB0cmFuc21pdCAqLwoKI2RlZmluZQlQTlJfQVJSCQkyCiNkZWZpbmUgRklGT19QT1JUUwk0CgojZGVmaW5lIEZQX1JYRU1QVFkJMHg4MDAwCiNkZWZpbmUgRlBfVFhFTVBUWQkweDgwCgojZGVmaW5lCVBPSU5URVIJCTYKI2RlZmluZSBQVFJfUkVBRAkweDIwMDAKI2RlZmluZQlQVFJfUkNWCQkweDgwMDAKI2RlZmluZQlQVFJfQVVUT0lOQwkweDQwMDAKI2RlZmluZSBQVFJfQVVUT19JTkMJMHgwMDQwCgojZGVmaW5lCURBVEFfMQkJOAojZGVmaW5lCURBVEFfMgkJMTAKI2RlZmluZQlJTlRFUlJVUFQJMTIKCiNkZWZpbmUgSU5UX01BU0sJMTMKI2RlZmluZSBJTV9SQ1ZfSU5UCTB4MQojZGVmaW5lCUlNX1RYX0lOVAkweDIKI2RlZmluZQlJTV9UWF9FTVBUWV9JTlQJMHg0CiNkZWZpbmUJSU1fQUxMT0NfSU5UCTB4OAojZGVmaW5lCUlNX1JYX09WUk5fSU5UCTB4MTAKI2RlZmluZQlJTV9FUEhfSU5UCTB4MjAKI2RlZmluZQlJTV9FUkNWX0lOVAkweDQwIC8qIG5vdCBvbiBTTUM5MTkyICovCgovKiBCQU5LIDMgKi8KI2RlZmluZQlNVUxUSUNBU1QxCTAKI2RlZmluZQlNVUxUSUNBU1QyCTIKI2RlZmluZQlNVUxUSUNBU1QzCTQKI2RlZmluZQlNVUxUSUNBU1Q0CTYKI2RlZmluZQlNR01UCQk4CiNkZWZpbmUJUkVWSVNJT04JMTAgLyogKCBoaTogY2hpcCBpZCAgIGxvdzogcmV2ICMgKSAqLwoKLy8gTWFuYWdlbWVudCBJbnRlcmZhY2UgUmVnaXN0ZXIgKE1JSSkKI2RlZmluZSBNSUlfUkVHICAgICAgICAgMHgwMDA4CiNkZWZpbmUgTUlJX01TS19DUlMxMDAgIDB4NDAwMCAvLyBEaXNhYmxlcyBDUlMxMDAgZGV0ZWN0aW9uIGR1cmluZyB0eCBoYWxmIGR1cAojZGVmaW5lIE1JSV9NRE9FICAgICAgICAweDAwMDggLy8gTUlJIE91dHB1dCBFbmFibGUKI2RlZmluZSBNSUlfTUNMSyAgICAgICAgMHgwMDA0IC8vIE1JSSBDbG9jaywgcGluIE1EQ0xLCiNkZWZpbmUgTUlJX01ESSAgICAgICAgIDB4MDAwMiAvLyBNSUkgSW5wdXQsIHBpbiBNREkKI2RlZmluZSBNSUlfTURPICAgICAgICAgMHgwMDAxIC8vIE1JSSBPdXRwdXQsIHBpbiBNRE8KCi8qIHRoaXMgaXMgTk9UIG9uIFNNQzkxOTIgKi8KI2RlZmluZQlFUkNWCQkxMgoKLyogTm90ZSB0aGF0IDkxOTQgYW5kIDkxOTYgaGF2ZSB0aGUgc21hbWUgY2hpcCBpZCwKICogdGhlIDkxOTYgd2lsbCBoYXZlIHJldmlzaW9ucyBzdGFydGluZyBhdCA2ICovCiNkZWZpbmUgQ0hJUF85MTkwCTMKI2RlZmluZSBDSElQXzkxOTQJNAojZGVmaW5lIENISVBfOTE5NQk1CiNkZWZpbmUgQ0hJUF85MTk2CTQKI2RlZmluZSBDSElQXzkxMTAwCTcKI2RlZmluZSBDSElQXzkxMTAwRkQJOAoKI2RlZmluZSBSRVZfOTE5Ngk2CgovKgogKiBUcmFuc21pdCBzdGF0dXMgYml0cwogKi8KI2RlZmluZSBUU19TVUNDRVNTCTB4MDAwMQojZGVmaW5lIFRTX0xPU1RDQVIJMHgwNDAwCiNkZWZpbmUgVFNfTEFUQ09MCTB4MDIwMAojZGVmaW5lIFRTXzE2Q09MCTB4MDAxMAoKLyoKICogUmVjZWl2ZSBzdGF0dXMgYml0cwogKi8KI2RlZmluZSBSU19BTEdORVJSCTB4ODAwMAojZGVmaW5lIFJTX0JBRENSQwkweDIwMDAKI2RlZmluZSBSU19PRERGUkFNRQkweDEwMDAKI2RlZmluZSBSU19UT09MT05HCTB4MDgwMAojZGVmaW5lIFJTX1RPT1NIT1JUCTB4MDQwMAojZGVmaW5lIFJTX01VTFRJQ0FTVAkweDAwMDEKI2RlZmluZSBSU19FUlJPUlMJKFJTX0FMR05FUlIgfCBSU19CQURDUkMgfCBSU19UT09MT05HIHwgUlNfVE9PU0hPUlQpCgovLyBQSFkgUmVnaXN0ZXIgQWRkcmVzc2VzIChMQU45MUMxMTEgSW50ZXJuYWwgUEhZKQoKLy8gUEhZIENvbnRyb2wgUmVnaXN0ZXIKI2RlZmluZSBQSFlfQ05UTF9SRUcgICAgICAgICAgICAweDAwCiNkZWZpbmUgUEhZX0NOVExfUlNUICAgICAgICAgICAgMHg4MDAwICAvLyAxPVBIWSBSZXNldAojZGVmaW5lIFBIWV9DTlRMX0xQQksgICAgICAgICAgIDB4NDAwMCAgLy8gMT1QSFkgTG9vcGJhY2sKI2RlZmluZSBQSFlfQ05UTF9TUEVFRCAgICAgICAgICAweDIwMDAgIC8vIDE9MTAwTWJwcywgMD0xME1wYnMKI2RlZmluZSBQSFlfQ05UTF9BTkVHX0VOICAgICAgICAweDEwMDAgLy8gMT1FbmFibGUgQXV0byBuZWdvdGlhdGlvbgojZGVmaW5lIFBIWV9DTlRMX1BETiAgICAgICAgICAgIDB4MDgwMCAgLy8gMT1QSFkgUG93ZXIgRG93biBtb2RlCiNkZWZpbmUgUEhZX0NOVExfTUlJX0RJUyAgICAgICAgMHgwNDAwICAvLyAxPU1JSSA0IGJpdCBpbnRlcmZhY2UgZGlzYWJsZWQKI2RlZmluZSBQSFlfQ05UTF9BTkVHX1JTVCAgICAgICAweDAyMDAgLy8gMT1SZXNldCBBdXRvIG5lZ290aWF0ZQojZGVmaW5lIFBIWV9DTlRMX0RQTFggICAgICAgICAgIDB4MDEwMCAgLy8gMT1GdWxsIER1cGxleCwgMD1IYWxmIER1cGxleAojZGVmaW5lIFBIWV9DTlRMX0NPTFRTVCAgICAgICAgIDB4MDA4MCAgLy8gMT0gTUlJIENvbGlzaW9uIFRlc3QKCi8vIFBIWSBTdGF0dXMgUmVnaXN0ZXIKI2RlZmluZSBQSFlfU1RBVF9SRUcgICAgICAgICAgICAweDAxCiNkZWZpbmUgUEhZX1NUQVRfQ0FQX1Q0ICAgICAgICAgMHg4MDAwICAvLyAxPTEwMEJhc2UtVDQgY2FwYWJsZQojZGVmaW5lIFBIWV9TVEFUX0NBUF9UWEYgICAgICAgIDB4NDAwMCAgLy8gMT0xMDBCYXNlLVggZnVsbCBkdXBsZXggY2FwYWJsZQojZGVmaW5lIFBIWV9TVEFUX0NBUF9UWEggICAgICAgIDB4MjAwMCAgLy8gMT0xMDBCYXNlLVggaGFsZiBkdXBsZXggY2FwYWJsZQojZGVmaW5lIFBIWV9TVEFUX0NBUF9URiAgICAgICAgIDB4MTAwMCAgLy8gMT0xME1icHMgZnVsbCBkdXBsZXggY2FwYWJsZQojZGVmaW5lIFBIWV9TVEFUX0NBUF9USCAgICAgICAgIDB4MDgwMCAgLy8gMT0xME1icHMgaGFsZiBkdXBsZXggY2FwYWJsZQojZGVmaW5lIFBIWV9TVEFUX0NBUF9TVVBSICAgICAgIDB4MDA0MCAgLy8gMT1yZWN2IG1nbXQgZnJhbWVzIHdpdGggbm90IHByZWFtYmxlCiNkZWZpbmUgUEhZX1NUQVRfQU5FR19BQ0sgICAgICAgMHgwMDIwICAvLyAxPUFORUcgaGFzIGNvbXBsZXRlZAojZGVmaW5lIFBIWV9TVEFUX1JFTV9GTFQgICAgICAgIDB4MDAxMCAgLy8gMT1SZW1vdGUgRmF1bHQgZGV0ZWN0ZWQKI2RlZmluZSBQSFlfU1RBVF9DQVBfQU5FRyAgICAgICAweDAwMDggIC8vIDE9QXV0byBuZWdvdGlhdGUgY2FwYWJsZQojZGVmaW5lIFBIWV9TVEFUX0xJTksgICAgICAgICAgIDB4MDAwNCAgLy8gMT12YWxpZCBsaW5rCiNkZWZpbmUgUEhZX1NUQVRfSkFCICAgICAgICAgICAgMHgwMDAyICAvLyAxPTEwTWJwcyBqYWJiZXIgY29uZGl0aW9uCiNkZWZpbmUgUEhZX1NUQVRfRVhSRUcgICAgICAgICAgMHgwMDAxICAvLyAxPWV4dGVuZGVkIHJlZ2lzdGVycyBpbXBsZW1lbnRlZAoKLy8gUEhZIElkZW50aWZpZXIgUmVnaXN0ZXJzCiNkZWZpbmUgUEhZX0lEMV9SRUcgICAgICAgICAgICAgMHgwMiAgICAvLyBQSFkgSWRlbnRpZmllciAxCiNkZWZpbmUgUEhZX0lEMl9SRUcgICAgICAgICAgICAgMHgwMyAgICAvLyBQSFkgSWRlbnRpZmllciAyCgovLyBQSFkgQXV0by1OZWdvdGlhdGlvbiBBZHZlcnRpc2VtZW50IFJlZ2lzdGVyCiNkZWZpbmUgUEhZX0FEX1JFRyAgICAgICAgICAgICAgMHgwNAojZGVmaW5lIFBIWV9BRF9OUCAgICAgICAgICAgICAgIDB4ODAwMCAgLy8gMT1QSFkgcmVxdWVzdHMgZXhjaGFuZ2Ugb2YgTmV4dCBQYWdlCiNkZWZpbmUgUEhZX0FEX0FDSyAgICAgICAgICAgICAgMHg0MDAwICAvLyAxPWdvdCBsaW5rIGNvZGUgd29yZCBmcm9tIHJlbW90ZQojZGVmaW5lIFBIWV9BRF9SRiAgICAgICAgICAgICAgIDB4MjAwMCAgLy8gMT1hZHZlcnRpc2UgcmVtb3RlIGZhdWx0CiNkZWZpbmUgUEhZX0FEX1Q0ICAgICAgICAgICAgICAgMHgwMjAwICAvLyAxPVBIWSBpcyBjYXBhYmxlIG9mIDEwMEJhc2UtVDQKI2RlZmluZSBQSFlfQURfVFhfRkRYICAgICAgICAgICAweDAxMDAgIC8vIDE9UEhZIGlzIGNhcGFibGUgb2YgMTAwQmFzZS1UWCBGRFBMWAojZGVmaW5lIFBIWV9BRF9UWF9IRFggICAgICAgICAgIDB4MDA4MCAgLy8gMT1QSFkgaXMgY2FwYWJsZSBvZiAxMDBCYXNlLVRYIEhEUExYCiNkZWZpbmUgUEhZX0FEXzEwX0ZEWCAgICAgICAgICAgMHgwMDQwICAvLyAxPVBIWSBpcyBjYXBhYmxlIG9mIDEwQmFzZS1UIEZEUExYCiNkZWZpbmUgUEhZX0FEXzEwX0hEWCAgICAgICAgICAgMHgwMDIwICAvLyAxPVBIWSBpcyBjYXBhYmxlIG9mIDEwQmFzZS1UIEhEUExYCiNkZWZpbmUgUEhZX0FEX0NTTUEgICAgICAgICAgICAgMHgwMDAxICAvLyAxPVBIWSBpcyBjYXBhYmxlIG9mIDgwMi4zIENNU0EKCi8vIFBIWSBBdXRvLW5lZ290aWF0aW9uIFJlbW90ZSBFbmQgQ2FwYWJpbGl0eSBSZWdpc3RlcgojZGVmaW5lIFBIWV9STVRfUkVHICAgICAgICAgICAgIDB4MDUKLy8gVXNlcyBzYW1lIGJpdCBkZWZpbml0aW9ucyBhcyBQSFlfQURfUkVHCgovLyBQSFkgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAxCiNkZWZpbmUgUEhZX0NGRzFfUkVHICAgICAgICAgICAgMHgxMAojZGVmaW5lIFBIWV9DRkcxX0xOS0RJUyAgICAgICAgIDB4ODAwMCAgLy8gMT1SeCBMaW5rIERldGVjdCBGdW5jdGlvbiBkaXNhYmxlZAojZGVmaW5lIFBIWV9DRkcxX1hNVERJUyAgICAgICAgIDB4NDAwMCAgLy8gMT1UUCBUcmFuc21pdHRlciBEaXNhYmxlZAojZGVmaW5lIFBIWV9DRkcxX1hNVFBETiAgICAgICAgIDB4MjAwMCAgLy8gMT1UUCBUcmFuc21pdHRlciBQb3dlcmVkIERvd24KI2RlZmluZSBQSFlfQ0ZHMV9CWVBTQ1IgICAgICAgICAweDA0MDAgIC8vIDE9QnlwYXNzIHNjcmFtYmxlci9kZXNjcmFtYmxlcgojZGVmaW5lIFBIWV9DRkcxX1VOU0NEUyAgICAgICAgIDB4MDIwMCAgLy8gMT1VbnNjcmFtYmxlIElkbGUgUmVjZXB0aW9uIERpc2FibGUKI2RlZmluZSBQSFlfQ0ZHMV9FUUxaUiAgICAgICAgICAweDAxMDAgIC8vIDE9UnggRXF1YWxpemVyIERpc2FibGVkCiNkZWZpbmUgUEhZX0NGRzFfQ0FCTEUgICAgICAgICAgMHgwMDgwICAvLyAxPVNUUCgxNTBvaG0pLCAwPVVUUCgxMDBvaG0pCiNkZWZpbmUgUEhZX0NGRzFfUkxWTDAgICAgICAgICAgMHgwMDQwICAvLyAxPVJ4IFNxdWVsY2ggbGV2ZWwgcmVkdWNlZCBieSA0LjVkYgojZGVmaW5lIFBIWV9DRkcxX1RMVkxfU0hJRlQgICAgIDIgICAgICAgLy8gVHJhbnNtaXQgT3V0cHV0IExldmVsIEFkanVzdAojZGVmaW5lIFBIWV9DRkcxX1RMVkxfTUFTSyAgICAgIDB4MDAzQwojZGVmaW5lIFBIWV9DRkcxX1RSRl9NQVNLICAgICAgIDB4MDAwMyAgLy8gVHJhbnNtaXR0ZXIgUmlzZS9GYWxsIHRpbWUKCgovLyBQSFkgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAyCiNkZWZpbmUgUEhZX0NGRzJfUkVHICAgICAgICAgICAgMHgxMQojZGVmaW5lIFBIWV9DRkcyX0FQT0xESVMgICAgICAgIDB4MDAyMCAgLy8gMT1BdXRvIFBvbGFyaXR5IENvcnJlY3Rpb24gZGlzYWJsZWQKI2RlZmluZSBQSFlfQ0ZHMl9KQUJESVMgICAgICAgICAweDAwMTAgIC8vIDE9SmFiYmVyIGRpc2FibGVkCiNkZWZpbmUgUEhZX0NGRzJfTVJFRyAgICAgICAgICAgMHgwMDA4ICAvLyAxPU11bHRpcGxlIHJlZ2lzdGVyIGFjY2VzcyAoTUlJIG1ndCkKI2RlZmluZSBQSFlfQ0ZHMl9JTlRNRElPICAgICAgICAweDAwMDQgIC8vIDE9SW50ZXJydXB0IHNpZ25hbGVkIHdpdGggTURJTyBwdWxzZW8KCi8vIFBIWSBTdGF0dXMgT3V0cHV0IChhbmQgSW50ZXJydXB0IHN0YXR1cykgUmVnaXN0ZXIKI2RlZmluZSBQSFlfSU5UX1JFRyAgICAgICAgICAgICAweDEyICAgIC8vIFN0YXR1cyBPdXRwdXQgKEludGVycnVwdCBTdGF0dXMpCiNkZWZpbmUgUEhZX0lOVF9JTlQgICAgICAgICAgICAgMHg4MDAwICAvLyAxPWJpdHMgaGF2ZSBjaGFuZ2VkIHNpbmNlIGxhc3QgcmVhZAojZGVmaW5lIFBIWV9JTlRfTE5LRkFJTCAgICAgICAgIDB4NDAwMCAgLy8gMT1MaW5rIE5vdCBkZXRlY3RlZAojZGVmaW5lIFBIWV9JTlRfTE9TU1NZTkMgICAgICAgIDB4MjAwMCAgLy8gMT1EZXNjcmFtYmxlciBoYXMgbG9zdCBzeW5jCiNkZWZpbmUgUEhZX0lOVF9DV1JEICAgICAgICAgICAgMHgxMDAwICAvLyAxPUludmFsaWQgNEI1QiBjb2RlIGRldGVjdGVkIG9uIHJ4CiNkZWZpbmUgUEhZX0lOVF9TU0QgICAgICAgICAgICAgMHgwODAwICAvLyAxPU5vIFN0YXJ0IE9mIFN0cmVhbSBkZXRlY3RlZCBvbiByeAojZGVmaW5lIFBIWV9JTlRfRVNEICAgICAgICAgICAgIDB4MDQwMCAgLy8gMT1ObyBFbmQgT2YgU3RyZWFtIGRldGVjdGVkIG9uIHJ4CiNkZWZpbmUgUEhZX0lOVF9SUE9MICAgICAgICAgICAgMHgwMjAwICAvLyAxPVJldmVyc2UgUG9sYXJpdHkgZGV0ZWN0ZWQKI2RlZmluZSBQSFlfSU5UX0pBQiAgICAgICAgICAgICAweDAxMDAgIC8vIDE9SmFiYmVyIGRldGVjdGVkCiNkZWZpbmUgUEhZX0lOVF9TUERERVQgICAgICAgICAgMHgwMDgwICAvLyAxPTEwMEJhc2UtVFggbW9kZSwgMD0xMEJhc2UtVCBtb2RlCiNkZWZpbmUgUEhZX0lOVF9EUExYREVUICAgICAgICAgMHgwMDQwICAvLyAxPURldmljZSBpbiBGdWxsIER1cGxleAoKLy8gUEhZIEludGVycnVwdC9TdGF0dXMgTWFzayBSZWdpc3RlcgojZGVmaW5lIFBIWV9NQVNLX1JFRyAgICAgICAgICAgIDB4MTMgICAgLy8gSW50ZXJydXB0IE1hc2sKLy8gVXNlcyB0aGUgc2FtZSBiaXQgZGVmaW5pdGlvbnMgYXMgUEhZX0lOVF9SRUcKCgovLyBQSFkgUmVnaXN0ZXIgQWRkcmVzc2VzIChMQU45MUMxMTEgSW50ZXJuYWwgUEhZKQoKLy8gUEhZIENvbnRyb2wgUmVnaXN0ZXIKI2RlZmluZSBQSFlfQ05UTF9SRUcgICAgICAgICAgICAweDAwCiNkZWZpbmUgUEhZX0NOVExfUlNUICAgICAgICAgICAgMHg4MDAwICAvLyAxPVBIWSBSZXNldAojZGVmaW5lIFBIWV9DTlRMX0xQQksgICAgICAgICAgIDB4NDAwMCAgLy8gMT1QSFkgTG9vcGJhY2sKI2RlZmluZSBQSFlfQ05UTF9TUEVFRCAgICAgICAgICAweDIwMDAgIC8vIDE9MTAwTWJwcywgMD0xME1wYnMKI2RlZmluZSBQSFlfQ05UTF9BTkVHX0VOICAgICAgICAweDEwMDAgLy8gMT1FbmFibGUgQXV0byBuZWdvdGlhdGlvbgojZGVmaW5lIFBIWV9DTlRMX1BETiAgICAgICAgICAgIDB4MDgwMCAgLy8gMT1QSFkgUG93ZXIgRG93biBtb2RlCiNkZWZpbmUgUEhZX0NOVExfTUlJX0RJUyAgICAgICAgMHgwNDAwICAvLyAxPU1JSSA0IGJpdCBpbnRlcmZhY2UgZGlzYWJsZWQKI2RlZmluZSBQSFlfQ05UTF9BTkVHX1JTVCAgICAgICAweDAyMDAgLy8gMT1SZXNldCBBdXRvIG5lZ290aWF0ZQojZGVmaW5lIFBIWV9DTlRMX0RQTFggICAgICAgICAgIDB4MDEwMCAgLy8gMT1GdWxsIER1cGxleCwgMD1IYWxmIER1cGxleAojZGVmaW5lIFBIWV9DTlRMX0NPTFRTVCAgICAgICAgIDB4MDA4MCAgLy8gMT0gTUlJIENvbGlzaW9uIFRlc3QKCi8vIFBIWSBTdGF0dXMgUmVnaXN0ZXIKI2RlZmluZSBQSFlfU1RBVF9SRUcgICAgICAgICAgICAweDAxCiNkZWZpbmUgUEhZX1NUQVRfQ0FQX1Q0ICAgICAgICAgMHg4MDAwICAvLyAxPTEwMEJhc2UtVDQgY2FwYWJsZQojZGVmaW5lIFBIWV9TVEFUX0NBUF9UWEYgICAgICAgIDB4NDAwMCAgLy8gMT0xMDBCYXNlLVggZnVsbCBkdXBsZXggY2FwYWJsZQojZGVmaW5lIFBIWV9TVEFUX0NBUF9UWEggICAgICAgIDB4MjAwMCAgLy8gMT0xMDBCYXNlLVggaGFsZiBkdXBsZXggY2FwYWJsZQojZGVmaW5lIFBIWV9TVEFUX0NBUF9URiAgICAgICAgIDB4MTAwMCAgLy8gMT0xME1icHMgZnVsbCBkdXBsZXggY2FwYWJsZQojZGVmaW5lIFBIWV9TVEFUX0NBUF9USCAgICAgICAgIDB4MDgwMCAgLy8gMT0xME1icHMgaGFsZiBkdXBsZXggY2FwYWJsZQojZGVmaW5lIFBIWV9TVEFUX0NBUF9TVVBSICAgICAgIDB4MDA0MCAgLy8gMT1yZWN2IG1nbXQgZnJhbWVzIHdpdGggbm90IHByZWFtYmxlCiNkZWZpbmUgUEhZX1NUQVRfQU5FR19BQ0sgICAgICAgMHgwMDIwICAvLyAxPUFORUcgaGFzIGNvbXBsZXRlZAojZGVmaW5lIFBIWV9TVEFUX1JFTV9GTFQgICAgICAgIDB4MDAxMCAgLy8gMT1SZW1vdGUgRmF1bHQgZGV0ZWN0ZWQKI2RlZmluZSBQSFlfU1RBVF9DQVBfQU5FRyAgICAgICAweDAwMDggIC8vIDE9QXV0byBuZWdvdGlhdGUgY2FwYWJsZQojZGVmaW5lIFBIWV9TVEFUX0xJTksgICAgICAgICAgIDB4MDAwNCAgLy8gMT12YWxpZCBsaW5rCiNkZWZpbmUgUEhZX1NUQVRfSkFCICAgICAgICAgICAgMHgwMDAyICAvLyAxPTEwTWJwcyBqYWJiZXIgY29uZGl0aW9uCiNkZWZpbmUgUEhZX1NUQVRfRVhSRUcgICAgICAgICAgMHgwMDAxICAvLyAxPWV4dGVuZGVkIHJlZ2lzdGVycyBpbXBsZW1lbnRlZAoKLy8gUEhZIElkZW50aWZpZXIgUmVnaXN0ZXJzCiNkZWZpbmUgUEhZX0lEMV9SRUcgICAgICAgICAgICAgMHgwMiAgICAvLyBQSFkgSWRlbnRpZmllciAxCiNkZWZpbmUgUEhZX0lEMl9SRUcgICAgICAgICAgICAgMHgwMyAgICAvLyBQSFkgSWRlbnRpZmllciAyCgovLyBQSFkgQXV0by1OZWdvdGlhdGlvbiBBZHZlcnRpc2VtZW50IFJlZ2lzdGVyCiNkZWZpbmUgUEhZX0FEX1JFRyAgICAgICAgICAgICAgMHgwNAojZGVmaW5lIFBIWV9BRF9OUCAgICAgICAgICAgICAgIDB4ODAwMCAgLy8gMT1QSFkgcmVxdWVzdHMgZXhjaGFuZ2Ugb2YgTmV4dCBQYWdlCiNkZWZpbmUgUEhZX0FEX0FDSyAgICAgICAgICAgICAgMHg0MDAwICAvLyAxPWdvdCBsaW5rIGNvZGUgd29yZCBmcm9tIHJlbW90ZQojZGVmaW5lIFBIWV9BRF9SRiAgICAgICAgICAgICAgIDB4MjAwMCAgLy8gMT1hZHZlcnRpc2UgcmVtb3RlIGZhdWx0CiNkZWZpbmUgUEhZX0FEX1Q0ICAgICAgICAgICAgICAgMHgwMjAwICAvLyAxPVBIWSBpcyBjYXBhYmxlIG9mIDEwMEJhc2UtVDQKI2RlZmluZSBQSFlfQURfVFhfRkRYICAgICAgICAgICAweDAxMDAgIC8vIDE9UEhZIGlzIGNhcGFibGUgb2YgMTAwQmFzZS1UWCBGRFBMWAojZGVmaW5lIFBIWV9BRF9UWF9IRFggICAgICAgICAgIDB4MDA4MCAgLy8gMT1QSFkgaXMgY2FwYWJsZSBvZiAxMDBCYXNlLVRYIEhEUExYCiNkZWZpbmUgUEhZX0FEXzEwX0ZEWCAgICAgICAgICAgMHgwMDQwICAvLyAxPVBIWSBpcyBjYXBhYmxlIG9mIDEwQmFzZS1UIEZEUExYCiNkZWZpbmUgUEhZX0FEXzEwX0hEWCAgICAgICAgICAgMHgwMDIwICAvLyAxPVBIWSBpcyBjYXBhYmxlIG9mIDEwQmFzZS1UIEhEUExYCiNkZWZpbmUgUEhZX0FEX0NTTUEgICAgICAgICAgICAgMHgwMDAxICAvLyAxPVBIWSBpcyBjYXBhYmxlIG9mIDgwMi4zIENNU0EKCi8vIFBIWSBBdXRvLW5lZ290aWF0aW9uIFJlbW90ZSBFbmQgQ2FwYWJpbGl0eSBSZWdpc3RlcgojZGVmaW5lIFBIWV9STVRfUkVHICAgICAgICAgICAgIDB4MDUKLy8gVXNlcyBzYW1lIGJpdCBkZWZpbml0aW9ucyBhcyBQSFlfQURfUkVHCgovLyBQSFkgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAxCiNkZWZpbmUgUEhZX0NGRzFfUkVHICAgICAgICAgICAgMHgxMAojZGVmaW5lIFBIWV9DRkcxX0xOS0RJUyAgICAgICAgIDB4ODAwMCAgLy8gMT1SeCBMaW5rIERldGVjdCBGdW5jdGlvbiBkaXNhYmxlZAojZGVmaW5lIFBIWV9DRkcxX1hNVERJUyAgICAgICAgIDB4NDAwMCAgLy8gMT1UUCBUcmFuc21pdHRlciBEaXNhYmxlZAojZGVmaW5lIFBIWV9DRkcxX1hNVFBETiAgICAgICAgIDB4MjAwMCAgLy8gMT1UUCBUcmFuc21pdHRlciBQb3dlcmVkIERvd24KI2RlZmluZSBQSFlfQ0ZHMV9CWVBTQ1IgICAgICAgICAweDA0MDAgIC8vIDE9QnlwYXNzIHNjcmFtYmxlci9kZXNjcmFtYmxlcgojZGVmaW5lIFBIWV9DRkcxX1VOU0NEUyAgICAgICAgIDB4MDIwMCAgLy8gMT1VbnNjcmFtYmxlIElkbGUgUmVjZXB0aW9uIERpc2FibGUKI2RlZmluZSBQSFlfQ0ZHMV9FUUxaUiAgICAgICAgICAweDAxMDAgIC8vIDE9UnggRXF1YWxpemVyIERpc2FibGVkCiNkZWZpbmUgUEhZX0NGRzFfQ0FCTEUgICAgICAgICAgMHgwMDgwICAvLyAxPVNUUCgxNTBvaG0pLCAwPVVUUCgxMDBvaG0pCiNkZWZpbmUgUEhZX0NGRzFfUkxWTDAgICAgICAgICAgMHgwMDQwICAvLyAxPVJ4IFNxdWVsY2ggbGV2ZWwgcmVkdWNlZCBieSA0LjVkYgojZGVmaW5lIFBIWV9DRkcxX1RMVkxfU0hJRlQgICAgIDIgICAgICAgLy8gVHJhbnNtaXQgT3V0cHV0IExldmVsIEFkanVzdAojZGVmaW5lIFBIWV9DRkcxX1RMVkxfTUFTSyAgICAgIDB4MDAzQwojZGVmaW5lIFBIWV9DRkcxX1RSRl9NQVNLICAgICAgIDB4MDAwMyAgLy8gVHJhbnNtaXR0ZXIgUmlzZS9GYWxsIHRpbWUKCgovLyBQSFkgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAyCiNkZWZpbmUgUEhZX0NGRzJfUkVHICAgICAgICAgICAgMHgxMQojZGVmaW5lIFBIWV9DRkcyX0FQT0xESVMgICAgICAgIDB4MDAyMCAgLy8gMT1BdXRvIFBvbGFyaXR5IENvcnJlY3Rpb24gZGlzYWJsZWQKI2RlZmluZSBQSFlfQ0ZHMl9KQUJESVMgICAgICAgICAweDAwMTAgIC8vIDE9SmFiYmVyIGRpc2FibGVkCiNkZWZpbmUgUEhZX0NGRzJfTVJFRyAgICAgICAgICAgMHgwMDA4ICAvLyAxPU11bHRpcGxlIHJlZ2lzdGVyIGFjY2VzcyAoTUlJIG1ndCkKI2RlZmluZSBQSFlfQ0ZHMl9JTlRNRElPICAgICAgICAweDAwMDQgIC8vIDE9SW50ZXJydXB0IHNpZ25hbGVkIHdpdGggTURJTyBwdWxzZW8KCi8vIFBIWSBTdGF0dXMgT3V0cHV0IChhbmQgSW50ZXJydXB0IHN0YXR1cykgUmVnaXN0ZXIKI2RlZmluZSBQSFlfSU5UX1JFRyAgICAgICAgICAgICAweDEyICAgIC8vIFN0YXR1cyBPdXRwdXQgKEludGVycnVwdCBTdGF0dXMpCiNkZWZpbmUgUEhZX0lOVF9JTlQgICAgICAgICAgICAgMHg4MDAwICAvLyAxPWJpdHMgaGF2ZSBjaGFuZ2VkIHNpbmNlIGxhc3QgcmVhZAojZGVmaW5lIFBIWV9JTlRfTE5LRkFJTCAgICAgICAgIDB4NDAwMCAgLy8gMT1MaW5rIE5vdCBkZXRlY3RlZAojZGVmaW5lIFBIWV9JTlRfTE9TU1NZTkMgICAgICAgIDB4MjAwMCAgLy8gMT1EZXNjcmFtYmxlciBoYXMgbG9zdCBzeW5jCiNkZWZpbmUgUEhZX0lOVF9DV1JEICAgICAgICAgICAgMHgxMDAwICAvLyAxPUludmFsaWQgNEI1QiBjb2RlIGRldGVjdGVkIG9uIHJ4CiNkZWZpbmUgUEhZX0lOVF9TU0QgICAgICAgICAgICAgMHgwODAwICAvLyAxPU5vIFN0YXJ0IE9mIFN0cmVhbSBkZXRlY3RlZCBvbiByeAojZGVmaW5lIFBIWV9JTlRfRVNEICAgICAgICAgICAgIDB4MDQwMCAgLy8gMT1ObyBFbmQgT2YgU3RyZWFtIGRldGVjdGVkIG9uIHJ4CiNkZWZpbmUgUEhZX0lOVF9SUE9MICAgICAgICAgICAgMHgwMjAwICAvLyAxPVJldmVyc2UgUG9sYXJpdHkgZGV0ZWN0ZWQKI2RlZmluZSBQSFlfSU5UX0pBQiAgICAgICAgICAgICAweDAxMDAgIC8vIDE9SmFiYmVyIGRldGVjdGVkCiNkZWZpbmUgUEhZX0lOVF9TUERERVQgICAgICAgICAgMHgwMDgwICAvLyAxPTEwMEJhc2UtVFggbW9kZSwgMD0xMEJhc2UtVCBtb2RlCiNkZWZpbmUgUEhZX0lOVF9EUExYREVUICAgICAgICAgMHgwMDQwICAvLyAxPURldmljZSBpbiBGdWxsIER1cGxleAoKLy8gUEhZIEludGVycnVwdC9TdGF0dXMgTWFzayBSZWdpc3RlcgojZGVmaW5lIFBIWV9NQVNLX1JFRyAgICAgICAgICAgIDB4MTMgICAgLy8gSW50ZXJydXB0IE1hc2sKLy8gVXNlcyB0aGUgc2FtZSBiaXQgZGVmaW5pdGlvbnMgYXMgUEhZX0lOVF9SRUcKCgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogIEkgZGVmaW5lIHNvbWUgbWFjcm9zIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRvIHNvbWV3aGF0IGNvbW1vbgogKiBvciBzbGlnaHRseSBjb21wbGljYXRlZCwgcmVwZWF0ZWQgdGFza3MuCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgovKiBzZWxlY3QgYSByZWdpc3RlciBiYW5rLCAwIHRvIDMgICovCgojZGVmaW5lIFNNQ19TRUxFQ1RfQkFOSyh4LCB5KSB7IF9vdXR3KCB5LCB4ICsgQkFOS19TRUxFQ1QgKTsgfQoKLyogZGVmaW5lIGEgc21hbGwgZGVsYXkgZm9yIHRoZSByZXNldCAqLwojZGVmaW5lIFNNQ19ERUxBWSh4KSB7IGludyggeCArIFJDUiApO1wKCQkJaW53KCB4ICsgUkNSICk7XAoJCQlpbncoIHggKyBSQ1IgKTsgfQoKCiNlbmRpZgkvKiBfU01DXzkwMDBfSF8gKi8KCg==