IwojICRYRnJlZTg2JAojCiMgQ29weXJpZ2h0IKkgMjAwMiBLZWl0aCBQYWNrYXJkLCBtZW1iZXIgb2YgVGhlIFhGcmVlODYgUHJvamVjdCwgSW5jLgojCiMgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgZGlzdHJpYnV0ZSwgYW5kIHNlbGwgdGhpcyBzb2Z0d2FyZSBhbmQgaXRzCiMgZG9jdW1lbnRhdGlvbiBmb3IgYW55IHB1cnBvc2UgaXMgaGVyZWJ5IGdyYW50ZWQgd2l0aG91dCBmZWUsIHByb3ZpZGVkIHRoYXQKIyB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcyBhbmQgdGhhdCBib3RoIHRoYXQKIyBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBzdXBwb3J0aW5nCiMgZG9jdW1lbnRhdGlvbiwgYW5kIHRoYXQgdGhlIG5hbWUgb2YgS2VpdGggUGFja2FyZCBub3QgYmUgdXNlZCBpbgojIGFkdmVydGlzaW5nIG9yIHB1YmxpY2l0eSBwZXJ0YWluaW5nIHRvIGRpc3RyaWJ1dGlvbiBvZiB0aGUgc29mdHdhcmUgd2l0aG91dAojIHNwZWNpZmljLCB3cml0dGVuIHByaW9yIHBlcm1pc3Npb24uICBLZWl0aCBQYWNrYXJkIG1ha2VzIG5vCiMgcmVwcmVzZW50YXRpb25zIGFib3V0IHRoZSBzdWl0YWJpbGl0eSBvZiB0aGlzIHNvZnR3YXJlIGZvciBhbnkgcHVycG9zZS4gIEl0CiMgaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGV4cHJlc3Mgb3IgaW1wbGllZCB3YXJyYW50eS4KIwojIEtFSVRIIFBBQ0tBUkQgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEggUkVHQVJEIFRPIFRISVMgU09GVFdBUkUsCiMgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLCBJTiBOTwojIEVWRU5UIFNIQUxMIEtFSVRIIFBBQ0tBUkQgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgSU5ESVJFQ1QgT1IKIyBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwKIyBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSCiMgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUgojIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuCiMKIyBJbnVrdGl0dXQgKElVKQojCiMgVGFrZW4gZnJvbSBhbHBoYWJldGljIGNvdmVyYWdlIG9mIHRoZSBQaWdpYXJuaXEgZm9udCBhcwojIHByb2R1Y2VkIGJ5IHRoZSBsZWdpc2xhdGl2ZSBhc3NlbWJseSBvZiBOdW5hdnV0CiMgaHR0cDovL3d3dy5hc3NlbWJseS5udS5jYS91bmljb2RlL2ZvbnRzLwojCjE0MDEtMTQwNgoxNDBhLTE0MGIKMTQyZi0xNDM0CjE0MzgtMTQzOQoxNDQ5CjE0NGMtMTQ1MQoxNDU1LTE0NTYKMTQ2NgoxNDZiLTE0NzAKMTQ3Mi0xNDczCjE0ODMKMTQ4OS0xNDhlCjE0OTAtMTQ5MQoxNGExCjE0YTMtMTRhOAoxNGFhLTE0YWIKMTRiYgoxNGMwLTE0YzUKMTRjNy0xNGM4CjE0ZDAKMTRkMy0xNGQ4CjE0ZGEtMTRkYgoxNGVhCjE0ZWQtMTRmMgoxNGY0LTE0ZjUKMTRmYQoxNGZjCjE0ZmUKMTUwMAoxNTAyCjE1MDUKMTUyNi0xNTJiCjE1MmQtMTUyZQoxNTNlCjE1NDIKMTU0NS0xNTQ5CjE1NGItMTU0YwoxNTUwCjE1NTMtMTU1YQoxNTVkCjE1NzUtMTU3NwoxNTc5LTE1N2MKMTU3ZS0xNTg1CjE1OGItMTU5NgoxNWEwLTE1YTYKMTVhOC0xNWFlCjE2NmYKMTY3MC0xNjc2Cg==