CuEsChlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvEg9nb29nbGUucHJvdG9idWYiNgoDQW55EhkKCHR5cGVfdXJsGAEgASgJUgd0eXBlVXJsEhQKBXZhbHVlGAIgASgMUgV2YWx1ZUJvChNjb20uZ29vZ2xlLnByb3RvYnVmQghBbnlQcm90b1ABWiVnaXRodWIuY29tL2dvbGFuZy9wcm90b2J1Zi9wdHlwZXMvYW55ogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSoErCgcSBR4AmgEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgA7CgkKAgglEgMiADsKCAoBCBIDIwA8CgkKAggLEgMjADwKCAoBCBIDJAAsCgkKAggBEgMkACwKCAoBCBIDJQApCgkKAggIEgMlACkKCAoBCBIDJgAiCgkKAggKEgMmACIKCAoBCBIDJwAhCgkKAggkEgMnACEK5BAKAgQAEgV5AJoBARrWECBgQW55YCBjb250YWlucyBhbiBhcmJpdHJhcnkgc2VyaWFsaXplZCBwcm90b2NvbCBidWZmZXIgbWVzc2FnZSBhbG9uZyB3aXRoIGEKIFVSTCB0aGF0IGRlc2NyaWJlcyB0aGUgdHlwZSBvZiB0aGUgc2VyaWFsaXplZCBtZXNzYWdlLgoKIFByb3RvYnVmIGxpYnJhcnkgcHJvdmlkZXMgc3VwcG9ydCB0byBwYWNrL3VucGFjayBBbnkgdmFsdWVzIGluIHRoZSBmb3JtCiBvZiB1dGlsaXR5IGZ1bmN0aW9ucyBvciBhZGRpdGlvbmFsIGdlbmVyYXRlZCBtZXRob2RzIG9mIHRoZSBBbnkgdHlwZS4KCiBFeGFtcGxlIDE6IFBhY2sgYW5kIHVucGFjayBhIG1lc3NhZ2UgaW4gQysrLgoKICAgICBGb28gZm9vID0gLi4uOwogICAgIEFueSBhbnk7CiAgICAgYW55LlBhY2tGcm9tKGZvbyk7CiAgICAgLi4uCiAgICAgaWYgKGFueS5VbnBhY2tUbygmZm9vKSkgewogICAgICAgLi4uCiAgICAgfQoKIEV4YW1wbGUgMjogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBKYXZhLgoKICAgICBGb28gZm9vID0gLi4uOwogICAgIEFueSBhbnkgPSBBbnkucGFjayhmb28pOwogICAgIC4uLgogICAgIGlmIChhbnkuaXMoRm9vLmNsYXNzKSkgewogICAgICAgZm9vID0gYW55LnVucGFjayhGb28uY2xhc3MpOwogICAgIH0KCiAgRXhhbXBsZSAzOiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIFB5dGhvbi4KCiAgICAgZm9vID0gRm9vKC4uLikKICAgICBhbnkgPSBBbnkoKQogICAgIGFueS5QYWNrKGZvbykKICAgICAuLi4KICAgICBpZiBhbnkuSXMoRm9vLkRFU0NSSVBUT1IpOgogICAgICAgYW55LlVucGFjayhmb28pCiAgICAgICAuLi4KCiAgRXhhbXBsZSA0OiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIEdvCgogICAgICBmb28gOj0gJnBiLkZvb3suLi59CiAgICAgIGFueSwgZXJyIDo9IHB0eXBlcy5NYXJzaGFsQW55KGZvbykKICAgICAgLi4uCiAgICAgIGZvbyA6PSAmcGIuRm9ve30KICAgICAgaWYgZXJyIDo9IHB0eXBlcy5Vbm1hcnNoYWxBbnkoYW55LCBmb28pOyBlcnIgIT0gbmlsIHsKICAgICAgICAuLi4KICAgICAgfQoKIFRoZSBwYWNrIG1ldGhvZHMgcHJvdmlkZWQgYnkgcHJvdG9idWYgbGlicmFyeSB3aWxsIGJ5IGRlZmF1bHQgdXNlCiAndHlwZS5nb29nbGVhcGlzLmNvbS9mdWxsLnR5cGUubmFtZScgYXMgdGhlIHR5cGUgVVJMIGFuZCB0aGUgdW5wYWNrCiBtZXRob2RzIG9ubHkgdXNlIHRoZSBmdWxseSBxdWFsaWZpZWQgdHlwZSBuYW1lIGFmdGVyIHRoZSBsYXN0ICcvJwogaW4gdGhlIHR5cGUgVVJMLCBmb3IgZXhhbXBsZSAiZm9vLmJhci5jb20veC95LnoiIHdpbGwgeWllbGQgdHlwZQogbmFtZSAieS56Ii4KCgogSlNPTgogPT09PQogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgYW4gYEFueWAgdmFsdWUgdXNlcyB0aGUgcmVndWxhcgogcmVwcmVzZW50YXRpb24gb2YgdGhlIGRlc2VyaWFsaXplZCwgZW1iZWRkZWQgbWVzc2FnZSwgd2l0aCBhbgogYWRkaXRpb25hbCBmaWVsZCBgQHR5cGVgIHdoaWNoIGNvbnRhaW5zIHRoZSB0eXBlIFVSTC4gRXhhbXBsZToKCiAgICAgcGFja2FnZSBnb29nbGUucHJvZmlsZTsKICAgICBtZXNzYWdlIFBlcnNvbiB7CiAgICAgICBzdHJpbmcgZmlyc3RfbmFtZSA9IDE7CiAgICAgICBzdHJpbmcgbGFzdF9uYW1lID0gMjsKICAgICB9CgogICAgIHsKICAgICAgICJAdHlwZSI6ICJ0eXBlLmdvb2dsZWFwaXMuY29tL2dvb2dsZS5wcm9maWxlLlBlcnNvbiIsCiAgICAgICAiZmlyc3ROYW1lIjogPHN0cmluZz4sCiAgICAgICAibGFzdE5hbWUiOiA8c3RyaW5nPgogICAgIH0KCiBJZiB0aGUgZW1iZWRkZWQgbWVzc2FnZSB0eXBlIGlzIHdlbGwta25vd24gYW5kIGhhcyBhIGN1c3RvbSBKU09OCiByZXByZXNlbnRhdGlvbiwgdGhhdCByZXByZXNlbnRhdGlvbiB3aWxsIGJlIGVtYmVkZGVkIGFkZGluZyBhIGZpZWxkCiBgdmFsdWVgIHdoaWNoIGhvbGRzIHRoZSBjdXN0b20gSlNPTiBpbiBhZGRpdGlvbiB0byB0aGUgYEB0eXBlYAogZmllbGQuIEV4YW1wbGUgKGZvciBtZXNzYWdlIFtnb29nbGUucHJvdG9idWYuRHVyYXRpb25dW10pOgoKICAgICB7CiAgICAgICAiQHR5cGUiOiAidHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucHJvdG9idWYuRHVyYXRpb24iLAogICAgICAgInZhbHVlIjogIjEuMjEycyIKICAgICB9CgoKCgoDBAABEgN5CAsK1woKBAQAAgASBJYBAhYayAogQSBVUkwvcmVzb3VyY2UgbmFtZSB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIHR5cGUgb2YgdGhlIHNlcmlhbGl6ZWQKIHByb3RvY29sIGJ1ZmZlciBtZXNzYWdlLiBUaGlzIHN0cmluZyBtdXN0IGNvbnRhaW4gYXQgbGVhc3QKIG9uZSAiLyIgY2hhcmFjdGVyLiBUaGUgbGFzdCBzZWdtZW50IG9mIHRoZSBVUkwncyBwYXRoIG11c3QgcmVwcmVzZW50CiB0aGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIHR5cGUgKGFzIGluCiBgcGF0aC9nb29nbGUucHJvdG9idWYuRHVyYXRpb25gKS4gVGhlIG5hbWUgc2hvdWxkIGJlIGluIGEgY2Fub25pY2FsIGZvcm0KIChlLmcuLCBsZWFkaW5nICIuIiBpcyBub3QgYWNjZXB0ZWQpLgoKIEluIHByYWN0aWNlLCB0ZWFtcyB1c3VhbGx5IHByZWNvbXBpbGUgaW50byB0aGUgYmluYXJ5IGFsbCB0eXBlcyB0aGF0IHRoZXkKIGV4cGVjdCBpdCB0byB1c2UgaW4gdGhlIGNvbnRleHQgb2YgQW55LiBIb3dldmVyLCBmb3IgVVJMcyB3aGljaCB1c2UgdGhlCiBzY2hlbWUgYGh0dHBgLCBgaHR0cHNgLCBvciBubyBzY2hlbWUsIG9uZSBjYW4gb3B0aW9uYWxseSBzZXQgdXAgYSB0eXBlCiBzZXJ2ZXIgdGhhdCBtYXBzIHR5cGUgVVJMcyB0byBtZXNzYWdlIGRlZmluaXRpb25zIGFzIGZvbGxvd3M6CgogKiBJZiBubyBzY2hlbWUgaXMgcHJvdmlkZWQsIGBodHRwc2AgaXMgYXNzdW1lZC4KICogQW4gSFRUUCBHRVQgb24gdGhlIFVSTCBtdXN0IHlpZWxkIGEgW2dvb2dsZS5wcm90b2J1Zi5UeXBlXVtdCiAgIHZhbHVlIGluIGJpbmFyeSBmb3JtYXQsIG9yIHByb2R1Y2UgYW4gZXJyb3IuCiAqIEFwcGxpY2F0aW9ucyBhcmUgYWxsb3dlZCB0byBjYWNoZSBsb29rdXAgcmVzdWx0cyBiYXNlZCBvbiB0aGUKICAgVVJMLCBvciBoYXZlIHRoZW0gcHJlY29tcGlsZWQgaW50byBhIGJpbmFyeSB0byBhdm9pZCBhbnkKICAgbG9va3VwLiBUaGVyZWZvcmUsIGJpbmFyeSBjb21wYXRpYmlsaXR5IG5lZWRzIHRvIGJlIHByZXNlcnZlZAogICBvbiBjaGFuZ2VzIHRvIHR5cGVzLiAoVXNlIHZlcnNpb25lZCB0eXBlIG5hbWVzIHRvIG1hbmFnZQogICBicmVha2luZyBjaGFuZ2VzLikKCiBOb3RlOiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgbm90IGN1cnJlbnRseSBhdmFpbGFibGUgaW4gdGhlIG9mZmljaWFsCiBwcm90b2J1ZiByZWxlYXNlLCBhbmQgaXQgaXMgbm90IHVzZWQgZm9yIHR5cGUgVVJMcyBiZWdpbm5pbmcgd2l0aAogdHlwZS5nb29nbGVhcGlzLmNvbS4KCiBTY2hlbWVzIG90aGVyIHRoYW4gYGh0dHBgLCBgaHR0cHNgIChvciB0aGUgZW1wdHkgc2NoZW1lKSBtaWdodCBiZQogdXNlZCB3aXRoIGltcGxlbWVudGF0aW9uIHNwZWNpZmljIHNlbWFudGljcy4KCgoOCgUEAAIABBIFlgECeQ0KDQoFBAACAAUSBJYBAggKDQoFBAACAAESBJYBCREKDQoFBAACAAMSBJYBFBUKVwoEBAACARIEmQECEhpJIE11c3QgYmUgYSB2YWxpZCBzZXJpYWxpemVkIHByb3RvY29sIGJ1ZmZlciBvZiB0aGUgYWJvdmUgc3BlY2lmaWVkIHR5cGUuCgoPCgUEAAIBBBIGmQEClgEWCg0KBQQAAgEFEgSZAQIHCg0KBQQAAgEBEgSZAQgNCg0KBQQAAgEDEgSZARARYgZwcm90bzMKxBEKG3ZvbHRoYV9wcm90b3MvYWRhcHRlci5wcm90bxIHYWRhcHRlchoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90byJSCg1BZGFwdGVyQ29uZmlnEkEKEWFkZGl0aW9uYWxfY29uZmlnGEAgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIQYWRkaXRpb25hbENvbmZpZyKjAwoHQWRhcHRlchIOCgJpZBgBIAEoCVICaWQSFgoGdmVuZG9yGAIgASgJUgZ2ZW5kb3ISGAoHdmVyc2lvbhgDIAEoCVIHdmVyc2lvbhIuCgZjb25maWcYECABKAsyFi5hZGFwdGVyLkFkYXB0ZXJDb25maWdSBmNvbmZpZxJLChZhZGRpdGlvbmFsX2Rlc2NyaXB0aW9uGEAgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIVYWRkaXRpb25hbERlc2NyaXB0aW9uEiwKEmxvZ2ljYWxfZGV2aWNlX2lkcxgEIAMoCVIQbG9naWNhbERldmljZUlkcxItChJsYXN0X2NvbW11bmljYXRpb24YBSABKANSEWxhc3RDb21tdW5pY2F0aW9uEiYKDmN1cnJlbnRSZXBsaWNhGAYgASgFUg5jdXJyZW50UmVwbGljYRIkCg10b3RhbFJlcGxpY2FzGAcgASgFUg10b3RhbFJlcGxpY2FzEhoKCGVuZHBvaW50GAggASgJUghlbmRwb2ludBISCgR0eXBlGAkgASgJ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dWYvcHR5cGVzL2VtcHR5+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSv4QCgYSBB4AMxAKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiADsKCQoCCCUSAyIAOwoICgEIEgMjAD4KCQoCCAsSAyMAPgoICgEIEgMkACwKCQoCCAESAyQALAoICgEIEgMlACsKCQoCCAgSAyUAKwoICgEIEgMmACIKCQoCCAoSAyYAIgoICgEIEgMnACEKCQoCCCQSAycAIQoICgEIEgMoAB8KCQoCCB8SAygAHwr7AgoCBAASAzMAEBrvAiBBIGdlbmVyaWMgZW1wdHkgbWVzc2FnZSB0aGF0IHlvdSBjYW4gcmUtdXNlIHRvIGF2b2lkIGRlZmluaW5nIGR1cGxpY2F0ZWQKIGVtcHR5IG1lc3NhZ2VzIGluIHlvdXIgQVBJcy4gQSB0eXBpY2FsIGV4YW1wbGUgaXMgdG8gdXNlIGl0IGFzIHRoZSByZXF1ZXN0CiBvciB0aGUgcmVzcG9uc2UgdHlwZSBvZiBhbiBBUEkgbWV0aG9kLiBGb3IgaW5zdGFuY2U6CgogICAgIHNlcnZpY2UgRm9vIHsKICAgICAgIHJwYyBCYXIoZ29vZ2xlLnByb3RvYnVmLkVtcHR5KSByZXR1cm5zIChnb29nbGUucHJvdG9idWYuRW1wdHkpOwogICAgIH0KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYEVtcHR5YCBpcyBlbXB0eSBKU09OIG9iamVjdCBge31gLgoKCgoDBAABEgMzCA1iBnByb3RvMwqeIQoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8SBmNvbW1vbiIXCgNLZXkSEAoDa2V5GAEgASgJUgNrZXkiFAoCSUQSDgoCaWQYASABKAlSAmlkIicKA0lEcxIgCgVpdGVtcxgBIAMoCzIKLmNvbW1vbi5JRFIFaXRlbXMiegoKQ29ubmVjdGlvbhIaCghlbmRwb2ludBgBIAEoCVIIZW5kcG9pbnQSIAoLY29udGV4dEluZm8YAiABKAlSC2NvbnRleHRJbmZvEi4KE2tlZXBfYWxpdmVfaW50ZXJ2YWwYAyABKANSEWtlZXBBbGl2ZUludGVydmFsImgKCkFkbWluU3RhdGUiWgoFVHlwZXMSCwoHVU5LTk9XThAAEhIKDlBSRVBST1ZJU0lPTkVEEAESCwoHRU5BQkxFRBACEgwKCERJU0FCTEVEEAMSFQoRRE9XTkxPQURJTkdfSU1BR0UQBCKfAQoKT3BlclN0YXR1cyKQAQoFVHlwZXMSCwoHVU5LTk9XThAAEg4KCkRJU0NPVkVSRUQQARIOCgpBQ1RJVkFUSU5HEAISCwoHVEVTVElORxADEgoKBkFDVElWRRAEEgoKBkZB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HQoOCgcEBwQAAgMCEgNyICEKGgoEBAcCABIDdQQhGg0gUmV0dXJuIGNvZGUKCg0KBQQHAgAEEgR1BHMFCgwKBQQHAgAGEgN1BBcKDAoFBAcCAAESA3UYHAoMCgUEBwIAAxIDdR8gCh4KBAQHAgESA3gEHxoRIEFkZGl0aW9uYWwgSW5mbwoKDQoFBAcCAQQSBHgEdSEKDAoFBAcCAQUSA3gECgoMCgUEBwIBARIDeAsaCgwKBQQHAgEDEgN4HR5iBnByb3RvMwrGeQoVZ29vZ2xlL2FwaS9odHRwLnByb3RvEgpnb29nbGUuYXBpInkKBEh0dHASKgoFcnVsZXMYASADKAsyFC5nb29nbGUuYXBpLkh0dHBSdWxlUgVydWxlcxJFCh9mdWxseV9kZWNvZGVfcmVzZXJ2ZWRfZXhwYW5zaW9uGAIgASgIUhxmdWxseURlY29kZVJlc2VydmVkRXhwYW5zaW9uItoCCghIdHRwUnVsZRIaCghzZWxlY3RvchgBIAEoCVIIc2VsZWN0b3ISEgoDZ2V0GAIgASgJSABSA2dldBISCgNwdXQYAyABKAlIAFIDcHV0EhQKBHBvc3QYBCABKAlIAFIEcG9zdBIYCgZkZWxldGUYBSABKAlIAFIGZGVsZXRlEhYKBXBhdGNoGAYgASgJSABSBXBhdGNoEjcKBmN1c3RvbRgIIAEoCzIdLmdvb2dsZS5hcGkuQ3VzdG9tSHR0cFBhdHRlcm5IAFIGY3VzdG9tEhIKBGJvZHkYByABKAlSBGJvZHkSIwoNcmVzcG9uc2VfYm9keRgMIAEoCVIMcmVzcG9uc2VCb2R5EkUKE2FkZGl0aW9uYWxfYmluZGluZ3MYCyADKAsyFC5nb29nbGUuYXBpLkh0dHBSdWxlUhJhZGRpdGlvbmFsQmluZGluZ3NCCQoHcGF0dGVybiI7ChFDdXN0b21IdHRwUGF0dGVybhISCgRraW5kGAEgASgJUgRraW5kEhIKBHBhdGgYAiABKAlSBHBhdGhCagoOY29tLmdvb2dsZS5hcGlCCUh0dHBQcm90b1ABWkFnb29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9nb29nbGVhcGlzL2FwaS9hbm5vdGF0aW9uczthbm5vdGF0aW9uc/gBAaICBEdBUElKl3QKBxIFDwD7AgEKvgQKAQwSAw8AEjKzBCBDb3B5cmlnaHQgMjAxOCBHb29nbGUgTExDLgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKCggKAQISAxEAEwoICgEIEgMTAB8KCQoCCB8SAxMAHwoICgEIEgMUAFgKCQoCCAsSAxQAWAoICgEIEgMVACIKCQoCCAoSAxUAIgoICgEIEgMWACoKCQoCCAgSAxYAKgoICgEIEgMXACcKCQoCCAESAxcAJwoICgEIEgMYACIKCQoCCCQSAxgAIgrNAQoCBAASBB0AKgEawAEgRGVmaW5lcyB0aGUgSFRUUCBjb25maWd1cmF0aW9uIGZvciBhbiBBUEkgc2VydmljZS4gSXQgY29udGFpbnMgYSBsaXN0IG9mCiBbSHR0cFJ1bGVdW2dvb2dsZS5hcGkuSHR0cFJ1bGVdLCBlYWNoIHNwZWNpZnlpbmcgdGhlIG1hcHBpbmcgb2YgYW4gUlBDIG1ldGhvZAogdG8gb25lIG9yIG1vcmUgSFRUUCBSRVNUIEFQSSBtZXRob2RzLgoKCgoDBAABEgMdCAwKogEKBAQAAgASAyECHhqUASBBIGxpc3Qgb2YgSFRUUCBjb25maWd1cmF0aW9uIHJ1bGVzIHRoYXQgYXBwbHkgdG8gaW5kaXZpZHVhbCBBUEkgbWV0aG9kcy4KCiAqKk5PVEU6KiogQWxsIHNlcnZpY2UgY29uZmlndXJhdGlvbiBydWxlcyBmb2xsb3cgImxhc3Qgb25lIHdpbnMiIG9yZGVyLgoKDAoFBAACAAQSAyECCgoMCgUEAAIABhIDIQsTCgwKBQQAAgABEgMhFBkKDAoFBAACAAMSAyEcHQqTAgoEBAACARIDKQIrGoUCIFdoZW4gc2V0IHRvIHRydWUsIFVSTCBwYXRoIHBhcm1ldGVycyB3aWxsIGJlIGZ1bGx5IFVSSS1kZWNvZGVkIGV4Y2VwdCBpbgogY2FzZXMgb2Ygc2luZ2xlIHNlZ21lbnQgbWF0Y2hlcyBpbiByZXNlcnZlZCBleHBhbnNpb24sIHdoZXJlICIlMkYiIHdpbGwgYmUKIGxlZnQgZW5jb2RlZC4KCiBUaGUgZGVmYXVsdCBiZWhhdmlvciBpcyB0byBub3QgZGVjb2RlIFJGQyA2NTcwIHJlc2VydmVkIGNoYXJhY3RlcnMgaW4gbXVsdGkKIHNlZ21lbnQgbWF0Y2hlcy4KCg0KBQQAAgEEEgQpAiEeCgwKBQQAAgEFEgMpAgYKDAoFBAACAQESAykHJgoMCgUEAAIBAxIDKSkqCrtTCgIEARIGvAIA8gIBGqxTICMgZ1JQQyBUcmFuc2NvZGluZwoKIGdSUEMgVHJhbnNjb2RpbmcgaXMgYSBmZWF0dXJlIGZvciBtYXBwaW5nIGJldHdlZW4gYSBnUlBDIG1ldGhvZCBhbmQgb25lIG9yCiBtb3JlIEhUVFAgUkVTVCBlbmRwb2ludHMuIEl0IGFsbG93cyBkZXZlbG9wZXJzIHRvIGJ1aWxkIGEgc2luZ2xlIEFQSSBzZXJ2aWNlCiB0aGF0IHN1cHBvcnRzIGJvdGggZ1JQQyBBUElzIGFuZCBSRVNUIEFQSXMuIE1hbnkgc3lzdGVtcywgaW5jbHVkaW5nIFtHb29nbGUKIEFQSXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGVhcGlzL2dvb2dsZWFwaXMpLAogW0Nsb3VkIEVuZHBvaW50c10oaHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL2VuZHBvaW50cyksIFtnUlBDCiBHYXRld2F5XShodHRwczovL2dpdGh1Yi5jb20vZ3JwYy1lY29zeXN0ZW0vZ3JwYy1nYXRld2F5KSwKIGFuZCBbRW52b3ldKGh0dHBzOi8vZ2l0aHViLmNvbS9lbnZveXByb3h5L2Vudm95KSBwcm94eSBzdXBwb3J0IHRoaXMgZmVhdHVyZQogYW5kIHVzZSBpdCBmb3IgbGFyZ2Ugc2NhbGUgcHJvZHVjdGlvbiBzZXJ2aWNlcy4KCiBgSHR0cFJ1bGVgIGRlZmluZXMgdGhlIHNjaGVtYSBvZiB0aGUgZ1JQQy9SRVNUIG1hcHBpbmcuIFRoZSBtYXBwaW5nIHNwZWNpZmllcwogaG93IGRpZmZlcmVudCBwb3J0aW9ucyBvZiB0aGUgZ1JQQyByZXF1ZXN0IG1lc3NhZ2UgYXJlIG1hcHBlZCB0byB0aGUgVVJMCiBwYXRoLCBVUkwgcXVlcnkgcGFyYW1ldGVycywgYW5kIEhUVFAgcmVxdWVzdCBib2R5LiBJdCBhbHNvIGNvbnRyb2xzIGhvdyB0aGUKIGdSUEMgcmVzcG9uc2UgbWVzc2FnZSBpcyBtYXBwZWQgdG8gdGhlIEhUVFAgcmVzcG9uc2UgYm9keS4gYEh0dHBSdWxlYCBpcwogdHlwaWNhbGx5IHNwZWNpZmllZCBhcyBhbiBgZ29vZ2xlLmFwaS5odHRwYCBhbm5vdGF0aW9uIG9uIHRoZSBnUlBDIG1ldGhvZC4KCiBFYWNoIG1hcHBpbmcgc3BlY2lmaWVzIGEgVVJMIHBhdGggdGVtcGxhdGUgYW5kIGFuIEhUVFAgbWV0aG9kLiBUaGUgcGF0aAogdGVtcGxhdGUgbWF5IHJlZmVyIHRvIG9uZSBvciBtb3JlIGZpZWxkcyBpbiB0aGUgZ1JQQyByZXF1ZXN0IG1lc3NhZ2UsIGFzIGxvbmcKIGFzIGVhY2ggZmllbGQgaXMgYSBub24tcmVwZWF0ZWQgZmllbGQgd2l0aCBhIHByaW1pdGl2ZSAobm9uLW1lc3NhZ2UpIHR5cGUuCiBUaGUgcGF0aCB0ZW1wbGF0ZSBjb250cm9scyBob3cgZmllbGRzIG9mIHRoZSByZXF1ZXN0IG1lc3NhZ2UgYXJlIG1hcHBlZCB0bwogdGhlIFVSTCBwYXRoLgoKIEV4YW1wbGU6CgogICAgIHNlcnZpY2UgTWVzc2FnaW5nIHsKICAgICAgIHJwYyBHZXRNZXNzYWdlKEdldE1lc3NhZ2VSZXF1ZXN0KSByZXR1cm5zIChNZXNzYWdlKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKSA9IHsKICAgICAgICAgICAgIGdldDogIi92MS97bmFtZT1tZXNzYWdlcy8qfSIKICAgICAgICAgfTsKICAgICAgIH0KICAgICB9CiAgICAgbWVzc2FnZSBHZXRNZXNzYWdlUmVxdWVzdCB7CiAgICAgICBzdHJpbmcgbmFtZSA9IDE7IC8vIE1hcHBlZCB0byBVUkwgcGF0aC4KICAgICB9CiAgICAgbWVzc2FnZSBNZXNzYWdlIHsKICAgICAgIHN0cmluZyB0ZXh0ID0gMTsgLy8gVGhlIHJlc291cmNlIGNvbnRlbnQuCiAgICAgfQoKIFRoaXMgZW5hYmxlcyBhbiBIVFRQIFJFU1QgdG8gZ1JQQyBtYXBwaW5nIGFzIGJlbG93OgoKIEhUVFAgfCBnUlBDCiAtLS0tLXwtLS0tLQogYEdFVCAvdjEvbWVzc2FnZXMvMTIzNDU2YCAgfCBgR2V0TWVzc2FnZShuYW1lOiAibWVzc2FnZXMvMTIzNDU2IilgCgogQW55IGZpZWxkcyBpbiB0aGUgcmVxdWVzdCBtZXNzYWdlIHdoaWNoIGFyZSBub3QgYm91bmQgYnkgdGhlIHBhdGggdGVtcGxhdGUKIGF1dG9tYXRpY2FsbHkgYmVjb21lIEhUVFAgcXVlcnkgcGFyYW1ldGVycyBpZiB0aGVyZSBpcyBubyBIVFRQIHJlcXVlc3QgYm9keS4KIEZvciBleGFtcGxlOgoKICAgICBzZXJ2aWNlIE1lc3NhZ2luZyB7CiAgICAgICBycGMgR2V0TWVzc2FnZShHZXRNZXNzYWdlUmVxdWVzdCkgcmV0dXJucyAoTWVzc2FnZSkgewogICAgICAgICBvcHRpb24gKGdvb2dsZS5hcGkuaHR0cCkgPSB7CiAgICAgICAgICAgICBnZXQ6Ii92MS9tZXNzYWdlcy97bWVzc2FnZV9pZH0iCiAgICAgICAgIH07CiAgICAgICB9CiAgICAgfQogICAgIG1lc3NhZ2UgR2V0TWVzc2FnZVJlcXVlc3QgewogICAgICAgbWVzc2FnZSBTdWJNZXNzYWdlIHsKICAgICAgICAgc3RyaW5nIHN1YmZpZWxkID0gMTsKICAgICAgIH0KICAgICAgIHN0cmluZyBtZXNzYWdlX2lkID0gMTsgLy8gTWFwcGVkIHRvIFVSTCBwYXRoLgogICAgICAgaW50NjQgcmV2aXNpb24gPSAyOyAgICAvLyBNYXBwZWQgdG8gVVJMIHF1ZXJ5IHBhcmFtZXRlciBgcmV2aXNpb25gLgogICAgICAgU3ViTWVzc2FnZSBzdWIgPSAzOyAgICAvLyBNYXBwZWQgdG8gVVJMIHF1ZXJ5IHBhcmFtZXRlciBgc3ViLnN1YmZpZWxkYC4KICAgICB9CgogVGhpcyBlbmFibGVzIGEgSFRUUCBKU09OIHRvIFJQQyBtYXBwaW5nIGFzIGJlbG93OgoKIEhUVFAgfCBnUlBDCiAtLS0tLXwtLS0tLQogYEdFVCAvdjEvbWVzc2FnZXMvMTIzNDU2P3JldmlzaW9uPTImc3ViLnN1YmZpZWxkPWZvb2AgfAogYEdldE1lc3NhZ2UobWVzc2FnZV9pZDogIjEyMzQ1NiIgcmV2aXNpb246IDIgc3ViOiBTdWJNZXNzYWdlKHN1YmZpZWxkOgogImZvbyIpKWAKCiBOb3RlIHRoYXQgZmllbGRzIHdoaWNoIGFyZSBtYXBwZWQgdG8gVVJMIHF1ZXJ5IHBhcmFtZXRlcnMgbXVzdCBoYXZlIGEKIHByaW1pdGl2ZSB0eXBlIG9yIGEgcmVwZWF0ZWQgcHJpbWl0aXZlIHR5cGUgb3IgYSBub24tcmVwZWF0ZWQgbWVzc2FnZSB0eXBlLgogSW4gdGhlIGNhc2Ugb2YgYSByZXBlYXRlZCB0eXBlLCB0aGUgcGFyYW1ldGVyIGNhbiBiZSByZXBlYXRlZCBpbiB0aGUgVVJMCiBhcyBgLi4uP3BhcmFtPUEmcGFyYW09QmAuIEluIHRoZSBjYXNlIG9mIGEgbWVzc2FnZSB0eXBlLCBlYWNoIGZpZWxkIG9mIHRoZQogbWVzc2FnZSBpcyBtYXBwZWQgdG8gYSBzZXBhcmF0ZSBwYXJhbWV0ZXIsIHN1Y2ggYXMKIGAuLi4/Zm9vLmE9QSZmb28uYj1CJmZvby5jPUNgLgoKIEZvciBIVFRQIG1ldGhvZHMgdGhhdCBhbGxvdyBhIHJlcXVlc3QgYm9keSwgdGhlIGBib2R5YCBmaWVsZAogc3BlY2lmaWVzIHRoZSBtYXBwaW5nLiBDb25zaWRlciBhIFJFU1QgdXBkYXRlIG1ldGhvZCBvbiB0aGUKIG1lc3NhZ2UgcmVzb3VyY2UgY29sbGVjdGlvbjoKCiAgICAgc2VydmljZSBNZXNzYWdpbmcgewogICAgICAgcnBjIFVwZGF0ZU1lc3NhZ2UoVXBkYXRlTWVzc2FnZVJlcXVlc3QpIHJldHVybnMgKE1lc3NhZ2UpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApID0gewogICAgICAgICAgIHBhdGNoOiAiL3YxL21lc3NhZ2VzL3ttZXNzYWdlX2lkfSIKICAgICAgICAgICBib2R5OiAibWVzc2FnZSIKICAgICAgICAgfTsKICAgICAgIH0KICAgICB9CiAgICAgbWVzc2FnZSBVcGRhdGVNZXNzYWdlUmVxdWVzdCB7CiAgICAgICBzdHJpbmcgbWVzc2FnZV9pZCA9IDE7IC8vIG1hcHBlZCB0byB0aGUgVVJMCiAgICAgICBNZXNzYWdlIG1lc3NhZ2UgPSAyOyAgIC8vIG1hcHBlZCB0byB0aGUgYm9keQogICAgIH0KCiBUaGUgZm9sbG93aW5nIEhUVFAgSlNPTiB0byBSUEMgbWFwcGluZyBpcyBlbmFibGVkLCB3aGVyZSB0aGUKIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBKU09OIGluIHRoZSByZXF1ZXN0IGJvZHkgaXMgZGV0ZXJtaW5lZCBieQogcHJvdG9zIEpTT04gZW5jb2Rpbmc6CgogSFRUUCB8IGdSUEMKIC0tLS0tfC0tLS0tCiBgUEFUQ0ggL3YxL21lc3NhZ2VzLzEyMzQ1NiB7ICJ0ZXh0IjogIkhpISIgfWAgfCBgVXBkYXRlTWVzc2FnZShtZXNzYWdlX2lkOgogIjEyMzQ1NiIgbWVzc2FnZSB7IHRleHQ6ICJIaSEiIH0pYAoKIFRoZSBzcGVjaWFsIG5hbWUgYCpgIGNhbiBiZSB1c2VkIGluIHRoZSBib2R5IG1hcHBpbmcgdG8gZGVmaW5lIHRoYXQKIGV2ZXJ5IGZpZWxkIG5vdCBib3VuZCBieSB0aGUgcGF0aCB0ZW1wbGF0ZSBzaG91bGQgYmUgbWFwcGVkIHRvIHRoZQogcmVxdWVzdCBib2R5LiAgVGhpcyBlbmFibGVzIHRoZSBmb2xsb3dpbmcgYWx0ZXJuYXRpdmUgZGVmaW5pdGlvbiBvZgogdGhlIHVwZGF0ZSBtZXRob2Q6CgogICAgIHNlcnZpY2UgTWVzc2FnaW5nIHsKICAgICAgIHJwYyBVcGRhdGVNZXNzYWdlKE1lc3NhZ2UpIHJldHVybnMgKE1lc3NhZ2UpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApID0gewogICAgICAgICAgIHBhdGNoOiAiL3YxL21lc3NhZ2VzL3ttZXNzYWdlX2lkfSIKICAgICAgICAgICBib2R5OiAiKiIKICAgICAgICAgfTsKICAgICAgIH0KICAgICB9CiAgICAgbWVzc2FnZSBNZXNzYWdlIHsKICAgICAgIHN0cmluZyBtZXNzYWdlX2lkID0gMTsKICAgICAgIHN0cmluZyB0ZXh0ID0gMjsKICAgICB9CgoKIFRoZSBmb2xsb3dpbmcgSFRUUCBKU09OIHRvIFJQQyBtYXBwaW5nIGlzIGVuYWJsZWQ6CgogSFRUUCB8IGdSUEMKIC0tLS0tfC0tLS0tCiBgUEFUQ0ggL3YxL21lc3NhZ2VzLzEyMzQ1NiB7ICJ0ZXh0IjogIkhpISIgfWAgfCBgVXBkYXRlTWVzc2FnZShtZXNzYWdlX2lkOgogIjEyMzQ1NiIgdGV4dDogIkhpISIpYAoKIE5vdGUgdGhhdCB3aGVuIHVzaW5nIGAqYCBpbiB0aGUgYm9keSBtYXBwaW5nLCBpdCBpcyBub3QgcG9zc2libGUgdG8KIGhhdmUgSFRUUCBwYXJhbWV0ZXJzLCBhcyBhbGwgZmllbGRzIG5vdCBib3VuZCBieSB0aGUgcGF0aCBlbmQgaW4KIHRoZSBib2R5LiBUaGlzIG1ha2VzIHRoaXMgb3B0aW9uIG1vcmUgcmFyZWx5IHVzZWQgaW4gcHJhY3RpY2Ugd2hlbgogZGVmaW5pbmcgUkVTVCBBUElzLiBUaGUgY29tbW9uIHVzYWdlIG9mIGAqYCBpcyBpbiBjdXN0b20gbWV0aG9kcwogd2hpY2ggZG9uJ3QgdXNlIHRoZSBVUkwgYXQgYWxsIGZvciB0cmFuc2ZlcnJpbmcgZGF0YS4KCiBJdCBpcyBwb3NzaWJsZSB0byBkZWZpbmUgbXVsdGlwbGUgSFRUUCBtZXRob2RzIGZvciBvbmUgUlBDIGJ5IHVzaW5nCiB0aGUgYGFkZGl0aW9uYWxfYmluZGluZ3NgIG9wdGlvbi4gRXhhbXBsZToKCiAgICAgc2VydmljZSBNZXNzYWdpbmcgewogICAgICAgcnBjIEdldE1lc3NhZ2UoR2V0TWVzc2FnZVJlcXVlc3QpIHJldHVybnMgKE1lc3NhZ2UpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApID0gewogICAgICAgICAgIGdldDogIi92MS9tZXNzYWdlcy97bWVzc2FnZV9pZH0iCiAgICAgICAgICAgYWRkaXRpb25hbF9iaW5kaW5ncyB7CiAgICAgICAgICAgICBnZXQ6ICIvdjEvdXNlcnMve3VzZXJfaWR9L21lc3NhZ2VzL3ttZXNzYWdlX2lkfSIKICAgICAgICAgICB9CiAgICAgICAgIH07CiAgICAgICB9CiAgICAgfQogICAgIG1lc3NhZ2UgR2V0TWVzc2FnZVJlcXVlc3QgewogICAgICAgc3RyaW5nIG1lc3NhZ2VfaWQgPSAxOwogICAgICAgc3RyaW5nIHVzZXJfaWQgPSAyOwogICAgIH0KCiBUaGlzIGVuYWJsZXMgdGhlIGZvbGxvd2luZyB0d28gYWx0ZXJuYXRpdmUgSFRUUCBKU09OIHRvIFJQQyBtYXBwaW5nczoKCiBIVFRQIHwgZ1JQQwogLS0tLS18LS0tLS0KIGBHRVQgL3YxL21lc3NhZ2VzLzEyMzQ1NmAgfCBgR2V0TWVzc2FnZShtZXNzYWdlX2lkOiAiMTIzNDU2IilgCiBgR0VUIC92MS91c2Vycy9tZS9tZXNzYWdlcy8xMjM0NTZgIHwgYEdldE1lc3NhZ2UodXNlcl9pZDogIm1lIiBtZXNzYWdlX2lkOgogIjEyMzQ1NiIpYAoKICMjIFJ1bGVzIGZvciBIVFRQIG1hcHBpbmcKCiAxLiBMZWFmIHJlcXVlc3QgZmllbGRzIChyZWN1cnNpdmUgZXhwYW5zaW9uIG5lc3RlZCBtZXNzYWdlcyBpbiB0aGUgcmVxdWVzdAogICAgbWVzc2FnZSkgYXJlIGNsYXNzaWZpZWQgaW50byB0aHJlZSBjYXRlZ29yaWVzOgogICAgLSBGaWVsZHMgcmVmZXJyZWQgYnkgdGhlIHBhdGggdGVtcGxhdGUuIFRoZXkgYXJlIHBhc3NlZCB2aWEgdGhlIFVSTCBwYXRoLgogICAgLSBGaWVsZHMgcmVmZXJyZWQgYnkgdGhlIFtIdHRwUnVsZS5ib2R5XVtnb29nbGUuYXBpLkh0dHBSdWxlLmJvZHldLiBUaGV5CiAgICBhcmUgcGFzc2VkIHZpYSB0aGUgSFRUUAogICAgICByZXF1ZXN0IGJvZHkuCiAgICAtIEFsbCBvdGhlciBmaWVsZHMgYXJlIHBhc3NlZCB2aWEgdGhlIFVSTCBxdWVyeSBwYXJhbWV0ZXJzLCBhbmQgdGhlCiAgICAgIHBhcmFtZXRlciBuYW1lIGlzIHRoZSBmaWVsZCBwYXRoIGluIHRoZSByZXF1ZXN0IG1lc3NhZ2UuIEEgcmVwZWF0ZWQKICAgICAgZmllbGQgY2FuIGJlIHJlcHJlc2VudGVkIGFzIG11bHRpcGxlIHF1ZXJ5IHBhcmFtZXRlcnMgdW5kZXIgdGhlIHNhbWUKICAgICAgbmFtZS4KICAyLiBJZiBbSHR0cFJ1bGUuYm9keV1bZ29vZ2xlLmFwaS5IdHRwUnVsZS5ib2R5XSBpcyAiKiIsIHRoZXJlIGlzIG5vIFVSTAogIHF1ZXJ5IHBhcmFtZXRlciwgYWxsIGZpZWxkcwogICAgIGFyZSBwYXNzZWQgdmlhIFVSTCBwYXRoIGFuZCBIVFRQIHJlcXVlc3QgYm9keS4KICAzLiBJZiBbSHR0cFJ1bGUuYm9keV1bZ29vZ2xlLmFwaS5IdHRwUnVsZS5ib2R5XSBpcyBvbWl0dGVkLCB0aGVyZSBpcyBubyBIVFRQCiAgcmVxdWVzdCBib2R5LCBhbGwKICAgICBmaWVsZHMgYXJlIHBhc3NlZCB2aWEgVVJMIHBhdGggYW5kIFVSTCBxdWVyeSBwYXJhbWV0ZXJzLgoKICMjIyBQYXRoIHRlbXBsYXRlIHN5bnRheAoKICAgICBUZW1wbGF0ZSA9ICIvIiBTZWdtZW50cyBbIFZlcmIgXSA7CiAgICAgU2VnbWVudHMgPSBTZWdtZW50IHsgIi8iIFNlZ21lbnQgfSA7CiAgICAgU2VnbWVudCAgPSAiKiIgfCAiKioiIHwgTElURVJBTCB8IFZhcmlhYmxlIDsKICAgICBWYXJpYWJsZSA9ICJ7IiBGaWVsZFBhdGggWyAiPSIgU2VnbWVudHMgXSAifSIgOwogICAgIEZpZWxkUGF0aCA9IElERU5UIHsgIi4iIElERU5UIH0gOwogICAgIFZlcmIgICAgID0gIjoiIExJVEVSQUwgOwoKIFRoZSBzeW50YXggYCpgIG1hdGNoZXMgYSBzaW5nbGUgVVJMIHBhdGggc2VnbWVudC4gVGhlIHN5bnRheCBgKipgIG1hdGNoZXMKIHplcm8gb3IgbW9yZSBVUkwgcGF0aCBzZWdtZW50cywgd2hpY2ggbXVzdCBiZSB0aGUgbGFzdCBwYXJ0IG9mIHRoZSBVUkwgcGF0aAogZXhjZXB0IHRoZSBgVmVyYmAuCgogVGhlIHN5bnRheCBgVmFyaWFibGVgIG1hdGNoZXMgcGFydCBvZiB0aGUgVVJMIHBhdGggYXMgc3BlY2lmaWVkIGJ5IGl0cwogdGVtcGxhdGUuIEEgdmFyaWFibGUgdGVtcGxhdGUgbXVzdCBub3QgY29udGFpbiBvdGhlciB2YXJpYWJsZXMuIElmIGEgdmFyaWFibGUKIG1hdGNoZXMgYSBzaW5nbGUgcGF0aCBzZWdtZW50LCBpdHMgdGVtcGxhdGUgbWF5IGJlIG9taXR0ZWQsIGUuZy4gYHt2YXJ9YAogaXMgZXF1aXZhbGVudCB0byBge3Zhcj0qfWAuCgogVGhlIHN5bnRheCBgTElURVJBTGAgbWF0Y2hlcyBsaXRlcmFsIHRleHQgaW4gdGhlIFVSTCBwYXRoLiBJZiB0aGUgYExJVEVSQUxgCiBjb250YWlucyBhbnkgcmVzZXJ2ZWQgY2hhcmFjdGVyLCBzdWNoIGNoYXJhY3RlcnMgc2hvdWxkIGJlIHBlcmNlbnQtZW5jb2RlZAogYmVmb3JlIHRoZSBtYXRjaGluZy4KCiBJZiBhIHZhcmlhYmxlIGNvbnRhaW5zIGV4YWN0bHkgb25lIHBhdGggc2VnbWVudCwgc3VjaCBhcyBgInt2YXJ9ImAgb3IKIGAie3Zhcj0qfSJgLCB3aGVuIHN1Y2ggYSB2YXJpYWJsZSBpcyBleHBhbmRlZCBpbnRvIGEgVVJMIHBhdGggb24gdGhlIGNsaWVudAogc2lkZSwgYWxsIGNoYXJhY3RlcnMgZXhjZXB0IGBbLV8ufjAtOWEtekEtWl1gIGFyZSBwZXJjZW50LWVuY29kZWQuIFRoZQogc2VydmVyIHNpZGUgZG9lcyB0aGUgcmV2ZXJzZSBkZWNvZGluZy4gU3VjaCB2YXJpYWJsZXMgc2hvdyB1cCBpbiB0aGUKIFtEaXNjb3ZlcnkKIERvY3VtZW50XShodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9kaXNjb3ZlcnkvdjEvcmVmZXJlbmNlL2FwaXMpIGFzCiBge3Zhcn1gLgoKIElmIGEgdmFyaWFibGUgY29udGFpbnMgbXVsdGlwbGUgcGF0aCBzZWdtZW50cywgc3VjaCBhcyBgInt2YXI9Zm9vLyp9ImAKIG9yIGAie3Zhcj0qKn0iYCwgd2hlbiBzdWNoIGEgdmFyaWFibGUgaXMgZXhwYW5kZWQgaW50byBhIFVSTCBwYXRoIG9uIHRoZQogY2xpZW50IHNpZGUsIGFsbCBjaGFyYWN0ZXJzIGV4Y2VwdCBgWy1fLn4vMC05YS16QS1aXWAgYXJlIHBlcmNlbnQtZW5jb2RlZC4KIFRoZSBzZXJ2ZXIgc2lkZSBkb2VzIHRoZSByZXZlcnNlIGRlY29kaW5nLCBleGNlcHQgIiUyRiIgYW5kICIlMmYiIGFyZSBsZWZ0CiB1bmNoYW5nZWQuIFN1Y2ggdmFyaWFibGVzIHNob3cgdXAgaW4gdGhlCiBbRGlzY292ZXJ5CiBEb2N1bWVudF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vZGlzY292ZXJ5L3YxL3JlZmVyZW5jZS9hcGlzKSBhcwogYHsrdmFyfWAuCgogIyMgVXNpbmcgZ1JQQyBBUEkgU2VydmljZSBDb25maWd1cmF0aW9uCgogZ1JQQyBBUEkgU2VydmljZSBDb25maWd1cmF0aW9uIChzZXJ2aWNlIGNvbmZpZykgaXMgYSBjb25maWd1cmF0aW9uIGxhbmd1YWdlCiBmb3IgY29uZmlndXJpbmcgYSBnUlBDIHNlcnZpY2UgdG8gYmVjb21lIGEgdXNlci1mYWNpbmcgcHJvZHVjdC4gVGhlCiBzZXJ2aWNlIGNvbmZpZyBpcyBzaW1wbHkgdGhlIFlBTUwgcmVwcmVzZW50YXRpb24gb2YgdGhlIGBnb29nbGUuYXBpLlNlcnZpY2VgCiBwcm90byBtZXNzYWdlLgoKIEFzIGFuIGFsdGVybmF0aXZlIHRvIGFubm90YXRpbmcgeW91ciBwcm90byBmaWxlLCB5b3UgY2FuIGNvbmZpZ3VyZSBnUlBDCiB0cmFuc2NvZGluZyBpbiB5b3VyIHNlcnZpY2UgY29uZmlnIFlBTUwgZmlsZXMuIFlvdSBkbyB0aGlzIGJ5IHNwZWNpZnlpbmcgYQogYEh0dHBSdWxlYCB0aGF0IG1hcHMgdGhlIGdSUEMgbWV0aG9kIHRvIGEgUkVTVCBlbmRwb2ludCwgYWNoaWV2aW5nIHRoZSBzYW1lCiBlZmZlY3QgYXMgdGhlIHByb3RvIGFubm90YXRpb24uIFRoaXMgY2FuIGJlIHBhcnRpY3VsYXJseSB1c2VmdWwgaWYgeW91CiBoYXZlIGEgcHJvdG8gdGhhdCBpcyByZXVzZWQgaW4gbXVsdGlwbGUgc2VydmljZXMuIE5vdGUgdGhhdCBhbnkgdHJhbnNjb2RpbmcKIHNwZWNpZmllZCBpbiB0aGUgc2VydmljZSBjb25maWcgd2lsbCBvdmVycmlkZSBhbnkgbWF0Y2hpbmcgdHJhbnNjb2RpbmcKIGNvbmZpZ3VyYXRpb24gaW4gdGhlIHByb3RvLgoKIEV4YW1wbGU6CgogICAgIGh0dHA6CiAgICAgICBydWxlczoKICAgICAgICAgIyBTZWxlY3RzIGEgZ1JQQyBtZXRob2QgYW5kIGFwcGxpZXMgSHR0cFJ1bGUgdG8gaXQuCiAgICAgICAgIC0gc2VsZWN0b3I6IGV4YW1wbGUudjEuTWVzc2FnaW5nLkdldE1lc3NhZ2UKICAgICAgICAgICBnZXQ6IC92MS9tZXNzYWdlcy97bWVzc2FnZV9pZH0ve3N1Yi5zdWJmaWVsZH0KCiAjIyBTcGVjaWFsIG5vdGVzCgogV2hlbiBnUlBDIFRyYW5zY29kaW5nIGlzIHVzZWQgdG8gbWFwIGEgZ1JQQyB0byBKU09OIFJFU1QgZW5kcG9pbnRzLCB0aGUKIHByb3RvIHRvIEpTT04gY29udmVyc2lvbiBtdXN0IGZvbGxvdyB0aGUgW3Byb3RvMwogc3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy9kb2NzL3Byb3RvMyNqc29uKS4KCiBXaGlsZSB0aGUgc2luZ2xlIHNlZ21lbnQgdmFyaWFibGUgZm9sbG93cyB0aGUgc2VtYW50aWNzIG9mCiBbUkZDIDY1NzBdKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NTcwKSBTZWN0aW9uIDMuMi4yIFNpbXBsZSBTdHJpbmcKIEV4cGFuc2lvbiwgdGhlIG11bHRpIHNlZ21lbnQgdmFyaWFibGUgKipkb2VzIG5vdCoqIGZvbGxvdyBSRkMgNjU3MCBTZWN0aW9uCiAzLjIuMyBSZXNlcnZlZCBFeHBhbnNpb24uIFRoZSByZWFzb24gaXMgdGhhdCB0aGUgUmVzZXJ2ZWQgRXhwYW5zaW9uCiBkb2VzIG5vdCBleHBhbmQgc3BlY2lhbCBjaGFyYWN0ZXJzIGxpa2UgYD9gIGFuZCBgI2AsIHdoaWNoIHdvdWxkIGxlYWQKIHRvIGludmFsaWQgVVJMcy4gQXMgdGhlIHJlc3VsdCwgZ1JQQyBUcmFuc2NvZGluZyB1c2VzIGEgY3VzdG9tIGVuY29kaW5nCiBmb3IgbXVsdGkgc2VnbWVudCB2YXJpYWJsZXMuCgogVGhlIHBhdGggdmFyaWFibGVzICoqbXVzdCBub3QqKiByZWZlciB0byBhbnkgcmVwZWF0ZWQgb3IgbWFwcGVkIGZpZWxkLAogYmVjYXVzZSBjbGllbnQgbGlicmFyaWVzIGFyZSBub3QgY2FwYWJsZSBvZiBoYW5kbGluZyBzdWNoIHZhcmlhYmxlIGV4cGFuc2lvbi4KCiBUaGUgcGF0aCB2YXJpYWJsZXMgKiptdXN0IG5vdCoqIGNhcHR1cmUgdGhlIGxlYWRpbmcgIi8iIGNoYXJhY3Rlci4gVGhlIHJlYXNvbgogaXMgdGhhdCB0aGUgbW9zdCBjb21tb24gdXNlIGNhc2UgInt2YXJ9IiBkb2VzIG5vdCBjYXB0dXJlIHRoZSBsZWFkaW5nICIvIgogY2hhcmFjdGVyLiBGb3IgY29uc2lzdGVuY3ksIGFsbCBwYXRoIHZhcmlhYmxlcyBtdXN0IHNoYXJlIHRoZSBzYW1lIGJlaGF2aW9yLgoKIFJlcGVhdGVkIG1lc3NhZ2UgZmllbGRzIG11c3Qgbm90IGJlIG1hcHBlZCB0byBVUkwgcXVlcnkgcGFyYW1ldGVycywgYmVjYXVzZQogbm8gY2xpZW50IGxpYnJhcnkgY2FuIHN1cHBvcnQgc3VjaCBjb21wbGljYXRlZCBtYXBwaW5nLgoKIElmIGFuIEFQSSBuZWVkcyB0byB1c2UgYSBKU09OIGFycmF5IGZvciByZXF1ZXN0IG9yIHJlc3BvbnNlIGJvZHksIGl0IGNhbiBtYXAKIHRoZSByZXF1ZXN0IG9yIHJlc3BvbnNlIGJvZHkgdG8gYSByZXBlYXRlZCBmaWVsZC4gSG93ZXZlciwgc29tZSBnUlBDCiBUcmFuc2NvZGluZyBpbXBsZW1lbnRhdGlvbnMgbWF5IG5vdCBzdXBwb3J0IHRoaXMgZmVhdHVyZS4KCgsKAwQBARIEvAIIEAqPAQoEBAECABIEwQICFhqAASBTZWxlY3RzIGEgbWV0aG9kIHRvIHdoaWNoIHRoaXMgcnVsZSBhcHBsaWVzLgoKIFJlZmVyIHRvIFtzZWxlY3Rvcl1bZ29vZ2xlLmFwaS5Eb2N1bWVudGF0aW9uUnVsZS5zZWxlY3Rvcl0gZm9yIHN5bnRheAogZGV0YWlscy4KCg8KBQQBAgAEEgbBAgK8AhIKDQoFBAECAAUSBMECAggKDQoFBAECAAESBMECCREKDQoFBAECAAMSBMECFBUK0AEKBAQBCAASBsYCAtwCAxq/ASBEZXRlcm1pbmVzIHRoZSBVUkwgcGF0dGVybiBpcyBtYXRjaGVkIGJ5IHRoaXMgcnVsZXMuIFRoaXMgcGF0dGVybiBjYW4gYmUKIHVzZWQgd2l0aCBhbnkgb2YgdGhlIHtnZXR8cHV0fHBvc3R8ZGVsZXRlfHBhdGNofSBtZXRob2RzLiBBIGN1c3RvbSBtZXRob2QKIGNhbiBiZSBkZWZpbmVkIHVzaW5nIHRoZSAnY3VzdG9tJyBmaWVsZC4KCg0K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aW5nc2AgZmllbGQgdGhlbXNlbHZlcyAodGhhdCBpcywKIHRoZSBuZXN0aW5nIG1heSBvbmx5IGJlIG9uZSBsZXZlbCBkZWVwKS4KCg0KBQQBAgkEEgTxAgIKCg0KBQQBAgkGEgTxAgsTCg0KBQQBAgkBEgTxAhQnCg0KBQQBAgkDEgTxAiosCkcKAgQCEgb1AgD7AgEaOSBBIGN1c3RvbSBwYXR0ZXJuIGlzIHVzZWQgZm9yIGRlZmluaW5nIGN1c3RvbSBIVFRQIHZlcmIuCgoLCgMEAgESBPUCCBkKMgoEBAICABIE9wICEhokIFRoZSBuYW1lIG9mIHRoaXMgY3VzdG9tIEhUVFAgdmVyYi4KCg8KBQQCAgAEEgb3AgL1AhsKDQoFBAICAAUSBPcCAggKDQoFBAICAAESBPcCCQ0KDQoFBAICAAMSBPcCEBEKNQoEBAICARIE+gICEhonIFRoZSBwYXRoIG1hdGNoZWQgYnkgdGhpcyBjdXN0b20gdmVyYi4KCg8KBQQCAgEEEgb6AgL3AhIKDQoFBAICAQUSBPoCAggKDQoFBAICAQESBPoCCQ0KDQoFBAICAQMSBPoCEBFiBnByb3RvMwrL+QIKIGdvb2dsZS9wcm90b2J1Zi9kZXNjcmlwdG9yLnByb3RvEg9nb29nbGUucHJvdG9idWYiTQoRRmlsZURlc2NyaXB0b3JTZXQSOAoEZmlsZRgBIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5GaWxlRGVzY3JpcHRvclByb3RvUgRmaWxlIuQEChNGaWxlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSGAoHcGFja2FnZRgCIAEoCVIHcGFja2FnZRIeCgpkZXBlbmRlbmN5GAMgAygJUgpkZXBlbmRlbmN5EisKEXB1YmxpY19kZXBlbmRlbmN5GAogAygFUhBwdWJsaWNEZXBlbmRlbmN5EicKD3dlYWtfZGVwZW5kZW5jeRgLIAMoBVIOd2Vha0RlcGVuZGVuY3kSQwoMbWVzc2FnZV90eXBlGAQgAygLMiAuZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90b1ILbWVzc2FnZVR5cGUSQQoJZW51bV90eXBlGAUgAygLMiQuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9yUHJvdG9SCGVudW1UeXBlEkEKB3NlcnZpY2UYBiADKAsyJy5nb29nbGUucHJvdG9idWYuU2VydmljZURlc2NyaXB0b3JQcm90b1IHc2VydmljZRJDCglleHRlbnNpb24YByADKAsyJS5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG9SCWV4dGVuc2lvbhI2CgdvcHRpb25zGAggASgLMhwuZ29vZ2xlLnByb3RvYnVmLkZpbGVPcHRpb25zUgdvcHRpb25zEkkKEHNvdXJjZV9jb2RlX2luZm8YCSABKAsyHy5nb29nbGUucHJvdG9idWYuU291cmNlQ29kZUluZm9SDnNvdXJjZUNvZGVJbmZvEhYKBnN5bnRheBgMIAEoCVIGc3ludGF4IrkGCg9EZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRI7CgVmaWVsZBgCIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90b1IFZmllbGQSQwoJZXh0ZW5zaW9uGAYgAygLMiUuZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvUglleHRlbnNpb24SQQoLbmVzdGVkX3R5cGUYAyADKAsyIC5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvUgpuZXN0ZWRUeXBlEkEKCWVudW1fdHlwZRgEIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5FbnVtRGVzY3JpcHRvclByb3RvUghlbnVtVHlwZRJYCg9leHRlbnNpb25fcmFuZ2UYBSADKAsyLy5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvLkV4dGVuc2lvblJhbmdlUg5leHRlbnNpb25SYW5nZRJECgpvbmVvZl9kZWNsGAggAygLMiUuZ29vZ2xlLnByb3RvYnVmLk9uZW9mRGVzY3JpcHRvclByb3RvUglvbmVvZkRlY2wSOQoHb3B0aW9ucxgHIAEoCzIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9uc1IHb3B0aW9ucxJVCg5yZXNlcnZlZF9yYW5nZRgJIAMoCzIuLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG8uUmVzZXJ2ZWRSYW5nZVINcmVzZXJ2ZWRSYW5nZRIjCg1yZXNlcnZlZF9uYW1lGAogAygJUgxyZXNlcnZlZE5hbWUaegoORXh0ZW5zaW9uUmFuZ2USFAoFc3RhcnQYASABKAVSBXN0YXJ0EhAKA2VuZBgCIAEoBVIDZW5kEkAKB29wdGlvbnMYAyABKAsyJi5nb29nbGUucHJvdG9idWYuRXh0ZW5zaW9uUmFuZ2VPcHRpb25zUgdvcHRpb25zGjcKDVJlc2VydmVkUmFuZ2USFAoFc3RhcnQYASABKAVSBXN0YXJ0EhAKA2VuZBgCIAEoBVIDZW5kInwKFUV4dGVuc2lvblJhbmdlT3B0aW9ucxJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACIpgGChRGaWVsZERlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEhYKBm51bWJlchgDIAEoBVIGbnVtYmVyEkEKBWxhYmVsGAQgASgOMisuZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvLkxhYmVsUgVsYWJlbBI+CgR0eXBlGAUgASgOMiouZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvLlR5cGVSBHR5cGUSGwoJdHlwZV9uYW1lGAYgASgJUgh0eXBlTmFtZRIaCghleHRlbmRlZRgCIAEoCVIIZXh0ZW5kZWUSIwoNZGVmYXVsdF92YWx1ZRgHIAEoCVIMZGVmYXVsdFZhbHVlEh8KC29uZW9mX2luZGV4GAkgASgFUgpvbmVvZkluZGV4EhsKCWpzb25fbmFtZRgKIAEoCVIIanNvbk5hbWUSNwoHb3B0aW9ucxgIIAEoCzIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnNSB29wdGlvbnMitgIKBFR5cGUSDwoLVFlQRV9ET1VCTEUQARIOCgpUWVBFX0ZMT0FUEAISDgoKVFlQRV9JTlQ2NBADEg8KC1RZUEVfVUlOVDY0EAQSDgoKVFlQRV9JTlQzMhAFEhAKDFRZUEVfRklYRUQ2NBAGEhAKDFRZUEVfRklYRUQzMhAHEg0KCVRZUEVfQk9PTBAIEg8KC1RZUEVfU1RSSU5HEAkSDgoKVFlQRV9HUk9VUBAKEhAKDFRZUEVfTUVTU0FHRRALEg4KClRZUEVfQllURVMQDBIPCgtUWVBFX1VJTlQzMhANEg0KCVRZUEVfRU5VTRAOEhEKDVRZUEVfU0ZJWEVEMzIQDxIRCg1UWVBFX1NGSVhFRDY0EBASDwoLVFlQRV9TSU5UMzIQERIPCgtUWVBFX1NJTlQ2NBASIkMKBUxhYmVsEhIKDkxBQkVMX09QVElPTkFMEAESEgoOTEFCRUxfUkVRVUlSRUQQAhISCg5MQUJFTF9SRVBFQVRFRBADImMKFE9uZW9mRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSNwoHb3B0aW9ucxgCIAEoCzIdLmdvb2dsZS5wcm90b2J1Zi5PbmVvZk9wdGlvbnNSB29wdGlvbnMi4wIKE0VudW1EZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRI/CgV2YWx1ZRgCIAMoCzIpLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVEZXNjcmlwdG9yUHJvdG9SBXZhbHVlEjYKB29wdGlvbnMYAyABKAsyHC5nb29nbGUucHJvdG9idWYuRW51bU9wdGlvbnNSB29wdGlvbnMSXQoOcmVzZXJ2ZWRfcmFuZ2UYBCADKAsyNi5nb29nbGUucHJvdG9idWYuRW51bURlc2NyaXB0b3JQcm90by5FbnVtUmVzZXJ2ZWRSYW5nZVINcmVzZXJ2ZWRSYW5nZRIjCg1yZXNlcnZlZF9uYW1lGAUgAygJUgxyZXNlcnZlZE5hbWUaOwoRRW51bVJlc2VydmVkUmFuZ2USFAoFc3RhcnQYASABKAVSBXN0YXJ0EhAKA2VuZBgCIAEoBVIDZW5kIoMBChhFbnVtVmFsdWVEZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRIWCgZudW1iZXIYAiABKAVSBm51bWJlchI7CgdvcHRpb25zGAMgASgLMiEuZ29vZ2xlLnByb3RvYnVmLkVudW1WYWx1ZU9wdGlvbnNSB29wdGlvbnMipwEKFlNlcnZpY2VEZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRI+CgZtZXRob2QYAiADKAsyJi5nb29nbGUucHJvdG9idWYuTWV0aG9kRGVzY3JpcHRvclByb3RvUgZtZXRob2QSOQoHb3B0aW9ucxgDIAEoCzIfLmdvb2dsZS5wcm90b2J1Zi5TZXJ2aWNlT3B0aW9uc1IHb3B0aW9ucyKJAgoVTWV0aG9kRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSHQoKaW5wdXRfdHlwZRgCIAEoCVIJaW5wdXRUeXBlEh8KC291dHB1dF90eXBlGAMgASgJUgpvdXRwdXRUeXBlEjgKB29wdGlvbnMYBCABKAsyHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9uc1IHb3B0aW9ucxIwChBjbGllbnRfc3RyZWFtaW5nGAUgASgIOgVmYWxzZVIPY2xpZW50U3RyZWFtaW5nEjAKEHNlcnZlcl9zdHJlYW1pbmcYBiABKAg6BWZhbHNlUg9zZXJ2ZXJTdHJlYW1pbmcikgkKC0ZpbGVPcHRpb25zEiEKDGphdmFfcGFja2FnZRgBIAEoCVILamF2YVBhY2thZ2USMAoUamF2YV9vdXRlcl9jbGFzc25hbWUYCCABKAlSEmphdmFPdXRlckNsYXNzbmFtZRI1ChNqYXZhX211bHRpcGxlX2ZpbGVzGAogASgIOgVmYWxzZVIRamF2YU11bHRpcGxlRmlsZXMSRAodamF2YV9nZW5lcmF0ZV9lcXVhbHNfYW5kX2hhc2gYFCABKAhCAhgBUhlqYXZhR2VuZXJhdGVFcXVhbHNBbmRIYXNoEjoKFmphdmFfc3RyaW5nX2NoZWNrX3V0ZjgYGyABKAg6BWZhbHNlUhNqYXZhU3RyaW5nQ2hlY2tVdGY4ElMKDG9wdGltaXplX2ZvchgJIAEoDjIpLmdvb2dsZS5wcm90b2J1Zi5GaWxlT3B0aW9ucy5PcHRpbWl6ZU1vZGU6BVNQRUVEUgtvcHRpbWl6ZUZvchIdCgpnb19wYWNrYWdlGAsgASgJUglnb1BhY2thZ2USNQoTY2NfZ2VuZXJpY19zZXJ2aWNlcxgQIAEoCDoFZmFsc2VSEWNjR2VuZXJpY1NlcnZpY2VzEjkKFWphdmFfZ2VuZXJpY19zZXJ2aWNlcxgRIAEoCDoFZmFsc2VSE2phdmFHZW5lcmljU2VydmljZXMSNQoTcHlfZ2VuZXJpY19zZXJ2aWNlcxgSIAEoCDoFZmFsc2VSEXB5R2VuZXJpY1NlcnZpY2VzEjcKFHBocF9nZW5lcmljX3NlcnZpY2VzGCogASgIOgVmYWxzZVIScGhwR2VuZXJpY1NlcnZpY2VzEiUKCmRlcHJlY2F0ZWQYFyABKAg6BWZhbHNlUgpkZXByZWNhdGVkEi8KEGNjX2VuYWJsZV9hcmVuYXMYHyABKAg6BWZhbHNlUg5jY0VuYWJsZUFyZW5hcxIqChFvYmpjX2NsYXNzX3ByZWZpeBgkIAEoCVIPb2JqY0NsYXNzUHJlZml4EikKEGNzaGFycF9uYW1lc3BhY2UYJSABKAlSD2NzaGFycE5hbWVzcGFjZRIhCgxzd2lmdF9wcmVmaXgYJyABKAlSC3N3aWZ0UHJlZml4EigKEHBocF9jbGFzc19wcmVmaXgYKCABKAlSDnBocENsYXNzUHJlZml4EiMKDXBocF9uYW1lc3BhY2UYKSABKAlSDHBocE5hbWVzcGFjZRI0ChZwaHBfbWV0YWRhdGFfbmFtZXNwYWNlGCwgASgJUhRwaHBNZXRhZGF0YU5hbWVzcGFjZRIhCgxydWJ5X3BhY2thZ2UYLSABKAlSC3J1YnlQYWNrYWdlElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uIjoKDE9wdGltaXplTW9kZRIJCgVTUEVFRBABEg0KCUNPREVfU0laRRACEhAKDExJVEVfUlVOVElNRRADKgkI6AcQgICAgAJKBAgmECci0QIKDk1lc3NhZ2VPcHRpb25zEjwKF21lc3NhZ2Vfc2V0X3dpcmVfZm9ybWF0GAEgASgIOgVmYWxzZVIUbWVzc2FnZVNldFdpcmVGb3JtYXQSTAofbm9fc3RhbmRhcmRfZGVzY3JpcHRvcl9hY2Nlc3NvchgCIAEoCDoFZmFsc2VSHG5vU3RhbmRhcmREZXNjcmlwdG9yQWNjZXNzb3ISJQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSGwoJbWFwX2VudHJ5GAcgASgIUghtYXBFbnRyeRJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACSgQICBAJSgQICRAKIuIDCgxGaWVsZE9wdGlvbnMSQQoFY3R5cGUYASABKA4yIy5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zLkNUeXBlOgZTVFJJTkdSBWN0eXBlEhYKBnBhY2tlZBgCIAEoCFIGcGFja2VkEkcKBmpzdHlwZRgGIAEoDjIkLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMuSlNUeXBlOglKU19OT1JNQUxSBmpzdHlwZRIZCgRsYXp5GAUgASgIOgVmYWxzZVIEbGF6eRIlCgpkZXByZWNhdGVkGAMgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBIZCgR3ZWFrGAogASgIOgVmYWxzZVIEd2VhaxJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbiIvCgVDVHlwZRIKCgZTVFJJTkcQABIICgRDT1JEEAESEAoMU1RSSU5HX1BJRUNFEAIiNQoGSlNUeXBlEg0KCUpTX05PUk1BTBAAEg0KCUpTX1NUUklORxABEg0KCUpTX05VTUJFUhACKgkI6AcQgICAgAJKBAgEEAUicwoMT25lb2ZPcHRpb25zElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIiwAEKC0VudW1PcHRpb25zEh8KC2FsbG93X2FsaWFzGAIgASgIUgphbGxvd0FsaWFzEiUKCmRlcHJlY2F0ZWQYAyABKAg6BWZhbHNlUgpkZXByZWNhdGVkElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAJKBAgFEAYingEKEEVudW1WYWx1ZU9wdGlvbnMSJQoKZGVwcmVjYXRlZBgBIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiKcAQoOU2VydmljZU9wdGlvbnMSJQoKZGVwcmVjYXRlZBghIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiLgAgoNTWV0aG9kT3B0aW9ucxIlCgpkZXByZWNhdGVkGCEgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBJxChFpZGVtcG90ZW5jeV9sZXZlbBgiIAEoDjIvLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zLklkZW1wb3RlbmN5TGV2ZWw6E0lERU1QT1RFTkNZX1VOS05PV05SEGlkZW1wb3RlbmN5TGV2ZWwSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24iUAoQSWRlbXBvdGVuY3lMZXZlbBIXChNJREVNUE9URU5DWV9VTktOT1dOEAASEwoPTk9fU0lERV9FRkZFQ1RTEAESDgoKSURFTVBPVEVOVBACKgkI6AcQgICAgAIimgMKE1VuaW50ZXJwcmV0ZWRPcHRpb24SQQoEbmFtZRgCIAMoCzItLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uLk5hbWVQYXJ0UgRuYW1lEikKEGlkZW50aWZpZXJfdmFsdWUYAyABKAlSD2lkZW50aWZpZXJWYWx1ZRIsChJwb3NpdGl2ZV9pbnRfdmFsdWUYBCABKARSEHBvc2l0aXZlSW50VmFsdWUSLAoSbmVnYXRpdmVfaW50X3ZhbHVlGAUgASgDUhBuZWdhdGl2ZUludFZhbHVlEiEKDGRvdWJsZV92YWx1ZRgGIAEoAVILZG91YmxlVmFsdWUSIQoMc3RyaW5nX3ZhbHVlGAcgASgMUgtzdHJpbmdWYWx1ZRInCg9hZ2dyZWdhdGVfdmFsdWUYCCABKAlSDmFnZ3JlZ2F0ZVZhbHVlGkoKCE5hbWVQYXJ0EhsKCW5hbWVfcGFydBgBIAIoCVIIbmFtZVBhcnQSIQoMaXNfZXh0ZW5zaW9uGAIgAigIUgtpc0V4dGVuc2lvbiKnAgoOU291cmNlQ29kZUluZm8SRAoIbG9jYXRpb24YASADKAsyKC5nb29nbGUucHJvdG9idWYuU291cmNlQ29kZUluZm8uTG9jYXRpb25SCGxvY2F0aW9uGs4BCghMb2NhdGlvbhIWCgRwYXRoGAEgAygFQgIQAVIEcGF0aBIWCgRzcGFuGAIgAygFQgIQAVIEc3BhbhIpChBsZWFkaW5nX2NvbW1lbnRzGAMgASgJUg9sZWFkaW5nQ29tbWVudHMSKwoRdHJhaWxpbmdfY29tbWVudHMYBCABKAlSEHRyYWlsaW5nQ29tbWVudHMSOgoZbGVhZGluZ19kZXRhY2hlZF9jb21tZW50cxgGIAMoCVIXbGVhZGluZ0RldGFjaGVkQ29tbWVudHMi0QEKEUdlbmVyYXRlZENvZGVJbmZvEk0KCmFubm90YXRpb24YASADKAsyLS5nb29nbGUucHJvdG9idWYuR2VuZXJhdGVkQ29kZUluZm8uQW5ub3RhdGlvblIKYW5ub3RhdGlvbhptCgpBbm5vdGF0aW9uEhYKBHBhdGgYASADKAVCAhABUgRwYXRoEh8KC3NvdXJjZV9maWxlGAIgASgJUgpzb3VyY2VGaWxlEhQKBWJlZ2luGAMgASgFUgViZWdpbhIQCgNlbmQYBCABKAVSA2VuZEKPAQoTY29tLmdvb2dsZS5wcm90b2J1ZkIQRGVzY3JpcHRvclByb3Rvc0gBWj5naXRodWIuY29tL2dvbGFuZy9wcm90b2J1Zi9wcm90b2MtZ2VuLWdvL2Rlc2NyaXB0b3I7ZGVzY3JpcHRvcvgBAaICA0dQQqoCGkdvb2dsZS5Qcm90b2J1Zi5SZWZsZWN0aW9uSqy+AgoHEgUnAPIGAQqqDwoBDBIDJwASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoy2wIgQXV0aG9yOiBrZW50b25AZ29vZ2xlLmNvbSAoS2VudG9uIFZhcmRhKQogIEJhc2VkIG9uIG9yaWdpbmFsIFByb3RvY29sIEJ1ZmZlcnMgZGVzaWduIGJ5CiAgU2FuamF5IEdoZW1hd2F0LCBKZWZmIERlYW4sIGFuZCBvdGhlcnMuCgogVGhlIG1lc3NhZ2VzIGluIHRoaXMgZmlsZSBkZXNjcmliZSB0aGUgZGVmaW5pdGlvbnMgZm91bmQgaW4gLnByb3RvIGZpbGVzLgogQSB2YWxpZCAucHJvdG8gZmls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IG9wdGlvbnMgYXMgZXh0ZW5zaW9ucyBvZiB0aGUgKk9wdGlvbnMgbWVzc2FnZXMuCiBUaGVzZSBleHRlbnNpb25zIG1heSBub3QgeWV0IGJlIGtub3duIGF0IHBhcnNpbmcgdGltZSwgc28gdGhlIHBhcnNlciBjYW5ub3QKIHN0b3JlIHRoZSB2YWx1ZXMgaW4gdGhlbS4gIEluc3RlYWQgaXQgc3RvcmVzIHRoZW0gaW4gYSBmaWVsZCBpbiB0aGUgKk9wdGlvbnMKIG1lc3NhZ2UgY2FsbGVkIHVuaW50ZXJwcmV0ZWRfb3B0aW9uLiBUaGlzIGZpZWxkIG11c3QgaGF2ZSB0aGUgc2FtZSBuYW1lCiBhY3Jvc3MgYWxsICpPcHRpb25zIG1lc3NhZ2VzLiBXZSB0aGVuIHVzZSB0aGlzIGZpZWxkIHRvIHBvcHVsYXRlIHRoZQogZXh0ZW5zaW9ucyB3aGVuIHdlIGJ1aWxkIGEgZGVzY3JpcHRvciwgYXQgd2hpY2ggcG9pbnQgYWxsIHByb3RvcyBoYXZlIGJlZW4KIHBhcnNlZCBhbmQgc28gYWxsIGV4dGVuc2lvbnMgYXJlIGtub3duLgoKIEV4dGVuc2lvbiBudW1iZXJzIGZvciBjdXN0b20gb3B0aW9ucyBtYXkgYmUgY2hvc2VuIGFzIGZvbGxvd3M6CiAqIEZvciBvcHRpb25zIHdoaWNoIHdpbGwgb25seSBiZSB1c2VkIHdpdGhpbiBhIHNpbmdsZSBhcHBsaWNhdGlvbiBvcgogICBvcmdhbml6YXRpb24sIG9yIGZvciBleHBlcmltZW50YWwgb3B0aW9ucywgdXNlIGZpZWxkIG51bWJlcnMgNTAwMDAKICAgdGhyb3VnaCA5OTk5OS4gIEl0IGlzIHVwIHRvIHlvdSB0byBlbnN1cmUgdGhhdCB5b3UgZG8gbm90IHVzZSB0aGUKICAgc2FtZSBudW1iZXIgZm9yIG11bHRpcGxlIG9wdGlvbnMuCiAqIEZvciBvcHRpb25zIHdoaWNoIHdpbGwgYmUgcHVibGlzaGVkIGFuZCB1c2VkIHB1YmxpY2x5IGJ5IG11bHRpcGxlCiAgIGluZGVwZW5kZW50IGVudGl0aWVzLCBlLW1haWwgcHJvdG9idWYtZ2xvYmFsLWV4dGVuc2lvbi1yZWdpc3RyeUBnb29nbGUuY29tCiAgIHRvIHJlc2VydmUgZXh0ZW5zaW9uIG51bWJlcnMuIFNpbXBseSBwcm92aWRlIHlvdXIgcHJvamVjdCBuYW1lIChlLmcuCiAgIE9iamVjdGl2ZS1DIHBsdWdpbikgYW5kIHlvdXIgcHJvamVjdCB3ZWJzaXRlIChpZiBhdmFpbGFibGUpIC0tIHRoZXJlJ3Mgbm8KICAgbmVlZCB0byBleHBsYWluIGhvdyB5b3UgaW50ZW5kIHRvIHVzZSB0aGVtLiBVc3VhbGx5IHlvdSBvbmx5IG5lZWQgb25lCiAgIGV4dGVuc2lvbiBudW1iZXIuIFlvdSBjYW4gZGVjbGFyZSBtdWx0aXBsZSBvcHRpb25zIHdpdGggb25seSBvbmUgZXh0ZW5zaW9uCiAgIG51bWJlciBieSBwdXR0aW5nIHRoZW0gaW4gYSBzdWItbWVzc2FnZS4gU2VlIHRoZSBDdXN0b20gT3B0aW9ucyBzZWN0aW9uIG9mCiAgIHRoZSBkb2NzIGZvciBleGFtcGxlczoKICAgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy9kb2NzL3Byb3RvI29wdGlvbnMKICAgSWYgdGhpcyB0dXJucyBvdXQgdG8gYmUgcG9wdWxhciwgYSB3ZWIgc2VydmljZSB3aWxsIGJlIHNldCB1cAogICB0byBhdXRvbWF0aWNhbGx5IGFzc2lnbiBvcHRpb24gbnVtYmVycy4KCgsKAwQKARIEvQIIEwr0AQoEBAoCABIEwwICIxrlASBTZXRzIHRoZSBKYXZhIHBhY2thZ2Ugd2hlcmUgY2xhc3NlcyBnZW5lcmF0ZWQgZnJvbSB0aGlzIC5wcm90byB3aWxsIGJlCiBwbGFjZWQuICBCeSBkZWZhdWx0LCB0aGUgcHJvdG8gcGFja2FnZSBpcyB1c2VkLCBidXQgdGhpcyBpcyBvZnRlbgogaW5hcHByb3ByaWF0ZSBiZWNhdXNlIHByb3RvIHBhY2thZ2VzIGRvIG5vdCBub3JtYWxseSBzdGFydCB3aXRoIGJhY2t3YXJkcwogZG9tYWluIG5hbWVzLgoKDQoFBAoCAAQSBMMCAgoKDQoFBAoCAAUSBMMCCxEKDQoFBAoC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ICBJdCdzIGxlc3MKIGVmZmljaWVudCwgaGFzIGZld2VyIGZlYXR1cmVzLCBhbmQgaXMgbW9yZSBjb21wbGljYXRlZC4KCiBUaGUgbWVzc2FnZSBtdXN0IGJlIGRlZmluZWQgZXhhY3RseSBhcyBmb2xsb3dzOgogICBtZXNzYWdlIEZvbyB7CiAgICAgb3B0aW9uIG1lc3NhZ2Vfc2V0X3dpcmVfZm9ybWF0ID0gdHJ1ZTsKICAgICBleHRlbnNpb25zIDQgdG8gbWF4OwogICB9CiBOb3RlIHRoYXQgdGhlIG1lc3NhZ2UgY2Fubm90IGhhdmUgYW55IGRlZmluZWQgZmllbGRzOyBNZXNzYWdlU2V0cyBvbmx5CiBoYXZlIGV4dGVuc2lvbnMuCgogQWxsIGV4dGVuc2lvbnMgb2YgeW91ciB0eXBlIG11c3QgYmUgc2luZ3VsYXIgbWVzc2FnZXM7IGUuZy4gdGhleSBjYW5ub3QKIGJlIGludDMycywgZW51bXMsIG9yIHJlcGVhdGVkIG1lc3NhZ2VzLgoKIEJlY2F1c2UgdGhpcyBpcyBhbiBvcHRpb24sIHRoZSBhYm92ZSB0d28gcmVzdHJpY3Rpb25zIGFyZSBub3QgZW5mb3JjZWQgYnkKIHRoZSBwcm90b2NvbCBjb21waWxlci4KCg0KBQQLAgAEEgTMAwIKCg0KBQQLAgAFEgTMAwsPCg0KBQQLAgABEgTMAxAnCg0KBQQLAgADEgTMAyorCg0KBQQLAgAIEgTMAyw7Cg0KBQQLAgAHEgTMAzU6CusBCgQECwIBEgTRAwJEGtwBIERpc2FibGVzIHRoZSBnZW5lcmF0aW9uIG9mIHRoZSBzdGFuZGFyZCAiZGVzY3JpcHRvcigpIiBhY2Nlc3Nvciwgd2hpY2ggY2FuCiBjb25mbGljdCB3aXRoIGEgZmllbGQgb2YgdGhlIHNhbWUgbmFtZS4gIFRoaXMgaXMgbWVhbnQgdG8gbWFrZSBtaWdyYXRpb24KIGZyb20gcHJvdG8xIGVhc2llcjsgbmV3IGNvZGUgc2hvdWxkIGF2b2lkIGZpZWxkcyBuYW1lZCAiZGVzY3JpcHRvciIuCgoNCgUECwIBBBIE0QMCCgoNCgUECwIBBRIE0QMLDwoNCgUECwIBARIE0QMQLwoNCgUECwIBAxIE0QMyMwoNCgUECwIBCBIE0QM0QwoNCgUECwIBBxIE0QM9QgruAQoEBAsCAhIE1wMCLxrfASBJcyB0aGlzIG1lc3NhZ2UgZGVwcmVjYXRlZD8KIERlcGVuZGluZyBvbiB0aGUgdGFyZ2V0IHBsYXRmb3JtLCB0aGlzIGNhbiBlbWl0IERlcHJlY2F0ZWQgYW5ub3RhdGlvbnMKIGZvciB0aGUgbWVzc2FnZSwgb3IgaXQgd2lsbCBiZSBjb21wbGV0ZWx5IGlnbm9yZWQ7IGluIHRoZSB2ZXJ5IGxlYXN0LAogdGhpcyBpcyBhIGZvcm1hbGl6YXRpb24gZm9yIGRlcHJlY2F0aW5nIG1lc3NhZ2VzLgoKDQoFBAsCAgQSBNcDAgoKDQoFBAsCAgUSBNcDCw8KDQoFBAsCAgESBNcDEBoKDQoFBAsCAgMSBNcDHR4KDQoFBAsCAggSBNcDHy4KDQoFBAsCAgcSBNcDKC0KngYKBAQLAgMSBO4DAh4ajwYgV2hldGhlciB0aGUgbWVzc2FnZSBpcyBhbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYXAgZW50cnkgdHlwZSBmb3IgdGhlCiBtYXBzIGZpZWxkLgoKIEZvciBtYXBzIGZpZWxkczoKICAgICBtYXA8S2V5VHlwZSwgVmFsdWVUeXBlPiBtYXBfZmllbGQgPSAxOwogVGhlIHBhcnNlZCBkZXNjcmlwdG9yIGxvb2tzIGxpa2U6CiAgICAgbWVzc2FnZSBNYXBGaWVsZEVudHJ5IHsKICAgICAgICAgb3B0aW9uIG1hcF9lbnRyeSA9IHRydWU7CiAgICAgICAgIG9wdGlvbmFsIEtleVR5cGUga2V5ID0gMTsKICAgICAgICAgb3B0aW9uYWwgVmFsdWVUeXBlIHZhbHVlID0gMjsKICAgICB9CiAgICAgcmVwZWF0ZWQgTWFwRmllbGRFbnRyeSBtYXBfZmllbGQgPSAxOwoKIEltcGxlbWVudGF0aW9ucyBtYXkgY2hvb3NlIG5vdCB0byBnZW5lcmF0ZSB0aGUgbWFwX2VudHJ5PXRydWUgbWVzc2FnZSwgYnV0CiB1c2UgYSBuYXRpdmUgbWFwIGluIHRoZSB0YXJnZXQgbGFuZ3VhZ2UgdG8gaG9sZCB0aGUga2V5cyBhbmQgdmFsdWVz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aGUganN0eXBlIG9wdGlvbiBkZXRlcm1pbmVzIHRoZSBKYXZhU2NyaXB0IHR5cGUgdXNlZCBmb3IgdmFsdWVzIG9mIHRoZQogZmllbGQuICBUaGUgb3B0aW9uIGlzIHBlcm1pdHRlZCBvbmx5IGZvciA2NCBiaXQgaW50ZWdyYWwgYW5kIGZpeGVkIHR5cGVzCiAoaW50NjQsIHVpbnQ2NCwgc2ludDY0LCBmaXhlZDY0LCBzZml4ZWQ2NCkuICBBIGZpZWxkIHdpdGgganN0eXBlIEpTX1NUUklORwogaXMgcmVwcmVzZW50ZWQgYXMgSmF2YVNjcmlwdCBzdHJpbmcsIHdoaWNoIGF2b2lkcyBsb3NzIG9mIHByZWNpc2lvbiB0aGF0CiBjYW4gaGFwcGVuIHdoZW4gYSBsYXJnZSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gYSBmbG9hdGluZyBwb2ludCBKYXZhU2NyaXB0LgogU3BlY2lmeWluZyBKU19OVU1CRVIgZm9yIHRoZSBqc3R5cGUgY2F1c2VzIHRoZSBnZW5lcmF0ZWQgSmF2YVNjcmlwdCBjb2RlIHRvCiB1c2UgdGhlIEphdmFTY3JpcHQgIm51bWJlciIgdHlwZS4gIFRoZSBiZWhhdmlvciBvZiB0aGUgZGVmYXVsdCBvcHRpb24KIEpTX05PUk1BTCBpcyBpbXBsZW1lbnRhdGlvbiBkZXBlbmRlbnQuCgogVGhpcyBvcHRpb24gaXMgYW4gZW51bSB0byBwZXJtaXQgYWRkaXRpb25hbCB0eXBlcyB0byBiZSBhZGRlZCwgZS5nLgogZ29vZy5tYXRoLkludGVnZXIuCgoNCgUEDAICBBIEmgQCCgoNCgUEDAICBhIEmgQLEQoNCgUEDAICARIEmgQSGAoNCgUEDAICAxIEmgQbHAoNCgUEDAICCBIEmgQdMgoNCgUEDAICBxIEmgQoMQoOCgQEDAQBEgabBAKkBAMKDQoFBAwEAQESBJsEBw0KJwoGBAwEAQIAEgSdBAQSGhcgVXNlIHRoZSBkZWZhdWx0IHR5cGUuCgoPCgcEDAQBAgABEgSdBAQNCg8KBwQMBAECAAISBJ0EEBEKKQoGBAwEAQIBEgSgBAQSGhkgVXNlIEphdmFTY3JpcHQgc3RyaW5ncy4KCg8KBwQMBAECAQESBKAEBA0KDwoHBAwEAQIBAhIEoAQQEQopCgYEDAQBAgISBKMEBBIaGSBVc2UgSmF2YVNjcmlwdCBudW1iZXJzLgoKDwoHBAwEAQICARIEowQEDQoPCgcEDAQBAgICEgSjBBARCu8MCgQEDAIDEgTCBAIpGuAMIFNob3VsZCB0aGlzIGZpZWxkIGJlIHBhcnNlZCBsYXppbHk/ICBMYXp5IGFwcGxpZXMgb25seSB0byBtZXNzYWdlLXR5cGUKIGZpZWxkcy4gIEl0IG1lYW5zIHRoYXQgd2hlbiB0aGUgb3V0ZXIgbWVzc2FnZSBpcyBpbml0aWFsbHkgcGFyc2VkLCB0aGUKIGlubmVyIG1lc3NhZ2UncyBjb250ZW50cyB3aWxsIG5vdCBiZSBwYXJzZWQgYnV0IGluc3RlYWQgc3RvcmVkIGluIGVuY29kZWQKIGZvcm0uICBUaGUgaW5uZXIgbWVzc2FnZSB3aWxsIGFjdHVhbGx5IGJlIHBhcnNlZCB3aGVuIGl0IGlzIGZpcnN0IGFjY2Vzc2VkLgoKIFRoaXMgaXMgb25seSBhIGhpbnQuICBJbXBsZW1lbnRhdGlvbnMgYXJlIGZyZWUgdG8gY2hvb3NlIHdoZXRoZXIgdG8gdXNlCiBlYWdlciBvciBsYXp5IHBhcnNpbmcgcmVnYXJkbGVzcyBvZiB0aGUgdmFsdWUgb2YgdGhpcyBvcHRpb24uICBIb3dldmVyLAogc2V0dGluZyB0aGlzIG9wdGlvbiB0cnVlIHN1Z2dlc3RzIHRoYXQgdGhlIHByb3RvY29sIGF1dGhvciBiZWxpZXZlcyB0aGF0CiB1c2luZyBsYXp5IHBhcnNpbmcgb24gdGhpcyBmaWVsZCBpcyB3b3J0aCB0aGUgYWRkaXRpb25hbCBib29ra2VlcGluZwogb3ZlcmhlYWQgdHlwaWNhbGx5IG5lZWRlZCB0byBpbXBsZW1lbnQgaXQuCgogVGhpcyBvcHRpb24gZG9lcyBub3QgYWZmZWN0IHRoZSBwdWJsaWMgaW50ZXJmYWNlIG9mIGFueSBnZW5lcmF0ZWQgY29kZTsKIGFsbCBtZXRob2Qgc2lnbmF0dXJlcyByZW1haW4gdGhlIHNhbWUuICBGdXJ0aGVybW9yZSwgdGhyZWFkLXNhZmV0eSBvZiB0aGUKIGludGVyZmFjZSBpcyBub3QgYWZmZWN0ZWQgYnkgdGhpcyBvcHRpb247IGNvbnN0IG1ldGhvZHMgcmVtYWluIHNhZmUgdG8KIGNhbGwgZnJvbSBtdWx0aXBsZSB0aHJlYWRzIGNvbmN1cnJlbnRseSwgd2hpbGUgbm9uLWNvbnN0IG1ldGhvZHMgY29udGludWUKIHRvIHJlcXVpcmUgZXhjbHVzaXZlIGFjY2Vzcy4KCgogTm90ZSB0aGF0IGltcGxlbWVudGF0aW9ucyBtYXkgY2hvb3NlIG5vdCB0byBjaGVjayByZXF1aXJlZCBmaWVsZHMgd2l0aGluCiBhIGxhenkgc3ViLW1lc3NhZ2UuICBUaGF0IGlzLCBjYWxsaW5nIElzSW5pdGlhbGl6ZWQoKSBvbiB0aGUgb3V0ZXIgbWVzc2FnZQogbWF5IHJldHVybiB0cnVlIGV2ZW4gaWYgdGhlIGlubmVyIG1lc3NhZ2UgaGFzIG1pc3NpbmcgcmVxdWlyZWQgZmllbGRzLgogVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBvdGhlcndpc2UgdGhlIGlubmVyIG1lc3NhZ2Ugd291bGQgaGF2ZSB0byBiZQogcGFyc2VkIGluIG9yZGVyIHRvIHBlcmZvcm0gdGhlIGNoZWNrLCBkZWZlYXRpbmcgdGhlIHB1cnBvc2Ugb2YgbGF6eQogcGFyc2luZy4gIEFuIGltcGxlbWVudGF0aW9uIHdoaWNoIGNob29zZXMgbm90IHRvIGNoZWNrIHJlcXVpcmVkIGZpZWxkcwogbXVzdCBiZSBjb25zaXN0ZW50IGFib3V0IGl0LiAgVGhhdCBpcywgZm9yIGFueSBwYXJ0aWN1bGFyIHN1Yi1tZXNzYWdlLCB0aGUKIGltcGxlbWVudGF0aW9uIG11c3QgZWl0aGVyICphbHdheXMqIGNoZWNrIGl0cyByZXF1aXJlZCBmaWVsZHMsIG9yICpuZXZlcioKIGNoZWNrIGl0cyByZXF1aXJlZCBmaWVsZHMsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBvciBub3QgdGhlIG1lc3NhZ2UgaGFzCiBiZWVuIHBhcnNlZC4KCg0KBQQMAgMEEgTCBAIKCg0KBQQMAgMFEgTCBAsPCg0KBQQMAgMBEgTCBBAUCg0KBQQM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aXMgbWV0aG9kIGRlcHJlY2F0ZWQ/CiBEZXBlbmRpbmcgb24gdGhlIHRhcmdldCBwbGF0Zm9ybSwgdGhpcyBjYW4gZW1pdCBEZXByZWNhdGVkIGFubm90YXRpb25zCiBmb3IgdGhlIG1ldGhvZCwgb3IgaXQgd2lsbCBiZSBjb21wbGV0ZWx5IGlnbm9yZWQ7IGluIHRoZSB2ZXJ5IGxlYXN0LAogdGhpcyBpcyBhIGZvcm1hbGl6YXRpb24gZm9yIGRlcHJlY2F0aW5nIG1ldGhvZHMuCjLoASBOb3RlOiAgRmllbGQgbnVtYmVycyAxIHRocm91Z2ggMzIgYXJlIHJlc2VydmVkIGZvciBHb29nbGUncyBpbnRlcm5hbCBSUEMKICAgZnJhbWV3b3JrLiAgV2UgYXBvbG9naXplIGZvciBob2FyZGluZyB0aGVzZSBudW1iZXJzIHRvIG91cnNlbHZlcywgYnV0CiAgIHdlIHdlcmUgYWxyZWFkeSB1c2luZyB0aGVtIGxvbmcgYmVmb3JlIHdlIGRlY2lkZWQgdG8gcmVsZWFzZSBQcm90b2NvbAogICBCdWZmZXJzLgoKDQoFBBECAAQSBKEFAgoKDQoFBBECAAUSBKEFCw8KDQoFBBECAAESBKEFEBoKDQoFBBECAAMSBKEFHR8KDQoFBBECAAgSBKEFIC8KDQoFBBECAAcSBKEFKS4K8AEKBAQRBAASBqYFAqoFAxrfASBJcyB0aGlzIG1ldGhvZCBzaWRlLWVmZmVjdC1mcmVlIChvciBzYWZlIGluIEhUVFAgcGFybGFuY2UpLCBvciBpZGVtcG90ZW50LAogb3IgbmVpdGhlcj8gSFRUUCBiYXNlZCBSUEMgaW1wbGVtZW50YXRpb24gbWF5IGNob29zZSBHRVQgdmVyYiBmb3Igc2FmZQogbWV0aG9kcywgYW5kIFBVVCB2ZXJiIGZvciBpZGVtcG90ZW50IG1ldGhvZHMgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBQT1NULgoKDQoFBBEEAAESBKYFBxcKDgoGBBEEAAIAEgSnBQQcCg8KBwQRBAACAAESBKcFBBcKDwoHBBEEAAIAAhIEpwUaGwokCgYEEQQAAgESBKgFBBwiFCBpbXBsaWVzIGlkZW1wb3RlbnQKCg8KBwQRBAACAQESBKgF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aW9uYWwgc3RyaW5nIGZvbyA9IDE7CiAgIF4gICAgICAgXl4gICAgIF5eICBeICBeXl4KICAgYSAgICAgICBiYyAgICAgZGUgIGYgIGdoaQogV2UgaGF2ZSB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczoKICAgc3BhbiAgIHBhdGggICAgICAgICAgICAgICByZXByZXNlbnRzCiAgIFthLGkpICBbIDQsIDAsIDIsIDAgXSAgICAgVGhlIHdob2xlIGZpZWxkIGRlZmluaXRpb24uCiAgIFthLGIpICBbIDQsIDAsIDIsIDAsIDQgXSAgVGhlIGxhYmVsIChvcHRpb25hbCkuCiAgIFtjLGQpICBbIDQsIDAsIDIsIDAsIDUgXSAgVGhlIHR5cGUgKHN0cmluZykuCiAgIFtlLGYpICBbIDQsIDAsIDIsIDAsIDEgXSAgVGhlIG5hbWUgKGZvbykuCiAgIFtnLGgpICBbIDQsIDAsIDIsIDAsIDMgXSAgVGhlIG51bWJlciAoMSkuCgogTm90ZXM6CiAtIEEgbG9jYXRpb24gbWF5IHJlZmVyIHRvIGEgcmVwZWF0ZWQgZmllbGQgaXRzZWxmIChpLmUuIG5vdCB0byBhbnkKICAgcGFydGljdWxhciBpbmRleCB3aXRoaW4gaXQpLiAgVGhpcyBpcyB1c2VkIHdoZW5ldmVyIGEgc2V0IG9mIGVsZW1lbnRzIGFyZQogICBsb2dpY2FsbHkgZW5jbG9zZWQgaW4gYSBzaW5nbGUgY29kZSBzZWdtZW50LiAgRm9yIGV4YW1wbGUsIGFuIGVudGlyZQogICBleHRlbmQgYmxvY2sgKHBvc3NpYmx5IGNvbnRhaW5pbmcgbXVsdGlwbGUgZXh0ZW5zaW9uIGRlZmluaXRpb25zKSB3aWxsCiAgIGhhdmUgYW4gb3V0ZXIgbG9jYXRpb24gd2hvc2UgcGF0aCByZWZlcnMgdG8gdGhlICJleHRlbnNpb25zIiByZXBlYXRlZAogICBmaWVsZCB3aXRob3V0IGFuIGluZGV4LgogLSBNdWx0aXBsZSBsb2NhdGlvbnMgbWF5IGhhdmUgdGhlIHNhbWUgcGF0aC4gIFRoaXMgaGFwcGVucyB3aGVuIGEgc2luZ2xlCiAgIGxvZ2ljYWwgZGVjbGFyYXRpb24gaXMgc3ByZWFkIG91dCBhY3Jvc3MgbXVsdGlwbGUgcGxhY2VzLiAgVGhlIG1vc3QKICAgb2J2aW91cyBleGFtcGxlIGlzIHRoZSAiZXh0ZW5kIiBibG9jayBhZ2FpbiAtLSB0aGVyZSBtYXkgYmUgbXVsdGlwbGUKICAgZXh0ZW5kIGJsb2NrcyBpbiB0aGUgc2FtZSBzY29wZSwgZWFjaCBvZiB3aGljaCB3aWxsIGhhdmUgdGhlIHNhbWUgcGF0aC4KIC0gQSBsb2NhdGlvbidzIHNwYW4gaXMgbm90IGFsd2F5cyBhIHN1YnNldCBvZiBpdHMgcGFyZW50J3Mgc3Bhbi4gIEZvcgogICBleGFtcGxlLCB0aGUgImV4dGVuZGVlIiBvZiBhbiBleHRlbnNpb24gZGVjbGFyYXRpb24gYXBwZWFycyBhdCB0aGUKICAgYmVnaW5uaW5nIG9mIHRoZSAiZXh0ZW5kIiBibG9jayBhbmQgaXMgc2hhcmVkIGJ5IGFsbCBleHRlbnNpb25zIHdpdGhpbgogICB0aGUgYmxvY2suCiAtIEp1c3QgYmVjYXVzZSBhIGxvY2F0aW9uJ3Mgc3BhbiBpcyBhIHN1YnNldCBvZiBzb21lIG90aGVyIGxvY2F0aW9uJ3Mgc3BhbgogICBkb2VzIG5vdCBtZWFuIHRoYXQgaXQgaXMgYSBkZXNjZW5kZW50LiAgRm9yIGV4YW1wbGUsIGEgImdyb3VwIiBkZWZpbmVzCiAgIGJvdGggYSB0eXBlIGFuZCBhIGZpZWxkIGluIGEgc2luZ2xlIGRlY2xhcmF0aW9uLiAgVGh1cywgdGhlIGxvY2F0aW9ucwogICBjb3JyZXNwb25kaW5nIHRvIHRoZSB0eXBlIGFuZCBmaWVsZCBhbmQgdGhlaXIgY29tcG9uZW50cyB3aWxsIG92ZXJsYXAuCiAtIENvZGUgd2hpY2ggdHJpZXMgdG8gaW50ZXJwcmV0IGxvY2F0aW9ucyBzaG91bGQgcHJvYmFibHkgYmUgZGVzaWduZWQgdG8KICAgaWdub3JlIHRob3NlIHRoYXQgaXQgZG9lc24ndCB1bmRlcnN0YW5kLCBhcyBtb3JlIHR5cGVzIG9mIGxvY2F0aW9ucyBjb3VsZAogICBiZSByZWNvcmRlZCBpbiB0aGUgZnV0dXJlLgoKDQoFBBMCAAQSBIMGAgoKDQoFBBMCAAYSBIMGCxMKDQoFBBMCAAESBIMGFBwKDQoFBBMCAAMSBIMGHyAKDgoEBBMDABIGhAYC1wYDCg0KBQQTAwABEgSEBgoSCoMHCgYEEwMAAgASBJwGBCoa8gYgSWRlbnRpZmllcyB3aGljaCBwYXJ0IG9mIHRoZSBGaWxlRGVzY3JpcHRvclByb3RvIHdhcyBkZWZpbmVkIGF0IHRoaXMKIGxvY2F0aW9uLgoKIEVhY2ggZWxlbWVudCBpcyBhIGZpZWxkIG51bWJlciBvciBhbiBpbmRleC4gIFRoZXkgZm9ybSBhIHBhdGggZnJvbQogdGhlIHJvb3QgRmlsZURlc2NyaXB0b3JQcm90byB0byB0aGUgcGxhY2Ugd2hlcmUgdGhlIGRlZmluaXRpb24uICBGb3IKIGV4YW1wbGUsIHRoaXMgcGF0aDoKICAgWyA0LCAzLCAyLCA3LCAxIF0KIHJlZmVycyB0bzoKICAgZmlsZS5tZXNzYWdlX3R5cGUoMykgIC8vIDQsIDMKICAgICAgIC5maWVsZCg3KSAgICAgICAgIC8vIDIsIDcKICAgICAgIC5uYW1lKCkgICAgICAgICAgIC8vIDEKIFRoaXMgaXMgYmVjYXVzZSBGaWxlRGVzY3JpcHRvclByb3RvLm1lc3NhZ2VfdHlwZSBoYXMgZmllbGQgbnVtYmVyIDQ6CiAgIHJlcGVhdGVkIERlc2NyaXB0b3JQcm90byBtZXNzYWdlX3R5cGUgPSA0OwogYW5kIERlc2NyaXB0b3JQcm90by5maWVsZCBoYXMgZmllbGQgbnVtYmVyIDI6CiAgIHJlcGVhdGVkIEZpZWxkRGVzY3JpcHRvclByb3RvIGZpZWxkID0gMjsKIGFuZCBGaWVsZERlc2NyaXB0b3JQcm90by5uYW1lIGhhcyBmaWVsZCBudW1iZXIgMToKICAgb3B0aW9uYWwgc3RyaW5nIG5hbWUgPSAxOwoKIFRodXMsIHRoZSBhYm92ZSBwYXRoIGdpdmVzIHRoZSBsb2NhdGlvbiBvZiBhIGZpZWxkIG5hbWUuICBJZiB3ZSByZW1vdmVkCiB0aGUgbGFzdCBlbGVtZW50OgogICBbIDQsIDMsIDIsIDcgXQogdGhpcyBwYXRoIHJlZmVycyB0byB0aGUgd2hvbGUgZmllbGQgZGVjbGFyYXRpb24gKGZyb20gdGhlIGJlZ2lubmluZwogb2YgdGhlIGxhYmVsIHRvIHRoZSB0ZXJtaW5hdGluZyBzZW1pY29sb24pLgoKDwoHBBMDAAIABBIEnAYEDAoPCgcEEwMAAgAFEgScBg0SCg8KBwQTAwACAAESBJwGExcKDwoHBBMDAAIAAxIEnAYaGwoPCgcEEwMAAgAIEgScBhwpChAKCAQTAwACAAgCEgScBh0oCtICCgYEEwMAAgESBKMGBCoawQIgQWx3YXlzIGhhcyBleGFjdGx5IHRocmVlIG9yIGZvdXIgZWxlbWVudHM6IHN0YXJ0IGxpbmUsIHN0YXJ0IGNvbHVtbiwKIGVuZCBsaW5lIChvcHRpb25hbCwgb3RoZXJ3aXNlIGFzc3VtZWQgc2FtZSBhcyBzdGFydCBsaW5lKSwgZW5kIGNvbHVtbi4KIFRoZXNlIGFyZSBwYWNrZWQgaW50byBhIHNpbmdsZSBmaWVsZCBmb3IgZWZmaWNpZW5jeS4gIE5vdGUgdGhhdCBsaW5lCiBhbmQgY29sdW1uIG51bWJlcnMgYXJlIHplcm8tYmFzZWQgLS0gdHlwaWNhbGx5IHlvdSB3aWxsIHdhbnQgdG8gYWRkCiAxIHRvIGVhY2ggYmVmb3JlIGRpc3BsYXlpbmcgdG8gYSB1c2VyLgoKDwoHBBMDAAIBBBIEowYEDAoPCgcEEwMAAgEFEgSjBg0SCg8KBwQTAwACAQESBKMGExcKDwoHBBMDAAIBAxIEowYaGwoPCgcEEwMAAgEIEgSjBhwpChAKCAQTAwACAQgCEgSjBh0oCqUMCgYEEwMAAgISBNQGBCkalAwgSWYgdGhpcyBTb3VyY2VDb2RlSW5mbyByZXByZXNlbnRzIGEgY29tcGxldGUgZGVjbGFyYXRpb24sIHRoZXNlIGFyZSBhbnkKIGNvbW1lbnRzIGFwcGVhcmluZyBiZWZvcmUgYW5kIGFmdGVyIHRoZSBkZWNsYXJhdGlvbiB3aGljaCBhcHBlYXIgdG8gYmUKIGF0dGFjaGVkIHRvIHRoZSBkZWNsYXJhdGlvbi4KCiBBIHNlcmllcyBvZiBsaW5lIGNvbW1lbnRzIGFwcGVhcmluZyBvbiBjb25zZWN1dGl2ZSBsaW5lcywgd2l0aCBubyBvdGhlcgogdG9rZW5zIGFwcGVhcmluZyBvbiB0aG9zZSBsaW5lcywgd2lsbCBiZSB0cmVhdGVkIGFzIGEgc2luZ2xlIGNvbW1lbnQuCgogbGVhZGluZ19kZXRhY2hlZF9jb21tZW50cyB3aWxsIGtlZXAgcGFyYWdyYXBocyBvZiBjb21tZW50cyB0aGF0IGFwcGVhcgogYmVmb3JlIChidXQgbm90IGNvbm5lY3RlZCB0bykgdGhlIGN1cnJlbnQgZWxlbWVudC4gRWFjaCBwYXJhZ3JhcGgsCiBzZXBhcmF0ZWQgYnkgZW1wdHkgbGluZXMsIHdpbGwgYmUgb25lIGNvbW1lbnQgZWxlbWVudCBpbiB0aGUgcmVwZWF0ZWQKIGZpZWxkLgoKIE9ubHkgdGhlIGNvbW1lbnQgY29udGVudCBpcyBwcm92aWRlZDsgY29tbWVudCBtYXJrZXJzIChlLmcuIC8vKSBhcmUKIHN0cmlwcGVkIG91dC4gIEZvciBibG9jayBjb21tZW50cywgbGVhZGluZyB3aGl0ZXNwYWNlIGFuZCBhbiBhc3Rlcmlzawogd2lsbCBiZSBzdHJpcHBlZCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgZWFjaCBsaW5lIG90aGVyIHRoYW4gdGhlIGZpcnN0LgogTmV3bGluZXMgYXJlIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuCgogRXhhbXBsZXM6CgogICBvcHRpb25hbCBpbnQzMiBmb28gPSAxOyAgLy8gQ29tbWVudCBhdHRhY2hlZCB0byBmb28uCiAgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gYmFyLgogICBvcHRpb25hbCBpbnQzMiBiYXIgPSAyOwoKICAgb3B0aW9uYWwgc3RyaW5nIGJheiA9IDM7CiAgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gYmF6LgogICAvLyBBbm90aGVyIGxpbmUgYXR0YWNoZWQgdG8gYmF6LgoKICAgLy8gQ29tbWVudCBhdHRhY2hlZCB0byBxdXguCiAgIC8vCiAgIC8vIEFub3RoZXIgbGluZSBhdHRhY2hlZCB0byBxdXguCiAgIG9wdGlvbmFsIGRvdWJsZSBxdXggPSA0OwoKICAgLy8gRGV0YWNoZWQgY29tbWVudCBm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dG8gdGhlIGlkZW50aWZpZWQgb2Zmc2V0LiBUaGUgZW5kIG9mZnNldCBzaG91bGQgYmUgb25lIHBhc3QKIHRoZSBsYXN0IHJlbGV2YW50IGJ5dGUgKHNvIHRoZSBsZW5ndGggb2YgdGhlIHRleHQgPSBlbmQgLSBiZWdpbikuCgoPCgcEFAMAAgMEEgTwBgQMCg8KBwQUAwACAwUSBPAGDRIKDwoHBBQDAAIDARIE8AYTFgoPCgcEFAMAAgMDEgTwBhkaCucIChxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvEgpnb29nbGUuYXBpGhVnb29nbGUvYXBpL2h0dHAucHJvdG8aIGdvb2dsZS9wcm90b2J1Zi9kZXNjcmlwdG9yLnByb3RvOksKBGh0dHASHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxiwyrwiIAEoCzIULmdvb2dsZS5hcGkuSHR0cFJ1bGVSBGh0dHBCbgoOY29tLmdvb2dsZS5hcGlCEEFubm90YXRpb25zUHJvdG9QAVpBZ29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9hcGkvYW5ub3RhdGlvbnM7YW5ub3RhdGlvbnOiAgRHQVBJSrwGCgYSBA4AHgEKwgQKAQwSAw4AEjK3BCBDb3B5cmlnaHQgKGMpIDIwMTUsIEdvb2dsZSBJbmMuCgogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKCiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgoICgECEgMQABMKCQoCAwASAxIAHwoJCgIDARIDEwAqCggKAQgSAxUAWAoJCgIICxIDFQBYCggKAQgSAxYAIgoJCgIIChIDFgAiCggKAQgSAxcAMQoJCgIICBIDFwAxCggKAQgSAxgAJwoJCgIIARIDGAAnCggKAQgSAxkAIgoJCgIIJBIDGQAiCgkKAQcSBBsAHgEKHAoCBwASAx0CGxoRIFNlZSBgSHR0cFJ1bGVgLgoKCgoDBwACEgMbByQKCwoDBwAEEgQdAhsmCgoKAwcABhIDHQIKCgoKAwcAARIDHQsPCgoKAwcAAxIDHRIaYgZwcm90bzMKuAkKGnZvbHRoYV9wcm90b3MvaGVhbHRoLnByb3RvEgZoZWFsdGgaHGdvb2dsZS9hcGkvYW5ub3RhdGlvbnMucHJvdG8aG2dvb2dsZS9wcm90b2J1Zi9lbXB0eS5wcm90byJ9CgxIZWFsdGhTdGF0dXMSNgoFc3RhdGUYASABKA4yIC5oZWFsdGguSGVhbHRoU3RhdHVzLkhlYWx0aFN0YXRlUgVzdGF0ZSI1CgtIZWFsdGhTdGF0ZRILCgdIRUFMVEhZEAASDgoKT1ZFUkxPQURFRBABEgkKBURZSU5HEAIyYQoNSGVhbHRoU2VydmljZRJQCg9HZXRIZWFsdGhTdGF0dXMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaFC5oZWFsdGguSGVhbHRoU3RhdHVzIg+C0+STAgkSBy9oZWFsdGhCTAoab3JnLm9wZW5jb3JkLnZvbHRoYS5oZWFsdGhaLmdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby9oZWFsdGhKngYKBhIEAAAiAQoICgEMEgMAABIKCAoBCBIDAgBFCgkKAggLEgMCAEUKCAoBCBIDAwAzCgkKAggBEgMDADMKCAoBAhIDBQAPCgkKAgMAEgMHACYKCQoCAwESAwgAJQo3CgIEABIECwAWARorIEVuY29kZSBoZWFsdGggc3RhdHVzIG9mIGEgVm9sdGhhIGluc3RhbmNlCgoKCgMEAAESAwsIFAodCgQEAAQAEgQOBBIFGg8gSGVhbHRoIHN0YXRlcwoKDAoFBAAEAAESAw4JFAooCgYEAAQAAgASAw8IFCIZIFRoZSBpbnN0YW5jZSBpcyBoZWFsdGh5CgoOCgcEAAQAAgABEgMPCA8KDgoHBAAEAAIAAhIDDxITCkAKBgQABAACARIDEAgXIjEgVGhlIGluc3RhbmNlIGlzIG92ZXJsb2FkZWQsIGRlY3JlYXNlIHF1ZXJ5IHJhdGUKCg4KBwQABAACAQESAxAIEgoOCgcEAAQAAgECEgMQFRYKRwoGBAAEAAICEgMRCBIiOCBUaGUgaW5zdGFuY2UgaXMgaW4gYSBjcml0aWNhbCBjb25kaXRpb24sIGRvIG5vdCB1c2UgaXQKCg4KBwQABAACAgESAxEIDQoOCgcEAAQAAgICEgMREBEKPgoEBAACABIDFQQbGjEgQ3VycmVudCBzdGF0ZSBvZiBoZWFsdGggb2YgdGhpcyBWb2x0aGEgaW5zdGFuY2UKCg0KBQQAAgAEEgQVBBIFCgwKBQQAAgAGEgMVBA8KDAoFBAACAAESAxUQFQoMCgUEAAIAAxIDFRgZCiUKAgYAEgQZACIBGhkgSGVhbHRoIHJlbGF0ZWQgc2VydmljZXMKCgoKAwYAARIDGQgVCkEKBAYAAgASBBwEIAUaMyBSZXR1cm4gY3VycmVudCBoZWFsdGggc3RhdHVzIG9mIGEgVm9sdGhhIGluc3RhbmNlCgoMCgUGAAIAARIDHAgXCgwKBQYAAgACEgMcGC0KDAoFBgACAAMSAxw4RAoNCgUGAAIABBIEHQgfCgoRCgkGAAIABLDKvCISBB0IHwpiBnByb3RvMwrWiQgKH3ZvbHRoYV9wcm90b3Mvb3BlbmZsb3dfMTMucHJvdG8SC29wZW5mbG93XzEzGhxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvImMKCm9mcF9oZWFkZXISGAoHdmVyc2lvbhgBIAEoDVIHdmVyc2lvbhIpCgR0eXBlGAIgASgOMhUub3BlbmZsb3dfMTMub2ZwX3R5cGVSBHR5cGUSEAoDeGlkGAMgASgNUgN4aWQiqwEKFW9mcF9oZWxsb19lbGVtX2hlYWRlchI0CgR0eXBlGAEgASgOMiAub3BlbmZsb3dfMTMub2ZwX2hlbGxvX2VsZW1fdHlwZVIEdHlwZRJRCg12ZXJzaW9uYml0bWFwGAIgASgLMikub3BlbmZsb3dfMTMub2ZwX2hlbGxvX2VsZW1fdmVyc2lvbmJpdG1hcEgAUg12ZXJzaW9uYml0bWFwQgkKB2VsZW1lbnQiOAocb2ZwX2hlbGxvX2VsZW1fdmVyc2lvbmJpdG1hcBIYCgdiaXRtYXBzGAIgAygNUgdiaXRtYXBzIksKCW9mcF9oZWxsbxI+CghlbGVtZW50cxgBIAMoCzIiLm9wZW5mbG93XzEzLm9mcF9oZWxsb19lbGVtX2hlYWRlclIIZWxlbWVudHMiTQoRb2ZwX3N3aXRjaF9jb25maWcSFAoFZmxhZ3MYASABKA1SBWZsYWdzEiIKDW1pc3Nfc2VuZF9sZW4YAiABKA1SC21pc3NTZW5kTGVuIkIKDW9mcF90YWJsZV9tb2QSGQoIdGFibGVfaWQYASABKA1SB3RhYmxlSWQSFgoGY29uZmlnGAIgASgNUgZjb25maWcioAIKCG9mcF9wb3J0EhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIXCgdod19hZGRyGAIgAygNUgZod0FkZHISEgoEbmFtZRgDIAEoCVIEbmFtZRIWCgZjb25maWcYBCABKA1SBmNvbmZpZxIUCgVzdGF0ZRgFIAEoDVIFc3RhdGUSEgoEY3VychgGIAEoDVIEY3VychIeCgphZHZlcnRpc2VkGAcgASgNUgphZHZlcnRpc2VkEhwKCXN1cHBvcnRlZBgIIAEoDVIJc3VwcG9ydGVkEhIKBHBlZXIYCSABKA1SBHBlZXISHQoKY3Vycl9zcGVlZBgKIAEoDVIJY3VyclNwZWVkEhsKCW1heF9zcGVlZBgLIAEoDVIIbWF4U3BlZWQitQEKE29mcF9zd2l0Y2hfZmVhdHVyZXMSHwoLZGF0YXBhdGhfaWQYASABKARSCmRhdGFwYXRoSWQSGwoJbl9idWZmZXJzGAIgASgNUghuQnVmZmVycxIZCghuX3RhYmxlcxgDIAEoDVIHblRhYmxlcxIhCgxhdXhpbGlhcnlfaWQYBCABKA1SC2F1eGlsaWFyeUlkEiIKDGNhcGFiaWxpdGllcxgFIAEoDVIMY2FwYWJpbGl0aWVzInIKD29mcF9wb3J0X3N0YXR1cxI0CgZyZWFzb24YASABKA4yHC5vcGVuZmxvd18xMy5vZnBfcG9ydF9yZWFzb25SBnJlYXNvbhIpCgRkZXNjGAIgASgLMhUub3BlbmZsb3dfMTMub2ZwX3BvcnRSBGRlc2MiTwoRb2ZwX2RldmljZV9zdGF0dXMSOgoGc3RhdHVzGAEgASgOMiIub3BlbmZsb3dfMTMub2ZwX2RldmljZV9jb25uZWN0aW9uUgZzdGF0dXMiigEKDG9mcF9wb3J0X21vZBIXCgdwb3J0X25vGAEgASgNUgZwb3J0Tm8SFwoHaHdfYWRkchgCIAMoDVIGaHdBZGRyEhYKBmNvbmZpZxgDIAEoDVIGY29uZmlnEhIKBG1hc2sYBCABKA1SBG1hc2sSHAoJYWR2ZXJ0aXNlGAUgASgNUglhZHZlcnRpc2UidwoJb2ZwX21hdGNoEi8KBHR5cGUYASABKA4yGy5vcGVuZmxvd18xMy5vZnBfbWF0Y2hfdHlwZVIEdHlwZRI5CgpveG1fZmllbGRzGAIgAygLMhoub3BlbmZsb3dfMTMub2ZwX294bV9maWVsZFIJb3htRmllbGRzIuoBCg1vZnBfb3htX2ZpZWxkEjcKCW94bV9jbGFzcxgBIAEoDjIaLm9wZW5mbG93XzEzLm9mcF9veG1fY2xhc3NSCG94bUNsYXNzEj0KCW9mYl9maWVsZBgEIAEoCzIeLm9wZW5mbG93XzEzLm9mcF9veG1fb2ZiX2ZpZWxkSABSCG9mYkZpZWxkElgKEmV4cGVyaW1lbnRlcl9maWVsZBgFIAEoCzInLm9wZW5mbG93XzEzLm9mcF9veG1fZXhwZXJpbWVudGVyX2ZpZWxkSABSEWV4cGVyaW1lbnRlckZpZWxkQgcKBWZpZWxkItcOChFvZnBfb3htX29mYl9maWVsZBI0CgR0eXBlGAEgASgOMiAub3BlbmZsb3dfMTMub3htX29mYl9maWVsZF90eXBlc1IEdHlwZRIZCghoYXNfbWFzaxgCIAEoCFIHaGFzTWFzaxIUCgRwb3J0GAMgASgNSABSBHBvcnQSJQoNcGh5c2ljYWxfcG9ydBgEIAEoDUgAUgxwaHlzaWNhbFBvcnQSJwoOdGFibGVfbWV0YWRhdGEYBSABKARIAFINdGFibGVNZXRhZGF0YRIZCgdldGhfZHN0GAYgASgMSABSBmV0aERzdBIZCgdldGhfc3JjGAcgASgMSABSBmV0aFNyYxIbCghldGhfdHlwZRgIIAEoDUgAUgdldGhUeXBlEhsKCHZsYW5fdmlkGAkgASgNSABSB3ZsYW5WaWQSGwoIdmxhbl9wY3AYCiABKA1IAFIHdmxhblBjcBIZCgdpcF9kc2NwGAsgASgNSABSBmlwRHNjcBIXCgZpcF9lY24YDCABKA1IAFIFaXBFY24SGwoIaXBfcHJvdG8YDSABKA1IAFIHaXBQcm90bxIbCghpcHY0X3NyYxgOIAEoDUgAUgdpcHY0U3JjEhsKCGlwdjRfZHN0GA8gASgNSABSB2lwdjREc3QSGQoHdGNwX3NyYxgQIAEoDUgAUgZ0Y3BTcmMSGQoHdGNwX2RzdBgRIAEoDUgAUgZ0Y3BEc3QSGQoHdWRwX3NyYxgSIAEoDUgAUgZ1ZHBTcmMSGQoHdWRwX2RzdBgTIAEoDUgAUgZ1ZHBEc3QSGwoIc2N0cF9zcmMYFCABKA1IAFIHc2N0cFNyYxIbCghzY3RwX2RzdBgVIAEoDUgAUgdzY3RwRHN0EiEKC2ljbXB2NF90eXBlGBYgASgNSABSCmljbXB2NFR5cGUSIQoLaWNtcHY0X2NvZGUYFyABKA1IAFIKaWNtcHY0Q29kZRIXCgZhcnBfb3AYGCABKA1IAFIFYXJwT3ASGQoHYXJwX3NwYRgZIAEoDUgAUgZhcnBTcGESGQoHYXJwX3RwYRgaIAEoDUgAUgZhcnBUcGESGQoHYXJwX3NoYRgbIAEoDEgAUgZhcnBTaGESGQoHYXJwX3RoYRgcIAEoDEgAUgZhcnBUaGESGwoIaXB2Nl9zcmMYHSABKAxIAFIHaXB2NlNyYxIbCghpcHY2X2RzdBgeIAEoDEgAUgdpcHY2RHN0EiEKC2lwdjZfZmxhYmVsGB8gASgNSABSCmlwdjZGbGFiZWwSIQoLaWNtcHY2X3R5cGUYICABKA1IAFIKaWNtcHY2VHlwZRIhCgtpY21wdjZfY29kZRghIAEoDUgAUgppY21wdjZDb2RlEiYKDmlwdjZfbmRfdGFyZ2V0GCIgASgMSABSDGlwdjZOZFRhcmdldBIgCgtpcHY2X25kX3NzbBgjIAEoDEgAUglpcHY2TmRTc2wSIAoLaXB2Nl9uZF90bGwYJCABKAxIAFIJaXB2Nk5kVGxsEh8KCm1wbHNfbGFiZWwYJSABKA1IAFIJbXBsc0xhYmVsEhkKB21wbHNfdGMYJiABKA1IAFIGbXBsc1RjEhsKCG1wbHNfYm9zGCcgASgNSABSB21wbHNCb3MSGwoIcGJiX2lzaWQYKCABKA1IAFIHcGJiSXNpZBIdCgl0dW5uZWxfaWQYKSABKARIAFIIdHVubmVsSWQSIQoLaXB2Nl9leHRoZHIYKiABKA1IAFIKaXB2NkV4dGhkchIwChN0YWJsZV9tZXRhZGF0YV9tYXNrGGkgASgESAFSEXRhYmxlTWV0YWRhdGFNYXNrEiIKDGV0aF9kc3RfbWFzaxhqIAEoDEgBUgpldGhEc3RNYXNrEiIKDGV0aF9zcmNfbWFzaxhrIAEoDEgBUgpldGhTcmNNYXNrEiQKDXZsYW5fdmlkX21hc2sYbSABKA1IAVILdmxhblZpZE1hc2sSJAoNaXB2NF9zcmNfbWFzaxhyIAEoDUgBUgtpcHY0U3JjTWFzaxIkCg1pcHY0X2RzdF9tYXNrGHMgASgNSAFSC2lwdjREc3RNYXNrEiIKDGFycF9zcGFfbWFzaxh9IAEoDUgBUgphcnBTcGFNYXNrEiIKDGFycF90cGFfbWFzaxh+IAEoDUgBUgphcnBUcGFNYXNrEiUKDWlwdjZfc3JjX21hc2sYgQEgASgMSAFSC2lwdjZTcmNNYXNrEiUKDWlwdjZfZHN0X21hc2sYggEgASgMSAFSC2lwdjZEc3RNYXNrEisKEGlwdjZfZmxhYmVsX21hc2sYgwEgASgNSAFSDmlwdjZGbGFiZWxNYXNrEiUKDXBiYl9pc2lkX21hc2sYjAEgASgNSAFSC3BiYklzaWRNYXNrEicKDnR1bm5lbF9pZF9tYXNrGI0BIAEoBEgBUgx0dW5uZWxJZE1hc2sSKwoQaXB2Nl9leHRoZHJfbWFzaxiOASABKA1IAVIOaXB2NkV4dGhkck1hc2tCBwoFdmFsdWVCBgoEbWFzayJfChpvZnBfb3htX2V4cGVyaW1lbnRlcl9maWVsZBIdCgpveG1faGVhZGVyGAEgASgNUglveG1IZWFkZXISIgoMZXhwZXJpbWVudGVyGAIgASgNUgxleHBlcmltZW50ZXIisgQKCm9mcF9hY3Rpb24SMAoEdHlwZRgBIAEoDjIcLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fdHlwZVIEdHlwZRI4CgZvdXRwdXQYAiABKAsyHi5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX291dHB1dEgAUgZvdXRwdXQSPQoIbXBsc190dGwYAyABKAsyIC5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX21wbHNfdHRsSABSB21wbHNUdGwSMgoEcHVzaBgEIAEoCzIcLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fcHVzaEgAUgRwdXNoEj0KCHBvcF9tcGxzGAUgASgLMiAub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9wb3BfbXBsc0gAUgdwb3BNcGxzEjUKBWdyb3VwGAYgASgLMh0ub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9ncm91cEgAUgVncm91cBI3CgZud190dGwYByABKAsyHi5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX253X3R0bEgAUgVud1R0bBJACglzZXRfZmllbGQYCCABKAsyIS5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX3NldF9maWVsZEgAUghzZXRGaWVsZBJKCgxleHBlcmltZW50ZXIYCSABKAsyJC5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX2V4cGVyaW1lbnRlckgAUgxleHBlcmltZW50ZXJCCAoGYWN0aW9uIkAKEW9mcF9hY3Rpb25fb3V0cHV0EhIKBHBvcnQYASABKA1SBHBvcnQSFwoHbWF4X2xlbhgCIAEoDVIGbWF4TGVuIjAKE29mcF9hY3Rpb25fbXBsc190dGwSGQoIbXBsc190dGwYASABKA1SB21wbHNUdGwiLwoPb2ZwX2FjdGlvbl9wdXNoEhwKCWV0aGVydHlwZRgBIAEoDVIJZXRoZXJ0eXBlIjMKE29mcF9hY3Rpb25fcG9wX21wbHMSHAoJZXRoZXJ0eXBlGAEgASgNUglldGhlcnR5cGUiLQoQb2ZwX2FjdGlvbl9ncm91cBIZCghncm91cF9pZBgBIAEoDVIHZ3JvdXBJZCIqChFvZnBfYWN0aW9uX253X3R0bBIVCgZud190dGwYASABKA1SBW53VHRsIkgKFG9mcF9hY3Rpb25fc2V0X2ZpZWxkEjAKBWZpZWxkGAEgASgLMhoub3BlbmZsb3dfMTMub2ZwX294bV9maWVsZFIFZmllbGQiUQoXb2ZwX2FjdGlvbl9leHBlcmltZW50ZXISIgoMZXhwZXJpbWVudGVyGAEgASgNUgxleHBlcmltZW50ZXISEgoEZGF0YRgCIAEoDFIEZGF0YSKcAwoPb2ZwX2luc3RydWN0aW9uEhIKBHR5cGUYASABKA1SBHR5cGUSSAoKZ290b190YWJsZRgCIAEoCzInLm9wZW5mbG93XzEzLm9mcF9pbnN0cnVjdGlvbl9nb3RvX3RhYmxlSABSCWdvdG9UYWJsZRJUCg53cml0ZV9tZXRhZGF0YRgDIAEoCzIrLm9wZW5mbG93XzEzLm9mcF9pbnN0cnVjdGlvbl93cml0ZV9tZXRhZGF0YUgAUg13cml0ZU1ldGFkYXRhEkAKB2FjdGlvbnMYBCABKAsyJC5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25fYWN0aW9uc0gAUgdhY3Rpb25zEjoKBW1ldGVyGAUgASgLMiIub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uX21ldGVySABSBW1ldGVyEk8KDGV4cGVyaW1lbnRlchgGIAEoCzIpLm9wZW5mbG93XzEzLm9mcF9pbnN0cnVjdGlvbl9leHBlcmltZW50ZXJIAFIMZXhwZXJpbWVudGVyQgYKBGRhdGEiNwoab2ZwX2luc3RydWN0aW9uX2dvdG9fdGFibGUSGQoIdGFibGVfaWQYASABKA1SB3RhYmxlSWQiYQoeb2ZwX2luc3RydWN0aW9uX3dyaXRlX21ldGFkYXRhEhoKCG1ldGFkYXRhGAEgASgEUghtZXRhZGF0YRIjCg1tZXRhZGF0YV9tYXNrGAIgASgEUgxtZXRhZGF0YU1hc2siTAoXb2ZwX2luc3RydWN0aW9uX2FjdGlvbnMSMQoHYWN0aW9ucxgBIAMoCzIXLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25SB2FjdGlvbnMiMgoVb2ZwX2luc3RydWN0aW9uX21ldGVyEhkKCG1ldGVyX2lkGAEgASgNUgdtZXRlcklkIlYKHG9mcF9pbnN0cnVjdGlvbl9leHBlcmltZW50ZXISIgoMZXhwZXJpbWVudGVyGAEgASgNUgxleHBlcmltZW50ZXISEgoEZGF0YRgCIAEoDFIEZGF0YSLcAwoMb2ZwX2Zsb3dfbW9kEhYKBmNvb2tpZRgBIAEoBFIGY29va2llEh8KC2Nvb2tpZV9tYXNrGAIgASgEUgpjb29raWVNYXNrEhkKCHRhYmxlX2lkGAMgASgNUgd0YWJsZUlkEjsKB2NvbW1hbmQYBCABKA4yIS5vcGVuZmxvd18xMy5vZnBfZmxvd19tb2RfY29tbWFuZFIHY29tbWFuZBIhCgxpZGxlX3RpbWVvdXQYBSABKA1SC2lkbGVUaW1lb3V0EiEKDGhhcmRfdGltZW91dBgGIAEoDVILaGFyZFRpbWVvdXQSGgoIcHJpb3JpdHkYByABKA1SCHByaW9yaXR5EhsKCWJ1ZmZlcl9pZBgIIAEoDVIIYnVmZmVySWQSGQoIb3V0X3BvcnQYCSABKA1SB291dFBvcnQSGwoJb3V0X2dyb3VwGAogASgNUghvdXRHcm91cBIUCgVmbGFncxgLIAEoDVIFZmxhZ3MSLAoFbWF0Y2gYDCABKAsyFi5vcGVuZmxvd18xMy5vZnBfbWF0Y2hSBW1hdGNoEkAKDGluc3RydWN0aW9ucxgNIAMoCzIcLm9wZW5mbG93XzEzLm9mcF9pbnN0cnVjdGlvblIMaW5zdHJ1Y3Rpb25zIpcBCgpvZnBfYnVja2V0EhYKBndlaWdodBgBIAEoDVIGd2VpZ2h0Eh0KCndhdGNoX3BvcnQYAiABKA1SCXdhdGNoUG9ydBIfCgt3YXRjaF9ncm91cBgDIAEoDVIKd2F0Y2hHcm91cBIxCgdhY3Rpb25zGAQgAygLMhcub3BlbmZsb3dfMTMub2ZwX2FjdGlvblIHYWN0aW9ucyLMAQoNb2ZwX2dyb3VwX21vZBI8Cgdjb21tYW5kGAEgASgOMiIub3BlbmZsb3dfMTMub2ZwX2dyb3VwX21vZF9jb21tYW5kUgdjb21tYW5kEi8KBHR5cGUYAiABKA4yGy5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfdHlwZVIEdHlwZRIZCghncm91cF9pZBgDIAEoDVIHZ3JvdXBJZBIxCgdidWNrZXRzGAQgAygLMhcub3BlbmZsb3dfMTMub2ZwX2J1Y2tldFIHYnVja2V0cyKNAQoOb2ZwX3BhY2tldF9vdXQSGwoJYnVmZmVyX2lkGAEgASgNUghidWZmZXJJZBIXCgdpbl9wb3J0GAIgASgNUgZpblBvcnQSMQoHYWN0aW9ucxgDIAMoCzIXLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25SB2FjdGlvbnMSEgoEZGF0YRgEIAEoDFIEZGF0YSLcAQoNb2ZwX3BhY2tldF9pbhIbCglidWZmZXJfaWQYASABKA1SCGJ1ZmZlcklkEjkKBnJlYXNvbhgCIAEoDjIhLm9wZW5mbG93XzEzLm9mcF9wYWNrZXRfaW5fcmVhc29uUgZyZWFzb24SGQoIdGFibGVfaWQYAyABKA1SB3RhYmxlSWQSFgoGY29va2llGAQgASgEUgZjb29raWUSLAoFbWF0Y2gYBSABKAsyFi5vcGVuZmxvd18xMy5vZnBfbWF0Y2hSBW1hdGNoEhIKBGRhdGEYBiABKAxSBGRhdGEinQMKEG9mcF9mbG93X3JlbW92ZWQSFgoGY29va2llGAEgASgEUgZjb29raWUSGgoIcHJpb3JpdHkYAiABKA1SCHByaW9yaXR5EjwKBnJlYXNvbhgDIAEoDjIkLm9wZW5mbG93XzEzLm9mcF9mbG93X3JlbW92ZWRfcmVhc29uUgZyZWFzb24SGQoIdGFibGVfaWQYBCABKA1SB3RhYmxlSWQSIQoMZHVyYXRpb25fc2VjGAUgASgNUgtkdXJhdGlvblNlYxIjCg1kdXJhdGlvbl9uc2VjGAYgASgNUgxkdXJhdGlvbk5zZWMSIQoMaWRsZV90aW1lb3V0GAcgASgNUgtpZGxlVGltZW91dBIhCgxoYXJkX3RpbWVvdXQYCCABKA1SC2hhcmRUaW1lb3V0EiEKDHBhY2tldF9jb3VudBgJIAEoBFILcGFja2V0Q291bnQSHQoKYnl0ZV9jb3VudBgKIAEoBFIJYnl0ZUNvdW50EiwKBW1hdGNoGHkgASgLMhYub3BlbmZsb3dfMTMub2ZwX21hdGNoUgVtYXRjaCLcAgoVb2ZwX21ldGVyX2JhbmRfaGVhZGVyEjQKBHR5cGUYASABKA4yIC5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfYmFuZF90eXBlUgR0eXBlEhIKBHJhdGUYAiABKA1SBHJhdGUSHQoKYnVyc3Rfc2l6ZRgDIAEoDVIJYnVyc3RTaXplEjYKBGRyb3AYBCABKAsyIC5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfYmFuZF9kcm9wSABSBGRyb3ASSgoLZHNjcF9yZW1hcmsYBSABKAsyJy5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfYmFuZF9kc2NwX3JlbWFya0gAUgpkc2NwUmVtYXJrEk4KDGV4cGVyaW1lbnRlchgGIAEoCzIoLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX2V4cGVyaW1lbnRlckgAUgxleHBlcmltZW50ZXJCBgoEZGF0YSIVChNvZnBfbWV0ZXJfYmFuZF9kcm9wIjsKGm9mcF9tZXRlcl9iYW5kX2RzY3BfcmVtYXJrEh0KCnByZWNfbGV2ZWwYASABKA1SCXByZWNMZXZlbCJBChtvZnBfbWV0ZXJfYmFuZF9leHBlcmltZW50ZXISIgoMZXhwZXJpbWVudGVyGAEgASgNUgxleHBlcmltZW50ZXIiuAEKDW9mcF9tZXRlcl9tb2QSPAoHY29tbWFuZBgBIAEoDjIiLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9tb2RfY29tbWFuZFIHY29tbWFuZBIUCgVmbGFncxgCIAEoDVIFZmxhZ3MSGQoIbWV0ZXJfaWQYAyABKA1SB21ldGVySWQSOAoFYmFuZHMYBCADKAsyIi5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfYmFuZF9oZWFkZXJSBWJhbmRzInwKDW9mcF9lcnJvcl9tc2cSLwoGaGVhZGVyGAEgASgLMhcub3BlbmZsb3dfMTMub2ZwX2hlYWRlclIGaGVhZGVyEhIKBHR5cGUYAiABKA1SBHR5cGUSEgoEY29kZRgDIAEoDVIEY29kZRISCgRkYXRhGAQgASgMUgRkYXRhIoMBChpvZnBfZXJyb3JfZXhwZXJpbWVudGVyX21zZxISCgR0eXBlGAEgASgNUgR0eXBlEhkKCGV4cF90eXBlGAIgASgNUgdleHBUeXBlEiIKDGV4cGVyaW1lbnRlchgDIAEoDVIMZXhwZXJpbWVudGVyEhIKBGRhdGEYBCABKAxSBGRhdGEidgoVb2ZwX211bHRpcGFydF9yZXF1ZXN0EjMKBHR5cGUYASABKA4yHy5vcGVuZmxvd18xMy5vZnBfbXVsdGlwYXJ0X3R5cGVSBHR5cGUSFAoFZmxhZ3MYAiABKA1SBWZsYWdzEhIKBGJvZHkYAyABKAxSBGJvZHkidAoTb2ZwX211bHRpcGFydF9yZXBseRIzCgR0eXBlGAEgASgOMh8ub3BlbmZsb3dfMTMub2ZwX211bHRpcGFydF90eXBlUgR0eXBlEhQKBWZsYWdzGAIgASgNUgVmbGFncxISCgRib2R5GAMgASgMUgRib2R5Io8BCghvZnBfZGVzYxIZCghtZnJfZGVzYxgBIAEoCVIHbWZyRGVzYxIXCgdod19kZXNjGAIgASgJUgZod0Rlc2MSFwoHc3dfZGVzYxgDIAEoCVIGc3dEZXNjEh0KCnNlcmlhbF9udW0YBCABKAlSCXNlcmlhbE51bRIXCgdkcF9kZXNjGAUgASgJUgZkcERlc2Mi0gEKFm9mcF9mbG93X3N0YXRzX3JlcXVlc3QSGQoIdGFibGVfaWQYASABKA1SB3RhYmxlSWQSGQoIb3V0X3BvcnQYAiABKA1SB291dFBvcnQSGwoJb3V0X2dyb3VwGAMgASgNUghvdXRHcm91cBIWCgZjb29raWUYBCABKARSBmNvb2tpZRIfCgtjb29raWVfbWFzaxgFIAEoBFIKY29va2llTWFzaxIsCgVtYXRjaBgGIAEoCzIWLm9wZW5mbG93XzEzLm9mcF9tYXRjaFIFbWF0Y2gixQMKDm9mcF9mbG93X3N0YXRzEg4KAmlkGA4gASgEUgJpZBIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZBIhCgxkdXJhdGlvbl9zZWMYAiABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYAyABKA1SDGR1cmF0aW9uTnNlYxIaCghwcmlvcml0eRgEIAEoDVIIcHJpb3JpdHkSIQoMaWRsZV90aW1lb3V0GAUgASgNUgtpZGxlVGltZW91dBIhCgxoYXJkX3RpbWVvdXQYBiABKA1SC2hhcmRUaW1lb3V0EhQKBWZsYWdzGAcgASgNUgVmbGFncxIWCgZjb29raWUYCCABKARSBmNvb2tpZRIhCgxwYWNrZXRfY291bnQYCSABKARSC3BhY2tldENvdW50Eh0KCmJ5dGVfY291bnQYCiABKARSCWJ5dGVDb3VudBIsCgVtYXRjaBgMIAEoCzIWLm9wZW5mbG93XzEzLm9mcF9tYXRjaFIFbWF0Y2gSQAoMaW5zdHJ1Y3Rpb25zGA0gAygLMhwub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uUgxpbnN0cnVjdGlvbnMi1wEKG29mcF9hZ2dyZWdhdGVfc3RhdHNfcmVxdWVzdBIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZBIZCghvdXRfcG9ydBgCIAEoDVIHb3V0UG9ydBIbCglvdXRfZ3JvdXAYAyABKA1SCG91dEdyb3VwEhYKBmNvb2tpZRgEIAEoBFIGY29va2llEh8KC2Nvb2tpZV9tYXNrGAUgASgEUgpjb29raWVNYXNrEiwKBW1hdGNoGAYgASgLMhYub3BlbmZsb3dfMTMub2ZwX21hdGNoUgVtYXRjaCJ8ChlvZnBfYWdncmVnYXRlX3N0YXRzX3JlcGx5EiEKDHBhY2tldF9jb3VudBgBIAEoBFILcGFja2V0Q291bnQSHQoKYnl0ZV9jb3VudBgCIAEoBFIJYnl0ZUNvdW50Eh0KCmZsb3dfY291bnQYAyABKA1SCWZsb3dDb3VudCLtAwoab2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcGVydHkSPAoEdHlwZRgBIAEoDjIoLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfdHlwZVIEdHlwZRJWCgxpbnN0cnVjdGlvbnMYAiABKAsyMC5vcGVuZmxvd18xMy5vZnBfdGFibGVfZmVhdHVyZV9wcm9wX2luc3RydWN0aW9uc0gAUgxpbnN0cnVjdGlvbnMSUgoLbmV4dF90YWJsZXMYAyABKAsyLy5vcGVuZmxvd18xMy5vZnBfdGFibGVfZmVhdHVyZV9wcm9wX25leHRfdGFibGVzSABSCm5leHRUYWJsZXMSRwoHYWN0aW9ucxgEIAEoCzIrLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfYWN0aW9uc0gAUgdhY3Rpb25zEjsKA294bRgFIAEoCzInLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3Bfb3htSABSA294bRJWCgxleHBlcmltZW50ZXIYBiABKAsyMC5vcGVuZmxvd18xMy5vZnBfdGFibGVfZmVhdHVyZV9wcm9wX2V4cGVyaW1lbnRlckgAUgxleHBlcmltZW50ZXJCBwoFdmFsdWUiZwojb2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9pbnN0cnVjdGlvbnMSQAoMaW5zdHJ1Y3Rpb25zGAEgAygLMhwub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uUgxpbnN0cnVjdGlvbnMiSgoib2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9uZXh0X3RhYmxlcxIkCg5uZXh0X3RhYmxlX2lkcxgBIAMoDVIMbmV4dFRhYmxlSWRzIlMKHm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfYWN0aW9ucxIxCgdhY3Rpb25zGAEgAygLMhcub3BlbmZsb3dfMTMub2ZwX2FjdGlvblIHYWN0aW9ucyI1ChpvZnBfdGFibGVfZmVhdHVyZV9wcm9wX294bRIXCgdveG1faWRzGAMgAygNUgZveG1JZHMikQEKI29mcF90YWJsZV9mZWF0dXJlX3Byb3BfZXhwZXJpbWVudGVyEiIKDGV4cGVyaW1lbnRlchgCIAEoDVIMZXhwZXJpbWVudGVyEhkKCGV4cF90eXBlGAMgASgNUgdleHBUeXBlEisKEWV4cGVyaW1lbnRlcl9kYXRhGAQgAygNUhBleHBlcmltZW50ZXJEYXRhIpMCChJvZnBfdGFibGVfZmVhdHVyZXMSGQoIdGFibGVfaWQYASABKA1SB3RhYmxlSWQSEgoEbmFtZRgCIAEoCVIEbmFtZRIlCg5tZXRhZGF0YV9tYXRjaBgDIAEoBFINbWV0YWRhdGFNYXRjaBIlCg5tZXRhZGF0YV93cml0ZRgEIAEoBFINbWV0YWRhdGFXcml0ZRIWCgZjb25maWcYBSABKA1SBmNvbmZpZxIfCgttYXhfZW50cmllcxgGIAEoDVIKbWF4RW50cmllcxJHCgpwcm9wZXJ0aWVzGAcgAygLMicub3BlbmZsb3dfMTMub2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcGVydHlSCnByb3BlcnRpZXMilwEKD29mcF90YWJsZV9zdGF0cxIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZBIhCgxhY3RpdmVfY291bnQYAiABKA1SC2FjdGl2ZUNvdW50EiEKDGxvb2t1cF9jb3VudBgDIAEoBFILbG9va3VwQ291bnQSIwoNbWF0Y2hlZF9jb3VudBgEIAEoBFIMbWF0Y2hlZENvdW50IjEKFm9mcF9wb3J0X3N0YXRzX3JlcXVlc3QSFwoHcG9ydF9ubxgBIAEoDVIGcG9ydE5vIt0DCg5vZnBfcG9ydF9zdGF0cxIXCgdwb3J0X25vGAEgASgNUgZwb3J0Tm8SHQoKcnhfcGFja2V0cxgCIAEoBFIJcnhQYWNrZXRzEh0KCnR4X3BhY2tldHMYAyABKARSCXR4UGFja2V0cxIZCghyeF9ieXRlcxgEIAEoBFIHcnhCeXRlcxIZCgh0eF9ieXRlcxgFIAEoBFIHdHhCeXRlcxIdCgpyeF9kcm9wcGVkGAYgASgEUglyeERyb3BwZWQSHQoKdHhfZHJvcHBlZBgHIAEoBFIJdHhEcm9wcGVkEhsKCXJ4X2Vycm9ycxgIIAEoBFIIcnhFcnJvcnMSGwoJdHhfZXJyb3JzGAkgASgEUgh0eEVycm9ycxIgCgxyeF9mcmFtZV9lcnIYCiABKARSCnJ4RnJhbWVFcnISHgoLcnhfb3Zlcl9lcnIYCyABKARSCXJ4T3ZlckVychIcCgpyeF9jcmNfZXJyGAwgASgEUghyeENyY0VychIeCgpjb2xsaXNpb25zGA0gASgEUgpjb2xsaXNpb25zEiEKDGR1cmF0aW9uX3NlYxgOIAEoDVILZHVyYXRpb25TZWMSIwoNZHVyYXRpb25fbnNlYxgPIAEoDVIMZHVyYXRpb25Oc2VjIjQKF29mcF9ncm91cF9zdGF0c19yZXF1ZXN0EhkKCGdyb3VwX2lkGAEgASgNUgdncm91cElkIlYKEm9mcF9idWNrZXRfY291bnRlchIhCgxwYWNrZXRfY291bnQYASABKARSC3BhY2tldENvdW50Eh0KCmJ5dGVfY291bnQYAiABKARSCWJ5dGVDb3VudCKXAgoPb2ZwX2dyb3VwX3N0YXRzEhkKCGdyb3VwX2lkGAEgASgNUgdncm91cElkEhsKCXJlZl9jb3VudBgCIAEoDVIIcmVmQ291bnQSIQoMcGFja2V0X2NvdW50GAMgASgEUgtwYWNrZXRDb3VudBIdCgpieXRlX2NvdW50GAQgASgEUglieXRlQ291bnQSIQoMZHVyYXRpb25fc2VjGAUgASgNUgtkdXJhdGlvblNlYxIjCg1kdXJhdGlvbl9uc2VjGAYgASgNUgxkdXJhdGlvbk5zZWMSQgoMYnVja2V0X3N0YXRzGAcgAygLMh8ub3BlbmZsb3dfMTMub2ZwX2J1Y2tldF9jb3VudGVyUgtidWNrZXRTdGF0cyKPAQoOb2ZwX2dyb3VwX2Rlc2MSLwoEdHlwZRgBIAEoDjIbLm9wZW5mbG93XzEzLm9mcF9ncm91cF90eXBlUgR0eXBlEhkKCGdyb3VwX2lkGAIgASgNUgdncm91cElkEjEKB2J1Y2tldHMYAyADKAsyFy5vcGVuZmxvd18xMy5vZnBfYnVja2V0UgdidWNrZXRzInYKD29mcF9ncm91cF9lbnRyeRIvCgRkZXNjGAEgASgLMhsub3BlbmZsb3dfMTMub2ZwX2dyb3VwX2Rlc2NSBGRlc2MSMgoFc3RhdHMYAiABKAsyHC5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfc3RhdHNSBXN0YXRzIocBChJvZnBfZ3JvdXBfZmVhdHVyZXMSFAoFdHlwZXMYASABKA1SBXR5cGVzEiIKDGNhcGFiaWxpdGllcxgCIAEoDVIMY2FwYWJpbGl0aWVzEh0KCm1heF9ncm91cHMYAyADKA1SCW1heEdyb3VwcxIYCgdhY3Rpb25zGAQgAygNUgdhY3Rpb25zIjgKG29mcF9tZXRlcl9tdWx0aXBhcnRfcmVxdWVzdBIZCghtZXRlcl9pZBgBIAEoDVIHbWV0ZXJJZCJqChRvZnBfbWV0ZXJfYmFuZF9zdGF0cxIqChFwYWNrZXRfYmFuZF9jb3VudBgBIAEoBFIPcGFja2V0QmFuZENvdW50EiYKD2J5dGVfYmFuZF9jb3VudBgCIAEoBFINYnl0ZUJhbmRDb3VudCKhAgoPb2ZwX21ldGVyX3N0YXRzEhkKCG1ldGVyX2lkGAEgASgNUgdtZXRlcklkEh0KCmZsb3dfY291bnQYAiABKA1SCWZsb3dDb3VudBImCg9wYWNrZXRfaW5fY291bnQYAyABKARSDXBhY2tldEluQ291bnQSIgoNYnl0ZV9pbl9jb3VudBgEIAEoBFILYnl0ZUluQ291bnQSIQoMZHVyYXRpb25fc2VjGAUgASgNUgtkdXJhdGlvblNlYxIjCg1kdXJhdGlvbl9uc2VjGAYgASgNUgxkdXJhdGlvbk5zZWMSQAoKYmFuZF9zdGF0cxgHIAMoCzIhLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX3N0YXRzUgliYW5kU3RhdHMifQoQb2ZwX21ldGVyX2NvbmZpZxIUCgVmbGFncxgBIAEoDVIFZmxhZ3MSGQoIbWV0ZXJfaWQYAiABKA1SB21ldGVySWQSOAoFYmFuZHMYAyADKAsyIi5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfYmFuZF9oZWFkZXJSBWJhbmRzIq4BChJvZnBfbWV0ZXJfZmVhdHVyZXMSGwoJbWF4X21ldGVyGAEgASgNUghtYXhNZXRlchIdCgpiYW5kX3R5cGVzGAIgASgNUgliYW5kVHlwZXMSIgoMY2FwYWJpbGl0aWVzGAMgASgNUgxjYXBhYmlsaXRpZXMSGwoJbWF4X2JhbmRzGAQgASgNUghtYXhCYW5kcxIbCgltYXhfY29sb3IYBSABKA1SCG1heENvbG9yInwKD29mcF9tZXRlcl9lbnRyeRI1CgZjb25maWcYASABKAsyHS5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfY29uZmlnUgZjb25maWcSMgoFc3RhdHMYAiABKAsyHC5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfc3RhdHNSBXN0YXRzInYKIW9mcF9leHBlcmltZW50ZXJfbXVsdGlwYXJ0X2hlYWRlchIiCgxleHBlcmltZW50ZXIYASABKA1SDGV4cGVyaW1lbnRlchIZCghleHBfdHlwZRgCIAEoDVIHZXhwVHlwZRISCgRkYXRhGAMgASgMUgRkYXRhImwKF29mcF9leHBlcmltZW50ZXJfaGVhZGVyEiIKDGV4cGVyaW1lbnRlchgBIAEoDVIMZXhwZXJpbWVudGVyEhkKCGV4cF90eXBlGAIgASgNUgdleHBUeXBlEhIKBGRhdGEYAyABKAxSBGRhdGEiRQoVb2ZwX3F1ZXVlX3Byb3BfaGVhZGVyEhoKCHByb3BlcnR5GAEgASgNUghwcm9wZXJ0eRIQCgNsZW4YAiABKA1SA2xlbiJyChdvZnBfcXVldWVfcHJvcF9taW5fcmF0ZRJDCgtwcm9wX2hlYWRlchgBIAEoCzIiLm9wZW5mbG93XzEzLm9mcF9xdWV1ZV9wcm9wX2hlYWRlclIKcHJvcEhlYWRlchISCgRyYXRlGAIgASgNUgRyYXRlInIKF29mcF9xdWV1ZV9wcm9wX21heF9yYXRlEkMKC3Byb3BfaGVhZGVyGAEgASgLMiIub3BlbmZsb3dfMTMub2ZwX3F1ZXVlX3Byb3BfaGVhZGVyUgpwcm9wSGVhZGVyEhIKBHJhdGUYAiABKA1SBHJhdGUimgEKG29mcF9xdWV1ZV9wcm9wX2V4cGVyaW1lbnRlchJDCgtwcm9wX2hlYWRlchgBIAEoCzIiLm9wZW5mbG93XzEzLm9mcF9xdWV1ZV9wcm9wX2hlYWRlclIKcHJvcEhlYWRlchIiCgxleHBlcmltZW50ZXIYAiABKA1SDGV4cGVyaW1lbnRlchISCgRkYXRhGAMgASgMUgRkYXRhIoUBChBvZnBfcGFja2V0X3F1ZXVlEhkKCHF1ZXVlX2lkGAEgASgNUgdxdWV1ZUlkEhIKBHBvcnQYAiABKA1SBHBvcnQSQgoKcHJvcGVydGllcxgEIAMoCzIiLm9wZW5mbG93XzEzLm9mcF9xdWV1ZV9wcm9wX2hlYWRlclIKcHJvcGVydGllcyIyChxvZnBfcXVldWVfZ2V0X2NvbmZpZ19yZXF1ZXN0EhIKBHBvcnQYASABKA1SBHBvcnQiZwoab2ZwX3F1ZXVlX2dldF9jb25maWdfcmVwbHkSEgoEcG9ydBgBIAEoDVIEcG9ydBI1CgZxdWV1ZXMYAiADKAsyHS5vcGVuZmxvd18xMy5vZnBfcGFja2V0X3F1ZXVlUgZxdWV1ZXMiRQoUb2ZwX2FjdGlvbl9zZXRfcXVldWUSEgoEdHlwZRgBIAEoDVIEdHlwZRIZCghxdWV1ZV9pZBgDIAEoDVIHcXVldWVJZCJNChdvZnBfcXVldWVfc3RhdHNfcmVxdWVzdBIXCgdwb3J0X25vGAEgASgNUgZwb3J0Tm8SGQoIcXVldWVfaWQYAiABKA1SB3F1ZXVlSWQi5AEKD29mcF9xdWV1ZV9zdGF0cxIXCgdwb3J0X25vGAEgASgNUgZwb3J0Tm8SGQoIcXVldWVfaWQYAiABKA1SB3F1ZXVlSWQSGQoIdHhfYnl0ZXMYAyABKARSB3R4Qnl0ZXMSHQoKdHhfcGFja2V0cxgEIAEoBFIJdHhQYWNrZXRzEhsKCXR4X2Vycm9ycxgFIAEoBFIIdHhFcnJvcnMSIQoMZHVyYXRpb25fc2VjGAYgASgNUgtkdXJhdGlvblNlYxIjCg1kdXJhdGlvbl9uc2VjGAcgASgNUgxkdXJhdGlvbk5zZWMibQoQb2ZwX3JvbGVfcmVxdWVzdBI0CgRyb2xlGAEgASgOMiAub3BlbmZsb3dfMTMub2ZwX2NvbnRyb2xsZXJfcm9sZVIEcm9sZRIjCg1nZW5lcmF0aW9uX2lkGAIgASgEUgxnZW5lcmF0aW9uSWQijgEKEG9mcF9hc3luY19jb25maWcSJAoOcGFja2V0X2luX21hc2sYASADKA1SDHBhY2tldEluTWFzaxIoChBwb3J0X3N0YXR1c19tYXNrGAIgAygNUg5wb3J0U3RhdHVzTWFzaxIqChFmbG93X3JlbW92ZWRfbWFzaxgDIAMoDVIPZmxvd1JlbW92ZWRNYXNrImsKDk1ldGVyTW9kVXBkYXRlEg4KAmlkGAEgASgJUgJpZBI3CgltZXRlcl9tb2QYAiABKAsyGi5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfbW9kUghtZXRlck1vZBIQCgN4aWQYAyABKA1SA3hpZCJQCg9NZXRlclN0YXRzUmVwbHkSPQoLbWV0ZXJfc3RhdHMYASADKAsyHC5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfc3RhdHNSCm1ldGVyU3RhdHMiaQoPRmxvd1RhYmxlVXBkYXRlEg4KAmlkGAEgASgJUgJpZBI0CghmbG93X21vZBgCIAEoCzIZLm9wZW5mbG93XzEzLm9mcF9mbG93X21vZFIHZmxvd01vZBIQCgN4aWQYAyABKA1SA3hpZCJxChRGbG93R3JvdXBUYWJsZVVwZGF0ZRIOCgJpZBgBIAEoCVICaWQSNwoJZ3JvdXBfbW9kGAIgASgLMhoub3BlbmZsb3dfMTMub2ZwX2dyb3VwX21vZFIIZ3JvdXBNb2QSEAoDeGlkGAMgASgNUgN4aWQiOgoFRmxvd3MSMQoFaXRlbXMYASADKAsyGy5vcGVuZmxvd18xMy5vZnBfZmxvd19zdGF0c1IFaXRlbXMiPAoGTWV0ZXJzEjIKBWl0ZW1zGAEgAygLMhwub3BlbmZsb3dfMTMub2ZwX21ldGVyX2VudHJ5UgVpdGVtcyJACgpGbG93R3JvdXBzEjIKBWl0ZW1zGAEgAygLMhwub3BlbmZsb3dfMTMub2ZwX2dyb3VwX2VudHJ5UgVpdGVtcyJpCgtGbG93Q2hhbmdlcxIpCgZ0b19hZGQYASABKAsyEi5vcGVuZmxvd18xMy5GbG93c1IFdG9BZGQSLwoJdG9fcmVtb3ZlGAIgASgLMhIub3BlbmZsb3dfMTMuRmxvd3NSCHRvUmVtb3ZlIq4BChBGbG93R3JvdXBDaGFuZ2VzEi4KBnRvX2FkZBgBIAEoCzIXLm9wZW5mbG93XzEzLkZsb3dHcm91cHNSBXRvQWRkEjQKCXRvX3JlbW92ZRgCIAEoCzIXLm9wZW5mbG93XzEzLkZsb3dHcm91cHNSCHRvUmVtb3ZlEjQKCXRvX3VwZGF0ZRgDIAEoCzIXLm9wZW5mbG93XzEzLkZsb3dHcm91cHNSCHRvVXBkYXRlIlMKCFBhY2tldEluEg4KAmlkGAEgASgJUgJpZBI3CglwYWNrZXRfaW4YAiABKAsyGi5vcGVuZmxvd18xMy5vZnBfcGFja2V0X2luUghwYWNrZXRJbiJXCglQYWNrZXRPdXQSDgoCaWQYASABKAlSAmlkEjoKCnBhY2tldF9vdXQYAiABKAsyGy5vcGVuZmxvd18xMy5vZnBfcGFja2V0X291dFIJcGFja2V0T3V0IuIBCgtDaGFuZ2VFdmVudBIOCgJpZBgBIAEoCVICaWQSPwoLcG9ydF9zdGF0dXMYAiABKAsyHC5vcGVuZmxvd18xMy5vZnBfcG9ydF9zdGF0dXNIAFIKcG9ydFN0YXR1cxIyCgVlcnJvchgDIAEoCzIaLm9wZW5mbG93XzEzLm9mcF9lcnJvcl9tc2dIAFIFZXJyb3ISRQoNZGV2aWNlX3N0YXR1cxgEIAEoCzIeLm9wZW5mbG93XzEzLm9mcF9kZXZpY2Vfc3RhdHVzSABSDGRldmljZVN0YXR1c0IHCgVldmVudCJFCgxGbG93TWV0YWRhdGESNQoGbWV0ZXJzGAEgAygLMh0ub3BlbmZsb3dfMTMub2ZwX21ldGVyX2NvbmZpZ1IGbWV0ZXJzKtUBCgtvZnBfcG9ydF9ubxIQCgxPRlBQX0lOVkFMSUQQABIQCghPRlBQX01BWBCA/v//BxIUCgxPRlBQX0lOX1BPUlQQ+P///wcSEgoKT0ZQUF9UQUJMRRD5////BxITCgtPRlBQX05PUk1BTBD6////BxISCgpPRlBQX0ZMT09EEPv///8HEhAKCE9GUFBfQUxMEPz///8HEhcKD09GUFBfQ09OVFJPTExFUhD9////BxISCgpPRlBQX0xPQ0FMEP7///8HEhAKCE9GUFBfQU5ZEP////8HKsgFCghvZnBfdHlwZRIOCgpPRlBUX0hFTExPEAASDgoKT0ZQVF9FUlJPUhABEhUKEU9GUFRfRUNIT19SRVFVRVNUEAISEwoPT0ZQVF9FQ0hPX1JFUExZEAMSFQoRT0ZQVF9FWFBFUklNRU5URVIQBBIZChVPRlBUX0ZFQVRVUkVTX1JFUVVFU1QQBRIXChNPRlBUX0ZFQVRVUkVTX1JFUExZEAYSGwoXT0ZQVF9HRVRfQ09ORklHX1JFUVVFU1QQBxIZChVPRlBUX0dFVF9DT05GSUdfUkVQTFkQCBITCg9PRlBUX1NFVF9DT05GSUcQCRISCg5PRlBUX1BBQ0tFVF9JThAKEhUKEU9GUFRfRkxPV19SRU1PVkVEEAsSFAoQT0ZQVF9QT1JUX1NUQVRVUxAMEhMKD09GUFRfUEFDS0VUX09VVBANEhEKDU9GUFRfRkxPV19NT0QQDhISCg5PRlBUX0dST1VQX01PRBAPEhEKDU9GUFRfUE9SVF9NT0QQEBISCg5PRlBUX1RBQkxFX01PRBAREhoKFk9GUFRfTVVMVElQQVJUX1JFUVVFU1QQEhIYChRPRlBUX01VTFRJUEFSVF9SRVBMWRATEhgKFE9GUFRfQkFSUklFUl9SRVFVRVNUEBQSFgoST0ZQVF9CQVJSSUVSX1JFUExZEBUSIQodT0ZQVF9RVUVVRV9HRVRfQ09ORklHX1JFUVVFU1QQFhIfChtPRlBUX1FVRVVFX0dFVF9DT05GSUdfUkVQTFkQFxIVChFPRlBUX1JPTEVfUkVRVUVTVBAYEhMKD09GUFRfUk9MRV9SRVBMWRAZEhoKFk9GUFRfR0VUX0FTWU5DX1JFUVVFU1QQGhIYChRPRlBUX0dFVF9BU1lOQ19SRVBMWRAbEhIKDk9GUFRfU0VUX0FTWU5DEBwSEgoOT0ZQVF9NRVRFUl9NT0QQHSpDChNvZnBfaGVsbG9fZWxlbV90eXBlEhIKDk9GUEhFVF9JTlZBTElEEAASGAoUT0ZQSEVUX1ZFUlNJT05CSVRNQVAQASplChBvZnBfY29uZmlnX2ZsYWdzEhQKEE9GUENfRlJBR19OT1JNQUwQABISCg5PRlBDX0ZSQUdfRFJPUBABEhMKD09GUENfRlJBR19SRUFTTRACEhIKDk9GUENfRlJBR19NQVNLEAMqQAoQb2ZwX3RhYmxlX2NvbmZpZxIRCg1PRlBUQ19JTlZBTElEEAASGQoVT0ZQVENfREVQUkVDQVRFRF9NQVNLEAMqPgoJb2ZwX3RhYmxlEhEKDU9GUFRUX0lOVkFMSUQQABIOCglPRlBUVF9NQVgQ/gESDgoJT0ZQVFRfQUxMEP8BKrsBChBvZnBfY2FwYWJpbGl0aWVzEhAKDE9GUENfSU5WQUxJRBAAEhMKD09GUENfRkxPV19TVEFUUxABEhQKEE9GUENfVEFCTEVfU1RBVFMQAhITCg9PRlBDX1BPUlRfU1RBVFMQBBIUChBPRlBDX0dST1VQX1NUQVRTEAgSEQoNT0ZQQ19JUF9SRUFTTRAgEhQKEE9GUENfUVVFVUVfU1RBVFMQQBIWChFPRlBDX1BPUlRfQkxPQ0tFRBCAAip2Cg9vZnBfcG9ydF9jb25maWcSEQoNT0ZQUENfSU5WQUxJRBAAEhMKD09GUFBDX1BPUlRfRE9XThABEhEKDU9GUFBDX05PX1JFQ1YQBBIQCgxPRlBQQ19OT19GV0QQIBIWChJPRlBQQ19OT19QQUNLRVRfSU4QQCpbCg5vZnBfcG9ydF9zdGF0ZRIRCg1PRlBQU19JTlZBTElEEAASEwoPT0ZQUFNfTElOS19ET1dOEAESEQoNT0ZQUFNfQkxPQ0tFRBACEg4KCk9GUFBTX0xJVkUQBCrdAgoRb2ZwX3BvcnRfZmVhdHVyZXMSEQoNT0ZQUEZfSU5WQUxJRBAAEhEKDU9GUFBGXzEwTUJfSEQQARIRCg1PRlBQRl8xME1CX0ZEEAISEgoOT0ZQUEZfMTAwTUJfSEQQBBISCg5PRlBQRl8xMDBNQl9GRBAIEhAKDE9GUFBGXzFHQl9IRBAQEhAKDE9GUFBGXzFHQl9GRBAgEhEKDU9GUFBGXzEwR0JfRkQQQBISCg1PRlBQRl80MEdCX0ZEEIABEhMKDk9GUFBGXzEwMEdCX0ZEEIACEhEKDE9GUFBGXzFUQl9GRBCABBIQCgtPRlBQRl9PVEhFUhCACBIRCgxPRlBQRl9DT1BQRVIQgBASEAoLT0ZQUEZfRklCRVIQgCASEgoNT0ZQUEZfQVVUT05FRxCAQBIRCgtPRlBQRl9QQVVTRRCAgAESFgoQT0ZQUEZfUEFVU0VfQVNZTRCAgAIqRAoPb2ZwX3BvcnRfcmVhc29uEg0KCU9GUFBSX0FERBAAEhAKDE9GUFBSX0RFTEVURRABEhAKDE9GUFBSX01PRElGWRACKkYKFW9mcF9kZXZpY2VfY29ubmVjdGlvbhIUChBPRlBERVZfQ09OTkVDVEVEEAASFwoTT0ZQREVWX0RJU0NPTk5FQ1RFRBABKjMKDm9mcF9tYXRjaF90eXBlEhIKDk9GUE1UX1NUQU5EQVJEEAASDQoJT0ZQTVRfT1hNEAEqawoNb2ZwX294bV9jbGFzcxIQCgxPRlBYTUNfTlhNXzAQABIQCgxPRlBYTUNfTlhNXzEQARIbChVPRlBYTUNfT1BFTkZMT1dfQkFTSUMQgIACEhkKE09GUFhNQ19FWFBFUklNRU5URVIQ//8DKpAIChNveG1fb2ZiX2ZpZWxkX3R5cGVzEhYKEk9GUFhNVF9PRkJfSU5fUE9SVBAAEhoKFk9GUFhNVF9PRkJfSU5fUEhZX1BPUlQQARIXChNPRlBYTVRfT0ZCX01FVEFEQVRBEAISFgoST0ZQWE1UX09GQl9FVEhfRFNUEAMSFgoST0ZQWE1UX09GQl9FVEhfU1JDEAQSFwoTT0ZQWE1UX09GQl9FVEhfVFlQRRAFEhcKE09GUFhNVF9PRkJfVkxBTl9WSUQQBhIXChNPRlBYTVRfT0ZCX1ZMQU5fUENQEAcSFgoST0ZQWE1UX09GQl9JUF9EU0NQEAgSFQoRT0ZQWE1UX09GQl9JUF9FQ04QCRIXChNPRlBYTVRfT0ZCX0lQX1BST1RPEAoSFwoTT0ZQWE1UX09GQl9JUFY0X1NSQxALEhcKE09GUFhNVF9PRkJfSVBWNF9EU1QQDBIWChJPRlBYTVRfT0ZCX1RDUF9TUkMQDRIWChJPRlBYTVRfT0ZCX1RDUF9EU1QQDhIWChJPRlBYTVRfT0ZCX1VEUF9TUkMQDxIWChJPRlBYTVRfT0ZCX1VEUF9EU1QQEBIXChNPRlBYTVRfT0ZCX1NDVFBfU1JDEBESFwoTT0ZQWE1UX09GQl9TQ1RQX0RTVBASEhoKFk9GUFhNVF9PRkJfSUNNUFY0X1RZUEUQExIaChZPRlBYTVRfT0ZCX0lDTVBWNF9DT0RFEBQSFQoRT0ZQWE1UX09GQl9BUlBfT1AQFRIWChJPRlBYTVRfT0ZCX0FSUF9TUEEQFhIWChJPRlBYTVRfT0ZCX0FSUF9UUEEQFxIWChJPRlBYTVRfT0ZCX0FSUF9TSEEQGBIWChJPRlBYTVRfT0ZCX0FSUF9USEEQGRIXChNPRlBYTVRfT0ZCX0lQVjZfU1JDEBoSFwoTT0ZQWE1UX09GQl9JUFY2X0RTVBAbEhoKFk9GUFhNVF9PRkJfSVBWNl9GTEFCRUwQHBIaChZPRlBYTVRfT0ZCX0lDTVBWNl9UWVBFEB0SGgoWT0ZQWE1UX09GQl9JQ01QVjZfQ09ERRAeEh0KGU9GUFhNVF9PRkJfSVBWNl9ORF9UQVJHRVQQHxIaChZPRlBYTVRfT0ZCX0lQVjZfTkRfU0xMECASGgoWT0ZQWE1UX09GQl9JUFY2X05EX1RMTBAhEhkKFU9GUFhNVF9PRkJfTVBMU19MQUJFTBAiEhYKEk9GUFhNVF9PRkJfTVBMU19UQxAjEhcKE09GUFhNVF9PRkJfTVBMU19CT1MQJBIXChNPRlBYTVRfT0ZCX1BCQl9JU0lEECUSGAoUT0ZQWE1UX09GQl9UVU5ORUxfSUQQJhIaChZPRlBYTVRfT0ZCX0lQVjZfRVhUSERSECcqMwoLb2ZwX3ZsYW5faWQSDwoLT0ZQVklEX05PTkUQABITCg5PRlBWSURfUFJFU0VOVBCAICrJAQoUb2ZwX2lwdjZleHRoZHJfZmxhZ3MSEgoOT0ZQSUVIX0lOVkFMSUQQABIRCg1PRlBJRUhfTk9ORVhUEAESDgoKT0ZQSUVIX0VTUBACEg8KC09GUElFSF9BVVRIEAQSDwoLT0ZQSUVIX0RFU1QQCBIPCgtPRlBJRUhfRlJBRxAQEhEKDU9GUElFSF9ST1VURVIQIBIOCgpPRlBJRUhfSE9QEEASEQoMT0ZQSUVIX1VOUkVQEIABEhEKDE9GUElFSF9VTlNFURCAAir8AgoPb2ZwX2FjdGlvbl90eXBlEhAKDE9GUEFUX09VVFBVVBAAEhYKEk9GUEFUX0NPUFlfVFRMX09VVBALEhUKEU9GUEFUX0NPUFlfVFRMX0lOEAwSFgoST0ZQQVRfU0VUX01QTFNfVFRMEA8SFgoST0ZQQVRfREVDX01QTFNfVFRMEBASEwoPT0ZQQVRfUFVTSF9WTEFOEBESEgoOT0ZQQVRfUE9QX1ZMQU4QEhITCg9PRlBBVF9QVVNIX01QTFMQExISCg5PRlBBVF9QT1BfTVBMUxAUEhMKD09GUEFUX1NFVF9RVUVVRRAVEg8KC09GUEFUX0dST1VQEBYSFAoQT0ZQQVRfU0VUX05XX1RUTBAXEhQKEE9GUEFUX0RFQ19OV19UVEwQGBITCg9PRlBBVF9TRVRfRklFTEQQGRISCg5PRlBBVF9QVVNIX1BCQhAaEhEKDU9GUEFUX1BPUF9QQkIQGxIYChJPRlBBVF9FWFBFUklNRU5URVIQ//8DKlYKFm9mcF9jb250cm9sbGVyX21heF9sZW4SEgoOT0ZQQ01MX0lOVkFMSUQQABIQCgpPRlBDTUxfTUFYEOX/AxIWChBPRlBDTUxfTk9fQlVGRkVSEP//AyrPAQoUb2ZwX2luc3RydWN0aW9uX3R5cGUSEQoNT0ZQSVRfSU5WQUxJRBAAEhQKEE9GUElUX0dPVE9fVEFCTEUQARIYChRPRlBJVF9XUklURV9NRVRBREFUQRACEhcKE09GUElUX1dSSVRFX0FDVElPTlMQAxIXChNPRlBJVF9BUFBMWV9BQ1RJT05TEAQSFwoTT0ZQSVRfQ0xFQVJfQUNUSU9OUxAFEg8KC09GUElUX01FVEVSEAYSGAoST0ZQSVRfRVhQRVJJTUVOVEVSEP//Ayp7ChRvZnBfZmxvd19tb2RfY29tbWFuZBINCglPRlBGQ19BREQQABIQCgxPRlBGQ19NT0RJRlkQARIXChNPRlBGQ19NT0RJRllfU1RSSUNUEAISEAoMT0ZQRkNfREVMRVRFEAMSFwoTT0ZQRkNfREVMRVRFX1NUUklDVBAEKqMBChJvZnBfZmxvd19tb2RfZmxhZ3MSEQoNT0ZQRkZfSU5WQUxJRBAAEhcKE09GUEZGX1NFTkRfRkxPV19SRU0QARIXChNPRlBGRl9DSEVDS19PVkVSTEFQEAISFgoST0ZQRkZfUkVTRVRfQ09VTlRTEAQSFwoTT0ZQRkZfTk9fUEtUX0NPVU5UUxAIEhcKE09GUEZGX05PX0JZVF9DT1VOVFMQECpTCglvZnBfZ3JvdXASEAoMT0ZQR19JTlZBTElEEAASEAoIT0ZQR19NQVgQgP7//wcSEAoIT0ZQR19BTEwQ/P///wcSEAoIT0ZQR19BTlkQ/////wcqSgoVb2ZwX2dyb3VwX21vZF9jb21tYW5kEg0KCU9GUEdDX0FERBAAEhAKDE9GUEdDX01PRElGWRABEhAKDE9GUEdDX0RFTEVURRACKlMKDm9mcF9ncm91cF90eXBlEg0KCU9GUEdUX0FMTBAAEhAKDE9GUEdUX1NFTEVDVBABEhIKDk9GUEdUX0lORElSRUNUEAISDAoIT0ZQR1RfRkYQAypQChRvZnBfcGFja2V0X2luX3JlYXNvbhIRCg1PRlBSX05PX01BVENIEAASDwoLT0ZQUl9BQ1RJT04QARIUChBPRlBSX0lOVkFMSURfVFRMEAIqiwEKF29mcF9mbG93X3JlbW92ZWRfcmVhc29uEhYKEk9GUFJSX0lETEVfVElNRU9VVBAAEhYKEk9GUFJSX0hBUkRfVElNRU9VVBABEhAKDE9GUFJSX0RFTEVURRACEhYKEk9GUFJSX0dST1VQX0RFTEVURRADEhYKEk9GUFJSX01FVEVSX0RFTEVURRAEKm4KCW9mcF9tZXRlchINCglPRlBNX1pFUk8QABIQCghPRlBNX01BWBCAgPz/BxIVCg1PRlBNX1NMT1dQQVRIEP3///8HEhcKD09GUE1fQ09OVFJPTExFUhD+////BxIQCghPRlBNX0FMTBD/////ByptChNvZnBfbWV0ZXJfYmFuZF90eXBlEhIKDk9GUE1CVF9JTlZBTElEEAASDwoLT0ZQTUJUX0RST1AQARIWChJPRlBNQlRfRFNDUF9SRU1BUksQAhIZChNPRlBNQlRfRVhQRVJJTUVOVEVSEP//AypKChVvZnBfbWV0ZXJfbW9kX2NvbW1hbmQSDQoJT0ZQTUNfQUREEAASEAoMT0ZQTUNfTU9ESUZZEAESEAoMT0ZQTUNfREVMRVRFEAIqZwoPb2ZwX21ldGVyX2ZsYWdzEhEKDU9GUE1GX0lOVkFMSUQQABIOCgpPRlBNRl9LQlBTEAESDwoLT0ZQTUZfUEtUUFMQAhIPCgtPRlBNRl9CVVJTVBAEEg8KC09GUE1GX1NUQVRTEAgqpAMKDm9mcF9lcnJvcl90eXBlEhYKEk9GUEVUX0hFTExPX0ZBSUxFRBAAEhUKEU9GUEVUX0JBRF9SRVFVRVNUEAESFAoQT0ZQRVRfQkFEX0FDVElPThACEhkKFU9GUEVUX0JBRF9JTlNUUlVDVElPThADEhMKD09GUEVUX0JBRF9NQVRDSBAEEhkKFU9GUEVUX0ZMT1dfTU9EX0ZBSUxFRBAFEhoKFk9GUEVUX0dST1VQX01PRF9GQUlMRUQQBhIZChVPRlBFVF9QT1JUX01PRF9GQUlMRUQQBxIaChZPRlBFVF9UQUJMRV9NT0RfRkFJTEVEEAgSGQoVT0ZQRVRfUVVFVUVfT1BfRkFJTEVEEAkSHgoaT0ZQRVRfU1dJVENIX0NPTkZJR19GQUlMRUQQChIdChlPRlBFVF9ST0xFX1JFUVVFU1RfRkFJTEVEEAsSGgoWT0ZQRVRfTUVURVJfTU9EX0ZBSUxFRBAMEh8KG09GUEVUX1RBQkxFX0ZFQVRVUkVTX0ZBSUxFRBANEhgKEk9GUEVUX0VYUEVSSU1FTlRFUhD//wMqQgoVb2ZwX2hlbGxvX2ZhaWxlZF9jb2RlEhcKE09GUEhGQ19JTkNPTVBBVElCTEUQABIQCgxPRlBIRkNfRVBFUk0QASrtAgoUb2ZwX2JhZF9yZXF1ZXN0X2NvZGUSFgoST0ZQQlJDX0JBRF9WRVJTSU9OEAASEwoPT0ZQQlJDX0JBRF9UWVBFEAESGAoUT0ZQQlJDX0JBRF9NVUxUSVBBUlQQAhIbChdPRlBCUkNfQkFEX0VYUEVSSU1FTlRFUhADEhcKE09GUEJSQ19CQURfRVhQX1RZUEUQBBIQCgxPRlBCUkNfRVBFUk0QBRISCg5PRlBCUkNfQkFEX0xFThAGEhcKE09GUEJSQ19CVUZGRVJfRU1QVFkQBxIZChVPRlBCUkNfQlVGRkVSX1VOS05PV04QCBIXChNPRlBCUkNfQkFEX1RBQkxFX0lEEAkSEwoPT0ZQQlJDX0lTX1NMQVZFEAoSEwoPT0ZQQlJDX0JBRF9QT1JUEAsSFQoRT0ZQQlJDX0JBRF9QQUNLRVQQDBIkCiBPRlBCUkNfTVVMVElQQVJUX0JVRkZFUl9PVkVSRkxPVxANKpwDChNvZnBfYmFkX2FjdGlvbl9jb2RlEhMKD09GUEJBQ19CQURfVFlQRRAAEhIKDk9GUEJBQ19CQURfTEVOEAESGwoXT0ZQQkFDX0JBRF9FWFBFUklNRU5URVIQAhIXChNPRlBCQUNfQkFEX0VYUF9UWVBFEAMSFwoTT0ZQQkFDX0JBRF9PVVRfUE9SVBAEEhcKE09GUEJBQ19CQURfQVJHVU1FTlQQBRIQCgxPRlBCQUNfRVBFUk0QBhITCg9PRlBCQUNfVE9PX01BTlkQBxIUChBPRlBCQUNfQkFEX1FVRVVFEAgSGAoUT0ZQQkFDX0JBRF9PVVRfR1JPVVAQCRIdChlPRlBCQUNfTUFUQ0hfSU5DT05TSVNURU5UEAoSHAoYT0ZQQkFDX1VOU1VQUE9SVEVEX09SREVSEAsSEgoOT0ZQQkFDX0JBRF9UQUcQDBIXChNPRlBCQUNfQkFEX1NFVF9UWVBFEA0SFgoST0ZQQkFDX0JBRF9TRVRfTEVOEA4SGwoXT0ZQQkFDX0JBRF9TRVRfQVJHVU1FTlQQDyr6AQoYb2ZwX2JhZF9pbnN0cnVjdGlvbl9jb2RlEhcKE09GUEJJQ19VTktOT1dOX0lOU1QQABIVChFPRlBCSUNfVU5TVVBfSU5TVBABEhcKE09GUEJJQ19CQURfVEFCTEVfSUQQAhIZChVPRlBCSUNfVU5TVVBfTUVUQURBVEEQAxIeChpPRlBCSUNfVU5TVVBfTUVUQURBVEFfTUFTSxAEEhsKF09GUEJJQ19CQURfRVhQRVJJTUVOVEVSEAUSFwoTT0ZQQklDX0JBRF9FWFBfVFlQRRAGEhIKDk9GUEJJQ19CQURfTEVOEAcSEAoMT0ZQQklDX0VQRVJNEAgqpQIKEm9mcF9iYWRfbWF0Y2hfY29kZRITCg9PRlBCTUNfQkFEX1RZUEUQABISCg5PRlBCTUNfQkFEX0xFThABEhIKDk9GUEJNQ19CQURfVEFHEAISGwoXT0ZQQk1DX0JBRF9ETF9BRERSX01BU0sQAxIbChdPRlBCTUNfQkFEX05XX0FERFJfTUFTSxAEEhgKFE9GUEJNQ19CQURfV0lMRENBUkRTEAUSFAoQT0ZQQk1DX0JBRF9GSUVMRBAGEhQKEE9GUEJNQ19CQURfVkFMVUUQBxITCg9PRlBCTUNfQkFEX01BU0sQCBIVChFPRlBCTUNfQkFEX1BSRVJFURAJEhQKEE9GUEJNQ19EVVBfRklFTEQQChIQCgxPRlBCTUNfRVBFUk0QCyrSAQoYb2ZwX2Zsb3dfbW9kX2ZhaWxlZF9jb2RlEhMKD09GUEZNRkNfVU5LTk9XThAAEhYKEk9GUEZNRkNfVEFCTEVfRlVMTBABEhgKFE9GUEZNRkNfQkFEX1RBQkxFX0lEEAISEwoPT0ZQRk1GQ19PVkVSTEFQEAMSEQoNT0ZQRk1GQ19FUEVSTRAEEhcKE09GUEZNRkNfQkFEX1RJTUVPVVQQBRIXChNPRlBGTUZDX0JBRF9DT01NQU5EEAYSFQoRT0ZQRk1GQ19CQURfRkxBR1MQByqhAwoZb2ZwX2dyb3VwX21vZF9mYWlsZWRfY29kZRIYChRPRlBHTUZDX0dST1VQX0VYSVNUUxAAEhkKFU9GUEdNRkNfSU5WQUxJRF9HUk9VUBABEh4KGk9GUEdNRkNfV0VJR0hUX1VOU1VQUE9SVEVEEAISGQoVT0ZQR01GQ19PVVRfT0ZfR1JPVVBTEAMSGgoWT0ZQR01GQ19PVVRfT0ZfQlVDS0VUUxAEEiAKHE9GUEdNRkNfQ0hBSU5JTkdfVU5TVVBQT1JURUQQBRIdChlPRlBHTUZDX1dBVENIX1VOU1VQUE9SVEVEEAYSEAoMT0ZQR01GQ19MT09QEAcSGQoVT0ZQR01GQ19VTktOT1dOX0dST1VQEAgSGQoVT0ZQR01GQ19DSEFJTkVEX0dST1VQEAkSFAoQT0ZQR01GQ19CQURfVFlQRRAKEhcKE09GUEdNRkNfQkFEX0NPTU1BTkQQCxIWChJPRlBHTUZDX0JBRF9CVUNLRVQQDBIVChFPRlBHTUZDX0JBRF9XQVRDSBANEhEKDU9GUEdNRkNfRVBFUk0QDiqPAQoYb2ZwX3BvcnRfbW9kX2ZhaWxlZF9jb2RlEhQKEE9GUFBNRkNfQkFEX1BPUlQQABIXChNPRlBQTUZDX0JBRF9IV19BRERSEAESFgoST0ZQUE1GQ19CQURfQ09ORklHEAISGQoVT0ZQUE1GQ19CQURfQURWRVJUSVNFEAMSEQoNT0ZQUE1GQ19FUEVSTRAEKl0KGW9mcF90YWJsZV9tb2RfZmFpbGVkX2NvZGUSFQoRT0ZQVE1GQ19CQURfVEFCTEUQABIWChJPRlBUTUZDX0JBRF9DT05GSUcQARIRCg1PRlBUTUZDX0VQRVJNEAIqWgoYb2ZwX3F1ZXVlX29wX2ZhaWxlZF9jb2RlEhQKEE9GUFFPRkNfQkFEX1BPUlQQABIVChFPRlBRT0ZDX0JBRF9RVUVVRRABEhEKDU9GUFFPRkNfRVBFUk0QAipeCh1vZnBfc3dpdGNoX2NvbmZpZ19mYWlsZWRfY29kZRIVChFPRlBTQ0ZDX0JBRF9GTEFHUxAAEhMKD09GUFNDRkNfQkFEX0xFThABEhEKDU9GUFNDRkNfRVBFUk0QAipaChxvZnBfcm9sZV9yZXF1ZXN0X2ZhaWxlZF9jb2RlEhEKDU9GUFJSRkNfU1RBTEUQABIRCg1PRlBSUkZDX1VOU1VQEAESFAoQT0ZQUlJGQ19CQURfUk9MRRACKsUCChlvZnBfbWV0ZXJfbW9kX2ZhaWxlZF9jb2RlEhMKD09GUE1NRkNfVU5LTk9XThAAEhgKFE9GUE1NRkNfTUVURVJfRVhJU1RTEAESGQoVT0ZQTU1GQ19JTlZBTElEX01FVEVSEAISGQoVT0ZQTU1GQ19VTktOT1dOX01FVEVSEAMSFwoTT0ZQTU1GQ19CQURfQ09NTUFORBAEEhUKEU9GUE1NRkNfQkFEX0ZMQUdTEAUSFAoQT0ZQTU1GQ19CQURfUkFURRAGEhUKEU9GUE1NRkNfQkFEX0JVUlNUEAcSFAoQT0ZQTU1GQ19CQURfQkFORBAIEhsKF09GUE1NRkNfQkFEX0JBTkRfREVUQUlMEAkSGQoVT0ZQTU1GQ19PVVRfT0ZfTUVURVJTEAoSGAoUT0ZQTU1GQ19PVVRfT0ZfQkFORFMQCyqpAQoeb2ZwX3RhYmxlX2ZlYXR1cmVzX2ZhaWxlZF9jb2RlEhUKEU9GUFRGRkNfQkFEX1RBQkxFEAASGAoUT0ZQVEZGQ19CQURfTUVUQURBVEEQARIUChBPRlBURkZDX0JBRF9UWVBFEAISEwoPT0ZQVEZGQ19CQURfTEVOEAMSGAoUT0ZQVEZGQ19CQURfQVJHVU1FTlQQBBIRCg1PRlBURkZDX0VQRVJNEAUqzgIKEm9mcF9tdWx0aXBhcnRfdHlwZRIOCgpPRlBNUF9ERVNDEAASDgoKT0ZQTVBfRkxPVxABEhMKD09GUE1QX0FHR1JFR0FURRACEg8KC09GUE1QX1RBQkxFEAMSFAoQT0ZQTVBfUE9SVF9TVEFUUxAEEg8KC09GUE1QX1FVRVVFEAUSDwoLT0ZQTVBfR1JPVVAQBhIUChBPRlBNUF9HUk9VUF9ERVNDEAcSGAoUT0ZQTVBfR1JPVVBfRkVBVFVSRVMQCBIPCgtPRlBNUF9NRVRFUhAJEhYKEk9GUE1QX01FVEVSX0NPTkZJRxAKEhgKFE9GUE1QX01FVEVSX0ZFQVRVUkVTEAsSGAoUT0ZQTVBfVEFCTEVfRkVBVFVSRVMQDBITCg9PRlBNUF9QT1JUX0RFU0MQDRIYChJPRlBNUF9FWFBFUklNRU5URVIQ//8DKkoKG29mcF9tdWx0aXBhcnRfcmVxdWVzdF9mbGFncxIWChJPRlBNUEZfUkVRX0lOVkFMSUQQABITCg9PRlBNUEZfUkVRX01PUkUQASpMChlvZnBfbXVsdGlwYXJ0X3JlcGx5X2ZsYWdzEhgKFE9GUE1QRl9SRVBMWV9JTlZBTElEEAASFQoRT0ZQTVBGX1JFUExZX01PUkUQASrkAwobb2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF90eXBlEhgKFE9GUFRGUFRfSU5TVFJVQ1RJT05TEAASHQoZT0ZQVEZQVF9JTlNUUlVDVElPTlNfTUlTUxABEhcKE09GUFRGUFRfTkVYVF9UQUJMRVMQAhIcChhPRlBURlBUX05FWFRfVEFCTEVTX01JU1MQAxIZChVPRlBURlBUX1dSSVRFX0FDVElPTlMQBBIeChpPRlBURlBUX1dSSVRFX0FDVElPTlNfTUlTUxAFEhkKFU9GUFRGUFRfQVBQTFlfQUNUSU9OUxAGEh4KGk9GUFRGUFRfQVBQTFlfQUNUSU9OU19NSVNTEAcSEQoNT0ZQVEZQVF9NQVRDSBAIEhUKEU9GUFRGUFRfV0lMRENBUkRTEAoSGgoWT0ZQVEZQVF9XUklURV9TRVRGSUVMRBAMEh8KG09GUFRGUFRfV1JJVEVfU0VURklFTERfTUlTUxANEhoKFk9GUFRGUFRfQVBQTFlfU0VURklFTEQQDhIfChtPRlBURlBUX0FQUExZX1NFVEZJRUxEX01JU1MQDxIaChRPRlBURlBUX0VYUEVSSU1FTlRFUhD+/wMSHwoZT0ZQVEZQVF9FWFBFUklNRU5URVJfTUlTUxD//wMqkwEKFm9mcF9ncm91cF9jYXBhYmlsaXRpZXMSEgoOT0ZQR0ZDX0lOVkFMSUQQABIYChRPRlBHRkNfU0VMRUNUX1dFSUdIVBABEhoKFk9GUEdGQ19TRUxFQ1RfTElWRU5FU1MQAhITCg9PRlBHRkNfQ0hBSU5JTkcQBBIaChZPRlBHRkNfQ0hBSU5JTkdfQ0hFQ0tTEAgqawoUb2ZwX3F1ZXVlX3Byb3BlcnRpZXMSEQoNT0ZQUVRfSU5WQUxJRBAAEhIKDk9GUFFUX01JTl9SQVRFEAESEgoOT0ZQUVRfTUFYX1JBVEUQAhIYChJPRlBRVF9FWFBFUklNRU5URVIQ//8DKnEKE29mcF9jb250cm9sbGVyX3JvbGUSFwoTT0ZQQ1JfUk9MRV9OT0NIQU5HRRAAEhQKEE9GUENSX1JPTEVfRVFVQUwQARIVChFPRlBDUl9ST0xFX01BU1RFUhACEhQKEE9GUENSX1JPTEVfU0xBVkUQA0JVCh5vcmcub3BlbmNvcmQudm9sdGhhLm9wZW5mbG93MTNaM2dpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby9vcGVuZmxvd18xM0qVugYKBxIFOQCZEgEK5BQKAQwSAzkAEhr5BgogVGhpcyBpcyBhIHJlbGF0aXZlbHkgc3RyYWlnaHRmb3J3YXJkIHJlbmRlcmluZyBvZiBPcGVuRmxvdyBtZXNzYWdlCiBkZWZpbml0aW9ucyBpbnRvIHByb3RvY29sIGJ1ZmZlciBtZXNzYWdlcy4gV2UgcHJlc2VydmVkIHRoZSBzbmFrZQogY2FzZSBzeW50YXgsIGFuZCBtYWRlIHRoZSBmb2xsb3dpbmcgY2hhbmdlczoKIC0gYWxsIHBhZCBmaWVsZHMgZHJvcHBlZAogLSBmb3IgZWFjaCBlbnVtIHZhbHVlIGFib3ZlIDB4N2ZmZmZmZmYgdGhlIE1TQiBpcyBkcm9wcGVkLiBGb3IgZXhhbXBsZSwKICAgMHhmZmZmZmZmZiBpcyBub3cgMHg3ZmZmZmZmZi4KIC0gJzx0eXBlPiB0aGluZ1suLi5dJyBpcyByZXBsYWNlZCB3aXRoICdyZXBlYXRlZCA8dHlwZT4gdGhpbmcnCiAtICdjaGFyIHRoaW5nWy4uLl0nIGlzIHJlcGxhY2VkIHdpdGggJ3N0cmluZyB0aGluZycKIC0gJ3VpbnQ4X3QgZGF0YVsuLi5dJyBpcyByZXBsYWNlZCB3aXRoICdieXRlcyBkYXRhJwogLSB0aGUgZm9sbG93aW5nIHN5c3RlbWF0aWMgY2hhbmdlcyBhcmUgZG9uZSB0byB2YXJpb3VzIGludGVnZXIgdHlwZXM6CiAgIHVpbnQ4X3QgIC0+IHVpbnQzMgogICB1aW50MTZfdCAtPiB1aW50MzIKICAgdWludDMyX3QgLT4gdWludDMyCiAgIHVpbnQ2NF90IC0+IHVpbnQ2NAogLSByZW1vdmVkIG1vc3QgbGVuZ3RoLCBsZW4sIHNpemUgZmllbGRzIHdoZXJlIHRoZXNlIHZhbHVlcyBjYW4gYmUgZGV0ZXJtaW5lZAogICBmcm9tIHRoZSBleHBsaWNpdGx5IGVuY29kZWQgbGVuZ3RoIG9mICJyZXBlYXRlZCIgcHJvdG9idWYgZmllbGRzLgogLSBleHBsaWNpdCB1c2Ugb2YgZW51bSB0eXBlcyB3aGVyZWV2ZXIgaXQgaXMgdW5hbWJpZ291cyAoYW5kIG5vdCB1c2VkIGFzCiAgIGJpdG1hc2svZmxhZ3MgdmFsdWUuCgoypg0gQ29weXJpZ2h0IChjKSAyMDA4IFRoZSBCb2FyZCBvZiBUcnVzdGVlcyBvZiBUaGUgTGVsYW5kIFN0YW5mb3JkCiBKdW5pb3IgVW5pdmVyc2l0eQogQ29weXJpZ2h0IChjKSAyMDExLCAyMDEyIE9wZW4gTmV0d29ya2luZyBGb3VuZGF0aW9uCgogV2UgYXJlIG1ha2luZyB0aGUgT3BlbkZsb3cgc3BlY2lmaWNhdGlvbiBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uCiAoU29mdHdhcmUpIGF2YWlsYWJsZSBmb3IgcHVibGljIHVzZSBhbmQgYmVuZWZpdCB3aXRoIHRoZSBleHBlY3RhdGlvbgogdGhhdCBvdGhlcnMgd2lsbCB1c2UsIG1vZGlmeSBhbmQgZW5oYW5jZSB0aGUgU29mdHdhcmUgYW5kIGNvbnRyaWJ1dGUKIHRob3NlIGVuaGFuY2VtZW50cyBiYWNrIHRvIHRoZSBjb21tdW5pdHkuIEhvd2V2ZXIsIHNpbmNlIHdlIHdvdWxkCiBsaWtlIHRvIG1ha2UgdGhlIFNvZnR3YXJlIGF2YWlsYWJsZSBmb3IgYnJvYWRlc3QgdXNlLCB3aXRoIGFzIGZldwogcmVzdHJpY3Rpb25zIGFzIHBvc3NpYmxlIHBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YKIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMgU29mdHdhcmUgdG8gZGVhbCBpbgogdGhlIFNvZnR3YXJlIHVuZGVyIHRoZSBjb3B5cmlnaHRzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvCiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKCiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZQogaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCgogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5ECiBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUwogQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOCiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogU09GVFdBUkUuCgogVGhlIG5hbWUgYW5kIHRyYWRlbWFya3Mgb2YgY29weXJpZ2h0IGhvbGRlcihzKSBtYXkgTk9UIGJlIHVzZWQgaW4KIGFkdmVydGlzaW5nIG9yIHB1YmxpY2l0eSBwZXJ0YWluaW5nIHRvIHRoZSBTb2Z0d2FyZSBvciBhbnkKIGRlcml2YXRpdmVzIHdpdGhvdXQgc3BlY2lmaWMsIHdyaXR0ZW4gcHJpb3IgcGVybWlzc2lvbi4KMjUgT3BlbkZsb3c6IHByb3RvY29sIGJldHdlZW4gY29udHJvbGxlciBhbmQgZGF0YXBhdGguIAoICgEIEgM7AEoKCQoCCAsSAzsASgoICgEIEgM8ADcKCQoCCAESAzwANwoICgECEgM+ABQKCQoCAwASA0AAJgqmBAoCBQASBFQAaQEaNSBQb3J0IG51bWJlcmluZy4gUG9ydHMgYXJlIG51bWJlcmVkIHN0YXJ0aW5nIGZyb20gMS4gMmMgVmVyc2lvbiBudW1iZXI6CiBPcGVuRmxvdyB2ZXJzaW9ucyByZWxlYXNlZDogMHgwMSA9IDEuMCA7IDB4MDIgPSAxLjEgOyAweDAzID0gMS4yCiAgICAgMHgwNCA9IDEuMwoyVSBUaGUgbW9zdCBzaWduaWZpY2FudCBiaXQgaW4gdGhlIHZlcnNpb24gZmllbGQgaXMgcmVzZXJ2ZWQgYW5kIG11c3QKIGJlIHNldCB0byB6ZXJvLgoyeiNkZWZpbmUgT0ZQX1ZFUlNJT04gICAweDA0CiNkZWZpbmUgUElQRUxJTkVfVEFCTEVTIDY0CiNkZWZpbmUgT0ZQX01BWF9UQUJMRV9OQU1FX0xFTiAzMgojZGVmaW5lIE9GUF9NQVhfUE9SVF9OQU1FX0xFTiAgMTYKMi0gT2ZmaWNpYWwgSUFOQSByZWdpc3RlcmVkIHBvcnQgZm9yIE9wZW5GbG93LiAyNiNkZWZpbmUgT0ZQX1RDUF9QT1JUICA2NjUzCiNkZWZpbmUgT0ZQX1NTTF9QT1JUICA2NjUzCjJEI2RlZmluZSBPRlBfRVRIX0FMRU4gNiAgICAgICAgICAvKiBCeXRlcyBpbiBhbiBFdGhlcm5ldCBhZGRyZXNzLiAqLwoKCgoDBQABEgNUBRAKCwoEBQAC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XyhDTEFTUywgRklFTEQsIEhBU01BU0ssIExFTkdUSCkgXAogICAgKCgoQ0xBU1MpIDw8IDE2KSB8ICgoRklFTEQpIDw8IDkpIHwgKChIQVNNQVNLKSA8PCA4KSB8IChMRU5HVEgpKQojZGVmaW5lIE9YTV9IRUFERVIoQ0xBU1MsIEZJRUxELCBMRU5HVEgpIFwKICAgIE9YTV9IRUFERVJfXyhDTEFTUywgRklFTEQsIDAsIExFTkdUSCkKI2RlZmluZSBPWE1fSEVBREVSX1coQ0xBU1MsIEZJRUxELCBMRU5HVEgpIFwKICAgIE9YTV9IRUFERVJfXyhDTEFTUywgRklFTEQsIDEsIChMRU5HVEgpICogMikKI2RlZmluZSBPWE1fQ0xBU1MoSEVBREVSKSAoKEhFQURFUikgPj4gMTYpCiNkZWZpbmUgT1hNX0ZJRUxEKEhFQURFUikgKCgoSEVBREVSKSA+PiA5KSAmIDB4N2YpCiNkZWZpbmUgT1hNX1RZUEUoSEVBREVSKSAoKChIRUFERVIpID4+IDkpICYgMHg3ZmZmZmYpCiNkZWZpbmUgT1hNX0hBU01BU0soSEVBREVSKSAoKChIRUFERVIpID4+IDgpICYgMSkKI2RlZmluZSBPWE1fTEVOR1RIKEhFQURFUikgKChIRUFERVIpICYgMHhmZikKCiNkZWZpbmUgT1hNX01BS0VfV0lMRF9IRUFERVIoSEVBREVSKSBcCiAgICBPWE1fSEVBREVSX1coT1hNX0NMQVNTKEhFQURFUiksIE9YTV9GSUVMRChIRUFERVIpLCBPWE1fTEVOR1RIKEhFQURFUikpCgoLCgMFDQESBKgDBRIKLwoEBQ0CABIEqQMEIyIhIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2l0aCBOWE0gCg0KBQUNAgABEgSpAwQQCg0KBQUNAgACEgSpAxwiCi8KBAUNAgESBKoDBCMiISBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggTlhNIAoNCgUFDQIBARIEqgMEEAoNCgUFDQIBAhIEqgMcIgooCgQFDQICEgSrAwQjIhogQmFzaWMgY2xhc3MgZm9yIE9wZW5GbG93IAoNCgUFDQICARIEqwMEGQoNCgUFDQICAhIEqwMcIgoiCgQFDQIDEgSsAwQjIhQg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dCwgYSBsb2dpY2FsIHBvcnQsIG9yIHRoZSByZXNlcnZlZCBwb3J0IE9GUFBfTE9DQUwKCiBQcmVyZXFzOiBOb25lLgoKIEZvcm1hdDogMzItYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAgIFEgT0AwgOCg0KBQQNAgIBEgT0Aw8TCg0KBQQNAgIDEgT0AxYXCrcHCgQEDQIDEgSLBAghGksjZGVmaW5lIE9YTV9PRl9JTl9QSFlfUE9SVCBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lOX1BIWV9QT1JULCA0KQoiICBVc2VkIGZvciBPRlBYTVRfT0ZfSU5fUEhZX1BPUlQgMrkGIFBoeXNpY2FsIHBvcnQgb24gd2hpY2ggdGhlIHBhY2tldCB3YXMgcmVjZWl2ZWQuCgogQ29uc2lkZXIgYSBwYWNrZXQgcmVjZWl2ZWQgb24gYSB0dW5uZWwgaW50ZXJmYWNlIGRlZmluZWQgb3ZlciBhIGxpbmsKIGFnZ3JlZ2F0aW9uIGdyb3VwIChMQUcpIHdpdGggdHdvIHBoeXNpY2FsIHBvcnQgbWVtYmVycy4gIElmIHRoZSB0dW5uZWwKIGludGVyZmFjZSBpcyB0aGUgbG9naWNhbCBwb3J0IGJvdW5kIHRvIE9wZW5GbG93LiAgSW4gdGhpcyBjYXNlLAogT0ZQWE1UX09GX0lOX1BPUlQgaXMgdGhlIHR1bm5lbCdzIHBvcnQgbnVtYmVyIGFuZCBPRlBYTVRfT0ZfSU5fUEhZX1BPUlQgaXMKIHRoZSBwaHlzaWNhbCBwb3J0IG51bWJlciBvZiB0aGUgTEFHIG9uIHdoaWNoIHRoZSB0dW5uZWwgaXMgY29uZmlndXJlZC4KCiBXaGVuIGEgcGFja2V0IGlzIHJlY2VpdmVkIGRpcmVjdGx5IG9uIGEgcGh5c2ljYWwgcG9ydCBhbmQgbm90IHByb2Nlc3NlZCBieSBhCiBsb2dpY2FsIHBvcnQsIE9GUFhNVF9PRl9JTl9QT1JUIGFuZCBPRlBYTVRfT0ZfSU5fUEhZX1BPUlQgaGF2ZSB0aGUgc2FtZQogdmFsdWUuCgogVGhpcyBmaWVsZCBpcyB1c3VhbGx5IG5vdCBhdmFpbGFibGUgaW4gYSByZWd1bGFyIG1hdGNoIGFuZCBvbmx5IGF2YWlsYWJsZQogaW4gb2ZwX3BhY2tldF9pbiBtZXNzYWdlcyB3aGVuIGl0J3MgZGlmZmVyZW50IGZyb20gT1hNX09GX0lOX1BPUlQuCgogUHJlcmVxczogT1hNX09GX0lOX1BPUlQgbXVzdCBiZSBwcmVzZW50LgoKIEZvcm1hdDogMzItYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAgMFEgSLBAgOCg0KBQQNAgMBEgSLBA8cCg0KBQQNAgMDEgSLBB8gCq0CCgQEDQIEEgSXBAgiGo4BI2RlZmluZSBPWE1fT0ZfTUVUQURBVEEgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX01FVEFEQVRBLCA4KQojZGVmaW5lIE9YTV9PRl9NRVRBREFUQV9XIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfTUVUQURBVEEsIDgpCiIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfTUVUQURBVEEgMm4gVGFibGUgbWV0YWRhdGEuCgogUHJlcmVxczogTm9uZS4KCiBGb3JtYXQ6IDY0LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuCgoNCgUEDQIEBRIElwQIDgoNCgUEDQIEARIElwQPHQoNCgUEDQIEAxIElwQgIQriAwoEBA0CBRIEpAQIGhqYAiNkZWZpbmUgT1hNX09GX0VUSF9EU1QgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9FVEhfRFNULCA2KQojZGVmaW5lIE9YTV9PRl9FVEhfRFNUX1cgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfRVRIX0RTVCwgNikKI2RlZmluZSBPWE1fT0ZfRVRIX1NSQyAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0VUSF9TUkMsIDYpCiNkZWZpbmUgT1hNX09GX0VUSF9TUkNfVyAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9FVEhfU1JDLCA2KQoiLyBVc2VkIGZvciBPRlBYTVRfT0ZCX0VUSF9EU1QgKGV4YWN0bHkgNiBieXRlcykgMocBIFNvdXJjZSBvciBkZXN0aW5hdGlvbiBhZGRyZXNzIGluIEV0aGVybmV0IGhlYWRlci4KCiBQcmVyZXFzOiBOb25lLgoKIEZvcm1hdDogNDgtYml0IEV0aGVybmV0IE1BQyBhZGRyZXNzLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4gCg0KBQQNAgUFEgSkBAgNCg0KBQQNAgUBEgSkBA4VCg0KBQQNAgUDEgSkBBgZCj0KBAQNAgYSBKUECBoiLyBVc2VkIGZvciBPRlBYTVRfT0ZCX0VUSF9TUkMgKGV4YWN0bHkgNiBieXRlcykgCg0KBQQNAgYFEgSlBAgNCg0KBQQNAgYBEgSlBA4VCg0KBQQNAgYDEgSlBBgZCukBCgQEDQIHEgSvBAgcGkYjZGVmaW5lIE9YTV9PRl9FVEhfVFlQRSAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfRVRIX1RZUEUsMikKIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9FVEhfVFlQRSAycyBQYWNrZXQncyBFdGhlcm5ldCB0eXBlLgoKIFByZXJlcXM6IE5vbmUuCgogRm9ybWF0OiAxNi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CBwUSBK8ECA4KDQoFBA0CBwESBK8EDxcKDQoFBA0CBwMSBK8EGhsKgwsKBAQNAggSBNUECBwajgEjZGVmaW5lIE9YTV9PRl9WTEFOX1ZJRCAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfVkxBTl9WSUQsIDIpCiNkZWZpbmUgT1hNX09GX1ZMQU5fVklEX1cgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9WTEFOX1ZJRCwgMikKIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9WTEFOX1ZJRCAywwkgODAyLjFRIFZJRC4KCiBGb3IgYSBwYWNrZXQgd2l0aCBhbiA4MDIuMVEgaGVhZGVyLCB0aGlzIGlzIHRoZSBWTEFOLUlEIChWSUQpIGZyb20gdGhlCiBvdXRlcm1vc3QgdGFnLCB3aXRoIHRoZSBDRkkgYml0IGZvcmNlZCB0byAxLiBGb3IgYSBwYWNrZXQgd2l0aCBubyA4MDIuMVEKIGhlYWRlciwgdGhpcyBoYXMgdmFsdWUgT0ZQVklEX05PTkUuCgogUHJlcmVxczogTm9uZS4KCiBGb3JtYXQ6IDE2LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlciB3aXRoIGJpdCAxMyBpbmRpY2F0aW5nCiBwcmVzZW5jZSBvZiBWTEFOIGhlYWRlciBhbmQgMyBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlciAxMyBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuCgogVGhpcyBmaWVsZCBjYW4gYmUgdXNlZCBpbiB2YXJpb3VzIHdheXM6CgogICAtIElmIGl0IGlzIG5vdCBjb25zdHJhaW5lZCBhdCBhbGwsIHRoZSBueF9tYXRjaCBtYXRjaGVzIHBhY2tldHMgd2l0aG91dAogICAgIGFuIDgwMi4xUSBoZWFkZXIgb3Igd2l0aCBhbiA4MDIuMVEgaGVhZGVyIHRoYXQgaGFzIGFueSBWSUQgdmFsdWUuCgogICAtIFRlc3RpbmcgZm9yIGFuIGV4YWN0IG1hdGNoIHdpdGggMHgwIG1hdGNoZXMgb25seSBwYWNrZXRzIHdpdGhvdXQKICAgICBhbiA4MDIuMVEgaGVhZGVyLgoKICAgLSBUZXN0aW5nIGZvciBhbiBleGFjdCBtYXRjaCB3aXRoIGEgVklEIHZhbHVlIHdpdGggQ0ZJPTEgbWF0Y2hlcyBwYWNrZXRzCiAgICAgdGhhdCBoYXZlIGFuIDgwMi4xUSBoZWFkZXIgd2l0aCBhIHNwZWNpZmllZCBWSUQuCgogICAtIFRlc3RpbmcgZm9yIGFuIGV4YWN0IG1hdGNoIHdpdGggYSBub256ZXJvIFZJRCB2YWx1ZSB3aXRoIENGST0wIGRvZXMKICAgICBub3QgbWFrZSBzZW5zZS4gIFRoZSBzd2l0Y2ggbWF5IHJlamVjdCB0aGlzIGNvbWJpbmF0aW9uLgoKICAgLSBUZXN0aW5nIHdpdGggbnhtX3ZhbHVlPTAsIG54bV9tYXNrPTB4MGZmZiBtYXRjaGVzIHBhY2tldHMgd2l0aCBubyA4MDIuMVEKICAgICBoZWFkZXIgb3Igd2l0aCBhbiA4MDIuMVEgaGVhZGVyIHdpdGggYSBWSUQgb2YgMC4KCiAgIC0gVGVzdGluZyB3aXRoIG54bV92YWx1ZT0weDEwMDAsIG54bV9tYXNrPTB4MTAwMCBtYXRjaGVzIHBhY2tldHMgd2l0aAogICAgIGFuIDgwMi4xUSBoZWFkZXIgdGhhdCBoYXMgYW55IFZJRCB2YWx1ZS4KCg0KBQQNAggFEgTVBAgOCg0KBQQNAggBEgTVBA8XCg0KBQQNAggDEgTVBBobCtADCgQEDQIJEgTlBAgdGkcjZGVmaW5lIE9YTV9PRl9WTEFOX1BDUCAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfVkxBTl9QQ1AsIDEpCiIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfVkxBTl9QQ1AgMtgCIDgwMi4xUSBQQ1AuCgogRm9yIGEgcGFja2V0IHdpdGggYW4gODAyLjFRIGhlYWRlciwgdGhpcyBpcyB0aGUgVkxBTi1QQ1AgZnJvbSB0aGUKIG91dGVybW9zdCB0YWcuICBGb3IgYSBwYWNrZXQgd2l0aCBubyA4MDIuMVEgaGVhZGVyLCB0aGlzIGhhcyB2YWx1ZQogMC4KCiBQcmVyZXFzOiBPWE1fT0ZfVkxBTl9WSUQgbXVzdCBiZSBkaWZmZXJlbnQgZnJvbSBPRlBWSURfTk9ORS4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIgd2l0aCA1IG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VyIDMgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogTm90IG1hc2thYmxlLgoKDQoFBA0CCQUSBOUECA4KDQoFBA0CCQESBOUEDxcKDQoFBA0CCQMSBOUEGhwKqAMKBAQNAgoSBPEECBwaRyNkZWZpbmUgT1hNX09GX0lQX0RTQ1AgICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBfRFNDUCwgMSkKIh0gVXNlZCBmb3IgT0ZQWE1UX09GQl9JUF9EU0NQIDKxAiBUaGUgRGlmZiBTZXJ2IENvZGUgUG9pbnQgKERTQ1ApIGJpdHMgb2YgdGhlIElQIGhlYWRlci4KIFBhcnQgb2YgdGhlIElQdjQgVG9TIGZpZWxkIG9yIHRoZSBJUHY2IFRyYWZmaWMgQ2xhc3MgZmllbGQuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgYmUgZWl0aGVyIDB4MDgwMCBvciAweDg2ZGQuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyIHdpdGggMiBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlciA2IGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAgoFEgTxBAgOCg0KBQQNAgoBEgTxBA8WCg0KBQQNAgoDEgTxBBkbCo0DCgQEDQILEgT9BAgbGkUjZGVmaW5lIE9YTV9PRl9JUF9FQ04gICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBfRUNOLCAxKQoiHCBVc2VkIGZvciBPRlBYTVRfT0ZCX0lQX0VDTiAymQIgVGhlIEVDTiBiaXRzIG9mIHRoZSBJUCBoZWFkZXIuCiBQYXJ0IG9mIHRoZSBJUHY0IFRvUyBmaWVsZCBvciB0aGUgSVB2NiBUcmFmZmljIENsYXNzIGZpZWxkLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IGJlIGVpdGhlciAweDA4MDAgb3IgMHg4NmRkLgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlciB3aXRoIDYgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXIgMiBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQILBRIE/QQIDgoNCgUEDQILARIE/QQPFQoNCgUEDQILAxIE/QQYGgqNAgoEBA0CDBIEhwUIHRpHI2RlZmluZSBPWE1fT0ZfSVBfUFJPVE8gICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQX1BST1RPLCAxKQoiHiBVc2VkIGZvciBPRlBYTVRfT0ZCX0lQX1BST1RPIDKVASBUaGUgInByb3RvY29sIiBieXRlIGluIHRoZSBJUCBoZWFkZXIuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgYmUgZWl0aGVyIDB4MDgwMCBvciAweDg2ZGQuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAgwFEgSHBQgOCg0KBQQNAgwBEgSHBQ8XCg0KBQQNAgwDEgSHBRocCo0ECgQEDQINEgSVBQgdGqQCI2RlZmluZSBPWE1fT0ZfSVBWNF9TUkMgICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNF9TUkMsIDQpCiNkZWZpbmUgT1hNX09GX0lQVjRfU1JDX1cgICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjRfU1JDLCA0KQojZGVmaW5lIE9YTV9PRl9JUFY0X0RTVCAgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY0X0RTVCwgNCkKI2RlZmluZSBPWE1fT0ZfSVBWNF9EU1RfVyAgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfSVBWNF9EU1QsIDQpCiIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfSVBWNF9TUkMgMrcBIFRoZSBzb3VyY2Ugb3IgZGVzdGluYXRpb24gYWRkcmVzcyBpbiB0aGUgSVAgaGVhZGVyLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4MDgwMCBleGFjdGx5LgoKIEZvcm1hdDogMzItYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4KCg0KBQQNAg0FEgSVBQgOCg0KBQQNAg0BEgSVBQ8XCg0KBQQNAg0DEgSVBRocCiwKBAQNAg4SBJYFCB0iHiBVc2VkIGZvciBPRlBYTVRfT0ZCX0lQVjRfRFNUIAoNCgUEDQIOBRIElgUIDgoNCgUEDQIOARIElgUPFwoNCgUEDQIOAxIElgUaHAqhAwoEBA0CDxIEowUIHBqMASNkZWZpbmUgT1hNX09GX1RDUF9TUkMgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9UQ1BfU1JDLCAyKQojZGVmaW5lIE9YTV9PRl9UQ1BfRFNUICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfVENQX0RTVCwgMikKIh0gVXNlZCBmb3IgT0ZQWE1UX09GQl9UQ1BfU1JDIDLkASBUaGUgc291cmNlIG9yIGRlc3RpbmF0aW9uIHBvcnQgaW4gdGhlIFRDUCBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgYmUgZWl0aGVyIDB4MDgwMCBvciAweDg2ZGQuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDYgZXhhY3RseS4KCiBGb3JtYXQ6IDE2LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIPBRIEowUIDgoNCgUEDQIPARIEowUPFgoNCgUEDQIPAxIEowUZGworCgQEDQIQEgSkBQgcIh0gVXNlZCBmb3IgT0ZQWE1UX09GQl9UQ1BfRFNUIAoNCgUEDQIQBRIEpAUIDgoNCgUEDQIQARIEpAUPFgoNCgUEDQIQAxIEpAUZGwqlAwoEBA0CERIEsQUIHBqMASNkZWZpbmUgT1hNX09GX1VEUF9TUkMgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9VRFBfU1JDLCAyKQojZGVmaW5lIE9YTV9PRl9VRFBfRFNUICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfVURQX0RTVCwgMikKIh0gVXNlZCBmb3IgT0ZQWE1UX09GQl9VRFBfU1JDIDLoASBUaGUgc291cmNlIG9yIGRlc3RpbmF0aW9uIHBvcnQgaW4gdGhlIFVEUCBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggZWl0aGVyIDB4MDgwMCBvciAweDg2ZGQuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDE3IGV4YWN0bHkuCgogRm9ybWF0OiAxNi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CEQUSBLEFCA4KDQoFBA0CEQESBLEFDxYKDQoFBA0CEQMSBLEFGRsKKwoEBA0CEhIEsgUIHCIdIFVzZWQgZm9yIE9GUFhNVF9PRkJfVURQX0RTVCAKDQoFBA0CEgUSBLIFCA4KDQoFBA0CEgESBLIFDxYKDQoFBA0CEgMSBLIFGRsKqgMKBAQNAhMSBL8FCB0ajgEjZGVmaW5lIE9YTV9PRl9TQ1RQX1NSQyAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfU0NUUF9TUkMsIDIpCiNkZWZpbmUgT1hNX09GX1NDVFBfRFNUICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9TQ1RQX0RTVCwgMikKIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9TQ1RQX1NSQyAy6gEgVGhlIHNvdXJjZSBvciBkZXN0aW5hdGlvbiBwb3J0IGluIHRoZSBTQ1RQIGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCBlaXRoZXIgMHgwODAwIG9yIDB4ODZkZC4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggMTMyIGV4YWN0bHkuCgogRm9ybWF0OiAxNi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CEwUSBL8FCA4KDQoFBA0CEwESBL8FDxcKDQoFBA0CEwMSBL8FGhwKLAoEBA0CFBIEwAUIHSIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfU0NUUF9EU1QgCg0KBQQNAhQFEgTABQgOCg0KBQQNAhQBEgTABQ8XCg0KBQQNAhQDEgTABRocCocDCgQEDQIVEgTNBQggGpgBI2RlZmluZSBPWE1fT0ZfSUNNUFY0X1RZUEUgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSUNNUFY0X1RZUEUsIDEpCiNkZWZpbmUgT1hNX09GX0lDTVBWNF9DT0RFICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lDTVBWNF9DT0RFLCAxKQoiISBVc2VkIGZvciBPRlBYTVRfT0ZCX0lDTVBWNF9UWVBFIDK6ASBUaGUgdHlwZSBvciBjb2RlIGluIHRoZSBJQ01QIGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDA4MDAgZXhhY3RseS4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggMSBleGFjdGx5LgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIVBRIEzQUIDgoNCgUEDQIVARIEzQUPGgoNCgUEDQIVAxIEzQUdHwovCgQEDQIWEgTOBQggIiEgVXNlZCBmb3IgT0ZQWE1UX09GQl9JQ01QVjRfQ09ERSAKDQoFBA0CFgUSBM4FCA4KDQoFBA0CFgESBM4FDxoKDQoFBA0CFgMSBM4FHR8K1QIKBAQNAhcSBNsFCBsaRSNkZWZpbmUgT1hNX09GX0FSUF9PUCAgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfT1AsIDIpCiIcIFVzZWQgZm9yIE9GUFhNVF9PRkJfQVJQX09QIDLhASBBUlAgb3Bjb2RlLgoKIEZvciBhbiBFdGhlcm5ldCtJUCBBUlAgcGFja2V0LCB0aGUgb3Bjb2RlIGluIHRoZSBBUlAgaGVhZGVyLiAgQWx3YXlzIDAKIG90aGVyd2lzZS4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDA4MDYgZXhhY3RseS4KCiBGb3JtYXQ6IDE2LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIXBRIE2wUIDgoNCgUEDQIXARIE2wUPFQoNCgUEDQIXAxIE2wUYGgq1BAoEBA0CGBIE6gUIHBqYAiNkZWZpbmUgT1hNX09GX0FSUF9TUEEgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfU1BBLCA0KQojZGVmaW5lIE9YTV9PRl9BUlBfU1BBX1cgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1NQQSwgNCkKI2RlZmluZSBPWE1fT0ZfQVJQX1RQQSAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9UUEEsIDQpCiNkZWZpbmUgT1hNX09GX0FSUF9UUEFfVyAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfVFBBLCA0KQoiGCBGb3IgT0ZQWE1UX09GQl9BUlBfU1BBIDLxASBGb3IgYW4gRXRoZXJuZXQrSVAgQVJQIHBhY2tldCwgdGhlIHNvdXJjZSBvciB0YXJnZXQgcHJvdG9jb2wgYWRkcmVzcwogaW4gdGhlIEFSUCBoZWFkZXIuICBBbHdheXMgMCBvdGhlcndpc2UuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHgwODA2IGV4YWN0bHkuCgogRm9ybWF0OiAzMi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLgoKDQoFBA0CGAUSBOoFCA4KDQoFBA0CGAESBOoFDxYKDQoFBA0CGAMSBOoFGRsKJgoEBA0CGRIE6wUIHCIYIEZvciBPRlBYTVRfT0ZCX0FSUF9UUEEgCg0KBQQNAhkFEgTrBQgOCg0KBQQNAhkBEgTrBQ8WCg0KBQQNAhkDEgTrBRkbCrcECgQEDQIaEgT5BQgbGpwCI2RlZmluZSBPWE1fT0ZfQVJQX1NIQSAgICBPWE1fSEVBREVSICAgKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfU0hBLCA2KQojZGVmaW5lIE9YTV9PRl9BUlBfU0hBX1cgIE9YTV9IRUFERVJfVyAoMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9TSEEsIDYpCiNkZWZpbmUgT1hNX09GX0FSUF9USEEgICAgT1hNX0hFQURFUiAgICgweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1RIQSwgNikKI2RlZmluZSBPWE1fT0ZfQVJQX1RIQV9XICBPWE1fSEVBREVSX1cgKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfVEhBLCA2KQoiIiBGb3IgT0ZQWE1UX09GQl9BUlBfU0hBICg2IGJ5dGVzKSAy5QEgRm9yIGFuIEV0aGVybmV0K0lQIEFSUCBwYWNrZXQsIHRoZSBzb3VyY2Ugb3IgdGFyZ2V0IGhhcmR3YXJlIGFkZHJlc3MKIGluIHRoZSBBUlAgaGVhZGVyLiAgQWx3YXlzIDAgb3RoZXJ3aXNlLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4MDgwNiBleGFjdGx5LgoKIEZvcm1hdDogNDgtYml0IEV0aGVybmV0IE1BQyBhZGRyZXNzLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAhoFEgT5BQgNCg0KBQQNAhoBEgT5BQ4VCg0KBQQNAhoDEgT5BRgaCjAKBAQNAhsSBPoFCBsiIiBGb3IgT0ZQWE1UX09GQl9BUlBfVEhBICg2IGJ5dGVzKSAKDQoFBA0CGwUSBPoFCA0KDQoFBA0CGwESBPoFDhUKDQoFBA0CGwMSBPoFGBoK+gMKBAQNAhwSBIgGCBwapAIjZGVmaW5lIE9YTV9PRl9JUFY2X1NSQyAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfU1JDLCAxNikKI2RlZmluZSBPWE1fT0ZfSVBWNl9TUkNfVyAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X1NSQywgMTYpCiNkZWZpbmUgT1hNX09GX0lQVjZfRFNUICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9EU1QsIDE2KQojZGVmaW5lIE9YTV9PRl9JUFY2X0RTVF9XICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfRFNULCAxNikKIhkgRm9yIE9GUFhNVF9PRkJfSVBWNl9TUkMgMqkBIFRoZSBzb3VyY2Ugb3IgZGVzdGluYXRpb24gYWRkcmVzcyBpbiB0aGUgSVB2NiBoZWFkZXIuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4NmRkIGV4YWN0bHkuCgogRm9ybWF0OiAxMjgtYml0IElQdjYgYWRkcmVzcy4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuCgoNCgUEDQIcBRIEiAYIDQoNCgUEDQIcARIEiAYOFgoNCgUEDQIcAxIEiAYZGwonCgQEDQIdEgSJBggcIhkgRm9yIE9GUFhNVF9PRkJfSVBWNl9EU1QgCg0KBQQNAh0FEgSJBggNCg0KBQQNAh0BEgSJBg4WCg0KBQQNAh0DEgSJBhkbCp0DCgQEDQIeEgSXBgggGpoBI2RlZmluZSBPWE1fT0ZfSVBWNl9GTEFCRUwgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfRkxBQkVMLCA0KQojZGVmaW5lIE9YTV9PRl9JUFY2X0ZMQUJFTF9XIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9GTEFCRUwsIDQpCiIcIEZvciBPRlBYTVRfT0ZCX0lQVjZfRkxBQkVMIDLTASBUaGUgSVB2NiBGbG93IExhYmVsCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4NmRkIGV4YWN0bHkKCiBGb3JtYXQ6IDMyLWJpdCBpbnRlZ2VyIHdpdGggMTIgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXIgMjAgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLgoKDQoFBA0CHgUSBJcGCA4KDQoFBA0CHgESBJcGDxoKDQoFBA0CHgMSBJcGHR8KgwMKBAQNAh8SBKQGCCAalgEjZGVmaW5lIE9YTV9PRl9JQ01QVjZfVFlQRSBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lDTVBWNl9UWVBFLCAxKQojZGVmaW5lIE9YTV9PRl9JQ01QVjZfQ09ERSBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lDTVBWNl9DT0RFLCAxKQoiHCBGb3IgT0ZQWE1UX09GQl9JQ01QVjZfVFlQRSAyvQEgVGhlIHR5cGUgb3IgY29kZSBpbiB0aGUgSUNNUHY2IGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg2ZGQgZXhhY3RseS4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggNTggZXhhY3RseS4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CHwUSBKQGCA4KDQoFBA0CHwESBKQGDxoKDQoFBA0CHwMSBKQGHR8KKgoEBA0CIBIEpQYIICIcIEZvciBPRlBYTVRfT0ZCX0lDTVBWNl9DT0RFIAoNCgUEDQIgBRIEpQYIDgoNCgUEDQIgARIEpQYPGgoNCgUEDQIgAxIEpQYdHwqRAwoEBA0CIRIEswYIIhpXI2RlZmluZSBPWE1fT0ZfSVBWNl9ORF9UQVJHRVQgT1hNX0hFQURFUiBcCiAgICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfTkRfVEFSR0VULCAxNikKIh8gRm9yIE9GUFhNVF9PRkJfSVBWNl9ORF9UQVJHRVQgMogCIFRoZSB0YXJnZXQgYWRkcmVzcyBpbiBhbiBJUHY2IE5laWdoYm9yIERpc2NvdmVyeSBtZXNzYWdlLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODZkZCBleGFjdGx5LgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCA1OCBleGFjdGx5LgogICBPWE1fT0ZfSUNNUFY2X1RZUEUgbXVzdCBiZSBlaXRoZXIgMTM1IG9yIDEzNi4KCiBGb3JtYXQ6IDEyOC1iaXQgSVB2NiBhZGRyZXNzLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAiEFEgSzBggNCg0KBQQNAiEBEgSzBg4cCg0KBQQNAiEDEgSzBh8hCpcDCgQEDQIiEgTBBggfGkwjZGVmaW5lIE9YTV9PRl9JUFY2X05EX1NMTCAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X05EX1NMTCwgNikKIhwgRm9yIE9GUFhNVF9PRkJfSVBWNl9ORF9TTEwgMpwCIFRoZSBzb3VyY2UgbGluay1sYXllciBhZGRyZXNzIG9wdGlvbiBpbiBhbiBJUHY2IE5laWdoYm9yIERpc2NvdmVyeQogbWVzc2FnZS4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg2ZGQgZXhhY3RseS4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggNTggZXhhY3RseS4KICAgT1hNX09GX0lDTVBWNl9UWVBFIG11c3QgYmUgZXhhY3RseSAxMzUuCgogRm9ybWF0OiA0OC1iaXQgRXRoZXJuZXQgTUFDIGFkZHJlc3MuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CIgUSBMEGCA0KDQoFBA0CIgESBMEGDhkKDQoFBA0CIgMSBMEGHB4KlwMKBAQNAiMSBM8GCB8aTCNkZWZpbmUgT1hNX09GX0lQVjZfTkRfVExMICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfTkRfVExMLCA2KQoiHCBGb3IgT0ZQWE1UX09GQl9JUFY2X05EX1RMTCAynAIgVGhlIHRhcmdldCBsaW5rLWxheWVyIGFkZHJlc3Mgb3B0aW9uIGluIGFuIElQdjYgTmVpZ2hib3IgRGlzY292ZXJ5CiBtZXNzYWdlLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODZkZCBleGFjdGx5LgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCA1OCBleGFjdGx5LgogICBPWE1fT0ZfSUNNUFY2X1RZUEUgbXVzdCBiZSBleGFjdGx5IDEzNi4KCiBGb3JtYXQ6IDQ4LWJpdCBFdGhlcm5ldCBNQUMgYWRkcmVzcy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIjBRIEzwYIDQoNCgUEDQIjARIEzwYOGQoNCgUEDQIjAxIEzwYcHgr+AgoEBA0CJBIE2wYIHxpKI2RlZmluZSBPWE1fT0ZfTVBMU19MQUJFTCAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9NUExTX0xBQkVMLCA0KQoiGyBGb3IgT0ZQWE1UX09GQl9NUExTX0xBQkVMIDKGAiBUaGUgTEFCRUwgaW4gdGhlIGZpcnN0IE1QTFMgc2hpbSBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4ODQ3IG9yIDB4ODg0OCBleGFjdGx5LgoKIEZvcm1hdDogMzItYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyIHdpdGggMTIgbW9zdC1zaWduaWZpY2FudAogYml0cyBmb3JjZWQgdG8gMC4gT25seSB0aGUgbG93ZXIgMjAgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CJAUSBNsGCA4KDQoFBA0CJAESBNsGDxkKDQoFBA0CJAMSBNsGHB4K3AIKBAQNAiUSBOcGCBwaRyNkZWZpbmUgT1hNX09GX01QTFNfVEMgICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfTVBMU19UQywgMSkKIhggRm9yIE9GUFhNVF9PRkJfTVBMU19UQyAy6gEgVGhlIFRDIGluIHRoZSBmaXJzdCBNUExTIHNoaW0gaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODg0NyBvciAweDg4NDggZXhhY3RseS4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIgd2l0aCA1IG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VyIDMgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CJQUSBOcGCA4KDQoFBA0CJQESBOcGDxYKDQoFBA0CJQMSBOcGGRsK5AIKBAQNAiYSBPMGCB0aSSNkZWZpbmUgT1hNX09GX01QTFNfQk9TICAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX01QTFNfQk9TLCAxKQoiGSBGb3IgT0ZQWE1UX09GQl9NUExTX0JPUyAy7wEgVGhlIEJvUyBiaXQgaW4gdGhlIGZpcnN0IE1QTFMgc2hpbSBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4ODQ3IG9yIDB4ODg0OCBleGFjdGx5LgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlciB3aXRoIDcgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXN0IGJpdCBoYXZlIGEgbWVhbmluZy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQImBRIE8wYIDgoNCgUEDQImARIE8wYPFwoNCgUEDQImAxIE8wYaHAqqAwoEBA0CJxIEggcIHRqOASNkZWZpbmUgT1hNX09GX1BCQl9JU0lEICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9QQkJfSVNJRCwgMykKI2RlZmluZSBPWE1fT0ZfUEJCX0lTSURfVyBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX1BCQl9JU0lELCAzKQoiGSBGb3IgT0ZQWE1UX09GQl9QQkJfSVNJRCAy7wEgSUVFRSA4MDIuMWFoIEktU0lELgoKIEZvciBhIHBhY2tldCB3aXRoIGEgUEJCIGhlYWRlciwgdGhpcyBpcyB0aGUgSS1TSUQgZnJvbSB0aGUKIG91dGVybW9zdCBzZXJ2aWNlIHRhZy4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg4RTcgZXhhY3RseS4KCiBGb3JtYXQ6IDI0LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuIAoNCgUEDQInBRIEggcIDgoNCgUEDQInARIEggcPFwoNCgUEDQInAxIEggcaHAq8BgoEBA0CKBIElgcIHhqUASNkZWZpbmUgT1hNX09GX1RVTk5FTF9JRCAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1RVTk5FTF9JRCwgOCkKI2RlZmluZSBPWE1fT0ZfVFVOTkVMX0lEX1cgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfVFVOTkVMX0lELCA4KQoiGiBGb3IgT0ZQWE1UX09GQl9UVU5ORUxfSUQgMvoEIExvZ2ljYWwgUG9ydCBNZXRhZGF0YS4KCiBNZXRhZGF0YSBhc3NvY2lhdGVkIHdpdGggYSBsb2dpY2FsIHBvcnQuCiBJZiB0aGUgbG9naWNhbCBwb3J0IHBlcmZvcm1zIGVuY2Fwc3VsYXRpb24gYW5kIGRlY2Fwc3VsYXRpb24sIHRoaXMKIGlzIHRoZSBkZW11bHRpcGxleGluZyBmaWVsZCBmcm9tIHRoZSBlbmNhcHN1bGF0aW9uIGhlYWRlci4KIEZvciBleGFtcGxlLCBmb3IgYSBwYWNrZXQgcmVjZWl2ZWQgdmlhIEdSRSB0dW5uZWwgaW5jbHVkaW5nIGEgKDMyLWJpdCkga2V5LAogdGhlIGtleSBpcyBzdG9yZWQgaW4gdGhlIGxvdyAzMi1iaXRzIGFuZCB0aGUgaGlnaCBiaXRzIGFyZSB6ZXJvZWQuCiBGb3IgYSBNUExTIGxvZ2ljYWwgcG9ydCwgdGhlIGxvdyAyMCBiaXRzIHJlcHJlc2VudCB0aGUgTVBMUyBMYWJlbC4KIEZvciBhIFZ4TEFOIGxvZ2ljYWwgcG9ydCwgdGhlIGxvdyAyNCBiaXRzIHJlcHJlc2VudCB0aGUgVk5JLgogSWYgdGhlIHBhY2tldCBpcyBub3QgcmVjZWl2ZWQgdGhyb3VnaCBhIGxvZ2ljYWwgcG9ydCwgdGhlIHZhbHVlIGlzIDAuCgogUHJlcmVxczogTm9uZS4KCiBGb3JtYXQ6IDY0LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuIAoNCgUEDQIoBRIElgcIDgoNCgUEDQIoARIElgcPGAoNCgUEDQIoAxIElgcbHQqoAwoEBA0CKRIEowcIIBqaASNkZWZpbmUgT1hNX09GX0lQVjZfRVhUSERSICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X0VYVEhEUiwgMikKI2RlZmluZSBPWE1fT0ZfSVBWNl9FWFRIRFJfVyBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfRVhUSERSLCAyKQoiHCBGb3IgT0ZQWE1UX09GQl9JUFY2X0VYVEhEUiAy3gEgVGhlIElQdjYgRXh0ZW5zaW9uIEhlYWRlciBwc2V1ZG8tZmllbGQuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4NmRkIGV4YWN0bHkKCiBG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CiBUaGUgcmVxdWVzdCBib2R5IGlzIHN0cnVjdCBvZnBfcG9ydF9zdGF0c19yZXF1ZXN0LgogVGhlIHJlcGx5IGJvZHkgaXMgYW4gYXJyYXkgb2Ygc3RydWN0IG9mcF9wb3J0X3N0YXRzLiAKDQoFBS4CBAESBKkNBBQKDQoFBS4CBAISBKkNFxgKlwEKBAUuAgUSBK4NBBQaiAEgUXVldWUgc3RhdGlzdGljcyBmb3IgYSBwb3J0CiBUaGUgcmVxdWVzdCBib2R5IGlzIHN0cnVjdCBvZnBfcXVldWVfc3RhdHNfcmVxdWVzdC4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfcXVldWVfc3RhdHMgCg0KBQUuAgUBEgSuDQQPCg0KBQUuAgUCEgSuDRITCpEBCgQFLgIGEgSzDQQUGoIBIEdyb3VwIGNvdW50ZXIgc3RhdGlzdGljcy4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgc3RydWN0IG9mcF9ncm91cF9zdGF0c19yZXF1ZXN0LgogVGhlIHJlcGx5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfZ3JvdXBfc3RhdHMuIAoNCgUFLgIGARIEsw0EDwoNCgUFLgIGAhIEsw0SEwp0CgQFLgIHEgS4DQQZGmYgR3JvdXAgZGVzY3JpcHRpb24uCiBUaGUgcmVxdWVzdCBib2R5IGlzIGVtcHR5LgogVGhlIHJlcGx5IGJvZHkgaXMgYW4gYXJyYXkgb2Ygc3RydWN0IG9mcF9ncm91cF9kZXNjLiAKDQoFBS4CBwESBLgNBBQKDQoFBS4CBwISBLgNFxgKaQoEBS4CCBIEvQ0EHRpbIEdyb3VwIGZlYXR1cmVzLgogVGhlIHJlcXVlc3QgYm9keSBpcyBlbXB0eS4KIFRoZSByZXBseSBib2R5IGlzIHN0cnVjdCBvZnBfZ3JvdXBfZmVhdHVyZXMuIAoNCgUFLgIIARIEvQ0EGAoNCgUFLgIIAhIEvQ0bHAqTAQoEBS4CCRIEwg0EFBqEASBNZXRlciBzdGF0aXN0aWNzLgogVGhlIHJlcXVlc3QgYm9keSBpcyBzdHJ1Y3Qgb2ZwX21ldGVyX211bHRpcGFydF9yZXF1ZXN0cy4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfbWV0ZXJfc3RhdHMuIAoNCgUFLgIJARIEwg0EDwoNCgUFLgIJAhIEwg0SEwqXAQoEBS4CChIExw0EHBqIASBNZXRlciBjb25maWd1cmF0aW9uLgogVGhlIHJlcXVlc3QgYm9keSBpcyBzdHJ1Y3Qgb2ZwX21ldGVyX211bHRpcGFydF9yZXF1ZXN0cy4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfbWV0ZXJfY29uZmlnLiAKDQoFBS4CCgESBMcNBBYKDQoFBS4CCgISBMcNGRsKaQoEBS4CCxIEzA0EHhpbIE1ldGVyIGZlYXR1cmVzLgogVGhlIHJlcXVlc3QgYm9keSBpcyBlbXB0eS4KIFRoZSByZXBseSBib2R5IGlzIHN0cnVjdCBvZnBfbWV0ZXJfZmVhdHVyZXMuIAoNCgUFLgILARIEzA0EGAoNCgUFLgILAhIEzA0bHQqxAgoEBS4CDBIE1A0EHhqiAiBUYWJsZSBmZWF0dXJlcy4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgZWl0aGVyIGVtcHR5IG9yIGNvbnRhaW5zIGFuIGFycmF5IG9mCiBzdHJ1Y3Qgb2ZwX3RhYmxlX2ZlYXR1cmVzIGNvbnRhaW5pbmcgdGhlIGNvbnRyb2xsZXIncwogZGVzaXJlZCB2aWV3IG9mIHRoZSBzd2l0Y2guIElmIHRoZSBzd2l0Y2ggaXMgdW5hYmxlIHRvCiBzZXQgdGhlIHNwZWNpZmllZCB2aWV3IGFuIGVycm9yIGlzIHJldHVybmVkLgogVGhlIHJlcGx5IGJvZHkgaXMgYW4gYXJyYXkgb2Ygc3RydWN0IG9mcF90YWJsZV9mZWF0dXJlcy4gCg0KBQUuAgwBEgTUDQQYCg0KBQUuAgwCEgTUDRsdCm0KBAUuAg0SBNkNBBkaXyBQb3J0IGRlc2NyaXB0aW9uLgogVGhlIHJlcXVlc3QgYm9keSBpcyBlbXB0eS4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfcG9ydC4gCg0KBQUuAg0BEgTZDQQTCg0KBQUuAg0CEgTZDRYYCr4BCgQFLgIOEgTfDQQgGq8BIEV4cGVyaW1lbnRlciBleHRl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ZBIXCgdwb3J0X2lkGAIgASgJUgZwb3J0SWQi8gEKC0xvZ2ljYWxQb3J0Eg4KAmlkGAEgASgJUgJpZBIwCghvZnBfcG9ydBgCIAEoCzIVLm9wZW5mbG93XzEzLm9mcF9wb3J0UgdvZnBQb3J0EhsKCWRldmljZV9pZBgDIAEoCVIIZGV2aWNlSWQSJAoOZGV2aWNlX3BvcnRfbm8YBCABKA1SDGRldmljZVBvcnRObxIbCglyb290X3BvcnQYBSABKAhSCHJvb3RQb3J0EkEKDm9mcF9wb3J0X3N0YXRzGAYgASgLMhsub3BlbmZsb3dfMTMub2ZwX3BvcnRfc3RhdHNSDG9mcFBvcnRTdGF0cyJBCgxMb2dpY2FsUG9ydHMSMQoFaXRlbXMYASADKAsyGy5sb2dpY2FsX2RldmljZS5Mb2dpY2FsUG9ydFIFaXRlbXMi3AEKDUxvZ2ljYWxEZXZpY2USDgoCaWQYASABKAlSAmlkEh8KC2RhdGFwYXRoX2lkGAIgASgEUgpkYXRhcGF0aElkEikKBGRlc2MYAyABKAsyFS5vcGVuZmxvd18xMy5vZnBfZGVzY1IEZGVzYxJJCg9zd2l0Y2hfZmVhdHVyZXMYBCABKAsyIC5vcGVuZmxvd18xMy5vZnBfc3dpdGNoX2ZlYXR1cmVzUg5zd2l0Y2hGZWF0dXJlcxIkCg5yb290X2RldmljZV9pZBgFIAEoCVIMcm9vdERldmljZUlkIkUKDkxvZ2ljYWxEZXZpY2VzEjMKBWl0ZW1zGAEgAygLMh0ubG9naWNhbF9kZXZpY2UuTG9naWNhbERldmljZVIFaXRlbXNCZQoib3JnLm9wZW5jb3JkLnZvbHRoYS5sb2dpY2FsX2RldmljZUIPT0ZMb2dpY2FsRGV2aWNlWi5naXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vdm9sdGhhSo4MCgYSBAAANAEKCAoBDBIDAAASCggKAQgSAwIARQoJCgIICxIDAgBFCggKAQgSAwMAOwoJCgIIARIDAwA7CggKAQgSAwQAMAoJCgIICBIDBAAwCggKAQISAwYAFwoJCgIDABIDCAAmCgkKAgMBEgMJACkKCgoCBAASBAsAEQEKCgoDBAABEgMLCBUKKgoEBAACABIDDQQSGh0gdW5pcXVlIGlk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X3VwZGF0ZRgHIAEoCFIfYWNjZXB0c0RpcmVjdExvZ2ljYWxGbG93c1VwZGF0ZRIhCgxhZGFwdGVyX3R5cGUYCCABKAlSC2FkYXB0ZXJUeXBlIjcKC0RldmljZVR5cGVzEigKBWl0ZW1zGAEgAygLMhIuZGV2aWNlLkRldmljZVR5cGVSBWl0ZW1zIsABCghQbUNvbmZpZxISCgRuYW1lGAEgASgJUgRuYW1lEisKBHR5cGUYAiABKA4yFy5kZXZpY2UuUG1Db25maWcuUG1UeXBlUgR0eXBlEhgKB2VuYWJsZWQYAyABKAhSB2VuYWJsZWQSHwoLc2FtcGxlX2ZyZXEYBCABKA1SCnNhbXBsZUZyZXEiOAoGUG1UeXBlEgsKB0NPVU5URVIQABIJCgVHQVVHRRABEgkKBVNUQVRFEAISCwoHQ09OVEVYVBADIpMBCg1QbUdyb3VwQ29uZmlnEh0KCmdyb3VwX25hbWUYASABKAlSCWdyb3VwTmFtZRIdCgpncm91cF9mcmVxGAIgASgNUglncm91cEZyZXESGAoHZW5hYmxlZBgDIAEoCFIHZW5hYmxlZBIqCgdtZXRyaWNzGAQgAygLMhAuZGV2aWNlLlBtQ29uZmlnUgdtZXRyaWNzIvMBCglQbUNvbmZpZ3MSDgoCaWQYASABKAlSAmlkEiEKDGRlZmF1bHRfZnJlcRgCIAEoDVILZGVmYXVsdEZyZXESGAoHZ3JvdXBlZBgDIAEoCFIHZ3JvdXBlZBIjCg1mcmVxX292ZXJyaWRlGAQgASgIUgxmcmVxT3ZlcnJpZGUSLQoGZ3JvdXBzGAUgAygLMhUuZGV2aWNlLlBtR3JvdXBDb25maWdSBmdyb3VwcxIqCgdtZXRyaWNzGAYgAygLMhAuZGV2aWNlLlBtQ29uZmlnUgdtZXRyaWNzEhkKCG1heF9za2V3GAcgASgNUgdtYXhTa2V3Io8CCgVJbWFnZRISCgRuYW1lGAEgASgJUgRuYW1lEhgKB3ZlcnNpb24YAiABKAlSB3ZlcnNpb24SEgoEaGFzaBgDIAEoDVIEaGFzaBIpChBpbnN0YWxsX2RhdGV0aW1lGAQgASgJUg9pbnN0YWxsRGF0ZXRpbWUSGwoJaXNfYWN0aXZlGAUgASgIUghpc0FjdGl2ZRIhCgxpc19jb21taXR0ZWQYBiABKAhSC2lzQ29tbWl0dGVkEhkKCGlzX3ZhbGlkGAcgASgIUgdpc1ZhbGlkEhAKA3VybBgIIAEoCVIDdXJsEhYKBnZlbmRvchgJIAEoCVIGdmVuZG9yEhQKBWNyYzMyGAogASgNUgVjcmMzMiLnBwoNSW1hZ2VEb3dubG9hZBIOCgJpZBgBIAEoCVICaWQSEgoEbmFtZRgCIAEoCVIEbmFtZRIQCgN1cmwYAyABKAlSA3VybBIQCgNjcmMYBCABKA1SA2NyYxJPCg5kb3dubG9hZF9zdGF0ZRgFIAEoDjIoLmRldmljZS5JbWFnZURvd25sb2FkLkltYWdlRG93bmxvYWRTdGF0ZVINZG93bmxvYWRTdGF0ZRIjCg1pbWFnZV92ZXJzaW9uGAYgASgJUgxpbWFnZVZlcnNpb24SKQoQZG93bmxvYWRlZF9ieXRlcxgHIAEoDVIPZG93bmxvYWRlZEJ5dGVzEkgKBnJlYXNvbhgIIAEoDjIwLmRldmljZS5JbWFnZURvd25sb2FkLkltYWdlRG93bmxvYWRGYWlsdXJlUmVhc29uUgZyZWFzb24SJwoPYWRkaXRpb25hbF9pbmZvGAkgASgJUg5hZGRpdGlvbmFsSW5mbxIfCgtzYXZlX2NvbmZpZxgKIAEoCFIKc2F2ZUNvbmZpZxIbCglsb2NhbF9kaXIYCyABKAlSCGxvY2FsRGlyEkkKC2ltYWdlX3N0YXRlGAwgASgOMiguZGV2aWNlLkltYWdlRG93bmxvYWQuSW1hZ2VBY3RpdmF0ZVN0YXRlUgppbWFnZVN0YXRlEhsKCWZpbGVfc2l6ZRgNIAEoDVIIZmlsZVNpemUitwEKEkltYWdlRG93bmxvYWRTdGF0ZRIUChBET1dOTE9BRF9VTktOT1dOEAASFgoSRE9XTkxPQURfU1VDQ0VFREVEEAESFgoSRE9XTkxPQURfUkVRVUVTVEVEEAISFAoQRE9XTkxPQURfU1RBUlRFRBADEhMKD0RPV05MT0FEX0ZBSUxFRBAEEhgKFERPV05MT0FEX1VOU1VQUE9SVEVEEAUSFgoSRE9XTkxPQURfQ0FOQ0VMTEVEEAYihgEKGkltYWdlRG93bmxvYWRGYWlsdXJlUmVhc29uEgwKCE5PX0VSUk9SEAASDwoLSU5WQUxJRF9VUkwQARIPCgtERVZJQ0VfQlVTWRACEhYKEklOU1VGRklDSUVOVF9TUEFDRRADEhEKDVVOS05PV05fRVJST1IQBBINCglDQU5DRUxMRUQQBSKMAQoSSW1hZ2VBY3RpdmF0ZVN0YXRlEhEKDUlNQUdFX1VOS05PV04QABISCg5JTUFHRV9JTkFDVElWRRABEhQKEElNQUdFX0FDVElWQVRJTkcQAhIQCgxJTUFHRV9BQ1RJVkUQAxITCg9JTUFHRV9SRVZFUlRJTkcQBBISCg5JTUFHRV9SRVZFUlRFRBAFOgIYASJBCg5JbWFnZURvd25sb2FkcxIrCgVpdGVtcxgCIAMoCzIVLmRldmljZS5JbWFnZURvd25sb2FkUgVpdGVtczoCGAEiLQoGSW1hZ2VzEiMKBWltYWdlGAEgAygLMg0uZGV2aWNlLkltYWdlUgVpbWFnZSKwAQoIT251SW1hZ2USGAoHdmVyc2lvbhgBIAEoCVIHdmVyc2lvbhIeCgppc0NvbW1pdGVkGAIgASgIUgppc0NvbW1pdGVkEhoKCGlzQWN0aXZlGAMgASgIUghpc0FjdGl2ZRIYCgdpc1ZhbGlkGAQgASgIUgdpc1ZhbGlkEiAKC3Byb2R1Y3RDb2RlGAUgASgJUgtwcm9kdWN0Q29kZRISCgRoYXNoGAYgASgJUgRoYXNoIjMKCU9udUltYWdlcxImCgVpdGVtcxgBIAMoCzIQLmRldmljZS5PbnVJbWFnZVIFaXRlbXMiYwoQRGV2aWNlSW1hZ2VTdGF0ZRIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEjIKCmltYWdlU3RhdGUYAiABKAsyEi5kZXZpY2UuSW1hZ2VTdGF0ZVIKaW1hZ2VTdGF0ZSLjBwoKSW1hZ2VTdGF0ZRIYCgd2ZXJzaW9uGAEgASgJUgd2ZXJzaW9uEkwKDmRvd25sb2FkX3N0YXRlGAIgASgOMiUuZGV2aWNlLkltYWdlU3RhdGUuSW1hZ2VEb3dubG9hZFN0YXRlUg1kb3dubG9hZFN0YXRlEj0KBnJlYXNvbhgDIAEoDjIlLmRldmljZS5JbWFnZVN0YXRlLkltYWdlRmFpbHVyZVJlYXNvblIGcmVhc29uEkgKC2ltYWdlX3N0YXRlGAQgASgOMicuZGV2aWNlLkltYWdlU3RhdGUuSW1hZ2VBY3RpdmF0aW9uU3RhdGVSCmltYWdlU3RhdGUi0AEKEkltYWdlRG93bmxvYWRTdGF0ZRIUChBET1dOTE9BRF9VTktOT1dOEAASFgoSRE9XTkxPQURfU1VDQ0VFREVEEAESFgoSRE9XTkxPQURfUkVRVUVTVEVEEAISFAoQRE9XTkxPQURfU1RBUlRFRBADEhMKD0RPV05MT0FEX0ZBSUxFRBAEEhgKFERPV05MT0FEX1VOU1VQUE9SVEVEEAUSFwoTRE9XTkxPQURfQ0FOQ0VMTElORxAGEhYKEkRPV05MT0FEX0NBTkNFTExFRBAHIvQBChJJbWFnZUZhaWx1cmVSZWFzb24SDAoITk9fRVJST1IQABIPCgtJTlZBTElEX1VSTBABEg8KC0RFVklDRV9CVVNZEAISFgoSSU5TVUZGSUNJRU5UX1NQQUNFEAMSEQoNVU5LTk9XTl9FUlJPUhAEEhgKFENBTkNFTExFRF9PTl9SRVFVRVNUEAUSGgoWQ0FOQ0VMTEVEX09OX09OVV9TVEFURRAGEhoKFlZFTkRPUl9ERVZJQ0VfTUlTTUFUQ0gQBxIXChNPTUNJX1RSQU5TRkVSX0VSUk9SEAgSGAoUSU1BR0VfUkVGVVNFRF9CWV9PTlUQCSKZAgoUSW1hZ2VBY3RpdmF0aW9uU3RhdGUSEQoNSU1BR0VfVU5LTk9XThAAEhIKDklNQUdFX0lOQUNUSVZFEAESFAoQSU1BR0VfQUNUSVZBVElORxACEhAKDElNQUdFX0FDVElWRRADEhQKEElNQUdFX0NPTU1JVFRJTkcQBBITCg9JTUFHRV9DT01NSVRURUQQBRIdChlJTUFHRV9BQ1RJVkFUSU9OX0FCT1JUSU5HEAYSHAoYSU1BR0VfQUNUSVZBVElPTl9BQk9SVEVEEAcSGQoVSU1BR0VfQ09NTUlUX0FCT1JUSU5HEAgSGAoUSU1BR0VfQ09NTUlUX0FCT1JURUQQCRIVChFJTUFHRV9ET1dOTE9BRElORxAKIrcFCgRQb3J0EhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIUCgVsYWJlbBgCIAEoCVIFbGFiZWwSKQoEdHlwZRgDIAEoDjIVLmRldmljZS5Qb3J0LlBvcnRUeXBlUgR0eXBlEjkKC2FkbWluX3N0YXRlGAUgASgOMhguY29tbW9uLkFkbWluU3RhdGUuVHlwZXNSCmFkbWluU3RhdGUSOQoLb3Blcl9zdGF0dXMYBiABKA4yGC5jb21tb24uT3BlclN0YXR1cy5UeXBlc1IKb3BlclN0YXR1cxIbCglkZXZpY2VfaWQYByABKAlSCGRldmljZUlkEisKBXBlZXJzGAggAygLMhUuZGV2aWNlLlBvcnQuUGVlclBvcnRSBXBlZXJzEh0KCnJ4X3BhY2tldHMYCSABKAZSCXJ4UGFja2V0cxIZCghyeF9ieXRlcxgKIAEoBlIHcnhCeXRlcxIbCglyeF9lcnJvcnMYCyABKAZSCHJ4RXJyb3JzEh0KCnR4X3BhY2tldHMYDCABKAZSCXR4UGFja2V0cxIZCgh0eF9ieXRlcxgNIAEoBlIHdHhCeXRlcxIbCgl0eF9lcnJvcnMYDiABKAZSCHR4RXJyb3JzEjAKCG9mcF9wb3J0GA8gASgLMhUub3BlbmZsb3dfMTMub2ZwX3BvcnRSB29mcFBvcnQaQAoIUGVlclBvcnQSGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIXCgdwb3J0X25vGAIgASgNUgZwb3J0Tm8icwoIUG9ydFR5cGUSCwoHVU5LTk9XThAAEhAKDEVUSEVSTkVUX05OSRABEhAKDEVUSEVSTkVUX1VOSRACEgsKB1BPTl9PTFQQAxILCgdQT05fT05VEAQSDQoJVkVORVRfT0xUEAUSDQoJVkVORVRfT05VEAYiKwoFUG9ydHMSIgoFaXRlbXMYASADKAsyDC5kZXZpY2UuUG9ydFIFaXRlbXMi2AoKBkRldmljZRIOCgJpZBgBIAEoCVICaWQSEgoEdHlwZRgCIAEoCVIEdHlwZRISCgRyb290GAMgASgIUgRyb290EhsKCXBhcmVudF9pZBgEIAEoCVIIcGFyZW50SWQSJAoOcGFyZW50X3BvcnRfbm8YFCABKA1SDHBhcmVudFBvcnRObxIWCgZ2ZW5kb3IYBSABKAlSBnZlbmRvchIUCgVtb2RlbBgGIAEoCVIFbW9kZWwSKQoQaGFyZHdhcmVfdmVyc2lvbhgHIAEoCVIPaGFyZHdhcmVWZXJzaW9uEikKEGZpcm13YXJlX3ZlcnNpb24YCCABKAlSD2Zpcm13YXJlVmVyc2lvbhImCgZpbWFnZXMYCSABKAsyDi5kZXZpY2UuSW1hZ2VzUgZpbWFnZXMSIwoNc2VyaWFsX251bWJlchgKIAEoCVIMc2VyaWFsTnVtYmVyEhsKCXZlbmRvcl9pZBgYIAEoCVIIdmVuZG9ySWQSKQoQYWRhcHRlcl9lbmRwb2ludBgZIAEoCVIPYWRhcHRlckVuZHBvaW50EhIKBHZsYW4YDCABKA1SBHZsYW4SHwoLbWFjX2FkZHJlc3MYDSABKAlSCm1hY0FkZHJlc3MSIwoMaXB2NF9hZGRyZXNzGA4gASgJSABSC2lwdjRBZGRyZXNzEiMKDGlwdjZfYWRkcmVzcxgPIAEoCUgAUgtpcHY2QWRkcmVzcxIkCg1ob3N0X2FuZF9wb3J0GBUgASgJSABSC2hvc3RBbmRQb3J0Eh0KCmV4dHJhX2FyZ3MYFyABKAlSCWV4dHJhQXJncxJACg1wcm94eV9hZGRyZXNzGBMgASgLMhsuZGV2aWNlLkRldmljZS5Qcm94eUFkZHJlc3NSDHByb3h5QWRkcmVzcxI5CgthZG1pbl9zdGF0ZRgQIAEoDjIYLmNvbW1vbi5BZG1pblN0YXRlLlR5cGVzUgphZG1pblN0YXRlEjkKC29wZXJfc3RhdHVzGBEgASgOMhguY29tbW9uLk9wZXJTdGF0dXMuVHlwZXNSCm9wZXJTdGF0dXMSFgoGcmVhc29uGBYgASgJUgZyZWFzb24SQgoOY29ubmVjdF9zdGF0dXMYEiABKA4yGy5jb21tb24uQ29ubmVjdFN0YXR1cy5UeXBlc1INY29ubmVjdFN0YXR1cxIsCgZjdXN0b20YQCABKAsyFC5nb29nbGUucHJvdG9idWYuQW55UgZjdXN0b20SMQoKcG1fY29uZmlncxiDASABKAsyES5kZXZpY2UuUG1Db25maWdzUglwbUNvbmZpZ3MSPwoPaW1hZ2VfZG93bmxvYWRzGIUBIAMoCzIVLmRldmljZS5JbWFnZURvd25sb2FkUg5pbWFnZURvd25sb2FkcxquAgoMUHJveHlBZGRyZXNzEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSHwoLZGV2aWNlX3R5cGUYAiABKAlSCmRldmljZVR5cGUSHQoKY2hhbm5lbF9pZBgDIAEoDVIJY2hhbm5lbElkEigKEGNoYW5uZWxfZ3JvdXBfaWQYBCABKA1SDmNoYW5uZWxHcm91cElkEi8KE2NoYW5uZWxfdGVybWluYXRpb24YBSABKAlSEmNoYW5uZWxUZXJtaW5hdGlvbhIVCgZvbnVfaWQYBiABKA1SBW9udUlkEiQKDm9udV9zZXNzaW9uX2lkGAcgASgNUgxvbnVTZXNzaW9uSWQSKQoQYWRhcHRlcl9lbmRwb2ludBgIIAEoCVIPYWRhcHRlckVuZHBvaW50QgkKB2FkZHJlc3NKBAgLEAwiwgEKGkRldmljZUltYWdlRG93bmxvYWRSZXF1ZXN0EicKCWRldmljZV9pZBgBIAMoCzIKLmNvbW1vbi5JRFIIZGV2aWNlSWQSIwoFaW1hZ2UYAiABKAsyDS5kZXZpY2UuSW1hZ2VSBWltYWdlEiwKEWFjdGl2YXRlT25TdWNjZXNzGAMgASgIUhFhY3RpdmF0ZU9uU3VjY2VzcxIoCg9jb21taXRPblN1Y2Nlc3MYBCABKAhSD2NvbW1pdE9uU3VjY2VzcyKBAQoSRGV2aWNlSW1hZ2VSZXF1ZXN0EicKCWRldmljZV9pZBgBIAMoCzIKLmNvbW1vbi5JRFIIZGV2aWNlSWQSGAoHdmVyc2lvbhgCIAEoCVIHdmVyc2lvbhIoCg9jb21taXRPblN1Y2Nlc3MYAyABKAhSD2NvbW1pdE9uU3VjY2VzcyJfChNEZXZpY2VJbWFnZVJlc3BvbnNlEkgKE2RldmljZV9pbWFnZV9zdGF0ZXMYASADKAsyGC5kZXZpY2UuRGV2aWNlSW1hZ2VTdGF0ZVIRZGV2aWNlSW1hZ2VTdGF0ZXMipQEKEFNlbGZUZXN0UmVzcG9uc2USPwoGcmVzdWx0GAEgASgOMicuZGV2aWNlLlNlbGZUZXN0UmVzcG9uc2UuU2VsZlRlc3RSZXN1bHRSBnJlc3VsdCJQCg5TZWxmVGVzdFJlc3VsdBILCgdTVUNDRVNTEAASCwoHRkFJTFVSRRABEhEKDU5PVF9TVVBQT1JURUQQAhIRCg1VTktOT1dOX0VSUk9SEAMiLwoHRGV2aWNlcxIkCgVpdGVtcxgBIAMoCzIOLmRldmljZS5EZXZpY2VSBWl0ZW1zIqgDChRTaW11bGF0ZUFsYXJtUmVxdWVzdBIOCgJpZBgBIAEoCVICaWQSHAoJaW5kaWNhdG9yGAIgASgJUglpbmRpY2F0b3ISFwoHaW50Zl9pZBgDIAEoCVIGaW50ZklkEiQKDnBvcnRfdHlwZV9uYW1lGAQgASgJUgxwb3J0VHlwZU5hbWUSIgoNb251X2RldmljZV9pZBgFIAEoCVILb251RGV2aWNlSWQSMwoWaW52ZXJzZV9iaXRfZXJyb3JfcmF0ZRgGIAEoBVITaW52ZXJzZUJpdEVycm9yUmF0ZRIUCgVkcmlmdBgHIAEoBVIFZHJpZnQSFwoHbmV3X2VxZBgIIAEoBVIGbmV3RXFkEioKEW9udV9zZXJpYWxfbnVtYmVyGAkgASgJUg9vbnVTZXJpYWxOdW1iZXISSAoJb3BlcmF0aW9uGAogASgOMiouZGV2aWNlLlNpbXVsYXRlQWxhcm1SZXF1ZXN0Lk9wZXJhdGlvblR5cGVSCW9wZXJhdGlvbiIlCg1PcGVyYXRpb25UeXBlEgkKBVJBSVNFEAASCQoFQ0xFQVIQAUJaChpvcmcub3BlbmNvcmQudm9sdGhhLmRldmljZUIMVm9sdGhhRGV2aWNlWi5naXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vdm9sdGhhSp2hAQoHEgUAAO0DAQoICgEMEgMAABIKCAoBCBIDAgBFCgkKAggLEgMCAEUKCAoBCBIDAwAzCgkKAggBEgMDADMKCAoBCBIDBAAtCgkKAggIEgMEAC0KCAoBAhIDBgAPCgkKAgMAEgMIACMKCQoCAwESAwoAJAoJCgIDAhIDCwApChsKAgQAEgQOACUBGg8gQSBEZXZpY2UgVHlwZQoKCgoDBAABEgMOCBIKLgoEBAACABIDEQQSGiEgVW5pcXVlIG5hbWUgZm9yIHRoZSBkZXZpY2UgdHlwZQoKDQoFBAACAAQSBBEEDhQKDAoFBAACAAUSAxEECgoMCgUEAAIAARIDEQsNCgwKBQQAAgADEgMREBEKcgoEBAACARIDFQQZGmUgVW5pcXVlIHZlbmRvciBpZCBmb3IgdGhlIGRldmljZSB0eXBlIGFwcGxpY2FibGUgdG8gT05VCiA0IGJ5dGVzIG9mIHZlbmRvciBpZCBmcm9tIE9OVSBzZXJpYWwgbnVtYmVyCgoNCgUEAAIBBBIEFQQREgoMCgUEAAIBBRIDFQQKCgwKBQQAAgEBEgMVCxQKDAoFBAACAQMSAxUXGAoLCgQEAAICEgMXBCMKDAoFBAACAgQSAxcEDAoMCgUEAAICBRIDFw0TCgwKBQQAAgIBEgMXFB4KDAoFBAACAgMSAxchIgpjCgQEAAIDEgMbBBcaViBOYW1lIG9mIHRoZSBhZGFwdGVyIHRoYXQgaGFuZGxlcyBkZXZpY2UgdHlwZQogRGVwcmVjYXRlZCBhbmQgcmVwbGFjZWQgYnkgYWRhcHRlclR5cGUKCg0KBQQAAgMEEgQbBBcjCgwKBQQAAgMFEgMbBAoKDAoFBAACAwESAxsLEgoMCgUEAAIDAxIDGxUWChsKBAQAAgQSAx4EJhoOIENhcGFiaWxpdGllcwoKDQoFBAACBAQSBB4EGxcKDAoFBAACBAUSAx4ECAoMCgUEAAIEARIDHgkhCgwKBQQAAgQDEgMeJCUKCwoEBAACBRIDHwQtCg0KBQQAAgUEEgQfBB4mCgwKBQQAAgUFEgMfBAgKDAoFBAACBQESAx8JKAoMCgUEAAIFAxIDHyssCgsKBAQAAgYSAyAEMQoNCgUEAAIGBBIEIAQfLQoMCgUEAAIGBRIDIAQICgwKBQQAAgYBEgMgCSwKDAoFBAACBgMSAyAvMAo/CgQEAAIHEgMjBBwaMiBUeXBlIG9mIGFkYXB0ZXIgdGhhdCBjYW4gaGFuZGxlIHRoaXMgZGV2aWNlIHR5cGUKCg0KBQQAAgcEEgQjBCAxCgwKBQQAAgcFEgMjBAoKDAoFBAACBwESAyMLFwoMCgUEAAIHAxIDIxobCikKAgQBEgQoACoBGh0gQSBwbHVyYWxpdHkgb2YgZGV2aWNlIHR5cGVzCgoKCgMEAQESAygIEwoLCgQEAQIAEgMpBCIKDAoFBAECAAQSAykEDAoMCgUEAQIABhIDKQ0XCgwKBQQBAgABEgMpGB0KDAoFBAECAAMSAykgIQoKCgIEAhIELAA3AQoKCgMEAgESAywIEAoMCgQEAgQAEgQtBDIFCgwKBQQCBAABEgMtCQ8KDQoGBAIEAAIAEgMuCBQKDgoHBAIEAAIAARIDLggPCg4KBwQCBAACAAISAy4SEwoNCgYEAgQAAgESAy8IEgoOCgcEAgQAAgEBEgMvCA0KDgoHBAIEAAIBAhIDLxARCg0KBgQCBAACAhIDMAgSCg4KBwQCBAACAgESAzAIDQoOCgcEAgQAAgICEgMwEBEKDQoGBAIEAAIDEgMxCBQKDgoHBAIEAAIDARIDMQgPCg4KBwQCBAACAwISAzESEwoLCgQEAgIAEgMzBBQKDQoFBAICAAQSBDMEMgUKDAoFBAICAAUSAzMECgoMCgUEAgIAARIDMwsPCgwKBQQCAgADEgMzEhMKCwoEBAICARIDNAQUCg0KBQQCAgEEEgQ0BDMUCgwKBQQCAgEGEgM0BAoKDAoFBAICAQESAzQLDwoMCgUEAgIBAxIDNBITCjsKBAQCAgISAzUEFSIuIFdoZXRoZXIgb3Igbm90IHRoaXMgbWV0cmljIG1ha2VzIGl0IHRvIEthZmthCgoNCgUEAgICBBIENQQ0FAoMCgUEAgICBRIDNQQICgwKBQQCAgIBEgM1CRAKDAoFBAICAgMSAzUTFAovCgQEAgIDEgM2BBsiIiBTYW1wbGUgcmF0ZSBpbiAxMHRocyBvZiBhIHNlY29uZAoKDQoFBAICAwQSBDYENRUKDAoFBAICAwUSAzYECgoMCgUEAgIDARIDNgsWCgwKBQQCAgMDEgM2GRoKCgoCBAMSBDkAPgEKCgoDBAMBEgM5CBUKCwoEBAMCABIDOgQaCg0KBQQDAgAEEgQ6BDkXCgwKBQQDAgAFEgM6BAoKDAoFBAMCAAESAzoLFQoMCgUEAwIAAxIDOhgZCi8KBAQDAgESAzsEGiIiIEZyZXF1ZW5jeSBhcHBsaWNhYmxlIHRvIHRoZSBncm9wCgoNCgUEAwIBBBIEOwQ6GgoMCgUEAwIBBRIDOwQKCgwKBQQDAgEBEgM7CxUKDAoFBAMCAQMSAzsYGQouCgQEAwICEgM8BBUiISBFbmFibGUvZGlzYWJsZSBncm91cCBsZXZlbCBvbmx5CgoNCgUEAwICBBIEPAQ7GgoMCgUEAwICBRIDPAQICgwKBQQDAgIBEgM8CRAKDAoFBAMCAgMSAzwTFAoLCgQEAwIDEgM9BCIKDAoFBAMCAwQSAz0EDAoMCgUEAwIDBhIDPQ0VCgwKBQQDAgMBEgM9Fh0KDAoFBAMCAwMSAz0gIQoKCgIEBBIEQABKAQoKCgMEBAESA0AIEQoyCgQEBAIAEgNBBBIiJSBUbyB3b3JrIGFyb3VuZCBhIGNoYW1lbGVvbiBQT1NUIGJ1ZwoKDQoFBAQCAAQSBEEEQBMKDAoFBAQCAAUSA0EECgoMCgUEBAIAARIDQQsNCgwKBQQEAgADEgNBEBEKIgoEBAQCARIDQgQcIhUgRGVmYXVsdCBzYW1wbGUgcmF0ZQoKDQoFBAQCAQQSBEIEQRIKDAoFBAQCAQUSA0IECgoMCgUEBAIBARIDQgsXCgwKBQQEAgEDEgNCGhsKNQoEBAQCAhIDRAQVGiggRm9yY2VzIGdyb3VwIG5hbWVzIGFuZCBncm91cCBzZW1hbnRpY3MKCg0KBQQEAgIEEgREBEIcCgwKBQQEAgIFEgNEBAgKDAoFBAQCAgESA0QJEAoMCgUEBAICAxIDRBMUCj4KBAQEAgMSA0YEGxoxIEFsbG93cyBQbSB0byBzZXQgYW4gaW5kaXZpZHVhbCBzYW1wbGUgZnJlcXVlbmN5CgoNCgUEBAIDBBIERgREFQoMCgUEBAIDBRIDRgQICgwKBQQEAgMBEgNGCRYKDAoFBAQCAwMSA0YZGgosCgQEBAIEEgNHBCYiHyBUaGUgZ3JvdXBzIGlmIGdyb3VwZWQgaXMgdHJ1ZQoKDAoFBAQCBAQSA0cEDAoMCgUEBAIEBhIDRw0aCgwKBQQEAgQBEgNHGyEKDAoFBAQCBAMSA0ckJQo6CgQEBAIFEgNIBCIiLSBUaGUgbWV0cmljcyB0aGVtc2VsdmVzIGlmIGdyb3VwZWQgaXMgZmFsc2UuCgoMCgUEBAIFBBIDSAQMCgwKBQQEAgUGEgNIDRUKDAoFBAQCBQESA0gWHQoMCgUEBAIFAxIDSCAhCi8KBAQEAgYSA0kEGCIiRGVmYXVsdCB2YWx1ZSBpcyBzZXQgdG8gNSBzZWNvbmRzCgoNCgUEBAIGBBIESQRIIgoMCgUEBAIGBRIDSQQKCgwKBQQEAgYBEgNJCxMKDAoFBAQCBgMSA0kWFwoqCgIEBRIFTQCDAQEaHU9iamVjdCByZXByZXNlbnRpbmcgYW4gaW1hZ2UKCgoKAwQFARIDTQgNCiIKBAQFAgASA08EFCIVIHNvZnR3YXJlIHBhdGNoIG5hbWUKCg0KBQQFAgAEEgRPBE0PCgwKBQQFAgAFEgNPBAoKDAoFBAUCAAESA08LDwoMCgUEBQIAAxIDTxITCsABCgQEBQIBEgNTBBcasgEgVmVyc2lvbiwgdGhpcyBpcyB0aGUgc29sZSBpZGVudGlmaWVyIG9mIHRoZSBpbWFnZS4gaXQncyB0aGUgdmVuZG9yIHNwZWNpZmllZCBPTUNJIHZlcnNpb24KIG11c3QgYmUga25vd24gYXQgdGhlIHRpbWUgb2YgaW5pdGlhdGluZyBhIGRvd25sb2FkLCBhY3RpdmF0ZSwgY29tbWl0IGltYWdlIG9uIGFuIG9udS4KCg0KBQQFAgEEEgRTBE8UCgwKBQQFAgEFEgNTBAoKDAoFBAUCAQESA1MLEgoMCgUEBQIBAxIDUxUWCmIKBAQFAgISA1cEFBpVIGhhc2ggb2YgdGhlIGltYWdlIHRvIGJlIHZlcmlmaWVkIGFnYWluc3QKIERlcHJlY2F0ZWQgaW4gdm9sdGhhIDIuOCwgd2lsbCBiZSByZW1vdmVkCgoNCgUEBQICBBIEVwRTFwoMCgUEBQICBRIDVwQKCgwKBQQFAgIBEgNXCw8KDAoFBAUCAgMSA1cSEwpkCgQEBQIDEgNaBCAaKyBEZXByZWNhdGVkIGluIHZvbHRoYSAyLjgsIHdpbGwgYmUgcmVtb3ZlZAoiKiBjb21iaW5lZCBkYXRlIGFuZCB0aW1lIGV4cHJlc3NlZCBpbiBVVEMuCgoNCgUEBQIDBBIEWgRXFAoMCgUEBQIDBRIDWgQKCgwKBQQFAgMBEgNaCxsKDAoFBAUCAwMSA1oeHwqYAwoEBAUCBBIDYgQXGsICIFRoZSBhY3RpdmUgc29mdHdhcmUgaW1hZ2UgaXMgb25lIHRoYXQgaXMgY3VycmVudGx5IGxvYWRlZCBhbmQgZXhlY3V0aW5nCiBpbiB0aGUgT05VIG9yIGNpcmN1aXQgcGFjay4gVW5kZXIgbm9ybWFsIG9wZXJhdGlvbiwgb25lIHNvZnR3YXJlIGltYWdlCiBpcyBhbHdheXMgYWN0aXZlIHdoaWxlIHRoZSBvdGhlciBpcyBpbmFjdGl2ZS4gVW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyBhcmUKIGJvdGggc29mdHdhcmUgaW1hZ2VzIGFsbG93ZWQgdG8gYmUgYWN0aXZlIGF0IHRoZSBzYW1lIHRpbWUKIERlcHJlY2F0ZWQgaW4gdm9sdGhhIDIuOCwgd2lsbCBiZSByZW1vdmVkCiIdIFRydWUgaWYgdGhlIGltYWdlIGlzIGFjdGl2ZQoyJyB1c2UgSVNPIDg2MDEgZm9ybWF0IGZvciBkYXRlIGFuZCB0aW1lCgoNCgUEBQIEBBIEYgRaIAoMCgUEBQIEBRIDYgQICgwKBQQFAgQB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ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiADsKCQoCCCUSAyIAOwoICgEIEgMjAB8KCQoCCB8SAyMAHwoICgEIEgMkAEIKCQoCCAsSAyQAQgoICgEIEgMlACwKCQoCCAESAyUALAoICgEIEgMmAC8KCQoCCAgSAyYALwoICgEIEgMnACIKCQoCCAoSAycAIgoICgEIEgMoACEKCQoCCCQSAygAIQrxGwoCBAASBXwAiAEBGuMbIEEgVGltZXN0YW1wIHJlcHJlc2VudHMgYSBwb2ludCBpbiB0aW1lIGluZGVwZW5kZW50IG9mIGFueSB0aW1lIHpvbmUgb3IgbG9jYWwKIGNhbGVuZGFyLCBlbmNvZGVkIGFzIGEgY291bnQgb2Ygc2Vjb25kcyBhbmQgZnJhY3Rpb25zIG9mIHNlY29uZHMgYXQKIG5hbm9zZWNvbmQgcmVzb2x1dGlvbi4gVGhlIGNvdW50IGlzIHJlbGF0aXZlIHRvIGFuIGVwb2NoIGF0IFVUQyBtaWRuaWdodCBvbgogSmFudWFyeSAxLCAxOTcwLCBpbiB0aGUgcHJvbGVwdGljIEdyZWdvcmlhbiBjYWxlbmRhciB3aGljaCBleHRlbmRzIHRoZQogR3JlZ29yaWFuIGNhbGVuZGFyIGJhY2t3YXJkcyB0byB5ZWFyIG9uZS4KCiBBbGwgbWludXRlcyBhcmUgNjAgc2Vjb25kcyBsb25nLiBMZWFwIHNlY29uZHMgYXJlICJzbWVhcmVkIiBzbyB0aGF0IG5vIGxlYXAKIHNlY29uZCB0YWJsZSBpcyBuZWVkZWQgZm9yIGludGVycHJldGF0aW9uLCB1c2luZyBhIFsyNC1ob3VyIGxpbmVhcgogc21lYXJdKGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3RpbWUvc21lYXIpLgoKIFRoZSByYW5nZSBpcyBmcm9tIDAwMDEtMDEtMDFUMDA6MDA6MDBaIHRvIDk5OTktMTItMzFUMjM6NTk6NTkuOTk5OTk5OTk5Wi4gQnkKIHJlc3RyaWN0aW5nIHRvIHRoYXQgcmFuZ2UsIHdlIGVuc3VyZSB0aGF0IHdlIGNhbiBjb252ZXJ0IHRvIGFuZCBmcm9tIFtSRkMKIDMzMzldKGh0dHBzOi8vd3d3LmlldGYub3JnL3JmYy9yZmMzMzM5LnR4dCkgZGF0ZSBzdHJpbmdzLgoKICMgRXhhbXBsZXMKCiBFeGFtcGxlIDE6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gUE9TSVggYHRpbWUoKWAuCgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXA7CiAgICAgdGltZXN0YW1wLnNldF9zZWNvbmRzKHRpbWUoTlVMTCkpOwogICAgIHRpbWVzdGFtcC5zZXRfbmFub3MoMCk7CgogRXhhbXBsZSAyOiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIFBPU0lYIGBnZXR0aW1lb2ZkYXkoKWAuCgogICAgIHN0cnVjdCB0aW1ldmFsIHR2OwogICAgIGdldHRpbWVvZmRheSgmdHYsIE5VTEwpOwoKICAgICBUaW1lc3RhbXAgdGltZXN0YW1wOwogICAgIHRpbWVzdGFtcC5zZXRfc2Vjb25kcyh0di50dl9zZWMpOwogICAgIHRpbWVzdGFtcC5zZXRfbmFub3ModHYudHZfdXNlYyAqIDEwMDApOwoKIEV4YW1wbGUgMzogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBXaW4zMiBgR2V0U3lzdGVtVGltZUFzRmlsZVRpbWUoKWAuCgogICAgIEZJTEVUSU1FIGZ0OwogICAgIEdldFN5c3RlbVRpbWVBc0ZpbGVUaW1lKCZmdCk7CiAgICAgVUlOVDY0IHRpY2tzID0gKCgoVUlOVDY0KWZ0LmR3SGlnaERhdGVUaW1lKSA8PCAzMikgfCBmdC5kd0xvd0RhdGVUaW1lOwoKICAgICAvLyBBIFdpbmRvd3MgdGljayBpcyAxMDAgbmFub3NlY29uZHMuIFdpbmRvd3MgZXBvY2ggMTYwMS0wMS0wMVQwMDowMDowMFoKICAgICAvLyBpcyAxMTY0NDQ3MzYwMCBzZWNvbmRzIGJlZm9yZSBVbml4IGVwb2NoIDE5NzAtMDEtMDFUMDA6MDA6MDBaLgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXA7CiAgICAgdGltZXN0YW1wLnNldF9zZWNvbmRzKChJTlQ2NCkgKCh0aWNrcyAvIDEwMDAwMDAwKSAtIDExNjQ0NDczNjAwTEwpKTsKICAgICB0aW1lc3RhbXAuc2V0X25hbm9zKChJTlQzMikgKCh0aWNrcyAlIDEwMDAwMDAwKSAqIDEwMCkpOwoKIEV4YW1wbGUgNDogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBKYXZhIGBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKWAuCgogICAgIGxvbmcgbWlsbGlzID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXAgPSBUaW1lc3RhbXAubmV3QnVpbGRlcigpLnNldFNlY29uZHMobWlsbGlzIC8gMTAwMCkKICAgICAgICAgLnNldE5hbm9zKChpbnQpICgobWlsbGlzICUgMTAwMCkgKiAxMDAwMDAwKSkuYnVpbGQoKTsKCgogRXhhbXBsZSA1OiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIGN1cnJlbnQgdGltZSBpbiBQeXRob24uCgogICAgIHRpbWVzdGFtcCA9IFRpbWVzdGFtcCgpCiAgICAgdGltZXN0YW1wLkdldEN1cnJlbnRUaW1lKCkKCiAjIEpTT04gTWFwcGluZwoKIEluIEpTT04gZm9ybWF0LCB0aGUgVGltZXN0YW1wIHR5cGUgaXMgZW5jb2RlZCBhcyBhIHN0cmluZyBpbiB0aGUKIFtSRkMgMzMzOV0oaHR0cHM6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzMzMzkudHh0KSBmb3JtYXQuIFRoYXQgaXMsIHRoZQogZm9ybWF0IGlzICJ7eWVhcn0te21vbnRofS17ZGF5fVR7aG91cn06e21pbn06e3NlY31bLntmcmFjX3NlY31dWiIKIHdoZXJlIHt5ZWFyfSBpcyBhbHdheXMgZXhwcmVzc2VkIHVzaW5nIGZvdXIgZGlnaXRzIHdoaWxlIHttb250aH0sIHtkYXl9LAoge2hvdXJ9LCB7bWlufSwgYW5kIHtzZWN9IGFyZSB6ZXJvLXBhZGRlZCB0byB0d28gZGlnaXRzIGVhY2guIFRoZSBmcmFjdGlvbmFsCiBzZWNvbmRzLCB3aGljaCBjYW4gZ28gdXAgdG8gOSBkaWdpdHMgKGkuZS4gdXAgdG8gMSBuYW5vc2Vjb25kIHJlc29sdXRpb24pLAogYXJlIG9wdGlvbmFsLiBUaGUgIloiIHN1ZmZpeCBpbmRpY2F0ZXMgdGhlIHRpbWV6b25lICgiVVRDIik7IHRoZSB0aW1lem9uZQogaXMgcmVxdWlyZWQuIEEgcHJvdG8zIEpTT04gc2VyaWFsaXplciBzaG91bGQgYWx3YXlzIHVzZSBVVEMgKGFzIGluZGljYXRlZCBieQogIloiKSB3aGVuIHByaW50aW5nIHRoZSBUaW1lc3RhbXAgdHlwZSBhbmQgYSBwcm90bzMgSlNPTiBwYXJzZXIgc2hvdWxkIGJlCiBhYmxlIHRvIGFjY2VwdCBib3RoIFVUQyBhbmQgb3RoZXIgdGltZXpvbmVzIChhcyBpbmRpY2F0ZWQgYnkgYW4gb2Zmc2V0KS4KCiBGb3IgZXhhbXBsZSwgIjIwMTctMDEtMTVUMDE6MzA6MTUuMDFaIiBlbmNvZGVzIDE1LjAxIHNlY29uZHMgcGFzdAogMDE6MzAgVVRDIG9uIEphbnVhcnkgMTUsIDIwMTcuCgogSW4gSmF2YVNjcmlwdCwgb25lIGNhbiBjb252ZXJ0IGEgRGF0ZSBvYmplY3QgdG8gdGhpcyBmb3JtYXQgdXNpbmcgdGhlCiBzdGFuZGFyZCBbdG9JU09TdHJpbmcoKV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZS90b0lTT1N0cmluZykKIG1ldGhvZC4gSW4gUHl0aG9uLCBhIHN0YW5kYXJkIGBkYXRldGltZS5kYXRldGltZWAgb2JqZWN0IGNhbiBiZSBjb252ZXJ0ZWQKIHRvIHRoaXMgZm9ybWF0IHVzaW5nIFtgc3RyZnRpbWVgXShodHRwczovL2RvY3MucHl0aG9uLm9yZy8yL2xpYnJhcnkvdGltZS5odG1sI3RpbWUuc3RyZnRpbWUpCiB3aXRoIHRoZSB0aW1lIGZvcm1hdCBzcGVjICclWS0lbS0lZFQlSDolTTolUy4lZlonLiBMaWtld2lzZSwgaW4gSmF2YSwgb25lCiBjYW4gdXNlIHRoZSBKb2RhIFRpbWUncyBbYElTT0RhdGVUaW1lRm9ybWF0LmRhdGVUaW1lKClgXSgKIGh0dHA6Ly93d3cuam9kYS5vcmcvam9kYS10aW1lL2FwaWRvY3Mvb3JnL2pvZGEvdGltZS9mb3JtYXQvSVNPRGF0ZVRpbWVGb3JtYXQuaHRtbCNkYXRlVGltZSUyRCUyRAogKSB0byBvYnRhaW4gYSBmb3JtYXR0ZXIgY2FwYWJsZSBvZiBnZW5lcmF0aW5nIHRpbWVzdGFtcHMgaW4gdGhpcyBmb3JtYXQuCgoKCgoKAwQAARIDfAgRCp0BCgQEAAIAEgSBAQIUGo4BIFJlcHJlc2VudHMgc2Vjb25kcyBvZiBVVEMgdGltZSBzaW5jZSBVbml4IGVwb2NoCiAxOTcwLTAxLTAxVDAwOjAwOjAwWi4gTXVzdCBiZSBmcm9tIDAwMDEtMDEtMDFUMDA6MDA6MDBaIHRvCiA5OTk5LTEyLTMxVDIzOjU5OjU5WiBpbmNsdXNpdmUuCgoOCgUEAAIABBIFgQECfBMKDQoFBAACAAUSBIEBAgcKDQoFBAACAAESBIEBCA8KDQoFBAACAAMSBIEBEhMK5QEKBAQAAgESBIcBAhIa1gEgTm9uLW5lZ2F0aXZlIGZyYWN0aW9ucyBvZiBhIHNlY29uZCBhdCBuYW5vc2Vjb25kIHJlc29sdXRpb24uIE5lZ2F0aXZlCiBzZWNvbmQgdmFsdWVzIHdpdGggZnJhY3Rpb25zIG11c3Qgc3RpbGwgaGF2ZSBub24tbmVnYXRpdmUgbmFub3MgdmFsdWVzCiB0aGF0IGNvdW50IGZvcndhcmQgaW4gdGltZS4gTXVzdCBiZSBmcm9tIDAgdG8gOTk5LDk5OSw5OTkKIGluY2x1c2l2ZS4KCg8KBQQAAgEEEgaHAQKBARQKDQoFBAACAQUSBIcBAgcKDQoFBAACAQESBIcBCA0KDQoFBAACAQMSBIcBEBFiBnByb3RvMwqlaAoadm9sdGhhX3Byb3Rvcy9ldmVudHMucHJvdG8SBWV2ZW50Ghxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvGh9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvGhp2b2x0aGFfcHJvdG9zL2NvbW1vbi5wcm90byKeAQoSRXZlbnRGaWx0ZXJSdWxlS2V5IocBChNFdmVudEZpbHRlclJ1bGVUeXBlEg4KCmZpbHRlcl9hbGwQABIMCghjYXRlZ29yeRABEhAKDHN1Yl9jYXRlZ29yeRACEhIKDmtwaV9ldmVudF90eXBlEAMSFQoRY29uZmlnX2V2ZW50X3R5cGUQBBIVChFkZXZpY2VfZXZlbnRfdHlwZRAFImgKD0V2ZW50RmlsdGVyUnVsZRI/CgNrZXkYASABKA4yLS5ldmVudC5FdmVudEZpbHRlclJ1bGVLZXkuRXZlbnRGaWx0ZXJSdWxlVHlwZVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZSKfAQoLRXZlbnRGaWx0ZXISDgoCaWQYASABKAlSAmlkEhYKBmVuYWJsZRgCIAEoCFIGZW5hYmxlEhsKCWRldmljZV9pZBgDIAEoCVIIZGV2aWNlSWQSHQoKZXZlbnRfdHlwZRgEIAEoCVIJZXZlbnRUeXBlEiwKBXJ1bGVzGAUgAygLMhYuZXZlbnQuRXZlbnRGaWx0ZXJSdWxlUgVydWxlcyI8CgxFdmVudEZpbHRlcnMSLAoHZmlsdGVycxgBIAMoCzISLmV2ZW50LkV2ZW50RmlsdGVyUgdmaWx0ZXJzIjsKD0NvbmZpZ0V2ZW50VHlwZSIoCgVUeXBlcxIHCgNhZGQQABIKCgZyZW1vdmUQARIKCgZ1cGRhdGUQAiJnCgtDb25maWdFdmVudBIwCgR0eXBlGAEgASgOMhwuZXZlbnQuQ29uZmlnRXZlbnRUeXBlLlR5cGVzUgR0eXBlEhIKBGhhc2gYAiABKAlSBGhhc2gSEgoEZGF0YRgDIAEoCVIEZGF0YSIqCgxLcGlFdmVudFR5cGUiGgoFVHlwZXMSCQoFc2xpY2UQABIGCgJ0cxABIqoCCg5NZXRyaWNNZXRhRGF0YRIUCgV0aXRsZRgBIAEoCVIFdGl0bGUSDgoCdHMYAiABKAFSAnRzEioKEWxvZ2ljYWxfZGV2aWNlX2lkGAMgASgJUg9sb2dpY2FsRGV2aWNlSWQSGwoJc2VyaWFsX25vGAQgASgJUghzZXJpYWxObxIbCglkZXZpY2VfaWQYBSABKAlSCGRldmljZUlkEjwKB2NvbnRleHQYBiADKAsyIi5ldmVudC5NZXRyaWNNZXRhRGF0YS5Db250ZXh0RW50cnlSB2NvbnRleHQSEgoEdXVpZBgHIAEoCVIEdXVpZBo6CgxDb250ZXh0RW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4ASKOAQoQTWV0cmljVmFsdWVQYWlycxI+CgdtZXRyaWNzGAEgAygLMiQuZXZlbnQuTWV0cmljVmFsdWVQYWlycy5NZXRyaWNzRW50cnlSB21ldHJpY3MaOgoMTWV0cmljc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgCUgV2YWx1ZToCOAEiwwEKEU1ldHJpY0luZm9ybWF0aW9uEjEKCG1ldGFkYXRhGAEgASgLMhUuZXZlbnQuTWV0cmljTWV0YURhdGFSCG1ldGFkYXRhEj8KB21ldHJpY3MYAiADKAsyJS5ldmVudC5NZXRyaWNJbmZvcm1hdGlvbi5NZXRyaWNzRW50cnlSB21ldHJpY3MaOgoMTWV0cmljc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgCUgV2YWx1ZToCOAEi2gEKCEtwaUV2ZW50Ei0KBHR5cGUYASABKA4yGS5ldmVudC5LcGlFdmVudFR5cGUuVHlwZXNSBHR5cGUSDgoCdHMYAiABKAJSAnRzEjkKCHByZWZpeGVzGAMgAygLMh0uZXZlbnQuS3BpRXZlbnQuUHJlZml4ZXNFbnRyeVIIcHJlZml4ZXMaVAoNUHJlZml4ZXNFbnRyeRIQCgNrZXkYASABKAlSA2tleRItCgV2YWx1ZRgCIAEoCzIXLmV2ZW50Lk1ldHJpY1ZhbHVlUGFpcnNSBXZhbHVlOgI4ASKDAQoJS3BpRXZlbnQyEi0KBHR5cGUYASABKA4yGS5ldmVudC5LcGlFdmVudFR5cGUuVHlwZXNSBHR5cGUSDgoCdHMYAiABKAFSAnRzEjcKCnNsaWNlX2RhdGEYAyADKAsyGC5ldmVudC5NZXRyaWNJbmZvcm1hdGlvblIJc2xpY2VEYXRhIvMBCgtEZXZpY2VFdmVudBIfCgtyZXNvdXJjZV9pZBgBIAEoCVIKcmVzb3VyY2VJZBIqChFkZXZpY2VfZXZlbnRfbmFtZRgCIAEoCVIPZGV2aWNlRXZlbnROYW1lEiAKC2Rlc2NyaXB0aW9uGAMgASgJUgtkZXNjcmlwdGlvbhI5Cgdjb250ZXh0GAQgAygLMh8uZXZlbnQuRGV2aWNlRXZlbnQuQ29udGV4dEVudHJ5Ugdjb250ZXh0GjoKDENvbnRleHRFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6AjgBItoCCghSUENFdmVudBIQCgNycGMYASABKAlSA3JwYxIhCgxvcGVyYXRpb25faWQYAiABKAlSC29wZXJhdGlvbklkEhgKB3NlcnZpY2UYAyABKAlSB3NlcnZpY2USGQoIc3RhY2tfaWQYBCABKAlSB3N0YWNrSWQSHwoLcmVzb3VyY2VfaWQYBSABKAlSCnJlc291cmNlSWQSIAoLZGVzY3JpcHRpb24YBiABKAlSC2Rlc2NyaXB0aW9uEjYKB2NvbnRleHQYByADKAsyHC5ldmVudC5SUENFdmVudC5Db250ZXh0RW50cnlSB2NvbnRleHQSLQoGc3RhdHVzGAggASgLMhUuY29tbW9uLk9wZXJhdGlvblJlc3BSBnN0YXR1cxo6CgxDb250ZXh0RW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4ASJ2Cg1FdmVudENhdGVnb3J5ImUKBVR5cGVzEhEKDUNPTU1VTklDQVRJT04QABIPCgtFTlZJUk9OTUVOVBABEg0KCUVRVUlQTUVOVBACEgsKB1NFUlZJQ0UQAxIOCgpQUk9DRVNTSU5HEAQSDAoIU0VDVVJJVFkQBSJSChBFdmVudFN1YkNhdGVnb3J5Ij4KBVR5cGVzEgcKA1BPThAAEgcKA09MVBABEgcKA09OVBACEgcKA09OVRADEgcKA05OSRAEEggKBE5PTkUQBSJmCglFdmVudFR5cGUiWQoFVHlwZXMSEAoMQ09ORklHX0VWRU5UEAASDQoJS1BJX0VWRU5UEAESDgoKS1BJX0VWRU5UMhACEhAKDERFVklDRV9FVkVOVBADEg0KCVJQQ19FVkVOVBAEItwCCgtFdmVudEhlYWRlchIOCgJpZBgBIAEoCVICaWQSNgoIY2F0ZWdvcnkYAiABKA4yGi5ldmVudC5FdmVudENhdGVnb3J5LlR5cGVzUghjYXRlZ29yeRJACgxzdWJfY2F0ZWdvcnkYAyABKA4yHS5ldmVudC5FdmVudFN1YkNhdGVnb3J5LlR5cGVzUgtzdWJDYXRlZ29yeRIqCgR0eXBlGAQgASgOMhYuZXZlbnQuRXZlbnRUeXBlLlR5cGVzUgR0eXBlEiEKDHR5cGVfdmVyc2lvbhgFIAEoCVILdHlwZVZlcnNpb24SNwoJcmFpc2VkX3RzGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIIcmFpc2VkVHMSOwoLcmVwb3J0ZWRfdHMYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUgpyZXBvcnRlZFRzIsYCCgVFdmVudBIqCgZoZWFkZXIYASABKAsyEi5ldmVudC5FdmVudEhlYWRlclIGaGVhZGVyEjcKDGNvbmZpZ19ldmVudBgCIAEoCzISLmV2ZW50LkNvbmZpZ0V2ZW50SABSC2NvbmZpZ0V2ZW50Ei4KCWtwaV9ldmVudBgDIAEoCzIPLmV2ZW50LktwaUV2ZW50SABSCGtwaUV2ZW50EjEKCmtwaV9ldmVudDIYBCABKAsyEC5ldmVudC5LcGlFdmVudDJIAFIJa3BpRXZlbnQyEjcKDGRldmljZV9ldmVudBgFIAEoCzISLmV2ZW50LkRldmljZUV2ZW50SABSC2RldmljZUV2ZW50Ei4KCXJwY19ldmVudBgGIAEoCzIPLmV2ZW50LlJQQ0V2ZW50SABSCHJw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IEV2ZW50CgoNCgUEEgIFBhIEnAIIEAoNCgUEEgIFARIEnAIRGgoNCgUEEgIFAxIEnAIdHmIGcHJvdG8zCoIhCh52b2x0aGFfcHJvdG9zL2V4dF9jb25maWcucHJvdG8SBmNvbmZpZyJpCgtBbGFybUNvbmZpZxJQChhvbnVfaXR1X3Bvbl9hbGFybV9jb25maWcYASABKAsyFi5jb25maWcuT251SXR1UG9uQWxhcm1IAFIUb251SXR1UG9uQWxhcm1Db25maWdCCAoGY29uZmlnIr4JCg5PbnVJdHVQb25BbGFybRIVCgZwb25fbmkYASABKAdSBXBvbk5pEhUKBm9udV9pZBgCIAEoB1IFb251SWQSOQoIYWxhcm1faWQYAyABKA4yHi5jb25maWcuT251SXR1UG9uQWxhcm0uQWxhcm1JRFIHYWxhcm1JZBJqChlhbGFybV9yZXBvcnRpbmdfY29uZGl0aW9uGAQgASgOMi4uY29uZmlnLk9udUl0dVBvbkFsYXJtLkFsYXJtUmVwb3J0aW5nQ29uZGl0aW9uUhdhbGFybVJlcG9ydGluZ0NvbmRpdGlvbhJgChVyYXRlX3RocmVzaG9sZF9jb25maWcYBSABKAsyKi5jb25maWcuT251SXR1UG9uQWxhcm0uUmF0ZVRocmVzaG9sZENvbmZpZ0gAUhNyYXRlVGhyZXNob2xkQ29uZmlnElQKEXJhdGVfcmFuZ2VfY29uZmlnGAYgASgLMiYuY29uZmlnLk9udUl0dVBvbkFsYXJtLlJhdGVSYW5nZUNvbmZpZ0gAUg9yYXRlUmFuZ2VDb25maWcSYwoWdmFsdWVfdGhyZXNob2xkX2NvbmZpZxgHIAEoCzIrLmNvbmZpZy5PbnVJdHVQb25BbGFybS5WYWx1ZVRocmVzaG9sZENvbmZpZ0gAUhR2YWx1ZVRocmVzaG9sZENvbmZpZxpcCghTb2FrVGltZRIoChBhY3RpdmVfc29ha190aW1lGAEgASgHUg5hY3RpdmVTb2FrVGltZRImCg9jbGVhcl9zb2FrX3RpbWUYAiABKAdSDWNsZWFyU29ha1RpbWUavQEKE1JhdGVUaHJlc2hvbGRDb25maWcSMgoVcmF0ZV90aHJlc2hvbGRfcmlzaW5nGAEgASgGUhNyYXRlVGhyZXNob2xkUmlzaW5nEjQKFnJhdGVfdGhyZXNob2xkX2ZhbGxpbmcYAiABKAZSFHJhdGVUaHJlc2hvbGRGYWxsaW5nEjwKCXNvYWtfdGltZRgDIAEoCzIfLmNvbmZpZy5PbnVJdHVQb25BbGFybS5Tb2FrVGltZVIIc29ha1RpbWUaowEKD1JhdGVSYW5nZUNvbmZpZxIoChByYXRlX3JhbmdlX2xvd2VyGAEgASgGUg5yYXRlUmFuZ2VMb3dlchIoChByYXRlX3JhbmdlX3VwcGVyGAIgASgGUg5yYXRlUmFuZ2VVcHBlchI8Cglzb2FrX3RpbWUYAyABKAsyHy5jb25maWcuT251SXR1UG9uQWxhcm0uU29ha1RpbWVSCHNvYWtUaW1lGn0KFFZhbHVlVGhyZXNob2xkQ29uZmlnEicKD3RocmVzaG9sZF9saW1pdBgBIAEoBlIOdGhyZXNob2xkTGltaXQSPAoJc29ha190aW1lGAIgASgLMh8uY29uZmlnLk9udUl0dVBvbkFsYXJtLlNvYWtUaW1lUghzb2FrVGltZSIZCgdBbGFybUlEEg4KClJESV9FUlJPUlMQACJSChdBbGFybVJlcG9ydGluZ0NvbmRpdGlvbhISCg5SQVRFX1RIUkVTSE9MRBAAEg4KClJBVEVfUkFOR0UQARITCg9WQUxVRV9USFJFU0hPTEQQAkIICgZjb25maWdCSQoTb3JnLm9wZW5jb3JkLnZvbHRoYVoyZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL2V4dC9jb25maWdK2BUKBhIEDQBFAQrRBAoBDBIDDQASGsYEIENvcHlyaWdodCAoYykgMjAyMCBPcGVuIE5ldHdvcmtpbmcgRm91bmRhdGlvbgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgoKICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiBV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ZVR5cGUiHwoEVHlwZRIJCgVFTVBUWRAAEgwKCERJU1RBTkNFEAEiUQoOVmFsdWVTcGVjaWZpZXISDgoCaWQYASABKAlSAmlkEi8KBXZhbHVlGAIgASgOMhkuZXh0ZW5zaW9uLlZhbHVlVHlwZS5UeXBlUgV2YWx1ZSJ0CgxSZXR1cm5WYWx1ZXMSEAoDU2V0GAEgASgNUgNTZXQSIAoLVW5zdXBwb3J0ZWQYAiABKA1SC1Vuc3VwcG9ydGVkEhQKBUVycm9yGAMgASgNUgVFcnJvchIaCghEaXN0YW5jZRgEIAEoDVIIRGlzdGFuY2UiNgoSR2V0RGlzdGFuY2VSZXF1ZXN0EiAKC29udURldmljZUlkGAEgASgJUgtvbnVEZXZpY2VJZCIxChNHZXREaXN0YW5jZVJlc3BvbnNlEhoKCGRpc3RhbmNlGAEgASgNUghkaXN0YW5jZSIyChRHZXRPbnVVbmlJbmZvUmVxdWVzdBIaCgh1bmlJbmRleBgBIAEoDVIIdW5pSW5kZXgi4QQKFUdldE9udVVuaUluZm9SZXNwb25zZRJQCghhZG1TdGF0ZRgBIAEoDjI0LmV4dGVuc2lvbi5HZXRPbnVVbmlJbmZvUmVzcG9uc2UuQWRtaW5pc3RyYXRpdmVTdGF0ZVIIYWRtU3RhdGUSTwoJb3BlclN0YXRlGAIgASgOMjEuZXh0ZW5zaW9uLkdldE9udVVuaUluZm9SZXNwb25zZS5PcGVyYXRpb25hbFN0YXRlUglvcGVyU3RhdGUSTwoJY29uZmlnSW5kGAMgASgOMjEuZXh0ZW5zaW9uLkdldE9udVVuaUluZm9SZXNwb25zZS5Db25maWd1cmF0aW9uSW5kUgljb25maWdJbmQiwgEKEENvbmZpZ3VyYXRpb25JbmQSCgoGVU5LT1dOEAASEgoOVEVOX0JBU0VfVF9GRFgQARIWChJIVU5EUkVEX0JBU0VfVF9GRFgQAhIYChRHSUdBQklUX0VUSEVSTkVUX0ZEWBADEhYKElRFTl9HX0VUSEVSTkVUX0ZEWBAEEhIKDlRFTl9CQVNFX1RfSERYEAUSFgoSSFVORFJFRF9CQVNFX1RfSERYEAYSGAoUR0lHQUJJVF9FVEhFUk5FVF9IRFgQByJHChNBZG1pbmlzdHJhdGl2ZVN0YXRlEhYKEkFETVNUQVRFX1VOREVGSU5FRBAAEgoKBkxPQ0tFRBABEgwKCFVOTE9DS0VEEAIiRgoQT3BlcmF0aW9uYWxTdGF0ZRIXChNPUEVSU1RBVEVfVU5ERUZJTkVEEAASCwoHRU5BQkxFRBABEgwKCERJU0FCTEVEEAIitwEKEkdldE9sdFBvcnRDb3VudGVycxIWCgZwb3J0Tm8YASABKA1SBnBvcnRObxJCCghwb3J0VHlwZRgCIAEoDjImLmV4dGVuc2lvbi5HZXRPbHRQb3J0Q291bnRlcnMuUG9ydFR5cGVSCHBvcnRUeXBlIkUKCFBvcnRUeXBlEhAKDFBvcnRfVU5LTk9XThAAEhUKEVBvcnRfRVRIRVJORVRfTk5JEAESEAoMUG9ydF9QT05fT0xUEAIizAMKGkdldE9sdFBvcnRDb3VudGVyc1Jlc3BvbnNlEhgKB3R4Qnl0ZXMYASABKARSB3R4Qnl0ZXMSGAoHcnhCeXRlcxgCIAEoBFIHcnhCeXRlcxIcCgl0eFBhY2tldHMYAyABKARSCXR4UGFja2V0cxIcCglyeFBhY2tldHMYBCABKARSCXJ4UGFja2V0cxImCg50eEVycm9yUGFja2V0cxgFIAEoBFIOdHhFcnJvclBhY2tldHMSJgoOcnhFcnJvclBhY2tldHMYBiABKARSDnJ4RXJyb3JQYWNrZXRzEiYKDnR4QmNhc3RQYWNrZXRzGAcgASgEUg50eEJjYXN0UGFja2V0cxImCg5yeEJjYXN0UGFja2V0cxgIIAEoBFIOcnhCY2FzdFBhY2tldHMSJgoOdHhVY2FzdFBhY2tldHMYCSABKARSDnR4VWNhc3RQYWNrZXRzEiYKDnJ4VWNhc3RQYWNrZXRzGAogASgEUg5yeFVjYXN0UGFja2V0cxImCg50eE1jYXN0UGFja2V0cxgLIAEoBFIOdHhNY2FzdFBhY2tldHMSJgoOcnhNY2FzdFBhY2tldHMYDCABKARSDnJ4TWNhc3RQYWNrZXRzIkQKFEdldE9udVBvbk9wdGljYWxJbmZvEiwKBWVtcHR5GAEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5UgVlbXB0eSKEAgocR2V0T251UG9uT3B0aWNhbEluZm9SZXNwb25zZRIqChBwb3dlckZlZWRWb2x0YWdlGAEgASgCUhBwb3dlckZlZWRWb2x0YWdlEjIKFHJlY2VpdmVkT3B0aWNhbFBvd2VyGAIgASgCUhRyZWNlaXZlZE9wdGljYWxQb3dlchI2ChZtZWFuT3B0aWNhbExhdW5jaFBvd2VyGAMgASgCUhZtZWFuT3B0aWNhbExhdW5jaFBvd2VyEioKEGxhc2VyQmlhc0N1cnJlbnQYBCABKAJSEGxhc2VyQmlhc0N1cnJlbnQSIAoLdGVtcGVyYXR1cmUYBSABKAJSC3RlbXBlcmF0dXJlIq8BCh9HZXRPbnVFdGhlcm5ldEJyaWRnZVBvcnRIaXN0b3J5ElIKCWRpcmVjdGlvbhgBIAEoDjI0LmV4dGVuc2lvbi5HZXRPbnVFdGhlcm5ldEJyaWRnZVBvcnRIaXN0b3J5LkRpcmVjdGlvblIJZGlyZWN0aW9uIjgKCURpcmVjdGlvbhINCglVTkRFRklORUQQABIMCghVUFNUUkVBTRABEg4KCkRPV05TVFJFQU0QAiKTBQonR2V0T251RXRoZXJuZXRCcmlkZ2VQb3J0SGlzdG9yeVJlc3BvbnNlEh4KCmRyb3BFdmVudHMYASABKA1SCmRyb3BFdmVudHMSFgoGb2N0ZXRzGAIgASgNUgZvY3RldHMSGAoHcGFja2V0cxgDIAEoDVIHcGFja2V0cxIqChBicm9hZGNhc3RQYWNrZXRzGAQgASgNUhBicm9hZGNhc3RQYWNrZXRzEioKEG11bHRpY2FzdFBhY2tldHMYBSABKA1SEG11bHRpY2FzdFBhY2tldHMSLAoRY3JjRXJyb3JlZFBhY2tldHMYBiABKA1SEWNyY0Vycm9yZWRQYWNrZXRzEioKEHVuZGVyc2l6ZVBhY2tldHMYByABKA1SEHVuZGVyc2l6ZVBhY2tldHMSKAoPb3ZlcnNpemVQYWNrZXRzGAggASgNUg9vdmVyc2l6ZVBhY2tldHMSKAoPcGFja2V0czY0b2N0ZXRzGAkgASgNUg9wYWNrZXRzNjRvY3RldHMSMgoUcGFja2V0czY1VG8xMjdvY3RldHMYCiABKA1SFHBhY2tldHM2NVRvMTI3b2N0ZXRzEjQKFXBhY2tldHMxMjhUbzI1NU9jdGV0cxgLIAEoDVIVcGFja2V0czEyOFRvMjU1T2N0ZXRzEjQKFXBhY2tldHMyNTZUbzUxMW9jdGV0cxgMIAEoDVIVcGFja2V0czI1NlRvNTExb2N0ZXRzEjYKFnBhY2tldHM1MTJUbzEwMjNvY3RldHMYDSABKA1SFnBhY2tldHM1MTJUbzEwMjNvY3RldHMSOAoXcGFja2V0czEwMjRUbzE1MThvY3RldHMYDiABKA1SF3BhY2tldHMxMDI0VG8xNTE4b2N0ZXRzIkAKEEdldE9udUZlY0hpc3RvcnkSLAoFZW1wdHkYASABKAsyFi5nb29nbGUucHJvdG9idWYuRW1wdHlSBWVtcHR5IvIBChhHZXRPbnVGZWNIaXN0b3J5UmVzcG9uc2USJgoOY29ycmVjdGVkQnl0ZXMYASABKA1SDmNvcnJlY3RlZEJ5dGVzEi4KEmNvcnJlY3RlZENvZGVXb3JkcxgCIAEoDVISY29ycmVjdGVkQ29kZVdvcmRzEh4KCmZlY1NlY29uZHMYAyABKA1SCmZlY1NlY29uZHMSJgoOdG90YWxDb2RlV29yZHMYBCABKA1SDnRvdGFsQ29kZVdvcmRzEjYKFnVuY29ycmVjdGFibGVDb2RlV29yZHMYBSABKA1SFnVuY29ycmVjdGFibGVDb2RlV29yZHMiRwoVR2V0T251Q291bnRlcnNSZXF1ZXN0EhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkIo0BCiVHZXRPbWNpRXRoZXJuZXRGcmFtZUV4dGVuZGVkUG1SZXF1ZXN0EiAKC29udURldmljZUlkGAEgASgJUgtvbnVEZXZpY2VJZBIcCgh1bmlJbmRleBgCIAEoDUgAUgh1bmlJbmRleBIUCgVyZXNldBgDIAEoCFIFcmVzZXRCDgoMaXNfdW5pX2luZGV4IkMKEUdldFJ4UG93ZXJSZXF1ZXN0EhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkIkwKFEdldE9sdFJ4UG93ZXJSZXF1ZXN0Eh0KCnBvcnRfbGFiZWwYASABKAlSCXBvcnRMYWJlbBIVCgZvbnVfc24YAiABKAlSBW9udVNuIuQMChZHZXRPbnVDb3VudGVyc1Jlc3BvbnNlEhkKB2ludGZfaWQYASABKAdIAFIGaW50ZklkEhcKBm9udV9pZBgCIAEoB0gBUgVvbnVJZBInCg5wb3NpdGl2ZV9kcmlmdBgDIAEoBkgCUg1wb3NpdGl2ZURyaWZ0EicKDm5lZ2F0aXZlX2RyaWZ0GAQgASgGSANSDW5lZ2F0aXZlRHJpZnQSOgoYZGVsaW1pdGVyX21pc3NfZGV0ZWN0aW9uGAUgASgGSARSFmRlbGltaXRlck1pc3NEZXRlY3Rpb24SHwoKYmlwX2Vycm9ycxgGIAEoBkgFUgliaXBFcnJvcnMSHQoJYmlwX3VuaXRzGAcgASgGSAZSCGJpcFVuaXRzEjQKFWZlY19jb3JyZWN0ZWRfc3ltYm9scxgIIAEoBkgHUhNmZWNDb3JyZWN0ZWRTeW1ib2xzEjgKF2ZlY19jb2Rld29yZHNfY29ycmVjdGVkGAkgASgGSAhSFWZlY0NvZGV3b3Jkc0NvcnJlY3RlZBJAChtmZWNfY29kZXdvcmRzX3VuY29ycmVjdGFibGUYCiABKAZICVIZZmVjQ29kZXdvcmRzVW5jb3JyZWN0YWJsZRIlCg1mZWNfY29kZXdvcmRzGAsgASgGSApSDGZlY0NvZGV3b3JkcxIwChNmZWNfY29ycmVjdGVkX3VuaXRzGAwgASgGSAtSEWZlY0NvcnJlY3RlZFVuaXRzEigKD3hnZW1fa2V5X2Vycm9ycxgNIAEoBkgMUg14Z2VtS2V5RXJyb3JzEh0KCXhnZW1fbG9zcxgOIAEoBkgNUgh4Z2VtTG9zcxIoCg9yeF9wbG9hbXNfZXJyb3IYDyABKAZIDlINcnhQbG9hbXNFcnJvchItChJyeF9wbG9hbXNfbm9uX2lkbGUYECABKAZID1IPcnhQbG9hbXNOb25JZGxlEhkKB3J4X29tY2kYESABKAZIEFIGcnhPbWNpEhkKB3R4X29tY2kYEiABKAZIEVIGdHhPbWNpEjoKGXJ4X29tY2lfcGFja2V0c19jcmNfZXJyb3IYEyABKAZIElIVcnhPbWNpUGFja2V0c0NyY0Vycm9yEhsKCHJ4X2J5dGVzGBQgASgGSBNSB3J4Qnl0ZXMSHwoKcnhfcGFja2V0cxgVIAEoBkgUUglyeFBhY2tldHMSGwoIdHhfYnl0ZXMYFiABKAZIFVIHdHhCeXRlcxIfCgp0eF9wYWNrZXRzGBcgASgGSBZSCXR4UGFja2V0cxIjCgxiZXJfcmVwb3J0ZWQYGCABKAZIF1ILYmVyUmVwb3J0ZWQSIQoLbGNkZ19lcnJvcnMYGSABKAZIGFIKbGNkZ0Vycm9ycxIfCgpyZGlfZXJyb3JzGBogASgGSBlSCXJkaUVycm9ycxIeCgl0aW1lc3RhbXAYGyABKAdIGlIJdGltZXN0YW1wQgwKCmlzX2ludGZfaWRCCwoJaXNfb251X2lkQhMKEWlzX3Bvc2l0aXZlX2RyaWZ0QhMKEWlzX25lZ2F0aXZlX2RyaWZ0Qh0KG2lzX2RlbGltaXRlcl9taXNzX2RldGVjdGlvbkIPCg1pc19iaXBfZXJyb3JzQg4KDGlzX2JpcF91bml0c0IaChhpc19mZWNfY29ycmVjdGVkX3N5bWJvbHNCHAoaaXNfZmVjX2NvZGV3b3Jkc19jb3JyZWN0ZWRCIAoeaXNfZmVjX2NvZGV3b3Jkc191bmNvcnJlY3RhYmxlQhIKEGlzX2ZlY19jb2Rld29yZHNCGAoWaXNfZmVjX2NvcnJlY3RlZF91bml0c0IUChJpc194Z2VtX2tleV9lcnJvcnNCDgoMaXNfeGdlbV9sb3NzQhQKEmlzX3J4X3Bsb2Ftc19lcnJvckIXChVpc19yeF9wbG9hbXNfbm9uX2lkbGVCDAoKaXNfcnhfb21jaUIMCgppc190eF9vbWNpQh4KHGlzX3J4X29tY2lfcGFja2V0c19jcmNfZXJyb3JCDQoLaXNfcnhfYnl0ZXNCDwoNaXNfcnhfcGFja2V0c0INCgtpc190eF9ieXRlc0IPCg1pc190eF9wYWNrZXRzQhEKD2lzX2Jlcl9yZXBvcnRlZEIQCg5pc19sY2RnX2Vycm9yc0IPCg1pc19yZGlfZXJyb3JzQg4KDGlzX3RpbWVzdGFtcCKMBQobT21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtEh8KC2Ryb3BfZXZlbnRzGAEgASgGUgpkcm9wRXZlbnRzEhYKBm9jdGV0cxgCIAEoBlIGb2N0ZXRzEhYKBmZyYW1lcxgDIAEoBlIGZnJhbWVzEikKEGJyb2FkY2FzdF9mcmFtZXMYBCABKAZSD2Jyb2FkY2FzdEZyYW1lcxIpChBtdWx0aWNhc3RfZnJhbWVzGAUgASgGUg9tdWx0aWNhc3RGcmFtZXMSLAoSY3JjX2Vycm9yZWRfZnJhbWVzGAYgASgGUhBjcmNFcnJvcmVkRnJhbWVzEikKEHVuZGVyc2l6ZV9mcmFtZXMYByABKAZSD3VuZGVyc2l6ZUZyYW1lcxInCg9vdmVyc2l6ZV9mcmFtZXMYCCABKAZSDm92ZXJzaXplRnJhbWVzEigKEGZyYW1lc182NF9vY3RldHMYCSABKAZSDmZyYW1lczY0T2N0ZXRzEjQKF2ZyYW1lc182NV90b18xMjdfb2N0ZXRzGAogASgGUhNmcmFtZXM2NVRvMTI3T2N0ZXRzEjYKGGZyYW1lc18xMjhfdG9fMjU1X29jdGV0cxgLIAEoBlIUZnJhbWVzMTI4VG8yNTVPY3RldHMSNgoYZnJhbWVzXzI1Nl90b181MTFfb2N0ZXRzGAwgASgGUhRmcmFtZXMyNTZUbzUxMU9jdGV0cxI4ChlmcmFtZXNfNTEyX3RvXzEwMjNfb2N0ZXRzGA0gASgGUhVmcmFtZXM1MTJUbzEwMjNPY3RldHMSOgoaZnJhbWVzXzEwMjRfdG9fMTUxOF9vY3RldHMYDiABKAZSFmZyYW1lczEwMjRUbzE1MThPY3RldHMi9AIKJkdldE9tY2lFdGhlcm5ldEZyYW1lRXh0ZW5kZWRQbVJlc3BvbnNlEkIKCHVwc3RyZWFtGAEgASgLMiYuZXh0ZW5zaW9uLk9tY2lFdGhlcm5ldEZyYW1lRXh0ZW5kZWRQbVIIdXBzdHJlYW0SRgoKZG93bnN0cmVhbRgCIAEoCzImLmV4dGVuc2lvbi5PbWNpRXRoZXJuZXRGcmFtZUV4dGVuZGVkUG1SCmRvd25zdHJlYW0SiwEKJm9tY2lfZXRoZXJuZXRfZnJhbWVfZXh0ZW5kZWRfcG1fZm9ybWF0GAMgASgOMjguZXh0ZW5zaW9uLkdldE9tY2lFdGhlcm5ldEZyYW1lRXh0ZW5kZWRQbVJlc3BvbnNlLkZvcm1hdFIhb21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtRm9ybWF0IjAKBkZvcm1hdBISCg5USElSVFlfVFdPX0JJVBAAEhIKDlNJWFRZX0ZPVVJfQklUEAEidAoHUnhQb3dlchIVCgZvbnVfc24YASABKAlSBW9udVNuEhYKBnN0YXR1cxgCIAEoCVIGc3RhdHVzEh8KC2ZhaWxfcmVhc29uGAMgASgJUgpmYWlsUmVhc29uEhkKCHJ4X3Bvd2VyGAQgASgBUgdyeFBvd2VyImUKFUdldE9sdFJ4UG93ZXJSZXNwb25zZRIdCgpwb3J0X2xhYmVsGAEgASgJUglwb3J0TGFiZWwSLQoIcnhfcG93ZXIYAiADKAsyEi5leHRlbnNpb24uUnhQb3dlclIHcnhQb3dlciKYAQoSR2V0UnhQb3dlclJlc3BvbnNlEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEh8KC2ZhaWxfcmVhc29uGAQgASgJUgpmYWlsUmVhc29uEhkKCHJ4X3Bvd2VyGAUgASgBUgdyeFBvd2VyIkoKGkdldE9udU9tY2lUeFJ4U3RhdHNSZXF1ZXN0EiwKBWVtcHR5GAEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5UgVlbXB0eSLxAwobR2V0T251T21jaVR4UnhTdGF0c1Jlc3BvbnNlEikKEWJhc2VfdHhfYXJfZnJhbWVzGAEgASgNUg5iYXNlVHhBckZyYW1lcxIpChFiYXNlX3J4X2FrX2ZyYW1lcxgCIAEoDVIOYmFzZVJ4QWtGcmFtZXMSLgoUYmFzZV90eF9ub19hcl9mcmFtZXMYAyABKA1SEGJhc2VUeE5vQXJGcmFtZXMSLgoUYmFzZV9yeF9ub19ha19mcmFtZXMYBCABKA1SEGJhc2VSeE5vQWtGcmFtZXMSJwoQZXh0X3R4X2FyX2ZyYW1lcxgFIAEoDVINZXh0VHhBckZyYW1lcxInChBleHRfcnhfYWtfZnJhbWVzGAYgASgNUg1leHRSeEFrRnJhbWVzEiwKE2V4dF90eF9ub19hcl9mcmFtZXMYByABKA1SD2V4dFR4Tm9BckZyYW1lcxIsChNleHRfcnhfbm9fYWtfZnJhbWVzGAggASgNUg9leHRSeE5vQWtGcmFtZXMSNQoXdHhfb21jaV9jb3VudGVyX3JldHJpZXMYCSABKA1SFHR4T21jaUNvdW50ZXJSZXRyaWVzEjcKGHR4X29tY2lfY291bnRlcl90aW1lb3V0cxgKIAEoDVIVdHhPbWNpQ291bnRlclRpbWVvdXRzIk0KHUdldE9udU9tY2lBY3RpdmVBbGFybXNSZXF1ZXN0EiwKBWVtcHR5GAEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5UgVlbXB0eSJ9CglBbGFybURhdGESGQoIY2xhc3NfaWQYASABKA1SB2NsYXNzSWQSHwoLaW5zdGFuY2VfaWQYAiABKA1SCmluc3RhbmNlSWQSEgoEbmFtZRgDIAEoCVIEbmFtZRIgCgtkZXNjcmlwdGlvbhgEIAEoCVILZGVzY3JpcHRpb24iWwoeR2V0T251T21jaUFjdGl2ZUFsYXJtc1Jlc3BvbnNlEjkKDWFjdGl2ZV9hbGFybXMYASADKAsyFC5leHRlbnNpb24uQWxhcm1EYXRhUgxhY3RpdmVBbGFybXMi6QYKD0dldFZhbHVlUmVxdWVzdBI7CghkaXN0YW5jZRgBIAEoCzIdLmV4dGVuc2lvbi5HZXREaXN0YW5jZVJlcXVlc3RIAFIIZGlzdGFuY2USOwoHdW5pSW5mbxgCIAEoCzIfLmV4dGVuc2lvbi5HZXRPbnVVbmlJbmZvUmVxdWVzdEgAUgd1bmlJbmZvEkEKC29sdFBvcnRJbmZvGAMgASgLMh0uZXh0ZW5zaW9uLkdldE9sdFBvcnRDb3VudGVyc0gAUgtvbHRQb3J0SW5mbxJJCg5vbnVPcHRpY2FsSW5mbxgEIAEoCzIfLmV4dGVuc2lvbi5HZXRPbnVQb25PcHRpY2FsSW5mb0gAUg5vbnVPcHRpY2FsSW5mbxJSCg1ldGhCcmlkZ2VQb3J0GAUgASgLMiouZXh0ZW5zaW9uLkdldE9udUV0aGVybmV0QnJpZGdlUG9ydEhpc3RvcnlIAFINZXRoQnJpZGdlUG9ydBI9CgpmZWNIaXN0b3J5GAYgASgLMhsuZXh0ZW5zaW9uLkdldE9udUZlY0hpc3RvcnlIAFIKZmVjSGlzdG9yeRJCCgpvbnVQb25JbmZvGAcgASgLMiAuZXh0ZW5zaW9uLkdldE9udUNvdW50ZXJzUmVxdWVzdEgAUgpvbnVQb25JbmZvEkwKB29udUluZm8YCCABKAsyMC5leHRlbnNpb24uR2V0T21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtUmVxdWVzdEgAUgdvbnVJbmZvEjgKB3J4UG93ZXIYCSABKAsyHC5leHRlbnNpb24uR2V0UnhQb3dlclJlcXVlc3RIAFIHcnhQb3dlchJLCgxvbnVPbWNpU3RhdHMYCiABKAsyJS5leHRlbnNpb24uR2V0T251T21jaVR4UnhTdGF0c1JlcXVlc3RIAFIMb251T21jaVN0YXRzEkEKCm9sdFJ4UG93ZXIYCyABKAsyHy5leHRlbnNpb24uR2V0T2x0UnhQb3dlclJlcXVlc3RIAFIKb2x0UnhQb3dlchJUCg9vbnVBY3RpdmVBbGFybXMYDCABKAsyKC5leHRlbnNpb24uR2V0T251T21jaUFjdGl2ZUFsYXJtc1JlcXVlc3RIAFIPb251QWN0aXZlQWxhcm1zQgkKB3JlcXVlc3QikwoKEEdldFZhbHVlUmVzcG9uc2USOgoGc3RhdHVzGAEgASgOMiIuZXh0ZW5zaW9uLkdldFZhbHVlUmVzcG9uc2UuU3RhdHVzUgZzdGF0dXMSRQoJZXJyUmVhc29uGAIgASgOMicuZXh0ZW5zaW9uLkdldFZhbHVlUmVzcG9uc2UuRXJyb3JSZWFzb25SCWVyclJlYXNvbhI8CghkaXN0YW5jZRgDIAEoCzIeLmV4dGVuc2lvbi5HZXREaXN0YW5jZVJlc3BvbnNlSABSCGRpc3RhbmNlEjwKB3VuaUluZm8YBCABKAsyIC5leHRlbnNpb24uR2V0T251VW5pSW5mb1Jlc3BvbnNlSABSB3VuaUluZm8SSwoMcG9ydENvdXRuZXJzGAUgASgLMiUuZXh0ZW5zaW9uLkdldE9sdFBvcnRDb3VudGVyc1Jlc3BvbnNlSABSDHBvcnRDb3V0bmVycxJRCg5vbnVPcHRpY2FsSW5mbxgGIAEoCzInLmV4dGVuc2lvbi5HZXRPbnVQb25PcHRpY2FsSW5mb1Jlc3BvbnNlSABSDm9udU9wdGljYWxJbmZvEmIKEWV0aEJyaWRnZVBvcnRJbmZvGAcgASgLMjIuZXh0ZW5zaW9uLkdldE9udUV0aGVybmV0QnJpZGdlUG9ydEhpc3RvcnlSZXNwb25zZUgAUhFldGhCcmlkZ2VQb3J0SW5mbxJFCgpmZWNIaXN0b3J5GAggASgLMiMuZXh0ZW5zaW9uLkdldE9udUZlY0hpc3RvcnlSZXNwb25zZUgAUgpmZWNIaXN0b3J5EksKDm9udVBvbkNvdW50ZXJzGAkgASgLMiEuZXh0ZW5zaW9uLkdldE9udUNvdW50ZXJzUmVzcG9uc2VIAFIOb251UG9uQ291bnRlcnMSVQoLb251Q291bnRlcnMYCiABKAsyMS5leHRlbnNpb24uR2V0T21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtUmVzcG9uc2VIAFILb251Q291bnRlcnMSOQoHcnhQb3dlchgLIAEoCzIdLmV4dGVuc2lvbi5HZXRSeFBvd2VyUmVzcG9uc2VIAFIHcnhQb3dlchJMCgxvbnVPbWNpU3RhdHMYDCABKAsyJi5leHRlbnNpb24uR2V0T251T21jaVR4UnhTdGF0c1Jlc3BvbnNlSABSDG9udU9tY2lTdGF0cxJCCgpvbHRSeFBvd2VyGA0gASgLMiAuZXh0ZW5zaW9uLkdldE9sdFJ4UG93ZXJSZXNwb25zZUgAUgpvbHRSeFBvd2VyElUKD29udUFjdGl2ZUFsYXJtcxgOIAEoCzIpLmV4dGVuc2lvbi5HZXRPbnVPbWNpQWN0aXZlQWxhcm1zUmVzcG9uc2VIAFIPb251QWN0aXZlQWxhcm1zIjEKBlN0YXR1cxIUChBTVEFUVVNfVU5ERUZJTkVEEAASBgoCT0sQARIJCgVFUlJPUhACIq0BCgtFcnJvclJlYXNvbhIUChBSRUFTT05fVU5ERUZJTkVEEAASDwoLVU5TVVBQT1JURUQQARIVChFJTlZBTElEX0RFVklDRV9JRBACEhUKEUlOVkFMSURfUE9SVF9UWVBFEAMSCwoHVElNRU9VVBAEEhQKEElOVkFMSURfUkVRX1RZUEUQBRISCg5JTlRFUk5BTF9FUlJPUhAGEhIKDklOVkFMSURfREVWSUNFEAdCCgoIcmVzcG9uc2UiVgoPU2V0VmFsdWVSZXF1ZXN0EjgKDGFsYXJtX2NvbmZpZxgBIAEoCzITLmNvbmZpZy5BbGFybUNvbmZpZ0gAUgthbGFybUNvbmZpZ0IJCgdyZXF1ZXN0Iv4BChBTZXRWYWx1ZVJlc3BvbnNlEjoKBnN0YXR1cxgBIAEoDjIiLmV4dGVuc2lvbi5TZXRWYWx1ZVJlc3BvbnNlLlN0YXR1c1IGc3RhdHVzEkUKCWVyclJlYXNvbhgCIAEoDjInLmV4dGVuc2lvbi5TZXRWYWx1ZVJlc3BvbnNlLkVycm9yUmVhc29uUgllcnJSZWFzb24iMQoGU3RhdHVzEhQKEFNUQVRVU19VTkRFRklORUQQABIGCgJPSxABEgkKBUVSUk9SEAIiNAoLRXJyb3JSZWFzb24SFAoQUkVBU09OX1VOREVGSU5FRBAAEg8KC1VOU1VQUE9SVEVEEAEiaQoVU2luZ2xlR2V0VmFsdWVSZXF1ZXN0EhoKCHRhcmdldElkGAEgASgJUgh0YXJnZXRJZBI0CgdyZXF1ZXN0GAIgASgLMhouZXh0ZW5zaW9uLkdldFZhbHVlUmVxdWVzdFIHcmVxdWVzdCJRChZTaW5nbGVHZXRWYWx1ZVJlc3BvbnNlEjcKCHJlc3BvbnNlGAEgASgLMhsuZXh0ZW5zaW9uLkdldFZhbHVlUmVzcG9uc2VSCHJlc3BvbnNlImkKFVNpbmdsZVNldFZhbHVlUmVxdWVzdBIaCgh0YXJnZXRJZBgBIAEoCVIIdGFyZ2V0SWQSNAoHcmVxdWVzdBgCIAEoCzIaLmV4dGVuc2lvbi5TZXRWYWx1ZVJlcXVlc3RSB3JlcXVlc3QiUQoWU2luZ2xlU2V0VmFsdWVSZXNwb25zZRI3CghyZXNwb25zZRgBIAEoCzIbLmV4dGVuc2lvbi5TZXRWYWx1ZVJlc3BvbnNlUghyZXNwb25zZTKzAQoJRXh0ZW5zaW9uElIKC0dldEV4dFZhbHVlEiAuZXh0ZW5zaW9uLlNpbmdsZUdldFZhbHVlUmVxdWVzdBohLmV4dGVuc2lvbi5TaW5nbGVHZXRWYWx1ZVJlc3BvbnNlElIKC1NldEV4dFZhbHVlEiAuZXh0ZW5zaW9uLlNpbmdsZVNldFZhbHVlUmVxdWVzdBohLmV4dGVuc2lvbi5TaW5nbGVTZXRWYWx1ZVJlc3BvbnNlQlIKHW9yZy5vcGVuY29yZC52b2x0aGEuZXh0ZW5zaW9uWjFnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vZXh0ZW5zaW9uSsWUAQoHEgUOAOgDAQrRBAoBDBIDDgASMsYEIENvcHlyaWdodCAoYykgMjAxOCBPcGVuIE5ldHdvcmtpbmcgRm91bmRhdGlvbgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNl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bm5vdGF0aW9ucy5wcm90byKCAQoYVm9pcFN5c3RlbVByb2ZpbGVSZXF1ZXN0EhAKA2tleRgBIAEoCVIDa2V5ElQKEXZvaXBTeXN0ZW1Qcm9maWxlGAIgASgLMiYudm9pcF9zeXN0ZW1fcHJvZmlsZS5Wb2lwU3lzdGVtUHJvZmlsZVIRdm9pcFN5c3RlbVByb2ZpbGUikgEKEVZvaXBTeXN0ZW1Qcm9maWxlEjwKCXNpcENvbmZpZxgBIAEoCzIeLnZvaXBfc3lzdGVtX3Byb2ZpbGUuU2lwQ29uZmlnUglzaXBDb25maWcSPwoKdm9pcENvbmZpZxgCIAEoCzIfLnZvaXBfc3lzdGVtX3Byb2ZpbGUuVm9pcENvbmZpZ1IKdm9pcENvbmZpZyKVBAoKVm9pcENvbmZpZxJFCgxpcEhvc3RDb25maWcYASABKAsyIS52b2lwX3N5c3RlbV9wcm9maWxlLklwSG9zdENvbmZpZ1IMaXBIb3N0Q29uZmlnEkUKDHRjcFVkcENvbmZpZxgCIAEoCzIhLnZvaXBfc3lzdGVtX3Byb2ZpbGUuVGNwVWRwQ29uZmlnUgx0Y3BVZHBDb25maWcSRQoMdm9pcFZvaWNlQ3RwGAMgASgLMiEudm9pcF9zeXN0ZW1fcHJvZmlsZS5Wb2lwVm9pY2VDdHBSDHZvaXBWb2ljZUN0cBJRChB2b2lwTWVkaWFQcm9maWxlGAQgASgLMiUudm9pcF9zeXN0ZW1fcHJvZmlsZS5Wb2lwTWVkaWFQcm9maWxlUhB2b2lwTWVkaWFQcm9maWxlEloKE3ZvaWNlU2VydmljZVByb2ZpbGUYBSABKAsyKC52b2lwX3N5c3RlbV9wcm9maWxlLlZvaWNlU2VydmljZVByb2ZpbGVSE3ZvaWNlU2VydmljZVByb2ZpbGUSPwoKcnRwUHJvZmlsZRgGIAEoCzIfLnZvaXBfc3lzdGVtX3Byb2ZpbGUuUnRwUHJvZmlsZVIKcnRwUHJvZmlsZRJCCgtwcHRwUG90c1VuaRgHIAEoCzIgLnZvaXBfc3lzdGVtX3Byb2ZpbGUuUHB0cFBvdHNVbmlSC3BwdHBQb3RzVW5pIpACCgxJcEhvc3RDb25maWcSHAoJaXBPcHRpb25zGAEgASgNUglpcE9wdGlvbnMSJAoNb251SWRlbnRpZmllchgCIAEoCVINb251SWRlbnRpZmllchIcCglpcEFkZHJlc3MYAyABKAlSCWlwQWRkcmVzcxISCgRtYXNrGAQgASgJUgRtYXNrEhgKB2dhdGV3YXkYBSABKAlSB2dhdGV3YXkSHgoKcHJpbWFyeURucxgGIAEoCVIKcHJpbWFyeURucxIiCgxzZWNvbmRhcnlEbnMYByABKAlSDHNlY29uZGFyeURucxIsChFyZWxheUFnZW50T3B0aW9ucxgIIAEoCVIRcmVsYXlBZ2VudE9wdGlvbnMiRgoMVGNwVWRwQ29uZmlnEhoKCHByb3RvY29sGAEgASgNUghwcm90b2NvbBIaCgh0b3NGaWVsZBgCIAEoCVIIdG9zRmllbGQiNgoMVm9pcFZvaWNlQ3RwEiYKDnNpZ25hbGxpbmdDb2RlGAEgASgNUg5zaWduYWxsaW5nQ29kZSKWBQoQVm9pcE1lZGlhUHJvZmlsZRIYCgdmYXhNb2RlGAEgASgNUgdmYXhNb2RlEigKD2NvZGVjU2VsZWN0aW9uMRgCIAEoDVIPY29kZWNTZWxlY3Rpb24xEjYKFnBhY2tldFBlcmlvZFNlbGVjdGlvbjEYAyABKA1SFnBhY2tldFBlcmlvZFNlbGVjdGlvbjESMAoTc2lsZW5jZVN1cHByZXNzaW9uMRgEIAEoDVITc2lsZW5jZVN1cHByZXNzaW9uMRIoCg9jb2RlY1NlbGVjdGlvbjIYBSABKA1SD2NvZGVjU2VsZWN0aW9uMhI2ChZwYWNrZXRQZXJpb2RTZWxlY3Rpb24yGAYgASgNUhZwYWNrZXRQZXJpb2RTZWxlY3Rpb24yEjAKE3NpbGVuY2VTdXBwcmVzc2lvbjIYByABKA1SE3NpbGVuY2VTdXBwcmVzc2lvbjISKAoPY29kZWNTZWxlY3Rpb24zGAggASgNUg9jb2RlY1NlbGVjdGlvbjMSNgoWcGFja2V0UGVyaW9kU2VsZWN0aW9uMxgJIAEoDVIWcGFja2V0UGVyaW9kU2VsZWN0aW9uMxIwChNzaWxlbmNlU3VwcHJlc3Npb24zGAogASgNUhNzaWxlbmNlU3VwcHJlc3Npb24zEigKD2NvZGVjU2VsZWN0aW9uNBgLIAEoDVIPY29kZWNTZWxlY3Rpb240EjYKFnBhY2tldFBlcmlvZFNlbGVjdGlvbjQYDCABKA1SFnBhY2tldFBlcmlvZFNlbGVjdGlvbjQSMAoTc2lsZW5jZVN1cHByZXNzaW9uNBgNIAEoDVITc2lsZW5jZVN1cHByZXNzaW9uNBIYCgdvb2JEdG1mGA4gASgNUgdvb2JEdG1mIvMCChNWb2ljZVNlcnZpY2VQcm9maWxlEioKEGFubm91bmNlbWVudFR5cGUYASABKA1SEGFubm91bmNlbWVudFR5cGUSIgoMaml0dGVyVGFyZ2V0GAIgASgNUgxqaXR0ZXJUYXJnZXQSKAoPaml0dGVyQnVmZmVyTWF4GAMgASgNUg9qaXR0ZXJCdWZmZXJNYXgSJAoNZWNob0NhbmNlbEluZBgEIAEoCFINZWNob0NhbmNlbEluZBIwChNwc3RuUHJvdG9jb2xWYXJpYW50GAUgASgNUhNwc3RuUHJvdG9jb2xWYXJpYW50EigKD2R0bWZEaWdpdExldmVscxgGIAEoDVIPZHRtZkRpZ2l0TGV2ZWxzEiwKEWR0bWZEaWdpdER1cmF0aW9uGAcgASgNUhFkdG1mRGlnaXREdXJhdGlvbhIyChRob29rRmxhc2hNaW5pbXVtVGltZRgIIAEoDVIUaG9va0ZsYXNoTWluaW11bVRpbWUi+AEKClJ0cFByb2ZpbGUSIgoMbG9jYWxQb3J0TWluGAEgASgNUgxsb2NhbFBvcnRNaW4SIgoMbG9jYWxQb3J0TWF4GAIgASgNUgxsb2NhbFBvcnRNYXgSGgoIZHNjcE1hcmsYAyABKAlSCGRzY3BNYXJrEigKD3BpZ2d5QmFja0V2ZW50cxgEIAEoDVIPcGlnZ3lCYWNrRXZlbnRzEh4KCnRvbmVFdmVudHMYBSABKA1SCnRvbmVFdmVudHMSHgoKZHRtZkV2ZW50cxgGIAEoDVIKZHRtZkV2ZW50cxIcCgljYXNFdmVudHMYByABKA1SCWNhc0V2ZW50cyLDAgoLUHB0cFBvdHNVbmkSEAoDYXJjGAEgASgJUgNhcmMSIAoLYXJjSW50ZXJ2YWwYAiABKAlSC2FyY0ludGVydmFsEhwKCWltcGVkYW5jZRgDIAEoDVIJaW1wZWRhbmNlEioKEHRyYW5zbWlzc2lvblBhdGgYBCABKA1SEHRyYW5zbWlzc2lvblBhdGgSFgoGcnhHYWluGAUgASgRUgZyeEdhaW4SFgoGdHhHYWluGAYgASgRUgZ0eEdhaW4SKgoQcG90c0hvbGRPdmVyVGltZRgHIAEoDVIQcG90c0hvbGRPdmVyVGltZRIuChJub21pbmFsRmVlZFZvbHRhZ2UYCCABKA1SEm5vbWluYWxGZWVkVm9sdGFnZRIqChBsb3NzT2ZTb2Z0U3dpdGNoGAkgASgNUhBsb3NzT2ZTb2Z0U3dpdGNoIssDCglTaXBDb25maWcSQgoLc2lwVXNlckRhdGEYASABKAsyIC52b2lwX3N5c3RlbV9wcm9maWxlLlNpcFVzZXJEYXRhUgtzaXBVc2VyRGF0YRJLCg5zaXBBZ2VudENvbmZpZxgCIAEoCzIjLnZvaXBfc3lzdGVtX3Byb2ZpbGUuU2lwQWdlbnRDb25maWdSDnNpcEFnZW50Q29uZmlnEk4KD25ldHdvcmtEaWFsUGxhbhgDIAEoCzIkLnZvaXBfc3lzdGVtX3Byb2ZpbGUuTmV0d29ya0RpYWxQbGFuUg9uZXR3b3JrRGlhbFBsYW4SYwoWdm9pcEZlYXR1cmVBY2Nlc3NDb2RlcxgEIAEoCzIrLnZvaXBfc3lzdGVtX3Byb2ZpbGUuVm9pcEZlYXR1cmVBY2Nlc3NDb2Rlc1IWdm9pcEZlYXR1cmVBY2Nlc3NDb2RlcxJ4Ch12b2lwQXBwbGljYXRpb25TZXJ2aWNlUHJvZmlsZRgFIAEoCzIyLnZvaXBfc3lzdGVtX3Byb2ZpbGUuVm9pcEFwcGxpY2F0aW9uU2VydmljZVByb2ZpbGVSHXZvaXBBcHBsaWNhdGlvblNlcnZpY2VQcm9maWxlItMCCgtTaXBVc2VyRGF0YRIgCgt1c2VyUGFydEFvchgBIAEoCVILdXNlclBhcnRBb3ISWgoTdXNlcm5hbWVBbmRQYXNzd29yZBgCIAEoCzIoLnZvaXBfc3lzdGVtX3Byb2ZpbGUuVXNlcm5hbWVBbmRQYXNzd29yZFITdXNlcm5hbWVBbmRQYXNzd29yZBI0ChV2b2ljZW1haWxTZXJ2ZXJTaXBVcmkYAyABKAlSFXZvaWNlbWFpbFNlcnZlclNpcFVyaRJQCiN2b2ljZW1haWxTdWJzY3JpcHRpb25FeHBpcmF0aW9uVGltZRgEIAEoBVIjdm9pY2VtYWlsU3Vic2NyaXB0aW9uRXhwaXJhdGlvblRpbWUSIgoMcmVsZWFzZVRpbWVyGAUgASgFUgxyZWxlYXNlVGltZXISGgoIcm9oVGltZXIYBiABKAVSCHJvaFRpbWVyIqMECg5TaXBBZ2VudENvbmZpZxIyChRvdXRib3VuZFByb3h5QWRkcmVzcxgBIAEoCVIUb3V0Ym91bmRQcm94eUFkZHJlc3MSJAoNcHJpbWFyeVNpcERucxgCIAEoCVINcHJpbWFyeVNpcERucxIoCg9zZWNvbmRhcnlTaXBEbnMYAyABKAlSD3NlY29uZGFyeVNpcERucxIkCg1zaXBSZWdFeHBUaW1lGAQgASgFUg1zaXBSZWdFeHBUaW1lEjQKFXNpcFJlcmVnSGVhZFN0YXJ0VGltZRgFIAEoBVIVc2lwUmVyZWdIZWFkU3RhcnRUaW1lEiIKDFNpcFJlZ2lzdHJhchgGIAEoCVIMU2lwUmVnaXN0cmFyEh4KCnNvZnRTd2l0Y2gYByABKAlSCnNvZnRTd2l0Y2gSUQoQc2lwUmVzcG9uc2VUYWJsZRgIIAEoCzIlLnZvaXBfc3lzdGVtX3Byb2ZpbGUuU2lwUmVzcG9uc2VUYWJsZVIQc2lwUmVzcG9uc2VUYWJsZRI6ChhzaXBPcHRpb25UcmFuc21pdENvbnRyb2wYCSABKAhSGHNpcE9wdGlvblRyYW5zbWl0Q29udHJvbBIiCgxzaXBVcmlGb3JtYXQYCiABKAlSDHNpcFVyaUZvcm1hdBI6ChhyZWR1bmRhbnRTaXBBZ2VudFBvaW50ZXIYCyABKAlSGHJlZHVuZGFudFNpcEFnZW50UG9pbnRlciLlAQoPTmV0d29ya0RpYWxQbGFuEjAKE2NyaXRpY2FsRGlhbFRpbWVvdXQYASABKA1SE2NyaXRpY2FsRGlhbFRpbWVvdXQSLgoScGFydGlhbERpYWxUaW1lb3V0GAIgASgNUhJwYXJ0aWFsRGlhbFRpbWVvdXQSJgoOZGlhbFBsYW5Gb3JtYXQYAyABKA1SDmRpYWxQbGFuRm9ybWF0EkgKDWRpYWxQbGFuVGFibGUYBCABKAsyIi52b2lwX3N5c3RlbV9wcm9maWxlLkRpYWxQbGFuVGFibGVSDWRpYWxQbGFuVGFibGUiQQoTVXNlcm5hbWVBbmRQYXNzd29yZBIqChB2YWxpZGF0aW9uU2NoZW1lGAEgASgFUhB2YWxpZGF0aW9uU2NoZW1lInIKEFNpcFJlc3BvbnNlVGFibGUSKAoPc2lwUmVzcG9uc2VDb2RlGAEgASgJUg9zaXBSZXNwb25zZUNvZGUSEgoEdG9uZRgCIAEoCVIEdG9uZRIgCgt0ZXh0TWVzc2FnZRgDIAEoCVILdGV4dE1lc3NhZ2UioQEKDURpYWxQbGFuVGFibGUSHgoKZGlhbFBsYW5JZBgBIAEoDVIKZGlhbFBsYW5JZBIWCgZhY3Rpb24YAiABKA1SBmFjdGlvbhIkCg1kaWFsUGxhblRva2VuGAMgASgJUg1kaWFsUGxhblRva2VuEjIKFGRpYWxQbGFuVGFibGVNYXhTaXplGAQgASgNUhRkaWFsUGxhblRhYmxlTWF4U2l6ZSLSBAoWVm9pcEZlYXR1cmVBY2Nlc3NDb2RlcxIsChFjYW5jZWxDYWxsV2FpdGluZxgBIAEoCVIRY2FuY2VsQ2FsbFdhaXRpbmcSGgoIY2FsbEhvbGQYAiABKAlSCGNhbGxIb2xkEhoKCGNhbGxQYXJrGAMgASgJUghjYWxsUGFyaxIqChBjYWxsZXJJZEFjdGl2YXRlGAQgASgJUhBjYWxsZXJJZEFjdGl2YXRlEi4KEmNhbGxlcklkRGVhY3RpdmF0ZRgFIAEoCVISY2FsbGVySWREZWFjdGl2YXRlEjYKFmRvTm90RGlzdHVyYkFjdGl2YXRpb24YBiABKAlSFmRvTm90RGlzdHVyYkFjdGl2YXRpb24SOgoYZG9Ob3REaXN0dXJiRGVhY3RpdmF0aW9uGAcgASgJUhhkb05vdERpc3R1cmJEZWFjdGl2YXRpb24SNAoVZG9Ob3REaXN0dXJiUGluQ2hhbmdlGAggASgJUhVkb05vdERpc3R1cmJQaW5DaGFuZ2USNgoWZW1lcmdlbmN5U2VydmljZU51bWJlchgJIAEoCVIWZW1lcmdlbmN5U2VydmljZU51bWJlchIoCg9pbnRlcmNvbVNlcnZpY2UYCiABKAlSD2ludGVyY29tU2VydmljZRI2ChZ1bmF0dGVuZGVkQ2FsbFRyYW5zZmVyGAsgASgJUhZ1bmF0dGVuZGVkQ2FsbFRyYW5zZmVyEjIKFGF0dGVuZGVkQ2FsbFRyYW5zZmVyGAwgASgJUhRhdHRlbmRlZENhbGxUcmFuc2ZlciKXBAodVm9pcEFwcGxpY2F0aW9uU2VydmljZVByb2ZpbGUSIAoLY2lkRmVhdHVyZXMYASABKA1SC2NpZEZlYXR1cmVzEjAKE2NhbGxXYWl0aW5nRmVhdHVyZXMYAiABKA1SE2NhbGxXYWl0aW5nRmVhdHVyZXMSRgoeY2FsbFByb2dyZXNzT3JUcmFuc2ZlckZlYXR1cmVzGAMgASgNUh5jYWxsUHJvZ3Jlc3NPclRyYW5zZmVyRmVhdHVyZXMSOgoYY2FsbFByZXNlbnRhdGlvbkZlYXR1cmVzGAQgASgNUhhjYWxsUHJlc2VudGF0aW9uRmVhdHVyZXMSMgoUZGlyZWN0Q29ubmVjdEZlYXR1cmUYBSABKA1SFGRpcmVjdENvbm5lY3RGZWF0dXJlEjgKF2RpcmVjdENvbm5lY3RVcmlQb2ludGVyGAYgASgJUhdkaXJlY3RDb25uZWN0VXJpUG9pbnRlchI+ChpicmlkZ2VkTGluZUFnZW50VXJpUG9pbnRlchgHIAEoCVIaYnJpZGdlZExpbmVBZ2VudFVyaVBvaW50ZXISQAobY29uZmVyZW5jZUZhY3RvcnlVcmlQb2ludGVyGAggASgJUhtjb25mZXJlbmNlRmFjdG9yeVVyaVBvaW50ZXISLgoSZGlhbFRvbmVEZWxheVRpbWVyGAkgASgNUhJkaWFsVG9uZURlbGF5VGltZXJCZgonb3JnLm9wZW5jb3JkLnZvbHRoYS52b2lwX3N5c3RlbV9wcm9maWxlWjtnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vdm9pcF9zeXN0ZW1fcHJvZmlsZUqETAoHEgUOAMQBAQrRBAoBDBIDDgASMsYEIENvcHlyaWdodCAoYykgMjAxOCBPcGVuIE5ldHdvcmtpbmcgRm91bmRhdGlvbgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgoKICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcv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DnNpcERpc3BsYXlOYW1lEhQKBXJlYWxtGAggASgJUgVyZWFsbUJiCiVvcmcub3BlbmNvcmQudm9sdGhhLnZvaXBfdXNlcl9wcm9maWxlWjlnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vdm9pcF91c2VyX3Byb2ZpbGVKzwsKBhIEDgAmAQrRBAoBDBIDDgASMsYEIENvcHlyaWdodCAoYykgMjAxOCBPcGVuIE5ldHdvcmtpbmcgRm91bmRhdGlvbgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgoKICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCggKAQgSAxAAUAoJCgIICxIDEABQCggKAQgSAxEAPgoJCgIIARIDEQA+CggKAQISAxMAGgoJCgIDABIDFAAmCjYKAgQAEgQXABsBGiogQSB1c2VyIHNwZWNpZmljIHByb2ZpbGUgZm9yIHZvaXAgc2VydmljZQoKCgoDBAABEgMXCB4KJwoEBAACABIDGQIRGhogZm9yIHRoZSBwYXRoIGluIEtWIHN0b3JlCgoNCgUEAAIABBIEGQIXIAoMCgUEAAIABRIDGQIICgwKBQQAAgABEgMZCQwKDAoFBAACAAMSAxkPEAoLCgQEAAIBEgMaAiYKDQoFBAACAQQSBBoCGREKDAoFBAACAQYSAxoCEQoMCgUEAAIBARIDGhIhCgwKBQQAAgEDEgMaJCUKCgoCBAESBB0AJgEKCgoDBAEBEgMdCBcKCwoEBAECABIDHgIiCg0KBQQBAgAEEgQeAh0ZCgwKBQQBAgAFEgMeAggKDAoFBAECAAESAx4JHQoMCgUEAQIAAxIDHiAhCgsKBAQBAgESAx8CFgoNCgUEAQIBBBIEHwIeIgoMCgUEAQIBBRIDHwIICgwKBQQBAgEBEgMfCREKDAoFBAECAQMSAx8UFQoLCgQEAQICEgMgAhYKDQoFBAECAgQSBCACHxYKDAoFBAECAgUSAyACCAoMCgUEAQICARIDIAkRCgwKBQQBAgIDEgMgFBUKCwoEBAECAxIDIQIUCg0KBQQBAgMEEgQhAiAWCgwKBQQBAgMFEgMhAggKDAoFBAECAwESAyEJDwoMCgUEAQIDAxIDIRITCgsKBAQBAgQSAyICEwoNCgUEAQIEBBIEIgIhFAoMCgUEAQIEBRIDIgIICgwKBQQBAgQBEgMiCQ4KDAoFBAECBAMSAyIREgoLCgQEAQIFEgMjAhIKDQoFBAECBQQSBCMCIhMKDAoFBAECBQUSAyMCCAoMCgUEAQIFARIDIwkNCgwKBQQBAgUDEgMjEBEKCwoEBAECBhIDJAIcCg0KBQQBAgYEEgQkAiMSCgwKBQQBAgYFEgMkAggKDAoFBAECBgESAyQJFwoMCgUEAQIGAxIDJBobCgsKBAQBAgcSAyUCEwoNCgUEAQIHBBIEJQIkHAoMCgUEAQIHBRIDJQIICgwKBQQBAgcBEgMlCQ4KDAoFBAECBwMSAyUREmIGcHJvdG8zCsEbCh92b2x0aGFfcHJvdG9zL29tY2lfbWliX2RiLnByb3RvEgRvbWNpIjwKEE1pYkF0dHJpYnV0ZURhdGESEgoEbmFtZRgBIAEoCVIEbmFtZRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWUioAEKD01pYkluc3RhbmNlRGF0YRIfCgtpbnN0YW5jZV9pZBgBIAEoDVIKaW5zdGFuY2VJZBIYCgdjcmVhdGVkGAIgASgJUgdjcmVhdGVkEhoKCG1vZGlmaWVkGAMgASgJUghtb2RpZmllZBI2CgphdHRyaWJ1dGVzGAQgAygLMhYub21jaS5NaWJBdHRyaWJ1dGVEYXRhUgphdHRyaWJ1dGVzIl4KDE1pYkNsYXNzRGF0YRIZCghjbGFzc19pZBgBIAEoDVIHY2xhc3NJZBIzCglpbnN0YW5jZXMYAiADKAsyFS5vbWNpLk1pYkluc3RhbmNlRGF0YVIJaW5zdGFuY2VzIj4KDU1hbmFnZWRFbnRpdHkSGQoIY2xhc3NfaWQYASABKA1SB2NsYXNzSWQSEgoEbmFtZRgCIAEoCVIEbmFtZSIwCgtNZXNzYWdlVHlwZRIhCgxtZXNzYWdlX3R5cGUYASABKA1SC21lc3NhZ2VUeXBlItACCg1NaWJEZXZpY2VEYXRhEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSGAoHY3JlYXRlZBgCIAEoCVIHY3JlYXRlZBIkCg5sYXN0X3N5bmNfdGltZRgDIAEoCVIMbGFzdFN5bmNUaW1lEiIKDW1pYl9kYXRhX3N5bmMYBCABKA1SC21pYkRhdGFTeW5jEhgKB3ZlcnNpb24YBSABKA1SB3ZlcnNpb24SLAoHY2xhc3NlcxgGIAMoCzISLm9tY2kuTWliQ2xhc3NEYXRhUgdjbGFzc2VzEj4KEG1hbmFnZWRfZW50aXRpZXMYByADKAsyEy5vbWNpLk1hbmFnZWRFbnRpdHlSD21hbmFnZWRFbnRpdGllcxI2Cg1tZXNzYWdlX3R5cGVzGAggAygLMhEub21jaS5NZXNzYWdlVHlwZVIMbWVzc2FnZVR5cGVzIi4KEU9wZW5PbWNpRXZlbnRUeXBlIhkKBVR5cGVzEhAKDHN0YXRlX2NoYW5nZRAAIlYKDU9wZW5PbWNpRXZlbnQSMQoEdHlwZRgBIAEoDjIdLm9tY2kuT3Blbk9tY2lFdmVudFR5cGUuVHlwZXNSBHR5cGUSEgoEZGF0YRgCIAEoCVIEZGF0YUJIChhvcmcub3BlbmNvcmQudm9sdGhhLm9tY2laLGdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby9vbWNpSrcTCgYSBA8ASQEK3gQKAQwSAw8AEhrTBAogQ29weXJpZ2h0IDIw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bWNpLkFsYXJtQXR0cmlidXRlRGF0YVIKYXR0cmlidXRlcyJiCg5BbGFybUNsYXNzRGF0YRIZCghjbGFzc19pZBgBIAEoDVIHY2xhc3NJZBI1CglpbnN0YW5jZXMYAiADKAsyFy5vbWNpLkFsYXJtSW5zdGFuY2VEYXRhUglpbnN0YW5jZXMiQwoSQWxhcm1NYW5hZ2VkRW50aXR5EhkKCGNsYXNzX2lkGAEgASgNUgdjbGFzc0lkEhIKBG5hbWUYAiABKAlSBG5hbWUiNQoQQWxhcm1NZXNzYWdlVHlwZRIhCgxtZXNzYWdlX3R5cGUYASABKA1SC21lc3NhZ2VUeXBlIuoCCg9BbGFybURldmljZURhdGESGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIYCgdjcmVhdGVkGAIgASgJUgdjcmVhdGVkEi4KE2xhc3RfYWxhcm1fc2VxdWVuY2UYAyABKA1SEWxhc3RBbGFybVNlcXVlbmNlEiQKDmxhc3Rfc3luY190aW1lGAQgASgJUgxsYXN0U3luY1RpbWUSGAoHdmVyc2lvbhgFIAEoDVIHdmVyc2lvbhIuCgdjbGFzc2VzGAYgAygLMhQub21jaS5BbGFybUNsYXNzRGF0YVIHY2xhc3NlcxJDChBtYW5hZ2VkX2VudGl0aWVzGAcgAygLMhgub21jaS5BbGFybU1hbmFnZWRFbnRpdHlSD21hbmFnZWRFbnRpdGllcxI7Cg1tZXNzYWdlX3R5cGVzGAggAygLMhYub21jaS5BbGFybU1lc3NhZ2VUeXBlUgxtZXNzYWdlVHlwZXMiPwoWQWxhcm1PcGVuT21jaUV2ZW50VHlwZSIlChFPcGVuT21jaUV2ZW50VHlwZRIQCgxzdGF0ZV9jaGFuZ2UQACJsChJBbGFybU9wZW5PbWNpRXZlbnQSQgoEdHlwZRgBIAEoDjIuLm9tY2kuQWxhcm1PcGVuT21jaUV2ZW50VHlwZS5PcGVuT21jaUV2ZW50VHlwZVIEdHlwZRISCgRkYXRhGAIgASgJUgRkYXRhQkgKGG9yZy5vcGVuY29yZC52b2x0aGEub21jaVosZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL29tY2lKtxMKBhIEDwBLAQreBAoBDBIDDwASGtMECiBD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aWxlLnByb3RvGiV2b2x0aGFfcHJvdG9zL3ZvaXBfdXNlcl9wcm9maWxlLnByb3RvGh92b2x0aGFfcHJvdG9zL29tY2lfbWliX2RiLnByb3RvGiF2b2x0aGFfcHJvdG9zL29tY2lfYWxhcm1fZGIucHJvdG8aHXZvbHRoYV9wcm90b3Mvb21jaV90ZXN0LnByb3RvIl0KDENvcmVJbnN0YW5jZRIfCgtpbnN0YW5jZV9pZBgBIAEoCVIKaW5zdGFuY2VJZBIsCgZoZWFsdGgYAiABKAsyFC5oZWFsdGguSGVhbHRoU3RhdHVzUgZoZWFsdGgiOwoNQ29yZUluc3RhbmNlcxIqCgVpdGVtcxgBIAMoCzIULnZvbHRoYS5Db3JlSW5zdGFuY2VSBWl0ZW1zIsADCgZWb2x0aGESGAoHdmVyc2lvbhgBIAEoCVIHdmVyc2lvbhIsCghhZGFwdGVycxgCIAMoCzIQLmFkYXB0ZXIuQWRhcHRlclIIYWRhcHRlcnMSRgoPbG9naWNhbF9kZXZpY2VzGAMgAygLMh0ubG9naWNhbF9kZXZpY2UuTG9naWNhbERldmljZVIObG9naWNhbERldmljZXMSKAoHZGV2aWNlcxgEIAMoCzIOLmRldmljZS5EZXZpY2VSB2RldmljZXMSNQoMZGV2aWNlX3R5cGVzGAUgAygLMhIuZGV2aWNlLkRldmljZVR5cGVSC2RldmljZVR5cGVzEjcKDWV2ZW50X2ZpbHRlcnMYByADKAsyEi5ldmVudC5FdmVudEZpbHRlclIMZXZlbnRGaWx0ZXJzEj8KEW9tY2lfbWliX2RhdGFiYXNlGBwgAygLMhMub21jaS5NaWJEZXZpY2VEYXRhUg9vbWNpTWliRGF0YWJhc2USRQoTb21jaV9hbGFybV9kYXRhYmFzZRgdIAMoCzIVLm9tY2kuQWxhcm1EZXZpY2VEYXRhUhFvbWNpQWxhcm1EYXRhYmFzZUoECAYQBzKuNwoNVm9sdGhhU2VydmljZRJECglHZXRWb2x0aGESFi5nb29nbGUucHJvdG9idWYuRW1wdHkaDi52b2x0aGEuVm9sdGhhIg+C0+STAgkSBy9hcGkvdjESXQoRTGlzdENvcmVJbnN0YW5jZXMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaFS52b2x0aGEuQ29yZUluc3RhbmNlcyIZgtPkkwITEhEvYXBpL3YxL2luc3RhbmNlcxJTCg9HZXRDb3JlSW5zdGFuY2USCi5jb21tb24uSUQaFC52b2x0aGEuQ29yZUluc3RhbmNlIh6C0+STAhgSFi9hcGkvdjEvaW5zdGFuY2VzL3tpZH0SUwoMTGlzdEFkYXB0ZXJzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhEuYWRhcHRlci5BZGFwdGVycyIYgtPkkwISEhAvYXBpL3YxL2FkYXB0ZXJzEm0KEkxpc3RMb2dpY2FsRGV2aWNlcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoeLmxvZ2ljYWxfZGV2aWNlLkxvZ2ljYWxEZXZpY2VzIh+C0+STAhkSFy9hcGkvdjEvbG9naWNhbF9kZXZpY2VzEmMKEEdldExvZ2ljYWxEZXZpY2USCi5jb21tb24uSUQaHS5sb2dpY2FsX2RldmljZS5Mb2dpY2FsRGV2aWNlIiSC0+STAh4SHC9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0SbgoWTGlzdExvZ2ljYWxEZXZpY2VQb3J0cxIKLmNvbW1vbi5JRBocLmxvZ2ljYWxfZGV2aWNlLkxvZ2ljYWxQb3J0cyIqgtPkkwIkEiIvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L3BvcnRzEogBChRHZXRMb2dpY2FsRGV2aWNlUG9ydBIdLmxvZ2ljYWxfZGV2aWNlLkxvZ2ljYWxQb3J0SWQaGy5sb2dpY2FsX2RldmljZS5Mb2dpY2FsUG9ydCI0gtPkkwIuEiwvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L3BvcnRzL3twb3J0X2lkfRKNAQoXRW5hYmxlTG9naWNhbERldmljZVBvcnQSHS5sb2dpY2FsX2RldmljZS5Mb2dpY2FsUG9ydElkGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjuC0+STAjUiMy9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vcG9ydHMve3BvcnRfaWR9L2VuYWJsZRKPAQoYRGlzYWJsZUxvZ2ljYWxEZXZpY2VQb3J0Eh0ubG9naWNhbF9kZXZpY2UuTG9naWNhbFBvcnRJZBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSI8gtPkkwI2IjQvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L3BvcnRzL3twb3J0X2lkfS9kaXNhYmxlEmQKFkxpc3RMb2dpY2FsRGV2aWNlRmxvd3MSCi5jb21tb24uSUQaEi5vcGVuZmxvd18xMy5GbG93cyIqgtPkkwIkEiIvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L2Zsb3dzEoMBChxVcGRhdGVMb2dpY2FsRGV2aWNlRmxvd1RhYmxlEhwub3BlbmZsb3dfMTMuRmxvd1RhYmxlVXBkYXRlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ii2C0+STAiciIi9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vZmxvd3M6ASoShAEKHVVwZGF0ZUxvZ2ljYWxEZXZpY2VNZXRlclRhYmxlEhsub3BlbmZsb3dfMTMuTWV0ZXJNb2RVcGRhdGUaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiLoLT5JMCKCIjL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9tZXRlcnM6ASoSZwoXTGlzdExvZ2ljYWxEZXZpY2VNZXRlcnMSCi5jb21tb24uSUQaEy5vcGVuZmxvd18xMy5NZXRlcnMiK4LT5JMCJRIjL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9tZXRlcnMSdAobTGlzdExvZ2ljYWxEZXZpY2VGbG93R3JvdXBzEgouY29tbW9uLklEGhcub3BlbmZsb3dfMTMuRmxvd0dyb3VwcyIwgtPkkwIqEigvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L2Zsb3dfZ3JvdXBzEpMBCiFVcGRhdGVMb2dpY2FsRGV2aWNlRmxvd0dyb3VwVGFibGUSIS5vcGVuZmxvd18xMy5GbG93R3JvdXBUYWJsZVVwZGF0ZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIzgtPkkwItIigvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L2Zsb3dfZ3JvdXBzOgEqEk8KC0xpc3REZXZpY2VzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Gg8uZGV2aWNlLkRldmljZXMiF4LT5JMCERIPL2FwaS92MS9kZXZpY2VzEk8KDUxpc3REZXZpY2VJZHMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaCy5jb21tb24uSURzIhmC0+STAhMSES9hcGkvdjEvZGV2aWNlaWRzElUKEFJlY29uY2lsZURldmljZXMSCy5jb21tb24uSURzGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IhyC0+STAhYiES9hcGkvdjEvZGV2aWNlaWRzOgEqEkUKCUdldERldmljZRIKLmNvbW1vbi5JRBoOLmRldmljZS5EZXZpY2UiHILT5JMCFhIUL2FwaS92MS9kZXZpY2VzL3tpZH0SSgoMQ3JlYXRlRGV2aWNlEg4uZGV2aWNlLkRldmljZRoOLmRldmljZS5EZXZpY2UiGoLT5JMCFCIPL2FwaS92MS9kZXZpY2VzOgEqElcKDEVuYWJsZURldmljZRIKLmNvbW1vbi5JRBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIjgtPkkwIdIhsvYXBpL3YxL2RldmljZXMve2lkfS9lbmFibGUSWQoNRGlzYWJsZURldmljZRIKLmNvbW1vbi5JRBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIkgtPkkwIeIhwvYXBpL3YxL2RldmljZXMve2lkfS9kaXNhYmxlElcKDFJlYm9vdERldmljZRIKLmNvbW1vbi5JRBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIjgtPkkwIdIhsvYXBpL3YxL2RldmljZXMve2lkfS9yZWJvb3QSVwoMRGVsZXRlRGV2aWNlEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiOC0+STAh0qGy9hcGkvdjEvZGV2aWNlcy97aWR9L2RlbGV0ZRJiChFGb3JjZURlbGV0ZURldmljZRIKLmNvbW1vbi5JRBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIpgtPkkwIjKiEvYXBpL3YxL2RldmljZXMve2lkfS9mb3JjZV9kZWxldGUSeAoNRG93bmxvYWRJbWFnZRIVLmRldmljZS5JbWFnZURvd25sb2FkGhUuY29tbW9uLk9wZXJhdGlvblJlc3AiOYgCAYLT5JMCMCIrL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfToBKhKFAQoWR2V0SW1hZ2VEb3dubG9hZFN0YXR1cxIVLmRldmljZS5JbWFnZURvd25sb2FkGhUuZGV2aWNlLkltYWdlRG93bmxvYWQiPYgCAYLT5JMCNBIyL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfS9zdGF0dXMSeAoQR2V0SW1hZ2VEb3dubG9hZBIVLmRldmljZS5JbWFnZURvd25sb2FkGhUuZGV2aWNlLkltYWdlRG93bmxvYWQiNogCAYLT5JMCLRIrL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfRJpChJMaXN0SW1hZ2VEb3dubG9hZHMSCi5jb21tb24uSUQaFi5kZXZpY2UuSW1hZ2VEb3dubG9hZHMiL4gCAYLT5JMCJhIkL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzEnsKE0NhbmNlbEltYWdlRG93bmxvYWQSFS5kZXZpY2UuSW1hZ2VEb3dubG9hZBoVLmNvbW1vbi5PcGVyYXRpb25SZXNwIjaIAgGC0+STAi0qKy9hcGkvdjEvZGV2aWNlcy97aWR9L2ltYWdlX2Rvd25sb2Fkcy97bmFtZX0SiwEKE0FjdGl2YXRlSW1hZ2VVcGRhdGUSFS5kZXZpY2UuSW1hZ2VEb3dubG9hZBoVLmNvbW1vbi5PcGVyYXRpb25SZXNwIkaIAgGC0+STAj0iOC9hcGkvdjEvZGV2aWNlcy97aWR9L2ltYWdlX2Rvd25sb2Fkcy97bmFtZX0vaW1hZ2VfdXBkYXRlOgEqEokBChFSZXZlcnRJbWFnZVVwZGF0ZRIVLmRldmljZS5JbWFnZURvd25sb2FkGhUuY29tbW9uLk9wZXJhdGlvblJlc3AiRogCAYLT5JMCPSI4L2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfS9pbWFnZV9yZXZlcnQ6ASoSiAEKFURvd25sb2FkSW1hZ2VUb0RldmljZRIiLmRldmljZS5EZXZpY2VJbWFnZURvd25sb2FkUmVxdWVzdBobLmRldmljZS5EZXZpY2VJbWFnZVJlc3BvbnNlIi6C0+STAigSJi9hcGkvdjEvZGV2aWNlcy9pbWFnZXMvZG93bmxvYWRfaW1hZ2VzEncKDkdldEltYWdlU3RhdHVzEhouZGV2aWNlLkRldmljZUltYWdlUmVxdWVzdBobLmRldmljZS5EZXZpY2VJbWFnZVJlc3BvbnNlIiyC0+STAiYSJC9hcGkvdjEvZGV2aWNlcy9pbWFnZXMvaW1hZ2VzX3N0YXR1cxKJAQoZQWJvcnRJbWFnZVVwZ3JhZGVUb0RldmljZRIaLmRldmljZS5EZXZpY2VJbWFnZVJlcXVlc3QaGy5kZXZpY2UuRGV2aWNlSW1hZ2VSZXNwb25zZSIzgtPkkwItEisvYXBpL3YxL2RldmljZXMvaW1hZ2VzL2Fib3J0X3VwZ3JhZGVfaW1hZ2VzElYKDEdldE9udUltYWdlcxIKLmNvbW1vbi5JRBoRLmRldmljZS5PbnVJbWFnZXMiJ4LT5JMCIRIfL2FwaS92MS9kZXZpY2VzL3tpZH0vb251X2ltYWdlcxJ7Cg1BY3RpdmF0ZUltYWdlEhouZGV2aWNlLkRldmljZUltYWdlUmVxdWVzdBobLmRldmljZS5EZXZpY2VJbWFnZVJlc3BvbnNlIjGC0+STAisiJi9hcGkvdjEvZGV2aWNlcy9pbWFnZXMvYWN0aXZhdGVfaW1hZ2VzOgEqEncKC0NvbW1pdEltYWdlEhouZGV2aWNlLkRldmljZUltYWdlUmVxdWVzdBobLmRldmljZS5EZXZpY2VJbWFnZVJlc3BvbnNlIi+C0+STAikiJC9hcGkvdjEvZGV2aWNlcy9pbWFnZXMvY29tbWl0X2ltYWdlczoBKhJQCg9MaXN0RGV2aWNlUG9ydHMSCi5jb21tb24uSUQaDS5kZXZpY2UuUG9ydHMiIoLT5JMCHBIaL2FwaS92MS9kZXZpY2VzL3tpZH0vcG9ydHMSXQoTTGlzdERldmljZVBtQ29uZmlncxIKLmNvbW1vbi5JRBoRLmRldmljZS5QbUNvbmZpZ3MiJ4LT5JMCIRIfL2FwaS92MS9kZXZpY2VzL3tpZH0vcG1fY29uZmlncxJuChVVcGRhdGVEZXZpY2VQbUNvbmZpZ3MSES5kZXZpY2UuUG1Db25maWdzGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiqC0+STAiQiHy9hcGkvdjEvZGV2aWNlcy97aWR9L3BtX2NvbmZpZ3M6ASoSVQoPTGlzdERldmljZUZsb3dzEgouY29tbW9uLklEGhIub3BlbmZsb3dfMTMuRmxvd3MiIoLT5JMCHBIaL2FwaS92MS9kZXZpY2VzL3tpZH0vZmxvd3MSZQoUTGlzdERldmljZUZsb3dHcm91cHMSCi5jb21tb24uSUQaFy5vcGVuZmxvd18xMy5GbG93R3JvdXBzIiiC0+STAiISIC9hcGkvdjEvZGV2aWNlcy97aWR9L2Zsb3dfZ3JvdXBzElwKD0xpc3REZXZpY2VUeXBlcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoTLmRldmljZS5EZXZpY2VUeXBlcyIcgtPkkwIWEhQvYXBpL3YxL2RldmljZV90eXBlcxJSCg1HZXREZXZpY2VUeXBlEgouY29tbW9uLklEGhIuZGV2aWNlLkRldmljZVR5cGUiIYLT5JMCGxIZL2FwaS92MS9kZXZpY2VfdHlwZXMve2lkfRJGChBTdHJlYW1QYWNrZXRzT3V0EhYub3BlbmZsb3dfMTMuUGFja2V0T3V0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IgAoARJFChBSZWNlaXZlUGFja2V0c0luEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhUub3BlbmZsb3dfMTMuUGFja2V0SW4iADABEksKE1JlY2VpdmVDaGFuZ2VFdmVudHMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaGC5vcGVuZmxvd18xMy5DaGFuZ2VFdmVudCIAMAESXQoRQ3JlYXRlRXZlbnRGaWx0ZXISEi5ldmVudC5FdmVudEZpbHRlchoSLmV2ZW50LkV2ZW50RmlsdGVyIiCC0+STAhoiFS9hcGkvdjEvZXZlbnRfZmlsdGVyczoBKhJVCg5HZXRFdmVudEZpbHRlchIKLmNvbW1vbi5JRBoTLmV2ZW50LkV2ZW50RmlsdGVycyIigtPkkwIcEhovYXBpL3YxL2V2ZW50X2ZpbHRlcnMve2lkfRJiChFVcGRhdGVFdmVudEZpbHRlchISLmV2ZW50LkV2ZW50RmlsdGVyGhIuZXZlbnQuRXZlbnRGaWx0ZXIiJYLT5JMCHxoaL2FwaS92MS9ldmVudF9maWx0ZXJzL3tpZH06ASoSYwoRRGVsZXRlRXZlbnRGaWx0ZXISEi5ldmVudC5FdmVudEZpbHRlchoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIigtPkkwIcKhovYXBpL3YxL2V2ZW50X2ZpbHRlcnMve2lkfRJeChBMaXN0RXZlbnRGaWx0ZXJzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhMuZXZlbnQuRXZlbnRGaWx0ZXJzIh2C0+STAhcSFS9hcGkvdjEvZXZlbnRfZmlsdGVycxJMCglHZXRJbWFnZXMSCi5jb21tb24uSUQaDi5kZXZpY2UuSW1hZ2VzIiOC0+STAh0SGy9hcGkvdjEvZGV2aWNlcy97aWR9L2ltYWdlcxJYCghTZWxmVGVzdBIKLmNvbW1vbi5JRBoYLmRldmljZS5TZWxmVGVzdFJlc3BvbnNlIiaC0+STAiAiHi9hcGkvdjEvZGV2aWNlcy97aWR9L3NlbGZfdGVzdBJWChBHZXRNaWJEZXZpY2VEYXRhEgouY29tbW9uLklEGhMub21jaS5NaWJEZXZpY2VEYXRhIiGC0+STAhsSGS9hcGkvdjEvb3Blbm9tY2kve2lkfS9taWISXAoSR2V0QWxhcm1EZXZpY2VEYXRhEgouY29tbW9uLklEGhUub21jaS5BbGFybURldmljZURhdGEiI4LT5JMCHRIbL2FwaS92MS9vcGVub21jaS97aWR9L2FsYXJtEnMKDVNpbXVsYXRlQWxhcm0SHC5kZXZpY2UuU2ltdWxhdGVBbGFybVJlcXVlc3QaFS5jb21tb24uT3BlcmF0aW9uUmVzcCItgtPkkwInIiIvYXBpL3YxL2RldmljZXMve2lkfS9zaW11bGF0ZV9sYXJtOgEqEk0KCkVuYWJsZVBvcnQSDC5kZXZpY2UuUG9ydBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIZgtPkkwITIg4vdjEvRW5hYmxlUG9ydDoBKhJPCgtEaXNhYmxlUG9ydBIMLmRldmljZS5Qb3J0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IhqC0+STAhQiDy92MS9EaXNhYmxlUG9ydDoBKhJeCgtHZXRFeHRWYWx1ZRIZLmV4dGVuc2lvbi5WYWx1ZVNwZWNpZmllchoXLmV4dGVuc2lvbi5SZXR1cm5WYWx1ZXMiG4LT5JMCFRITL2FwaS92MS9HZXRFeHRWYWx1ZRJXCgtTZXRFeHRWYWx1ZRITLmV4dGVuc2lvbi5WYWx1ZVNldBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIbgtPkkwIVEhMvYXBpL3YxL1NldEV4dFZhbHVlEmQKE1N0YXJ0T21jaVRlc3RBY3Rpb24SFS5vbWNpLk9tY2lUZXN0UmVxdWVzdBoSLm9tY2kuVGVzdFJlc3BvbnNlIiKC0+STAhwiFy9hcGkvdjEvc3RhcnRfb21jaV90ZXN0OgEqEoUBChRQdXRWb2lwU3lzdGVtUHJvZmlsZRItLnZvaXBfc3lzdGVtX3Byb2ZpbGUuVm9pcFN5c3RlbVByb2ZpbGVSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiaC0+STAiAiGy9hcGkvdjEvdm9pcF9zeXN0ZW1fcHJvZmlsZToBKhJwChdEZWxldGVWb2lwU3lzdGVtUHJvZmlsZRILLmNvbW1vbi5LZXkaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiMILT5JMCKiooL2FwaS92MS92b2lwX3N5c3RlbV9wcm9maWxlL3trZXl9L2RlbGV0ZRJ9ChJQdXRWb2lwVXNlclByb2ZpbGUSKS52b2lwX3VzZXJfcHJvZmlsZS5Wb2lwVXNlclByb2ZpbGVSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiSC0+STAh4iGS9hcGkvdjEvdm9pcF91c2VyX3Byb2ZpbGU6ASoSbAoVRGVsZXRlVm9pcFVzZXJQcm9maWxlEgsuY29tbW9uLktleRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIugtPkkwIoKiYvYXBpL3YxL3ZvaXBfdXNlcl9wcm9maWxlL3trZXl9L2RlbGV0ZUJsChNvcmcub3BlbmNvcmQudm9sdGhhQgxWb2x0aGFQcm90b3NaLmdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby92b2x0aGGqAhZPcGVuY29yZC5Wb2x0aGEuVm9sdGhhSvFlCgcSBQYA4gQBClwKAQwSAwYAEjJSCiBUb3AtbGV2ZWwgVm9sdGhhIEFQSSBkZWZpbml0aW9uCgogRm9yIGRldGFpbHMsIHNlZSBpbmRpdmlkdWFsIGRlZmluaXRpb24gZmlsZXMuCgoICgEIEgMIAEUKCQoCCAsSAwgARQoICgECEgMKAA8KCQoCAwASAwwA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0QQKCkIKBAYAAkISBtUEBNoEBRoyIFNhdmVzIG9yIHVwZGF0ZXMgYSBwcm9maWxlIChWT0lQKSBpbnRvIHZvbHRoYSBLVgoKDQoFBgACQgESBNUECBoKDQoFBgACQgISBNUEG0MKDQoFBgACQgMSBNUETWIKDwoFBgACQgQSBtYECNkECgoTCgkGAAJCBLDKvCISBtYECNkECgo6CgQGAAJDEgbdBAThBAUaKiBEZWxldGVzIHRoZSBnaXZlbiBwcm9maWxlIGZyb20gdm9sdGhhIEtWCgoNCgUGAAJDARIE3QQIHQoNCgUGAAJDAhIE3QQeKAoNCgUGAAJDAxIE3QQyRwoPCgUGAAJDBBIG3gQI4AQKChMKCQYAAkMEsMq8IhIG3gQI4AQKUAJiBnByb3RvMwqBPQogdm9sdGhhX3Byb3Rvcy9jb3JlX2FkYXB0ZXIucHJvdG8SDGNvcmVfYWRhcHRlchoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8aGnZvbHRoYV9wcm90b3Mvdm9sdGhhLnByb3RvGh92b2x0aGFfcHJvdG9zL29wZW5mbG93XzEzLnByb3RvGht2b2x0aGFfcHJvdG9zL2FkYXB0ZXIucHJvdG8aGnZvbHRoYV9wcm90b3MvZGV2aWNlLnByb3RvGh52b2x0aGFfcHJvdG9zL2V4dGVuc2lvbnMucHJvdG8aHXZvbHRoYV9wcm90b3Mvb21jaV90ZXN0LnByb3RvIm4KE0FkYXB0ZXJSZWdpc3RyYXRpb24SKgoHYWRhcHRlchgBIAEoCzIQLmFkYXB0ZXIuQWRhcHRlclIHYWRhcHRlchIrCgZkVHlwZXMYAiABKAsyEy5kZXZpY2UuRGV2aWNlVHlwZXNSBmRUeXBlcyKSAQoRQ2hpbGREZXZpY2VGaWx0ZXISGwoJcGFyZW50X2lkGAEgASgJUghwYXJlbnRJZBIjCg1zZXJpYWxfbnVtYmVyGAIgASgJUgxzZXJpYWxOdW1iZXISFQoGb251X2lkGAMgASgNUgVvbnVJZBIkCg5wYXJlbnRfcG9ydF9ubxgEIAEoDVIMcGFyZW50UG9ydE5vInEKClBvcnRGaWx0ZXISGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBISCgRwb3J0GAIgASgNUgRwb3J0EjIKCXBvcnRfdHlwZRgDIAEoDjIVLmRldmljZS5Qb3J0LlBvcnRUeXBlUghwb3J0VHlwZSL4AQoPRGV2aWNlRGlzY292ZXJ5EhsKCXBhcmVudF9pZBgBIAEoCVIIcGFyZW50SWQSJAoOcGFyZW50X3BvcnRfbm8YAiABKA1SDHBhcmVudFBvcnRObxIqChFjaGlsZF9kZXZpY2VfdHlwZRgDIAEoCVIPY2hpbGREZXZpY2VUeXBlEh0KCmNoYW5uZWxfaWQYBCABKA1SCWNoYW5uZWxJZBIbCgl2ZW5kb3JfaWQYBSABKAlSCHZlbmRvcklkEiMKDXNlcmlhbF9udW1iZXIYBiABKAlSDHNlcmlhbE51bWJlchIVCgZvbnVfaWQYByABKA1SBW9udUlkItMBChFEZXZpY2VTdGF0ZUZpbHRlchIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEigKEHBhcmVudF9kZXZpY2VfaWQYAiABKAlSDnBhcmVudERldmljZUlkEjkKC29wZXJfc3RhdHVzGAMgASgOMhguY29tbW9uLk9wZXJTdGF0dXMuVHlwZXNSCm9wZXJTdGF0dXMSPAoLY29ubl9zdGF0dXMYBCABKA4yGy5jb21tb24uQ29ubmVjdFN0YXR1cy5UeXBlc1IKY29ublN0YXR1cyKwAQoJUG9ydFN0YXRlEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSMgoJcG9ydF90eXBlGAIgASgOMhUuZGV2aWNlLlBvcnQuUG9ydFR5cGVSCHBvcnRUeXBlEhcKB3BvcnRfbm8YAyABKA1SBnBvcnRObxI5CgtvcGVyX3N0YXR1cxgEIAEoDjIYLmNvbW1vbi5PcGVyU3RhdHVzLlR5cGVzUgpvcGVyU3RhdHVzIpMBCg9Qb3J0U3RhdGVGaWx0ZXISGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIoChBwb3J0X3R5cGVfZmlsdGVyGAIgASgNUg5wb3J0VHlwZUZpbHRlchI5CgtvcGVyX3N0YXR1cxgEIAEoDjIYLmNvbW1vbi5PcGVyU3RhdHVzLlR5cGVzUgpvcGVyU3RhdHVzIlMKCFBhY2tldEluEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSEgoEcG9ydBgCIAEoDVIEcG9ydBIWCgZwYWNrZXQYAyABKAxSBnBhY2tldCKDAQoJUGFja2V0T3V0EhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSJAoOZWdyZXNzX3BvcnRfbm8YAiABKA1SDGVncmVzc1BvcnRObxIzCgZwYWNrZXQYAyABKAsyGy5vcGVuZmxvd18xMy5vZnBfcGFja2V0X291dFIGcGFja2V0IkMKDERldmljZVJlYXNvbhIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEhYKBnJlYXNvbhgCIAEoCVIGcmVhc29uIs4BCglCdWxrRmxvd3MSJgoGZGV2aWNlGAEgASgLMg4uZGV2aWNlLkRldmljZVIGZGV2aWNlEigKBWZsb3dzGAIgASgLMhIub3BlbmZsb3dfMTMuRmxvd3NSBWZsb3dzEi8KBmdyb3VwcxgDIAEoCzIXLm9wZW5mbG93XzEzLkZsb3dHcm91cHNSBmdyb3VwcxI+Cg1mbG93X21ldGFkYXRhGAQgASgLMhkub3BlbmZsb3dfMTMuRmxvd01ldGFkYXRhUgxmbG93TWV0YWRhdGEi4QEKEEluY3JlbWVudGFsRmxvd3MSJgoGZGV2aWNlGAEgASgLMg4uZGV2aWNlLkRldmljZVIGZGV2aWNlEi4KBWZsb3dzGAIgASgLMhgub3BlbmZsb3dfMTMuRmxvd0NoYW5nZXNSBWZsb3dzEjUKBmdyb3VwcxgDIAEoCzIdLm9wZW5mbG93XzEzLkZsb3dHcm91cENoYW5nZXNSBmdyb3VwcxI+Cg1mbG93X21ldGFkYXRhGAQgASgLMhkub3BlbmZsb3dfMTMuRmxvd01ldGFkYXRhUgxmbG93TWV0YWRhdGEiXgoNUG1Db25maWdzSW5mbxIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEjAKCnBtX2NvbmZpZ3MYAiABKAsyES5kZXZpY2UuUG1Db25maWdzUglwbUNvbmZpZ3MiiAEKEFN3aXRjaENhcGFiaWxpdHkSKQoEZGVzYxgBIAEoCzIVLm9wZW5mbG93XzEzLm9mcF9kZXNjUgRkZXNjEkkKD3N3aXRjaF9mZWF0dXJlcxgCIAEoCzIgLm9wZW5mbG93XzEzLm9mcF9zd2l0Y2hfZmVhdHVyZXNSDnN3aXRjaEZlYXR1cmVzImsKFEltYWdlRG93bmxvYWRNZXNzYWdlEiYKBmRldmljZRgBIAEoCzIOLmRldmljZS5EZXZpY2VSBmRldmljZRIrCgVpbWFnZRgCIAEoCzIVLmRldmljZS5JbWFnZURvd25sb2FkUgVpbWFnZSJjCghPTUNJVGVzdBImCgZkZXZpY2UYASABKAsyDi5kZXZpY2UuRGV2aWNlUgZkZXZpY2USLwoHcmVxdWVzdBgCIAEoCzIVLm9tY2kuT21jaVRlc3RSZXF1ZXN0UgdyZXF1ZXN0InYKFFNpbXVsYXRlQWxhcm1NZXNzYWdlEiYKBmRldmljZRgBIAEoCzIOLmRldmljZS5EZXZpY2VSBmRldmljZRI2CgdyZXF1ZXN0GAIgASgLMhwuZGV2aWNlLlNpbXVsYXRlQWxhcm1SZXF1ZXN0UgdyZXF1ZXN0IrYBChJHZXRFeHRWYWx1ZU1lc3NhZ2USMwoNcGFyZW50X2RldmljZRgBIAEoCzIOLmRldmljZS5EZXZpY2VSDHBhcmVudERldmljZRIxCgxjaGlsZF9kZXZpY2UYAiABKAsyDi5kZXZpY2UuRGV2aWNlUgtjaGlsZERldmljZRI4Cgp2YWx1ZV90eXBlGAMgASgOMhkuZXh0ZW5zaW9uLlZhbHVlVHlwZS5UeXBlUgl2YWx1ZVR5cGUiZwoSU2V0RXh0VmFsdWVNZXNzYWdlEiYKBmRldmljZRgBIAEoCzIOLmRldmljZS5EZXZpY2VSBmRldmljZRIpCgV2YWx1ZRgDIAEoCzITLmV4dGVuc2lvbi5WYWx1ZVNldFIFdmFsdWVCWAogb3JnLm9wZW5jb3JkLnZvbHRoYS5jb3JlX2FkYXB0ZXJaNGdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby9jb3JlX2FkYXB0ZXJK3SQKBxIFAACCAQEKCAoBDBIDAAASCggKAQgSAwIASwoJCgIICxIDAgBLCggKAQgSAwMAOQoJCgIIARIDAwA5CgkKAgMAEgMFACQKCQoCAwESAwYAJAoJCgIDAhIDBwApCgkKAgMDEgMIACUKCQoCAwQSAwkAJAoJCgIDBRIDCgAoCgkKAgMGEgMLACcKCAoBAhIDDQAVCiMKAgQAEgQRABQBMhcgQ29yZS1BZGFwdGVyIG1lc3NhZ2VzCgoKCgME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BBICAQMSBIEBHR5iBnByb3RvMwqnKwojdm9sdGhhX3Byb3Rvcy9hZGFwdGVyX3NlcnZpY2UucHJvdG8SD2FkYXB0ZXJfc2VydmljZRobZ29vZ2xlL3Byb3RvYnVmL2VtcHR5LnByb3RvGhp2b2x0aGFfcHJvdG9zL2NvbW1vbi5wcm90bxogdm9sdGhhX3Byb3Rvcy9jb3JlX2FkYXB0ZXIucHJvdG8aGnZvbHRoYV9wcm90b3MvZGV2aWNlLnByb3RvGh52b2x0aGFfcHJvdG9zL2V4dGVuc2lvbnMucHJvdG8aGnZvbHRoYV9wcm90b3MvaGVhbHRoLnByb3RvGhp2b2x0aGFfcHJvdG9zL3ZvbHRoYS5wcm90bxoddm9sdGhhX3Byb3Rvcy9vbWNpX3Rlc3QucHJvdG8aGnZvbHRoYV9wcm90b3MvZXZlbnRzLnByb3RvMpgTCg5BZGFwdGVyU2VydmljZRI/Cg9HZXRIZWFsdGhTdGF0dXMSEi5jb21tb24uQ29ubmVjdGlvbhoULmhlYWx0aC5IZWFsdGhTdGF0dXMoATABEjUKC0Fkb3B0RGV2aWNlEg4uZGV2aWNlLkRldmljZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI5Cg9SZWNvbmNpbGVEZXZpY2USDi5kZXZpY2UuRGV2aWNlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjYKDERlbGV0ZURldmljZRIOLmRldmljZS5EZXZpY2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSNwoNRGlzYWJsZURldmljZRIOLmRldmljZS5EZXZpY2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSOAoOUmVFbmFibGVEZXZpY2USDi5kZXZpY2UuRGV2aWNlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjYKDFJlYm9vdERldmljZRIOLmRldmljZS5EZXZpY2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSOAoOU2VsZlRlc3REZXZpY2USDi5kZXZpY2UuRGV2aWNlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkIKEEdldE9mcERldmljZUluZm8SDi5kZXZpY2UuRGV2aWNlGh4uY29yZV9hZGFwdGVyLlN3aXRjaENhcGFiaWxpdHkSOQoPQ2hpbGREZXZpY2VMb3N0Eg4uZGV2aWNlLkRldmljZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRIyCgpFbmFibGVQb3J0EgwuZGV2aWNlLlBvcnQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSMwoLRGlzYWJsZVBvcnQSDC5kZXZpY2UuUG9ydBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJCCg9VcGRhdGVGbG93c0J1bGsSFy5jb3JlX2FkYXB0ZXIuQnVsa0Zsb3dzGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5ElIKGFVwZGF0ZUZsb3dzSW5jcmVtZW50YWxseRIeLmNvcmVfYWRhcHRlci5JbmNyZW1lbnRhbEZsb3dzGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkAKDVNlbmRQYWNrZXRPdXQSFy5jb3JlX2FkYXB0ZXIuUGFja2V0T3V0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkUKDlVwZGF0ZVBtQ29uZmlnEhsuY29yZV9hZGFwdGVyLlBtQ29uZmlnc0luZm8aFi5nb29nbGUucHJvdG9idWYuRW1wdHkSUwoQRG93bmxvYWRPbnVJbWFnZRIiLmRldmljZS5EZXZpY2VJbWFnZURvd25sb2FkUmVxdWVzdBobLmRldmljZS5EZXZpY2VJbWFnZVJlc3BvbnNlEkwKEUdldE9udUltYWdlU3RhdHVzEhouZGV2aWNlLkRldmljZUltYWdlUmVxdWVzdBobLmRldmljZS5EZXZpY2VJbWFnZVJlc3BvbnNlEk8KFEFib3J0T251SW1hZ2VVcGdyYWRlEhouZGV2aWNlLkRldmljZUltYWdlUmVxdWVzdBobLmRldmljZS5EZXZpY2VJbWFnZVJlc3BvbnNlEi0KDEdldE9udUltYWdlcxIKLmNvbW1vbi5JRBoRLmRldmljZS5PbnVJbWFnZXMSSwoQQWN0aXZhdGVPbnVJbWFnZRIaLmRldmljZS5EZXZpY2VJbWFnZVJlcXVlc3QaGy5kZXZpY2UuRGV2aWNlSW1hZ2VSZXNwb25zZRJJCg5Db21taXRPbnVJbWFnZRIaLmRldmljZS5EZXZpY2VJbWFnZVJlcXVlc3QaGy5kZXZpY2UuRGV2aWNlSW1hZ2VSZXNwb25zZRJPCg1Eb3dubG9hZEltYWdlEiIuY29yZV9hZGFwdGVyLkltYWdlRG93bmxvYWRNZXNzYWdlGhUuZGV2aWNlLkltYWdlRG93bmxvYWQiA4gCARJYChZHZXRJbWFnZURvd25sb2FkU3RhdHVzEiIuY29yZV9hZGFwdGVyLkltYWdlRG93bmxvYWRNZXNzYWdlGhUuZGV2aWNlLkltYWdlRG93bmxvYWQiA4gCARJVChNDYW5jZWxJbWFnZURvd25sb2FkEiIuY29yZV9hZGFwdGVyLkltYWdlRG93bmxvYWRNZXNzYWdlGhUuZGV2aWNlLkltYWdlRG93bmxvYWQiA4gCARJVChNBY3RpdmF0ZUltYWdlVXBkYXRlEiIuY29yZV9hZGFwdGVyLkltYWdlRG93bmxvYWRNZXNzYWdlGhUuZGV2aWNlLkltYWdlRG93bmxvYWQiA4gCARJTChFSZXZlcnRJbWFnZVVwZGF0ZRIiLmNvcmVfYWRhcHRlci5JbWFnZURvd25sb2FkTWVzc2FnZRoVLmRldmljZS5JbWFnZURvd25sb2FkIgOIAgESOwoNU3RhcnRPbWNpVGVzdBIWLmNvcmVfYWRhcHRlci5PTUNJVGVzdBoSLm9tY2kuVGVzdFJlc3BvbnNlEkoKDVNpbXVsYXRlQWxhcm0SIi5jb3JlX2FkYXB0ZXIuU2ltdWxhdGVBbGFybU1lc3NhZ2UaFS5jb21tb24uT3BlcmF0aW9uUmVzcBI7Cg1TdXBwcmVzc0V2ZW50EhIuZXZlbnQuRXZlbnRGaWx0ZXIaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSPQoPVW5TdXBwcmVzc0V2ZW50EhIuZXZlbnQuRXZlbnRGaWx0ZXIaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSSAoLR2V0RXh0VmFsdWUSIC5jb3JlX2FkYXB0ZXIuR2V0RXh0VmFsdWVNZXNzYWdlGhcuZXh0ZW5zaW9uLlJldHVyblZhbHVlcxJHCgtTZXRFeHRWYWx1ZRIgLmNvcmVfYWRhcHRlci5TZXRFeHRWYWx1ZU1lc3NhZ2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSVQoOR2V0U2luZ2xlVmFsdWUSIC5leHRlbnNpb24uU2luZ2xlR2V0VmFsdWVSZXF1ZXN0GiEuZXh0ZW5zaW9uLlNpbmdsZUdl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ZWN0aW9uGhQuaGVhbHRoLkhlYWx0aFN0YXR1cygBMAESTAoPUmVnaXN0ZXJBZGFwdGVyEiEuY29yZV9hZGFwdGVyLkFkYXB0ZXJSZWdpc3RyYXRpb24aFi5nb29nbGUucHJvdG9idWYuRW1wdHkSNgoMRGV2aWNlVXBkYXRlEg4uZGV2aWNlLkRldmljZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRIzCgtQb3J0Q3JlYXRlZBIMLmRldmljZS5Qb3J0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkkKEFBvcnRzU3RhdGVVcGRhdGUSHS5jb3JlX2FkYXB0ZXIuUG9ydFN0YXRlRmlsdGVyGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjQKDkRlbGV0ZUFsbFBvcnRzEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjcKDUdldERldmljZVBvcnQSGC5jb3JlX2FkYXB0ZXIuUG9ydEZpbHRlchoMLmRldmljZS5Qb3J0EiwKD0xpc3REZXZpY2VQb3J0cxIKLmNvbW1vbi5JRBoNLmRldmljZS5Qb3J0cxJMChFEZXZpY2VTdGF0ZVVwZGF0ZRIfLmNvcmVfYWRhcHRlci5EZXZpY2VTdGF0ZUZpbHRlchoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJBChREZXZpY2VQTUNvbmZpZ1VwZGF0ZRIRLmRldmljZS5QbUNvbmZpZ3MaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSRAoTQ2hpbGREZXZpY2VEZXRlY3RlZBIdLmNvcmVfYWRhcHRlci5EZXZpY2VEaXNjb3ZlcnkaDi5kZXZpY2UuRGV2aWNlEjYKEENoaWxkRGV2aWNlc0xvc3QSCi5jb21tb24uSUQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSOgoUQ2hpbGREZXZpY2VzRGV0ZWN0ZWQSCi5jb21tb24uSUQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSJwoJR2V0RGV2aWNlEgouY29tbW9uLklEGg4uZGV2aWNlLkRldmljZRJBCg5HZXRDaGlsZERldmljZRIfLmNvcmVfYWRhcHRlci5DaGlsZERldmljZUZpbHRlchoOLmRldmljZS5EZXZpY2USLgoPR2V0Q2hpbGREZXZpY2VzEgouY29tbW9uLklEGg8uZGV2aWNlLkRldmljZXMSPgoMU2VuZFBhY2tldEluEhYuY29yZV9hZGFwdGVyLlBhY2tldEluGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkgKEkRldmljZVJlYXNvblVwZGF0ZRIaLmNvcmVfYWRhcHRlci5EZXZpY2VSZWFzb24aFi5nb29nbGUucHJvdG9idWYuRW1wdHkSQgoPUG9ydFN0YXRlVXBkYXRlEhcuY29yZV9hZGFwdGVyLlBvcnRTdGF0ZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI7ChVSZWNvbmNpbGVDaGlsZERldmljZXMSCi5jb21tb24uSUQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSTQoeR2V0Q2hpbGREZXZpY2VXaXRoUHJveHlBZGRyZXNzEhsuZGV2aWNlLkRldmljZS5Qcm94eUFkZHJlc3MaDi5kZXZpY2UuRGV2aWNlEjMKCEdldFBvcnRzEhguY29yZV9hZGFwdGVyLlBvcnRGaWx0ZXIaDS5kZXZpY2UuUG9ydHMSTgoTQ2hpbGRyZW5TdGF0ZVVwZGF0ZRIfLmNvcmVfYWRhcHRlci5EZXZpY2VTdGF0ZUZpbHRlchoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJEChNVcGRhdGVJbWFnZURvd25sb2FkEhUuZGV2aWNlLkltYWdlRG93bmxvYWQaFi5nb29nbGUucHJvdG9idWYuRW1wdHlCawogb3JnLm9wZW5jb3JkLnZvbHRoYS5jb3JlX3NlcnZpY2VCEVZvbHRoYUNvcmVTZXJ2aWNlWjRnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vY29yZV9zZXJ2aWNlSrEOCgYSBAAALgEKCAoBDBIDAAASCggKAQgSAwIASwoJCgIICxIDAgBLCggKAQgSAwMAOQoJCgIIARIDAwA5CggKAQgSAwQAMgoJCgIICBIDBAAyCggKAQISAwYAFQoJCgIDABIDCAAlCgkKAgMBEgMJACoKCQoCAwISAwoAJAoJCgIDAxIDCwAkCgkKAgMEEgMMACQKnwEKAgYAEgQQAC4BGpIBIFRoZSBDb3JlU2VydmljZSBpcyBhIGdSUEMgc2VydmljZSBpbXBs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CgtkZXNjcmlwdGlvbhgCIAEoCVILZGVzY3JpcHRpb24SEgoEdHlwZRgDIAEoCVIEdHlwZRIYCgdlbmFibGVkGAQgASgIUgdlbmFibGVkEmAKGGxpbmtfdXBfZG93bl90cmFwX2VuYWJsZRgFIAEoDjIoLmlldGYuSW50ZXJmYWNlLkxpbmtVcERvd25UcmFwRW5hYmxlVHlwZVIUbGlua1VwRG93blRyYXBFbmFibGUiPwoYTGlua1VwRG93blRyYXBFbmFibGVUeXBlEhEKDVRSQVBfRElTQUJMRUQQABIQCgxUUkFQX0VOQUJMRUQQASJMCg9JbnRlcmZhY2VzU3RhdGUSOQoNYWxsX2ludGVyZmFjcxgBIAMoCzIULmlldGYuSW50ZXJmYWNlU3RhdGVSDGFsbEludGVyZmFjcyLABAoOSW50ZXJmYWNlU3RhdGUSEgoEbmFtZRgBIAEoCVIEbmFtZRISCgR0eXBlGAIgASgJUgR0eXBlEkcKDGFkbWluX3N0YXR1cxgDIAEoDjIkLmlldGYuSW50ZXJmYWNlU3RhdGUuQWRtaW5TdGF0dXNUeXBlUgthZG1pblN0YXR1cxJECgtvcGVyX3N0YXR1cxgEIAEoDjIjLmlldGYuSW50ZXJmYWNlU3RhdGUuT3BlclN0YXR1c1R5cGVSCm9wZXJTdGF0dXMSHwoLbGFzdF9jaGFuZ2UYBSABKAlSCmxhc3RDaGFuZ2USGQoIaWZfaW5kZXgYBiABKAVSB2lmSW5kZXgSIQoMcGh5c19hZGRyZXNzGAcgASgJUgtwaHlzQWRkcmVzcxImCg9oaWdoZXJfbGF5ZXJfaWYYCCADKAlSDWhpZ2hlckxheWVySWYSJAoObG93ZXJfbGF5ZXJfaWYYCSADKAlSDGxvd2VyTGF5ZXJJZhIUCgVzcGVlZBgKIAEoBFIFc3BlZWQiQgoPQWRtaW5TdGF0dXNUeXBlEg4KCkFETUlOX0RPV04QABIRCg1BRE1JTl9URVNUSU5HEAESDAoIQURNSU5fVVAQAiJwCg5PcGVyU3RhdHVzVHlwZRILCgdET1JNQU5UEAASFAoQTE9XRVJfTEFZRVJfRE9XThABEgsKB1VOS05PV04QAhILCgdURVNUSU5HEAMSBgoCVVAQBBIICgRET1dOEAUSDwoLTk9UX1BSRVNFTlQQBkJI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AiABKAdSB2FsbG9jSWQSOwoJc2NoZWR1bGVyGAMgASgLMh0udGVjaF9wcm9maWxlLlNjaGVkdWxlckNvbmZpZ1IJc2NoZWR1bGVyElIKFHRyYWZmaWNfc2hhcGluZ19pbmZvGAQgASgLMiAudGVjaF9wcm9maWxlLlRyYWZmaWNTaGFwaW5nSW5mb1ISdHJhZmZpY1NoYXBpbmdJbmZvEiYKD3RlY2hfcHJvZmlsZV9pZBgFIAEoB1INdGVjaFByb2ZpbGVJZCK6AQoRVHJhZmZpY1NjaGVkdWxlcnMSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFQoGdW5pX2lkGAQgASgHUgV1bmlJZBIXCgdwb3J0X25vGAUgASgHUgZwb3J0Tm8SRQoOdHJhZmZpY19zY2hlZHMYAyADKAsyHi50ZWNoX3Byb2ZpbGUuVHJhZmZpY1NjaGVkdWxlclINdHJhZmZpY1NjaGVkcyI2ChVUYWlsRHJvcERpc2NhcmRDb25maWcSHQoKcXVldWVfc2l6ZRgBIAEoB1IJcXVldWVTaXplIoUBChBSZWREaXNjYXJkQ29uZmlnEiMKDW1pbl90aHJlc2hvbGQYASABKAdSDG1pblRocmVzaG9sZBIjCg1tYXhfdGhyZXNob2xkGAIgASgHUgxtYXhUaHJlc2hvbGQSJwoPbWF4X3Byb2JhYmlsaXR5GAMgASgHUg5tYXhQcm9iYWJpbGl0eSKzAQoRV1JlZERpc2NhcmRDb25maWcSNAoFZ3JlZW4YASABKAsyHi50ZWNoX3Byb2ZpbGUuUmVkRGlzY2FyZENvbmZpZ1IFZ3JlZW4SNgoGeWVsbG93GAIgASgLMh4udGVjaF9wcm9maWxlLlJlZERpc2NhcmRDb25maWdSBnllbGxvdxIwCgNyZWQYAyABKAsyHi50ZWNoX3Byb2ZpbGUuUmVkRGlzY2FyZENvbmZpZ1IDcmVkIugCCg1EaXNjYXJkQ29uZmlnEkIKDmRpc2NhcmRfcG9saWN5GAEgASgOMhsudGVjaF9wcm9maWxlLkRpc2NhcmRQb2xpY3lSDWRpc2NhcmRQb2xpY3kSXgoYdGFpbF9kcm9wX2Rpc2NhcmRfY29uZmlnGAIgASgLMiMudGVjaF9wcm9maWxlLlRhaWxEcm9wRGlzY2FyZENvbmZpZ0gAUhV0YWlsRHJvcERpc2NhcmRDb25maWcSTgoScmVkX2Rpc2NhcmRfY29uZmlnGAMgASgLMh4udGVjaF9wcm9maWxlLlJlZERpc2NhcmRDb25maWdIAFIQcmVkRGlzY2FyZENvbmZpZxJRChN3cmVkX2Rpc2NhcmRfY29uZmlnGAQgASgLMh8udGVjaF9wcm9maWxlLldSZWREaXNjYXJkQ29uZmlnSABSEXdyZWREaXNjYXJkQ29uZmlnQhAKDmRpc2NhcmRfY29uZmlnIqUDCgxUcmFmZmljUXVldWUSNQoJZGlyZWN0aW9uGAEgASgOMhcudGVjaF9wcm9maWxlLkRpcmVjdGlvblIJZGlyZWN0aW9uEh0KCmdlbXBvcnRfaWQYAiABKAdSCWdlbXBvcnRJZBIZCghwYml0X21hcBgDIAEoCVIHcGJpdE1hcBIlCg5hZXNfZW5jcnlwdGlvbhgEIAEoCFINYWVzRW5jcnlwdGlvbhJBCgxzY2hlZF9wb2xpY3kYBSABKA4yHi50ZWNoX3Byb2ZpbGUuU2NoZWR1bGluZ1BvbGljeVILc2NoZWRQb2xpY3kSGgoIcHJpb3JpdHkYBiABKAdSCHByaW9yaXR5EhYKBndlaWdodBgHIAEoB1IGd2VpZ2h0EkIKDmRpc2NhcmRfcG9saWN5GAggASgOMhsudGVjaF9wcm9maWxlLkRpc2NhcmRQb2xpY3lSDWRpc2NhcmRQb2xpY3kSQgoOZGlzY2FyZF9jb25maWcYCSABKAsyGy50ZWNoX3Byb2ZpbGUuRGlzY2FyZENvbmZpZ1INZGlzY2FyZENvbmZpZyLaAQoNVHJhZmZpY1F1ZXVlcxIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIVCgZ1bmlfaWQYBCABKAdSBXVuaUlkEhcKB3BvcnRfbm8YBSABKAdSBnBvcnRObxJBCg50cmFmZmljX3F1ZXVlcxgGIAMoCzIaLnRlY2hfcHJvZmlsZS5UcmFmZmljUXVldWVSDXRyYWZmaWNRdWV1ZXMSJgoPdGVjaF9wcm9maWxlX2lkGAcgASgHUg10ZWNoUHJvZmlsZUlkImYKD0luc3RhbmNlQ29udHJvbBIQCgNvbnUYASABKAlSA29udRIQCgN1bmkYAiABKAlSA3VuaRIvChRtYXhfZ2VtX3BheWxvYWRfc2l6ZRgDIAEoCVIRbWF4R2VtUGF5bG9hZFNpemUiggIKC1FUaHJlc2hvbGRzEiEKDHFfdGhyZXNob2xkMRgBIAEoDVILcVRocmVzaG9sZDESIQoMcV90aHJlc2hvbGQyGAIgASgNUgtxVGhyZXNob2xkMhIhCgxxX3RocmVzaG9sZDMYAyABKA1SC3FUaHJlc2hvbGQzEiEKDHFfdGhyZXNob2xkNBgEIAEoDVILcVRocmVzaG9sZDQSIQoMcV90aHJlc2hvbGQ1GAUgASgNUgtxVGhyZXNob2xkNRIhCgxxX3RocmVzaG9sZDYYBiABKA1SC3FUaHJlc2hvbGQ2EiEKDHFfdGhyZXNob2xkNxgHIAEoDVILcVRocmVzaG9sZDciswUKEUdlbVBvcnRBdHRyaWJ1dGVzEh0KCmdlbXBvcnRfaWQYASABKAdSCWdlbXBvcnRJZBIcCgptYXhfcV9zaXplGAIgASgJUghtYXhRU2l6ZRIZCghwYml0X21hcBgDIAEoCVIHcGJpdE1hcBIlCg5hZXNfZW5jcnlwdGlvbhgEIAEoCVINYWVzRW5jcnlwdGlvbhJLChFzY2hlZHVsaW5nX3BvbGljeRgFIAEoDjIeLnRlY2hfcHJvZmlsZS5TY2hlZHVsaW5nUG9saWN5UhBzY2hlZHVsaW5nUG9saWN5Eh0KCnByaW9yaXR5X3EYBiABKAdSCXByaW9yaXR5URIWCgZ3ZWlnaHQYByABKAdSBndlaWdodBJCCg5kaXNjYXJkX3BvbGljeRgIIAEoDjIbLnRlY2hfcHJvZmlsZS5EaXNjYXJkUG9saWN5Ug1kaXNjYXJkUG9saWN5EkUKDmRpc2NhcmRfY29uZmlnGAkgASgLMh4udGVjaF9wcm9maWxlLlJlZERpc2NhcmRDb25maWdSDWRpc2NhcmRDb25maWcSRwoRZGlzY2FyZF9jb25maWdfdjIYDiABKAsyGy50ZWNoX3Byb2ZpbGUuRGlzY2FyZENvbmZpZ1IPZGlzY2FyZENvbmZpZ1YyEiEKDGlzX211bHRpY2FzdBgKIAEoCVILaXNNdWx0aWNhc3QSKAoQbXVsdGljYXN0X2dlbV9pZBgLIAEoB1IObXVsdGljYXN0R2VtSWQSPQobZHluYW1pY19hY2Nlc3NfY29udHJvbF9saXN0GAwgASgJUhhkeW5hbWljQWNjZXNzQ29udHJvbExpc3QSOwoac3RhdGljX2FjY2Vzc19jb250cm9sX2xpc3QYDSABKAlSF3N0YXRpY0FjY2Vzc0NvbnRyb2xMaXN0IqICChNTY2hlZHVsZXJBdHRyaWJ1dGVzEjUKCWRpcmVjdGlvbhgBIAEoDjIXLnRlY2hfcHJvZmlsZS5EaXJlY3Rpb25SCWRpcmVjdGlvbhIZCghhbGxvY19pZBgCIAEoDVIHYWxsb2NJZBI/Cg1hZGRpdGlvbmFsX2J3GAMgASgOMhoudGVjaF9wcm9maWxlLkFkZGl0aW9uYWxCV1IMYWRkaXRpb25hbEJ3EhoKCHByaW9yaXR5GAQgASgHUghwcmlvcml0eRIWCgZ3ZWlnaHQYBSABKAdSBndlaWdodBJECg5xX3NjaGVkX3BvbGljeRgGIAEoDjIeLnRlY2hfcHJvZmlsZS5TY2hlZHVsaW5nUG9saWN5UgxxU2NoZWRQb2xpY3kiwAYKE0VQT05RdWV1ZUF0dHJpYnV0ZXMSHAoKbWF4X3Ffc2l6ZRgBIAEoCVIIbWF4UVNpemUSGQoIcGJpdF9tYXAYAiABKAlSB3BiaXRNYXASHQoKZ2VtcG9ydF9pZBgDIAEoDVIJZ2VtcG9ydElkEiUKDmFlc19lbmNyeXB0aW9uGAQgASgJUg1hZXNFbmNyeXB0aW9uEiEKDHRyYWZmaWNfdHlwZRgFIAEoCVILdHJhZmZpY1R5cGUSNAoWdW5zb2xpY2l0ZWRfZ3JhbnRfc2l6ZRgGIAEoDVIUdW5zb2xpY2l0ZWRHcmFudFNpemUSKQoQbm9taW5hbF9pbnRlcnZhbBgHIAEoDVIPbm9taW5hbEludGVydmFsEjIKFXRvbGVyYXRlZF9wb2xsX2ppdHRlchgIIAEoDVITdG9sZXJhdGVkUG9sbEppdHRlchI+ChtyZXF1ZXN0X3RyYW5zbWlzc2lvbl9wb2xpY3kYCSABKA1SGXJlcXVlc3RUcmFuc21pc3Npb25Qb2xpY3kSHAoKbnVtX3Ffc2V0cxgKIAEoDVIIbnVtUVNldHMSPAoMcV90aHJlc2hvbGRzGAsgASgLMhkudGVjaF9wcm9maWxlLlFUaHJlc2hvbGRzUgtxVGhyZXNob2xkcxJLChFzY2hlZHVsaW5nX3BvbGljeRgMIAEoDjIeLnRlY2hfcHJvZmlsZS5TY2hlZHVsaW5nUG9saWN5UhBzY2hlZHVsaW5nUG9saWN5Eh0KCnByaW9yaXR5X3EYDSABKA1SCXByaW9yaXR5URIWCgZ3ZWlnaHQYDiABKA1SBndlaWdodBJCCg5kaXNjYXJkX3BvbGljeRgPIAEoDjIbLnRlY2hfcHJvZmlsZS5EaXNjYXJkUG9saWN5Ug1kaXNjYXJkUG9saWN5EkUKDmRpc2NhcmRfY29uZmlnGBAgASgLMh4udGVjaF9wcm9maWxlLlJlZERpc2NhcmRDb25maWdSDWRpc2NhcmRDb25maWcSRwoRZGlzY2FyZF9jb25maWdfdjIYESABKAsyGy50ZWNoX3Byb2ZpbGUuRGlzY2FyZENvbmZpZ1IPZGlzY2FyZENvbmZpZ1YyIq4ECgtUZWNoUHJvZmlsZRISCgRuYW1lGAEgASgJUgRuYW1lEhgKB3ZlcnNpb24YAiABKA1SB3ZlcnNpb24SIQoMcHJvZmlsZV90eXBlGAMgASgJUgtwcm9maWxlVHlwZRIiCg1udW1fZ2VtX3BvcnRzGAQgASgNUgtudW1HZW1Qb3J0cxJIChBpbnN0YW5jZV9jb250cm9sGAUgASgLMh0udGVjaF9wcm9maWxlLkluc3RhbmNlQ29udHJvbFIPaW5zdGFuY2VDb250cm9sEkQKDHVzX3NjaGVkdWxlchgGIAEoCzIhLnRlY2hfcHJvZmlsZS5TY2hlZHVsZXJBdHRyaWJ1dGVzUgt1c1NjaGVkdWxlchJECgxkc19zY2hlZHVsZXIYByABKAsyIS50ZWNoX3Byb2ZpbGUuU2NoZWR1bGVyQXR0cmlidXRlc1ILZHNTY2hlZHVsZXISZwogdXBzdHJlYW1fZ2VtX3BvcnRfYXR0cmlidXRlX2xpc3QYCCADKAsyHy50ZWNoX3Byb2ZpbGUuR2VtUG9ydEF0dHJpYnV0ZXNSHHVwc3RyZWFtR2VtUG9ydEF0dHJpYnV0ZUxpc3QSawoiZG93bnN0cmVhbV9nZW1fcG9ydF9hdHRyaWJ1dGVfbGlzdBgJIAMoCzIfLnRlY2hfcHJvZmlsZS5HZW1Qb3J0QXR0cmlidXRlc1IeZG93bnN0cmVhbUdlbVBvcnRBdHRyaWJ1dGVMaXN0IsMDCg9FcG9uVGVjaFByb2ZpbGUSEgoEbmFtZRgBIAEoCVIEbmFtZRIYCgd2ZXJzaW9uGAIgASgNUgd2ZXJzaW9uEiEKDHByb2ZpbGVfdHlwZRgDIAEoCVILcHJvZmlsZVR5cGUSIgoNbnVtX2dlbV9wb3J0cxgEIAEoDVILbnVtR2VtUG9ydHMSSAoQaW5zdGFuY2VfY29udHJvbBgFIAEoCzIdLnRlY2hfcHJvZmlsZS5JbnN0YW5jZUNvbnRyb2xSD2luc3RhbmNlQ29udHJvbBIhCgxwYWNrYWdlX3R5cGUYBiABKAlSC3BhY2thZ2VUeXBlEmQKHXVwc3RyZWFtX3F1ZXVlX2F0dHJpYnV0ZV9saXN0GAcgAygLMiEudGVjaF9wcm9maWxlLkVQT05RdWV1ZUF0dHJpYnV0ZXNSGnVwc3RyZWFtUXVldWVBdHRyaWJ1dGVMaXN0EmgKH2Rvd25zdHJlYW1fcXVldWVfYXR0cmlidXRlX2xpc3QYCCADKAsyIS50ZWNoX3Byb2ZpbGUuRVBPTlF1ZXVlQXR0cmlidXRlc1IcZG93bnN0cmVhbVF1ZXVlQXR0cmlidXRlTGlzdCLrBAoTVGVjaFByb2ZpbGVJbnN0YW5jZRISCgRuYW1lGAEgASgJUgRuYW1lEhgKB3ZlcnNpb24YAiABKA1SB3ZlcnNpb24SMwoVc3Vic2NyaWJlcl9pZGVudGlmaWVyGAMgASgJUhRzdWJzY3JpYmVySWRlbnRpZmllchIhCgxwcm9maWxlX3R5cGUYBCABKAlSC3Byb2ZpbGVUeXBlEiIKDW51bV9nZW1fcG9ydHMYBSABKA1SC251bUdlbVBvcnRzEkgKEGluc3RhbmNlX2NvbnRyb2wYBiABKAsyHS50ZWNoX3Byb2ZpbGUuSW5zdGFuY2VDb250cm9sUg9pbnN0YW5jZUNvbnRyb2wSRAoMdXNfc2NoZWR1bGVyGAcgASgLMiEudGVjaF9wcm9maWxlLlNjaGVkdWxlckF0dHJpYnV0ZXNSC3VzU2NoZWR1bGVyEkQKDGRzX3NjaGVkdWxlchgIIAEoCzIhLnRlY2hfcHJvZmlsZS5TY2hlZHVsZXJBdHRyaWJ1dGVzUgtkc1NjaGVkdWxlchJnCiB1cHN0cmVhbV9nZW1fcG9ydF9hdHRyaWJ1dGVfbGlzdBgJIAMoCzIfLnRlY2hfcHJvZmlsZS5HZW1Qb3J0QXR0cmlidXRlc1IcdXBzdHJlYW1HZW1Qb3J0QXR0cmlidXRlTGlzdBJrCiJkb3duc3RyZWFtX2dlbV9wb3J0X2F0dHJpYnV0ZV9saXN0GAogAygLMh8udGVjaF9wcm9maWxlLkdlbVBvcnRBdHRyaWJ1dGVzUh5kb3duc3RyZWFtR2VtUG9ydEF0dHJpYnV0ZUxpc3QimwQKF0Vwb25UZWNoUHJvZmlsZUluc3RhbmNlEhIKBG5hbWUYASABKAlSBG5hbWUSGAoHdmVyc2lvbhgCIAEoDVIHdmVyc2lvbhIzChVzdWJzY3JpYmVyX2lkZW50aWZpZXIYAyABKAlSFHN1YnNjcmliZXJJZGVudGlmaWVyEiEKDHByb2ZpbGVfdHlwZRgEIAEoCVILcHJvZmlsZVR5cGUSIgoNbnVtX2dlbV9wb3J0cxgFIAEoDVILbnVtR2VtUG9ydHMSGQoIYWxsb2NfaWQYBiABKA1SB2FsbG9jSWQSSAoQaW5zdGFuY2VfY29udHJvbBgHIAEoCzIdLnRlY2hfcHJvZmlsZS5JbnN0YW5jZUNvbnRyb2xSD2luc3RhbmNlQ29udHJvbBIhCgxwYWNrYWdlX3R5cGUYCCABKAlSC3BhY2thZ2VUeXBlEmQKHXVwc3RyZWFtX3F1ZXVlX2F0dHJpYnV0ZV9saXN0GAkgAygLMiEudGVjaF9wcm9maWxlLkVQT05RdWV1ZUF0dHJpYnV0ZXNSGnVwc3RyZWFtUXVldWVBdHRyaWJ1dGVMaXN0EmgKH2Rvd25zdHJlYW1fcXVldWVfYXR0cmlidXRlX2xpc3QYCiADKAsyIS50ZWNoX3Byb2ZpbGUuRVBPTlF1ZXVlQXR0cmlidXRlc1IcZG93bnN0cmVhbVF1ZXVlQXR0cmlidXRlTGlzdCK7AQoQUmVzb3VyY2VJbnN0YW5jZRITCgV0cF9pZBgBIAEoDVIEdHBJZBIhCgxwcm9maWxlX3R5cGUYAiABKAlSC3Byb2ZpbGVUeXBlEjMKFXN1YnNjcmliZXJfaWRlbnRpZmllchgDIAEoCVIUc3Vic2NyaWJlcklkZW50aWZpZXISGQoIYWxsb2NfaWQYBCABKA1SB2FsbG9jSWQSHwoLZ2VtcG9ydF9pZHMYBSADKA1SCmdlbXBvcnRJZHMqPAoJRGlyZWN0aW9uEgwKCFVQU1RSRUFNEAASDgoKRE9XTlNUUkVBTRABEhEKDUJJRElSRUNUSU9OQUwQAio7ChBTY2hlZHVsaW5nUG9saWN5EgcKA1dSUhAAEhIKDlN0cmljdFByaW9yaXR5EAESCgoGSHlicmlkEAIqbgoMQWRkaXRpb25hbEJXEhUKEUFkZGl0aW9uYWxCV19Ob25lEAASEwoPQWRkaXRpb25hbEJXX05BEAESGwoXQWRkaXRpb25hbEJXX0Jlc3RFZmZvcnQQAhIVChFBZGRpdGlvbmFsQldfQXV0bxADKj8KDURpc2NhcmRQb2xpY3kSDAoIVGFpbERyb3AQABINCglXVGFpbERyb3AQARIHCgNSZWQQAhIICgRXUmVkEAMqnAEKHEluZmVycmVkQWRkaXRpb25CV0luZGljYXRpb24SJQohSW5mZXJyZWRBZGRpdGlvbkJXSW5kaWNhdGlvbl9Ob25lEAASKAokSW5mZXJyZWRBZGRpdGlvbkJXSW5kaWNhdGlvbl9Bc3N1cmVkEAESKwonSW5mZXJyZWRBZGRpdGlvbkJXSW5kaWNhdGlvbl9CZXN0RWZmb3J0EAJCWAogb3JnLm9wZW5jb3JkLnZvbHRoYS50ZWNoX3Byb2ZpbGVaNGdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby90ZWNoX3Byb2ZpbGVKyGQKBxIFDgD/AQEK0QQKAQwSAw4AEjLGBCBDb3B5cmlnaHQgKGMpIDIwMTggT3BlbiBOZXR3b3JraW5nIEZvdW5kYXRpb24KCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKCiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2Fi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Ghxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvGiB2b2x0aGFfcHJvdG9zL3RlY2hfcHJvZmlsZS5wcm90bxoedm9sdGhhX3Byb3Rvcy9leHRfY29uZmlnLnByb3RvGh52b2x0aGFfcHJvdG9zL2V4dGVuc2lvbnMucHJvdG8izAQKCkluZGljYXRpb24SMQoHb2x0X2luZBgBIAEoCzIWLm9wZW5vbHQuT2x0SW5kaWNhdGlvbkgAUgZvbHRJbmQSNAoIaW50Zl9pbmQYAiABKAsyFy5vcGVub2x0LkludGZJbmRpY2F0aW9uSABSB2ludGZJbmQSQQoNaW50Zl9vcGVyX2luZBgDIAEoCzIbLm9wZW5vbHQuSW50Zk9wZXJJbmRpY2F0aW9uSABSC2ludGZPcGVySW5kEj4KDG9udV9kaXNjX2luZBgEIAEoCzIaLm9wZW5vbHQuT251RGlzY0luZGljYXRpb25IAFIKb251RGlzY0luZBIxCgdvbnVfaW5kGAUgASgLMhYub3Blbm9sdC5PbnVJbmRpY2F0aW9uSABSBm9udUluZBI0CghvbWNpX2luZBgGIAEoCzIXLm9wZW5vbHQuT21jaUluZGljYXRpb25IAFIHb21jaUluZBI0Cgdwa3RfaW5kGAcgASgLMhkub3Blbm9sdC5QYWNrZXRJbmRpY2F0aW9uSABSBnBrdEluZBI4Cgpwb3J0X3N0YXRzGAggASgLMhcub3Blbm9sdC5Qb3J0U3RhdGlzdGljc0gAUglwb3J0U3RhdHMSOAoKZmxvd19zdGF0cxgJIAEoCzIXLm9wZW5vbHQuRmxvd1N0YXRpc3RpY3NIAFIJZmxvd1N0YXRzEjcKCWFsYXJtX2luZBgKIAEoCzIYLm9wZW5vbHQuQWxhcm1JbmRpY2F0aW9uSABSCGFsYXJtSW5kQgYKBGRhdGEi6w0KD0FsYXJtSW5kaWNhdGlvbhIxCgdsb3NfaW5kGAEgASgLMhYub3Blbm9sdC5Mb3NJbmRpY2F0aW9uSABSBmxvc0luZBJECg5keWluZ19nYXNwX2luZBgCIAEoCzIcLm9wZW5vbHQuRHlpbmdHYXNwSW5kaWNhdGlvbkgAUgxkeWluZ0dhc3BJbmQSQQoNb251X2FsYXJtX2luZBgDIAEoCzIbLm9wZW5vbHQuT251QWxhcm1JbmRpY2F0aW9uSABSC29udUFsYXJtSW5kElcKFG9udV9zdGFydHVwX2ZhaWxfaW5kGAQgASgLMiQub3Blbm9sdC5PbnVTdGFydHVwRmFpbHVyZUluZGljYXRpb25IAFIRb251U3RhcnR1cEZhaWxJbmQSWgoWb251X3NpZ25hbF9kZWdyYWRlX2luZBgFIAEoCzIjLm9wZW5vbHQuT251U2lnbmFsRGVncmFkZUluZGljYXRpb25IAFITb251U2lnbmFsRGVncmFkZUluZBJbChdvbnVfZHJpZnRfb2Zfd2luZG93X2luZBgGIAEoCzIjLm9wZW5vbHQuT251RHJpZnRPZldpbmRvd0luZGljYXRpb25IAFITb251RHJpZnRPZldpbmRvd0luZBJUChFvbnVfbG9zc19vbWNpX2luZBgHIAEoCzInLm9wZW5vbHQuT251TG9zc09mT21jaUNoYW5uZWxJbmRpY2F0aW9uSABSDm9udUxvc3NPbWNpSW5kElcKFG9udV9zaWduYWxzX2ZhaWxfaW5kGAggASgLMiQub3Blbm9sdC5PbnVTaWduYWxzRmFpbHVyZUluZGljYXRpb25IAFIRb251U2lnbmFsc0ZhaWxJbmQSTwoMb251X3Rpd2lfaW5kGAkgASgLMisub3Blbm9sdC5PbnVUcmFuc21pc3Npb25JbnRlcmZlcmVuY2VXYXJuaW5nSABSCm9udVRpd2lJbmQSYAoXb251X2FjdGl2YXRpb25fZmFpbF9pbmQYCiABKAsyJy5vcGVub2x0Lk9udUFjdGl2YXRpb25GYWlsdXJlSW5kaWNhdGlvbkgAUhRvbnVBY3RpdmF0aW9uRmFpbEluZBJgChhvbnVfcHJvY2Vzc2luZ19lcnJvcl9pbmQYCyABKAsyJS5vcGVub2x0Lk9udVByb2Nlc3NpbmdFcnJvckluZGljYXRpb25IAFIVb251UHJvY2Vzc2luZ0Vycm9ySW5kEmUKGW9udV9sb3NzX29mX3N5bmNfZmFpbF9pbmQYDCABKAsyKi5vcGVub2x0Lk9udUxvc3NPZktleVN5bmNGYWlsdXJlSW5kaWNhdGlvbkgAUhRvbnVMb3NzT2ZTeW5jRmFpbEluZBJVChVvbnVfaXR1X3Bvbl9zdGF0c19pbmQYDSABKAsyIS5vcGVub2x0Lk9udUl0dVBvblN0YXRzSW5kaWNhdGlvbkgAUhFvbnVJdHVQb25TdGF0c0luZBJsChxvbnVfZGVhY3RpdmF0aW9uX2ZhaWx1cmVfaW5kGA4gASgLMikub3Blbm9sdC5PbnVEZWFjdGl2YXRpb25GYWlsdXJlSW5kaWNhdGlvbkgAUhlvbnVEZWFjdGl2YXRpb25GYWlsdXJlSW5kElcKFW9udV9yZW1vdGVfZGVmZWN0X2luZBgPIAEoCzIiLm9wZW5vbHQuT251UmVtb3RlRGVmZWN0SW5kaWNhdGlvbkgAUhJvbnVSZW1vdGVEZWZlY3RJbmQScwocb251X2xvc3NfZ2VtX2RlbGluZWF0aW9uX2luZBgQIAEoCzIxLm9wZW5vbHQuT251TG9zc09mR0VNQ2hhbm5lbERlbGluZWF0aW9uSW5kaWNhdGlvbkgAUhhvbnVMb3NzR2VtRGVsaW5lYXRpb25JbmQSdgogb251X3BoeXNpY2FsX2VxdWlwbWVudF9lcnJvcl9pbmQYESABKAsyLC5vcGVub2x0Lk9udVBoeXNpY2FsRXF1aXBtZW50RXJyb3JJbmRpY2F0aW9uSABSHG9udVBoeXNpY2FsRXF1aXBtZW50RXJyb3JJbmQSWwoTb251X2xvc3Nfb2ZfYWNrX2luZBgSIAEoCzIrLm9wZW5vbHQuT251TG9zc09mQWNrbm93bGVkZ2VtZW50SW5kaWNhdGlvbkgAUg9vbnVMb3NzT2ZBY2tJbmQSbwobb251X2RpZmZfcmVhY2hfZXhjZWVkZWRfaW5kGBMgASgLMi8ub3Blbm9sdC5PbnVEaWZmZXJlbnRpYWxSZWFjaEV4Y2VlZGVkSW5kaWNhdGlvbkgAUhdvbnVEaWZmUmVhY2hFeGNlZWRlZEluZEIGCgRkYXRhIi4KDU9sdEluZGljYXRpb24SHQoKb3Blcl9zdGF0ZRgBIAEoCVIJb3BlclN0YXRlIkgKDkludGZJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIdCgpvcGVyX3N0YXRlGAIgASgJUglvcGVyU3RhdGUiaAoRT251RGlzY0luZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEjoKDXNlcmlhbF9udW1iZXIYAiABKAsyFS5vcGVub2x0LlNlcmlhbE51bWJlclIMc2VyaWFsTnVtYmVyIpMECg1PbnVJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEh0KCm9wZXJfc3RhdGUYAyABKAlSCW9wZXJTdGF0ZRIfCgthZG1pbl9zdGF0ZRgFIAEoCVIKYWRtaW5TdGF0ZRI6Cg1zZXJpYWxfbnVtYmVyGAQgASgLMhUub3Blbm9sdC5TZXJpYWxOdW1iZXJSDHNlcmlhbE51bWJlchJMCgtmYWlsX3JlYXNvbhgGIAEoDjIrLm9wZW5vbHQuT251SW5kaWNhdGlvbi5BY3RpdmF0aW9uRmFpbFJlYXNvblIKZmFpbFJlYXNvbiKHAgoUQWN0aXZhdGlvbkZhaWxSZWFzb24SIwofT05VX0FDVElWQVRJT05fRkFJTF9SRUFTT05fTk9ORRAAEiYKIk9OVV9BQ1RJVkFUSU9OX0ZBSUxfUkVBU09OX1JBTkdJTkcQARI2CjJPTlVfQUNUSVZBVElPTl9GQUlMX1JFQVNPTl9QQVNTV09SRF9BVVRIRU5USUNBVElPThACEiIKHk9OVV9BQ1RJVkFUSU9OX0ZBSUxfUkVBU09OX0xPUxADEiEKHU9OVV9BQ1RJVkFUSU9OX0ZBSUxfT05VX0FMQVJNEAQSIwofT05VX0FDVElWQVRJT05fRkFJTF9TV0lUQ0hfT1ZFUhAFIoIEChJJbnRmT3BlckluZGljYXRpb24SEgoEdHlwZRgBIAEoCVIEdHlwZRIXCgdpbnRmX2lkGAIgASgHUgZpbnRmSWQSHQoKb3Blcl9zdGF0ZRgDIAEoCVIJb3BlclN0YXRlEhQKBXNwZWVkGAQgASgHUgVzcGVlZBIeCgp0ZWNobm9sb2d5GAUgASgJUgp0ZWNobm9sb2d5EkUKBnJhbmdlcxgGIAEoCzItLm9wZW5vbHQuSW50Zk9wZXJJbmRpY2F0aW9uLlBPTlJlc291cmNlUmFuZ2VzUgZyYW5nZXMaogIKEVBPTlJlc291cmNlUmFuZ2VzEkgKBXBvb2xzGAMgAygLMjIub3Blbm9sdC5JbnRmT3BlckluZGljYXRpb24uUE9OUmVzb3VyY2VSYW5nZXMuUG9vbFIFcG9vbHMawgEKBFBvb2wSTwoEdHlwZRgBIAEoDjI7Lm9wZW5vbHQuSW50Zk9wZXJJbmRpY2F0aW9uLlBPTlJlc291cmNlUmFuZ2VzLlBvb2wuUG9vbFR5cGVSBHR5cGUSFAoFc3RhcnQYAyABKAdSBXN0YXJ0EhAKA2VuZBgEIAEoB1IDZW5kIkEKCFBvb2xUeXBlEgoKBk9OVV9JRBAAEgwKCEFMTE9DX0lEEAESDgoKR0VNUE9SVF9JRBACEgsKB0ZMT1dfSUQQAyJSCg5PbWNpSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIQCgNwa3QYAyABKAxSA3BrdCLxAQoQUGFja2V0SW5kaWNhdGlvbhIbCglpbnRmX3R5cGUYBSABKAlSCGludGZUeXBlEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYCCABKAdSBW9udUlkEhUKBnVuaV9pZBgJIAEoB1IFdW5pSWQSHQoKZ2VtcG9ydF9pZBgCIAEoB1IJZ2VtcG9ydElkEhcKB2Zsb3dfaWQYAyABKAdSBmZsb3dJZBIXCgdwb3J0X25vGAYgASgHUgZwb3J0Tm8SFgoGY29va2llGAcgASgGUgZjb29raWUSEAoDcGt0GAQgASgMUgNwa3QiJAoJSW50ZXJmYWNlEhcKB2ludGZfaWQYASABKAdSBmludGZJZCI8CglIZWFydGJlYXQSLwoTaGVhcnRiZWF0X3NpZ25hdHVyZRgBIAEoB1ISaGVhcnRiZWF0U2lnbmF0dXJlIqwBCgNPbnUSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSOgoNc2VyaWFsX251bWJlchgDIAEoCzIVLm9wZW5vbHQuU2VyaWFsTnVtYmVyUgxzZXJpYWxOdW1iZXISEAoDcGlyGAQgASgHUgNwaXISJwoPb21jY19lbmNyeXB0aW9uGAUgASgIUg5vbWNjRW5jcnlwdGlvbiKxAQoST251TG9naWNhbERpc3RhbmNlEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEjkKGWxvZ2ljYWxfb251X2Rpc3RhbmNlX3plcm8YAyABKAdSFmxvZ2ljYWxPbnVEaXN0YW5jZVplcm8SMAoUbG9naWNhbF9vbnVfZGlzdGFuY2UYBCABKAdSEmxvZ2ljYWxPbnVEaXN0YW5jZSJLCgdPbWNpTXNnEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhAKA3BrdBgDIAEoDFIDcGt0IoUBCglPbnVQYWNrZXQSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFwoHcG9ydF9ubxgEIAEoB1IGcG9ydE5vEh0KCmdlbXBvcnRfaWQYBSABKAdSCWdlbXBvcnRJZBIQCgNwa3QYAyABKAxSA3BrdCI5CgxVcGxpbmtQYWNrZXQSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhAKA3BrdBgCIAEoDFIDcGt0IpsHCgpEZXZpY2VJbmZvEhYKBnZlbmRvchgBIAEoCVIGdmVuZG9yEhQKBW1vZGVsGAIgASgJUgVtb2RlbBIpChBoYXJkd2FyZV92ZXJzaW9uGAMgASgJUg9oYXJkd2FyZVZlcnNpb24SKQoQZmlybXdhcmVfdmVyc2lvbhgEIAEoCVIPZmlybXdhcmVWZXJzaW9uEhsKCWRldmljZV9pZBgQIAEoCVIIZGV2aWNlSWQSMAoUZGV2aWNlX3NlcmlhbF9udW1iZXIYESABKAlSEmRldmljZVNlcmlhbE51bWJlchIxChRwcmV2aW91c2x5X2Nvbm5lY3RlZBgTIAEoCFITcHJldmlvdXNseUNvbm5lY3RlZBIbCglwb25fcG9ydHMYDCABKAdSCHBvblBvcnRzEkAKBnJhbmdlcxgPIAMoCzIoLm9wZW5vbHQuRGV2aWNlSW5mby5EZXZpY2VSZXNvdXJjZVJhbmdlc1IGcmFuZ2VzGpUEChREZXZpY2VSZXNvdXJjZVJhbmdlcxIZCghpbnRmX2lkcxgBIAMoB1IHaW50ZklkcxIeCgp0ZWNobm9sb2d5GAIgASgJUgp0ZWNobm9sb2d5EkMKBXBvb2xzGAMgAygLMi0ub3Blbm9sdC5EZXZpY2VJbmZvLkRldmljZVJlc291cmNlUmFuZ2VzLlBvb2xSBXBvb2xzGvwCCgRQb29sEkoKBHR5cGUYASABKA4yNi5vcGVub2x0LkRldmljZUluZm8uRGV2aWNlUmVzb3VyY2VSYW5nZXMuUG9vbC5Qb29sVHlwZVIEdHlwZRJTCgdzaGFyaW5nGAIgASgOMjkub3Blbm9sdC5EZXZpY2VJbmZvLkRldmljZVJlc291cmNlUmFuZ2VzLlBvb2wuU2hhcmluZ1R5cGVSB3NoYXJpbmcSFAoFc3RhcnQYAyABKAdSBXN0YXJ0EhAKA2VuZBgEIAEoB1IDZW5kIkEKCFBvb2xUeXBlEgoKBk9OVV9JRBAAEgwKCEFMTE9DX0lEEAESDgoKR0VNUE9SVF9JRBACEgsKB0ZMT1dfSUQQAyJoCgtTaGFyaW5nVHlwZRIWChJERURJQ0FURURfUEVSX0lOVEYQABIfChtTSEFSRURfQllfQUxMX0lOVEZfQUxMX1RFQ0gQARIgChxTSEFSRURfQllfQUxMX0lOVEZfU0FNRV9URUNIEAJKBAgFEAxKBAgNEA5KBAgOEA8ihAMKCkNsYXNzaWZpZXISFQoGb190cGlkGAEgASgHUgVvVHBpZBITCgVvX3ZpZBgCIAEoB1IEb1ZpZBIVCgZpX3RwaWQYAyABKAdSBWlUcGlkEhMKBWlfdmlkGAQgASgHUgRpVmlkEhcKB29fcGJpdHMYBSABKAdSBm9QYml0cxIXCgdpX3BiaXRzGAYgASgHUgZpUGJpdHMSGQoIZXRoX3R5cGUYByABKAdSB2V0aFR5cGUSFwoHZHN0X21hYxgIIAEoDFIGZHN0TWFjEhcKB3NyY19tYWMYCSABKAxSBnNyY01hYxIZCghpcF9wcm90bxgKIAEoB1IHaXBQcm90bxIVCgZkc3RfaXAYCyABKAdSBWRzdElwEhUKBnNyY19pcBgMIAEoB1IFc3JjSXASGQoIc3JjX3BvcnQYDSABKAdSB3NyY1BvcnQSGQoIZHN0X3BvcnQYDiABKAdSB2RzdFBvcnQSIAoMcGt0X3RhZ190eXBlGA8gASgJUgpwa3RUYWdUeXBlIoUDCglBY3Rpb25DbWQSIgoNYWRkX291dGVyX3RhZxgBIAEoCFILYWRkT3V0ZXJUYWcSKAoQcmVtb3ZlX291dGVyX3RhZxgCIAEoCFIOcmVtb3ZlT3V0ZXJUYWcSIAoMdHJhcF90b19ob3N0GAMgASgIUgp0cmFwVG9Ib3N0EiwKEnJlbWFya19vdXRlcl9wYml0cxgEIAEoCFIQcmVtYXJrT3V0ZXJQYml0cxIsChJyZW1hcmtfaW5uZXJfcGJpdHMYBSABKAhSEHJlbWFya0lubmVyUGJpdHMSIgoNYWRkX2lubmVyX3RhZxgGIAEoCFILYWRkSW5uZXJUYWcSKAoQcmVtb3ZlX2lubmVyX3RhZxgHIAEoCFIOcmVtb3ZlSW5uZXJUYWcSLgoTdHJhbnNsYXRlX2lubmVyX3RhZxgIIAEoCFIRdHJhbnNsYXRlSW5uZXJUYWcSLgoTdHJhbnNsYXRlX291dGVyX3RhZxgJIAEoCFIRdHJhbnNsYXRlT3V0ZXJUYWciuAEKBkFjdGlvbhIkCgNjbWQYASABKAsyEi5vcGVub2x0LkFjdGlvbkNtZFIDY21kEhMKBW9fdmlkGAIgASgHUgRvVmlkEhcKB29fcGJpdHMYAyABKAdSBm9QYml0cxIVCgZvX3RwaWQYBCABKAdSBW9UcGlkEhMKBWlfdmlkGAUgASgHUgRpVmlkEhcKB2lfcGJpdHMYBiABKAdSBmlQYml0cxIVCgZpX3RwaWQYByABKAdSBWlUcGlkIscGCgRGbG93EiQKDmFjY2Vzc19pbnRmX2lkGAEgASgPUgxhY2Nlc3NJbnRmSWQSFQoGb251X2lkGAIgASgPUgVvbnVJZBIVCgZ1bmlfaWQYCyABKA9SBXVuaUlkEhcKB2Zsb3dfaWQYAyABKAZSBmZsb3dJZBIqChFzeW1tZXRyaWNfZmxvd19pZBgSIAEoBlIPc3ltbWV0cmljRmxvd0lkEhsKCWZsb3dfdHlwZRgEIAEoCVIIZmxvd1R5cGUSGQoIYWxsb2NfaWQYCiABKA9SB2FsbG9jSWQSJgoPbmV0d29ya19pbnRmX2lkGAUgASgPUg1uZXR3b3JrSW50ZklkEh0KCmdlbXBvcnRfaWQYBiABKA9SCWdlbXBvcnRJZBIzCgpjbGFzc2lmaWVyGAcgASgLMhMub3Blbm9sdC5DbGFzc2lmaWVyUgpjbGFzc2lmaWVyEicKBmFjdGlvbhgIIAEoCzIPLm9wZW5vbHQuQWN0aW9uUgZhY3Rpb24SGgoIcHJpb3JpdHkYCSABKA9SCHByaW9yaXR5EhYKBmNvb2tpZRgMIAEoBlIGY29va2llEhcKB3BvcnRfbm8YDSABKAdSBnBvcnRObxIZCghncm91cF9pZBgOIAEoB1IHZ3JvdXBJZBImCg90ZWNoX3Byb2ZpbGVfaWQYDyABKAdSDXRlY2hQcm9maWxlSWQSJQoOcmVwbGljYXRlX2Zsb3cYECABKAhSDXJlcGxpY2F0ZUZsb3cSSAoPcGJpdF90b19nZW1wb3J0GBEgAygLMiAub3Blbm9sdC5GbG93LlBiaXRUb0dlbXBvcnRFbnRyeVINcGJpdFRvR2VtcG9ydBJFCg5nZW1wb3J0X3RvX2FlcxgTIAMoCzIfLm9wZW5vbHQuRmxvdy5HZW1wb3J0VG9BZXNFbnRyeVIMZ2VtcG9ydFRvQWVzGkAKElBiaXRUb0dlbXBvcnRFbnRyeRIQCgNrZXkYASABKAdSA2tleRIUCgV2YWx1ZRgCIAEoB1IFdmFsdWU6AjgBGj8KEUdlbXBvcnRUb0Flc0VudHJ5EhAKA2tleRgBIAEoB1IDa2V5EhQKBXZhbHVlGAIgASgIUgV2YWx1ZToCOAEiVAoMU2VyaWFsTnVtYmVyEhsKCXZlbmRvcl9pZBgBIAEoDFIIdmVuZG9ySWQSJwoPdmVuZG9yX3NwZWNpZmljGAIgASgMUg52ZW5kb3JTcGVjaWZpYyL+CwoOUG9ydFN0YXRpc3RpY3MSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhkKCHJ4X2J5dGVzGAIgASgGUgdyeEJ5dGVzEh0KCnJ4X3BhY2tldHMYAyABKAZSCXJ4UGFja2V0cxIoChByeF91Y2FzdF9wYWNrZXRzGAQgASgGUg5yeFVjYXN0UGFja2V0cxIoChByeF9tY2FzdF9wYWNrZXRzGAUgASgGUg5yeE1jYXN0UGFja2V0cxIoChByeF9iY2FzdF9wYWNrZXRzGAYgASgGUg5yeEJjYXN0UGFja2V0cxIoChByeF9lcnJvcl9wYWNrZXRzGAcgASgGUg5yeEVycm9yUGFja2V0cxIbCglyeF9mcmFtZXMYESABKAZSCHJ4RnJhbWVzEiAKDHJ4X2ZyYW1lc182NBgSIAEoBlIKcnhGcmFtZXM2NBInChByeF9mcmFtZXNfNjVfMTI3GBMgASgGUg1yeEZyYW1lczY1MTI3EikKEXJ4X2ZyYW1lc18xMjhfMjU1GBQgASgGUg5yeEZyYW1lczEyODI1NRIpChFyeF9mcmFtZXNfMjU2XzUxMRgVIAEoBlIOcnhGcmFtZXMyNTY1MTESKwoScnhfZnJhbWVzXzUxMl8xMDIzGBYgASgGUg9yeEZyYW1lczUxMjEwMjMSLQoTcnhfZnJhbWVzXzEwMjRfMTUxOBgXIAEoBlIQcnhGcmFtZXMxMDI0MTUxOBItChNyeF9mcmFtZXNfMTUxOV8yMDQ3GBggASgGUhByeEZyYW1lczE1MTkyMDQ3Ei0KE3J4X2ZyYW1lc18yMDQ4XzQwOTUYGSABKAZSEHJ4RnJhbWVzMjA0ODQwOTUSLQoTcnhfZnJhbWVzXzQwOTZfOTIxNhgaIAEoBlIQcnhGcmFtZXM0MDk2OTIxNhIvChRyeF9mcmFtZXNfOTIxN18xNjM4MxgbIAEoBlIRcnhGcmFtZXM5MjE3MTYzODMSIgoNcnhfY3JjX2Vycm9ycxgOIAEoBlILcnhDcmNFcnJvcnMSGQoIdHhfYnl0ZXMYCCABKAZSB3R4Qnl0ZXMSHQoKdHhfcGFja2V0cxgJIAEoBlIJdHhQYWNrZXRzEigKEHR4X3VjYXN0X3BhY2tldHMYCiABKAZSDnR4VWNhc3RQYWNrZXRzEigKEHR4X21jYXN0X3BhY2tldHMYCyABKAZSDnR4TWNhc3RQYWNrZXRzEigKEHR4X2JjYXN0X3BhY2tldHMYDCABKAZSDnR4QmNhc3RQYWNrZXRzEigKEHR4X2Vycm9yX3BhY2tldHMYDSABKAZSDnR4RXJyb3JQYWNrZXRzEhsKCXR4X2ZyYW1lcxgcIAEoBlIIdHhGcmFtZXMSIAoMdHhfZnJhbWVzXzY0GB0gASgGUgp0eEZyYW1lczY0EicKEHR4X2ZyYW1lc182NV8xMjcYHiABKAZSDXR4RnJhbWVzNjUxMjcSKQoRdHhfZnJhbWVzXzEyOF8yNTUYHyABKAZSDnR4RnJhbWVzMTI4MjU1EikKEXR4X2ZyYW1lc18yNTZfNTExGCAgASgGUg50eEZyYW1lczI1NjUxMRIrChJ0eF9mcmFtZXNfNTEyXzEwMjMYISABKAZSD3R4RnJhbWVzNTEyMTAyMxItChN0eF9mcmFtZXNfMTAyNF8xNTE4GCIgASgGUhB0eEZyYW1lczEwMjQxNTE4Ei0KE3R4X2ZyYW1lc18xNTE5XzIwNDcYIyABKAZSEHR4RnJhbWVzMTUxOTIwNDcSLQoTdHhfZnJhbWVzXzIwNDhfNDA5NRgkIAEoBlIQdHhGcmFtZXMyMDQ4NDA5NRItChN0eF9mcmFtZXNfNDA5Nl85MjE2GCUgASgGUhB0eEZyYW1lczQwOTY5MjE2Ei8KFHR4X2ZyYW1lc185MjE3XzE2MzgzGCYgASgGUhF0eEZyYW1lczkyMTcxNjM4MxIdCgpiaXBfZXJyb3JzGA8gASgGUgliaXBFcnJvcnMSHAoJdGltZXN0YW1wGBAgASgHUgl0aW1lc3RhbXAi5gcKDU9udVN0YXRpc3RpY3MSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSJQoOcG9zaXRpdmVfZHJpZnQYAyABKAZSDXBvc2l0aXZlRHJpZnQSJQoObmVnYXRpdmVfZHJpZnQYBCABKAZSDW5lZ2F0aXZlRHJpZnQSOAoYZGVsaW1pdGVyX21pc3NfZGV0ZWN0aW9uGAUgASgGUhZkZWxpbWl0ZXJNaXNzRGV0ZWN0aW9uEh0KCmJpcF9lcnJvcnMYBiABKAZSCWJpcEVycm9ycxIbCgliaXBfdW5pdHMYByABKAZSCGJpcFVuaXRzEjIKFWZlY19jb3JyZWN0ZWRfc3ltYm9scxgIIAEoBlITZmVjQ29ycmVjdGVkU3ltYm9scxI2ChdmZWNfY29kZXdvcmRzX2NvcnJlY3RlZBgJIAEoBlIVZmVjQ29kZXdvcmRzQ29ycmVjdGVkEj4KG2ZlY19jb2Rld29yZHNfdW5jb3JyZWN0YWJsZRgKIAEoBlIZZmVjQ29kZXdvcmRzVW5jb3JyZWN0YWJsZRIjCg1mZWNfY29kZXdvcmRzGAsgASgGUgxmZWNDb2Rld29yZHMSLgoTZmVjX2NvcnJlY3RlZF91bml0cxgMIAEoBlIRZmVjQ29ycmVjdGVkVW5pdHMSJgoPeGdlbV9rZXlfZXJyb3JzGA0gASgGUg14Z2VtS2V5RXJyb3JzEhsKCXhnZW1fbG9zcxgOIAEoBlIIeGdlbUxvc3MSJgoPcnhfcGxvYW1zX2Vycm9yGA8gASgGUg1yeFBsb2Ftc0Vycm9yEisKEnJ4X3Bsb2Ftc19ub25faWRsZRgQIAEoBlIPcnhQbG9hbXNOb25JZGxlEhcKB3J4X29tY2kYESABKAZSBnJ4T21jaRI4ChlyeF9vbWNpX3BhY2tldHNfY3JjX2Vycm9yGBIgASgGUhVyeE9tY2lQYWNrZXRzQ3JjRXJyb3ISGQoIcnhfYnl0ZXMYEyABKAZSB3J4Qnl0ZXMSHQoKcnhfcGFja2V0cxgUIAEoBlIJcnhQYWNrZXRzEhkKCHR4X2J5dGVzGBUgASgGUgd0eEJ5dGVzEh0KCnR4X3BhY2tldHMYFiABKAZSCXR4UGFja2V0cxIhCgxiZXJfcmVwb3J0ZWQYFyABKAZSC2JlclJlcG9ydGVkEh8KC2xjZGdfZXJyb3JzGBggASgGUgpsY2RnRXJyb3JzEh0KCnJkaV9lcnJvcnMYGSABKAZSCXJkaUVycm9ycxIcCgl0aW1lc3RhbXAYGiABKAdSCXRpbWVzdGFtcCLdAQoRR2VtUG9ydFN0YXRpc3RpY3MSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEh0KCmdlbXBvcnRfaWQYAiABKAdSCWdlbXBvcnRJZBIdCgpyeF9wYWNrZXRzGAMgASgGUglyeFBhY2tldHMSGQoIcnhfYnl0ZXMYBCABKAZSB3J4Qnl0ZXMSHQoKdHhfcGFja2V0cxgFIAEoBlIJdHhQYWNrZXRzEhkKCHR4X2J5dGVzGAYgASgGUgd0eEJ5dGVzEhwKCXRpbWVzdGFtcBgaIAEoB1IJdGltZXN0YW1wIrsBCg5GbG93U3RhdGlzdGljcxIXCgdmbG93X2lkGAEgASgHUgZmbG93SWQSGQoIcnhfYnl0ZXMYAiABKAZSB3J4Qnl0ZXMSHQoKcnhfcGFja2V0cxgDIAEoBlIJcnhQYWNrZXRzEhkKCHR4X2J5dGVzGAggASgGUgd0eEJ5dGVzEh0KCnR4X3BhY2tldHMYCSABKAZSCXR4UGFja2V0cxIcCgl0aW1lc3RhbXAYECABKAdSCXRpbWVzdGFtcCJACg1Mb3NJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIWCgZzdGF0dXMYAiABKAlSBnN0YXR1cyJdChNEeWluZ0dhc3BJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzIqMCChJPbnVBbGFybUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSHQoKbG9zX3N0YXR1cxgDIAEoCVIJbG9zU3RhdHVzEh0KCmxvYl9zdGF0dXMYBCABKAlSCWxvYlN0YXR1cxIoChBsb3BjX21pc3Nfc3RhdHVzGAUgASgJUg5sb3BjTWlzc1N0YXR1cxIxChVsb3BjX21pY19lcnJvcl9zdGF0dXMYBiABKAlSEmxvcGNNaWNFcnJvclN0YXR1cxIfCgtsb2ZpX3N0YXR1cxgHIAEoCVIKbG9maVN0YXR1cxIhCgxsb2FtaV9zdGF0dXMYCCABKAlSC2xvYW1pU3RhdHVzImUKG09udVN0YXJ0dXBGYWlsdXJlSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cyKZAQoaT251U2lnbmFsRGVncmFkZUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSMwoWaW52ZXJzZV9iaXRfZXJyb3JfcmF0ZRgEIAEoB1ITaW52ZXJzZUJpdEVycm9yUmF0ZSKTAQoaT251RHJpZnRPZldpbmRvd0luZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSFAoFZHJpZnQYBCABKAdSBWRyaWZ0EhcKB25ld19lcWQYBSABKAdSBm5ld0VxZCJoCh5PbnVMb3NzT2ZPbWNpQ2hhbm5lbEluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMimgEKG09udVNpZ25hbHNGYWlsdXJlSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cxIzChZpbnZlcnNlX2JpdF9lcnJvcl9yYXRlGAQgASgHUhNpbnZlcnNlQml0RXJyb3JSYXRlIoIBCiJPbnVUcmFuc21pc3Npb25JbnRlcmZlcmVuY2VXYXJuaW5nEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEhQKBWRyaWZ0GAQgASgHUgVkcmlmdCJxCh5PbnVBY3RpdmF0aW9uRmFpbHVyZUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSHwoLZmFpbF9yZWFzb24YAyABKAdSCmZhaWxSZWFzb24iawohT251TG9zc09mS2V5U3luY0ZhaWx1cmVJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzIlQKElJkaUVycm9ySW5kaWNhdGlvbhImCg9yZGlfZXJyb3JfY291bnQYASABKAZSDXJkaUVycm9yQ291bnQSFgoGc3RhdHVzGAIgASgJUgZzdGF0dXMilgEKGE9udUl0dVBvblN0YXRzSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBJBCg1yZGlfZXJyb3JfaW5kGAMgASgLMhsub3Blbm9sdC5SZGlFcnJvckluZGljYXRpb25IAFILcmRpRXJyb3JJbmRCBwoFc3RhdHMiTgocT251UHJvY2Vzc2luZ0Vycm9ySW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZCJqCiBPbnVEZWFjdGl2YXRpb25GYWlsdXJlSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cyJqChlPbnVSZW1vdGVEZWZlY3RJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEh0KCnJkaV9lcnJvcnMYAyABKAZSCXJkaUVycm9ycyKhAQooT251TG9zc09mR0VNQ2hhbm5lbERlbGluZWF0aW9uSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cxItChJkZWxpbmVhdGlvbl9lcnJvcnMYBCABKAdSEWRlbGluZWF0aW9uRXJyb3JzIm0KI09udVBoeXNpY2FsRXF1aXBtZW50RXJyb3JJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzImwKIk9udUxvc3NPZkFja25vd2xlZGdlbWVudEluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMijAEKJk9udURpZmZlcmVudGlhbFJlYWNoRXhjZWVkZWRJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEhoKCGRpc3RhbmNlGAQgASgHUghkaXN0YW5jZSL2AQoLR3JvdXBNZW1iZXISIQoMaW50ZXJmYWNlX2lkGAEgASgNUgtpbnRlcmZhY2VJZBJJCg5pbnRlcmZhY2VfdHlwZRgCIAEoDjIiLm9wZW5vbHQuR3JvdXBNZW1iZXIuSW50ZXJmYWNlVHlwZVINaW50ZXJmYWNlVHlwZRIeCgtnZW1fcG9ydF9pZBgDIAEoDVIJZ2VtUG9ydElkEhoKCHByaW9yaXR5GAQgASgNUghwcmlvcml0eSI9Cg1JbnRlcmZhY2VUeXBlEgcKA1BPThAAEhAKDEVQT05fMUdfUEFUSBABEhEKDUVQT05fMTBHX1BBVEgQAiKGAgoFR3JvdXASGQoIZ3JvdXBfaWQYASABKA1SB2dyb3VwSWQSPAoHY29tbWFuZBgCIAEoDjIiLm9wZW5vbHQuR3JvdXAuR3JvdXBNZW1iZXJzQ29tbWFuZFIHY29tbWFuZBIuCgdtZW1iZXJzGAMgAygLMhQub3Blbm9sdC5Hcm91cE1lbWJlclIHbWVtYmVycxInCgZhY3Rpb24YBCABKAsyDy5vcGVub2x0LkFjdGlvblIGYWN0aW9uIksKE0dyb3VwTWVtYmVyc0NvbW1hbmQSDwoLQUREX01FTUJFUlMQABISCg5SRU1PVkVfTUVNQkVSUxABEg8KC1NFVF9NRU1CRVJTEAIiXQoKVmFsdWVQYXJhbRIeCgNvbnUYASABKAsyDC5vcGVub2x0Lk9udVIDb251Ei8KBXZhbHVlGAIgASgOMhkuZXh0ZW5zaW9uLlZhbHVlVHlwZS5UeXBlUgV2YWx1ZSLDAgoOUG9uUnhQb3dlckRhdGESFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSUgoLZmFpbF9yZWFzb24YBCABKA4yMS5vcGVub2x0LlBvblJ4UG93ZXJEYXRhLlJzc2lNZWFzdXJlbWVudEZhaWxSZWFzb25SCmZhaWxSZWFzb24SKQoRcnhfcG93ZXJfbWVhbl9kYm0YBSABKAFSDnJ4UG93ZXJNZWFuRGJtImoKGVJzc2lNZWFzdXJlbWVudEZhaWxSZWFzb24SFAoQRkFJTF9SRUFTT05fTk9ORRAAEhwKGEZBSUxfUkVBU09OX05PX0RFTElNSVRFUhABEhkKFUZBSUxfUkVBU09OX05PX0FDQ0VTUxACIqMCCgdPbnVJbmZvEhUKBm9udV9pZBgBIAEoB1IFb251SWQSLwoFc3RhdGUYAiABKA4yGS5vcGVub2x0Lk9udUluZm8uT251U3RhdGVSBXN0YXRlEicKBGxvc2kYAyABKA4yEy5vcGVub2x0LkFsYXJtU3RhdGVSBGxvc2kSJwoEbG9maRgEIAEoDjITLm9wZW5vbHQuQWxhcm1TdGF0ZVIEbG9maRIpCgVsb2FtaRgFIAEoDjITLm9wZW5vbHQuQWxhcm1TdGF0ZVIFbG9hbWkiUwoIT251U3RhdGUSCwoHVU5LTk9XThAAEhIKDk5PVF9DT05GSUdVUkVEEAESCgoGQUNUSVZFEAISDAoISU5BQ1RJVkUQAxIMCghESVNBQkxFRBAEIucBCgtQb25JbnRmSW5mbxIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSNwoFc3RhdGUYAyABKA4yIS5vcGVub2x0LlBvbkludGZJbmZvLlBvbkludGZTdGF0ZVIFc3RhdGUSJQoDbG9zGAQgASgOMhMub3Blbm9sdC5BbGFybVN0YXRlUgNsb3MiXwoMUG9uSW50ZlN0YXRlEgsKB1VOS05PV04QABISCg5BQ1RJVkVfV09SS0lORxABEhIKDkFDVElWRV9TVEFOREJZEAISDAoISU5BQ1RJVkUQAxIMCghESVNBQkxFRBAEIgcKBUVtcHR5Kh0KCkFsYXJtU3RhdGUSBwoDT0ZGEAASBgoCT04QATLKFQoHT3Blbm9sdBJECgpEaXNhYmxlT2x0Eg4ub3Blbm9sdC5FbXB0eRoOLm9wZW5vbHQuRW1wdHkiFoLT5JMCECILL3YxL0Rpc2FibGU6ASoSRgoLUmVlbmFibGVPbHQSDi5vcGVub2x0LkVtcHR5Gg4ub3Blbm9sdC5FbXB0eSIXgtPkkwIRIgwvdjEvUmVlbmFibGU6ASoSRQoLQWN0aXZhdGVPbnUSDC5vcGVub2x0Lk9udRoOLm9wZW5vbHQuRW1wdHkiGILT5JMCEiINL3YxL0VuYWJsZU9udToBKhJICg1EZWFjdGl2YXRlT251Egwub3Blbm9sdC5PbnUaDi5vcGVub2x0LkVtcHR5IhmC0+STAhMiDi92MS9EaXNhYmxlT251OgEqEkMKCURlbGV0ZU9udRIMLm9wZW5vbHQuT251Gg4ub3Blbm9sdC5FbXB0eSIYgtPkkwISIg0vdjEvRGVsZXRlT251OgEqEkkKCk9tY2lNc2dPdXQSEC5vcGVub2x0Lk9tY2lNc2caDi5vcGVub2x0LkVtcHR5IhmC0+STAhMiDi92MS9PbWNpTXNnT3V0OgEqEk8KDE9udVBhY2tldE91dBISLm9wZW5vbHQuT251UGFja2V0Gg4ub3Blbm9sdC5FbXB0eSIbgtPkkwIVIhAvdjEvT251UGFja2V0T3V0OgEqElgKD1VwbGlua1BhY2tldE91dBIVLm9wZW5vbHQuVXBsaW5rUGFja2V0Gg4ub3Blbm9sdC5FbXB0eSIegtPkkwIYIhMvdjEvVXBsaW5rUGFja2V0T3V0OgEqEkAKB0Zsb3dBZGQSDS5vcGVub2x0LkZsb3caDi5vcGVub2x0LkVtcHR5IhaC0+STAhAiCy92MS9GbG93QWRkOgEqEkYKCkZsb3dSZW1vdmUSDS5vcGVub2x0LkZsb3caDi5vcGVub2x0LkVtcHR5IhmC0+STAhMiDi92MS9GbG93UmVtb3ZlOgEqElMKDkhlYXJ0YmVhdENoZWNrEg4ub3Blbm9sdC5FbXB0eRoSLm9wZW5vbHQuSGVhcnRiZWF0Ih2C0+STAhciEi92MS9IZWFydGJlYXRDaGVjazoBKhJNCgtFbmFibGVQb25JZhISLm9wZW5vbHQuSW50ZXJmYWNlGg4ub3Blbm9sdC5FbXB0eSIagtPkkwIUIg8vdjEvRW5hYmxlUG9uSWY6ASoSTwoMRGlzYWJsZVBvbklmEhIub3Blbm9sdC5JbnRlcmZhY2UaDi5vcGVub2x0LkVtcHR5IhuC0+STAhUiEC92MS9EaXNhYmxlUG9uSWY6ASoSUgoNR2V0RGV2aWNlSW5mbxIOLm9wZW5vbHQuRW1wdHkaEy5vcGVub2x0LkRldmljZUluZm8iHILT5JMCFiIRL3YxL0dldERldmljZUluZm86ASoSPwoGUmVib290Eg4ub3Blbm9sdC5FbXB0eRoOLm9wZW5vbHQuRW1wdHkiFYLT5JMCDyIKL3YxL1JlYm9vdDoBKhJVChFDb2xsZWN0U3RhdGlzdGljcxIOLm9wZW5vbHQuRW1wdHkaDi5vcGVub2x0LkVtcHR5IiCC0+STAhoiFS92MS9Db2xsZWN0U3RhdGlzdGljczoBKhJZChBHZXRPbnVTdGF0aXN0aWNzEgwub3Blbm9sdC5PbnUaFi5vcGVub2x0Lk9udVN0YXRpc3RpY3MiH4LT5JMCGSIUL3YxL0dldE9udVN0YXRpc3RpY3M6ASoSawoUR2V0R2VtUG9ydFN0YXRpc3RpY3MSEi5vcGVub2x0Lk9udVBhY2tldBoaLm9wZW5vbHQuR2VtUG9ydFN0YXRpc3RpY3MiI4LT5JMCHSIYL3YxL0dldEdlbVBvcnRTdGF0aXN0aWNzOgEqEnIKF0NyZWF0ZVRyYWZmaWNTY2hlZHVsZXJzEh8udGVjaF9wcm9maWxlLlRyYWZmaWNTY2hlZHVsZXJzGg4ub3Blbm9sdC5FbXB0eSImgtPkkwIgIhsvdjEvQ3JlYXRlVHJhZmZpY1NjaGVkdWxlcnM6ASoScgoXUmVtb3ZlVHJhZmZpY1NjaGVkdWxlcnMSHy50ZWNoX3Byb2ZpbGUuVHJhZmZpY1NjaGVkdWxlcnMaDi5vcGVub2x0LkVtcHR5IiaC0+STAiAiGy92MS9SZW1vdmVUcmFmZmljU2NoZWR1bGVyczoBKhJmChNDcmVhdGVUcmFmZmljUXVldWVzEhsudGVjaF9wcm9maWxlLlRyYWZmaWNRdWV1ZXMaDi5vcGVub2x0LkVtcHR5IiKC0+STAhwiFy92MS9DcmVhdGVUcmFmZmljUXVldWVzOgEqEmYKE1JlbW92ZVRyYWZmaWNRdWV1ZXMSGy50ZWNoX3Byb2ZpbGUuVHJhZmZpY1F1ZXVlcxoOLm9wZW5vbHQuRW1wdHkiIoLT5JMCHCIXL3YxL1JlbW92ZVRyYWZmaWNRdWV1ZXM6ASoSOwoQRW5hYmxlSW5kaWNhdGlvbhIOLm9wZW5vbHQuRW1wdHkaEy5vcGVub2x0LkluZGljYXRpb24iADABEl0KFVBlcmZvcm1Hcm91cE9wZXJhdGlvbhIOLm9wZW5vbHQuR3JvdXAaDi5vcGVub2x0LkVtcHR5IiSC0+STAh4iGS92MS9QZXJmb3JtR3JvdXBPcGVyYXRpb246ASoSSQoLRGVsZXRlR3JvdXASDi5vcGVub2x0Lkdyb3VwGg4ub3Blbm9sdC5FbXB0eSIagtPkkwIUIg8vdjEvRGVsZXRlR3JvdXA6ASoSVwoLR2V0RXh0VmFsdWUSEy5vcGVub2x0LlZhbHVlUGFyYW0aFy5leHRlbnNpb24uUmV0dXJuVmFsdWVzIhqC0+STAhQiDy92MS9HZXRFeHRWYWx1ZToBKhJdChFPbnVJdHVQb25BbGFybVNldBIWLmNvbmZpZy5PbnVJdHVQb25BbGFybRoOLm9wZW5vbHQuRW1wdHkiIILT5JMCGiIVL3YxL09udUl0dVBvbkFsYXJtU2V0OgEqEnAKGUdldExvZ2ljYWxPbnVEaXN0YW5jZVplcm8SDC5vcGVub2x0Lk9udRobLm9wZW5vbHQuT251TG9naWNhbERpc3RhbmNlIiiC0+STAiIiHS92MS9HZXRMb2dpY2FsT251RGlzdGFuY2VaZXJvOgEqEmgKFUdldExvZ2ljYWxPbnVEaXN0YW5jZRIMLm9wZW5vbHQuT251Ghsub3Blbm9sdC5PbnVMb2dpY2FsRGlzdGFuY2UiJILT5JMCHiIZL3YxL0dldExvZ2ljYWxPbnVEaXN0YW5jZToBKhJUCg1HZXRQb25SeFBvd2VyEgwub3Blbm9sdC5PbnUaFy5vcGVub2x0LlBvblJ4UG93ZXJEYXRhIhyC0+STAhYiES92MS9HZXRQb25SeFBvd2VyOgEqEkcKCkdldE9udUluZm8SDC5vcGVub2x0Lk9udRoQLm9wZW5vbHQuT251SW5mbyIZgtPkkwITIg4vdjEvR2V0T251SW5mbzoBKhJgChNHZXRQb25JbnRlcmZhY2VJbmZvEhIub3Blbm9sdC5JbnRlcmZhY2UaFC5vcGVub2x0LlBvbkludGZJbmZvIh+C0+STAhkiFC92MS9HZXRJbnRlcmZhY2VJbmZvOgEqQl0KG29yZy5vcGVuY29yZC52b2x0aGEub3Blbm9sdEINVm9sdGhhT3Blbk9MVFovZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL29wZW5vbHRKw5ACCgcSBQ4A3wYQCtEECgEMEgMOABIyxgQgQ29weXJpZ2h0IChjKSAyMDE4IE9wZW4gTmV0d29ya2luZyBGb3VuZGF0aW9uCgogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6CgogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVy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EgTZBggQCg8KBwQzBAACBAISBNkGGRoKDAoEBDMCARIE2wYEGwoPCgUEMwIBBBIG2wYE2gYFCg0KBQQzAgEGEgTbBgQQCg0KBQQzAgEBEgTbBhEWCg0KBQQzAgEDEgTbBhkaCgwKBAQzAgISBNwGBBkKDwoFBDMCAgQSBtwGBNsGGwoNCgUEMwICBhIE3AYEDgoNCgUEMwICARIE3AYRFAoNCgUEMwICAxIE3AYXGAoKCgIENBIE3wYAEAoLCgMENAESBN8GCA1iBnByb3RvMwqUIgohdm9sdGhhX3Byb3Rvcy9pbnRlcl9hZGFwdGVyLnByb3RvEg1pbnRlcl9hZGFwdGVyGhp2b2x0aGFfcHJvdG9zL2NvbW1vbi5wcm90bxoadm9sdGhhX3Byb3Rvcy92b2x0aGEucHJvdG8aIHZvbHRoYV9wcm90b3MvdGVjaF9wcm9maWxlLnByb3RvGht2b2x0aGFfcHJvdG9zL29wZW5vbHQucHJvdG8aGnZvbHRoYV9wcm90b3MvZGV2aWNlLnByb3RvIv8BCgtPbWNpTWVzc2FnZRIYCgdtZXNzYWdlGAEgASgMUgdtZXNzYWdlEkIKDmNvbm5lY3Rfc3RhdHVzGAIgASgOMhsuY29tbW9uLkNvbm5lY3RTdGF0dXMuVHlwZXNSDWNvbm5lY3RTdGF0dXMSQAoNcHJveHlfYWRkcmVzcxgDIAEoCzIbLmRldmljZS5EZXZpY2UuUHJveHlBZGRyZXNzUgxwcm94eUFkZHJlc3MSKAoQcGFyZW50X2RldmljZV9pZBgEIAEoCVIOcGFyZW50RGV2aWNlSWQSJgoPY2hpbGRfZGV2aWNlX2lkGAUgASgJUg1jaGlsZERldmljZUlkIoICCgxPbWNpTWVzc2FnZXMSGgoIbWVzc2FnZXMYASADKAxSCG1lc3NhZ2VzEkIKDmNvbm5lY3Rfc3RhdHVzGAIgASgOMhsuY29tbW9uLkNvbm5lY3RTdGF0dXMuVHlwZXNSDWNvbm5lY3RTdGF0dXMSQAoNcHJveHlfYWRkcmVzcxgDIAEoCzIbLmRldmljZS5EZXZpY2UuUHJveHlBZGRyZXNzUgxwcm94eUFkZHJlc3MSKAoQcGFyZW50X2RldmljZV9pZBgEIAEoCVIOcGFyZW50RGV2aWNlSWQSJgoPY2hpbGRfZGV2aWNlX2lkGAUgASgJUg1jaGlsZERldmljZUlkIqcCChpUZWNoUHJvZmlsZURvd25sb2FkTWVzc2FnZRIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEhUKBnVuaV9pZBgCIAEoDVIFdW5pSWQSKAoQdHBfaW5zdGFuY2VfcGF0aBgDIAEoCVIOdHBJbnN0YW5jZVBhdGgSRAoLdHBfaW5zdGFuY2UYBCABKAsyIS50ZWNoX3Byb2ZpbGUuVGVjaFByb2ZpbGVJbnN0YW5jZUgAUgp0cEluc3RhbmNlElEKEGVwb25fdHBfaW5zdGFuY2UYBSABKAsyJS50ZWNoX3Byb2ZpbGUuRXBvblRlY2hQcm9maWxlSW5zdGFuY2VIAFIOZXBvblRwSW5zdGFuY2VCEgoQdGVjaF90cF9pbnN0YW5jZSKUAQoURGVsZXRlR2VtUG9ydE1lc3NhZ2USGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIVCgZ1bmlfaWQYAiABKA1SBXVuaUlkEigKEHRwX2luc3RhbmNlX3BhdGgYAyABKAlSDnRwSW5zdGFuY2VQYXRoEh4KC2dlbV9wb3J0X2lkGAQgASgNUglnZW1Qb3J0SWQijQEKEkRlbGV0ZVRjb250TWVzc2FnZRIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEhUKBnVuaV9pZBgCIAEoDVIFdW5pSWQSKAoQdHBfaW5zdGFuY2VfcGF0aBgDIAEoCVIOdHBJbnN0YW5jZVBhdGgSGQoIYWxsb2NfaWQYBCABKA1SB2FsbG9jSWQicgoUT251SW5kaWNhdGlvbk1lc3NhZ2USGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBI9Cg5vbnVfaW5kaWNhdGlvbhgCIAEoCzIWLm9wZW5vbHQuT251SW5kaWNhdGlvblINb251SW5kaWNhdGlvbiLqAQohVGVjaFByb2ZpbGVJbnN0YW5jZVJlcXVlc3RNZXNzYWdlEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSKAoQdHBfaW5zdGFuY2VfcGF0aBgCIAEoCVIOdHBJbnN0YW5jZVBhdGgSKAoQcGFyZW50X2RldmljZV9pZBgDIAEoCVIOcGFyZW50RGV2aWNlSWQSJgoPcGFyZW50X3Bv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EgNCFBUKCwoEBAYCBRIDQwQWCg0KBQQGAgUEEgRDBEIWCgwKBQQGAgUFEgNDBAoKDAoFBAYCBQESA0MLEQoMCgUEBgIFAxIDQxQVYgZwcm90bzMK+wkKLXZvbHRoYV9wcm90b3Mvb2x0X2ludGVyX2FkYXB0ZXJfc2VydmljZS5wcm90bxIZb2x0X2ludGVyX2FkYXB0ZXJfc2VydmljZRoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8aG2dvb2dsZS9wcm90b2J1Zi9lbXB0eS5wcm90bxohdm9sdGhhX3Byb3Rvcy9pbnRlcl9hZGFwdGVyLnByb3RvGhp2b2x0aGFfcHJvdG9zL2hlYWx0aC5wcm90bzLiAgoWT2x0SW50ZXJBZGFwdGVyU2VydmljZRI/Cg9HZXRIZWFsdGhTdGF0dXMSEi5jb21tb24uQ29ubmVjdGlvbhoULmhlYWx0aC5IZWFsdGhTdGF0dXMoATABEkYKEFByb3h5T21jaVJlcXVlc3QSGi5pbnRlcl9hZGFwdGVyLk9tY2lNZXNzYWdlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkgKEVByb3h5T21jaVJlcXVlc3RzEhsuaW50ZXJfYWRhcHRlci5PbWNpTWVzc2FnZXMaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSdQoWR2V0VGVjaFByb2ZpbGVJbnN0YW5jZRIwLmludGVyX2FkYXB0ZXIuVGVjaFByb2ZpbGVJbnN0YW5jZVJlcXVlc3RNZXNzYWdlGikuaW50ZXJfYWRhcHRlci5UZWNoUHJvZmlsZURvd25sb2FkTWVzc2FnZUKQAQotb3JnLm9wZW5jb3JkLnZvbHRoYS5vbHRfaW50ZXJfYWRhcHRlcl9zZXJ2aWNlQhxWb2x0aGFPbHRJbnRlckFkYXB0ZXJTZXJ2aWNlWkFnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vb2x0X2ludGVyX2FkYXB0ZXJfc2VydmljZUq2BAoGEgQAABYBCggKAQwSAwAAEgoICgEIEgMCAFgKCQoCCAsSAwIAWAoICgEIEgMDAEYKCQoCCAESAwMARgoICgEIEgMEAD0KCQoCCAgSAwQAPQoICgECEgMGACIKCQoCAwASAwgAJAoJCgIDARIDCQAlCgkKAgMCEgMKACsKCQoCAwMSAwsAJAoKCgIGABIEDQAWAQoKCgMGAAESAw0IHgqnAQoEBgACABIDEARXGpkBIEdldEhlYWx0aFN0YXR1cyBpcyB1c2VkIGJ5IGEgT2x0SW50ZXJBZGFwdGVyU2VydmljZSBjbGllbnQgdG8gZGV0ZWN0IGEgY29ubmVjdGlvbgogbG9zdCB3aXRoIHRoZSBnUlBDIHNlcnZlciBob3N0aW5nIHRoZSBPbHRJbnRlckFkYXB0ZXJTZXJ2aWNlIHNlcnZpY2UKCgwKBQYAAgABEgMQCBcKDAoFBgACAAUSAxAYHgoMCgUGAAIAAhIDEB8wCgwKBQYAAgAGEgMQO0EKDAoFBgACAAMSAxBCVQoLCgQGAAIBEgMTBFQKDAoFBgACAQESAxMIGAoMCgUGAAIBAhIDExkyCgwKBQYAAgEDEgMTPVIKCwoEBgACAhIDFARWCgwKBQYAAgIBEgMUCBkKDAoFBgACAgISAxQaNAoMCgUGAAICAxIDFD9UCgwKBAYAAgMSBBUEgwEKDAoFBgACAwESAxUIHgoMCgUGAAIDAhIDFR9OCg0KBQYAAgMDEgQVWYEBYgZwcm90bzMK5AsKLXZvbHRoYV9wcm90b3Mvb251X2ludGVyX2FkYXB0ZXJfc2VydmljZS5wcm90bxIZb251X2ludGVyX2FkYXB0ZXJfc2VydmljZRoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8aG2dvb2dsZS9wcm90b2J1Zi9lbXB0eS5wcm90bxohdm9sdGhhX3Byb3Rvcy9pbnRlcl9hZGFwdGVyLnByb3RvGhp2b2x0aGFfcHJvdG9zL2hlYWx0aC5wcm90bzLfAwoWT251SW50ZXJBZGFwdGVyU2VydmljZRI/Cg9HZXRIZWFsdGhTdGF0dXMSEi5jb21tb24uQ29ubmVjdGlvbhoULmhlYWx0aC5IZWFsdGhTdGF0dXMoATABEkwKDU9udUluZGljYXRpb24SIy5pbnRlcl9hZGFwdGVyLk9udUluZGljYXRpb25NZXNzYWdlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkQKDk9tY2lJbmRpY2F0aW9uEhouaW50ZXJfYWRhcHRlci5PbWNpTWVzc2FnZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJYChNEb3dubG9hZFRlY2hQcm9maWxlEikuaW50ZXJfYWRhcHRlci5UZWNoUHJvZmlsZURvd25sb2FkTWVzc2FnZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJMCg1EZWxldGVHZW1Qb3J0EiMuaW50ZXJfYWRhcHRlci5EZWxldGVHZW1Qb3J0TWVzc2FnZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJICgtEZWxldGVUQ29udBIhLmludGVyX2FkYXB0ZXIuRGVsZXRlVGNvbnRNZXNzYWdlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5QpABCi1vcmcub3BlbmNvcmQudm9sdGhhLm9udV9pbnRlcl9hZGFwdGVyX3NlcnZpY2VCHFZvbHRoYU9udUludGVyQWRhcHRlclNlcnZpY2VaQWdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby9vbnVfaW50ZXJfYWRhcHRlcl9zZXJ2aWNlSqIFCgYSBAAAFwEKCAoBDBIDAAASCggKAQgSAwIAWAoJCgIICxIDAgBYCggKAQgSAwMARgoJCgIIARIDAwBGCggKAQgSAwQAPQoJCgIICBIDBAA9CggKAQISAwYAIgoJCgIDABIDCAAkCgkKAgMBEgMJACUKCQoCAwISAwoAKwoJCgIDAxIDCwAkCgoKAgYAEgQNABcBCgoKAwYAARIDDQgeCqcBCgQGAAIAEgMQBFcamQEgR2V0SGVhbHRoU3RhdHVzIGlzIHVzZWQgYnkgYSBPbnVJbnRlckFkYXB0ZXJTZXJ2aWNlIGNsaWVudCB0byBkZXRlY3QgYSBjb25uZWN0aW9uCiBsb3N0IHdpdGggdGhlIGdSUEMgc2VydmVyIGhvc3RpbmcgdGhlIE9udUludGVyQWRhcHRlclNlcnZpY2Ugc2VydmljZQoKDAoFBgACAAESAxAIFwoMCgUGAAIABRIDEBgeCgwKBQYAAgACEgMQHzAKDAoFBgACAAYSAxA7QQoMCgUGAAIAAxIDEEJVCgsKBAYAAgESAxIEWgoMCgUGAAIBARIDEggVCgwKBQYAAgECEgMSFjgKDAoFBgACAQMSAxJDWAoLCgQGAAICEgMTBFIKDAoFBgACAgESAxMIFgoMCgUGAAICAhIDExcwCgwKBQYAAgIDEgMTO1AKCwoEBgACAxIDFARmCgwKBQYAAgMBEgMUCBsKDAoFBgACAwISAxQcRAoMCgUGAAIDAxIDFE9kCgsKBAYAAgQSAxUEWgoMCgUGAAIEARIDFQgVCgwKBQYAAgQCEgMVFjgKDAoFBgACBAMSAxVDWAoLCgQGAAIFEgMWBFYKDAoFBgACBQESAxYIEwoMCgUGAAIFAhIDFhQ0CgwKBQYAAgUDEgMWP1RiBnByb3RvMw==