Cv0OCiN1bml0dGVzdF9pbXBvcnRfcHVibGljX3Byb3RvMy5wcm90bxIYcHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0IiMKE1B1YmxpY0ltcG9ydE1lc3NhZ2USDAoBZRgBIAEoBVIBZUIdqgIaR29vZ2xlLlByb3RvYnVmLlRlc3RQcm90b3NK7w0KBhIEIAAoAQr2DAoBDBIDIAASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoyKCBBdXRob3I6IGxpdWppc2lAZ29vZ2xlLmNvbSAoUGhlcmwgTGl1KQoKCAoBAhIDIgAhCggKAQgSAyQANwoJCgIIJRIDJAA3CgoKAgQAEgQmACgBCgoKAwQAARIDJggbCgsKBAQAAgASAycBDQoMCgUEAAIABRIDJwEGCgwKBQQAAgABEgMnBwgKDAoFBAACAAMSAycLDGIGcHJvdG8zCoMTChx1bml0dGVzdF9pbXBvcnRfcHJvdG8zLnByb3RvEhhwcm90b2J1Zl91bml0dGVzdF9pbXBvcnQaI3VuaXR0ZXN0X2ltcG9ydF9wdWJsaWNfcHJvdG8zLnByb3RvIh0KDUltcG9ydE1lc3NhZ2USDAoBZBgBIAEoBVIBZCpZCgpJbXBvcnRFbnVtEhsKF0lNUE9SVF9FTlVNX1VOU1BFQ0lGSUVEEAASDgoKSU1QT1JUX0ZPTxAHEg4KCklNUE9SVF9CQVIQCBIOCgpJTVBPUlRfQkFaEAlCHaoCGkdvb2dsZS5Qcm90b2J1Zi5UZXN0UHJvdG9zSoARCgYSBCQANgEKnw4KAQwSAyQAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMtABIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIEEgcHJvdG8gZmlsZSB3aGljaCBpcyBpbXBvcnRlZCBieSB1bml0dGVzdF9wcm90bzMucHJvdG8gdG8gdGVzdCBpbXBvcnRpbmcuCgoICgECEgMmACEKCAoBCBIDKAA3CgkKAgglEgMoADcKHwoCAwASAysANBoUIFRlc3QgcHVibGljIGltcG9ydAoKCQoCCgASAysHDQoKCgIEABIELQAvAQoKCgMEAAESAy0IFQoLCgQEAAIAEgMuAg4KDAoFBAACAAUSAy4CBwoMCgUEAAIAARIDLggJCgwKBQQAAgADEgMuDA0KCgoCBQASBDEANgEKCgoDBQABEgMxBQ8KCwoEBQACABIDMgIeCgwKBQUAAgABEgMyAhkKDAoFBQACAAISAzIcHQoLCgQFAAIBEgMzAhEKDAoFBQACAQESAzMCDAoMCgUFAAIBAhIDMw8QCgsKBAUAAgISAzQCEQoMCgUFAAICARIDNAIMCgwKBQUAAgICEgM0DxAKCwoEBQACAxIDNQIRCgwKBQUAAgMBEgM1AgwKDAoFBQACAwISAzUPEFAAYgZwcm90bzMK6LsBChV1bml0dGVzdF9wcm90bzMucHJvdG8SEnByb3RvYnVmX3VuaXR0ZXN0MxocdW5pdHRlc3RfaW1wb3J0X3Byb3RvMy5wcm90byKrFgoMVGVzdEFsbFR5cGVzEiEKDHNpbmdsZV9pbnQzMhgBIAEoBVILc2luZ2xlSW50MzISIQoMc2luZ2xlX2ludDY0GAIgASgDUgtzaW5nbGVJbnQ2NBIjCg1zaW5nbGVfdWludDMyGAMgASgNUgxzaW5nbGVVaW50MzISIwoNc2luZ2xlX3VpbnQ2NBgEIAEoBFIMc2luZ2xlVWludDY0EiMKDXNpbmdsZV9zaW50MzIYBSABKBFSDHNpbmdsZVNpbnQzMhIjCg1zaW5nbGVfc2ludDY0GAYgASgSUgxzaW5nbGVTaW50NjQSJQoOc2luZ2xlX2ZpeGVkMzIYByABKAdSDXNpbmdsZUZpeGVkMzISJQoOc2luZ2xlX2ZpeGVkNjQYCCABKAZSDXNpbmdsZUZpeGVkNjQSJwoPc2luZ2xlX3NmaXhlZDMyGAkgASgPUg5zaW5nbGVTZml4ZWQzMhInCg9zaW5nbGVfc2ZpeGVkNjQYCiABKBBSDnNpbmdsZVNmaXhlZDY0EiEKDHNpbmdsZV9mbG9hdBgLIAEoAlILc2luZ2xlRmxvYXQSIwoNc2luZ2xlX2RvdWJsZRgMIAEoAVIMc2luZ2xlRG91YmxlEh8KC3NpbmdsZV9ib29sGA0gASgIUgpzaW5nbGVCb29sEiMKDXNpbmdsZV9zdHJpbmcYDiABKAlSDHNpbmdsZVN0cmluZxIhCgxzaW5nbGVfYnl0ZXMYDyABKAxSC3NpbmdsZUJ5dGVzEmIKFXNpbmdsZV9uZXN0ZWRfbWVzc2FnZRgSIAEoCzIuLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVITc2luZ2xlTmVzdGVkTWVzc2FnZRJYChZzaW5nbGVfZm9yZWlnbl9tZXNzYWdlGBMgASgLMiIucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25NZXNzYWdlUhRzaW5nbGVGb3JlaWduTWVzc2FnZRJbChVzaW5nbGVfaW1wb3J0X21lc3NhZ2UYFCABKAsyJy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0TWVzc2FnZVITc2luZ2xlSW1wb3J0TWVzc2FnZRJZChJzaW5nbGVfbmVzdGVkX2VudW0YFSABKA4yKy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW1SEHNpbmdsZU5lc3RlZEVudW0STwoTc2luZ2xlX2ZvcmVpZ25fZW51bRgWIAEoDjIfLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduRW51bVIRc2luZ2xlRm9yZWlnbkVudW0SUgoSc2luZ2xlX2ltcG9ydF9lbnVtGBcgASgOMiQucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydEVudW1SEHNpbmdsZUltcG9ydEVudW0Sbgocc2luZ2xlX3B1YmxpY19pbXBvcnRfbWVzc2FnZRgaIAEoCzItLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5QdWJsaWNJbXBvcnRNZXNzYWdlUhlzaW5nbGVQdWJsaWNJbXBvcnRNZXNzYWdlEiUKDnJlcGVhdGVkX2ludDMyGB8gAygFUg1yZXBlYXRlZEludDMyEiUKDnJlcGVhdGVkX2ludDY0GCAgAygDUg1yZXBlYXRlZEludDY0EicKD3JlcGVhdGVkX3VpbnQzMhghIAMoDVIOcmVwZWF0ZWRVaW50MzISJwoPcmVwZWF0ZWRfdWludDY0GCIgAygEUg5yZXBlYXRlZFVpbnQ2NBInCg9yZXBlYXRlZF9zaW50MzIYIyADKBFSDnJlcGVhdGVkU2ludDMyEicKD3JlcGVhdGVkX3NpbnQ2NBgkIAMoElIOcmVwZWF0ZWRTaW50NjQSKQoQcmVwZWF0ZWRfZml4ZWQzMhglIAMoB1IPcmVwZWF0ZWRGaXhlZDMyEikKEHJlcGVhdGVkX2ZpeGVkNjQYJiADKAZSD3JlcGVhdGVkRml4ZWQ2NBIrChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoD1IQcmVwZWF0ZWRTZml4ZWQzMhIrChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEFIQcmVwZWF0ZWRTZml4ZWQ2NBIlCg5yZXBlYXRlZF9mbG9hdBgpIAMoAlINcmVwZWF0ZWRGbG9hdBInCg9yZXBlYXRlZF9kb3VibGUYKiADKAFSDnJlcGVhdGVkRG91YmxlEiMKDXJlcGVhdGVkX2Jvb2wYKyADKAhSDHJlcGVhdGVkQm9vbBInCg9yZXBlYXRlZF9zdHJpbmcYLCADKAlSDnJlcGVhdGVkU3RyaW5nEiUKDnJlcGVhdGVkX2J5dGVzGC0gAygMUg1yZXBlYXRlZEJ5dGVzEmYKF3JlcGVhdGVkX25lc3RlZF9tZXNzYWdlGDAgAygLMi4ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlUhVyZXBlYXRlZE5lc3RlZE1lc3NhZ2USXAoYcmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlGDEgAygLMiIucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25NZXNzYWdlUhZyZXBlYXRlZEZvcmVpZ25NZXNzYWdlEl8KF3JlcGVhdGVkX2ltcG9ydF9tZXNzYWdlGDIgAygLMicucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1lc3NhZ2VSFXJlcGVhdGVkSW1wb3J0TWVzc2FnZRJdChRyZXBlYXRlZF9uZXN0ZWRfZW51bRgzIAMoDjIrLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bVIScmVwZWF0ZWROZXN0ZWRFbnVtElMKFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0IAMoDjIfLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduRW51bVITcmVwZWF0ZWRGb3JlaWduRW51bRJWChRyZXBlYXRlZF9pbXBvcnRfZW51bRg1IAMoDjIkLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRFbnVtUhJyZXBlYXRlZEltcG9ydEVudW0ScgoecmVwZWF0ZWRfcHVibGljX2ltcG9ydF9tZXNzYWdlGDYgAygLMi0ucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LlB1YmxpY0ltcG9ydE1lc3NhZ2VSG3JlcGVhdGVkUHVibGljSW1wb3J0TWVzc2FnZRIjCgxvbmVvZl91aW50MzIYbyABKA1IAFILb25lb2ZVaW50MzISYgoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyLi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VIAFISb25lb2ZOZXN0ZWRNZXNzYWdlEiMKDG9uZW9mX3N0cmluZxhxIAEoCUgAUgtvbmVvZlN0cmluZxIhCgtvbmVvZl9ieXRlcxhyIAEoDEgAUgpvbmVvZkJ5dGVzGh8KDU5lc3RlZE1lc3NhZ2USDgoCYmIYASABKAVSAmJiIlYKCk5lc3RlZEVudW0SGwoXTkVTVEVEX0VOVU1fVU5TUEVDSUZJRUQQABIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQAxIQCgNORUcQ////////////AUINCgtvbmVvZl9maWVsZCLdAQoSTmVzdGVkVGVzdEFsbFR5cGVzEjwKBWNoaWxkGAEgASgLMiYucHJvdG9idWZfdW5pdHRlc3QzLk5lc3RlZFRlc3RBbGxUeXBlc1IFY2hpbGQSOgoHcGF5bG9hZBgCIAEoCzIgLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXNSB3BheWxvYWQSTQoOcmVwZWF0ZWRfY2hpbGQYAyADKAsyJi5wcm90b2J1Zl91bml0dGVzdDMuTmVzdGVkVGVzdEFsbFR5cGVzUg1yZXBlYXRlZENoaWxkIkUKFFRlc3REZXByZWNhdGVkRmllbGRzEi0KEGRlcHJlY2F0ZWRfaW50MzIYASABKAVCAhgBUg9kZXByZWNhdGVkSW50MzIiHgoORm9yZWlnbk1lc3NhZ2USDAoBYxgBIAEoBVIBYyIwChJUZXN0UmVzZXJ2ZWRGaWVsZHNKBAgCEANKBAgPEBBKBAgJEAxSA2JhclIDYmF6ImoKEVRlc3RGb3JlaWduTmVzdGVkElUKDmZvcmVpZ25fbmVzdGVkGAEgASgLMi4ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlUg1mb3JlaWduTmVzdGVkIjsKGFRlc3RSZWFsbHlMYXJnZVRhZ051bWJlchIMCgFhGAEgASgFUgFhEhEKAmJiGP///38gASgFUgJiYiJcChRUZXN0UmVjdXJzaXZlTWVzc2FnZRI2CgFhGAEgASgLMigucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RSZWN1cnNpdmVNZXNzYWdlUgFhEgwKAWkYAiABKAVSAWkiUAoUVGVzdE11dHVhbFJlY3Vyc2lvbkESOAoCYmIYASABKAsyKC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE11dHVhbFJlY3Vyc2lvbkJSAmJiInUKFFRlc3RNdXR1YWxSZWN1cnNpb25CEjYKAWEYASABKAsyKC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE11dHVhbFJlY3Vyc2lvbkFSAWESJQoOb3B0aW9uYWxfaW50MzIYAiABKAVSDW9wdGlvbmFsSW50MzIiVAoSVGVzdEVudW1BbGxvd0FsaWFzEj4KBXZhbHVlGAEgASgOMigucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RFbnVtV2l0aER1cFZhbHVlUgV2YWx1ZSL7AwoXVGVzdENhbWVsQ2FzZUZpZWxkTmFtZXMSJgoOUHJpbWl0aXZlRmllbGQYASABKAVSDlByaW1pdGl2ZUZpZWxkEiAKC1N0cmluZ0ZpZWxkGAIgASgJUgtTdHJpbmdGaWVsZBI9CglFbnVtRmllbGQYAyABKA4yHy5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbkVudW1SCUVudW1GaWVsZBJGCgxNZXNzYWdlRmllbGQYBCABKAsyIi5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbk1lc3NhZ2VSDE1lc3NhZ2VGaWVsZBI2ChZSZXBlYXRlZFByaW1pdGl2ZUZpZWxkGAcgAygFUhZSZXBlYXRlZFByaW1pdGl2ZUZpZWxkEjAKE1JlcGVhdGVkU3RyaW5nRmllbGQYCCADKAlSE1JlcGVhdGVkU3RyaW5nRmllbGQSTQoRUmVwZWF0ZWRFbnVtRmllbGQYCSADKA4yHy5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbkVudW1SEVJlcGVhdGVkRW51bUZpZWxkElYKFFJlcGVhdGVkTWVzc2FnZUZpZWxkGAogAygLMiIucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25NZXNzYWdlUhRSZXBlYXRlZE1lc3NhZ2VGaWVsZCL/AQoSVGVzdEZpZWxkT3JkZXJpbmdzEhsKCW15X3N0cmluZxgLIAEoCVIIbXlTdHJpbmcSFQoGbXlfaW50GAEgASgDUgVteUludBIZCghteV9mbG9hdBhlIAEoAlIHbXlGbG9hdBJpChVzaW5nbGVfbmVzdGVkX21lc3NhZ2UYyAEgASgLMjQucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RGaWVsZE9yZGVyaW5ncy5OZXN0ZWRNZXNzYWdlUhNzaW5nbGVOZXN0ZWRNZXNzYWdlGi8KDU5lc3RlZE1lc3NhZ2USDgoCb28YAiABKANSAm9vEg4KAmJiGAEgASgFUgJiYiJYChFTcGFyc2VFbnVtTWVzc2FnZRJDCgtzcGFyc2VfZW51bRgBIAEoDjIiLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0U3BhcnNlRW51bVIKc3BhcnNlRW51bSIfCglPbmVTdHJpbmcSEgoEZGF0YRgBIAEoCVIEZGF0YSIgCgpNb3JlU3RyaW5nEhIKBGRhdGEYASADKAlSBGRhdGEiHgoIT25lQnl0ZXMSEgoEZGF0YRgBIAEoDFIEZGF0YSIfCglNb3JlQnl0ZXMSEgoEZGF0YRgBIAEoDFIEZGF0YSIiCgxJbnQzMk1lc3NhZ2USEgoEZGF0YRgBIAEoBVIEZGF0YSIjCg1VaW50MzJNZXNzYWdlEhIKBGRhdGEYASABKA1SBGRhdGEiIgoMSW50NjRNZXNzYWdlEhIKBGRhdGEYASABKANSBGRhdGEiIwoNVWludDY0TWVzc2FnZRISCgRkYXRhGAEgASgEUgRkYXRhIiEKC0Jvb2xNZXNzYWdlEhIKBGRhdGEYASABKAhSBGRhdGEikwEKCVRlc3RPbmVvZhIZCgdmb29faW50GAEgASgFSABSBmZvb0ludBIfCgpmb29fc3RyaW5nGAIgASgJSABSCWZvb1N0cmluZxJDCgtmb29fbWVzc2FnZRgDIAEoCzIgLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXNIAFIKZm9vTWVzc2FnZUIFCgNmb28i7gQKD1Rlc3RQYWNrZWRUeXBlcxIlCgxwYWNrZWRfaW50MzIYWiADKAVCAhABUgtwYWNrZWRJbnQzMhIlCgxwYWNrZWRfaW50NjQYWyADKANCAhABUgtwYWNrZWRJbnQ2NBInCg1wYWNrZWRfdWludDMyGFwgAygNQgIQAVIMcGFja2VkVWludDMyEicKDXBhY2tlZF91aW50NjQYXSADKARCAhABUgxwYWNrZWRVaW50NjQSJwoNcGFja2VkX3NpbnQzMhheIAMoEUICEAFSDHBhY2tlZFNpbnQzMhInCg1wYWNrZWRfc2ludDY0GF8gAygSQgIQAVIMcGFja2VkU2ludDY0EikKDnBhY2tlZF9maXhlZDMyGGAgAygHQgIQAVINcGFja2VkRml4ZWQzMhIpCg5wYWNrZWRfZml4ZWQ2NBhhIAMoBkICEAFSDXBhY2tlZEZpeGVkNjQSKwoPcGFja2VkX3NmaXhlZDMyGGIgAygPQgIQAVIOcGFja2VkU2ZpeGVkMzISKwoPcGFja2VkX3NmaXhlZDY0GGMgAygQQgIQAVIOcGFja2VkU2ZpeGVkNjQSJQoMcGFja2VkX2Zsb2F0GGQgAygCQgIQAVILcGFja2VkRmxvYXQSJwoNcGFja2VkX2RvdWJsZRhlIAMoAUICEAFSDHBhY2tlZERvdWJsZRIjCgtwYWNrZWRfYm9vbBhmIAMoCEICEAFSCnBhY2tlZEJvb2wSRAoLcGFja2VkX2VudW0YZyADKA4yHy5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbkVudW1CAhABUgpwYWNrZWRFbnVtIqgFChFUZXN0VW5wYWNrZWRUeXBlcxIpCg51bnBhY2tlZF9pbnQzMhhaIAMoBUICEABSDXVucGFja2VkSW50MzISKQoOdW5wYWNrZWRfaW50NjQYWyADKANCAhAAUg11bnBhY2tlZEludDY0EisKD3VucGFja2VkX3VpbnQzMhhcIAMoDUICEABSDnVucGFja2VkVWludDMyEisKD3VucGFja2VkX3VpbnQ2NBhdIAMoBEICEABSDnVucGFja2VkVWludDY0EisKD3VucGFja2VkX3NpbnQzMhheIAMoEUICEABSDnVucGFja2VkU2ludDMyEisKD3VucGFja2VkX3NpbnQ2NBhfIAMoEkICEABSDnVucGFja2VkU2ludDY0Ei0KEHVucGFja2VkX2ZpeGVkMzIYYCADKAdCAhAAUg91bnBhY2tlZEZpeGVkMzISLQoQdW5wYWNrZWRfZml4ZWQ2NBhhIAMoBkICEABSD3VucGFja2VkRml4ZWQ2NBIvChF1bnBhY2tlZF9zZml4ZWQzMhhiIAMoD0ICEABSEHVucGFja2VkU2ZpeGVkMzISLwoRdW5wYWNrZWRfc2ZpeGVkNjQYYyADKBBCAhAAUhB1bnBhY2tlZFNmaXhlZDY0EikKDnVucGFja2VkX2Zsb2F0GGQgAygCQgIQAFINdW5wYWNrZWRGbG9hdBIrCg91bnBhY2tlZF9kb3VibGUYZSADKAFCAhAAUg51bnBhY2tlZERvdWJsZRInCg11bnBhY2tlZF9ib29sGGYgAygIQgIQAFIMdW5wYWNrZWRCb29sEkgKDXVucGFja2VkX2VudW0YZyADKA4yHy5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbkVudW1CAhAAUgx1bnBhY2tlZEVudW0inwIKI1Rlc3RSZXBlYXRlZFNjYWxhckRpZmZlcmVudFRhZ1NpemVzEikKEHJlcGVhdGVkX2ZpeGVkMzIYDCADKAdSD3JlcGVhdGVkRml4ZWQzMhIlCg5yZXBlYXRlZF9pbnQzMhgNIAMoBVINcmVwZWF0ZWRJbnQzMhIqChByZXBlYXRlZF9maXhlZDY0GP4PIAMoBlIPcmVwZWF0ZWRGaXhlZDY0EiYKDnJlcGVhdGVkX2ludDY0GP8PIAMoA1INcmVwZWF0ZWRJbnQ2NBInCg5yZXBlYXRlZF9mbG9hdBj+/w8gAygCUg1yZXBlYXRlZEZsb2F0EikKD3JlcGVhdGVkX3VpbnQ2NBj//w8gAygEUg5yZXBlYXRlZFVpbnQ2NCIrChtUZXN0Q29tbWVudEluamVjdGlvbk1lc3NhZ2USDAoBYRgBIAEoCVIBYSIMCgpGb29SZXF1ZXN0Ig0KC0Zvb1Jlc3BvbnNlIhIKEEZvb0NsaWVudE1lc3NhZ2UiEgoQRm9vU2VydmVyTWVzc2FnZSIMCgpCYXJSZXF1ZXN0Ig0KC0JhclJlc3BvbnNlIhIKEFRlc3RFbXB0eU1lc3NhZ2UiggEKDkNvbW1lbnRNZXNzYWdlEhIKBHRleHQYASABKAlSBHRleHQaNwoUTmVzdGVkQ29tbWVudE1lc3NhZ2USHwoLbmVzdGVkX3RleHQYASABKAlSCm5lc3RlZFRleHQiIwoRTmVzdGVkQ29tbWVudEVudW0SDgoKWkVST19WQUxVRRAAKlkKC0ZvcmVpZ25FbnVtEhcKE0ZPUkVJR05fVU5TUEVDSUZJRUQQABIPCgtGT1JFSUdOX0ZPTxAEEg8KC0ZPUkVJR05fQkFSEAUSDwoLRk9SRUlHTl9CQVoQBip1ChRUZXN0RW51bVdpdGhEdXBWYWx1ZRIoCiRURVNUX0VOVU1fV0lUSF9EVVBfVkFMVUVfVU5TUEVDSUZJRUQQABIICgRGT08xEAESCAoEQkFSMRACEgcKA0JBWhADEggKBEZPTzIQARIICgRCQVIyEAIaAhABKp0BCg5UZXN0U3BhcnNlRW51bRIgChxURVNUX1NQQVJTRV9FTlVNX1VOU1BFQ0lGSUVEEAASDAoIU1BBUlNFX0EQexIOCghTUEFSU0VfQhCm5wMSDwoIU1BBUlNFX0MQsrGABhIVCghTUEFSU0VfRBDx//////////8BEhUKCFNQQVJTRV9FELTe/P///////wESDAoIU1BBUlNFX0cQAiodCgtDb21tZW50RW51bRIOCgpaRVJPX1ZBTFVFEAAynQEKC1Rlc3RTZXJ2aWNlEkYKA0ZvbxIeLnByb3RvYnVmX3VuaXR0ZXN0My5Gb29SZXF1ZXN0Gh8ucHJvdG9idWZfdW5pdHRlc3QzLkZvb1Jlc3BvbnNlEkYKA0JhchIeLnByb3RvYnVmX3VuaXR0ZXN0My5CYXJSZXF1ZXN0Gh8ucHJvdG9idWZfdW5pdHRlc3QzLkJhclJlc3BvbnNlQixCDVVuaXR0ZXN0UHJvdG+qAhpHb29nbGUuUHJvdG9idWYuVGVzdFByb3Rvc0rZfwoHEgUkAJkDAQr/DQoBDBIDJAASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoysAEgQXV0aG9yOiBrZW50b25AZ29vZ2xlLmNvbSAoS2VudG9uIFZhcmRhKQogIEJhc2VkIG9uIG9yaWdpbmFsIFByb3RvY29sIEJ1ZmZlcnMgZGVzaWduIGJ5CiAgU2FuamF5IEdoZW1hd2F0LCBKZWZmIERlYW4sIGFuZCBvdGhlcnMuCgogQSBwcm90byBmaWxlIHdlIHdpbGwgdXNlIGZvciB1bml0IHRlc3RpbmcuCgoICgEIEgMmADcKCQoCCCUSAyYANwoICgEIEgMqAC4KYAoCCAgSAyoALhpVIE9ubHkgcHJlc2VudCBzbyB3ZSBjYW4gdGVzdCB0aGF0IHdlIGNhbiByZWFkIGl0IChhcyBhbiBleGFtcGxlCiBvZiBhIG5vbi1DIyBvcHRpb24pCgoJCgIDABIDLAAmCggKAQISAy4AGwpcCgIEABIFMgCCAQEaTyBUaGlzIHByb3RvIGluY2x1ZGVzIGV2ZXJ5IHR5cGUgb2YgZmllbGQgaW4gYm90aCBzaW5ndWxhciBhbmQgcmVwZWF0ZWQKIGZvcm1zLgoKCgoDBAABEgMyCBQKDAoEBAADABIEMwI4AwoMCgUEAAMAARIDMwoXCuMBCgYEAAMAAgASAzcEERrTASBUaGUgZmllbGQgbmFtZSAiYiIgZmFpbHMgdG8gY29tcGlsZSBpbiBwcm90bzEgYmVjYXVzZSBpdCBjb25mbGljdHMgd2l0aAogYSBsb2NhbCB2YXJpYWJsZSBuYW1lZCAiYiIgaW4gb25lIG9mIHRoZSBnZW5lcmF0ZWQgbWV0aG9kcy4gIERvaC4KIFRoaXMgZmlsZSBuZWVkcyB0byBjb21waWxlIGluIHByb3RvMSB0byB0ZXN0IGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5LgoKDgoHBAADAAIABRIDNwQJCg4KBwQAAwACAAESAzcKDAoO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AAgSBLECKjkKDgoGBBgCAAgCEgSxAis4CgwKBAQYAgESBLICAjoKDQoFBBgCAQQSBLICAgoKDQoFBBgCAQUSBLICDhMKDQoFBBgCAQESBLICFCAKDQoFBBgCAQMSBLICJykKDQoFBBgCAQgSBLICKjkKDgoGBBgCAQgCEgSyAis4CgwKBAQYAgISBLMCAjoKDQoFBBgCAgQSBLMCAgoKDQoFBBgCAgUSBLMCDRMKDQoFBBgCAgESBLMCFCEKDQoFBBgCAgMSBLMCJykKDQoFBBgCAggSBLMCKjkKDgoGBBgCAggCEgSzAis4CgwKBAQYAgMSBLQCAjoKDQoFBBgCAwQSBLQCAgoKDQoFBBgCAwUSBLQCDRMKDQoFBBgCAwESBLQCFCEKDQoFBBgCAwMSBLQCJykKDQoFBBgCAwgSBLQCKjkKDgoGBBgCAwgCEgS0Ais4CgwKBAQYAgQSBLUCAjoKDQoFBBgCBAQSBLUCAgoKDQoFBBgCBAUSBLUCDRMKDQoFBBgCBAESBLUCFCEKDQoFBBgCBAMSBLUCJykKDQoFBBgCBAgSBLUCKjkKDgoGBBgCBAgCEgS1Ais4CgwKBAQYAgUSBLYCAjoKDQoFBBgCBQQSBLYCAgoKDQoFBBgCBQUSBLYCDRMKDQoFBBgCBQESBLYCFCEKDQoFBBgCBQMSBLYCJykKDQoFBBgCBQgSBLYCKjkKDgoGBBgCBQgCEgS2Ais4CgwKBAQYAgYSBLcCAjoKDQoFBBgCBgQSBLcCAgoKDQoFBBgCBgUSBLcCDBMKDQoFBBgCBgESBLcCFCIKDQoFBBgCBgMSBLcCJykKDQoFBBgCBggSBLcCKjkKDgoGBBgCBggCEgS3Ais4CgwKBAQYAgcSBLgCAjoKDQoFBBgCBwQSBLgCAgoKDQoFBBgCBwUSBLgCDBMKDQoFBBgCBwESBLgCFCIKDQoFBBgCBwMSBLgCJykKDQoFBBgCBwgSBLgCKjkKDgoGBBgCBwgCEgS4Ais4CgwKBAQYAggSBLkCAjoKDQoFBBgCCAQSBLkCAgoKDQoFBBgCCAUSBLkCCxMKDQoFBBgCCAESBLkCFCMKDQoFBBgCCAMSBLkCJykKDQoFBBgCCAgSBLkCKjkKDgoGBBgCCAgCEgS5Ais4CgwKBAQYAgkSBLoCAjoKDQoFBBgCCQQSBLoCAgoKDQoFBBgCCQUSBLoCCxMKDQoFBBgCCQESBLoCFCMKDQoFBBgCCQMSBLoCJykKDQoFBBgCCQgSBLoCKjkKDgoGBBgCCQgCEgS6Ais4CgwKBAQYAgoSBLsCAjoKDQoFBBgCCgQSBLsCAgoKDQoFBBgCCgUSBLsCDhMKDQoFBBgCCgESBLsCFCAKDQoFBBgCCgMSBLsCJikKDQoFBBgCCggSBLsCKjkKDgoGBBgCCggCEgS7Ais4CgwKBAQYAgsSBLwCAjoKDQoFBBgCCwQSBLwCAgoKDQoFBBgCCwUSBLwCDRMKDQoFBBgCCwESBLwCFCEKDQoFBBgCCwMSBLwCJikKDQoFBBgCCwgSBLwCKjkKDgoGBBgCCwgCEgS8Ais4CgwKBAQYAgwSBL0CAjoKDQoFBBgCDAQSBL0CAgoKDQoFBBgCDAUSBL0CDxMKDQoFBBgCDAESBL0CFB8KDQoFBBgCDAMSBL0CJikKDQoFBBgCDAgSBL0CKjkKDgoGBBgCDAgCEgS9Ais4CgwKBAQYAg0SBL4CAjoKDQoFBBgCDQQSBL4CAgoKDQoFBBgCDQYSBL4CCxYKDQoFBBgCDQESBL4CFyIKDQoFBBgCDQMSBL4CJikKDQoFBBgCDQgSBL4CKjkKDgoGBBgCDQgCEgS+Ais4Co0BCgIEGRIGwwIA0gIBGn8gQSBtZXNzYWdlIHdpdGggdGhlIHNhbWUgZmllbGRzIGFzIFRlc3RQYWNrZWRUeXBlcywgYnV0IHdpdGhvdXQgcGFja2luZy4gVXNlZAogdG8gdGVzdCBwYWNrZWQgPC0+IHVucGFja2VkIHdpcmUgY29tcGF0aWJpbGl0eS4KCgsKAwQZARIEwwIIGQoMCgQEGQIAEgTEAgI9Cg0KBQQZAgAEEgTEAgIKCg0KBQQZAgAFEgTEAg4TCg0KBQQZAgABEgTEAhQiCg0KBQQZAgADEgTEAikrCg0KBQQZAgAIEgTEAiw8Cg4KBgQZAgAIAhIExAItOwoMCgQEGQIBEgTFAgI9Cg0KBQQZAgEEEgTFAgIKCg0KBQQZAgEFEgTFAg4TCg0KBQQZAgEBEgTFAhQiCg0KBQQZAgEDEgTFAikrCg0KBQQZAgEIEgTFAiw8Cg4KBgQZAgEIAhIExQItOwoMCgQEGQICEgTGAgI9Cg0KBQQZAgIEEgTGAgIKCg0KBQQZAgIFEgTGAg0TCg0KBQQZAgIBEgTGAhQjCg0KBQQZAgIDEgTGAikrCg0KBQQZAgIIEgTGAiw8Cg4KBgQZAgIIAhIExgItOwoMCgQEGQIDEgTHAgI9Cg0KBQQZAgMEEgTHAgIKCg0KBQQZAgMFEgTHAg0TCg0KBQQZAgMBEgTHAhQjCg0KBQQZAgMDEgTHAikrCg0KBQQZAgMIEgTHAiw8Cg4KBgQZAgMIAhIExwItOwoMCgQEGQIEEgTIAgI9Cg0KBQQZAgQEEgTIAgIKCg0KBQQZAgQFEgTIAg0TCg0KBQQZAgQBEgTIAhQjCg0KBQQZAgQDEgTIAikrCg0KBQQZAgQIEgTIAiw8Cg4KBgQZAgQIAhIEyAItOwoMCgQEGQIFEgTJAgI9Cg0KBQQZAgUEEgTJAgIKCg0KBQQZAgUFEgTJAg0TCg0KBQQZAgUBEgTJAhQjCg0KBQQZAgUDEgTJAikrCg0KBQQZAgUIEgTJAiw8Cg4KBgQZAgUIAhIEyQItOwoMCgQEGQIGEgTKAgI9Cg0KBQQZAgYEEgTKAgIKCg0KBQQZAgYFEgTKAgwTCg0KBQQZAgYBEgTKAhQkCg0KBQQZAgYDEgTKAikrCg0KBQQZAgYIEgTKAiw8Cg4KBgQZAgYIAhIEygItOwoMCgQEGQIHEgTLAgI9Cg0KBQQZAgcEEgTLAgIKCg0KBQQZAgcFEgTLAgwTCg0KBQQZAgcBEgTLAhQkCg0KBQQZAgcDEgTLAikrCg0KBQQZAgcIEgTLAiw8Cg4KBgQZAgcIAhIEywItOwoMCgQEGQIIEgTMAgI9Cg0KBQQZAggEEgTMAgIKCg0KBQQZAggFEgTMAgsTCg0KBQQZAggBEgTMAhQlCg0KBQQZAggDEgTMAikrCg0KBQQZAggIEgTMAiw8Cg4KBgQZAggIAhIEzAItOwoMCgQEGQIJEgTNAgI9Cg0KBQQZAgkEEgTNAgIKCg0KBQQZAgkFEgTNAgsTCg0KBQQZAgkBEgTNAhQlCg0KBQQZAgkDEgTNAikrCg0KBQQZAgkIEgTNAiw8Cg4KBgQZAgkIAhIEzQItOwoMCgQEGQIKEgTOAgI9Cg0KBQQZAgoEEgTOAgIKCg0KBQQZAgoFEgTOAg4TCg0KBQQZAgoBEgTOAhQiCg0KBQQZAgoDEgTOAigrCg0KBQQZAgoIEgTOAiw8Cg4KBgQZAgoIAhIEzgIt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Z2UgY29tbWVudAoKDQoFBCMDAAESBIYDCh4KNgoGBCMDAAIAEgSIAwQbGiYgTGVhZGluZyBuZXN0ZWQgbWVzc2FnZSBmaWVsZCBjb21tZW50CgoPCgcEIwMAAgAFEgSIAwQKCg8KBwQjAwACAAESBIgDCxYKDwoHBCMDAAIAAxIEiAMZGgotCgQEIwQAEgaMAwKPAwMaHSBMZWFkaW5nIG5lc3RlZCBlbnVtIGNvbW1lbnQKCg0KBQQjBAABEgSMAwcYCiQKBgQjBAACABIEjgMEExoUIFplcm8gdmFsdWUgY29tbWVudAoKDwoHBCMEAAIAARIEjgMEDgoPCgcEIwQAAgACEgSOAxESCj8KBAQjAgASBJIDAhIaFyBMZWFkaW5nIGZpZWxkIGNvbW1lbnQKIhggVHJhaWxpbmcgZmllbGQgY29tbWVudAoKDQoFBCMCAAUSBJIDAggKDQoFBCMCAAESBJIDCQ0KDQoFBCMCAAMSBJIDEBEKJAoCBQMSBpYDAJkDARoWIExlYWRpbmcgZW51bSBjb21tZW50CgoLCgMFAwESBJYDBRAKIgoEBQMCABIEmAMCERoUIFplcm8gdmFsdWUgY29tbWVudAoKDQoFBQMCAAESBJgDAgwKDQoFBQMCAAISBJgDDxBiBnByb3RvMwrFWAoZbWFwX3VuaXR0ZXN0X3Byb3RvMy5wcm90bxIScHJvdG9idWZfdW5pdHRlc3QzGhV1bml0dGVzdF9wcm90bzMucHJvdG8imRYKB1Rlc3RNYXASVgoPbWFwX2ludDMyX2ludDMyGAEgAygLMi4ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwSW50MzJJbnQzMkVudHJ5Ug1tYXBJbnQzMkludDMyElYKD21hcF9pbnQ2NF9pbnQ2NBgCIAMoCzIuLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEludDY0SW50NjRFbnRyeVINbWFwSW50NjRJbnQ2NBJcChFtYXBfdWludDMyX3VpbnQzMhgDIAMoCzIwLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcFVpbnQzMlVpbnQzMkVudHJ5Ug9tYXBVaW50MzJVaW50MzISXAoRbWFwX3VpbnQ2NF91aW50NjQYBCADKAsyMC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBVaW50NjRVaW50NjRFbnRyeVIPbWFwVWludDY0VWludDY0ElwKEW1hcF9zaW50MzJfc2ludDMyGAUgAygLMjAucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwU2ludDMyU2ludDMyRW50cnlSD21hcFNpbnQzMlNpbnQzMhJcChFtYXBfc2ludDY0X3NpbnQ2NBgGIAMoCzIwLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcFNpbnQ2NFNpbnQ2NEVudHJ5Ug9tYXBTaW50NjRTaW50NjQSYgoTbWFwX2ZpeGVkMzJfZml4ZWQzMhgHIAMoCzIyLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEZpeGVkMzJGaXhlZDMyRW50cnlSEW1hcEZpeGVkMzJGaXhlZDMyEmIKE21hcF9maXhlZDY0X2ZpeGVkNjQYCCADKAsyMi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5UhFtYXBGaXhlZDY0Rml4ZWQ2NBJoChVtYXBfc2ZpeGVkMzJfc2ZpeGVkMzIYCSADKAsyNC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBTZml4ZWQzMlNmaXhlZDMyRW50cnlSE21hcFNmaXhlZDMyU2ZpeGVkMzISaAoVbWFwX3NmaXhlZDY0X3NmaXhlZDY0GAogAygLMjQucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5UhNtYXBTZml4ZWQ2NFNmaXhlZDY0ElYKD21hcF9pbnQzMl9mbG9hdBgLIAMoCzIuLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEludDMyRmxvYXRFbnRyeVINbWFwSW50MzJGbG9hdBJZChBtYXBfaW50MzJfZG91YmxlGAwgAygLMi8ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwSW50MzJEb3VibGVFbnRyeVIObWFwSW50MzJEb3VibGUSUAoNbWFwX2Jvb2xfYm9vbBgNIAMoCzIsLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEJvb2xCb29sRW50cnlSC21hcEJvb2xCb29sElwKEW1hcF9zdHJpbmdfc3RyaW5nGA4gAygLMjAucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwU3RyaW5nU3RyaW5nRW50cnlSD21hcFN0cmluZ1N0cmluZxJWCg9tYXBfaW50MzJfYnl0ZXMYDyADKAsyLi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBJbnQzMkJ5dGVzRW50cnlSDW1hcEludDMyQnl0ZXMSUwoObWFwX2ludDMyX2VudW0YECADKAsyLS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBJbnQzMkVudW1FbnRyeVIMbWFwSW50MzJFbnVtEnIKGW1hcF9pbnQzMl9mb3JlaWduX21lc3NhZ2UYESADKAsyNy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBJbnQzMkZvcmVpZ25NZXNzYWdlRW50cnlSFm1hcEludDMyRm9yZWlnbk1lc3NhZ2UaQAoSTWFwSW50MzJJbnQzMkVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEaQAoSTWFwSW50NjRJbnQ2NEVudHJ5EhAKA2tleRgBIAEoA1IDa2V5EhQKBXZhbHVlGAIgASgDUgV2YWx1ZToCOAEaQgoUTWFwVWludDMyVWludDMyRW50cnkSEAoDa2V5GAEgASgNUgNrZXkSFAoFdmFsdWUYAiABKA1SBXZhbHVlOgI4ARpCChRNYXBVaW50NjRVaW50NjRFbnRyeRIQCgNrZXkYASABKARSA2tleRIUCgV2YWx1ZRgCIAEoBFIFdmFsdWU6AjgBGkIKFE1hcFNpbnQzMlNpbnQzMkVudHJ5EhAKA2tleRgBIAEoEVIDa2V5EhQKBXZhbHVlGAIgASgRUgV2YWx1ZToCOAEaQgoUTWFwU2ludDY0U2ludDY0RW50cnkSEAoDa2V5GAEgASgSUgNrZXkSFAoFdmFsdWUYAiABKBJSBXZhbHVlOgI4ARpEChZNYXBGaXhlZDMyRml4ZWQzMkVudHJ5EhAKA2tleRgBIAEoB1IDa2V5EhQKBXZhbHVlGAIgASgHUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRIQCgNrZXkYASABKAZSA2tleRIUCgV2YWx1ZRgCIAEoBlIFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRIQCgNrZXkYASABKA9SA2tleRIUCgV2YWx1ZRgCIAEoD1IFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRIQCgNrZXkYASABKBBSA2tleRIUCgV2YWx1ZRgCIAEoEFIFdmFsdWU6AjgBGkAKEk1hcEludDMyRmxvYXRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBGkEKE01hcEludDMyRG91YmxlRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAFSBXZhbHVlOgI4ARo+ChBNYXBCb29sQm9vbEVudHJ5EhAKA2tleRgBIAEoCFIDa2V5EhQKBXZhbHVlGAIgASgIUgV2YWx1ZToCOAEaQgoUTWFwU3RyaW5nU3RyaW5nRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4ARpAChJNYXBJbnQzMkJ5dGVzRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAxSBXZhbHVlOgI4ARpcChFNYXBJbnQzMkVudW1FbnRyeRIQCgNrZXkYASABKAVSA2tleRIxCgV2YWx1ZRgCIAEoDjIbLnByb3RvYnVmX3VuaXR0ZXN0My5NYXBFbnVtUgV2YWx1ZToCOAEabQobTWFwSW50MzJGb3JlaWduTWVzc2FnZUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjgKBXZhbHVlGAIgASgLMiIucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25NZXNzYWdlUgV2YWx1ZToCOAEiSwoRVGVzdE1hcFN1Ym1lc3NhZ2USNgoIdGVzdF9tYXAYASABKAsyGy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcFIHdGVzdE1hcCLbAQoOVGVzdE1lc3NhZ2VNYXASYwoRbWFwX2ludDMyX21lc3NhZ2UYASADKAsyNy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1lc3NhZ2VNYXAuTWFwSW50MzJNZXNzYWdlRW50cnlSD21hcEludDMyTWVzc2FnZRpkChRNYXBJbnQzMk1lc3NhZ2VFbnRyeRIQCgNrZXkYASABKAVSA2tleRI2CgV2YWx1ZRgCIAEoCzIgLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXNSBXZhbHVlOgI4ASKJAgoPVGVzdFNhbWVUeXBlTWFwEkEKBG1hcDEYASADKAsyLS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdFNhbWVUeXBlTWFwLk1hcDFFbnRyeVIEbWFwMRJBCgRtYXAyGAIgAygLMi0ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RTYW1lVHlwZU1hcC5NYXAyRW50cnlSBG1hcDIaNwoJTWFwMUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEaNwoJTWFwMkVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEirRQKDFRlc3RBcmVuYU1hcBJbCg9tYXBfaW50MzJfaW50MzIYASADKAsyMy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcEludDMySW50MzJFbnRyeVINbWFwSW50MzJJbnQzMhJbCg9tYXBfaW50NjRfaW50NjQYAiADKAsyMy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcEludDY0SW50NjRFbnRyeVINbWFwSW50NjRJbnQ2NBJhChFtYXBfdWludDMyX3VpbnQzMhgDIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwVWludDMyVWludDMyRW50cnlSD21hcFVpbnQzMlVpbnQzMhJhChFtYXBfdWludDY0X3VpbnQ2NBgEIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwVWludDY0VWludDY0RW50cnlSD21hcFVpbnQ2NFVpbnQ2NBJhChFtYXBfc2ludDMyX3NpbnQzMhgFIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwU2ludDMyU2ludDMyRW50cnlSD21hcFNpbnQzMlNpbnQzMhJhChFtYXBfc2ludDY0X3NpbnQ2NBgGIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwU2ludDY0U2ludDY0RW50cnlSD21hcFNpbnQ2NFNpbnQ2NBJnChNtYXBfZml4ZWQzMl9maXhlZDMyGAcgAygLMjcucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBGaXhlZDMyRml4ZWQzMkVudHJ5UhFtYXBGaXhlZDMyRml4ZWQzMhJnChNtYXBfZml4ZWQ2NF9maXhlZDY0GAggAygLMjcucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5UhFtYXBGaXhlZDY0Rml4ZWQ2NBJtChVtYXBfc2ZpeGVkMzJfc2ZpeGVkMzIYCSADKAsyOS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeVITbWFwU2ZpeGVkMzJTZml4ZWQzMhJtChVtYXBfc2ZpeGVkNjRfc2ZpeGVkNjQYCiADKAsyOS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeVITbWFwU2ZpeGVkNjRTZml4ZWQ2NBJbCg9tYXBfaW50MzJfZmxvYXQYCyADKAsyMy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcEludDMyRmxvYXRFbnRyeVINbWFwSW50MzJGbG9hdBJeChBtYXBfaW50MzJfZG91YmxlGAwgAygLMjQucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBJbnQzMkRvdWJsZUVudHJ5Ug5tYXBJbnQzMkRvdWJsZRJVCg1tYXBfYm9vbF9ib29sGA0gAygLMjEucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBCb29sQm9vbEVudHJ5UgttYXBCb29sQm9vbBJYCg5tYXBfaW50MzJfZW51bRgOIAMoCzIyLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwSW50MzJFbnVtRW50cnlSDG1hcEludDMyRW51bRJ3ChltYXBfaW50MzJfZm9yZWlnbl9tZXNzYWdlGA8gAygLMjwucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBJbnQzMkZvcmVpZ25NZXNzYWdlRW50cnlSFm1hcEludDMyRm9yZWlnbk1lc3NhZ2UaQAoSTWFwSW50MzJJbnQzMkVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEaQAoSTWFwSW50NjRJbnQ2NEVudHJ5EhAKA2tleRgBIAEoA1IDa2V5EhQKBXZhbHVlGAIgASgDUgV2YWx1ZToCOAEaQgoUTWFwVWludDMyVWludDMyRW50cnkSEAoDa2V5GAEgASgNUgNrZXkSFAoFdmFsdWUYAiABKA1SBXZhbHVlOgI4ARpCChRNYXBVaW50NjRVaW50NjRFbnRyeRIQCgNrZXkYASABKARSA2tleRIUCgV2YWx1ZRgCIAEoBFIFdmFsdWU6AjgBGkIKFE1hcFNpbnQzMlNpbnQzMkVudHJ5EhAKA2tleRgBIAEoEVIDa2V5EhQKBXZhbHVlGAIgASgRUgV2YWx1ZToCOAEaQgoUTWFwU2ludDY0U2ludDY0RW50cnkSEAoDa2V5GAEgASgSUgNrZXkSFAoFdmFsdWUYAiABKBJSBXZhbHVlOgI4ARpEChZNYXBGaXhlZDMyRml4ZWQzMkVudHJ5EhAKA2tleRgBIAEoB1IDa2V5EhQKBXZhbHVlGAIgASgHUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRIQCgNrZXkYASABKAZSA2tleRIUCgV2YWx1ZRgCIAEoBlIFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRIQCgNrZXkYASABKA9SA2tleRIUCgV2YWx1ZRgCIAEoD1IFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRIQCgNrZXkYASABKBBSA2tleRIUCgV2YWx1ZRgCIAEoEFIFdmFsdWU6AjgBGkAKEk1hcEludDMyRmxvYXRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBGkEKE01hcEludDMyRG91YmxlRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAFSBXZhbHVlOgI4ARo+ChBNYXBCb29sQm9vbEVudHJ5EhAKA2tleRgBIAEoCFIDa2V5EhQKBXZhbHVlGAIgASgIUgV2YWx1ZToCOAEaXAoRTWFwSW50MzJFbnVtRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMQoFdmFsdWUYAiABKA4yGy5wcm90b2J1Zl91bml0dGVzdDMuTWFwRW51bVIFdmFsdWU6AjgBGm0KG01hcEludDMyRm9yZWlnbk1lc3NhZ2VFbnRyeRIQCgNrZXkYASABKAVSA2tleRI4CgV2YWx1ZRgCIAEoCzIiLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduTWVzc2FnZVIFdmFsdWU6AjgBIvgBCh9NZXNzYWdlQ29udGFpbmluZ0VudW1DYWxsZWRUeXBlElEKBHR5cGUYASADKAsyPS5wcm90b2J1Zl91bml0dGVzdDMuTWVzc2FnZUNvbnRhaW5pbmdFbnVtQ2FsbGVkVHlwZS5UeXBlRW50cnlSBHR5cGUabAoJVHlwZUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EkkKBXZhbHVlGAIgASgLMjMucHJvdG9idWZfdW5pdHRlc3QzLk1lc3NhZ2VDb250YWluaW5nRW51bUNhbGxlZFR5cGVSBXZhbHVlOgI4ASIUCgRUeXBlEgwKCFRZUEVfRk9PEAAisQEKH01lc3NhZ2VDb250YWluaW5nTWFwQ2FsbGVkRW50cnkSVAoFZW50cnkYASADKAsyPi5wcm90b2J1Zl91bml0dGVzdDMuTWVzc2FnZUNvbnRhaW5pbmdNYXBDYWxsZWRFbnRyeS5FbnRyeUVudHJ5UgVlbnRyeRo4CgpFbnRyeUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEqPwoHTWFwRW51bRIQCgxNQVBfRU5VTV9GT08QABIQCgxNQVBfRU5VTV9CQVIQARIQCgxNQVBfRU5VTV9CQVoQAkIdqgIaR29vZ2xlLlByb3RvYnVmLlRlc3RQcm90b3NK4iQKBhIEJABzAQqbDwoBDBIDJAASGswCIFRoaXMgZmlsZSBpcyBtb3N0bHkgZXF1aXZhbGVudCB0byBtYXBfdW5pdHRlc3QucHJvdG8sIGJ1dCBpbXBvcnRzCiB1bml0dGVzdF9wcm90bzMucHJvdG8gaW5zdGVhZCBvZiB1bml0dGVzdC5wcm90bywgc28gdGhhdCBpdCBvbmx5CiB1c2VzIHByb3RvMyBtZXNzYWdlcy4gVGhpcyBtYWtlcyBpdCBzdWl0YWJsZSBmb3IgdGVzdGluZwogaW1wbGVtZW50YXRpb25zIHdoaWNoIG9ubHkgc3VwcG9ydCBwcm90bzMuCiBUaGUgVGVzdFJlcXVpcmVkTWVzc2FnZU1hcCBtZXNzYWdlIGhhcyBiZWVuIHJlbW92ZWQgYXMgdGhlcmUgYXJlIG5vCiByZXF1aXJlZCBmaWVsZHMgaW4gcHJvdG8zLgoywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU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PiBQcmV2aW91c2x5LCBtZXNzYWdlIGNhbm5vdCBjb250YWluIG1hcCBmaWVsZCBjYWxsZWQgImVudHJ5Ii4KCgoKAwQGARIDcQgnCgsKBAQGAgASA3ICHgoMCgUEBgIABhIDcgITCgwKBQQGAgABEgNyFBkKDAoFBAYCAAMSA3IcHWIGcHJvdG8zCt0tChV1bml0dGVzdF9pc3N1ZXMucHJvdG8SD3VuaXR0ZXN0X2lzc3VlcyInCghJc3N1ZTMwNxobCgpOZXN0ZWRPbmNlGg0KC05lc3RlZFR3aWNlIs0BChNOZWdhdGl2ZUVudW1NZXNzYWdlEjMKBXZhbHVlGAEgASgOMh0udW5pdHRlc3RfaXNzdWVzLk5lZ2F0aXZlRW51bVIFdmFsdWUSOQoGdmFsdWVzGAIgAygOMh0udW5pdHRlc3RfaXNzdWVzLk5lZ2F0aXZlRW51bUICEABSBnZhbHVlcxJGCg1wYWNrZWRfdmFsdWVzGAMgAygOMh0udW5pdHRlc3RfaXNzdWVzLk5lZ2F0aXZlRW51bUICEAFSDHBhY2tlZFZhbHVlcyIRCg9EZXByZWNhdGVkQ2hpbGQiiwMKF0RlcHJlY2F0ZWRGaWVsZHNNZXNzYWdlEioKDlByaW1pdGl2ZVZhbHVlGAEgASgFQgIYAVIOUHJpbWl0aXZlVmFsdWUSKgoOUHJpbWl0aXZlQXJyYXkYAiADKAVCAhgBUg5QcmltaXRpdmVBcnJheRJICgxNZXNzYWdlVmFsdWUYAyABKAsyIC51bml0dGVzdF9pc3N1ZXMuRGVwcmVjYXRlZENoaWxkQgIYAVIMTWVzc2FnZVZhbHVlEkgKDE1lc3NhZ2VBcnJheRgEIAMoCzIgLnVuaXR0ZXN0X2lzc3Vlcy5EZXByZWNhdGVkQ2hpbGRCAhgBUgxNZXNzYWdlQXJyYXkSQQoJRW51bVZhbHVlGAUgASgOMh8udW5pdHRlc3RfaXNzdWVzLkRlcHJlY2F0ZWRFbnVtQgIYAVIJRW51bVZhbHVlEkEKCUVudW1BcnJheRgGIAMoDjIfLnVuaXR0ZXN0X2lzc3Vlcy5EZXByZWNhdGVkRW51bUICGAFSCUVudW1BcnJheSIfCglJdGVtRmllbGQSEgoEaXRlbRgBIAEoBVIEaXRlbSJXCg1SZXNlcnZlZE5hbWVzEhQKBXR5cGVzGAEgASgFUgV0eXBlcxIeCgpkZXNjcmlwdG9yGAIgASgFUgpkZXNjcmlwdG9yGhAKDlNvbWVOZXN0ZWRUeXBlIt8BChVUZXN0SnNvbkZpZWxkT3JkZXJpbmcSHwoLcGxhaW5faW50MzIYBCABKAVSCnBsYWluSW50MzISHQoJbzFfc3RyaW5nGAIgASgJSABSCG8xU3RyaW5nEhsKCG8xX2ludDMyGAUgASgFSABSB28xSW50MzISIQoMcGxhaW5fc3RyaW5nGAEgASgJUgtwbGFpblN0cmluZxIbCghvMl9pbnQzMhgGIAEoBUgBUgdvMkludDMyEh0KCW8yX3N0cmluZxgDIAEoCUgBUghvMlN0cmluZ0IECgJvMUIECgJvMiJRCgxUZXN0SnNvbk5hbWUSEgoEbmFtZRgBIAEoCVIEbmFtZRIZCgtkZXNjcmlwdGlvbhgCIAEoCVIEZGVzYxISCgRndWlkGAMgASgJUgRleGlkIpMBCgxPbmVvZk1lcmdpbmcSFAoEdGV4dBgBIAEoCUgAUgR0ZXh0Ej4KBm5lc3RlZBgCIAEoCzIkLnVuaXR0ZXN0X2lzc3Vlcy5PbmVvZk1lcmdpbmcuTmVzdGVkSABSBm5lc3RlZBokCgZOZXN0ZWQSDAoBeBgBIAEoBVIBeBIMCgF5GAIgASgFUgF5QgcKBXZhbHVlKlUKDE5lZ2F0aXZlRW51bRIWChJORUdBVElWRV9FTlVNX1pFUk8QABIWCglGaXZlQmVsb3cQ+///////////ARIVCghNaW51c09uZRD///////////8BKi4KDkRlcHJlY2F0ZWRFbnVtEhMKD0RFUFJFQ0FURURfWkVSTxAAEgcKA29uZRABQh2qAhpVbml0VGVzdC5Jc3N1ZXMuVGVzdFByb3Rvc0qlIgoHEgUAAIsBAQoICgEMEgMAABIKCAoBCBIDBgA3Co4CCgIIJRIDBgA3GmUgSXNzdWU6IE5vbi0iR29vZ2xlLlByb3RvYnVmZmVycyIgbmFtZXNwYWNlIHdpbGwgZW5zdXJlIHRoYXQgcHJvdG9idWZmZXIgbGlicmFyeSB0eXBlcyBhcmUgcXVhbGlmaWVkCjKbASBUaGVzZSBwcm90byBkZXNjcmlwdG9ycyBoYXZlIGF0IG9uZSB0aW1lIGJlZW4gcmVwb3J0ZWQgYXMgYW4gaXNzdWUgb3IgZGVmZWN0LgogVGhleSBhcmUga2VwdCBoZXJlIHRvIHJlcGxpY2F0ZSB0aGUgaXNzdWUsIGFuZCBjb250aW51ZSB0byB2ZXJpZnkgdGhlIGZpeC4KCggKAQISAwgAGAp2CgIEABIEDAARARpqIElzc3VlIDMwNzogd2hlbiBnZW5lcmF0aW5nIGRvdWJseS1uZXN0ZWQgdHlwZXMsIGFueSByZWZlcmVuY2VzCiBzaG91bGQgYmUgb2YgdGhlIGZvcm0gQS5UeXBlcy5CLlR5cGVzLkMuCgoKCgMEAAESAwwIEAoMCgQEAAMAEgQNAhADCgwKBQQAAwABEgMNChQKDgoGBAADAAMAEgQOBA8FCg4KBwQAAwADAAESAw4MFwqsBAoCBQASBCsALwEymAEgT2xkIGlzc3VlIDEzOiBodHRwOi8vY29kZS5nb29nbGUuY29tL3AvcHJvdG9idWYtY3NoYXJwLXBvcnQvaXNzdWVzL2RldGFpbD9pZD0xMwogTmV3IGlzc3VlIDMwOTogaHR0cHM6Ly9naXRodWIuY29tL3Byb3RvY29sYnVmZmVycy9wcm90b2J1Zi9pc3N1ZXMvMzA5CjIrIG1lc3NhZ2UgQSB7CiAgICBvcHRpb25hbCBpbnQzMiBfQSA9IDE7CiB9CjIrIG1lc3NhZ2UgQiB7CiAgICBvcHRpb25hbCBpbnQzMiBCXyA9IDE7CiB9CjIrbWVzc2FnZSBBQiB7CiAgICBvcHRpb25hbCBpbnQzMiBhX2IgPSAxOwp9CjLaASBTaW1pbGFyIGlzc3VlIHdpdGggbnVtZXJpYyBuYW1lcwogSmF2YSBjb2RlIGZhaWxlZCB0b28sIHNvIHByb2JhYmx5IGJlc3QgZm9yIHRoaXMgdG8gYmUgYSByZXN0cmljdGlvbi4KIFNlZSBodHRwczovL2dpdGh1Yi5jb20vcHJvdG9jb2xidWZmZXJzL3Byb3RvYnVmL2lzc3Vlcy8zMDgKIG1lc3NhZ2UgTnVtYmVyRmllbGQgewogICAgb3B0aW9uYWwgaW50MzIgXzAxID0gMTsKIH0KMiEgaXNzdWUgMTkgLSBuZWdhdGl2ZSBlbnVtIHZhbHVlcwoKCgoDBQABEgMrBREKCwoEBQACABIDLAQbCgwKBQUAAgABEgMsBBYK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Ug53ZWFrRGVwZW5kZW5jeRJDCgxtZXNzYWdlX3R5cGUYBCADKAsyIC5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvUgttZXNzYWdlVHlwZRJBCgllbnVtX3R5cGUYBSADKAsyJC5nb29nbGUucHJvdG9idWYuRW51bURlc2NyaXB0b3JQcm90b1IIZW51bVR5cGUSQQoHc2VydmljZRgGIAMoCzInLmdvb2dsZS5wcm90b2J1Zi5TZXJ2aWNlRGVzY3JpcHRvclByb3RvUgdzZXJ2aWNlEkMKCWV4dGVuc2lvbhgHIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90b1IJZXh0ZW5zaW9uEjYKB29wdGlvbnMYCCABKAsyHC5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnNSB29wdGlvbnMSSQoQc291cmNlX2NvZGVfaW5mbxgJIAEoCzIfLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb2RlSW5mb1IOc291cmNlQ29kZUluZm8SFgoGc3ludGF4GAwgASgJUgZzeW50YXgiuQYKD0Rlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEjsKBWZpZWxkGAIgAygLMiUuZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvUgVmaWVsZBJDCglleHRlbnNpb24YBiADKAsyJS5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG9SCWV4dGVuc2lvbhJBCgtuZXN0ZWRfdHlwZRgDIAMoCzIgLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG9SCm5lc3RlZFR5cGUSQQoJZW51bV90eXBlGAQgAygLMiQuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9yUHJvdG9SCGVudW1UeXBlElgKD2V4dGVuc2lvbl9yYW5nZRgFIAMoCzIvLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG8uRXh0ZW5zaW9uUmFuZ2VSDmV4dGVuc2lvblJhbmdlEkQKCm9uZW9mX2RlY2wYCCADKAsyJS5nb29nbGUucHJvdG9idWYuT25lb2ZEZXNjcmlwdG9yUHJvdG9SCW9uZW9mRGVjbBI5CgdvcHRpb25zGAcgASgLMh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zUgdvcHRpb25zElUKDnJlc2VydmVkX3JhbmdlGAkgAygLMi4uZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90by5SZXNlcnZlZFJhbmdlUg1yZXNlcnZlZFJhbmdlEiMKDXJlc2VydmVkX25hbWUYCiADKAlSDHJlc2VydmVkTmFtZRp6Cg5FeHRlbnNpb25SYW5nZRIUCgVzdGFydBgBIAEoBVIFc3RhcnQSEAoDZW5kGAIgASgFUgNlbmQSQAoHb3B0aW9ucxgDIAEoCzImLmdvb2dsZS5wcm90b2J1Zi5FeHRlbnNpb25SYW5nZU9wdGlvbnNSB29wdGlvbnMaNwoNUmVzZXJ2ZWRSYW5nZRIUCgVzdGFydBgBIAEoBVIFc3RhcnQSEAoDZW5kGAIgASgFUgNlbmQifAoVRXh0ZW5zaW9uUmFuZ2VPcHRpb25zElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIimAYKFEZpZWxkRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSFgoGbnVtYmVyGAMgASgFUgZudW1iZXISQQoFbGFiZWwYBCABKA4yKy5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uTGFiZWxSBWxhYmVsEj4KBHR5cGUYBSABKA4yKi5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uVHlwZVIEdHlwZRIbCgl0eXBlX25hbWUYBiABKAlSCHR5cGVOYW1lEhoKCGV4dGVuZGVlGAIgASgJUghleHRlbmRlZRIjCg1kZWZhdWx0X3ZhbHVlGAcgASgJUgxkZWZhdWx0VmFsdWUSHwoLb25lb2ZfaW5kZXgYCSABKAVSCm9uZW9mSW5kZXgSGwoJanNvbl9uYW1lGAogASgJUghqc29uTmFtZRI3CgdvcHRpb25zGAggASgLMh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9uc1IHb3B0aW9ucyK2AgoEVHlwZRIPCgtUWVBFX0RPVUJMRRABEg4KClRZUEVfRkxPQVQQAhIOCgpUWVBFX0lOVDY0EAMSDwoLVFlQRV9VSU5UNjQQBBIOCgpUWVBFX0lOVDMyEAUSEAoMVFlQRV9GSVhFRDY0EAYSEAoMVFlQRV9GSVhFRDMyEAcSDQoJVFlQRV9CT09MEAgSDwoLVFlQRV9TVFJJTkcQCRIOCgpUWVBFX0dST1VQEAoSEAoMVFlQRV9NRVNTQUdFEAsSDgoKVFlQRV9CWVRFUxAMEg8KC1RZUEVfVUlOVDMyEA0SDQoJVFlQRV9FTlVNEA4SEQoNVFlQRV9TRklYRUQzMhAPEhEKDVRZUEVfU0ZJWEVENjQQEBIPCgtUWVBFX1NJTlQzMhAREg8KC1RZUEVfU0lOVDY0EBIiQwoFTGFiZWwSEgoOTEFCRUxfT1BUSU9OQUwQARISCg5MQUJFTF9SRVFVSVJFRBACEhIKDkxBQkVMX1JFUEVBVEVEEAMiYwoUT25lb2ZEZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRI3CgdvcHRpb25zGAIgASgLMh0uZ29vZ2xlLnByb3RvYnVmLk9uZW9mT3B0aW9uc1IHb3B0aW9ucyLjAgoTRW51bURlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEj8KBXZhbHVlGAIgAygLMikuZ29vZ2xlLnByb3RvYnVmLkVudW1WYWx1ZURlc2NyaXB0b3JQcm90b1IFdmFsdWUSNgoHb3B0aW9ucxgDIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5FbnVtT3B0aW9uc1IHb3B0aW9ucxJdCg5yZXNlcnZlZF9yYW5nZRgEIAMoCzI2Lmdvb2dsZS5wcm90b2J1Zi5FbnVtRGVzY3JpcHRvclByb3RvLkVudW1SZXNlcnZlZFJhbmdlUg1yZXNlcnZlZFJhbmdlEiMKDXJlc2VydmVkX25hbWUYBSADKAlSDHJlc2VydmVkTmFtZRo7ChFFbnVtUmVzZXJ2ZWRSYW5nZRIUCgVzdGFydBgBIAEoBVIFc3RhcnQSEAoDZW5kGAIgASgFUgNlbmQigwEKGEVudW1WYWx1ZURlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEhYKBm51bWJlchgCIAEoBVIGbnVtYmVyEjsKB29wdGlvbnMYAyABKAsyIS5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlT3B0aW9uc1IHb3B0aW9ucyKnAQoWU2VydmljZURlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEj4KBm1ldGhvZBgCIAMoCzImLmdvb2dsZS5wcm90b2J1Zi5NZXRob2REZXNjcmlwdG9yUHJvdG9SBm1ldGhvZBI5CgdvcHRpb25zGAMgASgLMh8uZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VPcHRpb25zUgdvcHRpb25zIokCChVNZXRob2REZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRIdCgppbnB1dF90eXBlGAIgASgJUglpbnB1dFR5cGUSHwoLb3V0cHV0X3R5cGUYAyABKAlSCm91dHB1dFR5cGUSOAoHb3B0aW9ucxgEIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zUgdvcHRpb25zEjAKEGNsaWVudF9zdHJlYW1pbmcYBSABKAg6BWZhbHNlUg9jbGllbnRTdHJlYW1pbmcSMAoQc2VydmVyX3N0cmVhbWluZxgGIAEoCDoFZmFsc2VSD3NlcnZlclN0cmVhbWluZyKSCQoLRmlsZU9wdGlvbnMSIQoMamF2YV9wYWNrYWdlGAEgASgJUgtqYXZhUGFja2FnZRIwChRqYXZhX291dGVyX2NsYXNzbmFtZRgIIAEoCVISamF2YU91dGVyQ2xhc3NuYW1lEjUKE2phdmFfbXVsdGlwbGVfZmlsZXMYCiABKAg6BWZhbHNlUhFqYXZhTXVsdGlwbGVGaWxlcxJECh1qYXZhX2dlbmVyYXRlX2VxdWFsc19hbmRfaGFzaBgUIAEoCEICGAFSGWphdmFHZW5lcmF0ZUVxdWFsc0FuZEhhc2gSOgoWamF2YV9zdHJpbmdfY2hlY2tfdXRmOBgbIAEoCDoFZmFsc2VSE2phdmFTdHJpbmdDaGVja1V0ZjgSUwoMb3B0aW1pemVfZm9yGAkgASgOMikuZ29vZ2xlLnByb3RvYnVmLkZpbGVPcHRpb25zLk9wdGltaXplTW9kZToFU1BFRURSC29wdGltaXplRm9yEh0KCmdvX3BhY2thZ2UYCyABKAlSCWdvUGFja2FnZRI1ChNjY19nZW5lcmljX3NlcnZpY2VzGBAgASgIOgVmYWxzZVIRY2NHZW5lcmljU2VydmljZXMSOQoVamF2YV9nZW5lcmljX3NlcnZpY2VzGBEgASgIOgVmYWxzZVITamF2YUdlbmVyaWNTZXJ2aWNlcxI1ChNweV9nZW5lcmljX3NlcnZpY2VzGBIgASgIOgVmYWxzZVIRcHlHZW5lcmljU2VydmljZXMSNwoUcGhwX2dlbmVyaWNfc2VydmljZXMYKiABKAg6BWZhbHNlUhJwaHBHZW5lcmljU2VydmljZXMSJQoKZGVwcmVjYXRlZBgXIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSLwoQY2NfZW5hYmxlX2FyZW5hcxgfIAEoCDoFZmFsc2VSDmNjRW5hYmxlQXJlbmFzEioKEW9iamNfY2xhc3NfcHJlZml4GCQgASgJUg9vYmpjQ2xhc3NQcmVmaXgSKQoQY3NoYXJwX25hbWVzcGFjZRglIAEoCVIPY3NoYXJwTmFtZXNwYWNlEiEKDHN3aWZ0X3ByZWZpeBgnIAEoCVILc3dpZnRQcmVmaXgSKAoQcGhwX2NsYXNzX3ByZWZpeBgoIAEoCVIOcGhwQ2xhc3NQcmVmaXgSIwoNcGhwX25hbWVzcGFjZRgpIAEoCVIMcGhwTmFtZXNwYWNlEjQKFnBocF9tZXRhZGF0YV9uYW1lc3BhY2UYLCABKAlSFHBocE1ldGFkYXRhTmFtZXNwYWNlEiEKDHJ1YnlfcGFja2FnZRgtIAEoCVILcnVieVBhY2thZ2USWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24iOgoMT3B0aW1pemVNb2RlEgkKBVNQRUVEEAESDQoJQ09ERV9TSVpFEAISEAoMTElURV9SVU5USU1FEAMqCQjoBxCAgICAAkoECCYQJyLRAgoOTWVzc2FnZU9wdGlvbnMSPAoXbWVzc2FnZV9zZXRfd2lyZV9mb3JtYXQYASABKAg6BWZhbHNlUhRtZXNzYWdlU2V0V2lyZUZvcm1hdBJMCh9ub19zdGFuZGFyZF9kZXNjcmlwdG9yX2FjY2Vzc29yGAIgASgIOgVmYWxzZVIcbm9TdGFuZGFyZERlc2NyaXB0b3JBY2Nlc3NvchIlCgpkZXByZWNhdGVkGAMgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBIbCgltYXBfZW50cnkYByABKAhSCG1hcEVudHJ5ElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAJKBAgIEAlKBAgJEAoi4gMKDEZpZWxkT3B0aW9ucxJBCgVjdHlwZRgBIAEoDjIjLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMuQ1R5cGU6BlNUUklOR1IFY3R5cGUSFgoGcGFja2VkGAIgASgIUgZwYWNrZWQSRwoGanN0eXBlGAYgASgOMiQuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5KU1R5cGU6CUpTX05PUk1BTFIGanN0eXBlEhkKBGxhenkYBSABKAg6BWZhbHNlUgRsYXp5EiUKCmRlcHJlY2F0ZWQYAyABKAg6BWZhbHNlUgpkZXByZWNhdGVkEhkKBHdlYWsYCiABKAg6BWZhbHNlUgR3ZWFrElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uIi8KBUNUeXBlEgoKBlNUUklORxAAEggKBENPUkQQARIQCgxTVFJJTkdfUElFQ0UQAiI1CgZKU1R5cGUSDQoJSlNfTk9STUFMEAASDQoJSlNfU1RSSU5HEAESDQoJSlNfTlVNQkVSEAIqCQjoBxCAgICAAkoECAQQBSJzCgxPbmVvZk9wdGlvbnMSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiLAAQoLRW51bU9wdGlvbnMSHwoLYWxsb3dfYWxpYXMYAiABKAhSCmFsbG93QWxpYXMSJQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAkoECAUQBiKeAQoQRW51bVZhbHVlT3B0aW9ucxIlCgpkZXByZWNhdGVkGAEgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACIpwBCg5TZXJ2aWNlT3B0aW9ucxIlCgpkZXByZWNhdGVkGCEgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACIuACCg1NZXRob2RPcHRpb25zEiUKCmRlcHJlY2F0ZWQYISABKAg6BWZhbHNlUgpkZXByZWNhdGVkEnEKEWlkZW1wb3RlbmN5X2xldmVsGCIgASgOMi8uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMuSWRlbXBvdGVuY3lMZXZlbDoTSURFTVBPVEVOQ1lfVU5LTk9XTlIQaWRlbXBvdGVuY3lMZXZlbBJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbiJQChBJZGVtcG90ZW5jeUxldmVsEhcKE0lERU1QT1RFTkNZX1VOS05PV04QABITCg9OT19TSURFX0VGRkVDVFMQARIOCgpJREVNUE9URU5UEAIqCQjoBxCAgICAAiKaAwoTVW5pbnRlcnByZXRlZE9wdGlvbhJBCgRuYW1lGAIgAygLMi0uZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24uTmFtZVBhcnRSBG5hbWUSKQoQaWRlbnRpZmllcl92YWx1ZRgDIAEoCVIPaWRlbnRpZmllclZhbHVlEiwKEnBvc2l0aXZlX2ludF92YWx1ZRgEIAEoBFIQcG9zaXRpdmVJbnRWYWx1ZRIsChJuZWdhdGl2ZV9pbnRfdmFsdWUYBSABKANSEG5lZ2F0aXZlSW50VmFsdWUSIQoMZG91YmxlX3ZhbHVlGAYgASgBUgtkb3VibGVWYWx1ZRIhCgxzdHJpbmdfdmFsdWUYByABKAxSC3N0cmluZ1ZhbHVlEicKD2FnZ3JlZ2F0ZV92YWx1ZRgIIAEoCVIOYWdncmVnYXRlVmFsdWUaSgoITmFtZVBhcnQSGwoJbmFtZV9wYXJ0GAEgAigJUghuYW1lUGFydBIhCgxpc19leHRlbnNpb24YAiACKAhSC2lzRXh0ZW5zaW9uIqcCCg5Tb3VyY2VDb2RlSW5mbxJECghsb2NhdGlvbhgBIAMoCzIoLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb2RlSW5mby5Mb2NhdGlvblIIbG9jYXRpb24azgEKCExvY2F0aW9uEhYKBHBhdGgYASADKAVCAhABUgRwYXRoEhYKBHNwYW4YAiADKAVCAhABUgRzcGFuEikKEGxlYWRpbmdfY29tbWVudHMYAyABKAlSD2xlYWRpbmdDb21tZW50cxIrChF0cmFpbGluZ19jb21tZW50cxgEIAEoCVIQdHJhaWxpbmdDb21tZW50cxI6ChlsZWFkaW5nX2RldGFjaGVkX2NvbW1lbnRzGAYgAygJUhdsZWFkaW5nRGV0YWNoZWRDb21tZW50cyLRAQoRR2VuZXJhdGVkQ29kZUluZm8STQoKYW5ub3RhdGlvbhgBIAMoCzItLmdvb2dsZS5wcm90b2J1Zi5HZW5lcmF0ZWRDb2RlSW5mby5Bbm5vdGF0aW9uUgphbm5vdGF0aW9uGm0KCkFubm90YXRpb24SFgoEcGF0aBgBIAMoBUICEAFSBHBhdGgSHwoLc291cmNlX2ZpbGUYAiABKAlSCnNvdXJjZUZpbGUSFAoFYmVnaW4YAyABKAVSBWJlZ2luEhAKA2VuZBgEIAEoBVIDZW5kQo8BChNjb20uZ29vZ2xlLnByb3RvYnVmQhBEZXNjcmlwdG9yUHJvdG9zSAFaPmdpdGh1Yi5jb20vZ29sYW5nL3Byb3RvYnVmL3Byb3RvYy1nZW4tZ28vZGVzY3JpcHRvcjtkZXNjcmlwdG9y+AEBogIDR1BCqgIaR29vZ2xlLlByb3RvYnVmLlJlZmxlY3Rpb25Kyr4CCgcSBScA9AYBCqoPCgEMEgMnABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCjLbAiBBdXRob3I6IGtlbnRvbkBnb29nbGUuY29tIChLZW50b24gVmFyZGEpCiAgQmFzZWQgb24gb3JpZ2luYWwgUHJvdG9jb2wgQnVmZmVycyBkZXNpZ24gYnkKICBT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bm90YXRpb25zIHdoaWNoIG1heSBjYXVzZSBjb2RlIHRvIGJlIGdlbmVyYXRlZCBzbGlnaHRseSBkaWZmZXJlbnRseQogb3IgbWF5IGNvbnRhaW4gaGludHMgZm9yIGNvZGUgdGhhdCBtYW5pcHVsYXRlcyBwcm90b2NvbCBtZXNzYWdlcy4KCiBDbGllbnRzIG1heSBkZWZpbmUgY3VzdG9tIG9wdGlvbnMgYXMgZXh0ZW5zaW9ucyBvZiB0aGUgKk9wdGlvbnMgbWVzc2FnZXMuCiBUaGVzZSBleHRlbnNpb25zIG1heSBub3QgeWV0IGJlIGtub3duIGF0IHBhcnNpbmcgdGltZSwgc28gdGhlIHBhcnNlciBjYW5ub3QKIHN0b3JlIHRoZSB2YWx1ZXMgaW4gdGhlbS4gIEluc3RlYWQgaXQgc3RvcmVzIHRoZW0gaW4gYSBmaWVsZCBpbiB0aGUgKk9wdGlvbnMKIG1lc3NhZ2UgY2FsbGVkIHVuaW50ZXJwcmV0ZWRfb3B0aW9uLiBUaGlzIGZpZWxkIG11c3QgaGF2ZSB0aGUgc2FtZSBuYW1lCiBhY3Jvc3MgYWxsICpPcHRpb25zIG1lc3NhZ2VzLiBXZSB0aGVuIHVzZSB0aGlzIGZpZWxkIHRvIHBvcHVsYXRlIHRoZQogZXh0ZW5zaW9ucyB3aGVuIHdlIGJ1aWxkIGEgZGVzY3JpcHRvciwgYXQgd2hpY2ggcG9pbnQgYWxsIHByb3RvcyBoYXZlIGJlZW4KIHBhcnNlZCBhbmQgc28gYWxsIGV4dGVuc2lvbnMgYXJlIGtub3duLgoKIEV4dGVuc2lvbiBudW1iZXJzIGZvciBjdXN0b20gb3B0aW9ucyBtYXkgYmUgY2hvc2VuIGFzIGZvbGxvd3M6CiAqIEZvciBvcHRpb25zIHdoaWNoIHdpbGwgb25seSBiZSB1c2VkIHdpdGhpbiBhIHNpbmdsZSBhcHBsaWNhdGlvbiBvcgogICBvcmdhbml6YXRpb24sIG9yIGZvciBleHBlcmltZW50YWwgb3B0aW9ucywgdXNlIGZpZWxkIG51bWJlcnMgNTAwMDAKICAgdGhyb3VnaCA5OTk5OS4gIEl0IGlzIHVwIHRvIHlvdSB0byBlbnN1cmUgdGhhdCB5b3UgZG8gbm90IHVzZSB0aGUKICAgc2FtZSBudW1iZXIgZm9yIG11bHRpcGxlIG9wdGlvbnMuCiAqIEZvciBvcHRpb25zIHdoaWNoIHdpbGwgYmUgcHVibGlzaGVkIGFuZCB1c2VkIHB1YmxpY2x5IGJ5IG11bHRpcGxlCiAgIGluZGVwZW5kZW50IGVudGl0aWVzLCBlLW1haWwgcHJvdG9idWYtZ2xvYmFsLWV4dGVuc2lvbi1yZWdpc3RyeUBnb29nbGUuY29tCiAgIHRvIHJlc2VydmUgZXh0ZW5zaW9uIG51bWJlcnMuIFNpbXBseSBwcm92aWRlIHlvdXIgcHJvamVjdCBuYW1lIChlLmcuCiAgIE9iamVjdGl2ZS1DIHBsdWdpbikgYW5kIHlvdXIgcHJvamVjdCB3ZWJzaXRlIChpZiBhdmFpbGFibGUpIC0tIHRoZXJlJ3Mgbm8KICAgbmVlZCB0byBleHBsYWluIGhvdyB5b3UgaW50ZW5kIHRvIHVzZSB0aGVtLiBVc3VhbGx5IHlvdSBvbmx5IG5lZWQgb25lCiAgIGV4dGVuc2lvbiBudW1iZXIuIFlvdSBjYW4gZGVjbGFyZSBtdWx0aXBsZSBvcHRpb25zIHdpdGggb25seSBvbmUgZXh0ZW5zaW9uCiAgIG51bWJlciBieSBwdXR0aW5nIHRoZW0gaW4gYSBzdWItbWVzc2FnZS4gU2VlIHRoZSBDdXN0b20gT3B0aW9ucyBzZWN0aW9uIG9mCiAgIHRoZSBkb2NzIGZvciBleGFtcGxlczoKICAgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy9kb2NzL3Byb3RvI29wdGlvbnMKICAgSWYgdGhpcyB0dXJucyBvdXQgdG8gYmUgcG9wdWxhciwgYSB3ZWIgc2VydmljZSB3aWxsIGJlIHNldCB1cAogICB0byBhdXRvbWF0aWNhbGx5IGFzc2lnbiBvcHRpb24gbnVtYmVycy4KCgsKAwQKARIEvQIIEwr0AQoEBAoCABIEwwICIxrlASBTZXRzIHRoZSBKYXZhIHBhY2thZ2Ugd2hlcmUgY2xhc3NlcyBnZW5lcmF0ZWQgZnJvbSB0aGlzIC5wcm90byB3aWxsIGJlCiBwbGFjZWQuICBCeSBkZWZhdWx0LCB0aGUgcHJvdG8gcGFja2FnZSBpcyB1c2VkLCBidXQgdGhpcyBpcyBvZnRlbgogaW5hcHByb3ByaWF0ZSBiZWNhdXNlIHByb3RvIHBhY2thZ2VzIGRvIG5vdCBub3JtYWxseSBzdGFydCB3aXRoIGJhY2t3YXJkcwogZG9tYWluIG5hbWVzLgoKDQoFBAoCAAQSBMMCAgoKDQoFBAoCAAUSBMMCCxEKDQoFBAoCAAESBMMCEh4KDQoFBAoCAAMSBMMCISIKvwIKBAQKAgESBMsCAisasAIgSWYgc2V0LCBhbGwgdGhlIGNsYXNzZXMgZnJvbSB0aGUgLnByb3RvIGZpbGUgYXJlIHdyYXBwZWQgaW4gYSBzaW5nbGUKIG91dGVyIGNsYXNzIHdpdGggdGhlIGdpdmVuIG5hbWUuICBUaGlzIGFwcGxpZXMgdG8gYm90aCBQcm90bzEKIChlcXVpdmFsZW50IHRvIHRoZSBvbGQgIi0tb25lX2phdmFfZmlsZSIgb3B0aW9uKSBhbmQgUHJvdG8yICh3aGVyZQogYSAucHJvdG8gYWx3YXlzIHRyYW5zbGF0ZXMgdG8gYSBzaW5nbGUgY2xhc3MsIGJ1dCB5b3UgbWF5IHdhbnQgdG8KIGV4cGxpY2l0bHkgY2hvb3NlIHRoZSBjbGFzcyBuYW1lKS4KCg0KBQQKAgEEEgTLAgIKCg0KBQQKAgEFEgTLAgsRCg0KBQQKAgEBEgTLAhImCg0KBQQKAgEDEgTLAikqCqMDCgQECgICEgTTAgI7GpQDIElmIHNldCB0cnVlLCB0aGVuIHRoZSBKYXZhIGNvZGUgZ2VuZXJhdG9yIHdpbGwgZ2VuZXJhdGUgYSBzZXBhcmF0ZSAuamF2YQogZmlsZSBmb3IgZWFjaCB0b3AtbGV2ZWwgbWVzc2FnZSwgZW51bSwgYW5kIHNlcnZpY2UgZGVmaW5lZCBpbiB0aGUgLnByb3RvCiBmaWxlLiAgVGh1cywgdGhlc2UgdHlwZXMgd2lsbCAqbm90KiBiZSBuZXN0ZWQgaW5zaWRlIHRoZSBvdXRlciBjbGFzcwogbmFtZWQgYnkgamF2YV9vdXRlcl9jbGFzc25hbWUuICBIb3dldmVyLCB0aGUgb3V0ZXIgY2xhc3Mgd2lsbCBzdGlsbCBiZQogZ2VuZXJhdGVkIHRvIGNvbnRhaW4gdGhl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c2FnZVNldCB3aXJlIGZvcm1hdCBmb3IgZXh0ZW5zaW9ucy4KIFRoaXMgaXMgcHJvdmlkZWQgZm9yIGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5IHdpdGggdGhlIE1lc3NhZ2VTZXQgd2lyZQogZm9ybWF0LiAgWW91IHNob3VsZCBub3QgdXNlIHRoaXMgZm9yIGFueSBvdGhlciByZWFzb246ICBJdCdzIGxlc3MKIGVmZmljaWVudCwgaGFzIGZld2VyIGZlYXR1cmVzLCBhbmQgaXMgbW9yZSBjb21wbGljYXRlZC4KCiBUaGUgbWVzc2FnZSBtdXN0IGJlIGRlZmluZWQgZXhhY3RseSBhcyBmb2xsb3dzOgogICBtZXNzYWdlIEZvbyB7CiAgICAgb3B0aW9uIG1lc3NhZ2Vfc2V0X3dpcmVfZm9ybWF0ID0gdHJ1ZTsKICAgICBleHRlbnNpb25zIDQgdG8gbWF4OwogICB9CiBOb3RlIHRoYXQgdGhlIG1lc3NhZ2UgY2Fubm90IGhhdmUgYW55IGRlZmluZWQgZmllbGRzOyBNZXNzYWdlU2V0cyBvbmx5CiBoYXZlIGV4dGVuc2lvbnMuCgogQWxsIGV4dGVuc2lvbnMgb2YgeW91ciB0eXBlIG11c3QgYmUgc2luZ3VsYXIgbWVzc2FnZXM7IGUuZy4gdGhleSBjYW5ub3QKIGJlIGludDMycywgZW51bXMsIG9yIHJlcGVhdGVkIG1lc3NhZ2VzLgoKIEJlY2F1c2UgdGhpcyBpcyBhbiBvcHRpb24sIHRoZSBhYm92ZSB0d28gcmVzdHJpY3Rpb25zIGFyZSBub3QgZW5mb3JjZWQgYnkKIHRoZSBwcm90b2NvbCBjb21waWxlci4KCg0KBQQLAgAEEgTNAwIKCg0KBQQLAgAFEgTNAwsPCg0KBQQLAgABEgTNAxAnCg0KBQQLAgADEgTNAyorCg0KBQQLAgAIEgTNAyw9Cg0KBQQLAgAHEgTNAzc8CusBCgQECwIBEgTSAwJGGtwBIERpc2FibGVzIHRoZSBnZW5lcmF0aW9uIG9mIHRoZSBzdGFuZGFyZCAiZGVzY3JpcHRvcigpIiBhY2Nlc3Nvciwgd2hpY2ggY2FuCiBjb25mbGljdCB3aXRoIGEgZmllbGQgb2YgdGhlIHNhbWUgbmFt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b2IuIEluIHByb3RvMywgb25seSBleHBsaWNpdCBzZXR0aW5nIGl0IHRvCiBmYWxzZSB3aWxsIGF2b2lkIHVzaW5nIHBhY2tlZCBlbmNvZGluZy4KCg0KBQQMAgEEEgSPBAIKCg0KBQQMAgEFEgSPBAsPCg0KBQQMAgEBEgSPBBAWCg0KBQQMAgEDEgSPBBkaCpoFCgQEDAICEgScBAIzGosFIFRoZSBqc3R5cGUgb3B0aW9uIGRldGVybWluZXMgdGhlIEphdmFTY3JpcHQgdHlwZSB1c2VkIGZvciB2YWx1ZXMgb2YgdGhlCiBmaWVsZC4gIFRoZSBvcHRpb24gaXMgcGVybWl0dGVkIG9ubHkgZm9yIDY0IGJpdCBpbnRlZ3JhbCBhbmQgZml4ZWQgdHlwZXMKIChpbnQ2NCwgdWludDY0LCBzaW50NjQsIGZpeGVkNjQsIHNmaXhlZDY0KS4gIEEgZmllbGQgd2l0aCBqc3R5cGUgSlNfU1RSSU5HCiBpcyByZXByZXNlbnRlZCBhcyBKYXZhU2NyaXB0IHN0cmluZywgd2hpY2ggYXZvaWRzIGxvc3Mgb2YgcHJlY2lzaW9uIHRoYXQKIGNhbiBoYXBwZW4gd2hlbiBhIGxhcmdlIHZhbHVlIGlzIGNvbnZlcnRlZCB0byBhIGZsb2F0aW5nIHBvaW50IEphdmFTY3JpcHQuCiBTcGVjaWZ5aW5nIEpTX05VTUJFUiBmb3IgdGhlIGpzdHlwZSBjYXVzZXMgdGhlIGdlbmVyYXRlZCBKYXZhU2NyaXB0IGNvZGUgdG8KIHVzZSB0aGUgSmF2YVNjcmlwdCAibnVtYmVyIiB0eXBlLiAgVGhlIGJlaGF2aW9yIG9mIHRoZSBkZWZhdWx0IG9wdGlvbgogSlNfTk9STUFMIGlzIGltcGxlbWVudGF0aW9uIGRlcGVuZGVudC4KCiBUaGlzIG9wdGlvbiBpcyBhbiBlbnVtIHRvIHBlcm1pdCBhZGRpdGlvbmFsIHR5cGVzIHRvIGJlIGFkZGVkLCBlLmcuCiBnb29nLm1hdGguSW50ZWdlci4KCg0KBQQMAgIEEgScBAIKCg0KBQQMAgIGEgScBAsRCg0KBQQMAgIBEgScBBIYCg0KBQQMAgIDEgScBBscCg0KBQQMAgIIEgScBB0yCg0KBQQMAgIHEgScBCgxCg4KBAQMBAESBp0EAqYEAwoNCgUEDAQBARIEnQQHDQonCgYEDAQBAgASBJ8EBBIaFyBVc2UgdGhlIGRlZmF1bHQgdHlwZS4KCg8KBwQMBAECAAESBJ8EBA0KDwoHBAwEAQIAAhIEnwQQEQopCgYEDAQBAgESBKIEBBIaGSBVc2UgSmF2YVNjcmlwdCBzdHJpbmdzLgoKDwoHBAwEAQIBARIEogQEDQoPCgcEDAQBAgECEgSiBBARCikKBgQMBAECAhIEpQQEEhoZIFVzZSBKYXZhU2NyaXB0IG51bWJlcnMuCgoPCgcEDAQBAgIBEgSlBAQNCg8KBwQMBAECAgISBKUEEBEK7wwKBAQMAgMSBMQEAisa4AwgU2hvdWxkIHRoaXMgZmllbGQgYmUgcGFyc2VkIGxhemlseT8gIExhenkgYXBwbGllcyBvbmx5IHRvIG1lc3NhZ2UtdHlwZQogZmllbGRzLiAgSXQgbWVhbnMgdGhhdCB3aGVuIHRoZSBvdXRlciBtZXNzYWdlIGlzIGluaXRpYWxseSBwYXJzZWQsIHRoZQogaW5uZXIgbWVzc2FnZSdzIGNvbnRlbnRzIHdpbGwgbm90IGJlIHBhcnNlZCBidXQgaW5zdGVhZCBzdG9yZWQgaW4gZW5jb2RlZAogZm9ybS4gIFRoZSBpbm5lciBtZXNzYWdlIHdpbGwgYWN0dWFsbHkgYmUgcGFyc2VkIHdoZW4gaXQgaXMgZmlyc3QgYWNjZXNzZWQuCgogVGhpcyBpcyBvbmx5IGEgaGludC4gIEltcGxlbWVudGF0aW9ucyBhcmUgZnJlZSB0byBjaG9vc2Ugd2hldGhlciB0byB1c2UKIGVhZ2VyIG9yIGxhenkgcGFyc2luZyByZWdhcmRsZXNzIG9mIHRoZSB2YWx1ZSBvZiB0aGlzIG9wdGlvbi4gIEhvd2V2ZXIsCiBzZXR0aW5nIHRoaXMgb3B0aW9uIHRydWUgc3VnZ2VzdHMgdGhhdCB0aGUgcHJvdG9jb2wgYXV0aG9yIGJlbGlldmVzIHRoYXQKIHVzaW5nIGxhenkgcGFyc2luZyBvbiB0aGlzIGZpZWxkIGlzIHdvcnRoIHRoZSBhZGRpdGlvbmFsIGJvb2trZWVwaW5nCiBvdmVyaGVhZCB0eXBpY2FsbHkgbmVlZGVkIHRvIGltcGxlbWVudCBpdC4KCiBUaGlzIG9wdGlvbiBkb2VzIG5vdCBhZmZlY3QgdGhlIHB1YmxpYyBpbnRlcmZhY2Ugb2YgYW55IGdlbmVyYXRlZCBjb2RlOwogYWxsIG1ldGhvZCBzaWduYXR1cmVzIHJlbWFpbiB0aGUgc2FtZS4gIEZ1cnRoZXJtb3JlLCB0aHJlYWQtc2FmZXR5IG9mIHRoZQogaW50ZXJmYWNlIGlzIG5vdCBhZmZlY3RlZCBieSB0aGlzIG9wdGlvbjsgY29uc3QgbWV0aG9kcyByZW1haW4gc2FmZSB0bwogY2FsbCBmcm9tIG11bHRpcGxlIHRocmVhZHMgY29uY3VycmVudGx5LCB3aGlsZSBub24tY29uc3QgbWV0aG9kcyBjb250aW51ZQogdG8gcmVxdWlyZSBleGNsdXNpdmUgYWNjZXNzLgoKCiBOb3RlIHRoYXQgaW1wbGVtZW50YXRpb25zIG1heSBjaG9vc2Ugbm90IHRvIGNoZWNrIHJlcXVpcmVkIGZpZWxkcyB3aXRoaW4KIGEgbGF6eSBzdWItbWVzc2FnZS4gIFRoYXQgaXMsIGNhbGxpbmcgSXNJbml0aWFsaXplZCgpIG9uIHRoZSBvdXRlciBtZXNzYWdlCiBtYXkgcmV0dXJuIHRydWUgZXZlbiBpZiB0aGUgaW5uZXIgbWVzc2FnZSBoYXMgbWlzc2luZyByZXF1aXJlZCBmaWVsZHMuCiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIG90aGVyd2lzZSB0aGUgaW5uZXIgbWVzc2FnZSB3b3VsZCBoYXZlIHRvIGJlCiBwYXJzZWQgaW4gb3JkZXIgdG8gcGVyZm9ybSB0aGUgY2hlY2ssIGRlZmVhdGluZyB0aGUgcHVycG9zZSBvZiBsYXp5CiBwYXJzaW5nLiAgQW4gaW1wbGVtZW50YXRpb24gd2hpY2ggY2hvb3NlcyBub3QgdG8gY2hlY2sgcmVxdWlyZWQgZmllbGRzCiBtdXN0IGJlIGNvbnNpc3RlbnQgYWJvdXQgaXQuICBUaGF0IGlzLCBmb3IgYW55IHBhcnRpY3VsYXIgc3ViLW1lc3NhZ2UsIHRoZQogaW1wbGVtZW50YXRpb24gbXVzdCBlaXRoZXIgKmFsd2F5cyogY2hlY2sgaXRzIHJl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IGNhbiBkZWZpbmUgY3VzdG9tIG9wdGlvbnMgaW4gZXh0ZW5zaW9ucyBvZiB0aGlzIG1lc3NhZ2UuIFNlZSBhYm92ZS4KCgwKBAQQBQASBJUFDRgKDQoFBBAFAAESBJUFDREKDQoFBBAFAAISBJUFFRgKDAoCBBESBpgFALUFAQoLCgMEEQESBJgFCBUK1gMKBAQRAgASBKMFAjIa3AEgSXMgdGhpcyBtZXRob2QgZGVwcmVjYXRlZD8KIERlcGVuZGluZyBvbiB0aGUgdGFyZ2V0IHBsYXRmb3JtLCB0aGlzIGNhbiBlbWl0IERlcHJlY2F0ZWQgYW5ub3RhdGlvbnMKIGZvciB0aGUgbWV0aG9kLCBvciBpdCB3aWxsIGJlIGNvbXBsZXRlbHkgaWdub3JlZDsgaW4gdGhlIHZlcnkgbGVhc3QsCiB0aGlzIGlzIGEgZm9ybWFsaXphdGlvbiBmb3IgZGVwcmVjYXRpbmcgbWV0aG9kcy4KMugBIE5vdGU6ICBGaWVsZCBudW1iZXJzIDEgdGhyb3VnaCAzMiBhcmUgcmVzZXJ2ZWQgZm9yIEdvb2dsZSdzIGludGVybmFsIFJQQwogICBmcmFtZXdvcmsuICBXZSBhcG9sb2dpemUgZm9yIGhvYXJkaW5nIHRoZXNlIG51bWJlcnMgdG8gb3Vyc2VsdmVzLCBidXQKICAgd2Ugd2VyZSBhbHJlYWR5IHVzaW5nIHRoZW0gbG9uZyBiZWZvcmUgd2UgZGVjaWRlZCB0byByZWxlYXNlIFByb3RvY29sCiAgIEJ1ZmZlcnMuCgoNCgUEEQIABBIEowUCCgoNCgUEEQIABRIEowULDwoNCgUEEQIAARIEowUQGgoNCgUEEQIAAxIEowUdHwoNCgUEEQIACBIEowUgMQoNCgUEEQIABxIEowUrMArwAQoEBBEEABIGqAUCrAUDGt8BIElzIHRoaXMgbWV0aG9kIHNpZGUtZWZmZWN0LWZyZWUgKG9yIHNhZmUgaW4gSFRUUCBwYXJsYW5jZSksIG9yIGlkZW1wb3RlbnQsCiBvciBuZWl0aGVyPyBIVFRQIGJhc2VkIFJQQyBpbXBsZW1lbnRhdGlvbiBtYXkgY2hvb3NlIEdFVCB2ZXJiIGZvciBzYWZlCiBtZXRob2RzLCBhbmQgUFVUIHZlcmIgZm9yIGlk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cnMsIGFuZCBzaW1pbGFyCiB0b29scy4KCiBGb3IgZXhhbXBsZSwgc2F5IHdlIGhhdmUgYSBmaWxlIGxpa2U6CiAgIG1lc3NhZ2UgRm9vIHsKICAgICBvcHRpb25hbCBzdHJpbmcgZm9vID0gMTsKICAgfQogTGV0J3MgbG9vayBhdCBqdXN0IHRoZSBmaWVsZCBkZWZpbml0aW9uOgogICBvcHRpb25hbCBzdHJpbmcgZm9vID0gMTsKICAgXiAgICAgICBeXiAgICAgXl4gIF4gIF5eXgogICBhICAgICAgIGJjICAgICBkZSAgZiAgZ2hpCiBXZSBoYXZlIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOgogICBzcGFuICAgcGF0aCAgICAgICAgICAgICAgIHJlcHJlc2VudHMKICAgW2EsaSkgIFsgNCwgMCwgMiwgMCBdICAgICBUaGUgd2hvbGUgZmllbGQgZGVmaW5pdGlvbi4KICAgW2EsYikgIFsgNCwgMCwgMiwgMCwgNCBdICBUaGUgbGFiZWwgKG9wdGlvbmFsKS4KICAgW2MsZCkgIFsgNCwgMCwgMiwgMCwgNSBdICBUaGUgdHlwZSAoc3RyaW5nKS4KICAgW2UsZikgIFsgNCwgMCwgMiwgMCwgMSBdICBUaGUgbmFtZSAoZm9vKS4KICAgW2csaCkgIFsgNCwgMCwgMiwgMCwgMyBdICBUaGUgbnVtYmVyICgxKS4KCiBOb3RlczoKIC0gQSBsb2NhdGlvbiBtYXkgcmVmZXIgdG8gYSByZXBlYXRlZCBmaWVsZCBpdHNlbGYgKGkuZS4gbm90IHRvIGFueQogICBwYXJ0aWN1bGFyIGluZGV4IHdpdGhpbiBpdCkuICBUaGlzIGlzIHVzZWQgd2hlbmV2ZXIgYSBzZXQgb2YgZWxlbWVudHMgYXJlCiAgIGxvZ2ljYWxseSBlbmNsb3NlZCBpbiBhIHNpbmdsZSBjb2RlIHNlZ21lbnQuICBGb3IgZXhhbXBsZSwgYW4gZW50aXJlCiAgIGV4dGVuZCBibG9jayAocG9zc2libHkgY29udGFpbmluZyBtdWx0aXBsZSBleHRlbnNpb24gZGVmaW5pdGlvbnMpIHdpbGwKICAgaGF2ZSBhbiBvdXRlciBsb2NhdGlvbiB3aG9zZSBwYXRoIHJlZmVycyB0byB0aGUgImV4dGVuc2lvbnMiIHJlcGVhdGVkCiAgIGZpZWxkIHdpdGhvdXQgYW4gaW5kZXguCiAtIE11bHRpcGxlIGxvY2F0aW9ucyBtYXkgaGF2ZSB0aGUgc2FtZSBwYXRoLiAgVGhpcyBoYXBwZW5zIHdoZW4gYSBzaW5nbGUKICAgbG9naWNhbCBkZWNsYXJhdGlvbiBpcyBzcHJlYWQgb3V0IGFjcm9zcyBtdWx0aXBsZSBwbGFjZXMuICBUaGUgbW9zdAogICBvYnZpb3VzIGV4YW1wbGUgaXMgdGhlICJleHRlbmQiIGJsb2NrIGFnYWluIC0tIHRoZXJlIG1heSBiZSBtdWx0aXBsZQogICBleHRlbmQgYmxvY2tzIGluIHRoZSBzYW1lIHNjb3BlLCBlYWNoIG9mIHdoaWNoIHdpbGwgaGF2ZSB0aGUgc2FtZSBwYXRoLgogLSBBIGxvY2F0aW9uJ3Mgc3BhbiBpcyBub3QgYWx3YXlzIGEgc3Vic2V0IG9mIGl0cyBwYXJlbnQncyBzcGFuLiAgRm9yCiAgIGV4YW1wbGUsIHRoZSAiZXh0ZW5kZWUiIG9mIGFuIGV4dGVuc2lvbiBkZWNsYXJhdGlvbiBhcHBlYXJzIGF0IHRoZQogICBiZWdpbm5pbmcgb2YgdGhlICJleHRlbmQiIGJsb2NrIGFuZCBpcyBzaGFyZWQgYnkgYWxsIGV4dGVuc2lvbnMgd2l0aGluCiAgIHRoZSBibG9jay4KIC0gSnVzdCBiZWNhdXNlIGEgbG9jYXRpb24ncyBzcGFuIGlzIGEgc3Vic2V0IG9mIHNvbWUgb3RoZXIgbG9jYXRpb24ncyBzcGFuCiAgIGRvZXMgbm90IG1lYW4gdGhhdCBpdCBpcyBhIGRlc2NlbmRhbnQuICBGb3IgZXhhbXBsZSwgYSAiZ3JvdXAiIGRlZmluZXMKICAgYm90aCBhIHR5cGUgYW5kIGEgZmllbGQgaW4gYSBzaW5nbGUgZGVjbGFyYXRpb24uICBUaHVzLCB0aGUgbG9jYXRpb25zCiAgIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHR5cGUgYW5kIGZpZWxkIGFuZCB0aGVpciBjb21wb25lbnRzIHdpbGwgb3ZlcmxhcC4KIC0gQ29kZSB3aGljaCB0cmllcyB0byBpbnRlcnByZXQgbG9jYXRpb25zIHNob3VsZCBwcm9iYWJseSBiZSBkZXNpZ25lZCB0bwogICBpZ25vcmUgdGhvc2UgdGhhdCBpdCBkb2Vzbid0IHVuZGVyc3RhbmQsIGFzIG1vcmUgdHlwZXMgb2YgbG9jYXRpb25zIGNvdWxkCiAgIGJlIHJlY29yZGVkIGluIHRoZSBmdXR1cmUuCgoNCgUEEwIABBIEhQYCCgoNCgUEEwIABhIEhQYLEwoNCgUEEwIAARIEhQYUHAoNCgUEEwIAAxIEhQYfIAoOCgQEEwMAEgaGBgLZBgMKDQoFBBMDAAESBIYGChIKgwcKBgQTAwACABIEngYELBryBiBJZGVudGlmaWVzIHdoaWNoIHBhcnQgb2YgdGhlIEZpbGVEZXNjcmlwdG9yUHJvdG8gd2FzIGRlZmluZWQgYXQgdGhpcwogbG9jYXRpb24uCgogRWFjaCBlbGVtZW50IGlzIGEgZmllbGQgbnVtYmVyIG9yIGFuIGluZGV4LiAgVGhleSBmb3JtIGEgcGF0aCBmcm9tCiB0aGUgcm9vdCBGaWxlRGVzY3JpcHRvclByb3RvIHRvIHRoZSBwbGFjZSB3aGVyZSB0aGUgZGVmaW5pdGlvbi4gIEZvcgogZXhhbXBsZSwgdGhpcyBwYXRoOgogICBbIDQsIDMsIDIsIDcsIDEgXQogcmVmZXJzIHRvOgogICBmaWxlLm1lc3NhZ2VfdHlwZSgzKSAgLy8gNCwgMwogICAgICAgLmZpZWxkKDcpICAgICAgICAgLy8gMiwgNwogICAgICAgLm5hbWUoKSAgICAgICAgICAgLy8gMQogVGhpcyBpcyBiZWNhdXNlIEZpbGVEZXNjcmlwdG9yUHJvdG8ubWVzc2FnZV90eXBlIGhhcyBmaWVsZCBudW1iZXIgNDoKICAgcmVwZWF0ZWQgRGVzY3JpcHRvclByb3RvIG1lc3NhZ2VfdHlwZSA9IDQ7CiBhbmQgRGVzY3JpcHRvclByb3RvLmZpZWxkIGhhcyBmaWVsZCBudW1iZXIgMjoKICAgcmVwZWF0ZWQgRmllbGREZXNjcmlwdG9yUHJvdG8gZmllbGQgPSAyOwogYW5kIEZpZWxkRGVzY3JpcHRvclByb3RvLm5hbWUgaGFzIGZpZWxkIG51bWJlciAxOgogICBvcHRpb25hbCBzdHJpbmcgbmFtZSA9IDE7CgogVGh1cywgdGhlIGFib3ZlIHBhdGggZ2l2ZXMgdGhlIGxvY2F0aW9uIG9mIGEgZmllbGQgbmFtZS4gIElmIHdlIHJlbW92ZWQKIHRoZSBsYXN0IGVsZW1lbnQ6CiAgIFsgNCwgMywgMiwgNyBdCiB0aGlzIHBhdGggcmVmZXJzIHRvIHRoZSB3aG9sZSBmaWVsZCBkZWNsYXJhdGlvbiAoZnJvbSB0aGUgYmVnaW5uaW5nCiBvZiB0aGUgbGFiZWwgdG8gdGhlIHRlcm1pbmF0aW5nIHNlbWljb2xvbikuCgoPCgcEEwMAAgAEEgSeBgQMCg8KBwQTAwACAAUSBJ4GDRIKDwoHBBMDAAIAARIEngYTFwoPCgcEEwMAAgADEgSeBhobCg8KBwQTAwACAAgSBJ4GHCsKEAoIBBMDAAIACAISBJ4GHSoK0gIKBgQTAwACARIEpQYELBrBAiBBbHdheXMgaGFzIGV4YWN0bHkgdGhyZWUgb3IgZm91ciBlbGVtZW50czogc3RhcnQgbGluZSwgc3RhcnQgY29sdW1uLAogZW5kIGxpbmUgKG9wdGlvbmFsLCBvdGhlcndpc2UgYXNzdW1lZCBzYW1lIGFzIHN0YXJ0IGxpbmUpLCBlbmQgY29sdW1uLgogVGhlc2UgYXJlIHBhY2tlZCBpbnRvIGEgc2luZ2xlIGZpZWxkIGZvciBlZmZpY2llbmN5LiAgTm90ZSB0aGF0IGxpbmUKIGFuZCBjb2x1bW4gbnVtYmVycyBhcmUgemVyby1iYXNlZCAtLSB0eXBpY2FsbHkgeW91IHdpbGwgd2FudCB0byBhZGQKIDEgdG8gZWFjaCBiZWZvcmUgZGlzcGxheWluZyB0byBhIHVzZXIuCgoPCgcEEwMAAgEEEgSlBgQMCg8KBwQTAwACAQUSBKUGDRIKDwoHBBMDAAIBARIEpQYTFwoPCgcEEwMAAgEDEgSlBhobCg8KBwQTAwACAQgSBKUGHCsKEAoIBBMDAAIBCAISBKUGHSoKpQwKBgQTAwACAhIE1gYEKRqUDCBJZiB0aGlzIFNvdXJjZUNvZGVJbmZvIHJlcHJlc2VudHMgYSBjb21wbGV0ZSBkZWNsYXJhdGlvbiwgdGhlc2UgYXJlIGFueQogY29tbWVudHMgYXBwZWFyaW5nIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIGRlY2xhcmF0aW9uIHdoaWNoIGFwcGVhciB0byBiZQogYXR0YWNoZWQgdG8gdGhlIGRlY2xhcmF0aW9uLgoKIEEgc2VyaWVzIG9mIGxpbmUgY29tbWVudHMgYXBwZWFyaW5nIG9uIGNvbnNlY3V0aXZlIGxpbmVzLCB3aXRoIG5vIG90aGVyCiB0b2tlbnMgYXBwZWFyaW5nIG9uIHRob3NlIGxpbmVzLCB3aWxsIGJlIHRyZWF0ZWQgYXMgYSBzaW5nbGUgY29tbWVudC4KCiBsZWFkaW5nX2RldGFjaGVkX2NvbW1lbnRzIHdpbGwga2VlcCBwYXJhZ3JhcGhzIG9mIGNvbW1lbnRzIHRoYXQgYXBwZWFyCiBiZWZvcmUgKGJ1dCBub3QgY29ubmVjdGVkIHRvKSB0aGUgY3VycmVudCBlbGVtZW50LiBFYWNoIHBhcmFncmFwaCwKIHNlcGFyYXRlZCBieSBlbXB0eSBsaW5lcywgd2lsbCBiZSBvbmUgY29tbWVudCBlbGVtZW50IGluIHRoZSByZXBlYXRlZAogZmllbGQuCgogT25seSB0aGUgY29tbWVudCBjb250ZW50IGlzIHByb3ZpZGVkOyBjb21tZW50IG1hcmtlcnMgKGUuZy4gLy8pIGFyZQogc3RyaXBwZWQgb3V0LiAgRm9yIGJsb2NrIGNvbW1lbnRzLCBsZWFkaW5nIHdoaXRlc3BhY2UgYW5kIGFuIGFzdGVyaXNrCiB3aWxsIGJlIHN0cmlwcGVkIGZyb20gdGhlIGJlZ2lubmluZyBvZiBlYWNoIGxpbmUgb3RoZXIgdGhhbiB0aGUgZmlyc3QuCiBOZXdsaW5lcyBhcmUgaW5jbHVkZWQgaW4gdGhlIG91dHB1dC4KCiBFeGFtcGxlczoKCiAgIG9wdGlvbmFsIGludDMyIGZvbyA9IDE7ICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIGZvby4KICAgLy8gQ29tbWVudCBhdHRhY2hlZCB0byBiYXIuCiAgIG9wdGlvbmFsIGludDMyIGJhciA9IDI7CgogICBvcHRpb25hbCBzdHJpbmcgYmF6ID0gMzsKICAgLy8gQ29tbWVudCBhdHRhY2hlZCB0byBiYXou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CgoPCgcEFAMAAgIEEgTtBgQMCg8KBwQUAwACAgUSBO0GDRIKDwoHBBQDAAICARIE7QYTGAoPCgcEFAMAAgIDEgTtBhscCtsBCgYEFAMAAgMSBPIGBBsaygEgSWRlbnRpZmllcyB0aGUgZW5kaW5nIG9mZnNldCBpbiBieXRlcyBpbiB0aGUgZ2VuZXJhdGVkIGNvZGUgdGhhdAogcmVsYXRlcyB0byB0aGUgaWRlbnRpZmllZCBvZmZzZXQuIFRoZSBlbmQgb2Zmc2V0IHNob3VsZCBiZSBvbmUgcGFzdAogdGhlIGxhc3QgcmVsZXZhbnQgYnl0ZSAoc28gdGhlIGxlbmd0aCBvZiB0aGUgdGV4dCA9IGVuZCAtIGJlZ2luKS4KCg8KBwQUAwACAwQSBPIGBAwKDwoHBBQDAAIDBRIE8gYNEgoPCgcEFAMAAgMBEgTyBhMWCg8KBwQUAwACAwMSBPIGGRoK4nwKJHVuaXR0ZXN0X2N1c3RvbV9vcHRpb25zX3Byb3RvMy5wcm90bxIRcHJvdG9idWZfdW5pdHRlc3QaIGdvb2dsZS9wcm90b2J1Zi9kZXNjcmlwdG9yLnByb3RvIusBChxUZXN0TWVzc2FnZVdpdGhDdXN0b21PcHRpb25zEiYKBmZpZWxkMRgBIAEoCUIOCAHB4MMdLeF1CgIAAABSBmZpZWxkMRIhCgtvbmVvZl9maWVsZBgCIAEoBUgAUgpvbmVvZkZpZWxkIlMKBkFuRW51bRIWChJBTkVOVU1fVU5TUEVDSUZJRUQQABIPCgtBTkVOVU1fVkFMMRABEhYKC0FORU5VTV9WQUwyEAIaBbCG+gV7GgjF9skd6/z//zoQCADg6cIdyP//////////AUIZCgdBbk9uZW9mEg74rMMdnf//////////ASIYChZDdXN0b21PcHRpb25Gb29SZXF1ZXN0IhkKF0N1c3RvbU9wdGlvbkZvb1Jlc3BvbnNlIh4KHEN1c3RvbU9wdGlvbkZvb0NsaWVudE1lc3NhZ2UiHgocQ3VzdG9tT3B0aW9uRm9vU2VydmVyTWVzc2FnZSKPAQoaRHVtbXlNZXNzYWdlQ29udGFpbmluZ0VudW0icQoMVGVzdEVudW1UeXBlEiAKHFRFU1RfT1BUSU9OX0VOVU1fVU5TUEVDSUZJRUQQABIaChZURVNUX09QVElPTl9FTlVNX1RZUEUxEBYSIwoWVEVTVF9PUFRJT05fRU5VTV9UWVBFMhDp//////////8BIiEKH0R1bW15TWVzc2FnZUludmFsaWRBc09wdGlvblR5cGUiigEKHEN1c3RvbU9wdGlvbk1pbkludGVnZXJWYWx1ZXM6atDesh0A6MayHYCAgID4/////wGwvLIdgICAgICAgICAAYCTsh0A+PWwHQCAxLAd/////w/4l7Ad////////////AZ31rx0AAAAAke6vHQAAAAAAAAAArY2vHQAAAICZ1qgdAAAAAAAAAIAikQEKHEN1c3RvbU9wdGlvbk1heEludGVnZXJWYWx1ZXM6cdDesh0B6MayHf////8HsLyyHf//////////f4CTsh3/////D/j1sB3///////////8BgMSwHf7///8P+JewHf7//////////wGd9a8d/////5Hurx3//////////62Nrx3///9/mdaoHf////////9/Im4KF0N1c3RvbU9wdGlvbk90aGVyVmFsdWVzOlPoxrIdnP//////////AfXfox3nh0VB6dyiHftZjELKwPM/qtyiHQ5IZWxsbywgIldvcmxkIrLZoh0LSGVsbG8AV29ybGSI2aId6f//////////ASI0ChxTZXR0aW5nUmVhbHNGcm9tUG9zaXRpdmVJbnRzOhT136MdAABAQencoh0AAAAAAEBjQCI0ChxTZXR0aW5nUmVhbHNGcm9tTmVnYXRpdmVJbnRzOhT136MdAABAwencoh0AAAAAAEBjwCJiChJDb21wbGV4T3B0aW9uVHlwZTESEAoDZm9vGAEgASgFUgNmb28SEgoEZm9vMhgCIAEoBVIEZm9vMhISCgRmb28zGAMgASgFUgRmb28zEhIKBGZvbzQYBCADKAVSBGZvbzQirQMKEkNvbXBsZXhPcHRpb25UeXBlMhI3CgNiYXIYASABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTFSA2JhchIQCgNiYXoYAiABKAVSA2JhehJMCgRmcmVkGAMgASgLMjgucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdGlvblR5cGUyLkNvbXBsZXhPcHRpb25UeXBlNFIEZnJlZBJQCgZiYXJuZXkYBCADKAsyOC5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTIuQ29tcGxleE9wdGlvblR5cGU0UgZiYXJuZXkaqwEKEkNvbXBsZXhPcHRpb25UeXBlNBIUCgV3YWxkbxgBIAEoBVIFd2FsZG8yfwoMY29tcGxleF9vcHQ0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGIr10QMgASgLMjgucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdGlvblR5cGUyLkNvbXBsZXhPcHRpb25UeXBlNFILY29tcGxleE9wdDQiJgoSQ29tcGxleE9wdGlvblR5cGUzEhAKA3F1eBgBIAEoBVIDcXV4ImwKFVZhcmlvdXNDb21wbGV4T3B0aW9uczpTouKVHQIIKqLilR0CIGOi4pUdAiBYqv2QHQMQ2weq/ZAdBQoDCOcF0qiPHQMIsw+q/ZAdBRoDCMECqv2QHQQiAghlqv2QHQUiAwjUAfrekB0CCAkiVwoJQWdncmVnYXRlEgwKAWkYASABKAVSAWkSDAoBcxgCIAEoCVIBcxIuCgNzdWIYAyABKAsyHC5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVSA3N1YiJkChBBZ2dyZWdhdGVNZXNzYWdlEjQKCWZpZWxkbmFtZRgBIAEoBUIW8qGHOxESD0ZpZWxkQW5ub3RhdGlvblIJZmllbGRuYW1lOhrC0YY7FQhlEhFNZXNzYWdlQW5ub3RhdGlvbiKkAQoQTmVzdGVkT3B0aW9uVHlwZRpICg1OZXN0ZWRNZXNzYWdlEi8KDG5lc3RlZF9maWVsZBgBIAEoBUIMweDDHeoDAAAAAAAAUgtuZXN0ZWRGaWVsZDoG4OnCHekHIkYKCk5lc3RlZEVudW0SDwoLVU5TUEVDSUZJRUQQABIdChFORVNURURfRU5VTV9WQUxVRRABGgawhvoF7AcaCMX2yR3rAwAAKlIKCk1ldGhvZE9wdDESGgoWTUVUSE9ET1BUMV9VTlNQRUNJRklFRBAAEhMKD01FVEhPRE9QVDFfVkFMMRABEhMKD01FVEhPRE9QVDFfVkFMMhACKl4KDUFnZ3JlZ2F0ZUVudW0SDwoLVU5TUEVDSUZJRUQQABIlCgVWQUxVRRABGhrK/Ik7FRITRW51bVZhbHVlQW5ub3RhdGlvbhoVkpWIOxASDkVudW1Bbm5vdGF0aW9uMo4BChxUZXN0U2VydmljZVdpdGhDdXN0b21PcHRpb25zEmMKA0ZvbxIpLnByb3RvYnVmX3VuaXR0ZXN0LkN1c3RvbU9wdGlvbkZvb1JlcXVlc3QaKi5wcm90b2J1Zl91bml0dGVzdC5DdXN0b21PcHRpb25Gb29SZXNwb25zZSIF4PqMHgIaCZCyix7T24DLSTKZAQoQQWdncmVnYXRlU2VydmljZRJrCgZNZXRob2QSIy5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVNZXNzYWdlGiMucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlTWVzc2FnZSIXysiWOxISEE1ldGhvZEFubm90YXRpb24aGMr7jjsTEhFTZXJ2aWNlQW5ub3RhdGlvbjo8CglmaWxlX29wdDESHC5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMYjp3YAyABKARSCGZpbGVPcHQxOkUKDG1lc3NhZ2Vfb3B0MRIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxicrdgDIAEoBVILbWVzc2FnZU9wdDE6PwoKZmllbGRfb3B0MRIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMYiLzYAyABKAZSCWZpZWxkT3B0MTo/CgpvbmVvZl9vcHQxEh0uZ29vZ2xlLnByb3RvYnVmLk9uZW9mT3B0aW9ucxjPtdgDIAEoBVIJb25lb2ZPcHQxOjwKCWVudW1fb3B0MRIcLmdvb2dsZS5wcm90b2J1Zi5FbnVtT3B0aW9ucxjontkDIAEoD1IIZW51bU9wdDE6SwoPZW51bV92YWx1ZV9vcHQxEiEuZ29vZ2xlLnByb3RvYnVmLkVudW1WYWx1ZU9wdGlvbnMY5qBfIAEoBVINZW51bVZhbHVlT3B0MTpFCgxzZXJ2aWNlX29wdDESHy5nb29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnMYorbhAyABKBJSC3NlcnZpY2VPcHQxOmEKC21ldGhvZF9vcHQxEh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMYrM/hAyABKA4yHS5wcm90b2J1Zl91bml0dGVzdC5NZXRob2RPcHQxUgptZXRob2RPcHQxOj0KCGJvb2xfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGOqr1gMgASgIUgdib29sT3B0Oj8KCWludDMyX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjtqNYDIAEoBVIIaW50MzJPcHQ6PwoJaW50NjRfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGMan1gMgASgDUghpbnQ2NE9wdDpBCgp1aW50MzJfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGLCi1gMgASgNUgl1aW50MzJPcHQ6QQoKdWludDY0X29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjfjtYDIAEoBFIJdWludDY0T3B0OkEKCnNpbnQzMl9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYwIjWAyABKBFSCXNpbnQzMk9wdDpBCgpzaW50NjRfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGP+C1gMgASgSUglzaW50NjRPcHQ6QwoLZml4ZWQzMl9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY0/7VAyABKAdSCmZpeGVkMzJPcHQ6QwoLZml4ZWQ2NF9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY4v3VAyABKAZSCmZpeGVkNjRPcHQ6RQoMc2ZpeGVkMzJfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGNXx1QMgASgPUgtzZml4ZWQzMk9wdDpFCgxzZml4ZWQ2NF9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY44rVAyABKBBSC3NmaXhlZDY0T3B0Oj8KCWZsb2F0X29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxj+u9QDIAEoAlIIZmxvYXRPcHQ6QQoKZG91YmxlX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjNq9QDIAEoAVIJZG91YmxlT3B0OkEKCnN0cmluZ19vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYxavUAyABKAlSCXN0cmluZ09wdDo/CglieXRlc19vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYlqvUAyABKAxSCGJ5dGVzT3B0OnkKCGVudW1fb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGJGr1AMgASgOMjoucHJvdG9idWZfdW5pdHRlc3QuRHVtbXlNZXNzYWdlQ29udGFpbmluZ0VudW0uVGVzdEVudW1UeXBlUgdlbnVtT3B0OoABChBtZXNzYWdlX3R5cGVfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGK/y0wMgASgLMjIucHJvdG9idWZfdW5pdHRlc3QuRHVtbXlNZXNzYWdlSW52YWxpZEFzT3B0aW9uVHlwZVIObWVzc2FnZVR5cGVPcHQ6bAoMY29tcGxleF9vcHQxEh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGKTc0gMgASgLMiUucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdGlvblR5cGUxUgtjb21wbGV4T3B0MTpsCgxjb21wbGV4X29wdDISHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY1Y/SAyABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTJSC2NvbXBsZXhPcHQyOmwKDGNvbXBsZXhfb3B0MxIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjvi9IDIAEoCzIlLnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlM1ILY29tcGxleE9wdDM6VwoHZmlsZW9wdBIcLmdvb2dsZS5wcm90b2J1Zi5GaWxlT3B0aW9ucxjP3bAHIAEoCzIcLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZVIHZmlsZW9wdDpYCgZtc2dvcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYmOqwByABKAsyHC5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVSBm1zZ29wdDpaCghmaWVsZG9wdBIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMYnvSwByABKAsyHC5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVSCGZpZWxkb3B0OlcKB2VudW1vcHQSHC5nb29nbGUucHJvdG9idWYuRW51bU9wdGlvbnMY0oKxByABKAsyHC5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVSB2VudW1vcHQ6YgoKZW51bXZhbG9wdBIhLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVPcHRpb25zGMmfsQcgASgLMhwucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlUgplbnVtdmFsb3B0OmAKCnNlcnZpY2VvcHQSHy5nb29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnMYue+xByABKAsyHC5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVSCnNlcnZpY2VvcHQ6XQoJbWV0aG9kb3B0Eh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMYiemyByABKAsyHC5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVSCW1ldGhvZG9wdEJVqgIaVW5pdFRlc3QuSXNzdWVzLlRlc3RQcm90b3Pw6MEd6q3A5ST67IU7KghkEg5GaWxlQW5ub3RhdGlvbhoWEhROZXN0ZWRGaWxlQW5ub3RhdGlvbkqhUQoHEgUsAM8CAQr2EAoBDBIDLAASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoy0wEgQXV0aG9yOiBiZW5qeUBnb29nbGUuY29tIChCZW5qeSBXZWluYmVyZ2VyKQogIEJhc2VkIG9uIG9yaWdpbmFsIFByb3RvY29sIEJ1ZmZlcnMgZGVzaWduIGJ5CiAgU2FuamF5IEdoZW1hd2F0LCBKZWZmIERlYW4sIGFuZCBvdGhlcnMuCgogQSBwcm90byBmaWxlIHVzZWQgdG8gdGVzdCB0aGUgImN1c3RvbSBvcHRpb25zIiBmZWF0dXJlIG9mIGdvb2dsZS5wcm90b2J1Zi4KMtECIFRoaXMgZmlsZSBpcyBiYXNlZCBvbiB1bml0dGVzdF9jdXN0b21fb3B0aW9ucy5wcm90byBpbgogc3JjL2dvb2dsZS9wcm90b2J1ZiwgYnV0IGlzIG1vZGlmaWVkIGZvciBwcm90bzMuIEl0IGNvdWxkCiBwb3RlbnRpYWxseSBiZSBtb3ZlZCBpbnRvIHNyYy9nb29nbGUvcHJvdG9idWYsIGJ1dCBjdXJyZW50bHkgQyMKIGlzIHRoZSBvbmx5IGxhbmd1YWdlIHRoYXQgcmVhbGx5IG5lZWRzIGl0LCBhcyB3ZSBkb24ndCBzdXBwb3J0CiBwcm90bzIgc3ludGF4LiBJdCdzIGN1dCBkb3duIHNpZ25pZmljYW50bHkgYXMgcHJvdG8zIG9ubHkgc3VwcG9ydHMKIGV4dGVuc2lvbnMgZm9yIG9wdGlvbnMu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AhITCg0KBQQSBAADEgTMAgQeChEKCQQSBAAD6J7ZAxIEzAIEHgoOCgYEEgQAAgESBM0CBDUKDwoHBBIEAAIBARIEzQIEFQoPCgcEEgQAAgECEgTNAhgZCg8KBwQSBAACAQMSBM0CGjQKEgoKBBIEAAIBA+agXxIEzQIbM2IGcHJvdG8zCooPChx1bml0dGVzdF9pbXBvcnRfcHVibGljLnByb3RvEh9wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yIiMKE1B1YmxpY0ltcG9ydE1lc3NhZ2USDAoBZRgBIAEoBVIBZUIkqgIhR29vZ2xlLlByb3RvYnVmLlRlc3RQcm90b3MuUHJvdG8ySv0NCgYSBCAAKAEK9gwKAQwSAyAAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMiggQXV0aG9yOiBsaXVqaXNpQGdvb2dsZS5jb20gKFBoZXJsIExpdSkKCggKAQISAyIAKAoICgEIEgMkAD4KCQoCCCUSAyQAPgoKCgIEABIEJgAoAQoKCgMEAAESAyYIGwoLCgQEAAIAEgMnAhcKDAoFBAACAAQSAycCCgoMCgUEAAIABRIDJwsQCgwKBQQAAgABEgMnERIKDAoFBAACAAMSAycVFgrdFgoVdW5pdHRlc3RfaW1wb3J0LnByb3RvEh9wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yGhx1bml0dGVzdF9pbXBvcnRfcHVibGljLnByb3RvIh0KDUltcG9ydE1lc3NhZ2USDAoBZBgBIAEoBVIBZCo8CgpJbXBvcnRFbnVtEg4KCklNUE9SVF9GT08QBxIOCgpJTVBPUlRfQkFSEAgSDgoKSU1QT1JUX0JBWhAJKjEKEEltcG9ydEVudW1Gb3JNYXASCwoHVU5LTk9XThAAEgcKA0ZPTxABEgcKA0JBUhACQilIAfgBAaoCIUdvb2dsZS5Qcm90b2J1Zi5UZXN0UHJvdG9zLlByb3RvMkrHFAoGEgQkAEQBCpgOCgEMEgMkABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCjLJASBBdXRob3I6IGtlbnRvbkBnb29nbGUuY29tIChLZW50b24gVmFyZGEpCiAgQmFzZWQgb24gb3JpZ2luYWwgUHJvdG9jb2wgQnVmZmVycyBkZXNpZ24gYnkKICBTYW5qYXkgR2hlbWF3YXQsIEplZmYgRGVhbiwgYW5kIG90aGVycy4KCiBBIHByb3RvIGZpbGUgd2hpY2ggaXMgaW1wb3J0ZWQgYnkgdW5pdHRlc3QucHJvdG8gdG8gdGVzdCBpbXBvcnRpbmcuCgr1AQoBAhIDKgAoGuoBIFdlIGRvbid0IHB1dCB0aGlzIGluIGEgcGFja2FnZSB3aXRoaW4gcHJvdG8yIGJlY2F1c2Ugd2UgbmVlZCB0byBtYWtlIHN1cmUKIHRoYXQgdGhlIGdlbmVyYXRlZCBjb2RlIGRvZXNuJ3QgZGVwZW5kIG9uIGJlaW5nIGluIHRoZSBwcm90bzIgbmFtZXNwYWNlLgogSW4gdGVzdF91dGlsLmggd2UgZG8KICJ1c2luZyBuYW1lc3BhY2UgdW5pdHRlc3RfaW1wb3J0ID0gcHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0Ii4KCggKAQgSAywAHAoJCgIICRIDLAAcCggKAQgSAy0AHwoJCgIIHxIDLQAfCggKAQgSAy8APgoJCgIIJRIDLwA+Ch8KAgMAEgMyAC0aFCBUZXN0IHB1YmxpYyBpbXBvcnQKCgkKAgoAEgMyBw0KCgoCBAASBDQANgEKCgoDBAABEgM0CBUKCwoEBAACABIDNQIXCgwKBQQAAgAEEgM1AgoKDAoFBAACAAUSAzULEAoMCgUEAAIAARIDNRESCgwKBQQAAgADEgM1FRYKCgoCBQASBDgAPAEKCgoDBQABEgM4BQ8KCwoEBQACABIDOQIRCgwKBQUAAgABEgM5AgwKDAoFBQACAAISAzkPEAoLCgQFAAIBEgM6AhEKDAoFBQACAQESAzoCDAoMCgUFAAIBAhIDOg8QCgsKBAUAAgISAzsCEQoMCgUFAAICARIDOwIMCgwKBQUAAgICEgM7DxAKSAoCBQESBEAARAEaPCBUbyB1c2UgYW4gZW51bSBpbiBhIG1hcCwgaXQgbXVzdCBoYXMgdGhlIGZpcnN0IHZhbHVlIGFzIDAuCgoKCgMFAQESA0AFFQoLCgQFAQIAEgNBAg4KDAoFBQECAAESA0ECCQoMCgUFAQIAAhIDQQwNCgsKBAUBAgESA0ICCgoMCgUFAQIBARIDQgIFCgwKBQUBAgECEgNCCAkKCwoEBQECAhIDQwIKCgwKBQUBAgIBEgNDAgUKDAoFBQECAgISA0MICVAACoDTBQoOdW5pdHRlc3QucHJvdG8SGHByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMhoVdW5pdHRlc3RfaW1wb3J0LnByb3RvIpEkCgxUZXN0QWxsVHlwZXMSJQoOb3B0aW9uYWxfaW50MzIYASABKAVSDW9wdGlvbmFsSW50MzISJQoOb3B0aW9uYWxfaW50NjQYAiABKANSDW9wdGlvbmFsSW50NjQSJwoPb3B0aW9uYWxfdWludDMyGAMgASgNUg5vcHRpb25hbFVpbnQzMhInCg9vcHRpb25hbF91aW50NjQYBCABKARSDm9wdGlvbmFsVWludDY0EicKD29wdGlvbmFsX3NpbnQzMhgFIAEoEVIOb3B0aW9uYWxTaW50MzISJwoPb3B0aW9uYWxfc2ludDY0GAYgASgSUg5vcHRpb25hbFNpbnQ2NBIpChBvcHRpb25hbF9maXhlZDMyGAcgASgHUg9vcHRpb25hbEZpeGVkMzISKQoQb3B0aW9uYWxfZml4ZWQ2NBgIIAEoBlIPb3B0aW9uYWxGaXhlZDY0EisKEW9wdGlvbmFsX3NmaXhlZDMyGAkgASgPUhBvcHRpb25hbFNmaXhlZDMyEisKEW9wdGlvbmFsX3NmaXhlZDY0GAogASgQUhBvcHRpb25hbFNmaXhlZDY0EiUKDm9wdGlvbmFsX2Zsb2F0GAsgASgCUg1vcHRpb25hbEZsb2F0EicKD29wdGlvbmFsX2RvdWJsZRgMIAEoAVIOb3B0aW9uYWxEb3VibGUSIwoNb3B0aW9uYWxfYm9vbBgNIAEoCFIMb3B0aW9uYWxCb29sEicKD29wdGlvbmFsX3N0cmluZxgOIAEoCVIOb3B0aW9uYWxTdHJpbmcSJQoOb3B0aW9uYWxfYnl0ZXMYDyABKAxSDW9wdGlvbmFsQnl0ZXMSWgoNb3B0aW9uYWxncm91cBgQIAEoCjI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuT3B0aW9uYWxHcm91cFINb3B0aW9uYWxncm91cBJsChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgSIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVIVb3B0aW9uYWxOZXN0ZWRNZXNzYWdlEmIKGG9wdGlvbmFsX2ZvcmVpZ25fbWVzc2FnZRgTIAEoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZVIWb3B0aW9uYWxGb3JlaWduTWVzc2FnZRJmChdvcHRpb25hbF9pbXBvcnRfbWVzc2FnZRgUIAEoCzIuLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0TWVzc2FnZVIVb3B0aW9uYWxJbXBvcnRNZXNzYWdlEmMKFG9wdGlvbmFsX25lc3RlZF9lbnVtGBUgASgOMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtUhJvcHRpb25hbE5lc3RlZEVudW0SWQoVb3B0aW9uYWxfZm9yZWlnbl9lbnVtGBYgASgOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUhNvcHRpb25hbEZvcmVpZ25FbnVtEl0KFG9wdGlvbmFsX2ltcG9ydF9lbnVtGBcgASgOMisucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRFbnVtUhJvcHRpb25hbEltcG9ydEVudW0SNgoVb3B0aW9uYWxfc3RyaW5nX3BpZWNlGBggASgJQgIIAlITb3B0aW9uYWxTdHJpbmdQaWVjZRInCg1vcHRpb25hbF9jb3JkGBkgASgJQgIIAVIMb3B0aW9uYWxDb3JkEnkKHm9wdGlvbmFsX3B1YmxpY19pbXBvcnRfbWVzc2FnZRgaIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuUHVibGljSW1wb3J0TWVzc2FnZVIbb3B0aW9uYWxQdWJsaWNJbXBvcnRNZXNzYWdlEmwKFW9wdGlvbmFsX2xhenlfbWVzc2FnZRgbIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAFSE29wdGlvbmFsTGF6eU1lc3NhZ2USJQoOcmVwZWF0ZWRfaW50MzIYHyADKAVSDXJlcGVhdGVkSW50MzISJQoOcmVwZWF0ZWRfaW50NjQYICADKANSDXJlcGVhdGVkSW50NjQSJwoPcmVwZWF0ZWRfdWludDMyGCEgAygNUg5yZXBlYXRlZFVpbnQzMhInCg9yZXBlYXRlZF91aW50NjQYIiADKARSDnJlcGVhdGVkVWludDY0EicKD3JlcGVhdGVkX3NpbnQzMhgjIAMoEVIOcmVwZWF0ZWRTaW50MzISJwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSUg5yZXBlYXRlZFNpbnQ2NBIpChByZXBlYXRlZF9maXhlZDMyGCUgAygHUg9yZXBlYXRlZEZpeGVkMzISKQoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBlIPcmVwZWF0ZWRGaXhlZDY0EisKEXJlcGVhdGVkX3NmaXhlZDMyGCcgAygPUhByZXBlYXRlZFNmaXhlZDMyEisKEXJlcGVhdGVkX3NmaXhlZDY0GCggAygQUhByZXBlYXRlZFNmaXhlZDY0EiUKDnJlcGVhdGVkX2Zsb2F0GCkgAygCUg1yZXBlYXRlZEZsb2F0EicKD3JlcGVhdGVkX2RvdWJsZRgqIAMoAVIOcmVwZWF0ZWREb3VibGUSIwoNcmVwZWF0ZWRfYm9vbBgrIAMoCFIMcmVwZWF0ZWRCb29sEicKD3JlcGVhdGVkX3N0cmluZxgsIAMoCVIOcmVwZWF0ZWRTdHJpbmcSJQoOcmVwZWF0ZWRfYnl0ZXMYLSADKAxSDXJlcGVhdGVkQnl0ZXMSWgoNcmVwZWF0ZWRncm91cBguIAMoCjI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuUmVwZWF0ZWRHcm91cFINcmVwZWF0ZWRncm91cBJsChdyZXBlYXRlZF9uZXN0ZWRfbWVzc2FnZRgwIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVIVcmVwZWF0ZWROZXN0ZWRNZXNzYWdlEmIKGHJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZRgxIAMoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZVIWcmVwZWF0ZWRGb3JlaWduTWVzc2FnZRJmChdyZXBlYXRlZF9pbXBvcnRfbWVzc2FnZRgyIAMoCzIuLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0TWVzc2FnZVIVcmVwZWF0ZWRJbXBvcnRNZXNzYWdlEmMKFHJlcGVhdGVkX25lc3RlZF9lbnVtGDMgAygOMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtUhJyZXBlYXRlZE5lc3RlZEVudW0SWQoVcmVwZWF0ZWRfZm9yZWlnbl9lbnVtGDQgAygOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUhNyZXBlYXRlZEZvcmVpZ25FbnVtEl0KFHJlcGVhdGVkX2ltcG9ydF9lbnVtGDUgAygOMisucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRFbnVtUhJyZXBlYXRlZEltcG9ydEVudW0SNgoVcmVwZWF0ZWRfc3RyaW5nX3BpZWNlGDYgAygJQgIIAlITcmVwZWF0ZWRTdHJpbmdQaWVjZRInCg1yZXBlYXRlZF9jb3JkGDcgAygJQgIIAVIMcmVwZWF0ZWRDb3JkEmwKFXJlcGVhdGVkX2xhenlfbWVzc2FnZRg5IAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAFSE3JlcGVhdGVkTGF6eU1lc3NhZ2USJwoNZGVmYXVsdF9pbnQzMhg9IAEoBToCNDFSDGRlZmF1bHRJbnQzMhInCg1kZWZhdWx0X2ludDY0GD4gASgDOgI0MlIMZGVmYXVsdEludDY0EikKDmRlZmF1bHRfdWludDMyGD8gASgNOgI0M1INZGVmYXVsdFVpbnQzMhIpCg5kZWZhdWx0X3VpbnQ2NBhAIAEoBDoCNDRSDWRlZmF1bHRVaW50NjQSKgoOZGVmYXVsdF9zaW50MzIYQSABKBE6Ay00NVINZGVmYXVsdFNpbnQzMhIpCg5kZWZhdWx0X3NpbnQ2NBhCIAEoEjoCNDZSDWRlZmF1bHRTaW50NjQSKwoPZGVmYXVsdF9maXhlZDMyGEMgASgHOgI0N1IOZGVmYXVsdEZpeGVkMzISKwoPZGVmYXVsdF9maXhlZDY0GEQgASgGOgI0OFIOZGVmYXVsdEZpeGVkNjQSLQoQZGVmYXVsdF9zZml4ZWQzMhhFIAEoDzoCNDlSD2RlZmF1bHRTZml4ZWQzMhIuChBkZWZhdWx0X3NmaXhlZDY0GEYgASgQOgMtNTBSD2RlZmF1bHRTZml4ZWQ2NBIpCg1kZWZhdWx0X2Zsb2F0GEcgASgCOgQ1MS41UgxkZWZhdWx0RmxvYXQSLAoOZGVmYXVsdF9kb3VibGUYSCABKAE6BTUyMDAwUg1kZWZhdWx0RG91YmxlEicKDGRlZmF1bHRfYm9vbBhJIAEoCDoEdHJ1ZVILZGVmYXVsdEJvb2wSLAoOZGVmYXVsdF9zdHJpbmcYSiABKAk6BWhlbGxvUg1kZWZhdWx0U3RyaW5nEioKDWRlZmF1bHRfYnl0ZXMYSyABKAw6BXdvcmxkUgxkZWZhdWx0Qnl0ZXMSZgoTZGVmYXVsdF9uZXN0ZWRfZW51bRhRIAEoDjIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bToDQkFSUhFkZWZhdWx0TmVzdGVkRW51bRJkChRkZWZhdWx0X2ZvcmVpZ25fZW51bRhSIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bToLRk9SRUlHTl9CQVJSEmRlZmF1bHRGb3JlaWduRW51bRJnChNkZWZhdWx0X2ltcG9ydF9lbnVtGFMgASgOMisucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRFbnVtOgpJTVBPUlRfQkFSUhFkZWZhdWx0SW1wb3J0RW51bRI5ChRkZWZhdWx0X3N0cmluZ19waWVjZRhUIAEoCToDYWJjQgIIAlISZGVmYXVsdFN0cmluZ1BpZWNlEioKDGRlZmF1bHRfY29yZBhVIAEoCToDMTIzQgIIAVILZGVmYXVsdENvcmQSIwoMb25lb2ZfdWludDMyGG8gASgNSABSC29uZW9mVWludDMyEmgKFG9uZW9mX25lc3RlZF9tZXNzYWdlGHAgASgLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlSABSEm9uZW9mTmVzdGVkTWVzc2FnZRIjCgxvbmVvZl9zdHJpbmcYcSABKAlIAFILb25lb2ZTdHJpbmcSIQoLb25lb2ZfYnl0ZXMYciABKAxIAFIKb25lb2ZCeXRlcxofCg1OZXN0ZWRNZXNzYWdlEg4KAmJiGAEgASgFUgJiYhodCg1PcHRpb25hbEdyb3VwEgwKAWEYESABKAVSAWEaHQoNUmVwZWF0ZWRHcm91cBIMCgFhGC8gASgFUgFhIjkKCk5lc3RlZEVudW0SBwoDRk9PEAESBwoDQkFSEAISBwoDQkFaEAMSEAoDTkVHEP///////////wFCDQoLb25lb2ZfZmllbGQi7wEKEk5lc3RlZFRlc3RBbGxUeXBlcxJCCgVjaGlsZBgBIAEoCzIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5OZXN0ZWRUZXN0QWxsVHlwZXNSBWNoaWxkEkAKB3BheWxvYWQYAiABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgdwYXlsb2FkElMKDnJlcGVhdGVkX2NoaWxkGAMgAygLMiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLk5lc3RlZFRlc3RBbGxUeXBlc1INcmVwZWF0ZWRDaGlsZCKWAQoUVGVzdERlcHJlY2F0ZWRGaWVsZHMSLQoQZGVwcmVjYXRlZF9pbnQzMhgBIAEoBUICGAFSD2RlcHJlY2F0ZWRJbnQzMhI/ChlkZXByZWNhdGVkX2ludDMyX2luX29uZW9mGAIgASgFQgIYAUgAUhZkZXByZWNhdGVkSW50MzJJbk9uZW9mQg4KDG9uZW9mX2ZpZWxkcyIbChVUZXN0RGVwcmVjYXRlZE1lc3NhZ2U6AhgBIiwKDkZvcmVpZ25NZXNzYWdlEgwKAWMYASABKAVSAWMSDAoBZBgCIAEoBVIBZCIwChJUZXN0UmVzZXJ2ZWRGaWVsZHNKBAgCEANKBAgPEBBKBAgJEAxSA2JhclIDYmF6Ih0KEVRlc3RBbGxFeHRlbnNpb25zKggIARCAgICAAiInChdPcHRpb25hbEdyb3VwX2V4dGVuc2lvbhIMCgFhGBEgASgFUgFhIicKF1JlcGVhdGVkR3JvdXBfZXh0ZW5zaW9uEgwKAWEYLyABKAVSAWEi3gEKCVRlc3RHcm91cBJXCg1vcHRpb25hbGdyb3VwGBAgASgKMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RHcm91cC5PcHRpb25hbEdyb3VwUg1vcHRpb25hbGdyb3VwElkKFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bVITb3B0aW9uYWxGb3JlaWduRW51bRodCg1PcHRpb25hbEdyb3VwEgwKAWEYESABKAVSAWEiHgoSVGVzdEdyb3VwRXh0ZW5zaW9uKggIARCAgICAAiK4BAoTVGVzdE5lc3RlZEV4dGVuc2lvbhonChdPcHRpb25hbEdyb3VwX2V4dGVuc2lvbhIMCgFhGBEgASgFUgFhMkYKBHRlc3QSKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMY6gcgASgJOgR0ZXN0UgR0ZXN0MmQKF25lc3RlZF9zdHJpbmdfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGOsHIAEoCVIVbmVzdGVkU3RyaW5nRXh0ZW5zaW9uMqwBChdvcHRpb25hbGdyb3VwX2V4dGVuc2lvbhIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0R3JvdXBFeHRlbnNpb24YECABKAoyRS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE5lc3RlZEV4dGVuc2lvbi5PcHRpb25hbEdyb3VwX2V4dGVuc2lvblIWb3B0aW9uYWxncm91cEV4dGVuc2lvbjKaAQofb3B0aW9uYWxfZm9yZWlnbl9lbnVtX2V4dGVuc2lvbhIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0R3JvdXBFeHRlbnNpb24YFiABKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SHG9wdGlvbmFsRm9yZWlnbkVudW1FeHRlbnNpb24ikAgKDFRlc3RSZXF1aXJlZBIMCgFhGAEgAigFUgFhEhYKBmR1bW15MhgCIAEoBVIGZHVtbXkyEgwKAWIYAyACKAVSAWISFgoGZHVtbXk0GAQgASgFUgZkdW1teTQSFgoGZHVtbXk1GAUgASgFUgZkdW1teTUSFgoGZHVtbXk2GAYgASgFUgZkdW1teTYSFgoGZHVtbXk3GAcgASgFUgZkdW1teTcSFgoGZHVtbXk4GAggASgFUgZkdW1teTgSFgoGZHVtbXk5GAkgASgFUgZkdW1teTkSGAoHZHVtbXkxMBgKIAEoBVIHZHVtbXkxMBIYCgdkdW1teTExGAsgASgFUgdkdW1teTExEhgKB2R1bW15MTIYDCABKAVSB2R1bW15MTISGAoHZHVtbXkxMxgNIAEoBVIHZHVtbXkxMxIYCgdkdW1teTE0GA4gASgFUgdkdW1teTE0EhgKB2R1bW15MTUYDyABKAVSB2R1bW15MTUSGAoHZHVtbXkxNhgQIAEoBVIHZHVtbXkxNhIYCgdkdW1teTE3GBEgASgFUgdkdW1teTE3EhgKB2R1bW15MTgYEiABKAVSB2R1bW15MTgSGAoHZHVtbXkxORgTIAEoBVIHZHVtbXkxORIYCgdkdW1teTIwGBQgASgFUgdkdW1teTIwEhgKB2R1bW15MjEYFSABKAVSB2R1bW15MjESGAoHZHVtbXkyMhgWIAEoBVIHZHVtbXkyMhIYCgdkdW1teTIzGBcgASgFUgdkdW1teTIzEhgKB2R1bW15MjQYGCABKAVSB2R1bW15MjQSGAoHZHVtbXkyNRgZIAEoBVIHZHVtbXkyNRIYCgdkdW1teTI2GBogASgFUgdkdW1teTI2EhgKB2R1bW15MjcYGyABKAVSB2R1bW15MjcSGAoHZHVtbXkyOBgcIAEoBVIHZHVtbXkyOBIYCgdkdW1teTI5GB0gASgFUgdkdW1teTI5EhgKB2R1bW15MzAYHiABKAVSB2R1bW15MzASGAoHZHVtbXkzMRgfIAEoBVIHZHVtbXkzMRIYCgdkdW1teTMyGCAgASgFUgdkdW1teTMyEgwKAWMYISACKAVSAWMybAoGc2luZ2xlEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGOgHIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRSBnNpbmdsZTJqCgVtdWx0aRIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxjpByADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkUgVtdWx0aSLRAQoTVGVzdFJlcXVpcmVkRm9yZWlnbhJRChBvcHRpb25hbF9tZXNzYWdlGAEgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZXF1aXJlZFIPb3B0aW9uYWxNZXNzYWdlElEKEHJlcGVhdGVkX21lc3NhZ2UYAiADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkUg9yZXBlYXRlZE1lc3NhZ2USFAoFZHVtbXkYAyABKAVSBWR1bW15Io4CChNUZXN0UmVxdWlyZWRNZXNzYWdlElEKEG9wdGlvbmFsX21lc3NhZ2UYASABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkUg9vcHRpb25hbE1lc3NhZ2USUQoQcmVwZWF0ZWRfbWVzc2FnZRgCIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRSD3JlcGVhdGVkTWVzc2FnZRJRChByZXF1aXJlZF9tZXNzYWdlGAMgAigLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZXF1aXJlZFIPcmVxdWlyZWRNZXNzYWdlInAKEVRlc3RGb3JlaWduTmVzdGVkElsKDmZvcmVpZ25fbmVzdGVkGAEgASgLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlUg1mb3JlaWduTmVzdGVkIhIKEFRlc3RFbXB0eU1lc3NhZ2UiKgoeVGVzdEVtcHR5TWVzc2FnZVdpdGhFeHRlbnNpb25zKggIARCAgICAAiI3ChtUZXN0TXVsdGlwbGVFeHRlbnNpb25SYW5nZXMqBAgqECsqBgivIBCUISoKCICABBCAgICAAiI7ChhUZXN0UmVhbGx5TGFyZ2VUYWdOdW1iZXISDAoBYRgBIAEoBVIBYRIRCgJiYhj///9/IAEoBVICYmIiYgoUVGVzdFJlY3Vyc2l2ZU1lc3NhZ2USPAoBYRgBIAEoCzIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVjdXJzaXZlTWVzc2FnZVIBYRIMCgFpGAIgASgFUgFpIq8DChRUZXN0TXV0dWFsUmVjdXJzaW9uQRI+CgJiYhgBIAEoCzIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0TXV0dWFsUmVjdXJzaW9uQlICYmISUwoIc3ViZ3JvdXAYAiABKAoyNy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE11dHVhbFJlY3Vyc2lvbkEuU3ViR3JvdXBSCHN1Ymdyb3VwGkoKClN1Yk1lc3NhZ2USPAoBYhgBIAEoCzIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0TXV0dWFsUmVjdXJzaW9uQlIBYhq1AQoIU3ViR3JvdXASWgoLc3ViX21lc3NhZ2UYAyABKAsyOS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE11dHVhbFJlY3Vyc2lvbkEuU3ViTWVzc2FnZVIKc3ViTWVzc2FnZRJNCg9ub3RfaW5fdGhpc19zY2MYBCABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgxub3RJblRoaXNTY2MiewoUVGVzdE11dHVhbFJlY3Vyc2lvbkISPAoBYRgBIAEoCzIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0TXV0dWFsUmVjdXJzaW9uQVIBYRIlCg5vcHRpb25hbF9pbnQzMhgCIAEoBVINb3B0aW9uYWxJbnQzMiLyAQoRVGVzdElzSW5pdGlhbGl6ZWQSVwoLc3ViX21lc3NhZ2UYASABKAsyNi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdElzSW5pdGlhbGl6ZWQuU3ViTWVzc2FnZVIKc3ViTWVzc2FnZRqDAQoKU3ViTWVzc2FnZRJbCghzdWJncm91cBgBIAEoCjI/LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0SXNJbml0aWFsaXplZC5TdWJNZXNzYWdlLlN1Ykdyb3VwUghzdWJncm91cBoYCghTdWJHcm91cBIMCgFpGAIgAigFUgFpItQBChJUZXN0RHVwRmllbGROdW1iZXISDAoBYRgBIAEoBVIBYRJCCgNmb28YAiABKAoyMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdER1cEZpZWxkTnVtYmVyLkZvb1IDZm9vEkIKA2JhchgDIAEoCjIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RHVwRmllbGROdW1iZXIuQmFyUgNiYXIaEwoDRm9vEgwKAWEYASABKAVSAWEaEwoDQmFyEgwKAWEYASABKAVSAWEiXwoQVGVzdEVhZ2VyTWVzc2FnZRJLCgtzdWJfbWVzc2FnZRgBIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNCAigAUgpzdWJNZXNzYWdlIl4KD1Rlc3RMYXp5TWVzc2FnZRJLCgtzdWJfbWVzc2FnZRgBIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNCAigBUgpzdWJNZXNzYWdlIuYCChhUZXN0TmVzdGVkTWVzc2FnZUhhc0JpdHMSeAoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYASABKAsyQC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE5lc3RlZE1lc3NhZ2VIYXNCaXRzLk5lc3RlZE1lc3NhZ2VSFW9wdGlvbmFsTmVzdGVkTWVzc2FnZRrPAQoNTmVzdGVkTWVzc2FnZRJAChxuZXN0ZWRtZXNzYWdlX3JlcGVhdGVkX2ludDMyGAEgAygFUhpuZXN0ZWRtZXNzYWdlUmVwZWF0ZWRJbnQzMhJ8CiVuZXN0ZWRtZXNzYWdlX3JlcGVhdGVkX2ZvcmVpZ25tZXNzYWdlGAIgAygLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUiNuZXN0ZWRtZXNzYWdlUmVwZWF0ZWRGb3JlaWdubWVzc2FnZSLXBQoXVGVzdENhbWVsQ2FzZUZpZWxkTmFtZXMSJgoOUHJpbWl0aXZlRmllbGQYASABKAVSDlByaW1pdGl2ZUZpZWxkEiAKC1N0cmluZ0ZpZWxkGAIgASgJUgtTdHJpbmdGaWVsZBJDCglFbnVtRmllbGQYAyABKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SCUVudW1GaWVsZBJMCgxNZXNzYWdlRmllbGQYBCABKAsyKC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbk1lc3NhZ2VSDE1lc3NhZ2VGaWVsZBIuChBTdHJpbmdQaWVjZUZpZWxkGAUgASgJQgIIAlIQU3RyaW5nUGllY2VGaWVsZBIgCglDb3JkRmllbGQYBiABKAlCAggBUglDb3JkRmllbGQSNgoWUmVwZWF0ZWRQcmltaXRpdmVGaWVsZBgHIAMoBVIWUmVwZWF0ZWRQcmltaXRpdmVGaWVsZBIwChNSZXBlYXRlZFN0cmluZ0ZpZWxkGAggAygJUhNSZXBlYXRlZFN0cmluZ0ZpZWxkElMKEVJlcGVhdGVkRW51bUZpZWxkGAkgAygOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUhFSZXBlYXRlZEVudW1GaWVsZBJcChRSZXBlYXRlZE1lc3NhZ2VGaWVsZBgKIAMoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZVIUUmVwZWF0ZWRNZXNzYWdlRmllbGQSPgoYUmVwZWF0ZWRTdHJpbmdQaWVjZUZpZWxkGAsgAygJQgIIAlIYUmVwZWF0ZWRTdHJpbmdQaWVjZUZpZWxkEjAKEVJlcGVhdGVkQ29yZEZpZWxkGAwgAygJQgIIAVIRUmVwZWF0ZWRDb3JkRmllbGQilQIKElRlc3RGaWVsZE9yZGVyaW5ncxIbCglteV9zdHJpbmcYCyABKAlSCG15U3RyaW5nEhUKBm15X2ludBgBIAEoA1IFbXlJbnQSGQoIbXlfZmxvYXQYZSABKAJSB215RmxvYXQScwoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYyAEgASgLMjoucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RGaWVsZE9yZGVyaW5ncy5OZXN0ZWRNZXNzYWdlUhVvcHRpb25hbE5lc3RlZE1lc3NhZ2UaLwoNTmVzdGVkTWVzc2FnZRIOCgJvbxgCIAEoA1ICb28SDgoCYmIYASABKAVSAmJiKgQIAhALKgQIDBBlIsgBChdUZXN0RXh0ZW5zaW9uT3JkZXJpbmdzMRIbCglteV9zdHJpbmcYASABKAlSCG15U3RyaW5nMo8BChN0ZXN0X2V4dF9vcmRlcmluZ3MxEiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RGaWVsZE9yZGVyaW5ncxgNIAEoCzIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RXh0ZW5zaW9uT3JkZXJpbmdzMVIRdGVzdEV4dE9yZGVyaW5nczEiqwMKF1Rlc3RFeHRlbnNpb25PcmRlcmluZ3MyEhsKCW15X3N0cmluZxgBIAEoCVIIbXlTdHJpbmca4AEKF1Rlc3RFeHRlbnNpb25PcmRlcmluZ3MzEhsKCW15X3N0cmluZxgBIAEoCVIIbXlTdHJpbmcypwEKE3Rlc3RfZXh0X29yZGVyaW5nczMSLC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEZpZWxkT3JkZXJpbmdzGA4gASgLMkkucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RFeHRlbnNpb25PcmRlcmluZ3MyLlRlc3RFeHRlbnNpb25PcmRlcmluZ3MzUhF0ZXN0RXh0T3JkZXJpbmdzMzKPAQoTdGVzdF9leHRfb3JkZXJpbmdzMhIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RmllbGRPcmRlcmluZ3MYDCABKAsyMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEV4dGVuc2lvbk9yZGVyaW5nczJSEXRlc3RFeHRPcmRlcmluZ3MyIq8KChhUZXN0RXh0cmVtZURlZmF1bHRWYWx1ZXMSTQoNZXNjYXBlZF9ieXRlcxgBIAEoDDooXDAwMFwwMDFcMDA3XDAxMFwwMTRcblxyXHRcMDEzXFxcJ1wiXDM3NlIMZXNjYXBlZEJ5dGVzEi0KDGxhcmdlX3VpbnQzMhgCIAEoDToKNDI5NDk2NzI5NVILbGFyZ2VVaW50MzISNwoMbGFyZ2VfdWludDY0GAMgASgEOhQxODQ0Njc0NDA3MzcwOTU1MTYxNVILbGFyZ2VVaW50NjQSLAoLc21hbGxfaW50MzIYBCABKAU6Cy0yMTQ3NDgzNjQ3UgpzbWFsbEludDMyEjUKC3NtYWxsX2ludDY0GAUgASgDOhQtOTIyMzM3MjAzNjg1NDc3NTgwN1IKc21hbGxJbnQ2NBI5ChJyZWFsbHlfc21hbGxfaW50MzIYFSABKAU6Cy0yMTQ3NDgzNjQ4UhByZWFsbHlTbWFsbEludDMyEkIKEnJlYWxseV9zbWFsbF9pbnQ2NBgWIAEoAzoULTkyMjMzNzIwMzY4NTQ3NzU4MDhSEHJlYWxseVNtYWxsSW50NjQSJAoLdXRmOF9zdHJpbmcYBiABKAk6A+GItFIKdXRmOFN0cmluZxIgCgp6ZXJvX2Zsb2F0GAcgASgCOgEwUgl6ZXJvRmxvYXQSHgoJb25lX2Zsb2F0GAggASgCOgExUghvbmVGbG9hdBIkCgtzbWFsbF9mbG9hdBgJIAEoAjoDMS41UgpzbWFsbEZsb2F0EjAKEm5lZ2F0aXZlX29uZV9mbG9hdBgKIAEoAjoCLTFSEG5lZ2F0aXZlT25lRmxvYXQSKwoObmVnYXRpdmVfZmxvYXQYCyABKAI6BC0xLjVSDW5lZ2F0aXZlRmxvYXQSJgoLbGFyZ2VfZmxvYXQYDCABKAI6BTJlKzA4UgpsYXJnZUZsb2F0EjgKFHNtYWxsX25lZ2F0aXZlX2Zsb2F0GA0gASgCOgYtOGUtMjhSEnNtYWxsTmVnYXRpdmVGbG9hdBIiCgppbmZfZG91YmxlGA4gASgBOgNpbmZSCWluZkRvdWJsZRIqCg5uZWdfaW5mX2RvdWJsZRgPIAEoAToELWluZlIMbmVnSW5mRG91YmxlEiIKCm5hbl9kb3VibGUYECABKAE6A25hblIJbmFuRG91YmxlEiAKCWluZl9mbG9hdBgRIAEoAjoDaW5mUghpbmZGbG9hdBIoCg1uZWdfaW5mX2Zsb2F0GBIgASgCOgQtaW5mUgtuZWdJbmZGbG9hdBIgCgluYW5fZmxvYXQYEyABKAI6A25hblIIbmFuRmxvYXQSOAoMY3BwX3RyaWdyYXBoGBQgASgJOhU/ID8gPz8gPz8gPz8/ID8/LyA/Py1SC2NwcFRyaWdyYXBoEjAKEHN0cmluZ193aXRoX3plcm8YFyABKAk6BmhlbABsb1IOc3RyaW5nV2l0aFplcm8SMQoPYnl0ZXNfd2l0aF96ZXJvGBggASgMOgl3b3JcMDAwbGRSDWJ5dGVzV2l0aFplcm8SPQoWc3RyaW5nX3BpZWNlX3dpdGhfemVybxgZIAEoCToEYWIAY0ICCAJSE3N0cmluZ1BpZWNlV2l0aFplcm8SLgoOY29yZF93aXRoX3plcm8YGiABKAk6BDEyADNCAggBUgxjb3JkV2l0aFplcm8SOQoScmVwbGFjZW1lbnRfc3RyaW5nGBsgASgJOgoke3Vua25vd259UhFyZXBsYWNlbWVudFN0cmluZyJeChFTcGFyc2VFbnVtTWVzc2FnZRJJCgtzcGFyc2VfZW51bRgBIAEoDjIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0U3BhcnNlRW51bVIKc3BhcnNlRW51bSIfCglPbmVTdHJpbmcSEgoEZGF0YRgBIAEoCVIEZGF0YSIgCgpNb3JlU3RyaW5nEhIKBGRhdGEYASADKAlSBGRhdGEiHgoIT25lQnl0ZXMSEgoEZGF0YRgBIAEoDFIEZGF0YSIfCglNb3JlQnl0ZXMSEgoEZGF0YRgBIAMoDFIEZGF0YSIiCgxJbnQzMk1lc3NhZ2USEgoEZGF0YRgBIAEoBVIEZGF0YSIjCg1VaW50MzJNZXNzYWdlEhIKBGRhdGEYASABKA1SBGRhdGEiIgoMSW50NjRNZXNzYWdlEhIKBGRhdGEYASABKANSBGRhdGEiIwoNVWludDY0TWVzc2FnZRISCgRkYXRhGAEgASgEUgRkYXRhIiEKC0Jvb2xNZXNzYWdlEhIKBGRhdGEYASABKAhSBGRhdGEijQIKCVRlc3RPbmVvZhIZCgdmb29faW50GAEgASgFSABSBmZvb0ludBIfCgpmb29fc3RyaW5nGAIgASgJSABSCWZvb1N0cmluZxJJCgtmb29fbWVzc2FnZRgDIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNIAFIKZm9vTWVzc2FnZRJKCghmb29ncm91cBgEIAEoCjIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0T25lb2YuRm9vR3JvdXBIAFIIZm9vZ3JvdXAaJgoIRm9vR3JvdXASDAoBYRgFIAEoBVIBYRIMCgFiGAYgASgJUgFiQgUKA2ZvbyKkAgocVGVzdE9uZW9mQmFja3dhcmRzQ29tcGF0aWJsZRIXCgdmb29faW50GAEgASgFUgZmb29JbnQSHQoKZm9vX3N0cmluZxgCIAEoCVIJZm9vU3RyaW5nEkcKC2Zvb19tZXNzYWdlGAMgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IKZm9vTWVzc2FnZRJbCghmb29ncm91cBgEIAEoCjI/LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0T25lb2ZCYWNrd2FyZHNDb21wYXRpYmxlLkZvb0dyb3VwUghmb29ncm91cBomCghGb29Hcm91cBIMCgFhGAUgASgFUgFhEgwKAWIYBiABKAlSAWIikAgKClRlc3RPbmVvZjISGQoHZm9vX2ludBgBIAEoBUgAUgZmb29JbnQSHwoKZm9vX3N0cmluZxgCIAEoCUgAUglmb29TdHJpbmcSHwoIZm9vX2NvcmQYAyABKAlCAggBSABSB2Zvb0NvcmQSLgoQZm9vX3N0cmluZ19waWVjZRgEIAEoCUICCAJIAFIOZm9vU3RyaW5nUGllY2USHQoJZm9vX2J5dGVzGAUgASgMSABSCGZvb0J5dGVzEkwKCGZvb19lbnVtGAYgASgOMi8ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RPbmVvZjIuTmVzdGVkRW51bUgAUgdmb29FbnVtElUKC2Zvb19tZXNzYWdlGAcgASgLMjIucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RPbmVvZjIuTmVzdGVkTWVzc2FnZUgAUgpmb29NZXNzYWdlEksKCGZvb2dyb3VwGAggASgKMi0ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RPbmVvZjIuRm9vR3JvdXBIAFIIZm9vZ3JvdXASYgoQZm9vX2xhenlfbWVzc2FnZRgLIAEoCzIyLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0T25lb2YyLk5lc3RlZE1lc3NhZ2VCAigBSABSDmZvb0xhenlNZXNzYWdlEhwKB2Jhcl9pbnQYDCABKAU6ATVIAVIGYmFySW50EicKCmJhcl9zdHJpbmcYDSABKAk6BlNUUklOR0gBUgliYXJTdHJpbmcSJQoIYmFyX2NvcmQYDiABKAk6BENPUkRCAggBSAFSB2JhckNvcmQSNgoQYmFyX3N0cmluZ19waWVjZRgPIAEoCToGU1BJRUNFQgIIAkgBUg5iYXJTdHJpbmdQaWVjZRIkCgliYXJfYnl0ZXMYECABKAw6BUJZVEVTSAFSCGJhckJ5dGVzElEKCGJhcl9lbnVtGBEgASgOMi8ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RPbmVvZjIuTmVzdGVkRW51bToDQkFSSAFSB2JhckVudW0SFwoHYmF6X2ludBgSIAEoBVIGYmF6SW50EiIKCmJhel9zdHJpbmcYEyABKAk6A0JBWlIJYmF6U3RyaW5nGiYKCEZvb0dyb3VwEgwKAWEYCSABKAVSAWESDAoBYhgKIAEoCVIBYhpFCg1OZXN0ZWRNZXNzYWdlEhcKB3F1eF9pbnQYASABKANSBnF1eEludBIbCgljb3JnZV9pbnQYAiADKAVSCGNvcmdlSW50IicKCk5lc3RlZEVudW0SBwoDRk9PEAESBwoDQkFSEAISBwoDQkFaEANCBQoDZm9vQgUKA2JhciLuAQoRVGVzdFJlcXVpcmVkT25lb2YSGQoHZm9vX2ludBgBIAEoBUgAUgZmb29JbnQSHwoKZm9vX3N0cmluZxgCIAEoCUgAUglmb29TdHJpbmcSXAoLZm9vX21lc3NhZ2UYAyABKAsyOS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkT25lb2YuTmVzdGVkTWVzc2FnZUgAUgpmb29NZXNzYWdlGjgKDU5lc3RlZE1lc3NhZ2USJwoPcmVxdWlyZWRfZG91YmxlGAEgAigBUg5yZXF1aXJlZERvdWJsZUIFCgNmb28igAIKD1Rlc3RSZXF1aXJlZE1hcBJECgNmb28YASADKAsyMi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkTWFwLkZvb0VudHJ5UgNmb28abwoIRm9vRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSTQoFdmFsdWUYAiABKAsyNy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkTWFwLk5lc3RlZE1lc3NhZ2VSBXZhbHVlOgI4ARo2Cg1OZXN0ZWRNZXNzYWdlEiUKDnJlcXVpcmVkX2ludDMyGAEgAigFUg1yZXF1aXJlZEludDMyIvQECg9UZXN0UGFja2VkVHlwZXMSJQoMcGFja2VkX2ludDMyGFogAygFQgIQAVILcGFja2VkSW50MzISJQoMcGFja2VkX2ludDY0GFsgAygDQgIQAVILcGFja2VkSW50NjQSJwoNcGFja2VkX3VpbnQzMhhcIAMoDUICEAFSDHBhY2tlZFVpbnQzMhInCg1wYWNrZWRfdWludDY0GF0gAygEQgIQAVIMcGFja2VkVWludDY0EicKDXBhY2tlZF9zaW50MzIYXiADKBFCAhABUgxwYWNrZWRTaW50MzISJwoNcGFja2VkX3NpbnQ2NBhfIAMoEkICEAFSDHBhY2tlZFNpbnQ2NBIpCg5wYWNrZWRfZml4ZWQzMhhgIAMoB0ICEAFSDXBhY2tlZEZpeGVkMzISKQoOcGFja2VkX2ZpeGVkNjQYYSADKAZCAhABUg1wYWNrZWRGaXhlZDY0EisKD3BhY2tlZF9zZml4ZWQzMhhiIAMoD0ICEAFSDnBhY2tlZFNmaXhlZDMyEisKD3BhY2tlZF9zZml4ZWQ2NBhjIAMoEEICEAFSDnBhY2tlZFNmaXhlZDY0EiUKDHBhY2tlZF9mbG9hdBhkIAMoAkICEAFSC3BhY2tlZEZsb2F0EicKDXBhY2tlZF9kb3VibGUYZSADKAFCAhABUgxwYWNrZWREb3VibGUSIwoLcGFja2VkX2Jvb2wYZiADKAhCAhABUgpwYWNrZWRCb29sEkoKC3BhY2tlZF9lbnVtGGcgAygOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtQgIQAVIKcGFja2VkRW51bSKuBQoRVGVzdFVucGFja2VkVHlwZXMSKQoOdW5wYWNrZWRfaW50MzIYWiADKAVCAhAAUg11bnBhY2tlZEludDMyEikKDnVucGFja2VkX2ludDY0GFsgAygDQgIQAFINdW5wYWNrZWRJbnQ2NBIrCg91bnBhY2tlZF91aW50MzIYXCADKA1CAhAAUg51bnBhY2tlZFVpbnQzMhIrCg91bnBhY2tlZF91aW50NjQYXSADKARCAhAAUg51bnBhY2tlZFVpbnQ2NBIrCg91bnBhY2tlZF9zaW50MzIYXiADKBFCAhAAUg51bnBhY2tlZFNpbnQzMhIrCg91bnBhY2tlZF9zaW50NjQYXyADKBJCAhAAUg51bnBhY2tlZFNpbnQ2NBItChB1bnBhY2tlZF9maXhlZDMyGGAgAygHQgIQAFIPdW5wYWNrZWRGaXhlZDMyEi0KEHVucGFja2VkX2ZpeGVkNjQYYSADKAZCAhAAUg91bnBhY2tlZEZpeGVkNjQSLwoRdW5wYWNrZWRfc2ZpeGVkMzIYYiADKA9CAhAAUhB1bnBhY2tlZFNmaXhlZDMyEi8KEXVucGFja2VkX3NmaXhlZDY0GGMgAygQQgIQAFIQdW5wYWNrZWRTZml4ZWQ2NBIpCg51bnBhY2tlZF9mbG9hdBhkIAMoAkICEABSDXVucGFja2VkRmxvYXQSKwoPdW5wYWNrZWRfZG91YmxlGGUgAygBQgIQAFIOdW5wYWNrZWREb3VibGUSJwoNdW5wYWNrZWRfYm9vbBhmIAMoCEICEABSDHVucGFja2VkQm9vbBJOCg11bnBhY2tlZF9lbnVtGGcgAygOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtQgIQAFIMdW5wYWNrZWRFbnVtIiAKFFRlc3RQYWNrZWRFeHRlbnNpb25zKggIARCAgICAAiIiChZUZXN0VW5wYWNrZWRFeHRlbnNpb25zKggIARCAgICAAiLIBQoVVGVzdER5bmFtaWNFeHRlbnNpb25zEioKEHNjYWxhcl9leHRlbnNpb24Y0A8gASgHUg9zY2FsYXJFeHRlbnNpb24STQoOZW51bV9leHRlbnNpb24Y0Q8gASgOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUg1lbnVtRXh0ZW5zaW9uEnYKFmR5bmFtaWNfZW51bV9leHRlbnNpb24Y0g8gASgOMj8ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3REeW5hbWljRXh0ZW5zaW9ucy5EeW5hbWljRW51bVR5cGVSFGR5bmFtaWNFbnVtRXh0ZW5zaW9uElYKEW1lc3NhZ2VfZXh0ZW5zaW9uGNMPIAEoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZVIQbWVzc2FnZUV4dGVuc2lvbhJ/ChlkeW5hbWljX21lc3NhZ2VfZXh0ZW5zaW9uGNQPIAEoCzJCLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RHluYW1pY0V4dGVuc2lvbnMuRHluYW1pY01lc3NhZ2VUeXBlUhdkeW5hbWljTWVzc2FnZUV4dGVuc2lvbhIuChJyZXBlYXRlZF9leHRlbnNpb24Y1Q8gAygJUhFyZXBlYXRlZEV4dGVuc2lvbhIuChBwYWNrZWRfZXh0ZW5zaW9uGNYPIAMoEUICEAFSD3BhY2tlZEV4dGVuc2lvbho6ChJEeW5hbWljTWVzc2FnZVR5cGUSJAoNZHluYW1pY19maWVsZBi0ECABKAVSDGR5bmFtaWNGaWVsZCJHCg9EeW5hbWljRW51bVR5cGUSEAoLRFlOQU1JQ19GT08QmBESEAoLRFlOQU1JQ19CQVIQmRESEAoLRFlOQU1JQ19CQVoQmhEinwIKI1Rlc3RSZXBlYXRlZFNjYWxhckRpZmZlcmVudFRhZ1NpemVzEikKEHJlcGVhdGVkX2ZpeGVkMzIYDCADKAdSD3JlcGVhdGVkRml4ZWQzMhIlCg5yZXBlYXRlZF9pbnQzMhgNIAMoBVINcmVwZWF0ZWRJbnQzMhIqChByZXBlYXRlZF9maXhlZDY0GP4PIAMoBlIPcmVwZWF0ZWRGaXhlZDY0EiYKDnJlcGVhdGVkX2ludDY0GP8PIAMoA1INcmVwZWF0ZWRJbnQ2NBInCg5yZXBlYXRlZF9mbG9hdBj+/w8gAygCUg1yZXBlYXRlZEZsb2F0EikKD3JlcGVhdGVkX3VpbnQ2NBj//w8gAygEUg5yZXBlYXRlZFVpbnQ2NCLjDAoQVGVzdFBhcnNpbmdNZXJnZRJUChJyZXF1aXJlZF9hbGxfdHlwZXMYASACKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUhByZXF1aXJlZEFsbFR5cGVzElQKEm9wdGlvbmFsX2FsbF90eXBlcxgCIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSEG9wdGlvbmFsQWxsVHlwZXMSVAoScmVwZWF0ZWRfYWxsX3R5cGVzGAMgAygLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IQcmVwZWF0ZWRBbGxUeXBlcxJeCg1vcHRpb25hbGdyb3VwGAogASgKMjgucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYXJzaW5nTWVyZ2UuT3B0aW9uYWxHcm91cFINb3B0aW9uYWxncm91cBJeCg1yZXBlYXRlZGdyb3VwGBQgAygKMjgucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYXJzaW5nTWVyZ2UuUmVwZWF0ZWRHcm91cFINcmVwZWF0ZWRncm91cBqtBQoXUmVwZWF0ZWRGaWVsZHNHZW5lcmF0b3ISPgoGZmllbGQxGAEgAygLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IGZmllbGQxEj4KBmZpZWxkMhgCIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSBmZpZWxkMhI+CgZmaWVsZDMYAyADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgZmaWVsZDMSYQoGZ3JvdXAxGAogAygKMkkucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYXJzaW5nTWVyZ2UuUmVwZWF0ZWRGaWVsZHNHZW5lcmF0b3IuR3JvdXAxUgZncm91cDESYQoGZ3JvdXAyGBQgAygKMkkucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYXJzaW5nTWVyZ2UuUmVwZWF0ZWRGaWVsZHNHZW5lcmF0b3IuR3JvdXAyUgZncm91cDISOwoEZXh0MRjoByADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgRleHQxEjsKBGV4dDIY6QcgAygLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IEZXh0MhpICgZHcm91cDESPgoGZmllbGQxGAsgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IGZmllbGQxGkgKBkdyb3VwMhI+CgZmaWVsZDEYFSABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgZmaWVsZDEacAoNT3B0aW9uYWxHcm91cBJfChhvcHRpb25hbF9ncm91cF9hbGxfdHlwZXMYCyABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUhVvcHRpb25hbEdyb3VwQWxsVHlwZXMacAoNUmVwZWF0ZWRHcm91cBJfChhyZXBlYXRlZF9ncm91cF9hbGxfdHlwZXMYFSABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUhVyZXBlYXRlZEdyb3VwQWxsVHlwZXMqCQjoBxCAgICAAjJ2CgxvcHRpb25hbF9leHQSKi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhcnNpbmdNZXJnZRjoByABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgtvcHRpb25hbEV4dDJ2CgxyZXBlYXRlZF9leHQSKi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhcnNpbmdNZXJnZRjpByADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgtyZXBlYXRlZEV4dCJHChtUZXN0Q29tbWVudEluamVjdGlvbk1lc3NhZ2USKAoBYRgBIAEoCToaKi8gPC0gTmVpdGhlciBzaG91bGQgdGhpcy5SAWEiDAoKRm9vUmVxdWVzdCINCgtGb29SZXNwb25zZSISChBGb29DbGllbnRNZXNzYWdlIhIKEEZvb1NlcnZlck1lc3NhZ2UiDAoKQmFyUmVxdWVzdCINCgtCYXJSZXNwb25zZSLOAQoMVGVzdEpzb25OYW1lEh8KC2ZpZWxkX25hbWUxGAEgASgFUgpmaWVsZE5hbWUxEh4KCmZpZWxkTmFtZTIYAiABKAVSCmZpZWxkTmFtZTISHgoKRmllbGROYW1lMxgDIAEoBVIKRmllbGROYW1lMxIgCgxfZmllbGRfbmFtZTQYBCABKAVSCkZpZWxkTmFtZTQSHwoLRklFTERfTkFNRTUYBSABKAVSCkZJRUxETkFNRTUSGgoLZmllbGRfbmFtZTYYBiABKAVSBUB0eXBlIv8HChRUZXN0SHVnZUZpZWxkTnVtYmVycxIpCg5vcHRpb25hbF9pbnQzMhjw+P//ASABKAVSDW9wdGlvbmFsSW50MzISHQoIZml4ZWRfMzIY8fj//wEgASgFUgdmaXhlZDMyEi0KDnJlcGVhdGVkX2ludDMyGPL4//8BIAMoBUICEABSDXJlcGVhdGVkSW50MzISKQoMcGFja2VkX2ludDMyGPP4//8BIAMoBUICEAFSC3BhY2tlZEludDMyEk4KDW9wdGlvbmFsX2VudW0Y9Pj//wEgASgOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUgxvcHRpb25hbEVudW0SKwoPb3B0aW9uYWxfc3RyaW5nGPX4//8BIAEoCVIOb3B0aW9uYWxTdHJpbmcSKQoOb3B0aW9uYWxfYnl0ZXMY9vj//wEgASgMUg1vcHRpb25hbEJ5dGVzElcKEG9wdGlvbmFsX21lc3NhZ2UY9/j//wEgASgLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUg9vcHRpb25hbE1lc3NhZ2USZgoNb3B0aW9uYWxncm91cBj4+P//ASABKAoyPC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEh1Z2VGaWVsZE51bWJlcnMuT3B0aW9uYWxHcm91cFINb3B0aW9uYWxncm91cBJzChFzdHJpbmdfc3RyaW5nX21hcBj6+P//ASADKAsyQy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEh1Z2VGaWVsZE51bWJlcnMuU3RyaW5nU3RyaW5nTWFwRW50cnlSD3N0cmluZ1N0cmluZ01hcBInCgxvbmVvZl91aW50MzIY+/j//wEgASgNSABSC29uZW9mVWludDMyEl0KFG9uZW9mX3Rlc3RfYWxsX3R5cGVzGPz4//8BIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNIAFIRb25lb2ZUZXN0QWxsVHlwZXMSJwoMb25lb2Zfc3RyaW5nGP34//8BIAEoCUgAUgtvbmVvZlN0cmluZxIlCgtvbmVvZl9ieXRlcxj++P//ASABKAxIAFIKb25lb2ZCeXRlcxosCg1PcHRpb25hbEdyb3VwEhsKB2dyb3VwX2EY+fj//wEgASgFUgZncm91cEEaQgoUU3RyaW5nU3RyaW5nTWFwRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4ASoMCOCq//8BEPD4//8BQg0KC29uZW9mX2ZpZWxkIvoBChhUZXN0RXh0ZW5zaW9uSW5zaWRlVGFibGUSFgoGZmllbGQxGAEgASgFUgZmaWVsZDESFgoGZmllbGQyGAIgASgFUgZmaWVsZDISFgoGZmllbGQzGAMgASgFUgZmaWVsZDMSFgoGZmllbGQ0GAQgASgFUgZmaWVsZDQSFgoGZmllbGQ2GAYgASgFUgZmaWVsZDYSFgoGZmllbGQ3GAcgASgFUgZmaWVsZDcSFgoGZmllbGQ4GAggASgFUgZmaWVsZDgSFgoGZmllbGQ5GAkgASgFUgZmaWVsZDkSGAoHZmllbGQxMBgKIAEoBVIHZmllbGQxMCoECAUQBipACgtGb3JlaWduRW51bRIPCgtGT1JFSUdOX0ZPTxAEEg8KC0ZPUkVJR05fQkFSEAUSDwoLRk9SRUlHTl9CQVoQBipLChRUZXN0RW51bVdpdGhEdXBWYWx1ZRIICgRGT08xEAESCAoEQkFSMRACEgcKA0JBWhADEggKBEZPTzIQARIICgRCQVIyEAIaAhABKokBCg5UZXN0U3BhcnNlRW51bRIMCghTUEFSU0VfQRB7Eg4KCFNQQVJTRV9CEKbnAxIPCghTUEFSU0VfQxCysYAGEhUKCFNQQVJTRV9EEPH//////////wESFQoIU1BBUlNFX0UQtN78////////ARIMCghTUEFSU0VfRhAAEgwKCFNQQVJTRV9HEAIqiw8KDVZlcnlMYXJnZUVudW0SFgoSRU5VTV9MQUJFTF9ERUZBVUxUEAASEAoMRU5VTV9MQUJFTF8xEAESEAoMRU5VTV9MQUJFTF8yEAISEAoMRU5VTV9MQUJFTF8zEAMSEAoMRU5VTV9MQUJFTF80EAQSEAoMRU5VTV9MQUJFTF81EAUSEAoMRU5VTV9MQUJFTF82EAYSEAoMRU5VTV9MQUJFTF83EAcSEAoMRU5VTV9MQUJFTF84EAgSEAoMRU5VTV9MQUJFTF85EAkSEQoNRU5VTV9MQUJFTF8xMBAKEhEKDUVOVU1fTEFCRUxfMTEQCxIRCg1FTlVNX0xBQkVMXzEyEAwSEQoNRU5VTV9MQUJFTF8xMxANEhEKDUVOVU1fTEFCRUxfMTQQDhIRCg1FTlVNX0xBQkVMXzE1EA8SEQoNRU5VTV9MQUJFTF8xNhAQEhEKDUVOVU1fTEFCRUxfMTcQERIRCg1FTlVNX0xBQkVMXzE4EBISEQoNRU5VTV9MQUJFTF8xORATEhEKDUVOVU1fTEFCRUxfMjAQFBIRCg1FTlVNX0xBQkVMXzIxEBUSEQoNRU5VTV9MQUJFTF8yMhAWEhEKDUVOVU1fTEFCRUxfMjMQFxIRCg1FTlVNX0xBQkVMXzI0EBgSEQoNRU5VTV9MQUJFTF8yNRAZEhEKDUVOVU1fTEFCRUxfMjYQGhIRCg1FTlVNX0xBQkVMXzI3EBsSEQoNRU5VTV9MQUJFTF8yOBAcEhEKDUVOVU1fTEFCRUxfMjkQHRIRCg1FTlVNX0xBQkVMXzMwEB4SEQoNRU5VTV9MQUJFTF8zMRAfEhEKDUVOVU1fTEFCRUxfMzIQIBIRCg1FTlVNX0xBQkVMXzMzECESEQoNRU5VTV9MQUJFTF8zNBAiEhEKDUVOVU1fTEFCRUxfMzUQIxIRCg1FTlVNX0xBQkVMXzM2ECQSEQoNRU5VTV9MQUJFTF8zNxAlEhEKDUVOVU1fTEFCRUxfMzgQJhIRCg1FTlVNX0xBQkVMXzM5ECcSEQoNRU5VTV9MQUJFTF80MBAoEhEKDUVOVU1fTEFCRUxfNDEQKRIRCg1FTlVNX0xBQkVMXzQyECoSEQoNRU5VTV9MQUJFTF80MxArEhEKDUVOVU1fTEFCRUxfNDQQLBIRCg1FTlVNX0xBQkVMXzQ1EC0SEQoNRU5VTV9MQUJFTF80NhAuEhEKDUVOVU1fTEFCRUxfNDcQLxIRCg1FTlVNX0xBQkVMXzQ4EDASEQoNRU5VTV9MQUJFTF80ORAxEhEKDUVOVU1fTEFCRUxfNTAQMhIRCg1FTlVNX0xBQkVMXzUxEDMSEQoNRU5VTV9MQUJFTF81MhA0EhEKDUVOVU1fTEFCRUxfNTMQNRIRCg1FTlVNX0xBQkVMXzU0EDYSEQoNRU5VTV9MQUJFTF81NRA3EhEKDUVOVU1fTEFCRUxfNTYQOBIRCg1FTlVNX0xBQkVMXzU3EDkSEQoNRU5VTV9MQUJFTF81OBA6EhEKDUVOVU1fTEFCRUxfNTkQOxIRCg1FTlVNX0xBQkVMXzYwEDwSEQoNRU5VTV9MQUJFTF82MRA9EhEKDUVOVU1fTEFCRUxfNjIQPhIRCg1FTlVNX0xBQkVMXzYzED8SEQoNRU5VTV9MQUJFTF82NBBAEhEKDUVOVU1fTEFCRUxfNjUQQRIRCg1FTlVNX0xBQkVMXzY2EEISEQoNRU5VTV9MQUJFTF82NxBDEhEKDUVOVU1fTEFCRUxfNjgQRBIRCg1FTlVNX0xBQkVMXzY5EEUSEQoNRU5VTV9MQUJFTF83MBBGEhEKDUVOVU1fTEFCRUxfNzEQRxIRCg1FTlVNX0xBQkVMXzcyEEgSEQoNRU5VTV9MQUJFTF83MxBJEhEKDUVOVU1fTEFCRUxfNzQQShIRCg1FTlVNX0xBQkVMXzc1EEsSEQoNRU5VTV9MQUJFTF83NhBMEhEKDUVOVU1fTEFCRUxfNzcQTRIRCg1FTlVNX0xBQkVMXzc4EE4SEQoNRU5VTV9MQUJFTF83ORBPEhEKDUVOVU1fTEFCRUxfODAQUBIRCg1FTlVNX0xBQkVMXzgxEFESEQoNRU5VTV9MQUJFTF84MhBSEhEKDUVOVU1fTEFCRUxfODMQUxIRCg1FTlVNX0xBQkVMXzg0EFQSEQoNRU5VTV9MQUJFTF84NRBVEhEKDUVOVU1fTEFCRUxfODYQVhIRCg1FTlVNX0xBQkVMXzg3EFcSEQoNRU5VTV9MQUJFTF84OBBYEhEKDUVOVU1fTEFCRUxfODkQWRIRCg1FTlVNX0xBQkVMXzkwEFoSEQoNRU5VTV9MQUJFTF85MRBbEhEKDUVOVU1fTEFCRUxfOTIQXBIRCg1FTlVNX0xBQkVMXzkzEF0SEQoNRU5VTV9MQUJFTF85NBBeEhEKDUVOVU1fTEFCRUxfOTUQXxIRCg1FTlVNX0xBQkVMXzk2EGASEQoNRU5VTV9MQUJFTF85NxBhEhEKDUVOVU1fTEFCRUxfOTgQYhIRCg1FTlVNX0xBQkVMXzk5EGMSEgoORU5VTV9MQUJFTF8xMDAQZDK1AQoLVGVzdFNlcnZpY2USUgoDRm9vEiQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvb1JlcXVlc3QaJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9vUmVzcG9uc2USUgoDQmFyEiQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkJhclJlcXVlc3QaJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuQmFyUmVzcG9uc2U6ZQoYb3B0aW9uYWxfaW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAEgASgFUhZvcHRpb25hbEludDMyRXh0ZW5zaW9uOmUKGG9wdGlvbmFsX2ludDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgCIAEoA1IWb3B0aW9uYWxJbnQ2NEV4dGVuc2lvbjpnChlvcHRpb25hbF91aW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAMgASgNUhdvcHRpb25hbFVpbnQzMkV4dGVuc2lvbjpnChlvcHRpb25hbF91aW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAQgASgEUhdvcHRpb25hbFVpbnQ2NEV4dGVuc2lvbjpnChlvcHRpb25hbF9zaW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAUgASgRUhdvcHRpb25hbFNpbnQzMkV4dGVuc2lvbjpnChlvcHRpb25hbF9zaW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAYgASgSUhdvcHRpb25hbFNpbnQ2NEV4dGVuc2lvbjppChpvcHRpb25hbF9maXhlZDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgHIAEoB1IYb3B0aW9uYWxGaXhlZDMyRXh0ZW5zaW9uOmkKGm9wdGlvbmFsX2ZpeGVkNjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAggASgGUhhvcHRpb25hbEZpeGVkNjRFeHRlbnNpb246awobb3B0aW9uYWxfc2ZpeGVkMzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAkgASgPUhlvcHRpb25hbFNmaXhlZDMyRXh0ZW5zaW9uOmsKG29wdGlvbmFsX3NmaXhlZDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgKIAEoEFIZb3B0aW9uYWxTZml4ZWQ2NEV4dGVuc2lvbjplChhvcHRpb25hbF9mbG9hdF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYCyABKAJSFm9wdGlvbmFsRmxvYXRFeHRlbnNpb246ZwoZb3B0aW9uYWxfZG91YmxlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgMIAEoAVIXb3B0aW9uYWxEb3VibGVFeHRlbnNpb246YwoXb3B0aW9uYWxfYm9vbF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYDSABKAhSFW9wdGlvbmFsQm9vbEV4dGVuc2lvbjpnChlvcHRpb25hbF9zdHJpbmdfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGA4gASgJUhdvcHRpb25hbFN0cmluZ0V4dGVuc2lvbjplChhvcHRpb25hbF9ieXRlc19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYDyABKAxSFm9wdGlvbmFsQnl0ZXNFeHRlbnNpb246lwEKF29wdGlvbmFsZ3JvdXBfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBAgASgKMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLk9wdGlvbmFsR3JvdXBfZXh0ZW5zaW9uUhZvcHRpb25hbGdyb3VwRXh0ZW5zaW9uOqwBCiFvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYEiABKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VSHm9wdGlvbmFsTmVzdGVkTWVzc2FnZUV4dGVuc2lvbjqiAQoib3B0aW9uYWxfZm9yZWlnbl9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgTIAEoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZVIfb3B0aW9uYWxGb3JlaWduTWVzc2FnZUV4dGVuc2lvbjqmAQohb3B0aW9uYWxfaW1wb3J0X21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBQgASgLMi4ucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRNZXNzYWdlUh5vcHRpb25hbEltcG9ydE1lc3NhZ2VFeHRlbnNpb246owEKHm9wdGlvbmFsX25lc3RlZF9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgVIAEoDjIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bVIbb3B0aW9uYWxOZXN0ZWRFbnVtRXh0ZW5zaW9uOpkBCh9vcHRpb25hbF9mb3JlaWduX2VudW1fZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBYgASgOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUhxvcHRpb25hbEZvcmVpZ25FbnVtRXh0ZW5zaW9uOp0BCh5vcHRpb25hbF9pbXBvcnRfZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYFyABKA4yKy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydEVudW1SG29wdGlvbmFsSW1wb3J0RW51bUV4dGVuc2lvbjp2Ch9vcHRpb25hbF9zdHJpbmdfcGllY2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBggASgJQgIIAlIcb3B0aW9uYWxTdHJpbmdQaWVjZUV4dGVuc2lvbjpnChdvcHRpb25hbF9jb3JkX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgZIAEoCUICCAFSFW9wdGlvbmFsQ29yZEV4dGVuc2lvbjq5AQoob3B0aW9uYWxfcHVibGljX2ltcG9ydF9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgaIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuUHVibGljSW1wb3J0TWVzc2FnZVIkb3B0aW9uYWxQdWJsaWNJbXBvcnRNZXNzYWdlRXh0ZW5zaW9uOqwBCh9vcHRpb25hbF9sYXp5X21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBsgASgLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlQgIoAVIcb3B0aW9uYWxMYXp5TWVzc2FnZUV4dGVuc2lvbjplChhyZXBlYXRlZF9pbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYHyADKAVSFnJlcGVhdGVkSW50MzJFeHRlbnNpb246ZQoYcmVwZWF0ZWRfaW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCAgAygDUhZyZXBlYXRlZEludDY0RXh0ZW5zaW9uOmcKGXJlcGVhdGVkX3VpbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYISADKA1SF3JlcGVhdGVkVWludDMyRXh0ZW5zaW9uOmcKGXJlcGVhdGVkX3VpbnQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYIiADKARSF3JlcGVhdGVkVWludDY0RXh0ZW5zaW9uOmcKGXJlcGVhdGVkX3NpbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYIyADKBFSF3JlcGVhdGVkU2ludDMyRXh0ZW5zaW9uOmcKGXJlcGVhdGVkX3NpbnQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYJCADKBJSF3JlcGVhdGVkU2ludDY0RXh0ZW5zaW9uOmkKGnJlcGVhdGVkX2ZpeGVkMzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCUgAygHUhhyZXBlYXRlZEZpeGVkMzJFeHRlbnNpb246aQoacmVwZWF0ZWRfZml4ZWQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYJiADKAZSGHJlcGVhdGVkRml4ZWQ2NEV4dGVuc2lvbjprChtyZXBlYXRlZF9zZml4ZWQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYJyADKA9SGXJlcGVhdGVkU2ZpeGVkMzJFeHRlbnNpb246awobcmVwZWF0ZWRfc2ZpeGVkNjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCggAygQUhlyZXBlYXRlZFNmaXhlZDY0RXh0ZW5zaW9uOmUKGHJlcGVhdGVkX2Zsb2F0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgpIAMoAlIWcmVwZWF0ZWRGbG9hdEV4dGVuc2lvbjpnChlyZXBlYXRlZF9kb3VibGVfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCogAygBUhdyZXBlYXRlZERvdWJsZUV4dGVuc2lvbjpjChdyZXBlYXRlZF9ib29sX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgrIAMoCFIVcmVwZWF0ZWRCb29sRXh0ZW5zaW9uOmcKGXJlcGVhdGVkX3N0cmluZ19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYLCADKAlSF3JlcGVhdGVkU3RyaW5nRXh0ZW5zaW9uOmUKGHJlcGVhdGVkX2J5dGVzX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgtIAMoDFIWcmVwZWF0ZWRCeXRlc0V4dGVuc2lvbjqXAQoXcmVwZWF0ZWRncm91cF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYLiADKAoyMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuUmVwZWF0ZWRHcm91cF9leHRlbnNpb25SFnJlcGVhdGVkZ3JvdXBFeHRlbnNpb246rAEKIXJlcGVhdGVkX25lc3RlZF9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgwIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVIecmVwZWF0ZWROZXN0ZWRNZXNzYWdlRXh0ZW5zaW9uOqIBCiJyZXBlYXRlZF9mb3JlaWduX21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDEgAygLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUh9yZXBlYXRlZEZvcmVpZ25NZXNzYWdlRXh0ZW5zaW9uOqYBCiFyZXBlYXRlZF9pbXBvcnRfbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYMiADKAsyLi5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydE1lc3NhZ2VSHnJlcGVhdGVkSW1wb3J0TWVzc2FnZUV4dGVuc2lvbjqjAQoecmVwZWF0ZWRfbmVzdGVkX2VudW1fZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDMgAygOMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtUhtyZXBlYXRlZE5lc3RlZEVudW1FeHRlbnNpb246mQEKH3JlcGVhdGVkX2ZvcmVpZ25fZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYNCADKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SHHJlcGVhdGVkRm9yZWlnbkVudW1FeHRlbnNpb246nQEKHnJlcGVhdGVkX2ltcG9ydF9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxg1IAMoDjIrLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0RW51bVIbcmVwZWF0ZWRJbXBvcnRFbnVtRXh0ZW5zaW9uOnYKH3JlcGVhdGVkX3N0cmluZ19waWVjZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYNiADKAlCAggCUhxyZXBlYXRlZFN0cmluZ1BpZWNlRXh0ZW5zaW9uOmcKF3JlcGVhdGVkX2NvcmRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDcgAygJQgIIAVIVcmVwZWF0ZWRDb3JkRXh0ZW5zaW9uOqwBCh9yZXBlYXRlZF9sYXp5X21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDkgAygLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlQgIoAVIccmVwZWF0ZWRMYXp5TWVzc2FnZUV4dGVuc2lvbjpnChdkZWZhdWx0X2ludDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxg9IAEoBToCNDFSFWRlZmF1bHRJbnQzMkV4dGVuc2lvbjpnChdkZWZhdWx0X2ludDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxg+IAEoAzoCNDJSFWRlZmF1bHRJbnQ2NEV4dGVuc2lvbjppChhkZWZhdWx0X3VpbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYPyABKA06AjQzUhZkZWZhdWx0VWludDMyRXh0ZW5zaW9uOmkKGGRlZmF1bHRfdWludDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhAIAEoBDoCNDRSFmRlZmF1bHRVaW50NjRFeHRlbnNpb246agoYZGVmYXVsdF9zaW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEEgASgROgMtNDVSFmRlZmF1bHRTaW50MzJFeHRlbnNpb246aQoYZGVmYXVsdF9zaW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEIgASgSOgI0NlIWZGVmYXVsdFNpbnQ2NEV4dGVuc2lvbjprChlkZWZhdWx0X2ZpeGVkMzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEMgASgHOgI0N1IXZGVmYXVsdEZpeGVkMzJFeHRlbnNpb246awoZZGVmYXVsdF9maXhlZDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhEIAEoBjoCNDhSF2RlZmF1bHRGaXhlZDY0RXh0ZW5zaW9uOm0KGmRlZmF1bHRfc2ZpeGVkMzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEUgASgPOgI0OVIYZGVmYXVsdFNmaXhlZDMyRXh0ZW5zaW9uOm4KGmRlZmF1bHRfc2ZpeGVkNjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEYgASgQOgMtNTBSGGRlZmF1bHRTZml4ZWQ2NEV4dGVuc2lvbjppChdkZWZhdWx0X2Zsb2F0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhHIAEoAjoENTEuNVIVZGVmYXVsdEZsb2F0RXh0ZW5zaW9uOmwKGGRlZmF1bHRfZG91YmxlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhIIAEoAToFNTIwMDBSFmRlZmF1bHREb3VibGVFeHRlbnNpb246ZwoWZGVmYXVsdF9ib29sX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhJIAEoCDoEdHJ1ZVIUZGVmYXVsdEJvb2xFeHRlbnNpb246bAoYZGVmYXVsdF9zdHJpbmdfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEogASgJOgVoZWxsb1IWZGVmYXVsdFN0cmluZ0V4dGVuc2lvbjpqChdkZWZhdWx0X2J5dGVzX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhLIAEoDDoFd29ybGRSFWRlZmF1bHRCeXRlc0V4dGVuc2lvbjqmAQodZGVmYXVsdF9uZXN0ZWRfZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYUSABKA4yMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW06A0JBUlIaZGVmYXVsdE5lc3RlZEVudW1FeHRlbnNpb246pAEKHmRlZmF1bHRfZm9yZWlnbl9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhSIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bToLRk9SRUlHTl9CQVJSG2RlZmF1bHRGb3JlaWduRW51bUV4dGVuc2lvbjqnAQodZGVmYXVsdF9pbXBvcnRfZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYUyABKA4yKy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydEVudW06CklNUE9SVF9CQVJSGmRlZmF1bHRJbXBvcnRFbnVtRXh0ZW5zaW9uOnkKHmRlZmF1bHRfc3RyaW5nX3BpZWNlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhUIAEoCToDYWJjQgIIAlIbZGVmYXVsdFN0cmluZ1BpZWNlRXh0ZW5zaW9uOmoKFmRlZmF1bHRfY29yZF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYVSABKAk6AzEyM0ICCAFSFGRlZmF1bHRDb3JkRXh0ZW5zaW9uOmEKFm9uZW9mX3VpbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYbyABKA1SFG9uZW9mVWludDMyRXh0ZW5zaW9uOqYBCh5vbmVvZl9uZXN0ZWRfbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYcCABKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VSG29uZW9mTmVzdGVkTWVzc2FnZUV4dGVuc2lvbjphChZvbmVvZl9zdHJpbmdfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGHEgASgJUhRvbmVvZlN0cmluZ0V4dGVuc2lvbjpfChVvbmVvZl9ieXRlc19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYciABKAxSE29uZW9mQnl0ZXNFeHRlbnNpb246XAoTbXlfZXh0ZW5zaW9uX3N0cmluZxIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RmllbGRPcmRlcmluZ3MYMiABKAlSEW15RXh0ZW5zaW9uU3RyaW5nOlYKEG15X2V4dGVuc2lvbl9pbnQSLC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEZpZWxkT3JkZXJpbmdzGAUgASgFUg5teUV4dGVuc2lvbkludDpoChZwYWNrZWRfaW50MzJfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGFogAygFQgIQAVIUcGFja2VkSW50MzJFeHRlbnNpb246aAoWcGFja2VkX2ludDY0X2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhbIAMoA0ICEAFSFHBhY2tlZEludDY0RXh0ZW5zaW9uOmoKF3BhY2tlZF91aW50MzJfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGFwgAygNQgIQAVIVcGFja2VkVWludDMyRXh0ZW5zaW9uOmoKF3BhY2tlZF91aW50NjRfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGF0gAygEQgIQAVIVcGFja2VkVWludDY0RXh0ZW5zaW9uOmoKF3BhY2tlZF9zaW50MzJfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGF4gAygRQgIQAVIVcGFja2VkU2ludDMyRXh0ZW5zaW9uOmoKF3BhY2tlZF9zaW50NjRfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGF8gAygSQgIQAVIVcGFja2VkU2ludDY0RXh0ZW5zaW9uOmwKGHBhY2tlZF9maXhlZDMyX2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhgIAMoB0ICEAFSFnBhY2tlZEZpeGVkMzJFeHRlbnNpb246bAoYcGFja2VkX2ZpeGVkNjRfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGGEgAygGQgIQAVIWcGFja2VkRml4ZWQ2NEV4dGVuc2lvbjpuChlwYWNrZWRfc2ZpeGVkMzJfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGGIgAygPQgIQAVIXcGFja2VkU2ZpeGVkMzJFeHRlbnNpb246bgoZcGFja2VkX3NmaXhlZDY0X2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhjIAMoEEICEAFSF3BhY2tlZFNmaXhlZDY0RXh0ZW5zaW9uOmgKFnBhY2tlZF9mbG9hdF9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYZCADKAJCAhABUhRwYWNrZWRGbG9hdEV4dGVuc2lvbjpqChdwYWNrZWRfZG91YmxlX2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhlIAMoAUICEAFSFXBhY2tlZERvdWJsZUV4dGVuc2lvbjpmChVwYWNrZWRfYm9vbF9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYZiADKAhCAhABUhNwYWNrZWRCb29sRXh0ZW5zaW9uOo0BChVwYWNrZWRfZW51bV9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYZyADKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1CAhABUhNwYWNrZWRFbnVtRXh0ZW5zaW9uOm4KGHVucGFja2VkX2ludDMyX2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGFogAygFQgIQAFIWdW5wYWNrZWRJbnQzMkV4dGVuc2lvbjpuChh1bnBhY2tlZF9pbnQ2NF9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhbIAMoA0ICEABSFnVucGFja2VkSW50NjRFeHRlbnNpb246cAoZdW5wYWNrZWRfdWludDMyX2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGFwgAygNQgIQAFIXdW5wYWNrZWRVaW50MzJFeHRlbnNpb246cAoZdW5wYWNrZWRfdWludDY0X2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGF0gAygEQgIQAFIXdW5wYWNrZWRVaW50NjRFeHRlbnNpb246cAoZdW5wYWNrZWRfc2ludDMyX2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGF4gAygRQgIQAFIXdW5wYWNrZWRTaW50MzJFeHRlbnNpb246cAoZdW5wYWNrZWRfc2ludDY0X2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGF8gAygSQgIQAFIXdW5wYWNrZWRTaW50NjRFeHRlbnNpb246cgoadW5wYWNrZWRfZml4ZWQzMl9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhgIAMoB0ICEABSGHVucGFja2VkRml4ZWQzMkV4dGVuc2lvbjpyChp1bnBhY2tlZF9maXhlZDY0X2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGEgAygGQgIQAFIYdW5wYWNrZWRGaXhlZDY0RXh0ZW5zaW9uOnQKG3VucGFja2VkX3NmaXhlZDMyX2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGIgAygPQgIQAFIZdW5wYWNrZWRTZml4ZWQzMkV4dGVuc2lvbjp0Cht1bnBhY2tlZF9zZml4ZWQ2NF9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhjIAMoEEICEABSGXVucGFja2VkU2ZpeGVkNjRFeHRlbnNpb246bgoYdW5wYWNrZWRfZmxvYXRfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYZCADKAJCAhAAUhZ1bnBhY2tlZEZsb2F0RXh0ZW5zaW9uOnAKGXVucGFja2VkX2RvdWJsZV9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhlIAMoAUICEABSF3VucGFja2VkRG91YmxlRXh0ZW5zaW9uOmwKF3VucGFja2VkX2Jvb2xfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYZiADKAhCAhAAUhV1bnBhY2tlZEJvb2xFeHRlbnNpb246kwEKF3VucGFja2VkX2VudW1fZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYZyADKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1CAhAAUhV1bnBhY2tlZEVudW1FeHRlbnNpb246gAEKDnRlc3RfYWxsX3R5cGVzEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RIdWdlRmllbGROdW1iZXJzGOCq//8BIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSDHRlc3RBbGxUeXBlczqEAQoldGVzdF9leHRlbnNpb25faW5zaWRlX3RhYmxlX2V4dGVuc2lvbhIyLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RXh0ZW5zaW9uSW5zaWRlVGFibGUYBSABKAVSIXRlc3RFeHRlbnNpb25JbnNpZGVUYWJsZUV4dGVuc2lvbkIySAGAAQGIAQGQAQH4AQGqAiFHb29nbGUuUHJvdG9idWYuVGVzdFByb3Rvcy5Qcm90bzJKs7gDCgcSBSYA2AgCCqIOCgEMEgMmABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCjLTASBBdXRob3I6IGtlbnRvbkBnb29nbGUuY29tIChLZW50b24gVmFyZGEpCiAgQmFzZWQgb24gb3JpZ2luYWwgUHJvdG9jb2wgQnVmZmVycyBkZXNpZ24gYnkKICBTYW5qYXkgR2hlbWF3YXQsIEplZmYgRGVhbiwgYW5kIG90aGVycy4KCiBBIHByb3RvIGZpbGUgd2Ugd2lsbCB1c2UgZm9yIHVuaXQgdGVzdGluZy4KCiBMSU5UOiBBTExPV19HUk9VUFMsIExFR0FDWV9OQU1FUwoKCAoBCBIDKgAiCoABCgIIEBIDKgAiGmcgU29tZSBnZW5lcmljX3NlcnZpY2VzIG9wdGlvbihzKSBhZGRlZCBhdXRvbWF0aWNhbGx5LgogU2VlOiAgaHR0cDovL2dvL3Byb3RvMi1nZW5lcmljLXNlcnZpY2VzLWRlZmF1bHQKIgwgYXV0by1hZGRlZAoKCAoBCBIDKwAkChcKAggREgMrACQiDCBhdXRvLWFkZGVkCgoICgEIEgMsACIKFwoCCBISAywAIiIMIGF1dG8tYWRkZWQKCggKAQgSAy0AHwoJCgIIHxIDLQAfCgkKAgMAEgMvAB8K5gEKAQISAzQAIRrbASBXZSBkb24ndCBwdXQgdGhpcyBpbiBhIHBhY2thZ2Ugd2l0aGluIHByb3RvMiBiZWNhdXNlIHdlIG5lZWQgdG8gbWFrZSBzdXJlCiB0aGF0IHRoZSBnZW5lcmF0ZWQgY29kZSBkb2Vzbid0IGRlcGVuZCBvbiBiZWluZyBpbiB0aGUgcHJvdG8yIG5hbWVzcGFjZS4KIEluIHRlc3RfdXRpbC5oIHdlIGRvICJ1c2luZyBuYW1lc3BhY2UgdW5pdHRlc3QgPSBwcm90b2J1Zl91bml0dGVzdCIuCgoICgEIEgM5ABwK4gEKAggJEgM5ABwa1gEgUHJvdG9zIG9wdGltaXplZCBmb3IgU1BFRUQgdXNlIGEgc3RyaWN0IHN1cGVyc2V0IG9mIHRoZSBnZW5lcmF0ZWQgY29kZQogb2YgZXF1aXZhbGVudCBvbmVzIG9wdGltaXplZCBmb3IgQ09ERV9TSVpFLCBzbyB3ZSBzaG91bGQgb3B0aW1pemUgYWxsIG91cgogdGVzdHMgZm9yIHNwZWVkIHVubGVzcyBleHBsaWNpdGx5IHRlc3RpbmcgY29kZSBzaXplIG9wdGltaXphdGlvbi4KCggKAQgSAzsAPgoJCgIIJRIDOwA+ClwKAgQAEgU/ALYBARpPIFRoaXMgcHJvdG8gaW5jbHVkZXMgZXZlcnkgdHlwZSBvZiBmaWVsZCBpbiBib3RoIHNpbmd1bGFyIGFuZCByZXBlYXRlZAogZm9ybXMuCgoKCgMEAAESAz8IFAoMCgQEAAMAEgRAAkUDCgwKBQQAAwABEgNAChcK4wEKBgQAAwACABIDRAQaGtMBIFRoZSBmaWVsZCBuYW1lICJiIiBmYWlscyB0byBjb21waWxlIGluIHByb3RvMSBiZWNhdXNlIGl0IGNvbmZsaWN0cyB3aXRoCiBhIGxvY2FsIHZhcmlhYmxlIG5hbWVkICJiIiBpbiBvbmUgb2YgdGhlIGdlbmVyYXRlZCBtZXRob2RzLiAgRG9oLgogVGhpcyBmaWxlIG5lZWRzIHRvIGNvbXBpbGUgaW4gcHJvdG8xIHRvIHRlc3QgYmFja3dhcmRzLWNvbXBhdGliaWxpdHkuCgoOCgcEAAMA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BAMSBIADHB0KDAoEBAwCBRIEgQMCHgoNCgUEDAIFBBIEgQMCCgoNCgUEDAIFBRIEgQMLEAoNCgUEDAIFARIEgQMRFwoNCgUEDAIFAxIEgQMcHQoMCgQEDAIGEgSCAwIeCg0KBQQMAgYEEgSCAwIKCg0KBQQMAgYFEgSCAwsQCg0KBQQMAgYBEgSCAxEXCg0KBQQMAgYDEgSCAxwdCgwKBAQMAgcSBIMDAh4KDQoFBAwCBwQSBIMDAgoKDQoFBAwCBwUSBIMDCxAKDQoFBAwCBwESBIMDERcKDQoFBAwCBwMSBIMDHB0KDAoEBAwCCBIEhAMCHgoNCgUEDAIIBBIEhAMCCgoNCgUEDAIIBRIEhAMLEAoNCgUEDAIIARIEhAMRFwoNCgUEDAIIAxIEhAMcHQoMCgQEDAIJEgSFAwIeCg0KBQQMAgkEEgSFAwIKCg0KBQQMAgkFEgSFAwsQCg0KBQQMAgkBEgSFAxEYCg0KBQQMAgkDEgSFAxsdCgwKBAQMAgoSBIYDAh4KDQoFBAwCCgQSBIYDAgoKDQoFBAwCCgUSBIYDCxAKDQoFBAwCCgESBIYDERgKDQoFBAwCCgMSBIYDGx0KDAoEBAwCCxIEhwMCHgoNCgUEDAILBBIEhwMCCgoNCgUEDAILBRIEhwMLEAoNCgUEDAILARIEhwMRGAoNCgUEDAILAxIEhwMbHQoMCgQEDAIMEgSIAwIeCg0KBQQMAgwEEgSIAwIKCg0KBQQMAgwFEgSIAwsQCg0KBQQMAgwBEgSIAxEYCg0KBQQMAgwDEgSIAxsdCgwKBAQMAg0SBIkDAh4KDQoFBAwCDQQSBIkDAgoKDQoFBAwCDQUSBIkDCxAKDQoFBAwCDQESBIkDERgKDQoFBAwCDQMSBIkDGx0KDAoEBAwCDhIEigMCHgoNCgUEDAIOBBIEigMCCgoNCgUEDAIOBRIEigMLEAoNCgUEDAIOARIEigMRGAoNCgUEDAIOAxIEigMbHQoMCgQEDAIPEgSLAwIeCg0KBQQMAg8EEgSLAwIKCg0KBQQMAg8FEgSLAwsQCg0KBQQMAg8BEgSLAxEYCg0KBQQMAg8DEgSLAxsdCgwKBAQMAhASBIwDAh4KDQoFBAwCEAQSBIwDAgoKDQoFBAwCEAUSBIwDCxAKDQoFBAwCEAESBIwDERgKDQoFBAwCEAMSBIwDGx0KDAoEBAwCERIEjQMCHgoNCgUEDAIRBBIEjQMCCgoNCgUEDAIRBRIEjQMLEAoNCgUEDAIRARIEjQMRGAoNCgUEDAIRAxIEjQMbHQoMCgQEDAISEgSOAwIeCg0KBQQMAhIEEgSOAwIKCg0KBQQMAhIFEgSOAwsQCg0KBQQMAhIBEgSOAxEYCg0KBQQMAhIDEgSOAxsdCgwKBAQMAhMSBI8DAh4KDQoFBAwCEwQSBI8DAgoKDQoFBAwCEwUSBI8DCxAKDQoFBAwCEwESBI8DERgKDQoFBAwCEwMSBI8DGx0KDAoEBAwCFBIEkAMCHgoNCgUEDAIUBBIEkAMCCgoNCgUEDAIUBRIEkAMLEAoNCgUEDAIUARIEkAMRGAoNCgUEDAIUAxIEkAMbHQoMCgQEDAIVEgSRAwIeCg0KBQQMAhUEEgSRAwIKCg0KBQQMAhUFEgSRAwsQCg0KBQQMAhUBEgSRAxEYCg0KBQQMAhUDEgSRAxsdCgwKBAQMAhYSBJIDAh4KDQoFBAwCFgQSBJIDAgoKDQoFBAwCFgUSBJIDCxAKDQoFBAwCFgESBJIDERgKDQoFBAwCFgMSBJIDGx0KDAoEBAwCFxIEkwMCHgoNCgUEDAIXBBIEkwMCCgoNCgUEDAIXBRIEkwMLEAoNCgUEDAIXARIEkwMRGAoNCgUEDAIXAxIEkwMbHQoMCgQEDAIYEgSUAwIeCg0KBQQMAhgEEgSUAwIKCg0KBQQMAhgFEgSUAwsQCg0KBQQMAhgBEgSUAxEYCg0KBQQMAhgDEgSUAxsdCgwKBAQMAhkSBJUDAh4KDQoFBAwCGQQSBJUDAgoKDQoFBAwCGQUSBJUDCxAKDQoFBAwCGQESBJUDERgKDQoFBAwCGQMSBJUDGx0KDAoEBAwCGhIElgMCHgoNCgUEDAIaBBIElgMCCgoNCgUEDAIaBRIElgMLEAoNCgUEDAIaARIElgMRGAoNCgUEDAIaAxIElgMbHQoMCgQEDAIbEgSXAwIeCg0KBQQMAhsEEgSXAwIKCg0KBQQMAhsFEgSXAwsQCg0KBQQMAhsBEgSXAxEYCg0KBQQMAhsDEgSXAxsdCgwKBAQMAhwSBJgDAh4KDQoFBAwCHAQSBJgDAgoKDQoFBAwCHAUSBJgDCxAKDQoFBAwCHAESBJgDERgKDQoFBAwCHAMSBJgDGx0KDAoEBAwCHRIEmQMCHgoN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Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAOwoJCgIIJRIDIgA7CggKAQgSAyMAPAoJCgIICxIDIwA8CggKAQgSAyQALAoJCgIIARIDJAAsCggKAQgSAyUAKQoJCgIICBIDJQApCggKAQgSAyYAIgoJCgIIChIDJgAiCggKAQgSAycAIQoJCgIIJBIDJwAhCuQQCgIEABIFeQCaAQEa1hAgYEFueWAgY29udGFpbnMgYW4gYXJiaXRyYXJ5IHNlcmlhbGl6ZWQgcHJvdG9jb2wgYnVmZmVyIG1lc3NhZ2UgYWxvbmcgd2l0aCBhCiBVUkwgdGhhdCBkZXNjcmliZXMgdGhlIHR5cGUgb2YgdGhlIHNlcmlhbGl6ZWQgbWVzc2FnZS4KCiBQcm90b2J1ZiBsaWJyYXJ5IHByb3ZpZGVzIHN1cHBvcnQgdG8gcGFjay91bnBhY2sgQW55IHZhbHVlcyBpbiB0aGUgZm9ybQogb2YgdXRpbGl0eSBmdW5jdGlvbnMgb3IgYWRkaXRpb25hbCBnZW5lcmF0ZWQgbWV0aG9kcyBvZiB0aGUgQW55IHR5cGUuCgogRXhhbXBsZSAxOiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIEMrKy4KCiAgICAgRm9vIGZvbyA9IC4uLjsKICAgICBBbnkgYW55OwogICAgIGFueS5QYWNrRnJvbShmb28pOwogICAgIC4uLgogICAgIGlmIChhbnkuVW5wYWNrVG8oJmZvbykpIHsKICAgICAgIC4uLgogICAgIH0KCiBFeGFtcGxlIDI6IFBhY2sgYW5kIHVucGFjayBhIG1lc3NhZ2UgaW4gSmF2YS4KCiAgICAgRm9vIGZvbyA9IC4uLjsKICAgICBBbnkgYW55ID0gQW55LnBhY2soZm9vKTsKICAgICAuLi4KICAgICBpZiAoYW55LmlzKEZvby5jbGFzcykpIHsKICAgICAgIGZvbyA9IGFueS51bnBhY2soRm9vLmNsYXNzKTsKICAgICB9CgogIEV4YW1wbGUgMzogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBQeXRob24uCgogICAgIGZvbyA9IEZvbyguLi4pCiAgICAgYW55ID0gQW55KCkKICAgICBhbnkuUGFjayhmb28pCiAgICAgLi4uCiAgICAgaWYgYW55LklzKEZvby5ERVNDUklQVE9SKToKICAgICAgIGFueS5VbnBhY2soZm9vKQogICAgICAgLi4uCgogIEV4YW1wbGUgNDogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBHbwoKICAgICAgZm9vIDo9ICZwYi5Gb297Li4ufQogICAgICBhbnksIGVyciA6PSBwdHlwZXMuTWFyc2hhbEFueShmb28pCiAgICAgIC4uLgogICAgICBmb28gOj0gJnBiLkZvb3t9CiAgICAgIGlmIGVyciA6PSBwdHlwZXMuVW5tYXJzaGFsQW55KGFueSwgZm9vKTsgZXJyICE9IG5pbCB7CiAgICAgICAgLi4uCiAgICAgIH0KCiBUaGUgcGFjayBtZXRob2RzIHByb3ZpZGVkIGJ5IHByb3RvYnVmIGxpYnJhcnkgd2lsbCBieSBkZWZhdWx0IHVzZQogJ3R5cGUuZ29vZ2xlYXBpcy5jb20vZnVsbC50eXBlLm5hbWUnIGFzIHRoZSB0eXBlIFVSTCBhbmQgdGhlIHVucGFjawogbWV0aG9kcyBvbmx5IHVzZSB0aGUgZnVsbHkgcXVhbGlmaWVkIHR5cGUgbmFtZSBhZnRlciB0aGUgbGFzdCAnLycKIGluIHRoZSB0eXBlIFVSTCwgZm9yIGV4YW1wbGUgImZvby5iYXIuY29tL3gveS56IiB3aWxsIHlpZWxkIHR5cGUKIG5hbWUgInkueiIuCgoKIEpTT04KID09PT0KIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIGFuIGBBbnlgIHZhbHVlIHVzZXMgdGhlIHJlZ3VsYXIKIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkZXNlcmlhbGl6ZWQsIGVtYmVkZGVkIG1lc3NhZ2UsIHdpdGggYW4KIGFkZGl0aW9uYWwgZmllbGQgYEB0eXBlYCB3aGljaCBjb250YWlucyB0aGUgdHlwZSBVUkwuIEV4YW1wbGU6CgogICAgIHBhY2thZ2UgZ29vZ2xlLnByb2ZpbGU7CiAgICAgbWVzc2FnZSBQZXJzb24gewogICAgICAgc3RyaW5nIGZpcnN0X25hbWUgPSAxOwogICAgICAgc3RyaW5nIGxhc3RfbmFtZSA9IDI7CiAgICAgfQoKICAgICB7CiAgICAgICAiQHR5cGUiOiAidHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucHJvZmlsZS5QZXJzb24iLAogICAgICAgImZpcnN0TmFtZSI6IDxzdHJpbmc+LAogICAgICAgImxhc3ROYW1lIjogPHN0cmluZz4KICAgICB9CgogSWYgdGhlIGVtYmVkZGVkIG1lc3NhZ2UgdHlwZSBpcyB3ZWxsLWtub3duIGFuZCBoYXMgYSBjdXN0b20gSlNPTgogcmVwcmVzZW50YXRpb24sIHRoYXQgcmVwcmVzZW50YXRpb24gd2lsbCBiZSBlbWJlZGRlZCBhZGRpbmcgYSBmaWVsZAogYHZhbHVlYCB3aGljaCBob2xkcyB0aGUgY3VzdG9tIEpTT04gaW4gYWRkaXRpb24gdG8gdGhlIGBAdHlwZWAKIGZpZWxkLiBFeGFtcGxlIChmb3IgbWVzc2FnZSBbZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uXVtdKToKCiAgICAgewogICAgICAgIkB0eXBlIjogInR5cGUuZ29vZ2xlYXBpcy5jb20vZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uIiwKICAgICAgICJ2YWx1ZSI6ICIxLjIxMnMiCiAgICAgfQoKCgoKAwQAARIDeQgLCtcKCgQEAAIAEgSWAQIWGsgKIEEgVVJML3Jlc291cmNlIG5hbWUgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSB0eXBlIG9mIHRoZSBzZXJpYWxpemVkCiBwcm90b2NvbCBidWZmZXIgbWVzc2FnZS4gVGhpcyBzdHJpbmcgbXVzdCBjb250YWluIGF0IGxlYXN0CiBvbmUgIi8iIGNoYXJhY3Rlci4gVGhlIGxhc3Qgc2VnbWVudCBvZiB0aGUgVVJMJ3MgcGF0aCBtdXN0IHJlcHJlc2VudAogdGhlIGZ1bGx5IHF1YWxpZmllZCBuYW1lIG9mIHRoZSB0eXBlIChhcyBpbgogYHBhdGgvZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uYCkuIFRoZSBuYW1lIHNob3VsZCBiZSBpbiBhIGNhbm9uaWNhbCBmb3JtCiAoZS5nLiwgbGVhZGluZyAiLiIgaXMgbm90IGFjY2VwdGVkKS4KCiBJbiBwcmFjdGljZSwgdGVhbXMgdXN1YWxseSBwcmVjb21waWxlIGludG8gdGhlIGJpbmFyeSBhbGwgdHlwZXMgdGhhdCB0aGV5CiBleHBlY3QgaXQgdG8gdXNlIGluIHRoZSBjb250ZXh0IG9mIEFueS4gSG93ZXZlciwgZm9yIFVSTHMgd2hpY2ggdXNlIHRoZQogc2NoZW1lIGBodHRwYCwgYGh0dHBzYCwgb3Igbm8gc2NoZW1lLCBvbmUgY2FuIG9wdGlvbmFsbHkgc2V0IHVwIGEgdHlwZQogc2VydmVyIHRoYXQgbWFwcyB0eXBlIFVSTHMgdG8gbWVzc2FnZSBkZWZpbml0aW9ucyBhcyBmb2xsb3dzOgoKICogSWYgbm8gc2NoZW1lIGlzIHByb3ZpZGVkLCBgaHR0cHNgIGlzIGFzc3VtZWQuCiAqIEFuIEhUVFAgR0VUIG9uIHRoZSBVUkwgbXVzdCB5aWVsZCBhIFtnb29nbGUucHJvdG9idWYuVHlwZV1bXQogICB2YWx1ZSBpbiBiaW5hcnkgZm9ybWF0LCBvciBwcm9kdWNlIGFuIGVycm9yLgogKiBBcHBsaWNhdGlvbnMgYXJlIGFsbG93ZWQgdG8gY2FjaGUgbG9va3VwIHJlc3VsdHMgYmFzZWQgb24gdGhlCiAgIFVSTCwgb3IgaGF2ZSB0aGVtIHByZWNvbXBpbGVkIGludG8gYSBiaW5hcnkgdG8gYXZvaWQgYW55CiAgIGxvb2t1cC4gVGhlcmVmb3JlLCBiaW5hcnkgY29tcGF0aWJpbGl0eSBuZWVkcyB0byBiZSBwcmVzZXJ2ZWQKICAgb24gY2hhbmdlcyB0byB0eXBlcy4gKFVzZSB2ZXJzaW9uZWQgdHlwZSBuYW1lcyB0byBtYW5hZ2UKICAgYnJlYWtpbmcgY2hhbmdlcy4pCgogTm90ZTogdGhpcyBmdW5jdGlvbmFsaXR5IGlzIG5vdCBjdXJyZW50bHkgYXZhaWxhYmxlIGluIHRoZSBvZmZpY2lhbAogcHJvdG9idWYgcmVsZWFzZSwgYW5kIGl0IGlzIG5vdCB1c2VkIGZvciB0eXBlIFVSTHMgYmVnaW5uaW5nIHdpdGgKIHR5cGUuZ29vZ2xlYXBpcy5jb20uCgogU2NoZW1lcyBvdGhlciB0aGFuIGBodHRwYCwgYGh0dHBzYCAob3IgdGhlIGVtcHR5IHNjaGVtZSkgbWlnaHQgYmUKIHVzZWQgd2l0aCBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYyBzZW1hbnRpY3MuCgoKDQoFBAACAAUSBJYBAggKDQoFBAACAAESBJYBCREKDQoFBAACAAMSBJYBFBUKVwoEBAACARIEmQECEhpJIE11c3QgYmUgYSB2YWxpZCBzZXJpYWxpemVkIHByb3RvY29sIGJ1ZmZlciBvZiB0aGUgYWJvdmUgc3BlY2lmaWVkIHR5cGUuCgoNCgUEAAIBBRIEmQECBwoNCgUEAAIBARIEmQEIDQoNCgUEAAIBAxIEmQEQEWIGcHJvdG8zCskSCiRnb29nbGUvcHJvdG9idWYvc291cmNlX2NvbnRleHQucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiIsCg1Tb3VyY2VDb250ZXh0EhsKCWZpbGVfbmFtZRgBIAEoCVIIZmlsZU5hbWVClQEKE2NvbS5nb29nbGUucHJvdG9idWZCElNvdXJjZUNvbnRleHRQcm90b1ABWkFnb29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9wcm90b2J1Zi9zb3VyY2VfY29udGV4dDtzb3VyY2VfY29udGV4dKICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0rBEAoGEgQeAC8BCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgA7CgkKAgglEgMiADsKCAoBCBIDIwAsCgkKAggBEgMjACwKCAoBCBIDJAAzCgkKAggIEgMkADMKCAoBCBIDJQAiCgkKAggKEgMlACIKCAoBCBIDJgAhCgkKAggkEgMmACEKCAoBCBIDJwBYCgkKAggLEgMnAFgKgwEKAgQAEgQrAC8BGncgYFNvdXJjZUNvbnRleHRgIHJlcHJlc2VudHMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNvdXJjZSBvZiBhCiBwcm90b2J1ZiBlbGVtZW50LCBsaWtlIHRoZSBmaWxlIGluIHdoaWNoIGl0IGlzIGRlZmluZWQuCgoKCgMEAAESAysIFQqjAQoEBAACABIDLgIXGpUBIFRoZSBwYXRoLXF1YWxpZmllZCBuYW1lIG9mIHRoZSAucHJvdG8gZmlsZSB0aGF0IGNvbnRhaW5lZCB0aGUgYXNzb2NpYXRlZAogcHJvdG9idWYgZWxlbWVudC4gIEZvciBleGFtcGxlOiBgImdvb2dsZS9wcm90b2J1Zi9zb3VyY2VfY29udGV4dC5wcm90byJgLgoKDAoFBAACAAUSAy4CCAoMCgUEAAIAARIDLgkSCgwKBQQAAgADEgMuFRZiBnByb3RvMwrqRgoaZ29vZ2xlL3Byb3RvYnVmL3R5cGUucHJvdG8SD2dvb2dsZS5wcm90b2J1ZhoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90bxokZ29vZ2xlL3Byb3RvYnVmL3NvdXJjZV9jb250ZXh0LnByb3RvIo0CCgRUeXBlEhIKBG5hbWUYASABKAlSBG5hbWUSLgoGZmllbGRzGAIgAygLMhYuZ29vZ2xlLnByb3RvYnVmLkZpZWxkUgZmaWVsZHMSFgoGb25lb2ZzGAMgAygJUgZvbmVvZnMSMQoHb3B0aW9ucxgEIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5PcHRpb25SB29wdGlvbnMSRQoOc291cmNlX2NvbnRleHQYBSABKAsyHi5nb29nbGUucHJvdG9idWYuU291cmNlQ29udGV4dFINc291cmNlQ29udGV4dBIvCgZzeW50YXgYBiABKA4yFy5nb29nbGUucHJvdG9idWYuU3ludGF4UgZzeW50YXgitAYKBUZpZWxkEi8KBGtpbmQYASABKA4yGy5nb29nbGUucHJvdG9idWYuRmllbGQuS2luZFIEa2luZBJECgtjYXJkaW5hbGl0eRgCIAEoDjIiLmdvb2dsZS5wcm90b2J1Zi5GaWVsZC5DYXJkaW5hbGl0eVILY2FyZGluYWxpdHkSFgoGbnVtYmVyGAMgASgFUgZudW1iZXISEgoEbmFtZRgEIAEoCVIEbmFtZRIZCgh0eXBlX3VybBgGIAEoCVIHdHlwZVVybBIfCgtvbmVvZl9pbmRleBgHIAEoBVIKb25lb2ZJbmRleBIWCgZwYWNrZWQYCCABKAhSBnBhY2tlZBIxCgdvcHRpb25zGAkgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvblIHb3B0aW9ucxIbCglqc29uX25hbWUYCiABKAlSCGpzb25OYW1lEiMKDWRlZmF1bHRfdmFsdWUYCyABKAlSDGRlZmF1bHRWYWx1ZSLIAgoES2luZBIQCgxUWVBFX1VOS05PV04QABIPCgtUWVBFX0RPVUJMRRABEg4KClRZUEVfRkxPQVQQAhIOCgpUWVBFX0lOVDY0EAMSDwoLVFlQRV9VSU5UNjQQBBIOCgpUWVBFX0lOVDMyEAUSEAoMVFlQRV9GSVhFRDY0EAYSEAoMVFlQRV9GSVhFRDMyEAcSDQoJVFlQRV9CT09MEAgSDwoLVFlQRV9TVFJJTkcQCRIOCgpUWVBFX0dST1VQEAoSEAoMVFlQRV9NRVNTQUdFEAsSDgoKVFlQRV9CWVRFUxAMEg8KC1RZUEVfVUlOVDMyEA0SDQoJVFlQRV9FTlVNEA4SEQoNVFlQRV9TRklYRUQzMhAPEhEKDVRZUEVfU0ZJWEVENjQQEBIPCgtUWVBFX1NJTlQzMhAREg8KC1RZUEVfU0lOVDY0EBIidAoLQ2FyZGluYWxpdHkSFwoTQ0FSRElOQUxJVFlfVU5LTk9XThAAEhgKFENBUkRJTkFMSVRZX09QVElPTkFMEAESGAoUQ0FSRElOQUxJVFlfUkVRVUlSRUQQAhIYChRDQVJESU5BTElUWV9SRVBFQVRFRBADIv8BCgRFbnVtEhIKBG5hbWUYASABKAlSBG5hbWUSOAoJZW51bXZhbHVlGAIgAygLMhouZ29vZ2xlLnByb3RvYnVmLkVudW1WYWx1ZVIJZW51bXZhbHVlEjEKB29wdGlvbnMYAyADKAsyFy5nb29nbGUucHJvdG9idWYuT3B0aW9uUgdvcHRpb25zEkUKDnNvdXJjZV9jb250ZXh0GAQgASgLMh4uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvbnRleHRSDXNvdXJjZUNvbnRleHQSLwoGc3ludGF4GAUgASgOMhcuZ29vZ2xlLnByb3RvYnVmLlN5bnRheFIGc3ludGF4ImoKCUVudW1WYWx1ZRISCgRuYW1lGAEgASgJUgRuYW1lEhYKBm51bWJlchgCIAEoBVIGbnVtYmVyEjEKB29wdGlvbnMYAyADKAsyFy5nb29nbGUucHJvdG9idWYuT3B0aW9uUgdvcHRpb25zIkgKBk9wdGlvbhISCgRuYW1lGAEgASgJUgRuYW1lEioKBXZhbHVlGAIgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIFdmFsdWUqLgoGU3ludGF4EhEKDVNZTlRBWF9QUk9UTzIQABIRCg1TWU5UQVhfUFJPVE8zEAFCfQoTY29tLmdvb2dsZS5wcm90b2J1ZkIJVHlwZVByb3RvUAFaL2dvb2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL3Byb3RvYnVmL3B0eXBlO3B0eXBl+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSsM4CgcSBR4AugEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCQoCAwASAyIAIwoJCgIDARIDIwAuCggKAQgSAyUAOwoJCgIIJRIDJQA7CggKAQgSAyYAHwoJCgIIHxIDJgAfCggKAQgSAycALAoJCgIIARIDJwAsCggKAQgSAygAKgoJCgIICBIDKAAqCggKAQgSAykAIgoJCgIIChIDKQAiCggKAQgSAyoAIQoJCgIIJBIDKgAhCggKAQgSAysARgoJCgIICxIDKwBGCi0KAgQAEgQuADsBGiEgQSBwcm90b2NvbCBidWZmZXIgbWVzc2FnZSB0eXBlLgoKCgoDBAABEgMuCAwKMAoEBAACABIDMAISGiMgVGhlIGZ1bGx5IHF1YWxpZmllZCBtZXNzYWdlIG5hbWUuCgoMCgUEAAIABRIDMAIICgwKBQQAAgABEgMwCQ0KDAoFBAACAAMSAzAQEQoiCgQEAAIBEgMyAhwaFSBUaGUgbGlzdCBvZiBmaWVsZHMuCgoMCgUEAAIBBBIDMgIKCgwKBQQAAgEGEgMyCxAKDAoFBAACAQESAzIRFwoMCgUEAAIBAxIDMhobCk8KBAQAAgISAzQCHRpCIFRoZSBsaXN0IG9mIHR5cGVzIGFwcGVhcmluZyBpbiBgb25lb2ZgIGRlZmluaXRpb25zIGluIHRoaXMgdHlwZS4KCgwKBQQAAgIEEgM0AgoKDAoFBAACAgUSAzQLEQoMCgUEAAICARIDNBIYCgwKBQQAAgIDEgM0GxwKKwoEBAACAxIDNgIeGh4gVGhlIHByb3RvY29sIGJ1ZmZlciBvcHRpb25zLgoKDAoFBAACAwQSAzYCCgoMCgUEAAIDBhIDNgsRCgwKBQQAAgMBEgM2EhkKDAoFBAACAwMSAzYcHQoiCgQEAAIEEgM4AiMaFSBUaGUgc291cmNlIGNvbnRleHQuCgoMCgUEAAIEBhIDOAIPCgwKBQQAAgQBEgM4EB4KDAoFBAACBAMSAzghIgohCgQEAAIFEgM6AhQaFCBUaGUgc291cmNlIHN5bnRheC4KCgwKBQQAAgUGEgM6AggKDAoFBAACBQESAzoJDwoMCgUEAAIFAxIDOhITCjAKAgQBEgU+AIsBARojIEEgc2luZ2xlIGZpZWxkIG9mIGEgbWVzc2FnZSB0eXBlLgoKCgoDBAEBEgM+CA0KIgoEBAEEABIEQAJnAxoUIEJhc2ljIGZpZWxkIHR5cGVzLgoKDAoFBAEEAAESA0AHCwokCgYEAQQAAgASA0IEFRoVIEZpZWxkIHR5cGUgdW5rbm93bi4KCg4KBwQBBAACAAESA0IEEAoOCgcEAQQAAgACEgNCExQKIwoGBAEEAAIBEgNEBBQaFCBGaWVsZCB0eXBlIGRvdWJsZS4KCg4KBwQBBAACAQESA0QEDwoOCgcEAQQAAgECEgNEEhMKIgoGBAEEAAICEgNGBBMaEyBGaWVsZCB0eXBlIGZsb2F0LgoKDgoHBAEEAAICARIDRgQOCg4KBwQBBAACAgISA0YREgoiCgYEAQQAAgMSA0gEExoTIEZpZWxkIHR5cGUgaW50NjQuCgoOCgcEAQQAAgMBEgNIBA4KDgoHBAEEAAIDAhIDSBESCiMKBgQBBAACBBIDSgQUGhQgRmllbGQgdHlwZSB1aW50NjQuCgoOCgcEAQQAAgQBEgNKBA8KDgoHBAEEAAIEAhIDShITCiIKBgQBBAACBRIDTAQTGhMgRmllbGQgdHlwZSBpbnQzMi4KCg4KBwQBBAACBQESA0wEDgoOCgcEAQQAAgUCEgNMERIKJAoGBAEEAAIGEgNOBBUaFSBGaWVsZCB0eXBlIGZpeGVkNjQuCgoOCgcEAQQAAgYBEgNOBBAKDgoHBAEEAAIGAhIDThMUCiQKBgQBBAACBxIDUAQVGhUgRmllbGQgdHlwZSBmaXhlZDMyLgoKDgoHBAEEAAIHARIDUAQQCg4KBwQBBAACBwISA1ATFAohCgYEAQQAAggSA1IEEhoSIEZpZWxkIHR5cGUgYm9vbC4KCg4KBwQBBAACCAESA1IEDQoOCgcEAQQAAggCEgNSEBEKIwoGBAEEAAIJEgNUBBQaFCBGaWVsZCB0eXBlIHN0cmluZy4KCg4KBwQBBAACCQESA1QEDwoOCgcEAQQAAgkCEgNUEhMKRgoGBAEEAAIKEgNWBBQaNyBGaWVsZCB0eXBlIGdyb3VwLiBQcm90bzIgc3ludGF4IG9ubHksIGFuZCBkZXByZWNhdGVkLgoKDgoHBAEEAAIKARIDVgQOCg4KBwQBBAACCgISA1YREwokCgYEAQQAAgsSA1gEFhoVIEZpZWxkIHR5cGUgbWVzc2FnZS4KCg4KBwQBBAACCwESA1gEEAoOCgcEAQQAAgsCEgNYExUKIgoGBAEEAAIMEgNaBBQaEyBGaWVsZCB0eXBlIGJ5dGVzLgoKDgoHBAEEAAIMARIDWgQOCg4KBwQBBAACDAISA1oREwojCgYEAQQAAg0SA1wEFRoUIEZpZWxkIHR5cGUgdWludDMyLgoKDgoHBAEEAAINARIDXAQPCg4KBwQBBAACDQISA1wSFAohCgYEAQQAAg4SA14EExoSIEZpZWxkIHR5cGUgZW51bS4KCg4KBwQBBAACDgESA14EDQoOCgcEAQQAAg4CEgNeEBIKJQoGBAEEAAIPEgNgBBcaFiBGaWVsZCB0eXBlIHNmaXhlZDMyLgoKDgoHBAEEAAIPARIDYAQRCg4KBwQBBAACDwISA2AUFgolCgYEAQQAAhASA2IEFxoWIEZpZWxkIHR5cGUgc2ZpeGVkNjQuCgoOCgcEAQQAAhABEgNiBBEKDgoHBAEEAAIQAhIDYhQWCiMKBgQBBAACERIDZAQVGhQgRmllbGQgdHlwZSBzaW50MzIuCgoOCgcEAQQAAhEBEgNkBA8KDgoHBAEEAAIRAhIDZBIUCiMKBgQBBAACEhIDZgQVGhQgRmllbGQgdHlwZSBzaW50NjQuCgoOCgcEAQQAAhIBEgNmBA8KDgoHBAEEAAISAhIDZhIUCkMKBAQBBAESBGoCcwMaNSBXaGV0aGVyIGEgZmllbGQgaXMgb3B0aW9uYWwsIHJlcXVpcmVkLCBvciByZXBlYXRlZC4KCgwKBQQBBAEBEgNqBxIKNQoGBAEEAQIAEgNsBBwaJiBGb3IgZmllbGRzIHdpdGggdW5rbm93biBjYXJkaW5hbGl0eS4KCg4KBwQBBAECAAESA2wEFwoOCgcEAQQBAgACEgNsGhsKJQoGBAEEAQIBEgNuBB0aFiBGb3Igb3B0aW9uYWwgZmllbGRzLgoKDgoHBAEEAQIBARIDbgQYCg4KBwQBBAECAQISA24bHAo5CgYEAQQBAgISA3AEHRoqIEZvciByZXF1aXJlZCBmaWVsZHMuIFByb3RvMiBzeW50YXggb25seS4KCg4KBwQBBAECAgESA3AEGAoOCgcEAQQBAgICEgNwGxwKJQoGBAEEAQIDEgNyBB0aFiBGb3IgcmVwZWF0ZWQgZmllbGRzLgoKDgoHBAEEAQIDARIDcgQYCg4KBwQBBAECAwISA3IbHAoeCgQEAQIAEgN2AhAaESBUaGUgZmllbGQgdHlwZS4KCgwKBQQBAgAGEgN2AgYKDAoFBAECAAESA3YHCwoMCgUEAQIAAxIDdg4PCiUKBAQBAgESA3gCHhoYIFRoZSBmaWVsZCBjYXJkaW5hbGl0eS4KCgwKBQQBAgEGEgN4Ag0KDAoFBAECAQESA3gOGQoMCgUEAQIBAxIDeBwdCiAKBAQBAgISA3oCExoTIFRoZSBmaWVsZCBudW1iZXIuCgoMCgUEAQICBRIDegIHCgwKBQQBAgIBEgN6CA4KDAoFBAECAgMSA3oREgoeCgQEAQIDEgN8AhIaESBUaGUgZmllbGQgbmFtZS4KCgwKBQQBAgMFEgN8AggKDAoFBAECAwESA3wJDQoMCgUEAQIDAxIDfBARCpYBCgQEAQIEEgN/AhYaiAEgVGhlIGZpZWxkIHR5cGUgVVJMLCB3aXRob3V0IHRoZSBzY2hlbWUsIGZvciBtZXNzYWdlIG9yIGVudW1lcmF0aW9uCiB0eXBlcy4gRXhhbXBsZTogYCJ0eXBlLmdvb2dsZWFwaXMuY29tL2dvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiYC4KCgwKBQQBAgQFEgN/AggKDAoFBAECBAESA38JEQoMCgUEAQIEAxIDfxQVCqUBCgQEAQIFEgSCAQIYGpYBIFRoZSBpbmRleCBvZiB0aGUgZmllbGQgdHlwZSBpbiBgVHlwZS5vbmVvZnNgLCBmb3IgbWVzc2FnZSBvciBlbnVtZXJhdGlvbgogdHlwZXMuIFRoZSBmaXJzdCB0eXBlIGhhcyBpbmRleCAxOyB6ZXJvIG1lYW5zIHRoZSB0eXBlIGlzIG5vdCBpbiB0aGUgbGlzdC4KCg0KBQQBAgUFEgSCAQIHCg0KBQQBAgUBEgSCAQgTCg0KBQQBAgUDEgSCARYXCkYKBAQBAgYSBIQBAhIaOCBXaGV0aGVyIHRvIHVzZSBhbHRlcm5hdGl2ZSBwYWNrZWQgd2lyZSByZXByZXNlbnRhdGlvbi4KCg0KBQQBAgYFEgSEAQIGCg0KBQQBAgYBEgSEAQcNCg0KBQQBAgYDEgSEARARCiwKBAQBAgcSBIYBAh4aHiBUaGUgcHJvdG9jb2wgYnVmZmVyIG9wdGlvbnMuCgoNCgUEAQIHBBIEhgECCgoNCgUEAQIHBhIEhgELEQoNCgUEAQIHARIEhgESGQoNCgUEAQIHAxIEhgEcHQokCgQEAQIIEgSIAQIYGhYgVGhlIGZpZWxkIEpTT04gbmFtZS4KCg0KBQQBAggFEgSIAQIICg0KBQQBAggBEgSIAQkSCg0KBQQBAggDEgSIARUXClgKBAQBAgkSBIoBAhwaSiBUaGUgc3RyaW5nIHZhbHVlIG9mIHRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoaXMgZmllbGQuIFByb3RvMiBzeW50YXggb25seS4KCg0KBQQBAgkFEgSKAQIICg0KBQQBAgkBEgSKAQkWCg0KBQQBAgkDEgSKARkbCiUKAgQCEgaOAQCZAQEaFyBFbnVtIHR5cGUgZGVmaW5pdGlvbi4KCgsKAwQCARIEjgEIDAofCgQEAgIAEgSQAQISGhEgRW51bSB0eXBlIG5hbWUuCgoNCgUEAgIABRIEkAECCAoNCgUEAgIAARIEkAEJDQoNCgUEAgIAAxIEkAEQEQonCgQEAgIBEgSSAQIjGhkgRW51bSB2YWx1ZSBkZWZpbml0aW9ucy4KCg0KBQQCAgEEEgSSAQIKCg0KBQQCAgEGEgSSAQsUCg0KBQQCAgEBEgSSARUeCg0KBQQCAgEDEgSSASEiCigKBAQCAgISBJQBAh4aGiBQcm90b2NvbCBidWZmZXIgb3B0aW9ucy4KCg0KBQQCAgIEEgSUAQIKCg0KBQQCAgIGEgSUAQsRCg0KBQQCAgIBEgSUARIZCg0KBQQCAgIDEgSUARwdCiMKBAQCAgMSBJYBAiMaFSBUaGUgc291cmNlIGNvbnRleHQuCgoNCgUEAgIDBhIElgECDwoNCgUEAgIDARIElgEQHgoNCgUEAgIDAxIElgEhIgoiCgQEAgIEEgSYAQIUGhQgVGhlIHNvdXJjZSBzeW50YXguCgoNCgUEAgIEBhIEmAECCAoNCgUEAgIEARIEmAEJDwoNCgUEAgIEAxIEmAESEwomCgIEAxIGnAEAowEBGhggRW51bSB2YWx1ZSBkZWZpbml0aW9uLgoKCwoDBAMBEgScAQgRCiAKBAQDAgASBJ4BAhIaEiBFbnVtIHZhbHVlIG5hbWUuCgoNCgUEAwIABRIEngECCAoNCgUEAwIAARIEngEJDQoNCgUEAwIAAxIEngEQEQoiCgQEAwIBEgSgAQITGhQgRW51bSB2YWx1ZSBudW1iZXIuCgoNCgUEAwIBBRIEoAECBwoNCgUEAwIBARIEoAEIDgoNCgUEAwIBAxIEoAEREgooCgQEAwICEgSiAQIeGhogUHJvdG9jb2wgYnVmZmVyIG9wdGlvbnMuCgoNCgUEAwICBBIEogECCgoNCgUEAwICBhIEogELEQoNCgUEAwICARIEogESGQoNCgUEAwICAxIEogEcHQpnCgIEBBIGpwEAsgEBGlkgQSBwcm90b2NvbCBidWZmZXIgb3B0aW9uLCB3aGljaCBjYW4gYmUgYXR0YWNoZWQgdG8gYSBtZXNzYWdlLCBmaWVsZCwKIGVudW1lcmF0aW9uLCBldGMuCgoLCgMEBAESBKcBCA4K/AEKBAQEAgASBKwBAhIa7QEgVGhlIG9wdGlvbidzIG5hbWUuIEZvciBwcm90b2J1ZiBidWlsdC1pbiBvcHRpb25zIChvcHRpb25zIGRlZmluZWQgaW4KIGRlc2NyaXB0b3IucHJvdG8pLCB0aGlzIGlzIHRoZSBzaG9ydCBuYW1lLiBGb3IgZXhhbXBsZSwgYCJtYXBfZW50cnkiYC4KIEZvciBjdXN0b20gb3B0aW9ucywgaXQgc2hvdWxkIGJlIHRoZSBmdWxseS1xdWFsaWZpZWQgbmFtZS4gRm9yIGV4YW1wbGUsCiBgImdvb2dsZS5hcGkuaHR0cCJgLgoKDQoFBAQCAAUSBKwBAggKDQoFBAQCAAESBKwBCQ0KDQoFBAQCAAMSBKwBEBEKoAIKBAQEAgESBLEBAhAakQIgVGhlIG9wdGlvbidzIHZhbHVlIHBhY2tlZCBpbiBhbiBBbnkgbWVzc2FnZS4gSWYgdGhlIHZhbHVlIGlzIGEgcHJpbWl0aXZlLAogdGhlIGNvcnJlc3BvbmRpbmcgd3JhcHBlciB0eXBlIGRlZmluZWQgaW4gZ29vZ2xlL3Byb3RvYnVmL3dyYXBwZXJzLnByb3RvCiBzaG91bGQgYmUgdXNlZC4gSWYgdGhlIHZhbHVlIGlzIGFuIGVudW0sIGl0IHNob3VsZCBiZSBzdG9yZWQgYXMgYW4gaW50MzIKIHZhbHVlIHVzaW5nIHRoZSBnb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZSB0eXBlLgoKDQoFBAQCAQYSBLEBAgUKDQoFBAQCAQESBLEBBgsKDQoFBAQCAQMSBLEBDg8KSQoCBQASBrUBALoBARo7IFRoZSBzeW50YXggaW4gd2hpY2ggYSBwcm90b2NvbCBidWZmZXIgZWxlbWVudCBpcyBkZWZpbmVkLgoKCwoDBQABEgS1AQULCiAKBAUAAgASBLcBAhQaEiBTeW50YXggYHByb3RvMmAuCgoNCgUFAAIAARIEtwECDwoNCgUFAAIAAhIEtwESEwogCgQFAAIBEgS5AQIUGhIgU3ludGF4IGBwcm90bzNgLgoKDQoFBQACAQESBLkBAg8KDQoFBQACAQISBLkBEhNiBnByb3RvMwqaQwoZZ29vZ2xlL3Byb3RvYnVmL2FwaS5wcm90bxIPZ29vZ2xlLnByb3RvYnVmGiRnb29nbGUvcHJvdG9idWYvc291cmNlX2NvbnRleHQucHJvdG8aGmdvb2dsZS9wcm90b2J1Zi90eXBlLnByb3RvIsECCgNBcGkSEgoEbmFtZRgBIAEoCVIEbmFtZRIxCgdtZXRob2RzGAIgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk1ldGhvZFIHbWV0aG9kcxIxCgdvcHRpb25zGAMgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvblIHb3B0aW9ucxIYCgd2ZXJzaW9uGAQgASgJUgd2ZXJzaW9uEkUKDnNvdXJjZV9jb250ZXh0GAUgASgLMh4uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvbnRleHRSDXNvdXJjZUNvbnRleHQSLgoGbWl4aW5zGAYgAygLMhYuZ29vZ2xlLnByb3RvYnVmLk1peGluUgZtaXhpbnMSLwoGc3ludGF4GAcgASgOMhcuZ29vZ2xlLnByb3RvYnVmLlN5bnRheFIGc3ludGF4IrICCgZNZXRob2QSEgoEbmFtZRgBIAEoCVIEbmFtZRIoChByZXF1ZXN0X3R5cGVfdXJsGAIgASgJUg5yZXF1ZXN0VHlwZVVybBIrChFyZXF1ZXN0X3N0cmVhbWluZxgDIAEoCFIQcmVxdWVzdFN0cmVhbWluZxIqChFyZXNwb25zZV90eXBlX3VybBgEIAEoCVIPcmVzcG9uc2VUeXBlVXJsEi0KEnJlc3BvbnNlX3N0cmVhbWluZxgFIAEoCFIRcmVzcG9uc2VTdHJlYW1pbmcSMQoHb3B0aW9ucxgGIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5PcHRpb25SB29wdGlvbnMSLwoGc3ludGF4GAcgASgOMhcuZ29vZ2xlLnByb3RvYnVmLlN5bnRheFIGc3ludGF4Ii8KBU1peGluEhIKBG5hbWUYASABKAlSBG5hbWUSEgoEcm9vdBgCIAEoCVIEcm9vdEJ1ChNjb20uZ29vZ2xlLnByb3RvYnVmQghBcGlQcm90b1ABWitnb29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9wcm90b2J1Zi9hcGk7YXBpogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSoA8CgcSBR4A0QEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCQoCAwASAyIALgoJCgIDARIDIwAkCggKAQgSAyUAOwoJCgIIJRIDJQA7CggKAQgSAyYALAoJCgIIARIDJgAsCggKAQgSAycAKQoJCgIICBIDJwApCggKAQgSAygAIgoJCgIIChIDKAAiCggKAQgSAykAIQoJCgIIJBIDKQAhCggKAQgSAyoAQgoJCgIICxIDKgBCCqsECgIEABIENQBhARqeBCBBcGkgaXMgYSBsaWdodC13ZWlnaHQgZGVzY3JpcHRvciBmb3IgYW4gQVBJIEludGVyZmFjZS4KCiBJbnRlcmZhY2VzIGFyZSBhbHNvIGRlc2NyaWJlZCBhcyAicHJvdG9jb2wgYnVmZmVyIHNlcnZpY2VzIiBpbiBzb21lIGNvbnRleHRzLAogc3VjaCBhcyBieSB0aGUgInNlcnZpY2UiIGtleXdvcmQgaW4gYSAucHJvdG8gZmlsZSwgYnV0IHRoZXkgYXJlIGRpZmZlcmVudAogZnJvbSBBUEkgU2VydmljZXMsIHdoaWNoIHJlcHJlc2VudCBhIGNvbmNyZXRlIGltcGxlbWVudGF0aW9uIG9mIGFuIGludGVyZmFjZQogYXMgb3Bwb3NlZCB0byBzaW1wbHkgYSBkZXNjcmlwdGlvbiBvZiBtZXRob2RzIGFuZCBiaW5kaW5ncy4gVGhleSBhcmUgYWxzbwogc29tZXRpbWVzIHNpbXBseSByZWZlcnJlZCB0byBhcyAiQVBJcyIgaW4gb3RoZXIgY29udGV4dHMsIHN1Y2ggYXMgdGhlIG5hbWUgb2YKIHRoaXMgbWVzc2FnZSBpdHNlbGYuIFNlZSBodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vYXBpcy9kZXNpZ24vZ2xvc3NhcnkgZm9yCiBkZXRhaWxlZCB0ZXJtaW5vbG9neS4KCgoKAwQAARIDNQgLCnsKBAQAAgASAzkCEhpuIFRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGlzIGludGVyZmFjZSwgaW5jbHVkaW5nIHBhY2thZ2UgbmFtZQogZm9sbG93ZWQgYnkgdGhlIGludGVyZmFjZSdzIHNpbXBsZSBuYW1lLgoKDAoFBAACAAUSAzkCCAoMCgUEAAIAARIDOQkNCgwKBQQAAgADEgM5EBEKQwoEBAACARIDPAIeGjYgVGhlIG1ldGhvZHMgb2YgdGhpcyBpbnRlcmZhY2UsIGluIHVuc3BlY2lmaWVkIG9yZGVyLgoKDAoFBAACAQQSAzwCCgoMCgUEAAIBBhIDPAsRCgwKBQQAAgEBEgM8EhkKDAoFBAACAQMSAzwcHQo2CgQEAAICEgM/Ah4aKSBBbnkgbWV0YWRhdGEgYXR0YWNoZWQgdG8gdGhlIGludGVyZmFjZS4KCgwKBQQAAgIEEgM/AgoKDAoFBAACAgYSAz8LEQoMCgUEAAICARIDPxIZCgwKBQQAAgIDEgM/HB0KgggKBAQAAgMSA1YCFRr0ByBBIHZlcnNpb24gc3RyaW5nIGZvciB0aGlzIGludGVyZmFjZS4gSWYgc3BlY2lmaWVkLCBtdXN0IGhhdmUgdGhlIGZvcm0KIGBtYWpvci12ZXJzaW9uLm1pbm9yLXZlcnNpb25gLCBhcyBpbiBgMS4xMGAuIElmIHRoZSBtaW5vciB2ZXJzaW9uIGlzCiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byB6ZXJvLiBJZiB0aGUgZW50aXJlIHZlcnNpb24gZmllbGQgaXMgZW1wdHksIHRoZQogbWFqb3IgdmVyc2lvbiBpcyBkZXJpdmVkIGZyb20gdGhlIHBhY2thZ2UgbmFtZSwgYXMgb3V0bGluZWQgYmVsb3cuIElmIHRoZQogZmllbGQgaXMgbm90IGVtcHR5LCB0aGUgdmVyc2lvbiBpbiB0aGUgcGFja2FnZSBuYW1lIHdpbGwgYmUgdmVyaWZpZWQgdG8gYmUKIGNvbnNpc3RlbnQgd2l0aCB3aGF0IGlzIHByb3ZpZGVkIGhlcmUuCgogVGhlIHZlcnNpb25pbmcgc2NoZW1hIHVzZXMgW3NlbWFudGljCiB2ZXJzaW9uaW5nXShodHRwOi8vc2VtdmVyLm9yZykgd2hlcmUgdGhlIG1ham9yIHZlcnNpb24gbnVtYmVyCiBpbmRpY2F0ZXMgYSBicmVha2luZyBjaGFuZ2UgYW5kIHRoZSBtaW5vciB2ZXJzaW9uIGFuIGFkZGl0aXZlLAogbm9uLWJyZWFraW5nIGNoYW5nZS4gQm90aCB2ZXJzaW9uIG51bWJlcnMgYXJlIHNpZ25hbHMgdG8gdXNlcnMKIHdoYXQgdG8gZXhwZWN0IGZyb20gZGlmZmVyZW50IHZlcnNpb25zLCBhbmQgc2hvdWxkIGJlIGNhcmVmdWxseQogY2hvc2VuIGJhc2VkIG9uIHRoZSBwcm9kdWN0IHBsYW4uCgogVGhlIG1ham9yIHZlcnNpb24gaXMgYWxzbyByZWZsZWN0ZWQgaW4gdGhlIHBhY2thZ2UgbmFtZSBvZiB0aGUKIGludGVyZmFjZSwgd2hpY2ggbXVzdCBlbmQgaW4gYHY8bWFqb3ItdmVyc2lvbj5gLCBhcyBpbgogYGdvb2dsZS5mZWF0dXJlLnYxYC4gRm9yIG1ham9yIHZlcnNpb25zIDAgYW5kIDEsIHRoZSBzdWZmaXggY2FuCiBiZSBvbWl0dGVkLiBaZXJvIG1ham9yIHZlcnNpb25zIG11c3Qgb25seSBiZSB1c2VkIGZvcgogZXhwZXJpbWVudGFsLCBub24tR0EgaW50ZXJmYWNlcy4KCgoKDAoFBAACAwUSA1YCCAoMCgUEAAIDARIDVgkQCgwKBQQAAgMDEgNWExQKWwoEBAACBBIDWgIjGk4gU291cmNlIGNvbnRleHQgZm9yIHRoZSBwcm90b2NvbCBidWZmZXIgc2VydmljZSByZXByZXNlbnRlZCBieSB0aGlzCiBtZXNzYWdlLgoKDAoFBAACBAYSA1oCDwoMCgUEAAIEARIDWhAeCgwKBQQAAgQDEgNaISIKMgoEBAACBRIDXQIcGiUgSW5jbHVkZWQgaW50ZXJmYWNlcy4gU2VlIFtNaXhpbl1bXS4KCgwKBQQAAgUEEgNdAgoKDAoFBAACBQYSA10LEAoMCgUEAAIFARIDXREXCgwKBQQAAgUDEgNdGhsKMAoEBAACBhIDYAIUGiMgVGhlIHNvdXJjZSBzeW50YXggb2YgdGhlIHNlcnZpY2UuCgoMCgUEAAIGBhIDYAIICgwKBQQAAgYBEgNgCQ8KDAoFBAACBgMSA2ASEwo9CgIEARIEZAB6ARoxIE1ldGhvZCByZXByZXNlbnRzIGEgbWV0aG9kIG9mIGFuIEFQSSBpbnRlcmZhY2UuCgoKCgMEAQESA2QIDgouCgQEAQIAEgNnAhIaISBUaGUgc2ltcGxlIG5hbWUgb2YgdGhpcyBtZXRob2QuCgoMCgUEAQIABRIDZwIICgwKBQQBAgABEgNnCQ0KDAoFBAECAAMSA2cQEQovCgQEAQIBEgNqAh4aIiBBIFVSTCBvZiB0aGUgaW5wdXQgbWVzc2FnZSB0eXBlLgoKDAoFBAECAQUSA2oCCAoMCgUEAQIBARIDagkZCgwKBQQBAgEDEgNqHB0KMAoEBAECAhIDbQIdGiMgSWYgdHJ1ZSwgdGhlIHJlcXVlc3QgaXMgc3RyZWFtZWQuCgoMCgUEAQICBRIDbQIGCgwKBQQBAgIBEgNtBxgKDAoFBAECAgMSA20bHAoyCgQEAQIDEgNwAh8aJSBUaGUgVVJMIG9mIHRoZSBvdXRwdXQgbWVzc2FnZSB0eXBlLgoKDAoFBAECAwUSA3ACCAoMCgUEAQIDARIDcAkaCgwKBQQBAgMDEgNwHR4KMQoEBAECBBIDcwIeGiQgSWYgdHJ1ZSwgdGhlIHJlc3BvbnNlIGlzIHN0cmVhbWVkLgoKDAoFBAECBAUSA3MCBgoMCgUEAQIEARIDcwcZCgwKBQQBAgQDEgNzHB0KMwoEBAECBRIDdgIeGiYgQW55IG1ldGFkYXRhIGF0dGFjaGVkIHRvIHRoZSBtZXRob2QuCgoMCgUEAQIFBBIDdgIKCgwKBQQBAgUGEgN2CxEKDAoFBAECBQESA3YSGQoMCgUEAQIFAxIDdhwdCjAKBAQBAgYSA3kCFBojIFRoZSBzb3VyY2Ugc3ludGF4IG9mIHRoaXMgbWV0aG9kLgoKDAoFBAECBgYSA3kCCAoMCgUEAQIGARIDeQkPCgwKBQQBAgYDEgN5EhMKyRMKAgQCEgbKAQDRAQEauhMgRGVjbGFyZXMgYW4gQVBJIEludGVyZmFjZSB0byBiZSBpbmNsdWRlZCBpbiB0aGlzIGludGVyZmFjZS4gVGhlIGluY2x1ZGluZwogaW50ZXJmYWNlIG11c3QgcmVkZWNsYXJlIGFsbCB0aGUgbWV0aG9kcyBmcm9tIHRoZSBpbmNsdWRlZCBpbnRlcmZhY2UsIGJ1dAogZG9jdW1lbnRhdGlvbiBhbmQgb3B0aW9ucyBhcmUgaW5oZXJpdGVkIGFzIGZvbGxvd3M6CgogLSBJZiBhZnRlciBjb21tZW50IGFuZCB3aGl0ZXNwYWNlIHN0cmlwcGluZywgdGhlIGRvY3VtZW50YXRpb24KICAgc3RyaW5nIG9mIHRoZSByZWRlY2xhcmVkIG1ldGhvZCBpcyBlbXB0eSwgaXQgd2lsbCBiZSBpbmhlcml0ZWQKICAgZnJvbSB0aGUgb3JpZ2luYWwgbWV0aG9kLgoKIC0gRWFjaCBhbm5vdGF0aW9uIGJlbG9uZ2luZyB0byB0aGUgc2VydmljZSBjb25maWcgKGh0dHAsCiAgIHZpc2liaWxpdHkpIHdoaWNoIGlzIG5vdCBzZXQgaW4gdGhlIHJlZGVjbGFyZWQgbWV0aG9kIHdpbGwgYmUKICAgaW5oZXJpdGVkLgoKIC0gSWYgYW4gaHR0cCBhbm5vdGF0aW9uIGlzIGluaGVyaXRlZCwgdGhlIHBhdGggcGF0dGVybiB3aWxsIGJlCiAgIG1vZGlmaWVkIGFzIGZvbGxvd3MuIEFueSB2ZXJzaW9uIHByZWZpeCB3aWxsIGJlIHJlcGxhY2VkIGJ5IHRoZQogICB2ZXJzaW9uIG9mIHRoZSBpbmNsdWRpbmcgaW50ZXJmYWNlIHBsdXMgdGhlIFtyb290XVtdIHBhdGggaWYKICAgc3BlY2lmaWVkLgoKIEV4YW1wbGUgb2YgYSBzaW1wbGUgbWl4aW46CgogICAgIHBhY2thZ2UgZ29vZ2xlLmFjbC52MTsKICAgICBzZXJ2aWNlIEFjY2Vzc0NvbnRyb2wgewogICAgICAgLy8gR2V0IHRoZSB1bmRlcmx5aW5nIEFDTCBvYmplY3QuCiAgICAgICBycGMgR2V0QWNsKEdldEFjbFJlcXVlc3QpIHJldHVybnMgKEFjbCkgewogICAgICAgICBvcHRpb24gKGdvb2dsZS5hcGkuaHR0cCkuZ2V0ID0gIi92MS97cmVzb3VyY2U9Kip9OmdldEFjbCI7CiAgICAgICB9CiAgICAgfQoKICAgICBwYWNrYWdlIGdvb2dsZS5zdG9yYWdlLnYyOwogICAgIHNlcnZpY2UgU3RvcmFnZSB7CiAgICAgICBycGMgR2V0QWNsKEdldEFjbFJlcXVlc3QpIHJldHVybnMgKEFjbCk7CgogICAgICAgLy8gR2V0IGEgZGF0YSByZWNvcmQuCiAgICAgICBycGMgR2V0RGF0YShHZXREYXRhUmVxdWVzdCkgcmV0dXJucyAoRGF0YSkgewogICAgICAgICBvcHRpb24gKGdvb2dsZS5hcGkuaHR0cCkuZ2V0ID0gIi92Mi97cmVzb3VyY2U9Kip9IjsKICAgICAgIH0KICAgICB9CgogRXhhbXBsZSBvZiBhIG1peGluIGNvbmZpZ3VyYXRpb246CgogICAgIGFwaXM6CiAgICAgLSBuYW1lOiBnb29nbGUuc3RvcmFnZS52Mi5TdG9yYWdlCiAgICAgICBtaXhpbnM6CiAgICAgICAtIG5hbWU6IGdvb2dsZS5hY2wudjEuQWNjZXNzQ29udHJvbAoKIFRoZSBtaXhpbiBjb25zdHJ1Y3QgaW1wbGllcyB0aGF0IGFsbCBtZXRob2RzIGluIGBBY2Nlc3NDb250cm9sYCBhcmUKIGFsc28gZGVjbGFyZWQgd2l0aCBzYW1lIG5hbWUgYW5kIHJlcXVlc3QvcmVzcG9uc2UgdHlwZXMgaW4KIGBTdG9yYWdlYC4gQSBkb2N1bWVudGF0aW9uIGdlbmVyYXRvciBvciBhbm5vdGF0aW9uIHByb2Nlc3NvciB3aWxsCiBzZWUgdGhlIGVmZmVjdGl2ZSBgU3RvcmFnZS5HZXRBY2xgIG1ldGhvZCBhZnRlciBpbmhlcnRpbmcKIGRvY3VtZW50YXRpb24gYW5kIGFubm90YXRpb25zIGFzIGZvbGxvd3M6CgogICAgIHNlcnZpY2UgU3RvcmFnZSB7CiAgICAgICAvLyBHZXQgdGhlIHVuZGVybHlpbmcgQUNMIG9iamVjdC4KICAgICAgIHJwYyBHZXRBY2woR2V0QWNsUmVxdWVzdCkgcmV0dXJucyAoQWNsKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKS5nZXQgPSAiL3YyL3tyZXNvdXJjZT0qKn06Z2V0QWNsIjsKICAgICAgIH0KICAgICAgIC4uLgogICAgIH0KCiBOb3RlIGhvdyB0aGUgdmVyc2lvbiBpbiB0aGUgcGF0aCBwYXR0ZXJuIGNoYW5nZWQgZnJvbSBgdjFgIHRvIGB2MmAuCgogSWYgdGhlIGByb290YCBmaWVsZCBpbiB0aGUgbWl4aW4gaXMgc3BlY2lmaWVkLCBpdCBzaG91bGQgYmUgYQogcmVsYXRpdmUgcGF0aCB1bmRlciB3aGljaCBpbmhlcml0ZWQgSFRUUCBwYXRocyBhcmUgcGxhY2VkLiBFeGFtcGxlOgoKICAgICBhcGlzOgogICAgIC0gbmFtZTogZ29vZ2xlLnN0b3JhZ2UudjIuU3RvcmFnZQogICAgICAgbWl4aW5zOgogICAgICAgLSBuYW1lOiBnb29nbGUuYWNsLnYxLkFjY2Vzc0NvbnRyb2wKICAgICAgICAgcm9vdDogYWNscwoKIFRoaXMgaW1wbGllcyB0aGUgZm9sbG93aW5nIGluaGVyaXRlZCBIVFRQIGFubm90YXRpb246CgogICAgIHNlcnZpY2UgU3RvcmFnZSB7CiAgICAgICAvLyBHZXQgdGhlIHVuZGVybHlpbmcgQUNMIG9iamVjdC4KICAgICAgIHJwYyBHZXRBY2woR2V0QWNsUmVxdWVzdCkgcmV0dXJucyAoQWNsKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKS5nZXQgPSAiL3YyL2FjbHMve3Jlc291cmNlPSoqfTpnZXRBY2wiOwogICAgICAgfQogICAgICAgLi4uCiAgICAgfQoKCwoDBAIBEgTKAQgNCkwKBAQCAgASBMwBAhIaPiBUaGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIGludGVyZmFjZSB3aGljaCBpcyBpbmNsdWRlZC4KCg0KBQQCAgAFEgTMAQIICg0KBQQCAgABEgTMAQkNCg0KBQQCAgADEgTMARARClsKBAQCAgESBNABAhIaTSBJZiBub24tZW1wdHkgc3BlY2lmaWVzIGEgcGF0aCB1bmRlciB3aGljaCBpbmhlcml0ZWQgSFRUUCBwYXRocwogYXJlIHJvb3RlZC4KCg0KBQQCAgEFEgTQAQIICg0KBQQCAgEBEgTQAQkNCg0KBQQCAgEDEgTQARARYgZwcm90bzMK0CUKHmdvb2dsZS9wcm90b2J1Zi9kdXJhdGlvbi5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIjoKCER1cmF0aW9uEhgKB3NlY29uZHMYASABKANSB3NlY29uZHMSFAoFbmFub3MYAiABKAVSBW5hbm9zQnwKE2NvbS5nb29nbGUucHJvdG9idWZCDUR1cmF0aW9uUHJvdG9QAVoqZ2l0aHViLmNvbS9nb2xhbmcvcHJvdG9idWYvcHR5cGVzL2R1cmF0aW9u+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzStojCgYSBB4AcwEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiADsKCQoCCCUSAyIAOwoICgEIEgMjAB8KCQoCCB8SAyMAHwoICgEIEgMkAEEKCQoCCAsSAyQAQQoICgEIEgMlACwKCQoCCAESAyUALAoICgEIEgMmAC4KCQoCCAgSAyYALgoICgEIEgMnACIKCQoCCAoSAycAIgoICgEIEgMoACEKCQoCCCQSAygAIQqeEAoCBAASBGYAcwEakRAgQSBEdXJhdGlvbiByZXByZXNlbnRzIGEgc2lnbmVkLCBmaXhlZC1sZW5ndGggc3BhbiBvZiB0aW1lIHJlcHJlc2VudGVkCiBhcyBhIGNvdW50IG9mIHNlY29uZHMgYW5kIGZyYWN0aW9ucyBvZiBzZWNvbmRzIGF0IG5hbm9zZWNvbmQKIHJlc29sdXRpb24uIEl0IGlzIGluZGVwZW5kZW50IG9mIGFueSBjYWxlbmRhciBhbmQgY29uY2VwdHMgbGlrZSAiZGF5Igogb3IgIm1vbnRoIi4gSXQgaXMgcmVsYXRlZCB0byBUaW1lc3RhbXAgaW4gdGhhdCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuCiB0d28gVGltZXN0YW1wIHZhbHVlcyBpcyBhIER1cmF0aW9uIGFuZCBpdCBjYW4gYmUgYWRkZWQgb3Igc3VidHJhY3RlZAogZnJvbSBhIFRpbWVzdGFtcC4gUmFuZ2UgaXMgYXBwcm94aW1hdGVseSArLTEwLDAwMCB5ZWFycy4KCiAjIEV4YW1wbGVzCgogRXhhbXBsZSAxOiBDb21wdXRlIER1cmF0aW9uIGZyb20gdHdvIFRpbWVzdGFtcHMgaW4gcHNldWRvIGNvZGUuCgogICAgIFRpbWVzdGFtcCBzdGFydCA9IC4uLjsKICAgICBUaW1lc3RhbXAgZW5kID0gLi4uOwogICAgIER1cmF0aW9uIGR1cmF0aW9uID0gLi4uOwoKICAgICBkdXJhdGlvbi5zZWNvbmRzID0gZW5kLnNlY29uZHMgLSBzdGFydC5zZWNvbmRzOwogICAgIGR1cmF0aW9uLm5hbm9zID0gZW5kLm5hbm9zIC0gc3RhcnQubmFub3M7CgogICAgIGlmIChkdXJhdGlvbi5zZWNvbmRzIDwgMCAmJiBkdXJhdGlvbi5uYW5vcyA+IDApIHsKICAgICAgIGR1cmF0aW9uLnNlY29uZHMgKz0gMTsKICAgICAgIGR1cmF0aW9uLm5hbm9zIC09IDEwMDAwMDAwMDA7CiAgICAgfSBlbHNlIGlmIChkdXJhdGlvbi5zZWNvbmRzID4gMCAmJiBkdXJhdGlvbi5uYW5vcyA8IDApIHsKICAgICAgIGR1cmF0aW9uLnNlY29uZHMgLT0gMTsKICAgICAgIGR1cmF0aW9uLm5hbm9zICs9IDEwMDAwMDAwMDA7CiAgICAgfQoKIEV4YW1wbGUgMjogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBUaW1lc3RhbXAgKyBEdXJhdGlvbiBpbiBwc2V1ZG8gY29kZS4KCiAgICAgVGltZXN0YW1wIHN0YXJ0ID0gLi4uOwogICAgIER1cmF0aW9uIGR1cmF0aW9uID0gLi4uOwogICAgIFRpbWVzdGFtcCBlbmQgPSAuLi47CgogICAgIGVuZC5zZWNvbmRzID0gc3RhcnQuc2Vjb25kcyArIGR1cmF0aW9uLnNlY29uZHM7CiAgICAgZW5kLm5hbm9zID0gc3RhcnQubmFub3MgKyBkdXJhdGlvbi5uYW5vczsKCiAgICAgaWYgKGVuZC5uYW5vcyA8IDApIHsKICAgICAgIGVuZC5zZWNvbmRzIC09IDE7CiAgICAgICBlbmQubmFub3MgKz0gMTAwMDAwMDAwMDsKICAgICB9IGVsc2UgaWYgKGVuZC5uYW5vcyA+PSAxMDAwMDAwMDAwKSB7CiAgICAgICBlbmQuc2Vjb25kcyArPSAxOwogICAgICAgZW5kLm5hbm9zIC09IDEwMDAwMDAwMDA7CiAgICAgfQoKIEV4YW1wbGUgMzogQ29tcHV0ZSBEdXJhdGlvbiBmcm9tIGRhdGV0aW1lLnRpbWVkZWx0YSBpbiBQeXRob24uCgogICAgIHRkID0gZGF0ZXRpbWUudGltZWRlbHRhKGRheXM9MywgbWludXRlcz0xMCkKICAgICBkdXJhdGlvbiA9IER1cmF0aW9uKCkKICAgICBkdXJhdGlvbi5Gcm9tVGltZWRlbHRhKHRkKQoKICMgSlNPTiBNYXBwaW5nCgogSW4gSlNPTiBmb3JtYXQsIHRoZSBEdXJhdGlvbiB0eXBlIGlzIGVuY29kZWQgYXMgYSBzdHJpbmcgcmF0aGVyIHRoYW4gYW4KIG9iamVjdCwgd2hlcmUgdGhlIHN0cmluZyBlbmRzIGluIHRoZSBzdWZmaXggInMiIChpbmRpY2F0aW5nIHNlY29uZHMpIGFuZAogaXMgcHJlY2VkZWQgYnkgdGhlIG51bWJlciBvZiBzZWNvbmRzLCB3aXRoIG5hbm9zZWNvbmRzIGV4cHJlc3NlZCBhcwogZnJhY3Rpb25hbCBzZWNvbmRzLiBGb3IgZXhhbXBsZSwgMyBzZWNvbmRzIHdpdGggMCBuYW5vc2Vjb25kcyBzaG91bGQgYmUKIGVuY29kZWQgaW4gSlNPTiBmb3JtYXQgYXMgIjNzIiwgd2hpbGUgMyBzZWNvbmRzIGFuZCAxIG5hbm9zZWNvbmQgc2hvdWxkCiBiZSBleHByZXNzZWQgaW4gSlNPTiBmb3JtYXQgYXMgIjMuMDAwMDAwMDAxcyIsIGFuZCAzIHNlY29uZHMgYW5kIDEKIG1pY3Jvc2Vjb25kIHNob3VsZCBiZSBleHByZXNzZWQgaW4gSlNPTiBmb3JtYXQgYXMgIjMuMDAwMDAxcyIuCgoKCgoKAwQAARIDZggQCtwBCgQEAAIAEgNqAhQazgEgU2lnbmVkIHNlY29uZHMgb2YgdGhlIHNwYW4gb2YgdGltZS4gTXVzdCBiZSBmcm9tIC0zMTUsNTc2LDAwMCwwMDAKIHRvICszMTUsNTc2LDAwMCwwMDAgaW5jbHVzaXZlLiBOb3RlOiB0aGVzZSBib3VuZHMgYXJlIGNvbXB1dGVkIGZyb206CiA2MCBzZWMvbWluICogNjAgbWluL2hyICogMjQgaHIvZGF5ICogMzY1LjI1IGRheXMveWVhciAqIDEwMDAwIHllYXJzCgoMCgUEAAIABRIDagIHCgwKBQQAAgABEgNqCA8KDAoFBAACAAMSA2oSEwqDAwoEBAACARIDcgISGvUCIFNpZ25lZCBmcmFjdGlvbnMgb2YgYSBzZWNvbmQgYXQgbmFub3NlY29uZCByZXNvbHV0aW9uIG9mIHRoZSBzcGFuCiBvZiB0aW1lLiBEdXJhdGlvbnMgbGVzcyB0aGFuIG9uZSBzZWNvbmQgYXJlIHJlcHJlc2VudGVkIHdpdGggYSAwCiBgc2Vjb25kc2AgZmllbGQgYW5kIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgYG5hbm9zYCBmaWVsZC4gRm9yIGR1cmF0aW9ucwogb2Ygb25lIHNlY29uZCBvciBtb3JlLCBhIG5vbi16ZXJvIHZhbHVlIGZvciB0aGUgYG5hbm9zYCBmaWVsZCBtdXN0IGJlCiBvZiB0aGUgc2FtZSBzaWduIGFzIHRoZSBgc2Vjb25kc2AgZmllbGQuIE11c3QgYmUgZnJvbSAtOTk5LDk5OSw5OTkKIHRvICs5OTksOTk5LDk5OSBpbmNsdXNpdmUuCgoMCgUEAAIBBRIDcgIHCgwKBQQAAgEBEgNyCA0KDAoFBAACAQMSA3IQEWIGcHJvdG8zCrgSChtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiIHCgVFbXB0eUJ2ChNjb20uZ29vZ2xlLnByb3RvYnVmQgpFbXB0eVByb3RvUAFaJ2dpdGh1Yi5jb20vZ29sYW5nL3Byb3RvYnVmL3B0eXBlcy9lbXB0efgBAaICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0r+EAoGEgQeADMQCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgA7CgkKAgglEgMiADsKCAoBCBIDIwA+CgkKAggLEgMjAD4KCAoBCBIDJAAsCgkKAggBEgMkACwKCAoBCBIDJQArCgkKAggIEgMlACsKCAoBCBIDJgAiCgkKAggKEgMmACIKCAoBCBIDJwAhCgkKAggkEgMnACEKCAoBCBIDKAAfCgkKAggfEgMoAB8K+wIKAgQAEgMzABAa7wIgQSBnZW5lcmljIGVtcHR5IG1lc3NhZ2UgdGhhdCB5b3UgY2FuIHJlLXVzZSB0byBhdm9pZCBkZWZpbmluZyBkdXBsaWNhdGVkCiBlbXB0eSBtZXNzYWdlcyBpbiB5b3VyIEFQSXMuIEEgdHlwaWNhbCBleGFtcGxlIGlzIHRvIHVzZSBpdCBhcyB0aGUgcmVxdWVzdAogb3IgdGhlIHJlc3BvbnNlIHR5cGUgb2YgYW4gQVBJIG1ldGhvZC4gRm9yIGluc3RhbmNlOgoKICAgICBzZXJ2aWNlIEZvbyB7CiAgICAgICBycGMgQmFyKGdvb2dsZS5wcm90b2J1Zi5FbXB0eSkgcmV0dXJucyAoZ29vZ2xlLnByb3RvYnVmLkVtcHR5KTsKICAgICB9CgogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIGBFbXB0eWAgaXMgZW1wdHkgSlNPTiBvYmplY3QgYHt9YC4KCgoKAwQAARIDMwgNYgZwcm90bzMKnz0KIGdvb2dsZS9wcm90b2J1Zi9maWVsZF9tYXNrLnByb3RvEg9nb29nbGUucHJvdG9idWYiIQoJRmllbGRNYXNrEhQKBXBhdGhzGAEgAygJUgVwYXRoc0KMAQoTY29tLmdvb2dsZS5wcm90b2J1ZkIORmllbGRNYXNrUHJvdG9QAVo5Z29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vcHJvdG9idWYvZmllbGRfbWFzaztmaWVsZF9tYXNr+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSq87CgcSBR4A9AEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgA7CgkKAgglEgMiADsKCAoBCBIDIwAsCgkKAggBEgMjACwKCAoBCBIDJAAvCgkKAggIEgMkAC8KCAoBCBIDJQAiCgkKAggKEgMlACIKCAoBCBIDJgAhCgkKAggkEgMmACEKCAoBCBIDJwBQCgkKAggLEgMnAFAKCAoBCBIDKAAfCgkKAggfEgMoAB8KwCwKAgQAEgbxAQD0AQEasSwgYEZpZWxkTWFza2AgcmVwcmVzZW50cyBhIHNldCBvZiBzeW1ib2xpYyBmaWVsZCBwYXRocywgZm9yIGV4YW1wbGU6CgogICAgIHBhdGhzOiAiZi5hIgogICAgIHBhdGhzOiAiZi5iLmQiCgogSGVyZSBgZmAgcmVwcmVzZW50cyBhIGZpZWxkIGluIHNvbWUgcm9vdCBtZXNzYWdlLCBgYWAgYW5kIGBiYAogZmllbGRzIGluIHRoZSBtZXNzYWdlIGZvdW5kIGluIGBmYCwgYW5kIGBkYCBhIGZpZWxkIGZvdW5kIGluIHRoZQogbWVzc2FnZSBpbiBgZi5iYC4KCiBGaWVsZCBtYXNrcyBhcmUgdXNlZCB0byBzcGVjaWZ5IGEgc3Vic2V0IG9mIGZpZWxkcyB0aGF0IHNob3VsZCBiZQogcmV0dXJuZWQgYnkgYSBnZXQgb3BlcmF0aW9uIG9yIG1vZGlmaWVkIGJ5IGFuIHVwZGF0ZSBvcGVyYXRpb24uCiBGaWVsZCBtYXNrcyBhbHNvIGhhdmUgYSBjdXN0b20gSlNPTiBlbmNvZGluZyAoc2VlIGJlbG93KS4KCiAjIEZpZWxkIE1hc2tzIGluIFByb2plY3Rpb25zCgogV2hlbiB1c2VkIGluIHRoZSBjb250ZXh0IG9mIGEgcHJvamVjdGlvbiwgYSByZXNwb25zZSBtZXNzYWdlIG9yCiBzdWItbWVzc2FnZSBpcyBmaWx0ZXJlZCBieSB0aGUgQVBJIHRvIG9ubHkgY29udGFpbiB0aG9zZSBmaWVsZHMgYXMKIHNwZWNpZmllZCBpbiB0aGUgbWFzay4gRm9yIGV4YW1wbGUsIGlmIHRoZSBtYXNrIGluIHRoZSBwcmV2aW91cwogZXhhbXBsZSBpcyBhcHBsaWVkIHRvIGEgcmVzcG9uc2UgbWVzc2FnZSBhcyBmb2xsb3dzOgoKICAgICBmIHsKICAgICAgIGEgOiAyMgogICAgICAgYiB7CiAgICAgICAgIGQgOiAxCiAgICAgICAgIHggOiAyCiAgICAgICB9CiAgICAgICB5IDogMTMKICAgICB9CiAgICAgejogOAoKIFRoZSByZXN1bHQgd2lsbCBub3QgY29udGFpbiBzcGVjaWZpYyB2YWx1ZXMgZm9yIGZpZWxkcyB4LHkgYW5kIHoKICh0aGVpciB2YWx1ZSB3aWxsIGJlIHNldCB0byB0aGUgZGVmYXVsdCwgYW5kIG9taXR0ZWQgaW4gcHJvdG8gdGV4dAogb3V0cHV0KToKCgogICAgIGYgewogICAgICAgYSA6IDIyCiAgICAgICBiIHsKICAgICAgICAgZCA6IDEKICAgICAgIH0KICAgICB9CgogQSByZXBlYXRlZCBmaWVsZCBpcyBub3QgYWxsb3dlZCBleGNlcHQgYXQgdGhlIGxhc3QgcG9zaXRpb24gb2YgYQogcGF0aHMgc3RyaW5nLgoKIElmIGEgRmllbGRNYXNrIG9iamVjdCBpcyBub3QgcHJlc2VudCBpbiBhIGdldCBvcGVyYXRpb24sIHRoZQogb3BlcmF0aW9uIGFwcGxpZXMgdG8gYWxsIGZpZWxkcyAoYXMgaWYgYSBGaWVsZE1hc2sgb2YgYWxsIGZpZWxkcwogaGFkIGJlZW4gc3BlY2lmaWVkKS4KCiBOb3RlIHRoYXQgYSBmaWVsZCBtYXNrIGRvZXMgbm90IG5lY2Vzc2FyaWx5IGFwcGx5IHRvIHRoZQogdG9wLWxldmVsIHJlc3BvbnNlIG1lc3NhZ2UuIEluIGNhc2Ugb2YgYSBSRVNUIGdldCBvcGVyYXRpb24sIHRoZQogZmllbGQgbWFzayBhcHBsaWVzIGRpcmVjdGx5IHRvIHRoZSByZXNwb25zZSwgYnV0IGluIGNhc2Ugb2YgYSBSRVNUCiBsaXN0IG9wZXJhdGlvbiwgdGhlIG1hc2sgaW5zdGVhZCBhcHBsaWVzIHRvIGVhY2ggaW5kaXZpZHVhbCBtZXNzYWdlCiBpbiB0aGUgcmV0dXJuZWQgcmVzb3VyY2UgbGlzdC4gSW4gY2FzZSBvZiBhIFJFU1QgY3VzdG9tIG1ldGhvZCwKIG90aGVyIGRlZmluaXRpb25zIG1heSBiZSB1c2VkLiBXaGVyZSB0aGUgbWFzayBhcHBsaWVzIHdpbGwgYmUKIGNsZWFybHkgZG9jdW1lbnRlZCB0b2dldGhlciB3aXRoIGl0cyBkZWNsYXJhdGlvbiBpbiB0aGUgQVBJLiAgSW4KIGFueSBjYXNlLCB0aGUgZWZmZWN0IG9uIHRoZSByZXR1cm5lZCByZXNvdXJjZS9yZXNvdXJjZXMgaXMgcmVxdWlyZWQKIGJlaGF2aW9yIGZvciBBUElzLgoKICMgRmllbGQgTWFza3MgaW4gVXBkYXRlIE9wZXJhdGlvbnMKCiBBIGZpZWxkIG1hc2sgaW4gdXBkYXRlIG9wZXJhdGlvbnMgc3BlY2lmaWVzIHdoaWNoIGZpZWxkcyBvZiB0aGUKIHRhcmdldGVkIHJlc291cmNlIGFyZSBnb2luZyB0byBiZSB1cGRhdGVkLiBUaGUgQVBJIGlzIHJlcXVpcmVkCiB0byBvbmx5IGNoYW5nZSB0aGUgdmFsdWVzIG9mIHRoZSBmaWVsZHMgYXMgc3BlY2lmaWVkIGluIHRoZSBtYXNrCiBhbmQgbGVhdmUgdGhlIG90aGVycyB1bnRvdWNoZWQuIElmIGEgcmVzb3VyY2UgaXMgcGFzc2VkIGluIHRvCiBkZXNjcmliZSB0aGUgdXBkYXRlZCB2YWx1ZXMsIHRoZSBBUEkgaWdub3JlcyB0aGUgdmFsdWVzIG9mIGFsbAogZmllbGRzIG5vdCBjb3ZlcmVkIGJ5IHRoZSBtYXNrLgoKIElmIGEgcmVwZWF0ZWQgZmllbGQgaXMgc3BlY2lmaWVkIGZvciBhbiB1cGRhdGUgb3BlcmF0aW9uLCBuZXcgdmFsdWVzIHdpbGwKIGJlIGFwcGVuZGVkIHRvIHRoZSBleGlzdGluZyByZXBlYXRlZCBmaWVsZCBpbiB0aGUgdGFyZ2V0IHJlc291cmNlLiBOb3RlIHRoYXQKIGEgcmVwZWF0ZWQgZmllbGQgaXMgb25seSBhbGxvd2VkIGluIHRoZSBsYXN0IHBvc2l0aW9uIG9mIGEgYHBhdGhzYCBzdHJpbmcuCgogSWYgYSBzdWItbWVzc2FnZSBpcyBzcGVjaWZpZWQgaW4gdGhlIGxhc3QgcG9zaXRpb24gb2YgdGhlIGZpZWxkIG1hc2sgZm9yIGFuCiB1cGRhdGUgb3BlcmF0aW9uLCB0aGVuIG5ldyB2YWx1ZSB3aWxsIGJlIG1lcmdlZCBpbnRvIHRoZSBleGlzdGluZyBzdWItbWVzc2FnZQogaW4gdGhlIHRhcmdldCByZXNvdXJjZS4KCiBGb3IgZXhhbXBsZSwgZ2l2ZW4gdGhlIHRhcmdldCBtZXNzYWdlOgoKICAgICBmIHsKICAgICAgIGIgewogICAgICAgICBkOiAxCiAgICAgICAgIHg6IDIKICAgICAgIH0KICAgICAgIGM6IFsxXQogICAgIH0KCiBBbmQgYW4gdXBkYXRlIG1lc3NhZ2U6CgogICAgIGYgewogICAgICAgYiB7CiAgICAgICAgIGQ6IDEwCiAgICAgICB9CiAgICAgICBjOiBbMl0KICAgICB9CgogdGhlbiBpZiB0aGUgZmllbGQgbWFzayBpczoKCiAgcGF0aHM6IFsiZi5iIiwgImYuYyJdCgogdGhlbiB0aGUgcmVzdWx0IHdpbGwgYmU6CgogICAgIGYgewogICAgICAgYiB7CiAgICAgICAgIGQ6IDEwCiAgICAgICAgIHg6IDIKICAgICAgIH0KICAgICAgIGM6IFsxLCAyXQogICAgIH0KCiBBbiBpbXBsZW1lbnRhdGlvbiBtYXkgcHJvdmlkZSBvcHRpb25zIHRvIG92ZXJyaWRlIHRoaXMgZGVmYXVsdCBiZWhhdmlvciBmb3IKIHJlcGVhdGVkIGFuZCBtZXNzYWdlIGZpZWxkcy4KCiBJbiBvcmRlciB0byByZXNldCBhIGZpZWxkJ3MgdmFsdWUgdG8gdGhlIGRlZmF1bHQsIHRoZSBmaWVsZCBtdXN0CiBiZSBpbiB0aGUgbWFzayBhbmQgc2V0IHRvIHRoZSBkZWZhdWx0IHZhbHVlIGluIHRoZSBwcm92aWRlZCByZXNvdXJjZS4KIEhlbmNlLCBpbiBvcmRlciB0byByZXNldCBhbGwgZmllbGRzIG9mIGEgcmVzb3VyY2UsIHByb3ZpZGUgYSBkZWZhdWx0CiBpbnN0YW5jZSBvZiB0aGUgcmVzb3VyY2UgYW5kIHNldCBhbGwgZmllbGRzIGluIHRoZSBtYXNrLCBvciBkbwogbm90IHByb3ZpZGUgYSBtYXNrIGFzIGRlc2NyaWJlZCBiZWxvdy4KCiBJZiBhIGZpZWxkIG1hc2sgaXMgbm90IHByZXNlbnQgb24gdXBkYXRlLCB0aGUgb3BlcmF0aW9uIGFwcGxpZXMgdG8KIGFsbCBmaWVsZHMgKGFzIGlmIGEgZmllbGQgbWFzayBvZiBhbGwgZmllbGRzIGhhcyBiZWVuIHNwZWNpZmllZCkuCiBOb3RlIHRoYXQgaW4gdGhlIHByZXNlbmNlIG9mIHNjaGVtYSBldm9sdXRpb24sIHRoaXMgbWF5IG1lYW4gdGhhdAogZmllbGRzIHRoZSBjbGllbnQgZG9lcyBub3Qga25vdyBhbmQgaGFzIHRoZXJlZm9yZSBub3QgZmlsbGVkIGludG8KIHRoZSByZXF1ZXN0IHdpbGwgYmUgcmVzZXQgdG8gdGhlaXIgZGVmYXVsdC4gSWYgdGhpcyBpcyB1bndhbnRlZAogYmVoYXZpb3IsIGEgc3BlY2lmaWMgc2VydmljZSBtYXkgcmVxdWlyZSBhIGNsaWVudCB0byBhbHdheXMgc3BlY2lmeQogYSBmaWVsZCBtYXNrLCBwcm9kdWNpbmcgYW4gZXJyb3IgaWYgbm90LgoKIEFzIHdpdGggZ2V0IG9wZXJhdGlvbnMsIHRoZSBsb2NhdGlvbiBvZiB0aGUgcmVzb3VyY2Ugd2hpY2gKIGRlc2NyaWJlcyB0aGUgdXBkYXRlZCB2YWx1ZXMgaW4gdGhlIHJlcXVlc3QgbWVzc2FnZSBkZXBlbmRzIG9uIHRoZQogb3BlcmF0aW9uIGtpbmQuIEluIGFueSBjYXNlLCB0aGUgZWZmZWN0IG9mIHRoZSBmaWVsZCBtYXNrIGlzCiByZXF1aXJlZCB0byBiZSBob25vcmVkIGJ5IHRoZSBBUEkuCgogIyMgQ29uc2lkZXJhdGlvbnMgZm9yIEhUVFAgUkVTVAoKIFRoZSBIVFRQIGtpbmQgb2YgYW4gdXBkYXRlIG9wZXJhdGlvbiB3aGljaCB1c2VzIGEgZmllbGQgbWFzayBtdXN0CiBiZSBzZXQgdG8gUEFUQ0ggaW5zdGVhZCBvZiBQVVQgaW4gb3JkZXIgdG8gc2F0aXNmeSBIVFRQIHNlbWFudGljcwogKFBVVCBtdXN0IG9ubHkgYmUgdXNlZCBmb3IgZnVsbCB1cGRhdGVzKS4KCiAjIEpTT04gRW5jb2Rpbmcgb2YgRmllbGQgTWFza3MKCiBJbiBKU09OLCBhIGZpZWxkIG1hc2sgaXMgZW5jb2RlZCBhcyBhIHNpbmdsZSBzdHJpbmcgd2hlcmUgcGF0aHMgYXJlCiBzZXBhcmF0ZWQgYnkgYSBjb21tYS4gRmllbGRzIG5hbWUgaW4gZWFjaCBwYXRoIGFyZSBjb252ZXJ0ZWQKIHRvL2Zyb20gbG93ZXItY2FtZWwgbmFtaW5nIGNvbnZlbnRpb25zLgoKIEFzIGFuIGV4YW1wbGUsIGNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgbWVzc2FnZSBkZWNsYXJhdGlvbnM6CgogICAgIG1lc3NhZ2UgUHJvZmlsZSB7CiAgICAgICBVc2VyIHVzZXIgPSAxOwogICAgICAgUGhvdG8gcGhvdG8gPSAyOwogICAgIH0KICAgICBtZXNzYWdlIFVzZXIgewogICAgICAgc3RyaW5nIGRpc3BsYXlfbmFtZSA9IDE7CiAgICAgICBzdHJpbmcgYWRkcmVzcyA9IDI7CiAgICAgfQoKIEluIHByb3RvIGEgZmllbGQgbWFzayBmb3IgYFByb2ZpbGVgIG1heSBsb29rIGFzIHN1Y2g6CgogICAgIG1hc2sgewogICAgICAgcGF0aHM6ICJ1c2VyLmRpc3BsYXlfbmFtZSIKICAgICAgIHBhdGhzOiAicGhvdG8iCiAgICAgfQoKIEluIEpTT04sIHRoZSBzYW1lIG1hc2sgaXMgcmVwcmVzZW50ZWQgYXMgYmVsb3c6CgogICAgIHsKICAgICAgIG1hc2s6ICJ1c2VyLmRpc3BsYXlOYW1lLHBob3RvIgogICAgIH0KCiAjIEZpZWxkIE1hc2tzIGFuZCBPbmVvZiBGaWVsZHMKCiBGaWVsZCBtYXNrcyB0cmVhdCBmaWVsZHMgaW4gb25lb2ZzIGp1c3QgYXMgcmVndWxhciBmaWVsZHMuIENvbnNpZGVyIHRoZQogZm9sbG93aW5nIG1lc3NhZ2U6CgogICAgIG1lc3NhZ2UgU2FtcGxlTWVzc2FnZSB7CiAgICAgICBvbmVvZiB0ZXN0X29uZW9mIHsKICAgICAgICAgc3RyaW5nIG5hbWUgPSA0OwogICAgICAgICBTdWJNZXNzYWdlIHN1Yl9tZXNzYWdlID0gOTsKICAgICAgIH0KICAgICB9CgogVGhlIGZpZWxkIG1hc2sgY2FuIGJlOgoKICAgICBtYXNrIHsKICAgICAgIHBhdGhzOiAibmFtZSIKICAgICB9CgogT3I6CgogICAgIG1hc2sgewogICAgICAgcGF0aHM6ICJzdWJfbWVzc2FnZSIKICAgICB9CgogTm90ZSB0aGF0IG9uZW9mIHR5cGUgbmFtZXMgKCJ0ZXN0X29uZW9mIiBpbiB0aGlzIGNhc2UpIGNhbm5vdCBiZSB1c2VkIGluCiBwYXRocy4KCiAjIyBGaWVsZCBNYXNrIFZlcmlmaWNhdGlvbgoKIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiBhbnkgQVBJIG1ldGhvZCB3aGljaCBoYXMgYSBGaWVsZE1hc2sgdHlwZSBmaWVsZCBpbiB0aGUKIHJlcXVlc3Qgc2hvdWxkIHZlcmlmeSB0aGUgaW5jbHVkZWQgZmllbGQgcGF0aHMsIGFuZCByZXR1cm4gYW4KIGBJTlZBTElEX0FSR1VNRU5UYCBlcnJvciBpZiBhbnkgcGF0aCBpcyBkdXBsaWNhdGVkIG9yIHVubWFwcGFibGUuCgoLCgMEAAESBPEBCBEKLAoEBAACABIE8wECHBoeIFRoZSBzZXQgb2YgZmllbGQgbWFzayBwYXRocy4KCg0KBQQAAgAEEgTzAQIKCg0KBQQAAgAFEgTzAQsRCg0KBQQAAgABEgTzARIXCg0KBQQAAgADEgTzARobYgZwcm90bzMKgSMKHGdvb2dsZS9wcm90b2J1Zi9zdHJ1Y3QucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiKYAQoGU3RydWN0EjsKBmZpZWxkcxgBIAMoCzIjLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QuRmllbGRzRW50cnlSBmZpZWxkcxpRCgtGaWVsZHNFbnRyeRIQCgNrZXkYASABKAlSA2tleRIsCgV2YWx1ZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZVIFdmFsdWU6AjgBIrICCgVWYWx1ZRI7CgpudWxsX3ZhbHVlGAEgASgOMhouZ29vZ2xlLnByb3RvYnVmLk51bGxWYWx1ZUgAUgludWxsVmFsdWUSIwoMbnVtYmVyX3ZhbHVlGAIgASgBSABSC251bWJlclZhbHVlEiMKDHN0cmluZ192YWx1ZRgDIAEoCUgAUgtzdHJpbmdWYWx1ZRIfCgpib29sX3ZhbHVlGAQgASgISABSCWJvb2xWYWx1ZRI8CgxzdHJ1Y3RfdmFsdWUYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SABSC3N0cnVjdFZhbHVlEjsKCmxpc3RfdmFsdWUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuTGlzdFZhbHVlSABSCWxpc3RWYWx1ZUIGCgRraW5kIjsKCUxpc3RWYWx1ZRIuCgZ2YWx1ZXMYASADKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWVSBnZhbHVlcyobCglOdWxsVmFsdWUSDgoKTlVMTF9WQUxVRRAAQoEBChNjb20uZ29vZ2xlLnByb3RvYnVmQgtTdHJ1Y3RQcm90b1ABWjFnaXRodWIuY29tL2dvbGFuZy9wcm90b2J1Zi9wdHlwZXMvc3RydWN0O3N0cnVjdHBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSpkdCgYSBB4AXgEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiADsKCQoCCCUSAyIAOwoICgEIEgMjAB8KCQoCCB8SAyMAHwoICgEIEgMkAEgKCQoCCAsSAyQASAoICgEIEgMlACwKCQoCCAESAyUALAoICgEIEgMmACwKCQoCCAgSAyYALAoICgEIEgMnACIKCQoCCAoSAycAIgoICgEIEgMoACEKCQoCCCQSAygAIQqzAwoCBAASBDIANQEapgMgYFN0cnVjdGAgcmVwcmVzZW50cyBhIHN0cnVjdHVyZWQgZGF0YSB2YWx1ZSwgY29uc2lzdGluZyBvZiBmaWVsZHMKIHdoaWNoIG1hcCB0byBkeW5hbWljYWxseSB0eXBlZCB2YWx1ZXMuIEluIHNvbWUgbGFuZ3VhZ2VzLCBgU3RydWN0YAogbWlnaHQgYmUgc3VwcG9ydGVkIGJ5IGEgbmF0aXZlIHJlcHJlc2VudGF0aW9uLiBGb3IgZXhhbXBsZSwgaW4KIHNjcmlwdGluZyBsYW5ndWFnZXMgbGlrZSBKUyBhIHN0cnVjdCBpcyByZXByZXNlbnRlZCBhcyBhbgogb2JqZWN0LiBUaGUgZGV0YWlscyBvZiB0aGF0IHJlcHJlc2VudGF0aW9uIGFyZSBkZXNjcmliZWQgdG9nZXRoZXIKIHdpdGggdGhlIHByb3RvIHN1cHBvcnQgZm9yIHRoZSBsYW5ndWFnZS4KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYFN0cnVjdGAgaXMgSlNPTiBvYmplY3QuCgoKCgMEAAESAzIIDgo5CgQEAAIAEgM0AiAaLCBVbm9yZGVyZWQgbWFwIG9mIGR5bmFtaWNhbGx5IHR5cGVkIHZhbHVlcy4KCgwKBQQAAgAGEgM0AhQKDAoFBAACAAESAzQVGwoMCgUEAAIAAxIDNB4fCsMCCgIEARIEPQBNARq2AiBgVmFsdWVgIHJlcHJlc2VudHMgYSBkeW5hbWljYWxseSB0eXBlZCB2YWx1ZSB3aGljaCBjYW4gYmUgZWl0aGVyCiBudWxsLCBhIG51bWJlciwgYSBzdHJpbmcsIGEgYm9vbGVhbiwgYSByZWN1cnNpdmUgc3RydWN0IHZhbHVlLCBvciBhCiBsaXN0IG9mIHZhbHVlcy4gQSBwcm9kdWNlciBvZiB2YWx1ZSBpcyBleHBlY3RlZCB0byBzZXQgb25lIG9mIHRoYXQKIHZhcmlhbnRzLCBhYnNlbmNlIG9mIGFueSB2YXJpYW50IGluZGljYXRlcyBhbiBlcnJvci4KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYFZhbHVlYCBpcyBKU09OIHZhbHVlLgoKCgoDBAEBEgM9CA0KIgoEBAEIABIEPwJMAxoUIFRoZSBraW5kIG9mIHZhbHVlLgoKDAoFBAEIAAESAz8IDAonCgQEAQIAEgNBBB0aGiBSZXByZXNlbnRzIGEgbnVsbCB2YWx1ZS4KCgwKBQQBAgAGEgNBBA0KDAoFBAECAAESA0EOGAoMCgUEAQIAAxIDQRscCikKBAQBAgESA0MEHBocIFJlcHJlc2VudHMgYSBkb3VibGUgdmFsdWUuCgoMCgUEAQIBBRIDQwQKCgwKBQQBAgEBEgNDCxcKDAoFBAECAQMSA0MaGwopCgQEAQICEgNFBBwaHCBSZXByZXNlbnRzIGEgc3RyaW5nIHZhbHVlLgoKDAoFBAECAgUSA0UECgoMCgUEAQICARIDRQsXCgwKBQQBAgIDEgNFGhsKKgoEBAECAxIDRwQYGh0gUmVwcmVzZW50cyBhIGJvb2xlYW4gdmFsdWUuCgoMCgUEAQIDBRIDRwQICgwKBQQBAgMBEgNHCRMKDAoFBAECAwMSA0cWFwotCgQEAQIEEgNJBBwaICBSZXByZXNlbnRzIGEgc3RydWN0dXJlZCB2YWx1ZS4KCgwKBQQBAgQGEgNJBAoKDAoFBAECBAESA0kLFwoMCgUEAQIEAxIDSRobCi0KBAQBAgUSA0sEHRogIFJlcHJlc2VudHMgYSByZXBlYXRlZCBgVmFsdWVgLgoKDAoFBAECBQYSA0sEDQoMCgUEAQIFARIDSw4YCgwKBQQBAgUDEgNLGxwKqQEKAgUAEgRTAFYBGpwBIGBOdWxsVmFsdWVgIGlzIGEgc2luZ2xldG9uIGVudW1lcmF0aW9uIHRvIHJlcHJlc2VudCB0aGUgbnVsbCB2YWx1ZSBmb3IgdGhlCiBgVmFsdWVgIHR5cGUgdW5pb24uCgogIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIGZvciBgTnVsbFZhbHVlYCBpcyBKU09OIGBudWxsYC4KCgoKAwUAARIDUwUOChoKBAUAAgASA1UCERoNIE51bGwgdmFsdWUuCgoMCgUFAAIAARIDVQIMCgwKBQUAAgACEgNVDxAKggEKAgQCEgRbAF4BGnYgYExpc3RWYWx1ZWAgaXMgYSB3cmFwcGVyIGFyb3VuZCBhIHJlcGVhdGVkIGZpZWxkIG9mIHZhbHVlcy4KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYExpc3RWYWx1ZWAgaXMgSlNPTiBhcnJheS4KCgoKAwQCARIDWwgRCjoKBAQCAgASA10CHBotIFJlcGVhdGVkIGZpZWxkIG9mIGR5bmFtaWNhbGx5IHR5cGVkIHZhbHVlcy4KCgwKBQQCAgAEEgNdAgoKDAoFBAICAAYSA10LEAoMCgUEAgIAARIDXREXCgwKBQQCAgADEgNdGhtiBnByb3RvMwrTLwofZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIjsKCVRpbWVzdGFtcBIYCgdzZWNvbmRzGAEgASgDUgdzZWNvbmRzEhQKBW5hbm9zGAIgASgFUgVuYW5vc0J+ChNjb20uZ29vZ2xlLnByb3RvYnVmQg5UaW1lc3RhbXBQcm90b1ABWitnaXRodWIuY29tL2dvbGFuZy9wcm90b2J1Zi9wdHlwZXMvdGltZXN0YW1w+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzStktCgcSBR4AiQEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgA7CgkKAgglEgMiADsKCAoBCBIDIwAfCgkKAggfEgMjAB8KCAoBCBIDJABCCgkKAggLEgMkAEIKCAoBCBIDJQAsCgkKAggBEgMlACwKCAoBCBIDJgAvCgkKAggIEgMmAC8KCAoBCBIDJwAiCgkKAggKEgMnACIKCAoBCBIDKAAhCgkKAggkEgMoACEK8xsKAgQAEgV+AIkBARrlGyBBIFRpbWVzdGFtcCByZXByZXNlbnRzIGEgcG9pbnQgaW4gdGltZSBpbmRlcGVuZGVudCBvZiBhbnkgdGltZSB6b25lIG9yIGxvY2FsCiBjYWxlbmRhciwgZW5jb2RlZCBhcyBhIGNvdW50IG9mIHNlY29uZHMgYW5kIGZyYWN0aW9ucyBvZiBzZWNvbmRzIGF0CiBuYW5vc2Vjb25kIHJlc29sdXRpb24uIFRoZSBjb3VudCBpcyByZWxhdGl2ZSB0byBhbiBlcG9jaCBhdCBVVEMgbWlkbmlnaHQgb24KIEphbnVhcnkgMSwgMTk3MCwgaW4gdGhlIHByb2xlcHRpYyBHcmVnb3JpYW4gY2FsZW5kYXIgd2hpY2ggZXh0ZW5kcyB0aGUKIEdyZWdvcmlhbiBjYWxlbmRhciBiYWNrd2FyZHMgdG8geWVhciBvbmUuCgogQWxsIG1pbnV0ZXMgYXJlIDYwIHNlY29uZHMgbG9uZy4gTGVhcCBzZWNvbmRzIGFyZSAic21lYXJlZCIgc28gdGhhdCBubyBsZWFwCiBzZWNvbmQgdGFibGUgaXMgbmVlZGVkIGZvciBpbnRlcnByZXRhdGlvbiwgdXNpbmcgYSBbMjQtaG91ciBsaW5lYXIKIHNtZWFyXShodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS90aW1lL3NtZWFyKS4KCiBUaGUgcmFuZ2UgaXMgZnJvbSAwMDAxLTAxLTAxVDAwOjAwOjAwWiB0byA5OTk5LTEyLTMxVDIzOjU5OjU5Ljk5OTk5OTk5OVouIEJ5CiByZXN0cmljdGluZyB0byB0aGF0IHJhbmdlLCB3ZSBlbnN1cmUgdGhhdCB3ZSBjYW4gY29udmVydCB0byBhbmQgZnJvbSBbUkZDCiAzMzM5XShodHRwczovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMzMzOS50eHQpIGRhdGUgc3RyaW5ncy4KCiAjIEV4YW1wbGVzCgogRXhhbXBsZSAxOiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIFBPU0lYIGB0aW1lKClgLgoKICAgICBUaW1lc3RhbXAgdGltZXN0YW1wOwogICAgIHRpbWVzdGFtcC5zZXRfc2Vjb25kcyh0aW1lKE5VTEwpKTsKICAgICB0aW1lc3RhbXAuc2V0X25hbm9zKDApOwoKIEV4YW1wbGUgMjogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBQT1NJWCBgZ2V0dGltZW9mZGF5KClgLgoKICAgICBzdHJ1Y3QgdGltZXZhbCB0djsKICAgICBnZXR0aW1lb2ZkYXkoJnR2LCBOVUxMKTsKCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcDsKICAgICB0aW1lc3RhbXAuc2V0X3NlY29uZHModHYudHZfc2VjKTsKICAgICB0aW1lc3RhbXAuc2V0X25hbm9zKHR2LnR2X3VzZWMgKiAxMDAwKTsKCiBFeGFtcGxlIDM6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gV2luMzIgYEdldFN5c3RlbVRpbWVBc0ZpbGVUaW1lKClgLgoKICAgICBGSUxFVElNRSBmdDsKICAgICBHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZSgmZnQpOwogICAgIFVJTlQ2NCB0aWNrcyA9ICgoKFVJTlQ2NClmdC5kd0hpZ2hEYXRlVGltZSkgPDwgMzIpIHwgZnQuZHdMb3dEYXRlVGltZTsKCiAgICAgLy8gQSBXaW5kb3dzIHRpY2sgaXMgMTAwIG5hbm9zZWNvbmRzLiBXaW5kb3dzIGVwb2NoIDE2MDEtMDEtMDFUMDA6MDA6MDBaCiAgICAgLy8gaXMgMTE2NDQ0NzM2MDAgc2Vjb25kcyBiZWZvcmUgVW5peCBlcG9jaCAxOTcwLTAxLTAxVDAwOjAwOjAwWi4KICAgICBUaW1lc3RhbXAgdGltZXN0YW1wOwogICAgIHRpbWVzdGFtcC5zZXRfc2Vjb25kcygoSU5UNjQpICgodGlja3MgLyAxMDAwMDAwMCkgLSAxMTY0NDQ3MzYwMExMKSk7CiAgICAgdGltZXN0YW1wLnNldF9uYW5vcygoSU5UMzIpICgodGlja3MgJSAxMDAwMDAwMCkgKiAxMDApKTsKCiBFeGFtcGxlIDQ6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gSmF2YSBgU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKClgLgoKICAgICBsb25nIG1pbGxpcyA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOwoKICAgICBUaW1lc3RhbXAgdGltZXN0YW1wID0gVGltZXN0YW1wLm5ld0J1aWxkZXIoKS5zZXRTZWNvbmRzKG1pbGxpcyAvIDEwMDApCiAgICAgICAgIC5zZXROYW5vcygoaW50KSAoKG1pbGxpcyAlIDEwMDApICogMTAwMDAwMCkpLmJ1aWxkKCk7CgoKIEV4YW1wbGUgNTogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBjdXJyZW50IHRpbWUgaW4gUHl0aG9uLgoKICAgICB0aW1lc3RhbXAgPSBUaW1lc3RhbXAoKQogICAgIHRpbWVzdGFtcC5HZXRDdXJyZW50VGltZSgpCgogIyBKU09OIE1hcHBpbmcKCiBJbiBKU09OIGZvcm1hdCwgdGhlIFRpbWVzdGFtcCB0eXBlIGlzIGVuY29kZWQgYXMgYSBzdHJpbmcgaW4gdGhlCiBbUkZDIDMzMzldKGh0dHBzOi8vd3d3LmlldGYub3JnL3JmYy9yZmMzMzM5LnR4dCkgZm9ybWF0LiBUaGF0IGlzLCB0aGUKIGZvcm1hdCBpcyAie3llYXJ9LXttb250aH0te2RheX1Ue2hvdXJ9OnttaW59OntzZWN9Wy57ZnJhY19zZWN9XVoiCiB3aGVyZSB7eWVhcn0gaXMgYWx3YXlzIGV4cHJlc3NlZCB1c2luZyBmb3VyIGRpZ2l0cyB3aGlsZSB7bW9udGh9LCB7ZGF5fSwKIHtob3VyfSwge21pbn0sIGFuZCB7c2VjfSBhcmUgemVyby1wYWRkZWQgdG8gdHdvIGRpZ2l0cyBlYWNoLiBUaGUgZnJhY3Rpb25hbAogc2Vjb25kcywgd2hpY2ggY2FuIGdvIHVwIHRvIDkgZGlnaXRzIChpLmUuIHVwIHRvIDEgbmFub3NlY29uZCByZXNvbHV0aW9uKSwKIGFyZSBvcHRpb25hbC4gVGhlICJaIiBzdWZmaXggaW5kaWNhdGVzIHRoZSB0aW1lem9uZSAoIlVUQyIpOyB0aGUgdGltZXpvbmUKIGlzIHJlcXVpcmVkLiBBIHByb3RvMyBKU09OIHNlcmlhbGl6ZXIgc2hvdWxkIGFsd2F5cyB1c2UgVVRDIChhcyBpbmRpY2F0ZWQgYnkKICJaIikgd2hlbiBwcmludGluZyB0aGUgVGltZXN0YW1wIHR5cGUgYW5kIGEgcHJvdG8zIEpTT04gcGFyc2VyIHNob3VsZCBiZQogYWJsZSB0byBhY2NlcHQgYm90aCBVVEMgYW5kIG90aGVyIHRpbWV6b25lcyAoYXMgaW5kaWNhdGVkIGJ5IGFuIG9mZnNldCkuCgogRm9yIGV4YW1wbGUsICIyMDE3LTAxLTE1VDAxOjMwOjE1LjAxWiIgZW5jb2RlcyAxNS4wMSBzZWNvbmRzIHBhc3QKIDAxOjMwIFVUQyBvbiBKYW51YXJ5IDE1LCAyMDE3LgoKIEluIEphdmFTY3JpcHQsIG9uZSBjYW4gY29udmVydCBhIERhdGUgb2JqZWN0IHRvIHRoaXMgZm9ybWF0IHVzaW5nIHRoZQogc3RhbmRhcmQKIFt0b0lTT1N0cmluZygpXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9EYXRlL3RvSVNPU3RyaW5nKQogbWV0aG9kLiBJbiBQeXRob24sIGEgc3RhbmRhcmQgYGRhdGV0aW1lLmRhdGV0aW1lYCBvYmplY3QgY2FuIGJlIGNvbnZlcnRlZAogdG8gdGhpcyBmb3JtYXQgdXNpbmcKIFtgc3RyZnRpbWVgXShodHRwczovL2RvY3MucHl0aG9uLm9yZy8yL2xpYnJhcnkvdGltZS5odG1sI3RpbWUuc3RyZnRpbWUpIHdpdGgKIHRoZSB0aW1lIGZvcm1hdCBzcGVjICclWS0lbS0lZFQlSDolTTolUy4lZlonLiBMaWtld2lzZSwgaW4gSmF2YSwgb25lIGNhbiB1c2UKIHRoZSBKb2RhIFRpbWUncyBbYElTT0RhdGVUaW1lRm9ybWF0LmRhdGVUaW1lKClgXSgKIGh0dHA6Ly93d3cuam9kYS5vcmcvam9kYS10aW1lL2FwaWRvY3Mvb3JnL2pvZGEvdGltZS9mb3JtYXQvSVNPRGF0ZVRpbWVGb3JtYXQuaHRtbCNkYXRlVGltZSUyRCUyRAogKSB0byBvYnRhaW4gYSBmb3JtYXR0ZXIgY2FwYWJsZSBvZiBnZW5lcmF0aW5nIHRpbWVzdGFtcHMgaW4gdGhpcyBmb3JtYXQuCgoKCgoKAwQAARIDfggRCp0BCgQEAAIAEgSCAQIUGo4BIFJlcHJlc2VudHMgc2Vjb25kcyBvZiBVVEMgdGltZSBzaW5jZSBVbml4IGVwb2NoCiAxOTcwLTAxLTAxVDAwOjAwOjAwWi4gTXVzdCBiZSBmcm9tIDAwMDEtMDEtMDFUMDA6MDA6MDBaIHRvCiA5OTk5LTEyLTMxVDIzOjU5OjU5WiBpbmNsdXNpdmUuCgoNCgUEAAIABRIEggECBwoNCgUEAAIAARIEggEIDwoNCgUEAAIAAxIEggESEwrlAQoEBAACARIEiAECEhrWASBOb24tbmVnYXRpdmUgZnJhY3Rpb25zIG9mIGEgc2Vjb25kIGF0IG5hbm9zZWNvbmQgcmVzb2x1dGlvbi4gTmVnYXRpdmUKIHNlY29uZCB2YWx1ZXMgd2l0aCBmcmFjdGlvbnMgbXVzdCBzdGlsbCBoYXZlIG5vbi1uZWdhdGl2ZSBuYW5vcyB2YWx1ZXMKIHRoYXQgY291bnQgZm9yd2FyZCBpbiB0aW1lLiBNdXN0IGJlIGZyb20gMCB0byA5OTksOTk5LDk5OQogaW5jbHVzaXZlLgoKDQoFBAACAQUSBIgBAgcKDQoFBAACAQESBIgBCA0KDQoFBAACAQMSBIgBEBFiBnByb3RvMwrHIwoeZ29vZ2xlL3Byb3RvYnVmL3dyYXBwZXJzLnByb3RvEg9nb29nbGUucHJvdG9idWYiIwoLRG91YmxlVmFsdWUSFAoFdmFsdWUYASABKAFSBXZhbHVlIiIKCkZsb2F0VmFsdWUSFAoFdmFsdWUYASABKAJSBXZhbHVlIiIKCkludDY0VmFsdWUSFAoFdmFsdWUYASABKANSBXZhbHVlIiMKC1VJbnQ2NFZhbHVlEhQKBXZhbHVlGAEgASgEUgV2YWx1ZSIiCgpJbnQzMlZhbHVlEhQKBXZhbHVlGAEgASgFUgV2YWx1ZSIjCgtVSW50MzJWYWx1ZRIUCgV2YWx1ZRgBIAEoDVIFdmFsdWUiIQoJQm9vbFZhbHVlEhQKBXZhbHVlGAEgASgIUgV2YWx1ZSIjCgtTdHJpbmdWYWx1ZRIUCgV2YWx1ZRgBIAEoCVIFdmFsdWUiIgoKQnl0ZXNWYWx1ZRIUCgV2YWx1ZRgBIAEoDFIFdmFsdWVCfAoTY29tLmdvb2dsZS5wcm90b2J1ZkINV3JhcHBlcnNQcm90b1ABWipnaXRodWIuY29tL2dvbGFuZy9wcm90b2J1Zi9wdHlwZXMvd3JhcHBlcnP4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKxh8KBhIEKAB6AQrbEAoBDBIDKAASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoyjAQgV3JhcHBlcnMgZm9yIHByaW1pdGl2ZSAobm9uLW1lc3NhZ2UpIHR5cGVzLiBUaGVzZSB0eXBlcyBhcmUgdXNlZnVsCiBmb3IgZW1iZWRkaW5nIHByaW1pdGl2ZXMgaW4gdGhlIGBnb29nbGUucHJvdG9idWYuQW55YCB0eXBlIGFuZCBmb3IgcGxhY2VzCiB3aGVyZSB3ZSBuZWVkIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlIGFic2VuY2Ugb2YgYSBwcmltaXRpdmUKIHR5cGVkIGZpZWxkIGFuZCBpdHMgZGVmYXVsdCB2YWx1ZS4KCiBUaGVzZSB3cmFwcGVycyBoYXZlIG5vIG1lYW5pbmdmdWwgdXNlIHdpdGhpbiByZXBlYXRlZCBmaWVsZHMgYXMgdGhleSBsYWNrCiB0aGUgYWJpbGl0eSB0byBkZXRlY3QgcHJlc2VuY2Ugb24gaW5kaXZpZHVhbCBlbGVtZW50cy4KIFRoZXNlIHdyYXBwZXJzIGhhdmUgbm8gbWVhbmluZ2Z1bCB1c2Ugd2l0aGluIGEgbWFwIG9yIGEgb25lb2Ygc2luY2UKIGluZGl2aWR1YWwgZW50cmllcyBvZiBhIG1hcCBvciBmaWVsZHMgb2YgYSBvbmVvZiBjYW4gYWxyZWFkeSBkZXRlY3QgcHJlc2VuY2UuCgoICgECEgMqABgKCAoBCBIDLAA7CgkKAgglEgMsADsKCAoBCBIDLQAfCgkKAggfEgMtAB8KCAoBCBIDLgBBCgkKAggLEgMuAEEKCAoBCBIDLwAsCgkKAggBEgMvACwKCAoBCBIDMAAuCgkKAggIEgMwAC4KCAoBCBIDMQAiCgkKAggKEgMxACIKCAoBCBIDMgAhCgkKAggkEgMyACEKZwoCBAASBDcAOgEaWyBXcmFwcGVyIG1lc3NhZ2UgZm9yIGBkb3VibGVgLgoKIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIGZvciBgRG91YmxlVmFsdWVgIGlzIEpTT04gbnVtYmVyLgoKCgoDBAABEgM3CBMKIAoEBAACABIDOQITGhMgVGhlIGRvdWJsZSB2YWx1ZS4KCgwKBQQAAgAFEgM5AggKDAoFBAACAAESAzkJDgoMCgUEAAIAAxIDORESCmUKAgQBEgQ/AEIBGlkgV3JhcHBlciBtZXNzYWdlIGZvciBgZmxvYXRgLgoKIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIGZvciBgRmxvYXRWYWx1ZWAgaXMgSlNPTiBudW1iZXIuCgoKCgMEAQESAz8IEgofCgQEAQIAEgNBAhIaEiBUaGUgZmxvYXQgdmFsdWUuCgoMCgUEAQIABRIDQQIHCgwKBQQBAgABEgNBCA0KDAoFBAECAAMSA0EQEQplCgIEAhIERwBKARpZIFdyYXBwZXIgbWVzc2FnZSBmb3IgYGludDY0YC4KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYEludDY0VmFsdWVgIGlzIEpTT04gc3RyaW5nLgoKCgoDBAIBEgNHCBIKHwoEBAICABIDSQISGhIgVGhlIGludDY0IHZhbHVlLgoKDAoFBAICAAUSA0kCBwoMCgUEAgIAARIDSQgNCgwKBQQCAgADEgNJEBEKZwoCBAMSBE8AUgEaWyBXcmFwcGVyIG1lc3NhZ2UgZm9yIGB1aW50NjRgLgoKIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIGZvciBgVUludDY0VmFsdWVgIGlzIEpTT04gc3RyaW5nLgoKCgoDBAMBEgNPCBMKIAoEBAMCABIDUQITGhMgVGhlIHVpbnQ2NCB2YWx1ZS4KCgwKBQQDAgAFEgNRAggKDAoFBAMCAAESA1EJDgoMCgUEAwIAAxIDURESCmUKAgQEEgRXAFoBGlkgV3JhcHBlciBtZXNzYWdlIGZvciBgaW50MzJgLgoKIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIGZvciBgSW50MzJWYWx1ZWAgaXMgSlNPTiBudW1iZXIuCgoKCgMEBAESA1cIEgofCgQEBAIAEgNZAhIaEiBUaGUgaW50MzIgdmFsdWUuCgoMCgUEBAIABRIDWQIHCgwKBQQEAgABEgNZCA0KDAoFBAQCAAMSA1kQEQpnCgIEBRIEXwBiARpbIFdyYXBwZXIgbWVzc2FnZSBmb3IgYHVpbnQzMmAuCgogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIGBVSW50MzJWYWx1ZWAgaXMgSlNPTiBudW1iZXIuCgoKCgMEBQESA18IEwogCgQEBQIAEgNhAhMaEyBUaGUgdWludDMyIHZhbHVlLgoKDAoFBAUCAAUSA2ECCAoMCgUEBQIAARIDYQkOCgwKBQQFAgADEgNhERIKbwoCBAYSBGcAagEaYyBXcmFwcGVyIG1lc3NhZ2UgZm9yIGBib29sYC4KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYEJvb2xWYWx1ZWAgaXMgSlNPTiBgdHJ1ZWAgYW5kIGBmYWxzZWAuCgoKCgMEBgESA2cIEQoeCgQEBgIAEgNpAhEaESBUaGUgYm9vbCB2YWx1ZS4KCgwKBQQGAgAFEgNpAgYKDAoFBAYCAAESA2kHDAoMCgUEBgIAAxIDaQ8QCmcKAgQHEgRvAHIBGlsgV3JhcHBlciBtZXNzYWdlIGZvciBgc3RyaW5nYC4KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYFN0cmluZ1ZhbHVlYCBpcyBKU09OIHN0cmluZy4KCgoKAwQHARIDbwgTCiAKBAQHAgASA3ECExoTIFRoZSBzdHJpbmcgdmFsdWUuCgoMCgUEBwIABRIDcQIICgwKBQQHAgABEgNxCQ4KDAoFBAcCAAMSA3EREgplCgIECBIEdwB6ARpZIFdyYXBwZXIgbWVzc2FnZSBmb3IgYGJ5dGVzYC4KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYEJ5dGVzVmFsdWVgIGlzIEpTT04gc3RyaW5nLgoKCgoDBAgBEgN3CBIKHwoEBAgCABIDeQISGhIgVGhlIGJ5dGVzIHZhbHVlLgoKDAoFBAgCAAUSA3kCBwoMCgUECAIAARIDeQgNCgwKBQQIAgADEgN5EBFiBnByb3RvMwrnYAovZ29vZ2xlL3Byb3RvYnVmL3VuaXR0ZXN0X3dlbGxfa25vd25fdHlwZXMucHJvdG8SEXByb3RvYnVmX3VuaXR0ZXN0Ghlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvGhlnb29nbGUvcHJvdG9idWYvYXBpLnByb3RvGh5nb29nbGUvcHJvdG9idWYvZHVyYXRpb24ucHJvdG8aG2dvb2dsZS9wcm90b2J1Zi9lbXB0eS5wcm90bxogZ29vZ2xlL3Byb3RvYnVmL2ZpZWxkX21hc2sucHJvdG8aJGdvb2dsZS9wcm90b2J1Zi9zb3VyY2VfY29udGV4dC5wcm90bxocZ29vZ2xlL3Byb3RvYnVmL3N0cnVjdC5wcm90bxofZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90bxoaZ29vZ2xlL3Byb3RvYnVmL3R5cGUucHJvdG8aHmdvb2dsZS9wcm90b2J1Zi93cmFwcGVycy5wcm90byK0CQoSVGVzdFdlbGxLbm93blR5cGVzEjEKCWFueV9maWVsZBgBIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSCGFueUZpZWxkEjEKCWFwaV9maWVsZBgCIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BcGlSCGFwaUZpZWxkEkAKDmR1cmF0aW9uX2ZpZWxkGAMgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uUg1kdXJhdGlvbkZpZWxkEjcKC2VtcHR5X2ZpZWxkGAQgASgLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5UgplbXB0eUZpZWxkEkQKEGZpZWxkX21hc2tfZmllbGQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrUg5maWVsZE1hc2tGaWVsZBJQChRzb3VyY2VfY29udGV4dF9maWVsZBgGIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0UhJzb3VyY2VDb250ZXh0RmllbGQSOgoMc3RydWN0X2ZpZWxkGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdFILc3RydWN0RmllbGQSQwoPdGltZXN0YW1wX2ZpZWxkGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIOdGltZXN0YW1wRmllbGQSNAoKdHlwZV9maWVsZBgJIAEoCzIVLmdvb2dsZS5wcm90b2J1Zi5UeXBlUgl0eXBlRmllbGQSPwoMZG91YmxlX2ZpZWxkGAogASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlUgtkb3VibGVGaWVsZBI8CgtmbG9hdF9maWVsZBgLIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5GbG9hdFZhbHVlUgpmbG9hdEZpZWxkEjwKC2ludDY0X2ZpZWxkGAwgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVSCmludDY0RmllbGQSPwoMdWludDY0X2ZpZWxkGA0gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQ2NFZhbHVlUgt1aW50NjRGaWVsZBI8CgtpbnQzMl9maWVsZBgOIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlUgppbnQzMkZpZWxkEj8KDHVpbnQzMl9maWVsZBgPIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZVILdWludDMyRmllbGQSOQoKYm9vbF9maWVsZBgQIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWVSCWJvb2xGaWVsZBI/CgxzdHJpbmdfZmllbGQYESABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWVSC3N0cmluZ0ZpZWxkEjwKC2J5dGVzX2ZpZWxkGBIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVSCmJ5dGVzRmllbGQSNwoLdmFsdWVfZmllbGQYEyABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWVSCnZhbHVlRmllbGQi/wgKFlJlcGVhdGVkV2VsbEtub3duVHlwZXMSMQoJYW55X2ZpZWxkGAEgAygLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIIYW55RmllbGQSMQoJYXBpX2ZpZWxkGAIgAygLMhQuZ29vZ2xlLnByb3RvYnVmLkFwaVIIYXBpRmllbGQSQAoOZHVyYXRpb25fZmllbGQYAyADKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25SDWR1cmF0aW9uRmllbGQSNwoLZW1wdHlfZmllbGQYBCADKAsyFi5nb29nbGUucHJvdG9idWYuRW1wdHlSCmVtcHR5RmllbGQSRAoQZmllbGRfbWFza19maWVsZBgFIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tSDmZpZWxkTWFza0ZpZWxkElAKFHNvdXJjZV9jb250ZXh0X2ZpZWxkGAYgAygLMh4uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvbnRleHRSEnNvdXJjZUNvbnRleHRGaWVsZBI6CgxzdHJ1Y3RfZmllbGQYByADKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0UgtzdHJ1Y3RGaWVsZBJDCg90aW1lc3RhbXBfZmllbGQYCCADKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUg50aW1lc3RhbXBGaWVsZBI0Cgp0eXBlX2ZpZWxkGAkgAygLMhUuZ29vZ2xlLnByb3RvYnVmLlR5cGVSCXR5cGVGaWVsZBI/Cgxkb3VibGVfZmllbGQYCiADKAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWVSC2RvdWJsZUZpZWxkEjwKC2Zsb2F0X2ZpZWxkGAsgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkZsb2F0VmFsdWVSCmZsb2F0RmllbGQSPAoLaW50NjRfZmllbGQYDCADKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZVIKaW50NjRGaWVsZBI/Cgx1aW50NjRfZmllbGQYDSADKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWVSC3VpbnQ2NEZpZWxkEjwKC2ludDMyX2ZpZWxkGA4gAygLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWVSCmludDMyRmllbGQSPwoMdWludDMyX2ZpZWxkGA8gAygLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQzMlZhbHVlUgt1aW50MzJGaWVsZBI5Cgpib29sX2ZpZWxkGBAgAygLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZVIJYm9vbEZpZWxkEj8KDHN0cmluZ19maWVsZBgRIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZVILc3RyaW5nRmllbGQSPAoLYnl0ZXNfZmllbGQYEiADKAsyGy5nb29nbGUucHJvdG9idWYuQnl0ZXNWYWx1ZVIKYnl0ZXNGaWVsZCKvCQoTT25lb2ZXZWxsS25vd25UeXBlcxIzCglhbnlfZmllbGQYASABKAsyFC5nb29nbGUucHJvdG9idWYuQW55SABSCGFueUZpZWxkEjMKCWFwaV9maWVsZBgCIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BcGlIAFIIYXBpRmllbGQSQgoOZHVyYXRpb25fZmllbGQYAyABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25IAFINZHVyYXRpb25GaWVsZBI5CgtlbXB0eV9maWVsZBgEIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eUgAUgplbXB0eUZpZWxkEkYKEGZpZWxkX21hc2tfZmllbGQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrSABSDmZpZWxkTWFza0ZpZWxkElIKFHNvdXJjZV9jb250ZXh0X2ZpZWxkGAYgASgLMh4uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvbnRleHRIAFISc291cmNlQ29udGV4dEZpZWxkEjwKDHN0cnVjdF9maWVsZBgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAFILc3RydWN0RmllbGQSRQoPdGltZXN0YW1wX2ZpZWxkGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAUg50aW1lc3RhbXBGaWVsZBI2Cgp0eXBlX2ZpZWxkGAkgASgLMhUuZ29vZ2xlLnByb3RvYnVmLlR5cGVIAFIJdHlwZUZpZWxkEkEKDGRvdWJsZV9maWVsZBgKIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZUgAUgtkb3VibGVGaWVsZBI+CgtmbG9hdF9maWVsZBgLIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5GbG9hdFZhbHVlSABSCmZsb2F0RmllbGQSPgoLaW50NjRfZmllbGQYDCABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZUgAUgppbnQ2NEZpZWxkEkEKDHVpbnQ2NF9maWVsZBgNIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRWYWx1ZUgAUgt1aW50NjRGaWVsZBI+CgtpbnQzMl9maWVsZBgOIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlSABSCmludDMyRmllbGQSQQoMdWludDMyX2ZpZWxkGA8gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQzMlZhbHVlSABSC3VpbnQzMkZpZWxkEjsKCmJvb2xfZmllbGQYECABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlSABSCWJvb2xGaWVsZBJBCgxzdHJpbmdfZmllbGQYESABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWVIAFILc3RyaW5nRmllbGQSPgoLYnl0ZXNfZmllbGQYEiABKAsyGy5nb29nbGUucHJvdG9idWYuQnl0ZXNWYWx1ZUgAUgpieXRlc0ZpZWxkQg0KC29uZW9mX2ZpZWxkItgZChFNYXBXZWxsS25vd25UeXBlcxJPCglhbnlfZmllbGQYASADKAsyMi5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5BbnlGaWVsZEVudHJ5UghhbnlGaWVsZBJPCglhcGlfZmllbGQYAiADKAsyMi5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5BcGlGaWVsZEVudHJ5UghhcGlGaWVsZBJeCg5kdXJhdGlvbl9maWVsZBgDIAMoCzI3LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkR1cmF0aW9uRmllbGRFbnRyeVINZHVyYXRpb25GaWVsZBJVCgtlbXB0eV9maWVsZBgEIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkVtcHR5RmllbGRFbnRyeVIKZW1wdHlGaWVsZBJiChBmaWVsZF9tYXNrX2ZpZWxkGAUgAygLMjgucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuRmllbGRNYXNrRmllbGRFbnRyeVIOZmllbGRNYXNrRmllbGQSbgoUc291cmNlX2NvbnRleHRfZmllbGQYBiADKAsyPC5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5Tb3VyY2VDb250ZXh0RmllbGRFbnRyeVISc291cmNlQ29udGV4dEZpZWxkElgKDHN0cnVjdF9maWVsZBgHIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLlN0cnVjdEZpZWxkRW50cnlSC3N0cnVjdEZpZWxkEmEKD3RpbWVzdGFtcF9maWVsZBgIIAMoCzI4LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLlRpbWVzdGFtcEZpZWxkRW50cnlSDnRpbWVzdGFtcEZpZWxkElIKCnR5cGVfZmllbGQYCSADKAsyMy5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5UeXBlRmllbGRFbnRyeVIJdHlwZUZpZWxkElgKDGRvdWJsZV9maWVsZBgKIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkRvdWJsZUZpZWxkRW50cnlSC2RvdWJsZUZpZWxkElUKC2Zsb2F0X2ZpZWxkGAsgAygLMjQucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuRmxvYXRGaWVsZEVudHJ5UgpmbG9hdEZpZWxkElUKC2ludDY0X2ZpZWxkGAwgAygLMjQucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuSW50NjRGaWVsZEVudHJ5UgppbnQ2NEZpZWxkElgKDHVpbnQ2NF9maWVsZBgNIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLlVpbnQ2NEZpZWxkRW50cnlSC3VpbnQ2NEZpZWxkElUKC2ludDMyX2ZpZWxkGA4gAygLMjQucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuSW50MzJGaWVsZEVudHJ5UgppbnQzMkZpZWxkElgKDHVpbnQzMl9maWVsZBgPIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLlVpbnQzMkZpZWxkRW50cnlSC3VpbnQzMkZpZWxkElIKCmJvb2xfZmllbGQYECADKAsyMy5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5Cb29sRmllbGRFbnRyeVIJYm9vbEZpZWxkElgKDHN0cmluZ19maWVsZBgRIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLlN0cmluZ0ZpZWxkRW50cnlSC3N0cmluZ0ZpZWxkElUKC2J5dGVzX2ZpZWxkGBIgAygLMjQucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuQnl0ZXNGaWVsZEVudHJ5UgpieXRlc0ZpZWxkGlEKDUFueUZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSKgoFdmFsdWUYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQW55UgV2YWx1ZToCOAEaUQoNQXBpRmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIqCgV2YWx1ZRgCIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BcGlSBXZhbHVlOgI4ARpbChJEdXJhdGlvbkZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSLwoFdmFsdWUYAiABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25SBXZhbHVlOgI4ARpVCg9FbXB0eUZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSLAoFdmFsdWUYAiABKAsyFi5nb29nbGUucHJvdG9idWYuRW1wdHlSBXZhbHVlOgI4ARpdChNGaWVsZE1hc2tGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjAKBXZhbHVlGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza1IFdmFsdWU6AjgBGmUKF1NvdXJjZUNvbnRleHRGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjQKBXZhbHVlGAIgASgLMh4uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvbnRleHRSBXZhbHVlOgI4ARpXChBTdHJ1Y3RGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5Ei0KBXZhbHVlGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdFIFdmFsdWU6AjgBGl0KE1RpbWVzdGFtcEZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMAoFdmFsdWUYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUgV2YWx1ZToCOAEaUwoOVHlwZUZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSKwoFdmFsdWUYAiABKAsyFS5nb29nbGUucHJvdG9idWYuVHlwZVIFdmFsdWU6AjgBGlwKEERvdWJsZUZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMgoFdmFsdWUYAiABKAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWVSBXZhbHVlOgI4ARpaCg9GbG9hdEZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMQoFdmFsdWUYAiABKAsyGy5nb29nbGUucHJvdG9idWYuRmxvYXRWYWx1ZVIFdmFsdWU6AjgBGloKD0ludDY0RmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIxCgV2YWx1ZRgCIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlUgV2YWx1ZToCOAEaXAoQVWludDY0RmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIyCgV2YWx1ZRgCIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRW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Ag0DEgNsNjgKCwoEBAMCDhIDbQI7CgwKBQQDAg4GEgNtAigKDAoFBAMCDgESA20pNQoMCgUEAwIOAxIDbTg6CgsKBAQDAg8SA24CNwoMCgUEAwIPBhIDbgImCgwKBQQDAg8BEgNuJzEKDAoFBAMCDwMSA240NgoLCgQEAwIQEgNvAjsKDAoFBAMCEAYSA28CKAoMCgUEAwIQARIDbyk1CgwKBQQDAhADEgNvODoKCwoEBAMCERIDcAI5CgwKBQQDAhEGEgNwAicKDAoFBAMCEQESA3AoMwoMCgUEAwIRAxIDcDY4YgZwcm90bzMKj80BCipnb29nbGUvcHJvdG9idWYvdGVzdF9tZXNzYWdlc19wcm90bzMucHJvdG8SHXByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zGhlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvGh5nb29nbGUvcHJvdG9idWYvZHVyYXRpb24ucHJvdG8aIGdvb2dsZS9wcm90b2J1Zi9maWVsZF9tYXNrLnByb3RvGhxnb29nbGUvcHJvdG9idWYvc3RydWN0LnByb3RvGh9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvGh5nb29nbGUvcHJvdG9idWYvd3JhcHBlcnMucHJvdG8ihFoKElRlc3RBbGxUeXBlc1Byb3RvMxIlCg5vcHRpb25hbF9pbnQzMhgBIAEoBVINb3B0aW9uYWxJbnQzMhIlCg5vcHRpb25hbF9pbnQ2NBgCIAEoA1INb3B0aW9uYWxJbnQ2NBInCg9vcHRpb25hbF91aW50MzIYAyABKA1SDm9wdGlvbmFsVWludDMyEicKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBFIOb3B0aW9uYWxVaW50NjQSJwoPb3B0aW9uYWxfc2ludDMyGAUgASgRUg5vcHRpb25hbFNpbnQzMhInCg9vcHRpb25hbF9zaW50NjQYBiABKBJSDm9wdGlvbmFsU2ludDY0EikKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAdSD29wdGlvbmFsRml4ZWQzMhIpChBvcHRpb25hbF9maXhlZDY0GAggASgGUg9vcHRpb25hbEZpeGVkNjQSKwoRb3B0aW9uYWxfc2ZpeGVkMzIYCSABKA9SEG9wdGlvbmFsU2ZpeGVkMzISKwoRb3B0aW9uYWxfc2ZpeGVkNjQYCiABKBBSEG9wdGlvbmFsU2ZpeGVkNjQSJQoOb3B0aW9uYWxfZmxvYXQYCyABKAJSDW9wdGlvbmFsRmxvYXQSJwoPb3B0aW9uYWxfZG91YmxlGAwgASgBUg5vcHRpb25hbERvdWJsZRIjCg1vcHRpb25hbF9ib29sGA0gASgIUgxvcHRpb25hbEJvb2wSJwoPb3B0aW9uYWxfc3RyaW5nGA4gASgJUg5vcHRpb25hbFN0cmluZxIlCg5vcHRpb25hbF9ieXRlcxgPIAEoDFINb3B0aW9uYWxCeXRlcxJ3ChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgSIAEoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRNZXNzYWdlUhVvcHRpb25hbE5lc3RlZE1lc3NhZ2USZwoYb3B0aW9uYWxfZm9yZWlnbl9tZXNzYWdlGBMgASgLMi0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuRm9yZWlnbk1lc3NhZ2VSFm9wdGlvbmFsRm9yZWlnbk1lc3NhZ2USbgoUb3B0aW9uYWxfbmVzdGVkX2VudW0YFSABKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkRW51bVISb3B0aW9uYWxOZXN0ZWRFbnVtEl4KFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIqLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLkZvcmVpZ25FbnVtUhNvcHRpb25hbEZvcmVpZ25FbnVtEnEKFW9wdGlvbmFsX2FsaWFzZWRfZW51bRgXIAEoDjI9LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5BbGlhc2VkRW51bVITb3B0aW9uYWxBbGlhc2VkRW51bRI2ChVvcHRpb25hbF9zdHJpbmdfcGllY2UYGCABKAlCAggCUhNvcHRpb25hbFN0cmluZ1BpZWNlEicKDW9wdGlvbmFsX2NvcmQYGSABKAlCAggBUgxvcHRpb25hbENvcmQSXgoRcmVjdXJzaXZlX21lc3NhZ2UYGyABKAsyMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzNSEHJlY3Vyc2l2ZU1lc3NhZ2USJQoOcmVwZWF0ZWRfaW50MzIYHyADKAVSDXJlcGVhdGVkSW50MzISJQoOcmVwZWF0ZWRfaW50NjQYICADKANSDXJlcGVhdGVkSW50NjQSJwoPcmVwZWF0ZWRfdWludDMyGCEgAygNUg5yZXBlYXRlZFVpbnQzMhInCg9yZXBlYXRlZF91aW50NjQYIiADKARSDnJlcGVhdGVkVWludDY0EicKD3JlcGVhdGVkX3NpbnQzMhgjIAMoEVIOcmVwZWF0ZWRTaW50MzISJwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSUg5yZXBlYXRlZFNpbnQ2NBIpChByZXBlYXRlZF9maXhlZDMyGCUgAygHUg9yZXBlYXRlZEZpeGVkMzISKQoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBlIPcmVwZWF0ZWRGaXhlZDY0EisKEXJlcGVhdGVkX3NmaXhlZDMyGCcgAygPUhByZXBlYXRlZFNmaXhlZDMyEisKEXJlcGVhdGVkX3NmaXhlZDY0GCggAygQUhByZXBlYXRlZFNmaXhlZDY0EiUKDnJlcGVhdGVkX2Zsb2F0GCkgAygCUg1yZXBlYXRlZEZsb2F0EicKD3JlcGVhdGVkX2RvdWJsZRgqIAMoAVIOcmVwZWF0ZWREb3VibGUSIwoNcmVwZWF0ZWRfYm9vbBgrIAMoCFIMcmVwZWF0ZWRCb29sEicKD3JlcGVhdGVkX3N0cmluZxgsIAMoCVIOcmVwZWF0ZWRTdHJpbmcSJQoOcmVwZWF0ZWRfYnl0ZXMYLSADKAxSDXJlcGVhdGVkQnl0ZXMSdwoXcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2UYMCADKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkTWVzc2FnZVIVcmVwZWF0ZWROZXN0ZWRNZXNzYWdlEmcKGHJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZRgxIAMoCzItLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLkZvcmVpZ25NZXNzYWdlUhZyZXBlYXRlZEZvcmVpZ25NZXNzYWdlEm4KFHJlcGVhdGVkX25lc3RlZF9lbnVtGDMgAygOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW1SEnJlcGVhdGVkTmVzdGVkRW51bRJeChVyZXBlYXRlZF9mb3JlaWduX2VudW0YNCADKA4yKi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5Gb3JlaWduRW51bVITcmVwZWF0ZWRGb3JlaWduRW51bRI2ChVyZXBlYXRlZF9zdHJpbmdfcGllY2UYNiADKAlCAggCUhNyZXBlYXRlZFN0cmluZ1BpZWNlEicKDXJlcGVhdGVkX2NvcmQYNyADKAlCAggBUgxyZXBlYXRlZENvcmQSJQoMcGFja2VkX2ludDMyGEsgAygFQgIQAVILcGFja2VkSW50MzISJQoMcGFja2VkX2ludDY0GEwgAygDQgIQAVILcGFja2VkSW50NjQSJwoNcGFja2VkX3VpbnQzMhhNIAMoDUICEAFSDHBhY2tlZFVpbnQzMhInCg1wYWNrZWRfdWludDY0GE4gAygEQgIQAVIMcGFja2VkVWludDY0EicKDXBhY2tlZF9zaW50MzIYTyADKBFCAhABUgxwYWNrZWRTaW50MzISJwoNcGFja2VkX3NpbnQ2NBhQIAMoEkICEAFSDHBhY2tlZFNpbnQ2NBIpCg5wYWNrZWRfZml4ZWQzMhhRIAMoB0ICEAFSDXBhY2tlZEZpeGVkMzISKQoOcGFja2VkX2ZpeGVkNjQYUiADKAZCAhABUg1wYWNrZWRGaXhlZDY0EisKD3BhY2tlZF9zZml4ZWQzMhhTIAMoD0ICEAFSDnBhY2tlZFNmaXhlZDMyEisKD3BhY2tlZF9zZml4ZWQ2NBhUIAMoEEICEAFSDnBhY2tlZFNmaXhlZDY0EiUKDHBhY2tlZF9mbG9hdBhVIAMoAkICEAFSC3BhY2tlZEZsb2F0EicKDXBhY2tlZF9kb3VibGUYViADKAFCAhABUgxwYWNrZWREb3VibGUSIwoLcGFja2VkX2Jvb2wYVyADKAhCAhABUgpwYWNrZWRCb29sEm4KEnBhY2tlZF9uZXN0ZWRfZW51bRhYIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRFbnVtQgIQAVIQcGFja2VkTmVzdGVkRW51bRIpCg51bnBhY2tlZF9pbnQzMhhZIAMoBUICEABSDXVucGFja2VkSW50MzISKQoOdW5wYWNrZWRfaW50NjQYWiADKANCAhAAUg11bnBhY2tlZEludDY0EisKD3VucGFja2VkX3VpbnQzMhhbIAMoDUICEABSDnVucGFja2VkVWludDMyEisKD3VucGFja2VkX3VpbnQ2NBhcIAMoBEICEABSDnVucGFja2VkVWludDY0EisKD3VucGFja2VkX3NpbnQzMhhdIAMoEUICEABSDnVucGFja2VkU2ludDMyEisKD3VucGFja2VkX3NpbnQ2NBheIAMoEkICEABSDnVucGFja2VkU2ludDY0Ei0KEHVucGFja2VkX2ZpeGVkMzIYXyADKAdCAhAAUg91bnBhY2tlZEZpeGVkMzISLQoQdW5wYWNrZWRfZml4ZWQ2NBhgIAMoBkICEABSD3VucGFja2VkRml4ZWQ2NBIvChF1bnBhY2tlZF9zZml4ZWQzMhhhIAMoD0ICEABSEHVucGFja2VkU2ZpeGVkMzISLwoRdW5wYWNrZWRfc2ZpeGVkNjQYYiADKBBCAhAAUhB1bnBhY2tlZFNmaXhlZDY0EikKDnVucGFja2VkX2Zsb2F0GGMgAygCQgIQAFINdW5wYWNrZWRGbG9hdBIrCg91bnBhY2tlZF9kb3VibGUYZCADKAFCAhAAUg51bnBhY2tlZERvdWJsZRInCg11bnBhY2tlZF9ib29sGGUgAygIQgIQAFIMdW5wYWNrZWRCb29sEnIKFHVucGFja2VkX25lc3RlZF9lbnVtGGYgAygOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW1CAhAAUhJ1bnBhY2tlZE5lc3RlZEVudW0SbAoPbWFwX2ludDMyX2ludDMyGDggAygLMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcEludDMySW50MzJFbnRyeVINbWFwSW50MzJJbnQzMhJsCg9tYXBfaW50NjRfaW50NjQYOSADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwSW50NjRJbnQ2NEVudHJ5Ug1tYXBJbnQ2NEludDY0EnIKEW1hcF91aW50MzJfdWludDMyGDogAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFVpbnQzMlVpbnQzMkVudHJ5Ug9tYXBVaW50MzJVaW50MzIScgoRbWFwX3VpbnQ2NF91aW50NjQYOyADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwVWludDY0VWludDY0RW50cnlSD21hcFVpbnQ2NFVpbnQ2NBJyChFtYXBfc2ludDMyX3NpbnQzMhg8IAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTaW50MzJTaW50MzJFbnRyeVIPbWFwU2ludDMyU2ludDMyEnIKEW1hcF9zaW50NjRfc2ludDY0GD0gAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFNpbnQ2NFNpbnQ2NEVudHJ5Ug9tYXBTaW50NjRTaW50NjQSeAoTbWFwX2ZpeGVkMzJfZml4ZWQzMhg+IAMoCzJILnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBGaXhlZDMyRml4ZWQzMkVudHJ5UhFtYXBGaXhlZDMyRml4ZWQzMhJ4ChNtYXBfZml4ZWQ2NF9maXhlZDY0GD8gAygLMkgucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcEZpeGVkNjRGaXhlZDY0RW50cnlSEW1hcEZpeGVkNjRGaXhlZDY0En4KFW1hcF9zZml4ZWQzMl9zZml4ZWQzMhhAIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTZml4ZWQzMlNmaXhlZDMyRW50cnlSE21hcFNmaXhlZDMyU2ZpeGVkMzISfgoVbWFwX3NmaXhlZDY0X3NmaXhlZDY0GEEgAygLMkoucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeVITbWFwU2ZpeGVkNjRTZml4ZWQ2NBJsCg9tYXBfaW50MzJfZmxvYXQYQiADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwSW50MzJGbG9hdEVudHJ5Ug1tYXBJbnQzMkZsb2F0Em8KEG1hcF9pbnQzMl9kb3VibGUYQyADKAsyRS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwSW50MzJEb3VibGVFbnRyeVIObWFwSW50MzJEb3VibGUSZgoNbWFwX2Jvb2xfYm9vbBhEIAMoCzJCLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBCb29sQm9vbEVudHJ5UgttYXBCb29sQm9vbBJyChFtYXBfc3RyaW5nX3N0cmluZxhFIAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTdHJpbmdTdHJpbmdFbnRyeVIPbWFwU3RyaW5nU3RyaW5nEm8KEG1hcF9zdHJpbmdfYnl0ZXMYRiADKAsyRS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3RyaW5nQnl0ZXNFbnRyeVIObWFwU3RyaW5nQnl0ZXMSiAEKGW1hcF9zdHJpbmdfbmVzdGVkX21lc3NhZ2UYRyADKAsyTS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3RyaW5nTmVzdGVkTWVzc2FnZUVudHJ5UhZtYXBTdHJpbmdOZXN0ZWRNZXNzYWdlEosBChptYXBfc3RyaW5nX2ZvcmVpZ25fbWVzc2FnZRhIIAMoCzJOLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTdHJpbmdGb3JlaWduTWVzc2FnZUVudHJ5UhdtYXBTdHJpbmdGb3JlaWduTWVzc2FnZRJ/ChZtYXBfc3RyaW5nX25lc3RlZF9lbnVtGEkgAygLMkoucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFN0cmluZ05lc3RlZEVudW1FbnRyeVITbWFwU3RyaW5nTmVzdGVkRW51bRKCAQoXbWFwX3N0cmluZ19mb3JlaWduX2VudW0YSiADKAsySy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3RyaW5nRm9yZWlnbkVudW1FbnRyeVIUbWFwU3RyaW5nRm9yZWlnbkVudW0SIwoMb25lb2ZfdWludDMyGG8gASgNSABSC29uZW9mVWludDMyEnMKFG9uZW9mX25lc3RlZF9tZXNzYWdlGHAgASgLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZE1lc3NhZ2VIAFISb25lb2ZOZXN0ZWRNZXNzYWdlEiMKDG9uZW9mX3N0cmluZxhxIAEoCUgAUgtvbmVvZlN0cmluZxIhCgtvbmVvZl9ieXRlcxhyIAEoDEgAUgpvbmVvZkJ5dGVzEh8KCm9uZW9mX2Jvb2wYcyABKAhIAFIJb25lb2ZCb29sEiMKDG9uZW9mX3VpbnQ2NBh0IAEoBEgAUgtvbmVvZlVpbnQ2NBIhCgtvbmVvZl9mbG9hdBh1IAEoAkgAUgpvbmVvZkZsb2F0EiMKDG9uZW9mX2RvdWJsZRh2IAEoAUgAUgtvbmVvZkRvdWJsZRJdCgpvbmVvZl9lbnVtGHcgASgOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW1IAFIJb25lb2ZFbnVtEk8KFW9wdGlvbmFsX2Jvb2xfd3JhcHBlchjJASABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlUhNvcHRpb25hbEJvb2xXcmFwcGVyElIKFm9wdGlvbmFsX2ludDMyX3dyYXBwZXIYygEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWVSFG9wdGlvbmFsSW50MzJXcmFwcGVyElIKFm9wdGlvbmFsX2ludDY0X3dyYXBwZXIYywEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVSFG9wdGlvbmFsSW50NjRXcmFwcGVyElUKF29wdGlvbmFsX3VpbnQzMl93cmFwcGVyGMwBIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZVIVb3B0aW9uYWxVaW50MzJXcmFwcGVyElUKF29wdGlvbmFsX3VpbnQ2NF93cmFwcGVyGM0BIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRWYWx1ZVIVb3B0aW9uYWxVaW50NjRXcmFwcGVyElIKFm9wdGlvbmFsX2Zsb2F0X3dyYXBwZXIYzgEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZsb2F0VmFsdWVSFG9wdGlvbmFsRmxvYXRXcmFwcGVyElUKF29wdGlvbmFsX2RvdWJsZV93cmFwcGVyGM8BIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZVIVb3B0aW9uYWxEb3VibGVXcmFwcGVyElUKF29wdGlvbmFsX3N0cmluZ193cmFwcGVyGNABIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZVIVb3B0aW9uYWxTdHJpbmdXcmFwcGVyElIKFm9wdGlvbmFsX2J5dGVzX3dyYXBwZXIY0QEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVSFG9wdGlvbmFsQnl0ZXNXcmFwcGVyEk8KFXJlcGVhdGVkX2Jvb2xfd3JhcHBlchjTASADKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlUhNyZXBlYXRlZEJvb2xXcmFwcGVyElIKFnJlcGVhdGVkX2ludDMyX3dyYXBwZXIY1AEgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWVSFHJlcGVhdGVkSW50MzJXcmFwcGVyElIKFnJlcGVhdGVkX2ludDY0X3dyYXBwZXIY1QEgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVSFHJlcGVhdGVkSW50NjRXcmFwcGVyElUKF3JlcGVhdGVkX3VpbnQzMl93cmFwcGVyGNYBIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZVIVcmVwZWF0ZWRVaW50MzJXcmFwcGVyElUKF3JlcGVhdGVkX3VpbnQ2NF93cmFwcGVyGNcBIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRWYWx1ZVIVcmVwZWF0ZWRVaW50NjRXcmFwcGVyElIKFnJlcGVhdGVkX2Zsb2F0X3dyYXBwZXIY2AEgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkZsb2F0VmFsdWVSFHJlcGVhdGVkRmxvYXRXcmFwcGVyElUKF3JlcGVhdGVkX2RvdWJsZV93cmFwcGVyGNkBIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZVIVcmVwZWF0ZWREb3VibGVXcmFwcGVyElUKF3JlcGVhdGVkX3N0cmluZ193cmFwcGVyGNoBIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZVIVcmVwZWF0ZWRTdHJpbmdXcmFwcGVyElIKFnJlcGVhdGVkX2J5dGVzX3dyYXBwZXIY2wEgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVSFHJlcGVhdGVkQnl0ZXNXcmFwcGVyEkcKEW9wdGlvbmFsX2R1cmF0aW9uGK0CIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvblIQb3B0aW9uYWxEdXJhdGlvbhJKChJvcHRpb25hbF90aW1lc3RhbXAYrgIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIRb3B0aW9uYWxUaW1lc3RhbXASSwoTb3B0aW9uYWxfZmllbGRfbWFzaxivAiABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrUhFvcHRpb25hbEZpZWxkTWFzaxJBCg9vcHRpb25hbF9zdHJ1Y3QYsAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdFIOb3B0aW9uYWxTdHJ1Y3QSOAoMb3B0aW9uYWxfYW55GLECIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSC29wdGlvbmFsQW55Ej4KDm9wdGlvbmFsX3ZhbHVlGLICIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZVINb3B0aW9uYWxWYWx1ZRJHChFyZXBlYXRlZF9kdXJhdGlvbhi3AiADKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25SEHJlcGVhdGVkRHVyYXRpb24SSgoScmVwZWF0ZWRfdGltZXN0YW1wGLgCIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBSEXJlcGVhdGVkVGltZXN0YW1wEkoKEnJlcGVhdGVkX2ZpZWxkbWFzaxi5AiADKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrUhFyZXBlYXRlZEZpZWxkbWFzaxJBCg9yZXBlYXRlZF9zdHJ1Y3QYxAIgAygLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdFIOcmVwZWF0ZWRTdHJ1Y3QSOAoMcmVwZWF0ZWRfYW55GLsCIAMoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSC3JlcGVhdGVkQW55Ej4KDnJlcGVhdGVkX3ZhbHVlGLwCIAMoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZVINcmVwZWF0ZWRWYWx1ZRJLChNyZXBlYXRlZF9saXN0X3ZhbHVlGL0CIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5MaXN0VmFsdWVSEXJlcGVhdGVkTGlzdFZhbHVlEh8KCmZpZWxkbmFtZTEYkQMgASgFUgpmaWVsZG5hbWUxEiAKC2ZpZWxkX25hbWUyGJIDIAEoBVIKZmllbGROYW1lMhIhCgxfZmllbGRfbmFtZTMYkwMgASgFUgpGaWVsZE5hbWUzEiIKDWZpZWxkX19uYW1lNF8YlAMgASgFUgpmaWVsZE5hbWU0EiEKC2ZpZWxkMG5hbWU1GJUDIAEoBVILZmllbGQwbmFtZTUSIwoNZmllbGRfMF9uYW1lNhiWAyABKAVSC2ZpZWxkME5hbWU2Eh8KCmZpZWxkTmFtZTcYlwMgASgFUgpmaWVsZE5hbWU3Eh8KCkZpZWxkTmFtZTgYmAMgASgFUgpGaWVsZE5hbWU4EiAKC2ZpZWxkX05hbWU5GJkDIAEoBVIKZmllbGROYW1lORIiCgxGaWVsZF9OYW1lMTAYmgMgASgFUgtGaWVsZE5hbWUxMBIiCgxGSUVMRF9OQU1FMTEYmwMgASgFUgtGSUVMRE5BTUUxMRIiCgxGSUVMRF9uYW1lMTIYnAMgASgFUgtGSUVMRE5hbWUxMhIkCg5fX2ZpZWxkX25hbWUxMxidAyABKAVSC0ZpZWxkTmFtZTEzEiQKDl9fRmllbGRfbmFtZTE0GJ4DIAEoBVILRmllbGROYW1lMTQSIwoNZmllbGRfX25hbWUxNRifAyABKAVSC2ZpZWxkTmFtZTE1EiMKDWZpZWxkX19OYW1lMTYYoAMgASgFUgtmaWVsZE5hbWUxNhIkCg5maWVsZF9uYW1lMTdfXxihAyABKAVSC2ZpZWxkTmFtZTE3EiQKDkZpZWxkX25hbWUxOF9fGKIDIAEoBVILRmllbGROYW1lMTgacgoNTmVzdGVkTWVzc2FnZRIMCgFhGAEgASgFUgFhElMKC2NvcmVjdXJzaXZlGAIgASgLMjEucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zUgtjb3JlY3Vyc2l2ZRpAChJNYXBJbnQzMkludDMyRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAVSBXZhbHVlOgI4ARpAChJNYXBJbnQ2NEludDY0RW50cnkSEAoDa2V5GAEgASgDUgNrZXkSFAoFdmFsdWUYAiABKANSBXZhbHVlOgI4ARpCChRNYXBVaW50MzJVaW50MzJFbnRyeRIQCgNrZXkYASABKA1SA2tleRIUCgV2YWx1ZRgCIAEoDVIFdmFsdWU6AjgBGkIKFE1hcFVpbnQ2NFVpbnQ2NEVudHJ5EhAKA2tleRgBIAEoBFIDa2V5EhQKBXZhbHVlGAIgASgEUgV2YWx1ZToCOAEaQgoUTWFwU2ludDMyU2ludDMyRW50cnkSEAoDa2V5GAEgASgRUgNrZXkSFAoFdmFsdWUYAiABKBFSBXZhbHVlOgI4ARpCChRNYXBTaW50NjRTaW50NjRFbnRyeRIQCgNrZXkYASABKBJSA2tleRIUCgV2YWx1ZRgCIAEoElIFdmFsdWU6AjgBGkQKFk1hcEZpeGVkMzJGaXhlZDMyRW50cnkSEAoDa2V5GAEgASgHUgNrZXkSFAoFdmFsdWUYAiABKAdSBXZhbHVlOgI4ARpEChZNYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5EhAKA2tleRgBIAEoBlIDa2V5EhQKBXZhbHVlGAIgASgGUgV2YWx1ZToCOAEaRgoYTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5EhAKA2tleRgBIAEoD1IDa2V5EhQKBXZhbHVlGAIgASgPUgV2YWx1ZToCOAEaRgoYTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5EhAKA2tleRgBIAEoEFIDa2V5EhQKBXZhbHVlGAIgASgQUgV2YWx1ZToCOAEaQAoSTWFwSW50MzJGbG9hdEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgCUgV2YWx1ZToCOAEaQQoTTWFwSW50MzJEb3VibGVFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoAVIFdmFsdWU6AjgBGj4KEE1hcEJvb2xCb29sRW50cnkSEAoDa2V5GAEgASgIUgNrZXkSFAoFdmFsdWUYAiABKAhSBXZhbHVlOgI4ARpCChRNYXBTdHJpbmdTdHJpbmdFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6AjgBGkEKE01hcFN0cmluZ0J5dGVzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAxSBXZhbHVlOgI4ARqKAQobTWFwU3RyaW5nTmVzdGVkTWVzc2FnZUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5ElUKBXZhbHVlGAIgASgLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZE1lc3NhZ2VSBXZhbHVlOgI4ARp5ChxNYXBTdHJpbmdGb3JlaWduTWVzc2FnZUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EkMKBXZhbHVlGAIgASgLMi0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuRm9yZWlnbk1lc3NhZ2VSBXZhbHVlOgI4ARqEAQoYTWFwU3RyaW5nTmVzdGVkRW51bUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5ElIKBXZhbHVlGAIgASgOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW1SBXZhbHVlOgI4ARpzChlNYXBTdHJpbmdGb3JlaWduRW51bUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EkAKBXZhbHVlGAIgASgOMioucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuRm9yZWlnbkVudW1SBXZhbHVlOgI4ASI5CgpOZXN0ZWRFbnVtEgcKA0ZPTxAAEgcKA0JBUhABEgcKA0JBWhACEhAKA05FRxD///////////8BIlkKC0FsaWFzZWRFbnVtEg0KCUFMSUFTX0ZPTxAAEg0KCUFMSUFTX0JBUhABEg0KCUFMSUFTX0JBWhACEgcKA1FVWBACEgcKA3F1eBACEgcKA2JBehACGgIQAUINCgtvbmVvZl9maWVsZEoGCPUDEP8DIh4KDkZvcmVpZ25NZXNzYWdlEgwKAWMYASABKAVSAWMqQAoLRm9yZWlnbkVudW0SDwoLRk9SRUlHTl9GT08QABIPCgtGT1JFSUdOX0JBUhABEg8KC0ZPUkVJR05fQkFaEAJCOAooY29tLmdvb2dsZS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvM0gB+AEBogIGUHJvdG8zStpvCgcSBSUAlAIBCsANCgEMEgMlABIytQ0gUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgogVGVzdCBzY2hlbWEgZm9yIHByb3RvMyBtZXNzYWdlcy4gIFRoaXMgdGVzdCBzY2hlbWEgaXMgdXNlZCBieToKCiAtIGJlbmNobWFya3MKIC0gZnV6eiB0ZXN0cwogLSBjb25mb3JtYW5jZSB0ZXN0cwoKCggKAQISAycAJgoICgEIEgMpAEEKCQoCCAESAykAQQoICgEIEgMqACQKCQoCCCQSAyoAJAoICgEIEgMtABwKRAoCCAkSAy0AHBo5IFRoaXMgaXMgdGhlIGRlZmF1bHQsIGJ1dCB3ZSBzcGVjaWZ5IGl0IGhlcmUgZXhwbGljaXRseS4KCgkKAgMAEgMvACMKCQoCAwESAzAAKAoJCgIDAhIDMQAqCgkKAgMDEgMyACYKCQoCAwQSAzMAKQoJCgIDBRIDNAAoCggKAQgSAzYAHwoJCgIIHxIDNgAfCtsCCgIEABIFPwCKAgEazQIgVGhpcyBwcm90byBpbmNsdWRlcyBldmVyeSB0eXBlIG9mIGZpZWxkIGluIGJvdGggc2luZ3VsYXIgYW5kIHJlcGVhdGVkCiBmb3Jtcy4KCiBBbHNvLCBjcnVjaWFsbHksIGFsbCBtZXNzYWdlcyBhbmQgZW51bXMgaW4gdGhpcyBmaWxlIGFyZSBldmVudHVhbGx5CiBzdWJtZXNzYWdlcyBvZiB0aGlzIG1lc3NhZ2UuICBTbyBmb3IgZXhhbXBsZSwgYSBmdXp6IHRlc3Qgb2YgVGVzdEFsbFR5cGVzCiBjb3VsZCB0cmln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cHRpb25hbFNmaXhlZDY0EiUKDm9wdGlvbmFsX2Zsb2F0GAsgASgCUg1vcHRpb25hbEZsb2F0EicKD29wdGlvbmFsX2RvdWJsZRgMIAEoAVIOb3B0aW9uYWxEb3VibGUSIwoNb3B0aW9uYWxfYm9vbBgNIAEoCFIMb3B0aW9uYWxCb29sEicKD29wdGlvbmFsX3N0cmluZxgOIAEoCVIOb3B0aW9uYWxTdHJpbmcSJQoOb3B0aW9uYWxfYnl0ZXMYDyABKAxSDW9wdGlvbmFsQnl0ZXMSdwoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYEiABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZVIVb3B0aW9uYWxOZXN0ZWRNZXNzYWdlEm0KGG9wdGlvbmFsX2ZvcmVpZ25fbWVzc2FnZRgTIAEoCzIzLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25NZXNzYWdlUHJvdG8yUhZvcHRpb25hbEZvcmVpZ25NZXNzYWdlEm4KFG9wdGlvbmFsX25lc3RlZF9lbnVtGBUgASgOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZEVudW1SEm9wdGlvbmFsTmVzdGVkRW51bRJkChVvcHRpb25hbF9mb3JlaWduX2VudW0YFiABKA4yMC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduRW51bVByb3RvMlITb3B0aW9uYWxGb3JlaWduRW51bRI2ChVvcHRpb25hbF9zdHJpbmdfcGllY2UYGCABKAlCAggCUhNvcHRpb25hbFN0cmluZ1BpZWNlEicKDW9wdGlvbmFsX2NvcmQYGSABKAlCAggBUgxvcHRpb25hbENvcmQSXgoRcmVjdXJzaXZlX21lc3NhZ2UYGyABKAsyMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzJSEHJlY3Vyc2l2ZU1lc3NhZ2USJQoOcmVwZWF0ZWRfaW50MzIYHyADKAVSDXJlcGVhdGVkSW50MzISJQoOcmVwZWF0ZWRfaW50NjQYICADKANSDXJlcGVhdGVkSW50NjQSJwoPcmVwZWF0ZWRfdWludDMyGCEgAygNUg5yZXBlYXRlZFVpbnQzMhInCg9yZXBlYXRlZF91aW50NjQYIiADKARSDnJlcGVhdGVkVWludDY0EicKD3JlcGVhdGVkX3NpbnQzMhgjIAMoEVIOcmVwZWF0ZWRTaW50MzISJwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSUg5yZXBlYXRlZFNpbnQ2NBIpChByZXBlYXRlZF9maXhlZDMyGCUgAygHUg9yZXBlYXRlZEZpeGVkMzISKQoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBlIPcmVwZWF0ZWRGaXhlZDY0EisKEXJlcGVhdGVkX3NmaXhlZDMyGCcgAygPUhByZXBlYXRlZFNmaXhlZDMyEisKEXJlcGVhdGVkX3NmaXhlZDY0GCggAygQUhByZXBlYXRlZFNmaXhlZDY0EiUKDnJlcGVhdGVkX2Zsb2F0GCkgAygCUg1yZXBlYXRlZEZsb2F0EicKD3JlcGVhdGVkX2RvdWJsZRgqIAMoAVIOcmVwZWF0ZWREb3VibGUSIwoNcmVwZWF0ZWRfYm9vbBgrIAMoCFIMcmVwZWF0ZWRCb29sEicKD3JlcGVhdGVkX3N0cmluZxgsIAMoCVIOcmVwZWF0ZWRTdHJpbmcSJQoOcmVwZWF0ZWRfYnl0ZXMYLSADKAxSDXJlcGVhdGVkQnl0ZXMSdwoXcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2UYMCADKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZVIVcmVwZWF0ZWROZXN0ZWRNZXNzYWdlEm0KGHJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZRgxIAMoCzIzLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25NZXNzYWdlUHJvdG8yUhZyZXBlYXRlZEZvcmVpZ25NZXNzYWdlEm4KFHJlcGVhdGVkX25lc3RlZF9lbnVtGDMgAygOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZEVudW1SEnJlcGVhdGVkTmVzdGVkRW51bRJkChVyZXBlYXRlZF9mb3JlaWduX2VudW0YNCADKA4yMC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduRW51bVByb3RvMlITcmVwZWF0ZWRGb3JlaWduRW51bRI2ChVyZXBlYXRlZF9zdHJpbmdfcGllY2UYNiADKAlCAggCUhNyZXBlYXRlZFN0cmluZ1BpZWNlEicKDXJlcGVhdGVkX2NvcmQYNyADKAlCAggBUgxyZXBlYXRlZENvcmQSJQoMcGFja2VkX2ludDMyGEsgAygFQgIQAVILcGFja2VkSW50MzISJQoMcGFja2VkX2ludDY0GEwgAygDQgIQAVILcGFja2VkSW50NjQSJwoNcGFja2VkX3VpbnQzMhhNIAMoDUICEAFSDHBhY2tlZFVpbnQzMhInCg1wYWNrZWRfdWludDY0GE4gAygEQgIQAVIMcGFja2VkVWludDY0EicKDXBhY2tlZF9zaW50MzIYTyADKBFCAhABUgxwYWNrZWRTaW50MzISJwoNcGFja2VkX3NpbnQ2NBhQIAMoEkICEAFSDHBhY2tlZFNpbnQ2NBIpCg5wYWNrZWRfZml4ZWQzMhhRIAMoB0ICEAFSDXBhY2tlZEZpeGVkMzISKQoOcGFja2VkX2ZpeGVkNjQYUiADKAZCAhABUg1wYWNrZWRGaXhlZDY0EisKD3BhY2tlZF9zZml4ZWQzMhhTIAMoD0ICEAFSDnBhY2tlZFNmaXhlZDMyEisKD3BhY2tlZF9zZml4ZWQ2NBhUIAMoEEICEAFSDnBhY2tlZFNmaXhlZDY0EiUKDHBhY2tlZF9mbG9hdBhVIAMoAkICEAFSC3BhY2tlZEZsb2F0EicKDXBhY2tlZF9kb3VibGUYViADKAFCAhABUgxwYWNrZWREb3VibGUSIwoLcGFja2VkX2Jvb2wYVyADKAhCAhABUgpwYWNrZWRCb29sEm4KEnBhY2tlZF9uZXN0ZWRfZW51bRhYIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtQgIQAVIQcGFja2VkTmVzdGVkRW51bRIpCg51bnBhY2tlZF9pbnQzMhhZIAMoBUICEABSDXVucGFja2VkSW50MzISKQoOdW5wYWNrZWRfaW50NjQYWiADKANCAhAAUg11bnBhY2tlZEludDY0EisKD3VucGFja2VkX3VpbnQzMhhbIAMoDUICEABSDnVucGFja2VkVWludDMyEisKD3VucGFja2VkX3VpbnQ2NBhcIAMoBEICEABSDnVucGFja2VkVWludDY0EisKD3VucGFja2VkX3NpbnQzMhhdIAMoEUICEABSDnVucGFja2VkU2ludDMyEisKD3VucGFja2VkX3NpbnQ2NBheIAMoEkICEABSDnVucGFja2VkU2ludDY0Ei0KEHVucGFja2VkX2ZpeGVkMzIYXyADKAdCAhAAUg91bnBhY2tlZEZpeGVkMzISLQoQdW5wYWNrZWRfZml4ZWQ2NBhgIAMoBkICEABSD3VucGFja2VkRml4ZWQ2NBIvChF1bnBhY2tlZF9zZml4ZWQzMhhhIAMoD0ICEABSEHVucGFja2VkU2ZpeGVkMzISLwoRdW5wYWNrZWRfc2ZpeGVkNjQYYiADKBBCAhAAUhB1bnBhY2tlZFNmaXhlZDY0EikKDnVucGFja2VkX2Zsb2F0GGMgAygCQgIQAFINdW5wYWNrZWRGbG9hdBIrCg91bnBhY2tlZF9kb3VibGUYZCADKAFCAhAAUg51bnBhY2tlZERvdWJsZRInCg11bnBhY2tlZF9ib29sGGUgAygIQgIQAFIMdW5wYWNrZWRCb29sEnIKFHVucGFja2VkX25lc3RlZF9lbnVtGGYgAygOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZEVudW1CAhAAUhJ1bnBhY2tlZE5lc3RlZEVudW0SbAoPbWFwX2ludDMyX2ludDMyGDggAygLMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDMySW50MzJFbnRyeVINbWFwSW50MzJJbnQzMhJsCg9tYXBfaW50NjRfaW50NjQYOSADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwSW50NjRJbnQ2NEVudHJ5Ug1tYXBJbnQ2NEludDY0EnIKEW1hcF91aW50MzJfdWludDMyGDogAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFVpbnQzMlVpbnQzMkVudHJ5Ug9tYXBVaW50MzJVaW50MzIScgoRbWFwX3VpbnQ2NF91aW50NjQYOyADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwVWludDY0VWludDY0RW50cnlSD21hcFVpbnQ2NFVpbnQ2NBJyChFtYXBfc2ludDMyX3NpbnQzMhg8IAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTaW50MzJTaW50MzJFbnRyeVIPbWFwU2ludDMyU2ludDMyEnIKEW1hcF9zaW50NjRfc2ludDY0GD0gAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFNpbnQ2NFNpbnQ2NEVudHJ5Ug9tYXBTaW50NjRTaW50NjQSeAoTbWFwX2ZpeGVkMzJfZml4ZWQzMhg+IAMoCzJILnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBGaXhlZDMyRml4ZWQzMkVudHJ5UhFtYXBGaXhlZDMyRml4ZWQzMhJ4ChNtYXBfZml4ZWQ2NF9maXhlZDY0GD8gAygLMkgucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEZpeGVkNjRGaXhlZDY0RW50cnlSEW1hcEZpeGVkNjRGaXhlZDY0En4KFW1hcF9zZml4ZWQzMl9zZml4ZWQzMhhAIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTZml4ZWQzMlNmaXhlZDMyRW50cnlSE21hcFNmaXhlZDMyU2ZpeGVkMzISfgoVbWFwX3NmaXhlZDY0X3NmaXhlZDY0GEEgAygLMkoucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeVITbWFwU2ZpeGVkNjRTZml4ZWQ2NBJsCg9tYXBfaW50MzJfZmxvYXQYQiADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwSW50MzJGbG9hdEVudHJ5Ug1tYXBJbnQzMkZsb2F0Em8KEG1hcF9pbnQzMl9kb3VibGUYQyADKAsyRS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwSW50MzJEb3VibGVFbnRyeVIObWFwSW50MzJEb3VibGUSZgoNbWFwX2Jvb2xfYm9vbBhEIAMoCzJCLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBCb29sQm9vbEVudHJ5UgttYXBCb29sQm9vbBJyChFtYXBfc3RyaW5nX3N0cmluZxhFIAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTdHJpbmdTdHJpbmdFbnRyeVIPbWFwU3RyaW5nU3RyaW5nEm8KEG1hcF9zdHJpbmdfYnl0ZXMYRiADKAsyRS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nQnl0ZXNFbnRyeVIObWFwU3RyaW5nQnl0ZXMSiAEKGW1hcF9zdHJpbmdfbmVzdGVkX21lc3NhZ2UYRyADKAsyTS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nTmVzdGVkTWVzc2FnZUVudHJ5UhZtYXBTdHJpbmdOZXN0ZWRNZXNzYWdlEosBChptYXBfc3RyaW5nX2ZvcmVpZ25fbWVzc2FnZRhIIAMoCzJOLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTdHJpbmdGb3JlaWduTWVzc2FnZUVudHJ5UhdtYXBTdHJpbmdGb3JlaWduTWVzc2FnZRJ/ChZtYXBfc3RyaW5nX25lc3RlZF9lbnVtGEkgAygLMkoucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ05lc3RlZEVudW1FbnRyeVITbWFwU3RyaW5nTmVzdGVkRW51bRKCAQoXbWFwX3N0cmluZ19mb3JlaWduX2VudW0YSiADKAsySy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nRm9yZWlnbkVudW1FbnRyeVIUbWFwU3RyaW5nRm9yZWlnbkVudW0SIwoMb25lb2ZfdWludDMyGG8gASgNSABSC29uZW9mVWludDMyEnMKFG9uZW9mX25lc3RlZF9tZXNzYWdlGHAgASgLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZE1lc3NhZ2VIAFISb25lb2ZOZXN0ZWRNZXNzYWdlEiMKDG9uZW9mX3N0cmluZxhxIAEoCUgAUgtvbmVvZlN0cmluZxIhCgtvbmVvZl9ieXRlcxhyIAEoDEgAUgpvbmVvZkJ5dGVzEh8KCm9uZW9mX2Jvb2wYcyABKAhIAFIJb25lb2ZCb29sEiMKDG9uZW9mX3VpbnQ2NBh0IAEoBEgAUgtvbmVvZlVpbnQ2NBIhCgtvbmVvZl9mbG9hdBh1IAEoAkgAUgpvbmVvZkZsb2F0EiMKDG9uZW9mX2RvdWJsZRh2IAEoAUgAUgtvbmVvZkRvdWJsZRJdCgpvbmVvZl9lbnVtGHcgASgOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZEVudW1IAFIJb25lb2ZFbnVtEksKBGRhdGEYyQEgASgKMjYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLkRhdGFSBGRhdGESHwoKZmllbGRuYW1lMRiRAyABKAVSCmZpZWxkbmFtZTESIAoLZmllbGRfbmFtZTIYkgMgASgFUgpmaWVsZE5hbWUyEiEKDF9maWVsZF9uYW1lMxiTAyABKAVSCkZpZWxkTmFtZTMSIgoNZmllbGRfX25hbWU0XxiUAyABKAVSCmZpZWxkTmFtZTQSIQoLZmllbGQwbmFtZTUYlQMgASgFUgtmaWVsZDBuYW1lNRIjCg1maWVsZF8wX25hbWU2GJYDIAEoBVILZmllbGQwTmFtZTYSHwoKZmllbGROYW1lNxiXAyABKAVSCmZpZWxkTmFtZTcSHwoKRmllbGROYW1lOBiYAyABKAVSCkZpZWxkTmFtZTgSIAoLZmllbGRfTmFtZTkYmQMgASgFUgpmaWVsZE5hbWU5EiIKDEZpZWxkX05hbWUxMBiaAyABKAVSC0ZpZWxkTmFtZTEwEiIKDEZJRUxEX05BTUUxMRibAyABKAVSC0ZJRUxETkFNRTExEiIKDEZJRUxEX25hbWUxMhicAyABKAVSC0ZJRUxETmFtZTEyEiQKDl9fZmllbGRfbmFtZTEzGJ0DIAEoBVILRmllbGROYW1lMTMSJAoOX19GaWVsZF9uYW1lMTQYngMgASgFUgtGaWVsZE5hbWUxNBIjCg1maWVsZF9fbmFtZTE1GJ8DIAEoBVILZmllbGROYW1lMTUSIwoNZmllbGRfX05hbWUxNhigAyABKAVSC2ZpZWxkTmFtZTE2EiQKDmZpZWxkX25hbWUxN19fGKEDIAEoBVILZmllbGROYW1lMTcSJAoORmllbGRfbmFtZTE4X18YogMgASgFUgtGaWVsZE5hbWUxOBpyCg1OZXN0ZWRNZXNzYWdlEgwKAWEYASABKAVSAWESUwoLY29yZWN1cnNpdmUYAiABKAsyMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzJSC2NvcmVjdXJzaXZlGkAKEk1hcEludDMySW50MzJFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoBVIFdmFsdWU6AjgBGkAKEk1hcEludDY0SW50NjRFbnRyeRIQCgNrZXkYASABKANSA2tleRIUCgV2YWx1ZRgCIAEoA1IFdmFsdWU6AjgBGkIKFE1hcFVpbnQzMlVpbnQzMkVudHJ5EhAKA2tleRgBIAEoDVIDa2V5EhQKBXZhbHVlGAIgASgNUgV2YWx1ZToCOAEaQgoUTWFwVWludDY0VWludDY0RW50cnkSEAoDa2V5GAEgASgEUgNrZXkSFAoFdmFsdWUYAiABKARSBXZhbHVlOgI4ARpCChRNYXBTaW50MzJTaW50MzJFbnRyeRIQCgNrZXkYASABKBFSA2tleRIUCgV2YWx1ZRgCIAEoEVIFdmFsdWU6AjgBGkIKFE1hcFNpbnQ2NFNpbnQ2NEVudHJ5EhAKA2tleRgBIAEoElIDa2V5EhQKBXZhbHVlGAIgASgSUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQzMkZpeGVkMzJFbnRyeRIQCgNrZXkYASABKAdSA2tleRIUCgV2YWx1ZRgCIAEoB1IFdmFsdWU6AjgBGkQKFk1hcEZpeGVkNjRGaXhlZDY0RW50cnkSEAoDa2V5GAEgASgGUgNrZXkSFAoFdmFsdWUYAiABKAZSBXZhbHVlOgI4ARpGChhNYXBTZml4ZWQzMlNmaXhlZDMyRW50cnkSEAoDa2V5GAEgASgPUgNrZXkSFAoFdmFsdWUYAiABKA9SBXZhbHVlOgI4ARpGChhNYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnkSEAoDa2V5GAEgASgQUgNrZXkSFAoFdmFsdWUYAiABKBBSBXZhbHVlOgI4ARpAChJNYXBJbnQzMkZsb2F0RW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAJSBXZhbHVlOgI4ARpBChNNYXBJbnQzMkRvdWJsZUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgBUgV2YWx1ZToCOAEaPgoQTWFwQm9vbEJvb2xFbnRyeRIQCgNrZXkYASABKAhSA2tleRIUCgV2YWx1ZRgCIAEoCFIFdmFsdWU6AjgBGkIKFE1hcFN0cmluZ1N0cmluZ0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAEaQQoTTWFwU3RyaW5nQnl0ZXNFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoDFIFdmFsdWU6AjgBGooBChtNYXBTdHJpbmdOZXN0ZWRNZXNzYWdlRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSVQoFdmFsdWUYAiABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZVIFdmFsdWU6AjgBGn8KHE1hcFN0cmluZ0ZvcmVpZ25NZXNzYWdlRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSSQoFdmFsdWUYAiABKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMlIFdmFsdWU6AjgBGoQBChhNYXBTdHJpbmdOZXN0ZWRFbnVtRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSUgoFdmFsdWUYAiABKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkRW51bVIFdmFsdWU6AjgBGnkKGU1hcFN0cmluZ0ZvcmVpZ25FbnVtRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSRgoFdmFsdWUYAiABKA4yMC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduRW51bVByb3RvMlIFdmFsdWU6AjgBGkwKBERhdGESIAoLZ3JvdXBfaW50MzIYygEgASgFUgpncm91cEludDMyEiIKDGdyb3VwX3VpbnQzMhjLASABKA1SC2dyb3VwVWludDMyGiEKEU1lc3NhZ2VTZXRDb3JyZWN0KggIBBD/////BzoCCAEa+gEKG01lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMRIQCgNzdHIYGSABKAlSA3N0cjLIAQoVbWVzc2FnZV9zZXRfZXh0ZW5zaW9uEkMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0GPm7XiABKAsyTS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24xUhNtZXNzYWdlU2V0RXh0ZW5zaW9uGvcBChtNZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjISDAoBaRgJIAEoBVIBaTLJAQoVbWVzc2FnZV9zZXRfZXh0ZW5zaW9uEkMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0GJCz/AEgASgLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMlITbWVzc2FnZVNldEV4dGVuc2lvbiI5CgpOZXN0ZWRFbnVtEgcKA0ZPTxAAEgcKA0JBUhABEgcKA0JBWhACEhAKA05FRxD///////////8BKgUIeBDJAUINCgtvbmVvZl9maWVsZEoGCOgHEJBOIiQKFEZvcmVpZ25NZXNzYWdlUHJvdG8yEgwKAWMYASABKAVSAWMingMKFVVua25vd25Ub1Rlc3RBbGxUeXBlcxImCg5vcHRpb25hbF9pbnQzMhjpByABKAVSDW9wdGlvbmFsSW50MzISKAoPb3B0aW9uYWxfc3RyaW5nGOoHIAEoCVIOb3B0aW9uYWxTdHJpbmcSWwoObmVzdGVkX21lc3NhZ2UY6wcgASgLMjMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbk1lc3NhZ2VQcm90bzJSDW5lc3RlZE1lc3NhZ2USaQoNb3B0aW9uYWxncm91cBjsByABKAoyQi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Vbmtub3duVG9UZXN0QWxsVHlwZXMuT3B0aW9uYWxHcm91cFINb3B0aW9uYWxncm91cBIkCg1vcHRpb25hbF9ib29sGO4HIAEoCFIMb3B0aW9uYWxCb29sEiYKDnJlcGVhdGVkX2ludDMyGPMHIAMoBVINcmVwZWF0ZWRJbnQzMhodCg1PcHRpb25hbEdyb3VwEgwKAWEYASABKAVSAWEqRgoRRm9yZWlnbkVudW1Qcm90bzISDwoLRk9SRUlHTl9GT08QABIPCgtGT1JFSUdOX0JBUhABEg8KC0ZPUkVJR05fQkFaEAI6WgoPZXh0ZW5zaW9uX2ludDMyEjEucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yGHggASgFUg5leHRlbnNpb25JbnQzMkIvCihjb20uZ29vZ2xlLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8ySAH4AQFKnGwKBxIFJQCJAgEKug0KAQwSAyUAEjKZDSBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCiBUZXN0IHNjaGVtYSBmb3IgcHJvdG8yIG1lc3NhZ2VzLiAgVGhpcyB0ZXN0IHNjaGVtYSBpcyB1c2VkIGJ5OgoKIC0gY29uZm9ybWFuY2UgdGVzdHMKCjIUIExJTlQ6IEFMTE9XX0dST1VQUwoKCAoBAhIDJwAmCggKAQgSAykAQQoJCgIIARIDKQBBCggKAQgSAywAHApECgIICRIDLAAcGjkgVGhpcyBpcyB0aGUgZGVmYXVsdCwgYnV0IHdlIHNwZWNpZnkgaXQgaGVyZSBleHBsaWNpdGx5LgoKCAoBCBIDLgAfCgkKAggfEgMuAB8K2wIKAgQAEgU3APABARrNAiBUaGlzIHByb3RvIGluY2x1ZGVzIGV2ZXJ5IHR5cGUgb2YgZmllbGQgaW4gYm90aCBzaW5ndWxhciBhbmQgcmVwZWF0ZWQKIGZvcm1zLgoKIEFsc28sIGNydWNpYWxseSwgYWxsIG1lc3NhZ2VzIGFuZCBlbnVtcyBpbiB0aGlzIGZpbGUgYXJlIGV2ZW50dWFsbHkKIHN1Ym1lc3NhZ2VzIG9mIHRoaXMgbWVzc2FnZS4gIFNvIGZvciBleGFtcGxlLCBhIGZ1enogdGVzdCBvZiBUZXN0QWxsVHlwZXMKIGNvdWxkIHRyaWdnZXIgYnVncyB0aGF0IG9jY3VyIGluIGFueSBtZXNzYWdlIHR5cGUgaW4gdGhpcyBmaWxlLiAgV2UgdmVyaWZ5CiB0aGlzIHN0YXlzIHRydWUgaW4gYSB1bml0IHRlc3QuCgoKCgMEAAESAzcIGgoMCgQEAAMAEgQ4AjsDCgwKBQQAAwABEgM4ChcKDQoGBAADAAIAEgM5BBkKDgoHBAADAAIABBIDOQQMCg4KBwQAAwACAAUSAzkNEgoOCgcEAAMAAgABEgM5ExQKDgoHBAADAAIAAxIDORcYCg0KBgQAAwACARIDOgQwCg4KBwQAAwACAQQSAzoEDAoOCgcEAAMAAgEGEgM6DR8KDgoHBAADAAIBARIDOiArCg4KBwQAAwACAQMSAzouLwoMCgQEAAQAEgQ9AkIDCgwKBQQABAABEgM9BxEKDQoGBAAEAAIAEgM+BAwKDgoHBAAEAAIAARIDPgQHCg4KBwQABAACAAISAz4KCwoNCgYEAAQAAgESAz8EDAoOCgcEAAQAAgEBEgM/BAcKDgoHBAAEAAIBAhIDPwoLCg0KBgQABAACAhIDQAQMCg4KBwQABAACAgESA0AEBwoOCgcEAAQAAgICEgNACgsKKAoGBAAEAAIDEgNBBA0iGSBJbnRlbnRpb25hbGx5IG5lZ2F0aXZlLgoKDgoHBAAEAAIDARIDQQQHCg4KBwQABAACAwISA0EKDAoXCgQEAAIAEgNFAiQaCiBTaW5ndWxhcgoKDAoFBAACAAQSA0UCCgoMCgUEAAIABRIDRQsQCgwKBQQAAgABEgNFER8KDAoFBAACAAMSA0UiIwoLCgQEAAIBEgNGAiQKDAoFBAACAQQSA0YCCgoMCgUEAAIBBRIDRgsQCgwKBQQAAgEBEgNGER8KDAoFBAACAQMSA0YiIwoLCgQEAAICEgNHAiYKDAoFBAACAgQSA0cCCgoMCgUEAAICBRIDRwsRCgwKBQQAAgIBEgNHEiEKDAoFBAACAgMSA0ckJQoLCgQEAAIDEgNIAiYKDAoFBAACAwQSA0gCCgoMCgUEAAIDBRIDSAsRCgwKBQQAAgMBEgNIEiEKDAoFBAACAwMSA0gkJQoLCgQEAAIEEgNJAiYKDAoFBAACBAQSA0kCCgoMCgUEAAIEBRIDSQsRCgwKBQQAAgQBEgNJEiEKDAoFBAACBAMSA0kkJQoLCgQEAAIFEgNKAiYKDAoFBAACBQQSA0oCCgoMCgUEAAIFBRIDSgsRCgwKBQQAAgUBEgNKEiEKDAoFBAACBQMSA0okJQoLCgQEAAIGEgNLAigKDAoFBAACBgQSA0sCCgoMCgUEAAIGBRIDSwsSCgwKBQQAAgYBEgNLEyMKDAoFBAACBgMSA0smJwoLCgQEAAIHEgNMAigKDAoFBAACBwQSA0wCCgoMCgUEAAIHBRIDTAsSCgwKBQQAAgcBEgNMEyMKDAoFBAACBwMSA0wmJwoLCgQEAAIIEgNNAioKDAoFBAACCAQSA00CCgoMCgUEAAIIBRIDTQsTCgwKBQQAAggBEgNNFCUKDAoFBAACCAMSA00oKQoLCgQEAAIJEgNOAisKDAoFBAACCQQSA04CCgoMCgUEAAIJBRIDTgsTCgwKBQQAAgkBEgNOFCUKDAoFBAACCQMSA04oKgoLCgQEAAIKEgNPAiUKDAoFBAACCgQSA08CCgoMCgUEAAIKBRIDTwsQCgwKBQQAAgoBEgNPER8KDAoFBAACCgMSA08iJAoLCgQEAAILEgNQAicKDAoFBAACCwQSA1ACCgoMCgUEAAILBRIDUAsRCgwKBQQAAgsBEgNQEiEKDAoFBAACCwMSA1AkJgoLCgQEAAIMEgNRAiMKDAoFBAACDAQSA1ECCgoMCgUEAAIMBRIDUQsPCgwKBQQAAgwBEgNREB0KDAoFBAACDAMSA1EgIgoLCgQEAAINEgNSAicKDAoFBAACDQQSA1ICCgoMCgUEAAINBRIDUgsRCgwKBQQAAg0BEgNSEiEKDAoFBAACDQMSA1IkJgoLCgQEAAIOEgNTAiUKDAoFBAACDgQSA1MCCgoMCgUEAAIOBRIDUwsQCgwKBQQAAg4BEgNTER8KDAoFBAACDgMSA1MiJAoLCgQEAAIPEgNVAjYKDAoFBAACDwQSA1UCCgoMCgUEAAIPBhIDVQsYCgwKBQQAAg8BEgNVGTAKDAoFBAACDwMSA1UzNQoLCgQEAAIQEgNWAj4KDAoFBAACEAQSA1YCCgoMCgUEAAIQBhIDVgsfCgwKBQQAAhABEgNWIDgKDAoFBAACEAMSA1Y7PQoLCgQEAAIREgNYAjAKDAoFBAACEQQSA1gCCgoMCgUEAAIRBhIDWAsVCgwKBQQAAhEBEgNYFioKDAoFBAACEQMSA1gtLwoLCgQEAAISEgNZAjgKDAoFBAACEgQSA1kCCgoMCgUEAAISBhIDWQscCgwKBQQAAhIBEgNZHTIKDAoFBAACEgMSA1k1NwoLCgQEAAITEgNbAkQKDAoFBAACEwQSA1sCCgoMCgUEAAITBRIDWwsRCgwKBQQAAhMBEgNbEicKDAoFBAACEwMSA1sqLAoMCgUEAAITCBIDWy1DCg0KBgQAAhMIARIDWy5CCgsKBAQAAhQSA1wCNAoMCgUEAAIUBBIDXAIKCgwKBQQAAhQFEgNcCxEKDAoFBAACFAESA1wSHwoMCgUEAAIUAxIDXCIkCgwKBQQAAhQIEgNcJTMKDQoGBAACFAgBEgNcJjIKCwoEBAACFRIDXgI1CgwKBQQAAhUEEgNeAgoKDAoFBAACFQYSA14LHQoMCgUEAAIVARIDXh4vCgwKBQQAAhUDEgNeMjQKFwoEBAACFhIDYQIlGgogUmVwZWF0ZWQKCgwKBQQAAhYEEgNhAgoKDAoFBAACFgUSA2ELEAoMCgUEAAIWARIDYREfCgwKBQQAAhYDEgNhIiQKCwoEBAACFxIDYgIlCgwKBQQAAhcEEgNiAgoKDAoFBAACFwUSA2ILEAoMCgUEAAIXARIDYhEfCgwKBQQAAhcDEgNiIiQKCwoEBAACGBIDYwInCgwKBQQAAhgEEgNjAgoKDAoFBAACGAUSA2MLEQoMCgUEAAIYARIDYxIhCgwKBQQAAhgDEgNjJCYKCwoEBAACGRIDZAInCgwKBQQAAhkEEgNkAgoKDAoFBAACGQUSA2QLEQoMCgUEAAIZARIDZBIhCgwKBQQAAhkDEgNkJCYKCwoEBAACGhIDZQInCgwKBQQAAhoEEgNlAgoKDAoFBAACGgUSA2ULEQoMCgUEAAIaARIDZRIhCgwKBQQAAhoDEgNlJCYKCwoEBAACGxIDZgInCgwKBQQAAhsEEgNmAgoKDAoFBAACGwUSA2YLEQoMCgUEAAIbARIDZhIhCgwKBQQAAhsDEgNmJCYKCwoEBAACHBIDZwIpCgwKBQQAAhwEEgNnAgoKDAoFBAACHAUSA2cLEgoMCgUEAAIcARIDZxMjCgwKBQQAAhwDEgNnJigKCwoEBAACHRIDaAIpCgwKBQQAAh0EEgNoAgoKDAoFBAACHQUSA2gLEgoMCgUEAAIdARIDaBMjCgwKBQQAAh0DEgNoJigKCwoEBAACHhIDaQIrCgwKBQQAAh4EEgNpAgoKDAoFBAACHgUSA2kLEwoMCgUEAAIeARIDaRQlCgwKBQQAAh4DEgNpKCoKCwoEBAACHxIDagIrCgwKBQQAAh8EEgNqAgoKDAoFBAACHwUSA2oLEwoMCgUEAAIfARIDahQlCgwKBQQAAh8DEgNqKCoKCwoEBAACIBIDawIlCgwKBQQAAiAEEgNrAgoKDAoFBAACIAUSA2sLEAoMCgUEAAIgARIDaxEfCgwKBQQAAiADEgNrIiQKCwoEBAACIRIDbAInCgwKBQQAAiEEEgNsAgoKDAoFBAACIQUSA2wLEQoMCgUEAAIhARIDbBIhCgwKBQQAAiEDEgNsJCYKCwoEBAACIhIDbQIjCgwKBQQAAiIEEgNtAgoKDAoFBAACIgUSA20LDwoMCgUEAAIiARIDbRAdCgwKBQQAAiIDEgNtICIKCwoEBAACIxIDbgInCgwKBQQAAiMEEgNuAgoKDAoFBAACIwUSA24LEQoMCgUEAAIjARIDbhIhCgwKBQQAAiMDEgNuJCYKCwoEBAACJBIDbwIlCgwKBQQAAiQEEgNvAgoKDAoFBAACJAUSA28LEAoMCgUEAAIkARIDbxEfCgwKBQQAAiQDEgNvIiQKCwoEBAACJRIDcQI2CgwKBQQAAiUEEgNxAgoKDAoFBAACJQYSA3ELGAoMCgUEAAIlARIDcRkwCgwKBQQAAiUDEgNxMzUKCwoEBAACJhIDcgI+CgwKBQQAAiYEEgNyAgoKDAoFBAACJgYSA3ILHwoMCgUEAAImARIDciA4CgwKBQQAAiYDEgNyOz0KCwoEBAACJxIDdAIwCgwKBQQAAicEEgN0AgoKDAoFBAACJwYSA3QLFQoMCgUEAAInARIDdBYqCgwKBQQAAicDEgN0LS8KCwoEBAACKBIDdQI4CgwKBQQAAigEEgN1AgoKDAoFBAACKAYSA3ULHAoMCgUEAAIoARIDdR0yCgwKBQQAAigDEgN1NTcKCwoEBAACKRIDdwJECgwKBQQAAikEEgN3AgoKDAoFBAACKQUSA3cLEQoMCgUEAAIpARIDdxInCgwKBQQAAikDEgN3KiwKDAoFBAACKQgSA3ctQwoNCgYEAAIpCAESA3cuQgoLCgQEAAIqEgN4AjQKDAoFBAACKgQSA3gCCgoMCgUEAAIqBRIDeAsRCgwKBQQAAioBEgN4Eh8KDAoFBAACKgMSA3giJAoMCgUEAAIqCBIDeCUzCg0KBgQAAioIARIDeCYyChUKBAQAAisSA3sCMxoIIFBhY2tlZAoKDAoFBAACKwQSA3sCCgoMCgUEAAIrBRIDewsQCgwKBQQAAisBEgN7ER0KDAoFBAACKwMSA3sgIgoMCgUEAAIrCBIDeyMyCg0KBgQAAisIAhIDeyQxCgsKBAQAAiwSA3wCMwoMCgUEAAIsBBIDfAIKCgwKBQQAAiwFEgN8CxAKDAoFBAACLAESA3wRHQoMCgUEAAIsAxIDfCAiCgwKBQQAAiwIEgN8IzIKDQoGBAACLAgCEgN8JDEKCwoEBAACLRIDfQI1CgwKBQQAAi0EEgN9AgoKDAoFBAACLQUSA30LEQoMCgUEAAItARIDfRIfCgwKBQQAAi0DEgN9IiQKDAoFBAACLQgSA30lNAoNCgYEAAItCAISA30mMwoLCgQEAAIuEgN+AjUKDAoFBAACLgQSA34CCgoMCgUEAAIuBRIDfgsRCgwKBQQAAi4BEgN+Eh8KDAoFBAACLgMSA34iJAoMCgUEAAIuCBIDfiU0Cg0KBgQAAi4IAhIDfiYzCgsKBAQAAi8SA38CNQoMCgUEAAIvBBIDfwIKCgwKBQQAAi8FEgN/CxEKDAoFBAACLwESA38SHwoMCgUEAAIvAxIDfyIkCgwKBQQAAi8IEgN/JTQKDQoGBAACLwgCEgN/JjMKDAoEBAACMBIEgAECNQoNCgUEAAIwBBIEgAECCgoNCgUEAAIwBRIEgAELEQoNCgUEAAIwARIEgAESHwoNCgUEAAIwAxIEgAEiJAoNCgUEAAIwCBIEgAElNAoOCgYEAAIwCAISBIABJjMKDAoEBAACMRIEgQECNwoNCgUEAAIxBBIEgQECCgoNCgUEAAIxBRIEgQELEgoNCgUEAAIxARIEgQETIQoNCgUEAAIxAxIEgQEkJgoNCgUEAAIxCBIEgQEnNgoOCgYEAAIxCAISBIEBKDUKDAoEBAACMhIEggECNwoNCgUEAAIyBBIEggECCgoNCgUEAAIyBRIEggELEgoNCgUEAAIyARIEggETIQoNCgUEAAIyAxIEggEkJgoNCgUEAAIyCBIEggEnNgoOCgYEAAIyCAISBIIBKDUKDAoEBAACMxIEgwECOQoNCgUEAAIzBBIEgwECCgoNCgUEAAIzBRIEgwELEwoNCgUEAAIzARIEgwEUIwoNCgUEAAIzAxIEgwEmKAoNCgUEAAIzCBIEgwEpOAoOCgYEAAIzCAISBIMBKjcKDAoEBAACNBIEhAECOQoNCgUEAAI0BBIEhAECCgoNCgUEAAI0BRIEhAELEwoNCgUEAAI0ARIEhAEUIwoNCgUEAAI0AxIEhAEmKAoNCgUEAAI0CBIEhAEpOAoOCgYEAAI0CAISBIQBKjcKDAoEBAACNRIEhQECMwoNCgUEAAI1BBIEhQECCgoNCgUEAAI1BRIEhQELEAoNCgUEAAI1ARIEhQERHQoNCgUEAAI1AxIEhQEgIgoNCgUEAAI1CBIEhQEjMgoOCgYEAAI1CAISBIUBJDEKDAoEBAACNhIEhgECNQoNCgUEAAI2BBIEhgECCgoNCgUEAAI2BRIEhgELEQoNCgUEAAI2ARIEhgESHwoNCgUEAAI2AxIEhgEiJAoNCgUEAAI2CBIEhgElNAoOCgYEAAI2CAISBIYBJjMKDAoEBAACNxIEhwECMQoNCgUEAAI3BBIEhwECCgoNCgUEAAI3BRIEhwELDwoNCgUEAAI3ARIEhwEQGwoNCgUEAAI3AxIEhwEeIAoNCgUEAAI3CBIEhwEhMAoOCgYEAAI3CAISBIcBIi8KDAoEBAACOBIEiAECPgoNCgUEAAI4BBIEiAECCgoNCgUEAAI4BhIEiAELFQoNCgUEAAI4ARIEiAEWKAoNCgUEAAI4AxIEiAErLQoNCgUEAAI4CBIEiAEuPQoOCgYEAAI4CAISBIgBLzwKGAoEBAACORIEiwECNhoKIFVucGFja2VkCgoNCgUEAAI5BBIEiwECCgoNCgUEAAI5BRIEiwELEAoNCgUEAAI5ARIEiwERHwoNCgUEAAI5AxIEiwEiJAoNCgUEAAI5CBIEiwElNQoOCgYEAAI5CAISBIsBJjQKDAoEBAACOhIEjAECNgoNCgUEAAI6BBIEjAECCgoNCgUEAAI6BRIEjAELEAoNCgUEAAI6ARIEjAERHwoNCgUEAAI6AxIEjAEiJAoNCgUEAAI6CBIEjAElNQoOCgYEAAI6CAISBIwBJjQKDAoEBAACOxIEjQECOAoNCgUEAAI7BBIEjQECCgoNCgUEAAI7BRIEjQELEQoNCgUEAAI7ARIEjQESIQoNCgUEAAI7AxIEjQEkJgoNCgUEAAI7CBIEjQEnNwoOCgYEAAI7CAISBI0BKDYKDAoEBAACPBIEjgECOAoNCgUEAAI8BBIEjgECCgoNCgUEAAI8BRIEjgELEQoNCgUEAAI8ARIEjgESIQoNCgUEAAI8AxIEjgEkJgoNCgUEAAI8CBIEjgEnNwoOCgYEAAI8CAISBI4BKDYKDAoEBAACPRIEjwECOAoNCgUEAAI9BBIEjwECCgoNCgUEAAI9BRIEjwELEQoNCgUEAAI9ARIEjwESIQoNCgUEAAI9AxIEjwEkJgoNCgUEAAI9CBIEjwEnNwoOCgYEAAI9CAISBI8BKDYKDAoEBAACPhIEkAECOAoNCgUEAAI+BBIEkAECCgoNCgUEAAI+BRIEkAELEQoNCgUEAAI+ARIEkAESIQoNCgUEAAI+AxIEkAEkJgoNCgUEAAI+CBIEkAEnNwoOCgYEAAI+CAISBJABKDYKDAoEBAACPxIEkQECOgoNCgUEAAI/BBIEkQECCgoNCgUEAAI/BRIEkQELEgoNCgUEAAI/ARIEkQETIwoNCgUEAAI/AxIEkQEmKAoNCgUEAAI/CBIEkQEpOQoOCgYEAAI/CAISBJEBKjgKDAoEBAACQBIEkgECOgoNCgUEAAJABBIEkgECCgoNCgUEAAJABRIEkgELEgoNCgUEAAJAARIEkgETIwoNCgUEAAJAAxIEkgEmKAoNCgUEAAJACBIEkgEpOQoOCgYEAAJACAISBJIBKjgKDAoEBAACQRIEkwECPAoNCgUEAAJBBBIEkwECCgoNCgUEAAJBBRIEkwELEwoNCgUEAAJBARIEkwEUJQoNCgUEAAJBAxIEkwEoKgoNCgUEAAJBCBIEkwErOwoOCgYEAAJBCAISBJMBLDoKDAoEBAACQhIElAECPAoNCgUEAAJCBBIElAECCgoNCgUEAAJCBRIElAELEwoNCgUEAAJCARIElAEUJQoNCgUEAAJCAxIElAEoKgoNCgUEAAJCCBIElAErOwoOCgYEAAJCCAISBJQBLDoKDAoEBAACQxIElQECNgoNCgUEAAJDBBIElQECCgoNCgUEAAJDBRIElQELEAoNCgUEAAJDARIElQERHwoNCgUEAAJDAxIElQEiJAoNCgUEAAJDCBIElQElNQoOCgYEAAJDCAISBJUBJjQKDAoEBAACRBIElgECOQoNCgUEAAJEBBIElgECCgoNCgUEAAJEBRIElgELEQoNCgUEAAJEARIElgESIQoNCgUEAAJEAxIElgEkJwoNCgUEAAJECBIElgEoOAoOCgYEAAJECAISBJYBKTcKDAoEBAACRRIElwECNQoNCgUEAAJFBBIElwECCgoNCgUEAAJFBRIElwELDwoNCgUEAAJFARIElwEQHQoNCgUEAAJFAxIElwEgIwoNCgUEAAJFCBIElwEkNAoOCgYEAAJFCAISBJcBJTMKDAoEBAACRhIEmAECQgoNCgUEAAJGBBIEmAECCgoNCgUEAAJGBhIEmAELFQoNCgUEAAJGARIEmAEWKgoNCgUEAAJGAxIEmAEtMAoNCgUEAAJGCBIEmAExQQoOCgYEAAJGCAISBJgBMkAKEwoEBAACRxIEmwECKRoFIE1hcAoKDQoFBAACRwYSBJsBAhMKDQoFBAACRwESBJsBFCMKDQoFBAACRwMSBJsBJigKDAoEBAACSBIEnAECKQoNCgUEAAJIBhIEnAECEwoNCgUEAAJIARIEnAEUIwoNCgUEAAJIAxIEnAEmKAoMCgQEAAJJEgSdAQItCg0KBQQAAkkGEgSdAQIVCg0KBQQAAkkBEgSdARYnCg0KBQQAAkkDEgSdASosCgwKBAQAAkoSBJ4BAi0KDQoFBAACSgYSBJ4BAhUKDQoFBAACSgESBJ4BFicKDQoFBAACSgMSBJ4BKiwKDAoEBAACSxIEnwECLQoNCgUEAAJLBhIEnwECFQoNCgUEAAJLARIEnwEWJwoNCgUEAAJLAxIEnwEqLAoMCgQEAAJMEgSgAQItCg0KBQQAAkwGEgSgAQIVCg0KBQQAAkwBEgSgARYnCg0KBQQAAkwDEgSgASosCgwKBAQAAk0SBKEBAjEKDQoFBAACTQYSBKEBAhcKDQoFBAACTQESBKEBGCsKDQoFBAACTQMSBKEBLjAKDAoEBAACThIEogECMQoNCgUEAAJOBhIEogECFwoNCgUEAAJOARIEogEYKwoNCgUEAAJOAxIEogEuMAoMCgQEAAJPEgSjAQI1Cg0KBQQAAk8GEgSjAQIZCg0KBQQAAk8BEgSjARovCg0KBQQAAk8DEgSjATI0CgwKBAQAAlASBKQBAjUKDQoFBAACUAYSBKQBAhkKDQoFBAACUAESBKQBGi8KDQoFBAACUAMSBKQBMjQKDAoEBAACURIEpQECKQoNCgUEAAJRBhIEpQECEwoNCgUEAAJRARIEpQEUIwoNCgUEAAJRAxIEpQEmKAoMCgQEAAJSEgSmAQIrCg0KBQQAAlIGEgSmAQIUCg0KBQQAAlIBEgSmARUlCg0KBQQAAlIDEgSmASgqCgwKBAQAAlMSBKcBAiUKDQoFBAACUwYSBKcBAhEKDQoFBAACUwESBKcBEh8KDQoFBAACUwMSBKcBIiQKDAoEBAACVBIEqAECLQoNCgUEAAJUBhIEqAECFQoNCgUEAAJUARIEqAEWJwoNCgUEAAJUAxIEqAEqLAoMCgQEAAJVEgSpAQIrCg0KBQQAAlUGEgSpAQIUCg0KBQQAAlUBEgSpARUlCg0KBQQAAlUDEgSpASgqCgwKBAQAAlYSBKoBAjwKDQoFBAACVgYSBKoBAhwKDQoFBAACVgESBKoBHTYKDQoFBAACVgMSBKoBOTsKDAoEBAACVxIEqwECRAoNCgUEAAJXBhIEqwECIwoNCgUEAAJXARIEqwEkPgoNCgUEAAJXAxIEqwFBQwoMCgQEAAJYEgSsAQI2Cg0KBQQAAlgGEgSsAQIZCg0KBQQAAlgBEgSsARowCg0KBQQAAlgDEgSsATM1CgwKBAQAAlkSBK0BAj4KDQoFBAACWQYSBK0BAiAKDQoFBAACWQESBK0BITgKDQoFBAACWQMSBK0BOz0KDgoEBAAIABIGrwECuQEDCg0KBQQACAABEgSvAQgTCgwKBAQAAloSBLABBB4KDQoFBAACWgUSBLABBAoKDQoFBAACWgESBLABCxcKDQoFBAACWgMSBLABGh0KDAoEBAACWxIEsQEELQoNCgUEAAJbBhIEsQEEEQoNCgUEAAJbARIEsQESJgoNCgUEAAJbAxIEsQEpLAoMCgQEAAJcEgSyAQQeCg0KBQQAAlwFEgSyAQQKCg0KBQQAAlwBEgSyAQsXCg0KBQQAAlwDEgSyARodCgwKBAQAAl0SBLMBBBwKDQoFBAACXQUSBLMBBAkKDQoFBAACXQESBLMBChUKDQoFBAACXQMSBLMBGBsKDAoEBAACXhIEtAEEGgoNCgUEAAJeBRIEtAEECAoNCgUEAAJeARIEtAEJEwoNCgUEAAJeAxIEtAEWGQoMCgQEAAJfEgS1AQQeCg0KBQQAAl8FEgS1AQQKCg0KBQQAAl8BEgS1AQsXCg0KBQQAAl8DEgS1ARodCgwKBAQAAmASBLYBBBwKDQoFBAACYAUSBLYBBAkKDQoFBAACYAESBLYBChUKDQoFBAACYAMSBLYBGBsKDAoEBAACYRIEtwEEHgoNCgUEAAJhBRIEtwEECgoNCgUEAAJhARIEtwELFwoNCgUEAAJhAxIEtwEaHQoMCgQEAAJiEgS4AQQgCg0KBQQAAmIGEgS4AQQOCg0KBQQAAmIBEgS4AQ8ZCg0KBQQAAmIDEgS4ARwfChkKAwQABRIEvAECGBoMIGV4dGVuc2lvbnMKCgwKBAQABQASBLwBDRcKDQoFBAAFAAESBLwBDRAKDQoFBAAFAAISBLwBFBcKDgoEBAACYxIGvwECwgEDCg0KBQQAAmMEEgS/AQIKCg0KBQQAAmMFEgS/AQsQCg0KBQQAAmMBEgS/AREVCg0KBQQAAmMDEgS/ARgbChgKBAQAAxQSBr8BAsIBAxoIIGdyb3VwcwoKDQoFBAADFAESBL8BERUKDQoFBAACYwYSBL8BERUKDgoGBAADFAIAEgTAAQQlCg8KBwQAAxQCAAQSBMABBAwKDwoHBAADFAIABRIEwAENEgoPCgcEAAMUAgABEgTAARMeCg8KBwQAAxQCAAMSBMABISQKDgoGBAADFAIBEgTBAQQnCg8KBwQAAxQCAQQSBMEBBAwKDwoHBAADFAIBBRIEwQENEwoPCgcEAAMUAgEBEgTBARQgCg8KBwQAAxQCAQMSBMEBIyYKcgoEBAACZBIExgECIhpkIFRlc3QgZmllbGQtbmFtZS10by1KU09OLW5hbWUgY29udmVudGlvbi4KIChwcm90b2J1ZiBzYXlzIG5hbWVzIGNhbiBiZSBhbnkgdmFsaWQgQy9DKysgaWRlbnRpZmllci4pCgoNCgUEAAJkBBIExgECCgoNCgUEAAJkBRIExgELEAoNCgUEAAJkARIExgERGwoNCgUEAAJkAxIExgEeIQoMCgQEAAJlEgTHAQIjCg0KBQQAAmUEEgTHAQIKCg0KBQQAAmUFEgTHAQsQCg0KBQQAAmUBEgTHAREcCg0KBQQAAmUDEgTHAR8iCgwKBAQAAmYSBMgBAiQKDQoFBAACZgQSBMgBAgoKDQoFBAACZgUSBMgBCxAKDQoFBAACZgESBMgBER0KDQoFBAACZgMSBMgBICMKDAoEBAACZxIEyQECJQoNCgUEAAJnBBIEyQECCgoNCgUEAAJnBRIEyQELEAoNCgUEAAJnARIEyQERHgoNCgUEAAJnAxIEyQEhJAoMCgQEAAJoEgTKAQIjCg0KBQQAAmgEEgTKAQIKCg0KBQQAAmgFEgTKAQsQCg0KBQQAAmgBEgTKAREcCg0KBQQAAmgDEgTKAR8iCgwKBAQAAmkSBMsBAiUKDQoFBAACaQQSBMsBAgoKDQoFBAACaQUSBMsBCxAKDQoFBAACaQESBMsBER4KDQoFBAACaQMSBMsBISQKDAoEBAACahIEzAECIgoNCgUEAAJqBBIEzAECCgoNCgUEAAJqBRIEzAELEAoNCgUEAAJqARIEzAERGwoNCgUEAAJqAxIEzAEeIQoMCgQEAAJrEgTNAQIiCg0KBQQAAmsEEgTNAQIKCg0KBQQAAmsFEgTNAQsQCg0KBQQAAmsBEgTNAREbCg0KBQQAAmsDEgTNAR4hCgwKBAQAAmwSBM4BAiMKDQoFBAACbAQSBM4BAgoKDQoFBAACbAUSBM4BCxAKDQoFBAACbAESBM4BERwKDQoFBAACbAMSBM4BHyIKDAoEBAACbRIEzwECJAoNCgUEAAJtBBIEzwECCgoNCgUEAAJtBRIEzwELEAoNCgUEAAJtARIEzwERHQoNCgUEAAJtAxIEzwEgIwoMCgQEAAJuEgTQAQIkCg0KBQQAAm4EEgTQAQIKCg0KBQQAAm4FEgTQAQsQCg0KBQQAAm4BEgTQAREdCg0KBQQAAm4DEgTQASAjCgwKBAQAAm8SBNEBAiQKDQoFBAACbwQSBNEBAgoKDQoFBAACbwUSBNEBCxAKDQoFBAACbwESBNEBER0KDQoFBAACbwMSBNEBICMKDAoEBAACcBIE0gECJgoNCgUEAAJwBBIE0gECCgoNCgUEAAJwBRIE0gELEAoNCgUEAAJwARIE0gERHwoNCgUEAAJwAxIE0gEiJQoMCgQEAAJxEgTTAQImCg0KBQQAAnEEEgTTAQIKCg0KBQQAAnEFEgTTAQsQCg0KBQQAAnEBEgTTAREfCg0KBQQAAnEDEgTTASIlCgwKBAQAAnISBNQBAiUKDQoFBAACcgQSBNQBAgoKDQoFBAACcgUSBNQBCxAKDQoFBAACcgESBNQBER4KDQoFBAACcgMSBNQBISQKDAoEBAACcxIE1QECJQoNCgUEAAJzBBIE1QECCgoNCgUEAAJzBRIE1QELEAoNCgUEAAJzARIE1QERHgoNCgUEAAJzAxIE1QEhJAoMCgQEAAJ0EgTWAQImCg0KBQQAAnQEEgTWAQIKCg0KBQQAAnQFEgTWAQsQCg0KBQQAAnQBEgTWAREfCg0KBQQAAnQDEgTWASIlCgwKBAQAAnUSBNcBAiYKDQoFBAACdQQSBNcBAgoKDQoFBAACdQUSBNcBCxAKDQoFBAACdQESBNcBER8KDQoFBAACdQMSBNcBIiUKMAoDBAAJEgTaAQIYGiMgUmVzZXJ2ZWQgZm9yIHVua25vd24gZmllbGRzIHRlc3QuCgoMCgQEAAkAEgTaAQsXCg0KBQQACQABEgTaAQsPCg0KBQQACQACEgTaARMXCigKBAQAAxUSBt0BAuEBAxoYIG1lc3NhZ2Vfc2V0IHRlc3QgY2FzZS4KCg0KBQQAAxUBEgTdAQobCg0KBQQAAxUHEgTeAQQqCg4KBgQAAxUHARIE3gEEKgoNCgUEAAMVBRIE4AEEGAoOCgYEAAMVBQASBOABDxcKDwoHBAADFQUAARIE4AEPEAoPCgcEAAMVBQACEgTgARQXCg4KBAQAAxYSBuMBAugBAwoNCgUEAAMWARIE4wEKJQoPCgUEAAMWBhIG5AEE5gEFCg4KBgQAAxYGABIE5QEGSwoPCgcEAAMWBgACEgTkAQscCg8KBwQAAxYGAAQSBOUBBg4KDwoHBAADFgYABhIE5QEPKgoPCgcEAAMWBgABEgTlAStACg8KBwQAAxYGAAMSBOUBQ0oKDgoGBAADFgIAEgTnAQQdCg8KBwQAAxYCAAQSBOcBBAwKDwoHBAADFgIABRIE5wENEwoPCgcEAAMWAgABEgTnARQXCg8KBwQAAxYCAAMSBOcBGhwKDgoEBAADFxIG6gEC7wEDCg0KBQQAAxcBEgTqAQolCg8KBQQAAxcGEgbrAQTtAQUKDgoGBAADFwYAEgTsAQZLCg8KBwQAAxcGAAISBOsBCxwKDwoHBAADFwYABBIE7AEGDgoPCgcEAAMXBgAGEgTsAQ8qCg8KBwQAAxcGAAESBOwBK0AKDwoHBAADFwYAAxIE7AFDSgoOCgYEAAMXAgASBO4BBBkKDwoHBAADFwIABBIE7gEEDAoPCgcEAAMXAgAFEgTuAQ0SCg8KBwQAAxcCAAESBO4BExQKDwoHBAADFwIAAxIE7gEXGAoMCgIEARIG8gEA9AEBCgsKAwQBARIE8gEIHAoMCgQEAQIAEgTzAQIXCg0KBQQBAgAEEgTzAQIKCg0KBQQBAgAFEgTzAQsQCg0KBQQBAgABEgTzARESCg0KBQQBAgADEgTzARUWCgwKAgUAEgb2AQD6AQEKCwoDBQABEgT2AQUWCgwKBAUAAgASBPcBAhIKDQoFBQACAAESBPcBAg0KDQoFBQACAAISBPcBEBEKDAoEBQACARIE+AECEgoNCgUFAAIBARIE+AECDQoNCgUFAAIBAhIE+AEQEQoMCgQFAAICEgT5AQISCg0KBQUAAgIBEgT5AQINCg0KBQUAAgICEgT5ARARCgsKAQcSBvwBAP4BAQoKCgIHABIE/QECJwoLCgMHAAISBPwBBxkKCwoDBwAEEgT9AQIKCgsKAwcABRIE/QELEAoLCgMHAAESBP0BESAKCwoDBwADEgT9ASMmCgwKAgQCEgaAAgCJAgEKCwoDBAIBEgSAAggdCgwKBAQCAgASBIECAicKDQoFBAICAAQSBIECAgoKDQoFBAICAAUSBIECCxAKDQoFBAICAAESBIECER8KDQoFBAICAAMSBIECIiYKDAoEBAICARIEggICKQoNCgUEAgIBBBIEggICCgoNCgUEAgIBBRIEggILEQoNCgUEAgIBARIEggISIQoNCgUEAgIBAxIEggIkKAoMCgQEAgICEgSDAgI2Cg0KBQQCAgIEEgSDAgIKCg0KBQQCAgIGEgSDAgsfCg0KBQQCAgIBEgSDAiAuCg0KBQQCAgIDEgSDAjE1Cg4KBAQCAgMSBoQCAoYCAwoNCgUEAgIDBBIEhAICCgoNCgUEAgIDBRIEhAILEAoNCgUEAgIDARIEhAIRHgoNCgUEAgIDAxIEhAIhJQoOCgQEAgMAEgaEAgKGAgMKDQoFBAIDAAESBIQCER4KDQoFBAICAwYSBIQCER4KDgoGBAIDAAIAEgSFAgQZCg8KBwQCAwACAAQSBIUCBAwKDwoHBAIDAAIABRIEhQINEgoPCgcEAgMAAgABEgSFAhMUCg8KBwQCAwACAAMSBIUCFxgKDAoEBAICBBIEhwICJQoNCgUEAgIEBBIEhwICCgoNCgUEAgIEBRIEhwILDwoNCgUEAgIEARIEhwIQHQoNCgUEAgIEAxIEhwIgJAoMCgQEAgIFEgSIAgInCg0KBQQCAgUEEgSIAgIKCg0KBQQCAgUFEgSIAgsQCg0KBQQCAgUBEgSIAhEfCg0KBQQCAgUDEgSIAiIm