ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2FyaWFkbmUuaCBiL2RyaXZlcnMvbmV0L2FyaWFkbmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNzkxM2Q1Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9uZXQvYXJpYWRuZS5oCkBAIC0wLDAgKzEsNDE1IEBACisvKgorICogIEFtaWdhIExpbnV4L202OGsgQXJpYWRuZSBFdGhlcm5ldCBEcml2ZXIKKyAqCisgKiAgqSBDb3B5cmlnaHQgMTk5NSBieSBHZWVydCBVeXR0ZXJob2V2ZW4gKGdlZXJ0QGxpbnV4LW02OGsub3JnKQorICoJCQlQZXRlciBEZSBTY2hyaWp2ZXIKKyAqCQkgICAgICAgKFBldGVyLkRlU2NocmlqdmVyQGxpbnV4LmNjLmt1bGV1dmVuLmFjLmJlKQorICoKKyAqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBiYXNlZCBvbgorICoKKyAqCWxhbmNlLmM6CUFuIEFNRCBMQU5DRSBldGhlcm5ldCBkcml2ZXIgZm9yIGxpbnV4LgorICoJCQlXcml0dGVuIDE5OTMtOTQgYnkgRG9uYWxkIEJlY2tlci4KKyAqCisgKglBbTc5Qzk2MDoJUENuZXQodG0pLUlTQSBTaW5nbGUtQ2hpcCBFdGhlcm5ldCBDb250cm9sbGVyCisgKgkJCUFkdmFuY2VkIE1pY3JvIERldmljZXMKKyAqCQkJUHVibGljYXRpb24gIzE2OTA3LCBSZXYuIEIsIEFtZW5kbWVudC8wLCBNYXkgMTk5NAorICoKKyAqCU1DNjgyMzA6CVBhcmFsbGVsIEludGVyZmFjZS9UaW1lciAoUEkvVCkKKyAqCQkJTW90b3JvbGEgU2VtaWNvbmR1Y3RvcnMsIERlY2VtYmVyLCAxOTgzCisgKgorICogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiAgVGhpcyBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlLiAgU2VlIHRoZSBmaWxlIENPUFlJTkcgaW4gdGhlIG1haW4gZGlyZWN0b3J5IG9mIHRoZSBMaW51eAorICogIGRpc3RyaWJ1dGlvbiBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogIFRoZSBBcmlhZG5lIGlzIGEgWm9ycm8tSUkgYm9hcmQgbWFkZSBieSBWaWxsYWdlIFRyb25pYy4gSXQgY29udGFpbnM6CisgKgorICoJLSBhbiBBbTc5Qzk2MCBQQ25ldC1JU0EgU2luZ2xlLUNoaXAgRXRoZXJuZXQgQ29udHJvbGxlciB3aXRoIGJvdGgKKyAqCSAgMTBCQVNFLTIgKHRoaW4gY29heCkgYW5kIDEwQkFTRS1UIChVVFApIGNvbm5lY3RvcnMKKyAqCisgKgktIGFuIE1DNjgyMzAgUGFyYWxsZWwgSW50ZXJmYWNlL1RpbWVyIGNvbmZpZ3VyZWQgYXMgMiBwYXJhbGxlbCBwb3J0cworICovCisKKworICAgIC8qCisgICAgICoJQW03OUM5NjAgUENuZXQtSVNBCisgICAgICovCisKK3N0cnVjdCBBbTc5Qzk2MCB7CisgICAgdm9sYXRpbGUgdV9zaG9ydCBBZGRyZXNzUFJPTVs4XTsKKwkJCQkvKiBJRUVFIEFkZHJlc3MgUFJPTSAoVW51c2VkIGluIHRoZSBBcmlhZG5lKSAqLworICAgIHZvbGF0aWxlIHVfc2hvcnQgUkRQOwkvKiBSZWdpc3RlciBEYXRhIFBvcnQgKi8KKyAgICB2b2xhdGlsZSB1X3Nob3J0IFJBUDsJLyogUmVnaXN0ZXIgQWRkcmVzcyBQb3J0ICovCisgICAgdm9sYXRpbGUgdV9zaG9ydCBSZXNldDsJLyogUmVzZXQgQ2hpcCBvbiBSZWFkIEFjY2VzcyAqLworICAgIHZvbGF0aWxlIHVfc2hvcnQgSURQOwkvKiBJU0FDU1IgRGF0YSBQb3J0ICovCit9OworCisKKyAgICAvKgorICAgICAqCUFtNzlDOTYwIENvbnRyb2wgYW5kIFN0YXR1cyBSZWdpc3RlcnMKKyAgICAgKgorICAgICAqCVRoZXNlIHZhbHVlcyBhcmUgYWxyZWFkeSBzd2FwKCllZCEhCisgICAgICoKKyAgICAgKglPbmx5IHJlZ2lzdGVycyBtYXJrZWQgd2l0aCBhIGAtJyBhcmUgaW50ZW5kZWQgZm9yIG5ldHdvcmsgc29mdHdhcmUKKyAgICAgKglhY2Nlc3MKKyAgICAgKi8KKworI2RlZmluZSBDU1IwCQkweDAwMDAJLyogLSBQQ25ldC1JU0EgQ29udHJvbGxlciBTdGF0dXMgKi8KKyNkZWZpbmUgQ1NSMQkJMHgwMTAwCS8qIC0gSUFEUlsxNTowXSAqLworI2RlZmluZSBDU1IyCQkweDAyMDAJLyogLSBJQURSWzIzOjE2XSAqLworI2RlZmluZSBDU1IzCQkweDAzMDAJLyogLSBJbnRlcnJ1cHQgTWFza3MgYW5kIERlZmVycmFsIENvbnRyb2wgKi8KKyNkZWZpbmUgQ1NSNAkJMHgwNDAwCS8qIC0gVGVzdCBhbmQgRmVhdHVyZXMgQ29udHJvbCAqLworI2RlZmluZSBDU1I2CQkweDA2MDAJLyogICBSQ1YvWE1UIERlc2NyaXB0b3IgVGFibGUgTGVuZ3RoICovCisjZGVmaW5lIENTUjgJCTB4MDgwMAkvKiAtIExvZ2ljYWwgQWRkcmVzcyBGaWx0ZXIsIExBRFJGWzE1OjBdICovCisjZGVmaW5lIENTUjkJCTB4MDkwMAkvKiAtIExvZ2ljYWwgQWRkcmVzcyBGaWx0ZXIsIExBRFJGWzMxOjE2XSAqLworI2RlZmluZSBDU1IxMAkJMHgwYTAwCS8qIC0gTG9naWNhbCBBZGRyZXNzIEZpbHRlciwgTEFEUkZbNDc6MzJdICovCisjZGVmaW5lIENTUjExCQkweDBiMDAJLyogLSBMb2dpY2FsIEFkZHJlc3MgRmlsdGVyLCBMQURSRls2Mzo0OF0gKi8KKyNkZWZpbmUgQ1NSMTIJCTB4MGMwMAkvKiAtIFBoeXNpY2FsIEFkZHJlc3MgUmVnaXN0ZXIsIFBBRFJbMTU6MF0gKi8KKyNkZWZpbmUgQ1NSMTMJCTB4MGQwMAkvKiAtIFBoeXNpY2FsIEFkZHJlc3MgUmVnaXN0ZXIsIFBBRFJbMzE6MTZdICovCisjZGVmaW5lIENTUjE0CQkweDBlMDAJLyogLSBQaHlzaWNhbCBBZGRyZXNzIFJlZ2lzdGVyLCBQQURSWzQ3OjMyXSAqLworI2RlZmluZSBDU1IxNQkJMHgwZjAwCS8qIC0gTW9kZSBSZWdpc3RlciAqLworI2RlZmluZSBDU1IxNgkJMHgxMDAwCS8qICAgSW5pdGlhbGl6YXRpb24gQmxvY2sgQWRkcmVzcyBMb3dlciAqLworI2RlZmluZSBDU1IxNwkJMHgxMTAwCS8qICAgSW5pdGlhbGl6YXRpb24gQmxvY2sgQWRkcmVzcyBVcHBlciAqLworI2RlZmluZSBDU1IxOAkJMHgxMjAwCS8qICAgQ3VycmVudCBSZWNlaXZlIEJ1ZmZlciBBZGRyZXNzICovCisjZGVmaW5lIENTUjE5CQkweDEzMDAJLyogICBDdXJyZW50IFJlY2VpdmUgQnVmZmVyIEFkZHJlc3MgKi8KKyNkZWZpbmUgQ1NSMjAJCTB4MTQwMAkvKiAgIEN1cnJlbnQgVHJhbnNtaXQgQnVmZmVyIEFkZHJlc3MgKi8KKyNkZWZpbmUgQ1NSMjEJCTB4MTUwMAkvKiAgIEN1cnJlbnQgVHJhbnNtaXQgQnVmZmVyIEFkZHJlc3MgKi8KKyNkZWZpbmUgQ1NSMjIJCTB4MTYwMAkvKiAgIE5leHQgUmVjZWl2ZSBCdWZmZXIgQWRkcmVzcyAqLworI2RlZmluZSBDU1IyMwkJMHgxNzAwCS8qICAgTmV4dCBSZWNlaXZlIEJ1ZmZlciBBZGRyZXNzICovCisjZGVmaW5lIENTUjI0CQkweDE4MDAJLyogLSBCYXNlIEFkZHJlc3Mgb2YgUmVjZWl2ZSBSaW5nICovCisjZGVmaW5lIENTUjI1CQkweDE5MDAJLyogLSBCYXNlIEFkZHJlc3Mgb2YgUmVjZWl2ZSBSaW5nICovCisjZGVmaW5lIENTUjI2CQkweDFhMDAJLyogICBOZXh0IFJlY2VpdmUgRGVzY3JpcHRvciBBZGRyZXNzICovCisjZGVmaW5lIENTUjI3CQkweDFiMDAJLyogICBOZXh0IFJlY2VpdmUgRGVzY3JpcHRvciBBZGRyZXNzICovCisjZGVmaW5lIENTUjI4CQkweDFjMDAJLyogICBDdXJyZW50IFJlY2VpdmUgRGVzY3JpcHRvciBBZGRyZXNzICovCisjZGVmaW5lIENTUjI5CQkweDFkMDAJLyogICBDdXJyZW50IFJlY2VpdmUgRGVzY3JpcHRvciBBZGRyZXNzICovCisjZGVmaW5lIENTUjMwCQkweDFlMDAJLyogLSBCYXNlIEFkZHJlc3Mgb2YgVHJhbnNtaXQgUmluZyAqLworI2RlZmluZSBDU1IzMQkJMHgxZjAwCS8qIC0gQmFzZSBBZGRyZXNzIG9mIHRyYW5zbWl0IFJpbmcgKi8KKyNkZWZpbmUgQ1NSMzIJCTB4MjAwMAkvKiAgIE5leHQgVHJhbnNtaXQgRGVzY3JpcHRvciBBZGRyZXNzICovCisjZGVmaW5lIENTUjMzCQkweDIxMDAJLyogICBOZXh0IFRyYW5zbWl0IERlc2NyaXB0b3IgQWRkcmVzcyAqLworI2RlZmluZSBDU1IzNAkJMHgyMjAwCS8qICAgQ3VycmVudCBUcmFuc21pdCBEZXNjcmlwdG9yIEFkZHJlc3MgKi8KKyNkZWZpbmUgQ1NSMzUJCTB4MjMwMAkvKiAgIEN1cnJlbnQgVHJhbnNtaXQgRGVzY3JpcHRvciBBZGRyZXNzICovCisjZGVmaW5lIENTUjM2CQkweDI0MDAJLyogICBOZXh0IE5leHQgUmVjZWl2ZSBEZXNjcmlwdG9yIEFkZHJlc3MgKi8KKyNkZWZpbmUgQ1NSMzcJCTB4MjUwMAkvKiAgIE5leHQgTmV4dCBSZWNlaXZlIERlc2NyaXB0b3IgQWRkcmVzcyAqLworI2RlZmluZSBDU1IzOAkJMHgyNjAwCS8qICAgTmV4dCBOZXh0IFRyYW5zbWl0IERlc2NyaXB0b3IgQWRkcmVzcyAqLworI2RlZmluZSBDU1IzOQkJMHgyNzAwCS8qICAgTmV4dCBOZXh0IFRyYW5zbWl0IERlc2NyaXB0b3IgQWRkcmVzcyAqLworI2RlZmluZSBDU1I0MAkJMHgyODAwCS8qICAgQ3VycmVudCBSZWNlaXZlIFN0YXR1cyBhbmQgQnl0ZSBDb3VudCAqLworI2RlZmluZSBDU1I0MQkJMHgyOTAwCS8qICAgQ3VycmVudCBSZWNlaXZlIFN0YXR1cyBhbmQgQnl0ZSBDb3VudCAqLworI2RlZmluZSBDU1I0MgkJMHgyYTAwCS8qICAgQ3VycmVudCBUcmFuc21pdCBTdGF0dXMgYW5kIEJ5dGUgQ291bnQgKi8KKyNkZWZpbmUgQ1NSNDMJCTB4MmIwMAkvKiAgIEN1cnJlbnQgVHJhbnNtaXQgU3RhdHVzIGFuZCBCeXRlIENvdW50ICovCisjZGVmaW5lIENTUjQ0CQkweDJjMDAJLyogICBOZXh0IFJlY2VpdmUgU3RhdHVzIGFuZCBCeXRlIENvdW50ICovCisjZGVmaW5lIENTUjQ1CQkweDJkMDAJLyogICBOZXh0IFJlY2VpdmUgU3RhdHVzIGFuZCBCeXRlIENvdW50ICovCisjZGVmaW5lIENTUjQ2CQkweDJlMDAJLyogICBQb2xsIFRpbWUgQ291bnRlciAqLworI2RlZmluZSBDU1I0NwkJMHgyZjAwCS8qICAgUG9sbGluZyBJbnRlcnZhbCAqLworI2RlZmluZSBDU1I0OAkJMHgzMDAwCS8qICAgVGVtcG9yYXJ5IFN0b3JhZ2UgKi8KKyNkZWZpbmUgQ1NSNDkJCTB4MzEwMAkvKiAgIFRlbXBvcmFyeSBTdG9yYWdlICovCisjZGVmaW5lIENTUjUwCQkweDMyMDAJLyogICBUZW1wb3JhcnkgU3RvcmFnZSAqLworI2RlZmluZSBDU1I1MQkJMHgzMzAwCS8qICAgVGVtcG9yYXJ5IFN0b3JhZ2UgKi8KKyNkZWZpbmUgQ1NSNTIJCTB4MzQwMAkvKiAgIFRlbXBvcmFyeSBTdG9yYWdlICovCisjZGVmaW5lIENTUjUzCQkweDM1MDAJLyogICBUZW1wb3JhcnkgU3RvcmFnZSAqLworI2RlZmluZSBDU1I1NAkJMHgzNjAwCS8qICAgVGVtcG9yYXJ5IFN0b3JhZ2UgKi8KKyNkZWZpbmUgQ1NSNTUJCTB4MzcwMAkvKiAgIFRlbXBvcmFyeSBTdG9yYWdlICovCisjZGVmaW5lIENTUjU2CQkweDM4MDAJLyogICBUZW1wb3JhcnkgU3RvcmFnZSAqLworI2RlZmluZSBDU1I1NwkJMHgzOTAwCS8qICAgVGVtcG9yYXJ5IFN0b3JhZ2UgKi8KKyNkZWZpbmUgQ1NSNTgJCTB4M2EwMAkvKiAgIFRlbXBvcmFyeSBTdG9yYWdlICovCisjZGVmaW5lIENTUjU5CQkweDNiMDAJLyogICBUZW1wb3JhcnkgU3RvcmFnZSAqLworI2RlZmluZSBDU1I2MAkJMHgzYzAwCS8qICAgUHJldmlvdXMgVHJhbnNtaXQgRGVzY3JpcHRvciBBZGRyZXNzICovCisjZGVmaW5lIENTUjYxCQkweDNkMDAJLyogICBQcmV2aW91cyBUcmFuc21pdCBEZXNjcmlwdG9yIEFkZHJlc3MgKi8KKyNkZWZpbmUgQ1NSNjIJCTB4M2UwMAkvKiAgIFByZXZpb3VzIFRyYW5zbWl0IFN0YXR1cyBhbmQgQnl0ZSBDb3VudCAqLworI2RlZmluZSBDU1I2MwkJMHgzZjAwCS8qICAgUHJldmlvdXMgVHJhbnNtaXQgU3RhdHVzIGFuZCBCeXRlIENvdW50ICovCisjZGVmaW5lIENTUjY0CQkweDQwMDAJLyogICBOZXh0IFRyYW5zbWl0IEJ1ZmZlciBBZGRyZXNzICovCisjZGVmaW5lIENTUjY1CQkweDQxMDAJLyogICBOZXh0IFRyYW5zbWl0IEJ1ZmZlciBBZGRyZXNzICovCisjZGVmaW5lIENTUjY2CQkweDQyMDAJLyogICBOZXh0IFRyYW5zbWl0IFN0YXR1cyBhbmQgQnl0ZSBDb3VudCAqLworI2RlZmluZSBDU1I2NwkJMHg0MzAwCS8qICAgTmV4dCBUcmFuc21pdCBTdGF0dXMgYW5kIEJ5dGUgQ291bnQgKi8KKyNkZWZpbmUgQ1NSNjgJCTB4NDQwMAkvKiAgIFRyYW5zbWl0IFN0YXR1cyBUZW1wb3JhcnkgU3RvcmFnZSAqLworI2RlZmluZSBDU1I2OQkJMHg0NTAwCS8qICAgVHJhbnNtaXQgU3RhdHVzIFRlbXBvcmFyeSBTdG9yYWdlICovCisjZGVmaW5lIENTUjcwCQkweDQ2MDAJLyogICBUZW1wb3JhcnkgU3RvcmFnZSAqLworI2RlZmluZSBDU1I3MQkJMHg0NzAwCS8qICAgVGVtcG9yYXJ5IFN0b3JhZ2UgKi8KKyNkZWZpbmUgQ1NSNzIJCTB4NDgwMAkvKiAgIFJlY2VpdmUgUmluZyBDb3VudGVyICovCisjZGVmaW5lIENTUjc0CQkweDRhMDAJLyogICBUcmFuc21pdCBSaW5nIENvdW50ZXIgKi8KKyNkZWZpbmUgQ1NSNzYJCTB4NGMwMAkvKiAtIFJlY2VpdmUgUmluZyBMZW5ndGggKi8KKyNkZWZpbmUgQ1NSNzgJCTB4NGUwMAkvKiAtIFRyYW5zbWl0IFJpbmcgTGVuZ3RoICovCisjZGVmaW5lIENTUjgwCQkweDUwMDAJLyogLSBCdXJzdCBhbmQgRklGTyBUaHJlc2hvbGQgQ29udHJvbCAqLworI2RlZmluZSBDU1I4MgkJMHg1MjAwCS8qIC0gQnVzIEFjdGl2aXR5IFRpbWVyICovCisjZGVmaW5lIENTUjg0CQkweDU0MDAJLyogICBETUEgQWRkcmVzcyAqLworI2RlZmluZSBDU1I4NQkJMHg1NTAwCS8qICAgRE1BIEFkZHJlc3MgKi8KKyNkZWZpbmUgQ1NSODYJCTB4NTYwMAkvKiAgIEJ1ZmZlciBCeXRlIENvdW50ZXIgKi8KKyNkZWZpbmUgQ1NSODgJCTB4NTgwMAkvKiAtIENoaXAgSUQgKi8KKyNkZWZpbmUgQ1NSODkJCTB4NTkwMAkvKiAtIENoaXAgSUQgKi8KKyNkZWZpbmUgQ1NSOTIJCTB4NWMwMAkvKiAgIFJpbmcgTGVuZ3RoIENvbnZlcnNpb24gKi8KKyNkZWZpbmUgQ1NSOTQJCTB4NWUwMAkvKiAgIFRyYW5zbWl0IFRpbWUgRG9tYWluIFJlZmxlY3RvbWV0cnkgQ291bnQgKi8KKyNkZWZpbmUgQ1NSOTYJCTB4NjAwMAkvKiAgIEJ1cyBJbnRlcmZhY2UgU2NyYXRjaCBSZWdpc3RlciAwICovCisjZGVmaW5lIENTUjk3CQkweDYxMDAJLyogICBCdXMgSW50ZXJmYWNlIFNjcmF0Y2ggUmVnaXN0ZXIgMCAqLworI2RlZmluZSBDU1I5OAkJMHg2MjAwCS8qICAgQnVzIEludGVyZmFjZSBTY3JhdGNoIFJlZ2lzdGVyIDEgKi8KKyNkZWZpbmUgQ1NSOTkJCTB4NjMwMAkvKiAgIEJ1cyBJbnRlcmZhY2UgU2NyYXRjaCBSZWdpc3RlciAxICovCisjZGVmaW5lIENTUjEwNAkJMHg2ODAwCS8qICAgU1dBUCAqLworI2RlZmluZSBDU1IxMDUJCTB4NjkwMAkvKiAgIFNXQVAgKi8KKyNkZWZpbmUgQ1NSMTA4CQkweDZjMDAJLyogICBCdWZmZXIgTWFuYWdlbWVudCBTY3JhdGNoICovCisjZGVmaW5lIENTUjEwOQkJMHg2ZDAwCS8qICAgQnVmZmVyIE1hbmFnZW1lbnQgU2NyYXRjaCAqLworI2RlZmluZSBDU1IxMTIJCTB4NzAwMAkvKiAtIE1pc3NlZCBGcmFtZSBDb3VudCAqLworI2RlZmluZSBDU1IxMTQJCTB4NzIwMAkvKiAtIFJlY2VpdmUgQ29sbGlzaW9uIENvdW50ICovCisjZGVmaW5lIENTUjEyNAkJMHg3YzAwCS8qIC0gQnVmZmVyIE1hbmFnZW1lbnQgVW5pdCBUZXN0ICovCisKKworICAgIC8qCisgICAgICoJQW03OUM5NjAgSVNBIENvbnRyb2wgYW5kIFN0YXR1cyBSZWdpc3RlcnMKKyAgICAgKgorICAgICAqCVRoZXNlIHZhbHVlcyBhcmUgYWxyZWFkeSBzd2FwKCllZCEhCisgICAgICovCisKKyNkZWZpbmUgSVNBQ1NSMAkJMHgwMDAwCS8qIE1hc3RlciBNb2RlIFJlYWQgQWN0aXZlICovCisjZGVmaW5lIElTQUNTUjEJCTB4MDEwMAkvKiBNYXN0ZXIgTW9kZSBXcml0ZSBBY3RpdmUgKi8KKyNkZWZpbmUgSVNBQ1NSMgkJMHgwMjAwCS8qIE1pc2NlbGxhbmVvdXMgQ29uZmlndXJhdGlvbiAqLworI2RlZmluZSBJU0FDU1I0CQkweDA0MDAJLyogTEVEMCBTdGF0dXMgKExpbmsgSW50ZWdyaXR5KSAqLworI2RlZmluZSBJU0FDU1I1CQkweDA1MDAJLyogTEVEMSBTdGF0dXMgKi8KKyNkZWZpbmUgSVNBQ1NSNgkJMHgwNjAwCS8qIExFRDIgU3RhdHVzICovCisjZGVmaW5lIElTQUNTUjcJCTB4MDcwMAkvKiBMRUQzIFN0YXR1cyAqLworCisKKyAgICAvKgorICAgICAqCUJpdCBkZWZpbml0aW9ucyBmb3IgQ1NSMCAoUENuZXQtSVNBIENvbnRyb2xsZXIgU3RhdHVzKQorICAgICAqCisgICAgICoJVGhlc2UgdmFsdWVzIGFyZSBhbHJlYWR5IHN3YXAoKWVkISEKKyAgICAgKi8KKworI2RlZmluZSBFUlIJCTB4MDA4MAkvKiBFcnJvciAqLworI2RlZmluZSBCQUJMCQkweDAwNDAJLyogQmFiYmxlOiBUcmFuc21pdHRlZCB0b28gbWFueSBiaXRzICovCisjZGVmaW5lIENFUlIJCTB4MDAyMAkvKiBObyBIZWFydGJlYXQgKDEwQkFTRS1UKSAqLworI2RlZmluZSBNSVNTCQkweDAwMTAJLyogTWlzc2VkIEZyYW1lICovCisjZGVmaW5lIE1FUlIJCTB4MDAwOAkvKiBNZW1vcnkgRXJyb3IgKi8KKyNkZWZpbmUgUklOVAkJMHgwMDA0CS8qIFJlY2VpdmUgSW50ZXJydXB0ICovCisjZGVmaW5lIFRJTlQJCTB4MDAwMgkvKiBUcmFuc21pdCBJbnRlcnJ1cHQgKi8KKyNkZWZpbmUgSURPTgkJMHgwMDAxCS8qIEluaXRpYWxpemF0aW9uIERvbmUgKi8KKyNkZWZpbmUgSU5UUgkJMHg4MDAwCS8qIEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIElORUEJCTB4NDAwMAkvKiBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIFJYT04JCTB4MjAwMAkvKiBSZWNlaXZlIE9uICovCisjZGVmaW5lIFRYT04JCTB4MTAwMAkvKiBUcmFuc21pdCBPbiAqLworI2RlZmluZSBURE1ECQkweDA4MDAJLyogVHJhbnNtaXQgRGVtYW5kICovCisjZGVmaW5lIFNUT1AJCTB4MDQwMAkvKiBTdG9wICovCisjZGVmaW5lIFNUUlQJCTB4MDIwMAkvKiBTdGFydCAqLworI2RlZmluZSBJTklUCQkweDAxMDAJLyogSW5pdGlhbGl6ZSAqLworCisKKyAgICAvKgorICAgICAqCUJpdCBkZWZpbml0aW9ucyBmb3IgQ1NSMyAoSW50ZXJydXB0IE1hc2tzIGFuZCBEZWZlcnJhbCBDb250cm9sKQorICAgICAqCisgICAgICoJVGhlc2UgdmFsdWVzIGFyZSBhbHJlYWR5IHN3YXAoKWVkISEKKyAgICAgKi8KKworI2RlZmluZSBCQUJMTQkJMHgwMDQwCS8qIEJhYmJsZSBNYXNrICovCisjZGVmaW5lIE1JU1NNCQkweDAwMTAJLyogTWlzc2VkIEZyYW1lIE1hc2sgKi8KKyNkZWZpbmUgTUVSUk0JCTB4MDAwOAkvKiBNZW1vcnkgRXJyb3IgTWFzayAqLworI2RlZmluZSBSSU5UTQkJMHgwMDA0CS8qIFJlY2VpdmUgSW50ZXJydXB0IE1hc2sgKi8KKyNkZWZpbmUgVElOVE0JCTB4MDAwMgkvKiBUcmFuc21pdCBJbnRlcnJ1cHQgTWFzayAqLworI2RlZmluZSBJRE9OTQkJMHgwMDAxCS8qIEluaXRpYWxpemF0aW9uIERvbmUgTWFzayAqLworI2RlZmluZSBEWE1UMlBECQkweDEwMDAJLyogRGlzYWJsZSBUcmFuc21pdCBUd28gUGFydCBEZWZlcnJhbCAqLworI2RlZmluZSBFTUJBCQkweDA4MDAJLyogRW5hYmxlIE1vZGlmaWVkIEJhY2stb2ZmIEFsZ29yaXRobSAqLworCisKKyAgICAvKgorICAgICAqCUJpdCBkZWZpbml0aW9ucyBmb3IgQ1NSNCAoVGVzdCBhbmQgRmVhdHVyZXMgQ29udHJvbCkKKyAgICAgKgorICAgICAqCVRoZXNlIHZhbHVlcyBhcmUgYWxyZWFkeSBzd2FwKCllZCEhCisgICAgICovCisKKyNkZWZpbmUgRU5UU1QJCTB4MDA4MAkvKiBFbmFibGUgVGVzdCBNb2RlICovCisjZGVmaW5lIERNQVBMVVMJCTB4MDA0MAkvKiBEaXNhYmxlIEJ1cnN0IFRyYW5zYWN0aW9uIENvdW50ZXIgKi8KKyNkZWZpbmUgVElNRVIJCTB4MDAyMAkvKiBUaW1lciBFbmFibGUgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgRFBPTEwJCTB4MDAxMAkvKiBEaXNhYmxlIFRyYW5zbWl0IFBvbGxpbmcgKi8KKyNkZWZpbmUgQVBBRF9YTVQJMHgwMDA4CS8qIEF1dG8gUGFkIFRyYW5zbWl0ICovCisjZGVmaW5lIEFTVFJQX1JDVgkweDAwMDQJLyogQXV0byBQYWQgU3RyaXBwaW5nICovCisjZGVmaW5lIE1GQ08JCTB4MDAwMgkvKiBNaXNzZWQgRnJhbWUgQ291bnRlciBPdmVyZmxvdyBJbnRlcnJ1cHQgKi8KKyNkZWZpbmUgTUZDT00JCTB4MDAwMQkvKiBNaXNzZWQgRnJhbWUgQ291bnRlciBPdmVyZmxvdyBNYXNrICovCisjZGVmaW5lIFJDVkNDTwkJMHgyMDAwCS8qIFJlY2VpdmUgQ29sbGlzaW9uIENvdW50ZXIgT3ZlcmZsb3cgSW50ZXJydXB0ICovCisjZGVmaW5lIFJDVkNDT00JCTB4MTAwMAkvKiBSZWNlaXZlIENvbGxpc2lvbiBDb3VudGVyIE92ZXJmbG93IE1hc2sgKi8KKyNkZWZpbmUgVFhTVFJUCQkweDA4MDAJLyogVHJhbnNtaXQgU3RhcnQgU3RhdHVzICovCisjZGVmaW5lIFRYU1RSVE0JCTB4MDQwMAkvKiBUcmFuc21pdCBTdGFydCBNYXNrICovCisjZGVmaW5lIEpBQgkJMHgwMjAwCS8qIEphYmJlciBFcnJvciAqLworI2RlZmluZSBKQUJNCQkweDAxMDAJLyogSmFiYmVyIEVycm9yIE1hc2sgKi8KKworCisgICAgLyoKKyAgICAgKglCaXQgZGVmaW5pdGlvbnMgZm9yIENTUjE1IChNb2RlIFJlZ2lzdGVyKQorICAgICAqCisgICAgICoJVGhlc2UgdmFsdWVzIGFyZSBhbHJlYWR5IHN3YXAoKWVkISEKKyAgICAgKi8KKworI2RlZmluZSBQUk9NCQkweDAwODAJLyogUHJvbWlzY3VvdXMgTW9kZSAqLworI2RlZmluZSBEUkNWQkMJCTB4MDA0MAkvKiBEaXNhYmxlIFJlY2VpdmUgQnJvYWRjYXN0ICovCisjZGVmaW5lIERSQ1ZQQQkJMHgwMDIwCS8qIERpc2FibGUgUmVjZWl2ZSBQaHlzaWNhbCBBZGRyZXNzICovCisjZGVmaW5lIERMTktUU1QJCTB4MDAxMAkvKiBEaXNhYmxlIExpbmsgU3RhdHVzICovCisjZGVmaW5lIERBUEMJCTB4MDAwOAkvKiBEaXNhYmxlIEF1dG9tYXRpYyBQb2xhcml0eSBDb3JyZWN0aW9uICovCisjZGVmaW5lIE1FTkRFQ0wJCTB4MDAwNAkvKiBNRU5ERUMgTG9vcGJhY2sgTW9kZSAqLworI2RlZmluZSBMUlRUU0VMCQkweDAwMDIJLyogTG93IFJlY2VpdmUgVHJlc2hvbGQvVHJhbnNtaXQgTW9kZSBTZWxlY3QgKi8KKyNkZWZpbmUgUE9SVFNFTDEJMHgwMDAxCS8qIFBvcnQgU2VsZWN0IEJpdHMgKi8KKyNkZWZpbmUgUE9SVFNFTDIJMHg4MDAwCS8qIFBvcnQgU2VsZWN0IEJpdHMgKi8KKyNkZWZpbmUgSU5UTAkJMHg0MDAwCS8qIEludGVybmFsIExvb3BiYWNrICovCisjZGVmaW5lIERSVFkJCTB4MjAwMAkvKiBEaXNhYmxlIFJldHJ5ICovCisjZGVmaW5lIEZDT0xMCQkweDEwMDAJLyogRm9yY2UgQ29sbGlzaW9uICovCisjZGVmaW5lIERYTVRGQ1MJCTB4MDgwMAkvKiBEaXNhYmxlIFRyYW5zbWl0IENSQyAqLworI2RlZmluZSBMT09QCQkweDA0MDAJLyogTG9vcGJhY2sgRW5hYmxlICovCisjZGVmaW5lIERUWAkJMHgwMjAwCS8qIERpc2FibGUgVHJhbnNtaXR0ZXIgKi8KKyNkZWZpbmUgRFJYCQkweDAxMDAJLyogRGlzYWJsZSBSZWNlaXZlciAqLworCisKKyAgICAvKgorICAgICAqCUJpdCBkZWZpbml0aW9ucyBmb3IgSVNBQ1NSMiAoTWlzY2VsbGFuZW91cyBDb25maWd1cmF0aW9uKQorICAgICAqCisgICAgICoJVGhlc2UgdmFsdWVzIGFyZSBhbHJlYWR5IHN3YXAoKWVkISEKKyAgICAgKi8KKworI2RlZmluZSBBU0VMCQkweDAyMDAJLyogTWVkaWEgSW50ZXJmYWNlIFBvcnQgQXV0byBTZWxlY3QgKi8KKworCisgICAgLyoKKyAgICAgKglCaXQgZGVmaW5pdGlvbnMgZm9yIElTQUNTUjUtNyAoTEVEMS0zIFN0YXR1cykKKyAgICAgKgorICAgICAqCVRoZXNlIHZhbHVlcyBhcmUgYWxyZWFkeSBzd2FwKCllZCEhCisgICAgICovCisKKyNkZWZpbmUgTEVET1VUCQkweDAwODAJLyogQ3VycmVudCBMRUQgU3RhdHVzICovCisjZGVmaW5lIFBTRQkJMHg4MDAwCS8qIFB1bHNlIFN0cmV0Y2hlciBFbmFibGUgKi8KKyNkZWZpbmUgWE1URQkJMHgxMDAwCS8qIEVuYWJsZSBUcmFuc21pdCBTdGF0dXMgU2lnbmFsICovCisjZGVmaW5lIFJWUE9MRQkJMHgwODAwCS8qIEVuYWJsZSBSZWNlaXZlIFBvbGFyaXR5IFNpZ25hbCAqLworI2RlZmluZSBSQ1ZFCQkweDA0MDAJLyogRW5hYmxlIFJlY2VpdmUgU3RhdHVzIFNpZ25hbCAqLworI2RlZmluZSBKQUJFCQkweDAyMDAJLyogRW5hYmxlIEphYmJlciBTaWduYWwgKi8KKyNkZWZpbmUgQ09MRQkJMHgwMTAwCS8qIEVuYWJsZSBDb2xsaXNpb24gU2lnbmFsICovCisKKworICAgIC8qCisgICAgICoJUmVjZWl2ZSBEZXNjcmlwdG9yIFJpbmcgRW50cnkKKyAgICAgKi8KKworc3RydWN0IFJEUkUgeworICAgIHZvbGF0aWxlIHVfc2hvcnQgUk1EMDsJLyogTEFEUlsxNTowXSAqLworICAgIHZvbGF0aWxlIHVfc2hvcnQgUk1EMTsJLyogSEFEUlsyMzoxNl0gfCBSZWNlaXZlIEZsYWdzICovCisgICAgdm9sYXRpbGUgdV9zaG9ydCBSTUQyOwkvKiBCdWZmZXIgQnl0ZSBDb3VudCAodHdvJ3MgY29tcGxlbWVudCkgKi8KKyAgICB2b2xhdGlsZSB1X3Nob3J0IFJNRDM7CS8qIE1lc3NhZ2UgQnl0ZSBDb3VudCAqLworfTsKKworCisgICAgLyoKKyAgICAgKglUcmFuc21pdCBEZXNjcmlwdG9yIFJpbmcgRW50cnkKKyAgICAgKi8KKworc3RydWN0IFREUkUgeworICAgIHZvbGF0aWxlIHVfc2hvcnQgVE1EMDsJLyogTEFEUlsxNTowXSAqLworICAgIHZvbGF0aWxlIHVfc2hvcnQgVE1EMTsJLyogSEFEUlsyMzoxNl0gfCBUcmFuc21pdCBGbGFncyAqLworICAgIHZvbGF0aWxlIHVfc2hvcnQgVE1EMjsJLyogQnVmZmVyIEJ5dGUgQ291bnQgKHR3bydzIGNvbXBsZW1lbnQpICovCisgICAgdm9sYXRpbGUgdV9zaG9ydCBUTUQzOwkvKiBFcnJvciBGbGFncyAqLworfTsKKworCisgICAgLyoKKyAgICAgKglSZWNlaXZlIEZsYWdzCisgICAgICovCisKKyNkZWZpbmUgUkZfT1dOCQkweDAwODAJLyogUENuZXQtSVNBIGNvbnRyb2xsZXIgb3ducyB0aGUgZGVzY3JpcHRvciAqLworI2RlZmluZSBSRl9FUlIJCTB4MDA0MAkvKiBFcnJvciAqLworI2RlZmluZSBSRl9GUkFNCQkweDAwMjAJLyogRnJhbWluZyBFcnJvciAqLworI2RlZmluZSBSRl9PRkxPCQkweDAwMTAJLyogT3ZlcmZsb3cgRXJyb3IgKi8KKyNkZWZpbmUgUkZfQ1JDCQkweDAwMDgJLyogQ1JDIEVycm9yICovCisjZGVmaW5lIFJGX0JVRkYJCTB4MDAwNAkvKiBCdWZmZXIgRXJyb3IgKi8KKyNkZWZpbmUgUkZfU1RQCQkweDAwMDIJLyogU3RhcnQgb2YgUGFja2V0ICovCisjZGVmaW5lIFJGX0VOUAkJMHgwMDAxCS8qIEVuZCBvZiBQYWNrZXQgKi8KKworCisgICAgLyoKKyAgICAgKglUcmFuc21pdCBGbGFncworICAgICAqLworCisjZGVmaW5lIFRGX09XTgkJMHgwMDgwCS8qIFBDbmV0LUlTQSBjb250cm9sbGVyIG93bnMgdGhlIGRlc2NyaXB0b3IgKi8KKyNkZWZpbmUgVEZfRVJSCQkweDAwNDAJLyogRXJyb3IgKi8KKyNkZWZpbmUgVEZfQUREX0ZDUwkweDAwMjAJLyogQ29udHJvbHMgRkNTIEdlbmVyYXRpb24gKi8KKyNkZWZpbmUgVEZfTU9SRQkJMHgwMDEwCS8qIE1vcmUgdGhhbiBvbmUgcmV0cnkgbmVlZGVkICovCisjZGVmaW5lIFRGX09ORQkJMHgwMDA4CS8qIE9uZSByZXRyeSBuZWVkZWQgKi8KKyNkZWZpbmUgVEZfREVGCQkweDAwMDQJLyogRGVmZXJyZWQgKi8KKyNkZWZpbmUgVEZfU1RQCQkweDAwMDIJLyogU3RhcnQgb2YgUGFja2V0ICovCisjZGVmaW5lIFRGX0VOUAkJMHgwMDAxCS8qIEVuZCBvZiBQYWNrZXQgKi8KKworCisgICAgLyoKKyAgICAgKglFcnJvciBGbGFncworICAgICAqLworCisjZGVmaW5lIEVGX0JVRkYJCTB4MDA4MAkvKiBCdWZmZXIgRXJyb3IgKi8KKyNkZWZpbmUgRUZfVUZMTwkJMHgwMDQwCS8qIFVuZGVyZmxvdyBFcnJvciAqLworI2RlZmluZSBFRl9MQ09MCQkweDAwMTAJLyogTGF0ZSBDb2xsaXNpb24gKi8KKyNkZWZpbmUgRUZfTENBUgkJMHgwMDA4CS8qIExvc3Mgb2YgQ2FycmllciAqLworI2RlZmluZSBFRl9SVFJZCQkweDAwMDQJLyogUmV0cnkgRXJyb3IgKi8KKyNkZWZpbmUgRUZfVERSCQkweGZmMDMJLyogVGltZSBEb21haW4gUmVmbGVjdG9tZXRyeSAqLworCisKKworICAgIC8qCisgICAgICoJTUM2ODIzMCBQYXJhbGxlbCBJbnRlcmZhY2UvVGltZXIKKyAgICAgKi8KKworc3RydWN0IE1DNjgyMzAgeworICAgIHZvbGF0aWxlIHVfY2hhciBQR0NSOwkvKiBQb3J0IEdlbmVyYWwgQ29udHJvbCBSZWdpc3RlciAqLworICAgIHVfY2hhciBQYWQxWzFdOworICAgIHZvbGF0aWxlIHVfY2hhciBQU1JSOwkvKiBQb3J0IFNlcnZpY2UgUmVxdWVzdCBSZWdpc3RlciAqLworICAgIHVfY2hhciBQYWQyWzFdOworICAgIHZvbGF0aWxlIHVfY2hhciBQQUREUjsJLyogUG9ydCBBIERhdGEgRGlyZWN0aW9uIFJlZ2lzdGVyICovCisgICAgdV9jaGFyIFBhZDNbMV07CisgICAgdm9sYXRpbGUgdV9jaGFyIFBCRERSOwkvKiBQb3J0IEIgRGF0YSBEaXJlY3Rpb24gUmVnaXN0ZXIgKi8KKyAgICB1X2NoYXIgUGFkNFsxXTsKKyAgICB2b2xhdGlsZSB1X2NoYXIgUENERFI7CS8qIFBvcnQgQyBEYXRhIERpcmVjdGlvbiBSZWdpc3RlciAqLworICAgIHVfY2hhciBQYWQ1WzFdOworICAgIHZvbGF0aWxlIHVfY2hhciBQSVZSOwkvKiBQb3J0IEludGVycnVwdCBWZWN0b3IgUmVnaXN0ZXIgKi8KKyAgICB1X2NoYXIgUGFkNlsxXTsKKyAgICB2b2xhdGlsZSB1X2NoYXIgUEFDUjsJLyogUG9ydCBBIENvbnRyb2wgUmVnaXN0ZXIgKi8KKyAgICB1X2NoYXIgUGFkN1sxXTsKKyAgICB2b2xhdGlsZSB1X2NoYXIgUEJDUjsJLyogUG9ydCBCIENvbnRyb2wgUmVnaXN0ZXIgKi8KKyAgICB1X2NoYXIgUGFkOFsxXTsKKyAgICB2b2xhdGlsZSB1X2NoYXIgUEFEUjsJLyogUG9ydCBBIERhdGEgUmVnaXN0ZXIgKi8KKyAgICB1X2NoYXIgUGFkOVsxXTsKKyAgICB2b2xhdGlsZSB1X2NoYXIgUEJEUjsJLyogUG9ydCBCIERhdGEgUmVnaXN0ZXIgKi8KKyAgICB1X2NoYXIgUGFkMTBbMV07CisgICAgdm9sYXRpbGUgdV9jaGFyIFBBQVI7CS8qIFBvcnQgQSBBbHRlcm5hdGUgUmVnaXN0ZXIgKi8KKyAgICB1X2NoYXIgUGFkMTFbMV07CisgICAgdm9sYXRpbGUgdV9jaGFyIFBCQVI7CS8qIFBvcnQgQiBBbHRlcm5hdGUgUmVnaXN0ZXIgKi8KKyAgICB1X2NoYXIgUGFkMTJbMV07CisgICAgdm9sYXRpbGUgdV9jaGFyIFBDRFI7CS8qIFBvcnQgQyBEYXRhIFJlZ2lzdGVyICovCisgICAgdV9jaGFyIFBhZDEzWzFdOworICAgIHZvbGF0aWxlIHVfY2hhciBQU1I7CS8qIFBvcnQgU3RhdHVzIFJlZ2lzdGVyICovCisgICAgdV9jaGFyIFBhZDE0WzVdOworICAgIHZvbGF0aWxlIHVfY2hhciBUQ1I7CS8qIFRpbWVyIENvbnRyb2wgUmVnaXN0ZXIgKi8KKyAgICB1X2NoYXIgUGFkMTVbMV07CisgICAgdm9sYXRpbGUgdV9jaGFyIFRJVlI7CS8qIFRpbWVyIEludGVycnVwdCBWZWN0b3IgUmVnaXN0ZXIgKi8KKyAgICB1X2NoYXIgUGFkMTZbM107CisgICAgdm9sYXRpbGUgdV9jaGFyIENQUkg7CS8qIENvdW50ZXIgUHJlbG9hZCBSZWdpc3RlciAoSGlnaCkgKi8KKyAgICB1X2NoYXIgUGFkMTdbMV07CisgICAgdm9sYXRpbGUgdV9jaGFyIENQUk07CS8qIENvdW50ZXIgUHJlbG9hZCBSZWdpc3RlciAoTWlkKSAqLworICAgIHVfY2hhciBQYWQxOFsxXTsKKyAgICB2b2xhdGlsZSB1X2NoYXIgQ1BSTDsJLyogQ291bnRlciBQcmVsb2FkIFJlZ2lzdGVyIChMb3cpICovCisgICAgdV9jaGFyIFBhZDE5WzNdOworICAgIHZvbGF0aWxlIHVfY2hhciBDTlRSSDsJLyogQ291bnQgUmVnaXN0ZXIgKEhpZ2gpICovCisgICAgdV9jaGFyIFBhZDIwWzFdOworICAgIHZvbGF0aWxlIHVfY2hhciBDTlRSTTsJLyogQ291bnQgUmVnaXN0ZXIgKE1pZCkgKi8KKyAgICB1X2NoYXIgUGFkMjFbMV07CisgICAgdm9sYXRpbGUgdV9jaGFyIENOVFJMOwkvKiBDb3VudCBSZWdpc3RlciAoTG93KSAqLworICAgIHVfY2hhciBQYWQyMlsxXTsKKyAgICB2b2xhdGlsZSB1X2NoYXIgVFNSOwkvKiBUaW1lciBTdGF0dXMgUmVnaXN0ZXIgKi8KKyAgICB1X2NoYXIgUGFkMjNbMTFdOworfTsKKworCisgICAgLyoKKyAgICAgKglBcmlhZG5lIEV4cGFuc2lvbiBCb2FyZCBTdHJ1Y3R1cmUKKyAgICAgKi8KKworI2RlZmluZSBBUklBRE5FX0xBTkNFCQkweDM2MAorCisjZGVmaW5lIEFSSUFETkVfUElUCQkweDEwMDAKKworI2RlZmluZSBBUklBRE5FX0JPT1RQUk9NCTB4NDAwMAkvKiBJIGd1ZXNzIGl0J3MgaGVyZSA6LSkgKi8KKyNkZWZpbmUgQVJJQURORV9CT09UUFJPTV9TSVpFCTB4NDAwMAorCisjZGVmaW5lIEFSSUFETkVfUkFNCQkweDgwMDAJLyogQWx3YXlzIGFjY2VzcyBXT1JEcyEhICovCisjZGVmaW5lIEFSSUFETkVfUkFNX1NJWkUJMHg4MDAwCisK