@alphauspkgs/blue-sdk-ts 1.0.15 → 1.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -46,7 +46,219 @@ import type { JsonObject, Message } from "@bufbuild/protobuf";
46
46
  * Describes the file cover/v1/cover.proto.
47
47
  */
48
48
  export const file_cover_v1_cover: GenFile = /*@__PURE__*/
49
- fileDesc("ChRjb3Zlci92MS9jb3Zlci5wcm90bxIQYmx1ZWFwaS5jb3Zlci52MSLtAQoeRXhlY3V0ZVJlY29tbWVuZGF0aW9uVjNSZXF1ZXN0EgsKA2lkcxgBIAMoCRJRCgtleGVjdXRlVHlwZRgCIAEoDjI8LmJsdWVhcGkuY292ZXIudjEuRXhlY3V0ZVJlY29tbWVuZGF0aW9uVjNSZXF1ZXN0LkV4ZWN1dGVUeXBlImsKC0V4ZWN1dGVUeXBlEgsKB0RFRkFVTFQQABIUChBNQVJLX0FTX0VYRUNVVEVEEAESEQoNVU5ET19FWEVDVVRFRBACEhMKD1NVQk1JVF9URU1QTEFURRADEhEKDVJFVFJZX0VYRUNVVEUQBCJKCh9FeGVjdXRlUmVjb21tZW5kYXRpb25WM1Jlc3BvbnNlEicKBnJlc3VsdBgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiwwEKHExpc3RSZWNvbW1lbmRhdGlvbnNWM1JlcXVlc3QSEwoLY29zdGdyb3VwSWQYASABKAkSEAoIc3RhdHVzZXMYAiADKAkSTAoHZmlsdGVycxgDIAMoCzI7LmJsdWVhcGkuY292ZXIudjEuTGlzdFJlY29tbWVuZGF0aW9uc1YzUmVxdWVzdC5GaWx0ZXJzRW50cnkaLgoMRmlsdGVyc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEi9QMKFVJlY29tbWVuZGF0aW9uU3VtbWFyeRIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEg4KBnRhcmdldBgDIAEoCRISCgp0YXJnZXROYW1lGBIgASgJEhAKCGNhdGVnb3J5GAQgASgJEgwKBHR5cGUYBSABKAkSDgoGdmVuZG9yGA0gASgJEg4KBnNvdXJjZRgTIAEoCRIMCgRjb2RlGA4gASgJEhQKB3NlcnZpY2UYDyABKAlIAIgBARITCgZyZWdpb24YECABKAlIAYgBARIXCgpyZXNvdXJjZUlkGBEgASgJSAKIAQESHwoXZXN0aW1hdGVkTW9udGhseVNhdmluZ3MYBiABKAESIgoaZXN0aW1hdGVkTW9udGhseUJlZm9yZUNvc3QYByABKAESIQoZZXN0aW1hdGVkTW9udGhseUFmdGVyQ29zdBgIIAEoARIRCgRyaXNrGAkgASgJSAOIAQESEwoGZWZmb3J0GAogASgJSASIAQESDgoGc3RhdHVzGAsgASgJEjIKEWFkZGl0aW9uYWxEZXRhaWxzGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEIKCghfc2VydmljZUIJCgdfcmVnaW9uQg0KC19yZXNvdXJjZUlkQgcKBV9yaXNrQgkKB19lZmZvcnQiKQoaR2V0UmVjb21tZW5kYXRpb25WM1JlcXVlc3QSCwoDaWRzGAEgAygJIpIFChtHZXRSZWNvbW1lbmRhdGlvblYzUmVzcG9uc2USWwoPcmVjb21tZW5kYXRpb25zGAEgAygLMkIuYmx1ZWFwaS5jb3Zlci52MS5HZXRSZWNvbW1lbmRhdGlvblYzUmVzcG9uc2UuUmVjb21tZW5kYXRpb25EZXRhaWwalQQKFFJlY29tbWVuZGF0aW9uRGV0YWlsEgoKAmlkGAEgASgJEgwKBG5hbWUYCSABKAkSDgoGdmVuZG9yGAIgASgJEg4KBnNvdXJjZRgDIAEoCRIMCgRjb2RlGAQgASgJEhQKB3NlcnZpY2UYBSABKAlIAIgBARIOCgZ0YXJnZXQYByABKAkSEgoKdGFyZ2V0TmFtZRgIIAEoCRIUCgxkYXRlRGV0ZWN0ZWQYBiABKAkSEwoGcmVnaW9uGAogASgJSAGIAQESIgoaZXN0aW1hdGVkTW9udGhseUJlZm9yZUNvc3QYCyABKAESIQoZZXN0aW1hdGVkTW9udGhseUFmdGVyQ29zdBgMIAEoARIfChdlc3RpbWF0ZWRNb250aGx5U2F2aW5ncxgNIAEoARIXCgpyZXNvdXJjZUlkGA4gASgJSAKIAQESEAoIY2F0ZWdvcnkYDyABKAkSDAoEdHlwZRgQIAEoCRITCgtsYXN0VXBkYXRlZBgRIAEoCRIOCgZzdGF0dXMYEiABKAkSEQoEcmlzaxgTIAEoCUgDiAEBEhMKBmVmZm9ydBgUIAEoCUgEiAEBEigKB2RldGFpbHMYFSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0QgoKCF9zZXJ2aWNlQgkKB19yZWdpb25CDQoLX3Jlc291cmNlSWRCBwoFX3Jpc2tCCQoHX2VmZm9ydCLqAQobR2V0Q29zdEZvcmVjYXN0c0RhdGFSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhEKCXN0YXJ0VGltZRgCIAEoCRIPCgdlbmRUaW1lGAMgASgJEk4KC2dyYW51bGFyaXR5GAQgASgOMjkuYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0Rm9yZWNhc3RzRGF0YVJlcXVlc3QuR3JhbnVsYXJpdHkiQgoLR3JhbnVsYXJpdHkSGwoXR1JBTlVMQVJJVFlfVU5TUEVDSUZJRUQQABIJCgVEQUlMWRABEgsKB01PTlRITFkQAiJqChxHZXRDb3N0Rm9yZWNhc3RzRGF0YVJlc3BvbnNlEgwKBGRhdGUYASABKAkSFAoMZm9yZWNhc3RDb3N0GAIgASgBEhIKCnVwcGVyQm91bmQYAyABKAESEgoKbG93ZXJCb3VuZBgEIAEoASIWChRMaXN0Rm9yZWNhc3RzUmVxdWVzdCJcChVMaXN0Rm9yZWNhc3RzUmVzcG9uc2USQwoTY29zdEZvcmVjYXN0RGV0YWlscxgBIAMoCzImLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RGb3JlY2FzdERldGFpbHMi8wEKGUNyZWF0ZUNvc3RGb3JlY2FzdFJlcXVlc3QSFAoMZm9yZWNhc3ROYW1lGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEi8KCWNvc3RHcm91cBgDIAEoCzIcLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cBIbChNwYXN0QWN0dWFsQ29zdFJhbmdlGAQgASgDEhkKEWxvb2tGb3J3YXJkUGVyaW9kGAUgASgDEkIKE2V4dGVybmFsQWRqdXN0bWVudHMYBiADKAsyJS5ibHVlYXBpLmFwaS5jb3Zlci5FeHRlcm5hbEFkanVzdG1lbnQigAIKGkNyZWF0ZUNvc3RGb3JlY2FzdFJlc3BvbnNlEgoKAmlkGAEgASgJEhQKDGZvcmVjYXN0TmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIvCgljb3N0R3JvdXAYBCABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXASGwoTcGFzdEFjdHVhbENvc3RSYW5nZRgFIAEoAxIZChFsb29rRm9yd2FyZFBlcmlvZBgGIAEoAxJCChNleHRlcm5hbEFkanVzdG1lbnRzGAcgAygLMiUuYmx1ZWFwaS5hcGkuY292ZXIuRXh0ZXJuYWxBZGp1c3RtZW50IiQKFkdldENvc3RGb3JlY2FzdFJlcXVlc3QSCgoCaWQYASABKAkivwIKF0dldENvc3RGb3JlY2FzdFJlc3BvbnNlEgoKAmlkGAEgASgJEhQKDGZvcmVjYXN0TmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIvCgljb3N0R3JvdXAYBCABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXASGwoTcGFzdEFjdHVhbENvc3RSYW5nZRgFIAEoAxIZChFsb29rRm9yd2FyZFBlcmlvZBgGIAEoAxJCChNleHRlcm5hbEFkanVzdG1lbnRzGAcgAygLMiUuYmx1ZWFwaS5hcGkuY292ZXIuRXh0ZXJuYWxBZGp1c3RtZW50EhEKCWNyZWF0ZWRCeRgIIAEoCRIUCgxjcmVhdGlvbkRhdGUYCSABKAkSFwoPbGFzdFVwZGF0ZWREYXRlGAogASgJIv8BChlVcGRhdGVDb3N0Rm9yZWNhc3RSZXF1ZXN0EgoKAmlkGAEgASgJEhQKDGZvcmVjYXN0TmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIvCgljb3N0R3JvdXAYBCABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXASGwoTcGFzdEFjdHVhbENvc3RSYW5nZRgFIAEoAxIZChFsb29rRm9yd2FyZFBlcmlvZBgGIAEoAxJCChNleHRlcm5hbEFkanVzdG1lbnRzGAcgAygLMiUuYmx1ZWFwaS5hcGkuY292ZXIuRXh0ZXJuYWxBZGp1c3RtZW50IsICChpVcGRhdGVDb3N0Rm9yZWNhc3RSZXNwb25zZRIKCgJpZBgBIAEoCRIUCgxmb3JlY2FzdE5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSLwoJY29zdEdyb3VwGAQgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwEhsKE3Bhc3RBY3R1YWxDb3N0UmFuZ2UYBSABKAMSGQoRbG9va0ZvcndhcmRQZXJpb2QYBiABKAMSQgoTZXh0ZXJuYWxBZGp1c3RtZW50cxgHIAMoCzIlLmJsdWVhcGkuYXBpLmNvdmVyLkV4dGVybmFsQWRqdXN0bWVudBIRCgljcmVhdGVkQnkYCCABKAkSFAoMY3JlYXRpb25EYXRlGAkgASgJEhcKD2xhc3RVcGRhdGVkRGF0ZRgKIAEoCSInChlEZWxldGVDb3N0Rm9yZWNhc3RSZXF1ZXN0EgoKAmlkGAEgASgJIigKGkRlbGV0ZUNvc3RGb3JlY2FzdFJlc3BvbnNlEgoKAmlkGAEgASgJIm8KFkdldENvc3RVc2FnZVYyUmVzcG9uc2USDQoFdmFsdWUYASABKAESDAoEZGF0ZRgCIAEoCRIOCgZ2ZW5kb3IYAyABKAkSKAoHZGV0YWlscxgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QivwQKFUdldENvc3RVc2FnZVYyUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIRCglzdGFydFRpbWUYAiABKAkSDwoHZW5kVGltZRgDIAEoCRJICgtncmFudWxhcml0eRgEIAEoDjIzLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdFVzYWdlVjJSZXF1ZXN0LkdyYW51bGFyaXR5EhAKCGdyb3VwQnlzGAUgAygJEkIKCGNhdGVnb3J5GAYgASgOMjAuYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0VXNhZ2VWMlJlcXVlc3QuQ2F0ZWdvcnkSEAoIY3VycmVuY3kYByABKAkSOgoKYXdzT3B0aW9ucxgIIAEoCzImLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cEF3c09wdGlvbnMSRAoPYXp1cmVjc3BPcHRpb25zGAkgASgLMisuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwQXp1cmVDc3BPcHRpb25zEjoKCmdjcE9wdGlvbnMYCiABKAsyJi5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXBHY3BPcHRpb25zIkIKC0dyYW51bGFyaXR5EhsKF0dSQU5VTEFSSVRZX1VOU1BFQ0lGSUVEEAASCQoFREFJTFkQARILCgdNT05USExZEAIiOQoIQ2F0ZWdvcnkSGAoUQ2F0ZWdvcnlfVU5TUEVDSUZJRUQQABIICgRDT1NUEAESCQoFVVNBR0UQAiIZChdQb3B1bGF0ZURlbW9EYXRhUmVxdWVzdCIaChhQb3B1bGF0ZURlbW9EYXRhUmVzcG9uc2UiFgoUUmVzZXREZW1vRGF0YVJlcXVlc3QiFwoVUmVzZXREZW1vRGF0YVJlc3BvbnNlIt8GChlDb250YWluZXJDb3N0VXNhZ2VSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEg4KBnZlbmRvchgCIAEoCRJKCgptZXRyaWNUeXBlGAMgASgOMjYuYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXF1ZXN0Lk1ldHJpY1R5cGUSEQoJc3RhcnRUaW1lGAQgASgJEg8KB2VuZFRpbWUYBSABKAkSUAoLZ3JhbnVsYXJpdHkYBiABKA4yOy5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlcXVlc3QuVGltZUdyYW51bGFyaXR5EhAKCGdyb3VwQnlzGAcgAygJEksKB2ZpbHRlcnMYCCADKAsyOi5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlcXVlc3QuRmlsdGVyQ3JpdGVyaWESTAoLc2VydmljZVR5cGUYCSABKA4yNy5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlcXVlc3QuU2VydmljZVR5cGUazwEKDkZpbHRlckNyaXRlcmlhEgsKA2tleRgBIAEoCRJbCghvcGVyYXRvchgCIAEoDjJJLmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVxdWVzdC5GaWx0ZXJDcml0ZXJpYS5GaWx0ZXJPcGVyYXRvchINCgV2YWx1ZRgDIAEoCSJECg5GaWx0ZXJPcGVyYXRvchIYChRPUEVSQVRPUl9VTlNQRUNJRklFRBAAEgkKBUVRVUFMEAESDQoJTk9UX0VRVUFMEAIiRgoPVGltZUdyYW51bGFyaXR5EhsKF0dSQU5VTEFSSVRZX1VOU1BFQ0lGSUVEEAASCQoFREFJTFkQARILCgdNT05USExZEAIiWgoKTWV0cmljVHlwZRIWChJNRVRSSUNfVU5TUEVDSUZJRUQQABIICgRDT1NUEAESCQoFVVNBR0UQAhIOCgpFRkZJQ0lFTkNZEAMSDwoLVU5VU0VEX0NPU1QQBCI4CgtTZXJ2aWNlVHlwZRIXChNTRVJWSUNFX1VOU1BFQ0lGSUVEEAASBwoDRUNTEAESBwoDRUtTEAIi1woKGkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlEksKB3Jlc3VsdHMYASADKAsyOi5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlLkdyb3VwZWRSZXN1bHQSUwoKaGlnaGxpZ2h0cxgCIAEoCzI/LmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVzcG9uc2UuUmVzb3VyY2VIaWdobGlnaHRzEhEKCXRvdGFsQ29zdBgDIAEoARIVCg1hdmdFZmZpY2llbmN5GAQgASgBGkQKCkNvc3RNZXRyaWMSDgoGYW1vdW50GAEgASgBEhAKCGN1cnJlbmN5GAIgASgJEhQKDHVudXNlZEFtb3VudBgDIAEoARqQAQoLVXNhZ2VNZXRyaWMSDAoEdW5pdBgBIAEoCRIWCg5yZXNlcnZlZEFtb3VudBgCIAEoARIUCgxhY3R1YWxBbW91bnQYAyABKAESEgoKZWZmaWNpZW5jeRgEIAEoARIWCg5jcHVVdGlsaXphdGlvbhgFIAEoARIZChFtZW1vcnlVdGlsaXphdGlvbhgGIAEoARrBAQoPTWV0cmljRGF0YVBvaW50EgwKBGRhdGUYASABKAkSRwoEY29zdBgCIAEoCzI3LmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVzcG9uc2UuQ29zdE1ldHJpY0gAEkkKBXVzYWdlGAMgASgLMjguYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5Vc2FnZU1ldHJpY0gAQgwKCm1ldHJpY0RhdGEaTAoRUmVzb3VyY2VIaWdobGlnaHQSEgoKcmVzb3VyY2VJZBgBIAEoCRIUCgxyZXNvdXJjZU5hbWUYAiABKAkSDQoFdmFsdWUYAyABKAEahAMKElJlc291cmNlSGlnaGxpZ2h0cxJaChJoaWdoZXN0Q2x1c3RlckNvc3QYASABKAsyPi5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlLlJlc291cmNlSGlnaGxpZ2h0ElkKEWhpZ2hlc3RVbnVzZWRDb3N0GAIgASgLMj4uYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5SZXNvdXJjZUhpZ2hsaWdodBJbChNoaWdoZXN0V29ya2xvYWRDb3N0GAMgASgLMj4uYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5SZXNvdXJjZUhpZ2hsaWdodBJaChJoaWdoZXN0Q29tcHV0ZUNvc3QYBCABKAsyPi5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlLlJlc291cmNlSGlnaGxpZ2h0GvoBCg1Hcm91cGVkUmVzdWx0El4KCmF0dHJpYnV0ZXMYASADKAsySi5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlLkdyb3VwZWRSZXN1bHQuQXR0cmlidXRlc0VudHJ5ElYKEG1ldHJpY0RhdGFQb2ludHMYAiADKAsyPC5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlLk1ldHJpY0RhdGFQb2ludBoxCg9BdHRyaWJ1dGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASKPBAoYR2V0QUlDb3N0QW5kVXNhZ2VSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEg4KBnZlbmRvchgCIAEoCRIRCglzdGFydFRpbWUYAyABKAkSDwoHZW5kVGltZRgEIAEoCRJLCgtncmFudWxhcml0eRgFIAEoDjI2LmJsdWVhcGkuY292ZXIudjEuR2V0QUlDb3N0QW5kVXNhZ2VSZXF1ZXN0LkdyYW51bGFyaXR5EhAKCGdyb3VwQnlzGAYgAygJEkIKB2ZpbHRlcnMYByADKAsyMS5ibHVlYXBpLmNvdmVyLnYxLkdldEFJQ29zdEFuZFVzYWdlUmVxdWVzdC5GaWx0ZXIawgEKBkZpbHRlchILCgNrZXkYASABKAkSTAoIb3BlcmF0b3IYAiABKA4yOi5ibHVlYXBpLmNvdmVyLnYxLkdldEFJQ29zdEFuZFVzYWdlUmVxdWVzdC5GaWx0ZXIuT3BlcmF0b3ISDgoGdmFsdWVzGAMgAygJEg0KBXZhbHVlGAQgASgJIj4KCE9wZXJhdG9yEhgKFE9QRVJBVE9SX1VOU1BFQ0lGSUVEEAASCQoFRVFVQUwQARINCglOT1RfRVFVQUwQAiJCCgtHcmFudWxhcml0eRIbChdHUkFOVUxBUklUWV9VTlNQRUNJRklFRBAAEgkKBURBSUxZEAESCwoHTU9OVEhMWRACIqcEChlHZXRBSUNvc3RBbmRVc2FnZVJlc3BvbnNlEkMKB3Jlc3VsdHMYASADKAsyMi5ibHVlYXBpLmNvdmVyLnYxLkdldEFJQ29zdEFuZFVzYWdlUmVzcG9uc2UuUmVzdWx0GigKBENvc3QSDgoGYW1vdW50GAEgASgBEhAKCGN1cnJlbmN5GAIgASgJGiUKBVVzYWdlEgwKBHVuaXQYASABKAkSDgoGYW1vdW50GAIgASgBGpgBCgZNZXRyaWMSDAoEZGF0ZRgBIAEoCRI+CgRjb3N0GAIgASgLMjAuYmx1ZWFwaS5jb3Zlci52MS5HZXRBSUNvc3RBbmRVc2FnZVJlc3BvbnNlLkNvc3QSQAoFdXNhZ2UYAyABKAsyMS5ibHVlYXBpLmNvdmVyLnYxLkdldEFJQ29zdEFuZFVzYWdlUmVzcG9uc2UuVXNhZ2Ua2AEKBlJlc3VsdBJWCgphdHRyaWJ1dGVzGAEgAygLMkIuYmx1ZWFwaS5jb3Zlci52MS5HZXRBSUNvc3RBbmRVc2FnZVJlc3BvbnNlLlJlc3VsdC5BdHRyaWJ1dGVzRW50cnkSQwoHbWV0cmljcxgCIAMoCzIyLmJsdWVhcGkuY292ZXIudjEuR2V0QUlDb3N0QW5kVXNhZ2VSZXNwb25zZS5NZXRyaWMaMQoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiGwoZR2V0RXhlY3V0aW9uU3RhdHVzUmVxdWVzdCJXChpHZXRFeGVjdXRpb25TdGF0dXNSZXNwb25zZRIYChByZWNvbW1lbmRhdGlvbklkGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIPCgdtZXNzYWdlGAMgASgJIjgKFlZlcmlmeUFQSUFjY2Vzc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg4KBnRhcmdldBgCIAEoCSIpChdWZXJpZnlBUElBY2Nlc3NSZXNwb25zZRIOCgZyZXN1bHQYASABKAgiZQoaR2V0UmVjb21tZW5kYXRpb25WMlJlcXVlc3QSCgoCaWQYASABKAkSEwoLY29zdEdyb3VwSWQYAiABKAkSFAoMcGVyaW9kT3B0aW9uGAMgASgJEhAKCGN1cnJlbmN5GAQgASgJImEKG0dldFJlY29tbWVuZGF0aW9uVjJSZXNwb25zZRJCCgRkYXRhGAEgASgLMjQuYmx1ZWFwaS5hcGkuY292ZXIucmVjb21tZW5kYXRpb24uUmVjb21tZW5kYXRpb25EYXRhIlEKEU9uYm9hcmRPcmdSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJEhAKCHBhc3N3b3JkGAIgASgJEgwKBG5hbWUYAyABKAkSDQoFb3JnSWQYBCABKAkiQwoST25ib2FyZE9yZ1Jlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiTQoTSW52aXRlTWVtYmVyUmVxdWVzdBINCgVlbWFpbBgBIAMoCRIQCghpc1Jlc2VuZBgCIAEoCBIVCg1pbnZpdGVBc0FkbWluGAMgASgIIiUKFEludml0ZU1lbWJlclJlc3BvbnNlEg0KBWVtYWlsGAEgAygJIqQBChNBY3RpdmF0ZVVzZXJSZXF1ZXN0Eg4KBnVzZXJJZBgBIAEoCRIYChBwcmV2aW91c1Bhc3N3b3JkGAIgASgJEhAKCHBhc3N3b3JkGAMgASgJEgwKBG5hbWUYBCABKAkSDgoGbG9jYWxlGAUgASgJEg0KBWVtYWlsGAYgASgJEg8KB2lzQXV0aDAYByABKAgSEwoLYXV0aDBVc2VySWQYCCABKAkiRQoUQWN0aXZhdGVVc2VyUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSJYChNDcmVhdGVNZW1iZXJSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJEhAKCHBhc3N3b3JkGAIgASgJEgwKBG5hbWUYAyABKAkSEgoKY29zdGdyb3VwcxgEIAMoCSJFChRDcmVhdGVNZW1iZXJSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIhMKEUdldE1lbWJlcnNSZXF1ZXN0IkMKEkdldE1lbWJlcnNSZXNwb25zZRItCgh1c2VyRGF0YRgBIAMoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIikKF0dldE1lbWJlckRldGFpbHNSZXF1ZXN0Eg4KBnVzZXJJZBgBIAEoCSJJChhHZXRNZW1iZXJEZXRhaWxzUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIrChlHZXRNZW1iZXJDb3N0R3JvdXBSZXF1ZXN0Eg4KBnVzZXJJZBgBIAEoCSJUChpHZXRNZW1iZXJDb3N0R3JvdXBSZXNwb25zZRI2Cgpjb3N0R3JvdXBzGAEgAygLMiIuYmx1ZWFwaS5hcGkuY292ZXIuTWVtYmVyQ29zdEdyb3VwIkAKHVVwZGF0ZU1lbWJlclBlcm1pc3Npb25SZXF1ZXN0Eg4KBnVzZXJJZBgBIAEoCRIPCgdpc0FkbWluGAIgASgIIk8KHlVwZGF0ZU1lbWJlclBlcm1pc3Npb25SZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIhcKFUdldFVzZXJEZXRhaWxzUmVxdWVzdCJHChZHZXRVc2VyRGV0YWlsc1Jlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiKQoXVXBkYXRlVXNlckF2YXRhclJlcXVlc3QSDgoGYXZhdGFyGAEgASgJIkkKGFVwZGF0ZVVzZXJBdmF0YXJSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIiUKFVVwZGF0ZVVzZXJJY29uUmVxdWVzdBIMCgRpY29uGAEgASgJIkcKFlVwZGF0ZVVzZXJJY29uUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIxChtVcGRhdGVVc2VyQ29sb3JUaGVtZVJlcXVlc3QSEgoKY29sb3JUaGVtZRgBIAEoCSJNChxVcGRhdGVVc2VyQ29sb3JUaGVtZVJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiJQoVVXBkYXRlVXNlck5hbWVSZXF1ZXN0EgwKBG5hbWUYASABKAkiRwoWVXBkYXRlVXNlck5hbWVSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIicKFlVwZGF0ZVVzZXJFbWFpbFJlcXVlc3QSDQoFZW1haWwYASABKAkiSAoXVXBkYXRlVXNlckVtYWlsUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIrChlVcGRhdGVVc2VyTWFpblZpZXdSZXF1ZXN0Eg4KBnZpZXdJZBgBIAEoCSJLChpVcGRhdGVVc2VyTWFpblZpZXdSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIkkKGFJlc2V0VXNlclBhc3N3b3JkUmVxdWVzdBIYChBwcmV2aW91c1Bhc3N3b3JkGAEgASgJEhMKC25ld1Bhc3N3b3JkGAIgASgJIkoKGVJlc2V0VXNlclBhc3N3b3JkUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIpChdVcGRhdGVVc2VyTG9jYWxlUmVxdWVzdBIOCgZsb2NhbGUYASABKAkiSQoYVXBkYXRlVXNlckxvY2FsZVJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiLQoZVXBkYXRlVXNlckFwcFRoZW1lUmVxdWVzdBIQCghhcHBUaGVtZRgBIAEoCSJLChpVcGRhdGVVc2VyQXBwVGhlbWVSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIkMKGVVwZGF0ZVVzZXJUaW1lem9uZVJlcXVlc3QSEAoIdGltZVpvbmUYASABKAkSFAoMYXV0b1RpbWVab25lGAIgASgIIksKGlVwZGF0ZVVzZXJUaW1lem9uZVJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiMQobVXBkYXRlVXNlckF0dHJpYnV0ZXNSZXF1ZXN0EhIKCmF0dHJpYnV0ZXMYASADKAkiTQocVXBkYXRlVXNlckF0dHJpYnV0ZXNSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIiUKE0RlbGV0ZU1lbWJlclJlcXVlc3QSDgoGdXNlcklkGAEgASgJIiYKFERlbGV0ZU1lbWJlclJlc3BvbnNlEg4KBnVzZXJJZBgBIAEoCSImChRSZXNldFBhc3N3b3JkUmVxdWVzdBIOCgZ1c2VySWQYASABKAkiJwoVUmVzZXRQYXNzd29yZFJlc3BvbnNlEg4KBnVzZXJJZBgBIAEoCSK7AQoRQ3JlYXRlVmlld1JlcXVlc3QSDAoEbmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRIRCglpc1ByaXZhdGUYAyABKAgSEgoKaXNFZGl0YWJsZRgEIAEoCBIMCgRpY29uGAUgASgJEhIKCnJlcG9ydFR5cGUYBiABKAkSEgoKY29sb3JUaGVtZRgHIAEoCRIUCgxyZXBvcnRQZXJpb2QYCCABKAkSEAoIY3VycmVuY3kYCSABKAkiQwoSQ3JlYXRlVmlld1Jlc3BvbnNlEi0KCHZpZXdEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVmlld0RhdGEiEQoPR2V0Vmlld3NSZXF1ZXN0IkEKEEdldFZpZXdzUmVzcG9uc2USLQoIdmlld0xpc3QYASADKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5WaWV3TGlzdCInChVHZXRDdXJyZW50Vmlld1JlcXVlc3QSDgoGdmlld0lkGAEgASgJIkcKFkdldEN1cnJlbnRWaWV3UmVzcG9uc2USLQoIdmlld0RhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5WaWV3RGF0YSIZChdHZXRGYXZvcml0ZVZpZXdzUmVxdWVzdCJLChhHZXRGYXZvcml0ZVZpZXdzUmVzcG9uc2USLwoJZmF2b3JpdGVzGAEgAygLMhwuYmx1ZWFwaS5hcGkuY292ZXIuRmF2b3JpdGVzIiQKElB1Ymxpc2hWaWV3UmVxdWVzdBIOCgZ2aWV3SWQYASABKAkiIgoTUHVibGlzaFZpZXdSZXNwb25zZRILCgN1cmwYASABKAkiJAoSQWRkRmF2b3JpdGVSZXF1ZXN0Eg4KBnZpZXdJZBgBIAEoCSIlChNBZGRGYXZvcml0ZVJlc3BvbnNlEg4KBnZpZXdJZBgBIAEoCSInChVSZW1vdmVGYXZvcml0ZVJlcXVlc3QSDgoGdmlld0lkGAEgASgJIigKFlJlbW92ZUZhdm9yaXRlUmVzcG9uc2USDgoGdmlld0lkGAEgASgJIo8BChFVcGRhdGVWaWV3UmVxdWVzdBIOCgZ2aWV3SWQYASABKAkSDAoEbmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIMCgRpY29uGAQgASgJEhEKCWlzUHJpdmF0ZRgFIAEoCBISCgppc0VkaXRhYmxlGAYgASgIEhIKCmNvbG9yVGhlbWUYByABKAkiJAoSVXBkYXRlVmlld1Jlc3BvbnNlEg4KBnZpZXdJZBgBIAEoCSJYChdVcGRhdGVWaWV3TGF5b3V0UmVxdWVzdBIOCgZ2aWV3SWQYASABKAkSLQoGbGF5b3V0GAIgAygLMh0uYmx1ZWFwaS5hcGkuY292ZXIuV2lkZ2V0RGF0YSJJChhVcGRhdGVWaWV3TGF5b3V0UmVzcG9uc2USLQoGbGF5b3V0GAEgAygLMh0uYmx1ZWFwaS5hcGkuY292ZXIuVmlld0xheW91dCKaAQoXVXBkYXRlVmlld1dpZGdldFJlcXVlc3QSDgoGdmlld0lkGAEgASgJEhAKCHdpZGdldElkGAIgASgJEigKB29wdGlvbnMYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EjMKCHJlcXVlc3RzGAQgAygLMiEuYmx1ZWFwaS5hcGkuY292ZXIuTGF5b3V0UmVxdWVzdHMiXwoYVXBkYXRlVmlld1dpZGdldFJlc3BvbnNlEhAKCHdpZGdldElkGAEgASgJEjEKCndpZGdldERhdGEYAiABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5XaWRnZXREYXRhIkEKG1VwZGF0ZVZpZXdDb2xvclRoZW1lUmVxdWVzdBIOCgZ2aWV3SWQYASABKAkSEgoKY29sb3JUaGVtZRgCIAEoCSJNChxVcGRhdGVWaWV3Q29sb3JUaGVtZVJlc3BvbnNlEi0KCHZpZXdEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVmlld0RhdGEiPQoZVXBkYXRlVmlld0N1cnJlbmN5UmVxdWVzdBIOCgZ2aWV3SWQYASABKAkSEAoIY3VycmVuY3kYAiABKAkiSwoaVXBkYXRlVmlld0N1cnJlbmN5UmVzcG9uc2USLQoIdmlld0RhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5WaWV3RGF0YSI1ChtTZXRPcmdVcGRhdGVDdXJyZW5jeVJlcXVlc3QSFgoOdXBkYXRlQ3VycmVuY3kYASABKAMiNgocU2V0T3JnVXBkYXRlQ3VycmVuY3lSZXNwb25zZRIWCg51cGRhdGVDdXJyZW5jeRgBIAEoAyIdChtHZXRPcmdVcGRhdGVDdXJyZW5jeVJlcXVlc3QiWQocR2V0T3JnVXBkYXRlQ3VycmVuY3lSZXNwb25zZRINCgVvcmdJZBgBIAEoCRIWCg51cGRhdGVDdXJyZW5jeRgCIAEoAxISCgpsYXN0VXBkYXRlGAMgASgJIj4KGExpc3RFeGNoYW5nZVJhdGVzUmVxdWVzdBIRCglzdGFydERhdGUYASABKAkSDwoHZW5kRGF0ZRgCIAEoCSJiChlMaXN0RXhjaGFuZ2VSYXRlc1Jlc3BvbnNlEg0KBW9yZ0lkGAEgASgJEjYKDWV4Y2hhbmdlUmF0ZXMYAiADKAsyHy5ibHVlYXBpLmNvdmVyLnYxLkV4Y2hhbmdlUmF0ZXMiQgoNRXhjaGFuZ2VSYXRlcxINCgVtb250aBgBIAEoCRIUCgxleGNoYW5nZVJhdGUYAiABKAISDAoEZGF0ZRgDIAEoCSIjChFEZWxldGVWaWV3UmVxdWVzdBIOCgZ2aWV3SWQYASABKAkiJAoSRGVsZXRlVmlld1Jlc3BvbnNlEg4KBnZpZXdJZBgBIAEoCSJlChpVcGRhdGVTaWRlTWVudVN0YXRlUmVxdWVzdBIOCgZ2aWV3SWQYASABKAkSNwoNc2lkZW1lbnVzdGF0ZRgCIAMoCzIgLmJsdWVhcGkuYXBpLmNvdmVyLlNpZGVNZW51U3RhdGUiLQobVXBkYXRlU2lkZU1lbnVTdGF0ZVJlc3BvbnNlEg4KBnZpZXdJZBgBIAEoCSJAChpBZGRTaWRlTWVudUZhdm9yaXRlUmVxdWVzdBIOCgZ2aWV3SWQYASABKAkSEgoKbWVudUl0ZW1JZBgCIAEoCSItChtBZGRTaWRlTWVudUZhdm9yaXRlUmVzcG9uc2USDgoGdmlld0lkGAEgASgJIkMKHVJlbW92ZVNpZGVNZW51RmF2b3JpdGVSZXF1ZXN0Eg4KBnZpZXdJZBgBIAEoCRISCgptZW51SXRlbUlkGAIgASgJIjAKHlJlbW92ZVNpZGVNZW51RmF2b3JpdGVSZXNwb25zZRIOCgZ2aWV3SWQYASABKAki0wEKFkNyZWF0ZUNvc3RHcm91cFJlcXVlc3QSDAoEbmFtZRgBIAEoCRIuCgR0eXBlGAcgASgOMiAuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwVHlwZRITCgtkZXNjcmlwdGlvbhgCIAEoCRINCgVpbWFnZRgDIAEoCRIMCgRpY29uGAQgASgJEhIKCmNvbG9yVGhlbWUYBSABKAkSNQoMY29tYmluYXRpb25zGAYgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQ29tYmluYXRpb25zIlIKF0NyZWF0ZUNvc3RHcm91cFJlc3BvbnNlEjcKDWNvc3RHcm91cERhdGEYASABKAsyIC5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXBEYXRhIhYKFEdldENvc3RHcm91cHNSZXF1ZXN0IlAKFUdldENvc3RHcm91cHNSZXNwb25zZRI3Cg1jb3N0R3JvdXBEYXRhGAEgAygLMiAuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwRGF0YSIxChpHZXRDb3N0R3JvdXBEZXRhaWxzUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCSJWChtHZXRDb3N0R3JvdXBEZXRhaWxzUmVzcG9uc2USNwoNY29zdEdyb3VwRGF0YRgBIAEoCzIgLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cERhdGEiPwoaVXBkYXRlQ29zdEdyb3VwTmFtZVJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSDAoEbmFtZRgCIAEoCSIrChtVcGRhdGVDb3N0R3JvdXBOYW1lUmVzcG9uc2USDAoEbmFtZRgBIAEoCSJNCiFVcGRhdGVDb3N0R3JvdXBEZXNjcmlwdGlvblJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkiOQoiVXBkYXRlQ29zdEdyb3VwRGVzY3JpcHRpb25SZXNwb25zZRITCgtkZXNjcmlwdGlvbhgBIAEoCSJBChtVcGRhdGVDb3N0R3JvdXBJbWFnZVJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSDQoFaW1hZ2UYAiABKAkiLQocVXBkYXRlQ29zdEdyb3VwSW1hZ2VSZXNwb25zZRINCgVpbWFnZRgBIAEoCSI/ChpVcGRhdGVDb3N0R3JvdXBJY29uUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIMCgRpY29uGAIgASgJIisKG1VwZGF0ZUNvc3RHcm91cEljb25SZXNwb25zZRIMCgRpY29uGAEgASgJIksKIFVwZGF0ZUNvc3RHcm91cENvbG9yVGhlbWVSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhIKCmNvbG9yVGhlbWUYAiABKAkiNwohVXBkYXRlQ29zdEdyb3VwQ29sb3JUaGVtZVJlc3BvbnNlEhIKCmNvbG9yVGhlbWUYASABKAkicAoiVXBkYXRlQ29zdEdyb3VwQ29tYmluYXRpb25zUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRI1Cgxjb21iaW5hdGlvbnMYAiABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Db21iaW5hdGlvbnMiXAojVXBkYXRlQ29zdEdyb3VwQ29tYmluYXRpb25zUmVzcG9uc2USNQoMY29tYmluYXRpb25zGAEgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQ29tYmluYXRpb25zIkMKHEFzc2lnbkNvc3RHcm91cE1lbWJlclJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSDgoGdXNlcklkGAIgASgJIkQKHUFzc2lnbkNvc3RHcm91cE1lbWJlclJlc3BvbnNlEhMKC2Nvc3RHcm91cElkGAEgASgJEg4KBnVzZXJJZBgCIAEoCSJDChxSZW1vdmVDb3N0R3JvdXBNZW1iZXJSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEg4KBnVzZXJJZBgCIAEoCSJECh1SZW1vdmVDb3N0R3JvdXBNZW1iZXJSZXNwb25zZRITCgtjb3N0R3JvdXBJZBgBIAEoCRIOCgZ1c2VySWQYAiABKAkiLQoWRGVsZXRlQ29zdEdyb3VwUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCSIuChdEZWxldGVDb3N0R3JvdXBSZXNwb25zZRITCgtjb3N0R3JvdXBJZBgBIAEoCSIyCiJHZXRBY2NvdW50QWNjZXNzVGVtcGxhdGVVcmxSZXF1ZXN0EgwKBHR5cGUYASABKAkihwEKI0dldEFjY291bnRBY2Nlc3NUZW1wbGF0ZVVybFJlc3BvbnNlEhEKCWxhdW5jaFVybBgBIAEoCRITCgt0ZW1wbGF0ZVVybBgCIAEoCRIRCglzdGFja05hbWUYAyABKAkSEQoJcHJpbmNpcGFsGAQgASgJEhIKCmV4dGVybmFsSWQYBSABKAkiGgoYTGlzdEFjY291bnRBY2Nlc3NSZXF1ZXN0IikKF0dldEFjY291bnRBY2Nlc3NSZXF1ZXN0Eg4KBnRhcmdldBgBIAEoCSLaAgoNQWNjb3VudEFjY2VzcxIOCgZ0YXJnZXQYASABKAkSEwoLYWNjb3VudE5hbWUYAiABKAkSEwoLYWNjb3VudFR5cGUYAyABKAkSDwoHcGF5ZXJJZBgEIAEoCRIPCgdyb2xlQXJuGAUgASgJEhIKCmV4dGVybmFsSWQYBiABKAkSDwoHc3RhY2tJZBgHIAEoCRITCgtzdGFja1JlZ2lvbhgIIAEoCRITCgt0ZW1wbGF0ZVVybBgJIAEoCRISCgpidWNrZXROYW1lGAogASgJEg4KBnByZWZpeBgLIAEoCRISCgpyZXBvcnROYW1lGAwgASgJEkEKEnJlZ2lzdHJhdGlvblN0YXR1cxgNIAEoCzIlLmJsdWVhcGkuYXBpLmNvdmVyLlJlZ2lzdHJhdGlvblN0YXR1cxIOCgZzdGF0dXMYDiABKAkSEwoLbGFzdFVwZGF0ZWQYDyABKAkiQwoaQ3JlYXRlQWNjb3VudEFjY2Vzc1JlcXVlc3QSDgoGdGFyZ2V0GAEgASgJEhUKDWZyb21UZXJyYWZvcm0YAiABKAgiRAoiQ3JlYXRlQWNjb3VudEFjY2Vzc1N0YWNrc2V0UmVxdWVzdBIOCgZ0YXJnZXQYASABKAkSDgoGcmVnaW9uGAIgASgJIiwKGlVwZGF0ZUFjY291bnRBY2Nlc3NSZXF1ZXN0Eg4KBnRhcmdldBgBIAEoCSI8ChpEZWxldGVBY2NvdW50QWNjZXNzUmVxdWVzdBIOCgZ0YXJnZXQYASABKAkSDgoGdmVuZG9yGAIgASgJIi8KG0RlbGV0ZUFjY291bnRBY2Nlc3NSZXNwb25zZRIQCgh0YXJnZXRJZBgBIAEoCSJQChZSZWdpc3RlckFjY291bnRSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIRCglhY2NvdW50SWQYAiABKAkSEwoLYWNjb3VudE5hbWUYAyABKAki5gEKEUxpc3RBc3NldHNSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhIKCnN0YXJ0TW9udGgYAiABKAkSEAoIZW5kTW9udGgYAyABKAkSGgoSd2l0aFJlY29tbWVuZGF0aW9uGAQgASgIEjcKCmF3c09wdGlvbnMYBSADKAsyIy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RBc3NldHNGaWx0ZXJzEkEKFGF3c1Byb3BlcnRpZXNPcHRpb25zGAYgAygLMiMuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QXNzZXRzRmlsdGVycyKPAQoRTGlzdEFzc2V0c0ZpbHRlcnMSRwoKYW5kRmlsdGVycxgBIAMoCzIzLmJsdWVhcGkuY292ZXIudjEuTGlzdEFzc2V0c0ZpbHRlcnMuQW5kRmlsdGVyc0VudHJ5GjEKD0FuZEZpbHRlcnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIr0BCghSZXNvdXJjZRIMCgRkYXRlGAEgASgJEg0KBW9yZ0lkGAIgASgJEg4KBnZlbmRvchgDIAEoCRIPCgdhY2NvdW50GAQgASgJEg8KB3NlcnZpY2UYBSABKAkSEgoKcmVzb3VyY2VJZBgGIAEoCRIUCgxyZXNvdXJjZVR5cGUYByABKAkSDAoEY29zdBgIIAEoARISCgpwcm9wZXJ0aWVzGAkgASgJEhYKDnJlY29tbWVuZGF0aW9uGAogASgJIuYBChdHZXRBc3NldHNTdW1tYXJ5UmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRISCgpzdGFydE1vbnRoGAIgASgJEhAKCGVuZE1vbnRoGAMgASgJEhQKDGNvbWJpbmVEYXRlcxgEIAEoCBI3Cgphd3NPcHRpb25zGAUgAygLMiMuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QXNzZXRzRmlsdGVycxJBChRhd3NQcm9wZXJ0aWVzT3B0aW9ucxgGIAMoCzIjLmJsdWVhcGkuY292ZXIudjEuTGlzdEFzc2V0c0ZpbHRlcnMiawoYR2V0QXNzZXRzU3VtbWFyeVJlc3BvbnNlEjAKB3N1bW1hcnkYASADKAsyHy5ibHVlYXBpLmNvdmVyLnYxLkFzc2V0c1N1bW1hcnkSHQoVcmVjb21tZW5kYXRpb25TdW1tYXJ5GAIgASgJIlgKDUFzc2V0c1N1bW1hcnkSDAoEZGF0ZRgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSFgoOdG90YWxSZXNvdXJjZXMYAyABKAMSEQoJdG90YWxDb3N0GAQgASgBIjoKI1Jlc29sdmVDb3N0R3JvdXBDb21iaW5hdGlvbnNSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJImkKJFJlc29sdmVDb3N0R3JvdXBDb21iaW5hdGlvbnNSZXNwb25zZRITCgtjb3N0R3JvdXBJZBgBIAEoCRIsCghhY2NvdW50cxgCIAMoCzIaLmJsdWVhcGkuYXBpLmNvdmVyLkFjY291bnQixwQKE0dldENvc3RVc2FnZVJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSEQoJc3RhcnRUaW1lGAIgASgJEg8KB2VuZFRpbWUYAyABKAkSFAoMZ3JvdXBCeU1vbnRoGAQgASgIEg0KBWxpbWl0GAUgASgDEhAKCGNhdGVnb3J5GAYgASgJEg8KB2dyb3VwQnkYByABKAkSFwoPaW5jbHVkZVplcm9Db3N0GAggASgIEkMKCmF3c09wdGlvbnMYCSABKAsyLy5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RVc2FnZVJlcXVlc3RBd3NPcHRpb25zEkcKDGF6dXJlT3B0aW9ucxgKIAEoCzIxLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdFVzYWdlUmVxdWVzdEF6dXJlT3B0aW9ucxJDCgpnY3BPcHRpb25zGAsgASgLMi8uYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0VXNhZ2VSZXF1ZXN0R2NwT3B0aW9ucxJNCg9henVyZWNzcE9wdGlvbnMYDCABKAsyNC5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RVc2FnZVJlcXVlc3RBenVyZUNzcE9wdGlvbnMSSQoNY3VzdG9tT3B0aW9ucxgNIAEoCzIyLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdFVzYWdlUmVxdWVzdEN1c3RvbU9wdGlvbnMSFwoPaW5jbHVkZUZvcmVjYXN0GA4gASgIEhAKCGN1cnJlbmN5GA8gASgJIucBCh1HZXRDb3N0VXNhZ2VSZXF1ZXN0QXdzT3B0aW9ucxIWCg5ncm91cEJ5Q29sdW1ucxgBIAEoCRIVCg1ncm91cEFjY291bnRzGAIgASgIEkEKB2ZpbHRlcnMYAyADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxJECgp0YWdGaWx0ZXJzGAQgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSDgoGdGFnS2V5GAUgASgJItkBCh9HZXRDb3N0VXNhZ2VSZXF1ZXN0QXp1cmVPcHRpb25zEhYKDmdyb3VwQnlDb2x1bW5zGAEgASgJEhUKDWdyb3VwQWNjb3VudHMYAiABKAgSQQoHZmlsdGVycxgDIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEkQKCnRhZ0ZpbHRlcnMYBCADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycyL+AgodR2V0Q29zdFVzYWdlUmVxdWVzdEdjcE9wdGlvbnMSFgoOZ3JvdXBCeUNvbHVtbnMYASABKAkSFQoNZ3JvdXBBY2NvdW50cxgCIAEoCBJBCgdmaWx0ZXJzGAMgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSRAoKdGFnRmlsdGVycxgEIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEkYKDGxhYmVsRmlsdGVycxgFIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEk0KE3Byb2plY3RMYWJlbEZpbHRlcnMYBiADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxIOCgZ0YWdLZXkYByABKAki7AEKIkdldENvc3RVc2FnZVJlcXVlc3RBenVyZUNzcE9wdGlvbnMSFgoOZ3JvdXBCeUNvbHVtbnMYASABKAkSFQoNZ3JvdXBBY2NvdW50cxgCIAEoCBJBCgdmaWx0ZXJzGAMgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSRAoKdGFnRmlsdGVycxgEIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEg4KBnRhZ0tleRgFIAEoCSKBAwogR2V0Q29zdFVzYWdlUmVxdWVzdEN1c3RvbU9wdGlvbnMSFgoOZ3JvdXBCeUNvbHVtbnMYASABKAkSFQoNZ3JvdXBBY2NvdW50cxgCIAEoCBJBCgdmaWx0ZXJzGAMgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSRAoKdGFnRmlsdGVycxgEIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEkYKDGxhYmVsRmlsdGVycxgFIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEk0KE3Byb2plY3RMYWJlbEZpbHRlcnMYBiADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxIOCgZ0YWdLZXkYByABKAkiqQEKHlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxJUCgphbmRGaWx0ZXJzGAEgAygLMkAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMuQW5kRmlsdGVyc0VudHJ5GjEKD0FuZEZpbHRlcnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIvYDCghDb3N0SXRlbRIOCgZ2ZW5kb3IYASABKAkSDAoEZGF0ZRgCIAEoCRIPCgdwcm9kdWN0GAMgASgJEg8KB2FjY291bnQYBCABKAkSEQoJdXNhZ2VUeXBlGBAgASgJEhIKCmNoYXJnZVR5cGUYESABKAkSDAoEY29zdBgFIAEoARIPCgdkZXRhaWxzGAYgASgJEjQKCGZvcmVjYXN0GAcgASgLMiIuYmx1ZWFwaS5hcGkuY292ZXIuQXdzQ29zdEZvcmVjYXN0Eg4KBnJlZ2lvbhgIIAEoCRIWCg5iaWxsaW5nQWNjb3VudBgJIAEoCRIQCgh0YWdWYWx1ZRgKIAEoCRISCgpsYXN0VXBkYXRlGAsgASgJEgwKBHVuaXQYDCABKAkSEAoIY2F0ZWdvcnkYDSABKAkSDgoGdGFnZ2VkGA4gASgIEhUKDW51bWJlck9mVW5pdHMYEiABKAESRgoOdW5pdGNvc3RtZXRyaWMYDyADKAsyLi5ibHVlYXBpLmNvdmVyLnYxLkNvc3RJdGVtLlVuaXRjb3N0bWV0cmljRW50cnkSGgoSYWxsb2NhdGlvbkNhdGVnb3J5GBMgASgJGjUKE1VuaXRjb3N0bWV0cmljRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgBOgI4ASI6CiNHZXRSaWdodFNpemluZ1JlY29tbWVuZGF0aW9uUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCSJZCiRHZXRSaWdodFNpemluZ1JlY29tbWVuZGF0aW9uUmVzcG9uc2USMQoIcmVzb3VyY2UYASADKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5SZXNvdXJjZURhdGEieAoZTW9kaWZ5UmVzb3VyY2VUeXBlUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEQoJYWNjb3VudElkGAIgASgJEhIKCnJlc291cmNlSWQYAyABKAkSFAoMcmVzb3VyY2VUeXBlGAQgASgJEg4KBnJlZ2lvbhgFIAEoCSJpChpNb2RpZnlSZXNvdXJjZVR5cGVSZXNwb25zZRIRCglhY2NvdW50SWQYASABKAkSEgoKcmVzb3VyY2VJZBgCIAEoCRIUCgxyZXNvdXJjZVR5cGUYAyABKAkSDgoGcmVnaW9uGAQgASgJImEKGFRlcm1pbmF0ZVJlc291cmNlUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEQoJYWNjb3VudElkGAIgASgJEhIKCnJlc291cmNlSWQYAyABKAkSDgoGcmVnaW9uGAQgASgJIlIKGVRlcm1pbmF0ZVJlc291cmNlUmVzcG9uc2USEQoJYWNjb3VudElkGAEgASgJEhIKCnJlc291cmNlSWQYAiABKAkSDgoGcmVnaW9uGAMgASgJIkMKF1VwbG9hZENoYXJnZUNvZGVSZXF1ZXN0EgwKBG5hbWUYASABKAkSDAoEdHlwZRgCIAEoCRIMCgRmaWxlGAMgASgMIlIKGFVwbG9hZENoYXJnZUNvZGVSZXNwb25zZRIMCgRuYW1lGAEgASgJEigKBnN0YXR1cxgCIAEoDjIYLmJsdWVhcGkuY292ZXIudjEuU3RhdHVzIkgKEkFzc2lnblBheWVyUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEQoJYWNjb3VudElkGAIgASgJEg8KB3BheWVySWQYAyABKAkiOQoTQXNzaWduUGF5ZXJSZXNwb25zZRIRCglhY2NvdW50SWQYASABKAkSDwoHcGF5ZXJJZBgCIAEoCSIiChBHZXRQYXllcnNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCSIjChFHZXRQYXllcnNSZXNwb25zZRIOCgZwYXllcnMYASADKAkiOQoSR2V0QWNjb3VudHNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRITCgtjb3N0R3JvdXBJZBgCIAEoCSInChNHZXRBY2NvdW50c1Jlc3BvbnNlEhAKCGFjY291bnRzGAEgAygJIjkKEkdldFNlcnZpY2VzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEwoLY29zdEdyb3VwSWQYAiABKAkiJwoTR2V0U2VydmljZXNSZXNwb25zZRIQCghzZXJ2aWNlcxgBIAMoCSI4ChFHZXRSZWdpb25zUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEwoLY29zdEdyb3VwSWQYAiABKAkiJQoSR2V0UmVnaW9uc1Jlc3BvbnNlEg8KB3JlZ2lvbnMYASADKAkiNQoOR2V0VGFnc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJIj4KD0dldFRhZ3NSZXNwb25zZRIrCgd0YWdEYXRhGAEgAygLMhouYmx1ZWFwaS5hcGkuY292ZXIuVGFnRGF0YSIgCg9MaXN0RmVlc1JlcXVlc3QSDQoFbW9udGgYASABKAki7QIKCkZlZURldGFpbHMSCgoCaWQYASABKAkSDQoFb3JnSWQYAiABKAkSDgoGdmVuZG9yGAMgASgJEg8KB2FjY291bnQYBCABKAkSDQoFbW9udGgYBSABKAkSEAoIbGluZVR5cGUYBiABKAkSDwoHZmVlVHlwZRgHIAEoCRITCgtwcm9kdWN0Q29kZRgIIAEoCRITCgtkZXNjcmlwdGlvbhgJIAEoCRIPCgdzdGFydGVkGAogASgJEhQKDHRpbWVJbnRlcnZhbBgLIAEoCRITCgtwcm9kdWN0TmFtZRgMIAEoCRIQCghjdXJyZW5jeRgNIAEoCRITCgtzcGxpdFN0YXR1cxgOIAEoCRITCgtpc0FsbG9jYXRlZBgPIAEoCBIRCglpc0FwcGxpZWQYECABKAgSFQoNdW5ibGVuZGVkQ29zdBgRIAEoARIRCglzb3VyY2VGZWUYEiABKAkSEgoKbGFzdFVwZGF0ZRgTIAEoCSIiChFSZXN0b3JlRmVlUmVxdWVzdBINCgVmZWVJZBgBIAEoCSJRChZHZXRDb3N0R3JvdXBGZWVSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhEKCXN0YXJ0VGltZRgCIAEoCRIPCgdlbmRUaW1lGAMgASgJImYKB0ZlZUl0ZW0SDgoGdmVuZG9yGAEgASgJEg0KBW1vbnRoGAIgASgJEg8KB3Byb2R1Y3QYAyABKAkSDwoHYWNjb3VudBgEIAEoCRIMCgR0eXBlGAUgASgJEgwKBGNvc3QYBiABKAEiSQoJQWxsb2NhdG9yEgwKBHR5cGUYASABKAkSDQoFdmFsdWUYAiABKAkSDwoHZm9ybXVsYRgDIAEoCRIOCgZtb250aHMYBCABKAMiaAoIQ3JpdGVyaWESMAoDYW5kGAEgAygLMiMuYmx1ZWFwaS5jb3Zlci52MS5Dcml0ZXJpYS5BbmRFbnRyeRoqCghBbmRFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIqICChRDb3N0QWxsb2NhdG9yRGV0YWlscxIKCgJpZBgBIAEoCRIQCghjYXRlZ29yeRgCIAEoCRISCgpleHBpcmF0aW9uGAMgASgDEhIKCnN0YXJ0TW9udGgYBCABKAkSFgoOZGVmYXVsdEFjY291bnQYBSABKAkSMQoIY3JpdGVyaWEYBiABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Db21iaW5hdGlvbnMSLgoJYWxsb2NhdG9yGAcgAygLMhsuYmx1ZWFwaS5jb3Zlci52MS5BbGxvY2F0b3ISEgoKY3JlYXRlVGltZRgIIAEoCRISCgp1cGRhdGVUaW1lGAkgASgJEgwKBG5hbWUYCiABKAkSEwoLZGVzY3JpcHRpb24YCyABKAki+gEKFENvc3RBbGxvY2F0b3JSZXF1ZXN0EgoKAmlkGAEgASgJEhAKCGNhdGVnb3J5GAIgASgJEhIKCmV4cGlyYXRpb24YAyABKAMSEgoKc3RhcnRNb250aBgEIAEoCRIWCg5kZWZhdWx0QWNjb3VudBgFIAEoCRIxCghjcml0ZXJpYRgGIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkNvbWJpbmF0aW9ucxIuCglhbGxvY2F0b3IYByADKAsyGy5ibHVlYXBpLmNvdmVyLnYxLkFsbG9jYXRvchIMCgRuYW1lGAggASgJEhMKC2Rlc2NyaXB0aW9uGAkgASgJIhcKFUxpc3RBbGxvY2F0b3JzUmVxdWVzdCLwAQoWQ3JlYXRlQWxsb2NhdG9yUmVxdWVzdBIQCghjYXRlZ29yeRgBIAEoCRISCgpleHBpcmF0aW9uGAIgASgDEhIKCnN0YXJ0TW9udGgYAyABKAkSFgoOZGVmYXVsdEFjY291bnQYBCABKAkSMQoIY3JpdGVyaWEYBSABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Db21iaW5hdGlvbnMSLgoJYWxsb2NhdG9yGAYgAygLMhsuYmx1ZWFwaS5jb3Zlci52MS5BbGxvY2F0b3ISDAoEbmFtZRgHIAEoCRITCgtkZXNjcmlwdGlvbhgIIAEoCSIyCh5HZXRBbGxvY2F0aW9uQXR0cmlidXRlc1JlcXVlc3QSEAoIY2F0ZWdvcnkYASABKAkisQEKH0dldEFsbG9jYXRpb25BdHRyaWJ1dGVzUmVzcG9uc2USWAoJYXR0cmlidXRlGAEgAygLMkUuYmx1ZWFwaS5jb3Zlci52MS5HZXRBbGxvY2F0aW9uQXR0cmlidXRlc1Jlc3BvbnNlLkFsbG9jYXRpb25BdHRyaWJ1dGUaNAoTQWxsb2NhdGlvbkF0dHJpYnV0ZRIMCgR0eXBlGAEgASgJEg8KB3NlcnZpY2UYAiADKAkiPgobR2V0QWxsb2NhdGlvblNvdXJjZXNSZXF1ZXN0EgwKBHR5cGUYASABKAkSEQoJYWNjb3VudElkGAIgASgJIusBChxHZXRBbGxvY2F0aW9uU291cmNlc1Jlc3BvbnNlElAKBnNvdXJjZRgBIAMoCzJALmJsdWVhcGkuY292ZXIudjEuR2V0QWxsb2NhdGlvblNvdXJjZXNSZXNwb25zZS5BbGxvY2F0aW9uU291cmNlcxIrCgd0YWdEYXRhGAIgAygLMhouYmx1ZWFwaS5hcGkuY292ZXIuVGFnRGF0YRpMChFBbGxvY2F0aW9uU291cmNlcxITCgthY2NvdW50TmFtZRgBIAEoCRIPCgdzZXJ2aWNlGAIgASgJEhEKCWNvc3RHcm91cBgDIAEoCSIkChZEZWxldGVBbGxvY2F0b3JSZXF1ZXN0EgoKAmlkGAEgASgJIkcKHFByb3h5Q3JlYXRlQ29tcGxldGlvblJlcXVlc3QSJwoGcGFyYW1zGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCItCh1Qcm94eUNyZWF0ZUNvbXBsZXRpb25SZXNwb25zZRIMCgRsaW5lGAEgASgJItQEChNBY2NvdW50VXNhZ2VEZXRhaWxzEgoKAmlkGAEgASgJEg0KBW9yZ0lkGAIgASgJEg4KBnZlbmRvchgDIAEoCRIPCgdhY2NvdW50GAQgASgJEgwKBGRhdGUYBSABKAkSEwoLcHJvZHVjdENvZGUYBiABKAkSEwoLc2VydmljZUNvZGUYByABKAkSDgoGcmVnaW9uGAggASgJEgwKBHpvbmUYCSABKAkSEQoJdXNhZ2VUeXBlGAogASgJEhQKDGluc3RhbmNlVHlwZRgLIAEoCRIRCglvcGVyYXRpb24YDCABKAkSEQoJaW52b2ljZUlkGA0gASgJEhMKC2Rlc2NyaXB0aW9uGA4gASgJEhIKCnJlc291cmNlSWQYDyABKAkSDAoEdGFncxgQIAEoCRIWCg5jb3N0Q2F0ZWdvcmllcxgRIAEoCRITCgt1c2FnZUFtb3VudBgSIAEoARIZChF0cnVlVW5ibGVuZGVkQ29zdBgTIAEoARIVCg11bmJsZW5kZWRDb3N0GBQgASgBEhUKDWVmZmVjdGl2ZUNvc3QYFSABKAESFQoNYW1vcnRpemVkQ29zdBgWIAEoARIaChJwdWJsaWNPbkRlbWFuZENvc3QYFyABKAESGwoTdW51c2VkQW1vcnRpemVkQ29zdBgYIAEoARISCgpsYXN0VXBkYXRlGBkgASgJEhMKC3NwbGl0U3RhdHVzGBogASgJEhMKC2lzQWxsb2NhdGVkGBsgASgIEhEKCWlzQXBwbGllZBgcIAEoCBIOCgZzb3VyY2UYHSABKAkiPQoXTGlzdEFjY291bnRVc2FnZVJlcXVlc3QSEQoJc3RhcnREYXRlGAEgASgJEg8KB2VuZERhdGUYAiABKAkiMgoaUmVzdG9yZUFjY291bnRVc2FnZVJlcXVlc3QSFAoMYWxsb2NhdGlvbklkGAEgASgJIiMKFVJlc3RvcmVTYXZpbmdzUmVxdWVzdBIKCgJpZBgBIAEoCSK6AgoOU2F2aW5nc0RldGFpbHMSCgoCaWQYASABKAkSDQoFb3JnSWQYAiABKAkSDgoGdmVuZG9yGAMgASgJEg8KB2FjY291bnQYBCABKAkSDQoFbW9udGgYBSABKAkSDAoEdHlwZRgGIAEoCRILCgNhcm4YByABKAkSEwoLcHJvZHVjdENvZGUYCCABKAkSEgoKb2ZmZXJDbGFzcxgJIAEoCRIQCghvbmRlbWFuZBgKIAEoARIVCg1lZmZlY3RpdmVDb3N0GAsgASgBEg8KB3NhdmluZ3MYDCABKAESEwoLc3BsaXRTdGF0dXMYDSABKAkSEwoLaXNBbGxvY2F0ZWQYDiABKAgSEQoJaXNBcHBsaWVkGA8gASgIEg4KBnNvdXJjZRgQIAEoCRISCgpsYXN0VXBkYXRlGBEgASgJImoKHUdldENvc3RHcm91cEFsbG9jYXRpb25SZXF1ZXN0EhAKCGNhdGVnb3J5GAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJEhEKCXN0YXJ0RGF0ZRgDIAEoCRIPCgdlbmREYXRlGAQgASgJIoABCg5BbGxvY2F0aW9uSXRlbRIOCgZ2ZW5kb3IYASABKAkSDQoFbW9udGgYAiABKAkSDwoHcHJvZHVjdBgDIAEoCRIPCgdhY2NvdW50GAQgASgJEgwKBHR5cGUYBSABKAkSDAoEY29zdBgGIAEoARIRCgljb3N0R3JvdXAYByABKAkiXwoXUHJvY2Vzc0F1dGgwVXNlclJlcXVlc3QSDgoGc291cmNlGAEgASgJEhIKCmN1c3RvbWVySWQYAiABKAkSDQoFZW1haWwYAyABKAkSEQoJc3VidXNlcklkGAQgASgJIjAKGFByb2Nlc3NBdXRoMFVzZXJSZXNwb25zZRIUCgxpc0F1dGhvcml6ZWQYASABKAgilQIKCkRhdGFBY2Nlc3MSDgoGdGFyZ2V0GAEgASgJEg0KBW9yZ0lkGAIgASgJEjEKCmdjcE9wdGlvbnMYAyABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5HY3BPcHRpb25zEjUKDGF6dXJlT3B0aW9ucxgEIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkF6dXJlT3B0aW9ucxIxCgphd3NPcHRpb25zGAUgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuQXdzT3B0aW9ucxITCgthY2NvdW50VHlwZRgGIAEoCRISCgpsYXN0VXBkYXRlGAcgASgJEhIKCmNyZWF0ZVRpbWUYCCABKAkSDgoGdmVuZG9yGAkgASgJIu0BChlSZWdpc3RlckRhdGFBY2Nlc3NSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIOCgZ0YXJnZXQYAiABKAkSEwoLYWNjb3VudFR5cGUYAyABKAkSMQoKZ2NwT3B0aW9ucxgEIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkdjcE9wdGlvbnMSNQoMYXp1cmVPcHRpb25zGAUgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQXp1cmVPcHRpb25zEjEKCmF3c09wdGlvbnMYBiABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5Bd3NPcHRpb25zIusBChdVcGRhdGVEYXRhQWNjZXNzUmVxdWVzdBIOCgZ0YXJnZXQYASABKAkSDgoGdmVuZG9yGAIgASgJEjEKCmdjcE9wdGlvbnMYAyABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5HY3BPcHRpb25zEjUKDGF6dXJlT3B0aW9ucxgEIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkF6dXJlT3B0aW9ucxIxCgphd3NPcHRpb25zGAUgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuQXdzT3B0aW9ucxITCgthY2NvdW50VHlwZRgGIAEoCSIXChVMaXN0RGF0YUFjY2Vzc1JlcXVlc3QiIQofTGlzdFVucmVnaXN0ZXJlZEFjY291bnRzUmVxdWVzdCJxCiBMaXN0VW5yZWdpc3RlcmVkQWNjb3VudHNSZXNwb25zZRINCgVvcmdJZBgBIAEoCRI+ChF1bnJlZ2lzdGVyZWRBY2N0cxgCIAMoCzIjLmJsdWVhcGkuY292ZXIudjEuVW5yZWdpc3RlcmVkQWNjdHMiVAoRVW5yZWdpc3RlcmVkQWNjdHMSCgoCaWQYASABKAkSDwoHcGF5ZXJJZBgCIAEoCRIOCgZzdGF0dXMYAyABKAkSEgoKbGFzdFVwZGF0ZRgEIAEoCSJ8ChVCaWxsaW5nQWNjb3VudFJlcXVlc3QSEQoJYmlsbGluZ0lkGAEgASgJEhEKCWRhdGFzZXRJZBgCIAEoCRIVCg1kYXRhc2V0UmVnaW9uGAMgASgJEhEKCXByb2plY3RJZBgEIAEoCRITCgtiaWxsaW5nTmFtZRgFIAEoCSJUCh1HZXRBbmREZWxldGVEYXRhQWNjZXNzUmVxdWVzdBIOCgZ0YXJnZXQYASABKAkSDgoGdmVuZG9yGAIgASgJEhMKC2FjY291bnRUeXBlGAMgASgJImEKIkFkZFBhcnRuZXJDZW50ZXJDcmVkZW50aWFsc1JlcXVlc3QSEQoJYWNjb3VudElkGAEgASgJEhUKDWFwcGxpY2F0aW9uSWQYAiABKAkSEQoJc2VjcmV0S2V5GAMgASgJIiUKFEFkZE1wblNldHRpbmdSZXF1ZXN0Eg0KBW1wbklkGAEgASgJItYBChxHZXRDb3N0R3JvdXBBdHRyaWJ1dGVSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIVCg1hdHRyaWJ1dGVUeXBlGAIgASgJEhMKC2Nvc3RHcm91cElkGAMgASgJEj0KFGV4aXN0aW5nQ29tYmluYXRpb25zGAQgAygLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQ29tYmluYXRpb25zEjsKEmN1cnJlbnRDb21iaW5hdGlvbhgFIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkNvbWJpbmF0aW9ucyJ3Ch1HZXRDb3N0R3JvdXBBdHRyaWJ1dGVSZXNwb25zZRIpCgZyZXN1bHQYASADKAsyGS5ibHVlYXBpLmFwaS5jb3Zlci5SZXN1bHQSKwoHdGFnRGF0YRgCIAMoCzIaLmJsdWVhcGkuYXBpLmNvdmVyLlRhZ0RhdGEiJgoUR2V0Q2F0ZWdvcmllc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJIkYKFUdldENhdGVnb3JpZXNSZXNwb25zZRItCghjYXRlZ29yeRgBIAMoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLkNhdGVnb3J5IhIKEEdldEFsZXJ0c1JlcXVlc3QiRAoRR2V0QWxlcnRzUmVzcG9uc2USLwoJYWxlcnREYXRhGAEgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQWxlcnREYXRhIoYBChJDcmVhdGVBbGVydFJlcXVlc3QSDAoEbmFtZRgBIAEoCRITCgtmaXhlZEFtb3VudBgCIAEoAhISCgpwZXJjZW50YWdlGAMgASgCEhMKC2dyYW51bGFyaXR5GAQgASgJEhIKCmNvc3RHcm91cHMYBSADKAkSEAoIY2hhbm5lbHMYBiADKAkiRgoTQ3JlYXRlQWxlcnRSZXNwb25zZRIvCglhbGVydERhdGEYASABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5BbGVydERhdGEiJAoWR2V0QWxlcnREZXRhaWxzUmVxdWVzdBIKCgJpZBgBIAEoCSJKChdHZXRBbGVydERldGFpbHNSZXNwb25zZRIvCglhbGVydERhdGEYASABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5BbGVydERhdGEiIAoSRGVsZXRlQWxlcnRSZXF1ZXN0EgoKAmlkGAEgASgJIiEKE0RlbGV0ZUFsZXJ0UmVzcG9uc2USCgoCaWQYASABKAkimQEKGVVwZGF0ZUFsZXJ0RGV0YWlsc1JlcXVlc3QSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRITCgtmaXhlZEFtb3VudBgDIAEoAhISCgpwZXJjZW50YWdlGAQgASgCEhMKC2dyYW51bGFyaXR5GAUgASgJEhIKCmNvc3RHcm91cHMYBiADKAkSEAoIY2hhbm5lbHMYByADKAkiTQoaVXBkYXRlQWxlcnREZXRhaWxzUmVzcG9uc2USLwoJYWxlcnREYXRhGAEgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQWxlcnREYXRhIiIKEkdldENoYW5uZWxzUmVxdWVzdBIMCgR0eXBlGAEgASgJIkoKE0dldENoYW5uZWxzUmVzcG9uc2USMwoLY2hhbm5lbERhdGEYASABKAsyHi5ibHVlYXBpLmFwaS5jb3Zlci5DaGFubmVsRGF0YSJGChRDcmVhdGVDaGFubmVsUmVxdWVzdBIMCgRuYW1lGAEgASgJEgwKBHR5cGUYAiABKAkSEgoKd2ViaG9va1VybBgDIAEoCSJMChVDcmVhdGVDaGFubmVsUmVzcG9uc2USMwoLY2hhbm5lbERhdGEYASABKAsyHi5ibHVlYXBpLmFwaS5jb3Zlci5DaGFubmVsRGF0YSImChhHZXRDaGFubmVsRGV0YWlsc1JlcXVlc3QSCgoCaWQYASABKAkiUAoZR2V0Q2hhbm5lbERldGFpbHNSZXNwb25zZRIzCgtjaGFubmVsRGF0YRgBIAEoCzIeLmJsdWVhcGkuYXBpLmNvdmVyLkNoYW5uZWxEYXRhIiIKFERlbGV0ZUNoYW5uZWxSZXF1ZXN0EgoKAmlkGAEgASgJIiMKFURlbGV0ZUNoYW5uZWxSZXNwb25zZRIKCgJpZBgBIAEoCSJZChtVcGRhdGVDaGFubmVsRGV0YWlsc1JlcXVlc3QSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIMCgR0eXBlGAMgASgJEhIKCndlYmhvb2tVcmwYBCABKAkiUwocVXBkYXRlQ2hhbm5lbERldGFpbHNSZXNwb25zZRIzCgtjaGFubmVsRGF0YRgBIAEoCzIeLmJsdWVhcGkuYXBpLmNvdmVyLkNoYW5uZWxEYXRhIs8BCiFHZXREaXNjb3VudFJlY29tbWVuZGF0aW9uc1JlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSLwoJYXdzSW5wdXRzGAIgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQXdzSW5wdXRzEjMKC2F6dXJlSW5wdXRzGAMgASgLMh4uYmx1ZWFwaS5hcGkuY292ZXIuQXp1cmVJbnB1dHMSLwoJZ2NwSW5wdXRzGAQgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuR2NwSW5wdXRzIokCCiJHZXREaXNjb3VudFJlY29tbWVuZGF0aW9uc1Jlc3BvbnNlEkkKEmF3c1JlY29tbWVuZGF0aW9ucxgBIAEoCzItLmJsdWVhcGkuYXBpLmNvdmVyLkF3c0Rpc2NvdW50UmVjb21tZW5kYXRpb25zEk0KFGF6dXJlUmVjb21tZW5kYXRpb25zGAIgASgLMi8uYmx1ZWFwaS5hcGkuY292ZXIuQXp1cmVEaXNjb3VudFJlY29tbWVuZGF0aW9ucxJJChJnY3BSZWNvbW1lbmRhdGlvbnMYAyABKAsyLS5ibHVlYXBpLmFwaS5jb3Zlci5HY3BEaXNjb3VudFJlY29tbWVuZGF0aW9ucyJXChxHZXRBbm9tYWx5aW5Db3N0R3JvdXBSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhEKCXN0YXJ0RGF0ZRgCIAEoCRIPCgdlbmREYXRlGAMgASgJIuEBCgtBbm9tYWx5RGF0YRIPCgdhY2NvdW50GAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJEg4KBnZlbmRvchgDIAEoCRIPCgdwcm9kdWN0GAQgASgJEgwKBGRhdGUYBSABKAkSEQoJdG90YWxDb3N0GAYgASgCEhEKCWlzQW5vbWFseRgHIAEoCBISCgpsb3dlckxpbWl0GAggASgCEhIKCnVwcGVyTGltaXQYCSABKAISEwoLYW5vbWFseUNvc3QYCiABKAISGgoSYW5vbWFseVByb2JhYmlsaXR5GAsgASgCIoUBCiRDcmVhdGVEaXNjb3VudEV4cGlyYXRpb25BbGVydFJlcXVlc3QSEwoLZnJlcXVlbmNpZXMYASADKAMSEgoKY29zdEdyb3VwcxgCIAMoCRIUCgxhbGVydEVuYWJsZWQYAyABKAgSEAoIY2hhbm5lbHMYBCADKAkSDAoEbmFtZRgFIAEoCSI2CihNYW5pcHVsYXRlRGlzY291bnRFeHBpcmF0aW9uQWxlcnRSZXF1ZXN0EgoKAmlkGAEgASgJIpEBCiRVcGRhdGVEaXNjb3VudEV4cGlyYXRpb25BbGVydFJlcXVlc3QSCgoCaWQYASABKAkSFAoMYWxlcnRFbmFibGVkGAIgASgIEhAKCGNoYW5uZWxzGAMgAygJEhMKC2ZyZXF1ZW5jaWVzGAQgAygDEhIKCmNvc3RHcm91cHMYBSADKAkSDAoEbmFtZRgGIAEoCSLpAQoXRGlzY291bnRFeHBpcnlBbGVydERhdGESCgoCaWQYASABKAkSDQoFb3JnSWQYAiABKAkSFAoMYWxlcnRFbmFibGVkGAMgASgIEhMKC2ZyZXF1ZW5jaWVzGAQgAygDEjUKCmNvc3RHcm91cHMYBSADKAsyIS5ibHVlYXBpLmFwaS5jb3Zlci5BbGVydENvc3RHcm91cBIPCgdkZXRhaWxzGAYgASgJEjIKCGNoYW5uZWxzGAcgASgLMiAuYmx1ZWFwaS5hcGkuY292ZXIuQWxlcnRDaGFubmVscxIMCgRuYW1lGAggASgJIiQKIkxpc3REaXNjb3VudEV4cGlyYXRpb25BbGVydFJlcXVlc3QihQEKGUNyZWF0ZUFub21hbHlBbGVydFJlcXVlc3QSDAoEbmFtZRgBIAEoCRIUCgxhbGVydEVuYWJsZWQYAiABKAgSEQoJZnJlcXVlbmN5GAMgASgJEhMKC2Nvc3RHcm91cElkGAQgASgJEhwKFG5vdGlmaWNhdGlvbkNoYW5uZWxzGAUgAygJIisKHU1hbmlwdWxhdGVBbm9tYWx5QWxlcnRSZXF1ZXN0EgoKAmlkGAEgASgJItABChBBbm9tYWx5QWxlcnREYXRhEgoKAmlkGAEgASgJEg0KBW9yZ0lkGAIgASgJEgwKBG5hbWUYAyABKAkSFAoMYWxlcnRFbmFibGVkGAQgASgIEhEKCWZyZXF1ZW5jeRgFIAEoCRI2Cgtjb3N0R3JvdXBJZBgGIAEoCzIhLmJsdWVhcGkuYXBpLmNvdmVyLkFsZXJ0Q29zdEdyb3VwEjIKCGNoYW5uZWxzGAcgASgLMiAuYmx1ZWFwaS5hcGkuY292ZXIuQWxlcnRDaGFubmVscyIZChdMaXN0QW5vbWFseUFsZXJ0UmVxdWVzdCKRAQoZVXBkYXRlQW5vbWFseUFsZXJ0UmVxdWVzdBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEhQKDGFsZXJ0RW5hYmxlZBgDIAEoCBIcChRub3RpZmljYXRpb25DaGFubmVscxgEIAMoCRIRCglmcmVxdWVuY3kYBSABKAkSEwoLY29zdEdyb3VwSWQYBiABKAkiiQEKFlJlZ2lzdGVyTmV3VXNlclJlcXVlc3QSDQoFZW1haWwYASABKAkSEAoIcGFzc3dvcmQYAiABKAkSDAoEbmFtZRgDIAEoCRIPCgdjb21wYW55GAQgASgJEgwKBHJvbGUYBSABKAkSDgoGYW1vdW50GAYgASgJEhEKCWludGVudGlvbhgHIAEoCSIvChdSZWdpc3Rlck5ld1VzZXJSZXNwb25zZRIUCgxpc0F1dGhvcml6ZWQYASABKAgiJgoVR2V0VXNlclByb2ZpbGVSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJIs4BChZHZXRVc2VyUHJvZmlsZVJlc3BvbnNlEhkKEWhhc0NyZWF0ZWRQcm9maWxlGAEgASgIEgwKBG5hbWUYAiABKAkSDAoEcm9sZRgDIAEoCRINCgV1c2FnZRgEIAEoCRIRCglpbnRlbnRpb24YBSABKAkSEwoLY29tcGFueU5hbWUYBiABKAkSFAoMZW1haWxBZGRyZXNzGAcgASgJEhIKCmxpbmtTb3VyY2UYCCABKAkSHAoUaGFzU3Vic2NyaWJlZFVwZGF0ZXMYCSABKAgirgEKGFVwZGF0ZVVzZXJQcm9maWxlUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBHJvbGUYAyABKAkSDQoFdXNhZ2UYBCABKAkSEQoJaW50ZW50aW9uGAUgASgJEhMKC2NvbXBhbnlOYW1lGAYgASgJEhIKCmxpbmtTb3VyY2UYByABKAkSHAoUaGFzU3Vic2NyaWJlZFVwZGF0ZXMYCCABKAgirwEKGVVwZGF0ZVVzZXJQcm9maWxlUmVzcG9uc2USDQoFZW1haWwYASABKAkSDAoEbmFtZRgCIAEoCRIMCgRyb2xlGAMgASgJEg0KBXVzYWdlGAQgASgJEhEKCWludGVudGlvbhgFIAEoCRITCgtjb21wYW55TmFtZRgGIAEoCRISCgpsaW5rU291cmNlGAcgASgJEhwKFGhhc1N1YnNjcmliZWRVcGRhdGVzGAggASgIIkgKEkxpc3RCdWRnZXRzUmVxdWVzdBIfChdpbmNsdWRlU3BlbmRBbmRGb3JlY2FzdBgBIAEoCBIRCgljb3N0R3JvdXAYAiABKAkiSAoTTGlzdEJ1ZGdldHNSZXNwb25zZRIxCgpidWRnZXREYXRhGAEgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuQnVkZ2V0RGF0YSIeChBHZXRCdWRnZXRSZXF1ZXN0EgoKAmlkGAEgASgJIkYKEUdldEJ1ZGdldFJlc3BvbnNlEjEKCmJ1ZGdldERhdGEYASABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5CdWRnZXREYXRhIkgKE0NyZWF0ZUJ1ZGdldFJlcXVlc3QSMQoKYnVkZ2V0RGF0YRgBIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkJ1ZGdldERhdGEiSQoUQ3JlYXRlQnVkZ2V0UmVzcG9uc2USMQoKYnVkZ2V0RGF0YRgBIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkJ1ZGdldERhdGEiIQoTRGVsZXRlQnVkZ2V0UmVxdWVzdBIKCgJpZBgBIAEoCSIiChREZWxldGVCdWRnZXRSZXNwb25zZRIKCgJpZBgBIAEoCSJUChNVcGRhdGVCdWRnZXRSZXF1ZXN0EgoKAmlkGAEgASgJEjEKCmJ1ZGdldERhdGEYAiABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5CdWRnZXREYXRhIkkKFFVwZGF0ZUJ1ZGdldFJlc3BvbnNlEjEKCmJ1ZGdldERhdGEYASABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5CdWRnZXREYXRhIksKLlJlc29sdmVBV1NNYXJrZXRwbGFjZVRva2VuRm9yT25ib2FyZGluZ1JlcXVlc3QSGQoRcmVnaXN0cmF0aW9uVG9rZW4YASABKAkiYQovUmVzb2x2ZUFXU01hcmtldHBsYWNlVG9rZW5Gb3JPbmJvYXJkaW5nUmVzcG9uc2USGgoSaXNBbGxvd2VkVG9PbmJvYXJkGAEgASgIEhIKCmN1c3RvbWVySWQYAiABKAkiJgokR2V0Q3VzdG9tZXJTdWJzY3JpcHRpb25TdGF0dXNSZXF1ZXN0IvIBCiVHZXRDdXN0b21lclN1YnNjcmlwdGlvblN0YXR1c1Jlc3BvbnNlEhYKDmRhdGVSZWdpc3RlcmVkGAEgASgJEhoKEnN1YnNjcmlwdGlvbkV4cGlyeRgCIAEoCRIQCghkYXlzTGVmdBgDIAEoBRIUCgxpc1N1YnNjcmliZWQYBCABKAgSEQoJaXNFeHBpcmVkGAUgASgIEgwKBHBsYW4YBiABKAkSDgoGYW1vdW50GAcgASgJEhUKDXBheW1lbnRPcHRpb24YCCABKAkSFQoNcGF5bWVudE1ldGhvZBgJIAEoCRIOCgZjcmVkaXQYCiABKAEiswEKFkNyZWF0ZVByb2ZpbGluZ1JlcXVlc3QSDAoEbmFtZRgBIAEoCRIMCgRyb2xlGAIgASgJEg0KBXVzYWdlGAMgASgJEhEKCWludGVudGlvbhgEIAEoCRITCgtjb21wYW55TmFtZRgFIAEoCRIUCgxlbWFpbEFkZHJlc3MYBiABKAkSEgoKbGlua1NvdXJjZRgHIAEoCRIcChRoYXNTdWJzY3JpYmVkVXBkYXRlcxgIIAEoCCIZChdDcmVhdGVQcm9maWxpbmdSZXNwb25zZSI5ChtBZGRJbmZvdG9NYXJrZXRwbGFjZVJlcXVlc3QSGgoSY3VzdG9tZXJJZGVudGlmaWVyGAEgASgJIh4KHEFkZEluZm90b01hcmtldHBsYWNlUmVzcG9uc2UieAoXR2V0UmVwb3J0U3VtbWFyeVJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSEQoJc3RhcnREYXRlGAIgASgJEg8KB2VuZERhdGUYAyABKAkSEgoKcmVwb3J0VHlwZRgEIAEoCRIQCghjdXJyZW5jeRgFIAEoCSKuAgoYR2V0UmVwb3J0U3VtbWFyeVJlc3BvbnNlEhMKC2Nvc3RHcm91cElkGAEgASgJEhEKCXN0YXJ0RGF0ZRgCIAEoCRIPCgdlbmREYXRlGAMgASgJEj0KEGV4ZWN1dGl2ZVN1bW1hcnkYBCABKAsyIy5ibHVlYXBpLmFwaS5jb3Zlci5FeGVjdXRpdmVTdW1tYXJ5El8KIW9wdGltaXphdGlvblJlY29tbWVuZGF0aW9uU3VtbWFyeRgFIAEoCzI0LmJsdWVhcGkuYXBpLmNvdmVyLk9wdGltaXphdGlvblJlY29tbWVuZGF0aW9uU3VtbWFyeRI5Cg5zYXZpbmdzU3VtbWFyeRgGIAEoCzIhLmJsdWVhcGkuYXBpLmNvdmVyLlNhdmluZ3NTdW1tYXJ5IqoCChlMaXN0UmVjb21tZW5kYXRpb25SZXF1ZXN0EhMKC2Nvc3Rncm91cElkGAEgASgJEhYKDmRhdGVSYW5nZVN0YXJ0GAIgASgJEhQKDGRhdGVSYW5nZUVuZBgDIAEoCRIOCgZ2ZW5kb3IYBCABKAkSDgoGc291cmNlGAUgASgJEhoKEm9wdGltaXphdGlvblN0YXR1cxgHIAEoCRIMCgR0eXBlGAggASgJEg4KBnNwVHlwZRgJIAEoCRIRCglyYXRlTW9kZWwYCiABKAkSFQoNcGF5bWVudE9wdGlvbhgLIAEoCRIMCgR0ZXJtGAwgASgJEg8KB3NlcnZpY2UYDSABKAkSFQoNb2ZmZXJpbmdDbGFzcxgOIAEoCRIQCghjdXJyZW5jeRgPIAEoCSLVAgobTGlzdFJlY29tbWVuZGF0aW9uVjJSZXF1ZXN0EhMKC2Nvc3Rncm91cElkGAEgASgJEhYKDmRhdGVSYW5nZVN0YXJ0GAIgASgJEhQKDGRhdGVSYW5nZUVuZBgDIAEoCRJQCgxyYXRlU2V0dGluZ3MYBCABKAsyOi5ibHVlYXBpLmNvdmVyLnYxLkxpc3RSZWNvbW1lbmRhdGlvblYyUmVxdWVzdC5SYXRlU2V0dGluZ3MSEAoIY3VycmVuY3kYBSABKAkajgEKDFJhdGVTZXR0aW5ncxIOCgZzcFR5cGUYASABKAkSEQoJcmF0ZU1vZGVsGAIgASgJEhUKDXBheW1lbnRPcHRpb24YAyABKAkSDAoEdGVybRgEIAEoCRIPCgdzZXJ2aWNlGAUgASgJEhUKDW9mZmVyaW5nQ2xhc3MYBiABKAkSDgoGdmVuZG9yGAcgASgJItoGChpMaXN0UmVjb21tZW5kYXRpb25SZXNwb25zZRIYChByZWNvbW1lbmRhdGlvbklkGAEgASgJEhYKDnJlY29tbWVuZGF0aW9uGAIgASgJEg8KB3NlcnZpY2UYAyABKAkSHgoWZXN0aW1hdGVkTW9udGhseVNhdmluZxgEIAEoARIcChRlc3RpbWF0ZWRNb250aGx5Q29zdBgFIAEoARIPCgdzY29yaW5nGAYgASgJEg4KBnZlbmRvchgHIAEoCRIQCghjYXRlZ29yeRgIIAEoCRIaChJvcHRpbWl6YXRpb25TdGF0dXMYCSABKAkSFAoMZXJyb3JNZXNzYWdlGAogASgJEhEKCWFjY291bnRJZBgLIAEoCRITCgthY2NvdW50TmFtZRgMIAEoCRIUCgxpbnN0YW5jZU5hbWUYDSABKAkSEgoKaW5zdGFuY2VJZBgOIAEoCRIUCgxpbnN0YW5jZVR5cGUYDyABKAkSDgoGcmVnaW9uGBAgASgJEhIKCmNvbW1pdG1lbnQYESABKAESDgoGc3BUeXBlGBIgASgJEhgKEG51bWJlclRvUHVyY2hhc2UYEyABKAMSDgoGcmlUeXBlGBQgASgJEgwKBHR5cGUYFSABKAkSDgoGc291cmNlGBYgASgJEhcKD2RhdGVSZWNvbW1lbmRlZBgXIAEoCRIbChNyZWNvbW1lbmRhdGlvbkdyb3VwGBggASgJEhUKDWxhc3RVcGRhdGVkQXQYGSABKAkSUwoOcHVyY2hhc2VPcHRpb24YGiABKAsyOy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RSZWNvbW1lbmRhdGlvblJlc3BvbnNlLlB1cmNoYXNlT3B0aW9uGs8BCg5QdXJjaGFzZU9wdGlvbhIOCgZzcFR5cGUYASABKAkSFQoNb2ZmZXJpbmdDbGFzcxgCIAEoCRISCgpjb21taXRtZW50GAMgASgBEhgKEG51bWJlclRvUHVyY2hhc2UYBCABKAMSFQoNcGF5bWVudE9wdGlvbhgFIAEoCRIMCgR0ZXJtGAYgASgJEhkKEWN1cnJlbnRHZW5lcmF0aW9uGAcgASgIEhMKC3NlcnZpY2VUeXBlGAggASgJEhMKC3VwZnJvbnRDb3N0GAkgASgBIlEKGEdldFJlY29tbWVuZGF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCRITCgtjb3N0R3JvdXBJZBgCIAEoCRIUCgxwZXJpb2RPcHRpb24YAyABKAkiXgoZR2V0UmVjb21tZW5kYXRpb25SZXNwb25zZRJBChJyZWNvbW1lbmRhdGlvbkRhdGEYASABKAsyJS5ibHVlYXBpLmFwaS5jb3Zlci5BV1NSZWNvbW1lbmRhdGlvbnMiRAoaRXhlY3V0ZU9wdGltaXphdGlvblJlcXVlc3QSGAoQcmVjb21tZW5kYXRpb25JZBgBIAEoCRIMCgR0eXBlGAIgASgJIpQDChtFeGVjdXRlT3B0aW1pemF0aW9uUmVzcG9uc2USTAoJYXdzT3B0aW9uGAEgASgLMjcuYmx1ZWFwaS5jb3Zlci52MS5FeGVjdXRlT3B0aW1pemF0aW9uUmVzcG9uc2UuQVdTT3B0aW9uSAASTAoJZ2NwT3B0aW9uGAIgASgLMjcuYmx1ZWFwaS5jb3Zlci52MS5FeGVjdXRlT3B0aW1pemF0aW9uUmVzcG9uc2UuR0NQT3B0aW9uSAASVgoOYXp1cmVDc3BPcHRpb24YAyABKAsyPC5ibHVlYXBpLmNvdmVyLnYxLkV4ZWN1dGVPcHRpbWl6YXRpb25SZXNwb25zZS5BenVyZUNTUE9wdGlvbkgAGlgKCUFXU09wdGlvbhIaChJhcHByb3ZlVGVtcGxhdGVVcmwYASABKAkSGAoQcmVjb21tZW5kYXRpb25JZBgCIAEoCRIVCg1jdXJyZW50U3RhdHVzGAMgASgJGgsKCUdDUE9wdGlvbhoQCg5BenVyZUNTUE9wdGlvbkIICgZWZW5kb3IiIwoVTWFya0FzRXhlY3V0ZWRSZXF1ZXN0EgoKAmlkGAEgAygJIhgKFk1hcmtBc0V4ZWN1dGVkUmVzcG9uc2UiLwohVW5kb0V4ZWN1dGVkUmVjb21tZW5kYXRpb25SZXF1ZXN0EgoKAmlkGAEgAygJIiQKIlVuZG9FeGVjdXRlZFJlY29tbWVuZGF0aW9uUmVzcG9uc2UipwEKGk9wdGltaXphdGlvbkhpc3RvcnlSZXF1ZXN0EhMKC2Nvc3Rncm91cElkGAEgASgJEhYKDmRhdGVSYW5nZVN0YXJ0GAIgASgJEhQKDGRhdGVSYW5nZUVuZBgDIAEoCRIOCgZ2ZW5kb3IYBCABKAkSDgoGc291cmNlGAUgASgJEhQKDHBlcmlvZE9wdGlvbhgGIAEoCRIQCghjdXJyZW5jeRgHIAEoCSJ2ChtPcHRpbWl6YXRpb25IaXN0b3J5UmVzcG9uc2USVwodZXhlY3V0ZWRSZWNvbW1lbmRhdGlvbkRldGFpbHMYAiADKAsyMC5ibHVlYXBpLmFwaS5jb3Zlci5FeGVjdXRlZFJlY29tbWVuZGF0aW9uRGV0YWlscyJgCiFTZXRDb3N0R3JvdXBFdmVudEluZGljYXRvclJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSDwoHYW5vbWFseRgCIAEoCBIVCg12aXN1YWxCdWlsZGVyGAMgASgIInQKIlNldENvc3RHcm91cEV2ZW50SW5kaWNhdG9yUmVzcG9uc2USEwoLY29zdEdyb3VwSWQYASABKAkSOQoOZXZlbnRJbmRpY2F0b3IYAiABKAsyIS5ibHVlYXBpLmFwaS5jb3Zlci5FdmVudEluZGljYXRvciJ7CiFTZXRDb3N0R3JvdXBBbm9tYWx5T3B0aW9uc1JlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSEQoJdGhyZXNob2xkGAIgASgCEhQKDGlzUGVyY2VudGFnZRgDIAEoCBIYChBwYXN0RGF0YUluTW9udGhzGAQgASgDInQKIlNldENvc3RHcm91cEFub21hbHlPcHRpb25zUmVzcG9uc2USEwoLY29zdEdyb3VwSWQYASABKAkSOQoOYW5vbWFseU9wdGlvbnMYAiABKAsyIS5ibHVlYXBpLmFwaS5jb3Zlci5Bbm9tYWx5T3B0aW9ucyIvChhTZXRPcmdGaXNjYWxNb250aFJlcXVlc3QSEwoLZmlzY2FsTW9udGgYASABKAkiMAoZU2V0T3JnRmlzY2FsTW9udGhSZXNwb25zZRITCgtmaXNjYWxNb250aBgBIAEoCSIaChhHZXRPcmdGaXNjYWxNb250aFJlcXVlc3QiSAoZR2V0T3JnRmlzY2FsTW9udGhSZXNwb25zZRITCgtmaXNjYWxNb250aBgBIAEoCRIWCg5kYXRlUmVnaXN0ZXJlZBgCIAEoCSJbChtUcmFuc2Zlck9yZ2FuaXphdGlvblJlcXVlc3QSDgoGdGFyZ2V0GAEgASgJEg4KBnJlZ2lvbhgCIAEoCRINCgVwYXllchgDIAEoCRINCgVvcmdJZBgEIAEoCSIuChxUcmFuc2Zlck9yZ2FuaXphdGlvblJlc3BvbnNlEg4KBnRhcmdldBgBIAEoCSJFCiBVcGRhdGVDb3N0R3JvdXBDcmVhdGlvblVJUmVxdWVzdBIhChl1c2VOZXdDb3N0R3JvdXBDcmVhdGlvblVJGAEgASgIIlIKIVVwZGF0ZUNvc3RHcm91cENyZWF0aW9uVUlSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIhYKFExpc3RVbml0VHlwZXNSZXF1ZXN0Ik4KFUxpc3RVbml0VHlwZXNSZXNwb25zZRI1Cgx1bml0Q29zdERhdGEYASADKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0Q29zdERhdGEitgEKFUNyZWF0ZVVuaXRUeXBlUmVxdWVzdBIQCgh1bml0TmFtZRgBIAEoCRIuCgl1bml0SXRlbXMYAiADKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0SXRlbRJGCg9zaGFyZWRSZXNvdXJjZXMYAyADKAsyLS5ibHVlYXBpLmFwaS5jb3Zlci5TaGFyZWRSZXNvdXJjZXNDb21iaW5hdGlvbhITCgtkZXNjcmlwdGlvbhgEIAEoCSJPChZDcmVhdGVVbml0VHlwZVJlc3BvbnNlEjUKDHVuaXRDb3N0RGF0YRgBIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRDb3N0RGF0YSIgChJHZXRVbml0VHlwZVJlcXVlc3QSCgoCaWQYASABKAkiTAoTR2V0VW5pdFR5cGVSZXNwb25zZRI1Cgx1bml0Q29zdERhdGEYASABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0Q29zdERhdGEiwgEKFVVwZGF0ZVVuaXRUeXBlUmVxdWVzdBIKCgJpZBgBIAEoCRIQCgh1bml0TmFtZRgCIAEoCRIuCgl1bml0SXRlbXMYAyADKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0SXRlbRJGCg9zaGFyZWRSZXNvdXJjZXMYBCADKAsyLS5ibHVlYXBpLmFwaS5jb3Zlci5TaGFyZWRSZXNvdXJjZXNDb21iaW5hdGlvbhITCgtkZXNjcmlwdGlvbhgFIAEoCSJPChZVcGRhdGVVbml0VHlwZVJlc3BvbnNlEjUKDHVuaXRDb3N0RGF0YRgBIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRDb3N0RGF0YSIjChVEZWxldGVVbml0VHlwZVJlcXVlc3QSCgoCaWQYASABKAkiJAoWRGVsZXRlVW5pdFR5cGVSZXNwb25zZRIKCgJpZBgBIAEoCSJPChFNZXJnZVVuaXRzUmVxdWVzdBITCgt1bml0Q29zdElkcxgBIAMoCRIQCgh1bml0TmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCSJNChJNZXJnZVVuaXRzUmVzcG9uc2USNwoObWVyZ2VkVW5pdENvc3QYASABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0Q29zdERhdGEiGwoZTGlzdFN1Z2dlc3RlZFVuaXRzUmVxdWVzdCJWChpMaXN0U3VnZ2VzdGVkVW5pdHNSZXNwb25zZRI4Cg5zdWdnZXN0ZWRVbml0cxgBIAMoCzIgLmJsdWVhcGkuYXBpLmNvdmVyLlN1Z2dlc3RlZFVuaXQicgoaTWVyZ2VTdWdnZXN0ZWRVbml0c1JlcXVlc3QSGAoQc3VnZ2VzdGVkVW5pdElkcxgBIAMoCRITCgt1bml0SXRlbUlkcxgCIAMoCRIQCgh1bml0TmFtZRgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCSJdChtNZXJnZVN1Z2dlc3RlZFVuaXRzUmVzcG9uc2USPgoUbWVyZ2VkU3VnZ2VzdGVkVW5pdHMYASABKAsyIC5ibHVlYXBpLmFwaS5jb3Zlci5TdWdnZXN0ZWRVbml0IjoKHkNyZWF0ZVVuaXRGcm9tU3VnZ2VzdGVkUmVxdWVzdBIYChBzdWdnZXN0ZWRVbml0SWRzGAEgAygJIjYKH0NyZWF0ZVVuaXRGcm9tU3VnZ2VzdGVkUmVzcG9uc2USEwoLdW5pdENvc3RJZHMYASADKAkiHAoaTGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3QiZQobTGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlEkYKD3NoYXJlZFJlc291cmNlcxgBIAMoCzItLmJsdWVhcGkuYXBpLmNvdmVyLlNoYXJlZFJlc291cmNlc0NvbWJpbmF0aW9uItMCChxDcmVhdGVTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0EhoKEnNoYXJlZFJlc291cmNlTmFtZRgBIAEoCRJNChtzaGFyZWRSZXNvdXJjZXNDb21iaW5hdGlvbnMYAiABKAsyKC5ibHVlYXBpLmFwaS5jb3Zlci5SZXNvdXJjZXNDb21iaW5hdGlvbnMSVgoMZGlzdHJpYnV0aW9uGAMgAygLMkAuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0LkRpc3RyaWJ1dGlvbkVudHJ5EhEKCWFsbG9jYXRlZBgEIAEoARITCgt1bmFsbG9jYXRlZBgFIAEoARITCgtkZXNjcmlwdGlvbhgGIAEoCRozChFEaXN0cmlidXRpb25FbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAE6AjgBImcKHUNyZWF0ZVNoYXJlZFJlc291cmNlc1Jlc3BvbnNlEkYKD3NoYXJlZFJlc291cmNlcxgBIAEoCzItLmJsdWVhcGkuYXBpLmNvdmVyLlNoYXJlZFJlc291cmNlc0NvbWJpbmF0aW9uIicKGUdldFNoYXJlZFJlc291cmNlc1JlcXVlc3QSCgoCaWQYASABKAkiZAoaR2V0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2USRgoPc2hhcmVkUmVzb3VyY2VzGAEgASgLMi0uYmx1ZWFwaS5hcGkuY292ZXIuU2hhcmVkUmVzb3VyY2VzQ29tYmluYXRpb24i3wIKHFVwZGF0ZVNoYXJlZFJlc291cmNlc1JlcXVlc3QSCgoCaWQYASABKAkSGgoSc2hhcmVkUmVzb3VyY2VOYW1lGAIgASgJEk0KG3NoYXJlZFJlc291cmNlc0NvbWJpbmF0aW9ucxgDIAEoCzIoLmJsdWVhcGkuYXBpLmNvdmVyLlJlc291cmNlc0NvbWJpbmF0aW9ucxJWCgxkaXN0cmlidXRpb24YBCADKAsyQC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVNoYXJlZFJlc291cmNlc1JlcXVlc3QuRGlzdHJpYnV0aW9uRW50cnkSEQoJYWxsb2NhdGVkGAUgASgBEhMKC3VuYWxsb2NhdGVkGAYgASgBEhMKC2Rlc2NyaXB0aW9uGAcgASgJGjMKEURpc3RyaWJ1dGlvbkVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoAToCOAEiZwodVXBkYXRlU2hhcmVkUmVzb3VyY2VzUmVzcG9uc2USRgoPc2hhcmVkUmVzb3VyY2VzGAEgASgLMi0uYmx1ZWFwaS5hcGkuY292ZXIuU2hhcmVkUmVzb3VyY2VzQ29tYmluYXRpb24iKgocRGVsZXRlU2hhcmVkUmVzb3VyY2VzUmVxdWVzdBIKCgJpZBgBIAEoCSIrCh1EZWxldGVTaGFyZWRSZXNvdXJjZXNSZXNwb25zZRIKCgJpZBgBIAEoCSJXChZMaXN0VW5pdE1ldHJpY3NSZXF1ZXN0EhkKEWFnZ3JlZ2F0aW9uTWV0aG9kGAEgASgJEhIKCmRhdGFTb3VyY2UYAiABKAkSDgoGc3RhdHVzGAMgASgJIk0KF0xpc3RVbml0TWV0cmljc1Jlc3BvbnNlEjIKC3VuaXRNZXRyaWNzGAEgAygLMh0uYmx1ZWFwaS5hcGkuY292ZXIuVW5pdE1ldHJpYyK5AQoXQ3JlYXRlVW5pdE1ldHJpY1JlcXVlc3QSEgoKbWV0cmljTmFtZRgBIAEoCRIZChFhZ2dyZWdhdGlvbk1ldGhvZBgCIAEoCRISCgpkYXRhU291cmNlGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEhMKC2Nvc3Rncm91cElkGAUgAygJEjEKCnNvdXJjZUluZm8YBiABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5Tb3VyY2VJbmZvIk0KGENyZWF0ZVVuaXRNZXRyaWNSZXNwb25zZRIxCgp1bml0TWV0cmljGAEgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuVW5pdE1ldHJpYyIiChRHZXRVbml0TWV0cmljUmVxdWVzdBIKCgJpZBgBIAEoCSJKChVHZXRVbml0TWV0cmljUmVzcG9uc2USMQoKdW5pdE1ldHJpYxgBIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRNZXRyaWMixQEKF1VwZGF0ZVVuaXRNZXRyaWNSZXF1ZXN0EgoKAmlkGAEgASgJEhIKCm1ldHJpY05hbWUYAiABKAkSGQoRYWdncmVnYXRpb25NZXRob2QYAyABKAkSEgoKZGF0YVNvdXJjZRgEIAEoCRITCgtkZXNjcmlwdGlvbhgFIAEoCRITCgtjb3N0Z3JvdXBJZBgGIAMoCRIxCgpzb3VyY2VJbmZvGAcgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuU291cmNlSW5mbyJNChhVcGRhdGVVbml0TWV0cmljUmVzcG9uc2USMQoKdW5pdE1ldHJpYxgBIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRNZXRyaWMiJQoXRGVsZXRlVW5pdE1ldHJpY1JlcXVlc3QSCgoCaWQYASABKAkiJgoYRGVsZXRlVW5pdE1ldHJpY1Jlc3BvbnNlEgoKAmlkGAEgASgJImYKGVByZXZpZXdHb29nbGVTaGVldFJlcXVlc3QSFQoNZ29vZ2xlU2hlZXRJZBgBIAEoCRIQCghzaGVldFVybBgCIAEoCRIRCglzaGVldE5hbWUYAyABKAkSDQoFcmFuZ2UYBCABKAkiWQoaUHJldmlld0dvb2dsZVNoZWV0UmVzcG9uc2USDgoGaGVhZGVyGAEgAygJEisKB3Jvd0RhdGEYAiADKAsyGi5ibHVlYXBpLmFwaS5jb3Zlci5Sb3dEYXRhIjMKH0NvbmZpcm1Hb29nbGVTaGVldEFjY2Vzc1JlcXVlc3QSEAoIc2hlZXRVcmwYASABKAkiTQogQ29uZmlybUdvb2dsZVNoZWV0QWNjZXNzUmVzcG9uc2USFQoNZ29vZ2xlU2hlZXRJZBgBIAEoCRISCgpzaGVldE5hbWVzGAIgAygJInYKHEdldENsb3Vkd2F0Y2hNZXRhZGF0YVJlcXVlc3QSEQoJYWNjb3VudElkGAEgASgJEg4KBnJlZ2lvbhgCIAEoCRIMCgR0eXBlGAMgASgJEhEKCW5hbWVzcGFjZRgEIAEoCRISCgptZXRyaWNOYW1lGAUgASgJIr4BCh1HZXRDbG91ZHdhdGNoTWV0YWRhdGFSZXNwb25zZRISCgpuYW1lc3BhY2VzGAEgAygJEg8KB21ldHJpY3MYAiADKAkSTQoKZGltZW5zaW9ucxgDIAMoCzI5LmJsdWVhcGkuY292ZXIudjEuR2V0Q2xvdWR3YXRjaE1ldGFkYXRhUmVzcG9uc2UuRGltZW5zaW9uGikKCURpbWVuc2lvbhIMCgRuYW1lGAEgASgJEg4KBnZhbHVlcxgCIAMoCSKBAgoWR2V0RGlzY291bnRQbGFuUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFb3JnSWQYAiABKAkSGAoQcmVkdWN0aW9uRGlzcGxheRgDIAEoCRIWCg5pbmNsdWRlRGV0YWlscxgEIAEoCBIQCghmcm9tRGF0ZRgFIAEoCRIOCgZ0b0RhdGUYBiABKAkSDwoHcGF5ZXJJZBgHIAEoCRIZChFiaWxsaW5nSW50ZXJuYWxJZBgIIAEoCRIPCgdncm91cElkGAkgASgJEhMKC2Nvc3RHcm91cElkGAogASgJEhAKCGFjY291bnRzGAsgAygJEhAKCHNlcnZpY2VzGAwgAygJImcKF0dldERpc2NvdW50UGxhblJlc3BvbnNlEg0KBW9yZ0lkGAEgASgJEj0KEGF3c0Rpc2NvdW50UGxhbnMYAiABKAsyIy5ibHVlYXBpLmFwaS5jb3Zlci5Bd3NEaXNjb3VudFBsYW5zInMKHExpc3ROb25wZXJmb3JtaW5nUmF0ZVJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJEhAKCGZyb21EYXRlGAMgASgJEg4KBnRvRGF0ZRgEIAEoCRIMCgR0eXBlGAUgASgJIskBCh1MaXN0Tm9ucGVyZm9ybWluZ1JhdGVSZXNwb25zZRJUCg1ub25wZXJmb3JtaW5nGAEgAygLMj0uYmx1ZWFwaS5jb3Zlci52MS5MaXN0Tm9ucGVyZm9ybWluZ1JhdGVSZXNwb25zZS5Ob25wZXJmb3JtaW5nGlIKDU5vbnBlcmZvcm1pbmcSDAoEdHlwZRgBIAEoCRIPCgdhY2NvdW50GAIgASgJEhMKC3V0aWxpemF0aW9uGAMgASgBEg0KBXdhc3RlGAQgASgBInQKHExpc3RVbnRhZ2dlZFJlc291cmNlc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJEhAKCGZyb21EYXRlGAMgASgJEg4KBnRvRGF0ZRgEIAEoCRINCgVsaW1pdBgFIAEoAyL5AQodTGlzdFVudGFnZ2VkUmVzb3VyY2VzUmVzcG9uc2USXAoRdW50YWdnZWRSZXNvdXJjZXMYASADKAsyQS5ibHVlYXBpLmNvdmVyLnYxLkxpc3RVbnRhZ2dlZFJlc291cmNlc1Jlc3BvbnNlLlVudGFnZ2VkUmVzb3VyY2VzGnoKEVVudGFnZ2VkUmVzb3VyY2VzEhAKCHJlc291cmNlGAEgASgJEg8KB3NlcnZpY2UYAiABKAkSEQoJYWNjb3VudElkGAMgASgJEhEKCWNvc3RHcm91cBgEIAEoCRIMCgRjb3N0GAUgASgBEg4KBnZlbmRvchgGIAEoCSo/CgZTdGF0dXMSCwoHUEVORElORxAAEg8KC0lOX1BST0dSRVNTEAESCwoHU1VDQ0VTUxACEgoKBkZBSUxFRBADMv7dAQoFQ292ZXISdwoKT25ib2FyZE9yZxIjLmJsdWVhcGkuY292ZXIudjEuT25ib2FyZE9yZ1JlcXVlc3QaJC5ibHVlYXBpLmNvdmVyLnYxLk9uYm9hcmRPcmdSZXNwb25zZSIegtPkkwIYOgEqIhMvdjEvbWVtYmVycy9vbmJvYXJkEnwKDEludml0ZU1lbWJlchIlLmJsdWVhcGkuY292ZXIudjEuSW52aXRlTWVtYmVyUmVxdWVzdBomLmJsdWVhcGkuY292ZXIudjEuSW52aXRlTWVtYmVyUmVzcG9uc2UiHYLT5JMCFzoBKiISL3YxL21lbWJlcnMvaW52aXRlEn4KDEFjdGl2YXRlVXNlchIlLmJsdWVhcGkuY292ZXIudjEuQWN0aXZhdGVVc2VyUmVxdWVzdBomLmJsdWVhcGkuY292ZXIudjEuQWN0aXZhdGVVc2VyUmVzcG9uc2UiH4LT5JMCGToBKiIUL3YxL21lbWJlcnMvYWN0aXZhdGUSdQoMQ3JlYXRlTWVtYmVyEiUuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVNZW1iZXJSZXF1ZXN0GiYuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVNZW1iZXJSZXNwb25zZSIWgtPkkwIQOgEqIgsvdjEvbWVtYmVycxJsCgpHZXRNZW1iZXJzEiMuYmx1ZWFwaS5jb3Zlci52MS5HZXRNZW1iZXJzUmVxdWVzdBokLmJsdWVhcGkuY292ZXIudjEuR2V0TWVtYmVyc1Jlc3BvbnNlIhOC0+STAg0SCy92MS9tZW1iZXJzEocBChBHZXRNZW1iZXJEZXRhaWxzEikuYmx1ZWFwaS5jb3Zlci52MS5HZXRNZW1iZXJEZXRhaWxzUmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuR2V0TWVtYmVyRGV0YWlsc1Jlc3BvbnNlIhyC0+STAhYSFC92MS9tZW1iZXJzL3t1c2VySWR9EpcBChJHZXRNZW1iZXJDb3N0R3JvdXASKy5ibHVlYXBpLmNvdmVyLnYxLkdldE1lbWJlckNvc3RHcm91cFJlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLkdldE1lbWJlckNvc3RHcm91cFJlc3BvbnNlIiaC0+STAiASHi92MS9tZW1iZXJzL3t1c2VySWR9L2Nvc3Rncm91cBKkAQoWVXBkYXRlTWVtYmVyUGVybWlzc2lvbhIvLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlTWVtYmVyUGVybWlzc2lvblJlcXVlc3QaMC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZU1lbWJlclBlcm1pc3Npb25SZXNwb25zZSIngtPkkwIhOgEqGhwvdjEvbWVtYmVycy97dXNlcklkfS9pc2FkbWluEnMKDkdldFVzZXJEZXRhaWxzEicuYmx1ZWFwaS5jb3Zlci52MS5HZXRVc2VyRGV0YWlsc1JlcXVlc3QaKC5ibHVlYXBpLmNvdmVyLnYxLkdldFVzZXJEZXRhaWxzUmVzcG9uc2UiDoLT5JMCCBIGL3YxL21lEoMBChBVcGRhdGVVc2VyQXZhdGFyEikuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyQXZhdGFyUmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckF2YXRhclJlc3BvbnNlIhiC0+STAhI6ASoaDS92MS9tZS9hdmF0YXISewoOVXBkYXRlVXNlckljb24SJy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJJY29uUmVxdWVzdBooLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckljb25SZXNwb25zZSIWgtPkkwIQOgEqGgsvdjEvbWUvaWNvbhKTAQoUVXBkYXRlVXNlckNvbG9yVGhlbWUSLS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJDb2xvclRoZW1lUmVxdWVzdBouLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckNvbG9yVGhlbWVSZXNwb25zZSIcgtPkkwIWOgEqGhEvdjEvbWUvY29sb3J0aGVtZRJ7Cg5VcGRhdGVVc2VyTmFtZRInLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlck5hbWVSZXF1ZXN0GiguYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyTmFtZVJlc3BvbnNlIhaC0+STAhA6ASoaCy92MS9tZS9uYW1lEn8KD1VwZGF0ZVVzZXJFbWFpbBIoLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckVtYWlsUmVxdWVzdBopLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckVtYWlsUmVzcG9uc2UiF4LT5JMCEToBKhoML3YxL21lL2VtYWlsEosBChJVcGRhdGVVc2VyTWFpblZpZXcSKy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJNYWluVmlld1JlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJNYWluVmlld1Jlc3BvbnNlIhqC0+STAhQ6ASoaDy92MS9tZS9tYWludmlldxKIAQoRUmVzZXRVc2VyUGFzc3dvcmQSKi5ibHVlYXBpLmNvdmVyLnYxLlJlc2V0VXNlclBhc3N3b3JkUmVxdWVzdBorLmJsdWVhcGkuY292ZXIudjEuUmVzZXRVc2VyUGFzc3dvcmRSZXNwb25zZSIagtPkkwIUOgEqIg8vdjEvbWUvcGFzc3dvcmQSgwEKEFVwZGF0ZVVzZXJMb2NhbGUSKS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJMb2NhbGVSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyTG9jYWxlUmVzcG9uc2UiGILT5JMCEjoBKhoNL3YxL21lL2xvY2FsZRKLAQoSVXBkYXRlVXNlckFwcFRoZW1lEisuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyQXBwVGhlbWVSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyQXBwVGhlbWVSZXNwb25zZSIagtPkkwIUOgEqGg8vdjEvbWUvYXBwdGhlbWUSiwEKElVwZGF0ZVVzZXJUaW1lem9uZRIrLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlclRpbWV6b25lUmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlclRpbWV6b25lUmVzcG9uc2UiGoLT5JMCFDoBKhoPL3YxL21lL3RpbWV6b25lEpMBChRVcGRhdGVVc2VyQXR0cmlidXRlcxItLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckF0dHJpYnV0ZXNSZXF1ZXN0Gi4uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyQXR0cmlidXRlc1Jlc3BvbnNlIhyC0+STAhY6ASoaES92MS9tZS9hdHRyaWJ1dGVzEnsKDERlbGV0ZU1lbWJlchIlLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlTWVtYmVyUmVxdWVzdBomLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlTWVtYmVyUmVzcG9uc2UiHILT5JMCFioUL3YxL21lbWJlcnMve3VzZXJJZH0ShgEKDVJlc2V0UGFzc3dvcmQSJi5ibHVlYXBpLmNvdmVyLnYxLlJlc2V0UGFzc3dvcmRSZXF1ZXN0GicuYmx1ZWFwaS5jb3Zlci52MS5SZXNldFBhc3N3b3JkUmVzcG9uc2UiJILT5JMCHjoBKiIZL3YxL21lbWJlcnMvcmVzZXRwYXNzd29yZBJtCgpDcmVhdGVWaWV3EiMuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVWaWV3UmVxdWVzdBokLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlVmlld1Jlc3BvbnNlIhSC0+STAg46ASoiCS92MS92aWV3cxJkCghHZXRWaWV3cxIhLmJsdWVhcGkuY292ZXIudjEuR2V0Vmlld3NSZXF1ZXN0GiIuYmx1ZWFwaS5jb3Zlci52MS5HZXRWaWV3c1Jlc3BvbnNlIhGC0+STAgsSCS92MS92aWV3cxJ/Cg5HZXRDdXJyZW50VmlldxInLmJsdWVhcGkuY292ZXIudjEuR2V0Q3VycmVudFZpZXdSZXF1ZXN0GiguYmx1ZWFwaS5jb3Zlci52MS5HZXRDdXJyZW50Vmlld1Jlc3BvbnNlIhqC0+STAhQSEi92MS92aWV3cy97dmlld0lkfRKGAQoQR2V0RmF2b3JpdGVWaWV3cxIpLmJsdWVhcGkuY292ZXIudjEuR2V0RmF2b3JpdGVWaWV3c1JlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLkdldEZhdm9yaXRlVmlld3NSZXNwb25zZSIbgtPkkwIVEhMvdjEvdmlld3MvZmF2b3JpdGVzEngKC1B1Ymxpc2hWaWV3EiQuYmx1ZWFwaS5jb3Zlci52MS5QdWJsaXNoVmlld1JlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLlB1Ymxpc2hWaWV3UmVzcG9uc2UiHILT5JMCFjoBKiIRL3YxL3ZpZXdzL3B1Ymxpc2gSfQoLQWRkRmF2b3JpdGUSJC5ibHVlYXBpLmNvdmVyLnYxLkFkZEZhdm9yaXRlUmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuQWRkRmF2b3JpdGVSZXNwb25zZSIhgtPkkwIbOgEqGhYvdjEvdmlld3MvZmF2b3JpdGUvYWRkEokBCg5SZW1vdmVGYXZvcml0ZRInLmJsdWVhcGkuY292ZXIudjEuUmVtb3ZlRmF2b3JpdGVSZXF1ZXN0GiguYmx1ZWFwaS5jb3Zlci52MS5SZW1vdmVGYXZvcml0ZVJlc3BvbnNlIiSC0+STAh46ASoaGS92MS92aWV3cy9mYXZvcml0ZS9yZW1vdmUSdgoKVXBkYXRlVmlldxIjLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVmlld1JlcXVlc3QaJC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVZpZXdSZXNwb25zZSIdgtPkkwIXOgEqGhIvdjEvdmlld3Mve3ZpZXdJZH0SjwEKEFVwZGF0ZVZpZXdMYXlvdXQSKS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVZpZXdMYXlvdXRSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVWaWV3TGF5b3V0UmVzcG9uc2UiJILT5JMCHjoBKhoZL3YxL3ZpZXdzL2xheW91dC97dmlld0lkfRKaAQoQVXBkYXRlVmlld1dpZGdldBIpLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVmlld1dpZGdldFJlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVZpZXdXaWRnZXRSZXNwb25zZSIvgtPkkwIpOgEqGiQvdjEvdmlld3MvbGF5b3V0L3t2aWV3SWR9L3t3aWRnZXRJZH0SnwEKFFVwZGF0ZVZpZXdDb2xvclRoZW1lEi0uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVWaWV3Q29sb3JUaGVtZVJlcXVlc3QaLi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVZpZXdDb2xvclRoZW1lUmVzcG9uc2UiKILT5JMCIjoBKhodL3YxL3ZpZXdzL3t2aWV3SWR9L2NvbG9ydGhlbWUSlwEKElVwZGF0ZVZpZXdDdXJyZW5jeRIrLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVmlld0N1cnJlbmN5UmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVmlld0N1cnJlbmN5UmVzcG9uc2UiJoLT5JMCIDoBKhobL3YxL3ZpZXdzL3t2aWV3SWR9L2N1cnJlbmN5EpwBChRTZXRPcmdVcGRhdGVDdXJyZW5jeRItLmJsdWVhcGkuY292ZXIudjEuU2V0T3JnVXBkYXRlQ3VycmVuY3lSZXF1ZXN0Gi4uYmx1ZWFwaS5jb3Zlci52MS5TZXRPcmdVcGRhdGVDdXJyZW5jeVJlc3BvbnNlIiWC0+STAh86ASoiGi92MS9vcmdhbml6YXRpb25zL2N1cnJlbmN5EpkBChRHZXRPcmdVcGRhdGVDdXJyZW5jeRItLmJsdWVhcGkuY292ZXIudjEuR2V0T3JnVXBkYXRlQ3VycmVuY3lSZXF1ZXN0Gi4uYmx1ZWFwaS5jb3Zlci52MS5HZXRPcmdVcGRhdGVDdXJyZW5jeVJlc3BvbnNlIiKC0+STAhwSGi92MS9vcmdhbml6YXRpb25zL2N1cnJlbmN5Eo0BChFMaXN0RXhjaGFuZ2VSYXRlcxIqLmJsdWVhcGkuY292ZXIudjEuTGlzdEV4Y2hhbmdlUmF0ZXNSZXF1ZXN0GisuYmx1ZWFwaS5jb3Zlci52MS5MaXN0RXhjaGFuZ2VSYXRlc1Jlc3BvbnNlIh+C0+STAhkSFy92MS9vcmdhbml6YXRpb25zL3JhdGVzEnMKCkRlbGV0ZVZpZXcSIy5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZVZpZXdSZXF1ZXN0GiQuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVWaWV3UmVzcG9uc2UiGoLT5JMCFCoSL3YxL3ZpZXdzL3t2aWV3SWR9Ep8BChNVcGRhdGVTaWRlTWVudVN0YXRlEiwuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVTaWRlTWVudVN0YXRlUmVxdWVzdBotLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlU2lkZU1lbnVTdGF0ZVJlc3BvbnNlIiuC0+STAiU6ASoaIC92MS92aWV3cy97dmlld0lkfS9zaWRlbWVudXN0YXRlEqIBChNBZGRTaWRlTWVudUZhdm9yaXRlEiwuYmx1ZWFwaS5jb3Zlci52MS5BZGRTaWRlTWVudUZhdm9yaXRlUmVxdWVzdBotLmJsdWVhcGkuY292ZXIudjEuQWRkU2lkZU1lbnVGYXZvcml0ZVJlc3BvbnNlIi6C0+STAig6ASoiIy92MS92aWV3cy97dmlld0lkfS9zaWRlbWVudWZhdm9yaXRlEq0BChZSZW1vdmVTaWRlTWVudUZhdm9yaXRlEi8uYmx1ZWFwaS5jb3Zlci52MS5SZW1vdmVTaWRlTWVudUZhdm9yaXRlUmVxdWVzdBowLmJsdWVhcGkuY292ZXIudjEuUmVtb3ZlU2lkZU1lbnVGYXZvcml0ZVJlc3BvbnNlIjCC0+STAio6ASoiJS92MS92aWV3cy97dmlld0lkfS9zaWRlbWVudXVuZmF2b3JpdGUSgQEKD0NyZWF0ZUNvc3RHcm91cBIoLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQ29zdEdyb3VwUmVxdWVzdBopLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQ29zdEdyb3VwUmVzcG9uc2UiGYLT5JMCEzoBKiIOL3YxL2Nvc3Rncm91cHMSeAoNR2V0Q29zdEdyb3VwcxImLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEdyb3Vwc1JlcXVlc3QaJy5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RHcm91cHNSZXNwb25zZSIWgtPkkwIQEg4vdjEvY29zdGdyb3VwcxJ4Cg1HZXRDYXRlZ29yaWVzEiYuYmx1ZWFwaS5jb3Zlci52MS5HZXRDYXRlZ29yaWVzUmVxdWVzdBonLmJsdWVhcGkuY292ZXIudjEuR2V0Q2F0ZWdvcmllc1Jlc3BvbnNlIhaC0+STAhASDi92MS9jYXRlZ29yaWVzEpgBChNHZXRDb3N0R3JvdXBEZXRhaWxzEiwuYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0R3JvdXBEZXRhaWxzUmVxdWVzdBotLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEdyb3VwRGV0YWlsc1Jlc3BvbnNlIiSC0+STAh4SHC92MS9jb3N0Z3JvdXBzL3tjb3N0R3JvdXBJZH0SoAEKE1VwZGF0ZUNvc3RHcm91cE5hbWUSLC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cE5hbWVSZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBOYW1lUmVzcG9uc2UiLILT5JMCJjoBKhohL3YxL2Nvc3Rncm91cHMve2Nvc3RHcm91cElkfS9uYW1lErwBChpVcGRhdGVDb3N0R3JvdXBEZXNjcmlwdGlvbhIzLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwRGVzY3JpcHRpb25SZXF1ZXN0GjQuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBEZXNjcmlwdGlvblJlc3BvbnNlIjOC0+STAi06ASoaKC92MS9jb3N0Z3JvdXBzL3tjb3N0R3JvdXBJZH0vZGVzY3JpcHRpb24SpAEKFFVwZGF0ZUNvc3RHcm91cEltYWdlEi0uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBJbWFnZVJlcXVlc3QaLi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cEltYWdlUmVzcG9uc2UiLYLT5JMCJzoBKhoiL3YxL2Nvc3Rncm91cHMve2Nvc3RHcm91cElkfS9pbWFnZRKgAQoTVXBkYXRlQ29zdEdyb3VwSWNvbhIsLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwSWNvblJlcXVlc3QaLS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cEljb25SZXNwb25zZSIsgtPkkwImOgEqGiEvdjEvY29zdGdyb3Vwcy97Y29zdEdyb3VwSWR9L2ljb24SuAEKGVVwZGF0ZUNvc3RHcm91cENvbG9yVGhlbWUSMi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cENvbG9yVGhlbWVSZXF1ZXN0GjMuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBDb2xvclRoZW1lUmVzcG9uc2UiMoLT5JMCLDoBKhonL3YxL2Nvc3Rncm91cHMve2Nvc3RHcm91cElkfS9jb2xvcnRoZW1lEsABChtVcGRhdGVDb3N0R3JvdXBDb21iaW5hdGlvbnMSNC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cENvbWJpbmF0aW9uc1JlcXVlc3QaNS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cENvbWJpbmF0aW9uc1Jlc3BvbnNlIjSC0+STAi46ASoaKS92MS9jb3N0Z3JvdXBzL3tjb3N0R3JvdXBJZH0vY29tYmluYXRpb25zErsBChxSZXNvbHZlQ29zdEdyb3VwQ29tYmluYXRpb25zEjUuYmx1ZWFwaS5jb3Zlci52MS5SZXNvbHZlQ29zdEdyb3VwQ29tYmluYXRpb25zUmVxdWVzdBo2LmJsdWVhcGkuY292ZXIudjEuUmVzb2x2ZUNvc3RHcm91cENvbWJpbmF0aW9uc1Jlc3BvbnNlIiyC0+STAiYSJC92MS9jb3N0Z3JvdXBzL3Jlc29sdmUve2Nvc3RHcm91cElkfRKsAQoVQXNzaWduQ29zdEdyb3VwTWVtYmVyEi4uYmx1ZWFwaS5jb3Zlci52MS5Bc3NpZ25Db3N0R3JvdXBNZW1iZXJSZXF1ZXN0Gi8uYmx1ZWFwaS5jb3Zlci52MS5Bc3NpZ25Db3N0R3JvdXBNZW1iZXJSZXNwb25zZSIygtPkkwIsOgEqIicvdjEvY29zdGdyb3Vwcy97Y29zdEdyb3VwSWR9L21lbWJlci9hZGQSrwEKFVJlbW92ZUNvc3RHcm91cE1lbWJlchIuLmJsdWVhcGkuY292ZXIudjEuUmVtb3ZlQ29zdEdyb3VwTWVtYmVyUmVxdWVzdBovLmJsdWVhcGkuY292ZXIudjEuUmVtb3ZlQ29zdEdyb3VwTWVtYmVyUmVzcG9uc2UiNYLT5JMCLzoBKiIqL3YxL2Nvc3Rncm91cHMve2Nvc3RHcm91cElkfS9tZW1iZXIvcmVtb3ZlEowBCg9EZWxldGVDb3N0R3JvdXASKC5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUNvc3RHcm91cFJlcXVlc3QaKS5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUNvc3RHcm91cFJlc3BvbnNlIiSC0+STAh4qHC92MS9jb3N0Z3JvdXBzL3tjb3N0R3JvdXBJZH0SpgEKG0dldEFjY291bnRBY2Nlc3NUZW1wbGF0ZVVybBI0LmJsdWVhcGkuY292ZXIudjEuR2V0QWNjb3VudEFjY2Vzc1RlbXBsYXRlVXJsUmVxdWVzdBo1LmJsdWVhcGkuY292ZXIudjEuR2V0QWNjb3VudEFjY2Vzc1RlbXBsYXRlVXJsUmVzcG9uc2UiGoLT5JMCFBISL3YxL2F3cy9hY2N0YWNjZXNzEooBChFMaXN0QWNjb3VudEFjY2VzcxIqLmJsdWVhcGkuY292ZXIudjEuTGlzdEFjY291bnRBY2Nlc3NSZXF1ZXN0Gh8uYmx1ZWFwaS5jb3Zlci52MS5BY2NvdW50QWNjZXNzIiaC0+STAiA6ASoiGy92MS9hd3MvYWNjdGFjY2Vzcy9hbGw6cmVhZDABEoMBChBHZXRBY2NvdW50QWNjZXNzEikuYmx1ZWFwaS5jb3Zlci52MS5HZXRBY2NvdW50QWNjZXNzUmVxdWVzdBofLmJsdWVhcGkuY292ZXIudjEuQWNjb3VudEFjY2VzcyIjgtPkkwIdEhsvdjEvYXdzL2FjY3RhY2Nlc3Mve3RhcmdldH0SfAoNR2V0RGF0YUFjY2VzcxIvLmJsdWVhcGkuY292ZXIudjEuR2V0QW5kRGVsZXRlRGF0YUFjY2Vzc1JlcXVlc3QaHC5ibHVlYXBpLmNvdmVyLnYxLkRhdGFBY2Nlc3MiHILT5JMCFhIUL3YxL2FjY291bnQve3RhcmdldH0SeQoQRGVsZXRlRGF0YUFjY2VzcxIvLmJsdWVhcGkuY292ZXIudjEuR2V0QW5kRGVsZXRlRGF0YUFjY2Vzc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiHILT5JMCFioUL3YxL2FjY291bnQve3RhcmdldH0SgwEKE0NyZWF0ZUFjY291bnRBY2Nlc3MSLC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUFjY291bnRBY2Nlc3NSZXF1ZXN0Gh8uYmx1ZWFwaS5jb3Zlci52MS5BY2NvdW50QWNjZXNzIh2C0+STAhc6ASoiEi92MS9hd3MvYWNjdGFjY2VzcxKcAQobQ3JlYXRlQWNjb3VudEFjY2Vzc1N0YWNrc2V0EjQuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVBY2NvdW50QWNjZXNzU3RhY2tzZXRSZXF1ZXN0Gh8uYmx1ZWFwaS5jb3Zlci52MS5BY2NvdW50QWNjZXNzIiaC0+STAiA6ASoiGy92MS9hd3MvYWNjdGFjY2Vzcy9zdGFja3NldBKKAQoWQ3JlYXRlQWNjb3VudEFjY2Vzc0N1chIsLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQWNjb3VudEFjY2Vzc1JlcXVlc3QaHy5ibHVlYXBpLmNvdmVyLnYxLkFjY291bnRBY2Nlc3MiIYLT5JMCGzoBKiIWL3YxL2F3cy9hY2N0YWNjZXNzL2N1chJ7ChNVcGRhdGVBY2NvdW50QWNjZXNzEiwuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVBY2NvdW50QWNjZXNzUmVxdWVzdBoRLnByb3Rvcy5PcGVyYXRpb24iI4LT5JMCHRobL3YxL2F3cy9hY2N0YWNjZXNzL3t0YXJnZXR9EpMBChNEZWxldGVBY2NvdW50QWNjZXNzEiwuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVBY2NvdW50QWNjZXNzUmVxdWVzdBotLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQWNjb3VudEFjY2Vzc1Jlc3BvbnNlIh+C0+STAhkqFy92MS9hY2N0YWNjZXNzL3t0YXJnZXR9EnQKD1JlZ2lzdGVyQWNjb3VudBIoLmJsdWVhcGkuY292ZXIudjEuUmVnaXN0ZXJBY2NvdW50UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIfgtPkkwIZOgEqIhQvdjEve3ZlbmRvcn0vYWNjb3VudBJxChJSZWdpc3RlckRhdGFBY2Nlc3MSKy5ibHVlYXBpLmNvdmVyLnYxLlJlZ2lzdGVyRGF0YUFjY2Vzc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiFoLT5JMCEDoBKiILL3YxL2FjY291bnQScAoRQWRkQmlsbGluZ0FjY291bnQSJy5ibHVlYXBpLmNvdmVyLnYxLkJpbGxpbmdBY2NvdW50UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIagtPkkwIUOgEqIg8vdjEvYmlsbGluZ2FjY3QSdwoOTGlzdERhdGFBY2Nlc3MSJy5ibHVlYXBpLmNvdmVyLnYxLkxpc3REYXRhQWNjZXNzUmVxdWVzdBocLmJsdWVhcGkuY292ZXIudjEuRGF0YUFjY2VzcyIcgtPkkwIWIhQvdjEvYWNjb3VudC9hbGw6cmVhZDABEqgBChhMaXN0VW5yZWdpc3RlcmVkQWNjb3VudHMSMS5ibHVlYXBpLmNvdmVyLnYxLkxpc3RVbnJlZ2lzdGVyZWRBY2NvdW50c1JlcXVlc3QaMi5ibHVlYXBpLmNvdmVyLnYxLkxpc3RVbnJlZ2lzdGVyZWRBY2NvdW50c1Jlc3BvbnNlIiWC0+STAh8iHS92MS9hY2NvdW50L3VucmVnaXN0ZXJlZDpyZWFkEnYKEFVwZGF0ZURhdGFBY2Nlc3MSKS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZURhdGFBY2Nlc3NSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ih+C0+STAhk6ASoaFC92MS9hY2NvdW50L3t0YXJnZXR9EmsKCkxpc3RBc3NldHMSIy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RBc3NldHNSZXF1ZXN0GhouYmx1ZWFwaS5jb3Zlci52MS5SZXNvdXJjZSIagtPkkwIUOgEqIg8vdjEvYXNzZXRzOnJlYWQwARKTAQoQR2V0QXNzZXRzU3VtbWFyeRIpLmJsdWVhcGkuY292ZXIudjEuR2V0QXNzZXRzU3VtbWFyeVJlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLkdldEFzc2V0c1N1bW1hcnlSZXNwb25zZSIogtPkkwIiEiAvdjEvYXNzZXRzL3N1bW1hcnkve2Nvc3RHcm91cElkfRJyCgxHZXRDb3N0VXNhZ2USJS5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RVc2FnZVJlcXVlc3QaGi5ibHVlYXBpLmNvdmVyLnYxLkNvc3RJdGVtIh2C0+STAhc6ASoiEi92MS9jb3N0dXNhZ2U6cmVhZDABEsIBChxHZXRSaWdodFNpemluZ1JlY29tbWVuZGF0aW9uEjUuYmx1ZWFwaS5jb3Zlci52MS5HZXRSaWdodFNpemluZ1JlY29tbWVuZGF0aW9uUmVxdWVzdBo2LmJsdWVhcGkuY292ZXIudjEuR2V0UmlnaHRTaXppbmdSZWNvbW1lbmRhdGlvblJlc3BvbnNlIjOC0+STAi0SKy92MS9yaWdodHNpemluZ3JlY29tbWVuZGF0aW9uL3tjb3N0R3JvdXBJZH0SmAEKEk1vZGlmeVJlc291cmNlVHlwZRIrLmJsdWVhcGkuY292ZXIudjEuTW9kaWZ5UmVzb3VyY2VUeXBlUmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuTW9kaWZ5UmVzb3VyY2VUeXBlUmVzcG9uc2UiJ4LT5JMCIToBKiIcL3YxL3t2ZW5kb3J9L3Jlc291cmNlL21vZGlmeRKYAQoRVGVybWluYXRlUmVzb3VyY2USKi5ibHVlYXBpLmNvdmVyLnYxLlRlcm1pbmF0ZVJlc291cmNlUmVxdWVzdBorLmJsdWVhcGkuY292ZXIudjEuVGVybWluYXRlUmVzb3VyY2VSZXNwb25zZSIqgtPkkwIkOgEqIh8vdjEve3ZlbmRvcn0vcmVzb3VyY2UvdGVybWluYXRlEo0BChBVcGxvYWRDaGFyZ2VDb2RlEikuYmx1ZWFwaS5jb3Zlci52MS5VcGxvYWRDaGFyZ2VDb2RlUmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuVXBsb2FkQ2hhcmdlQ29kZVJlc3BvbnNlIiCC0+STAho6ASoiFS92MS9jaGFyZ2Vjb2RlL3VwbG9hZCgBEnoKC0Fzc2lnblBheWVyEiQuYmx1ZWFwaS5jb3Zlci52MS5Bc3NpZ25QYXllclJlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkFzc2lnblBheWVyUmVzcG9uc2UiHoLT5JMCGDoBKiITL3YxL3t2ZW5kb3J9L3BheWVycxJxCglHZXRQYXllcnMSIi5ibHVlYXBpLmNvdmVyLnYxLkdldFBheWVyc1JlcXVlc3QaIy5ibHVlYXBpLmNvdmVyLnYxLkdldFBheWVyc1Jlc3BvbnNlIhuC0+STAhUSEy92MS97dmVuZG9yfS9wYXllcnMShwEKC0dldEFjY291bnRzEiQuYmx1ZWFwaS5jb3Zlci52MS5HZXRBY2NvdW50c1JlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkdldEFjY291bnRzUmVzcG9uc2UiK4LT5JMCJRIjL3YxL3t2ZW5kb3J9L2FjY291bnRzL3tjb3N0R3JvdXBJZH0ShwEKC0dldFNlcnZpY2VzEiQuYmx1ZWFwaS5jb3Zlci52MS5HZXRTZXJ2aWNlc1JlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkdldFNlcnZpY2VzUmVzcG9uc2UiK4LT5JMCJRIjL3YxL3t2ZW5kb3J9L3NlcnZpY2VzL3tjb3N0R3JvdXBJZH0SgwEKCkdldFJlZ2lvbnMSIy5ibHVlYXBpLmNvdmVyLnYxLkdldFJlZ2lvbnNSZXF1ZXN0GiQuYmx1ZWFwaS5jb3Zlci52MS5HZXRSZWdpb25zUmVzcG9uc2UiKoLT5JMCJBIiL3YxL3t2ZW5kb3J9L3JlZ2lvbnMve2Nvc3RHcm91cElkfRJ3CgdHZXRUYWdzEiAuYmx1ZWFwaS5jb3Zlci52MS5HZXRUYWdzUmVxdWVzdBohLmJsdWVhcGkuY292ZXIudjEuR2V0VGFnc1Jlc3BvbnNlIieC0+STAiESHy92MS97dmVuZG9yfS90YWdzL3tjb3N0R3JvdXBJZH0SdwoITGlzdEZlZXMSIS5ibHVlYXBpLmNvdmVyLnYxLkxpc3RGZWVzUmVxdWVzdBocLmJsdWVhcGkuY292ZXIudjEuRmVlRGV0YWlscyIogtPkkwIiOgEqIh0vdjEvYWxsb2NhdGlvbnMvZmVlcy9hbGw6cmVhZDABEnoKClJlc3RvcmVGZWUSIy5ibHVlYXBpLmNvdmVyLnYxLlJlc3RvcmVGZWVSZXF1ZXN0GhwuYmx1ZWFwaS5jb3Zlci52MS5GZWVEZXRhaWxzIieC0+STAiE6ASoiHC92MS9hbGxvY2F0aW9ucy9mZWVzL3Jlc3RvcmUwARJ+Cg9HZXRDb3N0R3JvdXBGZWUSKC5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RHcm91cEZlZVJlcXVlc3QaGS5ibHVlYXBpLmNvdmVyLnYxLkZlZUl0ZW0iJILT5JMCHjoBKiIZL3YxL2FsbG9jYXRpb25zL2ZlZXM6cmVhZDABEnsKDkxpc3RBbGxvY2F0b3JzEicuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QWxsb2NhdG9yc1JlcXVlc3QaJi5ibHVlYXBpLmNvdmVyLnYxLkNvc3RBbGxvY2F0b3JEZXRhaWxzIhaC0+STAhASDi92MS9hbGxvY2F0b3JzMAESfgoPQ3JlYXRlQWxsb2NhdG9yEiguYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVBbGxvY2F0b3JSZXF1ZXN0GiYuYmx1ZWFwaS5jb3Zlci52MS5Db3N0QWxsb2NhdG9yRGV0YWlscyIZgtPkkwITOgEqIg4vdjEvYWxsb2NhdG9ycxKgAQoXR2V0QWxsb2NhdGlvbkF0dHJpYnV0ZXMSMC5ibHVlYXBpLmNvdmVyLnYxLkdldEFsbG9jYXRpb25BdHRyaWJ1dGVzUmVxdWVzdBoxLmJsdWVhcGkuY292ZXIudjEuR2V0QWxsb2NhdGlvbkF0dHJpYnV0ZXNSZXNwb25zZSIggtPkkwIaEhgvdjEvYWxsb2NhdG9ycy9hdHRyaWJ1dGUSlAEKFEdldEFsbG9jYXRpb25Tb3VyY2VzEi0uYmx1ZWFwaS5jb3Zlci52MS5HZXRBbGxvY2F0aW9uU291cmNlc1JlcXVlc3QaLi5ibHVlYXBpLmNvdmVyLnYxLkdldEFsbG9jYXRpb25Tb3VyY2VzUmVzcG9uc2UiHYLT5JMCFxIVL3YxL2FsbG9jYXRvcnMvc291cmNlEoEBCg9VcGRhdGVBbGxvY2F0b3ISJi5ibHVlYXBpLmNvdmVyLnYxLkNvc3RBbGxvY2F0b3JSZXF1ZXN0GiYuYmx1ZWFwaS5jb3Zlci52MS5Db3N0QWxsb2NhdG9yRGV0YWlscyIegtPkkwIYOgEqGhMvdjEvYWxsb2NhdG9ycy97aWR9EnAKD0RlbGV0ZUFsbG9jYXRvchIoLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQWxsb2NhdG9yUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIbgtPkkwIVKhMvdjEvYWxsb2NhdG9ycy97aWR9EpABChVQcm94eUNyZWF0ZUNvbXBsZXRpb24SLi5ibHVlYXBpLmNvdmVyLnYxLlByb3h5Q3JlYXRlQ29tcGxldGlvblJlcXVlc3QaLy5ibHVlYXBpLmNvdmVyLnYxLlByb3h5Q3JlYXRlQ29tcGxldGlvblJlc3BvbnNlIhSC0+STAg46ASoiCS92MS94L3BjYzABEooBChRTaW11bGF0ZUZlZUFsbG9jYXRvchIoLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQWxsb2NhdG9yUmVxdWVzdBocLmJsdWVhcGkuY292ZXIudjEuRmVlRGV0YWlscyIogtPkkwIiOgEqIh0vdjEvYWxsb2NhdGlvbnMvZmVlcy9zaW11bGF0ZTABEpgBChBMaXN0QWNjb3VudFVzYWdlEikuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QWNjb3VudFVzYWdlUmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuQWNjb3VudFVzYWdlRGV0YWlscyIwgtPkkwIqOgEqIiUvdjEvYWxsb2NhdGlvbnMvYWNjb3VudHVzYWdlL2FsbDpyZWFkMAESnQEKE1Jlc3RvcmVBY2NvdW50VXNhZ2USLC5ibHVlYXBpLmNvdmVyLnYxLlJlc3RvcmVBY2NvdW50VXNhZ2VSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5BY2NvdW50VXNhZ2VEZXRhaWxzIi+C0+STAik6ASoiJC92MS9hbGxvY2F0aW9ucy9hY2NvdW50dXNhZ2UvcmVzdG9yZTABEpsBChRTaW11bGF0ZUFjY291bnRVc2FnZRIoLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQWxsb2NhdG9yUmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuQWNjb3VudFVzYWdlRGV0YWlscyIwgtPkkwIqOgEqIiUvdjEvYWxsb2NhdGlvbnMvYWNjb3VudHVzYWdlL3NpbXVsYXRlMAESgQEKC0xpc3RTYXZpbmdzEiEuYmx1ZWFwaS5jb3Zlci52MS5MaXN0RmVlc1JlcXVlc3QaIC5ibHVlYXBpLmNvdmVyLnYxLlNhdmluZ3NEZXRhaWxzIiuC0+STAiU6ASoiIC92MS9hbGxvY2F0aW9ucy9zYXZpbmdzL2FsbDpyZWFkMAESiQEKDlJlc3RvcmVTYXZpbmdzEicuYmx1ZWFwaS5jb3Zlci52MS5SZXN0b3JlU2F2aW5nc1JlcXVlc3QaIC5ibHVlYXBpLmNvdmVyLnYxLlNhdmluZ3NEZXRhaWxzIiqC0+STAiQ6ASoiHy92MS9hbGxvY2F0aW9ucy9zYXZpbmdzL3Jlc3RvcmUwARKMAQoPU2ltdWxhdGVTYXZpbmdzEiguYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVBbGxvY2F0b3JSZXF1ZXN0GiAuYmx1ZWFwaS5jb3Zlci52MS5TYXZpbmdzRGV0YWlscyIrgtPkkwIlOgEqIiAvdjEvYWxsb2NhdGlvbnMvc2F2aW5ncy9zaW11bGF0ZTABEo4BChZHZXRDb3N0R3JvdXBBbGxvY2F0aW9uEi8uYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0R3JvdXBBbGxvY2F0aW9uUmVxdWVzdBogLmJsdWVhcGkuY292ZXIudjEuQWxsb2NhdGlvbkl0ZW0iH4LT5JMCGToBKiIUL3YxL2FsbG9jYXRpb25zOnJlYWQwARKHAQoQUHJvY2Vzc0F1dGgwVXNlchIpLmJsdWVhcGkuY292ZXIudjEuUHJvY2Vzc0F1dGgwVXNlclJlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLlByb2Nlc3NBdXRoMFVzZXJSZXNwb25zZSIcgtPkkwIWOgEqIhEvdjEvbWVtYmVycy9hdXRoMBKbAQobQWRkUGFydG5lckNlbnRlckNyZWRlbnRpYWxzEjQuYmx1ZWFwaS5jb3Zlci52MS5BZGRQYXJ0bmVyQ2VudGVyQ3JlZGVudGlhbHNSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ii6C0+STAig6ASoiIy92MS9henVyZS9jcmVkZW50aWFscy9wYXJ0bmVyY2VudGVyEnUKDUFkZE1wblNldHRpbmcSJi5ibHVlYXBpLmNvdmVyLnYxLkFkZE1wblNldHRpbmdSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiSC0+STAh46ASoiGS92MS9henVyZS9jcmVkZW50aWFscy9tcG4SkwEKFUdldENvc3RHcm91cEF0dHJpYnV0ZRIuLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEdyb3VwQXR0cmlidXRlUmVxdWVzdBovLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEdyb3VwQXR0cmlidXRlUmVzcG9uc2UiGYLT5JMCEzoBKiIOL3YxL2F0dHJpYnV0ZXMSbwoJR2V0QWxlcnRzEiIuYmx1ZWFwaS5jb3Zlci52MS5HZXRBbGVydHNSZXF1ZXN0GiMuYmx1ZWFwaS5jb3Zlci52MS5HZXRBbGVydHNSZXNwb25zZSIXgtPkkwIREg8vdjEvYWxlcnRzL2Nvc3QwARJ2CgtDcmVhdGVBbGVydBIkLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQWxlcnRSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVBbGVydFJlc3BvbnNlIhqC0+STAhQ6ASoiDy92MS9hbGVydHMvY29zdBKEAQoPR2V0QWxlcnREZXRhaWxzEiguYmx1ZWFwaS5jb3Zlci52MS5HZXRBbGVydERldGFpbHNSZXF1ZXN0GikuYmx1ZWFwaS5jb3Zlci52MS5HZXRBbGVydERldGFpbHNSZXNwb25zZSIcgtPkkwIWEhQvdjEvYWxlcnRzL2Nvc3Qve2lkfRJ4CgtEZWxldGVBbGVydBIkLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQWxlcnRSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVBbGVydFJlc3BvbnNlIhyC0+STAhYqFC92MS9hbGVydHMvY29zdC97aWR9EpABChJVcGRhdGVBbGVydERldGFpbHMSKy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUFsZXJ0RGV0YWlsc1JlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUFsZXJ0RGV0YWlsc1Jlc3BvbnNlIh+C0+STAhk6ASoaFC92MS9hbGVydHMvY29zdC97aWR9EnoKC0dldENoYW5uZWxzEiQuYmx1ZWFwaS5jb3Zlci52MS5HZXRDaGFubmVsc1JlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkdldENoYW5uZWxzUmVzcG9uc2UiHILT5JMCFjoBKiIRL3YxL2NoYW5uZWxzOnJlYWQwARJ5Cg1DcmVhdGVDaGFubmVsEiYuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVDaGFubmVsUmVxdWVzdBonLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQ2hhbm5lbFJlc3BvbnNlIheC0+STAhE6ASoiDC92MS9jaGFubmVscxKHAQoRR2V0Q2hhbm5lbERldGFpbHMSKi5ibHVlYXBpLmNvdmVyLnYxLkdldENoYW5uZWxEZXRhaWxzUmVxdWVzdBorLmJsdWVhcGkuY292ZXIudjEuR2V0Q2hhbm5lbERldGFpbHNSZXNwb25zZSIZgtPkkwITEhEvdjEvY2hhbm5lbHMve2lkfRJ7Cg1EZWxldGVDaGFubmVsEiYuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVDaGFubmVsUmVxdWVzdBonLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQ2hhbm5lbFJlc3BvbnNlIhmC0+STAhMqES92MS9jaGFubmVscy97aWR9EpMBChRVcGRhdGVDaGFubmVsRGV0YWlscxItLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ2hhbm5lbERldGFpbHNSZXF1ZXN0Gi4uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDaGFubmVsRGV0YWlsc1Jlc3BvbnNlIhyC0+STAhY6ASoaES92MS9jaGFubmVscy97aWR9EqABChpHZXREaXNjb3VudFJlY29tbWVuZGF0aW9ucxIzLmJsdWVhcGkuY292ZXIudjEuR2V0RGlzY291bnRSZWNvbW1lbmRhdGlvbnNSZXF1ZXN0GjQuYmx1ZWFwaS5jb3Zlci52MS5HZXREaXNjb3VudFJlY29tbWVuZGF0aW9uc1Jlc3BvbnNlIheC0+STAhE6ASoiDC92MS9kaXNjb3VudBKAAQoVR2V0QW5vbWFseWluQ29zdEdyb3VwEi4uYmx1ZWFwaS5jb3Zlci52MS5HZXRBbm9tYWx5aW5Db3N0R3JvdXBSZXF1ZXN0Gh0uYmx1ZWFwaS5jb3Zlci52MS5Bbm9tYWx5RGF0YSIWgtPkkwIQOgEqIgsvdjEvYW5vbWFseTABEpYBCh1DcmVhdGVEaXNjb3VudEV4cGlyYXRpb25BbGVydBI2LmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlRGlzY291bnRFeHBpcmF0aW9uQWxlcnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiWC0+STAh86ASoiGi92MS9hbGVydHMvZXhwaXJlL2Rpc2NvdW50EpsBCh1VcGRhdGVEaXNjb3VudEV4cGlyYXRpb25BbGVydBI2LmJsdWVhcGkuY292ZXIudjEuVXBkYXRlRGlzY291bnRFeHBpcmF0aW9uQWxlcnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiqC0+STAiQ6ASoaHy92MS9hbGVydHMvZXhwaXJlL2Rpc2NvdW50L3tpZH0SrAEKGkdldERpc2NvdW50RXhwaXJhdGlvbkFsZXJ0EjouYmx1ZWFwaS5jb3Zlci52MS5NYW5pcHVsYXRlRGlzY291bnRFeHBpcmF0aW9uQWxlcnRSZXF1ZXN0GikuYmx1ZWFwaS5jb3Zlci52MS5EaXNjb3VudEV4cGlyeUFsZXJ0RGF0YSIngtPkkwIhEh8vdjEvYWxlcnRzL2V4cGlyZS9kaXNjb3VudC97aWR9Eq0BChtMaXN0RGlzY291bnRFeHBpcmF0aW9uQWxlcnQSNC5ibHVlYXBpLmNvdmVyLnYxLkxpc3REaXNjb3VudEV4cGlyYXRpb25BbGVydFJlcXVlc3QaKS5ibHVlYXBpLmNvdmVyLnYxLkRpc2NvdW50RXhwaXJ5QWxlcnREYXRhIiuC0+STAiUiIy92MS9hbGVydHMvZXhwaXJlL2Rpc2NvdW50L2FsbDpyZWFkMAESnAEKHURlbGV0ZURpc2NvdW50RXhwaXJhdGlvbkFsZXJ0EjouYmx1ZWFwaS5jb3Zlci52MS5NYW5pcHVsYXRlRGlzY291bnRFeHBpcmF0aW9uQWxlcnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IieC0+STAiEqHy92MS9hbGVydHMvZXhwaXJlL2Rpc2NvdW50L3tpZH0SeAoSQ3JlYXRlQW5vbWFseUFsZXJ0EisuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVBbm9tYWx5QWxlcnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ih2C0+STAhc6ASoiEi92MS9hbGVydHMvYW5vbWFseRJ+ChJEZWxldGVBbm9tYWx5QWxlcnQSLy5ibHVlYXBpLmNvdmVyLnYxLk1hbmlwdWxhdGVBbm9tYWx5QWxlcnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ih+C0+STAhkqFy92MS9hbGVydHMvYW5vbWFseS97aWR9EogBChBMaXN0QW5vbWFseUFsZXJ0EikuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QW5vbWFseUFsZXJ0UmVxdWVzdBoiLmJsdWVhcGkuY292ZXIudjEuQW5vbWFseUFsZXJ0RGF0YSIjgtPkkwIdIhsvdjEvYWxlcnRzL2Fub21hbHkvYWxsOnJlYWQwARKHAQoPR2V0QW5vbWFseUFsZXJ0Ei8uYmx1ZWFwaS5jb3Zlci52MS5NYW5pcHVsYXRlQW5vbWFseUFsZXJ0UmVxdWVzdBoiLmJsdWVhcGkuY292ZXIudjEuQW5vbWFseUFsZXJ0RGF0YSIfgtPkkwIZEhcvdjEvYWxlcnRzL2Fub21hbHkve2lkfRJ9ChJVcGRhdGVBbm9tYWx5QWxlcnQSKy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUFub21hbHlBbGVydFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiIoLT5JMCHDoBKhoXL3YxL2FsZXJ0cy9hbm9tYWx5L3tpZH0ShwEKD1JlZ2lzdGVyTmV3VXNlchIoLmJsdWVhcGkuY292ZXIudjEuUmVnaXN0ZXJOZXdVc2VyUmVxdWVzdBopLmJsdWVhcGkuY292ZXIudjEuUmVnaXN0ZXJOZXdVc2VyUmVzcG9uc2UiH4LT5JMCGToBKiIUL3YxL21lbWJlcnMvcmVnaXN0ZXISiAEKDkdldFVzZXJQcm9maWxlEicuYmx1ZWFwaS5jb3Zlci52MS5HZXRVc2VyUHJvZmlsZVJlcXVlc3QaKC5ibHVlYXBpLmNvdmVyLnYxLkdldFVzZXJQcm9maWxlUmVzcG9uc2UiI4LT5JMCHRIbL3YxL21lbWJlcnMvcHJvZmlsZS97ZW1haWx9EpQBChFVcGRhdGVVc2VyUHJvZmlsZRIqLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlclByb2ZpbGVSZXF1ZXN0GisuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyUHJvZmlsZVJlc3BvbnNlIiaC0+STAiA6ASoaGy92MS9tZW1iZXJzL3Byb2ZpbGUve2VtYWlsfRJ4CgtMaXN0QnVkZ2V0cxIkLmJsdWVhcGkuY292ZXIudjEuTGlzdEJ1ZGdldHNSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QnVkZ2V0c1Jlc3BvbnNlIhqC0+STAhQ6ASoiDy92MS9idWRnZXQ6cmVhZDABEm0KCUdldEJ1ZGdldBIiLmJsdWVhcGkuY292ZXIudjEuR2V0QnVkZ2V0UmVxdWVzdBojLmJsdWVhcGkuY292ZXIudjEuR2V0QnVkZ2V0UmVzcG9uc2UiF4LT5JMCERIPL3YxL2J1ZGdldC97aWR9EnQKDENyZWF0ZUJ1ZGdldBIlLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQnVkZ2V0UmVxdWVzdBomLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQnVkZ2V0UmVzcG9uc2UiFYLT5JMCDzoBKiIKL3YxL2J1ZGdldBJ2CgxEZWxldGVCdWRnZXQSJS5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUJ1ZGdldFJlcXVlc3QaJi5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUJ1ZGdldFJlc3BvbnNlIheC0+STAhEqDy92MS9idWRnZXQve2lkfRJ5CgxVcGRhdGVCdWRnZXQSJS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUJ1ZGdldFJlcXVlc3QaJi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUJ1ZGdldFJlc3BvbnNlIhqC0+STAhQ6ASoaDy92MS9idWRnZXQve2lkfRLXAQonUmVzb2x2ZUFXU01hcmtldHBsYWNlVG9rZW5Gb3JPbmJvYXJkaW5nEkAuYmx1ZWFwaS5jb3Zlci52MS5SZXNvbHZlQVdTTWFya2V0cGxhY2VUb2tlbkZvck9uYm9hcmRpbmdSZXF1ZXN0GkEuYmx1ZWFwaS5jb3Zlci52MS5SZXNvbHZlQVdTTWFya2V0cGxhY2VUb2tlbkZvck9uYm9hcmRpbmdSZXNwb25zZSIngtPkkwIhOgEqIhwvdjEvbWVtYmVycy9hd3Mvc3Vic2NyaXB0aW9uEqwBCh1HZXRDdXN0b21lclN1YnNjcmlwdGlvblN0YXR1cxI2LmJsdWVhcGkuY292ZXIudjEuR2V0Q3VzdG9tZXJTdWJzY3JpcHRpb25TdGF0dXNSZXF1ZXN0GjcuYmx1ZWFwaS5jb3Zlci52MS5HZXRDdXN0b21lclN1YnNjcmlwdGlvblN0YXR1c1Jlc3BvbnNlIhqC0+STAhQSEi92MS9iaWxsaW5nL3N0YXR1cxKGAQoPQ3JlYXRlUHJvZmlsaW5nEiguYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVQcm9maWxpbmdSZXF1ZXN0GikuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVQcm9maWxpbmdSZXNwb25zZSIegtPkkwIYOgEqIhMvdjEvbWVtYmVycy9wcm9maWxlEpYBChRBZGRJbmZvdG9NYXJrZXRwbGFjZRItLmJsdWVhcGkuY292ZXIudjEuQWRkSW5mb3RvTWFya2V0cGxhY2VSZXF1ZXN0Gi4uYmx1ZWFwaS5jb3Zlci52MS5BZGRJbmZvdG9NYXJrZXRwbGFjZVJlc3BvbnNlIh+C0+STAhk6ASoiFC92MS9tYXJrZXRwbGFjZS9pbmZvEpwBChBHZXRSZXBvcnRTdW1tYXJ5EikuYmx1ZWFwaS5jb3Zlci52MS5HZXRSZXBvcnRTdW1tYXJ5UmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuR2V0UmVwb3J0U3VtbWFyeVJlc3BvbnNlIjGC0+STAisSKS92MS9yZXBvcnRzL2luc2lnaHQvc3VtbWFyeS97Y29zdEdyb3VwSWR9EpwBChNMaXN0UmVjb21tZW5kYXRpb25zEisuYmx1ZWFwaS5jb3Zlci52MS5MaXN0UmVjb21tZW5kYXRpb25SZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5MaXN0UmVjb21tZW5kYXRpb25SZXNwb25zZSIogtPkkwIiEiAvdjEvcmVjb21tZW5kYXRpb25zL29wdGltaXphdGlvbjABEp8BChVMaXN0UmVjb21tZW5kYXRpb25zVjISLS5ibHVlYXBpLmNvdmVyLnYxLkxpc3RSZWNvbW1lbmRhdGlvblYyUmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuTGlzdFJlY29tbWVuZGF0aW9uUmVzcG9uc2UiJ4LT5JMCIToBKiIcL3YxL3JlY29tbWVuZGF0aW9ucy9hbGw6cmVhZDABEpsBChFHZXRSZWNvbW1lbmRhdGlvbhIqLmJsdWVhcGkuY292ZXIudjEuR2V0UmVjb21tZW5kYXRpb25SZXF1ZXN0GisuYmx1ZWFwaS5jb3Zlci52MS5HZXRSZWNvbW1lbmRhdGlvblJlc3BvbnNlIi2C0+STAicSJS92MS9yZWNvbW1lbmRhdGlvbnMvb3B0aW1pemF0aW9uL3tpZH0SnAEKE0dldFJlY29tbWVuZGF0aW9uVjISLC5ibHVlYXBpLmNvdmVyLnYxLkdldFJlY29tbWVuZGF0aW9uVjJSZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5HZXRSZWNvbW1lbmRhdGlvblYyUmVzcG9uc2UiKILT5JMCIhIgL3YxL3JlY29tbWVuZGF0aW9ucy9kZXRhaWxzL3tpZH0SmgEKE0V4ZWN1dGVPcHRpbWl6YXRpb24SLC5ibHVlYXBpLmNvdmVyLnYxLkV4ZWN1dGVPcHRpbWl6YXRpb25SZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5FeGVjdXRlT3B0aW1pemF0aW9uUmVzcG9uc2UiJoLT5JMCIDoBKiIbL3YxL3JlY29tbWVuZGF0aW9ucy9leGVjdXRlEp0BChJHZXRFeGVjdXRpb25TdGF0dXMSKy5ibHVlYXBpLmNvdmVyLnYxLkdldEV4ZWN1dGlvblN0YXR1c1JlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLkdldEV4ZWN1dGlvblN0YXR1c1Jlc3BvbnNlIiqC0+STAiQSIi92MS9yZWNvbW1lbmRhdGlvbnMvZXhlY3V0ZS9zdGF0dXMwARKZAQoOTWFya0FzRXhlY3V0ZWQSJy5ibHVlYXBpLmNvdmVyLnYxLk1hcmtBc0V4ZWN1dGVkUmVxdWVzdBooLmJsdWVhcGkuY292ZXIudjEuTWFya0FzRXhlY3V0ZWRSZXNwb25zZSI0gtPkkwIuOgEqIikvdjEvcmVjb21tZW5kYXRpb25zL29wdGltaXphdGlvbi9leGVjdXRlZBK5AQoaVW5kb0V4ZWN1dGVkUmVjb21tZW5kYXRpb24SMy5ibHVlYXBpLmNvdmVyLnYxLlVuZG9FeGVjdXRlZFJlY29tbWVuZGF0aW9uUmVxdWVzdBo0LmJsdWVhcGkuY292ZXIudjEuVW5kb0V4ZWN1dGVkUmVjb21tZW5kYXRpb25SZXNwb25zZSIwgtPkkwIqOgEqIiUvdjEvcmVjb21tZW5kYXRpb25zL29wdGltaXphdGlvbi91bmRvEqQBChNPcHRpbWl6YXRpb25IaXN0b3J5EiwuYmx1ZWFwaS5jb3Zlci52MS5PcHRpbWl6YXRpb25IaXN0b3J5UmVxdWVzdBotLmJsdWVhcGkuY292ZXIudjEuT3B0aW1pemF0aW9uSGlzdG9yeVJlc3BvbnNlIjCC0+STAioSKC92MS9yZWNvbW1lbmRhdGlvbnMvb3B0aW1pemF0aW9uL2hpc3RvcnkSvwEKGlNldENvc3RHcm91cEV2ZW50SW5kaWNhdG9yEjMuYmx1ZWFwaS5jb3Zlci52MS5TZXRDb3N0R3JvdXBFdmVudEluZGljYXRvclJlcXVlc3QaNC5ibHVlYXBpLmNvdmVyLnYxLlNldENvc3RHcm91cEV2ZW50SW5kaWNhdG9yUmVzcG9uc2UiNoLT5JMCMDoBKiIrL3YxL2Nvc3Rncm91cHMve2Nvc3RHcm91cElkfS9ldmVudEluZGljYXRvchK4AQoaU2V0Q29zdEdyb3VwQW5vbWFseU9wdGlvbnMSMy5ibHVlYXBpLmNvdmVyLnYxLlNldENvc3RHcm91cEFub21hbHlPcHRpb25zUmVxdWVzdBo0LmJsdWVhcGkuY292ZXIudjEuU2V0Q29zdEdyb3VwQW5vbWFseU9wdGlvbnNSZXNwb25zZSIvgtPkkwIpOgEqIiQvdjEvY29zdGdyb3Vwcy97Y29zdEdyb3VwSWR9L2Fub21hbHkSkAEKEVNldE9yZ0Zpc2NhbE1vbnRoEiouYmx1ZWFwaS5jb3Zlci52MS5TZXRPcmdGaXNjYWxNb250aFJlcXVlc3QaKy5ibHVlYXBpLmNvdmVyLnYxLlNldE9yZ0Zpc2NhbE1vbnRoUmVzcG9uc2UiIoLT5JMCHDoBKiIXL3YxL3JlcG9ydHMvZmlzY2FsbW9udGgSjQEKEUdldE9yZ0Zpc2NhbE1vbnRoEiouYmx1ZWFwaS5jb3Zlci52MS5HZXRPcmdGaXNjYWxNb250aFJlcXVlc3QaKy5ibHVlYXBpLmNvdmVyLnYxLkdldE9yZ0Zpc2NhbE1vbnRoUmVzcG9uc2UiH4LT5JMCGRIXL3YxL3JlcG9ydHMvZmlzY2FsbW9udGgSogEKFFRyYW5zZmVyT3JnYW5pemF0aW9uEi0uYmx1ZWFwaS5jb3Zlci52MS5UcmFuc2Zlck9yZ2FuaXphdGlvblJlcXVlc3QaLi5ibHVlYXBpLmNvdmVyLnYxLlRyYW5zZmVyT3JnYW5pemF0aW9uUmVzcG9uc2UiK4LT5JMCJRIjL3YxL29yZ2FuaXphdGlvbnMvdHJhbnNmZXIve3RhcmdldH0SqQEKGVVwZGF0ZUNvc3RHcm91cENyZWF0aW9uVUkSMi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cENyZWF0aW9uVUlSZXF1ZXN0GjMuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBDcmVhdGlvblVJUmVzcG9uc2UiI4LT5JMCHToBKhoYL3YxL21lL2Nvc3Rncm91cGNyZWF0aW9uEnYKDUxpc3RVbml0VHlwZXMSJi5ibHVlYXBpLmNvdmVyLnYxLkxpc3RVbml0VHlwZXNSZXF1ZXN0GicuYmx1ZWFwaS5jb3Zlci52MS5MaXN0VW5pdFR5cGVzUmVzcG9uc2UiFILT5JMCDhIML3YxL3VuaXRjb3N0EnwKDkNyZWF0ZVVuaXRUeXBlEicuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVVbml0VHlwZVJlcXVlc3QaKC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVVuaXRUeXBlUmVzcG9uc2UiF4LT5JMCEToBKiIML3YxL3VuaXRjb3N0EnUKC0dldFVuaXRUeXBlEiQuYmx1ZWFwaS5jb3Zlci52MS5HZXRVbml0VHlwZVJlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkdldFVuaXRUeXBlUmVzcG9uc2UiGYLT5JMCExIRL3YxL3VuaXRjb3N0L3tpZH0SgQEKDlVwZGF0ZVVuaXRUeXBlEicuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVbml0VHlwZVJlcXVlc3QaKC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVuaXRUeXBlUmVzcG9uc2UiHILT5JMCFjoBKhoRL3YxL3VuaXRjb3N0L3tpZH0SfgoORGVsZXRlVW5pdFR5cGUSJy5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZVVuaXRUeXBlUmVxdWVzdBooLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlVW5pdFR5cGVSZXNwb25zZSIZgtPkkwITKhEvdjEvdW5pdGNvc3Qve2lkfRJ2CgpNZXJnZVVuaXRzEiMuYmx1ZWFwaS5jb3Zlci52MS5NZXJnZVVuaXRzUmVxdWVzdBokLmJsdWVhcGkuY292ZXIudjEuTWVyZ2VVbml0c1Jlc3BvbnNlIh2C0+STAhc6ASoiEi92MS91bml0Y29zdC9tZXJnZRKRAQoSTGlzdFN1Z2dlc3RlZFVuaXRzEisuYmx1ZWFwaS5jb3Zlci52MS5MaXN0U3VnZ2VzdGVkVW5pdHNSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5MaXN0U3VnZ2VzdGVkVW5pdHNSZXNwb25zZSIggtPkkwIaEhgvdjEvdW5pdGNvc3QvYXV0b3N1Z2dlc3QSnQEKE01lcmdlU3VnZ2VzdGVkVW5pdHMSLC5ibHVlYXBpLmNvdmVyLnYxLk1lcmdlU3VnZ2VzdGVkVW5pdHNSZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5NZXJnZVN1Z2dlc3RlZFVuaXRzUmVzcG9uc2UiKYLT5JMCIzoBKiIeL3YxL3VuaXRjb3N0L2F1dG9zdWdnZXN0L21lcmdlEqoBChdDcmVhdGVVbml0RnJvbVN1Z2dlc3RlZBIwLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlVW5pdEZyb21TdWdnZXN0ZWRSZXF1ZXN0GjEuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVVbml0RnJvbVN1Z2dlc3RlZFJlc3BvbnNlIiqC0+STAiQ6ASoiHy92MS91bml0Y29zdC9hdXRvc3VnZ2VzdC9jcmVhdGUSmAEKE0xpc3RTaGFyZWRSZXNvdXJjZXMSLC5ibHVlYXBpLmNvdmVyLnYxLkxpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5MaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2UiJILT5JMCHhIcL3YxL3VuaXRjb3N0L3NoYXJlZHJlc291cmNlcxKgAQoUQ3JlYXRlU2hhcmVkUmVzb3VyY2USLi5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVNoYXJlZFJlc291cmNlc1JlcXVlc3QaLy5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVNoYXJlZFJlc291cmNlc1Jlc3BvbnNlIieC0+STAiE6ASoiHC92MS91bml0Y29zdC9zaGFyZWRyZXNvdXJjZXMSmQEKEUdldFNoYXJlZFJlc291cmNlEisuYmx1ZWFwaS5jb3Zlci52MS5HZXRTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5HZXRTaGFyZWRSZXNvdXJjZXNSZXNwb25zZSIpgtPkkwIjEiEvdjEvdW5pdGNvc3Qvc2hhcmVkcmVzb3VyY2VzL3tpZH0SpQEKFFVwZGF0ZVNoYXJlZFJlc291cmNlEi4uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0Gi8uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVTaGFyZWRSZXNvdXJjZXNSZXNwb25zZSIsgtPkkwImOgEqGiEvdjEvdW5pdGNvc3Qvc2hhcmVkcmVzb3VyY2VzL3tpZH0SogEKFERlbGV0ZVNoYXJlZFJlc291cmNlEi4uYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0Gi8uYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVTaGFyZWRSZXNvdXJjZXNSZXNwb25zZSIpgtPkkwIjKiEvdjEvdW5pdGNvc3Qvc2hhcmVkcmVzb3VyY2VzL3tpZH0ShAEKD0xpc3RVbml0TWV0cmljcxIoLmJsdWVhcGkuY292ZXIudjEuTGlzdFVuaXRNZXRyaWNzUmVxdWVzdBopLmJsdWVhcGkuY292ZXIudjEuTGlzdFVuaXRNZXRyaWNzUmVzcG9uc2UiHILT5JMCFhIUL3YxL3VuaXRjb3N0L21ldHJpY3MSigEKEENyZWF0ZVVuaXRNZXRyaWMSKS5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVVuaXRNZXRyaWNSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVVbml0TWV0cmljUmVzcG9uc2UiH4LT5JMCGToBKiIUL3YxL3VuaXRjb3N0L21ldHJpY3MSgwEKDUdldFVuaXRNZXRyaWMSJi5ibHVlYXBpLmNvdmVyLnYxLkdldFVuaXRNZXRyaWNSZXF1ZXN0GicuYmx1ZWFwaS5jb3Zlci52MS5HZXRVbml0TWV0cmljUmVzcG9uc2UiIYLT5JMCGxIZL3YxL3VuaXRjb3N0L21ldHJpY3Mve2lkfRKPAQoQVXBkYXRlVW5pdE1ldHJpYxIpLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVW5pdE1ldHJpY1JlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVuaXRNZXRyaWNSZXNwb25zZSIkgtPkkwIeOgEqGhkvdjEvdW5pdGNvc3QvbWV0cmljcy97aWR9EowBChBEZWxldGVVbml0TWV0cmljEikuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVVbml0TWV0cmljUmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlVW5pdE1ldHJpY1Jlc3BvbnNlIiGC0+STAhsqGS92MS91bml0Y29zdC9tZXRyaWNzL3tpZH0StgEKGENvbmZpcm1Hb29nbGVTaGVldEFjY2VzcxIxLmJsdWVhcGkuY292ZXIudjEuQ29uZmlybUdvb2dsZVNoZWV0QWNjZXNzUmVxdWVzdBoyLmJsdWVhcGkuY292ZXIudjEuQ29uZmlybUdvb2dsZVNoZWV0QWNjZXNzUmVzcG9uc2UiM4LT5JMCLToBKiIoL3YxL3VuaXRjb3N0L21ldHJpY3MvZ29vZ2xlc2hlZXQvY29uZmlybRKkAQoSUHJldmlld0dvb2dsZVNoZWV0EisuYmx1ZWFwaS5jb3Zlci52MS5QcmV2aWV3R29vZ2xlU2hlZXRSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5QcmV2aWV3R29vZ2xlU2hlZXRSZXNwb25zZSIzgtPkkwItOgEqIigvdjEvdW5pdGNvc3QvbWV0cmljcy9nb29nbGVzaGVldC9wcmV2aWV3EqoBChVHZXRDbG91ZHdhdGNoTWV0YWRhdGESLi5ibHVlYXBpLmNvdmVyLnYxLkdldENsb3Vkd2F0Y2hNZXRhZGF0YVJlcXVlc3QaLy5ibHVlYXBpLmNvdmVyLnYxLkdldENsb3Vkd2F0Y2hNZXRhZGF0YVJlc3BvbnNlIjCC0+STAioSKC92MS91bml0Y29zdC9tZXRyaWNzL2Nsb3Vkd2F0Y2gvbWV0YWRhdGEShAEKD1ZlcmlmeUFQSUFjY2VzcxIoLmJsdWVhcGkuY292ZXIudjEuVmVyaWZ5QVBJQWNjZXNzUmVxdWVzdBopLmJsdWVhcGkuY292ZXIudjEuVmVyaWZ5QVBJQWNjZXNzUmVzcG9uc2UiHILT5JMCFhIUL3YxL2FwaWFjY2Vzcy92ZXJpZnkSiQEKEUdldEFJQ29zdEFuZFVzYWdlEiouYmx1ZWFwaS5jb3Zlci52MS5HZXRBSUNvc3RBbmRVc2FnZVJlcXVlc3QaKy5ibHVlYXBpLmNvdmVyLnYxLkdldEFJQ29zdEFuZFVzYWdlUmVzcG9uc2UiG4LT5JMCFToBKiIQL3YxL2FpL2Nvc3R1c2FnZRKXAQoVR2V0Q29udGFpbmVyQ29zdFVzYWdlEisuYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZSIjgtPkkwIdOgEqIhgvdjEvY29udGFpbmVycy9jb3N0dXNhZ2UShwEKEFBvcHVsYXRlRGVtb0RhdGESKS5ibHVlYXBpLmNvdmVyLnYxLlBvcHVsYXRlRGVtb0RhdGFSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5Qb3B1bGF0ZURlbW9EYXRhUmVzcG9uc2UiHILT5JMCFjoBKiIRL3YxL2RlbW8vcG9wdWxhdGUSewoNUmVzZXREZW1vRGF0YRImLmJsdWVhcGkuY292ZXIudjEuUmVzZXREZW1vRGF0YVJlcXVlc3QaJy5ibHVlYXBpLmNvdmVyLnYxLlJlc2V0RGVtb0RhdGFSZXNwb25zZSIZgtPkkwITOgEqIg4vdjEvZGVtby9yZXNldBKZAQoPR2V0RGlzY291bnRQbGFuEiguYmx1ZWFwaS5jb3Zlci52MS5HZXREaXNjb3VudFBsYW5SZXF1ZXN0GikuYmx1ZWFwaS5jb3Zlci52MS5HZXREaXNjb3VudFBsYW5SZXNwb25zZSIxgtPkkwIrOgEqIiYvdjEve3ZlbmRvcn0vZGlzY291bnRwbGFuL3tvcmdJZH06cmVhZBJ/Cg5HZXRDb3N0VXNhZ2VWMhInLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdFVzYWdlVjJSZXF1ZXN0GiguYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0VXNhZ2VWMlJlc3BvbnNlIhiC0+STAhI6ASoiDS92MS9jb3N0dXNhZ2UwARKoAQoVTGlzdE5vbnBlcmZvcm1pbmdSYXRlEi4uYmx1ZWFwaS5jb3Zlci52MS5MaXN0Tm9ucGVyZm9ybWluZ1JhdGVSZXF1ZXN0Gi8uYmx1ZWFwaS5jb3Zlci52MS5MaXN0Tm9ucGVyZm9ybWluZ1JhdGVSZXNwb25zZSIugtPkkwIoOgEqIiMvdjEvcmVwb3J0cy9yYXRlL25vbnBlcmZvcm1pbmc6cmVhZBKoAQoVTGlzdFVudGFnZ2VkUmVzb3VyY2VzEi4uYmx1ZWFwaS5jb3Zlci52MS5MaXN0VW50YWdnZWRSZXNvdXJjZXNSZXF1ZXN0Gi8uYmx1ZWFwaS5jb3Zlci52MS5MaXN0VW50YWdnZWRSZXNvdXJjZXNSZXNwb25zZSIugtPkkwIoOgEqIiMvdjEvcmVwb3J0cy9yZXNvdXJjZXMvdW50YWdnZWQ6cmVhZBJ/Cg1MaXN0Rm9yZWNhc3RzEiYuYmx1ZWFwaS5jb3Zlci52MS5MaXN0Rm9yZWNhc3RzUmVxdWVzdBonLmJsdWVhcGkuY292ZXIudjEuTGlzdEZvcmVjYXN0c1Jlc3BvbnNlIh2C0+STAhc6ASoiEi92MS9mb3JlY2FzdHM6cmVhZBKJAQoSQ3JlYXRlQ29zdEZvcmVjYXN0EisuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVDb3N0Rm9yZWNhc3RSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVDb3N0Rm9yZWNhc3RSZXNwb25zZSIYgtPkkwISOgEqIg0vdjEvZm9yZWNhc3RzEoIBCg9HZXRDb3N0Rm9yZWNhc3QSKC5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RGb3JlY2FzdFJlcXVlc3QaKS5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RGb3JlY2FzdFJlc3BvbnNlIhqC0+STAhQSEi92MS9mb3JlY2FzdHMve2lkfRKOAQoSVXBkYXRlQ29zdEZvcmVjYXN0EisuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0Rm9yZWNhc3RSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0Rm9yZWNhc3RSZXNwb25zZSIdgtPkkwIXOgEqGhIvdjEvZm9yZWNhc3RzL3tpZH0SiwEKEkRlbGV0ZUNvc3RGb3JlY2FzdBIrLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQ29zdEZvcmVjYXN0UmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQ29zdEZvcmVjYXN0UmVzcG9uc2UiGoLT5JMCFCoSL3YxL2ZvcmVjYXN0cy97aWR9EpsBChRHZXRDb3N0Rm9yZWNhc3RzRGF0YRItLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEZvcmVjYXN0c0RhdGFSZXF1ZXN0Gi4uYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0Rm9yZWNhc3RzRGF0YVJlc3BvbnNlIiKC0+STAhw6ASoiFy92MS9mb3JlY2FzdHMvZGF0YTpyZWFkMAESjwEKE0dldFJlY29tbWVuZGF0aW9uVjMSLC5ibHVlYXBpLmNvdmVyLnYxLkdldFJlY29tbWVuZGF0aW9uVjNSZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5HZXRSZWNvbW1lbmRhdGlvblYzUmVzcG9uc2UiG4LT5JMCFRITL3YxL3JlY29tbWVuZGF0aW9ucxKcAQoVTGlzdFJlY29tbWVuZGF0aW9uc1YzEi4uYmx1ZWFwaS5jb3Zlci52MS5MaXN0UmVjb21tZW5kYXRpb25zVjNSZXF1ZXN0GicuYmx1ZWFwaS5jb3Zlci52MS5SZWNvbW1lbmRhdGlvblN1bW1hcnkiKILT5JMCIjoBKiIdL3YxL3JlY29tbWVuZGF0aW9ucy9zdW1tYXJpZXMwARKlAQoXRXhlY3V0ZVJlY29tbWVuZGF0aW9uVjMSMC5ibHVlYXBpLmNvdmVyLnYxLkV4ZWN1dGVSZWNvbW1lbmRhdGlvblYzUmVxdWVzdBoxLmJsdWVhcGkuY292ZXIudjEuRXhlY3V0ZVJlY29tbWVuZGF0aW9uVjNSZXNwb25zZSIlgtPkkwIfOgEqIhovdjEvcmVjb21tZW5kYXRpb24vZXhlY3V0ZRqXAZJBkwESQihCRVRBKSBDb3ZlciBBUEkuIEJhc2UgVVJMOiBodHRwczovL2FwaS5hbHBoYXVzLmNsb3VkL20vYmx1ZS9jb3ZlchpNChJTZXJ2aWNlIGRlZmluaXRpb24SN2h0dHBzOi8vZ2l0aHViLmNvbS9hbHBoYXVzbGFicy9ibHVlYXBpL3RyZWUvbWFpbi9jb3Zlci9CSwoXY2xvdWQuYWxwaGF1cy5hcGkuY292ZXJCCkNvdmVyUHJvdG9aJGdpdGh1Yi5jb20vYWxwaGF1c2xhYnMvYmx1ZWFwaS9jb3ZlcmIGcHJvdG8z", [file_api_cover_optimizationrecommendation, file_api_cover_recommendation_recommendation, file_api_cover_attribute, file_api_cover_user, file_api_cover_view, file_api_cover_unitcost, file_api_cover_costgroup, file_api_cover_accountaccess, file_api_cover_costforecast, file_api_cover_discountplan, file_api_cover_discountrecommendation, file_api_cover_rightsizingrecommendation, file_api_cover_alert, file_api_cover_budget, file_api_cover_insightreport, file_protos_operation, file_google_api_annotations, file_google_protobuf_empty, file_google_protobuf_struct, file_protoc_gen_openapiv2_options_annotations]);
49
+ fileDesc("ChRjb3Zlci92MS9jb3Zlci5wcm90bxIQYmx1ZWFwaS5jb3Zlci52MSIhChNSZWludml0ZVVzZXJSZXF1ZXN0EgoKAmlkGAEgASgJIhYKFFJlaW52aXRlVXNlclJlc3BvbnNlIhIKEExpc3RVc2Vyc1JlcXVlc3QivQEKEUxpc3RVc2Vyc1Jlc3BvbnNlEj4KBXVzZXJzGAEgAygLMi8uYmx1ZWFwaS5jb3Zlci52MS5MaXN0VXNlcnNSZXNwb25zZS5Vc2VyU3VtbWFyeRpoCgtVc2VyU3VtbWFyeRIKCgJpZBgBIAEoCRINCgVlbWFpbBgCIAEoCRIMCgRuYW1lGAMgASgJEg0KBXJvbGVzGAQgAygJEhEKCWFjdGl2YXRlZBgFIAEoCBIOCgZhdmF0YXIYBiABKAkiUgoVVXBkYXRlVXNlclJvbGVSZXF1ZXN0Eg8KB3VzZXJfaWQYASABKAkSEAoIcm9sZV9pZHMYAiADKAkSFgoOY29zdF9ncm91cF9pZHMYAyADKAkiGAoWVXBkYXRlVXNlclJvbGVSZXNwb25zZSIfChFEZWxldGVVc2VyUmVxdWVzdBIKCgJpZBgBIAEoCSIUChJEZWxldGVVc2VyUmVzcG9uc2UiTQoSSW52aXRlVXNlcnNSZXF1ZXN0Eg4KBmVtYWlscxgBIAMoCRIPCgdyb2xlX2lkGAIgASgJEhYKDmNvc3RfZ3JvdXBfaWRzGAMgAygJIhUKE0ludml0ZVVzZXJzUmVzcG9uc2Ui7QEKHkV4ZWN1dGVSZWNvbW1lbmRhdGlvblYzUmVxdWVzdBILCgNpZHMYASADKAkSUQoLZXhlY3V0ZVR5cGUYAiABKA4yPC5ibHVlYXBpLmNvdmVyLnYxLkV4ZWN1dGVSZWNvbW1lbmRhdGlvblYzUmVxdWVzdC5FeGVjdXRlVHlwZSJrCgtFeGVjdXRlVHlwZRILCgdERUZBVUxUEAASFAoQTUFSS19BU19FWEVDVVRFRBABEhEKDVVORE9fRVhFQ1VURUQQAhITCg9TVUJNSVRfVEVNUExBVEUQAxIRCg1SRVRSWV9FWEVDVVRFEAQiSgofRXhlY3V0ZVJlY29tbWVuZGF0aW9uVjNSZXNwb25zZRInCgZyZXN1bHQYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IsMBChxMaXN0UmVjb21tZW5kYXRpb25zVjNSZXF1ZXN0EhMKC2Nvc3Rncm91cElkGAEgASgJEhAKCHN0YXR1c2VzGAIgAygJEkwKB2ZpbHRlcnMYAyADKAsyOy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RSZWNvbW1lbmRhdGlvbnNWM1JlcXVlc3QuRmlsdGVyc0VudHJ5Gi4KDEZpbHRlcnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIvUDChVSZWNvbW1lbmRhdGlvblN1bW1hcnkSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIOCgZ0YXJnZXQYAyABKAkSEgoKdGFyZ2V0TmFtZRgSIAEoCRIQCghjYXRlZ29yeRgEIAEoCRIMCgR0eXBlGAUgASgJEg4KBnZlbmRvchgNIAEoCRIOCgZzb3VyY2UYEyABKAkSDAoEY29kZRgOIAEoCRIUCgdzZXJ2aWNlGA8gASgJSACIAQESEwoGcmVnaW9uGBAgASgJSAGIAQESFwoKcmVzb3VyY2VJZBgRIAEoCUgCiAEBEh8KF2VzdGltYXRlZE1vbnRobHlTYXZpbmdzGAYgASgBEiIKGmVzdGltYXRlZE1vbnRobHlCZWZvcmVDb3N0GAcgASgBEiEKGWVzdGltYXRlZE1vbnRobHlBZnRlckNvc3QYCCABKAESEQoEcmlzaxgJIAEoCUgDiAEBEhMKBmVmZm9ydBgKIAEoCUgEiAEBEg4KBnN0YXR1cxgLIAEoCRIyChFhZGRpdGlvbmFsRGV0YWlscxgMIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RCCgoIX3NlcnZpY2VCCQoHX3JlZ2lvbkINCgtfcmVzb3VyY2VJZEIHCgVfcmlza0IJCgdfZWZmb3J0IikKGkdldFJlY29tbWVuZGF0aW9uVjNSZXF1ZXN0EgsKA2lkcxgBIAMoCSKSBQobR2V0UmVjb21tZW5kYXRpb25WM1Jlc3BvbnNlElsKD3JlY29tbWVuZGF0aW9ucxgBIAMoCzJCLmJsdWVhcGkuY292ZXIudjEuR2V0UmVjb21tZW5kYXRpb25WM1Jlc3BvbnNlLlJlY29tbWVuZGF0aW9uRGV0YWlsGpUEChRSZWNvbW1lbmRhdGlvbkRldGFpbBIKCgJpZBgBIAEoCRIMCgRuYW1lGAkgASgJEg4KBnZlbmRvchgCIAEoCRIOCgZzb3VyY2UYAyABKAkSDAoEY29kZRgEIAEoCRIUCgdzZXJ2aWNlGAUgASgJSACIAQESDgoGdGFyZ2V0GAcgASgJEhIKCnRhcmdldE5hbWUYCCABKAkSFAoMZGF0ZURldGVjdGVkGAYgASgJEhMKBnJlZ2lvbhgKIAEoCUgBiAEBEiIKGmVzdGltYXRlZE1vbnRobHlCZWZvcmVDb3N0GAsgASgBEiEKGWVzdGltYXRlZE1vbnRobHlBZnRlckNvc3QYDCABKAESHwoXZXN0aW1hdGVkTW9udGhseVNhdmluZ3MYDSABKAESFwoKcmVzb3VyY2VJZBgOIAEoCUgCiAEBEhAKCGNhdGVnb3J5GA8gASgJEgwKBHR5cGUYECABKAkSEwoLbGFzdFVwZGF0ZWQYESABKAkSDgoGc3RhdHVzGBIgASgJEhEKBHJpc2sYEyABKAlIA4gBARITCgZlZmZvcnQYFCABKAlIBIgBARIoCgdkZXRhaWxzGBUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEIKCghfc2VydmljZUIJCgdfcmVnaW9uQg0KC19yZXNvdXJjZUlkQgcKBV9yaXNrQgkKB19lZmZvcnQi6gEKG0dldENvc3RGb3JlY2FzdHNEYXRhUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIRCglzdGFydFRpbWUYAiABKAkSDwoHZW5kVGltZRgDIAEoCRJOCgtncmFudWxhcml0eRgEIAEoDjI5LmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEZvcmVjYXN0c0RhdGFSZXF1ZXN0LkdyYW51bGFyaXR5IkIKC0dyYW51bGFyaXR5EhsKF0dSQU5VTEFSSVRZX1VOU1BFQ0lGSUVEEAASCQoFREFJTFkQARILCgdNT05USExZEAIiagocR2V0Q29zdEZvcmVjYXN0c0RhdGFSZXNwb25zZRIMCgRkYXRlGAEgASgJEhQKDGZvcmVjYXN0Q29zdBgCIAEoARISCgp1cHBlckJvdW5kGAMgASgBEhIKCmxvd2VyQm91bmQYBCABKAEiFgoUTGlzdEZvcmVjYXN0c1JlcXVlc3QiXAoVTGlzdEZvcmVjYXN0c1Jlc3BvbnNlEkMKE2Nvc3RGb3JlY2FzdERldGFpbHMYASADKAsyJi5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0Rm9yZWNhc3REZXRhaWxzIvMBChlDcmVhdGVDb3N0Rm9yZWNhc3RSZXF1ZXN0EhQKDGZvcmVjYXN0TmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRIvCgljb3N0R3JvdXAYAyABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXASGwoTcGFzdEFjdHVhbENvc3RSYW5nZRgEIAEoAxIZChFsb29rRm9yd2FyZFBlcmlvZBgFIAEoAxJCChNleHRlcm5hbEFkanVzdG1lbnRzGAYgAygLMiUuYmx1ZWFwaS5hcGkuY292ZXIuRXh0ZXJuYWxBZGp1c3RtZW50IoACChpDcmVhdGVDb3N0Rm9yZWNhc3RSZXNwb25zZRIKCgJpZBgBIAEoCRIUCgxmb3JlY2FzdE5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSLwoJY29zdEdyb3VwGAQgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwEhsKE3Bhc3RBY3R1YWxDb3N0UmFuZ2UYBSABKAMSGQoRbG9va0ZvcndhcmRQZXJpb2QYBiABKAMSQgoTZXh0ZXJuYWxBZGp1c3RtZW50cxgHIAMoCzIlLmJsdWVhcGkuYXBpLmNvdmVyLkV4dGVybmFsQWRqdXN0bWVudCIkChZHZXRDb3N0Rm9yZWNhc3RSZXF1ZXN0EgoKAmlkGAEgASgJIr8CChdHZXRDb3N0Rm9yZWNhc3RSZXNwb25zZRIKCgJpZBgBIAEoCRIUCgxmb3JlY2FzdE5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSLwoJY29zdEdyb3VwGAQgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwEhsKE3Bhc3RBY3R1YWxDb3N0UmFuZ2UYBSABKAMSGQoRbG9va0ZvcndhcmRQZXJpb2QYBiABKAMSQgoTZXh0ZXJuYWxBZGp1c3RtZW50cxgHIAMoCzIlLmJsdWVhcGkuYXBpLmNvdmVyLkV4dGVybmFsQWRqdXN0bWVudBIRCgljcmVhdGVkQnkYCCABKAkSFAoMY3JlYXRpb25EYXRlGAkgASgJEhcKD2xhc3RVcGRhdGVkRGF0ZRgKIAEoCSL/AQoZVXBkYXRlQ29zdEZvcmVjYXN0UmVxdWVzdBIKCgJpZBgBIAEoCRIUCgxmb3JlY2FzdE5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSLwoJY29zdEdyb3VwGAQgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwEhsKE3Bhc3RBY3R1YWxDb3N0UmFuZ2UYBSABKAMSGQoRbG9va0ZvcndhcmRQZXJpb2QYBiABKAMSQgoTZXh0ZXJuYWxBZGp1c3RtZW50cxgHIAMoCzIlLmJsdWVhcGkuYXBpLmNvdmVyLkV4dGVybmFsQWRqdXN0bWVudCLCAgoaVXBkYXRlQ29zdEZvcmVjYXN0UmVzcG9uc2USCgoCaWQYASABKAkSFAoMZm9yZWNhc3ROYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEi8KCWNvc3RHcm91cBgEIAEoCzIcLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cBIbChNwYXN0QWN0dWFsQ29zdFJhbmdlGAUgASgDEhkKEWxvb2tGb3J3YXJkUGVyaW9kGAYgASgDEkIKE2V4dGVybmFsQWRqdXN0bWVudHMYByADKAsyJS5ibHVlYXBpLmFwaS5jb3Zlci5FeHRlcm5hbEFkanVzdG1lbnQSEQoJY3JlYXRlZEJ5GAggASgJEhQKDGNyZWF0aW9uRGF0ZRgJIAEoCRIXCg9sYXN0VXBkYXRlZERhdGUYCiABKAkiJwoZRGVsZXRlQ29zdEZvcmVjYXN0UmVxdWVzdBIKCgJpZBgBIAEoCSIoChpEZWxldGVDb3N0Rm9yZWNhc3RSZXNwb25zZRIKCgJpZBgBIAEoCSJvChZHZXRDb3N0VXNhZ2VWMlJlc3BvbnNlEg0KBXZhbHVlGAEgASgBEgwKBGRhdGUYAiABKAkSDgoGdmVuZG9yGAMgASgJEigKB2RldGFpbHMYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ir8EChVHZXRDb3N0VXNhZ2VWMlJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSEQoJc3RhcnRUaW1lGAIgASgJEg8KB2VuZFRpbWUYAyABKAkSSAoLZ3JhbnVsYXJpdHkYBCABKA4yMy5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RVc2FnZVYyUmVxdWVzdC5HcmFudWxhcml0eRIQCghncm91cEJ5cxgFIAMoCRJCCghjYXRlZ29yeRgGIAEoDjIwLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdFVzYWdlVjJSZXF1ZXN0LkNhdGVnb3J5EhAKCGN1cnJlbmN5GAcgASgJEjoKCmF3c09wdGlvbnMYCCABKAsyJi5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXBBd3NPcHRpb25zEkQKD2F6dXJlY3NwT3B0aW9ucxgJIAEoCzIrLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cEF6dXJlQ3NwT3B0aW9ucxI6CgpnY3BPcHRpb25zGAogASgLMiYuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwR2NwT3B0aW9ucyJCCgtHcmFudWxhcml0eRIbChdHUkFOVUxBUklUWV9VTlNQRUNJRklFRBAAEgkKBURBSUxZEAESCwoHTU9OVEhMWRACIjkKCENhdGVnb3J5EhgKFENhdGVnb3J5X1VOU1BFQ0lGSUVEEAASCAoEQ09TVBABEgkKBVVTQUdFEAIiGQoXUG9wdWxhdGVEZW1vRGF0YVJlcXVlc3QiGgoYUG9wdWxhdGVEZW1vRGF0YVJlc3BvbnNlIhYKFFJlc2V0RGVtb0RhdGFSZXF1ZXN0IhcKFVJlc2V0RGVtb0RhdGFSZXNwb25zZSLfBgoZQ29udGFpbmVyQ29zdFVzYWdlUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSSgoKbWV0cmljVHlwZRgDIAEoDjI2LmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVxdWVzdC5NZXRyaWNUeXBlEhEKCXN0YXJ0VGltZRgEIAEoCRIPCgdlbmRUaW1lGAUgASgJElAKC2dyYW51bGFyaXR5GAYgASgOMjsuYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXF1ZXN0LlRpbWVHcmFudWxhcml0eRIQCghncm91cEJ5cxgHIAMoCRJLCgdmaWx0ZXJzGAggAygLMjouYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXF1ZXN0LkZpbHRlckNyaXRlcmlhEkwKC3NlcnZpY2VUeXBlGAkgASgOMjcuYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXF1ZXN0LlNlcnZpY2VUeXBlGs8BCg5GaWx0ZXJDcml0ZXJpYRILCgNrZXkYASABKAkSWwoIb3BlcmF0b3IYAiABKA4ySS5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlcXVlc3QuRmlsdGVyQ3JpdGVyaWEuRmlsdGVyT3BlcmF0b3ISDQoFdmFsdWUYAyABKAkiRAoORmlsdGVyT3BlcmF0b3ISGAoUT1BFUkFUT1JfVU5TUEVDSUZJRUQQABIJCgVFUVVBTBABEg0KCU5PVF9FUVVBTBACIkYKD1RpbWVHcmFudWxhcml0eRIbChdHUkFOVUxBUklUWV9VTlNQRUNJRklFRBAAEgkKBURBSUxZEAESCwoHTU9OVEhMWRACIloKCk1ldHJpY1R5cGUSFgoSTUVUUklDX1VOU1BFQ0lGSUVEEAASCAoEQ09TVBABEgkKBVVTQUdFEAISDgoKRUZGSUNJRU5DWRADEg8KC1VOVVNFRF9DT1NUEAQiOAoLU2VydmljZVR5cGUSFwoTU0VSVklDRV9VTlNQRUNJRklFRBAAEgcKA0VDUxABEgcKA0VLUxACItcKChpDb250YWluZXJDb3N0VXNhZ2VSZXNwb25zZRJLCgdyZXN1bHRzGAEgAygLMjouYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5Hcm91cGVkUmVzdWx0ElMKCmhpZ2hsaWdodHMYAiABKAsyPy5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlLlJlc291cmNlSGlnaGxpZ2h0cxIRCgl0b3RhbENvc3QYAyABKAESFQoNYXZnRWZmaWNpZW5jeRgEIAEoARpECgpDb3N0TWV0cmljEg4KBmFtb3VudBgBIAEoARIQCghjdXJyZW5jeRgCIAEoCRIUCgx1bnVzZWRBbW91bnQYAyABKAEakAEKC1VzYWdlTWV0cmljEgwKBHVuaXQYASABKAkSFgoOcmVzZXJ2ZWRBbW91bnQYAiABKAESFAoMYWN0dWFsQW1vdW50GAMgASgBEhIKCmVmZmljaWVuY3kYBCABKAESFgoOY3B1VXRpbGl6YXRpb24YBSABKAESGQoRbWVtb3J5VXRpbGl6YXRpb24YBiABKAEawQEKD01ldHJpY0RhdGFQb2ludBIMCgRkYXRlGAEgASgJEkcKBGNvc3QYAiABKAsyNy5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlLkNvc3RNZXRyaWNIABJJCgV1c2FnZRgDIAEoCzI4LmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVzcG9uc2UuVXNhZ2VNZXRyaWNIAEIMCgptZXRyaWNEYXRhGkwKEVJlc291cmNlSGlnaGxpZ2h0EhIKCnJlc291cmNlSWQYASABKAkSFAoMcmVzb3VyY2VOYW1lGAIgASgJEg0KBXZhbHVlGAMgASgBGoQDChJSZXNvdXJjZUhpZ2hsaWdodHMSWgoSaGlnaGVzdENsdXN0ZXJDb3N0GAEgASgLMj4uYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5SZXNvdXJjZUhpZ2hsaWdodBJZChFoaWdoZXN0VW51c2VkQ29zdBgCIAEoCzI+LmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVzcG9uc2UuUmVzb3VyY2VIaWdobGlnaHQSWwoTaGlnaGVzdFdvcmtsb2FkQ29zdBgDIAEoCzI+LmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVzcG9uc2UuUmVzb3VyY2VIaWdobGlnaHQSWgoSaGlnaGVzdENvbXB1dGVDb3N0GAQgASgLMj4uYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5SZXNvdXJjZUhpZ2hsaWdodBr6AQoNR3JvdXBlZFJlc3VsdBJeCgphdHRyaWJ1dGVzGAEgAygLMkouYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5Hcm91cGVkUmVzdWx0LkF0dHJpYnV0ZXNFbnRyeRJWChBtZXRyaWNEYXRhUG9pbnRzGAIgAygLMjwuYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5NZXRyaWNEYXRhUG9pbnQaMQoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEijwQKGEdldEFJQ29zdEFuZFVzYWdlUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSEQoJc3RhcnRUaW1lGAMgASgJEg8KB2VuZFRpbWUYBCABKAkSSwoLZ3JhbnVsYXJpdHkYBSABKA4yNi5ibHVlYXBpLmNvdmVyLnYxLkdldEFJQ29zdEFuZFVzYWdlUmVxdWVzdC5HcmFudWxhcml0eRIQCghncm91cEJ5cxgGIAMoCRJCCgdmaWx0ZXJzGAcgAygLMjEuYmx1ZWFwaS5jb3Zlci52MS5HZXRBSUNvc3RBbmRVc2FnZVJlcXVlc3QuRmlsdGVyGsIBCgZGaWx0ZXISCwoDa2V5GAEgASgJEkwKCG9wZXJhdG9yGAIgASgOMjouYmx1ZWFwaS5jb3Zlci52MS5HZXRBSUNvc3RBbmRVc2FnZVJlcXVlc3QuRmlsdGVyLk9wZXJhdG9yEg4KBnZhbHVlcxgDIAMoCRINCgV2YWx1ZRgEIAEoCSI+CghPcGVyYXRvchIYChRPUEVSQVRPUl9VTlNQRUNJRklFRBAAEgkKBUVRVUFMEAESDQoJTk9UX0VRVUFMEAIiQgoLR3JhbnVsYXJpdHkSGwoXR1JBTlVMQVJJVFlfVU5TUEVDSUZJRUQQABIJCgVEQUlMWRABEgsKB01PTlRITFkQAiKnBAoZR2V0QUlDb3N0QW5kVXNhZ2VSZXNwb25zZRJDCgdyZXN1bHRzGAEgAygLMjIuYmx1ZWFwaS5jb3Zlci52MS5HZXRBSUNvc3RBbmRVc2FnZVJlc3BvbnNlLlJlc3VsdBooCgRDb3N0Eg4KBmFtb3VudBgBIAEoARIQCghjdXJyZW5jeRgCIAEoCRolCgVVc2FnZRIMCgR1bml0GAEgASgJEg4KBmFtb3VudBgCIAEoARqYAQoGTWV0cmljEgwKBGRhdGUYASABKAkSPgoEY29zdBgCIAEoCzIwLmJsdWVhcGkuY292ZXIudjEuR2V0QUlDb3N0QW5kVXNhZ2VSZXNwb25zZS5Db3N0EkAKBXVzYWdlGAMgASgLMjEuYmx1ZWFwaS5jb3Zlci52MS5HZXRBSUNvc3RBbmRVc2FnZVJlc3BvbnNlLlVzYWdlGtgBCgZSZXN1bHQSVgoKYXR0cmlidXRlcxgBIAMoCzJCLmJsdWVhcGkuY292ZXIudjEuR2V0QUlDb3N0QW5kVXNhZ2VSZXNwb25zZS5SZXN1bHQuQXR0cmlidXRlc0VudHJ5EkMKB21ldHJpY3MYAiADKAsyMi5ibHVlYXBpLmNvdmVyLnYxLkdldEFJQ29zdEFuZFVzYWdlUmVzcG9uc2UuTWV0cmljGjEKD0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIhsKGUdldEV4ZWN1dGlvblN0YXR1c1JlcXVlc3QiVwoaR2V0RXhlY3V0aW9uU3RhdHVzUmVzcG9uc2USGAoQcmVjb21tZW5kYXRpb25JZBgBIAEoCRIOCgZzdGF0dXMYAiABKAkSDwoHbWVzc2FnZRgDIAEoCSI4ChZWZXJpZnlBUElBY2Nlc3NSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIOCgZ0YXJnZXQYAiABKAkiKQoXVmVyaWZ5QVBJQWNjZXNzUmVzcG9uc2USDgoGcmVzdWx0GAEgASgIImUKGkdldFJlY29tbWVuZGF0aW9uVjJSZXF1ZXN0EgoKAmlkGAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJEhQKDHBlcmlvZE9wdGlvbhgDIAEoCRIQCghjdXJyZW5jeRgEIAEoCSJhChtHZXRSZWNvbW1lbmRhdGlvblYyUmVzcG9uc2USQgoEZGF0YRgBIAEoCzI0LmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLlJlY29tbWVuZGF0aW9uRGF0YSJRChFPbmJvYXJkT3JnUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIQCghwYXNzd29yZBgCIAEoCRIMCgRuYW1lGAMgASgJEg0KBW9yZ0lkGAQgASgJIkMKEk9uYm9hcmRPcmdSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIk0KE0ludml0ZU1lbWJlclJlcXVlc3QSDQoFZW1haWwYASADKAkSEAoIaXNSZXNlbmQYAiABKAgSFQoNaW52aXRlQXNBZG1pbhgDIAEoCCIlChRJbnZpdGVNZW1iZXJSZXNwb25zZRINCgVlbWFpbBgBIAMoCSKkAQoTQWN0aXZhdGVVc2VyUmVxdWVzdBIOCgZ1c2VySWQYASABKAkSGAoQcHJldmlvdXNQYXNzd29yZBgCIAEoCRIQCghwYXNzd29yZBgDIAEoCRIMCgRuYW1lGAQgASgJEg4KBmxvY2FsZRgFIAEoCRINCgVlbWFpbBgGIAEoCRIPCgdpc0F1dGgwGAcgASgIEhMKC2F1dGgwVXNlcklkGAggASgJIkUKFEFjdGl2YXRlVXNlclJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiWAoTQ3JlYXRlTWVtYmVyUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIQCghwYXNzd29yZBgCIAEoCRIMCgRuYW1lGAMgASgJEhIKCmNvc3Rncm91cHMYBCADKAkiRQoUQ3JlYXRlTWVtYmVyUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSITChFHZXRNZW1iZXJzUmVxdWVzdCJDChJHZXRNZW1iZXJzUmVzcG9uc2USLQoIdXNlckRhdGEYASADKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIpChdHZXRNZW1iZXJEZXRhaWxzUmVxdWVzdBIOCgZ1c2VySWQYASABKAkiSQoYR2V0TWVtYmVyRGV0YWlsc1Jlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiKwoZR2V0TWVtYmVyQ29zdEdyb3VwUmVxdWVzdBIOCgZ1c2VySWQYASABKAkiVAoaR2V0TWVtYmVyQ29zdEdyb3VwUmVzcG9uc2USNgoKY29zdEdyb3VwcxgBIAMoCzIiLmJsdWVhcGkuYXBpLmNvdmVyLk1lbWJlckNvc3RHcm91cCJACh1VcGRhdGVNZW1iZXJQZXJtaXNzaW9uUmVxdWVzdBIOCgZ1c2VySWQYASABKAkSDwoHaXNBZG1pbhgCIAEoCCJPCh5VcGRhdGVNZW1iZXJQZXJtaXNzaW9uUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIXChVHZXRVc2VyRGV0YWlsc1JlcXVlc3QiRwoWR2V0VXNlckRldGFpbHNSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIikKF1VwZGF0ZVVzZXJBdmF0YXJSZXF1ZXN0Eg4KBmF2YXRhchgBIAEoCSJJChhVcGRhdGVVc2VyQXZhdGFyUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIlChVVcGRhdGVVc2VySWNvblJlcXVlc3QSDAoEaWNvbhgBIAEoCSJHChZVcGRhdGVVc2VySWNvblJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiMQobVXBkYXRlVXNlckNvbG9yVGhlbWVSZXF1ZXN0EhIKCmNvbG9yVGhlbWUYASABKAkiTQocVXBkYXRlVXNlckNvbG9yVGhlbWVSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIiUKFVVwZGF0ZVVzZXJOYW1lUmVxdWVzdBIMCgRuYW1lGAEgASgJIkcKFlVwZGF0ZVVzZXJOYW1lUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSInChZVcGRhdGVVc2VyRW1haWxSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJIkgKF1VwZGF0ZVVzZXJFbWFpbFJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiKwoZVXBkYXRlVXNlck1haW5WaWV3UmVxdWVzdBIOCgZ2aWV3SWQYASABKAkiSwoaVXBkYXRlVXNlck1haW5WaWV3UmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSJJChhSZXNldFVzZXJQYXNzd29yZFJlcXVlc3QSGAoQcHJldmlvdXNQYXNzd29yZBgBIAEoCRITCgtuZXdQYXNzd29yZBgCIAEoCSJKChlSZXNldFVzZXJQYXNzd29yZFJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiKQoXVXBkYXRlVXNlckxvY2FsZVJlcXVlc3QSDgoGbG9jYWxlGAEgASgJIkkKGFVwZGF0ZVVzZXJMb2NhbGVSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIi0KGVVwZGF0ZVVzZXJBcHBUaGVtZVJlcXVlc3QSEAoIYXBwVGhlbWUYASABKAkiSwoaVXBkYXRlVXNlckFwcFRoZW1lUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSJDChlVcGRhdGVVc2VyVGltZXpvbmVSZXF1ZXN0EhAKCHRpbWVab25lGAEgASgJEhQKDGF1dG9UaW1lWm9uZRgCIAEoCCJLChpVcGRhdGVVc2VyVGltZXpvbmVSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIjEKG1VwZGF0ZVVzZXJBdHRyaWJ1dGVzUmVxdWVzdBISCgphdHRyaWJ1dGVzGAEgAygJIk0KHFVwZGF0ZVVzZXJBdHRyaWJ1dGVzUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIlChNEZWxldGVNZW1iZXJSZXF1ZXN0Eg4KBnVzZXJJZBgBIAEoCSImChREZWxldGVNZW1iZXJSZXNwb25zZRIOCgZ1c2VySWQYASABKAkiJgoUUmVzZXRQYXNzd29yZFJlcXVlc3QSDgoGdXNlcklkGAEgASgJIicKFVJlc2V0UGFzc3dvcmRSZXNwb25zZRIOCgZ1c2VySWQYASABKAkiuwEKEUNyZWF0ZVZpZXdSZXF1ZXN0EgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSEQoJaXNQcml2YXRlGAMgASgIEhIKCmlzRWRpdGFibGUYBCABKAgSDAoEaWNvbhgFIAEoCRISCgpyZXBvcnRUeXBlGAYgASgJEhIKCmNvbG9yVGhlbWUYByABKAkSFAoMcmVwb3J0UGVyaW9kGAggASgJEhAKCGN1cnJlbmN5GAkgASgJIkMKEkNyZWF0ZVZpZXdSZXNwb25zZRItCgh2aWV3RGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlZpZXdEYXRhIhEKD0dldFZpZXdzUmVxdWVzdCJBChBHZXRWaWV3c1Jlc3BvbnNlEi0KCHZpZXdMaXN0GAEgAygLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVmlld0xpc3QiJwoVR2V0Q3VycmVudFZpZXdSZXF1ZXN0Eg4KBnZpZXdJZBgBIAEoCSJHChZHZXRDdXJyZW50Vmlld1Jlc3BvbnNlEi0KCHZpZXdEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVmlld0RhdGEiGQoXR2V0RmF2b3JpdGVWaWV3c1JlcXVlc3QiSwoYR2V0RmF2b3JpdGVWaWV3c1Jlc3BvbnNlEi8KCWZhdm9yaXRlcxgBIAMoCzIcLmJsdWVhcGkuYXBpLmNvdmVyLkZhdm9yaXRlcyIkChJQdWJsaXNoVmlld1JlcXVlc3QSDgoGdmlld0lkGAEgASgJIiIKE1B1Ymxpc2hWaWV3UmVzcG9uc2USCwoDdXJsGAEgASgJIiQKEkFkZEZhdm9yaXRlUmVxdWVzdBIOCgZ2aWV3SWQYASABKAkiJQoTQWRkRmF2b3JpdGVSZXNwb25zZRIOCgZ2aWV3SWQYASABKAkiJwoVUmVtb3ZlRmF2b3JpdGVSZXF1ZXN0Eg4KBnZpZXdJZBgBIAEoCSIoChZSZW1vdmVGYXZvcml0ZVJlc3BvbnNlEg4KBnZpZXdJZBgBIAEoCSKPAQoRVXBkYXRlVmlld1JlcXVlc3QSDgoGdmlld0lkGAEgASgJEgwKBG5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSDAoEaWNvbhgEIAEoCRIRCglpc1ByaXZhdGUYBSABKAgSEgoKaXNFZGl0YWJsZRgGIAEoCBISCgpjb2xvclRoZW1lGAcgASgJIiQKElVwZGF0ZVZpZXdSZXNwb25zZRIOCgZ2aWV3SWQYASABKAkiWAoXVXBkYXRlVmlld0xheW91dFJlcXVlc3QSDgoGdmlld0lkGAEgASgJEi0KBmxheW91dBgCIAMoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLldpZGdldERhdGEiSQoYVXBkYXRlVmlld0xheW91dFJlc3BvbnNlEi0KBmxheW91dBgBIAMoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLlZpZXdMYXlvdXQimgEKF1VwZGF0ZVZpZXdXaWRnZXRSZXF1ZXN0Eg4KBnZpZXdJZBgBIAEoCRIQCgh3aWRnZXRJZBgCIAEoCRIoCgdvcHRpb25zGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIzCghyZXF1ZXN0cxgEIAMoCzIhLmJsdWVhcGkuYXBpLmNvdmVyLkxheW91dFJlcXVlc3RzIl8KGFVwZGF0ZVZpZXdXaWRnZXRSZXNwb25zZRIQCgh3aWRnZXRJZBgBIAEoCRIxCgp3aWRnZXREYXRhGAIgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuV2lkZ2V0RGF0YSJBChtVcGRhdGVWaWV3Q29sb3JUaGVtZVJlcXVlc3QSDgoGdmlld0lkGAEgASgJEhIKCmNvbG9yVGhlbWUYAiABKAkiTQocVXBkYXRlVmlld0NvbG9yVGhlbWVSZXNwb25zZRItCgh2aWV3RGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlZpZXdEYXRhIj0KGVVwZGF0ZVZpZXdDdXJyZW5jeVJlcXVlc3QSDgoGdmlld0lkGAEgASgJEhAKCGN1cnJlbmN5GAIgASgJIksKGlVwZGF0ZVZpZXdDdXJyZW5jeVJlc3BvbnNlEi0KCHZpZXdEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVmlld0RhdGEiNQobU2V0T3JnVXBkYXRlQ3VycmVuY3lSZXF1ZXN0EhYKDnVwZGF0ZUN1cnJlbmN5GAEgASgDIjYKHFNldE9yZ1VwZGF0ZUN1cnJlbmN5UmVzcG9uc2USFgoOdXBkYXRlQ3VycmVuY3kYASABKAMiHQobR2V0T3JnVXBkYXRlQ3VycmVuY3lSZXF1ZXN0IlkKHEdldE9yZ1VwZGF0ZUN1cnJlbmN5UmVzcG9uc2USDQoFb3JnSWQYASABKAkSFgoOdXBkYXRlQ3VycmVuY3kYAiABKAMSEgoKbGFzdFVwZGF0ZRgDIAEoCSI+ChhMaXN0RXhjaGFuZ2VSYXRlc1JlcXVlc3QSEQoJc3RhcnREYXRlGAEgASgJEg8KB2VuZERhdGUYAiABKAkiYgoZTGlzdEV4Y2hhbmdlUmF0ZXNSZXNwb25zZRINCgVvcmdJZBgBIAEoCRI2Cg1leGNoYW5nZVJhdGVzGAIgAygLMh8uYmx1ZWFwaS5jb3Zlci52MS5FeGNoYW5nZVJhdGVzIkIKDUV4Y2hhbmdlUmF0ZXMSDQoFbW9udGgYASABKAkSFAoMZXhjaGFuZ2VSYXRlGAIgASgCEgwKBGRhdGUYAyABKAkiIwoRRGVsZXRlVmlld1JlcXVlc3QSDgoGdmlld0lkGAEgASgJIiQKEkRlbGV0ZVZpZXdSZXNwb25zZRIOCgZ2aWV3SWQYASABKAkiZQoaVXBkYXRlU2lkZU1lbnVTdGF0ZVJlcXVlc3QSDgoGdmlld0lkGAEgASgJEjcKDXNpZGVtZW51c3RhdGUYAiADKAsyIC5ibHVlYXBpLmFwaS5jb3Zlci5TaWRlTWVudVN0YXRlIi0KG1VwZGF0ZVNpZGVNZW51U3RhdGVSZXNwb25zZRIOCgZ2aWV3SWQYASABKAkiQAoaQWRkU2lkZU1lbnVGYXZvcml0ZVJlcXVlc3QSDgoGdmlld0lkGAEgASgJEhIKCm1lbnVJdGVtSWQYAiABKAkiLQobQWRkU2lkZU1lbnVGYXZvcml0ZVJlc3BvbnNlEg4KBnZpZXdJZBgBIAEoCSJDCh1SZW1vdmVTaWRlTWVudUZhdm9yaXRlUmVxdWVzdBIOCgZ2aWV3SWQYASABKAkSEgoKbWVudUl0ZW1JZBgCIAEoCSIwCh5SZW1vdmVTaWRlTWVudUZhdm9yaXRlUmVzcG9uc2USDgoGdmlld0lkGAEgASgJItMBChZDcmVhdGVDb3N0R3JvdXBSZXF1ZXN0EgwKBG5hbWUYASABKAkSLgoEdHlwZRgHIAEoDjIgLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cFR5cGUSEwoLZGVzY3JpcHRpb24YAiABKAkSDQoFaW1hZ2UYAyABKAkSDAoEaWNvbhgEIAEoCRISCgpjb2xvclRoZW1lGAUgASgJEjUKDGNvbWJpbmF0aW9ucxgGIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkNvbWJpbmF0aW9ucyJSChdDcmVhdGVDb3N0R3JvdXBSZXNwb25zZRI3Cg1jb3N0R3JvdXBEYXRhGAEgASgLMiAuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwRGF0YSIWChRHZXRDb3N0R3JvdXBzUmVxdWVzdCJQChVHZXRDb3N0R3JvdXBzUmVzcG9uc2USNwoNY29zdEdyb3VwRGF0YRgBIAMoCzIgLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cERhdGEiMQoaR2V0Q29zdEdyb3VwRGV0YWlsc1JlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkiVgobR2V0Q29zdEdyb3VwRGV0YWlsc1Jlc3BvbnNlEjcKDWNvc3RHcm91cERhdGEYASABKAsyIC5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXBEYXRhIj8KGlVwZGF0ZUNvc3RHcm91cE5hbWVSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEgwKBG5hbWUYAiABKAkiKwobVXBkYXRlQ29zdEdyb3VwTmFtZVJlc3BvbnNlEgwKBG5hbWUYASABKAkiTQohVXBkYXRlQ29zdEdyb3VwRGVzY3JpcHRpb25SZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJIjkKIlVwZGF0ZUNvc3RHcm91cERlc2NyaXB0aW9uUmVzcG9uc2USEwoLZGVzY3JpcHRpb24YASABKAkiQQobVXBkYXRlQ29zdEdyb3VwSW1hZ2VSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEg0KBWltYWdlGAIgASgJIi0KHFVwZGF0ZUNvc3RHcm91cEltYWdlUmVzcG9uc2USDQoFaW1hZ2UYASABKAkiPwoaVXBkYXRlQ29zdEdyb3VwSWNvblJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSDAoEaWNvbhgCIAEoCSIrChtVcGRhdGVDb3N0R3JvdXBJY29uUmVzcG9uc2USDAoEaWNvbhgBIAEoCSJLCiBVcGRhdGVDb3N0R3JvdXBDb2xvclRoZW1lUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRISCgpjb2xvclRoZW1lGAIgASgJIjcKIVVwZGF0ZUNvc3RHcm91cENvbG9yVGhlbWVSZXNwb25zZRISCgpjb2xvclRoZW1lGAEgASgJInAKIlVwZGF0ZUNvc3RHcm91cENvbWJpbmF0aW9uc1JlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSNQoMY29tYmluYXRpb25zGAIgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQ29tYmluYXRpb25zIlwKI1VwZGF0ZUNvc3RHcm91cENvbWJpbmF0aW9uc1Jlc3BvbnNlEjUKDGNvbWJpbmF0aW9ucxgBIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkNvbWJpbmF0aW9ucyJDChxBc3NpZ25Db3N0R3JvdXBNZW1iZXJSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEg4KBnVzZXJJZBgCIAEoCSJECh1Bc3NpZ25Db3N0R3JvdXBNZW1iZXJSZXNwb25zZRITCgtjb3N0R3JvdXBJZBgBIAEoCRIOCgZ1c2VySWQYAiABKAkiQwocUmVtb3ZlQ29zdEdyb3VwTWVtYmVyUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIOCgZ1c2VySWQYAiABKAkiRAodUmVtb3ZlQ29zdEdyb3VwTWVtYmVyUmVzcG9uc2USEwoLY29zdEdyb3VwSWQYASABKAkSDgoGdXNlcklkGAIgASgJIi0KFkRlbGV0ZUNvc3RHcm91cFJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkiLgoXRGVsZXRlQ29zdEdyb3VwUmVzcG9uc2USEwoLY29zdEdyb3VwSWQYASABKAkiMgoiR2V0QWNjb3VudEFjY2Vzc1RlbXBsYXRlVXJsUmVxdWVzdBIMCgR0eXBlGAEgASgJIocBCiNHZXRBY2NvdW50QWNjZXNzVGVtcGxhdGVVcmxSZXNwb25zZRIRCglsYXVuY2hVcmwYASABKAkSEwoLdGVtcGxhdGVVcmwYAiABKAkSEQoJc3RhY2tOYW1lGAMgASgJEhEKCXByaW5jaXBhbBgEIAEoCRISCgpleHRlcm5hbElkGAUgASgJIhoKGExpc3RBY2NvdW50QWNjZXNzUmVxdWVzdCIpChdHZXRBY2NvdW50QWNjZXNzUmVxdWVzdBIOCgZ0YXJnZXQYASABKAki2gIKDUFjY291bnRBY2Nlc3MSDgoGdGFyZ2V0GAEgASgJEhMKC2FjY291bnROYW1lGAIgASgJEhMKC2FjY291bnRUeXBlGAMgASgJEg8KB3BheWVySWQYBCABKAkSDwoHcm9sZUFybhgFIAEoCRISCgpleHRlcm5hbElkGAYgASgJEg8KB3N0YWNrSWQYByABKAkSEwoLc3RhY2tSZWdpb24YCCABKAkSEwoLdGVtcGxhdGVVcmwYCSABKAkSEgoKYnVja2V0TmFtZRgKIAEoCRIOCgZwcmVmaXgYCyABKAkSEgoKcmVwb3J0TmFtZRgMIAEoCRJBChJyZWdpc3RyYXRpb25TdGF0dXMYDSABKAsyJS5ibHVlYXBpLmFwaS5jb3Zlci5SZWdpc3RyYXRpb25TdGF0dXMSDgoGc3RhdHVzGA4gASgJEhMKC2xhc3RVcGRhdGVkGA8gASgJIkMKGkNyZWF0ZUFjY291bnRBY2Nlc3NSZXF1ZXN0Eg4KBnRhcmdldBgBIAEoCRIVCg1mcm9tVGVycmFmb3JtGAIgASgIIkQKIkNyZWF0ZUFjY291bnRBY2Nlc3NTdGFja3NldFJlcXVlc3QSDgoGdGFyZ2V0GAEgASgJEg4KBnJlZ2lvbhgCIAEoCSIsChpVcGRhdGVBY2NvdW50QWNjZXNzUmVxdWVzdBIOCgZ0YXJnZXQYASABKAkiPAoaRGVsZXRlQWNjb3VudEFjY2Vzc1JlcXVlc3QSDgoGdGFyZ2V0GAEgASgJEg4KBnZlbmRvchgCIAEoCSIvChtEZWxldGVBY2NvdW50QWNjZXNzUmVzcG9uc2USEAoIdGFyZ2V0SWQYASABKAkiUAoWUmVnaXN0ZXJBY2NvdW50UmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEQoJYWNjb3VudElkGAIgASgJEhMKC2FjY291bnROYW1lGAMgASgJIuYBChFMaXN0QXNzZXRzUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRISCgpzdGFydE1vbnRoGAIgASgJEhAKCGVuZE1vbnRoGAMgASgJEhoKEndpdGhSZWNvbW1lbmRhdGlvbhgEIAEoCBI3Cgphd3NPcHRpb25zGAUgAygLMiMuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QXNzZXRzRmlsdGVycxJBChRhd3NQcm9wZXJ0aWVzT3B0aW9ucxgGIAMoCzIjLmJsdWVhcGkuY292ZXIudjEuTGlzdEFzc2V0c0ZpbHRlcnMijwEKEUxpc3RBc3NldHNGaWx0ZXJzEkcKCmFuZEZpbHRlcnMYASADKAsyMy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RBc3NldHNGaWx0ZXJzLkFuZEZpbHRlcnNFbnRyeRoxCg9BbmRGaWx0ZXJzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASK9AQoIUmVzb3VyY2USDAoEZGF0ZRgBIAEoCRINCgVvcmdJZBgCIAEoCRIOCgZ2ZW5kb3IYAyABKAkSDwoHYWNjb3VudBgEIAEoCRIPCgdzZXJ2aWNlGAUgASgJEhIKCnJlc291cmNlSWQYBiABKAkSFAoMcmVzb3VyY2VUeXBlGAcgASgJEgwKBGNvc3QYCCABKAESEgoKcHJvcGVydGllcxgJIAEoCRIWCg5yZWNvbW1lbmRhdGlvbhgKIAEoCSLmAQoXR2V0QXNzZXRzU3VtbWFyeVJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSEgoKc3RhcnRNb250aBgCIAEoCRIQCghlbmRNb250aBgDIAEoCRIUCgxjb21iaW5lRGF0ZXMYBCABKAgSNwoKYXdzT3B0aW9ucxgFIAMoCzIjLmJsdWVhcGkuY292ZXIudjEuTGlzdEFzc2V0c0ZpbHRlcnMSQQoUYXdzUHJvcGVydGllc09wdGlvbnMYBiADKAsyIy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RBc3NldHNGaWx0ZXJzImsKGEdldEFzc2V0c1N1bW1hcnlSZXNwb25zZRIwCgdzdW1tYXJ5GAEgAygLMh8uYmx1ZWFwaS5jb3Zlci52MS5Bc3NldHNTdW1tYXJ5Eh0KFXJlY29tbWVuZGF0aW9uU3VtbWFyeRgCIAEoCSJYCg1Bc3NldHNTdW1tYXJ5EgwKBGRhdGUYASABKAkSDgoGdmVuZG9yGAIgASgJEhYKDnRvdGFsUmVzb3VyY2VzGAMgASgDEhEKCXRvdGFsQ29zdBgEIAEoASI6CiNSZXNvbHZlQ29zdEdyb3VwQ29tYmluYXRpb25zUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCSJpCiRSZXNvbHZlQ29zdEdyb3VwQ29tYmluYXRpb25zUmVzcG9uc2USEwoLY29zdEdyb3VwSWQYASABKAkSLAoIYWNjb3VudHMYAiADKAsyGi5ibHVlYXBpLmFwaS5jb3Zlci5BY2NvdW50IscEChNHZXRDb3N0VXNhZ2VSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhEKCXN0YXJ0VGltZRgCIAEoCRIPCgdlbmRUaW1lGAMgASgJEhQKDGdyb3VwQnlNb250aBgEIAEoCBINCgVsaW1pdBgFIAEoAxIQCghjYXRlZ29yeRgGIAEoCRIPCgdncm91cEJ5GAcgASgJEhcKD2luY2x1ZGVaZXJvQ29zdBgIIAEoCBJDCgphd3NPcHRpb25zGAkgASgLMi8uYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0VXNhZ2VSZXF1ZXN0QXdzT3B0aW9ucxJHCgxhenVyZU9wdGlvbnMYCiABKAsyMS5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RVc2FnZVJlcXVlc3RBenVyZU9wdGlvbnMSQwoKZ2NwT3B0aW9ucxgLIAEoCzIvLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdFVzYWdlUmVxdWVzdEdjcE9wdGlvbnMSTQoPYXp1cmVjc3BPcHRpb25zGAwgASgLMjQuYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0VXNhZ2VSZXF1ZXN0QXp1cmVDc3BPcHRpb25zEkkKDWN1c3RvbU9wdGlvbnMYDSABKAsyMi5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RVc2FnZVJlcXVlc3RDdXN0b21PcHRpb25zEhcKD2luY2x1ZGVGb3JlY2FzdBgOIAEoCBIQCghjdXJyZW5jeRgPIAEoCSLnAQodR2V0Q29zdFVzYWdlUmVxdWVzdEF3c09wdGlvbnMSFgoOZ3JvdXBCeUNvbHVtbnMYASABKAkSFQoNZ3JvdXBBY2NvdW50cxgCIAEoCBJBCgdmaWx0ZXJzGAMgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSRAoKdGFnRmlsdGVycxgEIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEg4KBnRhZ0tleRgFIAEoCSLZAQofR2V0Q29zdFVzYWdlUmVxdWVzdEF6dXJlT3B0aW9ucxIWCg5ncm91cEJ5Q29sdW1ucxgBIAEoCRIVCg1ncm91cEFjY291bnRzGAIgASgIEkEKB2ZpbHRlcnMYAyADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxJECgp0YWdGaWx0ZXJzGAQgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMi/gIKHUdldENvc3RVc2FnZVJlcXVlc3RHY3BPcHRpb25zEhYKDmdyb3VwQnlDb2x1bW5zGAEgASgJEhUKDWdyb3VwQWNjb3VudHMYAiABKAgSQQoHZmlsdGVycxgDIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEkQKCnRhZ0ZpbHRlcnMYBCADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxJGCgxsYWJlbEZpbHRlcnMYBSADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxJNChNwcm9qZWN0TGFiZWxGaWx0ZXJzGAYgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSDgoGdGFnS2V5GAcgASgJIuwBCiJHZXRDb3N0VXNhZ2VSZXF1ZXN0QXp1cmVDc3BPcHRpb25zEhYKDmdyb3VwQnlDb2x1bW5zGAEgASgJEhUKDWdyb3VwQWNjb3VudHMYAiABKAgSQQoHZmlsdGVycxgDIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEkQKCnRhZ0ZpbHRlcnMYBCADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxIOCgZ0YWdLZXkYBSABKAkigQMKIEdldENvc3RVc2FnZVJlcXVlc3RDdXN0b21PcHRpb25zEhYKDmdyb3VwQnlDb2x1bW5zGAEgASgJEhUKDWdyb3VwQWNjb3VudHMYAiABKAgSQQoHZmlsdGVycxgDIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEkQKCnRhZ0ZpbHRlcnMYBCADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxJGCgxsYWJlbEZpbHRlcnMYBSADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxJNChNwcm9qZWN0TGFiZWxGaWx0ZXJzGAYgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSDgoGdGFnS2V5GAcgASgJIqkBCh5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSVAoKYW5kRmlsdGVycxgBIAMoCzJALmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzLkFuZEZpbHRlcnNFbnRyeRoxCg9BbmRGaWx0ZXJzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASL2AwoIQ29zdEl0ZW0SDgoGdmVuZG9yGAEgASgJEgwKBGRhdGUYAiABKAkSDwoHcHJvZHVjdBgDIAEoCRIPCgdhY2NvdW50GAQgASgJEhEKCXVzYWdlVHlwZRgQIAEoCRISCgpjaGFyZ2VUeXBlGBEgASgJEgwKBGNvc3QYBSABKAESDwoHZGV0YWlscxgGIAEoCRI0Cghmb3JlY2FzdBgHIAEoCzIiLmJsdWVhcGkuYXBpLmNvdmVyLkF3c0Nvc3RGb3JlY2FzdBIOCgZyZWdpb24YCCABKAkSFgoOYmlsbGluZ0FjY291bnQYCSABKAkSEAoIdGFnVmFsdWUYCiABKAkSEgoKbGFzdFVwZGF0ZRgLIAEoCRIMCgR1bml0GAwgASgJEhAKCGNhdGVnb3J5GA0gASgJEg4KBnRhZ2dlZBgOIAEoCBIVCg1udW1iZXJPZlVuaXRzGBIgASgBEkYKDnVuaXRjb3N0bWV0cmljGA8gAygLMi4uYmx1ZWFwaS5jb3Zlci52MS5Db3N0SXRlbS5Vbml0Y29zdG1ldHJpY0VudHJ5EhoKEmFsbG9jYXRpb25DYXRlZ29yeRgTIAEoCRo1ChNVbml0Y29zdG1ldHJpY0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoAToCOAEiOgojR2V0UmlnaHRTaXppbmdSZWNvbW1lbmRhdGlvblJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkiWQokR2V0UmlnaHRTaXppbmdSZWNvbW1lbmRhdGlvblJlc3BvbnNlEjEKCHJlc291cmNlGAEgAygLMh8uYmx1ZWFwaS5hcGkuY292ZXIuUmVzb3VyY2VEYXRhIngKGU1vZGlmeVJlc291cmNlVHlwZVJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhEKCWFjY291bnRJZBgCIAEoCRISCgpyZXNvdXJjZUlkGAMgASgJEhQKDHJlc291cmNlVHlwZRgEIAEoCRIOCgZyZWdpb24YBSABKAkiaQoaTW9kaWZ5UmVzb3VyY2VUeXBlUmVzcG9uc2USEQoJYWNjb3VudElkGAEgASgJEhIKCnJlc291cmNlSWQYAiABKAkSFAoMcmVzb3VyY2VUeXBlGAMgASgJEg4KBnJlZ2lvbhgEIAEoCSJhChhUZXJtaW5hdGVSZXNvdXJjZVJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhEKCWFjY291bnRJZBgCIAEoCRISCgpyZXNvdXJjZUlkGAMgASgJEg4KBnJlZ2lvbhgEIAEoCSJSChlUZXJtaW5hdGVSZXNvdXJjZVJlc3BvbnNlEhEKCWFjY291bnRJZBgBIAEoCRISCgpyZXNvdXJjZUlkGAIgASgJEg4KBnJlZ2lvbhgDIAEoCSJDChdVcGxvYWRDaGFyZ2VDb2RlUmVxdWVzdBIMCgRuYW1lGAEgASgJEgwKBHR5cGUYAiABKAkSDAoEZmlsZRgDIAEoDCJSChhVcGxvYWRDaGFyZ2VDb2RlUmVzcG9uc2USDAoEbmFtZRgBIAEoCRIoCgZzdGF0dXMYAiABKA4yGC5ibHVlYXBpLmNvdmVyLnYxLlN0YXR1cyJIChJBc3NpZ25QYXllclJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhEKCWFjY291bnRJZBgCIAEoCRIPCgdwYXllcklkGAMgASgJIjkKE0Fzc2lnblBheWVyUmVzcG9uc2USEQoJYWNjb3VudElkGAEgASgJEg8KB3BheWVySWQYAiABKAkiIgoQR2V0UGF5ZXJzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkiIwoRR2V0UGF5ZXJzUmVzcG9uc2USDgoGcGF5ZXJzGAEgAygJIjkKEkdldEFjY291bnRzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEwoLY29zdEdyb3VwSWQYAiABKAkiJwoTR2V0QWNjb3VudHNSZXNwb25zZRIQCghhY2NvdW50cxgBIAMoCSI5ChJHZXRTZXJ2aWNlc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJIicKE0dldFNlcnZpY2VzUmVzcG9uc2USEAoIc2VydmljZXMYASADKAkiOAoRR2V0UmVnaW9uc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJIiUKEkdldFJlZ2lvbnNSZXNwb25zZRIPCgdyZWdpb25zGAEgAygJIjUKDkdldFRhZ3NSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRITCgtjb3N0R3JvdXBJZBgCIAEoCSI+Cg9HZXRUYWdzUmVzcG9uc2USKwoHdGFnRGF0YRgBIAMoCzIaLmJsdWVhcGkuYXBpLmNvdmVyLlRhZ0RhdGEiIAoPTGlzdEZlZXNSZXF1ZXN0Eg0KBW1vbnRoGAEgASgJIu0CCgpGZWVEZXRhaWxzEgoKAmlkGAEgASgJEg0KBW9yZ0lkGAIgASgJEg4KBnZlbmRvchgDIAEoCRIPCgdhY2NvdW50GAQgASgJEg0KBW1vbnRoGAUgASgJEhAKCGxpbmVUeXBlGAYgASgJEg8KB2ZlZVR5cGUYByABKAkSEwoLcHJvZHVjdENvZGUYCCABKAkSEwoLZGVzY3JpcHRpb24YCSABKAkSDwoHc3RhcnRlZBgKIAEoCRIUCgx0aW1lSW50ZXJ2YWwYCyABKAkSEwoLcHJvZHVjdE5hbWUYDCABKAkSEAoIY3VycmVuY3kYDSABKAkSEwoLc3BsaXRTdGF0dXMYDiABKAkSEwoLaXNBbGxvY2F0ZWQYDyABKAgSEQoJaXNBcHBsaWVkGBAgASgIEhUKDXVuYmxlbmRlZENvc3QYESABKAESEQoJc291cmNlRmVlGBIgASgJEhIKCmxhc3RVcGRhdGUYEyABKAkiIgoRUmVzdG9yZUZlZVJlcXVlc3QSDQoFZmVlSWQYASABKAkiUQoWR2V0Q29zdEdyb3VwRmVlUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIRCglzdGFydFRpbWUYAiABKAkSDwoHZW5kVGltZRgDIAEoCSJmCgdGZWVJdGVtEg4KBnZlbmRvchgBIAEoCRINCgVtb250aBgCIAEoCRIPCgdwcm9kdWN0GAMgASgJEg8KB2FjY291bnQYBCABKAkSDAoEdHlwZRgFIAEoCRIMCgRjb3N0GAYgASgBIkkKCUFsbG9jYXRvchIMCgR0eXBlGAEgASgJEg0KBXZhbHVlGAIgASgJEg8KB2Zvcm11bGEYAyABKAkSDgoGbW9udGhzGAQgASgDImgKCENyaXRlcmlhEjAKA2FuZBgBIAMoCzIjLmJsdWVhcGkuY292ZXIudjEuQ3JpdGVyaWEuQW5kRW50cnkaKgoIQW5kRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASKiAgoUQ29zdEFsbG9jYXRvckRldGFpbHMSCgoCaWQYASABKAkSEAoIY2F0ZWdvcnkYAiABKAkSEgoKZXhwaXJhdGlvbhgDIAEoAxISCgpzdGFydE1vbnRoGAQgASgJEhYKDmRlZmF1bHRBY2NvdW50GAUgASgJEjEKCGNyaXRlcmlhGAYgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQ29tYmluYXRpb25zEi4KCWFsbG9jYXRvchgHIAMoCzIbLmJsdWVhcGkuY292ZXIudjEuQWxsb2NhdG9yEhIKCmNyZWF0ZVRpbWUYCCABKAkSEgoKdXBkYXRlVGltZRgJIAEoCRIMCgRuYW1lGAogASgJEhMKC2Rlc2NyaXB0aW9uGAsgASgJIvoBChRDb3N0QWxsb2NhdG9yUmVxdWVzdBIKCgJpZBgBIAEoCRIQCghjYXRlZ29yeRgCIAEoCRISCgpleHBpcmF0aW9uGAMgASgDEhIKCnN0YXJ0TW9udGgYBCABKAkSFgoOZGVmYXVsdEFjY291bnQYBSABKAkSMQoIY3JpdGVyaWEYBiABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Db21iaW5hdGlvbnMSLgoJYWxsb2NhdG9yGAcgAygLMhsuYmx1ZWFwaS5jb3Zlci52MS5BbGxvY2F0b3ISDAoEbmFtZRgIIAEoCRITCgtkZXNjcmlwdGlvbhgJIAEoCSIXChVMaXN0QWxsb2NhdG9yc1JlcXVlc3Qi8AEKFkNyZWF0ZUFsbG9jYXRvclJlcXVlc3QSEAoIY2F0ZWdvcnkYASABKAkSEgoKZXhwaXJhdGlvbhgCIAEoAxISCgpzdGFydE1vbnRoGAMgASgJEhYKDmRlZmF1bHRBY2NvdW50GAQgASgJEjEKCGNyaXRlcmlhGAUgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQ29tYmluYXRpb25zEi4KCWFsbG9jYXRvchgGIAMoCzIbLmJsdWVhcGkuY292ZXIudjEuQWxsb2NhdG9yEgwKBG5hbWUYByABKAkSEwoLZGVzY3JpcHRpb24YCCABKAkiMgoeR2V0QWxsb2NhdGlvbkF0dHJpYnV0ZXNSZXF1ZXN0EhAKCGNhdGVnb3J5GAEgASgJIrEBCh9HZXRBbGxvY2F0aW9uQXR0cmlidXRlc1Jlc3BvbnNlElgKCWF0dHJpYnV0ZRgBIAMoCzJFLmJsdWVhcGkuY292ZXIudjEuR2V0QWxsb2NhdGlvbkF0dHJpYnV0ZXNSZXNwb25zZS5BbGxvY2F0aW9uQXR0cmlidXRlGjQKE0FsbG9jYXRpb25BdHRyaWJ1dGUSDAoEdHlwZRgBIAEoCRIPCgdzZXJ2aWNlGAIgAygJIj4KG0dldEFsbG9jYXRpb25Tb3VyY2VzUmVxdWVzdBIMCgR0eXBlGAEgASgJEhEKCWFjY291bnRJZBgCIAEoCSLrAQocR2V0QWxsb2NhdGlvblNvdXJjZXNSZXNwb25zZRJQCgZzb3VyY2UYASADKAsyQC5ibHVlYXBpLmNvdmVyLnYxLkdldEFsbG9jYXRpb25Tb3VyY2VzUmVzcG9uc2UuQWxsb2NhdGlvblNvdXJjZXMSKwoHdGFnRGF0YRgCIAMoCzIaLmJsdWVhcGkuYXBpLmNvdmVyLlRhZ0RhdGEaTAoRQWxsb2NhdGlvblNvdXJjZXMSEwoLYWNjb3VudE5hbWUYASABKAkSDwoHc2VydmljZRgCIAEoCRIRCgljb3N0R3JvdXAYAyABKAkiJAoWRGVsZXRlQWxsb2NhdG9yUmVxdWVzdBIKCgJpZBgBIAEoCSJHChxQcm94eUNyZWF0ZUNvbXBsZXRpb25SZXF1ZXN0EicKBnBhcmFtcxgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiLQodUHJveHlDcmVhdGVDb21wbGV0aW9uUmVzcG9uc2USDAoEbGluZRgBIAEoCSLUBAoTQWNjb3VudFVzYWdlRGV0YWlscxIKCgJpZBgBIAEoCRINCgVvcmdJZBgCIAEoCRIOCgZ2ZW5kb3IYAyABKAkSDwoHYWNjb3VudBgEIAEoCRIMCgRkYXRlGAUgASgJEhMKC3Byb2R1Y3RDb2RlGAYgASgJEhMKC3NlcnZpY2VDb2RlGAcgASgJEg4KBnJlZ2lvbhgIIAEoCRIMCgR6b25lGAkgASgJEhEKCXVzYWdlVHlwZRgKIAEoCRIUCgxpbnN0YW5jZVR5cGUYCyABKAkSEQoJb3BlcmF0aW9uGAwgASgJEhEKCWludm9pY2VJZBgNIAEoCRITCgtkZXNjcmlwdGlvbhgOIAEoCRISCgpyZXNvdXJjZUlkGA8gASgJEgwKBHRhZ3MYECABKAkSFgoOY29zdENhdGVnb3JpZXMYESABKAkSEwoLdXNhZ2VBbW91bnQYEiABKAESGQoRdHJ1ZVVuYmxlbmRlZENvc3QYEyABKAESFQoNdW5ibGVuZGVkQ29zdBgUIAEoARIVCg1lZmZlY3RpdmVDb3N0GBUgASgBEhUKDWFtb3J0aXplZENvc3QYFiABKAESGgoScHVibGljT25EZW1hbmRDb3N0GBcgASgBEhsKE3VudXNlZEFtb3J0aXplZENvc3QYGCABKAESEgoKbGFzdFVwZGF0ZRgZIAEoCRITCgtzcGxpdFN0YXR1cxgaIAEoCRITCgtpc0FsbG9jYXRlZBgbIAEoCBIRCglpc0FwcGxpZWQYHCABKAgSDgoGc291cmNlGB0gASgJIj0KF0xpc3RBY2NvdW50VXNhZ2VSZXF1ZXN0EhEKCXN0YXJ0RGF0ZRgBIAEoCRIPCgdlbmREYXRlGAIgASgJIjIKGlJlc3RvcmVBY2NvdW50VXNhZ2VSZXF1ZXN0EhQKDGFsbG9jYXRpb25JZBgBIAEoCSIjChVSZXN0b3JlU2F2aW5nc1JlcXVlc3QSCgoCaWQYASABKAkiugIKDlNhdmluZ3NEZXRhaWxzEgoKAmlkGAEgASgJEg0KBW9yZ0lkGAIgASgJEg4KBnZlbmRvchgDIAEoCRIPCgdhY2NvdW50GAQgASgJEg0KBW1vbnRoGAUgASgJEgwKBHR5cGUYBiABKAkSCwoDYXJuGAcgASgJEhMKC3Byb2R1Y3RDb2RlGAggASgJEhIKCm9mZmVyQ2xhc3MYCSABKAkSEAoIb25kZW1hbmQYCiABKAESFQoNZWZmZWN0aXZlQ29zdBgLIAEoARIPCgdzYXZpbmdzGAwgASgBEhMKC3NwbGl0U3RhdHVzGA0gASgJEhMKC2lzQWxsb2NhdGVkGA4gASgIEhEKCWlzQXBwbGllZBgPIAEoCBIOCgZzb3VyY2UYECABKAkSEgoKbGFzdFVwZGF0ZRgRIAEoCSJqCh1HZXRDb3N0R3JvdXBBbGxvY2F0aW9uUmVxdWVzdBIQCghjYXRlZ29yeRgBIAEoCRITCgtjb3N0R3JvdXBJZBgCIAEoCRIRCglzdGFydERhdGUYAyABKAkSDwoHZW5kRGF0ZRgEIAEoCSKAAQoOQWxsb2NhdGlvbkl0ZW0SDgoGdmVuZG9yGAEgASgJEg0KBW1vbnRoGAIgASgJEg8KB3Byb2R1Y3QYAyABKAkSDwoHYWNjb3VudBgEIAEoCRIMCgR0eXBlGAUgASgJEgwKBGNvc3QYBiABKAESEQoJY29zdEdyb3VwGAcgASgJIl8KF1Byb2Nlc3NBdXRoMFVzZXJSZXF1ZXN0Eg4KBnNvdXJjZRgBIAEoCRISCgpjdXN0b21lcklkGAIgASgJEg0KBWVtYWlsGAMgASgJEhEKCXN1YnVzZXJJZBgEIAEoCSIwChhQcm9jZXNzQXV0aDBVc2VyUmVzcG9uc2USFAoMaXNBdXRob3JpemVkGAEgASgIIpUCCgpEYXRhQWNjZXNzEg4KBnRhcmdldBgBIAEoCRINCgVvcmdJZBgCIAEoCRIxCgpnY3BPcHRpb25zGAMgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuR2NwT3B0aW9ucxI1CgxhenVyZU9wdGlvbnMYBCABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5BenVyZU9wdGlvbnMSMQoKYXdzT3B0aW9ucxgFIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkF3c09wdGlvbnMSEwoLYWNjb3VudFR5cGUYBiABKAkSEgoKbGFzdFVwZGF0ZRgHIAEoCRISCgpjcmVhdGVUaW1lGAggASgJEg4KBnZlbmRvchgJIAEoCSLtAQoZUmVnaXN0ZXJEYXRhQWNjZXNzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDgoGdGFyZ2V0GAIgASgJEhMKC2FjY291bnRUeXBlGAMgASgJEjEKCmdjcE9wdGlvbnMYBCABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5HY3BPcHRpb25zEjUKDGF6dXJlT3B0aW9ucxgFIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkF6dXJlT3B0aW9ucxIxCgphd3NPcHRpb25zGAYgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuQXdzT3B0aW9ucyLrAQoXVXBkYXRlRGF0YUFjY2Vzc1JlcXVlc3QSDgoGdGFyZ2V0GAEgASgJEg4KBnZlbmRvchgCIAEoCRIxCgpnY3BPcHRpb25zGAMgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuR2NwT3B0aW9ucxI1CgxhenVyZU9wdGlvbnMYBCABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5BenVyZU9wdGlvbnMSMQoKYXdzT3B0aW9ucxgFIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkF3c09wdGlvbnMSEwoLYWNjb3VudFR5cGUYBiABKAkiFwoVTGlzdERhdGFBY2Nlc3NSZXF1ZXN0IiEKH0xpc3RVbnJlZ2lzdGVyZWRBY2NvdW50c1JlcXVlc3QicQogTGlzdFVucmVnaXN0ZXJlZEFjY291bnRzUmVzcG9uc2USDQoFb3JnSWQYASABKAkSPgoRdW5yZWdpc3RlcmVkQWNjdHMYAiADKAsyIy5ibHVlYXBpLmNvdmVyLnYxLlVucmVnaXN0ZXJlZEFjY3RzIlQKEVVucmVnaXN0ZXJlZEFjY3RzEgoKAmlkGAEgASgJEg8KB3BheWVySWQYAiABKAkSDgoGc3RhdHVzGAMgASgJEhIKCmxhc3RVcGRhdGUYBCABKAkifAoVQmlsbGluZ0FjY291bnRSZXF1ZXN0EhEKCWJpbGxpbmdJZBgBIAEoCRIRCglkYXRhc2V0SWQYAiABKAkSFQoNZGF0YXNldFJlZ2lvbhgDIAEoCRIRCglwcm9qZWN0SWQYBCABKAkSEwoLYmlsbGluZ05hbWUYBSABKAkiVAodR2V0QW5kRGVsZXRlRGF0YUFjY2Vzc1JlcXVlc3QSDgoGdGFyZ2V0GAEgASgJEg4KBnZlbmRvchgCIAEoCRITCgthY2NvdW50VHlwZRgDIAEoCSJhCiJBZGRQYXJ0bmVyQ2VudGVyQ3JlZGVudGlhbHNSZXF1ZXN0EhEKCWFjY291bnRJZBgBIAEoCRIVCg1hcHBsaWNhdGlvbklkGAIgASgJEhEKCXNlY3JldEtleRgDIAEoCSIlChRBZGRNcG5TZXR0aW5nUmVxdWVzdBINCgVtcG5JZBgBIAEoCSLWAQocR2V0Q29zdEdyb3VwQXR0cmlidXRlUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSFQoNYXR0cmlidXRlVHlwZRgCIAEoCRITCgtjb3N0R3JvdXBJZBgDIAEoCRI9ChRleGlzdGluZ0NvbWJpbmF0aW9ucxgEIAMoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkNvbWJpbmF0aW9ucxI7ChJjdXJyZW50Q29tYmluYXRpb24YBSABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Db21iaW5hdGlvbnMidwodR2V0Q29zdEdyb3VwQXR0cmlidXRlUmVzcG9uc2USKQoGcmVzdWx0GAEgAygLMhkuYmx1ZWFwaS5hcGkuY292ZXIuUmVzdWx0EisKB3RhZ0RhdGEYAiADKAsyGi5ibHVlYXBpLmFwaS5jb3Zlci5UYWdEYXRhIiYKFEdldENhdGVnb3JpZXNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCSJGChVHZXRDYXRlZ29yaWVzUmVzcG9uc2USLQoIY2F0ZWdvcnkYASADKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5DYXRlZ29yeSISChBHZXRBbGVydHNSZXF1ZXN0IkQKEUdldEFsZXJ0c1Jlc3BvbnNlEi8KCWFsZXJ0RGF0YRgBIAEoCzIcLmJsdWVhcGkuYXBpLmNvdmVyLkFsZXJ0RGF0YSKGAQoSQ3JlYXRlQWxlcnRSZXF1ZXN0EgwKBG5hbWUYASABKAkSEwoLZml4ZWRBbW91bnQYAiABKAISEgoKcGVyY2VudGFnZRgDIAEoAhITCgtncmFudWxhcml0eRgEIAEoCRISCgpjb3N0R3JvdXBzGAUgAygJEhAKCGNoYW5uZWxzGAYgAygJIkYKE0NyZWF0ZUFsZXJ0UmVzcG9uc2USLwoJYWxlcnREYXRhGAEgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQWxlcnREYXRhIiQKFkdldEFsZXJ0RGV0YWlsc1JlcXVlc3QSCgoCaWQYASABKAkiSgoXR2V0QWxlcnREZXRhaWxzUmVzcG9uc2USLwoJYWxlcnREYXRhGAEgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQWxlcnREYXRhIiAKEkRlbGV0ZUFsZXJ0UmVxdWVzdBIKCgJpZBgBIAEoCSIhChNEZWxldGVBbGVydFJlc3BvbnNlEgoKAmlkGAEgASgJIpkBChlVcGRhdGVBbGVydERldGFpbHNSZXF1ZXN0EgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSEwoLZml4ZWRBbW91bnQYAyABKAISEgoKcGVyY2VudGFnZRgEIAEoAhITCgtncmFudWxhcml0eRgFIAEoCRISCgpjb3N0R3JvdXBzGAYgAygJEhAKCGNoYW5uZWxzGAcgAygJIk0KGlVwZGF0ZUFsZXJ0RGV0YWlsc1Jlc3BvbnNlEi8KCWFsZXJ0RGF0YRgBIAEoCzIcLmJsdWVhcGkuYXBpLmNvdmVyLkFsZXJ0RGF0YSIiChJHZXRDaGFubmVsc1JlcXVlc3QSDAoEdHlwZRgBIAEoCSJKChNHZXRDaGFubmVsc1Jlc3BvbnNlEjMKC2NoYW5uZWxEYXRhGAEgASgLMh4uYmx1ZWFwaS5hcGkuY292ZXIuQ2hhbm5lbERhdGEiRgoUQ3JlYXRlQ2hhbm5lbFJlcXVlc3QSDAoEbmFtZRgBIAEoCRIMCgR0eXBlGAIgASgJEhIKCndlYmhvb2tVcmwYAyABKAkiTAoVQ3JlYXRlQ2hhbm5lbFJlc3BvbnNlEjMKC2NoYW5uZWxEYXRhGAEgASgLMh4uYmx1ZWFwaS5hcGkuY292ZXIuQ2hhbm5lbERhdGEiJgoYR2V0Q2hhbm5lbERldGFpbHNSZXF1ZXN0EgoKAmlkGAEgASgJIlAKGUdldENoYW5uZWxEZXRhaWxzUmVzcG9uc2USMwoLY2hhbm5lbERhdGEYASABKAsyHi5ibHVlYXBpLmFwaS5jb3Zlci5DaGFubmVsRGF0YSIiChREZWxldGVDaGFubmVsUmVxdWVzdBIKCgJpZBgBIAEoCSIjChVEZWxldGVDaGFubmVsUmVzcG9uc2USCgoCaWQYASABKAkiWQobVXBkYXRlQ2hhbm5lbERldGFpbHNSZXF1ZXN0EgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDAoEdHlwZRgDIAEoCRISCgp3ZWJob29rVXJsGAQgASgJIlMKHFVwZGF0ZUNoYW5uZWxEZXRhaWxzUmVzcG9uc2USMwoLY2hhbm5lbERhdGEYASABKAsyHi5ibHVlYXBpLmFwaS5jb3Zlci5DaGFubmVsRGF0YSLPAQohR2V0RGlzY291bnRSZWNvbW1lbmRhdGlvbnNSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEi8KCWF3c0lucHV0cxgCIAEoCzIcLmJsdWVhcGkuYXBpLmNvdmVyLkF3c0lucHV0cxIzCgthenVyZUlucHV0cxgDIAEoCzIeLmJsdWVhcGkuYXBpLmNvdmVyLkF6dXJlSW5wdXRzEi8KCWdjcElucHV0cxgEIAEoCzIcLmJsdWVhcGkuYXBpLmNvdmVyLkdjcElucHV0cyKJAgoiR2V0RGlzY291bnRSZWNvbW1lbmRhdGlvbnNSZXNwb25zZRJJChJhd3NSZWNvbW1lbmRhdGlvbnMYASABKAsyLS5ibHVlYXBpLmFwaS5jb3Zlci5Bd3NEaXNjb3VudFJlY29tbWVuZGF0aW9ucxJNChRhenVyZVJlY29tbWVuZGF0aW9ucxgCIAEoCzIvLmJsdWVhcGkuYXBpLmNvdmVyLkF6dXJlRGlzY291bnRSZWNvbW1lbmRhdGlvbnMSSQoSZ2NwUmVjb21tZW5kYXRpb25zGAMgASgLMi0uYmx1ZWFwaS5hcGkuY292ZXIuR2NwRGlzY291bnRSZWNvbW1lbmRhdGlvbnMiVwocR2V0QW5vbWFseWluQ29zdEdyb3VwUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIRCglzdGFydERhdGUYAiABKAkSDwoHZW5kRGF0ZRgDIAEoCSLhAQoLQW5vbWFseURhdGESDwoHYWNjb3VudBgBIAEoCRITCgtjb3N0R3JvdXBJZBgCIAEoCRIOCgZ2ZW5kb3IYAyABKAkSDwoHcHJvZHVjdBgEIAEoCRIMCgRkYXRlGAUgASgJEhEKCXRvdGFsQ29zdBgGIAEoAhIRCglpc0Fub21hbHkYByABKAgSEgoKbG93ZXJMaW1pdBgIIAEoAhISCgp1cHBlckxpbWl0GAkgASgCEhMKC2Fub21hbHlDb3N0GAogASgCEhoKEmFub21hbHlQcm9iYWJpbGl0eRgLIAEoAiKFAQokQ3JlYXRlRGlzY291bnRFeHBpcmF0aW9uQWxlcnRSZXF1ZXN0EhMKC2ZyZXF1ZW5jaWVzGAEgAygDEhIKCmNvc3RHcm91cHMYAiADKAkSFAoMYWxlcnRFbmFibGVkGAMgASgIEhAKCGNoYW5uZWxzGAQgAygJEgwKBG5hbWUYBSABKAkiNgooTWFuaXB1bGF0ZURpc2NvdW50RXhwaXJhdGlvbkFsZXJ0UmVxdWVzdBIKCgJpZBgBIAEoCSKRAQokVXBkYXRlRGlzY291bnRFeHBpcmF0aW9uQWxlcnRSZXF1ZXN0EgoKAmlkGAEgASgJEhQKDGFsZXJ0RW5hYmxlZBgCIAEoCBIQCghjaGFubmVscxgDIAMoCRITCgtmcmVxdWVuY2llcxgEIAMoAxISCgpjb3N0R3JvdXBzGAUgAygJEgwKBG5hbWUYBiABKAki6QEKF0Rpc2NvdW50RXhwaXJ5QWxlcnREYXRhEgoKAmlkGAEgASgJEg0KBW9yZ0lkGAIgASgJEhQKDGFsZXJ0RW5hYmxlZBgDIAEoCBITCgtmcmVxdWVuY2llcxgEIAMoAxI1Cgpjb3N0R3JvdXBzGAUgAygLMiEuYmx1ZWFwaS5hcGkuY292ZXIuQWxlcnRDb3N0R3JvdXASDwoHZGV0YWlscxgGIAEoCRIyCghjaGFubmVscxgHIAEoCzIgLmJsdWVhcGkuYXBpLmNvdmVyLkFsZXJ0Q2hhbm5lbHMSDAoEbmFtZRgIIAEoCSIkCiJMaXN0RGlzY291bnRFeHBpcmF0aW9uQWxlcnRSZXF1ZXN0IoUBChlDcmVhdGVBbm9tYWx5QWxlcnRSZXF1ZXN0EgwKBG5hbWUYASABKAkSFAoMYWxlcnRFbmFibGVkGAIgASgIEhEKCWZyZXF1ZW5jeRgDIAEoCRITCgtjb3N0R3JvdXBJZBgEIAEoCRIcChRub3RpZmljYXRpb25DaGFubmVscxgFIAMoCSIrCh1NYW5pcHVsYXRlQW5vbWFseUFsZXJ0UmVxdWVzdBIKCgJpZBgBIAEoCSLQAQoQQW5vbWFseUFsZXJ0RGF0YRIKCgJpZBgBIAEoCRINCgVvcmdJZBgCIAEoCRIMCgRuYW1lGAMgASgJEhQKDGFsZXJ0RW5hYmxlZBgEIAEoCBIRCglmcmVxdWVuY3kYBSABKAkSNgoLY29zdEdyb3VwSWQYBiABKAsyIS5ibHVlYXBpLmFwaS5jb3Zlci5BbGVydENvc3RHcm91cBIyCghjaGFubmVscxgHIAEoCzIgLmJsdWVhcGkuYXBpLmNvdmVyLkFsZXJ0Q2hhbm5lbHMiGQoXTGlzdEFub21hbHlBbGVydFJlcXVlc3QikQEKGVVwZGF0ZUFub21hbHlBbGVydFJlcXVlc3QSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIUCgxhbGVydEVuYWJsZWQYAyABKAgSHAoUbm90aWZpY2F0aW9uQ2hhbm5lbHMYBCADKAkSEQoJZnJlcXVlbmN5GAUgASgJEhMKC2Nvc3RHcm91cElkGAYgASgJIokBChZSZWdpc3Rlck5ld1VzZXJSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJEhAKCHBhc3N3b3JkGAIgASgJEgwKBG5hbWUYAyABKAkSDwoHY29tcGFueRgEIAEoCRIMCgRyb2xlGAUgASgJEg4KBmFtb3VudBgGIAEoCRIRCglpbnRlbnRpb24YByABKAkiLwoXUmVnaXN0ZXJOZXdVc2VyUmVzcG9uc2USFAoMaXNBdXRob3JpemVkGAEgASgIIiYKFUdldFVzZXJQcm9maWxlUmVxdWVzdBINCgVlbWFpbBgBIAEoCSLOAQoWR2V0VXNlclByb2ZpbGVSZXNwb25zZRIZChFoYXNDcmVhdGVkUHJvZmlsZRgBIAEoCBIMCgRuYW1lGAIgASgJEgwKBHJvbGUYAyABKAkSDQoFdXNhZ2UYBCABKAkSEQoJaW50ZW50aW9uGAUgASgJEhMKC2NvbXBhbnlOYW1lGAYgASgJEhQKDGVtYWlsQWRkcmVzcxgHIAEoCRISCgpsaW5rU291cmNlGAggASgJEhwKFGhhc1N1YnNjcmliZWRVcGRhdGVzGAkgASgIIq4BChhVcGRhdGVVc2VyUHJvZmlsZVJlcXVlc3QSDQoFZW1haWwYASABKAkSDAoEbmFtZRgCIAEoCRIMCgRyb2xlGAMgASgJEg0KBXVzYWdlGAQgASgJEhEKCWludGVudGlvbhgFIAEoCRITCgtjb21wYW55TmFtZRgGIAEoCRISCgpsaW5rU291cmNlGAcgASgJEhwKFGhhc1N1YnNjcmliZWRVcGRhdGVzGAggASgIIq8BChlVcGRhdGVVc2VyUHJvZmlsZVJlc3BvbnNlEg0KBWVtYWlsGAEgASgJEgwKBG5hbWUYAiABKAkSDAoEcm9sZRgDIAEoCRINCgV1c2FnZRgEIAEoCRIRCglpbnRlbnRpb24YBSABKAkSEwoLY29tcGFueU5hbWUYBiABKAkSEgoKbGlua1NvdXJjZRgHIAEoCRIcChRoYXNTdWJzY3JpYmVkVXBkYXRlcxgIIAEoCCJIChJMaXN0QnVkZ2V0c1JlcXVlc3QSHwoXaW5jbHVkZVNwZW5kQW5kRm9yZWNhc3QYASABKAgSEQoJY29zdEdyb3VwGAIgASgJIkgKE0xpc3RCdWRnZXRzUmVzcG9uc2USMQoKYnVkZ2V0RGF0YRgBIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkJ1ZGdldERhdGEiHgoQR2V0QnVkZ2V0UmVxdWVzdBIKCgJpZBgBIAEoCSJGChFHZXRCdWRnZXRSZXNwb25zZRIxCgpidWRnZXREYXRhGAEgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuQnVkZ2V0RGF0YSJIChNDcmVhdGVCdWRnZXRSZXF1ZXN0EjEKCmJ1ZGdldERhdGEYASABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5CdWRnZXREYXRhIkkKFENyZWF0ZUJ1ZGdldFJlc3BvbnNlEjEKCmJ1ZGdldERhdGEYASABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5CdWRnZXREYXRhIiEKE0RlbGV0ZUJ1ZGdldFJlcXVlc3QSCgoCaWQYASABKAkiIgoURGVsZXRlQnVkZ2V0UmVzcG9uc2USCgoCaWQYASABKAkiVAoTVXBkYXRlQnVkZ2V0UmVxdWVzdBIKCgJpZBgBIAEoCRIxCgpidWRnZXREYXRhGAIgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuQnVkZ2V0RGF0YSJJChRVcGRhdGVCdWRnZXRSZXNwb25zZRIxCgpidWRnZXREYXRhGAEgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuQnVkZ2V0RGF0YSJLCi5SZXNvbHZlQVdTTWFya2V0cGxhY2VUb2tlbkZvck9uYm9hcmRpbmdSZXF1ZXN0EhkKEXJlZ2lzdHJhdGlvblRva2VuGAEgASgJImEKL1Jlc29sdmVBV1NNYXJrZXRwbGFjZVRva2VuRm9yT25ib2FyZGluZ1Jlc3BvbnNlEhoKEmlzQWxsb3dlZFRvT25ib2FyZBgBIAEoCBISCgpjdXN0b21lcklkGAIgASgJIiYKJEdldEN1c3RvbWVyU3Vic2NyaXB0aW9uU3RhdHVzUmVxdWVzdCLyAQolR2V0Q3VzdG9tZXJTdWJzY3JpcHRpb25TdGF0dXNSZXNwb25zZRIWCg5kYXRlUmVnaXN0ZXJlZBgBIAEoCRIaChJzdWJzY3JpcHRpb25FeHBpcnkYAiABKAkSEAoIZGF5c0xlZnQYAyABKAUSFAoMaXNTdWJzY3JpYmVkGAQgASgIEhEKCWlzRXhwaXJlZBgFIAEoCBIMCgRwbGFuGAYgASgJEg4KBmFtb3VudBgHIAEoCRIVCg1wYXltZW50T3B0aW9uGAggASgJEhUKDXBheW1lbnRNZXRob2QYCSABKAkSDgoGY3JlZGl0GAogASgBIrMBChZDcmVhdGVQcm9maWxpbmdSZXF1ZXN0EgwKBG5hbWUYASABKAkSDAoEcm9sZRgCIAEoCRINCgV1c2FnZRgDIAEoCRIRCglpbnRlbnRpb24YBCABKAkSEwoLY29tcGFueU5hbWUYBSABKAkSFAoMZW1haWxBZGRyZXNzGAYgASgJEhIKCmxpbmtTb3VyY2UYByABKAkSHAoUaGFzU3Vic2NyaWJlZFVwZGF0ZXMYCCABKAgiGQoXQ3JlYXRlUHJvZmlsaW5nUmVzcG9uc2UiOQobQWRkSW5mb3RvTWFya2V0cGxhY2VSZXF1ZXN0EhoKEmN1c3RvbWVySWRlbnRpZmllchgBIAEoCSIeChxBZGRJbmZvdG9NYXJrZXRwbGFjZVJlc3BvbnNlIngKF0dldFJlcG9ydFN1bW1hcnlSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhEKCXN0YXJ0RGF0ZRgCIAEoCRIPCgdlbmREYXRlGAMgASgJEhIKCnJlcG9ydFR5cGUYBCABKAkSEAoIY3VycmVuY3kYBSABKAkirgIKGEdldFJlcG9ydFN1bW1hcnlSZXNwb25zZRITCgtjb3N0R3JvdXBJZBgBIAEoCRIRCglzdGFydERhdGUYAiABKAkSDwoHZW5kRGF0ZRgDIAEoCRI9ChBleGVjdXRpdmVTdW1tYXJ5GAQgASgLMiMuYmx1ZWFwaS5hcGkuY292ZXIuRXhlY3V0aXZlU3VtbWFyeRJfCiFvcHRpbWl6YXRpb25SZWNvbW1lbmRhdGlvblN1bW1hcnkYBSABKAsyNC5ibHVlYXBpLmFwaS5jb3Zlci5PcHRpbWl6YXRpb25SZWNvbW1lbmRhdGlvblN1bW1hcnkSOQoOc2F2aW5nc1N1bW1hcnkYBiABKAsyIS5ibHVlYXBpLmFwaS5jb3Zlci5TYXZpbmdzU3VtbWFyeSKqAgoZTGlzdFJlY29tbWVuZGF0aW9uUmVxdWVzdBITCgtjb3N0Z3JvdXBJZBgBIAEoCRIWCg5kYXRlUmFuZ2VTdGFydBgCIAEoCRIUCgxkYXRlUmFuZ2VFbmQYAyABKAkSDgoGdmVuZG9yGAQgASgJEg4KBnNvdXJjZRgFIAEoCRIaChJvcHRpbWl6YXRpb25TdGF0dXMYByABKAkSDAoEdHlwZRgIIAEoCRIOCgZzcFR5cGUYCSABKAkSEQoJcmF0ZU1vZGVsGAogASgJEhUKDXBheW1lbnRPcHRpb24YCyABKAkSDAoEdGVybRgMIAEoCRIPCgdzZXJ2aWNlGA0gASgJEhUKDW9mZmVyaW5nQ2xhc3MYDiABKAkSEAoIY3VycmVuY3kYDyABKAki1QIKG0xpc3RSZWNvbW1lbmRhdGlvblYyUmVxdWVzdBITCgtjb3N0Z3JvdXBJZBgBIAEoCRIWCg5kYXRlUmFuZ2VTdGFydBgCIAEoCRIUCgxkYXRlUmFuZ2VFbmQYAyABKAkSUAoMcmF0ZVNldHRpbmdzGAQgASgLMjouYmx1ZWFwaS5jb3Zlci52MS5MaXN0UmVjb21tZW5kYXRpb25WMlJlcXVlc3QuUmF0ZVNldHRpbmdzEhAKCGN1cnJlbmN5GAUgASgJGo4BCgxSYXRlU2V0dGluZ3MSDgoGc3BUeXBlGAEgASgJEhEKCXJhdGVNb2RlbBgCIAEoCRIVCg1wYXltZW50T3B0aW9uGAMgASgJEgwKBHRlcm0YBCABKAkSDwoHc2VydmljZRgFIAEoCRIVCg1vZmZlcmluZ0NsYXNzGAYgASgJEg4KBnZlbmRvchgHIAEoCSLaBgoaTGlzdFJlY29tbWVuZGF0aW9uUmVzcG9uc2USGAoQcmVjb21tZW5kYXRpb25JZBgBIAEoCRIWCg5yZWNvbW1lbmRhdGlvbhgCIAEoCRIPCgdzZXJ2aWNlGAMgASgJEh4KFmVzdGltYXRlZE1vbnRobHlTYXZpbmcYBCABKAESHAoUZXN0aW1hdGVkTW9udGhseUNvc3QYBSABKAESDwoHc2NvcmluZxgGIAEoCRIOCgZ2ZW5kb3IYByABKAkSEAoIY2F0ZWdvcnkYCCABKAkSGgoSb3B0aW1pemF0aW9uU3RhdHVzGAkgASgJEhQKDGVycm9yTWVzc2FnZRgKIAEoCRIRCglhY2NvdW50SWQYCyABKAkSEwoLYWNjb3VudE5hbWUYDCABKAkSFAoMaW5zdGFuY2VOYW1lGA0gASgJEhIKCmluc3RhbmNlSWQYDiABKAkSFAoMaW5zdGFuY2VUeXBlGA8gASgJEg4KBnJlZ2lvbhgQIAEoCRISCgpjb21taXRtZW50GBEgASgBEg4KBnNwVHlwZRgSIAEoCRIYChBudW1iZXJUb1B1cmNoYXNlGBMgASgDEg4KBnJpVHlwZRgUIAEoCRIMCgR0eXBlGBUgASgJEg4KBnNvdXJjZRgWIAEoCRIXCg9kYXRlUmVjb21tZW5kZWQYFyABKAkSGwoTcmVjb21tZW5kYXRpb25Hcm91cBgYIAEoCRIVCg1sYXN0VXBkYXRlZEF0GBkgASgJElMKDnB1cmNoYXNlT3B0aW9uGBogASgLMjsuYmx1ZWFwaS5jb3Zlci52MS5MaXN0UmVjb21tZW5kYXRpb25SZXNwb25zZS5QdXJjaGFzZU9wdGlvbhrPAQoOUHVyY2hhc2VPcHRpb24SDgoGc3BUeXBlGAEgASgJEhUKDW9mZmVyaW5nQ2xhc3MYAiABKAkSEgoKY29tbWl0bWVudBgDIAEoARIYChBudW1iZXJUb1B1cmNoYXNlGAQgASgDEhUKDXBheW1lbnRPcHRpb24YBSABKAkSDAoEdGVybRgGIAEoCRIZChFjdXJyZW50R2VuZXJhdGlvbhgHIAEoCBITCgtzZXJ2aWNlVHlwZRgIIAEoCRITCgt1cGZyb250Q29zdBgJIAEoASJRChhHZXRSZWNvbW1lbmRhdGlvblJlcXVlc3QSCgoCaWQYASABKAkSEwoLY29zdEdyb3VwSWQYAiABKAkSFAoMcGVyaW9kT3B0aW9uGAMgASgJIl4KGUdldFJlY29tbWVuZGF0aW9uUmVzcG9uc2USQQoScmVjb21tZW5kYXRpb25EYXRhGAEgASgLMiUuYmx1ZWFwaS5hcGkuY292ZXIuQVdTUmVjb21tZW5kYXRpb25zIkQKGkV4ZWN1dGVPcHRpbWl6YXRpb25SZXF1ZXN0EhgKEHJlY29tbWVuZGF0aW9uSWQYASABKAkSDAoEdHlwZRgCIAEoCSKUAwobRXhlY3V0ZU9wdGltaXphdGlvblJlc3BvbnNlEkwKCWF3c09wdGlvbhgBIAEoCzI3LmJsdWVhcGkuY292ZXIudjEuRXhlY3V0ZU9wdGltaXphdGlvblJlc3BvbnNlLkFXU09wdGlvbkgAEkwKCWdjcE9wdGlvbhgCIAEoCzI3LmJsdWVhcGkuY292ZXIudjEuRXhlY3V0ZU9wdGltaXphdGlvblJlc3BvbnNlLkdDUE9wdGlvbkgAElYKDmF6dXJlQ3NwT3B0aW9uGAMgASgLMjwuYmx1ZWFwaS5jb3Zlci52MS5FeGVjdXRlT3B0aW1pemF0aW9uUmVzcG9uc2UuQXp1cmVDU1BPcHRpb25IABpYCglBV1NPcHRpb24SGgoSYXBwcm92ZVRlbXBsYXRlVXJsGAEgASgJEhgKEHJlY29tbWVuZGF0aW9uSWQYAiABKAkSFQoNY3VycmVudFN0YXR1cxgDIAEoCRoLCglHQ1BPcHRpb24aEAoOQXp1cmVDU1BPcHRpb25CCAoGVmVuZG9yIiMKFU1hcmtBc0V4ZWN1dGVkUmVxdWVzdBIKCgJpZBgBIAMoCSIYChZNYXJrQXNFeGVjdXRlZFJlc3BvbnNlIi8KIVVuZG9FeGVjdXRlZFJlY29tbWVuZGF0aW9uUmVxdWVzdBIKCgJpZBgBIAMoCSIkCiJVbmRvRXhlY3V0ZWRSZWNvbW1lbmRhdGlvblJlc3BvbnNlIqcBChpPcHRpbWl6YXRpb25IaXN0b3J5UmVxdWVzdBITCgtjb3N0Z3JvdXBJZBgBIAEoCRIWCg5kYXRlUmFuZ2VTdGFydBgCIAEoCRIUCgxkYXRlUmFuZ2VFbmQYAyABKAkSDgoGdmVuZG9yGAQgASgJEg4KBnNvdXJjZRgFIAEoCRIUCgxwZXJpb2RPcHRpb24YBiABKAkSEAoIY3VycmVuY3kYByABKAkidgobT3B0aW1pemF0aW9uSGlzdG9yeVJlc3BvbnNlElcKHWV4ZWN1dGVkUmVjb21tZW5kYXRpb25EZXRhaWxzGAIgAygLMjAuYmx1ZWFwaS5hcGkuY292ZXIuRXhlY3V0ZWRSZWNvbW1lbmRhdGlvbkRldGFpbHMiYAohU2V0Q29zdEdyb3VwRXZlbnRJbmRpY2F0b3JSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEg8KB2Fub21hbHkYAiABKAgSFQoNdmlzdWFsQnVpbGRlchgDIAEoCCJ0CiJTZXRDb3N0R3JvdXBFdmVudEluZGljYXRvclJlc3BvbnNlEhMKC2Nvc3RHcm91cElkGAEgASgJEjkKDmV2ZW50SW5kaWNhdG9yGAIgASgLMiEuYmx1ZWFwaS5hcGkuY292ZXIuRXZlbnRJbmRpY2F0b3IiewohU2V0Q29zdEdyb3VwQW5vbWFseU9wdGlvbnNSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhEKCXRocmVzaG9sZBgCIAEoAhIUCgxpc1BlcmNlbnRhZ2UYAyABKAgSGAoQcGFzdERhdGFJbk1vbnRocxgEIAEoAyJ0CiJTZXRDb3N0R3JvdXBBbm9tYWx5T3B0aW9uc1Jlc3BvbnNlEhMKC2Nvc3RHcm91cElkGAEgASgJEjkKDmFub21hbHlPcHRpb25zGAIgASgLMiEuYmx1ZWFwaS5hcGkuY292ZXIuQW5vbWFseU9wdGlvbnMiLwoYU2V0T3JnRmlzY2FsTW9udGhSZXF1ZXN0EhMKC2Zpc2NhbE1vbnRoGAEgASgJIjAKGVNldE9yZ0Zpc2NhbE1vbnRoUmVzcG9uc2USEwoLZmlzY2FsTW9udGgYASABKAkiGgoYR2V0T3JnRmlzY2FsTW9udGhSZXF1ZXN0IkgKGUdldE9yZ0Zpc2NhbE1vbnRoUmVzcG9uc2USEwoLZmlzY2FsTW9udGgYASABKAkSFgoOZGF0ZVJlZ2lzdGVyZWQYAiABKAkiWwobVHJhbnNmZXJPcmdhbml6YXRpb25SZXF1ZXN0Eg4KBnRhcmdldBgBIAEoCRIOCgZyZWdpb24YAiABKAkSDQoFcGF5ZXIYAyABKAkSDQoFb3JnSWQYBCABKAkiLgocVHJhbnNmZXJPcmdhbml6YXRpb25SZXNwb25zZRIOCgZ0YXJnZXQYASABKAkiRQogVXBkYXRlQ29zdEdyb3VwQ3JlYXRpb25VSVJlcXVlc3QSIQoZdXNlTmV3Q29zdEdyb3VwQ3JlYXRpb25VSRgBIAEoCCJSCiFVcGRhdGVDb3N0R3JvdXBDcmVhdGlvblVJUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIWChRMaXN0VW5pdFR5cGVzUmVxdWVzdCJOChVMaXN0VW5pdFR5cGVzUmVzcG9uc2USNQoMdW5pdENvc3REYXRhGAEgAygLMh8uYmx1ZWFwaS5hcGkuY292ZXIuVW5pdENvc3REYXRhIrYBChVDcmVhdGVVbml0VHlwZVJlcXVlc3QSEAoIdW5pdE5hbWUYASABKAkSLgoJdW5pdEl0ZW1zGAIgAygLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVW5pdEl0ZW0SRgoPc2hhcmVkUmVzb3VyY2VzGAMgAygLMi0uYmx1ZWFwaS5hcGkuY292ZXIuU2hhcmVkUmVzb3VyY2VzQ29tYmluYXRpb24SEwoLZGVzY3JpcHRpb24YBCABKAkiTwoWQ3JlYXRlVW5pdFR5cGVSZXNwb25zZRI1Cgx1bml0Q29zdERhdGEYASABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0Q29zdERhdGEiIAoSR2V0VW5pdFR5cGVSZXF1ZXN0EgoKAmlkGAEgASgJIkwKE0dldFVuaXRUeXBlUmVzcG9uc2USNQoMdW5pdENvc3REYXRhGAEgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuVW5pdENvc3REYXRhIsIBChVVcGRhdGVVbml0VHlwZVJlcXVlc3QSCgoCaWQYASABKAkSEAoIdW5pdE5hbWUYAiABKAkSLgoJdW5pdEl0ZW1zGAMgAygLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVW5pdEl0ZW0SRgoPc2hhcmVkUmVzb3VyY2VzGAQgAygLMi0uYmx1ZWFwaS5hcGkuY292ZXIuU2hhcmVkUmVzb3VyY2VzQ29tYmluYXRpb24SEwoLZGVzY3JpcHRpb24YBSABKAkiTwoWVXBkYXRlVW5pdFR5cGVSZXNwb25zZRI1Cgx1bml0Q29zdERhdGEYASABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0Q29zdERhdGEiIwoVRGVsZXRlVW5pdFR5cGVSZXF1ZXN0EgoKAmlkGAEgASgJIiQKFkRlbGV0ZVVuaXRUeXBlUmVzcG9uc2USCgoCaWQYASABKAkiTwoRTWVyZ2VVbml0c1JlcXVlc3QSEwoLdW5pdENvc3RJZHMYASADKAkSEAoIdW5pdE5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkiTQoSTWVyZ2VVbml0c1Jlc3BvbnNlEjcKDm1lcmdlZFVuaXRDb3N0GAEgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuVW5pdENvc3REYXRhIhsKGUxpc3RTdWdnZXN0ZWRVbml0c1JlcXVlc3QiVgoaTGlzdFN1Z2dlc3RlZFVuaXRzUmVzcG9uc2USOAoOc3VnZ2VzdGVkVW5pdHMYASADKAsyIC5ibHVlYXBpLmFwaS5jb3Zlci5TdWdnZXN0ZWRVbml0InIKGk1lcmdlU3VnZ2VzdGVkVW5pdHNSZXF1ZXN0EhgKEHN1Z2dlc3RlZFVuaXRJZHMYASADKAkSEwoLdW5pdEl0ZW1JZHMYAiADKAkSEAoIdW5pdE5hbWUYAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkiXQobTWVyZ2VTdWdnZXN0ZWRVbml0c1Jlc3BvbnNlEj4KFG1lcmdlZFN1Z2dlc3RlZFVuaXRzGAEgASgLMiAuYmx1ZWFwaS5hcGkuY292ZXIuU3VnZ2VzdGVkVW5pdCI6Ch5DcmVhdGVVbml0RnJvbVN1Z2dlc3RlZFJlcXVlc3QSGAoQc3VnZ2VzdGVkVW5pdElkcxgBIAMoCSI2Ch9DcmVhdGVVbml0RnJvbVN1Z2dlc3RlZFJlc3BvbnNlEhMKC3VuaXRDb3N0SWRzGAEgAygJIhwKGkxpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0ImUKG0xpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZRJGCg9zaGFyZWRSZXNvdXJjZXMYASADKAsyLS5ibHVlYXBpLmFwaS5jb3Zlci5TaGFyZWRSZXNvdXJjZXNDb21iaW5hdGlvbiLTAgocQ3JlYXRlU2hhcmVkUmVzb3VyY2VzUmVxdWVzdBIaChJzaGFyZWRSZXNvdXJjZU5hbWUYASABKAkSTQobc2hhcmVkUmVzb3VyY2VzQ29tYmluYXRpb25zGAIgASgLMiguYmx1ZWFwaS5hcGkuY292ZXIuUmVzb3VyY2VzQ29tYmluYXRpb25zElYKDGRpc3RyaWJ1dGlvbhgDIAMoCzJALmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlU2hhcmVkUmVzb3VyY2VzUmVxdWVzdC5EaXN0cmlidXRpb25FbnRyeRIRCglhbGxvY2F0ZWQYBCABKAESEwoLdW5hbGxvY2F0ZWQYBSABKAESEwoLZGVzY3JpcHRpb24YBiABKAkaMwoRRGlzdHJpYnV0aW9uRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgBOgI4ASJnCh1DcmVhdGVTaGFyZWRSZXNvdXJjZXNSZXNwb25zZRJGCg9zaGFyZWRSZXNvdXJjZXMYASABKAsyLS5ibHVlYXBpLmFwaS5jb3Zlci5TaGFyZWRSZXNvdXJjZXNDb21iaW5hdGlvbiInChlHZXRTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0EgoKAmlkGAEgASgJImQKGkdldFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlEkYKD3NoYXJlZFJlc291cmNlcxgBIAEoCzItLmJsdWVhcGkuYXBpLmNvdmVyLlNoYXJlZFJlc291cmNlc0NvbWJpbmF0aW9uIt8CChxVcGRhdGVTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0EgoKAmlkGAEgASgJEhoKEnNoYXJlZFJlc291cmNlTmFtZRgCIAEoCRJNChtzaGFyZWRSZXNvdXJjZXNDb21iaW5hdGlvbnMYAyABKAsyKC5ibHVlYXBpLmFwaS5jb3Zlci5SZXNvdXJjZXNDb21iaW5hdGlvbnMSVgoMZGlzdHJpYnV0aW9uGAQgAygLMkAuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0LkRpc3RyaWJ1dGlvbkVudHJ5EhEKCWFsbG9jYXRlZBgFIAEoARITCgt1bmFsbG9jYXRlZBgGIAEoARITCgtkZXNjcmlwdGlvbhgHIAEoCRozChFEaXN0cmlidXRpb25FbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAE6AjgBImcKHVVwZGF0ZVNoYXJlZFJlc291cmNlc1Jlc3BvbnNlEkYKD3NoYXJlZFJlc291cmNlcxgBIAEoCzItLmJsdWVhcGkuYXBpLmNvdmVyLlNoYXJlZFJlc291cmNlc0NvbWJpbmF0aW9uIioKHERlbGV0ZVNoYXJlZFJlc291cmNlc1JlcXVlc3QSCgoCaWQYASABKAkiKwodRGVsZXRlU2hhcmVkUmVzb3VyY2VzUmVzcG9uc2USCgoCaWQYASABKAkiVwoWTGlzdFVuaXRNZXRyaWNzUmVxdWVzdBIZChFhZ2dyZWdhdGlvbk1ldGhvZBgBIAEoCRISCgpkYXRhU291cmNlGAIgASgJEg4KBnN0YXR1cxgDIAEoCSJNChdMaXN0VW5pdE1ldHJpY3NSZXNwb25zZRIyCgt1bml0TWV0cmljcxgBIAMoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRNZXRyaWMiuQEKF0NyZWF0ZVVuaXRNZXRyaWNSZXF1ZXN0EhIKCm1ldHJpY05hbWUYASABKAkSGQoRYWdncmVnYXRpb25NZXRob2QYAiABKAkSEgoKZGF0YVNvdXJjZRgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCRITCgtjb3N0Z3JvdXBJZBgFIAMoCRIxCgpzb3VyY2VJbmZvGAYgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuU291cmNlSW5mbyJNChhDcmVhdGVVbml0TWV0cmljUmVzcG9uc2USMQoKdW5pdE1ldHJpYxgBIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRNZXRyaWMiIgoUR2V0VW5pdE1ldHJpY1JlcXVlc3QSCgoCaWQYASABKAkiSgoVR2V0VW5pdE1ldHJpY1Jlc3BvbnNlEjEKCnVuaXRNZXRyaWMYASABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0TWV0cmljIsUBChdVcGRhdGVVbml0TWV0cmljUmVxdWVzdBIKCgJpZBgBIAEoCRISCgptZXRyaWNOYW1lGAIgASgJEhkKEWFnZ3JlZ2F0aW9uTWV0aG9kGAMgASgJEhIKCmRhdGFTb3VyY2UYBCABKAkSEwoLZGVzY3JpcHRpb24YBSABKAkSEwoLY29zdGdyb3VwSWQYBiADKAkSMQoKc291cmNlSW5mbxgHIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLlNvdXJjZUluZm8iTQoYVXBkYXRlVW5pdE1ldHJpY1Jlc3BvbnNlEjEKCnVuaXRNZXRyaWMYASABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0TWV0cmljIiUKF0RlbGV0ZVVuaXRNZXRyaWNSZXF1ZXN0EgoKAmlkGAEgASgJIiYKGERlbGV0ZVVuaXRNZXRyaWNSZXNwb25zZRIKCgJpZBgBIAEoCSJmChlQcmV2aWV3R29vZ2xlU2hlZXRSZXF1ZXN0EhUKDWdvb2dsZVNoZWV0SWQYASABKAkSEAoIc2hlZXRVcmwYAiABKAkSEQoJc2hlZXROYW1lGAMgASgJEg0KBXJhbmdlGAQgASgJIlkKGlByZXZpZXdHb29nbGVTaGVldFJlc3BvbnNlEg4KBmhlYWRlchgBIAMoCRIrCgdyb3dEYXRhGAIgAygLMhouYmx1ZWFwaS5hcGkuY292ZXIuUm93RGF0YSIzCh9Db25maXJtR29vZ2xlU2hlZXRBY2Nlc3NSZXF1ZXN0EhAKCHNoZWV0VXJsGAEgASgJIk0KIENvbmZpcm1Hb29nbGVTaGVldEFjY2Vzc1Jlc3BvbnNlEhUKDWdvb2dsZVNoZWV0SWQYASABKAkSEgoKc2hlZXROYW1lcxgCIAMoCSJ2ChxHZXRDbG91ZHdhdGNoTWV0YWRhdGFSZXF1ZXN0EhEKCWFjY291bnRJZBgBIAEoCRIOCgZyZWdpb24YAiABKAkSDAoEdHlwZRgDIAEoCRIRCgluYW1lc3BhY2UYBCABKAkSEgoKbWV0cmljTmFtZRgFIAEoCSK+AQodR2V0Q2xvdWR3YXRjaE1ldGFkYXRhUmVzcG9uc2USEgoKbmFtZXNwYWNlcxgBIAMoCRIPCgdtZXRyaWNzGAIgAygJEk0KCmRpbWVuc2lvbnMYAyADKAsyOS5ibHVlYXBpLmNvdmVyLnYxLkdldENsb3Vkd2F0Y2hNZXRhZGF0YVJlc3BvbnNlLkRpbWVuc2lvbhopCglEaW1lbnNpb24SDAoEbmFtZRgBIAEoCRIOCgZ2YWx1ZXMYAiADKAkigQIKFkdldERpc2NvdW50UGxhblJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg0KBW9yZ0lkGAIgASgJEhgKEHJlZHVjdGlvbkRpc3BsYXkYAyABKAkSFgoOaW5jbHVkZURldGFpbHMYBCABKAgSEAoIZnJvbURhdGUYBSABKAkSDgoGdG9EYXRlGAYgASgJEg8KB3BheWVySWQYByABKAkSGQoRYmlsbGluZ0ludGVybmFsSWQYCCABKAkSDwoHZ3JvdXBJZBgJIAEoCRITCgtjb3N0R3JvdXBJZBgKIAEoCRIQCghhY2NvdW50cxgLIAMoCRIQCghzZXJ2aWNlcxgMIAMoCSJnChdHZXREaXNjb3VudFBsYW5SZXNwb25zZRINCgVvcmdJZBgBIAEoCRI9ChBhd3NEaXNjb3VudFBsYW5zGAIgASgLMiMuYmx1ZWFwaS5hcGkuY292ZXIuQXdzRGlzY291bnRQbGFucyJzChxMaXN0Tm9ucGVyZm9ybWluZ1JhdGVSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRITCgtjb3N0R3JvdXBJZBgCIAEoCRIQCghmcm9tRGF0ZRgDIAEoCRIOCgZ0b0RhdGUYBCABKAkSDAoEdHlwZRgFIAEoCSLJAQodTGlzdE5vbnBlcmZvcm1pbmdSYXRlUmVzcG9uc2USVAoNbm9ucGVyZm9ybWluZxgBIAMoCzI9LmJsdWVhcGkuY292ZXIudjEuTGlzdE5vbnBlcmZvcm1pbmdSYXRlUmVzcG9uc2UuTm9ucGVyZm9ybWluZxpSCg1Ob25wZXJmb3JtaW5nEgwKBHR5cGUYASABKAkSDwoHYWNjb3VudBgCIAEoCRITCgt1dGlsaXphdGlvbhgDIAEoARINCgV3YXN0ZRgEIAEoASJ0ChxMaXN0VW50YWdnZWRSZXNvdXJjZXNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRITCgtjb3N0R3JvdXBJZBgCIAEoCRIQCghmcm9tRGF0ZRgDIAEoCRIOCgZ0b0RhdGUYBCABKAkSDQoFbGltaXQYBSABKAMi+QEKHUxpc3RVbnRhZ2dlZFJlc291cmNlc1Jlc3BvbnNlElwKEXVudGFnZ2VkUmVzb3VyY2VzGAEgAygLMkEuYmx1ZWFwaS5jb3Zlci52MS5MaXN0VW50YWdnZWRSZXNvdXJjZXNSZXNwb25zZS5VbnRhZ2dlZFJlc291cmNlcxp6ChFVbnRhZ2dlZFJlc291cmNlcxIQCghyZXNvdXJjZRgBIAEoCRIPCgdzZXJ2aWNlGAIgASgJEhEKCWFjY291bnRJZBgDIAEoCRIRCgljb3N0R3JvdXAYBCABKAkSDAoEY29zdBgFIAEoARIOCgZ2ZW5kb3IYBiABKAkqPwoGU3RhdHVzEgsKB1BFTkRJTkcQABIPCgtJTl9QUk9HUkVTUxABEgsKB1NVQ0NFU1MQAhIKCgZGQUlMRUQQAzLm4gEKBUNvdmVyEncKCk9uYm9hcmRPcmcSIy5ibHVlYXBpLmNvdmVyLnYxLk9uYm9hcmRPcmdSZXF1ZXN0GiQuYmx1ZWFwaS5jb3Zlci52MS5PbmJvYXJkT3JnUmVzcG9uc2UiHoLT5JMCGDoBKiITL3YxL21lbWJlcnMvb25ib2FyZBJ/CgxJbnZpdGVNZW1iZXISJS5ibHVlYXBpLmNvdmVyLnYxLkludml0ZU1lbWJlclJlcXVlc3QaJi5ibHVlYXBpLmNvdmVyLnYxLkludml0ZU1lbWJlclJlc3BvbnNlIiCIAgGC0+STAhc6ASoiEi92MS9tZW1iZXJzL2ludml0ZRJ+CgxBY3RpdmF0ZVVzZXISJS5ibHVlYXBpLmNvdmVyLnYxLkFjdGl2YXRlVXNlclJlcXVlc3QaJi5ibHVlYXBpLmNvdmVyLnYxLkFjdGl2YXRlVXNlclJlc3BvbnNlIh+C0+STAhk6ASoiFC92MS9tZW1iZXJzL2FjdGl2YXRlEnUKDENyZWF0ZU1lbWJlchIlLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlTWVtYmVyUmVxdWVzdBomLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlTWVtYmVyUmVzcG9uc2UiFoLT5JMCEDoBKiILL3YxL21lbWJlcnMSbwoKR2V0TWVtYmVycxIjLmJsdWVhcGkuY292ZXIudjEuR2V0TWVtYmVyc1JlcXVlc3QaJC5ibHVlYXBpLmNvdmVyLnYxLkdldE1lbWJlcnNSZXNwb25zZSIWiAIBgtPkkwINEgsvdjEvbWVtYmVycxKKAQoQR2V0TWVtYmVyRGV0YWlscxIpLmJsdWVhcGkuY292ZXIudjEuR2V0TWVtYmVyRGV0YWlsc1JlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLkdldE1lbWJlckRldGFpbHNSZXNwb25zZSIfiAIBgtPkkwIWEhQvdjEvbWVtYmVycy97dXNlcklkfRKaAQoSR2V0TWVtYmVyQ29zdEdyb3VwEisuYmx1ZWFwaS5jb3Zlci52MS5HZXRNZW1iZXJDb3N0R3JvdXBSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5HZXRNZW1iZXJDb3N0R3JvdXBSZXNwb25zZSIpiAIBgtPkkwIgEh4vdjEvbWVtYmVycy97dXNlcklkfS9jb3N0Z3JvdXASpwEKFlVwZGF0ZU1lbWJlclBlcm1pc3Npb24SLy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZU1lbWJlclBlcm1pc3Npb25SZXF1ZXN0GjAuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVNZW1iZXJQZXJtaXNzaW9uUmVzcG9uc2UiKogCAYLT5JMCIToBKhocL3YxL21lbWJlcnMve3VzZXJJZH0vaXNhZG1pbhJzCg5HZXRVc2VyRGV0YWlscxInLmJsdWVhcGkuY292ZXIudjEuR2V0VXNlckRldGFpbHNSZXF1ZXN0GiguYmx1ZWFwaS5jb3Zlci52MS5HZXRVc2VyRGV0YWlsc1Jlc3BvbnNlIg6C0+STAggSBi92MS9tZRKDAQoQVXBkYXRlVXNlckF2YXRhchIpLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckF2YXRhclJlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJBdmF0YXJSZXNwb25zZSIYgtPkkwISOgEqGg0vdjEvbWUvYXZhdGFyEnsKDlVwZGF0ZVVzZXJJY29uEicuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VySWNvblJlcXVlc3QaKC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJJY29uUmVzcG9uc2UiFoLT5JMCEDoBKhoLL3YxL21lL2ljb24SkwEKFFVwZGF0ZVVzZXJDb2xvclRoZW1lEi0uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyQ29sb3JUaGVtZVJlcXVlc3QaLi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJDb2xvclRoZW1lUmVzcG9uc2UiHILT5JMCFjoBKhoRL3YxL21lL2NvbG9ydGhlbWUSewoOVXBkYXRlVXNlck5hbWUSJy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJOYW1lUmVxdWVzdBooLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlck5hbWVSZXNwb25zZSIWgtPkkwIQOgEqGgsvdjEvbWUvbmFtZRJ/Cg9VcGRhdGVVc2VyRW1haWwSKC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJFbWFpbFJlcXVlc3QaKS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJFbWFpbFJlc3BvbnNlIheC0+STAhE6ASoaDC92MS9tZS9lbWFpbBKLAQoSVXBkYXRlVXNlck1haW5WaWV3EisuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyTWFpblZpZXdSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyTWFpblZpZXdSZXNwb25zZSIagtPkkwIUOgEqGg8vdjEvbWUvbWFpbnZpZXcSiAEKEVJlc2V0VXNlclBhc3N3b3JkEiouYmx1ZWFwaS5jb3Zlci52MS5SZXNldFVzZXJQYXNzd29yZFJlcXVlc3QaKy5ibHVlYXBpLmNvdmVyLnYxLlJlc2V0VXNlclBhc3N3b3JkUmVzcG9uc2UiGoLT5JMCFDoBKiIPL3YxL21lL3Bhc3N3b3JkEoMBChBVcGRhdGVVc2VyTG9jYWxlEikuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyTG9jYWxlUmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckxvY2FsZVJlc3BvbnNlIhiC0+STAhI6ASoaDS92MS9tZS9sb2NhbGUSiwEKElVwZGF0ZVVzZXJBcHBUaGVtZRIrLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckFwcFRoZW1lUmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckFwcFRoZW1lUmVzcG9uc2UiGoLT5JMCFDoBKhoPL3YxL21lL2FwcHRoZW1lEosBChJVcGRhdGVVc2VyVGltZXpvbmUSKy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJUaW1lem9uZVJlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJUaW1lem9uZVJlc3BvbnNlIhqC0+STAhQ6ASoaDy92MS9tZS90aW1lem9uZRKTAQoUVXBkYXRlVXNlckF0dHJpYnV0ZXMSLS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJBdHRyaWJ1dGVzUmVxdWVzdBouLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckF0dHJpYnV0ZXNSZXNwb25zZSIcgtPkkwIWOgEqGhEvdjEvbWUvYXR0cmlidXRlcxJ7CgxEZWxldGVNZW1iZXISJS5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZU1lbWJlclJlcXVlc3QaJi5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZU1lbWJlclJlc3BvbnNlIhyC0+STAhYqFC92MS9tZW1iZXJzL3t1c2VySWR9EoYBCg1SZXNldFBhc3N3b3JkEiYuYmx1ZWFwaS5jb3Zlci52MS5SZXNldFBhc3N3b3JkUmVxdWVzdBonLmJsdWVhcGkuY292ZXIudjEuUmVzZXRQYXNzd29yZFJlc3BvbnNlIiSC0+STAh46ASoiGS92MS9tZW1iZXJzL3Jlc2V0cGFzc3dvcmQSbQoKQ3JlYXRlVmlldxIjLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlVmlld1JlcXVlc3QaJC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVZpZXdSZXNwb25zZSIUgtPkkwIOOgEqIgkvdjEvdmlld3MSZAoIR2V0Vmlld3MSIS5ibHVlYXBpLmNvdmVyLnYxLkdldFZpZXdzUmVxdWVzdBoiLmJsdWVhcGkuY292ZXIudjEuR2V0Vmlld3NSZXNwb25zZSIRgtPkkwILEgkvdjEvdmlld3MSfwoOR2V0Q3VycmVudFZpZXcSJy5ibHVlYXBpLmNvdmVyLnYxLkdldEN1cnJlbnRWaWV3UmVxdWVzdBooLmJsdWVhcGkuY292ZXIudjEuR2V0Q3VycmVudFZpZXdSZXNwb25zZSIagtPkkwIUEhIvdjEvdmlld3Mve3ZpZXdJZH0ShgEKEEdldEZhdm9yaXRlVmlld3MSKS5ibHVlYXBpLmNvdmVyLnYxLkdldEZhdm9yaXRlVmlld3NSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5HZXRGYXZvcml0ZVZpZXdzUmVzcG9uc2UiG4LT5JMCFRITL3YxL3ZpZXdzL2Zhdm9yaXRlcxJ4CgtQdWJsaXNoVmlldxIkLmJsdWVhcGkuY292ZXIudjEuUHVibGlzaFZpZXdSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5QdWJsaXNoVmlld1Jlc3BvbnNlIhyC0+STAhY6ASoiES92MS92aWV3cy9wdWJsaXNoEn0KC0FkZEZhdm9yaXRlEiQuYmx1ZWFwaS5jb3Zlci52MS5BZGRGYXZvcml0ZVJlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkFkZEZhdm9yaXRlUmVzcG9uc2UiIYLT5JMCGzoBKhoWL3YxL3ZpZXdzL2Zhdm9yaXRlL2FkZBKJAQoOUmVtb3ZlRmF2b3JpdGUSJy5ibHVlYXBpLmNvdmVyLnYxLlJlbW92ZUZhdm9yaXRlUmVxdWVzdBooLmJsdWVhcGkuY292ZXIudjEuUmVtb3ZlRmF2b3JpdGVSZXNwb25zZSIkgtPkkwIeOgEqGhkvdjEvdmlld3MvZmF2b3JpdGUvcmVtb3ZlEnYKClVwZGF0ZVZpZXcSIy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVZpZXdSZXF1ZXN0GiQuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVWaWV3UmVzcG9uc2UiHYLT5JMCFzoBKhoSL3YxL3ZpZXdzL3t2aWV3SWR9Eo8BChBVcGRhdGVWaWV3TGF5b3V0EikuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVWaWV3TGF5b3V0UmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVmlld0xheW91dFJlc3BvbnNlIiSC0+STAh46ASoaGS92MS92aWV3cy9sYXlvdXQve3ZpZXdJZH0SmgEKEFVwZGF0ZVZpZXdXaWRnZXQSKS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVZpZXdXaWRnZXRSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVWaWV3V2lkZ2V0UmVzcG9uc2UiL4LT5JMCKToBKhokL3YxL3ZpZXdzL2xheW91dC97dmlld0lkfS97d2lkZ2V0SWR9Ep8BChRVcGRhdGVWaWV3Q29sb3JUaGVtZRItLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVmlld0NvbG9yVGhlbWVSZXF1ZXN0Gi4uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVWaWV3Q29sb3JUaGVtZVJlc3BvbnNlIiiC0+STAiI6ASoaHS92MS92aWV3cy97dmlld0lkfS9jb2xvcnRoZW1lEpcBChJVcGRhdGVWaWV3Q3VycmVuY3kSKy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVZpZXdDdXJyZW5jeVJlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVZpZXdDdXJyZW5jeVJlc3BvbnNlIiaC0+STAiA6ASoaGy92MS92aWV3cy97dmlld0lkfS9jdXJyZW5jeRKcAQoUU2V0T3JnVXBkYXRlQ3VycmVuY3kSLS5ibHVlYXBpLmNvdmVyLnYxLlNldE9yZ1VwZGF0ZUN1cnJlbmN5UmVxdWVzdBouLmJsdWVhcGkuY292ZXIudjEuU2V0T3JnVXBkYXRlQ3VycmVuY3lSZXNwb25zZSIlgtPkkwIfOgEqIhovdjEvb3JnYW5pemF0aW9ucy9jdXJyZW5jeRKZAQoUR2V0T3JnVXBkYXRlQ3VycmVuY3kSLS5ibHVlYXBpLmNvdmVyLnYxLkdldE9yZ1VwZGF0ZUN1cnJlbmN5UmVxdWVzdBouLmJsdWVhcGkuY292ZXIudjEuR2V0T3JnVXBkYXRlQ3VycmVuY3lSZXNwb25zZSIigtPkkwIcEhovdjEvb3JnYW5pemF0aW9ucy9jdXJyZW5jeRKNAQoRTGlzdEV4Y2hhbmdlUmF0ZXMSKi5ibHVlYXBpLmNvdmVyLnYxLkxpc3RFeGNoYW5nZVJhdGVzUmVxdWVzdBorLmJsdWVhcGkuY292ZXIudjEuTGlzdEV4Y2hhbmdlUmF0ZXNSZXNwb25zZSIfgtPkkwIZEhcvdjEvb3JnYW5pemF0aW9ucy9yYXRlcxJzCgpEZWxldGVWaWV3EiMuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVWaWV3UmVxdWVzdBokLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlVmlld1Jlc3BvbnNlIhqC0+STAhQqEi92MS92aWV3cy97dmlld0lkfRKfAQoTVXBkYXRlU2lkZU1lbnVTdGF0ZRIsLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlU2lkZU1lbnVTdGF0ZVJlcXVlc3QaLS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVNpZGVNZW51U3RhdGVSZXNwb25zZSIrgtPkkwIlOgEqGiAvdjEvdmlld3Mve3ZpZXdJZH0vc2lkZW1lbnVzdGF0ZRKiAQoTQWRkU2lkZU1lbnVGYXZvcml0ZRIsLmJsdWVhcGkuY292ZXIudjEuQWRkU2lkZU1lbnVGYXZvcml0ZVJlcXVlc3QaLS5ibHVlYXBpLmNvdmVyLnYxLkFkZFNpZGVNZW51RmF2b3JpdGVSZXNwb25zZSIugtPkkwIoOgEqIiMvdjEvdmlld3Mve3ZpZXdJZH0vc2lkZW1lbnVmYXZvcml0ZRKtAQoWUmVtb3ZlU2lkZU1lbnVGYXZvcml0ZRIvLmJsdWVhcGkuY292ZXIudjEuUmVtb3ZlU2lkZU1lbnVGYXZvcml0ZVJlcXVlc3QaMC5ibHVlYXBpLmNvdmVyLnYxLlJlbW92ZVNpZGVNZW51RmF2b3JpdGVSZXNwb25zZSIwgtPkkwIqOgEqIiUvdjEvdmlld3Mve3ZpZXdJZH0vc2lkZW1lbnV1bmZhdm9yaXRlEoEBCg9DcmVhdGVDb3N0R3JvdXASKC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUNvc3RHcm91cFJlcXVlc3QaKS5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUNvc3RHcm91cFJlc3BvbnNlIhmC0+STAhM6ASoiDi92MS9jb3N0Z3JvdXBzEngKDUdldENvc3RHcm91cHMSJi5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RHcm91cHNSZXF1ZXN0GicuYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0R3JvdXBzUmVzcG9uc2UiFoLT5JMCEBIOL3YxL2Nvc3Rncm91cHMSeAoNR2V0Q2F0ZWdvcmllcxImLmJsdWVhcGkuY292ZXIudjEuR2V0Q2F0ZWdvcmllc1JlcXVlc3QaJy5ibHVlYXBpLmNvdmVyLnYxLkdldENhdGVnb3JpZXNSZXNwb25zZSIWgtPkkwIQEg4vdjEvY2F0ZWdvcmllcxKYAQoTR2V0Q29zdEdyb3VwRGV0YWlscxIsLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEdyb3VwRGV0YWlsc1JlcXVlc3QaLS5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RHcm91cERldGFpbHNSZXNwb25zZSIkgtPkkwIeEhwvdjEvY29zdGdyb3Vwcy97Y29zdEdyb3VwSWR9EqABChNVcGRhdGVDb3N0R3JvdXBOYW1lEiwuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBOYW1lUmVxdWVzdBotLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwTmFtZVJlc3BvbnNlIiyC0+STAiY6ASoaIS92MS9jb3N0Z3JvdXBzL3tjb3N0R3JvdXBJZH0vbmFtZRK8AQoaVXBkYXRlQ29zdEdyb3VwRGVzY3JpcHRpb24SMy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cERlc2NyaXB0aW9uUmVxdWVzdBo0LmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwRGVzY3JpcHRpb25SZXNwb25zZSIzgtPkkwItOgEqGigvdjEvY29zdGdyb3Vwcy97Y29zdEdyb3VwSWR9L2Rlc2NyaXB0aW9uEqQBChRVcGRhdGVDb3N0R3JvdXBJbWFnZRItLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwSW1hZ2VSZXF1ZXN0Gi4uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBJbWFnZVJlc3BvbnNlIi2C0+STAic6ASoaIi92MS9jb3N0Z3JvdXBzL3tjb3N0R3JvdXBJZH0vaW1hZ2USoAEKE1VwZGF0ZUNvc3RHcm91cEljb24SLC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cEljb25SZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBJY29uUmVzcG9uc2UiLILT5JMCJjoBKhohL3YxL2Nvc3Rncm91cHMve2Nvc3RHcm91cElkfS9pY29uErgBChlVcGRhdGVDb3N0R3JvdXBDb2xvclRoZW1lEjIuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBDb2xvclRoZW1lUmVxdWVzdBozLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwQ29sb3JUaGVtZVJlc3BvbnNlIjKC0+STAiw6ASoaJy92MS9jb3N0Z3JvdXBzL3tjb3N0R3JvdXBJZH0vY29sb3J0aGVtZRLAAQobVXBkYXRlQ29zdEdyb3VwQ29tYmluYXRpb25zEjQuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBDb21iaW5hdGlvbnNSZXF1ZXN0GjUuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBDb21iaW5hdGlvbnNSZXNwb25zZSI0gtPkkwIuOgEqGikvdjEvY29zdGdyb3Vwcy97Y29zdEdyb3VwSWR9L2NvbWJpbmF0aW9ucxK7AQocUmVzb2x2ZUNvc3RHcm91cENvbWJpbmF0aW9ucxI1LmJsdWVhcGkuY292ZXIudjEuUmVzb2x2ZUNvc3RHcm91cENvbWJpbmF0aW9uc1JlcXVlc3QaNi5ibHVlYXBpLmNvdmVyLnYxLlJlc29sdmVDb3N0R3JvdXBDb21iaW5hdGlvbnNSZXNwb25zZSIsgtPkkwImEiQvdjEvY29zdGdyb3Vwcy9yZXNvbHZlL3tjb3N0R3JvdXBJZH0SrAEKFUFzc2lnbkNvc3RHcm91cE1lbWJlchIuLmJsdWVhcGkuY292ZXIudjEuQXNzaWduQ29zdEdyb3VwTWVtYmVyUmVxdWVzdBovLmJsdWVhcGkuY292ZXIudjEuQXNzaWduQ29zdEdyb3VwTWVtYmVyUmVzcG9uc2UiMoLT5JMCLDoBKiInL3YxL2Nvc3Rncm91cHMve2Nvc3RHcm91cElkfS9tZW1iZXIvYWRkEq8BChVSZW1vdmVDb3N0R3JvdXBNZW1iZXISLi5ibHVlYXBpLmNvdmVyLnYxLlJlbW92ZUNvc3RHcm91cE1lbWJlclJlcXVlc3QaLy5ibHVlYXBpLmNvdmVyLnYxLlJlbW92ZUNvc3RHcm91cE1lbWJlclJlc3BvbnNlIjWC0+STAi86ASoiKi92MS9jb3N0Z3JvdXBzL3tjb3N0R3JvdXBJZH0vbWVtYmVyL3JlbW92ZRKMAQoPRGVsZXRlQ29zdEdyb3VwEiguYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVDb3N0R3JvdXBSZXF1ZXN0GikuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVDb3N0R3JvdXBSZXNwb25zZSIkgtPkkwIeKhwvdjEvY29zdGdyb3Vwcy97Y29zdEdyb3VwSWR9EqYBChtHZXRBY2NvdW50QWNjZXNzVGVtcGxhdGVVcmwSNC5ibHVlYXBpLmNvdmVyLnYxLkdldEFjY291bnRBY2Nlc3NUZW1wbGF0ZVVybFJlcXVlc3QaNS5ibHVlYXBpLmNvdmVyLnYxLkdldEFjY291bnRBY2Nlc3NUZW1wbGF0ZVVybFJlc3BvbnNlIhqC0+STAhQSEi92MS9hd3MvYWNjdGFjY2VzcxKKAQoRTGlzdEFjY291bnRBY2Nlc3MSKi5ibHVlYXBpLmNvdmVyLnYxLkxpc3RBY2NvdW50QWNjZXNzUmVxdWVzdBofLmJsdWVhcGkuY292ZXIudjEuQWNjb3VudEFjY2VzcyImgtPkkwIgOgEqIhsvdjEvYXdzL2FjY3RhY2Nlc3MvYWxsOnJlYWQwARKDAQoQR2V0QWNjb3VudEFjY2VzcxIpLmJsdWVhcGkuY292ZXIudjEuR2V0QWNjb3VudEFjY2Vzc1JlcXVlc3QaHy5ibHVlYXBpLmNvdmVyLnYxLkFjY291bnRBY2Nlc3MiI4LT5JMCHRIbL3YxL2F3cy9hY2N0YWNjZXNzL3t0YXJnZXR9EnwKDUdldERhdGFBY2Nlc3MSLy5ibHVlYXBpLmNvdmVyLnYxLkdldEFuZERlbGV0ZURhdGFBY2Nlc3NSZXF1ZXN0GhwuYmx1ZWFwaS5jb3Zlci52MS5EYXRhQWNjZXNzIhyC0+STAhYSFC92MS9hY2NvdW50L3t0YXJnZXR9EnkKEERlbGV0ZURhdGFBY2Nlc3MSLy5ibHVlYXBpLmNvdmVyLnYxLkdldEFuZERlbGV0ZURhdGFBY2Nlc3NSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IhyC0+STAhYqFC92MS9hY2NvdW50L3t0YXJnZXR9EoMBChNDcmVhdGVBY2NvdW50QWNjZXNzEiwuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVBY2NvdW50QWNjZXNzUmVxdWVzdBofLmJsdWVhcGkuY292ZXIudjEuQWNjb3VudEFjY2VzcyIdgtPkkwIXOgEqIhIvdjEvYXdzL2FjY3RhY2Nlc3MSnAEKG0NyZWF0ZUFjY291bnRBY2Nlc3NTdGFja3NldBI0LmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQWNjb3VudEFjY2Vzc1N0YWNrc2V0UmVxdWVzdBofLmJsdWVhcGkuY292ZXIudjEuQWNjb3VudEFjY2VzcyImgtPkkwIgOgEqIhsvdjEvYXdzL2FjY3RhY2Nlc3Mvc3RhY2tzZXQSigEKFkNyZWF0ZUFjY291bnRBY2Nlc3NDdXISLC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUFjY291bnRBY2Nlc3NSZXF1ZXN0Gh8uYmx1ZWFwaS5jb3Zlci52MS5BY2NvdW50QWNjZXNzIiGC0+STAhs6ASoiFi92MS9hd3MvYWNjdGFjY2Vzcy9jdXISewoTVXBkYXRlQWNjb3VudEFjY2VzcxIsLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQWNjb3VudEFjY2Vzc1JlcXVlc3QaES5wcm90b3MuT3BlcmF0aW9uIiOC0+STAh0aGy92MS9hd3MvYWNjdGFjY2Vzcy97dGFyZ2V0fRKTAQoTRGVsZXRlQWNjb3VudEFjY2VzcxIsLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQWNjb3VudEFjY2Vzc1JlcXVlc3QaLS5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUFjY291bnRBY2Nlc3NSZXNwb25zZSIfgtPkkwIZKhcvdjEvYWNjdGFjY2Vzcy97dGFyZ2V0fRJ0Cg9SZWdpc3RlckFjY291bnQSKC5ibHVlYXBpLmNvdmVyLnYxLlJlZ2lzdGVyQWNjb3VudFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiH4LT5JMCGToBKiIUL3YxL3t2ZW5kb3J9L2FjY291bnQScQoSUmVnaXN0ZXJEYXRhQWNjZXNzEisuYmx1ZWFwaS5jb3Zlci52MS5SZWdpc3RlckRhdGFBY2Nlc3NSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IhaC0+STAhA6ASoiCy92MS9hY2NvdW50EnAKEUFkZEJpbGxpbmdBY2NvdW50EicuYmx1ZWFwaS5jb3Zlci52MS5CaWxsaW5nQWNjb3VudFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiGoLT5JMCFDoBKiIPL3YxL2JpbGxpbmdhY2N0EncKDkxpc3REYXRhQWNjZXNzEicuYmx1ZWFwaS5jb3Zlci52MS5MaXN0RGF0YUFjY2Vzc1JlcXVlc3QaHC5ibHVlYXBpLmNvdmVyLnYxLkRhdGFBY2Nlc3MiHILT5JMCFiIUL3YxL2FjY291bnQvYWxsOnJlYWQwARKoAQoYTGlzdFVucmVnaXN0ZXJlZEFjY291bnRzEjEuYmx1ZWFwaS5jb3Zlci52MS5MaXN0VW5yZWdpc3RlcmVkQWNjb3VudHNSZXF1ZXN0GjIuYmx1ZWFwaS5jb3Zlci52MS5MaXN0VW5yZWdpc3RlcmVkQWNjb3VudHNSZXNwb25zZSIlgtPkkwIfIh0vdjEvYWNjb3VudC91bnJlZ2lzdGVyZWQ6cmVhZBJ2ChBVcGRhdGVEYXRhQWNjZXNzEikuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVEYXRhQWNjZXNzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIfgtPkkwIZOgEqGhQvdjEvYWNjb3VudC97dGFyZ2V0fRJrCgpMaXN0QXNzZXRzEiMuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QXNzZXRzUmVxdWVzdBoaLmJsdWVhcGkuY292ZXIudjEuUmVzb3VyY2UiGoLT5JMCFDoBKiIPL3YxL2Fzc2V0czpyZWFkMAESkwEKEEdldEFzc2V0c1N1bW1hcnkSKS5ibHVlYXBpLmNvdmVyLnYxLkdldEFzc2V0c1N1bW1hcnlSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5HZXRBc3NldHNTdW1tYXJ5UmVzcG9uc2UiKILT5JMCIhIgL3YxL2Fzc2V0cy9zdW1tYXJ5L3tjb3N0R3JvdXBJZH0ScgoMR2V0Q29zdFVzYWdlEiUuYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0VXNhZ2VSZXF1ZXN0GhouYmx1ZWFwaS5jb3Zlci52MS5Db3N0SXRlbSIdgtPkkwIXOgEqIhIvdjEvY29zdHVzYWdlOnJlYWQwARLCAQocR2V0UmlnaHRTaXppbmdSZWNvbW1lbmRhdGlvbhI1LmJsdWVhcGkuY292ZXIudjEuR2V0UmlnaHRTaXppbmdSZWNvbW1lbmRhdGlvblJlcXVlc3QaNi5ibHVlYXBpLmNvdmVyLnYxLkdldFJpZ2h0U2l6aW5nUmVjb21tZW5kYXRpb25SZXNwb25zZSIzgtPkkwItEisvdjEvcmlnaHRzaXppbmdyZWNvbW1lbmRhdGlvbi97Y29zdEdyb3VwSWR9EpgBChJNb2RpZnlSZXNvdXJjZVR5cGUSKy5ibHVlYXBpLmNvdmVyLnYxLk1vZGlmeVJlc291cmNlVHlwZVJlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLk1vZGlmeVJlc291cmNlVHlwZVJlc3BvbnNlIieC0+STAiE6ASoiHC92MS97dmVuZG9yfS9yZXNvdXJjZS9tb2RpZnkSmAEKEVRlcm1pbmF0ZVJlc291cmNlEiouYmx1ZWFwaS5jb3Zlci52MS5UZXJtaW5hdGVSZXNvdXJjZVJlcXVlc3QaKy5ibHVlYXBpLmNvdmVyLnYxLlRlcm1pbmF0ZVJlc291cmNlUmVzcG9uc2UiKoLT5JMCJDoBKiIfL3YxL3t2ZW5kb3J9L3Jlc291cmNlL3Rlcm1pbmF0ZRKNAQoQVXBsb2FkQ2hhcmdlQ29kZRIpLmJsdWVhcGkuY292ZXIudjEuVXBsb2FkQ2hhcmdlQ29kZVJlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLlVwbG9hZENoYXJnZUNvZGVSZXNwb25zZSIggtPkkwIaOgEqIhUvdjEvY2hhcmdlY29kZS91cGxvYWQoARJ6CgtBc3NpZ25QYXllchIkLmJsdWVhcGkuY292ZXIudjEuQXNzaWduUGF5ZXJSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5Bc3NpZ25QYXllclJlc3BvbnNlIh6C0+STAhg6ASoiEy92MS97dmVuZG9yfS9wYXllcnMScQoJR2V0UGF5ZXJzEiIuYmx1ZWFwaS5jb3Zlci52MS5HZXRQYXllcnNSZXF1ZXN0GiMuYmx1ZWFwaS5jb3Zlci52MS5HZXRQYXllcnNSZXNwb25zZSIbgtPkkwIVEhMvdjEve3ZlbmRvcn0vcGF5ZXJzEocBCgtHZXRBY2NvdW50cxIkLmJsdWVhcGkuY292ZXIudjEuR2V0QWNjb3VudHNSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5HZXRBY2NvdW50c1Jlc3BvbnNlIiuC0+STAiUSIy92MS97dmVuZG9yfS9hY2NvdW50cy97Y29zdEdyb3VwSWR9EocBCgtHZXRTZXJ2aWNlcxIkLmJsdWVhcGkuY292ZXIudjEuR2V0U2VydmljZXNSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5HZXRTZXJ2aWNlc1Jlc3BvbnNlIiuC0+STAiUSIy92MS97dmVuZG9yfS9zZXJ2aWNlcy97Y29zdEdyb3VwSWR9EoMBCgpHZXRSZWdpb25zEiMuYmx1ZWFwaS5jb3Zlci52MS5HZXRSZWdpb25zUmVxdWVzdBokLmJsdWVhcGkuY292ZXIudjEuR2V0UmVnaW9uc1Jlc3BvbnNlIiqC0+STAiQSIi92MS97dmVuZG9yfS9yZWdpb25zL3tjb3N0R3JvdXBJZH0SdwoHR2V0VGFncxIgLmJsdWVhcGkuY292ZXIudjEuR2V0VGFnc1JlcXVlc3QaIS5ibHVlYXBpLmNvdmVyLnYxLkdldFRhZ3NSZXNwb25zZSIngtPkkwIhEh8vdjEve3ZlbmRvcn0vdGFncy97Y29zdEdyb3VwSWR9EncKCExpc3RGZWVzEiEuYmx1ZWFwaS5jb3Zlci52MS5MaXN0RmVlc1JlcXVlc3QaHC5ibHVlYXBpLmNvdmVyLnYxLkZlZURldGFpbHMiKILT5JMCIjoBKiIdL3YxL2FsbG9jYXRpb25zL2ZlZXMvYWxsOnJlYWQwARJ6CgpSZXN0b3JlRmVlEiMuYmx1ZWFwaS5jb3Zlci52MS5SZXN0b3JlRmVlUmVxdWVzdBocLmJsdWVhcGkuY292ZXIudjEuRmVlRGV0YWlscyIngtPkkwIhOgEqIhwvdjEvYWxsb2NhdGlvbnMvZmVlcy9yZXN0b3JlMAESfgoPR2V0Q29zdEdyb3VwRmVlEiguYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0R3JvdXBGZWVSZXF1ZXN0GhkuYmx1ZWFwaS5jb3Zlci52MS5GZWVJdGVtIiSC0+STAh46ASoiGS92MS9hbGxvY2F0aW9ucy9mZWVzOnJlYWQwARJ7Cg5MaXN0QWxsb2NhdG9ycxInLmJsdWVhcGkuY292ZXIudjEuTGlzdEFsbG9jYXRvcnNSZXF1ZXN0GiYuYmx1ZWFwaS5jb3Zlci52MS5Db3N0QWxsb2NhdG9yRGV0YWlscyIWgtPkkwIQEg4vdjEvYWxsb2NhdG9yczABEn4KD0NyZWF0ZUFsbG9jYXRvchIoLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQWxsb2NhdG9yUmVxdWVzdBomLmJsdWVhcGkuY292ZXIudjEuQ29zdEFsbG9jYXRvckRldGFpbHMiGYLT5JMCEzoBKiIOL3YxL2FsbG9jYXRvcnMSoAEKF0dldEFsbG9jYXRpb25BdHRyaWJ1dGVzEjAuYmx1ZWFwaS5jb3Zlci52MS5HZXRBbGxvY2F0aW9uQXR0cmlidXRlc1JlcXVlc3QaMS5ibHVlYXBpLmNvdmVyLnYxLkdldEFsbG9jYXRpb25BdHRyaWJ1dGVzUmVzcG9uc2UiIILT5JMCGhIYL3YxL2FsbG9jYXRvcnMvYXR0cmlidXRlEpQBChRHZXRBbGxvY2F0aW9uU291cmNlcxItLmJsdWVhcGkuY292ZXIudjEuR2V0QWxsb2NhdGlvblNvdXJjZXNSZXF1ZXN0Gi4uYmx1ZWFwaS5jb3Zlci52MS5HZXRBbGxvY2F0aW9uU291cmNlc1Jlc3BvbnNlIh2C0+STAhcSFS92MS9hbGxvY2F0b3JzL3NvdXJjZRKBAQoPVXBkYXRlQWxsb2NhdG9yEiYuYmx1ZWFwaS5jb3Zlci52MS5Db3N0QWxsb2NhdG9yUmVxdWVzdBomLmJsdWVhcGkuY292ZXIudjEuQ29zdEFsbG9jYXRvckRldGFpbHMiHoLT5JMCGDoBKhoTL3YxL2FsbG9jYXRvcnMve2lkfRJwCg9EZWxldGVBbGxvY2F0b3ISKC5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUFsbG9jYXRvclJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiG4LT5JMCFSoTL3YxL2FsbG9jYXRvcnMve2lkfRKQAQoVUHJveHlDcmVhdGVDb21wbGV0aW9uEi4uYmx1ZWFwaS5jb3Zlci52MS5Qcm94eUNyZWF0ZUNvbXBsZXRpb25SZXF1ZXN0Gi8uYmx1ZWFwaS5jb3Zlci52MS5Qcm94eUNyZWF0ZUNvbXBsZXRpb25SZXNwb25zZSIUgtPkkwIOOgEqIgkvdjEveC9wY2MwARKKAQoUU2ltdWxhdGVGZWVBbGxvY2F0b3ISKC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUFsbG9jYXRvclJlcXVlc3QaHC5ibHVlYXBpLmNvdmVyLnYxLkZlZURldGFpbHMiKILT5JMCIjoBKiIdL3YxL2FsbG9jYXRpb25zL2ZlZXMvc2ltdWxhdGUwARKYAQoQTGlzdEFjY291bnRVc2FnZRIpLmJsdWVhcGkuY292ZXIudjEuTGlzdEFjY291bnRVc2FnZVJlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkFjY291bnRVc2FnZURldGFpbHMiMILT5JMCKjoBKiIlL3YxL2FsbG9jYXRpb25zL2FjY291bnR1c2FnZS9hbGw6cmVhZDABEp0BChNSZXN0b3JlQWNjb3VudFVzYWdlEiwuYmx1ZWFwaS5jb3Zlci52MS5SZXN0b3JlQWNjb3VudFVzYWdlUmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuQWNjb3VudFVzYWdlRGV0YWlscyIvgtPkkwIpOgEqIiQvdjEvYWxsb2NhdGlvbnMvYWNjb3VudHVzYWdlL3Jlc3RvcmUwARKbAQoUU2ltdWxhdGVBY2NvdW50VXNhZ2USKC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUFsbG9jYXRvclJlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkFjY291bnRVc2FnZURldGFpbHMiMILT5JMCKjoBKiIlL3YxL2FsbG9jYXRpb25zL2FjY291bnR1c2FnZS9zaW11bGF0ZTABEoEBCgtMaXN0U2F2aW5ncxIhLmJsdWVhcGkuY292ZXIudjEuTGlzdEZlZXNSZXF1ZXN0GiAuYmx1ZWFwaS5jb3Zlci52MS5TYXZpbmdzRGV0YWlscyIrgtPkkwIlOgEqIiAvdjEvYWxsb2NhdGlvbnMvc2F2aW5ncy9hbGw6cmVhZDABEokBCg5SZXN0b3JlU2F2aW5ncxInLmJsdWVhcGkuY292ZXIudjEuUmVzdG9yZVNhdmluZ3NSZXF1ZXN0GiAuYmx1ZWFwaS5jb3Zlci52MS5TYXZpbmdzRGV0YWlscyIqgtPkkwIkOgEqIh8vdjEvYWxsb2NhdGlvbnMvc2F2aW5ncy9yZXN0b3JlMAESjAEKD1NpbXVsYXRlU2F2aW5ncxIoLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQWxsb2NhdG9yUmVxdWVzdBogLmJsdWVhcGkuY292ZXIudjEuU2F2aW5nc0RldGFpbHMiK4LT5JMCJToBKiIgL3YxL2FsbG9jYXRpb25zL3NhdmluZ3Mvc2ltdWxhdGUwARKOAQoWR2V0Q29zdEdyb3VwQWxsb2NhdGlvbhIvLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEdyb3VwQWxsb2NhdGlvblJlcXVlc3QaIC5ibHVlYXBpLmNvdmVyLnYxLkFsbG9jYXRpb25JdGVtIh+C0+STAhk6ASoiFC92MS9hbGxvY2F0aW9uczpyZWFkMAEShwEKEFByb2Nlc3NBdXRoMFVzZXISKS5ibHVlYXBpLmNvdmVyLnYxLlByb2Nlc3NBdXRoMFVzZXJSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5Qcm9jZXNzQXV0aDBVc2VyUmVzcG9uc2UiHILT5JMCFjoBKiIRL3YxL21lbWJlcnMvYXV0aDASmwEKG0FkZFBhcnRuZXJDZW50ZXJDcmVkZW50aWFscxI0LmJsdWVhcGkuY292ZXIudjEuQWRkUGFydG5lckNlbnRlckNyZWRlbnRpYWxzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIugtPkkwIoOgEqIiMvdjEvYXp1cmUvY3JlZGVudGlhbHMvcGFydG5lcmNlbnRlchJ1Cg1BZGRNcG5TZXR0aW5nEiYuYmx1ZWFwaS5jb3Zlci52MS5BZGRNcG5TZXR0aW5nUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIkgtPkkwIeOgEqIhkvdjEvYXp1cmUvY3JlZGVudGlhbHMvbXBuEpMBChVHZXRDb3N0R3JvdXBBdHRyaWJ1dGUSLi5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RHcm91cEF0dHJpYnV0ZVJlcXVlc3QaLy5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RHcm91cEF0dHJpYnV0ZVJlc3BvbnNlIhmC0+STAhM6ASoiDi92MS9hdHRyaWJ1dGVzEm8KCUdldEFsZXJ0cxIiLmJsdWVhcGkuY292ZXIudjEuR2V0QWxlcnRzUmVxdWVzdBojLmJsdWVhcGkuY292ZXIudjEuR2V0QWxlcnRzUmVzcG9uc2UiF4LT5JMCERIPL3YxL2FsZXJ0cy9jb3N0MAESdgoLQ3JlYXRlQWxlcnQSJC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUFsZXJ0UmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQWxlcnRSZXNwb25zZSIagtPkkwIUOgEqIg8vdjEvYWxlcnRzL2Nvc3QShAEKD0dldEFsZXJ0RGV0YWlscxIoLmJsdWVhcGkuY292ZXIudjEuR2V0QWxlcnREZXRhaWxzUmVxdWVzdBopLmJsdWVhcGkuY292ZXIudjEuR2V0QWxlcnREZXRhaWxzUmVzcG9uc2UiHILT5JMCFhIUL3YxL2FsZXJ0cy9jb3N0L3tpZH0SeAoLRGVsZXRlQWxlcnQSJC5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUFsZXJ0UmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQWxlcnRSZXNwb25zZSIcgtPkkwIWKhQvdjEvYWxlcnRzL2Nvc3Qve2lkfRKQAQoSVXBkYXRlQWxlcnREZXRhaWxzEisuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVBbGVydERldGFpbHNSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVBbGVydERldGFpbHNSZXNwb25zZSIfgtPkkwIZOgEqGhQvdjEvYWxlcnRzL2Nvc3Qve2lkfRJ6CgtHZXRDaGFubmVscxIkLmJsdWVhcGkuY292ZXIudjEuR2V0Q2hhbm5lbHNSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5HZXRDaGFubmVsc1Jlc3BvbnNlIhyC0+STAhY6ASoiES92MS9jaGFubmVsczpyZWFkMAESeQoNQ3JlYXRlQ2hhbm5lbBImLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQ2hhbm5lbFJlcXVlc3QaJy5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUNoYW5uZWxSZXNwb25zZSIXgtPkkwIROgEqIgwvdjEvY2hhbm5lbHMShwEKEUdldENoYW5uZWxEZXRhaWxzEiouYmx1ZWFwaS5jb3Zlci52MS5HZXRDaGFubmVsRGV0YWlsc1JlcXVlc3QaKy5ibHVlYXBpLmNvdmVyLnYxLkdldENoYW5uZWxEZXRhaWxzUmVzcG9uc2UiGYLT5JMCExIRL3YxL2NoYW5uZWxzL3tpZH0SewoNRGVsZXRlQ2hhbm5lbBImLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQ2hhbm5lbFJlcXVlc3QaJy5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUNoYW5uZWxSZXNwb25zZSIZgtPkkwITKhEvdjEvY2hhbm5lbHMve2lkfRKTAQoUVXBkYXRlQ2hhbm5lbERldGFpbHMSLS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNoYW5uZWxEZXRhaWxzUmVxdWVzdBouLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ2hhbm5lbERldGFpbHNSZXNwb25zZSIcgtPkkwIWOgEqGhEvdjEvY2hhbm5lbHMve2lkfRKgAQoaR2V0RGlzY291bnRSZWNvbW1lbmRhdGlvbnMSMy5ibHVlYXBpLmNvdmVyLnYxLkdldERpc2NvdW50UmVjb21tZW5kYXRpb25zUmVxdWVzdBo0LmJsdWVhcGkuY292ZXIudjEuR2V0RGlzY291bnRSZWNvbW1lbmRhdGlvbnNSZXNwb25zZSIXgtPkkwIROgEqIgwvdjEvZGlzY291bnQSgAEKFUdldEFub21hbHlpbkNvc3RHcm91cBIuLmJsdWVhcGkuY292ZXIudjEuR2V0QW5vbWFseWluQ29zdEdyb3VwUmVxdWVzdBodLmJsdWVhcGkuY292ZXIudjEuQW5vbWFseURhdGEiFoLT5JMCEDoBKiILL3YxL2Fub21hbHkwARKWAQodQ3JlYXRlRGlzY291bnRFeHBpcmF0aW9uQWxlcnQSNi5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZURpc2NvdW50RXhwaXJhdGlvbkFsZXJ0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIlgtPkkwIfOgEqIhovdjEvYWxlcnRzL2V4cGlyZS9kaXNjb3VudBKbAQodVXBkYXRlRGlzY291bnRFeHBpcmF0aW9uQWxlcnQSNi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZURpc2NvdW50RXhwaXJhdGlvbkFsZXJ0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIqgtPkkwIkOgEqGh8vdjEvYWxlcnRzL2V4cGlyZS9kaXNjb3VudC97aWR9EqwBChpHZXREaXNjb3VudEV4cGlyYXRpb25BbGVydBI6LmJsdWVhcGkuY292ZXIudjEuTWFuaXB1bGF0ZURpc2NvdW50RXhwaXJhdGlvbkFsZXJ0UmVxdWVzdBopLmJsdWVhcGkuY292ZXIudjEuRGlzY291bnRFeHBpcnlBbGVydERhdGEiJ4LT5JMCIRIfL3YxL2FsZXJ0cy9leHBpcmUvZGlzY291bnQve2lkfRKtAQobTGlzdERpc2NvdW50RXhwaXJhdGlvbkFsZXJ0EjQuYmx1ZWFwaS5jb3Zlci52MS5MaXN0RGlzY291bnRFeHBpcmF0aW9uQWxlcnRSZXF1ZXN0GikuYmx1ZWFwaS5jb3Zlci52MS5EaXNjb3VudEV4cGlyeUFsZXJ0RGF0YSIrgtPkkwIlIiMvdjEvYWxlcnRzL2V4cGlyZS9kaXNjb3VudC9hbGw6cmVhZDABEpwBCh1EZWxldGVEaXNjb3VudEV4cGlyYXRpb25BbGVydBI6LmJsdWVhcGkuY292ZXIudjEuTWFuaXB1bGF0ZURpc2NvdW50RXhwaXJhdGlvbkFsZXJ0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIngtPkkwIhKh8vdjEvYWxlcnRzL2V4cGlyZS9kaXNjb3VudC97aWR9EngKEkNyZWF0ZUFub21hbHlBbGVydBIrLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQW5vbWFseUFsZXJ0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIdgtPkkwIXOgEqIhIvdjEvYWxlcnRzL2Fub21hbHkSfgoSRGVsZXRlQW5vbWFseUFsZXJ0Ei8uYmx1ZWFwaS5jb3Zlci52MS5NYW5pcHVsYXRlQW5vbWFseUFsZXJ0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIfgtPkkwIZKhcvdjEvYWxlcnRzL2Fub21hbHkve2lkfRKIAQoQTGlzdEFub21hbHlBbGVydBIpLmJsdWVhcGkuY292ZXIudjEuTGlzdEFub21hbHlBbGVydFJlcXVlc3QaIi5ibHVlYXBpLmNvdmVyLnYxLkFub21hbHlBbGVydERhdGEiI4LT5JMCHSIbL3YxL2FsZXJ0cy9hbm9tYWx5L2FsbDpyZWFkMAEShwEKD0dldEFub21hbHlBbGVydBIvLmJsdWVhcGkuY292ZXIudjEuTWFuaXB1bGF0ZUFub21hbHlBbGVydFJlcXVlc3QaIi5ibHVlYXBpLmNvdmVyLnYxLkFub21hbHlBbGVydERhdGEiH4LT5JMCGRIXL3YxL2FsZXJ0cy9hbm9tYWx5L3tpZH0SfQoSVXBkYXRlQW5vbWFseUFsZXJ0EisuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVBbm9tYWx5QWxlcnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiKC0+STAhw6ASoaFy92MS9hbGVydHMvYW5vbWFseS97aWR9EocBCg9SZWdpc3Rlck5ld1VzZXISKC5ibHVlYXBpLmNvdmVyLnYxLlJlZ2lzdGVyTmV3VXNlclJlcXVlc3QaKS5ibHVlYXBpLmNvdmVyLnYxLlJlZ2lzdGVyTmV3VXNlclJlc3BvbnNlIh+C0+STAhk6ASoiFC92MS9tZW1iZXJzL3JlZ2lzdGVyEogBCg5HZXRVc2VyUHJvZmlsZRInLmJsdWVhcGkuY292ZXIudjEuR2V0VXNlclByb2ZpbGVSZXF1ZXN0GiguYmx1ZWFwaS5jb3Zlci52MS5HZXRVc2VyUHJvZmlsZVJlc3BvbnNlIiOC0+STAh0SGy92MS9tZW1iZXJzL3Byb2ZpbGUve2VtYWlsfRKUAQoRVXBkYXRlVXNlclByb2ZpbGUSKi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJQcm9maWxlUmVxdWVzdBorLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlclByb2ZpbGVSZXNwb25zZSImgtPkkwIgOgEqGhsvdjEvbWVtYmVycy9wcm9maWxlL3tlbWFpbH0SeAoLTGlzdEJ1ZGdldHMSJC5ibHVlYXBpLmNvdmVyLnYxLkxpc3RCdWRnZXRzUmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuTGlzdEJ1ZGdldHNSZXNwb25zZSIagtPkkwIUOgEqIg8vdjEvYnVkZ2V0OnJlYWQwARJtCglHZXRCdWRnZXQSIi5ibHVlYXBpLmNvdmVyLnYxLkdldEJ1ZGdldFJlcXVlc3QaIy5ibHVlYXBpLmNvdmVyLnYxLkdldEJ1ZGdldFJlc3BvbnNlIheC0+STAhESDy92MS9idWRnZXQve2lkfRJ0CgxDcmVhdGVCdWRnZXQSJS5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUJ1ZGdldFJlcXVlc3QaJi5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUJ1ZGdldFJlc3BvbnNlIhWC0+STAg86ASoiCi92MS9idWRnZXQSdgoMRGVsZXRlQnVkZ2V0EiUuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVCdWRnZXRSZXF1ZXN0GiYuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVCdWRnZXRSZXNwb25zZSIXgtPkkwIRKg8vdjEvYnVkZ2V0L3tpZH0SeQoMVXBkYXRlQnVkZ2V0EiUuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVCdWRnZXRSZXF1ZXN0GiYuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVCdWRnZXRSZXNwb25zZSIagtPkkwIUOgEqGg8vdjEvYnVkZ2V0L3tpZH0S1wEKJ1Jlc29sdmVBV1NNYXJrZXRwbGFjZVRva2VuRm9yT25ib2FyZGluZxJALmJsdWVhcGkuY292ZXIudjEuUmVzb2x2ZUFXU01hcmtldHBsYWNlVG9rZW5Gb3JPbmJvYXJkaW5nUmVxdWVzdBpBLmJsdWVhcGkuY292ZXIudjEuUmVzb2x2ZUFXU01hcmtldHBsYWNlVG9rZW5Gb3JPbmJvYXJkaW5nUmVzcG9uc2UiJ4LT5JMCIToBKiIcL3YxL21lbWJlcnMvYXdzL3N1YnNjcmlwdGlvbhKsAQodR2V0Q3VzdG9tZXJTdWJzY3JpcHRpb25TdGF0dXMSNi5ibHVlYXBpLmNvdmVyLnYxLkdldEN1c3RvbWVyU3Vic2NyaXB0aW9uU3RhdHVzUmVxdWVzdBo3LmJsdWVhcGkuY292ZXIudjEuR2V0Q3VzdG9tZXJTdWJzY3JpcHRpb25TdGF0dXNSZXNwb25zZSIagtPkkwIUEhIvdjEvYmlsbGluZy9zdGF0dXMShgEKD0NyZWF0ZVByb2ZpbGluZxIoLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlUHJvZmlsaW5nUmVxdWVzdBopLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlUHJvZmlsaW5nUmVzcG9uc2UiHoLT5JMCGDoBKiITL3YxL21lbWJlcnMvcHJvZmlsZRKWAQoUQWRkSW5mb3RvTWFya2V0cGxhY2USLS5ibHVlYXBpLmNvdmVyLnYxLkFkZEluZm90b01hcmtldHBsYWNlUmVxdWVzdBouLmJsdWVhcGkuY292ZXIudjEuQWRkSW5mb3RvTWFya2V0cGxhY2VSZXNwb25zZSIfgtPkkwIZOgEqIhQvdjEvbWFya2V0cGxhY2UvaW5mbxKcAQoQR2V0UmVwb3J0U3VtbWFyeRIpLmJsdWVhcGkuY292ZXIudjEuR2V0UmVwb3J0U3VtbWFyeVJlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLkdldFJlcG9ydFN1bW1hcnlSZXNwb25zZSIxgtPkkwIrEikvdjEvcmVwb3J0cy9pbnNpZ2h0L3N1bW1hcnkve2Nvc3RHcm91cElkfRKcAQoTTGlzdFJlY29tbWVuZGF0aW9ucxIrLmJsdWVhcGkuY292ZXIudjEuTGlzdFJlY29tbWVuZGF0aW9uUmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuTGlzdFJlY29tbWVuZGF0aW9uUmVzcG9uc2UiKILT5JMCIhIgL3YxL3JlY29tbWVuZGF0aW9ucy9vcHRpbWl6YXRpb24wARKfAQoVTGlzdFJlY29tbWVuZGF0aW9uc1YyEi0uYmx1ZWFwaS5jb3Zlci52MS5MaXN0UmVjb21tZW5kYXRpb25WMlJlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLkxpc3RSZWNvbW1lbmRhdGlvblJlc3BvbnNlIieC0+STAiE6ASoiHC92MS9yZWNvbW1lbmRhdGlvbnMvYWxsOnJlYWQwARKbAQoRR2V0UmVjb21tZW5kYXRpb24SKi5ibHVlYXBpLmNvdmVyLnYxLkdldFJlY29tbWVuZGF0aW9uUmVxdWVzdBorLmJsdWVhcGkuY292ZXIudjEuR2V0UmVjb21tZW5kYXRpb25SZXNwb25zZSItgtPkkwInEiUvdjEvcmVjb21tZW5kYXRpb25zL29wdGltaXphdGlvbi97aWR9EpwBChNHZXRSZWNvbW1lbmRhdGlvblYyEiwuYmx1ZWFwaS5jb3Zlci52MS5HZXRSZWNvbW1lbmRhdGlvblYyUmVxdWVzdBotLmJsdWVhcGkuY292ZXIudjEuR2V0UmVjb21tZW5kYXRpb25WMlJlc3BvbnNlIiiC0+STAiISIC92MS9yZWNvbW1lbmRhdGlvbnMvZGV0YWlscy97aWR9EpoBChNFeGVjdXRlT3B0aW1pemF0aW9uEiwuYmx1ZWFwaS5jb3Zlci52MS5FeGVjdXRlT3B0aW1pemF0aW9uUmVxdWVzdBotLmJsdWVhcGkuY292ZXIudjEuRXhlY3V0ZU9wdGltaXphdGlvblJlc3BvbnNlIiaC0+STAiA6ASoiGy92MS9yZWNvbW1lbmRhdGlvbnMvZXhlY3V0ZRKdAQoSR2V0RXhlY3V0aW9uU3RhdHVzEisuYmx1ZWFwaS5jb3Zlci52MS5HZXRFeGVjdXRpb25TdGF0dXNSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5HZXRFeGVjdXRpb25TdGF0dXNSZXNwb25zZSIqgtPkkwIkEiIvdjEvcmVjb21tZW5kYXRpb25zL2V4ZWN1dGUvc3RhdHVzMAESmQEKDk1hcmtBc0V4ZWN1dGVkEicuYmx1ZWFwaS5jb3Zlci52MS5NYXJrQXNFeGVjdXRlZFJlcXVlc3QaKC5ibHVlYXBpLmNvdmVyLnYxLk1hcmtBc0V4ZWN1dGVkUmVzcG9uc2UiNILT5JMCLjoBKiIpL3YxL3JlY29tbWVuZGF0aW9ucy9vcHRpbWl6YXRpb24vZXhlY3V0ZWQSuQEKGlVuZG9FeGVjdXRlZFJlY29tbWVuZGF0aW9uEjMuYmx1ZWFwaS5jb3Zlci52MS5VbmRvRXhlY3V0ZWRSZWNvbW1lbmRhdGlvblJlcXVlc3QaNC5ibHVlYXBpLmNvdmVyLnYxLlVuZG9FeGVjdXRlZFJlY29tbWVuZGF0aW9uUmVzcG9uc2UiMILT5JMCKjoBKiIlL3YxL3JlY29tbWVuZGF0aW9ucy9vcHRpbWl6YXRpb24vdW5kbxKkAQoTT3B0aW1pemF0aW9uSGlzdG9yeRIsLmJsdWVhcGkuY292ZXIudjEuT3B0aW1pemF0aW9uSGlzdG9yeVJlcXVlc3QaLS5ibHVlYXBpLmNvdmVyLnYxLk9wdGltaXphdGlvbkhpc3RvcnlSZXNwb25zZSIwgtPkkwIqEigvdjEvcmVjb21tZW5kYXRpb25zL29wdGltaXphdGlvbi9oaXN0b3J5Er8BChpTZXRDb3N0R3JvdXBFdmVudEluZGljYXRvchIzLmJsdWVhcGkuY292ZXIudjEuU2V0Q29zdEdyb3VwRXZlbnRJbmRpY2F0b3JSZXF1ZXN0GjQuYmx1ZWFwaS5jb3Zlci52MS5TZXRDb3N0R3JvdXBFdmVudEluZGljYXRvclJlc3BvbnNlIjaC0+STAjA6ASoiKy92MS9jb3N0Z3JvdXBzL3tjb3N0R3JvdXBJZH0vZXZlbnRJbmRpY2F0b3ISuAEKGlNldENvc3RHcm91cEFub21hbHlPcHRpb25zEjMuYmx1ZWFwaS5jb3Zlci52MS5TZXRDb3N0R3JvdXBBbm9tYWx5T3B0aW9uc1JlcXVlc3QaNC5ibHVlYXBpLmNvdmVyLnYxLlNldENvc3RHcm91cEFub21hbHlPcHRpb25zUmVzcG9uc2UiL4LT5JMCKToBKiIkL3YxL2Nvc3Rncm91cHMve2Nvc3RHcm91cElkfS9hbm9tYWx5EpABChFTZXRPcmdGaXNjYWxNb250aBIqLmJsdWVhcGkuY292ZXIudjEuU2V0T3JnRmlzY2FsTW9udGhSZXF1ZXN0GisuYmx1ZWFwaS5jb3Zlci52MS5TZXRPcmdGaXNjYWxNb250aFJlc3BvbnNlIiKC0+STAhw6ASoiFy92MS9yZXBvcnRzL2Zpc2NhbG1vbnRoEo0BChFHZXRPcmdGaXNjYWxNb250aBIqLmJsdWVhcGkuY292ZXIudjEuR2V0T3JnRmlzY2FsTW9udGhSZXF1ZXN0GisuYmx1ZWFwaS5jb3Zlci52MS5HZXRPcmdGaXNjYWxNb250aFJlc3BvbnNlIh+C0+STAhkSFy92MS9yZXBvcnRzL2Zpc2NhbG1vbnRoEqIBChRUcmFuc2Zlck9yZ2FuaXphdGlvbhItLmJsdWVhcGkuY292ZXIudjEuVHJhbnNmZXJPcmdhbml6YXRpb25SZXF1ZXN0Gi4uYmx1ZWFwaS5jb3Zlci52MS5UcmFuc2Zlck9yZ2FuaXphdGlvblJlc3BvbnNlIiuC0+STAiUSIy92MS9vcmdhbml6YXRpb25zL3RyYW5zZmVyL3t0YXJnZXR9EqkBChlVcGRhdGVDb3N0R3JvdXBDcmVhdGlvblVJEjIuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBDcmVhdGlvblVJUmVxdWVzdBozLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwQ3JlYXRpb25VSVJlc3BvbnNlIiOC0+STAh06ASoaGC92MS9tZS9jb3N0Z3JvdXBjcmVhdGlvbhJ2Cg1MaXN0VW5pdFR5cGVzEiYuYmx1ZWFwaS5jb3Zlci52MS5MaXN0VW5pdFR5cGVzUmVxdWVzdBonLmJsdWVhcGkuY292ZXIudjEuTGlzdFVuaXRUeXBlc1Jlc3BvbnNlIhSC0+STAg4SDC92MS91bml0Y29zdBJ8Cg5DcmVhdGVVbml0VHlwZRInLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlVW5pdFR5cGVSZXF1ZXN0GiguYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVVbml0VHlwZVJlc3BvbnNlIheC0+STAhE6ASoiDC92MS91bml0Y29zdBJ1CgtHZXRVbml0VHlwZRIkLmJsdWVhcGkuY292ZXIudjEuR2V0VW5pdFR5cGVSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5HZXRVbml0VHlwZVJlc3BvbnNlIhmC0+STAhMSES92MS91bml0Y29zdC97aWR9EoEBCg5VcGRhdGVVbml0VHlwZRInLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVW5pdFR5cGVSZXF1ZXN0GiguYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVbml0VHlwZVJlc3BvbnNlIhyC0+STAhY6ASoaES92MS91bml0Y29zdC97aWR9En4KDkRlbGV0ZVVuaXRUeXBlEicuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVVbml0VHlwZVJlcXVlc3QaKC5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZVVuaXRUeXBlUmVzcG9uc2UiGYLT5JMCEyoRL3YxL3VuaXRjb3N0L3tpZH0SdgoKTWVyZ2VVbml0cxIjLmJsdWVhcGkuY292ZXIudjEuTWVyZ2VVbml0c1JlcXVlc3QaJC5ibHVlYXBpLmNvdmVyLnYxLk1lcmdlVW5pdHNSZXNwb25zZSIdgtPkkwIXOgEqIhIvdjEvdW5pdGNvc3QvbWVyZ2USkQEKEkxpc3RTdWdnZXN0ZWRVbml0cxIrLmJsdWVhcGkuY292ZXIudjEuTGlzdFN1Z2dlc3RlZFVuaXRzUmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuTGlzdFN1Z2dlc3RlZFVuaXRzUmVzcG9uc2UiIILT5JMCGhIYL3YxL3VuaXRjb3N0L2F1dG9zdWdnZXN0Ep0BChNNZXJnZVN1Z2dlc3RlZFVuaXRzEiwuYmx1ZWFwaS5jb3Zlci52MS5NZXJnZVN1Z2dlc3RlZFVuaXRzUmVxdWVzdBotLmJsdWVhcGkuY292ZXIudjEuTWVyZ2VTdWdnZXN0ZWRVbml0c1Jlc3BvbnNlIimC0+STAiM6ASoiHi92MS91bml0Y29zdC9hdXRvc3VnZ2VzdC9tZXJnZRKqAQoXQ3JlYXRlVW5pdEZyb21TdWdnZXN0ZWQSMC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVVuaXRGcm9tU3VnZ2VzdGVkUmVxdWVzdBoxLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlVW5pdEZyb21TdWdnZXN0ZWRSZXNwb25zZSIqgtPkkwIkOgEqIh8vdjEvdW5pdGNvc3QvYXV0b3N1Z2dlc3QvY3JlYXRlEpgBChNMaXN0U2hhcmVkUmVzb3VyY2VzEiwuYmx1ZWFwaS5jb3Zlci52MS5MaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdBotLmJsdWVhcGkuY292ZXIudjEuTGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlIiSC0+STAh4SHC92MS91bml0Y29zdC9zaGFyZWRyZXNvdXJjZXMSoAEKFENyZWF0ZVNoYXJlZFJlc291cmNlEi4uYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0Gi8uYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVTaGFyZWRSZXNvdXJjZXNSZXNwb25zZSIngtPkkwIhOgEqIhwvdjEvdW5pdGNvc3Qvc2hhcmVkcmVzb3VyY2VzEpkBChFHZXRTaGFyZWRSZXNvdXJjZRIrLmJsdWVhcGkuY292ZXIudjEuR2V0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuR2V0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2UiKYLT5JMCIxIhL3YxL3VuaXRjb3N0L3NoYXJlZHJlc291cmNlcy97aWR9EqUBChRVcGRhdGVTaGFyZWRSZXNvdXJjZRIuLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlU2hhcmVkUmVzb3VyY2VzUmVxdWVzdBovLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlU2hhcmVkUmVzb3VyY2VzUmVzcG9uc2UiLILT5JMCJjoBKhohL3YxL3VuaXRjb3N0L3NoYXJlZHJlc291cmNlcy97aWR9EqIBChREZWxldGVTaGFyZWRSZXNvdXJjZRIuLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlU2hhcmVkUmVzb3VyY2VzUmVxdWVzdBovLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlU2hhcmVkUmVzb3VyY2VzUmVzcG9uc2UiKYLT5JMCIyohL3YxL3VuaXRjb3N0L3NoYXJlZHJlc291cmNlcy97aWR9EoQBCg9MaXN0VW5pdE1ldHJpY3MSKC5ibHVlYXBpLmNvdmVyLnYxLkxpc3RVbml0TWV0cmljc1JlcXVlc3QaKS5ibHVlYXBpLmNvdmVyLnYxLkxpc3RVbml0TWV0cmljc1Jlc3BvbnNlIhyC0+STAhYSFC92MS91bml0Y29zdC9tZXRyaWNzEooBChBDcmVhdGVVbml0TWV0cmljEikuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVVbml0TWV0cmljUmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlVW5pdE1ldHJpY1Jlc3BvbnNlIh+C0+STAhk6ASoiFC92MS91bml0Y29zdC9tZXRyaWNzEoMBCg1HZXRVbml0TWV0cmljEiYuYmx1ZWFwaS5jb3Zlci52MS5HZXRVbml0TWV0cmljUmVxdWVzdBonLmJsdWVhcGkuY292ZXIudjEuR2V0VW5pdE1ldHJpY1Jlc3BvbnNlIiGC0+STAhsSGS92MS91bml0Y29zdC9tZXRyaWNzL3tpZH0SjwEKEFVwZGF0ZVVuaXRNZXRyaWMSKS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVuaXRNZXRyaWNSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVbml0TWV0cmljUmVzcG9uc2UiJILT5JMCHjoBKhoZL3YxL3VuaXRjb3N0L21ldHJpY3Mve2lkfRKMAQoQRGVsZXRlVW5pdE1ldHJpYxIpLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlVW5pdE1ldHJpY1JlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZVVuaXRNZXRyaWNSZXNwb25zZSIhgtPkkwIbKhkvdjEvdW5pdGNvc3QvbWV0cmljcy97aWR9ErYBChhDb25maXJtR29vZ2xlU2hlZXRBY2Nlc3MSMS5ibHVlYXBpLmNvdmVyLnYxLkNvbmZpcm1Hb29nbGVTaGVldEFjY2Vzc1JlcXVlc3QaMi5ibHVlYXBpLmNvdmVyLnYxLkNvbmZpcm1Hb29nbGVTaGVldEFjY2Vzc1Jlc3BvbnNlIjOC0+STAi06ASoiKC92MS91bml0Y29zdC9tZXRyaWNzL2dvb2dsZXNoZWV0L2NvbmZpcm0SpAEKElByZXZpZXdHb29nbGVTaGVldBIrLmJsdWVhcGkuY292ZXIudjEuUHJldmlld0dvb2dsZVNoZWV0UmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuUHJldmlld0dvb2dsZVNoZWV0UmVzcG9uc2UiM4LT5JMCLToBKiIoL3YxL3VuaXRjb3N0L21ldHJpY3MvZ29vZ2xlc2hlZXQvcHJldmlldxKqAQoVR2V0Q2xvdWR3YXRjaE1ldGFkYXRhEi4uYmx1ZWFwaS5jb3Zlci52MS5HZXRDbG91ZHdhdGNoTWV0YWRhdGFSZXF1ZXN0Gi8uYmx1ZWFwaS5jb3Zlci52MS5HZXRDbG91ZHdhdGNoTWV0YWRhdGFSZXNwb25zZSIwgtPkkwIqEigvdjEvdW5pdGNvc3QvbWV0cmljcy9jbG91ZHdhdGNoL21ldGFkYXRhEoQBCg9WZXJpZnlBUElBY2Nlc3MSKC5ibHVlYXBpLmNvdmVyLnYxLlZlcmlmeUFQSUFjY2Vzc1JlcXVlc3QaKS5ibHVlYXBpLmNvdmVyLnYxLlZlcmlmeUFQSUFjY2Vzc1Jlc3BvbnNlIhyC0+STAhYSFC92MS9hcGlhY2Nlc3MvdmVyaWZ5EokBChFHZXRBSUNvc3RBbmRVc2FnZRIqLmJsdWVhcGkuY292ZXIudjEuR2V0QUlDb3N0QW5kVXNhZ2VSZXF1ZXN0GisuYmx1ZWFwaS5jb3Zlci52MS5HZXRBSUNvc3RBbmRVc2FnZVJlc3BvbnNlIhuC0+STAhU6ASoiEC92MS9haS9jb3N0dXNhZ2USlwEKFUdldENvbnRhaW5lckNvc3RVc2FnZRIrLmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVzcG9uc2UiI4LT5JMCHToBKiIYL3YxL2NvbnRhaW5lcnMvY29zdHVzYWdlEocBChBQb3B1bGF0ZURlbW9EYXRhEikuYmx1ZWFwaS5jb3Zlci52MS5Qb3B1bGF0ZURlbW9EYXRhUmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuUG9wdWxhdGVEZW1vRGF0YVJlc3BvbnNlIhyC0+STAhY6ASoiES92MS9kZW1vL3BvcHVsYXRlEnsKDVJlc2V0RGVtb0RhdGESJi5ibHVlYXBpLmNvdmVyLnYxLlJlc2V0RGVtb0RhdGFSZXF1ZXN0GicuYmx1ZWFwaS5jb3Zlci52MS5SZXNldERlbW9EYXRhUmVzcG9uc2UiGYLT5JMCEzoBKiIOL3YxL2RlbW8vcmVzZXQSmQEKD0dldERpc2NvdW50UGxhbhIoLmJsdWVhcGkuY292ZXIudjEuR2V0RGlzY291bnRQbGFuUmVxdWVzdBopLmJsdWVhcGkuY292ZXIudjEuR2V0RGlzY291bnRQbGFuUmVzcG9uc2UiMYLT5JMCKzoBKiImL3YxL3t2ZW5kb3J9L2Rpc2NvdW50cGxhbi97b3JnSWR9OnJlYWQSfwoOR2V0Q29zdFVzYWdlVjISJy5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RVc2FnZVYyUmVxdWVzdBooLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdFVzYWdlVjJSZXNwb25zZSIYgtPkkwISOgEqIg0vdjEvY29zdHVzYWdlMAESqAEKFUxpc3ROb25wZXJmb3JtaW5nUmF0ZRIuLmJsdWVhcGkuY292ZXIudjEuTGlzdE5vbnBlcmZvcm1pbmdSYXRlUmVxdWVzdBovLmJsdWVhcGkuY292ZXIudjEuTGlzdE5vbnBlcmZvcm1pbmdSYXRlUmVzcG9uc2UiLoLT5JMCKDoBKiIjL3YxL3JlcG9ydHMvcmF0ZS9ub25wZXJmb3JtaW5nOnJlYWQSqAEKFUxpc3RVbnRhZ2dlZFJlc291cmNlcxIuLmJsdWVhcGkuY292ZXIudjEuTGlzdFVudGFnZ2VkUmVzb3VyY2VzUmVxdWVzdBovLmJsdWVhcGkuY292ZXIudjEuTGlzdFVudGFnZ2VkUmVzb3VyY2VzUmVzcG9uc2UiLoLT5JMCKDoBKiIjL3YxL3JlcG9ydHMvcmVzb3VyY2VzL3VudGFnZ2VkOnJlYWQSfwoNTGlzdEZvcmVjYXN0cxImLmJsdWVhcGkuY292ZXIudjEuTGlzdEZvcmVjYXN0c1JlcXVlc3QaJy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RGb3JlY2FzdHNSZXNwb25zZSIdgtPkkwIXOgEqIhIvdjEvZm9yZWNhc3RzOnJlYWQSiQEKEkNyZWF0ZUNvc3RGb3JlY2FzdBIrLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQ29zdEZvcmVjYXN0UmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQ29zdEZvcmVjYXN0UmVzcG9uc2UiGILT5JMCEjoBKiINL3YxL2ZvcmVjYXN0cxKCAQoPR2V0Q29zdEZvcmVjYXN0EiguYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0Rm9yZWNhc3RSZXF1ZXN0GikuYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0Rm9yZWNhc3RSZXNwb25zZSIagtPkkwIUEhIvdjEvZm9yZWNhc3RzL3tpZH0SjgEKElVwZGF0ZUNvc3RGb3JlY2FzdBIrLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEZvcmVjYXN0UmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEZvcmVjYXN0UmVzcG9uc2UiHYLT5JMCFzoBKhoSL3YxL2ZvcmVjYXN0cy97aWR9EosBChJEZWxldGVDb3N0Rm9yZWNhc3QSKy5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUNvc3RGb3JlY2FzdFJlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUNvc3RGb3JlY2FzdFJlc3BvbnNlIhqC0+STAhQqEi92MS9mb3JlY2FzdHMve2lkfRKbAQoUR2V0Q29zdEZvcmVjYXN0c0RhdGESLS5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RGb3JlY2FzdHNEYXRhUmVxdWVzdBouLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEZvcmVjYXN0c0RhdGFSZXNwb25zZSIigtPkkwIcOgEqIhcvdjEvZm9yZWNhc3RzL2RhdGE6cmVhZDABEo8BChNHZXRSZWNvbW1lbmRhdGlvblYzEiwuYmx1ZWFwaS5jb3Zlci52MS5HZXRSZWNvbW1lbmRhdGlvblYzUmVxdWVzdBotLmJsdWVhcGkuY292ZXIudjEuR2V0UmVjb21tZW5kYXRpb25WM1Jlc3BvbnNlIhuC0+STAhUSEy92MS9yZWNvbW1lbmRhdGlvbnMSnAEKFUxpc3RSZWNvbW1lbmRhdGlvbnNWMxIuLmJsdWVhcGkuY292ZXIudjEuTGlzdFJlY29tbWVuZGF0aW9uc1YzUmVxdWVzdBonLmJsdWVhcGkuY292ZXIudjEuUmVjb21tZW5kYXRpb25TdW1tYXJ5IiiC0+STAiI6ASoiHS92MS9yZWNvbW1lbmRhdGlvbnMvc3VtbWFyaWVzMAESpQEKF0V4ZWN1dGVSZWNvbW1lbmRhdGlvblYzEjAuYmx1ZWFwaS5jb3Zlci52MS5FeGVjdXRlUmVjb21tZW5kYXRpb25WM1JlcXVlc3QaMS5ibHVlYXBpLmNvdmVyLnYxLkV4ZWN1dGVSZWNvbW1lbmRhdGlvblYzUmVzcG9uc2UiJYLT5JMCHzoBKiIaL3YxL3JlY29tbWVuZGF0aW9uL2V4ZWN1dGUSdgoLSW52aXRlVXNlcnMSJC5ibHVlYXBpLmNvdmVyLnYxLkludml0ZVVzZXJzUmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuSW52aXRlVXNlcnNSZXNwb25zZSIagtPkkwIUOgEqIg8vdjEvdXNlci9pbnZpdGUSbgoKRGVsZXRlVXNlchIjLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlVXNlclJlcXVlc3QaJC5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZVVzZXJSZXNwb25zZSIVgtPkkwIPKg0vdjEvdXNlci97aWR9EoIBCg5VcGRhdGVVc2VyUm9sZRInLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlclJvbGVSZXF1ZXN0GiguYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyUm9sZVJlc3BvbnNlIh2C0+STAhc6ASoaEi92MS91c2VyL3t1c2VyX2lkfRJnCglMaXN0VXNlcnMSIi5ibHVlYXBpLmNvdmVyLnYxLkxpc3RVc2Vyc1JlcXVlc3QaIy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RVc2Vyc1Jlc3BvbnNlIhGC0+STAgsSCS92MS91c2VycxKAAQoMUmVpbnZpdGVVc2VyEiUuYmx1ZWFwaS5jb3Zlci52MS5SZWludml0ZVVzZXJSZXF1ZXN0GiYuYmx1ZWFwaS5jb3Zlci52MS5SZWludml0ZVVzZXJSZXNwb25zZSIhgtPkkwIbOgEqIhYvdjEvdXNlci97aWR9L3JlaW52aXRlGpcBkkGTARJCKEJFVEEpIENvdmVyIEFQSS4gQmFzZSBVUkw6IGh0dHBzOi8vYXBpLmFscGhhdXMuY2xvdWQvbS9ibHVlL2NvdmVyGk0KElNlcnZpY2UgZGVmaW5pdGlvbhI3aHR0cHM6Ly9naXRodWIuY29tL2FscGhhdXNsYWJzL2JsdWVhcGkvdHJlZS9tYWluL2NvdmVyL0JLChdjbG91ZC5hbHBoYXVzLmFwaS5jb3ZlckIKQ292ZXJQcm90b1okZ2l0aHViLmNvbS9hbHBoYXVzbGFicy9ibHVlYXBpL2NvdmVyYgZwcm90bzM", [file_api_cover_optimizationrecommendation, file_api_cover_recommendation_recommendation, file_api_cover_attribute, file_api_cover_user, file_api_cover_view, file_api_cover_unitcost, file_api_cover_costgroup, file_api_cover_accountaccess, file_api_cover_costforecast, file_api_cover_discountplan, file_api_cover_discountrecommendation, file_api_cover_rightsizingrecommendation, file_api_cover_alert, file_api_cover_budget, file_api_cover_insightreport, file_protos_operation, file_google_api_annotations, file_google_protobuf_empty, file_google_protobuf_struct, file_protoc_gen_openapiv2_options_annotations]);
50
+
51
+ /**
52
+ * @generated from message blueapi.cover.v1.ReinviteUserRequest
53
+ */
54
+ export type ReinviteUserRequest = Message<"blueapi.cover.v1.ReinviteUserRequest"> & {
55
+ /**
56
+ * @generated from field: string id = 1;
57
+ */
58
+ id: string;
59
+ };
60
+
61
+ /**
62
+ * Describes the message blueapi.cover.v1.ReinviteUserRequest.
63
+ * Use `create(ReinviteUserRequestSchema)` to create a new message.
64
+ */
65
+ export const ReinviteUserRequestSchema: GenMessage<ReinviteUserRequest> = /*@__PURE__*/
66
+ messageDesc(file_cover_v1_cover, 0);
67
+
68
+ /**
69
+ * @generated from message blueapi.cover.v1.ReinviteUserResponse
70
+ */
71
+ export type ReinviteUserResponse = Message<"blueapi.cover.v1.ReinviteUserResponse"> & {
72
+ };
73
+
74
+ /**
75
+ * Describes the message blueapi.cover.v1.ReinviteUserResponse.
76
+ * Use `create(ReinviteUserResponseSchema)` to create a new message.
77
+ */
78
+ export const ReinviteUserResponseSchema: GenMessage<ReinviteUserResponse> = /*@__PURE__*/
79
+ messageDesc(file_cover_v1_cover, 1);
80
+
81
+ /**
82
+ * @generated from message blueapi.cover.v1.ListUsersRequest
83
+ */
84
+ export type ListUsersRequest = Message<"blueapi.cover.v1.ListUsersRequest"> & {
85
+ };
86
+
87
+ /**
88
+ * Describes the message blueapi.cover.v1.ListUsersRequest.
89
+ * Use `create(ListUsersRequestSchema)` to create a new message.
90
+ */
91
+ export const ListUsersRequestSchema: GenMessage<ListUsersRequest> = /*@__PURE__*/
92
+ messageDesc(file_cover_v1_cover, 2);
93
+
94
+ /**
95
+ * @generated from message blueapi.cover.v1.ListUsersResponse
96
+ */
97
+ export type ListUsersResponse = Message<"blueapi.cover.v1.ListUsersResponse"> & {
98
+ /**
99
+ * @generated from field: repeated blueapi.cover.v1.ListUsersResponse.UserSummary users = 1;
100
+ */
101
+ users: ListUsersResponse_UserSummary[];
102
+ };
103
+
104
+ /**
105
+ * Describes the message blueapi.cover.v1.ListUsersResponse.
106
+ * Use `create(ListUsersResponseSchema)` to create a new message.
107
+ */
108
+ export const ListUsersResponseSchema: GenMessage<ListUsersResponse> = /*@__PURE__*/
109
+ messageDesc(file_cover_v1_cover, 3);
110
+
111
+ /**
112
+ * @generated from message blueapi.cover.v1.ListUsersResponse.UserSummary
113
+ */
114
+ export type ListUsersResponse_UserSummary = Message<"blueapi.cover.v1.ListUsersResponse.UserSummary"> & {
115
+ /**
116
+ * @generated from field: string id = 1;
117
+ */
118
+ id: string;
119
+
120
+ /**
121
+ * @generated from field: string email = 2;
122
+ */
123
+ email: string;
124
+
125
+ /**
126
+ * @generated from field: string name = 3;
127
+ */
128
+ name: string;
129
+
130
+ /**
131
+ * @generated from field: repeated string roles = 4;
132
+ */
133
+ roles: string[];
134
+
135
+ /**
136
+ * @generated from field: bool activated = 5;
137
+ */
138
+ activated: boolean;
139
+
140
+ /**
141
+ * @generated from field: string avatar = 6;
142
+ */
143
+ avatar: string;
144
+ };
145
+
146
+ /**
147
+ * Describes the message blueapi.cover.v1.ListUsersResponse.UserSummary.
148
+ * Use `create(ListUsersResponse_UserSummarySchema)` to create a new message.
149
+ */
150
+ export const ListUsersResponse_UserSummarySchema: GenMessage<ListUsersResponse_UserSummary> = /*@__PURE__*/
151
+ messageDesc(file_cover_v1_cover, 3, 0);
152
+
153
+ /**
154
+ * @generated from message blueapi.cover.v1.UpdateUserRoleRequest
155
+ */
156
+ export type UpdateUserRoleRequest = Message<"blueapi.cover.v1.UpdateUserRoleRequest"> & {
157
+ /**
158
+ * @generated from field: string user_id = 1;
159
+ */
160
+ userId: string;
161
+
162
+ /**
163
+ * @generated from field: repeated string role_ids = 2;
164
+ */
165
+ roleIds: string[];
166
+
167
+ /**
168
+ * @generated from field: repeated string cost_group_ids = 3;
169
+ */
170
+ costGroupIds: string[];
171
+ };
172
+
173
+ /**
174
+ * Describes the message blueapi.cover.v1.UpdateUserRoleRequest.
175
+ * Use `create(UpdateUserRoleRequestSchema)` to create a new message.
176
+ */
177
+ export const UpdateUserRoleRequestSchema: GenMessage<UpdateUserRoleRequest> = /*@__PURE__*/
178
+ messageDesc(file_cover_v1_cover, 4);
179
+
180
+ /**
181
+ * @generated from message blueapi.cover.v1.UpdateUserRoleResponse
182
+ */
183
+ export type UpdateUserRoleResponse = Message<"blueapi.cover.v1.UpdateUserRoleResponse"> & {
184
+ };
185
+
186
+ /**
187
+ * Describes the message blueapi.cover.v1.UpdateUserRoleResponse.
188
+ * Use `create(UpdateUserRoleResponseSchema)` to create a new message.
189
+ */
190
+ export const UpdateUserRoleResponseSchema: GenMessage<UpdateUserRoleResponse> = /*@__PURE__*/
191
+ messageDesc(file_cover_v1_cover, 5);
192
+
193
+ /**
194
+ * @generated from message blueapi.cover.v1.DeleteUserRequest
195
+ */
196
+ export type DeleteUserRequest = Message<"blueapi.cover.v1.DeleteUserRequest"> & {
197
+ /**
198
+ * @generated from field: string id = 1;
199
+ */
200
+ id: string;
201
+ };
202
+
203
+ /**
204
+ * Describes the message blueapi.cover.v1.DeleteUserRequest.
205
+ * Use `create(DeleteUserRequestSchema)` to create a new message.
206
+ */
207
+ export const DeleteUserRequestSchema: GenMessage<DeleteUserRequest> = /*@__PURE__*/
208
+ messageDesc(file_cover_v1_cover, 6);
209
+
210
+ /**
211
+ * @generated from message blueapi.cover.v1.DeleteUserResponse
212
+ */
213
+ export type DeleteUserResponse = Message<"blueapi.cover.v1.DeleteUserResponse"> & {
214
+ };
215
+
216
+ /**
217
+ * Describes the message blueapi.cover.v1.DeleteUserResponse.
218
+ * Use `create(DeleteUserResponseSchema)` to create a new message.
219
+ */
220
+ export const DeleteUserResponseSchema: GenMessage<DeleteUserResponse> = /*@__PURE__*/
221
+ messageDesc(file_cover_v1_cover, 7);
222
+
223
+ /**
224
+ * @generated from message blueapi.cover.v1.InviteUsersRequest
225
+ */
226
+ export type InviteUsersRequest = Message<"blueapi.cover.v1.InviteUsersRequest"> & {
227
+ /**
228
+ * @generated from field: repeated string emails = 1;
229
+ */
230
+ emails: string[];
231
+
232
+ /**
233
+ * @generated from field: string role_id = 2;
234
+ */
235
+ roleId: string;
236
+
237
+ /**
238
+ * @generated from field: repeated string cost_group_ids = 3;
239
+ */
240
+ costGroupIds: string[];
241
+ };
242
+
243
+ /**
244
+ * Describes the message blueapi.cover.v1.InviteUsersRequest.
245
+ * Use `create(InviteUsersRequestSchema)` to create a new message.
246
+ */
247
+ export const InviteUsersRequestSchema: GenMessage<InviteUsersRequest> = /*@__PURE__*/
248
+ messageDesc(file_cover_v1_cover, 8);
249
+
250
+ /**
251
+ * @generated from message blueapi.cover.v1.InviteUsersResponse
252
+ */
253
+ export type InviteUsersResponse = Message<"blueapi.cover.v1.InviteUsersResponse"> & {
254
+ };
255
+
256
+ /**
257
+ * Describes the message blueapi.cover.v1.InviteUsersResponse.
258
+ * Use `create(InviteUsersResponseSchema)` to create a new message.
259
+ */
260
+ export const InviteUsersResponseSchema: GenMessage<InviteUsersResponse> = /*@__PURE__*/
261
+ messageDesc(file_cover_v1_cover, 9);
50
262
 
51
263
  /**
52
264
  * @generated from message blueapi.cover.v1.ExecuteRecommendationV3Request
@@ -68,7 +280,7 @@ export type ExecuteRecommendationV3Request = Message<"blueapi.cover.v1.ExecuteRe
68
280
  * Use `create(ExecuteRecommendationV3RequestSchema)` to create a new message.
69
281
  */
70
282
  export const ExecuteRecommendationV3RequestSchema: GenMessage<ExecuteRecommendationV3Request> = /*@__PURE__*/
71
- messageDesc(file_cover_v1_cover, 0);
283
+ messageDesc(file_cover_v1_cover, 10);
72
284
 
73
285
  /**
74
286
  * @generated from enum blueapi.cover.v1.ExecuteRecommendationV3Request.ExecuteType
@@ -104,7 +316,7 @@ export enum ExecuteRecommendationV3Request_ExecuteType {
104
316
  * Describes the enum blueapi.cover.v1.ExecuteRecommendationV3Request.ExecuteType.
105
317
  */
106
318
  export const ExecuteRecommendationV3Request_ExecuteTypeSchema: GenEnum<ExecuteRecommendationV3Request_ExecuteType> = /*@__PURE__*/
107
- enumDesc(file_cover_v1_cover, 0, 0);
319
+ enumDesc(file_cover_v1_cover, 10, 0);
108
320
 
109
321
  /**
110
322
  * @generated from message blueapi.cover.v1.ExecuteRecommendationV3Response
@@ -121,7 +333,7 @@ export type ExecuteRecommendationV3Response = Message<"blueapi.cover.v1.ExecuteR
121
333
  * Use `create(ExecuteRecommendationV3ResponseSchema)` to create a new message.
122
334
  */
123
335
  export const ExecuteRecommendationV3ResponseSchema: GenMessage<ExecuteRecommendationV3Response> = /*@__PURE__*/
124
- messageDesc(file_cover_v1_cover, 1);
336
+ messageDesc(file_cover_v1_cover, 11);
125
337
 
126
338
  /**
127
339
  * @generated from message blueapi.cover.v1.ListRecommendationsV3Request
@@ -148,7 +360,7 @@ export type ListRecommendationsV3Request = Message<"blueapi.cover.v1.ListRecomme
148
360
  * Use `create(ListRecommendationsV3RequestSchema)` to create a new message.
149
361
  */
150
362
  export const ListRecommendationsV3RequestSchema: GenMessage<ListRecommendationsV3Request> = /*@__PURE__*/
151
- messageDesc(file_cover_v1_cover, 2);
363
+ messageDesc(file_cover_v1_cover, 12);
152
364
 
153
365
  /**
154
366
  * @generated from message blueapi.cover.v1.RecommendationSummary
@@ -255,7 +467,7 @@ export type RecommendationSummary = Message<"blueapi.cover.v1.RecommendationSumm
255
467
  * Use `create(RecommendationSummarySchema)` to create a new message.
256
468
  */
257
469
  export const RecommendationSummarySchema: GenMessage<RecommendationSummary> = /*@__PURE__*/
258
- messageDesc(file_cover_v1_cover, 3);
470
+ messageDesc(file_cover_v1_cover, 13);
259
471
 
260
472
  /**
261
473
  * @generated from message blueapi.cover.v1.GetRecommendationV3Request
@@ -272,7 +484,7 @@ export type GetRecommendationV3Request = Message<"blueapi.cover.v1.GetRecommenda
272
484
  * Use `create(GetRecommendationV3RequestSchema)` to create a new message.
273
485
  */
274
486
  export const GetRecommendationV3RequestSchema: GenMessage<GetRecommendationV3Request> = /*@__PURE__*/
275
- messageDesc(file_cover_v1_cover, 4);
487
+ messageDesc(file_cover_v1_cover, 14);
276
488
 
277
489
  /**
278
490
  * @generated from message blueapi.cover.v1.GetRecommendationV3Response
@@ -289,7 +501,7 @@ export type GetRecommendationV3Response = Message<"blueapi.cover.v1.GetRecommend
289
501
  * Use `create(GetRecommendationV3ResponseSchema)` to create a new message.
290
502
  */
291
503
  export const GetRecommendationV3ResponseSchema: GenMessage<GetRecommendationV3Response> = /*@__PURE__*/
292
- messageDesc(file_cover_v1_cover, 5);
504
+ messageDesc(file_cover_v1_cover, 15);
293
505
 
294
506
  /**
295
507
  * @generated from message blueapi.cover.v1.GetRecommendationV3Response.RecommendationDetail
@@ -406,7 +618,7 @@ export type GetRecommendationV3Response_RecommendationDetail = Message<"blueapi.
406
618
  * Use `create(GetRecommendationV3Response_RecommendationDetailSchema)` to create a new message.
407
619
  */
408
620
  export const GetRecommendationV3Response_RecommendationDetailSchema: GenMessage<GetRecommendationV3Response_RecommendationDetail> = /*@__PURE__*/
409
- messageDesc(file_cover_v1_cover, 5, 0);
621
+ messageDesc(file_cover_v1_cover, 15, 0);
410
622
 
411
623
  /**
412
624
  * @generated from message blueapi.cover.v1.GetCostForecastsDataRequest
@@ -444,7 +656,7 @@ export type GetCostForecastsDataRequest = Message<"blueapi.cover.v1.GetCostForec
444
656
  * Use `create(GetCostForecastsDataRequestSchema)` to create a new message.
445
657
  */
446
658
  export const GetCostForecastsDataRequestSchema: GenMessage<GetCostForecastsDataRequest> = /*@__PURE__*/
447
- messageDesc(file_cover_v1_cover, 6);
659
+ messageDesc(file_cover_v1_cover, 16);
448
660
 
449
661
  /**
450
662
  * @generated from enum blueapi.cover.v1.GetCostForecastsDataRequest.Granularity
@@ -470,7 +682,7 @@ export enum GetCostForecastsDataRequest_Granularity {
470
682
  * Describes the enum blueapi.cover.v1.GetCostForecastsDataRequest.Granularity.
471
683
  */
472
684
  export const GetCostForecastsDataRequest_GranularitySchema: GenEnum<GetCostForecastsDataRequest_Granularity> = /*@__PURE__*/
473
- enumDesc(file_cover_v1_cover, 6, 0);
685
+ enumDesc(file_cover_v1_cover, 16, 0);
474
686
 
475
687
  /**
476
688
  * @generated from message blueapi.cover.v1.GetCostForecastsDataResponse
@@ -502,7 +714,7 @@ export type GetCostForecastsDataResponse = Message<"blueapi.cover.v1.GetCostFore
502
714
  * Use `create(GetCostForecastsDataResponseSchema)` to create a new message.
503
715
  */
504
716
  export const GetCostForecastsDataResponseSchema: GenMessage<GetCostForecastsDataResponse> = /*@__PURE__*/
505
- messageDesc(file_cover_v1_cover, 7);
717
+ messageDesc(file_cover_v1_cover, 17);
506
718
 
507
719
  /**
508
720
  * @generated from message blueapi.cover.v1.ListForecastsRequest
@@ -515,7 +727,7 @@ export type ListForecastsRequest = Message<"blueapi.cover.v1.ListForecastsReques
515
727
  * Use `create(ListForecastsRequestSchema)` to create a new message.
516
728
  */
517
729
  export const ListForecastsRequestSchema: GenMessage<ListForecastsRequest> = /*@__PURE__*/
518
- messageDesc(file_cover_v1_cover, 8);
730
+ messageDesc(file_cover_v1_cover, 18);
519
731
 
520
732
  /**
521
733
  * @generated from message blueapi.cover.v1.ListForecastsResponse
@@ -532,7 +744,7 @@ export type ListForecastsResponse = Message<"blueapi.cover.v1.ListForecastsRespo
532
744
  * Use `create(ListForecastsResponseSchema)` to create a new message.
533
745
  */
534
746
  export const ListForecastsResponseSchema: GenMessage<ListForecastsResponse> = /*@__PURE__*/
535
- messageDesc(file_cover_v1_cover, 9);
747
+ messageDesc(file_cover_v1_cover, 19);
536
748
 
537
749
  /**
538
750
  * @generated from message blueapi.cover.v1.CreateCostForecastRequest
@@ -586,7 +798,7 @@ export type CreateCostForecastRequest = Message<"blueapi.cover.v1.CreateCostFore
586
798
  * Use `create(CreateCostForecastRequestSchema)` to create a new message.
587
799
  */
588
800
  export const CreateCostForecastRequestSchema: GenMessage<CreateCostForecastRequest> = /*@__PURE__*/
589
- messageDesc(file_cover_v1_cover, 10);
801
+ messageDesc(file_cover_v1_cover, 20);
590
802
 
591
803
  /**
592
804
  * @generated from message blueapi.cover.v1.CreateCostForecastResponse
@@ -633,7 +845,7 @@ export type CreateCostForecastResponse = Message<"blueapi.cover.v1.CreateCostFor
633
845
  * Use `create(CreateCostForecastResponseSchema)` to create a new message.
634
846
  */
635
847
  export const CreateCostForecastResponseSchema: GenMessage<CreateCostForecastResponse> = /*@__PURE__*/
636
- messageDesc(file_cover_v1_cover, 11);
848
+ messageDesc(file_cover_v1_cover, 21);
637
849
 
638
850
  /**
639
851
  * @generated from message blueapi.cover.v1.GetCostForecastRequest
@@ -652,7 +864,7 @@ export type GetCostForecastRequest = Message<"blueapi.cover.v1.GetCostForecastRe
652
864
  * Use `create(GetCostForecastRequestSchema)` to create a new message.
653
865
  */
654
866
  export const GetCostForecastRequestSchema: GenMessage<GetCostForecastRequest> = /*@__PURE__*/
655
- messageDesc(file_cover_v1_cover, 12);
867
+ messageDesc(file_cover_v1_cover, 22);
656
868
 
657
869
  /**
658
870
  * @generated from message blueapi.cover.v1.GetCostForecastResponse
@@ -714,7 +926,7 @@ export type GetCostForecastResponse = Message<"blueapi.cover.v1.GetCostForecastR
714
926
  * Use `create(GetCostForecastResponseSchema)` to create a new message.
715
927
  */
716
928
  export const GetCostForecastResponseSchema: GenMessage<GetCostForecastResponse> = /*@__PURE__*/
717
- messageDesc(file_cover_v1_cover, 13);
929
+ messageDesc(file_cover_v1_cover, 23);
718
930
 
719
931
  /**
720
932
  * @generated from message blueapi.cover.v1.UpdateCostForecastRequest
@@ -775,7 +987,7 @@ export type UpdateCostForecastRequest = Message<"blueapi.cover.v1.UpdateCostFore
775
987
  * Use `create(UpdateCostForecastRequestSchema)` to create a new message.
776
988
  */
777
989
  export const UpdateCostForecastRequestSchema: GenMessage<UpdateCostForecastRequest> = /*@__PURE__*/
778
- messageDesc(file_cover_v1_cover, 14);
990
+ messageDesc(file_cover_v1_cover, 24);
779
991
 
780
992
  /**
781
993
  * @generated from message blueapi.cover.v1.UpdateCostForecastResponse
@@ -837,7 +1049,7 @@ export type UpdateCostForecastResponse = Message<"blueapi.cover.v1.UpdateCostFor
837
1049
  * Use `create(UpdateCostForecastResponseSchema)` to create a new message.
838
1050
  */
839
1051
  export const UpdateCostForecastResponseSchema: GenMessage<UpdateCostForecastResponse> = /*@__PURE__*/
840
- messageDesc(file_cover_v1_cover, 15);
1052
+ messageDesc(file_cover_v1_cover, 25);
841
1053
 
842
1054
  /**
843
1055
  * @generated from message blueapi.cover.v1.DeleteCostForecastRequest
@@ -856,7 +1068,7 @@ export type DeleteCostForecastRequest = Message<"blueapi.cover.v1.DeleteCostFore
856
1068
  * Use `create(DeleteCostForecastRequestSchema)` to create a new message.
857
1069
  */
858
1070
  export const DeleteCostForecastRequestSchema: GenMessage<DeleteCostForecastRequest> = /*@__PURE__*/
859
- messageDesc(file_cover_v1_cover, 16);
1071
+ messageDesc(file_cover_v1_cover, 26);
860
1072
 
861
1073
  /**
862
1074
  * @generated from message blueapi.cover.v1.DeleteCostForecastResponse
@@ -873,7 +1085,7 @@ export type DeleteCostForecastResponse = Message<"blueapi.cover.v1.DeleteCostFor
873
1085
  * Use `create(DeleteCostForecastResponseSchema)` to create a new message.
874
1086
  */
875
1087
  export const DeleteCostForecastResponseSchema: GenMessage<DeleteCostForecastResponse> = /*@__PURE__*/
876
- messageDesc(file_cover_v1_cover, 17);
1088
+ messageDesc(file_cover_v1_cover, 27);
877
1089
 
878
1090
  /**
879
1091
  * @generated from message blueapi.cover.v1.GetCostUsageV2Response
@@ -905,7 +1117,7 @@ export type GetCostUsageV2Response = Message<"blueapi.cover.v1.GetCostUsageV2Res
905
1117
  * Use `create(GetCostUsageV2ResponseSchema)` to create a new message.
906
1118
  */
907
1119
  export const GetCostUsageV2ResponseSchema: GenMessage<GetCostUsageV2Response> = /*@__PURE__*/
908
- messageDesc(file_cover_v1_cover, 18);
1120
+ messageDesc(file_cover_v1_cover, 28);
909
1121
 
910
1122
  /**
911
1123
  * @generated from message blueapi.cover.v1.GetCostUsageV2Request
@@ -967,7 +1179,7 @@ export type GetCostUsageV2Request = Message<"blueapi.cover.v1.GetCostUsageV2Requ
967
1179
  * Use `create(GetCostUsageV2RequestSchema)` to create a new message.
968
1180
  */
969
1181
  export const GetCostUsageV2RequestSchema: GenMessage<GetCostUsageV2Request> = /*@__PURE__*/
970
- messageDesc(file_cover_v1_cover, 19);
1182
+ messageDesc(file_cover_v1_cover, 29);
971
1183
 
972
1184
  /**
973
1185
  * @generated from enum blueapi.cover.v1.GetCostUsageV2Request.Granularity
@@ -993,7 +1205,7 @@ export enum GetCostUsageV2Request_Granularity {
993
1205
  * Describes the enum blueapi.cover.v1.GetCostUsageV2Request.Granularity.
994
1206
  */
995
1207
  export const GetCostUsageV2Request_GranularitySchema: GenEnum<GetCostUsageV2Request_Granularity> = /*@__PURE__*/
996
- enumDesc(file_cover_v1_cover, 19, 0);
1208
+ enumDesc(file_cover_v1_cover, 29, 0);
997
1209
 
998
1210
  /**
999
1211
  * @generated from enum blueapi.cover.v1.GetCostUsageV2Request.Category
@@ -1019,7 +1231,7 @@ export enum GetCostUsageV2Request_Category {
1019
1231
  * Describes the enum blueapi.cover.v1.GetCostUsageV2Request.Category.
1020
1232
  */
1021
1233
  export const GetCostUsageV2Request_CategorySchema: GenEnum<GetCostUsageV2Request_Category> = /*@__PURE__*/
1022
- enumDesc(file_cover_v1_cover, 19, 1);
1234
+ enumDesc(file_cover_v1_cover, 29, 1);
1023
1235
 
1024
1236
  /**
1025
1237
  * @generated from message blueapi.cover.v1.PopulateDemoDataRequest
@@ -1032,7 +1244,7 @@ export type PopulateDemoDataRequest = Message<"blueapi.cover.v1.PopulateDemoData
1032
1244
  * Use `create(PopulateDemoDataRequestSchema)` to create a new message.
1033
1245
  */
1034
1246
  export const PopulateDemoDataRequestSchema: GenMessage<PopulateDemoDataRequest> = /*@__PURE__*/
1035
- messageDesc(file_cover_v1_cover, 20);
1247
+ messageDesc(file_cover_v1_cover, 30);
1036
1248
 
1037
1249
  /**
1038
1250
  * @generated from message blueapi.cover.v1.PopulateDemoDataResponse
@@ -1045,7 +1257,7 @@ export type PopulateDemoDataResponse = Message<"blueapi.cover.v1.PopulateDemoDat
1045
1257
  * Use `create(PopulateDemoDataResponseSchema)` to create a new message.
1046
1258
  */
1047
1259
  export const PopulateDemoDataResponseSchema: GenMessage<PopulateDemoDataResponse> = /*@__PURE__*/
1048
- messageDesc(file_cover_v1_cover, 21);
1260
+ messageDesc(file_cover_v1_cover, 31);
1049
1261
 
1050
1262
  /**
1051
1263
  * @generated from message blueapi.cover.v1.ResetDemoDataRequest
@@ -1058,7 +1270,7 @@ export type ResetDemoDataRequest = Message<"blueapi.cover.v1.ResetDemoDataReques
1058
1270
  * Use `create(ResetDemoDataRequestSchema)` to create a new message.
1059
1271
  */
1060
1272
  export const ResetDemoDataRequestSchema: GenMessage<ResetDemoDataRequest> = /*@__PURE__*/
1061
- messageDesc(file_cover_v1_cover, 22);
1273
+ messageDesc(file_cover_v1_cover, 32);
1062
1274
 
1063
1275
  /**
1064
1276
  * @generated from message blueapi.cover.v1.ResetDemoDataResponse
@@ -1071,7 +1283,7 @@ export type ResetDemoDataResponse = Message<"blueapi.cover.v1.ResetDemoDataRespo
1071
1283
  * Use `create(ResetDemoDataResponseSchema)` to create a new message.
1072
1284
  */
1073
1285
  export const ResetDemoDataResponseSchema: GenMessage<ResetDemoDataResponse> = /*@__PURE__*/
1074
- messageDesc(file_cover_v1_cover, 23);
1286
+ messageDesc(file_cover_v1_cover, 33);
1075
1287
 
1076
1288
  /**
1077
1289
  * @generated from message blueapi.cover.v1.ContainerCostUsageRequest
@@ -1128,7 +1340,7 @@ export type ContainerCostUsageRequest = Message<"blueapi.cover.v1.ContainerCostU
1128
1340
  * Use `create(ContainerCostUsageRequestSchema)` to create a new message.
1129
1341
  */
1130
1342
  export const ContainerCostUsageRequestSchema: GenMessage<ContainerCostUsageRequest> = /*@__PURE__*/
1131
- messageDesc(file_cover_v1_cover, 24);
1343
+ messageDesc(file_cover_v1_cover, 34);
1132
1344
 
1133
1345
  /**
1134
1346
  * @generated from message blueapi.cover.v1.ContainerCostUsageRequest.FilterCriteria
@@ -1155,7 +1367,7 @@ export type ContainerCostUsageRequest_FilterCriteria = Message<"blueapi.cover.v1
1155
1367
  * Use `create(ContainerCostUsageRequest_FilterCriteriaSchema)` to create a new message.
1156
1368
  */
1157
1369
  export const ContainerCostUsageRequest_FilterCriteriaSchema: GenMessage<ContainerCostUsageRequest_FilterCriteria> = /*@__PURE__*/
1158
- messageDesc(file_cover_v1_cover, 24, 0);
1370
+ messageDesc(file_cover_v1_cover, 34, 0);
1159
1371
 
1160
1372
  /**
1161
1373
  * @generated from enum blueapi.cover.v1.ContainerCostUsageRequest.FilterCriteria.FilterOperator
@@ -1181,7 +1393,7 @@ export enum ContainerCostUsageRequest_FilterCriteria_FilterOperator {
1181
1393
  * Describes the enum blueapi.cover.v1.ContainerCostUsageRequest.FilterCriteria.FilterOperator.
1182
1394
  */
1183
1395
  export const ContainerCostUsageRequest_FilterCriteria_FilterOperatorSchema: GenEnum<ContainerCostUsageRequest_FilterCriteria_FilterOperator> = /*@__PURE__*/
1184
- enumDesc(file_cover_v1_cover, 24, 0, 0);
1396
+ enumDesc(file_cover_v1_cover, 34, 0, 0);
1185
1397
 
1186
1398
  /**
1187
1399
  * @generated from enum blueapi.cover.v1.ContainerCostUsageRequest.TimeGranularity
@@ -1207,7 +1419,7 @@ export enum ContainerCostUsageRequest_TimeGranularity {
1207
1419
  * Describes the enum blueapi.cover.v1.ContainerCostUsageRequest.TimeGranularity.
1208
1420
  */
1209
1421
  export const ContainerCostUsageRequest_TimeGranularitySchema: GenEnum<ContainerCostUsageRequest_TimeGranularity> = /*@__PURE__*/
1210
- enumDesc(file_cover_v1_cover, 24, 0);
1422
+ enumDesc(file_cover_v1_cover, 34, 0);
1211
1423
 
1212
1424
  /**
1213
1425
  * @generated from enum blueapi.cover.v1.ContainerCostUsageRequest.MetricType
@@ -1243,7 +1455,7 @@ export enum ContainerCostUsageRequest_MetricType {
1243
1455
  * Describes the enum blueapi.cover.v1.ContainerCostUsageRequest.MetricType.
1244
1456
  */
1245
1457
  export const ContainerCostUsageRequest_MetricTypeSchema: GenEnum<ContainerCostUsageRequest_MetricType> = /*@__PURE__*/
1246
- enumDesc(file_cover_v1_cover, 24, 1);
1458
+ enumDesc(file_cover_v1_cover, 34, 1);
1247
1459
 
1248
1460
  /**
1249
1461
  * @generated from enum blueapi.cover.v1.ContainerCostUsageRequest.ServiceType
@@ -1269,7 +1481,7 @@ export enum ContainerCostUsageRequest_ServiceType {
1269
1481
  * Describes the enum blueapi.cover.v1.ContainerCostUsageRequest.ServiceType.
1270
1482
  */
1271
1483
  export const ContainerCostUsageRequest_ServiceTypeSchema: GenEnum<ContainerCostUsageRequest_ServiceType> = /*@__PURE__*/
1272
- enumDesc(file_cover_v1_cover, 24, 2);
1484
+ enumDesc(file_cover_v1_cover, 34, 2);
1273
1485
 
1274
1486
  /**
1275
1487
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse
@@ -1301,7 +1513,7 @@ export type ContainerCostUsageResponse = Message<"blueapi.cover.v1.ContainerCost
1301
1513
  * Use `create(ContainerCostUsageResponseSchema)` to create a new message.
1302
1514
  */
1303
1515
  export const ContainerCostUsageResponseSchema: GenMessage<ContainerCostUsageResponse> = /*@__PURE__*/
1304
- messageDesc(file_cover_v1_cover, 25);
1516
+ messageDesc(file_cover_v1_cover, 35);
1305
1517
 
1306
1518
  /**
1307
1519
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.CostMetric
@@ -1328,7 +1540,7 @@ export type ContainerCostUsageResponse_CostMetric = Message<"blueapi.cover.v1.Co
1328
1540
  * Use `create(ContainerCostUsageResponse_CostMetricSchema)` to create a new message.
1329
1541
  */
1330
1542
  export const ContainerCostUsageResponse_CostMetricSchema: GenMessage<ContainerCostUsageResponse_CostMetric> = /*@__PURE__*/
1331
- messageDesc(file_cover_v1_cover, 25, 0);
1543
+ messageDesc(file_cover_v1_cover, 35, 0);
1332
1544
 
1333
1545
  /**
1334
1546
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.UsageMetric
@@ -1370,7 +1582,7 @@ export type ContainerCostUsageResponse_UsageMetric = Message<"blueapi.cover.v1.C
1370
1582
  * Use `create(ContainerCostUsageResponse_UsageMetricSchema)` to create a new message.
1371
1583
  */
1372
1584
  export const ContainerCostUsageResponse_UsageMetricSchema: GenMessage<ContainerCostUsageResponse_UsageMetric> = /*@__PURE__*/
1373
- messageDesc(file_cover_v1_cover, 25, 1);
1585
+ messageDesc(file_cover_v1_cover, 35, 1);
1374
1586
 
1375
1587
  /**
1376
1588
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.MetricDataPoint
@@ -1404,7 +1616,7 @@ export type ContainerCostUsageResponse_MetricDataPoint = Message<"blueapi.cover.
1404
1616
  * Use `create(ContainerCostUsageResponse_MetricDataPointSchema)` to create a new message.
1405
1617
  */
1406
1618
  export const ContainerCostUsageResponse_MetricDataPointSchema: GenMessage<ContainerCostUsageResponse_MetricDataPoint> = /*@__PURE__*/
1407
- messageDesc(file_cover_v1_cover, 25, 2);
1619
+ messageDesc(file_cover_v1_cover, 35, 2);
1408
1620
 
1409
1621
  /**
1410
1622
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.ResourceHighlight
@@ -1431,7 +1643,7 @@ export type ContainerCostUsageResponse_ResourceHighlight = Message<"blueapi.cove
1431
1643
  * Use `create(ContainerCostUsageResponse_ResourceHighlightSchema)` to create a new message.
1432
1644
  */
1433
1645
  export const ContainerCostUsageResponse_ResourceHighlightSchema: GenMessage<ContainerCostUsageResponse_ResourceHighlight> = /*@__PURE__*/
1434
- messageDesc(file_cover_v1_cover, 25, 3);
1646
+ messageDesc(file_cover_v1_cover, 35, 3);
1435
1647
 
1436
1648
  /**
1437
1649
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.ResourceHighlights
@@ -1463,7 +1675,7 @@ export type ContainerCostUsageResponse_ResourceHighlights = Message<"blueapi.cov
1463
1675
  * Use `create(ContainerCostUsageResponse_ResourceHighlightsSchema)` to create a new message.
1464
1676
  */
1465
1677
  export const ContainerCostUsageResponse_ResourceHighlightsSchema: GenMessage<ContainerCostUsageResponse_ResourceHighlights> = /*@__PURE__*/
1466
- messageDesc(file_cover_v1_cover, 25, 4);
1678
+ messageDesc(file_cover_v1_cover, 35, 4);
1467
1679
 
1468
1680
  /**
1469
1681
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.GroupedResult
@@ -1485,7 +1697,7 @@ export type ContainerCostUsageResponse_GroupedResult = Message<"blueapi.cover.v1
1485
1697
  * Use `create(ContainerCostUsageResponse_GroupedResultSchema)` to create a new message.
1486
1698
  */
1487
1699
  export const ContainerCostUsageResponse_GroupedResultSchema: GenMessage<ContainerCostUsageResponse_GroupedResult> = /*@__PURE__*/
1488
- messageDesc(file_cover_v1_cover, 25, 5);
1700
+ messageDesc(file_cover_v1_cover, 35, 5);
1489
1701
 
1490
1702
  /**
1491
1703
  * @generated from message blueapi.cover.v1.GetAICostAndUsageRequest
@@ -1532,7 +1744,7 @@ export type GetAICostAndUsageRequest = Message<"blueapi.cover.v1.GetAICostAndUsa
1532
1744
  * Use `create(GetAICostAndUsageRequestSchema)` to create a new message.
1533
1745
  */
1534
1746
  export const GetAICostAndUsageRequestSchema: GenMessage<GetAICostAndUsageRequest> = /*@__PURE__*/
1535
- messageDesc(file_cover_v1_cover, 26);
1747
+ messageDesc(file_cover_v1_cover, 36);
1536
1748
 
1537
1749
  /**
1538
1750
  * @generated from message blueapi.cover.v1.GetAICostAndUsageRequest.Filter
@@ -1567,7 +1779,7 @@ export type GetAICostAndUsageRequest_Filter = Message<"blueapi.cover.v1.GetAICos
1567
1779
  * Use `create(GetAICostAndUsageRequest_FilterSchema)` to create a new message.
1568
1780
  */
1569
1781
  export const GetAICostAndUsageRequest_FilterSchema: GenMessage<GetAICostAndUsageRequest_Filter> = /*@__PURE__*/
1570
- messageDesc(file_cover_v1_cover, 26, 0);
1782
+ messageDesc(file_cover_v1_cover, 36, 0);
1571
1783
 
1572
1784
  /**
1573
1785
  * @generated from enum blueapi.cover.v1.GetAICostAndUsageRequest.Filter.Operator
@@ -1593,7 +1805,7 @@ export enum GetAICostAndUsageRequest_Filter_Operator {
1593
1805
  * Describes the enum blueapi.cover.v1.GetAICostAndUsageRequest.Filter.Operator.
1594
1806
  */
1595
1807
  export const GetAICostAndUsageRequest_Filter_OperatorSchema: GenEnum<GetAICostAndUsageRequest_Filter_Operator> = /*@__PURE__*/
1596
- enumDesc(file_cover_v1_cover, 26, 0, 0);
1808
+ enumDesc(file_cover_v1_cover, 36, 0, 0);
1597
1809
 
1598
1810
  /**
1599
1811
  * @generated from enum blueapi.cover.v1.GetAICostAndUsageRequest.Granularity
@@ -1619,7 +1831,7 @@ export enum GetAICostAndUsageRequest_Granularity {
1619
1831
  * Describes the enum blueapi.cover.v1.GetAICostAndUsageRequest.Granularity.
1620
1832
  */
1621
1833
  export const GetAICostAndUsageRequest_GranularitySchema: GenEnum<GetAICostAndUsageRequest_Granularity> = /*@__PURE__*/
1622
- enumDesc(file_cover_v1_cover, 26, 0);
1834
+ enumDesc(file_cover_v1_cover, 36, 0);
1623
1835
 
1624
1836
  /**
1625
1837
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse
@@ -1636,7 +1848,7 @@ export type GetAICostAndUsageResponse = Message<"blueapi.cover.v1.GetAICostAndUs
1636
1848
  * Use `create(GetAICostAndUsageResponseSchema)` to create a new message.
1637
1849
  */
1638
1850
  export const GetAICostAndUsageResponseSchema: GenMessage<GetAICostAndUsageResponse> = /*@__PURE__*/
1639
- messageDesc(file_cover_v1_cover, 27);
1851
+ messageDesc(file_cover_v1_cover, 37);
1640
1852
 
1641
1853
  /**
1642
1854
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse.Cost
@@ -1658,7 +1870,7 @@ export type GetAICostAndUsageResponse_Cost = Message<"blueapi.cover.v1.GetAICost
1658
1870
  * Use `create(GetAICostAndUsageResponse_CostSchema)` to create a new message.
1659
1871
  */
1660
1872
  export const GetAICostAndUsageResponse_CostSchema: GenMessage<GetAICostAndUsageResponse_Cost> = /*@__PURE__*/
1661
- messageDesc(file_cover_v1_cover, 27, 0);
1873
+ messageDesc(file_cover_v1_cover, 37, 0);
1662
1874
 
1663
1875
  /**
1664
1876
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse.Usage
@@ -1680,7 +1892,7 @@ export type GetAICostAndUsageResponse_Usage = Message<"blueapi.cover.v1.GetAICos
1680
1892
  * Use `create(GetAICostAndUsageResponse_UsageSchema)` to create a new message.
1681
1893
  */
1682
1894
  export const GetAICostAndUsageResponse_UsageSchema: GenMessage<GetAICostAndUsageResponse_Usage> = /*@__PURE__*/
1683
- messageDesc(file_cover_v1_cover, 27, 1);
1895
+ messageDesc(file_cover_v1_cover, 37, 1);
1684
1896
 
1685
1897
  /**
1686
1898
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse.Metric
@@ -1707,7 +1919,7 @@ export type GetAICostAndUsageResponse_Metric = Message<"blueapi.cover.v1.GetAICo
1707
1919
  * Use `create(GetAICostAndUsageResponse_MetricSchema)` to create a new message.
1708
1920
  */
1709
1921
  export const GetAICostAndUsageResponse_MetricSchema: GenMessage<GetAICostAndUsageResponse_Metric> = /*@__PURE__*/
1710
- messageDesc(file_cover_v1_cover, 27, 2);
1922
+ messageDesc(file_cover_v1_cover, 37, 2);
1711
1923
 
1712
1924
  /**
1713
1925
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse.Result
@@ -1729,7 +1941,7 @@ export type GetAICostAndUsageResponse_Result = Message<"blueapi.cover.v1.GetAICo
1729
1941
  * Use `create(GetAICostAndUsageResponse_ResultSchema)` to create a new message.
1730
1942
  */
1731
1943
  export const GetAICostAndUsageResponse_ResultSchema: GenMessage<GetAICostAndUsageResponse_Result> = /*@__PURE__*/
1732
- messageDesc(file_cover_v1_cover, 27, 3);
1944
+ messageDesc(file_cover_v1_cover, 37, 3);
1733
1945
 
1734
1946
  /**
1735
1947
  * @generated from message blueapi.cover.v1.GetExecutionStatusRequest
@@ -1742,7 +1954,7 @@ export type GetExecutionStatusRequest = Message<"blueapi.cover.v1.GetExecutionSt
1742
1954
  * Use `create(GetExecutionStatusRequestSchema)` to create a new message.
1743
1955
  */
1744
1956
  export const GetExecutionStatusRequestSchema: GenMessage<GetExecutionStatusRequest> = /*@__PURE__*/
1745
- messageDesc(file_cover_v1_cover, 28);
1957
+ messageDesc(file_cover_v1_cover, 38);
1746
1958
 
1747
1959
  /**
1748
1960
  * @generated from message blueapi.cover.v1.GetExecutionStatusResponse
@@ -1769,7 +1981,7 @@ export type GetExecutionStatusResponse = Message<"blueapi.cover.v1.GetExecutionS
1769
1981
  * Use `create(GetExecutionStatusResponseSchema)` to create a new message.
1770
1982
  */
1771
1983
  export const GetExecutionStatusResponseSchema: GenMessage<GetExecutionStatusResponse> = /*@__PURE__*/
1772
- messageDesc(file_cover_v1_cover, 29);
1984
+ messageDesc(file_cover_v1_cover, 39);
1773
1985
 
1774
1986
  /**
1775
1987
  * Only supports gcp for now.
@@ -1797,7 +2009,7 @@ export type VerifyAPIAccessRequest = Message<"blueapi.cover.v1.VerifyAPIAccessRe
1797
2009
  * Use `create(VerifyAPIAccessRequestSchema)` to create a new message.
1798
2010
  */
1799
2011
  export const VerifyAPIAccessRequestSchema: GenMessage<VerifyAPIAccessRequest> = /*@__PURE__*/
1800
- messageDesc(file_cover_v1_cover, 30);
2012
+ messageDesc(file_cover_v1_cover, 40);
1801
2013
 
1802
2014
  /**
1803
2015
  * @generated from message blueapi.cover.v1.VerifyAPIAccessResponse
@@ -1814,7 +2026,7 @@ export type VerifyAPIAccessResponse = Message<"blueapi.cover.v1.VerifyAPIAccessR
1814
2026
  * Use `create(VerifyAPIAccessResponseSchema)` to create a new message.
1815
2027
  */
1816
2028
  export const VerifyAPIAccessResponseSchema: GenMessage<VerifyAPIAccessResponse> = /*@__PURE__*/
1817
- messageDesc(file_cover_v1_cover, 31);
2029
+ messageDesc(file_cover_v1_cover, 41);
1818
2030
 
1819
2031
  /**
1820
2032
  * @generated from message blueapi.cover.v1.GetRecommendationV2Request
@@ -1846,7 +2058,7 @@ export type GetRecommendationV2Request = Message<"blueapi.cover.v1.GetRecommenda
1846
2058
  * Use `create(GetRecommendationV2RequestSchema)` to create a new message.
1847
2059
  */
1848
2060
  export const GetRecommendationV2RequestSchema: GenMessage<GetRecommendationV2Request> = /*@__PURE__*/
1849
- messageDesc(file_cover_v1_cover, 32);
2061
+ messageDesc(file_cover_v1_cover, 42);
1850
2062
 
1851
2063
  /**
1852
2064
  * @generated from message blueapi.cover.v1.GetRecommendationV2Response
@@ -1863,7 +2075,7 @@ export type GetRecommendationV2Response = Message<"blueapi.cover.v1.GetRecommend
1863
2075
  * Use `create(GetRecommendationV2ResponseSchema)` to create a new message.
1864
2076
  */
1865
2077
  export const GetRecommendationV2ResponseSchema: GenMessage<GetRecommendationV2Response> = /*@__PURE__*/
1866
- messageDesc(file_cover_v1_cover, 33);
2078
+ messageDesc(file_cover_v1_cover, 43);
1867
2079
 
1868
2080
  /**
1869
2081
  * Request message for OnboardOrg
@@ -1897,7 +2109,7 @@ export type OnboardOrgRequest = Message<"blueapi.cover.v1.OnboardOrgRequest"> &
1897
2109
  * Use `create(OnboardOrgRequestSchema)` to create a new message.
1898
2110
  */
1899
2111
  export const OnboardOrgRequestSchema: GenMessage<OnboardOrgRequest> = /*@__PURE__*/
1900
- messageDesc(file_cover_v1_cover, 34);
2112
+ messageDesc(file_cover_v1_cover, 44);
1901
2113
 
1902
2114
  /**
1903
2115
  * Response message for OnboardOrg
@@ -1916,7 +2128,7 @@ export type OnboardOrgResponse = Message<"blueapi.cover.v1.OnboardOrgResponse">
1916
2128
  * Use `create(OnboardOrgResponseSchema)` to create a new message.
1917
2129
  */
1918
2130
  export const OnboardOrgResponseSchema: GenMessage<OnboardOrgResponse> = /*@__PURE__*/
1919
- messageDesc(file_cover_v1_cover, 35);
2131
+ messageDesc(file_cover_v1_cover, 45);
1920
2132
 
1921
2133
  /**
1922
2134
  * Request message for InviteMember
@@ -1945,7 +2157,7 @@ export type InviteMemberRequest = Message<"blueapi.cover.v1.InviteMemberRequest"
1945
2157
  * Use `create(InviteMemberRequestSchema)` to create a new message.
1946
2158
  */
1947
2159
  export const InviteMemberRequestSchema: GenMessage<InviteMemberRequest> = /*@__PURE__*/
1948
- messageDesc(file_cover_v1_cover, 36);
2160
+ messageDesc(file_cover_v1_cover, 46);
1949
2161
 
1950
2162
  /**
1951
2163
  * Response message for InviteMember
@@ -1964,7 +2176,7 @@ export type InviteMemberResponse = Message<"blueapi.cover.v1.InviteMemberRespons
1964
2176
  * Use `create(InviteMemberResponseSchema)` to create a new message.
1965
2177
  */
1966
2178
  export const InviteMemberResponseSchema: GenMessage<InviteMemberResponse> = /*@__PURE__*/
1967
- messageDesc(file_cover_v1_cover, 37);
2179
+ messageDesc(file_cover_v1_cover, 47);
1968
2180
 
1969
2181
  /**
1970
2182
  * Request message for ActivateUser
@@ -2022,7 +2234,7 @@ export type ActivateUserRequest = Message<"blueapi.cover.v1.ActivateUserRequest"
2022
2234
  * Use `create(ActivateUserRequestSchema)` to create a new message.
2023
2235
  */
2024
2236
  export const ActivateUserRequestSchema: GenMessage<ActivateUserRequest> = /*@__PURE__*/
2025
- messageDesc(file_cover_v1_cover, 38);
2237
+ messageDesc(file_cover_v1_cover, 48);
2026
2238
 
2027
2239
  /**
2028
2240
  * Response message for ActivateUser
@@ -2041,7 +2253,7 @@ export type ActivateUserResponse = Message<"blueapi.cover.v1.ActivateUserRespons
2041
2253
  * Use `create(ActivateUserResponseSchema)` to create a new message.
2042
2254
  */
2043
2255
  export const ActivateUserResponseSchema: GenMessage<ActivateUserResponse> = /*@__PURE__*/
2044
- messageDesc(file_cover_v1_cover, 39);
2256
+ messageDesc(file_cover_v1_cover, 49);
2045
2257
 
2046
2258
  /**
2047
2259
  * Request message for CreateMember
@@ -2075,7 +2287,7 @@ export type CreateMemberRequest = Message<"blueapi.cover.v1.CreateMemberRequest"
2075
2287
  * Use `create(CreateMemberRequestSchema)` to create a new message.
2076
2288
  */
2077
2289
  export const CreateMemberRequestSchema: GenMessage<CreateMemberRequest> = /*@__PURE__*/
2078
- messageDesc(file_cover_v1_cover, 40);
2290
+ messageDesc(file_cover_v1_cover, 50);
2079
2291
 
2080
2292
  /**
2081
2293
  * Response message for CreateMember
@@ -2094,7 +2306,7 @@ export type CreateMemberResponse = Message<"blueapi.cover.v1.CreateMemberRespons
2094
2306
  * Use `create(CreateMemberResponseSchema)` to create a new message.
2095
2307
  */
2096
2308
  export const CreateMemberResponseSchema: GenMessage<CreateMemberResponse> = /*@__PURE__*/
2097
- messageDesc(file_cover_v1_cover, 41);
2309
+ messageDesc(file_cover_v1_cover, 51);
2098
2310
 
2099
2311
  /**
2100
2312
  * Request message for GetMembers
@@ -2109,7 +2321,7 @@ export type GetMembersRequest = Message<"blueapi.cover.v1.GetMembersRequest"> &
2109
2321
  * Use `create(GetMembersRequestSchema)` to create a new message.
2110
2322
  */
2111
2323
  export const GetMembersRequestSchema: GenMessage<GetMembersRequest> = /*@__PURE__*/
2112
- messageDesc(file_cover_v1_cover, 42);
2324
+ messageDesc(file_cover_v1_cover, 52);
2113
2325
 
2114
2326
  /**
2115
2327
  * Response message for GetMembers
@@ -2128,7 +2340,7 @@ export type GetMembersResponse = Message<"blueapi.cover.v1.GetMembersResponse">
2128
2340
  * Use `create(GetMembersResponseSchema)` to create a new message.
2129
2341
  */
2130
2342
  export const GetMembersResponseSchema: GenMessage<GetMembersResponse> = /*@__PURE__*/
2131
- messageDesc(file_cover_v1_cover, 43);
2343
+ messageDesc(file_cover_v1_cover, 53);
2132
2344
 
2133
2345
  /**
2134
2346
  * Request message for GetMemberDetails
@@ -2149,7 +2361,7 @@ export type GetMemberDetailsRequest = Message<"blueapi.cover.v1.GetMemberDetails
2149
2361
  * Use `create(GetMemberDetailsRequestSchema)` to create a new message.
2150
2362
  */
2151
2363
  export const GetMemberDetailsRequestSchema: GenMessage<GetMemberDetailsRequest> = /*@__PURE__*/
2152
- messageDesc(file_cover_v1_cover, 44);
2364
+ messageDesc(file_cover_v1_cover, 54);
2153
2365
 
2154
2366
  /**
2155
2367
  * Response message for GetMemberDetails
@@ -2168,7 +2380,7 @@ export type GetMemberDetailsResponse = Message<"blueapi.cover.v1.GetMemberDetail
2168
2380
  * Use `create(GetMemberDetailsResponseSchema)` to create a new message.
2169
2381
  */
2170
2382
  export const GetMemberDetailsResponseSchema: GenMessage<GetMemberDetailsResponse> = /*@__PURE__*/
2171
- messageDesc(file_cover_v1_cover, 45);
2383
+ messageDesc(file_cover_v1_cover, 55);
2172
2384
 
2173
2385
  /**
2174
2386
  * Request message for GetMemberCostGroup
@@ -2189,7 +2401,7 @@ export type GetMemberCostGroupRequest = Message<"blueapi.cover.v1.GetMemberCostG
2189
2401
  * Use `create(GetMemberCostGroupRequestSchema)` to create a new message.
2190
2402
  */
2191
2403
  export const GetMemberCostGroupRequestSchema: GenMessage<GetMemberCostGroupRequest> = /*@__PURE__*/
2192
- messageDesc(file_cover_v1_cover, 46);
2404
+ messageDesc(file_cover_v1_cover, 56);
2193
2405
 
2194
2406
  /**
2195
2407
  * Response message for GetMemberCostGroup
@@ -2208,7 +2420,7 @@ export type GetMemberCostGroupResponse = Message<"blueapi.cover.v1.GetMemberCost
2208
2420
  * Use `create(GetMemberCostGroupResponseSchema)` to create a new message.
2209
2421
  */
2210
2422
  export const GetMemberCostGroupResponseSchema: GenMessage<GetMemberCostGroupResponse> = /*@__PURE__*/
2211
- messageDesc(file_cover_v1_cover, 47);
2423
+ messageDesc(file_cover_v1_cover, 57);
2212
2424
 
2213
2425
  /**
2214
2426
  * Request message for UpdateMemberPermission
@@ -2236,7 +2448,7 @@ export type UpdateMemberPermissionRequest = Message<"blueapi.cover.v1.UpdateMemb
2236
2448
  * Use `create(UpdateMemberPermissionRequestSchema)` to create a new message.
2237
2449
  */
2238
2450
  export const UpdateMemberPermissionRequestSchema: GenMessage<UpdateMemberPermissionRequest> = /*@__PURE__*/
2239
- messageDesc(file_cover_v1_cover, 48);
2451
+ messageDesc(file_cover_v1_cover, 58);
2240
2452
 
2241
2453
  /**
2242
2454
  * Response message for UpdateMemberPermission
@@ -2255,7 +2467,7 @@ export type UpdateMemberPermissionResponse = Message<"blueapi.cover.v1.UpdateMem
2255
2467
  * Use `create(UpdateMemberPermissionResponseSchema)` to create a new message.
2256
2468
  */
2257
2469
  export const UpdateMemberPermissionResponseSchema: GenMessage<UpdateMemberPermissionResponse> = /*@__PURE__*/
2258
- messageDesc(file_cover_v1_cover, 49);
2470
+ messageDesc(file_cover_v1_cover, 59);
2259
2471
 
2260
2472
  /**
2261
2473
  * Request message for GetUserDetails
@@ -2270,7 +2482,7 @@ export type GetUserDetailsRequest = Message<"blueapi.cover.v1.GetUserDetailsRequ
2270
2482
  * Use `create(GetUserDetailsRequestSchema)` to create a new message.
2271
2483
  */
2272
2484
  export const GetUserDetailsRequestSchema: GenMessage<GetUserDetailsRequest> = /*@__PURE__*/
2273
- messageDesc(file_cover_v1_cover, 50);
2485
+ messageDesc(file_cover_v1_cover, 60);
2274
2486
 
2275
2487
  /**
2276
2488
  * Response message for GetUserDetails
@@ -2289,7 +2501,7 @@ export type GetUserDetailsResponse = Message<"blueapi.cover.v1.GetUserDetailsRes
2289
2501
  * Use `create(GetUserDetailsResponseSchema)` to create a new message.
2290
2502
  */
2291
2503
  export const GetUserDetailsResponseSchema: GenMessage<GetUserDetailsResponse> = /*@__PURE__*/
2292
- messageDesc(file_cover_v1_cover, 51);
2504
+ messageDesc(file_cover_v1_cover, 61);
2293
2505
 
2294
2506
  /**
2295
2507
  * Request message for UpdateUserAvatar
@@ -2308,7 +2520,7 @@ export type UpdateUserAvatarRequest = Message<"blueapi.cover.v1.UpdateUserAvatar
2308
2520
  * Use `create(UpdateUserAvatarRequestSchema)` to create a new message.
2309
2521
  */
2310
2522
  export const UpdateUserAvatarRequestSchema: GenMessage<UpdateUserAvatarRequest> = /*@__PURE__*/
2311
- messageDesc(file_cover_v1_cover, 52);
2523
+ messageDesc(file_cover_v1_cover, 62);
2312
2524
 
2313
2525
  /**
2314
2526
  * Response message for UpdateUserAvatar
@@ -2327,7 +2539,7 @@ export type UpdateUserAvatarResponse = Message<"blueapi.cover.v1.UpdateUserAvata
2327
2539
  * Use `create(UpdateUserAvatarResponseSchema)` to create a new message.
2328
2540
  */
2329
2541
  export const UpdateUserAvatarResponseSchema: GenMessage<UpdateUserAvatarResponse> = /*@__PURE__*/
2330
- messageDesc(file_cover_v1_cover, 53);
2542
+ messageDesc(file_cover_v1_cover, 63);
2331
2543
 
2332
2544
  /**
2333
2545
  * Request message for UpdateUserIcon
@@ -2346,7 +2558,7 @@ export type UpdateUserIconRequest = Message<"blueapi.cover.v1.UpdateUserIconRequ
2346
2558
  * Use `create(UpdateUserIconRequestSchema)` to create a new message.
2347
2559
  */
2348
2560
  export const UpdateUserIconRequestSchema: GenMessage<UpdateUserIconRequest> = /*@__PURE__*/
2349
- messageDesc(file_cover_v1_cover, 54);
2561
+ messageDesc(file_cover_v1_cover, 64);
2350
2562
 
2351
2563
  /**
2352
2564
  * Response message for UpdateUserIcon
@@ -2365,7 +2577,7 @@ export type UpdateUserIconResponse = Message<"blueapi.cover.v1.UpdateUserIconRes
2365
2577
  * Use `create(UpdateUserIconResponseSchema)` to create a new message.
2366
2578
  */
2367
2579
  export const UpdateUserIconResponseSchema: GenMessage<UpdateUserIconResponse> = /*@__PURE__*/
2368
- messageDesc(file_cover_v1_cover, 55);
2580
+ messageDesc(file_cover_v1_cover, 65);
2369
2581
 
2370
2582
  /**
2371
2583
  * Request message for UpdateUserColorTheme
@@ -2384,7 +2596,7 @@ export type UpdateUserColorThemeRequest = Message<"blueapi.cover.v1.UpdateUserCo
2384
2596
  * Use `create(UpdateUserColorThemeRequestSchema)` to create a new message.
2385
2597
  */
2386
2598
  export const UpdateUserColorThemeRequestSchema: GenMessage<UpdateUserColorThemeRequest> = /*@__PURE__*/
2387
- messageDesc(file_cover_v1_cover, 56);
2599
+ messageDesc(file_cover_v1_cover, 66);
2388
2600
 
2389
2601
  /**
2390
2602
  * Response message for UpdateUserColorTheme
@@ -2403,7 +2615,7 @@ export type UpdateUserColorThemeResponse = Message<"blueapi.cover.v1.UpdateUserC
2403
2615
  * Use `create(UpdateUserColorThemeResponseSchema)` to create a new message.
2404
2616
  */
2405
2617
  export const UpdateUserColorThemeResponseSchema: GenMessage<UpdateUserColorThemeResponse> = /*@__PURE__*/
2406
- messageDesc(file_cover_v1_cover, 57);
2618
+ messageDesc(file_cover_v1_cover, 67);
2407
2619
 
2408
2620
  /**
2409
2621
  * Request message for UpdateUserName
@@ -2422,7 +2634,7 @@ export type UpdateUserNameRequest = Message<"blueapi.cover.v1.UpdateUserNameRequ
2422
2634
  * Use `create(UpdateUserNameRequestSchema)` to create a new message.
2423
2635
  */
2424
2636
  export const UpdateUserNameRequestSchema: GenMessage<UpdateUserNameRequest> = /*@__PURE__*/
2425
- messageDesc(file_cover_v1_cover, 58);
2637
+ messageDesc(file_cover_v1_cover, 68);
2426
2638
 
2427
2639
  /**
2428
2640
  * Response message for UpdateUserName
@@ -2441,7 +2653,7 @@ export type UpdateUserNameResponse = Message<"blueapi.cover.v1.UpdateUserNameRes
2441
2653
  * Use `create(UpdateUserNameResponseSchema)` to create a new message.
2442
2654
  */
2443
2655
  export const UpdateUserNameResponseSchema: GenMessage<UpdateUserNameResponse> = /*@__PURE__*/
2444
- messageDesc(file_cover_v1_cover, 59);
2656
+ messageDesc(file_cover_v1_cover, 69);
2445
2657
 
2446
2658
  /**
2447
2659
  * Request message for UpdateUserEmail
@@ -2460,7 +2672,7 @@ export type UpdateUserEmailRequest = Message<"blueapi.cover.v1.UpdateUserEmailRe
2460
2672
  * Use `create(UpdateUserEmailRequestSchema)` to create a new message.
2461
2673
  */
2462
2674
  export const UpdateUserEmailRequestSchema: GenMessage<UpdateUserEmailRequest> = /*@__PURE__*/
2463
- messageDesc(file_cover_v1_cover, 60);
2675
+ messageDesc(file_cover_v1_cover, 70);
2464
2676
 
2465
2677
  /**
2466
2678
  * Response message for UpdateUserEmail
@@ -2479,7 +2691,7 @@ export type UpdateUserEmailResponse = Message<"blueapi.cover.v1.UpdateUserEmailR
2479
2691
  * Use `create(UpdateUserEmailResponseSchema)` to create a new message.
2480
2692
  */
2481
2693
  export const UpdateUserEmailResponseSchema: GenMessage<UpdateUserEmailResponse> = /*@__PURE__*/
2482
- messageDesc(file_cover_v1_cover, 61);
2694
+ messageDesc(file_cover_v1_cover, 71);
2483
2695
 
2484
2696
  /**
2485
2697
  * Request message for UpdateUserMainView
@@ -2498,7 +2710,7 @@ export type UpdateUserMainViewRequest = Message<"blueapi.cover.v1.UpdateUserMain
2498
2710
  * Use `create(UpdateUserMainViewRequestSchema)` to create a new message.
2499
2711
  */
2500
2712
  export const UpdateUserMainViewRequestSchema: GenMessage<UpdateUserMainViewRequest> = /*@__PURE__*/
2501
- messageDesc(file_cover_v1_cover, 62);
2713
+ messageDesc(file_cover_v1_cover, 72);
2502
2714
 
2503
2715
  /**
2504
2716
  * Response message for UpdateUserMainView
@@ -2517,7 +2729,7 @@ export type UpdateUserMainViewResponse = Message<"blueapi.cover.v1.UpdateUserMai
2517
2729
  * Use `create(UpdateUserMainViewResponseSchema)` to create a new message.
2518
2730
  */
2519
2731
  export const UpdateUserMainViewResponseSchema: GenMessage<UpdateUserMainViewResponse> = /*@__PURE__*/
2520
- messageDesc(file_cover_v1_cover, 63);
2732
+ messageDesc(file_cover_v1_cover, 73);
2521
2733
 
2522
2734
  /**
2523
2735
  * Request message for ResetUserPassword
@@ -2541,7 +2753,7 @@ export type ResetUserPasswordRequest = Message<"blueapi.cover.v1.ResetUserPasswo
2541
2753
  * Use `create(ResetUserPasswordRequestSchema)` to create a new message.
2542
2754
  */
2543
2755
  export const ResetUserPasswordRequestSchema: GenMessage<ResetUserPasswordRequest> = /*@__PURE__*/
2544
- messageDesc(file_cover_v1_cover, 64);
2756
+ messageDesc(file_cover_v1_cover, 74);
2545
2757
 
2546
2758
  /**
2547
2759
  * Response message for ResetUserPassword
@@ -2560,7 +2772,7 @@ export type ResetUserPasswordResponse = Message<"blueapi.cover.v1.ResetUserPassw
2560
2772
  * Use `create(ResetUserPasswordResponseSchema)` to create a new message.
2561
2773
  */
2562
2774
  export const ResetUserPasswordResponseSchema: GenMessage<ResetUserPasswordResponse> = /*@__PURE__*/
2563
- messageDesc(file_cover_v1_cover, 65);
2775
+ messageDesc(file_cover_v1_cover, 75);
2564
2776
 
2565
2777
  /**
2566
2778
  * Request message for UpdateUserLocale
@@ -2579,7 +2791,7 @@ export type UpdateUserLocaleRequest = Message<"blueapi.cover.v1.UpdateUserLocale
2579
2791
  * Use `create(UpdateUserLocaleRequestSchema)` to create a new message.
2580
2792
  */
2581
2793
  export const UpdateUserLocaleRequestSchema: GenMessage<UpdateUserLocaleRequest> = /*@__PURE__*/
2582
- messageDesc(file_cover_v1_cover, 66);
2794
+ messageDesc(file_cover_v1_cover, 76);
2583
2795
 
2584
2796
  /**
2585
2797
  * Response message for UpdateUserLocale
@@ -2598,7 +2810,7 @@ export type UpdateUserLocaleResponse = Message<"blueapi.cover.v1.UpdateUserLocal
2598
2810
  * Use `create(UpdateUserLocaleResponseSchema)` to create a new message.
2599
2811
  */
2600
2812
  export const UpdateUserLocaleResponseSchema: GenMessage<UpdateUserLocaleResponse> = /*@__PURE__*/
2601
- messageDesc(file_cover_v1_cover, 67);
2813
+ messageDesc(file_cover_v1_cover, 77);
2602
2814
 
2603
2815
  /**
2604
2816
  * Request message for UpdateUserAppTheme
@@ -2617,7 +2829,7 @@ export type UpdateUserAppThemeRequest = Message<"blueapi.cover.v1.UpdateUserAppT
2617
2829
  * Use `create(UpdateUserAppThemeRequestSchema)` to create a new message.
2618
2830
  */
2619
2831
  export const UpdateUserAppThemeRequestSchema: GenMessage<UpdateUserAppThemeRequest> = /*@__PURE__*/
2620
- messageDesc(file_cover_v1_cover, 68);
2832
+ messageDesc(file_cover_v1_cover, 78);
2621
2833
 
2622
2834
  /**
2623
2835
  * Response message for UpdateUserAppTheme
@@ -2636,7 +2848,7 @@ export type UpdateUserAppThemeResponse = Message<"blueapi.cover.v1.UpdateUserApp
2636
2848
  * Use `create(UpdateUserAppThemeResponseSchema)` to create a new message.
2637
2849
  */
2638
2850
  export const UpdateUserAppThemeResponseSchema: GenMessage<UpdateUserAppThemeResponse> = /*@__PURE__*/
2639
- messageDesc(file_cover_v1_cover, 69);
2851
+ messageDesc(file_cover_v1_cover, 79);
2640
2852
 
2641
2853
  /**
2642
2854
  * Request message for UpdateUserTimezone
@@ -2660,7 +2872,7 @@ export type UpdateUserTimezoneRequest = Message<"blueapi.cover.v1.UpdateUserTime
2660
2872
  * Use `create(UpdateUserTimezoneRequestSchema)` to create a new message.
2661
2873
  */
2662
2874
  export const UpdateUserTimezoneRequestSchema: GenMessage<UpdateUserTimezoneRequest> = /*@__PURE__*/
2663
- messageDesc(file_cover_v1_cover, 70);
2875
+ messageDesc(file_cover_v1_cover, 80);
2664
2876
 
2665
2877
  /**
2666
2878
  * Response message for UpdateUserTimezone
@@ -2679,7 +2891,7 @@ export type UpdateUserTimezoneResponse = Message<"blueapi.cover.v1.UpdateUserTim
2679
2891
  * Use `create(UpdateUserTimezoneResponseSchema)` to create a new message.
2680
2892
  */
2681
2893
  export const UpdateUserTimezoneResponseSchema: GenMessage<UpdateUserTimezoneResponse> = /*@__PURE__*/
2682
- messageDesc(file_cover_v1_cover, 71);
2894
+ messageDesc(file_cover_v1_cover, 81);
2683
2895
 
2684
2896
  /**
2685
2897
  * Request message for UpdateUserAttributes
@@ -2698,7 +2910,7 @@ export type UpdateUserAttributesRequest = Message<"blueapi.cover.v1.UpdateUserAt
2698
2910
  * Use `create(UpdateUserAttributesRequestSchema)` to create a new message.
2699
2911
  */
2700
2912
  export const UpdateUserAttributesRequestSchema: GenMessage<UpdateUserAttributesRequest> = /*@__PURE__*/
2701
- messageDesc(file_cover_v1_cover, 72);
2913
+ messageDesc(file_cover_v1_cover, 82);
2702
2914
 
2703
2915
  /**
2704
2916
  * Response message for UpdateUserAttributes
@@ -2717,7 +2929,7 @@ export type UpdateUserAttributesResponse = Message<"blueapi.cover.v1.UpdateUserA
2717
2929
  * Use `create(UpdateUserAttributesResponseSchema)` to create a new message.
2718
2930
  */
2719
2931
  export const UpdateUserAttributesResponseSchema: GenMessage<UpdateUserAttributesResponse> = /*@__PURE__*/
2720
- messageDesc(file_cover_v1_cover, 73);
2932
+ messageDesc(file_cover_v1_cover, 83);
2721
2933
 
2722
2934
  /**
2723
2935
  * Request message for DeleteMember
@@ -2738,7 +2950,7 @@ export type DeleteMemberRequest = Message<"blueapi.cover.v1.DeleteMemberRequest"
2738
2950
  * Use `create(DeleteMemberRequestSchema)` to create a new message.
2739
2951
  */
2740
2952
  export const DeleteMemberRequestSchema: GenMessage<DeleteMemberRequest> = /*@__PURE__*/
2741
- messageDesc(file_cover_v1_cover, 74);
2953
+ messageDesc(file_cover_v1_cover, 84);
2742
2954
 
2743
2955
  /**
2744
2956
  * Response message for DeleteMember
@@ -2757,7 +2969,7 @@ export type DeleteMemberResponse = Message<"blueapi.cover.v1.DeleteMemberRespons
2757
2969
  * Use `create(DeleteMemberResponseSchema)` to create a new message.
2758
2970
  */
2759
2971
  export const DeleteMemberResponseSchema: GenMessage<DeleteMemberResponse> = /*@__PURE__*/
2760
- messageDesc(file_cover_v1_cover, 75);
2972
+ messageDesc(file_cover_v1_cover, 85);
2761
2973
 
2762
2974
  /**
2763
2975
  * Request message for ResetPassword
@@ -2778,7 +2990,7 @@ export type ResetPasswordRequest = Message<"blueapi.cover.v1.ResetPasswordReques
2778
2990
  * Use `create(ResetPasswordRequestSchema)` to create a new message.
2779
2991
  */
2780
2992
  export const ResetPasswordRequestSchema: GenMessage<ResetPasswordRequest> = /*@__PURE__*/
2781
- messageDesc(file_cover_v1_cover, 76);
2993
+ messageDesc(file_cover_v1_cover, 86);
2782
2994
 
2783
2995
  /**
2784
2996
  * Response message for ResetPassword
@@ -2797,7 +3009,7 @@ export type ResetPasswordResponse = Message<"blueapi.cover.v1.ResetPasswordRespo
2797
3009
  * Use `create(ResetPasswordResponseSchema)` to create a new message.
2798
3010
  */
2799
3011
  export const ResetPasswordResponseSchema: GenMessage<ResetPasswordResponse> = /*@__PURE__*/
2800
- messageDesc(file_cover_v1_cover, 77);
3012
+ messageDesc(file_cover_v1_cover, 87);
2801
3013
 
2802
3014
  /**
2803
3015
  * Request message for CreateView
@@ -2856,7 +3068,7 @@ export type CreateViewRequest = Message<"blueapi.cover.v1.CreateViewRequest"> &
2856
3068
  * Use `create(CreateViewRequestSchema)` to create a new message.
2857
3069
  */
2858
3070
  export const CreateViewRequestSchema: GenMessage<CreateViewRequest> = /*@__PURE__*/
2859
- messageDesc(file_cover_v1_cover, 78);
3071
+ messageDesc(file_cover_v1_cover, 88);
2860
3072
 
2861
3073
  /**
2862
3074
  * Response message for CreateView
@@ -2875,7 +3087,7 @@ export type CreateViewResponse = Message<"blueapi.cover.v1.CreateViewResponse">
2875
3087
  * Use `create(CreateViewResponseSchema)` to create a new message.
2876
3088
  */
2877
3089
  export const CreateViewResponseSchema: GenMessage<CreateViewResponse> = /*@__PURE__*/
2878
- messageDesc(file_cover_v1_cover, 79);
3090
+ messageDesc(file_cover_v1_cover, 89);
2879
3091
 
2880
3092
  /**
2881
3093
  * Request message for GetViews
@@ -2890,7 +3102,7 @@ export type GetViewsRequest = Message<"blueapi.cover.v1.GetViewsRequest"> & {
2890
3102
  * Use `create(GetViewsRequestSchema)` to create a new message.
2891
3103
  */
2892
3104
  export const GetViewsRequestSchema: GenMessage<GetViewsRequest> = /*@__PURE__*/
2893
- messageDesc(file_cover_v1_cover, 80);
3105
+ messageDesc(file_cover_v1_cover, 90);
2894
3106
 
2895
3107
  /**
2896
3108
  * Response message for GetViews
@@ -2909,7 +3121,7 @@ export type GetViewsResponse = Message<"blueapi.cover.v1.GetViewsResponse"> & {
2909
3121
  * Use `create(GetViewsResponseSchema)` to create a new message.
2910
3122
  */
2911
3123
  export const GetViewsResponseSchema: GenMessage<GetViewsResponse> = /*@__PURE__*/
2912
- messageDesc(file_cover_v1_cover, 81);
3124
+ messageDesc(file_cover_v1_cover, 91);
2913
3125
 
2914
3126
  /**
2915
3127
  * Request message for GetCurrentView
@@ -2930,7 +3142,7 @@ export type GetCurrentViewRequest = Message<"blueapi.cover.v1.GetCurrentViewRequ
2930
3142
  * Use `create(GetCurrentViewRequestSchema)` to create a new message.
2931
3143
  */
2932
3144
  export const GetCurrentViewRequestSchema: GenMessage<GetCurrentViewRequest> = /*@__PURE__*/
2933
- messageDesc(file_cover_v1_cover, 82);
3145
+ messageDesc(file_cover_v1_cover, 92);
2934
3146
 
2935
3147
  /**
2936
3148
  * Response message for GetCurrentView
@@ -2949,7 +3161,7 @@ export type GetCurrentViewResponse = Message<"blueapi.cover.v1.GetCurrentViewRes
2949
3161
  * Use `create(GetCurrentViewResponseSchema)` to create a new message.
2950
3162
  */
2951
3163
  export const GetCurrentViewResponseSchema: GenMessage<GetCurrentViewResponse> = /*@__PURE__*/
2952
- messageDesc(file_cover_v1_cover, 83);
3164
+ messageDesc(file_cover_v1_cover, 93);
2953
3165
 
2954
3166
  /**
2955
3167
  * Request message for GetFavoriteViews
@@ -2964,7 +3176,7 @@ export type GetFavoriteViewsRequest = Message<"blueapi.cover.v1.GetFavoriteViews
2964
3176
  * Use `create(GetFavoriteViewsRequestSchema)` to create a new message.
2965
3177
  */
2966
3178
  export const GetFavoriteViewsRequestSchema: GenMessage<GetFavoriteViewsRequest> = /*@__PURE__*/
2967
- messageDesc(file_cover_v1_cover, 84);
3179
+ messageDesc(file_cover_v1_cover, 94);
2968
3180
 
2969
3181
  /**
2970
3182
  * Response message for GetFavoriteViews
@@ -2983,7 +3195,7 @@ export type GetFavoriteViewsResponse = Message<"blueapi.cover.v1.GetFavoriteView
2983
3195
  * Use `create(GetFavoriteViewsResponseSchema)` to create a new message.
2984
3196
  */
2985
3197
  export const GetFavoriteViewsResponseSchema: GenMessage<GetFavoriteViewsResponse> = /*@__PURE__*/
2986
- messageDesc(file_cover_v1_cover, 85);
3198
+ messageDesc(file_cover_v1_cover, 95);
2987
3199
 
2988
3200
  /**
2989
3201
  * Request message for PublishView
@@ -3004,7 +3216,7 @@ export type PublishViewRequest = Message<"blueapi.cover.v1.PublishViewRequest">
3004
3216
  * Use `create(PublishViewRequestSchema)` to create a new message.
3005
3217
  */
3006
3218
  export const PublishViewRequestSchema: GenMessage<PublishViewRequest> = /*@__PURE__*/
3007
- messageDesc(file_cover_v1_cover, 86);
3219
+ messageDesc(file_cover_v1_cover, 96);
3008
3220
 
3009
3221
  /**
3010
3222
  * Response message for PublishView
@@ -3023,7 +3235,7 @@ export type PublishViewResponse = Message<"blueapi.cover.v1.PublishViewResponse"
3023
3235
  * Use `create(PublishViewResponseSchema)` to create a new message.
3024
3236
  */
3025
3237
  export const PublishViewResponseSchema: GenMessage<PublishViewResponse> = /*@__PURE__*/
3026
- messageDesc(file_cover_v1_cover, 87);
3238
+ messageDesc(file_cover_v1_cover, 97);
3027
3239
 
3028
3240
  /**
3029
3241
  * Request message for AddFavorite
@@ -3044,7 +3256,7 @@ export type AddFavoriteRequest = Message<"blueapi.cover.v1.AddFavoriteRequest">
3044
3256
  * Use `create(AddFavoriteRequestSchema)` to create a new message.
3045
3257
  */
3046
3258
  export const AddFavoriteRequestSchema: GenMessage<AddFavoriteRequest> = /*@__PURE__*/
3047
- messageDesc(file_cover_v1_cover, 88);
3259
+ messageDesc(file_cover_v1_cover, 98);
3048
3260
 
3049
3261
  /**
3050
3262
  * Response message for AddFavorite
@@ -3063,7 +3275,7 @@ export type AddFavoriteResponse = Message<"blueapi.cover.v1.AddFavoriteResponse"
3063
3275
  * Use `create(AddFavoriteResponseSchema)` to create a new message.
3064
3276
  */
3065
3277
  export const AddFavoriteResponseSchema: GenMessage<AddFavoriteResponse> = /*@__PURE__*/
3066
- messageDesc(file_cover_v1_cover, 89);
3278
+ messageDesc(file_cover_v1_cover, 99);
3067
3279
 
3068
3280
  /**
3069
3281
  * Request message for RemoveFavorite
@@ -3084,7 +3296,7 @@ export type RemoveFavoriteRequest = Message<"blueapi.cover.v1.RemoveFavoriteRequ
3084
3296
  * Use `create(RemoveFavoriteRequestSchema)` to create a new message.
3085
3297
  */
3086
3298
  export const RemoveFavoriteRequestSchema: GenMessage<RemoveFavoriteRequest> = /*@__PURE__*/
3087
- messageDesc(file_cover_v1_cover, 90);
3299
+ messageDesc(file_cover_v1_cover, 100);
3088
3300
 
3089
3301
  /**
3090
3302
  * Response message for RemoveFavorite
@@ -3103,7 +3315,7 @@ export type RemoveFavoriteResponse = Message<"blueapi.cover.v1.RemoveFavoriteRes
3103
3315
  * Use `create(RemoveFavoriteResponseSchema)` to create a new message.
3104
3316
  */
3105
3317
  export const RemoveFavoriteResponseSchema: GenMessage<RemoveFavoriteResponse> = /*@__PURE__*/
3106
- messageDesc(file_cover_v1_cover, 91);
3318
+ messageDesc(file_cover_v1_cover, 101);
3107
3319
 
3108
3320
  /**
3109
3321
  * Request message for UpdateView
@@ -3154,7 +3366,7 @@ export type UpdateViewRequest = Message<"blueapi.cover.v1.UpdateViewRequest"> &
3154
3366
  * Use `create(UpdateViewRequestSchema)` to create a new message.
3155
3367
  */
3156
3368
  export const UpdateViewRequestSchema: GenMessage<UpdateViewRequest> = /*@__PURE__*/
3157
- messageDesc(file_cover_v1_cover, 92);
3369
+ messageDesc(file_cover_v1_cover, 102);
3158
3370
 
3159
3371
  /**
3160
3372
  * Response message for UpdateView
@@ -3173,7 +3385,7 @@ export type UpdateViewResponse = Message<"blueapi.cover.v1.UpdateViewResponse">
3173
3385
  * Use `create(UpdateViewResponseSchema)` to create a new message.
3174
3386
  */
3175
3387
  export const UpdateViewResponseSchema: GenMessage<UpdateViewResponse> = /*@__PURE__*/
3176
- messageDesc(file_cover_v1_cover, 93);
3388
+ messageDesc(file_cover_v1_cover, 103);
3177
3389
 
3178
3390
  /**
3179
3391
  * Request message for UpdateViewLayout
@@ -3199,7 +3411,7 @@ export type UpdateViewLayoutRequest = Message<"blueapi.cover.v1.UpdateViewLayout
3199
3411
  * Use `create(UpdateViewLayoutRequestSchema)` to create a new message.
3200
3412
  */
3201
3413
  export const UpdateViewLayoutRequestSchema: GenMessage<UpdateViewLayoutRequest> = /*@__PURE__*/
3202
- messageDesc(file_cover_v1_cover, 94);
3414
+ messageDesc(file_cover_v1_cover, 104);
3203
3415
 
3204
3416
  /**
3205
3417
  * Response message for UpdateViewLayout
@@ -3218,7 +3430,7 @@ export type UpdateViewLayoutResponse = Message<"blueapi.cover.v1.UpdateViewLayou
3218
3430
  * Use `create(UpdateViewLayoutResponseSchema)` to create a new message.
3219
3431
  */
3220
3432
  export const UpdateViewLayoutResponseSchema: GenMessage<UpdateViewLayoutResponse> = /*@__PURE__*/
3221
- messageDesc(file_cover_v1_cover, 95);
3433
+ messageDesc(file_cover_v1_cover, 105);
3222
3434
 
3223
3435
  /**
3224
3436
  * Request message for UpdateViewWidget
@@ -3256,7 +3468,7 @@ export type UpdateViewWidgetRequest = Message<"blueapi.cover.v1.UpdateViewWidget
3256
3468
  * Use `create(UpdateViewWidgetRequestSchema)` to create a new message.
3257
3469
  */
3258
3470
  export const UpdateViewWidgetRequestSchema: GenMessage<UpdateViewWidgetRequest> = /*@__PURE__*/
3259
- messageDesc(file_cover_v1_cover, 96);
3471
+ messageDesc(file_cover_v1_cover, 106);
3260
3472
 
3261
3473
  /**
3262
3474
  * Response message for UpdateViewWidget
@@ -3280,7 +3492,7 @@ export type UpdateViewWidgetResponse = Message<"blueapi.cover.v1.UpdateViewWidge
3280
3492
  * Use `create(UpdateViewWidgetResponseSchema)` to create a new message.
3281
3493
  */
3282
3494
  export const UpdateViewWidgetResponseSchema: GenMessage<UpdateViewWidgetResponse> = /*@__PURE__*/
3283
- messageDesc(file_cover_v1_cover, 97);
3495
+ messageDesc(file_cover_v1_cover, 107);
3284
3496
 
3285
3497
  /**
3286
3498
  * Request message for UpdateViewColorTheme
@@ -3304,7 +3516,7 @@ export type UpdateViewColorThemeRequest = Message<"blueapi.cover.v1.UpdateViewCo
3304
3516
  * Use `create(UpdateViewColorThemeRequestSchema)` to create a new message.
3305
3517
  */
3306
3518
  export const UpdateViewColorThemeRequestSchema: GenMessage<UpdateViewColorThemeRequest> = /*@__PURE__*/
3307
- messageDesc(file_cover_v1_cover, 98);
3519
+ messageDesc(file_cover_v1_cover, 108);
3308
3520
 
3309
3521
  /**
3310
3522
  * Response message for UpdateViewColorTheme
@@ -3323,7 +3535,7 @@ export type UpdateViewColorThemeResponse = Message<"blueapi.cover.v1.UpdateViewC
3323
3535
  * Use `create(UpdateViewColorThemeResponseSchema)` to create a new message.
3324
3536
  */
3325
3537
  export const UpdateViewColorThemeResponseSchema: GenMessage<UpdateViewColorThemeResponse> = /*@__PURE__*/
3326
- messageDesc(file_cover_v1_cover, 99);
3538
+ messageDesc(file_cover_v1_cover, 109);
3327
3539
 
3328
3540
  /**
3329
3541
  * Request message for UpdateViewCurrency
@@ -3347,7 +3559,7 @@ export type UpdateViewCurrencyRequest = Message<"blueapi.cover.v1.UpdateViewCurr
3347
3559
  * Use `create(UpdateViewCurrencyRequestSchema)` to create a new message.
3348
3560
  */
3349
3561
  export const UpdateViewCurrencyRequestSchema: GenMessage<UpdateViewCurrencyRequest> = /*@__PURE__*/
3350
- messageDesc(file_cover_v1_cover, 100);
3562
+ messageDesc(file_cover_v1_cover, 110);
3351
3563
 
3352
3564
  /**
3353
3565
  * Response message for UpdateViewCurrency
@@ -3366,7 +3578,7 @@ export type UpdateViewCurrencyResponse = Message<"blueapi.cover.v1.UpdateViewCur
3366
3578
  * Use `create(UpdateViewCurrencyResponseSchema)` to create a new message.
3367
3579
  */
3368
3580
  export const UpdateViewCurrencyResponseSchema: GenMessage<UpdateViewCurrencyResponse> = /*@__PURE__*/
3369
- messageDesc(file_cover_v1_cover, 101);
3581
+ messageDesc(file_cover_v1_cover, 111);
3370
3582
 
3371
3583
  /**
3372
3584
  * @generated from message blueapi.cover.v1.SetOrgUpdateCurrencyRequest
@@ -3385,7 +3597,7 @@ export type SetOrgUpdateCurrencyRequest = Message<"blueapi.cover.v1.SetOrgUpdate
3385
3597
  * Use `create(SetOrgUpdateCurrencyRequestSchema)` to create a new message.
3386
3598
  */
3387
3599
  export const SetOrgUpdateCurrencyRequestSchema: GenMessage<SetOrgUpdateCurrencyRequest> = /*@__PURE__*/
3388
- messageDesc(file_cover_v1_cover, 102);
3600
+ messageDesc(file_cover_v1_cover, 112);
3389
3601
 
3390
3602
  /**
3391
3603
  * @generated from message blueapi.cover.v1.SetOrgUpdateCurrencyResponse
@@ -3402,7 +3614,7 @@ export type SetOrgUpdateCurrencyResponse = Message<"blueapi.cover.v1.SetOrgUpdat
3402
3614
  * Use `create(SetOrgUpdateCurrencyResponseSchema)` to create a new message.
3403
3615
  */
3404
3616
  export const SetOrgUpdateCurrencyResponseSchema: GenMessage<SetOrgUpdateCurrencyResponse> = /*@__PURE__*/
3405
- messageDesc(file_cover_v1_cover, 103);
3617
+ messageDesc(file_cover_v1_cover, 113);
3406
3618
 
3407
3619
  /**
3408
3620
  * @generated from message blueapi.cover.v1.GetOrgUpdateCurrencyRequest
@@ -3415,7 +3627,7 @@ export type GetOrgUpdateCurrencyRequest = Message<"blueapi.cover.v1.GetOrgUpdate
3415
3627
  * Use `create(GetOrgUpdateCurrencyRequestSchema)` to create a new message.
3416
3628
  */
3417
3629
  export const GetOrgUpdateCurrencyRequestSchema: GenMessage<GetOrgUpdateCurrencyRequest> = /*@__PURE__*/
3418
- messageDesc(file_cover_v1_cover, 104);
3630
+ messageDesc(file_cover_v1_cover, 114);
3419
3631
 
3420
3632
  /**
3421
3633
  * @generated from message blueapi.cover.v1.GetOrgUpdateCurrencyResponse
@@ -3442,7 +3654,7 @@ export type GetOrgUpdateCurrencyResponse = Message<"blueapi.cover.v1.GetOrgUpdat
3442
3654
  * Use `create(GetOrgUpdateCurrencyResponseSchema)` to create a new message.
3443
3655
  */
3444
3656
  export const GetOrgUpdateCurrencyResponseSchema: GenMessage<GetOrgUpdateCurrencyResponse> = /*@__PURE__*/
3445
- messageDesc(file_cover_v1_cover, 105);
3657
+ messageDesc(file_cover_v1_cover, 115);
3446
3658
 
3447
3659
  /**
3448
3660
  * Request message for ListExchangeRates
@@ -3470,7 +3682,7 @@ export type ListExchangeRatesRequest = Message<"blueapi.cover.v1.ListExchangeRat
3470
3682
  * Use `create(ListExchangeRatesRequestSchema)` to create a new message.
3471
3683
  */
3472
3684
  export const ListExchangeRatesRequestSchema: GenMessage<ListExchangeRatesRequest> = /*@__PURE__*/
3473
- messageDesc(file_cover_v1_cover, 106);
3685
+ messageDesc(file_cover_v1_cover, 116);
3474
3686
 
3475
3687
  /**
3476
3688
  * Response message for ListExchangeRates
@@ -3494,7 +3706,7 @@ export type ListExchangeRatesResponse = Message<"blueapi.cover.v1.ListExchangeRa
3494
3706
  * Use `create(ListExchangeRatesResponseSchema)` to create a new message.
3495
3707
  */
3496
3708
  export const ListExchangeRatesResponseSchema: GenMessage<ListExchangeRatesResponse> = /*@__PURE__*/
3497
- messageDesc(file_cover_v1_cover, 107);
3709
+ messageDesc(file_cover_v1_cover, 117);
3498
3710
 
3499
3711
  /**
3500
3712
  * @generated from message blueapi.cover.v1.ExchangeRates
@@ -3521,7 +3733,7 @@ export type ExchangeRates = Message<"blueapi.cover.v1.ExchangeRates"> & {
3521
3733
  * Use `create(ExchangeRatesSchema)` to create a new message.
3522
3734
  */
3523
3735
  export const ExchangeRatesSchema: GenMessage<ExchangeRates> = /*@__PURE__*/
3524
- messageDesc(file_cover_v1_cover, 108);
3736
+ messageDesc(file_cover_v1_cover, 118);
3525
3737
 
3526
3738
  /**
3527
3739
  * Request message for DeleteView
@@ -3542,7 +3754,7 @@ export type DeleteViewRequest = Message<"blueapi.cover.v1.DeleteViewRequest"> &
3542
3754
  * Use `create(DeleteViewRequestSchema)` to create a new message.
3543
3755
  */
3544
3756
  export const DeleteViewRequestSchema: GenMessage<DeleteViewRequest> = /*@__PURE__*/
3545
- messageDesc(file_cover_v1_cover, 109);
3757
+ messageDesc(file_cover_v1_cover, 119);
3546
3758
 
3547
3759
  /**
3548
3760
  * Response message for DeleteView
@@ -3561,7 +3773,7 @@ export type DeleteViewResponse = Message<"blueapi.cover.v1.DeleteViewResponse">
3561
3773
  * Use `create(DeleteViewResponseSchema)` to create a new message.
3562
3774
  */
3563
3775
  export const DeleteViewResponseSchema: GenMessage<DeleteViewResponse> = /*@__PURE__*/
3564
- messageDesc(file_cover_v1_cover, 110);
3776
+ messageDesc(file_cover_v1_cover, 120);
3565
3777
 
3566
3778
  /**
3567
3779
  * Request message for UpdateSideMenuState
@@ -3587,7 +3799,7 @@ export type UpdateSideMenuStateRequest = Message<"blueapi.cover.v1.UpdateSideMen
3587
3799
  * Use `create(UpdateSideMenuStateRequestSchema)` to create a new message.
3588
3800
  */
3589
3801
  export const UpdateSideMenuStateRequestSchema: GenMessage<UpdateSideMenuStateRequest> = /*@__PURE__*/
3590
- messageDesc(file_cover_v1_cover, 111);
3802
+ messageDesc(file_cover_v1_cover, 121);
3591
3803
 
3592
3804
  /**
3593
3805
  * Response message for UpdateSideMenuState
@@ -3606,7 +3818,7 @@ export type UpdateSideMenuStateResponse = Message<"blueapi.cover.v1.UpdateSideMe
3606
3818
  * Use `create(UpdateSideMenuStateResponseSchema)` to create a new message.
3607
3819
  */
3608
3820
  export const UpdateSideMenuStateResponseSchema: GenMessage<UpdateSideMenuStateResponse> = /*@__PURE__*/
3609
- messageDesc(file_cover_v1_cover, 112);
3821
+ messageDesc(file_cover_v1_cover, 122);
3610
3822
 
3611
3823
  /**
3612
3824
  * Request message for AddSideMenuFavorite
@@ -3632,7 +3844,7 @@ export type AddSideMenuFavoriteRequest = Message<"blueapi.cover.v1.AddSideMenuFa
3632
3844
  * Use `create(AddSideMenuFavoriteRequestSchema)` to create a new message.
3633
3845
  */
3634
3846
  export const AddSideMenuFavoriteRequestSchema: GenMessage<AddSideMenuFavoriteRequest> = /*@__PURE__*/
3635
- messageDesc(file_cover_v1_cover, 113);
3847
+ messageDesc(file_cover_v1_cover, 123);
3636
3848
 
3637
3849
  /**
3638
3850
  * Response message for AddSideMenuFavorite
@@ -3651,7 +3863,7 @@ export type AddSideMenuFavoriteResponse = Message<"blueapi.cover.v1.AddSideMenuF
3651
3863
  * Use `create(AddSideMenuFavoriteResponseSchema)` to create a new message.
3652
3864
  */
3653
3865
  export const AddSideMenuFavoriteResponseSchema: GenMessage<AddSideMenuFavoriteResponse> = /*@__PURE__*/
3654
- messageDesc(file_cover_v1_cover, 114);
3866
+ messageDesc(file_cover_v1_cover, 124);
3655
3867
 
3656
3868
  /**
3657
3869
  * Request message for RemoveSideMenuFavorite
@@ -3677,7 +3889,7 @@ export type RemoveSideMenuFavoriteRequest = Message<"blueapi.cover.v1.RemoveSide
3677
3889
  * Use `create(RemoveSideMenuFavoriteRequestSchema)` to create a new message.
3678
3890
  */
3679
3891
  export const RemoveSideMenuFavoriteRequestSchema: GenMessage<RemoveSideMenuFavoriteRequest> = /*@__PURE__*/
3680
- messageDesc(file_cover_v1_cover, 115);
3892
+ messageDesc(file_cover_v1_cover, 125);
3681
3893
 
3682
3894
  /**
3683
3895
  * Response message for RemoveSideMenuFavorite
@@ -3696,7 +3908,7 @@ export type RemoveSideMenuFavoriteResponse = Message<"blueapi.cover.v1.RemoveSid
3696
3908
  * Use `create(RemoveSideMenuFavoriteResponseSchema)` to create a new message.
3697
3909
  */
3698
3910
  export const RemoveSideMenuFavoriteResponseSchema: GenMessage<RemoveSideMenuFavoriteResponse> = /*@__PURE__*/
3699
- messageDesc(file_cover_v1_cover, 116);
3911
+ messageDesc(file_cover_v1_cover, 126);
3700
3912
 
3701
3913
  /**
3702
3914
  * Request message for CreateCostGroup
@@ -3745,7 +3957,7 @@ export type CreateCostGroupRequest = Message<"blueapi.cover.v1.CreateCostGroupRe
3745
3957
  * Use `create(CreateCostGroupRequestSchema)` to create a new message.
3746
3958
  */
3747
3959
  export const CreateCostGroupRequestSchema: GenMessage<CreateCostGroupRequest> = /*@__PURE__*/
3748
- messageDesc(file_cover_v1_cover, 117);
3960
+ messageDesc(file_cover_v1_cover, 127);
3749
3961
 
3750
3962
  /**
3751
3963
  * Response message for CreateCostGroup
@@ -3764,7 +3976,7 @@ export type CreateCostGroupResponse = Message<"blueapi.cover.v1.CreateCostGroupR
3764
3976
  * Use `create(CreateCostGroupResponseSchema)` to create a new message.
3765
3977
  */
3766
3978
  export const CreateCostGroupResponseSchema: GenMessage<CreateCostGroupResponse> = /*@__PURE__*/
3767
- messageDesc(file_cover_v1_cover, 118);
3979
+ messageDesc(file_cover_v1_cover, 128);
3768
3980
 
3769
3981
  /**
3770
3982
  * Request message for GetCostGroups
@@ -3779,7 +3991,7 @@ export type GetCostGroupsRequest = Message<"blueapi.cover.v1.GetCostGroupsReques
3779
3991
  * Use `create(GetCostGroupsRequestSchema)` to create a new message.
3780
3992
  */
3781
3993
  export const GetCostGroupsRequestSchema: GenMessage<GetCostGroupsRequest> = /*@__PURE__*/
3782
- messageDesc(file_cover_v1_cover, 119);
3994
+ messageDesc(file_cover_v1_cover, 129);
3783
3995
 
3784
3996
  /**
3785
3997
  * Response message for GetCostGroups
@@ -3798,7 +4010,7 @@ export type GetCostGroupsResponse = Message<"blueapi.cover.v1.GetCostGroupsRespo
3798
4010
  * Use `create(GetCostGroupsResponseSchema)` to create a new message.
3799
4011
  */
3800
4012
  export const GetCostGroupsResponseSchema: GenMessage<GetCostGroupsResponse> = /*@__PURE__*/
3801
- messageDesc(file_cover_v1_cover, 120);
4013
+ messageDesc(file_cover_v1_cover, 130);
3802
4014
 
3803
4015
  /**
3804
4016
  * Request message for GetCostGroupDetails
@@ -3819,7 +4031,7 @@ export type GetCostGroupDetailsRequest = Message<"blueapi.cover.v1.GetCostGroupD
3819
4031
  * Use `create(GetCostGroupDetailsRequestSchema)` to create a new message.
3820
4032
  */
3821
4033
  export const GetCostGroupDetailsRequestSchema: GenMessage<GetCostGroupDetailsRequest> = /*@__PURE__*/
3822
- messageDesc(file_cover_v1_cover, 121);
4034
+ messageDesc(file_cover_v1_cover, 131);
3823
4035
 
3824
4036
  /**
3825
4037
  * Response message for GetCostGroupDetails
@@ -3838,7 +4050,7 @@ export type GetCostGroupDetailsResponse = Message<"blueapi.cover.v1.GetCostGroup
3838
4050
  * Use `create(GetCostGroupDetailsResponseSchema)` to create a new message.
3839
4051
  */
3840
4052
  export const GetCostGroupDetailsResponseSchema: GenMessage<GetCostGroupDetailsResponse> = /*@__PURE__*/
3841
- messageDesc(file_cover_v1_cover, 122);
4053
+ messageDesc(file_cover_v1_cover, 132);
3842
4054
 
3843
4055
  /**
3844
4056
  * Request message for UpdateCostGroupName
@@ -3866,7 +4078,7 @@ export type UpdateCostGroupNameRequest = Message<"blueapi.cover.v1.UpdateCostGro
3866
4078
  * Use `create(UpdateCostGroupNameRequestSchema)` to create a new message.
3867
4079
  */
3868
4080
  export const UpdateCostGroupNameRequestSchema: GenMessage<UpdateCostGroupNameRequest> = /*@__PURE__*/
3869
- messageDesc(file_cover_v1_cover, 123);
4081
+ messageDesc(file_cover_v1_cover, 133);
3870
4082
 
3871
4083
  /**
3872
4084
  * Response message for UpdateCostGroupName
@@ -3885,7 +4097,7 @@ export type UpdateCostGroupNameResponse = Message<"blueapi.cover.v1.UpdateCostGr
3885
4097
  * Use `create(UpdateCostGroupNameResponseSchema)` to create a new message.
3886
4098
  */
3887
4099
  export const UpdateCostGroupNameResponseSchema: GenMessage<UpdateCostGroupNameResponse> = /*@__PURE__*/
3888
- messageDesc(file_cover_v1_cover, 124);
4100
+ messageDesc(file_cover_v1_cover, 134);
3889
4101
 
3890
4102
  /**
3891
4103
  * Request message for UpdateCostGroupDescription
@@ -3913,7 +4125,7 @@ export type UpdateCostGroupDescriptionRequest = Message<"blueapi.cover.v1.Update
3913
4125
  * Use `create(UpdateCostGroupDescriptionRequestSchema)` to create a new message.
3914
4126
  */
3915
4127
  export const UpdateCostGroupDescriptionRequestSchema: GenMessage<UpdateCostGroupDescriptionRequest> = /*@__PURE__*/
3916
- messageDesc(file_cover_v1_cover, 125);
4128
+ messageDesc(file_cover_v1_cover, 135);
3917
4129
 
3918
4130
  /**
3919
4131
  * Response message for UpdateCostGroupDescription
@@ -3932,7 +4144,7 @@ export type UpdateCostGroupDescriptionResponse = Message<"blueapi.cover.v1.Updat
3932
4144
  * Use `create(UpdateCostGroupDescriptionResponseSchema)` to create a new message.
3933
4145
  */
3934
4146
  export const UpdateCostGroupDescriptionResponseSchema: GenMessage<UpdateCostGroupDescriptionResponse> = /*@__PURE__*/
3935
- messageDesc(file_cover_v1_cover, 126);
4147
+ messageDesc(file_cover_v1_cover, 136);
3936
4148
 
3937
4149
  /**
3938
4150
  * Request message for UpdateCostGroupImage
@@ -3960,7 +4172,7 @@ export type UpdateCostGroupImageRequest = Message<"blueapi.cover.v1.UpdateCostGr
3960
4172
  * Use `create(UpdateCostGroupImageRequestSchema)` to create a new message.
3961
4173
  */
3962
4174
  export const UpdateCostGroupImageRequestSchema: GenMessage<UpdateCostGroupImageRequest> = /*@__PURE__*/
3963
- messageDesc(file_cover_v1_cover, 127);
4175
+ messageDesc(file_cover_v1_cover, 137);
3964
4176
 
3965
4177
  /**
3966
4178
  * Response message for UpdateCostGroupImage
@@ -3979,7 +4191,7 @@ export type UpdateCostGroupImageResponse = Message<"blueapi.cover.v1.UpdateCostG
3979
4191
  * Use `create(UpdateCostGroupImageResponseSchema)` to create a new message.
3980
4192
  */
3981
4193
  export const UpdateCostGroupImageResponseSchema: GenMessage<UpdateCostGroupImageResponse> = /*@__PURE__*/
3982
- messageDesc(file_cover_v1_cover, 128);
4194
+ messageDesc(file_cover_v1_cover, 138);
3983
4195
 
3984
4196
  /**
3985
4197
  * Request message for UpdateCostGroupIcon
@@ -4007,7 +4219,7 @@ export type UpdateCostGroupIconRequest = Message<"blueapi.cover.v1.UpdateCostGro
4007
4219
  * Use `create(UpdateCostGroupIconRequestSchema)` to create a new message.
4008
4220
  */
4009
4221
  export const UpdateCostGroupIconRequestSchema: GenMessage<UpdateCostGroupIconRequest> = /*@__PURE__*/
4010
- messageDesc(file_cover_v1_cover, 129);
4222
+ messageDesc(file_cover_v1_cover, 139);
4011
4223
 
4012
4224
  /**
4013
4225
  * Response message for UpdateCostGroupIcon
@@ -4026,7 +4238,7 @@ export type UpdateCostGroupIconResponse = Message<"blueapi.cover.v1.UpdateCostGr
4026
4238
  * Use `create(UpdateCostGroupIconResponseSchema)` to create a new message.
4027
4239
  */
4028
4240
  export const UpdateCostGroupIconResponseSchema: GenMessage<UpdateCostGroupIconResponse> = /*@__PURE__*/
4029
- messageDesc(file_cover_v1_cover, 130);
4241
+ messageDesc(file_cover_v1_cover, 140);
4030
4242
 
4031
4243
  /**
4032
4244
  * Request message for UpdateCostGroupColorTheme
@@ -4054,7 +4266,7 @@ export type UpdateCostGroupColorThemeRequest = Message<"blueapi.cover.v1.UpdateC
4054
4266
  * Use `create(UpdateCostGroupColorThemeRequestSchema)` to create a new message.
4055
4267
  */
4056
4268
  export const UpdateCostGroupColorThemeRequestSchema: GenMessage<UpdateCostGroupColorThemeRequest> = /*@__PURE__*/
4057
- messageDesc(file_cover_v1_cover, 131);
4269
+ messageDesc(file_cover_v1_cover, 141);
4058
4270
 
4059
4271
  /**
4060
4272
  * Response message for UpdateCostGroupColorTheme
@@ -4073,7 +4285,7 @@ export type UpdateCostGroupColorThemeResponse = Message<"blueapi.cover.v1.Update
4073
4285
  * Use `create(UpdateCostGroupColorThemeResponseSchema)` to create a new message.
4074
4286
  */
4075
4287
  export const UpdateCostGroupColorThemeResponseSchema: GenMessage<UpdateCostGroupColorThemeResponse> = /*@__PURE__*/
4076
- messageDesc(file_cover_v1_cover, 132);
4288
+ messageDesc(file_cover_v1_cover, 142);
4077
4289
 
4078
4290
  /**
4079
4291
  * Request message for UpdateCostGroupCombinations
@@ -4099,7 +4311,7 @@ export type UpdateCostGroupCombinationsRequest = Message<"blueapi.cover.v1.Updat
4099
4311
  * Use `create(UpdateCostGroupCombinationsRequestSchema)` to create a new message.
4100
4312
  */
4101
4313
  export const UpdateCostGroupCombinationsRequestSchema: GenMessage<UpdateCostGroupCombinationsRequest> = /*@__PURE__*/
4102
- messageDesc(file_cover_v1_cover, 133);
4314
+ messageDesc(file_cover_v1_cover, 143);
4103
4315
 
4104
4316
  /**
4105
4317
  * Response message for UpdateCostGroupCombinations
@@ -4118,7 +4330,7 @@ export type UpdateCostGroupCombinationsResponse = Message<"blueapi.cover.v1.Upda
4118
4330
  * Use `create(UpdateCostGroupCombinationsResponseSchema)` to create a new message.
4119
4331
  */
4120
4332
  export const UpdateCostGroupCombinationsResponseSchema: GenMessage<UpdateCostGroupCombinationsResponse> = /*@__PURE__*/
4121
- messageDesc(file_cover_v1_cover, 134);
4333
+ messageDesc(file_cover_v1_cover, 144);
4122
4334
 
4123
4335
  /**
4124
4336
  * Request message for AssignCostGroupMember
@@ -4146,7 +4358,7 @@ export type AssignCostGroupMemberRequest = Message<"blueapi.cover.v1.AssignCostG
4146
4358
  * Use `create(AssignCostGroupMemberRequestSchema)` to create a new message.
4147
4359
  */
4148
4360
  export const AssignCostGroupMemberRequestSchema: GenMessage<AssignCostGroupMemberRequest> = /*@__PURE__*/
4149
- messageDesc(file_cover_v1_cover, 135);
4361
+ messageDesc(file_cover_v1_cover, 145);
4150
4362
 
4151
4363
  /**
4152
4364
  * Response message for AssignCostGroupMember
@@ -4170,7 +4382,7 @@ export type AssignCostGroupMemberResponse = Message<"blueapi.cover.v1.AssignCost
4170
4382
  * Use `create(AssignCostGroupMemberResponseSchema)` to create a new message.
4171
4383
  */
4172
4384
  export const AssignCostGroupMemberResponseSchema: GenMessage<AssignCostGroupMemberResponse> = /*@__PURE__*/
4173
- messageDesc(file_cover_v1_cover, 136);
4385
+ messageDesc(file_cover_v1_cover, 146);
4174
4386
 
4175
4387
  /**
4176
4388
  * Request message for RemoveCostGroupMember
@@ -4198,7 +4410,7 @@ export type RemoveCostGroupMemberRequest = Message<"blueapi.cover.v1.RemoveCostG
4198
4410
  * Use `create(RemoveCostGroupMemberRequestSchema)` to create a new message.
4199
4411
  */
4200
4412
  export const RemoveCostGroupMemberRequestSchema: GenMessage<RemoveCostGroupMemberRequest> = /*@__PURE__*/
4201
- messageDesc(file_cover_v1_cover, 137);
4413
+ messageDesc(file_cover_v1_cover, 147);
4202
4414
 
4203
4415
  /**
4204
4416
  * Response message for RemoveCostGroupMember
@@ -4222,7 +4434,7 @@ export type RemoveCostGroupMemberResponse = Message<"blueapi.cover.v1.RemoveCost
4222
4434
  * Use `create(RemoveCostGroupMemberResponseSchema)` to create a new message.
4223
4435
  */
4224
4436
  export const RemoveCostGroupMemberResponseSchema: GenMessage<RemoveCostGroupMemberResponse> = /*@__PURE__*/
4225
- messageDesc(file_cover_v1_cover, 138);
4437
+ messageDesc(file_cover_v1_cover, 148);
4226
4438
 
4227
4439
  /**
4228
4440
  * Request message for DeleteCostGroup
@@ -4243,7 +4455,7 @@ export type DeleteCostGroupRequest = Message<"blueapi.cover.v1.DeleteCostGroupRe
4243
4455
  * Use `create(DeleteCostGroupRequestSchema)` to create a new message.
4244
4456
  */
4245
4457
  export const DeleteCostGroupRequestSchema: GenMessage<DeleteCostGroupRequest> = /*@__PURE__*/
4246
- messageDesc(file_cover_v1_cover, 139);
4458
+ messageDesc(file_cover_v1_cover, 149);
4247
4459
 
4248
4460
  /**
4249
4461
  * Response message for DeleteCostGroup
@@ -4262,7 +4474,7 @@ export type DeleteCostGroupResponse = Message<"blueapi.cover.v1.DeleteCostGroupR
4262
4474
  * Use `create(DeleteCostGroupResponseSchema)` to create a new message.
4263
4475
  */
4264
4476
  export const DeleteCostGroupResponseSchema: GenMessage<DeleteCostGroupResponse> = /*@__PURE__*/
4265
- messageDesc(file_cover_v1_cover, 140);
4477
+ messageDesc(file_cover_v1_cover, 150);
4266
4478
 
4267
4479
  /**
4268
4480
  * Request message for the GetAccountAccessTemplateUrlRequest rpc.
@@ -4283,7 +4495,7 @@ export type GetAccountAccessTemplateUrlRequest = Message<"blueapi.cover.v1.GetAc
4283
4495
  * Use `create(GetAccountAccessTemplateUrlRequestSchema)` to create a new message.
4284
4496
  */
4285
4497
  export const GetAccountAccessTemplateUrlRequestSchema: GenMessage<GetAccountAccessTemplateUrlRequest> = /*@__PURE__*/
4286
- messageDesc(file_cover_v1_cover, 141);
4498
+ messageDesc(file_cover_v1_cover, 151);
4287
4499
 
4288
4500
  /**
4289
4501
  * Response message for the GetAccountAccessTemplateUrlResponse rpc.
@@ -4332,7 +4544,7 @@ export type GetAccountAccessTemplateUrlResponse = Message<"blueapi.cover.v1.GetA
4332
4544
  * Use `create(GetAccountAccessTemplateUrlResponseSchema)` to create a new message.
4333
4545
  */
4334
4546
  export const GetAccountAccessTemplateUrlResponseSchema: GenMessage<GetAccountAccessTemplateUrlResponse> = /*@__PURE__*/
4335
- messageDesc(file_cover_v1_cover, 142);
4547
+ messageDesc(file_cover_v1_cover, 152);
4336
4548
 
4337
4549
  /**
4338
4550
  * Request message for the ListAccountAccess rpc.
@@ -4347,7 +4559,7 @@ export type ListAccountAccessRequest = Message<"blueapi.cover.v1.ListAccountAcce
4347
4559
  * Use `create(ListAccountAccessRequestSchema)` to create a new message.
4348
4560
  */
4349
4561
  export const ListAccountAccessRequestSchema: GenMessage<ListAccountAccessRequest> = /*@__PURE__*/
4350
- messageDesc(file_cover_v1_cover, 143);
4562
+ messageDesc(file_cover_v1_cover, 153);
4351
4563
 
4352
4564
  /**
4353
4565
  * Request message for the GetAccountAccess rpc.
@@ -4368,7 +4580,7 @@ export type GetAccountAccessRequest = Message<"blueapi.cover.v1.GetAccountAccess
4368
4580
  * Use `create(GetAccountAccessRequestSchema)` to create a new message.
4369
4581
  */
4370
4582
  export const GetAccountAccessRequestSchema: GenMessage<GetAccountAccessRequest> = /*@__PURE__*/
4371
- messageDesc(file_cover_v1_cover, 144);
4583
+ messageDesc(file_cover_v1_cover, 154);
4372
4584
 
4373
4585
  /**
4374
4586
  * Response message for GetAccountAccess, CreateAccountAccess rpc.
@@ -4487,7 +4699,7 @@ export type AccountAccess = Message<"blueapi.cover.v1.AccountAccess"> & {
4487
4699
  * Use `create(AccountAccessSchema)` to create a new message.
4488
4700
  */
4489
4701
  export const AccountAccessSchema: GenMessage<AccountAccess> = /*@__PURE__*/
4490
- messageDesc(file_cover_v1_cover, 145);
4702
+ messageDesc(file_cover_v1_cover, 155);
4491
4703
 
4492
4704
  /**
4493
4705
  * Request message for the CreateAccountAccess rpc.
@@ -4515,7 +4727,7 @@ export type CreateAccountAccessRequest = Message<"blueapi.cover.v1.CreateAccount
4515
4727
  * Use `create(CreateAccountAccessRequestSchema)` to create a new message.
4516
4728
  */
4517
4729
  export const CreateAccountAccessRequestSchema: GenMessage<CreateAccountAccessRequest> = /*@__PURE__*/
4518
- messageDesc(file_cover_v1_cover, 146);
4730
+ messageDesc(file_cover_v1_cover, 156);
4519
4731
 
4520
4732
  /**
4521
4733
  * Request message for the CreateAccountAccessStackset rpc.
@@ -4543,7 +4755,7 @@ export type CreateAccountAccessStacksetRequest = Message<"blueapi.cover.v1.Creat
4543
4755
  * Use `create(CreateAccountAccessStacksetRequestSchema)` to create a new message.
4544
4756
  */
4545
4757
  export const CreateAccountAccessStacksetRequestSchema: GenMessage<CreateAccountAccessStacksetRequest> = /*@__PURE__*/
4546
- messageDesc(file_cover_v1_cover, 147);
4758
+ messageDesc(file_cover_v1_cover, 157);
4547
4759
 
4548
4760
  /**
4549
4761
  * Request message for the UpdateAccountAccess rpc.
@@ -4564,7 +4776,7 @@ export type UpdateAccountAccessRequest = Message<"blueapi.cover.v1.UpdateAccount
4564
4776
  * Use `create(UpdateAccountAccessRequestSchema)` to create a new message.
4565
4777
  */
4566
4778
  export const UpdateAccountAccessRequestSchema: GenMessage<UpdateAccountAccessRequest> = /*@__PURE__*/
4567
- messageDesc(file_cover_v1_cover, 148);
4779
+ messageDesc(file_cover_v1_cover, 158);
4568
4780
 
4569
4781
  /**
4570
4782
  * Request message for the DeleteAccountAccess rpc.
@@ -4590,7 +4802,7 @@ export type DeleteAccountAccessRequest = Message<"blueapi.cover.v1.DeleteAccount
4590
4802
  * Use `create(DeleteAccountAccessRequestSchema)` to create a new message.
4591
4803
  */
4592
4804
  export const DeleteAccountAccessRequestSchema: GenMessage<DeleteAccountAccessRequest> = /*@__PURE__*/
4593
- messageDesc(file_cover_v1_cover, 149);
4805
+ messageDesc(file_cover_v1_cover, 159);
4594
4806
 
4595
4807
  /**
4596
4808
  * Response message for the DeleteAccountAccess rpc.
@@ -4609,7 +4821,7 @@ export type DeleteAccountAccessResponse = Message<"blueapi.cover.v1.DeleteAccoun
4609
4821
  * Use `create(DeleteAccountAccessResponseSchema)` to create a new message.
4610
4822
  */
4611
4823
  export const DeleteAccountAccessResponseSchema: GenMessage<DeleteAccountAccessResponse> = /*@__PURE__*/
4612
- messageDesc(file_cover_v1_cover, 150);
4824
+ messageDesc(file_cover_v1_cover, 160);
4613
4825
 
4614
4826
  /**
4615
4827
  * Request message for the RegisterAccount rpc.
@@ -4644,7 +4856,7 @@ export type RegisterAccountRequest = Message<"blueapi.cover.v1.RegisterAccountRe
4644
4856
  * Use `create(RegisterAccountRequestSchema)` to create a new message.
4645
4857
  */
4646
4858
  export const RegisterAccountRequestSchema: GenMessage<RegisterAccountRequest> = /*@__PURE__*/
4647
- messageDesc(file_cover_v1_cover, 151);
4859
+ messageDesc(file_cover_v1_cover, 161);
4648
4860
 
4649
4861
  /**
4650
4862
  * Request message for the Asset.ListResources rpc.
@@ -4700,7 +4912,7 @@ export type ListAssetsRequest = Message<"blueapi.cover.v1.ListAssetsRequest"> &
4700
4912
  * Use `create(ListAssetsRequestSchema)` to create a new message.
4701
4913
  */
4702
4914
  export const ListAssetsRequestSchema: GenMessage<ListAssetsRequest> = /*@__PURE__*/
4703
- messageDesc(file_cover_v1_cover, 152);
4915
+ messageDesc(file_cover_v1_cover, 162);
4704
4916
 
4705
4917
  /**
4706
4918
  * @generated from message blueapi.cover.v1.ListAssetsFilters
@@ -4717,7 +4929,7 @@ export type ListAssetsFilters = Message<"blueapi.cover.v1.ListAssetsFilters"> &
4717
4929
  * Use `create(ListAssetsFiltersSchema)` to create a new message.
4718
4930
  */
4719
4931
  export const ListAssetsFiltersSchema: GenMessage<ListAssetsFilters> = /*@__PURE__*/
4720
- messageDesc(file_cover_v1_cover, 153);
4932
+ messageDesc(file_cover_v1_cover, 163);
4721
4933
 
4722
4934
  /**
4723
4935
  * @generated from message blueapi.cover.v1.Resource
@@ -4799,7 +5011,7 @@ export type Resource = Message<"blueapi.cover.v1.Resource"> & {
4799
5011
  * Use `create(ResourceSchema)` to create a new message.
4800
5012
  */
4801
5013
  export const ResourceSchema: GenMessage<Resource> = /*@__PURE__*/
4802
- messageDesc(file_cover_v1_cover, 154);
5014
+ messageDesc(file_cover_v1_cover, 164);
4803
5015
 
4804
5016
  /**
4805
5017
  * @generated from message blueapi.cover.v1.GetAssetsSummaryRequest
@@ -4853,7 +5065,7 @@ export type GetAssetsSummaryRequest = Message<"blueapi.cover.v1.GetAssetsSummary
4853
5065
  * Use `create(GetAssetsSummaryRequestSchema)` to create a new message.
4854
5066
  */
4855
5067
  export const GetAssetsSummaryRequestSchema: GenMessage<GetAssetsSummaryRequest> = /*@__PURE__*/
4856
- messageDesc(file_cover_v1_cover, 155);
5068
+ messageDesc(file_cover_v1_cover, 165);
4857
5069
 
4858
5070
  /**
4859
5071
  * @generated from message blueapi.cover.v1.GetAssetsSummaryResponse
@@ -4877,7 +5089,7 @@ export type GetAssetsSummaryResponse = Message<"blueapi.cover.v1.GetAssetsSummar
4877
5089
  * Use `create(GetAssetsSummaryResponseSchema)` to create a new message.
4878
5090
  */
4879
5091
  export const GetAssetsSummaryResponseSchema: GenMessage<GetAssetsSummaryResponse> = /*@__PURE__*/
4880
- messageDesc(file_cover_v1_cover, 156);
5092
+ messageDesc(file_cover_v1_cover, 166);
4881
5093
 
4882
5094
  /**
4883
5095
  * @generated from message blueapi.cover.v1.AssetsSummary
@@ -4917,7 +5129,7 @@ export type AssetsSummary = Message<"blueapi.cover.v1.AssetsSummary"> & {
4917
5129
  * Use `create(AssetsSummarySchema)` to create a new message.
4918
5130
  */
4919
5131
  export const AssetsSummarySchema: GenMessage<AssetsSummary> = /*@__PURE__*/
4920
- messageDesc(file_cover_v1_cover, 157);
5132
+ messageDesc(file_cover_v1_cover, 167);
4921
5133
 
4922
5134
  /**
4923
5135
  * @generated from message blueapi.cover.v1.ResolveCostGroupCombinationsRequest
@@ -4936,7 +5148,7 @@ export type ResolveCostGroupCombinationsRequest = Message<"blueapi.cover.v1.Reso
4936
5148
  * Use `create(ResolveCostGroupCombinationsRequestSchema)` to create a new message.
4937
5149
  */
4938
5150
  export const ResolveCostGroupCombinationsRequestSchema: GenMessage<ResolveCostGroupCombinationsRequest> = /*@__PURE__*/
4939
- messageDesc(file_cover_v1_cover, 158);
5151
+ messageDesc(file_cover_v1_cover, 168);
4940
5152
 
4941
5153
  /**
4942
5154
  * @generated from message blueapi.cover.v1.ResolveCostGroupCombinationsResponse
@@ -4958,7 +5170,7 @@ export type ResolveCostGroupCombinationsResponse = Message<"blueapi.cover.v1.Res
4958
5170
  * Use `create(ResolveCostGroupCombinationsResponseSchema)` to create a new message.
4959
5171
  */
4960
5172
  export const ResolveCostGroupCombinationsResponseSchema: GenMessage<ResolveCostGroupCombinationsResponse> = /*@__PURE__*/
4961
- messageDesc(file_cover_v1_cover, 159);
5173
+ messageDesc(file_cover_v1_cover, 169);
4962
5174
 
4963
5175
  /**
4964
5176
  * @generated from message blueapi.cover.v1.GetCostUsageRequest
@@ -5082,7 +5294,7 @@ export type GetCostUsageRequest = Message<"blueapi.cover.v1.GetCostUsageRequest"
5082
5294
  * Use `create(GetCostUsageRequestSchema)` to create a new message.
5083
5295
  */
5084
5296
  export const GetCostUsageRequestSchema: GenMessage<GetCostUsageRequest> = /*@__PURE__*/
5085
- messageDesc(file_cover_v1_cover, 160);
5297
+ messageDesc(file_cover_v1_cover, 170);
5086
5298
 
5087
5299
  /**
5088
5300
  * @generated from message blueapi.cover.v1.GetCostUsageRequestAwsOptions
@@ -5136,7 +5348,7 @@ export type GetCostUsageRequestAwsOptions = Message<"blueapi.cover.v1.GetCostUsa
5136
5348
  * Use `create(GetCostUsageRequestAwsOptionsSchema)` to create a new message.
5137
5349
  */
5138
5350
  export const GetCostUsageRequestAwsOptionsSchema: GenMessage<GetCostUsageRequestAwsOptions> = /*@__PURE__*/
5139
- messageDesc(file_cover_v1_cover, 161);
5351
+ messageDesc(file_cover_v1_cover, 171);
5140
5352
 
5141
5353
  /**
5142
5354
  * @generated from message blueapi.cover.v1.GetCostUsageRequestAzureOptions
@@ -5182,7 +5394,7 @@ export type GetCostUsageRequestAzureOptions = Message<"blueapi.cover.v1.GetCostU
5182
5394
  * Use `create(GetCostUsageRequestAzureOptionsSchema)` to create a new message.
5183
5395
  */
5184
5396
  export const GetCostUsageRequestAzureOptionsSchema: GenMessage<GetCostUsageRequestAzureOptions> = /*@__PURE__*/
5185
- messageDesc(file_cover_v1_cover, 162);
5397
+ messageDesc(file_cover_v1_cover, 172);
5186
5398
 
5187
5399
  /**
5188
5400
  * @generated from message blueapi.cover.v1.GetCostUsageRequestGcpOptions
@@ -5244,7 +5456,7 @@ export type GetCostUsageRequestGcpOptions = Message<"blueapi.cover.v1.GetCostUsa
5244
5456
  * Use `create(GetCostUsageRequestGcpOptionsSchema)` to create a new message.
5245
5457
  */
5246
5458
  export const GetCostUsageRequestGcpOptionsSchema: GenMessage<GetCostUsageRequestGcpOptions> = /*@__PURE__*/
5247
- messageDesc(file_cover_v1_cover, 163);
5459
+ messageDesc(file_cover_v1_cover, 173);
5248
5460
 
5249
5461
  /**
5250
5462
  * @generated from message blueapi.cover.v1.GetCostUsageRequestAzureCspOptions
@@ -5296,7 +5508,7 @@ export type GetCostUsageRequestAzureCspOptions = Message<"blueapi.cover.v1.GetCo
5296
5508
  * Use `create(GetCostUsageRequestAzureCspOptionsSchema)` to create a new message.
5297
5509
  */
5298
5510
  export const GetCostUsageRequestAzureCspOptionsSchema: GenMessage<GetCostUsageRequestAzureCspOptions> = /*@__PURE__*/
5299
- messageDesc(file_cover_v1_cover, 164);
5511
+ messageDesc(file_cover_v1_cover, 174);
5300
5512
 
5301
5513
  /**
5302
5514
  * @generated from message blueapi.cover.v1.GetCostUsageRequestCustomOptions
@@ -5358,7 +5570,7 @@ export type GetCostUsageRequestCustomOptions = Message<"blueapi.cover.v1.GetCost
5358
5570
  * Use `create(GetCostUsageRequestCustomOptionsSchema)` to create a new message.
5359
5571
  */
5360
5572
  export const GetCostUsageRequestCustomOptionsSchema: GenMessage<GetCostUsageRequestCustomOptions> = /*@__PURE__*/
5361
- messageDesc(file_cover_v1_cover, 165);
5573
+ messageDesc(file_cover_v1_cover, 175);
5362
5574
 
5363
5575
  /**
5364
5576
  * A map of "key:value" column filters. Dependent on `groupByColumns` and/or `groupByMonth`. The key indicates the column name while the value is the filter value prefixed by either "eq:" (equal), "re:" (regular expressions based on https://github.com/google/re2), or "!re:" (reverse "re:"). No prefix is the same as "eq:". Multiple map items will use the logical 'and' operator, e.g. mapfilter1 && mapfilter2 && mapfilter3, etc.
@@ -5379,7 +5591,7 @@ export type ReadCostsRequestOptionsFilters = Message<"blueapi.cover.v1.ReadCosts
5379
5591
  * Use `create(ReadCostsRequestOptionsFiltersSchema)` to create a new message.
5380
5592
  */
5381
5593
  export const ReadCostsRequestOptionsFiltersSchema: GenMessage<ReadCostsRequestOptionsFilters> = /*@__PURE__*/
5382
- messageDesc(file_cover_v1_cover, 166);
5594
+ messageDesc(file_cover_v1_cover, 176);
5383
5595
 
5384
5596
  /**
5385
5597
  * Response message wrapper for cloud costs.
@@ -5517,7 +5729,7 @@ export type CostItem = Message<"blueapi.cover.v1.CostItem"> & {
5517
5729
  * Use `create(CostItemSchema)` to create a new message.
5518
5730
  */
5519
5731
  export const CostItemSchema: GenMessage<CostItem> = /*@__PURE__*/
5520
- messageDesc(file_cover_v1_cover, 167);
5732
+ messageDesc(file_cover_v1_cover, 177);
5521
5733
 
5522
5734
  /**
5523
5735
  * Request message for GetRightSizingRecommendation
@@ -5538,7 +5750,7 @@ export type GetRightSizingRecommendationRequest = Message<"blueapi.cover.v1.GetR
5538
5750
  * Use `create(GetRightSizingRecommendationRequestSchema)` to create a new message.
5539
5751
  */
5540
5752
  export const GetRightSizingRecommendationRequestSchema: GenMessage<GetRightSizingRecommendationRequest> = /*@__PURE__*/
5541
- messageDesc(file_cover_v1_cover, 168);
5753
+ messageDesc(file_cover_v1_cover, 178);
5542
5754
 
5543
5755
  /**
5544
5756
  * Response message for GetRightSizingRecommendation
@@ -5557,7 +5769,7 @@ export type GetRightSizingRecommendationResponse = Message<"blueapi.cover.v1.Get
5557
5769
  * Use `create(GetRightSizingRecommendationResponseSchema)` to create a new message.
5558
5770
  */
5559
5771
  export const GetRightSizingRecommendationResponseSchema: GenMessage<GetRightSizingRecommendationResponse> = /*@__PURE__*/
5560
- messageDesc(file_cover_v1_cover, 169);
5772
+ messageDesc(file_cover_v1_cover, 179);
5561
5773
 
5562
5774
  /**
5563
5775
  * Request message for ModifyResourceType
@@ -5606,7 +5818,7 @@ export type ModifyResourceTypeRequest = Message<"blueapi.cover.v1.ModifyResource
5606
5818
  * Use `create(ModifyResourceTypeRequestSchema)` to create a new message.
5607
5819
  */
5608
5820
  export const ModifyResourceTypeRequestSchema: GenMessage<ModifyResourceTypeRequest> = /*@__PURE__*/
5609
- messageDesc(file_cover_v1_cover, 170);
5821
+ messageDesc(file_cover_v1_cover, 180);
5610
5822
 
5611
5823
  /**
5612
5824
  * Response message for ModifyResourceType
@@ -5640,7 +5852,7 @@ export type ModifyResourceTypeResponse = Message<"blueapi.cover.v1.ModifyResourc
5640
5852
  * Use `create(ModifyResourceTypeResponseSchema)` to create a new message.
5641
5853
  */
5642
5854
  export const ModifyResourceTypeResponseSchema: GenMessage<ModifyResourceTypeResponse> = /*@__PURE__*/
5643
- messageDesc(file_cover_v1_cover, 171);
5855
+ messageDesc(file_cover_v1_cover, 181);
5644
5856
 
5645
5857
  /**
5646
5858
  * Request message for TerminateResource
@@ -5682,7 +5894,7 @@ export type TerminateResourceRequest = Message<"blueapi.cover.v1.TerminateResour
5682
5894
  * Use `create(TerminateResourceRequestSchema)` to create a new message.
5683
5895
  */
5684
5896
  export const TerminateResourceRequestSchema: GenMessage<TerminateResourceRequest> = /*@__PURE__*/
5685
- messageDesc(file_cover_v1_cover, 172);
5897
+ messageDesc(file_cover_v1_cover, 182);
5686
5898
 
5687
5899
  /**
5688
5900
  * Response message for TerminateResource
@@ -5711,7 +5923,7 @@ export type TerminateResourceResponse = Message<"blueapi.cover.v1.TerminateResou
5711
5923
  * Use `create(TerminateResourceResponseSchema)` to create a new message.
5712
5924
  */
5713
5925
  export const TerminateResourceResponseSchema: GenMessage<TerminateResourceResponse> = /*@__PURE__*/
5714
- messageDesc(file_cover_v1_cover, 173);
5926
+ messageDesc(file_cover_v1_cover, 183);
5715
5927
 
5716
5928
  /**
5717
5929
  * (WIP): Request message for Upload Charge Code
@@ -5752,7 +5964,7 @@ export type UploadChargeCodeRequest = Message<"blueapi.cover.v1.UploadChargeCode
5752
5964
  * Use `create(UploadChargeCodeRequestSchema)` to create a new message.
5753
5965
  */
5754
5966
  export const UploadChargeCodeRequestSchema: GenMessage<UploadChargeCodeRequest> = /*@__PURE__*/
5755
- messageDesc(file_cover_v1_cover, 174);
5967
+ messageDesc(file_cover_v1_cover, 184);
5756
5968
 
5757
5969
  /**
5758
5970
  * (WIP): Response message for Upload Charge Code
@@ -5780,7 +5992,7 @@ export type UploadChargeCodeResponse = Message<"blueapi.cover.v1.UploadChargeCod
5780
5992
  * Use `create(UploadChargeCodeResponseSchema)` to create a new message.
5781
5993
  */
5782
5994
  export const UploadChargeCodeResponseSchema: GenMessage<UploadChargeCodeResponse> = /*@__PURE__*/
5783
- messageDesc(file_cover_v1_cover, 175);
5995
+ messageDesc(file_cover_v1_cover, 185);
5784
5996
 
5785
5997
  /**
5786
5998
  * Request message for AssignPayer
@@ -5815,7 +6027,7 @@ export type AssignPayerRequest = Message<"blueapi.cover.v1.AssignPayerRequest">
5815
6027
  * Use `create(AssignPayerRequestSchema)` to create a new message.
5816
6028
  */
5817
6029
  export const AssignPayerRequestSchema: GenMessage<AssignPayerRequest> = /*@__PURE__*/
5818
- messageDesc(file_cover_v1_cover, 176);
6030
+ messageDesc(file_cover_v1_cover, 186);
5819
6031
 
5820
6032
  /**
5821
6033
  * Response message for AssignPayer
@@ -5839,7 +6051,7 @@ export type AssignPayerResponse = Message<"blueapi.cover.v1.AssignPayerResponse"
5839
6051
  * Use `create(AssignPayerResponseSchema)` to create a new message.
5840
6052
  */
5841
6053
  export const AssignPayerResponseSchema: GenMessage<AssignPayerResponse> = /*@__PURE__*/
5842
- messageDesc(file_cover_v1_cover, 177);
6054
+ messageDesc(file_cover_v1_cover, 187);
5843
6055
 
5844
6056
  /**
5845
6057
  * Request message for GetPayers
@@ -5860,7 +6072,7 @@ export type GetPayersRequest = Message<"blueapi.cover.v1.GetPayersRequest"> & {
5860
6072
  * Use `create(GetPayersRequestSchema)` to create a new message.
5861
6073
  */
5862
6074
  export const GetPayersRequestSchema: GenMessage<GetPayersRequest> = /*@__PURE__*/
5863
- messageDesc(file_cover_v1_cover, 178);
6075
+ messageDesc(file_cover_v1_cover, 188);
5864
6076
 
5865
6077
  /**
5866
6078
  * Response message for GetPayers
@@ -5879,7 +6091,7 @@ export type GetPayersResponse = Message<"blueapi.cover.v1.GetPayersResponse"> &
5879
6091
  * Use `create(GetPayersResponseSchema)` to create a new message.
5880
6092
  */
5881
6093
  export const GetPayersResponseSchema: GenMessage<GetPayersResponse> = /*@__PURE__*/
5882
- messageDesc(file_cover_v1_cover, 179);
6094
+ messageDesc(file_cover_v1_cover, 189);
5883
6095
 
5884
6096
  /**
5885
6097
  * Request message for GetAccounts
@@ -5905,7 +6117,7 @@ export type GetAccountsRequest = Message<"blueapi.cover.v1.GetAccountsRequest">
5905
6117
  * Use `create(GetAccountsRequestSchema)` to create a new message.
5906
6118
  */
5907
6119
  export const GetAccountsRequestSchema: GenMessage<GetAccountsRequest> = /*@__PURE__*/
5908
- messageDesc(file_cover_v1_cover, 180);
6120
+ messageDesc(file_cover_v1_cover, 190);
5909
6121
 
5910
6122
  /**
5911
6123
  * Response message for GetAccounts
@@ -5924,7 +6136,7 @@ export type GetAccountsResponse = Message<"blueapi.cover.v1.GetAccountsResponse"
5924
6136
  * Use `create(GetAccountsResponseSchema)` to create a new message.
5925
6137
  */
5926
6138
  export const GetAccountsResponseSchema: GenMessage<GetAccountsResponse> = /*@__PURE__*/
5927
- messageDesc(file_cover_v1_cover, 181);
6139
+ messageDesc(file_cover_v1_cover, 191);
5928
6140
 
5929
6141
  /**
5930
6142
  * Request message for GetServices
@@ -5950,7 +6162,7 @@ export type GetServicesRequest = Message<"blueapi.cover.v1.GetServicesRequest">
5950
6162
  * Use `create(GetServicesRequestSchema)` to create a new message.
5951
6163
  */
5952
6164
  export const GetServicesRequestSchema: GenMessage<GetServicesRequest> = /*@__PURE__*/
5953
- messageDesc(file_cover_v1_cover, 182);
6165
+ messageDesc(file_cover_v1_cover, 192);
5954
6166
 
5955
6167
  /**
5956
6168
  * Response message for GetServices
@@ -5969,7 +6181,7 @@ export type GetServicesResponse = Message<"blueapi.cover.v1.GetServicesResponse"
5969
6181
  * Use `create(GetServicesResponseSchema)` to create a new message.
5970
6182
  */
5971
6183
  export const GetServicesResponseSchema: GenMessage<GetServicesResponse> = /*@__PURE__*/
5972
- messageDesc(file_cover_v1_cover, 183);
6184
+ messageDesc(file_cover_v1_cover, 193);
5973
6185
 
5974
6186
  /**
5975
6187
  * Request message for GetRegions
@@ -5995,7 +6207,7 @@ export type GetRegionsRequest = Message<"blueapi.cover.v1.GetRegionsRequest"> &
5995
6207
  * Use `create(GetRegionsRequestSchema)` to create a new message.
5996
6208
  */
5997
6209
  export const GetRegionsRequestSchema: GenMessage<GetRegionsRequest> = /*@__PURE__*/
5998
- messageDesc(file_cover_v1_cover, 184);
6210
+ messageDesc(file_cover_v1_cover, 194);
5999
6211
 
6000
6212
  /**
6001
6213
  * Response message for GetRegions
@@ -6014,7 +6226,7 @@ export type GetRegionsResponse = Message<"blueapi.cover.v1.GetRegionsResponse">
6014
6226
  * Use `create(GetRegionsResponseSchema)` to create a new message.
6015
6227
  */
6016
6228
  export const GetRegionsResponseSchema: GenMessage<GetRegionsResponse> = /*@__PURE__*/
6017
- messageDesc(file_cover_v1_cover, 185);
6229
+ messageDesc(file_cover_v1_cover, 195);
6018
6230
 
6019
6231
  /**
6020
6232
  * Request message for GetTags
@@ -6040,7 +6252,7 @@ export type GetTagsRequest = Message<"blueapi.cover.v1.GetTagsRequest"> & {
6040
6252
  * Use `create(GetTagsRequestSchema)` to create a new message.
6041
6253
  */
6042
6254
  export const GetTagsRequestSchema: GenMessage<GetTagsRequest> = /*@__PURE__*/
6043
- messageDesc(file_cover_v1_cover, 186);
6255
+ messageDesc(file_cover_v1_cover, 196);
6044
6256
 
6045
6257
  /**
6046
6258
  * Response message for GetTags
@@ -6059,7 +6271,7 @@ export type GetTagsResponse = Message<"blueapi.cover.v1.GetTagsResponse"> & {
6059
6271
  * Use `create(GetTagsResponseSchema)` to create a new message.
6060
6272
  */
6061
6273
  export const GetTagsResponseSchema: GenMessage<GetTagsResponse> = /*@__PURE__*/
6062
- messageDesc(file_cover_v1_cover, 187);
6274
+ messageDesc(file_cover_v1_cover, 197);
6063
6275
 
6064
6276
  /**
6065
6277
  * Request message for the ListFees rpc.
@@ -6078,7 +6290,7 @@ export type ListFeesRequest = Message<"blueapi.cover.v1.ListFeesRequest"> & {
6078
6290
  * Use `create(ListFeesRequestSchema)` to create a new message.
6079
6291
  */
6080
6292
  export const ListFeesRequestSchema: GenMessage<ListFeesRequest> = /*@__PURE__*/
6081
- messageDesc(file_cover_v1_cover, 188);
6293
+ messageDesc(file_cover_v1_cover, 198);
6082
6294
 
6083
6295
  /**
6084
6296
  * Response message for GetFeeDetails, CreateFeeReallocation rpc.
@@ -6187,7 +6399,7 @@ export type FeeDetails = Message<"blueapi.cover.v1.FeeDetails"> & {
6187
6399
  * Use `create(FeeDetailsSchema)` to create a new message.
6188
6400
  */
6189
6401
  export const FeeDetailsSchema: GenMessage<FeeDetails> = /*@__PURE__*/
6190
- messageDesc(file_cover_v1_cover, 189);
6402
+ messageDesc(file_cover_v1_cover, 199);
6191
6403
 
6192
6404
  /**
6193
6405
  * Request message for the RestoreFee rpc.
@@ -6208,7 +6420,7 @@ export type RestoreFeeRequest = Message<"blueapi.cover.v1.RestoreFeeRequest"> &
6208
6420
  * Use `create(RestoreFeeRequestSchema)` to create a new message.
6209
6421
  */
6210
6422
  export const RestoreFeeRequestSchema: GenMessage<RestoreFeeRequest> = /*@__PURE__*/
6211
- messageDesc(file_cover_v1_cover, 190);
6423
+ messageDesc(file_cover_v1_cover, 200);
6212
6424
 
6213
6425
  /**
6214
6426
  * Request message for the GetCostGroupFee rpc.
@@ -6239,7 +6451,7 @@ export type GetCostGroupFeeRequest = Message<"blueapi.cover.v1.GetCostGroupFeeRe
6239
6451
  * Use `create(GetCostGroupFeeRequestSchema)` to create a new message.
6240
6452
  */
6241
6453
  export const GetCostGroupFeeRequestSchema: GenMessage<GetCostGroupFeeRequest> = /*@__PURE__*/
6242
- messageDesc(file_cover_v1_cover, 191);
6454
+ messageDesc(file_cover_v1_cover, 201);
6243
6455
 
6244
6456
  /**
6245
6457
  * Response message wrapper for cost group fees.
@@ -6283,7 +6495,7 @@ export type FeeItem = Message<"blueapi.cover.v1.FeeItem"> & {
6283
6495
  * Use `create(FeeItemSchema)` to create a new message.
6284
6496
  */
6285
6497
  export const FeeItemSchema: GenMessage<FeeItem> = /*@__PURE__*/
6286
- messageDesc(file_cover_v1_cover, 192);
6498
+ messageDesc(file_cover_v1_cover, 202);
6287
6499
 
6288
6500
  /**
6289
6501
  * @generated from message blueapi.cover.v1.Allocator
@@ -6323,7 +6535,7 @@ export type Allocator = Message<"blueapi.cover.v1.Allocator"> & {
6323
6535
  * Use `create(AllocatorSchema)` to create a new message.
6324
6536
  */
6325
6537
  export const AllocatorSchema: GenMessage<Allocator> = /*@__PURE__*/
6326
- messageDesc(file_cover_v1_cover, 193);
6538
+ messageDesc(file_cover_v1_cover, 203);
6327
6539
 
6328
6540
  /**
6329
6541
  * A map of "key:value" attribute filters. The key indicates the column name while the value is the filter value prefixed by either "eq:" (equal), "re:" (regular expressions based on https://github.com/google/re2), or "!re:" (reverse "re:"). No prefix is the same as "eq:". Multiple map items will use the logical 'and' operator, e.g. mapfilter1 && mapfilter2 && mapfilter3, etc.
@@ -6342,7 +6554,7 @@ export type Criteria = Message<"blueapi.cover.v1.Criteria"> & {
6342
6554
  * Use `create(CriteriaSchema)` to create a new message.
6343
6555
  */
6344
6556
  export const CriteriaSchema: GenMessage<Criteria> = /*@__PURE__*/
6345
- messageDesc(file_cover_v1_cover, 194);
6557
+ messageDesc(file_cover_v1_cover, 204);
6346
6558
 
6347
6559
  /**
6348
6560
  * @generated from message blueapi.cover.v1.CostAllocatorDetails
@@ -6415,7 +6627,7 @@ export type CostAllocatorDetails = Message<"blueapi.cover.v1.CostAllocatorDetail
6415
6627
  * Use `create(CostAllocatorDetailsSchema)` to create a new message.
6416
6628
  */
6417
6629
  export const CostAllocatorDetailsSchema: GenMessage<CostAllocatorDetails> = /*@__PURE__*/
6418
- messageDesc(file_cover_v1_cover, 195);
6630
+ messageDesc(file_cover_v1_cover, 205);
6419
6631
 
6420
6632
  /**
6421
6633
  * @generated from message blueapi.cover.v1.CostAllocatorRequest
@@ -6478,7 +6690,7 @@ export type CostAllocatorRequest = Message<"blueapi.cover.v1.CostAllocatorReques
6478
6690
  * Use `create(CostAllocatorRequestSchema)` to create a new message.
6479
6691
  */
6480
6692
  export const CostAllocatorRequestSchema: GenMessage<CostAllocatorRequest> = /*@__PURE__*/
6481
- messageDesc(file_cover_v1_cover, 196);
6693
+ messageDesc(file_cover_v1_cover, 206);
6482
6694
 
6483
6695
  /**
6484
6696
  * Request message for the ListAllocators rpc.
@@ -6493,7 +6705,7 @@ export type ListAllocatorsRequest = Message<"blueapi.cover.v1.ListAllocatorsRequ
6493
6705
  * Use `create(ListAllocatorsRequestSchema)` to create a new message.
6494
6706
  */
6495
6707
  export const ListAllocatorsRequestSchema: GenMessage<ListAllocatorsRequest> = /*@__PURE__*/
6496
- messageDesc(file_cover_v1_cover, 197);
6708
+ messageDesc(file_cover_v1_cover, 207);
6497
6709
 
6498
6710
  /**
6499
6711
  * Request message for the CreateAllocator rpc.
@@ -6555,7 +6767,7 @@ export type CreateAllocatorRequest = Message<"blueapi.cover.v1.CreateAllocatorRe
6555
6767
  * Use `create(CreateAllocatorRequestSchema)` to create a new message.
6556
6768
  */
6557
6769
  export const CreateAllocatorRequestSchema: GenMessage<CreateAllocatorRequest> = /*@__PURE__*/
6558
- messageDesc(file_cover_v1_cover, 198);
6770
+ messageDesc(file_cover_v1_cover, 208);
6559
6771
 
6560
6772
  /**
6561
6773
  * Request message for the GetAllocationAttributes rpc.
@@ -6574,7 +6786,7 @@ export type GetAllocationAttributesRequest = Message<"blueapi.cover.v1.GetAlloca
6574
6786
  * Use `create(GetAllocationAttributesRequestSchema)` to create a new message.
6575
6787
  */
6576
6788
  export const GetAllocationAttributesRequestSchema: GenMessage<GetAllocationAttributesRequest> = /*@__PURE__*/
6577
- messageDesc(file_cover_v1_cover, 199);
6789
+ messageDesc(file_cover_v1_cover, 209);
6578
6790
 
6579
6791
  /**
6580
6792
  * Response message for the GetAllocationAttributes rpc.
@@ -6593,7 +6805,7 @@ export type GetAllocationAttributesResponse = Message<"blueapi.cover.v1.GetAlloc
6593
6805
  * Use `create(GetAllocationAttributesResponseSchema)` to create a new message.
6594
6806
  */
6595
6807
  export const GetAllocationAttributesResponseSchema: GenMessage<GetAllocationAttributesResponse> = /*@__PURE__*/
6596
- messageDesc(file_cover_v1_cover, 200);
6808
+ messageDesc(file_cover_v1_cover, 210);
6597
6809
 
6598
6810
  /**
6599
6811
  * @generated from message blueapi.cover.v1.GetAllocationAttributesResponse.AllocationAttribute
@@ -6615,7 +6827,7 @@ export type GetAllocationAttributesResponse_AllocationAttribute = Message<"bluea
6615
6827
  * Use `create(GetAllocationAttributesResponse_AllocationAttributeSchema)` to create a new message.
6616
6828
  */
6617
6829
  export const GetAllocationAttributesResponse_AllocationAttributeSchema: GenMessage<GetAllocationAttributesResponse_AllocationAttribute> = /*@__PURE__*/
6618
- messageDesc(file_cover_v1_cover, 200, 0);
6830
+ messageDesc(file_cover_v1_cover, 210, 0);
6619
6831
 
6620
6832
  /**
6621
6833
  * Request message for the GetAllocationSources rpc.
@@ -6639,7 +6851,7 @@ export type GetAllocationSourcesRequest = Message<"blueapi.cover.v1.GetAllocatio
6639
6851
  * Use `create(GetAllocationSourcesRequestSchema)` to create a new message.
6640
6852
  */
6641
6853
  export const GetAllocationSourcesRequestSchema: GenMessage<GetAllocationSourcesRequest> = /*@__PURE__*/
6642
- messageDesc(file_cover_v1_cover, 201);
6854
+ messageDesc(file_cover_v1_cover, 211);
6643
6855
 
6644
6856
  /**
6645
6857
  * Response message for the GetAllocationSources rpc.
@@ -6663,7 +6875,7 @@ export type GetAllocationSourcesResponse = Message<"blueapi.cover.v1.GetAllocati
6663
6875
  * Use `create(GetAllocationSourcesResponseSchema)` to create a new message.
6664
6876
  */
6665
6877
  export const GetAllocationSourcesResponseSchema: GenMessage<GetAllocationSourcesResponse> = /*@__PURE__*/
6666
- messageDesc(file_cover_v1_cover, 202);
6878
+ messageDesc(file_cover_v1_cover, 212);
6667
6879
 
6668
6880
  /**
6669
6881
  * @generated from message blueapi.cover.v1.GetAllocationSourcesResponse.AllocationSources
@@ -6690,7 +6902,7 @@ export type GetAllocationSourcesResponse_AllocationSources = Message<"blueapi.co
6690
6902
  * Use `create(GetAllocationSourcesResponse_AllocationSourcesSchema)` to create a new message.
6691
6903
  */
6692
6904
  export const GetAllocationSourcesResponse_AllocationSourcesSchema: GenMessage<GetAllocationSourcesResponse_AllocationSources> = /*@__PURE__*/
6693
- messageDesc(file_cover_v1_cover, 202, 0);
6905
+ messageDesc(file_cover_v1_cover, 212, 0);
6694
6906
 
6695
6907
  /**
6696
6908
  * Request message for the DeleteAllocator rpc.
@@ -6711,7 +6923,7 @@ export type DeleteAllocatorRequest = Message<"blueapi.cover.v1.DeleteAllocatorRe
6711
6923
  * Use `create(DeleteAllocatorRequestSchema)` to create a new message.
6712
6924
  */
6713
6925
  export const DeleteAllocatorRequestSchema: GenMessage<DeleteAllocatorRequest> = /*@__PURE__*/
6714
- messageDesc(file_cover_v1_cover, 203);
6926
+ messageDesc(file_cover_v1_cover, 213);
6715
6927
 
6716
6928
  /**
6717
6929
  * Request message for the ProxyCreateCompletion rpc.
@@ -6730,7 +6942,7 @@ export type ProxyCreateCompletionRequest = Message<"blueapi.cover.v1.ProxyCreate
6730
6942
  * Use `create(ProxyCreateCompletionRequestSchema)` to create a new message.
6731
6943
  */
6732
6944
  export const ProxyCreateCompletionRequestSchema: GenMessage<ProxyCreateCompletionRequest> = /*@__PURE__*/
6733
- messageDesc(file_cover_v1_cover, 204);
6945
+ messageDesc(file_cover_v1_cover, 214);
6734
6946
 
6735
6947
  /**
6736
6948
  * Response message for the ProxyCreateCompletion rpc.
@@ -6749,7 +6961,7 @@ export type ProxyCreateCompletionResponse = Message<"blueapi.cover.v1.ProxyCreat
6749
6961
  * Use `create(ProxyCreateCompletionResponseSchema)` to create a new message.
6750
6962
  */
6751
6963
  export const ProxyCreateCompletionResponseSchema: GenMessage<ProxyCreateCompletionResponse> = /*@__PURE__*/
6752
- messageDesc(file_cover_v1_cover, 205);
6964
+ messageDesc(file_cover_v1_cover, 215);
6753
6965
 
6754
6966
  /**
6755
6967
  * Response message for SimulateAccountCostAllocator rpc.
@@ -6908,7 +7120,7 @@ export type AccountUsageDetails = Message<"blueapi.cover.v1.AccountUsageDetails"
6908
7120
  * Use `create(AccountUsageDetailsSchema)` to create a new message.
6909
7121
  */
6910
7122
  export const AccountUsageDetailsSchema: GenMessage<AccountUsageDetails> = /*@__PURE__*/
6911
- messageDesc(file_cover_v1_cover, 206);
7123
+ messageDesc(file_cover_v1_cover, 216);
6912
7124
 
6913
7125
  /**
6914
7126
  * Request message for the RestoreAccountUsage rpc.
@@ -6932,7 +7144,7 @@ export type ListAccountUsageRequest = Message<"blueapi.cover.v1.ListAccountUsage
6932
7144
  * Use `create(ListAccountUsageRequestSchema)` to create a new message.
6933
7145
  */
6934
7146
  export const ListAccountUsageRequestSchema: GenMessage<ListAccountUsageRequest> = /*@__PURE__*/
6935
- messageDesc(file_cover_v1_cover, 207);
7147
+ messageDesc(file_cover_v1_cover, 217);
6936
7148
 
6937
7149
  /**
6938
7150
  * Request message for the RestoreAccountUsage rpc.
@@ -6953,7 +7165,7 @@ export type RestoreAccountUsageRequest = Message<"blueapi.cover.v1.RestoreAccoun
6953
7165
  * Use `create(RestoreAccountUsageRequestSchema)` to create a new message.
6954
7166
  */
6955
7167
  export const RestoreAccountUsageRequestSchema: GenMessage<RestoreAccountUsageRequest> = /*@__PURE__*/
6956
- messageDesc(file_cover_v1_cover, 208);
7168
+ messageDesc(file_cover_v1_cover, 218);
6957
7169
 
6958
7170
  /**
6959
7171
  * Request message for the RestoreSavings rpc.
@@ -6974,7 +7186,7 @@ export type RestoreSavingsRequest = Message<"blueapi.cover.v1.RestoreSavingsRequ
6974
7186
  * Use `create(RestoreSavingsRequestSchema)` to create a new message.
6975
7187
  */
6976
7188
  export const RestoreSavingsRequestSchema: GenMessage<RestoreSavingsRequest> = /*@__PURE__*/
6977
- messageDesc(file_cover_v1_cover, 209);
7189
+ messageDesc(file_cover_v1_cover, 219);
6978
7190
 
6979
7191
  /**
6980
7192
  * Response message for ListSavings, RestoreSavings, SimulateSavings rpc.
@@ -7073,7 +7285,7 @@ export type SavingsDetails = Message<"blueapi.cover.v1.SavingsDetails"> & {
7073
7285
  * Use `create(SavingsDetailsSchema)` to create a new message.
7074
7286
  */
7075
7287
  export const SavingsDetailsSchema: GenMessage<SavingsDetails> = /*@__PURE__*/
7076
- messageDesc(file_cover_v1_cover, 210);
7288
+ messageDesc(file_cover_v1_cover, 220);
7077
7289
 
7078
7290
  /**
7079
7291
  * Request message for the GetCostGroupAllocation rpc.
@@ -7111,7 +7323,7 @@ export type GetCostGroupAllocationRequest = Message<"blueapi.cover.v1.GetCostGro
7111
7323
  * Use `create(GetCostGroupAllocationRequestSchema)` to create a new message.
7112
7324
  */
7113
7325
  export const GetCostGroupAllocationRequestSchema: GenMessage<GetCostGroupAllocationRequest> = /*@__PURE__*/
7114
- messageDesc(file_cover_v1_cover, 211);
7326
+ messageDesc(file_cover_v1_cover, 221);
7115
7327
 
7116
7328
  /**
7117
7329
  * Response message wrapper for cost group allocations.
@@ -7160,7 +7372,7 @@ export type AllocationItem = Message<"blueapi.cover.v1.AllocationItem"> & {
7160
7372
  * Use `create(AllocationItemSchema)` to create a new message.
7161
7373
  */
7162
7374
  export const AllocationItemSchema: GenMessage<AllocationItem> = /*@__PURE__*/
7163
- messageDesc(file_cover_v1_cover, 212);
7375
+ messageDesc(file_cover_v1_cover, 222);
7164
7376
 
7165
7377
  /**
7166
7378
  * Request message for AddUserFromAuth0asRoot rpc
@@ -7194,7 +7406,7 @@ export type ProcessAuth0UserRequest = Message<"blueapi.cover.v1.ProcessAuth0User
7194
7406
  * Use `create(ProcessAuth0UserRequestSchema)` to create a new message.
7195
7407
  */
7196
7408
  export const ProcessAuth0UserRequestSchema: GenMessage<ProcessAuth0UserRequest> = /*@__PURE__*/
7197
- messageDesc(file_cover_v1_cover, 213);
7409
+ messageDesc(file_cover_v1_cover, 223);
7198
7410
 
7199
7411
  /**
7200
7412
  * Response message wrapper for adding user from Auth0 as root
@@ -7213,7 +7425,7 @@ export type ProcessAuth0UserResponse = Message<"blueapi.cover.v1.ProcessAuth0Use
7213
7425
  * Use `create(ProcessAuth0UserResponseSchema)` to create a new message.
7214
7426
  */
7215
7427
  export const ProcessAuth0UserResponseSchema: GenMessage<ProcessAuth0UserResponse> = /*@__PURE__*/
7216
- messageDesc(file_cover_v1_cover, 214);
7428
+ messageDesc(file_cover_v1_cover, 224);
7217
7429
 
7218
7430
  /**
7219
7431
  * Message Response for GetDataAccess. For Azure and GCP
@@ -7286,7 +7498,7 @@ export type DataAccess = Message<"blueapi.cover.v1.DataAccess"> & {
7286
7498
  * Use `create(DataAccessSchema)` to create a new message.
7287
7499
  */
7288
7500
  export const DataAccessSchema: GenMessage<DataAccess> = /*@__PURE__*/
7289
- messageDesc(file_cover_v1_cover, 215);
7501
+ messageDesc(file_cover_v1_cover, 225);
7290
7502
 
7291
7503
  /**
7292
7504
  * Request message for Register Data Access. For azure and gcp.
@@ -7342,7 +7554,7 @@ export type RegisterDataAccessRequest = Message<"blueapi.cover.v1.RegisterDataAc
7342
7554
  * Use `create(RegisterDataAccessRequestSchema)` to create a new message.
7343
7555
  */
7344
7556
  export const RegisterDataAccessRequestSchema: GenMessage<RegisterDataAccessRequest> = /*@__PURE__*/
7345
- messageDesc(file_cover_v1_cover, 216);
7557
+ messageDesc(file_cover_v1_cover, 226);
7346
7558
 
7347
7559
  /**
7348
7560
  * Request message for UpdateDataAccess (GCP/Azure)
@@ -7398,7 +7610,7 @@ export type UpdateDataAccessRequest = Message<"blueapi.cover.v1.UpdateDataAccess
7398
7610
  * Use `create(UpdateDataAccessRequestSchema)` to create a new message.
7399
7611
  */
7400
7612
  export const UpdateDataAccessRequestSchema: GenMessage<UpdateDataAccessRequest> = /*@__PURE__*/
7401
- messageDesc(file_cover_v1_cover, 217);
7613
+ messageDesc(file_cover_v1_cover, 227);
7402
7614
 
7403
7615
  /**
7404
7616
  * Request message for ListDataAccess
@@ -7413,7 +7625,7 @@ export type ListDataAccessRequest = Message<"blueapi.cover.v1.ListDataAccessRequ
7413
7625
  * Use `create(ListDataAccessRequestSchema)` to create a new message.
7414
7626
  */
7415
7627
  export const ListDataAccessRequestSchema: GenMessage<ListDataAccessRequest> = /*@__PURE__*/
7416
- messageDesc(file_cover_v1_cover, 218);
7628
+ messageDesc(file_cover_v1_cover, 228);
7417
7629
 
7418
7630
  /**
7419
7631
  * Request message for ListUnregisteredAccounts
@@ -7428,7 +7640,7 @@ export type ListUnregisteredAccountsRequest = Message<"blueapi.cover.v1.ListUnre
7428
7640
  * Use `create(ListUnregisteredAccountsRequestSchema)` to create a new message.
7429
7641
  */
7430
7642
  export const ListUnregisteredAccountsRequestSchema: GenMessage<ListUnregisteredAccountsRequest> = /*@__PURE__*/
7431
- messageDesc(file_cover_v1_cover, 219);
7643
+ messageDesc(file_cover_v1_cover, 229);
7432
7644
 
7433
7645
  /**
7434
7646
  * Response message for ListUnregisteredAccounts
@@ -7452,7 +7664,7 @@ export type ListUnregisteredAccountsResponse = Message<"blueapi.cover.v1.ListUnr
7452
7664
  * Use `create(ListUnregisteredAccountsResponseSchema)` to create a new message.
7453
7665
  */
7454
7666
  export const ListUnregisteredAccountsResponseSchema: GenMessage<ListUnregisteredAccountsResponse> = /*@__PURE__*/
7455
- messageDesc(file_cover_v1_cover, 220);
7667
+ messageDesc(file_cover_v1_cover, 230);
7456
7668
 
7457
7669
  /**
7458
7670
  * @generated from message blueapi.cover.v1.UnregisteredAccts
@@ -7486,7 +7698,7 @@ export type UnregisteredAccts = Message<"blueapi.cover.v1.UnregisteredAccts"> &
7486
7698
  * Use `create(UnregisteredAcctsSchema)` to create a new message.
7487
7699
  */
7488
7700
  export const UnregisteredAcctsSchema: GenMessage<UnregisteredAccts> = /*@__PURE__*/
7489
- messageDesc(file_cover_v1_cover, 221);
7701
+ messageDesc(file_cover_v1_cover, 231);
7490
7702
 
7491
7703
  /**
7492
7704
  * Request message for AddBillingAccount
@@ -7535,7 +7747,7 @@ export type BillingAccountRequest = Message<"blueapi.cover.v1.BillingAccountRequ
7535
7747
  * Use `create(BillingAccountRequestSchema)` to create a new message.
7536
7748
  */
7537
7749
  export const BillingAccountRequestSchema: GenMessage<BillingAccountRequest> = /*@__PURE__*/
7538
- messageDesc(file_cover_v1_cover, 222);
7750
+ messageDesc(file_cover_v1_cover, 232);
7539
7751
 
7540
7752
  /**
7541
7753
  * @generated from message blueapi.cover.v1.GetAndDeleteDataAccessRequest
@@ -7568,7 +7780,7 @@ export type GetAndDeleteDataAccessRequest = Message<"blueapi.cover.v1.GetAndDele
7568
7780
  * Use `create(GetAndDeleteDataAccessRequestSchema)` to create a new message.
7569
7781
  */
7570
7782
  export const GetAndDeleteDataAccessRequestSchema: GenMessage<GetAndDeleteDataAccessRequest> = /*@__PURE__*/
7571
- messageDesc(file_cover_v1_cover, 223);
7783
+ messageDesc(file_cover_v1_cover, 233);
7572
7784
 
7573
7785
  /**
7574
7786
  * Request message for AddPartnerCenterCredentials
@@ -7603,7 +7815,7 @@ export type AddPartnerCenterCredentialsRequest = Message<"blueapi.cover.v1.AddPa
7603
7815
  * Use `create(AddPartnerCenterCredentialsRequestSchema)` to create a new message.
7604
7816
  */
7605
7817
  export const AddPartnerCenterCredentialsRequestSchema: GenMessage<AddPartnerCenterCredentialsRequest> = /*@__PURE__*/
7606
- messageDesc(file_cover_v1_cover, 224);
7818
+ messageDesc(file_cover_v1_cover, 234);
7607
7819
 
7608
7820
  /**
7609
7821
  * Request message for AddMpnSetting
@@ -7624,7 +7836,7 @@ export type AddMpnSettingRequest = Message<"blueapi.cover.v1.AddMpnSettingReques
7624
7836
  * Use `create(AddMpnSettingRequestSchema)` to create a new message.
7625
7837
  */
7626
7838
  export const AddMpnSettingRequestSchema: GenMessage<AddMpnSettingRequest> = /*@__PURE__*/
7627
- messageDesc(file_cover_v1_cover, 225);
7839
+ messageDesc(file_cover_v1_cover, 235);
7628
7840
 
7629
7841
  /**
7630
7842
  * Request message for GetCostGroupAttribute
@@ -7670,7 +7882,7 @@ export type GetCostGroupAttributeRequest = Message<"blueapi.cover.v1.GetCostGrou
7670
7882
  * Use `create(GetCostGroupAttributeRequestSchema)` to create a new message.
7671
7883
  */
7672
7884
  export const GetCostGroupAttributeRequestSchema: GenMessage<GetCostGroupAttributeRequest> = /*@__PURE__*/
7673
- messageDesc(file_cover_v1_cover, 226);
7885
+ messageDesc(file_cover_v1_cover, 236);
7674
7886
 
7675
7887
  /**
7676
7888
  * Response message for GetCostGroupAttribute
@@ -7694,7 +7906,7 @@ export type GetCostGroupAttributeResponse = Message<"blueapi.cover.v1.GetCostGro
7694
7906
  * Use `create(GetCostGroupAttributeResponseSchema)` to create a new message.
7695
7907
  */
7696
7908
  export const GetCostGroupAttributeResponseSchema: GenMessage<GetCostGroupAttributeResponse> = /*@__PURE__*/
7697
- messageDesc(file_cover_v1_cover, 227);
7909
+ messageDesc(file_cover_v1_cover, 237);
7698
7910
 
7699
7911
  /**
7700
7912
  * @generated from message blueapi.cover.v1.GetCategoriesRequest
@@ -7711,7 +7923,7 @@ export type GetCategoriesRequest = Message<"blueapi.cover.v1.GetCategoriesReques
7711
7923
  * Use `create(GetCategoriesRequestSchema)` to create a new message.
7712
7924
  */
7713
7925
  export const GetCategoriesRequestSchema: GenMessage<GetCategoriesRequest> = /*@__PURE__*/
7714
- messageDesc(file_cover_v1_cover, 228);
7926
+ messageDesc(file_cover_v1_cover, 238);
7715
7927
 
7716
7928
  /**
7717
7929
  * @generated from message blueapi.cover.v1.GetCategoriesResponse
@@ -7728,7 +7940,7 @@ export type GetCategoriesResponse = Message<"blueapi.cover.v1.GetCategoriesRespo
7728
7940
  * Use `create(GetCategoriesResponseSchema)` to create a new message.
7729
7941
  */
7730
7942
  export const GetCategoriesResponseSchema: GenMessage<GetCategoriesResponse> = /*@__PURE__*/
7731
- messageDesc(file_cover_v1_cover, 229);
7943
+ messageDesc(file_cover_v1_cover, 239);
7732
7944
 
7733
7945
  /**
7734
7946
  * Request message for GetAlerts
@@ -7743,7 +7955,7 @@ export type GetAlertsRequest = Message<"blueapi.cover.v1.GetAlertsRequest"> & {
7743
7955
  * Use `create(GetAlertsRequestSchema)` to create a new message.
7744
7956
  */
7745
7957
  export const GetAlertsRequestSchema: GenMessage<GetAlertsRequest> = /*@__PURE__*/
7746
- messageDesc(file_cover_v1_cover, 230);
7958
+ messageDesc(file_cover_v1_cover, 240);
7747
7959
 
7748
7960
  /**
7749
7961
  * Response message for GetAlerts
@@ -7762,7 +7974,7 @@ export type GetAlertsResponse = Message<"blueapi.cover.v1.GetAlertsResponse"> &
7762
7974
  * Use `create(GetAlertsResponseSchema)` to create a new message.
7763
7975
  */
7764
7976
  export const GetAlertsResponseSchema: GenMessage<GetAlertsResponse> = /*@__PURE__*/
7765
- messageDesc(file_cover_v1_cover, 231);
7977
+ messageDesc(file_cover_v1_cover, 241);
7766
7978
 
7767
7979
  /**
7768
7980
  * Request message for CreateAlert
@@ -7816,7 +8028,7 @@ export type CreateAlertRequest = Message<"blueapi.cover.v1.CreateAlertRequest">
7816
8028
  * Use `create(CreateAlertRequestSchema)` to create a new message.
7817
8029
  */
7818
8030
  export const CreateAlertRequestSchema: GenMessage<CreateAlertRequest> = /*@__PURE__*/
7819
- messageDesc(file_cover_v1_cover, 232);
8031
+ messageDesc(file_cover_v1_cover, 242);
7820
8032
 
7821
8033
  /**
7822
8034
  * Response message for CreateAlert
@@ -7835,7 +8047,7 @@ export type CreateAlertResponse = Message<"blueapi.cover.v1.CreateAlertResponse"
7835
8047
  * Use `create(CreateAlertResponseSchema)` to create a new message.
7836
8048
  */
7837
8049
  export const CreateAlertResponseSchema: GenMessage<CreateAlertResponse> = /*@__PURE__*/
7838
- messageDesc(file_cover_v1_cover, 233);
8050
+ messageDesc(file_cover_v1_cover, 243);
7839
8051
 
7840
8052
  /**
7841
8053
  * Request message for GetAlertDetails
@@ -7856,7 +8068,7 @@ export type GetAlertDetailsRequest = Message<"blueapi.cover.v1.GetAlertDetailsRe
7856
8068
  * Use `create(GetAlertDetailsRequestSchema)` to create a new message.
7857
8069
  */
7858
8070
  export const GetAlertDetailsRequestSchema: GenMessage<GetAlertDetailsRequest> = /*@__PURE__*/
7859
- messageDesc(file_cover_v1_cover, 234);
8071
+ messageDesc(file_cover_v1_cover, 244);
7860
8072
 
7861
8073
  /**
7862
8074
  * Response message for GetAlertDetails
@@ -7875,7 +8087,7 @@ export type GetAlertDetailsResponse = Message<"blueapi.cover.v1.GetAlertDetailsR
7875
8087
  * Use `create(GetAlertDetailsResponseSchema)` to create a new message.
7876
8088
  */
7877
8089
  export const GetAlertDetailsResponseSchema: GenMessage<GetAlertDetailsResponse> = /*@__PURE__*/
7878
- messageDesc(file_cover_v1_cover, 235);
8090
+ messageDesc(file_cover_v1_cover, 245);
7879
8091
 
7880
8092
  /**
7881
8093
  * Request message for DeleteAlert
@@ -7896,7 +8108,7 @@ export type DeleteAlertRequest = Message<"blueapi.cover.v1.DeleteAlertRequest">
7896
8108
  * Use `create(DeleteAlertRequestSchema)` to create a new message.
7897
8109
  */
7898
8110
  export const DeleteAlertRequestSchema: GenMessage<DeleteAlertRequest> = /*@__PURE__*/
7899
- messageDesc(file_cover_v1_cover, 236);
8111
+ messageDesc(file_cover_v1_cover, 246);
7900
8112
 
7901
8113
  /**
7902
8114
  * Response message for DeleteAlert
@@ -7915,7 +8127,7 @@ export type DeleteAlertResponse = Message<"blueapi.cover.v1.DeleteAlertResponse"
7915
8127
  * Use `create(DeleteAlertResponseSchema)` to create a new message.
7916
8128
  */
7917
8129
  export const DeleteAlertResponseSchema: GenMessage<DeleteAlertResponse> = /*@__PURE__*/
7918
- messageDesc(file_cover_v1_cover, 237);
8130
+ messageDesc(file_cover_v1_cover, 247);
7919
8131
 
7920
8132
  /**
7921
8133
  * Request message for UpdateAlertDetails
@@ -7977,7 +8189,7 @@ export type UpdateAlertDetailsRequest = Message<"blueapi.cover.v1.UpdateAlertDet
7977
8189
  * Use `create(UpdateAlertDetailsRequestSchema)` to create a new message.
7978
8190
  */
7979
8191
  export const UpdateAlertDetailsRequestSchema: GenMessage<UpdateAlertDetailsRequest> = /*@__PURE__*/
7980
- messageDesc(file_cover_v1_cover, 238);
8192
+ messageDesc(file_cover_v1_cover, 248);
7981
8193
 
7982
8194
  /**
7983
8195
  * Response message for UpdateAlertDetails
@@ -7996,7 +8208,7 @@ export type UpdateAlertDetailsResponse = Message<"blueapi.cover.v1.UpdateAlertDe
7996
8208
  * Use `create(UpdateAlertDetailsResponseSchema)` to create a new message.
7997
8209
  */
7998
8210
  export const UpdateAlertDetailsResponseSchema: GenMessage<UpdateAlertDetailsResponse> = /*@__PURE__*/
7999
- messageDesc(file_cover_v1_cover, 239);
8211
+ messageDesc(file_cover_v1_cover, 249);
8000
8212
 
8001
8213
  /**
8002
8214
  * Request message for GetChannels
@@ -8018,7 +8230,7 @@ export type GetChannelsRequest = Message<"blueapi.cover.v1.GetChannelsRequest">
8018
8230
  * Use `create(GetChannelsRequestSchema)` to create a new message.
8019
8231
  */
8020
8232
  export const GetChannelsRequestSchema: GenMessage<GetChannelsRequest> = /*@__PURE__*/
8021
- messageDesc(file_cover_v1_cover, 240);
8233
+ messageDesc(file_cover_v1_cover, 250);
8022
8234
 
8023
8235
  /**
8024
8236
  * Response message for GetChannels
@@ -8037,7 +8249,7 @@ export type GetChannelsResponse = Message<"blueapi.cover.v1.GetChannelsResponse"
8037
8249
  * Use `create(GetChannelsResponseSchema)` to create a new message.
8038
8250
  */
8039
8251
  export const GetChannelsResponseSchema: GenMessage<GetChannelsResponse> = /*@__PURE__*/
8040
- messageDesc(file_cover_v1_cover, 241);
8252
+ messageDesc(file_cover_v1_cover, 251);
8041
8253
 
8042
8254
  /**
8043
8255
  * Request message for CreateChannel
@@ -8072,7 +8284,7 @@ export type CreateChannelRequest = Message<"blueapi.cover.v1.CreateChannelReques
8072
8284
  * Use `create(CreateChannelRequestSchema)` to create a new message.
8073
8285
  */
8074
8286
  export const CreateChannelRequestSchema: GenMessage<CreateChannelRequest> = /*@__PURE__*/
8075
- messageDesc(file_cover_v1_cover, 242);
8287
+ messageDesc(file_cover_v1_cover, 252);
8076
8288
 
8077
8289
  /**
8078
8290
  * Response message for CreateChannel
@@ -8091,7 +8303,7 @@ export type CreateChannelResponse = Message<"blueapi.cover.v1.CreateChannelRespo
8091
8303
  * Use `create(CreateChannelResponseSchema)` to create a new message.
8092
8304
  */
8093
8305
  export const CreateChannelResponseSchema: GenMessage<CreateChannelResponse> = /*@__PURE__*/
8094
- messageDesc(file_cover_v1_cover, 243);
8306
+ messageDesc(file_cover_v1_cover, 253);
8095
8307
 
8096
8308
  /**
8097
8309
  * Request message for GetChannelDetails
@@ -8112,7 +8324,7 @@ export type GetChannelDetailsRequest = Message<"blueapi.cover.v1.GetChannelDetai
8112
8324
  * Use `create(GetChannelDetailsRequestSchema)` to create a new message.
8113
8325
  */
8114
8326
  export const GetChannelDetailsRequestSchema: GenMessage<GetChannelDetailsRequest> = /*@__PURE__*/
8115
- messageDesc(file_cover_v1_cover, 244);
8327
+ messageDesc(file_cover_v1_cover, 254);
8116
8328
 
8117
8329
  /**
8118
8330
  * Response message for GetChannelDetails
@@ -8131,7 +8343,7 @@ export type GetChannelDetailsResponse = Message<"blueapi.cover.v1.GetChannelDeta
8131
8343
  * Use `create(GetChannelDetailsResponseSchema)` to create a new message.
8132
8344
  */
8133
8345
  export const GetChannelDetailsResponseSchema: GenMessage<GetChannelDetailsResponse> = /*@__PURE__*/
8134
- messageDesc(file_cover_v1_cover, 245);
8346
+ messageDesc(file_cover_v1_cover, 255);
8135
8347
 
8136
8348
  /**
8137
8349
  * Request message for DeleteChannel
@@ -8152,7 +8364,7 @@ export type DeleteChannelRequest = Message<"blueapi.cover.v1.DeleteChannelReques
8152
8364
  * Use `create(DeleteChannelRequestSchema)` to create a new message.
8153
8365
  */
8154
8366
  export const DeleteChannelRequestSchema: GenMessage<DeleteChannelRequest> = /*@__PURE__*/
8155
- messageDesc(file_cover_v1_cover, 246);
8367
+ messageDesc(file_cover_v1_cover, 256);
8156
8368
 
8157
8369
  /**
8158
8370
  * Response message for DeleteChannel
@@ -8171,7 +8383,7 @@ export type DeleteChannelResponse = Message<"blueapi.cover.v1.DeleteChannelRespo
8171
8383
  * Use `create(DeleteChannelResponseSchema)` to create a new message.
8172
8384
  */
8173
8385
  export const DeleteChannelResponseSchema: GenMessage<DeleteChannelResponse> = /*@__PURE__*/
8174
- messageDesc(file_cover_v1_cover, 247);
8386
+ messageDesc(file_cover_v1_cover, 257);
8175
8387
 
8176
8388
  /**
8177
8389
  * Request message for UpdateChannelDetails
@@ -8214,7 +8426,7 @@ export type UpdateChannelDetailsRequest = Message<"blueapi.cover.v1.UpdateChanne
8214
8426
  * Use `create(UpdateChannelDetailsRequestSchema)` to create a new message.
8215
8427
  */
8216
8428
  export const UpdateChannelDetailsRequestSchema: GenMessage<UpdateChannelDetailsRequest> = /*@__PURE__*/
8217
- messageDesc(file_cover_v1_cover, 248);
8429
+ messageDesc(file_cover_v1_cover, 258);
8218
8430
 
8219
8431
  /**
8220
8432
  * Response message for UpdateChannelDetails
@@ -8233,7 +8445,7 @@ export type UpdateChannelDetailsResponse = Message<"blueapi.cover.v1.UpdateChann
8233
8445
  * Use `create(UpdateChannelDetailsResponseSchema)` to create a new message.
8234
8446
  */
8235
8447
  export const UpdateChannelDetailsResponseSchema: GenMessage<UpdateChannelDetailsResponse> = /*@__PURE__*/
8236
- messageDesc(file_cover_v1_cover, 249);
8448
+ messageDesc(file_cover_v1_cover, 259);
8237
8449
 
8238
8450
  /**
8239
8451
  * Request message for GetDiscountRecomemendations
@@ -8275,7 +8487,7 @@ export type GetDiscountRecommendationsRequest = Message<"blueapi.cover.v1.GetDis
8275
8487
  * Use `create(GetDiscountRecommendationsRequestSchema)` to create a new message.
8276
8488
  */
8277
8489
  export const GetDiscountRecommendationsRequestSchema: GenMessage<GetDiscountRecommendationsRequest> = /*@__PURE__*/
8278
- messageDesc(file_cover_v1_cover, 250);
8490
+ messageDesc(file_cover_v1_cover, 260);
8279
8491
 
8280
8492
  /**
8281
8493
  * Response message for GetDiscountRecommendations
@@ -8304,7 +8516,7 @@ export type GetDiscountRecommendationsResponse = Message<"blueapi.cover.v1.GetDi
8304
8516
  * Use `create(GetDiscountRecommendationsResponseSchema)` to create a new message.
8305
8517
  */
8306
8518
  export const GetDiscountRecommendationsResponseSchema: GenMessage<GetDiscountRecommendationsResponse> = /*@__PURE__*/
8307
- messageDesc(file_cover_v1_cover, 251);
8519
+ messageDesc(file_cover_v1_cover, 261);
8308
8520
 
8309
8521
  /**
8310
8522
  * Request message for getting anomaly
@@ -8337,7 +8549,7 @@ export type GetAnomalyinCostGroupRequest = Message<"blueapi.cover.v1.GetAnomalyi
8337
8549
  * Use `create(GetAnomalyinCostGroupRequestSchema)` to create a new message.
8338
8550
  */
8339
8551
  export const GetAnomalyinCostGroupRequestSchema: GenMessage<GetAnomalyinCostGroupRequest> = /*@__PURE__*/
8340
- messageDesc(file_cover_v1_cover, 252);
8552
+ messageDesc(file_cover_v1_cover, 262);
8341
8553
 
8342
8554
  /**
8343
8555
  * Message response for anomaly detection
@@ -8416,7 +8628,7 @@ export type AnomalyData = Message<"blueapi.cover.v1.AnomalyData"> & {
8416
8628
  * Use `create(AnomalyDataSchema)` to create a new message.
8417
8629
  */
8418
8630
  export const AnomalyDataSchema: GenMessage<AnomalyData> = /*@__PURE__*/
8419
- messageDesc(file_cover_v1_cover, 253);
8631
+ messageDesc(file_cover_v1_cover, 263);
8420
8632
 
8421
8633
  /**
8422
8634
  * Request message for CreateDiscountExpirationAlert
@@ -8467,7 +8679,7 @@ export type CreateDiscountExpirationAlertRequest = Message<"blueapi.cover.v1.Cre
8467
8679
  * Use `create(CreateDiscountExpirationAlertRequestSchema)` to create a new message.
8468
8680
  */
8469
8681
  export const CreateDiscountExpirationAlertRequestSchema: GenMessage<CreateDiscountExpirationAlertRequest> = /*@__PURE__*/
8470
- messageDesc(file_cover_v1_cover, 254);
8682
+ messageDesc(file_cover_v1_cover, 264);
8471
8683
 
8472
8684
  /**
8473
8685
  * @generated from message blueapi.cover.v1.ManipulateDiscountExpirationAlertRequest
@@ -8486,7 +8698,7 @@ export type ManipulateDiscountExpirationAlertRequest = Message<"blueapi.cover.v1
8486
8698
  * Use `create(ManipulateDiscountExpirationAlertRequestSchema)` to create a new message.
8487
8699
  */
8488
8700
  export const ManipulateDiscountExpirationAlertRequestSchema: GenMessage<ManipulateDiscountExpirationAlertRequest> = /*@__PURE__*/
8489
- messageDesc(file_cover_v1_cover, 255);
8701
+ messageDesc(file_cover_v1_cover, 265);
8490
8702
 
8491
8703
  /**
8492
8704
  * @generated from message blueapi.cover.v1.UpdateDiscountExpirationAlertRequest
@@ -8540,7 +8752,7 @@ export type UpdateDiscountExpirationAlertRequest = Message<"blueapi.cover.v1.Upd
8540
8752
  * Use `create(UpdateDiscountExpirationAlertRequestSchema)` to create a new message.
8541
8753
  */
8542
8754
  export const UpdateDiscountExpirationAlertRequestSchema: GenMessage<UpdateDiscountExpirationAlertRequest> = /*@__PURE__*/
8543
- messageDesc(file_cover_v1_cover, 256);
8755
+ messageDesc(file_cover_v1_cover, 266);
8544
8756
 
8545
8757
  /**
8546
8758
  * @generated from message blueapi.cover.v1.DiscountExpiryAlertData
@@ -8592,7 +8804,7 @@ export type DiscountExpiryAlertData = Message<"blueapi.cover.v1.DiscountExpiryAl
8592
8804
  * Use `create(DiscountExpiryAlertDataSchema)` to create a new message.
8593
8805
  */
8594
8806
  export const DiscountExpiryAlertDataSchema: GenMessage<DiscountExpiryAlertData> = /*@__PURE__*/
8595
- messageDesc(file_cover_v1_cover, 257);
8807
+ messageDesc(file_cover_v1_cover, 267);
8596
8808
 
8597
8809
  /**
8598
8810
  * Request message for ListDiscountExpirationAlert
@@ -8607,7 +8819,7 @@ export type ListDiscountExpirationAlertRequest = Message<"blueapi.cover.v1.ListD
8607
8819
  * Use `create(ListDiscountExpirationAlertRequestSchema)` to create a new message.
8608
8820
  */
8609
8821
  export const ListDiscountExpirationAlertRequestSchema: GenMessage<ListDiscountExpirationAlertRequest> = /*@__PURE__*/
8610
- messageDesc(file_cover_v1_cover, 258);
8822
+ messageDesc(file_cover_v1_cover, 268);
8611
8823
 
8612
8824
  /**
8613
8825
  * Rquest message for CreateAnomalyAlert
@@ -8656,7 +8868,7 @@ export type CreateAnomalyAlertRequest = Message<"blueapi.cover.v1.CreateAnomalyA
8656
8868
  * Use `create(CreateAnomalyAlertRequestSchema)` to create a new message.
8657
8869
  */
8658
8870
  export const CreateAnomalyAlertRequestSchema: GenMessage<CreateAnomalyAlertRequest> = /*@__PURE__*/
8659
- messageDesc(file_cover_v1_cover, 259);
8871
+ messageDesc(file_cover_v1_cover, 269);
8660
8872
 
8661
8873
  /**
8662
8874
  * @generated from message blueapi.cover.v1.ManipulateAnomalyAlertRequest
@@ -8675,7 +8887,7 @@ export type ManipulateAnomalyAlertRequest = Message<"blueapi.cover.v1.Manipulate
8675
8887
  * Use `create(ManipulateAnomalyAlertRequestSchema)` to create a new message.
8676
8888
  */
8677
8889
  export const ManipulateAnomalyAlertRequestSchema: GenMessage<ManipulateAnomalyAlertRequest> = /*@__PURE__*/
8678
- messageDesc(file_cover_v1_cover, 260);
8890
+ messageDesc(file_cover_v1_cover, 270);
8679
8891
 
8680
8892
  /**
8681
8893
  * @generated from message blueapi.cover.v1.AnomalyAlertData
@@ -8722,7 +8934,7 @@ export type AnomalyAlertData = Message<"blueapi.cover.v1.AnomalyAlertData"> & {
8722
8934
  * Use `create(AnomalyAlertDataSchema)` to create a new message.
8723
8935
  */
8724
8936
  export const AnomalyAlertDataSchema: GenMessage<AnomalyAlertData> = /*@__PURE__*/
8725
- messageDesc(file_cover_v1_cover, 261);
8937
+ messageDesc(file_cover_v1_cover, 271);
8726
8938
 
8727
8939
  /**
8728
8940
  * Request message for ListAnomalyAlert
@@ -8737,7 +8949,7 @@ export type ListAnomalyAlertRequest = Message<"blueapi.cover.v1.ListAnomalyAlert
8737
8949
  * Use `create(ListAnomalyAlertRequestSchema)` to create a new message.
8738
8950
  */
8739
8951
  export const ListAnomalyAlertRequestSchema: GenMessage<ListAnomalyAlertRequest> = /*@__PURE__*/
8740
- messageDesc(file_cover_v1_cover, 262);
8952
+ messageDesc(file_cover_v1_cover, 272);
8741
8953
 
8742
8954
  /**
8743
8955
  * @generated from message blueapi.cover.v1.UpdateAnomalyAlertRequest
@@ -8791,7 +9003,7 @@ export type UpdateAnomalyAlertRequest = Message<"blueapi.cover.v1.UpdateAnomalyA
8791
9003
  * Use `create(UpdateAnomalyAlertRequestSchema)` to create a new message.
8792
9004
  */
8793
9005
  export const UpdateAnomalyAlertRequestSchema: GenMessage<UpdateAnomalyAlertRequest> = /*@__PURE__*/
8794
- messageDesc(file_cover_v1_cover, 263);
9006
+ messageDesc(file_cover_v1_cover, 273);
8795
9007
 
8796
9008
  /**
8797
9009
  * Request message for RegisterNewUser
@@ -8854,7 +9066,7 @@ export type RegisterNewUserRequest = Message<"blueapi.cover.v1.RegisterNewUserRe
8854
9066
  * Use `create(RegisterNewUserRequestSchema)` to create a new message.
8855
9067
  */
8856
9068
  export const RegisterNewUserRequestSchema: GenMessage<RegisterNewUserRequest> = /*@__PURE__*/
8857
- messageDesc(file_cover_v1_cover, 264);
9069
+ messageDesc(file_cover_v1_cover, 274);
8858
9070
 
8859
9071
  /**
8860
9072
  * @generated from message blueapi.cover.v1.RegisterNewUserResponse
@@ -8871,7 +9083,7 @@ export type RegisterNewUserResponse = Message<"blueapi.cover.v1.RegisterNewUserR
8871
9083
  * Use `create(RegisterNewUserResponseSchema)` to create a new message.
8872
9084
  */
8873
9085
  export const RegisterNewUserResponseSchema: GenMessage<RegisterNewUserResponse> = /*@__PURE__*/
8874
- messageDesc(file_cover_v1_cover, 265);
9086
+ messageDesc(file_cover_v1_cover, 275);
8875
9087
 
8876
9088
  /**
8877
9089
  * Request message for GetUserProfile
@@ -8892,7 +9104,7 @@ export type GetUserProfileRequest = Message<"blueapi.cover.v1.GetUserProfileRequ
8892
9104
  * Use `create(GetUserProfileRequestSchema)` to create a new message.
8893
9105
  */
8894
9106
  export const GetUserProfileRequestSchema: GenMessage<GetUserProfileRequest> = /*@__PURE__*/
8895
- messageDesc(file_cover_v1_cover, 266);
9107
+ messageDesc(file_cover_v1_cover, 276);
8896
9108
 
8897
9109
  /**
8898
9110
  * @generated from message blueapi.cover.v1.GetUserProfileResponse
@@ -8949,7 +9161,7 @@ export type GetUserProfileResponse = Message<"blueapi.cover.v1.GetUserProfileRes
8949
9161
  * Use `create(GetUserProfileResponseSchema)` to create a new message.
8950
9162
  */
8951
9163
  export const GetUserProfileResponseSchema: GenMessage<GetUserProfileResponse> = /*@__PURE__*/
8952
- messageDesc(file_cover_v1_cover, 267);
9164
+ messageDesc(file_cover_v1_cover, 277);
8953
9165
 
8954
9166
  /**
8955
9167
  * Request message for UpdateUserProfile
@@ -9005,7 +9217,7 @@ export type UpdateUserProfileRequest = Message<"blueapi.cover.v1.UpdateUserProfi
9005
9217
  * Use `create(UpdateUserProfileRequestSchema)` to create a new message.
9006
9218
  */
9007
9219
  export const UpdateUserProfileRequestSchema: GenMessage<UpdateUserProfileRequest> = /*@__PURE__*/
9008
- messageDesc(file_cover_v1_cover, 268);
9220
+ messageDesc(file_cover_v1_cover, 278);
9009
9221
 
9010
9222
  /**
9011
9223
  * @generated from message blueapi.cover.v1.UpdateUserProfileResponse
@@ -9057,7 +9269,7 @@ export type UpdateUserProfileResponse = Message<"blueapi.cover.v1.UpdateUserProf
9057
9269
  * Use `create(UpdateUserProfileResponseSchema)` to create a new message.
9058
9270
  */
9059
9271
  export const UpdateUserProfileResponseSchema: GenMessage<UpdateUserProfileResponse> = /*@__PURE__*/
9060
- messageDesc(file_cover_v1_cover, 269);
9272
+ messageDesc(file_cover_v1_cover, 279);
9061
9273
 
9062
9274
  /**
9063
9275
  * @generated from message blueapi.cover.v1.ListBudgetsRequest
@@ -9083,7 +9295,7 @@ export type ListBudgetsRequest = Message<"blueapi.cover.v1.ListBudgetsRequest">
9083
9295
  * Use `create(ListBudgetsRequestSchema)` to create a new message.
9084
9296
  */
9085
9297
  export const ListBudgetsRequestSchema: GenMessage<ListBudgetsRequest> = /*@__PURE__*/
9086
- messageDesc(file_cover_v1_cover, 270);
9298
+ messageDesc(file_cover_v1_cover, 280);
9087
9299
 
9088
9300
  /**
9089
9301
  * @generated from message blueapi.cover.v1.ListBudgetsResponse
@@ -9100,7 +9312,7 @@ export type ListBudgetsResponse = Message<"blueapi.cover.v1.ListBudgetsResponse"
9100
9312
  * Use `create(ListBudgetsResponseSchema)` to create a new message.
9101
9313
  */
9102
9314
  export const ListBudgetsResponseSchema: GenMessage<ListBudgetsResponse> = /*@__PURE__*/
9103
- messageDesc(file_cover_v1_cover, 271);
9315
+ messageDesc(file_cover_v1_cover, 281);
9104
9316
 
9105
9317
  /**
9106
9318
  * @generated from message blueapi.cover.v1.GetBudgetRequest
@@ -9119,7 +9331,7 @@ export type GetBudgetRequest = Message<"blueapi.cover.v1.GetBudgetRequest"> & {
9119
9331
  * Use `create(GetBudgetRequestSchema)` to create a new message.
9120
9332
  */
9121
9333
  export const GetBudgetRequestSchema: GenMessage<GetBudgetRequest> = /*@__PURE__*/
9122
- messageDesc(file_cover_v1_cover, 272);
9334
+ messageDesc(file_cover_v1_cover, 282);
9123
9335
 
9124
9336
  /**
9125
9337
  * @generated from message blueapi.cover.v1.GetBudgetResponse
@@ -9136,7 +9348,7 @@ export type GetBudgetResponse = Message<"blueapi.cover.v1.GetBudgetResponse"> &
9136
9348
  * Use `create(GetBudgetResponseSchema)` to create a new message.
9137
9349
  */
9138
9350
  export const GetBudgetResponseSchema: GenMessage<GetBudgetResponse> = /*@__PURE__*/
9139
- messageDesc(file_cover_v1_cover, 273);
9351
+ messageDesc(file_cover_v1_cover, 283);
9140
9352
 
9141
9353
  /**
9142
9354
  * @generated from message blueapi.cover.v1.CreateBudgetRequest
@@ -9153,7 +9365,7 @@ export type CreateBudgetRequest = Message<"blueapi.cover.v1.CreateBudgetRequest"
9153
9365
  * Use `create(CreateBudgetRequestSchema)` to create a new message.
9154
9366
  */
9155
9367
  export const CreateBudgetRequestSchema: GenMessage<CreateBudgetRequest> = /*@__PURE__*/
9156
- messageDesc(file_cover_v1_cover, 274);
9368
+ messageDesc(file_cover_v1_cover, 284);
9157
9369
 
9158
9370
  /**
9159
9371
  * @generated from message blueapi.cover.v1.CreateBudgetResponse
@@ -9170,7 +9382,7 @@ export type CreateBudgetResponse = Message<"blueapi.cover.v1.CreateBudgetRespons
9170
9382
  * Use `create(CreateBudgetResponseSchema)` to create a new message.
9171
9383
  */
9172
9384
  export const CreateBudgetResponseSchema: GenMessage<CreateBudgetResponse> = /*@__PURE__*/
9173
- messageDesc(file_cover_v1_cover, 275);
9385
+ messageDesc(file_cover_v1_cover, 285);
9174
9386
 
9175
9387
  /**
9176
9388
  * @generated from message blueapi.cover.v1.DeleteBudgetRequest
@@ -9189,7 +9401,7 @@ export type DeleteBudgetRequest = Message<"blueapi.cover.v1.DeleteBudgetRequest"
9189
9401
  * Use `create(DeleteBudgetRequestSchema)` to create a new message.
9190
9402
  */
9191
9403
  export const DeleteBudgetRequestSchema: GenMessage<DeleteBudgetRequest> = /*@__PURE__*/
9192
- messageDesc(file_cover_v1_cover, 276);
9404
+ messageDesc(file_cover_v1_cover, 286);
9193
9405
 
9194
9406
  /**
9195
9407
  * @generated from message blueapi.cover.v1.DeleteBudgetResponse
@@ -9206,7 +9418,7 @@ export type DeleteBudgetResponse = Message<"blueapi.cover.v1.DeleteBudgetRespons
9206
9418
  * Use `create(DeleteBudgetResponseSchema)` to create a new message.
9207
9419
  */
9208
9420
  export const DeleteBudgetResponseSchema: GenMessage<DeleteBudgetResponse> = /*@__PURE__*/
9209
- messageDesc(file_cover_v1_cover, 277);
9421
+ messageDesc(file_cover_v1_cover, 287);
9210
9422
 
9211
9423
  /**
9212
9424
  * @generated from message blueapi.cover.v1.UpdateBudgetRequest
@@ -9230,7 +9442,7 @@ export type UpdateBudgetRequest = Message<"blueapi.cover.v1.UpdateBudgetRequest"
9230
9442
  * Use `create(UpdateBudgetRequestSchema)` to create a new message.
9231
9443
  */
9232
9444
  export const UpdateBudgetRequestSchema: GenMessage<UpdateBudgetRequest> = /*@__PURE__*/
9233
- messageDesc(file_cover_v1_cover, 278);
9445
+ messageDesc(file_cover_v1_cover, 288);
9234
9446
 
9235
9447
  /**
9236
9448
  * @generated from message blueapi.cover.v1.UpdateBudgetResponse
@@ -9247,7 +9459,7 @@ export type UpdateBudgetResponse = Message<"blueapi.cover.v1.UpdateBudgetRespons
9247
9459
  * Use `create(UpdateBudgetResponseSchema)` to create a new message.
9248
9460
  */
9249
9461
  export const UpdateBudgetResponseSchema: GenMessage<UpdateBudgetResponse> = /*@__PURE__*/
9250
- messageDesc(file_cover_v1_cover, 279);
9462
+ messageDesc(file_cover_v1_cover, 289);
9251
9463
 
9252
9464
  /**
9253
9465
  * @generated from message blueapi.cover.v1.ResolveAWSMarketplaceTokenForOnboardingRequest
@@ -9264,7 +9476,7 @@ export type ResolveAWSMarketplaceTokenForOnboardingRequest = Message<"blueapi.co
9264
9476
  * Use `create(ResolveAWSMarketplaceTokenForOnboardingRequestSchema)` to create a new message.
9265
9477
  */
9266
9478
  export const ResolveAWSMarketplaceTokenForOnboardingRequestSchema: GenMessage<ResolveAWSMarketplaceTokenForOnboardingRequest> = /*@__PURE__*/
9267
- messageDesc(file_cover_v1_cover, 280);
9479
+ messageDesc(file_cover_v1_cover, 290);
9268
9480
 
9269
9481
  /**
9270
9482
  * @generated from message blueapi.cover.v1.ResolveAWSMarketplaceTokenForOnboardingResponse
@@ -9286,7 +9498,7 @@ export type ResolveAWSMarketplaceTokenForOnboardingResponse = Message<"blueapi.c
9286
9498
  * Use `create(ResolveAWSMarketplaceTokenForOnboardingResponseSchema)` to create a new message.
9287
9499
  */
9288
9500
  export const ResolveAWSMarketplaceTokenForOnboardingResponseSchema: GenMessage<ResolveAWSMarketplaceTokenForOnboardingResponse> = /*@__PURE__*/
9289
- messageDesc(file_cover_v1_cover, 281);
9501
+ messageDesc(file_cover_v1_cover, 291);
9290
9502
 
9291
9503
  /**
9292
9504
  * @generated from message blueapi.cover.v1.GetCustomerSubscriptionStatusRequest
@@ -9299,7 +9511,7 @@ export type GetCustomerSubscriptionStatusRequest = Message<"blueapi.cover.v1.Get
9299
9511
  * Use `create(GetCustomerSubscriptionStatusRequestSchema)` to create a new message.
9300
9512
  */
9301
9513
  export const GetCustomerSubscriptionStatusRequestSchema: GenMessage<GetCustomerSubscriptionStatusRequest> = /*@__PURE__*/
9302
- messageDesc(file_cover_v1_cover, 282);
9514
+ messageDesc(file_cover_v1_cover, 292);
9303
9515
 
9304
9516
  /**
9305
9517
  * @generated from message blueapi.cover.v1.GetCustomerSubscriptionStatusResponse
@@ -9361,7 +9573,7 @@ export type GetCustomerSubscriptionStatusResponse = Message<"blueapi.cover.v1.Ge
9361
9573
  * Use `create(GetCustomerSubscriptionStatusResponseSchema)` to create a new message.
9362
9574
  */
9363
9575
  export const GetCustomerSubscriptionStatusResponseSchema: GenMessage<GetCustomerSubscriptionStatusResponse> = /*@__PURE__*/
9364
- messageDesc(file_cover_v1_cover, 283);
9576
+ messageDesc(file_cover_v1_cover, 293);
9365
9577
 
9366
9578
  /**
9367
9579
  * @generated from message blueapi.cover.v1.CreateProfilingRequest
@@ -9413,7 +9625,7 @@ export type CreateProfilingRequest = Message<"blueapi.cover.v1.CreateProfilingRe
9413
9625
  * Use `create(CreateProfilingRequestSchema)` to create a new message.
9414
9626
  */
9415
9627
  export const CreateProfilingRequestSchema: GenMessage<CreateProfilingRequest> = /*@__PURE__*/
9416
- messageDesc(file_cover_v1_cover, 284);
9628
+ messageDesc(file_cover_v1_cover, 294);
9417
9629
 
9418
9630
  /**
9419
9631
  * @generated from message blueapi.cover.v1.CreateProfilingResponse
@@ -9426,7 +9638,7 @@ export type CreateProfilingResponse = Message<"blueapi.cover.v1.CreateProfilingR
9426
9638
  * Use `create(CreateProfilingResponseSchema)` to create a new message.
9427
9639
  */
9428
9640
  export const CreateProfilingResponseSchema: GenMessage<CreateProfilingResponse> = /*@__PURE__*/
9429
- messageDesc(file_cover_v1_cover, 285);
9641
+ messageDesc(file_cover_v1_cover, 295);
9430
9642
 
9431
9643
  /**
9432
9644
  * @generated from message blueapi.cover.v1.AddInfotoMarketplaceRequest
@@ -9443,7 +9655,7 @@ export type AddInfotoMarketplaceRequest = Message<"blueapi.cover.v1.AddInfotoMar
9443
9655
  * Use `create(AddInfotoMarketplaceRequestSchema)` to create a new message.
9444
9656
  */
9445
9657
  export const AddInfotoMarketplaceRequestSchema: GenMessage<AddInfotoMarketplaceRequest> = /*@__PURE__*/
9446
- messageDesc(file_cover_v1_cover, 286);
9658
+ messageDesc(file_cover_v1_cover, 296);
9447
9659
 
9448
9660
  /**
9449
9661
  * @generated from message blueapi.cover.v1.AddInfotoMarketplaceResponse
@@ -9456,7 +9668,7 @@ export type AddInfotoMarketplaceResponse = Message<"blueapi.cover.v1.AddInfotoMa
9456
9668
  * Use `create(AddInfotoMarketplaceResponseSchema)` to create a new message.
9457
9669
  */
9458
9670
  export const AddInfotoMarketplaceResponseSchema: GenMessage<AddInfotoMarketplaceResponse> = /*@__PURE__*/
9459
- messageDesc(file_cover_v1_cover, 287);
9671
+ messageDesc(file_cover_v1_cover, 297);
9460
9672
 
9461
9673
  /**
9462
9674
  * @generated from message blueapi.cover.v1.GetReportSummaryRequest
@@ -9503,7 +9715,7 @@ export type GetReportSummaryRequest = Message<"blueapi.cover.v1.GetReportSummary
9503
9715
  * Use `create(GetReportSummaryRequestSchema)` to create a new message.
9504
9716
  */
9505
9717
  export const GetReportSummaryRequestSchema: GenMessage<GetReportSummaryRequest> = /*@__PURE__*/
9506
- messageDesc(file_cover_v1_cover, 288);
9718
+ messageDesc(file_cover_v1_cover, 298);
9507
9719
 
9508
9720
  /**
9509
9721
  * @generated from message blueapi.cover.v1.GetReportSummaryResponse
@@ -9545,7 +9757,7 @@ export type GetReportSummaryResponse = Message<"blueapi.cover.v1.GetReportSummar
9545
9757
  * Use `create(GetReportSummaryResponseSchema)` to create a new message.
9546
9758
  */
9547
9759
  export const GetReportSummaryResponseSchema: GenMessage<GetReportSummaryResponse> = /*@__PURE__*/
9548
- messageDesc(file_cover_v1_cover, 289);
9760
+ messageDesc(file_cover_v1_cover, 299);
9549
9761
 
9550
9762
  /**
9551
9763
  * @generated from message blueapi.cover.v1.ListRecommendationRequest
@@ -9643,7 +9855,7 @@ export type ListRecommendationRequest = Message<"blueapi.cover.v1.ListRecommenda
9643
9855
  * Use `create(ListRecommendationRequestSchema)` to create a new message.
9644
9856
  */
9645
9857
  export const ListRecommendationRequestSchema: GenMessage<ListRecommendationRequest> = /*@__PURE__*/
9646
- messageDesc(file_cover_v1_cover, 290);
9858
+ messageDesc(file_cover_v1_cover, 300);
9647
9859
 
9648
9860
  /**
9649
9861
  * @generated from message blueapi.cover.v1.ListRecommendationV2Request
@@ -9682,7 +9894,7 @@ export type ListRecommendationV2Request = Message<"blueapi.cover.v1.ListRecommen
9682
9894
  * Use `create(ListRecommendationV2RequestSchema)` to create a new message.
9683
9895
  */
9684
9896
  export const ListRecommendationV2RequestSchema: GenMessage<ListRecommendationV2Request> = /*@__PURE__*/
9685
- messageDesc(file_cover_v1_cover, 291);
9897
+ messageDesc(file_cover_v1_cover, 301);
9686
9898
 
9687
9899
  /**
9688
9900
  * @generated from message blueapi.cover.v1.ListRecommendationV2Request.RateSettings
@@ -9729,7 +9941,7 @@ export type ListRecommendationV2Request_RateSettings = Message<"blueapi.cover.v1
9729
9941
  * Use `create(ListRecommendationV2Request_RateSettingsSchema)` to create a new message.
9730
9942
  */
9731
9943
  export const ListRecommendationV2Request_RateSettingsSchema: GenMessage<ListRecommendationV2Request_RateSettings> = /*@__PURE__*/
9732
- messageDesc(file_cover_v1_cover, 291, 0);
9944
+ messageDesc(file_cover_v1_cover, 301, 0);
9733
9945
 
9734
9946
  /**
9735
9947
  * @generated from message blueapi.cover.v1.ListRecommendationResponse
@@ -9871,7 +10083,7 @@ export type ListRecommendationResponse = Message<"blueapi.cover.v1.ListRecommend
9871
10083
  * Use `create(ListRecommendationResponseSchema)` to create a new message.
9872
10084
  */
9873
10085
  export const ListRecommendationResponseSchema: GenMessage<ListRecommendationResponse> = /*@__PURE__*/
9874
- messageDesc(file_cover_v1_cover, 292);
10086
+ messageDesc(file_cover_v1_cover, 302);
9875
10087
 
9876
10088
  /**
9877
10089
  * @generated from message blueapi.cover.v1.ListRecommendationResponse.PurchaseOption
@@ -9928,7 +10140,7 @@ export type ListRecommendationResponse_PurchaseOption = Message<"blueapi.cover.v
9928
10140
  * Use `create(ListRecommendationResponse_PurchaseOptionSchema)` to create a new message.
9929
10141
  */
9930
10142
  export const ListRecommendationResponse_PurchaseOptionSchema: GenMessage<ListRecommendationResponse_PurchaseOption> = /*@__PURE__*/
9931
- messageDesc(file_cover_v1_cover, 292, 0);
10143
+ messageDesc(file_cover_v1_cover, 302, 0);
9932
10144
 
9933
10145
  /**
9934
10146
  * @generated from message blueapi.cover.v1.GetRecommendationRequest
@@ -9957,7 +10169,7 @@ export type GetRecommendationRequest = Message<"blueapi.cover.v1.GetRecommendati
9957
10169
  * Use `create(GetRecommendationRequestSchema)` to create a new message.
9958
10170
  */
9959
10171
  export const GetRecommendationRequestSchema: GenMessage<GetRecommendationRequest> = /*@__PURE__*/
9960
- messageDesc(file_cover_v1_cover, 293);
10172
+ messageDesc(file_cover_v1_cover, 303);
9961
10173
 
9962
10174
  /**
9963
10175
  * @generated from message blueapi.cover.v1.GetRecommendationResponse
@@ -9974,7 +10186,7 @@ export type GetRecommendationResponse = Message<"blueapi.cover.v1.GetRecommendat
9974
10186
  * Use `create(GetRecommendationResponseSchema)` to create a new message.
9975
10187
  */
9976
10188
  export const GetRecommendationResponseSchema: GenMessage<GetRecommendationResponse> = /*@__PURE__*/
9977
- messageDesc(file_cover_v1_cover, 294);
10189
+ messageDesc(file_cover_v1_cover, 304);
9978
10190
 
9979
10191
  /**
9980
10192
  * @generated from message blueapi.cover.v1.ExecuteOptimizationRequest
@@ -9996,7 +10208,7 @@ export type ExecuteOptimizationRequest = Message<"blueapi.cover.v1.ExecuteOptimi
9996
10208
  * Use `create(ExecuteOptimizationRequestSchema)` to create a new message.
9997
10209
  */
9998
10210
  export const ExecuteOptimizationRequestSchema: GenMessage<ExecuteOptimizationRequest> = /*@__PURE__*/
9999
- messageDesc(file_cover_v1_cover, 295);
10211
+ messageDesc(file_cover_v1_cover, 305);
10000
10212
 
10001
10213
  /**
10002
10214
  * @generated from message blueapi.cover.v1.ExecuteOptimizationResponse
@@ -10031,7 +10243,7 @@ export type ExecuteOptimizationResponse = Message<"blueapi.cover.v1.ExecuteOptim
10031
10243
  * Use `create(ExecuteOptimizationResponseSchema)` to create a new message.
10032
10244
  */
10033
10245
  export const ExecuteOptimizationResponseSchema: GenMessage<ExecuteOptimizationResponse> = /*@__PURE__*/
10034
- messageDesc(file_cover_v1_cover, 296);
10246
+ messageDesc(file_cover_v1_cover, 306);
10035
10247
 
10036
10248
  /**
10037
10249
  * @generated from message blueapi.cover.v1.ExecuteOptimizationResponse.AWSOption
@@ -10058,7 +10270,7 @@ export type ExecuteOptimizationResponse_AWSOption = Message<"blueapi.cover.v1.Ex
10058
10270
  * Use `create(ExecuteOptimizationResponse_AWSOptionSchema)` to create a new message.
10059
10271
  */
10060
10272
  export const ExecuteOptimizationResponse_AWSOptionSchema: GenMessage<ExecuteOptimizationResponse_AWSOption> = /*@__PURE__*/
10061
- messageDesc(file_cover_v1_cover, 296, 0);
10273
+ messageDesc(file_cover_v1_cover, 306, 0);
10062
10274
 
10063
10275
  /**
10064
10276
  * @generated from message blueapi.cover.v1.ExecuteOptimizationResponse.GCPOption
@@ -10071,7 +10283,7 @@ export type ExecuteOptimizationResponse_GCPOption = Message<"blueapi.cover.v1.Ex
10071
10283
  * Use `create(ExecuteOptimizationResponse_GCPOptionSchema)` to create a new message.
10072
10284
  */
10073
10285
  export const ExecuteOptimizationResponse_GCPOptionSchema: GenMessage<ExecuteOptimizationResponse_GCPOption> = /*@__PURE__*/
10074
- messageDesc(file_cover_v1_cover, 296, 1);
10286
+ messageDesc(file_cover_v1_cover, 306, 1);
10075
10287
 
10076
10288
  /**
10077
10289
  * @generated from message blueapi.cover.v1.ExecuteOptimizationResponse.AzureCSPOption
@@ -10084,7 +10296,7 @@ export type ExecuteOptimizationResponse_AzureCSPOption = Message<"blueapi.cover.
10084
10296
  * Use `create(ExecuteOptimizationResponse_AzureCSPOptionSchema)` to create a new message.
10085
10297
  */
10086
10298
  export const ExecuteOptimizationResponse_AzureCSPOptionSchema: GenMessage<ExecuteOptimizationResponse_AzureCSPOption> = /*@__PURE__*/
10087
- messageDesc(file_cover_v1_cover, 296, 2);
10299
+ messageDesc(file_cover_v1_cover, 306, 2);
10088
10300
 
10089
10301
  /**
10090
10302
  * @generated from message blueapi.cover.v1.MarkAsExecutedRequest
@@ -10101,7 +10313,7 @@ export type MarkAsExecutedRequest = Message<"blueapi.cover.v1.MarkAsExecutedRequ
10101
10313
  * Use `create(MarkAsExecutedRequestSchema)` to create a new message.
10102
10314
  */
10103
10315
  export const MarkAsExecutedRequestSchema: GenMessage<MarkAsExecutedRequest> = /*@__PURE__*/
10104
- messageDesc(file_cover_v1_cover, 297);
10316
+ messageDesc(file_cover_v1_cover, 307);
10105
10317
 
10106
10318
  /**
10107
10319
  * @generated from message blueapi.cover.v1.MarkAsExecutedResponse
@@ -10114,7 +10326,7 @@ export type MarkAsExecutedResponse = Message<"blueapi.cover.v1.MarkAsExecutedRes
10114
10326
  * Use `create(MarkAsExecutedResponseSchema)` to create a new message.
10115
10327
  */
10116
10328
  export const MarkAsExecutedResponseSchema: GenMessage<MarkAsExecutedResponse> = /*@__PURE__*/
10117
- messageDesc(file_cover_v1_cover, 298);
10329
+ messageDesc(file_cover_v1_cover, 308);
10118
10330
 
10119
10331
  /**
10120
10332
  * @generated from message blueapi.cover.v1.UndoExecutedRecommendationRequest
@@ -10131,7 +10343,7 @@ export type UndoExecutedRecommendationRequest = Message<"blueapi.cover.v1.UndoEx
10131
10343
  * Use `create(UndoExecutedRecommendationRequestSchema)` to create a new message.
10132
10344
  */
10133
10345
  export const UndoExecutedRecommendationRequestSchema: GenMessage<UndoExecutedRecommendationRequest> = /*@__PURE__*/
10134
- messageDesc(file_cover_v1_cover, 299);
10346
+ messageDesc(file_cover_v1_cover, 309);
10135
10347
 
10136
10348
  /**
10137
10349
  * @generated from message blueapi.cover.v1.UndoExecutedRecommendationResponse
@@ -10144,7 +10356,7 @@ export type UndoExecutedRecommendationResponse = Message<"blueapi.cover.v1.UndoE
10144
10356
  * Use `create(UndoExecutedRecommendationResponseSchema)` to create a new message.
10145
10357
  */
10146
10358
  export const UndoExecutedRecommendationResponseSchema: GenMessage<UndoExecutedRecommendationResponse> = /*@__PURE__*/
10147
- messageDesc(file_cover_v1_cover, 300);
10359
+ messageDesc(file_cover_v1_cover, 310);
10148
10360
 
10149
10361
  /**
10150
10362
  * @generated from message blueapi.cover.v1.OptimizationHistoryRequest
@@ -10205,7 +10417,7 @@ export type OptimizationHistoryRequest = Message<"blueapi.cover.v1.OptimizationH
10205
10417
  * Use `create(OptimizationHistoryRequestSchema)` to create a new message.
10206
10418
  */
10207
10419
  export const OptimizationHistoryRequestSchema: GenMessage<OptimizationHistoryRequest> = /*@__PURE__*/
10208
- messageDesc(file_cover_v1_cover, 301);
10420
+ messageDesc(file_cover_v1_cover, 311);
10209
10421
 
10210
10422
  /**
10211
10423
  * @generated from message blueapi.cover.v1.OptimizationHistoryResponse
@@ -10222,7 +10434,7 @@ export type OptimizationHistoryResponse = Message<"blueapi.cover.v1.Optimization
10222
10434
  * Use `create(OptimizationHistoryResponseSchema)` to create a new message.
10223
10435
  */
10224
10436
  export const OptimizationHistoryResponseSchema: GenMessage<OptimizationHistoryResponse> = /*@__PURE__*/
10225
- messageDesc(file_cover_v1_cover, 302);
10437
+ messageDesc(file_cover_v1_cover, 312);
10226
10438
 
10227
10439
  /**
10228
10440
  * @generated from message blueapi.cover.v1.SetCostGroupEventIndicatorRequest
@@ -10255,7 +10467,7 @@ export type SetCostGroupEventIndicatorRequest = Message<"blueapi.cover.v1.SetCos
10255
10467
  * Use `create(SetCostGroupEventIndicatorRequestSchema)` to create a new message.
10256
10468
  */
10257
10469
  export const SetCostGroupEventIndicatorRequestSchema: GenMessage<SetCostGroupEventIndicatorRequest> = /*@__PURE__*/
10258
- messageDesc(file_cover_v1_cover, 303);
10470
+ messageDesc(file_cover_v1_cover, 313);
10259
10471
 
10260
10472
  /**
10261
10473
  * @generated from message blueapi.cover.v1.SetCostGroupEventIndicatorResponse
@@ -10277,7 +10489,7 @@ export type SetCostGroupEventIndicatorResponse = Message<"blueapi.cover.v1.SetCo
10277
10489
  * Use `create(SetCostGroupEventIndicatorResponseSchema)` to create a new message.
10278
10490
  */
10279
10491
  export const SetCostGroupEventIndicatorResponseSchema: GenMessage<SetCostGroupEventIndicatorResponse> = /*@__PURE__*/
10280
- messageDesc(file_cover_v1_cover, 304);
10492
+ messageDesc(file_cover_v1_cover, 314);
10281
10493
 
10282
10494
  /**
10283
10495
  * @generated from message blueapi.cover.v1.SetCostGroupAnomalyOptionsRequest
@@ -10317,7 +10529,7 @@ export type SetCostGroupAnomalyOptionsRequest = Message<"blueapi.cover.v1.SetCos
10317
10529
  * Use `create(SetCostGroupAnomalyOptionsRequestSchema)` to create a new message.
10318
10530
  */
10319
10531
  export const SetCostGroupAnomalyOptionsRequestSchema: GenMessage<SetCostGroupAnomalyOptionsRequest> = /*@__PURE__*/
10320
- messageDesc(file_cover_v1_cover, 305);
10532
+ messageDesc(file_cover_v1_cover, 315);
10321
10533
 
10322
10534
  /**
10323
10535
  * @generated from message blueapi.cover.v1.SetCostGroupAnomalyOptionsResponse
@@ -10339,7 +10551,7 @@ export type SetCostGroupAnomalyOptionsResponse = Message<"blueapi.cover.v1.SetCo
10339
10551
  * Use `create(SetCostGroupAnomalyOptionsResponseSchema)` to create a new message.
10340
10552
  */
10341
10553
  export const SetCostGroupAnomalyOptionsResponseSchema: GenMessage<SetCostGroupAnomalyOptionsResponse> = /*@__PURE__*/
10342
- messageDesc(file_cover_v1_cover, 306);
10554
+ messageDesc(file_cover_v1_cover, 316);
10343
10555
 
10344
10556
  /**
10345
10557
  * @generated from message blueapi.cover.v1.SetOrgFiscalMonthRequest
@@ -10358,7 +10570,7 @@ export type SetOrgFiscalMonthRequest = Message<"blueapi.cover.v1.SetOrgFiscalMon
10358
10570
  * Use `create(SetOrgFiscalMonthRequestSchema)` to create a new message.
10359
10571
  */
10360
10572
  export const SetOrgFiscalMonthRequestSchema: GenMessage<SetOrgFiscalMonthRequest> = /*@__PURE__*/
10361
- messageDesc(file_cover_v1_cover, 307);
10573
+ messageDesc(file_cover_v1_cover, 317);
10362
10574
 
10363
10575
  /**
10364
10576
  * @generated from message blueapi.cover.v1.SetOrgFiscalMonthResponse
@@ -10375,7 +10587,7 @@ export type SetOrgFiscalMonthResponse = Message<"blueapi.cover.v1.SetOrgFiscalMo
10375
10587
  * Use `create(SetOrgFiscalMonthResponseSchema)` to create a new message.
10376
10588
  */
10377
10589
  export const SetOrgFiscalMonthResponseSchema: GenMessage<SetOrgFiscalMonthResponse> = /*@__PURE__*/
10378
- messageDesc(file_cover_v1_cover, 308);
10590
+ messageDesc(file_cover_v1_cover, 318);
10379
10591
 
10380
10592
  /**
10381
10593
  * @generated from message blueapi.cover.v1.GetOrgFiscalMonthRequest
@@ -10388,7 +10600,7 @@ export type GetOrgFiscalMonthRequest = Message<"blueapi.cover.v1.GetOrgFiscalMon
10388
10600
  * Use `create(GetOrgFiscalMonthRequestSchema)` to create a new message.
10389
10601
  */
10390
10602
  export const GetOrgFiscalMonthRequestSchema: GenMessage<GetOrgFiscalMonthRequest> = /*@__PURE__*/
10391
- messageDesc(file_cover_v1_cover, 309);
10603
+ messageDesc(file_cover_v1_cover, 319);
10392
10604
 
10393
10605
  /**
10394
10606
  * @generated from message blueapi.cover.v1.GetOrgFiscalMonthResponse
@@ -10410,7 +10622,7 @@ export type GetOrgFiscalMonthResponse = Message<"blueapi.cover.v1.GetOrgFiscalMo
10410
10622
  * Use `create(GetOrgFiscalMonthResponseSchema)` to create a new message.
10411
10623
  */
10412
10624
  export const GetOrgFiscalMonthResponseSchema: GenMessage<GetOrgFiscalMonthResponse> = /*@__PURE__*/
10413
- messageDesc(file_cover_v1_cover, 310);
10625
+ messageDesc(file_cover_v1_cover, 320);
10414
10626
 
10415
10627
  /**
10416
10628
  * @generated from message blueapi.cover.v1.TransferOrganizationRequest
@@ -10450,7 +10662,7 @@ export type TransferOrganizationRequest = Message<"blueapi.cover.v1.TransferOrga
10450
10662
  * Use `create(TransferOrganizationRequestSchema)` to create a new message.
10451
10663
  */
10452
10664
  export const TransferOrganizationRequestSchema: GenMessage<TransferOrganizationRequest> = /*@__PURE__*/
10453
- messageDesc(file_cover_v1_cover, 311);
10665
+ messageDesc(file_cover_v1_cover, 321);
10454
10666
 
10455
10667
  /**
10456
10668
  * @generated from message blueapi.cover.v1.TransferOrganizationResponse
@@ -10467,7 +10679,7 @@ export type TransferOrganizationResponse = Message<"blueapi.cover.v1.TransferOrg
10467
10679
  * Use `create(TransferOrganizationResponseSchema)` to create a new message.
10468
10680
  */
10469
10681
  export const TransferOrganizationResponseSchema: GenMessage<TransferOrganizationResponse> = /*@__PURE__*/
10470
- messageDesc(file_cover_v1_cover, 312);
10682
+ messageDesc(file_cover_v1_cover, 322);
10471
10683
 
10472
10684
  /**
10473
10685
  * @generated from message blueapi.cover.v1.UpdateCostGroupCreationUIRequest
@@ -10484,7 +10696,7 @@ export type UpdateCostGroupCreationUIRequest = Message<"blueapi.cover.v1.UpdateC
10484
10696
  * Use `create(UpdateCostGroupCreationUIRequestSchema)` to create a new message.
10485
10697
  */
10486
10698
  export const UpdateCostGroupCreationUIRequestSchema: GenMessage<UpdateCostGroupCreationUIRequest> = /*@__PURE__*/
10487
- messageDesc(file_cover_v1_cover, 313);
10699
+ messageDesc(file_cover_v1_cover, 323);
10488
10700
 
10489
10701
  /**
10490
10702
  * @generated from message blueapi.cover.v1.UpdateCostGroupCreationUIResponse
@@ -10501,7 +10713,7 @@ export type UpdateCostGroupCreationUIResponse = Message<"blueapi.cover.v1.Update
10501
10713
  * Use `create(UpdateCostGroupCreationUIResponseSchema)` to create a new message.
10502
10714
  */
10503
10715
  export const UpdateCostGroupCreationUIResponseSchema: GenMessage<UpdateCostGroupCreationUIResponse> = /*@__PURE__*/
10504
- messageDesc(file_cover_v1_cover, 314);
10716
+ messageDesc(file_cover_v1_cover, 324);
10505
10717
 
10506
10718
  /**
10507
10719
  * @generated from message blueapi.cover.v1.ListUnitTypesRequest
@@ -10514,7 +10726,7 @@ export type ListUnitTypesRequest = Message<"blueapi.cover.v1.ListUnitTypesReques
10514
10726
  * Use `create(ListUnitTypesRequestSchema)` to create a new message.
10515
10727
  */
10516
10728
  export const ListUnitTypesRequestSchema: GenMessage<ListUnitTypesRequest> = /*@__PURE__*/
10517
- messageDesc(file_cover_v1_cover, 315);
10729
+ messageDesc(file_cover_v1_cover, 325);
10518
10730
 
10519
10731
  /**
10520
10732
  * @generated from message blueapi.cover.v1.ListUnitTypesResponse
@@ -10531,7 +10743,7 @@ export type ListUnitTypesResponse = Message<"blueapi.cover.v1.ListUnitTypesRespo
10531
10743
  * Use `create(ListUnitTypesResponseSchema)` to create a new message.
10532
10744
  */
10533
10745
  export const ListUnitTypesResponseSchema: GenMessage<ListUnitTypesResponse> = /*@__PURE__*/
10534
- messageDesc(file_cover_v1_cover, 316);
10746
+ messageDesc(file_cover_v1_cover, 326);
10535
10747
 
10536
10748
  /**
10537
10749
  * @generated from message blueapi.cover.v1.CreateUnitTypeRequest
@@ -10563,7 +10775,7 @@ export type CreateUnitTypeRequest = Message<"blueapi.cover.v1.CreateUnitTypeRequ
10563
10775
  * Use `create(CreateUnitTypeRequestSchema)` to create a new message.
10564
10776
  */
10565
10777
  export const CreateUnitTypeRequestSchema: GenMessage<CreateUnitTypeRequest> = /*@__PURE__*/
10566
- messageDesc(file_cover_v1_cover, 317);
10778
+ messageDesc(file_cover_v1_cover, 327);
10567
10779
 
10568
10780
  /**
10569
10781
  * @generated from message blueapi.cover.v1.CreateUnitTypeResponse
@@ -10580,7 +10792,7 @@ export type CreateUnitTypeResponse = Message<"blueapi.cover.v1.CreateUnitTypeRes
10580
10792
  * Use `create(CreateUnitTypeResponseSchema)` to create a new message.
10581
10793
  */
10582
10794
  export const CreateUnitTypeResponseSchema: GenMessage<CreateUnitTypeResponse> = /*@__PURE__*/
10583
- messageDesc(file_cover_v1_cover, 318);
10795
+ messageDesc(file_cover_v1_cover, 328);
10584
10796
 
10585
10797
  /**
10586
10798
  * @generated from message blueapi.cover.v1.GetUnitTypeRequest
@@ -10599,7 +10811,7 @@ export type GetUnitTypeRequest = Message<"blueapi.cover.v1.GetUnitTypeRequest">
10599
10811
  * Use `create(GetUnitTypeRequestSchema)` to create a new message.
10600
10812
  */
10601
10813
  export const GetUnitTypeRequestSchema: GenMessage<GetUnitTypeRequest> = /*@__PURE__*/
10602
- messageDesc(file_cover_v1_cover, 319);
10814
+ messageDesc(file_cover_v1_cover, 329);
10603
10815
 
10604
10816
  /**
10605
10817
  * @generated from message blueapi.cover.v1.GetUnitTypeResponse
@@ -10616,7 +10828,7 @@ export type GetUnitTypeResponse = Message<"blueapi.cover.v1.GetUnitTypeResponse"
10616
10828
  * Use `create(GetUnitTypeResponseSchema)` to create a new message.
10617
10829
  */
10618
10830
  export const GetUnitTypeResponseSchema: GenMessage<GetUnitTypeResponse> = /*@__PURE__*/
10619
- messageDesc(file_cover_v1_cover, 320);
10831
+ messageDesc(file_cover_v1_cover, 330);
10620
10832
 
10621
10833
  /**
10622
10834
  * @generated from message blueapi.cover.v1.UpdateUnitTypeRequest
@@ -10663,7 +10875,7 @@ export type UpdateUnitTypeRequest = Message<"blueapi.cover.v1.UpdateUnitTypeRequ
10663
10875
  * Use `create(UpdateUnitTypeRequestSchema)` to create a new message.
10664
10876
  */
10665
10877
  export const UpdateUnitTypeRequestSchema: GenMessage<UpdateUnitTypeRequest> = /*@__PURE__*/
10666
- messageDesc(file_cover_v1_cover, 321);
10878
+ messageDesc(file_cover_v1_cover, 331);
10667
10879
 
10668
10880
  /**
10669
10881
  * @generated from message blueapi.cover.v1.UpdateUnitTypeResponse
@@ -10680,7 +10892,7 @@ export type UpdateUnitTypeResponse = Message<"blueapi.cover.v1.UpdateUnitTypeRes
10680
10892
  * Use `create(UpdateUnitTypeResponseSchema)` to create a new message.
10681
10893
  */
10682
10894
  export const UpdateUnitTypeResponseSchema: GenMessage<UpdateUnitTypeResponse> = /*@__PURE__*/
10683
- messageDesc(file_cover_v1_cover, 322);
10895
+ messageDesc(file_cover_v1_cover, 332);
10684
10896
 
10685
10897
  /**
10686
10898
  * @generated from message blueapi.cover.v1.DeleteUnitTypeRequest
@@ -10699,7 +10911,7 @@ export type DeleteUnitTypeRequest = Message<"blueapi.cover.v1.DeleteUnitTypeRequ
10699
10911
  * Use `create(DeleteUnitTypeRequestSchema)` to create a new message.
10700
10912
  */
10701
10913
  export const DeleteUnitTypeRequestSchema: GenMessage<DeleteUnitTypeRequest> = /*@__PURE__*/
10702
- messageDesc(file_cover_v1_cover, 323);
10914
+ messageDesc(file_cover_v1_cover, 333);
10703
10915
 
10704
10916
  /**
10705
10917
  * @generated from message blueapi.cover.v1.DeleteUnitTypeResponse
@@ -10716,7 +10928,7 @@ export type DeleteUnitTypeResponse = Message<"blueapi.cover.v1.DeleteUnitTypeRes
10716
10928
  * Use `create(DeleteUnitTypeResponseSchema)` to create a new message.
10717
10929
  */
10718
10930
  export const DeleteUnitTypeResponseSchema: GenMessage<DeleteUnitTypeResponse> = /*@__PURE__*/
10719
- messageDesc(file_cover_v1_cover, 324);
10931
+ messageDesc(file_cover_v1_cover, 334);
10720
10932
 
10721
10933
  /**
10722
10934
  * @generated from message blueapi.cover.v1.MergeUnitsRequest
@@ -10743,7 +10955,7 @@ export type MergeUnitsRequest = Message<"blueapi.cover.v1.MergeUnitsRequest"> &
10743
10955
  * Use `create(MergeUnitsRequestSchema)` to create a new message.
10744
10956
  */
10745
10957
  export const MergeUnitsRequestSchema: GenMessage<MergeUnitsRequest> = /*@__PURE__*/
10746
- messageDesc(file_cover_v1_cover, 325);
10958
+ messageDesc(file_cover_v1_cover, 335);
10747
10959
 
10748
10960
  /**
10749
10961
  * @generated from message blueapi.cover.v1.MergeUnitsResponse
@@ -10760,7 +10972,7 @@ export type MergeUnitsResponse = Message<"blueapi.cover.v1.MergeUnitsResponse">
10760
10972
  * Use `create(MergeUnitsResponseSchema)` to create a new message.
10761
10973
  */
10762
10974
  export const MergeUnitsResponseSchema: GenMessage<MergeUnitsResponse> = /*@__PURE__*/
10763
- messageDesc(file_cover_v1_cover, 326);
10975
+ messageDesc(file_cover_v1_cover, 336);
10764
10976
 
10765
10977
  /**
10766
10978
  * @generated from message blueapi.cover.v1.ListSuggestedUnitsRequest
@@ -10773,7 +10985,7 @@ export type ListSuggestedUnitsRequest = Message<"blueapi.cover.v1.ListSuggestedU
10773
10985
  * Use `create(ListSuggestedUnitsRequestSchema)` to create a new message.
10774
10986
  */
10775
10987
  export const ListSuggestedUnitsRequestSchema: GenMessage<ListSuggestedUnitsRequest> = /*@__PURE__*/
10776
- messageDesc(file_cover_v1_cover, 327);
10988
+ messageDesc(file_cover_v1_cover, 337);
10777
10989
 
10778
10990
  /**
10779
10991
  * @generated from message blueapi.cover.v1.ListSuggestedUnitsResponse
@@ -10790,7 +11002,7 @@ export type ListSuggestedUnitsResponse = Message<"blueapi.cover.v1.ListSuggested
10790
11002
  * Use `create(ListSuggestedUnitsResponseSchema)` to create a new message.
10791
11003
  */
10792
11004
  export const ListSuggestedUnitsResponseSchema: GenMessage<ListSuggestedUnitsResponse> = /*@__PURE__*/
10793
- messageDesc(file_cover_v1_cover, 328);
11005
+ messageDesc(file_cover_v1_cover, 338);
10794
11006
 
10795
11007
  /**
10796
11008
  * @generated from message blueapi.cover.v1.MergeSuggestedUnitsRequest
@@ -10822,7 +11034,7 @@ export type MergeSuggestedUnitsRequest = Message<"blueapi.cover.v1.MergeSuggeste
10822
11034
  * Use `create(MergeSuggestedUnitsRequestSchema)` to create a new message.
10823
11035
  */
10824
11036
  export const MergeSuggestedUnitsRequestSchema: GenMessage<MergeSuggestedUnitsRequest> = /*@__PURE__*/
10825
- messageDesc(file_cover_v1_cover, 329);
11037
+ messageDesc(file_cover_v1_cover, 339);
10826
11038
 
10827
11039
  /**
10828
11040
  * @generated from message blueapi.cover.v1.MergeSuggestedUnitsResponse
@@ -10839,7 +11051,7 @@ export type MergeSuggestedUnitsResponse = Message<"blueapi.cover.v1.MergeSuggest
10839
11051
  * Use `create(MergeSuggestedUnitsResponseSchema)` to create a new message.
10840
11052
  */
10841
11053
  export const MergeSuggestedUnitsResponseSchema: GenMessage<MergeSuggestedUnitsResponse> = /*@__PURE__*/
10842
- messageDesc(file_cover_v1_cover, 330);
11054
+ messageDesc(file_cover_v1_cover, 340);
10843
11055
 
10844
11056
  /**
10845
11057
  * @generated from message blueapi.cover.v1.CreateUnitFromSuggestedRequest
@@ -10856,7 +11068,7 @@ export type CreateUnitFromSuggestedRequest = Message<"blueapi.cover.v1.CreateUni
10856
11068
  * Use `create(CreateUnitFromSuggestedRequestSchema)` to create a new message.
10857
11069
  */
10858
11070
  export const CreateUnitFromSuggestedRequestSchema: GenMessage<CreateUnitFromSuggestedRequest> = /*@__PURE__*/
10859
- messageDesc(file_cover_v1_cover, 331);
11071
+ messageDesc(file_cover_v1_cover, 341);
10860
11072
 
10861
11073
  /**
10862
11074
  * @generated from message blueapi.cover.v1.CreateUnitFromSuggestedResponse
@@ -10873,7 +11085,7 @@ export type CreateUnitFromSuggestedResponse = Message<"blueapi.cover.v1.CreateUn
10873
11085
  * Use `create(CreateUnitFromSuggestedResponseSchema)` to create a new message.
10874
11086
  */
10875
11087
  export const CreateUnitFromSuggestedResponseSchema: GenMessage<CreateUnitFromSuggestedResponse> = /*@__PURE__*/
10876
- messageDesc(file_cover_v1_cover, 332);
11088
+ messageDesc(file_cover_v1_cover, 342);
10877
11089
 
10878
11090
  /**
10879
11091
  * @generated from message blueapi.cover.v1.ListSharedResourcesRequest
@@ -10886,7 +11098,7 @@ export type ListSharedResourcesRequest = Message<"blueapi.cover.v1.ListSharedRes
10886
11098
  * Use `create(ListSharedResourcesRequestSchema)` to create a new message.
10887
11099
  */
10888
11100
  export const ListSharedResourcesRequestSchema: GenMessage<ListSharedResourcesRequest> = /*@__PURE__*/
10889
- messageDesc(file_cover_v1_cover, 333);
11101
+ messageDesc(file_cover_v1_cover, 343);
10890
11102
 
10891
11103
  /**
10892
11104
  * @generated from message blueapi.cover.v1.ListSharedResourcesResponse
@@ -10903,7 +11115,7 @@ export type ListSharedResourcesResponse = Message<"blueapi.cover.v1.ListSharedRe
10903
11115
  * Use `create(ListSharedResourcesResponseSchema)` to create a new message.
10904
11116
  */
10905
11117
  export const ListSharedResourcesResponseSchema: GenMessage<ListSharedResourcesResponse> = /*@__PURE__*/
10906
- messageDesc(file_cover_v1_cover, 334);
11118
+ messageDesc(file_cover_v1_cover, 344);
10907
11119
 
10908
11120
  /**
10909
11121
  * @generated from message blueapi.cover.v1.CreateSharedResourcesRequest
@@ -10947,7 +11159,7 @@ export type CreateSharedResourcesRequest = Message<"blueapi.cover.v1.CreateShare
10947
11159
  * Use `create(CreateSharedResourcesRequestSchema)` to create a new message.
10948
11160
  */
10949
11161
  export const CreateSharedResourcesRequestSchema: GenMessage<CreateSharedResourcesRequest> = /*@__PURE__*/
10950
- messageDesc(file_cover_v1_cover, 335);
11162
+ messageDesc(file_cover_v1_cover, 345);
10951
11163
 
10952
11164
  /**
10953
11165
  * @generated from message blueapi.cover.v1.CreateSharedResourcesResponse
@@ -10964,7 +11176,7 @@ export type CreateSharedResourcesResponse = Message<"blueapi.cover.v1.CreateShar
10964
11176
  * Use `create(CreateSharedResourcesResponseSchema)` to create a new message.
10965
11177
  */
10966
11178
  export const CreateSharedResourcesResponseSchema: GenMessage<CreateSharedResourcesResponse> = /*@__PURE__*/
10967
- messageDesc(file_cover_v1_cover, 336);
11179
+ messageDesc(file_cover_v1_cover, 346);
10968
11180
 
10969
11181
  /**
10970
11182
  * @generated from message blueapi.cover.v1.GetSharedResourcesRequest
@@ -10983,7 +11195,7 @@ export type GetSharedResourcesRequest = Message<"blueapi.cover.v1.GetSharedResou
10983
11195
  * Use `create(GetSharedResourcesRequestSchema)` to create a new message.
10984
11196
  */
10985
11197
  export const GetSharedResourcesRequestSchema: GenMessage<GetSharedResourcesRequest> = /*@__PURE__*/
10986
- messageDesc(file_cover_v1_cover, 337);
11198
+ messageDesc(file_cover_v1_cover, 347);
10987
11199
 
10988
11200
  /**
10989
11201
  * @generated from message blueapi.cover.v1.GetSharedResourcesResponse
@@ -11000,7 +11212,7 @@ export type GetSharedResourcesResponse = Message<"blueapi.cover.v1.GetSharedReso
11000
11212
  * Use `create(GetSharedResourcesResponseSchema)` to create a new message.
11001
11213
  */
11002
11214
  export const GetSharedResourcesResponseSchema: GenMessage<GetSharedResourcesResponse> = /*@__PURE__*/
11003
- messageDesc(file_cover_v1_cover, 338);
11215
+ messageDesc(file_cover_v1_cover, 348);
11004
11216
 
11005
11217
  /**
11006
11218
  * @generated from message blueapi.cover.v1.UpdateSharedResourcesRequest
@@ -11061,7 +11273,7 @@ export type UpdateSharedResourcesRequest = Message<"blueapi.cover.v1.UpdateShare
11061
11273
  * Use `create(UpdateSharedResourcesRequestSchema)` to create a new message.
11062
11274
  */
11063
11275
  export const UpdateSharedResourcesRequestSchema: GenMessage<UpdateSharedResourcesRequest> = /*@__PURE__*/
11064
- messageDesc(file_cover_v1_cover, 339);
11276
+ messageDesc(file_cover_v1_cover, 349);
11065
11277
 
11066
11278
  /**
11067
11279
  * @generated from message blueapi.cover.v1.UpdateSharedResourcesResponse
@@ -11078,7 +11290,7 @@ export type UpdateSharedResourcesResponse = Message<"blueapi.cover.v1.UpdateShar
11078
11290
  * Use `create(UpdateSharedResourcesResponseSchema)` to create a new message.
11079
11291
  */
11080
11292
  export const UpdateSharedResourcesResponseSchema: GenMessage<UpdateSharedResourcesResponse> = /*@__PURE__*/
11081
- messageDesc(file_cover_v1_cover, 340);
11293
+ messageDesc(file_cover_v1_cover, 350);
11082
11294
 
11083
11295
  /**
11084
11296
  * @generated from message blueapi.cover.v1.DeleteSharedResourcesRequest
@@ -11097,7 +11309,7 @@ export type DeleteSharedResourcesRequest = Message<"blueapi.cover.v1.DeleteShare
11097
11309
  * Use `create(DeleteSharedResourcesRequestSchema)` to create a new message.
11098
11310
  */
11099
11311
  export const DeleteSharedResourcesRequestSchema: GenMessage<DeleteSharedResourcesRequest> = /*@__PURE__*/
11100
- messageDesc(file_cover_v1_cover, 341);
11312
+ messageDesc(file_cover_v1_cover, 351);
11101
11313
 
11102
11314
  /**
11103
11315
  * @generated from message blueapi.cover.v1.DeleteSharedResourcesResponse
@@ -11114,7 +11326,7 @@ export type DeleteSharedResourcesResponse = Message<"blueapi.cover.v1.DeleteShar
11114
11326
  * Use `create(DeleteSharedResourcesResponseSchema)` to create a new message.
11115
11327
  */
11116
11328
  export const DeleteSharedResourcesResponseSchema: GenMessage<DeleteSharedResourcesResponse> = /*@__PURE__*/
11117
- messageDesc(file_cover_v1_cover, 342);
11329
+ messageDesc(file_cover_v1_cover, 352);
11118
11330
 
11119
11331
  /**
11120
11332
  * @generated from message blueapi.cover.v1.ListUnitMetricsRequest
@@ -11147,7 +11359,7 @@ export type ListUnitMetricsRequest = Message<"blueapi.cover.v1.ListUnitMetricsRe
11147
11359
  * Use `create(ListUnitMetricsRequestSchema)` to create a new message.
11148
11360
  */
11149
11361
  export const ListUnitMetricsRequestSchema: GenMessage<ListUnitMetricsRequest> = /*@__PURE__*/
11150
- messageDesc(file_cover_v1_cover, 343);
11362
+ messageDesc(file_cover_v1_cover, 353);
11151
11363
 
11152
11364
  /**
11153
11365
  * @generated from message blueapi.cover.v1.ListUnitMetricsResponse
@@ -11164,7 +11376,7 @@ export type ListUnitMetricsResponse = Message<"blueapi.cover.v1.ListUnitMetricsR
11164
11376
  * Use `create(ListUnitMetricsResponseSchema)` to create a new message.
11165
11377
  */
11166
11378
  export const ListUnitMetricsResponseSchema: GenMessage<ListUnitMetricsResponse> = /*@__PURE__*/
11167
- messageDesc(file_cover_v1_cover, 344);
11379
+ messageDesc(file_cover_v1_cover, 354);
11168
11380
 
11169
11381
  /**
11170
11382
  * @generated from message blueapi.cover.v1.CreateUnitMetricRequest
@@ -11208,7 +11420,7 @@ export type CreateUnitMetricRequest = Message<"blueapi.cover.v1.CreateUnitMetric
11208
11420
  * Use `create(CreateUnitMetricRequestSchema)` to create a new message.
11209
11421
  */
11210
11422
  export const CreateUnitMetricRequestSchema: GenMessage<CreateUnitMetricRequest> = /*@__PURE__*/
11211
- messageDesc(file_cover_v1_cover, 345);
11423
+ messageDesc(file_cover_v1_cover, 355);
11212
11424
 
11213
11425
  /**
11214
11426
  * @generated from message blueapi.cover.v1.CreateUnitMetricResponse
@@ -11225,7 +11437,7 @@ export type CreateUnitMetricResponse = Message<"blueapi.cover.v1.CreateUnitMetri
11225
11437
  * Use `create(CreateUnitMetricResponseSchema)` to create a new message.
11226
11438
  */
11227
11439
  export const CreateUnitMetricResponseSchema: GenMessage<CreateUnitMetricResponse> = /*@__PURE__*/
11228
- messageDesc(file_cover_v1_cover, 346);
11440
+ messageDesc(file_cover_v1_cover, 356);
11229
11441
 
11230
11442
  /**
11231
11443
  * @generated from message blueapi.cover.v1.GetUnitMetricRequest
@@ -11244,7 +11456,7 @@ export type GetUnitMetricRequest = Message<"blueapi.cover.v1.GetUnitMetricReques
11244
11456
  * Use `create(GetUnitMetricRequestSchema)` to create a new message.
11245
11457
  */
11246
11458
  export const GetUnitMetricRequestSchema: GenMessage<GetUnitMetricRequest> = /*@__PURE__*/
11247
- messageDesc(file_cover_v1_cover, 347);
11459
+ messageDesc(file_cover_v1_cover, 357);
11248
11460
 
11249
11461
  /**
11250
11462
  * @generated from message blueapi.cover.v1.GetUnitMetricResponse
@@ -11261,7 +11473,7 @@ export type GetUnitMetricResponse = Message<"blueapi.cover.v1.GetUnitMetricRespo
11261
11473
  * Use `create(GetUnitMetricResponseSchema)` to create a new message.
11262
11474
  */
11263
11475
  export const GetUnitMetricResponseSchema: GenMessage<GetUnitMetricResponse> = /*@__PURE__*/
11264
- messageDesc(file_cover_v1_cover, 348);
11476
+ messageDesc(file_cover_v1_cover, 358);
11265
11477
 
11266
11478
  /**
11267
11479
  * @generated from message blueapi.cover.v1.UpdateUnitMetricRequest
@@ -11322,7 +11534,7 @@ export type UpdateUnitMetricRequest = Message<"blueapi.cover.v1.UpdateUnitMetric
11322
11534
  * Use `create(UpdateUnitMetricRequestSchema)` to create a new message.
11323
11535
  */
11324
11536
  export const UpdateUnitMetricRequestSchema: GenMessage<UpdateUnitMetricRequest> = /*@__PURE__*/
11325
- messageDesc(file_cover_v1_cover, 349);
11537
+ messageDesc(file_cover_v1_cover, 359);
11326
11538
 
11327
11539
  /**
11328
11540
  * @generated from message blueapi.cover.v1.UpdateUnitMetricResponse
@@ -11339,7 +11551,7 @@ export type UpdateUnitMetricResponse = Message<"blueapi.cover.v1.UpdateUnitMetri
11339
11551
  * Use `create(UpdateUnitMetricResponseSchema)` to create a new message.
11340
11552
  */
11341
11553
  export const UpdateUnitMetricResponseSchema: GenMessage<UpdateUnitMetricResponse> = /*@__PURE__*/
11342
- messageDesc(file_cover_v1_cover, 350);
11554
+ messageDesc(file_cover_v1_cover, 360);
11343
11555
 
11344
11556
  /**
11345
11557
  * @generated from message blueapi.cover.v1.DeleteUnitMetricRequest
@@ -11358,7 +11570,7 @@ export type DeleteUnitMetricRequest = Message<"blueapi.cover.v1.DeleteUnitMetric
11358
11570
  * Use `create(DeleteUnitMetricRequestSchema)` to create a new message.
11359
11571
  */
11360
11572
  export const DeleteUnitMetricRequestSchema: GenMessage<DeleteUnitMetricRequest> = /*@__PURE__*/
11361
- messageDesc(file_cover_v1_cover, 351);
11573
+ messageDesc(file_cover_v1_cover, 361);
11362
11574
 
11363
11575
  /**
11364
11576
  * @generated from message blueapi.cover.v1.DeleteUnitMetricResponse
@@ -11375,7 +11587,7 @@ export type DeleteUnitMetricResponse = Message<"blueapi.cover.v1.DeleteUnitMetri
11375
11587
  * Use `create(DeleteUnitMetricResponseSchema)` to create a new message.
11376
11588
  */
11377
11589
  export const DeleteUnitMetricResponseSchema: GenMessage<DeleteUnitMetricResponse> = /*@__PURE__*/
11378
- messageDesc(file_cover_v1_cover, 352);
11590
+ messageDesc(file_cover_v1_cover, 362);
11379
11591
 
11380
11592
  /**
11381
11593
  * @generated from message blueapi.cover.v1.PreviewGoogleSheetRequest
@@ -11419,7 +11631,7 @@ export type PreviewGoogleSheetRequest = Message<"blueapi.cover.v1.PreviewGoogleS
11419
11631
  * Use `create(PreviewGoogleSheetRequestSchema)` to create a new message.
11420
11632
  */
11421
11633
  export const PreviewGoogleSheetRequestSchema: GenMessage<PreviewGoogleSheetRequest> = /*@__PURE__*/
11422
- messageDesc(file_cover_v1_cover, 353);
11634
+ messageDesc(file_cover_v1_cover, 363);
11423
11635
 
11424
11636
  /**
11425
11637
  * @generated from message blueapi.cover.v1.PreviewGoogleSheetResponse
@@ -11445,7 +11657,7 @@ export type PreviewGoogleSheetResponse = Message<"blueapi.cover.v1.PreviewGoogle
11445
11657
  * Use `create(PreviewGoogleSheetResponseSchema)` to create a new message.
11446
11658
  */
11447
11659
  export const PreviewGoogleSheetResponseSchema: GenMessage<PreviewGoogleSheetResponse> = /*@__PURE__*/
11448
- messageDesc(file_cover_v1_cover, 354);
11660
+ messageDesc(file_cover_v1_cover, 364);
11449
11661
 
11450
11662
  /**
11451
11663
  * @generated from message blueapi.cover.v1.ConfirmGoogleSheetAccessRequest
@@ -11465,7 +11677,7 @@ export type ConfirmGoogleSheetAccessRequest = Message<"blueapi.cover.v1.ConfirmG
11465
11677
  * Use `create(ConfirmGoogleSheetAccessRequestSchema)` to create a new message.
11466
11678
  */
11467
11679
  export const ConfirmGoogleSheetAccessRequestSchema: GenMessage<ConfirmGoogleSheetAccessRequest> = /*@__PURE__*/
11468
- messageDesc(file_cover_v1_cover, 355);
11680
+ messageDesc(file_cover_v1_cover, 365);
11469
11681
 
11470
11682
  /**
11471
11683
  * @generated from message blueapi.cover.v1.ConfirmGoogleSheetAccessResponse
@@ -11493,7 +11705,7 @@ export type ConfirmGoogleSheetAccessResponse = Message<"blueapi.cover.v1.Confirm
11493
11705
  * Use `create(ConfirmGoogleSheetAccessResponseSchema)` to create a new message.
11494
11706
  */
11495
11707
  export const ConfirmGoogleSheetAccessResponseSchema: GenMessage<ConfirmGoogleSheetAccessResponse> = /*@__PURE__*/
11496
- messageDesc(file_cover_v1_cover, 356);
11708
+ messageDesc(file_cover_v1_cover, 366);
11497
11709
 
11498
11710
  /**
11499
11711
  * @generated from message blueapi.cover.v1.GetCloudwatchMetadataRequest
@@ -11545,7 +11757,7 @@ export type GetCloudwatchMetadataRequest = Message<"blueapi.cover.v1.GetCloudwat
11545
11757
  * Use `create(GetCloudwatchMetadataRequestSchema)` to create a new message.
11546
11758
  */
11547
11759
  export const GetCloudwatchMetadataRequestSchema: GenMessage<GetCloudwatchMetadataRequest> = /*@__PURE__*/
11548
- messageDesc(file_cover_v1_cover, 357);
11760
+ messageDesc(file_cover_v1_cover, 367);
11549
11761
 
11550
11762
  /**
11551
11763
  * @generated from message blueapi.cover.v1.GetCloudwatchMetadataResponse
@@ -11572,7 +11784,7 @@ export type GetCloudwatchMetadataResponse = Message<"blueapi.cover.v1.GetCloudwa
11572
11784
  * Use `create(GetCloudwatchMetadataResponseSchema)` to create a new message.
11573
11785
  */
11574
11786
  export const GetCloudwatchMetadataResponseSchema: GenMessage<GetCloudwatchMetadataResponse> = /*@__PURE__*/
11575
- messageDesc(file_cover_v1_cover, 358);
11787
+ messageDesc(file_cover_v1_cover, 368);
11576
11788
 
11577
11789
  /**
11578
11790
  * @generated from message blueapi.cover.v1.GetCloudwatchMetadataResponse.Dimension
@@ -11594,7 +11806,7 @@ export type GetCloudwatchMetadataResponse_Dimension = Message<"blueapi.cover.v1.
11594
11806
  * Use `create(GetCloudwatchMetadataResponse_DimensionSchema)` to create a new message.
11595
11807
  */
11596
11808
  export const GetCloudwatchMetadataResponse_DimensionSchema: GenMessage<GetCloudwatchMetadataResponse_Dimension> = /*@__PURE__*/
11597
- messageDesc(file_cover_v1_cover, 358, 0);
11809
+ messageDesc(file_cover_v1_cover, 368, 0);
11598
11810
 
11599
11811
  /**
11600
11812
  * Request message for GetDiscountPlan
@@ -11692,7 +11904,7 @@ export type GetDiscountPlanRequest = Message<"blueapi.cover.v1.GetDiscountPlanRe
11692
11904
  * Use `create(GetDiscountPlanRequestSchema)` to create a new message.
11693
11905
  */
11694
11906
  export const GetDiscountPlanRequestSchema: GenMessage<GetDiscountPlanRequest> = /*@__PURE__*/
11695
- messageDesc(file_cover_v1_cover, 359);
11907
+ messageDesc(file_cover_v1_cover, 369);
11696
11908
 
11697
11909
  /**
11698
11910
  * Response message for GetDiscountPlan
@@ -11716,7 +11928,7 @@ export type GetDiscountPlanResponse = Message<"blueapi.cover.v1.GetDiscountPlanR
11716
11928
  * Use `create(GetDiscountPlanResponseSchema)` to create a new message.
11717
11929
  */
11718
11930
  export const GetDiscountPlanResponseSchema: GenMessage<GetDiscountPlanResponse> = /*@__PURE__*/
11719
- messageDesc(file_cover_v1_cover, 360);
11931
+ messageDesc(file_cover_v1_cover, 370);
11720
11932
 
11721
11933
  /**
11722
11934
  * Request message for ListNonperformingRate
@@ -11765,7 +11977,7 @@ export type ListNonperformingRateRequest = Message<"blueapi.cover.v1.ListNonperf
11765
11977
  * Use `create(ListNonperformingRateRequestSchema)` to create a new message.
11766
11978
  */
11767
11979
  export const ListNonperformingRateRequestSchema: GenMessage<ListNonperformingRateRequest> = /*@__PURE__*/
11768
- messageDesc(file_cover_v1_cover, 361);
11980
+ messageDesc(file_cover_v1_cover, 371);
11769
11981
 
11770
11982
  /**
11771
11983
  * Response message for ListNonperformingRate
@@ -11784,7 +11996,7 @@ export type ListNonperformingRateResponse = Message<"blueapi.cover.v1.ListNonper
11784
11996
  * Use `create(ListNonperformingRateResponseSchema)` to create a new message.
11785
11997
  */
11786
11998
  export const ListNonperformingRateResponseSchema: GenMessage<ListNonperformingRateResponse> = /*@__PURE__*/
11787
- messageDesc(file_cover_v1_cover, 362);
11999
+ messageDesc(file_cover_v1_cover, 372);
11788
12000
 
11789
12001
  /**
11790
12002
  * @generated from message blueapi.cover.v1.ListNonperformingRateResponse.Nonperforming
@@ -11816,7 +12028,7 @@ export type ListNonperformingRateResponse_Nonperforming = Message<"blueapi.cover
11816
12028
  * Use `create(ListNonperformingRateResponse_NonperformingSchema)` to create a new message.
11817
12029
  */
11818
12030
  export const ListNonperformingRateResponse_NonperformingSchema: GenMessage<ListNonperformingRateResponse_Nonperforming> = /*@__PURE__*/
11819
- messageDesc(file_cover_v1_cover, 362, 0);
12031
+ messageDesc(file_cover_v1_cover, 372, 0);
11820
12032
 
11821
12033
  /**
11822
12034
  * Request message for ListUntaggedResources
@@ -11865,7 +12077,7 @@ export type ListUntaggedResourcesRequest = Message<"blueapi.cover.v1.ListUntagge
11865
12077
  * Use `create(ListUntaggedResourcesRequestSchema)` to create a new message.
11866
12078
  */
11867
12079
  export const ListUntaggedResourcesRequestSchema: GenMessage<ListUntaggedResourcesRequest> = /*@__PURE__*/
11868
- messageDesc(file_cover_v1_cover, 363);
12080
+ messageDesc(file_cover_v1_cover, 373);
11869
12081
 
11870
12082
  /**
11871
12083
  * Response message for ListUntaggedResources
@@ -11884,7 +12096,7 @@ export type ListUntaggedResourcesResponse = Message<"blueapi.cover.v1.ListUntagg
11884
12096
  * Use `create(ListUntaggedResourcesResponseSchema)` to create a new message.
11885
12097
  */
11886
12098
  export const ListUntaggedResourcesResponseSchema: GenMessage<ListUntaggedResourcesResponse> = /*@__PURE__*/
11887
- messageDesc(file_cover_v1_cover, 364);
12099
+ messageDesc(file_cover_v1_cover, 374);
11888
12100
 
11889
12101
  /**
11890
12102
  * @generated from message blueapi.cover.v1.ListUntaggedResourcesResponse.UntaggedResources
@@ -11926,7 +12138,7 @@ export type ListUntaggedResourcesResponse_UntaggedResources = Message<"blueapi.c
11926
12138
  * Use `create(ListUntaggedResourcesResponse_UntaggedResourcesSchema)` to create a new message.
11927
12139
  */
11928
12140
  export const ListUntaggedResourcesResponse_UntaggedResourcesSchema: GenMessage<ListUntaggedResourcesResponse_UntaggedResources> = /*@__PURE__*/
11929
- messageDesc(file_cover_v1_cover, 364, 0);
12141
+ messageDesc(file_cover_v1_cover, 374, 0);
11930
12142
 
11931
12143
  /**
11932
12144
  * Status of upload file
@@ -11981,6 +12193,7 @@ export const Cover: GenService<{
11981
12193
  * Invite members to the system
11982
12194
  *
11983
12195
  * @generated from rpc blueapi.cover.v1.Cover.InviteMember
12196
+ * @deprecated
11984
12197
  */
11985
12198
  inviteMember: {
11986
12199
  methodKind: "unary";
@@ -12011,6 +12224,7 @@ export const Cover: GenService<{
12011
12224
  * Get all the members/subusers of the company
12012
12225
  *
12013
12226
  * @generated from rpc blueapi.cover.v1.Cover.GetMembers
12227
+ * @deprecated
12014
12228
  */
12015
12229
  getMembers: {
12016
12230
  methodKind: "unary";
@@ -12021,6 +12235,7 @@ export const Cover: GenService<{
12021
12235
  * Get the details of the user
12022
12236
  *
12023
12237
  * @generated from rpc blueapi.cover.v1.Cover.GetMemberDetails
12238
+ * @deprecated
12024
12239
  */
12025
12240
  getMemberDetails: {
12026
12241
  methodKind: "unary";
@@ -12031,6 +12246,7 @@ export const Cover: GenService<{
12031
12246
  * Get the cost group to which the member is attached
12032
12247
  *
12033
12248
  * @generated from rpc blueapi.cover.v1.Cover.GetMemberCostGroup
12249
+ * @deprecated
12034
12250
  */
12035
12251
  getMemberCostGroup: {
12036
12252
  methodKind: "unary";
@@ -12041,6 +12257,7 @@ export const Cover: GenService<{
12041
12257
  * Modify member's permission
12042
12258
  *
12043
12259
  * @generated from rpc blueapi.cover.v1.Cover.UpdateMemberPermission
12260
+ * @deprecated
12044
12261
  */
12045
12262
  updateMemberPermission: {
12046
12263
  methodKind: "unary";
@@ -13895,6 +14112,56 @@ export const Cover: GenService<{
13895
14112
  input: typeof ExecuteRecommendationV3RequestSchema;
13896
14113
  output: typeof ExecuteRecommendationV3ResponseSchema;
13897
14114
  },
14115
+ /**
14116
+ * Invites users to join the organization and assigns them roles.
14117
+ *
14118
+ * @generated from rpc blueapi.cover.v1.Cover.InviteUsers
14119
+ */
14120
+ inviteUsers: {
14121
+ methodKind: "unary";
14122
+ input: typeof InviteUsersRequestSchema;
14123
+ output: typeof InviteUsersResponseSchema;
14124
+ },
14125
+ /**
14126
+ * Deletes a user from the organization.
14127
+ *
14128
+ * @generated from rpc blueapi.cover.v1.Cover.DeleteUser
14129
+ */
14130
+ deleteUser: {
14131
+ methodKind: "unary";
14132
+ input: typeof DeleteUserRequestSchema;
14133
+ output: typeof DeleteUserResponseSchema;
14134
+ },
14135
+ /**
14136
+ * Updates a user's role and cost group access.
14137
+ *
14138
+ * @generated from rpc blueapi.cover.v1.Cover.UpdateUserRole
14139
+ */
14140
+ updateUserRole: {
14141
+ methodKind: "unary";
14142
+ input: typeof UpdateUserRoleRequestSchema;
14143
+ output: typeof UpdateUserRoleResponseSchema;
14144
+ },
14145
+ /**
14146
+ * Lists all users in the organization
14147
+ *
14148
+ * @generated from rpc blueapi.cover.v1.Cover.ListUsers
14149
+ */
14150
+ listUsers: {
14151
+ methodKind: "unary";
14152
+ input: typeof ListUsersRequestSchema;
14153
+ output: typeof ListUsersResponseSchema;
14154
+ },
14155
+ /**
14156
+ * Reinvites a user to join the organization. This can be used when the user did not receive or lost the original invitation email.
14157
+ *
14158
+ * @generated from rpc blueapi.cover.v1.Cover.ReinviteUser
14159
+ */
14160
+ reinviteUser: {
14161
+ methodKind: "unary";
14162
+ input: typeof ReinviteUserRequestSchema;
14163
+ output: typeof ReinviteUserResponseSchema;
14164
+ },
13898
14165
  }> = /*@__PURE__*/
13899
14166
  serviceDesc(file_cover_v1_cover, 0);
13900
14167