CosPCjFjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2ltcG9ydF9wdWJsaWNfcHJvdG8zLnByb3RvEhhwcm90b2J1Zl91bml0dGVzdF9pbXBvcnQiIwoTUHVibGljSW1wb3J0TWVzc2FnZRIMCgFlGAEgASgFUgFlQh2qAhpHb29nbGUuUHJvdG9idWYuVGVzdFByb3Rvc0rvDQoGEgQgACgBCvYMCgEMEgMgABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCjIoIEF1dGhvcjogbGl1amlzaUBnb29nbGUuY29tIChQaGVybCBMaXUpCgoICgECEgMiACEKCAoBCBIDJAA3CgkKAgglEgMkADcKCgoCBAASBCYAKAEKCgoDBAABEgMmCBsKCwoEBAACABIDJwENCgwKBQQAAgAFEgMnAQYKDAoFBAACAAESAycHCAoMCgUEAAIAAxIDJwsMYgZwcm90bzMKnxMKKmNzaGFycC9wcm90b3MvdW5pdHRlc3RfaW1wb3J0X3Byb3RvMy5wcm90bxIYcHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0GjFjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2ltcG9ydF9wdWJsaWNfcHJvdG8zLnByb3RvIh0KDUltcG9ydE1lc3NhZ2USDAoBZBgBIAEoBVIBZCpZCgpJbXBvcnRFbnVtEhsKF0lNUE9SVF9FTlVNX1VOU1BFQ0lGSUVEEAASDgoKSU1QT1JUX0ZPTxAHEg4KCklNUE9SVF9CQVIQCBIOCgpJTVBPUlRfQkFaEAlCHaoCGkdvb2dsZS5Qcm90b2J1Zi5UZXN0UHJvdG9zSoARCgYSBCQANgEKnw4KAQwSAyQAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMtABIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIEEgcHJvdG8gZmlsZSB3aGljaCBpcyBpbXBvcnRlZCBieSB1bml0dGVzdF9wcm90bzMucHJvdG8gdG8gdGVzdCBpbXBvcnRpbmcuCgoICgECEgMmACEKCAoBCBIDKAA3CgkKAgglEgMoADcKHwoCAwASAysAQhoUIFRlc3QgcHVibGljIGltcG9ydAoKCQoCCgASAysHDQoKCgIEABIELQAvAQoKCgMEAAESAy0IFQoLCgQEAAIAEgMuAg4KDAoFBAACAAUSAy4CBwoMCgUEAAIAARIDLggJCgwKBQQAAgADEgMuDA0KCgoCBQASBDEANgEKCgoDBQABEgMxBQ8KCwoEBQACABIDMgIeCgwKBQUAAgABEgMyAhkKDAoFBQACAAISAzIcHQoLCgQFAAIBEgMzAhEKDAoFBQACAQESAzMCDAoMCgUFAAIBAhIDMw8QCgsKBAUAAgISAzQCEQoMCgUFAAICARIDNAIMCgwKBQUAAgICEgM0DxAKCwoEBQACAxIDNQIRCgwKBQUAAgMBEgM1AgwKDAoFBQACAwISAzUPEFAAYgZwcm90bzMKhbwBCiNjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X3Byb3RvMy5wcm90bxIScHJvdG9idWZfdW5pdHRlc3QzGipjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2ltcG9ydF9wcm90bzMucHJvdG8iqxYKDFRlc3RBbGxUeXBlcxIhCgxzaW5nbGVfaW50MzIYASABKAVSC3NpbmdsZUludDMyEiEKDHNpbmdsZV9pbnQ2NBgCIAEoA1ILc2luZ2xlSW50NjQSIwoNc2luZ2xlX3VpbnQzMhgDIAEoDVIMc2luZ2xlVWludDMyEiMKDXNpbmdsZV91aW50NjQYBCABKARSDHNpbmdsZVVpbnQ2NBIjCg1zaW5nbGVfc2ludDMyGAUgASgRUgxzaW5nbGVTaW50MzISIwoNc2luZ2xlX3NpbnQ2NBgGIAEoElIMc2luZ2xlU2ludDY0EiUKDnNpbmdsZV9maXhlZDMyGAcgASgHUg1zaW5nbGVGaXhlZDMyEiUKDnNpbmdsZV9maXhlZDY0GAggASgGUg1zaW5nbGVGaXhlZDY0EicKD3NpbmdsZV9zZml4ZWQzMhgJIAEoD1IOc2luZ2xlU2ZpeGVkMzISJwoPc2luZ2xlX3NmaXhlZDY0GAogASgQUg5zaW5nbGVTZml4ZWQ2NBIhCgxzaW5nbGVfZmxvYXQYCyABKAJSC3NpbmdsZUZsb2F0EiMKDXNpbmdsZV9kb3VibGUYDCABKAFSDHNpbmdsZURvdWJsZRIfCgtzaW5nbGVfYm9vbBgNIAEoCFIKc2luZ2xlQm9vbBIjCg1zaW5nbGVfc3RyaW5nGA4gASgJUgxzaW5nbGVTdHJpbmcSIQoMc2luZ2xlX2J5dGVzGA8gASgMUgtzaW5nbGVCeXRlcxJiChVzaW5nbGVfbmVzdGVkX21lc3NhZ2UYEiABKAsyLi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VSE3NpbmdsZU5lc3RlZE1lc3NhZ2USWAoWc2luZ2xlX2ZvcmVpZ25fbWVzc2FnZRgTIAEoCzIiLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduTWVzc2FnZVIUc2luZ2xlRm9yZWlnbk1lc3NhZ2USWwoVc2luZ2xlX2ltcG9ydF9tZXNzYWdlGBQgASgLMicucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1lc3NhZ2VSE3NpbmdsZUltcG9ydE1lc3NhZ2USWQoSc2luZ2xlX25lc3RlZF9lbnVtGBUgASgOMisucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtUhBzaW5nbGVOZXN0ZWRFbnVtEk8KE3NpbmdsZV9mb3JlaWduX2VudW0YFiABKA4yHy5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbkVudW1SEXNpbmdsZUZvcmVpZ25FbnVtElIKEnNpbmdsZV9pbXBvcnRfZW51bRgXIAEoDjIkLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRFbnVtUhBzaW5nbGVJbXBvcnRFbnVtEm4KHHNpbmdsZV9wdWJsaWNfaW1wb3J0X21lc3NhZ2UYGiABKAsyLS5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuUHVibGljSW1wb3J0TWVzc2FnZVIZc2luZ2xlUHVibGljSW1wb3J0TWVzc2FnZRIlCg5yZXBlYXRlZF9pbnQzMhgfIAMoBVINcmVwZWF0ZWRJbnQzMhIlCg5yZXBlYXRlZF9pbnQ2NBggIAMoA1INcmVwZWF0ZWRJbnQ2NBInCg9yZXBlYXRlZF91aW50MzIYISADKA1SDnJlcGVhdGVkVWludDMyEicKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBFIOcmVwZWF0ZWRVaW50NjQSJwoPcmVwZWF0ZWRfc2ludDMyGCMgAygRUg5yZXBlYXRlZFNpbnQzMhInCg9yZXBlYXRlZF9zaW50NjQYJCADKBJSDnJlcGVhdGVkU2ludDY0EikKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAdSD3JlcGVhdGVkRml4ZWQzMhIpChByZXBlYXRlZF9maXhlZDY0GCYgAygGUg9yZXBlYXRlZEZpeGVkNjQSKwoRcmVwZWF0ZWRfc2ZpeGVkMzIYJyADKA9SEHJlcGVhdGVkU2ZpeGVkMzISKwoRcmVwZWF0ZWRfc2ZpeGVkNjQYKCADKBBSEHJlcGVhdGVkU2ZpeGVkNjQSJQoOcmVwZWF0ZWRfZmxvYXQYKSADKAJSDXJlcGVhdGVkRmxvYXQSJwoPcmVwZWF0ZWRfZG91YmxlGCogAygBUg5yZXBlYXRlZERvdWJsZRIjCg1yZXBlYXRlZF9ib29sGCsgAygIUgxyZXBlYXRlZEJvb2wSJwoPcmVwZWF0ZWRfc3RyaW5nGCwgAygJUg5yZXBlYXRlZFN0cmluZxIlCg5yZXBlYXRlZF9ieXRlcxgtIAMoDFINcmVwZWF0ZWRCeXRlcxJmChdyZXBlYXRlZF9uZXN0ZWRfbWVzc2FnZRgwIAMoCzIuLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVIVcmVwZWF0ZWROZXN0ZWRNZXNzYWdlElwKGHJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZRgxIAMoCzIiLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduTWVzc2FnZVIWcmVwZWF0ZWRGb3JlaWduTWVzc2FnZRJfChdyZXBlYXRlZF9pbXBvcnRfbWVzc2FnZRgyIAMoCzInLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRNZXNzYWdlUhVyZXBlYXRlZEltcG9ydE1lc3NhZ2USXQoUcmVwZWF0ZWRfbmVzdGVkX2VudW0YMyADKA4yKy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW1SEnJlcGVhdGVkTmVzdGVkRW51bRJTChVyZXBlYXRlZF9mb3JlaWduX2VudW0YNCADKA4yHy5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbkVudW1SE3JlcGVhdGVkRm9yZWlnbkVudW0SVgoUcmVwZWF0ZWRfaW1wb3J0X2VudW0YNSADKA4yJC5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0RW51bVIScmVwZWF0ZWRJbXBvcnRFbnVtEnIKHnJlcGVhdGVkX3B1YmxpY19pbXBvcnRfbWVzc2FnZRg2IAMoCzItLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5QdWJsaWNJbXBvcnRNZXNzYWdlUhtyZXBlYXRlZFB1YmxpY0ltcG9ydE1lc3NhZ2USIwoMb25lb2ZfdWludDMyGG8gASgNSABSC29uZW9mVWludDMyEmIKFG9uZW9mX25lc3RlZF9tZXNzYWdlGHAgASgLMi4ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlSABSEm9uZW9mTmVzdGVkTWVzc2FnZRIjCgxvbmVvZl9zdHJpbmcYcSABKAlIAFILb25lb2ZTdHJpbmcSIQoLb25lb2ZfYnl0ZXMYciABKAxIAFIKb25lb2ZCeXRlcxofCg1OZXN0ZWRNZXNzYWdlEg4KAmJiGAEgASgFUgJiYiJWCgpOZXN0ZWRFbnVtEhsKF05FU1RFRF9FTlVNX1VOU1BFQ0lGSUVEEAASBwoDRk9PEAESBwoDQkFSEAISBwoDQkFaEAMSEAoDTkVHEP///////////wFCDQoLb25lb2ZfZmllbGQi3QEKEk5lc3RlZFRlc3RBbGxUeXBlcxI8CgVjaGlsZBgBIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0My5OZXN0ZWRUZXN0QWxsVHlwZXNSBWNoaWxkEjoKB3BheWxvYWQYAiABKAsyIC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzUgdwYXlsb2FkEk0KDnJlcGVhdGVkX2NoaWxkGAMgAygLMiYucHJvdG9idWZfdW5pdHRlc3QzLk5lc3RlZFRlc3RBbGxUeXBlc1INcmVwZWF0ZWRDaGlsZCJFChRUZXN0RGVwcmVjYXRlZEZpZWxkcxItChBkZXByZWNhdGVkX2ludDMyGAEgASgFQgIYAVIPZGVwcmVjYXRlZEludDMyIh4KDkZvcmVpZ25NZXNzYWdlEgwKAWMYASABKAVSAWMiMAoSVGVzdFJlc2VydmVkRmllbGRzSgQIAhADSgQIDxAQSgQICRAMUgNiYXJSA2JheiJqChFUZXN0Rm9yZWlnbk5lc3RlZBJVCg5mb3JlaWduX25lc3RlZBgBIAEoCzIuLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVINZm9yZWlnbk5lc3RlZCI7ChhUZXN0UmVhbGx5TGFyZ2VUYWdOdW1iZXISDAoBYRgBIAEoBVIBYRIRCgJiYhj///9/IAEoBVICYmIiXAoUVGVzdFJlY3Vyc2l2ZU1lc3NhZ2USNgoBYRgBIAEoCzIoLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0UmVjdXJzaXZlTWVzc2FnZVIBYRIMCgFpGAIgASgFUgFpIlAKFFRlc3RNdXR1YWxSZWN1cnNpb25BEjgKAmJiGAEgASgLMigucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNdXR1YWxSZWN1cnNpb25CUgJiYiJ1ChRUZXN0TXV0dWFsUmVjdXJzaW9uQhI2CgFhGAEgASgLMigucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNdXR1YWxSZWN1cnNpb25BUgFhEiUKDm9wdGlvbmFsX2ludDMyGAIgASgFUg1vcHRpb25hbEludDMyIlQKElRlc3RFbnVtQWxsb3dBbGlhcxI+CgV2YWx1ZRgBIAEoDjIoLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0RW51bVdpdGhEdXBWYWx1ZVIFdmFsdWUi+wMKF1Rlc3RDYW1lbENhc2VGaWVsZE5hbWVzEiYKDlByaW1pdGl2ZUZpZWxkGAEgASgFUg5QcmltaXRpdmVGaWVsZBIgCgtTdHJpbmdGaWVsZBgCIAEoCVILU3RyaW5nRmllbGQSPQoJRW51bUZpZWxkGAMgASgOMh8ucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25FbnVtUglFbnVtRmllbGQSRgoMTWVzc2FnZUZpZWxkGAQgASgLMiIucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25NZXNzYWdlUgxNZXNzYWdlRmllbGQSNgoWUmVwZWF0ZWRQcmltaXRpdmVGaWVsZBgHIAMoBVIWUmVwZWF0ZWRQcmltaXRpdmVGaWVsZBIwChNSZXBlYXRlZFN0cmluZ0ZpZWxkGAggAygJUhNSZXBlYXRlZFN0cmluZ0ZpZWxkEk0KEVJlcGVhdGVkRW51bUZpZWxkGAkgAygOMh8ucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25FbnVtUhFSZXBlYXRlZEVudW1GaWVsZBJWChRSZXBlYXRlZE1lc3NhZ2VGaWVsZBgKIAMoCzIiLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduTWVzc2FnZVIUUmVwZWF0ZWRNZXNzYWdlRmllbGQi/wEKElRlc3RGaWVsZE9yZGVyaW5ncxIbCglteV9zdHJpbmcYCyABKAlSCG15U3RyaW5nEhUKBm15X2ludBgBIAEoA1IFbXlJbnQSGQoIbXlfZmxvYXQYZSABKAJSB215RmxvYXQSaQoVc2luZ2xlX25lc3RlZF9tZXNzYWdlGMgBIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0RmllbGRPcmRlcmluZ3MuTmVzdGVkTWVzc2FnZVITc2luZ2xlTmVzdGVkTWVzc2FnZRovCg1OZXN0ZWRNZXNzYWdlEg4KAm9vGAIgASgDUgJvbxIOCgJiYhgBIAEoBVICYmIiWAoRU3BhcnNlRW51bU1lc3NhZ2USQwoLc3BhcnNlX2VudW0YASABKA4yIi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdFNwYXJzZUVudW1SCnNwYXJzZUVudW0iHwoJT25lU3RyaW5nEhIKBGRhdGEYASABKAlSBGRhdGEiIAoKTW9yZVN0cmluZxISCgRkYXRhGAEgAygJUgRkYXRhIh4KCE9uZUJ5dGVzEhIKBGRhdGEYASABKAxSBGRhdGEiHwoJTW9yZUJ5dGVzEhIKBGRhdGEYASABKAxSBGRhdGEiIgoMSW50MzJNZXNzYWdlEhIKBGRhdGEYASABKAVSBGRhdGEiIwoNVWludDMyTWVzc2FnZRISCgRkYXRhGAEgASgNUgRkYXRhIiIKDEludDY0TWVzc2FnZRISCgRkYXRhGAEgASgDUgRkYXRhIiMKDVVpbnQ2NE1lc3NhZ2USEgoEZGF0YRgBIAEoBFIEZGF0YSIhCgtCb29sTWVzc2FnZRISCgRkYXRhGAEgASgIUgRkYXRhIpMBCglUZXN0T25lb2YSGQoHZm9vX2ludBgBIAEoBUgAUgZmb29JbnQSHwoKZm9vX3N0cmluZxgCIAEoCUgAUglmb29TdHJpbmcSQwoLZm9vX21lc3NhZ2UYAyABKAsyIC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzSABSCmZvb01lc3NhZ2VCBQoDZm9vIu4ECg9UZXN0UGFja2VkVHlwZXMSJQoMcGFja2VkX2ludDMyGFogAygFQgIQAVILcGFja2VkSW50MzISJQoMcGFja2VkX2ludDY0GFsgAygDQgIQAVILcGFja2VkSW50NjQSJwoNcGFja2VkX3VpbnQzMhhcIAMoDUICEAFSDHBhY2tlZFVpbnQzMhInCg1wYWNrZWRfdWludDY0GF0gAygEQgIQAVIMcGFja2VkVWludDY0EicKDXBhY2tlZF9zaW50MzIYXiADKBFCAhABUgxwYWNrZWRTaW50MzISJwoNcGFja2VkX3NpbnQ2NBhfIAMoEkICEAFSDHBhY2tlZFNpbnQ2NBIpCg5wYWNrZWRfZml4ZWQzMhhgIAMoB0ICEAFSDXBhY2tlZEZpeGVkMzISKQoOcGFja2VkX2ZpeGVkNjQYYSADKAZCAhABUg1wYWNrZWRGaXhlZDY0EisKD3BhY2tlZF9zZml4ZWQzMhhiIAMoD0ICEAFSDnBhY2tlZFNmaXhlZDMyEisKD3BhY2tlZF9zZml4ZWQ2NBhjIAMoEEICEAFSDnBhY2tlZFNmaXhlZDY0EiUKDHBhY2tlZF9mbG9hdBhkIAMoAkICEAFSC3BhY2tlZEZsb2F0EicKDXBhY2tlZF9kb3VibGUYZSADKAFCAhABUgxwYWNrZWREb3VibGUSIwoLcGFja2VkX2Jvb2wYZiADKAhCAhABUgpwYWNrZWRCb29sEkQKC3BhY2tlZF9lbnVtGGcgAygOMh8ucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25FbnVtQgIQAVIKcGFja2VkRW51bSKoBQoRVGVzdFVucGFja2VkVHlwZXMSKQoOdW5wYWNrZWRfaW50MzIYWiADKAVCAhAAUg11bnBhY2tlZEludDMyEikKDnVucGFja2VkX2ludDY0GFsgAygDQgIQAFINdW5wYWNrZWRJbnQ2NBIrCg91bnBhY2tlZF91aW50MzIYXCADKA1CAhAAUg51bnBhY2tlZFVpbnQzMhIrCg91bnBhY2tlZF91aW50NjQYXSADKARCAhAAUg51bnBhY2tlZFVpbnQ2NBIrCg91bnBhY2tlZF9zaW50MzIYXiADKBFCAhAAUg51bnBhY2tlZFNpbnQzMhIrCg91bnBhY2tlZF9zaW50NjQYXyADKBJCAhAAUg51bnBhY2tlZFNpbnQ2NBItChB1bnBhY2tlZF9maXhlZDMyGGAgAygHQgIQAFIPdW5wYWNrZWRGaXhlZDMyEi0KEHVucGFja2VkX2ZpeGVkNjQYYSADKAZCAhAAUg91bnBhY2tlZEZpeGVkNjQSLwoRdW5wYWNrZWRfc2ZpeGVkMzIYYiADKA9CAhAAUhB1bnBhY2tlZFNmaXhlZDMyEi8KEXVucGFja2VkX3NmaXhlZDY0GGMgAygQQgIQAFIQdW5wYWNrZWRTZml4ZWQ2NBIpCg51bnBhY2tlZF9mbG9hdBhkIAMoAkICEABSDXVucGFja2VkRmxvYXQSKwoPdW5wYWNrZWRfZG91YmxlGGUgAygBQgIQAFIOdW5wYWNrZWREb3VibGUSJwoNdW5wYWNrZWRfYm9vbBhmIAMoCEICEABSDHVucGFja2VkQm9vbBJICg11bnBhY2tlZF9lbnVtGGcgAygOMh8ucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25FbnVtQgIQAFIMdW5wYWNrZWRFbnVtIp8CCiNUZXN0UmVwZWF0ZWRTY2FsYXJEaWZmZXJlbnRUYWdTaXplcxIpChByZXBlYXRlZF9maXhlZDMyGAwgAygHUg9yZXBlYXRlZEZpeGVkMzISJQoOcmVwZWF0ZWRfaW50MzIYDSADKAVSDXJlcGVhdGVkSW50MzISKgoQcmVwZWF0ZWRfZml4ZWQ2NBj+DyADKAZSD3JlcGVhdGVkRml4ZWQ2NBImCg5yZXBlYXRlZF9pbnQ2NBj/DyADKANSDXJlcGVhdGVkSW50NjQSJwoOcmVwZWF0ZWRfZmxvYXQY/v8PIAMoAlINcmVwZWF0ZWRGbG9hdBIpCg9yZXBlYXRlZF91aW50NjQY//8PIAMoBFIOcmVwZWF0ZWRVaW50NjQiKwobVGVzdENvbW1lbnRJbmplY3Rpb25NZXNzYWdlEgwKAWEYASABKAlSAWEiDAoKRm9vUmVxdWVzdCINCgtGb29SZXNwb25zZSISChBGb29DbGllbnRNZXNzYWdlIhIKEEZvb1NlcnZlck1lc3NhZ2UiDAoKQmFyUmVxdWVzdCINCgtCYXJSZXNwb25zZSISChBUZXN0RW1wdHlNZXNzYWdlIoIBCg5Db21tZW50TWVzc2FnZRISCgR0ZXh0GAEgASgJUgR0ZXh0GjcKFE5lc3RlZENvbW1lbnRNZXNzYWdlEh8KC25lc3RlZF90ZXh0GAEgASgJUgpuZXN0ZWRUZXh0IiMKEU5lc3RlZENvbW1lbnRFbnVtEg4KClpFUk9fVkFMVUUQACpZCgtGb3JlaWduRW51bRIXChNGT1JFSUdOX1VOU1BFQ0lGSUVEEAASDwoLRk9SRUlHTl9GT08QBBIPCgtGT1JFSUdOX0JBUhAFEg8KC0ZPUkVJR05fQkFaEAYqdQoUVGVzdEVudW1XaXRoRHVwVmFsdWUSKAokVEVTVF9FTlVNX1dJVEhfRFVQX1ZBTFVFX1VOU1BFQ0lGSUVEEAASCAoERk9PMRABEggKBEJBUjEQAhIHCgNCQVoQAxIICgRGT08yEAESCAoEQkFSMhACGgIQASqdAQoOVGVzdFNwYXJzZUVudW0SIAocVEVTVF9TUEFSU0VfRU5VTV9VTlNQRUNJRklFRBAAEgwKCFNQQVJTRV9BEHsSDgoIU1BBUlNFX0IQpucDEg8KCFNQQVJTRV9DELKxgAYSFQoIU1BBUlNFX0QQ8f//////////ARIVCghTUEFSU0VfRRC03vz///////8BEgwKCFNQQVJTRV9HEAIqHQoLQ29tbWVudEVudW0SDgoKWkVST19WQUxVRRAAMp0BCgtUZXN0U2VydmljZRJGCgNGb28SHi5wcm90b2J1Zl91bml0dGVzdDMuRm9vUmVxdWVzdBofLnByb3RvYnVmX3VuaXR0ZXN0My5Gb29SZXNwb25zZRJGCgNCYXISHi5wcm90b2J1Zl91bml0dGVzdDMuQmFyUmVxdWVzdBofLnByb3RvYnVmX3VuaXR0ZXN0My5CYXJSZXNwb25zZUIsQg1Vbml0dGVzdFByb3RvqgIaR29vZ2xlLlByb3RvYnVmLlRlc3RQcm90b3NK2n8KBxIFJACWAwEK/w0KAQwSAyQAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMrABIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIEEgcHJvdG8gZmlsZSB3ZSB3aWxsIHVzZSBmb3IgdW5pdCB0ZXN0aW5nLgoKCAoBCBIDJgA3CgkKAgglEgMmADcKCAoBCBIDKgAuCmAKAggIEgMqAC4aVSBPbmx5IHByZXNlbnQgc28gd2UgY2FuIHRlc3QgdGhhdCB3ZSBjYW4gcmVhZCBpdCAoYXMgYW4gZXhhbXBsZQogb2YgYSBub24tQyMgb3B0aW9uKQoKCQoCAwASAywANAoICgECEgMuABsKXAoCBAASBTIAggEBGk8gVGhpcyBwcm90byBpbmNsdWRlcyBldmVyeSB0eXBlIG9mIGZpZWxkIGluIGJvdGggc2luZ3VsYXIgYW5kIHJlcGVhdGVkCiBmb3Jtcy4KCgoKAwQAARIDMggUCgwKBAQAAwASBDMCOAMKDAoFBAADAAESAzMKFwrjAQoGBAADAAIAEgM3BBEa0wEgVGhlIGZpZWxkIG5hbWUgImIiIGZhaWxzIHRvIGNvbXBpbGUgaW4gcHJvdG8xIGJlY2F1c2UgaXQgY29uZmxpY3RzIHdpdGgKIGEgbG9jYWwgdmFyaWFibGUgbmFtZWQgImIiIGluIG9uZSBvZiB0aGUgZ2VuZXJhdGVkIG1ldGhvZHMuICBEb2guCiBUaGlzIGZpbGUgbmVlZHMgdG8gY29tcGlsZSBpbiBwcm90bzEgdG8gdGVzdCBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eS4KCg4KBwQAAwACAAUSAzcECQoOCgcEAAMAAgABEgM3CgwKDgoHBAADAAIAAxIDNw8QCgwKBAQABAASBDoCQAMKDAoFBAAEAAESAzoHEQoNCgYEAAQAAgASAzsEIAoOCgcEAAQAAgABEgM7BBsKDgoHBAAEAAIAAhIDOx4fCg0KBgQABAACARIDPAQMCg4KBwQABAACAQESAzwEBwoOCgcEAAQAAgECEgM8CgsKDQoGBAAEAAICEgM9BAwKDgoHBAAEAAICARIDPQQHCg4KBwQABAACAgISAz0KCwoNCgYEAAQAAgMSAz4EDAoOCgcEAAQAAgMBEgM+BAcKDgoHBAAEAAIDAhIDPgoLCigKBgQABAACBBIDPwQNIhkgSW50ZW50aW9uYWxseSBuZWdhdGl2ZS4KCg4KBwQABAACBAESAz8EBwoOCgcEAAQAAgQCEgM/CgwKFwoEBAACABIDQwIZGgogU2luZ3VsYXIKCgwKBQQAAgAFEgNDAgcKDAoFBAACAAESA0MIFAoMCgUEAAIAAxIDQxcYCgsKBAQAAgESA0QCGQoMCgUEAAIBBRIDRAIHCgwKBQQAAgEBEgNECBQKDAoFBAACAQMSA0QXGAoLCgQEAAICEgNFAhsKDAoFBAACAgUSA0UCCAoMCgUEAAICARIDRQkWCgwKBQQAAgIDEgNFGRoKCwoEBAACAxIDRgIbCgwKBQQAAgMFEgNGAggKDAoFBAACAwESA0YJFgoMCgUEAAIDAxIDRhkaCgsKBAQAAgQSA0cCGwoMCgUEAAIEBRIDRwIICgwKBQQAAgQBEgNHCRYKDAoFBAACBAMSA0cZGgoLCgQEAAIFEgNIAhsKDAoFBAACBQUSA0gCCAoMCgUEAAIFARIDSAkWCgwKBQQAAgUDEgNIGRoKCwoEBAACBhIDSQIdCgwKBQQAAgYFEgNJAgkKDAoFBAACBgESA0kKGAoMCgUEAAIGAxIDSRscCgsKBAQAAgcSA0oCHQoMCgUEAAIHBRIDSgIJCgwKBQQAAgcBEgNKChgKDAoFBAACBwMSA0obHAoLCgQEAAIIEgNLAh8KDAoFBAACCAUSA0sCCgoMCgUEAAIIARIDSwsaCgwKBQQAAggDEgNLHR4KCwoEBAACCRIDTAIgCgwKBQQAAgkFEgNMAgoKDAoFBAACCQESA0wLGgoMCgUEAAIJAxIDTB0fCgsKBAQAAgoSA00CGgoMCgUEAAIKBRIDTQIHCgwKBQQAAgoBEgNNCBQKDAoFBAACCgMSA00XGQoLCgQEAAILEgNOAhwKDAoFBAACCwUSA04CCAoMCgUEAAILARIDTgkWCgwKBQQAAgsDEgNOGRsKCwoEBAACDBIDTwIYCgwKBQQAAgwFEgNPAgYKDAoFBAACDAESA08HEgoMCgUEAAIMAxIDTxUXCgsKBAQAAg0SA1ACHAoMCgUEAAINBRIDUAIICgwKBQQAAg0BEgNQCRYKDAoFBAACDQMSA1AZGwoLCgQEAAIOEgNRAhoKDAoFBAACDgUSA1ECBwoMCgUEAAIOARIDUQgUCgwKBQQAAg4DEgNRFxkKCwoEBAACDxIDUwIrCgwKBQQAAg8GEgNTAg8KDAoFBAACDwESA1MQJQoMCgUEAAIPAxIDUygqCgsKBAQAAhASA1QCLQoMCgUEAAIQBhIDVAIQCgwKBQQAAhABEgNUEScKDAoFBAACEAMSA1QqLAoLCgQEAAIREgNVAkQKDAoFBAACEQYSA1UCKAoMCgUEAAIRARIDVSk+CgwKBQQAAhEDEgNVQUMKCwoEBAACEhIDVwIlCgwKBQQAAhIGEgNXAgwKDAoFBAACEgESA1cNHwoMCgUEAAISAxIDVyIkCgsKBAQAAhMSA1gCJwoMCgUEAAITBhIDWAINCgwKBQQAAhMBEgNYDiEKDAoFBAACEwMSA1gkJgoLCgQEAAIUEgNZAj4KDAoFBAACFAYSA1kCJQoMCgUEAAIUARIDWSY4CgwKBQQAAhQDEgNZOz0KNwoEBAACFRIEXAJdCRopIERlZmluZWQgaW4gdW5pdHRlc3RfaW1wb3J0X3B1YmxpYy5wcm90bwoKDAoFBAACFQYSA1wCLgoMCgUEAAIVARIDXC9LCgwKBQQAAhUDEgNdBggKFwoEBAACFhIDYAIlGgogUmVwZWF0ZWQKCgwKBQQAAhYEEgNgAgoKDAoFBAACFgUSA2ALEAoMCgUEAAIWARIDYBEfCgwKBQQAAhYDEgNgIiQKCwoEBAACFxIDYQIlCgwKBQQAAhcEEgNhAgoKDAoFBAACFwUSA2ELEAoMCgUEAAIXARIDYREfCgwKBQQAAhcDEgNhIiQKCwoEBAACGBIDYgInCgwKBQQAAhgEEgNiAgoKDAoFBAACGAUSA2ILEQoMCgUEAAIYARIDYhIhCgwKBQQAAhgDEgNiJCYKCwoEBAACGRIDYwInCgwKBQQAAhkEEgNjAgoKDAoFBAACGQUSA2MLEQoMCgUEAAIZARIDYxIhCgwKBQQAAhkDEgNjJCYKCwoEBAACGhIDZAInCgwKBQQAAhoEEgNkAgoKDAoFBAACGgUSA2QLEQoMCgUEAAIaARIDZBIhCgwKBQQAAhoDEgNkJCYKCwoEBAACGxIDZQInCgwKBQQAAhsEEgNlAgoKDAoFBAACGwUSA2ULEQoMCgUEAAIbARIDZRIhCgwKBQQAAhsDEgNlJCYKCwoEBAACHBIDZgIpCgwKBQQAAhwEEgNmAgoKDAoFBAACHAUSA2YLEgoMCgUEAAIcARIDZhMjCgwKBQQAAhwDEgNmJigKCwoEBAACHRIDZwIpCgwKBQQAAh0EEgNnAgoKDAoFBAACHQUSA2cLEgoMCgUEAAIdARIDZxMjCgwKBQQAAh0DEgNnJigKCwoEBAACHhIDaAIrCgwKBQQAAh4EEgNoAgoKDAoFBAACHgUSA2gLEwoMCgUEAAIeARIDaBQlCgwKBQQAAh4DEgNoKCoKCwoEBAACHxIDaQIrCgwKBQQAAh8EEgNpAgoKDAoFBAACHwUSA2kLEwoMCgUEAAIfARIDaRQlCgwKBQQAAh8DEgNpKCoKCwoEBAACIBIDagIlCgwKBQQAAiAEEgNqAgoKDAoFBAACIAUSA2oLEAoMCgUEAAIgARIDahEfCgwKBQQAAiADEgNqIiQKCwoEBAACIRIDawInCgwKBQQAAiEEEgNrAgoKDAoFBAACIQUSA2sLEQoMCgUEAAIhARIDaxIhCgwKBQQAAiEDEgNrJCYKCwoEBAACIhIDbAIjCgwKBQQAAiIEEgNsAgoKDAoFBAACIgUSA2wLDwoMCgUEAAIiARIDbBAdCgwKBQQAAiIDEgNsICIKCwoEBAACIxIDbQInCgwKBQQAAiMEEgNtAgoKDAoFBAACIwUSA20LEQoMCgUEAAIjARIDbRIhCgwKBQQAAiMDEgNtJCYKCwoEBAACJBIDbgIlCgwKBQQAAiQEEgNuAgoKDAoFBAACJAUSA24LEAoMCgUEAAIkARIDbhEfCgwKBQQAAiQDEgNuIiQKCwoEBAACJRIDcAI2CgwKBQQAAiUEEgNwAgoKDAoFBAACJQYSA3ALGAoMCgUEAAIlARIDcBkwCgwKBQQAAiUDEgNwMzUKCwoEBAACJhIDcQI4CgwKBQQAAiYEEgNxAgoKDAoFBAACJgYSA3ELGQoMCgUEAAImARIDcRoyCgwKBQQAAiYDEgNxNTcKCwoEBAACJxIDcgJPCgwKBQQAAicEEgNyAgoKDAoFBAACJwYSA3ILMQoMCgUEAAInARIDcjJJCgwKBQQAAicDEgNyTE4KCwoEBAACKBIDdAIwCgwKBQQAAigEEgN0AgoKDAoFBAACKAYSA3QLFQoMCgUEAAIoARIDdBYqCgwKBQQAAigDEgN0LS8KCwoEBAACKRIDdQIyCgwKBQQAAikEEgN1AgoKDAoFBAACKQYSA3ULFgoMCgUEAAIpARIDdRcsCgwKBQQAAikDEgN1LzEKCwoEBAACKhIDdgJJCgwKBQQAAioEEgN2AgoKDAoFBAACKgYSA3YLLgoMCgUEAAIqARIDdi9DCgwKBQQAAioDEgN2RkgKNwoEBAACKxIEeAJ5KhopIERlZmluZWQgaW4gdW5pdHRlc3RfaW1wb3J0X3B1YmxpYy5wcm90bwoKDAoFBAACKwQSA3gCCgoMCgUEAAIrBhIDeAs3CgwKBQQAAisBEgN5BiQKDAoFBAACKwMSA3knKQofCgQEAAgAEgV8AoEBAxoQIEZvciBvbmVvZiB0ZXN0CgoMCgUEAAgAARIDfAgTCgsKBAQAAiwSA30EHgoMCgUEAAIsBRIDfQQKCgwKBQQAAiwBEgN9CxcKDAoFBAACLAMSA30aHQoLCgQEAAItEgN+BC0KDAoFBAACLQYSA34EEQoMCgUEAAItARIDfhImCgwKBQQAAi0DEgN+KSwKCwoEBAACLhIDfwQeCgwKBQQAAi4FEgN/BAoKDAoFBAACLgESA38LFwoMCgUEAAIuAxIDfxodCgwKBAQAAi8SBIABBBwKDQoFBAACLwUSBIABBAkKDQoFBAACLwESBIABChUKDQoFBAACLwMSBIABGBsKQQoCBAESBoUBAIkBARozIFRoaXMgcHJvdG8gaW5jbHVkZXMgYSByZWN1cnNpdmVseSBuZXN0ZWQgbWVzc2FnZS4KCgsKAwQBARIEhQEIGgoMCgQEAQIAEgSGAQIfCg0KBQQBAgAGEgSGAQIUCg0KBQQBAgABEgSGARUaCg0KBQQBAgADEgSGAR0eCgwKBAQBAgESBIcBAhsKDQoFBAECAQYSBIcBAg4KDQoFBAECAQESBIcBDxYKDQoFBAECAQMSBIcBGRoKDAoEBAECAhIEiAECMQoNCgUEAQICBBIEiAECCgoNCgUEAQICBhIEiAELHQoNCgUEAQICARIEiAEeLAoNCgUEAQICAxIEiAEvMAoMCgIEAhIGiwEAjQEBCgsKAwQCARIEiwEIHAoMCgQEAgIAEgSMAQIxCg0KBQQCAgAFEgSMAQIHCg0KBQQCAgABEgSMAQgYCg0KBQQCAgADEgSMARscCg0KBQQCAgAIEgSMAR0wCg4KBgQCAgAIAxIEjAEeLwpbCgIEAxIGkQEAkwEBGk0gRGVmaW5lIHRoZXNlIGFmdGVyIFRlc3RBbGxUeXBlcyB0byBtYWtlIHN1cmUgdGhlIGNvbXBpbGVyIGNhbiBoYW5kbGUKIHRoYXQuCgoLCgMEAwESBJEBCBYKDAoEBAMCABIEkgECDgoNCgUEAwIABRIEkgECBwoNCgUEAwIAARIEkgEICQoNCgUEAwIAAxIEkgEMDQoMCgIFABIGlQEAmgEBCgsKAwUAARIElQEFEAoMCgQFAAIAEgSWAQIaCg0KBQUAAgABEgSWAQIVCg0KBQUAAgACEgSWARgZCgwKBAUAAgESBJcBAhIKDQoFBQACAQESBJcBAg0KDQoFBQACAQISBJcBEBEKDAoEBQACAhIEmAECEgoNCgUFAAICARIEmAECDQoNCgUFAAICAhIEmAEQEQoMCgQFAAIDEgSZAQISCg0KBQUAAgMBEgSZAQINCg0KBQUAAgMCEgSZARARCgwKAgQEEgacAQCfAQEKCwoDBAQBEgScAQgaCgsKAwQECRIEnQECGgoMCgQEBAkAEgSdAQsMCg0KBQQECQABEgSdAQsMCg0KBQQECQACEgSdAQsMCgwKBAQECQESBJ0BDhAKDQoFBAQJAQESBJ0BDhAKDQoFBAQJAQISBJ0BDhAKDAoEBAQJAhIEnQESGQoNCgUEBAkCARIEnQESEwoNCgUEBAkCAhIEnQEXGQoLCgMEBAoSBJ4BAhgKDAoEBAQKABIEngELEAoMCgQEBAoBEgSeARIXCk0KAgQFEgaiAQCkAQEaPyBUZXN0IHRoYXQgd2UgY2FuIHVzZSBOZXN0ZWRNZXNzYWdlIGZyb20gb3V0c2lkZSBUZXN0QWxsVHlwZXMuCgoLCgMEBQESBKIBCBkKDAoEBAUCABIEowECMAoNCgUEBQIABhIEowECHAoNCgUEBQIAARIEowEdKwoNCgUEBQIAAxIEowEuLwpICgIEBhIGpwEArAEBGjogVGVzdCB0aGF0IHJlYWxseSBsYXJnZSB0YWcgbnVtYmVycyBkb24ndCBicmVhayBhbnl0aGluZy4KCgsKAwQGARIEpwEIIAp9CgQEBgIAEgSqAQIOGm8gVGhlIGxhcmdlc3QgcG9zc2libGUgdGFnIG51bWJlciBpcyAyXjI4IC0gMSwgc2luY2UgdGhlIHdpcmUgZm9ybWF0IHVzZXMKIHRocmVlIGJpdHMgdG8gY29tbXVuaWNhdGUgd2lyZSB0eXBlLgoKDQoFBAYCAAUSBKoBAgcKDQoFBAYCAAESBKoBCAkKDQoFBAYCAAMSBKoBDA0KDAoEBAYCARIEqwECFwoNCgUEBgIBBRIEqwECBwoNCgUEBgIBARIEqwEICgoNCgUEBgIBAxIEqwENFgoMCgIEBxIGrgEAsQEBCgsKAwQHARIErgEIHAoMCgQEBwIAEgSvAQIdCg0KBQQHAgAGEgSvAQIWCg0KBQQHAgABEgSvARcYCg0KBQQHAgADEgSvARscCgwKBAQHAgESBLABAg4KDQoFBAcCAQUSBLABAgcKDQoFBAcCAQESBLABCAkKDQoFBAcCAQMSBLABDA0KMQoCBAgSBrQBALYBARojIFRlc3QgdGhhdCBtdXR1YWwgcmVjdXJzaW9uIHdvcmtzLgoKCwoDBAgBEgS0AQgcCgwKBAQIAgASBLUBAh4KDQoFBAgCAAYSBLUBAhYKDQoFBAgCAAESBLUBFxkKDQoFBAgCAAMSBLUBHB0KDAoCBAkSBrgBALsBAQoLCgMECQESBLgBCBwKDAoEBAkCABIEuQECHQoNCgUECQIABhIEuQECFgoNCgUECQIAARIEuQEXGAoNCgUECQIAAxIEuQEbHAoMCgQECQIBEgS6AQIbCg0KBQQJAgEFEgS6AQIHCg0KBQQJAgEBEgS6AQgWCg0KBQQJAgEDEgS6ARkaCgwKAgQKEga9AQC/AQEKCwoDBAoBEgS9AQgaCgwKBAQKAgASBL4BAiEKDQoFBAoCAAYSBL4BAhYKDQoFBAoCAAESBL4BFxwKDQoFBAoCAAMSBL4BHyAKSwoCBQESBsIBAMwBARo9IFRlc3QgYW4gZW51bSB0aGF0IGhhcyBtdWx0aXBsZSB2YWx1ZXMgd2l0aCB0aGUgc2FtZSBudW1iZXIuCgoLCgMFAQESBMIBBRkKCwoDBQEDEgTDAQIcCgwKBAUBAwISBMMBAhwKDAoEBQECABIExQECKwoNCgUFAQIAARIExQECJgoNCgUFAQIAAhIExQEpKgoMCgQFAQIBEgTHAQILCg0KBQUBAgEBEgTHAQIGCg0KBQUBAgECEgTHAQkKCgwKBAUBAgISBMgBAgsKDQoFBQECAgESBMgBAgYKDQoFBQECAgISBMgBCQoKDAoEBQECAxIEyQECCgoNCgUFAQIDARIEyQECBQoNCgUFAQIDAhIEyQEICQoMCgQFAQIEEgTKAQILCg0KBQUBAgQBEgTKAQIGCg0KBQUBAgQCEgTKAQkKCgwKBAUBAgUSBMsBAgsKDQoFBQECBQESBMsBAgYKDQoFBQECBQISBMsBCQoKOgoCBQISBs8BANkBARosIFRlc3QgYW4gZW51bSB3aXRoIGxhcmdlLCB1bm9yZGVyZWQgdmFsdWVzLgoKCwoDBQIBEgTPAQUTCgwKBAUCAgASBNABAiMKDQoFBQICAAESBNABAh4KDQoFBQICAAISBNABISIKDAoEBQICARIE0QECEQoNCgUFAgIBARIE0QECCgoNCgUFAgIBAhIE0QENEAoMCgQFAgICEgTSAQITCg0KBQUCAgIBEgTSAQIKCg0KBQUCAgICEgTSAQ0SCgwKBAUCAgMSBNMBAhYKDQoFBQICAwESBNMBAgoKDQoFBQICAwISBNMBDRUKDAoEBQICBBIE1AECEQoNCgUFAgIEARIE1AECCgoNCgUFAgIEAhIE1AENEAoMCgQFAgIFEgTVAQIUCg0KBQUCAgUBEgTVAQIKCg0KBQUCAgUCEgTVAQ0TClEKBAUCAgYSBNgBAg8aQyBJbiBwcm90bzMsIHZhbHVlIDAgbXVzdCBiZSB0aGUgZmlyc3Qgb25lIHNwZWNpZmllZAogU1BBUlNFX0YgPSAwOwoKDQoFBQICBgESBNgBAgoKDQoFBQICBgISBNgBDQ4KaAoCBAsSBt0BAOcBARpaIFRlc3QgbWVzc2FnZSB3aXRoIENhbWVsQ2FzZSBmaWVsZCBuYW1lcy4gIFRoaXMgdmlvbGF0ZXMgUHJvdG9jb2wgQnVmZmVyCiBzdGFuZGFyZCBzdHlsZS4KCgsKAwQLARIE3QEIHwoMCgQECwIAEgTeAQIbCg0KBQQLAgAFEgTeAQIHCg0KBQQLAgABEgTeAQgWCg0KBQQLAgADEgTeARkaCgwKBAQLAgESBN8BAhkKDQoFBAsCAQUSBN8BAggKDQoFBAsCAQESBN8BCRQKDQoFBAsCAQMSBN8BFxgKDAoEBAsCAhIE4AECHAoNCgUECwICBhIE4AECDQoNCgUECwICARIE4AEOFwoNCgUECwICAxIE4AEaGwoMCgQECwIDEgThAQIiCg0KBQQLAgMGEgThAQIQCg0KBQQLAgMBEgThAREdCg0KBQQLAgMDEgThASAhCgwKBAQLAgQSBOMBAiwKDQoFBAsCBAQSBOMBAgoKDQoFBAsCBAUSBOMBCxAKDQoFBAsCBAESBOMBEScKDQoFBAsCBAMSBOMBKisKDAoEBAsCBRIE5AECKgoNCgUECwIFBBIE5AECCgoNCgUECwIFBRIE5AELEQoNCgUECwIFARIE5AESJQoNCgUECwIFAxIE5AEoKQoMCgQECwIGEgTlAQItCg0KBQQLAgYEEgTlAQIKCg0KBQQLAgYGEgTlAQsWCg0KBQQLAgYBEgTlARcoCg0KBQQLAgYDEgTlASssCgwKBAQLAgcSBOYBAjQKDQoFBAsCBwQSBOYBAgoKDQoFBAsCBwYSBOYBCxkKDQoFBAsCBwESBOYBGi4KDQoFBAsCBwMSBOYBMTMKiwEKAgQMEgbrAQD4AQEafSBXZSBsaXN0IGZpZWxkcyBvdXQgb2Ygb3JkZXIsIHRvIGVuc3VyZSB0aGF0IHdlJ3JlIHVzaW5nIGZpZWxkIG51bWJlciBhbmQgbm90CiBmaWVsZCBpbmRleCB0byBkZXRlcm1pbmUgc2VyaWFsaXphdGlvbiBvcmRlci4KCgsKAwQMARIE6wEIGgoMCgQEDAIAEgTsAQIYCg0KBQQMAgAFEgTsAQIICg0KBQQMAgABEgTsAQkSCg0KBQQMAgADEgTsARUXCgwKBAQMAgESBO0BAhMKDQoFBAwCAQUSBO0BAgcKDQoFBAwCAQESBO0BCA4KDQoFBAwCAQMSBO0BERIKDAoEBAwCAhIE7gECFwoNCgUEDAICBRIE7gECBwoNCgUEDAICARIE7gEIEAoNCgUEDAICAxIE7gETFgoOCgQEDAMAEgbvAQL1AQMKDQoFBAwDAAESBO8BChcKDgoGBAwDAAIAEgTwAQQRCg8KBwQMAwACAAUSBPABBAkKDwoHBAwDAAIAARIE8AEKDAoPCgcEDAMAAgADEgTwAQ8QCuQBCgYEDAMAAgESBPQBBBEa0wEgVGhlIGZpZWxkIG5hbWUgImIiIGZhaWxzIHRvIGNvbXBpbGUgaW4gcHJvdG8xIGJlY2F1c2UgaXQgY29uZmxpY3RzIHdpdGgKIGEgbG9jYWwgdmFyaWFibGUgbmFtZWQgImIiIGluIG9uZSBvZiB0aGUgZ2VuZXJhdGVkIG1ldGhvZHMuICBEb2guCiBUaGlzIGZpbGUgbmVlZHMgdG8gY29tcGlsZSBpbiBwcm90bzEgdG8gdGVzdCBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eS4KCg8KBwQMAwACAQUSBPQBBAkKDwoHBAwDAAIBARIE9AEKDAoPCgcEDAMAAgEDEgT0AQ8QCgwKBAQMAgMSBPcBAiwKDQoFBAwCAwYSBPcBAg8KDQoFBAwCAwESBPcBECUKDQoFBAwCAwMSBPcBKCsKDAoCBA0SBvoBAPwBAQoLCgMEDQESBPoBCBkKDAoEBA0CABIE+wECIQoNCgUEDQIABhIE+wECEAoNCgUEDQIAARIE+wERHAoNCgUEDQIAAxIE+wEfIApICgIEDhIG/wEAgQIBGjogVGVzdCBTdHJpbmcgYW5kIEJ5dGVzOiBzdHJpbmcgaXMgZm9yIHZhbGlkIFVURi04IHN0cmluZ3MKCgsKAwQOARIE/wEIEQoMCgQEDgIAEgSAAgISCg0KBQQOAgAFEgSAAgIICg0KBQQOAgABEgSAAgkNCg0KBQQOAgADEgSAAhARCgwKAgQPEgaDAgCFAgEKCwoDBA8BEgSDAggSCgwKBAQPAgASBIQCAhsKDQoFBA8CAAQSBIQCAgoKDQoFBA8CAAUSBIQCCxEKDQoFBA8CAAESBIQCEhYKDQoFBA8CAAMSBIQCGRoKDAoCBBASBocCAIkCAQoLCgMEEAESBIcCCBAKDAoEBBACABIEiAICEQoNCgUEEAIABRIEiAICBwoNCgUEEAIAARIEiAIIDAoNCgUEEAIAAxIEiAIPEAoMCgIEERIGiwIAjQIBCgsKAwQRARIEiwIIEQoMCgQEEQIAEgSMAgIRCg0KBQQRAgAFEgSMAgIHCg0KBQQRAgABEgSMAggMCg0KBQQRAgADEgSMAg8QCk4KAgQSEgaQAgCSAgEaQCBUZXN0IGludDMyLCB1aW50MzIsIGludDY0LCB1aW50NjQsIGFuZCBib29sIGFyZSBhbGwgY29tcGF0aWJsZQoKCwoDBBIBEgSQAggUCgwKBAQSAgASBJECAhEKDQoFBBICAAUSBJECAgcKDQoFBBICAAESBJECCAwKDQoFBBICAAMSBJECDxAKDAoCBBMSBpQCAJYCAQoLCgMEEwESBJQCCBUKDAoEBBMCABIElQICEgoNCgUEEwIABRIElQICCAoNCgUEEwIAARIElQIJDQoNCgUEEwIAAxIElQIQEQoMCgIEFBIGmAIAmgIBCgsKAwQUARIEmAIIFAoMCgQEFAIAEgSZAgIRCg0KBQQUAgAFEgSZAgIHCg0KBQQUAgABEgSZAggMCg0KBQQUAgADEgSZAg8QCgwKAgQVEgacAgCeAgEKCwoDBBUBEgScAggVCgwKBAQVAgASBJ0CAhIKDQoFBBUCAAUSBJ0CAggKDQoFBBUCAAESBJ0CCQ0KDQoFBBUCAAMSBJ0CEBEKDAoCBBYSBqACAKICAQoLCgMEFgESBKACCBMKDAoEBBYCABIEoQICEAoNCgUEFgIABRIEoQICBgoNCgUEFgIAARIEoQIHCwoNCgUEFgIAAxIEoQIODwocCgIEFxIGpQIAqwIBGg4gVGVzdCBvbmVvZnMuCgoLCgMEFwESBKUCCBEKDgoEBBcIABIGpgICqgIDCg0KBQQXCAABEgSmAggLCgwKBAQXAgASBKcCBBYKDQoFBBcCAAUSBKcCBAkKDQoFBBcCAAESBKcCChEKDQoFBBcCAAMSBKcCFBUKDAoEBBcCARIEqAIEGgoNCgUEFwIBBRIEqAIECgoNCgUEFwIBARIEqAILFQoNCgUEFwIBAxIEqAIYGQoMCgQEFwICEgSpAgQhCg0KBQQXAgIGEgSpAgQQCg0KBQQXAgIBEgSpAhEcCg0KBQQXAgIDEgSpAh8gCi8KAgQYEgavAgC+AgEyISBUZXN0IG1lc3NhZ2VzIGZvciBwYWNrZWQgZmllbGRzCgoLCgMEGAESBK8CCBcKDAoEBBgCABIEsAICMwoNCgUEGAIABBIEsAICCgoNCgUEGAIABRIEsAILEAoNCgUEGAIAARIEsAIRHQoNCgUEGAIAAxIEsAIgIgoNCgUEGAIACBIEsAIjMgoOCgYEGAIACAISBLACJDEKDAoEBBgCARIEsQICMwoNCgUEGAIBBBIEsQICCgoNCgUEGAIBBRIEsQILEAoNCgUEGAIBARIEsQIRHQoNCgUEGAIBAxIEsQIgIgoNCgUEGAIBCBIEsQIjMgoOCgYEGAIBCAISBLECJDEKDAoEBBgCAhIEsgICNQoNCgUEGAICBBIEsgICCgoNCgUEGAICBRIEsgILEQoNCgUEGAICARIEsgISHwoNCgUEGAICAxIEsgIiJAoNCgUEGAICCBIEsgIlNAoOCgYEGAICCAISBLICJjMKDAoEBBgCAxIEswICNQoNCgUEGAIDBBIEswICCgoNCgUEGAIDBRIEswILEQoNCgUEGAIDARIEswISHwoNCgUEGAIDAxIEswIiJAoNCgUEGAIDCBIEswIlNAoOCgYEGAIDCAISBLMCJjMKDAoEBBgCBBIEtAICNQoNCgUEGAIEBBIEtAICCgoNCgUEGAIEBRIEtAILEQoNCgUEGAIEARIEtAISHwoNCgUEGAIEAxIEtAIiJAoNCgUEGAIECBIEtAIlNAoOCgYEGAIECAISBLQCJjMKDAoEBBgCBRIEtQICNQoNCgUEGAIFBBIEtQICCgoNCgUEGAIFBRIEtQILEQoNCgUEGAIFARIEtQISHwoNCgUEGAIFAxIEtQIiJAoNCgUEGAIFCBIEtQIlNAoOCgYEGAIFCAISBLUCJjMKDAoEBBgCBhIEtgICNwoNCgUEGAIGBBIEtgICCgoNCgUEGAIGBRIEtgILEgoNCgUEGAIGARIEtgITIQoNCgUEGAIGAxIEtgIkJgoNCgUEGAIGCBIEtgInNgoOCgYEGAIGCAISBLYCKDUKDAoEBBgCBxIEtwICNwoNCgUEGAIHBBIEtwICCgoNCgUEGAIHBRIEtwILEgoNCgUEGAIHARIEtwITIQoNCgUEGAIHAxIEtwIkJgoNCgUEGAIHCBIEtwInNgoOCgYEGAIHCAISBLcCKDUKDAoEBBgCCBIEuAICOQoNCgUEGAIIBBIEuAICCgoNCgUEGAIIBRIEuAILEwoNCgUEGAIIARIEuAIUIwoNCgUEGAIIAxIEuAImKAoNCgUEGAIICBIEuAIpOAoOCgYEGAIICAISBLgCKjcKDAoEBBgCCRIEuQICOQoNCgUEGAIJBBIEuQICCgoNCgUEGAIJBRIEuQILEwoNCgUEGAIJARIEuQIUIwoNCgUEGAIJAxIEuQImKAoNCgUEGAIJCBIEuQIpOAoOCgYEGAIJCAISBLkCKjcKDAoEBBgCChIEugICNAoNCgUEGAIKBBIEugICCgoNCgUEGAIKBRIEugILEAoNCgUEGAIKARIEugIRHQoNCgUEGAIKAxIEugIgIwoNCgUEGAIKCBIEugIkMwoOCgYEGAIKCAISBLoCJTIKDAoEBBgCCxIEuwICNgoNCgUEGAILBBIEuwICCgoNCgUEGAILBRIEuwILEQoNCgUEGAILARIEuwISHwoNCgUEGAILAxIEuwIiJQoNCgUEGAILCBIEuwImNQoOCgYEGAILCAISBLsCJzQKDAoEBBgCDBIEvAICMgoNCgUEGAIMBBIEvAICCgoNCgUEGAIMBRIEvAILDwoNCgUEGAIMARIEvAIQGwoNCgUEGAIMAxIEvAIeIQoNCgUEGAIMCBIEvAIiMQoOCgYEGAIMCAISBLwCIzAKDAoEBBgCDRIEvQICOQoNCgUEGAINBBIEvQICCgoNCgUEGAINBhIEvQILFgoNCgUEGAINARIEvQIXIgoNCgUEGAINAxIEvQIlKAoNCgUEGAINCBIEvQIpOAoOCgYEGAINCAISBL0CKjcKjQEKAgQZEgbCAgDRAgEafyBBIG1lc3NhZ2Ugd2l0aCB0aGUgc2FtZSBmaWVsZHMgYXMgVGVzdFBhY2tlZFR5cGVzLCBidXQgd2l0aG91dCBwYWNraW5nLiBVc2VkCiB0byB0ZXN0IHBhY2tlZCA8LT4gdW5wYWNrZWQgd2lyZSBjb21wYXRpYmlsaXR5LgoKCwoDBBkBEgTCAggZCgwKBAQZAgASBMMCAjYKDQoFBBkCAAQSBMMCAgoKDQoFBBkCAAUSBMMCCxAKDQoFBBkCAAESBMMCER8KDQoFBBkCAAMSBMMCIiQKDQoFBBkCAAgSBMMCJTUKDgoGBBkCAAgCEgTDAiY0CgwKBAQZAgESBMQCAjYKDQoFBBkCAQQSBMQCAgoKDQoFBBkCAQUSBMQCCxAKDQoFBBkCAQESBMQCER8KDQoFBBkCAQMSBMQCIiQKDQoFBBkCAQgSBMQCJTUKDgoGBBkCAQgCEgTEAiY0CgwKBAQZAgISBMUCAjgKDQoFBBkCAgQSBMUCAgoKDQoFBBkCAgUSBMUCCxEKDQoFBBkCAgESBMUCEiEKDQoFBBkCAgMSBMUCJCYKDQoFBBkCAggSBMUCJzcKDgoGBBkCAggCEgTFAig2CgwKBAQZAgMSBMYCAjgKDQoFBBkCAwQSBMYCAgoKDQoFBBkCAwUSBMYCCxEKDQoFBBkCAwESBMYCEiEKDQoFBBkCAwMSBMYCJCYKDQoFBBkCAwgSBMYCJzcKDgoGBBkCAwgCEgTGAig2CgwKBAQZAgQSBMcCAjgKDQoFBBkCBAQSBMcCAgoKDQoFBBkCBAUSBMcCCxEKDQoFBBkCBAESBMcCEiEKDQoFBBkCBAMSBMcCJCYKDQoFBBkCBAgSBMcCJzcKDgoGBBkCBAgCEgTHAig2CgwKBAQZAgUSBMgCAjgKDQoFBBkCBQQSBMgCAgoKDQoFBBkCBQUSBMgCCxEKDQoFBBkCBQESBMgCEiEKDQoFBBkCBQMSBMgCJCYKDQoFBBkCBQgSBMgCJzcKDgoGBBkCBQgCEgTIAig2CgwKBAQZAgYSBMkCAjoKDQoFBBkCBgQSBMkCAgoKDQoFBBkCBgUSBMkCCxIKDQoFBBkCBgESBMkCEyMKDQoFBBkCBgMSBMkCJigKDQoFBBkCBggSBMkCKTkKDgoGBBkCBggCEgTJAio4CgwKBAQZAgcSBMoCAjoKDQoFBBkCBwQSBMoCAgoKDQoFBBkCBwUSBMoCCxIKDQoFBBkCBwESBMoCEyMKDQoFBBkCBwMSBMoCJigKDQoFBBkCBwgSBMoCKTkKDgoGBBkCBwgCEgTKAio4CgwKBAQZAggSBMsCAjwKDQoFBBkCCAQSBMsCAgoKDQoFBBkCCAUSBMsCCxMKDQoFBBkCCAESBMsCFCUKDQoFBBkCCAMSBMsCKCoKDQoFBBkCCAgSBMsCKzsKDgoGBBkCCAgCEgTLAiw6CgwKBAQZAgkSBMwCAjwKDQoFBBkCCQQSBMwCAgoKDQoFBBkCCQUSBMwCCxMKDQoFBBkCCQESBMwCFCUKDQoFBBkCCQMSBMwCKCoKDQoFBBkCCQgSBMwCKzsKDgoGBBkCCQgCEgTMAiw6CgwKBAQZAgoSBM0CAjcKDQoFBBkCCgQSBM0CAgoKDQoF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ZGV0YWNoZWQgY29tbWVudCAyCgoLCgMEIwESBIEDCBYKMAoEBCMDABIGgwMChgMDGiAgTGVhZGluZyBuZXN0ZWQgbWVzc2FnZSBjb21tZW50CgoNCgUEIwMAARIEgwMKHgo2CgYEIwMAAgASBIUDBBsaJiBMZWFkaW5nIG5lc3RlZCBtZXNzYWdlIGZpZWxkIGNvbW1lbnQKCg8KBwQjAwACAAUSBIUDBAoKDwoHBCMDAAIAARIEhQMLFgoPCgcEIwMAAgADEgSFAxkaCi0KBAQjBAASBokDAowDAxodIExlYWRpbmcgbmVzdGVkIGVudW0gY29tbWVudAoKDQoFBCMEAAESBIkDBxgKJAoGBCMEAAIAEgSLAwQTGhQgWmVybyB2YWx1ZSBjb21tZW50CgoPCgcEIwQAAgABEgSLAwQOCg8KBwQjBAACAAISBIsDERIKPwoEBCMCABIEjwMCEhoXIExlYWRpbmcgZmllbGQgY29tbWVudAoiGCBUcmFpbGluZyBmaWVsZCBjb21tZW50CgoNCgUEIwIABRIEjwMCCAoNCgUEIwIAARIEjwMJDQoNCgUEIwIAAxIEjwMQEQokCgIFAxIGkwMAlgMBGhYgTGVhZGluZyBlbnVtIGNvbW1lbnQKCgsKAwUDARIEkwMFEAoiCgQFAwIAEgSVAwIRGhQgWmVybyB2YWx1ZSBjb21tZW50CgoNCgUFAwIAARIElQMCDAoNCgUFAwIAAhIElQMPEGIGcHJvdG8zCuFYCidjc2hhcnAvcHJvdG9zL21hcF91bml0dGVzdF9wcm90bzMucHJvdG8SEnByb3RvYnVmX3VuaXR0ZXN0MxojY3NoYXJwL3Byb3Rvcy91bml0dGVzdF9wcm90bzMucHJvdG8imRYKB1Rlc3RNYXASVgoPbWFwX2ludDMyX2ludDMyGAEgAygLMi4ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwSW50MzJJbnQzMkVudHJ5Ug1tYXBJbnQzMkludDMyElYKD21hcF9pbnQ2NF9pbnQ2NBgCIAMoCzIuLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEludDY0SW50NjRFbnRyeVINbWFwSW50NjRJbnQ2NBJcChFtYXBfdWludDMyX3VpbnQzMhgDIAMoCzIwLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcFVpbnQzMlVpbnQzMkVudHJ5Ug9tYXBVaW50MzJVaW50MzISXAoRbWFwX3VpbnQ2NF91aW50NjQYBCADKAsyMC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBVaW50NjRVaW50NjRFbnRyeVIPbWFwVWludDY0VWludDY0ElwKEW1hcF9zaW50MzJfc2ludDMyGAUgAygLMjAucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwU2ludDMyU2ludDMyRW50cnlSD21hcFNpbnQzMlNpbnQzMhJcChFtYXBfc2ludDY0X3NpbnQ2NBgGIAMoCzIwLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcFNpbnQ2NFNpbnQ2NEVudHJ5Ug9tYXBTaW50NjRTaW50NjQSYgoTbWFwX2ZpeGVkMzJfZml4ZWQzMhgHIAMoCzIyLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEZpeGVkMzJGaXhlZDMyRW50cnlSEW1hcEZpeGVkMzJGaXhlZDMyEmIKE21hcF9maXhlZDY0X2ZpeGVkNjQYCCADKAsyMi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5UhFtYXBGaXhlZDY0Rml4ZWQ2NBJoChVtYXBfc2ZpeGVkMzJfc2ZpeGVkMzIYCSADKAsyNC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBTZml4ZWQzMlNmaXhlZDMyRW50cnlSE21hcFNmaXhlZDMyU2ZpeGVkMzISaAoVbWFwX3NmaXhlZDY0X3NmaXhlZDY0GAogAygLMjQucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5UhNtYXBTZml4ZWQ2NFNmaXhlZDY0ElYKD21hcF9pbnQzMl9mbG9hdBgLIAMoCzIuLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEludDMyRmxvYXRFbnRyeVINbWFwSW50MzJGbG9hdBJZChBtYXBfaW50MzJfZG91YmxlGAwgAygLMi8ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwSW50MzJEb3VibGVFbnRyeVIObWFwSW50MzJEb3VibGUSUAoNbWFwX2Jvb2xfYm9vbBgNIAMoCzIsLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEJvb2xCb29sRW50cnlSC21hcEJvb2xCb29sElwKEW1hcF9zdHJpbmdfc3RyaW5nGA4gAygLMjAucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwU3RyaW5nU3RyaW5nRW50cnlSD21hcFN0cmluZ1N0cmluZxJWCg9tYXBfaW50MzJfYnl0ZXMYDyADKAsyLi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBJbnQzMkJ5dGVzRW50cnlSDW1hcEludDMyQnl0ZXMSUwoObWFwX2ludDMyX2VudW0YECADKAsyLS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBJbnQzMkVudW1FbnRyeVIMbWFwSW50MzJFbnVtEnIKGW1hcF9pbnQzMl9mb3JlaWduX21lc3NhZ2UYESADKAsyNy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBJbnQzMkZvcmVpZ25NZXNzYWdlRW50cnlSFm1hcEludDMyRm9yZWlnbk1lc3NhZ2UaQAoSTWFwSW50MzJJbnQzMkVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEaQAoSTWFwSW50NjRJbnQ2NEVudHJ5EhAKA2tleRgBIAEoA1IDa2V5EhQKBXZhbHVlGAIgASgDUgV2YWx1ZToCOAEaQgoUTWFwVWludDMyVWludDMyRW50cnkSEAoDa2V5GAEgASgNUgNrZXkSFAoFdmFsdWUYAiABKA1SBXZhbHVlOgI4ARpCChRNYXBVaW50NjRVaW50NjRFbnRyeRIQCgNrZXkYASABKARSA2tleRIUCgV2YWx1ZRgCIAEoBFIFdmFsdWU6AjgBGkIKFE1hcFNpbnQzMlNpbnQzMkVudHJ5EhAKA2tleRgBIAEoEVIDa2V5EhQKBXZhbHVlGAIgASgRUgV2YWx1ZToCOAEaQgoUTWFwU2ludDY0U2ludDY0RW50cnkSEAoDa2V5GAEgASgSUgNrZXkSFAoFdmFsdWUYAiABKBJSBXZhbHVlOgI4ARpEChZNYXBGaXhlZDMyRml4ZWQzMkVudHJ5EhAKA2tleRgBIAEoB1IDa2V5EhQKBXZhbHVlGAIgASgHUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRIQCgNrZXkYASABKAZSA2tleRIUCgV2YWx1ZRgCIAEoBlIFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRIQCgNrZXkYASABKA9SA2tleRIUCgV2YWx1ZRgCIAEoD1IFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRIQCgNrZXkYASABKBBSA2tleRIUCgV2YWx1ZRgCIAEoEFIFdmFsdWU6AjgBGkAKEk1hcEludDMyRmxvYXRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBGkEKE01hcEludDMyRG91YmxlRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAFSBXZhbHVlOgI4ARo+ChBNYXBCb29sQm9vbEVudHJ5EhAKA2tleRgBIAEoCFIDa2V5EhQKBXZhbHVlGAIgASgIUgV2YWx1ZToCOAEaQgoUTWFwU3RyaW5nU3RyaW5nRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4ARpAChJNYXBJbnQzMkJ5dGVzRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAxSBXZhbHVlOgI4ARpcChFNYXBJbnQzMkVudW1FbnRyeRIQCgNrZXkYASABKAVSA2tleRIxCgV2YWx1ZRgCIAEoDjIbLnByb3RvYnVmX3VuaXR0ZXN0My5NYXBFbnVtUgV2YWx1ZToCOAEabQobTWFwSW50MzJGb3JlaWduTWVzc2FnZUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjgKBXZhbHVlGAIgASgLMiIucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25NZXNzYWdlUgV2YWx1ZToCOAEiSwoRVGVzdE1hcFN1Ym1lc3NhZ2USNgoIdGVzdF9tYXAYASABKAsyGy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcFIHdGVzdE1hcCLbAQoOVGVzdE1lc3NhZ2VNYXASYwoRbWFwX2ludDMyX21lc3NhZ2UYASADKAsyNy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1lc3NhZ2VNYXAuTWFwSW50MzJNZXNzYWdlRW50cnlSD21hcEludDMyTWVzc2FnZRpkChRNYXBJbnQzMk1lc3NhZ2VFbnRyeRIQCgNrZXkYASABKAVSA2tleRI2CgV2YWx1ZRgCIAEoCzIgLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXNSBXZhbHVlOgI4ASKJAgoPVGVzdFNhbWVUeXBlTWFwEkEKBG1hcDEYASADKAsyLS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdFNhbWVUeXBlTWFwLk1hcDFFbnRyeVIEbWFwMRJBCgRtYXAyGAIgAygLMi0ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RTYW1lVHlwZU1hcC5NYXAyRW50cnlSBG1hcDIaNwoJTWFwMUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEaNwoJTWFwMkVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEirRQKDFRlc3RBcmVuYU1hcBJbCg9tYXBfaW50MzJfaW50MzIYASADKAsyMy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcEludDMySW50MzJFbnRyeVINbWFwSW50MzJJbnQzMhJbCg9tYXBfaW50NjRfaW50NjQYAiADKAsyMy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcEludDY0SW50NjRFbnRyeVINbWFwSW50NjRJbnQ2NBJhChFtYXBfdWludDMyX3VpbnQzMhgDIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwVWludDMyVWludDMyRW50cnlSD21hcFVpbnQzMlVpbnQzMhJhChFtYXBfdWludDY0X3VpbnQ2NBgEIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwVWludDY0VWludDY0RW50cnlSD21hcFVpbnQ2NFVpbnQ2NBJhChFtYXBfc2ludDMyX3NpbnQzMhgFIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwU2ludDMyU2ludDMyRW50cnlSD21hcFNpbnQzMlNpbnQzMhJhChFtYXBfc2ludDY0X3NpbnQ2NBgGIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwU2ludDY0U2ludDY0RW50cnlSD21hcFNpbnQ2NFNpbnQ2NBJnChNtYXBfZml4ZWQzMl9maXhlZDMyGAcgAygLMjcucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBGaXhlZDMyRml4ZWQzMkVudHJ5UhFtYXBGaXhlZDMyRml4ZWQzMhJnChNtYXBfZml4ZWQ2NF9maXhlZDY0GAggAygLMjcucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5UhFtYXBGaXhlZDY0Rml4ZWQ2NBJtChVtYXBfc2ZpeGVkMzJfc2ZpeGVkMzIYCSADKAsyOS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeVITbWFwU2ZpeGVkMzJTZml4ZWQzMhJtChVtYXBfc2ZpeGVkNjRfc2ZpeGVkNjQYCiADKAsyOS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeVITbWFwU2ZpeGVkNjRTZml4ZWQ2NBJbCg9tYXBfaW50MzJfZmxvYXQYCyADKAsyMy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcEludDMyRmxvYXRFbnRyeVINbWFwSW50MzJGbG9hdBJeChBtYXBfaW50MzJfZG91YmxlGAwgAygLMjQucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBJbnQzMkRvdWJsZUVudHJ5Ug5tYXBJbnQzMkRvdWJsZRJVCg1tYXBfYm9vbF9ib29sGA0gAygLMjEucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBCb29sQm9vbEVudHJ5UgttYXBCb29sQm9vbBJYCg5tYXBfaW50MzJfZW51bRgOIAMoCzIyLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwSW50MzJFbnVtRW50cnlSDG1hcEludDMyRW51bRJ3ChltYXBfaW50MzJfZm9yZWlnbl9tZXNzYWdlGA8gAygLMjwucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBJbnQzMkZvcmVpZ25NZXNzYWdlRW50cnlSFm1hcEludDMyRm9yZWlnbk1lc3NhZ2UaQAoSTWFwSW50MzJJbnQzMkVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEaQAoSTWFwSW50NjRJbnQ2NEVudHJ5EhAKA2tleRgBIAEoA1IDa2V5EhQKBXZhbHVlGAIgASgDUgV2YWx1ZToCOAEaQgoUTWFwVWludDMyVWludDMyRW50cnkSEAoDa2V5GAEgASgNUgNrZXkSFAoFdmFsdWUYAiABKA1SBXZhbHVlOgI4ARpCChRNYXBVaW50NjRVaW50NjRFbnRyeRIQCgNrZXkYASABKARSA2tleRIUCgV2YWx1ZRgCIAEoBFIFdmFsdWU6AjgBGkIKFE1hcFNpbnQzMlNpbnQzMkVudHJ5EhAKA2tleRgBIAEoEVIDa2V5EhQKBXZhbHVlGAIgASgRUgV2YWx1ZToCOAEaQgoUTWFwU2ludDY0U2ludDY0RW50cnkSEAoDa2V5GAEgASgSUgNrZXkSFAoFdmFsdWUYAiABKBJSBXZhbHVlOgI4ARpEChZNYXBGaXhlZDMyRml4ZWQzMkVudHJ5EhAKA2tleRgBIAEoB1IDa2V5EhQKBXZhbHVlGAIgASgHUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRIQCgNrZXkYASABKAZSA2tleRIUCgV2YWx1ZRgCIAEoBlIFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRIQCgNrZXkYASABKA9SA2tleRIUCgV2YWx1ZRgCIAEoD1IFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRIQCgNrZXkYASABKBBSA2tleRIUCgV2YWx1ZRgCIAEoEFIFdmFsdWU6AjgBGkAKEk1hcEludDMyRmxvYXRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBGkEKE01hcEludDMyRG91YmxlRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAFSBXZhbHVlOgI4ARo+ChBNYXBCb29sQm9vbEVudHJ5EhAKA2tleRgBIAEoCFIDa2V5EhQKBXZhbHVlGAIgASgIUgV2YWx1ZToCOAEaXAoRTWFwSW50MzJFbnVtRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMQoFdmFsdWUYAiABKA4yGy5wcm90b2J1Zl91bml0dGVzdDMuTWFwRW51bVIFdmFsdWU6AjgBGm0KG01hcEludDMyRm9yZWlnbk1lc3NhZ2VFbnRyeRIQCgNrZXkYASABKAVSA2tleRI4CgV2YWx1ZRgCIAEoCzIiLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduTWVzc2FnZVIFdmFsdWU6AjgBIvgBCh9NZXNzYWdlQ29udGFpbmluZ0VudW1DYWxsZWRUeXBlElEKBHR5cGUYASADKAsyPS5wcm90b2J1Zl91bml0dGVzdDMuTWVzc2FnZUNvbnRhaW5pbmdFbnVtQ2FsbGVkVHlwZS5UeXBlRW50cnlSBHR5cGUabAoJVHlwZUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EkkKBXZhbHVlGAIgASgLMjMucHJvdG9idWZfdW5pdHRlc3QzLk1lc3NhZ2VDb250YWluaW5nRW51bUNhbGxlZFR5cGVSBXZhbHVlOgI4ASIUCgRUeXBlEgwKCFRZUEVfRk9PEAAisQEKH01lc3NhZ2VDb250YWluaW5nTWFwQ2FsbGVkRW50cnkSVAoFZW50cnkYASADKAsyPi5wcm90b2J1Zl91bml0dGVzdDMuTWVzc2FnZUNvbnRhaW5pbmdNYXBDYWxsZWRFbnRyeS5FbnRyeUVudHJ5UgVlbnRyeRo4CgpFbnRyeUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEqPwoHTWFwRW51bRIQCgxNQVBfRU5VTV9GT08QABIQCgxNQVBfRU5VTV9CQVIQARIQCgxNQVBfRU5VTV9CQVoQAkIdqgIaR29vZ2xlLlByb3RvYnVmLlRlc3RQcm90b3NK4iQKBhIEJABzAQqbDwoBDBIDJAASGswCIFRoaXMgZmlsZSBpcyBtb3N0bHkgZXF1aXZhbGVudCB0byBtYXBfdW5pdHRlc3QucHJvdG8sIGJ1dCBpbXBvcnRzCiB1bml0dGVzdF9wcm90bzMucHJvdG8gaW5zdGVhZCBvZiB1bml0dGVzdC5wcm90bywgc28gdGhhdCBpdCBvbmx5CiB1c2VzIHByb3RvMyBtZXNzYWdlcy4gVGhpcyBtYWtlcyBpdCBzdWl0YWJsZSBmb3IgdGVzdGluZwogaW1wbGVtZW50YXRpb25zIHdoaWNoIG9ubHkgc3VwcG9ydCBwcm90bzMuCiBUaGUgVGVzdFJlcXVpcmVkTWVzc2FnZU1hcCBtZXNzYWdlIGhhcyBiZWVuIHJlbW92ZWQgYXMgdGhlcmUgYXJlIG5vCiByZXF1aXJlZCBmaWVsZHMgaW4gcHJvdG8zLgoywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS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DgoHBAUEAAIAARIDawQMCg4KBwQFBAACAAISA2sPEAoLCgQEBQIAEgNtAjcKDAoFBAUCAAYSA20CLQoMCgUEBQIAARIDbS4yCgwKBQQFAgADEgNtNTYKSgoCBAYSBHEAcwEaPiBQcmV2aW91c2x5LCBtZXNzYWdlIGNhbm5vdCBjb250YWluIG1hcCBmaWVsZCBjYWxsZWQgImVudHJ5Ii4KCgoKAwQGARIDcQgnCgsKBAQGAgASA3ICHgoMCgUEBgIABhIDcgITCgwKBQQGAgABEgNyFBkKDAoFBAYCAAMSA3IcHWIGcHJvdG8zCv4iChxnb29nbGUvcHJvdG9idWYvc3RydWN0LnByb3RvEg9nb29nbGUucHJvdG9idWYimAEKBlN0cnVjdBI7CgZmaWVsZHMYASADKAsyIy5nb29nbGUucHJvdG9idWYuU3RydWN0LkZpZWxkc0VudHJ5UgZmaWVsZHMaUQoLRmllbGRzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSLAoFdmFsdWUYAiABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWVSBXZhbHVlOgI4ASKyAgoFVmFsdWUSOwoKbnVsbF92YWx1ZRgBIAEoDjIaLmdvb2dsZS5wcm90b2J1Zi5OdWxsVmFsdWVIAFIJbnVsbFZhbHVlEiMKDG51bWJlcl92YWx1ZRgCIAEoAUgAUgtudW1iZXJWYWx1ZRIjCgxzdHJpbmdfdmFsdWUYAyABKAlIAFILc3RyaW5nVmFsdWUSHwoKYm9vbF92YWx1ZRgEIAEoCEgAUglib29sVmFsdWUSPAoMc3RydWN0X3ZhbHVlGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAUgtzdHJ1Y3RWYWx1ZRI7CgpsaXN0X3ZhbHVlGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLkxpc3RWYWx1ZUgAUglsaXN0VmFsdWVCBgoEa2luZCI7CglMaXN0VmFsdWUSLgoGdmFsdWVzGAEgAygLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlUgZ2YWx1ZXMqGwoJTnVsbFZhbHVlEg4KCk5VTExfVkFMVUUQAEJ/ChNjb20uZ29vZ2xlLnByb3RvYnVmQgtTdHJ1Y3RQcm90b1ABWi9nb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi9zdHJ1Y3RwYvgBAaICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0qZHQoGEgQeAF4BCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgAfCgkKAggfEgMiAB8KCAoBCBIDIwBGCgkKAggLEgMjAEYKCAoBCBIDJAAsCgkKAggBEgMkACwKCAoBCBIDJQAsCgkKAggIEgMlACwKCAoBCBIDJgAiCgkKAggKEgMmACIKCAoBCBIDJwAhCgkKAggkEgMnACEKCAoBCBIDKAA7CgkKAgglEgMoADsKswMKAgQAEgQyADUBGqYDIGBTdHJ1Y3RgIHJlcHJlc2VudHMgYSBzdHJ1Y3R1cmVkIGRhdGEgdmFsdWUsIGNvbnNpc3Rpbmcgb2YgZmllbGRzCiB3aGljaCBtYXAgdG8gZHluYW1pY2FsbHkgdHlwZWQgdmFsdWVzLiBJbiBzb21lIGxhbmd1YWdlcywgYFN0cnVjdGAKIG1pZ2h0IGJlIHN1cHBvcnRlZCBieSBhIG5hdGl2ZSByZXByZXNlbnRhdGlvbi4gRm9yIGV4YW1wbGUsIGluCiBzY3JpcHRpbmcgbGFuZ3VhZ2VzIGxpa2UgSlMgYSBzdHJ1Y3QgaXMgcmVwcmVzZW50ZWQgYXMgYW4KIG9iamVjdC4gVGhlIGRldGFpbHMgb2YgdGhhdCByZXByZXNlbnRhdGlvbiBhcmUgZGVzY3JpYmVkIHRvZ2V0aGVyCiB3aXRoIHRoZSBwcm90byBzdXBwb3J0IGZvciB0aGUgbGFuZ3VhZ2UuCgogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIGBTdHJ1Y3RgIGlzIEpTT04gb2JqZWN0LgoKCgoDBAABEgMyCA4KOQoEBAACABIDNAIgGiwgVW5vcmRlcmVkIG1hcCBvZiBkeW5hbWljYWxseSB0eXBlZCB2YWx1ZXMuCgoMCgUEAAIABhIDNAIUCgwKBQQAAgABEgM0FRsKDAoFBAACAAMSAzQeHwrEAgoCBAESBD0ATQEatwIgYFZhbHVlYCByZXByZXNlbnRzIGEgZHluYW1pY2FsbHkgdHlwZWQgdmFsdWUgd2hpY2ggY2FuIGJlIGVpdGhlcgogbnVsbCwgYSBudW1iZXIsIGEgc3RyaW5nLCBhIGJvb2xlYW4sIGEgcmVjdXJzaXZlIHN0cnVjdCB2YWx1ZSwgb3IgYQogbGlzdCBvZiB2YWx1ZXMuIEEgcHJvZHVjZXIgb2YgdmFsdWUgaXMgZXhwZWN0ZWQgdG8gc2V0IG9uZSBvZiB0aGVzZQogdmFyaWFudHMuIEFic2VuY2Ugb2YgYW55IHZhcmlhbnQgaW5kaWNhdGVzIGFuIGVycm9yLgoKIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIGZvciBgVmFsdWVgIGlzIEpTT04gdmFsdWUuCgoKCgMEAQESAz0IDQoiCgQEAQgAEgQ/AkwDGhQgVGhlIGtpbmQgb2YgdmFsdWUuCgoMCgUEAQgAARIDPwgMCicKBAQBAgASA0EEHRoaIFJlcHJlc2VudHMgYSBudWxsIHZhbHVlLgoKDAoFBAECAAYSA0EEDQoMCgUEAQIAARIDQQ4YCgwKBQQBAgADEgNBGxwKKQoEBAECARIDQwQcGhwgUmVwcmVzZW50cyBhIGRvdWJsZSB2YWx1ZS4KCgwKBQQBAgEFEgNDBAoKDAoFBAECAQESA0MLFwoMCgUEAQIBAxIDQxobCikKBAQBAgISA0UEHBocIFJlcHJlc2VudHMgYSBzdHJpbmcgdmFsdWUuCgoMCgUEAQICBRIDRQQKCgwKBQQBAgIBEgNFCxcKDAoFBAECAgMSA0UaGwoqCgQEAQIDEgNHBBgaHSBSZXByZXNlbnRzIGEgYm9vbGVhbiB2YWx1ZS4KCgwKBQQBAgMFEgNHBAgKDAoFBAECAwESA0cJEwoMCgUEAQIDAxIDRxYXCi0KBAQBAgQSA0kEHBogIFJlcHJlc2VudHMgYSBzdHJ1Y3R1cmVkIHZhbHVlLgoKDAoFBAECBAYSA0kECgoMCgUEAQIEARIDSQsXCgwKBQQBAgQDEgNJGhsKLQoEBAECBRIDSwQdGiAgUmVwcmVzZW50cyBhIHJlcGVhdGVkIGBWYWx1ZWAuCgoMCgUEAQIFBhIDSwQNCgwKBQQBAgUBEgNLDhgKDAoFBAECBQMSA0sbHAqoAQoCBQASBFMAVgEamwEgYE51bGxWYWx1ZWAgaXMgYSBzaW5nbGV0b24gZW51bWVyYXRpb24gdG8gcmVwcmVzZW50IHRoZSBudWxsIHZhbHVlIGZvciB0aGUKIGBWYWx1ZWAgdHlwZSB1bmlvbi4KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYE51bGxWYWx1ZWAgaXMgSlNPTiBgbnVsbGAuCgoKCgMFAAESA1MFDgoaCgQFAAIAEgNVAhEaDSBOdWxsIHZhbHVlLgoKDAoFBQACAAESA1UCDAoMCgUFAAIAAhIDVQ8QCoIBCgIEAhIEWwBeARp2IGBMaXN0VmFsdWVgIGlzIGEgd3JhcHBlciBhcm91bmQgYSByZXBlYXRlZCBmaWVsZCBvZiB2YWx1ZXMuCgogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIGBMaXN0VmFsdWVgIGlzIEpTT04gYXJyYXkuCgoKCgMEAgESA1sIEQo6CgQEAgIAEgNdAhwaLSBSZXBlYXRlZCBmaWVsZCBvZiBkeW5hbWljYWxseSB0eXBlZCB2YWx1ZXMuCgoMCgUEAgIABBIDXQIKCgwKBQQCAgAGEgNdCxAKDAoFBAICAAESA10RFwoMCgUEAgIAAxIDXRobYgZwcm90bzMK7VEKI2NzaGFycC9wcm90b3MvdW5pdHRlc3RfaXNzdWVzLnByb3RvEg91bml0dGVzdF9pc3N1ZXMaHGdvb2dsZS9wcm90b2J1Zi9zdHJ1Y3QucHJvdG8iJwoISXNzdWUzMDcaGwoKTmVzdGVkT25jZRoNCgtOZXN0ZWRUd2ljZSLNAQoTTmVnYXRpdmVFbnVtTWVzc2FnZRIzCgV2YWx1ZRgBIAEoDjIdLnVuaXR0ZXN0X2lzc3Vlcy5OZWdhdGl2ZUVudW1SBXZhbHVlEjkKBnZhbHVlcxgCIAMoDjIdLnVuaXR0ZXN0X2lzc3Vlcy5OZWdhdGl2ZUVudW1CAhAAUgZ2YWx1ZXMSRgoNcGFja2VkX3ZhbHVlcxgDIAMoDjIdLnVuaXR0ZXN0X2lzc3Vlcy5OZWdhdGl2ZUVudW1CAhABUgxwYWNrZWRWYWx1ZXMiFQoPRGVwcmVjYXRlZENoaWxkOgIYASKLAwoXRGVwcmVjYXRlZEZpZWxkc01lc3NhZ2USKgoOUHJpbWl0aXZlVmFsdWUYASABKAVCAhgBUg5QcmltaXRpdmVWYWx1ZRIqCg5QcmltaXRpdmVBcnJheRgCIAMoBUICGAFSDlByaW1pdGl2ZUFycmF5EkgKDE1lc3NhZ2VWYWx1ZRgDIAEoCzIgLnVuaXR0ZXN0X2lzc3Vlcy5EZXByZWNhdGVkQ2hpbGRCAhgBUgxNZXNzYWdlVmFsdWUSSAoMTWVzc2FnZUFycmF5GAQgAygLMiAudW5pdHRlc3RfaXNzdWVzLkRlcHJlY2F0ZWRDaGlsZEICGAFSDE1lc3NhZ2VBcnJheRJBCglFbnVtVmFsdWUYBSABKA4yHy51bml0dGVzdF9pc3N1ZXMuRGVwcmVjYXRlZEVudW1CAhgBUglFbnVtVmFsdWUSQQoJRW51bUFycmF5GAYgAygOMh8udW5pdHRlc3RfaXNzdWVzLkRlcHJlY2F0ZWRFbnVtQgIYAVIJRW51bUFycmF5Ih8KCUl0ZW1GaWVsZBISCgRpdGVtGAEgASgFUgRpdGVtIlcKDVJlc2VydmVkTmFtZXMSFAoFdHlwZXMYASABKAVSBXR5cGVzEh4KCmRlc2NyaXB0b3IYAiABKAVSCmRlc2NyaXB0b3IaEAoOU29tZU5lc3RlZFR5cGUi3wEKFVRlc3RKc29uRmllbGRPcmRlcmluZxIfCgtwbGFpbl9pbnQzMhgEIAEoBVIKcGxhaW5JbnQzMhIdCglvMV9zdHJpbmcYAiABKAlIAFIIbzFTdHJpbmcSGwoIbzFfaW50MzIYBSABKAVIAFIHbzFJbnQzMhIhCgxwbGFpbl9zdHJpbmcYASABKAlSC3BsYWluU3RyaW5nEhsKCG8yX2ludDMyGAYgASgFSAFSB28ySW50MzISHQoJbzJfc3RyaW5nGAMgASgJSAFSCG8yU3RyaW5nQgQKAm8xQgQKAm8yIlEKDFRlc3RKc29uTmFtZRISCgRuYW1lGAEgASgJUgRuYW1lEhkKC2Rlc2NyaXB0aW9uGAIgASgJUgRkZXNjEhIKBGd1aWQYAyABKAlSBGV4aWQikwEKDE9uZW9mTWVyZ2luZxIUCgR0ZXh0GAEgASgJSABSBHRleHQSPgoGbmVzdGVkGAIgASgLMiQudW5pdHRlc3RfaXNzdWVzLk9uZW9mTWVyZ2luZy5OZXN0ZWRIAFIGbmVzdGVkGiQKBk5lc3RlZBIMCgF4GAEgASgFUgF4EgwKAXkYAiABKAVSAXlCBwoFdmFsdWUigwEKFk51bGxWYWx1ZU91dHNpZGVTdHJ1Y3QSIwoMc3RyaW5nX3ZhbHVlGAEgASgJSABSC3N0cmluZ1ZhbHVlEjsKCm51bGxfdmFsdWUYAiABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlSABSCW51bGxWYWx1ZUIHCgV2YWx1ZSJQChNOdWxsVmFsdWVOb3RJbk9uZW9mEjkKCm51bGxfdmFsdWUYAiABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlUgludWxsVmFsdWUifQoXTWl4ZWRSZWd1bGFyQW5kT3B0aW9uYWwSIwoNcmVndWxhcl9maWVsZBgBIAEoCVIMcmVndWxhckZpZWxkEioKDm9wdGlvbmFsX2ZpZWxkGAIgASgJSABSDW9wdGlvbmFsRmllbGSIAQFCEQoPX29wdGlvbmFsX2ZpZWxkIkIKEk9uZW9mV2l0aE5vbmVGaWVsZBIOCgF4GAEgASgJSABSAXgSFAoEbm9uZRgCIAEoCUgAUgRub25lQgYKBHRlc3QiOwoRT25lb2ZXaXRoTm9uZU5hbWUSDgoBeBgBIAEoCUgAUgF4Eg4KAXkYAiABKAlIAFIBeUIGCgRub25lIqIDChlEaXNhbWJpZ3VhdGVDb21tb25NZW1iZXJzEj4KG2Rpc2FtYmlndWF0ZV9jb21tb25fbWVtYmVycxgBIAEoBVIZZGlzYW1iaWd1YXRlQ29tbW9uTWVtYmVycxIUCgV0eXBlcxgCIAEoBVIFdHlwZXMSHgoKZGVzY3JpcHRvchgDIAEoBVIKZGVzY3JpcHRvchIWCgZlcXVhbHMYBCABKAVSBmVxdWFscxIbCgl0b19zdHJpbmcYBSABKAVSCHRvU3RyaW5nEiIKDWdldF9oYXNoX2NvZGUYBiABKAVSC2dldEhhc2hDb2RlEhkKCHdyaXRlX3RvGAcgASgFUgd3cml0ZVRvEhQKBWNsb25lGAggASgFUgVjbG9uZRIlCg5jYWxjdWxhdGVfc2l6ZRgJIAEoBVINY2FsY3VsYXRlU2l6ZRIdCgptZXJnZV9mcm9tGAogASgFUgltZXJnZUZyb20SJwoPb25fY29uc3RydWN0aW9uGAsgASgFUg5vbkNvbnN0cnVjdGlvbhIWCgZwYXJzZXIYDCABKAVSBnBhcnNlciI9ChFJc3N1ZTExOTg3TWVzc2FnZRIMCgFhGAEgASgFUgFiEgwKAWIYAiABKAVSAWESDAoBYxgDIAEoBVIBZCpVCgxOZWdhdGl2ZUVudW0SFgoSTkVHQVRJVkVfRU5VTV9aRVJPEAASFgoJRml2ZUJlbG93EPv//////////wESFQoITWludXNPbmUQ////////////ASo2Cg5EZXByZWNhdGVkRW51bRIXCg9ERVBSRUNBVEVEX1pFUk8QABoCCAESBwoDb25lEAEaAhgBQh2qAhpVbml0VGVzdC5Jc3N1ZXMuVGVzdFByb3Rvc0rBPgoHEgUeAOEBAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKjgIKAQISAyUAGBpmIElzc3VlOiBOb24tIkdvb2dsZS5Qcm90b2J1ZmZlcnMiIG5hbWVzcGFjZSB3aWxsIGVuc3VyZSB0aGF0IHByb3RvYnVmZmVyCiBsaWJyYXJ5IHR5cGVzIGFyZSBxdWFsaWZpZWQKMpsBIFRoZXNlIHByb3RvIGRlc2NyaXB0b3JzIGhhdmUgYXQgb25lIHRpbWUgYmVlbiByZXBvcnRlZCBhcyBhbiBpc3N1ZSBvciBkZWZlY3QuCiBUaGV5IGFyZSBrZXB0IGhlcmUgdG8gcmVwbGljYXRlIHRoZSBpc3N1ZSwgYW5kIGNvbnRpbnVlIHRvIHZlcmlmeSB0aGUgZml4LgoKCQoCAwASAycAJgoICgEIEgMpADcKCQoCCCUSAykANwp2CgIEABIELQAxARpqIElzc3VlIDMwNzogd2hlbiBnZW5lcmF0aW5nIGRvdWJseS1uZXN0ZWQgdHlwZXMsIGFueSByZWZlcmVuY2VzCiBzaG91bGQgYmUgb2YgdGhlIGZvcm0gQS5UeXBlcy5CLlR5cGVzLkMuCgoKCgMEAAESAy0IEAoMCgQEAAMAEgQuAjADCgwKBQQAAwABEgMuChQKDQoGBAADAAMAEgMvBBoKDgoHBAADAAMAARIDLwwXCrAECgIFABIETABQATKZASBPbGQgaXNzdWUgMTM6CiBodHRwOi8vY29kZS5nb29nbGUuY29tL3AvcHJvdG9idWYtY3NoYXJwLXBvcnQvaXNzdWVzL2RldGFpbD9pZD0xMyBOZXcgaXNzdWUKIDMwOTogaHR0cHM6Ly9naXRodWIuY29tL3Byb3RvY29sYnVmZmVycy9wcm90b2J1Zi9pc3N1ZXMvMzA5CjIrIG1lc3NhZ2UgQSB7CiAgICBvcHRpb25hbCBpbnQzMiBfQSA9IDE7CiB9CjIrIG1lc3NhZ2UgQiB7CiAgICBvcHRpb25hbCBpbnQzMiBCXyA9IDE7CiB9CjIuIG1lc3NhZ2UgQUIgewogICAgIG9wdGlvbmFsIGludDMyIGFfYiA9IDE7CiB9CjLaASBTaW1pbGFyIGlzc3VlIHdpdGggbnVtZXJpYyBuYW1lcwogSmF2YSBjb2RlIGZhaWxlZCB0b28sIHNvIHByb2JhYmx5IGJlc3QgZm9yIHRoaXMgdG8gYmUgYSByZXN0cmljdGlvbi4KIFNlZSBodHRwczovL2dpdGh1Yi5jb20vcHJvdG9jb2xidWZmZXJzL3Byb3RvYnVmL2lzc3Vlcy8zMDgKIG1lc3NhZ2UgTnVtYmVyRmllbGQgewogICAgb3B0aW9uYWwgaW50MzIgXzAxID0gMTsKIH0KMiEgaXNzdWUgMTkgLSBuZWdhdGl2ZSBlbnVtIHZhbHVlcwoKCgoDBQABEgNMBREKCwoEBQACABIDTQIZCgwK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b3RvYnVmLkZpbGVEZXNjcmlwdG9yUHJvdG9SBGZpbGUi/gQKE0ZpbGVEZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRIYCgdwYWNrYWdlGAIgASgJUgdwYWNrYWdlEh4KCmRlcGVuZGVuY3kYAyADKAlSCmRlcGVuZGVuY3kSKwoRcHVibGljX2RlcGVuZGVuY3kYCiADKAVSEHB1YmxpY0RlcGVuZGVuY3kSJwoPd2Vha19kZXBlbmRlbmN5GAsgAygFUg53ZWFrRGVwZW5kZW5jeRJDCgxtZXNzYWdlX3R5cGUYBCADKAsyIC5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvUgttZXNzYWdlVHlwZRJBCgllbnVtX3R5cGUYBSADKAsyJC5nb29nbGUucHJvdG9idWYuRW51bURlc2NyaXB0b3JQcm90b1IIZW51bVR5cGUSQQoHc2VydmljZRgGIAMoCzInLmdvb2dsZS5wcm90b2J1Zi5TZXJ2aWNlRGVzY3JpcHRvclByb3RvUgdzZXJ2aWNlEkMKCWV4dGVuc2lvbhgHIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90b1IJZXh0ZW5zaW9uEjYKB29wdGlvbnMYCCABKAsyHC5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnNSB29wdGlvbnMSSQoQc291cmNlX2NvZGVfaW5mbxgJIAEoCzIfLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb2RlSW5mb1IOc291cmNlQ29kZUluZm8SFgoGc3ludGF4GAwgASgJUgZzeW50YXgSGAoHZWRpdGlvbhgNIAEoCVIHZWRpdGlvbiK5BgoPRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSOwoFZmllbGQYAiADKAsyJS5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG9SBWZpZWxkEkMKCWV4dGVuc2lvbhgGIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90b1IJZXh0ZW5zaW9uEkEKC25lc3RlZF90eXBlGAMgAygLMiAuZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90b1IKbmVzdGVkVHlwZRJBCgllbnVtX3R5cGUYBCADKAsyJC5nb29nbGUucHJvdG9idWYuRW51bURlc2NyaXB0b3JQcm90b1IIZW51bVR5cGUSWAoPZXh0ZW5zaW9uX3JhbmdlGAUgAygLMi8uZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90by5FeHRlbnNpb25SYW5nZVIOZXh0ZW5zaW9uUmFuZ2USRAoKb25lb2ZfZGVjbBgIIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5PbmVvZkRlc2NyaXB0b3JQcm90b1IJb25lb2ZEZWNsEjkKB29wdGlvbnMYByABKAsyHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnNSB29wdGlvbnMSVQoOcmVzZXJ2ZWRfcmFuZ2UYCSADKAsyLi5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvLlJlc2VydmVkUmFuZ2VSDXJlc2VydmVkUmFuZ2USIwoNcmVzZXJ2ZWRfbmFtZRgKIAMoCVIMcmVzZXJ2ZWROYW1lGnoKDkV4dGVuc2lvblJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZBJACgdvcHRpb25zGAMgASgLMiYuZ29vZ2xlLnByb3RvYnVmLkV4dGVuc2lvblJhbmdlT3B0aW9uc1IHb3B0aW9ucxo3Cg1SZXNlcnZlZFJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZCLHBAoVRXh0ZW5zaW9uUmFuZ2VPcHRpb25zElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uElkKC2RlY2xhcmF0aW9uGAIgAygLMjIuZ29vZ2xlLnByb3RvYnVmLkV4dGVuc2lvblJhbmdlT3B0aW9ucy5EZWNsYXJhdGlvbkIDiAECUgtkZWNsYXJhdGlvbhI3CghmZWF0dXJlcxgyIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0UghmZWF0dXJlcxJoCgx2ZXJpZmljYXRpb24YAyABKA4yOC5nb29nbGUucHJvdG9idWYuRXh0ZW5zaW9uUmFuZ2VPcHRpb25zLlZlcmlmaWNhdGlvblN0YXRlOgpVTlZFUklGSUVEUgx2ZXJpZmljYXRpb24alAEKC0RlY2xhcmF0aW9uEhYKBm51bWJlchgBIAEoBVIGbnVtYmVyEhsKCWZ1bGxfbmFtZRgCIAEoCVIIZnVsbE5hbWUSEgoEdHlwZRgDIAEoCVIEdHlwZRIaCghyZXNlcnZlZBgFIAEoCFIIcmVzZXJ2ZWQSGgoIcmVwZWF0ZWQYBiABKAhSCHJlcGVhdGVkSgQIBBAFIjQKEVZlcmlmaWNhdGlvblN0YXRlEg8KC0RFQ0xBUkFUSU9OEAASDgoKVU5WRVJJRklFRBABKgkI6AcQgICAgAIiwQYKFEZpZWxkRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSFgoGbnVtYmVyGAMgASgFUgZudW1iZXISQQoFbGFiZWwYBCABKA4yKy5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uTGFiZWxSBWxhYmVsEj4KBHR5cGUYBSABKA4yKi5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uVHlwZVIEdHlwZRIbCgl0eXBlX25hbWUYBiABKAlSCHR5cGVOYW1lEhoKCGV4dGVuZGVlGAIgASgJUghleHRlbmRlZRIjCg1kZWZhdWx0X3ZhbHVlGAcgASgJUgxkZWZhdWx0VmFsdWUSHwoLb25lb2ZfaW5kZXgYCSABKAVSCm9uZW9mSW5kZXgSGwoJanNvbl9uYW1lGAogASgJUghqc29uTmFtZRI3CgdvcHRpb25zGAggASgLMh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9uc1IHb3B0aW9ucxInCg9wcm90bzNfb3B0aW9uYWwYESABKAhSDnByb3RvM09wdGlvbmFsIrYCCgRUeXBlEg8KC1RZUEVfRE9VQkxFEAESDgoKVFlQRV9GTE9BVBACEg4KClRZUEVfSU5UNjQQAxIPCgtUWVBFX1VJTlQ2NBAEEg4KClRZUEVfSU5UMzIQBRIQCgxUWVBFX0ZJWEVENjQQBhIQCgxUWVBFX0ZJWEVEMzIQBxINCglUWVBFX0JPT0wQCBIPCgtUWVBFX1NUUklORxAJEg4KClRZUEVfR1JPVVAQChIQCgxUWVBFX01FU1NBR0UQCxIOCgpUWVBFX0JZVEVTEAwSDwoLVFlQRV9VSU5UMzIQDRINCglUWVBFX0VOVU0QDhIRCg1UWVBFX1NGSVhFRDMyEA8SEQoNVFlQRV9TRklYRUQ2NBAQEg8KC1RZUEVfU0lOVDMyEBESDwoLVFlQRV9TSU5UNjQQEiJDCgVMYWJlbBISCg5MQUJFTF9PUFRJT05BTBABEhIKDkxBQkVMX1JFUVVJUkVEEAISEgoOTEFCRUxfUkVQRUFURUQQAyJjChRPbmVvZkRlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEjcKB29wdGlvbnMYAiABKAsyHS5nb29nbGUucHJvdG9idWYuT25lb2ZPcHRpb25zUgdvcHRpb25zIuMCChNFbnVtRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSPwoFdmFsdWUYAiADKAsyKS5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlRGVzY3JpcHRvclByb3RvUgV2YWx1ZRI2CgdvcHRpb25zGAMgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkVudW1PcHRpb25zUgdvcHRpb25zEl0KDnJlc2VydmVkX3JhbmdlGAQgAygLMjYuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9yUHJvdG8uRW51bVJlc2VydmVkUmFuZ2VSDXJlc2VydmVkUmFuZ2USIwoNcmVzZXJ2ZWRfbmFtZRgFIAMoCVIMcmVzZXJ2ZWROYW1lGjsKEUVudW1SZXNlcnZlZFJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZCKDAQoYRW51bVZhbHVlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSFgoGbnVtYmVyGAIgASgFUgZudW1iZXISOwoHb3B0aW9ucxgDIAEoCzIhLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVPcHRpb25zUgdvcHRpb25zIqcBChZTZXJ2aWNlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSPgoGbWV0aG9kGAIgAygLMiYuZ29vZ2xlLnByb3RvYnVmLk1ldGhvZERlc2NyaXB0b3JQcm90b1IGbWV0aG9kEjkKB29wdGlvbnMYAyABKAsyHy5nb29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnNSB29wdGlvbnMiiQIKFU1ldGhvZERlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEh0KCmlucHV0X3R5cGUYAiABKAlSCWlucHV0VHlwZRIfCgtvdXRwdXRfdHlwZRgDIAEoCVIKb3V0cHV0VHlwZRI4CgdvcHRpb25zGAQgASgLMh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnNSB29wdGlvbnMSMAoQY2xpZW50X3N0cmVhbWluZxgFIAEoCDoFZmFsc2VSD2NsaWVudFN0cmVhbWluZxIwChBzZXJ2ZXJfc3RyZWFtaW5nGAYgASgIOgVmYWxzZVIPc2VydmVyU3RyZWFtaW5nIsoJCgtGaWxlT3B0aW9ucxIhCgxqYXZhX3BhY2thZ2UYASABKAlSC2phdmFQYWNrYWdlEjAKFGphdmFfb3V0ZXJfY2xhc3NuYW1lGAggASgJUhJqYXZhT3V0ZXJDbGFzc25hbWUSNQoTamF2YV9tdWx0aXBsZV9maWxlcxgKIAEoCDoFZmFsc2VSEWphdmFNdWx0aXBsZUZpbGVzEkQKHWphdmFfZ2VuZXJhdGVfZXF1YWxzX2FuZF9oYXNoGBQgASgIQgIYAVIZamF2YUdlbmVyYXRlRXF1YWxzQW5kSGFzaBI6ChZqYXZhX3N0cmluZ19jaGVja191dGY4GBsgASgIOgVmYWxzZVITamF2YVN0cmluZ0NoZWNrVXRmOBJTCgxvcHRpbWl6ZV9mb3IYCSABKA4yKS5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMuT3B0aW1pemVNb2RlOgVTUEVFRFILb3B0aW1pemVGb3ISHQoKZ29fcGFja2FnZRgLIAEoCVIJZ29QYWNrYWdlEjUKE2NjX2dlbmVyaWNfc2VydmljZXMYECABKAg6BWZhbHNlUhFjY0dlbmVyaWNTZXJ2aWNlcxI5ChVqYXZhX2dlbmVyaWNfc2VydmljZXMYESABKAg6BWZhbHNlUhNqYXZhR2VuZXJpY1NlcnZpY2VzEjUKE3B5X2dlbmVyaWNfc2VydmljZXMYEiABKAg6BWZhbHNlUhFweUdlbmVyaWNTZXJ2aWNlcxI3ChRwaHBfZ2VuZXJpY19zZXJ2aWNlcxgqIAEoCDoFZmFsc2VSEnBocEdlbmVyaWNTZXJ2aWNlcxIlCgpkZXByZWNhdGVkGBcgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBIuChBjY19lbmFibGVfYXJlbmFzGB8gASgIOgR0cnVlUg5jY0VuYWJsZUFyZW5hcxIqChFvYmpjX2NsYXNzX3ByZWZpeBgkIAEoCVIPb2JqY0NsYXNzUHJlZml4EikKEGNzaGFycF9uYW1lc3BhY2UYJSABKAlSD2NzaGFycE5hbWVzcGFjZRIhCgxzd2lmdF9wcmVmaXgYJyABKAlSC3N3aWZ0UHJlZml4EigKEHBocF9jbGFzc19wcmVmaXgYKCABKAlSDnBocENsYXNzUHJlZml4EiMKDXBocF9uYW1lc3BhY2UYKSABKAlSDHBocE5hbWVzcGFjZRI0ChZwaHBfbWV0YWRhdGFfbmFtZXNwYWNlGCwgASgJUhRwaHBNZXRhZGF0YU5hbWVzcGFjZRIhCgxydWJ5X3BhY2thZ2UYLSABKAlSC3J1YnlQYWNrYWdlEjcKCGZlYXR1cmVzGDIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXRSCGZlYXR1cmVzElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uIjoKDE9wdGltaXplTW9kZRIJCgVTUEVFRBABEg0KCUNPREVfU0laRRACEhAKDExJVEVfUlVOVElNRRADKgkI6AcQgICAgAJKBAgmECci9AMKDk1lc3NhZ2VPcHRpb25zEjwKF21lc3NhZ2Vfc2V0X3dpcmVfZm9ybWF0GAEgASgIOgVmYWxzZVIUbWVzc2FnZVNldFdpcmVGb3JtYXQSTAofbm9fc3RhbmRhcmRfZGVzY3JpcHRvcl9hY2Nlc3NvchgCIAEoCDoFZmFsc2VSHG5vU3RhbmRhcmREZXNjcmlwdG9yQWNjZXNzb3ISJQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSGwoJbWFwX2VudHJ5GAcgASgIUghtYXBFbnRyeRJWCiZkZXByZWNhdGVkX2xlZ2FjeV9qc29uX2ZpZWxkX2NvbmZsaWN0cxgLIAEoCEICGAFSImRlcHJlY2F0ZWRMZWdhY3lKc29uRmllbGRDb25mbGljdHMSNwoIZmVhdHVyZXMYDCABKAsyGy5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldFIIZmVhdHVyZXMSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAkoECAQQBUoECAUQBkoECAYQB0oECAgQCUoECAkQCiKTCgoMRmllbGRPcHRpb25zEkEKBWN0eXBlGAEgASgOMiMuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5DVHlwZToGU1RSSU5HUgVjdHlwZRIWCgZwYWNrZWQYAiABKAhSBnBhY2tlZBJHCgZqc3R5cGUYBiABKA4yJC5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zLkpTVHlwZToJSlNfTk9STUFMUgZqc3R5cGUSGQoEbGF6eRgFIAEoCDoFZmFsc2VSBGxhenkSLgoPdW52ZXJpZmllZF9sYXp5GA8gASgIOgVmYWxzZVIOdW52ZXJpZmllZExhenkSJQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSGQoEd2VhaxgKIAEoCDoFZmFsc2VSBHdlYWsSKAoMZGVidWdfcmVkYWN0GBAgASgIOgVmYWxzZVILZGVidWdSZWRhY3QSSwoJcmV0ZW50aW9uGBEgASgOMi0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5PcHRpb25SZXRlbnRpb25SCXJldGVudGlvbhJICgd0YXJnZXRzGBMgAygOMi4uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5PcHRpb25UYXJnZXRUeXBlUgd0YXJnZXRzElcKEGVkaXRpb25fZGVmYXVsdHMYFCADKAsyLC5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zLkVkaXRpb25EZWZhdWx0Ug9lZGl0aW9uRGVmYXVsdHMSNwoIZmVhdHVyZXMYFSABKAsyGy5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldFIIZmVhdHVyZXMSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24aQAoORWRpdGlvbkRlZmF1bHQSGAoHZWRpdGlvbhgBIAEoCVIHZWRpdGlvbhIUCgV2YWx1ZRgCIAEoCVIFdmFsdWUiLwoFQ1R5cGUSCgoGU1RSSU5HEAASCAoEQ09SRBABEhAKDFNUUklOR19QSUVDRRACIjUKBkpTVHlwZRINCglKU19OT1JNQUwQABINCglKU19TVFJJTkcQARINCglKU19OVU1CRVIQAiJVCg9PcHRpb25SZXRlbnRpb24SFQoRUkVURU5USU9OX1VOS05PV04QABIVChFSRVRFTlRJT05fUlVOVElNRRABEhQKEFJFVEVOVElPTl9TT1VSQ0UQAiKMAgoQT3B0aW9uVGFyZ2V0VHlwZRIXChNUQVJHRVRfVFlQRV9VTktOT1dOEAASFAoQVEFSR0VUX1RZUEVfRklMRRABEh8KG1RBUkdFVF9UWVBFX0VYVEVOU0lPTl9SQU5HRRACEhcKE1RBUkdFVF9UWVBFX01FU1NBR0UQAxIVChFUQVJHRVRfVFlQRV9GSUVMRBAEEhUKEVRBUkdFVF9UWVBFX09ORU9GEAUSFAoQVEFSR0VUX1RZUEVfRU5VTRAGEhoKFlRBUkdFVF9UWVBFX0VOVU1fRU5UUlkQBxIXChNUQVJHRVRfVFlQRV9TRVJWSUNFEAgSFgoSVEFSR0VUX1RZUEVfTUVUSE9EEAkqCQjoBxCAgICAAkoECAQQBUoECBIQEyKsAQoMT25lb2ZPcHRpb25zEjcKCGZlYXR1cmVzGAEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXRSCGZlYXR1cmVzElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIi0QIKC0VudW1PcHRpb25zEh8KC2FsbG93X2FsaWFzGAIgASgIUgphbGxvd0FsaWFzEiUKCmRlcHJlY2F0ZWQYAyABKAg6BWZhbHNlUgpkZXByZWNhdGVkElYKJmRlcHJlY2F0ZWRfbGVnYWN5X2pzb25fZmllbGRfY29uZmxpY3RzGAYgASgIQgIYAVIiZGVwcmVjYXRlZExlZ2FjeUpzb25GaWVsZENvbmZsaWN0cxI3CghmZWF0dXJlcxgHIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0UghmZWF0dXJlcxJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACSgQIBRAGIoECChBFbnVtVmFsdWVPcHRpb25zEiUKCmRlcHJlY2F0ZWQYASABKAg6BWZhbHNlUgpkZXByZWNhdGVkEjcKCGZlYXR1cmVzGAIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXRSCGZlYXR1cmVzEigKDGRlYnVnX3JlZGFjdBgDIAEoCDoFZmFsc2VSC2RlYnVnUmVkYWN0ElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIi1QEKDlNlcnZpY2VPcHRpb25zEjcKCGZlYXR1cmVzGCIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXRSCGZlYXR1cmVzEiUKCmRlcHJlY2F0ZWQYISABKAg6BWZhbHNlUgpkZXByZWNhdGVkElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIimQMKDU1ldGhvZE9wdGlvbnMSJQoKZGVwcmVjYXRlZBghIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQScQoRaWRlbXBvdGVuY3lfbGV2ZWwYIiABKA4yLy5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucy5JZGVtcG90ZW5jeUxldmVsOhNJREVNUE9URU5DWV9VTktOT1dOUhBpZGVtcG90ZW5jeUxldmVsEjcKCGZlYXR1cmVzGCMgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXRSCGZlYXR1cmVzElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uIlAKEElkZW1wb3RlbmN5TGV2ZWwSFwoTSURFTVBPVEVOQ1lfVU5LTk9XThAAEhMKD05PX1NJREVfRUZGRUNUUxABEg4KCklERU1QT1RFTlQQAioJCOgHEICAgIACIpoDChNVbmludGVycHJldGVkT3B0aW9uEkEKBG5hbWUYAiADKAsyLS5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvbi5OYW1lUGFydFIEbmFtZRIpChBpZGVudGlmaWVyX3ZhbHVlGAMgASgJUg9pZGVudGlmaWVyVmFsdWUSLAoScG9zaXRpdmVfaW50X3ZhbHVlGAQgASgEUhBwb3NpdGl2ZUludFZhbHVlEiwKEm5lZ2F0aXZlX2ludF92YWx1ZRgFIAEoA1IQbmVnYXRpdmVJbnRWYWx1ZRIhCgxkb3VibGVfdmFsdWUYBiABKAFSC2RvdWJsZVZhbHVlEiEKDHN0cmluZ192YWx1ZRgHIAEoDFILc3RyaW5nVmFsdWUSJwoPYWdncmVnYXRlX3ZhbHVlGAggASgJUg5hZ2dyZWdhdGVWYWx1ZRpKCghOYW1lUGFydBIbCgluYW1lX3BhcnQYASACKAlSCG5hbWVQYXJ0EiEKDGlzX2V4dGVuc2lvbhgCIAIoCFILaXNFeHRlbnNpb24inQoKCkZlYXR1cmVTZXQSbgoOZmllbGRfcHJlc2VuY2UYASABKA4yKS5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldC5GaWVsZFByZXNlbmNlQhyIAQGYAQSYAQGiARAKBDIwMjMSCEVYUExJQ0lUUg1maWVsZFByZXNlbmNlElsKCWVudW1fdHlwZRgCIAEoDjIkLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0LkVudW1UeXBlQhiIAQGYAQaYAQGiAQwKBDIwMjMSBE9QRU5SCGVudW1UeXBlEoUBChdyZXBlYXRlZF9maWVsZF9lbmNvZGluZxgDIAEoDjIxLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0LlJlcGVhdGVkRmllbGRFbmNvZGluZ0IaiAEBmAEEmAEBogEOCgQyMDIzEgZQQUNLRURSFXJlcGVhdGVkRmllbGRFbmNvZGluZxKIAQoXc3RyaW5nX2ZpZWxkX3ZhbGlkYXRpb24YBCABKA4yMS5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldC5TdHJpbmdGaWVsZFZhbGlkYXRpb25CHYgBAZgBBJgBAaIBEQoEMjAyMxIJTUFOREFUT1JZUhVzdHJpbmdGaWVsZFZhbGlkYXRpb24SewoQbWVzc2FnZV9lbmNvZGluZxgFIAEoDjIrLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0Lk1lc3NhZ2VFbmNvZGluZ0IjiAEBmAEEmAEBogEXCgQyMDIzEg9MRU5HVEhfUFJFRklYRURSD21lc3NhZ2VFbmNvZGluZxJlCgtqc29uX2Zvcm1hdBgGIAEoDjImLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0Lkpzb25Gb3JtYXRCHIgBAZgBA5gBBpgBAaIBDQoEMjAyMxIFQUxMT1dSCmpzb25Gb3JtYXQSRAoMcmF3X2ZlYXR1cmVzGOcHIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0QgOYAQBSC3Jhd0ZlYXR1cmVzIlwKDUZpZWxkUHJlc2VuY2USGgoWRklFTERfUFJFU0VOQ0VfVU5LTk9XThAAEgwKCEVYUExJQ0lUEAESDAoISU1QTElDSVQQAhITCg9MRUdBQ1lfUkVRVUlSRUQQAyI3CghFbnVtVHlwZRIVChFFTlVNX1RZUEVfVU5LTk9XThAAEggKBE9QRU4QARIKCgZDTE9TRUQQAiJWChVSZXBlYXRlZEZpZWxkRW5jb2RpbmcSIwofUkVQRUFURURfRklFTERfRU5DT0RJTkdfVU5LTk9XThAAEgoKBlBBQ0tFRBABEgwKCEVYUEFOREVEEAIiXwoVU3RyaW5nRmllbGRWYWxpZGF0aW9uEiMKH1NUUklOR19GSUVMRF9WQUxJREFUSU9OX1VOS05PV04QABINCglNQU5EQVRPUlkQARIICgRISU5UEAISCAoETk9ORRADIlMKD01lc3NhZ2VFbmNvZGluZxIcChhNRVNTQUdFX0VOQ09ESU5HX1VOS05PV04QABITCg9MRU5HVEhfUFJFRklYRUQQARINCglERUxJTUlURUQQAiJICgpKc29uRm9ybWF0EhcKE0pTT05fRk9STUFUX1VOS05PV04QABIJCgVBTExPVxABEhYKEkxFR0FDWV9CRVNUX0VGRk9SVBACKgYI6AcQ6QcqBgjpBxDqByoGCItOEJBOIqcCCg5Tb3VyY2VDb2RlSW5mbxJECghsb2NhdGlvbhgBIAMoCzIoLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb2RlSW5mby5Mb2NhdGlvblIIbG9jYXRpb24azgEKCExvY2F0aW9uEhYKBHBhdGgYASADKAVCAhABUgRwYXRoEhYKBHNwYW4YAiADKAVCAhABUgRzcGFuEikKEGxlYWRpbmdfY29tbWVudHMYAyABKAlSD2xlYWRpbmdDb21tZW50cxIrChF0cmFpbGluZ19jb21tZW50cxgEIAEoCVIQdHJhaWxpbmdDb21tZW50cxI6ChlsZWFkaW5nX2RldGFjaGVkX2NvbW1lbnRzGAYgAygJUhdsZWFkaW5nRGV0YWNoZWRDb21tZW50cyLQAgoRR2VuZXJhdGVkQ29kZUluZm8STQoKYW5ub3RhdGlvbhgBIAMoCzItLmdvb2dsZS5wcm90b2J1Zi5HZW5lcmF0ZWRDb2RlSW5mby5Bbm5vdGF0aW9uUgphbm5vdGF0aW9uGusBCgpBbm5vdGF0aW9uEhYKBHBhdGgYASADKAVCAhABUgRwYXRoEh8KC3NvdXJjZV9maWxlGAIgASgJUgpzb3VyY2VGaWxlEhQKBWJlZ2luGAMgASgFUgViZWdpbhIQCgNlbmQYBCABKAVSA2VuZBJSCghzZW1hbnRpYxgFIAEoDjI2Lmdvb2dsZS5wcm90b2J1Zi5HZW5lcmF0ZWRDb2RlSW5mby5Bbm5vdGF0aW9uLlNlbWFudGljUghzZW1hbnRpYyIoCghTZW1hbnRpYxIICgROT05FEAASBwoDU0VUEAESCQoFQUxJQVMQAkJ+ChNjb20uZ29vZ2xlLnByb3RvYnVmQhBEZXNjcmlwdG9yUHJvdG9zSAFaLWdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2Rlc2NyaXB0b3JwYvgBAaICA0dQQqoCGkdvb2dsZS5Qcm90b2J1Zi5SZWZsZWN0aW9uSqafAwoHEgUmAIQJAQqqDwoBDBIDJgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoy2wIgQXV0aG9yOiBrZW50b25AZ29vZ2xlLmNvbSAoS2VudG9uIFZhcmRhKQogIEJhc2VkIG9uIG9yaWdpbmFsIFByb3RvY29sIEJ1ZmZlcnMgZGVzaWduIGJ5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aGUgZmllbGQncyBuYW1lIGJ5IGNvbnZlcnRpbmcKIGl0IHRvIGNhbWVsQ2FzZS4KCg0KBQQEAggEEgSDAgIKCg0KBQQEAggFEgSDAgsRCg0KBQQEAggBEgSDAhIbCg0KBQQEAggDEgSDAh4gCgwKBAQEAgkSBIUCAiQKDQoFBAQCCQQSBIUCAgoKDQoFBAQCCQYSBIUCCxcKDQoFBAQCCQESBIUCGB8KDQoFBAQCCQMSBIUCIiMKswkKBAQEAgoSBJwCAiUapAkgSWYgdHJ1ZSwgdGhpcyBpcyBhIHByb3RvMyAib3B0aW9uYWwiLiBXaGVuIGEgcHJvdG8zIGZpZWxkIGlzIG9wdGlvbmFsLCBpdAogdHJhY2tzIHByZXNlbmNlIHJlZ2FyZGxlc3Mgb2YgZmllbGQgdHlwZS4KCiBXaGVuIHByb3RvM19vcHRpb25hbCBpcyB0cnVlLCB0aGlzIGZpZWxkIG11c3QgYmUgYmVsb25nIHRvIGEgb25lb2YgdG8KIHNpZ25hbCB0byBvbGQgcHJvdG8zIGNsaWVudHMgdGhhdCBwcmVzZW5jZSBpcyB0cmFja2VkIGZvciB0aGlzIGZpZWxkLiBUaGlzCiBvbmVvZiBpcyBrbm93biBhcyBhICJzeW50aGV0aWMiIG9uZW9mLCBhbmQgdGhpcyBmaWVsZCBtdXN0IGJlIGl0cyBzb2xlCiBtZW1iZXIgKGVhY2ggcHJvdG8zIG9wdGlvbmFsIGZpZWxkIGdldHMgaXRzIG93biBzeW50aGV0aWMgb25lb2YpLiBTeW50aGV0aWMKIG9uZW9mcyBleGlzdCBpbiB0aGUgZGVzY3JpcHRvciBvbmx5LCBhbmQgZG8gbm90IGdlbmVyYXRlIGFueSBBUEkuIFN5bnRoZXRpYwogb25lb2ZzIG11c3QgYmUgb3JkZXJlZCBhZnRlciBhbGwgInJlYWwiIG9uZW9mcy4KCiBGb3IgbWVzc2FnZSBmaWVsZHMsIHByb3RvM19vcHRpb25hbCBkb2Vzbid0IGNyZWF0ZSBhbnkgc2VtYW50aWMgY2hhbmdlLAogc2luY2Ugbm9uLXJlcGVhdGVkIG1lc3NhZ2UgZmllbGRzIGFsd2F5cyB0cmFjayBwcmVzZW5jZS4gSG93ZXZlciBpdCBzdGlsbAogaW5kaWNhdGVz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dCBtYW5pcHVsYXRlcyBwcm90b2NvbCBtZXNzYWdlcy4KCiBDbGllbnRzIG1heSBkZWZpbmUgY3VzdG9tIG9wdGlvbnMgYXMgZXh0ZW5zaW9ucyBvZiB0aGUgKk9wdGlvbnMgbWVzc2FnZXMuCiBUaGVzZSBleHRlbnNpb25zIG1heSBub3QgeWV0IGJlIGtub3duIGF0IHBhcnNpbmcgdGltZSwgc28gdGhlIHBhcnNlciBjYW5ub3QKIHN0b3JlIHRoZSB2YWx1ZXMgaW4gdGhlbS4gIEluc3RlYWQgaXQgc3RvcmVzIHRoZW0gaW4gYSBmaWVsZCBpbiB0aGUgKk9wdGlvbnMKIG1lc3NhZ2UgY2FsbGVkIHVuaW50ZXJwcmV0ZWRfb3B0aW9uLiBUaGlzIGZpZWxkIG11c3QgaGF2ZSB0aGUgc2FtZSBuYW1lCiBhY3Jvc3MgYWxsICpPcHRpb25zIG1lc3NhZ2VzLiBXZSB0aGVuIHVzZSB0aGlzIGZpZWxkIHRvIHBvcHVsYXRlIHRoZQogZXh0ZW5zaW9ucyB3aGVuIHdlIGJ1aWxkIGEgZGVzY3JpcHRvciwgYXQgd2hpY2ggcG9pbnQgYWxsIHByb3RvcyBoYXZlIGJlZW4KIHBhcnNlZCBhbmQgc28gYWxsIGV4dGVuc2lvbnMgYXJlIGtub3duLgoKIEV4dGVuc2lvbiBudW1iZXJzIGZvciBjdXN0b20gb3B0aW9ucyBtYXkgYmUgY2hvc2VuIGFzIGZvbGxvd3M6CiAqIEZvciBvcHRpb25zIHdoaWNoIHdpbGwgb25seSBiZSB1c2VkIHdpdGhpbiBhIHNpbmdsZSBhcHBsaWNhdGlvbiBvcgogICBvcmdhbml6YXRpb24sIG9yIGZvciBleHBlcmltZW50YWwgb3B0aW9ucywgdXNlIGZpZWxkIG51bWJlcnMgNTAwMDAKICAgdGhyb3VnaCA5OTk5OS4gIEl0IGlzIHVwIHRvIHlvdSB0byBlbnN1cmUgdGhhdCB5b3UgZG8gbm90IHVzZSB0aGUKICAgc2FtZSBudW1iZXIgZm9yIG11bHRpcGxlIG9wdGlvbnMuCiAqIEZvciBvcHRpb25zIHdoaWNoIHdpbGwgYmUgcHVibGlzaGVkIGFuZCB1c2VkIHB1YmxpY2x5IGJ5IG11bHRpcGxlCiAgIGluZGVwZW5kZW50IGVudGl0aWVzLCBlLW1haWwgcHJvdG9idWYtZ2xvYmFsLWV4dGVuc2lvbi1yZWdpc3RyeUBnb29nbGUuY29tCiAgIHRvIHJlc2VydmUgZXh0ZW5zaW9uIG51bWJlcnMuIFNpbXBseSBwcm92aWRlIHlvdXIgcHJvamVjdCBuYW1lIChlLmcuCiAgIE9iamVjdGl2ZS1DIHBsdWdpbikgYW5kIHlvdXIgcHJvamVjdCB3ZWJzaXRlIChpZiBhdmFpbGFibGUpIC0tIHRoZXJlJ3Mgbm8KICAgbmVlZCB0byBleHBsYWluIGhvdyB5b3UgaW50ZW5kIHRvIHVzZSB0aGVtLiBVc3VhbGx5IHlvdSBvbmx5IG5lZWQgb25lCiAgIGV4dGVuc2lvbiBudW1iZXIuIFlvdSBjYW4gZGVjbGFyZSBtdWx0aXBsZSBvcHRpb25zIHdpdGggb25seSBvbmUgZXh0ZW5zaW9uCiAgIG51bWJlciBieSBwdXR0aW5nIHRoZW0gaW4gYSBzdWItbWVzc2FnZS4gU2VlIHRoZSBDdXN0b20gT3B0aW9ucyBzZWN0aW9uIG9mCiAgIHRoZSBkb2NzIGZvciBleGFtcGxlczoKICAgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy9kb2NzL3Byb3RvI29wdGlvbnMKICAgSWYgdGhpcyB0dXJucyBvdXQgdG8gYmUgcG9wdWxhciwgYSB3ZWIgc2VydmljZSB3aWxsIGJlIHNldCB1cAogICB0byBhdXRvbWF0aWNhbGx5IGFzc2lnbiBvcHRpb24gbnVtYmVycy4KCgsKAwQKARIEgwMIEwr0AQoEBAoCABIEiQMCIxrlASBTZXRzIHRoZSBKYXZhIHBhY2thZ2Ugd2hlcmUgY2xhc3NlcyBnZW5lcmF0ZWQgZnJvbSB0aGlzIC5wcm90byB3aWxsIGJlCiBwbGFjZWQuICBCeSBkZWZhdWx0LCB0aGUgcHJvdG8gcGFja2FnZSBpcyB1c2VkLCBidXQgdGhpcyBpcyBvZnRlbgogaW5hcHByb3ByaWF0ZSBiZWNhdXNlIHByb3RvIHBhY2thZ2VzIGRvIG5vdCBub3JtYWxseSBzdGFydCB3aXRoIGJhY2t3YXJkcwogZG9tYWluIG5hbWVzLgoKDQoFBAoCAAQSBIkDAgoKDQoFBAoCAAUSBIkDCxEKDQoFBAoCAAESBIkDEh4KDQoFBAoCAAMSBIkDISIK8QIKBAQKAgESBJADAisa4gIgQ29udHJvbHMgdGhlIG5hbWUgb2YgdGhlIHdyYXBwZXIgSmF2YSBjbGFzcyBnZW5lcmF0ZWQgZm9yIHRoZSAucHJvdG8gZmlsZS4KIFRoYXQgY2xhc3Mgd2lsbCBhbHdheXMgY29udGFpbiB0aGUgLnByb3RvIGZpbGUncyBnZXREZXNjcmlwdG9yKCkgbWV0aG9kIGFzCiB3ZWxsIGFzIGFueSB0b3AtbGV2ZWwgZXh0ZW5zaW9ucyBkZWZpbmVkIGluIHRoZSAucHJvdG8gZmlsZS4KIElmIGphdmFfbXVsdGlwbGVfZmlsZXMgaXMgZGlzYWJsZWQsIHRoZW4gYWxsIHRoZSBvdGhlciBjbGFzc2VzIGZyb20gdGhlCiAucHJvdG8gZmlsZSB3aWxsIGJlIG5lc3RlZCBpbnNpZGUgdGhlIHNpbmdsZSB3cmFwcGVyIG91dGVyIGNsYXNzLgoKDQoFBAoCAQQSBJADAgoKDQoFBAoCAQUSBJADCxEKDQoFBAoCAQESBJADEiYKDQoFBAoCAQMSBJADKSoKpgMKBAQKAgISBJgDAjsalwMgSWYgZW5hYmxlZCwgdGhlbiB0aGUgSmF2YSBjb2RlIGdlbmVyYXRvciB3aWxsIGdlbmVyYXRlIGEgc2VwYXJhdGUgLmphdmEKIGZpbGUgZm9yIGVhY2ggdG9wLWxldmVsIG1lc3NhZ2UsIGVudW0sIGFuZCBzZXJ2aWNlIGRlZmluZWQgaW4gdGhlIC5wcm90bwogZmlsZS4gIFRodXMsIHRoZXNlIHR5cGVzIHdpbGwgKm5vdCogYmUgbmVzdGVkIGluc2lkZSB0aGUgd3JhcHBlciBjbGFzcwogbmFtZWQgYnkgamF2YV9vdXRlcl9jbGFzc25hbWUuICBIb3dldmVyLCB0aGUgd3JhcHBlciBjbGFzcyB3aWxsIHN0aWxsIGJlCiBnZW5lcmF0ZWQgdG8gY29udGFpbiB0aGUgZmlsZSdzIGdldERlc2NyaXB0b3IoKSBtZXRob2QgYXMgd2VsbCBhcyBhbnkKIHRv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Egb8AwDMBAEKCwoDBAsBEgT8AwgWCtgFCgQECwIAEgSPBAI+GskFIFNldCB0cnVlIHRvIHVzZSB0aGUgb2xkIHByb3RvMSBNZXNzYWdlU2V0IHdpcmUgZm9ybWF0IGZvciBleHRlbnNpb25zLgogVGhpcyBpcyBwcm92aWRlZCBmb3IgYmFja3dhcmRzLWNvbXBhdGliaWxpdHkgd2l0aCB0aGUgTWVzc2FnZVNldCB3aXJlCiBmb3JtYXQuICBZb3Ugc2hvdWxkIG5vdCB1c2UgdGhpcyBmb3IgYW55IG90aGVyIHJlYXNvbjogIEl0J3MgbGVzcwogZWZmaWNpZW50LCBoYXMgZmV3ZXIgZmVhdHVyZXMsIGFuZCBpcyBtb3JlIGNvbXBsaWNhdGVkLgoKIFRoZSBtZXNzYWdlIG11c3QgYmUgZGVmaW5lZCBleGFjdGx5IGFzIGZvbGxvd3M6CiAgIG1lc3NhZ2UgRm9vIHsKICAgICBvcHRpb24gbWVzc2FnZV9zZXRfd2lyZV9mb3JtYXQgPSB0cnVlOwogICAgIGV4dGVuc2lvbnMgNCB0byBtYXg7CiAgIH0KIE5vdGUgdGhhdCB0aGUgbWVzc2FnZSBjYW5ub3QgaGF2ZSBhbnkgZGVmaW5lZCBmaWVsZHM7IE1lc3NhZ2VTZXRzIG9ubHkKIGhhdmUgZXh0ZW5zaW9ucy4KCiBBbGwgZXh0ZW5zaW9ucyBvZiB5b3VyIHR5cGUgbXVzdCBiZSBzaW5ndWxhciBtZXNzYWdlczsgZS5nLiB0aGV5IGNhbm5vdAogYmUgaW50MzJzLCBlbnVtcywgb3IgcmVwZWF0ZWQgbWVzc2FnZXMuCgogQmVjYXVzZSB0aGlzIGlzIGFuIG9wdGlvbiwgdGhlIGFib3ZlIHR3byByZXN0cmljdGlvbnMgYXJlIG5vdCBlbmZvcmNlZCBieQogdGhlIHByb3RvY29sIGNvbXBpbGVyLgoKDQoFBAsCAAQSBI8EAgoKDQoFBAsCAAUSBI8ECw8KDQoFBAsCAAESBI8EECcKDQoFBAsCAAMSBI8EKisKDQoFBAsCAAgSBI8ELD0KDQoFBAsCAAcSBI8ENzwK6wEKBAQLAgESBJQEAkYa3AEgRGlzYWJsZXMgdGhlIGdlbmVyYXRpb24gb2YgdGhlIHN0YW5kYXJkICJkZXNjcmlwdG9yKCkiIGFjY2Vzc29yLCB3aGljaCBjYW4KIGNvbmZsaWN0IHdpdGggYSBmaWVsZCBvZiB0aGUgc2FtZSBuYW1lLiAgVGhpcyBpcyBtZWFudCB0byBtYWtlIG1pZ3JhdGlvbgogZnJvbSBwcm90bzEgZWFzaWVyOyBuZXcgY29kZSBzaG91bGQgYXZvaWQgZmllbGRzIG5hbWVkICJkZXNjcmlwdG9yIi4KCg0KBQQLAgEEEgSUBAIKCg0KBQQLAgEFEgSUBAsPCg0KBQQLAgEBEgSUBBAvCg0KBQQLAgEDEgSUBDIzCg0KBQQLAgEIEgSUBDRFCg0KBQQLAgEHEgSUBD9ECu4BCgQECwICEgSaBAIxGt8BIElzIHRoaXMgbWVzc2FnZSBkZXByZWNhdGVkPwogRGVwZW5kaW5nIG9uIHRoZSB0YXJnZXQgcGxhdGZvcm0sIHRoaXMgY2FuIGVtaXQgRGVwcmVjYXRlZCBhbm5vdGF0aW9ucwogZm9yIHRoZSBtZXNzYWdlLCBvciBpdCB3aWxsIGJlIGNvbXBsZXRlbHkgaWdub3JlZDsgaW4gdGhlIHZlcnkgbGVhc3QsCiB0aGlzIGlzIGEgZm9ybWFsaXphdGlvbiBmb3IgZGVwcmVjYXRpbmcgbWVzc2FnZXMuCgoNCgUECwICBBIEmgQCCgoNCgUECwICBRIEmgQLDwoNCgUECwICARIEmgQQGgoNCgUECwICAxIEmgQdHgoNCgUECwICCBIEmgQfMAoNCgUECwICBxIEmgQqLwoLCgMECwkSBJwEAhMKDAoEBAsJABIEnAQLDAoNCgUECwkAARIEnAQLDAoNCgUECwkAAhIEnAQLDAoMCgQECwkBEgScBA4PCg0KBQQLCQEBEgScBA4PCg0KBQQLCQECEgScBA4PCgwKBAQLCQISBJwEERIKDQoFBAsJAgESBJwEERIKDQoFBAsJAgISBJwEERIKoAYKBAQLAgMSBLMEAh4akQYgTk9URTogRG8gbm90IHNldCB0aGUgb3B0aW9uIGluIC5wcm90byBmaWxlcy4gQWx3YXlzIHVzZSB0aGUgbWFwcyBzeW50YXgKIGluc3RlYWQuIFRoZSBvcHRpb24gc2hvdWxkIG9ubHkgYmUgaW1wbGljaXRseSBzZXQgYnkgdGhlIHByb3RvIGNvbXBpbGVyCiBwYXJzZXIuCgogV2hldGhlciB0aGUgbWVzc2FnZSBpcyBhbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYXAgZW50cnkgdHlwZSBmb3IgdGhlCiBtYXBzIGZpZWxkLgoKIEZvciBtYXBzIGZpZWxkczoKICAgICBtYXA8S2V5VHlwZSwgVmFsdWVUeXBlPiBtYXBfZmllbGQgPSAxOwogVGhlIHBhcnNlZCBkZXNjcmlwdG9yIGxvb2tzIGxpa2U6CiAgICAgbWVzc2FnZSBNYXBGaWVsZEVudHJ5IHsKICAgICAgICAgb3B0aW9uIG1hcF9lbnRyeSA9IHRydWU7CiAgICAgICAgIG9wdGlvbmFsIEtleVR5cGUga2V5ID0gMTsKICAgICAgICAgb3B0aW9uYWwgVmFsdWVUeXBlIHZhbHVlID0gMjsKICAgICB9CiAgICAgcmVwZWF0ZWQgTWFwRmllbGRFbnRyeSBtYXBfZmllbGQgPSAxOwoKIEltcGxlbWVudGF0aW9ucyBtYXkgY2hvb3NlIG5vdCB0byBnZW5lcmF0ZSB0aGUgbWFwX2VudHJ5PXRydWUgbWVzc2FnZSwgYnV0CiB1c2UgYSBuYXRpdmUgbWFwIGluIHRoZSB0YXJnZXQgbGFuZ3VhZ2UgdG8gaG9sZCB0aGUga2V5cyBhbmQgdmFsdWVzLgogVGhlIHJlZmxlY3Rpb24gQVBJcyBpbiBzdWNoIGltcGxlbWVudGF0aW9ucyBzdGlsbCBuZWVkIHRvIHdvcmsgYXMKIGlmIHRoZSBmaWVsZCBpcyBhIHJlcGVhdGVkIG1lc3NhZ2UgZmllbGQuCgoNCgUECwIDBBIEswQCCgoNCgUECwIDBRIEswQLDwoNCgUECwIDARIEswQQGQoNCgUECwIDAxIEswQcHQokCgMECwkSBLUEAg0iFyBqYXZhbGl0ZV9zZXJpYWxpemFibGUKCgwKBAQLCQMSBLUECwwKDQoFBAsJAwESBLUECwwKDQoFBAsJAwISBLUECwwKHwoDBAsJEgS2BAINIhIgamF2YW5hbm9fYXNfbGl0ZQoKDAoEBAsJBBIEtgQLDAoNCgUECwkEARIEtgQLDAoNCgUECwkEAhIEtgQLDArqAwoEBAsCBBIEwgQCUBrbAyBFbmFibGUgdGhlIGxl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ZW1vcnkKIGZyYWdtZW50YXRpb24uIEl0IG1heSBhbHNvIGFsbG93IGJldHRlciBwZXJmb3JtYW5jZSB3aGVuIHBhcnNpbmcgZnJvbSBhCiBDb3JkLCBvciB3aGVuIHBhcnNpbmcgd2l0aCBhbGlhc2luZyBlbmFibGVkLCBhcyB0aGUgcGFyc2VkIENvcmQgbWF5IHRoZW4KIGFsaWFzIHRoZSBvcmlnaW5hbCBidWZmZXIuCgoPCgcEDAQAAgEBEgTgBAQICg8KBwQMBAACAQISBOAECwwKDgoGBAwEAAICEgTiBAQVCg8KBwQMBAACAgESBOIEBBAKDwoHBAwEAAICAhIE4gQTFAraAgoEBAwCARIE6QQCGxrLAiBUaGUgcGFja2VkIG9wdGlvbiBjYW4gYmUgZW5hYmxlZCBmb3IgcmVwZWF0ZWQgcHJpbWl0aXZlIGZpZWxkcyB0byBlbmFibGUKIGEgbW9yZSBlZmZpY2llbnQgcmVwcmVzZW50YXRpb24gb24gdGhlIHdpcmUuIFJhdGhlciB0aGFuIHJlcGVhdGVkbHkKIHdyaXRpbmcgdGhlIHRhZyBhbmQgdHlwZSBmb3IgZWFjaCBlbGVtZW50LCB0aGUgZW50aXJlIGFycmF5IGlzIGVuY29kZWQgYXMKIGEgc2luZ2xlIGxlbmd0aC1kZWxpbWl0ZWQgYmxvYi4gSW4gcHJvdG8zLCBvbmx5IGV4cGxpY2l0IHNldHRpbmcgaXQgdG8KIGZhbHNlIHdpbGwgYXZvaWQgdXNpbmcgcGFja2VkIGVuY29kaW5nLgoKDQoFBAwCAQQSBOkEAgoKDQoFBAwCAQUSBOkECw8KDQoFBAwCAQESBOkEEBYKDQoFBAwCAQMSBOkEGRoKmgUKBAQMAgISBPYEAjMaiwUgVGhlIGpzdHlwZSBvcHRpb24gZGV0ZXJtaW5lcyB0aGUgSmF2YVNjcmlwdCB0eXBlIHVzZWQgZm9yIHZhbHVlcyBvZiB0aGUKIGZpZWxkLiAgVGhlIG9wdGlvbiBpcyBwZXJtaXR0ZWQgb25seSBmb3IgNjQgYml0IGludGVncmFsIGFuZCBmaXhlZCB0eXBlcwogKGludDY0LCB1aW50NjQsIHNpbnQ2NCwgZml4ZWQ2NCwgc2ZpeGVkNjQpLiAgQSBmaWVsZCB3aXRoIGpzdHlwZSBKU19TVFJJTkcKIGlzIHJlcHJlc2VudGVkIGFzIEphdmFTY3JpcHQgc3RyaW5nLCB3aGljaCBhdm9pZHMgbG9zcyBvZiBwcmVjaXNpb24gdGhhdAogY2FuIGhhcHBlbiB3aGVuIGEgbGFyZ2UgdmFsdWUgaXMgY29udmVydGVkIHRvIGEgZmxvYXRpbmcgcG9pbnQgSmF2YVNjcmlwdC4KIFNwZWNpZnlpbmcgSlNfTlVNQkVSIGZvciB0aGUganN0eXBlIGNhdXNlcyB0aGUgZ2VuZXJhdGVkIEphdmFTY3JpcHQgY29kZSB0bwogdXNlIHRoZSBKYXZhU2NyaXB0ICJudW1iZXIiIHR5cGUuICBUaGUgYmVoYXZpb3Igb2YgdGhlIGRlZmF1bHQgb3B0aW9uCiBKU19OT1JNQUwgaXMgaW1wbGVtZW50YXRpb24gZGVwZW5kZW50LgoKIFRoaXMgb3B0aW9uIGlzIGFuIGVudW0gdG8gcGVybWl0IGFkZGl0aW9uYWwgdHlwZXMgdG8gYmUgYWRkZWQsIGUuZy4KIGdvb2cubWF0aC5JbnRlZ2VyLgoKDQoFBAwCAgQSBPYEAgoKDQoFBAwCAgYSBPYECxEKDQoFBAwCAgESBPYEEhgKDQoFBAwCAgMSBPYEGxwKDQoFBAwCAggSBPYEHTIKDQoFBAwCAgcSBPYEKDEKDgoEBAwEARIG9wQCgAUDCg0KBQQMBAEBEgT3BAcNCicKBgQMBAECABIE+QQEEhoXIFVzZSB0aGUgZGVmYXVsdCB0eXBlLgoKDwoHBAwEAQIAARIE+QQEDQoPCgcEDAQBAgACEgT5BBARCikKBgQMBAECARIE/AQEEhoZIFVzZSBKYXZhU2NyaXB0IHN0cmluZ3MuCgoPCgcEDAQBAgEBEgT8BAQNCg8KBwQMBAECAQISBPwEEBEKKQoGBAwEAQICEgT/BAQSGhkgVXNlIEphdmFTY3JpcHQgbnVtYmVycy4KCg8KBwQMBAECAgESBP8EBA0KDwoHBAwEAQICAhIE/wQQEQr/DQoEBAwCAxIEoAUCKxrwDSBTaG91bGQgdGhpcyBmaWVsZCBiZSBwYXJzZWQgbGF6aWx5PyAgTGF6eSBhcHBsaWVzIG9ubHkgdG8gbWVzc2FnZS10eXBlCiBmaWVsZHMuICBJdCBtZWFucyB0aGF0IHdoZW4gdGhlIG91dGVyIG1lc3NhZ2UgaXMgaW5pdGlhbGx5IHBhcnNlZCwgdGhlCiBpbm5lciBtZXNzYWdlJ3MgY29udGVudHMgd2lsbCBub3QgYmUgcGFyc2VkIGJ1dCBpbnN0ZWFkIHN0b3JlZCBpbiBlbmNvZGVkCiBmb3JtLiAgVGhlIGlubmVyIG1lc3NhZ2Ugd2lsbCBhY3R1YWxseSBiZSBwYXJzZWQgd2hlbiBpdCBpcyBmaXJzdCBhY2Nlc3NlZC4KCiBUaGlzIGlzIG9ubHkgYSBoaW50LiAgSW1wbGVtZW50YXRpb25zIGFyZSBmcmVlIHRvIGNob29zZSB3aGV0aGVyIHRvIHVzZQogZWFnZXIgb3IgbGF6eSBwYXJzaW5nIHJlZ2FyZGxlc3Mgb2YgdGhlIHZhbHVlIG9mIHRoaXMgb3B0aW9uLiAgSG93ZXZlciwKIHNldHRpbmcgdGhpcyBvcHRpb24gdHJ1ZSBzdWdnZXN0cyB0aGF0IHRoZSBwcm90b2NvbCBhdXRob3IgYmVsaWV2ZXMgdGhhdAogdXNpbmcgbGF6eSBwYXJzaW5nIG9uIHRoaXMgZmllbGQgaXMgd29ydGggdGhlIGFkZGl0aW9uYWwgYm9va2tlZXBpbmcKIG92ZXJoZWFkIHR5cGljYWxseSBuZWVkZWQgdG8gaW1wbGVtZW50IGl0LgoKIFRoaXMgb3B0aW9uIGRvZXMgbm90IGFmZmVjdCB0aGUgcHVibGljIGludGVyZmFjZSBvZiBhbnkgZ2VuZXJhdGVkIGNvZGU7CiBhbGwgbWV0aG9kIHNpZ25hdHVyZXMgcmVtYWluIHRoZSBzYW1lLiAgRnVydGhlcm1vcmUsIHRocmVhZC1zYWZldHkgb2YgdGhlCiBpbnRlcmZhY2UgaXMgbm90IGFmZmVjdGVkIGJ5IHRoaXMgb3B0aW9uOyBjb25zdCBtZXRob2RzIHJlbWFpbiBzYWZlIHRvCiBjYWxsIGZyb20gbXVsdGlwbGUgdGhyZWFkcyBjb25jdXJyZW50bHksIHdoaWxlIG5vbi1jb25zdCBtZXRob2RzIGNvbnRpbnVlCiB0byByZXF1aXJlIGV4Y2x1c2l2ZSBhY2Nlc3MuCgogTm90ZSB0aGF0IGltcGxlbWVudGF0aW9ucyBtYXkgY2hvb3NlIG5vdCB0byBjaGVjayByZXF1aXJlZCBmaWVsZHMgd2l0aGluCiBhIGxhenkgc3ViLW1lc3NhZ2UuICBUaGF0IGlzLCBjYWxsaW5nIElzSW5pdGlhbGl6ZWQoKSBvbiB0aGUgb3V0ZXIgbWVzc2FnZQogbWF5IHJldHVybiB0cnVlIGV2ZW4gaWYgdGhlIGlubmVyIG1lc3NhZ2UgaGFzIG1pc3NpbmcgcmVxdWlyZWQgZmllbGRzLgogVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBvdGhlcndpc2UgdGhlIGlubmVyIG1lc3NhZ2Ugd291bGQgaGF2ZSB0byBiZQogcGFyc2VkIGluIG9yZGVyIHRvIHBlcmZvcm0gdGhlIGNoZWNrLCBkZWZlYXRpbmcgdGhlIHB1cnBvc2Ugb2YgbGF6eQogcGFyc2luZy4gIEFuIGltcGxlbWVudGF0aW9uIHdoaWNoIGNob29zZXMgbm90IHRvIGNoZWNrIHJlcXVpcmVkIGZpZWxkcwogbXVzdCBiZSBjb25zaXN0ZW50IGFib3V0IGl0LiAgVGhhdCBpcywgZm9yIGFueSBwYXJ0aWN1bGFyIHN1Yi1tZXNzYWdlLCB0aGUKIGltcGxlbWVudGF0aW9uIG11c3QgZWl0aGVyICphbHdheXMqIGNoZWNrIGl0cyByZXF1aXJlZCBmaWVsZHMsIG9yICpuZXZlcioKIGNoZWNrIGl0cyByZXF1aXJlZCBmaWVsZHMsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBvciBub3QgdGhlIG1lc3NhZ2UgaGFzCiBiZWVuIHBhcnNlZC4KCiBBcyBvZiBNYXkgMjAyMiwgbGF6eSB2ZXJpZmllcyB0aGUgY29udGVudHMgb2YgdGhlIGJ5dGUgc3RyZWFtIGR1cmluZwogcGFyc2luZy4gIEFuIGludmFsaWQgYnl0ZSBzdHJlYW0gd2lsbCBjYXVzZSB0aGUgb3ZlcmFsbCBwYXJzaW5nIHRvIGZhaWwuCgoNCgUEDAIDBBIEoAUCCgoNCgUEDAIDBRIEoAULDwoNCgUEDAIDARIEoAUQFAoNCgUEDAIDAxIEoAUXGAoNCgUEDAIDCBIEoAUZKgoNCgUEDAIDBxIEoAUkKQqvAQoEBAwCBBIEpQUCNxqgASB1bnZl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cmNlIGNvZGUgaW4gYSAucHJvdG8gZmlsZSB3aGljaAogY29ycmVzcG9uZHMgdG8gYSBwYXJ0aWN1bGFyIGRlZmluaXRpb24uICBUaGlzIGluZm9ybWF0aW9uIGlzIGludGVuZGVkCiB0byBiZSB1c2VmdWwgdG8gSURFcywgY29kZSBpbmRleGVycywgZG9jdW1lbnRhdGlvbiBnZW5lcmF0b3JzLCBhbmQgc2ltaWxhcgogdG9vbHMuCgogRm9yIGV4YW1wbGUsIHNheSB3ZSBoYXZlIGEgZmlsZSBsaWtlOgogICBtZXNzYWdlIEZvbyB7CiAgICAgb3B0aW9uYWwgc3RyaW5nIGZvbyA9IDE7CiAgIH0KIExldCdzIGxvb2sgYXQganVzdCB0aGUgZmllbGQgZGVmaW5pdGlvbjoKICAgb3B0aW9uYWwgc3RyaW5nIGZvbyA9IDE7CiAgIF4gICAgICAgXl4gICAgIF5eICBeICBeXl4KICAgYSAgICAgICBiYyAgICAgZGUgIGYgIGdoaQogV2UgaGF2ZSB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczoKICAgc3BhbiAgIHBhdGggICAgICAgICAgICAgICByZXByZXNlbnRzCiAgIFthLGkpICBbIDQsIDAsIDIsIDAgXSAgICAgVGhlIHdob2xlIGZpZWxkIGRlZmluaXRpb24uCiAgIFthLGIpICBbIDQsIDAsIDIsIDAsIDQgXSAgVGhlIGxhYmVsIChvcHRpb25hbCkuCiAgIFtjLGQpICBbIDQsIDAsIDIsIDAsIDUgXSAgVGhlIHR5cGUgKHN0cmluZykuCiAgIFtlLGYpICBbIDQsIDAsIDIsIDAsIDEgXSAgVGhlIG5hbWUgKGZvbykuCiAgIFtnLGgpICBbIDQsIDAsIDIsIDAsIDMgXSAgVGhlIG51bWJlciAoMSkuCgogTm90ZXM6CiAtIEEgbG9jYXRpb24gbWF5IHJlZmVyIHRvIGEgcmVwZWF0ZWQgZmllbGQgaXRzZWxmIChpLmUuIG5vdCB0byBhbnkKICAgcGFydGljdWxhciBpbmRleCB3aXRoaW4gaXQpLiAgVGhpcyBpcyB1c2VkIHdoZW5ldmVyIGEgc2V0IG9mIGVsZW1lbnRzIGFyZQogICBsb2dpY2FsbHkgZW5jbG9zZWQgaW4gYSBzaW5nbGUgY29kZSBzZWdtZW50LiAgRm9yIGV4YW1wbGUsIGFuIGVudGlyZQogICBleHRlbmQgYmxvY2sgKHBvc3NpYmx5IGNvbnRhaW5pbmcgbXVsdGlwbGUgZXh0ZW5zaW9uIGRlZmluaXRpb25zKSB3aWxsCiAgIGhhdmUgYW4gb3V0ZXIgbG9jYXRpb24gd2hvc2UgcGF0aCByZWZlcnMgdG8gdGhlICJleHRlbnNpb25zIiByZXBlYXRlZAogICBmaWVsZCB3aXRob3V0IGFuIGluZGV4LgogLSBNdWx0aXBsZSBsb2NhdGlvbnMgbWF5IGhhdmUgdGhlIHNhbWUgcGF0aC4gIFRoaXMgaGFwcGVucyB3aGVuIGEgc2luZ2xlCiAgIGxvZ2ljYWwgZGVjbGFyYXRpb24gaXMgc3ByZWFkIG91dCBhY3Jvc3MgbXVsdGlwbGUgcGxhY2VzLiAgVGhlIG1vc3QKICAgb2J2aW91cyBleGFtcGxlIGlzIHRoZSAiZXh0ZW5kIiBibG9jayBhZ2FpbiAtLSB0aGVyZSBtYXkgYmUgbXVsdGlwbGUKICAgZXh0ZW5kIGJsb2NrcyBpbiB0aGUgc2FtZSBzY29wZSwgZWFjaCBvZiB3aGljaCB3aWxsIGhhdmUgdGhlIHNhbWUgcGF0aC4KIC0gQSBsb2NhdGlvbidzIHNwYW4gaXMgbm90IGFsd2F5cyBhIHN1YnNldCBvZiBpdHMgcGFyZW50J3Mgc3Bhbi4gIEZvcgogICBleGFtcGxlLCB0aGUgImV4dGVuZGVlIiBvZiBhbiBleHRlbnNpb24gZGVjbGFyYXRpb24gYXBwZWFycyBhdCB0aGUKICAgYmVnaW5uaW5nIG9mIHRoZSAiZXh0ZW5kIiBibG9jayBhbmQgaXMgc2hhcmVkIGJ5IGFsbCBleHRlbnNpb25zIHdpdGhpbgogICB0aGUgYmxvY2suCiAtIEp1c3QgYmVjYXVzZSBhIGxvY2F0aW9uJ3Mgc3BhbiBpcyBhIHN1YnNldCBvZiBzb21lIG90aGVyIGxvY2F0aW9uJ3Mgc3BhbgogICBkb2VzIG5vdCBtZWFuIHRoYXQgaXQgaXMgYSBkZXNjZW5kYW50LiAgRm9yIGV4YW1wbGUsIGEgImdyb3VwIiBkZWZpbmVzCiAgIGJvdGggYSB0eXBlIGFuZCBhIGZpZWxkIGluIGEgc2luZ2xlIGRlY2xhcmF0aW9uLiAgVGh1cywgdGhlIGxvY2F0aW9ucwogICBjb3JyZXNwb25kaW5nIHRvIHRoZSB0eXBlIGFuZCBmaWVsZCBhbmQgdGhlaXIgY29tcG9uZW50cyB3aWxsIG92ZXJsYXAuCiAtIENvZGUgd2hpY2ggdHJpZXMgdG8gaW50ZXJwcmV0IGxvY2F0aW9ucyBzaG91bGQgcHJvYmFibHkgYmUgZGVzaWduZWQgdG8KICAgaWdub3JlIHRob3NlIHRoYXQgaXQgZG9lc24ndCB1bmRlcnN0YW5kLCBhcyBtb3JlIHR5cGVzIG9mIGxvY2F0aW9ucyBjb3VsZAogICBiZSByZWNvcmRlZCBpbiB0aGUgZnV0dXJlLgoKDQoFBBQCAAQSBIkIAgoKDQoFBBQCAAYSBIkICxMKDQoFBBQCAAESBIkIFBwKDQoFBBQCAAMSBIkIHyAKDgoEBBQDABIGiggC3QgDCg0KBQQUAwABEgSKCAoSCokHCgYEFAMAAgASBKIIBCwa+AYgSWRlbnRpZmllcyB3aGljaCBwYXJ0IG9mIHRoZSBGaWxlRGVzY3JpcHRvclByb3RvIHdhcyBkZWZpbmVkIGF0IHRoaXMKIGxvY2F0aW9uLgoKIEVhY2ggZWxlbWVudCBpcyBhIGZpZWxkIG51bWJlciBvciBhbiBpbmRleC4gIFRoZXkgZm9ybSBhIHBhdGggZnJvbQogdGhlIHJvb3QgRmlsZURlc2NyaXB0b3JQcm90byB0byB0aGUgcGxhY2Ugd2hlcmUgdGhlIGRlZmluaXRpb24gb2NjdXJzLgogRm9yIGV4YW1wbGUsIHRoaXMgcGF0aDoKICAgWyA0LCAzLCAyLCA3LCAxIF0KIHJlZmVycyB0bzoKICAgZmlsZS5tZXNzYWdlX3R5cGUoMykgIC8vIDQsIDMKICAgICAgIC5maWVsZCg3KSAgICAgICAgIC8vIDIsIDcKICAgICAgIC5uYW1lKCkgICAgICAgICAgIC8vIDEKIFRoaXMgaXMgYmVjYXVzZSBGaWxlRGVzY3JpcHRvclByb3RvLm1lc3NhZ2VfdHlwZSBoYXMgZmllbGQgbnVtYmVyIDQ6CiAgIHJlcGVhdGVkIERlc2NyaXB0b3JQcm90byBtZXNzYWdlX3R5cGUgPSA0OwogYW5kIERlc2NyaXB0b3JQcm90by5maWVsZCBoYXMgZmllbGQgbnVtYmVyIDI6CiAgIHJlcGVhdGVkIEZpZWxkRGVzY3JpcHRvclByb3RvIGZpZWxkID0gMjsKIGFuZCBGaWVsZERlc2NyaXB0b3JQcm90by5uYW1lIGhhcyBmaWVsZCBudW1iZXIgMToKICAgb3B0aW9uYWwgc3RyaW5nIG5hbWUgPSAxOwoKIFRodXMsIHRoZSBhYm92ZSBwYXRoIGdpdmVzIHRoZSBsb2NhdGlvbiBvZiBhIGZpZWxkIG5hbWUuICBJZiB3ZSByZW1vdmVkCiB0aGUgbGFzdCBlbGVtZW50OgogICBbIDQsIDMsIDIsIDcgXQogdGhpcyBwYXRoIHJlZmVycyB0byB0aGUgd2hvbGUgZmllbGQgZGVjbGFyYXRpb24gKGZyb20gdGhlIGJlZ2lubmluZwogb2YgdGhlIGxhYmVsIHRvIHRoZSB0ZXJtaW5hdGluZyBzZW1pY29sb24pLgoKDwoHBBQDAAIABBIEoggEDAoPCgcEFAMAAgAFEgSiCA0SCg8KBwQUAwACAAESBKIIExcKDwoHBBQDAAIAAxIEoggaGwoPCgcEFAMAAgAIEgSiCBwrChAKCAQUAwACAAgCEgSiCB0qCtICCgYEFAMAAgESBKkIBCwawQIgQWx3YXlzIGhhcyBleGFjdGx5IHRocmVlIG9yIGZvdXIgZWxlbWVudHM6IHN0YXJ0IGxpbmUsIHN0YXJ0IGNvbHVtbiwKIGVuZCBsaW5lIChvcHRpb25hbCwgb3RoZXJ3aXNlIGFzc3VtZWQgc2FtZSBhcyBzdGFydCBsaW5lKSwgZW5kIGNvbHVtbi4KIFRoZXNlIGFyZSBwYWNrZWQgaW50byBhIHNpbmdsZSBmaWVsZCBmb3IgZWZmaWNpZW5jeS4gIE5vdGUgdGhhdCBsaW5lCiBhbmQgY29sdW1uIG51bWJlcnMgYXJlIHplcm8tYmFzZWQgLS0gdHlwaWNhbGx5IHlvdSB3aWxsIHdhbnQgdG8gYWRkCiAxIHRvIGVhY2ggYmVmb3JlIGRpc3BsYXlpbmcgdG8gYSB1c2VyLgoKDwoHBBQDAAIBBBIEqQgEDAoPCgcEFAMAAgEFEgSpCA0SCg8KBwQUAwACAQESBKkIExcKDwoHBBQDAAIBAxIEqQgaGwoPCgcEFAMAAgEIEgSpCBwrChAKCAQUAwACAQgCEgSpCB0qCqUMCgYEFAMAAgISBNoIBCkalAwgSWYgdGhpcyBTb3VyY2VDb2RlSW5mbyByZXByZXNlbnRzIGEgY29tcGxldGUgZGVjbGFyYXRpb24sIHRoZXNlIGFyZSBhbnkKIGNvbW1lbnRzIGFwcGVhcmluZyBiZWZvcmUgYW5kIGFmdGVyIHRoZSBkZWNsYXJhdGlvbiB3aGljaCBhcHBlYXIgdG8gYmUKIGF0dGFjaGVkIHRvIHRoZSBkZWNsYXJhdGlvbi4KCiBBIHNlcmllcyBvZiBsaW5lIGNvbW1lbnRzIGFwcGVhcmluZyBvbiBjb25zZWN1dGl2ZSBsaW5lcywgd2l0aCBubyBvdGhlcgogdG9rZW5zIGFwcGVhcmluZyBvbiB0aG9zZSBsaW5lcywgd2lsbCBiZSB0cmVhdGVkIGFzIGEgc2luZ2xlIGNvbW1lbnQuCgogbGVhZGluZ19kZXRhY2hlZF9jb21tZW50cyB3aWxsIGtlZXAgcGFyYWdyYXBocyBvZiBjb21tZW50cyB0aGF0IGFwcGVhcgogYmVmb3JlIChidXQgbm90IGNvbm5lY3RlZCB0bykgdGhlIGN1cnJlbnQgZWxlbWVudC4gRWFjaCBwYXJhZ3JhcGgsCiBzZXBhcmF0ZWQgYnkgZW1wdHkgbGluZXMsIHdpbGwgYmUgb25lIGNvbW1lbnQgZWxlbWVudCBpbiB0aGUgcmVwZWF0ZWQKIGZpZWxkLgoKIE9ubHkgdGhlIGNvbW1lbnQgY29udGVudCBpcyBwcm92aWRlZDsgY29tbWVudCBtYXJrZXJzIChlLmcuIC8vKSBhcmUKIHN0cmlwcGVkIG91dC4gIEZvciBibG9jayBjb21tZW50cywgbGVhZGluZyB3aGl0ZXNwYWNlIGFuZCBhbiBhc3Rlcmlzawogd2lsbCBiZSBzdHJpcHBlZCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgZWFjaCBsaW5lIG90aGVyIHRoYW4gdGhlIGZpcnN0LgogTmV3bGluZXMgYXJlIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuCgogRXhhbXBsZXM6CgogICBvcHRpb25hbCBpbnQzMiBmb28gPSAxOyAgLy8gQ29tbWVudCBhdHRhY2hlZCB0byBmb28uCiAgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gYmFyLgogICBvcHRpb25hbCBpbnQzMiBiYXIgPSAyOwoKICAgb3B0aW9uYWwgc3RyaW5nIGJheiA9IDM7CiAgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gYmF6LgogICAvLyBBbm90aGVyIGxpbmUgYXR0YWNoZWQgdG8gYmF6LgoKICAgLy8gQ29tbWVudCBhdHRhY2hlZCB0byBtb28uCiAgIC8vCiAgIC8vIEFub3RoZXIgbGluZSBhdHRhY2hlZCB0byBtb28uCiAgIG9wdGlvbmFsIGRvdWJsZSBtb28gPSA0OwoKICAgLy8gRGV0YWNoZWQgY29tbWVudCBmb3IgY29yZ2UuIFRoaXMgaXMgbm90IGxlYWRpbmcgb3IgdHJhaWxpbmcgY29tbWVudHMKICAgLy8gdG8gbW9vIG9yIGNvcmdlIGJlY2F1c2UgdGhlcmUgYXJlIGJsYW5rIGxpbmVzIHNlcGFyYXRpbmcgaXQgZnJvbQogICAvLyBib3RoLgoKICAgLy8gRGV0YWNoZWQgY29tbWVudCBmb3IgY29yZ2UgcGFyYWdyYXBoIDIuCgogICBvcHRpb25hbCBzdHJpbmcgY29yZ2UgPSA1OwogICAvKiBCbG9jayBjb21tZW50IGF0dGFjaGVkCiAgICAqIHRvIGNvcmdlLiAgTGVhZGluZyBhc3Rlcmlza3MKICAgICogd2lsbCBiZSByZW1vdmVkLiAqLwogICAvKiBCbG9jayBjb21tZW50IGF0dGFjaGVkIHRvCiAgICAqIGdyYXVsdC4gKi8KICAgb3B0aW9uYWwgaW50MzIgZ3JhdWx0ID0gNjsKCiAgIC8vIGlnbm9yZWQgZGV0YWNoZWQgY29tbWVudHMuCgoPCgcEFAMAAgIEEgTaCAQMCg8KBwQUAwACAgUSBNoIDRMKDwoHBBQDAAICARIE2ggUJAoPCgcEFAMAAgIDEgTaCCcoCg4KBgQUAwACAxIE2wgEKgoPCgcEFAMAAgMEEgTbCAQMCg8KBwQUAwACAwUSBNsIDRMKDwoHBBQDAAIDARIE2wgUJQoPCgcEFAMAAgMDEgTbCCgpCg4KBgQUAwACBBIE3AgEMgoPCgcEFAMAAgQEEgTcCAQMCg8KBwQUAwACBAUSBNwIDRMKDwoHBBQDAAIEARIE3AgULQoPCgcEFAMAAgQDEgTcCDAxCu4BCgIEFRIG4wgAhAkBGt8BIERlc2NyaWJlcyB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gZ2VuZXJhdGVkIGNvZGUgYW5kIGl0cyBvcmlnaW5hbCBzb3VyY2UKIGZpbGUuIEEgR2VuZXJhdGVkQ29kZUluZm8gbWVzc2FnZSBpcyBhc3NvY2lhdGVkIHdpdGggb25seSBvbmUgZ2VuZXJhdGVkCiBzb3VyY2UgZmlsZSwgYnV0IG1heSBjb250YWluIHJlZmVyZW5jZXMgdG8gZGlmZmVyZW50IHNvdXJjZSAucHJvdG8gZmlsZXMuCgoLCgMEFQESBOMICBkKeAoEBBUCABIE5ggCJRpqIEFuIEFubm90YXRpb24gY29ubmVjdHMgc29tZSBzcGFuIG9mIHRleHQgaW4gZ2VuZXJhdGVkIGNvZGUgdG8gYW4gZWxlbWVudAogb2YgaXRzIGdlbmVyYXRpbmcgLnByb3RvIGZpbGUuCgoNCgUEFQIABBIE5ggCCgoNCgUEFQIABhIE5ggLFQoNCgUEFQIAARIE5ggWIAoNCgUEFQIAAxIE5ggjJAoOCgQEFQMAEgbnCAKDCQMKDQoFBBUDAAESBOcIChQKjwEKBgQVAwACABIE6ggELBp/IElkZW50aWZpZXMgdGhlIGVsZW1lbnQgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZSAucHJvdG8gZmlsZS4gVGhpcyBmaWVsZAogaXMgZm9ybWF0dGVkIHRoZSBzYW1lIGFzIFNvdXJjZUNvZGVJbmZvLkxvY2F0aW9uLnBhdGguCgoPCgcEFQMAAgAEEgTqCAQMCg8KBwQVAwACAAUSBOoIDRIKDwoHBBUDAAIAARIE6ggTFwoPCgcEFQMAAgADEgTqCBobCg8KBwQVAwACAAgSBOoIHCsKEAoIBBUDAAIACAISBOoIHSoKTwoGBBUDAAIBEgTtCAQkGj8gSWRlbnRpZmllcyB0aGUgZmlsZXN5c3RlbSBwYXRoIHRvIHRoZSBvcmlnaW5hbCBzb3VyY2UgLnByb3RvLgoKDwoHBBUDAAIBBBIE7QgEDAoPCgcEFQMAAgEFEgTtCA0TCg8KBwQVAwACAQESBO0IFB8KDwoHBBUDAAIBAxIE7QgiIwp3CgYEFQMAAgISBPEIBB0aZyBJZGVudGlmaWVzIHRoZSBzdGFydGluZyBvZmZzZXQgaW4gYnl0ZXMgaW4gdGhlIGdlbmVyYXRlZCBjb2RlCiB0aGF0IHJlbGF0ZXMgdG8gdGhlIGlkZW50aWZpZWQgb2JqZWN0LgoKDwoHBBUDAAICBBIE8QgEDAoPCgcEFQMAAgIFEgTxCA0SCg8KBwQVAwACAgESBPEIExgKDwoHBBUDAAICAxIE8QgbHArbAQoGBBUDAAIDEgT2CAQbGsoBIElkZW50aWZpZXMgdGhlIGVuZGluZyBvZmZzZXQgaW4gYnl0ZXMgaW4gdGhlIGdlbmVyYXRlZCBjb2RlIHRoYXQKIHJlbGF0ZXMgdG8gdGhlIGlkZW50aWZpZWQgb2JqZWN0LiBUaGUgZW5kIG9mZnNldCBzaG91bGQgYmUgb25lIHBhc3QKIHRoZSBsYXN0IHJlbGV2YW50IGJ5dGUgKHNvIHRoZSBsZW5ndGggb2YgdGhlIHRleHQgPSBlbmQgLSBiZWdpbikuCgoPCgcEFQMAAgMEEgT2CAQMCg8KBwQVAwACAwUSBPYIDRIKDwoHBBUDAAIDARIE9ggTFgoPCgcEFQMAAgMDEgT2CBkaCmoKBgQVAwAEABIG+ggEgQkFGlggUmVwcmVzZW50cyB0aGUgaWRlbnRpZmllZCBvYmplY3QncyBlZmZlY3Qgb24gdGhlIGVsZW1lbnQgaW4gdGhlIG9yaWdpbmFsCiAucHJvdG8gZmlsZS4KCg8KBwQVAwAEAAESBPoICREKRgoIBBUDAAQAAgASBPwIBg8aNCBUaGVyZSBpcyBubyBlZmZlY3Qgb3IgdGhlIGVmZmVjdCBpcyBpbmRlc2NyaWJhYmxlLgoKEQoJBBUDAAQAAgABEgT8CAYKChEKCQQVAwAEAAIAAhIE/AgNDgo8CggEFQMABAACARIE/ggGDhoqIFRoZSBlbGVtZW50IGlzIHNldCBvciBvdGhlcndpc2UgbXV0YXRlZC4KChEKCQQVAwAEAAIBARIE/ggGCQoRCgkEFQMABAACAQISBP4IDA0KOAoIBBUDAAQAAgISBIAJBhAaJiBBbiBhbGlhcyB0byB0aGUgZWxlbWVudCBpcyByZXR1cm5lZC4KChEKCQQVAwAEAAICARIEgAkGCwoRCgkEFQMABAACAgISBIAJDg8KDgoGBBUDAAIEEgSCCQQjCg8KBwQVAwACBAQSBIIJBAwKDwoHBBUDAAIEBhIEggkNFQoPCgcEFQMAAgQBEgSCCRYeCg8KBwQVAwACBAMSBIIJISIK6nwKMmNzaGFycC9wcm90b3MvdW5pdHRlc3RfY3VzdG9tX29wdGlvbnNfcHJvdG8zLnByb3RvEhFwcm90b2J1Zl91bml0dGVzdBogZ29vZ2xlL3Byb3RvYnVmL2Rlc2NyaXB0b3IucHJvdG8i6wEKHFRlc3RNZXNzYWdlV2l0aEN1c3RvbU9wdGlvbnMSJgoGZmllbGQxGAEgASgJQg4IAcHgwx0t4XUKAgAAAFIGZmllbGQxEiEKC29uZW9mX2ZpZWxkGAIgASgFSABSCm9uZW9mRmllbGQiUwoGQW5FbnVtEhYKEkFORU5VTV9VTlNQRUNJRklFRBAAEg8KC0FORU5VTV9WQUwxEAESFgoLQU5FTlVNX1ZBTDIQAhoFsIb6BXsaCMX2yR3r/P//OhAIAODpwh3I//////////8BQhkKB0FuT25lb2YSDviswx2d//////////8BIhgKFkN1c3RvbU9wdGlvbkZvb1JlcXVlc3QiGQoXQ3VzdG9tT3B0aW9uRm9vUmVzcG9uc2UiHgocQ3VzdG9tT3B0aW9uRm9vQ2xpZW50TWVzc2FnZSIeChxDdXN0b21PcHRpb25Gb29TZXJ2ZXJNZXNzYWdlIo8BChpEdW1teU1lc3NhZ2VDb250YWluaW5nRW51bSJxCgxUZXN0RW51bVR5cGUSIAocVEVTVF9PUFRJT05fRU5VTV9VTlNQRUNJRklFRBAAEhoKFlRFU1RfT1BUSU9OX0VOVU1fVFlQRTEQFhIjChZURVNUX09QVElPTl9FTlVNX1RZUEUyEOn//////////wEiIQofRHVtbXlNZXNzYWdlSW52YWxpZEFzT3B0aW9uVHlwZSKKAQocQ3VzdG9tT3B0aW9uTWluSW50ZWdlclZhbHVlczpqmdaoHQAAAAAAAACArY2vHQAAAICR7q8dAAAAAAAAAACd9a8dAAAAAPiXsB3///////////8BgMSwHf////8P+PWwHQCAk7IdALC8sh2AgICAgICAgIAB6MayHYCAgID4/////wHQ3rIdACKRAQocQ3VzdG9tT3B0aW9uTWF4SW50ZWdlclZhbHVlczpxmdaoHf////////9/rY2vHf///3+R7q8d//////////+d9a8d//////iXsB3+//////////8BgMSwHf7///8P+PWwHf///////////wGAk7Id/////w+wvLId//////////9/6MayHf////8H0N6yHQEibgoXQ3VzdG9tT3B0aW9uT3RoZXJWYWx1ZXM6U4jZoh3p//////////8BstmiHQtIZWxsbwBXb3JsZKrcoh0OSGVsbG8sICJXb3JsZCLp3KId+1mMQsrA8z/136Md54dFQejGsh2c//////////8BIjQKHFNldHRpbmdSZWFsc0Zyb21Qb3NpdGl2ZUludHM6FOncoh0AAAAAAEBjQPXfox0AAEBBIjQKHFNldHRpbmdSZWFsc0Zyb21OZWdhdGl2ZUludHM6FOncoh0AAAAAAEBjwPXfox0AAEDBImIKEkNvbXBsZXhPcHRpb25UeXBlMRIQCgNmb28YASABKAVSA2ZvbxISCgRmb28yGAIgASgFUgRmb28yEhIKBGZvbzMYAyABKAVSBGZvbzMSEgoEZm9vNBgEIAMoBVIEZm9vNCKtAwoSQ29tcGxleE9wdGlvblR5cGUyEjcKA2JhchgBIAEoCzIlLnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMVIDYmFyEhAKA2JhehgCIAEoBVIDYmF6EkwKBGZyZWQYAyABKAsyOC5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTIuQ29tcGxleE9wdGlvblR5cGU0UgRmcmVkElAKBmJhcm5leRgEIAMoCzI4LnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMi5Db21wbGV4T3B0aW9uVHlwZTRSBmJhcm5leRqrAQoSQ29tcGxleE9wdGlvblR5cGU0EhQKBXdhbGRvGAEgASgFUgV3YWxkbzJ/Cgxjb21wbGV4X29wdDQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYivXRAyABKAsyOC5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTIuQ29tcGxleE9wdGlvblR5cGU0Ugtjb21wbGV4T3B0NCImChJDb21wbGV4T3B0aW9uVHlwZTMSEAoDcXV4GAEgASgFUgNxdXgiTgoVVmFyaW91c0NvbXBsZXhPcHRpb25zOjXSqI8dAwizD/rekB0CCAmq/ZAdFgoDCOcFENsHGgMIwQIiAghlIgMI1AGi4pUdBggqIgJjWCJXCglBZ2dyZWdhdGUSDAoBaRgBIAEoBVIBaRIMCgFzGAIgASgJUgFzEi4KA3N1YhgDIAEoCzIcLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZVIDc3ViImQKEEFnZ3JlZ2F0ZU1lc3NhZ2USNAoJZmllbGRuYW1lGAEgASgFQhbyoYc7ERIPRmllbGRBbm5vdGF0aW9uUglmaWVsZG5hbWU6GsLRhjsVCGUSEU1lc3NhZ2VBbm5vdGF0aW9uIqQBChBOZXN0ZWRPcHRpb25UeXBlGkgKDU5lc3RlZE1lc3NhZ2USLwoMbmVzdGVkX2ZpZWxkGAEgASgFQgzB4MMd6gMAAAAAAABSC25lc3RlZEZpZWxkOgbg6cId6QciRgoKTmVzdGVkRW51bRIPCgtVTlNQRUNJRklFRBAAEh0KEU5FU1RFRF9FTlVNX1ZBTFVFEAEaBrCG+gXsBxoIxfbJHesDAAAqUgoKTWV0aG9kT3B0MRIaChZNRVRIT0RPUFQxX1VOU1BFQ0lGSUVEEAASEwoPTUVUSE9ET1BUMV9WQUwxEAESEwoPTUVUSE9ET1BUMV9WQUwyEAIqXgoNQWdncmVnYXRlRW51bRIPCgtVTlNQRUNJRklFRBAAEiUKBVZBTFVFEAEaGsr8iTsVEhNFbnVtVmFsdWVBbm5vdGF0aW9uGhWSlYg7EBIORW51bUFubm90YXRpb24yjgEKHFRlc3RTZXJ2aWNlV2l0aEN1c3RvbU9wdGlvbnMSYwoDRm9vEikucHJvdG9idWZfdW5pdHRlc3QuQ3VzdG9tT3B0aW9uRm9vUmVxdWVzdBoqLnByb3RvYnVmX3VuaXR0ZXN0LkN1c3RvbU9wdGlvbkZvb1Jlc3BvbnNlIgXg+oweAhoJkLKLHtPbgMtJMpkBChBBZ2dyZWdhdGVTZXJ2aWNlEmsKBk1ldGhvZBIjLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZU1lc3NhZ2UaIy5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVNZXNzYWdlIhfKyJY7EhIQTWV0aG9kQW5ub3RhdGlvbhoYyvuOOxMSEVNlcnZpY2VBbm5vdGF0aW9uOjwKCWZpbGVfb3B0MRIcLmdvb2dsZS5wcm90b2J1Zi5GaWxlT3B0aW9ucxiOndgDIAEoBFIIZmlsZU9wdDE6RQoMbWVzc2FnZV9vcHQxEh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGJyt2AMgASgFUgttZXNzYWdlT3B0MTo/CgpmaWVsZF9vcHQxEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxiIvNgDIAEoBlIJZmllbGRPcHQxOj8KCm9uZW9mX29wdDESHS5nb29nbGUucHJvdG9idWYuT25lb2ZPcHRpb25zGM+12AMgASgFUglvbmVvZk9wdDE6PAoJZW51bV9vcHQxEhwuZ29vZ2xlLnByb3RvYnVmLkVudW1PcHRpb25zGOie2QMgASgPUghlbnVtT3B0MTpLCg9lbnVtX3ZhbHVlX29wdDESIS5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlT3B0aW9ucxjmoF8gASgFUg1lbnVtVmFsdWVPcHQxOkUKDHNlcnZpY2Vfb3B0MRIfLmdvb2dsZS5wcm90b2J1Zi5TZXJ2aWNlT3B0aW9ucxiituEDIAEoElILc2VydmljZU9wdDE6YQoLbWV0aG9kX29wdDESHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxisz+EDIAEoDjIdLnByb3RvYnVmX3VuaXR0ZXN0Lk1ldGhvZE9wdDFSCm1ldGhvZE9wdDE6PQoIYm9vbF9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY6qvWAyABKAhSB2Jvb2xPcHQ6PwoJaW50MzJfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGO2o1gMgASgFUghpbnQzMk9wdDo/CglpbnQ2NF9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYxqfWAyABKANSCGludDY0T3B0OkEKCnVpbnQzMl9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYsKLWAyABKA1SCXVpbnQzMk9wdDpBCgp1aW50NjRfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGN+O1gMgASgEUgl1aW50NjRPcHQ6QQoKc2ludDMyX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjAiNYDIAEoEVIJc2ludDMyT3B0OkEKCnNpbnQ2NF9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY/4LWAyABKBJSCXNpbnQ2NE9wdDpDCgtmaXhlZDMyX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjT/tUDIAEoB1IKZml4ZWQzMk9wdDpDCgtmaXhlZDY0X29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxji/dUDIAEoBlIKZml4ZWQ2NE9wdDpFCgxzZml4ZWQzMl9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY1fHVAyABKA9SC3NmaXhlZDMyT3B0OkUKDHNmaXhlZDY0X29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjjitUDIAEoEFILc2ZpeGVkNjRPcHQ6PwoJZmxvYXRfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGP671AMgASgCUghmbG9hdE9wdDpBCgpkb3VibGVfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGM2r1AMgASgBUglkb3VibGVPcHQ6QQoKc3RyaW5nX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjFq9QDIAEoCVIJc3RyaW5nT3B0Oj8KCWJ5dGVzX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxiWq9QDIAEoDFIIYnl0ZXNPcHQ6eQoIZW51bV9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYkavUAyABKA4yOi5wcm90b2J1Zl91bml0dGVzdC5EdW1teU1lc3NhZ2VDb250YWluaW5nRW51bS5UZXN0RW51bVR5cGVSB2VudW1PcHQ6gAEKEG1lc3NhZ2VfdHlwZV9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYr/LTAyABKAsyMi5wcm90b2J1Zl91bml0dGVzdC5EdW1teU1lc3NhZ2VJbnZhbGlkQXNPcHRpb25UeXBlUg5tZXNzYWdlVHlwZU9wdDpsCgxjb21wbGV4X29wdDESHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYpNzSAyABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTFSC2NvbXBsZXhPcHQxOmwKDGNvbXBsZXhfb3B0MhIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjVj9IDIAEoCzIlLnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMlILY29tcGxleE9wdDI6bAoMY29tcGxleF9vcHQzEh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGO+L0gMgASgLMiUucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdGlvblR5cGUzUgtjb21wbGV4T3B0MzpXCgdmaWxlb3B0EhwuZ29vZ2xlLnByb3RvYnVmLkZpbGVPcHRpb25zGM/dsAcgASgLMhwucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlUgdmaWxlb3B0OlgKBm1zZ29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxiY6rAHIAEoCzIcLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZVIGbXNnb3B0OloKCGZpZWxkb3B0Eh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxie9LAHIAEoCzIcLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZVIIZmllbGRvcHQ6VwoHZW51bW9wdBIcLmdvb2dsZS5wcm90b2J1Zi5FbnVtT3B0aW9ucxjSgrEHIAEoCzIcLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZVIHZW51bW9wdDpiCgplbnVtdmFsb3B0EiEuZ29vZ2xlLnByb3RvYnVmLkVudW1WYWx1ZU9wdGlvbnMYyZ+xByABKAsyHC5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVSCmVudW12YWxvcHQ6YAoKc2VydmljZW9wdBIfLmdvb2dsZS5wcm90b2J1Zi5TZXJ2aWNlT3B0aW9ucxi577EHIAEoCzIcLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZVIKc2VydmljZW9wdDpdCgltZXRob2RvcHQSHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxiJ6bIHIAEoCzIcLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZVIJbWV0aG9kb3B0QlWqAhpVbml0VGVzdC5Jc3N1ZXMuVGVzdFByb3Rvc/DowR3qrcDlJPrshTsqCGQSDkZpbGVBbm5vdGF0aW9uGhYSFE5lc3RlZEZpbGVBbm5vdGF0aW9uSrlRCgcSBSsA5wIBCvYQCgEMEgMrABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCjLTASBBdXRob3I6IGJlbmp5QGdvb2dsZS5jb20gKEJlbmp5IFdlaW5iZXJnZXIpCiAgQmFzZWQgb24gb3JpZ2luYWwgUHJvdG9jb2wgQnVmZmVycyBkZXNpZ24gYnkKICBTYW5qYXkgR2hlbWF3YXQsIEplZmYgRGVhbiwgYW5kIG90aGVycy4KCiBBIHByb3RvIGZpbGUgdXNlZCB0byB0ZXN0IHRoZSAiY3VzdG9tIG9wdGlvbnMiIGZlYXR1cmUgb2YgZ29vZ2xlLnByb3RvYnVmLgoy0QIgVGhpcyBmaWxlIGlzIGJhc2VkIG9uIHVuaXR0ZXN0X2N1c3RvbV9vcHRpb25zLnByb3RvIGluCiBzcmMvZ29vZ2xlL3Byb3RvYnVmLCBidXQgaXMgbW9kaWZpZWQgZm9yIHByb3RvMy4gSXQgY291bGQKIHBvdGVudGlhbGx5IGJlIG1vdmVkIGludG8gc3JjL2dvb2dsZS9wcm90b2J1ZiwgYnV0IGN1cnJlbnRseSBDIwogaXMgdGhlIG9ubHkgbGFuZ3VhZ2UgdGhhdCByZWFsbHkgbmVlZHMgaXQsIGFzIHdlIGRvbid0IHN1cHBvcnQKIHByb3RvMiBzeW50YXguIEl0J3MgY3V0IGRvd24gc2lnbmlmaWNhbnRseSBhcyBwcm90bzMgb25seSBzdXBwb3J0cwogZXh0ZW5zaW9ucyBmb3Igb3B0aW9ucy4KCggKAQgSAy4AIAo1CgUIjp3YAxIDLgAgGicgQSBjdXN0b20gZmlsZSBvcHRpb24gKGRlZmluZWQgYmVsb3cpLgoKCQoCAwASAzAAKgqgAQoBAhIDNAAaGpUBIFdlIGRvbid0IHB1dCB0aGlzIGluIGEgcGFja2FnZSB3aXRoaW4gcHJvdG8yIGJlY2F1c2Ugd2UgbmVlZCB0byBtYWtlIHN1cmUKIHRoYXQgdGhlIGdlbmVyYXRlZCBjb2RlIGRvZXNuJ3QgZGVwZW5kIG9uIGJlaW5nIGluIHRoZSBwcm90bzIgbmFt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b3RvMiIjChNQdWJsaWNJbXBvcnRNZXNzYWdlEgwKAWUYASABKAVSAWVCJKoCIUdvb2dsZS5Qcm90b2J1Zi5UZXN0UHJvdG9zLlByb3RvMkr9DQoGEgQgACgBCvYMCgEMEgMgABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCjIoIEF1dGhvcjogbGl1amlzaUBnb29nbGUuY29tIChQaGVybCBMaXUpCgoICgECEgMiACgKCAoBCBIDJAA+CgkKAgglEgMkAD4KCgoCBAASBCYAKAEKCgoDBAABEgMmCBsKCwoEBAACABIDJwIXCgwKBQQAAgAEEgMnAgoKDAoFBAACAAUSAycLEAoMCgUEAAIAARIDJxESCgwKBQQAAgADEgMnFRYK+RYKI2NzaGFycC9wcm90b3MvdW5pdHRlc3RfaW1wb3J0LnByb3RvEh9wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yGipjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2ltcG9ydF9wdWJsaWMucHJvdG8iHQoNSW1wb3J0TWVzc2FnZRIMCgFkGAEgASgFUgFkKjwKCkltcG9ydEVudW0SDgoKSU1QT1JUX0ZPTxAHEg4KCklNUE9SVF9CQVIQCBIOCgpJTVBPUlRfQkFaEAkqMQoQSW1wb3J0RW51bUZvck1hcBILCgdVTktOT1dOEAASBwoDRk9PEAESBwoDQkFSEAJCKUgB+AEBqgIhR29vZ2xlLlByb3RvYnVmLlRlc3RQcm90b3MuUHJvdG8ySscUCgYSBCQAQgEKmA4KAQwSAyQAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMskBIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIEEgcHJvdG8gZmlsZSB3aGljaCBpcyBpbXBvcnRlZCBieSB1bml0dGVzdC5wcm90byB0byB0ZXN0IGltcG9ydGluZy4KCvUBCgECEgMqACga6gEgV2UgZG9uJ3QgcHV0IHRoaXMgaW4gYSBwYWNrYWdlIHdpdGhpbiBwcm90bzIgYmVjYXVzZSB3ZSBuZWVkIHRvIG1ha2Ugc3VyZQogdGhhdCB0aGUgZ2VuZXJhdGVkIGNvZGUgZG9lc24ndCBkZXBlbmQgb24gYmVpbmcgaW4gdGhlIHByb3RvMiBuYW1lc3BhY2UuCiBJbiB0ZXN0X3V0aWwuaCB3ZSBkbwogInVzaW5nIG5hbWVzcGFjZSB1bml0dGVzdF9pbXBvcnQgPSBwcm90b2J1Zl91bml0dGVzdF9pbXBvcnQiLgoKCAoBCBIDLAAcCgkKAggJEgMsABwKCAoBCBIDLQAfCgkKAggfEgMtAB8KCAoBCBIDLgA+CgkKAgglEgMuAD4KHwoCAwASAzEAOxoUIFRlc3QgcHVibGljIGltcG9ydAoKCQoCCgASAzEHDQoKCgIEABIEMwA1AQoKCgMEAAESAzMIFQoLCgQEAAIAEgM0AhcKDAoFBAACAAQSAzQCCgoMCgUEAAIABRIDNAsQCgwKBQQAAgABEgM0ERIKDAoFBAACAAMSAzQVFgoKCgIFABIENwA7AQoKCgMFAAESAzcFDwoLCgQFAAIAEgM4AhEKDAoFBQACAAESAzgCDAoMCgUFAAIAAhIDOA8QCgsKBAUAAgESAzkCEQoMCgUFAAIBARIDOQIMCgwKBQUAAgECEgM5DxAKCwoEBQACAhIDOgIRCgwKBQUAAgIBEgM6AgwKDAoFBQACAgISAzoPEApICgIFARIEPgBCARo8IFRvIHVzZSBhbiBlbnVtIGluIGEgbWFwLCBpdCBtdXN0IGhhcyB0aGUgZmlyc3QgdmFsdWUgYXMgMC4KCgoKAwUBARIDPgUVCgsKBAUBAgASAz8CDgoMCgUFAQIAARIDPwIJCgwKBQUBAgACEgM/DA0KCwoEBQECARIDQAIKCgwKBQUBAgEBEgNAAgUKDAoFBQECAQISA0AICQoLCgQFAQICEgNBAgoKDAoFBQECAgESA0ECBQoMCgUFAQICAhIDQQgJUAAKp9MFChxjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0LnByb3RvEhhwcm90b2J1Zl91bml0dGVzdF9wcm90bzIaI2NzaGFycC9wcm90b3MvdW5pdHRlc3RfaW1wb3J0LnByb3RvIpEkCgxUZXN0QWxsVHlwZXMSJQoOb3B0aW9uYWxfaW50MzIYASABKAVSDW9wdGlvbmFsSW50MzISJQoOb3B0aW9uYWxfaW50NjQYAiABKANSDW9wdGlvbmFsSW50NjQSJwoPb3B0aW9uYWxfdWludDMyGAMgASgNUg5vcHRpb25hbFVpbnQzMhInCg9vcHRpb25hbF91aW50NjQYBCABKARSDm9wdGlvbmFsVWludDY0EicKD29wdGlvbmFsX3NpbnQzMhgFIAEoEVIOb3B0aW9uYWxTaW50MzISJwoPb3B0aW9uYWxfc2ludDY0GAYgASgSUg5vcHRpb25hbFNpbnQ2NBIpChBvcHRpb25hbF9maXhlZDMyGAcgASgHUg9vcHRpb25hbEZpeGVkMzISKQoQb3B0aW9uYWxfZml4ZWQ2NBgIIAEoBlIPb3B0aW9uYWxGaXhlZDY0EisKEW9wdGlvbmFsX3NmaXhlZDMyGAkgASgPUhBvcHRpb25hbFNmaXhlZDMyEisKEW9wdGlvbmFsX3NmaXhlZDY0GAogASgQUhBvcHRpb25hbFNmaXhlZDY0EiUKDm9wdGlvbmFsX2Zsb2F0GAsgASgCUg1vcHRpb25hbEZsb2F0EicKD29wdGlvbmFsX2RvdWJsZRgMIAEoAVIOb3B0aW9uYWxEb3VibGUSIwoNb3B0aW9uYWxfYm9vbBgNIAEoCFIMb3B0aW9uYWxCb29sEicKD29wdGlvbmFsX3N0cmluZxgOIAEoCVIOb3B0aW9uYWxTdHJpbmcSJQoOb3B0aW9uYWxfYnl0ZXMYDyABKAxSDW9wdGlvbmFsQnl0ZXMSWgoNb3B0aW9uYWxncm91cBgQIAEoCjI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuT3B0aW9uYWxHcm91cFINb3B0aW9uYWxncm91cBJsChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgSIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVIVb3B0aW9uYWxOZXN0ZWRNZXNzYWdlEmIKGG9wdGlvbmFsX2ZvcmVpZ25fbWVzc2FnZRgTIAEoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZVIWb3B0aW9uYWxGb3JlaWduTWVzc2FnZRJmChdvcHRpb25hbF9pbXBvcnRfbWVzc2FnZRgUIAEoCzIuLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0TWVzc2FnZVIVb3B0aW9uYWxJbXBvcnRNZXNzYWdlEmMKFG9wdGlvbmFsX25lc3RlZF9lbnVtGBUgASgOMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtUhJvcHRpb25hbE5lc3RlZEVudW0SWQoVb3B0aW9uYWxfZm9yZWlnbl9lbnVtGBYgASgOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUhNvcHRpb25hbEZvcmVpZ25FbnVtEl0KFG9wdGlvbmFsX2ltcG9ydF9lbnVtGBcgASgOMisucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRFbnVtUhJvcHRpb25hbEltcG9ydEVudW0SNgoVb3B0aW9uYWxfc3RyaW5nX3BpZWNlGBggASgJQgIIAlITb3B0aW9uYWxTdHJpbmdQaWVjZRInCg1vcHRpb25hbF9jb3JkGBkgASgJQgIIAVIMb3B0aW9uYWxDb3JkEnkKHm9wdGlvbmFsX3B1YmxpY19pbXBvcnRfbWVzc2FnZRgaIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuUHVibGljSW1wb3J0TWVzc2FnZVIbb3B0aW9uYWxQdWJsaWNJbXBvcnRNZXNzYWdlEmwKFW9wdGlvbmFsX2xhenlfbWVzc2FnZRgbIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAFSE29wdGlvbmFsTGF6eU1lc3NhZ2USJQoOcmVwZWF0ZWRfaW50MzIYHyADKAVSDXJlcGVhdGVkSW50MzISJQoOcmVwZWF0ZWRfaW50NjQYICADKANSDXJlcGVhdGVkSW50NjQSJwoPcmVwZWF0ZWRfdWludDMyGCEgAygNUg5yZXBlYXRlZFVpbnQzMhInCg9yZXBlYXRlZF91aW50NjQYIiADKARSDnJlcGVhdGVkVWludDY0EicKD3JlcGVhdGVkX3NpbnQzMhgjIAMoEVIOcmVwZWF0ZWRTaW50MzISJwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSUg5yZXBlYXRlZFNpbnQ2NBIpChByZXBlYXRlZF9maXhlZDMyGCUgAygHUg9yZXBlYXRlZEZpeGVkMzISKQoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBlIPcmVwZWF0ZWRGaXhlZDY0EisKEXJlcGVhdGVkX3NmaXhlZDMyGCcgAygPUhByZXBlYXRlZFNmaXhlZDMyEisKEXJlcGVhdGVkX3NmaXhlZDY0GCggAygQUhByZXBlYXRlZFNmaXhlZDY0EiUKDnJlcGVhdGVkX2Zsb2F0GCkgAygCUg1yZXBlYXRlZEZsb2F0EicKD3JlcGVhdGVkX2RvdWJsZRgqIAMoAVIOcmVwZWF0ZWREb3VibGUSIwoNcmVwZWF0ZWRfYm9vbBgrIAMoCFIMcmVwZWF0ZWRCb29sEicKD3JlcGVhdGVkX3N0cmluZxgsIAMoCVIOcmVwZWF0ZWRTdHJpbmcSJQoOcmVwZWF0ZWRfYnl0ZXMYLSADKAxSDXJlcGVhdGVkQnl0ZXMSWgoNcmVwZWF0ZWRncm91cBguIAMoCjI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuUmVwZWF0ZWRHcm91cFINcmVwZWF0ZWRncm91cBJsChdyZXBlYXRlZF9uZXN0ZWRfbWVzc2FnZRgwIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVIVcmVwZWF0ZWROZXN0ZWRNZXNzYWdlEmIKGHJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZRgxIAMoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZVIWcmVwZWF0ZWRGb3JlaWduTWVzc2FnZRJmChdyZXBlYXRlZF9pbXBvcnRfbWVzc2FnZRgyIAMoCzIuLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0TWVzc2FnZVIVcmVwZWF0ZWRJbXBvcnRNZXNzYWdlEmMKFHJlcGVhdGVkX25lc3RlZF9lbnVtGDMgAygOMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtUhJyZXBlYXRlZE5lc3RlZEVudW0SWQoVcmVwZWF0ZWRfZm9yZWlnbl9lbnVtGDQgAygOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUhNyZXBlYXRlZEZvcmVpZ25FbnVtEl0KFHJlcGVhdGVkX2ltcG9ydF9lbnVtGDUgAygOMisucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRFbnVtUhJyZXBlYXRlZEltcG9ydEVudW0SNgoVcmVwZWF0ZWRfc3RyaW5nX3BpZWNlGDYgAygJQgIIAlITcmVwZWF0ZWRTdHJpbmdQaWVjZRInCg1yZXBlYXRlZF9jb3JkGDcgAygJQgIIAVIMcmVwZWF0ZWRDb3JkEmwKFXJlcGVhdGVkX2xhenlfbWVzc2FnZRg5IAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAFSE3JlcGVhdGVkTGF6eU1lc3NhZ2USJwoNZGVmYXVsdF9pbnQzMhg9IAEoBToCNDFSDGRlZmF1bHRJbnQzMhInCg1kZWZhdWx0X2ludDY0GD4gASgDOgI0MlIMZGVmYXVsdEludDY0EikKDmRlZmF1bHRfdWludDMyGD8gASgNOgI0M1INZGVmYXVsdFVpbnQzMhIpCg5kZWZhdWx0X3VpbnQ2NBhAIAEoBDoCNDRSDWRlZmF1bHRVaW50NjQSKgoOZGVmYXVsdF9zaW50MzIYQSABKBE6Ay00NVINZGVmYXVsdFNpbnQzMhIpCg5kZWZhdWx0X3NpbnQ2NBhCIAEoEjoCNDZSDWRlZmF1bHRTaW50NjQSKwoPZGVmYXVsdF9maXhlZDMyGEMgASgHOgI0N1IOZGVmYXVsdEZpeGVkMzISKwoPZGVmYXVsdF9maXhlZDY0GEQgASgGOgI0OFIOZGVmYXVsdEZpeGVkNjQSLQoQZGVmYXVsdF9zZml4ZWQzMhhFIAEoDzoCNDlSD2RlZmF1bHRTZml4ZWQzMhIuChBkZWZhdWx0X3NmaXhlZDY0GEYgASgQOgMtNTBSD2RlZmF1bHRTZml4ZWQ2NBIpCg1kZWZhdWx0X2Zsb2F0GEcgASgCOgQ1MS41UgxkZWZhdWx0RmxvYXQSLAoOZGVmYXVsdF9kb3VibGUYSCABKAE6BTUyMDAwUg1kZWZhdWx0RG91YmxlEicKDGRlZmF1bHRfYm9vbBhJIAEoCDoEdHJ1ZVILZGVmYXVsdEJvb2wSLAoOZGVmYXVsdF9zdHJpbmcYSiABKAk6BWhlbGxvUg1kZWZhdWx0U3RyaW5nEioKDWRlZmF1bHRfYnl0ZXMYSyABKAw6BXdvcmxkUgxkZWZhdWx0Qnl0ZXMSZgoTZGVmYXVsdF9uZXN0ZWRfZW51bRhRIAEoDjIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bToDQkFSUhFkZWZhdWx0TmVzdGVkRW51bRJkChRkZWZhdWx0X2ZvcmVpZ25fZW51bRhSIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bToLRk9SRUlHTl9CQVJSEmRlZmF1bHRGb3JlaWduRW51bRJnChNkZWZhdWx0X2ltcG9ydF9lbnVtGFMgASgOMisucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRFbnVtOgpJTVBPUlRfQkFSUhFkZWZhdWx0SW1wb3J0RW51bRI5ChRkZWZhdWx0X3N0cmluZ19waWVjZRhUIAEoCToDYWJjQgIIAlISZGVmYXVsdFN0cmluZ1BpZWNlEioKDGRlZmF1bHRfY29yZBhVIAEoCToDMTIzQgIIAVILZGVmYXVsdENvcmQSIwoMb25lb2ZfdWludDMyGG8gASgNSABSC29uZW9mVWludDMyEmgKFG9uZW9mX25lc3RlZF9tZXNzYWdlGHAgASgLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlSABSEm9uZW9mTmVzdGVkTWVzc2FnZRIjCgxvbmVvZl9zdHJpbmcYcSABKAlIAFILb25lb2ZTdHJpbmcSIQoLb25lb2ZfYnl0ZXMYciABKAxIAFIKb25lb2ZCeXRlcxofCg1OZXN0ZWRNZXNzYWdlEg4KAmJiGAEgASgFUgJiYhodCg1PcHRpb25hbEdyb3VwEgwKAWEYESABKAVSAWEaHQoNUmVwZWF0ZWRHcm91cBIMCgFhGC8gASgFUgFhIjkKCk5lc3RlZEVudW0SBwoDRk9PEAESBwoDQkFSEAISBwoDQkFaEAMSEAoDTkVHEP///////////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//8BIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSDHRlc3RBbGxUeXBlczqEAQoldGVzdF9leHRlbnNpb25faW5zaWRlX3RhYmxlX2V4dGVuc2lvbhIyLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RXh0ZW5zaW9uSW5zaWRlVGFibGUYBSABKAVSIXRlc3RFeHRlbnNpb25JbnNpZGVUYWJsZUV4dGVuc2lvbkIySAGAAQGIAQGQAQH4AQGqAiFHb29nbGUuUHJvdG9idWYuVGVzdFByb3Rvcy5Qcm90bzJKvrgDCgcSBSYA3QgBCqIOCgEMEgMmABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCjLTASBBdXRob3I6IGtlbnRvbkBnb29nbGUuY29tIChLZW50b24gVmFyZGEpCiAgQmFzZWQgb24gb3JpZ2luYWwgUHJvdG9jb2wgQnVmZmVycyBkZXNpZ24gYnkKICBTYW5qYXkgR2hlbWF3YXQsIEplZmYgRGVhbiwgYW5kIG90aGVycy4KCiBBIHByb3RvIGZpbGUgd2Ugd2lsbCB1c2UgZm9yIHVuaXQgdGVzdGluZy4KCiBMSU5UOiBBTExPV19HUk9VUFMsIExFR0FDWV9OQU1FUwoKCAoBCBIDKgAiCoABCgIIEBIDKgAiGmcgU29tZSBnZW5lcmljX3NlcnZpY2VzIG9wdGlvbihzKSBhZGRlZCBhdXRvbWF0aWNhbGx5LgogU2VlOiAgaHR0cDovL2dvL3Byb3RvMi1nZW5lcmljLXNlcnZpY2VzLWRlZmF1bHQKIgwgYXV0by1hZGRlZAoKCAoBCBIDKwAkChcKAggREgMrACQiDCBhdXRvLWFkZGVkCgoICgEIEgMsACIKFwoCCBISAywAIiIMIGF1dG8tYWRkZWQKCggKAQgSAy0AHwoJCgIIHxIDLQAfCgkKAgMAEgMvAC0K5gEKAQISAzQAIRrbASBXZSBkb24ndCBwdXQgdGhpcyBpbiBhIHBhY2thZ2Ugd2l0aGluIHByb3RvMiBiZWNhdXNlIHdlIG5lZWQgdG8gbWFrZSBzdXJlCiB0aGF0IHRoZSBnZW5l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BQQMAgYBEgSFAxEXCg0KBQQMAgYDEgSFAxobCgwKBAQMAgcSBIYDAhwKDQoFBAwCBwQSBIYDAgoKDQoFBAwCBwUSBIYDCxAKDQoFBAwCBwESBIYDERcKDQoFBAwCBwMSBIYDGhsKDAoEBAwCCBIEhwMCHAoNCgUEDAIIBBIEhwMCCgoNCgUEDAIIBRIEhwMLEAoNCgUEDAIIARIEhwMRFwoNCgUEDAIIAxIEhwMaGwoMCgQEDAIJEgSIAwIeCg0KBQQMAgkEEgSIAwIKCg0KBQQMAgkFEgSIAwsQCg0KBQQMAgkBEgSIAxEYCg0KBQQMAgkDEgSIAxsdCgwKBAQMAgoSBIkDAh4KDQoFBAwCCgQSBIkDAgoKDQoFBAwCCgUSBIkDCxAKDQoFBAwCCgESBIkDERgKDQoFBAwCCgMSBIkDGx0KDAoEBAwCCxIEigMCHgoNCgUEDAILBBIEigMCCgoNCgUEDAILBRIEigMLEAoNCgUEDAILARIEigMRGAoNCgUEDAILAxIEigMbHQoMCgQEDAIMEgSLAwIeCg0KBQQMAgwEEgSLAwIKCg0KBQQMAgwFEgSLAwsQCg0KBQQMAgwBEgSLAxEYCg0KBQQMAgwDEgSLAxsdCgwKBAQMAg0SBIwDAh4KDQoFBAwCDQQSBIwDAgoKDQoFBAwCDQUSBIwDCxAKDQoFBAwCDQESBIwDERgKDQoFBAwCDQMSBIwDGx0KDAoEBAwCDhIEjQMCHgoNCgUEDAIOBBIEjQMCCgoNCgUEDAIOBRIEjQMLEAoNCgUEDAIOARIEjQMRGAoNCgUEDAIOAxIEjQMbHQoMCgQEDAIPEgSOAwIeCg0KBQQMAg8EEgSOAwIKCg0KBQQMAg8FEgSOAwsQCg0KBQQMAg8BEgSOAxEYCg0KBQQMAg8DEgSOAxsdCgwKBAQMAhASBI8DAh4KDQoFBAwCEAQSBI8DAgoKDQoFBAwCEAUSBI8DCxAKDQoFBAwCEAESBI8DERgKDQoFBAwCEAMSBI8DGx0KDAoEBAwCERIEkAMCHgoNCgUEDAIRBBIEkAMCCgoNCgUEDAIRBRIEkAMLEAoNCgUEDAIRARIEkAMRGAoNCgUEDAIRAxIEkAMbHQoMCgQEDAISEgSRAwIeCg0KBQQMAhIEEgSRAwIKCg0KBQQMAhIFEgSRAwsQCg0KBQQMAhIBEgSRAxEYCg0KBQQMAhIDEgSRAxsdCgwKBAQMAhMSBJIDAh4KDQoFBAwCEwQSBJIDAgoKDQoFBAwCEwUSBJIDCxAKDQoFBAwCEwESBJIDERgKDQoFBAwCEwMSBJIDGx0KDAoEBAwCFBIEkwMCHgoNCgUEDAIUBBIEkwMCCgoNCgUEDAIUBRIEkwMLEAoNCgUEDAIUARIEkwMRGAoNCgUEDAIUAxIEkwMbHQoMCgQEDAIVEgSUAwIeCg0KBQQMAhUEEgSUAwIKCg0KBQQMAhUFEgSUAwsQCg0KBQQMAhUBEgSUAxEYCg0KBQQMAhUDEgSUAxsdCgwKBAQMAhYSBJUDAh4KDQoFBAwCFgQSBJUDAgoKDQoFBAwCFgUSBJUDCxAKDQoFBAwCFgESBJUDERgKDQoFBAwCFgMSBJUDGx0KDAoEBAwCFxIElgMCHgoNCgUEDAIXBBIElgMCCgoNCgUEDAIXBRIElgMLEAoNCgUEDAIXARIElgMRGAoNCgUEDAIXAxIElgMbHQoMCgQEDAIYEgSXAwIeCg0KBQQMAhgEEgSXAwIKCg0KBQQMAhgFEgSXAwsQCg0KBQQMAhgBEgSXAxEYCg0KBQQMAhgDEgSXAxsdCgwKBAQMAhkSBJgDAh4KDQoFBAwCGQQSBJgDAgoKDQoFBAwCGQUSBJgDCxAKDQoFBAwCGQESBJgDERgKDQoFBAwCGQMSBJgDGx0KDAoEBAwCGhIEmQMCHgoNCgUEDAIaBBIEmQMCCgoNCgUEDAIaBRIEmQMLEAoNCgUEDAIaARIEmQMRGAoNCgUEDAIaAxIEmQMbHQoMCgQEDAIbEgSaAwIeCg0KBQQMAhsEEgSaAwIKCg0KBQQMAhsFEgSaAwsQCg0KBQQMAhsBEgSaAxEYCg0KBQQMAhsDEgSaAxsdCgwKBAQMAhwSBJsDAh4KDQoFBAwCHAQSBJsDAgoKDQoFBAwCHAUSBJsDCxAKDQoFBAwCHAESBJsDERgKDQoFBAwCHAMSBJsDGx0KDAoEBAwCHRIEnAMCHgoNCgUEDAIdBBIEnAMCCgoNCgUEDAIdBRIEnAMLEAoNCgUEDAIdARIEnAMRGAoNCgUEDAIdAxIEnAMbHQoMCgQEDAIeEgSdAwIeCg0KBQQMAh4EEgSdAwIKCg0KBQQMAh4FEgSdAwsQCg0KBQQMAh4BEgSdAxEYCg0KBQQMAh4DEgSd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AjYKDQoFBDECAAQSBJ4GAgoKDQoFBDECAAUSBJ4GCxAKDQoFBDECAAESBJ4GER8KDQoFBDECAAMSBJ4GIiQKDQoFBDECAAgSBJ4GJTUKDgoGBDECAAgCEgSeBiY0CgwKBAQxAgESBJ8GAjYKDQoFBDECAQQSBJ8GAgoKDQoFBDECAQUSBJ8GCxAKDQoFBDECAQESBJ8GER8KDQoFBDECAQMSBJ8GIiQKDQoFBDECAQgSBJ8GJTUKDgoGBDECAQgCEgSfBiY0CgwKBAQxAgISBKAGAjgKDQoFBDECAgQSBKAGAgoKDQoFBDECAgUSBKAGCxEKDQoFBDECAgESBKAGEiEKDQoFBDECAgMSBKAGJCYKDQoFBDECAggSBKAGJzcKDgoGBDECAggCEgSgBig2CgwKBAQxAgMSBKEGAjgKDQoFBDECAwQSBKEGAgoKDQoFBDECAwUSBKEGCxEKDQoFBDECAwESBKEGEiEKDQoFBDECAwMSBKEGJCYKDQoFBDECAwgSBKEGJzcKDgoGBDECAwgCEgShBig2CgwKBAQxAgQSBKIGAjgKDQoFBDECBAQSBKIGAgoKDQoFBDECBAUSBKIGCxEKDQoFBDECBAESBKIGEiEKDQoFBDECBAMSBKIGJCYKDQoFBDECBAgSBKIGJzcKDgoGBDECBAgCEgSiBig2CgwKBAQxAgUSBKMGAjgKDQoFBDECBQQSBKMGAgoKDQoFBDECBQUSBKMGCxEKDQoFBDECBQESBKMGEiEKDQoFBDECBQMSBKMGJCYKDQoFBDECBQgSBKMGJzcKDgoGBDECBQgCEgSjBig2CgwKBAQxAgYSBKQGAjoKDQoFBDECBgQSBKQGAgoKDQoFBDECBgUSBKQGCxIKDQoFBDECBgESBKQGEyMKDQoFBDECBgMSBKQGJigKDQoFBDECBggSBKQGKTkKDgoGBDECBggCEgSkBio4CgwKBAQxAgcSBKUGAjoKDQoFBDECBwQSBKUGAgoKDQoFBDECBwUSBKUGCxIKDQoFBDECBwESBKUGEyMKDQoFBDECBwMSBKUGJigKDQoFBDECBwgSBKUGKTkKDgoGBDECBwgCEgSlBio4CgwKBAQxAggSBKYGAjwKDQoFBDECCAQSBKYGAgoKDQoFBDECCAUSBKYGCxMKDQoFBDECCAESBKYGFCUKDQoFBDECCAMSBKYG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ARIE2AgCDwoNCgUFAwJgAhIE2AgSFAoMCgQFAwJhEgTZCAIVCg0KBQUDAmEBEgTZCAIPCg0KBQUDAmECEgTZCBIUCgwKBAUDAmISBNoIAhUKDQoFBQMCYgESBNoIAg8KDQoFBQMCYgISBNoIEhQKDAoEBQMCYxIE2wgCFQoNCgUFAwJjARIE2wgCDwoNCgUFAwJjAhIE2wgSFAoMCgQFAwJkEgTcCAIXCg0KBQUDAmQBEgTcCAIQCg0KBQUDAmQCEgTcCBMWCr8QCihjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2lzc3VlNjkzNl9hLnByb3RvEg91bml0dGVzdF9pc3N1ZXMaIGdvb2dsZS9wcm90b2J1Zi9kZXNjcmlwdG9yLnByb3RvOjMKA29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjQhgMgASgJUgNvcHRCHaoCGlVuaXRUZXN0Lklzc3Vlcy5UZXN0UHJvdG9zSoMPCgYSBB4ALAEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiADcKCQoCCCUSAyIANwrEAQoCAwASAygAKjK4ASBUaGlzIGZpbGUgaXMgdXNlZCBhcyBwYXJ0IG9mIGEgdW5pdCB0ZXN0IGZvciBpc3N1ZSA2OTM2CiBXZSBkb24ndCBuZWVkIHRvIHVzZSBpdCwgd2UganVzdCBoYXZlIHRvIGltcG9ydCBpdCBpbiBib3RoCiAiZXh0ZW5zaW9uc19pc3N1ZTY5MzZfYi5wcm90byIgYW5kICJleHRlbnNpb25zX2lzc3VlNjkzNl9jLnByb3RvIgoKCQoBBxIEKgAsAQoJCgIHABIDKwIVCgoKAwcAAhIDKgclCgoKAwcABRIDKwIICgoKAwcAARIDKwkMCgoKAwcAAxIDKw8UYgZwcm90bzMK5Q8KKGNzaGFycC9wcm90b3MvdW5pdHRlc3RfaXNzdWU2OTM2X2IucHJvdG8SD3VuaXR0ZXN0X2lzc3VlcxooY3NoYXJwL3Byb3Rvcy91bml0dGVzdF9pc3N1ZTY5MzZfYS5wcm90byIOCgNGb286B4K1GANmb29CHaoCGlVuaXRUZXN0Lklzc3Vlcy5UZXN0UHJvdG9zSsYOCgYSBB4ALAEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoJCgIDABIDIgAyCggKAQgSAyQANwoJCgIIJRIDJAA3CpsBCgIEABIEKgAsATKOASBUaGlzIGZpbGUgaXMgdXNlZCBhcyBwYXJ0IG9mIGEgdW5pdCB0ZXN0IGZvciBpc3N1ZSA2OTM2CiBXZSBkb24ndCBuZWVkIHRvIHVzZSBpdCwgd2UganVzdCBoYXZlIHRvIGltcG9ydCBpdCBpbgogInVuaXR0ZXN0X2lzc3VlNjkzNl9jLnByb3RvIgoKCgoDBAABEgMqCAsKCgoDBAAHEgMrAhcKDQoGBAAH0IYDEgMrAhdiBnByb3RvMwrgEAooY3NoYXJwL3Byb3Rvcy91bml0dGVzdF9pc3N1ZTY5MzZfYy5wcm90bxIPdW5pdHRlc3RfaXNzdWVzGihjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2lzc3VlNjkzNl9hLnByb3RvGihjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2lzc3VlNjkzNl9iLnByb3RvIjYKA0JhchImCgNmb28YASABKAsyFC51bml0dGVzdF9pc3N1ZXMuRm9vUgNmb286B4K1GANiYXJCHaoCGlVuaXRUZXN0Lklzc3Vlcy5UZXN0UHJvdG9zSu8OCgYSBB4ALgEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoJCgIDABIDIgAyCgkKAgMBEgMjADIKCAoBCBIDJQA3CgkKAgglEgMlADcKggEKAgQAEgQqAC4BMnYgVGhpcyBmaWxlIGlzIHVzZWQgYXMgcGFydCBvZiBhIHVuaXQgdGVzdCBmb3IgaXNzdWUgNjkzNgogV2UgZG9uJ3QgbmVlZCB0byB1c2UgaXQsIHdlIGp1c3QgaGF2ZSB0byBsb2FkIGl0IGF0IHJ1bnRpbWUKCgoKAwQAARIDKggLCgoKAwQABxIDKwIXCg0KBgQAB9CGAxIDKwIXCgsKBAQAAgASAy0CDgoMCgUEAAIABhIDLQIFCgwKBQQAAgABEgMtBgkKDAoFBAACAAMSAy0MDWIGcHJvdG8zCvMYCjRjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X3NlbGZyZWZlcmVudGlhbF9vcHRpb25zLnByb3RvEilwcm90b2J1Zl91bml0dGVzdF9zZWxmcmVmZXJlbnRpYWxfb3B0aW9ucxogZ29vZ2xlL3Byb3RvYnVmL2Rlc2NyaXB0b3IucHJvdG8iWQoKRm9vT3B0aW9ucxImCgdpbnRfb3B0GAEgASgFQg3KPgoIAcA+Aso+AggDUgZpbnRPcHQSGAoDZm9vGAIgASgFQgbKPgMQ0glSA2ZvbyoJCOgHEICAgIACOkUKC2Jhcl9vcHRpb25zEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxjoByABKAVCBMA+0glSCmJhck9wdGlvbnM6dgoLZm9vX29wdGlvbnMSHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zGOkHIAEoCzI1LnByb3RvYnVmX3VuaXR0ZXN0X3NlbGZyZWZlcmVudGlhbF9vcHRpb25zLkZvb09wdGlvbnNSCmZvb09wdGlvbnM6VgoLZm9vX2ludF9vcHQSNS5wcm90b2J1Zl91bml0dGVzdF9zZWxmcmVmZXJlbnRpYWxfb3B0aW9ucy5Gb29PcHRpb25zGOgHIAEoBVIJZm9vSW50T3B0Oo0BCgtmb29fZm9vX29wdBI1LnByb3RvYnVmX3VuaXR0ZXN0X3NlbGZyZWZlcmVudGlhbF9vcHRpb25zLkZvb09wdGlvbnMY6QcgASgLMjUucHJvdG9idWZfdW5pdHRlc3Rfc2VsZnJlZmVyZW50aWFsX29wdGlvbnMuRm9vT3B0aW9uc1IJZm9vRm9vT3B0QjSqAjFVbml0VGVzdC5Jc3N1ZXMuVGVzdFByb3Rvcy5TZWxmcmVmZXJlbnRpYWxPcHRpb25zSrUTCgYSBB4APgEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAMgoJCgIDABIDIgAqCggKAQgSAyQATgoJCgIIJRIDJABOCgoKAgQAEgQmADIBCgoKAwQAARIDJggSClAKBAQAAgASBCgCLAUaQiBDdXN0b20gZmllbGQgb3B0aW9uIHVzZWQgaW4gZGVmaW5pdGlvbiBvZiB0aGUgZXh0ZW5zaW9uIG1lc3NhZ2UuCgoMCgUEAAIABBIDKAIKCgwKBQQAAgAFEgMoCxAKDAoFBAACAAESAygRGAoMCgUEAAIAAxIDKBscCg0KBQQAAgAIEgQoHSwECg8KBwQAAgAI6QcSBCgeLAMKVQoEBAACARIDLwI5GkggQ3VzdG9tIGZpZWxkIG9wdGlvbiB1c2VkIGluIGRlZmluaXRpb24gb2YgdGhlIGN1c3RvbSBvcHRpb24ncyBtZXNzYWdlLgoKDAoFBAACAQQSAy8CCgoMCgUEAAIBBRIDLwsQCgwKBQQAAgEBEgMvERQKDAoFBAACAQMSAy8XGAoMCgUEAAIBCBIDLxk4Cg4KBwQAAgEI6QcSAy8aNwoKCgMEAAUSAzECGQoLCgQEAAUAEgMxDRgKDAoFBAAFAAESAzENEQoMCgUEAAUAAhIDMRUYCgkKAQcSBDQAOQEKTQoCBwASAzYCOxpCIEN1c3RvbSBmaWVsZCBvcHRpb24gdXNlZCBvbiB0aGUgZGVmaW5pdGlvbiBvZiB0aGF0IGZpZWxkIG9wdGlvbi4KCgoKAwcAAhIDNAcjCgoKAwcABBIDNgIKCgoKAwcABRIDNgsQCgoKAwcAARIDNhEcCgoKAwcAAxIDNh8jCgoKAwcACBIDNiQ6CgwKBQcACOgHEgM2JTkKCQoCBwESAzgCKQoKCgMHAQISAzQHIwoKCgMHAQQSAzgCCgoKCgMHAQYSAzgLFQoKCgMHAQESAzgWIQoKCgMHAQMSAzgkKAoJCgEHEgQ7AD4BCgkKAgcCEgM8AiQKCgoDBwICEgM7BxEKCgoDBwIEEgM8AgoKCgoDBwIFEgM8CxAKCgoDBwIBEgM8ERwKCgoDBwIDEgM8HyMKCQoCBwMSAz0CKQoKCgMHAwISAzsHEQoKCgMHAwQSAz0CCgoKCgMHAwYSAz0LFQoKCgMHAwESAz0WIQoKCgMHAwMSAz0kKArELgoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIjYKA0FueRIZCgh0eXBlX3VybBgBIAEoCVIHdHlwZVVybBIUCgV2YWx1ZRgCIAEoDFIFdmFsdWVCdgoTY29tLmdvb2dsZS5wcm90b2J1ZkIIQW55UHJvdG9QAVosZ29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYvdHlwZXMva25vd24vYW55cGKiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNK3SwKBxIFHgChAQEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiAEMKCQoCCAsSAyIAQwoICgEIEgMjACwKCQoCCAESAyMALAoICgEIEgMkACkKCQoCCAgSAyQAKQoICgEIEgMlACIKCQoCCAoSAyUAIgoICgEIEgMmACEKCQoCCCQSAyYAIQoICgEIEgMnADsKCQoCCCUSAycAOwr8EQoCBAASBX8AoQEBGu4RIGBBbnlgIGNvbnRhaW5zIGFuIGFyYml0cmFyeSBzZXJpYWxpemVkIHByb3RvY29sIGJ1ZmZlciBtZXNzYWdlIGFsb25nIHdpdGggYQogVVJMIHRoYXQgZGVzY3JpYmVzIHRoZSB0eXBlIG9mIHRoZSBzZXJpYWxpemVkIG1lc3NhZ2UuCgogUHJvdG9idWYgbGlicmFyeSBwcm92aWRlcyBzdXBwb3J0IHRvIHBhY2svdW5wYWNrIEFueSB2YWx1ZXMgaW4gdGhlIGZvcm0KIG9mIHV0aWxpdHkgZnVuY3Rpb25zIG9yIGFkZGl0aW9uYWwgZ2VuZXJhdGVkIG1ldGhvZHMgb2YgdGhlIEFueSB0eXBlLgoKIEV4YW1wbGUgMTogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBDKysuCgogICAgIEZvbyBmb28gPSAuLi47CiAgICAgQW55IGFueTsKICAgICBhbnkuUGFja0Zyb20oZm9vKTsKICAgICAuLi4KICAgICBpZiAoYW55LlVucGFja1RvKCZmb28pKSB7CiAgICAgICAuLi4KICAgICB9CgogRXhhbXBsZSAyOiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIEphdmEuCgogICAgIEZvbyBmb28gPSAuLi47CiAgICAgQW55IGFueSA9IEFueS5wYWNrKGZvbyk7CiAgICAgLi4uCiAgICAgaWYgKGFueS5pcyhGb28uY2xhc3MpKSB7CiAgICAgICBmb28gPSBhbnkudW5wYWNrKEZvby5jbGFzcyk7CiAgICAgfQogICAgIC8vIG9yIC4uLgogICAgIGlmIChhbnkuaXNTYW1lVHlwZUFzKEZvby5nZXREZWZhdWx0SW5zdGFuY2UoKSkpIHsKICAgICAgIGZvbyA9IGFueS51bnBhY2soRm9vLmdldERlZmF1bHRJbnN0YW5jZSgpKTsKICAgICB9CgogIEV4YW1wbGUgMzogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBQeXRob24uCgogICAgIGZvbyA9IEZvbyguLi4pCiAgICAgYW55ID0gQW55KCkKICAgICBhbnkuUGFjayhmb28pCiAgICAgLi4uCiAgICAgaWYgYW55LklzKEZvby5ERVNDUklQVE9SKToKICAgICAgIGFueS5VbnBhY2soZm9vKQogICAgICAgLi4uCgogIEV4YW1wbGUgNDogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBHbwoKICAgICAgZm9vIDo9ICZwYi5Gb297Li4ufQogICAgICBhbnksIGVyciA6PSBhbnlwYi5OZXcoZm9vKQogICAgICBpZiBlcnIgIT0gbmlsIHsKICAgICAgICAuLi4KICAgICAgfQogICAgICAuLi4KICAgICAgZm9vIDo9ICZwYi5Gb297fQogICAgICBpZiBlcnIgOj0gYW55LlVubWFyc2hhbFRvKGZvbyk7IGVyciAhPSBuaWwgewogICAgICAgIC4uLgogICAgICB9CgogVGhlIHBhY2sgbWV0aG9kcyBwcm92aWRlZCBieSBwcm90b2J1ZiBsaWJyYXJ5IHdpbGwgYnkgZGVmYXVsdCB1c2UKICd0eXBlLmdvb2dsZWFwaXMuY29tL2Z1bGwudHlwZS5uYW1lJyBhcyB0aGUgdHlwZSBVUkwgYW5kIHRoZSB1bnBhY2sKIG1ldGhvZHMgb25seSB1c2UgdGhlIGZ1bGx5IHF1YWxpZmllZCB0eXBlIG5hbWUgYWZ0ZXIgdGhlIGxhc3QgJy8nCiBpbiB0aGUgdHlwZSBVUkwsIGZvciBleGFtcGxlICJmb28uYmFyLmNvbS94L3kueiIgd2lsbCB5aWVsZCB0eXBlCiBuYW1lICJ5LnoiLgoKIEpTT04KID09PT0KIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIGFuIGBBbnlgIHZhbHVlIHVzZXMgdGhlIHJlZ3VsYXIKIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkZXNlcmlhbGl6ZWQsIGVtYmVkZGVkIG1lc3NhZ2UsIHdpdGggYW4KIGFkZGl0aW9uYWwgZmllbGQgYEB0eXBlYCB3aGljaCBjb250YWlucyB0aGUgdHlwZSBVUkwuIEV4YW1wbGU6CgogICAgIHBhY2thZ2UgZ29vZ2xlLnByb2ZpbGU7CiAgICAgbWVzc2FnZSBQZXJzb24gewogICAgICAgc3RyaW5nIGZpcnN0X25hbWUgPSAxOwogICAgICAgc3RyaW5nIGxhc3RfbmFtZSA9IDI7CiAgICAgfQoKICAgICB7CiAgICAgICAiQHR5cGUiOiAidHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucHJvZmlsZS5QZXJzb24iLAogICAgICAgImZpcnN0TmFtZSI6IDxzdHJpbmc+LAogICAgICAgImxhc3ROYW1lIjogPHN0cmluZz4KICAgICB9CgogSWYgdGhlIGVtYmVkZGVkIG1lc3NhZ2UgdHlwZSBpcyB3ZWxsLWtub3duIGFuZCBoYXMgYSBjdXN0b20gSlNPTgogcmVwcmVzZW50YXRpb24sIHRoYXQgcmVwcmVzZW50YXRpb24gd2lsbCBiZSBlbWJlZGRlZCBhZGRpbmcgYSBmaWVsZAogYHZhbHVlYCB3aGljaCBob2xkcyB0aGUgY3VzdG9tIEpTT04gaW4gYWRkaXRpb24gdG8gdGhlIGBAdHlwZWAKIGZpZWxkLiBFeGFtcGxlIChmb3IgbWVzc2FnZSBbZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uXVtdKToKCiAgICAgewogICAgICAgIkB0eXBlIjogInR5cGUuZ29vZ2xlYXBpcy5jb20vZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uIiwKICAgICAgICJ2YWx1ZSI6ICIxLjIxMnMiCiAgICAgfQoKCgoKAwQAARIDfwgLCrwLCgQEAAIAEgSdAQIWGq0LIEEgVVJML3Jlc291cmNlIG5hbWUgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSB0eXBlIG9mIHRoZSBzZXJpYWxpemVkCiBwcm90b2NvbCBidWZmZXIgbWVzc2FnZS4gVGhpcyBzdHJpbmcgbXVzdCBjb250YWluIGF0IGxlYXN0CiBvbmUgIi8iIGNoYXJhY3Rlci4gVGhlIGxhc3Qgc2VnbWVudCBvZiB0aGUgVVJMJ3MgcGF0aCBtdXN0IHJlcHJlc2VudAogdGhlIGZ1bGx5IHF1YWxpZmllZCBuYW1lIG9mIHRoZSB0eXBlIChhcyBpbgogYHBhdGgvZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uYCkuIFRoZSBuYW1lIHNob3VsZCBiZSBpbiBhIGNhbm9uaWNhbCBmb3JtCiAoZS5nLiwgbGVhZGluZyAiLiIgaXMgbm90IGFjY2VwdGVkKS4KCiBJbiBwcmFjdGljZSwgdGVhbXMgdXN1YWxseSBwcmVjb21waWxlIGludG8gdGhlIGJpbmFyeSBhbGwgdHlwZXMgdGhhdCB0aGV5CiBleHBlY3QgaXQgdG8gdXNlIGluIHRoZSBjb250ZXh0IG9mIEFueS4gSG93ZXZlciwgZm9yIFVSTHMgd2hpY2ggdXNlIHRoZQogc2NoZW1lIGBodHRwYCwgYGh0dHBzYCwgb3Igbm8gc2NoZW1lLCBvbmUgY2FuIG9wdGlvbmFsbHkgc2V0IHVwIGEgdHlwZQogc2VydmVyIHRoYXQgbWFwcyB0eXBlIFVSTHMgdG8gbWVzc2FnZSBkZWZpbml0aW9ucyBhcyBmb2xsb3dzOgoKICogSWYgbm8gc2NoZW1lIGlzIHByb3ZpZGVkLCBgaHR0cHNgIGlzIGFzc3VtZWQuCiAqIEFuIEhUVFAgR0VUIG9uIHRoZSBVUkwgbXVzdCB5aWVsZCBhIFtnb29nbGUucHJvdG9idWYuVHlwZV1bXQogICB2YWx1ZSBpbiBiaW5hcnkgZm9ybWF0LCBvciBwcm9kdWNlIGFuIGVycm9yLgogKiBBcHBsaWNhdGlvbnMgYXJlIGFsbG93ZWQgdG8gY2FjaGUgbG9va3VwIHJlc3VsdHMgYmFzZWQgb24gdGhlCiAgIFVSTCwgb3IgaGF2ZSB0aGVtIHByZWNvbXBpbGVkIGludG8gYSBiaW5hcnkgdG8gYXZvaWQgYW55CiAgIGxvb2t1cC4gVGhlcmVmb3JlLCBiaW5hcnkgY29tcGF0aWJpbGl0eSBuZWVkcyB0byBiZSBwcmVzZXJ2ZWQKICAgb24gY2hhbmdlcyB0byB0eXBlcy4gKFVzZSB2ZXJzaW9uZWQgdHlwZSBuYW1lcyB0byBtYW5hZ2UKICAgYnJlYWtpbmcgY2hhbmdlcy4pCgogTm90ZTogdGhpcyBmdW5jdGlvbmFsaXR5IGlzIG5vdCBjdXJyZW50bHkgYXZhaWxhYmxlIGluIHRoZSBvZmZpY2lhbAogcHJvdG9idWYgcmVsZWFzZSwgYW5kIGl0IGlzIG5vdCB1c2VkIGZvciB0eXBlIFVSTHMgYmVnaW5uaW5nIHdpdGgKIHR5cGUuZ29vZ2xlYXBpcy5jb20uIEFzIG9mIE1heSAyMDIzLCB0aGVyZSBhcmUgbm8gd2lkZWx5IHVzZWQgdHlwZSBzZXJ2ZXIKIGltcGxlbWVudGF0aW9ucyBhbmQgbm8gcGxhbnMgdG8gaW1wbGVtZW50IG9uZS4KCiBTY2hlbWVzIG90aGVyIHRoYW4gYGh0dHBgLCBgaHR0cHNgIChvciB0aGUgZW1wdHkgc2NoZW1lKSBtaWdodCBiZQogdXNlZCB3aXRoIGltcGxlbWVudGF0aW9uIHNwZWNpZmljIHNlbWFudGljcy4KCgoNCgUEAAIABRIEnQECCAoNCgUEAAIAARIEnQEJEQoNCgUEAAIAAxIEnQEUFQpXCgQEAAIBEgSgAQISGkkgTXVzdCBiZSBhIHZhbGlkIHNlcmlhbGl6ZWQgcHJvdG9jb2wgYnVmZmVyIG9mIHRoZSBhYm92ZSBzcGVjaWZpZWQgdHlwZS4KCg0KBQQAAgEFEgSgAQIHCg0KBQQAAgEBEgSgAQgNCg0KBQQAAgEDEgSgARARYgZwcm90bzMKvhIKJGdvb2dsZS9wcm90b2J1Zi9zb3VyY2VfY29udGV4dC5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIiwKDVNvdXJjZUNvbnRleHQSGwoJZmlsZV9uYW1lGAEgASgJUghmaWxlTmFtZUKKAQoTY29tLmdvb2dsZS5wcm90b2J1ZkISU291cmNlQ29udGV4dFByb3RvUAFaNmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3NvdXJjZWNvbnRleHRwYqICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0rBEAoGEgQeAC8BCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgAsCgkKAggBEgMiACwKCAoBCBIDIwAzCgkKAggIEgMjADMKCAoBCBIDJAAiCgkKAggKEgMkACIKCAoBCBIDJQAhCgkKAggkEgMlACEKCAoBCBIDJgA7CgkKAgglEgMmADsKCAoBCBIDJwBNCgkKAggLEgMnAE0KgwEKAgQAEgQrAC8BGncgYFNvdXJjZUNvbnRleHRgIHJlcHJlc2VudHMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNvdXJjZSBvZiBhCiBwcm90b2J1ZiBlbGVtZW50LCBsaWtlIHRoZSBmaWxlIGluIHdoaWNoIGl0IGlzIGRlZmluZWQuCgoKCgMEAAESAysIFQqjAQoEBAACABIDLgIXGpUBIFRoZSBwYXRoLXF1YWxpZmllZCBuYW1lIG9mIHRoZSAucHJvdG8gZmlsZSB0aGF0IGNvbnRhaW5lZCB0aGUgYXNzb2NpYXRlZAogcHJvdG9idWYgZWxlbWVudC4gIEZvciBleGFtcGxlOiBgImdvb2dsZS9wcm90b2J1Zi9zb3VyY2VfY29udGV4dC5wcm90byJgLgoKDAoFBAACAAUSAy4CCAoMCgUEAAIAARIDLgkSCgwKBQQAAgADEgMuFRZiBnByb3RvMwr7SQoaZ29vZ2xlL3Byb3RvYnVmL3R5cGUucHJvdG8SD2dvb2dsZS5wcm90b2J1ZhoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90bxokZ29vZ2xlL3Byb3RvYnVmL3NvdXJjZV9jb250ZXh0LnByb3RvIqcCCgRUeXBlEhIKBG5hbWUYASABKAlSBG5hbWUSLgoGZmllbGRzGAIgAygLMhYuZ29vZ2xlLnByb3RvYnVmLkZpZWxkUgZmaWVsZHMSFgoGb25lb2ZzGAMgAygJUgZvbmVvZnMSMQoHb3B0aW9ucxgEIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5PcHRpb25SB29wdGlvbnMSRQoOc291cmNlX2NvbnRleHQYBSABKAsyHi5nb29nbGUucHJvdG9idWYuU291cmNlQ29udGV4dFINc291cmNlQ29udGV4dBIvCgZzeW50YXgYBiABKA4yFy5nb29nbGUucHJvdG9idWYuU3ludGF4UgZzeW50YXgSGAoHZWRpdGlvbhgHIAEoCVIHZWRpdGlvbiK0BgoFRmllbGQSLwoEa2luZBgBIAEoDjIbLmdvb2dsZS5wcm90b2J1Zi5GaWVsZC5LaW5kUgRraW5kEkQKC2NhcmRpbmFsaXR5GAIgASgOMiIuZ29vZ2xlLnByb3RvYnVmLkZpZWxkLkNhcmRpbmFsaXR5UgtjYXJkaW5hbGl0eRIWCgZudW1iZXIYAyABKAVSBm51bWJlchISCgRuYW1lGAQgASgJUgRuYW1lEhkKCHR5cGVfdXJsGAYgASgJUgd0eXBlVXJsEh8KC29uZW9mX2luZGV4GAcgASgFUgpvbmVvZkluZGV4EhYKBnBhY2tlZBgIIAEoCFIGcGFja2VkEjEKB29wdGlvbnMYCSADKAsyFy5nb29nbGUucHJvdG9idWYuT3B0aW9uUgdvcHRpb25zEhsKCWpzb25fbmFtZRgKIAEoCVIIanNvbk5hbWUSIwoNZGVmYXVsdF92YWx1ZRgLIAEoCVIMZGVmYXVsdFZhbHVlIsgCCgRLaW5kEhAKDFRZUEVfVU5LTk9XThAAEg8KC1RZUEVfRE9VQkxFEAESDgoKVFlQRV9GTE9BVBACEg4KClRZUEVfSU5UNjQQAxIPCgtUWVBFX1VJTlQ2NBAEEg4KClRZUEVfSU5UMzIQBRIQCgxUWVBFX0ZJWEVENjQQBhIQCgxUWVBFX0ZJWEVEMzIQBxINCglUWVBFX0JPT0wQCBIPCgtUWVBFX1NUUklORxAJEg4KClRZUEVfR1JPVVAQChIQCgxUWVBFX01FU1NBR0UQCxIOCgpUWVBFX0JZVEVTEAwSDwoLVFlQRV9VSU5UMzIQDRINCglUWVBFX0VOVU0QDhIRCg1UWVBFX1NGSVhFRDMyEA8SEQoNVFlQRV9TRklYRUQ2NBAQEg8KC1RZUEVfU0lOVDMyEBESDwoLVFlQRV9TSU5UNjQQEiJ0CgtDYXJkaW5hbGl0eRIXChNDQVJESU5BTElUWV9VTktOT1dOEAASGAoUQ0FSRElOQUxJVFlfT1BUSU9OQUwQARIYChRDQVJESU5BTElUWV9SRVFVSVJFRBACEhgKFENBUkRJTkFMSVRZX1JFUEVBVEVEEAMimQIKBEVudW0SEgoEbmFtZRgBIAEoCVIEbmFtZRI4CgllbnVtdmFsdWUYAiADKAsyGi5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlUgllbnVtdmFsdWUSMQoHb3B0aW9ucxgDIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5PcHRpb25SB29wdGlvbnMSRQoOc291cmNlX2NvbnRleHQYBCABKAsyHi5nb29nbGUucHJvdG9idWYuU291cmNlQ29udGV4dFINc291cmNlQ29udGV4dBIvCgZzeW50YXgYBSABKA4yFy5nb29nbGUucHJvdG9idWYuU3ludGF4UgZzeW50YXgSGAoHZWRpdGlvbhgGIAEoCVIHZWRpdGlvbiJqCglFbnVtVmFsdWUSEgoEbmFtZRgBIAEoCVIEbmFtZRIWCgZudW1iZXIYAiABKAVSBm51bWJlchIxCgdvcHRpb25zGAMgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvblIHb3B0aW9ucyJICgZPcHRpb24SEgoEbmFtZRgBIAEoCVIEbmFtZRIqCgV2YWx1ZRgCIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSBXZhbHVlKkMKBlN5bnRheBIRCg1TWU5UQVhfUFJPVE8yEAASEQoNU1lOVEFYX1BST1RPMxABEhMKD1NZTlRBWF9FRElUSU9OUxACQnsKE2NvbS5nb29nbGUucHJvdG9idWZCCVR5cGVQcm90b1ABWi1nb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi90eXBlcGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKjTsKBxIFHgDAAQEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoJCgIDABIDIgAjCgkKAgMBEgMjAC4KCAoBCBIDJQAfCgkKAggfEgMlAB8KCAoBCBIDJgAsCgkKAggBEgMmACwKCAoB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cHBlcnMucHJvdG8KIHNob3VsZCBiZSB1c2VkLiBJZiB0aGUgdmFsdWUgaXMgYW4gZW51bSwgaXQgc2hvdWxkIGJlIHN0b3JlZCBhcyBhbiBpbnQzMgogdmFsdWUgdXNpbmcgdGhlIGdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlIHR5cGUuCgoNCgUEBAIBBhIEtQECBQoNCgUEBAIBARIEtQEGCwoNCgUEBAIBAxIEtQEODwpJCgIFABIGuQEAwAEBGjsgVGhlIHN5bnRheCBpbiB3aGljaCBhIHByb3RvY29sIGJ1ZmZlciBlbGVtZW50IGlzIGRlZmluZWQuCgoLCgMFAAESBLkBBQsKIAoEBQACABIEuwECFBoSIFN5bnRheCBgcHJvdG8yYC4KCg0KBQUAAgABEgS7AQIPCg0KBQUAAgACEgS7ARITCiAKBAUAAgESBL0BAhQaEiBTeW50YXggYHByb3RvM2AuCgoNCgUFAAIBARIEvQECDwoNCgUFAAIBAhIEvQESEwoiCgQFAAICEgS/AQIWGhQgU3ludGF4IGBlZGl0aW9uc2AuCgoNCgUFAAICARIEvwECEQoNCgUFAAICAhIEvwEUFWIGcHJvdG8zCppDChlnb29nbGUvcHJvdG9idWYvYXBpLnByb3RvEg9nb29nbGUucHJvdG9idWYaJGdvb2dsZS9wcm90b2J1Zi9zb3VyY2VfY29udGV4dC5wcm90bxoaZ29vZ2xlL3Byb3RvYnVmL3R5cGUucHJvdG8iwQIKA0FwaRISCgRuYW1lGAEgASgJUgRuYW1lEjEKB21ldGhvZHMYAiADKAsyFy5nb29nbGUucHJvdG9idWYuTWV0aG9kUgdtZXRob2RzEjEKB29wdGlvbnMYAyADKAsyFy5nb29nbGUucHJvdG9idWYuT3B0aW9uUgdvcHRpb25zEhgKB3ZlcnNpb24YBCABKAlSB3ZlcnNpb24SRQoOc291cmNlX2NvbnRleHQYBSABKAsyHi5nb29nbGUucHJvdG9idWYuU291cmNlQ29udGV4dFINc291cmNlQ29udGV4dBIuCgZtaXhpbnMYBiADKAsyFi5nb29nbGUucHJvdG9idWYuTWl4aW5SBm1peGlucxIvCgZzeW50YXgYByABKA4yFy5nb29nbGUucHJvdG9idWYuU3ludGF4UgZzeW50YXgisgIKBk1ldGhvZBISCgRuYW1lGAEgASgJUgRuYW1lEigKEHJlcXVlc3RfdHlwZV91cmwYAiABKAlSDnJlcXVlc3RUeXBlVXJsEisKEXJlcXVlc3Rfc3RyZWFtaW5nGAMgASgIUhByZXF1ZXN0U3RyZWFtaW5nEioKEXJlc3BvbnNlX3R5cGVfdXJsGAQgASgJUg9yZXNwb25zZVR5cGVVcmwSLQoScmVzcG9uc2Vfc3RyZWFtaW5nGAUgASgIUhFyZXNwb25zZVN0cmVhbWluZxIxCgdvcHRpb25zGAYgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvblIHb3B0aW9ucxIvCgZzeW50YXgYByABKA4yFy5nb29nbGUucHJvdG9idWYuU3ludGF4UgZzeW50YXgiLwoFTWl4aW4SEgoEbmFtZRgBIAEoCVIEbmFtZRISCgRyb290GAIgASgJUgRyb290QnYKE2NvbS5nb29nbGUucHJvdG9idWZCCEFwaVByb3RvUAFaLGdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2FwaXBiogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSv87CgcSBR4AzgEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCQoCAwASAyIALgoJCgIDARIDIwAkCggKAQgSAyUALAoJCgIIARIDJQAsCggKAQgSAyYAKQoJCgIICBIDJgApCggKAQgSAycAIgoJCgIIChIDJwAiCggKAQgSAygAIQoJCgIIJBIDKAAhCggKAQgSAykAOwoJCgIIJRIDKQA7CggKAQgSAyoAQwoJCgIICxIDKgBDCqsECgIEABIENQBfARqeBCBBcGkgaXMgYSBsaWdodC13ZWlnaHQgZGVzY3JpcHRvciBmb3IgYW4gQVBJIEludGVyZmFjZS4KCiBJbnRlcmZhY2VzIGFyZSBhbHNvIGRlc2NyaWJlZCBhcyAicHJvdG9jb2wgYnVmZmVyIHNlcnZpY2VzIiBpbiBzb21lIGNvbnRleHRzLAogc3VjaCBhcyBieSB0aGUgInNlcnZpY2UiIGtleXdvcmQgaW4gYSAucHJvdG8gZmlsZSwgYnV0IHRoZXkgYXJlIGRpZmZlcmVudAogZnJvbSBBUEkgU2VydmljZXMsIHdoaWNoIHJlcHJlc2VudCBhIGNvbmNyZXRlIGltcGxlbWVudGF0aW9uIG9mIGFuIGludGVyZmFjZQogYXMgb3Bwb3NlZCB0byBzaW1wbHkgYSBkZXNjcmlwdGlvbiBvZiBtZXRob2RzIGFuZCBiaW5kaW5ncy4gVGhleSBhcmUgYWxzbwogc29tZXRpbWVzIHNpbXBseSByZWZlcnJlZCB0byBhcyAiQVBJcyIgaW4gb3RoZXIgY29udGV4dHMsIHN1Y2ggYXMgdGhlIG5hbWUgb2YKIHRoaXMgbWVzc2FnZSBpdHNlbGYuIFNlZSBodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vYXBpcy9kZXNpZ24vZ2xvc3NhcnkgZm9yCiBkZXRhaWxlZCB0ZXJtaW5vbG9neS4KCgoKAwQAARIDNQgLCnsKBAQAAgASAzgCEhpuIFRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGlzIGludGVyZmFjZSwgaW5jbHVkaW5nIHBhY2thZ2UgbmFtZQogZm9sbG93ZWQgYnkgdGhlIGludGVyZmFjZSdzIHNpbXBsZSBuYW1lLgoKDAoFBAACAAUSAzgCCAoMCgUEAAIAARIDOAkNCgwKBQQAAgADEgM4EBEKQwoEBAACARIDOwIeGjYgVGhlIG1ldGhvZHMgb2YgdGhpcyBpbnRlcmZhY2UsIGluIHVuc3BlY2lmaWVkIG9yZGVyLgoKDAoFBAACAQQSAzsCCgoMCgUEAAIBBhIDOwsRCgwKBQQAAgEBEgM7EhkKDAoFBAACAQMSAzscHQo2CgQEAAICEgM+Ah4aKSBBbnkgbWV0YWRhdGEgYXR0YWNoZWQgdG8gdGhlIGludGVyZmFjZS4KCgwKBQQAAgIEEgM+AgoKDAoFBAACAgYSAz4LEQoMCgUEAAICARIDPhIZCgwKBQQAAgIDEgM+HB0KgQgKBAQAAgMSA1QCFRrzByBBIHZlcnNpb24gc3RyaW5nIGZvciB0aGlzIGludGVyZmFjZS4gSWYgc3BlY2lmaWVkLCBtdXN0IGhhdmUgdGhlIGZvcm0KIGBtYWpvci12ZXJzaW9uLm1pbm9yLXZlcnNpb25gLCBhcyBpbiBgMS4xMGAuIElmIHRoZSBtaW5vciB2ZXJzaW9uIGlzCiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byB6ZXJvLiBJZiB0aGUgZW50aXJlIHZlcnNpb24gZmllbGQgaXMgZW1wdHksIHRoZQogbWFqb3IgdmVyc2lvbiBpcyBkZXJpdmVkIGZyb20gdGhlIHBhY2thZ2UgbmFtZSwgYXMgb3V0bGluZWQgYmVsb3cuIElmIHRoZQogZmllbGQgaXMgbm90IGVtcHR5LCB0aGUgdmVyc2lvbiBpbiB0aGUgcGFja2FnZSBuYW1lIHdpbGwgYmUgdmVyaWZpZWQgdG8gYmUKIGNvbnNpc3RlbnQgd2l0aCB3aGF0IGlzIHByb3ZpZGVkIGhlcmUuCgogVGhlIHZlcnNpb25pbmcgc2NoZW1hIHVzZXMgW3NlbWFudGljCiB2ZXJzaW9uaW5nXShodHRwOi8vc2VtdmVyLm9yZykgd2hlcmUgdGhlIG1ham9yIHZlcnNpb24gbnVtYmVyCiBpbmRpY2F0ZXMgYSBicmVha2luZyBjaGFuZ2UgYW5kIHRoZSBtaW5vciB2ZXJzaW9uIGFuIGFkZGl0aXZlLAogbm9uLWJyZWFraW5nIGNoYW5nZS4gQm90aCB2ZXJzaW9uIG51bWJlcnMgYXJlIHNpZ25hbHMgdG8gdXNlcnMKIHdoYXQgdG8gZXhwZWN0IGZyb20gZGlmZmVyZW50IHZlcnNpb25zLCBhbmQgc2hvdWxkIGJlIGNhcmVmdWxseQogY2hvc2VuIGJhc2VkIG9uIHRoZSBwcm9kdWN0IHBsYW4uCgogVGhlIG1ham9yIHZlcnNpb24gaXMgYWxzbyByZWZsZWN0ZWQgaW4gdGhlIHBhY2thZ2UgbmFtZSBvZiB0aGUKIGludGVyZmFjZSwgd2hpY2ggbXVzdCBlbmQgaW4gYHY8bWFqb3ItdmVyc2lvbj5gLCBhcyBpbgogYGdvb2dsZS5mZWF0dXJlLnYxYC4gRm9yIG1ham9yIHZlcnNpb25zIDAgYW5kIDEsIHRoZSBzdWZmaXggY2FuCiBiZSBvbWl0dGVkLiBaZXJvIG1ham9yIHZlcnNpb25zIG11c3Qgb25seSBiZSB1c2VkIGZvcgogZXhwZXJpbWVudGFsLCBub24tR0EgaW50ZXJmYWNlcy4KCgoMCgUEAAIDBRIDVAIICgwKBQQAAgMBEgNUCRAKDAoFBAACAwMSA1QTFApbCgQEAAIEEgNYAiMaTiBTb3VyY2UgY29udGV4dCBmb3IgdGhlIHByb3RvY29sIGJ1ZmZlciBzZXJ2aWNlIHJlcHJlc2VudGVkIGJ5IHRoaXMKIG1lc3NhZ2UuCgoMCgUEAAIEBhIDWAIPCgwKBQQAAgQBEgNYEB4KDAoFBAACBAMSA1ghIgoyCgQEAAIFEgNbAhwaJSBJbmNsdWRlZCBpbnRlcmZhY2VzLiBTZWUgW01peGluXVtdLgoKDAoFBAACBQQSA1sCCgoMCgUEAAIFBhIDWwsQCgwKBQQAAgUBEgNbERcKDAoFBAACBQMSA1saGwowCgQEAAIGEgNeAhQaIyBUaGUgc291cmNlIHN5bnRheCBvZiB0aGUgc2VydmljZS4KCgwKBQQAAgYGEgNeAggKDAoFBAACBgESA14JDwoMCgUEAAIGAxIDXhITCj0KAgQBEgRiAHcBGjEgTWV0aG9kIHJlcHJlc2VudHMgYSBtZXRob2Qgb2YgYW4gQVBJIGludGVyZmFjZS4KCgoKAwQBARIDYggOCi4KBAQBAgASA2QCEhohIFRoZSBzaW1wbGUgbmFtZSBvZiB0aGlzIG1ldGhvZC4KCgwKBQQBAgAFEgNkAggKDAoFBAECAAESA2QJDQoMCgUEAQIAAxIDZBARCi8KBAQBAgESA2cCHhoiIEEgVVJMIG9mIHRoZSBpbnB1dCBtZXNzYWdlIHR5cGUuCgoMCgUEAQIBBRIDZwIICgwKBQQBAgEBEgNnCRkKDAoFBAECAQMSA2ccHQowCgQEAQICEgNqAh0aIyBJZiB0cnVlLCB0aGUgcmVxdWVzdCBpcyBzdHJlYW1lZC4KCgwKBQQBAgIFEgNqAgYKDAoFBAECAgESA2oHGAoMCgUEAQICAxIDahscCjIKBAQBAgMSA20CHxolIFRoZSBVUkwgb2YgdGhlIG91dHB1dCBtZXNzYWdlIHR5cGUuCgoMCgUEAQIDBRIDbQIICgwKBQQBAgMBEgNtCRoKDAoFBAECAwMSA20dHgoxCgQEAQIEEgNwAh4aJCBJZiB0cnVlLCB0aGUgcmVzcG9uc2UgaXMgc3RyZWFtZWQuCgoMCgUEAQIEBRIDcAIGCgwKBQQBAgQBEgNwBxkKDAoFBAECBAMSA3AcHQozCgQEAQIFEgNzAh4aJiBBbnkgbWV0YWRhdGEgYXR0YWNoZWQgdG8gdGhlIG1ldGhvZC4KCgwKBQQBAgUEEgNzAgoKDAoFBAECBQYSA3MLEQoMCgUEAQIFARIDcxIZCgwKBQQBAgUDEgNzHB0KMAoEBAECBhIDdgIUGiMgVGhlIHNvdXJjZSBzeW50YXggb2YgdGhpcyBtZXRob2QuCgoMCgUEAQIGBhIDdgIICgwKBQQBAgYBEgN2CQ8KDAoFBAECBgMSA3YSEwrJEwoCBAISBscBAM4BARq6EyBEZWNsYXJlcyBhbiBBUEkgSW50ZXJmYWNlIHRvIGJlIGluY2x1ZGVkIGluIHRoaXMgaW50ZXJmYWNlLiBUaGUgaW5jbHVkaW5nCiBpbnRlcmZhY2UgbXVzdCByZWRlY2xhcmUgYWxsIHRoZSBtZXRob2RzIGZyb20gdGhlIGluY2x1ZGVkIGludGVyZmFjZSwgYnV0CiBkb2N1bWVudGF0aW9uIGFuZCBvcHRpb25zIGFyZSBpbmhlcml0ZWQgYXMgZm9sbG93czoKCiAtIElmIGFmdGVyIGNvbW1lbnQgYW5kIHdoaXRlc3BhY2Ugc3RyaXBwaW5nLCB0aGUgZG9jdW1lbnRhdGlvbgogICBzdHJpbmcgb2YgdGhlIHJlZGVjbGFyZWQgbWV0aG9kIGlzIGVtcHR5LCBpdCB3aWxsIGJlIGluaGVyaXRlZAogICBmcm9tIHRoZSBvcmlnaW5hbCBtZXRob2QuCgogLSBFYWNoIGFubm90YXRpb24gYmVsb25naW5nIHRvIHRoZSBzZXJ2aWNlIGNvbmZpZyAoaHR0cCwKICAgdmlzaWJpbGl0eSkgd2hpY2ggaXMgbm90IHNldCBpbiB0aGUgcmVkZWNsYXJlZCBtZXRob2Qgd2lsbCBiZQogICBpbmhlcml0ZWQuCgogLSBJZiBhbiBodHRwIGFubm90YXRpb24gaXMgaW5oZXJpdGVkLCB0aGUgcGF0aCBwYXR0ZXJuIHdpbGwgYmUKICAgbW9kaWZpZWQgYXMgZm9sbG93cy4gQW55IHZlcnNpb24gcHJlZml4IHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhlCiAgIHZlcnNpb24gb2YgdGhlIGluY2x1ZGluZyBpbnRlcmZhY2UgcGx1cyB0aGUgW3Jvb3RdW10gcGF0aCBpZgogICBzcGVjaWZpZWQuCgogRXhhbXBsZSBvZiBhIHNpbXBsZSBtaXhpbjoKCiAgICAgcGFja2FnZSBnb29nbGUuYWNsLnYxOwogICAgIHNlcnZpY2UgQWNjZXNzQ29udHJvbCB7CiAgICAgICAvLyBHZXQgdGhlIHVuZGVybHlpbmcgQUNMIG9iamVjdC4KICAgICAgIHJwYyBHZXRBY2woR2V0QWNsUmVxdWVzdCkgcmV0dXJucyAoQWNsKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKS5nZXQgPSAiL3YxL3tyZXNvdXJjZT0qKn06Z2V0QWNsIjsKICAgICAgIH0KICAgICB9CgogICAgIHBhY2thZ2UgZ29vZ2xlLnN0b3JhZ2UudjI7CiAgICAgc2VydmljZSBTdG9yYWdlIHsKICAgICAgIHJwYyBHZXRBY2woR2V0QWNsUmVxdWVzdCkgcmV0dXJucyAoQWNsKTsKCiAgICAgICAvLyBHZXQgYSBkYXRhIHJlY29yZC4KICAgICAgIHJwYyBHZXREYXRhKEdldERhdGFSZXF1ZXN0KSByZXR1cm5zIChEYXRhKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKS5nZXQgPSAiL3YyL3tyZXNvdXJjZT0qKn0iOwogICAgICAgfQogICAgIH0KCiBFeGFtcGxlIG9mIGEgbWl4aW4gY29uZmlndXJhdGlvbjoKCiAgICAgYXBpczoKICAgICAtIG5hbWU6IGdvb2dsZS5zdG9yYWdlLnYyLlN0b3JhZ2UKICAgICAgIG1peGluczoKICAgICAgIC0gbmFtZTogZ29vZ2xlLmFjbC52MS5BY2Nlc3NDb250cm9sCgogVGhlIG1peGluIGNvbnN0cnVjdCBpbXBsaWVzIHRoYXQgYWxsIG1ldGhvZHMgaW4gYEFjY2Vzc0NvbnRyb2xgIGFyZQogYWxzbyBkZWNsYXJlZCB3aXRoIHNhbWUgbmFtZSBhbmQgcmVxdWVzdC9yZXNwb25zZSB0eXBlcyBpbgogYFN0b3JhZ2VgLiBBIGRvY3VtZW50YXRpb24gZ2VuZXJhdG9yIG9yIGFubm90YXRpb24gcHJvY2Vzc29yIHdpbGwKIHNlZSB0aGUgZWZmZWN0aXZlIGBTdG9yYWdlLkdldEFjbGAgbWV0aG9kIGFmdGVyIGluaGVydGluZwogZG9jdW1lbnRhdGlvbiBhbmQgYW5ub3RhdGlvbnMgYXMgZm9sbG93czoKCiAgICAgc2VydmljZSBTdG9yYWdlIHsKICAgICAgIC8vIEdldCB0aGUgdW5kZXJseWluZyBBQ0wgb2JqZWN0LgogICAgICAgcnBjIEdldEFjbChHZXRBY2xSZXF1ZXN0KSByZXR1cm5zIChBY2wpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApLmdldCA9ICIvdjIve3Jlc291cmNlPSoqfTpnZXRBY2wiOwogICAgICAgfQogICAgICAgLi4uCiAgICAgfQoKIE5vdGUgaG93IHRoZSB2ZXJzaW9uIGluIHRoZSBwYXRoIHBhdHRlcm4gY2hhbmdlZCBmcm9tIGB2MWAgdG8gYHYyYC4KCiBJZiB0aGUgYHJvb3RgIGZpZWxkIGluIHRoZSBtaXhpbiBpcyBzcGVjaWZpZWQsIGl0IHNob3VsZCBiZSBhCiByZWxhdGl2ZSBwYXRoIHVuZGVyIHdoaWNoIGluaGVyaXRlZCBIVFRQIHBhdGhzIGFyZSBwbGFjZWQuIEV4YW1wbGU6CgogICAgIGFwaXM6CiAgICAgLSBuYW1lOiBnb29nbGUuc3RvcmFnZS52Mi5TdG9yYWdlCiAgICAgICBtaXhpbnM6CiAgICAgICAtIG5hbWU6IGdvb2dsZS5hY2wudjEuQWNjZXNzQ29udHJvbAogICAgICAgICByb290OiBhY2xzCgogVGhpcyBpbXBsaWVzIHRoZSBmb2xsb3dpbmcgaW5oZXJpdGVkIEhUVFAgYW5ub3RhdGlvbjoKCiAgICAgc2VydmljZSBTdG9yYWdlIHsKICAgICAgIC8vIEdldCB0aGUgdW5kZXJseWluZyBBQ0wgb2JqZWN0LgogICAgICAgcnBjIEdldEFjbChHZXRBY2xSZXF1ZXN0KSByZXR1cm5zIChBY2wpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApLmdldCA9ICIvdjIvYWNscy97cmVzb3VyY2U9Kip9OmdldEFjbCI7CiAgICAgICB9CiAgICAgICAuLi4KICAgICB9CgoLCgMEAgESBMcBCA0KTAoEBAICABIEyQECEho+IFRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgaW50ZXJmYWNlIHdoaWNoIGlzIGluY2x1ZGVkLgoKDQoFBAICAAUSBMkBAggKDQoFBAICAAESBMkBCQ0KDQoFBAICAAMSBMkBEBEKWwoEBAICARIEzQECEhpNIElmIG5vbi1lbXB0eSBzcGVjaWZpZXMgYSBwYXRoIHVuZGVyIHdoaWNoIGluaGVyaXRlZCBIVFRQIHBhdGhzCiBhcmUgcm9vdGVkLgoKDQoFBAICAQUSBM0BAggKDQoFBAICAQESBM0BCQ0KDQoFBAICAQMSBM0BEBFiBnByb3RvMwrXJQoeZ29vZ2xlL3Byb3RvYnVmL2R1cmF0aW9uLnByb3RvEg9nb29nbGUucHJvdG9idWYiOgoIRHVyYXRpb24SGAoHc2Vjb25kcxgBIAEoA1IHc2Vjb25kcxIUCgVuYW5vcxgCIAEoBVIFbmFub3NCgwEKE2NvbS5nb29nbGUucHJvdG9idWZCDUR1cmF0aW9uUHJvdG9QAVoxZ29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYvdHlwZXMva25vd24vZHVyYXRpb25wYvgBAaICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0rZIwoGEgQeAHIBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgAfCgkKAggfEgMiAB8KCAoBCBIDIwBICgkKAggLEgMjAEgKCAoBCBIDJAAsCgkKAggBEgMkACwKCAoBCBIDJQAuCgkKAggIEgMlAC4KCAoBCBIDJgAiCgkKAggKEgMmACIKCAoBCBIDJwAhCgkKAggkEgMnACEKCAoBCBIDKAA7CgkKAgglEgMoADsKnRAKAgQAEgRlAHIBGpAQIEEgRHVyYXRpb24gcmVwcmVzZW50cyBhIHNpZ25lZCwgZml4ZWQtbGVuZ3RoIHNwYW4gb2YgdGltZSByZXByZXNlbnRlZAogYXMgYSBjb3VudCBvZiBzZWNvbmRzIGFuZCBmcmFjdGlvbnMgb2Ygc2Vjb25kcyBhdCBuYW5vc2Vjb25kCiByZXNvbHV0aW9uLiBJdCBpcyBpbmRlcGVuZGVudCBvZiBhbnkgY2FsZW5kYXIgYW5kIGNvbmNlcHRzIGxpa2UgImRheSIKIG9yICJtb250aCIuIEl0IGlzIHJlbGF0ZWQgdG8gVGltZXN0YW1wIGluIHRoYXQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbgogdHdvIFRpbWVzdGFtcCB2YWx1ZXMgaXMgYSBEdXJhdGlvbiBhbmQgaXQgY2FuIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQKIGZyb20gYSBUaW1lc3RhbXAuIFJhbmdlIGlzIGFwcHJveGltYXRlbHkgKy0xMCwwMDAgeWVhcnMuCgogIyBFeGFtcGxlcwoKIEV4YW1wbGUgMTogQ29tcHV0ZSBEdXJhdGlvbiBmcm9tIHR3byBUaW1lc3RhbXBzIGluIHBzZXVkbyBjb2RlLgoKICAgICBUaW1lc3RhbXAgc3RhcnQgPSAuLi47CiAgICAgVGltZXN0YW1wIGVuZCA9IC4uLjsKICAgICBEdXJhdGlvbiBkdXJhdGlvbiA9IC4uLjsKCiAgICAgZHVyYXRpb24uc2Vjb25kcyA9IGVuZC5zZWNvbmRzIC0gc3RhcnQuc2Vjb25kczsKICAgICBkdXJhdGlvbi5uYW5vcyA9IGVuZC5uYW5vcyAtIHN0YXJ0Lm5hbm9zOwoKICAgICBpZiAoZHVyYXRpb24uc2Vjb25kcyA8IDAgJiYgZHVyYXRpb24ubmFub3MgPiAwKSB7CiAgICAgICBkdXJhdGlvbi5zZWNvbmRzICs9IDE7CiAgICAgICBkdXJhdGlvbi5uYW5vcyAtPSAxMDAwMDAwMDAwOwogICAgIH0gZWxzZSBpZiAoZHVyYXRpb24uc2Vjb25kcyA+IDAgJiYgZHVyYXRpb24ubmFub3MgPCAwKSB7CiAgICAgICBkdXJhdGlvbi5zZWNvbmRzIC09IDE7CiAgICAgICBkdXJhdGlvbi5uYW5vcyArPSAxMDAwMDAwMDAwOwogICAgIH0KCiBFeGFtcGxlIDI6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gVGltZXN0YW1wICsgRHVyYXRpb24gaW4gcHNldWRvIGNvZGUuCgogICAgIFRpbWVzdGFtcCBzdGFydCA9IC4uLjsKICAgICBEdXJhdGlvbiBkdXJhdGlvbiA9IC4uLjsKICAgICBUaW1lc3RhbXAgZW5kID0gLi4uOwoKICAgICBlbmQuc2Vjb25kcyA9IHN0YXJ0LnNlY29uZHMgKyBkdXJhdGlvbi5zZWNvbmRzOwogICAgIGVuZC5uYW5vcyA9IHN0YXJ0Lm5hbm9zICsgZHVyYXRpb24ubmFub3M7CgogICAgIGlmIChlbmQubmFub3MgPCAwKSB7CiAgICAgICBlbmQuc2Vjb25kcyAtPSAxOwogICAgICAgZW5kLm5hbm9zICs9IDEwMDAwMDAwMDA7CiAgICAgfSBlbHNlIGlmIChlbmQubmFub3MgPj0gMTAwMDAwMDAwMCkgewogICAgICAgZW5kLnNlY29uZHMgKz0gMTsKICAgICAgIGVuZC5uYW5vcyAtPSAxMDAwMDAwMDAwOwogICAgIH0KCiBFeGFtcGxlIDM6IENvbXB1dGUgRHVyYXRpb24gZnJvbSBkYXRldGltZS50aW1lZGVsdGEgaW4gUHl0aG9uLgoKICAgICB0ZCA9IGRhdGV0aW1lLnRpbWVkZWx0YShkYXlzPTMsIG1pbnV0ZXM9MTApCiAgICAgZHVyYXRpb24gPSBEdXJhdGlvbigpCiAgICAgZHVyYXRpb24uRnJvbVRpbWVkZWx0YSh0ZCkKCiAjIEpTT04gTWFwcGluZwoKIEluIEpTT04gZm9ybWF0LCB0aGUgRHVyYXRpb24gdHlwZSBpcyBlbmNvZGVkIGFzIGEgc3RyaW5nIHJhdGhlciB0aGFuIGFuCiBvYmplY3QsIHdoZXJlIHRoZSBzdHJpbmcgZW5kcyBpbiB0aGUgc3VmZml4ICJzIiAoaW5kaWNhdGluZyBzZWNvbmRzKSBhbmQKIGlzIHByZWNlZGVkIGJ5IHRoZSBudW1iZXIgb2Ygc2Vjb25kcywgd2l0aCBuYW5vc2Vjb25kcyBleHByZXNzZWQgYXMKIGZyYWN0aW9uYWwgc2Vjb25kcy4gRm9yIGV4YW1wbGUsIDMgc2Vjb25kcyB3aXRoIDAgbmFub3NlY29uZHMgc2hvdWxkIGJlCiBlbmNvZGVkIGluIEpTT04gZm9ybWF0IGFzICIzcyIsIHdoaWxlIDMgc2Vjb25kcyBhbmQgMSBuYW5vc2Vjb25kIHNob3VsZAogYmUgZXhwcmVzc2VkIGluIEpTT04gZm9ybWF0IGFzICIzLjAwMDAwMDAwMXMiLCBhbmQgMyBzZWNvbmRzIGFuZCAxCiBtaWNyb3NlY29uZCBzaG91bGQgYmUgZXhwcmVzc2VkIGluIEpTT04gZm9ybWF0IGFzICIzLjAwMDAwMXMiLgoKCgoKAwQAARIDZQgQCtwBCgQEAAIAEgNpAhQazgEgU2lnbmVkIHNlY29uZHMgb2YgdGhlIHNwYW4gb2YgdGltZS4gTXVzdCBiZSBmcm9tIC0zMTUsNTc2LDAwMCwwMDAKIHRvICszMTUsNTc2LDAwMCwwMDAgaW5jbHVzaXZlLiBOb3RlOiB0aGVzZSBib3VuZHMgYXJlIGNvbXB1dGVkIGZyb206CiA2MCBzZWMvbWluICogNjAgbWluL2hyICogMjQgaHIvZGF5ICogMzY1LjI1IGRheXMveWVhciAqIDEwMDAwIHllYXJzCgoMCgUEAAIABRIDaQIHCgwKBQQAAgABEgNpCA8KDAoFBAACAAMSA2kSEwqDAwoEBAACARIDcQISGvUCIFNpZ25lZCBmcmFjdGlvbnMgb2YgYSBzZWNvbmQgYXQgbmFub3NlY29uZCByZXNvbHV0aW9uIG9mIHRoZSBzcGFuCiBvZiB0aW1lLiBEdXJhdGlvbnMgbGVzcyB0aGFuIG9uZSBzZWNvbmQgYXJlIHJlcHJlc2VudGVkIHdpdGggYSAwCiBgc2Vjb25kc2AgZmllbGQgYW5kIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgYG5hbm9zYCBmaWVsZC4gRm9yIGR1cmF0aW9ucwogb2Ygb25lIHNlY29uZCBvciBtb3JlLCBhIG5vbi16ZXJvIHZhbHVlIGZvciB0aGUgYG5hbm9zYCBmaWVsZCBtdXN0IGJlCiBvZiB0aGUgc2FtZSBzaWduIGFzIHRoZSBgc2Vjb25kc2AgZmllbGQuIE11c3QgYmUgZnJvbSAtOTk5LDk5OSw5OTkKIHRvICs5OTksOTk5LDk5OSBpbmNsdXNpdmUuCgoMCgUEAAIBBRIDcQIHCgwKBQQAAgEBEgNxCA0KDAoFBAACAQMSA3EQEWIGcHJvdG8zCv8RChtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiIHCgVFbXB0eUJ9ChNjb20uZ29vZ2xlLnByb3RvYnVmQgpFbXB0eVByb3RvUAFaLmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2VtcHR5cGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKvhAKBhIEHgAyEArMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIARQoJCgIICxIDIgBFCggKAQgSAyMALAoJCgIIARIDIwAsCggKAQgSAyQAKwoJCgIICBIDJAArCggKAQgSAyUAIgoJCgIIChIDJQAiCggKAQgSAyYAIQoJCgIIJBIDJgAhCggKAQgSAycAOwoJCgIIJRIDJwA7CggKAQgSAygAHwoJCgIIHxIDKAAfCrsCCgIEABIDMgAQGq8CIEEgZ2VuZXJpYyBlbXB0eSBtZXNzYWdlIHRoYXQgeW91IGNhbiByZS11c2UgdG8gYXZvaWQgZGVmaW5pbmcgZHVwbGljYXRlZAogZW1wdHkgbWVzc2FnZXMgaW4geW91ciBBUElzLiBBIHR5cGljYWwgZXhhbXBsZSBpcyB0byB1c2UgaXQgYXMgdGhlIHJlcXVlc3QKIG9yIHRoZSByZXNwb25zZSB0eXBlIG9mIGFuIEFQSSBtZXRob2QuIEZvciBpbnN0YW5jZToKCiAgICAgc2VydmljZSBGb28gewogICAgICAgcnBjIEJhcihnb29nbGUucHJvdG9idWYuRW1wdHkpIHJldHVybnMgKGdvb2dsZS5wcm90b2J1Zi5FbXB0eSk7CiAgICAgfQoKCgoKAwQAARIDMggNYgZwcm90bzMKij0KIGdvb2dsZS9wcm90b2J1Zi9maWVsZF9tYXNrLnByb3RvEg9nb29nbGUucHJvdG9idWYiIQoJRmllbGRNYXNrEhQKBXBhdGhzGAEgAygJUgVwYXRoc0KFAQoTY29tLmdvb2dsZS5wcm90b2J1ZkIORmllbGRNYXNrUHJvdG9QAVoyZ29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYvdHlwZXMva25vd24vZmllbGRtYXNrcGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKoTsKBxIFHgD0AQEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiACwKCQoCCAESAyIALAoICgEIEgMjAC8KCQoCCAgSAyMALwoICgEIEgMkACIKCQoCCAoSAyQAIgoICgEIEgMlACEKCQoCCCQSAyUAIQoICgEIEgMmADsKCQoCCCUSAyYAOwoICgEIEgMnAEkKCQoCCAsSAycASQoICgEIEgMoAB8KCQoCCB8SAygAHwqyLAoCBAASBvEBAPQBARqjLCBgRmllbGRNYXNrYCByZXByZXNlbnRzIGEgc2V0IG9mIHN5bWJvbGljIGZpZWxkIHBhdGhzLCBmb3IgZXhhbXBsZToKCiAgICAgcGF0aHM6ICJmLmEiCiAgICAgcGF0aHM6ICJmLmIuZCIKCiBIZXJlIGBmYCByZXByZXNlbnRzIGEgZmllbGQgaW4gc29tZSByb290IG1lc3NhZ2UsIGBhYCBhbmQgYGJgCiBmaWVsZHMgaW4gdGhlIG1lc3NhZ2UgZm91bmQgaW4gYGZgLCBhbmQgYGRgIGEgZmllbGQgZm91bmQgaW4gdGhlCiBtZXNzYWdlIGluIGBmLmJgLgoKIEZpZWxkIG1hc2tzIGFyZSB1c2VkIHRvIHNwZWNpZnkgYSBzdWJzZXQgb2YgZmllbGRzIHRoYXQgc2hvdWxkIGJlCiByZXR1cm5lZCBieSBhIGdldCBvcGVyYXRpb24gb3IgbW9kaWZpZWQgYnkgYW4gdXBkYXRlIG9wZXJhdGlvbi4KIEZpZWxkIG1hc2tzIGFsc28gaGF2ZSBhIGN1c3RvbSBKU09OIGVuY29kaW5nIChzZWUgYmVsb3cpLgoKICMgRmllbGQgTWFza3MgaW4gUHJvamVjdGlvbnMKCiBXaGVuIHVzZWQgaW4gdGhlIGNvbnRleHQgb2YgYSBwcm9qZWN0aW9uLCBhIHJlc3BvbnNlIG1lc3NhZ2Ugb3IKIHN1Yi1tZXNzYWdlIGlzIGZpbHRlcmVkIGJ5IHRoZSBBUEkgdG8gb25seSBjb250YWluIHRob3NlIGZpZWxkcyBhcwogc3BlY2lmaWVkIGluIHRoZSBtYXNrLiBGb3IgZXhhbXBsZSwgaWYgdGhlIG1hc2sgaW4gdGhlIHByZXZpb3VzCiBleGFtcGxlIGlzIGFwcGxpZWQgdG8gYSByZXNwb25zZSBtZXNzYWdlIGFzIGZvbGxvd3M6CgogICAgIGYgewogICAgICAgYSA6IDIyCiAgICAgICBiIHsKICAgICAgICAgZCA6IDEKICAgICAgICAgeCA6IDIKICAgICAgIH0KICAgICAgIHkgOiAxMwogICAgIH0KICAgICB6OiA4CgogVGhlIHJlc3VsdCB3aWxsIG5vdCBjb250YWluIHNwZWNpZmljIHZhbHVlcyBmb3IgZmllbGRzIHgseSBhbmQgegogKHRoZWlyIHZhbHVlIHdpbGwgYmUgc2V0IHRvIHRoZSBkZWZhdWx0LCBhbmQgb21pdHRlZCBpbiBwcm90byB0ZXh0CiBvdXRwdXQpOgoKCiAgICAgZiB7CiAgICAgICBhIDogMjIKICAgICAgIGIgewogICAgICAgICBkIDogMQogICAgICAgfQogICAgIH0KCiBBIHJlcGVhdGVkIGZpZWxkIGlzIG5vdCBhbGxvd2VkIGV4Y2VwdCBhdCB0aGUgbGFzdCBwb3NpdGlvbiBvZiBhCiBwYXRocyBzdHJpbmcuCgogSWYgYSBGaWVsZE1hc2sgb2JqZWN0IGlzIG5vdCBwcmVzZW50IGluIGEgZ2V0IG9wZXJhdGlvbiwgdGhlCiBvcGVyYXRpb24gYXBwbGllcyB0byBhbGwgZmllbGRzIChhcyBpZiBhIEZpZWxkTWFzayBvZiBhbGwgZmllbGRzCiBoYWQgYmVlbiBzcGVjaWZpZWQpLgoKIE5vdGUgdGhhdCBhIGZpZWxkIG1hc2sgZG9lcyBub3QgbmVjZXNzYXJpbHkgYXBwbHkgdG8gdGhlCiB0b3AtbGV2ZWwgcmVzcG9uc2UgbWVzc2FnZS4gSW4gY2FzZSBvZiBhIFJFU1QgZ2V0IG9wZXJhdGlvbiwgdGhlCiBmaWVsZCBtYXNrIGFwcGxpZXMgZGlyZWN0bHkgdG8gdGhlIHJlc3BvbnNlLCBidXQgaW4gY2FzZSBvZiBhIFJFU1QKIGxpc3Qgb3BlcmF0aW9uLCB0aGUgbWFzayBpbnN0ZWFkIGFwcGxpZXMgdG8gZWFjaCBpbmRpdmlkdWFsIG1lc3NhZ2UKIGluIHRoZSByZXR1cm5lZCByZXNvdXJjZSBsaXN0LiBJbiBjYXNlIG9mIGEgUkVTVCBjdXN0b20gbWV0aG9kLAogb3RoZXIgZGVmaW5pdGlvbnMgbWF5IGJlIHVzZWQuIFdoZXJlIHRoZSBtYXNrIGFwcGxpZXMgd2lsbCBiZQogY2xlYXJseSBkb2N1bWVudGVkIHRvZ2V0aGVyIHdpdGggaXRzIGRlY2xhcmF0aW9uIGluIHRoZSBBUEkuICBJbgogYW55IGNhc2UsIHRoZSBlZmZlY3Qgb24gdGhlIHJldHVybmVkIHJlc291cmNlL3Jlc291cmNlcyBpcyByZXF1aXJlZAogYmVoYXZpb3IgZm9yIEFQSXMuCgogIyBGaWVsZCBNYXNrcyBpbiBVcGRhdGUgT3BlcmF0aW9ucwoKIEEgZmllbGQgbWFzayBpbiB1cGRhdGUgb3BlcmF0aW9ucyBzcGVjaWZpZXMgd2hpY2ggZmllbGRzIG9mIHRoZQogdGFyZ2V0ZWQgcmVzb3VyY2UgYXJlIGdvaW5nIHRvIGJlIHVwZGF0ZWQuIFRoZSBBUEkgaXMgcmVxdWlyZWQKIHRvIG9ubHkgY2hhbmdlIHRoZSB2YWx1ZXMgb2YgdGhlIGZpZWxkcyBhcyBzcGVjaWZpZWQgaW4gdGhlIG1hc2sKIGFuZCBsZWF2ZSB0aGUgb3RoZXJzIHVudG91Y2hlZC4gSWYgYSByZXNvdXJjZSBpcyBwYXNzZWQgaW4gdG8KIGRlc2NyaWJlIHRoZSB1cGRhdGVkIHZhbHVlcywgdGhlIEFQSSBpZ25vcmVzIHRoZSB2YWx1ZXMgb2YgYWxsCiBmaWVsZHMgbm90IGNvdmVyZWQgYnkgdGhlIG1hc2suCgogSWYgYSByZXBlYXRlZCBmaWVsZCBpcyBzcGVjaWZpZWQgZm9yIGFuIHVwZGF0ZSBvcGVyYXRpb24sIG5ldyB2YWx1ZXMgd2lsbAogYmUgYXBwZW5kZWQgdG8gdGhlIGV4aXN0aW5nIHJlcGVhdGVkIGZpZWxkIGluIHRoZSB0YXJnZXQgcmVzb3VyY2UuIE5vdGUgdGhhdAogYSByZXBlYXRlZCBmaWVsZCBpcyBvbmx5IGFsbG93ZWQgaW4gdGhlIGxhc3QgcG9zaXRpb24gb2YgYSBgcGF0aHNgIHN0cmluZy4KCiBJZiBhIHN1Yi1tZXNzYWdlIGlzIHNwZWNpZmllZCBpbiB0aGUgbGFzdCBwb3NpdGlvbiBvZiB0aGUgZmllbGQgbWFzayBmb3IgYW4KIHVwZGF0ZSBvcGVyYXRpb24sIHRoZW4gbmV3IHZhbHVlIHdpbGwgYmUgbWVyZ2VkIGludG8gdGhlIGV4aXN0aW5nIHN1Yi1tZXNzYWdlCiBpbiB0aGUgdGFyZ2V0IHJlc291cmNlLgoKIEZvciBleGFtcGxlLCBnaXZlbiB0aGUgdGFyZ2V0IG1lc3NhZ2U6CgogICAgIGYgewogICAgICAgYiB7CiAgICAgICAgIGQ6IDEKICAgICAgICAgeDogMgogICAgICAgfQogICAgICAgYzogWzFdCiAgICAgfQoKIEFuZCBhbiB1cGRhdGUgbWVzc2FnZToKCiAgICAgZiB7CiAgICAgICBiIHsKICAgICAgICAgZDogMTAKICAgICAgIH0KICAgICAgIGM6IFsyXQogICAgIH0KCiB0aGVuIGlmIHRoZSBmaWVsZCBtYXNrIGlzOgoKICBwYXRoczogWyJmLmIiLCAiZi5jIl0KCiB0aGVuIHRoZSByZXN1bHQgd2lsbCBiZToKCiAgICAgZiB7CiAgICAgICBiIHsKICAgICAgICAgZDogMTAKICAgICAgICAgeDogMgogICAgICAgfQogICAgICAgYzogWzEsIDJdCiAgICAgfQoKIEFuIGltcGxlbWVudGF0aW9uIG1heSBwcm92aWRlIG9wdGlvbnMgdG8gb3ZlcnJpZGUgdGhpcyBkZWZhdWx0IGJlaGF2aW9yIGZvcgogcmVwZWF0ZWQgYW5kIG1lc3NhZ2UgZmllbGRzLgoKIEluIG9yZGVyIHRvIHJlc2V0IGEgZmllbGQncyB2YWx1ZSB0byB0aGUgZGVmYXVsdCwgdGhlIGZpZWxkIG11c3QKIGJlIGluIHRoZSBtYXNrIGFuZCBzZXQgdG8gdGhlIGRlZmF1bHQgdmFsdWUgaW4gdGhlIHByb3ZpZGVkIHJlc291cmNlLgogSGVuY2UsIGluIG9yZGVyIHRvIHJlc2V0IGFsbCBmaWVsZHMgb2YgYSByZXNvdXJjZSwgcHJvdmlkZSBhIGRlZmF1bHQKIGluc3RhbmNlIG9mIHRoZSByZXNvdXJjZSBhbmQgc2V0IGFsbCBmaWVsZHMgaW4gdGhlIG1hc2ssIG9yIGRvCiBub3QgcHJvdmlkZSBhIG1hc2sgYXMgZGVzY3JpYmVkIGJlbG93LgoKIElmIGEgZmllbGQgbWFzayBpcyBub3QgcHJlc2VudCBvbiB1cGRhdGUsIHRoZSBvcGVyYXRpb24gYXBwbGllcyB0bwogYWxsIGZpZWxkcyAoYXMgaWYgYSBmaWVsZCBtYXNrIG9mIGFsbCBmaWVsZHMgaGFzIGJlZW4gc3BlY2lmaWVkKS4KIE5vdGUgdGhhdCBpbiB0aGUgcHJlc2VuY2Ugb2Ygc2NoZW1hIGV2b2x1dGlvbiwgdGhpcyBtYXkgbWVhbiB0aGF0CiBmaWVsZHMgdGhlIGNsaWVudCBkb2VzIG5vdCBrbm93IGFuZCBoYXMgdGhlcmVmb3JlIG5vdCBmaWxsZWQgaW50bwogdGhlIHJlcXVlc3Qgd2lsbCBiZSByZXNldCB0byB0aGVpciBkZWZhdWx0LiBJZiB0aGlzIGlzIHVud2FudGVkCiBiZWhhdmlvciwgYSBzcGVjaWZpYyBzZXJ2aWNlIG1heSByZXF1aXJlIGEgY2xpZW50IHRvIGFsd2F5cyBzcGVjaWZ5CiBhIGZpZWxkIG1hc2ssIHByb2R1Y2luZyBhbiBlcnJvciBpZiBub3QuCgogQXMgd2l0aCBnZXQgb3BlcmF0aW9ucywgdGhlIGxvY2F0aW9uIG9mIHRoZSByZXNvdXJjZSB3aGljaAogZGVzY3JpYmVzIHRoZSB1cGRhdGVkIHZhbHVlcyBpbiB0aGUgcmVxdWVzdCBtZXNzYWdlIGRlcGVuZHMgb24gdGhlCiBvcGVyYXRpb24ga2luZC4gSW4gYW55IGNhc2UsIHRoZSBlZmZlY3Qgb2YgdGhlIGZpZWxkIG1hc2sgaXMKIHJlcXVpcmVkIHRvIGJlIGhvbm9yZWQgYnkgdGhlIEFQSS4KCiAjIyBDb25zaWRlcmF0aW9ucyBmb3IgSFRUUCBSRVNUCgogVGhlIEhUVFAga2luZCBvZiBhbiB1cGRhdGUgb3BlcmF0aW9uIHdoaWNoIHVzZXMgYSBmaWVsZCBtYXNrIG11c3QKIGJlIHNldCB0byBQQVRDSCBpbnN0ZWFkIG9mIFBVVCBpbiBvcmRlciB0byBzYXRpc2Z5IEhUVFAgc2VtYW50aWNzCiAoUFVUIG11c3Qgb25seSBiZSB1c2VkIGZvciBmdWxsIHVwZGF0ZXMpLgoKICMgSlNPTiBFbmNvZGluZyBvZiBGaWVsZCBNYXNrcwoKIEluIEpTT04sIGEgZmllbGQgbWFzayBpcyBlbmNvZGVkIGFzIGEgc2luZ2xlIHN0cmluZyB3aGVyZSBwYXRocyBhcmUKIHNlcGFyYXRlZCBieSBhIGNvbW1hLiBGaWVsZHMgbmFtZSBpbiBlYWNoIHBhdGggYXJlIGNvbnZlcnRlZAogdG8vZnJvbSBsb3dlci1jYW1lbCBuYW1pbmcgY29udmVudGlvbnMuCgogQXMgYW4gZXhhbXBsZSwgY29uc2lkZXIgdGhlIGZvbGxvd2luZyBtZXNzYWdlIGRlY2xhcmF0aW9uczoKCiAgICAgbWVzc2FnZSBQcm9maWxlIHsKICAgICAgIFVzZXIgdXNlciA9IDE7CiAgICAgICBQaG90byBwaG90byA9IDI7CiAgICAgfQogICAgIG1lc3NhZ2UgVXNlciB7CiAgICAgICBzdHJpbmcgZGlzcGxheV9uYW1lID0gMTsKICAgICAgIHN0cmluZyBhZGRyZXNzID0gMjsKICAgICB9CgogSW4gcHJvdG8gYSBmaWVsZCBtYXNrIGZvciBgUHJvZmlsZWAgbWF5IGxvb2sgYXMgc3VjaDoKCiAgICAgbWFzayB7CiAgICAgICBwYXRoczogInVzZXIuZGlzcGxheV9uYW1lIgogICAgICAgcGF0aHM6ICJwaG90byIKICAgICB9CgogSW4gSlNPTiwgdGhlIHNhbWUgbWFzayBpcyByZXByZXNlbnRlZCBhcyBiZWxvdzoKCiAgICAgewogICAgICAgbWFzazogInVzZXIuZGlzcGxheU5hbWUscGhvdG8iCiAgICAgfQoKICMgRmllbGQgTWFza3MgYW5kIE9uZW9mIEZpZWxkcwoKIEZpZWxkIG1hc2tzIHRyZWF0IGZpZWxkcyBpbiBvbmVvZnMganVzdCBhcyByZWd1bGFyIGZpZWxkcy4gQ29uc2lkZXIgdGhlCiBmb2xsb3dpbmcgbWVzc2FnZToKCiAgICAgbWVzc2FnZSBTYW1wbGVNZXNzYWdlIHsKICAgICAgIG9uZW9mIHRlc3Rfb25lb2YgewogICAgICAgICBzdHJpbmcgbmFtZSA9IDQ7CiAgICAgICAgIFN1Yk1lc3NhZ2Ugc3ViX21lc3NhZ2UgPSA5OwogICAgICAgfQogICAgIH0KCiBUaGUgZmllbGQgbWFzayBjYW4gYmU6CgogICAgIG1hc2sgewogICAgICAgcGF0aHM6ICJuYW1lIgogICAgIH0KCiBPcjoKCiAgICAgbWFzayB7CiAgICAgICBwYXRoczogInN1Yl9tZXNzYWdlIgogICAgIH0KCiBOb3RlIHRoYXQgb25lb2YgdHlwZSBuYW1lcyAoInRlc3Rfb25lb2YiIGluIHRoaXMgY2FzZSkgY2Fubm90IGJlIHVzZWQgaW4KIHBhdGhzLgoKICMjIEZpZWxkIE1hc2sgVmVyaWZpY2F0aW9uCgogVGhlIGltcGxlbWVudGF0aW9uIG9mIGFueSBBUEkgbWV0aG9kIHdoaWNoIGhhcyBhIEZpZWxkTWFzayB0eXBlIGZpZWxkIGluIHRoZQogcmVxdWVzdCBzaG91bGQgdmVyaWZ5IHRoZSBpbmNsdWRlZCBmaWVsZCBwYXRocywgYW5kIHJldHVybiBhbgogYElOVkFMSURfQVJHVU1FTlRgIGVycm9yIGlmIGFueSBwYXRoIGlzIHVubWFwcGFibGUuCgoLCgMEAAESBPEBCBEKLAoEBAACABIE8wECHBoeIFRoZSBzZXQgb2YgZmllbGQgbWFzayBwYXRocy4KCg0KBQQAAgAEEgTzAQIKCg0KBQQAAgAFEgTzAQsRCg0KBQQAAgABEgTzARIXCg0KBQQAAgADEgTzARobYgZwcm90bzMKwzEKH2dvb2dsZS9wcm90b2J1Zi90aW1lc3RhbXAucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiI7CglUaW1lc3RhbXASGAoHc2Vjb25kcxgBIAEoA1IHc2Vjb25kcxIUCgVuYW5vcxgCIAEoBVIFbmFub3NChQEKE2NvbS5nb29nbGUucHJvdG9idWZCDlRpbWVzdGFtcFByb3RvUAFaMmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3RpbWVzdGFtcHBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSsEvCgcSBR4AjwEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgAfCgkKAggfEgMiAB8KCAoBCBIDIwBJCgkKAggLEgMjAEkKCAoBCBIDJAAsCgkKAggBEgMkACwKCAoBCBIDJQAvCgkKAggIEgMlAC8KCAoBCBIDJgAiCgkKAggKEgMmACIKCAoBCBIDJwAhCgkKAggkEgMnACEKCAoBCBIDKAA7CgkKAgglEgMoADsK2h0KAgQAEgaEAQCPAQEayx0gQSBUaW1lc3RhbXAgcmVwcmVzZW50cyBhIHBvaW50IGluIHRpbWUgaW5kZXBlbmRlbnQgb2YgYW55IHRpbWUgem9uZSBvciBsb2NhbAogY2FsZW5kYXIsIGVuY29kZWQgYXMgYSBjb3VudCBvZiBzZWNvbmRzIGFuZCBmcmFjdGlvbnMgb2Ygc2Vjb25kcyBhdAogbmFub3NlY29uZCByZXNvbHV0aW9uLiBUaGUgY291bnQgaXMgcmVsYXRpdmUgdG8gYW4gZXBvY2ggYXQgVVRDIG1pZG5pZ2h0IG9uCiBKYW51YXJ5IDEsIDE5NzAsIGluIHRoZSBwcm9sZXB0aWMgR3JlZ29yaWFuIGNhbGVuZGFyIHdoaWNoIGV4dGVuZHMgdGhlCiBHcmVnb3JpYW4gY2FsZW5kYXIgYmFja3dhcmRzIHRvIHllYXIgb25lLgoKIEFsbCBtaW51dGVzIGFyZSA2MCBzZWNvbmRzIGxvbmcuIExlYXAgc2Vjb25kcyBhcmUgInNtZWFyZWQiIHNvIHRoYXQgbm8gbGVhcAogc2Vjb25kIHRhYmxlIGlzIG5lZWRlZCBmb3IgaW50ZXJwcmV0YXRpb24sIHVzaW5nIGEgWzI0LWhvdXIgbGluZWFyCiBzbWVhcl0oaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vdGltZS9zbWVhcikuCgogVGhlIHJhbmdlIGlzIGZyb20gMDAwMS0wMS0wMVQwMDowMDowMFogdG8gOTk5OS0xMi0zMVQyMzo1OTo1OS45OTk5OTk5OTlaLiBCeQogcmVzdHJpY3RpbmcgdG8gdGhhdCByYW5nZSwgd2UgZW5zdXJlIHRoYXQgd2UgY2FuIGNvbnZlcnQgdG8gYW5kIGZyb20gW1JGQwogMzMzOV0oaHR0cHM6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzMzMzkudHh0KSBkYXRlIHN0cmluZ3MuCgogIyBFeGFtcGxlcwoKIEV4YW1wbGUgMTogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBQT1NJWCBgdGltZSgpYC4KCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcDsKICAgICB0aW1lc3RhbXAuc2V0X3NlY29uZHModGltZShOVUxMKSk7CiAgICAgdGltZXN0YW1wLnNldF9uYW5vcygwKTsKCiBFeGFtcGxlIDI6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gUE9TSVggYGdldHRpbWVvZmRheSgpYC4KCiAgICAgc3RydWN0IHRpbWV2YWwgdHY7CiAgICAgZ2V0dGltZW9mZGF5KCZ0diwgTlVMTCk7CgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXA7CiAgICAgdGltZXN0YW1wLnNldF9zZWNvbmRzKHR2LnR2X3NlYyk7CiAgICAgdGltZXN0YW1wLnNldF9uYW5vcyh0di50dl91c2VjICogMTAwMCk7CgogRXhhbXBsZSAzOiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIFdpbjMyIGBHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZSgpYC4KCiAgICAgRklMRVRJTUUgZnQ7CiAgICAgR2V0U3lzdGVtVGltZUFzRmlsZVRpbWUoJmZ0KTsKICAgICBVSU5UNjQgdGlja3MgPSAoKChVSU5UNjQpZnQuZHdIaWdoRGF0ZVRpbWUpIDw8IDMyKSB8IGZ0LmR3TG93RGF0ZVRpbWU7CgogICAgIC8vIEEgV2luZG93cyB0aWNrIGlzIDEwMCBuYW5vc2Vjb25kcy4gV2luZG93cyBlcG9jaCAxNjAxLTAxLTAxVDAwOjAwOjAwWgogICAgIC8vIGlzIDExNjQ0NDczNjAwIHNlY29uZHMgYmVmb3JlIFVuaXggZXBvY2ggMTk3MC0wMS0wMVQwMDowMDowMFouCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcDsKICAgICB0aW1lc3RhbXAuc2V0X3NlY29uZHMoKElOVDY0KSAoKHRpY2tzIC8gMTAwMDAwMDApIC0gMTE2NDQ0NzM2MDBMTCkpOwogICAgIHRpbWVzdGFtcC5zZXRfbmFub3MoKElOVDMyKSAoKHRpY2tzICUgMTAwMDAwMDApICogMTAwKSk7CgogRXhhbXBsZSA0OiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIEphdmEgYFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpYC4KCiAgICAgbG9uZyBtaWxsaXMgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcCA9IFRpbWVzdGFtcC5uZXdCdWlsZGVyKCkuc2V0U2Vjb25kcyhtaWxsaXMgLyAxMDAwKQogICAgICAgICAuc2V0TmFub3MoKGludCkgKChtaWxsaXMgJSAxMDAwKSAqIDEwMDAwMDApKS5idWlsZCgpOwoKIEV4YW1wbGUgNTogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBKYXZhIGBJbnN0YW50Lm5vdygpYC4KCiAgICAgSW5zdGFudCBub3cgPSBJbnN0YW50Lm5vdygpOwoKICAgICBUaW1lc3RhbXAgdGltZXN0YW1wID0KICAgICAgICAgVGltZXN0YW1wLm5ld0J1aWxkZXIoKS5zZXRTZWNvbmRzKG5vdy5nZXRFcG9jaFNlY29uZCgpKQogICAgICAgICAgICAgLnNldE5hbm9zKG5vdy5nZXROYW5vKCkpLmJ1aWxkKCk7CgogRXhhbXBsZSA2OiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIGN1cnJlbnQgdGltZSBpbiBQeXRob24uCgogICAgIHRpbWVzdGFtcCA9IFRpbWVzdGFtcCgpCiAgICAgdGltZXN0YW1wLkdldEN1cnJlbnRUaW1lKCkKCiAjIEpTT04gTWFwcGluZwoKIEluIEpTT04gZm9ybWF0LCB0aGUgVGltZXN0YW1wIHR5cGUgaXMgZW5jb2RlZCBhcyBhIHN0cmluZyBpbiB0aGUKIFtSRkMgMzMzOV0oaHR0cHM6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzMzMzkudHh0KSBmb3JtYXQuIFRoYXQgaXMsIHRoZQogZm9ybWF0IGlzICJ7eWVhcn0te21vbnRofS17ZGF5fVR7aG91cn06e21pbn06e3NlY31bLntmcmFjX3NlY31dWiIKIHdoZXJlIHt5ZWFyfSBpcyBhbHdheXMgZXhwcmVzc2VkIHVzaW5nIGZvdXIgZGlnaXRzIHdoaWxlIHttb250aH0sIHtkYXl9LAoge2hvdXJ9LCB7bWlufSwgYW5kIHtzZWN9IGFyZSB6ZXJvLXBhZGRlZCB0byB0d28gZGlnaXRzIGVhY2guIFRoZSBmcmFjdGlvbmFsCiBzZWNvbmRzLCB3aGljaCBjYW4gZ28gdXAgdG8gOSBkaWdpdHMgKGkuZS4gdXAgdG8gMSBuYW5vc2Vjb25kIHJlc29sdXRpb24pLAogYXJlIG9wdGlvbmFsLiBUaGUgIloiIHN1ZmZpeCBpbmRpY2F0ZXMgdGhlIHRpbWV6b25lICgiVVRDIik7IHRoZSB0aW1lem9uZQogaXMgcmVxdWlyZWQuIEEgcHJvdG8zIEpTT04gc2VyaWFsaXplciBzaG91bGQgYWx3YXlzIHVzZSBVVEMgKGFzIGluZGljYXRlZCBieQogIloiKSB3aGVuIHByaW50aW5nIHRoZSBUaW1lc3RhbXAgdHlwZSBhbmQgYSBwcm90bzMgSlNPTiBwYXJzZXIgc2hvdWxkIGJlCiBhYmxlIHRvIGFjY2VwdCBib3RoIFVUQyBhbmQgb3RoZXIgdGltZXpvbmVzIChhcyBpbmRpY2F0ZWQgYnkgYW4gb2Zmc2V0KS4KCiBGb3IgZXhhbXBsZSwgIjIwMTctMDEtMTVUMDE6MzA6MTUuMDFaIiBlbmNvZGVzIDE1LjAxIHNlY29uZHMgcGFzdAogMDE6MzAgVVRDIG9uIEphbnVhcnkgMTUsIDIwMTcuCgogSW4gSmF2YVNjcmlwdCwgb25lIGNhbiBjb252ZXJ0IGEgRGF0ZSBvYmplY3QgdG8gdGhpcyBmb3JtYXQgdXNpbmcgdGhlCiBzdGFuZGFyZAogW3RvSVNPU3RyaW5nKCldKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0RhdGUvdG9JU09TdHJpbmcpCiBtZXRob2QuIEluIFB5dGhvbiwgYSBzdGFuZGFyZCBgZGF0ZXRpbWUuZGF0ZXRpbWVgIG9iamVjdCBjYW4gYmUgY29udmVydGVkCiB0byB0aGlzIGZvcm1hdCB1c2luZwogW2BzdHJmdGltZWBdKGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzIvbGlicmFyeS90aW1lLmh0bWwjdGltZS5zdHJmdGltZSkgd2l0aAogdGhlIHRpbWUgZm9ybWF0IHNwZWMgJyVZLSVtLSVkVCVIOiVNOiVTLiVmWicuIExpa2V3aXNlLCBpbiBKYXZhLCBvbmUgY2FuIHVzZQogdGhlIEpvZGEgVGltZSdzIFtgSVNPRGF0ZVRpbWVGb3JtYXQuZGF0ZVRpbWUoKWBdKAogaHR0cDovL2pvZGEtdGltZS5zb3VyY2Vmb3JnZS5uZXQvYXBpZG9jcy9vcmcvam9kYS90aW1lL2Zvcm1hdC9JU09EYXRlVGltZUZvcm1hdC5odG1sI2RhdGVUaW1lKCkKICkgdG8gb2J0YWluIGEgZm9ybWF0dGVyIGNhcGFibGUgb2YgZ2VuZXJhdGluZyB0aW1lc3RhbXBzIGluIHRoaXMgZm9ybWF0LgoKCgsKAwQAARIEhAEIEQqdAQoEBAACABIEiAECFBqOASBSZXByZXNlbnRzIHNlY29uZHMgb2YgVVRDIHRpbWUgc2luY2UgVW5peCBlcG9jaAogMTk3MC0wMS0wMVQwMDowMDowMFouIE11c3QgYmUgZnJvbSAwMDAxLTAxLTAxVDAwOjAwOjAwWiB0bwogOTk5OS0xMi0zMVQyMzo1OTo1OVogaW5jbHVzaXZlLgoKDQoFBAACAAUSBIgBAgcKDQoFBAACAAESBIgBCA8KDQoFBAACAAMSBIgBEhMK5QEKBAQAAgESBI4BAhIa1gEgTm9uLW5lZ2F0aXZlIGZyYWN0aW9ucyBvZiBhIHNlY29uZCBhdCBuYW5vc2Vjb25kIHJlc29sdXRpb24uIE5lZ2F0aXZlCiBzZWNvbmQgdmFsdWVzIHdpdGggZnJhY3Rpb25zIG11c3Qgc3RpbGwgaGF2ZSBub24tbmVnYXRpdmUgbmFub3MgdmFsdWVzCiB0aGF0IGNvdW50IGZvcndhcmQgaW4gdGltZS4gTXVzdCBiZSBmcm9tIDAgdG8gOTk5LDk5OSw5OTkKIGluY2x1c2l2ZS4KCg0KBQQAAgEFEgSOAQIHCg0KBQQAAgEBEgSOAQgNCg0KBQQAAgEDEgSOARARYgZwcm90bzMKzSMKHmdvb2dsZS9wcm90b2J1Zi93cmFwcGVycy5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIiMKC0RvdWJsZVZhbHVlEhQKBXZhbHVlGAEgASgBUgV2YWx1ZSIiCgpGbG9hdFZhbHVlEhQKBXZhbHVlGAEgASgCUgV2YWx1ZSIiCgpJbnQ2NFZhbHVlEhQKBXZhbHVlGAEgASgDUgV2YWx1ZSIjCgtVSW50NjRWYWx1ZRIUCgV2YWx1ZRgBIAEoBFIFdmFsdWUiIgoKSW50MzJWYWx1ZRIUCgV2YWx1ZRgBIAEoBVIFdmFsdWUiIwoLVUludDMyVmFsdWUSFAoFdmFsdWUYASABKA1SBXZhbHVlIiEKCUJvb2xWYWx1ZRIUCgV2YWx1ZRgBIAEoCFIFdmFsdWUiIwoLU3RyaW5nVmFsdWUSFAoFdmFsdWUYASABKAlSBXZhbHVlIiIKCkJ5dGVzVmFsdWUSFAoFdmFsdWUYASABKAxSBXZhbHVlQoMBChNjb20uZ29vZ2xlLnByb3RvYnVmQg1XcmFwcGVyc1Byb3RvUAFaMWdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3dyYXBwZXJzcGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKxB8KBhIEKAB6AQrZEAoBDBIDKAASMs4QIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKIFdyYXBwZXJzIGZvciBwcmltaXRpdmUgKG5vbi1tZXNzYWdlKSB0eXBlcy4gVGhlc2UgdHlwZXMgYXJlIHVzZWZ1bAogZm9yIGVtYmVkZGluZyBwcmltaXRpdmVzIGluIHRoZSBgZ29vZ2xlLnByb3RvYnVmLkFueWAgdHlwZSBhbmQgZm9yIHBsYWNlcwogd2hlcmUgd2UgbmVlZCB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZSBhYnNlbmNlIG9mIGEgcHJpbWl0aXZlCiB0eXBlZCBmaWVsZCBhbmQgaXRzIGRlZmF1bHQgdmFsdWUuCgogVGhlc2Ugd3JhcHBlcnMgaGF2ZSBubyBtZWFuaW5nZnVsIHVzZSB3aXRoaW4gcmVwZWF0ZWQgZmllbGRzIGFzIHRoZXkgbGFjawogdGhlIGFiaWxpdHkgdG8gZGV0ZWN0IHByZXNlbmNlIG9uIGluZGl2aWR1YWwgZWxlbWVudHMuCiBUaGVzZSB3cmFwcGVycyBoYXZlIG5vIG1lYW5pbmdmdWwgdXNlIHdpdGhpbiBhIG1hcCBvciBhIG9uZW9mIHNpbmNlCiBpbmRpdmlkdWFsIGVudHJpZXMgb2YgYSBtYXAgb3IgZmllbGRzIG9mIGEgb25lb2YgY2FuIGFscmVhZHkgZGV0ZWN0IHByZXNlbmNlLgoKCAoBAhIDKgAYCggKAQgSAywAHwoJCgIIHxIDLAAfCggKAQgSAy0ASAoJCgIICxIDLQBICggKAQgSAy4ALAoJCgIIARIDLgAsCggKAQgSAy8ALgoJCgIICBIDLwAuCggKAQgSAzAAIgoJCgIIChIDMAAiCggKAQgSAzEAIQoJCgIIJBIDMQAhCggKAQgSAzIAOwoJCgIIJRIDMgA7CmcKAgQAEgQ3ADoBGlsgV3JhcHBlciBtZXNzYWdlIGZvciBgZG91YmxlYC4KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYERvdWJsZVZhbHVlYCBpcyBKU09OIG51bWJlci4KCgoK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dG9idWYvZW1wdHkucHJvdG8aIGdvb2dsZS9wcm90b2J1Zi9maWVsZF9tYXNrLnByb3RvGiRnb29nbGUvcHJvdG9idWYvc291cmNlX2NvbnRleHQucHJvdG8aHGdvb2dsZS9wcm90b2J1Zi9zdHJ1Y3QucHJvdG8aH2dvb2dsZS9wcm90b2J1Zi90aW1lc3RhbXAucHJvdG8aGmdvb2dsZS9wcm90b2J1Zi90eXBlLnByb3RvGh5nb29nbGUvcHJvdG9idWYvd3JhcHBlcnMucHJvdG8itAkKElRlc3RXZWxsS25vd25UeXBlcxIxCglhbnlfZmllbGQYASABKAsyFC5nb29nbGUucHJvdG9idWYuQW55UghhbnlGaWVsZBIxCglhcGlfZmllbGQYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQXBpUghhcGlGaWVsZBJACg5kdXJhdGlvbl9maWVsZBgDIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvblINZHVyYXRpb25GaWVsZBI3CgtlbXB0eV9maWVsZBgEIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eVIKZW1wdHlGaWVsZBJEChBmaWVsZF9tYXNrX2ZpZWxkGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza1IOZmllbGRNYXNrRmllbGQSUAoUc291cmNlX2NvbnRleHRfZmllbGQYBiABKAsyHi5nb29nbGUucHJvdG9idWYuU291cmNlQ29udGV4dFISc291cmNlQ29udGV4dEZpZWxkEjoKDHN0cnVjdF9maWVsZBgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RSC3N0cnVjdEZpZWxkEkMKD3RpbWVzdGFtcF9maWVsZBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBSDnRpbWVzdGFtcEZpZWxkEjQKCnR5cGVfZmllbGQYCSABKAsyFS5nb29nbGUucHJvdG9idWYuVHlwZVIJdHlwZUZpZWxkEj8KDGRvdWJsZV9maWVsZBgKIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZVILZG91YmxlRmllbGQSPAoLZmxvYXRfZmllbGQYCyABKAsyGy5nb29nbGUucHJvdG9idWYuRmxvYXRWYWx1ZVIKZmxvYXRGaWVsZBI8CgtpbnQ2NF9maWVsZBgMIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlUgppbnQ2NEZpZWxkEj8KDHVpbnQ2NF9maWVsZBgNIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRWYWx1ZVILdWludDY0RmllbGQSPAoLaW50MzJfZmllbGQYDiABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZVIKaW50MzJGaWVsZBI/Cgx1aW50MzJfZmllbGQYDyABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDMyVmFsdWVSC3VpbnQzMkZpZWxkEjkKCmJvb2xfZmllbGQYECABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlUglib29sRmllbGQSPwoMc3RyaW5nX2ZpZWxkGBEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlUgtzdHJpbmdGaWVsZBI8CgtieXRlc19maWVsZBgSIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5CeXRlc1ZhbHVlUgpieXRlc0ZpZWxkEjcKC3ZhbHVlX2ZpZWxkGBMgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlUgp2YWx1ZUZpZWxkIv8IChZSZXBlYXRlZFdlbGxLbm93blR5cGVzEjEKCWFueV9maWVsZBgBIAMoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSCGFueUZpZWxkEjEKCWFwaV9maWVsZBgCIAMoCzIULmdvb2dsZS5wcm90b2J1Zi5BcGlSCGFwaUZpZWxkEkAKDmR1cmF0aW9uX2ZpZWxkGAMgAygLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uUg1kdXJhdGlvbkZpZWxkEjcKC2VtcHR5X2ZpZWxkGAQgAygLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5UgplbXB0eUZpZWxkEkQKEGZpZWxkX21hc2tfZmllbGQYBSADKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrUg5maWVsZE1hc2tGaWVsZBJQChRzb3VyY2VfY29udGV4dF9maWVsZBgGIAMoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0UhJzb3VyY2VDb250ZXh0RmllbGQSOgoMc3RydWN0X2ZpZWxkGAcgAygLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdFILc3RydWN0RmllbGQSQwoPdGltZXN0YW1wX2ZpZWxkGAggAygLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIOdGltZXN0YW1wRmllbGQSNAoKdHlwZV9maWVsZBgJIAMoCzIVLmdvb2dsZS5wcm90b2J1Zi5UeXBlUgl0eXBlRmllbGQSPwoMZG91YmxlX2ZpZWxkGAogAygLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlUgtkb3VibGVGaWVsZBI8CgtmbG9hdF9maWVsZBgLIAMoCzIbLmdvb2dsZS5wcm90b2J1Zi5GbG9hdFZhbHVlUgpmbG9hdEZpZWxkEjwKC2ludDY0X2ZpZWxkGAwgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVSCmludDY0RmllbGQSPwoMdWludDY0X2ZpZWxkGA0gAygLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQ2NFZhbHVlUgt1aW50NjRGaWVsZBI8CgtpbnQzMl9maWVsZBgOIAMoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlUgppbnQzMkZpZWxkEj8KDHVpbnQzMl9maWVsZBgPIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZVILdWludDMyRmllbGQSOQoKYm9vbF9maWVsZBgQIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWVSCWJvb2xGaWVsZBI/CgxzdHJpbmdfZmllbGQYESADKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWVSC3N0cmluZ0ZpZWxkEjwKC2J5dGVzX2ZpZWxkGBIgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVSCmJ5dGVzRmllbGQirwkKE09uZW9mV2VsbEtub3duVHlwZXMSMwoJYW55X2ZpZWxkGAEgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueUgAUghhbnlGaWVsZBIzCglhcGlfZmllbGQYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQXBpSABSCGFwaUZpZWxkEkIKDmR1cmF0aW9uX2ZpZWxkGAMgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uSABSDWR1cmF0aW9uRmllbGQSOQoLZW1wdHlfZmllbGQYBCABKAsyFi5nb29nbGUucHJvdG9idWYuRW1wdHlIAFIKZW1wdHlGaWVsZBJGChBmaWVsZF9tYXNrX2ZpZWxkGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza0gAUg5maWVsZE1hc2tGaWVsZBJSChRzb3VyY2VfY29udGV4dF9maWVsZBgGIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0SABSEnNvdXJjZUNvbnRleHRGaWVsZBI8CgxzdHJ1Y3RfZmllbGQYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SABSC3N0cnVjdEZpZWxkEkUKD3RpbWVzdGFtcF9maWVsZBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAFIOdGltZXN0YW1wRmllbGQSNgoKdHlwZV9maWVsZBgJIAEoCzIVLmdvb2dsZS5wcm90b2J1Zi5UeXBlSABSCXR5cGVGaWVsZBJBCgxkb3VibGVfZmllbGQYCiABKAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWVIAFILZG91YmxlRmllbGQSPgoLZmxvYXRfZmllbGQYCyABKAsyGy5nb29nbGUucHJvdG9idWYuRmxvYXRWYWx1ZUgAUgpmbG9hdEZpZWxkEj4KC2ludDY0X2ZpZWxkGAwgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVIAFIKaW50NjRGaWVsZBJBCgx1aW50NjRfZmllbGQYDSABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWVIAFILdWludDY0RmllbGQSPgoLaW50MzJfZmllbGQYDiABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZUgAUgppbnQzMkZpZWxkEkEKDHVpbnQzMl9maWVsZBgPIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZUgAUgt1aW50MzJGaWVsZBI7Cgpib29sX2ZpZWxkGBAgASgLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZUgAUglib29sRmllbGQSQQoMc3RyaW5nX2ZpZWxkGBEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlSABSC3N0cmluZ0ZpZWxkEj4KC2J5dGVzX2ZpZWxkGBIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVIAFIKYnl0ZXNGaWVsZEINCgtvbmVvZl9maWVsZCLYGQoRTWFwV2VsbEtub3duVHlwZXMSTwoJYW55X2ZpZWxkGAEgAygLMjIucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuQW55RmllbGRFbnRyeVIIYW55RmllbGQSTwoJYXBpX2ZpZWxkGAIgAygLMjIucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuQXBpRmllbGRFbnRyeVIIYXBpRmllbGQSXgoOZHVyYXRpb25fZmllbGQYAyADKAsyNy5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5EdXJhdGlvbkZpZWxkRW50cnlSDWR1cmF0aW9uRmllbGQSVQoLZW1wdHlfZmllbGQYBCADKAsyNC5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5FbXB0eUZpZWxkRW50cnlSCmVtcHR5RmllbGQSYgoQZmllbGRfbWFza19maWVsZBgFIAMoCzI4LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkZpZWxkTWFza0ZpZWxkRW50cnlSDmZpZWxkTWFza0ZpZWxkEm4KFHNvdXJjZV9jb250ZXh0X2ZpZWxkGAYgAygLMjwucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuU291cmNlQ29udGV4dEZpZWxkRW50cnlSEnNvdXJjZUNvbnRleHRGaWVsZBJYCgxzdHJ1Y3RfZmllbGQYByADKAsyNS5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5TdHJ1Y3RGaWVsZEVudHJ5UgtzdHJ1Y3RGaWVsZBJhCg90aW1lc3RhbXBfZmllbGQYCCADKAsyOC5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5UaW1lc3RhbXBGaWVsZEVudHJ5Ug50aW1lc3RhbXBGaWVsZBJSCgp0eXBlX2ZpZWxkGAkgAygLMjMucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuVHlwZUZpZWxkRW50cnlSCXR5cGVGaWVsZBJYCgxkb3VibGVfZmllbGQYCiADKAsyNS5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5Eb3VibGVGaWVsZEVudHJ5Ugtkb3VibGVGaWVsZBJVCgtmbG9hdF9maWVsZBgLIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkZsb2F0RmllbGRFbnRyeVIKZmxvYXRGaWVsZBJVCgtpbnQ2NF9maWVsZBgMIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkludDY0RmllbGRFbnRyeVIKaW50NjRGaWVsZBJYCgx1aW50NjRfZmllbGQYDSADKAsyNS5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5VaW50NjRGaWVsZEVudHJ5Ugt1aW50NjRGaWVsZBJVCgtpbnQzMl9maWVsZBgOIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkludDMyRmllbGRFbnRyeVIKaW50MzJGaWVsZBJYCgx1aW50MzJfZmllbGQYDyADKAsyNS5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5VaW50MzJGaWVsZEVudHJ5Ugt1aW50MzJGaWVsZBJSCgpib29sX2ZpZWxkGBAgAygLMjMucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuQm9vbEZpZWxkRW50cnlSCWJvb2xGaWVsZBJYCgxzdHJpbmdfZmllbGQYESADKAsyNS5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5TdHJpbmdGaWVsZEVudHJ5UgtzdHJpbmdGaWVsZBJVCgtieXRlc19maWVsZBgSIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkJ5dGVzRmllbGRFbnRyeVIKYnl0ZXNGaWVsZBpRCg1BbnlGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EioKBXZhbHVlGAIgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIFdmFsdWU6AjgBGlEKDUFwaUZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSKgoFdmFsdWUYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQXBpUgV2YWx1ZToCOAEaWwoSRHVyYXRpb25GaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5Ei8KBXZhbHVlGAIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uUgV2YWx1ZToCOAEaVQoPRW1wdHlGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EiwKBXZhbHVlGAIgASgLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5UgV2YWx1ZToCOAEaXQoTRmllbGRNYXNrRmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIwCgV2YWx1ZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tSBXZhbHVlOgI4ARplChdTb3VyY2VDb250ZXh0RmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRI0CgV2YWx1ZRgCIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0UgV2YWx1ZToCOAEaVwoQU3RydWN0RmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRItCgV2YWx1ZRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RSBXZhbHVlOgI4ARpdChNUaW1lc3RhbXBGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjAKBXZhbHVlGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIFdmFsdWU6AjgBGlMKDlR5cGVGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EisKBXZhbHVlGAIgASgLMhUuZ29vZ2xlLnByb3RvYnVmLlR5cGVSBXZhbHVlOgI4ARpcChBEb3VibGVGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjIKBXZhbHVlGAIgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlUgV2YWx1ZToCOAEaWgoPRmxvYXRGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjEKBXZhbHVlGAIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZsb2F0VmFsdWVSBXZhbHVlOgI4ARpaCg9JbnQ2NEZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMQoFdmFsdWUYAiABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZVIFdmFsdWU6AjgBGlwKEFVpbnQ2NEZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMgoFdmFsdWUYAiABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWVSBXZhbHVlOgI4ARpaCg9JbnQzMkZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMQoFdmFsdWUYAiABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZVIFdmFsdWU6AjgBGlwKEFVpbnQzMkZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMgoFdmFsdWUYAiABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDMyVmFsdWVSBXZhbHVlOgI4ARpYCg5Cb29sRmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIwCgV2YWx1ZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWVSBXZhbHVlOgI4ARpcChBTdHJpbmdGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjIKBXZhbHVlGAIgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlUgV2YWx1ZToCOAEaWgoPQnl0ZXNGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjEKBXZhbHVlGAIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVSBXZhbHVlOgI4AUI5Chhjb20uZ29vZ2xlLnByb3RvYnVmLnRlc3RQAaoCGkdvb2dsZS5Qcm90b2J1Zi5UZXN0UHJvdG9zSuQ0CgcSBR4AjwEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF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NjQYBiABKBJSDm9wdGlvbmFsU2ludDY0EikKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAdSD29wdGlvbmFsRml4ZWQzMhIpChBvcHRpb25hbF9maXhlZDY0GAggASgGUg9vcHRpb25hbEZpeGVkNjQSKwoRb3B0aW9uYWxfc2ZpeGVkMzIYCSABKA9SEG9wdGlvbmFsU2ZpeGVkMzISKwoRb3B0aW9uYWxfc2ZpeGVkNjQYCiABKBBSEG9wdGlvbmFsU2ZpeGVkNjQSJQoOb3B0aW9uYWxfZmxvYXQYCyABKAJSDW9wdGlvbmFsRmxvYXQSJwoPb3B0aW9uYWxfZG91YmxlGAwgASgBUg5vcHRpb25hbERvdWJsZRIjCg1vcHRpb25hbF9ib29sGA0gASgIUgxvcHRpb25hbEJvb2wSJwoPb3B0aW9uYWxfc3RyaW5nGA4gASgJUg5vcHRpb25hbFN0cmluZxIlCg5vcHRpb25hbF9ieXRlcxgPIAEoDFINb3B0aW9uYWxCeXRlcxJ3ChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgSIAEoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRNZXNzYWdlUhVvcHRpb25hbE5lc3RlZE1lc3NhZ2USZwoYb3B0aW9uYWxfZm9yZWlnbl9tZXNzYWdlGBMgASgLMi0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuRm9yZWlnbk1lc3NhZ2VSFm9wdGlvbmFsRm9yZWlnbk1lc3NhZ2USbgoUb3B0aW9uYWxfbmVzdGVkX2VudW0YFSABKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkRW51bVISb3B0aW9uYWxOZXN0ZWRFbnVtEl4KFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIqLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLkZvcmVpZ25FbnVtUhNvcHRpb25hbEZvcmVpZ25FbnVtEnEKFW9wdGlvbmFsX2FsaWFzZWRfZW51bRgXIAEoDjI9LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5BbGlhc2VkRW51bVITb3B0aW9uYWxBbGlhc2VkRW51bRI2ChVvcHRpb25hbF9zdHJpbmdfcGllY2UYGCABKAlCAggCUhNvcHRpb25hbFN0cmluZ1BpZWNlEicKDW9wdGlvbmFsX2NvcmQYGSABKAlCAggBUgxvcHRpb25hbENvcmQSXgoRcmVjdXJzaXZlX21lc3NhZ2UYGyABKAsyMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzNSEHJlY3Vyc2l2ZU1lc3NhZ2USJQoOcmVwZWF0ZWRfaW50MzIYHyADKAVSDXJlcGVhdGVkSW50MzISJQoOcmVwZWF0ZWRfaW50NjQYICADKANSDXJlcGVhdGVkSW50NjQSJwoPcmVwZWF0ZWRfdWludDMyGCEgAygNUg5yZXBlYXRlZFVpbnQzMhInCg9yZXBlYXRlZF91aW50NjQYIiADKARSDnJlcGVhdGVkVWludDY0EicKD3JlcGVhdGVkX3NpbnQzMhgjIAMoEVIOcmVwZWF0ZWRTaW50MzISJwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSUg5yZXBlYXRlZFNpbnQ2NBIpChByZXBlYXRlZF9maXhlZDMyGCUgAygHUg9yZXBlYXRlZEZpeGVkMzISKQoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBlIPcmVwZWF0ZWRGaXhlZDY0EisKEXJlcGVhdGVkX3NmaXhlZDMyGCcgAygPUhByZXBlYXRlZFNmaXhlZDMyEisKEXJlcGVhdGVkX3NmaXhlZDY0GCggAygQUhByZXBlYXRlZFNmaXhlZDY0EiUKDnJlcGVhdGVkX2Zsb2F0GCkgAygCUg1yZXBlYXRlZEZsb2F0EicKD3JlcGVhdGVkX2RvdWJsZRgqIAMoAVIOcmVwZWF0ZWREb3VibGUSIwoNcmVwZWF0ZWRfYm9vbBgrIAMoCFIMcmVwZWF0ZWRCb29sEicKD3JlcGVhdGVkX3N0cmluZxgsIAMoCVIOcmVwZWF0ZWRTdHJpbmcSJQoOcmVwZWF0ZWRfYnl0ZXMYLSADKAxSDXJlcGVhdGVkQnl0ZXMSdwoXcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2UYMCADKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkTWVzc2FnZVIVcmVwZWF0ZWROZXN0ZWRNZXNzYWdlEmcKGHJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZRgxIAMoCzItLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLkZvcmVpZ25NZXNzYWdlUhZyZXBlYXRlZEZvcmVpZ25NZXNzYWdlEm4KFHJlcGVhdGVkX25lc3RlZF9lbnVtGDMgAygOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW1SEnJlcGVhdGVkTmVzdGVkRW51bRJeChVyZXBlYXRlZF9mb3JlaWduX2VudW0YNCADKA4yKi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5Gb3JlaWduRW51bVITcmVwZWF0ZWRGb3JlaWduRW51bRI2ChVyZXBlYXRlZF9zdHJpbmdfcGllY2UYNiADKAlCAggCUhNyZXBlYXRlZFN0cmluZ1BpZWNlEicKDXJlcGVhdGVkX2NvcmQYNyADKAlCAggBUgxyZXBlYXRlZENvcmQSJQoMcGFja2VkX2ludDMyGEsgAygFQgIQAVILcGFja2VkSW50MzISJQoMcGFja2VkX2ludDY0GEwgAygDQgIQAVILcGFja2VkSW50NjQSJwoNcGFja2VkX3VpbnQzMhhNIAMoDUICEAFSDHBhY2tlZFVpbnQzMhInCg1wYWNrZWRfdWludDY0GE4gAygEQgIQAVIMcGFja2VkVWludDY0EicKDXBhY2tlZF9zaW50MzIYTyADKBFCAhABUgxwYWNrZWRTaW50MzISJwoNcGFja2VkX3NpbnQ2NBhQIAMoEkICEAFSDHBhY2tlZFNpbnQ2NBIpCg5wYWNrZWRfZml4ZWQzMhhRIAMoB0ICEAFSDXBhY2tlZEZpeGVkMzISKQoOcGFja2VkX2ZpeGVkNjQYUiADKAZCAhABUg1wYWNrZWRGaXhlZDY0EisKD3BhY2tlZF9zZml4ZWQzMhhTIAMoD0ICEAFSDnBhY2tlZFNmaXhlZDMyEisKD3BhY2tlZF9zZml4ZWQ2NBhUIAMoEEICEAFSDnBhY2tlZFNmaXhlZDY0EiUKDHBhY2tlZF9mbG9hdBhVIAMoAkICEAFSC3BhY2tlZEZsb2F0EicKDXBhY2tlZF9kb3VibGUYViADKAFCAhABUgxwYWNrZWREb3VibGUSIwoLcGFja2VkX2Jvb2wYVyADKAhCAhABUgpwYWNrZWRCb29sEm4KEnBhY2tlZF9uZXN0ZWRfZW51bRhYIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRFbnVtQgIQAVIQcGFja2VkTmVzdGVkRW51bRIpCg51bnBhY2tlZF9pbnQzMhhZIAMoBUICEABSDXVucGFja2VkSW50MzISKQoOdW5wYWNrZWRfaW50NjQYWiADKANCAhAAUg11bnBhY2tlZEludDY0EisKD3VucGFja2VkX3VpbnQzMhhbIAMoDUICEABSDnVucGFja2VkVWludDMyEisKD3VucGFja2VkX3VpbnQ2NBhcIAMoBEICEABSDnVucGFja2VkVWludDY0EisKD3VucGFja2VkX3NpbnQzMhhdIAMoEUICEABSDnVucGFja2VkU2ludDMyEisKD3VucGFja2VkX3NpbnQ2NBheIAMoEkICEABSDnVucGFja2VkU2ludDY0Ei0KEHVucGFja2VkX2ZpeGVkMzIYXyADKAdCAhAAUg91bnBhY2tlZEZpeGVkMzISLQoQdW5wYWNrZWRfZml4ZWQ2NBhgIAMoBkICEABSD3VucGFja2VkRml4ZWQ2NBIvChF1bnBhY2tlZF9zZml4ZWQzMhhhIAMoD0ICEABSEHVucGFja2VkU2ZpeGVkMzISLwoRdW5wYWNrZWRfc2ZpeGVkNjQYYiADKBBCAhAAUhB1bnBhY2tlZFNmaXhlZDY0EikKDnVucGFja2VkX2Zsb2F0GGMgAygCQgIQAFINdW5wYWNrZWRGbG9hdBIrCg91bnBhY2tlZF9kb3VibGUYZCADKAFCAhAAUg51bnBhY2tlZERvdWJsZRInCg11bnBhY2tlZF9ib29sGGUgAygIQgIQAFIMdW5wYWNrZWRCb29sEnIKFHVucGFja2VkX25lc3RlZF9lbnVtGGYgAygOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW1CAhAAUhJ1bnBhY2tlZE5lc3RlZEVudW0SbAoPbWFwX2ludDMyX2ludDMyGDggAygLMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcEludDMySW50MzJFbnRyeVINbWFwSW50MzJJbnQzMhJsCg9tYXBfaW50NjRfaW50NjQYOSADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwSW50NjRJbnQ2NEVudHJ5Ug1tYXBJbnQ2NEludDY0EnIKEW1hcF91aW50MzJfdWludDMyGDogAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFVpbnQzMlVpbnQzMkVudHJ5Ug9tYXBVaW50MzJVaW50MzIScgoRbWFwX3VpbnQ2NF91aW50NjQYOyADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwVWludDY0VWludDY0RW50cnlSD21hcFVpbnQ2NFVpbnQ2NBJyChFtYXBfc2ludDMyX3NpbnQzMhg8IAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTaW50MzJTaW50MzJFbnRyeVIPbWFwU2ludDMyU2ludDMyEnIKEW1hcF9zaW50NjRfc2ludDY0GD0gAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFNpbnQ2NFNpbnQ2NEVudHJ5Ug9tYXBTaW50NjRTaW50NjQSeAoTbWFwX2ZpeGVkMzJfZml4ZWQzMhg+IAMoCzJILnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBGaXhlZDMyRml4ZWQzMkVudHJ5UhFtYXBGaXhlZDMyRml4ZWQzMhJ4ChNtYXBfZml4ZWQ2NF9maXhlZDY0GD8gAygLMkgucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcEZpeGVkNjRGaXhlZDY0RW50cnlSEW1hcEZpeGVkNjRGaXhlZDY0En4KFW1hcF9zZml4ZWQzMl9zZml4ZWQzMhhAIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTZml4ZWQzMlNmaXhlZDMyRW50cnlSE21hcFNmaXhlZDMyU2ZpeGVkMzISfgoVbWFwX3NmaXhlZDY0X3NmaXhlZDY0GEEgAygLMkoucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeVITbWFwU2ZpeGVkNjRTZml4ZWQ2NBJsCg9tYXBfaW50MzJfZmxvYXQYQiADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwSW50MzJGbG9hdEVudHJ5Ug1tYXBJbnQzMkZsb2F0Em8KEG1hcF9pbnQzMl9kb3VibGUYQyADKAsyRS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwSW50MzJEb3VibGVFbnRyeVIObWFwSW50MzJEb3VibGUSZgoNbWFwX2Jvb2xfYm9vbBhEIAMoCzJCLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBCb29sQm9vbEVudHJ5UgttYXBCb29sQm9vbBJyChFtYXBfc3RyaW5nX3N0cmluZxhFIAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTdHJpbmdTdHJpbmdFbnRyeVIPbWFwU3RyaW5nU3RyaW5nEm8KEG1hcF9zdHJpbmdfYnl0ZXMYRiADKAsyRS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3RyaW5nQnl0ZXNFbnRyeVIObWFwU3RyaW5nQnl0ZXMSiAEKGW1hcF9zdHJpbmdfbmVzdGVkX21lc3NhZ2UYRyADKAsyTS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3RyaW5nTmVzdGVkTWVzc2FnZUVudHJ5UhZtYXBTdHJpbmdOZXN0ZWRNZXNzYWdlEosBChptYXBfc3RyaW5nX2ZvcmVpZ25fbWVzc2FnZRhIIAMoCzJOLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTdHJpbmdGb3JlaWduTWVzc2FnZUVudHJ5UhdtYXBTdHJpbmdGb3JlaWduTWVzc2FnZRJ/ChZtYXBfc3RyaW5nX25lc3RlZF9lbnVtGEkgAygLMkoucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFN0cmluZ05lc3RlZEVudW1FbnRyeVITbWFwU3RyaW5nTmVzdGVkRW51bRKCAQoXbWFwX3N0cmluZ19mb3JlaWduX2VudW0YSiADKAsySy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3RyaW5nRm9yZWlnbkVudW1FbnRyeVIUbWFwU3RyaW5nRm9yZWlnbkVudW0SIwoMb25lb2ZfdWludDMyGG8gASgNSABSC29uZW9mVWludDMyEnMKFG9uZW9mX25lc3RlZF9tZXNzYWdlGHAgASgLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZE1lc3NhZ2VIAFISb25lb2ZOZXN0ZWRNZXNzYWdlEiMKDG9uZW9mX3N0cmluZxhxIAEoCUgAUgtvbmVvZlN0cmluZxIhCgtvbmVvZl9ieXRlcxhyIAEoDEgAUgpvbmVvZkJ5dGVzEh8KCm9uZW9mX2Jvb2wYcyABKAhIAFIJb25lb2ZCb29sEiMKDG9uZW9mX3VpbnQ2NBh0IAEoBEgAUgtvbmVvZlVpbnQ2NBIhCgtvbmVvZl9mbG9hdBh1IAEoAkgAUgpvbmVvZkZsb2F0EiMKDG9uZW9mX2RvdWJsZRh2IAEoAUgAUgtvbmVvZkRvdWJsZRJdCgpvbmVvZl9lbnVtGHcgASgOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW1IAFIJb25lb2ZFbnVtEkYKEG9uZW9mX251bGxfdmFsdWUYeCABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlSABSDm9uZW9mTnVsbFZhbHVlEk8KFW9wdGlvbmFsX2Jvb2xfd3JhcHBlchjJASABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlUhNvcHRpb25hbEJvb2xXcmFwcGVyElIKFm9wdGlvbmFsX2ludDMyX3dyYXBwZXIYygEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWVSFG9wdGlvbmFsSW50MzJXcmFwcGVyElIKFm9wdGlvbmFsX2ludDY0X3dyYXBwZXIYywEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVSFG9wdGlvbmFsSW50NjRXcmFwcGVyElUKF29wdGlvbmFsX3VpbnQzMl93cmFwcGVyGMwBIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZVIVb3B0aW9uYWxVaW50MzJXcmFwcGVyElUKF29wdGlvbmFsX3VpbnQ2NF93cmFwcGVyGM0BIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRWYWx1ZVIVb3B0aW9uYWxVaW50NjRXcmFwcGVyElIKFm9wdGlvbmFsX2Zsb2F0X3dyYXBwZXIYzgEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZsb2F0VmFsdWVSFG9wdGlvbmFsRmxvYXRXcmFwcGVyElUKF29wdGlvbmFsX2RvdWJsZV93cmFwcGVyGM8BIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZVIVb3B0aW9uYWxEb3VibGVXcmFwcGVyElUKF29wdGlvbmFsX3N0cmluZ193cmFwcGVyGNABIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZVIVb3B0aW9uYWxTdHJpbmdXcmFwcGVyElIKFm9wdGlvbmFsX2J5dGVzX3dyYXBwZXIY0QEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVSFG9wdGlvbmFsQnl0ZXNXcmFwcGVyEk8KFXJlcGVhdGVkX2Jvb2xfd3JhcHBlchjTASADKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlUhNyZXBlYXRlZEJvb2xXcmFwcGVyElIKFnJlcGVhdGVkX2ludDMyX3dyYXBwZXIY1AEgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWVSFHJlcGVhdGVkSW50MzJXcmFwcGVyElIKFnJlcGVhdGVkX2ludDY0X3dyYXBwZXIY1QEgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVSFHJlcGVhdGVkSW50NjRXcmFwcGVyElUKF3JlcGVhdGVkX3VpbnQzMl93cmFwcGVyGNYBIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZVIVcmVwZWF0ZWRVaW50MzJXcmFwcGVyElUKF3JlcGVhdGVkX3VpbnQ2NF93cmFwcGVyGNcBIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRWYWx1ZVIVcmVwZWF0ZWRVaW50NjRXcmFwcGVyElIKFnJlcGVhdGVkX2Zsb2F0X3dyYXBwZXIY2AEgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkZsb2F0VmFsdWVSFHJlcGVhdGVkRmxvYXRXcmFwcGVyElUKF3JlcGVhdGVkX2RvdWJsZV93cmFwcGVyGNkBIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZVIVcmVwZWF0ZWREb3VibGVXcmFwcGVyElUKF3JlcGVhdGVkX3N0cmluZ193cmFwcGVyGNoBIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZVIVcmVwZWF0ZWRTdHJpbmdXcmFwcGVyElIKFnJlcGVhdGVkX2J5dGVzX3dyYXBwZXIY2wEgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVSFHJlcGVhdGVkQnl0ZXNXcmFwcGVyEkcKEW9wdGlvbmFsX2R1cmF0aW9uGK0CIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvblIQb3B0aW9uYWxEdXJhdGlvbhJKChJvcHRpb25hbF90aW1lc3RhbXAYrgIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIRb3B0aW9uYWxUaW1lc3RhbXASSwoTb3B0aW9uYWxfZmllbGRfbWFzaxivAiABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrUhFvcHRpb25hbEZpZWxkTWFzaxJBCg9vcHRpb25hbF9zdHJ1Y3QYsAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdFIOb3B0aW9uYWxTdHJ1Y3QSOAoMb3B0aW9uYWxfYW55GLECIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSC29wdGlvbmFsQW55Ej4KDm9wdGlvbmFsX3ZhbHVlGLICIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZVINb3B0aW9uYWxWYWx1ZRJLChNvcHRpb25hbF9udWxsX3ZhbHVlGLMCIAEoDjIaLmdvb2dsZS5wcm90b2J1Zi5OdWxsVmFsdWVSEW9wdGlvbmFsTnVsbFZhbHVlEkcKEXJlcGVhdGVkX2R1cmF0aW9uGLcCIAMoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvblIQcmVwZWF0ZWREdXJhdGlvbhJKChJyZXBlYXRlZF90aW1lc3RhbXAYuAIgAygLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIRcmVwZWF0ZWRUaW1lc3RhbXASSgoScmVwZWF0ZWRfZmllbGRtYXNrGLkCIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tSEXJlcGVhdGVkRmllbGRtYXNrEkEKD3JlcGVhdGVkX3N0cnVjdBjEAiADKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ug5yZXBlYXRlZFN0cnVjdBI4CgxyZXBlYXRlZF9hbnkYuwIgAygLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVILcmVwZWF0ZWRBbnkSPgoOcmVwZWF0ZWRfdmFsdWUYvAIgAygLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlUg1yZXBlYXRlZFZhbHVlEksKE3JlcGVhdGVkX2xpc3RfdmFsdWUYvQIgAygLMhouZ29vZ2xlLnByb3RvYnVmLkxpc3RWYWx1ZVIRcmVwZWF0ZWRMaXN0VmFsdWUSHwoKZmllbGRuYW1lMRiRAyABKAVSCmZpZWxkbmFtZTESIAoLZmllbGRfbmFtZTIYkgMgASgFUgpmaWVsZE5hbWUyEiEKDF9maWVsZF9uYW1lMxiTAyABKAVSCkZpZWxkTmFtZTMSIgoNZmllbGRfX25hbWU0XxiUAyABKAVSCmZpZWxkTmFtZTQSIQoLZmllbGQwbmFtZTUYlQMgASgFUgtmaWVsZDBuYW1lNRIjCg1maWVsZF8wX25hbWU2GJYDIAEoBVILZmllbGQwTmFtZTYSHwoKZmllbGROYW1lNxiXAyABKAVSCmZpZWxkTmFtZTcSHwoKRmllbGROYW1lOBiYAyABKAVSCkZpZWxkTmFtZTgSIAoLZmllbGRfTmFtZTkYmQMgASgFUgpmaWVsZE5hbWU5EiIKDEZpZWxkX05hbWUxMBiaAyABKAVSC0ZpZWxkTmFtZTEwEiIKDEZJRUxEX05BTUUxMRibAyABKAVSC0ZJRUxETkFNRTExEiIKDEZJRUxEX25hbWUxMhicAyABKAVSC0ZJRUxETmFtZTEyEiQKDl9fZmllbGRfbmFtZTEzGJ0DIAEoBVILRmllbGROYW1lMTMSJAoOX19GaWVsZF9uYW1lMTQYngMgASgFUgtGaWVsZE5hbWUxNBIjCg1maWVsZF9fbmFtZTE1GJ8DIAEoBVILZmllbGROYW1lMTUSIwoNZmllbGRfX05hbWUxNhigAyABKAVSC2ZpZWxkTmFtZTE2EiQKDmZpZWxkX25hbWUxN19fGKEDIAEoBVILZmllbGROYW1lMTcSJAoORmllbGRfbmFtZTE4X18YogMgASgFUgtGaWVsZE5hbWUxOBpyCg1OZXN0ZWRNZXNzYWdlEgwKAWEYASABKAVSAWESUwoLY29yZWN1cnNpdmUYAiABKAsyMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzNSC2NvcmVjdXJzaXZlGkAKEk1hcEludDMySW50MzJFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoBVIFdmFsdWU6AjgBGkAKEk1hcEludDY0SW50NjRFbnRyeRIQCgNrZXkYASABKANSA2tleRIUCgV2YWx1ZRgCIAEoA1IFdmFsdWU6AjgBGkIKFE1hcFVpbnQzMlVpbnQzMkVudHJ5EhAKA2tleRgBIAEoDVIDa2V5EhQKBXZhbHVlGAIgASgNUgV2YWx1ZToCOAEaQgoUTWFwVWludDY0VWludDY0RW50cnkSEAoDa2V5GAEgASgEUgNrZXkSFAoFdmFsdWUYAiABKARSBXZhbHVlOgI4ARpCChRNYXBTaW50MzJTaW50MzJFbnRyeRIQCgNrZXkYASABKBFSA2tleRIUCgV2YWx1ZRgCIAEoEVIFdmFsdWU6AjgBGkIKFE1hcFNpbnQ2NFNpbnQ2NEVudHJ5EhAKA2tleRgBIAEoElIDa2V5EhQKBXZhbHVlGAIgASgSUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQzMkZpeGVkMzJFbnRyeRIQCgNrZXkYASABKAdSA2tleRIUCgV2YWx1ZRgCIAEoB1IFdmFsdWU6AjgBGkQKFk1hcEZpeGVkNjRGaXhlZDY0RW50cnkSEAoDa2V5GAEgASgGUgNrZXkSFAoFdmFsdWUYAiABKAZSBXZhbHVlOgI4ARpGChhNYXBTZml4ZWQzMlNmaXhlZDMyRW50cnkSEAoDa2V5GAEgASgPUgNrZXkSFAoFdmFsdWUYAiABKA9SBXZhbHVlOgI4ARpGChhNYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnkSEAoDa2V5GAEgASgQUgNrZXkSFAoFdmFsdWUYAiABKBBSBXZhbHVlOgI4ARpAChJNYXBJbnQzMkZsb2F0RW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAJSBXZhbHVlOgI4ARpBChNNYXBJbnQzMkRvdWJsZUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgBUgV2YWx1ZToCOAEaPgoQTWFwQm9vbEJvb2xFbnRyeRIQCgNrZXkYASABKAhSA2tleRIUCgV2YWx1ZRgCIAEoCFIFdmFsdWU6AjgBGkIKFE1hcFN0cmluZ1N0cmluZ0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAEaQQoTTWFwU3RyaW5nQnl0ZXNFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoDFIFdmFsdWU6AjgBGooBChtNYXBTdHJpbmdOZXN0ZWRNZXNzYWdlRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSVQoFdmFsdWUYAiABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkTWVzc2FnZVIFdmFsdWU6AjgBGnkKHE1hcFN0cmluZ0ZvcmVpZ25NZXNzYWdlRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSQwoFdmFsdWUYAiABKAsyLS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5Gb3JlaWduTWVzc2FnZVIFdmFsdWU6AjgBGoQBChhNYXBTdHJpbmdOZXN0ZWRFbnVtRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSUgoFdmFsdWUYAiABKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkRW51bVIFdmFsdWU6AjgBGnMKGU1hcFN0cmluZ0ZvcmVpZ25FbnVtRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSQAoFdmFsdWUYAiABKA4yKi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5Gb3JlaWduRW51bVIFdmFsdWU6AjgBIjkKCk5lc3RlZEVudW0SBwoDRk9PEAASBwoDQkFSEAESBwoDQkFaEAISEAoDTkVHEP///////////wEiWQoLQWxpYXNlZEVudW0SDQoJQUxJQVNfRk9PEAASDQoJQUxJQVNfQkFSEAESDQoJQUxJQVNfQkFaEAISBwoDTU9PEAISBwoDbW9vEAISBwoDYkF6EAIaAhABQg0KC29uZW9mX2ZpZWxkSgYI9QMQ/wMiHgoORm9yZWlnbk1lc3NhZ2USDAoBYxgBIAEoBVIBYyIWChROdWxsSHlwb3RoZXNpc1Byb3RvMyIvCg5FbnVtT25seVByb3RvMyIdCgRCb29sEgoKBmtGYWxzZRAAEgkKBWtUcnVlEAEqQAoLRm9yZWlnbkVudW0SDwoLRk9SRUlHTl9GT08QABIPCgtGT1JFSUdOX0JBUhABEg8KC0ZPUkVJR05fQkFaEAJCOAooY29tLmdvb2dsZS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvM0gB+AEBogIGUHJvdG8zSpFyCgcSBSUAnwIBCsANCgEMEgMlABIytQ0gUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgogVGVzdCBzY2hlbWEgZm9yIHByb3RvMyBtZXNzYWdlcy4gIFRoaXMgdGVzdCBzY2hlbWEgaXMgdXNlZCBieToKCiAtIGJlbmNobWFya3MKIC0gZnV6eiB0ZXN0cwogLSBjb25mb3JtYW5jZSB0ZXN0cwoKCggKAQISAycAJgoICgEIEgMpAEEKCQoCCAESAykAQQoICgEIEgMqACQKCQoCCCQSAyoAJAoICgEIEgMtABwKRAoCCAkSAy0AHBo5IFRoaXMgaXMgdGhlIGRlZmF1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EQoNCgUEAAIvARIEkgESHwoNCgUEAAIvAxIEkgEiJAoNCgUEAAIvCBIEkgElNAoOCgYEAAIvCAISBJIBJjMKDAoEBAACMBIEkwECNQoNCgUEAAIwBBIEkwECCgoNCgUEAAIwBRIEkwELEQoNCgUEAAIwARIEkwESHwoNCgUEAAIwAxIEkwEiJAoNCgUEAAIwCBIEkwElNAoOCgYEAAIwCAISBJMBJjMKDAoEBAACMRIElAECNQoNCgUEAAIxBBIElAECCgoNCgUEAAIxBRIElAELEQoNCgUEAAIxARIElAESHwoNCgUEAAIxAxIElAEiJAoNCgUEAAIxCBIElAElNAoOCgYEAAIxCAISBJQBJjMKDAoEBAACMhIElQECNwoNCgUEAAIyBBIElQECCgoNCgUEAAIyBRIElQELEgoNCgUEAAIyARIElQETIQoNCgUEAAIyAxIElQEkJgoNCgUEAAIyCBIElQEnNgoOCgYEAAIyCAISBJUBKDUKDAoEBAACMxIElgECNwoNCgUEAAIzBBIElgECCgoNCgUEAAIzBRIElgELEgoNCgUEAAIzARIElgETIQoNCgUEAAIzAxIElgEkJgoNCgUEAAIzCBIElgEnNgoOCgYEAAIzCAISBJYBKDUKDAoEBAACNBIElwECOQoNCgUEAAI0BBIElwECCgoNCgUEAAI0BRIElwELEwoNCgUEAAI0ARIElwEUIwoNCgUEAAI0AxIElwEmKAoNCgUEAAI0CBIElwEpOAoOCgYEAAI0CAISBJcBKjcKDAoEBAACNRIEmAECOQoNCgUEAAI1BBIEmAECCgoNCgUEAAI1BRIEmAELEwoNCgUEAAI1ARIEmAEUIwoNCgUEAAI1AxIEmAEmKAoNCgUEAAI1CBIEmAEpOAoOCgYEAAI1CAISBJgBKjcKDAoEBAACNhIEmQECMwoNCgUEAAI2BBIEmQECCgoNCgUEAAI2BRIEmQELEAoNCgUEAAI2ARIEmQERHQoNCgUEAAI2AxIEmQEgIgoNCgUEAAI2CBIEmQEjMgoOCgYEAAI2CAISBJkBJDEKDAoEBAACNxIEmgECNQoNCgUEAAI3BBIEmgECCgoNCgUEAAI3BRIEmgELEQoNCgUEAAI3ARIEmgESHwoNCgUEAAI3AxIEmgEiJAoNCgUEAAI3CBIEmgElNAoOCgYEAAI3CAISBJoB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BJgCAB8KCwoDBAIBEgSYAggcCgwKAgQDEgaaAgCfAgEKCwoDBAMBEgSaAggWCg4KBAQDBAASBpsCAp4CAwoNCgUEAwQAARIEmwIHCwoOCgYEAwQAAgASBJwCBA8KDwoHBAMEAAIAARIEnAIECgoPCgcEAwQAAgACEgScAg0OCg4KBgQDBAACARIEnQIEDgoPCgcEAwQAAgEBEgSdAgQJCg8KBwQDBAACAQISBJ0CDA1iBnByb3RvMwrwlgIKKmdvb2dsZS9wcm90b2J1Zi90ZXN0X21lc3NhZ2VzX3Byb3RvMi5wcm90bxIdcHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIiuVEKElRlc3RBbGxUeXBlc1Byb3RvMhIlCg5vcHRpb25hbF9pbnQzMhgBIAEoBVINb3B0aW9uYWxJbnQzMhIlCg5vcHRpb25hbF9pbnQ2NBgCIAEoA1INb3B0aW9uYWxJbnQ2NBInCg9vcHRpb25hbF91aW50MzIYAyABKA1SDm9wdGlvbmFsVWludDMyEicKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBFIOb3B0aW9uYWxVaW50NjQSJwoPb3B0aW9uYWxfc2ludDMyGAUgASgRUg5vcHRpb25hbFNpbnQzMhInCg9vcHRpb25hbF9zaW50NjQYBiABKBJSDm9wdGlvbmFsU2ludDY0EikKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAdSD29wdGlvbmFsRml4ZWQzMhIpChBvcHRpb25hbF9maXhlZDY0GAggASgGUg9vcHRpb25hbEZpeGVkNjQSKwoRb3B0aW9uYWxfc2ZpeGVkMzIYCSABKA9SEG9wdGlvbmFsU2ZpeGVkMzISKwoRb3B0aW9uYWxfc2ZpeGVkNjQYCiABKBBSEG9wdGlvbmFsU2ZpeGVkNjQSJQoOb3B0aW9uYWxfZmxvYXQYCyABKAJSDW9wdGlvbmFsRmxvYXQSJwoPb3B0aW9uYWxfZG91YmxlGAwgASgBUg5vcHRpb25hbERvdWJsZRIjCg1vcHRpb25hbF9ib29sGA0gASgIUgxvcHRpb25hbEJvb2wSJwoPb3B0aW9uYWxfc3RyaW5nGA4gASgJUg5vcHRpb25hbFN0cmluZxIlCg5vcHRpb25hbF9ieXRlcxgPIAEoDFINb3B0aW9uYWxCeXRlcxJ3ChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgSIAEoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRNZXNzYWdlUhVvcHRpb25hbE5lc3RlZE1lc3NhZ2USbQoYb3B0aW9uYWxfZm9yZWlnbl9tZXNzYWdlGBMgASgLMjMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbk1lc3NhZ2VQcm90bzJSFm9wdGlvbmFsRm9yZWlnbk1lc3NhZ2USbgoUb3B0aW9uYWxfbmVzdGVkX2VudW0YFSABKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkRW51bVISb3B0aW9uYWxOZXN0ZWRFbnVtEmQKFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIwLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yUhNvcHRpb25hbEZvcmVpZ25FbnVtEjYKFW9wdGlvbmFsX3N0cmluZ19waWVjZRgYIAEoCUICCAJSE29wdGlvbmFsU3RyaW5nUGllY2USJwoNb3B0aW9uYWxfY29yZBgZIAEoCUICCAFSDG9wdGlvbmFsQ29yZBJeChFyZWN1cnNpdmVfbWVzc2FnZRgbIAEoCzIxLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMlIQcmVjdXJzaXZlTWVzc2FnZRIlCg5yZXBlYXRlZF9pbnQzMhgfIAMoBVINcmVwZWF0ZWRJbnQzMhIlCg5yZXBlYXRlZF9pbnQ2NBggIAMoA1INcmVwZWF0ZWRJbnQ2NBInCg9yZXBlYXRlZF91aW50MzIYISADKA1SDnJlcGVhdGVkVWludDMyEicKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBFIOcmVwZWF0ZWRVaW50NjQSJwoPcmVwZWF0ZWRfc2ludDMyGCMgAygRUg5yZXBlYXRlZFNpbnQzMhInCg9yZXBlYXRlZF9zaW50NjQYJCADKBJSDnJlcGVhdGVkU2ludDY0EikKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAdSD3JlcGVhdGVkRml4ZWQzMhIpChByZXBlYXRlZF9maXhlZDY0GCYgAygGUg9yZXBlYXRlZEZpeGVkNjQSKwoRcmVwZWF0ZWRfc2ZpeGVkMzIYJyADKA9SEHJlcGVhdGVkU2ZpeGVkMzISKwoRcmVwZWF0ZWRfc2ZpeGVkNjQYKCADKBBSEHJlcGVhdGVkU2ZpeGVkNjQSJQoOcmVwZWF0ZWRfZmxvYXQYKSADKAJSDXJlcGVhdGVkRmxvYXQSJwoPcmVwZWF0ZWRfZG91YmxlGCogAygBUg5yZXBlYXRlZERvdWJsZRIjCg1yZXBlYXRlZF9ib29sGCsgAygIUgxyZXBlYXRlZEJvb2wSJwoPcmVwZWF0ZWRfc3RyaW5nGCwgAygJUg5yZXBlYXRlZFN0cmluZxIlCg5yZXBlYXRlZF9ieXRlcxgtIAMoDFINcmVwZWF0ZWRCeXRlcxJ3ChdyZXBlYXRlZF9uZXN0ZWRfbWVzc2FnZRgwIAMoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRNZXNzYWdlUhVyZXBlYXRlZE5lc3RlZE1lc3NhZ2USbQoYcmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlGDEgAygLMjMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbk1lc3NhZ2VQcm90bzJSFnJlcGVhdGVkRm9yZWlnbk1lc3NhZ2USbgoUcmVwZWF0ZWRfbmVzdGVkX2VudW0YMyADKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkRW51bVIScmVwZWF0ZWROZXN0ZWRFbnVtEmQKFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0IAMoDjIwLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yUhNyZXBlYXRlZEZvcmVpZ25FbnVtEjYKFXJlcGVhdGVkX3N0cmluZ19waWVjZRg2IAMoCUICCAJSE3JlcGVhdGVkU3RyaW5nUGllY2USJwoNcmVwZWF0ZWRfY29yZBg3IAMoCUICCAFSDHJlcGVhdGVkQ29yZBIlCgxwYWNrZWRfaW50MzIYSyADKAVCAhABUgtwYWNrZWRJbnQzMhIlCgxwYWNrZWRfaW50NjQYTCADKANCAhABUgtwYWNrZWRJbnQ2NBInCg1wYWNrZWRfdWludDMyGE0gAygNQgIQAVIMcGFja2VkVWludDMyEicKDXBhY2tlZF91aW50NjQYTiADKARCAhABUgxwYWNrZWRVaW50NjQSJwoNcGFja2VkX3NpbnQzMhhPIAMoEUICEAFSDHBhY2tlZFNpbnQzMhInCg1wYWNrZWRfc2ludDY0GFAgAygSQgIQAVIMcGFja2VkU2ludDY0EikKDnBhY2tlZF9maXhlZDMyGFEgAygHQgIQAVINcGFja2VkRml4ZWQzMhIpCg5wYWNrZWRfZml4ZWQ2NBhSIAMoBkICEAFSDXBhY2tlZEZpeGVkNjQSKwoPcGFja2VkX3NmaXhlZDMyGFMgAygPQgIQAVIOcGFja2VkU2ZpeGVkMzISKwoPcGFja2VkX3NmaXhlZDY0GFQgAygQQgIQAVIOcGFja2VkU2ZpeGVkNjQSJQoMcGFja2VkX2Zsb2F0GFUgAygCQgIQAVILcGFja2VkRmxvYXQSJwoNcGFja2VkX2RvdWJsZRhWIAMoAUICEAFSDHBhY2tlZERvdWJsZRIjCgtwYWNrZWRfYm9vbBhXIAMoCEICEAFSCnBhY2tlZEJvb2wSbgoScGFja2VkX25lc3RlZF9lbnVtGFggAygOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZEVudW1CAhABUhBwYWNrZWROZXN0ZWRFbnVtEikKDnVucGFja2VkX2ludDMyGFkgAygFQgIQAFINdW5wYWNrZWRJbnQzMhIpCg51bnBhY2tlZF9pbnQ2NBhaIAMoA0ICEABSDXVucGFja2VkSW50NjQSKwoPdW5wYWNrZWRfdWludDMyGFsgAygNQgIQAFIOdW5wYWNrZWRVaW50MzISKwoPdW5wYWNrZWRfdWludDY0GFwgAygEQgIQAFIOdW5wYWNrZWRVaW50NjQSKwoPdW5wYWNrZWRfc2ludDMyGF0gAygRQgIQAFIOdW5wYWNrZWRTaW50MzISKwoPdW5wYWNrZWRfc2ludDY0GF4gAygSQgIQAFIOdW5wYWNrZWRTaW50NjQSLQoQdW5wYWNrZWRfZml4ZWQzMhhfIAMoB0ICEABSD3VucGFja2VkRml4ZWQzMhItChB1bnBhY2tlZF9maXhlZDY0GGAgAygGQgIQAFIPdW5wYWNrZWRGaXhlZDY0Ei8KEXVucGFja2VkX3NmaXhlZDMyGGEgAygPQgIQAFIQdW5wYWNrZWRTZml4ZWQzMhIvChF1bnBhY2tlZF9zZml4ZWQ2NBhiIAMoEEICEABSEHVucGFja2VkU2ZpeGVkNjQSKQoOdW5wYWNrZWRfZmxvYXQYYyADKAJCAhAAUg11bnBhY2tlZEZsb2F0EisKD3VucGFja2VkX2RvdWJsZRhkIAMoAUICEABSDnVucGFja2VkRG91YmxlEicKDXVucGFja2VkX2Jvb2wYZSADKAhCAhAAUgx1bnBhY2tlZEJvb2wScgoUdW5wYWNrZWRfbmVzdGVkX2VudW0YZiADKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkRW51bUICEABSEnVucGFja2VkTmVzdGVkRW51bRJsCg9tYXBfaW50MzJfaW50MzIYOCADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwSW50MzJJbnQzMkVudHJ5Ug1tYXBJbnQzMkludDMyEmwKD21hcF9pbnQ2NF9pbnQ2NBg5IAMoCzJELnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBJbnQ2NEludDY0RW50cnlSDW1hcEludDY0SW50NjQScgoRbWFwX3VpbnQzMl91aW50MzIYOiADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwVWludDMyVWludDMyRW50cnlSD21hcFVpbnQzMlVpbnQzMhJyChFtYXBfdWludDY0X3VpbnQ2NBg7IAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBVaW50NjRVaW50NjRFbnRyeVIPbWFwVWludDY0VWludDY0EnIKEW1hcF9zaW50MzJfc2ludDMyGDwgAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFNpbnQzMlNpbnQzMkVudHJ5Ug9tYXBTaW50MzJTaW50MzIScgoRbWFwX3NpbnQ2NF9zaW50NjQYPSADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ludDY0U2ludDY0RW50cnlSD21hcFNpbnQ2NFNpbnQ2NBJ4ChNtYXBfZml4ZWQzMl9maXhlZDMyGD4gAygLMkgucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEZpeGVkMzJGaXhlZDMyRW50cnlSEW1hcEZpeGVkMzJGaXhlZDMyEngKE21hcF9maXhlZDY0X2ZpeGVkNjQYPyADKAsySC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeVIRbWFwRml4ZWQ2NEZpeGVkNjQSfgoVbWFwX3NmaXhlZDMyX3NmaXhlZDMyGEAgAygLMkoucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeVITbWFwU2ZpeGVkMzJTZml4ZWQzMhJ+ChVtYXBfc2ZpeGVkNjRfc2ZpeGVkNjQYQSADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5UhNtYXBTZml4ZWQ2NFNmaXhlZDY0EmwKD21hcF9pbnQzMl9mbG9hdBhCIAMoCzJELnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBJbnQzMkZsb2F0RW50cnlSDW1hcEludDMyRmxvYXQSbwoQbWFwX2ludDMyX2RvdWJsZRhDIAMoCzJFLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBJbnQzMkRvdWJsZUVudHJ5Ug5tYXBJbnQzMkRvdWJsZRJmCg1tYXBfYm9vbF9ib29sGEQgAygLMkIucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEJvb2xCb29sRW50cnlSC21hcEJvb2xCb29sEnIKEW1hcF9zdHJpbmdfc3RyaW5nGEUgAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ1N0cmluZ0VudHJ5Ug9tYXBTdHJpbmdTdHJpbmcSbwoQbWFwX3N0cmluZ19ieXRlcxhGIAMoCzJFLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTdHJpbmdCeXRlc0VudHJ5Ug5tYXBTdHJpbmdCeXRlcxKIAQoZbWFwX3N0cmluZ19uZXN0ZWRfbWVzc2FnZRhHIAMoCzJNLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTdHJpbmdOZXN0ZWRNZXNzYWdlRW50cnlSFm1hcFN0cmluZ05lc3RlZE1lc3NhZ2USiwEKGm1hcF9zdHJpbmdfZm9yZWlnbl9tZXNzYWdlGEggAygLMk4ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ0ZvcmVpZ25NZXNzYWdlRW50cnlSF21hcFN0cmluZ0ZvcmVpZ25NZXNzYWdlEn8KFm1hcF9zdHJpbmdfbmVzdGVkX2VudW0YSSADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nTmVzdGVkRW51bUVudHJ5UhNtYXBTdHJpbmdOZXN0ZWRFbnVtEoIBChdtYXBfc3RyaW5nX2ZvcmVpZ25fZW51bRhKIAMoCzJLLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTdHJpbmdGb3JlaWduRW51bUVudHJ5UhRtYXBTdHJpbmdGb3JlaWduRW51bRIjCgxvbmVvZl91aW50MzIYbyABKA1IAFILb25lb2ZVaW50MzIScwoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZUgAUhJvbmVvZk5lc3RlZE1lc3NhZ2USIwoMb25lb2Zfc3RyaW5nGHEgASgJSABSC29uZW9mU3RyaW5nEiEKC29uZW9mX2J5dGVzGHIgASgMSABSCm9uZW9mQnl0ZXMSHwoKb25lb2ZfYm9vbBhzIAEoCEgAUglvbmVvZkJvb2wSIwoMb25lb2ZfdWludDY0GHQgASgESABSC29uZW9mVWludDY0EiEKC29uZW9mX2Zsb2F0GHUgASgCSABSCm9uZW9mRmxvYXQSIwoMb25lb2ZfZG91YmxlGHYgASgBSABSC29uZW9mRG91YmxlEl0KCm9uZW9mX2VudW0YdyABKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkRW51bUgAUglvbmVvZkVudW0SSwoEZGF0YRjJASABKAoyNi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuRGF0YVIEZGF0YRIwCg1kZWZhdWx0X2ludDMyGPEBIAEoBToKLTEyMzQ1Njc4OVIMZGVmYXVsdEludDMyEjoKDWRlZmF1bHRfaW50NjQY8gEgASgDOhQtOTEyMzQ1Njc4OTEyMzQ1Njc4OVIMZGVmYXVsdEludDY0EjIKDmRlZmF1bHRfdWludDMyGPMBIAEoDToKMjEyMzQ1Njc4OVINZGVmYXVsdFVpbnQzMhI8Cg5kZWZhdWx0X3VpbnQ2NBj0ASABKAQ6FDEwMTIzNDU2Nzg5MTIzNDU2Nzg5Ug1kZWZhdWx0VWludDY0EjIKDmRlZmF1bHRfc2ludDMyGPUBIAEoEToKLTEyMzQ1Njc4OVINZGVmYXVsdFNpbnQzMhI8Cg5kZWZhdWx0X3NpbnQ2NBj2ASABKBI6FC05MTIzNDU2Nzg5MTIzNDU2Nzg5Ug1kZWZhdWx0U2ludDY0EjQKD2RlZmF1bHRfZml4ZWQzMhj3ASABKAc6CjIxMjM0NTY3ODlSDmRlZmF1bHRGaXhlZDMyEj4KD2RlZmF1bHRfZml4ZWQ2NBj4ASABKAY6FDEwMTIzNDU2Nzg5MTIzNDU2Nzg5Ug5kZWZhdWx0Rml4ZWQ2NBI2ChBkZWZhdWx0X3NmaXhlZDMyGPkBIAEoDzoKLTEyMzQ1Njc4OVIPZGVmYXVsdFNmaXhlZDMyEkAKEGRlZmF1bHRfc2ZpeGVkNjQY+gEgASgQOhQtOTEyMzQ1Njc4OTEyMzQ1Njc4OVIPZGVmYXVsdFNmaXhlZDY0EisKDWRlZmF1bHRfZmxvYXQY+wEgASgCOgU5ZSswOVIMZGVmYXVsdEZsb2F0Ei0KDmRlZmF1bHRfZG91YmxlGPwBIAEoAToFN2UrMjJSDWRlZmF1bHREb3VibGUSKAoMZGVmYXVsdF9ib29sGP0BIAEoCDoEdHJ1ZVILZGVmYXVsdEJvb2wSLwoOZGVmYXVsdF9zdHJpbmcY/gEgASgJOgdSb3NlYnVkUg1kZWZhdWx0U3RyaW5nEiwKDWRlZmF1bHRfYnl0ZXMY/wEgASgMOgZqb3NodWFSDGRlZmF1bHRCeXRlcxIfCgpmaWVsZG5hbWUxGJEDIAEoBVIKZmllbGRuYW1lMRIgCgtmaWVsZF9uYW1lMhiSAyABKAVSCmZpZWxkTmFtZTISIQoMX2ZpZWxkX25hbWUzGJMDIAEoBVIKRmllbGROYW1lMxIiCg1maWVsZF9fbmFtZTRfGJQDIAEoBVIKZmllbGROYW1lNBIhCgtmaWVsZDBuYW1lNRiVAyABKAVSC2ZpZWxkMG5hbWU1EiMKDWZpZWxkXzBfbmFtZTYYlgMgASgFUgtmaWVsZDBOYW1lNhIfCgpmaWVsZE5hbWU3GJcDIAEoBVIKZmllbGROYW1lNxIfCgpGaWVsZE5hbWU4GJgDIAEoBVIKRmllbGROYW1lOBIgCgtmaWVsZF9OYW1lORiZAyABKAVSCmZpZWxkTmFtZTkSIgoMRmllbGRfTmFtZTEwGJoDIAEoBVILRmllbGROYW1lMTASIgoMRklFTERfTkFNRTExGJsDIAEoBVILRklFTEROQU1FMTESIgoMRklFTERfbmFtZTEyGJwDIAEoBVILRklFTEROYW1lMTISJAoOX19maWVsZF9uYW1lMTMYnQMgASgFUgtGaWVsZE5hbWUxMxIkCg5fX0ZpZWxkX25hbWUxNBieAyABKAVSC0ZpZWxkTmFtZTE0EiMKDWZpZWxkX19uYW1lMTUYnwMgASgFUgtmaWVsZE5hbWUxNRIjCg1maWVsZF9fTmFtZTE2GKADIAEoBVILZmllbGROYW1lMTYSJAoOZmllbGRfbmFtZTE3X18YoQMgASgFUgtmaWVsZE5hbWUxNxIkCg5GaWVsZF9uYW1lMThfXxiiAyABKAVSC0ZpZWxkTmFtZTE4GnIKDU5lc3RlZE1lc3NhZ2USDAoBYRgBIAEoBVIBYRJTCgtjb3JlY3Vyc2l2ZRgCIAEoCzIxLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMlILY29yZWN1cnNpdmUaQAoSTWFwSW50MzJJbnQzMkVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEaQAoSTWFwSW50NjRJbnQ2NEVudHJ5EhAKA2tleRgBIAEoA1IDa2V5EhQKBXZhbHVlGAIgASgDUgV2YWx1ZToCOAEaQgoUTWFwVWludDMyVWludDMyRW50cnkSEAoDa2V5GAEgASgNUgNrZXkSFAoFdmFsdWUYAiABKA1SBXZhbHVlOgI4ARpCChRNYXBVaW50NjRVaW50NjRFbnRyeRIQCgNrZXkYASABKARSA2tleRIUCgV2YWx1ZRgCIAEoBFIFdmFsdWU6AjgBGkIKFE1hcFNpbnQzMlNpbnQzMkVudHJ5EhAKA2tleRgBIAEoEVIDa2V5EhQKBXZhbHVlGAIgASgRUgV2YWx1ZToCOAEaQgoUTWFwU2ludDY0U2ludDY0RW50cnkSEAoDa2V5GAEgASgSUgNrZXkSFAoFdmFsdWUYAiABKBJSBXZhbHVlOgI4ARpEChZNYXBGaXhlZDMyRml4ZWQzMkVudHJ5EhAKA2tleRgBIAEoB1IDa2V5EhQKBXZhbHVlGAIgASgHUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRIQCgNrZXkYASABKAZSA2tleRIUCgV2YWx1ZRgCIAEoBlIFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRIQCgNrZXkYASABKA9SA2tleRIUCgV2YWx1ZRgCIAEoD1IFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRIQCgNrZXkYASABKBBSA2tleRIUCgV2YWx1ZRgCIAEoEFIFdmFsdWU6AjgBGkAKEk1hcEludDMyRmxvYXRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBGkEKE01hcEludDMyRG91YmxlRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAFSBXZhbHVlOgI4ARo+ChBNYXBCb29sQm9vbEVudHJ5EhAKA2tleRgBIAEoCFIDa2V5EhQKBXZhbHVlGAIgASgIUgV2YWx1ZToCOAEaQgoUTWFwU3RyaW5nU3RyaW5nRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4ARpBChNNYXBTdHJpbmdCeXRlc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgMUgV2YWx1ZToCOAEaigEKG01hcFN0cmluZ05lc3RlZE1lc3NhZ2VFbnRyeRIQCgNrZXkYASABKAlSA2tleRJVCgV2YWx1ZRgCIAEoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRNZXNzYWdlUgV2YWx1ZToCOAEafwocTWFwU3RyaW5nRm9yZWlnbk1lc3NhZ2VFbnRyeRIQCgNrZXkYASABKAlSA2tleRJJCgV2YWx1ZRgCIAEoCzIzLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25NZXNzYWdlUHJvdG8yUgV2YWx1ZToCOAEahAEKGE1hcFN0cmluZ05lc3RlZEVudW1FbnRyeRIQCgNrZXkYASABKAlSA2tleRJSCgV2YWx1ZRgCIAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtUgV2YWx1ZToCOAEaeQoZTWFwU3RyaW5nRm9yZWlnbkVudW1FbnRyeRIQCgNrZXkYASABKAlSA2tleRJGCgV2YWx1ZRgCIAEoDjIwLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yUgV2YWx1ZToCOAEaTAoERGF0YRIgCgtncm91cF9pbnQzMhjKASABKAVSCmdyb3VwSW50MzISIgoMZ3JvdXBfdWludDMyGMsBIAEoDVILZ3JvdXBVaW50MzIaIQoRTWVzc2FnZVNldENvcnJlY3QqCAgEEP////8HOgIIARr6AQobTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24xEhAKA3N0chgZIAEoCVIDc3RyMsgBChVtZXNzYWdlX3NldF9leHRlbnNpb24SQy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3QY+bteIAEoCzJNLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjFSE21lc3NhZ2VTZXRFeHRlbnNpb24a9wEKG01lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMhIMCgFpGAkgASgFUgFpMskBChVtZXNzYWdlX3NldF9leHRlbnNpb24SQy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3QYkLP8ASABKAsyTS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24yUhNtZXNzYWdlU2V0RXh0ZW5zaW9uIjkKCk5lc3RlZEVudW0SBwoDRk9PEAASBwoDQkFSEAESBwoDQkFaEAISEAoDTkVHEP///////////wEqBQh4EMkBQg0KC29uZW9mX2ZpZWxkSgYI6AcQkE4iJAoURm9yZWlnbk1lc3NhZ2VQcm90bzISDAoBYxgBIAEoBVIBYyKeAwoVVW5rbm93blRvVGVzdEFsbFR5cGVzEiYKDm9wdGlvbmFsX2ludDMyGOkHIAEoBVINb3B0aW9uYWxJbnQzMhIoCg9vcHRpb25hbF9zdHJpbmcY6gcgASgJUg5vcHRpb25hbFN0cmluZxJbCg5uZXN0ZWRfbWVzc2FnZRjrByABKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMlINbmVzdGVkTWVzc2FnZRJpCg1vcHRpb25hbGdyb3VwGOwHIAEoCjJCLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlVua25vd25Ub1Rlc3RBbGxUeXBlcy5PcHRpb25hbEdyb3VwUg1vcHRpb25hbGdyb3VwEiQKDW9wdGlvbmFsX2Jvb2wY7gcgASgIUgxvcHRpb25hbEJvb2wSJgoOcmVwZWF0ZWRfaW50MzIY8wcgAygFUg1yZXBlYXRlZEludDMyGh0KDU9wdGlvbmFsR3JvdXASDAoBYRgBIAEoBVIBYSIWChROdWxsSHlwb3RoZXNpc1Byb3RvMiIvCg5FbnVtT25seVByb3RvMiIdCgRCb29sEgoKBmtGYWxzZRAAEgkKBWtUcnVlEAEiJQoPT25lU3RyaW5nUHJvdG8yEhIKBGRhdGEYASABKAlSBGRhdGEiYQoRUHJvdG9XaXRoS2V5d29yZHMSFgoGaW5saW5lGAEgASgFUgZpbmxpbmUSGAoHY29uY2VwdBgCIAEoCVIHY29uY2VwdBIaCghyZXF1aXJlcxgDIAMoCVIIcmVxdWlyZXMizBkKGlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yEiUKDnJlcXVpcmVkX2ludDMyGAEgAigFUg1yZXF1aXJlZEludDMyEiUKDnJlcXVpcmVkX2ludDY0GAIgAigDUg1yZXF1aXJlZEludDY0EicKD3JlcXVpcmVkX3VpbnQzMhgDIAIoDVIOcmVxdWlyZWRVaW50MzISJwoPcmVxdWlyZWRfdWludDY0GAQgAigEUg5yZXF1aXJlZFVpbnQ2NBInCg9yZXF1aXJlZF9zaW50MzIYBSACKBFSDnJlcXVpcmVkU2ludDMyEicKD3JlcXVpcmVkX3NpbnQ2NBgGIAIoElIOcmVxdWlyZWRTaW50NjQSKQoQcmVxdWlyZWRfZml4ZWQzMhgHIAIoB1IPcmVxdWlyZWRGaXhlZDMyEikKEHJlcXVpcmVkX2ZpeGVkNjQYCCACKAZSD3JlcXVpcmVkRml4ZWQ2NBIrChFyZXF1aXJlZF9zZml4ZWQzMhgJIAIoD1IQcmVxdWlyZWRTZml4ZWQzMhIrChFyZXF1aXJlZF9zZml4ZWQ2NBgKIAIoEFIQcmVxdWlyZWRTZml4ZWQ2NBIlCg5yZXF1aXJlZF9mbG9hdBgLIAIoAlINcmVxdWlyZWRGbG9hdBInCg9yZXF1aXJlZF9kb3VibGUYDCACKAFSDnJlcXVpcmVkRG91YmxlEiMKDXJlcXVpcmVkX2Jvb2wYDSACKAhSDHJlcXVpcmVkQm9vbBInCg9yZXF1aXJlZF9zdHJpbmcYDiACKAlSDnJlcXVpcmVkU3RyaW5nEiUKDnJlcXVpcmVkX2J5dGVzGA8gAigMUg1yZXF1aXJlZEJ5dGVzEn8KF3JlcXVpcmVkX25lc3RlZF9tZXNzYWdlGBIgAigLMkcucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZVIVcmVxdWlyZWROZXN0ZWRNZXNzYWdlEm0KGHJlcXVpcmVkX2ZvcmVpZ25fbWVzc2FnZRgTIAIoCzIzLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25NZXNzYWdlUHJvdG8yUhZyZXF1aXJlZEZvcmVpZ25NZXNzYWdlEnYKFHJlcXVpcmVkX25lc3RlZF9lbnVtGBUgAigOMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIuTmVzdGVkRW51bVIScmVxdWlyZWROZXN0ZWRFbnVtEmQKFXJlcXVpcmVkX2ZvcmVpZ25fZW51bRgWIAIoDjIwLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yUhNyZXF1aXJlZEZvcmVpZ25FbnVtEjYKFXJlcXVpcmVkX3N0cmluZ19waWVjZRgYIAIoCUICCAJSE3JlcXVpcmVkU3RyaW5nUGllY2USJwoNcmVxdWlyZWRfY29yZBgZIAIoCUICCAFSDHJlcXVpcmVkQ29yZBJmChFyZWN1cnNpdmVfbWVzc2FnZRgbIAIoCzI5LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yUhByZWN1cnNpdmVNZXNzYWdlEncKGm9wdGlvbmFsX3JlY3Vyc2l2ZV9tZXNzYWdlGBwgASgLMjkucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzJSGG9wdGlvbmFsUmVjdXJzaXZlTWVzc2FnZRJTCgRkYXRhGMkBIAIoCjI+LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yLkRhdGFSBGRhdGESMAoNZGVmYXVsdF9pbnQzMhjxASACKAU6Ci0xMjM0NTY3ODlSDGRlZmF1bHRJbnQzMhI6Cg1kZWZhdWx0X2ludDY0GPIBIAIoAzoULTkxMjM0NTY3ODkxMjM0NTY3ODlSDGRlZmF1bHRJbnQ2NBIyCg5kZWZhdWx0X3VpbnQzMhjzASACKA06CjIxMjM0NTY3ODlSDWRlZmF1bHRVaW50MzISPAoOZGVmYXVsdF91aW50NjQY9AEgAigEOhQxMDEyMzQ1Njc4OTEyMzQ1Njc4OVINZGVmYXVsdFVpbnQ2NBIyCg5kZWZhdWx0X3NpbnQzMhj1ASACKBE6Ci0xMjM0NTY3ODlSDWRlZmF1bHRTaW50MzISPAoOZGVmYXVsdF9zaW50NjQY9gEgAigSOhQtOTEyMzQ1Njc4OTEyMzQ1Njc4OVINZGVmYXVsdFNpbnQ2NBI0Cg9kZWZhdWx0X2ZpeGVkMzIY9wEgAigHOgoyMTIzNDU2Nzg5Ug5kZWZhdWx0Rml4ZWQzMhI+Cg9kZWZhdWx0X2ZpeGVkNjQY+AEgAigGOhQxMDEyMzQ1Njc4OTEyMzQ1Njc4OVIOZGVmYXVsdEZpeGVkNjQSNgoQZGVmYXVsdF9zZml4ZWQzMhj5ASACKA86Ci0xMjM0NTY3ODlSD2RlZmF1bHRTZml4ZWQzMhJAChBkZWZhdWx0X3NmaXhlZDY0GPoBIAIoEDoULTkxMjM0NTY3ODkxMjM0NTY3ODlSD2RlZmF1bHRTZml4ZWQ2NBIrCg1kZWZhdWx0X2Zsb2F0GPsBIAIoAjoFOWUrMDlSDGRlZmF1bHRGbG9hdBItCg5kZWZhdWx0X2RvdWJsZRj8ASACKAE6BTdlKzIyUg1kZWZhdWx0RG91YmxlEigKDGRlZmF1bHRfYm9vbBj9ASACKAg6BHRydWVSC2RlZmF1bHRCb29sEi8KDmRlZmF1bHRfc3RyaW5nGP4BIAIoCToHUm9zZWJ1ZFINZGVmYXVsdFN0cmluZxIsCg1kZWZhdWx0X2J5dGVzGP8BIAIoDDoGam9zaHVhUgxkZWZhdWx0Qnl0ZXMa6AEKDU5lc3RlZE1lc3NhZ2USDAoBYRgBIAIoBVIBYRJbCgtjb3JlY3Vyc2l2ZRgCIAIoCzI5LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yUgtjb3JlY3Vyc2l2ZRJsChRvcHRpb25hbF9jb3JlY3Vyc2l2ZRgDIAEoCzI5LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yUhNvcHRpb25hbENvcmVjdXJzaXZlGkwKBERhdGESIAoLZ3JvdXBfaW50MzIYygEgAigFUgpncm91cEludDMyEiIKDGdyb3VwX3VpbnQzMhjLASACKA1SC2dyb3VwVWludDMyGiEKEU1lc3NhZ2VTZXRDb3JyZWN0KggIBBD/////BzoCCAEaigIKG01lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMRIQCgNzdHIYGSACKAlSA3N0cjLYAQoVbWVzc2FnZV9zZXRfZXh0ZW5zaW9uEksucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3QY+bteIAEoCzJVLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMVITbWVzc2FnZVNldEV4dGVuc2lvbhqHAgobTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24yEgwKAWkYCSACKAVSAWky2QEKFW1lc3NhZ2Vfc2V0X2V4dGVuc2lvbhJLLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0GJCz/AEgASgLMlUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24yUhNtZXNzYWdlU2V0RXh0ZW5zaW9uIjkKCk5lc3RlZEVudW0SBwoDRk9PEAASBwoDQkFSEAESBwoDQkFaEAISEAoDTkVHEP///////////wEqBQh4EMkBSgYI6AcQkE4qRgoRRm9yZWlnbkVudW1Qcm90bzISDwoLRk9SRUlHTl9GT08QABIPCgtGT1JFSUdOX0JBUhABEg8KC0ZPUkVJR05fQkFaEAI6WgoPZXh0ZW5zaW9uX2ludDMyEjEucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yGHggASgFUg5leHRlbnNpb25JbnQzMkI4Cihjb20uZ29vZ2xlLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8ySAH4AQGiAgZQcm90bzJKnqQBCgcSBSUAjAMBCroNCgEMEgMlABIymQ0gUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgogVGVzdCBzY2hlbWEgZm9yIHByb3RvMiBtZXNzYWdlcy4gIFRoaXMgdGVzdCBzY2hlbWEgaXMgdXNlZCBieToKCiAtIGNvbmZvcm1hbmNlIHRlc3RzCgoyFCBMSU5UOiBBTExPV19HUk9VUFMKCggKAQISAycAJgoICgEIEgMpAEEKCQoCCAESAykAQQoICgEIEgMqACQKCQoCCCQSAyoAJAoICgEIEgMtABwKRAoCCAkSAy0AHBo5IFRoaXMgaXMgdGhlIGRlZmF1bHQsIGJ1dCB3ZSBzcGVjaWZ5IGl0IGhlcmUgZXhwbGljaXRseS4KCggKAQgSAy8AHwoJCgIIHxIDLwAfCtsCCgIEABIFOACCAgEazQIgVGhpcyBwcm90byBpbmNsdWRlcyBldmVyeSB0eXBlIG9mIGZpZWxkIGluIGJvdGggc2luZ3VsYXIgYW5kIHJlcGVhdGVkCiBmb3Jtcy4KCiBBbHNvLCBjcnVjaWFsbHksIGFsbCBtZXNzYWdlcyBhbmQgZW51bXMgaW4gdGhpcyBmaWxlIGFyZSBldmVudHVhbGx5CiBzdWJtZXNzYWdlcyBvZiB0aGlzIG1lc3NhZ2UuICBTbyBmb3IgZXhhbXBsZSwgYSBmdXp6IHRlc3Qgb2YgVGVzdEFsbFR5cGVzCiBjb3VsZCB0cmlnZ2VyIGJ1Z3MgdGhhdCBvY2N1ciBpbiBhbnkgbWVzc2FnZSB0eXBlIGluIHRoaXMgZmlsZS4gIFdlIHZlcmlmeQogdGhpcyBzdGF5cyB0cnVlIGluIGEgdW5pdCB0ZXN0LgoK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CxAKDQoFBAcCAAESBL8CER8KDQoFBAcCAAMSBL8CIiMKDAoEBAcCARIEwAICJAoNCgUEBwIBBBIEwAICCgoNCgUEBwIBBRIEwAILEAoNCgUEBwIBARIEwAIRHwoNCgUEBwIBAxIEwAIiIwoMCgQEBwICEgTBAgImCg0KBQQHAgIEEgTBAgIKCg0KBQQHAgIFEgTBAgsRCg0KBQQHAgIBEgTBAhIhCg0KBQQHAgIDEgTBAiQlCgwKBAQHAgMSBMICAiYKDQoFBAcCAwQSBMICAgoKDQoFBAcCAwUSBMICCxEKDQoFBAcCAwESBMICEiEKDQoFBAcCAwMSBMICJCUKDAoEBAcCBBIEwwICJgoNCgUEBwIEBBIEwwICCgoNCgUEBwIEBRIEwwILEQoNCgUEBwIEARIEwwISIQoNCgUEBwIEAxIEwwIkJQoMCgQEBwIFEgTEAgImCg0KBQQHAgUEEgTEAgIKCg0KBQQHAgUFEgTEAgsRCg0KBQQHAgUBEgTEAhIhCg0KBQQHAgUDEgTEAiQlCgwKBAQHAgYSBMUCAigKDQoFBAcCBgQSBMUCAgoKDQoFBAcCBgUSBMUCCxIKDQoFBAcCBgESBMUCEyMKDQoFBAcCBgMSBMUCJicKDAoEBAcCBxIExgICKAoNCgUEBwIHBBIExgICCgoNCgUEBwIHBRIExgILEgoNCgUEBwIHARIExgITIwoNCgUEBwIHAxIExgImJwoMCgQEBwIIEgTHAgIqCg0KBQQHAggEEgTHAgIKCg0KBQQHAggFEgTHAgsTCg0KBQQHAggBEgTHAhQlCg0KBQQHAggDEgTHAigpCgwKBAQHAgkSBMgCAisKDQoFBAcCCQQSBMgCAgoKDQoFBAcCCQUSBMgCCxMKDQoFBAcCCQESBMgCFCUKDQoFBAcCCQMSBMgCKCoKDAoEBAcCChIEyQICJQoNCgUEBwIKBBIEyQICCgoNCgUEBwIKBRIEyQILEAoNCgUEBwIKARIEyQIRHwoNCgUEBwIKAxIEyQIiJAoMCgQEBwILEgTKAgInCg0KBQQHAgsEEgTKAgIKCg0KBQQHAgsFEgTKAgsRCg0KBQQHAgsBEgTKAhIhCg0KBQQHAgsDEgTKAiQmCgwKBAQHAgwSBMsCAiMKDQoFBAcCDAQSBMsCAgoKDQoFBAcCDAUSBMsCCw8KDQoFBAcCDAES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dG8zT3B0aW9uYWwSKgoOb3B0aW9uYWxfaW50MzIYASABKAVIAFINb3B0aW9uYWxJbnQzMogBARIqCg5vcHRpb25hbF9pbnQ2NBgCIAEoA0gBUg1vcHRpb25hbEludDY0iAEBEiwKD29wdGlvbmFsX3VpbnQzMhgDIAEoDUgCUg5vcHRpb25hbFVpbnQzMogBARIsCg9vcHRpb25hbF91aW50NjQYBCABKARIA1IOb3B0aW9uYWxVaW50NjSIAQESLAoPb3B0aW9uYWxfc2ludDMyGAUgASgRSARSDm9wdGlvbmFsU2ludDMyiAEBEiwKD29wdGlvbmFsX3NpbnQ2NBgGIAEoEkgFUg5vcHRpb25hbFNpbnQ2NIgBARIuChBvcHRpb25hbF9maXhlZDMyGAcgASgHSAZSD29wdGlvbmFsRml4ZWQzMogBARIuChBvcHRpb25hbF9maXhlZDY0GAggASgGSAdSD29wdGlvbmFsRml4ZWQ2NIgBARIwChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoD0gIUhBvcHRpb25hbFNmaXhlZDMyiAEBEjAKEW9wdGlvbmFsX3NmaXhlZDY0GAogASgQSAlSEG9wdGlvbmFsU2ZpeGVkNjSIAQESKgoOb3B0aW9uYWxfZmxvYXQYCyABKAJIClINb3B0aW9uYWxGbG9hdIgBARIsCg9vcHRpb25hbF9kb3VibGUYDCABKAFIC1IOb3B0aW9uYWxEb3VibGWIAQESKAoNb3B0aW9uYWxfYm9vbBgNIAEoCEgMUgxvcHRpb25hbEJvb2yIAQESLAoPb3B0aW9uYWxfc3RyaW5nGA4gASgJSA1SDm9wdGlvbmFsU3RyaW5niAEBEioKDm9wdGlvbmFsX2J5dGVzGA8gASgMSA5SDW9wdGlvbmFsQnl0ZXOIAQESLAoNb3B0aW9uYWxfY29yZBgQIAEoCUICCAFID1IMb3B0aW9uYWxDb3JkiAEBEnAKF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGBIgASgLMjMucHJvdG9idWZfdW5pdHRlc3QuVGVzdFByb3RvM09wdGlvbmFsLk5lc3RlZE1lc3NhZ2VIEFIVb3B0aW9uYWxOZXN0ZWRNZXNzYWdliAEBEmwKE2xhenlfbmVzdGVkX21lc3NhZ2UYEyABKAsyMy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UHJvdG8zT3B0aW9uYWwuTmVzdGVkTWVzc2FnZUICKAFIEVIRbGF6eU5lc3RlZE1lc3NhZ2WIAQESZwoUb3B0aW9uYWxfbmVzdGVkX2VudW0YFSABKA4yMC5wcm90b2J1Zl91bml0dGVzdC5UZXN0UHJvdG8zT3B0aW9uYWwuTmVzdGVkRW51bUgSUhJvcHRpb25hbE5lc3RlZEVudW2IAQESJQoOc2luZ3VsYXJfaW50MzIYFiABKAVSDXNpbmd1bGFySW50MzISJQoOc2luZ3VsYXJfaW50NjQYFyABKANSDXNpbmd1bGFySW50NjQaKwoNTmVzdGVkTWVzc2FnZRITCgJiYhgBIAEoBUgAUgJiYogBAUIFCgNfYmIiSgoKTmVzdGVkRW51bRIPCgtVTlNQRUNJRklFRBAAEgcKA0ZPTxABEgcKA0JBUhACEgcKA0JBWhADEhAKA05FRxD///////////8BQhEKD19vcHRpb25hbF9pbnQzMkIRCg9fb3B0aW9uYWxfaW50NjRCEgoQX29wdGlvbmFsX3VpbnQzMkISChBfb3B0aW9uYWxfdWludDY0QhIKEF9vcHRpb25hbF9zaW50MzJCEgoQX29wdGlvbmFsX3NpbnQ2NEITChFfb3B0aW9uYWxfZml4ZWQzMkITChFfb3B0aW9uYWxfZml4ZWQ2NEIUChJfb3B0aW9uYWxfc2ZpeGVkMzJCFAoSX29wdGlvbmFsX3NmaXhlZDY0QhEKD19vcHRpb25hbF9mbG9hdEISChBfb3B0aW9uYWxfZG91YmxlQhAKDl9vcHRpb25hbF9ib29sQhIKEF9vcHRpb25hbF9zdHJpbmdCEQoPX29wdGlvbmFsX2J5dGVzQhAKDl9vcHRpb25hbF9jb3JkQhoKGF9vcHRpb25hbF9uZXN0ZWRfbWVzc2FnZUIWChRfbGF6eV9uZXN0ZWRfbWVzc2FnZUIXChVfb3B0aW9uYWxfbmVzdGVkX2VudW0isgIKGVRlc3RQcm90bzNPcHRpb25hbE1lc3NhZ2USYQoObmVzdGVkX21lc3NhZ2UYASABKAsyOi5wcm90b2J1Zl91bml0dGVzdC5UZXN0UHJvdG8zT3B0aW9uYWxNZXNzYWdlLk5lc3RlZE1lc3NhZ2VSDW5lc3RlZE1lc3NhZ2USdwoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYAiABKAsyOi5wcm90b2J1Zl91bml0dGVzdC5UZXN0UHJvdG8zT3B0aW9uYWxNZXNzYWdlLk5lc3RlZE1lc3NhZ2VIAFIVb3B0aW9uYWxOZXN0ZWRNZXNzYWdliAEBGh0KDU5lc3RlZE1lc3NhZ2USDAoBcxgBIAEoCVIBc0IaChhfb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UiyQEKGFByb3RvM09wdGlvbmFsRXh0ZW5zaW9uczJLCg9leHRfbm9fb3B0aW9uYWwSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYiM3ZqQEgASgFUg1leHROb09wdGlvbmFsMlIKEWV4dF93aXRoX29wdGlvbmFsEh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGInN2akBIAEoBVIPZXh0V2l0aE9wdGlvbmFsiAEBOgzA6MzNCgjI6MzNChBCOAohY29tLmdvb2dsZS5wcm90b2J1Zi50ZXN0aW5nLnByb3RvUAGqAhBQcm90b2J1ZlVuaXR0ZXN0SpsiCgYSBB4AZAEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9G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ThAAGgrS3amEDwQIARACGgr6nqqEDwQIARACMnQKB1NlcnZpY2USXQoHRG9TdHVmZhIiLnByb3RvYnVmX3VuaXR0ZXN0LlRvcExldmVsTWVzc2FnZRoiLnByb3RvYnVmX3VuaXR0ZXN0LlRvcExldmVsTWVzc2FnZSIK4q74gw8ECAEQAhoK6oeLhA8ECAEQAjpDCgxwbGFpbl9vcHRpb24SHC5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMYxrXs8AEgASgFUgtwbGFpbk9wdGlvbjpfChhydW50aW1lX3JldGVudGlvbl9vcHRpb24SHC5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMYnJLp8AEgASgFQgOIAQFSFnJ1bnRpbWVSZXRlbnRpb25PcHRpb246XQoXc291cmNlX3JldGVudGlvbl9vcHRpb24SHC5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMY1Kzf8AEgASgFQgOIAQJSFXNvdXJjZVJldGVudGlvbk9wdGlvbjpkCgtmaWxlX29wdGlvbhIcLmdvb2dsZS5wcm90b2J1Zi5GaWxlT3B0aW9ucxiA8t7wASABKAsyIS5wcm90b2J1Zl91bml0dGVzdC5PcHRpb25zTWVzc2FnZVIKZmlsZU9wdGlvbjpuChByZXBlYXRlZF9vcHRpb25zEhwuZ29vZ2xlLnByb3RvYnVmLkZpbGVPcHRpb25zGJL+2/ABIAMoCzIhLnByb3RvYnVmX3VuaXR0ZXN0Lk9wdGlvbnNNZXNzYWdlUg9yZXBlYXRlZE9wdGlvbnM6gwEKFmV4dGVuc2lvbl9yYW5nZV9vcHRpb24SJi5nb29nbGUucHJvdG9idWYuRXh0ZW5zaW9uUmFuZ2VPcHRpb25zGITz2/ABIAEoCzIhLnByb3RvYnVmX3VuaXR0ZXN0Lk9wdGlvbnNNZXNzYWdlUhRleHRlbnNpb25SYW5nZU9wdGlvbjptCg5tZXNzYWdlX29wdGlvbhIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjT6NvwASABKAsyIS5wcm90b2J1Zl91bml0dGVzdC5PcHRpb25zTWVzc2FnZVINbWVzc2FnZU9wdGlvbjpnCgxmaWVsZF9vcHRpb24SHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zGKPXzfABIAEoCzIhLnByb3RvYnVmX3VuaXR0ZXN0Lk9wdGlvbnNNZXNzYWdlUgtmaWVsZE9wdGlvbjpnCgxvbmVvZl9vcHRpb24SHS5nb29nbGUucHJvdG9idWYuT25lb2ZPcHRpb25zGLH7xvABIAEoCzIhLnByb3RvYnVmX3VuaXR0ZXN0Lk9wdGlvbnNNZXNzYWdlUgtvbmVvZk9wdGlvbjpkCgtlbnVtX29wdGlvbhIcLmdvb2dsZS5wcm90b2J1Zi5FbnVtT3B0aW9ucxjvo8XwASABKAsyIS5wcm90b2J1Zl91bml0dGVzdC5PcHRpb25zTWVzc2FnZVIKZW51bU9wdGlvbjp0ChFlbnVtX2VudHJ5X29wdGlvbhIhLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVPcHRpb25zGNqbxfABIAEoCzIhLnByb3RvYnVmX3VuaXR0ZXN0Lk9wdGlvbnNNZXNzYWdlUg9lbnVtRW50cnlPcHRpb246bQoOc2VydmljZV9vcHRpb24SHy5nb29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnMY/bDB8AEgASgLMiEucHJvdG9idWZfdW5pdHRlc3QuT3B0aW9uc01lc3NhZ2VSDXNlcnZpY2VPcHRpb246agoNbWV0aG9kX29wdGlvbhIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zGOyFv/ABIAEoCzIhLnByb3RvYnVmX3VuaXR0ZXN0Lk9wdGlvbnNNZXNzYWdlUgxtZXRob2RPcHRpb246NQoBaRIbLnByb3RvYnVmX3VuaXR0ZXN0LkV4dGVuZGVlGAEgASgFQgqauu2EDwQIARACUgFpQjOqAhBQcm90b2J1ZlVuaXR0ZXN0kvHfhQ8ECAEQAoKQ94UPBAgBEALgkcmGDwKwrOOGDwFKjSQKBxIFHgDPAQEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNV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