CuEsChlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvEg9nb29nbGUucHJvdG9idWYiNgoDQW55EhkKCHR5cGVfdXJsGAEgASgJUgd0eXBlVXJsEhQKBXZhbHVlGAIgASgMUgV2YWx1ZUJvChNjb20uZ29vZ2xlLnByb3RvYnVmQghBbnlQcm90b1ABWiVnaXRodWIuY29tL2dvbGFuZy9wcm90b2J1Zi9wdHlwZXMvYW55ogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSoErCgcSBR4AmgEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgA7CgkKAgglEgMiADsKCAoBCBIDIwA8CgkKAggLEgMjADwKCAoBCBIDJAAsCgkKAggBEgMkACwKCAoBCBIDJQApCgkKAggIEgMlACkKCAoBCBIDJgAiCgkKAggKEgMmACIKCAoBCBIDJwAhCgkKAggkEgMnACEK5BAKAgQAEgV5AJoBARrWECBgQW55YCBjb250YWlucyBhbiBhcmJpdHJhcnkgc2VyaWFsaXplZCBwcm90b2NvbCBidWZmZXIgbWVzc2FnZSBhbG9uZyB3aXRoIGEKIFVSTCB0aGF0IGRlc2NyaWJlcyB0aGUgdHlwZSBvZiB0aGUgc2VyaWFsaXplZCBtZXNzYWdlLgoKIFByb3RvYnVmIGxpYnJhcnkgcHJvdmlkZXMgc3VwcG9ydCB0byBwYWNrL3VucGFjayBBbnkgdmFsdWVzIGluIHRoZSBmb3JtCiBvZiB1dGlsaXR5IGZ1bmN0aW9ucyBvciBhZGRpdGlvbmFsIGdlbmVyYXRlZCBtZXRob2RzIG9mIHRoZSBBbnkgdHlwZS4KCiBFeGFtcGxlIDE6IFBhY2sgYW5kIHVucGFjayBhIG1lc3NhZ2UgaW4gQysrLgoKICAgICBGb28gZm9vID0gLi4uOwogICAgIEFueSBhbnk7CiAgICAgYW55LlBhY2tGcm9tKGZvbyk7CiAgICAgLi4uCiAgICAgaWYgKGFueS5VbnBhY2tUbygmZm9vKSkgewogICAgICAgLi4uCiAgICAgfQoKIEV4YW1wbGUgMjogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBKYXZhLgoKICAgICBGb28gZm9vID0gLi4uOwogICAgIEFueSBhbnkgPSBBbnkucGFjayhmb28pOwogICAgIC4uLgogICAgIGlmIChhbnkuaXMoRm9vLmNsYXNzKSkgewogICAgICAgZm9vID0gYW55LnVucGFjayhGb28uY2xhc3MpOwogICAgIH0KCiAgRXhhbXBsZSAzOiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIFB5dGhvbi4KCiAgICAgZm9vID0gRm9vKC4uLikKICAgICBhbnkgPSBBbnkoKQogICAgIGFueS5QYWNrKGZvbykKICAgICAuLi4KICAgICBpZiBhbnkuSXMoRm9vLkRFU0NSSVBUT1IpOgogICAgICAgYW55LlVucGFjayhmb28pCiAgICAgICAuLi4KCiAgRXhhbXBsZSA0OiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIEdvCgogICAgICBmb28gOj0gJnBiLkZvb3suLi59CiAgICAgIGFueSwgZXJyIDo9IHB0eXBlcy5NYXJzaGFsQW55KGZvbykKICAgICAgLi4uCiAgICAgIGZvbyA6PSAmcGIuRm9ve30KICAgICAgaWYgZXJyIDo9IHB0eXBlcy5Vbm1hcnNoYWxBbnkoYW55LCBmb28pOyBlcnIgIT0gbmlsIHsKICAgICAgICAuLi4KICAgICAgfQoKIFRoZSBwYWNrIG1ldGhvZHMgcHJvdmlkZWQgYnkgcHJvdG9idWYgbGlicmFyeSB3aWxsIGJ5IGRlZmF1bHQgdXNlCiAndHlwZS5nb29nbGVhcGlzLmNvbS9mdWxsLnR5cGUubmFtZScgYXMgdGhlIHR5cGUgVVJMIGFuZCB0aGUgdW5wYWNrCiBtZXRob2RzIG9ubHkgdXNlIHRoZSBmdWxseSBxdWFsaWZpZWQgdHlwZSBuYW1lIGFmdGVyIHRoZSBsYXN0ICcvJwogaW4gdGhlIHR5cGUgVVJMLCBmb3IgZXhhbXBsZSAiZm9vLmJhci5jb20veC95LnoiIHdpbGwgeWllbGQgdHlwZQogbmFtZSAieS56Ii4KCgogSlNPTgogPT09PQogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgYW4gYEFueWAgdmFsdWUgdXNlcyB0aGUgcmVndWxhcgogcmVwcmVzZW50YXRpb24gb2YgdGhlIGRlc2VyaWFsaXplZCwgZW1iZWRkZWQgbWVzc2FnZSwgd2l0aCBhbgogYWRkaXRpb25hbCBmaWVsZCBgQHR5cGVgIHdoaWNoIGNvbnRhaW5zIHRoZSB0eXBlIFVSTC4gRXhhbXBsZToKCiAgICAgcGFja2FnZSBnb29nbGUucHJvZmlsZTsKICAgICBtZXNzYWdlIFBlcnNvbiB7CiAgICAgICBzdHJpbmcgZmlyc3RfbmFtZSA9IDE7CiAgICAgICBzdHJpbmcgbGFzdF9uYW1lID0gMjsKICAgICB9CgogICAgIHsKICAgICAgICJAdHlwZSI6ICJ0eXBlLmdvb2dsZWFwaXMuY29tL2dvb2dsZS5wcm9maWxlLlBlcnNvbiIsCiAgICAgICAiZmlyc3ROYW1lIjogPHN0cmluZz4sCiAgICAgICAibGFzdE5hbWUiOiA8c3RyaW5nPgogICAgIH0KCiBJZiB0aGUgZW1iZWRkZWQgbWVzc2FnZSB0eXBlIGlzIHdlbGwta25vd24gYW5kIGhhcyBhIGN1c3RvbSBKU09OCiByZXByZXNlbnRhdGlvbiwgdGhhdCByZXByZXNlbnRhdGlvbiB3aWxsIGJlIGVtYmVkZGVkIGFkZGluZyBhIGZpZWxkCiBgdmFsdWVgIHdoaWNoIGhvbGRzIHRoZSBjdXN0b20gSlNPTiBpbiBhZGRpdGlvbiB0byB0aGUgYEB0eXBlYAogZmllbGQuIEV4YW1wbGUgKGZvciBtZXNzYWdlIFtnb29nbGUucHJvdG9idWYuRHVyYXRpb25dW10pOgoKICAgICB7CiAgICAgICAiQHR5cGUiOiAidHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucHJvdG9idWYuRHVyYXRpb24iLAogICAgICAgInZhbHVlIjogIjEuMjEycyIKICAgICB9CgoKCgoDBAABEgN5CAsK1woKBAQAAgASBJYBAhYayAogQSBVUkwvcmVzb3VyY2UgbmFtZSB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIHR5cGUgb2YgdGhlIHNlcmlhbGl6ZWQKIHByb3RvY29sIGJ1ZmZlciBtZXNzYWdlLiBUaGlzIHN0cmluZyBtdXN0IGNvbnRhaW4gYXQgbGVhc3QKIG9uZSAiLyIgY2hhcmFjdGVyLiBUaGUgbGFzdCBzZWdtZW50IG9mIHRoZSBVUkwncyBwYXRoIG11c3QgcmVwcmVzZW50CiB0aGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIHR5cGUgKGFzIGluCiBgcGF0aC9nb29nbGUucHJvdG9idWYuRHVyYXRpb25gKS4gVGhlIG5hbWUgc2hvdWxkIGJlIGluIGEgY2Fub25pY2FsIGZvcm0KIChlLmcuLCBsZWFkaW5nICIuIiBpcyBub3QgYWNjZXB0ZWQpLgoKIEluIHByYWN0aWNlLCB0ZWFtcyB1c3VhbGx5IHByZWNvbXBpbGUgaW50byB0aGUgYmluYXJ5IGFsbCB0eXBlcyB0aGF0IHRoZXkKIGV4cGVjdCBpdCB0byB1c2UgaW4gdGhlIGNvbnRleHQgb2YgQW55LiBIb3dldmVyLCBmb3IgVVJMcyB3aGljaCB1c2UgdGhlCiBzY2hlbWUgYGh0dHBgLCBgaHR0cHNgLCBvciBubyBzY2hlbWUsIG9uZSBjYW4gb3B0aW9uYWxseSBzZXQgdXAgYSB0eXBlCiBzZXJ2ZXIgdGhhdCBtYXBzIHR5cGUgVVJMcyB0byBtZXNzYWdlIGRlZmluaXRpb25zIGFzIGZvbGxvd3M6CgogKiBJZiBubyBzY2hlbWUgaXMgcHJvdmlkZWQsIGBodHRwc2AgaXMgYXNzdW1lZC4KICogQW4gSFRUUCBHRVQgb24gdGhlIFVSTCBtdXN0IHlpZWxkIGEgW2dvb2dsZS5wcm90b2J1Zi5UeXBlXVtdCiAgIHZhbHVlIGluIGJpbmFyeSBmb3JtYXQsIG9yIHByb2R1Y2UgYW4gZXJyb3IuCiAqIEFwcGxpY2F0aW9ucyBhcmUgYWxsb3dlZCB0byBjYWNoZSBsb29rdXAgcmVzdWx0cyBiYXNlZCBvbiB0aGUKICAgVVJMLCBvciBoYXZlIHRoZW0gcHJlY29tcGlsZWQgaW50byBhIGJpbmFyeSB0byBhdm9pZCBhbnkKICAgbG9va3VwLiBUaGVyZWZvcmUsIGJpbmFyeSBjb21wYXRpYmlsaXR5IG5lZWRzIHRvIGJlIHByZXNlcnZlZAogICBvbiBjaGFuZ2VzIHRvIHR5cGVzLiAoVXNlIHZlcnNpb25lZCB0eXBlIG5hbWVzIHRvIG1hbmFnZQogICBicmVha2luZyBjaGFuZ2VzLikKCiBOb3RlOiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgbm90IGN1cnJlbnRseSBhdmFpbGFibGUgaW4gdGhlIG9mZmljaWFsCiBwcm90b2J1ZiByZWxlYXNlLCBhbmQgaXQgaXMgbm90IHVzZWQgZm9yIHR5cGUgVVJMcyBiZWdpbm5pbmcgd2l0aAogdHlwZS5nb29nbGVhcGlzLmNvbS4KCiBTY2hlbWVzIG90aGVyIHRoYW4gYGh0dHBgLCBgaHR0cHNgIChvciB0aGUgZW1wdHkgc2NoZW1lKSBtaWdodCBiZQogdXNlZCB3aXRoIGltcGxlbWVudGF0aW9uIHNwZWNpZmljIHNlbWFudGljcy4KCgoOCgUEAAIABBIFlgECeQ0KDQoFBAACAAUSBJYBAggKDQoFBAACAAESBJYBCREKDQoFBAACAAMSBJYBFBUKVwoEBAACARIEmQECEhpJIE11c3QgYmUgYSB2YWxpZCBzZXJpYWxpemVkIHByb3RvY29sIGJ1ZmZlciBvZiB0aGUgYWJvdmUgc3BlY2lmaWVkIHR5cGUuCgoPCgUEAAIBBBIGmQEClgEWCg0KBQQAAgEFEgSZAQIHCg0KBQQAAgEBEgSZAQgNCg0KBQQAAgEDEgSZARARYgZwcm90bzMKy/kCCiBnb29nbGUvcHJvdG9idWYvZGVzY3JpcHRvci5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIk0KEUZpbGVEZXNjcmlwdG9yU2V0EjgKBGZpbGUYASADKAsyJC5nb29nbGUucHJvdG9idWYuRmlsZURlc2NyaXB0b3JQcm90b1IEZmlsZSLkBAoTRmlsZURlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEhgKB3BhY2thZ2UYAiABKAlSB3BhY2thZ2USHgoKZGVwZW5kZW5jeRgDIAMoCVIKZGVwZW5kZW5jeRIrChFwdWJsaWNfZGVwZW5kZW5jeRgKIAMoBVIQcHVibGljRGVwZW5kZW5jeRInCg93ZWFrX2RlcGVuZGVuY3kYCyADKAVSDndlYWtEZXBlbmRlbmN5EkMKDG1lc3NhZ2VfdHlwZRgEIAMoCzIgLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG9SC21lc3NhZ2VUeXBlEkEKCWVudW1fdHlwZRgFIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5FbnVtRGVzY3JpcHRvclByb3RvUghlbnVtVHlwZRJBCgdzZXJ2aWNlGAYgAygLMicuZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VEZXNjcmlwdG9yUHJvdG9SB3NlcnZpY2USQwoJZXh0ZW5zaW9uGAcgAygLMiUuZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvUglleHRlbnNpb24SNgoHb3B0aW9ucxgIIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5GaWxlT3B0aW9uc1IHb3B0aW9ucxJJChBzb3VyY2VfY29kZV9pbmZvGAkgASgLMh8uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvZGVJbmZvUg5zb3VyY2VDb2RlSW5mbxIWCgZzeW50YXgYDCABKAlSBnN5bnRheCK5BgoPRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSOwoFZmllbGQYAiADKAsyJS5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG9SBWZpZWxkEkMKCWV4dGVuc2lvbhgGIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90b1IJZXh0ZW5zaW9uEkEKC25lc3RlZF90eXBlGAMgAygLMiAuZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90b1IKbmVzdGVkVHlwZRJBCgllbnVtX3R5cGUYBCADKAsyJC5nb29nbGUucHJvdG9idWYuRW51bURlc2NyaXB0b3JQcm90b1IIZW51bVR5cGUSWAoPZXh0ZW5zaW9uX3JhbmdlGAUgAygLMi8uZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90by5FeHRlbnNpb25SYW5nZVIOZXh0ZW5zaW9uUmFuZ2USRAoKb25lb2ZfZGVjbBgIIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5PbmVvZkRlc2NyaXB0b3JQcm90b1IJb25lb2ZEZWNsEjkKB29wdGlvbnMYByABKAsyHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnNSB29wdGlvbnMSVQoOcmVzZXJ2ZWRfcmFuZ2UYCSADKAsyLi5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvLlJlc2VydmVkUmFuZ2VSDXJlc2VydmVkUmFuZ2USIwoNcmVzZXJ2ZWRfbmFtZRgKIAMoCVIMcmVzZXJ2ZWROYW1lGnoKDkV4dGVuc2lvblJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZBJACgdvcHRpb25zGAMgASgLMiYuZ29vZ2xlLnByb3RvYnVmLkV4dGVuc2lvblJhbmdlT3B0aW9uc1IHb3B0aW9ucxo3Cg1SZXNlcnZlZFJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZCJ8ChVFeHRlbnNpb25SYW5nZU9wdGlvbnMSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiKYBgoURmllbGREZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRIWCgZudW1iZXIYAyABKAVSBm51bWJlchJBCgVsYWJlbBgEIAEoDjIrLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90by5MYWJlbFIFbGFiZWwSPgoEdHlwZRgFIAEoDjIqLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90by5UeXBlUgR0eXBlEhsKCXR5cGVfbmFtZRgGIAEoCVIIdHlwZU5hbWUSGgoIZXh0ZW5kZWUYAiABKAlSCGV4dGVuZGVlEiMKDWRlZmF1bHRfdmFsdWUYByABKAlSDGRlZmF1bHRWYWx1ZRIfCgtvbmVvZl9pbmRleBgJIAEoBVIKb25lb2ZJbmRleBIbCglqc29uX25hbWUYCiABKAlSCGpzb25OYW1lEjcKB29wdGlvbnMYCCABKAsyHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zUgdvcHRpb25zIrYCCgRUeXBlEg8KC1RZUEVfRE9VQkxFEAESDgoKVFlQRV9GTE9BVBACEg4KClRZUEVfSU5UNjQQAxIPCgtUWVBFX1VJTlQ2NBAEEg4KClRZUEVfSU5UMzIQBRIQCgxUWVBFX0ZJWEVENjQQBhIQCgxUWVBFX0ZJWEVEMzIQBxINCglUWVBFX0JPT0wQCBIPCgtUWVBFX1NUUklORxAJEg4KClRZUEVfR1JPVVAQChIQCgxUWVBFX01FU1NBR0UQCxIOCgpUWVBFX0JZVEVTEAwSDwoLVFlQRV9VSU5UMzIQDRINCglUWVBFX0VOVU0QDhIRCg1UWVBFX1NGSVhFRDMyEA8SEQoNVFlQRV9TRklYRUQ2NBAQEg8KC1RZUEVfU0lOVDMyEBESDwoLVFlQRV9TSU5UNjQQEiJDCgVMYWJlbBISCg5MQUJFTF9PUFRJT05BTBABEhIKDkxBQkVMX1JFUVVJUkVEEAISEgoOTEFCRUxfUkVQRUFURUQQAyJjChRPbmVvZkRlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEjcKB29wdGlvbnMYAiABKAsyHS5nb29nbGUucHJvdG9idWYuT25lb2ZPcHRpb25zUgdvcHRpb25zIuMCChNFbnVtRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSPwoFdmFsdWUYAiADKAsyKS5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlRGVzY3JpcHRvclByb3RvUgV2YWx1ZRI2CgdvcHRpb25zGAMgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkVudW1PcHRpb25zUgdvcHRpb25zEl0KDnJlc2VydmVkX3JhbmdlGAQgAygLMjYuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9yUHJvdG8uRW51bVJlc2VydmVkUmFuZ2VSDXJlc2VydmVkUmFuZ2USIwoNcmVzZXJ2ZWRfbmFtZRgFIAMoCVIMcmVzZXJ2ZWROYW1lGjsKEUVudW1SZXNlcnZlZFJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZCKDAQoYRW51bVZhbHVlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSFgoGbnVtYmVyGAIgASgFUgZudW1iZXISOwoHb3B0aW9ucxgDIAEoCzIhLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVPcHRpb25zUgdvcHRpb25zIqcBChZTZXJ2aWNlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSPgoGbWV0aG9kGAIgAygLMiYuZ29vZ2xlLnByb3RvYnVmLk1ldGhvZERlc2NyaXB0b3JQcm90b1IGbWV0aG9kEjkKB29wdGlvbnMYAyABKAsyHy5nb29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnNSB29wdGlvbnMiiQIKFU1ldGhvZERlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEh0KCmlucHV0X3R5cGUYAiABKAlSCWlucHV0VHlwZRIfCgtvdXRwdXRfdHlwZRgDIAEoCVIKb3V0cHV0VHlwZRI4CgdvcHRpb25zGAQgASgLMh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnNSB29wdGlvbnMSMAoQY2xpZW50X3N0cmVhbWluZxgFIAEoCDoFZmFsc2VSD2NsaWVudFN0cmVhbWluZxIwChBzZXJ2ZXJfc3RyZWFtaW5nGAYgASgIOgVmYWxzZVIPc2VydmVyU3RyZWFtaW5nIpIJCgtGaWxlT3B0aW9ucxIhCgxqYXZhX3BhY2thZ2UYASABKAlSC2phdmFQYWNrYWdlEjAKFGphdmFfb3V0ZXJfY2xhc3NuYW1lGAggASgJUhJqYXZhT3V0ZXJDbGFzc25hbWUSNQoTamF2YV9tdWx0aXBsZV9maWxlcxgKIAEoCDoFZmFsc2VSEWphdmFNdWx0aXBsZUZpbGVzEkQKHWphdmFfZ2VuZXJhdGVfZXF1YWxzX2FuZF9oYXNoGBQgASgIQgIYAVIZamF2YUdlbmVyYXRlRXF1YWxzQW5kSGFzaBI6ChZqYXZhX3N0cmluZ19jaGVja191dGY4GBsgASgIOgVmYWxzZVITamF2YVN0cmluZ0NoZWNrVXRmOBJTCgxvcHRpbWl6ZV9mb3IYCSABKA4yKS5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMuT3B0aW1pemVNb2RlOgVTUEVFRFILb3B0aW1pemVGb3ISHQoKZ29fcGFja2FnZRgLIAEoCVIJZ29QYWNrYWdlEjUKE2NjX2dlbmVyaWNfc2VydmljZXMYECABKAg6BWZhbHNlUhFjY0dlbmVyaWNTZXJ2aWNlcxI5ChVqYXZhX2dlbmVyaWNfc2VydmljZXMYESABKAg6BWZhbHNlUhNqYXZhR2VuZXJpY1NlcnZpY2VzEjUKE3B5X2dlbmVyaWNfc2VydmljZXMYEiABKAg6BWZhbHNlUhFweUdlbmVyaWNTZXJ2aWNlcxI3ChRwaHBfZ2VuZXJpY19zZXJ2aWNlcxgqIAEoCDoFZmFsc2VSEnBocEdlbmVyaWNTZXJ2aWNlcxIlCgpkZXByZWNhdGVkGBcgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBIvChBjY19lbmFibGVfYXJlbmFzGB8gASgIOgVmYWxzZVIOY2NFbmFibGVBcmVuYXMSKgoRb2JqY19jbGFzc19wcmVmaXgYJCABKAlSD29iamNDbGFzc1ByZWZpeBIpChBjc2hhcnBfbmFtZXNwYWNlGCUgASgJUg9jc2hhcnBOYW1lc3BhY2USIQoMc3dpZnRfcHJlZml4GCcgASgJUgtzd2lmdFByZWZpeBIoChBwaHBfY2xhc3NfcHJlZml4GCggASgJUg5waHBDbGFzc1ByZWZpeBIjCg1waHBfbmFtZXNwYWNlGCkgASgJUgxwaHBOYW1lc3BhY2USNAoWcGhwX21ldGFkYXRhX25hbWVzcGFjZRgsIAEoCVIUcGhwTWV0YWRhdGFOYW1lc3BhY2USIQoMcnVieV9wYWNrYWdlGC0gASgJUgtydWJ5UGFja2FnZRJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbiI6CgxPcHRpbWl6ZU1vZGUSCQoFU1BFRUQQARINCglDT0RFX1NJWkUQAhIQCgxMSVRFX1JVTlRJTUUQAyoJCOgHEICAgIACSgQIJhAnItECCg5NZXNzYWdlT3B0aW9ucxI8ChdtZXNzYWdlX3NldF93aXJlX2Zvcm1hdBgBIAEoCDoFZmFsc2VSFG1lc3NhZ2VTZXRXaXJlRm9ybWF0EkwKH25vX3N0YW5kYXJkX2Rlc2NyaXB0b3JfYWNjZXNzb3IYAiABKAg6BWZhbHNlUhxub1N0YW5kYXJkRGVzY3JpcHRvckFjY2Vzc29yEiUKCmRlcHJlY2F0ZWQYAyABKAg6BWZhbHNlUgpkZXByZWNhdGVkEhsKCW1hcF9lbnRyeRgHIAEoCFIIbWFwRW50cnkSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAkoECAgQCUoECAkQCiLiAwoMRmllbGRPcHRpb25zEkEKBWN0eXBlGAEgASgOMiMuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5DVHlwZToGU1RSSU5HUgVjdHlwZRIWCgZwYWNrZWQYAiABKAhSBnBhY2tlZBJHCgZqc3R5cGUYBiABKA4yJC5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zLkpTVHlwZToJSlNfTk9STUFMUgZqc3R5cGUSGQoEbGF6eRgFIAEoCDoFZmFsc2VSBGxhenkSJQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSGQoEd2VhaxgKIAEoCDoFZmFsc2VSBHdlYWsSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24iLwoFQ1R5cGUSCgoGU1RSSU5HEAASCAoEQ09SRBABEhAKDFNUUklOR19QSUVDRRACIjUKBkpTVHlwZRINCglKU19OT1JNQUwQABINCglKU19TVFJJTkcQARINCglKU19OVU1CRVIQAioJCOgHEICAgIACSgQIBBAFInMKDE9uZW9mT3B0aW9ucxJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACIsABCgtFbnVtT3B0aW9ucxIfCgthbGxvd19hbGlhcxgCIAEoCFIKYWxsb3dBbGlhcxIlCgpkZXByZWNhdGVkGAMgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACSgQIBRAGIp4BChBFbnVtVmFsdWVPcHRpb25zEiUKCmRlcHJlY2F0ZWQYASABKAg6BWZhbHNlUgpkZXByZWNhdGVkElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIinAEKDlNlcnZpY2VPcHRpb25zEiUKCmRlcHJlY2F0ZWQYISABKAg6BWZhbHNlUgpkZXByZWNhdGVkElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIi4AIKDU1ldGhvZE9wdGlvbnMSJQoKZGVwcmVjYXRlZBghIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQScQoRaWRlbXBvdGVuY3lfbGV2ZWwYIiABKA4yLy5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucy5JZGVtcG90ZW5jeUxldmVsOhNJREVNUE9URU5DWV9VTktOT1dOUhBpZGVtcG90ZW5jeUxldmVsElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uIlAKEElkZW1wb3RlbmN5TGV2ZWwSFwoTSURFTVBPVEVOQ1lfVU5LTk9XThAAEhMKD05PX1NJREVfRUZGRUNUUxABEg4KCklERU1QT1RFTlQQAioJCOgHEICAgIACIpoDChNVbmludGVycHJldGVkT3B0aW9uEkEKBG5hbWUYAiADKAsyLS5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvbi5OYW1lUGFydFIEbmFtZRIpChBpZGVudGlmaWVyX3ZhbHVlGAMgASgJUg9pZGVudGlmaWVyVmFsdWUSLAoScG9zaXRpdmVfaW50X3ZhbHVlGAQgASgEUhBwb3NpdGl2ZUludFZhbHVlEiwKEm5lZ2F0aXZlX2ludF92YWx1ZRgFIAEoA1IQbmVnYXRpdmVJbnRWYWx1ZRIhCgxkb3VibGVfdmFsdWUYBiABKAFSC2RvdWJsZVZhbHVlEiEKDHN0cmluZ192YWx1ZRgHIAEoDFILc3RyaW5nVmFsdWUSJwoPYWdncmVnYXRlX3ZhbHVlGAggASgJUg5hZ2dyZWdhdGVWYWx1ZRpKCghOYW1lUGFydBIbCgluYW1lX3BhcnQYASACKAlSCG5hbWVQYXJ0EiEKDGlzX2V4dGVuc2lvbhgCIAIoCFILaXNFeHRlbnNpb24ipwIKDlNvdXJjZUNvZGVJbmZvEkQKCGxvY2F0aW9uGAEgAygLMiguZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvZGVJbmZvLkxvY2F0aW9uUghsb2NhdGlvbhrOAQoITG9jYXRpb24SFgoEcGF0aBgBIAMoBUICEAFSBHBhdGgSFgoEc3BhbhgCIAMoBUICEAFSBHNwYW4SKQoQbGVhZGluZ19jb21tZW50cxgDIAEoCVIPbGVhZGluZ0NvbW1lbnRzEisKEXRyYWlsaW5nX2NvbW1lbnRzGAQgASgJUhB0cmFpbGluZ0NvbW1lbnRzEjoKGWxlYWRpbmdfZGV0YWNoZWRfY29tbWVudHMYBiADKAlSF2xlYWRpbmdEZXRhY2hlZENvbW1lbnRzItEBChFHZW5lcmF0ZWRDb2RlSW5mbxJNCgphbm5vdGF0aW9uGAEgAygLMi0uZ29vZ2xlLnByb3RvYnVmLkdlbmVyYXRlZENvZGVJbmZvLkFubm90YXRpb25SCmFubm90YXRpb24abQoKQW5ub3RhdGlvbhIWCgRwYXRoGAEgAygFQgIQAVIEcGF0aBIfCgtzb3VyY2VfZmlsZRgCIAEoCVIKc291cmNlRmlsZRIUCgViZWdpbhgDIAEoBVIFYmVnaW4SEAoDZW5kGAQgASgFUgNlbmRCjwEKE2NvbS5nb29nbGUucHJvdG9idWZCEERlc2NyaXB0b3JQcm90b3NIAVo+Z2l0aHViLmNvbS9nb2xhbmcvcHJvdG9idWYvcHJvdG9jLWdlbi1nby9kZXNjcmlwdG9yO2Rlc2NyaXB0b3L4AQGiAgNHUEKqAhpHb29nbGUuUHJvdG9idWYuUmVmbGVjdGlvbkqsvgIKBxIFJwDyBgEKqg8KAQwSAycAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMtsCIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIFRoZSBtZXNzYWdlcyBpbiB0aGlzIGZpbGUgZGVzY3JpYmUgdGhlIGRlZmluaXRpb25zIGZvdW5kIGluIC5wcm90byBmaWxlcy4KIEEgdmFsaWQgLnByb3RvIGZpbGUgY2FuIGJlIHRyYW5zbGF0ZWQgZGlyZWN0bHkgdG8gYSBGaWxlRGVzY3JpcHRvclByb3RvCiB3aXRob3V0IGFueSBvdGhlciBpbmZvcm1hdGlvbiAoZS5nLiB3aXRob3V0IHJlYWRpbmcgaXRzIGltcG9ydHMpLgoKCAoBAhID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dG9yZSB0aGUgdmFsdWVzIGluIHRoZW0uICBJbnN0ZWFkIGl0IHN0b3JlcyB0aGVtIGluIGEgZmllbGQgaW4gdGhlICpPcHRpb25zCiBtZXNzYWdlIGNhbGxlZCB1bmludGVycHJldGVkX29wdGlvbi4gVGhpcyBmaWVsZCBtdXN0IGhhdmUgdGhlIHNhbWUgbmFtZQogYWNyb3NzIGFsbCAqT3B0aW9ucyBtZXNzYWdlcy4gV2UgdGhlbiB1c2UgdGhpcyBmaWVsZCB0byBwb3B1bGF0ZSB0aGUKIGV4dGVuc2lvbnMgd2hlbiB3ZSBidWlsZCBhIGRlc2NyaXB0b3IsIGF0IHdoaWNoIHBvaW50IGFsbCBwcm90b3MgaGF2ZSBiZWVuCiBwYXJzZWQgYW5kIHNvIGFsbCBleHRlbnNpb25zIGFyZSBrbm93bi4KCiBFeHRlbnNpb24gbnVtYmVycyBmb3IgY3VzdG9tIG9wdGlvbnMgbWF5IGJlIGNob3NlbiBhcyBmb2xsb3dzOgogKiBGb3Igb3B0aW9ucyB3aGljaCB3aWxsIG9ubHkgYmUgdXNlZCB3aXRoaW4gYSBzaW5nbGUgYXBwbGljYXRpb24gb3IKICAgb3JnYW5pemF0aW9uLCBvciBmb3IgZXhwZXJpbWVudGFsIG9wdGlvbnMsIHVzZSBmaWVsZCBudW1iZXJzIDUwMDAwCiAgIHRocm91Z2ggOTk5OTkuICBJdCBpcyB1cCB0byB5b3UgdG8gZW5zdXJlIHRoYXQgeW91IGRvIG5vdCB1c2UgdGhlCiAgIHNhbWUgbnVtYmVyIGZvciBtdWx0aXBsZSBvcHRpb25zLgogKiBGb3Igb3B0aW9ucyB3aGljaCB3aWxsIGJlIHB1Ymxpc2hlZCBhbmQgdXNlZCBwdWJsaWNseSBieSBtdWx0aXBsZQogICBpbmRlcGVuZGVudCBlbnRpdGllcywgZS1tYWlsIHByb3RvYnVmLWdsb2JhbC1leHRlbnNpb24tcmVnaXN0cnlAZ29vZ2xlLmNvbQogICB0byByZXNlcnZlIGV4dGVuc2lvbiBudW1iZXJzLiBTaW1wbHkgcHJvdmlkZSB5b3VyIHByb2plY3QgbmFtZSAoZS5nLgogICBPYmplY3RpdmUtQyBwbHVnaW4pIGFuZCB5b3VyIHByb2plY3Qgd2Vic2l0ZSAoaWYgYXZhaWxhYmxlKSAtLSB0aGVyZSdzIG5vCiAgIG5lZWQgdG8gZXhwbGFpbiBob3cgeW91IGludGVuZCB0byB1c2UgdGhlbS4gVXN1YWxseSB5b3Ugb25seSBuZWVkIG9uZQogICBleHRlbnNpb24gbnVtYmVyLiBZb3UgY2FuIGRlY2xhcmUgbXVsdGlwbGUgb3B0aW9ucyB3aXRoIG9ubHkgb25lIGV4dGVuc2lvbgogICBudW1iZXIgYnkgcHV0dGluZyB0aGVtIGluIGEgc3ViLW1lc3NhZ2UuIFNlZSB0aGUgQ3VzdG9tIE9wdGlvbnMgc2VjdGlvbiBvZgogICB0aGUgZG9jcyBmb3IgZXhhbXBsZXM6CiAgIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvZG9jcy9wcm90byNvcHRpb25zCiAgIElmIHRoaXMgdHVybnMgb3V0IHRvIGJlIHBvcHVsYXIsIGEgd2ViIHNlcnZpY2Ugd2lsbCBiZSBzZXQgdXAKICAgdG8gYXV0b21hdGljYWxseSBhc3NpZ24gb3B0aW9uIG51bWJlcnMuCgoLCgMECgESBL0CCBMK9AEKBAQKAgASBMMCAiMa5QEgU2V0cyB0aGUgSmF2YSBwYWNrYWdlIHdoZXJlIGNsYXNzZXMgZ2VuZXJhdGVkIGZyb20gdGhpcyAucHJvdG8gd2lsbCBiZQogcGxhY2VkLiAgQnkgZGVmYXVsdCwgdGhlIHByb3RvIHBhY2thZ2UgaXMgdXNlZCwgYnV0IHRoaXMgaXMgb2Z0ZW4KIGluYXBwcm9wcmlhdGUgYmVjYXVzZSBwcm90byBwYWNrYWdlcyBkbyBub3Qgbm9ybWFsbHkgc3RhcnQgd2l0aCBiYWNrd2FyZHMKIGRvbWFpbiBuYW1lcy4KCg0KBQQKAgAEEgTDAgIKCg0KBQQKAgAFEgTDAgsRCg0KBQQKAgABEgTDAhIeCg0KBQQKAgADEgTDAiEiCr8CCgQECgIBEgTLAgIrGrACIElmIHNldCwgYWxsIHRoZSBjbGFzc2VzIGZyb20gdGhlIC5wcm90byBmaWxlIGFyZSB3cmFwcGVkIGluIGEgc2luZ2xlCiBvdXRlciBjbGFzcyB3aXRo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DQoFBAoCBQQSBOgCAgoKDQoFBAoCBQYSBOgCCxcKDQoFBAoCBQESBOgCGCQKDQoFBAoCBQMSBOgCJygKDQoFBAoCBQgSBOgCKTgKDQoFBAoCBQcSBOgCMjcK4gIKBAQKAgYSBO8CAiIa0wIgU2V0cyB0aGUgR28gcGFja2FnZSB3aGVyZSBzdHJ1Y3RzIGdlbmVyYXRlZCBmcm9tIHRoaXMgLnByb3RvIHdpbGwgYmUKIHBsYWNlZC4gSWYgb21pdHRlZCwgdGhlIEdvIHBhY2thZ2Ugd2lsbCBiZSBkZXJpdmVkIGZyb20gdGhlIGZvbGxvd2luZzoKICAgLSBUaGUgYmFzZW5hbWUgb2YgdGhlIHBhY2thZ2UgaW1wb3J0IHBhdGgsIGlmIHByb3ZpZGVkLgogICAtIE90aGVyd2lzZSwgdGhlIHBhY2thZ2Ugc3RhdGVtZW50IGluIHRoZSAucHJvdG8gZmlsZSwgaWYgcHJlc2VudC4KICAgLSBPdGhlcndpc2UsIHRoZSBiYXNlbmFtZSBvZiB0aGUgLnByb3RvIGZpbGUsIHdpdGhvdXQgZXh0ZW5zaW9uLgoKDQoFBAoCBgQSBO8CAgoKDQoFBAoCBgUSBO8CCxEKDQoFBAoCBgESBO8CEhwKDQoFBAoCBgMSBO8CHyEK1AQKBAQKAgcSBP0CAjkaxQQgU2hvdWxkIGdlbmVyaWMgc2VydmljZXMgYmUgZ2VuZXJhdGVkIGluIGVhY2ggbGFuZ3VhZ2U/ICAiR2VuZXJpYyIgc2VydmljZXMKIGFyZSBub3Qgc3BlY2lmaWMgdG8gYW55IHBhcnRpY3VsYXIgUlBDIHN5c3RlbS4gIFRoZXkgYXJlIGdlbmVyYXRlZCBieSB0aGUKIG1haW4gY29kZSBnZW5lcmF0b3JzIGluIGVhY2ggbGFuZ3VhZ2UgKHdpdGhvdXQgYWRkaXRpb25hbCBwbHVnaW5zKS4KIEdlbmVyaWMgc2VydmljZXMgd2VyZSB0aGUgb25seSBraW5kIG9mIHNlcnZpY2UgZ2VuZXJhdGlvbiBzdXBwb3J0ZWQgYnkKIGVhcmx5IHZlcnNpb25zIG9mIGdvb2dsZS5wcm90b2J1Zi4KCiBHZW5lcmljIHNlcnZpY2VzIGFyZSBub3cgY29uc2lkZXJlZCBkZXByZWNhdGVk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dCBEZXByZWNhdGVkIGFubm90YXRpb25zCiBmb3IgdGhlIG1lc3NhZ2UsIG9yIGl0IHdpbGwgYmUgY29tcGxldGVseSBpZ25vcmVkOyBpbiB0aGUgdmVyeSBsZWFzdCwKIHRoaXMgaXMgYSBmb3JtYWxpemF0aW9uIGZvciBkZXByZWNhdGluZyBtZXNzYWdlcy4KCg0KBQQLAgIEEgTXAwIKCg0KBQQLAgIFEgTXAwsPCg0KBQQLAgIBEgTXAxAaCg0KBQQLAgIDEgTXAx0eCg0KBQQLAgIIEgTXAx8uCg0KBQQLAgIHEgTXAygtCp4GCgQECwIDEgTuAwIeGo8GIFdoZXRoZXIgdGhlIG1lc3NhZ2UgaXMgYW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFwIGVudHJ5IHR5cGUgZm9yIHRoZQogbWFwcyBmaWVsZC4KCiBGb3IgbWFwcyBmaWVsZHM6CiAgICAgbWFwPEtleVR5cGUsIFZhbHVlVHlwZT4gbWFwX2ZpZWxkID0gMTsKIFRoZSBwYXJzZWQgZGVzY3JpcHRvciBsb29rcyBsaWtlOgogICAgIG1lc3NhZ2UgTWFwRmllbGRFbnRyeSB7CiAgICAgICAgIG9wdGlvbiBtYXBfZW50cnkgPSB0cnVlOwogICAgICAgICBvcHRpb25hbCBLZXlUeXBlIGtleSA9IDE7CiAgICAgICAgIG9wdGlvbmFsIFZhbHVlVHlwZSB2YWx1ZSA9IDI7CiAgICAgfQogICAgIHJlcGVhdGVkIE1hcEZpZWxkRW50cnkgbWFwX2ZpZWxkID0gMTsKCiBJbXBsZW1lbnRhdGlvbnMgbWF5IGNob29zZSBub3QgdG8gZ2VuZXJhdGUgdGhlIG1hcF9lbnRyeT10cnVlIG1lc3NhZ2UsIGJ1dAogdXNlIGEgbmF0aXZlIG1hcCBpbiB0aGUgdGFyZ2V0IGxhbmd1YWdlIHRvIGhvbGQgdGhlIGtleXMgYW5kIHZhbHVlcy4KIFRoZSByZWZsZWN0aW9uIEFQSXMgaW4gc3VjaCBpbXBsZW1lbnRpb25zIHN0aWxsIG5lZWQgdG8gd29yayBhcwogaWYgdGhlIGZpZWxkIGlzIGEgcmVwZWF0ZWQgbWVzc2FnZSBmaWVsZC4KCiBOT1RFOiBEbyBub3Qgc2V0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cyBmaWVsZCBiZSBwYXJzZWQgbGF6aWx5PyAgTGF6eSBhcHBsaWVzIG9ubHkgdG8gbWVzc2FnZS10eXBlCiBmaWVsZHMuICBJdCBtZWFucyB0aGF0IHdoZW4gdGhlIG91dGVyIG1lc3NhZ2UgaXMgaW5pdGlhbGx5IHBhcnNlZCwgdGhlCiBpbm5lciBtZXNzYWdlJ3MgY29udGVudHMgd2lsbCBub3QgYmUgcGFyc2VkIGJ1dCBpbnN0ZWFkIHN0b3JlZCBpbiBlbmNvZGVkCiBmb3JtLiAgVGhlIGlubmVyIG1lc3NhZ2Ugd2lsbCBhY3R1YWxseSBiZSBwYXJzZWQgd2hlbiBpdCBpcyBmaXJzdCBhY2Nlc3NlZC4KCiBUaGlzIGlzIG9ubHkgYSBoaW50LiAgSW1wbGVtZW50YXRpb25zIGFyZSBmcmVlIHRvIGNob29zZSB3aGV0aGVyIHRvIHVzZQogZWFnZXIgb3IgbGF6eSBwYXJzaW5nIHJlZ2FyZGxlc3Mgb2YgdGhlIHZhbHVlIG9mIHRoaXMgb3B0aW9uLiAgSG93ZXZlciwKIHNldHRpbmcgdGhpcyBvcHRpb24gdHJ1ZSBzdWdnZXN0cyB0aGF0IHRoZSBwcm90b2NvbCBhdXRob3IgYmVsaWV2ZXMgdGhhdAogdXNpbmcgbGF6eSBwYXJzaW5nIG9uIHRoaXMgZmllbGQgaXMgd29ydGggdGhlIGFkZGl0aW9uYWwgYm9va2tlZXBpbmcKIG92ZXJoZWFkIHR5cGljYWxseSBuZWVkZWQgdG8gaW1wbGVtZW50IGl0LgoKIFRoaXMgb3B0aW9uIGRvZXMgbm90IGFmZmVjdCB0aGUgcHVibGljIGludGVyZmFjZSBvZiBhbnkgZ2VuZXJhdGVkIGNvZGU7CiBhbGwgbWV0aG9kIHNpZ25hdHVyZXMgcmVtYWluIHRoZSBzYW1lLiAgRnVydGhlcm1vcmUsIHRocmVhZC1zYWZldHkgb2YgdGhlCiBpbnRlcmZhY2UgaXMgbm90IGFmZmVjdGVkIGJ5IHRoaXMgb3B0aW9uOyBjb25zdCBtZXRob2RzIHJlbWFpbiBzYWZlIHRvCiBjYWxsIGZyb20gbXVsdGlwbGUgdGhyZWFkcyBjb25jdXJyZW50bHksIHdoaWxlIG5vbi1jb25zdCBtZXRob2RzIGNvbnRpbnVlCiB0byByZXF1aXJlIGV4Y2x1c2l2ZSBhY2Nlc3MuCgoKIE5vdGUgdGhhdCBpbXBsZW1lbnRhdGlvbnMgbWF5IGNob29zZSBub3QgdG8gY2hlY2sgcmVxdWlyZWQgZmllbGRzIHdpdGhpbgogYSBsYXp5IHN1Yi1tZXNzYWdlLiAgVGhhdCBpcywgY2FsbGluZyBJc0luaXRpYWxpemVkKCkgb24gdGhlIG91dGVyIG1lc3NhZ2UKIG1heSByZXR1cm4gdHJ1ZSBldmVuIGlmIHRoZSBpbm5lciBtZXNzYWdlIGhhcyBtaXNzaW5nIHJlcXVpcmVkIGZpZWxkcy4KIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSBpbm5lciBtZXNzYWdlIHdvdWxkIGhhdmUgdG8gYmUKIHBhcnNlZCBpbiBvcmRlciB0byBwZXJmb3JtIHRoZSBjaGVjaywgZGVmZWF0aW5nIHRoZSBwdXJwb3NlIG9mIGxhenkKIHBhcnNpbmcuICBBbiBpbXBsZW1lbnRhdGlvbiB3aGljaCBjaG9vc2VzIG5vdCB0byBjaGVjayByZXF1aXJlZCBmaWVsZHMKIG11c3QgYmUgY29uc2lzdGVudCBhYm91dCBpdC4gIFRoYXQgaXMsIGZvciBhbnkgcGFydGljdWxhciBzdWItbWVzc2FnZSwgdGhlCiBpbXBsZW1lbnRhdGlvbiBtdXN0IGVpdGhlciAqYWx3YXlzKiBjaGVjayBpdHMgcmVxdWlyZWQgZmllbGRzLCBvciAqbmV2ZXIqCiBjaGVjayBpdHMgcmVxdWlyZWQgZmllbGRzLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgb3Igbm90IHRoZSBtZXNzYWdlIGhhcwogYmVlbiBwYXJzZWQuCgoNCgUEDAIDBBIEwgQCCgoNCgUEDAIDBRIEwgQLDwoNCgUEDAIDARIEwgQQFAoNCgUEDAIDAxIEwgQXGAoNCgUEDAIDCBIEwgQZKAoNCgUEDAIDBxIEwgQiJwroAQoEBAwCBBIEyAQCLxrZASBJcyB0aGlzIGZpZWxkIGRlcHJlY2F0ZWQ/CiBEZXBlbmRpbmcgb24gdGhlIHRhcmdldCBwbGF0Zm9ybSwgdGhpcyBjYW4g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CgUEEQIBBBIEqwUCCgoNCgUEEQIBBhIEqwULGwoNCgUEEQIBARIEqwUcLQoNCgUEEQIBAxIErAUGCAoNCgUEEQIBCBIErAUJJgoNCgUEEQIBBxIErAUSJQpPCgQEEQICEgSvBQI6GkEgVGhlIHBhcnNlciBzdG9yZXMgb3B0aW9ucyBpdCBkb2Vzbid0IHJlY29nbml6ZSBoZXJlLiBTZWUgYWJvdmUuCgoNCgUEEQICBBIErwUCCgoNCgUEEQICBhIErwULHgoNCgUEEQICARIErwUfMwoNCgUEEQICAxIErwU2OQpaCgMEEQUSBLIFAhkaTSBDbGllbnRzIGNhbiBkZWZpbmUgY3VzdG9tIG9wdGlvbnMgaW4gZXh0ZW5zaW9ucyBvZiB0aGlzIG1lc3NhZ2UuIFNlZSBhYm92ZS4KCgwKBAQRBQASBLIFDRgKDQoFBBEFAAESBLIFDREKDQoFBBEFAAISBLIFFRgKiwMKAgQSEga8BQDQBQEa/AIgQSBtZXNzYWdlIHJlcHJlc2VudGluZyBhIG9wdGlvbiB0aGUgcGFyc2VyIGRvZXMgbm90IHJlY29nbml6ZS4gVGhpcyBvbmx5CiBhcHBlYXJzIGluIG9wdGlvbnMgcHJvdG9zIGNyZWF0ZWQgYnkgdGhlIGNvbXBpbGVyOjpQYXJzZXIgY2xhc3MuCiBEZXNjcmlwdG9yUG9vbCByZXNvbHZlcyB0aGVzZSB3aGVuIGJ1aWxkaW5nIERlc2NyaXB0b3Igb2JqZWN0cy4gVGhlcmVmb3JlLAogb3B0aW9ucyBwcm90b3MgaW4gZGVzY3JpcHRvciBvYmplY3RzIChlLmcuIHJldHVybmVkIGJ5IERlc2NyaXB0b3I6Om9wdGlvbnMoKSwKIG9yIHByb2R1Y2VkIGJ5IERlc2NyaXB0b3I6OkNvcHlUbygpKSB3aWxsIG5ldmVyIGhhdmUgVW5pbnRlcnByZXRlZE9wdGlvbnMKIGluIHRoZW0uCgoLCgMEEgESBLwFCBsKywIKBAQSAwASBsIFAsUFAxq6AiBUaGUgbmFtZSBvZiB0aGUgdW5pbnRlcnByZXRlZCBvcHRpb24uICBFYWNoIHN0cmluZyByZXByZXNlbnRzIGEgc2VnbWVudCBpbgogYSBkb3Qtc2VwYXJhdGVkIG5hbWUuICBpc19l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ICAgICAgICAgICAgICAgcmVwcmVzZW50cwogICBbYSxpKSAgWyA0LCAwLCAyLCAwIF0gICAgIFRoZSB3aG9sZSBmaWVsZCBkZWZpbml0aW9uLgogICBbYSxiKSAgWyA0LCAwLCAyLCAwLCA0IF0gIFRoZSBsYWJlbCAob3B0aW9uYWwpLgogICBbYyxkKSAgWyA0LCAwLCAyLCAwLCA1IF0gIFRoZSB0eXBlIChzdHJpbmcpLgogICBbZSxmKSAgWyA0LCAwLCAyLCAwLCAxIF0gIFRoZSBuYW1lIChmb28pLgogICBbZyxoKSAgWyA0LCAwLCAyLCAwLCAzIF0gIFRoZSBudW1iZXIgKDEpLgoKIE5vdGVzOgogLSBBIGxvY2F0aW9uIG1heSByZWZlciB0byBhIHJlcGVhdGVkIGZpZWxkIGl0c2VsZiAoaS5lLiBub3QgdG8gYW55CiAgIHBhcnRpY3VsYXIgaW5kZXggd2l0aGluIGl0KS4gIFRoaXMgaXMgdXNlZCB3aGVuZXZlciBhIHNldCBvZiBlbGVtZW50cyBhcmUKICAgbG9naWNhbGx5IGVuY2xvc2VkIGluIGEgc2luZ2xlIGNvZGUgc2VnbWVudC4gIEZvciBleGFtcGxlLCBhbiBlbnRpcmUKICAgZXh0ZW5kIGJsb2NrIChwb3NzaWJseSBjb250YWluaW5nIG11bHRpcGxlIGV4dGVuc2lvbiBkZWZpbml0aW9ucykgd2lsbAogICBoYXZlIGFuIG91dGVyIGxvY2F0aW9uIHdob3NlIHBhdGggcmVmZXJzIHRvIHRoZSAiZXh0ZW5zaW9ucyIgcmVwZWF0ZWQKICAgZmllbGQgd2l0aG91dCBhbiBpbmRleC4KIC0gTXVsdGlwbGUgbG9jYXRpb25zIG1heSBoYXZlIHRoZSBzYW1lIHBhdGguICBUaGlzIGhhcHBlbnMgd2hlbiBhIHNpbmdsZQogICBsb2dpY2FsIGRlY2xhcmF0aW9uIGlzIHNwcmVhZCBvdXQgYWNyb3NzIG11bHRpcGxlIHBsYWNlcy4gIFRoZSBtb3N0CiAgIG9idmlvdXMgZXhhbXBsZSBpcyB0aGUgImV4dGVuZCIgYmxvY2sgYWdhaW4gLS0gdGhlcmUgbWF5IGJlIG11bHRpcGxlCiAgIGV4dGVuZCBibG9ja3MgaW4gdGhlIHNhbWUgc2NvcGUsIGVhY2ggb2Ygd2hpY2ggd2lsbCBoYXZlIHRoZSBzYW1lIHBhdGguCiAtIEEgbG9jYXRpb24ncyBzcGFuIGlzIG5vdCBhbHdheXMgYSBzdWJzZXQgb2YgaXRzIHBhcmVudCdzIHNwYW4uICBGb3IKICAgZXhhbXBsZSwgdGhlICJleHRlbmRlZSIgb2YgYW4gZXh0ZW5zaW9uIGRlY2xhcmF0aW9uIGFwcGVhcnMgYXQgdGhlCiAgIGJlZ2lubmluZyBvZiB0aGUgImV4dGVuZCIgYmxvY2sgYW5kIGlzIHNoYXJlZCBieSBhbGwgZXh0ZW5zaW9ucyB3aXRoaW4KICAgdGhlIGJsb2NrLgogLSBKdXN0IGJlY2F1c2UgYSBsb2NhdGlvbidzIHNwYW4gaXMgYSBzdWJzZXQgb2Ygc29tZSBvdGhlciBsb2NhdGlvbidzIHNwYW4KICAgZG9lcyBub3QgbWVhbiB0aGF0IGl0IGlzIGEgZGVzY2VuZGVudC4gIEZvciBleGFtcGxlLCBhICJncm91cCIgZGVmaW5lcwogICBib3RoIGEgdHlwZSBhbmQgYSBmaWVsZCBpbiBhIHNpbmdsZSBkZWNsYXJhdGlvbi4gIFRodXMsIHRoZSBsb2NhdGlvbnMKICAgY29ycmVzcG9uZGluZyB0byB0aGUgdHlwZSBhbmQgZmllbGQgYW5kIHRoZWlyIGNvbXBvbmVudHMgd2lsbCBvdmVybGFwLgogLSBDb2RlIHdoaWNoIHRyaWVzIHRvIGludGVycHJldCBsb2NhdGlvbnMgc2hvdWxkIHByb2JhYmx5IGJlIGRlc2lnbmVkIHRvCiAgIGlnbm9yZSB0aG9zZSB0aGF0IGl0IGRvZXNuJ3QgdW5kZXJzdGFuZCwgYXMgbW9yZSB0eXBlcyBvZiBsb2NhdGlvbnMgY291bGQKICAgYmUgcmVjb3JkZWQgaW4gdGhlIGZ1dHVyZS4KCg0KBQQTAgAEEgSDBgIKCg0KBQQTAgAGEgSDBgsTCg0KBQQTAgABEgSDBhQcCg0KBQQTAgADEgSDBh8gCg4KBAQTAwASBoQGAtcGAwoNCgUEEwMAARIEhAYKEgqDBwoGBBMDAAIAEgScBgQqGvIGIElkZW50aWZpZXMgd2hpY2ggcGFydCBvZiB0aGUgRmlsZURlc2NyaXB0b3JQcm90byB3YXMgZGVmaW5lZCBhdCB0aGlzCiBsb2NhdGlvbi4KCiBFYWNoIGVsZW1lbnQgaXMgYSBmaWVsZCBudW1iZXIgb3IgYW4gaW5kZXguICBUaGV5IGZvcm0gYSBwYXRoIGZyb20KIHRoZSByb290IEZpbGVEZXNjcmlwdG9yUHJvdG8gdG8gdGhlIHBsYWNlIHdoZXJlIHRoZSBkZWZpbml0aW9uLiAgRm9yCiBleGFtcGxlLCB0aGlzIHBhdGg6CiAgIFsgNCwgMywgMiwgNywgMSBdCiByZWZlcnMgdG86CiAgIGZpbGUubWVzc2FnZV90eXBlKDMpICAvLyA0LCAzCiAgICAgICAuZmllbGQoNykgICAgICAgICAvLyAyLCA3CiAgICAgICAubmFtZSgpICAgICAgICAgICAvLyAxCiBUaGlzIGlzIGJlY2F1c2UgRmlsZURlc2NyaXB0b3JQcm90by5tZXNzYWdlX3R5cGUgaGFzIGZpZWxkIG51bWJlciA0OgogICByZXBlYXRlZCBEZXNjcmlwdG9yUHJvdG8gbWVzc2FnZV90eXBlID0gNDsKIGFuZCBEZXNjcmlwdG9yUHJvdG8uZmllbGQgaGFzIGZpZWxkIG51bWJlciAyOgogICByZXBlYXRlZCBGaWVsZERlc2NyaXB0b3JQcm90byBmaWVsZCA9IDI7CiBhbmQgRmllbGREZXNjcmlwdG9yUHJvdG8ubmFtZSBoYXMgZmllbGQgbnVtYmVyIDE6CiAgIG9wdGlvbmFsIHN0cmluZyBuYW1lID0gMTsKCiBUaHVzLCB0aGUgYWJvdmUgcGF0aCBnaXZlcyB0aGUgbG9jYXRpb24gb2YgYSBmaWVsZCBuYW1lLiAgSWYgd2UgcmVtb3ZlZAogdGhlIGxhc3QgZWxlbWVudDoKICAgWyA0LCAzLCAyLCA3IF0KIHRoaXMgcGF0aCByZWZlcnMgdG8gdGhlIHdob2xlIGZpZWxkIGRlY2xhcmF0aW9uIChmcm9tIHRoZSBiZWdpbm5pbmcKIG9mIHRoZSBsYWJlbCB0byB0aGUgdGVybWluYXRpbmcgc2VtaWNvbG9uKS4KCg8KBwQTAwACAAQSBJwGBAwKDwoHBBMDAAIABRIEnAYNEgoPCgcEEwMAAgABEgScBhMXCg8KBwQTAwACAAMSBJwGGhsKDwoHBBMDAAIACBIEnAYcKQoQCggEEwMAAgAIAhIEnAYdKArSAgoGBBMDAAIBEgSjBgQqGsECIEFsd2F5cyBoYXMgZXhhY3RseSB0aHJlZSBvciBmb3VyIGVsZW1lbnRzOiBzdGFydCBsaW5lLCBzdGFydCBjb2x1bW4sCiBlbmQgbGluZSAob3B0aW9uYWwsIG90aGVyd2lzZSBhc3N1bWVkIHNhbWUgYXMgc3RhcnQgbGluZSksIGVuZCBjb2x1bW4uCiBUaGVzZSBhcmUgcGFja2VkIGludG8gYSBzaW5nbGUgZmllbGQgZm9yIGVmZmljaWVuY3kuICBOb3RlIHRoYXQgbGluZQogYW5kIGNvbHVtbiBudW1iZXJzIGFyZSB6ZXJvLWJhc2VkIC0tIHR5cGljYWxseSB5b3Ugd2lsbCB3YW50IHRvIGFkZAogMSB0byBlYWNoIGJlZm9yZSBkaXNwbGF5aW5nIHRvIGEgdXNlci4KCg8KBwQTAwACAQQSBKMGBAwKDwoHBBMDAAIBBRIEowYNEgoPCgcEEwMAAgEBEgSjBhMXCg8KBwQTAwACAQMSBKMGGhsKDwoHBBMDAAIBCBIEowYcKQoQCggEEwMAAgEIAhIEowYdKAqlDAoGBBMDAAICEgTUBgQpGpQMIElmIHRoaXMgU291cmNlQ29kZUluZm8gcmVwcmVzZW50cyBhIGNvbXBsZXRlIGRlY2xhcmF0aW9uLCB0aGVzZSBhcmUgYW55CiBjb21tZW50cyBhcHBlYXJpbmcgYmVmb3JlIGFuZCBhZnRlciB0aGUgZGVjbGFyYXRpb24gd2hpY2ggYXBwZWFyIHRvIGJlCiBhdHRhY2hlZCB0byB0aGUgZGVjbGFyYXRpb24uCgogQSBzZXJpZXMgb2YgbGluZSBjb21tZW50cyBhcHBlYXJpbmcgb24gY29uc2VjdXRpdmUgbGluZXMsIHdpdGggbm8gb3RoZXIKIHRva2VucyBhcHBlYXJpbmcgb24gdGhvc2UgbGluZXMsIHdpbGwgYmUgdHJlYXRlZCBhcyBhIHNpbmdsZSBjb21tZW50LgoKIGxlYWRpbmdfZGV0YWNoZWRfY29tbWVudHMgd2lsbCBrZWVwIHBhcmFncmFwaHMgb2YgY29tbWVudHMgdGhhdCBhcHBlYXIKIGJlZm9yZSAoYnV0IG5vdCBjb25uZWN0ZWQgdG8pIHRoZSBjdXJyZW50IGVsZW1lbnQuIEVhY2ggcGFyYWdyYXBoLAogc2VwYXJhdGVkIGJ5IGVtcHR5IGxpbmVzLCB3aWxsIGJlIG9uZSBjb21tZW50IGVsZW1lbnQgaW4gdGhlIHJlcGVhdGVkCiBmaWVsZC4KCiBPbmx5IHRoZSBjb21tZW50IGNvbnRlbnQgaXMgcHJvdmlkZWQ7IGNvbW1lbnQgbWFya2VycyAoZS5nLiAvLykgYXJlCiBzdHJpcHBlZCBvdXQuICBGb3IgYmxvY2sgY29tbWVudHMsIGxlYWRpbmcgd2hpdGVzcGFjZSBhbmQgYW4gYXN0ZXJpc2sKIHdpbGwgYmUgc3RyaXBwZWQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIGVhY2ggbGluZSBvdGhlciB0aGFuIHRoZSBmaXJzdC4KIE5ld2xpbmVzIGFyZSBpbmNsdWRlZCBpbiB0aGUgb3V0cHV0LgoKIEV4YW1wbGVzOgoKICAgb3B0aW9uYWwgaW50MzIgZm9vID0gMTsgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gZm9vLgogICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIGJhci4KICAgb3B0aW9uYWwgaW50MzIgYmFyID0gMjsKCiAgIG9wdGlvbmFsIHN0cmluZyBiYXogPSAzOwogICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIGJhei4KICAgLy8gQW5vdGhlciBsaW5lIGF0dGFjaGVkIHRvIGJhei4KCiAgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gcXV4LgogICAvLwogICAvLyBBbm90aGVyIGxpbmUgYXR0YWNoZWQgdG8gcXV4LgogICBvcHRpb25hbCBkb3VibGUgcXV4ID0gNDsKCiAgIC8vIERldGFjaGVkIGNvbW1lbnQgZm9yIGNvcmdlLiBUaGlzIGlzIG5vdCBsZWFkaW5nIG9yIHRyYWlsaW5nIGNvbW1lbnRzCiAgIC8vIHRvIHF1eCBvciBjb3JnZSBiZWNhdXNlIHRoZXJlIGFyZSBibGFuayBsaW5lcyBzZXBhcmF0aW5nIGl0IGZyb20KICAgLy8g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DwoHBBQDAAIDBBIE8AYEDAoPCgcEFAMAAgMFEgTwBg0SCg8KBwQUAwACAwESBPAGExYKDwoHBBQDAAIDAxIE8AYZGgrJGgogdm9sdGhhX3Byb3Rvcy95YW5nX29wdGlvbnMucHJvdG8SBnZvbHRoYRogZ29vZ2xlL3Byb3RvYnVmL2Rlc2NyaXB0b3IucHJvdG8iMAoKSW5saW5lTm9kZRIOCgJpZBgBIAEoCVICaWQSEgoEdHlwZRgCIAEoCVIEdHlwZSJPCgxScGNSZXR1cm5EZWYSFwoHeG1sX3RhZxgBIAEoCVIGeG1sVGFnEiYKD2xpc3RfaXRlbXNfbmFtZRgCIAEoCVINbGlzdEl0ZW1zTmFtZSpXChNNZXNzYWdlUGFyc2VyT3B0aW9uEhgKFE1PVkVfVE9fUEFSRU5UX0xFVkVMEAASJgoiQ1JFQVRFX0JPVEhfR1JPVVBJTkdfQU5EX0NPTlRBSU5FUhABOmcKD3lhbmdfY2hpbGRfcnVsZRIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxju3tkDIAEoDjIbLnZvbHRoYS5NZXNzYWdlUGFyc2VyT3B0aW9uUg15YW5nQ2hpbGRSdWxlOmsKEXlhbmdfbWVzc2FnZV9ydWxlEh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGO/e2QMgASgOMhsudm9sdGhhLk1lc3NhZ2VQYXJzZXJPcHRpb25SD3lhbmdNZXNzYWdlUnVsZTpeChB5YW5nX2lubGluZV9ub2RlEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxjw3tkDIAEoCzISLnZvbHRoYS5JbmxpbmVOb2RlUg55YW5nSW5saW5lTm9kZTpZCgx5YW5nX3htbF90YWcSHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxjx3tkDIAEoCzIULnZvbHRoYS5ScGNSZXR1cm5EZWZSCnlhbmdYbWxUYWdCLVorZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL2dvL2NvbW1vbkrWFAoGEgQRAEkBCqMFCgEMEgMRABIytwQgQ29weXJpZ2h0IChjKSAyMDE1LCBHb29nbGUgSW5jLgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoyXyBUaGlzIGZpbGUgY29udGFpbnMgYW5ub3RhdGlvbiBkZWZpbml0aW9ucyB0aGF0IGNhbiBiZSB1c2VkIHRvIGRlc2NyaWJlCiBhIGNvbmZpZ3VyYXRpb24gdHJlZS4KCggKAQgSAxMAQgoJCgIICxIDEwBCCggKAQISAxUADwoJCgIDABIDFwAqCgoKAgUAEgQZACIBCgoKAwUAARIDGQUYCooBCgQFAAIAEgMcBBwafSBNb3ZlIGFueSBlbmNsb3NpbmcgY2hpbGQgZW51bS9tZXNzYWdlIGRlZmluaXRpb24gdG8gdGhlIHNhbWUgbGV2ZWwKIGFzIHRoZSBwYXJlbnQgKHRoaXMgbWVzc2FnZSkgaW4gdGhlIHlhbmcgZ2VuZXJhdGVkIGZpbGUKCgwKBQUAAgABEgMcBBgKDAoFBQACAAISAxwaGwq+AQoEBQACARIDIQQrGrABIENyZWF0ZSBib3RoIGEgZ3JvdXBpbmcgYW5kIGEgY29udGFpbmVyIGZvciB0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UgVpdGVtcyJjCghMb2dMZXZlbCJQCghMb2dMZXZlbBIJCgVERUJVRxAAEggKBElORk8QARILCgdXQVJOSU5HEAISCQoFRVJST1IQAxIMCghDUklUSUNBTBAEEgkKBUZBVEFMEAU6BfD2zR0AIoEBCgpBZG1pblN0YXRlImwKCkFkbWluU3RhdGUSCwoHVU5LTk9XThAAEhIKDlBSRVBST1ZJU0lPTkVEEAESCwoHRU5BQkxFRBACEgwKCERJU0FCTEVEEAMSFQoRRE9XTkxPQURJTkdfSU1BR0UQBBILCgdERUxFVEVEEAU6BfD2zR0AInMKCk9wZXJTdGF0dXMiXgoKT3BlclN0YXR1cxILCgdVTktOT1dOEAASDgoKRElTQ09WRVJFRBABEg4KCkFDVElWQVRJTkcQAhILCgdURVNUSU5HEAMSCgoGQUNUSVZFEAQSCgoGRkFJTEVEEAU6BfD2zR0AIlQKDUNvbm5lY3RTdGF0dXMiPAoNQ29ubmVjdFN0YXR1cxILCgdVTktOT1dOEAASDwoLVU5SRUFDSEFCTEUQARINCglSRUFDSEFCTEUQAjoF8PbNHQAi3gEKDU9wZXJhdGlvblJlc3ASPQoEY29kZRgBIAEoDjIpLnZvbHRoYS5PcGVyYXRpb25SZXNwLk9wZXJhdGlvblJldHVybkNvZGVSBGNvZGUSJwoPYWRkaXRpb25hbF9pbmZvGAIgASgJUg5hZGRpdGlvbmFsSW5mbyJeChNPcGVyYXRpb25SZXR1cm5Db2RlEhUKEU9QRVJBVElPTl9TVUNDRVNTEAASFQoRT1BFUkFUSU9OX0ZBSUxVUkUQARIZChVPUEVSQVRJT05fVU5TVVBQT1JURUQQAjoF8PbNHQAqHAoMVGVzdE1vZGVLZXlzEgwKCGFwaV90ZXN0EABCLVorZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL2dvL2NvbW1vbkrRFwoGEgQAAHcBCggKAQwSAwAAEgoICgEIEgMCAEIKCQoCCAsSAwIAQgoICgECEgMEAA8KCQoCAwASAwYAKgoqCgIEABIECQALARoeIENvbnZleSBhIHJlc291cmNlIGlkZW50aWZpZXIKCgoKAwQAARIDCQgKCgsKBAQAAgASAwoEEgoNCgUEAAIABBIECgQJDAoMCgUEAAIA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GgoEBAYCABIDcwQhGg0gUmV0dXJuIGNvZGUKCg0KBQQGAgAEEgRzBHEFCgwKBQQGAgAGEgNzBBcKDAoFBAYCAAESA3MYHAoMCgUEBgIAAxIDcx8gCh4KBAQGAgESA3YEHxoRIEFkZGl0aW9uYWwgSW5mbwoKDQoFBAYCAQQSBHYEcyEKDAoFBAYCAQUSA3YECgoMCgUEBgIBARIDdgsaCgwKBQQGAgEDEgN2HR5iBnByb3RvMwrREQoYdm9sdGhhX3Byb3Rvcy9tZXRhLnByb3RvEgZ2b2x0aGEaIGdvb2dsZS9wcm90b2J1Zi9kZXNjcmlwdG9yLnByb3RvIh0KCUNoaWxkTm9kZRIQCgNrZXkYASABKAlSA2tleSoyCgZBY2Nlc3MSCgoGQ09ORklHEAASDQoJUkVBRF9PTkxZEAESDQoJUkVBTF9USU1FEAI6UgoKY2hpbGRfbm9kZRIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMY7N7ZAyABKAsyES52b2x0aGEuQ2hpbGROb2RlUgljaGlsZE5vZGU6SAoGYWNjZXNzEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxjt3tkDIAEoDjIOLnZvbHRoYS5BY2Nlc3NSBmFjY2Vzc0ItWitnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvZ28vY29tbW9uSuIOCgYSBBEAOAEKowUKAQwSAxEAEjK3BCBDb3B5cmlnaHQgKGMpIDIwMTUsIEdvb2dsZSBJbmMuCgogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKCiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCjJfIFRoaXMgZmlsZSBjb250YWlucyBhbm5vdGF0aW9uIGRlZmluaXRpb25zIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVzY3JpYmUKIGEgY29uZmlndXJhdGlvbiB0cmVlLgoKCAoBCBIDEwBCCgkKAggLEgMTAEIKCAoBAhIDFQAPCgkKAgMAEgMXACoKCgoCBAASBBkAGwEKCgoDBAABEgMZCBEKCwoEBAACABIDGgQTCg0KBQQAAgAEEgQaBBkTCgwKBQQAAgAFEgMaBAoKDAoFBAACAAESAxoLDgoMCgUEAAIAAxIDGhESCgoKAgUAEgQdACkBCgoKAwUAARIDHQULCisKBAUAAgASAyAEDxoeIHJlYWQtd3JpdGUsIHN0b3JlZCBhdHRyaWJ1dGUKCgwKBQUAAgABEgMgBAoKDAoFBQACAAISAyANDgpKCgQFAAIBEgMjBBIaPSByZWFkLW9ubHkgZmllbGQsIHN0b3JlZCB3aXRoIHRoZSBtb2RlbCwgY292ZXJlZCBieSBpdHMgaGFzaAoKDAoFBQACAQESAyMEDQoMCgUFAAIBAhIDIxARCpEBCgQFAAICEgMnBBIagwEgQSByZWFkLW9ubHkgYXR0cmlidXRlIHRoYXQgaXMgbm90IHN0b3JlZCBpbiB0aGUgbW9kZWwsIG5vdCBjb3ZlcmVkCiBieSBpdHMgaGFzaCwgaXRzIHZhbHVlIGlzIGZpbGxlZCByZWFsLXRpbWUgdXBvbiBlYWNoIHJlcXVlc3QuCgoMCgUFAAICARIDJwQNCgwKBQUAAgICEgMnEBEKCQoBBxIEKwA4AQqMAgoCBwASAzEEIxqAAiBJZiBwcmVzZW50LCBpdCBpbmRpY2F0ZXMgdGhhdCB0aGlzIGZpZWxkIGlzIHN0b3JlZCBhcyBleHRlcm5hbCBjaGlsZCBub2RlCiBvciBjaGlsZHJlbiBub2RlcyBpbiBWb2x0aGEncyBpbnRlcm5hbCBjb25maWd1cmF0aW9uIHRyZWUuCiBJZiB0aGUgZmllbGQgaXMgYSBjb250YWluZXIgZmllbGQgYW5kIGlmIHRoZSBvcHRpb24gc3BlY2lmaWVzIGEga2V5CiB0aGUgY2hpbGQgb2JqZWN0cyB3aWxsIGJlIGFkZHJlc3NpYmxlIGJ5IHRoYXQga2V5LgoKCgoDBwACEgMrByMKCwoDBwAEEgQxBCslCgoKAwcABhIDMQQNCgoKAwcAARIDMQ4YCgoKAwcAAxIDMRsiCpwCCgIHARIDNwQcGpACIFRoaXMgYW5ub3RhdGlvbiBjYW4gYmUgdXNlZCB0byBpbmRpY2F0ZSB0aGF0IGEgZmllbGQgaXMgcmVhZC1vbmx5LAogZnJvbSB0aGUgcGVyc3BlY3RpdmUgb2YgTkJJIGFjY2Vzcy4gQmFja2VuZCBwbHVnaW5zIGFuZCBzeXN0ZW0KIGludGVybmFscyBjYW4gdXBkYXRlIHRoZSBmaWVsZCBidXQgdGhlIHVwZGF0ZSByZXF1ZXN0cyB0aHJvdWdoIHRoZQogTkJJIHdpbGwgaWdub3JlIGZvciBpbnN0YW5jZSBhIGZpZWxkIHRoYXQgaXMgbWFya2VkIGFzIHJlYWQtb25seSAoUk8pLgoKCgoDBwECEgMrByMKCwoDBwEEEgQ3BDEjCgoKAwcBBhIDNwQKCgoKAwcBARIDNwsRCgoKAwcBAxIDNxQbYgZwcm90bzMKxA4KG3ZvbHRoYV9wcm90b3MvYWRhcHRlci5wcm90bxIGdm9sdGhhGhlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvGhp2b2x0aGFfcHJvdG9zL2NvbW1vbi5wcm90bxoYdm9sdGhhX3Byb3Rvcy9tZXRhLnByb3RvIooBCg1BZGFwdGVyQ29uZmlnEjYKCWxvZ19sZXZlbBgBIAEoDjIZLnZvbHRoYS5Mb2dMZXZlbC5Mb2dMZXZlbFIIbG9nTGV2ZWwSQQoRYWRkaXRpb25hbF9jb25maWcYQCABKAsyFC5nb29nbGUucHJvdG9idWYuQW55UhBhZGRpdGlvbmFsQ29u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BAQCAwQSBCgIJxsKDAoFBAQCAwUSAygIDgoMCgUEBAIDARIDKA8WCgwKBQQEAgMDEgMoGRoKCwoEBAQCBBIDKQgWCg0KBQQEAgQEEgQpCCgbCgwKBQQEAgQFEgMpCA4KDAoFBAQCBAESAykPEQoMCgUEBAIEAxIDKRQVYgZwcm90bzMKxnkKFWdvb2dsZS9hcGkvaHR0cC5wcm90bxIKZ29vZ2xlLmFwaSJ5CgRIdHRwEioKBXJ1bGVzGAEgAygLMhQuZ29vZ2xlLmFwaS5IdHRwUnVsZVIFcnVsZXMSRQofZnVsbHlfZGVjb2RlX3Jlc2VydmVkX2V4cGFuc2lvbhgCIAEoCFIcZnVsbHlEZWNvZGVSZXNlcnZlZEV4cGFuc2lvbiLaAgoISHR0cFJ1bGUSGgoIc2VsZWN0b3IYASABKAlSCHNlbGVjdG9yEhIKA2dldBgCIAEoCUgAUgNnZXQSEgoDcHV0GAMgASgJSABSA3B1dBIUCgRwb3N0GAQgASgJSABSBHBvc3QSGAoGZGVsZXRlGAUgASgJSABSBmRlbGV0ZRIWCgVwYXRjaBgGIAEoCUgAUgVwYXRjaBI3CgZjdXN0b20YCCABKAsyHS5nb29nbGUuYXBpLkN1c3RvbUh0dHBQYXR0ZXJuSABSBmN1c3RvbRISCgRib2R5GAcgASgJUgRib2R5EiMKDXJlc3BvbnNlX2JvZHkYDCABKAlSDHJlc3BvbnNlQm9keRJFChNhZGRpdGlvbmFsX2JpbmRpbmdzGAsgAygLMhQuZ29vZ2xlLmFwaS5IdHRwUnVsZVISYWRkaXRpb25hbEJpbmRpbmdzQgkKB3BhdHRlcm4iOwoRQ3VzdG9tSHR0cFBhdHRlcm4SEgoEa2luZBgBIAEoCVIEa2luZBISCgRwYXRoGAIgASgJUgRwYXRoQmoKDmNvbS5nb29nbGUuYXBpQglIdHRwUHJvdG9QAVpBZ29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9hcGkvYW5ub3RhdGlvbnM7YW5ub3RhdGlvbnP4AQGiAgRHQVBJSpd0CgcSBQ8A+wIBCr4ECgEMEgMPABIyswQgQ29weXJpZ2h0IDIwMTggR29vZ2xlIExMQy4KCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCgoICgECEgMRABMKCAoBCBIDEwAfCgkKAggfEgMTAB8KCAoBCBIDFABYCgkKAggLEgMUAFgKCAoBCBIDFQAiCgkKAggKEgMVACIKCAoBCBIDFgAqCgkKAggIEgMWACoKCAoBCBIDFwAnCgkKAggBEgMXACcKCAoBCBIDGAAiCgkKAggkEgMYACIKzQEKAgQAEgQdACoBGsABIERlZmluZXMgdGhlIEhUVFAgY29uZmlndXJhdGlvbiBmb3IgYW4gQVBJIHNlcnZpY2UuIEl0IGNvbnRhaW5zIGEgbGlzdCBvZgogW0h0dHBSdWxlXVtnb29nbGUuYXBpLkh0dHBSdWxlXSwgZWFjaCBzcGVjaWZ5aW5nIHRoZSBtYXBwaW5nIG9mIGFuIFJQQyBtZXRob2QKIHRvIG9uZSBvciBtb3JlIEhUVFAgUkVTVCBBUEkgbWV0aG9kcy4KCgoKAwQAARIDHQgMCqIBCgQEAAIAEgMhAh4alAEgQSBsaXN0IG9mIEhUVFAgY29uZmlndXJhdGlvbiBydWxlcyB0aGF0IGFwcGx5IHRvIGluZGl2aWR1YWwgQVBJIG1ldGhvZHMuCgogKipOT1RFOioqIEFsbCBzZXJ2aWNlIGNvbmZpZ3VyYXRpb24gcnVsZXMgZm9sbG93ICJsYXN0IG9uZSB3aW5zIiBvcmRlci4KCgwKBQQAAgAEEgMhAgoKDAoFBAACAAYSAyELEwoMCgUEAAIAARIDIRQZCgwKBQQAAgADEgMhHB0KkwIKBAQAAgESAykCKxqFAiBXaGVuIHNldCB0byB0cnVlLCBVUkwgcGF0aCBwYXJtZXRlcnMgd2lsbCBiZSBmdWxseSBVUkktZGVjb2RlZCBleGNlcHQgaW4KIGNhc2VzIG9mIHNpbmdsZSBzZWdtZW50IG1hdGNoZXMgaW4gcmVzZXJ2ZWQgZXhwYW5zaW9uLCB3aGVyZSAiJTJGIiB3aWxsIGJlCiBsZWZ0IGVuY29kZWQuCgogVGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gbm90IGRlY29kZSBSRkMgNjU3MCByZXNlcnZlZCBjaGFyYWN0ZXJzIGluIG11bHRpCiBzZWdtZW50IG1hdGNoZXMuCgoNCgUEAAIBBBIEKQIhHgoMCgUEAAIBBRIDKQIGCgwKBQQAAgEBEgMpByYKDAoFBAACAQMSAykpKgq7UwoCBAESBrwCAPICARqsUyAjIGdSUEMgVHJhbnNjb2RpbmcKCiBnUlBDIFRyYW5zY29kaW5nIGlzIGEgZmVhdHVyZSBmb3IgbWFwcGluZyBiZXR3ZWVuIGEgZ1JQQyBtZXRob2QgYW5kIG9uZSBvcgogbW9yZSBIVFRQIFJFU1QgZW5kcG9pbnRzLiBJdCBhbGxvd3MgZGV2ZWxvcGVycyB0byBidWlsZCBhIHNpbmdsZSBBUEkgc2VydmljZQogdGhhdCBzdXBwb3J0cyBib3RoIGdSUEMgQVBJcyBhbmQgUkVTVCBBUElzLiBNYW55IHN5c3RlbXMsIGluY2x1ZGluZyBbR29vZ2xlCiBBUElzXShodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlYXBpcy9nb29nbGVhcGlzKSwKIFtDbG91ZCBFbmRwb2ludHNdKGh0dHBzOi8vY2xvdWQuZ29vZ2xlLmNvbS9lbmRwb2ludHMpLCBbZ1JQQwogR2F0ZXdheV0oaHR0cHM6Ly9naXRodWIuY29tL2dycGMtZWNvc3lzdGVtL2dycGMtZ2F0ZXdheSksCiBhbmQgW0Vudm95XShodHRwczovL2dpdGh1Yi5jb20vZW52b3lwcm94eS9lbnZveSkgcHJveHkgc3VwcG9ydCB0aGlzIGZlYXR1cmUKIGFuZCB1c2UgaXQgZm9yIGxhcmdlIHNjYWxlIHByb2R1Y3Rpb24gc2VydmljZXMuCgogYEh0dHBSdWxlYCBkZWZpbmVzIHRoZSBzY2hlbWEgb2YgdGhlIGdSUEMvUkVTVCBtYXBwaW5nLiBUaGUgbWFwcGluZyBzcGVjaWZpZXMKIGhvdyBkaWZmZXJlbnQgcG9ydGlvbnMgb2YgdGhlIGdSUEMgcmVxdWVzdCBtZXNzYWdlIGFyZSBtYXBwZWQgdG8gdGhlIFVSTAogcGF0aCwgVVJMIHF1ZXJ5IHBhcmFtZXRlcnMsIGFuZCBIVFRQIHJlcXVlc3QgYm9keS4gSXQgYWxzbyBjb250cm9scyBob3cgdGhlCiBnUlBDIHJlc3BvbnNlIG1lc3NhZ2UgaXMgbWFwcGVkIHRvIHRoZSBIVFRQIHJlc3BvbnNlIGJvZHkuIGBIdHRwUnVsZWAgaXMKIHR5cGljYWxseSBzcGVjaWZpZWQgYXMgYW4gYGdvb2dsZS5hcGkuaHR0cGAgYW5ub3RhdGlvbiBvbiB0aGUgZ1JQQyBtZXRob2QuCgogRWFjaCBtYXBwaW5nIHNwZWNpZmllcyBhIFVSTCBwYXRoIHRlbXBsYXRlIGFuZCBhbiBIVFRQIG1ldGhvZC4gVGhlIHBhdGgKIHRlbXBsYXRlIG1heSByZWZlciB0byBvbmUgb3IgbW9yZSBmaWVsZHMgaW4gdGhlIGdSUEMgcmVxdWVzdCBtZXNzYWdlLCBhcyBsb25nCiBhcyBlYWNoIGZpZWxkIGlzIGEgbm9uLXJlcGVhdGVkIGZpZWxkIHdpdGggYSBwcmltaXRpdmUgKG5vbi1tZXNzYWdlKSB0eXBlLgogVGhlIHBhdGggdGVtcGxhdGUgY29udHJvbHMgaG93IGZpZWxkcyBvZiB0aGUgcmVxdWVzdCBtZXNzYWdlIGFyZSBtYXBwZWQgdG8KIHRoZSBVUkwgcGF0aC4KCiBFeGFtcGxlOgoKICAgICBzZXJ2aWNlIE1lc3NhZ2luZyB7CiAgICAgICBycGMgR2V0TWVzc2FnZShHZXRNZXNzYWdlUmVxdWVzdCkgcmV0dXJucyAoTWVzc2FnZSkgewogICAgICAgICBvcHRpb24gKGdvb2dsZS5hcGkuaHR0cCkgPSB7CiAgICAgICAgICAgICBnZXQ6ICIvdjEve25hbWU9bWVzc2FnZXMvKn0iCiAgICAgICAgIH07CiAgICAgICB9CiAgICAgfQogICAgIG1lc3NhZ2UgR2V0TWVzc2FnZVJlcXVlc3QgewogICAgICAgc3RyaW5nIG5hbWUgPSAxOyAvLyBNYXBwZWQgdG8gVVJMIHBhdGguCiAgICAgfQogICAgIG1lc3NhZ2UgTWVzc2FnZSB7CiAgICAgICBzdHJpbmcgdGV4dCA9IDE7IC8vIFRoZSByZXNvdXJjZSBjb250ZW50LgogICAgIH0KCiBUaGlzIGVuYWJsZXMgYW4gSFRUUCBSRVNUIHRvIGdSUEMgbWFwcGluZyBhcyBiZWxvdzoKCiBIVFRQIHwgZ1JQQwogLS0tLS18LS0tLS0KIGBHRVQgL3YxL21lc3NhZ2VzLzEyMzQ1NmAgIHwgYEdldE1lc3NhZ2UobmFtZTogIm1lc3NhZ2VzLzEyMzQ1NiIpYAoKIEFueSBmaWVsZHMgaW4gdGhlIHJlcXVlc3QgbWVzc2FnZSB3aGljaCBhcmUgbm90IGJvdW5kIGJ5IHRoZSBwYXRoIHRlbXBsYXRlCiBhdXRvbWF0aWNhbGx5IGJlY29tZSBIVFRQIHF1ZXJ5IHBhcmFtZXRlcnMgaWYgdGhlcmUgaXMgbm8gSFRUUCByZXF1ZXN0IGJvZHkuCiBGb3IgZXhhbXBsZToKCiAgICAgc2VydmljZSBNZXNzYWdpbmcgewogICAgICAgcnBjIEdldE1lc3NhZ2UoR2V0TWVzc2FnZVJlcXVlc3QpIHJldHVybnMgKE1lc3NhZ2UpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApID0gewogICAgICAgICAgICAgZ2V0OiIvdjEvbWVzc2FnZXMve21lc3NhZ2VfaWR9IgogICAgICAgICB9OwogICAgICAgfQogICAgIH0KICAgICBtZXNzYWdlIEdldE1lc3NhZ2VSZXF1ZXN0IHsKICAgICAgIG1lc3NhZ2UgU3ViTWVzc2FnZSB7CiAgICAgICAgIHN0cmluZyBzdWJmaWVsZCA9IDE7CiAgICAgICB9CiAgICAgICBzdHJpbmcgbWVzc2FnZV9pZCA9IDE7IC8vIE1hcHBlZCB0byBVUkwgcGF0aC4KICAgICAgIGludDY0IHJldmlzaW9uID0gMjsgICAgLy8gTWFwcGVkIHRvIFVSTCBxdWVyeSBwYXJhbWV0ZXIgYHJldmlzaW9uYC4KICAgICAgIFN1Yk1lc3NhZ2Ugc3ViID0gMzsgICAgLy8gTWFwcGVkIHRvIFVSTCBxdWVyeSBwYXJhbWV0ZXIgYHN1Yi5zdWJmaWVsZGAuCiAgICAgfQoKIFRoaXMgZW5hYmxlcyBhIEhUVFAgSlNPTiB0byBSUEMgbWFwcGluZyBhcyBiZWxvdzoKCiBIVFRQIHwgZ1JQQwogLS0tLS18LS0tLS0KIGBHRVQgL3YxL21lc3NhZ2VzLzEyMzQ1Nj9yZXZpc2lvbj0yJnN1Yi5zdWJmaWVsZD1mb29gIHwKIGBHZXRNZXNzYWdlKG1lc3NhZ2VfaWQ6ICIxMjM0NTYiIHJldmlzaW9uOiAyIHN1YjogU3ViTWVzc2FnZShzdWJmaWVsZDoKICJmb28iKSlgCgogTm90ZSB0aGF0IGZpZWxkcyB3aGljaCBhcmUgbWFwcGVkIHRvIFVSTCBxdWVyeSBwYXJhbWV0ZXJzIG11c3QgaGF2ZSBhCiBwcmltaXRpdmUgdHlwZSBvciBhIHJlcGVhdGVkIHByaW1pdGl2ZSB0eXBlIG9yIGEgbm9uLXJlcGVhdGVkIG1lc3NhZ2UgdHlwZS4KIEluIHRoZSBjYXNlIG9mIGEgcmVwZWF0ZWQgdHlwZSwgdGhlIHBhcmFtZXRlciBjYW4gYmUgcmVwZWF0ZWQgaW4gdGhlIFVSTAogYXMgYC4uLj9wYXJhbT1BJnBhcmFtPUJgLiBJbiB0aGUgY2FzZSBvZiBhIG1lc3NhZ2UgdHlwZSwgZWFjaCBmaWVsZCBvZiB0aGUKIG1lc3NhZ2UgaXMgbWFwcGVkIHRvIGEgc2VwYXJhdGUgcGFyYW1ldGVyLCBzdWNoIGFzCiBgLi4uP2Zvby5hPUEmZm9vLmI9QiZmb28uYz1DYC4KCiBGb3IgSFRUUCBtZXRob2RzIHRoYXQgYWxsb3cgYSByZXF1ZXN0IGJvZHksIHRoZSBgYm9keWAgZmllbGQKIHNwZWNpZmllcyB0aGUgbWFwcGluZy4gQ29uc2lkZXIgYSBSRVNUIHVwZGF0ZSBtZXRob2Qgb24gdGhlCiBtZXNzYWdlIHJlc291cmNlIGNvbGxlY3Rpb246CgogICAgIHNlcnZpY2UgTWVzc2FnaW5nIHsKICAgICAgIHJwYyBVcGRhdGVNZXNzYWdlKFVwZGF0ZU1lc3NhZ2VSZXF1ZXN0KSByZXR1cm5zIChNZXNzYWdlKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKSA9IHsKICAgICAgICAgICBwYXRjaDogIi92MS9tZXNzYWdlcy97bWVzc2FnZV9pZH0iCiAgICAgICAgICAgYm9keTogIm1lc3NhZ2UiCiAgICAgICAgIH07CiAgICAgICB9CiAgICAgfQogICAgIG1lc3NhZ2UgVXBkYXRlTWVzc2FnZVJlcXVlc3QgewogICAgICAgc3RyaW5nIG1lc3NhZ2VfaWQgPSAxOyAvLyBtYXBwZWQgdG8gdGhlIFVSTAogICAgICAgTWVzc2FnZSBtZXNzYWdlID0gMjsgICAvLyBtYXBwZWQgdG8gdGhlIGJvZHkKICAgICB9CgogVGhlIGZvbGxvd2luZyBIVFRQIEpTT04gdG8gUlBDIG1hcHBpbmcgaXMgZW5hYmxlZCwgd2hlcmUgdGhlCiByZXByZXNlbnRhdGlvbiBvZiB0aGUgSlNPTiBpbiB0aGUgcmVxdWVzdCBib2R5IGlzIGRldGVybWluZWQgYnkKIHByb3RvcyBKU09OIGVuY29kaW5nOgoKIEhUVFAgfCBnUlBDCiAtLS0tLXwtLS0tLQogYFBBVENIIC92MS9tZXNzYWdlcy8xMjM0NTYgeyAidGV4dCI6ICJIaSEiIH1gIHwgYFVwZGF0ZU1lc3NhZ2UobWVzc2FnZV9pZDoKICIxMjM0NTYiIG1lc3NhZ2UgeyB0ZXh0OiAiSGkhIiB9KWAKCiBUaGUgc3BlY2lhbCBuYW1lIGAqYCBjYW4gYmUgdXNlZCBpbiB0aGUgYm9keSBtYXBwaW5nIHRvIGRlZmluZSB0aGF0CiBldmVyeSBmaWVsZCBub3QgYm91bmQgYnkgdGhlIHBhdGggdGVtcGxhdGUgc2hvdWxkIGJlIG1hcHBlZCB0byB0aGUKIHJlcXVlc3QgYm9keS4gIFRoaXMgZW5hYmxlcyB0aGUgZm9sbG93aW5nIGFsdGVybmF0aXZlIGRlZmluaXRpb24gb2YKIHRoZSB1cGRhdGUgbWV0aG9kOgoKICAgICBzZXJ2aWNlIE1lc3NhZ2luZyB7CiAgICAgICBycGMgVXBkYXRlTWVzc2FnZShNZXNzYWdlKSByZXR1cm5zIChNZXNzYWdlKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKSA9IHsKICAgICAgICAgICBwYXRjaDogIi92MS9tZXNzYWdlcy97bWVzc2FnZV9pZH0iCiAgICAgICAgICAgYm9keTogIioiCiAgICAgICAgIH07CiAgICAgICB9CiAgICAgfQogICAgIG1lc3NhZ2UgTWVzc2FnZSB7CiAgICAgICBzdHJpbmcgbWVzc2FnZV9pZCA9IDE7CiAgICAgICBzdHJpbmcgdGV4dCA9IDI7CiAgICAgfQoKCiBUaGUgZm9sbG93aW5nIEhUVFAgSlNPTiB0byBSUEMgbWFwcGluZyBpcyBlbmFibGVkOgoKIEhUVFAgfCBnUlBDCiAtLS0tLXwtLS0tLQogYFBBVENIIC92MS9tZXNzYWdlcy8xMjM0NTYgeyAidGV4dCI6ICJIaSEiIH1gIHwgYFVwZGF0ZU1lc3NhZ2UobWVzc2FnZV9pZDoKICIxMjM0NTYiIHRleHQ6ICJIaSEiKWAKCiBOb3RlIHRoYXQgd2hlbiB1c2luZyBgKmAgaW4gdGhlIGJvZHkgbWFwcGluZywgaXQgaXMgbm90IHBvc3NpYmxlIHRvCiBoYXZlIEhUVFAgcGFyYW1ldGVycywgYXMgYWxsIGZpZWxkcyBub3QgYm91bmQgYnkgdGhlIHBhdGggZW5kIGluCiB0aGUgYm9keS4gVGhpcyBtYWtlcyB0aGlzIG9wdGlvbiBtb3JlIHJhcmVseSB1c2VkIGluIHByYWN0aWNlIHdoZW4KIGRlZmluaW5nIFJFU1QgQVBJcy4gVGhlIGNvbW1vbiB1c2FnZSBvZiBgKmAgaXMgaW4gY3VzdG9tIG1ldGhvZHMKIHdoaWNoIGRvbid0IHVzZSB0aGUgVVJMIGF0IGFsbCBmb3IgdHJhbnNmZXJyaW5nIGRhdGEuCgogSXQgaXMgcG9zc2libGUgdG8gZGVmaW5lIG11bHRpcGxlIEhUVFAgbWV0aG9kcyBmb3Igb25lIFJQQyBieSB1c2luZwogdGhlIGBhZGRpdGlvbmFsX2JpbmRpbmdzYCBvcHRpb24uIEV4YW1wbGU6CgogICAgIHNlcnZpY2UgTWVzc2FnaW5nIHsKICAgICAgIHJwYyBHZXRNZXNzYWdlKEdldE1lc3NhZ2VSZXF1ZXN0KSByZXR1cm5zIChNZXNzYWdlKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKSA9IHsKICAgICAgICAgICBnZXQ6ICIvdjEvbWVzc2FnZXMve21lc3NhZ2VfaWR9IgogICAgICAgICAgIGFkZGl0aW9uYWxfYmluZGluZ3MgewogICAgICAgICAgICAgZ2V0OiAiL3YxL3VzZXJzL3t1c2VyX2lkfS9tZXNzYWdlcy97bWVzc2FnZV9pZH0iCiAgICAgICAgICAgfQogICAgICAgICB9OwogICAgICAgfQogICAgIH0KICAgICBtZXNzYWdlIEdldE1lc3NhZ2VSZXF1ZXN0IHsKICAgICAgIHN0cmluZyBtZXNzYWdlX2lkID0gMTsKICAgICAgIHN0cmluZyB1c2VyX2lkID0gMjsKICAgICB9CgogVGhpcyBlbmFibGVzIHRoZSBmb2xsb3dpbmcgdHdvIGFsdGVybmF0aXZlIEhUVFAgSlNPTiB0byBSUEMgbWFwcGluZ3M6CgogSFRUUCB8IGdSUEMKIC0tLS0tfC0tLS0tCiBgR0VUIC92MS9tZXNzYWdlcy8xMjM0NTZgIHwgYEdldE1lc3NhZ2UobWVzc2FnZV9pZDogIjEyMzQ1NiIpYAogYEdFVCAvdjEvdXNlcnMvbWUvbWVzc2FnZXMvMTIzNDU2YCB8IGBHZXRNZXNzYWdlKHVzZXJfaWQ6ICJtZSIgbWVzc2FnZV9pZDoKICIxMjM0NTYiKWAKCiAjIyBSdWxlcyBmb3IgSFRUUCBtYXBwaW5nCgogMS4gTGVhZiByZXF1ZXN0IGZpZWxkcyAocmVjdXJzaXZlIGV4cGFuc2lvbiBuZXN0ZWQgbWVzc2FnZXMgaW4gdGhlIHJlcXVlc3QKICAgIG1lc3NhZ2UpIGFyZSBjbGFzc2lmaWVkIGludG8gdGhyZWUgY2F0ZWdvcmllczoKICAgIC0gRmllbGRzIHJlZmVycmVkIGJ5IHRoZSBwYXRoIHRlbXBsYXRlLiBUaGV5IGFyZSBwYXNzZWQgdmlhIHRoZSBVUkwgcGF0aC4KICAgIC0gRmllbGRzIHJlZmVycmVkIGJ5IHRoZSBbSHR0cFJ1bGUuYm9keV1bZ29vZ2xlLmFwaS5IdHRwUnVsZS5ib2R5XS4gVGhleQogICAgYXJlIHBhc3NlZCB2aWEgdGhlIEhUVFAKICAgICAgcmVxdWVzdCBib2R5LgogICAgLSBBbGwgb3RoZXIgZmllbGRzIGFyZSBwYXNzZWQgdmlhIHRoZSBVUkwgcXVlcnkgcGFyYW1ldGVycywgYW5kIHRoZQogICAgICBwYXJhbWV0ZXIgbmFtZSBpcyB0aGUgZmllbGQgcGF0aCBpbiB0aGUgcmVxdWVzdCBtZXNzYWdlLiBBIHJlcGVhdGVkCiAgICAgIGZpZWxkIGNhbiBiZSByZXByZXNlbnRlZCBhcyBtdWx0aXBsZSBxdWVyeSBwYXJhbWV0ZXJzIHVuZGVyIHRoZSBzYW1lCiAgICAgIG5hbWUuCiAgMi4gSWYgW0h0dHBSdWxlLmJvZHldW2dvb2dsZS5hcGkuSHR0cFJ1bGUuYm9keV0gaXMgIioiLCB0aGVyZSBpcyBubyBVUkwKICBxdWVyeSBwYXJhbWV0ZXIsIGFsbCBmaWVsZHMKICAgICBhcmUgcGFzc2VkIHZpYSBVUkwgcGF0aCBhbmQgSFRUUCByZXF1ZXN0IGJvZHkuCiAgMy4gSWYgW0h0dHBSdWxlLmJvZHldW2dvb2dsZS5hcGkuSHR0cFJ1bGUuYm9keV0gaXMgb21pdHRlZCwgdGhlcmUgaXMgbm8gSFRUUAogIHJlcXVlc3QgYm9keSwgYWxsCiAgICAgZmllbGRzIGFyZSBwYXNzZWQgdmlhIFVSTCBwYXRoIGFuZCBVUkwgcXVlcnkgcGFyYW1ldGVycy4KCiAjIyMgUGF0aCB0ZW1wbGF0ZSBzeW50YXgKCiAgICAgVGVtcGxhdGUgPSAiLyIgU2VnbWVudHMgWyBWZXJiIF0gOwogICAgIFNlZ21lbnRzID0gU2VnbWVudCB7ICIvIiBTZWdtZW50IH0gOwogICAgIFNlZ21lbnQgID0gIioiIHwgIioqIiB8IExJVEVSQUwgfCBWYXJpYWJsZSA7CiAgICAgVmFyaWFibGUgPSAieyIgRmllbGRQYXRoIFsgIj0iIFNlZ21lbnRzIF0gIn0iIDsKICAgICBGaWVsZFBhdGggPSBJREVOVCB7ICIuIiBJREVOVCB9IDsKICAgICBWZXJiICAgICA9ICI6IiBMSVRFUkFMIDsKCiBUaGUgc3ludGF4IGAqYCBtYXRjaGVzIGEgc2luZ2xlIFVSTCBwYXRoIHNlZ21lbnQuIFRoZSBzeW50YXggYCoqYCBtYXRjaGVzCiB6ZXJvIG9yIG1vcmUgVVJMIHBhdGggc2VnbWVudHMsIHdoaWNoIG11c3QgYmUgdGhlIGxhc3QgcGFydCBvZiB0aGUgVVJMIHBhdGgKIGV4Y2VwdCB0aGUgYFZlcmJgLgoKIFRoZSBzeW50YXggYFZhcmlhYmxlYCBtYXRjaGVzIHBhcnQgb2YgdGhlIFVSTCBwYXRoIGFzIHNwZWNpZmllZCBieSBpdHMKIHRlbXBsYXRlLiBBIHZhcmlhYmxlIHRlbXBsYXRlIG11c3Qgbm90IGNvbnRhaW4gb3RoZXIgdmFyaWFibGVzLiBJZiBhIHZhcmlhYmxlCiBtYXRjaGVzIGEgc2luZ2xlIHBhdGggc2VnbWVudCwgaXRzIHRlbXBsYXRlIG1heSBiZSBvbWl0dGVkLCBlLmcuIGB7dmFyfWAKIGlzIGVxdWl2YWxlbnQgdG8gYHt2YXI9Kn1gLgoKIFRoZSBzeW50YXggYExJVEVSQUxgIG1hdGNoZXMgbGl0ZXJhbCB0ZXh0IGluIHRoZSBVUkwgcGF0aC4gSWYgdGhlIGBMSVRFUkFMYAogY29udGFpbnMgYW55IHJlc2VydmVkIGNoYXJhY3Rlciwgc3VjaCBjaGFyYWN0ZXJzIHNob3VsZCBiZSBwZXJjZW50LWVuY29kZWQKIGJlZm9yZSB0aGUgbWF0Y2hpbmcuCgogSWYgYSB2YXJpYWJsZSBjb250YWlucyBleGFjdGx5IG9uZSBwYXRoIHNlZ21lbnQsIHN1Y2ggYXMgYCJ7dmFyfSJgIG9yCiBgInt2YXI9Kn0iYCwgd2hlbiBzdWNoIGEgdmFyaWFibGUgaXMgZXhwYW5kZWQgaW50byBhIFVSTCBwYXRoIG9uIHRoZSBjbGllbnQKIHNpZGUsIGFsbCBjaGFyYWN0ZXJzIGV4Y2VwdCBgWy1fLn4wLTlhLXpBLVpdYCBhcmUgcGVyY2VudC1lbmNvZGVkLiBUaGUKIHNlcnZlciBzaWRlIGRvZXMgdGhlIHJldmVyc2UgZGVjb2RpbmcuIFN1Y2ggdmFyaWFibGVzIHNob3cgdXAgaW4gdGhlCiBbRGlzY292ZXJ5CiBEb2N1bWVudF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vZGlzY292ZXJ5L3YxL3JlZmVyZW5jZS9hcGlzKSBhcwogYHt2YXJ9YC4KCiBJZiBhIHZhcmlhYmxlIGNvbnRhaW5zIG11bHRpcGxlIHBhdGggc2VnbWVudHMsIHN1Y2ggYXMgYCJ7dmFyPWZvby8qfSJgCiBvciBgInt2YXI9Kip9ImAsIHdoZW4gc3VjaCBhIHZhcmlhYmxlIGlzIGV4cGFuZGVkIGludG8gYSBVUkwgcGF0aCBvbiB0aGUKIGNsaWVudCBzaWRlLCBhbGwgY2hhcmFjdGVycyBleGNlcHQgYFstXy5+LzAtOWEtekEtWl1gIGFyZSBwZXJjZW50LWVuY29kZWQuCiBUaGUgc2VydmVyIHNpZGUgZG9lcyB0aGUgcmV2ZXJzZSBkZWNvZGluZywgZXhjZXB0ICIlMkYiIGFuZCAiJTJmIiBhcmUgbGVmdAogdW5jaGFuZ2VkLiBTdWNoIHZhcmlhYmxlcyBzaG93IHVwIGluIHRoZQogW0Rpc2NvdmVyeQogRG9jdW1lbnRdKGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL2Rpc2NvdmVyeS92MS9yZWZlcmVuY2UvYXBpcykgYXMKIGB7K3Zhcn1gLgoKICMjIFVzaW5nIGdSUEMgQVBJIFNlcnZpY2UgQ29uZmlndXJhdGlvbgoKIGdSUEMgQVBJIFNlcnZpY2UgQ29uZmlndXJhdGlvbiAoc2VydmljZSBjb25maWcpIGlzIGEgY29uZmlndXJhdGlvbiBsYW5ndWFnZQogZm9yIGNvbmZpZ3VyaW5nIGEgZ1JQQyBzZXJ2aWNlIHRvIGJlY29tZSBhIHVzZXItZmFjaW5nIHByb2R1Y3QuIFRoZQogc2VydmljZSBjb25maWcgaXMgc2ltcGx5IHRoZSBZQU1MIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBgZ29vZ2xlLmFwaS5TZXJ2aWNlYAogcHJvdG8gbWVzc2FnZS4KCiBBcyBhbiBhbHRlcm5hdGl2ZSB0byBhbm5vdGF0aW5nIHlvdXIgcHJvdG8gZmlsZSwgeW91IGNhbiBjb25maWd1cmUgZ1JQQwogdHJhbnNjb2RpbmcgaW4geW91ciBzZXJ2aWNlIGNvbmZpZyBZQU1MIGZpbGVzLiBZb3UgZG8gdGhpcyBieSBzcGVjaWZ5aW5nIGEKIGBIdHRwUnVsZWAgdGhhdCBtYXBzIHRoZSBnUlBDIG1ldGhvZCB0byBhIFJFU1QgZW5kcG9pbnQsIGFjaGlldmluZyB0aGUgc2FtZQogZWZmZWN0IGFzIHRoZSBwcm90byBhbm5vdGF0aW9uLiBUaGlzIGNhbiBiZSBwYXJ0aWN1bGFybHkgdXNlZnVsIGlmIHlvdQogaGF2ZSBhIHByb3RvIHRoYXQgaXMgcmV1c2VkIGluIG11bHRpcGxlIHNlcnZpY2VzLiBOb3RlIHRoYXQgYW55IHRyYW5zY29kaW5nCiBzcGVjaWZpZWQgaW4gdGhlIHNlcnZpY2UgY29uZmlnIHdpbGwgb3ZlcnJpZGUgYW55IG1hdGNoaW5nIHRyYW5zY29kaW5nCiBjb25maWd1cmF0aW9uIGluIHRoZSBwcm90by4KCiBFeGFtcGxlOgoKICAgICBodHRwOgogICAgICAgcnVsZXM6CiAgICAgICAgICMgU2VsZWN0cyBhIGdSUEMgbWV0aG9kIGFuZCBhcHBsaWVzIEh0dHBSdWxlIHRvIGl0LgogICAgICAgICAtIHNlbGVjdG9yOiBleGFtcGxlLnYxLk1lc3NhZ2luZy5HZXRNZXNzYWdlCiAgICAgICAgICAgZ2V0OiAvdjEvbWVzc2FnZXMve21lc3NhZ2VfaWR9L3tzdWIuc3ViZmllbGR9CgogIyMgU3BlY2lhbCBub3RlcwoKIFdoZW4gZ1JQQyBUcmFuc2NvZGluZyBpcyB1c2VkIHRvIG1hcCBhIGdSUEMgdG8gSlNPTiBSRVNUIGVuZHBvaW50cywgdGhlCiBwcm90byB0byBKU09OIGNvbnZlcnNpb24gbXVzdCBmb2xsb3cgdGhlIFtwcm90bzMKIHNwZWNpZmljYXRpb25dKGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvZG9jcy9wcm90bzMjanNvbikuCgogV2hpbGUgdGhlIHNpbmdsZSBzZWdtZW50IHZhcmlhYmxlIGZvbGxvd3MgdGhlIHNlbWFudGljcyBvZgogW1JGQyA2NTcwXShodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjU3MCkgU2VjdGlvbiAzLjIuMiBTaW1wbGUgU3RyaW5nCiBFeHBhbnNpb24sIHRoZSBtdWx0aSBzZWdtZW50IHZhcmlhYmxlICoqZG9lcyBub3QqKiBmb2xsb3cgUkZDIDY1NzAgU2VjdGlvbgogMy4yLjMgUmVzZXJ2ZWQgRXhwYW5zaW9uLiBUaGUgcmVhc29uIGlzIHRoYXQgdGhlIFJlc2VydmVkIEV4cGFuc2lvbgogZG9lcyBub3QgZXhwYW5kIHNwZWNpYWwgY2hhcmFjdGVycyBsaWtlIGA/YCBhbmQgYCNgLCB3aGljaCB3b3VsZCBsZWFkCiB0byBpbnZhbGlkIFVSTHMuIEFzIHRoZSByZXN1bHQsIGdSUEMgVHJhbnNjb2RpbmcgdXNlcyBhIGN1c3RvbSBlbmNvZGluZwogZm9yIG11bHRpIHNlZ21lbnQgdmFyaWFibGVzLgoKIFRoZSBwYXRoIHZhcmlhYmxlcyAqKm11c3Qgbm90KiogcmVmZXIgdG8gYW55IHJlcGVhdGVkIG9yIG1hcHBlZCBmaWVsZCwKIGJlY2F1c2UgY2xpZW50IGxpYnJhcmllcyBhcmUgbm90IGNhcGFibGUgb2YgaGFuZGxpbmcgc3VjaCB2YXJpYWJsZSBleHBhbnNpb24uCgogVGhlIHBhdGggdmFyaWFibGVzICoqbXVzdCBub3QqKiBjYXB0dXJlIHRoZSBsZWFkaW5nICIvIiBjaGFyYWN0ZXIuIFRoZSByZWFzb24KIGlzIHRoYXQgdGhlIG1vc3QgY29tbW9uIHVzZSBjYXNlICJ7dmFyfSIgZG9lcyBub3QgY2FwdHVyZSB0aGUgbGVhZGluZyAiLyIKIGNoYXJhY3Rlci4gRm9yIGNvbnNpc3RlbmN5LCBhbGwgcGF0aCB2YXJpYWJsZXMgbXVzdCBzaGFyZSB0aGUgc2FtZSBiZWhhdmlvci4KCiBSZXBlYXRlZCBtZXNzYWdlIGZpZWxkcyBtdXN0IG5vdCBiZSBtYXBwZWQgdG8gVVJMIHF1ZXJ5IHBhcmFtZXRlcnMsIGJlY2F1c2UKIG5vIGNsaWVudCBsaWJyYXJ5IGNhbiBzdXBwb3J0IHN1Y2ggY29tcGxpY2F0ZWQgbWFwcGluZy4KCiBJZiBhbiBBUEkgbmVlZHMgdG8gdXNlIGEgSlNPTiBhcnJheSBmb3IgcmVxdWVzdCBvciByZXNwb25zZSBib2R5LCBpdCBjYW4gbWFwCiB0aGUgcmVxdWVzdCBvciByZXNwb25zZSBib2R5IHRvIGEgcmVwZWF0ZWQgZmllbGQuIEhvd2V2ZXIsIHNvbWUgZ1JQQwogVHJhbnNjb2RpbmcgaW1wbGVtZW50YXRpb25zIG1heSBub3Qgc3VwcG9ydCB0aGlzIGZlYXR1cmUuCgoLCgMEAQESBLwCCBAKjwEKBAQBAgASBMECAhYagAEgU2VsZWN0cyBhIG1ldGhvZCB0byB3aGljaCB0aGlzIHJ1bGUgYXBwbGllcy4KCiBSZWZlciB0byBbc2VsZWN0b3JdW2dvb2dsZS5hcGkuRG9jdW1lbnRhdGlvblJ1bGUuc2VsZWN0b3JdIGZvciBzeW50YXgKIGRldGFpbHMuCgoPCgUEAQIABBIGwQICvAISCg0KBQQBAgAFEgTBAgIICg0KBQQBAgABEgTBAgkRCg0KBQQBAgADEgTBAhQVCtABCgQEAQgAEgbGAgLcAgMavwEgRGV0ZXJtaW5lcyB0aGUgVVJMIHBhdHRlcm4gaXMgbWF0Y2hlZCBieSB0aGlzIHJ1bGVzLiBUaGlzIHBhdHRlcm4gY2FuIGJlCiB1c2VkIHdpdGggYW55IG9mIHRoZSB7Z2V0fHB1dHxwb3N0fGRlbGV0ZXxwYXRjaH0gbWV0aG9kcy4gQSBjdXN0b20gbWV0aG9kCiBjYW4gYmUgZGVmaW5lZCB1c2luZyB0aGUgJ2N1c3RvbScgZmllbGQuCgoNCgUEAQgAARIExgIIDwpcCgQEAQIBEgTJAgQTGk4gTWFwcyB0byBIVFRQIEdFVC4gVXNlZCBmb3IgbGlzdGluZyBhbmQgZ2V0dGluZyBpbmZvcm1hdGlvbiBhYm91dAogcmVzb3VyY2VzLgoKDQoFBAECAQUSBMkCBAoKDQoFBAECAQESBMkCCw4KDQoFBAECAQMSBMkCERIKQAoEBAECAhIEzAIEExoyIE1hcHMgdG8gSFRUUCBQVVQuIFVzZWQgZm9yIHJlcGxhY2luZyBhIHJlc291cmNlLgoKDQoFBAECAgUSBMwCBAoKDQoFBAECAgESBMwCCw4KDQoFBAECAgMSBMwCERIKWAoEBAECAxIEzwIEFBpKIE1hcHMgdG8gSFRUUCBQT1NULiBVc2VkIGZvciBjcmVhdGluZyBhIHJlc291cmNlIG9yIHBlcmZvcm1pbmcgYW4gYWN0aW9uLgoKDQoFBAECAwUSBM8CBAoKDQoFBAECAwESBM8CCw8KDQoFBAECAwMSBM8CEhMKQgoEBAECBBIE0gIEFho0IE1hcHMgdG8gSFRUUCBERUxFVEUuIFVzZWQgZm9yIGRlbGV0aW5nIGEgcmVzb3VyY2UuCgoNCgUEAQIEBRIE0gIECgoNCgUEAQIEARIE0gILEQoNCgUEAQIEAxIE0gIUFQpBCgQEAQIFEgTVAgQVGjMgTWFwcyB0byBIVFRQIFBBVENILiBVc2VkIGZvciB1cGRhdGluZyBhIHJlc291cmNlLgoKDQoFBAECBQUSBNUCBAoKDQoFBAECBQESBNUCCxAKDQoFBAECBQMSBNUCExQKmAIKBAQBAgYSBNsCBCEaiQIgVGhlIGN1c3RvbSBwYXR0ZXJuIGlzIHVzZWQgZm9yIHNwZWNpZnlpbmcgYW4gSFRUUCBtZXRob2QgdGhhdCBpcyBub3QKIGluY2x1ZGVkIGluIHRoZSBgcGF0dGVybmAgZmllbGQsIHN1Y2ggYXMgSEVBRCwgb3IgIioiIHRvIGxlYXZlIHRoZQogSFRUUCBtZXRob2QgdW5zcGVjaWZpZWQgZm9yIHRoaXMgcnVsZS4gVGhlIHdpbGQtY2FyZCBydWxlIGlzIHVzZWZ1bAogZm9yIHNlcnZpY2VzIHRoYXQgcHJvdmlkZSBjb250ZW50IHRvIFdlYiAoSFRNTCkgY2xpZW50cy4KCg0KBQQBAgYGEgTbAgQVCg0KBQQBAgYBEgTbAhYcCg0KBQQBAgYDEgTbAh8gCsQCCgQEAQIHEgTkAgISGrUCIFRoZSBuYW1lIG9mIHRoZSByZXF1ZXN0IGZpZWxkIHdob3NlIHZhbHVlIGlzIG1hcHBlZCB0byB0aGUgSFRUUCByZXF1ZXN0CiBib2R5LCBvciBgKmAgZm9yIG1hcHBpbmcgYWxsIHJlcXVlc3QgZmllbGRzIG5vdCBjYXB0dXJlZCBieSB0aGUgcGF0aAogcGF0dGVybiB0byB0aGUgSFRUUCBib2R5LCBvciBvbWl0dGVkIGZvciBub3QgaGF2aW5nIGFueSBIVFRQIHJlcXVlc3QgYm9keS4KCiBOT1RFOiB0aGUgcmVmZXJyZWQgZmllbGQgbXVzdCBiZSBwcmVzZW50IGF0IHRoZSB0b3AtbGV2ZWwgb2YgdGhlIHJlcXVlc3QKIG1lc3NhZ2UgdHlwZS4KCg8KBQQBAgcEEgbkAgLcAgMKDQoFBAECBwUSBOQCAggKDQoFBAECBwESBOQCCQ0KDQoFBAECBwMSBOQCEBEKmQIKBAQBAggSBOwCAhwaigIgT3B0aW9uYWwuIFRoZSBuYW1lIG9mIHRoZSByZXNwb25zZSBmaWVsZCB3aG9zZSB2YWx1ZSBpcyBtYXBwZWQgdG8gdGhlIEhUVFAKIHJlc3BvbnNlIGJvZHkuIFdoZW4gb21pdHRlZCwgdGhlIGVudGlyZSByZXNwb25zZSBtZXNzYWdlIHdpbGwgYmUgdXNlZAogYXMgdGhlIEhUVFAgcmVzcG9uc2UgYm9keS4KCiBOT1RFOiBUaGUgcmVmZXJyZWQgZmllbGQgbXVzdCBiZSBwcmVzZW50IGF0IHRoZSB0b3AtbGV2ZWwgb2YgdGhlIHJlc3BvbnNlCiBtZXNzYWdlIHR5cGUuCgoPCgUEAQIIBBIG7AIC5AISCg0KBQQBAggFEgTsAgIICg0KBQQBAggBEgTsAgkWCg0KBQQBAggDEgTsAhkbCrsBCgQEAQIJEgTxAgItGqwBIEFkZGl0aW9uYWwgSFRUUCBiaW5kaW5ncyBmb3IgdGhlIHNlbGVjdG9yLiBOZXN0ZWQgYmluZGluZ3MgbXVzdAogbm90IGNvbnRhaW4gYW4gYGFkZGl0aW9uYWxfYmluZGluZ3NgIGZpZWxkIHRoZW1zZWx2ZXMgKHRoYXQgaXMsCiB0aGUgbmVzdGluZyBtYXkgb25seSBiZSBvbmUgbGV2ZWwgZGVlcCkuCgoNCgUEAQIJBBIE8QICCgoNCgUEAQIJBhIE8QILEwoNCgUEAQIJARIE8QIUJwoNCgUEAQIJAxIE8QIqLApHCgIEAhIG9QIA+wIBGjkgQSBjdXN0b20gcGF0dGVybiBpcyB1c2VkIGZvciBkZWZpbmluZyBjdXN0b20gSFRUUCB2ZXJiLgoKCwoDBAIBEgT1AggZCjIKBAQCAgASBPcCAhIaJCBUaGUgbmFtZSBvZiB0aGlzIGN1c3RvbSBIVFRQIHZlcmIuCgoPCgUEAgIABBIG9wIC9QIbCg0KBQQCAgAFEgT3AgIICg0KBQQCAgABEgT3AgkNCg0KBQQCAgADEgT3AhARCjUKBAQCAgESBPoCAhIaJyBUaGUgcGF0aCBtYXRjaGVkIGJ5IHRoaXMgY3VzdG9tIHZlcmIuCgoPCgUEAgIBBBIG+gIC9wISCg0KBQQCAgEFEgT6AgIICg0KBQQCAgEBEgT6AgkNCg0KBQQCAgEDEgT6AhARYgZwcm90bzMK5wgKHGdvb2dsZS9hcGkvYW5ub3RhdGlvbnMucHJvdG8SCmdvb2dsZS5hcGkaFWdvb2dsZS9hcGkvaHR0cC5wcm90bxogZ29vZ2xlL3Byb3RvYnVmL2Rlc2NyaXB0b3IucHJvdG86SwoEaHR0cBIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zGLDKvCIgASgLMhQuZ29vZ2xlLmFwaS5IdHRwUnVsZVIEaHR0cEJuCg5jb20uZ29vZ2xlLmFwaUIQQW5ub3RhdGlvbnNQcm90b1ABWkFnb29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9nb29nbGVhcGlzL2FwaS9hbm5vdGF0aW9uczthbm5vdGF0aW9uc6ICBEdBUElKvAYKBhIEDgAeAQrCBAoBDBIDDgASMrcEIENvcHlyaWdodCAoYykgMjAxNSwgR29vZ2xlIEluYy4KCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCggKAQISAxAAEwoJCgIDABIDEgAfCgkKAgMBEgMTACoKCAoBCBIDFQBYCgkKAggLEgMVAFgKCAoBCBIDFgAiCgkKAggKEgMWACIKCAoBCBIDFwAxCgkKAggIEgMXADEKCAoBCBIDGAAnCgkKAggBEgMYACcKCAoBCBIDGQAiCgkKAggkEgMZACIKCQoBBxIEGwAeAQocCgIHABIDHQIbGhEgU2VlIGBIdHRwUnVsZWAuCgoKCgMHAAISAxsHJAoLCgMHAAQSBB0CGyYKCgoDBwAGEgMdAgoKCgoDBwABEgMdCw8KCgoDBwADEgMdEhpiBnByb3RvMwrB+wcKH3ZvbHRoYV9wcm90b3Mvb3BlbmZsb3dfMTMucHJvdG8SC29wZW5mbG93XzEzGhxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvGiB2b2x0aGFfcHJvdG9zL3lhbmdfb3B0aW9ucy5wcm90byJjCgpvZnBfaGVhZGVyEhgKB3ZlcnNpb24YASABKA1SB3ZlcnNpb24SKQoEdHlwZRgCIAEoDjIVLm9wZW5mbG93XzEzLm9mcF90eXBlUgR0eXBlEhAKA3hpZBgDIAEoDVIDeGlkIqsBChVvZnBfaGVsbG9fZWxlbV9oZWFkZXISNAoEdHlwZRgBIAEoDjIgLm9wZW5mbG93XzEzLm9mcF9oZWxsb19lbGVtX3R5cGVSBHR5cGUSUQoNdmVyc2lvbmJpdG1hcBgCIAEoCzIpLm9wZW5mbG93XzEzLm9mcF9oZWxsb19lbGVtX3ZlcnNpb25iaXRtYXBIAFINdmVyc2lvbmJpdG1hcEIJCgdlbGVtZW50IjgKHG9mcF9oZWxsb19lbGVtX3ZlcnNpb25iaXRtYXASGAoHYml0bWFwcxgCIAMoDVIHYml0bWFwcyJLCglvZnBfaGVsbG8SPgoIZWxlbWVudHMYASADKAsyIi5vcGVuZmxvd18xMy5vZnBfaGVsbG9fZWxlbV9oZWFkZXJSCGVsZW1lbnRzIk0KEW9mcF9zd2l0Y2hfY29uZmlnEhQKBWZsYWdzGAEgASgNUgVmbGFncxIiCg1taXNzX3NlbmRfbGVuGAIgASgNUgttaXNzU2VuZExlbiJCCg1vZnBfdGFibGVfbW9kEhkKCHRhYmxlX2lkGAEgASgNUgd0YWJsZUlkEhYKBmNvbmZpZxgCIAEoDVIGY29uZmlnIqACCghvZnBfcG9ydBIXCgdwb3J0X25vGAEgASgNUgZwb3J0Tm8SFwoHaHdfYWRkchgCIAMoDVIGaHdBZGRyEhIKBG5hbWUYAyABKAlSBG5hbWUSFgoGY29uZmlnGAQgASgNUgZjb25maWcSFAoFc3RhdGUYBSABKA1SBXN0YXRlEhIKBGN1cnIYBiABKA1SBGN1cnISHgoKYWR2ZXJ0aXNlZBgHIAEoDVIKYWR2ZXJ0aXNlZBIcCglzdXBwb3J0ZWQYCCABKA1SCXN1cHBvcnRlZBISCgRwZWVyGAkgASgNUgRwZWVyEh0KCmN1cnJfc3BlZWQYCiABKA1SCWN1cnJTcGVlZBIbCgltYXhfc3BlZWQYCyABKA1SCG1heFNwZWVkIrUBChNvZnBfc3dpdGNoX2ZlYXR1cmVzEh8KC2RhdGFwYXRoX2lkGAEgASgEUgpkYXRhcGF0aElkEhsKCW5fYnVmZmVycxgCIAEoDVIIbkJ1ZmZlcnMSGQoIbl90YWJsZXMYAyABKA1SB25UYWJsZXMSIQoMYXV4aWxpYXJ5X2lkGAQgASgNUgthdXhpbGlhcnlJZBIiCgxjYXBhYmlsaXRpZXMYBSABKA1SDGNhcGFiaWxpdGllcyJyCg9vZnBfcG9ydF9zdGF0dXMSNAoGcmVhc29uGAEgASgOMhwub3BlbmZsb3dfMTMub2ZwX3BvcnRfcmVhc29uUgZyZWFzb24SKQoEZGVzYxgCIAEoCzIVLm9wZW5mbG93XzEzLm9mcF9wb3J0UgRkZXNjIooBCgxvZnBfcG9ydF9tb2QSFwoHcG9ydF9ubxgBIAEoDVIGcG9ydE5vEhcKB2h3X2FkZHIYAiADKA1SBmh3QWRkchIWCgZjb25maWcYAyABKA1SBmNvbmZpZxISCgRtYXNrGAQgASgNUgRtYXNrEhwKCWFkdmVydGlzZRgFIAEoDVIJYWR2ZXJ0aXNlIncKCW9mcF9tYXRjaBIvCgR0eXBlGAEgASgOMhsub3BlbmZsb3dfMTMub2ZwX21hdGNoX3R5cGVSBHR5cGUSOQoKb3htX2ZpZWxkcxgCIAMoCzIaLm9wZW5mbG93XzEzLm9mcF9veG1fZmllbGRSCW94bUZpZWxkcyLqAQoNb2ZwX294bV9maWVsZBI3CglveG1fY2xhc3MYASABKA4yGi5vcGVuZmxvd18xMy5vZnBfb3htX2NsYXNzUghveG1DbGFzcxI9CglvZmJfZmllbGQYBCABKAsyHi5vcGVuZmxvd18xMy5vZnBfb3htX29mYl9maWVsZEgAUghvZmJGaWVsZBJYChJleHBlcmltZW50ZXJfZmllbGQYBSABKAsyJy5vcGVuZmxvd18xMy5vZnBfb3htX2V4cGVyaW1lbnRlcl9maWVsZEgAUhFleHBlcmltZW50ZXJGaWVsZEIHCgVmaWVsZCLXDgoRb2ZwX294bV9vZmJfZmllbGQSNAoEdHlwZRgBIAEoDjIgLm9wZW5mbG93XzEzLm94bV9vZmJfZmllbGRfdHlwZXNSBHR5cGUSGQoIaGFzX21hc2sYAiABKAhSB2hhc01hc2sSFAoEcG9ydBgDIAEoDUgAUgRwb3J0EiUKDXBoeXNpY2FsX3BvcnQYBCABKA1IAFIMcGh5c2ljYWxQb3J0EicKDnRhYmxlX21ldGFkYXRhGAUgASgESABSDXRhYmxlTWV0YWRhdGESGQoHZXRoX2RzdBgGIAEoDEgAUgZldGhEc3QSGQoHZXRoX3NyYxgHIAEoDEgAUgZldGhTcmMSGwoIZXRoX3R5cGUYCCABKA1IAFIHZXRoVHlwZRIbCgh2bGFuX3ZpZBgJIAEoDUgAUgd2bGFuVmlkEhsKCHZsYW5fcGNwGAogASgNSABSB3ZsYW5QY3ASGQoHaXBfZHNjcBgLIAEoDUgAUgZpcERzY3ASFwoGaXBfZWNuGAwgASgNSABSBWlwRWNuEhsKCGlwX3Byb3RvGA0gASgNSABSB2lwUHJvdG8SGwoIaXB2NF9zcmMYDiABKA1IAFIHaXB2NFNyYxIbCghpcHY0X2RzdBgPIAEoDUgAUgdpcHY0RHN0EhkKB3RjcF9zcmMYECABKA1IAFIGdGNwU3JjEhkKB3RjcF9kc3QYESABKA1IAFIGdGNwRHN0EhkKB3VkcF9zcmMYEiABKA1IAFIGdWRwU3JjEhkKB3VkcF9kc3QYEyABKA1IAFIGdWRwRHN0EhsKCHNjdHBfc3JjGBQgASgNSABSB3NjdHBTcmMSGwoIc2N0cF9kc3QYFSABKA1IAFIHc2N0cERzdBIhCgtpY21wdjRfdHlwZRgWIAEoDUgAUgppY21wdjRUeXBlEiEKC2ljbXB2NF9jb2RlGBcgASgNSABSCmljbXB2NENvZGUSFwoGYXJwX29wGBggASgNSABSBWFycE9wEhkKB2FycF9zcGEYGSABKA1IAFIGYXJwU3BhEhkKB2FycF90cGEYGiABKA1IAFIGYXJwVHBhEhkKB2FycF9zaGEYGyABKAxIAFIGYXJwU2hhEhkKB2FycF90aGEYHCABKAxIAFIGYXJwVGhhEhsKCGlwdjZfc3JjGB0gASgMSABSB2lwdjZTcmMSGwoIaXB2Nl9kc3QYHiABKAxIAFIHaXB2NkRzdBIhCgtpcHY2X2ZsYWJlbBgfIAEoDUgAUgppcHY2RmxhYmVsEiEKC2ljbXB2Nl90eXBlGCAgASgNSABSCmljbXB2NlR5cGUSIQoLaWNtcHY2X2NvZGUYISABKA1IAFIKaWNtcHY2Q29kZRImCg5pcHY2X25kX3RhcmdldBgiIAEoDEgAUgxpcHY2TmRUYXJnZXQSIAoLaXB2Nl9uZF9zc2wYIyABKAxIAFIJaXB2Nk5kU3NsEiAKC2lwdjZfbmRfdGxsGCQgASgMSABSCWlwdjZOZFRsbBIfCgptcGxzX2xhYmVsGCUgASgNSABSCW1wbHNMYWJlbBIZCgdtcGxzX3RjGCYgASgNSABSBm1wbHNUYxIbCghtcGxzX2JvcxgnIAEoDUgAUgdtcGxzQm9zEhsKCHBiYl9pc2lkGCggASgNSABSB3BiYklzaWQSHQoJdHVubmVsX2lkGCkgASgESABSCHR1bm5lbElkEiEKC2lwdjZfZXh0aGRyGCogASgNSABSCmlwdjZFeHRoZHISMAoTdGFibGVfbWV0YWRhdGFfbWFzaxhpIAEoBEgBUhF0YWJsZU1ldGFkYXRhTWFzaxIiCgxldGhfZHN0X21hc2sYaiABKAxIAVIKZXRoRHN0TWFzaxIiCgxldGhfc3JjX21hc2sYayABKAxIAVIKZXRoU3JjTWFzaxIkCg12bGFuX3ZpZF9tYXNrGG0gASgNSAFSC3ZsYW5WaWRNYXNrEiQKDWlwdjRfc3JjX21hc2sYciABKA1IAVILaXB2NFNyY01hc2sSJAoNaXB2NF9kc3RfbWFzaxhzIAEoDUgBUgtpcHY0RHN0TWFzaxIiCgxhcnBfc3BhX21hc2sYfSABKA1IAVIKYXJwU3BhTWFzaxIiCgxhcnBfdHBhX21hc2sYfiABKA1IAVIKYXJwVHBhTWFzaxIlCg1pcHY2X3NyY19tYXNrGIEBIAEoDEgBUgtpcHY2U3JjTWFzaxIlCg1pcHY2X2RzdF9tYXNrGIIBIAEoDEgBUgtpcHY2RHN0TWFzaxIrChBpcHY2X2ZsYWJlbF9tYXNrGIMBIAEoDUgBUg5pcHY2RmxhYmVsTWFzaxIlCg1wYmJfaXNpZF9tYXNrGIwBIAEoDUgBUgtwYmJJc2lkTWFzaxInCg50dW5uZWxfaWRfbWFzaxiNASABKARIAVIMdHVubmVsSWRNYXNrEisKEGlwdjZfZXh0aGRyX21hc2sYjgEgASgNSAFSDmlwdjZFeHRoZHJNYXNrQgcKBXZhbHVlQgYKBG1hc2siXwoab2ZwX294bV9leHBlcmltZW50ZXJfZmllbGQSHQoKb3htX2hlYWRlchgBIAEoDVIJb3htSGVhZGVyEiIKDGV4cGVyaW1lbnRlchgCIAEoDVIMZXhwZXJpbWVudGVyIrIECgpvZnBfYWN0aW9uEjAKBHR5cGUYASABKA4yHC5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX3R5cGVSBHR5cGUSOAoGb3V0cHV0GAIgASgLMh4ub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9vdXRwdXRIAFIGb3V0cHV0Ej0KCG1wbHNfdHRsGAMgASgLMiAub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9tcGxzX3R0bEgAUgdtcGxzVHRsEjIKBHB1c2gYBCABKAsyHC5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX3B1c2hIAFIEcHVzaBI9Cghwb3BfbXBscxgFIAEoCzIgLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fcG9wX21wbHNIAFIHcG9wTXBscxI1CgVncm91cBgGIAEoCzIdLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fZ3JvdXBIAFIFZ3JvdXASNwoGbndfdHRsGAcgASgLMh4ub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9ud190dGxIAFIFbndUdGwSQAoJc2V0X2ZpZWxkGAggASgLMiEub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9zZXRfZmllbGRIAFIIc2V0RmllbGQSSgoMZXhwZXJpbWVudGVyGAkgASgLMiQub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9leHBlcmltZW50ZXJIAFIMZXhwZXJpbWVudGVyQggKBmFjdGlvbiJAChFvZnBfYWN0aW9uX291dHB1dBISCgRwb3J0GAEgASgNUgRwb3J0EhcKB21heF9sZW4YAiABKA1SBm1heExlbiIwChNvZnBfYWN0aW9uX21wbHNfdHRsEhkKCG1wbHNfdHRsGAEgASgNUgdtcGxzVHRsIi8KD29mcF9hY3Rpb25fcHVzaBIcCglldGhlcnR5cGUYASABKA1SCWV0aGVydHlwZSIzChNvZnBfYWN0aW9uX3BvcF9tcGxzEhwKCWV0aGVydHlwZRgBIAEoDVIJZXRoZXJ0eXBlIi0KEG9mcF9hY3Rpb25fZ3JvdXASGQoIZ3JvdXBfaWQYASABKA1SB2dyb3VwSWQiKgoRb2ZwX2FjdGlvbl9ud190dGwSFQoGbndfdHRsGAEgASgNUgVud1R0bCJIChRvZnBfYWN0aW9uX3NldF9maWVsZBIwCgVmaWVsZBgBIAEoCzIaLm9wZW5mbG93XzEzLm9mcF9veG1fZmllbGRSBWZpZWxkIlEKF29mcF9hY3Rpb25fZXhwZXJpbWVudGVyEiIKDGV4cGVyaW1lbnRlchgBIAEoDVIMZXhwZXJpbWVudGVyEhIKBGRhdGEYAiABKAxSBGRhdGEinAMKD29mcF9pbnN0cnVjdGlvbhISCgR0eXBlGAEgASgNUgR0eXBlEkgKCmdvdG9fdGFibGUYAiABKAsyJy5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25fZ290b190YWJsZUgAUglnb3RvVGFibGUSVAoOd3JpdGVfbWV0YWRhdGEYAyABKAsyKy5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25fd3JpdGVfbWV0YWRhdGFIAFINd3JpdGVNZXRhZGF0YRJACgdhY3Rpb25zGAQgASgLMiQub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uX2FjdGlvbnNIAFIHYWN0aW9ucxI6CgVtZXRlchgFIAEoCzIiLm9wZW5mbG93XzEzLm9mcF9pbnN0cnVjdGlvbl9tZXRlckgAUgVtZXRlchJPCgxleHBlcmltZW50ZXIYBiABKAsyKS5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25fZXhwZXJpbWVudGVySABSDGV4cGVyaW1lbnRlckIGCgRkYXRhIjcKGm9mcF9pbnN0cnVjdGlvbl9nb3RvX3RhYmxlEhkKCHRhYmxlX2lkGAEgASgNUgd0YWJsZUlkImEKHm9mcF9pbnN0cnVjdGlvbl93cml0ZV9tZXRhZGF0YRIaCghtZXRhZGF0YRgBIAEoBFIIbWV0YWRhdGESIwoNbWV0YWRhdGFfbWFzaxgCIAEoBFIMbWV0YWRhdGFNYXNrIkwKF29mcF9pbnN0cnVjdGlvbl9hY3Rpb25zEjEKB2FjdGlvbnMYASADKAsyFy5vcGVuZmxvd18xMy5vZnBfYWN0aW9uUgdhY3Rpb25zIjIKFW9mcF9pbnN0cnVjdGlvbl9tZXRlchIZCghtZXRlcl9pZBgBIAEoDVIHbWV0ZXJJZCJWChxvZnBfaW5zdHJ1Y3Rpb25fZXhwZXJpbWVudGVyEiIKDGV4cGVyaW1lbnRlchgBIAEoDVIMZXhwZXJpbWVudGVyEhIKBGRhdGEYAiABKAxSBGRhdGEi3AMKDG9mcF9mbG93X21vZBIWCgZjb29raWUYASABKARSBmNvb2tpZRIfCgtjb29raWVfbWFzaxgCIAEoBFIKY29va2llTWFzaxIZCgh0YWJsZV9pZBgDIAEoDVIHdGFibGVJZBI7Cgdjb21tYW5kGAQgASgOMiEub3BlbmZsb3dfMTMub2ZwX2Zsb3dfbW9kX2NvbW1hbmRSB2NvbW1hbmQSIQoMaWRsZV90aW1lb3V0GAUgASgNUgtpZGxlVGltZW91dBIhCgxoYXJkX3RpbWVvdXQYBiABKA1SC2hhcmRUaW1lb3V0EhoKCHByaW9yaXR5GAcgASgNUghwcmlvcml0eRIbCglidWZmZXJfaWQYCCABKA1SCGJ1ZmZlcklkEhkKCG91dF9wb3J0GAkgASgNUgdvdXRQb3J0EhsKCW91dF9ncm91cBgKIAEoDVIIb3V0R3JvdXASFAoFZmxhZ3MYCyABKA1SBWZsYWdzEiwKBW1hdGNoGAwgASgLMhYub3BlbmZsb3dfMTMub2ZwX21hdGNoUgVtYXRjaBJACgxpbnN0cnVjdGlvbnMYDSADKAsyHC5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25SDGluc3RydWN0aW9ucyKXAQoKb2ZwX2J1Y2tldBIWCgZ3ZWlnaHQYASABKA1SBndlaWdodBIdCgp3YXRjaF9wb3J0GAIgASgNUgl3YXRjaFBvcnQSHwoLd2F0Y2hfZ3JvdXAYAyABKA1SCndhdGNoR3JvdXASMQoHYWN0aW9ucxgEIAMoCzIXLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25SB2FjdGlvbnMizAEKDW9mcF9ncm91cF9tb2QSPAoHY29tbWFuZBgBIAEoDjIiLm9wZW5mbG93XzEzLm9mcF9ncm91cF9tb2RfY29tbWFuZFIHY29tbWFuZBIvCgR0eXBlGAIgASgOMhsub3BlbmZsb3dfMTMub2ZwX2dyb3VwX3R5cGVSBHR5cGUSGQoIZ3JvdXBfaWQYAyABKA1SB2dyb3VwSWQSMQoHYnVja2V0cxgEIAMoCzIXLm9wZW5mbG93XzEzLm9mcF9idWNrZXRSB2J1Y2tldHMijQEKDm9mcF9wYWNrZXRfb3V0EhsKCWJ1ZmZlcl9pZBgBIAEoDVIIYnVmZmVySWQSFwoHaW5fcG9ydBgCIAEoDVIGaW5Qb3J0EjEKB2FjdGlvbnMYAyADKAsyFy5vcGVuZmxvd18xMy5vZnBfYWN0aW9uUgdhY3Rpb25zEhIKBGRhdGEYBCABKAxSBGRhdGEi3AEKDW9mcF9wYWNrZXRfaW4SGwoJYnVmZmVyX2lkGAEgASgNUghidWZmZXJJZBI5CgZyZWFzb24YAiABKA4yIS5vcGVuZmxvd18xMy5vZnBfcGFja2V0X2luX3JlYXNvblIGcmVhc29uEhkKCHRhYmxlX2lkGAMgASgNUgd0YWJsZUlkEhYKBmNvb2tpZRgEIAEoBFIGY29va2llEiwKBW1hdGNoGAUgASgLMhYub3BlbmZsb3dfMTMub2ZwX21hdGNoUgVtYXRjaBISCgRkYXRhGAYgASgMUgRkYXRhIp0DChBvZnBfZmxvd19yZW1vdmVkEhYKBmNvb2tpZRgBIAEoBFIGY29va2llEhoKCHByaW9yaXR5GAIgASgNUghwcmlvcml0eRI8CgZyZWFzb24YAyABKA4yJC5vcGVuZmxvd18xMy5vZnBfZmxvd19yZW1vdmVkX3JlYXNvblIGcmVhc29uEhkKCHRhYmxlX2lkGAQgASgNUgd0YWJsZUlkEiEKDGR1cmF0aW9uX3NlYxgFIAEoDVILZHVyYXRpb25TZWMSIwoNZHVyYXRpb25fbnNlYxgGIAEoDVIMZHVyYXRpb25Oc2VjEiEKDGlkbGVfdGltZW91dBgHIAEoDVILaWRsZVRpbWVvdXQSIQoMaGFyZF90aW1lb3V0GAggASgNUgtoYXJkVGltZW91dBIhCgxwYWNrZXRfY291bnQYCSABKARSC3BhY2tldENvdW50Eh0KCmJ5dGVfY291bnQYCiABKARSCWJ5dGVDb3VudBIsCgVtYXRjaBh5IAEoCzIWLm9wZW5mbG93XzEzLm9mcF9tYXRjaFIFbWF0Y2gi3AIKFW9mcF9tZXRlcl9iYW5kX2hlYWRlchI0CgR0eXBlGAEgASgOMiAub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfdHlwZVIEdHlwZRISCgRyYXRlGAIgASgNUgRyYXRlEh0KCmJ1cnN0X3NpemUYAyABKA1SCWJ1cnN0U2l6ZRI2CgRkcm9wGAQgASgLMiAub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfZHJvcEgAUgRkcm9wEkoKC2RzY3BfcmVtYXJrGAUgASgLMicub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfZHNjcF9yZW1hcmtIAFIKZHNjcFJlbWFyaxJOCgxleHBlcmltZW50ZXIYBiABKAsyKC5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfYmFuZF9leHBlcmltZW50ZXJIAFIMZXhwZXJpbWVudGVyQgYKBGRhdGEiFQoTb2ZwX21ldGVyX2JhbmRfZHJvcCI7ChpvZnBfbWV0ZXJfYmFuZF9kc2NwX3JlbWFyaxIdCgpwcmVjX2xldmVsGAEgASgNUglwcmVjTGV2ZWwiQQobb2ZwX21ldGVyX2JhbmRfZXhwZXJpbWVudGVyEiIKDGV4cGVyaW1lbnRlchgBIAEoDVIMZXhwZXJpbWVudGVyIrgBCg1vZnBfbWV0ZXJfbW9kEjwKB2NvbW1hbmQYASABKA4yIi5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfbW9kX2NvbW1hbmRSB2NvbW1hbmQSFAoFZmxhZ3MYAiABKA1SBWZsYWdzEhkKCG1ldGVyX2lkGAMgASgNUgdtZXRlcklkEjgKBWJhbmRzGAQgAygLMiIub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfaGVhZGVyUgViYW5kcyJLCg1vZnBfZXJyb3JfbXNnEhIKBHR5cGUYASABKA1SBHR5cGUSEgoEY29kZRgCIAEoDVIEY29kZRISCgRkYXRhGAMgASgMUgRkYXRhIoMBChpvZnBfZXJyb3JfZXhwZXJpbWVudGVyX21zZxISCgR0eXBlGAEgASgNUgR0eXBlEhkKCGV4cF90eXBlGAIgASgNUgdleHBUeXBlEiIKDGV4cGVyaW1lbnRlchgDIAEoDVIMZXhwZXJpbWVudGVyEhIKBGRhdGEYBCABKAxSBGRhdGEidgoVb2ZwX211bHRpcGFydF9yZXF1ZXN0EjMKBHR5cGUYASABKA4yHy5vcGVuZmxvd18xMy5vZnBfbXVsdGlwYXJ0X3R5cGVSBHR5cGUSFAoFZmxhZ3MYAiABKA1SBWZsYWdzEhIKBGJvZHkYAyABKAxSBGJvZHkidAoTb2ZwX211bHRpcGFydF9yZXBseRIzCgR0eXBlGAEgASgOMh8ub3BlbmZsb3dfMTMub2ZwX211bHRpcGFydF90eXBlUgR0eXBlEhQKBWZsYWdzGAIgASgNUgVmbGFncxISCgRib2R5GAMgASgMUgRib2R5Io8BCghvZnBfZGVzYxIZCghtZnJfZGVzYxgBIAEoCVIHbWZyRGVzYxIXCgdod19kZXNjGAIgASgJUgZod0Rlc2MSFwoHc3dfZGVzYxgDIAEoCVIGc3dEZXNjEh0KCnNlcmlhbF9udW0YBCABKAlSCXNlcmlhbE51bRIXCgdkcF9kZXNjGAUgASgJUgZkcERlc2Mi0gEKFm9mcF9mbG93X3N0YXRzX3JlcXVlc3QSGQoIdGFibGVfaWQYASABKA1SB3RhYmxlSWQSGQoIb3V0X3BvcnQYAiABKA1SB291dFBvcnQSGwoJb3V0X2dyb3VwGAMgASgNUghvdXRHcm91cBIWCgZjb29raWUYBCABKARSBmNvb2tpZRIfCgtjb29raWVfbWFzaxgFIAEoBFIKY29va2llTWFzaxIsCgVtYXRjaBgGIAEoCzIWLm9wZW5mbG93XzEzLm9mcF9tYXRjaFIFbWF0Y2gixQMKDm9mcF9mbG93X3N0YXRzEg4KAmlkGA4gASgEUgJpZBIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZBIhCgxkdXJhdGlvbl9zZWMYAiABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYAyABKA1SDGR1cmF0aW9uTnNlYxIaCghwcmlvcml0eRgEIAEoDVIIcHJpb3JpdHkSIQoMaWRsZV90aW1lb3V0GAUgASgNUgtpZGxlVGltZW91dBIhCgxoYXJkX3RpbWVvdXQYBiABKA1SC2hhcmRUaW1lb3V0EhQKBWZsYWdzGAcgASgNUgVmbGFncxIWCgZjb29raWUYCCABKARSBmNvb2tpZRIhCgxwYWNrZXRfY291bnQYCSABKARSC3BhY2tldENvdW50Eh0KCmJ5dGVfY291bnQYCiABKARSCWJ5dGVDb3VudBIsCgVtYXRjaBgMIAEoCzIWLm9wZW5mbG93XzEzLm9mcF9tYXRjaFIFbWF0Y2gSQAoMaW5zdHJ1Y3Rpb25zGA0gAygLMhwub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uUgxpbnN0cnVjdGlvbnMi1wEKG29mcF9hZ2dyZWdhdGVfc3RhdHNfcmVxdWVzdBIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZBIZCghvdXRfcG9ydBgCIAEoDVIHb3V0UG9ydBIbCglvdXRfZ3JvdXAYAyABKA1SCG91dEdyb3VwEhYKBmNvb2tpZRgEIAEoBFIGY29va2llEh8KC2Nvb2tpZV9tYXNrGAUgASgEUgpjb29raWVNYXNrEiwKBW1hdGNoGAYgASgLMhYub3BlbmZsb3dfMTMub2ZwX21hdGNoUgVtYXRjaCJ8ChlvZnBfYWdncmVnYXRlX3N0YXRzX3JlcGx5EiEKDHBhY2tldF9jb3VudBgBIAEoBFILcGFja2V0Q291bnQSHQoKYnl0ZV9jb3VudBgCIAEoBFIJYnl0ZUNvdW50Eh0KCmZsb3dfY291bnQYAyABKA1SCWZsb3dDb3VudCLtAwoab2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcGVydHkSPAoEdHlwZRgBIAEoDjIoLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfdHlwZVIEdHlwZRJWCgxpbnN0cnVjdGlvbnMYAiABKAsyMC5vcGVuZmxvd18xMy5vZnBfdGFibGVfZmVhdHVyZV9wcm9wX2luc3RydWN0aW9uc0gAUgxpbnN0cnVjdGlvbnMSUgoLbmV4dF90YWJsZXMYAyABKAsyLy5vcGVuZmxvd18xMy5vZnBfdGFibGVfZmVhdHVyZV9wcm9wX25leHRfdGFibGVzSABSCm5leHRUYWJsZXMSRwoHYWN0aW9ucxgEIAEoCzIrLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfYWN0aW9uc0gAUgdhY3Rpb25zEjsKA294bRgFIAEoCzInLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3Bfb3htSABSA294bRJWCgxleHBlcmltZW50ZXIYBiABKAsyMC5vcGVuZmxvd18xMy5vZnBfdGFibGVfZmVhdHVyZV9wcm9wX2V4cGVyaW1lbnRlckgAUgxleHBlcmltZW50ZXJCBwoFdmFsdWUiZwojb2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9pbnN0cnVjdGlvbnMSQAoMaW5zdHJ1Y3Rpb25zGAEgAygLMhwub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uUgxpbnN0cnVjdGlvbnMiSgoib2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9uZXh0X3RhYmxlcxIkCg5uZXh0X3RhYmxlX2lkcxgBIAMoDVIMbmV4dFRhYmxlSWRzIlMKHm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfYWN0aW9ucxIxCgdhY3Rpb25zGAEgAygLMhcub3BlbmZsb3dfMTMub2ZwX2FjdGlvblIHYWN0aW9ucyI1ChpvZnBfdGFibGVfZmVhdHVyZV9wcm9wX294bRIXCgdveG1faWRzGAMgAygNUgZveG1JZHMikQEKI29mcF90YWJsZV9mZWF0dXJlX3Byb3BfZXhwZXJpbWVudGVyEiIKDGV4cGVyaW1lbnRlchgCIAEoDVIMZXhwZXJpbWVudGVyEhkKCGV4cF90eXBlGAMgASgNUgdleHBUeXBlEisKEWV4cGVyaW1lbnRlcl9kYXRhGAQgAygNUhBleHBlcmltZW50ZXJEYXRhIpMCChJvZnBfdGFibGVfZmVhdHVyZXMSGQoIdGFibGVfaWQYASABKA1SB3RhYmxlSWQSEgoEbmFtZRgCIAEoCVIEbmFtZRIlCg5tZXRhZGF0YV9tYXRjaBgDIAEoBFINbWV0YWRhdGFNYXRjaBIlCg5tZXRhZGF0YV93cml0ZRgEIAEoBFINbWV0YWRhdGFXcml0ZRIWCgZjb25maWcYBSABKA1SBmNvbmZpZxIfCgttYXhfZW50cmllcxgGIAEoDVIKbWF4RW50cmllcxJHCgpwcm9wZXJ0aWVzGAcgAygLMicub3BlbmZsb3dfMTMub2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcGVydHlSCnByb3BlcnRpZXMilwEKD29mcF90YWJsZV9zdGF0cxIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZBIhCgxhY3RpdmVfY291bnQYAiABKA1SC2FjdGl2ZUNvdW50EiEKDGxvb2t1cF9jb3VudBgDIAEoBFILbG9va3VwQ291bnQSIwoNbWF0Y2hlZF9jb3VudBgEIAEoBFIMbWF0Y2hlZENvdW50IjEKFm9mcF9wb3J0X3N0YXRzX3JlcXVlc3QSFwoHcG9ydF9ubxgBIAEoDVIGcG9ydE5vIt0DCg5vZnBfcG9ydF9zdGF0cxIXCgdwb3J0X25vGAEgASgNUgZwb3J0Tm8SHQoKcnhfcGFja2V0cxgCIAEoBFIJcnhQYWNrZXRzEh0KCnR4X3BhY2tldHMYAyABKARSCXR4UGFja2V0cxIZCghyeF9ieXRlcxgEIAEoBFIHcnhCeXRlcxIZCgh0eF9ieXRlcxgFIAEoBFIHdHhCeXRlcxIdCgpyeF9kcm9wcGVkGAYgASgEUglyeERyb3BwZWQSHQoKdHhfZHJvcHBlZBgHIAEoBFIJdHhEcm9wcGVkEhsKCXJ4X2Vycm9ycxgIIAEoBFIIcnhFcnJvcnMSGwoJdHhfZXJyb3JzGAkgASgEUgh0eEVycm9ycxIgCgxyeF9mcmFtZV9lcnIYCiABKARSCnJ4RnJhbWVFcnISHgoLcnhfb3Zlcl9lcnIYCyABKARSCXJ4T3ZlckVychIcCgpyeF9jcmNfZXJyGAwgASgEUghyeENyY0VychIeCgpjb2xsaXNpb25zGA0gASgEUgpjb2xsaXNpb25zEiEKDGR1cmF0aW9uX3NlYxgOIAEoDVILZHVyYXRpb25TZWMSIwoNZHVyYXRpb25fbnNlYxgPIAEoDVIMZHVyYXRpb25Oc2VjIjQKF29mcF9ncm91cF9zdGF0c19yZXF1ZXN0EhkKCGdyb3VwX2lkGAEgASgNUgdncm91cElkIlYKEm9mcF9idWNrZXRfY291bnRlchIhCgxwYWNrZXRfY291bnQYASABKARSC3BhY2tldENvdW50Eh0KCmJ5dGVfY291bnQYAiABKARSCWJ5dGVDb3VudCKXAgoPb2ZwX2dyb3VwX3N0YXRzEhkKCGdyb3VwX2lkGAEgASgNUgdncm91cElkEhsKCXJlZl9jb3VudBgCIAEoDVIIcmVmQ291bnQSIQoMcGFja2V0X2NvdW50GAMgASgEUgtwYWNrZXRDb3VudBIdCgpieXRlX2NvdW50GAQgASgEUglieXRlQ291bnQSIQoMZHVyYXRpb25fc2VjGAUgASgNUgtkdXJhdGlvblNlYxIjCg1kdXJhdGlvbl9uc2VjGAYgASgNUgxkdXJhdGlvbk5zZWMSQgoMYnVja2V0X3N0YXRzGAcgAygLMh8ub3BlbmZsb3dfMTMub2ZwX2J1Y2tldF9jb3VudGVyUgtidWNrZXRTdGF0cyKPAQoOb2ZwX2dyb3VwX2Rlc2MSLwoEdHlwZRgBIAEoDjIbLm9wZW5mbG93XzEzLm9mcF9ncm91cF90eXBlUgR0eXBlEhkKCGdyb3VwX2lkGAIgASgNUgdncm91cElkEjEKB2J1Y2tldHMYAyADKAsyFy5vcGVuZmxvd18xMy5vZnBfYnVja2V0UgdidWNrZXRzIqQBCg9vZnBfZ3JvdXBfZW50cnkSXQoEZGVzYxgBIAEoCzIbLm9wZW5mbG93XzEzLm9mcF9ncm91cF9kZXNjQiyC980dBgoEZGVzY4L3zR0cEhpvcGVuZmxvd18xMy1vZnBfZ3JvdXBfZGVzY1IEZGVzYxIyCgVzdGF0cxgCIAEoCzIcLm9wZW5mbG93XzEzLm9mcF9ncm91cF9zdGF0c1IFc3RhdHMihwEKEm9mcF9ncm91cF9mZWF0dXJlcxIUCgV0eXBlcxgBIAEoDVIFdHlwZXMSIgoMY2FwYWJpbGl0aWVzGAIgASgNUgxjYXBhYmlsaXRpZXMSHQoKbWF4X2dyb3VwcxgDIAMoDVIJbWF4R3JvdXBzEhgKB2FjdGlvbnMYBCADKA1SB2FjdGlvbnMiOAobb2ZwX21ldGVyX211bHRpcGFydF9yZXF1ZXN0EhkKCG1ldGVyX2lkGAEgASgNUgdtZXRlcklkImoKFG9mcF9tZXRlcl9iYW5kX3N0YXRzEioKEXBhY2tldF9iYW5kX2NvdW50GAEgASgEUg9wYWNrZXRCYW5kQ291bnQSJgoPYnl0ZV9iYW5kX2NvdW50GAIgASgEUg1ieXRlQmFuZENvdW50IqECCg9vZnBfbWV0ZXJfc3RhdHMSGQoIbWV0ZXJfaWQYASABKA1SB21ldGVySWQSHQoKZmxvd19jb3VudBgCIAEoDVIJZmxvd0NvdW50EiYKD3BhY2tldF9pbl9jb3VudBgDIAEoBFINcGFja2V0SW5Db3VudBIiCg1ieXRlX2luX2NvdW50GAQgASgEUgtieXRlSW5Db3VudBIhCgxkdXJhdGlvbl9zZWMYBSABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYBiABKA1SDGR1cmF0aW9uTnNlYxJACgpiYW5kX3N0YXRzGAcgAygLMiEub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfc3RhdHNSCWJhbmRTdGF0cyJ9ChBvZnBfbWV0ZXJfY29uZmlnEhQKBWZsYWdzGAEgASgNUgVmbGFncxIZCghtZXRlcl9pZBgCIAEoDVIHbWV0ZXJJZBI4CgViYW5kcxgDIAMoCzIiLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX2hlYWRlclIFYmFuZHMirgEKEm9mcF9tZXRlcl9mZWF0dXJlcxIbCgltYXhfbWV0ZXIYASABKA1SCG1heE1ldGVyEh0KCmJhbmRfdHlwZXMYAiABKA1SCWJhbmRUeXBlcxIiCgxjYXBhYmlsaXRpZXMYAyABKA1SDGNhcGFiaWxpdGllcxIbCgltYXhfYmFuZHMYBCABKA1SCG1heEJhbmRzEhsKCW1heF9jb2xvchgFIAEoDVIIbWF4Q29sb3Iidgohb2ZwX2V4cGVyaW1lbnRlcl9tdWx0aXBhcnRfaGVhZGVyEiIKDGV4cGVyaW1lbnRlchgBIAEoDVIMZXhwZXJpbWVudGVyEhkKCGV4cF90eXBlGAIgASgNUgdleHBUeXBlEhIKBGRhdGEYAyABKAxSBGRhdGEibAoXb2ZwX2V4cGVyaW1lbnRlcl9oZWFkZXISIgoMZXhwZXJpbWVudGVyGAEgASgNUgxleHBlcmltZW50ZXISGQoIZXhwX3R5cGUYAiABKA1SB2V4cFR5cGUSEgoEZGF0YRgDIAEoDFIEZGF0YSJFChVvZnBfcXVldWVfcHJvcF9oZWFkZXISGgoIcHJvcGVydHkYASABKA1SCHByb3BlcnR5EhAKA2xlbhgCIAEoDVIDbGVuInIKF29mcF9xdWV1ZV9wcm9wX21pbl9yYXRlEkMKC3Byb3BfaGVhZGVyGAEgASgLMiIub3BlbmZsb3dfMTMub2ZwX3F1ZXVlX3Byb3BfaGVhZGVyUgpwcm9wSGVhZGVyEhIKBHJhdGUYAiABKA1SBHJhdGUicgoXb2ZwX3F1ZXVlX3Byb3BfbWF4X3JhdGUSQwoLcHJvcF9oZWFkZXIYASABKAsyIi5vcGVuZmxvd18xMy5vZnBfcXVldWVfcHJvcF9oZWFkZXJSCnByb3BIZWFkZXISEgoEcmF0ZRgCIAEoDVIEcmF0ZSKaAQobb2ZwX3F1ZXVlX3Byb3BfZXhwZXJpbWVudGVyEkMKC3Byb3BfaGVhZGVyGAEgASgLMiIub3BlbmZsb3dfMTMub2ZwX3F1ZXVlX3Byb3BfaGVhZGVyUgpwcm9wSGVhZGVyEiIKDGV4cGVyaW1lbnRlchgCIAEoDVIMZXhwZXJpbWVudGVyEhIKBGRhdGEYAyABKAxSBGRhdGEihQEKEG9mcF9wYWNrZXRfcXVldWUSGQoIcXVldWVfaWQYASABKA1SB3F1ZXVlSWQSEgoEcG9ydBgCIAEoDVIEcG9ydBJCCgpwcm9wZXJ0aWVzGAQgAygLMiIub3BlbmZsb3dfMTMub2ZwX3F1ZXVlX3Byb3BfaGVhZGVyUgpwcm9wZXJ0aWVzIjIKHG9mcF9xdWV1ZV9nZXRfY29uZmlnX3JlcXVlc3QSEgoEcG9ydBgBIAEoDVIEcG9ydCJnChpvZnBfcXVldWVfZ2V0X2NvbmZpZ19yZXBseRISCgRwb3J0GAEgASgNUgRwb3J0EjUKBnF1ZXVlcxgCIAMoCzIdLm9wZW5mbG93XzEzLm9mcF9wYWNrZXRfcXVldWVSBnF1ZXVlcyJFChRvZnBfYWN0aW9uX3NldF9xdWV1ZRISCgR0eXBlGAEgASgNUgR0eXBlEhkKCHF1ZXVlX2lkGAMgASgNUgdxdWV1ZUlkIk0KF29mcF9xdWV1ZV9zdGF0c19yZXF1ZXN0EhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIZCghxdWV1ZV9pZBgCIAEoDVIHcXVldWVJZCLkAQoPb2ZwX3F1ZXVlX3N0YXRzEhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIZCghxdWV1ZV9pZBgCIAEoDVIHcXVldWVJZBIZCgh0eF9ieXRlcxgDIAEoBFIHdHhCeXRlcxIdCgp0eF9wYWNrZXRzGAQgASgEUgl0eFBhY2tldHMSGwoJdHhfZXJyb3JzGAUgASgEUgh0eEVycm9ycxIhCgxkdXJhdGlvbl9zZWMYBiABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYByABKA1SDGR1cmF0aW9uTnNlYyJtChBvZnBfcm9sZV9yZXF1ZXN0EjQKBHJvbGUYASABKA4yIC5vcGVuZmxvd18xMy5vZnBfY29udHJvbGxlcl9yb2xlUgRyb2xlEiMKDWdlbmVyYXRpb25faWQYAiABKARSDGdlbmVyYXRpb25JZCKOAQoQb2ZwX2FzeW5jX2NvbmZpZxIkCg5wYWNrZXRfaW5fbWFzaxgBIAMoDVIMcGFja2V0SW5NYXNrEigKEHBvcnRfc3RhdHVzX21hc2sYAiADKA1SDnBvcnRTdGF0dXNNYXNrEioKEWZsb3dfcmVtb3ZlZF9tYXNrGAMgAygNUg9mbG93UmVtb3ZlZE1hc2siWQoOTWV0ZXJNb2RVcGRhdGUSDgoCaWQYASABKAlSAmlkEjcKCW1ldGVyX21vZBgCIAEoCzIaLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9tb2RSCG1ldGVyTW9kIlAKD01ldGVyU3RhdHNSZXBseRI9CgttZXRlcl9zdGF0cxgBIAMoCzIcLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9zdGF0c1IKbWV0ZXJTdGF0cyJXCg9GbG93VGFibGVVcGRhdGUSDgoCaWQYASABKAlSAmlkEjQKCGZsb3dfbW9kGAIgASgLMhkub3BlbmZsb3dfMTMub2ZwX2Zsb3dfbW9kUgdmbG93TW9kIl8KFEZsb3dHcm91cFRhYmxlVXBkYXRlEg4KAmlkGAEgASgJUgJpZBI3Cglncm91cF9tb2QYAiABKAsyGi5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfbW9kUghncm91cE1vZCI6CgVGbG93cxIxCgVpdGVtcxgBIAMoCzIbLm9wZW5mbG93XzEzLm9mcF9mbG93X3N0YXRzUgVpdGVtcyI9CgZNZXRlcnMSMwoFaXRlbXMYASADKAsyHS5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfY29uZmlnUgVpdGVtcyJACgpGbG93R3JvdXBzEjIKBWl0ZW1zGAEgAygLMhwub3BlbmZsb3dfMTMub2ZwX2dyb3VwX2VudHJ5UgVpdGVtcyJpCgtGbG93Q2hhbmdlcxIpCgZ0b19hZGQYASABKAsyEi5vcGVuZmxvd18xMy5GbG93c1IFdG9BZGQSLwoJdG9fcmVtb3ZlGAIgASgLMhIub3BlbmZsb3dfMTMuRmxvd3NSCHRvUmVtb3ZlIq4BChBGbG93R3JvdXBDaGFuZ2VzEi4KBnRvX2FkZBgBIAEoCzIXLm9wZW5mbG93XzEzLkZsb3dHcm91cHNSBXRvQWRkEjQKCXRvX3JlbW92ZRgCIAEoCzIXLm9wZW5mbG93XzEzLkZsb3dHcm91cHNSCHRvUmVtb3ZlEjQKCXRvX3VwZGF0ZRgDIAEoCzIXLm9wZW5mbG93XzEzLkZsb3dHcm91cHNSCHRvVXBkYXRlIlMKCFBhY2tldEluEg4KAmlkGAEgASgJUgJpZBI3CglwYWNrZXRfaW4YAiABKAsyGi5vcGVuZmxvd18xMy5vZnBfcGFja2V0X2luUghwYWNrZXRJbiJXCglQYWNrZXRPdXQSDgoCaWQYASABKAlSAmlkEjoKCnBhY2tldF9vdXQYAiABKAsyGy5vcGVuZmxvd18xMy5vZnBfcGFja2V0X291dFIJcGFja2V0T3V0ImcKC0NoYW5nZUV2ZW50Eg4KAmlkGAEgASgJUgJpZBI/Cgtwb3J0X3N0YXR1cxgCIAEoCzIcLm9wZW5mbG93XzEzLm9mcF9wb3J0X3N0YXR1c0gAUgpwb3J0U3RhdHVzQgcKBWV2ZW50KtUBCgtvZnBfcG9ydF9ubxIQCgxPRlBQX0lOVkFMSUQQABIQCghPRlBQX01BWBCA/v//BxIUCgxPRlBQX0lOX1BPUlQQ+P///wcSEgoKT0ZQUF9UQUJMRRD5////BxITCgtPRlBQX05PUk1BTBD6////BxISCgpPRlBQX0ZMT09EEPv///8HEhAKCE9GUFBfQUxMEPz///8HEhcKD09GUFBfQ09OVFJPTExFUhD9////BxISCgpPRlBQX0xPQ0FMEP7///8HEhAKCE9GUFBfQU5ZEP////8HKsgFCghvZnBfdHlwZRIOCgpPRlBUX0hFTExPEAASDgoKT0ZQVF9FUlJPUhABEhUKEU9GUFRfRUNIT19SRVFVRVNUEAISEwoPT0ZQVF9FQ0hPX1JFUExZEAMSFQoRT0ZQVF9FWFBFUklNRU5URVIQBBIZChVPRlBUX0ZFQVRVUkVTX1JFUVVFU1QQBRIXChNPRlBUX0ZFQVRVUkVTX1JFUExZEAYSGwoXT0ZQVF9HRVRfQ09ORklHX1JFUVVFU1QQBxIZChVPRlBUX0dFVF9DT05GSUdfUkVQTFkQCBITCg9PRlBUX1NFVF9DT05GSUcQCRISCg5PRlBUX1BBQ0tFVF9JThAKEhUKEU9GUFRfRkxPV19SRU1PVkVEEAsSFAoQT0ZQVF9QT1JUX1NUQVRVUxAMEhMKD09GUFRfUEFDS0VUX09VVBANEhEKDU9GUFRfRkxPV19NT0QQDhISCg5PRlBUX0dST1VQX01PRBAPEhEKDU9GUFRfUE9SVF9NT0QQEBISCg5PRlBUX1RBQkxFX01PRBAREhoKFk9GUFRfTVVMVElQQVJUX1JFUVVFU1QQEhIYChRPRlBUX01VTFRJUEFSVF9SRVBMWRATEhgKFE9GUFRfQkFSUklFUl9SRVFVRVNUEBQSFgoST0ZQVF9CQVJSSUVSX1JFUExZEBUSIQodT0ZQVF9RVUVVRV9HRVRfQ09ORklHX1JFUVVFU1QQFhIfChtPRlBUX1FVRVVFX0dFVF9DT05GSUdfUkVQTFkQFxIVChFPRlBUX1JPTEVfUkVRVUVTVBAYEhMKD09GUFRfUk9MRV9SRVBMWRAZEhoKFk9GUFRfR0VUX0FTWU5DX1JFUVVFU1QQGhIYChRPRlBUX0dFVF9BU1lOQ19SRVBMWRAbEhIKDk9GUFRfU0VUX0FTWU5DEBwSEgoOT0ZQVF9NRVRFUl9NT0QQHSpDChNvZnBfaGVsbG9fZWxlbV90eXBlEhIKDk9GUEhFVF9JTlZBTElEEAASGAoUT0ZQSEVUX1ZFUlNJT05CSVRNQVAQASplChBvZnBfY29uZmlnX2ZsYWdzEhQKEE9GUENfRlJBR19OT1JNQUwQABISCg5PRlBDX0ZSQUdfRFJPUBABEhMKD09GUENfRlJBR19SRUFTTRACEhIKDk9GUENfRlJBR19NQVNLEAMqQAoQb2ZwX3RhYmxlX2NvbmZpZxIRCg1PRlBUQ19JTlZBTElEEAASGQoVT0ZQVENfREVQUkVDQVRFRF9NQVNLEAMqPgoJb2ZwX3RhYmxlEhEKDU9GUFRUX0lOVkFMSUQQABIOCglPRlBUVF9NQVgQ/gESDgoJT0ZQVFRfQUxMEP8BKrsBChBvZnBfY2FwYWJpbGl0aWVzEhAKDE9GUENfSU5WQUxJRBAAEhMKD09GUENfRkxPV19TVEFUUxABEhQKEE9GUENfVEFCTEVfU1RBVFMQAhITCg9PRlBDX1BPUlRfU1RBVFMQBBIUChBPRlBDX0dST1VQX1NUQVRTEAgSEQoNT0ZQQ19JUF9SRUFTTRAgEhQKEE9GUENfUVVFVUVfU1RBVFMQQBIWChFPRlBDX1BPUlRfQkxPQ0tFRBCAAip2Cg9vZnBfcG9ydF9jb25maWcSEQoNT0ZQUENfSU5WQUxJRBAAEhMKD09GUFBDX1BPUlRfRE9XThABEhEKDU9GUFBDX05PX1JFQ1YQBBIQCgxPRlBQQ19OT19GV0QQIBIWChJPRlBQQ19OT19QQUNLRVRfSU4QQCpbCg5vZnBfcG9ydF9zdGF0ZRIRCg1PRlBQU19JTlZBTElEEAASEwoPT0ZQUFNfTElOS19ET1dOEAESEQoNT0ZQUFNfQkxPQ0tFRBACEg4KCk9GUFBTX0xJVkUQBCrdAgoRb2ZwX3BvcnRfZmVhdHVyZXMSEQoNT0ZQUEZfSU5WQUxJRBAAEhEKDU9GUFBGXzEwTUJfSEQQARIRCg1PRlBQRl8xME1CX0ZEEAISEgoOT0ZQUEZfMTAwTUJfSEQQBBISCg5PRlBQRl8xMDBNQl9GRBAIEhAKDE9GUFBGXzFHQl9IRBAQEhAKDE9GUFBGXzFHQl9GRBAgEhEKDU9GUFBGXzEwR0JfRkQQQBISCg1PRlBQRl80MEdCX0ZEEIABEhMKDk9GUFBGXzEwMEdCX0ZEEIACEhEKDE9GUFBGXzFUQl9GRBCABBIQCgtPRlBQRl9PVEhFUhCACBIRCgxPRlBQRl9DT1BQRVIQgBASEAoLT0ZQUEZfRklCRVIQgCASEgoNT0ZQUEZfQVVUT05FRxCAQBIRCgtPRlBQRl9QQVVTRRCAgAESFgoQT0ZQUEZfUEFVU0VfQVNZTRCAgAIqRAoPb2ZwX3BvcnRfcmVhc29uEg0KCU9GUFBSX0FERBAAEhAKDE9GUFBSX0RFTEVURRABEhAKDE9GUFBSX01PRElGWRACKjMKDm9mcF9tYXRjaF90eXBlEhIKDk9GUE1UX1NUQU5EQVJEEAASDQoJT0ZQTVRfT1hNEAEqawoNb2ZwX294bV9jbGFzcxIQCgxPRlBYTUNfTlhNXzAQABIQCgxPRlBYTUNfTlhNXzEQARIbChVPRlBYTUNfT1BFTkZMT1dfQkFTSUMQgIACEhkKE09GUFhNQ19FWFBFUklNRU5URVIQ//8DKpAIChNveG1fb2ZiX2ZpZWxkX3R5cGVzEhYKEk9GUFhNVF9PRkJfSU5fUE9SVBAAEhoKFk9GUFhNVF9PRkJfSU5fUEhZX1BPUlQQARIXChNPRlBYTVRfT0ZCX01FVEFEQVRBEAISFgoST0ZQWE1UX09GQl9FVEhfRFNUEAMSFgoST0ZQWE1UX09GQl9FVEhfU1JDEAQSFwoTT0ZQWE1UX09GQl9FVEhfVFlQRRAFEhcKE09GUFhNVF9PRkJfVkxBTl9WSUQQBhIXChNPRlBYTVRfT0ZCX1ZMQU5fUENQEAcSFgoST0ZQWE1UX09GQl9JUF9EU0NQEAgSFQoRT0ZQWE1UX09GQl9JUF9FQ04QCRIXChNPRlBYTVRfT0ZCX0lQX1BST1RPEAoSFwoTT0ZQWE1UX09GQl9JUFY0X1NSQxALEhcKE09GUFhNVF9PRkJfSVBWNF9EU1QQDBIWChJPRlBYTVRfT0ZCX1RDUF9TUkMQDRIWChJPRlBYTVRfT0ZCX1RDUF9EU1QQDhIWChJPRlBYTVRfT0ZCX1VEUF9TUkMQDxIWChJPRlBYTVRfT0ZCX1VEUF9EU1QQEBIXChNPRlBYTVRfT0ZCX1NDVFBfU1JDEBESFwoTT0ZQWE1UX09GQl9TQ1RQX0RTVBASEhoKFk9GUFhNVF9PRkJfSUNNUFY0X1RZUEUQExIaChZPRlBYTVRfT0ZCX0lDTVBWNF9DT0RFEBQSFQoRT0ZQWE1UX09GQl9BUlBfT1AQFRIWChJPRlBYTVRfT0ZCX0FSUF9TUEEQFhIWChJPRlBYTVRfT0ZCX0FSUF9UUEEQFxIWChJPRlBYTVRfT0ZCX0FSUF9TSEEQGBIWChJPRlBYTVRfT0ZCX0FSUF9USEEQGRIXChNPRlBYTVRfT0ZCX0lQVjZfU1JDEBoSFwoTT0ZQWE1UX09GQl9JUFY2X0RTVBAbEhoKFk9GUFhNVF9PRkJfSVBWNl9GTEFCRUwQHBIaChZPRlBYTVRfT0ZCX0lDTVBWNl9UWVBFEB0SGgoWT0ZQWE1UX09GQl9JQ01QVjZfQ09ERRAeEh0KGU9GUFhNVF9PRkJfSVBWNl9ORF9UQVJHRVQQHxIaChZPRlBYTVRfT0ZCX0lQVjZfTkRfU0xMECASGgoWT0ZQWE1UX09GQl9JUFY2X05EX1RMTBAhEhkKFU9GUFhNVF9PRkJfTVBMU19MQUJFTBAiEhYKEk9GUFhNVF9PRkJfTVBMU19UQxAjEhcKE09GUFhNVF9PRkJfTVBMU19CT1MQJBIXChNPRlBYTVRfT0ZCX1BCQl9JU0lEECUSGAoUT0ZQWE1UX09GQl9UVU5ORUxfSUQQJhIaChZPRlBYTVRfT0ZCX0lQVjZfRVhUSERSECcqMwoLb2ZwX3ZsYW5faWQSDwoLT0ZQVklEX05PTkUQABITCg5PRlBWSURfUFJFU0VOVBCAICrJAQoUb2ZwX2lwdjZleHRoZHJfZmxhZ3MSEgoOT0ZQSUVIX0lOVkFMSUQQABIRCg1PRlBJRUhfTk9ORVhUEAESDgoKT0ZQSUVIX0VTUBACEg8KC09GUElFSF9BVVRIEAQSDwoLT0ZQSUVIX0RFU1QQCBIPCgtPRlBJRUhfRlJBRxAQEhEKDU9GUElFSF9ST1VURVIQIBIOCgpPRlBJRUhfSE9QEEASEQoMT0ZQSUVIX1VOUkVQEIABEhEKDE9GUElFSF9VTlNFURCAAir8AgoPb2ZwX2FjdGlvbl90eXBlEhAKDE9GUEFUX09VVFBVVBAAEhYKEk9GUEFUX0NPUFlfVFRMX09VVBALEhUKEU9GUEFUX0NPUFlfVFRMX0lOEAwSFgoST0ZQQVRfU0VUX01QTFNfVFRMEA8SFgoST0ZQQVRfREVDX01QTFNfVFRMEBASEwoPT0ZQQVRfUFVTSF9WTEFOEBESEgoOT0ZQQVRfUE9QX1ZMQU4QEhITCg9PRlBBVF9QVVNIX01QTFMQExISCg5PRlBBVF9QT1BfTVBMUxAUEhMKD09GUEFUX1NFVF9RVUVVRRAVEg8KC09GUEFUX0dST1VQEBYSFAoQT0ZQQVRfU0VUX05XX1RUTBAXEhQKEE9GUEFUX0RFQ19OV19UVEwQGBITCg9PRlBBVF9TRVRfRklFTEQQGRISCg5PRlBBVF9QVVNIX1BCQhAaEhEKDU9GUEFUX1BPUF9QQkIQGxIYChJPRlBBVF9FWFBFUklNRU5URVIQ//8DKlYKFm9mcF9jb250cm9sbGVyX21heF9sZW4SEgoOT0ZQQ01MX0lOVkFMSUQQABIQCgpPRlBDTUxfTUFYEOX/AxIWChBPRlBDTUxfTk9fQlVGRkVSEP//AyrPAQoUb2ZwX2luc3RydWN0aW9uX3R5cGUSEQoNT0ZQSVRfSU5WQUxJRBAAEhQKEE9GUElUX0dPVE9fVEFCTEUQARIYChRPRlBJVF9XUklURV9NRVRBREFUQRACEhcKE09GUElUX1dSSVRFX0FDVElPTlMQAxIXChNPRlBJVF9BUFBMWV9BQ1RJT05TEAQSFwoTT0ZQSVRfQ0xFQVJfQUNUSU9OUxAFEg8KC09GUElUX01FVEVSEAYSGAoST0ZQSVRfRVhQRVJJTUVOVEVSEP//Ayp7ChRvZnBfZmxvd19tb2RfY29tbWFuZBINCglPRlBGQ19BREQQABIQCgxPRlBGQ19NT0RJRlkQARIXChNPRlBGQ19NT0RJRllfU1RSSUNUEAISEAoMT0ZQRkNfREVMRVRFEAMSFwoTT0ZQRkNfREVMRVRFX1NUUklDVBAEKqMBChJvZnBfZmxvd19tb2RfZmxhZ3MSEQoNT0ZQRkZfSU5WQUxJRBAAEhcKE09GUEZGX1NFTkRfRkxPV19SRU0QARIXChNPRlBGRl9DSEVDS19PVkVSTEFQEAISFgoST0ZQRkZfUkVTRVRfQ09VTlRTEAQSFwoTT0ZQRkZfTk9fUEtUX0NPVU5UUxAIEhcKE09GUEZGX05PX0JZVF9DT1VOVFMQECpTCglvZnBfZ3JvdXASEAoMT0ZQR19JTlZBTElEEAASEAoIT0ZQR19NQVgQgP7//wcSEAoIT0ZQR19BTEwQ/P///wcSEAoIT0ZQR19BTlkQ/////wcqSgoVb2ZwX2dyb3VwX21vZF9jb21tYW5kEg0KCU9GUEdDX0FERBAAEhAKDE9GUEdDX01PRElGWRABEhAKDE9GUEdDX0RFTEVURRACKlMKDm9mcF9ncm91cF90eXBlEg0KCU9GUEdUX0FMTBAAEhAKDE9GUEdUX1NFTEVDVBABEhIKDk9GUEdUX0lORElSRUNUEAISDAoIT0ZQR1RfRkYQAypQChRvZnBfcGFja2V0X2luX3JlYXNvbhIRCg1PRlBSX05PX01BVENIEAASDwoLT0ZQUl9BQ1RJT04QARIUChBPRlBSX0lOVkFMSURfVFRMEAIqiwEKF29mcF9mbG93X3JlbW92ZWRfcmVhc29uEhYKEk9GUFJSX0lETEVfVElNRU9VVBAAEhYKEk9GUFJSX0hBUkRfVElNRU9VVBABEhAKDE9GUFJSX0RFTEVURRACEhYKEk9GUFJSX0dST1VQX0RFTEVURRADEhYKEk9GUFJSX01FVEVSX0RFTEVURRAEKm4KCW9mcF9tZXRlchINCglPRlBNX1pFUk8QABIQCghPRlBNX01BWBCAgPz/BxIVCg1PRlBNX1NMT1dQQVRIEP3///8HEhcKD09GUE1fQ09OVFJPTExFUhD+////BxIQCghPRlBNX0FMTBD/////ByptChNvZnBfbWV0ZXJfYmFuZF90eXBlEhIKDk9GUE1CVF9JTlZBTElEEAASDwoLT0ZQTUJUX0RST1AQARIWChJPRlBNQlRfRFNDUF9SRU1BUksQAhIZChNPRlBNQlRfRVhQRVJJTUVOVEVSEP//AypKChVvZnBfbWV0ZXJfbW9kX2NvbW1hbmQSDQoJT0ZQTUNfQUREEAASEAoMT0ZQTUNfTU9ESUZZEAESEAoMT0ZQTUNfREVMRVRFEAIqZwoPb2ZwX21ldGVyX2ZsYWdzEhEKDU9GUE1GX0lOVkFMSUQQABIOCgpPRlBNRl9LQlBTEAESDwoLT0ZQTUZfUEtUUFMQAhIPCgtPRlBNRl9CVVJTVBAEEg8KC09GUE1GX1NUQVRTEAgqpAMKDm9mcF9lcnJvcl90eXBlEhYKEk9GUEVUX0hFTExPX0ZBSUxFRBAAEhUKEU9GUEVUX0JBRF9SRVFVRVNUEAESFAoQT0ZQRVRfQkFEX0FDVElPThACEhkKFU9GUEVUX0JBRF9JTlNUUlVDVElPThADEhMKD09GUEVUX0JBRF9NQVRDSBAEEhkKFU9GUEVUX0ZMT1dfTU9EX0ZBSUxFRBAFEhoKFk9GUEVUX0dST1VQX01PRF9GQUlMRUQQBhIZChVPRlBFVF9QT1JUX01PRF9GQUlMRUQQBxIaChZPRlBFVF9UQUJMRV9NT0RfRkFJTEVEEAgSGQoVT0ZQRVRfUVVFVUVfT1BfRkFJTEVEEAkSHgoaT0ZQRVRfU1dJVENIX0NPTkZJR19GQUlMRUQQChIdChlPRlBFVF9ST0xFX1JFUVVFU1RfRkFJTEVEEAsSGgoWT0ZQRVRfTUVURVJfTU9EX0ZBSUxFRBAMEh8KG09GUEVUX1RBQkxFX0ZFQVRVUkVTX0ZBSUxFRBANEhgKEk9GUEVUX0VYUEVSSU1FTlRFUhD//wMqQgoVb2ZwX2hlbGxvX2ZhaWxlZF9jb2RlEhcKE09GUEhGQ19JTkNPTVBBVElCTEUQABIQCgxPRlBIRkNfRVBFUk0QASrtAgoUb2ZwX2JhZF9yZXF1ZXN0X2NvZGUSFgoST0ZQQlJDX0JBRF9WRVJTSU9OEAASEwoPT0ZQQlJDX0JBRF9UWVBFEAESGAoUT0ZQQlJDX0JBRF9NVUxUSVBBUlQQAhIbChdPRlBCUkNfQkFEX0VYUEVSSU1FTlRFUhADEhcKE09GUEJSQ19CQURfRVhQX1RZUEUQBBIQCgxPRlBCUkNfRVBFUk0QBRISCg5PRlBCUkNfQkFEX0xFThAGEhcKE09GUEJSQ19CVUZGRVJfRU1QVFkQBxIZChVPRlBCUkNfQlVGRkVSX1VOS05PV04QCBIXChNPRlBCUkNfQkFEX1RBQkxFX0lEEAkSEwoPT0ZQQlJDX0lTX1NMQVZFEAoSEwoPT0ZQQlJDX0JBRF9QT1JUEAsSFQoRT0ZQQlJDX0JBRF9QQUNLRVQQDBIkCiBPRlBCUkNfTVVMVElQQVJUX0JVRkZFUl9PVkVSRkxPVxANKpwDChNvZnBfYmFkX2FjdGlvbl9jb2RlEhMKD09GUEJBQ19CQURfVFlQRRAAEhIKDk9GUEJBQ19CQURfTEVOEAESGwoXT0ZQQkFDX0JBRF9FWFBFUklNRU5URVIQAhIXChNPRlBCQUNfQkFEX0VYUF9UWVBFEAMSFwoTT0ZQQkFDX0JBRF9PVVRfUE9SVBAEEhcKE09GUEJBQ19CQURfQVJHVU1FTlQQBRIQCgxPRlBCQUNfRVBFUk0QBhITCg9PRlBCQUNfVE9PX01BTlkQBxIUChBPRlBCQUNfQkFEX1FVRVVFEAgSGAoUT0ZQQkFDX0JBRF9PVVRfR1JPVVAQCRIdChlPRlBCQUNfTUFUQ0hfSU5DT05TSVNURU5UEAoSHAoYT0ZQQkFDX1VOU1VQUE9SVEVEX09SREVSEAsSEgoOT0ZQQkFDX0JBRF9UQUcQDBIXChNPRlBCQUNfQkFEX1NFVF9UWVBFEA0SFgoST0ZQQkFDX0JBRF9TRVRfTEVOEA4SGwoXT0ZQQkFDX0JBRF9TRVRfQVJHVU1FTlQQDyr6AQoYb2ZwX2JhZF9pbnN0cnVjdGlvbl9jb2RlEhcKE09GUEJJQ19VTktOT1dOX0lOU1QQABIVChFPRlBCSUNfVU5TVVBfSU5TVBABEhcKE09GUEJJQ19CQURfVEFCTEVfSUQQAhIZChVPRlBCSUNfVU5TVVBfTUVUQURBVEEQAxIeChpPRlBCSUNfVU5TVVBfTUVUQURBVEFfTUFTSxAEEhsKF09GUEJJQ19CQURfRVhQRVJJTUVOVEVSEAUSFwoTT0ZQQklDX0JBRF9FWFBfVFlQRRAGEhIKDk9GUEJJQ19CQURfTEVOEAcSEAoMT0ZQQklDX0VQRVJNEAgqpQIKEm9mcF9iYWRfbWF0Y2hfY29kZRITCg9PRlBCTUNfQkFEX1RZUEUQABISCg5PRlBCTUNfQkFEX0xFThABEhIKDk9GUEJNQ19CQURfVEFHEAISGwoXT0ZQQk1DX0JBRF9ETF9BRERSX01BU0sQAxIbChdPRlBCTUNfQkFEX05XX0FERFJfTUFTSxAEEhgKFE9GUEJNQ19CQURfV0lMRENBUkRTEAUSFAoQT0ZQQk1DX0JBRF9GSUVMRBAGEhQKEE9GUEJNQ19CQURfVkFMVUUQBxITCg9PRlBCTUNfQkFEX01BU0sQCBIVChFPRlBCTUNfQkFEX1BSRVJFURAJEhQKEE9GUEJNQ19EVVBfRklFTEQQChIQCgxPRlBCTUNfRVBFUk0QCyrSAQoYb2ZwX2Zsb3dfbW9kX2ZhaWxlZF9jb2RlEhMKD09GUEZNRkNfVU5LTk9XThAAEhYKEk9GUEZNRkNfVEFCTEVfRlVMTBABEhgKFE9GUEZNRkNfQkFEX1RBQkxFX0lEEAISEwoPT0ZQRk1GQ19PVkVSTEFQEAMSEQoNT0ZQRk1GQ19FUEVSTRAEEhcKE09GUEZNRkNfQkFEX1RJTUVPVVQQBRIXChNPRlBGTUZDX0JBRF9DT01NQU5EEAYSFQoRT0ZQRk1GQ19CQURfRkxBR1MQByqhAwoZb2ZwX2dyb3VwX21vZF9mYWlsZWRfY29kZRIYChRPRlBHTUZDX0dST1VQX0VYSVNUUxAAEhkKFU9GUEdNRkNfSU5WQUxJRF9HUk9VUBABEh4KGk9GUEdNRkNfV0VJR0hUX1VOU1VQUE9SVEVEEAISGQoVT0ZQR01GQ19PVVRfT0ZfR1JPVVBTEAMSGgoWT0ZQR01GQ19PVVRfT0ZfQlVDS0VUUxAEEiAKHE9GUEdNRkNfQ0hBSU5JTkdfVU5TVVBQT1JURUQQBRIdChlPRlBHTUZDX1dBVENIX1VOU1VQUE9SVEVEEAYSEAoMT0ZQR01GQ19MT09QEAcSGQoVT0ZQR01GQ19VTktOT1dOX0dST1VQEAgSGQoVT0ZQR01GQ19DSEFJTkVEX0dST1VQEAkSFAoQT0ZQR01GQ19CQURfVFlQRRAKEhcKE09GUEdNRkNfQkFEX0NPTU1BTkQQCxIWChJPRlBHTUZDX0JBRF9CVUNLRVQQDBIVChFPRlBHTUZDX0JBRF9XQVRDSBANEhEKDU9GUEdNRkNfRVBFUk0QDiqPAQoYb2ZwX3BvcnRfbW9kX2ZhaWxlZF9jb2RlEhQKEE9GUFBNRkNfQkFEX1BPUlQQABIXChNPRlBQTUZDX0JBRF9IV19BRERSEAESFgoST0ZQUE1GQ19CQURfQ09ORklHEAISGQoVT0ZQUE1GQ19CQURfQURWRVJUSVNFEAMSEQoNT0ZQUE1GQ19FUEVSTRAEKl0KGW9mcF90YWJsZV9tb2RfZmFpbGVkX2NvZGUSFQoRT0ZQVE1GQ19CQURfVEFCTEUQABIWChJPRlBUTUZDX0JBRF9DT05GSUcQARIRCg1PRlBUTUZDX0VQRVJNEAIqWgoYb2ZwX3F1ZXVlX29wX2ZhaWxlZF9jb2RlEhQKEE9GUFFPRkNfQkFEX1BPUlQQABIVChFPRlBRT0ZDX0JBRF9RVUVVRRABEhEKDU9GUFFPRkNfRVBFUk0QAipeCh1vZnBfc3dpdGNoX2NvbmZpZ19mYWlsZWRfY29kZRIVChFPRlBTQ0ZDX0JBRF9GTEFHUxAAEhMKD09GUFNDRkNfQkFEX0xFThABEhEKDU9GUFNDRkNfRVBFUk0QAipaChxvZnBfcm9sZV9yZXF1ZXN0X2ZhaWxlZF9jb2RlEhEKDU9GUFJSRkNfU1RBTEUQABIRCg1PRlBSUkZDX1VOU1VQEAESFAoQT0ZQUlJGQ19CQURfUk9MRRACKsQCChlvZnBfbWV0ZXJfbW9kX2ZhaWxlZF9jb2RlEhMKD09GUE1NRkNfVU5LTk9XThAAEhgKFE9GUE1NRkNfTUVURVJfRVhJU1RTEAESGQoVT0ZQTU1GQ19JTlZBTElEX01FVEVSEAISGQoVT0ZQTU1GQ19VTktOT1dOX01FVEVSEAMSFwoTT0ZQTU1GQ19CQURfQ09NTUFORBAEEhUKEU9GUE1NRkNfQkFEX0ZMQUdTEAUSFAoQT0ZQTU1GQ19CQURfUkFURRAGEhUKEU9GUE1NRkNfQkFEX0JVUlNUEAcSFAoQT0ZQTU1GQ19CQURfQkFORBAIEhoKFk9GUE1NRkNfQkFEX0JBTkRfVkFMVUUQCRIZChVPRlBNTUZDX09VVF9PRl9NRVRFUlMQChIYChRPRlBNTUZDX09VVF9PRl9CQU5EUxALKqkBCh5vZnBfdGFibGVfZmVhdHVyZXNfZmFpbGVkX2NvZGUSFQoRT0ZQVEZGQ19CQURfVEFCTEUQABIYChRPRlBURkZDX0JBRF9NRVRBREFUQRABEhQKEE9GUFRGRkNfQkFEX1RZUEUQAhITCg9PRlBURkZDX0JBRF9MRU4QAxIYChRPRlBURkZDX0JBRF9BUkdVTUVOVBAEEhEKDU9GUFRGRkNfRVBFUk0QBSrOAgoSb2ZwX211bHRpcGFydF90eXBlEg4KCk9GUE1QX0RFU0MQABIOCgpPRlBNUF9GTE9XEAESEwoPT0ZQTVBfQUdHUkVHQVRFEAISDwoLT0ZQTVBfVEFCTEUQAxIUChBPRlBNUF9QT1JUX1NUQVRTEAQSDwoLT0ZQTVBfUVVFVUUQBRIPCgtPRlBNUF9HUk9VUBAGEhQKEE9GUE1QX0dST1VQX0RFU0MQBxIYChRPRlBNUF9HUk9VUF9GRUFUVVJFUxAIEg8KC09GUE1QX01FVEVSEAkSFgoST0ZQTVBfTUVURVJfQ09ORklHEAoSGAoUT0ZQTVBfTUVURVJfRkVBVFVSRVMQCxIYChRPRlBNUF9UQUJMRV9GRUFUVVJFUxAMEhMKD09GUE1QX1BPUlRfREVTQxANEhgKEk9GUE1QX0VYUEVSSU1FTlRFUhD//wMqSgobb2ZwX211bHRpcGFydF9yZXF1ZXN0X2ZsYWdzEhYKEk9GUE1QRl9SRVFfSU5WQUxJRBAAEhMKD09GUE1QRl9SRVFfTU9SRRABKkwKGW9mcF9tdWx0aXBhcnRfcmVwbHlfZmxhZ3MSGAoUT0ZQTVBGX1JFUExZX0lOVkFMSUQQABIVChFPRlBNUEZfUkVQTFlfTU9SRRABKuQDChtvZnBfdGFibGVfZmVhdHVyZV9wcm9wX3R5cGUSGAoUT0ZQVEZQVF9JTlNUUlVDVElPTlMQABIdChlPRlBURlBUX0lOU1RSVUNUSU9OU19NSVNTEAESFwoTT0ZQVEZQVF9ORVhUX1RBQkxFUxACEhwKGE9GUFRGUFRfTkVYVF9UQUJMRVNfTUlTUxADEhkKFU9GUFRGUFRfV1JJVEVfQUNUSU9OUxAEEh4KGk9GUFRGUFRfV1JJVEVfQUNUSU9OU19NSVNTEAUSGQoVT0ZQVEZQVF9BUFBMWV9BQ1RJT05TEAYSHgoaT0ZQVEZQVF9BUFBMWV9BQ1RJT05TX01JU1MQBxIRCg1PRlBURlBUX01BVENIEAgSFQoRT0ZQVEZQVF9XSUxEQ0FSRFMQChIaChZPRlBURlBUX1dSSVRFX1NFVEZJRUxEEAwSHwobT0ZQVEZQVF9XUklURV9TRVRGSUVMRF9NSVNTEA0SGgoWT0ZQVEZQVF9BUFBMWV9TRVRGSUVMRBAOEh8KG09GUFRGUFRfQVBQTFlfU0VURklFTERfTUlTUxAPEhoKFE9GUFRGUFRfRVhQRVJJTUVOVEVSEP7/AxIfChlPRlBURlBUX0VYUEVSSU1FTlRFUl9NSVNTEP//AyqTAQoWb2ZwX2dyb3VwX2NhcGFiaWxpdGllcxISCg5PRlBHRkNfSU5WQUxJRBAAEhgKFE9GUEdGQ19TRUxFQ1RfV0VJR0hUEAESGgoWT0ZQR0ZDX1NFTEVDVF9MSVZFTkVTUxACEhMKD09GUEdGQ19DSEFJTklORxAEEhoKFk9GUEdGQ19DSEFJTklOR19DSEVDS1MQCCprChRvZnBfcXVldWVfcHJvcGVydGllcxIRCg1PRlBRVF9JTlZBTElEEAASEgoOT0ZQUVRfTUlOX1JBVEUQARISCg5PRlBRVF9NQVhfUkFURRACEhgKEk9GUFFUX0VYUEVSSU1FTlRFUhD//wMqcQoTb2ZwX2NvbnRyb2xsZXJfcm9sZRIXChNPRlBDUl9ST0xFX05PQ0hBTkdFEAASFAoQT0ZQQ1JfUk9MRV9FUVVBTBABEhUKEU9GUENSX1JPTEVfTUFTVEVSEAISFAoQT0ZQQ1JfUk9MRV9TTEFWRRADQjJaMGdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy9nby9vcGVuZmxvd18xM0qRsAYKBxIFOQD/EQEK5BQKAQwSAzkAEhr5BgogVGhpcyBpcyBhIHJlbGF0aXZlbHkgc3RyYWlnaHRmb3J3YXJkIHJlbmRlcmluZyBvZiBPcGVuRmxvdyBtZXNzYWdlCiBkZWZpbml0aW9ucyBpbnRvIHByb3RvY29sIGJ1ZmZlciBtZXNzYWdlcy4gV2UgcHJlc2VydmVkIHRoZSBzbmFrZQogY2FzZSBzeW50YXgsIGFuZCBtYWRlIHRoZSBmb2xsb3dpbmcgY2hhbmdlczoKIC0gYWxsIHBhZCBmaWVsZHMgZHJvcHBlZAogLSBmb3IgZWFjaCBlbnVtIHZhbHVlIGFib3ZlIDB4N2ZmZmZmZmYgdGhlIE1TQiBpcyBkcm9wcGVkLiBGb3IgZXhhbXBsZSwKICAgMHhmZmZmZmZmZiBpcyBub3cgMHg3ZmZmZmZmZi4KIC0gJzx0eXBlPiB0aGluZ1suLi5dJyBpcyByZXBsYWNlZCB3aXRoICdyZXBlYXRlZCA8dHlwZT4gdGhpbmcnCiAtICdjaGFyIHRoaW5nWy4uLl0nIGlzIHJlcGxhY2VkIHdpdGggJ3N0cmluZyB0aGluZycKIC0gJ3VpbnQ4X3QgZGF0YVsuLi5dJyBpcyByZXBsYWNlZCB3aXRoICdieXRlcyBkYXRhJwogLSB0aGUgZm9sbG93aW5nIHN5c3RlbWF0aWMgY2hhbmdlcyBhcmUgZG9uZSB0byB2YXJpb3VzIGludGVnZXIgdHlwZXM6CiAgIHVpbnQ4X3QgIC0+IHVpbnQzMgogICB1aW50MTZfdCAtPiB1aW50MzIKICAgdWludDMyX3QgLT4gdWludDMyCiAgIHVpbnQ2NF90IC0+IHVpbnQ2NAogLSByZW1vdmVkIG1vc3QgbGVuZ3RoLCBsZW4sIHNpemUgZmllbGRzIHdoZXJlIHRoZXNlIHZhbHVlcyBjYW4gYmUgZGV0ZXJtaW5lZAogICBmcm9tIHRoZSBleHBsaWNpdGx5IGVuY29kZWQgbGVuZ3RoIG9mICJyZXBlYXRlZCIgcHJvdG9idWYgZmllbGRzLgogLSBleHBsaWNpdCB1c2Ugb2YgZW51bSB0eXBlcyB3aGVyZWV2ZXIgaXQgaXMgdW5hbWJpZ291cyAoYW5kIG5vdCB1c2VkIGFzCiAgIGJpdG1hc2svZmxhZ3MgdmFsdWUuCgoypg0gQ29weXJpZ2h0IChjKSAyMDA4IFRoZSBCb2FyZCBvZiBUcnVzdGVlcyBvZiBUaGUgTGVsYW5kIFN0YW5mb3JkCiBKdW5pb3IgVW5pdmVyc2l0eQogQ29weXJpZ2h0IChjKSAyMDExLCAyMDEyIE9wZW4gTmV0d29ya2luZyBGb3VuZGF0aW9uCgogV2UgYXJlIG1ha2luZyB0aGUgT3BlbkZsb3cgc3BlY2lmaWNhdGlvbiBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uCiAoU29mdHdhcmUpIGF2YWlsYWJsZSBmb3IgcHVibGljIHVzZSBhbmQgYmVuZWZpdCB3aXRoIHRoZSBleHBlY3RhdGlvbgogdGhhdCBvdGhlcnMgd2lsbCB1c2UsIG1vZGlmeSBhbmQgZW5oYW5jZSB0aGUgU29mdHdhcmUgYW5kIGNvbnRyaWJ1dGUKIHRob3NlIGVuaGFuY2VtZW50cyBiYWNrIHRvIHRoZSBjb21tdW5pdHkuIEhvd2V2ZXIsIHNpbmNlIHdlIHdvdWxkCiBsaWtlIHRvIG1ha2UgdGhlIFNvZnR3YXJlIGF2YWlsYWJsZSBmb3IgYnJvYWRlc3QgdXNlLCB3aXRoIGFzIGZldwogcmVzdHJpY3Rpb25zIGFzIHBvc3NpYmxlIHBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YKIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMgU29mdHdhcmUgdG8gZGVhbCBpbgogdGhlIFNvZnR3YXJlIHVuZGVyIHRoZSBjb3B5cmlnaHRzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvCiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKCiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZQogaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCgogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5ECiBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUwogQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOCiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogU09GVFdBUkUuCgogVGhlIG5hbWUgYW5kIHRyYWRlbWFya3Mgb2YgY29weXJpZ2h0IGhvbGRlcihzKSBtYXkgTk9UIGJlIHVzZWQgaW4KIGFkdmVydGlzaW5nIG9yIHB1YmxpY2l0eSBwZXJ0YWluaW5nIHRvIHRoZSBTb2Z0d2FyZSBvciBhbnkKIGRlcml2YXRpdmVzIHdpdGhvdXQgc3BlY2lmaWMsIHdyaXR0ZW4gcHJpb3IgcGVybWlzc2lvbi4KMjUgT3BlbkZsb3c6IHByb3RvY29sIGJldHdlZW4gY29udHJvbGxlciBhbmQgZGF0YXBhdGguIAoICgEIEgM7AEcKCQoCCAsSAzsARwoICgECEgM9ABQKCQoCAwASAz8AJgoJCgIDARIDQAAxCgkKAgoAEgNABw0KpgQKAgUAEgRVAGoBGjUgUG9ydCBudW1iZXJpbmcuIFBvcnRzIGFyZSBudW1iZXJlZCBzdGFydGluZyBmcm9tIDEuIDJjIFZlcnNpb24gbnVtYmVyOgogT3BlbkZsb3cgdmVyc2lvbnMgcmVsZWFzZWQ6IDB4MDEgPSAxLjAgOyAweDAyID0gMS4xIDsgMHgwMyA9IDEuMgogICAgIDB4MDQgPSAxLjMKMlUgVGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0IGluIHRoZSB2ZXJzaW9uIGZpZWxkIGlzIHJlc2VydmVkIGFuZCBtdXN0CiBiZSBzZXQgdG8gemVyby4KMnojZGVmaW5lIE9GUF9WRVJTSU9OICAgMHgwNAojZGVmaW5lIFBJUEVMSU5FX1RBQkxFUyA2NAojZGVm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AgIFEgTpAwgOCg0KBQQMAgIBEgTpAw8TCg0KBQQMAgIDEgTpAxYXCrcHCgQEDAIDEgSABAghGksjZGVmaW5lIE9YTV9PRl9JTl9QSFlfUE9SVCBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lOX1BIWV9QT1JULCA0KQoiICBVc2VkIGZvciBPRlBYTVRfT0ZfSU5fUEhZX1BPUlQgMrkGIFBoeXNpY2FsIHBvcnQgb24gd2hpY2ggdGhlIHBhY2tldCB3YXMgcmVjZWl2ZWQuCgogQ29uc2lkZXIgYSBwYWNrZXQgcmVjZWl2ZWQgb24gYSB0dW5uZWwgaW50ZXJmYWNlIGRlZmluZWQgb3ZlciBhIGxpbmsKIGFnZ3JlZ2F0aW9uIGdyb3VwIChMQUcpIHdpdGggdHdvIHBoeXNpY2FsIHBvcnQgbWVtYmVycy4gIElmIHRoZSB0dW5uZWwKIGludGVyZmFjZSBpcyB0aGUgbG9naWNhbCBwb3J0IGJvdW5kIHRvIE9wZW5GbG93LiAgSW4gdGhpcyBjYXNlLAogT0ZQWE1UX09GX0lOX1BPUlQgaXMgdGhlIHR1bm5lbCdzIHBvcnQgbnVtYmVyIGFuZCBPRlBYTVRfT0ZfSU5fUEhZX1BPUlQgaXMKIHRoZSBwaHlzaWNhbCBwb3J0IG51bWJlciBvZiB0aGUgTEFHIG9uIHdoaWNoIHRoZSB0dW5uZWwgaXMgY29uZmlndXJlZC4KCiBXaGVuIGEgcGFja2V0IGlzIHJlY2VpdmVkIGRpcmVjdGx5IG9uIGEgcGh5c2ljYWwgcG9ydCBhbmQgbm90IHByb2Nlc3NlZCBieSBhCiBsb2dpY2FsIHBvcnQsIE9GUFhNVF9PRl9JTl9QT1JUIGFuZCBPRlBYTVRfT0ZfSU5fUEhZX1BPUlQgaGF2ZSB0aGUgc2FtZQogdmFsdWUuCgogVGhpcyBmaWVsZCBpcyB1c3VhbGx5IG5vdCBhdmFpbGFibGUgaW4gYSByZWd1bGFyIG1hdGNoIGFuZCBvbmx5IGF2YWlsYWJsZQogaW4gb2ZwX3BhY2tldF9pbiBtZXNzYWdlcyB3aGVuIGl0J3MgZGlmZmVyZW50IGZyb20gT1hNX09GX0lOX1BPUlQuCgogUHJlcmVxczogT1hNX09GX0lOX1BPUlQgbXVzdCBiZSBwcmVzZW50LgoKIEZvcm1hdDogMzItYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAgMFEgSABAgOCg0KBQQMAgMBEgSABA8cCg0KBQQMAgMDEgSABB8gCq0CCgQEDAIEEgSMBAgiGo4BI2RlZmluZSBPWE1fT0ZfTUVUQURBVEEgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX01FVEFEQVRBLCA4KQojZGVmaW5lIE9YTV9PRl9NRVRBREFUQV9XIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfTUVUQURBVEEsIDgpCiIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfTUVUQURBVEEgMm4gVGFibGUgbWV0YWRhdGEuCgogUHJlcmVxczogTm9uZS4KCiBGb3JtYXQ6IDY0LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuCgoNCgUEDAIEBRIEjAQIDgoNCgUEDAIEARIEjAQPHQoNCgUEDAIEAxIEjAQgIQriAwoEBAwCBRIEmQQIGhqYAiNkZWZpbmUgT1hNX09GX0VUSF9EU1QgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9FVEhfRFNULCA2KQojZGVmaW5lIE9YTV9PRl9FVEhfRFNUX1cgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfRVRIX0RTVCwgNikKI2RlZmluZSBPWE1fT0ZfRVRIX1NSQyAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0VUSF9TUkMsIDYpCiNkZWZpbmUgT1hNX09GX0VUSF9TUkNfVyAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9FVEhfU1JDLCA2KQoiLyBVc2VkIGZvciBPRlBYTVRfT0ZCX0VUSF9EU1QgKGV4YWN0bHkgNiBieXRlcykgMocBIFNvdXJjZSBvciBkZXN0aW5hdGlvbiBhZGRyZXNzIGluIEV0aGVybmV0IGhlYWRlci4KCiBQcmVyZXFzOiBOb25lLgoKIEZvcm1hdDogNDgtYml0IEV0aGVybmV0IE1BQyBhZGRyZXNzLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4gCg0KBQQMAgUFEgSZBAgNCg0KBQQMAgUBEgSZBA4VCg0KBQQMAgUDEgSZBBgZCj0KBAQMAgYSBJoECBoiLyBVc2VkIGZvciBPRlBYTVRfT0ZCX0VUSF9TUkMgKGV4YWN0bHkgNiBieXRlcykgCg0KBQQMAgYFEgSaBAgNCg0KBQQMAgYBEgSaBA4VCg0KBQQMAgYDEgSaBBgZCukBCgQEDAIHEgSkBAgcGkYjZGVmaW5lIE9YTV9PRl9FVEhfVFlQRSAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfRVRIX1RZUEUsMikKIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9FVEhfVFlQRSAycyBQYWNrZXQncyBFdGhlcm5ldCB0eXBlLgoKIFByZXJlcXM6IE5vbmUuCgogRm9ybWF0OiAxNi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCBwUSBKQECA4KDQoFBAwCBwESBKQEDxcKDQoFBAwCBwMSBKQEGhsKgwsKBAQMAggSBMoECBwajgEjZGVmaW5lIE9YTV9PRl9WTEFOX1ZJRCAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfVkxBTl9WSUQsIDIpCiNkZWZpbmUgT1hNX09GX1ZMQU5fVklEX1cgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9WTEFOX1ZJRCwgMikKIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9WTEFOX1ZJRCAywwkgODAyLjFRIFZJRC4KCiBGb3IgYSBwYWNrZXQgd2l0aCBhbiA4MDIuMVEgaGVhZGVyLCB0aGlzIGlzIHRoZSBWTEFOLUlEIChWSUQpIGZyb20gdGhlCiBvdXRlcm1vc3QgdGFnLCB3aXRoIHRoZSBDRkkgYml0IGZvcmNlZCB0byAxLiBGb3IgYSBwYWNrZXQgd2l0aCBubyA4MDIuMVEKIGhlYWRlciwgdGhpcyBoYXMgdmFsdWUgT0ZQVklEX05PTkUuCgogUHJlcmVxczogTm9uZS4KCiBGb3JtYXQ6IDE2LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlciB3aXRoIGJpdCAxMyBpbmRpY2F0aW5nCiBwcmVzZW5jZSBvZiBWTEFOIGhlYWRlciBhbmQgMyBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlciAxMyBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuCgogVGhpcyBmaWVsZCBjYW4gYmUgdXNlZCBpbiB2YXJpb3VzIHdheXM6CgogICAtIElmIGl0IGlzIG5vdCBjb25zdHJhaW5lZCBhdCBhbGwsIHRoZSBueF9tYXRjaCBtYXRjaGVzIHBhY2tldHMgd2l0aG91dAogICAgIGFuIDgwMi4xUSBoZWFkZXIgb3Igd2l0aCBhbiA4MDIuMVEgaGVhZGVyIHRoYXQgaGFzIGFueSBWSUQgdmFsdWUuCgogICAtIFRlc3RpbmcgZm9yIGFuIGV4YWN0IG1hdGNoIHdpdGggMHgwIG1hdGNoZXMgb25seSBwYWNrZXRzIHdpdGhvdXQKICAgICBhbiA4MDIuMVEgaGVhZGVyLgoKICAgLSBUZXN0aW5nIGZvciBhbiBleGFjdCBtYXRjaCB3aXRoIGEgVklEIHZhbHVlIHdpdGggQ0ZJPTEgbWF0Y2hlcyBwYWNrZXRzCiAgICAgdGhhdCBoYXZlIGFuIDgwMi4xUSBoZWFkZXIgd2l0aCBhIHNwZWNpZmllZCBWSUQuCgogICAtIFRlc3RpbmcgZm9yIGFuIGV4YWN0IG1hdGNoIHdpdGggYSBub256ZXJvIFZJRCB2YWx1ZSB3aXRoIENGST0wIGRvZXMKICAgICBub3QgbWFrZSBzZW5zZS4gIFRoZSBzd2l0Y2ggbWF5IHJlamVjdCB0aGlzIGNvbWJpbmF0aW9uLgoKICAgLSBUZXN0aW5nIHdpdGggbnhtX3ZhbHVlPTAsIG54bV9tYXNrPTB4MGZmZiBtYXRjaGVzIHBhY2tldHMgd2l0aCBubyA4MDIuMVEKICAgICBoZWFkZXIgb3Igd2l0aCBhbiA4MDIuMVEgaGVhZGVyIHdpdGggYSBWSUQgb2YgMC4KCiAgIC0gVGVzdGluZyB3aXRoIG54bV92YWx1ZT0weDEwMDAsIG54bV9tYXNrPTB4MTAwMCBtYXRjaGVzIHBhY2tldHMgd2l0aAogICAgIGFuIDgwMi4xUSBoZWFkZXIgdGhhdCBoYXMgYW55IFZJRCB2YWx1ZS4KCg0KBQQMAggFEgTKBAgOCg0KBQQMAggBEgTKBA8XCg0KBQQMAggDEgTKBBobCtADCgQEDAIJEgTaBAgdGkcjZGVmaW5lIE9YTV9PRl9WTEFOX1BDUCAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfVkxBTl9QQ1AsIDEpCiIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfVkxBTl9QQ1AgMtgCIDgwMi4xUSBQQ1AuCgogRm9yIGEgcGFja2V0IHdpdGggYW4gODAyLjFRIGhlYWRlciwgdGhpcyBpcyB0aGUgVkxBTi1QQ1AgZnJvbSB0aGUKIG91dGVybW9zdCB0YWcuICBGb3IgYSBwYWNrZXQgd2l0aCBubyA4MDIuMVEgaGVhZGVyLCB0aGlzIGhhcyB2YWx1ZQogMC4KCiBQcmVyZXFzOiBPWE1fT0ZfVkxBTl9WSUQgbXVzdCBiZSBkaWZmZXJlbnQgZnJvbSBPRlBWSURfTk9ORS4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIgd2l0aCA1IG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VyIDMgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogTm90IG1hc2thYmxlLgoKDQoFBAwCCQUSBNoECA4KDQoFBAwCCQESBNoEDxcKDQoFBAwCCQMSBNoEGhwKqAMKBAQMAgoSBOYECBwaRyNkZWZpbmUgT1hNX09GX0lQX0RTQ1AgICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBfRFNDUCwgMSkKIh0gVXNlZCBmb3IgT0ZQWE1UX09GQl9JUF9EU0NQIDKxAiBUaGUgRGlmZiBTZXJ2IENvZGUgUG9pbnQgKERTQ1ApIGJpdHMgb2YgdGhlIElQIGhlYWRlci4KIFBhcnQgb2YgdGhlIElQdjQgVG9TIGZpZWxkIG9yIHRoZSBJUHY2IFRyYWZmaWMgQ2xhc3MgZmllbGQuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgYmUgZWl0aGVyIDB4MDgwMCBvciAweDg2ZGQuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyIHdpdGggMiBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlciA2IGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAgoFEgTmBAgOCg0KBQQMAgoBEgTmBA8WCg0KBQQMAgoDEgTmBBkbCo0DCgQEDAILEgTyBAgbGkUjZGVmaW5lIE9YTV9PRl9JUF9FQ04gICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBfRUNOLCAxKQoiHCBVc2VkIGZvciBPRlBYTVRfT0ZCX0lQX0VDTiAymQIgVGhlIEVDTiBiaXRzIG9mIHRoZSBJUCBoZWFkZXIuCiBQYXJ0IG9mIHRoZSBJUHY0IFRvUyBmaWVsZCBvciB0aGUgSVB2NiBUcmFmZmljIENsYXNzIGZpZWxkLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IGJlIGVpdGhlciAweDA4MDAgb3IgMHg4NmRkLgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlciB3aXRoIDYgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXIgMiBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAILBRIE8gQIDgoNCgUEDAILARIE8gQPFQoNCgUEDAILAxIE8gQYGgqNAgoEBAwCDBIE/AQIHRpHI2RlZmluZSBPWE1fT0ZfSVBfUFJPVE8gICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQX1BST1RPLCAxKQoiHiBVc2VkIGZvciBPRlBYTVRfT0ZCX0lQX1BST1RPIDKVASBUaGUgInByb3RvY29sIiBieXRlIGluIHRoZSBJUCBoZWFkZXIuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgYmUgZWl0aGVyIDB4MDgwMCBvciAweDg2ZGQuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAgwFEgT8BAgOCg0KBQQMAgwBEgT8BA8XCg0KBQQMAgwDEgT8BBocCo0ECgQEDAINEgSKBQgdGqQCI2RlZmluZSBPWE1fT0ZfSVBWNF9TUkMgICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNF9TUkMsIDQpCiNkZWZpbmUgT1hNX09GX0lQVjRfU1JDX1cgICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjRfU1JDLCA0KQojZGVmaW5lIE9YTV9PRl9JUFY0X0RTVCAgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY0X0RTVCwgNCkKI2RlZmluZSBPWE1fT0ZfSVBWNF9EU1RfVyAgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfSVBWNF9EU1QsIDQpCiIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfSVBWNF9TUkMgMrcBIFRoZSBzb3VyY2Ugb3IgZGVzdGluYXRpb24gYWRkcmVzcyBpbiB0aGUgSVAgaGVhZGVyLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4MDgwMCBleGFjdGx5LgoKIEZvcm1hdDogMzItYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4KCg0KBQQMAg0FEgSKBQgOCg0KBQQMAg0BEgSKBQ8XCg0KBQQMAg0DEgSKBRocCiwKBAQMAg4SBIsFCB0iHiBVc2VkIGZvciBPRlBYTVRfT0ZCX0lQVjRfRFNUIAoNCgUEDAIOBRIEiwUIDgoNCgUEDAIOARIEiwUPFwoNCgUEDAIOAxIEiwUaHAqhAwoEBAwCDxIEmAUIHBqMASNkZWZpbmUgT1hNX09GX1RDUF9TUkMgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9UQ1BfU1JDLCAyKQojZGVmaW5lIE9YTV9PRl9UQ1BfRFNUICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfVENQX0RTVCwgMikKIh0gVXNlZCBmb3IgT0ZQWE1UX09GQl9UQ1BfU1JDIDLkASBUaGUgc291cmNlIG9yIGRlc3RpbmF0aW9uIHBvcnQgaW4gdGhlIFRDUCBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgYmUgZWl0aGVyIDB4MDgwMCBvciAweDg2ZGQuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDYgZXhhY3RseS4KCiBGb3JtYXQ6IDE2LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAIPBRIEmAUIDgoNCgUEDAIPARIEmAUPFgoNCgUEDAIPAxIEmAUZGworCgQEDAIQEgSZBQgcIh0gVXNlZCBmb3IgT0ZQWE1UX09GQl9UQ1BfRFNUIAoNCgUEDAIQBRIEmQUIDgoNCgUEDAIQARIEmQUPFgoNCgUEDAIQAxIEmQUZGwqlAwoEBAwCERIEpgUIHBqMASNkZWZpbmUgT1hNX09GX1VEUF9TUkMgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9VRFBfU1JDLCAyKQojZGVmaW5lIE9YTV9PRl9VRFBfRFNUICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfVURQX0RTVCwgMikKIh0gVXNlZCBmb3IgT0ZQWE1UX09GQl9VRFBfU1JDIDLoASBUaGUgc291cmNlIG9yIGRlc3RpbmF0aW9uIHBvcnQgaW4gdGhlIFVEUCBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggZWl0aGVyIDB4MDgwMCBvciAweDg2ZGQuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDE3IGV4YWN0bHkuCgogRm9ybWF0OiAxNi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCEQUSBKYFCA4KDQoFBAwCEQESBKYFDxYKDQoFBAwCEQMSBKYFGRsKKwoEBAwCEhIEpwUIHCIdIFVzZWQgZm9yIE9GUFhNVF9PRkJfVURQX0RTVCAKDQoFBAwCEgUSBKcFCA4KDQoFBAwCEgESBKcFDxYKDQoFBAwCEgMSBKcFGRsKqgMKBAQMAhMSBLQFCB0ajgEjZGVmaW5lIE9YTV9PRl9TQ1RQX1NSQyAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfU0NUUF9TUkMsIDIpCiNkZWZpbmUgT1hNX09GX1NDVFBfRFNUICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9TQ1RQX0RTVCwgMikKIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9TQ1RQX1NSQyAy6gEgVGhlIHNvdXJjZSBvciBkZXN0aW5hdGlvbiBwb3J0IGluIHRoZSBTQ1RQIGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCBlaXRoZXIgMHgwODAwIG9yIDB4ODZkZC4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggMTMyIGV4YWN0bHkuCgogRm9ybWF0OiAxNi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCEwUSBLQFCA4KDQoFBAwCEwESBLQFDxcKDQoFBAwCEwMSBLQFGhwKLAoEBAwCFBIEtQUIHSIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfU0NUUF9EU1QgCg0KBQQMAhQFEgS1BQgOCg0KBQQMAhQBEgS1BQ8XCg0KBQQMAhQDEgS1BRocCocDCgQEDAIVEgTCBQggGpgBI2RlZmluZSBPWE1fT0ZfSUNNUFY0X1RZUEUgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSUNNUFY0X1RZUEUsIDEpCiNkZWZpbmUgT1hNX09GX0lDTVBWNF9DT0RFICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lDTVBWNF9DT0RFLCAxKQoiISBVc2VkIGZvciBPRlBYTVRfT0ZCX0lDTVBWNF9UWVBFIDK6ASBUaGUgdHlwZSBvciBjb2RlIGluIHRoZSBJQ01QIGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDA4MDAgZXhhY3RseS4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggMSBleGFjdGx5LgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAIVBRIEwgUIDgoNCgUEDAIVARIEwgUPGgoNCgUEDAIVAxIEwgUdHwovCgQEDAIWEgTDBQggIiEgVXNlZCBmb3IgT0ZQWE1UX09GQl9JQ01QVjRfQ09ERSAKDQoFBAwCFgUSBMMFCA4KDQoFBAwCFgESBMMFDxoKDQoFBAwCFgMSBMMFHR8K1QIKBAQMAhcSBNAFCBsaRSNkZWZpbmUgT1hNX09GX0FSUF9PUCAgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfT1AsIDIpCiIcIFVzZWQgZm9yIE9GUFhNVF9PRkJfQVJQX09QIDLhASBBUlAgb3Bjb2RlLgoKIEZvciBhbiBFdGhlcm5ldCtJUCBBUlAgcGFja2V0LCB0aGUgb3Bjb2RlIGluIHRoZSBBUlAgaGVhZGVyLiAgQWx3YXlzIDAKIG90aGVyd2lzZS4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDA4MDYgZXhhY3RseS4KCiBGb3JtYXQ6IDE2LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAIXBRIE0AUIDgoNCgUEDAIXARIE0AUPFQoNCgUEDAIXAxIE0AUYGgq1BAoEBAwCGBIE3wUIHBqYAiNkZWZpbmUgT1hNX09GX0FSUF9TUEEgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfU1BBLCA0KQojZGVmaW5lIE9YTV9PRl9BUlBfU1BBX1cgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1NQQSwgNCkKI2RlZmluZSBPWE1fT0ZfQVJQX1RQQSAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9UUEEsIDQpCiNkZWZpbmUgT1hNX09GX0FSUF9UUEFfVyAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfVFBBLCA0KQoiGCBGb3IgT0ZQWE1UX09GQl9BUlBfU1BBIDLxASBGb3IgYW4gRXRoZXJuZXQrSVAgQVJQIHBhY2tldCwgdGhlIHNvdXJjZSBvciB0YXJnZXQgcHJvdG9jb2wgYWRkcmVzcwogaW4gdGhlIEFSUCBoZWFkZXIuICBBbHdheXMgMCBvdGhlcndpc2UuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHgwODA2IGV4YWN0bHkuCgogRm9ybWF0OiAzMi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLgoKDQoFBAwCGAUSBN8FCA4KDQoFBAwCGAESBN8FDxYKDQoFBAwCGAMSBN8FGRsKJgoEBAwCGRIE4AUIHCIYIEZvciBPRlBYTVRfT0ZCX0FSUF9UUEEgCg0KBQQMAhkFEgTgBQgOCg0KBQQMAhkBEgTgBQ8WCg0KBQQMAhkDEgTgBRkbCrcECgQEDAIaEgTuBQgbGpwCI2RlZmluZSBPWE1fT0ZfQVJQX1NIQSAgICBPWE1fSEVBREVSICAgKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfU0hBLCA2KQojZGVmaW5lIE9YTV9PRl9BUlBfU0hBX1cgIE9YTV9IRUFERVJfVyAoMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9TSEEsIDYpCiNkZWZpbmUgT1hNX09GX0FSUF9USEEgICAgT1hNX0hFQURFUiAgICgweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1RIQSwgNikKI2RlZmluZSBPWE1fT0ZfQVJQX1RIQV9XICBPWE1fSEVBREVSX1cgKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfVEhBLCA2KQoiIiBGb3IgT0ZQWE1UX09GQl9BUlBfU0hBICg2IGJ5dGVzKSAy5QEgRm9yIGFuIEV0aGVybmV0K0lQIEFSUCBwYWNrZXQsIHRoZSBzb3VyY2Ugb3IgdGFyZ2V0IGhhcmR3YXJlIGFkZHJlc3MKIGluIHRoZSBBUlAgaGVhZGVyLiAgQWx3YXlzIDAgb3RoZXJ3aXNlLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4MDgwNiBleGFjdGx5LgoKIEZvcm1hdDogNDgtYml0IEV0aGVybmV0IE1BQyBhZGRyZXNzLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAhoFEgTuBQgNCg0KBQQMAhoBEgTuBQ4VCg0KBQQMAhoDEgTuBRgaCjAKBAQMAhsSBO8FCBsiIiBGb3IgT0ZQWE1UX09GQl9BUlBfVEhBICg2IGJ5dGVzKSAKDQoFBAwCGwUSBO8FCA0KDQoFBAwCGwESBO8FDhUKDQoFBAwCGwMSBO8FGBoK+gMKBAQMAhwSBP0FCBwapAIjZGVmaW5lIE9YTV9PRl9JUFY2X1NSQyAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfU1JDLCAxNikKI2RlZmluZSBPWE1fT0ZfSVBWNl9TUkNfVyAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X1NSQywgMTYpCiNkZWZpbmUgT1hNX09GX0lQVjZfRFNUICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9EU1QsIDE2KQojZGVmaW5lIE9YTV9PRl9JUFY2X0RTVF9XICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfRFNULCAxNikKIhkgRm9yIE9GUFhNVF9PRkJfSVBWNl9TUkMgMqkBIFRoZSBzb3VyY2Ugb3IgZGVzdGluYXRpb24gYWRkcmVzcyBpbiB0aGUgSVB2NiBoZWFkZXIuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4NmRkIGV4YWN0bHkuCgogRm9ybWF0OiAxMjgtYml0IElQdjYgYWRkcmVzcy4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuCgoNCgUEDAIcBRIE/QUIDQoNCgUEDAIcARIE/QUOFgoNCgUEDAIcAxIE/QUZGwonCgQEDAIdEgT+BQgcIhkgRm9yIE9GUFhNVF9PRkJfSVBWNl9EU1QgCg0KBQQMAh0FEgT+BQgNCg0KBQQMAh0BEgT+BQ4WCg0KBQQMAh0DEgT+BRkbCp0DCgQEDAIeEgSMBgggGpoBI2RlZmluZSBPWE1fT0ZfSVBWNl9GTEFCRUwgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfRkxBQkVMLCA0KQojZGVmaW5lIE9YTV9PRl9JUFY2X0ZMQUJFTF9XIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9GTEFCRUwsIDQpCiIcIEZvciBPRlBYTVRfT0ZCX0lQVjZfRkxBQkVMIDLTASBUaGUgSVB2NiBGbG93IExhYmVsCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4NmRkIGV4YWN0bHkKCiBGb3JtYXQ6IDMyLWJpdCBpbnRlZ2VyIHdpdGggMTIgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXIgMjAgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLgoKDQoFBAwCHgUSBIwGCA4KDQoFBAwCHgESBIwGDxoKDQoFBAwCHgMSBIwGHR8KgwMKBAQMAh8SBJkGCCAalgEjZGVmaW5lIE9YTV9PRl9JQ01QVjZfVFlQRSBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lDTVBWNl9UWVBFLCAxKQojZGVmaW5lIE9YTV9PRl9JQ01QVjZfQ09ERSBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lDTVBWNl9DT0RFLCAxKQoiHCBGb3IgT0ZQWE1UX09GQl9JQ01QVjZfVFlQRSAyvQEgVGhlIHR5cGUgb3IgY29kZSBpbiB0aGUgSUNNUHY2IGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg2ZGQgZXhhY3RseS4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggNTggZXhhY3RseS4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCHwUSBJkGCA4KDQoFBAwCHwESBJkGDxoKDQoFBAwCHwMSBJkGHR8KKgoEBAwCIBIEmgYIICIcIEZvciBPRlBYTVRfT0ZCX0lDTVBWNl9DT0RFIAoNCgUEDAIgBRIEmgYIDgoNCgUEDAIgARIEmgYPGgoNCgUEDAIgAxIEmgYdHwqRAwoEBAwCIRIEqAYIIhpXI2RlZmluZSBPWE1fT0ZfSVBWNl9ORF9UQVJHRVQgT1hNX0hFQURFUiBcCiAgICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfTkRfVEFSR0VULCAxNikKIh8gRm9yIE9GUFhNVF9PRkJfSVBWNl9ORF9UQVJHRVQgMogCIFRoZSB0YXJnZXQgYWRkcmVzcyBpbiBhbiBJUHY2IE5laWdoYm9yIERpc2NvdmVyeSBtZXNzYWdlLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODZkZCBleGFjdGx5LgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCA1OCBleGFjdGx5LgogICBPWE1fT0ZfSUNNUFY2X1RZUEUgbXVzdCBiZSBlaXRoZXIgMTM1IG9yIDEzNi4KCiBGb3JtYXQ6IDEyOC1iaXQgSVB2NiBhZGRyZXNzLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAiEFEgSoBggNCg0KBQQMAiEBEgSoBg4cCg0KBQQMAiEDEgSoBh8hCpcDCgQEDAIiEgS2BggfGkwjZGVmaW5lIE9YTV9PRl9JUFY2X05EX1NMTCAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X05EX1NMTCwgNikKIhwgRm9yIE9GUFhNVF9PRkJfSVBWNl9ORF9TTEwgMpwCIFRoZSBzb3VyY2UgbGluay1sYXllciBhZGRyZXNzIG9wdGlvbiBpbiBhbiBJUHY2IE5laWdoYm9yIERpc2NvdmVyeQogbWVzc2FnZS4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg2ZGQgZXhhY3RseS4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggNTggZXhhY3RseS4KICAgT1hNX09GX0lDTVBWNl9UWVBFIG11c3QgYmUgZXhhY3RseSAxMzUuCgogRm9ybWF0OiA0OC1iaXQgRXRoZXJuZXQgTUFDIGFkZHJlc3MuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCIgUSBLYGCA0KDQoFBAwCIgESBLYGDhkKDQoFBAwCIgMSBLYGHB4KlwMKBAQMAiMSBMQGCB8aTCNkZWZpbmUgT1hNX09GX0lQVjZfTkRfVExMICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfTkRfVExMLCA2KQoiHCBGb3IgT0ZQWE1UX09GQl9JUFY2X05EX1RMTCAynAIgVGhlIHRhcmdldCBsaW5rLWxheWVyIGFkZHJlc3Mgb3B0aW9uIGluIGFuIElQdjYgTmVpZ2hib3IgRGlzY292ZXJ5CiBtZXNzYWdlLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODZkZCBleGFjdGx5LgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCA1OCBleGFjdGx5LgogICBPWE1fT0ZfSUNNUFY2X1RZUEUgbXVzdCBiZSBleGFjdGx5IDEzNi4KCiBGb3JtYXQ6IDQ4LWJpdCBFdGhlcm5ldCBNQUMgYWRkcmVzcy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAIjBRIExAYIDQoNCgUEDAIjARIExAYOGQoNCgUEDAIjAxIExAYcHgr+AgoEBAwCJBIE0AYIHxpKI2RlZmluZSBPWE1fT0ZfTVBMU19MQUJFTCAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9NUExTX0xBQkVMLCA0KQoiGyBGb3IgT0ZQWE1UX09GQl9NUExTX0xBQkVMIDKGAiBUaGUgTEFCRUwgaW4gdGhlIGZpcnN0IE1QTFMgc2hpbSBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4ODQ3IG9yIDB4ODg0OCBleGFjdGx5LgoKIEZvcm1hdDogMzItYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyIHdpdGggMTIgbW9zdC1zaWduaWZpY2FudAogYml0cyBmb3JjZWQgdG8gMC4gT25seSB0aGUgbG93ZXIgMjAgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCJAUSBNAGCA4KDQoFBAwCJAESBNAGDxkKDQoFBAwCJAMSBNAGHB4K3AIKBAQMAiUSBNwGCBwaRyNkZWZpbmUgT1hNX09GX01QTFNfVEMgICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfTVBMU19UQywgMSkKIhggRm9yIE9GUFhNVF9PRkJfTVBMU19UQyAy6gEgVGhlIFRDIGluIHRoZSBmaXJzdCBNUExTIHNoaW0gaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODg0NyBvciAweDg4NDggZXhhY3RseS4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIgd2l0aCA1IG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VyIDMgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCJQUSBNwGCA4KDQoFBAwCJQESBNwGDxYKDQoFBAwCJQMSBNwGGRsK5AIKBAQMAiYSBOgGCB0aSSNkZWZpbmUgT1hNX09GX01QTFNfQk9TICAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX01QTFNfQk9TLCAxKQoiGSBGb3IgT0ZQWE1UX09GQl9NUExTX0JPUyAy7wEgVGhlIEJvUyBiaXQgaW4gdGhlIGZpcnN0IE1QTFMgc2hpbSBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4ODQ3IG9yIDB4ODg0OCBleGFjdGx5LgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlciB3aXRoIDcgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXN0IGJpdCBoYXZlIGEgbWVhbmluZy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAImBRIE6AYIDgoNCgUEDAImARIE6AYPFwoNCgUEDAImAxIE6AYaHAqqAwoEBAwCJxIE9wYIHRqOASNkZWZpbmUgT1hNX09GX1BCQl9JU0lEICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9QQkJfSVNJRCwgMykKI2RlZmluZSBPWE1fT0ZfUEJCX0lTSURfVyBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX1BCQl9JU0lELCAzKQoiGSBGb3IgT0ZQWE1UX09GQl9QQkJfSVNJRCAy7wEgSUVFRSA4MDIuMWFoIEktU0lELgoKIEZvciBhIHBhY2tldCB3aXRoIGEgUEJCIGhlYWRlciwgdGhpcyBpcyB0aGUgSS1TSUQgZnJvbSB0aGUKIG91dGVybW9zdCBzZXJ2aWNlIHRhZy4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg4RTcgZXhhY3RseS4KCiBGb3JtYXQ6IDI0LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuIAoNCgUEDAInBRIE9wYIDgoNCgUEDAInARIE9wYPFwoNCgUEDAInAxIE9wYaHAq8BgoEBAwCKBIEiwcIHhqUASNkZWZpbmUgT1hNX09GX1RVTk5FTF9JRCAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1RVTk5FTF9JRCwgOCkKI2RlZmluZSBPWE1fT0ZfVFVOTkVMX0lEX1cgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfVFVOTkVMX0lELCA4KQoiGiBGb3IgT0ZQWE1UX09GQl9UVU5ORUxfSUQgMvoEIExvZ2ljYWwgUG9ydCBNZXRhZGF0YS4KCiBNZXRhZGF0YSBhc3NvY2lhdGVkIHdpdGggYSBsb2dpY2FsIHBvcnQuCiBJZiB0aGUgbG9naWNhbCBwb3J0IHBlcmZvcm1zIGVuY2Fwc3VsYXRpb24gYW5kIGRlY2Fwc3VsYXRpb24sIHRoaXMKIGlzIHRoZSBkZW11bHRpcGxleGluZyBmaWVsZCBmcm9tIHRoZSBlbmNhcHN1bGF0aW9uIGhlYWRlci4KIEZvciBleGFtcGxlLCBmb3IgYSBwYWNrZXQgcmVjZWl2ZWQgdmlhIEdSRSB0dW5uZWwgaW5jbHVkaW5nIGEgKDMyLWJpdCkga2V5LAogdGhlIGtleSBpcyBzdG9yZWQgaW4gdGhlIGxvdyAzMi1iaXRzIGFuZCB0aGUgaGlnaCBiaXRzIGFyZSB6ZXJvZWQuCiBGb3IgYSBNUExTIGxvZ2ljYWwgcG9ydCwgdGhlIGxvdyAyMCBiaXRzIHJlcHJlc2VudCB0aGUgTVBMUyBMYWJlbC4KIEZvciBhIFZ4TEFOIGxvZ2ljYWwgcG9ydCwgdGhlIGxvdyAyNCBiaXRzIHJlcHJlc2VudCB0aGUgVk5JLgogSWYgdGhlIHBhY2tldCBpcyBub3QgcmVjZWl2ZWQgdGhyb3VnaCBhIGxvZ2ljYWwgcG9ydCwgdGhlIHZhbHVlIGlzIDAuCgogUHJlcmVxczogTm9uZS4KCiBGb3JtYXQ6IDY0LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuIAoNCgUEDAIoBRIEiwcIDgoNCgUEDAIoARIEiwcPGAoNCgUEDAIoAxIEiwcbHQqoAwoEBAwCKRIEmAcIIBqaASNkZWZpbmUgT1hNX09GX0lQVjZfRVhUSERSICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X0VYVEhEUiwgMikKI2RlZmluZSBPWE1fT0ZfSVBWNl9FWFRIRFJfVyBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfRVhUSERSLCAyKQoiHCBGb3IgT0ZQWE1UX09GQl9JUFY2X0VYVEhEUiAy3gEgVGhlIElQdjYgRXh0ZW5zaW9uIEhlYWRlciBwc2V1ZG8tZmllbGQuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4NmRkIGV4YWN0bHkKCiBGb3JtYXQ6IDE2LWJpdCBpbnRlZ2VyIHdpdGggNyBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlciA5IGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IE1hc2thYmxlLiAKDQoFBAwCKQUSBJgHCA4KDQoFBAwCKQESBJgHDxoKDQoFBAwCKQMSBJgHHR8KTQoEBAwIARIGnQcEtQcFGj0gT3B0aW9uYWwgbWFzayB2YWx1ZXMgKG11c3QgYmUgcHJlc2VudCB3aGVuIGhhc19tYXNrIGlzIHRydWUgCg0KBQQMCAEBEgSdBwoOCicKBAQMAioSBJ4HCCkiGSBGb3IgT0ZQWE1UX09GQl9NRVRBREFUQSAKDQoFBAwCKgUSBJ4HCA4KDQoFBAwCKgESBJ4HDyIKDQoFBAwCKgMSBJ4HJSgKNwoEBAwCKxIEoAcIISIpIEZvciBPRlBYTVRfT0ZCX0VUSF9EU1QgKGV4YWN0bHkgNiBieXRlcykKDQoFBAwCKwUSBKAHCA0KDQoFBAwCKwESBKAHDhoKDQoFBAwCKwMSBKAHHSAKNwoEBAwCLBIEoQcIISIpIEZvciBPRlBYTVRfT0ZCX0VUSF9TUkMgKGV4YWN0bHkgNiBieXRlcykKDQoFBAwCLAUSBKEHCA0KDQoFBAwCLAESBKEHDhoKDQoFBAwCLAMSBKEHHSAKJwoEBAwCLRIEowcIIyIZIEZvciBPRlBYTVRfT0ZCX1ZMQU5fVklEIAoNCgUEDAItBRIEowcIDgoNCgUEDAItARIEowcPHAoNCgUEDAItAxIEowcfIgonCgQEDAIuEgSlBwgjIhkgRm9yIE9GUFhNVF9PRkJfSVBWNF9TUkMgCg0KBQQMAi4FEgSlBwgOCg0KBQQMAi4BEgSlBw8cCg0KBQQMAi4DEgSlBx8iCicKBAQMAi8SBKYHCCMiGSBGb3IgT0ZQWE1UX09GQl9JUFY0X0RTVCAKDQoFBAwCLwUSBKYHCA4KDQoFBAwCLwESBKYHDxwKDQoFBAwCLwMSBKYHHyIKJgoEBAwCMBIEqAcIIiIYIEZvciBPRlBYTVRfT0ZCX0FSUF9TUEEgCg0KBQQMAjAFEgSoBwgOCg0KBQQMAjABEgSoBw8bCg0KBQQMAjADEgSoBx4hCiYKBAQMAjESBKkHCCIiGCBGb3IgT0ZQWE1UX09GQl9BUlBfVFBBIAoNCgUEDAIxBRIEqQcIDgoNCgUEDAIxARIEqQcPGwoNCgUEDAIxAxIEqQceIQonCgQEDAIyEgSrBwgiIhkgRm9yIE9GUFhNVF9PRkJfSVBWNl9TUkMgCg0KBQQMAjIFEgSrBwgNCg0KBQQMAjIBEgSrBw4bCg0KBQQMAjIDEgSrBx4hCicKBAQMAjMSBKwHCCIiGSBGb3IgT0ZQWE1UX09GQl9JUFY2X0RTVCAKDQoFBAwCMwUSBKwHCA0KDQoFBAwCMwESBKwHDhsKDQoFBAwCMwMSBKwHHiEKKgoEBAwCNBIErgcIJiIcIEZvciBPRlBYTVRfT0ZCX0lQVjZfRkxBQkVMIAoNCgUEDAI0BRIErgcIDgoNCgUEDAI0ARIErgcPHwoNCgUEDAI0AxIErgciJQonCgQEDAI1EgSwBwgjIhkgRm9yIE9GUFhNVF9PRkJfUEJCX0lTSUQgCg0KBQQMAjUFEgSwBwgOCg0KBQQMAjUBEgSwBw8cCg0KBQQMAjUDEgSwBx8iCigKBAQMAjYSBLIHCCQiGiBGb3IgT0ZQWE1UX09GQl9UVU5ORUxfSUQgCg0KBQQMAjYFEgSyBwgOCg0KBQQMAjYBEgSyBw8dCg0KBQQMAjYDEgSyByAjCioKBAQMAjcSBLQHCCYiHCBGb3IgT0ZQWE1UX09GQl9JUFY2X0VYVEhEUiAKDQoFBAwCNwUSBLQHCA4KDQoFBAwCNwESBLQHDx8KDQoFBAwCNwMSBLQHIiUKaQoCBQ4SBr4HAMEHARpbIFRoZSBWTEFOIGlkIGlzIDEyLWJpdHMsIHNvIHdlIGNhbiB1c2UgdGhlIGVudGlyZSAxNiBiaXRzIHRvIGluZGljYXRlCiBzcGVjaWFsIGNvbmRpdGlvbnMuCgoLCgMFDgESBL4HBRAKIwoEBQ4CABIEvwcEHCIVIE5vIFZMQU4gaWQgd2FzIHNldC4gCg0KBQUOAgABEgS/BwQPCg0KBQUOAgACEgS/BxUbCjcKBAUOAgESBMAHBBwiKSBCaXQgdGhhdCBpbmRpY2F0ZSB0aGF0IGEgVkxBTiBpZCBpcyBzZXQgCg0KBQUOAgEBEgTABwQSCg0KBQUOAgECEgTABxUbCnAKAgUPEgbGBwDRBwEaOSBCaXQgZGVmaW5pdGlvbnMgZm9yIElQdjYgRXh0ZW5zaW9uIEhlYWRlciBwc2V1ZG8tZmllbGQuIDInI2RlZmluZSBPRlBfVkxBTl9OT05FICAgICAgT0ZQVklEX05PTkUKCgsKAwUPARIExgcFGQoMCgQFDwIAEgTHBwQXCg0KBQUPAgABEgTHBwQSCg0KBQUPAgACEgTHBxUWCi0KBAUPAgESBMgHBBciHyAiTm8gbmV4dCBoZWFkZXIiIGVuY291bnRlcmVkLiAKDQoFBQ8CAQESBMgHBBEKDQoFBQ8CAQISBMgHFRYKNQoEBQ8CAhIEyQcEFyInIEVuY3J5cHRlZCBTZWMgUGF5bG9hZCBoZWFkZXIgcHJlc2VudC4gCg0KBQUPAgIBEgTJBwQOCg0KBQUPAgICEgTJBxUWCi4KBAUPAgMSBMoHBBciICBBdXRoZW50aWNhdGlvbiBoZWFkZXIgcHJlc2VudC4gCg0KBQUPAgMBEgTKBwQPCg0KBQUPAgMCEgTKBxUWCiwKBAUPAgQSBMsHBBciHiAxIG9yIDIgZGVzdCBoZWFkZXJzIHByZXNlbnQuIAoNCgUFDwIEARIEywcEDwoNCgUFDwIEAhIEywcVFgooCgQFDwIFEgTMBwQYIhogRnJhZ21lbnQgaGVhZGVyIHByZXNlbnQuIAoNCgUFDwIFARIEzAcEDwoNCgUFDwIFAhIEzAcVFwomCgQFDwIGEgTNBwQYIhggUm91dGVyIGhlYWRlciBwcmVzZW50LiAKDQoFBQ8CBgESBM0HBBEKDQoFBQ8CBgISBM0HFRcKKgoEBQ8CBxIEzgcEGCIcIEhvcC1ieS1ob3AgaGVhZGVyIHByZXNlbnQuIAoNCgUFDwIHARIEzgcEDgoNCgUFDwIHAhIEzgcVFwovCgQFDwIIEgTPBwQZIiEgVW5leHBlY3RlZCByZXBlYXRzIGVuY291bnRlcmVkLiAKDQoFBQ8CCAESBM8HBBAKDQoFBQ8CCAISBM8HFRgKMgoEBQ8CCRIE0AcEGSIkIFVuZXhwZWN0ZWQgc2VxdWVuY2luZyBlbmNvdW50ZXJlZC4gCg0KBQUPAgkBEgTQBwQQCg0KBQUPAgkCEgTQBxUYCqQBCgIEDRIG1gcA2gcBGpUBIEhlYWRlciBmb3IgT1hNIGV4cGVyaW1lbnRlciBtYXRjaCBmaWVsZHMuCiBUaGUgZXhwZXJpbWVudGVyIGNsYXNzIHNob3VsZCBub3QgdXNlIE9YTV9IRUFERVIoKSBtYWNyb3MgZm9yIGRlZmluaW5nCiBmaWVsZHMgZHVlIHRvIHRoaXMgZXh0cmEgaGVhZGVyLiAKCwoDBA0BEgTWBwgiCi8KBAQNAgASBNcHBBoiISBveG1fY2xhc3MgPSBPRlBYTUNfRVhQRVJJTUVOVEVSIAoPCgUEDQIABBIG1wcE1gckCg0KBQQNAgAFEgTXBwQKCg0KBQQNAgABEgTXBwsVCg0KBQQNAgADEgTXBxgZCl8KBAQNAgESBNgHBBwiUSBFeHBlcmltZW50ZXIgSUQgd2hpY2ggdGFrZXMgdGhlIHNhbWUKZm9ybSBhcyBpbiBzdHJ1Y3Qgb2ZwX2V4cGVyaW1lbnRlcl9oZWFkZXIuIAoPCgUEDQIBBBIG2AcE1wcaCg0KBQQNAgEFEgTYBwQKCg0KBQQNAgEBEgTYBwsXCg0KBQQNAgEDEgTYBxobCl0KAgUQEgbgBwD1BwEyGSAjIyAtLS0tLS0tLS0tLS0tLS0tLSAjIyAyGSAjIyBPcGVuRmxvdyBBY3Rpb25zLiAjIyAyGSAjIyAtLS0tLS0tLS0tLS0tLS0tLSAjIyAKCwoDBRABEgTgBwUUCiYKBAUQAgASBOEHBBsiGCBPdXRwdXQgdG8gc3dpdGNoIHBvcnQuIAoNCgUFEAIAARIE4QcEEAoNCgUFEAIAAhIE4QcZGgpKCgQFEAIBEgTiBwQcIjwgQ29weSBUVEwgIm91dHdhcmRzIiAtLSBmcm9tIG5leHQtdG8tb3V0ZXJtb3N0CnRvIG91dGVybW9zdCAKDQoFBRACAQESBOIHBBYKDQoFBRACAQISBOIHGRsKSQoEBRACAhIE5AcEHCI7IENvcHkgVFRMICJpbndhcmRzIiAtLSBmcm9tIG91dGVybW9zdCB0bwpuZXh0LXRvLW91dGVybW9zdCAKDQoFBRACAgESBOQHBBUKDQoFBRACAgISBOQHGRsKGAoEBRACAxIE5gcEHCIKIE1QTFMgVFRMIAoNCgUFEAIDARIE5gcEFgoNCgUFEAIDAhIE5gcZGwoiCgQFEAIEEgTnBwQcIhQgRGVjcmVtZW50IE1QTFMgVFRMIAoNCgUFEAIEARIE5wcEFgoNCgUFEAIEAhIE5wcZGwojCgQFEAIFEgTpBwQcIhUgUHVzaCBhIG5ldyBWTEFOIHRhZyAKDQoFBRACBQESBOkHBBMKDQoFBRACBQISBOkHGRsKJgoEBRACBhIE6gcEHCIYIFBvcCB0aGUgb3V0ZXIgVkxBTiB0YWcgCg0KBQUQAgYBEgTqBwQSCg0KBQUQAgYCEgTqBxkbCiMKBAUQAgcSBOsHBBwiFSBQdXNoIGEgbmV3IE1QTFMgdGFnIAoNCgUFEAIHARIE6wcEEwoNCgUFEAIHAhIE6wcZGwomCgQFEAIIEgTsBwQcIhggUG9wIHRoZSBvdXRlciBNUExTIHRhZyAKDQoFBRACCAESBOwHBBIKDQoFBRACCAISBOwHGRsKNgoEBRACCRIE7QcEHCIoIFNldCBxdWV1ZSBpZCB3aGVuIG91dHB1dHRpbmcgdG8gYSBwb3J0IAoNCgUFEAIJARIE7QcEEwoNCgUFEAIJAhIE7QcZGwocCgQFEAIKEgTuBwQcIg4gQXBwbHkgZ3JvdXAuIAoNCgUFEAIKARIE7gcEDwoNCgUFEAIKAhIE7gcZGwoXCgQFEAILEgTvBwQcIgkgSVAgVFRMLiAKDQoFBRACCwESBO8HBBQKDQoFBRACCwISBO8HGRsKIQoEBRACDBIE8AcEHCITIERlY3JlbWVudCBJUCBUVEwuIAoNCgUFEAIMARIE8AcEFAoNCgUFEAIMAhIE8AcZGwo4CgQFEAINEgTxBwQcIiogU2V0IGEgaGVhZGVyIGZpZWxkIHVzaW5nIE9YTSBUTFYgZm9ybWF0LiAKDQoFBRACDQESBPEHBBMKDQoFBRACDQISBPEHGRsKMgoEBRACDhIE8gcEHCIkIFB1c2ggYSBuZXcgUEJCIHNlcnZpY2UgdGFnIChJLVRBRykgCg0KBQUQAg4BEgTyBwQSCg0KBQUQAg4CEgTyBxkbCjUKBAUQAg8SBPMHBBwiJyBQb3AgdGhlIG91dGVyIFBCQiBzZXJ2aWNlIHRhZyAoSS1UQUcpIAoNCgUFEAIPARIE8wcEEQoNCgUFEAIPAhIE8wcZGwoMCgQFEAIQEgT0BwQgCg0KBQUQAhABEgT0BwQWCg0KBQUQAhACEgT0BxkfCtkBCgIEDhIG+gcAhggBGsoBIEFjdGlvbiBoZWFkZXIgdGhhdCBpcyBjb21tb24gdG8gYWxsIGFjdGlvbnMuICBUaGUgbGVuZ3RoIGluY2x1ZGVzIHRoZQogaGVhZGVyIGFuZCBhbnkgcGFkZGluZyB1c2VkIHRvIG1ha2UgdGhlIGFjdGlvbiA2NC1iaXQgYWxpZ25lZC4KIE5COiBUaGUgbGVuZ3RoIG9mIGFuIGFjdGlvbiAqbXVzdCogYWx3YXlzIGJlIGEgbXVsdGlwbGUgb2YgZWlnaHQuIAoLCgMEDgESBPoHCBIKHwoEBA4CABIE+wcEHSIRIE9uZSBvZiBPRlBBVF8qLiAKDwoFBA4CAAQSBvsHBPoHFAoNCgUEDgIABhIE+wcEEwoNCgUEDgIAARIE+wcUGAoNCgUEDgIAAxIE+wcbHAoOCgQEDggAEgb8BwSFCAUKDQoFBA4IAAESBPwHChAKDAoEBA4CARIE/QcIJQoNCgUEDgIBBhIE/QcIGQoNCgUEDgIBARIE/QcaIAoNCgUEDgIBAxIE/QcjJAoMCgQEDgICEgT+BwgpCg0KBQQOAgIGEgT+BwgbCg0KBQQOAgIBEgT+BxwkCg0KBQQOAgIDEgT+BycoCgwKBAQOAgMSBP8HCCEKDQoFBA4CAwYSBP8HCBcKDQoFBA4CAwESBP8HGBwKDQoFBA4CAwMSBP8HHyAKDAoEBA4CBBIEgAgIKQoNCgUEDgIEBhIEgAgIGwoNCgUEDgIEARIEgAgcJAoNCgUEDgIEAxIEgAgnKAoMCgQEDgIFEgSBCAgjCg0KBQQOAgUGEgSBCAgYCg0KBQQOAgUBEgSBCBkeCg0KBQQOAgUDEgSBCCEiCgwKBAQOAgYSBIIICCUKDQoFBA4CBgYSBIIICBkKDQoFBA4CBgESBIIIGiAKDQoFBA4CBgMSBIIIIyQKDAoEBA4CBxIEgwgIKwoNCgUEDgIHBhIEgwgIHAoNCgUEDgIHARIEgwgdJgoNCgUEDgIHAxIEgwgpKgoMCgQEDgIIEgSECAgxCg0KBQQOAggGEgSECAgfCg0KBQQOAggBEgSECCAsCg0KBQQOAggDEgSECC8wCgwKAgUREgaICACPCAEKCwoDBREBEgSICAUbCgwKBAURAgASBIkIBBkKDQoFBRECAAESBIkIBBIKDQoFBRECAAISBIkIFxgKWgoEBRECARIEiggEHiJMIG1heGltdW0gbWF4X2xlbiB2YWx1ZSB3aGljaCBjYW4gYmUgdXNlZAp0byByZXF1ZXN0IGEgc3BlY2lmaWMgYnl0ZSBsZW5ndGguIAoNCgUFEQIBARIEiggEDgoNCgUFEQIBAhIEiggXHQpzCgQFEQICEgSMCAQeImUgaW5kaWNhdGVzIHRoYXQgbm8gYnVmZmVyaW5nIHNob3VsZCBiZQphcHBsaWVkIGFuZCB0aGUgd2hvbGUgcGFja2V0IGlzIHRvIGJlCnNlbnQgdG8gdGhlIGNvbnRyb2xsZXIuIAoNCgUFEQICARIEjAgEFAoNCgUFEQICAhIEjAgXHQr2AgoCBA8SBpcIAJoIARrnAiBBY3Rpb24gc3RydWN0dXJlIGZvciBPRlBBVF9PVVRQVVQsIHdoaWNoIHNlbmRzIHBhY2tldHMgb3V0ICdwb3J0Jy4KIFdoZW4gdGhlICdwb3J0JyBpcyB0aGUgT0ZQUF9DT05UUk9MTEVSLCAnbWF4X2xlbicgaW5kaWNhdGVzIHRoZSBtYXgKIG51bWJlciBvZiBieXRlcyB0byBzZW5kLiAgQSAnbWF4X2xlbicgb2YgemVybyBtZWFucyBubyBieXRlcyBvZiB0aGUKIHBhY2tldCBzaG91bGQgYmUgc2VudC4gQSAnbWF4X2xlbicgb2YgT0ZQQ01MX05PX0JVRkZFUiBtZWFucyB0aGF0CiB0aGUgcGFja2V0IGlzIG5vdCBidWZmZXJlZCBhbmQgdGhlIGNvbXBsZXRlIHBhY2tldCBpcyB0byBiZSBzZW50IHRvCiB0aGUgY29udHJvbGxlci4gCgsKAwQPARIElwgIGQocCgQEDwIAEgSYCAQUIg4gT3V0cHV0IHBvcnQuIAoPCgUEDwIABBIGmAgElwgbCg0KBQQPAgAFEgSYCAQKCg0KBQQPAgABEgSYCAsPCg0KBQQPAgADEgSYCBITCjEKBAQPAgESBJkIBBciIyBNYXggbGVuZ3RoIHRvIHNlbmQgdG8gY29udHJvbGxlci4gCg8KBQQPAgEEEgaZCASYCBQKDQoFBA8CAQUSBJkIBAoKDQoFBA8CAQESBJkICxIKDQoFBA8CAQMSBJkIFRYKOAoCBBASBp0IAJ8IARoqIEFjdGlvbiBzdHJ1Y3R1cmUgZm9yIE9GUEFUX1NFVF9NUExTX1RUTC4gCgsKAwQQARIEnQgIGwoYCgQEEAIAEgSeCAQYIgogTVBMUyBUVEwgCg8KBQQQAgAEEgaeCASdCB0KDQoFBBACAAUSBJ4IBAoKDQoFBBACAAESBJ4ICxMKDQoFBBACAAMSBJ4IFhcKPgoCBBESBqIIAKQIARowIEFjdGlvbiBzdHJ1Y3R1cmUgZm9yIE9GUEFUX1BVU0hfVkxBTi9NUExTL1BCQi4gCgsKAwQRARIEoggIFwoZCgQEEQIAEgSjCAQZIgsgRXRoZXJ0eXBlIAoPCgUEEQIABBIGowgEoggZCg0KBQQRAgAFEgSjCAQKCg0KBQQRAgABEgSjCAsUCg0KBQQRAgADEgSjCBcYCjQKAgQSEganCACpCAEaJiBBY3Rpb24gc3RydWN0dXJlIGZvciBPRlBBVF9QT1BfTVBMUy4gCgsKAwQSARIEpwgIGwoZCgQEEgIAEgSoCAQZIgsgRXRoZXJ0eXBlIAoPCgUEEgIABBIGqAgEpwgdCg0KBQQSAgAFEgSoCAQKCg0KBQQSAgABEgSoCAsUCg0KBQQSAgADEgSoCBcYCjEKAgQTEgasCACuCAEaIyBBY3Rpb24gc3RydWN0dXJlIGZvciBPRlBBVF9HUk9VUC4gCgsKAwQTARIErAgIGAohCgQEEwIAEgStCAQYIhMgR3JvdXAgaWRlbnRpZmllci4gCg8KBQQTAgAEEgatCASsCBoKDQoFBBMCAAUSBK0IBAoKDQoFBBMCAAESBK0ICxMKDQoFBBMCAAMSBK0IFhcKNgoCBBQSBrEIALMIARooIEFjdGlvbiBzdHJ1Y3R1cmUgZm9yIE9GUEFUX1NFVF9OV19UVEwuIAoLCgMEFAESBLEICBkKFgoEBBQCABIEsggEFiIIIElQIFRUTCAKDwoFBBQCAAQSBrIIBLEIGwoNCgUEFAIABRIEsggECgoNCgUEFAIAARIEsggLEQoNCgUEFAIAAxIEsggUFQo1CgIEFRIGtggAuAgBGicgQWN0aW9uIHN0cnVjdHVyZSBmb3IgT0ZQQVRfU0VUX0ZJRUxELiAKCwoDBBUBEgS2CAgcCgwKBAQVAgASBLcIBBwKDwoFBBUCAAQSBrcIBLYIHgoNCgUEFQIABhIEtwgEEQoNCgUEFQIAARIEtwgSFwoNCgUEFQIAAxIEtwgaGwpkCgIEFhIGvAgAwQgBGlYgQWN0aW9uIGhlYWRlciBmb3IgT0ZQQVRfRVhQRVJJTUVOVEVSLgogVGhlIHJlc3Qgb2YgdGhlIGJvZHkgaXMgZXhwZXJpbWVudGVyLWRlZmluZWQuIAoLCgMEFgESBLwICB8KXwoEBBYCABIEvQgEHCJRIEV4cGVyaW1lbnRlciBJRCB3aGljaCB0YWtlcyB0aGUgc2FtZQpmb3JtIGFzIGluIHN0cnVjdApvZnBfZXhwZXJpbWVudGVyX2hlYWRlci4gCg8KBQQWAgAEEga9CAS8CCEKDQoFBBYCAAUSBL0IBAoKDQoFBBYCAAESBL0ICxcKDQoFBBYCAAMSBL0IGhsKDAoEBBYCARIEwAgEEwoPCgUEFgIBBBIGwAgEvQgcCg0KBQQWAgEFEgTACAQJCg0KBQQWAgEBEgTACAoOCg0KBQQWAgEDEgTACBESCmwKAgUSEgbHCADVCAEyHiAjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjIDIeICMjIE9wZW5GbG93IEluc3RydWN0aW9ucy4gIyMgMh4gIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIyAKCwoDBRIBEgTHCAUZCgwKBAUSAgASBMgIBBkKDQoFBRICAAESBMgIBBEKDQoFBRICAAISBMgIFxgKOwoEBRICARIEyQgEGSItIFNldHVwIHRoZSBuZXh0IHRhYmxlIGluIHRoZSBsb29rdXAKcGlwZWxpbmUgCg0KBQUSAgEBEgTJCAQUCg0KBQUSAgECEgTJCBcYCkIKBAUSAgISBMsIBB0iNCBTZXR1cCB0aGUgbWV0YWRhdGEgZmllbGQgZm9yIHVzZSBsYXRlciBpbgpwaXBlbGluZSAKDQoFBRICAgESBMsIBBgKDQoFBRICAgISBMsIGxwKQAoEBRICAxIEzQgEHCIyIFdyaXRlIHRoZSBhY3Rpb24ocykgb250byB0aGUgZGF0YXBhdGggYWN0aW9uCnNldCAKDQoFBRICAwESBM0IBBcKDQoFBRICAwISBM0IGhsKMQoEBRICBBIEzwgEHCIjIEFwcGxpZXMgdGhlIGFjdGlvbihzKSBpbW1lZGlhdGVseSAKDQoFBRICBAESBM8IBBcKDQoFBRICBAISBM8IGhsKPwoEBRICBRIE0AgEHCIxIENsZWFycyBhbGwgYWN0aW9ucyBmcm9tIHRoZSBkYXRhcGF0aAphY3Rpb24gc2V0IAoNCgUFEgIFARIE0AgEFwoNCgUFEgIFAhIE0AgaGwoqCgQFEgIGEgTSCAQUIhwgQXBwbHkgbWV0ZXIgKHJhdGUgbGltaXRlcikgCg0KBQUSAgYBEgTSCAQPCg0KBQUSAgYCEgTSCBITCigKBAUSAgcSBNQIBCAiGiBFeHBlcmltZW50ZXIgaW5zdHJ1Y3Rpb24gCg0KBQUSAgcBEgTUCAQWCg0KBQUSAgcCEgTUCBkfCu0BCgIEFxIG2ggA4wgBGt4BIEluc3RydWN0aW9uIGhlYWRlciB0aGF0IGlzIGNvbW1vbiB0byBhbGwgaW5zdHJ1Y3Rpb25zLiAgVGhlIGxlbmd0aCBpbmNsdWRlcwogdGhlIGhlYWRlciBhbmQgYW55IHBhZGRpbmcgdXNlZCB0byBtYWtlIHRoZSBpbnN0cnVjdGlvbiA2NC1iaXQgYWxpZ25lZC4KIE5COiBUaGUgbGVuZ3RoIG9mIGFuIGluc3RydWN0aW9uICptdXN0KiBhbHdheXMgYmUgYSBtdWx0aXBsZSBvZiBlaWdodC4gCgsKAwQXARIE2ggIFwogCgQEFwIAEgTbCAQUIhIgSW5zdHJ1Y3Rpb24gdHlwZSAKDwoFBBcCAAQSBtsIBNoIGQoNCgUEFwIABRIE2wgECgoNCgUEFwIAARIE2wgLDwoNCgUEFwIAAxIE2wgSEwoOCgQEFwgAEgbcCATiCAUKDQoFBBcIAAESBNwICg4KDAoEBBcCARIE3QgIMgoNCgUEFwIBBhIE3QgIIgoNCgUEFwIBARIE3QgjLQoNCgUEFwIBAxIE3QgwMQoMCgQEFwICEgTeCAg6Cg0KBQQXAgIGEgTeCAgmCg0KBQQXAgIBEgTeCCc1Cg0KBQQXAgIDEgTeCDg5CgwKBAQXAgMSBN8ICCwKDQoFBBcCAwYSBN8ICB8KDQoFBBcCAwESBN8IICcKDQoFBBcCAwMSBN8IKisKDAoEBBcCBBIE4AgIKAoNCgUEFwIEBhIE4AgIHQoNCgUEFwIEARIE4AgeIwoNCgUEFwIEAxIE4AgmJwoMCgQEFwIFEgThCAg2Cg0KBQQXAgUGEgThCAgkCg0KBQQXAgUBEgThCCUxCg0KBQQXAgUDEgThCDQ1CjoKAgQYEgbmCADoCAEaLCBJbnN0cnVjdGlvbiBzdHJ1Y3R1cmUgZm9yIE9GUElUX0dPVE9fVEFCTEUgCgsKAwQYARIE5ggIIgo1CgQEGAIAEgTnCAQYIicgU2V0IG5leHQgdGFibGUgaW4gdGhlIGxvb2t1cCBwaXBlbGluZSAKDwoFBBgCAAQSBucIBOYIJAoNCgUEGAIABRIE5wgECgoNCgUEGAIAARIE5wgLEwoNCgUEGAIAAxIE5wgWFwo+CgIEGRIG6wgA7ggBGjAgSW5zdHJ1Y3Rpb24gc3RydWN0dXJlIGZvciBPRlBJVF9XUklURV9NRVRBREFUQSAKCwoDBBkBEgTrCAgmCicKBAQZAgASBOwIBBgiGSBNZXRhZGF0YSB2YWx1ZSB0byB3cml0ZSAKDwoFBBkCAAQSBuwIBOsIKAoNCgUEGQIABRIE7AgECgoNCgUEGQIAARIE7AgLEwoNCgUEGQIAAxIE7AgWFwomCgQEGQIBEgTtCAQdIhggTWV0YWRhdGEgd3JpdGUgYml0bWFzayAKDwoFBBkCAQQSBu0IBOwIGAoNCgUEGQIBBRIE7QgECgoNCgUEGQIBARIE7QgLGAoNCgUEGQIBAxIE7QgbHApJCgIEGhIG8QgA9QgBGjsgSW5zdHJ1Y3Rpb24gc3RydWN0dXJlIGZvciBPRlBJVF9XUklURS9BUFBMWS9DTEVBUl9BQ1RJT05TIAoLCgMEGgESBPEICB8KXQoEBBoCABIE8ggEJCJPIDAgb3IgbW9yZSBhY3Rpb25zIGFzc29jaWF0ZWQKd2l0aCBPRlBJVF9XUklURV9BQ1RJT05TIGFuZApPRlBJVF9BUFBMWV9BQ1RJT05TIAoNCgUEGgIABBIE8ggEDAoNCgUEGgIABhIE8ggNFwoNCgUEGgIAARIE8ggYHwoNCgUEGgIAAxIE8ggiIwo1CgIEGxIG+AgA+ggBGicgSW5zdHJ1Y3Rpb24gc3RydWN0dXJlIGZvciBPRlBJVF9NRVRFUiAKCwoDBBsBEgT4CAgdCh8KBAQbAgASBPkIBBgiESBNZXRlciBpbnN0YW5jZS4gCg8KBQQbAgAEEgb5CAT4CB8KDQoFBBsCAAUSBPkIBAoKDQoFBBsCAAESBPkICxMKDQoFBBsCAAMSBPkIFhcKQwoCBBwSBv0IAIIJARo1IEluc3RydWN0aW9uIHN0cnVjdHVyZSBmb3IgZXhwZXJpbWVudGFsIGluc3RydWN0aW9ucyAKCwoDBBwBEgT9CAgkCl8KBAQcAgASBP4IBBwiUSBFeHBlcmltZW50ZXIgSUQgd2hpY2ggdGFrZXMgdGhlIHNhbWUgZm9ybQphcyBpbiBzdHJ1Y3Qgb2ZwX2V4cGVyaW1lbnRlcl9oZWFkZXIuIAoPCgUEHAIABBIG/ggE/QgmCg0KBQQcAgAFEgT+CAQKCg0KBQQcAgABEgT+CAsXCg0KBQQcAgADEgT+CBobCj8KBAQcAgESBIEJBBMaMSBFeHBlcmltZW50ZXItZGVmaW5lZCBhcmJpdHJhcnkgYWRkaXRpb25hbCBkYXRhLiAKDwoFBBwCAQQSBoEJBP4IHAoNCgUEHAIBBRIEgQkECQoNCgUEHAIBARIEgQkKDgoNCgUEHAIBAxIEgQkREgp7CgIFExIGiAkAkAkBMiMgIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjIDIjICMjIE9wZW5GbG93IEZsb3cgTW9kaWZpY2F0aW9uLiAjIyAyIyAjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMgCgsKAwUTARIEiAkFGQoZCgQFEwIAEgSJCQQcIgsgTmV3IGZsb3cuIAoNCgUFEwIAARIEiQkEDQoNCgUFEwIAAhIEiQkaGwoqCgQFEwIBEgSKCQQcIhwgTW9kaWZ5IGFsbCBtYXRjaGluZyBmbG93cy4gCg0KBQUTAgEBEgSKCQQQCg0KBQUTAgECEgSKCRobCkYKBAUTAgISBIsJBBwiOCBNb2RpZnkgZW50cnkgc3RyaWN0bHkgbWF0Y2hpbmcgd2lsZGNhcmRzIGFuZApwcmlvcml0eS4gCg0KBQUTAgIBEgSLCQQXCg0KBQUTAgICEgSLCRobCioKBAUTAgMSBI0JBBwiHCBEZWxldGUgYWxsIG1hdGNoaW5nIGZsb3dzLiAKDQoFBRMCAwESBI0JBBAKDQoFBRMCAwISBI0JGhsKRgoEBRMCBBIEjgkEHCI4IERlbGV0ZSBlbnRyeSBzdHJpY3RseSBtYXRjaGluZyB3aWxkY2FyZHMgYW5kCnByaW9yaXR5LiAKDQoFBRMCBAESBI4JBBcKDQoFBRMCBAISBI4JGhsK3gEKAgUUEgaZCQChCQEyWyBWYWx1ZSB1c2VkIGluICJpZGxlX3RpbWVvdXQiIGFuZCAiaGFyZF90aW1lb3V0IiB0byBpbmRpY2F0ZSB0aGF0IHRoZSBlbnRyeQogaXMgcGVybWFuZW50LiAyHSNkZWZpbmUgT0ZQX0ZMT1dfUEVSTUFORU5UIDAKMi4gQnkgZGVmYXVsdCwgY2hvb3NlIGEgcHJpb3JpdHkgaW4gdGhlIG1pZGRsZS4gMiQjZGVmaW5lIE9GUF9ERUZBVUxUX1BSSU9SSVRZIDB4ODAwMAoKCwoDBRQBEgSZCQUXCgwKBAUUAgASBJoJBBwKDQoFBRQCAAESBJoJBBEKDQoFBRQCAAISBJoJGhsKSwoEBRQCARIEmwkEHCI9IFNlbmQgZmxvdyByZW1vdmVkIG1lc3NhZ2Ugd2hlbiBmbG93CiBleHBpcmVzIG9yIGlzIGRlbGV0ZWQuIAoNCgUFFAIBARIEmwkEFwoNCgUFFAIBAhIEmwkaGwo0CgQFFAICEgSdCQQcIiYgQ2hlY2sgZm9yIG92ZXJsYXBwaW5nIGVudHJpZXMgZmlyc3QuIAoNCgUFFAICARIEnQkEFwoNCgUFFAICAhIEnQkaGwoyCgQFFAIDEgSeCQQcIiQgUmVzZXQgZmxvdyBwYWNrZXQgYW5kIGJ5dGUgY291bnRzLiAKDQoFBRQCAwESBJ4JBBYKDQoFBRQCAwISBJ4JGhsKMQoEBRQCBBIEnwkEHCIjIERvbid0IGtlZXAgdHJhY2sgb2YgcGFja2V0IGNvdW50LiAKDQoFBRQCBAESBJ8JBBcKDQoFBRQCBAISBJ8JGhsKLwoEBRQCBRIEoAkEHSIhIERvbid0IGtlZXAgdHJhY2sgb2YgYnl0ZSBjb3VudC4gCg0KBQUUAgUBEgSgCQQXCg0KBQUUAgUCEgSgCRocCkEKAgQdEgakCQDBCQEaMyBGbG93IHNldHVwIGFuZCB0ZWFyZG93biAoY29udHJvbGxlciAtPiBkYXRhcGF0aCkuIAoLCgMEHQESBKQJCBQKSQoEBB0CABIEpgkEFhoTb2ZwX2hlYWRlciBoZWFkZXI7CiImIE9wYXF1ZSBjb250cm9sbGVyLWlzc3VlZCBpZGVudGlmaWVyLiAKDwoFBB0CAAQSBqYJBKQJFgoNCgUEHQIABRIEpgkECgoNCgUEHQIAARIEpgkLEQoNCgUEHQIAAxIEpgkUFQqhAQoEBB0CARIEpwkEGyKSASBNYXNrIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGNvb2tpZSBiaXRzCnRoYXQgbXVzdCBtYXRjaCB3aGVuIHRoZSBjb21tYW5kIGlzCk9GUEZDX01PRElGWSogb3IgT0ZQRkNfREVMRVRFKi4gQSB2YWx1ZQpvZiAwIGluZGljYXRlcyBubyByZXN0cmljdGlvbi4gCg8KBQQdAgEEEganCQSmCRYKDQoFBB0CAQUSBKcJBAoKDQoFBB0CAQESBKcJCxYKDQoFBB0CAQMSBKcJGRoKlgEKBAQdAgISBKsJBBgihwEgSUQgb2YgdGhlIHRhYmxlIHRvIHB1dCB0aGUgZmxvdyBpbi4KRm9yIE9GUEZDX0RFTEVURV8qIGNvbW1hbmRzLCBPRlBUVF9BTEwKY2FuIGFsc28gYmUgdXNlZCB0byBkZWxldGUgbWF0Y2hpbmcKZmxvd3MgZnJvbSBhbGwgdGFibGVzLiAKDwoFBB0CAgQSBqsJBKcJGwoNCgUEHQICBRIEqwkECgoNCgUEHQICARIEqwkLEwoNCgUEHQICAxIEqwkWFwofCgQEHQIDEgSvCQQlIhEgT25lIG9mIE9GUEZDXyouIAoPCgUEHQIDBBIGrwkEqwkYCg0KBQQdAgMGEgSvCQQYCg0KBQQdAgMBEgSvCRkgCg0KBQQdAgMDEgSvCSMkCjYKBAQdAgQSBLAJBBwiKCBJZGxlIHRpbWUgYmVmb3JlIGRpc2NhcmRpbmcgKHNlY29uZHMpLiAKDwoFBB0CBAQSBrAJBK8JJQoNCgUEHQIEBRIEsAkECgoNCgUEHQIEARIEsAkLFwoNCgUEHQIEAxIEsAkaGwo1CgQEHQIFEgSxCQQcIicgTWF4IHRpbWUgYmVmb3JlIGRpc2NhcmRpbmcgKHNlY29uZHMpLiAKDwoFBB0CBQQSBrEJBLAJHAoNCgUEHQIFBRIEsQkECgoNCgUEHQIFARIEsQkLFwoNCgUEHQIFAxIEsQkaGwotCgQEHQIGEgSyCQQYIh8gUHJpb3JpdHkgbGV2ZWwgb2YgZmxvdyBlbnRyeS4gCg8KBQQdAgYEEgayCQSxCRwKDQoFBB0CBgUSBLIJBAoKDQoFBB0CBgESBLIJCxMKDQoFBB0CBgMSBLIJFhcKYAoEBB0CBxIEswkEGSJSIEJ1ZmZlcmVkIHBhY2tldCB0byBhcHBseSB0bywgb3IKT0ZQX05PX0JVRkZFUi4KTm90IG1lYW5pbmdmdWwgZm9yIE9GUEZDX0RFTEVURSouIAoPCgUEHQIHBBIGswkEsgkYCg0KBQQdAgcFEgSzCQQKCg0KBQQdAgcBEgSzCQsUCg0KBQQdAgcDEgSzCRcYCpcBCgQEHQIIEgS2CQQYIogBIEZvciBPRlBGQ19ERUxFVEUqIGNvbW1hbmRzLCByZXF1aXJlCm1hdGNoaW5nIGVudHJpZXMgdG8gaW5jbHVkZSB0aGlzIGFzIGFuCm91dHB1dCBwb3J0LiAgQSB2YWx1ZSBvZiBPRlBQX0FOWQppbmRpY2F0ZXMgbm8gcmVzdHJpY3Rpb24uIAoPCgUEHQIIBBIGtgkEswkZCg0KBQQdAggFEgS2CQQKCg0KBQQdAggBEgS2CQsTCg0KBQQdAggDEgS2CRYXCpgBCgQEHQIJEgS6CQQaIokBIEZvciBPRlBGQ19ERUxFVEUqIGNvbW1hbmRzLCByZXF1aXJlCm1hdGNoaW5nIGVudHJpZXMgdG8gaW5jbHVkZSB0aGlzIGFzIGFuCm91dHB1dCBncm91cC4gIEEgdmFsdWUgb2YgT0ZQR19BTlkKaW5kaWNhdGVzIG5vIHJlc3RyaWN0aW9uLiAKDwoFBB0CCQQSBroJBLYJGAoNCgUEHQIJBRIEugkECgoNCgUEHQIJARIEugkLFAoNCgUEHQIJAxIEugkXGQooCgQEHQIKEgS+CQQWIhogQml0bWFwIG9mIE9GUEZGXyogZmxhZ3MuIAoPCgUEHQIKBBIGvgkEugkaCg0KBQQdAgoFEgS+CQQKCg0KBQQdAgoBEgS+CQsQCg0KBQQdAgoDEgS+CRMVCi8KBAQdAgsSBL8JBBkiISBGaWVsZHMgdG8gbWF0Y2guIFZhcmlhYmxlIHNpemUuIAoPCgUEHQILBBIGvwkEvgkWCg0KBQQdAgsGEgS/CQQNCg0KBQQdAgsBEgS/CQ4TCg0KBQQdAgsDEgS/CRYYChoKBAQdAgwSBMAJBC8iDCAwIG9yIG1vcmUuIAoNCgUEHQIMBBIEwAkEDAoNCgUEHQIMBhIEwAkNHAoNCgUEHQIMARIEwAkdKQoNCgUEHQIMAxIEwAksLgpKCgIFFRIGxAkAzwkBGjwgR3JvdXAgbnVtYmVyaW5nLiBHcm91cHMgY2FuIHVzZSBhbnkgbnVtYmVyIHVwIHRvIE9GUEdfTUFYLiAKCwoDBRUBEgTECQUOCgwKBAUVAgASBMYJBBUKDQoFBRUCAAESBMYJBBAKDQoFBRUCAAISBMYJExQKKQoEBRUCARIEyQkEIRobIExhc3QgdXNhYmxlIGdyb3VwIG51bWJlci4gCg0KBQUVAgEBEgTJCQQMCg0KBQUVAgECEgTJCRYgClAKBAUVAgISBMwJBCEaDiBGYWtlIGdyb3Vwcy4gIjIgUmVwcmVzZW50cyBhbGwgZ3JvdXBzIGZvciBncm91cCBkZWxldGUKY29tbWFuZHMuIAoNCgUFFQICARIEzAkEDAoNCgUFFQICAhIEzAkWIAo1CgQFFQIDEgTOCQQhIicgU3BlY2lhbCB3aWxkY2FyZDogbm8gZ3JvdXAgc3BlY2lmaWVkLiAKDQoFBRUCAwESBM4JBAwKDQoFBRUCAwISBM4JFiAKHgoCBRYSBtIJANYJARoQIEdyb3VwIGNvbW1hbmRzIAoLCgMFFgESBNIJBRoKGgoEBRYCABIE0wkEFSIMIE5ldyBncm91cC4gCg0KBQUWAgABEgTTCQQNCg0KBQUWAgACEgTTCRMUCisKBAUWAgESBNQJBBUiHSBNb2RpZnkgYWxsIG1hdGNoaW5nIGdyb3Vwcy4gCg0KBQUWAgEBEgTUCQQQCg0KBQUWAgECEgTUCRMUCisKBAUWAgISBNUJBBUiHSBEZWxldGUgYWxsIG1hdGNoaW5nIGdyb3Vwcy4gCg0KBQUWAgIBEgTVCQQQCg0KBQUWAgICEgTVCRMUCikKAgQeEgbZCQDjCQEaGyBCdWNrZXQgZm9yIHVzZSBpbiBncm91cHMuIAoLCgMEHgESBNkJCBIKSwoEBB4CABIE2gkEFiI9IFJlbGF0aXZlIHdlaWdodCBvZiBidWNrZXQuICBPbmx5CmRlZmluZWQgZm9yIHNlbGVjdCBncm91cHMuIAoPCgUEHgIABBIG2gkE2QkUCg0KBQQeAgAFEgTaCQQKCg0KBQQeAgABEgTaCQsRCg0KBQQeAgADEgTaCRQVCm4KBAQeAgESBNwJBBoiYCBQb3J0IHdob3NlIHN0YXRlIGFmZmVjdHMgd2hldGhlciB0aGlzCmJ1Y2tldCBpcyBsaXZlLiAgT25seSByZXF1aXJlZCBmb3IgZmFzdApmYWlsb3ZlciBncm91cHMuIAoPCgUEHgIBBBIG3AkE2gkWCg0KBQQeAgEFEgTcCQQKCg0KBQQeAgEBEgTcCQsVCg0KBQQeAgEDEgTcCRgZCm8KBAQeAgISBN8JBBsiYSBHcm91cCB3aG9zZSBzdGF0ZSBhZmZlY3RzIHdoZXRoZXIgdGhpcwpidWNrZXQgaXMgbGl2ZS4gIE9ubHkgcmVxdWlyZWQgZm9yIGZhc3QKZmFpbG92ZXIgZ3JvdXBzLiAKDwoFBB4CAgQSBt8JBNwJGgoNCgUEHgICBRIE3wkECgoNCgUEHgICARIE3wkLFgoNCgUEHgICAxIE3wkZGgoMCgQEHgIDEgTiCQQkCg0KBQQeAgMEEgTiCQQMCg0KBQQeAgMGEgTiCQ0XCg0KBQQeAgMBEgTiCRgfCg0KBQQeAgMDEgTiCSIjCkIKAgQfEgbmCQDsCQEaNCBHcm91cCBzZXR1cCBhbmQgdGVhcmRvd24gKGNvbnRyb2xsZXIgLT4gZGF0YXBhdGgpLiAKCwoDBB8BEgTmCQgVCjQKBAQfAgASBOgJBCYaE29mcF9oZWFkZXIgaGVhZGVyOwoiESBPbmUgb2YgT0ZQR0NfKi4gCg8KBQQfAgAEEgboCQTmCRcKDQoFBB8CAAYSBOgJBBkKDQoFBB8CAAESBOgJGiEKDQoFBB8CAAMSBOgJJCUKHwoEBB8CARIE6QkEHCIRIE9uZSBvZiBPRlBHVF8qLiAKDwoFBB8CAQQSBukJBOgJJgoNCgUEHwIBBhIE6QkEEgoNCgUEHwIBARIE6QkTFwoNCgUEHwIBAxIE6QkaGwohCgQEHwICEgTqCQQYIhMgR3JvdXAgaWRlbnRpZmllci4gCg8KBQQfAgIEEgbqCQTpCRwKDQoFBB8CAgUSBOoJBAoKDQoFBB8CAgESBOoJCxMKDQoFBB8CAgMSBOoJFhcKDAoEBB8CAxIE6wkEJAoNCgUEHwIDBBIE6wkEDAoNCgUEHwIDBhIE6wkNFwoNCgUEHwIDARIE6wkYHwoNCgUEHwIDAxIE6wkiIwpgCgIFFxIG8AkA9QkBGlIgR3JvdXAgdHlwZXMuICBWYWx1ZXMgaW4gdGhlIHJhbmdlIFsxMjg7IDI1NV0gYXJlIHJlc2VydmVkIGZvciBleHBlcmltZW50YWwKIHVzZS4gCgsKAwUXARIE8AkFEwoxCgQFFwIAEgTxCQQXIiMgQWxsIChtdWx0aWNhc3QvYnJvYWRjYXN0KSBncm91cC4gIAoNCgUFFwIAARIE8QkEDQoNCgUFFwIAAhIE8QkVFgodCgQFFwIBEgTyCQQXIg8gU2VsZWN0IGdyb3VwLiAKDQoFBRcCAQESBPIJBBAKDQoFBRcCAQISBPIJFRYKHwoEBRcCAhIE8wkEFyIRIEluZGlyZWN0IGdyb3VwLiAKDQoFBRcCAgESBPMJBBIKDQoFBRcCAgISBPMJFRYKJAoEBRcCAxIE9AkEFyIWIEZhc3QgZmFpbG92ZXIgZ3JvdXAuIAoNCgUFFwIDARIE9AkEDAoNCgUFFwIDAhIE9AkVFgqFAQoCBCASBvsJAIQKARonIFNlbmQgcGFja2V0IChjb250cm9sbGVyIC0+IGRhdGFwYXRoKS4gMisgU3BlY2lhbCBidWZmZXItaWQgdG8gaW5kaWNhdGUgJ25vIGJ1ZmZlcicgMiEjZGVmaW5lIE9GUF9OT19CVUZGRVIgMHhmZmZmZmZmZgoKCwoDBCABEgT7CQgWClUKBAQgAgASBP0JBBkaE29mcF9oZWFkZXIgaGVhZGVyOwoiMiBJRCBhc3NpZ25lZCBieSBkYXRhcGF0aCAoT0ZQX05PX0JVRkZFUgppZiBub25lKS4gCg8KBQQgAgAEEgb9CQT7CRgKDQoFBCACAAUSBP0JBAoKDQoFBCACAAESBP0JCxQKDQoFBCACAAMSBP0JFxgKNgoEBCACARIE/wkEFyIoIFBhY2tldCdzIGlucHV0IHBvcnQgb3IgT0ZQUF9DT05UUk9MTEVSLgoPCgUEIAIBBBIG/wkE/QkZCg0KBQQgAgEFEgT/CQQKCg0KBQQgAgEBEgT/CQsSCg0KBQQgAgEDEgT/CRUWCigKBAQgAgISBIAKBCQiGiBBY3Rpb24gbGlzdCAtIDAgb3IgbW9yZS4gCg0KBQQgAgIEEgSACgQMCg0KBQQgAgIGEgSACg0XCg0KBQQgAgIBEgSAChgfCg0KBQQgAgIDEgSACiIjCqMBCgQEIAIDEgSDCgQTGoQBIFRoZSB2YXJpYWJsZSBzaXplIGFjdGlvbiBsaXN0IGlzIG9wdGlvbmFsbHkgZm9sbG93ZWQgYnkgcGFja2V0IGRhdGEuCiBUaGlzIGRhdGEgaXMgb25seSBwcmVzZW50IGFuZCBtZWFuaW5nZnVsIGlmIGJ1ZmZlcl9pZCA9PSAtMS4gIg4gUGFja2V0IGRhdGEuIAoPCgUEIAIDBBIGgwoEgAokCg0KBQQgAgMFEgSDCgQJCg0KBQQgAgMBEgSDCgoOCg0KBQQgAgMDEgSDChESCkAKAgUYEgaHCgCLCgEaMiBXaHkgaXMgdGhpcyBwYWNrZXQgYmVpbmcgc2VudCB0byB0aGUgY29udHJvbGxlcj8gCgsKAwUYARIEhwoFGQo5CgQFGAIAEgSICgQZIisgTm8gbWF0Y2hpbmcgZmxvdyAodGFibGUtbWlzcyBmbG93IGVudHJ5KS4gCg0KBQUYAgABEgSICgQRCg0KBQUYAgACEgSIChcYCjcKBAUYAgESBIkKBBkiKSBBY3Rpb24gZXhwbGljaXRseSBvdXRwdXQgdG8gY29udHJvbGxlci4gCg0KBQUYAgEBEgSJCgQPCg0KBQUYAgECEgSJChcYCiYKBAUYAgISBIoKBBkiGCBQYWNrZXQgaGFzIGludmFsaWQgVFRMIAoNCgUFGAICARIEigoEFAoNCgUFGAICAhIEigoXGApBCgIEIRIGjgoAlgoBGjMgUGFja2V0IHJlY2VpdmVkIG9uIHBvcnQgKGRhdGFwYXRoIC0+IGNvbnRyb2xsZXIpLiAKCwoDBCEBEgSOCggVCj0KBAQhAgASBJAKBBkaE29mcF9oZWFkZXIgaGVhZGVyOwoiGiBJRCBhc3NpZ25lZCBieSBkYXRhcGF0aC4gCg8KBQQhAgAEEgaQCgSOChcKDQoFBCECAAUSBJAKBAoKDQoFBCECAAESBJAKCxQKDQoFBCECAAMSBJAKFxgKKwoEBCECARIEkQoEJCIdIFJlYXNvbiBwYWNrZXQgaXMgYmVpbmcgc2VudCAKDwoFBCECAQQSBpEKBJAKGQoNCgUEIQIBBhIEkQoEGAoNCgUEIQIBARIEkQoZHwoNCgUEIQIBAxIEkQoiIwoyCgQEIQICEgSSCgQYIiQgSUQgb2YgdGhlIHRhYmxlIHRoYXQgd2FzIGxvb2tlZCB1cCAKDwoFBCECAgQSBpIKBJEKJAoNCgUEIQICBRIEkgoECgoNCgUEIQICARIEkgoLEwoNCgUEIQICAxIEkgoWFwo8CgQEIQIDEgSTCgQWIi4gQ29va2llIG9mIHRoZSBmbG93IGVudHJ5IHRoYXQgd2FzIGxvb2tlZCB1cC4gCg8KBQQhAgMEEgaTCgSSChgKDQoFBCECAwUSBJMKBAoKDQoFBCECAwESBJMKCxEKDQoFBCECAwMSBJMKFBUKLwoEBCECBBIElAoEGCIhIFBhY2tldCBtZXRhZGF0YS4gVmFyaWFibGUgc2l6ZS4gCg8KBQQhAgQEEgaUCgSTChYKDQoFBCECBAYSBJQKBA0KDQoFBCECBAESBJQKDhMKDQoFBCECBAMSBJQKFhcKHgoEBCECBRIElQoEEyIQIEV0aGVybmV0IGZyYW1lIAoPCgUEIQIFBBIGlQoElAoYCg0KBQQhAgUFEgSVCgQJCg0KBQQhAgUBEgSVCgoOCg0KBQQhAgUDEgSVChESCioKAgUZEgaZCgCfCgEaHCBXaHkgd2FzIHRoaXMgZmxvdyByZW1vdmVkPyAKCwoDBRkBEgSZCgUcCjUKBAUZAgASBJoKBBsiJyBGbG93IGlkbGUgdGltZSBleGNlZWRlZCBpZGxlX3RpbWVvdXQuIAoNCgUFGQIAARIEmgoEFgoNCgUFGQIAAhIEmgoZGgorCgQFGQIBEgSbCgQbIh0gVGltZSBleGNlZWRlZCBoYXJkX3RpbWVvdXQuIAoNCgUFGQIBARIEmwoEFgoNCgUFGQIBAhIEmwoZGgotCgQFGQICEgScCgQbIh8gRXZpY3RlZCBieSBhIERFTEVURSBmbG93IG1vZC4gCg0KBQUZAgIBEgScCgQQCg0KBQUZAgICEgScChkaCiIKBAUZAgMSBJ0KBBsiFCBHcm91cCB3YXMgcmVtb3ZlZC4gCg0KBQUZAgMBEgSdCgQWCg0KBQUZAgMCEgSdChkaCiEKBAUZAgQSBJ4KBBsiEyBNZXRlciB3YXMgcmVtb3ZlZCAKDQoFBRkCBAESBJ4KBBYKDQoFBRkCBAISBJ4KGRoKNgoCBCISBqIKALIKARooIEZsb3cgcmVtb3ZlZCAoZGF0YXBhdGggLT4gY29udHJvbGxlcikuIAoLCgMEIgESBKIKCBgKSQoEBCICABIEpAoEFhoTb2ZwX2hlYWRlciBoZWFkZXI7CiImIE9wYXF1ZSBjb250cm9sbGVyLWlzc3VlZCBpZGVudGlmaWVyLiAKDwoFBCICAAQSBqQKBKIKGgoNCgUEIgIABRIEpAoECgoNCgUEIgIAARIEpAoLEQoNCgUEIgIAAxIEpAoUFQotCgQEIgIBEgSmCgQYIh8gUHJpb3JpdHkgbGV2ZWwgb2YgZmxvdyBlbnRyeS4gCg8KBQQiAgEEEgamCgSkChYKDQoFBCICAQUSBKYKBAoKDQoFBCICAQESBKYKCxMKDQoFBCICAQMSBKYKFhcKHwoEBCICAhIEpwoEJyIRIE9uZSBvZiBPRlBSUl8qLiAKDwoFBCICAgQSBqcKBKYKGAoNCgUEIgICBhIEpwoEGwoNCgUEIgICARIEpwocIgoNCgUEIgICAxIEpwolJgofCgQEIgIDEgSoCgQYIhEgSUQgb2YgdGhlIHRhYmxlIAoPCgUEIgIDBBIGqAoEpwonCg0KBQQiAgMFEgSoCgQKCg0KBQQiAgMBEgSoCgsTCg0KBQQiAgMDEgSoChYXCi8KBAQiAgQSBKoKBBwiISBUaW1lIGZsb3cgd2FzIGFsaXZlIGluIHNlY29uZHMuIAoPCgUEIgIEBBIGqgoEqAoYCg0KBQQiAgQFEgSqCgQKCg0KBQQiAgQBEgSqCgsXCg0KBQQiAgQDEgSqChobCkcKBAQiAgUSBKsKBB0iOSBUaW1lIGZsb3cgd2FzIGFsaXZlIGluIG5hbm9zZWNvbmRzIGJleW9uZApkdXJhdGlvbl9zZWMuIAoPCgUEIgIFBBIGqwoEqgocCg0KBQQiAgUFEgSrCgQKCg0KBQQiAgUBEgSrCgsYCg0KBQQiAgUDEgSrChscCjQKBAQiAgYSBK0KBBwiJiBJZGxlIHRpbWVvdXQgZnJvbSBvcmlnaW5hbCBmbG93IG1vZC4gCg8KBQQiAgYEEgatCgSrCh0KDQoFBCICBgUSBK0KBAoKDQoFBCICBgESBK0KCxcKDQoFBCICBgMSBK0KGhsKNAoEBCICBxIErgoEHCImIEhhcmQgdGltZW91dCBmcm9tIG9yaWdpbmFsIGZsb3cgbW9kLiAKDwoFBCICBwQSBq4KBK0KHAoNCgUEIgIHBRIErgoECgoNCgUEIgIHARIErgoLFwoNCgUEIgIHAxIErgoaGwoMCgQEIgIIEgSvCgQcCg8KBQQiAggEEgavCgSuChwKDQoFBCICCAUSBK8KBAoKDQoFBCICCAESBK8KCxcKDQoFBCICCAMSBK8KGhsKDAoEBCICCRIEsAoEGwoPCgUEIgIJBBIGsAoErwocCg0KBQQiAgkFEgSwCgQKCg0KBQQiAgkBEgSwCgsVCg0KBQQiAgkDEgSwChgaCjUKBAQiAgoSBLEKBBoiJyBEZXNjcmlwdGlvbiBvZiBmaWVsZHMuIFZhcmlhYmxlIHNpemUuIAoPCgUEIgIKBBIGsQoEsAobCg0KBQQiAgoGEgSxCgQNCg0KBQQiAgoBEgSxCg4TCg0KBQQiAgoDEgSxChYZCk8KAgUaEga1CgC/CgEaQSBNZXRlciBudW1iZXJpbmcuIEZsb3cgbWV0ZXJzIGNhbiB1c2UgYW55IG51bWJlciB1cCB0byBPRlBNX01BWC4gCgsKAwUaARIEtQoFDgoMCgQFGgIAEgS2CgQYCg0KBQUaAgABEgS2CgQNCg0KBQUaAgACEgS2ChYXCiIKBAUaAgESBLgKBCEaFCBMYXN0IHVzYWJsZSBtZXRlci4gCg0KBQUaAgEBEgS4CgQMCg0KBQUaAgECEgS4ChYgCjsKBAUaAgISBLsKBCEaESBWaXJ0dWFsIG1ldGVycy4gIhogTWV0ZXIgZm9yIHNsb3cgZGF0YXBhdGguIAoNCgUFGgICARIEuwoEEQoNCgUFGgICAhIEuwoWIAowCgQFGgIDEgS8CgQhIiIgTWV0ZXIgZm9yIGNvbnRyb2xsZXIgY29ubmVjdGlvbi4gCg0KBQUaAgMBEgS8CgQTCg0KBQUaAgMCEgS8ChYgCkEKBAUaAgQSBL0KBCEiMyBSZXByZXNlbnRzIGFsbCBtZXRlcnMgZm9yIHN0YXQgcmVxdWVzdHMKY29tbWFuZHMuIAoNCgUFGgIEARIEvQoEDAoNCgUFGgIEAhIEvQoWIAogCgIFGxIGwgoAxwoBGhIgTWV0ZXIgYmFuZCB0eXBlcyAKCwoDBRsBEgTCCgUYCgwKBAUbAgASBMMKBB8KDQoFBRsCAAESBMMKBBIKDQoFBRsCAAISBMMKHR4KHAoEBRsCARIExAoEHyIOIERyb3AgcGFja2V0LiAKDQoFBRsCAQESBMQKBA8KDQoFBRsCAQISBMQKHR4KLQoEBRsCAhIExQoEHyIfIFJlbWFyayBEU0NQIGluIHRoZSBJUCBoZWFkZXIuIAoNCgUFGwICARIExQoEFgoNCgUFGwICAhIExQodHgooCgQFGwIDEgTGCgQkIhogRXhwZXJpbWVudGVyIG1ldGVyIGJhbmQuIAoNCgUFGwIDARIExgoEFwoNCgUFGwIDAhIExgodIwoxCgIEIxIGygoA0woBGiMgQ29tbW9uIGhlYWRlciBmb3IgYWxsIG1ldGVyIGJhbmRzIAoLCgMEIwESBMoKCB0KIAoEBCMCABIEywoEISISIE9uZSBvZiBPRlBNQlRfKi4gCg8KBQQjAgAEEgbLCgTKCh8KDQoFBCMCAAYSBMsKBBcKDQoFBCMCAAESBMsKGBwKDQoFBCMCAAMSBMsKHyAKIwoEBCMCARIEzAoEISIVIFJhdGUgZm9yIHRoaXMgYmFuZC4gCg8KBQQjAgEEEgbMCgTLCiEKDQoFBCMCAQUSBMwKBAoKDQoFBCMCAQESBMwKGBwKDQoFBCMCAQMSBMwKHyAKHwoEBCMCAhIEzQoEJyIRIFNpemUgb2YgYnVyc3RzLiAKDwoFBCMCAgQSBs0KBMwKIQoNCgUEIwICBRIEzQoECgoNCgUEIwICARIEzQoYIgoNCgUEIwICAxIEzQolJgoOCgQEIwgAEgbOCgTSCgUKDQoFBCMIAAESBM4KCg4KDAoEBCMCAxIEzwoIJQoNCgUEIwIDBhIEzwoIGwoNCgUEIwIDARIEzwocIAoNCgUEIwIDAxIEzwojJAoMCgQEIwIEEgTQCggzCg0KBQQjAgQGEgTQCggiCg0KBQQjAgQBEgTQCiMuCg0KBQQjAgQDEgTQCjEyCgwKBAQjAgUSBNEKCDUKDQoFBCMCBQYSBNEKCCMKDQoFBCMCBQESBNEKJDAKDQoFBCMCBQMSBNEKMzQKPwoCBCQSBtYKANgKARohIE9GUE1CVF9EUk9QIGJhbmQgLSBkcm9wIHBhY2tldHMgIg5FbXB0eSBwYXlsb2FkCgoLCgMEJAESBNYKCBsKRgoCBCUSBtsKAN0KARo4IE9GUE1CVF9EU0NQX1JFTUFSSyBiYW5kIC0gUmVtYXJrIERTQ1AgaW4gdGhlIElQIGhlYWRlciAKCwoDBCUBEgTbCggiCjcKBAQlAgASBNwKBCEiKSBOdW1iZXIgb2YgZHJvcCBwcmVjZWRlbmNlIGxldmVsIHRvIGFkZC4gCg8KBQQlAgAEEgbcCgTbCiQKDQoFBCUCAAUSBNwKBAoKDQoFBCUCAAESBNwKEhwKDQoFBCUCAAMSBNwKHyAKbAoCBCYSBuEKAOUKARpeIE9GUE1CVF9FWFBFUklNRU5URVIgYmFuZCAtIEV4cGVyaW1lbnRlciB0eXBlLgogVGhlIHJlc3Qgb2YgdGhlIGJhbmQgaXMgZXhwZXJpbWVudGVyLWRlZmluZWQuIAoLCgMEJgESBOEKCCMKXwoEBCYCABIE4goEKSJRIEV4cGVyaW1lbnRlciBJRCB3aGljaCB0YWtlcyB0aGUKc2FtZSBmb3JtIGFzIGluIHN0cnVjdApvZnBfZXhwZXJpbWVudGVyX2hlYWRlci4gCg8KBQQmAgAEEgbiCgThCiUKDQoFBCYCAAUSBOIKBAoKDQoFBCYCAAESBOIKGCQKDQoFBCYCAAMSBOIKJygKHgoCBRwSBugKAOwKARoQIE1ldGVyIGNvbW1hbmRzIAoLCgMFHAESBOgKBRoKGgoEBRwCABIE6QoEEiIMIE5ldyBtZXRlci4gCg0KBQUcAgABEgTpCgQNCg0KBQUcAgACEgTpChARCicKBAUcAgESBOoKBBUiGSBNb2RpZnkgc3BlY2lmaWVkIG1ldGVyLiAKDQoFBRwCAQESBOoKBBAKDQoFBRwCAQISBOoKExQKJwoEBRwCAhIE6woEFSIZIERlbGV0ZSBzcGVjaWZpZWQgbWV0ZXIuIAoNCgUFHAICARIE6woEEAoNCgUFHAICAhIE6woTFAopCgIFHRIG7woA9QoBGhsgTWV0ZXIgY29uZmlndXJhdGlvbiBmbGFncyAKCwoDBR0BEgTvCgUUCgwKBAUdAgASBPAKBBYKDQoFBR0CAAESBPAKBBEKDQoFBR0CAAISBPAKFBUKOQoEBR0CARIE8QoEFiIrIFJhdGUgdmFsdWUgaW4ga2IvcyAoa2lsby1iaXQgcGVyIHNlY29uZCkuIAoNCgUFHQIBARIE8QoEDgoNCgUFHQIBAhIE8QoUFQopCgQFHQICEgTyCgQWIhsgUmF0ZSB2YWx1ZSBpbiBwYWNrZXQvc2VjLiAKDQoFBR0CAgESBPIKBA8KDQoFBR0CAgISBPIKFBUKHgoEBR0CAxIE8woEFiIQIERvIGJ1cnN0IHNpemUuIAoNCgUFHQIDARIE8woEDwoNCgUFHQIDAhIE8woUFQojCgQFHQIEEgT0CgQWIhUgQ29sbGVjdCBzdGF0aXN0aWNzLiAKDQoFBR0CBAESBPQKBA8KDQoFBR0CBAISBPQKFBUKNAoCBCcSBvgKAP8KARomIE1ldGVyIGNvbmZpZ3VyYXRpb24uIE9GUFRfTUVURVJfTU9ELiAKCwoDBCcBEgT4CggVCh8KBAQnAgASBPkKBCYiESBPbmUgb2YgT0ZQTUNfKi4gCg8KBQQnAgAEEgb5CgT4ChcKDQoFBCcCAAYSBPkKBBkKDQoFBCcCAAESBPkKGiEKDQoFBCcCAAMSBPkKJCUKKAoEBCcCARIE+goEJCIaIEJpdG1hcCBvZiBPRlBNRl8qIGZsYWdzLiAKDwoFBCcCAQQSBvoKBPkKJgoNCgUEJwIBBRIE+goECgoNCgUEJwIBARIE+goaHwoNCgUEJwIBAxIE+goiIwofCgQEJwICEgT7CgQnIhEgTWV0ZXIgaW5zdGFuY2UuIAoPCgUEJwICBBIG+woE+gokCg0KBQQnAgIFEgT7CgQKCg0KBQQnAgIBEgT7ChoiCg0KBQQnAgIDEgT7CiUmClUKBAQnAgMSBPwKBC0iRyBUaGUgYmFuZCBsaXN0IGxlbmd0aCBpcwppbmZlcnJlZCBmcm9tIHRoZSBsZW5ndGggZmllbGQKaW4gdGhlIGhlYWRlci4gCg0KBQQnAgMEEgT8CgQMCg0KBQQnAgMGEgT8Cg0iCg0KBQQnAgMBEgT8CiMoCg0KBQQnAgMDEgT8CissCrMBCgIFHhIGhAsAlAsBGqQBIFZhbHVlcyBmb3IgJ3R5cGUnIGluIG9mcF9lcnJvcl9tZXNzYWdlLiAgVGhlc2UgdmFsdWVzIGFyZSBpbW11dGFibGU6IHRoZXkKIHdpbGwgbm90IGNoYW5nZSBpbiBmdXR1cmUgdmVyc2lvbnMgb2YgdGhlIHByb3RvY29sIChhbHRob3VnaCBuZXcgdmFsdWVzIG1heQogYmUgYWRkZWQpLiAKCwoDBR4BEgSECwUTCiYKBAUeAgASBIULBCMiGCBIZWxsbyBwcm90b2NvbCBmYWlsZWQuIAoNCgUFHgIAARIEhQsEFgoNCgUFHgIAAhIEhQshIgorCgQFHgIBEgSGCwQjIh0gUmVxdWVzdCB3YXMgbm90IHVuZGVyc3Rvb2QuIAoNCgUFHgIBARIEhgsEFQoNCgUFHgIBAhIEhgshIgosCgQFHgICEgSHCwQjIh4gRXJyb3IgaW4gYWN0aW9uIGRlc2NyaXB0aW9uLiAKDQoFBR4CAgESBIcLBBQKDQoFBR4CAgISBIcLISIKKgoEBR4CAxIEiAsEIyIcIEVycm9yIGluIGluc3RydWN0aW9uIGxpc3QuIAoNCgUFHgIDARIEiAsEGQoNCgUFHgIDAhIEiAshIgofCgQFHgIEEgSJCwQjIhEgRXJyb3IgaW4gbWF0Y2guIAoNCgUFHgIEARIEiQsEEwoNCgUFHgIEAhIEiQshIgotCgQFHgIFEgSKCwQjIh8gUHJvYmxlbSBtb2RpZnlpbmcgZmxvdyBlbnRyeS4gCg0KBQUeAgUBEgSKCwQZCg0KBQUeAgUCEgSKCyEiCi4KBAUeAgYSBIsLBCMiICBQcm9ibGVtIG1vZGlmeWluZyBncm91cCBlbnRyeS4gCg0KBQUeAgYBEgSLCwQaCg0KBQUeAgYCEgSLCyEiCigKBAUeAgcSBIwLBCMiGiBQb3J0IG1vZCByZXF1ZXN0IGZhaWxlZC4gCg0KBQUeAgcBEgSMCwQZCg0KBQUeAgcCEgSMCyEiCikKBAUeAggSBI0LBCMiGyBUYWJsZSBtb2QgcmVxdWVzdCBmYWlsZWQuIAoNCgUFHgIIARIEjQsEGgoNCgUFHgIIAhIEjQshIgonCgQFHgIJEgSOCwQjIhkgUXVldWUgb3BlcmF0aW9uIGZhaWxlZC4gCg0KBQUeAgkBEgSOCwQZCg0KBQUeAgkCEgSOCyEiCi0KBAUeAgoSBI8LBCQiHyBTd2l0Y2ggY29uZmlnIHJlcXVlc3QgZmFpbGVkLiAKDQoFBR4CCgESBI8LBB4KDQoFBR4CCgISBI8LISMKLwoEBR4CCxIEkAsEJCIhIENvbnRyb2xsZXIgUm9sZSByZXF1ZXN0IGZhaWxlZC4gCg0KBQUeAgsBEgSQCwQdCg0KBQUeAgsCEgSQCyEjCh8KBAUeAgwSBJELBCQiESBFcnJvciBpbiBtZXRlci4gCg0KBQUeAgwBEgSRCwQaCg0KBQUeAgwCEgSRCyEjCi4KBAUeAg0SBJILBCUiICBTZXR0aW5nIHRhYmxlIGZlYXR1cmVzIGZhaWxlZC4gCg0KBQUeAg0BEgSSCwQfCg0KBQUeAg0CEgSSCyIkCiwKBAUeAg4SBJMLBCAiHiBFeHBlcmltZW50ZXIgZXJyb3IgbWVzc2FnZXMuIAoNCgUFHgIOARIEkwsEFgoNCgUFHgIOAhIEkwsZHwqJAQoCBR8SBpgLAJsLARp7IG9mcF9lcnJvcl9tc2cgJ2NvZGUnIHZhbHVlcyBmb3IgT0ZQRVRfSEVMTE9fRkFJTEVELiAgJ2RhdGEnIGNvbnRhaW5zIGFuCiBBU0NJSSB0ZXh0IHN0cmluZyB0aGF0IG1heSBnaXZlIGZhaWx1cmUgZGV0YWlscy4gCgsKAwUfARIEmAsFGgomCgQFHwIAEgSZCwQcIhggTm8gY29tcGF0aWJsZSB2ZXJzaW9uLiAKDQoFBR8CAAESBJkLBBcKDQoFBR8CAAISBJkLGhsKIgoEBR8CARIEmgsEHCIUIFBlcm1pc3Npb25zIGVycm9yLiAKDQoFBR8CAQESBJoLBBAKDQoFBR8CAQISBJoLGhsKhwEKAgUgEgafCwC0CwEaeSBvZnBfZXJyb3JfbXNnICdjb2RlJyB2YWx1ZXMgZm9yIE9GUEVUX0JBRF9SRVFVRVNULiAgJ2RhdGEnIGNvbnRhaW5zIGF0IGxlYXN0CiB0aGUgZmlyc3QgNjQgYnl0ZXMgb2YgdGhlIGZhaWxlZCByZXF1ZXN0LiAKCwoDBSABEgSfCwUZCjEKBAUgAgASBKALBCAiIyBvZnBfaGVhZGVyLnZlcnNpb24gbm90IHN1cHBvcnRlZC4gCg0KBQUgAgABEgSgCwQWCg0KBQUgAgACEgSgCx4fCi4KBAUgAgESBKELBCAiICBvZnBfaGVhZGVyLnR5cGUgbm90IHN1cHBvcnRlZC4gCg0KBQUgAgEBEgShCwQTCg0KBQUgAgECEgShCx4fCjkKBAUgAgISBKILBCAiKyBvZnBfbXVsdGlwYXJ0X3JlcXVlc3QudHlwZSBub3Qgc3VwcG9ydGVkLgoKDQoFBSACAgESBKILBBgKDQoFBSACAgISBKILHh8KfgoEBSACAxIEpAsEICJwIEV4cGVyaW1lbnRlciBpZCBub3Qgc3VwcG9ydGVkCiAoaW4gb2ZwX2V4cGVyaW1lbnRlcl9oZWFkZXIgb3IKIG9mcF9tdWx0aXBhcnRfcmVxdWVzdCBvcgogb2ZwX211bHRpcGFydF9yZXBseSkuIAoNCgUFIAIDARIEpAsEGwoNCgUFIAIDAhIEpAseHwowCgQFIAIEEgSoCwQgIiIgRXhwZXJpbWVudGVyIHR5cGUgbm90IHN1cHBvcnRlZC4gCg0KBQUgAgQBEgSoCwQXCg0KBQUgAgQCEgSoCx4fCiIKBAUgAgUSBKkLBCAiFCBQZXJtaXNzaW9ucyBlcnJvci4gCg0KBQUgAgUBEgSpCwQQCg0KBQUgAgUCEgSpCx4fCi4KBAUgAgYSBKoLBCAiICBXcm9uZyByZXF1ZXN0IGxlbmd0aCBmb3IgdHlwZS4gCg0KBQUgAgYBEgSqCwQSCg0KBQUgAgYCEgSqCx4fCjcKBAUgAgcSBKsLBCAiKSBTcGVjaWZpZWQgYnVmZmVyIGhhcyBhbHJlYWR5IGJlZW4gdXNlZC4gCg0KBQUgAgcBEgSrCwQXCg0KBQUgAgcCEgSrCx4fCjAKBAUgAggSBKwLBCAiIiBTcGVjaWZpZWQgYnVmZmVyIGRvZXMgbm90IGV4aXN0LiAKDQoFBSACCAESBKwLBBkKDQoFBSACCAISBKwLHh8KPgoEBSACCRIErQsEICIwIFNwZWNpZmllZCB0YWJsZS1pZCBpbnZhbGlkIG9yIGRvZXMgbm90CiBleGlzdC4gCg0KBQUgAgkBEgStCwQXCg0KBQUgAgkCEgStCx4fCjMKBAUgAgoSBK8LBCEiJSBEZW5pZWQgYmVjYXVzZSBjb250cm9sbGVyIGlzIHNsYXZlLiAKDQoFBSACCgESBK8LBBMKDQoFBSACCgISBK8LHiAKHQoEBSACCxIEsAsEISIPIEludmFsaWQgcG9ydC4gCg0KBQUgAgsBEgSwCwQTCg0KBQUgAgsCEgSwCx4gCi0KBAUgAgwSBLELBCEiHyBJbnZhbGlkIHBhY2tldCBpbiBwYWNrZXQtb3V0LiAKDQoFBSACDAESBLELBBUKDQoFBSACDAISBLELHiAKRQoEBSACDRIEsgsELSI3IG9mcF9tdWx0aXBhcnRfcmVxdWVzdApvdmVyZmxvd2VkIHRoZSBhc3NpZ25lZCBidWZmZXIuIAoNCgUFIAINARIEsgsEJAoNCgUFIAINAhIEsgsqLAqGAQoCBSESBrgLAMwLARp4IG9mcF9lcnJvcl9tc2cgJ2NvZGUnIHZhbHVlcyBmb3IgT0ZQRVRfQkFEX0FDVElPTi4gICdkYXRhJyBjb250YWlucyBhdCBsZWFzdAogdGhlIGZpcnN0IDY0IGJ5dGVzIG9mIHRoZSBmYWlsZWQgcmVxdWVzdC4gCgsKAwUhARIEuAsFGAozCgQFIQIAEgS5CwQiIiUgVW5rbm93biBvciB1bnN1cHBvcnRlZCBhY3Rpb24gdHlwZS4gCg0KBQUhAgABEgS5CwQTCg0KBQUhAgACEgS5CyAhCioKBAUhAgESBLoLBCIiHCBMZW5ndGggcHJvYmxlbSBpbiBhY3Rpb25zLiAKDQoFBSECAQESBLoLBBIKDQoFBSECAQISBLoLICEKMgoEBSECAhIEuwsEIiIkIFVua25vd24gZXhwZXJpbWVudGVyIGlkIHNwZWNpZmllZC4gCg0KBQUhAgIBEgS7CwQbCg0KBQUhAgICEgS7CyAhCjMKBAUhAgMSBLwLBCIiJSBVbmtub3duIGFjdGlvbiBmb3IgZXhwZXJpbWVudGVyIGlkLiAKDQoFBSECAwESBLwLBBcKDQoFBSECAwISBLwLICEKLwoEBSECBBIEvQsEIiIhIFByb2JsZW0gdmFsaWRhdGluZyBvdXRwdXQgcG9ydC4gCg0KBQUhAgQBEgS9CwQXCg0KBQUhAgQCEgS9CyAhCiQKBAUhAgUSBL4LBCIiFiBCYWQgYWN0aW9uIGFyZ3VtZW50LiAKDQoFBSECBQESBL4LBBcKDQoFBSECBQISBL4LICEKIgoEBSECBhIEvwsEIiIUIFBlcm1pc3Npb25zIGVycm9yLiAKDQoFBSECBgESBL8LBBAKDQoFBSECBgISBL8LICEKLwoEBSECBxIEwAsEIiIhIENhbid0IGhhbmRsZSB0aGlzIG1hbnkgYWN0aW9ucy4gCg0KBQUhAgcBEgTACwQTCg0KBQUhAgcCEgTACyAhCjAKBAUhAggSBMELBCIiIiBQcm9ibGVtIHZhbGlkYXRpbmcgb3V0cHV0IHF1ZXVlLiAKDQoFBSECCAESBMELBBQKDQoFBSECCAISBMELICEKMwoEBSECCRIEwgsEIiIlIEludmFsaWQgZ3JvdXAgaWQgaW4gZm9yd2FyZCBhY3Rpb24uIAoNCgUFIQIJARIEwgsEGAoNCgUFIQIJAhIEwgsgIQpVCgQFIQIKEgTDCwQjIkcgQWN0aW9uIGNhbid0IGFwcGx5IGZvciB0aGlzIG1hdGNoLApvciBTZXQtRmllbGQgbWlzc2luZyBwcmVyZXF1aXNpdGUuIAoNCgUFIQIKARIEwwsEHQoNCgUFIQIKAhIEwwsgIgpfCgQFIQILEgTFCwQjIlEgQWN0aW9uIG9yZGVyIGlzIHVuc3VwcG9ydGVkIGZvciB0aGUKYWN0aW9uIGxpc3QgaW4gYW4gQXBwbHktQWN0aW9ucyBpbnN0cnVjdGlvbiAKDQoFBSECCwESBMULBBwKDQoFBSECCwISBMULICIKNgoEBSECDBIExwsEIyIoIEFjdGlvbnMgdXNlcyBhbiB1bnN1cHBvcnRlZAp0YWcvZW5jYXAuIAoNCgUFIQIMARIExwsEEgoNCgUFIQIMAhIExwsgIgo1CgQFIQINEgTJCwQjIicgVW5zdXBwb3J0ZWQgdHlwZSBpbiBTRVRfRklFTEQgYWN0aW9uLiAKDQoFBSECDQESBMkLBBcKDQoFBSECDQISBMkLICIKMwoEBSECDhIEygsEIyIlIExlbmd0aCBwcm9ibGVtIGluIFNFVF9GSUVMRCBhY3Rpb24uIAoNCgUFIQIOARIEygsEFgoNCgUFIQIOAhIEygsgIgoxCgQFIQIPEgTLCwQjIiMgQmFkIGFyZ3VtZW50IGluIFNFVF9GSUVMRCBhY3Rpb24uIAoNCgUFIQIPARIEywsEGwoNCgUFIQIPAhIEywsgIgqLAQoCBSISBtALANwLARp9IG9mcF9lcnJvcl9tc2cgJ2NvZGUnIHZhbHVlcyBmb3IgT0ZQRVRfQkFEX0lOU1RSVUNUSU9OLiAgJ2RhdGEnIGNvbnRhaW5zIGF0CiBsZWFzdCB0aGUgZmlyc3QgNjQgYnl0ZXMgb2YgdGhlIGZhaWxlZCByZXF1ZXN0LiAKCwoDBSIBEgTQCwUdCiQKBAUiAgASBNELBCAiFiBVbmtub3duIGluc3RydWN0aW9uLiAKDQoFBSICAAESBNELBBcKDQoFBSICAAISBNELHh8KQQoEBSICARIE0gsEICIzIFN3aXRjaCBvciB0YWJsZSBkb2VzIG5vdCBzdXBwb3J0IHRoZQppbnN0cnVjdGlvbi4gCg0KBQUiAgEBEgTSCwQVCg0KBQUiAgECEgTSCx4fCisKBAUiAgISBNQLBCAiHSBJbnZhbGlkIFRhYmxlLUlEIHNwZWNpZmllZC4gCg0KBQUiAgIBEgTUCwQXCg0KBQUiAgICEgTUCx4fCjcKBAUiAgMSBNULBCAiKSBNZXRhZGF0YSB2YWx1ZSB1bnN1cHBvcnRlZCBieSBkYXRhcGF0aC4gCg0KBQUiAgMBEgTVCwQZCg0KBQUiAgMCEgTVCx4fCjwKBAUiAgQSBNYLBCMiLiBNZXRhZGF0YSBtYXNrIHZhbHVlIHVuc3VwcG9ydGVkIGJ5CmRhdGFwYXRoLiAKDQoFBSICBAESBNYLBB4KDQoFBSICBAISBNYLISIKMgoEBSICBRIE2AsEICIkIFVua25vd24gZXhwZXJpbWVudGVyIGlkIHNwZWNpZmllZC4gCg0KBQUiAgUBEgTYCwQbCg0KBQUiAgUCEgTYCx4fCjgKBAUiAgYSBNkLBCAiKiBVbmtub3duIGluc3RydWN0aW9uIGZvciBleHBlcmltZW50ZXIgaWQuIAoNCgUFIgIGARIE2QsEFwoNCgUFIgIGAhIE2QseHwovCgQFIgIHEgTaCwQgIiEgTGVuZ3RoIHByb2JsZW0gaW4gaW5zdHJ1Y3Rpb25zLiAKDQoFBSICBwESBNoLBBIKDQoFBSICBwISBNoLHh8KIgoEBSICCBIE2wsEICIUIFBlcm1pc3Npb25zIGVycm9yLiAKDQoFBSICCAESBNsLBBAKDQoFBSICCAISBNsLHh8KhQEKAgUjEgbgCwD0CwEadyBvZnBfZXJyb3JfbXNnICdjb2RlJyB2YWx1ZXMgZm9yIE9GUEVUX0JBRF9NQVRDSC4gICdkYXRhJyBjb250YWlucyBhdCBsZWFzdAogdGhlIGZpcnN0IDY0IGJ5dGVzIG9mIHRoZSBmYWlsZWQgcmVxdWVzdC4gCgsKAwUjARIE4AsFFwo9CgQFIwIAEgThCwQgIi8gVW5zdXBwb3J0ZWQgbWF0Y2ggdHlwZSBzcGVjaWZpZWQgYnkgdGhlCm1hdGNoIAoNCgUFIwIAARIE4QsEEwoNCgUFIwIAAhIE4QseHwooCgQFIwIBEgTjCwQgIhogTGVuZ3RoIHByb2JsZW0gaW4gbWF0Y2guIAoNCgUFIwIBARIE4wsEEgoNCgUFIwIBAhIE4wseHwo0CgQFIwICEgTkCwQgIiYgTWF0Y2ggdXNlcyBhbiB1bnN1cHBvcnRlZCB0YWcvZW5jYXAuIAoNCgUFIwICARIE5AsEEgoNCgUFIwICAhIE5AseHwppCgQFIwIDEgTlCwQgIlsgVW5zdXBwb3J0ZWQgZGF0YWxpbmsgYWRkciBtYXNrIC0gc3dpdGNoCmRvZXMgbm90IHN1cHBvcnQgYXJiaXRyYXJ5IGRhdGFsaW5rCmFkZHJlc3MgbWFzay4gCg0KBQUjAgMBEgTlCwQbCg0KBQUjAgMCEgTlCx4fCmcKBAUjAgQSBOgLBCAiWSBVbnN1cHBvcnRlZCBuZXR3b3JrIGFkZHIgbWFzayAtIHN3aXRjaApkb2VzIG5vdCBzdXBwb3J0IGFyYml0cmFyeSBuZXR3b3JrCmFkZHJlc3MgbWFzay4gCg0KBQUjAgQBEgToCwQbCg0KBQUjAgQCEgToCx4fClEKBAUjAgUSBOsLBCAiQyBVbnN1cHBvcnRlZCBjb21iaW5hdGlvbiBvZiBmaWVsZHMgbWFza2VkCm9yIG9taXR0ZWQgaW4gdGhlIG1hdGNoLiAKDQoFBSMCBQESBOsLBBgKDQoFBSMCBQISBOsLHh8KNAoEBSMCBhIE7QsEICImIFVuc3VwcG9ydGVkIGZpZWxkIHR5cGUgaW4gdGhlIG1hdGNoLiAKDQoFBSMCBgESBO0LBBQKDQoFBSMCBgISBO0LHh8KMwoEBSMCBxIE7gsEICIlIFVuc3VwcG9ydGVkIHZhbHVlIGluIGEgbWF0Y2ggZmllbGQuIAoNCgUFIwIHARIE7gsEFAoNCgUFIwIHAhIE7gseHwpfCgQFIwIIEgTvCwQgIlEgVW5zdXBwb3J0ZWQgbWFzayBzcGVjaWZpZWQgaW4gdGhlIG1hdGNoLApmaWVsZCBpcyBub3QgZGwtYWRkcmVzcyBvciBudy1hZGRyZXNzLiAKDQoFBSMCCAESBO8LBBMKDQoFBSMCCAISBO8LHh8KKwoEBSMCCRIE8QsEICIdIEEgcHJlcmVxdWlzaXRlIHdhcyBub3QgbWV0LiAKDQoFBSMCCQESBPELBBUKDQoFBSMCCQISBPELHh8KLAoEBSMCChIE8gsEISIeIEEgZmllbGQgdHlwZSB3YXMgZHVwbGljYXRlZC4gCg0KBQUjAgoBEgTyCwQUCg0KBQUjAgoCEgTyCx4gCiIKBAUjAgsSBPMLBCEiFCBQZXJtaXNzaW9ucyBlcnJvci4gCg0KBQUjAgsBEgTzCwQQCg0KBQUjAgsCEgTzCx4gCosBCgIFJBIG+AsAgwwBGn0gb2ZwX2Vycm9yX21zZyAnY29kZScgdmFsdWVzIGZvciBPRlBFVF9GTE9XX01PRF9GQUlMRUQuICAnZGF0YScgY29udGFpbnMKIGF0IGxlYXN0IHRoZSBmaXJzdCA2NCBieXRlcyBvZiB0aGUgZmFpbGVkIHJlcXVlc3QuIAoLCgMFJAESBPgLBR0KIgoEBSQCABIE+QsEHSIUIFVuc3BlY2lmaWVkIGVycm9yLiAKDQoFBSQCAAESBPkLBBMKDQoFBSQCAAISBPkLGxwKNgoEBSQCARIE+gsEHSIoIEZsb3cgbm90IGFkZGVkIGJlY2F1c2UgdGFibGUgd2FzIGZ1bGwuIAoNCgUFJAIBARIE+gsEFgoNCgUFJAIBAhIE+gsbHAokCgQFJAICEgT7CwQdIhYgVGFibGUgZG9lcyBub3QgZXhpc3QgCg0KBQUkAgIBEgT7CwQYCg0KBQUkAgICEgT7CxscCk4KBAUkAgMSBPwLBB0iQCBBdHRlbXB0ZWQgdG8gYWRkIG92ZXJsYXBwaW5nIGZsb3cgd2l0aApDSEVDS19PVkVSTEFQIGZsYWcgc2V0LiAKDQoFBSQCAwESBPwLBBMKDQoFBSQCAwISBPwLGxwKIgoEBSQCBBIE/gsEHSIUIFBlcm1pc3Npb25zIGVycm9yLiAKDQoFBSQCBAESBP4LBBEKDQoFBSQCBAISBP4LGxwKSAoEBSQCBRIE/wsEHSI6IEZsb3cgbm90IGFkZGVkIGJlY2F1c2Ugb2YgdW5zdXBwb3J0ZWQKaWRsZS9oYXJkIHRpbWVvdXQuIAoNCgUFJAIFARIE/wsEFwoNCgUFJAIFAhIE/wsbHAovCgQFJAIGEgSBDAQdIiEgVW5zdXBwb3J0ZWQgb3IgdW5rbm93biBjb21tYW5kLiAKDQoFBSQCBgESBIEMBBcKDQoFBSQCBgISBIEMGxwKLQoEBSQCBxIEggwEHSIfIFVuc3VwcG9ydGVkIG9yIHVua25vd24gZmxhZ3MuIAoNCgUFJAIHARIEggwEFQoNCgUFJAIHAhIEggwbHAqMAQoCBSUSBocMAKIMARp+IG9mcF9lcnJvcl9tc2cgJ2NvZGUnIHZhbHVlcyBmb3IgT0ZQRVRfR1JPVVBfTU9EX0ZBSUxFRC4gICdkYXRhJyBjb250YWlucwogYXQgbGVhc3QgdGhlIGZpcnN0IDY0IGJ5dGVzIG9mIHRoZSBmYWlsZWQgcmVxdWVzdC4gCgsKAwUlARIEhwwFHgpiCgQFJQIAEgSIDAQlIlQgR3JvdXAgbm90IGFkZGVkIGJlY2F1c2UgYSBncm91cCBBREQKYXR0ZW1wdGVkIHRvIHJlcGxhY2UgYW4KYWxyZWFkeS1wcmVzZW50IGdyb3VwLiAKDQoFBSUCAAESBIgMBBgKDQoFBSUCAAISBIgMIyQKQwoEBSUCARIEiwwEJSI1IEdyb3VwIG5vdCBhZGRlZCBiZWNhdXNlIEdyb3VwCnNwZWNpZmllZCBpcyBpbnZhbGlkLiAKDQoFBSUCAQESBIsMBBkKDQoFBSUCAQISBIsMIyQKUAoEBSUCAhIEjQwEJSJCIFN3aXRjaCBkb2VzIG5vdCBzdXBwb3J0IHVuZXF1YWwgbG9hZApzaGFyaW5nIHdpdGggc2VsZWN0IGdyb3Vwcy4gCg0KBQUlAgIBEgSNDAQeCg0KBQUlAgICEgSNDCMkCigKBAUlAgMSBI8MBCUiGiBUaGUgZ3JvdXAgdGFibGUgaXMgZnVsbC4gCg0KBQUlAgMBEgSPDAQZCg0KBQUlAgMCEgSPDCMkClMKBAUlAgQSBJAMBCUiRSBUaGUgbWF4aW11bSBudW1iZXIgb2YgYWN0aW9uIGJ1Y2tldHMKZm9yIGEgZ3JvdXAgaGFzIGJlZW4gZXhjZWVkZWQuIAoNCgUFJQIEARIEkAwEGgoNCgUFJQIEAhIEkAwjJApGCgQFJQIFEgSSDAQlIjggU3dpdGNoIGRvZXMgbm90IHN1cHBvcnQgZ3JvdXBzIHRoYXQKZm9yd2FyZCB0byBncm91cHMuIAoNCgUFJQIFARIEkgwEIAoNCgUFJQIFAhIEkgwjJApQCgQFJQIGEgSUDAQlIkIgVGhpcyBncm91cCBjYW5ub3Qgd2F0Y2ggdGhlCndhdGNoX3BvcnQgb3Igd2F0Y2hfZ3JvdXAgc3BlY2lmaWVkLgoKDQoFBSUCBgESBJQMBB0KDQoFBSUCBgISBJQMIyQKLwoEBSUCBxIElwwEJSIhIEdyb3VwIGVudHJ5IHdvdWxkIGNhdXNlIGEgbG9vcC4gCg0KBQUlAgcBEgSXDAQQCg0KBQUlAgcCEgSXDCMkCmMKBAUlAggSBJgMBCUiVSBHcm91cCBub3QgbW9kaWZpZWQgYmVjYXVzZSBhIGdyb3VwCk1PRElGWSBhdHRlbXB0ZWQgdG8gbW9kaWZ5IGEKbm9uLWV4aXN0ZW50IGdyb3VwLiAKDQoFBSUCCAESBJgMBBkKDQoFBSUCCAISBJgMIyQKTAoEBSUCCRIEmwwEJSI+IEdyb3VwIG5vdCBkZWxldGVkIGJlY2F1c2UgYW5vdGhlcgpncm91cCBpcyBmb3J3YXJkaW5nIHRvIGl0LiAKDQoFBSUCCQESBJsMBBkKDQoFBSUCCQISBJsMIyQKMgoEBSUCChIEnQwEJiIkIFVuc3VwcG9ydGVkIG9yIHVua25vd24gZ3JvdXAgdHlwZS4gCg0KBQUlAgoBEgSdDAQUCg0KBQUlAgoCEgSdDCMlCi8KBAUlAgsSBJ4MBCYiISBVbnN1cHBvcnRlZCBvciB1bmtub3duIGNvbW1hbmQuIAoNCgUFJQILARIEngwEFwoNCgUFJQILAhIEngwjJQogCgQFJQIMEgSfDAQmIhIgRXJyb3IgaW4gYnVja2V0LiAKDQoFBSUCDAESBJ8MBBYKDQoFBSUCDAISBJ8MIyUKKgoEBSUCDRIEoAwEJiIcIEVycm9yIGluIHdhdGNoIHBvcnQvZ3JvdXAuIAoNCgUFJQINARIEoAwEFQoNCgUFJQINAhIEoAwjJQoiCgQFJQIOEgShDAQmIhQgUGVybWlzc2lvbnMgZXJyb3IuIAoNCgUFJQIOARIEoQwEEQoNCgUFJQIOAhIEoQwjJQqLAQoCBSYSBqYMAK0MARp9IG9mcF9lcnJvcl9tc2cgJ2NvZGUnIHZhbHVlcyBmb3IgT0ZQRVRfUE9SVF9NT0RfRkFJTEVELiAgJ2RhdGEnIGNvbnRhaW5zCiBhdCBsZWFzdCB0aGUgZmlyc3QgNjQgYnl0ZXMgb2YgdGhlIGZhaWxlZCByZXF1ZXN0LiAKCwoDBSYBEgSmDAUdCjUKBAUmAgASBKcMBB4iJyBTcGVjaWZpZWQgcG9ydCBudW1iZXIgZG9lcyBub3QgZXhpc3QuIAoNCgUFJgIAARIEpwwEFAoNCgUFJgIAAhIEpwwcHQpLCgQFJgIBEgSoDAQeIj0gU3BlY2lmaWVkIGhhcmR3YXJlIGFkZHJlc3MgZG9lcyBub3QKIG1hdGNoIHRoZSBwb3J0IG51bWJlci4gCg0KBQUmAgEBEgSoDAQXCg0KBQUmAgECEgSoDBwdCiwKBAUmAgISBKoMBB4iHiBTcGVjaWZpZWQgY29uZmlnIGlzIGludmFsaWQuIAoNCgUFJgICARIEqgwEFgoNCgUFJgICAhIEqgwcHQovCgQFJgIDEgSrDAQeIiEgU3BlY2lmaWVkIGFkdmVydGlzZSBpcyBpbnZhbGlkLiAKDQoFBSYCAwESBKsMBBkKDQoFBSYCAwISBKsMHB0KIgoEBSYCBBIErAwEHiIUIFBlcm1pc3Npb25zIGVycm9yLiAKDQoFBSYCBAESBKwMBBEKDQoFBSYCBAISBKwMHB0KjAEKAgUnEgaxDAC1DAEafiBvZnBfZXJyb3JfbXNnICdjb2RlJyB2YWx1ZXMgZm9yIE9GUEVUX1RBQkxFX01PRF9GQUlMRUQuICAnZGF0YScgY29udGFpbnMKIGF0IGxlYXN0IHRoZSBmaXJzdCA2NCBieXRlcyBvZiB0aGUgZmFpbGVkIHJlcXVlc3QuIAoLCgMFJwESBLEMBR4KLwoEBScCABIEsgwEGyIhIFNwZWNpZmllZCB0YWJsZSBkb2VzIG5vdCBleGlzdC4gCg0KBQUnAgABEgSyDAQVCg0KBQUnAgACEgSyDBkaCiwKBAUnAgESBLMMBBsiHiBTcGVjaWZpZWQgY29uZmlnIGlzIGludmFsaWQuIAoNCgUFJwIBARIEswwEFgoNCgUFJwIBAhIEswwZGgoiCgQFJwICEgS0DAQbIhQgUGVybWlzc2lvbnMgZXJyb3IuIAoNCgUFJwICARIEtAwEEQoNCgUFJwICAhIEtAwZGgqJAQoCBSgSBrkMAL0MARp7IG9mcF9lcnJvciBtc2cgJ2NvZGUnIHZhbHVlcyBmb3IgT0ZQRVRfUVVFVUVfT1BfRkFJTEVELiAnZGF0YScgY29udGFpbnMKIGF0IGxlYXN0IHRoZSBmaXJzdCA2NCBieXRlcyBvZiB0aGUgZmFpbGVkIHJlcXVlc3QgCgsKAwUoARIEuQwFHQo2CgQFKAIAEgS6DAQbIiggSW52YWxpZCBwb3J0IChvciBwb3J0IGRvZXMgbm90IGV4aXN0KS4gCg0KBQUoAgABEgS6DAQUCg0KBQUoAgACEgS6DBkaCiUKBAUoAgESBLsMBBsiFyBRdWV1ZSBkb2VzIG5vdCBleGlzdC4gCg0KBQUoAgEBEgS7DAQVCg0KBQUoAgECEgS7DBkaCiIKBAUoAgISBLwMBBsiFCBQZXJtaXNzaW9ucyBlcnJvci4gCg0KBQUoAgIBEgS8DAQRCg0KBQUoAgICEgS8DBkaCpABCgIFKRIGwQwAxQwBGoEBIG9mcF9lcnJvcl9tc2cgJ2NvZGUnIHZhbHVlcyBmb3IgT0ZQRVRfU1dJVENIX0NPTkZJR19GQUlMRUQuICdkYXRhJyBjb250YWlucwogYXQgbGVhc3QgdGhlIGZpcnN0IDY0IGJ5dGVzIG9mIHRoZSBmYWlsZWQgcmVxdWVzdC4gCgsKAwUpARIEwQwFIgorCgQFKQIAEgTCDAQbIh0gU3BlY2lmaWVkIGZsYWdzIGlzIGludmFsaWQuIAoNCgUFKQIAARIEwgwEFQoNCgUFKQIAAhIEwgwZGgopCgQFKQIBEgTDDAQbIhsgU3BlY2lmaWVkIGxlbiBpcyBpbnZhbGlkLiAKDQoFBSkCAQESBMMMBBMKDQoFBSkCAQISBMMMGRoKIgoEBSkCAhIExAwEGyIUIFBlcm1pc3Npb25zIGVycm9yLiAKDQoFBSkCAgESBMQMBBEKDQoFBSkCAgISBMQMGRoKjwEKAgUqEgbJDADNDAEagAEgb2ZwX2Vycm9yX21zZyAnY29kZScgdmFsdWVzIGZvciBPRlBFVF9ST0xFX1JFUVVFU1RfRkFJTEVELiAnZGF0YScgY29udGFpbnMKIGF0IGxlYXN0IHRoZSBmaXJzdCA2NCBieXRlcyBvZiB0aGUgZmFpbGVkIHJlcXVlc3QuIAoLCgMFKgESBMkMBSEKMQoEBSoCABIEygwEGyIjIFN0YWxlIE1lc3NhZ2U6IG9sZCBnZW5lcmF0aW9uX2lkLiAKDQoFBSoCAAESBMoMBBEKDQoFBSoCAAISBMoMGRoKMwoEBSoCARIEywwEGyIlIENvbnRyb2xsZXIgcm9sZSBjaGFuZ2UgdW5zdXBwb3J0ZWQuIAoNCgUFKgIBARIEywwEEQoNCgUFKgIBAhIEywwZGgodCgQFKgICEgTMDAQbIg8gSW52YWxpZCByb2xlLiAKDQoFBSoCAgESBMwMBBQKDQoFBSoCAgISBMwMGRoKjAEKAgUrEgbRDADkDAEafiBvZnBfZXJyb3JfbXNnICdjb2RlJyB2YWx1ZXMgZm9yIE9GUEVUX01FVEVSX01PRF9GQUlMRUQuICAnZGF0YScgY29udGFpbnMKIGF0IGxlYXN0IHRoZSBmaXJzdCA2NCBieXRlcyBvZiB0aGUgZmFpbGVkIHJlcXVlc3QuIAoLCgMFKwESBNEMBR4KIgoEBSsCABIE0gwEHiIUIFVuc3BlY2lmaWVkIGVycm9yLiAKDQoFBSsCAAESBNIMBBMKDQoFBSsCAAISBNIMHB0KXAoEBSsCARIE0wwEHiJOIE1ldGVyIG5vdCBhZGRlZCBiZWNhdXNlIGEgTWV0ZXIgQURECiBhdHRlbXB0ZWQgdG8gcmVwbGFjZSBhbiBleGlzdGluZyBNZXRlci4gCg0KBQUrAgEBEgTTDAQYCg0KBQUrAgECEgTTDBwdCmcKBAUrAgISBNUMBB4iWSBNZXRlciBub3QgYWRkZWQgYmVjYXVzZSBNZXRlciBzcGVjaWZpZWQKIGlzIGludmFsaWQsCiBvciBpbnZhbGlkIG1ldGVyIGluIG1ldGVyIGFjdGlvbi4gCg0KBQUrAgIBEgTVDAQZCg0KBQUrAgICEgTVDBwdCoMBCgQFKwIDEgTYDAQeInUgTWV0ZXIgbm90IG1vZGlmaWVkIGJlY2F1c2UgYSBNZXRlciBNT0RJRlkKIGF0dGVtcHRlZCB0byBtb2RpZnkgYSBub24tZXhpc3RlbnQgTWV0ZXIsCiBvciBiYWQgbWV0ZXIgaW4gbWV0ZXIgYWN0aW9uLiAKDQoFBSsCAwESBNgMBBkKDQoFBSsCAwISBNgMHB0KLwoEBSsCBBIE2wwEHiIhIFVuc3VwcG9ydGVkIG9yIHVua25vd24gY29tbWFuZC4gCg0KBQUrAgQBEgTbDAQXCg0KBQUrAgQCEgTbDBwdCi8KBAUrAgUSBNwMBB4iISBGbGFnIGNvbmZpZ3VyYXRpb24gdW5zdXBwb3J0ZWQuIAoNCgUFKwIFARIE3AwEFQoNCgUFKwIFAhIE3AwcHQohCgQFKwIGEgTdDAQeIhMgUmF0ZSB1bnN1cHBvcnRlZC4gCg0KBQUrAgYBEgTdDAQUCg0KBQUrAgYCEgTdDBwdCicKBAUrAgcSBN4MBB4iGSBCdXJzdCBzaXplIHVuc3VwcG9ydGVkLiAKDQoFBSsCBwESBN4MBBUKDQoFBSsCBwISBN4MHB0KIQoEBSsCCBIE3wwEHiITIEJhbmQgdW5zdXBwb3J0ZWQuIAoNCgUFKwIIARIE3wwEFAoNCgUFKwIIAhIE3wwcHQonCgQFKwIJEgTgDAQfIhkgQmFuZCB2YWx1ZSB1bnN1cHBvcnRlZC4gCg0KBQUrAgkBEgTgDAQaCg0KBQUrAgkCEgTgDB0eCikKBAUrAgoSBOEMBB8iGyBObyBtb3JlIG1ldGVycyBhdmFpbGFibGUuIAoNCgUFKwIKARIE4QwEGQoNCgUFKwIKAhIE4QwcHgpQCgQFKwILEgTiDAQfIkIgVGhlIG1heGltdW0gbnVtYmVyIG9mIHByb3BlcnRpZXMKIGZvciBhIG1ldGVyIGhhcyBiZWVuIGV4Y2VlZGVkLiAKDQoFBSsCCwESBOIMBBgKDQoFBSsCCwISBOIMHB4KkQEKAgUsEgboDADvDAEaggEgb2ZwX2Vycm9yX21zZyAnY29kZScgdmFsdWVzIGZvciBPRlBFVF9UQUJMRV9GRUFUVVJFU19GQUlMRUQuICdkYXRhJyBjb250YWlucwogYXQgbGVhc3QgdGhlIGZpcnN0IDY0IGJ5dGVzIG9mIHRoZSBmYWlsZWQgcmVxdWVzdC4gCgsKAwUsARIE6AwFIwovCgQFLAIAEgTpDAQdIiEgU3BlY2lmaWVkIHRhYmxlIGRvZXMgbm90IGV4aXN0LiAKDQoFBSwCAAESBOkMBBUKDQoFBSwCAAISBOkMGxwKJgoEBSwCARIE6gwEHSIYIEludmFsaWQgbWV0YWRhdGEgbWFzay4gCg0KBQUsAgEBEgTqDAQYCg0KBQUsAgECEgTqDBscCiYKBAUsAgISBOsMBB0iGCBVbmtub3duIHByb3BlcnR5IHR5cGUuIAoNCgUFLAICARIE6wwEFAoNCgUFLAICAhIE6wwbHAotCgQFLAIDEgTsDAQdIh8gTGVuZ3RoIHByb2JsZW0gaW4gcHJvcGVydGllcy4gCg0KBQUsAgMBEgTsDAQTCg0KBQUsAgMCEgTsDBscCisKBAUsAgQSBO0MBB0iHSBVbnN1cHBvcnRlZCBwcm9wZXJ0eSB2YWx1ZS4gCg0KBQUsAgQBEgTtDAQYCg0KBQUsAgQCEgTtDBscCiIKBAUsAgUSBO4MBB0iFCBQZXJtaXNzaW9ucyBlcnJvci4gCg0KBQUsAgUBEgTuDAQRCg0KBQUsAgUCEgTuDBscCkMKAgQoEgbyDAD4DAEaNSBPRlBUX0VSUk9SOiBFcnJvciBtZXNzYWdlIChkYXRhcGF0aCAtPiBjb250cm9sbGVyKS4gCgsKAwQoARIE8gwIFQohCgQEKAIAEgT0DAQUGhNvZnBfaGVhZGVyIGhlYWRlcjsKCg8KBQQoAgAEEgb0DATyDBcKDQoFBCgCAAUSBPQMBAoKDQoFBCgCAAESBPQMCw8KDQoFBCgCAAMSBPQMEhMKDAoEBCgCARIE9QwEFAoPCgUEKAIBBBIG9QwE9AwUCg0KBQQoAgEFEgT1DAQKCg0KBQQoAgEBEgT1DAsPCg0KBQQoAgEDEgT1DBITClsKBAQoAgISBPYMBBMiTSBWYXJpYWJsZS1sZW5ndGggZGF0YS4gIEludGVycHJldGVkIGJhc2VkCm9uIHRoZSB0eXBlIGFuZCBjb2RlLiAgTm8gcGFkZGluZy4gCg8KBQQoAgIEEgb2DAT1DBQKDQoFBCgCAgUSBPYMBAkKDQoFBCgCAgESBPYMCg4KDQoFBCgCAgMSBPYMERIKYAoCBCkSBvsMAIQNARo9IE9GUEVUX0VYUEVSSU1FTlRFUjogRXJyb3IgbWVzc2FnZSAoZGF0YXBhdGggLT4gY29udHJvbGxlcikuICITb2ZwX2hlYWRlciBoZWFkZXI7CgoLCgMEKQESBPsMCCIKIwoEBCkCABIE/gwEFCIVIE9GUEVUX0VYUEVSSU1FTlRFUi4gCg8KBQQpAgAEEgb+DAT7DCQKDQoFBCkCAAUSBP4MBAoKDQoFBCkCAAESBP4MCw8KDQoFBCkCAAMSBP4MEhMKJQoEBCkCARIE/wwEGCIXIEV4cGVyaW1lbnRlciBkZWZpbmVkLiAKDwoFBCkCAQQSBv8MBP4MFAoNCgUEKQIBBRIE/wwECgoNCgUEKQIBARIE/wwLEwoNCgUEKQIBAxIE/wwWFwpfCgQEKQICEgSADQQcIlEgRXhwZXJpbWVudGVyIElEIHdoaWNoIHRha2VzIHRoZSBzYW1lIGZvcm0KYXMgaW4gc3RydWN0IG9mcF9leHBlcmltZW50ZXJfaGVhZGVyLiAKDwoFBCkCAgQSBoANBP8MGAoNCgUEKQICBRIEgA0ECgoNCgUEKQICARIEgA0LFwoNCgUEKQICAxIEgA0aGwpbCgQEKQIDEgSCDQQTIk0gVmFyaWFibGUtbGVuZ3RoIGRhdGEuICBJbnRlcnByZXRlZCBiYXNlZApvbiB0aGUgdHlwZSBhbmQgY29kZS4gIE5vIHBhZGRpbmcuIAoPCgUEKQIDBBIGgg0EgA0cCg0KBQQpAgMFEgSCDQQJCg0KBQQpAgMBEgSCDQoOCg0KBQQpAgMDEgSCDRESCgwKAgUtEgaGDQDVDQEKCwoDBS0BEgSGDQUXCnQKBAUtAgASBIoNBBMaZiBEZXNjcmlwdGlvbiBvZiB0aGlzIE9wZW5GbG93IHN3aXRjaC4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgZW1wdHkuCiBUaGUgcmVwbHkgYm9keSBpcyBzdHJ1Y3Qgb2ZwX2Rlc2MuIAoNCgUFLQIAARIEig0EDgoNCgUFLQIAAhIEig0REgqWAQoEBS0CARIEjw0EExqHASBJbmRpdmlkdWFsIGZsb3cgc3RhdGlzdGljcy4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgc3RydWN0IG9mcF9mbG93X3N0YXRzX3JlcXVlc3QuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX2Zsb3dfc3RhdHMuIAoNCgUFLQIBARIEjw0EDgoNCgUFLQIBAhIEjw0REgqZAQoEBS0CAhIElA0EGBqKASBBZ2dyZWdhdGUgZmxvdyBzdGF0aXN0aWNzLgogVGhlIHJlcXVlc3QgYm9keSBpcyBzdHJ1Y3Qgb2ZwX2FnZ3JlZ2F0ZV9zdGF0c19yZXF1ZXN0LgogVGhlIHJlcGx5IGJvZHkgaXMgc3RydWN0IG9mcF9hZ2dyZWdhdGVfc3RhdHNfcmVwbHkuIAoNCgUFLQICARIElA0EEwoNCgUFLQICAhIElA0WFwp5CgQFLQIDEgSZDQQUGmsgRmxvdyB0YWJsZSBzdGF0aXN0aWNzLgogVGhlIHJlcXVlc3QgYm9keSBpcyBlbXB0eS4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfdGFibGVfc3RhdHMuIAoNCgUFLQIDARIEmQ0EDwoNCgUFLQIDAhIEmQ0SEwqKAQoEBS0CBBIEng0EGRp8IFBvcnQgc3RhdGlzdGljcy4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgc3RydWN0IG9mcF9wb3J0X3N0YXRzX3JlcXVlc3QuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX3BvcnRfc3RhdHMuIAoNCgUFLQIEARIEng0EFAoNCgUFLQIEAhIEng0XGAqXAQoEBS0CBRIEow0EFBqIASBRdWV1ZSBzdGF0aXN0aWNzIGZvciBhIHBvcnQKIFRoZSByZXF1ZXN0IGJvZHkgaXMgc3RydWN0IG9mcF9xdWV1ZV9zdGF0c19yZXF1ZXN0LgogVGhlIHJlcGx5IGJvZHkgaXMgYW4gYXJyYXkgb2Ygc3RydWN0IG9mcF9xdWV1ZV9zdGF0cyAKDQoFBS0CBQESBKMNBA8KDQoFBS0CBQISBKMNEhMKkQEKBAUtAgYSBKgNBBQaggEgR3JvdXAgY291bnRlciBzdGF0aXN0aWNzLgogVGhlIHJlcXVlc3QgYm9keSBpcyBzdHJ1Y3Qgb2ZwX2dyb3VwX3N0YXRzX3JlcXVlc3QuCiBUaGUgcmVwbHkgaXMgYW4gYXJyYXkgb2Ygc3RydWN0IG9mcF9ncm91cF9zdGF0cy4gCg0KBQUtAgYBEgSoDQQPCg0KBQUtAgYCEgSoDRITCnQKBAUtAgcSBK0NBBkaZiBHcm91cCBkZXNjcmlwdGlvbi4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgZW1wdHkuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX2dyb3VwX2Rlc2MuIAoNCgUFLQIHARIErQ0EFAoNCgUFLQIHAhIErQ0XGAppCgQFLQIIEgSyDQQdGlsgR3JvdXAgZmVhdHVyZXMuCiBUaGUgcmVxdWVzdCBib2R5IGlzIGVtcHR5LgogVGhlIHJlcGx5IGJvZHkgaXMgc3RydWN0IG9mcF9ncm91cF9mZWF0dXJlcy4gCg0KBQUtAggBEgSyDQQYCg0KBQUtAggCEgSyDRscCpMBCgQFLQIJEgS3DQQUGoQBIE1ldGVyIHN0YXRpc3RpY3MuCiBUaGUgcmVxdWVzdCBib2R5IGlzIHN0cnVjdCBvZnBfbWV0ZXJfbXVsdGlwYXJ0X3JlcXVlc3RzLgogVGhlIHJlcGx5IGJvZHkgaXMgYW4gYXJyYXkgb2Ygc3RydWN0IG9mcF9tZXRlcl9zdGF0cy4gCg0KBQUtAgkBEgS3DQQPCg0KBQUtAgkCEgS3DRITCpcBCgQFLQIKEgS8DQQcGogBIE1ldGVyIGNvbmZpZ3VyYXRpb24uCiBUaGUgcmVxdWVzdCBib2R5IGlzIHN0cnVjdCBvZnBfbWV0ZXJfbXVsdGlwYXJ0X3JlcXVlc3RzLgogVGhlIHJlcGx5IGJvZHkgaXMgYW4gYXJyYXkgb2Ygc3RydWN0IG9mcF9tZXRlcl9jb25maWcuIAoNCgUFLQIKARIEvA0EFgoNCgUFLQIKAhIEvA0ZGwppCgQFLQILEgTBDQQeGlsgTWV0ZXIgZmVhdHVyZXMuCiBUaGUgcmVxdWVzdCBib2R5IGlzIGVtcHR5LgogVGhlIHJlcGx5IGJvZHkgaXMgc3RydWN0IG9mcF9tZXRlcl9mZWF0dXJlcy4gCg0KBQUtAgsBEgTBDQQYCg0KBQUtAgsCEgTBDRsdCrECCgQFLQIMEgTJDQQeGqICIFRhYmxlIGZlYXR1cmVzLgogVGhlIHJlcXVlc3QgYm9keSBpcyBlaXRoZXIgZW1wdHkgb3IgY29udGFpbnMgYW4gYXJyYXkgb2YKIHN0cnVjdCBvZnBfdGFibGVfZmVhdHVyZXMgY29udGFpbmluZyB0aGUgY29udHJvbGxlcidzCiBkZXNpcmVkIHZpZXcgb2YgdGhlIHN3aXRjaC4gSWYgdGhlIHN3aXRjaCBpcyB1bmFibGUgdG8KIHNldCB0aGUgc3BlY2lmaWVkIHZpZXcgYW4gZXJyb3IgaXMgcmV0dXJuZWQuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX3RhYmxlX2ZlYXR1cmVzLiAKDQoFBS0CDAESBMkNBBgKDQoFBS0CDAISBMkNGx0KbQoEBS0CDRIEzg0EGRpfIFBvcnQgZGVzY3JpcHRpb24uCiBUaGUgcmVxdWVzdCBib2R5IGlzIGVtcHR5LgogVGhlIHJlcGx5IGJvZHkgaXMgYW4gYXJyYXkgb2Ygc3RydWN0IG9mcF9wb3J0LiAKDQoFBS0CDQESBM4NBBMKDQoFBS0CDQISBM4NFhgKvgEKBAUtAg4SBNQNBCAarwEgRXhwZXJpbWVudGVyIGV4dGVuc2lvbi4KIFRoZSByZXF1ZXN0IGFuZCByZXBseSBib2RpZXMgYmVnaW4gd2l0aAogc3RydWN0IG9mcF9leHBlcmltZW50ZXJfbXVsdGlwYXJ0X2hlYWRlci4KIFRoZSByZXF1ZXN0IGFuZCByZXBseSBib2RpZXMgYXJlIG90aGVyd2lzZSBleHBlcmltZW50ZXItZGVmaW5lZC4gCg0KBQUtAg4BEgTUDQQWCg0KBQUtAg4CEgTUDRkfCnwKAgUuEgbaDQDdDQEyPSBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggMS4zLjEgLSBhdm9pZCBicmVha2luZyB0aGUgQVBJLiAyLyNkZWZpbmUgb2ZwX211bHRpcGFydF90eXBlcyBvZnBfbXVsdGlwYXJ0X3R5cGUKCgsKAwUuARIE2g0FIAoMCgQFLgIAEgTbDQQbCg0KBQUuAgABEgTbDQQWCg0KBQUuAgACEgTbDRkaCigKBAUuAgESBNwNBBkiGiBNb3JlIHJlcXVlc3RzIHRvIGZvbGxvdy4gCg0KBQUuAgEBEgTcDQQTCg0KBQUuAgECEgTcDRcYCgwKAgQqEgbfDQDkDQEKCwoDBCoBEgTfDQgdCkIKBAQqAgASBOENBCAaE29mcF9oZWFkZXIgaGVhZGVyOwoiHyBPbmUgb2YgdGhlIE9GUE1QXyogY29uc3RhbnRzLiAKDwoFBCoCAAQSBuENBN8NHwoNCgUEKgIABhIE4Q0EFgoNCgUEKgIAARIE4Q0XGwoNCgUEKgIAAxIE4Q0eHwojCgQEKgIBEgTiDQQVIhUgT0ZQTVBGX1JFUV8qIGZsYWdzLiAKDwoFBCoCAQQSBuINBOENIAoNCgUEKgIBBRIE4g0ECgoNCgUEKgIBARIE4g0LEAoNCgUEKgIBAxIE4g0TFAo1CgQEKgICEgTjDQQTIicgQm9keSBvZiB0aGUgcmVxdWVzdC4gMCBvciBtb3JlIGJ5dGVzLiAKDwoFBCoCAgQSBuMNBOINFQoNCgUEKgICBRIE4w0ECQoNCgUEKgICARIE4w0KDgoNCgUEKgICAxIE4w0REgoMCgIFLxIG5g0A6Q0BCgsKAwUvARIE5g0FHgoMCgQFLwIAEgTnDQQdCg0KBQUvAgABEgTnDQQYCg0KBQUvAgACEgTnDRscCicKBAUvAgESBOgNBBsiGSBNb3JlIHJlcGxpZXMgdG8gZm9sbG93LiAKDQoFBS8CAQESBOgNBBUKDQoFBS8CAQISBOgNGRoKDAoCBCsSBusNAPANAQoLCgMEKwESBOsNCBsKQgoEBCsCABIE7Q0EIBoTb2ZwX2hlYWRlciBoZWFkZXI7CiIfIE9uZSBvZiB0aGUgT0ZQTVBfKiBjb25zdGFudHMuIAoPCgUEKwIABBIG7Q0E6w0dCg0KBQQrAgAGEgTtDQQWCg0KBQQrAgABEgTtDRcbCg0KBQQrAgADEgTtDR4fCiUKBAQrAgESBO4NBBUiFyBPRlBNUEZfUkVQTFlfKiBmbGFncy4gCg8KBQQrAgEEEgbuDQTtDSAKDQoFBCsCAQUSBO4NBAoKDQoFBCsCAQESBO4NCxAKDQoFBCsCAQMSBO4NExQKMwoEBCsCAhIE7w0EEyIlIEJvZHkgb2YgdGhlIHJlcGx5LiAwIG9yIG1vcmUgYnl0ZXMuIAoPCgUEKwICBBIG7w0E7g0VCg0KBQQrAgIFEgTvDQQJCg0KBQQrAgIBEgTvDQoOCg0KBQQrAgIDEgTvDRESCpsBCgIELBIG9g0A/A0BGlYgQm9keSBvZiByZXBseSB0byBPRlBNUF9ERVNDIHJlcXVlc3QuICBFYWNoIGVudHJ5IGlzIGEgTlVMTC10ZXJtaW5hdGVkCiBBU0NJSSBzdHJpbmcuIDI1I2RlZmluZSBERVNDX1NUUl9MRU4gICAyNTYKI2RlZmluZSBTRVJJQUxfTlVNX0xFTiAzMgoKCwoDBCwBEgT2DQgQCikKBAQsAgASBPcNBBgiGyBNYW51ZmFjdHVyZXIgZGVzY3JpcHRpb24uIAoPCgUELAIABBIG9w0E9g0SCg0KBQQsAgAFEgT3DQQKCg0KBQQsAgABEgT3DQsTCg0KBQQsAgADEgT3DRYXCiUKBAQsAgESBPgNBBciFyBIYXJkd2FyZSBkZXNjcmlwdGlvbi4gCg8KBQQsAgEEEgb4DQT3DRgKDQoFBCwCAQUSBPgNBAoKDQoFBCwCAQESBPgNCxIKDQoFBCwCAQMSBPgNFRYKJQoEBCwCAhIE+Q0EFyIXIFNvZnR3YXJlIGRlc2NyaXB0aW9uLiAKDwoFBCwCAgQSBvkNBPgNFwoNCgUELAICBRIE+Q0ECgoNCgUELAICARIE+Q0LEgoNCgUELAICAxIE+Q0VFgoeCgQELAIDEgT6DQQaIhAgU2VyaWFsIG51bWJlci4gCg8KBQQsAgMEEgb6DQT5DRcKDQoFBCwCAwUSBPoNBAoKDQoFBCwCAwESBPoNCxUKDQoFBCwCAwMSBPoNGBkKNwoEBCwCBBIE+w0EFyIpIEh1bWFuIHJlYWRhYmxlIGRlc2NyaXB0aW9uIG9mIGRhdGFwYXRoLiAKDwoFBCwCBAQSBvsNBPoNGgoNCgUELAIEBRIE+w0ECgoNCgUELAIEARIE+w0LEgoNCgUELAIEAxIE+w0VFgpCCgIELRIG/w0Ajg4BGjQgQm9keSBmb3Igb2ZwX211bHRpcGFydF9yZXF1ZXN0IG9mIHR5cGUgT0ZQTVBfRkxPVy4gCgsKAwQtARIE/w0IHgpVCgQELQIAEgSADgQYIkcgSUQgb2YgdGFibGUgdG8gcmVhZCAoZnJvbSBvZnBfdGFibGVfc3RhdHMpLApPRlBUVF9BTEwgZm9yIGFsbCB0YWJsZXMuIAoPCgUELQIABBIGgA4E/w0gCg0KBQQtAgAFEgSADgQKCg0KBQQtAgABEgSADgsTCg0KBQQtAgADEgSADhYXCnoKBAQtAgESBIIOBBgibCBSZXF1aXJlIG1hdGNoaW5nIGVudHJpZXMgdG8gaW5jbHVkZSB0aGlzCmFzIGFuIG91dHB1dCBwb3J0LiAgQSB2YWx1ZSBvZiBPRlBQX0FOWQppbmRpY2F0ZXMgbm8gcmVzdHJpY3Rpb24uIAoPCgUELQIBBBIGgg4EgA4YCg0KBQQtAgEFEgSCDgQKCg0KBQQtAgEBEgSCDgsTCg0KBQQtAgEDEgSCDhYXCnsKBAQtAgISBIUOBBkibSBSZXF1aXJlIG1hdGNoaW5nIGVudHJpZXMgdG8gaW5jbHVkZSB0aGlzCmFzIGFuIG91dHB1dCBncm91cC4gIEEgdmFsdWUgb2YgT0ZQR19BTlkKaW5kaWNhdGVzIG5vIHJlc3RyaWN0aW9uLiAKDwoFBC0CAgQSBoUOBIIOGAoNCgUELQICBRIEhQ4ECgoNCgUELQICARIEhQ4LFAoNCgUELQICAxIEhQ4XGApFCgQELQIDEgSIDgQWIjcgUmVxdWlyZSBtYXRjaGluZyBlbnRyaWVzIHRvIGNvbnRhaW4gdGhpcwpjb29raWUgdmFsdWUgCg8KBQQtAgMEEgaIDgSFDhkKDQoFBC0CAwUSBIgOBAoKDQoFBC0CAwESBIgOCxEKDQoFBC0CAwMSBIgOFBUKbQoEBC0CBBIEig4EGyJfIE1hc2sgdXNlZCB0byByZXN0cmljdCB0aGUgY29va2llIGJpdHMgdGhhdAptdXN0IG1hdGNoLiBBIHZhbHVlIG9mIDAgaW5kaWNhdGVzCm5vIHJlc3RyaWN0aW9uLiAKDwoFBC0CBAQSBooOBIgOFgoNCgUELQIEBRIEig4ECgoNCgUELQIEARIEig4LFgoNCgUELQIEAxIEig4ZGgovCgQELQIFEgSNDgQYIiEgRmllbGRzIHRvIG1hdGNoLiBWYXJpYWJsZSBzaXplLiAKDwoFBC0CBQQSBo0OBIoOGwoNCgUELQIFBhIEjQ4EDQoNCgUELQIFARIEjQ4OEwoNCgUELQIFAxIEjQ4WFwo0CgIELhIGkQ4AoQ4BGiYgQm9keSBvZiByZXBseSB0byBPRlBNUF9GTE9XIHJlcXVlc3QuIAoLCgMELgESBJEOCBYKMAoEBC4CABIEkg4EEyIiIFVuaXF1ZSBJRCBvZiBmbG93IHdpdGhpbiBkZXZpY2UuIAoPCgUELgIABBIGkg4EkQ4YCg0KBQQuAgAFEgSSDgQKCg0KBQQuAgABEgSSDgsNCg0KBQQuAgADEgSSDhASCisKBAQuAgESBJMOBBgiHSBJRCBvZiB0YWJsZSBmbG93IGNhbWUgZnJvbS4gCg8KBQQuAgEEEgaTDgSSDhMKDQoFBC4CAQUSBJMOBAoKDQoFBC4CAQESBJMOCxMKDQoFBC4CAQMSBJMOFhcKNAoEBC4CAhIElA4EHCImIFRpbWUgZmxvdyBoYXMgYmVlbiBhbGl2ZSBpbiBzZWNvbmRzLiAKDwoFBC4CAgQSBpQOBJMOGAoNCgUELgICBRIElA4ECgoNCgUELgICARIElA4LFwoNCgUELgICAxIElA4aGwpMCgQELgIDEgSVDgQdIj4gVGltZSBmbG93IGhhcyBiZWVuIGFsaXZlIGluIG5hbm9zZWNvbmRzCmJleW9uZCBkdXJhdGlvbl9zZWMuIAoPCgUELgIDBBIGlQ4ElA4cCg0KBQQuAgMFEgSVDgQKCg0KBQQuAgMBEgSVDgsYCg0KBQQuAgMDEgSVDhscCiYKBAQuAgQSBJcOBBgiGCBQcmlvcml0eSBvZiB0aGUgZW50cnkuIAoPCgUELgIEBBIGlw4ElQ4dCg0KBQQuAgQFEgSXDgQKCg0KBQQuAgQBEgSXDgsTCg0KBQQuAgQDEgSXDhYXCjkKBAQuAgUSBJgOBBwiKyBOdW1iZXIgb2Ygc2Vjb25kcyBpZGxlIGJlZm9yZSBleHBpcmF0aW9uLiAKDwoFBC4CBQQSBpgOBJcOGAoNCgUELgIFBRIEmA4ECgoNCgUELgIFARIEmA4LFwoNCgUELgIFAxIEmA4aGwo0CgQELgIGEgSZDgQcIiYgTnVtYmVyIG9mIHNlY29uZHMgYmVmb3JlIGV4cGlyYXRpb24uIAoPCgUELgIGBBIGmQ4EmA4cCg0KBQQuAgYFEgSZDgQKCg0KBQQuAgYBEgSZDgsXCg0KBQQuAgYDEgSZDhobCigKBAQuAgcSBJoOBBUiGiBCaXRtYXAgb2YgT0ZQRkZfKiBmbGFncy4gCg8KBQQuAgcEEgaaDgSZDhwKDQoFBC4CBwUSBJoOBAoKDQoFBC4CBwESBJoOCxAKDQoFBC4CBwMSBJoOExQKNAoEBC4CCBIEmw4EFiImIE9wYXF1ZSBjb250cm9sbGVyLWlzc3VlZCBpZGVudGlmaWVyLiAKDwoFBC4CCAQSBpsOBJoOFQoNCgUELgIIBRIEmw4ECgoNCgUELgIIARIEmw4LEQoNCgUELgIIAxIEmw4UFQoqCgQELgIJEgScDgQcIhwgTnVtYmVyIG9mIHBhY2tldHMgaW4gZmxvdy4gCg8KBQQuAgkEEgacDgSbDhYKDQoFBC4CCQUSBJwOBAoKDQoFBC4CCQESBJwOCxcKDQoFBC4CCQMSBJwOGhsKKAoEBC4CChIEnQ4EGyIaIE51bWJlciBvZiBieXRlcyBpbiBmbG93LiAKDwoFBC4CCgQSBp0OBJwOHAoNCgUELgIKBRIEnQ4ECgoNCgUELgIKARIEnQ4LFQoNCgUELgIKAxIEnQ4YGgo1CgQELgILEgSeDgQZIicgRGVzY3JpcHRpb24gb2YgZmllbGRzLiBWYXJpYWJsZSBzaXplLiAKDwoFBC4CCwQSBp4OBJ0OGwoNCgUELgILBhIEng4EDQoNCgUELgILARIEng4OEwoNCgUELgILAxIEng4WGAorCgQELgIMEgSfDgQvIh0gSW5zdHJ1Y3Rpb24gc2V0CigwIG9yIG1vcmUpIAoNCgUELgIMBBIEnw4EDAoNCgUELgIMBhIEnw4NHAoNCgUELgIMARIEnw4dKQoNCgUELgIMAxIEnw4sLgpHCgIELxIGpA4Asw4BGjkgQm9keSBmb3Igb2ZwX211bHRpcGFydF9yZXF1ZXN0IG9mIHR5cGUgT0ZQTVBfQUdHUkVHQVRFLiAKCwoDBC8BEgSkDggjClQKBAQvAgASBKUOBBgiRiBJRCBvZiB0YWJsZSB0byByZWFkIChmcm9tIG9mcF90YWJsZV9zdGF0cykKT0ZQVFRfQUxMIGZvciBhbGwgdGFibGVzLiAKDwoFBC8CAAQSBqUOBKQOJQoNCgUELwIABRIEpQ4ECgoNCgUELwIAARIEpQ4LEwoNCgUELwIAAxIEpQ4WFwp6CgQELwIBEgSnDgQYImwgUmVxdWlyZSBtYXRjaGluZyBlbnRyaWVzIHRvIGluY2x1ZGUgdGhpcwphcyBhbiBvdXRwdXQgcG9ydC4gIEEgdmFsdWUgb2YgT0ZQUF9BTlkKaW5kaWNhdGVzIG5vIHJlc3RyaWN0aW9uLiAKDwoFBC8CAQQSBqcOBKUOGAoNCgUELwIBBRIEpw4ECgoNCgUELwIBARIEpw4LEwoNCgUELwIBAxIEpw4WFwp7CgQELwICEgSqDgQZIm0gUmVxdWlyZSBtYXRjaGluZyBlbnRyaWVzIHRvIGluY2x1ZGUgdGhpcwphcyBhbiBvdXRwdXQgZ3JvdXAuICBBIHZhbHVlIG9mIE9GUEdfQU5ZCmluZGljYXRlcyBubyByZXN0cmljdGlvbi4gCg8KBQQvAgIEEgaqDgSnDhgKDQoFBC8CAgUSBKoOBAoKDQoFBC8CAgESBKoOCxQKDQoFBC8CAgMSBKoOFxgKRQoEBC8CAxIErQ4EFiI3IFJlcXVpcmUgbWF0Y2hpbmcgZW50cmllcyB0byBjb250YWluIHRoaXMKY29va2llIHZhbHVlIAoPCgUELwIDBBIGrQ4Eqg4ZCg0KBQQvAgMFEgStDgQKCg0KBQQvAgMBEgStDgsRCg0KBQQvAgMDEgStDhQVCm0KBAQvAgQSBK8OBBsiXyBNYXNrIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGNvb2tpZSBiaXRzIHRoYXQKbXVzdCBtYXRjaC4gQSB2YWx1ZSBvZiAwIGluZGljYXRlcwpubyByZXN0cmljdGlvbi4gCg8KBQQvAgQEEgavDgStDhYKDQoFBC8CBAUSBK8OBAoKDQoFBC8CBAESBK8OCxYKDQoFBC8CBAMSBK8OGRoKLwoEBC8CBRIEsg4EGCIhIEZpZWxkcyB0byBtYXRjaC4gVmFyaWFibGUgc2l6ZS4gCg8KBQQvAgUEEgayDgSvDhsKDQoFBC8CBQYSBLIOBA0KDQoFBC8CBQESBLIODhMKDQoFBC8CBQMSBLIOFhcKOQoCBDASBrYOALoOARorIEJvZHkgb2YgcmVwbHkgdG8gT0ZQTVBfQUdHUkVHQVRFIHJlcXVlc3QuIAoLCgMEMAESBLYOCCEKKwoEBDACABIEtw4EHCIdIE51bWJlciBvZiBwYWNrZXRzIGluIGZsb3dzLiAKDwoFBDACAAQSBrcOBLYOIwoNCgUEMAIABRIEtw4ECgoNCgUEMAIAARIEtw4LFwoNCgUEMAIAAxIEtw4aGwopCgQEMAIBEgS4DgQaIhsgTnVtYmVyIG9mIGJ5dGVzIGluIGZsb3dzLiAKDwoFBDACAQQSBrgOBLcOHAoNCgUEMAIBBRIEuA4ECgoNCgUEMAIBARIEuA4LFQoNCgUEMAIBAxIEuA4YGQogCgQEMAICEgS5DgQaIhIgTnVtYmVyIG9mIGZsb3dzLiAKDwoFBDACAgQSBrkOBLgOGgoNCgUEMAICBRIEuQ4ECgoNCgUEMAICARIEuQ4LFQoNCgUEMAICAxIEuQ4YGQq7AQoCBTASBsAOANEOARqsASBUYWJsZSBGZWF0dXJlIHByb3BlcnR5IHR5cGVzLgogTG93IG9yZGVyIGJpdCBjbGVhcmVkIGluZGljYXRlcyBhIHByb3BlcnR5IGZvciBhIHJlZ3VsYXIgRmxvdyBFbnRyeS4KIExvdyBvcmRlciBiaXQgc2V0IGluZGljYXRlcyBhIHByb3BlcnR5IGZvciB0aGUgVGFibGUtTWlzcyBGbG93IEVudHJ5LgoKCwoDBTABEgTADgUgCiYKBAUwAgASBMEOBCciGCBJbnN0cnVjdGlvbnMgcHJvcGVydHkuIAoNCgUFMAIAARIEwQ4EGAoNCgUFMAIAAhIEwQ4lJgosCgQFMAIBEgTCDgQnIh4gSW5zdHJ1Y3Rpb25zIGZvciB0YWJsZS1taXNzLiAKDQoFBTACAQESBMIOBB0KDQoFBTACAQISBMIOJSYKJAoEBTACAhIEww4EJyIWIE5leHQgVGFibGUgcHJvcGVydHkuIAoNCgUFMAICARIEww4EFwoNCgUFMAICAhIEww4lJgoqCgQFMAIDEgTEDgQnIhwgTmV4dCBUYWJsZSBmb3IgdGFibGUtbWlzcy4gCg0KBQUwAgMBEgTEDgQcCg0KBQUwAgMCEgTEDiUmCicKBAUwAgQSBMUOBCciGSBXcml0ZSBBY3Rpb25zIHByb3BlcnR5LiAKDQoFBTACBAESBMUOBBkKDQoFBTACBAISBMUOJSYKLQoEBTACBRIExg4EJyIfIFdyaXRlIEFjdGlvbnMgZm9yIHRhYmxlLW1pc3MuIAoNCgUFMAIFARIExg4EHgoNCgUFMAIFAhIExg4lJgonCgQFMAIGEgTHDgQnIhkgQXBwbHkgQWN0aW9ucyBwcm9wZXJ0eS4gCg0KBQUwAgYBEgTHDgQZCg0KBQUwAgYCEgTHDiUmCi0KBAUwAgcSBMgOBCciHyBBcHBseSBBY3Rpb25zIGZvciB0YWJsZS1taXNzLiAKDQoFBTACBwESBMgOBB4KDQoFBTACBwISBMgOJSYKHwoEBTACCBIEyQ4EJyIRIE1hdGNoIHByb3BlcnR5LiAKDQoFBTACCAESBMkOBBEKDQoFBTACCAISBMkOJSYKIwoEBTACCRIEyg4EKCIVIFdpbGRjYXJkcyBwcm9wZXJ0eS4gCg0KBQUwAgkBEgTKDgQVCg0KBQUwAgkCEgTKDiUnCikKBAUwAgoSBMsOBCgiGyBXcml0ZSBTZXQtRmllbGQgcHJvcGVydHkuIAoNCgUFMAIKARIEyw4EGgoNCgUFMAIKAhIEyw4lJwovCgQFMAILEgTMDgQoIiEgV3JpdGUgU2V0LUZpZWxkIGZvciB0YWJsZS1taXNzLiAKDQoFBTACCwESBMwOBB8KDQoFBTACCwISBMwOJScKKQoEBTACDBIEzQ4EKCIbIEFwcGx5IFNldC1GaWVsZCBwcm9wZXJ0eS4gCg0KBQUwAgwBEgTNDgQaCg0KBQUwAgwCEgTNDiUnCi8KBAUwAg0SBM4OBCgiISBBcHBseSBTZXQtRmllbGQgZm9yIHRhYmxlLW1pc3MuIAoNCgUFMAINARIEzg4EHwoNCgUFMAINAhIEzg4lJwomCgQFMAIOEgTPDgQsIhggRXhwZXJpbWVudGVyIHByb3BlcnR5LiAKDQoFBTACDgESBM8OBBgKDQoFBTACDgISBM8OJSsKLAoEBTACDxIE0A4ELCIeIEV4cGVyaW1lbnRlciBmb3IgdGFibGUtbWlzcy4gCg0KBQUwAg8BEgTQDgQdCg0KBQUwAg8CEgTQDiUrCj4KAgQxEgbUDgDdDgEaMCBDb21tb24gaGVhZGVyIGZvciBhbGwgVGFibGUgRmVhdHVyZSBQcm9wZXJ0aWVzIAoLCgMEMQESBNQOCCIKIQoEBDECABIE1Q4EKSITIE9uZSBvZiBPRlBURlBUXyouIAoPCgUEMQIABBIG1Q4E1A4kCg0KBQQxAgAGEgTVDgQfCg0KBQQxAgABEgTVDiAkCg0KBQQxAgADEgTVDicoCg4KBAQxCAASBtYOBNwOBQoNCgUEMQgAARIE1g4KDwoMCgQEMQIBEgTXDgg9Cg0KBQQxAgEGEgTXDggrCg0KBQQxAgEBEgTXDiw4Cg0KBQQxAgEDEgTXDjs8CgwKBAQxAgISBNgOCDsKDQoFBDECAgYSBNgOCCoKDQoFBDECAgESBNgOKzYKDQoFBDECAgMSBNgOOToKDAoEBDECAxIE2Q4IMwoNCgUEMQIDBhIE2Q4IJgoNCgUEMQIDARIE2Q4nLgoNCgUEMQIDAxIE2Q4xMgoMCgQEMQIEEgTaDggrCg0KBQQxAgQGEgTaDggiCg0KBQQxAgQBEgTaDiMmCg0KBQQxAgQDEgTaDikqCgwKBAQxAgUSBNsOCD0KDQoFBDECBQYSBNsOCCsKDQoFBDECBQESBNsOLDgKDQoFBDECBQMSBNsOOzwKJQoCBDISBuAOAOQOARoXIEluc3RydWN0aW9ucyBwcm9wZXJ0eSAKCwoDBDIBEgTgDggrCl8KBAQyAgASBOMOBC4aOSBPbmUgb2YgT0ZQVEZQVF9JTlNUUlVDVElPTlMsCk9GUFRGUFRfSU5TVFJVQ1RJT05TX01JU1MuICIWIExpc3Qgb2YgaW5zdHJ1Y3Rpb25zIAoNCgUEMgIABBIE4w4EDAoNCgUEMgIABhIE4w4NHAoNCgUEMgIAARIE4w4dKQoNCgUEMgIAAxIE4w4sLQokCgIEMxIG5w4A6w4BGhYgTmV4dCBUYWJsZXMgcHJvcGVydHkgCgsKAwQzARIE5w4IKgpbCgQEMwIAEgTqDgQnGjcgT25lIG9mIE9GUFRGUFRfTkVYVF9UQUJMRVMsCk9GUFRGUFRfTkVYVF9UQUJMRVNfTUlTUy4gIhQgTGlzdCBvZiB0YWJsZSBpZHMuIAoNCgUEMwIABBIE6g4EDAoNCgUEMwIABRIE6g4NEwoNCgUEMwIAARIE6g4UIgoNCgUEMwIAAxIE6g4lJgogCgIENBIG7g4A9A4BGhIgQWN0aW9ucyBwcm9wZXJ0eSAKCwoDBDQBEgTuDggmCo8BCgQENAIAEgTzDgQkGm4gT25lIG9mIE9GUFRGUFRfV1JJVEVfQUNUSU9OUywKT0ZQVEZQVF9XUklURV9BQ1RJT05TX01JU1MsCk9GUFRGUFRfQVBQTFlfQUNUSU9OUywKT0ZQVEZQVF9BUFBMWV9BQ1RJT05TX01JU1MuICIRIExpc3Qgb2YgYWN0aW9ucyAKDQoFBDQCAAQSBPMOBAwKDQoFBDQCAAYSBPMODRcKDQoFBDQCAAESBPMOGB8KDQoFBDQCAAMSBPMOIiMKzAEKAgQ1Egb3DgCADwEaJyBNYXRjaCwgV2lsZGNhcmQgb3IgU2V0LUZpZWxkIHByb3BlcnR5ICKUASBPbmUgb2YgT0ZQVEZQVF9NQVRDSCwKT0ZQVEZQVF9XSUxEQ0FSRFMsCk9GUFRGUFRfV1JJVEVfU0VURklFTEQsCk9GUFRGUFRfV1JJVEVfU0VURklFTERfTUlTUywKT0ZQVEZQVF9BUFBMWV9TRVRGSUVMRCwKT0ZQVEZQVF9BUFBMWV9TRVRGSUVMRF9NSVNTLiAKCwoDBDUBEgT3DggiCkAKBAQ1AgASBP8OBCAaGiBUT0RPIGlzIHRoaXMgYSB1aW50MzI/Pz8gIhYgQXJyYXkgb2YgT1hNIGhlYWRlcnMgCg0KBQQ1AgAEEgT/DgQMCg0KBQQ1AgAFEgT/Dg0TCg0KBQQ1AgABEgT/DhQbCg0KBQQ1AgADEgT/Dh4fCjMKAgQ2EgaDDwCLDwEaJSBFeHBlcmltZW50ZXIgdGFibGUgZmVhdHVyZSBwcm9wZXJ0eSAKCwoDBDYBEgSDDwgrCpoBCgQENgIAEgSGDwQkGjkgT25lIG9mIE9GUFRGUFRfRVhQRVJJTUVOVEVSLApPRlBURlBUX0VYUEVSSU1FTlRFUl9NSVNTLiAiUSBFeHBlcmltZW50ZXIgSUQgd2hpY2ggdGFrZXMgdGhlIHNhbWUKZm9ybSBhcyBpbiBzdHJ1Y3QKb2ZwX2V4cGVyaW1lbnRlcl9oZWFkZXIuIAoPCgUENgIABBIGhg8Egw8tCg0KBQQ2AgAFEgSGDwQKCg0KBQQ2AgABEgSGDxMfCg0KBQQ2AgADEgSGDyIjCiUKBAQ2AgESBIkPBCAiFyBFeHBlcmltZW50ZXIgZGVmaW5lZC4gCg8KBQQ2AgEEEgaJDwSGDyQKDQoFBDYCAQUSBIkPBAoKDQoFBDYCAQESBIkPExsKDQoFBDYCAQMSBIkPHh8KDAoEBDYCAhIEig8EKgoNCgUENgICBBIEig8EDAoNCgUENgICBRIEig8NEwoNCgUENgICARIEig8UJQoNCgUENgICAxIEig8oKQp9CgIENxIGjw8Amg8BGm8gQm9keSBmb3Igb2ZwX211bHRpcGFydF9yZXF1ZXN0IG9mIHR5cGUgT0ZQTVBfVEFCTEVfRkVBVFVSRVMuLwogQm9keSBvZiByZXBseSB0byBPRlBNUF9UQUJMRV9GRUFUVVJFUyByZXF1ZXN0LiAKCwoDBDcBEgSPDwgaClAKBAQ3AgASBJAPBBgiQiBJZGVudGlmaWVyIG9mIHRhYmxlLiAgTG93ZXIgbnVtYmVyZWQgdGFibGVzCmFyZSBjb25zdWx0ZWQgZmlyc3QuIAoPCgUENwIABBIGkA8Ejw8cCg0KBQQ3AgAFEgSQDwQKCg0KBQQ3AgABEgSQDwsTCg0KBQQ3AgADEgSQDxYXCgwKBAQ3AgESBJIPBBQKDwoFBDcCAQQSBpIPBJAPGAoNCgUENwIBBRIEkg8ECgoNCgUENwIBARIEkg8LDwoNCgUENwIBAxIEkg8SEwoxCgQENwICEgSTDwQeIiMgQml0cyBvZiBtZXRhZGF0YSB0YWJsZSBjYW4gbWF0Y2guIAoPCgUENwICBBIGkw8Ekg8UCg0KBQQ3AgIFEgSTDwQKCg0KBQQ3AgIBEgSTDwsZCg0KBQQ3AgIDEgSTDxwdCjEKBAQ3AgMSBJQPBB4iIyBCaXRzIG9mIG1ldGFkYXRhIHRhYmxlIGNhbiB3cml0ZS4gCg8KBQQ3AgMEEgaUDwSTDx4KDQoFBDcCAwUSBJQPBAoKDQoFBDcCAwESBJQPCxkKDQoFBDcCAwMSBJQPHB0KKAoEBDcCBBIElQ8EFiIaIEJpdG1hcCBvZiBPRlBUQ18qIHZhbHVlcyAKDwoFBDcCBAQSBpUPBJQPHgoNCgUENwIEBRIElQ8ECgoNCgUENwIEARIElQ8LEQoNCgUENwIEAxIElQ8UFQowCgQENwIFEgSWDwQbIiIgTWF4IG51bWJlciBvZiBlbnRyaWVzIHN1cHBvcnRlZC4gCg8KBQQ3AgUEEgaWDwSVDxYKDQoFBDcCBQUSBJYPBAoKDQoFBDcCBQESBJYPCxYKDQoFBDcCBQMSBJYPGRoKKwoEBDcCBhIEmQ8ENxodIFRhYmxlIEZlYXR1cmUgUHJvcGVydHkgbGlzdCAKDQoFBDcCBgQSBJkPBAwKDQoFBDcCBgYSBJkPDScKDQoFBDcCBgESBJkPKDIKDQoFBDcCBgMSBJkPNTYKNQoCBDgSBp0PAKMPARonIEJvZHkgb2YgcmVwbHkgdG8gT0ZQTVBfVEFCTEUgcmVxdWVzdC4gCgsKAwQ4ARIEnQ8IFwpQCgQEOAIAEgSeDwQYIkIgSWRlbnRpZmllciBvZiB0YWJsZS4gIExvd2VyIG51bWJlcmVkIHRhYmxlcwphcmUgY29uc3VsdGVkIGZpcnN0LiAKDwoFBDgCAAQSBp4PBJ0PGQoNCgUEOAIABRIEng8ECgoNCgUEOAIAARIEng8LEwoNCgUEOAIAAxIEng8WFwopCgQEOAIBEgSgDwQcIhsgTnVtYmVyIG9mIGFjdGl2ZSBlbnRyaWVzLiAKDwoFBDgCAQQSBqAPBJ4PGAoNCgUEOAIBBRIEoA8ECgoNCgUEOAIBARIEoA8LFwoNCgUEOAIBAxIEoA8aGwo1CgQEOAICEgShDwQcIicgTnVtYmVyIG9mIHBhY2tldHMgbG9va2VkIHVwIGluIHRhYmxlLiAKDwoFBDgCAgQSBqEPBKAPHAoNCgUEOAICBRIEoQ8ECgoNCgUEOAICARIEoQ8LFwoNCgUEOAICAxIEoQ8aGwoxCgQEOAIDEgSiDwQdIiMgTnVtYmVyIG9mIHBhY2tldHMgdGhhdCBoaXQgdGFibGUuIAoPCgUEOAIDBBIGog8EoQ8cCg0KBQQ4AgMFEgSiDwQKCg0KBQQ4AgMBEgSiDwsYCg0KBQQ4AgMDEgSiDxscCkIKAgQ5EgamDwCrDwEaNCBCb2R5IGZvciBvZnBfbXVsdGlwYXJ0X3JlcXVlc3Qgb2YgdHlwZSBPRlBNUF9QT1JULiAKCwoDBDkBEgSmDwgeCpkBCgQEOQIAEgSnDwQXIooBIE9GUE1QX1BPUlQgbWVzc2FnZSBtdXN0IHJlcXVlc3Qgc3RhdGlzdGljcwogZWl0aGVyIGZvciBhIHNpbmdsZSBwb3J0IChzcGVjaWZpZWQgaW4KIHBvcnRfbm8pIG9yIGZvciBhbGwgcG9ydHMgKGlmIHBvcnRfbm8gPT0KIE9GUFBfQU5ZKS4gCg8KBQQ5AgAEEganDwSmDyAKDQoFBDkCAAUSBKcPBAoKDQoFBDkCAAESBKcPCxIKDQoFBDkCAAMSBKcPFRYKbQoCBDoSBq8PAMYPARpfIEJvZHkgb2YgcmVwbHkgdG8gT0ZQTVBfUE9SVCByZXF1ZXN0LiBJZiBhIGNvdW50ZXIgaXMgdW5zdXBwb3J0ZWQsIHNldAogdGhlIGZpZWxkIHRvIGFsbCBvbmVzLiAKCwoDBDoBEgSvDwgWCgwKBAQ6AgASBLAPBBcKDwoFBDoCAAQSBrAPBK8PGAoNCgUEOgIABRIEsA8ECgoNCgUEOgIAARIEsA8LEgoNCgUEOgIAAxIEsA8VFgorCgQEOgIBEgSxDwQaIh0gTnVtYmVyIG9mIHJlY2VpdmVkIHBhY2tldHMuIAoPCgUEOgIBBBIGsQ8EsA8XCg0KBQQ6AgEFEgSxDwQKCg0KBQQ6AgEBEgSxDwsVCg0KBQQ6AgEDEgSxDxgZCi4KBAQ6AgISBLIPBBoiICBOdW1iZXIgb2YgdHJhbnNtaXR0ZWQgcGFja2V0cy4gCg8KBQQ6AgIEEgayDwSxDxoKDQoFBDoCAgUSBLIPBAoKDQoFBDoCAgESBLIPCxUKDQoFBDoCAgMSBLIPGBkKKQoEBDoCAxIEsw8EGCIbIE51bWJlciBvZiByZWNlaXZlZCBieXRlcy4gCg8KBQQ6AgMEEgazDwSyDxoKDQoFBDoCAwUSBLMPBAoKDQoFBDoCAwESBLMPCxMKDQoFBDoCAwMSBLMPFhcKLAoEBDoCBBIEtA8EGCIeIE51bWJlciBvZiB0cmFuc21pdHRlZCBieXRlcy4gCg8KBQQ6AgQEEga0DwSzDxgKDQoFBDoCBAUSBLQPBAoKDQoFBDoCBAESBLQPCxMKDQoFBDoCBAMSBLQPFhcKMAoEBDoCBRIEtQ8EGiIiIE51bWJlciBvZiBwYWNrZXRzIGRyb3BwZWQgYnkgUlguIAoPCgUEOgIFBBIGtQ8EtA8YCg0KBQQ6AgUFEgS1DwQKCg0KBQQ6AgUBEgS1DwsVCg0KBQQ6AgUDEgS1DxgZCjAKBAQ6AgYSBLYPBBoiIiBOdW1iZXIgb2YgcGFja2V0cyBkcm9wcGVkIGJ5IFRYLiAKDwoFBDoCBgQSBrYPBLUPGgoNCgUEOgIGBRIEtg8ECgoNCgUEOgIGARIEtg8LFQoNCgUEOgIGAxIEtg8YGQqmAQoEBDoCBxIEtw8EGSKXASBOdW1iZXIgb2YgcmVjZWl2ZSBlcnJvcnMuICBUaGlzIGlzIGEgc3VwZXItc2V0Cm9mIG1vcmUgc3BlY2lmaWMgcmVjZWl2ZSBlcnJvcnMgYW5kIHNob3VsZCBiZQpncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHN1bSBvZiBhbGwKcnhfKl9lcnIgdmFsdWVzLiAKDwoFBDoCBwQSBrcPBLYPGgoNCgUEOgIHBRIEtw8ECgoNCgUEOgIHARIEtw8LFAoNCgUEOgIHAxIEtw8XGArBAQoEBDoCCBIEuw8EGSKyASBOdW1iZXIgb2YgdHJhbnNtaXQgZXJyb3JzLiAgVGhpcyBpcyBhIHN1cGVyLXNldApvZiBtb3JlIHNwZWNpZmljIHRyYW5zbWl0IGVycm9ycyBhbmQgc2hvdWxkIGJlCmdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgc3VtIG9mIGFsbAp0eF8qX2VyciB2YWx1ZXMgKG5vbmUgY3VycmVudGx5IGRlZmluZWQuKSAKDwoFBDoCCAQSBrsPBLcPGQoNCgUEOgIIBRIEuw8ECgoNCgUEOgIIARIEuw8LFAoNCgUEOgIIAxIEuw8XGAoxCgQEOgIJEgS/DwQdIiMgTnVtYmVyIG9mIGZyYW1lIGFsaWdubWVudCBlcnJvcnMuIAoPCgUEOgIJBBIGvw8Euw8ZCg0KBQQ6AgkFEgS/DwQKCg0KBQQ6AgkBEgS/DwsXCg0KBQQ6AgkDEgS/DxocCjIKBAQ6AgoSBMAPBBwiJCBOdW1iZXIgb2YgcGFja2V0cyB3aXRoIFJYIG92ZXJydW4uIAoPCgUEOgIKBBIGwA8Evw8dCg0KBQQ6AgoFEgTADwQKCg0KBQQ6AgoBEgTADwsWCg0KBQQ6AgoDEgTADxkbCiUKBAQ6AgsSBMEPBBsiFyBOdW1iZXIgb2YgQ1JDIGVycm9ycy4gCg8KBQQ6AgsEEgbBDwTADxwKDQoFBDoCCwUSBMEPBAoKDQoFBDoCCwESBMEPCxUKDQoFBDoCCwMSBMEPGBoKJQoEBDoCDBIEwg8EGyIXIE51bWJlciBvZiBjb2xsaXNpb25zLiAKDwoFBDoCDAQSBsIPBMEPGwoNCgUEOgIMBRIEwg8ECgoNCgUEOgIMARIEwg8LFQoNCgUEOgIMAxIEwg8YGgo0CgQEOgINEgTDDwQdIiYgVGltZSBwb3J0IGhhcyBiZWVuIGFsaXZlIGluIHNlY29uZHMuIAoPCgUEOgINBBIGww8Ewg8bCg0KBQQ6Ag0FEgTDDwQKCg0KBQQ6Ag0BEgTDDwsXCg0KBQQ6Ag0DEgTDDxocCkwKBAQ6Ag4SBMQPBB4iPiBUaW1lIHBvcnQgaGFzIGJlZW4gYWxpdmUgaW4gbmFub3NlY29uZHMKYmV5b25kIGR1cmF0aW9uX3NlYy4gCg8KBQQ6Ag4EEgbEDwTDDx0KDQoFBDoCDgUSBMQPBAoKDQoFBDoCDgESBMQPCxgKDQoFBDoCDgMSBMQPGx0KLAoCBDsSBskPAMsPARoeIEJvZHkgb2YgT0ZQTVBfR1JPVVAgcmVxdWVzdC4gCgsKAwQ7ARIEyQ8IHwonCgQEOwIAEgTKDwQYIhkgQWxsIGdyb3VwcyBpZiBPRlBHX0FMTC4gCg8KBQQ7AgAEEgbKDwTJDyEKDQoFBDsCAAUSBMoPBAoKDQoFBDsCAAESBMoPCxMKDQoFBDsCAAMSBMoPFhcKLAoCBDwSBs4PANEPARoeIFVzZWQgaW4gZ3JvdXAgc3RhdHMgcmVwbGllcy4gCgsKAwQ8ARIEzg8IGgo2CgQEPAIAEgTPDwQcIiggTnVtYmVyIG9mIHBhY2tldHMgcHJvY2Vzc2VkIGJ5IGJ1Y2tldC4gCg8KBQQ8AgAEEgbPDwTODxwKDQoFBDwCAAUSBM8PBAoKDQoFBDwCAAESBM8PCxcKDQoFBDwCAAMSBM8PGhsKNAoEBDwCARIE0A8EGiImIE51bWJlciBvZiBieXRlcyBwcm9jZXNzZWQgYnkgYnVja2V0LiAKDwoFBDwCAQQSBtAPBM8PHAoNCgUEPAIBBRIE0A8ECgoNCgUEPAIBARIE0A8LFQoNCgUEPAIBAxIE0A8YGQo1CgIEPRIG1A8A3w8BGicgQm9keSBvZiByZXBseSB0byBPRlBNUF9HUk9VUCByZXF1ZXN0LiAKCwoDBD0BEgTUDwgXCiEKBAQ9AgASBNUPBBgiEyBHcm91cCBpZGVudGlmaWVyLiAKDwoFBD0CAAQSBtUPBNQPGQoNCgUEPQIABRIE1Q8ECgoNCgUEPQIAARIE1Q8LEwoNCgUEPQIAAxIE1Q8WFwpOCgQEPQIBEgTWDwQZIkAgTnVtYmVyIG9mIGZsb3dzIG9yIGdyb3VwcyB0aGF0IGRpcmVjdGx5CmZvcndhcmQgdG8gdGhpcyBncm91cC4gCg8KBQQ9AgEEEgbWDwTVDxgKDQoFBD0CAQUSBNYPBAoKDQoFBD0CAQESBNYPCxQKDQoFBD0CAQMSBNYPFxgKNQoEBD0CAhIE2A8EHCInIE51bWJlciBvZiBwYWNrZXRzIHByb2Nlc3NlZCBieSBncm91cC4gCg8KBQQ9AgIEEgbYDwTWDxkKDQoFBD0CAgUSBNgPBAoKDQoFBD0CAgESBNgPCxcKDQoFBD0CAgMSBNgPGhsKMwoEBD0CAxIE2Q8EGiIlIE51bWJlciBvZiBieXRlcyBwcm9jZXNzZWQgYnkgZ3JvdXAuIAoPCgUEPQIDBBIG2Q8E2A8cCg0KBQQ9AgMFEgTZDwQKCg0KBQQ9AgMBEgTZDwsVCg0KBQQ9AgMDEgTZDxgZCjUKBAQ9AgQSBNoPBBwiJyBUaW1lIGdyb3VwIGhhcyBiZWVuIGFsaXZlIGluIHNlY29uZHMuIAoPCgUEPQIEBBIG2g8E2Q8aCg0KBQQ9AgQFEgTaDwQKCg0KBQQ9AgQBEgTaDwsXCg0KBQQ9AgQDEgTaDxobCk0KBAQ9AgUSBNsPBB0iPyBUaW1lIGdyb3VwIGhhcyBiZWVuIGFsaXZlIGluIG5hbm9zZWNvbmRzCmJleW9uZCBkdXJhdGlvbl9zZWMuIAoPCgUEPQIFBBIG2w8E2g8cCg0KBQQ9AgUFEgTbDwQKCg0KBQQ9AgUBEgTbDwsYCg0KBQQ9AgUDEgTbDxscCisKBAQ9AgYSBN0PBDEiHSBPbmUgY291bnRlciBzZXQgcGVyCmJ1Y2tldC4gCg0KBQQ9AgYEEgTdDwQMCg0KBQQ9AgYGEgTdDw0fCg0KBQQ9AgYBEgTdDyAsCg0KBQQ9AgYDEgTdDy8wCjoKAgQ+EgbiDwDmDwEaLCBCb2R5IG9mIHJlcGx5IHRvIE9GUE1QX0dST1VQX0RFU0MgcmVxdWVzdC4gCgsKAwQ+ARIE4g8IFgofCgQEPgIAEgTjDwQcIhEgT25lIG9mIE9GUEdUXyouIAoPCgUEPgIABBIG4w8E4g8YCg0KBQQ+AgAGEgTjDwQSCg0KBQQ+AgABEgTjDxMXCg0KBQQ+AgADEgTjDxobCiEKBAQ+AgESBOQPBBgiEyBHcm91cCBpZGVudGlmaWVyLiAKDwoFBD4CAQQSBuQPBOMPHAoNCgUEPgIBBRIE5A8ECgoNCgUEPgIBARIE5A8LEwoNCgUEPgIBAxIE5A8WFwosCgQEPgICEgTlDwQkIh4gTGlzdCBvZiBidWNrZXRzIC0gMCBvciBtb3JlLiAKDQoFBD4CAgQSBOUPBAwKDQoFBD4CAgYSBOUPDRcKDQoFBD4CAgESBOUPGB8KDQoFBD4CAgMSBOUPIiMKDAoCBD8SBugPAOwPAQoLCgMEPwESBOgPCBcKDgoEBD8CABIG6Q8E6g9bCg8KBQQ/AgAEEgbpDwToDxkKDQoFBD8CAAYSBOkPBBIKDQoFBD8CAAESBOkPExcKDQoFBD8CAAMSBOkPGhsKDwoFBD8CAAgSBukPHOoPWgoSCgoEPwIACPDe2QMBEgTpDx1CChIKCgQ/AgAI8N7ZAwISBOoPHFkKDAoEBD8CARIE6w8EHgoPCgUEPwIBBBIG6w8E6g9bCg0KBQQ/AgEGEgTrDwQTCg0KBQQ/AgEBEgTrDxQZCg0KBQQ/AgEDEgTrDxwdCpYBCgIFMRIG8g8A+A8BGhsgR3JvdXAgY29uZmlndXJhdGlvbiBmbGFncyAyPSBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggMS4zLjEgLSBhdm9pZCBicmVha2luZyB0aGUgQVBJLiAyLCNkZWZpbmUgb2ZwX2dyb3VwX2Rlc2Nfc3RhdHMgb2ZwX2dyb3VwX2Rlc2MKCgsKAwUxARIE8g8FGwoMCgQFMQIAEgTzDwQfCg0KBQUxAgABEgTzDwQSCg0KBQUxAgACEgTzDx0eCjAKBAUxAgESBPQPBB8iIiBTdXBwb3J0IHdlaWdodCBmb3Igc2VsZWN0IGdyb3VwcyAKDQoFBTECAQESBPQPBBgKDQoFBTECAQISBPQPHR4KMgoEBTECAhIE9Q8EHyIkIFN1cHBvcnQgbGl2ZW5lc3MgZm9yIHNlbGVjdCBncm91cHMgCg0KBQUxAgIBEgT1DwQaCg0KBQUxAgICEgT1Dx0eCicKBAUxAgMSBPYPBB8iGSBTdXBwb3J0IGNoYWluaW5nIGdyb3VwcyAKDQoFBTECAwESBPYPBBMKDQoFBTECAwISBPYPHR4KMwoEBTECBBIE9w8EHyIlIENoZWNrIGNoYWluaW5nIGZvciBsb29wcyBhbmQgZGVsZXRlIAoNCgUFMQIEARIE9w8EGgoNCgUFMQIEAhIE9w8dHgpOCgIEQBIG+w8AghABGkAgQm9keSBvZiByZXBseSB0byBPRlBNUF9HUk9VUF9GRUFUVVJFUyByZXF1ZXN0LiBHcm91cCBmZWF0dXJlcy4gCgsKAwRAARIE+w8IGgo6CgQEQAIAEgT8DwQWIiwgQml0bWFwIG9mICgxIDw8IE9GUEdUXyopIHZhbHVlcyBzdXBwb3J0ZWQuIAoPCgUEQAIABBIG/A8E+w8cCg0KBQRAAgAFEgT8DwQKCg0KBQRAAgABEgT8DwwRCg0KBQRAAgADEgT8DxQVCjgKBARAAgESBP0PBB0iKiBCaXRtYXAgb2YgT0ZQR0ZDXyogY2FwYWJpbGl0eSBzdXBwb3J0ZWQuIAoPCgUEQAIBBBIG/Q8E/A8WCg0KBQRAAgEFEgT9DwQKCg0KBQRAAgEBEgT9DwwYCg0KBQRAAgEDEgT9DxscCjcKBARAAgISBP4PBCMiKSBNYXhpbXVtIG51bWJlciBvZiBncm91cHMgZm9yIGVhY2ggdHlwZS4KCg0KBQRAAgIEEgT+DwQMCg0KBQRAAgIFEgT+Dw0TCg0KBQRAAgIBEgT+DxQeCg0KBQRAAgIDEgT+DyEiCjsKBARAAgMSBIAQBCAiLSBCaXRtYXBzIG9mICgxIDw8IE9GUEFUXyopIHZhbHVlcwpzdXBwb3J0ZWQuIAoNCgUEQAIDBBIEgBAEDAoNCgUEQAIDBRIEgBANEwoNCgUEQAIDARIEgBAUGwoNCgUEQAIDAxIEgBAeHwpECgIEQRIGhRAAhxABGjYgQm9keSBvZiBPRlBNUF9NRVRFUiBhbmQgT0ZQTVBfTUVURVJfQ09ORklHIHJlcXVlc3RzLiAKCwoDBEEBEgSFEAgjCiwKBARBAgASBIYQBBgiHiBNZXRlciBpbnN0YW5jZSwgb3IgT0ZQTV9BTEwuIAoPCgUEQQIABBIGhhAEhRAlCg0KBQRBAgAFEgSGEAQKCg0KBQRBAgABEgSGEAsTCg0KBQRBAgADEgSGEBYXCi4KAgRCEgaKEACNEAEaICBTdGF0aXN0aWNzIGZvciBlYWNoIG1ldGVyIGJhbmQgCgsKAwRCARIEihAIHAoqCgQEQgIAEgSLEAQoIhwgTnVtYmVyIG9mIHBhY2tldHMgaW4gYmFuZC4gCg8KBQRCAgAEEgaLEASKEB4KDQoFBEICAAUSBIsQBAoKDQoFBEICAAESBIsQEiMKDQoFBEICAAMSBIsQJicKKAoEBEICARIEjBAEJiIaIE51bWJlciBvZiBieXRlcyBpbiBiYW5kLiAKDwoFBEICAQQSBowQBIsQKAoNCgUEQgIBBRIEjBAECgoNCgUEQgIBARIEjBASIQoNCgUEQgIBAxIEjBAkJQpHCgIEQxIGkBAAmhABGjkgQm9keSBvZiByZXBseSB0byBPRlBNUF9NRVRFUiByZXF1ZXN0LiBNZXRlciBzdGF0aXN0aWNzLiAKCwoDBEMBEgSQEAgXCh8KBARDAgASBJEQBB8iESBNZXRlciBpbnN0YW5jZS4gCg8KBQRDAgAEEgaREASQEBkKDQoFBEMCAAUSBJEQBAoKDQoFBEMCAAESBJEQEhoKDQoFBEMCAAMSBJEQHR4KLwoEBEMCARIEkhAEISIhIE51bWJlciBvZiBmbG93cyBib3VuZCB0byBtZXRlci4gCg8KBQRDAgEEEgaSEASREB8KDQoFBEMCAQUSBJIQBAoKDQoFBEMCAQESBJIQEhwKDQoFBEMCAQMSBJIQHyAKKwoEBEMCAhIEkxAEJiIdIE51bWJlciBvZiBwYWNrZXRzIGluIGlucHV0LiAKDwoFBEMCAgQSBpMQBJIQIQoNCgUEQwICBRIEkxAECgoNCgUEQwICARIEkxASIQoNCgUEQwICAxIEkxAkJQopCgQEQwIDEgSUEAQkIhsgTnVtYmVyIG9mIGJ5dGVzIGluIGlucHV0LiAKDwoFBEMCAwQSBpQQBJMQJgoNCgUEQwIDBRIElBAECgoNCgUEQwIDARIElBASHwoNCgUEQwIDAxIElBAiIwo1CgQEQwIEEgSVEAQjIicgVGltZSBtZXRlciBoYXMgYmVlbiBhbGl2ZSBpbiBzZWNvbmRzLiAKDwoFBEMCBAQSBpUQBJQQJAoNCgUEQwIEBRIElRAECgoNCgUEQwIEARIElRASHgoNCgUEQwIEAxIElRAhIgpNCgQEQwIFEgSWEAQkIj8gVGltZSBtZXRlciBoYXMgYmVlbiBhbGl2ZSBpbiBuYW5vc2Vjb25kcwpiZXlvbmQgZHVyYXRpb25fc2VjLiAKDwoFBEMCBQQSBpYQBJUQIwoNCgUEQwIFBRIElhAECgoNCgUEQwIFARIElhASHwoNCgUEQwIFAxIElhAiIwpICgQEQwIGEgSYEAQxIjogVGhlIGJhbmRfc3RhdHMgbGVuZ3RoIGlzCmluZmVycmVkIGZyb20gdGhlIGxlbmd0aCBmaWVsZC4gCg0KBQRDAgYEEgSYEAQMCg0KBQRDAgYGEgSYEA0hCg0KBQRDAgYBEgSYECIsCg0KBQRDAgYDEgSYEC8wClEKAgREEgadEACiEAEaQyBCb2R5IG9mIHJlcGx5IHRvIE9GUE1QX01FVEVSX0NPTkZJRyByZXF1ZXN0LiBNZXRlciBjb25maWd1cmF0aW9uLiAKCwoDBEQBEgSdEAgYCicKBAREAgASBJ4QBBwiGSBBbGwgT0ZQTUZfKiB0aGF0IGFwcGx5LiAKDwoFBEQCAAQSBp4QBJ0QGgoNCgUERAIABRIEnhAECgoNCgUERAIAARIEnhASFwoNCgUERAIAAxIEnhAaGwofCgQERAIBEgSfEAQfIhEgTWV0ZXIgaW5zdGFuY2UuIAoPCgUERAIBBBIGnxAEnhAcCg0KBQREAgEFEgSfEAQKCg0KBQREAgEBEgSfEBIaCg0KBQREAgEDEgSfEB0eCkMKBAREAgISBKAQBC0iNSBUaGUgYmFuZHMgbGVuZ3RoIGlzCmluZmVycmVkIGZyb20gdGhlIGxlbmd0aCBmaWVsZC4gCg0KBQREAgIEEgSgEAQMCg0KBQREAgIGEgSgEA0iCg0KBQREAgIBEgSgECMoCg0KBQREAgIDEgSgECssCk4KAgRFEgalEACsEAEaQCBCb2R5IG9mIHJlcGx5IHRvIE9GUE1QX01FVEVSX0ZFQVRVUkVTIHJlcXVlc3QuIE1ldGVyIGZlYXR1cmVzLiAKCwoDBEUBEgSlEAgaCikKBARFAgASBKYQBBwiGyBNYXhpbXVtIG51bWJlciBvZiBtZXRlcnMuIAoPCgUERQIABBIGphAEpRAcCg0KBQRFAgAFEgSmEAQKCg0KBQRFAgABEgSmEA4XCg0KBQRFAgADEgSmEBobCjwKBARFAgESBKcQBB0iLiBCaXRtYXBzIG9mICgxIDw8IE9GUE1CVF8qKSB2YWx1ZXMgc3VwcG9ydGVkLgoKDwoFBEUCAQQSBqcQBKYQHAoNCgUERQIBBRIEpxAECgoNCgUERQIBARIEpxAOGAoNCgUERQIBAxIEpxAbHAotCgQERQICEgSpEAQfIh8gQml0bWFwcyBvZiAib2ZwX21ldGVyX2ZsYWdzIi4gCg8KBQRFAgIEEgapEASnEB0KDQoFBEUCAgUSBKkQBAoKDQoFBEUCAgESBKkQDhoKDQoFBEUCAgMSBKkQHR4KKAoEBEUCAxIEqhAEHCIaIE1heGltdW0gYmFuZHMgcGVyIG1ldGVycyAKDwoFBEUCAwQSBqoQBKkQHwoNCgUERQIDBRIEqhAECgoNCgUERQIDARIEqhAOFwoNCgUERQIDAxIEqhAaGwojCgQERQIEEgSrEAQcIhUgTWF4aW11bSBjb2xvciB2YWx1ZSAKDwoFBEUCBAQSBqsQBKoQHAoNCgUERQIEBRIEqxAECgoNCgUERQIEARIEqxAOFwoNCgUERQIEAxIEqxAaGwpQCgIERhIGrxAAtBABGkIgQm9keSBmb3Igb2ZwX211bHRpcGFydF9yZXF1ZXN0L3JlcGx5IG9mIHR5cGUgT0ZQTVBfRVhQRVJJTUVOVEVSLiAKCwoDBEYBEgSvEAgpCl8KBARGAgASBLAQBBwiUSBFeHBlcmltZW50ZXIgSUQgd2hpY2ggdGFrZXMgdGhlIHNhbWUgZm9ybQphcyBpbiBzdHJ1Y3Qgb2ZwX2V4cGVyaW1lbnRlcl9oZWFkZXIuIAoPCgUERgIABBIGsBAErxArCg0KBQRGAgAFEgSwEAQKCg0KBQRGAgABEgSwEAsXCg0KBQRGAgADEgSwEBobCiUKBARGAgESBLIQBBgiFyBFeHBlcmltZW50ZXIgZGVmaW5lZC4gCg8KBQRGAgEEEgayEASwEBwKDQoFBEYCAQUSBLIQBAoKDQoFBEYCAQESBLIQCxMKDQoFBEYCAQMSBLIQFhcKPwoEBEYCAhIEsxAEEyIxIEV4cGVyaW1lbnRlci1kZWZpbmVkIGFyYml0cmFyeSBhZGRpdGlvbmFsIGRhdGEuIAoPCgUERgICBBIGsxAEshAYCg0KBQRGAgIFEgSzEAQJCg0KBQRGAgIBEgSzEAoOCg0KBQRGAgIDEgSzEBESCicKAgRHEga3EAC+EAEaGSBFeHBlcmltZW50ZXIgZXh0ZW5zaW9uLiAKCwoDBEcBEgS3EAgfCpkBCgQERwIAEgS5EAQcGjJvZnBfaGVhZGVyIGhlYWRlcjsgIC8qIFR5cGUgT0ZQVF9FWFBFUklNRU5URVIuICovCiJXIEV4cGVyaW1lbnRlciBJRDoKIC0gTVNCIDA6IGxvdy1vcmRlciBieXRlcyBhcmUgSUVFRSBPVUkuCiAtIE1TQiAhPSAwOiBkZWZpbmVkIGJ5IE9ORi4gCg8KBQRHAgAEEga5EAS3ECEKDQoFBEcCAAUSBLkQBAoKDQoFBEcCAAESBLkQCxcKDQoFBEcCAAMSBLkQGhsKJQoEBEcCARIEvBAEGCIXIEV4cGVyaW1lbnRlciBkZWZpbmVkLiAKDwoFBEcCAQQSBrwQBLkQHAoNCgUERwIBBRIEvBAECgoNCgUERwIBARIEvBALEwoNCgUERwIBAxIEvBAWFwo/CgQERwICEgS9EAQTIjEgRXhwZXJpbWVudGVyLWRlZmluZWQgYXJiaXRyYXJ5IGFkZGl0aW9uYWwgZGF0YS4gCg8KBQRHAgIEEga9EAS8EBgKDQoFBEcCAgUSBL0QBAkKDQoFBEcCAgESBL0QCg4KDQoFBEcCAgMSBL0QERIKoQIKAgUyEgbJEADOEAEySiBBbGwgb25lcyBpcyB1c2VkIHRvIGluZGljYXRlIGFsbCBxdWV1ZXMgaW4gYSBwb3J0IChmb3Igc3RhdHMgcmV0cmlldmFsKS4gMiEjZGVmaW5lIE9GUFFfQUxMICAgICAgMHhmZmZmZmZmZgoyJyBNaW4gcmF0ZSA+IDEwMDAgbWVhbnMgbm90IGNvbmZpZ3VyZWQuIDIoI2RlZmluZSBPRlBRX01JTl9SQVRFX1VOQ0ZHICAgICAgMHhmZmZmCjInIE1heCByYXRlID4gMTAwMCBtZWFucyBub3QgY29uZmlndXJlZC4gMigjZGVmaW5lIE9GUFFfTUFYX1JBVEVfVU5DRkcgICAgICAweGZmZmYKCgsKAwUyARIEyRAFGQoMCgQFMgIAEgTKEAQcCg0KBQUyAgABEgTKEAQRCg0KBQUyAgACEgTKEBobCiwKBAUyAgESBMsQBBwiHiBNaW5pbXVtIGRhdGFyYXRlIGd1YXJhbnRlZWQuIAoNCgUFMgIBARIEyxAEEgoNCgUFMgIBAhIEyxAaGwohCgQFMgICEgTMEAQcIhMgTWF4aW11bSBkYXRhcmF0ZS4gCg0KBQUyAgIBEgTMEAQSCg0KBQUyAgICEgTMEBobCi4KBAUyAgMSBM0QBCEiICBFeHBlcmltZW50ZXIgZGVmaW5lZCBwcm9wZXJ0eS4gCg0KBQUyAgMBEgTNEAQWCg0KBQUyAgMCEgTNEBogCi8KAgRIEgbREADUEAEaISBDb21tb24gZGVzY3JpcHRpb24gZm9yIGEgcXVldWUuIAoLCgMESAESBNEQCB0KHgoEBEgCABIE0hAEGCIQIE9uZSBvZiBPRlBRVF8uIAoPCgUESAIABBIG0hAE0RAfCg0KBQRIAgAFEgTSEAQKCg0KBQRIAgABEgTSEAsTCg0KBQRIAgADEgTSEBYXCjoKBARIAgESBNMQBBMiLCBMZW5ndGggb2YgcHJvcGVydHksIGluY2x1ZGluZyB0aGlzIGhlYWRlci4gCg8KBQRIAgEEEgbTEATSEBgKDQoFBEgCAQUSBNMQBAoKDQoFBEgCAQESBNMQCw4KDQoFBEgCAQMSBNMQERIKNAoCBEkSBtcQANoQARomIE1pbi1SYXRlIHF1ZXVlIHByb3BlcnR5IGRlc2NyaXB0aW9uLiAKCwoDBEkBEgTXEAgfCikKBARJAgASBNgQBCoiGyBwcm9wOiBPRlBRVF9NSU4sIGxlbjogMTYuIAoPCgUESQIABBIG2BAE1xAhCg0KBQRJAgAGEgTYEAQZCg0KBQRJAgABEgTYEBolCg0KBQRJAgADEgTYECgpCjsKBARJAgESBNkQBBQiLSBJbiAxLzEwIG9mIGEgcGVyY2VudCA9IDA7PjEwMDAgLT4gZGlzYWJsZWQuIAoPCgUESQIBBBIG2RAE2BAqCg0KBQRJAgEFEgTZEAQKCg0KBQRJAgEBEgTZEAsPCg0KBQRJAgEDEgTZEBITCjQKAgRKEgbdEADgEAEaJiBNYXgtUmF0ZSBxdWV1ZSBwcm9wZXJ0eSBkZXNjcmlwdGlvbi4gCgsKAwRKARIE3RAIHwopCgQESgIAEgTeEAQqIhsgcHJvcDogT0ZQUVRfTUFYLCBsZW46IDE2LiAKDwoFBEoCAAQSBt4QBN0QIQoNCgUESgIABhIE3hAEGQoNCgUESgIAARIE3hAaJQoNCgUESgIAAxIE3hAoKQo7CgQESgIBEgTfEAQUIi0gSW4gMS8xMCBvZiBhIHBlcmNlbnQgPSAwOz4xMDAwIC0+IGRpc2FibGVkLiAKDwoFBEoCAQQSBt8QBN4QKgoNCgUESgIBBRIE3xAECgoNCgUESgIBARIE3xALDwoNCgUESgIBAxIE3xASEwo4CgIESxIG4xAA6RABGiogRXhwZXJpbWVudGVyIHF1ZXVlIHByb3BlcnR5IGRlc2NyaXB0aW9uLiAKCwoDBEsBEgTjEAgjCigKBARLAgASBOQQBCoiGiBwcm9wOiBPRlBRVF9FWFBFUklNRU5URVIgCg8KBQRLAgAEEgbkEATjECUKDQoFBEsCAAYSBOQQBBkKDQoFBEsCAAESBOQQGiUKDQoFBEsCAAMSBOQQKCkKXwoEBEsCARIE5RAEHCJRIEV4cGVyaW1lbnRlciBJRCB3aGljaCB0YWtlcyB0aGUgc2FtZQpmb3JtIGFzIGluIHN0cnVjdApvZnBfZXhwZXJpbWVudGVyX2hlYWRlci4gCg8KBQRLAgEEEgblEATkECoKDQoFBEsCAQUSBOUQBAoKDQoFBEsCAQESBOUQCxcKDQoFBEsCAQMSBOUQGhsKKgoEBEsCAhIE6BAEEyIcIEV4cGVyaW1lbnRlciBkZWZpbmVkIGRhdGEuIAoPCgUESwICBBIG6BAE5RAcCg0KBQRLAgIFEgToEAQJCg0KBQRLAgIBEgToEAoOCg0KBQRLAgIDEgToEBESCi0KAgRMEgbsEADwEAEaHyBGdWxsIGRlc2NyaXB0aW9uIGZvciBhIHF1ZXVlLiAKCwoDBEwBEgTsEAgYCioKBARMAgASBO0QBBgiHCBpZCBmb3IgdGhlIHNwZWNpZmljIHF1ZXVlLiAKDwoFBEwCAAQSBu0QBOwQGgoNCgUETAIABRIE7RAECgoNCgUETAIAARIE7RALEwoNCgUETAIAAxIE7RAWFwovCgQETAIBEgTuEAQUIiEgUG9ydCB0aGlzIHF1ZXVlIGlzIGF0dGFjaGVkIHRvLiAKDwoFBEwCAQQSBu4QBO0QGAoNCgUETAIBBRIE7hAECgoNCgUETAIBARIE7hALDwoNCgUETAIBAxIE7hASEwojCgQETAICEgTvEAQyIhUgTGlzdCBvZiBwcm9wZXJ0aWVzLiAKDQoFBEwCAgQSBO8QBAwKDQoFBEwCAgYSBO8QDSIKDQoFBEwCAgESBO8QIy0KDQoFBEwCAgMSBO8QMDEKMwoCBE0SBvMQAPkQARolIFF1ZXJ5IGZvciBwb3J0IHF1ZXVlIGNvbmZpZ3VyYXRpb24uIAoLCgMETQESBPMQCCQKnwEKBARNAgASBPUQBBQaE29mcF9oZWFkZXIgaGVhZGVyOwoifCBQb3J0IHRvIGJlIHF1ZXJpZWQuIFNob3VsZCByZWZlcgp0byBhIHZhbGlkIHBoeXNpY2FsIHBvcnQgKGkuZS4gPD0gT0ZQUF9NQVgpLApvciBPRlBQX0FOWSB0byByZXF1ZXN0IGFsbCBjb25maWd1cmVkCnF1ZXVlcy4KDwoFBE0CAAQSBvUQBPMQJgoNCgUETQIABRIE9RAECgoNCgUETQIAARIE9RALDwoNCgUETQIAAxIE9RASEwo1CgIEThIG/BAAgBEBGicgUXVldWUgY29uZmlndXJhdGlvbiBmb3IgYSBnaXZlbiBwb3J0LiAKCwoDBE4BEgT8EAgiCiEKBAROAgASBP4QBBQaE29mcF9oZWFkZXIgaGVhZGVyOwoKDwoFBE4CAAQSBv4QBPwQJAoNCgUETgIABRIE/hAECgoNCgUETgIAARIE/hALDwoNCgUETgIAAxIE/hASEwoqCgQETgIBEgT/EAQpIhwgTGlzdCBvZiBjb25maWd1cmVkIHF1ZXVlcy4gCg0KBQROAgEEEgT/EAQMCg0KBQROAgEGEgT/EA0dCg0KBQROAgEBEgT/EB4kCg0KBQROAgEDEgT/ECcoClMKAgRPEgaDEQCGEQEaRSBPRlBBVF9TRVRfUVVFVUUgYWN0aW9uIHN0cnVjdDogc2VuZCBwYWNrZXRzIHRvIGdpdmVuIHF1ZXVlIG9uIHBvcnQuIAoLCgMETwESBIMRCBwKIAoEBE8CABIEhBEEFCISIE9GUEFUX1NFVF9RVUVVRS4gCg8KBQRPAgAEEgaEEQSDER4KDQoFBE8CAAUSBIQRBAoKDQoFBE8CAAESBIQRCw8KDQoFBE8CAAMSBIQREhMKKQoEBE8CARIEhREEGCIbIFF1ZXVlIGlkIGZvciB0aGUgcGFja2V0cy4gCg8KBQRPAgEEEgaFEQSEERQKDQoFBE8CAQUSBIURBAoKDQoFBE8CAQESBIURCxMKDQoFBE8CAQMSBIURFhcKDAoCBFASBogRAIsRAQoLCgMEUAESBIgRCB8KJgoEBFACABIEiREEFyIYIEFsbCBwb3J0cyBpZiBPRlBQX0FOWS4gCg8KBQRQAgAEEgaJEQSIESEKDQoFBFACAAUSBIkRBAoKDQoFBFACAAESBIkRCxIKDQoFBFACAAMSBIkRFRYKJwoEBFACARIEihEEGCIZIEFsbCBxdWV1ZXMgaWYgT0ZQUV9BTEwuIAoPCgUEUAIBBBIGihEEiREXCg0KBQRQAgEFEgSKEQQKCg0KBQRQAgEBEgSKEQsTCg0KBQRQAgEDEgSKERYXCgwKAgRREgaNEQCWEQEKCwoDBFEBEgSNEQgXCgwKBARRAgASBI4RBBcKDwoFBFECAAQSBo4RBI0RGQoNCgUEUQIABRIEjhEECgoNCgUEUQIAARIEjhELEgoNCgUEUQIAAxIEjhEVFgoZCgQEUQIBEgSPEQQYIgsgUXVldWUgaS5kIAoPCgUEUQIBBBIGjxEEjhEXCg0KBQRRAgEFEgSPEQQKCg0KBQRRAgEBEgSPEQsTCg0KBQRRAgEDEgSPERYXCiwKBARRAgISBJARBBgiHiBOdW1iZXIgb2YgdHJhbnNtaXR0ZWQgYnl0ZXMuIAoPCgUEUQICBBIGkBEEjxEYCg0KBQRRAgIFEgSQEQQKCg0KBQRRAgIBEgSQEQsTCg0KBQRRAgIDEgSQERYXCi4KBARRAgMSBJERBBoiICBOdW1iZXIgb2YgdHJhbnNtaXR0ZWQgcGFja2V0cy4gCg8KBQRRAgMEEgaREQSQERgKDQoFBFECAwUSBJERBAoKDQoFBFECAwESBJERCxUKDQoFBFECAwMSBJERGBkKOQoEBFECBBIEkhEEGSIrIE51bWJlciBvZiBwYWNrZXRzIGRyb3BwZWQgZHVlIHRvIG92ZXJydW4uIAoPCgUEUQIEBBIGkhEEkREaCg0KBQRRAgQFEgSSEQQKCg0KBQRRAgQBEgSSEQsUCg0KBQRRAgQDEgSSERcYCjUKBARRAgUSBJMRBBwiJyBUaW1lIHF1ZXVlIGhhcyBiZWVuIGFsaXZlIGluIHNlY29uZHMuIAoPCgUEUQIFBBIGkxEEkhEZCg0KBQRRAgUFEgSTEQQKCg0KBQRRAgUBEgSTEQsXCg0KBQRRAgUDEgSTERobCk0KBARRAgYSBJQRBB0iPyBUaW1lIHF1ZXVlIGhhcyBiZWVuIGFsaXZlIGluIG5hbm9zZWNvbmRzCmJleW9uZCBkdXJhdGlvbl9zZWMuIAoPCgUEUQIGBBIGlBEEkxEcCg0KBQRRAgYFEgSUEQQKCg0KBQRRAgYBEgSUEQsYCg0KBQRRAgYDEgSUERscCusGCgIFMxIGrREAshEBGhMgQ29udHJvbGxlciByb2xlcy4gMscGIENvbmZpZ3VyZXMgdGhlICJyb2xlIiBvZiB0aGUgc2VuZGluZyBjb250cm9sbGVyLiAgVGhlIGRlZmF1bHQgcm9sZSBpczoKCiAgICAtIEVxdWFsIChPRlBDUl9ST0xFX0VRVUFMKSwgd2hpY2ggYWxsb3dzIHRoZSBjb250cm9sbGVyIGFjY2VzcyB0byBhbGwKICAgICAgT3BlbkZsb3cgZmVhdHVyZXMuIEFsbCBjb250cm9sbGVycyBoYXZlIGVxdWFsIHJlc3BvbnNpYmlsaXR5LgoKIFRoZSBvdGhlciBwb3NzaWJsZSByb2xlcyBhcmUgYSByZWxhdGVkIHBhaXI6CgogICAgLSBNYXN0ZXIgKE9GUENSX1JPTEVfTUFTVEVSKSBpcyBlcXVpdmFsZW50IHRvIEVxdWFsLCBleGNlcHQgdGhhdCB0aGVyZQogICAgICBtYXkgYmUgYXQgbW9zdCBvbmUgTWFzdGVyIGNvbnRyb2xsZXIgYXQgYSB0aW1lOiB3aGVuIGEgY29udHJvbGxlcgogICAgICBjb25maWd1cmVzIGl0c2VsZiBhcyBNYXN0ZXIsIGFueSBleGlzdGluZyBNYXN0ZXIgaXMgZGVtb3RlZCB0byB0aGUKICAgICAgU2xhdmUgcm9sZS4KCiAgICAtIFNsYXZlIChPRlBDUl9ST0xFX1NMQVZFKSBhbGxvd3MgdGhlIGNvbnRyb2xsZXIgcmVhZC1vbmx5IGFjY2VzcyB0bwogICAgICBPcGVuRmxvdyBmZWF0dXJlcy4gIEluIHBhcnRpY3VsYXIgYXR0ZW1wdHMgdG8gbW9kaWZ5IHRoZSBmbG93IHRhYmxlCiAgICAgIHdpbGwgYmUgcmVqZWN0ZWQgd2l0aCBhbiBPRlBCUkNfRVBFUk0gZXJyb3IuCgogICAgICBTbGF2ZSBjb250cm9sbGVycyBkbyBub3QgcmVjZWl2ZSBPRlBUX1BBQ0tFVF9JTiBvciBPRlBUX0ZMT1dfUkVNT1ZF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ZHMSGAoHYWRhcHRlchgCIAEoCVIHYWRhcHRlchI3ChhhY2NlcHRzX2J1bGtfZmxvd191cGRhdGUYAyABKAhSFWFjY2VwdHNCdWxrRmxvd1VwZGF0ZRJECh9hY2NlcHRzX2FkZF9yZW1vdmVfZmxvd191cGRhdGVzGAQgASgIUhthY2NlcHRzQWRkUmVtb3ZlRmxvd1VwZGF0ZXMSTAojYWNjZXB0c19kaXJlY3RfbG9naWNhbF9mbG93c191cGRhdGUYByABKAhSH2FjY2VwdHNEaXJlY3RMb2dpY2FsRmxvd3NVcGRhdGUiNwoLRGV2aWNlVHlwZXMSKAoFaXRlbXMYASADKAsyEi52b2x0aGEuRGV2aWNlVHlwZVIFaXRlbXMiwAEKCFBtQ29uZmlnEhIKBG5hbWUYASABKAlSBG5hbWUSKwoEdHlwZRgCIAEoDjIXLnZvbHRoYS5QbUNvbmZpZy5QbVR5cGVSBHR5cGUSGAoHZW5hYmxlZBgDIAEoCFIHZW5hYmxlZBIfCgtzYW1wbGVfZnJlcRgEIAEoDVIKc2FtcGxlRnJlcSI4CgZQbVR5cGUSCwoHQ09VTlRFUhAAEgkKBUdBVUdFEAESCQoFU1RBVEUQAhILCgdDT05URVhUEAMikwEKDVBtR3JvdXBDb25maWcSHQoKZ3JvdXBfbmFtZRgBIAEoCVIJZ3JvdXBOYW1lEh0KCmdyb3VwX2ZyZXEYAiABKA1SCWdyb3VwRnJlcRIYCgdlbmFibGVkGAMgASgIUgdlbmFibGVkEioKB21ldHJpY3MYBCADKAsyEC52b2x0aGEuUG1Db25maWdSB21ldHJpY3Mi5gEKCVBtQ29uZmlncxIOCgJpZBgBIAEoCVICaWQSIQoMZGVmYXVsdF9mcmVxGAIgASgNUgtkZWZhdWx0RnJlcRIfCgdncm91cGVkGAMgASgIQgXo9s0dAVIHZ3JvdXBlZBIqCg1mcmVxX292ZXJyaWRlGAQgASgIQgXo9s0dAVIMZnJlcU92ZXJyaWRlEi0KBmdyb3VwcxgFIAMoCzIVLnZvbHRoYS5QbUdyb3VwQ29uZmlnUgZncm91cHMSKgoHbWV0cmljcxgGIAMoCzIQLnZvbHRoYS5QbUNvbmZpZ1IHbWV0cmljcyLPAQoFSW1hZ2USEgoEbmFtZRgBIAEoCVIEbmFtZRIYCgd2ZXJzaW9uGAIgASgJUgd2ZXJzaW9uEhIKBGhhc2gYAyABKAlSBGhhc2gSKQoQaW5zdGFsbF9kYXRldGltZRgEIAEoCVIPaW5zdGFsbERhdGV0aW1lEhsKCWlzX2FjdGl2ZRgFIAEoCFIIaXNBY3RpdmUSIQoMaXNfY29tbWl0dGVkGAYgASgIUgtpc0NvbW1pdHRlZBIZCghpc192YWxpZBgHIAEoCFIHaXNWYWxpZCItCgZJbWFnZXMSIwoFaW1hZ2UYASADKAsyDS52b2x0aGEuSW1hZ2VSBWltYWdlIuoHCg1JbWFnZURvd25sb2FkEg4KAmlkGAEgASgJUgJpZBISCgRuYW1lGAIgASgJUgRuYW1lEhAKA3VybBgDIAEoCVIDdXJsEhAKA2NyYxgEIAEoDVIDY3JjEk8KDmRvd25sb2FkX3N0YXRlGAUgASgOMigudm9sdGhhLkltYWdlRG93bmxvYWQuSW1hZ2VEb3dubG9hZFN0YXRlUg1kb3dubG9hZFN0YXRlEiMKDWltYWdlX3ZlcnNpb24YBiABKAlSDGltYWdlVmVyc2lvbhIpChBkb3dubG9hZGVkX2J5dGVzGAcgASgNUg9kb3dubG9hZGVkQnl0ZXMSSAoGcmVhc29uGAggASgOMjAudm9sdGhhLkltYWdlRG93bmxvYWQuSW1hZ2VEb3dubG9hZEZhaWx1cmVSZWFzb25SBnJlYXNvbhInCg9hZGRpdGlvbmFsX2luZm8YCSABKAlSDmFkZGl0aW9uYWxJbmZvEh8KC3NhdmVfY29uZmlnGAogASgIUgpzYXZlQ29uZmlnEhsKCWxvY2FsX2RpchgLIAEoCVIIbG9jYWxEaXISSQoLaW1hZ2Vfc3RhdGUYDCABKA4yKC52b2x0aGEuSW1hZ2VEb3dubG9hZC5JbWFnZUFjdGl2YXRlU3RhdGVSCmltYWdlU3RhdGUSGwoJZmlsZV9zaXplGA0gASgNUghmaWxlU2l6ZSK3AQoSSW1hZ2VEb3dubG9hZFN0YXRlEhQKEERPV05MT0FEX1VOS05PV04QABIWChJET1dOTE9BRF9TVUNDRUVERUQQARIWChJET1dOTE9BRF9SRVFVRVNURUQQAhIUChBET1dOTE9BRF9TVEFSVEVEEAMSEwoPRE9XTkxPQURfRkFJTEVEEAQSGAoURE9XTkxPQURfVU5TVVBQT1JURUQQBRIWChJET1dOTE9BRF9DQU5DRUxMRUQQBiKGAQoaSW1hZ2VEb3dubG9hZEZhaWx1cmVSZWFzb24SDAoITk9fRVJST1IQABIPCgtJTlZBTElEX1VSTBABEg8KC0RFVklDRV9CVVNZEAISFgoSSU5TVUZGSUNJRU5UX1NQQUNFEAMSEQoNVU5LTk9XTl9FUlJPUhAEEg0KCUNBTkNFTExFRBAFIowBChJJbWFnZUFjdGl2YXRlU3RhdGUSEQoNSU1BR0VfVU5LTk9XThAAEhIKDklNQUdFX0lOQUNUSVZFEAESFAoQSU1BR0VfQUNUSVZBVElORxACEhAKDElNQUdFX0FDVElWRRADEhMKD0lNQUdFX1JFVkVSVElORxAEEhIKDklNQUdFX1JFVkVSVEVEEAU6BfD2zR0AIj0KDkltYWdlRG93bmxvYWRzEisKBWl0ZW1zGAIgAygLMhUudm9sdGhhLkltYWdlRG93bmxvYWRSBWl0ZW1zIpYFCgRQb3J0EhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIUCgVsYWJlbBgCIAEoCVIFbGFiZWwSKQoEdHlwZRgDIAEoDjIVLnZvbHRoYS5Qb3J0LlBvcnRUeXBlUgR0eXBlEj4KC2FkbWluX3N0YXRlGAUgASgOMh0udm9sdGhhLkFkbWluU3RhdGUuQWRtaW5TdGF0ZVIKYWRtaW5TdGF0ZRI+CgtvcGVyX3N0YXR1cxgGIAEoDjIdLnZvbHRoYS5PcGVyU3RhdHVzLk9wZXJTdGF0dXNSCm9wZXJTdGF0dXMSGwoJZGV2aWNlX2lkGAcgASgJUghkZXZpY2VJZBIrCgVwZWVycxgIIAMoCzIVLnZvbHRoYS5Qb3J0LlBlZXJQb3J0UgVwZWVycxIdCgpyeF9wYWNrZXRzGAkgASgGUglyeFBhY2tldHMSGQoIcnhfYnl0ZXMYCiABKAZSB3J4Qnl0ZXMSGwoJcnhfZXJyb3JzGAsgASgGUghyeEVycm9ycxIdCgp0eF9wYWNrZXRzGAwgASgGUgl0eFBhY2tldHMSGQoIdHhfYnl0ZXMYDSABKAZSB3R4Qnl0ZXMSGwoJdHhfZXJyb3JzGA4gASgGUgh0eEVycm9ycxpACghQZWVyUG9ydBIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEhcKB3BvcnRfbm8YAiABKA1SBnBvcnRObyJzCghQb3J0VHlwZRILCgdVTktOT1dOEAASEAoMRVRIRVJORVRfTk5JEAESEAoMRVRIRVJORVRfVU5JEAISCwoHUE9OX09MVBADEgsKB1BPTl9PTlUQBBINCglWRU5FVF9PTFQQBRINCglWRU5FVF9PTlUQBjoF8PbNHQAiKwoFUG9ydHMSIgoFaXRlbXMYASADKAsyDC52b2x0aGEuUG9ydFIFaXRlbXMi3AwKBkRldmljZRIVCgJpZBgBIAEoCUIF6PbNHQFSAmlkEhkKBHR5cGUYAiABKAlCBej2zR0BUgR0eXBlEhkKBHJvb3QYAyABKAhCBej2zR0BUgRyb290EiIKCXBhcmVudF9pZBgEIAEoCUIF6PbNHQFSCHBhcmVudElkEisKDnBhcmVudF9wb3J0X25vGBQgASgNQgXo9s0dAVIMcGFyZW50UG9ydE5vEh0KBnZlbmRvchgFIAEoCUIF6PbNHQFSBnZlbmRvchIbCgVtb2RlbBgGIAEoCUIF6PbNHQFSBW1vZGVsEjAKEGhhcmR3YXJlX3ZlcnNpb24YByABKAlCBej2zR0BUg9oYXJkd2FyZVZlcnNpb24SMAoQZmlybXdhcmVfdmVyc2lvbhgIIAEoCUIF6PbNHQFSD2Zpcm13YXJlVmVyc2lvbhItCgZpbWFnZXMYCSABKAsyDi52b2x0aGEuSW1hZ2VzQgXo9s0dAVIGaW1hZ2VzEioKDXNlcmlhbF9udW1iZXIYCiABKAlCBej2zR0BUgxzZXJpYWxOdW1iZXISIgoJdmVuZG9yX2lkGBggASgJQgXo9s0dAVIIdmVuZG9ySWQSHwoHYWRhcHRlchgLIAEoCUIF6PbNHQFSB2FkYXB0ZXISEgoEdmxhbhgMIAEoDVIEdmxhbhIfCgttYWNfYWRkcmVzcxgNIAEoCVIKbWFjQWRkcmVzcxIjCgxpcHY0X2FkZHJlc3MYDiABKAlIAFILaXB2NEFkZHJlc3MSIwoMaXB2Nl9hZGRyZXNzGA8gASgJSABSC2lwdjZBZGRyZXNzEiQKDWhvc3RfYW5kX3BvcnQYFSABKAlIAFILaG9zdEFuZFBvcnQSHQoKZXh0cmFfYXJncxgXIAEoCVIJZXh0cmFBcmdzEkAKDXByb3h5X2FkZHJlc3MYEyABKAsyGy52b2x0aGEuRGV2aWNlLlByb3h5QWRkcmVzc1IMcHJveHlBZGRyZXNzEj4KC2FkbWluX3N0YXRlGBAgASgOMh0udm9sdGhhLkFkbWluU3RhdGUuQWRtaW5TdGF0ZVIKYWRtaW5TdGF0ZRJFCgtvcGVyX3N0YXR1cxgRIAEoDjIdLnZvbHRoYS5PcGVyU3RhdHVzLk9wZXJTdGF0dXNCBej2zR0BUgpvcGVyU3RhdHVzEh0KBnJlYXNvbhgWIAEoCUIF6PbNHQFSBnJlYXNvbhJRCg5jb25uZWN0X3N0YXR1cxgSIAEoDjIjLnZvbHRoYS5Db25uZWN0U3RhdHVzLkNvbm5lY3RTdGF0dXNCBej2zR0BUg1jb25uZWN0U3RhdHVzEiwKBmN1c3RvbRhAIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSBmN1c3RvbRIzCgVwb3J0cxiAASADKAsyDC52b2x0aGEuUG9ydEIO4vbNHQkKB3BvcnRfbm9SBXBvcnRzEjAKBWZsb3dzGIEBIAEoCzISLm9wZW5mbG93XzEzLkZsb3dzQgXi9s0dAFIFZmxvd3MSQAoLZmxvd19ncm91cHMYggEgASgLMhcub3BlbmZsb3dfMTMuRmxvd0dyb3Vwc0IF4vbNHQBSCmZsb3dHcm91cHMSOAoKcG1fY29uZmlncxiDASABKAsyES52b2x0aGEuUG1Db25maWdzQgXi9s0dAFIJcG1Db25maWdzEkwKD2ltYWdlX2Rvd25sb2FkcxiFASADKAsyFS52b2x0aGEuSW1hZ2VEb3dubG9hZEIL4vbNHQYKBG5hbWVSDmltYWdlRG93bmxvYWRzGoMCCgxQcm94eUFkZHJlc3MSGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIfCgtkZXZpY2VfdHlwZRgCIAEoCVIKZGV2aWNlVHlwZRIdCgpjaGFubmVsX2lkGAMgASgNUgljaGFubmVsSWQSKAoQY2hhbm5lbF9ncm91cF9pZBgEIAEoDVIOY2hhbm5lbEdyb3VwSWQSLwoTY2hhbm5lbF90ZXJtaW5hdGlvbhgFIAEoCVISY2hhbm5lbFRlcm1pbmF0aW9uEhUKBm9udV9pZBgGIAEoDVIFb251SWQSJAoOb251X3Nlc3Npb25faWQYByAB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KiBjb21iaW5lZCBkYXRlIGFuZCB0aW1lIGV4cHJlc3NlZCBpbiBVVEMuCgoNCgUEBQIDBBIESwRKFAoMCgUEBQIDBRIDSwQKCgwKBQQFAgMBEgNLCxsKDAoFBAUCAwMSA0seHwrtAgoEBAUCBBIDUgQXGpcCIFRoZSBhY3RpdmUgc29mdHdhcmUgaW1hZ2UgaXMgb25lIHRoYXQgaXMgY3VycmVudGx5IGxvYWRlZCBhbmQgZXhlY3V0aW5nCiBpbiB0aGUgT05VIG9yIGNpcmN1aXQgcGFjay4gVW5kZXIgbm9ybWFsIG9wZXJhdGlvbiwgb25lIHNvZnR3YXJlIGltYWdlCiBpcyBhbHdheXMgYWN0aXZlIHdoaWxlIHRoZSBvdGhlciBpcyBpbmFjdGl2ZS4gVW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyBhcmUKIGJvdGggc29mdHdhcmUgaW1hZ2VzIGFsbG93ZWQgdG8gYmUgYWN0aXZlIGF0IHRoZSBzYW1lIHRpbWUKIh0gVHJ1ZSBpZiB0aGUgaW1hZ2UgaXMgYWN0aXZlCjInIHVzZSBJU08gODYwMSBmb3JtYXQgZm9yIGRhdGUgYW5kIHRpbWUKCg0KBQQFAgQEEgRSBEsgCgwKBQQFAgQFEgNSBAgKDAoFBAUCBAESA1IJEgoMCgUEBQIEAxIDUhUWCvQBCgQEBQIFEgNXBBoaxAEgVGhlIGNvbW1pdHRlZCBzb2Z0d2FyZSBpbWFnZSBpcyBsb2FkZWQgYW5kIGV4ZWN1dGVkIHVwb24gcmVib290IG9mIHRoZQogT05VIGFuZC9vciBjaXJjdWl0IHBhY2suIER1cmluZyBub3JtYWwgb3BlcmF0aW9uLCBvbmUgc29mdHdhcmUgaW1hZ2UgaXMKIGFsd2F5cyBjb21taXR0ZWQsIHdoaWxlIHRoZSBvdGhlciBpcyB1bmNvbW1pdHRlZC4KIiAgVHJ1ZSBpZiB0aGUgaW1hZ2UgaXMgY29tbWl0dGVkCgoNCgUEBQIFBBIEVwRSFwoMCgUEBQIFBRIDVwQICgwKBQQFAgUBEgNXCRUKDAoFBAUCBQMSA1cYGQqhAgoEBAUCBhIDXQQWGvUBIEEgc29mdHdhcmUgaW1hZ2UgaXMgdmFsaWQgaWYgaXQgaGFzIGJlZW4gdmVyaWZpZWQgdG8g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b29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvIkUKD0NvbmZpZ0V2ZW50VHlwZSIyCg9Db25maWdFdmVudFR5cGUSBwoDYWRkEAASCgoGcmVtb3ZlEAESCgoGdXBkYXRlEAIicgoLQ29uZmlnRXZlbnQSOwoEdHlwZRgBIAEoDjInLnZvbHRoYS5Db25maWdFdmVudFR5cGUuQ29uZmlnRXZlbnRUeXBlUgR0eXBlEhIKBGhhc2gYAiABKAlSBGhhc2gSEgoEZGF0YRgDIAEoCVIEZGF0YSIxCgxLcGlFdmVudFR5cGUiIQoMS3BpRXZlbnRUeXBlEgkKBXNsaWNlEAASBgoCdHMQASKXAgoOTWV0cmljTWV0YURhdGESFAoFdGl0bGUYASABKAlSBXRpdGxlEg4KAnRzGAIgASgBUgJ0cxIqChFsb2dpY2FsX2RldmljZV9pZBgDIAEoCVIPbG9naWNhbERldmljZUlkEhsKCXNlcmlhbF9ubxgEIAEoCVIIc2VyaWFsTm8SGwoJZGV2aWNlX2lkGAUgASgJUghkZXZpY2VJZBI9Cgdjb250ZXh0GAYgAygLMiMudm9sdGhhLk1ldHJpY01ldGFEYXRhLkNvbnRleHRFbnRyeVIHY29udGV4dBo6CgxDb250ZXh0RW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4ASKPAQoQTWV0cmljVmFsdWVQYWlycxI/CgdtZXRyaWNzGAEgAygLMiUudm9sdGhhLk1ldHJpY1ZhbHVlUGFpcnMuTWV0cmljc0VudHJ5UgdtZXRyaWNzGjoKDE1ldHJpY3NFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBIsUBChFNZXRyaWNJbmZvcm1hdGlvbhIyCghtZXRhZGF0YRgBIAEoCzIWLnZvbHRoYS5NZXRyaWNNZXRhRGF0YVIIbWV0YWRhdGESQAoHbWV0cmljcxgCIAMoCzImLnZvbHRoYS5NZXRyaWNJbmZvcm1hdGlvbi5NZXRyaWNzRW50cnlSB21ldHJpY3MaOgoMTWV0cmljc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgCUgV2YWx1ZToCOAEi5AEKCEtwaUV2ZW50EjUKBHR5cGUYASABKA4yIS52b2x0aGEuS3BpRXZlbnRUeXBlLktwaUV2ZW50VHlwZVIEdHlwZRIOCgJ0cxgCIAEoAlICdHMSOgoIcHJlZml4ZXMYAyADKAsyHi52b2x0aGEuS3BpRXZlbnQuUHJlZml4ZXNFbnRyeVIIcHJlZml4ZXMaVQoNUHJlZml4ZXNFbnRyeRIQCgNrZXkYASABKAlSA2tleRIuCgV2YWx1ZRgCIAEoCzIYLnZvbHRoYS5NZXRyaWNWYWx1ZVBhaXJzUgV2YWx1ZToCOAEijAEKCUtwaUV2ZW50MhI1CgR0eXBlGAEgASgOMiEudm9sdGhhLktwaUV2ZW50VHlwZS5LcGlFdmVudFR5cGVSBHR5cGUSDgoCdHMYAiABKAFSAnRzEjgKCnNsaWNlX2RhdGEYAyADKAsyGS52b2x0aGEuTWV0cmljSW5mb3JtYXRpb25SCXNsaWNlRGF0YSKAAQoOQWxhcm1FdmVudFR5cGUibgoOQWxhcm1FdmVudFR5cGUSEQoNQ09NTVVOSUNBVElPThAAEg8KC0VOVklST05NRU5UEAESDQoJRVFVSVBNRU5UEAISCwoHU0VSVklDRRADEg4KClBST0NFU1NJTkcQBBIMCghTRUNVUklUWRAFIlcKEkFsYXJtRXZlbnRDYXRlZ29yeSJBChJBbGFybUV2ZW50Q2F0ZWdvcnkSBwoDUE9OEAASBwoDT0xUEAESBwoDT05UEAISBwoDT05VEAMSBwoDTk5JEAQiPQoPQWxhcm1FdmVudFN0YXRlIioKD0FsYXJtRXZlbnRTdGF0ZRIKCgZSQUlTRUQQABILCgdDTEVBUkVEEAEibgoSQWxhcm1FdmVudFNldmVyaXR5IlgKEkFsYXJtRXZlbnRTZXZlcml0eRIRCg1JTkRFVEVSTUlOQVRFEAASCwoHV0FSTklORxABEgkKBU1JTk9SEAISCQoFTUFKT1IQAxIMCghDUklUSUNBTBAEIpcFCgpBbGFybUV2ZW50Eg4KAmlkGAEgASgJUgJpZBI5CgR0eXBlGAIgASgOMiUudm9sdGhhLkFsYXJtRXZlbnRUeXBlLkFsYXJtRXZlbnRUeXBlUgR0eXBlEkkKCGNhdGVnb3J5GAMgASgOMi0udm9sdGhhLkFsYXJtRXZlbnRDYXRlZ29yeS5BbGFybUV2ZW50Q2F0ZWdvcnlSCGNhdGVnb3J5Ej0KBXN0YXRlGAQgASgOMicudm9sdGhhLkFsYXJtRXZlbnRTdGF0ZS5BbGFybUV2ZW50U3RhdGVSBXN0YXRlEkkKCHNldmVyaXR5GAUgASgOMi0udm9sdGhhLkFsYXJtRXZlbnRTZXZlcml0eS5BbGFybUV2ZW50U2V2ZXJpdHlSCHNldmVyaXR5EhsKCXJhaXNlZF90cxgGIAEoAlIIcmFpc2VkVHMSHwoLcmVwb3J0ZWRfdHMYByABKAJSCnJlcG9ydGVkVHMSHQoKY2hhbmdlZF90cxgIIAEoAlIJY2hhbmdlZFRzEh8KC3Jlc291cmNlX2lkGAkgASgJUgpyZXNvdXJjZUlkEiAKC2Rlc2NyaXB0aW9uGAogASgJUgtkZXNjcmlwdGlvbhI5Cgdjb250ZXh0GAsgAygLMh8udm9sdGhhLkFsYXJtRXZlbnQuQ29udGV4dEVudHJ5Ugdjb250ZXh0EioKEWxvZ2ljYWxfZGV2aWNlX2lkGAwgASgJUg9sb2dpY2FsRGV2aWNlSWQSJgoPYWxhcm1fdHlwZV9uYW1lGA0gASgJUg1hbGFybVR5cGVOYW1lGjoKDENvbnRleHRFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6AjgBQi1aK2dpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy9nby92b2x0aGFKqjIKBxIFAADCAQEKCAoBDBIDAAASCggKAQgSAwIAQgoJCgIICxIDAgBCCggKAQISAwQADwoJCgIDABIDBgAiCgkKAgMBEgMHACYKCgoCBAASBAkADwEKCgoDBAABEgMJCBcKDAoEBAAEABIECgQOBQoMCgUEAAQAARIDCgkYCiwKBgQABAACABIDCwgQIh0gQSBuZXcgY29uZmlnIGhhcyBiZWVuIGFkZGVkCgoOCgcEAAQAAgABEgMLCAsKDgoHBAAEAAIAAhIDCw4PCioKBgQABAACARIDDAgTIhsgQSBjb25maWcgaGFzIGJlZW4gcmVtb3ZlZAoKDgoHBAAEAAIBARIDDAgOCg4KBwQABAACAQISAwwREgoqCgYEAAQAAgISAw0IEyIbIEEgY29uZmlnIGhhcyBiZWVuIHVwZGF0ZWQK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blR5cGVzSv4QCgYSBB4AMxAKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiADsKCQoCCCUSAyIAOwoICgEIEgMjAD4KCQoCCAsSAyMAPgoICgEIEgMkACwKCQoCCAESAyQALAoICgEIEgMlACsKCQoCCAgSAyUAKwoICgEIEgMmACIKCQoCCAoSAyYAIgoICgEIEgMnACEKCQoCCCQSAycAIQoICgEIEgMoAB8KCQoCCB8SAygAHwr7AgoCBAASAzMAEBrvAiBBIGdlbmVyaWMgZW1wdHkgbWVzc2FnZSB0aGF0IHlvdSBjYW4gcmUtdXNlIHRvIGF2b2lkIGRlZmluaW5nIGR1cGxpY2F0ZWQKIGVtcHR5IG1lc3NhZ2VzIGluIHlvdXIgQVBJcy4gQSB0eXBpY2FsIGV4YW1wbGUgaXMgdG8gdXNlIGl0IGFzIHRoZSByZXF1ZXN0CiBvciB0aGUgcmVzcG9uc2UgdHlwZSBvZiBhbiBBUEkgbWV0aG9kLiBGb3IgaW5zdGFuY2U6CgogICAgIHNlcnZpY2UgRm9vIHsKICAgICAgIHJwYyBCYXIoZ29vZ2xlLnByb3RvYnVmLkVtcHR5KSByZXR1cm5zIChnb29nbGUucHJvdG9idWYuRW1wdHkpOwogICAgIH0KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYEVtcHR5YCBpcyBlbXB0eSBKU09OIG9iamVjdCBge31gLgoKCgoDBAABEgMzCA1iBnByb3RvMwrRCQoadm9sdGhhX3Byb3Rvcy9oZWFsdGgucHJvdG8SBnZvbHRoYRocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90bxobZ29vZ2xlL3Byb3RvYnVmL2VtcHR5LnByb3RvGhh2b2x0aGFfcHJvdG9zL21ldGEucHJvdG8ihAEKDEhlYWx0aFN0YXR1cxI9CgVzdGF0ZRgBIAEoDjIgLnZvbHRoYS5IZWFsdGhTdGF0dXMuSGVhbHRoU3RhdGVCBej2zR0BUgVzdGF0ZSI1CgtIZWFsdGhTdGF0ZRILCgdIRUFMVEhZEAASDgoKT1ZFUkxPQURFRBABEgkKBURZSU5HEAIyYQoNSGVhbHRoU2VydmljZRJQCg9HZXRIZWFsdGhTdGF0dXMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaFC52b2x0aGEuSGVhbHRoU3RhdHVzIg+C0+STAgkSBy9oZWFsdGhCLVorZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL2dvL3ZvbHRoYUq0BgoGEgQAACIBCggKAQwSAwAAEgoICgEIEgMCAEIKCQoCCAsSAwIAQgoICgECEgMEAA8KCQoCAwASAwYAJgoJCgIDARIDBwAlCgkKAgMCEgMIACIKNwoCBAASBAsAFgEaKyBFbmNvZGUgaGVhbHRoIHN0YXR1cyBvZiBhIFZvbHRoYSBpbnN0YW5jZQoKCgoDBAABEgMLCBQKHQoEBAAEABIEDgQSBRoPIEhlYWx0aCBzdGF0ZXMKCgwKBQQABAABEgMOCRQKKAoGBAAEAAIAEgMPCBQiGSBUaGUgaW5zdGFuY2UgaXMgaGVhbHRoeQoKDgoHBAAEAAIAARIDDwgPCg4KBwQABAACAAISAw8SEwpACgYEAAQAAgESAxAIFyIxIFRoZSBpbnN0YW5jZSBpcyBvdmVybG9hZGVkLCBkZWNyZWFzZSBxdWVyeSByYXRlCgoOCgcEAAQAAgEBEgMQCBIKDgoHBAAEAAIBAhIDEBUWCkcKBgQABAACAhIDEQgSIjggVGhlIGluc3RhbmNlIGlzIGluIGEgY3JpdGljYWwgY29uZGl0aW9uLCBkbyBub3QgdXNlIGl0CgoOCgcEAAQAAgIBEgMRCA0KDgoHBAAEAAICAhIDERARCj4KBAQAAgASAxUEMRoxIEN1cnJlbnQgc3RhdGUgb2YgaGVhbHRoIG9mIHRoaXMgVm9sdGhhIGluc3RhbmNlCgoNCgUEAAIABBIEFQQSBQoMCgUEAAIABhIDFQQPCgwKBQQAAgABEgMVEBUKDAoFBAACAAMSAxUYGQoMCgUEAAIACBIDFRowChAKCQQAAgAI7d7ZAxIDFRsvCiUKAgYAEgQZACIBGhkgSGVhbHRoIHJlbGF0ZWQgc2VydmljZXMKCgoKAwYAARIDGQgVCkEKBAYAAgASBBwEIAUaMyBSZXR1cm4gY3VycmVudCBoZWFsdGggc3RhdHVzIG9mIGEgVm9sdGhhIGluc3RhbmNlCgoMCgUGAAIAARIDHAgXCgwKBQYAAgACEgMcGC0KDAoFBgACAAMSAxw4RAoNCgUGAAIABBIEHQgfCgoRCgkGAAIABLDKvCISBB0IHwpiBnByb3RvMwrMGAojdm9sdGhhX3Byb3Rvcy9pZXRmX2ludGVyZmFjZXMucHJvdG8SD2lldGZfaW50ZXJmYWNlcyJPCgpJbnRlcmZhY2VzEkEKDmFsbF9pbnRlcmZhY2VzGAEgAygLMhouaWV0Zl9pbnRlcmZhY2VzLkludGVyZmFjZVINYWxsSW50ZXJmYWNlcyKdAgoJSW50ZXJmYWNlEhIKBG5hbWUYASABKAlSBG5hbWUSIAoLZGVzY3JpcHRpb24YAiABKAlSC2Rlc2NyaXB0aW9uEhIKBHR5cGUYAyABKAlSBHR5cGUSGAoHZW5hYmxlZBgEIAEoCFIHZW5hYmxlZBJrChhsaW5rX3VwX2Rvd25fdHJhcF9lbmFibGUYBSABKA4yMy5pZXRmX2ludGVyZmFjZXMuSW50ZXJmYWNlLkxpbmtVcERvd25UcmFwRW5hYmxlVHlwZVIUbGlua1VwRG93blRyYXBFbmFibGUiPwoYTGlua1VwRG93blRyYXBFbmFibGVUeXBlEhEKDVRSQVBfRElTQUJMRUQQABIQCgxUUkFQX0VOQUJMRUQQASJXCg9JbnRlcmZhY2VzU3RhdGUSRAoNYWxsX2ludGVyZmFjcxgBIAMoCzIfLmlldGZfaW50ZXJmYWNlcy5JbnRlcmZhY2VTdGF0ZVIMYWxsSW50ZXJmYWNzItYECg5JbnRlcmZhY2VTdGF0ZRISCgRuYW1lGAEgASgJUgRuYW1lEhIKBHR5cGUYAiABKAlSBHR5cGUSUgoMYWRtaW5fc3RhdHVzGAMgASgOMi8uaWV0Zl9pbnRlcmZhY2VzLkludGVyZmFjZVN0YXRlLkFkbWluU3RhdHVzVHlwZVILYWRtaW5TdGF0dXMSTwoLb3Blcl9zdGF0dXMYBCABKA4yLi5pZXRmX2ludGVyZmFjZXMuSW50ZXJmYWNlU3RhdGUuT3BlclN0YXR1c1R5cGVSCm9wZXJTdGF0dXMSHwoLbGFzdF9jaGFuZ2UYBSABKAlSCmxhc3RDaGFuZ2USGQoIaWZfaW5kZXgYBiABKAVSB2lmSW5kZXgSIQoMcGh5c19hZGRyZXNzGAcgASgJUgtwaHlzQWRkcmVzcxImCg9oaWdoZXJfbGF5ZXJfaWYYCCADKAlSDWhpZ2hlckxheWVySWYSJAoObG93ZXJfbGF5ZXJfaWYYCSADKAlSDGxvd2VyTGF5ZXJJZhIUCgVzcGVlZBgKIAEoBFIFc3BlZWQiQgoPQWRtaW5TdGF0dXNUeXBlEg4KCkFETUlOX0RPV04QABIRCg1BRE1JTl9URVNUSU5HEAESDAoIQURNSU5fVVAQAiJwCg5PcGVyU3RhdHVzVHlwZRILCgdET1JNQU5UEAASFAoQTE9XRVJfTEFZRVJfRE9XThABEgsKB1VOS05PV04QAhILCgdURVNUSU5HEAMSBgoCVVAQBBIICgRET1dOEAUSDwoLTk9UX1BSRVNFTlQQBkIrWilnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvZ28vaWV0Zkq7DwoGEgQAADQBCggKAQwSAwAAEgoICgEIEgMCAEAKCQoCCAsSAwIAQAoICgECEgMEABgKCgoCBAASBAYACAEKCgoDBAABEgMGCBIKCwoEBAACABIDBwQqCgwKBQQAAgAEEgMHBAwKDAoFBAACAAYSAwcNFgoMCgUEAAIAARIDBxclCgwKBQQAAgADEgMHKCkKCgoCBAESBAkAFAEKCgoDBAEBEgMJCBEKCwoEBAECABIDCgQVCg0KBQQBAgAEEgQKBAkTCgwKBQQBAgAFEgMKBAoKDAoFBAECAAESAwoLDwoMCgUEAQIAAxIDChITCgsKBAQBAgESAwsEHAoNCgUEAQIBBBIECwQKFQoMCgUEAQIBBRIDCwQKCgwKBQQBAgEBEgMLCxYKDAoFBAECAQMSAwsZGgoLCgQEAQICEgMMBBUKDQoFBAECAgQSBAwECxwKDAoFBAECAgUSAwwECgoMCgUEAQICARIDDAsPCgwKBQQBAgIDEgMMEhMKCwoEBAECAxIDDQQVCg0KBQQBAgMEEgQNBAwVCgwKBQQBAgMFEgMNBAgKDAoFBAECAwESAw0JEAoMCgUEAQIDAxIDDRMUCgwKBAQBBAASBA4EEgUKDAoFBAEEAAESAw4JIQoNCgYEAQQAAgASAxAIGwoOCgcEAQQAAgABEgMQCBUKDgoHBAEEAAIAAhIDEBgZCg0KBgQBBAACARIDEQgaCg4KBwQBBAACAQESAxEIFAoOCgcEAQQAAgECEgMRFxgKCwoEBAECBBIDEwQ6Cg0KBQQBAgQEEgQTBBIFCgwKBQQBAgQGEgMTBBwKDAoFBAECBAESAxMdNQoMCgUEAQIEAxIDEzg5CgoKAgQCEgQWABgBCgoKAwQCARIDFggXCgsKBAQCAgASAxcELgoMCgUEAgIABBIDFwQMCgwKBQQCAgAGEgMXDRsKDAoFBAICAAESAxccKQoMCgUEAgIAAxIDFywtCgoKAgQDEgQZADQBCgoKAwQDARIDGQgWCgsKBAQDAgASAxoEFQoNCgUEAwIABBIEGgQZGAoMCgUEAwIABRIDGgQKCgwKBQQDAgABEgMaCw8KDAoFBAMCAAMSAxoSEwoLCgQEAwIBEgMbBBUKDQoFBAMCAQQSBBsEGhUKDAoFBAMCAQUSAxsECgoMCgUEAwIBARIDGwsPCgwKBQQDAgEDEgMbEhMKDAoEBAMEABIEHAQhBQoMCgUEAwQAARIDHAkYCg0KBgQDBAACABIDHggYCg4KBwQDBAACAAESAx4IEgoOCgcEAwQAAgACEgMeFRYKDQoGBAMEAAIBEgMfCBsKDgoHBAMEAAIBARIDHwgVCg4KBwQDBAACAQISAx8YGQoNCgYEAwQAAgISAyAIFgoOCgcEAwQAAgIBEgMgCBAKDgoHBAMEAAICAhIDIBMUCgsKBAQDAgISAyIEJQoNCgUEAwICBBIEIgQhBQoMCgUEAwICBhIDIgQTCgwKBQQDAgIBEgMiFCAKDAoFBAMCAgMSAyIjJAoMCgQEAwQBEgQjBCwFCgwKBQQDBAEBEgMjCRcKDQoGBAMEAQIAEgMlCBUKDgoHBAMEAQIAARIDJQgPCg4KBwQDBAECAAISAyUSEwoNCgYEAwQBAgESAyYIHgoOCgcEAwQBAgEBEgMmCBgKDgoHBAMEAQIBAhIDJhscCg0KBgQDBAECAhIDJwgVCg4KBwQDBAECAgESAycIDwoOCgcEAwQBAgICEgMnEhMKDQoGBAMEAQIDEgMoCBUKDgoHBAMEAQIDARIDKAgPCg4KBwQDBAECAwISAygSEwoNCgYEAwQBAgQSAykIEAoOCgcEAwQBAgQBEgMpCAoKDgoHBAMEAQIEAhIDKQ0OCg0KBgQDBAECBRIDKggSCg4KBwQDBAECBQESAyoIDAoOCgcEAwQBAgUCEgMqDxAKDQoGBAMEAQIGEgMrCBkKDgoHBAMEAQIGARIDKwgTCg4KBwQDBAECBgISAysWFwoLCgQEAwIDEgMtBCMKDQoFBAMCAwQSBC0ELAUKDAoFBAMCAwYSAy0EEgoMCgUEAwIDARIDLRMeCgwKBQQDAgMDEgMtISIKCwoEBAMCBBIDLgQcCg0KBQQDAgQEEgQuBC0jCgwKBQQDAgQFEgMuBAoKDAoFBAMCBAESAy4LFgoMCgUEAwIEAxIDLhkaCgsKBAQDAgUSAy8EGAoNCgUEAwIFBBIELwQuHAoMCgUEAwIFBRIDLwQJCgwKBQQDAgUBEgMvChIKDAoFBAMCBQMSAy8VFgoLCgQEAwIGEgMwBB0KDQoFBAMCBgQSBDAELxgKDAoFBAMCBgUSAzAECgoMCgUEAwIGARIDMAsXCgwKBQQDAgYDEgMwGhsKCwoEBAMCBxIDMQQpCgwKBQQDAgcEEgMxBAwKDAoFBAMCBwUSAzENEwoMCgUEAwIHARIDMRQjCgwKBQQDAgcDEgMxJicKCwoEBAMCCBIDMgQoCgwKBQQDAggEEgMyBAwKDAoFBAMCCAUSAzINEwoMCgUEAwIIARIDMhQiCgwKBQQDAggDEgMyJSYKCwoEBAMCCRIDMwQXCg0KBQQDAgkEEgQzBDIoCgwKBQQDAgkFEgMzBAoKDAoFBAMCCQESAzMLEAoMCgUEAwIJAxIDMxMVYgZwcm90bzMKhBcKInZvbHRoYV9wcm90b3MvbG9naWNhbF9kZXZpY2UucHJvdG8SBnZvbHRoYRocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90bxoYdm9sdGhhX3Byb3Rvcy9tZXRhLnByb3RvGh92b2x0aGFfcHJvdG9zL29wZW5mbG93XzEzLnByb3RvIjgKDUxvZ2ljYWxQb3J0SWQSDgoCaWQYASABKAlSAmlkEhcKB3BvcnRfaWQYAiABKAlSBnBvcnRJZCLyAQoLTG9naWNhbFBvcnQSDgoCaWQYASABKAlSAmlkEjAKCG9mcF9wb3J0GAIgASgLMhUub3BlbmZsb3dfMTMub2ZwX3BvcnRSB29mcFBvcnQSGwoJZGV2aWNlX2lkGAMgASgJUghkZXZpY2VJZBIkCg5kZXZpY2VfcG9ydF9ubxgEIAEoDVIMZGV2aWNlUG9ydE5vEhsKCXJvb3RfcG9ydBgFIAEoCFIIcm9vdFBvcnQSQQoOb2ZwX3BvcnRfc3RhdHMYBiABKAsyGy5vcGVuZmxvd18xMy5vZnBfcG9ydF9zdGF0c1IMb2ZwUG9ydFN0YXRzIjkKDExvZ2ljYWxQb3J0cxIpCgVpdGVtcxgBIAMoCzITLnZvbHRoYS5Mb2dpY2FsUG9ydFIFaXRlbXMihwMKDUxvZ2ljYWxEZXZpY2USDgoCaWQYASABKAlSAmlkEh8KC2RhdGFwYXRoX2lkGAIgASgEUgpkYXRhcGF0aElkEikKBGRlc2MYAyABKAsyFS5vcGVuZmxvd18xMy5vZnBfZGVzY1IEZGVzYxJJCg9zd2l0Y2hfZmVhdHVyZXMYBCABKAsyIC5vcGVuZmxvd18xMy5vZnBfc3dpdGNoX2ZlYXR1cmVzUg5zd2l0Y2hGZWF0dXJlcxIkCg5yb290X2RldmljZV9pZBgFIAEoCVIMcm9vdERldmljZUlkEjUKBXBvcnRzGIABIAMoCzITLnZvbHRoYS5Mb2dpY2FsUG9ydEIJ4vbNHQQKAmlkUgVwb3J0cxIwCgVmbG93cxiBASABKAsyEi5vcGVuZmxvd18xMy5GbG93c0IF4vbNHQBSBWZsb3dzEkAKC2Zsb3dfZ3JvdXBzGIIBIAEoCzIXLm9wZW5mbG93XzEzLkZsb3dHcm91cHNCBeL2zR0AUgpmbG93R3JvdXBzIj0KDkxvZ2ljYWxEZXZpY2VzEisKBWl0ZW1zGAEgAygLMhUudm9sdGhhLkxvZ2ljYWxEZXZpY2VSBWl0ZW1zQi1aK2dpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy9nby92b2x0aGFKkg8KBhIEAAA9AQoICgEMEgMAABIKCAoBCBIDAgBCCgkKAggLEgMCAEIKCAoBAhIDBAAPCgkKAgMAEgMGACYKCQoCAwESAwcAIgoJCgIDAhIDCAApCgoKAgQAEgQKABABCgoKAwQAARIDCggVCioKBAQAAgASAwwEEhodIHVuaXF1ZSBpZCBvZiBsb2dpY2FsIGRldmljZQoKDQoFBAACAAQSBAwEChcKDAoFBAACAAUSAwwECgoMCgUEAAIAARIDDAsNCgwKBQQAAgADEgMMEBEKMwoEBAACARIDDwQXGiYgaWQgb2YgdGhlIHBvcnQgb24gdGhlIGxvZ2ljYWwgZGV2aWNlCgoNCgUEAAIBBBIEDwQMEgoMCgUEAAIBBRIDDwQKCgwKBQQAAgEBEgMPCxIKDAoFBAACAQMSAw8VFgoKCgIEARIEEgAZAQoKCgMEAQESAxIIEwoLCgQEAQIAEgMTBBIKDQoFBAECAAQSBBMEEhUKDAoFBAECAAUSAxMECgoMCgUEAQIAARIDEwsNCgwKBQQBAgADEgMTEBEKCwoEBAECARIDFAQmCg0KBQQBAgEEEgQUBBMSCgwKBQQBAgEGEgMUBBgKDAoFBAECAQESAxQZIQoMCgUEAQIBAxIDFCQlCgsKBAQBAgISAxUEGQoNCgUEAQICBBIEFQQUJgoMCgUEAQICBRIDFQQKCgwKBQQBAgIBEgMVCxQKDAoFBAECAgMSAxUXGAoLCgQEAQIDEgMWBB4KDQoFBAECAwQSBBYEFRkKDAoFBAECAwUSAxYECgoMCgUEAQIDARIDFgsZCgwKBQQBAgMDEgMWHB0KCwoEBAECBBIDFwQXCg0KBQQBAgQEEgQXBBYeCgwKBQQBAgQFEgMXBAgKDAoFBAECBAESAxcJEgoMCgUEAQIEAxIDFxUWCgsKBAQBAgUSAxgEMgoNCgUEAQIFBBIEGAQXFwoMCgUEAQIFBhIDGAQeCgwKBQQBAgUBEgMYHy0KDAoFBAECBQMSAxgwMQoKCgIEAhIEGwAdAQoKCgMEAgESAxsIFAoLCgQEAgIAEgMcBCMKDAoFBAICAAQSAxwEDAoMCgUEAgIABhIDHA0YCgwKBQQCAgABEgMcGR4KDAoFBAICAAMSAxwhIgoKCgIEAxIEHwA5AQoKCgMEAwESAx8IFQoqCgQEAwIAEgMiBBIaHSB1bmlxdWUgaWQgb2YgbG9naWNhbCBkZXZpY2UKCg0KBQQDAgAEEgQiBB8XCgwKBQQDAgAFEgMiBAoKDAoFBAMCAAESAyILDQoMCgUEAwIAAxIDIhARClUKBAQDAgESAyUEGxpIIHVuaXF1ZSBkYXRhcGF0aCBpZCBmb3IgdGhlIGxvZ2ljYWwgZGV2aWNlICh1c2VkIGJ5IHRoZSBTRE4gY29udHJvbGxlcikKCg0KBQQDAgEEEgQlBCISCgwKBQQDAgEFEgMlBAoKDAoFBAMCAQESAyULFgoMCgUEAwIBAxIDJRkaCiEKBAQDAgISAygEIhoUIGRldmljZSBkZXNjcmlwdGlvbgoKDQoFBAMCAgQSBCgEJRsKDAoFBAMCAgYSAygEGAoMCgUEAwICARIDKBkdCgwKBQQDAgIDEgMoICEKHgoEBAMCAxIDKwQ4GhEgZGV2aWNlIGZlYXR1cmVzCgoNCgUEAwIDBBIEKwQoIgoMCgUEAwIDBhIDKwQjCgwKBQQDAgMBEgMrJDMKDAoFBAMCAwMSAys2Nwo/CgQEAwIEEgMuBB4aMiBuYW1lIG9mIHRoZSByb290IGRldmljZSBhbmNob3JpbmcgbG9naWNhbCBkZXZpY2UKCg0KBQQDAgQEEgQuBCs4CgwKBQQDAgQFEgMuBAoKDAoFBAMCBAESAy4LGQoMCgUEAwIEAxIDLhwdCiMKBAQDAgUSAzEEQhoWIGxvZ2ljYWwgZGV2aWNlIHBvcnRzCgoMCgUEAwIFBBIDMQQMCgwKBQQDAgUGEgMxDRgKDAoFBAMCBQESAzEZHgoMCgUEAwIFAxIDMSEkCgwKBQQDAgUIEgMxJUEKEAoJBAMCBQjs3tkDEgMxJkAKNQoEBAMCBhIDNAQ2GiggZmxvd3MgY29uZmlndXJlZCBvbiB0aGUgbG9naWNhbCBkZXZpY2UKCg0KBQQDAgYEEgQ0BDFCCgwKBQQDAgYGEgM0BBUKDAoFBAMCBgESAzQWGwoMCgUEAwIGAxIDNB4hCgwKBQQDAgYIEgM0IjUKEAoJBAMCBgjs3tkDEgM0IzQKOwoEBAMCBxIDNwRBGi4gZmxvdyBncm91cHMgY29uZmlndXJlZCBvbiB0aGUgbG9naWNhbCBkZXZpY2UKCg0KBQQDAgcEEgQ3BDQ2CgwKBQQDAgcGEgM3BBoKDAoFBAMCBwESAzcbJgoMCgUEAwIHAxIDNyksCgwKBQQDAgcIEgM3LUAKEAoJBAMCBwjs3tkDEgM3Lj8KCgoCBAQSBDsAPQEKCgoDBAQBEgM7CBYKCwoEBAQCABIDPAQlCgwKBQQEAgAEEgM8BAwKDAoFBAQCAAYSAzwNGgoMCgUEBAIAARIDPBsgCgwKBQQEAgADEgM8IyRiBnByb3RvMwqAMwojdm9sdGhhX3Byb3Rvcy9pbnRlcl9jb250YWluZXIucHJvdG8SBnZvbHRoYRoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90bxofdm9sdGhhX3Byb3Rvcy9vcGVuZmxvd18xMy5wcm90bxoidm9sdGhhX3Byb3Rvcy9sb2dpY2FsX2RldmljZS5wcm90byIbCgdTdHJUeXBlEhAKA3ZhbBgBIAEoCVIDdmFsIhsKB0ludFR5cGUSEAoDdmFsGAEgASgDUgN2YWwiHAoIQm9vbFR5cGUSEAoDdmFsGAEgASgIUgN2YWwiIgoGUGFja2V0EhgKB3BheWxvYWQYASABKAxSB3BheWxvYWQiRQoJRXJyb3JDb2RlIjgKBWNvZGVzEhcKE1VOU1VQUE9SVEVEX1JFUVVFU1QQABIWChJJTlZBTElEX1BBUkFNRVRFUlMQASJGCgVFcnJvchIlCgRjb2RlGAEgASgLMhEudm9sdGhhLkVycm9yQ29kZVIEY29kZRIWCgZyZWFzb24YAiABKAlSBnJlYXNvbiK2AQoGSGVhZGVyEg4KAmlkGAEgASgJUgJpZBInCgR0eXBlGAIgASgOMhMudm9sdGhhLk1lc3NhZ2VUeXBlUgR0eXBlEh0KCmZyb21fdG9waWMYAyABKAlSCWZyb21Ub3BpYxIZCgh0b190b3BpYxgEIAEoCVIHdG9Ub3BpYxIbCglrZXlfdG9waWMYBSABKAlSCGtleVRvcGljEhwKCXRpbWVzdGFtcBgGIAEoA1IJdGltZXN0YW1wIkgKCEFyZ3VtZW50EhAKA2tleRgBIAEoCVIDa2V5EioKBXZhbHVlGAIgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIFdmFsdWUiaQoVSW50ZXJDb250YWluZXJNZXNzYWdlEiYKBmhlYWRlchgBIAEoCzIOLnZvbHRoYS5IZWFkZXJSBmhlYWRlchIoCgRib2R5GAIgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIEYm9keSKmAQoZSW50ZXJDb250YWluZXJSZXF1ZXN0Qm9keRIQCgNycGMYAiABKAlSA3JwYxIkCgRhcmdzGAMgAygLMhAudm9sdGhhLkFyZ3VtZW50UgRhcmdzEisKEXJlc3BvbnNlX3JlcXVpcmVkGAQgASgIUhByZXNwb25zZVJlcXVpcmVkEiQKDnJlcGx5X3RvX3RvcGljGAUgASgJUgxyZXBseVRvVG9waWMiZAoaSW50ZXJDb250YWluZXJSZXNwb25zZUJvZHkSGAoHc3VjY2VzcxgBIAEoCFIHc3VjY2VzcxIsCgZyZXN1bHQYAyABKAsyFC5nb29nbGUucHJvdG9idWYuQW55UgZyZXN1bHQiiAEKEFN3aXRjaENhcGFiaWxpdHkSKQoEZGVzYxgBIAEoCzIVLm9wZW5mbG93XzEzLm9mcF9kZXNjUgRkZXNjEkkKD3N3aXRjaF9mZWF0dXJlcxgCIAEoCzIgLm9wZW5mbG93XzEzLm9mcF9zd2l0Y2hfZmVhdHVyZXNSDnN3aXRjaEZlYXR1cmVzIjkKDlBvcnRDYXBhYmlsaXR5EicKBHBvcnQYASABKAsyEy52b2x0aGEuTG9naWNhbFBvcnRSBHBvcnQifgoQRGV2aWNlRGlzY292ZXJlZBIOCgJpZBgBIAEoCVICaWQSGwoJcGFyZW50X2lkGAIgASgJUghwYXJlbnRJZBIfCgtkZXZpY2VfdHlwZRgDIAEoCVIKZGV2aWNlVHlwZRIcCglwdWJsaXNoZXIYBCABKAlSCXB1Ymxpc2hlciLDAQoXSW50ZXJBZGFwdGVyTWVzc2FnZVR5cGUipwEKBVR5cGVzEhAKDEZMT1dfUkVRVUVTVBAAEhEKDUZMT1dfUkVTUE9OU0UQARIQCgxPTUNJX1JFUVVFU1QQAhIRCg1PTUNJX1JFU1BPTlNFEAMSEwoPTUVUUklDU19SRVFVRVNUEAQSFAoQTUVUUklDU19SRVNQT05TRRAFEhMKD09OVV9JTkRfUkVRVUVTVBAGEhQKEE9OVV9JTkRfUkVTUE9OU0UQByKBAgoSSW50ZXJBZGFwdGVySGVhZGVyEg4KAmlkGAEgASgJUgJpZBI5CgR0eXBlGAIgASgOMiUudm9sdGhhLkludGVyQWRhcHRlck1lc3NhZ2VUeXBlLlR5cGVzUgR0eXBlEh0KCmZyb21fdG9waWMYAyABKAlSCWZyb21Ub3BpYxIZCgh0b190b3BpYxgEIAEoCVIHdG9Ub3BpYxIgCgx0b19kZXZpY2VfaWQYBSABKAlSCnRvRGV2aWNlSWQSJgoPcHJveHlfZGV2aWNlX2lkGAYgASgJUg1wcm94eURldmljZUlkEhwKCXRpbWVzdGFtcBgHIAEoA1IJdGltZXN0YW1wIjMKF0ludGVyQWRhcHRlck9tY2lNZXNzYWdlEhgKB21lc3NhZ2UYASABKAxSB21lc3NhZ2UioAEKGEludGVyQWRhcHRlclJlc3BvbnNlQm9keRIWCgZzdGF0dXMYASABKAhSBnN0YXR1cxIqCgRib2R5GAIgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueUgAUgRib2R5EjUKBG9tY2kYAyABKAsyHy52b2x0aGEuSW50ZXJBZGFwdGVyT21jaU1lc3NhZ2VIAFIEb21jaUIJCgdwYXlsb2FkInMKE0ludGVyQWRhcHRlck1lc3NhZ2USMgoGaGVhZGVyGAEgASgLMhoudm9sdGhhLkludGVyQWRhcHRlckhlYWRlclIGaGVhZGVyEigKBGJvZHkYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQW55UgRib2R5Kj8KC01l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dWUiuQEKEUFsYXJtSW5zdGFuY2VEYXRhEiYKC2luc3RhbmNlX2lkGAEgASgNQgXo9s0dAVIKaW5zdGFuY2VJZBIYCgdjcmVhdGVkGAIgASgJUgdjcmVhdGVkEhoKCG1vZGlmaWVkGAMgASgJUghtb2RpZmllZBJGCgphdHRyaWJ1dGVzGAQgAygLMhkuYWxhcm0uQWxhcm1BdHRyaWJ1dGVEYXRhQgvi9s0dBgoEbmFtZVIKYXR0cmlidXRlcyJ+Cg5BbGFybUNsYXNzRGF0YRIgCghjbGFzc19pZBgBIAEoDUIF6PbNHQFSB2NsYXNzSWQSSgoJaW5zdGFuY2VzGAIgAygLMhguYWxhcm0uQWxhcm1JbnN0YW5jZURhdGFCEuL2zR0NCgtpbnN0YW5jZV9pZFIJaW5zdGFuY2VzIlEKEkFsYXJtTWFuYWdlZEVudGl0eRIgCghjbGFzc19pZBgBIAEoDUIF6PbNHQFSB2NsYXNzSWQSGQoEbmFtZRgCIAEoCUIF6PbNHQFSBG5hbWUiPAoQQWxhcm1NZXNzYWdlVHlwZRIoCgxtZXNzYWdlX3R5cGUYASABKA1CBej2zR0BUgttZXNzYWdlVHlwZSKFAwoPQWxhcm1EZXZpY2VEYXRhEiIKCWRldmljZV9pZBgBIAEoCUIF6PbNHQFSCGRldmljZUlkEhgKB2NyZWF0ZWQYAiABKAlSB2NyZWF0ZWQSLgoTbGFzdF9hbGFybV9zZXF1ZW5jZRgDIAEoDVIRbGFzdEFsYXJtU2VxdWVuY2USJAoObGFzdF9zeW5jX3RpbWUYBCABKAlSDGxhc3RTeW5jVGltZRIYCgd2ZXJzaW9uGAUgASgNUgd2ZXJzaW9uEkAKB2NsYXNzZXMYBiADKAsyFS5hbGFybS5BbGFybUNsYXNzRGF0YUIP4vbNHQoKCGNsYXNzX2lkUgdjbGFzc2VzEkQKEG1hbmFnZWRfZW50aXRpZXMYByADKAsyGS5hbGFybS5BbGFybU1hbmFnZWRFbnRpdHlSD21hbmFnZWRFbnRpdGllcxI8Cg1tZXNzYWdlX3R5cGVzGAggAygLMhcuYWxhcm0uQWxhcm1NZXNzYWdlVHlwZVIMbWVzc2FnZVR5cGVzIj8KFkFsYXJtT3Blbk9tY2lFdmVudFR5cGUiJQoRT3Blbk9tY2lFdmVudFR5cGUSEAoMc3RhdGVfY2hhbmdlEAAibQoSQWxhcm1PcGVuT21jaUV2ZW50EkMKBHR5cGUYASABKA4yLy5hbGFybS5BbGFybU9wZW5PbWNpRXZlbnRUeXBlLk9wZW5PbWNpRXZlbnRUeXBlUgR0eXBlEhIKBGRhdGEYAiABKAlSBGRhdGFCK1opZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL2dvL29tY2lK8BUKBhIEDwBPAQreBAoBDBIDDwASGtMECiBDb3B5cmlnaHQgMjAxOCAtIHByZXNlbnQgdGhlIG9yaWdpbmFsIGF1dGhvciBvciBhdXRob3JzLgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCgoICgEIEgMRAEAKCQoCCAsSAxEAQAoICgECEgMTAA4KCQoCAwASAxUAIgoKCgIEABIEGAAbAQoKCgMEAAESAxgIGgoLCgQEAAIAEgMZBDkKDQoFBAACAAQSBBkEGBwKDAoFBAACAAUSAxkECgoMCgUEAAIAARIDGQsPCgwKBQQAAgADEgMZGRoKDAoFBAACAAgSAxkbOAoQCgkEAAIACO3e2QMSAxkcNwoLCgQEAAIBEgMaBBsKDQoFBAACAQQSBBoEGTkKDAoFBAACAQUSAxoECgoMCgUEAAIBARIDGgsQCgwKBQQAAgEDEgMaGRoKCgoCBAESBB0AJAEKCgoDBAEBEgMdCBkKCwoEBAECABIDHgQ+Cg0KBQQBAgAEEgQeBB0bCgwKBQQBAgAFEgMeBAoKDAoFBAECAAESAx4LFgoMCgUEAQIAAxIDHh4fCgwKBQQBAgAIEgMeID0KEAoJBAECAAjt3tkDEgMeITwKCwoEBAECARIDHwQgCg0KBQQBAgEEEgQfBB4+CgwKBQQBAgEFEgMfBAoKDAoFBAECAQESAx8LEgoMCgUEAQIBAxIDHx4fCgsKBAQBAgISAyAEIAoNCgUEAQICBBIEIAQfIAoMCgUEAQICBRIDIAQKCgwKBQQBAgIBEgMgCxMKDAoFBAECAgMSAyAeHwoMCgQEAQIDEgQiBCMqCgwKBQQBAgMEEgMiBAwKDAoFBAECAwYSAyINHwoMCgUEAQIDARIDIiAqCgwKBQQBAgMDEgMiLS4KDAoFBAECAwgSAyMEKQoQCgkEAQIDCOze2QMSAyMFKAoKCgIEAhIEJgArAQoKCgMEAgESAyYIFgoLCgQEAgIAEgMnBD4KDQoFBAICAAQSBCcEJhgKDAoFBAICAAUSAycECgoMCgUEAgIAARIDJwsTCgwKBQQCAgADEgMnHh8KDAoFBAICAAgSAycgPQoQCgkEAgIACO3e2QMSAychPAoMCgQEAgIBEgQpBCoxCgwKBQQCAgEEEgMpBAwKDAoFBAICAQYSAykNHgoMCgUEAgIBARIDKR8oCgwKBQQCAgEDEgMpKisKDAoFBAICAQgSAyoEMAoQCgkEAgIBCOze2QMSAyoFLwoKCgIEAxIELQAwAQoKCgMEAwESAy0IGgoLCgQEAwIAEgMuBDcKDQoFBAMCAAQSBC4ELRwKDAoFBAMCAAUSAy4ECgoMCgUEAwIAARIDLgsTCgwKBQQDAgADEgMuFxgKDAoFBAMCAAgSAy4ZNgoQCgkEAwIACO3e2QMSAy4aNQoLCgQEAwIBEgMvBDcKDQoFBAMCAQQSBC8ELjcKDAoFBAMCAQUSAy8ECgoMCgUEAwIBARIDLwsPCgwKBQQDAgEDEgMvFxgKDAoFBAMCAQgSAy8ZNgoQCgkEAwIBCO3e2QMSAy8aNQoKCgIEBBIEMgA0AQoKCgMEBAESAzIIGAoLCgQEBAIAEgMzBDoKDQoFBAQCAAQSBDMEMhoKDAoFBAQCAAUSAzMECgoMCgUEBAIAARIDMwsXCgwKBQQEAgADEgMzGhsKDAoFBAQCAAgSAzMcOQoQCgkEBAIACO3e2QMSAzMdOAoKCgIEBRIENgBDAQoKCgMEBQESAzYIFwoLCgQEBQIAEgM3BEMKDQoFBAUCAAQSBDcENhkKDAoFBAUCAAUSAzcECgoMCgUEBQIAARIDNwsUCgwKBQQFAgADEgM3IyQKDAoFBAUCAAgSAzclQgoQCgkEBQIACO3e2QMSAzcmQQoLCgQEBQIBEgM4BCUKDQoFBAUCAQQSBDgEN0MKDAoFBAUCAQUSAzgECgoMCgUEBQIBARIDOAsSCgwKBQQFAgEDEgM4IyQKCwoEBAUCAhIDOQQlCg0KBQQFAgIEEgQ5BDglCgwKBQQFAgIFEgM5BAoKDAoFBAUCAgESAzkLHgoMCgUEBQICAxIDOSMkCgsKBAQFAgMSAzoEJQoNCgUEBQIDBBIEOgQ5JQoMCgUEBQIDBRIDOgQKCgwKBQQFAgMBEgM6CxkKDAoFBAUCAwMSAzojJAoLCgQEBQIEEgM7BCUKDQoFBAUCBAQSBDsEOiUKDAoFBAUCBAUSAzsECgoMCgUEBQIEARIDOwsSCgwKBQQFAgQDEgM7IyQKDAoEBAUCBRIEPgQ/LgoMCgUEBQIFBBIDPgQMCgwKBQQFAgUGEgM+DRsKDAoFBAUCBQESAz4cIwoMCgUEBQIFAxIDPiYnCgwKBQQFAgUIEgM/BC0KEAoJBAUCBQjs3tkDEgM/BSwKCwoEBAUCBhIDQQQ1CgwKBQQFAgYEEgNBBAwKDAoFBAUCBgYSA0ENHwoMCgUEBQIGARIDQSAwCgwKBQQFAgYDEgNBMzQKCwoEBAUCBxIDQgQwCgwKBQQFAgcEEgNCBAwKDAoFBAUCBwYSA0INHQoMCgUEBQIHARIDQh4rCgwKBQQFAgcDEgNCLi8KCgoCBAYSBEUASQEKCgoDBAYBEgNFCB4KDAoEBAYEABIERgRIBQoMCgUEBgQAARIDRgkaCkAKBgQGBAACABIDRwgZIjEgQSBzdGF0ZSBtYWNoaW5lIGhhcyB0cmFuc2l0aW9uZWQgdG8gYSBuZXcgc3RhdGUKCg4KBwQGBAACAAESA0cIFAoOCgcEBgQAAgACEgNHFxgKCgoCBAcSBEsATwEKCgoDBAcBEgNLCBoKCwoEBAcCABIDTAQ2Cg0KBQQHAgAEEgRMBEscCgwKBQQHAgAGEgNMBCwKDAoFBAcCAAESA0wtMQoMCgUEBwIAAxIDTDQ1Ci4KBAQHAgESA04EFCIhIGFzc29jaWF0ZWQgZGF0YSwgaW4ganNvbiBmb3JtYXQKCg0KBQQHAgEEEgROBEw2CgwKBQQHAgEFEgNOBAoKDAoFBAcCAQESA04LDwoMCgUEBwIBAxIDThITYgZwcm90bzMK8h4KH3ZvbHRoYV9wcm90b3Mvb21jaV9taWJfZGIucHJvdG8SBG9tY2kaGHZvbHRoYV9wcm90b3MvbWV0YS5wcm90byJDChBNaWJBdHRyaWJ1dGVEYXRhEhkKBG5hbWUYASABKAlCBej2zR0BUgRuYW1lEhQKBXZhbHVlGAIgASgJUgV2YWx1ZSK0AQoPTWliSW5zdGFuY2VEYXRhEiYKC2luc3RhbmNlX2lkGAEgASgNQgXo9s0dAVIKaW5zdGFuY2VJZBIYCgdjcmVhdGVkGAIgASgJUgdjcmVhdGVkEhoKCG1vZGlmaWVkGAMgASgJUghtb2RpZmllZBJDCgphdHRyaWJ1dGVzGAQgAygLMhYub21jaS5NaWJBdHRyaWJ1dGVEYXRhQgvi9s0dBgoEbmFtZVIKYXR0cmlidXRlcyJ5CgxNaWJDbGFzc0RhdGESIAoIY2xhc3NfaWQYASABKA1CBej2zR0BUgdjbGFzc0lkEkcKCWluc3RhbmNlcxgCIAMoCzIVLm9tY2kuTWliSW5zdGFuY2VEYXRhQhLi9s0dDQoLaW5zdGFuY2VfaWRSCWluc3RhbmNlcyJMCg1NYW5hZ2VkRW50aXR5EiAKCGNsYXNzX2lkGAEgASgNQgXo9s0dAVIHY2xhc3NJZBIZCgRuYW1lGAIgASgJQgXo9s0dAVIEbmFtZSI3CgtNZXNzYWdlVHlwZRIoCgxtZXNzYWdlX3R5cGUYASABKA1CBej2zR0BUgttZXNzYWdlVHlwZSLoAgoNTWliRGV2aWNlRGF0YRIiCglkZXZpY2VfaWQYASABKAlCBej2zR0BUghkZXZpY2VJZBIYCgdjcmVhdGVkGAIgASgJUgdjcmVhdGVkEiQKDmxhc3Rfc3luY190aW1lGAMgASgJUgxsYXN0U3luY1RpbWUSIgoNbWliX2RhdGFfc3luYxgEIAEoDVILbWliRGF0YVN5bmMSGAoHdmVyc2lvbhgFIAEoDVIHdmVyc2lvbhI9CgdjbGFzc2VzGAYgAygLMhIub21jaS5NaWJDbGFzc0RhdGFCD+L2zR0KCghjbGFzc19pZFIHY2xhc3NlcxI+ChBtYW5hZ2VkX2VudGl0aWVzGAcgAygLMhMub21jaS5NYW5hZ2VkRW50aXR5Ug9tYW5hZ2VkRW50aXRpZXMSNgoNbWVzc2FnZV90eXBlcxgIIAMoCzIRLm9tY2kuTWVzc2FnZVR5cGVSDG1lc3NhZ2VUeXBlcyI6ChFPcGVuT21jaUV2ZW50VHlwZSIlChFPcGVuT21jaUV2ZW50VHlwZRIQCgxzdGF0ZV9jaGFuZ2UQACJiCg1PcGVuT21jaUV2ZW50Ej0KBHR5cGUYASABKA4yKS5vbWNpLk9wZW5PbWNpRXZlbnRUeXBlLk9wZW5PbWNpRXZlbnRUeXBlUgR0eXBlEhIKBGRhdGEYAiABKAlSBGRhdGFCK1opZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL2dvL29tY2lK8BUKBhIEDwBOAQreBAoBDBIDDwASGtMECiBDb3B5cmlnaHQgMjAxOCAtIHByZXNlbnQgdGhlIG9yaWdpbmFsIGF1dGhvciBvciBhdXRob3JzLgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcs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SW5kEj4KDG9udV9kaXNjX2luZBgEIAEoCzIaLm9wZW5vbHQuT251RGlzY0luZGljYXRpb25IAFIKb251RGlzY0luZBIxCgdvbnVfaW5kGAUgASgLMhYub3Blbm9sdC5PbnVJbmRpY2F0aW9uSABSBm9udUluZBI0CghvbWNpX2luZBgGIAEoCzIXLm9wZW5vbHQuT21jaUluZGljYXRpb25IAFIHb21jaUluZBI0Cgdwa3RfaW5kGAcgASgLMhkub3Blbm9sdC5QYWNrZXRJbmRpY2F0aW9uSABSBnBrdEluZBI4Cgpwb3J0X3N0YXRzGAggASgLMhcub3Blbm9sdC5Qb3J0U3RhdGlzdGljc0gAUglwb3J0U3RhdHMSOAoKZmxvd19zdGF0cxgJIAEoCzIXLm9wZW5vbHQuRmxvd1N0YXRpc3RpY3NIAFIJZmxvd1N0YXRzEjcKCWFsYXJtX2luZBgKIAEoCzIYLm9wZW5vbHQuQWxhcm1JbmRpY2F0aW9uSABSCGFsYXJtSW5kQgYKBGRhdGEiqwcKD0FsYXJtSW5kaWNhdGlvbhIxCgdsb3NfaW5kGAEgASgLMhYub3Blbm9sdC5Mb3NJbmRpY2F0aW9uSABSBmxvc0luZBJECg5keWluZ19nYXNwX2luZBgCIAEoCzIcLm9wZW5vbHQuRHlpbmdHYXNwSW5kaWNhdGlvbkgAUgxkeWluZ0dhc3BJbmQSQQoNb251X2FsYXJtX2luZBgDIAEoCzIbLm9wZW5vbHQuT251QWxhcm1JbmRpY2F0aW9uSABSC29udUFsYXJtSW5kElcKFG9udV9zdGFydHVwX2ZhaWxfaW5kGAQgASgLMiQub3Blbm9sdC5PbnVTdGFydHVwRmFpbHVyZUluZGljYXRpb25IAFIRb251U3RhcnR1cEZhaWxJbmQSWgoWb251X3NpZ25hbF9kZWdyYWRlX2luZBgFIAEoCzIjLm9wZW5vbHQuT251U2lnbmFsRGVncmFkZUluZGljYXRpb25IAFITb251U2lnbmFsRGVncmFkZUluZBJbChdvbnVfZHJpZnRfb2Zfd2luZG93X2luZBgGIAEoCzIjLm9wZW5vbHQuT251RHJpZnRPZldpbmRvd0luZGljYXRpb25IAFITb251RHJpZnRPZldpbmRvd0luZBJUChFvbnVfbG9zc19vbWNpX2luZBgHIAEoCzInLm9wZW5vbHQuT251TG9zc09mT21jaUNoYW5uZWxJbmRpY2F0aW9uSABSDm9udUxvc3NPbWNpSW5kElcKFG9udV9zaWduYWxzX2ZhaWxfaW5kGAggASgLMiQub3Blbm9sdC5PbnVTaWduYWxzRmFpbHVyZUluZGljYXRpb25IAFIRb251U2lnbmFsc0ZhaWxJbmQSTwoMb251X3Rpd2lfaW5kGAkgASgLMisub3Blbm9sdC5PbnVUcmFuc21pc3Npb25JbnRlcmZlcmVuY2VXYXJuaW5nSABSCm9udVRpd2lJbmQSYAoXb251X2FjdGl2YXRpb25fZmFpbF9pbmQYCiABKAsyJy5vcGVub2x0Lk9udUFjdGl2YXRpb25GYWlsdXJlSW5kaWNhdGlvbkgAUhRvbnVBY3RpdmF0aW9uRmFpbEluZBJgChhvbnVfcHJvY2Vzc2luZ19lcnJvcl9pbmQYCyABKAsyJS5vcGVub2x0Lk9udVByb2Nlc3NpbmdFcnJvckluZGljYXRpb25IAFIVb251UHJvY2Vzc2luZ0Vycm9ySW5kQgYKBGRhdGEiLgoNT2x0SW5kaWNhdGlvbhIdCgpvcGVyX3N0YXRlGAEgASgJUglvcGVyU3RhdGUiSAoOSW50ZkluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEh0KCm9wZXJfc3RhdGUYAiABKAlSCW9wZXJTdGF0ZSJoChFPbnVEaXNjSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSOgoNc2VyaWFsX251bWJlchgCIAEoCzIVLm9wZW5vbHQuU2VyaWFsTnVtYmVyUgxzZXJpYWxOdW1iZXIiuwEKDU9udUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSHQoKb3Blcl9zdGF0ZRgDIAEoCVIJb3BlclN0YXRlEh8KC2FkbWluX3N0YXRlGAUgASgJUgphZG1pblN0YXRlEjoKDXNlcmlhbF9udW1iZXIYBCABKAsyFS5vcGVub2x0LlNlcmlhbE51bWJlclIMc2VyaWFsTnVtYmVyImAKEkludGZPcGVySW5kaWNhdGlvbhISCgR0eXBlGAEgASgJUgR0eXBlEhcKB2ludGZfaWQYAiABKAdSBmludGZJZBIdCgpvcGVyX3N0YXRlGAMgASgJUglvcGVyU3RhdGUiUgoOT21jaUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSEAoDcGt0GAMgASgMUgNwa3QiwwEKEFBhY2tldEluZGljYXRpb24SGwoJaW50Zl90eXBlGAUgASgJUghpbnRmVHlwZRIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSHQoKZ2VtcG9ydF9pZBgCIAEoB1IJZ2VtcG9ydElkEhcKB2Zsb3dfaWQYAyABKAdSBmZsb3dJZBIXCgdwb3J0X25vGAYgASgHUgZwb3J0Tm8SFgoGY29va2llGAcgASgGUgZjb29raWUSEAoDcGt0GAQgASgMUgNwa3QiJAoJSW50ZXJmYWNlEhcKB2ludGZfaWQYASABKAdSBmludGZJZCI8CglIZWFydGJlYXQSLwoTaGVhcnRiZWF0X3NpZ25hdHVyZRgBIAEoB1ISaGVhcnRiZWF0U2lnbmF0dXJlIoMBCgNPbnUSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSOgoNc2VyaWFsX251bWJlchgDIAEoCzIVLm9wZW5vbHQuU2VyaWFsTnVtYmVyUgxzZXJpYWxOdW1iZXISEAoDcGlyGAQgASgHUgNwaXIiSwoHT21jaU1zZxIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIQCgNwa3QYAyABKAxSA3BrdCJmCglPbnVQYWNrZXQSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFwoHcG9ydF9ubxgEIAEoB1IGcG9ydE5vEhAKA3BrdBgDIAEoDFIDcGt0IjkKDFVwbGlua1BhY2tldBIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSEAoDcGt0GAIgASgMUgNwa3QikgkKCkRldmljZUluZm8SFgoGdmVuZG9yGAEgASgJUgZ2ZW5kb3ISFAoFbW9kZWwYAiABKAlSBW1vZGVsEikKEGhhcmR3YXJlX3ZlcnNpb24YAyABKAlSD2hhcmR3YXJlVmVyc2lvbhIpChBmaXJtd2FyZV92ZXJzaW9uGAQgASgJUg9maXJtd2FyZVZlcnNpb24SGwoJZGV2aWNlX2lkGBAgASgJUghkZXZpY2VJZBIwChRkZXZpY2Vfc2VyaWFsX251bWJlchgRIAEoCVISZGV2aWNlU2VyaWFsTnVtYmVyEhsKCXBvbl9wb3J0cxgMIAEoB1IIcG9uUG9ydHMSHgoKdGVjaG5vbG9neRgFIAEoCVIKdGVjaG5vbG9neRIgCgxvbnVfaWRfc3RhcnQYBiABKAdSCm9udUlkU3RhcnQSHAoKb251X2lkX2VuZBgHIAEoB1IIb251SWRFbmQSJAoOYWxsb2NfaWRfc3RhcnQYCCABKAdSDGFsbG9jSWRTdGFydBIgCgxhbGxvY19pZF9lbmQYCSABKAdSCmFsbG9jSWRFbmQSKAoQZ2VtcG9ydF9pZF9zdGFydBgKIAEoB1IOZ2VtcG9ydElkU3RhcnQSJAoOZ2VtcG9ydF9pZF9lbmQYCyABKAdSDGdlbXBvcnRJZEVuZBIiCg1mbG93X2lkX3N0YXJ0GA0gASgHUgtmbG93SWRTdGFydBIeCgtmbG93X2lkX2VuZBgOIAEoB1IJZmxvd0lkRW5kEkAKBnJhbmdlcxgPIAMoCzIoLm9wZW5vbHQuRGV2aWNlSW5mby5EZXZpY2VSZXNvdXJjZVJhbmdlc1IGcmFuZ2VzGpUEChREZXZpY2VSZXNvdXJjZVJhbmdlcxIZCghpbnRmX2lkcxgBIAMoB1IHaW50ZklkcxIeCgp0ZWNobm9sb2d5GAIgASgJUgp0ZWNobm9sb2d5EkMKBXBvb2xzGAMgAygLMi0ub3Blbm9sdC5EZXZpY2VJbmZvLkRldmljZVJlc291cmNlUmFuZ2VzLlBvb2xSBXBvb2xzGvwCCgRQb29sEkoKBHR5cGUYASABKA4yNi5vcGVub2x0LkRldmljZUluZm8uRGV2aWNlUmVzb3VyY2VSYW5nZXMuUG9vbC5Qb29sVHlwZVIEdHlwZRJTCgdzaGFyaW5nGAIgASgOMjkub3Blbm9sdC5EZXZpY2VJbmZvLkRldmljZVJlc291cmNlUmFuZ2VzLlBvb2wuU2hhcmluZ1R5cGVSB3NoYXJpbmcSFAoFc3RhcnQYAyABKAdSBXN0YXJ0EhAKA2VuZBgEIAEoB1IDZW5kIkEKCFBvb2xUeXBlEgoKBk9OVV9JRBAAEgwKCEFMTE9DX0lEEAESDgoKR0VNUE9SVF9JRBACEgsKB0ZMT1dfSUQQAyJoCgtTaGFyaW5nVHlwZRIWChJERURJQ0FURURfUEVSX0lOVEYQABIfChtTSEFSRURfQllfQUxMX0lOVEZfQUxMX1RFQ0gQARIgChxTSEFSRURfQllfQUxMX0lOVEZfU0FNRV9URUNIEAIihAMKCkNsYXNzaWZpZXISFQoGb190cGlkGAEgASgHUgVvVHBpZBITCgVvX3ZpZBgCIAEoB1IEb1ZpZBIVCgZpX3RwaWQYAyABKAdSBWlUcGlkEhMKBWlfdmlkGAQgASgHUgRpVmlkEhcKB29fcGJpdHMYBSABKAdSBm9QYml0cxIXCgdpX3BiaXRzGAYgASgHUgZpUGJpdHMSGQoIZXRoX3R5cGUYByABKAdSB2V0aFR5cGUSFwoHZHN0X21hYxgIIAEoDFIGZHN0TWFjEhcKB3NyY19tYWMYCSABKAxSBnNyY01hYxIZCghpcF9wcm90bxgKIAEoB1IHaXBQcm90bxIVCgZkc3RfaXAYCyABKAdSBWRzdElwEhUKBnNyY19pcBgMIAEoB1IFc3JjSXASGQoIc3JjX3BvcnQYDSABKAdSB3NyY1BvcnQSGQoIZHN0X3BvcnQYDiABKAdSB2RzdFBvcnQSIAoMcGt0X3RhZ190eXBlGA8gASgJUgpwa3RUYWdUeXBlInsKCUFjdGlvbkNtZBIiCg1hZGRfb3V0ZXJfdGFnGAEgASgIUgthZGRPdXRlclRhZxIoChByZW1vdmVfb3V0ZXJfdGFnGAIgASgIUg5yZW1vdmVPdXRlclRhZxIgCgx0cmFwX3RvX2hvc3QYAyABKAhSCnRyYXBUb0hvc3QiuAEKBkFjdGlvbhIkCgNjbWQYASABKAsyEi5vcGVub2x0LkFjdGlvbkNtZFIDY21kEhMKBW9fdmlkGAIgASgHUgRvVmlkEhcKB29fcGJpdHMYAyABKAdSBm9QYml0cxIVCgZvX3RwaWQYBCABKAdSBW9UcGlkEhMKBWlfdmlkGAUgASgHUgRpVmlkEhcKB2lfcGJpdHMYBiABKAdSBmlQYml0cxIVCgZpX3RwaWQYByABKAdSBWlUcGlkIp0DCgRGbG93EiQKDmFjY2Vzc19pbnRmX2lkGAEgASgPUgxhY2Nlc3NJbnRmSWQSFQoGb251X2lkGAIgASgPUgVvbnVJZBIVCgZ1bmlfaWQYCyABKA9SBXVuaUlkEhcKB2Zsb3dfaWQYAyABKAdSBmZsb3dJZBIbCglmbG93X3R5cGUYBCABKAlSCGZsb3dUeXBlEhkKCGFsbG9jX2lkGAogASgPUgdhbGxvY0lkEiYKD25ldHdvcmtfaW50Zl9pZBgFIAEoD1INbmV0d29ya0ludGZJZBIdCgpnZW1wb3J0X2lkGAYgASgPUglnZW1wb3J0SWQSMwoKY2xhc3NpZmllchgHIAEoCzITLm9wZW5vbHQuQ2xhc3NpZmllclIKY2xhc3NpZmllchInCgZhY3Rpb24YCCABKAsyDy5vcGVub2x0LkFjdGlvblIGYWN0aW9uEhoKCHByaW9yaXR5GAkgASgPUghwcmlvcml0eRIWCgZjb29raWUYDCABKAZSBmNvb2tpZRIXCgdwb3J0X25vGA0gASgHUgZwb3J0Tm8iVAoMU2VyaWFsTnVtYmVyEhsKCXZlbmRvcl9pZBgBIAEoDFIIdmVuZG9ySWQSJwoPdmVuZG9yX3NwZWNpZmljGAIgASgMUg52ZW5kb3JTcGVjaWZpYyLOBAoOUG9ydFN0YXRpc3RpY3MSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhkKCHJ4X2J5dGVzGAIgASgGUgdyeEJ5dGVzEh0KCnJ4X3BhY2tldHMYAyABKAZSCXJ4UGFja2V0cxIoChByeF91Y2FzdF9wYWNrZXRzGAQgASgGUg5yeFVjYXN0UGFja2V0cxIoChByeF9tY2FzdF9wYWNrZXRzGAUgASgGUg5yeE1jYXN0UGFja2V0cxIoChByeF9iY2FzdF9wYWNrZXRzGAYgASgGUg5yeEJjYXN0UGFja2V0cxIoChByeF9lcnJvcl9wYWNrZXRzGAcgASgGUg5yeEVycm9yUGFja2V0cxIZCgh0eF9ieXRlcxgIIAEoBlIHdHhCeXRlcxIdCgp0eF9wYWNrZXRzGAkgASgGUgl0eFBhY2tldHMSKAoQdHhfdWNhc3RfcGFja2V0cxgKIAEoBlIOdHhVY2FzdFBhY2tldHMSKAoQdHhfbWNhc3RfcGFja2V0cxgLIAEoBlIOdHhNY2FzdFBhY2tldHMSKAoQdHhfYmNhc3RfcGFja2V0cxgMIAEoBlIOdHhCY2FzdFBhY2tldHMSKAoQdHhfZXJyb3JfcGFja2V0cxgNIAEoBlIOdHhFcnJvclBhY2tldHMSIgoNcnhfY3JjX2Vycm9ycxgOIAEoBlILcnhDcmNFcnJvcnMSHQoKYmlwX2Vycm9ycxgPIAEoBlIJYmlwRXJyb3JzEhwKCXRpbWVzdGFtcBgQIAEoB1IJdGltZXN0YW1wIrsBCg5GbG93U3RhdGlzdGljcxIXCgdmbG93X2lkGAEgASgHUgZmbG93SWQSGQoIcnhfYnl0ZXMYAiABKAZSB3J4Qnl0ZXMSHQoKcnhfcGFja2V0cxgDIAEoBlIJcnhQYWNrZXRzEhkKCHR4X2J5dGVzGAggASgGUgd0eEJ5dGVzEh0KCnR4X3BhY2tldHMYCSABKAZSCXR4UGFja2V0cxIcCgl0aW1lc3RhbXAYECABKAdSCXRpbWVzdGFtcCJACg1Mb3NJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIWCgZzdGF0dXMYAiABKAlSBnN0YXR1cyJdChNEeWluZ0dhc3BJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzIt8BChJPbnVBbGFybUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSHQoKbG9zX3N0YXR1cxgDIAEoCVIJbG9zU3RhdHVzEh0KCmxvYl9zdGF0dXMYBCABKAlSCWxvYlN0YXR1cxIoChBsb3BjX21pc3Nfc3RhdHVzGAUgASgJUg5sb3BjTWlzc1N0YXR1cxIxChVsb3BjX21pY19lcnJvcl9zdGF0dXMYBiABKAlSEmxvcGNNaWNFcnJvclN0YXR1cyJlChtPbnVTdGFydHVwRmFpbHVyZUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMimQEKGk9udVNpZ25hbERlZ3JhZGVJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEjMKFmludmVyc2VfYml0X2Vycm9yX3JhdGUYBCABKAdSE2ludmVyc2VCaXRFcnJvclJhdGUikwEKGk9udURyaWZ0T2ZXaW5kb3dJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEhQKBWRyaWZ0GAQgASgHUgVkcmlmdBIXCgduZXdfZXFkGAUgASgHUgZuZXdFcWQiaAoeT251TG9zc09mT21jaUNoYW5uZWxJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzIpoBChtPbnVTaWduYWxzRmFpbHVyZUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSMwoWaW52ZXJzZV9iaXRfZXJyb3JfcmF0ZRgEIAEoB1ITaW52ZXJzZUJpdEVycm9yUmF0ZSKCAQoiT251VHJhbnNtaXNzaW9uSW50ZXJmZXJlbmNlV2FybmluZxIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cxIUCgVkcmlmdBgEIAEoB1IFZHJpZnQiUAoeT251QWN0aXZhdGlvbkZhaWx1cmVJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkIk4KHE9udVByb2Nlc3NpbmdFcnJvckluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQi6wEKCVNjaGVkdWxlchIwCglkaXJlY3Rpb24YASABKA4yEi5vcGVub2x0LkRpcmVjdGlvblIJZGlyZWN0aW9uEjoKDWFkZGl0aW9uYWxfYncYAiABKA4yFS5vcGVub2x0LkFkZGl0aW9uYWxCV1IMYWRkaXRpb25hbEJ3EhoKCHByaW9yaXR5GAMgASgHUghwcmlvcml0eRIWCgZ3ZWlnaHQYBCABKAdSBndlaWdodBI8CgxzY2hlZF9wb2xpY3kYBSABKA4yGS5vcGVub2x0LlNjaGVkdWxpbmdQb2xpY3lSC3NjaGVkUG9saWN5IrMBChJUcmFmZmljU2hhcGluZ0luZm8SEAoDY2lyGAEgASgHUgNjaXISEAoDY2JzGAIgASgHUgNjYnMSEAoDcGlyGAMgASgHUgNwaXISEAoDcGJzGAQgASgHUgNwYnMSEAoDZ2lyGAUgASgHUgNnaXISQwoKYWRkX2J3X2luZBgGIAEoDjIlLm9wZW5vbHQuSW5mZXJyZWRBZGRpdGlvbkJXSW5kaWNhdGlvblIIYWRkQndJbmQi1QEKBVRjb250EjAKCWRpcmVjdGlvbhgBIAEoDjISLm9wZW5vbHQuRGlyZWN0aW9uUglkaXJlY3Rpb24SGQoIYWxsb2NfaWQYAiABKAdSB2FsbG9jSWQSMAoJc2NoZWR1bGVyGAMgASgLMhIub3Blbm9sdC5TY2hlZHVsZXJSCXNjaGVkdWxlchJNChR0cmFmZmljX3NoYXBpbmdfaW5mbxgEIAEoCzIbLm9wZW5vbHQuVHJhZmZpY1NoYXBpbmdJbmZvUhJ0cmFmZmljU2hhcGluZ0luZm8ikAEKBlRjb250cxIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIVCgZ1bmlfaWQYBCABKAdSBXVuaUlkEhcKB3BvcnRfbm8YBSABKAdSBnBvcnRObxImCgZ0Y29udHMYAyADKAsyDi5vcGVub2x0LlRjb250UgZ0Y29udHMiNgoVVGFpbERyb3BEaXNjYXJkQ29uZmlnEh0KCnF1ZXVlX3NpemUYASABKAdSCXF1ZXVlU2l6ZSKFAQoQUmVkRGlzY2FyZENvbmZpZxIjCg1taW5fdGhyZXNob2xkGAEgASgHUgxtaW5UaHJlc2hvbGQSIwoNbWF4X3RocmVzaG9sZBgCIAEoB1IMbWF4VGhyZXNob2xkEicKD21heF9wcm9iYWJpbGl0eRgDIAEoB1IObWF4UHJvYmFiaWxpdHkipAEKEVdSZWREaXNjYXJkQ29uZmlnEi8KBWdyZWVuGAEgASgLMhkub3Blbm9sdC5SZWREaXNjYXJkQ29uZmlnUgVncmVlbhIxCgZ5ZWxsb3cYAiABKAsyGS5vcGVub2x0LlJlZERpc2NhcmRDb25maWdSBnllbGxvdxIrCgNyZWQYAyABKAsyGS5vcGVub2x0LlJlZERpc2NhcmRDb25maWdSA3JlZCLUAgoNRGlzY2FyZENvbmZpZxI9Cg5kaXNjYXJkX3BvbGljeRgBIAEoDjIWLm9wZW5vbHQuRGlzY2FyZFBvbGljeVINZGlzY2FyZFBvbGljeRJZChh0YWlsX2Ryb3BfZGlzY2FyZF9jb25maWcYAiABKAsyHi5vcGVub2x0LlRhaWxEcm9wRGlzY2FyZENvbmZpZ0gAUhV0YWlsRHJvcERpc2NhcmRDb25maWcSSQoScmVkX2Rpc2NhcmRfY29uZmlnGAMgASgLMhkub3Blbm9sdC5SZWREaXNjYXJkQ29uZmlnSABSEHJlZERpc2NhcmRDb25maWcSTAoTd3JlZF9kaXNjYXJkX2NvbmZpZxgEIAEoCzIaLm9wZW5vbHQuV1JlZERpc2NhcmRDb25maWdIAFIRd3JlZERpc2NhcmRDb25maWdCEAoOZGlzY2FyZF9jb25maWciBwoFRW1wdHkqPAoJRGlyZWN0aW9uEgwKCFVQU1RSRUFNEAASDgoKRE9XTlNUUkVBTRABEhEKDUJJRElSRUNUSU9OQUwQAio7ChBTY2hlZHVsaW5nUG9saWN5EgcKA1dSUhAAEhIKDlN0cmljdFByaW9yaXR5EAESCgoGSHlicmlkEAIqbgoMQWRkaXRpb25hbEJXEhUKEUFkZGl0aW9uYWxCV19Ob25lEAASEwoPQWRkaXRpb25hbEJXX05BEAESGwoXQWRkaXRpb25hbEJXX0Jlc3RFZmZvcnQQAhIVChFBZGRpdGlvbmFsQldfQXV0bxADKj8KDURpc2NhcmRQb2xpY3kSDAoIVGFpbERyb3AQABINCglXVGFpbERyb3AQARIHCgNSZWQQAhIICgRXUmVkEAMqnAEKHEluZmVycmVkQWRkaXRpb25CV0luZGljYXRpb24SJQohSW5mZXJyZWRBZGRpdGlvbkJXSW5kaWNhdGlvbl9Ob25lEAASKAokSW5mZXJyZWRBZGRpdGlvbkJXSW5kaWNhdGlvbl9Bc3N1cmVkEAESKwonSW5mZXJyZWRBZGRpdGlvbkJXSW5kaWNhdGlvbl9CZXN0RWZmb3J0EAIypwsKB09wZW5vbHQSRAoKRGlzYWJsZU9sdBIOLm9wZW5vbHQuRW1wdHkaDi5vcGVub2x0LkVtcHR5IhaC0+STAhAiCy92MS9EaXNhYmxlOgEqEkYKC1JlZW5hYmxlT2x0Eg4ub3Blbm9sdC5FbXB0eRoOLm9wZW5vbHQuRW1wdHkiF4LT5JMCESIML3YxL1JlZW5hYmxlOgEqEkUKC0FjdGl2YXRlT251Egwub3Blbm9sdC5PbnUaDi5vcGVub2x0LkVtcHR5IhiC0+STAhIiDS92MS9FbmFibGVPbnU6ASoSSAoNRGVhY3RpdmF0ZU9udRIMLm9wZW5vbHQuT251Gg4ub3Blbm9sdC5FbXB0eSIZgtPkkwITIg4vdjEvRGlzYWJsZU9udToBKhJDCglEZWxldGVPbnUSDC5vcGVub2x0Lk9udRoOLm9wZW5vbHQuRW1wdHkiGILT5JMCEiINL3YxL0RlbGV0ZU9udToBKhJJCgpPbWNpTXNnT3V0EhAub3Blbm9sdC5PbWNpTXNnGg4ub3Blbm9sdC5FbXB0eSIZgtPkkwITIg4vdjEvT21jaU1zZ091dDoBKhJPCgxPbnVQYWNrZXRPdXQSEi5vcGVub2x0Lk9udVBhY2tldBoOLm9wZW5vbHQuRW1wdHkiG4LT5JMCFSIQL3YxL09udVBhY2tldE91dDoBKhJYCg9VcGxpbmtQYWNrZXRPdXQSFS5vcGVub2x0LlVwbGlua1BhY2tldBoOLm9wZW5vbHQuRW1wdHkiHoLT5JMCGCITL3YxL1VwbGlua1BhY2tldE91dDoBKhJACgdGbG93QWRkEg0ub3Blbm9sdC5GbG93Gg4ub3Blbm9sdC5FbXB0eSIWgtPkkwIQIgsvdjEvRmxvd0FkZDoBKhJGCgpGbG93UmVtb3ZlEg0ub3Blbm9sdC5GbG93Gg4ub3Blbm9sdC5FbXB0eSIZgtPkkwITIg4vdjEvRmxvd1JlbW92ZToBKhJTCg5IZWFydGJlYXRDaGVjaxIOLm9wZW5vbHQuRW1wdHkaEi5vcGVub2x0LkhlYXJ0YmVhdCIdgtPkkwIXIhIvdjEvSGVhcnRiZWF0Q2hlY2s6ASoSTQoLRW5hYmxlUG9uSWYSEi5vcGVub2x0LkludGVyZmFjZRoOLm9wZW5vbHQuRW1wdHkiGoLT5JMCFCIPL3YxL0VuYWJsZVBvbklmOgEqEk8KDERpc2FibGVQb25JZhISLm9wZW5vbHQuSW50ZXJmYWNlGg4ub3Blbm9sdC5FbXB0eSIbgtPkkwIVIhAvdjEvRGlzYWJsZVBvbklmOgEqElIKDUdldERldmljZUluZm8SDi5vcGVub2x0LkVtcHR5GhMub3Blbm9sdC5EZXZpY2VJbmZvIhyC0+STAhYiES92MS9HZXREZXZpY2VJbmZvOgEqEj8KBlJlYm9vdBIOLm9wZW5vbHQuRW1wdHkaDi5vcGVub2x0LkVtcHR5IhWC0+STAg8iCi92MS9SZWJvb3Q6ASoSVQoRQ29sbGVjdFN0YXRpc3RpY3MSDi5vcGVub2x0LkVtcHR5Gg4ub3Blbm9sdC5FbXB0eSIggtPkkwIaIhUvdjEvQ29sbGVjdFN0YXRpc3RpY3M6ASoSTAoMQ3JlYXRlVGNvbnRzEg8ub3Blbm9sdC5UY29udHMaDi5vcGVub2x0LkVtcHR5IhuC0+STAhUiEC92MS9DcmVhdGVUY29udHM6ASoSTAoMUmVtb3ZlVGNvbnRzEg8ub3Blbm9sdC5UY29udHMaDi5vcGVub2x0LkVtcHR5IhuC0+STAhUiEC92MS9SZW1vdmVUY29udHM6ASoSOwoQRW5hYmxlSW5kaWNhdGlvbhIOLm9wZW5vbHQuRW1wdHkaEy5vcGVub2x0LkluZGljYXRpb24iADABQi5aLGdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy9nby9vcGVub2x0SvWsAQoHEgUOAK4EEArRBAoBDBIDDgASMsYEIENvcHlyaWdodCAoYykgMjAxOCBPcGVuIE5ldHdvcmtpbmcgRm91bmRhdGlvbgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1h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BBccCgwKBQQBAgIFEgMaBAoKDAoFBAECAgESAxoLFAoMCgUEAQICAxIDGhcYCh0KAgYAEgQeACcBGhEgU2NoZW1hIHNlcnZpY2VzCgoKCgMGAAESAx4IFQoqCgQGAAIAEgQhBCUFGhwgUmV0dXJuIGFjdGl2ZSBncnBjIHNjaGVtYXMKCgwKBQYAAgABEgMhCBEKDAoFBgACAAISAyESJwoMCgUGAAIAAxIDITI5Cg0KBQYAAgAEEgQiCCQKChEKCQYAAgAEsMq8IhIEIggkCmIGcHJvdG8zCqutAQoadm9sdGhhX3Byb3Rvcy92b2x0aGEucHJvdG8SBnZvbHRoYRocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90bxobZ29vZ2xlL3Byb3RvYnVmL2VtcHR5LnByb3RvGhh2b2x0aGFfcHJvdG9zL21ldGEucHJvdG8aGnZvbHRoYV9wcm90b3MvY29tbW9uLnByb3RvGhp2b2x0aGFfcHJvdG9zL2hlYWx0aC5wcm90bxoidm9sdGhhX3Byb3Rvcy9sb2dpY2FsX2RldmljZS5wcm90bxoadm9sdGhhX3Byb3Rvcy9kZXZpY2UucHJvdG8aG3ZvbHRoYV9wcm90b3MvYWRhcHRlci5wcm90bxofdm9sdGhhX3Byb3Rvcy9vcGVuZmxvd18xMy5wcm90bxofdm9sdGhhX3Byb3Rvcy9vbWNpX21pYl9kYi5wcm90bxohdm9sdGhhX3Byb3Rvcy9vbWNpX2FsYXJtX2RiLnByb3RvGiB2b2x0aGFfcHJvdG9zL3lhbmdfb3B0aW9ucy5wcm90byKkAQoLRGV2aWNlR3JvdXASFQoCaWQYASABKAlCBej2zR0BUgJpZBJJCg9sb2dpY2FsX2RldmljZXMYAiADKAsyFS52b2x0aGEuTG9naWNhbERldmljZUIJ4vbNHQQKAmlkUg5sb2dpY2FsRGV2aWNlcxIzCgdkZXZpY2VzGAMgAygLMg4udm9sdGhhLkRldmljZUIJ4vbNHQQKAmlkUgdkZXZpY2VzIjkKDERldmljZUdyb3VwcxIpCgVpdGVtcxgBIAMoCzITLnZvbHRoYS5EZXZpY2VHcm91cFIFaXRlbXMifwoSQWxhcm1GaWx0ZXJSdWxlS2V5ImIKEkFsYXJtRmlsdGVyUnVsZUtleRIGCgJpZBAAEggKBHR5cGUQARIMCghzZXZlcml0eRACEg8KC3Jlc291cmNlX2lkEAMSDAoIY2F0ZWdvcnkQBBINCglkZXZpY2VfaWQQBToF8PbNHQAiaAoPQWxhcm1GaWx0ZXJSdWxlEj8KA2tleRgBIAEoDjItLnZvbHRoYS5BbGFybUZpbHRlclJ1bGVLZXkuQWxhcm1GaWx0ZXJSdWxlS2V5UgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlIlMKC0FsYXJtRmlsdGVyEhUKAmlkGAEgASgJQgXo9s0dAVICaWQSLQoFcnVsZXMYAiADKAsyFy52b2x0aGEuQWxhcm1GaWx0ZXJSdWxlUgVydWxlcyI9CgxBbGFybUZpbHRlcnMSLQoHZmlsdGVycxgBIAMoCzITLnZvbHRoYS5BbGFybUZpbHRlclIHZmlsdGVycyJdCgdMb2dnaW5nEi8KBWxldmVsGAEgASgOMhkudm9sdGhhLkxvZ0xldmVsLkxvZ0xldmVsUgVsZXZlbBIhCgxwYWNrYWdlX25hbWUYAiABKAlSC3BhY2thZ2VOYW1lInIKDENvcmVJbnN0YW5jZRImCgtpbnN0YW5jZV9pZBgBIAEoCUIF6PbNHQFSCmluc3RhbmNlSWQSMwoGaGVhbHRoGAIgASgLMhQudm9sdGhhLkhlYWx0aFN0YXR1c0IF4vbNHQBSBmhlYWx0aDoF+PbNHQEiQgoNQ29yZUluc3RhbmNlcxIqCgVpdGVtcxgBIAMoCzIULnZvbHRoYS5Db3JlSW5zdGFuY2VSBWl0ZW1zOgX49s0dASLhBAoGVm9sdGhhEh8KB3ZlcnNpb24YASABKAlCBej2zR0BUgd2ZXJzaW9uEjYKCGFkYXB0ZXJzGAIgAygLMg8udm9sdGhhLkFkYXB0ZXJCCeL2zR0ECgJpZFIIYWRhcHRlcnMSSQoPbG9naWNhbF9kZXZpY2VzGAMgAygLMhUudm9sdGhhLkxvZ2ljYWxEZXZpY2VCCeL2zR0ECgJpZFIObG9naWNhbERldmljZXMSMwoHZGV2aWNlcxgEIAMoCzIOLnZvbHRoYS5EZXZpY2VCCeL2zR0ECgJpZFIHZGV2aWNlcxJACgxkZXZpY2VfdHlwZXMYBSADKAsyEi52b2x0aGEuRGV2aWNlVHlwZUIJ4vbNHQQKAmlkUgtkZXZpY2VUeXBlcxJDCg1kZXZpY2VfZ3JvdXBzGAYgAygLMhMudm9sdGhhLkRldmljZUdyb3VwQgni9s0dBAoCaWRSDGRldmljZUdyb3VwcxJDCg1hbGFybV9maWx0ZXJzGAcgAygLMhMudm9sdGhhLkFsYXJtRmlsdGVyQgni9s0dBAoCaWRSDGFsYXJtRmlsdGVycxJRChFvbWNpX21pYl9kYXRhYmFzZRgcIAMoCzITLm9tY2kuTWliRGV2aWNlRGF0YUIQ4vbNHQsKCWRldmljZV9pZFIPb21jaU1pYkRhdGFiYXNlElgKE29tY2lfYWxhcm1fZGF0YWJhc2UYHSADKAsyFi5hbGFybS5BbGFybURldmljZURhdGFCEOL2zR0LCglkZXZpY2VfaWRSEW9tY2lBbGFybURhdGFiYXNlOgX49s0dASKsAQoQU2VsZlRlc3RSZXNwb25zZRI/CgZyZXN1bHQYASABKA4yJy52b2x0aGEuU2VsZlRlc3RSZXNwb25zZS5TZWxmVGVzdFJlc3VsdFIGcmVzdWx0IlAKDlNlbGZUZXN0UmVzdWx0EgsKB1NVQ0NFU1MQABILCgdGQUlMVVJFEAESEQoNTk9UX1NVUFBPUlRFRBACEhEKDVVOS05PV05fRVJST1IQAzoF8PbNHQAiTwoRT2ZBZ2VudFN1YnNjcmliZXISHQoKb2ZhZ2VudF9pZBgBIAEoCVIJb2ZhZ2VudElkEhsKCXZvbHRoYV9pZBgCIAEoCVIIdm9sdGhhSWQiOwoKTWVtYmVyc2hpcBIdCgpncm91cF9uYW1lGAEgASgJUglncm91cE5hbWUSDgoCaWQYAiABKAlSAmlkMqgvCg1Wb2x0aGFTZXJ2aWNlEk8KDlVwZGF0ZUxvZ0xldmVsEg8udm9sdGhhLkxvZ2dpbmcaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiFILT5JMCDhIML2FwaS92MS9sb2dzElcKDUdldE1lbWJlcnNoaXASFi5nb29nbGUucHJvdG9idWYuRW1wdHkaEi52b2x0aGEuTWVtYmVyc2hpcCIagtPkkwIUEhIvYXBpL3YxL21lbWJlcnNoaXASXQoQVXBkYXRlTWVtYmVyc2hpcBISLnZvbHRoYS5NZW1iZXJzaGlwGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ih2C0+STAhciEi9hcGkvdjEvbWVtYmVyc2hpcDoBKhJECglHZXRWb2x0aGESFi5nb29nbGUucHJvdG9idWYuRW1wdHkaDi52b2x0aGEuVm9sdGhhIg+C0+STAgkSBy9hcGkvdjESdQoRTGlzdENvcmVJbnN0YW5jZXMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaFS52b2x0aGEuQ29yZUluc3RhbmNlcyIxgtPkkwITEhEvYXBpL3YxL2luc3RhbmNlc4r3zR0HCgVpdGVtc4r3zR0HEgVpdGVtcxJTCg9HZXRDb3JlSW5zdGFuY2USCi52b2x0aGEuSUQaFC52b2x0aGEuQ29yZUluc3RhbmNlIh6C0+STAhgSFi9hcGkvdjEvaW5zdGFuY2VzL3tpZH0SYQoMTGlzdEFkYXB0ZXJzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhAudm9sdGhhLkFkYXB0ZXJzIieC0+STAhISEC9hcGkvdjEvYWRhcHRlcnOK980dCgoIYWRhcHRlcnMSewoSTGlzdExvZ2ljYWxEZXZpY2VzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhYudm9sdGhhLkxvZ2ljYWxEZXZpY2VzIjWC0+STAhkSFy9hcGkvdjEvbG9naWNhbF9kZXZpY2VzivfNHREKD2xvZ2ljYWxfZGV2aWNlcxJbChBHZXRMb2dpY2FsRGV2aWNlEgoudm9sdGhhLklEGhUudm9sdGhhLkxvZ2ljYWxEZXZpY2UiJILT5JMCHhIcL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfRJyChZMaXN0TG9naWNhbERldmljZVBvcnRzEgoudm9sdGhhLklEGhQudm9sdGhhLkxvZ2ljYWxQb3J0cyI2gtPkkwIkEiIvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L3BvcnRzivfNHQcKBXBvcnRzEoMBChRHZXRMb2dpY2FsRGV2aWNlUG9ydBIVLnZvbHRoYS5Mb2dpY2FsUG9ydElkGhMudm9sdGhhLkxvZ2ljYWxQb3J0Ij+C0+STAi4SLC9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vcG9ydHMve3BvcnRfaWR9ivfNHQYKBHBvcnQShQEKF0VuYWJsZUxvZ2ljYWxEZXZpY2VQb3J0EhUudm9sdGhhLkxvZ2ljYWxQb3J0SWQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiO4LT5JMCNSIzL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9wb3J0cy97cG9ydF9pZH0vZW5hYmxlEocBChhEaXNhYmxlTG9naWNhbERldmljZVBvcnQSFS52b2x0aGEuTG9naWNhbFBvcnRJZBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSI8gtPkkwI2IjQvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L3BvcnRzL3twb3J0X2lkfS9kaXNhYmxlEnwKFkxpc3RMb2dpY2FsRGV2aWNlRmxvd3MSCi52b2x0aGEuSUQaEi5vcGVuZmxvd18xMy5GbG93cyJCgtPkkwIkEiIvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L2Zsb3dzivfNHQcKBWZsb3dzivfNHQcSBWl0ZW1zEoMBChxVcGRhdGVMb2dpY2FsRGV2aWNlRmxvd1RhYmxlEhwub3BlbmZsb3dfMTMuRmxvd1RhYmxlVXBkYXRlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ii2C0+STAiciIi9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vZmxvd3M6ASoShAEKHVVwZGF0ZUxvZ2ljYWxEZXZpY2VNZXRlclRhYmxlEhsub3BlbmZsb3dfMTMuTWV0ZXJNb2RVcGRhdGUaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiLoLT5JMCKCIjL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9tZXRlcnM6ASoSewocR2V0TWV0ZXJTdGF0c09mTG9naWNhbERldmljZRIKLnZvbHRoYS5JRBocLm9wZW5mbG93XzEzLk1ldGVyU3RhdHNSZXBseSIxgtPkkwIrEikvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L21ldGVyc19zdGF0cxKSAQobTGlzdExvZ2ljYWxEZXZpY2VGbG93R3JvdXBzEgoudm9sdGhhLklEGhcub3BlbmZsb3dfMTMuRmxvd0dyb3VwcyJOgtPkkwIqEigvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L2Zsb3dfZ3JvdXBzivfNHQ0KC2Zsb3dfZ3JvdXBzivfNHQcSBWl0ZW1zEpMBCiFVcGRhdGVMb2dpY2FsRGV2aWNlRmxvd0dyb3VwVGFibGUSIS5vcGVuZmxvd18xMy5GbG93R3JvdXBUYWJsZVVwZGF0ZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIzgtPkkwItIigvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L2Zsb3dfZ3JvdXBzOgEqEl0KC0xpc3REZXZpY2VzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Gg8udm9sdGhhLkRldmljZXMiJYLT5JMCERIPL2FwaS92MS9kZXZpY2VzivfNHQkKB2RldmljZXMSZAoNTGlzdERldmljZUlkcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoLLnZvbHRoYS5JRHMiLoLT5JMCExIRL2FwaS92MS9kZXZpY2VpZHOK980dBAoCaWSK980dBxIFaXRlbXMSVQoQUmVjb25jaWxlRGV2aWNlcxILLnZvbHRoYS5JRHMaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiHILT5JMCFiIRL2FwaS92MS9kZXZpY2VpZHM6ASoSRQoJR2V0RGV2aWNlEgoudm9sdGhhLklEGg4udm9sdGhhLkRldmljZSIcgtPkkwIWEhQvYXBpL3YxL2RldmljZXMve2lkfRJKCgxDcmVhdGVEZXZpY2USDi52b2x0aGEuRGV2aWNlGg4udm9sdGhhLkRldmljZSIagtPkkwIUIg8vYXBpL3YxL2RldmljZXM6ASoSVwoMRW5hYmxlRGV2aWNlEgoudm9sdGhhLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiOC0+STAh0iGy9hcGkvdjEvZGV2aWNlcy97aWR9L2VuYWJsZRJZCg1EaXNhYmxlRGV2aWNlEgoudm9sdGhhLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiSC0+STAh4iHC9hcGkvdjEvZGV2aWNlcy97aWR9L2Rpc2FibGUSVwoMUmVib290RGV2aWNlEgoudm9sdGhhLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiOC0+STAh0iGy9hcGkvdjEvZGV2aWNlcy97aWR9L3JlYm9vdBJXCgxEZWxldGVEZXZpY2USCi52b2x0aGEuSUQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiI4LT5JMCHSobL2FwaS92MS9kZXZpY2VzL3tpZH0vZGVsZXRlEnUKDURvd25sb2FkSW1hZ2USFS52b2x0aGEuSW1hZ2VEb3dubG9hZBoVLnZvbHRoYS5PcGVyYXRpb25SZXNwIjaC0+STAjAiKy9hcGkvdjEvZGV2aWNlcy97aWR9L2ltYWdlX2Rvd25sb2Fkcy97bmFtZX06ASoSggEKFkdldEltYWdlRG93bmxvYWRTdGF0dXMSFS52b2x0aGEuSW1hZ2VEb3dubG9hZBoVLnZvbHRoYS5JbWFnZURvd25sb2FkIjqC0+STAjQSMi9hcGkvdjEvZGV2aWNlcy97aWR9L2ltYWdlX2Rvd25sb2Fkcy97bmFtZX0vc3RhdHVzEnUKEEdldEltYWdlRG93bmxvYWQSFS52b2x0aGEuSW1hZ2VEb3dubG9hZBoVLnZvbHRoYS5JbWFnZURvd25sb2FkIjOC0+STAi0SKy9hcGkvdjEvZGV2aWNlcy97aWR9L2ltYWdlX2Rvd25sb2Fkcy97bmFtZX0SZgoSTGlzdEltYWdlRG93bmxvYWRzEgoudm9sdGhhLklEGhYudm9sdGhhLkltYWdlRG93bmxvYWRzIiyC0+STAiYSJC9hcGkvdjEvZGV2aWNlcy97aWR9L2ltYWdlX2Rvd25sb2FkcxJ4ChNDYW5jZWxJbWFnZURvd25sb2FkEhUudm9sdGhhLkltYWdlRG93bmxvYWQaFS52b2x0aGEuT3BlcmF0aW9uUmVzcCIzgtPkkwItKisvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMve25hbWV9EogBChNBY3RpdmF0ZUltYWdlVXBkYXRlEhUudm9sdGhhLkltYWdlRG93bmxvYWQaFS52b2x0aGEuT3BlcmF0aW9uUmVzcCJDgtPkkwI9IjgvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMve25hbWV9L2ltYWdlX3VwZGF0ZToBKhKGAQoRUmV2ZXJ0SW1hZ2VVcGRhdGUSFS52b2x0aGEuSW1hZ2VEb3dubG9hZBoVLnZvbHRoYS5PcGVyYXRpb25SZXNwIkOC0+STAj0iOC9hcGkvdjEvZGV2aWNlcy97aWR9L2ltYWdlX2Rvd25sb2Fkcy97bmFtZX0vaW1hZ2VfcmV2ZXJ0OgEqElwKD0xpc3REZXZpY2VQb3J0cxIKLnZvbHRoYS5JRBoNLnZvbHRoYS5Qb3J0cyIugtPkkwIcEhovYXBpL3YxL2RldmljZXMve2lkfS9wb3J0c4r3zR0HCgVwb3J0cxJdChNMaXN0RGV2aWNlUG1Db25maWdzEgoudm9sdGhhLklEGhEudm9sdGhhLlBtQ29uZmlncyIngtPkkwIhEh8vYXBpL3YxL2RldmljZXMve2lkfS9wbV9jb25maWdzEm4KFVVwZGF0ZURldmljZVBtQ29uZmlncxIRLnZvbHRoYS5QbUNvbmZpZ3MaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiKoLT5JMCJCIfL2FwaS92MS9kZXZpY2VzL3tpZH0vcG1fY29uZmlnczoBKhJtCg9MaXN0RGV2aWNlRmxvd3MSCi52b2x0aGEuSUQaEi5vcGVuZmxvd18xMy5GbG93cyI6gtPkkwIcEhovYXBpL3YxL2RldmljZXMve2lkfS9mbG93c4r3zR0HCgVmbG93c4r3zR0HEgVpdGVtcxKDAQoUTGlzdERldmljZUZsb3dHcm91cHMSCi52b2x0aGEuSUQaFy5vcGVuZmxvd18xMy5GbG93R3JvdXBzIkaC0+STAiISIC9hcGkvdjEvZGV2aWNlcy97aWR9L2Zsb3dfZ3JvdXBzivfNHQ0KC2Zsb3dfZ3JvdXBzivfNHQcSBWl0ZW1zEm8KD0xpc3REZXZpY2VUeXBlcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoTLnZvbHRoYS5EZXZpY2VUeXBlcyIvgtPkkwIWEhQvYXBpL3YxL2RldmljZV90eXBlc4r3zR0OCgxkZXZpY2VfdHlwZXMSUgoNR2V0RGV2aWNlVHlwZRIKLnZvbHRoYS5JRBoSLnZvbHRoYS5EZXZpY2VUeXBlIiGC0+STAhsSGS9hcGkvdjEvZGV2aWNlX3R5cGVzL3tpZH0ScwoQTGlzdERldmljZUdyb3VwcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoULnZvbHRoYS5EZXZpY2VHcm91cHMiMYLT5JMCFxIVL2FwaS92MS9kZXZpY2VfZ3JvdXBzivfNHQ8KDWRldmljZV9ncm91cHMSRgoQU3RyZWFtUGFja2V0c091dBIWLm9wZW5mbG93XzEzLlBhY2tldE91dBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIAKAESRQoQUmVjZWl2ZVBhY2tldHNJbhIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoVLm9wZW5mbG93XzEzLlBhY2tldEluIgAwARJLChNSZWNlaXZlQ2hhbmdlRXZlbnRzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ghgub3BlbmZsb3dfMTMuQ2hhbmdlRXZlbnQiADABElUKDkdldERldmljZUdyb3VwEgoudm9sdGhhLklEGhMudm9sdGhhLkRldmljZUdyb3VwIiKC0+STAhwSGi9hcGkvdjEvZGV2aWNlX2dyb3Vwcy97aWR9El8KEUNyZWF0ZUFsYXJtRmlsdGVyEhMudm9sdGhhLkFsYXJtRmlsdGVyGhMudm9sdGhhLkFsYXJtRmlsdGVyIiCC0+STAhoiFS9hcGkvdjEvYWxhcm1fZmlsdGVyczoBKhJVCg5HZXRBbGFybUZpbHRlchIKLnZvbHRoYS5JRBoTLnZvbHRoYS5BbGFybUZpbHRlciIigtPkkwIcEhovYXBpL3YxL2FsYXJtX2ZpbHRlcnMve2lkfRJkChFVcGRhdGVBbGFybUZpbHRlchITLnZvbHRoYS5BbGFybUZpbHRlchoTLnZvbHRoYS5BbGFybUZpbHRlciIlgtPkkwIfGhovYXBpL3YxL2FsYXJtX2ZpbHRlcnMve2lkfToBKhJbChFEZWxldGVBbGFybUZpbHRlchIKLnZvbHRoYS5JRBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIigtPkkwIcKhovYXBpL3YxL2FsYXJtX2ZpbHRlcnMve2lkfRJfChBMaXN0QWxhcm1GaWx0ZXJzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhQudm9sdGhhLkFsYXJtRmlsdGVycyIdgtPkkwIXEhUvYXBpL3YxL2FsYXJtX2ZpbHRlcnMSTAoJR2V0SW1hZ2VzEgoudm9sdGhhLklEGg4udm9sdGhhLkltYWdlcyIjgtPkkwIdEhsvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZXMSWAoIU2VsZlRlc3QSCi52b2x0aGEuSUQaGC52b2x0aGEuU2VsZlRlc3RSZXNwb25zZSImgtPkkwIgIh4vYXBpL3YxL2RldmljZXMve2lkfS9zZWxmX3Rlc3QSVgoQR2V0TWliRGV2aWNlRGF0YRIKLnZvbHRoYS5JRBoTLm9tY2kuTWliRGV2aWNlRGF0YSIhgtPkkwIbEhkvYXBpL3YxL29wZW5vbWNpL3tpZH0vbWliEl0KEkdldEFsYXJtRGV2aWNlRGF0YRIKLnZvbHRoYS5JRBoWLmFsYXJtLkFsYXJtRGV2aWNlRGF0YSIjgtPkkwIdEhsvYXBpL3YxL29wZW5vbWNpL3tpZH0vYWxhcm0ScwoNU2ltdWxhdGVBbGFybRIcLnZvbHRoYS5TaW11bGF0ZUFsYXJtUmVxdWVzdBoVLnZvbHRoYS5PcGVyYXRpb25SZXNwIi2C0+STAiciIi9hcGkvdjEvZGV2aWNlcy97aWR9L3NpbXVsYXRlX2xhcm06ASoSQwoJU3Vic2NyaWJlEhkudm9sdGhhLk9mQWdlbnRTdWJzY3JpYmVyGhkudm9sdGhhLk9mQWdlbnRTdWJzY3JpYmVyIgBCaQoTb3JnLm9wZW5jb3JkLnZvbHRoYUIMVm9sdGhhUHJvdG9zWitnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvZ28vdm9sdGhhqgIWT3BlbmNvcmQuVm9sdGhhLlZvbHRoYUrOawoHEgUGANoEAQpcCgEMEgMGABIyUgogVG9wLWxldmVsIFZvbHRoYSBBUEkgZGVmaW5pdGlvbgoKIEZvciBkZXRhaWxzLCBzZWUgaW5kaXZpZHVhbCBkZWZpbml0aW9uIGZpbGVzLgoKCAoBCBIDCABCCgkKAggLEgMIAEIKCAoBAhIDCgAPCgkKAgMAEgMMACYKCQoCAwESAw0AJQoJCgIDAhIDDwApCgkKAgoAEgMPBw0KCQoCAwMSAxAAKwoJCgIKARIDEAcNCgkKAgMEEgMRACsKCQoCCgISAxEHDQoJCgIDBRIDEgAzCgkKAgoDEgMSBw0KCQoCAwYSAxMAKwoJCgIKBBIDEwcNCgkKAgMHEgMUACwKCQoCCgUSAxQHDQoJCgIDCBIDFQAwCgkKAgoGEgMVBw0KCQoCAwkSAxcAKQoJCgIDChIDGAArCgkKAgMLEgMZACoKCAoBCBIDGwAsCgkKAggBEgMbACwKCAoBCBIDHAAtCgkKAggIEgMcAC0KCAoB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