IwojIENvcHlyaWdodCAoYykgMjAwMCwgR2HrbCBSb3VhbGxhbmQgPGdhZWwucm91YWxsYW5kQGluYW1lLmNvbT4KIyBBbGwgcmlnaHRzIHJlc2VydmVkLgojCiMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCiMgYXJlIG1ldDoKIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAojICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAojICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgojIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwojICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgojCiMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKIyBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCiMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KIyBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCiMgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCiMgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAojIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQojIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKIyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgojCiMgICAgICAkSWQkCiMKIyBQcmludGFibGUgc3lzY2FsbHMKIyBzeW50YXg6IHN5c2NhbGwgW3ByaW50ZnVuY10KIwojIG1vc3RseSBidWlsdCBmcm9tIHN5c18qIGZ1bmN0aW9ucyBpbiBzb3VyY2UgY29kZQoKX19nZXRjd2QKX19zeXNjdGwKYWNjZXB0CmFjY2VzcwphZGp0aW1lCmFsYXJtCmJpbmQKYnJrCmNhcGdldApjYXBzZXQKY2hkaXIKY2hmbGFncwpjaG1vZApjaG93bgpjaHJvb3QKY2xvc2UKY29ubmVjdApjcmVhdApkdXAKZHVwMgplcnJsaXN0CmV4ZWN2CmV4ZWN2ZQpleGl0CmZjaGRpcgpmY2hmbGFncwpmY2htb2QKZmNob3duCmZjaHJvb3QKZmNudGwKZmxvY2sKZm9yawpmcGF0aGNvbmYKZnN0YXQKZnN0YXRmcwpmc3luYwpmdHJ1bmNhdGUKZ2V0ZGVudHMKZ2V0ZGlyZW50cmllcwpnZXRkb21haW5uYW1lCmdldGR0YWJsZXNpemUKZ2V0Z2lkCmdldGdyb3VwcwpnZXRob3N0aWQKZ2V0aG9zdG5hbWUKZ2V0aXRpbWVyCmdldHBhZ2VzaXplCmdldHBlZXJuYW1lCmdldHBnaWQKZ2V0cGdycApnZXRwaWQKZ2V0cHJpb3JpdHkKZ2V0cmxpbWl0CmdldHJ1c2FnZQpnZXRzaWQKZ2V0c29ja25hbWUKZ2V0c29ja29wdApnZXR0aW1lb2ZkYXkKZ2V0dWlkCmluZGlyCmlvY3RsCmtpbGwKa2lsbHBnCmxpbmsKbGlzdGVuCmxzZWVrCmxzdGF0Cm1pbmNvcmUKbWtkaXIKbWtmaWZvCm1rbm9kCm1tYXAKbXByb3RlY3QKbXNnY3RsCm1zZ2dldAptc2dyY3YKbXNnc25kCm1zeW5jCm11bm1hcApuZXJyCm5pY2UKb3BlbgpwYXRoY29uZgpwaXBlCnBvbGwKcHJlYWQKcHRyYWNlCnB3cml0ZQpxdW90YWN0bApyZWFkCnJlYWRsaW5rCnJlYWR2CnJlY3YKcmVjdmZyb20KcmVjdm1zZwpyZW5hbWUKcm1kaXIKc2JyawpzZWxlY3QKc2VtY3RsCnNlbWdldApzZW1vcApzZW5kCnNlbmRmaWxlCnNlbmRtc2cKc2VuZHRvCnNldGRvbWFpbm5hbWUKc2V0Z3JvdXBzCnNldGhvc3RuYW1lCnNldGl0aW1lcgpzZXRwZ2lkCnNldHBncnAKc2V0cHJpb3JpdHkKc2V0cmVnaWQKc2V0cmVzZ2lkCnNldHJlc3VpZApzZXRyZXVpZApzZXRybGltaXQKc2V0c2lkCnNldHNvY2tvcHQKc2V0dGltZW9mZGF5CnNobWF0CnNobWN0bApzaG1kdApzaG1nZXQKc2h1dGRvd24Kc2lnYWN0aW9uCnNpZ2FsdHN0YWNrCnNpZ2Jsb2NrCnNpZ2NsZWFudXAKc2lnbmFsCnNpZ3BhdXNlCnNpZ3BlbmRpbmcKc2lncHJvY21hc2sKc2lnc2V0bWFzawpzaWdzdGFjawpzaWdzdXNwZW5kCnNpZ3ZlYwpzb2NrZXQKc29ja2V0cGFpcgpzdGF0CnN0YXRmcwpzdGltZQpzeW1saW5rCnN5c2N0bAp0aW1lCnRpbWVzCnRydW5jYXRlCnVtYXNrCnVuYW1lCnVubGluawp1dGltZQp1dGltZXMKdmZvcmsKd2FpdAp3YWl0NAp3YWl0cGlkCndyaXRlCndyaXRldgo=