CvkqChlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvEg9nb29nbGUucHJvdG9idWYiNgoDQW55EhkKCHR5cGVfdXJsGAEgASgJUgd0eXBlVXJsEhQKBXZhbHVlGAIgASgMUgV2YWx1ZUJvChNjb20uZ29vZ2xlLnByb3RvYnVmQghBbnlQcm90b1ABWiVnaXRodWIuY29tL2dvbGFuZy9wcm90b2J1Zi9wdHlwZXMvYW55ogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSpkpCgcSBR4AigEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgCBcKCAoBCBIDIgA7CgsKBAjnBwASAyIAOwoMCgUI5wcAAhIDIgcXCg0KBgjnBwACABIDIgcXCg4KBwjnBwACAAESAyIHFwoMCgUI5wcABxIDIho6CggKAQgSAyMAPAoLCgQI5wcBEgMjADwKDAoFCOcHAQISAyMHEQoNCgYI5wcBAgASAyMHEQoOCgcI5wcBAgABEgMjBxEKDAoFCOcHAQcSAyMUOwoICgEIEgMkACwKCwoECOcHAhIDJAAsCgwKBQjnBwICEgMkBxMKDQoGCOcHAgIAEgMkBxMKDgoHCOcHAgIAARIDJAcTCgwKBQjnBwIHEgMkFisKCAoBCBIDJQApCgsKBAjnBwMSAyUAKQoMCgUI5wcDAhIDJQcbCg0KBgjnBwMCABIDJQcbCg4KBwjnBwMCAAESAyUHGwoMCgUI5wcDBxIDJR4oCggKAQgSAyYAIgoLCgQI5wcEEgMmACIKDAoFCOcHBAISAyYHGgoNCgYI5wcEAgASAyYHGgoOCgcI5wcEAgABEgMmBxoKDAoFCOcHBAMSAyYdIQoICgEIEgMnACEKCwoECOcHBRIDJwAhCgwKBQjnBwUCEgMnBxgKDQoGCOcHBQIAEgMnBxgKDgoHCOcHBQIAARIDJwcYCgwKBQjnBwUHEgMnGyAKgQ8KAgQAEgVvAIoBARrzDiBgQW55YCBjb250YWlucyBhbiBhcmJpdHJhcnkgc2VyaWFsaXplZCBwcm90b2NvbCBidWZmZXIgbWVzc2FnZSBhbG9uZyB3aXRoIGEKIFVSTCB0aGF0IGRlc2NyaWJlcyB0aGUgdHlwZSBvZiB0aGUgc2VyaWFsaXplZCBtZXNzYWdlLgoKIFByb3RvYnVmIGxpYnJhcnkgcHJvdmlkZXMgc3VwcG9ydCB0byBwYWNrL3VucGFjayBBbnkgdmFsdWVzIGluIHRoZSBmb3JtCiBvZiB1dGlsaXR5IGZ1bmN0aW9ucyBvciBhZGRpdGlvbmFsIGdlbmVyYXRlZCBtZXRob2RzIG9mIHRoZSBBbnkgdHlwZS4KCiBFeGFtcGxlIDE6IFBhY2sgYW5kIHVucGFjayBhIG1lc3NhZ2UgaW4gQysrLgoKICAgICBGb28gZm9vID0gLi4uOwogICAgIEFueSBhbnk7CiAgICAgYW55LlBhY2tGcm9tKGZvbyk7CiAgICAgLi4uCiAgICAgaWYgKGFueS5VbnBhY2tUbygmZm9vKSkgewogICAgICAgLi4uCiAgICAgfQoKIEV4YW1wbGUgMjogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBKYXZhLgoKICAgICBGb28gZm9vID0gLi4uOwogICAgIEFueSBhbnkgPSBBbnkucGFjayhmb28pOwogICAgIC4uLgogICAgIGlmIChhbnkuaXMoRm9vLmNsYXNzKSkgewogICAgICAgZm9vID0gYW55LnVucGFjayhGb28uY2xhc3MpOwogICAgIH0KCiAgRXhhbXBsZSAzOiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIFB5dGhvbi4KCiAgICAgZm9vID0gRm9vKC4uLikKICAgICBhbnkgPSBBbnkoKQogICAgIGFueS5QYWNrKGZvbykKICAgICAuLi4KICAgICBpZiBhbnkuSXMoRm9vLkRFU0NSSVBUT1IpOgogICAgICAgYW55LlVucGFjayhmb28pCiAgICAgICAuLi4KCiBUaGUgcGFjayBtZXRob2RzIHByb3ZpZGVkIGJ5IHByb3RvYnVmIGxpYnJhcnkgd2lsbCBieSBkZWZhdWx0IHVzZQogJ3R5cGUuZ29vZ2xlYXBpcy5jb20vZnVsbC50eXBlLm5hbWUnIGFzIHRoZSB0eXBlIFVSTCBhbmQgdGhlIHVucGFjawogbWV0aG9kcyBvbmx5IHVzZSB0aGUgZnVsbHkgcXVhbGlmaWVkIHR5cGUgbmFtZSBhZnRlciB0aGUgbGFzdCAnLycKIGluIHRoZSB0eXBlIFVSTCwgZm9yIGV4YW1wbGUgImZvby5iYXIuY29tL3gveS56IiB3aWxsIHlpZWxkIHR5cGUKIG5hbWUgInkueiIuCgoKIEpTT04KID09PT0KIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIGFuIGBBbnlgIHZhbHVlIHVzZXMgdGhlIHJlZ3VsYXIKIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkZXNlcmlhbGl6ZWQsIGVtYmVkZGVkIG1lc3NhZ2UsIHdpdGggYW4KIGFkZGl0aW9uYWwgZmllbGQgYEB0eXBlYCB3aGljaCBjb250YWlucyB0aGUgdHlwZSBVUkwuIEV4YW1wbGU6CgogICAgIHBhY2thZ2UgZ29vZ2xlLnByb2ZpbGU7CiAgICAgbWVzc2FnZSBQZXJzb24gewogICAgICAgc3RyaW5nIGZpcnN0X25hbWUgPSAxOwogICAgICAgc3RyaW5nIGxhc3RfbmFtZSA9IDI7CiAgICAgfQoKICAgICB7CiAgICAgICAiQHR5cGUiOiAidHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucHJvZmlsZS5QZXJzb24iLAogICAgICAgImZpcnN0TmFtZSI6IDxzdHJpbmc+LAogICAgICAgImxhc3ROYW1lIjogPHN0cmluZz4KICAgICB9CgogSWYgdGhlIGVtYmVkZGVkIG1lc3NhZ2UgdHlwZSBpcyB3ZWxsLWtub3duIGFuZCBoYXMgYSBjdXN0b20gSlNPTgogcmVwcmVzZW50YXRpb24sIHRoYXQgcmVwcmVzZW50YXRpb24gd2lsbCBiZSBlbWJlZGRlZCBhZGRpbmcgYSBmaWVsZAogYHZhbHVlYCB3aGljaCBob2xkcyB0aGUgY3VzdG9tIEpTT04gaW4gYWRkaXRpb24gdG8gdGhlIGBAdHlwZWAKIGZpZWxkLiBFeGFtcGxlIChmb3IgbWVzc2FnZSBbZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uXVtdKToKCiAgICAgewogICAgICAgIkB0eXBlIjogInR5cGUuZ29vZ2xlYXBpcy5jb20vZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uIiwKICAgICAgICJ2YWx1ZSI6ICIxLjIxMnMiCiAgICAgfQoKCgoKAwQAARIDbwgLCuQHCgQEAAIAEgSGAQIWGtUHIEEgVVJML3Jlc291cmNlIG5hbWUgd2hvc2UgY29udGVudCBkZXNjcmliZXMgdGhlIHR5cGUgb2YgdGhlCiBzZXJpYWxpemVkIHByb3RvY29sIGJ1ZmZlciBtZXNzYWdlLgoKIEZvciBVUkxzIHdoaWNoIHVzZSB0aGUgc2NoZW1lIGBodHRwYCwgYGh0dHBzYCwgb3Igbm8gc2NoZW1lLCB0aGUKIGZvbGxvd2luZyByZXN0cmljdGlvbnMgYW5kIGludGVycHJldGF0aW9ucyBhcHBseToKCiAqIElmIG5vIHNjaGVtZSBpcyBwcm92aWRlZCwgYGh0dHBzYCBpcyBhc3N1bWVkLgogKiBUaGUgbGFzdCBzZWdtZW50IG9mIHRoZSBVUkwncyBwYXRoIG11c3QgcmVwcmVzZW50IHRoZSBmdWxseQogICBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgdHlwZSAoYXMgaW4gYHBhdGgvZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uYCkuCiAgIFRoZSBuYW1lIHNob3VsZCBiZSBpbiBhIGNhbm9uaWNhbCBmb3JtIChlLmcuLCBsZWFkaW5nICIuIiBpcwogICBub3QgYWNjZXB0ZWQpLgogKiBBbiBIVFRQIEdFVCBvbiB0aGUgVVJMIG11c3QgeWllbGQgYSBbZ29vZ2xlLnByb3RvYnVmLlR5cGVdW10KICAgdmFsdWUgaW4gYmluYXJ5IGZvcm1hdCwgb3IgcHJvZHVjZSBhbiBlcnJvci4KICogQXBwbGljYXRpb25zIGFyZSBhbGxvd2VkIHRvIGNhY2hlIGxvb2t1cCByZXN1bHRzIGJhc2VkIG9uIHRoZQogICBVUkwsIG9yIGhhdmUgdGhlbSBwcmVjb21waWxlZCBpbnRvIGEgYmluYXJ5IHRvIGF2b2lkIGFueQogICBsb29rdXAuIFRoZXJlZm9yZSwgYmluYXJ5IGNvbXBhdGliaWxpdHkgbmVlZHMgdG8gYmUgcHJlc2VydmVkCiAgIG9uIGNoYW5nZXMgdG8gdHlwZXMuIChVc2UgdmVyc2lvbmVkIHR5cGUgbmFtZXMgdG8gbWFuYWdlCiAgIGJyZWFraW5nIGNoYW5nZXMuKQoKIFNjaGVtZXMgb3RoZXIgdGhhbiBgaHR0cGAsIGBodHRwc2AgKG9yIHRoZSBlbXB0eSBzY2hlbWUpIG1pZ2h0IGJlCiB1c2VkIHdpdGggaW1wbGVtZW50YXRpb24gc3BlY2lmaWMgc2VtYW50aWNzLgoKCg4KBQQAAgAEEgWGAQJvDQoNCgUEAAIABRIEhgECCAoNCgUEAAIAARIEhgEJEQoNCgUEAAIAAxIEhgEUFQpXCgQEAAIBEgSJAQISGkkgTXVzdCBiZSBhIHZhbGlkIHNlcmlhbGl6ZWQgcHJvdG9jb2wgYnVmZmVyIG9mIHRoZSBhYm92ZSBzcGVjaWZpZWQgdHlwZS4KCg8KBQQAAgEEEgaJAQKGARYKDQoFBAACAQUSBIkBAgcKDQoFBAACAQESBIkBCA0KDQoFBAACAQMSBIkBEBFiBnByb3RvMwqt6AIKIGdvb2dsZS9wcm90b2J1Zi9kZXNjcmlwdG9yLnByb3RvEg9nb29nbGUucHJvdG9idWYiTQoRRmlsZURlc2NyaXB0b3JTZXQSOAoEZmlsZRgBIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5GaWxlRGVzY3JpcHRvclByb3RvUgRmaWxlIuQEChNGaWxlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSGAoHcGFja2FnZRgCIAEoCVIHcGFja2FnZRIeCgpkZXBlbmRlbmN5GAMgAygJUgpkZXBlbmRlbmN5EisKEXB1YmxpY19kZXBlbmRlbmN5GAogAygFUhBwdWJsaWNEZXBlbmRlbmN5EicKD3dlYWtfZGVwZW5kZW5jeRgLIAMoBVIOd2Vha0RlcGVuZGVuY3kSQwoMbWVzc2FnZV90eXBlGAQgAygLMiAuZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90b1ILbWVzc2FnZVR5cGUSQQoJZW51bV90eXBlGAUgAygLMiQuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9yUHJvdG9SCGVudW1UeXBlEkEKB3NlcnZpY2UYBiADKAsyJy5nb29nbGUucHJvdG9idWYuU2VydmljZURlc2NyaXB0b3JQcm90b1IHc2VydmljZRJDCglleHRlbnNpb24YByADKAsyJS5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG9SCWV4dGVuc2lvbhI2CgdvcHRpb25zGAggASgLMhwuZ29vZ2xlLnByb3RvYnVmLkZpbGVPcHRpb25zUgdvcHRpb25zEkkKEHNvdXJjZV9jb2RlX2luZm8YCSABKAsyHy5nb29nbGUucHJvdG9idWYuU291cmNlQ29kZUluZm9SDnNvdXJjZUNvZGVJbmZvEhYKBnN5bnRheBgMIAEoCVIGc3ludGF4IvcFCg9EZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRI7CgVmaWVsZBgCIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90b1IFZmllbGQSQwoJZXh0ZW5zaW9uGAYgAygLMiUuZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvUglleHRlbnNpb24SQQoLbmVzdGVkX3R5cGUYAyADKAsyIC5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvUgpuZXN0ZWRUeXBlEkEKCWVudW1fdHlwZRgEIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5FbnVtRGVzY3JpcHRvclByb3RvUghlbnVtVHlwZRJYCg9leHRlbnNpb25fcmFuZ2UYBSADKAsyLy5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvLkV4dGVuc2lvblJhbmdlUg5leHRlbnNpb25SYW5nZRJECgpvbmVvZl9kZWNsGAggAygLMiUuZ29vZ2xlLnByb3RvYnVmLk9uZW9mRGVzY3JpcHRvclByb3RvUglvbmVvZkRlY2wSOQoHb3B0aW9ucxgHIAEoCzIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9uc1IHb3B0aW9ucxJVCg5yZXNlcnZlZF9yYW5nZRgJIAMoCzIuLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG8uUmVzZXJ2ZWRSYW5nZVINcmVzZXJ2ZWRSYW5nZRIjCg1yZXNlcnZlZF9uYW1lGAogAygJUgxyZXNlcnZlZE5hbWUaOAoORXh0ZW5zaW9uUmFuZ2USFAoFc3RhcnQYASABKAVSBXN0YXJ0EhAKA2VuZBgCIAEoBVIDZW5kGjcKDVJlc2VydmVkUmFuZ2USFAoFc3RhcnQYASABKAVSBXN0YXJ0EhAKA2VuZBgCIAEoBVIDZW5kIpgGChRGaWVsZERlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEhYKBm51bWJlchgDIAEoBVIGbnVtYmVyEkEKBWxhYmVsGAQgASgOMisuZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvLkxhYmVsUgVsYWJlbBI+CgR0eXBlGAUgASgOMiouZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvLlR5cGVSBHR5cGUSGwoJdHlwZV9uYW1lGAYgASgJUgh0eXBlTmFtZRIaCghleHRlbmRlZRgCIAEoCVIIZXh0ZW5kZWUSIwoNZGVmYXVsdF92YWx1ZRgHIAEoCVIMZGVmYXVsdFZhbHVlEh8KC29uZW9mX2luZGV4GAkgASgFUgpvbmVvZkluZGV4EhsKCWpzb25fbmFtZRgKIAEoCVIIanNvbk5hbWUSNwoHb3B0aW9ucxgIIAEoCzIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnNSB29wdGlvbnMitgIKBFR5cGUSDwoLVFlQRV9ET1VCTEUQARIOCgpUWVBFX0ZMT0FUEAISDgoKVFlQRV9JTlQ2NBADEg8KC1RZUEVfVUlOVDY0EAQSDgoKVFlQRV9JTlQzMhAFEhAKDFRZUEVfRklYRUQ2NBAGEhAKDFRZUEVfRklYRUQzMhAHEg0KCVRZUEVfQk9PTBAIEg8KC1RZUEVfU1RSSU5HEAkSDgoKVFlQRV9HUk9VUBAKEhAKDFRZUEVfTUVTU0FHRRALEg4KClRZUEVfQllURVMQDBIPCgtUWVBFX1VJTlQzMhANEg0KCVRZUEVfRU5VTRAOEhEKDVRZUEVfU0ZJWEVEMzIQDxIRCg1UWVBFX1NGSVhFRDY0EBASDwoLVFlQRV9TSU5UMzIQERIPCgtUWVBFX1NJTlQ2NBASIkMKBUxhYmVsEhIKDkxBQkVMX09QVElPTkFMEAESEgoOTEFCRUxfUkVRVUlSRUQQAhISCg5MQUJFTF9SRVBFQVRFRBADImMKFE9uZW9mRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSNwoHb3B0aW9ucxgCIAEoCzIdLmdvb2dsZS5wcm90b2J1Zi5PbmVvZk9wdGlvbnNSB29wdGlvbnMiogEKE0VudW1EZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRI/CgV2YWx1ZRgCIAMoCzIpLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVEZXNjcmlwdG9yUHJvdG9SBXZhbHVlEjYKB29wdGlvbnMYAyABKAsyHC5nb29nbGUucHJvdG9idWYuRW51bU9wdGlvbnNSB29wdGlvbnMigwEKGEVudW1WYWx1ZURlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEhYKBm51bWJlchgCIAEoBVIGbnVtYmVyEjsKB29wdGlvbnMYAyABKAsyIS5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlT3B0aW9uc1IHb3B0aW9ucyKnAQoWU2VydmljZURlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEj4KBm1ldGhvZBgCIAMoCzImLmdvb2dsZS5wcm90b2J1Zi5NZXRob2REZXNjcmlwdG9yUHJvdG9SBm1ldGhvZBI5CgdvcHRpb25zGAMgASgLMh8uZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VPcHRpb25zUgdvcHRpb25zIokCChVNZXRob2REZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRIdCgppbnB1dF90eXBlGAIgASgJUglpbnB1dFR5cGUSHwoLb3V0cHV0X3R5cGUYAyABKAlSCm91dHB1dFR5cGUSOAoHb3B0aW9ucxgEIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zUgdvcHRpb25zEjAKEGNsaWVudF9zdHJlYW1pbmcYBSABKAg6BWZhbHNlUg9jbGllbnRTdHJlYW1pbmcSMAoQc2VydmVyX3N0cmVhbWluZxgGIAEoCDoFZmFsc2VSD3NlcnZlclN0cmVhbWluZyLbBwoLRmlsZU9wdGlvbnMSIQoMamF2YV9wYWNrYWdlGAEgASgJUgtqYXZhUGFja2FnZRIwChRqYXZhX291dGVyX2NsYXNzbmFtZRgIIAEoCVISamF2YU91dGVyQ2xhc3NuYW1lEjUKE2phdmFfbXVsdGlwbGVfZmlsZXMYCiABKAg6BWZhbHNlUhFqYXZhTXVsdGlwbGVGaWxlcxJECh1qYXZhX2dlbmVyYXRlX2VxdWFsc19hbmRfaGFzaBgUIAEoCEICGAFSGWphdmFHZW5lcmF0ZUVxdWFsc0FuZEhhc2gSOgoWamF2YV9zdHJpbmdfY2hlY2tfdXRmOBgbIAEoCDoFZmFsc2VSE2phdmFTdHJpbmdDaGVja1V0ZjgSUwoMb3B0aW1pemVfZm9yGAkgASgOMikuZ29vZ2xlLnByb3RvYnVmLkZpbGVPcHRpb25zLk9wdGltaXplTW9kZToFU1BFRURSC29wdGltaXplRm9yEh0KCmdvX3BhY2thZ2UYCyABKAlSCWdvUGFja2FnZRI1ChNjY19nZW5lcmljX3NlcnZpY2VzGBAgASgIOgVmYWxzZVIRY2NHZW5lcmljU2VydmljZXMSOQoVamF2YV9nZW5lcmljX3NlcnZpY2VzGBEgASgIOgVmYWxzZVITamF2YUdlbmVyaWNTZXJ2aWNlcxI1ChNweV9nZW5lcmljX3NlcnZpY2VzGBIgASgIOgVmYWxzZVIRcHlHZW5lcmljU2VydmljZXMSJQoKZGVwcmVjYXRlZBgXIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSLwoQY2NfZW5hYmxlX2FyZW5hcxgfIAEoCDoFZmFsc2VSDmNjRW5hYmxlQXJlbmFzEioKEW9iamNfY2xhc3NfcHJlZml4GCQgASgJUg9vYmpjQ2xhc3NQcmVmaXgSKQoQY3NoYXJwX25hbWVzcGFjZRglIAEoCVIPY3NoYXJwTmFtZXNwYWNlEiEKDHN3aWZ0X3ByZWZpeBgnIAEoCVILc3dpZnRQcmVmaXgSKAoQcGhwX2NsYXNzX3ByZWZpeBgoIAEoCVIOcGhwQ2xhc3NQcmVmaXgSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24iOgoMT3B0aW1pemVNb2RlEgkKBVNQRUVEEAESDQoJQ09ERV9TSVpFEAISEAoMTElURV9SVU5USU1FEAMqCQjoBxCAgICAAkoECCYQJyLRAgoOTWVzc2FnZU9wdGlvbnMSPAoXbWVzc2FnZV9zZXRfd2lyZV9mb3JtYXQYASABKAg6BWZhbHNlUhRtZXNzYWdlU2V0V2lyZUZvcm1hdBJMCh9ub19zdGFuZGFyZF9kZXNjcmlwdG9yX2FjY2Vzc29yGAIgASgIOgVmYWxzZVIcbm9TdGFuZGFyZERlc2NyaXB0b3JBY2Nlc3NvchIlCgpkZXByZWNhdGVkGAMgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBIbCgltYXBfZW50cnkYByABKAhSCG1hcEVudHJ5ElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAJKBAgIEAlKBAgJEAoi4gMKDEZpZWxkT3B0aW9ucxJBCgVjdHlwZRgBIAEoDjIjLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMuQ1R5cGU6BlNUUklOR1IFY3R5cGUSFgoGcGFja2VkGAIgASgIUgZwYWNrZWQSRwoGanN0eXBlGAYgASgOMiQuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5KU1R5cGU6CUpTX05PUk1BTFIGanN0eXBlEhkKBGxhenkYBSABKAg6BWZhbHNlUgRsYXp5EiUKCmRlcHJlY2F0ZWQYAyABKAg6BWZhbHNlUgpkZXByZWNhdGVkEhkKBHdlYWsYCiABKAg6BWZhbHNlUgR3ZWFrElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uIi8KBUNUeXBlEgoKBlNUUklORxAAEggKBENPUkQQARIQCgxTVFJJTkdfUElFQ0UQAiI1CgZKU1R5cGUSDQoJSlNfTk9STUFMEAASDQoJSlNfU1RSSU5HEAESDQoJSlNfTlVNQkVSEAIqCQjoBxCAgICAAkoECAQQBSJzCgxPbmVvZk9wdGlvbnMSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiLAAQoLRW51bU9wdGlvbnMSHwoLYWxsb3dfYWxpYXMYAiABKAhSCmFsbG93QWxpYXMSJQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAkoECAUQBiKeAQoQRW51bVZhbHVlT3B0aW9ucxIlCgpkZXByZWNhdGVkGAEgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACIpwBCg5TZXJ2aWNlT3B0aW9ucxIlCgpkZXByZWNhdGVkGCEgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACIuACCg1NZXRob2RPcHRpb25zEiUKCmRlcHJlY2F0ZWQYISABKAg6BWZhbHNlUgpkZXByZWNhdGVkEnEKEWlkZW1wb3RlbmN5X2xldmVsGCIgASgOMi8uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMuSWRlbXBvdGVuY3lMZXZlbDoTSURFTVBPVEVOQ1lfVU5LTk9XTlIQaWRlbXBvdGVuY3lMZXZlbBJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbiJQChBJZGVtcG90ZW5jeUxldmVsEhcKE0lERU1QT1RFTkNZX1VOS05PV04QABITCg9OT19TSURFX0VGRkVDVFMQARIOCgpJREVNUE9URU5UEAIqCQjoBxCAgICAAiKaAwoTVW5pbnRlcnByZXRlZE9wdGlvbhJBCgRuYW1lGAIgAygLMi0uZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24uTmFtZVBhcnRSBG5hbWUSKQoQaWRlbnRpZmllcl92YWx1ZRgDIAEoCVIPaWRlbnRpZmllclZhbHVlEiwKEnBvc2l0aXZlX2ludF92YWx1ZRgEIAEoBFIQcG9zaXRpdmVJbnRWYWx1ZRIsChJuZWdhdGl2ZV9pbnRfdmFsdWUYBSABKANSEG5lZ2F0aXZlSW50VmFsdWUSIQoMZG91YmxlX3ZhbHVlGAYgASgBUgtkb3VibGVWYWx1ZRIhCgxzdHJpbmdfdmFsdWUYByABKAxSC3N0cmluZ1ZhbHVlEicKD2FnZ3JlZ2F0ZV92YWx1ZRgIIAEoCVIOYWdncmVnYXRlVmFsdWUaSgoITmFtZVBhcnQSGwoJbmFtZV9wYXJ0GAEgAigJUghuYW1lUGFydBIhCgxpc19leHRlbnNpb24YAiACKAhSC2lzRXh0ZW5zaW9uIqcCCg5Tb3VyY2VDb2RlSW5mbxJECghsb2NhdGlvbhgBIAMoCzIoLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb2RlSW5mby5Mb2NhdGlvblIIbG9jYXRpb24azgEKCExvY2F0aW9uEhYKBHBhdGgYASADKAVCAhABUgRwYXRoEhYKBHNwYW4YAiADKAVCAhABUgRzcGFuEikKEGxlYWRpbmdfY29tbWVudHMYAyABKAlSD2xlYWRpbmdDb21tZW50cxIrChF0cmFpbGluZ19jb21tZW50cxgEIAEoCVIQdHJhaWxpbmdDb21tZW50cxI6ChlsZWFkaW5nX2RldGFjaGVkX2NvbW1lbnRzGAYgAygJUhdsZWFkaW5nRGV0YWNoZWRDb21tZW50cyLRAQoRR2VuZXJhdGVkQ29kZUluZm8STQoKYW5ub3RhdGlvbhgBIAMoCzItLmdvb2dsZS5wcm90b2J1Zi5HZW5lcmF0ZWRDb2RlSW5mby5Bbm5vdGF0aW9uUgphbm5vdGF0aW9uGm0KCkFubm90YXRpb24SFgoEcGF0aBgBIAMoBUICEAFSBHBhdGgSHwoLc291cmNlX2ZpbGUYAiABKAlSCnNvdXJjZUZpbGUSFAoFYmVnaW4YAyABKAVSBWJlZ2luEhAKA2VuZBgEIAEoBVIDZW5kQowBChNjb20uZ29vZ2xlLnByb3RvYnVmQhBEZXNjcmlwdG9yUHJvdG9zSAFaPmdpdGh1Yi5jb20vZ29sYW5nL3Byb3RvYnVmL3Byb3RvYy1nZW4tZ28vZGVzY3JpcHRvcjtkZXNjcmlwdG9yogIDR1BCqgIaR29vZ2xlLlByb3RvYnVmLlJlZmxlY3Rpb25KybECCgcSBScAvgYBCqoPCgEMEgMnABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCjLbAiBBdXRob3I6IGtlbnRvbkBnb29nbGUuY29tIChLZW50b24gVmFyZGEpCiAgQmFzZWQgb24gb3JpZ2luYWwgUHJvdG9jb2wgQnVmZmVycyBkZXNpZ24gYnkKICBTYW5qYXkgR2hlbWF3YXQsIEplZmYgRGVhbiwgYW5kIG90aGVycy4KCiBUaGUgbWVzc2FnZXMgaW4gdGhpcyBmaWxlIGRlc2NyaWJlIHRoZSBkZWZpbml0aW9ucyBmb3VuZCBpbiAucHJvdG8gZmlsZXMuCiBBIHZhbGlkIC5wcm90byBmaWxlIGNhbiBiZSB0cmFuc2xhdGVkIGRpcmVjdGx5IHRv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IHBhcnNpbmcgdGltZSwgc28gdGhlIHBhcnNlciBjYW5ub3QKIHN0b3JlIHRoZSB2YWx1ZXMgaW4gdGhlbS4gIEluc3RlYWQgaXQgc3RvcmVzIHRoZW0gaW4gYSBmaWVsZCBpbiB0aGUgKk9wdGlvbnMKIG1lc3NhZ2UgY2FsbGVkIHVuaW50ZXJwcmV0ZWRfb3B0aW9uLiBUaGlzIGZpZWxkIG11c3QgaGF2ZSB0aGUgc2FtZSBuYW1lCiBhY3Jvc3MgYWxsICpPcHRpb25zIG1lc3NhZ2VzLiBXZSB0aGVuIHVzZSB0aGlzIGZpZWxkIHRvIHBvcHVsYXRlIHRoZQogZXh0ZW5zaW9ucyB3aGVuIHdlIGJ1aWxkIGEgZGVzY3JpcHRvciwgYXQgd2hpY2ggcG9pbnQgYWxsIHByb3RvcyBoYXZlIGJlZW4KIHBhcnNlZCBhbmQgc28gYWxsIGV4dGVuc2lvbnMgYXJlIGtub3duLgoKIEV4dGVuc2lvbiBudW1iZXJzIGZvciBjdXN0b20gb3B0aW9ucyBtYXkgYmUgY2hvc2VuIGFzIGZvbGxvd3M6CiAqIEZvciBvcHRpb25zIHdoaWNoIHdpbGwgb25seSBiZSB1c2VkIHdpdGhpbiBhIHNpbmdsZSBhcHBsaWNhdGlvbiBvcgogICBvcmdhbml6YXRpb24sIG9yIGZvciBleHBlcmltZW50YWwgb3B0aW9ucywgdXNlIGZpZWxkIG51bWJlcnMgNTAwMDAKICAgdGhyb3VnaCA5OTk5OS4gIEl0IGlzIHVwIHRvIHlvdSB0byBlbnN1cmUgdGhhdCB5b3UgZG8gbm90IHVzZSB0aGUKICAgc2FtZSBudW1iZXIgZm9yIG11bHRpcGxlIG9wdGlvbnMuCiAqIEZvciBvcHRpb25zIHdoaWNoIHdpbGwgYmUgcHVibGlzaGVkIGFuZCB1c2VkIHB1YmxpY2x5IGJ5IG11bHRpcGxlCiAgIGluZGVwZW5kZW50IGVudGl0aWVzLCBlLW1haWwgcHJvdG9idWYtZ2xvYmFsLWV4dGVuc2lvbi1yZWdpc3RyeUBnb29nbGUuY29tCiAgIHRvIHJlc2VydmUgZXh0ZW5zaW9uIG51bWJlcnMuIFNpbXBseSBwcm92aWRlIHlvdXIgcHJvamVjdCBuYW1lIChlLmcuCiAgIE9iamVjdGl2ZS1DIHBsdWdpbikgYW5kIHlvdXIgcHJvamVjdCB3ZWJzaXRlIChpZiBhdmFpbGFibGUpIC0tIHRoZXJlJ3Mgbm8KICAgbmVlZCB0byBleHBsYWluIGhvdyB5b3UgaW50ZW5kIHRvIHVzZSB0aGVtLiBVc3VhbGx5IHlvdSBvbmx5IG5lZWQgb25lCiAgIGV4dGVuc2lvbiBudW1iZXIuIFlvdSBjYW4gZGVjbGFyZSBtdWx0aXBsZSBvcHRpb25zIHdpdGggb25seSBvbmUgZXh0ZW5zaW9uCiAgIG51bWJlciBieSBwdXR0aW5nIHRoZW0gaW4gYSBzdWItbWVzc2FnZS4gU2VlIHRoZSBDdXN0b20gT3B0aW9ucyBzZWN0aW9uIG9mCiAgIHRoZSBkb2NzIGZvciBleGFtcGxlczoKICAgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy9kb2NzL3Byb3RvI29wdGlvbnMKICAgSWYgdGhpcyB0dXJucyBvdXQgdG8gYmUgcG9wdWxhciwgYSB3ZWIgc2VydmljZSB3aWxsIGJlIHNldCB1cAogICB0byBhdXRvbWF0aWNhbGx5IGFzc2lnbiBvcHRpb24gbnVtYmVycy4KCgsKAwQJARIEngIIEwr0AQoEBAkCABIEpAICIxrlASBTZXRzIHRoZSBKYXZhIHBhY2thZ2Ugd2hlcmUgY2xhc3NlcyBnZW5lcmF0ZWQgZnJvbSB0aGlzIC5wcm90byB3aWxsIGJlCiBwbGFjZWQuICBCeSBkZWZhdWx0LCB0aGUgcHJvdG8gcGFja2FnZSBpcyB1c2VkLCBidXQgdGhpcyBpcyBvZnRlbgogaW5hcHByb3ByaWF0ZSBiZWNhdXNlIHByb3RvIHBhY2thZ2VzIGRvIG5vdCBub3JtYWxseSBzdGFydCB3aXRoIGJhY2t3YXJkcwogZG9tYWluIG5hbWVzLgoKDQoFBAkCAAQSBKQCAgoKDQoFBAkCAAUSBKQCCxEKDQoFBAkCAAESBKQCEh4KDQoFBAkCAAMSBKQCISIKvwIKBAQJAgESBKwCAisasAIgSWYgc2V0LCBhbGwgdGhlIGNsYXNzZXMgZnJvbSB0aGUgLnByb3RvIGZpbGUgYXJl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YWdlIG11c3QgYmUgZGVmaW5lZCBleGFjdGx5IGFzIGZvbGxvd3M6CiAgIG1lc3NhZ2UgRm9vIHsKICAgICBvcHRpb24gbWVzc2FnZV9zZXRfd2lyZV9mb3JtYXQgPSB0cnVlOwogICAgIGV4dGVuc2lvbnMgNCB0byBtYXg7CiAgIH0KIE5vdGUgdGhhdCB0aGUgbWVzc2FnZSBjYW5ub3QgaGF2ZSBhbnkgZGVmaW5lZCBmaWVsZHM7IE1lc3NhZ2VTZXRzIG9ubHkKIGhhdmUgZXh0ZW5zaW9ucy4KCiBBbGwgZXh0ZW5zaW9ucyBvZiB5b3VyIHR5cGUgbXVzdCBiZSBzaW5ndWxhciBtZXNzYWdlczsgZS5nLiB0aGV5IGNhbm5vdAogYmUgaW50MzJzLCBlbnVtcywgb3IgcmVwZWF0ZWQgbWVzc2FnZXMuCgogQmVjYXVzZSB0aGlzIGlzIGFuIG9wdGlvbiwgdGhlIGFib3ZlIHR3byByZXN0cmljdGlvbnMgYXJlIG5vdCBlbmZvcmNlZCBieQogdGhlIHByb3RvY29sIGNvbXBpbGVyLgoKDQoFBAoCAAQSBJoDAgoKDQoFBAoCAAUSBJoDCw8KDQoFBAoCAAESBJoDECcKDQoFBAoCAAMSBJoDKisKDQoFBAoCAAgSBJoDLDsKDQoFBAoCAAcSBJoDNToK6wEKBAQKAgESBJ8DAkQa3AEgRGlzYWJsZXMgdGhlIGdlbmVyYXRpb24gb2YgdGhlIHN0YW5kYXJkICJkZXNjcmlwdG9yKCkiIGFjY2Vzc29yLCB3aGljaCBjYW4KIGNvbmZsaWN0IHdpdGggYSBmaWVsZCBvZiB0aGUgc2FtZSBuYW1lLiAgVGhpcyBpcyBtZWFudCB0byBtYWtlIG1pZ3JhdGlvbgogZnJvbSBwcm90bzEgZWFzaWVyOyBuZXcgY29kZSBzaG91bGQgYXZvaWQgZmllbGRzIG5hbWVkICJkZXNjcmlwdG9yIi4KCg0KBQQKAgEEEgSfAwIKCg0KBQQKAgEFEgSfAwsPCg0KBQQKAgEBEgSfAxAvCg0KBQQKAgEDEgSfAzIzCg0KBQQKAgEIEgSfAzRDCg0KBQQKAgEHEgSfAz1CCu4BCgQECgICEgSlAwIvGt8BIElzIHRoaXMgbWVzc2FnZSBkZXByZWNhdGVkPwogRGVwZW5kaW5nIG9uIHRoZSB0YXJnZXQgcGxhdGZvcm0sIHRoaXMgY2FuIGVtaXQgRGVwcmVjYXRlZCBhbm5vdGF0aW9ucwogZm9yIHRoZSBtZXNzYWdlLCBvciBpdCB3aWxsIGJlIGNvbXBsZXRlbHkgaWdub3JlZDsgaW4gdGhlIHZlcnkgbGVhc3QsCiB0aGlzIGlzIGEgZm9ybWFsaXphdGlvbiBmb3IgZGVwcmVjYXRpbmcgbWVzc2FnZXMuCgoNCgUECgICBBIEpQMCCgoNCgUECgICBRIEpQMLDwoNCgUECgICARIEpQMQGgoNCgUECgICAxIEpQMdHgoNCgUECgICCBIEpQMfLgoNCgUECgICBxIEpQMoLQqeBgoEBAoCAxIEvAMCHhqPBiBXaGV0aGVyIHRoZSBtZXNzYWdlIGlzIGFuIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1hcCBlbnRyeSB0eXBlIGZvciB0aGUKIG1hcHMgZmllbGQuCgogRm9yIG1hcHMgZmllbGRzOgogICAgIG1hcDxLZXlUeXBlLCBWYWx1ZVR5cGU+IG1hcF9maWVsZCA9IDE7CiBUaGUgcGFyc2VkIGRlc2NyaXB0b3IgbG9va3MgbGlrZToKICAgICBtZXNzYWdlIE1hcEZpZWxkRW50cnkgewogICAgICAgICBvcHRpb24gbWFwX2VudHJ5ID0gdHJ1ZTsKICAgICAgICAgb3B0aW9uYWwgS2V5VHlwZSBrZXkgPSAxOwogICAgICAgICBvcHRpb25hbCBWYWx1ZVR5cGUgdmFsdWUgPSAyOwogICAgIH0KICAgICByZXBlYXRlZCBNYXBGaWVsZEVudHJ5IG1hcF9maWVsZCA9IDE7CgogSW1wbGVtZW50YXRpb25zIG1heSBjaG9vc2Ugbm90IHRvIGdlbmVyYXRlIHRoZSBtYXBfZW50cnk9dHJ1ZSBtZXNzYWdlLCBidXQKIHVzZSBhIG5hdGl2ZSBtYXAgaW4gdGhlIHRhcmdldCBsYW5ndWFnZSB0byBob2xkIHRoZSBrZXlzIGFuZCB2YWx1ZXMuCiBUaGUgcmVmbGVjdGlvbiBBUElzIGluIHN1Y2ggaW1wbGVtZW50aW9ucyBzdGlsbCBuZWVkIHRvIHdvcmsgYXMKIGlmIHRoZSBmaWVs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bGQgYmUgcGFyc2VkIGxhemlseT8gIExhenkgYXBwbGllcyBvbmx5IHRvIG1lc3NhZ2UtdHlwZQogZmllbGRzLiAgSXQgbWVhbnMgdGhhdCB3aGVuIHRoZSBvdXRlciBtZXNzYWdlIGlzIGluaXRpYWxseSBwYXJzZWQsIHRoZQogaW5uZXIgbWVzc2FnZSdzIGNvbnRlbnRzIHdpbGwgbm90IGJlIHBhcnNlZCBidXQgaW5zdGVhZCBzdG9yZWQgaW4gZW5jb2RlZAogZm9ybS4gIFRoZSBpbm5lciBtZXNzYWdlIHdpbGwgYWN0dWFsbHkgYmUgcGFyc2VkIHdoZW4gaXQgaXMgZmlyc3QgYWNjZXNzZWQuCgogVGhpcyBpcyBvbmx5IGEgaGludC4gIEltcGxlbWVudGF0aW9ucyBhcmUgZnJlZSB0byBjaG9vc2Ugd2hldGhlciB0byB1c2UKIGVhZ2VyIG9yIGxhenkgcGFyc2luZyByZWdhcmRsZXNzIG9mIHRoZSB2YWx1ZSBvZiB0aGlzIG9wdGlvbi4gIEhvd2V2ZXIsCiBzZXR0aW5nIHRoaXMgb3B0aW9uIHRydWUgc3VnZ2VzdHMgdGhhdCB0aGUgcHJvdG9jb2wgYXV0aG9yIGJlbGlldmVzIHRoYXQKIHVzaW5nIGxhenkgcGFyc2luZyBvbiB0aGlzIGZpZWxkIGlzIHdvcnRoIHRoZSBhZGRpdGlvbmFsIGJvb2trZWVwaW5nCiBvdmVyaGVhZCB0eXBpY2FsbHkgbmVlZGVkIHRvIGltcGxlbWVudCBpdC4KCiBUaGlzIG9wdGlvbiBkb2VzIG5vdCBhZmZlY3QgdGhlIHB1YmxpYyBpbnRlcmZhY2Ugb2YgYW55IGdlbmVyYXRlZCBjb2RlOwogYWxsIG1ldGhvZCBzaWduYXR1cmVzIHJlbWFpbiB0aGUgc2FtZS4gIEZ1cnRoZXJtb3JlLCB0aHJlYWQtc2FmZXR5IG9mIHRoZQogaW50ZXJmYWNlIGlzIG5vdCBhZmZlY3RlZCBieSB0aGlzIG9wdGlvbjsgY29uc3QgbWV0aG9kcyByZW1haW4gc2FmZSB0bwogY2FsbCBmcm9tIG11bHRpcGxlIHRocmVhZHMgY29uY3VycmVudGx5LCB3aGlsZSBub24tY29uc3QgbWV0aG9kcyBjb250aW51ZQogdG8gcmVxdWlyZSBleGNsdXNpdmUgYWNjZXNzLgoKCiBOb3RlIHRoYXQgaW1wbGVtZW50YXRpb25zIG1heSBjaG9vc2Ugbm90IHRvIGNoZWNrIHJlcXVpcmVkIGZpZWxkcyB3aXRoaW4KIGEgbGF6eSBzdWItbWVzc2FnZS4gIFRoYXQgaXMsIGNhbGxpbmcgSXNJbml0aWFsaXplZCgpIG9uIHRoZSBvdXRlciBtZXNzYWdlCiBtYXkgcmV0dXJuIHRydWUgZXZlbiBpZiB0aGUgaW5uZXIgbWVzc2FnZSBoYXMgbWlzc2luZyByZXF1aXJlZCBmaWVsZHMuCiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIG90aGVyd2lzZSB0aGUgaW5uZXIgbWVzc2FnZSB3b3VsZCBoYXZlIHRvIGJlCiBwYXJzZWQgaW4gb3JkZXIgdG8gcGVyZm9ybSB0aGUgY2hlY2ssIGRlZmVhdGluZyB0aGUgcHVycG9zZSBvZiBsYXp5CiBwYXJzaW5nLiAgQW4gaW1wbGVtZW50YXRpb24gd2hpY2ggY2hvb3NlcyBub3QgdG8gY2hlY2sgcmVxdWlyZWQgZmllbGRzCiBtdXN0IGJlIGNvbnNpc3RlbnQgYWJvdXQgaXQuICBUaGF0IGlzLCBmb3IgYW55IHBhcnRpY3VsYXIgc3ViLW1lc3NhZ2UsIHRoZQogaW1wbGVtZW50YXRpb24gbXVzdCBlaXRoZXIgKmFsd2F5cyogY2hlY2sgaXRzIHJlcXVpcmVkIGZpZWxkcywgb3IgKm5ldmVyKgogY2hlY2sgaXRzIHJlcXVpcmVkIGZpZWxkcywgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCB0aGUgbWVzc2FnZSBoYXMKIGJlZW4gcGFyc2VkLgoKDQoFBAsCAwQSBI4EAgoKDQoFBAsCAwUSBI4ECw8KDQoFBAsCAwESBI4EEBQKDQoFBAsCAwMSBI4EFxgKDQoFBAsCAwgSBI4EGSgKDQoFBAsCAwcSBI4EIicK6AEKBAQLAgQSBJQEAi8a2QEgSXMgdGhpcyBmaWVsZCBkZXByZWNhdGVkPwogRGVwZW5kaW5nIG9uIHRoZSB0YXJnZXQgcGxhdGZvcm0sIHRoaXMgY2FuIGVtaXQg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AQQSBPcEAgoKDQoFBBACAQYSBPcECxsKDQoFBBACAQESBPcEHC0KDQoFBBACAQMSBPgEBggKDQoFBBACAQgSBPgECSYKDQoFBBACAQcSBPgEEiUKTwoEBBACAhIE+wQCOhpBIFRoZSBwYXJzZXIgc3RvcmVzIG9wdGlvbnMgaXQgZG9lc24ndCByZWNvZ25pemUgaGVyZS4gU2VlIGFib3ZlLgoKDQoFBBACAgQSBPsEAgoKDQoFBBACAgYSBPsECx4KDQoFBBACAgESBPsEHzMKDQoFBBACAgMSBPsENjkKWgoDBBAFEgT+BAIZGk0gQ2xpZW50cyBjYW4gZGVmaW5lIGN1c3RvbSBvcHRpb25zIGluIGV4dGVuc2lvbnMgb2YgdGhpcyBtZXNzYWdlLiBTZWUgYWJvdmUuCgoMCgQEEAUAEgT+BA0YCg0KBQQQBQABEgT+BA0RCg0KBQQQBQACEgT+BBUYCosDCgIEERIGiAUAnAUBGvwCIEEgbWVzc2FnZSByZXByZXNlbnRpbmcgYSBvcHRpb24gdGhlIHBhcnNlciBkb2VzIG5vdCByZWNvZ25pemUuIFRoaXMgb25seQogYXBwZWFycyBpbiBvcHRpb25zIHByb3RvcyBjcmVhdGVkIGJ5IHRoZSBjb21waWxlcjo6UGFyc2VyIGNsYXNzLgogRGVzY3JpcHRvclBvb2wgcmVzb2x2ZXMgdGhlc2Ugd2hlbiBidWlsZGluZyBEZXNjcmlwdG9yIG9iamVjdHMuIFRoZXJlZm9yZSwKIG9wdGlvbnMgcHJvdG9zIGluIGRlc2NyaXB0b3Igb2JqZWN0cyAoZS5nLiByZXR1cm5lZCBieSBEZXNjcmlwdG9yOjpvcHRpb25zKCksCiBvciBwcm9kdWNlZCBieSBEZXNjcmlwdG9yOjpDb3B5VG8oKSkgd2lsbCBuZXZlciBoYXZlIFVuaW50ZXJwcmV0ZWRPcHRpb25zCiBpbiB0aGVtLgoKCwoDBBEBEgSIBQgbCssCCgQEEQMAEgaOBQKRBQMaugIgVGhlIG5hbWUgb2YgdGhlIHVuaW50ZXJwcmV0ZWQgb3B0aW9uLiAgRWFjaCBzdHJpbmcgcmVwcmVzZW50cyBhIHNlZ21lbnQgaW4KIGEgZG90LXNlcGFyYXRlZCBuYW1lLiAgaXNfZXh0ZW5z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ICAgICAgICAgIHJlcHJlc2VudHMKICAgW2EsaSkgIFsgNCwgMCwgMiwgMCBdICAgICBUaGUgd2hvbGUgZmllbGQgZGVmaW5pdGlvbi4KICAgW2EsYikgIFsgNCwgMCwgMiwgMCwgNCBdICBUaGUgbGFiZWwgKG9wdGlvbmFsKS4KICAgW2MsZCkgIFsgNCwgMCwgMiwgMCwgNSBdICBUaGUgdHlwZSAoc3RyaW5nKS4KICAgW2UsZikgIFsgNCwgMCwgMiwgMCwgMSBdICBUaGUgbmFtZSAoZm9vKS4KICAgW2csaCkgIFsgNCwgMCwgMiwgMCwgMyBdICBUaGUgbnVtYmVyICgxKS4KCiBOb3RlczoKIC0gQSBsb2NhdGlvbiBtYXkgcmVmZXIgdG8gYSByZXBlYXRlZCBmaWVsZCBpdHNlbGYgKGkuZS4gbm90IHRvIGFueQogICBwYXJ0aWN1bGFyIGluZGV4IHdpdGhpbiBpdCkuICBUaGlzIGlzIHVzZWQgd2hlbmV2ZXIgYSBzZXQgb2YgZWxlbWVudHMgYXJlCiAgIGxvZ2ljYWxseSBlbmNsb3NlZCBpbiBhIHNpbmdsZSBjb2RlIHNlZ21lbnQuICBGb3IgZXhhbXBsZSwgYW4gZW50aXJlCiAgIGV4dGVuZCBibG9jayAocG9zc2libHkgY29udGFpbmluZyBtdWx0aXBsZSBleHRlbnNpb24gZGVmaW5pdGlvbnMpIHdpbGwKICAgaGF2ZSBhbiBvdXRlciBsb2NhdGlvbiB3aG9zZSBwYXRoIHJlZmVycyB0byB0aGUgImV4dGVuc2lvbnMiIHJlcGVhdGVkCiAgIGZpZWxkIHdpdGhvdXQgYW4gaW5kZXguCiAtIE11bHRpcGxlIGxvY2F0aW9ucyBtYXkgaGF2ZSB0aGUgc2FtZSBwYXRoLiAgVGhpcyBoYXBwZW5zIHdoZW4gYSBzaW5nbGUKICAgbG9naWNhbCBkZWNsYXJhdGlvbiBpcyBzcHJlYWQgb3V0IGFjcm9zcyBtdWx0aXBsZSBwbGFjZXMuICBUaGUgbW9zdAogICBvYnZpb3VzIGV4YW1wbGUgaXMgdGhlICJleHRlbmQiIGJsb2NrIGFnYWluIC0tIHRoZXJlIG1heSBiZSBtdWx0aXBsZQogICBleHRlbmQgYmxvY2tzIGluIHRoZSBzYW1lIHNjb3BlLCBlYWNoIG9mIHdoaWNoIHdpbGwgaGF2ZSB0aGUgc2FtZSBwYXRoLgogLSBBIGxvY2F0aW9uJ3Mgc3BhbiBpcyBub3QgYWx3YXlzIGEgc3Vic2V0IG9mIGl0cyBwYXJlbnQncyBzcGFuLiAgRm9yCiAgIGV4YW1wbGUsIHRoZSAiZXh0ZW5kZWUiIG9mIGFuIGV4dGVuc2lvbiBkZWNsYXJhdGlvbiBhcHBlYXJzIGF0IHRoZQogICBiZWdpbm5pbmcgb2YgdGhlICJleHRlbmQiIGJsb2NrIGFuZCBpcyBzaGFyZWQgYnkgYWxsIGV4dGVuc2lvbnMgd2l0aGluCiAgIHRoZSBibG9jay4KIC0gSnVzdCBiZWNhdXNlIGEgbG9jYXRpb24ncyBzcGFuIGlzIGEgc3Vic2V0IG9mIHNvbWUgb3RoZXIgbG9jYXRpb24ncyBzcGFuCiAgIGRvZXMgbm90IG1lYW4gdGhhdCBpdCBpcyBhIGRlc2NlbmRlbnQuICBGb3IgZXhhbXBsZSwgYSAiZ3JvdXAiIGRlZmluZXMKICAgYm90aCBhIHR5cGUgYW5kIGEgZmllbGQgaW4gYSBzaW5nbGUgZGVjbGFyYXRpb24uICBUaHVzLCB0aGUgbG9jYXRpb25zCiAgIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHR5cGUgYW5kIGZpZWxkIGFuZCB0aGVpciBjb21wb25lbnRzIHdpbGwgb3ZlcmxhcC4KIC0gQ29kZSB3aGljaCB0cmllcyB0byBpbnRlcnByZXQgbG9jYXRpb25zIHNob3VsZCBwcm9iYWJseSBiZSBkZXNpZ25lZCB0bwogICBpZ25vcmUgdGhvc2UgdGhhdCBpdCBkb2Vzbid0IHVuZGVyc3RhbmQsIGFzIG1vcmUgdHlwZXMgb2YgbG9jYXRpb25zIGNvdWxkCiAgIGJlIHJlY29yZGVkIGluIHRoZSBmdXR1cmUuCgoNCgUEEgIABBIEzwUCCgoNCgUEEgIABhIEzwULEwoNCgUEEgIAARIEzwUUHAoNCgUEEgIAAxIEzwUfIAoOCgQEEgMAEgbQBQKjBgMKDQoFBBIDAAESBNAFChIKgwcKBgQSAwACABIE6AUEKhryBiBJZGVudGlmaWVzIHdoaWNoIHBhcnQgb2YgdGhlIEZpbGVEZXNjcmlwdG9yUHJvdG8gd2FzIGRlZmluZWQgYXQgdGhpcwogbG9jYXRpb24uCgogRWFjaCBlbGVtZW50IGlzIGEgZmllbGQgbnVtYmVyIG9yIGFuIGluZGV4LiAgVGhleSBmb3JtIGEgcGF0aCBmcm9tCiB0aGUgcm9vdCBGaWxlRGVzY3JpcHRvclByb3RvIHRvIHRoZSBwbGFjZSB3aGVyZSB0aGUgZGVmaW5pdGlvbi4gIEZvcgogZXhhbXBsZSwgdGhpcyBwYXRoOgogICBbIDQsIDMsIDIsIDcsIDEgXQogcmVmZXJzIHRvOgogICBmaWxlLm1lc3NhZ2VfdHlwZSgzKSAgLy8gNCwgMwogICAgICAgLmZpZWxkKDcpICAgICAgICAgLy8gMiwgNwogICAgICAgLm5hbWUoKSAgICAgICAgICAgLy8gMQogVGhpcyBpcyBiZWNhdXNlIEZpbGVEZXNjcmlwdG9yUHJvdG8ubWVzc2FnZV90eXBlIGhhcyBmaWVsZCBudW1iZXIgNDoKICAgcmVwZWF0ZWQgRGVzY3JpcHRvclByb3RvIG1lc3NhZ2VfdHlwZSA9IDQ7CiBhbmQgRGVzY3JpcHRvclByb3RvLmZpZWxkIGhhcyBmaWVsZCBudW1iZXIgMjoKICAgcmVwZWF0ZWQgRmllbGREZXNjcmlwdG9yUHJvdG8gZmllbGQgPSAyOwogYW5kIEZpZWxkRGVzY3JpcHRvclByb3RvLm5hbWUgaGFzIGZpZWxkIG51bWJlciAxOgogICBvcHRpb25hbCBzdHJpbmcgbmFtZSA9IDE7CgogVGh1cywgdGhlIGFib3ZlIHBhdGggZ2l2ZXMgdGhlIGxvY2F0aW9uIG9mIGEgZmllbGQgbmFtZS4gIElmIHdlIHJlbW92ZWQKIHRoZSBsYXN0IGVsZW1lbnQ6CiAgIFsgNCwgMywgMiwgNyBdCiB0aGlzIHBhdGggcmVmZXJzIHRvIHRoZSB3aG9sZSBmaWVsZCBkZWNsYXJhdGlvbiAoZnJvbSB0aGUgYmVnaW5uaW5nCiBvZiB0aGUgbGFiZWwgdG8gdGhlIHRlcm1pbmF0aW5nIHNlbWljb2xvbikuCgoPCgcEEgMAAgAEEgToBQQMCg8KBwQSAwACAAUSBOgFDRIKDwoHBBIDAAIAARIE6AUTFwoPCgcEEgMAAgADEgToBRobCg8KBwQSAwACAAgSBOgFHCkKEgoKBBIDAAIACOcHABIE6AUdKAoTCgsEEgMAAgAI5wcAAhIE6AUdIwoUCgwEEgMAAgAI5wcAAgASBOgFHSMKFQoNBBIDAAIACOcHAAIAARIE6AUdIwoTCgsEEgMAAgAI5wcAAxIE6AUkKArSAgoGBBIDAAIBEgTvBQQqGsECIEFsd2F5cyBoYXMgZXhhY3RseSB0aHJlZSBvciBmb3VyIGVsZW1lbnRzOiBzdGFydCBsaW5lLCBzdGFydCBjb2x1bW4sCiBlbmQgbGluZSAob3B0aW9uYWwsIG90aGVyd2lzZSBhc3N1bWVkIHNhbWUgYXMgc3RhcnQgbGluZSksIGVuZCBjb2x1bW4uCiBUaGVzZSBhcmUgcGFja2VkIGludG8gYSBzaW5nbGUgZmllbGQgZm9yIGVmZmljaWVuY3kuICBOb3RlIHRoYXQgbGluZQogYW5kIGNvbHVtbiBudW1iZXJzIGFyZSB6ZXJvLWJhc2VkIC0tIHR5cGljYWxseSB5b3Ugd2lsbCB3YW50IHRvIGFkZAogMSB0byBlYWNoIGJlZm9yZSBkaXNwbGF5aW5nIHRvIGEgdXNlci4KCg8KBwQSAwACAQQSBO8FBAwKDwoHBBIDAAIBBRIE7wUNEgoPCgcEEgMAAgEBEgTvBRMXCg8KBwQSAwACAQMSBO8FGhsKDwoHBBIDAAIBCBIE7wUcKQoSCgoEEgMAAgEI5wcAEgTvBR0oChMKCwQSAwACAQjnBwACEgTvBR0jChQKDAQSAwACAQjnBwACABIE7wUdIwoVCg0EEgMAAgEI5wcAAgABEgTvBR0jChMKCwQSAwACAQjnBwADEgTvBSQoCqUMCgYEEgMAAgISBKAGBCkalAwgSWYgdGhpcyBTb3VyY2VDb2RlSW5mbyByZXByZXNlbnRzIGEgY29tcGxldGUgZGVjbGFyYXRpb24sIHRoZXNlIGFyZSBhbnkKIGNvbW1lbnRzIGFwcGVhcmluZyBiZWZvcmUgYW5kIGFmdGVyIHRoZSBkZWNsYXJhdGlvbiB3aGljaCBhcHBlYXIgdG8gYmUKIGF0dGFjaGVkIHRvIHRoZSBkZWNsYXJhdGlvbi4KCiBBIHNlcmllcyBvZiBsaW5lIGNvbW1lbnRzIGFwcGVhcmluZyBvbiBjb25zZWN1dGl2ZSBsaW5lcywgd2l0aCBubyBvdGhlcgogdG9rZW5zIGFwcGVhcmluZyBvbiB0aG9zZSBsaW5lcywgd2lsbCBiZSB0cmVhdGVkIGFzIGEgc2luZ2xlIGNvbW1lbnQuCgogbGVhZGluZ19kZXRhY2hlZF9jb21tZW50cyB3aWxsIGtlZXAgcGFyYWdyYXBocyBvZiBjb21tZW50cyB0aGF0IGFwcGVhcgogYmVmb3JlIChidXQgbm90IGNvbm5lY3RlZCB0bykgdGhlIGN1cnJlbnQgZWxlbWVudC4gRWFjaCBwYXJhZ3JhcGgsCiBzZXBhcmF0ZWQgYnkgZW1wdHkgbGluZXMsIHdpbGwgYmUgb25lIGNvbW1lbnQgZWxlbWVudCBpbiB0aGUgcmVwZWF0ZWQKIGZpZWxkLgoKIE9ubHkgdGhlIGNvbW1lbnQgY29udGVudCBpcyBwcm92aWRlZDsgY29tbWVudCBtYXJrZXJzIChlLmcuIC8vKSBhcmUKIHN0cmlwcGVkIG91dC4gIEZvciBibG9jayBjb21tZW50cywgbGVhZGluZyB3aGl0ZXNwYWNlIGFuZCBhbiBhc3Rlcmlzawogd2lsbCBiZSBzdHJpcHBlZCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgZWFjaCBsaW5lIG90aGVyIHRoYW4gdGhlIGZpcnN0LgogTmV3bGluZXMgYXJlIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuCgogRXhhbXBsZXM6CgogICBvcHRpb25hbCBpbnQzMiBmb28gPSAxOyAgLy8gQ29tbWVudCBhdHRhY2hlZCB0byBmb28uCiAgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gYmFyLgogICBvcHRpb25hbCBpbnQzMiBiYXIgPSAyOwoKICAgb3B0aW9uYWwgc3RyaW5nIGJheiA9IDM7CiAgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gYmF6LgogICAvLyBBbm90aGVyIGxpbmUgYXR0YWNoZWQgdG8gYmF6LgoKICAgLy8gQ29tbWVudCBhdHRhY2hlZCB0byBxdXguCiAgIC8vCiAgIC8vIEFub3RoZXIgbGluZSBhdHRhY2hlZCB0byBxdXguCiAgIG9wdGlv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BLcGDRIKDwoHBBMDAAICARIEtwYTGAoPCgcEEwMAAgIDEgS3BhscCtsBCgYEEwMAAgMSBLwGBBsaygEgSWRlbnRpZmllcyB0aGUgZW5kaW5nIG9mZnNldCBpbiBieXRlcyBpbiB0aGUgZ2VuZXJhdGVkIGNvZGUgdGhhdAogcmVsYXRlcyB0byB0aGUgaWRlbnRpZmllZCBvZmZzZXQuIFRoZSBlbmQgb2Zmc2V0IHNob3VsZCBiZSBvbmUgcGFzdAogdGhlIGxhc3QgcmVsZXZhbnQgYnl0ZSAoc28gdGhlIGxlbmd0aCBvZiB0aGUgdGV4dCA9IGVuZCAtIGJlZ2luKS4KCg8KBwQTAwACAwQSBLwGBAwKDwoHBBMDAAIDBRIEvAYNEgoPCgcEEwMAAgMBEgS8BhMWCg8KBwQTAwACAwMSBLwGGRoKhhsKIHZvbHRoYV9wcm90b3MveWFuZ19vcHRpb25zLnByb3RvEgZ2b2x0aGEaIGdvb2dsZS9wcm90b2J1Zi9kZXNjcmlwdG9yLnByb3RvIjAKCklubGluZU5vZGUSDgoCaWQYASABKAlSAmlkEhIKBHR5cGUYAiABKAlSBHR5cGUiTwoMUnBjUmV0dXJuRGVmEhcKB3htbF90YWcYASABKAlSBnhtbFRhZxImCg9saXN0X2l0ZW1zX25hbWUYAiABKAlSDWxpc3RJdGVtc05hbWUqVwoTTWVzc2FnZVBhcnNlck9wdGlvbhIYChRNT1ZFX1RPX1BBUkVOVF9MRVZFTBAAEiYKIkNSRUFURV9CT1RIX0dST1VQSU5HX0FORF9DT05UQUlORVIQATpnCg95YW5nX2NoaWxkX3J1bGUSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY7t7ZAyABKA4yGy52b2x0aGEuTWVzc2FnZVBhcnNlck9wdGlvblINeWFuZ0NoaWxkUnVsZTprChF5YW5nX21lc3NhZ2VfcnVsZRIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjv3tkDIAEoDjIbLnZvbHRoYS5NZXNzYWdlUGFyc2VyT3B0aW9uUg95YW5nTWVzc2FnZVJ1bGU6XgoQeWFuZ19pbmxpbmVfbm9kZRIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMY8N7ZAyABKAsyEi52b2x0aGEuSW5saW5lTm9kZVIOeWFuZ0lubGluZU5vZGU6WQoMeWFuZ194bWxfdGFnEh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMY8d7ZAyABKAsyFC52b2x0aGEuUnBjUmV0dXJuRGVmUgp5YW5nWG1sVGFnQi1aK2dpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy9nby9jb21tb25KkxUKBhIEEQBJAQqjBQoBDBIDEQASMrcEIENvcHlyaWdodCAoYykgMjAxNSwgR29vZ2xlIEluYy4KCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KMl8gVGhpcyBmaWxlIGNvbnRhaW5zIGFubm90YXRpb24gZGVmaW5pdGlvbnMgdGhhdCBjYW4gYmUgdXNlZCB0byBkZXNjcmliZQogYSBjb25maWd1cmF0aW9uIHRyZWUuCgoICgEIEgMTAEIKCwoECOcHABIDEwBCCgwKBQjnBwACEgMT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dGhpcyBhcHBsaWVzIG9ubHkgdG8gbm9uLXJlcGVhdGVkIGZpZWxkcy4KCgoKAwcCAhIDQQcjCgsKAwcCBBIERARBJQoKCgMHAgYSA0QEDgoKCgMHAgESA0QPHwoKCgMHAgMSA0QiKQoJCgEHEgRHAEkBCgkKAgcDEgNIBCgKCgoDBwMCEgNHByQKCwoDBwMEEgRIBEcmCgoKAwcDBhIDSAQQCgoKAwcDARIDSBEdCgoKAwcDAxIDSCAnYgZwcm90bzMKyiEKGnZvbHRoYV9wcm90b3MvY29tbW9uLnByb3RvEgZ2b2x0aGEaIHZvbHRoYV9wcm90b3MveWFuZ19vcHRpb25zLnByb3RvIhQKAklEEg4KAmlkGAEgASgJUgJpZCInCgNJRHMSIAoFaXRlbXMYASADKAsyCi52b2x0aGEuSURSBWl0ZW1zImMKCExvZ0xldmVsIlAKCExvZ0xldmVsEgkKBURFQlVHEAASCAoESU5GTxABEgsKB1dBUk5JTkcQAhIJCgVFUlJPUhADEgwKCENSSVRJQ0FMEAQSCQoFRkFUQUwQBToF8PbNHQAigQEKCkFkbWluU3RhdGUibAoKQWRtaW5TdGF0ZRILCgdVTktOT1dOEAASEgoOUFJFUFJPVklTSU9ORUQQARILCgdFTkFCTEVEEAISDAoIRElTQUJMRUQQAxIVChFET1dOTE9BRElOR19JTUFHRRAEEgsKB0RFTEVURUQQBToF8PbNHQAicwoKT3BlclN0YXR1cyJeCgpPcGVyU3RhdHVzEgsKB1VOS05PV04QABIOCgpESVNDT1ZFUkVEEAESDgoKQUNUSVZBVElORxACEgsKB1RFU1RJTkcQAxIKCgZBQ1RJVkUQBBIKCgZGQUlMRUQQBToF8PbNHQAiVAoNQ29ubmVjdFN0YXR1cyI8Cg1Db25uZWN0U3RhdHVzEgsKB1VOS05PV04QABIPCgtVTlJFQUNIQUJMRRABEg0KCVJFQUNIQUJMRRACOgXw9s0dACLeAQoNT3BlcmF0aW9uUmVzcBI9CgRjb2RlGAEgASgOMikudm9sdGhhLk9wZXJhdGlvblJlc3AuT3BlcmF0aW9uUmV0dXJuQ29kZVIEY29kZRInCg9hZGRpdGlvbmFsX2luZm8YAiABKAlSDmFkZGl0aW9uYWxJbmZvIl4KE09wZXJhdGlv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dm9sdGhhX3Byb3Rvcy9tZXRhLnByb3RvEgZ2b2x0aGEaIGdvb2dsZS9wcm90b2J1Zi9kZXNjcmlwdG9yLnByb3RvIh0KCUNoaWxkTm9kZRIQCgNrZXkYASABKAlSA2tleSoyCgZBY2Nlc3MSCgoGQ09ORklHEAASDQoJUkVBRF9PTkxZEAESDQoJUkVBTF9USU1FEAI6UgoKY2hpbGRfbm9kZRIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMY7N7ZAyABKAsyES52b2x0aGEuQ2hpbGROb2RlUgljaGlsZE5vZGU6SAoGYWNjZXNzEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxjt3tkDIAEoDjIOLnZvbHRoYS5BY2Nlc3NSBmFjY2Vzc0ItWitnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvZ28vY29tbW9uSp8PCgYSBBEAOAEKowUKAQwSAxEAEjK3BCBDb3B5cmlnaHQgKGMpIDIwMTUsIEdvb2dsZSBJbmMuCgogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKCiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCjJfIFRoaXMgZmlsZSBjb250YWlucyBhbm5vdGF0aW9uIGRlZmluaXRpb25zIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVzY3JpYmUKIGEgY29uZmlndXJhdGlvbiB0cmVlLgoKCAoBCBIDEwBCCgsKBAjnBwASAxMAQgoMCgUI5wcAAhIDEwcRCg0KBgjnBwACABIDEwcRCg4KBwjnBwACAAESAxMHEQoMCgUI5wcABxIDExRBCggKAQISAxUIDgoJCgIDABIDFwcpCgoKAgQAEgQZABsBCgoKAwQAARIDGQgRCgsKBAQAAgASAxoEEwoNCgUEAAIABBIEGgQZEwoMCgUEAAIABRIDGgQKCgwKBQQAAgABEgMaCw4KDAoFBAACAAMSAxoREgoKCgIFABIEHQApAQoKCgMFAAESAx0FCworCgQFAAIAEgMgBA8aHiByZWFkLXdyaXRlLCBzdG9yZWQgYXR0cmlidXRlCgoMCgUFAAIAARIDIAQKCgwKBQUAAgACEgMgDQ4KSgoEBQACARIDIwQSGj0gcmVhZC1vbmx5IGZpZWxkLCBzdG9yZWQgd2l0aCB0aGUgbW9kZWwsIGNvdmVyZWQgYnkgaXRzIGhhc2gKCgwKBQUAAgEBEgMjBA0KDAoFBQACAQISAyMQEQqRAQoEBQACAhIDJwQSGoMBIEEgcmVhZC1vbmx5IGF0dHJpYnV0ZSB0aGF0IGlzIG5vdCBzdG9yZWQgaW4gdGhlIG1vZGVsLCBub3QgY292ZXJlZAogYnkgaXRzIGhhc2gsIGl0cyB2YWx1ZSBpcyBmaWxsZWQgcmVhbC10aW1lIHVwb24gZWFjaCByZXF1ZXN0LgoKDAoFBQACAgESAycEDQoMCgUFAAICAhIDJxARCgkKAQcSBCsAOAEKjAIKAgcAEgMxBCMagAIgSWYgcHJlc2VudCwgaXQgaW5kaWNhdGVzIHRoYXQgdGhpcyBmaWVsZCBpcyBzdG9yZWQgYXMgZXh0ZXJuYWwgY2hpbGQgbm9kZQogb3IgY2hpbGRyZW4gbm9kZXMgaW4gVm9sdGhhJ3MgaW50ZXJuYWwgY29uZmlndXJhdGlvbiB0cmVlLgogSWYgdGhlIGZpZWxkIGlzIGEgY29udGFpbmVyIGZpZWxkIGFuZCBpZiB0aGUgb3B0aW9uIHNwZWNpZmllcyBhIGtleQogdGhlIGNoaWxkIG9iamVjdHMgd2lsbCBiZSBhZGRyZXNzaWJsZSBieSB0aGF0IGtleS4KCgoKAwcAAhIDKwcjCgsKAwcABBIEMQQrJQoKCgMHAAYSAzEEDQoKCgMHAAESAzEOGAoKCgMHAAMSAzEbIgqcAgoCBwESAzcEHBqQAiBUaGlzIGFubm90YXRpb24gY2FuIGJlIHVzZWQgdG8gaW5kaWNhdGUgdGhhdCBhIGZpZWxkIGlzIHJlYWQtb25seSwKIGZyb20gdGhlIHBlcnNwZWN0aXZlIG9mIE5CSSBhY2Nlc3MuIEJhY2tlbmQgcGx1Z2lucyBhbmQgc3lzdGVtCiBpbnRlcm5hbHMgY2FuIHVwZGF0ZSB0aGUgZmllbGQgYnV0IHRoZSB1cGRhdGUgcmVxdWVzdHMgdGhyb3VnaCB0aGUKIE5CSSB3aWxsIGlnbm9yZSBmb3IgaW5zdGFuY2UgYSBmaWVsZCB0aGF0IGlzIG1hcmtlZCBhcyByZWFkLW9ubHkgKFJPKS4KCgoKAwcBAhIDKwcjCgsKAwcBBBIENwQxIwoKCgMHAQYSAzcECgoKCgMHAQESAzcLEQoKCgMHAQMSAzcUG2IGcHJvdG8zCqkRCht2b2x0aGFfcHJvdG9zL2FkYXB0ZXIucHJvdG8SBnZvbHRoYRoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90bxoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8aGHZvbHRoYV9wcm90b3MvbWV0YS5wcm90byKKAQoNQWRhcHRlckNvbmZpZxI2Cglsb2dfbGV2ZWwYASABKA4yGS52b2x0aGEuTG9nTGV2ZWwuTG9nTGV2ZWxSCGxvZ0xldmVsEkEKEWFkZGl0aW9uYWxfY29uZmlnGEAgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIQYWRkaXRpb25hbENvbmZpZyKRAgoHQWRhcHRlchIVCgJpZBgBIAEoCUIF6PbNHQFSAmlkEh0KBnZlbmRvchgCIAEoCUIF6PbNHQFSBnZlbmRvchIfCgd2ZXJzaW9uGAMgASgJQgXo9s0dAVIHdmVyc2lvbhItCgZjb25maWcYECABKAsyFS52b2x0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dWxlUhJhZGRpdGlvbmFsQmluZGluZ3NCCQoHcGF0dGVybiI7ChFDdXN0b21IdHRwUGF0dGVybhISCgRraW5kGAEgASgJUgRraW5kEhIKBHBhdGgYAiABKAlSBHBhdGhCagoOY29tLmdvb2dsZS5hcGlCCUh0dHBQcm90b1ABWkFnb29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9nb29nbGVhcGlzL2FwaS9hbm5vdGF0aW9uczthbm5vdGF0aW9uc/gBAaICBEdBUElKhXcKBxIFDwD7AgEKvgQKAQwSAw8AEjKzBCBDb3B5cmlnaHQgMjAxOCBHb29nbGUgTExDLgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKCggKAQISAxEIEgoICgEIEgMTAB8KCwoECOcHABIDEwAfCgwKBQjnBwACEgMTBxcKDQoGCOcHAAIAEgMTBxcKDgoHCOcHAAIAARIDEwcXCgwKBQjnBwADEgMTGh4KCAoBCBIDFABYCgsKBAjnBwESAxQAWAoMCgUI5wcBAhIDFAcRCg0KBgjnBwECABIDFAcRCg4KBwjnBwECAAESAxQHEQoMCgUI5wcBBxIDFBRXCggKAQgSAxUAIgoLCgQI5wcCEgMVACIKDAoFCOcHAgISAxUHGgoNCgYI5wcCAgASAxUHGgoOCgcI5wcCAgABEgMVBxoKDAoFCOcHAgMSAxUdIQoICgEIEgMWACoKCwoECOcHAxIDFgAqCgwKBQjnBwMCEgMWBxsKDQoGCOcHAwIAEgMWBxsKDgoHCOcHAwIAARIDFgcbCgwKBQjnBwMHEgMWHikKCAoBCBIDFwAnCgsKBAjnBwQSAxcAJwoMCgUI5wcEAhIDFwcTCg0KBgjnBwQCABIDFwcTCg4KBwjnBwQCAAESAxcHEwoMCgUI5wcEBxIDFxYmCggKAQgSAxgAIgoLCgQI5wcFEgMYACIKDAoFCOcHBQISAxgHGAoNCgYI5wcFAgASAxgHGAoOCgcI5wcFAgABEgMYBxgKDAoFCOcHBQcSAxgbIQrNAQoCBAASBB0AKgEawAEgRGVmaW5lcyB0aGUgSFRUUCBjb25maWd1cmF0aW9uIGZvciBhbiBBUEkgc2VydmljZS4gSXQgY29udGFpbnMgYSBsaXN0IG9mCiBbSHR0cFJ1bGVdW2dvb2dsZS5hcGkuSHR0cFJ1bGVdLCBlYWNoIHNwZWNpZnlpbmcgdGhlIG1hcHBpbmcgb2YgYW4gUlBDIG1ldGhvZAogdG8gb25lIG9yIG1vcmUgSFRUUCBSRVNUIEFQSSBtZXRob2RzLgoKCgoDBAABEgMdCAwKogEKBAQAAgASAyECHhqUASBBIGxpc3Qgb2YgSFRUUCBjb25maWd1cmF0aW9uIHJ1bGVzIHRoYXQgYXBwbHkgdG8gaW5kaXZpZHVhbCBBUEkgbWV0aG9kcy4KCiAqKk5PVEU6KiogQWxsIHNlcnZpY2UgY29uZmlndXJhdGlvbiBydWxlcyBmb2xsb3cgImxhc3Qgb25lIHdpbnMiIG9yZGVyLgoKDAoFBAACAAQSAyECCgoMCgUEAAIABhIDIQsTCgwKBQQAAgABEgMhFBkKDAoFBAACAAMSAyEcHQqTAgoEBAACARIDKQIrGoUCIFdoZW4gc2V0IHRvIHRydWUsIFVSTCBwYXRoIHBhcm1ldGVycyB3aWxsIGJlIGZ1bGx5IFVSSS1kZWNvZGVkIGV4Y2VwdCBpbgogY2FzZXMgb2Ygc2luZ2xlIHNlZ21lbnQgbWF0Y2hlcyBpbiByZXNlcnZlZCBleHBhbnNpb24sIHdoZXJlICIlMkYiIHdpbGwgYmUKIGxlZnQgZW5jb2RlZC4KCiBUaGUgZGVmYXVsdCBiZWhhdmlvciBpcyB0byBub3QgZGVjb2RlIFJGQyA2NTcwIHJlc2VydmVkIGNoYXJhY3RlcnMgaW4gbXVsdGkKIHNlZ21lbnQgbWF0Y2hlcy4KCg0KBQQAAgEEEgQpAiEeCgwKBQQAAgEFEgMpAgYKDAoFBAACAQESAykHJgoMCgUEAAIBAxIDKSkqCrtTCgIEARIGvAIA8gIBGqxTICMgZ1JQQyBUcmFuc2NvZGluZwoKIGdSUEMgVHJhbnNjb2RpbmcgaXMgYSBmZWF0dXJlIGZvciBtYXBwaW5nIGJldHdlZW4gYSBnUlBDIG1ldGhvZCBhbmQgb25lIG9yCiBtb3JlIEhUVFAgUkVTVCBlbmRwb2ludHMuIEl0IGFsbG93cyBkZXZlbG9wZXJzIHRvIGJ1aWxkIGEgc2luZ2xlIEFQSSBzZXJ2aWNlCiB0aGF0IHN1cHBvcnRzIGJvdGggZ1JQQyBBUElzIGFuZCBSRVNUIEFQSXMuIE1hbnkgc3lzdGVtcywgaW5jbHVkaW5nIFtHb29nbGUKIEFQSXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGVhcGlzL2dvb2dsZWFwaXMpLAogW0Nsb3VkIEVuZHBvaW50c10oaHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL2VuZHBvaW50cyksIFtnUlBDCiBHYXRld2F5XShodHRwczovL2dpdGh1Yi5jb20vZ3JwYy1lY29zeXN0ZW0vZ3JwYy1nYXRld2F5KSwKIGFuZCBbRW52b3ldKGh0dHBzOi8vZ2l0aHViLmNvbS9lbnZveXByb3h5L2Vudm95KSBwcm94eSBzdXBwb3J0IHRoaXMgZmVhdHVyZQogYW5kIHVzZSBpdCBmb3IgbGFyZ2Ugc2NhbGUgcHJvZHVjdGlvbiBzZXJ2aWNlcy4KCiBgSHR0cFJ1bGVgIGRlZmluZXMgdGhlIHNjaGVtYSBvZiB0aGUgZ1JQQy9SRVNUIG1hcHBpbmcuIFRoZSBtYXBwaW5nIHNwZWNpZmllcwogaG93IGRpZmZlcmVudCBwb3J0aW9ucyBvZiB0aGUgZ1JQQyByZXF1ZXN0IG1lc3NhZ2UgYXJlIG1hcHBlZCB0byB0aGUgVVJMCiBwYXRoLCBVUkwgcXVlcnkgcGFyYW1ldGVycywgYW5kIEhUVFAgcmVxdWVzdCBib2R5LiBJdCBhbHNvIGNvbnRyb2xzIGhvdyB0aGUKIGdSUEMgcmVzcG9uc2UgbWVzc2FnZSBpcyBtYXBwZWQgdG8gdGhlIEhUVFAgcmVzcG9uc2UgYm9keS4gYEh0dHBSdWxlYCBpcwogdHlwaWNhbGx5IHNwZWNpZmllZCBhcyBhbiBgZ29vZ2xlLmFwaS5odHRwYCBhbm5vdGF0aW9uIG9uIHRoZSBnUlBDIG1ldGhvZC4KCiBFYWNoIG1hcHBpbmcgc3BlY2lmaWVzIGEgVVJMIHBhdGggdGVtcGxhdGUgYW5kIGFuIEhUVFAgbWV0aG9kLiBUaGUgcGF0aAogdGVtcGxhdGUgbWF5IHJlZmVyIHRvIG9uZSBvciBtb3JlIGZpZWxkcyBpbiB0aGUgZ1JQQyByZXF1ZXN0IG1lc3NhZ2UsIGFzIGxvbmcKIGFzIGVhY2ggZmllbGQgaXMgYSBub24tcmVwZWF0ZWQgZmllbGQgd2l0aCBhIHByaW1pdGl2ZSAobm9uLW1lc3NhZ2UpIHR5cGUuCiBUaGUgcGF0aCB0ZW1wbGF0ZSBjb250cm9scyBob3cgZmllbGRzIG9mIHRoZSByZXF1ZXN0IG1lc3NhZ2UgYXJlIG1hcHBlZCB0bwogdGhlIFVSTCBwYXRoLgoKIEV4YW1wbGU6CgogICAgIHNlcnZpY2UgTWVzc2FnaW5nIHsKICAgICAgIHJwYyBHZXRNZXNzYWdlKEdldE1lc3NhZ2VSZXF1ZXN0KSByZXR1cm5zIChNZXNzYWdlKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKSA9IHsKICAgICAgICAgICAgIGdldDogIi92MS97bmFtZT1tZXNzYWdlcy8qfSIKICAgICAgICAgfTsKICAgICAgIH0KICAgICB9CiAgICAgbWVzc2FnZSBHZXRNZXNzYWdlUmVxdWVzdCB7CiAgICAgICBzdHJpbmcgbmFtZSA9IDE7IC8vIE1hcHBlZCB0byBVUkwgcGF0aC4KICAgICB9CiAgICAgbWVzc2FnZSBNZXNzYWdlIHsKICAgICAgIHN0cmluZyB0ZXh0ID0gMTsgLy8gVGhlIHJlc291cmNlIGNvbnRlbnQuCiAgICAgfQoKIFRoaXMgZW5hYmxlcyBhbiBIVFRQIFJFU1QgdG8gZ1JQQyBtYXBwaW5nIGFzIGJlbG93OgoKIEhUVFAgfCBnUlBDCiAtLS0tLXwtLS0tLQogYEdFVCAvdjEvbWVzc2FnZXMvMTIzNDU2YCAgfCBgR2V0TWVzc2FnZShuYW1lOiAibWVzc2FnZXMvMTIzNDU2IilgCgogQW55IGZpZWxkcyBpbiB0aGUgcmVxdWVzdCBtZXNzYWdlIHdoaWNoIGFyZSBub3QgYm91bmQgYnkgdGhlIHBhdGggdGVtcGxhdGUKIGF1dG9tYXRpY2FsbHkgYmVjb21lIEhUVFAgcXVlcnkgcGFyYW1ldGVycyBpZiB0aGVyZSBpcyBubyBIVFRQIHJlcXVlc3QgYm9keS4KIEZvciBleGFtcGxlOgoKICAgICBzZXJ2aWNlIE1lc3NhZ2luZyB7CiAgICAgICBycGMgR2V0TWVzc2FnZShHZXRNZXNzYWdlUmVxdWVzdCkgcmV0dXJucyAoTWVzc2FnZSkgewogICAgICAgICBvcHRpb24gKGdvb2dsZS5hcGkuaHR0cCkgPSB7CiAgICAgICAgICAgICBnZXQ6Ii92MS9tZXNzYWdlcy97bWVzc2FnZV9pZH0iCiAgICAgICAgIH07CiAgICAgICB9CiAgICAgfQogICAgIG1lc3NhZ2UgR2V0TWVzc2FnZVJlcXVlc3QgewogICAgICAgbWVzc2FnZSBTdWJNZXNzYWdlIHsKICAgICAgICAgc3RyaW5nIHN1YmZpZWxkID0gMTsKICAgICAgIH0KICAgICAgIHN0cmluZyBtZXNzYWdlX2lkID0gMTsgLy8gTWFwcGVkIHRvIFVSTCBwYXRoLgogICAgICAgaW50NjQgcmV2aXNpb24gPSAyOyAgICAvLyBNYXBwZWQgdG8gVVJMIHF1ZXJ5IHBhcmFtZXRlciBgcmV2aXNpb25gLgogICAgICAgU3ViTWVzc2FnZSBzdWIgPSAzOyAgICAvLyBNYXBwZWQgdG8gVVJMIHF1ZXJ5IHBhcmFtZXRlciBgc3ViLnN1YmZpZWxkYC4KICAgICB9CgogVGhpcyBlbmFibGVzIGEgSFRUUCBKU09OIHRvIFJQQyBtYXBwaW5nIGFzIGJlbG93OgoKIEhUVFAgfCBnUlBDCiAtLS0tLXwtLS0tLQogYEdFVCAvdjEvbWVzc2FnZXMvMTIzNDU2P3JldmlzaW9uPTImc3ViLnN1YmZpZWxkPWZvb2AgfAogYEdldE1lc3NhZ2UobWVzc2FnZV9pZDogIjEyMzQ1NiIgcmV2aXNpb246IDIgc3ViOiBTdWJNZXNzYWdlKHN1YmZpZWxkOgogImZvbyIpKWAKCiBOb3RlIHRoYXQgZmllbGRzIHdoaWNoIGFyZSBtYXBwZWQgdG8gVVJMIHF1ZXJ5IHBhcmFtZXRlcnMgbXVzdCBoYXZlIGEKIHByaW1pdGl2ZSB0eXBlIG9yIGEgcmVwZWF0ZWQgcHJpbWl0aXZlIHR5cGUgb3IgYSBub24tcmVwZWF0ZWQgbWVzc2FnZSB0eXBlLgogSW4gdGhlIGNhc2Ugb2YgYSByZXBlYXRlZCB0eXBlLCB0aGUgcGFyYW1ldGVyIGNhbiBiZSByZXBlYXRlZCBpbiB0aGUgVVJMCiBhcyBgLi4uP3BhcmFtPUEmcGFyYW09QmAuIEluIHRoZSBjYXNlIG9mIGEgbWVzc2FnZSB0eXBlLCBlYWNoIGZpZWxkIG9mIHRoZQogbWVzc2FnZSBpcyBtYXBwZWQgdG8gYSBzZXBhcmF0ZSBwYXJhbWV0ZXIsIHN1Y2ggYXMKIGAuLi4/Zm9vLmE9QSZmb28uYj1CJmZvby5jPUNgLgoKIEZvciBIVFRQIG1ldGhvZHMgdGhhdCBhbGxvdyBhIHJlcXVlc3QgYm9keSwgdGhlIGBib2R5YCBmaWVsZAogc3BlY2lmaWVzIHRoZSBtYXBwaW5nLiBDb25zaWRlciBhIFJFU1QgdXBkYXRlIG1ldGhvZCBvbiB0aGUKIG1lc3NhZ2UgcmVzb3VyY2UgY29sbGVjdGlvbjoKCiAgICAgc2VydmljZSBNZXNzYWdpbmcgewogICAgICAgcnBjIFVwZGF0ZU1lc3NhZ2UoVXBkYXRlTWVzc2FnZVJlcXVlc3QpIHJldHVybnMgKE1lc3NhZ2UpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApID0gewogICAgICAgICAgIHBhdGNoOiAiL3YxL21lc3NhZ2VzL3ttZXNzYWdlX2lkfSIKICAgICAgICAgICBib2R5OiAibWVzc2FnZSIKICAgICAgICAgfTsKICAgICAgIH0KICAgICB9CiAgICAgbWVzc2FnZSBVcGRhdGVNZXNzYWdlUmVxdWVzdCB7CiAgICAgICBzdHJpbmcgbWVzc2FnZV9pZCA9IDE7IC8vIG1hcHBlZCB0byB0aGUgVVJMCiAgICAgICBNZXNzYWdlIG1lc3NhZ2UgPSAyOyAgIC8vIG1hcHBlZCB0byB0aGUgYm9keQogICAgIH0KCiBUaGUgZm9sbG93aW5nIEhUVFAgSlNPTiB0byBSUEMgbWFwcGluZyBpcyBlbmFibGVkLCB3aGVyZSB0aGUKIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBKU09OIGluIHRoZSByZXF1ZXN0IGJvZHkgaXMgZGV0ZXJtaW5lZCBieQogcHJvdG9zIEpTT04gZW5jb2Rpbmc6CgogSFRUUCB8IGdSUEMKIC0tLS0tfC0tLS0tCiBgUEFUQ0ggL3YxL21lc3NhZ2VzLzEyMzQ1NiB7ICJ0ZXh0IjogIkhpISIgfWAgfCBgVXBkYXRlTWVzc2FnZShtZXNzYWdlX2lkOgogIjEyMzQ1NiIgbWVzc2FnZSB7IHRleHQ6ICJIaSEiIH0pYAoKIFRoZSBzcGVjaWFsIG5hbWUgYCpgIGNhbiBiZSB1c2VkIGluIHRoZSBib2R5IG1hcHBpbmcgdG8gZGVmaW5lIHRoYXQKIGV2ZXJ5IGZpZWxkIG5vdCBib3VuZCBieSB0aGUgcGF0aCB0ZW1wbGF0ZSBzaG91bGQgYmUgbWFwcGVkIHRvIHRoZQogcmVxdWVzdCBib2R5LiAgVGhpcyBlbmFibGVzIHRoZSBmb2xsb3dpbmcgYWx0ZXJuYXRpdmUgZGVmaW5pdGlvbiBvZgogdGhlIHVwZGF0ZSBtZXRob2Q6CgogICAgIHNlcnZpY2UgTWVzc2FnaW5nIHsKICAgICAgIHJwYyBVcGRhdGVNZXNzYWdlKE1lc3NhZ2UpIHJldHVybnMgKE1lc3NhZ2UpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApID0gewogICAgICAgICAgIHBhdGNoOiAiL3YxL21lc3NhZ2VzL3ttZXNzYWdlX2lkfSIKICAgICAgICAgICBib2R5OiAiKiIKICAgICAgICAgfTsKICAgICAgIH0KICAgICB9CiAgICAgbWVzc2FnZSBNZXNzYWdlIHsKICAgICAgIHN0cmluZyBtZXNzYWdlX2lkID0gMTsKICAgICAgIHN0cmluZyB0ZXh0ID0gMjsKICAgICB9CgoKIFRoZSBmb2xsb3dpbmcgSFRUUCBKU09OIHRvIFJQQyBtYXBwaW5nIGlzIGVuYWJsZWQ6CgogSFRUUCB8IGdSUEMKIC0tLS0tfC0tLS0tCiBgUEFUQ0ggL3YxL21lc3NhZ2VzLzEyMzQ1NiB7ICJ0ZXh0IjogIkhpISIgfWAgfCBgVXBkYXRlTWVzc2FnZShtZXNzYWdlX2lkOgogIjEyMzQ1NiIgdGV4dDogIkhpISIpYAoKIE5vdGUgdGhhdCB3aGVuIHVzaW5nIGAqYCBpbiB0aGUgYm9keSBtYXBwaW5nLCBpdCBpcyBub3QgcG9zc2libGUgdG8KIGhhdmUgSFRUUCBwYXJhbWV0ZXJzLCBhcyBhbGwgZmllbGRzIG5vdCBib3VuZCBieSB0aGUgcGF0aCBlbmQgaW4KIHRoZSBib2R5LiBUaGlzIG1ha2VzIHRoaXMgb3B0aW9uIG1vcmUgcmFyZWx5IHVzZWQgaW4gcHJhY3RpY2Ugd2hlbgogZGVmaW5pbmcgUkVTVCBBUElzLiBUaGUgY29tbW9uIHVzYWdlIG9mIGAqYCBpcyBpbiBjdXN0b20gbWV0aG9kcwogd2hpY2ggZG9uJ3QgdXNlIHRoZSBVUkwgYXQgYWxsIGZvciB0cmFuc2ZlcnJpbmcgZGF0YS4KCiBJdCBpcyBwb3NzaWJsZSB0byBkZWZpbmUgbXVsdGlwbGUgSFRUUCBtZXRob2RzIGZvciBvbmUgUlBDIGJ5IHVzaW5nCiB0aGUgYGFkZGl0aW9uYWxfYmluZGluZ3NgIG9wdGlvbi4gRXhhbXBsZToKCiAgICAgc2VydmljZSBNZXNzYWdpbmcgewogICAgICAgcnBjIEdldE1lc3NhZ2UoR2V0TWVzc2FnZVJlcXVlc3QpIHJldHVybnMgKE1lc3NhZ2UpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApID0gewogICAgICAgICAgIGdldDogIi92MS9tZXNzYWdlcy97bWVzc2FnZV9pZH0iCiAgICAgICAgICAgYWRkaXRpb25hbF9iaW5kaW5ncyB7CiAgICAgICAgICAgICBnZXQ6ICIvdjEvdXNlcnMve3VzZXJfaWR9L21lc3NhZ2VzL3ttZXNzYWdlX2lkfSIKICAgICAgICAgICB9CiAgICAgICAgIH07CiAgICAgICB9CiAgICAgfQogICAgIG1lc3NhZ2UgR2V0TWVzc2FnZVJlcXVlc3QgewogICAgICAgc3RyaW5nIG1lc3NhZ2VfaWQgPSAxOwogICAgICAgc3RyaW5nIHVzZXJfaWQgPSAyOwogICAgIH0KCiBUaGlzIGVuYWJsZXMgdGhlIGZvbGxvd2luZyB0d28gYWx0ZXJuYXRpdmUgSFRUUCBKU09OIHRvIFJQQyBtYXBwaW5nczoKCiBIVFRQIHwgZ1JQQwogLS0tLS18LS0tLS0KIGBHRVQgL3YxL21lc3NhZ2VzLzEyMzQ1NmAgfCBgR2V0TWVzc2FnZShtZXNzYWdlX2lkOiAiMTIzNDU2IilgCiBgR0VUIC92MS91c2Vycy9tZS9tZXNzYWdlcy8xMjM0NTZgIHwgYEdldE1lc3NhZ2UodXNlcl9pZDogIm1lIiBtZXNzYWdlX2lkOgogIjEyMzQ1NiIpYAoKICMjIFJ1bGVzIGZvciBIVFRQIG1hcHBpbmcKCiAxLiBMZWFmIHJlcXVlc3QgZmllbGRzIChyZWN1cnNpdmUgZXhwYW5zaW9uIG5lc3RlZCBtZXNzYWdlcyBpbiB0aGUgcmVxdWVzdAogICAgbWVzc2FnZSkgYXJlIGNsYXNzaWZpZWQgaW50byB0aHJlZSBjYXRlZ29yaWVzOgogICAgLSBGaWVsZHMgcmVmZXJyZWQgYnkgdGhlIHBhdGggdGVtcGxhdGUuIFRoZXkgYXJlIHBhc3NlZCB2aWEgdGhlIFVSTCBwYXRoLgogICAgLSBGaWVsZHMgcmVmZXJyZWQgYnkgdGhlIFtIdHRwUnVsZS5ib2R5XVtnb29nbGUuYXBpLkh0dHBSdWxlLmJvZHldLiBUaGV5CiAgICBhcmUgcGFzc2VkIHZpYSB0aGUgSFRUUAogICAgICByZXF1ZXN0IGJvZHkuCiAgICAtIEFsbCBvdGhlciBmaWVsZHMgYXJlIHBhc3NlZCB2aWEgdGhlIFVSTCBxdWVyeSBwYXJhbWV0ZXJzLCBhbmQgdGhlCiAgICAgIHBhcmFtZXRlciBuYW1lIGlzIHRoZSBmaWVsZCBwYXRoIGluIHRoZSByZXF1ZXN0IG1lc3NhZ2UuIEEgcmVwZWF0ZWQKICAgICAgZmllbGQgY2FuIGJlIHJlcHJlc2VudGVkIGFzIG11bHRpcGxlIHF1ZXJ5IHBhcmFtZXRlcnMgdW5kZXIgdGhlIHNhbWUKICAgICAgbmFtZS4KICAyLiBJZiBbSHR0cFJ1bGUuYm9keV1bZ29vZ2xlLmFwaS5IdHRwUnVsZS5ib2R5XSBpcyAiKiIsIHRoZXJlIGlzIG5vIFVSTAogIHF1ZXJ5IHBhcmFtZXRlciwgYWxsIGZpZWxkcwogICAgIGFyZSBwYXNzZWQgdmlhIFVSTCBwYXRoIGFuZCBIVFRQIHJlcXVlc3QgYm9keS4KICAzLiBJZiBbSHR0cFJ1bGUuYm9keV1bZ29vZ2xlLmFwaS5IdHRwUnVsZS5ib2R5XSBpcyBvbWl0dGVkLCB0aGVyZSBpcyBubyBIVFRQCiAgcmVxdWVzdCBib2R5LCBhbGwKICAgICBmaWVsZHMgYXJlIHBhc3NlZCB2aWEgVVJMIHBhdGggYW5kIFVSTCBxdWVyeSBwYXJhbWV0ZXJzLgoKICMjIyBQYXRoIHRlbXBsYXRlIHN5bnRheAoKICAgICBUZW1wbGF0ZSA9ICIvIiBTZWdtZW50cyBbIFZlcmIgXSA7CiAgICAgU2VnbWVudHMgPSBTZWdtZW50IHsgIi8iIFNlZ21lbnQgfSA7CiAgICAgU2VnbWVudCAgPSAiKiIgfCAiKioiIHwgTElURVJBTCB8IFZhcmlhYmxlIDsKICAgICBWYXJpYWJsZSA9ICJ7IiBGaWVsZFBhdGggWyAiPSIgU2VnbWVudHMgXSAifSIgOwogICAgIEZpZWxkUGF0aCA9IElERU5UIHsgIi4iIElERU5UIH0gOwogICAgIFZlcmIgICAgID0gIjoiIExJVEVSQUwgOwoKIFRoZSBzeW50YXggYCpgIG1hdGNoZXMgYSBzaW5nbGUgVVJMIHBhdGggc2VnbWVudC4gVGhlIHN5bnRheCBgKipgIG1hdGNoZXMKIHplcm8gb3IgbW9yZSBVUkwgcGF0aCBzZWdtZW50cywgd2hpY2ggbXVzdCBiZSB0aGUgbGFzdCBwYXJ0IG9mIHRoZSBVUkwgcGF0aAogZXhjZXB0IHRoZSBgVmVyYmAuCgogVGhlIHN5bnRheCBgVmFyaWFibGVgIG1hdGNoZXMgcGFydCBvZiB0aGUgVVJMIHBhdGggYXMgc3BlY2lmaWVkIGJ5IGl0cwogdGVtcGxhdGUuIEEgdmFyaWFibGUgdGVtcGxhdGUgbXVzdCBub3QgY29udGFpbiBvdGhlciB2YXJpYWJsZXMuIElmIGEgdmFyaWFibGUKIG1hdGNoZXMgYSBzaW5nbGUgcGF0aCBzZWdtZW50LCBpdHMgdGVtcGxhdGUgbWF5IGJlIG9taXR0ZWQsIGUuZy4gYHt2YXJ9YAogaXMgZXF1aXZhbGVudCB0byBge3Zhcj0qfWAuCgogVGhlIHN5bnRheCBgTElURVJBTGAgbWF0Y2hlcyBsaXRlcmFsIHRleHQgaW4gdGhlIFVSTCBwYXRoLiBJZiB0aGUgYExJVEVSQUxgCiBjb250YWlucyBhbnkgcmVzZXJ2ZWQgY2hhcmFjdGVyLCBzdWNoIGNoYXJhY3RlcnMgc2hvdWxkIGJlIHBlcmNlbnQtZW5jb2RlZAogYmVmb3JlIHRoZSBtYXRjaGluZy4KCiBJZiBhIHZhcmlhYmxlIGNvbnRhaW5zIGV4YWN0bHkgb25lIHBhdGggc2VnbWVudCwgc3VjaCBhcyBgInt2YXJ9ImAgb3IKIGAie3Zhcj0qfSJgLCB3aGVuIHN1Y2ggYSB2YXJpYWJsZSBpcyBleHBhbmRlZCBpbnRvIGEgVVJMIHBhdGggb24gdGhlIGNsaWVudAogc2lkZSwgYWxsIGNoYXJhY3RlcnMgZXhjZXB0IGBbLV8ufjAtOWEtekEtWl1gIGFyZSBwZXJjZW50LWVuY29kZWQuIFRoZQogc2VydmVyIHNpZGUgZG9lcyB0aGUgcmV2ZXJzZSBkZWNvZGluZy4gU3VjaCB2YXJpYWJsZXMgc2hvdyB1cCBpbiB0aGUKIFtEaXNjb3ZlcnkKIERvY3VtZW50XShodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9kaXNjb3ZlcnkvdjEvcmVmZXJlbmNlL2FwaXMpIGFzCiBge3Zhcn1gLgoKIElmIGEgdmFyaWFibGUgY29udGFpbnMgbXVsdGlwbGUgcGF0aCBzZWdtZW50cywgc3VjaCBhcyBgInt2YXI9Zm9vLyp9ImAKIG9yIGAie3Zhcj0qKn0iYCwgd2hlbiBzdWNoIGEgdmFyaWFibGUgaXMgZXhwYW5kZWQgaW50byBhIFVSTCBwYXRoIG9uIHRoZQogY2xpZW50IHNpZGUsIGFsbCBjaGFyYWN0ZXJzIGV4Y2VwdCBgWy1fLn4vMC05YS16QS1aXWAgYXJlIHBlcmNlbnQtZW5jb2RlZC4KIFRoZSBzZXJ2ZXIgc2lkZSBkb2VzIHRoZSByZXZlcnNlIGRlY29kaW5nLCBleGNlcHQgIiUyRiIgYW5kICIlMmYiIGFyZSBsZWZ0CiB1bmNoYW5nZWQuIFN1Y2ggdmFyaWFibGVzIHNob3cgdXAgaW4gdGhlCiBbRGlzY292ZXJ5CiBEb2N1bWVudF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vZGlzY292ZXJ5L3YxL3JlZmVyZW5jZS9hcGlzKSBhcwogYHsrdmFyfWAuCgogIyMgVXNpbmcgZ1JQQyBBUEkgU2VydmljZSBDb25maWd1cmF0aW9uCgogZ1JQQyBBUEkgU2VydmljZSBDb25maWd1cmF0aW9uIChzZXJ2aWNlIGNvbmZpZykgaXMgYSBjb25maWd1cmF0aW9uIGxhbmd1YWdlCiBmb3IgY29uZmlndXJpbmcgYSBnUlBDIHNlcnZpY2UgdG8gYmVjb21lIGEgdXNlci1mYWNpbmcgcHJvZHVjdC4gVGhlCiBzZXJ2aWNlIGNvbmZpZyBpcyBzaW1wbHkgdGhlIFlBTUwgcmVwcmVzZW50YXRpb24gb2YgdGhlIGBnb29nbGUuYXBpLlNlcnZpY2VgCiBwcm90byBtZXNzYWdlLgoKIEFzIGFuIGFsdGVybmF0aXZlIHRvIGFubm90YXRpbmcgeW91ciBwcm90byBmaWxlLCB5b3UgY2FuIGNvbmZpZ3VyZSBnUlBDCiB0cmFuc2NvZGluZyBpbiB5b3VyIHNlcnZpY2UgY29uZmlnIFlBTUwgZmlsZXMuIFlvdSBkbyB0aGlzIGJ5IHNwZWNpZnlpbmcgYQogYEh0dHBSdWxlYCB0aGF0IG1hcHMgdGhlIGdSUEMgbWV0aG9kIHRvIGEgUkVTVCBlbmRwb2ludCwgYWNoaWV2aW5nIHRoZSBzYW1lCiBlZmZlY3QgYXMgdGhlIHByb3RvIGFubm90YXRpb24uIFRoaXMgY2FuIGJlIHBhcnRpY3VsYXJseSB1c2VmdWwgaWYgeW91CiBoYXZlIGEgcHJvdG8gdGhhdCBpcyByZXVzZWQgaW4gbXVsdGlwbGUgc2VydmljZXMuIE5vdGUgdGhhdCBhbnkgdHJhbnNjb2RpbmcKIHNwZWNpZmllZCBpbiB0aGUgc2VydmljZSBjb25maWcgd2lsbCBvdmVycmlkZSBhbnkgbWF0Y2hpbmcgdHJhbnNjb2RpbmcKIGNvbmZpZ3VyYXRpb24gaW4gdGhlIHByb3RvLgoKIEV4YW1wbGU6CgogICAgIGh0dHA6CiAgICAgICBydWxlczoKICAgICAgICAgIyBTZWxlY3RzIGEgZ1JQQyBtZXRob2QgYW5kIGFwcGxpZXMgSHR0cFJ1bGUgdG8gaXQuCiAgICAgICAgIC0gc2VsZWN0b3I6IGV4YW1wbGUudjEuTWVzc2FnaW5nLkdldE1lc3NhZ2UKICAgICAgICAgICBnZXQ6IC92MS9tZXNzYWdlcy97bWVzc2FnZV9pZH0ve3N1Yi5zdWJmaWVsZH0KCiAjIyBTcGVjaWFsIG5vdGVzCgogV2hlbiBnUlBDIFRyYW5zY29kaW5nIGlzIHVzZWQgdG8gbWFwIGEgZ1JQQyB0byBKU09OIFJFU1QgZW5kcG9pbnRzLCB0aGUKIHByb3RvIHRvIEpTT04gY29udmVyc2lvbiBtdXN0IGZvbGxvdyB0aGUgW3Byb3RvMwogc3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy9kb2NzL3Byb3RvMyNqc29uKS4KCiBXaGlsZSB0aGUgc2luZ2xlIHNlZ21lbnQgdmFyaWFibGUgZm9sbG93cyB0aGUgc2VtYW50aWNzIG9mCiBbUkZDIDY1NzBdKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NTcwKSBTZWN0aW9uIDMuMi4yIFNpbXBsZSBTdHJpbmcKIEV4cGFuc2lvbiwgdGhlIG11bHRpIHNlZ21lbnQgdmFyaWFibGUgKipkb2VzIG5vdCoqIGZvbGxvdyBSRkMgNjU3MCBTZWN0aW9uCiAzLjIuMyBSZXNlcnZlZCBFeHBhbnNpb24uIFRoZSByZWFzb24gaXMgdGhhdCB0aGUgUmVzZXJ2ZWQgRXhwYW5zaW9uCiBkb2VzIG5vdCBleHBhbmQgc3BlY2lhbCBjaGFyYWN0ZXJzIGxpa2UgYD9gIGFuZCBgI2AsIHdoaWNoIHdvdWxkIGxlYWQKIHRvIGludmFsaWQgVVJMcy4gQXMgdGhlIHJlc3VsdCwgZ1JQQyBUcmFuc2NvZGluZyB1c2VzIGEgY3VzdG9tIGVuY29kaW5nCiBmb3IgbXVsdGkgc2VnbWVudCB2YXJpYWJsZXMuCgogVGhlIHBhdGggdmFyaWFibGVzICoqbXVzdCBub3QqKiByZWZlciB0byBhbnkgcmVwZWF0ZWQgb3IgbWFwcGVkIGZpZWxkLAogYmVjYXVzZSBjbGllbnQgbGlicmFyaWVzIGFyZSBub3QgY2FwYWJsZSBvZiBoYW5kbGluZyBzdWNoIHZhcmlhYmxlIGV4cGFuc2lvbi4KCiBUaGUgcGF0aCB2YXJpYWJsZXMgKiptdXN0IG5vdCoqIGNhcHR1cmUgdGhlIGxlYWRpbmcgIi8iIGNoYXJhY3Rlci4gVGhlIHJlYXNvbgogaXMgdGhhdCB0aGUgbW9zdCBjb21tb24gdXNlIGNhc2UgInt2YXJ9IiBkb2VzIG5vdCBjYXB0dXJlIHRoZSBsZWFkaW5nICIvIgogY2hhcmFjdGVyLiBGb3IgY29uc2lzdGVuY3ksIGFsbCBwYXRoIHZhcmlhYmxlcyBtdXN0IHNoYXJlIHRoZSBzYW1lIGJlaGF2aW9yLgoKIFJlcGVhdGVkIG1lc3NhZ2UgZmllbGRzIG11c3Qgbm90IGJlIG1hcHBlZCB0byBVUkwgcXVlcnkgcGFyYW1ldGVycywgYmVjYXVzZQogbm8gY2xpZW50IGxpYnJhcnkgY2FuIHN1cHBvcnQgc3VjaCBjb21wbGljYXRlZCBtYXBwaW5nLgoKIElmIGFuIEFQSSBuZWVkcyB0byB1c2UgYSBKU09OIGFycmF5IGZvciByZXF1ZXN0IG9y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BAICAAESBPcCCQ0KDQoFBAICAAMSBPcCEBEKNQoEBAICARIE+gICEhonIFRoZSBwYXRoIG1hdGNoZWQgYnkgdGhpcyBjdXN0b20gdmVyYi4KCg8KBQQCAgEEEgb6AgL3AhIKDQoFBAICAQUSBPoCAggKDQoFBAICAQESBPoCCQ0KDQoFBAICAQMSBPoCEBFiBnByb3RvMwqYCwocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90bxIKZ29vZ2xlLmFwaRoVZ29vZ2xlL2FwaS9odHRwLnByb3RvGiBnb29nbGUvcHJvdG9idWYvZGVzY3JpcHRvci5wcm90bzpLCgRodHRwEh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMYsMq8IiABKAsyFC5nb29nbGUuYXBpLkh0dHBSdWxlUgRodHRwQm4KDmNvbS5nb29nbGUuYXBpQhBBbm5vdGF0aW9uc1Byb3RvUAFaQWdvb2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL2dvb2dsZWFwaXMvYXBpL2Fubm90YXRpb25zO2Fubm90YXRpb25zogIER0FQSUrtCAoGEgQOAB4BCsIECgEMEgMOABIytwQgQ29weXJpZ2h0IChjKSAyMDE1LCBHb29nbGUgSW5jLgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKCAoBAhIDEAgSCgkKAgMAEgMSBx4KCQoCAwESAxMHKQoICgEIEgMVAFgKCwoECOcHABIDFQBYCgwKBQjnBwACEgMVBxEKDQoGCOcHAAIAEgMVBxEKDgoHCOcHAAIAARIDFQcRCgwKBQjnBwAHEgMVFFcKCAoBCBIDFgAiCgsKBAjnBwESAxYAIgoMCgUI5wcBAhIDFgcaCg0KBgjnBwECABIDFgcaCg4KBwjnBwECAAESAxYHGgoMCgUI5wcBAxIDFh0hCggKAQgSAxcAMQoLCgQI5wcCEgMXADEKDAoFCOcHAgISAxcHGwoNCgYI5wcCAgASAxcHGwoOCgcI5wcCAgABEgMXBxsKDAoFCOcHAgcSAxceMAoICgEIEgMYACcKCwoECOcHAxIDGAAnCgwKBQjnBwMCEgMYBxMKDQoGCOcHAwIAEgMYBxMKDgoHCOcHAwIAARIDGAcTCgwKBQjnBwMHEgMYFiYKCAoBCBIDGQAiCgsKBAjnBwQSAxkAIgoMCgUI5wcEAhIDGQcYCg0KBgjnBwQCABIDGQcYCg4KBwjnBwQCAAESAxkHGAoMCgUI5wcEBxIDGRshCgkKAQcSBBsAHgEKHAoCBwASAx0CGxoRIFNlZSBgSHR0cFJ1bGVgLgoKCgoDBwACEgMbByQKCwoDBwAEEgQdAhsmCgoKAwcABhIDHQIKCgoKAwcAARIDHQsPCgoKAwcAAxIDHRIaYgZwcm90bzMK6v0HCh92b2x0aGFfcHJvdG9zL29wZW5mbG93XzEzLnByb3RvEgtvcGVuZmxvd18xMxocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90bxogdm9sdGhhX3Byb3Rvcy95YW5nX29wdGlvbnMucHJvdG8iYwoKb2ZwX2hlYWRlchIYCgd2ZXJzaW9uGAEgASgNUgd2ZXJzaW9uEikKBHR5cGUYAiABKA4yFS5vcGVuZmxvd18xMy5vZnBfdHlwZVIEdHlwZRIQCgN4aWQYAyABKA1SA3hpZCKrAQoVb2ZwX2hlbGxvX2VsZW1faGVhZGVyEjQKBHR5cGUYASABKA4yIC5vcGVuZmxvd18xMy5vZnBfaGVsbG9fZWxlbV90eXBlUgR0eXBlElEKDXZlcnNpb25iaXRtYXAYAiABKAsyKS5vcGVuZmxvd18xMy5vZnBfaGVsbG9fZWxlbV92ZXJzaW9uYml0bWFwSABSDXZlcnNpb25iaXRtYXBCCQoHZWxlbWVudCI4ChxvZnBfaGVsbG9fZWxlbV92ZXJzaW9uYml0bWFwEhgKB2JpdG1hcHMYAiADKA1SB2JpdG1hcHMiSwoJb2ZwX2hlbGxvEj4KCGVsZW1lbnRzGAEgAygLMiIub3BlbmZsb3dfMTMub2ZwX2hlbGxvX2VsZW1faGVhZGVyUghlbGVtZW50cyJNChFvZnBfc3dpdGNoX2NvbmZpZxIUCgVmbGFncxgBIAEoDVIFZmxhZ3MSIgoNbWlzc19zZW5kX2xlbhgCIAEoDVILbWlzc1NlbmRMZW4iQgoNb2ZwX3RhYmxlX21vZBIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZBIWCgZjb25maWcYAiABKA1SBmNvbmZpZyKgAgoIb2ZwX3BvcnQSFwoHcG9ydF9ubxgBIAEoDVIGcG9ydE5vEhcKB2h3X2FkZHIYAiADKA1SBmh3QWRkchISCgRuYW1lGAMgASgJUgRuYW1lEhYKBmNvbmZpZxgEIAEoDVIGY29uZmlnEhQKBXN0YXRlGAUgASgNUgVzdGF0ZRISCgRjdXJyGAYgASgNUgRjdXJyEh4KCmFkdmVydGlzZWQYByABKA1SCmFkdmVydGlzZWQSHAoJc3VwcG9ydGVkGAggASgNUglzdXBwb3J0ZWQSEgoEcGVlchgJIAEoDVIEcGVlchIdCgpjdXJyX3NwZWVkGAogASgNUgljdXJyU3BlZWQSGwoJbWF4X3NwZWVkGAsgASgNUghtYXhTcGVlZCK1AQoTb2ZwX3N3aXRjaF9mZWF0dXJlcxIfCgtkYXRhcGF0aF9pZBgBIAEoBFIKZGF0YXBhdGhJZBIbCgluX2J1ZmZlcnMYAiABKA1SCG5CdWZmZXJzEhkKCG5fdGFibGVzGAMgASgNUgduVGFibGVzEiEKDGF1eGlsaWFyeV9pZBgEIAEoDVILYXV4aWxpYXJ5SWQSIgoMY2FwYWJpbGl0aWVzGAUgASgNUgxjYXBhYmlsaXRpZXMicgoPb2ZwX3BvcnRfc3RhdHVzEjQKBnJlYXNvbhgBIAEoDjIcLm9wZW5mbG93XzEzLm9mcF9wb3J0X3JlYXNvblIGcmVhc29uEikKBGRlc2MYAiABKAsyFS5vcGVuZmxvd18xMy5vZnBfcG9ydFIEZGVzYyKKAQoMb2ZwX3BvcnRfbW9kEhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIXCgdod19hZGRyGAIgAygNUgZod0FkZHISFgoGY29uZmlnGAMgASgNUgZjb25maWcSEgoEbWFzaxgEIAEoDVIEbWFzaxIcCglhZHZlcnRpc2UYBSABKA1SCWFkdmVydGlzZSJ3CglvZnBfbWF0Y2gSLwoEdHlwZRgBIAEoDjIbLm9wZW5mbG93XzEzLm9mcF9tYXRjaF90eXBlUgR0eXBlEjkKCm94bV9maWVsZHMYAiADKAsyGi5vcGVuZmxvd18xMy5vZnBfb3htX2ZpZWxkUglveG1GaWVsZHMi6gEKDW9mcF9veG1fZmllbGQSNwoJb3htX2NsYXNzGAEgASgOMhoub3BlbmZsb3dfMTMub2ZwX294bV9jbGFzc1IIb3htQ2xhc3MSPQoJb2ZiX2ZpZWxkGAQgASgLMh4ub3BlbmZsb3dfMTMub2ZwX294bV9vZmJfZmllbGRIAFIIb2ZiRmllbGQSWAoSZXhwZXJpbWVudGVyX2ZpZWxkGAUgASgLMicub3BlbmZsb3dfMTMub2ZwX294bV9leHBlcmltZW50ZXJfZmllbGRIAFIRZXhwZXJpbWVudGVyRmllbGRCBwoFZmllbGQi1w4KEW9mcF9veG1fb2ZiX2ZpZWxkEjQKBHR5cGUYASABKA4yIC5vcGVuZmxvd18xMy5veG1fb2ZiX2ZpZWxkX3R5cGVzUgR0eXBlEhkKCGhhc19tYXNrGAIgASgIUgdoYXNNYXNrEhQKBHBvcnQYAyABKA1IAFIEcG9ydBIlCg1waHlzaWNhbF9wb3J0GAQgASgNSABSDHBoeXNpY2FsUG9ydBInCg50YWJsZV9tZXRhZGF0YRgFIAEoBEgAUg10YWJsZU1ldGFkYXRhEhkKB2V0aF9kc3QYBiABKAxIAFIGZXRoRHN0EhkKB2V0aF9zcmMYByABKAxIAFIGZXRoU3JjEhsKCGV0aF90eXBlGAggASgNSABSB2V0aFR5cGUSGwoIdmxhbl92aWQYCSABKA1IAFIHdmxhblZpZBIbCgh2bGFuX3BjcBgKIAEoDUgAUgd2bGFuUGNwEhkKB2lwX2RzY3AYCyABKA1IAFIGaXBEc2NwEhcKBmlwX2VjbhgMIAEoDUgAUgVpcEVjbhIbCghpcF9wcm90bxgNIAEoDUgAUgdpcFByb3RvEhsKCGlwdjRfc3JjGA4gASgNSABSB2lwdjRTcmMSGwoIaXB2NF9kc3QYDyABKA1IAFIHaXB2NERzdBIZCgd0Y3Bfc3JjGBAgASgNSABSBnRjcFNyYxIZCgd0Y3BfZHN0GBEgASgNSABSBnRjcERzdBIZCgd1ZHBfc3JjGBIgASgNSABSBnVkcFNyYxIZCgd1ZHBfZHN0GBMgASgNSABSBnVkcERzdBIbCghzY3RwX3NyYxgUIAEoDUgAUgdzY3RwU3JjEhsKCHNjdHBfZHN0GBUgASgNSABSB3NjdHBEc3QSIQoLaWNtcHY0X3R5cGUYFiABKA1IAFIKaWNtcHY0VHlwZRIhCgtpY21wdjRfY29kZRgXIAEoDUgAUgppY21wdjRDb2RlEhcKBmFycF9vcBgYIAEoDUgAUgVhcnBPcBIZCgdhcnBfc3BhGBkgASgNSABSBmFycFNwYRIZCgdhcnBfdHBhGBogASgNSABSBmFycFRwYRIZCgdhcnBfc2hhGBsgASgMSABSBmFycFNoYRIZCgdhcnBfdGhhGBwgASgMSABSBmFycFRoYRIbCghpcHY2X3NyYxgdIAEoDEgAUgdpcHY2U3JjEhsKCGlwdjZfZHN0GB4gASgMSABSB2lwdjZEc3QSIQoLaXB2Nl9mbGFiZWwYHyABKA1IAFIKaXB2NkZsYWJlbBIhCgtpY21wdjZfdHlwZRggIAEoDUgAUgppY21wdjZUeXBlEiEKC2ljbXB2Nl9jb2RlGCEgASgNSABSCmljbXB2NkNvZGUSJgoOaXB2Nl9uZF90YXJnZXQYIiABKAxIAFIMaXB2Nk5kVGFyZ2V0EiAKC2lwdjZfbmRfc3NsGCMgASgMSABSCWlwdjZOZFNzbBIgCgtpcHY2X25kX3RsbBgkIAEoDEgAUglpcHY2TmRUbGwSHwoKbXBsc19sYWJlbBglIAEoDUgAUgltcGxzTGFiZWwSGQoHbXBsc190YxgmIAEoDUgAUgZtcGxzVGMSGwoIbXBsc19ib3MYJyABKA1IAFIHbXBsc0JvcxIbCghwYmJfaXNpZBgoIAEoDUgAUgdwYmJJc2lkEh0KCXR1bm5lbF9pZBgpIAEoBEgAUgh0dW5uZWxJZBIhCgtpcHY2X2V4dGhkchgqIAEoDUgAUgppcHY2RXh0aGRyEjAKE3RhYmxlX21ldGFkYXRhX21hc2sYaSABKARIAVIRdGFibGVNZXRhZGF0YU1hc2sSIgoMZXRoX2RzdF9tYXNrGGogASgMSAFSCmV0aERzdE1hc2sSIgoMZXRoX3NyY19tYXNrGGsgASgMSAFSCmV0aFNyY01hc2sSJAoNdmxhbl92aWRfbWFzaxhtIAEoDUgBUgt2bGFuVmlkTWFzaxIkCg1pcHY0X3NyY19tYXNrGHIgASgNSAFSC2lwdjRTcmNNYXNrEiQKDWlwdjRfZHN0X21hc2sYcyABKA1IAVILaXB2NERzdE1hc2sSIgoMYXJwX3NwYV9tYXNrGH0gASgNSAFSCmFycFNwYU1hc2sSIgoMYXJwX3RwYV9tYXNrGH4gASgNSAFSCmFycFRwYU1hc2sSJQoNaXB2Nl9zcmNfbWFzaxiBASABKAxIAVILaXB2NlNyY01hc2sSJQoNaXB2Nl9kc3RfbWFzaxiCASABKAxIAVILaXB2NkRzdE1hc2sSKwoQaXB2Nl9mbGFiZWxfbWFzaxiDASABKA1IAVIOaXB2NkZsYWJlbE1hc2sSJQoNcGJiX2lzaWRfbWFzaxiMASABKA1IAVILcGJiSXNpZE1hc2sSJwoOdHVubmVsX2lkX21hc2sYjQEgASgESAFSDHR1bm5lbElkTWFzaxIrChBpcHY2X2V4dGhkcl9tYXNrGI4BIAEoDUgBUg5pcHY2RXh0aGRyTWFza0IHCgV2YWx1ZUIGCgRtYXNrIl8KGm9mcF9veG1fZXhwZXJpbWVudGVyX2ZpZWxkEh0KCm94bV9oZWFkZXIYASABKA1SCW94bUhlYWRlchIiCgxleHBlcmltZW50ZXIYAiABKA1SDGV4cGVyaW1lbnRlciKyBAoKb2ZwX2FjdGlvbhIwCgR0eXBlGAEgASgOMhwub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl90eXBlUgR0eXBlEjgKBm91dHB1dBgCIAEoCzIeLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fb3V0cHV0SABSBm91dHB1dBI9CghtcGxzX3R0bBgDIAEoCzIgLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fbXBsc190dGxIAFIHbXBsc1R0bBIyCgRwdXNoGAQgASgLMhwub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9wdXNoSABSBHB1c2gSPQoIcG9wX21wbHMYBSABKAsyIC5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX3BvcF9tcGxzSABSB3BvcE1wbHMSNQoFZ3JvdXAYBiABKAsyHS5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX2dyb3VwSABSBWdyb3VwEjcKBm53X3R0bBgHIAEoCzIeLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fbndfdHRsSABSBW53VHRsEkAKCXNldF9maWVsZBgIIAEoCzIhLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fc2V0X2ZpZWxkSABSCHNldEZpZWxkEkoKDGV4cGVyaW1lbnRlchgJIAEoCzIkLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fZXhwZXJpbWVudGVySABSDGV4cGVyaW1lbnRlckIICgZhY3Rpb24iQAoRb2ZwX2FjdGlvbl9vdXRwdXQSEgoEcG9ydBgBIAEoDVIEcG9ydBIXCgdtYXhfbGVuGAIgASgNUgZtYXhMZW4iMAoTb2ZwX2FjdGlvbl9tcGxzX3R0bBIZCghtcGxzX3R0bBgBIAEoDVIHbXBsc1R0bCIvCg9vZnBfYWN0aW9uX3B1c2gSHAoJZXRoZXJ0eXBlGAEgASgNUglldGhlcnR5cGUiMwoTb2ZwX2FjdGlvbl9wb3BfbXBscxIcCglldGhlcnR5cGUYASABKA1SCWV0aGVydHlwZSItChBvZnBfYWN0aW9uX2dyb3VwEhkKCGdyb3VwX2lkGAEgASgNUgdncm91cElkIioKEW9mcF9hY3Rpb25fbndfdHRsEhUKBm53X3R0bBgBIAEoDVIFbndUdGwiSAoUb2ZwX2FjdGlvbl9zZXRfZmllbGQSMAoFZmllbGQYASABKAsyGi5vcGVuZmxvd18xMy5vZnBfb3htX2ZpZWxkUgVmaWVsZCJRChdvZnBfYWN0aW9uX2V4cGVyaW1lbnRlchIiCgxleHBlcmltZW50ZXIYASABKA1SDGV4cGVyaW1lbnRlchISCgRkYXRhGAIgASgMUgRkYXRhIpwDCg9vZnBfaW5zdHJ1Y3Rpb24SEgoEdHlwZRgBIAEoDVIEdHlwZRJICgpnb3RvX3RhYmxlGAIgASgLMicub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uX2dvdG9fdGFibGVIAFIJZ290b1RhYmxlElQKDndyaXRlX21ldGFkYXRhGAMgASgLMisub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uX3dyaXRlX21ldGFkYXRhSABSDXdyaXRlTWV0YWRhdGESQAoHYWN0aW9ucxgEIAEoCzIkLm9wZW5mbG93XzEzLm9mcF9pbnN0cnVjdGlvbl9hY3Rpb25zSABSB2FjdGlvbnMSOgoFbWV0ZXIYBSABKAsyIi5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25fbWV0ZXJIAFIFbWV0ZXISTwoMZXhwZXJpbWVudGVyGAYgASgLMikub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uX2V4cGVyaW1lbnRlckgAUgxleHBlcmltZW50ZXJCBgoEZGF0YSI3ChpvZnBfaW5zdHJ1Y3Rpb25fZ290b190YWJsZRIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZCJhCh5vZnBfaW5zdHJ1Y3Rpb25fd3JpdGVfbWV0YWRhdGESGgoIbWV0YWRhdGEYASABKARSCG1ldGFkYXRhEiMKDW1ldGFkYXRhX21hc2sYAiABKARSDG1ldGFkYXRhTWFzayJMChdvZnBfaW5zdHJ1Y3Rpb25fYWN0aW9ucxIxCgdhY3Rpb25zGAEgAygLMhcub3BlbmZsb3dfMTMub2ZwX2FjdGlvblIHYWN0aW9ucyIyChVvZnBfaW5zdHJ1Y3Rpb25fbWV0ZXISGQoIbWV0ZXJfaWQYASABKA1SB21ldGVySWQiVgocb2ZwX2luc3RydWN0aW9uX2V4cGVyaW1lbnRlchIiCgxleHBlcmltZW50ZXIYASABKA1SDGV4cGVyaW1lbnRlchISCgRkYXRhGAIgASgMUgRkYXRhItwDCgxvZnBfZmxvd19tb2QSFgoGY29va2llGAEgASgEUgZjb29raWUSHwoLY29va2llX21hc2sYAiABKARSCmNvb2tpZU1hc2sSGQoIdGFibGVfaWQYAyABKA1SB3RhYmxlSWQSOwoHY29tbWFuZBgEIAEoDjIhLm9wZW5mbG93XzEzLm9mcF9mbG93X21vZF9jb21tYW5kUgdjb21tYW5kEiEKDGlkbGVfdGltZW91dBgFIAEoDVILaWRsZVRpbWVvdXQSIQoMaGFyZF90aW1lb3V0GAYgASgNUgtoYXJkVGltZW91dBIaCghwcmlvcml0eRgHIAEoDVIIcHJpb3JpdHkSGwoJYnVmZmVyX2lkGAggASgNUghidWZmZXJJZBIZCghvdXRfcG9ydBgJIAEoDVIHb3V0UG9ydBIbCglvdXRfZ3JvdXAYCiABKA1SCG91dEdyb3VwEhQKBWZsYWdzGAsgASgNUgVmbGFncxIsCgVtYXRjaBgMIAEoCzIWLm9wZW5mbG93XzEzLm9mcF9tYXRjaFIFbWF0Y2gSQAoMaW5zdHJ1Y3Rpb25zGA0gAygLMhwub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uUgxpbnN0cnVjdGlvbnMilwEKCm9mcF9idWNrZXQSFgoGd2VpZ2h0GAEgASgNUgZ3ZWlnaHQSHQoKd2F0Y2hfcG9ydBgCIAEoDVIJd2F0Y2hQb3J0Eh8KC3dhdGNoX2dyb3VwGAMgASgNUgp3YXRjaEdyb3VwEjEKB2FjdGlvbnMYBCADKAsyFy5vcGVuZmxvd18xMy5vZnBfYWN0aW9uUgdhY3Rpb25zIswBCg1vZnBfZ3JvdXBfbW9kEjwKB2NvbW1hbmQYASABKA4yIi5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfbW9kX2NvbW1hbmRSB2NvbW1hbmQSLwoEdHlwZRgCIAEoDjIbLm9wZW5mbG93XzEzLm9mcF9ncm91cF90eXBlUgR0eXBlEhkKCGdyb3VwX2lkGAMgASgNUgdncm91cElkEjEKB2J1Y2tldHMYBCADKAsyFy5vcGVuZmxvd18xMy5vZnBfYnVja2V0UgdidWNrZXRzIo0BCg5vZnBfcGFja2V0X291dBIbCglidWZmZXJfaWQYASABKA1SCGJ1ZmZlcklkEhcKB2luX3BvcnQYAiABKA1SBmluUG9ydBIxCgdhY3Rpb25zGAMgAygLMhcub3BlbmZsb3dfMTMub2ZwX2FjdGlvblIHYWN0aW9ucxISCgRkYXRhGAQgASgMUgRkYXRhItwBCg1vZnBfcGFja2V0X2luEhsKCWJ1ZmZlcl9pZBgBIAEoDVIIYnVmZmVySWQSOQoGcmVhc29uGAIgASgOMiEub3BlbmZsb3dfMTMub2ZwX3BhY2tldF9pbl9yZWFzb25SBnJlYXNvbhIZCgh0YWJsZV9pZBgDIAEoDVIHdGFibGVJZBIWCgZjb29raWUYBCABKARSBmNvb2tpZRIsCgVtYXRjaBgFIAEoCzIWLm9wZW5mbG93XzEzLm9mcF9tYXRjaFIFbWF0Y2gSEgoEZGF0YRgGIAEoDFIEZGF0YSKdAwoQb2ZwX2Zsb3dfcmVtb3ZlZBIWCgZjb29raWUYASABKARSBmNvb2tpZRIaCghwcmlvcml0eRgCIAEoDVIIcHJpb3JpdHkSPAoGcmVhc29uGAMgASgOMiQub3BlbmZsb3dfMTMub2ZwX2Zsb3dfcmVtb3ZlZF9yZWFzb25SBnJlYXNvbhIZCgh0YWJsZV9pZBgEIAEoDVIHdGFibGVJZBIhCgxkdXJhdGlvbl9zZWMYBSABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYBiABKA1SDGR1cmF0aW9uTnNlYxIhCgxpZGxlX3RpbWVvdXQYByABKA1SC2lkbGVUaW1lb3V0EiEKDGhhcmRfdGltZW91dBgIIAEoDVILaGFyZFRpbWVvdXQSIQoMcGFja2V0X2NvdW50GAkgASgEUgtwYWNrZXRDb3VudBIdCgpieXRlX2NvdW50GAogASgEUglieXRlQ291bnQSLAoFbWF0Y2gYeSABKAsyFi5vcGVuZmxvd18xMy5vZnBfbWF0Y2hSBW1hdGNoItwCChVvZnBfbWV0ZXJfYmFuZF9oZWFkZXISNAoEdHlwZRgBIAEoDjIgLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX3R5cGVSBHR5cGUSEgoEcmF0ZRgCIAEoDVIEcmF0ZRIdCgpidXJzdF9zaXplGAMgASgNUglidXJzdFNpemUSNgoEZHJvcBgEIAEoCzIgLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX2Ryb3BIAFIEZHJvcBJKCgtkc2NwX3JlbWFyaxgFIAEoCzInLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX2RzY3BfcmVtYXJrSABSCmRzY3BSZW1hcmsSTgoMZXhwZXJpbWVudGVyGAYgASgLMigub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfZXhwZXJpbWVudGVySABSDGV4cGVyaW1lbnRlckIGCgRkYXRhIhUKE29mcF9tZXRlcl9iYW5kX2Ryb3AiOwoab2ZwX21ldGVyX2JhbmRfZHNjcF9yZW1hcmsSHQoKcHJlY19sZXZlbBgBIAEoDVIJcHJlY0xldmVsIkEKG29mcF9tZXRlcl9iYW5kX2V4cGVyaW1lbnRlchIiCgxleHBlcmltZW50ZXIYASABKA1SDGV4cGVyaW1lbnRlciK4AQoNb2ZwX21ldGVyX21vZBI8Cgdjb21tYW5kGAEgASgOMiIub3BlbmZsb3dfMTMub2ZwX21ldGVyX21vZF9jb21tYW5kUgdjb21tYW5kEhQKBWZsYWdzGAIgASgNUgVmbGFncxIZCghtZXRlcl9pZBgDIAEoDVIHbWV0ZXJJZBI4CgViYW5kcxgEIAMoCzIiLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX2hlYWRlclIFYmFuZHMiSwoNb2ZwX2Vycm9yX21zZxISCgR0eXBlGAEgASgNUgR0eXBlEhIKBGNvZGUYAiABKA1SBGNvZGUSEgoEZGF0YRgDIAEoDFIEZGF0YSKDAQoab2ZwX2Vycm9yX2V4cGVyaW1lbnRlcl9tc2cSEgoEdHlwZRgBIAEoDVIEdHlwZRIZCghleHBfdHlwZRgCIAEoDVIHZXhwVHlwZRIiCgxleHBlcmltZW50ZXIYAyABKA1SDGV4cGVyaW1lbnRlchISCgRkYXRhGAQgASgMUgRkYXRhInYKFW9mcF9tdWx0aXBhcnRfcmVxdWVzdBIzCgR0eXBlGAEgASgOMh8ub3BlbmZsb3dfMTMub2ZwX211bHRpcGFydF90eXBlUgR0eXBlEhQKBWZsYWdzGAIgASgNUgVmbGFncxISCgRib2R5GAMgASgMUgRib2R5InQKE29mcF9tdWx0aXBhcnRfcmVwbHkSMwoEdHlwZRgBIAEoDjIfLm9wZW5mbG93XzEzLm9mcF9tdWx0aXBhcnRfdHlwZVIEdHlwZRIUCgVmbGFncxgCIAEoDVIFZmxhZ3MSEgoEYm9keRgDIAEoDFIEYm9keSKPAQoIb2ZwX2Rlc2MSGQoIbWZyX2Rlc2MYASABKAlSB21mckRlc2MSFwoHaHdfZGVzYxgCIAEoCVIGaHdEZXNjEhcKB3N3X2Rlc2MYAyABKAlSBnN3RGVzYxIdCgpzZXJpYWxfbnVtGAQgASgJUglzZXJpYWxOdW0SFwoHZHBfZGVzYxgFIAEoCVIGZHBEZXNjItIBChZvZnBfZmxvd19zdGF0c19yZXF1ZXN0EhkKCHRhYmxlX2lkGAEgASgNUgd0YWJsZUlkEhkKCG91dF9wb3J0GAIgASgNUgdvdXRQb3J0EhsKCW91dF9ncm91cBgDIAEoDVIIb3V0R3JvdXASFgoGY29va2llGAQgASgEUgZjb29raWUSHwoLY29va2llX21hc2sYBSABKARSCmNvb2tpZU1hc2sSLAoFbWF0Y2gYBiABKAsyFi5vcGVuZmxvd18xMy5vZnBfbWF0Y2hSBW1hdGNoIsUDCg5vZnBfZmxvd19zdGF0cxIOCgJpZBgOIAEoBFICaWQSGQoIdGFibGVfaWQYASABKA1SB3RhYmxlSWQSIQoMZHVyYXRpb25fc2VjGAIgASgNUgtkdXJhdGlvblNlYxIjCg1kdXJhdGlvbl9uc2VjGAMgASgNUgxkdXJhdGlvbk5zZWMSGgoIcHJpb3JpdHkYBCABKA1SCHByaW9yaXR5EiEKDGlkbGVfdGltZW91dBgFIAEoDVILaWRsZVRpbWVvdXQSIQoMaGFyZF90aW1lb3V0GAYgASgNUgtoYXJkVGltZW91dBIUCgVmbGFncxgHIAEoDVIFZmxhZ3MSFgoGY29va2llGAggASgEUgZjb29raWUSIQoMcGFja2V0X2NvdW50GAkgASgEUgtwYWNrZXRDb3VudBIdCgpieXRlX2NvdW50GAogASgEUglieXRlQ291bnQSLAoFbWF0Y2gYDCABKAsyFi5vcGVuZmxvd18xMy5vZnBfbWF0Y2hSBW1hdGNoEkAKDGluc3RydWN0aW9ucxgNIAMoCzIcLm9wZW5mbG93XzEzLm9mcF9pbnN0cnVjdGlvblIMaW5zdHJ1Y3Rpb25zItcBChtvZnBfYWdncmVnYXRlX3N0YXRzX3JlcXVlc3QSGQoIdGFibGVfaWQYASABKA1SB3RhYmxlSWQSGQoIb3V0X3BvcnQYAiABKA1SB291dFBvcnQSGwoJb3V0X2dyb3VwGAMgASgNUghvdXRHcm91cBIWCgZjb29raWUYBCABKARSBmNvb2tpZRIfCgtjb29raWVfbWFzaxgFIAEoBFIKY29va2llTWFzaxIsCgVtYXRjaBgGIAEoCzIWLm9wZW5mbG93XzEzLm9mcF9tYXRjaFIFbWF0Y2gifAoZb2ZwX2FnZ3JlZ2F0ZV9zdGF0c19yZXBseRIhCgxwYWNrZXRfY291bnQYASABKARSC3BhY2tldENvdW50Eh0KCmJ5dGVfY291bnQYAiABKARSCWJ5dGVDb3VudBIdCgpmbG93X2NvdW50GAMgASgNUglmbG93Q291bnQi7QMKGm9mcF90YWJsZV9mZWF0dXJlX3Byb3BlcnR5EjwKBHR5cGUYASABKA4yKC5vcGVuZmxvd18xMy5vZnBfdGFibGVfZmVhdHVyZV9wcm9wX3R5cGVSBHR5cGUSVgoMaW5zdHJ1Y3Rpb25zGAIgASgLMjAub3BlbmZsb3dfMTMub2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9pbnN0cnVjdGlvbnNIAFIMaW5zdHJ1Y3Rpb25zElIKC25leHRfdGFibGVzGAMgASgLMi8ub3BlbmZsb3dfMTMub2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9uZXh0X3RhYmxlc0gAUgpuZXh0VGFibGVzEkcKB2FjdGlvbnMYBCABKAsyKy5vcGVuZmxvd18xMy5vZnBfdGFibGVfZmVhdHVyZV9wcm9wX2FjdGlvbnNIAFIHYWN0aW9ucxI7CgNveG0YBSABKAsyJy5vcGVuZmxvd18xMy5vZnBfdGFibGVfZmVhdHVyZV9wcm9wX294bUgAUgNveG0SVgoMZXhwZXJpbWVudGVyGAYgASgLMjAub3BlbmZsb3dfMTMub2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9leHBlcmltZW50ZXJIAFIMZXhwZXJpbWVudGVyQgcKBXZhbHVlImcKI29mcF90YWJsZV9mZWF0dXJlX3Byb3BfaW5zdHJ1Y3Rpb25zEkAKDGluc3RydWN0aW9ucxgBIAMoCzIcLm9wZW5mbG93XzEzLm9mcF9pbnN0cnVjdGlvblIMaW5zdHJ1Y3Rpb25zIkoKIm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfbmV4dF90YWJsZXMSJAoObmV4dF90YWJsZV9pZHMYASADKA1SDG5leHRUYWJsZUlkcyJTCh5vZnBfdGFibGVfZmVhdHVyZV9wcm9wX2FjdGlvbnMSMQoHYWN0aW9ucxgBIAMoCzIXLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25SB2FjdGlvbnMiNQoab2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9veG0SFwoHb3htX2lkcxgDIAMoDVIGb3htSWRzIpEBCiNvZnBfdGFibGVfZmVhdHVyZV9wcm9wX2V4cGVyaW1lbnRlchIiCgxleHBlcmltZW50ZXIYAiABKA1SDGV4cGVyaW1lbnRlchIZCghleHBfdHlwZRgDIAEoDVIHZXhwVHlwZRIrChFleHBlcmltZW50ZXJfZGF0YRgEIAMoDVIQZXhwZXJpbWVudGVyRGF0YSKTAgoSb2ZwX3RhYmxlX2ZlYXR1cmVzEhkKCHRhYmxlX2lkGAEgASgNUgd0YWJsZUlkEhIKBG5hbWUYAiABKAlSBG5hbWUSJQoObWV0YWRhdGFfbWF0Y2gYAyABKARSDW1ldGFkYXRhTWF0Y2gSJQoObWV0YWRhdGFfd3JpdGUYBCABKARSDW1ldGFkYXRhV3JpdGUSFgoGY29uZmlnGAUgASgNUgZjb25maWcSHwoLbWF4X2VudHJpZXMYBiABKA1SCm1heEVudHJpZXMSRwoKcHJvcGVydGllcxgHIAMoCzInLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3BlcnR5Ugpwcm9wZXJ0aWVzIpcBCg9vZnBfdGFibGVfc3RhdHMSGQoIdGFibGVfaWQYASABKA1SB3RhYmxlSWQSIQoMYWN0aXZlX2NvdW50GAIgASgNUgthY3RpdmVDb3VudBIhCgxsb29rdXBfY291bnQYAyABKARSC2xvb2t1cENvdW50EiMKDW1hdGNoZWRfY291bnQYBCABKARSDG1hdGNoZWRDb3VudCIxChZvZnBfcG9ydF9zdGF0c19yZXF1ZXN0EhcKB3BvcnRfbm8YASABKA1SBnBvcnRObyLdAwoOb2ZwX3BvcnRfc3RhdHMSFwoHcG9ydF9ubxgBIAEoDVIGcG9ydE5vEh0KCnJ4X3BhY2tldHMYAiABKARSCXJ4UGFja2V0cxIdCgp0eF9wYWNrZXRzGAMgASgEUgl0eFBhY2tldHMSGQoIcnhfYnl0ZXMYBCABKARSB3J4Qnl0ZXMSGQoIdHhfYnl0ZXMYBSABKARSB3R4Qnl0ZXMSHQoKcnhfZHJvcHBlZBgGIAEoBFIJcnhEcm9wcGVkEh0KCnR4X2Ryb3BwZWQYByABKARSCXR4RHJvcHBlZBIbCglyeF9lcnJvcnMYCCABKARSCHJ4RXJyb3JzEhsKCXR4X2Vycm9ycxgJIAEoBFIIdHhFcnJvcnMSIAoMcnhfZnJhbWVfZXJyGAogASgEUgpyeEZyYW1lRXJyEh4KC3J4X292ZXJfZXJyGAsgASgEUglyeE92ZXJFcnISHAoKcnhfY3JjX2VychgMIAEoBFIIcnhDcmNFcnISHgoKY29sbGlzaW9ucxgNIAEoBFIKY29sbGlzaW9ucxIhCgxkdXJhdGlvbl9zZWMYDiABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYDyABKA1SDGR1cmF0aW9uTnNlYyI0ChdvZnBfZ3JvdXBfc3RhdHNfcmVxdWVzdBIZCghncm91cF9pZBgBIAEoDVIHZ3JvdXBJZCJWChJvZnBfYnVja2V0X2NvdW50ZXISIQoMcGFja2V0X2NvdW50GAEgASgEUgtwYWNrZXRDb3VudBIdCgpieXRlX2NvdW50GAIgASgEUglieXRlQ291bnQilwIKD29mcF9ncm91cF9zdGF0cxIZCghncm91cF9pZBgBIAEoDVIHZ3JvdXBJZBIbCglyZWZfY291bnQYAiABKA1SCHJlZkNvdW50EiEKDHBhY2tldF9jb3VudBgDIAEoBFILcGFja2V0Q291bnQSHQoKYnl0ZV9jb3VudBgEIAEoBFIJYnl0ZUNvdW50EiEKDGR1cmF0aW9uX3NlYxgFIAEoDVILZHVyYXRpb25TZWMSIwoNZHVyYXRpb25fbnNlYxgGIAEoDVIMZHVyYXRpb25Oc2VjEkIKDGJ1Y2tldF9zdGF0cxgHIAMoCzIfLm9wZW5mbG93XzEzLm9mcF9idWNrZXRfY291bnRlclILYnVja2V0U3RhdHMijwEKDm9mcF9ncm91cF9kZXNjEi8KBHR5cGUYASABKA4yGy5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfdHlwZVIEdHlwZRIZCghncm91cF9pZBgCIAEoDVIHZ3JvdXBJZBIxCgdidWNrZXRzGAMgAygLMhcub3BlbmZsb3dfMTMub2ZwX2J1Y2tldFIHYnVja2V0cyKkAQoPb2ZwX2dyb3VwX2VudHJ5El0KBGRlc2MYASABKAsyGy5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfZGVzY0IsgvfNHQYKBGRlc2OC980dHBIab3BlbmZsb3dfMTMtb2ZwX2dyb3VwX2Rlc2NSBGRlc2MSMgoFc3RhdHMYAiABKAsyHC5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfc3RhdHNSBXN0YXRzIocBChJvZnBfZ3JvdXBfZmVhdHVyZXMSFAoFdHlwZXMYASABKA1SBXR5cGVzEiIKDGNhcGFiaWxpdGllcxgCIAEoDVIMY2FwYWJpbGl0aWVzEh0KCm1heF9ncm91cHMYAyADKA1SCW1heEdyb3VwcxIYCgdhY3Rpb25zGAQgAygNUgdhY3Rpb25zIjgKG29mcF9tZXRlcl9tdWx0aXBhcnRfcmVxdWVzdBIZCghtZXRlcl9pZBgBIAEoDVIHbWV0ZXJJZCJqChRvZnBfbWV0ZXJfYmFuZF9zdGF0cxIqChFwYWNrZXRfYmFuZF9jb3VudBgBIAEoBFIPcGFja2V0QmFuZENvdW50EiYKD2J5dGVfYmFuZF9jb3VudBgCIAEoBFINYnl0ZUJhbmRDb3VudCKhAgoPb2ZwX21ldGVyX3N0YXRzEhkKCG1ldGVyX2lkGAEgASgNUgdtZXRlcklkEh0KCmZsb3dfY291bnQYAiABKA1SCWZsb3dDb3VudBImCg9wYWNrZXRfaW5fY291bnQYAyABKARSDXBhY2tldEluQ291bnQSIgoNYnl0ZV9pbl9jb3VudBgEIAEoBFILYnl0ZUluQ291bnQSIQoMZHVyYXRpb25fc2VjGAUgASgNUgtkdXJhdGlvblNlYxIjCg1kdXJhdGlvbl9uc2VjGAYgASgNUgxkdXJhdGlvbk5zZWMSQAoKYmFuZF9zdGF0cxgHIAMoCzIhLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX3N0YXRzUgliYW5kU3RhdHMifQoQb2ZwX21ldGVyX2NvbmZpZxIUCgVmbGFncxgBIAEoDVIFZmxhZ3MSGQoIbWV0ZXJfaWQYAiABKA1SB21ldGVySWQSOAoFYmFuZHMYAyADKAsyIi5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfYmFuZF9oZWFkZXJSBWJhbmRzIq4BChJvZnBfbWV0ZXJfZmVhdHVyZXMSGwoJbWF4X21ldGVyGAEgASgNUghtYXhNZXRlchIdCgpiYW5kX3R5cGVzGAIgASgNUgliYW5kVHlwZXMSIgoMY2FwYWJpbGl0aWVzGAMgASgNUgxjYXBhYmlsaXRpZXMSGwoJbWF4X2JhbmRzGAQgASgNUghtYXhCYW5kcxIbCgltYXhfY29sb3IYBSABKA1SCG1heENvbG9yInYKIW9mcF9leHBlcmltZW50ZXJfbXVsdGlwYXJ0X2hlYWRlchIiCgxleHBlcmltZW50ZXIYASABKA1SDGV4cGVyaW1lbnRlchIZCghleHBfdHlwZRgCIAEoDVIHZXhwVHlwZRISCgRkYXRhGAMgASgMUgRkYXRhImwKF29mcF9leHBlcmltZW50ZXJfaGVhZGVyEiIKDGV4cGVyaW1lbnRlchgBIAEoDVIMZXhwZXJpbWVudGVyEhkKCGV4cF90eXBlGAIgASgNUgdleHBUeXBlEhIKBGRhdGEYAyABKAxSBGRhdGEiRQoVb2ZwX3F1ZXVlX3Byb3BfaGVhZGVyEhoKCHByb3BlcnR5GAEgASgNUghwcm9wZXJ0eRIQCgNsZW4YAiABKA1SA2xlbiJyChdvZnBfcXVldWVfcHJvcF9taW5fcmF0ZRJDCgtwcm9wX2hlYWRlchgBIAEoCzIiLm9wZW5mbG93XzEzLm9mcF9xdWV1ZV9wcm9wX2hlYWRlclIKcHJvcEhlYWRlchISCgRyYXRlGAIgASgNUgRyYXRlInIKF29mcF9xdWV1ZV9wcm9wX21heF9yYXRlEkMKC3Byb3BfaGVhZGVyGAEgASgLMiIub3BlbmZsb3dfMTMub2ZwX3F1ZXVlX3Byb3BfaGVhZGVyUgpwcm9wSGVhZGVyEhIKBHJhdGUYAiABKA1SBHJhdGUimgEKG29mcF9xdWV1ZV9wcm9wX2V4cGVyaW1lbnRlchJDCgtwcm9wX2hlYWRlchgBIAEoCzIiLm9wZW5mbG93XzEzLm9mcF9xdWV1ZV9wcm9wX2hlYWRlclIKcHJvcEhlYWRlchIiCgxleHBlcmltZW50ZXIYAiABKA1SDGV4cGVyaW1lbnRlchISCgRkYXRhGAMgASgMUgRkYXRhIoUBChBvZnBfcGFja2V0X3F1ZXVlEhkKCHF1ZXVlX2lkGAEgASgNUgdxdWV1ZUlkEhIKBHBvcnQYAiABKA1SBHBvcnQSQgoKcHJvcGVydGllcxgEIAMoCzIiLm9wZW5mbG93XzEzLm9mcF9xdWV1ZV9wcm9wX2hlYWRlclIKcHJvcGVydGllcyIyChxvZnBfcXVldWVfZ2V0X2NvbmZpZ19yZXF1ZXN0EhIKBHBvcnQYASABKA1SBHBvcnQiZwoab2ZwX3F1ZXVlX2dldF9jb25maWdfcmVwbHkSEgoEcG9ydBgBIAEoDVIEcG9ydBI1CgZxdWV1ZXMYAiADKAsyHS5vcGVuZmxvd18xMy5vZnBfcGFja2V0X3F1ZXVlUgZxdWV1ZXMiRQoUb2ZwX2FjdGlvbl9zZXRfcXVldWUSEgoEdHlwZRgBIAEoDVIEdHlwZRIZCghxdWV1ZV9pZBgDIAEoDVIHcXVldWVJZCJNChdvZnBfcXVldWVfc3RhdHNfcmVxdWVzdBIXCgdwb3J0X25vGAEgASgNUgZwb3J0Tm8SGQoIcXVldWVfaWQYAiABKA1SB3F1ZXVlSWQi5AEKD29mcF9xdWV1ZV9zdGF0cxIXCgdwb3J0X25vGAEgASgNUgZwb3J0Tm8SGQoIcXVldWVfaWQYAiABKA1SB3F1ZXVlSWQSGQoIdHhfYnl0ZXMYAyABKARSB3R4Qnl0ZXMSHQoKdHhfcGFja2V0cxgEIAEoBFIJdHhQYWNrZXRzEhsKCXR4X2Vycm9ycxgFIAEoBFIIdHhFcnJvcnMSIQoMZHVyYXRpb25fc2VjGAYgASgNUgtkdXJhdGlvblNlYxIjCg1kdXJhdGlvbl9uc2VjGAcgASgNUgxkdXJhdGlvbk5zZWMibQoQb2ZwX3JvbGVfcmVxdWVzdBI0CgRyb2xlGAEgASgOMiAub3BlbmZsb3dfMTMub2ZwX2NvbnRyb2xsZXJfcm9sZVIEcm9sZRIjCg1nZW5lcmF0aW9uX2lkGAIgASgEUgxnZW5lcmF0aW9uSWQijgEKEG9mcF9hc3luY19jb25maWcSJAoOcGFja2V0X2luX21hc2sYASADKA1SDHBhY2tldEluTWFzaxIoChBwb3J0X3N0YXR1c19tYXNrGAIgAygNUg5wb3J0U3RhdHVzTWFzaxIqChFmbG93X3JlbW92ZWRfbWFzaxgDIAMoDVIPZmxvd1JlbW92ZWRNYXNrIlkKDk1ldGVyTW9kVXBkYXRlEg4KAmlkGAEgASgJUgJpZBI3CgltZXRlcl9tb2QYAiABKAsyGi5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfbW9kUghtZXRlck1vZCJQCg9NZXRlclN0YXRzUmVwbHkSPQoLbWV0ZXJfc3RhdHMYASADKAsyHC5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfc3RhdHNSCm1ldGVyU3RhdHMiVwoPRmxvd1RhYmxlVXBkYXRlEg4KAmlkGAEgASgJUgJpZBI0CghmbG93X21vZBgCIAEoCzIZLm9wZW5mbG93XzEzLm9mcF9mbG93X21vZFIHZmxvd01vZCJfChRGbG93R3JvdXBUYWJsZVVwZGF0ZRIOCgJpZBgBIAEoCVICaWQSNwoJZ3JvdXBfbW9kGAIgASgLMhoub3BlbmZsb3dfMTMub2ZwX2dyb3VwX21vZFIIZ3JvdXBNb2QiOgoFRmxvd3MSMQoFaXRlbXMYASADKAsyGy5vcGVuZmxvd18xMy5vZnBfZmxvd19zdGF0c1IFaXRlbXMiPQoGTWV0ZXJzEjMKBWl0ZW1zGAEgAygLMh0ub3BlbmZsb3dfMTMub2ZwX21ldGVyX2NvbmZpZ1IFaXRlbXMiQAoKRmxvd0dyb3VwcxIyCgVpdGVtcxgBIAMoCzIcLm9wZW5mbG93XzEzLm9mcF9ncm91cF9lbnRyeVIFaXRlbXMiaQoLRmxvd0NoYW5nZXMSKQoGdG9fYWRkGAEgASgLMhIub3BlbmZsb3dfMTMuRmxvd3NSBXRvQWRkEi8KCXRvX3JlbW92ZRgCIAEoCzISLm9wZW5mbG93XzEzLkZsb3dzUgh0b1JlbW92ZSKuAQoQRmxvd0dyb3VwQ2hhbmdlcxIuCgZ0b19hZGQYASABKAsyFy5vcGVuZmxvd18xMy5GbG93R3JvdXBzUgV0b0FkZBI0Cgl0b19yZW1vdmUYAiABKAsyFy5vcGVuZmxvd18xMy5GbG93R3JvdXBzUgh0b1JlbW92ZRI0Cgl0b191cGRhdGUYAyABKAsyFy5vcGVuZmxvd18xMy5GbG93R3JvdXBzUgh0b1VwZGF0ZSJTCghQYWNrZXRJbhIOCgJpZBgBIAEoCVICaWQSNwoJcGFja2V0X2luGAIgASgLMhoub3BlbmZsb3dfMTMub2ZwX3BhY2tldF9pblIIcGFja2V0SW4iVwoJUGFja2V0T3V0Eg4KAmlkGAEgASgJUgJpZBI6CgpwYWNrZXRfb3V0GAIgASgLMhsub3BlbmZsb3dfMTMub2ZwX3BhY2tldF9vdXRSCXBhY2tldE91dCJnCgtDaGFuZ2VFdmVudBIOCgJpZBgBIAEoCVICaWQSPwoLcG9ydF9zdGF0dXMYAiABKAsyHC5vcGVuZmxvd18xMy5vZnBfcG9ydF9zdGF0dXNIAFIKcG9ydFN0YXR1c0IHCgVldmVudCrVAQoLb2ZwX3BvcnRfbm8SEAoMT0ZQUF9JTlZBTElEEAASEAoIT0ZQUF9NQVgQgP7//wcSFAoMT0ZQUF9JTl9QT1JUEPj///8HEhIKCk9GUFBfVEFCTEUQ+f///wcSEwoLT0ZQUF9OT1JNQUwQ+v///wcSEgoKT0ZQUF9GTE9PRBD7////BxIQCghPRlBQX0FMTBD8////BxIXCg9PRlBQX0NPTlRST0xMRVIQ/f///wcSEgoKT0ZQUF9MT0NBTBD+////BxIQCghPRlBQX0FOWRD/////ByrIBQoIb2ZwX3R5cGUSDgoKT0ZQVF9IRUxMTxAAEg4KCk9GUFRfRVJST1IQARIVChFPRlBUX0VDSE9fUkVRVUVTVBACEhMKD09GUFRfRUNIT19SRVBMWRADEhUKEU9GUFRfRVhQRVJJTUVOVEVSEAQSGQoVT0ZQVF9GRUFUVVJFU19SRVFVRVNUEAUSFwoTT0ZQVF9GRUFUVVJFU19SRVBMWRAGEhsKF09GUFRfR0VUX0NPTkZJR19SRVFVRVNUEAcSGQoVT0ZQVF9HRVRfQ09ORklHX1JFUExZEAgSEwoPT0ZQVF9TRVRfQ09ORklHEAkSEgoOT0ZQVF9QQUNLRVRfSU4QChIVChFPRlBUX0ZMT1dfUkVNT1ZFRBALEhQKEE9GUFRfUE9SVF9TVEFUVVMQDBITCg9PRlBUX1BBQ0tFVF9PVVQQDRIRCg1PRlBUX0ZMT1dfTU9EEA4SEgoOT0ZQVF9HUk9VUF9NT0QQDxIRCg1PRlBUX1BPUlRfTU9EEBASEgoOT0ZQVF9UQUJMRV9NT0QQERIaChZPRlBUX01VTFRJUEFSVF9SRVFVRVNUEBISGAoUT0ZQVF9NVUxUSVBBUlRfUkVQTFkQExIYChRPRlBUX0JBUlJJRVJfUkVRVUVTVBAUEhYKEk9GUFRfQkFSUklFUl9SRVBMWRAVEiEKHU9GUFRfUVVFVUVfR0VUX0NPTkZJR19SRVFVRVNUEBYSHwobT0ZQVF9RVUVVRV9HRVRfQ09ORklHX1JFUExZEBcSFQoRT0ZQVF9ST0xFX1JFUVVFU1QQGBITCg9PRlBUX1JPTEVfUkVQTFkQGRIaChZPRlBUX0dFVF9BU1lOQ19SRVFVRVNUEBoSGAoUT0ZQVF9HRVRfQVNZTkNfUkVQTFkQGxISCg5PRlBUX1NFVF9BU1lOQxAcEhIKDk9GUFRfTUVURVJfTU9EEB0qQwoTb2ZwX2hlbGxvX2VsZW1fdHlwZRISCg5PRlBIRVRfSU5WQUxJRBAAEhgKFE9GUEhFVF9WRVJTSU9OQklUTUFQEAEqZQoQb2ZwX2NvbmZpZ19mbGFncxIUChBPRlBDX0ZSQUdfTk9STUFMEAASEgoOT0ZQQ19GUkFHX0RST1AQARITCg9PRlBDX0ZSQUdfUkVBU00QAhISCg5PRlBDX0ZSQUdfTUFTSxADKkAKEG9mcF90YWJsZV9jb25maWcSEQoNT0ZQVENfSU5WQUxJRBAAEhkKFU9GUFRDX0RFUFJFQ0FURURfTUFTSxADKj4KCW9mcF90YWJsZRIRCg1PRlBUVF9JTlZBTElEEAASDgoJT0ZQVFRfTUFYEP4BEg4KCU9GUFRUX0FMTBD/ASq7AQoQb2ZwX2NhcGFiaWxpdGllcxIQCgxPRlBDX0lOVkFMSUQQABITCg9PRlBDX0ZMT1dfU1RBVFMQARIUChBPRlBDX1RBQkxFX1NUQVRTEAISEwoPT0ZQQ19QT1JUX1NUQVRTEAQSFAoQT0ZQQ19HUk9VUF9TVEFUUxAIEhEKDU9GUENfSVBfUkVBU00QIBIUChBPRlBDX1FVRVVFX1NUQVRTEEASFgoRT0ZQQ19QT1JUX0JMT0NLRUQQgAIqdgoPb2ZwX3BvcnRfY29uZmlnEhEKDU9GUFBDX0lOVkFMSUQQABITCg9PRlBQQ19QT1JUX0RPV04QARIRCg1PRlBQQ19OT19SRUNWEAQSEAoMT0ZQUENfTk9fRldEECASFgoST0ZQUENfTk9fUEFDS0VUX0lOEEAqWwoOb2ZwX3BvcnRfc3RhdGUSEQoNT0ZQUFNfSU5WQUxJRBAAEhMKD09GUFBTX0xJTktfRE9XThABEhEKDU9GUFBTX0JMT0NLRUQQAhIOCgpPRlBQU19MSVZFEAQq3QIKEW9mcF9wb3J0X2ZlYXR1cmVzEhEKDU9GUFBGX0lOVkFMSUQQABIRCg1PRlBQRl8xME1CX0hEEAESEQoNT0ZQUEZfMTBNQl9GRBACEhIKDk9GUFBGXzEwME1CX0hEEAQSEgoOT0ZQUEZfMTAwTUJfRkQQCBIQCgxPRlBQRl8xR0JfSEQQEBIQCgxPRlBQRl8xR0JfRkQQIBIRCg1PRlBQRl8xMEdCX0ZEEEASEgoNT0ZQUEZfNDBHQl9GRBCAARITCg5PRlBQRl8xMDBHQl9GRBCAAhIRCgxPRlBQRl8xVEJfRkQQgAQSEAoLT0ZQUEZfT1RIRVIQgAgSEQoMT0ZQUEZfQ09QUEVSEIAQEhAKC09GUFBGX0ZJQkVSEIAgEhIKDU9GUFBGX0FVVE9ORUcQgEASEQoLT0ZQUEZfUEFVU0UQgIABEhYKEE9GUFBGX1BBVVNFX0FTWU0QgIACKkQKD29mcF9wb3J0X3JlYXNvbhINCglPRlBQUl9BREQQABIQCgxPRlBQUl9ERUxFVEUQARIQCgxPRlBQUl9NT0RJRlkQAiozCg5vZnBfbWF0Y2hfdHlwZRISCg5PRlBNVF9TVEFOREFSRBAAEg0KCU9GUE1UX09YTRABKmsKDW9mcF9veG1fY2xhc3MSEAoMT0ZQWE1DX05YTV8wEAASEAoMT0ZQWE1DX05YTV8xEAESGwoVT0ZQWE1DX09QRU5GTE9XX0JBU0lDEICAAhIZChNPRlBYTUNfRVhQRVJJTUVOVEVSEP//AyqQCAoTb3htX29mYl9maWVsZF90eXBlcxIWChJPRlBYTVRfT0ZCX0lOX1BPUlQQABIaChZPRlBYTVRfT0ZCX0lOX1BIWV9QT1JUEAESFwoTT0ZQWE1UX09GQl9NRVRBREFUQRACEhYKEk9GUFhNVF9PRkJfRVRIX0RTVBADEhYKEk9GUFhNVF9PRkJfRVRIX1NSQxAEEhcKE09GUFhNVF9PRkJfRVRIX1RZUEUQBRIXChNPRlBYTVRfT0ZCX1ZMQU5fVklEEAYSFwoTT0ZQWE1UX09GQl9WTEFOX1BDUBAHEhYKEk9GUFhNVF9PRkJfSVBfRFNDUBAIEhUKEU9GUFhNVF9PRkJfSVBfRUNOEAkSFwoTT0ZQWE1UX09GQl9JUF9QUk9UTxAKEhcKE09GUFhNVF9PRkJfSVBWNF9TUkMQCxIXChNPRlBYTVRfT0ZCX0lQVjRfRFNUEAwSFgoST0ZQWE1UX09GQl9UQ1BfU1JDEA0SFgoST0ZQWE1UX09GQl9UQ1BfRFNUEA4SFgoST0ZQWE1UX09GQl9VRFBfU1JDEA8SFgoST0ZQWE1UX09GQl9VRFBfRFNUEBASFwoTT0ZQWE1UX09GQl9TQ1RQX1NSQxAREhcKE09GUFhNVF9PRkJfU0NUUF9EU1QQEhIaChZPRlBYTVRfT0ZCX0lDTVBWNF9UWVBFEBMSGgoWT0ZQWE1UX09GQl9JQ01QVjRfQ09ERRAUEhUKEU9GUFhNVF9PRkJfQVJQX09QEBUSFgoST0ZQWE1UX09GQl9BUlBfU1BBEBYSFgoST0ZQWE1UX09GQl9BUlBfVFBBEBcSFgoST0ZQWE1UX09GQl9BUlBfU0hBEBgSFgoST0ZQWE1UX09GQl9BUlBfVEhBEBkSFwoTT0ZQWE1UX09GQl9JUFY2X1NSQxAaEhcKE09GUFhNVF9PRkJfSVBWNl9EU1QQGxIaChZPRlBYTVRfT0ZCX0lQVjZfRkxBQkVMEBwSGgoWT0ZQWE1UX09GQl9JQ01QVjZfVFlQRRAdEhoKFk9GUFhNVF9PRkJfSUNNUFY2X0NPREUQHhIdChlPRlBYTVRfT0ZCX0lQVjZfTkRfVEFSR0VUEB8SGgoWT0ZQWE1UX09GQl9JUFY2X05EX1NMTBAgEhoKFk9GUFhNVF9PRkJfSVBWNl9ORF9UTEwQIRIZChVPRlBYTVRfT0ZCX01QTFNfTEFCRUwQIhIWChJPRlBYTVRfT0ZCX01QTFNfVEMQIxIXChNPRlBYTVRfT0ZCX01QTFNfQk9TECQSFwoTT0ZQWE1UX09GQl9QQkJfSVNJRBAlEhgKFE9GUFhNVF9PRkJfVFVOTkVMX0lEECYSGgoWT0ZQWE1UX09GQl9JUFY2X0VYVEhEUhAnKjMKC29mcF92bGFuX2lkEg8KC09GUFZJRF9OT05FEAASEwoOT0ZQVklEX1BSRVNFTlQQgCAqyQEKFG9mcF9pcHY2ZXh0aGRyX2ZsYWdzEhIKDk9GUElFSF9JTlZBTElEEAASEQoNT0ZQSUVIX05PTkVYVBABEg4KCk9GUElFSF9FU1AQAhIPCgtPRlBJRUhfQVVUSBAEEg8KC09GUElFSF9ERVNUEAgSDwoLT0ZQSUVIX0ZSQUcQEBIRCg1PRlBJRUhfUk9VVEVSECASDgoKT0ZQSUVIX0hPUBBAEhEKDE9GUElFSF9VTlJFUBCAARIRCgxPRlBJRUhfVU5TRVEQgAIq/AIKD29mcF9hY3Rpb25fdHlwZRIQCgxPRlBBVF9PVVRQVVQQABIWChJPRlBBVF9DT1BZX1RUTF9PVVQQCxIVChFPRlBBVF9DT1BZX1RUTF9JThAMEhYKEk9GUEFUX1NFVF9NUExTX1RUTBAPEhYKEk9GUEFUX0RFQ19NUExTX1RUTBAQEhMKD09GUEFUX1BVU0hfVkxBThAREhIKDk9GUEFUX1BPUF9WTEFOEBISEwoPT0ZQQVRfUFVTSF9NUExTEBMSEgoOT0ZQQVRfUE9QX01QTFMQFBITCg9PRlBBVF9TRVRfUVVFVUUQFRIPCgtPRlBBVF9HUk9VUBAWEhQKEE9GUEFUX1NFVF9OV19UVEwQFxIUChBPRlBBVF9ERUNfTldfVFRMEBgSEwoPT0ZQQVRfU0VUX0ZJRUxEEBkSEgoOT0ZQQVRfUFVTSF9QQkIQGhIRCg1PRlBBVF9QT1BfUEJCEBsSGAoST0ZQQVRfRVhQRVJJTUVOVEVSEP//AypWChZvZnBfY29udHJvbGxlcl9tYXhfbGVuEhIKDk9GUENNTF9JTlZBTElEEAASEAoKT0ZQQ01MX01BWBDl/wMSFgoQT0ZQQ01MX05PX0JVRkZFUhD//wMqzwEKFG9mcF9pbnN0cnVjdGlvbl90eXBlEhEKDU9GUElUX0lOVkFMSUQQABIUChBPRlBJVF9HT1RPX1RBQkxFEAESGAoUT0ZQSVRfV1JJVEVfTUVUQURBVEEQAhIXChNPRlBJVF9XUklURV9BQ1RJT05TEAMSFwoTT0ZQSVRfQVBQTFlfQUNUSU9OUxAEEhcKE09GUElUX0NMRUFSX0FDVElPTlMQBRIPCgtPRlBJVF9NRVRFUhAGEhgKEk9GUElUX0VYUEVSSU1FTlRFUhD//wMqewoUb2ZwX2Zsb3dfbW9kX2NvbW1hbmQSDQoJT0ZQRkNfQUREEAASEAoMT0ZQRkNfTU9ESUZZEAESFwoTT0ZQRkNfTU9ESUZZX1NUUklDVBACEhAKDE9GUEZDX0RFTEVURRADEhcKE09GUEZDX0RFTEVURV9TVFJJQ1QQBCqjAQoSb2ZwX2Zsb3dfbW9kX2ZsYWdzEhEKDU9GUEZGX0lOVkFMSUQQABIXChNPRlBGRl9TRU5EX0ZMT1dfUkVNEAESFwoTT0ZQRkZfQ0hFQ0tfT1ZFUkxBUBACEhYKEk9GUEZGX1JFU0VUX0NPVU5UUxAEEhcKE09GUEZGX05PX1BLVF9DT1VOVFMQCBIXChNPRlBGRl9OT19CWVRfQ09VTlRTEBAqUwoJb2ZwX2dyb3VwEhAKDE9GUEdfSU5WQUxJRBAAEhAKCE9GUEdfTUFYEID+//8HEhAKCE9GUEdfQUxMEPz///8HEhAKCE9GUEdfQU5ZEP////8HKkoKFW9mcF9ncm91cF9tb2RfY29tbWFuZBINCglPRlBHQ19BREQQABIQCgxPRlBHQ19NT0RJRlkQARIQCgxPRlBHQ19ERUxFVEUQAipTCg5vZnBfZ3JvdXBfdHlwZRINCglPRlBHVF9BTEwQABIQCgxPRlBHVF9TRUxFQ1QQARISCg5PRlBHVF9JTkRJUkVDVBACEgwKCE9GUEdUX0ZGEAMqUAoUb2ZwX3BhY2tldF9pbl9yZWFzb24SEQoNT0ZQUl9OT19NQVRDSBAAEg8KC09GUFJfQUNUSU9OEAESFAoQT0ZQUl9JTlZBTElEX1RUTBACKosBChdvZnBfZmxvd19yZW1vdmVkX3JlYXNvbhIWChJPRlBSUl9JRExFX1RJTUVPVVQQABIWChJPRlBSUl9IQVJEX1RJTUVPVVQQARIQCgxPRlBSUl9ERUxFVEUQAhIWChJPRlBSUl9HUk9VUF9ERUxFVEUQAxIWChJPRlBSUl9NRVRFUl9ERUxFVEUQBCpuCglvZnBfbWV0ZXISDQoJT0ZQTV9aRVJPEAASEAoIT0ZQTV9NQVgQgID8/wcSFQoNT0ZQTV9TTE9XUEFUSBD9////BxIXCg9PRlBNX0NPTlRST0xMRVIQ/v///wcSEAoIT0ZQTV9BTEwQ/////wcqbQoTb2ZwX21ldGVyX2JhbmRfdHlwZRISCg5PRlBNQlRfSU5WQUxJRBAAEg8KC09GUE1CVF9EUk9QEAESFgoST0ZQTUJUX0RTQ1BfUkVNQVJLEAISGQoTT0ZQTUJUX0VYUEVSSU1FTlRFUhD//wMqSgoVb2ZwX21ldGVyX21vZF9jb21tYW5kEg0KCU9GUE1DX0FERBAAEhAKDE9GUE1DX01PRElGWRABEhAKDE9GUE1DX0RFTEVURRACKmcKD29mcF9tZXRlcl9mbGFncxIRCg1PRlBNRl9JTlZBTElEEAASDgoKT0ZQTUZfS0JQUxABEg8KC09GUE1GX1BLVFBTEAISDwoLT0ZQTUZfQlVSU1QQBBIPCgtPRlBNRl9TVEFUUxAIKqQDCg5vZnBfZXJyb3JfdHlwZRIWChJPRlBFVF9IRUxMT19GQUlMRUQQABIVChFPRlBFVF9CQURfUkVRVUVTVBABEhQKEE9GUEVUX0JBRF9BQ1RJT04QAhIZChVPRlBFVF9CQURfSU5TVFJVQ1RJT04QAxITCg9PRlBFVF9CQURfTUFUQ0gQBBIZChVPRlBFVF9GTE9XX01PRF9GQUlMRUQQBRIaChZPRlBFVF9HUk9VUF9NT0RfRkFJTEVEEAYSGQoVT0ZQRVRfUE9SVF9NT0RfRkFJTEVEEAcSGgoWT0ZQRVRfVEFCTEVfTU9EX0ZBSUxFRBAIEhkKFU9GUEVUX1FVRVVFX09QX0ZBSUxFRBAJEh4KGk9GUEVUX1NXSVRDSF9DT05GSUdfRkFJTEVEEAoSHQoZT0ZQRVRfUk9MRV9SRVFVRVNUX0ZBSUxFRBALEhoKFk9GUEVUX01FVEVSX01PRF9GQUlMRUQQDBIfChtPRlBFVF9UQUJMRV9GRUFUVVJFU19GQUlMRUQQDRIYChJPRlBFVF9FWFBFUklNRU5URVIQ//8DKkIKFW9mcF9oZWxsb19mYWlsZWRfY29kZRIXChNPRlBIRkNfSU5DT01QQVRJQkxFEAASEAoMT0ZQSEZDX0VQRVJNEAEq7QIKFG9mcF9iYWRfcmVxdWVzdF9jb2RlEhYKEk9GUEJSQ19CQURfVkVSU0lPThAAEhMKD09GUEJSQ19CQURfVFlQRRABEhgKFE9GUEJSQ19CQURfTVVMVElQQVJUEAISGwoXT0ZQQlJDX0JBRF9FWFBFUklNRU5URVIQAxIXChNPRlBCUkNfQkFEX0VYUF9UWVBFEAQSEAoMT0ZQQlJDX0VQRVJNEAUSEgoOT0ZQQlJDX0JBRF9MRU4QBhIXChNPRlBCUkNfQlVGRkVSX0VNUFRZEAcSGQoVT0ZQQlJDX0JVRkZFUl9VTktOT1dOEAgSFwoTT0ZQQlJDX0JBRF9UQUJMRV9JRBAJEhMKD09GUEJSQ19JU19TTEFWRRAKEhMKD09GUEJSQ19CQURfUE9SVBALEhUKEU9GUEJSQ19CQURfUEFDS0VUEAwSJAogT0ZQQlJDX01VTFRJUEFSVF9CVUZGRVJfT1ZFUkZMT1cQDSqcAwoTb2ZwX2JhZF9hY3Rpb25fY29kZRITCg9PRlBCQUNfQkFEX1RZUEUQABISCg5PRlBCQUNfQkFEX0xFThABEhsKF09GUEJBQ19CQURfRVhQRVJJTUVOVEVSEAISFwoTT0ZQQkFDX0JBRF9FWFBfVFlQRRADEhcKE09GUEJBQ19CQURfT1VUX1BPUlQQBBIXChNPRlBCQUNfQkFEX0FSR1VNRU5UEAUSEAoMT0ZQQkFDX0VQRVJNEAYSEwoPT0ZQQkFDX1RPT19NQU5ZEAcSFAoQT0ZQQkFDX0JBRF9RVUVVRRAIEhgKFE9GUEJBQ19CQURfT1VUX0dST1VQEAkSHQoZT0ZQQkFDX01BVENIX0lOQ09OU0lTVEVOVBAKEhwKGE9GUEJBQ19VTlNVUFBPUlRFRF9PUkRFUhALEhIKDk9GUEJBQ19CQURfVEFHEAwSFwoTT0ZQQkFDX0JBRF9TRVRfVFlQRRANEhYKEk9GUEJBQ19CQURfU0VUX0xFThAOEhsKF09GUEJBQ19CQURfU0VUX0FSR1VNRU5UEA8q+gEKGG9mcF9iYWRfaW5zdHJ1Y3Rpb25fY29kZRIXChNPRlBCSUNfVU5LTk9XTl9JTlNUEAASFQoRT0ZQQklDX1VOU1VQX0lOU1QQARIXChNPRlBCSUNfQkFEX1RBQkxFX0lEEAISGQoVT0ZQQklDX1VOU1VQX01FVEFEQVRBEAMSHgoaT0ZQQklDX1VOU1VQX01FVEFEQVRBX01BU0sQBBIbChdPRlBCSUNfQkFEX0VYUEVSSU1FTlRFUhAFEhcKE09GUEJJQ19CQURfRVhQX1RZUEUQBhISCg5PRlBCSUNfQkFEX0xFThAHEhAKDE9GUEJJQ19FUEVSTRAIKqUCChJvZnBfYmFkX21hdGNoX2NvZGUSEwoPT0ZQQk1DX0JBRF9UWVBFEAASEgoOT0ZQQk1DX0JBRF9MRU4QARISCg5PRlBCTUNfQkFEX1RBRxACEhsKF09GUEJNQ19CQURfRExfQUREUl9NQVNLEAMSGwoXT0ZQQk1DX0JBRF9OV19BRERSX01BU0sQBBIYChRPRlBCTUNfQkFEX1dJTERDQVJEUxAFEhQKEE9GUEJNQ19CQURfRklFTEQQBhIUChBPRlBCTUNfQkFEX1ZBTFVFEAcSEwoPT0ZQQk1DX0JBRF9NQVNLEAgSFQoRT0ZQQk1DX0JBRF9QUkVSRVEQCRIUChBPRlBCTUNfRFVQX0ZJRUxEEAoSEAoMT0ZQQk1DX0VQRVJNEAsq0gEKGG9mcF9mbG93X21vZF9mYWlsZWRfY29kZRITCg9PRlBGTUZDX1VOS05PV04QABIWChJPRlBGTUZDX1RBQkxFX0ZVTEwQARIYChRPRlBGTUZDX0JBRF9UQUJMRV9JRBACEhMKD09GUEZNRkNfT1ZFUkxBUBADEhEKDU9GUEZNRkNfRVBFUk0QBBIXChNPRlBGTUZDX0JBRF9USU1FT1VUEAUSFwoTT0ZQRk1GQ19CQURfQ09NTUFORBAGEhUKEU9GUEZNRkNfQkFEX0ZMQUdTEAcqoQMKGW9mcF9ncm91cF9tb2RfZmFpbGVkX2NvZGUSGAoUT0ZQR01GQ19HUk9VUF9FWElTVFMQABIZChVPRlBHTUZDX0lOVkFMSURfR1JPVVAQARIeChpPRlBHTUZDX1dFSUdIVF9VTlNVUFBPUlRFRBACEhkKFU9GUEdNRkNfT1VUX09GX0dST1VQUxADEhoKFk9GUEdNRkNfT1VUX09GX0JVQ0tFVFMQBBIgChxPRlBHTUZDX0NIQUlOSU5HX1VOU1VQUE9SVEVEEAUSHQoZT0ZQR01GQ19XQVRDSF9VTlNVUFBPUlRFRBAGEhAKDE9GUEdNRkNfTE9PUBAHEhkKFU9GUEdNRkNfVU5LTk9XTl9HUk9VUBAIEhkKFU9GUEdNRkNfQ0hBSU5FRF9HUk9VUBAJEhQKEE9GUEdNRkNfQkFEX1RZUEUQChIXChNPRlBHTUZDX0JBRF9DT01NQU5EEAsSFgoST0ZQR01GQ19CQURfQlVDS0VUEAwSFQoRT0ZQR01GQ19CQURfV0FUQ0gQDRIRCg1PRlBHTUZDX0VQRVJNEA4qjwEKGG9mcF9wb3J0X21vZF9mYWlsZWRfY29kZRIUChBPRlBQTUZDX0JBRF9QT1JUEAASFwoTT0ZQUE1GQ19CQURfSFdfQUREUhABEhYKEk9GUFBNRkNfQkFEX0NPTkZJRxACEhkKFU9GUFBNRkNfQkFEX0FEVkVSVElTRRADEhEKDU9GUFBNRkNfRVBFUk0QBCpdChlvZnBfdGFibGVfbW9kX2ZhaWxlZF9jb2RlEhUKEU9GUFRNRkNfQkFEX1RBQkxFEAASFgoST0ZQVE1GQ19CQURfQ09ORklHEAESEQoNT0ZQVE1GQ19FUEVSTRACKloKGG9mcF9xdWV1ZV9vcF9mYWlsZWRfY29kZRIUChBPRlBRT0ZDX0JBRF9QT1JUEAASFQoRT0ZQUU9GQ19CQURfUVVFVUUQARIRCg1PRlBRT0ZDX0VQRVJNEAIqXgodb2ZwX3N3aXRjaF9jb25maWdfZmFpbGVkX2NvZGUSFQoRT0ZQU0NGQ19CQURfRkxBR1MQABITCg9PRlBTQ0ZDX0JBRF9MRU4QARIRCg1PRlBTQ0ZDX0VQRVJNEAIqWgocb2ZwX3JvbGVfcmVxdWVzdF9mYWlsZWRfY29kZRIRCg1PRlBSUkZDX1NUQUxFEAASEQoNT0ZQUlJGQ19VTlNVUBABEhQKEE9GUFJSRkNfQkFEX1JPTEUQAirEAgoZb2ZwX21ldGVyX21vZF9mYWlsZWRfY29kZRITCg9PRlBNTUZDX1VOS05PV04QABIYChRPRlBNTUZDX01FVEVSX0VYSVNUUxABEhkKFU9GUE1NRkNfSU5WQUxJRF9NRVRFUhACEhkKFU9GUE1NRkNfVU5LTk9XTl9NRVRFUhADEhcKE09GUE1NRkNfQkFEX0NPTU1BTkQQBBIVChFPRlBNTUZDX0JBRF9GTEFHUxAFEhQKEE9GUE1NRkNfQkFEX1JBVEUQBhIVChFPRlBNTUZDX0JBRF9CVVJTVBAHEhQKEE9GUE1NRkNfQkFEX0JBTkQQCBIaChZPRlBNTUZDX0JBRF9CQU5EX1ZBTFVFEAkSGQoVT0ZQTU1GQ19PVVRfT0ZfTUVURVJTEAoSGAoUT0ZQTU1GQ19PVVRfT0ZfQkFORFMQCyqpAQoeb2ZwX3RhYmxlX2ZlYXR1cmVzX2ZhaWxlZF9jb2RlEhUKEU9GUFRGRkNfQkFEX1RBQkxFEAASGAoUT0ZQVEZGQ19CQURfTUVUQURBVEEQARIUChBPRlBURkZDX0JBRF9UWVBFEAISEwoPT0ZQVEZGQ19CQURfTEVOEAMSGAoUT0ZQVEZGQ19CQURfQVJHVU1FTlQQBBIRCg1PRlBURkZDX0VQRVJNEAUqzgIKEm9mcF9tdWx0aXBhcnRfdHlwZRIOCgpPRlBNUF9ERVNDEAASDgoKT0ZQTVBfRkxPVxABEhMKD09GUE1QX0FHR1JFR0FURRACEg8KC09GUE1QX1RBQkxFEAMSFAoQT0ZQTVBfUE9SVF9TVEFUUxAEEg8KC09GUE1QX1FVRVVFEAUSDwoLT0ZQTVBfR1JPVVAQBhIUChBPRlBNUF9HUk9VUF9ERVNDEAcSGAoUT0ZQTVBfR1JPVVBfRkVBVFVSRVMQCBIPCgtPRlBNUF9NRVRFUhAJEhYKEk9GUE1QX01FVEVSX0NPTkZJRxAKEhgKFE9GUE1QX01FVEVSX0ZFQVRVUkVTEAsSGAoUT0ZQTVBfVEFCTEVfRkVBVFVSRVMQDBITCg9PRlBNUF9QT1JUX0RFU0MQDRIYChJPRlBNUF9FWFBFUklNRU5URVIQ//8DKkoKG29mcF9tdWx0aXBhcnRfcmVxdWVzdF9mbGFncxIWChJPRlBNUEZfUkVRX0lOVkFMSUQQABITCg9PRlBNUEZfUkVRX01PUkUQASpMChlvZnBfbXVsdGlwYXJ0X3JlcGx5X2ZsYWdzEhgKFE9GUE1QRl9SRVBMWV9JTlZBTElEEAASFQoRT0ZQTVBGX1JFUExZX01PUkUQASrkAwobb2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF90eXBlEhgKFE9GUFRGUFRfSU5TVFJVQ1RJT05TEAASHQoZT0ZQVEZQVF9JTlNUUlVDVElPTlNfTUlTUxABEhcKE09GUFRGUFRfTkVYVF9UQUJMRVMQAhIcChhPRlBURlBUX05FWFRfVEFCTEVTX01JU1MQAxIZChVPRlBURlBUX1dSSVRFX0FDVElPTlMQBBIeChpPRlBURlBUX1dSSVRFX0FDVElPTlNfTUlTUxAFEhkKFU9GUFRGUFRfQVBQTFlfQUNUSU9OUxAGEh4KGk9GUFRGUFRfQVBQTFlfQUNUSU9OU19NSVNTEAcSEQoNT0ZQVEZQVF9NQVRDSBAIEhUKEU9GUFRGUFRfV0lMRENBUkRTEAoSGgoWT0ZQVEZQVF9XUklURV9TRVRGSUVMRBAMEh8KG09GUFRGUFRfV1JJVEVfU0VURklFTERfTUlTUxANEhoKFk9GUFRGUFRfQVBQTFlfU0VURklFTEQQDhIfChtPRlBURlBUX0FQUExZX1NFVEZJRUxEX01JU1MQDxIaChRPRlBURlBUX0VYUEVSSU1FTlRFUhD+/wMSHwoZT0ZQVEZQVF9FWFBFUklNRU5URVJfTUlTUxD//wMqkwEKFm9mcF9ncm91cF9jYXBhYmlsaXRpZXMSEgoOT0ZQR0ZDX0lOVkFMSUQQABIYChRPRlBHRkNfU0VMRUNUX1dFSUdIVBABEhoKFk9GUEdGQ19TRUxFQ1RfTElWRU5FU1MQAhITCg9PRlBHRkNfQ0hBSU5JTkcQBBIaChZPRlBHRkNfQ0hBSU5JTkdfQ0hFQ0tTEAgqawoUb2ZwX3F1ZXVlX3Byb3BlcnRpZXMSEQoNT0ZQUVRfSU5WQUxJRBAAEhIKDk9GUFFUX01JTl9SQVRFEAESEgoOT0ZQUVRfTUFYX1JBVEUQAhIYChJPRlBRVF9FWFBFUklNRU5URVIQ//8DKnEKE29mcF9jb250cm9sbGVyX3JvbGUSFwoTT0ZQQ1JfUk9MRV9OT0NIQU5HRRAAEhQKEE9GUENSX1JPTEVfRVFVQUwQARIVChFPRlBDUl9ST0xFX01BU1RFUhACEhQKEE9GUENSX1JPTEVfU0xBVkUQA0IyWjBnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvZ28vb3BlbmZsb3dfMTNKurIGCgcSBTkA/xEBCuQUCgEMEgM5ABIa+QYKIFRoaXMgaXMgYSByZWxhdGl2ZWx5IHN0cmFpZ2h0Zm9yd2FyZCByZW5kZXJpbmcgb2YgT3BlbkZsb3cgbWVzc2FnZQogZGVmaW5pdGlvbnMgaW50byBwcm90b2NvbCBidWZmZXIgbWVzc2FnZXMuIFdlIHByZXNlcnZlZCB0aGUgc25ha2UKIGNhc2Ugc3ludGF4LCBhbmQgbWFkZSB0aGUgZm9sbG93aW5nIGNoYW5nZXM6CiAtIGFsbCBwYWQgZmllbGRzIGRyb3BwZWQKIC0gZm9yIGVhY2ggZW51bSB2YWx1ZSBhYm92ZSAweDdmZmZmZmZmIHRoZSBNU0IgaXMgZHJvcHBlZC4gRm9yIGV4YW1wbGUsCiAgIDB4ZmZmZmZmZmYgaXMgbm93IDB4N2ZmZmZmZmYuCiAtICc8dHlwZT4gdGhpbmdbLi4uXScgaXMgcmVwbGFjZWQgd2l0aCAncmVwZWF0ZWQgPHR5cGU+IHRoaW5nJwogLSAnY2hhciB0aGluZ1suLi5dJyBpcyByZXBsYWNlZCB3aXRoICdzdHJpbmcgdGhpbmcnCiAtICd1aW50OF90IGRhdGFbLi4uXScgaXMgcmVwbGFjZWQgd2l0aCAnYnl0ZXMgZGF0YScKIC0gdGhlIGZvbGxvd2luZyBzeXN0ZW1hdGljIGNoYW5nZXMgYXJlIGRvbmUgdG8gdmFyaW91cyBpbnRlZ2VyIHR5cGVzOgogICB1aW50OF90ICAtPiB1aW50MzIKICAgdWludDE2X3QgLT4gdWludDMyCiAgIHVpbnQzMl90IC0+IHVpbnQzMgogICB1aW50NjRfdCAtPiB1aW50NjQKIC0gcmVtb3ZlZCBtb3N0IGxlbmd0aCwgbGVuLCBzaXplIGZpZWxkcyB3aGVyZSB0aGVzZSB2YWx1ZXMgY2FuIGJlIGRldGVybWluZWQKICAgZnJvbSB0aGUgZXhwbGljaXRseSBlbmNvZGVkIGxlbmd0aCBvZiAicmVwZWF0ZWQiIHByb3RvYnVmIGZpZWxkcy4KIC0gZXhwbGljaXQgdXNlIG9mIGVudW0gdHlwZXMgd2hlcmVldmVyIGl0IGlzIHVuYW1iaWdvdXMgKGFuZCBub3QgdXNlZCBhcwogICBiaXRtYXNrL2ZsYWdzIHZhbHVlLgoKMqYNIENvcHlyaWdodCAoYykgMjAwOCBUaGUgQm9hcmQgb2YgVHJ1c3RlZXMgb2YgVGhlIExlbGFuZCBTdGFuZm9yZAogSnVuaW9yIFVuaXZlcnNpdHkKIENvcHlyaWdodCAoYykgMjAxMSwgMjAxMiBPcGVuIE5ldHdvcmtpbmcgRm91bmRhdGlvbgoKIFdlIGFyZSBtYWtpbmcgdGhlIE9wZW5GbG93IHNwZWNpZmljYXRpb24gYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbgogKFNvZnR3YXJlKSBhdmFpbGFibGUgZm9yIHB1YmxpYyB1c2UgYW5kIGJlbmVmaXQgd2l0aCB0aGUgZXhwZWN0YXRpb24KIHRoYXQgb3RoZXJzIHdpbGwgdXNlLCBtb2RpZnkgYW5kIGVuaGFuY2UgdGhlIFNvZnR3YXJlIGFuZCBjb250cmlidXRlCiB0aG9zZSBlbmhhbmNlbWVudHMgYmFjayB0byB0aGUgY29tbXVuaXR5LiBIb3dldmVyLCBzaW5jZSB3ZSB3b3VsZAogbGlrZSB0byBtYWtlIHRoZSBTb2Z0d2FyZSBhdmFpbGFibGUgZm9yIGJyb2FkZXN0IHVzZSwgd2l0aCBhcyBmZXcKIHJlc3RyaWN0aW9ucyBhcyBwb3NzaWJsZSBwZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mCiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIFNvZnR3YXJlIHRvIGRlYWwgaW4KIHRoZSBTb2Z0d2FyZSB1bmRlciB0aGUgY29weXJpZ2h0cyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bwogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CgogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUKIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgoKIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAogTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMKIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKIFNPRlRXQVJFLgoKIFRoZSBuYW1lIGFuZCB0cmFkZW1hcmtzIG9mIGNvcHlyaWdodCBob2xkZXIocykgbWF5IE5PVCBiZSB1c2VkIGluCiBhZHZlcnRpc2luZyBvciBwdWJsaWNpdHkgcGVydGFpbmluZyB0byB0aGUgU29mdHdhcmUgb3IgYW55CiBkZXJpdmF0aXZlcyB3aXRob3V0IHNwZWNpZmljLCB3cml0dGVuIHByaW9yIHBlcm1pc3Npb24uCjI1IE9wZW5GbG93OiBwcm90b2NvbCBiZXR3ZWVuIGNvbnRyb2xsZXIgYW5kIGRhdGFwYXRoLiAKCAoBCBIDOwBHCgsKBAjnBwASAzsARwoMCgUI5wcAAhIDOwcRCg0KBgjnBwACABIDOwcRCg4KBwjnBwACAAESAzsHEQoMCgUI5wcABxIDOxRGCggKAQISAz0IEwoJCgIDABIDPwclCgkKAgoAEgNABw0KCQoCAwESA0AOMAqmBAoCBQASBFUAagEaNSBQb3J0IG51bWJlcmluZy4gUG9ydHMgYXJlIG51bWJlcmVkIHN0YXJ0aW5nIGZyb20gMS4gMmMgVmVyc2lvbiBudW1iZXI6CiBPcGVuRmxvdyB2ZXJzaW9ucyByZWxlYXNlZDogMHgwMSA9IDEuMCA7IDB4MDIgPSAxLjEgOyAweDAzID0gMS4yCiAgICAgMHgwNCA9IDEuMwoyVSBUaGUgbW9zdCBzaWduaWZpY2FudCBiaXQgaW4gdGhlIHZlcnNpb24gZmllbGQgaXMgcmVzZXJ2ZWQgYW5kIG11c3QKIGJlIHNldCB0byB6ZXJvLgoyeiNkZWZpbmUgT0ZQX1ZFUlNJT04gICAweDA0CiNkZWZpbmUgUElQRUxJTkVfVEFCTEVTIDY0CiNkZWZpbmUgT0ZQX01BWF9UQUJMRV9OQU1FX0xFTiAzMgojZGVmaW5lIE9GUF9NQVhfUE9SVF9OQU1FX0xFTiAgMTYKMi0gT2ZmaWNpYWwgSUFOQSByZWdpc3RlcmVkIHBvcnQgZm9yIE9wZW5GbG93LiAyNiNkZWZpbmUgT0ZQX1RDUF9QT1JUICA2NjUzCiNkZWZpbmUgT0ZQX1NTTF9QT1JUICA2NjUzCjJEI2RlZmluZSBPRlBfRVRIX0FMRU4gNiAgICAgICAgICAvKiBCeXRlcyBpbiBhbiBFdGhlcm5ldCBhZGRyZXNzLiAqLwoKCgoDBQABEgNVBRAKCwoEBQACABIDVgQYCgwKBQUAAgABEgNWBBAKDAoFBQACAAISA1YWFwpDCgQFAAIBEgNZBCEaNiBNYXhpbXVtIG51bWJlciBvZiBwaHlzaWNhbCBhbmQgbG9naWNhbCBzd2l0Y2ggcG9ydHMuIAoMCgUFAAIBARIDWQQMCgwKBQUAAgECEgNZFiAKvAEKBAUAAgISA1wEIRovIFJlc2VydmVkIE9wZW5GbG93IFBvcnQgKGZha2Ugb3V0cHV0ICJwb3J0cyIpLiAifiBTZW5kIHRoZSBwYWNrZXQgb3V0IHRoZSBpbnB1dCBwb3J0LiAgVGhpcwpyZXNlcnZlZCBwb3J0IG11c3QgYmUgZXhwbGljaXRseSB1c2VkCmluIG9yZGVyIHRvIHNlbmQgYmFjayBvdXQgb2YgdGhlIGlucHV0CnBvcnQuIAoMCgUFAAICARIDXAQQCgwKBQUAAgICEgNcFiAKewoEBQACAxIDYAQhIm4gU3VibWl0IHRoZSBwYWNrZXQgdG8gdGhlIGZpcnN0IGZsb3cgdGFibGUKTkI6IFRoaXMgZGVzdGluYXRpb24gcG9ydCBjYW4gb25seSBiZQp1c2VkIGluIHBhY2tldC1vdXQgbWVzc2FnZXMuIAoMCgUFAAIDARIDYAQOCgwKBQUAAgMCEgNgFiAKMwoEBQACBBIDYwQhIiYg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SywgTEVOR1RIKSBcCiAgICAoKChDTEFTUykgPDwgMTYpIHwgKChGSUVMRCkgPDwgOSkgfCAoKEhBU01BU0spIDw8IDgpIHwgKExFTkdUSCkpCiNkZWZpbmUgT1hNX0hFQURFUihDTEFTUywgRklFTEQsIExFTkdUSCkgXAogICAgT1hNX0hFQURFUl9fKENMQVNTLCBGSUVMRCwgMCwgTEVOR1RIKQojZGVmaW5lIE9YTV9IRUFERVJfVyhDTEFTUywgRklFTEQsIExFTkdUSCkgXAogICAgT1hNX0hFQURFUl9fKENMQVNTLCBGSUVMRCwgMSwgKExFTkdUSCkgKiAyKQojZGVmaW5lIE9YTV9DTEFTUyhIRUFERVIpICgoSEVBREVSKSA+PiAxNikKI2RlZmluZSBPWE1fRklFTEQoSEVBREVSKSAoKChIRUFERVIpID4+IDkpICYgMHg3ZikKI2RlZmluZSBPWE1fVFlQRShIRUFERVIpICgoKEhFQURFUikgPj4gOSkgJiAweDdmZmZmZikKI2RlZmluZSBPWE1fSEFTTUFTSyhIRUFERVIpICgoKEhFQURFUikgPj4gOCkgJiAxKQojZGVmaW5lIE9YTV9MRU5HVEgoSEVBREVSKSAoKEhFQURFUikgJiAweGZmKQoKI2RlZmluZSBPWE1fTUFLRV9XSUxEX0hFQURFUihIRUFERVIpIFwKICAgIE9YTV9IRUFERVJfVyhPWE1fQ0xBU1MoSEVBREVSKSwgT1hNX0ZJRUxEKEhFQURFUiksIE9YTV9MRU5HVEgoSEVBREVSKSkKCgsKAwUMARIEnQMFEgovCgQFDAIAEgSeAwQjIiEgQmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoIE5YTSAKDQoFBQwCAAESBJ4DBBAKDQoFBQwCAAISBJ4DHCIKLwoEBQwCARIEnwMEIyIhIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2l0aCBOWE0gCg0KBQUMAgEBEgSfAwQQCg0KBQUMAgECEgSfAxwiCigKBAUMAgISBKADBCMiGiBCYXNpYyBjbGFzcyBmb3IgT3BlbkZsb3cgCg0KBQUMAgIBEgSgAwQZCg0KBQUMAgICEgSgAxwiCiIKBAUMAgMSBKEDBCMiFCBFeHBlcmltZW50ZXIgY2xhc3MgCg0K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dGhlIHJlc2VydmVkIHBvcnQgT0ZQUF9MT0NBTAoKIFByZXJlcXM6IE5vbmUuCgogRm9ybWF0OiAzMi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCAgUSBOkDCA4KDQoFBAwCAgESBOkDDxMKDQoFBAwCAgMSBOkDFhcKtwcKBAQMAgMSBIAECCEaSyNkZWZpbmUgT1hNX09GX0lOX1BIWV9QT1JUIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSU5fUEhZX1BPUlQsIDQpCiIgIFVzZWQgZm9yIE9GUFhNVF9PRl9JTl9QSFlfUE9SVCAyuQYgUGh5c2ljYWwgcG9ydCBvbiB3aGljaCB0aGUgcGFja2V0IHdhcyByZWNlaXZlZC4KCiBDb25zaWRlciBhIHBhY2tldCByZWNlaXZlZCBvbiBhIHR1bm5lbCBpbnRlcmZhY2UgZGVmaW5lZCBvdmVyIGEgbGluawogYWdncmVnYXRpb24gZ3JvdXAgKExBRykgd2l0aCB0d28gcGh5c2ljYWwgcG9ydCBtZW1iZXJzLiAgSWYgdGhlIHR1bm5lbAogaW50ZXJmYWNlIGlzIHRoZSBsb2dpY2FsIHBvcnQgYm91bmQgdG8gT3BlbkZsb3cuICBJbiB0aGlzIGNhc2UsCiBPRlBYTVRfT0ZfSU5fUE9SVCBpcyB0aGUgdHVubmVsJ3MgcG9ydCBudW1iZXIgYW5kIE9GUFhNVF9PRl9JTl9QSFlfUE9SVCBpcwogdGhlIHBoeXNpY2FsIHBvcnQgbnVtYmVyIG9mIHRoZSBMQUcgb24gd2hpY2ggdGhlIHR1bm5lbCBpcyBjb25maWd1cmVkLgoKIFdoZW4gYSBwYWNrZXQgaXMgcmVjZWl2ZWQgZGlyZWN0bHkgb24gYSBwaHlzaWNhbCBwb3J0IGFuZCBub3QgcHJvY2Vzc2VkIGJ5IGEKIGxvZ2ljYWwgcG9ydCwgT0ZQWE1UX09GX0lOX1BPUlQgYW5kIE9GUFhNVF9PRl9JTl9QSFlfUE9SVCBoYXZlIHRoZSBzYW1lCiB2YWx1ZS4KCiBUaGlzIGZpZWxkIGlzIHVzdWFsbHkgbm90IGF2YWlsYWJsZSBpbiBhIHJlZ3VsYXIgbWF0Y2ggYW5kIG9ubHkgYXZhaWxhYmxlCiBpbiBvZnBfcGFja2V0X2luIG1lc3NhZ2VzIHdoZW4gaXQncyBkaWZmZXJlbnQgZnJvbSBPWE1fT0ZfSU5fUE9SVC4KCiBQcmVyZXFzOiBPWE1fT0ZfSU5fUE9SVCBtdXN0IGJlIHByZXNlbnQuCgogRm9ybWF0OiAzMi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCAwUSBIAECA4KDQoFBAwCAwESBIAEDxwKDQoFBAwCAwMSBIAEHyAKrQIKBAQMAgQSBIwECCIajgEjZGVmaW5lIE9YTV9PRl9NRVRBREFUQSAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfTUVUQURBVEEsIDgpCiNkZWZpbmUgT1hNX09GX01FVEFEQVRBX1cgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9NRVRBREFUQSwgOCkKIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9NRVRBREFUQSAybiBUYWJsZSBtZXRhZGF0YS4KCiBQcmVyZXFzOiBOb25lLgoKIEZvcm1hdDogNjQtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4KCg0KBQQMAgQFEgSMBAgOCg0KBQQMAgQBEgSMBA8dCg0KBQQMAgQDEgSMBCAhCuIDCgQEDAIFEgSZBAgaGpgCI2RlZmluZSBPWE1fT0ZfRVRIX0RTVCAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0VUSF9EU1QsIDYpCiNkZWZpbmUgT1hNX09GX0VUSF9EU1RfVyAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9FVEhfRFNULCA2KQojZGVmaW5lIE9YTV9PRl9FVEhfU1JDICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfRVRIX1NSQywgNikKI2RlZmluZSBPWE1fT0ZfRVRIX1NSQ19XICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0VUSF9TUkMsIDYpCiIvIFVzZWQgZm9yIE9GUFhNVF9PRkJfRVRIX0RTVCAoZXhhY3RseSA2IGJ5dGVzKSAyhwEgU291cmNlIG9yIGRlc3RpbmF0aW9uIGFkZHJlc3MgaW4gRXRoZXJuZXQgaGVhZGVyLgoKIFByZXJlcXM6IE5vbmUuCgogRm9ybWF0OiA0OC1iaXQgRXRoZXJuZXQgTUFDIGFkZHJlc3MuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLiAKDQoFBAwCBQUSBJkECA0KDQoFBAwCBQESBJkEDhUKDQoFBAwCBQMSBJkEGBkKPQoEBAwCBhIEmgQIGiIvIFVzZWQgZm9yIE9GUFhNVF9PRkJfRVRIX1NSQyAoZXhhY3RseSA2IGJ5dGVzKSAKDQoFBAwCBgUSBJoECA0KDQoFBAwCBgESBJoEDhUKDQoFBAwCBgMSBJoEGBkK6QEKBAQMAgcSBKQECBwaRiNkZWZpbmUgT1hNX09GX0VUSF9UWVBFICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9FVEhfVFlQRSwyKQoiHiBVc2VkIGZvciBPRlBYTVRfT0ZCX0VUSF9UWVBFIDJzIFBhY2tldCdzIEV0aGVybmV0IHR5cGUuCgogUHJlcmVxczogTm9uZS4KCiBGb3JtYXQ6IDE2LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAIHBRIEpAQIDgoNCgUEDAIHARIEpAQPFwoNCgUEDAIHAxIEpAQaGwqDCwoEBAwCCBIEygQIHBqOASNkZWZpbmUgT1hNX09GX1ZMQU5fVklEICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9WTEFOX1ZJRCwgMikKI2RlZmluZSBPWE1fT0ZfVkxBTl9WSURfVyBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX1ZMQU5fVklELCAyKQoiHiBVc2VkIGZvciBPRlBYTVRfT0ZCX1ZMQU5fVklEIDLDCSA4MDIuMVEgVklELgoKIEZvciBhIHBhY2tldCB3aXRoIGFuIDgwMi4xUSBoZWFkZXIsIHRoaXMgaXMgdGhlIFZMQU4tSUQgKFZJRCkgZnJvbSB0aGUKIG91dGVybW9zdCB0YWcsIHdpdGggdGhlIENGSSBiaXQgZm9yY2VkIHRvIDEuIEZvciBhIHBhY2tldCB3aXRoIG5vIDgwMi4xUQogaGVhZGVyLCB0aGlzIGhhcyB2YWx1ZSBPRlBWSURfTk9ORS4KCiBQcmVyZXFzOiBOb25lLgoKIEZvcm1hdDogMTYtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyIHdpdGggYml0IDEzIGluZGljYXRpbmcKIHByZXNlbmNlIG9mIFZMQU4gaGVhZGVyIGFuZCAzIG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VyIDEzIGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4KCiBUaGlzIGZpZWxkIGNhbiBiZSB1c2VkIGluIHZhcmlvdXMgd2F5czoKCiAgIC0gSWYgaXQgaXMgbm90IGNvbnN0cmFpbmVkIGF0IGFsbCwgdGhlIG54X21hdGNoIG1hdGNoZXMgcGFja2V0cyB3aXRob3V0CiAgICAgYW4gODAyLjFRIGhlYWRlciBvciB3aXRoIGFuIDgwMi4xUSBoZWFkZXIgdGhhdCBoYXMgYW55IFZJRCB2YWx1ZS4KCiAgIC0gVGVzdGluZyBmb3IgYW4gZXhhY3QgbWF0Y2ggd2l0aCAweDAgbWF0Y2hlcyBvbmx5IHBhY2tldHMgd2l0aG91dAogICAgIGFuIDgwMi4xUSBoZWFkZXIuCgogICAtIFRlc3RpbmcgZm9yIGFuIGV4YWN0IG1hdGNoIHdpdGggYSBWSUQgdmFsdWUgd2l0aCBDRkk9MSBtYXRjaGVzIHBhY2tldHMKICAgICB0aGF0IGhhdmUgYW4gODAyLjFRIGhlYWRlciB3aXRoIGEgc3BlY2lmaWVkIFZJRC4KCiAgIC0gVGVzdGluZyBmb3IgYW4gZXhhY3QgbWF0Y2ggd2l0aCBhIG5vbnplcm8gVklEIHZhbHVlIHdpdGggQ0ZJPTAgZG9lcwogICAgIG5vdCBtYWtlIHNlbnNlLiAgVGhlIHN3aXRjaCBtYXkgcmVqZWN0IHRoaXMgY29tYmluYXRpb24uCgogICAtIFRlc3Rpbmcgd2l0aCBueG1fdmFsdWU9MCwgbnhtX21hc2s9MHgwZmZmIG1hdGNoZXMgcGFja2V0cyB3aXRoIG5vIDgwMi4xUQogICAgIGhlYWRlciBvciB3aXRoIGFuIDgwMi4xUSBoZWFkZXIgd2l0aCBhIFZJRCBvZiAwLgoKICAgLSBUZXN0aW5nIHdpdGggbnhtX3ZhbHVlPTB4MTAwMCwgbnhtX21hc2s9MHgxMDAwIG1hdGNoZXMgcGFja2V0cyB3aXRoCiAgICAgYW4gODAyLjFRIGhlYWRlciB0aGF0IGhhcyBhbnkgVklEIHZhbHVlLgoKDQoFBAwCCAUSBMoECA4KDQoFBAwCCAESBMoEDxcKDQoFBAwCCAMSBMoEGhsK0AMKBAQMAgkSBNoECB0aRyNkZWZpbmUgT1hNX09GX1ZMQU5fUENQICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9WTEFOX1BDUCwgMSkKIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9WTEFOX1BDUCAy2AIgODAyLjFRIFBDUC4KCiBGb3IgYSBwYWNrZXQgd2l0aCBhbiA4MDIuMVEgaGVhZGVyLCB0aGlzIGlzIHRoZSBWTEFOLVBDUCBmcm9tIHRoZQogb3V0ZXJtb3N0IHRhZy4gIEZvciBhIHBhY2tldCB3aXRoIG5vIDgwMi4xUSBoZWFkZXIsIHRoaXMgaGFzIHZhbHVlCiAwLgoKIFByZXJlcXM6IE9YTV9PRl9WTEFOX1ZJRCBtdXN0IGJlIGRpZmZlcmVudCBmcm9tIE9GUFZJRF9OT05FLgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlciB3aXRoIDUgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXIgMyBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuCgoNCgUEDAIJBRIE2gQIDgoNCgUEDAIJARIE2gQPFwoNCgUEDAIJAxIE2gQaHAqoAwoEBAwCChIE5gQIHBpHI2RlZmluZSBPWE1fT0ZfSVBfRFNDUCAgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUF9EU0NQLCAxKQoiHSBVc2VkIGZvciBPRlBYTVRfT0ZCX0lQX0RTQ1AgMrECIFRoZSBEaWZmIFNlcnYgQ29kZSBQb2ludCAoRFNDUCkgYml0cyBvZiB0aGUgSVAgaGVhZGVyLgogUGFydCBvZiB0aGUgSVB2NCBUb1MgZmllbGQgb3IgdGhlIElQdjYgVHJhZmZpYyBDbGFzcyBmaWVsZC4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBiZSBlaXRoZXIgMHgwODAwIG9yIDB4ODZkZC4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIgd2l0aCAyIG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VyIDYgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCCgUSBOYECA4KDQoFBAwCCgESBOYEDxYKDQoFBAwCCgMSBOYEGRsKjQMKBAQMAgsSBPIECBsaRSNkZWZpbmUgT1hNX09GX0lQX0VDTiAgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUF9FQ04sIDEpCiIcIFVzZWQgZm9yIE9GUFhNVF9PRkJfSVBfRUNOIDKZAiBUaGUgRUNOIGJpdHMgb2YgdGhlIElQIGhlYWRlci4KIFBhcnQgb2YgdGhlIElQdjQgVG9TIGZpZWxkIG9yIHRoZSBJUHY2IFRyYWZmaWMgQ2xhc3MgZmllbGQuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgYmUgZWl0aGVyIDB4MDgwMCBvciAweDg2ZGQuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyIHdpdGggNiBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlciAyIGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAgsFEgTyBAgOCg0KBQQMAgsBEgTyBA8VCg0KBQQMAgsDEgTyBBgaCo0CCgQEDAIMEgT8BAgdGkcjZGVmaW5lIE9YTV9PRl9JUF9QUk9UTyAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBfUFJPVE8sIDEpCiIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfSVBfUFJPVE8gMpUBIFRoZSAicHJvdG9jb2wiIGJ5dGUgaW4gdGhlIElQIGhlYWRlci4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBiZSBlaXRoZXIgMHgwODAwIG9yIDB4ODZkZC4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCDAUSBPwECA4KDQoFBAwCDAESBPwEDxcKDQoFBAwCDAMSBPwEGhwKjQQKBAQMAg0SBIoFCB0apAIjZGVmaW5lIE9YTV9PRl9JUFY0X1NSQyAgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY0X1NSQywgNCkKI2RlZmluZSBPWE1fT0ZfSVBWNF9TUkNfVyAgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfSVBWNF9TUkMsIDQpCiNkZWZpbmUgT1hNX09GX0lQVjRfRFNUICAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjRfRFNULCA0KQojZGVmaW5lIE9YTV9PRl9JUFY0X0RTVF9XICAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY0X0RTVCwgNCkKIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9JUFY0X1NSQyAytwEgVGhlIHNvdXJjZSBvciBkZXN0aW5hdGlvbiBhZGRyZXNzIGluIHRoZSBJUCBoZWFkZXIuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHgwODAwIGV4YWN0bHkuCgogRm9ybWF0OiAzMi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLgoKDQoFBAwCDQUSBIoFCA4KDQoFBAwCDQESBIoFDxcKDQoFBAwCDQMSBIoFGhwKLAoEBAwCDhIEiwUIHSIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfSVBWNF9EU1QgCg0KBQQMAg4FEgSLBQgOCg0KBQQMAg4BEgSLBQ8XCg0KBQQMAg4DEgSLBRocCqEDCgQEDAIPEgSYBQgcGowBI2RlZmluZSBPWE1fT0ZfVENQX1NSQyAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1RDUF9TUkMsIDIpCiNkZWZpbmUgT1hNX09GX1RDUF9EU1QgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9UQ1BfRFNULCAyKQoiHSBVc2VkIGZvciBPRlBYTVRfT0ZCX1RDUF9TUkMgMuQBIFRoZSBzb3VyY2Ugb3IgZGVzdGluYXRpb24gcG9ydCBpbiB0aGUgVENQIGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBiZSBlaXRoZXIgMHgwODAwIG9yIDB4ODZkZC4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggNiBleGFjdGx5LgoKIEZvcm1hdDogMTYtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAg8FEgSYBQgOCg0KBQQMAg8BEgSYBQ8WCg0KBQQMAg8DEgSYBRkbCisKBAQMAhASBJkFCBwiHSBVc2VkIGZvciBPRlBYTVRfT0ZCX1RDUF9EU1QgCg0KBQQMAhAFEgSZBQgOCg0KBQQMAhABEgSZBQ8WCg0KBQQMAhADEgSZBRkbCqUDCgQEDAIREgSmBQgcGowBI2RlZmluZSBPWE1fT0ZfVURQX1NSQyAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1VEUF9TUkMsIDIpCiNkZWZpbmUgT1hNX09GX1VEUF9EU1QgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9VRFBfRFNULCAyKQoiHSBVc2VkIGZvciBPRlBYTVRfT0ZCX1VEUF9TUkMgMugBIFRoZSBzb3VyY2Ugb3IgZGVzdGluYXRpb24gcG9ydCBpbiB0aGUgVURQIGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCBlaXRoZXIgMHgwODAwIG9yIDB4ODZkZC4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggMTcgZXhhY3RseS4KCiBGb3JtYXQ6IDE2LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAIRBRIEpgUIDgoNCgUEDAIRARIEpgUPFgoNCgUEDAIRAxIEpgUZGworCgQEDAISEgSnBQgcIh0gVXNlZCBmb3IgT0ZQWE1UX09GQl9VRFBfRFNUIAoNCgUEDAISBRIEpwUIDgoNCgUEDAISARIEpwUPFgoNCgUEDAISAxIEpwUZGwqqAwoEBAwCExIEtAUIHRqOASNkZWZpbmUgT1hNX09GX1NDVFBfU1JDICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9TQ1RQX1NSQywgMikKI2RlZmluZSBPWE1fT0ZfU0NUUF9EU1QgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1NDVFBfRFNULCAyKQoiHiBVc2VkIGZvciBPRlBYTVRfT0ZCX1NDVFBfU1JDIDLqASBUaGUgc291cmNlIG9yIGRlc3RpbmF0aW9uIHBvcnQgaW4gdGhlIFNDVFAgaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIGVpdGhlciAweDA4MDAgb3IgMHg4NmRkLgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCAxMzIgZXhhY3RseS4KCiBGb3JtYXQ6IDE2LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAITBRIEtAUIDgoNCgUEDAITARIEtAUPFwoNCgUEDAITAxIEtAUaHAosCgQEDAIUEgS1BQgdIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9TQ1RQX0RTVCAKDQoFBAwCFAUSBLUFCA4KDQoFBAwCFAESBLUFDxcKDQoFBAwCFAMSBLUFGhwKhwMKBAQMAhUSBMIFCCAamAEjZGVmaW5lIE9YTV9PRl9JQ01QVjRfVFlQRSAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JQ01QVjRfVFlQRSwgMSkKI2RlZmluZSBPWE1fT0ZfSUNNUFY0X0NPREUgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSUNNUFY0X0NPREUsIDEpCiIhIFVzZWQgZm9yIE9GUFhNVF9PRkJfSUNNUFY0X1RZUEUgMroBIFRoZSB0eXBlIG9yIGNvZGUgaW4gdGhlIElDTVAgaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4MDgwMCBleGFjdGx5LgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCAxIGV4YWN0bHkuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAhUFEgTCBQgOCg0KBQQMAhUBEgTCBQ8aCg0KBQQMAhUDEgTCBR0fCi8KBAQMAhYSBMMFCCAiISBVc2VkIGZvciBPRlBYTVRfT0ZCX0lDTVBWNF9DT0RFIAoNCgUEDAIWBRIEwwUIDgoNCgUEDAIWARIEwwUPGgoNCgUEDAIWAxIEwwUdHwrVAgoEBAwCFxIE0AUIGxpFI2RlZmluZSBPWE1fT0ZfQVJQX09QICAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9PUCwgMikKIhwgVXNlZCBmb3IgT0ZQWE1UX09GQl9BUlBfT1AgMuEBIEFSUCBvcGNvZGUuCgogRm9yIGFuIEV0aGVybmV0K0lQIEFSUCBwYWNrZXQsIHRoZSBvcGNvZGUgaW4gdGhlIEFSUCBoZWFkZXIuICBBbHdheXMgMAogb3RoZXJ3aXNlLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4MDgwNiBleGFjdGx5LgoKIEZvcm1hdDogMTYtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAhcFEgTQBQgOCg0KBQQMAhcBEgTQBQ8VCg0KBQQMAhcDEgTQBRgaCrUECgQEDAIYEgTfBQgcGpgCI2RlZmluZSBPWE1fT0ZfQVJQX1NQQSAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9TUEEsIDQpCiNkZWZpbmUgT1hNX09GX0FSUF9TUEFfVyAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfU1BBLCA0KQojZGVmaW5lIE9YTV9PRl9BUlBfVFBBICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1RQQSwgNCkKI2RlZmluZSBPWE1fT0ZfQVJQX1RQQV9XICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9UUEEsIDQpCiIYIEZvciBPRlBYTVRfT0ZCX0FSUF9TUEEgMvEBIEZvciBhbiBFdGhlcm5ldCtJUCBBUlAgcGFja2V0LCB0aGUgc291cmNlIG9yIHRhcmdldCBwcm90b2NvbCBhZGRyZXNzCiBpbiB0aGUgQVJQIGhlYWRlci4gIEFsd2F5cyAwIG90aGVyd2lzZS4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDA4MDYgZXhhY3RseS4KCiBGb3JtYXQ6IDMyLWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuCgoNCgUEDAIYBRIE3wUIDgoNCgUEDAIYARIE3wUPFgoNCgUEDAIYAxIE3wUZGwomCgQEDAIZEgTgBQgcIhggRm9yIE9GUFhNVF9PRkJfQVJQX1RQQSAKDQoFBAwCGQUSBOAFCA4KDQoFBAwCGQESBOAFDxYKDQoFBAwCGQMSBOAFGRsKtwQKBAQMAhoSBO4FCBsanAIjZGVmaW5lIE9YTV9PRl9BUlBfU0hBICAgIE9YTV9IRUFERVIgICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9TSEEsIDYpCiNkZWZpbmUgT1hNX09GX0FSUF9TSEFfVyAgT1hNX0hFQURFUl9XICgweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1NIQSwgNikKI2RlZmluZSBPWE1fT0ZfQVJQX1RIQSAgICBPWE1fSEVBREVSICAgKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfVEhBLCA2KQojZGVmaW5lIE9YTV9PRl9BUlBfVEhBX1cgIE9YTV9IRUFERVJfVyAoMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9USEEsIDYpCiIiIEZvciBPRlBYTVRfT0ZCX0FSUF9TSEEgKDYgYnl0ZXMpIDLlASBGb3IgYW4gRXRoZXJuZXQrSVAgQVJQIHBhY2tldCwgdGhlIHNvdXJjZSBvciB0YXJnZXQgaGFyZHdhcmUgYWRkcmVzcwogaW4gdGhlIEFSUCBoZWFkZXIuICBBbHdheXMgMCBvdGhlcndpc2UuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHgwODA2IGV4YWN0bHkuCgogRm9ybWF0OiA0OC1iaXQgRXRoZXJuZXQgTUFDIGFkZHJlc3MuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCGgUSBO4FCA0KDQoFBAwCGgESBO4FDhUKDQoFBAwCGgMSBO4FGBoKMAoEBAwCGxIE7wUIGyIiIEZvciBPRlBYTVRfT0ZCX0FSUF9USEEgKDYgYnl0ZXMpIAoNCgUEDAIbBRIE7wUIDQoNCgUEDAIbARIE7wUOFQoNCgUEDAIbAxIE7wUYGgr6AwoEBAwCHBIE/QUIHBqkAiNkZWZpbmUgT1hNX09GX0lQVjZfU1JDICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9TUkMsIDE2KQojZGVmaW5lIE9YTV9PRl9JUFY2X1NSQ19XICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfU1JDLCAxNikKI2RlZmluZSBPWE1fT0ZfSVBWNl9EU1QgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X0RTVCwgMTYpCiNkZWZpbmUgT1hNX09GX0lQVjZfRFNUX1cgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9EU1QsIDE2KQoiGSBGb3IgT0ZQWE1UX09GQl9JUFY2X1NSQyAyqQEgVGhlIHNvdXJjZSBvciBkZXN0aW5hdGlvbiBhZGRyZXNzIGluIHRoZSBJUHY2IGhlYWRlci4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg2ZGQgZXhhY3RseS4KCiBGb3JtYXQ6IDEyOC1iaXQgSVB2NiBhZGRyZXNzLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4KCg0KBQQMAhwFEgT9BQgNCg0KBQQMAhwBEgT9BQ4WCg0KBQQMAhwDEgT9BRkbCicKBAQMAh0SBP4FCBwiGSBGb3IgT0ZQWE1UX09GQl9JUFY2X0RTVCAKDQoFBAwCHQUSBP4FCA0KDQoFBAwCHQESBP4FDhYKDQoFBAwCHQMSBP4FGRsKnQMKBAQMAh4SBIwGCCAamgEjZGVmaW5lIE9YTV9PRl9JUFY2X0ZMQUJFTCAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9GTEFCRUwsIDQpCiNkZWZpbmUgT1hNX09GX0lQVjZfRkxBQkVMX1cgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X0ZMQUJFTCwgNCkKIhwgRm9yIE9GUFhNVF9PRkJfSVBWNl9GTEFCRUwgMtMBIFRoZSBJUHY2IEZsb3cgTGFiZWwKCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg2ZGQgZXhhY3RseQoKIEZvcm1hdDogMzItYml0IGludGVnZXIgd2l0aCAxMiBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlciAyMCBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuCgoNCgUEDAIeBRIEjAYIDgoNCgUEDAIeARIEjAYPGgoNCgUEDAIeAxIEjAYdHwqDAwoEBAwCHxIEmQYIIBqWASNkZWZpbmUgT1hNX09GX0lDTVBWNl9UWVBFIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSUNNUFY2X1RZUEUsIDEpCiNkZWZpbmUgT1hNX09GX0lDTVBWNl9DT0RFIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSUNNUFY2X0NPREUsIDEpCiIcIEZvciBPRlBYTVRfT0ZCX0lDTVBWNl9UWVBFIDK9ASBUaGUgdHlwZSBvciBjb2RlIGluIHRoZSBJQ01QdjYgaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODZkZCBleGFjdGx5LgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCA1OCBleGFjdGx5LgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAIfBRIEmQYIDgoNCgUEDAIfARIEmQYPGgoNCgUEDAIfAxIEmQYdHwoqCgQEDAIgEgSaBgggIhwgRm9yIE9GUFhNVF9PRkJfSUNNUFY2X0NPREUgCg0KBQQMAiAFEgSaBggOCg0KBQQMAiABEgSaBg8aCg0KBQQMAiADEgSaBh0fCpEDCgQEDAIhEgSoBggiGlcjZGVmaW5lIE9YTV9PRl9JUFY2X05EX1RBUkdFVCBPWE1fSEVBREVSIFwKICAgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9ORF9UQVJHRVQsIDE2KQoiHyBGb3IgT0ZQWE1UX09GQl9JUFY2X05EX1RBUkdFVCAyiAIgVGhlIHRhcmdldCBhZGRyZXNzIGluIGFuIElQdjYgTmVpZ2hib3IgRGlzY292ZXJ5IG1lc3NhZ2UuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4NmRkIGV4YWN0bHkuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDU4IGV4YWN0bHkuCiAgIE9YTV9PRl9JQ01QVjZfVFlQRSBtdXN0IGJlIGVpdGhlciAxMzUgb3IgMTM2LgoKIEZvcm1hdDogMTI4LWJpdCBJUHY2IGFkZHJlc3MuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCIQUSBKgGCA0KDQoFBAwCIQESBKgGDhwKDQoFBAwCIQMSBKgGHyEKlwMKBAQMAiISBLYGCB8aTCNkZWZpbmUgT1hNX09GX0lQVjZfTkRfU0xMICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfTkRfU0xMLCA2KQoiHCBGb3IgT0ZQWE1UX09GQl9JUFY2X05EX1NMTCAynAIgVGhlIHNvdXJjZSBsaW5rLWxheWVyIGFkZHJlc3Mgb3B0aW9uIGluIGFuIElQdjYgTmVpZ2hib3IgRGlzY292ZXJ5CiBtZXNzYWdlLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODZkZCBleGFjdGx5LgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCA1OCBleGFjdGx5LgogICBPWE1fT0ZfSUNNUFY2X1RZUEUgbXVzdCBiZSBleGFjdGx5IDEzNS4KCiBGb3JtYXQ6IDQ4LWJpdCBFdGhlcm5ldCBNQUMgYWRkcmVzcy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAIiBRIEtgYIDQoNCgUEDAIiARIEtgYOGQoNCgUEDAIiAxIEtgYcHgqXAwoEBAwCIxIExAYIHxpMI2RlZmluZSBPWE1fT0ZfSVBWNl9ORF9UTEwgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9ORF9UTEwsIDYpCiIcIEZvciBPRlBYTVRfT0ZCX0lQVjZfTkRfVExMIDKcAiBUaGUgdGFyZ2V0IGxpbmstbGF5ZXIgYWRkcmVzcyBvcHRpb24gaW4gYW4gSVB2NiBOZWlnaGJvciBEaXNjb3ZlcnkKIG1lc3NhZ2UuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4NmRkIGV4YWN0bHkuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDU4IGV4YWN0bHkuCiAgIE9YTV9PRl9JQ01QVjZfVFlQRSBtdXN0IGJlIGV4YWN0bHkgMTM2LgoKIEZvcm1hdDogNDgtYml0IEV0aGVybmV0IE1BQyBhZGRyZXNzLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAiMFEgTEBggNCg0KBQQMAiMBEgTEBg4ZCg0KBQQMAiMDEgTEBhweCv4CCgQEDAIkEgTQBggfGkojZGVmaW5lIE9YTV9PRl9NUExTX0xBQkVMICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX01QTFNfTEFCRUwsIDQpCiIbIEZvciBPRlBYTVRfT0ZCX01QTFNfTEFCRUwgMoYCIFRoZSBMQUJFTCBpbiB0aGUgZmlyc3QgTVBMUyBzaGltIGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg4NDcgb3IgMHg4ODQ4IGV4YWN0bHkuCgogRm9ybWF0OiAzMi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIgd2l0aCAxMiBtb3N0LXNpZ25pZmljYW50CiBiaXRzIGZvcmNlZCB0byAwLiBPbmx5IHRoZSBsb3dlciAyMCBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAIkBRIE0AYIDgoNCgUEDAIkARIE0AYPGQoNCgUEDAIkAxIE0AYcHgrcAgoEBAwCJRIE3AYIHBpHI2RlZmluZSBPWE1fT0ZfTVBMU19UQyAgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9NUExTX1RDLCAxKQoiGCBGb3IgT0ZQWE1UX09GQl9NUExTX1RDIDLqASBUaGUgVEMgaW4gdGhlIGZpcnN0IE1QTFMgc2hpbSBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4ODQ3IG9yIDB4ODg0OCBleGFjdGx5LgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlciB3aXRoIDUgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXIgMyBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAIlBRIE3AYIDgoNCgUEDAIlARIE3AYPFgoNCgUEDAIlAxIE3AYZGwrkAgoEBAwCJhIE6AYIHRpJI2RlZmluZSBPWE1fT0ZfTVBMU19CT1MgICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfTVBMU19CT1MsIDEpCiIZIEZvciBPRlBYTVRfT0ZCX01QTFNfQk9TIDLvASBUaGUgQm9TIGJpdCBpbiB0aGUgZmlyc3QgTVBMUyBzaGltIGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg4NDcgb3IgMHg4ODQ4IGV4YWN0bHkuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyIHdpdGggNyBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlc3QgYml0IGhhdmUgYSBtZWFuaW5nLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAiYFEgToBggOCg0KBQQMAiYBEgToBg8XCg0KBQQMAiYDEgToBhocCqoDCgQEDAInEgT3BggdGo4BI2RlZmluZSBPWE1fT0ZfUEJCX0lTSUQgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1BCQl9JU0lELCAzKQojZGVmaW5lIE9YTV9PRl9QQkJfSVNJRF9XIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfUEJCX0lTSUQsIDMpCiIZIEZvciBPRlBYTVRfT0ZCX1BCQl9JU0lEIDLvASBJRUVFIDgwMi4xYWggSS1TSUQuCgogRm9yIGEgcGFja2V0IHdpdGggYSBQQkIgaGVhZGVyLCB0aGlzIGlzIHRoZSBJLVNJRCBmcm9tIHRoZQogb3V0ZXJtb3N0IHNlcnZpY2UgdGFnLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODhFNyBleGFjdGx5LgoKIEZvcm1hdDogMjQtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4gCg0KBQQMAicFEgT3BggOCg0KBQQMAicBEgT3Bg8XCg0KBQQMAicDEgT3BhocCrwGCgQEDAIoEgSLBwgeGpQBI2RlZmluZSBPWE1fT0ZfVFVOTkVMX0lEICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfVFVOTkVMX0lELCA4KQojZGVmaW5lIE9YTV9PRl9UVU5ORUxfSURfVyAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9UVU5ORUxfSUQsIDgpCiIaIEZvciBPRlBYTVRfT0ZCX1RVTk5FTF9JRCAy+gQgTG9naWNhbCBQb3J0IE1ldGFkYXRhLgoKIE1ldGFkYXRhIGFzc29jaWF0ZWQgd2l0aCBhIGxvZ2ljYWwgcG9ydC4KIElmIHRoZSBsb2dpY2FsIHBvcnQgcGVyZm9ybXMgZW5jYXBzdWxhdGlvbiBhbmQgZGVjYXBzdWxhdGlvbiwgdGhpcwogaXMgdGhlIGRlbXVsdGlwbGV4aW5nIGZpZWxkIGZyb20gdGhlIGVuY2Fwc3VsYXRpb24gaGVhZGVyLgogRm9yIGV4YW1wbGUsIGZvciBhIHBhY2tldCByZWNlaXZlZCB2aWEgR1JFIHR1bm5lbCBpbmNsdWRpbmcgYSAoMzItYml0KSBrZXksCiB0aGUga2V5IGlzIHN0b3JlZCBpbiB0aGUgbG93IDMyLWJpdHMgYW5kIHRoZSBoaWdoIGJpdHMgYXJlIHplcm9lZC4KIEZvciBhIE1QTFMgbG9naWNhbCBwb3J0LCB0aGUgbG93IDIwIGJpdHMgcmVwcmVzZW50IHRoZSBNUExTIExhYmVsLgogRm9yIGEgVnhMQU4gbG9naWNhbCBwb3J0LCB0aGUgbG93IDI0IGJpdHMgcmVwcmVzZW50IHRoZSBWTkkuCiBJZiB0aGUgcGFja2V0IGlzIG5vdCByZWNlaXZlZCB0aHJvdWdoIGEgbG9naWNhbCBwb3J0LCB0aGUgdmFsdWUgaXMgMC4KCiBQcmVyZXFzOiBOb25lLgoKIEZvcm1hdDogNjQtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4gCg0KBQQMAigFEgSLBwgOCg0KBQQMAigBEgSLBw8YCg0KBQQMAigDEgSLBxsdCqgDCgQEDAIpEgSYBwggGpoBI2RlZmluZSBPWE1fT0ZfSVBWNl9FWFRIRFIgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfRVhUSERSLCAyKQojZGVmaW5lIE9YTV9PRl9JUFY2X0VYVEhEUl9XIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9FWFRIRFIsIDIpCiIcIEZvciBPRlBYTVRfT0ZCX0lQVjZfRVhUSERSIDLeASBUaGUgSVB2NiBFeHRlbnNpb24gSGVhZGVyIHBzZXVkby1maWVsZC4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg2ZGQgZXhhY3RseQoKIEZvcm1hdDogMTYtYml0IGludGVnZXIg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BBwaiAEgTWV0ZXIgY29uZmlndXJhdGlvbi4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgc3RydWN0IG9mcF9tZXRlcl9tdWx0aXBhcnRfcmVxdWVzdHMuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX21ldGVyX2NvbmZpZy4gCg0KBQUtAgoBEgS8DQQWCg0KBQUtAgoCEgS8DRkbCmkKBAUtAgsSBMENBB4aWyBNZXRlciBmZWF0dXJlcy4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgZW1wdHkuCiBUaGUgcmVwbHkgYm9keSBpcyBzdHJ1Y3Qgb2ZwX21ldGVyX2ZlYXR1cmVzLiAKDQoFBS0CCwESBMENBBgKDQoFBS0CCwISBMENGx0KsQIKBAUtAgwSBMkNBB4aogIgVGFibGUgZmVhdHVyZXMuCiBUaGUgcmVxdWVzdCBib2R5IGlzIGVpdGhlciBlbXB0eSBvciBjb250YWlucyBhbiBhcnJheSBvZgogc3RydWN0IG9mcF90YWJsZV9mZWF0dXJlcyBjb250YWluaW5nIHRoZSBjb250cm9sbGVyJ3MKIGRlc2lyZWQgdmlldyBvZiB0aGUgc3dpdGNoLiBJZiB0aGUgc3dpdGNoIGlzIHVuYWJsZSB0bwogc2V0IHRoZSBzcGVjaWZpZWQgdmlldyBhbiBlcnJvciBpcyByZXR1cm5lZC4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfdGFibGVfZmVhdHVyZXMuIAoNCgUFLQIMARIEyQ0EGAoNCgUFLQIMAhIEyQ0bHQptCgQFLQINEgTODQQZGl8gUG9ydCBkZXNjcmlwdGlvbi4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgZW1wdHkuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX3BvcnQuIAoNCgUFLQINARIEzg0EEwoNCgUFLQINAhIEzg0WGAq+AQoEBS0CDhIE1A0EIBqvASBFeHBlcmltZW50ZXIgZXh0ZW5zaW9uLgogVGhlIHJlcXVlc3QgYW5kIHJlcGx5IGJvZGllcyBiZWdpbiB3aXRoCiBzdHJ1Y3Qgb2ZwX2V4cGVyaW1lbnRlcl9tdWx0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FCBMaXN0IG9mIHRhYmxlIGlkcy4gCg0KBQQzAgAEEgTqDgQMCg0KBQQzAgAFEgTqDg0TCg0KBQQzAgABEgTqDhQiCg0KBQQzAgADEgTqDiUmCiAKAgQ0EgbuDgD0DgEaEiBBY3Rpb25zIHByb3BlcnR5IAoLCgMENAESBO4OCCYKjwEKBAQ0AgASBPMOBCQabiBPbmUgb2YgT0ZQVEZQVF9XUklURV9BQ1RJT05TLApPRlBURlBUX1dSSVRFX0FDVElPTlNfTUlTUywKT0ZQVEZQVF9BUFBMWV9BQ1RJT05TLApPRlBURlBUX0FQUExZX0FDVElPTlNfTUlTUy4gIhEgTGlzdCBvZiBhY3Rpb25zIAoNCgUENAIABBIE8w4EDAoNCgUENAIABhIE8w4NFwoNCgUENAIAARIE8w4YHwoNCgUENAIAAxIE8w4iIwrMAQoCBDUSBvcOAIAPARonIE1hdGNoLCBXaWxkY2FyZCBvciBTZXQtRmllbGQgcHJvcGVydHkgIpQBIE9uZSBvZiBPRlBURlBUX01BVENILApPRlBURlBUX1dJTERDQVJEUywKT0ZQVEZQVF9XUklURV9TRVRGSUVMRCwKT0ZQVEZQVF9XUklURV9TRVRGSUVMRF9NSVNTLApPRlBURlBUX0FQUExZX1NFVEZJRUxELApPRlBURlBUX0FQUExZX1NFVEZJRUxEX01JU1MuIAoLCgMENQESBPcOCCIKQAoEBDUCABIE/w4EIBoaIFRPRE8gaXMgdGhpcyBhIHVpbnQzMj8/PyAiFiBBcnJheSBvZiBPWE0gaGVhZGVycyAKDQoFBDUCAAQSBP8OBAwKDQoFBDUCAAUSBP8ODRMKDQoFBDUCAAESBP8OFBsKDQoFBDUCAAMSBP8OHh8KMwoCBDYSBoMPAIsPARolIEV4cGVyaW1lbnRlciB0YWJsZSBmZWF0dXJlIHByb3BlcnR5IAoLCgMENgESBIMPCCsKmgEKBAQ2AgASBIYPBCQaOSBPbmUgb2YgT0ZQVEZQVF9FWFBFUklNRU5URVIsCk9GUFRGUFRfRVhQRVJJTUVOVEVSX01JU1MuICJRIEV4cGVyaW1lbnRlciBJRCB3aGljaCB0YWtlcyB0aGUgc2FtZQpmb3JtIGFzIGluIHN0cnVjdApvZnBfZXhwZXJpbWVudGVyX2hlYWRl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ICAgY29uZmlndXJlcyBpdHNlbGYgYXMgTWFzdGVyLCBhbnkgZXhpc3RpbmcgTWFzdGVyIGlzIGRlbW90ZWQgdG8gdGhlCiAgICAgIFNsYXZlIHJvbGUuCgogICAgLSBTbGF2ZSAoT0ZQQ1JfUk9MRV9TTEFWRSkgYWxsb3dzIHRoZSBjb250cm9sbGVyIHJlYWQtb25seSBhY2Nlc3MgdG8KICAgICAgT3BlbkZsb3cgZmVhdHVyZXMuICBJbiBwYXJ0aWN1bGFyIGF0dGVtcHRzIHRvIG1vZGlmeSB0aGUgZmxvdyB0YWJsZQogICAgICB3aWxsIGJlIHJlamVjdGVkIHdpdGggYW4gT0ZQQlJDX0VQRVJNIGVycm9yLgoKICAgICAgU2xhdmUgY29udHJvbGxlcnMgZG8gbm90IHJlY2VpdmUgT0ZQVF9QQUNLRVRfSU4gb3IgT0ZQVF9GTE9XX1JFTU9WRUQKICAgICAgbWVzc2FnZXMsIGJ1dCB0aGV5IGRvIHJlY2VpdmUgT0ZQVF9QT1JUX1NUQVRVUyBtZXNzYWdlcy4KCgsKAwUzARIErREFGAoqCgQFMwIAEgSuEQQcIhwgRG9uJ3QgY2hhbmdlIGN1cnJlbnQgcm9sZS4gCg0KBQUzAgABEgSuEQQXCg0KBQUzAgACEgSuERobCioKBAUzAgESBK8RBBwiHCBEZWZhdWx0IHJvbGUsIGZ1bGwgYWNjZXNzLiAKDQoFBTMCAQESBK8RBBQKDQoFBTMCAQISBK8RGhsKMAoEBTMCAhIEsBEEHCIiIEZ1bGwgYWNjZXNzLCBhdCBtb3N0IG9uZSBtYXN0ZXIuIAoNCgUFMwICARIEsBEEFQoNCgUFMwICAhIEsBEaGwohCgQFMwIDEgSxEQQcIhMgUmVhZC1vbmx5IGFjY2Vzcy4gCg0KBQUzAgMBEgSxEQQUCg0KBQUzAgMCEgSxERobCi8KAgRSEga1EQC5EQEaISBSb2xlIHJlcXVlc3QgYW5kIHJlcGx5IG1lc3NhZ2UuIAoLCgMEUgESBLURCBgKbgoEBFICABIEtxEEIRpIb2ZwX2hlYWRlciBoZWFkZXI7ICAgICAgICAvKiBUeXBlIE9GUFRfUk9MRV9SRVFVRVNUL09GUFRfUk9MRV9SRVBMWS4gKi8KIhYgT25lIG9mIE9GUENSX1JP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Cg0KBQRfCAABEgT8EQoPCgwKBARfAgESBP0RCCgKDQoFBF8CAQYSBP0RCBcKDQoFBF8CAQESBP0RGCMKDQoFBF8CAQMSBP0RJidQAWIGcHJvdG8zCqusAQoadm9sdGhhX3Byb3Rvcy9kZXZpY2UucHJvdG8SBnZvbHRoYRoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90bxoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8aGHZvbHRoYV9wcm90b3MvbWV0YS5wcm90bxofdm9sdGhhX3Byb3Rvcy9vcGVuZmxvd18xMy5wcm90bxogdm9sdGhhX3Byb3Rvcy95YW5nX29wdGlvbnMucHJvdG8ivwIKCkRldmljZVR5cGUSDgoCaWQYASABKAlSAmlkEhsKCXZlbmRvcl9pZBgFIAEoCVIIdmVuZG9ySWQSHQoKdmVuZG9yX2lkcxgGIAMoCVIJdmVuZG9ySWRzEhgKB2FkYXB0ZXIYAiABKAlSB2FkYXB0ZXISNwoYYWNjZXB0c19idWxrX2Zsb3dfdXBkYXRlGAMgASgIUhVhY2NlcHRzQnVsa0Zsb3dVcGRhdGUSRAofYWNjZXB0c19hZGRfcmVtb3ZlX2Zsb3dfdXBkYXRlcxgEIAEoCFIbYWNjZXB0c0FkZFJlbW92ZUZsb3dVcGRhdGVzEkwKI2FjY2VwdHNfZGlyZWN0X2xvZ2ljYWxfZmxvd3NfdXBkYXRlGAcgASgIUh9hY2NlcHRzRGlyZWN0TG9naWNhbEZsb3dzVXBkYXRlIjcKC0RldmljZVR5cGVzEigKBWl0ZW1zGAEgAygLMhIudm9sdGhhLkRldmljZVR5cGVSBWl0ZW1zIsABCghQbUNvbmZpZxISCgRuYW1lGAEgASgJUgRuYW1lEisKBHR5cGUYAiABKA4yFy52b2x0aGEuUG1Db25maWcuUG1UeXBlUgR0eXBlEhgKB2VuYWJsZWQYAyABKAhSB2VuYWJsZWQSHwoLc2FtcGxlX2ZyZXEYBCABKA1SCnNhbXBsZUZyZXEiOAoGUG1UeXBlEgsKB0NPVU5URVIQABIJCgVHQVVHRRABEgkKBVNUQVRFEAISCwoHQ09OVEVYVBADIpMBCg1QbUdyb3VwQ29uZmlnEh0KCmdyb3VwX25hbWUYASABKAlSCWdyb3VwTmFtZRIdCgpncm91cF9mcmVxGAIgASgNUglncm91cEZyZXESGAoHZW5hYmxlZBgDIAEoCFIHZW5hYmxlZBIqCgdtZXRyaWNzGAQgAygLMhAudm9sdGhhLlBtQ29uZmlnUgdtZXRyaWNzIuYBCglQbUNvbmZpZ3MSDgoCaWQYASABKAlSAmlkEiEKDGRlZmF1bHRfZnJlcRgCIAEoDVILZGVmYXVsdEZyZXESHwoHZ3JvdXBlZBgDIAEoCEIF6PbNHQFSB2dyb3VwZWQSKgoNZnJlcV9vdmVycmlkZRgEIAEoCEIF6PbNHQFSDGZyZXFPdmVycmlkZRItCgZncm91cHMYBSADKAsyFS52b2x0aGEuUG1Hcm91cENvbmZpZ1IGZ3JvdXBzEioKB21ldHJpY3MYBiADKAsyEC52b2x0aGEuUG1Db25maWdSB21ldHJpY3MizwEKBUltYWdlEhIKBG5hbWUYASABKAlSBG5hbWUSGAoHdmVyc2lvbhgCIAEoCVIHdmVyc2lvbhISCgRoYXNoGAMgASgJUgRoYXNoEikKEGluc3RhbGxfZGF0ZXRpbWUYBCABKAlSD2luc3RhbGxEYXRldGltZRIbCglpc19hY3RpdmUYBSABKAhSCGlzQWN0aXZlEiEKDGlzX2NvbW1pdHRlZBgGIAEoCFILaXNDb21taXR0ZWQSGQoIaXNfdmFsaWQYByABKAhSB2lzVmFsaWQiLQoGSW1hZ2VzEiMKBWltYWdlGAEgAygLMg0udm9sdGhhLkltYWdlUgVpbWFnZSLqBwoNSW1hZ2VEb3dubG9hZBIOCgJpZBgBIAEoCVICaWQSEgoEbmFtZRgCIAEoCVIEbmFtZRIQCgN1cmwYAyABKAlSA3VybBIQCgNjcmMYBCABKA1SA2NyYxJPCg5kb3dubG9hZF9zdGF0ZRgFIAEoDjIoLnZvbHRoYS5JbWFnZURvd25sb2FkLkltYWdlRG93bmxvYWRTdGF0ZVINZG93bmxvYWRTdGF0ZRIjCg1pbWFnZV92ZXJzaW9uGAYgASgJUgxpbWFnZVZlcnNpb24SKQoQZG93bmxvYWRlZF9ieXRlcxgHIAEoDVIPZG93bmxvYWRlZEJ5dGVzEkgKBnJlYXNvbhgIIAEoDjIwLnZvbHRoYS5JbWFnZURvd25sb2FkLkltYWdlRG93bmxvYWRGYWlsdXJlUmVhc29uUgZyZWFzb24SJwoPYWRkaXRpb25hbF9pbmZvGAkgASgJUg5hZGRpdGlvbmFsSW5mbxIfCgtzYXZlX2NvbmZpZxgKIAEoCFIKc2F2ZUNvbmZpZxIbCglsb2NhbF9kaXIYCyABKAlSCGxvY2FsRGlyEkkKC2ltYWdlX3N0YXRlGAwgASgOMigudm9sdGhhLkltYWdlRG93bmxvYWQuSW1hZ2VBY3RpdmF0ZVN0YXRlUgppbWFnZVN0YXRlEhsKCWZpbGVfc2l6ZRgNIAEoDVIIZmlsZVNpemUitwEKEkltYWdlRG93bmxvYWRTdGF0ZRIUChBET1dOTE9BRF9VTktOT1dOEAASFgoSRE9XTkxPQURfU1VDQ0VFREVEEAESFgoSRE9XTkxPQURfUkVRVUVTVEVEEAISFAoQRE9XTkxPQURfU1RBUlRFRBADEhMKD0RPV05MT0FEX0ZBSUxFRBAEEhgKFERPV05MT0FEX1VOU1VQUE9SVEVEEAUSFgoSRE9XTkxPQURfQ0FOQ0VMTEVEEAYihgEKGkltYWdlRG93bmxvYWRGYWlsdXJlUmVhc29uEgwKCE5PX0VSUk9SEAASDwoLSU5WQUxJRF9VUkwQARIPCgtERVZJQ0VfQlVTWRACEhYKEklOU1VGRklDSUVOVF9TUEFDRRADEhEKDVVOS05PV05fRVJST1IQBBINCglDQU5DRUxMRUQQBSKMAQoSSW1hZ2VBY3RpdmF0ZVN0YXRlEhEKDUlNQUdFX1VOS05PV04QABISCg5JTUFHRV9JTkFDVElWRRABEhQKEElNQUdFX0FDVElWQVRJTkcQAhIQCgxJTUFHRV9BQ1RJVkUQAxITCg9JTUFHRV9SRVZFUlRJTkcQBBISCg5JTUFHRV9SRVZFUlRFRBAFOgXw9s0dACI9Cg5JbWFnZURvd25sb2FkcxIrCgVpdGVtcxgCIAMoCzIVLnZvbHRoYS5JbWFnZURvd25sb2FkUgVpdGVtcyKWBQoEUG9ydBIXCgdwb3J0X25vGAEgASgNUgZwb3J0Tm8SFAoFbGFiZWwYAiABKAlSBWxhYmVsEikKBHR5cGUYAyABKA4yFS52b2x0aGEuUG9ydC5Qb3J0VHlwZVIEdHlwZRI+CgthZG1pbl9zdGF0ZRgFIAEoDjIdLnZvbHRoYS5BZG1pblN0YXRlLkFkbWluU3RhdGVSCmFkbWluU3RhdGUSPgoLb3Blcl9zdGF0dXMYBiABKA4yHS52b2x0aGEuT3BlclN0YXR1cy5PcGVyU3RhdHVzUgpvcGVyU3RhdHVzEhsKCWRldmljZV9pZBgHIAEoCVIIZGV2aWNlSWQSKwoFcGVlcnMYCCADKAsyFS52b2x0aGEuUG9ydC5QZWVyUG9ydFIFcGVlcnMSHQoKcnhfcGFja2V0cxgJIAEoBlIJcnhQYWNrZXRzEhkKCHJ4X2J5dGVzGAogASgGUgdyeEJ5dGVzEhsKCXJ4X2Vycm9ycxgLIAEoBlIIcnhFcnJvcnMSHQoKdHhfcGFja2V0cxgMIAEoBlIJdHhQYWNrZXRzEhkKCHR4X2J5dGVzGA0gASgGUgd0eEJ5dGVzEhsKCXR4X2Vycm9ycxgOIAEoBlIIdHhFcnJvcnMaQAoIUGVlclBvcnQSGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIXCgdwb3J0X25vGAIgASgNUgZwb3J0Tm8icwoIUG9ydFR5cGUSCwoHVU5LTk9XThAAEhAKDEVUSEVSTkVUX05OSRABEhAKDEVUSEVSTkVUX1VOSRACEgsKB1BPTl9PTFQQAxILCgdQT05fT05VEAQSDQoJVkVORVRfT0xUEAUSDQoJVkVORVRfT05VEAY6BfD2zR0AIisKBVBvcnRzEiIKBWl0ZW1zGAEgAygLMgwudm9sdGhhLlBvcnRSBWl0ZW1zItwMCgZEZXZpY2USFQoCaWQYASABKAlCBej2zR0BUgJpZBIZCgR0eXBlGAIgASgJQgXo9s0dAVIEdHlwZRIZCgRyb290GAMgASgIQgXo9s0dAVIEcm9vdBIiCglwYXJlbnRfaWQYBCABKAlCBej2zR0BUghwYXJlbnRJZBIrCg5wYXJlbnRfcG9ydF9ubxgUIAEoDUIF6PbNHQFSDHBhcmVudFBvcnRObxIdCgZ2ZW5kb3IYBSABKAlCBej2zR0BUgZ2ZW5kb3ISGwoFbW9kZWwYBiABKAlCBej2zR0BUgVtb2RlbBIwChBoYXJkd2FyZV92ZXJzaW9uGAcgASgJQgXo9s0dAVIPaGFyZHdhcmVWZXJzaW9uEjAKEGZpcm13YXJlX3ZlcnNpb24YCCABKAlCBej2zR0BUg9maXJtd2FyZVZlcnNpb24SLQoGaW1hZ2VzGAkgASgLMg4udm9sdGhhLkltYWdlc0IF6PbNHQFSBmltYWdlcxIqCg1zZXJpYWxfbnVtYmVyGAogASgJQgXo9s0dAVIMc2VyaWFsTnVtYmVyEiIKCXZlbmRvcl9pZBgYIAEoCUIF6PbNHQFSCHZlbmRvcklkEh8KB2FkYXB0ZXIYCyABKAlCBej2zR0BUgdhZGFwdGVyEhIKBHZsYW4YDCABKA1SBHZsYW4SHwoLbWFjX2FkZHJlc3MYDSABKAlSCm1hY0FkZHJlc3MSIwoMaXB2NF9hZGRyZXNzGA4gASgJSABSC2lwdjRBZGRyZXNzEiMKDGlwdjZfYWRkcmVzcxgPIAEoCUgAUgtpcHY2QWRkcmVzcxIkCg1ob3N0X2FuZF9wb3J0GBUgASgJSABSC2hvc3RBbmRQb3J0Eh0KCmV4dHJhX2FyZ3MYFyABKAlSCWV4dHJhQXJncxJACg1wcm94eV9hZGRyZXNzGBMgASgLMhsudm9sdGhhLkRldmljZS5Qcm94eUFkZHJlc3NSDHByb3h5QWRkcmVzcxI+CgthZG1pbl9zdGF0ZRgQIAEoDjIdLnZvbHRoYS5BZG1pblN0YXRlLkFkbWluU3RhdGVSCmFkbWluU3RhdGUSRQoLb3Blcl9zdGF0dXMYESABKA4yHS52b2x0aGEuT3BlclN0YXR1cy5PcGVyU3RhdHVzQgXo9s0dAVIKb3BlclN0YXR1cxIdCgZyZWFzb24YFiABKAlCBej2zR0BUgZyZWFzb24SUQoOY29ubmVjdF9zdGF0dXMYEiABKA4yIy52b2x0aGEuQ29ubmVjdFN0YXR1cy5Db25uZWN0U3RhdHVzQgXo9s0dAVINY29ubmVjdFN0YXR1cxIsCgZjdXN0b20YQCABKAsyFC5nb29nbGUucHJvdG9idWYuQW55UgZjdXN0b20SMwoFcG9ydHMYgAEgAygLMgwudm9sdGhhLlBvcnRCDuL2zR0JCgdwb3J0X25vUgVwb3J0cxIwCgVmbG93cxiBASABKAsyEi5vcGVuZmxvd18xMy5GbG93c0IF4vbNHQBSBWZsb3dzEkAKC2Zsb3dfZ3JvdXBzGIIBIAEoCzIXLm9wZW5mbG93XzEzLkZsb3dHcm91cHNCBeL2zR0AUgpmbG93R3JvdXBzEjgKCnBtX2NvbmZpZ3MYgwEgASgLMhEudm9sdGhhLlBtQ29uZmlnc0IF4vbNHQBSCXBtQ29uZmlncxJMCg9pbWFnZV9kb3dubG9hZHMYhQEgAygLMhUudm9sdGhhLkltYWdlRG93bmxvYWRCC+L2zR0GCgRuYW1lUg5pbWFnZURvd25sb2FkcxqDAgoMUHJveHlBZGRyZXNzEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSHwoLZGV2aWNlX3R5cGUYAiABKAlSCmRldmljZVR5cGUSHQoKY2hhbm5lbF9pZBgDIAEoDVIJY2hhbm5lbElkEigKEGNoYW5uZWxfZ3JvdXBfaWQYBCABKA1SDmNoYW5uZWxHcm91cElkEi8KE2NoYW5uZWxfdGVybWluYXRpb24YBSABKAlSEmNoYW5uZWxUZXJtaW5hdGlvbhIVCgZvbnVfaWQYBiABKA1SBW9udUlkEiQKDm9udV9zZXNzaW9uX2lkGAcgASgNUgxvbnVTZXNzaW9uSWQ6BfD2zR0AQgkKB2FkZHJlc3MiLwoHRGV2aWNlcxIkCgVpdGVtcxgBIAMoCzIOLnZvbHRoYS5EZXZpY2VSBWl0ZW1zIqgDChRTaW11bGF0ZUFsYXJtUmVxdWVzdBIOCgJpZBgBIAEoCVICaWQSHAoJaW5kaWNhdG9yGAIgASgJUglpbmRpY2F0b3ISFwoHaW50Zl9pZBgDIAEoCVIGaW50ZklkEiQKDnBvcnRfdHlwZV9uYW1lGAQgASgJUgxwb3J0VHlwZU5hbWUSIgoNb251X2RldmljZV9pZBgFIAEoCVILb251RGV2aWNlSWQSMwoWaW52ZXJzZV9iaXRfZXJyb3JfcmF0ZRgGIAEoBVITaW52ZXJzZUJpdEVycm9yUmF0ZRIUCgVkcmlmdBgHIAEoBVIFZHJpZnQSFwoHbmV3X2VxZBgIIAEoBVIGbmV3RXFkEioKEW9udV9zZXJpYWxfbnVtYmVyGAkgASgJUg9vbnVTZXJpYWxOdW1iZXISSAoJb3BlcmF0aW9uGAogASgOMioudm9sdGhhLlNpbXVsYXRlQWxhcm1SZXF1ZXN0Lk9wZXJhdGlvblR5cGVSCW9wZXJhdGlvbiIlCg1PcGVyYXRpb25UeXBlEgkKBVJBSVNFEAASCQoFQ0xFQVIQAUItWitnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRo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ZXMgYXJlCiBib3RoIHNvZnR3YXJlIGltYWdlcyBhbGxvd2VkIHRvIGJlIGFjdGl2ZSBhdCB0aGUgc2FtZSB0aW1lCiIdIFRydWUgaWYgdGhlIGltYWdlIGlzIGFjdGl2ZQoyJyB1c2UgSVNPIDg2MDEgZm9ybWF0IGZvciBkYXRlIGFuZCB0aW1lCgoNCgUEBQIEBBIEUgRLIAoMCgUEBQIEBRIDUgQICgwKBQQFAgQBEgNSCRIKDAoFBAUCBAMSA1IVFgr0AQoEBAUCBRIDVwQaGsQBIFRoZSBjb21taXR0ZWQgc29mdHdhcmUgaW1hZ2UgaXMgbG9hZGVkIGFuZCBleGVjdXRlZCB1cG9uIHJlYm9vdCBvZiB0aGUKIE9OVSBhbmQvb3IgY2lyY3VpdCBwYWNrLiBEdXJpbmcgbm9ybWFsIG9wZXJhdGlvbiwgb25lIHNvZnR3YXJlIGltYWdlIGlzCiBhbHdheXMgY29tbWl0dGVkLCB3aGlsZSB0aGUgb3RoZXIgaXMgdW5jb21taXR0ZWQuCiIgIFRydWUgaWYgdGhlIGltYWdlIGlzIGNvbW1pdHRlZAoKDQoFBAUCBQQSBFcEUhcKDAoFBAUCBQUSA1cECAoMCgUEBQIFARIDVwkVCgwKBQQFAgUDEgNXGBkKoQIKBAQFAgYSA10EFhr1ASBBIHNvZnR3YXJlIGltYWdlIGlzIHZhbGlkIGlmIGl0IGhhcyBiZWVuIHZlcmlmaWVkIHRvIGJlIGFuIGV4ZWN1dGFibGUKIGNvZGUgaW1hZ2UuIFRoZSB2ZXJpZmljYXRpb24gbWVjaGFuaXNtIGlzIG5vdCBzdWJqZWN0IHRvIHN0YW5kYXJkaXphdGlvbjsKIGhvd2V2ZXIsIGl0IHNob3VsZCBpbmNsdWRlIGF0IGxlYXN0IGEgZGF0YSBpbnRlZ3JpdHkgKGUuZy4sIENSQykgY2hlY2sgb2YKIHRoZSBlbnRpcmUgY29kZSBpbWFnZS4KIhwgVHJ1ZSBpZiB0aGUgaW1hZ2UgaXMgdmFsaWQKCg0KBQQFAgYEEgRdBFcaCgwKBQQFAgYFEgNdBAgKDAoFBAUCBgESA10JEQoMCgUEBQIGAxIDXRQVCiwKAgQGEgRhAGMBGiAgTGlzdCBvZiBzb2Z0d2FyZSBvbiB0aGUgZGV2aWNlCgoKCgME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FAoFdGl0bGUYASABKAlSBXRpdGxlEg4KAnRzGAIgASgBUgJ0cxIqChFsb2dpY2FsX2RldmljZV9pZBgDIAEoCVIPbG9naWNhbERldmljZUlkEhsKCXNlcmlhbF9ubxgEIAEoCVIIc2VyaWFsTm8SGwoJZGV2aWNlX2lkGAUgASgJUghkZXZpY2VJZBI9Cgdjb250ZXh0GAYgAygLMiMudm9sdGhhLk1ldHJpY01ldGFEYXRhLkNvbnRleHRFbnRyeVIHY29udGV4dBo6CgxDb250ZXh0RW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4ASKPAQoQTWV0cmljVmFsdWVQYWlycxI/CgdtZXRyaWNzGAEgAygLMiUudm9sdGhhLk1ldHJpY1ZhbHVlUGFpcnMuTWV0cmljc0VudHJ5UgdtZXRyaWNzGjoKDE1ldHJpY3NFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBIsUBChFNZXRyaWNJbmZvcm1hdGlvbhIyCghtZXRhZGF0YRgBIAEoCzIWLnZvbHRoYS5NZXRyaWNNZXRhRGF0YVIIbWV0YWRhdGESQAoHbWV0cmljcxgCIAMoCzImLnZvbHRoYS5NZXRyaWNJbmZvcm1hdGlvbi5NZXRyaWNzRW50cnlSB21ldHJpY3MaOgoMTWV0cmljc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgCUgV2YWx1ZToCOAEi5AEKCEtwaUV2ZW50EjUKBHR5cGUYASABKA4yIS52b2x0aGEuS3BpRXZlbnRUeXBlLktwaUV2ZW50VHlwZVIEdHlwZRIOCgJ0cxgCIAEoAlICdHMSOgoIcHJlZml4ZXMYAyADKAsyHi52b2x0aGEuS3BpRXZlbnQuUHJlZml4ZXNFbnRyeVIIcHJlZml4ZXMaVQoNUHJlZml4ZXNFbnRyeRIQCgNrZXkYASABKAlSA2tleRIuCgV2YWx1ZRgCIAEoCzIYLnZvbHRoYS5NZXRyaWNWYWx1ZVBhaXJzUgV2YWx1ZToCOAEijAEKCUtwaUV2ZW50MhI1CgR0eXBlGAEgASgOMiEudm9sdGhhLktwaUV2ZW50VHlwZS5LcGlFdmVudFR5cGVSBHR5cGUSDgoCdHMYAiABKAFSAnRzEjgKCnNsaWNlX2RhdGEYAyADKAsyGS52b2x0aGEuTWV0cmljSW5mb3JtYXRpb25SCXNsaWNlRGF0YSKAAQoOQWxhcm1FdmVudFR5cGUibgoOQWxhcm1FdmVudFR5cGUSEQoNQ09NTVVOSUNBVElPThAAEg8KC0VOVklST05NRU5UEAESDQoJRVFVSVBNRU5UEAISCwoHU0VSVklDRRADEg4KClBST0NFU1NJTkcQBBIMCghTRUNVUklUWRAFIlcKEkFsYXJtRXZlbnRDYXRlZ29yeSJBChJBbGFybUV2ZW50Q2F0ZWdvcnkSBwoDUE9OEAASBwoDT0xUEAESBwoDT05UEAISBwoDT05VEAMSBwoDTk5JEAQiPQoPQWxhcm1FdmVudFN0YXRlIioKD0FsYXJtRXZlbnRTdGF0ZRIKCgZSQUlTRUQQABILCgdDTEVBUkVEEAEibgoSQWxhcm1FdmVudFNldmVyaXR5IlgKEkFsYXJtRXZlbnRTZXZlcml0eRIRCg1JTkRFVEVSTUlOQVRFEAASCwoHV0FSTklORxABEgkKBU1JTk9SEAISCQoFTUFKT1IQAxIMCghDUklUSUNBTBAEIpcFCgpBbGFybUV2ZW50Eg4KAmlkGAEgASgJUgJpZBI5CgR0eXBlGAIgASgOMiUudm9sdGhhLkFsYXJtRXZlbnRUeXBlLkFsYXJtRXZlbnRUeXBlUgR0eXBlEkkKCGNhdGVnb3J5GAMgASgOMi0udm9sdGhhLkFsYXJtRXZlbnRDYXRlZ29yeS5BbGFybUV2ZW50Q2F0ZWdvcnlSCGNhdGVnb3J5Ej0KBXN0YXRlGAQgASgOMicudm9sdGhhLkFsYXJtRXZlbnRTdGF0ZS5BbGFybUV2ZW50U3RhdGVSBXN0YXRlEkkKCHNldmVyaXR5GAUgASgOMi0udm9sdGhhLkFsYXJtRXZlbnRTZXZlcml0eS5BbGFybUV2ZW50U2V2ZXJpdHlSCHNldmVyaXR5EhsKCXJhaXNlZF90cxgGIAEoAlIIcmFpc2VkVHMSHwoLcmVwb3J0ZWRfdHMYByABKAJSCnJlcG9ydGVkVHMSHQoKY2hhbmdlZF90cxgIIAEoAlIJY2hhbmdlZFRzEh8KC3Jlc291cmNlX2lkGAkgASgJUgpyZXNv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bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgCBcKCAoBCBIDIgA7CgsKBAjnBwASAyIAOwoMCgUI5wcAAhIDIgcXCg0KBgjnBwACABIDIgcXCg4KBwjnBwACAAESAyIHFwoMCgUI5wcABxIDIho6CggKAQgSAyMAPgoLCgQI5wcBEgMjAD4KDAoFCOcHAQISAyMHEQoNCgYI5wcBAgASAyMHEQoOCgcI5wcBAgABEgMjBxEKDAoFCOcHAQcSAyMUPQoICgEIEgMkACwKCwoECOcHAhIDJAAsCgwKBQjnBwICEgMkBxMKDQoGCOcHAgIAEgMkBxMKDgoHCOcHAgIAARIDJAcTCgwKBQjnBwIHEgMkFisKCAoBCBIDJQArCgsKBAjnBwMSAyUAKwoMCgUI5wcDAhIDJQcbCg0KBgjnBwMCABIDJQcbCg4KBwjnBwMCAAESAyUHGwoMCgUI5wcDBxIDJR4qCggKAQgSAyYAIgoLCgQI5wcEEgMmACIKDAoFCOcHBAISAyYHGgoNCgYI5wcEAgASAyYHGgoOCgcI5wcEAgABEgMmBxoKDAoFCOcHBAMSAyYdIQoICgEIEgMnACEKCwoECOcHBRIDJwAhCgwKBQjnBwUCEgMnBxgKDQoGCOcHBQIAEgMnBxgKDgoHCOcHBQIAARIDJwcYCgwKBQjnBwUHEgMnGyAKCAoBCBIDKAAfCgsKBAjnBwYSAygAHwoMCgUI5wcGAhIDKAcXCg0KBgjnBwYCABIDKAcXCg4KBwjnBwYCAAESAygHFwoMCgUI5wcGAxIDKBoeCvsCCgIEABIDMwAQGu8CIEEgZ2VuZXJpYyBlbXB0eSBtZXNzYWdlIHRoYXQgeW91IGNhbiByZS11c2UgdG8gYXZvaWQgZGVmaW5pbmcgZHVwbGljYXRlZAogZW1wdHkgbWVzc2FnZXMgaW4geW91ciBBUElzLiBBIHR5cGljYWwgZXhhbXBsZSBpcyB0byB1c2UgaXQgYXMgdGhlIHJlcXVlc3QKIG9yIHRoZSByZXNwb25zZSB0eXBlIG9mIGFuIEFQSSBtZXRob2QuIEZvciBpbnN0YW5jZToKCiAgICAgc2VydmljZSBGb28gewogICAgICAgcnBjIEJhcihnb29nbGUucHJvdG9idWYuRW1wdHkpIHJldHVybnMgKGdvb2dsZS5wcm90b2J1Zi5FbXB0eSk7CiAgICAgfQoKIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIGZvciBgRW1wdHlgIGlzIGVtcHR5IEpTT04gb2JqZWN0IGB7fWAuCgoKCgMEAAESAzMIDWIGcHJvdG8zCqMLChp2b2x0aGFfcHJvdG9zL2hlYWx0aC5wcm90bxIGdm9sdGhhGhxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvGhtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8aGHZvbHRoYV9wcm90b3MvbWV0YS5wcm90byKEAQoMSGVhbHRoU3RhdHVzEj0KBXN0YXRlGAEgASgOMiAudm9sdGhhLkhlYWx0aFN0YXR1cy5IZWFsdGhTdGF0ZUIF6PbNHQFSBXN0YXRlIjUKC0hlYWx0aFN0YXRlEgsKB0hFQUxUSFkQABIOCgpPVkVSTE9BREVEEAESCQoFRFlJTkcQAjJhCg1IZWFsdGhTZXJ2aWNlElAKD0dldEhlYWx0aFN0YXR1cxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoULnZvbHRoYS5IZWFsdGhTdGF0dXMiD4LT5JMCCRIHL2hlYWx0aEItWitnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvZ28vdm9sdGhhSoYICgYSBAAAIgEKCAoBDBIDAAASCggKAQgSAwIAQgoLCgQI5wcAEgMCAEIKDAoFCOcHAAISAwIHEQoNCgYI5wcAAgASAwIHEQoOCgcI5wcAAgABEgMCBxEKDAoFCOcHAAcSAwIUQQoICgECEgMECA4KCQoCAwASAwYHJQoJCgIDARIDBwckCgkKAgMCEgMIByEKNwoCBAASBAsAFgEaKyBFbmNvZGUgaGVhbHRoIHN0YXR1cyBvZiBhIFZvbHRoYSBpbnN0YW5jZQoKCgoDBAABEgMLCBQKHQoEBAAEABIEDgQSBRoPIEhlYWx0aCBzdGF0ZXMKCgwKBQQABAABEgMOCRQKKAoGBAAEAAIAEgMPCBQiGSBUaGUgaW5zdGFuY2UgaXMgaGVhbHRoeQoKDgoHBAAEAAIAARIDDwgPCg4KBwQABAACAAISAw8SEwpACgYEAAQAAgESAxAIFyIxIFRoZSBpbnN0YW5jZSBpcyBvdmVybG9hZGVkLCBkZWNyZWFzZSBxdWVyeSByYXRlCgoOCgcEAAQAAgEBEgMQCBIKDgoHBAAEAAIBAhIDEBUWCkcKBgQABAACAhIDEQgSIjggVGhlIGluc3RhbmNlIGlzIGluIGEgY3JpdGljYWwgY29uZGl0aW9uLCBkbyBub3QgdXNlIGl0CgoOCgcEAAQAAgIBEgMRCA0KDgoHBAAEAAICAhIDERARCj4KBAQAAgASAxUEMRoxIEN1cnJlbnQgc3RhdGUgb2YgaGVhbHRoIG9mIHRoaXMgVm9sdGhhIGluc3RhbmNlCgoNCgUEAAIABBIEFQQSBQoMCgUEAAIABhIDFQQPCgwKBQQAAgABEgMVEBUKDAoFBAACAAMSAxUYGQoMCgUEAAIACBIDFRowCg8KCAQAAgAI5wcAEgMVGy8KEAoJBAACAAjnBwACEgMVGyMKEQoKBAACAAjnBwACABIDFRsjChIKCwQAAgAI5wcAAgABEgMVHCIKEAoJBAACAAjnBwADEgMVJi8KJQoCBgASBBkAIgEaGSBIZWFsdGggcmVsYXRlZCBzZXJ2aWNlcwoKCgoDBgABEgMZCBUKQQoEBgACABIEHAQgBRozIFJldHVybiBjdXJyZW50IGhlYWx0aCBzdGF0dXMgb2YgYSBWb2x0aGEgaW5zdGFuY2UKCgwKBQYAAgABEgMcCBcKDAoFBgACAAISAxwYLQoMCgUGAAIAAxIDHDhECg0KBQYAAgAEEgQdCB8KChAKCAYAAgAE5wcAEgQdCB8KChAKCQYAAgAE5wcAAhIDHQ8gChEKCgYAAgAE5wcAAgASAx0PIAoSCgsGAAIABOcHAAIAARIDHRAfChEKCQYAAgAE5wcACBIEHSMfCWIGcHJvdG8zCokZCiN2b2x0aGFfcHJvdG9zL2lldGZfaW50ZXJmYWNlcy5wcm90bxIPaWV0Zl9pbnRlcmZhY2VzIk8KCkludGVyZmFjZXMSQQoOYWxsX2ludGVyZmFjZXMYASADKAsyGi5pZXRmX2ludGVyZmFjZXMuSW50ZXJmYWNlUg1hbGxJbnRlcmZhY2VzIp0CCglJbnRlcmZhY2USEgoEbmFtZRgBIAEoCVIEbmFtZRIgCgtkZXNjcmlwdGlvbhgCIAEoCVILZGVzY3JpcHRpb24SEgoEdHlwZRgDIAEoCVIEdHlwZRIYCgdlbmFibGVkGAQgASgIUgdlbmFibGVkEmsKGGxpbmtfdXBfZG93bl90cmFwX2VuYWJsZRgFIAEoDjIzLmlldGZfaW50ZXJmYWNlcy5JbnRlcmZhY2UuTGlua1VwRG93blRyYXBFbmFibGVUeXBlUhRsaW5rVXBEb3duVHJhcEVuYWJsZSI/ChhMaW5rVXBEb3duVHJhcEVuYWJsZVR5cGUSEQoNVFJBUF9ESVNBQkxFRBAAEhAKDFRSQVBfRU5BQkxFRBABIlcKD0ludGVyZmFjZXNTdGF0ZRJECg1hbGxfaW50ZXJmYWNzGAEgAygLMh8uaWV0Zl9pbnRlcmZhY2VzLkludGVyZmFjZVN0YXRlUgxhbGxJbnRlcmZhY3Mi1gQKDkludGVyZmFjZVN0YXRlEhIKBG5hbWUYASABKAlSBG5hbWUSEgoEdHlwZRgCIAEoCVIEdHlwZRJSCgxhZG1pbl9zdGF0dXMYAyABKA4yLy5pZXRmX2ludGVyZmFjZXMuSW50ZXJmYWNlU3RhdGUuQWRtaW5TdGF0dXNUeXBlUgthZG1pblN0YXR1cxJP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b3J0SWQSDgoCaWQYASABKAlSAmlkEhcKB3BvcnRfaWQYAiABKAlSBnBvcnRJZCLyAQoLTG9naWNhbFBvcnQSDgoCaWQYASABKAlSAmlkEjAKCG9mcF9wb3J0GAIgASgLMhUub3BlbmZsb3dfMTMub2ZwX3BvcnRSB29mcFBvcnQSGwoJZGV2aWNlX2lkGAMgASgJUghkZXZpY2VJZBIkCg5kZXZpY2VfcG9ydF9ubxgEIAEoDVIMZGV2aWNlUG9ydE5vEhsKCXJvb3RfcG9ydBgFIAEoCFIIcm9vdFBvcnQSQQoOb2ZwX3BvcnRfc3RhdHMYBiABKAsyGy5vcGVuZmxvd18xMy5vZnBfcG9ydF9zdGF0c1IMb2ZwUG9ydFN0YXRzIjkKDExvZ2ljYWxQb3J0cxIpCgVpdGVtcxgBIAMoCzITLnZvbHRoYS5Mb2dpY2FsUG9ydFIFaXRlbXMihwMKDUxvZ2ljYWxEZXZpY2USDgoCaWQYASABKAlSAmlkEh8KC2RhdGFwYXRoX2lkGAIgASgEUgpkYXRhcGF0aElkEikKBGRlc2MYAyABKAsyFS5vcGVuZmxvd18xMy5vZnBfZGVzY1IEZGVzYxJJCg9zd2l0Y2hfZmVhdHVyZXMYBCABKAsyIC5vcGVuZmxvd18xMy5vZnBfc3dpdGNoX2ZlYXR1cmVzUg5zd2l0Y2hGZWF0dXJlcxIkCg5yb290X2RldmljZV9pZBgFIAEoCVIMcm9vdERldmljZUlkEjUKBXBvcnRzGIABIAMoCzITLnZvbHRoYS5Mb2dpY2FsUG9ydEIJ4vbNHQQKAmlkUgVwb3J0cxIwCgVmbG93cxiBASABKAsyEi5vcGVuZmxvd18xMy5GbG93c0IF4vbNHQBSBWZsb3dzEkAKC2Zsb3dfZ3JvdXBzGIIBIAEoCzIXLm9wZW5mbG93XzEzLkZsb3dHcm91cHNCBeL2zR0AUgpmbG93R3JvdXBzIj0KDkxvZ2ljYWxEZXZpY2VzEisKBWl0ZW1zGAEgAygLMhUudm9sdGhhLkxvZ2ljYWxEZXZpY2VSBWl0ZW1zQi1aK2dpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy9nby92b2x0aGFKrREKBhIEAAA9AQoICgEMEgMAABIKCAoBCBIDAgBCCgsKBAjnBwASAwIAQgoM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dG9fdG9waWMYBCABKAlSB3RvVG9waWMSGwoJa2V5X3RvcGljGAUgASgJUghrZXlUb3BpYxIcCgl0aW1lc3RhbXAYBiABKANSCXRpbWVzdGFtcCJICghBcmd1bWVudBIQCgNrZXkYASABKAlSA2tleRIqCgV2YWx1ZRgCIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSBXZhbHVlImkKFUludGVyQ29udGFpbmVyTWVzc2FnZRImCgZoZWFkZXIYASABKAsyDi52b2x0aGEuSGVhZGVyUgZoZWFkZXISKAoEYm9keRgCIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSBGJvZHkipgEKGUludGVyQ29udGFpbmVyUmVxdWVzdEJvZHkSEAoDcnBjGAIgASgJUgNycGMSJAoEYXJncxgDIAMoCzIQLnZvbHRoYS5Bcmd1bWVudFIEYXJncxIrChFyZXNwb25zZV9yZXF1aXJlZBgEIAEoCFIQcmVzcG9uc2VSZXF1aXJlZBIkCg5yZXBseV90b190b3BpYxgFIAEoCVIMcmVwbHlUb1RvcGljImQKGkludGVyQ29udGFpbmVyUmVzcG9uc2VCb2R5EhgKB3N1Y2Nlc3MYASABKAhSB3N1Y2Nlc3MSLAoGcmVzdWx0GAMgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIGcmVzdWx0IogBChBTd2l0Y2hDYXBhYmlsaXR5EikKBGRlc2MYASABKAsyFS5vcGVuZmxvd18xMy5vZnBfZGVzY1IEZGVzYxJJCg9zd2l0Y2hfZmVhdHVyZXMYAiABKAsyIC5vcGVuZmxvd18xMy5vZnBfc3dpdGNoX2ZlYXR1cmVzUg5zd2l0Y2hGZWF0dXJlcyI5Cg5Qb3J0Q2FwYWJpbGl0eRInCgRwb3J0GAEgASgLMhMudm9sdGhhLkxvZ2ljYWxQb3J0UgRwb3J0In4KEERldmljZURpc2NvdmVyZWQSDgoCaWQYASABKAlSAmlkEhsKCXBhcmVudF9pZBgCIAEoCVIIcGFyZW50SWQSHwoLZGV2aWNlX3R5cGUYAyABKAlSCmRldmljZVR5cGUSHAoJcHVibGlzaGVyGAQgASgJUglwdWJsaXNoZXIiwwEKF0ludGVyQWRhcHRlck1lc3NhZ2VUeXBlIqcBCgVUeXBlcxIQCgxGTE9XX1JFUVVFU1QQABIRCg1GTE9XX1JFU1BPTlNFEAESEAoMT01DSV9SRVFVRVNUEAISEQoNT01DSV9SRVNQT05TRRADEhMKD01FVFJJQ1NfUkVRVUVTVBAEEhQKEE1FVFJJQ1NfUkVTUE9OU0UQBRITCg9PTlVfSU5EX1JFUVVFU1QQBhIUChBPTlVfSU5EX1JFU1BPTlNFEAcigQIKEkludGVyQWRhcHRlckhlYWRlchIOCgJpZBgBIAEoCVICaWQSOQoEdHlwZRgCIAEoDjIlLnZvbHRoYS5JbnRlckFkYXB0ZXJNZXNzYWdlVHlwZS5UeXBlc1IEdHlwZRIdCgpmcm9tX3RvcGljGAMgASgJUglmcm9tVG9waWMSGQoIdG9fdG9waWMYBCABKAlSB3RvVG9waWMSIAoMdG9fZGV2aWNlX2lkGAUgASgJUgp0b0RldmljZUlkEiYKD3Byb3h5X2RldmljZV9pZBgGIAEoCVINcHJveHlEZXZpY2VJZBIcCgl0aW1lc3RhbXAYByABKANSCXRpbWVzdGFtcCIzChdJbnRlckFkYXB0ZXJPbWNpTWVzc2FnZRIYCgdtZXNzYWdlGAEgASgMUgdtZXNzYWdlIqABChhJbnRlckFkYXB0ZXJSZXNwb25zZUJvZHkSFgoGc3RhdHVzGAEgASgIUgZzdGF0dXMSKgoEYm9keRgCIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlIAFIEYm9keRI1CgRvbWNpGAMgASgLMh8udm9sdGhhLkludGVyQWRhcHRlck9tY2lNZXNzYWdlSABSBG9tY2lCCQoHcGF5bG9hZCJzChNJbnRlckFkYXB0ZXJNZXNzYWdlEjIKBmhlYWRlchgBIAEoCzIaLnZvbHRoYS5JbnRlckFkYXB0ZXJIZWFkZXJSBmhlYWRlchIoCgRib2R5GAIgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIEYm9keSo/CgtNZXNzYWdlVHlwZRILCgdSRVFVRVNUEAASDAoIUkVTUE9OU0UQARIVChFERVZJQ0VfRElTQ09WRVJFRBACQjZaNGdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy9nby9pbnRlcl9jb250YWluZXJKyyEKBxIFAACCAQEKCAoBDBIDAAASCgkKAgMA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AiABKAlSB2NyZWF0ZWQSGgoIbW9kaWZpZWQYAyABKAlSCG1vZGlmaWVkEkYKCmF0dHJpYnV0ZXMYBCADKAsyGS5hbGFybS5BbGFybUF0dHJpYnV0ZURhdGFCC+L2zR0GCgRuYW1lUgphdHRyaWJ1dGVzIn4KDkFsYXJtQ2xhc3NEYXRhEiAKCGNsYXNzX2lkGAEgASgNQgXo9s0dAVIHY2xhc3NJZBJKCglpbnN0YW5jZXMYAiADKAsyGC5hbGFybS5BbGFybUluc3RhbmNlRGF0YUIS4vbNHQ0KC2luc3RhbmNlX2lkUglpbnN0YW5jZXMiUQoSQWxhcm1NYW5hZ2VkRW50aXR5EiAKCGNsYXNzX2lkGAEgASgNQgXo9s0dAVIHY2xhc3NJZBIZCgRuYW1lGAIgASgJQgXo9s0dAVIEbmFtZSI8ChBBbGFybU1lc3NhZ2VUeXBlEigKDG1lc3NhZ2VfdHlwZRgBIAEoDUIF6PbNHQFSC21lc3NhZ2VUeXBlIoUDCg9BbGFybURldmljZURhdGESIgoJZGV2aWNlX2lkGAEgASgJQgXo9s0dAVIIZGV2aWNlSWQSGAoHY3JlYXRlZBgCIAEoCVIHY3JlYXRlZBIuChNsYXN0X2FsYXJtX3NlcXVlbmNlGAMgASgNUhFsYXN0QWxhcm1TZXF1ZW5jZRIkCg5sYXN0X3N5bmNfdGltZRgEIAEoCVIMbGFzdFN5bmNUaW1lEhgKB3ZlcnNpb24YBSABKA1SB3ZlcnNpb24SQAoHY2xhc3NlcxgGIAMoCzIVLmFsYXJtLkFsYXJtQ2xhc3NEYXRhQg/i9s0dCgoIY2xhc3NfaWRSB2NsYXNzZXMSRAoQbWFuYWdlZF9lbnRpdGllcxgHIAMoCzIZLmFsYXJtLkFsYXJtTWFuYWdlZEVudGl0eVIPbWFuYWdlZEVudGl0aWVzEjwKDW1lc3NhZ2VfdHlwZXMYCCADKAsyFy5hbGFybS5BbGFybU1lc3NhZ2VUeXBlUgxtZXNzYWdlVHlwZXMiPwoWQWxhcm1PcGVuT21jaUV2ZW50VHlwZSIlChFPcGVuT21jaUV2ZW50VHlwZRIQCgxzdGF0ZV9jaGFuZ2UQACJtChJBbGFybU9wZW5PbWNpRXZlbnQSQwoEdHlwZRgBIAEoDjIvLmFsYXJtLkFsYXJtT3Blbk9tY2lFdmVudFR5cGUuT3Blbk9tY2lFdmVudFR5cGVSBHR5cGUSEgoEZGF0YRgCIAEoCVIEZGF0YUIrWilnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvZ28vb21jaUqRHAoGEgQPAE8BCt4ECgEMEgMPABIa0wQKIENvcHlyaWdodCAyMDE4IC0gcHJlc2VudCB0aGUgb3JpZ2luYWwgYXV0aG9yIG9yIGF1dGhvcnMuCgogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKCiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKCggKAQgSAxEAQAoLCgQI5wcAEgMRAEAKDAoFCOcHAAISAxEHEQoNCgYI5wcAAgASAxEHEQoOCgcI5wcAAgABEgMRBxEKDAoFCOcHAAcSAxEUPwoICgECEgMTCA0KCQoCAwASAxUHIQoKCgIEABIEGAAbAQoKCgMEAAESAxgIGgoLCgQEAAIAEgMZBDkKDQoFBAACAAQSBBkEGBwKDAoFBAACAAUSAxkECgoMCgUEAAIAARID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LgoEBAcCARIDTgQUIiEgYXNzb2NpYXRlZCBkYXRhLCBpbiBqc29uIGZvcm1hdAoKDQoFBAcCAQQSBE4ETDYKDAoFBAcCAQUSA04ECgoMCgUEBwIBARIDTgsPCgwKBQQHAgEDEgNOEhNiBnByb3RvMwqTJQofdm9sdGhhX3Byb3Rvcy9vbWNpX21pYl9kYi5wcm90bxIEb21jaRoYdm9sdGhhX3Byb3Rvcy9tZXRhLnByb3RvIkMKEE1pYkF0dHJpYnV0ZURhdGESGQoEbmFtZRgBIAEoCUIF6PbNHQFSBG5hbWUSFAoFdmFsdWUYAiABKAlSBXZhbHVlIrQBCg9NaWJJbnN0YW5jZURhdGESJgoLaW5zdGFuY2VfaWQYASABKA1CBej2zR0BUgppbnN0YW5jZUlkEhgKB2NyZWF0ZWQYAiABKAlSB2NyZWF0ZWQSGgoIbW9kaWZpZWQYAyABKAlSCG1vZGlmaWVkEkMKCmF0dHJpYnV0ZXMYBCADKAsyFi5vbWNpLk1pYkF0dHJpYnV0ZURhdGFCC+L2zR0GCgRuYW1lUgphdHRyaWJ1dGVzInkKDE1pYkNsYXNzRGF0YRIgCghjbGFzc19pZBgBIAEoDUIF6PbNHQFSB2NsYXNzSWQSRwoJaW5zdGFuY2VzGAIgAygLMhUub21jaS5NaWJJbnN0YW5jZURhdGFCEuL2zR0NCgtpbnN0YW5jZV9pZFIJaW5zdGFuY2VzIkwKDU1hbmFnZWRFbnRpdHkSIAoIY2xhc3NfaWQYASABKA1CBej2zR0BUgdjbGFzc0lkEhkKBG5hbWUYAiABKAlCBej2zR0BUgRuYW1lIjcKC01lc3NhZ2VUeXBlEigKDG1lc3NhZ2VfdHlwZRgBIAEoDUIF6PbNHQFSC21lc3NhZ2VUeXBlIugCCg1NaWJEZXZpY2VEYXRhEiIKCWRldmljZV9pZBgBIAEoCUIF6PbNHQFSCGRldmljZUlkEhgKB2NyZWF0ZWQYAiABKAlSB2NyZWF0ZWQSJAoObGFzdF9zeW5jX3RpbWUYAyABKAlSDGxhc3RTeW5jVGltZRIiCg1taWJfZGF0YV9zeW5jGAQgASgNUgttaWJEYXRhU3luYxIYCgd2ZXJzaW9uGAUgASgNUgd2ZXJzaW9uEj0KB2NsYXNzZXMYBiADKAsyEi5vbWNpLk1pYkNsYXNzRGF0YUIP4vbNHQoKCGNsYXNzX2lkUgdjbGFzc2VzEj4KEG1hbmFnZWRfZW50aXRpZXMYByADKAsyEy5vbWNpLk1hbmFnZWRFbnRpdHlSD21hbmFnZWRFbnRpdGllcxI2Cg1tZXNzYWdlX3R5cGVzGAggAygLMhEub21jaS5NZXNzYWdlVHlwZVIMbWVzc2FnZVR5cGVzIjoKEU9wZW5PbWNpRXZlbnRUeXBlIiUKEU9wZW5PbWNpRXZlbnRUeXBlEhAKDHN0YXRlX2NoYW5nZRAAImIKDU9wZW5PbWNpRXZlbnQSPQoEdHlwZRgBIAEoDjIpLm9tY2kuT3Blbk9tY2lFdmVudFR5cGUuT3Blbk9tY2lFdmVudFR5cGVSBHR5cGUSEgoEZGF0YRgCIAEoCVIEZGF0YUIrWilnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvZ28vb21jaUqRHAoGEgQPAE4BCt4ECgEMEgMPABIa0wQKIENvcHlyaWdodCAyMDE4IC0gcHJlc2VudCB0aGUgb3JpZ2luYWwgYXV0aG9yIG9yIGF1dGhvcnMuCgogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKCiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKCggKAQgSAxEAQAoLCgQI5wcAEgMRAEAKDAoFCOcHAAISAxEHEQoNCgYI5wcAAgASAxEHEQoOCgcI5wcAAgABEgMRBxEKDAoFCOcHAAcSAxEUPwoICgECEgMTCAwKCQoCAwASAxUHIQoKCgIEABIEGAAbAQoKCgMEAAESAxgIGAoLCgQEAAIAEgMZBDkKDQoFBAACAAQSBBkEGBoKDAoFBAACAAUSAxkECgoMCgUEAAIAARIDGQsPCgwKBQQAAgADEgMZGRoKDAoFBAACAAgSAxkbOAoPCggEAAIACOcHABIDGRw3ChAKCQQAAgAI5wcAAhIDGRwrChEKCgQAAgAI5wcAAgASAxkcKwoSCgsEAAIACOcHAAIAARIDGR0qChAKCQQAAgAI5wcAAxIDGS43CgsKBAQAAgESAxoEGwoNCgUEAAIBBBIEGgQZOQoMCgUEAAIBBRIDGgQKCgwKBQQAAgEBEgMaCxAKDAoFBAACAQMSAxoZGgoKCgIEARIEHQAkAQoKCgMEAQESAx0IFwoLCgQEAQIAEgMeBD4KDQoFBAECAAQSBB4EHRkKDAoFBAECAAUSAx4ECgoMCgUEAQIAARIDHgsWCgwKBQQBAgADEgMeHh8KDAoFBAECAAgSAx4gPQoPCggEAQIACOcHABIDHiE8ChAKCQQBAgAI5wcAAhIDHiEwChEKCgQBAgAI5wcAAgASAx4hMAoSCgsEAQIACOcHAAIAARIDHiIvChAKCQQBAgAI5wcAAxIDHjM8CgsKBAQBAgESAx8EIAoNCgUEAQIBBBIEHwQePgoMCgUEAQIBBRIDHwQKCgwKBQQBAgEBEgMfCxIKDAoFBAECAQMSAx8eHwoLCgQEAQICEgMgBCAKDQoFBAECAgQSBCAEHyAKDAoFBAECAgUSAyAECgoMCgUEAQICARIDIAsTCgwKBQQBAgIDEgMgHh8KDAoEBAECAxIEIgQjKgoMCgUEAQIDBBIDIgQMCgwKBQQBAgMGEgMiDR0KDAoFBAECAwESAyIeKAoMCgUEAQIDAxIDIissCgwKBQQBAgMIEgMjBCkKDwoIBAECAwjnBwASAyMFKAoQCgkEAQIDCOcHAAISAyMFGAoRCgoEAQIDCOcHAAIAEgMjBRgKEgoLBAECAwjnBwACAAESAyMGFwoQCgkEAQIDCOcHAAgSAyMbKAoKCgIEAhIEJgArAQoKCgMEAgESAyYIFAoLCgQEAgIAEgMnBD4KDQoFBAICAAQSBCcEJhYKDAoFBAICAAUSAycECgoMCgUEAgIAARIDJwsTCgwKBQQCAgADEgMnHh8KDAoFBAICAAgSAycgPQoPCggEAgIACOcHABIDJyE8ChAKCQQCAgAI5wcAAhIDJyEwChEKCgQCAgAI5wcAAgASAychMAoSCgsEAgIACOcHAAIAARIDJyIvChAKCQQCAgAI5wcAAxIDJzM8CgwKBAQCAgESBCkEKjEKDAoFBAICAQQSAykEDAoMCgUEAgIBBhIDKQ0cCgwKBQQCAgEBEgMpHSYKDAoFBAICAQMSAykoKQoMCgUEAgIBCBIDKgQwCg8KCAQCAgEI5wcAEgMqBS8KEAoJBAICAQjnBwACEgMqBRgKEQoKBAICAQjnBwACABIDKgUYChIKCwQCAgEI5wcAAgABEgMqBhcKEAoJBAICAQjnBwAIEgMqGy8KCgoCBAMSBC0AMAEKCgoDBAMBEgMtCBUKCwoEBAMCABIDLgQ3Cg0KBQQDAgAEEgQuBC0XCgwKBQQDAgAFEgMuBAoKDAoFBAMCAAESAy4LEwoMCgUEAwIAAxIDLhcYCgwKBQQDAgAIEgMuGTYKDwoIBAMCAAjnBwASAy4aNQoQCgkEAwIACOcHAAISAy4aKQoRCgoEAwIACOcHAAIAEgMuGikKEgoLBAMCAAjnBwACAAESAy4bKAoQCgkEAwIACOcHAAMSAy4sNQoLCgQEAwIBEgMvBDcKDQoFBAMCAQQSBC8ELjcKDAoFBAMCAQUSAy8ECgoMCgUEAwIBARIDLwsPCgwKBQQDAgEDEgMvFxgKDAoFBAMCAQgSAy8ZNgoPCggEAwIBCOcHABIDLxo1ChAKCQQDAgEI5wcAAhIDLxopChEKCgQDAgEI5wcAAgASAy8aKQoSCgsEAwIBCOcHAAIAARIDLxsoChAKCQQDAgEI5wcAAxIDLyw1CgoKAgQEEgQyADQBCgoKAwQEARIDMggTCgsKBAQEAgASAzMEOgoNCgUEBAIABBIEMwQyFQoMCgUEBAIABRIDMwQKCgwKBQQEAgABEgMzCxcKDAoFBAQCAAMSAzMaGwoMCgUEBAIACBIDMxw5Cg8KCAQEAgAI5wcAEgMzHTgKEAoJBAQCAAjnBwACEgMzHSwKEQoKBAQCAAjnBwACABIDMx0sChIKCwQEAgAI5wcAAgABEgMzHisKEAoJBAQCAAjnBwADEgMzLzgKCgoCBAUSBDYAQgEKCgoDBAUBEgM2CBUKCwoEBAUCABIDNwQ+Cg0KBQQFAgAEEgQ3BDYXCgwKBQQFAgAFEgM3BAoKDAoFBAUCAAESAzcLFAoMCgUEBQIAAxIDNx4fCgwKBQQFAgAIEgM3ID0KDwoIBAUCAAjnBwASAzchPAoQCgkEBQIACOcHAAISAzchMAoRCgoEBQIACOcHAAIAEgM3ITAKEgoLBAUCAAjnBwACAAESAzciLwoQCgkEBQIACOcHAAMSAzczPAoLCgQEBQIBEgM4BCAKDQoFBAUCAQQSBDgENz4KDAoFBAUCAQUSAzgECgoMCgUEBQIBARIDOAsSCgwKBQQFAgEDEgM4Hh8KCwoEBAUCAhIDOQQgCg0KBQQFAgIEEgQ5BDggCgwKBQQFAgIFEgM5BAoKDAoFBAUCAgESAzkLGQoMCgUEBQICAxIDOR4fCgsKBAQFAgMSAzoEIAoNCgUEBQIDBBIEOgQ5IAoMCgUEBQIDBRIDOgQKCgwKBQQFAgMBEgM6CxgKDAoFBAUCAwMSAzoeHwoLCgQEBQIEEgM7BCAKDQoFBAUCBAQSBDsEOiAKDAoFBAUCBAUSAzsECgoMCgUEBQIEARIDOwsSCgwKBQQFAgQDEgM7Hh8KDAoEBAUCBRIEPQQ+LgoMCgUEBQIFBBIDPQQMCgwKBQQFAgUGEgM9DRkKDAoFBAUCBQESAz0aIQoMCgUEBQIFAxIDPSQlCgwKBQQFAgUIEgM+BC0KDwoIBAUCBQjnBwASAz4FLAoQCgkEBQIFCOcHAAISAz4FGAoRCgoEBQIFCOcHAAIAEgM+BRgKEgoLBAUCBQjnBwACAAESAz4GFwoQCgkEBQIFCOcHAAgSAz4bLAoLCgQEBQIGEgNABDAKDAoFBAUCBgQSA0AEDAoMCgUEBQIGBhIDQA0aCgwKBQQFAgYBEgNAGysKDAoFBAUCBgMSA0AuLwoLCgQEBQIHEgNBBCsKDAoFBAUCBwQSA0EEDAoMCgUEBQIHBhIDQQ0YCgwKBQQFAgcBEgNBGSYKDAoFBAUCBwMSA0EpKgoKCgIEBhIERABIAQoKCgMEBgESA0QIGQoMCgQEBgQAEgRFBEcFCgwKBQQGBAABEgNFCRoKQAoGBAYEAAIAEgNGCBkiMSBBIHN0YXRlIG1hY2hpbmUgaGFzIHRyYW5zaXRpb25lZCB0byBhIG5ldyBzdGF0ZQoKDgoHBAYEAAIAARIDRggUCg4KBwQGBAACAAISA0YXGAoKCgIEBxIESgBOAQoKCgMEBwESA0oIFQoLCgQEBwIAEgNLBDEKDQoFBAcCAAQSBEsEShcKDAoFBAcCAAYSA0sEJwoMCgUEBwIAARIDSygsCgwKBQQHAgADEgNLLzAKLgoEBAcCARIDTQQUIiEgYXNzb2NpYXRlZCBkYXRhLCBpbiBqc29uIGZvcm1hdAoKDQoFBAcCAQQSBE0ESzEKDAoFBAcCAQUSA00ECgoMCgUEBwIBARIDTQsPCgwKBQQHAgEDEgNNEhNiBnByb3RvMwreiwIKG3ZvbHRoYV9wcm90b3Mvb3Blbm9sdC5wcm90bxIHb3Blbm9sdBocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90byLMBAoKSW5kaWNhdGlvbhIxCgdvbHRfaW5kGAEgASgLMhYub3Blbm9sdC5PbHRJbmRpY2F0aW9uSABSBm9sdEluZBI0CghpbnRmX2luZBgCIAEoCzIXLm9wZW5vbHQuSW50ZkluZGljYXRpb25IAFIHaW50ZkluZBJBCg1pbnRmX29wZXJfaW5kGAMgASgLMhsub3Blbm9sdC5JbnRmT3BlckluZGljYXRpb25IAFILaW50Zk9wZXJJbmQSPgoMb251X2Rpc2NfaW5kGAQgASgLMhoub3Blbm9sdC5PbnVEaXNjSW5kaWNhdGlvbkgAUgpvbnVEaXNjSW5kEjEKB29udV9pbmQYBSABKAsyFi5vcGVub2x0Lk9udUluZGljYXRpb25IAFIGb251SW5kEjQKCG9tY2lfaW5kGAYgASgLMhcub3Blbm9sdC5PbWNpSW5kaWNhdGlvbkgAUgdvbWNpSW5kEjQKB3BrdF9pbmQYByABKAsyGS5vcGVub2x0LlBhY2tldEluZGljYXRpb25IAFIGcGt0SW5kEjgKCnBvcnRfc3RhdHMYCCABKAsyFy5vcGVub2x0LlBvcnRTdGF0aXN0aWNzSABSCXBvcnRTdGF0cxI4CgpmbG93X3N0YXRzGAkgASgLMhcub3Blbm9sdC5GbG93U3RhdGlzdGljc0gAUglmbG93U3RhdHMSNwoJYWxhcm1faW5kGAogASgLMhgub3Blbm9sdC5BbGFybUluZGljYXRpb25IAFIIYWxhcm1JbmRCBgoEZGF0YSKrBwoPQWxhcm1JbmRpY2F0aW9uEjEKB2xvc19pbmQYASABKAsyFi5vcGVub2x0Lkxvc0luZGljYXRpb25IAFIGbG9zSW5kEkQKDmR5aW5nX2dhc3BfaW5kGAIgASgLMhwub3Blbm9sdC5EeWluZ0dhc3BJbmRpY2F0aW9uSABSDGR5aW5nR2FzcEluZBJBCg1vbnVfYWxhcm1faW5kGAMgASgLMhsub3Blbm9sdC5PbnVBbGFybUluZGljYXRpb25IAFILb251QWxhcm1JbmQSVwoUb251X3N0YXJ0dXBfZmFpbF9pbmQYBCABKAsyJC5vcGVub2x0Lk9udVN0YXJ0dXBGYWlsdXJlSW5kaWNhdGlvbkgAUhFvbnVTdGFydHVwRmFpbEluZBJaChZvbnVfc2lnbmFsX2RlZ3JhZGVfaW5kGAUgASgLMiMub3Blbm9sdC5PbnVTaWduYWxEZWdyYWRlSW5kaWNhdGlvbkgAUhNvbnVTaWduYWxEZWdyYWRlSW5kElsKF29udV9kcmlmdF9vZl93aW5kb3dfaW5kGAYgASgLMiMub3Blbm9sdC5PbnVEcmlmdE9mV2luZG93SW5kaWNhdGlvbkgAUhNvbnVEcmlmdE9mV2luZG93SW5kElQKEW9udV9sb3NzX29tY2lfaW5kGAcgASgLMicub3Blbm9sdC5PbnVMb3NzT2ZPbWNpQ2hhbm5lbEluZGljYXRpb25IAFIOb251TG9zc09tY2lJbmQSVwoUb251X3NpZ25hbHNfZmFpbF9pbmQYCCABKAsyJC5vcGVub2x0Lk9udVNpZ25hbHNGYWlsdXJlSW5kaWNhdGlvbkgAUhFvbnVTaWduYWxzRmFpbEluZBJPCgxvbnVfdGl3aV9pbmQYCSABKAsyKy5vcGVub2x0Lk9udVRyYW5zbWlzc2lvbkludGVyZmVyZW5jZVdhcm5pbmdIAFIKb251VGl3aUluZBJgChdvbnVfYWN0aXZhdGlvbl9mYWlsX2luZBgKIAEoCzInLm9wZW5vbHQuT251QWN0aXZhdGlvbkZhaWx1cmVJbmRpY2F0aW9uSABSFG9udUFjdGl2YXRpb25GYWlsSW5kEmAKGG9udV9wcm9jZXNzaW5nX2Vycm9yX2luZBgLIAEoCzIlLm9wZW5vbHQuT251UHJvY2Vzc2luZ0Vycm9ySW5kaWNhdGlvbkgAUhVvbnVQcm9jZXNzaW5nRXJyb3JJbmRCBgoEZGF0YSIuCg1PbHRJbmRpY2F0aW9uEh0KCm9wZXJfc3RhdGUYASABKAlSCW9wZXJTdGF0ZSJICg5JbnRmSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSHQoKb3Blcl9zdGF0ZRgCIAEoCVIJb3BlclN0YXRlImgKEU9udURpc2NJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBI6Cg1zZXJpYWxfbnVtYmVyGAIgASgLMhUub3Blbm9sdC5TZXJpYWxOdW1iZXJSDHNlcmlhbE51bWJlciK7AQoNT251SW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIdCgpvcGVyX3N0YXRlGAMgASgJUglvcGVyU3RhdGUSHwoLYWRtaW5fc3RhdGUYBSABKAlSCmFkbWluU3RhdGUSOgoNc2VyaWFsX251bWJlchgEIAEoCzIVLm9wZW5vbHQuU2VyaWFsTnVtYmVyUgxzZXJpYWxOdW1iZXIiYAoSSW50Zk9wZXJJbmRpY2F0aW9uEhIKBHR5cGUYASABKAlSBHR5cGUSFwoHaW50Zl9pZBgCIAEoB1IGaW50ZklkEh0KCm9wZXJfc3RhdGUYAyABKAlSCW9wZXJTdGF0ZSJSCg5PbWNpSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIQCgNwa3QYAyABKAxSA3BrdCLDAQoQUGFja2V0SW5kaWNhdGlvbhIbCglpbnRmX3R5cGUYBSABKAlSCGludGZUeXBlEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIdCgpnZW1wb3J0X2lkGAIgASgHUglnZW1wb3J0SWQSFwoHZmxvd19pZBgDIAEoB1IGZmxvd0lkEhcKB3BvcnRfbm8YBiABKAdSBnBvcnRObxIWCgZjb29raWUYByABKAZSBmNvb2tpZRIQCgNwa3QYBCABKAxSA3BrdCIkCglJbnRlcmZhY2USFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkIjwKCUhlYXJ0YmVhdBIvChNoZWFydGJlYXRfc2lnbmF0dXJlGAEgASgHUhJoZWFydGJlYXRTaWduYXR1cmUigwEKA09udRIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBI6Cg1zZXJpYWxfbnVtYmVyGAMgASgLMhUub3Blbm9sdC5TZXJpYWxOdW1iZXJSDHNlcmlhbE51bWJlchIQCgNwaXIYBCABKAdSA3BpciJLCgdPbWNpTXNnEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhAKA3BrdBgDIAEoDFIDcGt0ImYKCU9udVBhY2tldBIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIXCgdwb3J0X25vGAQgASgHUgZwb3J0Tm8SEAoDcGt0GAMgASgMUgNwa3QiOQoMVXBsaW5rUGFja2V0EhcKB2ludGZfaWQYASABKAdSBmludGZJZBIQCgNwa3QYAiABKAxSA3BrdCKSCQoKRGV2aWNlSW5mbxIWCgZ2ZW5kb3IYASABKAlSBnZlbmRvchIUCgVtb2RlbBgCIAEoCVIFbW9kZWwSKQoQaGFyZHdhcmVfdmVyc2lvbhgDIAEoCVIPaGFyZHdhcmVWZXJzaW9uEikKEGZpcm13YXJlX3ZlcnNpb24YBCABKAlSD2Zpcm13YXJlVmVyc2lvbhIbCglkZXZpY2VfaWQYECABKAlSCGRldmljZUlkEjAKFGRldmljZV9zZXJpYWxfbnVtYmVyGBEgASgJUhJkZXZpY2VTZXJpYWxOdW1iZXISGwoJcG9uX3BvcnRzGAwgASgHUghwb25Qb3J0cxIeCgp0ZWNobm9sb2d5GAUgASgJUgp0ZWNobm9sb2d5EiAKDG9udV9pZF9zdGFydBgGIAEoB1IKb251SWRTdGFydBIcCgpvbnVfaWRfZW5kGAcgASgHUghvbnVJZEVuZBIkCg5hbGxvY19pZF9zdGFydBgIIAEoB1IMYWxsb2NJZFN0YXJ0EiAKDGFsbG9jX2lkX2VuZBgJIAEoB1IKYWxsb2NJZEVuZBIoChBnZW1wb3J0X2lkX3N0YXJ0GAogASgHUg5nZW1wb3J0SWRTdGFydBIkCg5nZW1wb3J0X2lkX2VuZBgLIAEoB1IMZ2VtcG9ydElkRW5kEiIKDWZsb3dfaWRfc3RhcnQYDSABKAdSC2Zsb3dJZFN0YXJ0Eh4KC2Zsb3dfaWRfZW5kGA4gASgHUglmbG93SWRFbmQSQAoGcmFuZ2VzGA8gAygLMigub3Blbm9sdC5EZXZpY2VJbmZvLkRldmljZVJlc291cmNlUmFuZ2VzUgZyYW5nZXMalQQKFERldmljZVJlc291cmNlUmFuZ2VzEhkKCGludGZfaWRzGAEgAygHUgdpbnRmSWRzEh4KCnRlY2hub2xvZ3kYAiABKAlSCnRlY2hub2xvZ3kSQwoFcG9vbHMYAyADKAsyLS5vcGVub2x0LkRldmljZUluZm8uRGV2aWNlUmVzb3VyY2VSYW5nZXMuUG9vbFIFcG9vbHMa/AIKBFBvb2wSSgoEdHlwZRgBIAEoDjI2Lm9wZW5vbHQuRGV2aWNlSW5mby5EZXZpY2VSZXNvdXJjZVJhbmdlcy5Qb29sLlBvb2xUeXBlUgR0eXBlElMKB3NoYXJpbmcYAiABKA4yOS5vcGVub2x0LkRldmljZUluZm8uRGV2aWNlUmVzb3VyY2VSYW5nZXMuUG9vbC5TaGFyaW5nVHlwZVIHc2hhcmluZxIUCgVzdGFydBgDIAEoB1IFc3RhcnQSEAoDZW5kGAQgASgHUgNlbmQiQQoIUG9vbFR5cGUSCgoGT05VX0lEEAASDAoIQUxMT0NfSUQQARIOCgpHRU1QT1JUX0lEEAISCwoHRkxPV19JRBADImgKC1NoYXJpbmdUeXBlEhYKEkRFRElDQVRFRF9QRVJfSU5URhAAEh8KG1NIQVJFRF9CWV9BTExfSU5URl9BTExfVEVDSBABEiAKHFNIQVJFRF9CWV9BTExfSU5URl9TQU1FX1RFQ0gQAiKEAwoKQ2xhc3NpZmllchIVCgZvX3RwaWQYASABKAdSBW9UcGlkEhMKBW9fdmlkGAIgASgHUgRvVmlkEhUKBmlfdHBpZBgDIAEoB1IFaVRwaWQSEwoFaV92aWQYBCABKAdSBGlWaWQSFwoHb19wYml0cxgFIAEoB1IGb1BiaXRzEhcKB2lfcGJpdHMYBiABKAdSBmlQYml0cxIZCghldGhfdHlwZRgHIAEoB1IHZXRoVHlwZRIXCgdkc3RfbWFjGAggASgMUgZkc3RNYWMSFwoHc3JjX21hYxgJIAEoDFIGc3JjTWFjEhkKCGlwX3Byb3RvGAogASgHUgdpcFByb3RvEhUKBmRzdF9pcBgLIAEoB1IFZHN0SXASFQoGc3JjX2lwGAwgASgHUgVzcmNJcBIZCghzcmNfcG9ydBgNIAEoB1IHc3JjUG9ydBIZCghkc3RfcG9ydBgOIAEoB1IHZHN0UG9ydBIgCgxwa3RfdGFnX3R5cGUYDyABKAlSCnBrdFRhZ1R5cGUiewoJQWN0aW9uQ21kEiIKDWFkZF9vdXRlcl90YWcYASABKAhSC2FkZE91dGVyVGFnEigKEHJlbW92ZV9vdXRlcl90YWcYAiABKAhSDnJlbW92ZU91dGVyVGFnEiAKDHRyYXBfdG9faG9zdBgDIAEoCFIKdHJhcFRvSG9zdCK4AQoGQWN0aW9uEiQKA2NtZBgBIAEoCzISLm9wZW5vbHQuQWN0aW9uQ21kUgNjbWQSEwoFb192aWQYAiABKAdSBG9WaWQSFwoHb19wYml0cxgDIAEoB1IGb1BiaXRzEhUKBm9fdHBpZBgEIAEoB1IFb1RwaWQSEwoFaV92aWQYBSABKAdSBGlWaWQSFwoHaV9wYml0cxgGIAEoB1IGaVBiaXRzEhUKBmlfdHBpZBgHIAEoB1IFaVRwaWQinQMKBEZsb3cSJAoOYWNjZXNzX2ludGZfaWQYASABKA9SDGFjY2Vzc0ludGZJZBIVCgZvbnVfaWQYAiABKA9SBW9udUlkEhUKBnVuaV9pZBgLIAEoD1IFdW5pSWQSFwoHZmxvd19pZBgDIAEoB1IGZmxvd0lkEhsKCWZsb3dfdHlwZRgEIAEoCVIIZmxvd1R5cGUSGQoIYWxsb2NfaWQYCiABKA9SB2FsbG9jSWQSJgoPbmV0d29ya19pbnRmX2lkGAUgASgPUg1uZXR3b3JrSW50ZklkEh0KCmdlbXBvcnRfaWQYBiABKA9SCWdlbXBvcnRJZBIzCgpjbGFzc2lmaWVyGAcgASgLMhMub3Blbm9sdC5DbGFzc2lmaWVyUgpjbGFzc2lmaWVyEicKBmFjdGlvbhgIIAEoCzIPLm9wZW5vbHQuQWN0aW9uUgZhY3Rpb24SGgoIcHJpb3JpdHkYCSABKA9SCHByaW9yaXR5EhYKBmNvb2tpZRgMIAEoBlIGY29va2llEhcKB3BvcnRfbm8YDSABKAdSBnBvcnRObyJUCgxTZXJpYWxOdW1iZXISGwoJdmVuZG9yX2lkGAEgASgMUgh2ZW5kb3JJZBInCg92ZW5kb3Jfc3BlY2lmaWMYAiABKAxSDnZlbmRvclNwZWNpZmljIs4ECg5Qb3J0U3RhdGlzdGljcxIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSGQoIcnhfYnl0ZXMYAiABKAZSB3J4Qnl0ZXMSHQoKcnhfcGFja2V0cxgDIAEoBlIJcnhQYWNrZXRzEigKEHJ4X3VjYXN0X3BhY2tldHMYBCABKAZSDnJ4VWNhc3RQYWNrZXRzEigKEHJ4X21jYXN0X3BhY2tldHMYBSABKAZSDnJ4TWNhc3RQYWNrZXRzEigKEHJ4X2JjYXN0X3BhY2tldHMYBiABKAZSDnJ4QmNhc3RQYWNrZXRzEigKEHJ4X2Vycm9yX3BhY2tldHMYByABKAZSDnJ4RXJyb3JQYWNrZXRzEhkKCHR4X2J5dGVzGAggASgGUgd0eEJ5dGVzEh0KCnR4X3BhY2tldHMYCSABKAZSCXR4UGFja2V0cxIoChB0eF91Y2FzdF9wYWNrZXRzGAogASgGUg50eFVjYXN0UGFja2V0cxIoChB0eF9tY2FzdF9wYWNrZXRzGAsgASgGUg50eE1jYXN0UGFja2V0cxIoChB0eF9iY2FzdF9wYWNrZXRzGAwgASgGUg50eEJjYXN0UGFja2V0cxIoChB0eF9lcnJvcl9wYWNrZXRzGA0gASgGUg50eEVycm9yUGFja2V0cxIiCg1yeF9jcmNfZXJyb3JzGA4gASgGUgtyeENyY0Vycm9ycxIdCgpiaXBfZXJyb3JzGA8gASgGUgliaXBFcnJvcnMSHAoJdGltZXN0YW1wGBAgASgHUgl0aW1lc3RhbXAiuwEKDkZsb3dTdGF0aXN0aWNzEhcKB2Zsb3dfaWQYASABKAdSBmZsb3dJZBIZCghyeF9ieXRlcxgCIAEoBlIHcnhCeXRlcxIdCgpyeF9wYWNrZXRzGAMgASgGUglyeFBhY2tldHMSGQoIdHhfYnl0ZXMYCCABKAZSB3R4Qnl0ZXMSHQoKdHhfcGFja2V0cxgJIAEoBlIJdHhQYWNrZXRzEhwKCXRpbWVzdGFtcBgQIAEoB1IJdGltZXN0YW1wIkAKDUxvc0luZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhYKBnN0YXR1cxgCIAEoCVIGc3RhdHVzIl0KE0R5aW5nR2FzcEluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMi3wEKEk9udUFsYXJtSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIdCgpsb3Nfc3RhdHVzGAMgASgJUglsb3NTdGF0dXMSHQoKbG9iX3N0YXR1cxgEIAEoCVIJbG9iU3RhdHVzEigKEGxvcGNfbWlzc19zdGF0dXMYBSABKAlSDmxvcGNNaXNzU3RhdHVzEjEKFWxvcGNfbWljX2Vycm9yX3N0YXR1cxgGIAEoCVISbG9wY01pY0Vycm9yU3RhdHVzImUKG09udVN0YXJ0dXBGYWlsdXJlSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cyKZAQoaT251U2lnbmFsRGVncmFkZUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSMwoWaW52ZXJzZV9iaXRfZXJyb3JfcmF0ZRgEIAEoB1ITaW52ZXJzZUJpdEVycm9yUmF0ZSKTAQoaT251RHJpZnRPZldpbmRvd0luZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSFAoFZHJpZnQYBCABKAdSBWRyaWZ0EhcKB25ld19lcWQYBSABKAdSBm5ld0VxZCJoCh5PbnVMb3NzT2ZPbWNpQ2hhbm5lbEluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMimgEKG09udVNpZ25hbHNGYWlsdXJlSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cxIzChZpbnZlcnNlX2JpdF9lcnJvcl9yYXRlGAQgASgHUhNpbnZlcnNlQml0RXJyb3JSYXRlIoIBCiJPbnVUcmFuc21pc3Npb25JbnRlcmZlcmVuY2VXYXJuaW5nEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEhQKBWRyaWZ0GAQgASgHUgVkcmlmdCJQCh5PbnVBY3RpdmF0aW9uRmFpbHVyZUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQiTgocT251UHJvY2Vzc2luZ0Vycm9ySW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZCLrAQoJU2NoZWR1bGVyEjAKCWRpcmVjdGlvbhgBIAEoDjISLm9wZW5vbHQuRGlyZWN0aW9uUglkaXJlY3Rpb24SOgoNYWRkaXRpb25hbF9idxgCIAEoDjIVLm9wZW5vbHQuQWRkaXRpb25hbEJXUgxhZGRpdGlvbmFsQncSGgoIcHJpb3JpdHkYAyABKAdSCHByaW9yaXR5EhYKBndlaWdodBgEIAEoB1IGd2VpZ2h0EjwKDHNjaGVkX3BvbGljeRgFIAEoDjIZLm9wZW5vbHQuU2NoZWR1bGluZ1BvbGljeVILc2NoZWRQb2xpY3kiswEKElRyYWZmaWNTaGFwaW5nSW5mbxIQCgNjaXIYASABKAdSA2NpchIQCgNjYnMYAiABKAdSA2NicxIQCgNwaXIYAyABKAdSA3BpchIQCgNwYnMYBCABKAdSA3BicxIQCgNnaXIYBSABKAdSA2dpchJDCgphZGRfYndfaW5kGAYgASgOMiUub3Blbm9sdC5JbmZlcnJlZEFkZGl0aW9uQldJbmRpY2F0aW9uUghhZGRCd0luZCLVAQoFVGNvbnQSMAoJZGlyZWN0aW9uGAEgASgOMhIub3Blbm9sdC5EaXJlY3Rpb25SCWRpcmVjdGlvbhIZCghhbGxvY19pZBgCIAEoB1IHYWxsb2NJZBIwCglzY2hlZHVsZXIYAyABKAsyEi5vcGVub2x0LlNjaGVkdWxlclIJc2NoZWR1bGVyEk0KFHRyYWZmaWNfc2hhcGluZ19pbmZvGAQgASgLMhsub3Blbm9sdC5UcmFmZmljU2hhcGluZ0luZm9SEnRyYWZmaWNTaGFwaW5nSW5mbyKQAQoGVGNvbnRzEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhUKBnVuaV9pZBgEIAEoB1IFdW5pSWQSFwoHcG9ydF9ubxgFIAEoB1IGcG9ydE5vEiYKBnRjb250cxgDIAMoCzIOLm9wZW5vbHQuVGNvbnRSBnRjb250cyI2ChVUYWlsRHJvcERpc2NhcmRDb25maWcSHQoKcXVldWVfc2l6ZRgBIAEoB1IJcXVldWVTaXplIoUBChBSZWREaXNjYXJkQ29uZmlnEiMKDW1pbl90aHJlc2hvbGQYASABKAdSDG1pblRocmVzaG9sZBIjCg1tYXhfdGhyZXNob2xkGAIgASgHUgxtYXhUaHJlc2hvbGQSJwoPbWF4X3Byb2JhYmlsaXR5GAMgASgHUg5tYXhQcm9iYWJpbGl0eSKkAQoRV1JlZERpc2NhcmRDb25maWcSLwoFZ3JlZW4YASABKAsyGS5vcGVub2x0LlJlZERpc2NhcmRDb25maWdSBWdyZWVuEjEKBnllbGxvdxgCIAEoCzIZLm9wZW5vbHQuUmVkRGlzY2FyZENvbmZpZ1IGeWVsbG93EisKA3JlZBgDIAEoCzIZLm9wZW5vbHQuUmVkRGlzY2FyZENvbmZpZ1IDcmVkItQCCg1EaXNjYXJkQ29uZmlnEj0KDmRpc2NhcmRfcG9saWN5GAEgASgOMhYub3Blbm9sdC5EaXNjYXJkUG9saWN5Ug1kaXNjYXJkUG9saWN5ElkKGHRhaWxfZHJvcF9kaXNjYXJkX2NvbmZpZxgCIAEoCzIeLm9wZW5vbHQuVGFpbERyb3BEaXNjYXJkQ29uZmlnSABSFXRhaWxEcm9wRGlzY2FyZENvbmZpZxJJChJyZWRfZGlzY2FyZF9jb25maWcYAyABKAsyGS5vcGVub2x0LlJlZERpc2NhcmRDb25maWdIAFIQcmVkRGlzY2FyZENvbmZpZxJMChN3cmVkX2Rpc2NhcmRfY29uZmlnGAQgASgLMhoub3Blbm9sdC5XUmVkRGlzY2FyZENvbmZpZ0gAUhF3cmVkRGlzY2FyZENvbmZpZ0IQCg5kaXNjYXJkX2NvbmZpZyIHCgVFbXB0eSo8CglEaXJlY3Rpb24SDAoIVVBTVFJFQU0QABIOCgpET1dOU1RSRUFNEAESEQoNQklESVJFQ1RJT05BTBACKjsKEFNjaGVkdWxpbmdQb2xpY3kSBwoDV1JSEAASEgoOU3RyaWN0UHJpb3JpdHkQARIKCgZIeWJyaWQQAipuCgxBZGRpdGlvbmFsQlcSFQoRQWRkaXRpb25hbEJXX05vbmUQABITCg9BZGRpdGlvbmFsQldfTkEQARIbChdBZGRpdGlvbmFsQldfQmVzdEVmZm9ydBACEhUKEUFkZGl0aW9uYWxCV19BdXRvEAMqPwoNRGlzY2FyZFBvbGljeRIMCghUYWlsRHJvcBAAEg0KCVdUYWlsRHJvcBABEgcKA1JlZBACEggKBFdSZWQQAyqcAQocSW5mZXJyZWRBZGRpdGlvbkJXSW5kaWNhdGlvbhIlCiFJbmZlcnJlZEFkZGl0aW9uQldJbmRpY2F0aW9uX05vbmUQABIoCiRJbmZlcnJlZEFkZGl0aW9uQldJbmRpY2F0aW9uX0Fzc3VyZWQQARIrCidJbmZlcnJlZEFkZGl0aW9uQldJbmRpY2F0aW9uX0Jlc3RFZmZvcnQQAjKnCwoHT3Blbm9sdBJECgpEaXNhYmxlT2x0Eg4ub3Blbm9sdC5FbXB0eRoOLm9wZW5vbHQuRW1wdHkiFoLT5JMCECILL3YxL0Rpc2FibGU6ASoSRgoLUmVlbmFibGVPbHQSDi5vcGVub2x0LkVtcHR5Gg4ub3Blbm9sdC5FbXB0eSIXgtPkkwIRIgwvdjEvUmVlbmFibGU6ASoSRQoLQWN0aXZhdGVPbnUSDC5vcGVub2x0Lk9udRoOLm9wZW5vbHQuRW1wdHkiGILT5JMCEiINL3YxL0VuYWJsZU9udToBKhJICg1EZWFjdGl2YXRlT251Egwub3Blbm9sdC5PbnUaDi5vcGVub2x0LkVtcHR5IhmC0+STAhMiDi92MS9EaXNhYmxlT251OgEqEkMKCURlbGV0ZU9udRIMLm9wZW5vbHQuT251Gg4ub3Blbm9sdC5FbXB0eSIYgtPkkwISIg0vdjEvRGVsZXRlT251OgEqEkkKCk9tY2lNc2dPdXQSEC5vcGVub2x0Lk9tY2lNc2caDi5vcGVub2x0LkVtcHR5IhmC0+STAhMiDi92MS9PbWNpTXNnT3V0OgEqEk8KDE9udVBhY2tldE91dBISLm9wZW5vbHQuT251UGFja2V0Gg4ub3Blbm9sdC5FbXB0eSIbgtPkkwIVIhAvdjEvT251UGFja2V0T3V0OgEqElgKD1VwbGlua1BhY2tldE91dBIVLm9wZW5vbHQuVXBsaW5rUGFja2V0Gg4ub3Blbm9sdC5FbXB0eSIegtPkkwIYIhMvdjEvVXBsaW5rUGFja2V0T3V0OgEqEkAKB0Zsb3dBZGQSDS5vcGVub2x0LkZsb3caDi5vcGVub2x0LkVtcHR5IhaC0+STAhAiCy92MS9GbG93QWRkOgEqEkYKCkZsb3dSZW1vdmUSDS5vcGVub2x0LkZsb3caDi5vcGVub2x0LkVtcHR5IhmC0+STAhMiDi92MS9GbG93UmVtb3ZlOgEqElMKDkhlYXJ0YmVhdENoZWNrEg4ub3Blbm9sdC5FbXB0eRoSLm9wZW5vbHQuSGVhcnRiZWF0Ih2C0+STAhciEi92MS9IZWFydGJlYXRDaGVjazoBKhJNCgtFbmFibGVQb25JZhISLm9wZW5vbHQuSW50ZXJmYWNlGg4ub3Blbm9sdC5FbXB0eSIagtPkkwIUIg8vdjEvRW5hYmxlUG9uSWY6ASoSTwoMRGlzYWJsZVBvbklmEhIub3Blbm9sdC5JbnRlcmZhY2UaDi5vcGVub2x0LkVtcHR5IhuC0+STAhUiEC92MS9EaXNhYmxlUG9uSWY6ASoSUgoNR2V0RGV2aWNlSW5mbxIOLm9wZW5vbHQuRW1wdHkaEy5vcGVub2x0LkRldmljZUluZm8iHILT5JMCFiIRL3YxL0dldERldmljZUluZm86ASoSPwoGUmVib290Eg4ub3Blbm9sdC5FbXB0eRoOLm9wZW5vbHQuRW1wdHkiFYLT5JMCDyIKL3YxL1JlYm9vdDoBKhJVChFDb2xsZWN0U3RhdGlzdGljcxIOLm9wZW5vbHQuRW1wdHkaDi5vcGVub2x0LkVtcHR5IiCC0+STAhoiFS92MS9Db2xsZWN0U3RhdGlzdGljczoBKhJMCgxDcmVhdGVUY29udHMSDy5vcGVub2x0LlRjb250cxoOLm9wZW5vbHQuRW1wdHkiG4LT5JMCFSIQL3YxL0NyZWF0ZVRjb250czoBKhJMCgxSZW1vdmVUY29udHMSDy5vcGVub2x0LlRjb250cxoOLm9wZW5vbHQuRW1wdHkiG4LT5JMCFSIQL3YxL1JlbW92ZVRjb250czoBKhI7ChBFbmFibGVJbmRpY2F0aW9uEg4ub3Blbm9sdC5FbXB0eRoTLm9wZW5vbHQuSW5kaWNhdGlvbiIAMAFKq7cBCgcSBQ4AqwQQCtEECgEMEgMOABIyxgQgQ29weXJpZ2h0IChjKSAyMDE4IE9wZW4gTmV0d29ya2luZyBGb3VuZGF0aW9uCgogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6CgogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNw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UG9uU2ltUGFja2V0Q291bnRlchISCgRuYW1lGAEgASgJUgRuYW1lEhQKBXZhbHVlGAIgASgDUgV2YWx1ZSJnChFQb25TaW1Qb3J0TWV0cmljcxIbCglwb3J0X25hbWUYASABKAlSCHBvcnROYW1lEjUKB3BhY2tldHMYAiADKAsyGy52b2x0aGEuUG9uU2ltUGFja2V0Q291bnRlclIHcGFja2V0cyJcCg1Qb25TaW1NZXRyaWNzEhYKBmRldmljZRgBIAEoCVIGZGV2aWNlEjMKB21ldHJpY3MYAiADKAsyGS52b2x0aGEuUG9uU2ltUG9ydE1ldHJpY3NSB21ldHJpY3MiKgoUUG9uU2ltTWV0cmljc1JlcXVlc3QSEgoEcG9ydBgBIAEoBVIEcG9ydDLIAgoGUG9uU2ltEjoKCVNlbmRGcmFtZRITLnZvbHRoYS5Qb25TaW1GcmFtZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIAEkAKDVJlY2VpdmVGcmFtZXMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaEy52b2x0aGEuUG9uU2ltRnJhbWUiADABEkMKDUdldERldmljZUluZm8SFi5nb29nbGUucHJvdG9idWYuRW1wdHkaGC52b2x0aGEuUG9uU2ltRGV2aWNlSW5mbyIAEj4KD1VwZGF0ZUZsb3dUYWJsZRIRLnZvbHRoYS5GbG93VGFibGUaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiABI7CghHZXRTdGF0cxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoVLnZvbHRoYS5Qb25TaW1NZXRyaWNzIgBCLVorZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL2dvL3ZvbHRoYUr+DQoGEgQAAEIBCggKAQwSAwAAEgoICgEIEgMCAEIKCwoECOcHABIDAgBCCgwKBQjnBwACEgMCBxEKDQoGCOcHAAIAEgMCBxEKDgoHCOcHAAIAARIDAgcRCgwKBQjnBwAHEgMCFEEKCAoBAhIDBAgOCgkKAgMAEgMGByQKCQoCAwESAwcHKAoKCgIEABIECgANAQoKCgMEAAESAwoIGwoLCgQEAAIAEgMLBBcKDQoFBAACAAQSBAsECh0KDAoFBAACAAUSAwsECQoMCgUEAAIAARIDCwoSCgwK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HQoMCgUEAQIAAxIDFCAhCkkKBAQBAgESAxcEHBo8IFByb3RvIGZpbGUgbmFtZSBmcm9tIHdoaWNoIHN3YWdnZXIuanNvbiBzaGFsbCBiZSBnZW5lcmF0ZWQKCg0KBQQBAgEEEgQXBBQiCgwKBQQBAgEFEgMXBAoKDAoFBAECAQESAxcLFwoMCgUEAQIBAxIDFxobCkkKBAQBAgISAxoEGRo8IFByb3RvIGZpbGUgbmFtZSBmcm9tIHdoaWNoIHlhbmcgc2NoZW1hcyBzaGFsbCBiZSBnZW5lcmF0ZWQKCg0KBQQBAgIEEgQaBBccCgwKBQQBAgIFEgMaBAoKDAoFBAECAgESAxoLFAoMCgUEAQICAxIDGhcYCh0KAgYAEgQeACcBGhEgU2NoZW1hIHNlcnZpY2VzCgoKCgMGAAESAx4IFQoqCgQGAAIAEgQhBCUFGhwgUmV0dXJuIGFjdGl2ZSBncnBjIHNjaGVtYXMKCgwKBQYAAgABEgMhCBEKDAoFBgACAAISAyESJwoMCgUGAAIAAxIDITI5Cg0KBQYAAgAEEgQiCCQKChAKCAYAAgAE5wcAEgQiCCQKChAKCQYAAgAE5wcAAhIDIg8gChEKCgYAAgAE5wcAAgASAyIPIAoSCgsGAAIABOcHAAIAARIDIhAfChEKCQYAAgAE5wcACBIEIiMkCWIGcHJvdG8zCtjuAQoadm9sdGhhX3Byb3Rvcy92b2x0aGEucHJvdG8SBnZvbHRoYRocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90bxobZ29vZ2xlL3Byb3RvYnVmL2VtcHR5LnByb3RvGhh2b2x0aGFfcHJvdG9zL21ldGEucHJvdG8aGnZvbHRoYV9wcm90b3MvY29tbW9uLnByb3RvGhp2b2x0aGFfcHJvdG9zL2hlYWx0aC5wcm90bxoidm9sdGhhX3Byb3Rvcy9sb2dpY2FsX2RldmljZS5wcm90bxoadm9sdGhhX3Byb3Rvcy9kZXZpY2UucHJvdG8aG3ZvbHRoYV9wcm90b3MvYWRhcHRlci5wcm90bxofdm9sdGhhX3Byb3Rvcy9vcGVuZmxvd18xMy5wcm90bxofdm9sdGhhX3Byb3Rvcy9vbWNpX21pYl9kYi5wcm90bxohdm9sdGhhX3Byb3Rvcy9vbWNpX2FsYXJtX2RiLnByb3RvGiB2b2x0aGFfcHJvdG9zL3lhbmdfb3B0aW9ucy5wcm90byKkAQoLRGV2aWNlR3JvdXASFQoCaWQYASABKAlCBej2zR0BUgJpZBJJCg9sb2dpY2FsX2RldmljZXMYAiADKAsyFS52b2x0aGEuTG9naWNhbERldmljZUIJ4vbNHQQKAmlkUg5sb2dpY2FsRGV2aWNlcxIzCgdkZXZpY2VzGAMgAygLMg4udm9sdGhhLkRldmljZUIJ4vbNHQQKAmlkUgdkZXZpY2VzIjkKDERldmljZUdyb3VwcxIpCgVpdGVtcxgBIAMoCzITLnZvbHRoYS5EZXZpY2VHcm91cFIFaXRlbXMifwoSQWxhcm1GaWx0ZXJSdWxlS2V5ImIKEkFsYXJtRmlsdGVyUnVsZUtleRIGCgJpZBAAEggKBHR5cGUQARIMCghzZXZlcml0eRACEg8KC3Jlc291cmNlX2lkEAMSDAoIY2F0ZWdvcnkQBBINCglkZXZpY2VfaWQQBToF8PbNHQAiaAoPQWxhcm1GaWx0ZXJSdWxlEj8KA2tleRgBIAEoDjItLnZvbHRoYS5BbGFybUZpbHRlclJ1bGVLZXkuQWxhcm1GaWx0ZXJSdWxlS2V5UgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlIlMKC0FsYXJtRmlsdGVyEhUKAmlkGAEgASgJQgXo9s0dAVICaWQSLQoFcnVsZXMYAiADKAsyFy52b2x0aGEuQWxhcm1GaWx0ZXJSdWxlUgVydWxlcyI9CgxBbGFybUZpbHRlcnMSLQoHZmlsdGVycxgBIAMoCzITLnZvbHRoYS5BbGFybUZpbHRlclIHZmlsdGVycyJdCgdMb2dnaW5nEi8KBWxldmVsGAEgASgOMhkudm9sdGhhLkxvZ0xldmVsLkxvZ0xldmVsUgVsZXZlbBIhCgxwYWNrYWdlX25hbWUYAiABKAlSC3BhY2thZ2VOYW1lInIKDENvcmVJbnN0YW5jZRImCgtpbnN0YW5jZV9pZBgBIAEoCUIF6PbNHQFSCmluc3RhbmNlSWQSMwoGaGVhbHRoGAIgASgLMhQudm9sdGhhLkhlYWx0aFN0YXR1c0IF4vbNHQBSBmhlYWx0aDoF+PbNHQEiQgoNQ29yZUluc3RhbmNlcxIqCgVpdGVtcxgBIAMoCzIULnZvbHRoYS5Db3JlSW5zdGFuY2VSBWl0ZW1zOgX49s0dASLhBAoGVm9sdGhhEh8KB3ZlcnNpb24YASABKAlCBej2zR0BUgd2ZXJzaW9uEjYKCGFkYXB0ZXJzGAIgAygLMg8udm9sdGhhLkFkYXB0ZXJCCeL2zR0ECgJpZFIIYWRhcHRlcnMSSQoPbG9naWNhbF9kZXZpY2VzGAMgAygLMhUudm9sdGhhLkxvZ2ljYWxEZXZpY2VCCeL2zR0ECgJpZFIObG9naWNhbERldmljZXMSMwoHZGV2aWNlcxgEIAMoCzIOLnZvbHRoYS5EZXZpY2VCCeL2zR0ECgJpZFIHZGV2aWNlcxJACgxkZXZpY2VfdHlwZXMYBSADKAsyEi52b2x0aGEuRGV2aWNlVHlwZUIJ4vbNHQQKAmlkUgtkZXZpY2VUeXBlcxJDCg1kZXZpY2VfZ3JvdXBzGAYgAygLMhMudm9sdGhhLkRldmljZUdyb3VwQgni9s0dBAoCaWRSDGRldmljZUdyb3VwcxJDCg1hbGFybV9maWx0ZXJzGAcgAygLMhMudm9sdGhhLkFsYXJtRmlsdGVyQgni9s0dBAoCaWRSDGFsYXJtRmlsdGVycxJRChFvbWNpX21pYl9kYXRhYmFzZRgcIAMoCzITLm9tY2kuTWliRGV2aWNlRGF0YUIQ4vbNHQsKCWRldmljZV9pZFIPb21jaU1pYkRhdGFiYXNlElgKE29tY2lfYWxhcm1fZGF0YWJhc2UYHSADKAsyFi5hbGFybS5BbGFybURldmljZURhdGFCEOL2zR0LCglkZXZpY2VfaWRSEW9tY2lBbGFybURhdGFiYXNlOgX49s0dASKsAQoQU2VsZlRlc3RSZXNwb25zZRI/CgZyZXN1bHQYASABKA4yJy52b2x0aGEuU2VsZlRlc3RSZXNwb25zZS5TZWxmVGVzdFJlc3VsdFIGcmVzdWx0IlAKDlNlbGZUZXN0UmVzdWx0EgsKB1NVQ0NFU1MQABILCgdGQUlMVVJFEAESEQoNTk9UX1NVUFBPUlRFRBACEhEKDVVOS05PV05fRVJST1IQAzoF8PbNHQAiTwoRT2ZBZ2VudFN1YnNjcmliZXISHQoKb2ZhZ2VudF9pZBgBIAEoCVIJb2ZhZ2VudElkEhsKCXZvbHRoYV9pZBgCIAEoCVIIdm9sdGhhSWQiOwoKTWVtYmVyc2hpcBIdCgpncm91cF9uYW1lGAEgASgJUglncm91cE5hbWUSDgoCaWQYAiABKAlSAmlkMqgvCg1Wb2x0aGFTZXJ2aWNlEk8KDlVwZGF0ZUxvZ0xldmVsEg8udm9sdGhhLkxvZ2dpbmcaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiFILT5JMCDhIML2FwaS92MS9sb2dzElcKDUdldE1lbWJlcnNoaXASFi5nb29nbGUucHJvdG9idWYuRW1wdHkaEi52b2x0aGEuTWVtYmVyc2hpcCIagtPkkwIUEhIvYXBpL3YxL21lbWJlcnNoaXASXQoQVXBkYXRlTWVtYmVyc2hpcBISLnZvbHRoYS5NZW1iZXJzaGlwGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ih2C0+STAhciEi9hcGkvdjEvbWVtYmVyc2hpcDoBKhJECglHZXRWb2x0aGESFi5nb29nbGUucHJvdG9idWYuRW1wdHkaDi52b2x0aGEuVm9sdGhhIg+C0+STAgkSBy9hcGkvdjESdQoRTGlzdENvcmVJbnN0YW5jZXMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaFS52b2x0aGEuQ29yZUluc3RhbmNlcyIxgtPkkwITEhEvYXBpL3YxL2luc3RhbmNlc4r3zR0HCgVpdGVtc4r3zR0HEgVpdGVtcxJTCg9HZXRDb3JlSW5zdGFuY2USCi52b2x0aGEuSUQaFC52b2x0aGEuQ29yZUluc3RhbmNlIh6C0+STAhgSFi9hcGkvdjEvaW5zdGFuY2VzL3tpZH0SYQoMTGlzdEFkYXB0ZXJzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhAudm9sdGhhLkFkYXB0ZXJzIieC0+STAhISEC9hcGkvdjEvYWRhcHRlcnOK980dCgoIYWRhcHRlcnMSewoSTGlzdExvZ2ljYWxEZXZpY2VzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhYudm9sdGhhLkxvZ2ljYWxEZXZpY2VzIjWC0+STAhkSFy9hcGkvdjEvbG9naWNhbF9kZXZpY2VzivfNHREKD2xvZ2ljYWxfZGV2aWNlcxJbChBHZXRMb2dpY2FsRGV2aWNlEgoudm9sdGhhLklEGhUudm9sdGhhLkxvZ2ljYWxEZXZpY2UiJILT5JMCHhIcL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfRJyChZMaXN0TG9naWNhbERldmljZVBvcnRzEgoudm9sdGhhLklEGhQudm9sdGhhLkxvZ2ljYWxQb3J0cyI2gtPkkwIkEiIvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L3BvcnRzivfNHQcKBXBvcnRzEoMBChRHZXRMb2dpY2FsRGV2aWNlUG9ydBIVLnZvbHRoYS5Mb2dpY2FsUG9ydElkGhMudm9sdGhhLkxvZ2ljYWxQb3J0Ij+C0+STAi4SLC9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vcG9ydHMve3BvcnRfaWR9ivfNHQYKBHBvcnQShQEKF0VuYWJsZUxvZ2ljYWxEZXZpY2VQb3J0EhUudm9sdGhhLkxvZ2ljYWxQb3J0SWQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiO4LT5JMCNSIzL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9wb3J0cy97cG9ydF9pZH0vZW5hYmxlEocBChhEaXNhYmxlTG9naWNhbERldmljZVBvcnQSFS52b2x0aGEuTG9naWNhbFBvcnRJZBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSI8gtPkkwI2IjQvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L3BvcnRzL3twb3J0X2lkfS9kaXNhYmxlEnwKFkxpc3RMb2dpY2FsRGV2aWNlRmxvd3MSCi52b2x0aGEuSUQaEi5vcGVuZmxvd18xMy5GbG93cyJCgtPkkwIkEiIvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L2Zsb3dzivfNHQcKBWZsb3dzivfNHQcSBWl0ZW1zEoMBChxVcGRhdGVMb2dpY2FsRGV2aWNlRmxvd1RhYmxlEhwub3BlbmZsb3dfMTMuRmxvd1RhYmxlVXBkYXRlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ii2C0+STAiciIi9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vZmxvd3M6ASoShAEKHVVwZGF0ZUxvZ2ljYWxEZXZpY2VNZXRlclRhYmxlEhsub3BlbmZsb3dfMTMuTWV0ZXJNb2RVcGRhdGUaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiLoLT5JMCKCIjL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9tZXRlcnM6ASoSewocR2V0TWV0ZXJTdGF0c09mTG9naWNhbERldmljZRIKLnZvbHRoYS5JRBocLm9wZW5mbG93XzEzLk1ldGVyU3RhdHNSZXBseSIxgtPkkwIrEikvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L21ldGVyc19zdGF0cxKSAQobTGlzdExvZ2ljYWxEZXZpY2VGbG93R3JvdXBzEgoudm9sdGhhLklEGhcub3BlbmZsb3dfMTMuRmxvd0dyb3VwcyJOgtPkkwIqEigvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L2Zsb3dfZ3JvdXBzivfNHQ0KC2Zsb3dfZ3JvdXBzivfNHQcSBWl0ZW1zEpMBCiFVcGRhdGVMb2dpY2FsRGV2aWNlRmxvd0dyb3VwVGFibGUSIS5vcGVuZmxvd18xMy5GbG93R3JvdXBUYWJsZVVwZGF0ZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIzgtPkkwItIigvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L2Zsb3dfZ3JvdXBzOgEqEl0KC0xpc3REZXZpY2VzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Gg8udm9sdGhhLkRldmljZXMiJYLT5JMCERIPL2FwaS92MS9kZXZpY2VzivfNHQkKB2RldmljZXMSZAoNTGlzdERldmljZUlkcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoLLnZvbHRoYS5JRHMiLoLT5JMCExIRL2FwaS92MS9kZXZpY2VpZHOK980dBAoCaWSK980dBxIFaXRlbXMSVQoQUmVjb25jaWxlRGV2aWNlcxILLnZvbHRoYS5JRHMaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiHILT5JMCFiIRL2FwaS92MS9kZXZpY2VpZHM6ASoSRQoJR2V0RGV2aWNlEgoudm9sdGhhLklEGg4udm9sdGhhLkRldmljZSIcgtPkkwIWEhQvYXBpL3YxL2RldmljZXMve2lkfRJKCgxDcmVhdGVEZXZpY2USDi52b2x0aGEuRGV2aWNlGg4udm9sdGhhLkRldmljZSIagtPkkwIUIg8vYXBpL3YxL2RldmljZXM6ASoSVwoMRW5hYmxlRGV2aWNlEgoudm9sdGhhLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiOC0+STAh0iGy9hcGkvdjEvZGV2aWNlcy97aWR9L2VuYWJsZRJZCg1EaXNhYmxlRGV2aWNlEgoudm9sdGhhLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiSC0+STAh4iHC9hcGkvdjEvZGV2aWNlcy97aWR9L2Rpc2FibGUSVwoMUmVib290RGV2aWNlEgoudm9sdGhhLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiOC0+STAh0iGy9hcGkvdjEvZGV2aWNlcy97aWR9L3JlYm9vdBJXCgxEZWxldGVEZXZpY2USCi52b2x0aGEuSUQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiI4LT5JMCHSobL2FwaS92MS9kZXZpY2VzL3tpZH0vZGVsZXRlEnUKDURvd25sb2FkSW1hZ2USFS52b2x0aGEuSW1hZ2VEb3dubG9hZBoVLnZvbHRoYS5PcGVyYXRpb25SZXNwIjaC0+STAjAiKy9hcGkvdjEvZGV2aWNlcy97aWR9L2ltYWdlX2Rvd25sb2Fkcy97bmFtZX06ASoSggEKFkdldEltYWdlRG93bmxvYWRTdGF0dXMSFS52b2x0aGEuSW1hZ2VEb3dubG9hZBoVLnZvbHRoYS5JbWFnZURvd25sb2FkIjqC0+STAjQSMi9hcGkvdjEvZGV2aWNlcy97aWR9L2ltYWdlX2Rvd25sb2Fkcy97bmFtZX0vc3RhdHVzEnUKEEdldEltYWdlRG93bmxvYWQSFS52b2x0aGEuSW1hZ2VEb3dubG9hZBoVLnZvbHRoYS5JbWFnZURvd25sb2FkIjOC0+STAi0SKy9hcGkvdjEvZGV2aWNlcy97aWR9L2ltYWdlX2Rvd25sb2Fkcy97bmFtZX0SZgoSTGlzdEltYWdlRG93bmxvYWRzEgoudm9sdGhhLklEGhYudm9sdGhhLkltYWdlRG93bmxvYWRzIiyC0+STAiYSJC9hcGkvdjEvZGV2aWNlcy97aWR9L2ltYWdlX2Rvd25sb2FkcxJ4ChNDYW5jZWxJbWFnZURvd25sb2FkEhUudm9sdGhhLkltYWdlRG93bmxvYWQaFS52b2x0aGEuT3BlcmF0aW9uUmVzcCIzgtPkkwItKisvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMve25hbWV9EogBChNBY3RpdmF0ZUltYWdlVXBkYXRlEhUudm9sdGhhLkltYWdlRG93bmxvYWQaFS52b2x0aGEuT3BlcmF0aW9uUmVzcCJDgtPkkwI9IjgvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMve25hbWV9L2ltYWdlX3VwZGF0ZToBKhKGAQoRUmV2ZXJ0SW1hZ2VVcGRhdGUSFS52b2x0aGEuSW1hZ2VEb3dubG9hZBoVLnZvbHRoYS5PcGVyYXRpb25SZXNwIkOC0+STAj0iOC9hcGkvdjEvZGV2aWNlcy97aWR9L2ltYWdlX2Rvd25sb2Fkcy97bmFtZX0vaW1hZ2VfcmV2ZXJ0OgEqElwKD0xpc3REZXZpY2VQb3J0cxIKLnZvbHRoYS5JRBoNLnZvbHRoYS5Qb3J0cyIugtPkkwIcEhovYXBpL3YxL2RldmljZXMve2lkfS9wb3J0c4r3zR0HCgVwb3J0cxJdChNMaXN0RGV2aWNlUG1Db25maWdzEgoudm9sdGhhLklEGhEudm9sdGhhLlBtQ29uZmlncyIngtPkkwIhEh8vYXBpL3YxL2RldmljZXMve2lkfS9wbV9jb25maWdzEm4KFVVwZGF0ZURldmljZVBtQ29uZmlncxIRLnZvbHRoYS5QbUNvbmZpZ3MaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiKoLT5JMCJCIfL2FwaS92MS9kZXZpY2VzL3tpZH0vcG1fY29uZmlnczoBKhJtCg9MaXN0RGV2aWNlRmxvd3MSCi52b2x0aGEuSUQaEi5vcGVuZmxvd18xMy5GbG93cyI6gtPkkwIcEhovYXBpL3YxL2RldmljZXMve2lkfS9mbG93c4r3zR0HCgVmbG93c4r3zR0HEgVpdGVtcxKDAQoUTGlzdERldmljZUZsb3dHcm91cHMSCi52b2x0aGEuSUQaFy5vcGVuZmxvd18xMy5GbG93R3JvdXBzIkaC0+STAiISIC9hcGkvdjEvZGV2aWNlcy97aWR9L2Zsb3dfZ3JvdXBzivfNHQ0KC2Zsb3dfZ3JvdXBzivfNHQcSBWl0ZW1zEm8KD0xpc3REZXZpY2VUeXBlcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoTLnZvbHRoYS5EZXZpY2VUeXBlcyIvgtPkkwIWEhQvYXBpL3YxL2RldmljZV90eXBlc4r3zR0OCgxkZXZpY2VfdHlwZXMSUgoNR2V0RGV2aWNlVHlwZRIKLnZvbHRoYS5JRBoSLnZvbHRoYS5EZXZpY2VUeXBlIiGC0+STAhsSGS9hcGkvdjEvZGV2aWNlX3R5cGVzL3tpZH0ScwoQTGlzdERldmljZUdyb3VwcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoULnZvbHRoYS5EZXZpY2VHcm91cHMiMYLT5JMCFxIVL2FwaS92MS9kZXZpY2VfZ3JvdXBzivfNHQ8KDWRldmljZV9ncm91cHMSRgoQU3RyZWFtUGFja2V0c091dBIWLm9wZW5mbG93XzEzLlBhY2tldE91dBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIAKAESRQoQUmVjZWl2ZVBhY2tldHNJbhIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoVLm9wZW5mbG93XzEzLlBhY2tldEluIgAwARJLChNSZWNlaXZlQ2hhbmdlRXZlbnRzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ghgub3BlbmZsb3dfMTMuQ2hhbmdlRXZlbnQiADABElUKDkdldERldmljZUdyb3VwEgoudm9sdGhhLklEGhMudm9sdGhhLkRldmljZUdyb3VwIiKC0+STAhwSGi9hcGkvdjEvZGV2aWNlX2dyb3Vwcy97aWR9El8KEUNyZWF0ZUFsYXJtRmlsdGVyEhMudm9sdGhhLkFsYXJtRmlsdGVyGhMudm9sdGhhLkFsYXJtRmlsdGVyIiCC0+STAhoiFS9hcGkvdjEvYWxhcm1fZmlsdGVyczoBKhJVCg5HZXRBbGFybUZpbHRlchIKLnZvbHRoYS5JRBoTLnZvbHRoYS5BbGFybUZpbHRlciIigtPkkwIcEhovYXBpL3YxL2FsYXJtX2ZpbHRlcnMve2lkfRJkChFVcGRhdGVBbGFybUZpbHRlchITLnZvbHRoYS5BbGFybUZpbHRlchoTLnZvbHRoYS5BbGFybUZpbHRlciIlgtPkkwIfGhovYXBpL3YxL2FsYXJtX2ZpbHRlcnMve2lkfToBKhJbChFEZWxldGVBbGFybUZpbHRlchIKLnZvbHRoYS5JRBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIigtPkkwIcKhovYXBpL3YxL2FsYXJtX2ZpbHRlcnMve2lkfRJfChBMaXN0QWxhcm1GaWx0ZXJzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhQudm9sdGhhLkFsYXJtRmlsdGVycyIdgtPkkwIXEhUvYXBpL3YxL2FsYXJtX2ZpbHRlcnMSTAoJR2V0SW1hZ2VzEgoudm9sdGhhLklEGg4udm9sdGhhLkltYWdlcyIjgtPkkwIdEhsvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZXMSWAoIU2VsZlRlc3QSCi52b2x0aGEuSUQaGC52b2x0aGEuU2VsZlRlc3RSZXNwb25zZSImgtPkkwIgIh4vYXBpL3YxL2RldmljZXMve2lkfS9zZWxmX3Rlc3QSVgoQR2V0TWliRGV2aWNlRGF0YRIKLnZvbHRoYS5JRBoTLm9tY2kuTWliRGV2aWNlRGF0YSIhgtPkkwIbEhkvYXBpL3YxL29wZW5vbWNpL3tpZH0vbWliEl0KEkdldEFsYXJtRGV2aWNlRGF0YRIKLnZvbHRoYS5JRBoWLmFsYXJtLkFsYXJtRGV2aWNlRGF0YSIjgtPkkwIdEhsvYXBpL3YxL29wZW5vbWNpL3tpZH0vYWxhcm0ScwoNU2ltdWxhdGVBbGFybRIcLnZvbHRoYS5TaW11bGF0ZUFsYXJtUmVxdWVzdBoVLnZvbHRoYS5PcGVyYXRpb25SZXNwIi2C0+STAiciIi9hcGkvdjEvZGV2aWNlcy97aWR9L3NpbXVsYXRlX2xhcm06ASoSQwoJU3Vic2NyaWJlEhkudm9sdGhhLk9mQWdlbnRTdWJzY3JpYmVyGhkudm9sdGhhLk9mQWdlbnRTdWJzY3JpYmVyIgBCaQoTb3JnLm9wZW5jb3JkLnZvbHRoYUIMVm9sdGhhUHJvdG9zWitnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvZ28vdm9sdGhhqgIWT3BlbmNvcmQuVm9sdGhhLlZvbHRoYUr6rAEKBxIFBgDaBAEKXAoBDBIDBgASMlIKIFRvcC1sZXZlbCBWb2x0aGEgQVBJIGRlZmluaXRpb24KCiBGb3IgZGV0YWlscywgc2VlIGluZGl2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