I1VuY29tbWVudGluZyB0aGVzZSB1cmxzIHdvdWxkIG9ubHkgZW5hYmxlCiN0aGUgcG93ZXIgdXAgYXV0byBpbmplY3Rpb24gYW5kIGZvcmNlIGluamVjdGlvbih0ZXN0IGNhc2UpLgojWFRSQV9TRVJWRVJfMT1odHRwOi8veHRyYXBhdGgxLml6YXRjbG91ZC5uZXQveHRyYTIuYmluCiNYVFJBX1NFUlZFUl8yPWh0dHA6Ly94dHJhcGF0aDIuaXphdGNsb3VkLm5ldC94dHJhMi5iaW4KI1hUUkFfU0VSVkVSXzM9aHR0cDovL3h0cmFwYXRoMy5pemF0Y2xvdWQubmV0L3h0cmEyLmJpbgoKI1ZlcnNpb24gY2hlY2sgZm9yIFhUUkEKI0RJU0FCTEUgPSAwCiNBVVRPICAgID0gMQojWFRSQTIgICA9IDIKI1hUUkEzICAgPSAzClhUUkFfVkVSU0lPTl9DSEVDSz0wCgojIEVycm9yIEVzdGltYXRlCiMgX1NFVCA9IDEKIyBfQ0xFQVIgPSAwCkVSUl9FU1RJTUFURT0wCgojTlRQIHNlcnZlcgojTlRQX1NFUlZFUiBzZXR0aW5nIGlzIGluIG1vZGVtIE5WCgojWFRSQSBDQSBwYXRoClhUUkFfQ0FfUEFUSD0vc3lzdGVtL2V0Yy9zZWN1cml0eS9jYWNlcnRzCgojIERFQlVHIExFVkVMUzogMCAtIG5vbmUsIDEgLSBFcnJvciwgMiAtIFdhcm5pbmcsIDMgLSBJbmZvCiMgICAgICAgICAgICAgICA0IC0gRGVidWcsIDUgLSBWZXJib3NlCiMgSWYgREVCVUdfTEVWRUwgaXMgY29tbWVudGVkLCBBbmRyb2lkJ3MgbG9nZ2luZyBsZXZlbHMgd2lsbCBiZSB1c2VkCkRFQlVHX0xFVkVMID0gMgoKIyBJbnRlcm1lZGlhdGUgcG9zaXRpb24gcmVwb3J0LCAxPWVuYWJsZSwgMD1kaXNhYmxlCklOVEVSTUVESUFURV9QT1M9MAoKIyBCZWxvdyBiaXQgbWFzayBjb25maWd1cmVzIGhvdyBHUFMgZnVuY3Rpb25hbGl0aWVzCiMgc2hvdWxkIGJlIGxvY2tlZCB3aGVuIHVzZXIgdHVybnMgb2ZmIEdQUyBvbiBTZXR0aW5ncwojIFNldCBiaXQgMHgxIGlmIE1PIEdQUyBmdW5jdGlvbmFsaXRpZXMgYXJlIHRvIGJlIGxvY2tlZAojIFNldCBiaXQgMHgyIGlmIE5JIEdQUyBmdW5jdGlvbmFsaXRpZXMgYXJlIHRvIGJlIGxvY2tlZAojIGRlZmF1bHQgliBib3RoIE1PIGFuZCBOSSBsb2NrZWQgZm9yIG1heGltYWwgcHJpdmFjeQojR1BTX0xPQ0sgPSAzCgojIHN1cGwgdmVyc2lvbiAxLjAKI1NVUExfVkVSPTB4MTAwMDAKCiMgRW1lcmdlbmN5IFNVUEwsIDE9ZW5hYmxlLCAwPWRpc2FibGUKU1VQTF9FUz0xCgojQ2hvb3NlIFBETiBmb3IgRW1lcmdlbmN5IFNVUEwKIzEgLSBVc2UgZW1lcmdlbmN5IFBETgojMCAtIFVzZSByZWd1bGFyIFNVUEwgUEROIGZvciBFbWVyZ2VuY3kgU1VQTAojVVNFX0VNRVJHRU5DWV9QRE5fRk9SX0VNRVJHRU5DWV9TVVBMPTAKCiNTVVBMX01PREUgaXMgYSBiaXQgbWFzayBzZXQgaW4gY29uZmlnLnhtbCBwZXIgY2FycmllciBieSBkZWZhdWx0LgojSWYgaXQgaXMgdW5jb21tZW50ZWQgaGVyZSwgdGhpcyB2YWx1ZSB3aWxsIG92ZXJ3cml0ZSB0aGUgdmFsdWUgZnJvbQojY29uZmlnLnhtbC4KI01TQT0wWDIKI01TQj0wWDEKI1NVUExfTU9ERT0KCiMgR1BTIENhcGFiaWxpdGllcyBiaXQgbWFzawojIFNDSEVEVUxJTkcgPSAweDAxCiMgTVNCID0gMHgwMgojIE1TQSA9IDB4MDQKIyBPTl9ERU1BTkRfVElNRSA9IDB4MTAKIyBHRU9GRU5DRSA9IDB4MjAKIyBkZWZhdWx0ID0gT05fREVNQU5EX1RJTUUgfCBNU0EgfCBNU0IgfCBTQ0hFRFVMSU5HIHwgR0VPRkVOQ0UKQ0FQQUJJTElUSUVTPTB4MzcKCiMgQWNjdXJhY3kgdGhyZXNob2xkIGZvciBpbnRlcm1lZGlhdGUgcG9zaXRpb25zCiMgbGVzcyBhY2N1cmF0ZSBwb3NpdGlvbnMgYXJlIGlnbm9yZWQsIDAgZm9yIHBhc3NpbmcgYWxsIHBvc2l0aW9ucwojIEFDQ1VSQUNZX1RIUkVTPTUwMDAKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMjIyMjIEFHUFMgc2VydmVyIHNldHRpbmdzICMjIyMjCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgojIEZPUiBTVVBMIFNVUFBPUlQsIHNldCB0aGUgZm9sbG93aW5nCiMgU1VQTF9IT1NUPXN1cGwuaG9zdC5jb20gb3IgSVAKIyBTVVBMX1BPUlQ9MTIzNAoKIyBGT1IgQzJLIFBERSBTVVBQT1JULCBzZXQgdGhlIGZvbGxvd2luZwojIEMyS19IT1NUPWMyay5wZGUuY29tIG9yIElQCiMgQzJLX1BPUlQ9MTIzNAoKIyBCaXRtYXNrIG9mIHNsb3RzIHRoYXQgYXJlIGF2YWlsYWJsZQojIGZvciB3cml0ZS9pbnN0YWxsIHRvLCB3aGVyZSAxcyBpbmRpY2F0ZSB3cml0YWJsZSwKIyBhbmQgdGhlIGRlZmF1bHQgdmFsdWUgaXMgMCB3aGVyZSBubyBzbG90cwojIGFyZSB3cml0YWJsZS4gRm9yIGV4YW1wbGUsIEFHUFNfQ0VSVF9XUklUQUJMRV9NQVNLCiMgb2YgYjEwMDAwMDEwMTAgbWFrZXMgMyBzbG90cyBhdmFpbGFibGUKIyBhbmQgdGhlIHJlbWFpbmluZyA3IHNsb3RzIHVud3JpdGFibGUuCiNBR1BTX0NFUlRfV1JJVEFCTEVfTUFTSz0wCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyAgTFRFIFBvc2l0aW9uaW5nIFByb2ZpbGUgU2V0dGluZ3MKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgMDogRW5hYmxlIFJSTFAgb24gTFRFKERlZmF1bHQpCiMgMTogRW5hYmxlIExQUF9Vc2VyX1BsYW5lIG9uIExURQojIDI6IEVuYWJsZSBMUFBfQ29udHJvbF9QbGFuZQojIDM6IEVuYWJsZSBib3RoIExQUF9Vc2VyX1BsYW5lIGFuZCBMUFBfQ29udHJvbF9QbGFuZQojTFBQX1BST0ZJTEUgPSAyCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIEVYVFJBIFNFVFRJTkdTCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgTk1FQSBwcm92aWRlciAoMT1Nb2RlbSBQcm9jZXNzb3IsIDA9QXBwbGljYXRpb24gUHJvY2Vzc29yKQpOTUVBX1BST1ZJREVSPTAKIyBNYXJrIGlmIGl0IGlzIGEgU0dMVEUgdGFyZ2V0ICgxPVNHTFRFLCAwPW5vblNHTFRFKQpTR0xURV9UQVJHRVQ9MAoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBTZWxlY3QgUG9zaXRpb25pbmcgUHJvdG9jb2wgb24gQS1HTE9OQVNTIHN5c3RlbQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIDB4MTogUlJDIENQbGFuZQojIDB4MjogUlJMUCBVUGxhbmUKIyAweDQ6IExMUCBVcGxhbmUKI0FfR0xPTkFTU19QT1NfUFJPVE9DT0xfU0VMRUNUID0gMAoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBTZWxlY3QgdGVjaG5vbG9neSBmb3IgTFBQZSBDb250cm9sIFBsYW5lCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgMHgxOiBEQkggZm9yIExQUGUgQ1AKIyAweDI6IFdMQU4gQVAgTWVhc3VyZW1lbnRzIGZvciBMUFBlIENQCiMgMHg0OiBTUk4gQVAgbWVhc3VyZW1lbnQgZm9yIENQCiMgMHg4OiBTZW5zb3IgQmFyb21ldGVyIE1lYXN1cmVtZW50IExQUGUgQ1AKI0xQUEVfQ1BfVEVDSE5PTE9HWSA9IDAKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgU2VsZWN0IHRlY2hub2xvZ3kgZm9yIExQUGUgVXNlciBQbGFuZQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIDB4MTogREJIIGZvciBMUFBlIFVQCiMgMHgyOiBXTEFOIEFQIE1lYXN1cmVtZW50cyBmb3IgTFBQZSBVUAojIDB4NDogU1JOIEFQIG1lYXN1cmVtZW50IGZvciBVUAojIDB4ODogU2Vuc29yIEJhcm9tZXRlciBNZWFzdXJlbWVudCBMUFBlIFVQCiNMUFBFX1VQX1RFQ0hOT0xPR1kgPSAwCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIEFHUFNfQ09ORklHX0lOSkVDVAojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIGVuYWJsZS9kaXNhYmxlIGluamVjdGlvbiBvZiBBR1BTIGNvbmZpZ3VyYXRpb25zOgojICAgICBTVVBMX1ZFUgojICAgICBTVVBMX0hPU1QKIyAgICAgU1VQTF9QT1JUCiMgICAgIEMyS19IT1NUCiMgICAgIEMyS19QT1JUCiMgICAgIExQUF9QUk9GSUxFCiMgICAgIEFfR0xPTkFTU19QT1NfUFJPVE9DT0xfU0VMRUNUCiMgMDogZGlzYWJsZQojIDE6IGVuYWJsZQpBR1BTX0NPTkZJR19JTkpFQ1QgPSAxCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIEdOU1Mgc2V0dGluZ3MgZm9yIGF1dG9tb3RpdmUgdXNlIGNhc2VzCiMgQ29uZmlndXJhdGlvbnMgaW4gZm9sbG93aW5nIHNlY3Rpb24gYXJlCiMgc3BlY2lmaWMgdG8gYXV0b21vdGl2ZSB1c2UgY2FzZXMsIG90aGVycwojIHBsZWFzZSBkbyBub3QgY2hhbmdlLCBrZWVwIHRoZSBkZWZhdWx0IHZhbHVlcwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKIyBBUCBDb2Fyc2UgVGltZXN0YW1wIFVuY2VydGFpbnR5CiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgZGVmYXVsdCA6IDEwCiMgQVAgdGltZSBzdGFtcCB1bmNlcnRhaW50eSwgdW50aWwgR05TUyByZWNlaXZlcgojIGlzIGFibGUgdG8gYWNxdWlyZSBiZXR0ZXIgdGltaW5nIGluZm9ybWF0aW9uCkFQX1RJTUVTVEFNUF9VTkNFUlRBSU5UWSA9IDEwCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIFFEUiBlbmdpbmUgYXZhaWxhYmlsaXR5IHN0YXR1cwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIDAgOiBOTyBRRFIgKGRlZmF1bHQpCiMgMSA6IFFEUiBlbmFibGVkCiMgVGhpcyBzZXR0aW5ncyBlbmFibGVzIFFEUiBDb25maWd1cmF0aW9uIGZvcgojIGF1dG9tb3RpdmUgdXNlIGNhc2UsIGlmIGVuYWJsZWQgdGhlbgojIERSX0FQX1NlcnZpY2UgbmVlZHMgdG8gYmUgZW5hYmxlZCBpbiBpemF0LmNvbmYKI0VYVEVSTkFMX0RSX0VOQUJMRUQgPSAwCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgRFJfU1lOQyBQdWxzZSBBdmFpbGFiaWxpdHkKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIDAgOiBEUl9TWU5DIHB1bHNlIG5vdCBhdmFpbGFibGUgKGRlZmF1bHQpCiMgMSA6IERSX1NZTkMgcHVsc2UgYXZhaWxhYmxlCiMgVGhpcyBjb25maWd1cmF0aW9uIGVuYWJsZXMgdGhlIGRyaXZlciB0byBtYWtlIHVzZQojIG9mIFBQUyBldmVudHMgZ2VuZXJhdGVkIGJ5IERSX1NZTkMgcHVsc2UKIyBTdGFuZGFyZCBMaW51eCBQUFMgZHJpdmVyIG5lZWRzIHRvIGJlIGVuYWJsZWQKRFJfU1lOQ19FTkFCTEVEID0gMAoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIFBQUyBEZXZpY2UgbmFtZQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClBQU19ERVZJQ0VOQU1FID0gL2Rldi9wcHMwCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgSWdub3JlIFBQUyBhdCBTdGFydHVwIGFuZCBhZnRlciBsb25nIG91dGFnZQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCklHTk9SRV9QUFNfUFVMU0VfQ09VTlQgPSAxCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgTG9uZyBHTlNTIFJGIG91dGFnZSBpbiBzZWNvbmRzCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKR05TU19PVVRBR0VfRFVSQVRJT04gPSAxMAoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIEFQIENsb2NrIEFjY3VyYWN5CiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBRdWFsaXR5IG9mIEFQUFMgcHJvY2Vzc29yIGNsb2NrIChpbiBQUE0pLgojIFZhbHVlIHNwZWNpZmllZCBpcyB1c2VkIGZvciBjYWxjdWxhdGlvbiBvZgojIEFQUFMgdGltZSBzdGFtcCB1bmNlcnRhaW50eQpBUF9DTE9DS19QUE0gPSAxMDAKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBNQVggbXMgZGlmZmVyZW5jZSB0byBkZXRlY3QgbWlzc2luZyBwdWxzZQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgU3BlY2lmaWVzIHRpbWUgdGhyZXNob2xkIGluIG1zIHRvIHZhbGlkYXRlIGFueSBtaXNzaW5nIFBQUyBwdWxzZXMKTUlTU0lOR19QVUxTRV9USU1FX0RFTFRBID0gOTAwCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgUHJvcGFnYXRpb24gdGltZSB1bmNlcnRhaW50eQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgVGhpcyBzZXR0aW5ncyBlbmFibGVzIHRpbWUgdW5jZXJ0YWludHkgcHJvcGFnYXRpb24KIyBsb2dpYyBpbmNhc2Ugb2YgbWlzc2luZyBQUFMgcHVsc2UKUFJPUEFHQVRJT05fVElNRV9VTkNFUlRBSU5UWSA9IDEKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojICBBUE4gLyBJUCBUeXBlIENvbmZpZ3VyYXRpb24KIyAgQVBOIGFuZCBJUCBUeXBlIHRvIHVzZSBmb3Igc2V0dGluZwojICB1cCBXV0FOIGNhbGwuCiMgIFVzZSBiZWxvdyB2YWx1ZXMgZm9yIElQIFR5cGU6CiMgIHY0ID0gNAojICB2NiA9IDYKIyAgdjR2NiA9IDEwCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIElOVEVSTkVUX0FQTiA9IGFiYy54eXoKIyBJTlRFUk5FVF9JUF9UWVBFID0gNAojIFNVUExfQVBOID0gYWJjLnh5egojIFNVUExfSVBfVFlQRSA9IDQKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBNb2RlbSB0eXBlCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBUaGlzIHNldHRpbmcgY29uZmlndXJlcyBtb2RlbSB0eXBlCiMgKGV4dGVybmFsPTAgb3IgaW50ZXJuYWw9MSkKIyBjb21tZW50IG91dCB0aGUgbmV4dCBsaW5lIHRvIHZvdGUKIyBmb3IgdGhlIGZpcnN0IG1vZGVtIGluIHRoZSBsaXN0Ck1PREVNX1RZUEUgPSAxCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgcHJveHlBcHBQYWNrYWdlTmFtZQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgVGhpcyBpcyBhIHN0cmluZyB0aGF0IGlzIHNlbnQgdG8gdGhlIGZyYW1ld29yawojIGluIG5md05vdGlmeUNiIGNhbGxiYWNrClBST1hZX0FQUF9QQUNLQUdFX05BTUUgPSBjb20uZ29vZ2xlLmFuZHJvaWQuY2FycmllcmxvY2F0aW9uCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgQ1BfTVRMUl9FUwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgQ1AgTVRMUiBFUywgMT1lbmFibGUsIDA9ZGlzYWJsZQpDUF9NVExSX0VTPTEKCg==