LyoNCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAqICAgIENDMzIyMCBTREsgLSB2MC4xMC4wMC4wMCANCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAqDQogKiAgQ29weXJpZ2h0IChDKSAyMDE1IFRleGFzIEluc3RydW1lbnRzIEluY29ycG9yYXRlZCAtIGh0dHA6Ly93d3cudGkuY29tLyANCiAqICANCiAqICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgDQogKiAgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIA0KICogIGFyZSBtZXQ6DQogKg0KICogICAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgDQogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuDQogKg0KICogICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQNCiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgDQogKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgICANCiAqICAgIGRpc3RyaWJ1dGlvbi4NCiAqDQogKiAgICBOZWl0aGVyIHRoZSBuYW1lIG9mIFRleGFzIEluc3RydW1lbnRzIEluY29ycG9yYXRlZCBub3IgdGhlIG5hbWVzIG9mDQogKiAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkDQogKiAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uDQogKg0KICogIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgDQogKiAgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgDQogKiAgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SDQogKiAgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgDQogKiAgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIA0KICogIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgDQogKiAgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsDQogKiAgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZDQogKiAgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCANCiAqICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgDQogKiAgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4NCiAqICANCiAqLw0KDQojaWZuZGVmIF9fSFdfSElCM1AzX0hfXw0KI2RlZmluZSBfX0hXX0hJQjNQM19IX18NCg0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLy8NCi8vIFRoZSBmb2xsb3dpbmcgYXJlIGRlZmluZXMgZm9yIHRoZSBISUIzUDMgcmVnaXN0ZXIgb2Zmc2V0cy4NCi8vDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQojZGVmaW5lIEhJQjNQM19PX01FTV9ISUJfUkVRICAgIDB4MDAwMDAwMDANCiNkZWZpbmUgSElCM1AzX09fTUVNX0hJQl9SVENfVElNRVJfRU5BQkxFIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNA0KDQojZGVmaW5lIEhJQjNQM19PX01FTV9ISUJfUlRDX1RJTUVSX1JFU0VUIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOA0KDQojZGVmaW5lIEhJQjNQM19PX01FTV9ISUJfUlRDX1RJTUVSX1JFQUQgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBDDQoNCiNkZWZpbmUgSElCM1AzX09fTUVNX0hJQl9SVENfVElNRVJfTFNXIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMA0KDQojZGVmaW5lIEhJQjNQM19PX01FTV9ISUJfUlRDX1RJTUVSX01TVyBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTQNCg0KI2RlZmluZSBISUIzUDNfT19NRU1fSElCX1JUQ19XQUtFX0VOIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxOA0KDQojZGVmaW5lIEhJQjNQM19PX01FTV9ISUJfUlRDX1dBS0VfTFNXX0NPTkYgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFDDQoNCiNkZWZpbmUgSElCM1AzX09fTUVNX0hJQl9SVENfV0FLRV9NU1dfQ09ORiBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjANCg0KI2RlZmluZSBISUIzUDNfT19NRU1fSU5UX09TQ19DT05GIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyQw0KDQojZGVmaW5lIEhJQjNQM19PX01FTV9YVEFMX09TQ19DT05GIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzNA0KDQojZGVmaW5lIEhJQjNQM19PX01FTV9CR0FQX1BBUkFNRVRFUlMwIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzOA0KDQojZGVmaW5lIEhJQjNQM19PX01FTV9CR0FQX1BBUkFNRVRFUlMxIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzQw0KDQojZGVmaW5lIEhJQjNQM19PX01FTV9ISUJfREVURUNUSU9OX1NUQVRVUyBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDANCg0KI2RlZmluZSBISUIzUDNfT19NRU1fSElCX01JU0NfQ09OVFJPTFMgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQ0DQoNCiNkZWZpbmUgSElCM1AzX09fTUVNX0hJQl9DT05GSUcgMHgwMDAwMDA1MA0KI2RlZmluZSBISUIzUDNfT19NRU1fSElCX1JUQ19JUlFfRU5BQkxFIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA1NA0KDQojZGVmaW5lIEhJQjNQM19PX01FTV9ISUJfUlRDX0lSUV9MU1dfQ09ORiBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNTgNCg0KI2RlZmluZSBISUIzUDNfT19NRU1fSElCX1JUQ19JUlFfTVNXX0NPTkYgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDVDDQoNCiNkZWZpbmUgSElCM1AzX09fTUVNX0hJQl9VQVJUX0NPTkYgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwDQoNCiNkZWZpbmUgSElCM1AzX09fTUVNX0dQSU9fV0FLRV9FTiBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDQNCg0KI2RlZmluZSBISUIzUDNfT19NRU1fR1BJT19XQUtFX0NPTkYgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDA4DQoNCiNkZWZpbmUgSElCM1AzX09fTUVNX1BBRF9PRU5fUkVUMzNfQ09ORiBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MEMNCg0KI2RlZmluZSBISUIzUDNfT19NRU1fVUFSVF9SVFNfT0VOX1JFVDMzX0NPTkYgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDEwDQoNCiNkZWZpbmUgSElCM1AzX09fTUVNX0pUQUdfQ09ORiAgMHgwMDAwMDQxNA0KI2RlZmluZSBISUIzUDNfT19NRU1fSElCX1JFRzAgICAweDAwMDAwNDE4DQojZGVmaW5lIEhJQjNQM19PX01FTV9ISUJfUkVHMSAgIDB4MDAwMDA0MUMNCiNkZWZpbmUgSElCM1AzX09fTUVNX0hJQl9SRUcyICAgMHgwMDAwMDQyMA0KI2RlZmluZSBISUIzUDNfT19NRU1fSElCX1JFRzMgICAweDAwMDAwNDI0DQojZGVmaW5lIEhJQjNQM19PX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzAgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDVDDQoNCiNkZWZpbmUgSElCM1AzX09fTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0NjANCg0KI2RlZmluZSBISUIzUDNfT19NRU1fSElCX01JU0NfQ09ORklHIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQ2NA0KDQojZGVmaW5lIEhJQjNQM19PX01FTV9ISUJfV0FLRV9TVEFUVVMgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDY4DQoNCiNkZWZpbmUgSElCM1AzX09fTUVNX0hJQl9MUERTX0dQSU9fU0VMIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQ2Qw0KDQojZGVmaW5lIEhJQjNQM19PX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzIgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDcwDQoNCiNkZWZpbmUgSElCM1AzX09fSElCQU5BX1NQQVJFX0xPV1YgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDc0DQoNCiNkZWZpbmUgSElCM1AzX09fSElCX1RNVVhfQ1RSTCAgMHgwMDAwMDQ3OA0KI2RlZmluZSBISUIzUDNfT19ISUJfMVAyXzFQOF9MRE9fVFJJTSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0N0MNCg0KI2RlZmluZSBISUIzUDNfT19ISUJfQ09NUF9UUklNICAweDAwMDAwNDgwDQojZGVmaW5lIEhJQjNQM19PX0hJQl9FTl9UUyAgICAgIDB4MDAwMDA0ODQNCiNkZWZpbmUgSElCM1AzX09fSElCXzFQOFZfREVUX0VOIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQ4OA0KDQojZGVmaW5lIEhJQjNQM19PX0hJQl9WQkFUX01PTl9FTiBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0OEMNCg0KI2RlZmluZSBISUIzUDNfT19ISUJfTkhJQl9FTkFCTEUgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDkwDQoNCiNkZWZpbmUgSElCM1AzX09fSElCX1VBUlRfUlRTX1NXX0VOQUJMRSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0OTQNCg0KDQoNCg0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi8vDQovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUNCi8vIEhJQjNQM19PX01FTV9ISUJfUkVRIHJlZ2lzdGVyLg0KLy8NCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JFUV9yZXNlcnZlZF9NIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkUwMA0KDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JFUV9yZXNlcnZlZF9TIDkNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfUkVRX05VMV9NIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFGQw0KDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JFUV9OVTFfUyAyDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JFUV9tZW1faGliX2Nsa19kaXNhYmxlIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMiAgLy8gMSAtIFNwZWNpZmllcyB0aGF0IHRoZSBIaWJlcmFudGUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbW9kZSBpcyB3aXRob3V0IGNsb2NrcyA7IDAgLQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTcGVjaWZpZWQgdGhhdCB0aGUgSGliZXJuYXRlIG1vZGUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXMgd2l0aCBjbG9ja3MgVGhpcyByZWdpc3RlciB3aWxsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJlIHJlc2V0IGR1cmluZyBIaWJlcm5hdGUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLVdPLUNsa3MgbW9kZSAoYnV0IG5vdCBkdXJpbmcNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSGliZXJuYXRlLVctQ2xrcyBtb2RlKS4NCg0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9SRVFfbWVtX2hpYl9yZXEgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxICAvLyAxIC0gUmVxdWVzdCBmb3IgaGliZXJuYXRlIG1vZGUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gKFRoaXMgaXMgYW4gYXV0by1jbGVhciBiaXQpIDsgMCAtDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERvbm90IHJlcXVlc3QgZm9yIGhpYmVybmF0ZSBtb2RlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgcmVnaXN0ZXIgd2lsbCBiZSByZXNldA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBkdXJpbmcgSGliZXJuYXRlIC1XTy1DbGtzIG1vZGUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gKGJ1dCBub3QgZHVyaW5nIEhpYmVybmF0ZS1XLUNsa3MNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbW9kZSkuDQoNCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQovLw0KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlDQovLyBISUIzUDNfT19NRU1fSElCX1JUQ19USU1FUl9FTkFCTEUgcmVnaXN0ZXIuDQovLw0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfUlRDX1RJTUVSX0VOQUJMRV9yZXNlcnZlZF9NIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRQ0KDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JUQ19USU1FUl9FTkFCTEVfcmVzZXJ2ZWRfUyAxDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JUQ19USU1FUl9FTkFCTEVfbWVtX2hpYl9ydGNfdGltZXJfZW5hYmxlIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMSAgLy8gMSAtIEVuYWJsZSB0aGUgUlRDIHRpbWVyIHRvDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN0YXJ0IHJ1bm5pbmcgOyAwIC0gS2VlcCB0aGUgUlRDDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRpbWVyIGRpc2FibGVkIFRoaXMgcmVnaXN0ZXIgd2lsbA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBiZSByZXNldCBkdXJpbmcgSGliZXJuYXRlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC1XTy1DbGtzIG1vZGUgKGJ1dCBub3QgZHVyaW5nDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEhpYmVybmF0ZS1XLUNsa3MgbW9kZSkuDQoNCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQovLw0KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlDQovLyBISUIzUDNfT19NRU1fSElCX1JUQ19USU1FUl9SRVNFVCByZWdpc3Rlci4NCi8vDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9SVENfVElNRVJfUkVTRVRfcmVzZXJ2ZWRfTSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkUNCg0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9SVENfVElNRVJfUkVTRVRfcmVzZXJ2ZWRfUyAxDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JUQ19USU1FUl9SRVNFVF9tZW1faGliX3J0Y190aW1lcl9yZXNldCBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEgIC8vIDEgLSBSZXNldCB0aGUgUlRDIHRpbWVyIDsgMCAtDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERvbm90IHJlc2V0IHRoZSBSVEMgdGltZXIuIFRoaXMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXMgYW4gYXV0by1jbGVhciBiaXQuIFRoaXMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVnaXN0ZXIgd2lsbCBiZSByZXNldCBkdXJpbmcNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSGliZXJuYXRlIC1XTy1DbGtzIG1vZGUgKGJ1dCBub3QNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZHVyaW5nIEhpYmVybmF0ZS1XLUNsa3MgbW9kZSkuDQoNCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQovLw0KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlDQovLyBISUIzUDNfT19NRU1fSElCX1JUQ19USU1FUl9SRUFEIHJlZ2lzdGVyLg0KLy8NCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JUQ19USU1FUl9SRUFEX3Jlc2VydmVkX00gXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFDQoNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfUlRDX1RJTUVSX1JFQURfcmVzZXJ2ZWRfUyAxDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JUQ19USU1FUl9SRUFEX21lbV9oaWJfcnRjX3RpbWVyX3JlYWQgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxICAvLyAxIC0gTGF0Y2ggdGhlIHJ1bm5pbmcgUlRDIHRpbWVyDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGludG8gbG9jYWwgcmVnaXN0ZXJzLiBBZnRlcg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwcm9ncmFtbWluZyB0aGlzIGJpdCB0byAxLCB0aGUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRi93IGNhbiByZWFkIHRoZSBsYXRjaGVkIFJUQw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aW1lciB2YWx1ZXMgZnJvbQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBNRU1fSElCX1JUQ19USU1FUl9MU1cgYW5kDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1FTV9ISUJfUlRDX1RJTUVSX01TVy4gQmVmb3JlIHRoZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGL3cgKEFQUFMgb3IgTldQKSB3YW50cyB0byByZWFkDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBSVEMtVGltZXIsIGl0IGhhcyB0byBwcm9ncmFtDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgYml0IHRvIDEsIHRoZW4gb25seSByZWFkIHRoZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBNU1cgYW5kIExTVyB2YWx1ZXMuIFRoaXMgaXMgYW4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXV0by1jbGVhciBiaXQuIFRoaXMgcmVnaXN0ZXINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2lsbCBiZSByZXNldCBkdXJpbmcgSGliZXJuYXRlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC1XTy1DbGtzIG1vZGUgKGJ1dCBub3QgZHVyaW5nDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEhpYmVybmF0ZS1XLUNsa3MgbW9kZSkuDQoNCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQovLw0KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlDQovLyBISUIzUDNfT19NRU1fSElCX1JUQ19USU1FUl9MU1cgcmVnaXN0ZXIuDQovLw0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfUlRDX1RJTUVSX0xTV19oaWJfcnRjX3RpbWVyX2xzd19NIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiAgLy8gTG93ZXIgMzJiIHZhbHVlIG9mIHRoZSBsYXRjaGVkDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJUQy1UaW1lci4NCg0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9SVENfVElNRVJfTFNXX2hpYl9ydGNfdGltZXJfbHN3X1MgMA0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi8vDQovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUNCi8vIEhJQjNQM19PX01FTV9ISUJfUlRDX1RJTUVSX01TVyByZWdpc3Rlci4NCi8vDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9SVENfVElNRVJfTVNXX3Jlc2VydmVkX00gXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwDQoNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfUlRDX1RJTUVSX01TV19yZXNlcnZlZF9TIDE2DQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JUQ19USU1FUl9NU1dfaGliX3J0Y190aW1lcl9tc3dfTSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkYgIC8vIFVwcGVyIDMyYiB2YWx1ZSBvZiB0aGUgbGF0Y2hlZA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSVEMtVGltZXIuDQoNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfUlRDX1RJTUVSX01TV19oaWJfcnRjX3RpbWVyX21zd19TIDANCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQovLw0KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlDQovLyBISUIzUDNfT19NRU1fSElCX1JUQ19XQUtFX0VOIHJlZ2lzdGVyLg0KLy8NCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JUQ19XQUtFX0VOX3Jlc2VydmVkX00gXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFDQoNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfUlRDX1dBS0VfRU5fcmVzZXJ2ZWRfUyAxDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JUQ19XQUtFX0VOX21lbV9oaWJfcnRjX3dha2VfZW4gXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxICAvLyAxIC0gRW5hYmxlIHRoZSBSVEMgdGltZXIgYmFzZWQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2FrZXVwIGR1cmluZyBIaWJlcm5hdGUgbW9kZSA7IDANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLSBEaXNhYmxlIHRoZSBSVEMgdGltZXIgYmFzZWQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2FrZXVwIGR1cmluZyBIaWJlcm5hdGUgbW9kZSBUaGlzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZ2lzdGVyIHdpbGwgYmUgcmVzZXQgZHVyaW5nDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEhpYmVybmF0ZS1XTy1DbGtzIG1vZGUgKGJ1dCBub3QNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZHVyaW5nIEhpYmVybmF0ZS1XLUNsa3MgbW9kZSkuDQoNCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQovLw0KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlDQovLyBISUIzUDNfT19NRU1fSElCX1JUQ19XQUtFX0xTV19DT05GIHJlZ2lzdGVyLg0KLy8NCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JUQ19XQUtFX0xTV19DT05GX21lbV9oaWJfcnRjX3dha2VfbHN3X2NvbmZfTSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYgIC8vIENvbmZpZ3VyYXRpb24gZm9yIFJUQy1UaW1lcg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXYWtldXAgKExvd2VyIDMyYiB3b3JkKQ0KDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JUQ19XQUtFX0xTV19DT05GX21lbV9oaWJfcnRjX3dha2VfbHN3X2NvbmZfUyAwDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLy8NCi8vIFRoZSBmb2xsb3dpbmcgYXJlIGRlZmluZXMgZm9yIHRoZSBiaXQgZmllbGRzIGluIHRoZQ0KLy8gSElCM1AzX09fTUVNX0hJQl9SVENfV0FLRV9NU1dfQ09ORiByZWdpc3Rlci4NCi8vDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9SVENfV0FLRV9NU1dfQ09ORl9yZXNlcnZlZF9NIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMA0KDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JUQ19XQUtFX01TV19DT05GX3Jlc2VydmVkX1MgMTYNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfUlRDX1dBS0VfTVNXX0NPTkZfbWVtX2hpYl9ydGNfd2FrZV9tc3dfY29uZl9NIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwRkZGRiAgLy8gQ29uZmlndXJhdGlvbiBmb3IgUlRDLVRpbWVyDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdha2V1cCAoVXBwZXIgMTZiIHdvcmQpDQoNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfUlRDX1dBS0VfTVNXX0NPTkZfbWVtX2hpYl9ydGNfd2FrZV9tc3dfY29uZl9TIDANCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQovLw0KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlDQovLyBISUIzUDNfT19NRU1fSU5UX09TQ19DT05GIHJlZ2lzdGVyLg0KLy8NCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQojZGVmaW5lIEhJQjNQM19NRU1fSU5UX09TQ19DT05GX3Jlc2VydmVkX00gXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYwMDAwDQoNCiNkZWZpbmUgSElCM1AzX01FTV9JTlRfT1NDX0NPTkZfcmVzZXJ2ZWRfUyAxNg0KI2RlZmluZSBISUIzUDNfTUVNX0lOVF9PU0NfQ09ORl9jbV9jbGtfZ29vZF8zMmtfaW50IFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMCAgLy8gMSAtIEludGVybmFsIDMya0h6IE9zY2lsbGF0b3IgaXMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFsaWQgOyAwIC0gSW50ZXJuYWwgMzJrDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9zY2lsbGF0b3IgY2xrIGlzIG5vdCB2YWxpZA0KDQojZGVmaW5lIEhJQjNQM19NRU1fSU5UX09TQ19DT05GX21lbV9jbV9pbnRvc2NfMzJrX3NwYXJlX00gXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA3RTAwDQoNCiNkZWZpbmUgSElCM1AzX01FTV9JTlRfT1NDX0NPTkZfbWVtX2NtX2ludG9zY18zMmtfc3BhcmVfUyA5DQojZGVmaW5lIEhJQjNQM19NRU1fSU5UX09TQ19DT05GX21lbV9jbV9lbl9pbnRvc2NfMzJrX292ZXJyaWRlX2N0cmwgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwICAvLyBXaGVuIDEsIHRoZSBJTlRfMzJLX09TQ19FTiBjb21lcw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmcm9tIGJpdCBbMF0gb2YgdGhpcyByZWdpc3RlciwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZWxzZSBjb21lcyBmcm9tIHRoZSBGU00uIFRoaXMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVnaXN0ZXIgd2lsbCBiZSByZXNldCBkdXJpbmcNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSGliZXJuYXRlLVdPLUNsa3MgbW9kZSAoYnV0IG5vdA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBkdXJpbmcgSGliZXJuYXRlLVctQ2xrcyBtb2RlKQ0KDQojZGVmaW5lIEhJQjNQM19NRU1fSU5UX09TQ19DT05GX05VMSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODANCg0KI2RlZmluZSBISUIzUDNfTUVNX0lOVF9PU0NfQ09ORl9tZW1fY21faW50b3NjXzMya190cmltX00gXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDdFDQoNCiNkZWZpbmUgSElCM1AzX01FTV9JTlRfT1NDX0NPTkZfbWVtX2NtX2ludG9zY18zMmtfdHJpbV9TIDENCiNkZWZpbmUgSElCM1AzX01FTV9JTlRfT1NDX0NPTkZfbWVtX2NtX2VuX2ludG9zY18zMmsgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxICAvLyBPdmVycmlkZSB2YWx1ZSBmb3IgSU5UX09TQ19FTi4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXBwbGljYWJsZSBvbmx5IHdoZW4gYml0IFszXSBvZg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHJlZ2lzdGVyIGlzIHNldCB0byAxLg0KDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLy8NCi8vIFRoZSBmb2xsb3dpbmcgYXJlIGRlZmluZXMgZm9yIHRoZSBiaXQgZmllbGRzIGluIHRoZQ0KLy8gSElCM1AzX09fTUVNX1hUQUxfT1NDX0NPTkYgcmVnaXN0ZXIuDQovLw0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiNkZWZpbmUgSElCM1AzX01FTV9YVEFMX09TQ19DT05GX3Jlc2VydmVkX00gXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRjAwMDAwDQoNCiNkZWZpbmUgSElCM1AzX01FTV9YVEFMX09TQ19DT05GX3Jlc2VydmVkX1MgMjANCiNkZWZpbmUgSElCM1AzX01FTV9YVEFMX09TQ19DT05GX21lbV9jbV9lbl9zbGlfMzJrX292ZXJyaWRlX2N0cmwgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgwMDAwICAvLyBXaGVuIDEsIHRoZSBTTElDRVJfRU4gY29tZXMgZnJvbQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBiaXQgWzEwXSBvZiB0aGlzIHJlZ2lzdGVyLCBlbHNlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbWVzIGZyb20gdGhlIEZTTS4NCg0KI2RlZmluZSBISUIzUDNfTUVNX1hUQUxfT1NDX0NPTkZfbWVtX2NtX2VuX3h0YWxfMzJrX292ZXJyaWRlX2N0cmwgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwICAvLyBXaGVuIDEsIHRoZSBYVEFMX0VOIGNvbWVzIGZyb20NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYml0IFswXSBvZiB0aGlzIHJlZ2lzdGVyLCBlbHNlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbWVzIGZyb20gdGhlIEZTTS4NCg0KI2RlZmluZSBISUIzUDNfTUVNX1hUQUxfT1NDX0NPTkZfY21fY2xrX2dvb2RfeHRhbCBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDAgIC8vIDEgLSBYVEFMIENsayBpcyBnb29kIDsgMCAtIFhUQUwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2xrIGlzIHlldCB0byBiZSB2YWxpZC4NCg0KI2RlZmluZSBISUIzUDNfTUVNX1hUQUxfT1NDX0NPTkZfbWVtX2NtX3h0YWxfdHJpbV9NIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxRjgwMA0KDQojZGVmaW5lIEhJQjNQM19NRU1fWFRBTF9PU0NfQ09ORl9tZW1fY21feHRhbF90cmltX1MgMTENCiNkZWZpbmUgSElCM1AzX01FTV9YVEFMX09TQ19DT05GX21lbV9jbV9lbl9zbGlfMzJrIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMCAgLy8gU0xJQ0VSX0VOIE92ZXJyaWRlIHZhbHVlIDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXBwbGljYWJsZSBvbmx5IHdoZW4gYml0IFsxOV0gb2YNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyByZWdpc3RlciBpcyBzZXQgdG8gMS4NCg0KI2RlZmluZSBISUIzUDNfTUVNX1hUQUxfT1NDX0NPTkZfbWVtX2NtX3NsaV8zMmtfdHJpbV9NIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDM4MA0KDQojZGVmaW5lIEhJQjNQM19NRU1fWFRBTF9PU0NfQ09ORl9tZW1fY21fc2xpXzMya190cmltX1MgNw0KI2RlZmluZSBISUIzUDNfTUVNX1hUQUxfT1NDX0NPTkZfbWVtX2NtX2ZyZWZfMzJrX3NsaWNlcl9pdHJpbV9NIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA3MA0KDQojZGVmaW5lIEhJQjNQM19NRU1fWFRBTF9PU0NfQ09ORl9tZW1fY21fZnJlZl8zMmtfc2xpY2VyX2l0cmltX1MgNA0KI2RlZmluZSBISUIzUDNfTUVNX1hUQUxfT1NDX0NPTkZfbWVtX2NtX2VuX2ZyZWZfMzJrX3NsaWNlciBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDgNCg0KI2RlZmluZSBISUIzUDNfTUVNX1hUQUxfT1NDX0NPTkZfbWVtX2NtX2VuX2lucHV0X3NlbnNlX00gXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA2DQoNCiNkZWZpbmUgSElCM1AzX01FTV9YVEFMX09TQ19DT05GX21lbV9jbV9lbl9pbnB1dF9zZW5zZV9TIDENCiNkZWZpbmUgSElCM1AzX01FTV9YVEFMX09TQ19DT05GX21lbV9jbV9lbl94dGFsXzMyayBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEgIC8vIFhUQUxfRU4gT3ZlcnJpZGUgdmFsdWUgOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBcHBsaWNhYmxlIG9ubHkgd2hlbiBiaXQgWzE4XSBvZg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHJlZ2lzdGVyIGlzIHNldCB0byAxLg0KDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLy8NCi8vIFRoZSBmb2xsb3dpbmcgYXJlIGRlZmluZXMgZm9yIHRoZSBiaXQgZmllbGRzIGluIHRoZQ0KLy8gSElCM1AzX09fTUVNX0JHQVBfUEFSQU1FVEVSUzAgcmVnaXN0ZXIuDQovLw0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiNkZWZpbmUgSElCM1AzX01FTV9CR0FQX1BBUkFNRVRFUlMwX3Jlc2VydmVkX00gXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRjgwMDAwDQoNCiNkZWZpbmUgSElCM1AzX01FTV9CR0FQX1BBUkFNRVRFUlMwX3Jlc2VydmVkX1MgMTkNCiNkZWZpbmUgSElCM1AzX01FTV9CR0FQX1BBUkFNRVRFUlMwX21lbV9lbl9zZXEgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQwMDAwDQoNCiNkZWZpbmUgSElCM1AzX01FTV9CR0FQX1BBUkFNRVRFUlMwX21lbV92Ym9rNGJnX2NvbXBfdHJpbV9NIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxQzAwMA0KDQojZGVmaW5lIEhJQjNQM19NRU1fQkdBUF9QQVJBTUVURVJTMF9tZW1fdmJvazRiZ19jb21wX3RyaW1fUyAxNA0KI2RlZmluZSBISUIzUDNfTUVNX0JHQVBfUEFSQU1FVEVSUzBfbWVtX2JnYXBfZW5fdmJhdF9va180YmcgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwDQoNCiNkZWZpbmUgSElCM1AzX01FTV9CR0FQX1BBUkFNRVRFUlMwX21lbV9iZ2FwX2VuX3Zib2s0YmdfY29tcCBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDANCg0KI2RlZmluZSBISUIzUDNfTUVNX0JHQVBfUEFSQU1FVEVSUzBfbWVtX2JnYXBfZW5fdmJvazRiZ19jb21wX3JlZiBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDANCg0KI2RlZmluZSBISUIzUDNfTUVNX0JHQVBfUEFSQU1FVEVSUzBfbWVtX2JnYXBfc3BhcmVfTSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkYNCg0KI2RlZmluZSBISUIzUDNfTUVNX0JHQVBfUEFSQU1FVEVSUzBfbWVtX2JnYXBfc3BhcmVfUyAwDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLy8NCi8vIFRoZSBmb2xsb3dpbmcgYXJlIGRlZmluZXMgZm9yIHRoZSBiaXQgZmllbGRzIGluIHRoZQ0KLy8gSElCM1AzX09fTUVNX0JHQVBfUEFSQU1FVEVSUzEgcmVnaXN0ZXIuDQovLw0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiNkZWZpbmUgSElCM1AzX01FTV9CR0FQX1BBUkFNRVRFUlMxX3Jlc2VydmVkX00gXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEUwMDAwMDAwDQoNCiNkZWZpbmUgSElCM1AzX01FTV9CR0FQX1BBUkFNRVRFUlMxX3Jlc2VydmVkX1MgMjkNCiNkZWZpbmUgSElCM1AzX01FTV9CR0FQX1BBUkFNRVRFUlMxX21lbV9iZ2FwX2FjdF9pcmVmX2l0cmltX00gXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFGMDAwMDAwDQoNCiNkZWZpbmUgSElCM1AzX01FTV9CR0FQX1BBUkFNRVRFUlMxX21lbV9iZ2FwX2FjdF9pcmVmX2l0cmltX1MgMjQNCiNkZWZpbmUgSElCM1AzX01FTV9CR0FQX1BBUkFNRVRFUlMxX21lbV9iZ2FwX2VuX2FjdF9pcmVmIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOA0KDQojZGVmaW5lIEhJQjNQM19NRU1fQkdBUF9QQVJBTUVURVJTMV9tZW1fYmdhcF9lbl92MmkgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0DQoNCiNkZWZpbmUgSElCM1AzX01FTV9CR0FQX1BBUkFNRVRFUlMxX21lbV9iZ2FwX2VuX2NhcF9zdyBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDINCg0KI2RlZmluZSBISUIzUDNfTUVNX0JHQVBfUEFSQU1FVEVSUzFfbWVtX2JnYXBfZW4gXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxDQoNCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQovLw0KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlDQovLyBISUIzUDNfT19NRU1fSElCX0RFVEVDVElPTl9TVEFUVVMgcmVnaXN0ZXIuDQovLw0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfREVURUNUSU9OX1NUQVRVU19yZXNlcnZlZF9NIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkY4MA0KDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX0RFVEVDVElPTl9TVEFUVVNfcmVzZXJ2ZWRfUyA3DQojZGVmaW5lIEhJQjNQM19NRU1fSElCX0RFVEVDVElPTl9TVEFUVVNfaGliX2ZvcmNlZF9hbmFfc3RhdHVzIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MCAgLy8gMSAtIDEuOCBWIHN1cHBseSBmb3JjZWQgbW9kZS4NCg0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9ERVRFQ1RJT05fU1RBVFVTX2hpYl9mb3JjZWRfZmxhc2hfc3RhdHVzIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNCAgLy8gMSAtIDMuMyBWIHN1cHBseSBmb3JjZWQgbW9kZSBmb3INCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmxhc2ggc3VwcGx5DQoNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfREVURUNUSU9OX1NUQVRVU19oaWJfZXh0X2Nsa19kZXRfb3V0X3N0YXR1cyBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIgIC8vIDEgLSBGb3JjZWQgY2xvY2sgbW9kZQ0KDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX0RFVEVDVElPTl9TVEFUVVNfaGliX3h0YWxfZGV0X291dF9zdGF0dXMgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxICAvLyAxIC0gWFRBTCBjbG9jayBtb2RlDQoNCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQovLw0KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlDQovLyBISUIzUDNfT19NRU1fSElCX01JU0NfQ09OVFJPTFMgcmVnaXN0ZXIuDQovLw0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfTUlTQ19DT05UUk9MU19yZXNlcnZlZF9NIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRjgwMA0KDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX01JU0NfQ09OVFJPTFNfcmVzZXJ2ZWRfUyAxMQ0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9NSVNDX0NPTlRST0xTX21lbV9oaWJfZW5fcG9rX3Bvcl9jb21wIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMA0KDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX01JU0NfQ09OVFJPTFNfbWVtX2hpYl9lbl9wb2tfcG9yX2NvbXBfcmVmIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMA0KDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX01JU0NfQ09OVFJPTFNfbWVtX2hpYl9wb2tfcG9yX2NvbXBfdHJpbV9NIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMA0KDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX01JU0NfQ09OVFJPTFNfbWVtX2hpYl9wb2tfcG9yX2NvbXBfdHJpbV9TIDYNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfTUlTQ19DT05UUk9MU19OVTEgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwDQoNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfTUlTQ19DT05UUk9MU19tZW1faGliX2ZsYXNoX2RldF9lbiBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTANCg0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9NSVNDX0NPTlRST0xTX21lbV9oaWJfZW5fdG11eCBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDENCg0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi8vDQovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUNCi8vIEhJQjNQM19PX01FTV9ISUJfQ09ORklHIHJlZ2lzdGVyLg0KLy8NCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX0NPTkZJR19UT1BfTVVYX0NUUkxfU09QX1NQSU9fTSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDANCg0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9DT05GSUdfVE9QX01VWF9DVFJMX1NPUF9TUElPX1MgMjQNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfQ09ORklHX0VOX0FOQV9ESUdfU0hBUkVEMyBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDAgIC8vIDEgLSBFbmFibGUgVkREX0ZMQVNIX0lORFBfUEFEDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciBkaWdpdGFsIHBhdGggKFNIQVJFRDQpIDsgMCAtDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERpc2FibGUgVkREX0ZMQVNIX0lORFBfUEFEIGZvcg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBkaWdpdGFsIHBhdGggKFNIQVJFRDQpIDsgQmVmb3JlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHByb2dyYW1taW5nIHRoaXMgYml0IHRvIDEsIGVuc3VyZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0IHRoZSBkZXZpY2UgaXMgaW4gRk9SQ0VEIDMuMw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzdXBwbHkgTW9kZSwgd2hpY2ggY2FuIGJlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluZmVycmVkIGZyb20gdGhlIHJlZ2lzdGVyIDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTUVNX0hJQl9ERVRFQ1RJT05fU1RBVFVTIDogMHgwMDQwDQoNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfQ09ORklHX0VOX0FOQV9ESUdfU0hBUkVEMiBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDAgIC8vIDEgLSBFbmFibGUgdGhlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZERF9GQl9HUElPX01VWF9QQUQgZm9yIGRpZ2l0YWwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcGF0aCAoU0hBUkVEMykgOyAwIC0gRGlzYWJsZSB0aGUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVkREX0ZCX0dQSU9fTVVYX1BBRCBmb3IgZGlnaXRhbA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwYXRoIChTSEFSRUQzKSA7IFRoaXMgcGluIGNhbiBiZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1c2VkIG9ubHkgaW4gbW9kZXMgb3RoZXIgdGhhbg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTT1AoIjExMSIpDQoNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfQ09ORklHX0VOX0FOQV9ESUdfU0hBUkVEMSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDAgIC8vIDEgLSBFbmFibGUgdGhlIFBNX1RFU1RfUEFEIGZvcg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBkaWdpdGFsIEdQSU8gcGF0aCAoU0hBUkVEMikgOyAwIC0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRGlzYWJsZSB0aGUgUE1fVEVTVF9QQUQgZm9yDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRpZ2l0YWwgR1BJTyBwYXRoIChTSEFSRUQyKSBUaGlzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHBpbiBjYW4gYmUgdXNlZCBmb3IgZGlnaXRhbCBvbmx5DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluIG1vZGVzIG90aGVyIHRoZW4gU09QLTExMQ0KDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX0NPTkZJR19FTl9BTkFfRElHX1NIQVJFRDAgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwICAvLyAxIC0gRW5hYmxlIHRoZSBYVEFMX04gcGluDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRpZ2l0YWwgR1BJTyBwYXRoIChTSEFSRUQxKTsgMCAtDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERpc2FibGUgdGhlIFhUQUxfTiBwaW4gZGlnaXRhbA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBHUElPIHBhdGggKFNIQVJFRDEpLiBCZWZvcmUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcHJvZ3JhbW1pbmcgdGhpcyBiaXQgdG8gMSwgZW5zdXJlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQgdGhlIGRldmljZSBpcyBpbiBGT1JDRUQgQ0xLDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1vZGUsIHdoaWNoIGNhbiBpbmZlcnJlZCBmcm9tIHRoZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWdpc3RlciA6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1FTV9ISUJfREVURUNUSU9OX1NUQVRVUyA6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDB4MDA0MC4NCg0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9DT05GSUdfbWVtX2hpYl94dGFsX2VuYWJsZSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAgIC8vIDEgLSBFbmFibGUgdGhlIFhUQUwgQ2xvY2sgOyAwIC0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRG9ub3QgZW5hYmxlIHRoZSBYVEFMIENsb2NrLiBUaGlzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJpdCBoYXMgdG8gYmUgcHJvZ3JhbW1lZCB0byAxIChieQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBUFBTIERldmluaXQgRi93KSwgZHVyaW5nIGV4aXQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZnJvbSBPRkYgb3IgSGliX3dvX2Nsa3MgbW9kZXMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFmdGVyIGNoZWNraW5nIGlmIHRoZSBzbG93X2Nsaw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtb2RlIGlzIFhUQUxfQ0xLIG1vZGUuIE9uY2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZW5hYmxlZCB0aGUgWFRBTCB3aWxsIGJlIGRpc2FibGVkDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9ubHkgYWZ0ZXIgZW50ZXJpbmcgSElCX1dPX0NMS1MNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbW9kZS4gVGhpcyByZWdpc3RlciB3aWxsIGJlIHJlc2V0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGR1cmluZyBIaWJlcm5hdGUgLVdPLUNsa3MgbW9kZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAoYnV0IG5vdCBkdXJpbmcgSGliZXJuYXRlLVctQ2xrcw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtb2RlKS4NCg0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi8vDQovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUNCi8vIEhJQjNQM19PX01FTV9ISUJfUlRDX0lSUV9FTkFCTEUgcmVnaXN0ZXIuDQovLw0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfUlRDX0lSUV9FTkFCTEVfSElCX1JUQ19JUlFfRU5BQkxFIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMSAgLy8gMSAtIEVuYWJsZSB0aGUgSElCIFJUQyAtIElSUSA7IDANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLSBEaXNhYmxlIHRoZSBISUIgUlRDIC0gSVJRDQoNCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQovLw0KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlDQovLyBISUIzUDNfT19NRU1fSElCX1JUQ19JUlFfTFNXX0NPTkYgcmVnaXN0ZXIuDQovLw0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfUlRDX0lSUV9MU1dfQ09ORl9ISUJfUlRDX0lSUV9MU1dfQ09ORl9NIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiAgLy8gQ29uZmlndXJhdGlvbiBmb3IgTFNXIG9mIHRoZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSVEMtVGltZXN0YW1wIGF0IHdoaWNoIGludGVycnVwdA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIGJlIGdlbmVyYXRlZA0KDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JUQ19JUlFfTFNXX0NPTkZfSElCX1JUQ19JUlFfTFNXX0NPTkZfUyAwDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLy8NCi8vIFRoZSBmb2xsb3dpbmcgYXJlIGRlZmluZXMgZm9yIHRoZSBiaXQgZmllbGRzIGluIHRoZQ0KLy8gSElCM1AzX09fTUVNX0hJQl9SVENfSVJRX01TV19DT05GIHJlZ2lzdGVyLg0KLy8NCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JUQ19JUlFfTVNXX0NPTkZfSElCX1JUQ19JUlFfTVNXX0NPTkZfTSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkYgIC8vIENvbmZpZ3VyYXRpb24gZm9yIE1TVyBvZiB0aHINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUlRDLVRpbWVzdGFtcCBhdCB3aGljaCB0aGUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW50ZXJydXB0IG5lZWQgdG8gYmUgZ2VuZXJhdGVkDQoNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfUlRDX0lSUV9NU1dfQ09ORl9ISUJfUlRDX0lSUV9NU1dfQ09ORl9TIDANCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQovLw0KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlDQovLyBISUIzUDNfT19NRU1fSElCX1VBUlRfQ09ORiByZWdpc3Rlci4NCi8vDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9VQVJUX0NPTkZfcmVzZXJ2ZWRfTSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkUNCg0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9VQVJUX0NPTkZfcmVzZXJ2ZWRfUyAxDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1VBUlRfQ09ORl9tZW1faGliX3VhcnRfd2FrZV9lbiBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEgIC8vIDEgLSBFbmFibGUgdGhlIFVBUlQtQXV0b25vbW91cw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtb2RlIHdha2V1cCBkdXJpbmcgSGliZXJuYXRlIG1vZGUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gOyBUaGlzIGlzIGFuIGF1dG8tY2xlYXIgYml0LCBvbmNlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHByb2dyYW1tZWQgdG8gMSwgaXQgd2lsbCBsYXRjaGVkDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGludG8gYW4gaW50ZXJuYWwgcmVnaXN0ZXIgd2hpY2gNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVtYWluIGFzc2VydGVkIHVudGlsIHRoZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBIaWItd2FrZXVwIGlzIGluaXRpYXRlZC4NCg0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi8vDQovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUNCi8vIEhJQjNQM19PX01FTV9HUElPX1dBS0VfRU4gcmVnaXN0ZXIuDQovLw0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiNkZWZpbmUgSElCM1AzX01FTV9HUElPX1dBS0VfRU5fcmVzZXJ2ZWRfTSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGMDANCg0KI2RlZmluZSBISUIzUDNfTUVNX0dQSU9fV0FLRV9FTl9yZXNlcnZlZF9TIDgNCiNkZWZpbmUgSElCM1AzX01FTV9HUElPX1dBS0VfRU5fbWVtX2dwaW9fd2FrZV9lbl9NIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGRiAgLy8gMSAtIEVuYWJsZSB0aGUgR1BJTy1BdXRvbm9tb3VzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1vZGUgd2FrZXVwIGR1cmluZyBIaWJlcm5hdGUgbW9kZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA7IFRoaXMgaXMgYW4gYXV0by1jbGVhciBiaXQsIG9uY2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcHJvZ3JhbW1lZCB0byAxLCBpdCB3aWxsIGxhdGNoZWQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW50byBhbiBpbnRlcm5hbCByZWdpc3RlciB3aGljaA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZW1haW4gYXNzZXJ0ZWQgdW50aWwgdGhlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEhpYi13YWtldXAgaXMgaW5pdGlhdGVkLg0KDQojZGVmaW5lIEhJQjNQM19NRU1fR1BJT19XQUtFX0VOX21lbV9ncGlvX3dha2VfZW5fUyAwDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLy8NCi8vIFRoZSBmb2xsb3dpbmcgYXJlIGRlZmluZXMgZm9yIHRoZSBiaXQgZmllbGRzIGluIHRoZQ0KLy8gSElCM1AzX09fTUVNX0dQSU9fV0FLRV9DT05GIHJlZ2lzdGVyLg0KLy8NCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQojZGVmaW5lIEhJQjNQM19NRU1fR1BJT19XQUtFX0NPTkZfcmVzZXJ2ZWRfTSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDANCg0KI2RlZmluZSBISUIzUDNfTUVNX0dQSU9fV0FLRV9DT05GX3Jlc2VydmVkX1MgMTYNCiNkZWZpbmUgSElCM1AzX01FTV9HUElPX1dBS0VfQ09ORl9tZW1fZ3Bpb193YWtlX2NvbmZfTSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkYgIC8vIENvbmZpZ3VyYXRpb24gdG8gc2F5IHdoZXRoZXIgdGhlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEdQSU8gd2FrZXVwIGhhcyB0byBoYXBwZW4gb24NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTGV2ZWwwIG9yIGZhbGxpbmctZWRnZSBmb3IgdGhlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGdpdmVuIGdyb3VwLiDigJwwMOKAPyDigJMgTGV2ZWwwIOKAnDAx4oA/IOKAkw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBMZXZlbDEg4oCcMTDigD8tIEZhbGwtZWRnZSDigJwxMeKAPy0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmlzZS1lZGdlIFsxOjBdIOKAkyBDb25mIGZvciBHUElPMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBbMzoyXSDigJMgQ29uZiBmb3IgR1BJTzEgWzU6NF0g4oCTDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENvbmYgZm9yIEdQSU8yIFs3OjZdIOKAkyBDb25mIGZvcg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBHUElPMyBbOTo4XSDigJMgQ29uZiBmb3IgR1BJTzQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gWzExOjEwXSDigJMgQ29uZiBmb3IgR1BJTzUgWzEzOjEyXQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyDigJMgQ29uZiBmb3IgR1BJTzYNCg0KI2RlZmluZSBISUIzUDNfTUVNX0dQSU9fV0FLRV9DT05GX21lbV9ncGlvX3dha2VfY29uZl9TIDANCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQovLw0KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlDQovLyBISUIzUDNfT19NRU1fUEFEX09FTl9SRVQzM19DT05GIHJlZ2lzdGVyLg0KLy8NCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQojZGVmaW5lIEhJQjNQM19NRU1fUEFEX09FTl9SRVQzM19DT05GX21lbV9wYWRfb2VuX3JldDMzX292ZXJyaWRlX2N0cmwgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0ICAvLyAxIC0gT3ZlcnJpZGUgdGhlIE9FTjMzIGFuZCBSRVQzMw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb250cm9scyBvZiBHUElPcyBkdXJpbmcNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU09QLUJvb3RkZWJ1ZyBtb2RlIDsgMCAtIERvbm90DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG92ZXJyaWRlIHRoZSBPRU4zMyBhbmQgUkVUMzMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udHJvbHMgb2YgR1BJT3MgZHVyaW5nDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNPUC1Cb290ZGVidWcgbW9kZQ0KDQojZGVmaW5lIEhJQjNQM19NRU1fUEFEX09FTl9SRVQzM19DT05GX1BBRF9PRU4zM19DT05GIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMg0KDQojZGVmaW5lIEhJQjNQM19NRU1fUEFEX09FTl9SRVQzM19DT05GX1BBRF9SRVQzM19DT05GIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMQ0KDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLy8NCi8vIFRoZSBmb2xsb3dpbmcgYXJlIGRlZmluZXMgZm9yIHRoZSBiaXQgZmllbGRzIGluIHRoZQ0KLy8gSElCM1AzX09fTUVNX1VBUlRfUlRTX09FTl9SRVQzM19DT05GIHJlZ2lzdGVyLg0KLy8NCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQojZGVmaW5lIEhJQjNQM19NRU1fVUFSVF9SVFNfT0VOX1JFVDMzX0NPTkZfbWVtX3VhcnRfbnJ0c19vZW5fcmV0MzNfb3ZlcnJpZGVfY3RybCBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDQgIC8vIDEgLSBPdmVycmlkZSB0aGUgT0VOMzMgYW5kIFJFVDMzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRyb2xzIG9mIFVBUlQgTlJUUyBHUElPIGR1cmluZw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTT1AtQm9vdGRlYnVnIG1vZGUgOyAwIC0gRG9ub3QNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3ZlcnJpZGUgdGhlIE9FTjMzIGFuZCBSRVQzMw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb250cm9scyBvZiBVQVJUIE5SVFMgR1BJTyBkdXJpbmcNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU09QLUJvb3RkZWJ1ZyBtb2RlDQoNCiNkZWZpbmUgSElCM1AzX01FTV9VQVJUX1JUU19PRU5fUkVUMzNfQ09ORl9QQURfVUFSVF9SVFNfT0VOMzNfQ09ORiBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDINCg0KI2RlZmluZSBISUIzUDNfTUVNX1VBUlRfUlRTX09FTl9SRVQzM19DT05GX1BBRF9VQVJUX1JUU19SRVQzM19DT05GIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMQ0KDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLy8NCi8vIFRoZSBmb2xsb3dpbmcgYXJlIGRlZmluZXMgZm9yIHRoZSBiaXQgZmllbGRzIGluIHRoZQ0KLy8gSElCM1AzX09fTUVNX0pUQUdfQ09ORiByZWdpc3Rlci4NCi8vDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KI2RlZmluZSBISUIzUDNfTUVNX0pUQUdfQ09ORl9tZW1fanRhZzFfb2VuX3JldDMzX292ZXJyaWRlX2N0cmwgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwDQoNCiNkZWZpbmUgSElCM1AzX01FTV9KVEFHX0NPTkZfbWVtX2p0YWcwX29lbl9yZXQzM19vdmVycmlkZV9jdHJsIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMA0KDQojZGVmaW5lIEhJQjNQM19NRU1fSlRBR19DT05GX1BBRF9KVEFHMV9SVFNfT0VOMzNfQ09ORiBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDgNCg0KI2RlZmluZSBISUIzUDNfTUVNX0pUQUdfQ09ORl9QQURfSlRBRzFfUlRTX1JFVDMzX0NPTkYgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0DQoNCiNkZWZpbmUgSElCM1AzX01FTV9KVEFHX0NPTkZfUEFEX0pUQUcwX1JUU19PRU4zM19DT05GIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMg0KDQojZGVmaW5lIEhJQjNQM19NRU1fSlRBR19DT05GX1BBRF9KVEFHMF9SVFNfUkVUMzNfQ09ORiBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDENCg0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi8vDQovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUNCi8vIEhJQjNQM19PX01FTV9ISUJfUkVHMCByZWdpc3Rlci4NCi8vDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9SRUcwX21lbV9oaWJfcmVnMF9NIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRg0KDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JFRzBfbWVtX2hpYl9yZWcwX1MgMA0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi8vDQovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUNCi8vIEhJQjNQM19PX01FTV9ISUJfUkVHMSByZWdpc3Rlci4NCi8vDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9SRUcxX21lbV9oaWJfcmVnMV9NIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRg0KDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JFRzFfbWVtX2hpYl9yZWcxX1MgMA0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi8vDQovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUNCi8vIEhJQjNQM19PX01FTV9ISUJfUkVHMiByZWdpc3Rlci4NCi8vDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9SRUcyX21lbV9oaWJfcmVnMl9NIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRg0KDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JFRzJfbWVtX2hpYl9yZWcyX1MgMA0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi8vDQovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUNCi8vIEhJQjNQM19PX01FTV9ISUJfUkVHMyByZWdpc3Rlci4NCi8vDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9SRUczX21lbV9oaWJfcmVnM19NIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRg0KDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1JFRzNfbWVtX2hpYl9yZWczX1MgMA0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi8vDQovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUNCi8vIEhJQjNQM19PX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzAgcmVnaXN0ZXIuDQovLw0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzBfbWVtX2JkY19ldjBfdG9fZXYxX3RpbWVfTSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRjAwMDAgIC8vIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBudW1iZXIgb2YNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2xvdy1jbGtzIGJldHdlZW4gZGUtYXNzZXJ0aW9uIG9mDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVOX0JHXzNQM1YgdG8gYXNzZXJ0aW9uIG9mDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVOX0JHXzNQM1YNCg0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMF9tZW1fYmRjX2V2MF90b19ldjFfdGltZV9TIDE2DQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1NFUVVFTkNFUl9DRkcwX05VMSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDANCg0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMF9tZW1fYmRjX2V2M190b19ldjRfdGltZV9NIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNjAwMCAgLy8gQ29uZmlndXJhdGlvbiBmb3IgdGhlIG51bWJlciBvZg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzbG93LWNsa3MgYmV0d2VlbiBhc3NlcnRpb24gb2YNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRU5fQ09NUF8zUDNWIGFuZCBhc3NlcnRpb24gb2YNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRU5fQ09NUF9MQVRDSF8zUDNWDQoNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzBfbWVtX2JkY19ldjNfdG9fZXY0X3RpbWVfUyAxMw0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMF9tZW1fYmRjX2V2Ml90b19ldjNfdGltZV9NIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTgwMCAgLy8gQ29uZmlndXJhdGlvbiBmb3IgdGhlIG51bWJlciBvZg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzbG93LWNsa3MgYmV0d2VlbiBhc3NlcnRpb24gb2YNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gKEVOX0NBUF9TV18zUDNWLEVOX0NPTVBfUkVGKSBhbmQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXNzZXJ0aW9uIG9mIChFTl9DT01QXzNQM1YpDQoNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzBfbWVtX2JkY19ldjJfdG9fZXYzX3RpbWVfUyAxMQ0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMF9tZW1fYmRjX2V2MV90b19ldjJfdGltZV9NIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDYwMCAgLy8gQ29uZmlndXJhdGlvbiBmb3IgdGhlIG51bWJlciBvZg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzbG93LWNsa3MgYmV0d2VlbiBhc3NlcnRpb24gb2YNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gKEVOX0JHXzNQM1YpIGFuZCBhc3NlcnRpb24gb2YNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gKEVOX0NBUF9TV18zUDNWLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBFTl9DT01QX1JFRl8zUDNWKQ0KDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1NFUVVFTkNFUl9DRkcwX21lbV9iZGNfZXYxX3RvX2V2Ml90aW1lX1MgOQ0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMF9tZW1fZW5fY3J1ZGVfcmVmX2NvbXAgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwDQoNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzBfbWVtX2VuX3Zib2s0YmdfcmVmX292ZXJyaWRlX2N0cmwgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwICAvLyAxIC0gRU5fVkJPSzRCR19SRUYgY29tZXMgZnJvbQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBiaXRbMTBdIG9mIHRoZSByZWdpc3Rlcg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBNRU1fQkdBUF9QQVJBTUVURVJTMCBbMHgwMDM4XS4gMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtIEVOX1ZCT0s0QkdfUkVGIGNvbWVzIGRpcmVjdGx5DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZyb20gdGhlIEhpYi1TZXF1ZW5jZXIuDQoNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzBfbWVtX2VuX3Zib2s0YmdfY29tcF9vdmVycmlkZV9jdHJsIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MCAgLy8gMSAtIEVOX1ZCT0s0QkcgY29tZXMgZnJvbQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBiaXRbMTFdIG9mIHRoZSByZWdpc3Rlcg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBNRU1fQkdBUF9QQVJBTUVURVJTMCBbMHgwMDM4XS4gMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtIEVOX1ZCT0s0QkcgY29tZXMgZGlyZWN0bHkgZnJvbQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgSGliLVNlcXVlbmNlci4NCg0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMF9tZW1fZW5fdjJpX292ZXJyaWRlX2N0cmwgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwICAvLyAxIC0gRU5fVjJJIGNvbWVzIGZyb20gYml0WzJdIG9mDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSByZWdpc3RlciBNRU1fQkdBUF9QQVJBTUVURVJTMQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBbMHgwMDNDXS4gMCAtIEVOX1YySSBjb21lcw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBkaXJlY3RseSBmcm9tIHRoZSBIaWItU2VxdWVuY2VyLg0KDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1NFUVVFTkNFUl9DRkcwX21lbV9wb3JfY29tcF9yZWZfb3ZlcnJpZGVfY3RybCBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTAgIC8vIDEgLSBFTl9QT1JfQ09NUF9SRUYgY29tZXMgZnJvbQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBiaXRbOV0gb2YgdGhlIHJlZ2lzdGVyDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1FTV9ISUJfTUlTQ19DT05UUk9MUyBbMHgwMDQ0XS4gMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtIEVOX1BPUl9DT01QX1JFRiBjb21lcyBkaXJlY3RseQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmcm9tIHRoZSBIaWItU2VxdWVuY2VyLg0KDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1NFUVVFTkNFUl9DRkcwX21lbV9lbl9wb3JfY29tcF9vdmVycmlkZV9jdHJsIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOCAgLy8gMSAtIEVOX1BPUl9DT01QIGNvbWVzIGZyb20NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYml0WzEwXSBvZiB0aGUgcmVnaXN0ZXINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTUVNX0hJQl9NSVNDX0NPTlRST0xTIFsweDA0NF0uIDANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLSBFTl9QT1JfQ09NUCBjb21lcyBkaXJlY3RseSBmcm9tDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBIaWItU2VxdWVuY2VyLg0KDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1NFUVVFTkNFUl9DRkcwX21lbV9jYXBfc3dfb3ZlcnJpZGVfY3RybCBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDQgIC8vIDEgLSBFTl9DQVBfU1cgY29tZXMgZnJvbSBiaXRbMV0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb2YgdGhlIHJlZ2lzdGVyDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1FTV9CR0FQX1BBUkFNRVRFUlMxIFsweDAwM0NdLiAwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0gRU5fQ0FQX1NXIGNvbWVzIGRpcmVjdGx5IGZyb20NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSGliLVNlcXVlbmNlci4NCg0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMF9tZW1fYmdfb3ZlcnJpZGVfY3RybCBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIgIC8vIDEgLSBFTl9CR0FQIGNvbWVzIGZyb20gYml0WzBdIG9mDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSByZWdpc3RlciBNRU1fQkdBUF9QQVJBTUVURVJTMQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBbMHgwMDNDXS4gMCAtIEVOX0JHQVAgY29tZXMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGlyZWN0bHkgZnJvbSBIaWItU2VxdWVuY2VyLg0KDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1NFUVVFTkNFUl9DRkcwX21lbV9hY3RfaXJlZl9vdmVycmlkZV9jdHJsIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMQ0KDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLy8NCi8vIFRoZSBmb2xsb3dpbmcgYXJlIGRlZmluZXMgZm9yIHRoZSBiaXQgZmllbGRzIGluIHRoZQ0KLy8gSElCM1AzX09fTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMSByZWdpc3Rlci4NCi8vDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMV9yZXNlcnZlZF9NIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGMDAwMA0KDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1NFUVVFTkNFUl9DRkcxX3Jlc2VydmVkX1MgMTYNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzFfbWVtX2JkY19ldjVfdG9fZXY2X3RpbWVfTSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMEMwMDAgIC8vIENvbmZpZ3VyYXRpb24gZm9yIG51bWJlciBvZg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzbG93LWNsa3MgYmV0d2VlbiBkZS1hc3NlcnRpb24gb2YNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRU5fQ09NUF9MQVRDSCBhbmQgYXNzZXJ0aW9uIG9mDQoNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzFfbWVtX2JkY19ldjVfdG9fZXY2X3RpbWVfUyAxNA0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMV9tZW1fYmRjX3RvX2FjdGl2ZV9ldjFfdG9fZXYyX3RpbWVfTSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDMwMDAgIC8vIENvbmZpZ3VyYXRpb24gZm9yIG51bWJlciBvZg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzbG93LWNsa3MgYmV0d2VlbiBhc3NlcnRpb24gb2YNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRU5fQ09NUF9SRUYgdG8gYXNzZXJ0aW9uIG9mDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVOX0NPTVAgZHVyaW5nIEhJQi1FeGl0DQoNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzFfbWVtX2JkY190b19hY3RpdmVfZXYxX3RvX2V2Ml90aW1lX1MgMTINCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzFfbWVtX2JkY190b19hY3RpdmVfZXYwX3RvX2V2MV90aW1lX00gXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwQzAwICAvLyBUQkQNCg0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMV9tZW1fYmRjX3RvX2FjdGl2ZV9ldjBfdG9fZXYxX3RpbWVfUyAxMA0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMV9tZW1fYmRjX3RvX2FjdGl2ZV9ldjBfdG9fYWN0aXZlX00gXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzAwICAvLyBDb25maWd1cmF0aW9uIGluIG51bWJlciBvZg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzbG93LWNsa3MgYmV0d2VlbiBhc3NlcnRpb24gb2YNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gKEVOX0JHQVBfM1AzViwgRU5fQ0FQX1NXXzNQM1YsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVOX0FDVF9JUkVGXzNQM1YsIEVOX0NPTVBfUkVGKSB0bw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhc3NlcnRpb24gb2YgRU5fQ09NUF8zUDNWDQoNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzFfbWVtX2JkY190b19hY3RpdmVfZXYwX3RvX2FjdGl2ZV9TIDgNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzFfbWVtX2FjdGl2ZV90b19iZGNfZXYxX3RvX2JkY19ldjBfdGltZV9NIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBDMCAgLy8gQ29uZmlndXJhdGlvbiBpbiBudW1iZXIgb2YNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2xvdy1jbGtzIGJldHdlZW4gZGUtYXNzZXJ0aW9uIG9mDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIChFTl9DT01QXzNQM1YsIEVOX0NPTVBfUkVGXzNQM1YsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVOX0FDVF9JUkVGXzNQM1YsIEVOX0NBUF9TV18zUDNWKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0byBkZWFzc2VydGlvbiBvZiBFTl9CR0FQXzNQM1YuDQoNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzFfbWVtX2FjdGl2ZV90b19iZGNfZXYxX3RvX2JkY19ldjBfdGltZV9TIDYNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzFfTlUxX00gXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNGDQoNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzFfTlUxX1MgMA0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi8vDQovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUNCi8vIEhJQjNQM19PX01FTV9ISUJfTUlTQ19DT05GSUcgcmVnaXN0ZXIuDQovLw0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfTUlTQ19DT05GSUdfbWVtX2VuX3BsbF91bnRyaW1fY3VycmVudCBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDENCg0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi8vDQovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUNCi8vIEhJQjNQM19PX01FTV9ISUJfV0FLRV9TVEFUVVMgcmVnaXN0ZXIuDQovLw0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfV0FLRV9TVEFUVVNfaGliX3dha2Vfc3JjX00gXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDFFICAvLyAiMDEwMCIgLSBHUElPIDsgIjAwMTAiIC0gUlRDIDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIjAwMDEiIC0gVUFSVCBPdGhlcnMgLSBSZXNlcnZlZA0KDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1dBS0VfU1RBVFVTX2hpYl93YWtlX3NyY19TIDENCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfV0FLRV9TVEFUVVNfaGliX3dha2Vfc3RhdHVzIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMSAgLy8gMSAtIFdha2UgZnJvbSBIaWJlcm5hdGUgOyAwIC0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2FrZSBmcm9tIE9GRg0KDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLy8NCi8vIFRoZSBmb2xsb3dpbmcgYXJlIGRlZmluZXMgZm9yIHRoZSBiaXQgZmllbGRzIGluIHRoZQ0KLy8gSElCM1AzX09fTUVNX0hJQl9MUERTX0dQSU9fU0VMIHJlZ2lzdGVyLg0KLy8NCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX0xQRFNfR1BJT19TRUxfSElCX0xQRFNfR1BJT19TRUxfTSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDcNCg0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9MUERTX0dQSU9fU0VMX0hJQl9MUERTX0dQSU9fU0VMX1MgMA0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi8vDQovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUNCi8vIEhJQjNQM19PX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzIgcmVnaXN0ZXIuDQovLw0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzJfcmVzZXJ2ZWRfTSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkY4MDANCg0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMl9yZXNlcnZlZF9TIDExDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1NFUVVFTkNFUl9DRkcyX21lbV9hY3RpdmVfdG9fYmRjX2V2MF90b19hY3RpdmVfdG9fYmRjX2V2MV90aW1lX00gXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNjAwICAvLyBEZWFzc2VydGlvbiBvZiBFTl9DT01QX0xBVENIXzNQMw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0byBkZWFzc2VydGlvbiBvZiAoRU5fQ09NUF8zUDMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVOX0NPTVBfUkVGXzNQMywgRU5fQUNUX0lSRUZfM1AzLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBFTl9DQVBfU1dfM1AzKQ0KDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1NFUVVFTkNFUl9DRkcyX21lbV9hY3RpdmVfdG9fYmRjX2V2MF90b19hY3RpdmVfdG9fYmRjX2V2MV90aW1lX1MgOQ0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMl9tZW1fYmRjX2V2NF90b19ldjVfdGltZV9NIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDFDMCAgLy8gQXNzZXJ0aW9uIG9mIEVOX0NPTVBfTEFUQ0hfM1AzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvIGRlYXNzZXJ0aW9uIG9mDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVOX0NPTVBfTEFUQ0hfM1AzDQoNCiNkZWZpbmUgSElCM1AzX01FTV9ISUJfU0VRVUVOQ0VSX0NGRzJfbWVtX2JkY19ldjRfdG9fZXY1X3RpbWVfUyA2DQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1NFUVVFTkNFUl9DRkcyX21lbV9iZGNfZXY2X3RvX2V2N190aW1lX00gXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMwICAvLyBEZWFzc2VydGlvbiBvZiAoRU5fQ0FQX1NXXzNQMywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRU5fQ09NUF9SRUZfM1AzLCBFTl9DT01QXzNQMywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRU5fQ09NUF9PVVRfTEFUQ0hfM1AzKSB0bw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBkZWFzc2VydGlvbiBvZiBFTl9CR0FQXzNQMw0KDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1NFUVVFTkNFUl9DRkcyX21lbV9iZGNfZXY2X3RvX2V2N190aW1lX1MgNA0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMl9tZW1fYmRjX3RvX2FjdGl2ZV9ldjFfdG9fZXYyX3RpbWVfTSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMEMgIC8vIEFzc2VydGlvbiBvZiBFTl9DT01QXzNQMyB0bw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhc3NlcnRpb24gb2YgRU5fQ09NUE9VVF9MQVRDSF8zUDMNCg0KI2RlZmluZSBISUIzUDNfTUVNX0hJQl9TRVFVRU5DRVJfQ0ZHMl9tZW1fYmRjX3RvX2FjdGl2ZV9ldjFfdG9fZXYyX3RpbWVfUyAyDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1NFUVVFTkNFUl9DRkcyX21lbV9oaWJfdG9fYWN0aXZlX2V2Ml90b19ldjNfdGltZV9NIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMyAgLy8gQXNzZXJ0aW9uIG9mIEVOX0NPTVBfM1AzIHRvDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFzc2VydGlvbiBvZiBFTl9DT01QT1VUX0xBVENIXzNQMw0KDQojZGVmaW5lIEhJQjNQM19NRU1fSElCX1NFUVVFTkNFUl9DRkcyX21lbV9oaWJfdG9fYWN0aXZlX2V2Ml90b19ldjNfdGltZV9TIDANCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQovLw0KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlDQovLyBISUIzUDNfT19ISUJBTkFfU1BBUkVfTE9XViByZWdpc3Rlci4NCi8vDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KI2RlZmluZSBISUIzUDNfSElCQU5BX1NQQVJFX0xPV1ZfbWVtX2hpYmFuYV9zcGFyZTFfTSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZDMDAwMDANCg0KI2RlZmluZSBISUIzUDNfSElCQU5BX1NQQVJFX0xPV1ZfbWVtX2hpYmFuYV9zcGFyZTFfUyAyMg0KI2RlZmluZSBISUIzUDNfSElCQU5BX1NQQVJFX0xPV1ZfbWVtX2hpYmFuYV9zcGFyZTBfTSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUZGRkYNCg0KI2RlZmluZSBISUIzUDNfSElCQU5BX1NQQVJFX0xPV1ZfbWVtX2hpYmFuYV9zcGFyZTBfUyAwDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLy8NCi8vIFRoZSBmb2xsb3dpbmcgYXJlIGRlZmluZXMgZm9yIHRoZSBiaXQgZmllbGRzIGluIHRoZQ0KLy8gSElCM1AzX09fSElCX1RNVVhfQ1RSTCByZWdpc3Rlci4NCi8vDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KI2RlZmluZSBISUIzUDNfSElCX1RNVVhfQ1RSTF9yZXNlcnZlZF9NIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkMwMA0KDQojZGVmaW5lIEhJQjNQM19ISUJfVE1VWF9DVFJMX3Jlc2VydmVkX1MgMTANCiNkZWZpbmUgSElCM1AzX0hJQl9UTVVYX0NUUkxfbWVtX2hkX3RtdXhfY250cmxfTSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAzRkYNCg0KI2RlZmluZSBISUIzUDNfSElCX1RNVVhfQ1RSTF9tZW1faGRfdG11eF9jbnRybF9TIDANCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQovLw0KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlDQovLyBISUIzUDNfT19ISUJfMVAyXzFQOF9MRE9fVFJJTSByZWdpc3Rlci4NCi8vDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KI2RlZmluZSBISUIzUDNfSElCXzFQMl8xUDhfTERPX1RSSU1fcmVzZXJ2ZWRfTSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkYwMDANCg0KI2RlZmluZSBISUIzUDNfSElCXzFQMl8xUDhfTERPX1RSSU1fcmVzZXJ2ZWRfUyAxMg0KI2RlZmluZSBISUIzUDNfSElCXzFQMl8xUDhfTERPX1RSSU1fbWVtX2hkXzFwMl9sZG9fZW5fb3ZlcnJpZGVfY3RybCBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDANCg0KI2RlZmluZSBISUIzUDNfSElCXzFQMl8xUDhfTERPX1RSSU1fbWVtX2hkXzFwOF9sZG9fZW5fb3ZlcnJpZGVfY3RybCBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDANCg0KI2RlZmluZSBISUIzUDNfSElCXzFQMl8xUDhfTERPX1RSSU1fbWVtX2hkXzFwMl9sZG9fZW5fb3ZlcnJpZGUgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwDQoNCiNkZWZpbmUgSElCM1AzX0hJQl8xUDJfMVA4X0xET19UUklNX21lbV9oZF8xcDhfbGRvX2VuX292ZXJyaWRlIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMA0KDQojZGVmaW5lIEhJQjNQM19ISUJfMVAyXzFQOF9MRE9fVFJJTV9tZW1faGRfMXAyX2xkb192dHJpbV9NIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDBGMA0KDQojZGVmaW5lIEhJQjNQM19ISUJfMVAyXzFQOF9MRE9fVFJJTV9tZW1faGRfMXAyX2xkb192dHJpbV9TIDQNCiNkZWZpbmUgSElCM1AzX0hJQl8xUDJfMVA4X0xET19UUklNX21lbV9oZF8xcDhfbGRvX3Z0cmltX00gXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDBGDQoNCiNkZWZpbmUgSElCM1AzX0hJQl8xUDJfMVA4X0xET19UUklNX21lbV9oZF8xcDhfbGRvX3Z0cmltX1MgMA0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi8vDQovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUNCi8vIEhJQjNQM19PX0hJQl9DT01QX1RSSU0gcmVnaXN0ZXIuDQovLw0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiNkZWZpbmUgSElCM1AzX0hJQl9DT01QX1RSSU1fcmVzZXJ2ZWRfTSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRjgNCg0KI2RlZmluZSBISUIzUDNfSElCX0NPTVBfVFJJTV9yZXNlcnZlZF9TIDMNCiNkZWZpbmUgSElCM1AzX0hJQl9DT01QX1RSSU1fbWVtX2hkX2NvbXBfdHJpbV9NIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNw0KDQojZGVmaW5lIEhJQjNQM19ISUJfQ09NUF9UUklNX21lbV9oZF9jb21wX3RyaW1fUyAwDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLy8NCi8vIFRoZSBmb2xsb3dpbmcgYXJlIGRlZmluZXMgZm9yIHRoZSBiaXQgZmllbGRzIGluIHRoZQ0KLy8gSElCM1AzX09fSElCX0VOX1RTIHJlZ2lzdGVyLg0KLy8NCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQojZGVmaW5lIEhJQjNQM19ISUJfRU5fVFNfcmVzZXJ2ZWRfTSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkUNCg0KI2RlZmluZSBISUIzUDNfSElCX0VOX1RTX3Jlc2VydmVkX1MgMQ0KI2RlZmluZSBISUIzUDNfSElCX0VOX1RTX21lbV9oZF9lbl90cyBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDENCg0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi8vDQovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUNCi8vIEhJQjNQM19PX0hJQl8xUDhWX0RFVF9FTiByZWdpc3Rlci4NCi8vDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KI2RlZmluZSBISUIzUDNfSElCXzFQOFZfREVUX0VOX3Jlc2VydmVkX00gXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZFDQoNCiNkZWZpbmUgSElCM1AzX0hJQl8xUDhWX0RFVF9FTl9yZXNlcnZlZF9TIDENCiNkZWZpbmUgSElCM1AzX0hJQl8xUDhWX0RFVF9FTl9tZW1faGliXzFwOHZfZGV0X2VuIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMQ0KDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLy8NCi8vIFRoZSBmb2xsb3dpbmcgYXJlIGRlZmluZXMgZm9yIHRoZSBiaXQgZmllbGRzIGluIHRoZQ0KLy8gSElCM1AzX09fSElCX1ZCQVRfTU9OX0VOIHJlZ2lzdGVyLg0KLy8NCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQojZGVmaW5lIEhJQjNQM19ISUJfVkJBVF9NT05fRU5fcmVzZXJ2ZWRfTSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkMNCg0KI2RlZmluZSBISUIzUDNfSElCX1ZCQVRfTU9OX0VOX3Jlc2VydmVkX1MgMg0KI2RlZmluZSBISUIzUDNfSElCX1ZCQVRfTU9OX0VOX21lbV9oaWJfdmJhdF9tb25fZGVsX2VuIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMg0KDQojZGVmaW5lIEhJQjNQM19ISUJfVkJBVF9NT05fRU5fbWVtX2hpYl92YmF0X21vbl9lbiBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDENCg0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi8vDQovLyBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUNCi8vIEhJQjNQM19PX0hJQl9OSElCX0VOQUJMRSByZWdpc3Rlci4NCi8vDQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KI2RlZmluZSBISUIzUDNfSElCX05ISUJfRU5BQkxFX21lbV9oaWJfbmhpYl9lbmFibGUgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxDQoNCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQovLw0KLy8gVGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lcyBmb3IgdGhlIGJpdCBmaWVsZHMgaW4gdGhlDQovLyBISUIzUDNfT19ISUJfVUFSVF9SVFNfU1dfRU5BQkxFIHJlZ2lzdGVyLg0KLy8NCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQojZGVmaW5lIEhJQjNQM19ISUJfVUFSVF9SVFNfU1dfRU5BQkxFX21lbV9oaWJfdWFydF9ydHNfc3dfZW5hYmxlIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMQ0KDQoNCg0KDQojZW5kaWYgLy8gX19IV19ISUIzUDNfSF9fDQo=