@alphauspkgs/blue-sdk-ts 1.0.18 → 1.0.20

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.
@@ -37,6 +37,7 @@ import { file_api_cover_insightreport } from "../../api/cover/insightreport_pb";
37
37
  import type { OperationSchema } from "../../protos/operation_pb";
38
38
  import { file_protos_operation } from "../../protos/operation_pb";
39
39
  import { file_google_api_annotations } from "../../google/api/annotations_pb";
40
+ import { file_api_cover_role } from "../../api/cover/role_pb";
40
41
  import type { EmptySchema } from "@bufbuild/protobuf/wkt";
41
42
  import { file_google_protobuf_empty, file_google_protobuf_struct } from "@bufbuild/protobuf/wkt";
42
43
  import { file_protoc_gen_openapiv2_options_annotations } from "../../protoc-gen-openapiv2/options/annotations_pb";
@@ -46,7 +47,120 @@ import type { JsonObject, Message } from "@bufbuild/protobuf";
46
47
  * Describes the file cover/v1/cover.proto.
47
48
  */
48
49
  export const file_cover_v1_cover: GenFile = /*@__PURE__*/
49
- fileDesc("ChRjb3Zlci92MS9jb3Zlci5wcm90bxIQYmx1ZWFwaS5jb3Zlci52MSIhChNSZWludml0ZVVzZXJSZXF1ZXN0EgoKAmlkGAEgASgJIhYKFFJlaW52aXRlVXNlclJlc3BvbnNlIhIKEExpc3RVc2Vyc1JlcXVlc3Qi0gEKEUxpc3RVc2Vyc1Jlc3BvbnNlEj4KBXVzZXJzGAEgAygLMi8uYmx1ZWFwaS5jb3Zlci52MS5MaXN0VXNlcnNSZXNwb25zZS5Vc2VyU3VtbWFyeRp9CgtVc2VyU3VtbWFyeRIKCgJpZBgBIAEoCRINCgVlbWFpbBgCIAEoCRIMCgRuYW1lGAMgASgJEg0KBXJvbGVzGAQgAygJEhEKCWFjdGl2YXRlZBgFIAEoCBIOCgZhdmF0YXIYBiABKAkSEwoLY29sb3JfdGhlbWUYByABKAkiUgoVVXBkYXRlVXNlclJvbGVSZXF1ZXN0Eg8KB3VzZXJfaWQYASABKAkSEAoIcm9sZV9pZHMYAiADKAkSFgoOY29zdF9ncm91cF9pZHMYAyADKAkiGAoWVXBkYXRlVXNlclJvbGVSZXNwb25zZSIfChFEZWxldGVVc2VyUmVxdWVzdBIKCgJpZBgBIAEoCSIUChJEZWxldGVVc2VyUmVzcG9uc2UiTQoSSW52aXRlVXNlcnNSZXF1ZXN0Eg4KBmVtYWlscxgBIAMoCRIPCgdyb2xlX2lkGAIgASgJEhYKDmNvc3RfZ3JvdXBfaWRzGAMgAygJIhUKE0ludml0ZVVzZXJzUmVzcG9uc2Ui7QEKHkV4ZWN1dGVSZWNvbW1lbmRhdGlvblYzUmVxdWVzdBILCgNpZHMYASADKAkSUQoLZXhlY3V0ZVR5cGUYAiABKA4yPC5ibHVlYXBpLmNvdmVyLnYxLkV4ZWN1dGVSZWNvbW1lbmRhdGlvblYzUmVxdWVzdC5FeGVjdXRlVHlwZSJrCgtFeGVjdXRlVHlwZRILCgdERUZBVUxUEAASFAoQTUFSS19BU19FWEVDVVRFRBABEhEKDVVORE9fRVhFQ1VURUQQAhITCg9TVUJNSVRfVEVNUExBVEUQAxIRCg1SRVRSWV9FWEVDVVRFEAQiSgofRXhlY3V0ZVJlY29tbWVuZGF0aW9uVjNSZXNwb25zZRInCgZyZXN1bHQYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IsMBChxMaXN0UmVjb21tZW5kYXRpb25zVjNSZXF1ZXN0EhMKC2Nvc3Rncm91cElkGAEgASgJEhAKCHN0YXR1c2VzGAIgAygJEkwKB2ZpbHRlcnMYAyADKAsyOy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RSZWNvbW1lbmRhdGlvbnNWM1JlcXVlc3QuRmlsdGVyc0VudHJ5Gi4KDEZpbHRlcnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIvUDChVSZWNvbW1lbmRhdGlvblN1bW1hcnkSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIOCgZ0YXJnZXQYAyABKAkSEgoKdGFyZ2V0TmFtZRgSIAEoCRIQCghjYXRlZ29yeRgEIAEoCRIMCgR0eXBlGAUgASgJEg4KBnZlbmRvchgNIAEoCRIOCgZzb3VyY2UYEyABKAkSDAoEY29kZRgOIAEoCRIUCgdzZXJ2aWNlGA8gASgJSACIAQESEwoGcmVnaW9uGBAgASgJSAGIAQESFwoKcmVzb3VyY2VJZBgRIAEoCUgCiAEBEh8KF2VzdGltYXRlZE1vbnRobHlTYXZpbmdzGAYgASgBEiIKGmVzdGltYXRlZE1vbnRobHlCZWZvcmVDb3N0GAcgASgBEiEKGWVzdGltYXRlZE1vbnRobHlBZnRlckNvc3QYCCABKAESEQoEcmlzaxgJIAEoCUgDiAEBEhMKBmVmZm9ydBgKIAEoCUgEiAEBEg4KBnN0YXR1cxgLIAEoCRIyChFhZGRpdGlvbmFsRGV0YWlscxgMIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RCCgoIX3NlcnZpY2VCCQoHX3JlZ2lvbkINCgtfcmVzb3VyY2VJZEIHCgVfcmlza0IJCgdfZWZmb3J0IikKGkdldFJlY29tbWVuZGF0aW9uVjNSZXF1ZXN0EgsKA2lkcxgBIAMoCSKSBQobR2V0UmVjb21tZW5kYXRpb25WM1Jlc3BvbnNlElsKD3JlY29tbWVuZGF0aW9ucxgBIAMoCzJCLmJsdWVhcGkuY292ZXIudjEuR2V0UmVjb21tZW5kYXRpb25WM1Jlc3BvbnNlLlJlY29tbWVuZGF0aW9uRGV0YWlsGpUEChRSZWNvbW1lbmRhdGlvbkRldGFpbBIKCgJpZBgBIAEoCRIMCgRuYW1lGAkgASgJEg4KBnZlbmRvchgCIAEoCRIOCgZzb3VyY2UYAyABKAkSDAoEY29kZRgEIAEoCRIUCgdzZXJ2aWNlGAUgASgJSACIAQESDgoGdGFyZ2V0GAcgASgJEhIKCnRhcmdldE5hbWUYCCABKAkSFAoMZGF0ZURldGVjdGVkGAYgASgJEhMKBnJlZ2lvbhgKIAEoCUgBiAEBEiIKGmVzdGltYXRlZE1vbnRobHlCZWZvcmVDb3N0GAsgASgBEiEKGWVzdGltYXRlZE1vbnRobHlBZnRlckNvc3QYDCABKAESHwoXZXN0aW1hdGVkTW9udGhseVNhdmluZ3MYDSABKAESFwoKcmVzb3VyY2VJZBgOIAEoCUgCiAEBEhAKCGNhdGVnb3J5GA8gASgJEgwKBHR5cGUYECABKAkSEwoLbGFzdFVwZGF0ZWQYESABKAkSDgoGc3RhdHVzGBIgASgJEhEKBHJpc2sYEyABKAlIA4gBARITCgZlZmZvcnQYFCABKAlIBIgBARIoCgdkZXRhaWxzGBUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEIKCghfc2VydmljZUIJCgdfcmVnaW9uQg0KC19yZXNvdXJjZUlkQgcKBV9yaXNrQgkKB19lZmZvcnQi6gEKG0dldENvc3RGb3JlY2FzdHNEYXRhUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIRCglzdGFydFRpbWUYAiABKAkSDwoHZW5kVGltZRgDIAEoCRJOCgtncmFudWxhcml0eRgEIAEoDjI5LmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEZvcmVjYXN0c0RhdGFSZXF1ZXN0LkdyYW51bGFyaXR5IkIKC0dyYW51bGFyaXR5EhsKF0dSQU5VTEFSSVRZX1VOU1BFQ0lGSUVEEAASCQoFREFJTFkQARILCgdNT05USExZEAIiagocR2V0Q29zdEZvcmVjYXN0c0RhdGFSZXNwb25zZRIMCgRkYXRlGAEgASgJEhQKDGZvcmVjYXN0Q29zdBgCIAEoARISCgp1cHBlckJvdW5kGAMgASgBEhIKCmxvd2VyQm91bmQYBCABKAEiFgoUTGlzdEZvcmVjYXN0c1JlcXVlc3QiXAoVTGlzdEZvcmVjYXN0c1Jlc3BvbnNlEkMKE2Nvc3RGb3JlY2FzdERldGFpbHMYASADKAsyJi5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0Rm9yZWNhc3REZXRhaWxzIvMBChlDcmVhdGVDb3N0Rm9yZWNhc3RSZXF1ZXN0EhQKDGZvcmVjYXN0TmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRIvCgljb3N0R3JvdXAYAyABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXASGwoTcGFzdEFjdHVhbENvc3RSYW5nZRgEIAEoAxIZChFsb29rRm9yd2FyZFBlcmlvZBgFIAEoAxJCChNleHRlcm5hbEFkanVzdG1lbnRzGAYgAygLMiUuYmx1ZWFwaS5hcGkuY292ZXIuRXh0ZXJuYWxBZGp1c3RtZW50IoACChpDcmVhdGVDb3N0Rm9yZWNhc3RSZXNwb25zZRIKCgJpZBgBIAEoCRIUCgxmb3JlY2FzdE5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSLwoJY29zdEdyb3VwGAQgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwEhsKE3Bhc3RBY3R1YWxDb3N0UmFuZ2UYBSABKAMSGQoRbG9va0ZvcndhcmRQZXJpb2QYBiABKAMSQgoTZXh0ZXJuYWxBZGp1c3RtZW50cxgHIAMoCzIlLmJsdWVhcGkuYXBpLmNvdmVyLkV4dGVybmFsQWRqdXN0bWVudCIkChZHZXRDb3N0Rm9yZWNhc3RSZXF1ZXN0EgoKAmlkGAEgASgJIr8CChdHZXRDb3N0Rm9yZWNhc3RSZXNwb25zZRIKCgJpZBgBIAEoCRIUCgxmb3JlY2FzdE5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSLwoJY29zdEdyb3VwGAQgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwEhsKE3Bhc3RBY3R1YWxDb3N0UmFuZ2UYBSABKAMSGQoRbG9va0ZvcndhcmRQZXJpb2QYBiABKAMSQgoTZXh0ZXJuYWxBZGp1c3RtZW50cxgHIAMoCzIlLmJsdWVhcGkuYXBpLmNvdmVyLkV4dGVybmFsQWRqdXN0bWVudBIRCgljcmVhdGVkQnkYCCABKAkSFAoMY3JlYXRpb25EYXRlGAkgASgJEhcKD2xhc3RVcGRhdGVkRGF0ZRgKIAEoCSL/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
+ fileDesc("ChRjb3Zlci92MS9jb3Zlci5wcm90bxIQYmx1ZWFwaS5jb3Zlci52MSIcCg5HZXRVc2VyUmVxdWVzdBIKCgJpZBgBIAEoCSLcAgoPR2V0VXNlclJlc3BvbnNlEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDQoFZW1haWwYAyABKAkSNQoFcm9sZXMYBCADKAsyJi5ibHVlYXBpLmNvdmVyLnYxLkdldFVzZXJSZXNwb25zZS5Sb2xlEj8KCmludml0ZWRfYnkYBSABKAsyKy5ibHVlYXBpLmNvdmVyLnYxLkdldFVzZXJSZXNwb25zZS5JbnZpdGVkQnkSFAoMbGFzdF91cGRhdGVkGAYgASgJEhIKCmNyZWF0ZWRfb24YByABKAkaIAoEUm9sZRIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJGlwKCUludml0ZWRCeRIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEjUKBXJvbGVzGAMgAygLMiYuYmx1ZWFwaS5jb3Zlci52MS5HZXRVc2VyUmVzcG9uc2UuUm9sZSIhChNSZWludml0ZVVzZXJSZXF1ZXN0EgoKAmlkGAEgASgJIhYKFFJlaW52aXRlVXNlclJlc3BvbnNlIhIKEExpc3RVc2Vyc1JlcXVlc3Qi0gEKEUxpc3RVc2Vyc1Jlc3BvbnNlEj4KBXVzZXJzGAEgAygLMi8uYmx1ZWFwaS5jb3Zlci52MS5MaXN0VXNlcnNSZXNwb25zZS5Vc2VyU3VtbWFyeRp9CgtVc2VyU3VtbWFyeRIKCgJpZBgBIAEoCRINCgVlbWFpbBgCIAEoCRIMCgRuYW1lGAMgASgJEg0KBXJvbGVzGAQgAygJEhEKCWFjdGl2YXRlZBgFIAEoCBIOCgZhdmF0YXIYBiABKAkSEwoLY29sb3JfdGhlbWUYByABKAkiUgoVVXBkYXRlVXNlclJvbGVSZXF1ZXN0Eg8KB3VzZXJfaWQYASABKAkSEAoIcm9sZV9pZHMYAiADKAkSFgoOY29zdF9ncm91cF9pZHMYAyADKAkiGAoWVXBkYXRlVXNlclJvbGVSZXNwb25zZSIfChFEZWxldGVVc2VyUmVxdWVzdBIKCgJpZBgBIAEoCSIUChJEZWxldGVVc2VyUmVzcG9uc2UiTQoSSW52aXRlVXNlcnNSZXF1ZXN0Eg4KBmVtYWlscxgBIAMoCRIPCgdyb2xlX2lkGAIgASgJEhYKDmNvc3RfZ3JvdXBfaWRzGAMgAygJIhUKE0ludml0ZVVzZXJzUmVzcG9uc2Ui7QEKHkV4ZWN1dGVSZWNvbW1lbmRhdGlvblYzUmVxdWVzdBILCgNpZHMYASADKAkSUQoLZXhlY3V0ZVR5cGUYAiABKA4yPC5ibHVlYXBpLmNvdmVyLnYxLkV4ZWN1dGVSZWNvbW1lbmRhdGlvblYzUmVxdWVzdC5FeGVjdXRlVHlwZSJrCgtFeGVjdXRlVHlwZRILCgdERUZBVUxUEAASFAoQTUFSS19BU19FWEVDVVRFRBABEhEKDVVORE9fRVhFQ1VURUQQAhITCg9TVUJNSVRfVEVNUExBVEUQAxIRCg1SRVRSWV9FWEVDVVRFEAQiSgofRXhlY3V0ZVJlY29tbWVuZGF0aW9uVjNSZXNwb25zZRInCgZyZXN1bHQYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IsMBChxMaXN0UmVjb21tZW5kYXRpb25zVjNSZXF1ZXN0EhMKC2Nvc3Rncm91cElkGAEgASgJEhAKCHN0YXR1c2VzGAIgAygJEkwKB2ZpbHRlcnMYAyADKAsyOy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RSZWNvbW1lbmRhdGlvbnNWM1JlcXVlc3QuRmlsdGVyc0VudHJ5Gi4KDEZpbHRlcnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIvUDChVSZWNvbW1lbmRhdGlvblN1bW1hcnkSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIOCgZ0YXJnZXQYAyABKAkSEgoKdGFyZ2V0TmFtZRgSIAEoCRIQCghjYXRlZ29yeRgEIAEoCRIMCgR0eXBlGAUgASgJEg4KBnZlbmRvchgNIAEoCRIOCgZzb3VyY2UYEyABKAkSDAoEY29kZRgOIAEoCRIUCgdzZXJ2aWNlGA8gASgJSACIAQESEwoGcmVnaW9uGBAgASgJSAGIAQESFwoKcmVzb3VyY2VJZBgRIAEoCUgCiAEBEh8KF2VzdGltYXRlZE1vbnRobHlTYXZpbmdzGAYgASgBEiIKGmVzdGltYXRlZE1vbnRobHlCZWZvcmVDb3N0GAcgASgBEiEKGWVzdGltYXRlZE1vbnRobHlBZnRlckNvc3QYCCABKAESEQoEcmlzaxgJIAEoCUgDiAEBEhMKBmVmZm9ydBgKIAEoCUgEiAEBEg4KBnN0YXR1cxgLIAEoCRIyChFhZGRpdGlvbmFsRGV0YWlscxgMIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RCCgoIX3NlcnZpY2VCCQoHX3JlZ2lvbkINCgtfcmVzb3VyY2VJZEIHCgVfcmlza0IJCgdfZWZmb3J0IikKGkdldFJlY29tbWVuZGF0aW9uVjNSZXF1ZXN0EgsKA2lkcxgBIAMoCSKSBQobR2V0UmVjb21tZW5kYXRpb25WM1Jlc3BvbnNlElsKD3JlY29tbWVuZGF0aW9ucxgBIAMoCzJCLmJsdWVhcGkuY292ZXIudjEuR2V0UmVjb21tZW5kYXRpb25WM1Jlc3BvbnNlLlJlY29tbWVuZGF0aW9uRGV0YWlsGpUEChRSZWNvbW1lbmRhdGlvbkRldGFpbBIKCgJpZBgBIAEoCRIMCgRuYW1lGAkgASgJEg4KBnZlbmRvchgCIAEoCRIOCgZzb3VyY2UYAyABKAkSDAoEY29kZRgEIAEoCRIUCgdzZXJ2aWNlGAUgASgJSACIAQESDgoGdGFyZ2V0GAcgASgJEhIKCnRhcmdldE5hbWUYCCABKAkSFAoMZGF0ZURldGVjdGVkGAYgASgJEhMKBnJlZ2lvbhgKIAEoCUgBiAEBEiIKGmVzdGltYXRlZE1vbnRobHlCZWZvcmVDb3N0GAsgASgBEiEKGWVzdGltYXRlZE1vbnRobHlBZnRlckNvc3QYDCABKAESHwoXZXN0aW1hdGVkTW9udGhseVNhdmluZ3MYDSABKAESFwoKcmVzb3VyY2VJZBgOIAEoCUgCiAEBEhAKCGNhdGVnb3J5GA8gASgJEgwKBHR5cGUYECABKAkSEwoLbGFzdFVwZGF0ZWQYESABKAkSDgoGc3RhdHVzGBIgASgJEhEKBHJpc2sYEyABKAlIA4gBARITCgZlZmZvcnQYFCABKAlIBIgBARIoCgdkZXRhaWxzGBUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEIKCghfc2VydmljZUIJCgdfcmVnaW9uQg0KC19yZXNvdXJjZUlkQgcKBV9yaXNrQgkKB19lZmZvcnQi6gEKG0dldENvc3RGb3JlY2FzdHNEYXRhUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIRCglzdGFydFRpbWUYAiABKAkSDwoHZW5kVGltZRgDIAEoCRJOCgtncmFudWxhcml0eRgEIAEoDjI5LmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEZvcmVjYXN0c0RhdGFSZXF1ZXN0LkdyYW51bGFyaXR5IkIKC0dyYW51bGFyaXR5EhsKF0dSQU5VTEFSSVRZX1VOU1BFQ0lGSUVEEAASCQoFREFJTFkQARILCgdNT05USExZEAIiagocR2V0Q29zdEZvcmVjYXN0c0RhdGFSZXNwb25zZRIMCgRkYXRlGAEgASgJEhQKDGZvcmVjYXN0Q29zdBgCIAEoARISCgp1cHBlckJvdW5kGAMgASgBEhIKCmxvd2VyQm91bmQYBCABKAEiFgoUTGlzdEZvcmVjYXN0c1JlcXVlc3QiXAoVTGlzdEZvcmVjYXN0c1Jlc3BvbnNlEkMKE2Nvc3RGb3JlY2FzdERldGFpbHMYASADKAsyJi5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0Rm9yZWNhc3REZXRhaWxzIvMBChlDcmVhdGVDb3N0Rm9yZWNhc3RSZXF1ZXN0EhQKDGZvcmVjYXN0TmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRIvCgljb3N0R3JvdXAYAyABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXASGwoTcGFzdEFjdHVhbENvc3RSYW5nZRgEIAEoAxIZChFsb29rRm9yd2FyZFBlcmlvZBgFIAEoAxJCChNleHRlcm5hbEFkanVzdG1lbnRzGAYgAygLMiUuYmx1ZWFwaS5hcGkuY292ZXIuRXh0ZXJuYWxBZGp1c3RtZW50IoACChpDcmVhdGVDb3N0Rm9yZWNhc3RSZXNwb25zZRIKCgJpZBgBIAEoCRIUCgxmb3JlY2FzdE5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSLwoJY29zdEdyb3VwGAQgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwEhsKE3Bhc3RBY3R1YWxDb3N0UmFuZ2UYBSABKAMSGQoRbG9va0ZvcndhcmRQZXJpb2QYBiABKAMSQgoTZXh0ZXJuYWxBZGp1c3RtZW50cxgHIAMoCzIlLmJsdWVhcGkuYXBpLmNvdmVyLkV4dGVybmFsQWRqdXN0bWVudCIkChZHZXRDb3N0Rm9yZWNhc3RSZXF1ZXN0EgoKAmlkGAEgASgJIr8CChdHZXRDb3N0Rm9yZWNhc3RSZXNwb25zZRIKCgJpZBgBIAEoCRIUCgxmb3JlY2FzdE5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSLwoJY29zdEdyb3VwGAQgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwEhsKE3Bhc3RBY3R1YWxDb3N0UmFuZ2UYBSABKAMSGQoRbG9va0ZvcndhcmRQZXJpb2QYBiABKAMSQgoTZXh0ZXJuYWxBZGp1c3RtZW50cxgHIAMoCzIlLmJsdWVhcGkuYXBpLmNvdmVyLkV4dGVybmFsQWRqdXN0bWVudBIRCgljcmVhdGVkQnkYCCABKAkSFAoMY3JlYXRpb25EYXRlGAkgASgJEhcKD2xhc3RVcGRhdGVkRGF0ZRgKIAEoCSL/AQoZVXBkYXRlQ29zdEZvcmVjYXN0UmVxdWVzdBIKCgJpZBgBIAEoCRIUCgxmb3JlY2FzdE5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSLwoJY29zdEdyb3VwGAQgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwEhsKE3Bhc3RBY3R1YWxDb3N0UmFuZ2UYBSABKAMSGQoRbG9va0ZvcndhcmRQZXJpb2QYBiABKAMSQgoTZXh0ZXJuYWxBZGp1c3RtZW50cxgHIAMoCzIlLmJsdWVhcGkuYXBpLmNvdmVyLkV4dGVybmFsQWRqdXN0bWVudCLCAgoaVXBkYXRlQ29zdEZvcmVjYXN0UmVzcG9uc2USCgoCaWQYASABKAkSFAoMZm9yZWNhc3ROYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEi8KCWNvc3RHcm91cBgEIAEoCzIcLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cBIbChNwYXN0QWN0dWFsQ29zdFJhbmdlGAUgASgDEhkKEWxvb2tGb3J3YXJkUGVyaW9kGAYgASgDEkIKE2V4dGVybmFsQWRqdXN0bWVudHMYByADKAsyJS5ibHVlYXBpLmFwaS5jb3Zlci5FeHRlcm5hbEFkanVzdG1lbnQSEQoJY3JlYXRlZEJ5GAggASgJEhQKDGNyZWF0aW9uRGF0ZRgJIAEoCRIXCg9sYXN0VXBkYXRlZERhdGUYCiABKAkiJwoZRGVsZXRlQ29zdEZvcmVjYXN0UmVxdWVzdBIKCgJpZBgBIAEoCSIoChpEZWxldGVDb3N0Rm9yZWNhc3RSZXNwb25zZRIKCgJpZBgBIAEoCSJvChZHZXRDb3N0VXNhZ2VWMlJlc3BvbnNlEg0KBXZhbHVlGAEgASgBEgwKBGRhdGUYAiABKAkSDgoGdmVuZG9yGAMgASgJEigKB2RldGFpbHMYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ir8EChVHZXRDb3N0VXNhZ2VWMlJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSEQoJc3RhcnRUaW1lGAIgASgJEg8KB2VuZFRpbWUYAyABKAkSSAoLZ3JhbnVsYXJpdHkYBCABKA4yMy5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RVc2FnZVYyUmVxdWVzdC5HcmFudWxhcml0eRIQCghncm91cEJ5cxgFIAMoCRJCCghjYXRlZ29yeRgGIAEoDjIwLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdFVzYWdlVjJSZXF1ZXN0LkNhdGVnb3J5EhAKCGN1cnJlbmN5GAcgASgJEjoKCmF3c09wdGlvbnMYCCABKAsyJi5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXBBd3NPcHRpb25zEkQKD2F6dXJlY3NwT3B0aW9ucxgJIAEoCzIrLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cEF6dXJlQ3NwT3B0aW9ucxI6CgpnY3BPcHRpb25zGAogASgLMiYuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwR2NwT3B0aW9ucyJCCgtHcmFudWxhcml0eRIbChdHUkFOVUxBUklUWV9VTlNQRUNJRklFRBAAEgkKBURBSUxZEAESCwoHTU9OVEhMWRACIjkKCENhdGVnb3J5EhgKFENhdGVnb3J5X1VOU1BFQ0lGSUVEEAASCAoEQ09TVBABEgkKBVVTQUdFEAIiGQoXUG9wdWxhdGVEZW1vRGF0YVJlcXVlc3QiGgoYUG9wdWxhdGVEZW1vRGF0YVJlc3BvbnNlIhYKFFJlc2V0RGVtb0RhdGFSZXF1ZXN0IhcKFVJlc2V0RGVtb0RhdGFSZXNwb25zZSLfBgoZQ29udGFpbmVyQ29zdFVzYWdlUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSSgoKbWV0cmljVHlwZRgDIAEoDjI2LmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVxdWVzdC5NZXRyaWNUeXBlEhEKCXN0YXJ0VGltZRgEIAEoCRIPCgdlbmRUaW1lGAUgASgJElAKC2dyYW51bGFyaXR5GAYgASgOMjsuYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXF1ZXN0LlRpbWVHcmFudWxhcml0eRIQCghncm91cEJ5cxgHIAMoCRJLCgdmaWx0ZXJzGAggAygLMjouYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXF1ZXN0LkZpbHRlckNyaXRlcmlhEkwKC3NlcnZpY2VUeXBlGAkgASgOMjcuYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXF1ZXN0LlNlcnZpY2VUeXBlGs8BCg5GaWx0ZXJDcml0ZXJpYRILCgNrZXkYASABKAkSWwoIb3BlcmF0b3IYAiABKA4ySS5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlcXVlc3QuRmlsdGVyQ3JpdGVyaWEuRmlsdGVyT3BlcmF0b3ISDQoFdmFsdWUYAyABKAkiRAoORmlsdGVyT3BlcmF0b3ISGAoUT1BFUkFUT1JfVU5TUEVDSUZJRUQQABIJCgVFUVVBTBABEg0KCU5PVF9FUVVBTBACIkYKD1RpbWVHcmFudWxhcml0eRIbChdHUkFOVUxBUklUWV9VTlNQRUNJRklFRBAAEgkKBURBSUxZEAESCwoHTU9OVEhMWRACIloKCk1ldHJpY1R5cGUSFgoSTUVUUklDX1VOU1BFQ0lGSUVEEAASCAoEQ09TVBABEgkKBVVTQUdFEAISDgoKRUZGSUNJRU5DWRADEg8KC1VOVVNFRF9DT1NUEAQiOAoLU2VydmljZVR5cGUSFwoTU0VSVklDRV9VTlNQRUNJRklFRBAAEgcKA0VDUxABEgcKA0VLUxACItcKChpDb250YWluZXJDb3N0VXNhZ2VSZXNwb25zZRJLCgdyZXN1bHRzGAEgAygLMjouYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5Hcm91cGVkUmVzdWx0ElMKCmhpZ2hsaWdodHMYAiABKAsyPy5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlLlJlc291cmNlSGlnaGxpZ2h0cxIRCgl0b3RhbENvc3QYAyABKAESFQoNYXZnRWZmaWNpZW5jeRgEIAEoARpECgpDb3N0TWV0cmljEg4KBmFtb3VudBgBIAEoARIQCghjdXJyZW5jeRgCIAEoCRIUCgx1bnVzZWRBbW91bnQYAyABKAEakAEKC1VzYWdlTWV0cmljEgwKBHVuaXQYASABKAkSFgoOcmVzZXJ2ZWRBbW91bnQYAiABKAESFAoMYWN0dWFsQW1vdW50GAMgASgBEhIKCmVmZmljaWVuY3kYBCABKAESFgoOY3B1VXRpbGl6YXRpb24YBSABKAESGQoRbWVtb3J5VXRpbGl6YXRpb24YBiABKAEawQEKD01ldHJpY0RhdGFQb2ludBIMCgRkYXRlGAEgASgJEkcKBGNvc3QYAiABKAsyNy5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlLkNvc3RNZXRyaWNIABJJCgV1c2FnZRgDIAEoCzI4LmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVzcG9uc2UuVXNhZ2VNZXRyaWNIAEIMCgptZXRyaWNEYXRhGkwKEVJlc291cmNlSGlnaGxpZ2h0EhIKCnJlc291cmNlSWQYASABKAkSFAoMcmVzb3VyY2VOYW1lGAIgASgJEg0KBXZhbHVlGAMgASgBGoQDChJSZXNvdXJjZUhpZ2hsaWdodHMSWgoSaGlnaGVzdENsdXN0ZXJDb3N0GAEgASgLMj4uYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5SZXNvdXJjZUhpZ2hsaWdodBJZChFoaWdoZXN0VW51c2VkQ29zdBgCIAEoCzI+LmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVzcG9uc2UuUmVzb3VyY2VIaWdobGlnaHQSWwoTaGlnaGVzdFdvcmtsb2FkQ29zdBgDIAEoCzI+LmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVzcG9uc2UuUmVzb3VyY2VIaWdobGlnaHQSWgoSaGlnaGVzdENvbXB1dGVDb3N0GAQgASgLMj4uYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5SZXNvdXJjZUhpZ2hsaWdodBr6AQoNR3JvdXBlZFJlc3VsdBJeCgphdHRyaWJ1dGVzGAEgAygLMkouYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5Hcm91cGVkUmVzdWx0LkF0dHJpYnV0ZXNFbnRyeRJWChBtZXRyaWNEYXRhUG9pbnRzGAIgAygLMjwuYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5NZXRyaWNEYXRhUG9pbnQaMQoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEijwQKGEdldEFJQ29zdEFuZFVzYWdlUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSEQoJc3RhcnRUaW1lGAMgASgJEg8KB2VuZFRpbWUYBCABKAkSSwoLZ3JhbnVsYXJpdHkYBSABKA4yNi5ibHVlYXBpLmNvdmVyLnYxLkdldEFJQ29zdEFuZFVzYWdlUmVxdWVzdC5HcmFudWxhcml0eRIQCghncm91cEJ5cxgGIAMoCRJCCgdmaWx0ZXJzGAcgAygLMjEuYmx1ZWFwaS5jb3Zlci52MS5HZXRBSUNvc3RBbmRVc2FnZVJlcXVlc3QuRmlsdGVyGsIBCgZGaWx0ZXISCwoDa2V5GAEgASgJEkwKCG9wZXJhdG9yGAIgASgOMjouYmx1ZWFwaS5jb3Zlci52MS5HZXRBSUNvc3RBbmRVc2FnZVJlcXVlc3QuRmlsdGVyLk9wZXJhdG9yEg4KBnZhbHVlcxgDIAMoCRINCgV2YWx1ZRgEIAEoCSI+CghPcGVyYXRvchIYChRPUEVSQVRPUl9VTlNQRUNJRklFRBAAEgkKBUVRVUFMEAESDQoJTk9UX0VRVUFMEAIiQgoLR3JhbnVsYXJpdHkSGwoXR1JBTlVMQVJJVFlfVU5TUEVDSUZJRUQQABIJCgVEQUlMWRABEgsKB01PTlRITFkQAiKnBAoZR2V0QUlDb3N0QW5kVXNhZ2VSZXNwb25zZRJDCgdyZXN1bHRzGAEgAygLMjIuYmx1ZWFwaS5jb3Zlci52MS5HZXRBSUNvc3RBbmRVc2FnZVJlc3BvbnNlLlJlc3VsdBooCgRDb3N0Eg4KBmFtb3VudBgBIAEoARIQCghjdXJyZW5jeRgCIAEoCRolCgVVc2FnZRIMCgR1bml0GAEgASgJEg4KBmFtb3VudBgCIAEoARqYAQoGTWV0cmljEgwKBGRhdGUYASABKAkSPgoEY29zdBgCIAEoCzIwLmJsdWVhcGkuY292ZXIudjEuR2V0QUlDb3N0QW5kVXNhZ2VSZXNwb25zZS5Db3N0EkAKBXVzYWdlGAMgASgLMjEuYmx1ZWFwaS5jb3Zlci52MS5HZXRBSUNvc3RBbmRVc2FnZVJlc3BvbnNlLlVzYWdlGtgBCgZSZXN1bHQSVgoKYXR0cmlidXRlcxgBIAMoCzJCLmJsdWVhcGkuY292ZXIudjEuR2V0QUlDb3N0QW5kVXNhZ2VSZXNwb25zZS5SZXN1bHQuQXR0cmlidXRlc0VudHJ5EkMKB21ldHJpY3MYAiADKAsyMi5ibHVlYXBpLmNvdmVyLnYxLkdldEFJQ29zdEFuZFVzYWdlUmVzcG9uc2UuTWV0cmljGjEKD0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIhsKGUdldEV4ZWN1dGlvblN0YXR1c1JlcXVlc3QiVwoaR2V0RXhlY3V0aW9uU3RhdHVzUmVzcG9uc2USGAoQcmVjb21tZW5kYXRpb25JZBgBIAEoCRIOCgZzdGF0dXMYAiABKAkSDwoHbWVzc2FnZRgDIAEoCSI4ChZWZXJpZnlBUElBY2Nlc3NSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIOCgZ0YXJnZXQYAiABKAkiKQoXVmVyaWZ5QVBJQWNjZXNzUmVzcG9uc2USDgoGcmVzdWx0GAEgASgIImUKGkdldFJlY29tbWVuZGF0aW9uVjJSZXF1ZXN0EgoKAmlkGAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJEhQKDHBlcmlvZE9wdGlvbhgDIAEoCRIQCghjdXJyZW5jeRgEIAEoCSJhChtHZXRSZWNvbW1lbmRhdGlvblYyUmVzcG9uc2USQgoEZGF0YRgBIAEoCzI0LmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLlJlY29tbWVuZGF0aW9uRGF0YSJRChFPbmJvYXJkT3JnUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIQCghwYXNzd29yZBgCIAEoCRIMCgRuYW1lGAMgASgJEg0KBW9yZ0lkGAQgASgJIkMKEk9uYm9hcmRPcmdSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIk0KE0ludml0ZU1lbWJlclJlcXVlc3QSDQoFZW1haWwYASADKAkSEAoIaXNSZXNlbmQYAiABKAgSFQoNaW52aXRlQXNBZG1pbhgDIAEoCCIlChRJbnZpdGVNZW1iZXJSZXNwb25zZRINCgVlbWFpbBgBIAMoCSKkAQoTQWN0aXZhdGVVc2VyUmVxdWVzdBIOCgZ1c2VySWQYASABKAkSGAoQcHJldmlvdXNQYXNzd29yZBgCIAEoCRIQCghwYXNzd29yZBgDIAEoCRIMCgRuYW1lGAQgASgJEg4KBmxvY2FsZRgFIAEoCRINCgVlbWFpbBgGIAEoCRIPCgdpc0F1dGgwGAcgASgIEhMKC2F1dGgwVXNlcklkGAggASgJIkUKFEFjdGl2YXRlVXNlclJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiWAoTQ3JlYXRlTWVtYmVyUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIQCghwYXNzd29yZBgCIAEoCRIMCgRuYW1lGAMgASgJEhIKCmNvc3Rncm91cHMYBCADKAkiRQoUQ3JlYXRlTWVtYmVyUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSITChFHZXRNZW1iZXJzUmVxdWVzdCJDChJHZXRNZW1iZXJzUmVzcG9uc2USLQoIdXNlckRhdGEYASADKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIpChdHZXRNZW1iZXJEZXRhaWxzUmVxdWVzdBIOCgZ1c2VySWQYASABKAkiSQoYR2V0TWVtYmVyRGV0YWlsc1Jlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiKwoZR2V0TWVtYmVyQ29zdEdyb3VwUmVxdWVzdBIOCgZ1c2VySWQYASABKAkiVAoaR2V0TWVtYmVyQ29zdEdyb3VwUmVzcG9uc2USNgoKY29zdEdyb3VwcxgBIAMoCzIiLmJsdWVhcGkuYXBpLmNvdmVyLk1lbWJlckNvc3RHcm91cCJACh1VcGRhdGVNZW1iZXJQZXJtaXNzaW9uUmVxdWVzdBIOCgZ1c2VySWQYASABKAkSDwoHaXNBZG1pbhgCIAEoCCJPCh5VcGRhdGVNZW1iZXJQZXJtaXNzaW9uUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIXChVHZXRVc2VyRGV0YWlsc1JlcXVlc3QiRwoWR2V0VXNlckRldGFpbHNSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIikKF1VwZGF0ZVVzZXJBdmF0YXJSZXF1ZXN0Eg4KBmF2YXRhchgBIAEoCSJJChhVcGRhdGVVc2VyQXZhdGFyUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIlChVVcGRhdGVVc2VySWNvblJlcXVlc3QSDAoEaWNvbhgBIAEoCSJHChZVcGRhdGVVc2VySWNvblJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiMQobVXBkYXRlVXNlckNvbG9yVGhlbWVSZXF1ZXN0EhIKCmNvbG9yVGhlbWUYASABKAkiTQocVXBkYXRlVXNlckNvbG9yVGhlbWVSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIiUKFVVwZGF0ZVVzZXJOYW1lUmVxdWVzdBIMCgRuYW1lGAEgASgJIkcKFlVwZGF0ZVVzZXJOYW1lUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSInChZVcGRhdGVVc2VyRW1haWxSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJIkgKF1VwZGF0ZVVzZXJFbWFpbFJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiKwoZVXBkYXRlVXNlck1haW5WaWV3UmVxdWVzdBIOCgZ2aWV3SWQYASABKAkiSwoaVXBkYXRlVXNlck1haW5WaWV3UmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSJJChhSZXNldFVzZXJQYXNzd29yZFJlcXVlc3QSGAoQcHJldmlvdXNQYXNzd29yZBgBIAEoCRITCgtuZXdQYXNzd29yZBgCIAEoCSJKChlSZXNldFVzZXJQYXNzd29yZFJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiKQoXVXBkYXRlVXNlckxvY2FsZVJlcXVlc3QSDgoGbG9jYWxlGAEgASgJIkkKGFVwZGF0ZVVzZXJMb2NhbGVSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIi0KGVVwZGF0ZVVzZXJBcHBUaGVtZVJlcXVlc3QSEAoIYXBwVGhlbWUYASABKAkiSwoaVXBkYXRlVXNlckFwcFRoZW1lUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSJDChlVcGRhdGVVc2VyVGltZXpvbmVSZXF1ZXN0EhAKCHRpbWVab25lGAEgASgJEhQKDGF1dG9UaW1lWm9uZRgCIAEoCCJLChpVcGRhdGVVc2VyVGltZXpvbmVSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIjEKG1VwZGF0ZVVzZXJBdHRyaWJ1dGVzUmVxdWVzdBISCgphdHRyaWJ1dGVzGAEgAygJIk0KHFVwZGF0ZVVzZXJBdHRyaWJ1dGVzUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIlChNEZWxldGVNZW1iZXJSZXF1ZXN0Eg4KBnVzZXJJZBgBIAEoCSImChREZWxldGVNZW1iZXJSZXNwb25zZRIOCgZ1c2VySWQYASABKAkiJgoUUmVzZXRQYXNzd29yZFJlcXVlc3QSDgoGdXNlcklkGAEgASgJIicKFVJlc2V0UGFzc3dvcmRSZXNwb25zZRIOCgZ1c2VySWQYASABKAkiuwEKEUNyZWF0ZVZpZXdSZXF1ZXN0EgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSEQoJaXNQcml2YXRlGAMgASgIEhIKCmlzRWRpdGFibGUYBCABKAgSDAoEaWNvbhgFIAEoCRISCgpyZXBvcnRUeXBlGAYgASgJEhIKCmNvbG9yVGhlbWUYByABKAkSFAoMcmVwb3J0UGVyaW9kGAggASgJEhAKCGN1cnJlbmN5GAkgASgJIkMKEkNyZWF0ZVZpZXdSZXNwb25zZRItCgh2aWV3RGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlZpZXdEYXRhIhEKD0dldFZpZXdzUmVxdWVzdCJBChBHZXRWaWV3c1Jlc3BvbnNlEi0KCHZpZXdMaXN0GAEgAygLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVmlld0xpc3QiJwoVR2V0Q3VycmVudFZpZXdSZXF1ZXN0Eg4KBnZpZXdJZBgBIAEoCSJHChZHZXRDdXJyZW50Vmlld1Jlc3BvbnNlEi0KCHZpZXdEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVmlld0RhdGEiGQoXR2V0RmF2b3JpdGVWaWV3c1JlcXVlc3QiSwoYR2V0RmF2b3JpdGVWaWV3c1Jlc3BvbnNlEi8KCWZhdm9yaXRlcxgBIAMoCzIcLmJsdWVhcGkuYXBpLmNvdmVyLkZhdm9yaXRlcyIkChJQdWJsaXNoVmlld1JlcXVlc3QSDgoGdmlld0lkGAEgASgJIiIKE1B1Ymxpc2hWaWV3UmVzcG9uc2USCwoDdXJsGAEgASgJIiQKEkFkZEZhdm9yaXRlUmVxdWVzdBIOCgZ2aWV3SWQYASABKAkiJQoTQWRkRmF2b3JpdGVSZXNwb25zZRIOCgZ2aWV3SWQYASABKAkiJwoVUmVtb3ZlRmF2b3JpdGVSZXF1ZXN0Eg4KBnZpZXdJZBgBIAEoCSIoChZSZW1vdmVGYXZvcml0ZVJlc3BvbnNlEg4KBnZpZXdJZBgBIAEoCSKPAQoRVXBkYXRlVmlld1JlcXVlc3QSDgoGdmlld0lkGAEgASgJEgwKBG5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSDAoEaWNvbhgEIAEoCRIRCglpc1ByaXZhdGUYBSABKAgSEgoKaXNFZGl0YWJsZRgGIAEoCBISCgpjb2xvclRoZW1lGAcgASgJIiQKElVwZGF0ZVZpZXdSZXNwb25zZRIOCgZ2aWV3SWQYASABKAkiWAoXVXBkYXRlVmlld0xheW91dFJlcXVlc3QSDgoGdmlld0lkGAEgASgJEi0KBmxheW91dBgCIAMoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLldpZGdldERhdGEiSQoYVXBkYXRlVmlld0xheW91dFJlc3BvbnNlEi0KBmxheW91dBgBIAMoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLlZpZXdMYXlvdXQimgEKF1VwZGF0ZVZpZXdXaWRnZXRSZXF1ZXN0Eg4KBnZpZXdJZBgBIAEoCRIQCgh3aWRnZXRJZBgCIAEoCRIoCgdvcHRpb25zGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIzCghyZXF1ZXN0cxgEIAMoCzIhLmJsdWVhcGkuYXBpLmNvdmVyLkxheW91dFJlcXVlc3RzIl8KGFVwZGF0ZVZpZXdXaWRnZXRSZXNwb25zZRIQCgh3aWRnZXRJZBgBIAEoCRIxCgp3aWRnZXREYXRhGAIgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuV2lkZ2V0RGF0YSJBChtVcGRhdGVWaWV3Q29sb3JUaGVtZVJlcXVlc3QSDgoGdmlld0lkGAEgASgJEhIKCmNvbG9yVGhlbWUYAiABKAkiTQocVXBkYXRlVmlld0NvbG9yVGhlbWVSZXNwb25zZRItCgh2aWV3RGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlZpZXdEYXRhIj0KGVVwZGF0ZVZpZXdDdXJyZW5jeVJlcXVlc3QSDgoGdmlld0lkGAEgASgJEhAKCGN1cnJlbmN5GAIgASgJIksKGlVwZGF0ZVZpZXdDdXJyZW5jeVJlc3BvbnNlEi0KCHZpZXdEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVmlld0RhdGEiNQobU2V0T3JnVXBkYXRlQ3VycmVuY3lSZXF1ZXN0EhYKDnVwZGF0ZUN1cnJlbmN5GAEgASgDIjYKHFNldE9yZ1VwZGF0ZUN1cnJlbmN5UmVzcG9uc2USFgoOdXBkYXRlQ3VycmVuY3kYASABKAMiHQobR2V0T3JnVXBkYXRlQ3VycmVuY3lSZXF1ZXN0IlkKHEdldE9yZ1VwZGF0ZUN1cnJlbmN5UmVzcG9uc2USDQoFb3JnSWQYASABKAkSFgoOdXBkYXRlQ3VycmVuY3kYAiABKAMSEgoKbGFzdFVwZGF0ZRgDIAEoCSI+ChhMaXN0RXhjaGFuZ2VSYXRlc1JlcXVlc3QSEQoJc3RhcnREYXRlGAEgASgJEg8KB2VuZERhdGUYAiABKAkiYgoZTGlzdEV4Y2hhbmdlUmF0ZXNSZXNwb25zZRINCgVvcmdJZBgBIAEoCRI2Cg1leGNoYW5nZVJhdGVzGAIgAygLMh8uYmx1ZWFwaS5jb3Zlci52MS5FeGNoYW5nZVJhdGVzIkIKDUV4Y2hhbmdlUmF0ZXMSDQoFbW9udGgYASABKAkSFAoMZXhjaGFuZ2VSYXRlGAIgASgCEgwKBGRhdGUYAyABKAkiIwoRRGVsZXRlVmlld1JlcXVlc3QSDgoGdmlld0lkGAEgASgJIiQKEkRlbGV0ZVZpZXdSZXNwb25zZRIOCgZ2aWV3SWQYASABKAkiZQoaVXBkYXRlU2lkZU1lbnVTdGF0ZVJlcXVlc3QSDgoGdmlld0lkGAEgASgJEjcKDXNpZGVtZW51c3RhdGUYAiADKAsyIC5ibHVlYXBpLmFwaS5jb3Zlci5TaWRlTWVudVN0YXRlIi0KG1VwZGF0ZVNpZGVNZW51U3RhdGVSZXNwb25zZRIOCgZ2aWV3SWQYASABKAkiQAoaQWRkU2lkZU1lbnVGYXZvcml0ZVJlcXVlc3QSDgoGdmlld0lkGAEgASgJEhIKCm1lbnVJdGVtSWQYAiABKAkiLQobQWRkU2lkZU1lbnVGYXZvcml0ZVJlc3BvbnNlEg4KBnZpZXdJZBgBIAEoCSJDCh1SZW1vdmVTaWRlTWVudUZhdm9yaXRlUmVxdWVzdBIOCgZ2aWV3SWQYASABKAkSEgoKbWVudUl0ZW1JZBgCIAEoCSIwCh5SZW1vdmVTaWRlTWVudUZhdm9yaXRlUmVzcG9uc2USDgoGdmlld0lkGAEgASgJItMBChZDcmVhdGVDb3N0R3JvdXBSZXF1ZXN0EgwKBG5hbWUYASABKAkSLgoEdHlwZRgHIAEoDjIgLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cFR5cGUSEwoLZGVzY3JpcHRpb24YAiABKAkSDQoFaW1hZ2UYAyABKAkSDAoEaWNvbhgEIAEoCRISCgpjb2xvclRoZW1lGAUgASgJEjUKDGNvbWJpbmF0aW9ucxgGIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkNvbWJpbmF0aW9ucyJSChdDcmVhdGVDb3N0R3JvdXBSZXNwb25zZRI3Cg1jb3N0R3JvdXBEYXRhGAEgASgLMiAuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwRGF0YSIWChRHZXRDb3N0R3JvdXBzUmVxdWVzdCJQChVHZXRDb3N0R3JvdXBzUmVzcG9uc2USNwoNY29zdEdyb3VwRGF0YRgBIAMoCzIgLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cERhdGEiMQoaR2V0Q29zdEdyb3VwRGV0YWlsc1JlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkiVgobR2V0Q29zdEdyb3VwRGV0YWlsc1Jlc3BvbnNlEjcKDWNvc3RHcm91cERhdGEYASABKAsyIC5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXBEYXRhIj8KGlVwZGF0ZUNvc3RHcm91cE5hbWVSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEgwKBG5hbWUYAiABKAkiKwobVXBkYXRlQ29zdEdyb3VwTmFtZVJlc3BvbnNlEgwKBG5hbWUYASABKAkiTQohVXBkYXRlQ29zdEdyb3VwRGVzY3JpcHRpb25SZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJIjkKIlVwZGF0ZUNvc3RHcm91cERlc2NyaXB0aW9uUmVzcG9uc2USEwoLZGVzY3JpcHRpb24YASABKAkiQQobVXBkYXRlQ29zdEdyb3VwSW1hZ2VSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEg0KBWltYWdlGAIgASgJIi0KHFVwZGF0ZUNvc3RHcm91cEltYWdlUmVzcG9uc2USDQoFaW1hZ2UYASABKAkiPwoaVXBkYXRlQ29zdEdyb3VwSWNvblJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSDAoEaWNvbhgCIAEoCSIrChtVcGRhdGVDb3N0R3JvdXBJY29uUmVzcG9uc2USDAoEaWNvbhgBIAEoCSJLCiBVcGRhdGVDb3N0R3JvdXBDb2xvclRoZW1lUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRISCgpjb2xvclRoZW1lGAIgASgJIjcKIVVwZGF0ZUNvc3RHcm91cENvbG9yVGhlbWVSZXNwb25zZRISCgpjb2xvclRoZW1lGAEgASgJInAKIlVwZGF0ZUNvc3RHcm91cENvbWJpbmF0aW9uc1JlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSNQoMY29tYmluYXRpb25zGAIgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQ29tYmluYXRpb25zIlwKI1VwZGF0ZUNvc3RHcm91cENvbWJpbmF0aW9uc1Jlc3BvbnNlEjUKDGNvbWJpbmF0aW9ucxgBIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkNvbWJpbmF0aW9ucyJDChxBc3NpZ25Db3N0R3JvdXBNZW1iZXJSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEg4KBnVzZXJJZBgCIAEoCSJECh1Bc3NpZ25Db3N0R3JvdXBNZW1iZXJSZXNwb25zZRITCgtjb3N0R3JvdXBJZBgBIAEoCRIOCgZ1c2VySWQYAiABKAkiQwocUmVtb3ZlQ29zdEdyb3VwTWVtYmVyUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIOCgZ1c2VySWQYAiABKAkiRAodUmVtb3ZlQ29zdEdyb3VwTWVtYmVyUmVzcG9uc2USEwoLY29zdEdyb3VwSWQYASABKAkSDgoGdXNlcklkGAIgASgJIi0KFkRlbGV0ZUNvc3RHcm91cFJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkiLgoXRGVsZXRlQ29zdEdyb3VwUmVzcG9uc2USEwoLY29zdEdyb3VwSWQYASABKAkiMgoiR2V0QWNjb3VudEFjY2Vzc1RlbXBsYXRlVXJsUmVxdWVzdBIMCgR0eXBlGAEgASgJIqABCiNHZXRBY2NvdW50QWNjZXNzVGVtcGxhdGVVcmxSZXNwb25zZRIRCglsYXVuY2hVcmwYASABKAkSEwoLdGVtcGxhdGVVcmwYAiABKAkSEQoJc3RhY2tOYW1lGAMgASgJEhEKCXByaW5jaXBhbBgEIAEoCRISCgpleHRlcm5hbElkGAUgASgJEhcKD3RlbXBsYXRlVmVyc2lvbhgGIAEoCSIaChhMaXN0QWNjb3VudEFjY2Vzc1JlcXVlc3QiKQoXR2V0QWNjb3VudEFjY2Vzc1JlcXVlc3QSDgoGdGFyZ2V0GAEgASgJItoCCg1BY2NvdW50QWNjZXNzEg4KBnRhcmdldBgBIAEoCRITCgthY2NvdW50TmFtZRgCIAEoCRITCgthY2NvdW50VHlwZRgDIAEoCRIPCgdwYXllcklkGAQgASgJEg8KB3JvbGVBcm4YBSABKAkSEgoKZXh0ZXJuYWxJZBgGIAEoCRIPCgdzdGFja0lkGAcgASgJEhMKC3N0YWNrUmVnaW9uGAggASgJEhMKC3RlbXBsYXRlVXJsGAkgASgJEhIKCmJ1Y2tldE5hbWUYCiABKAkSDgoGcHJlZml4GAsgASgJEhIKCnJlcG9ydE5hbWUYDCABKAkSQQoScmVnaXN0cmF0aW9uU3RhdHVzGA0gASgLMiUuYmx1ZWFwaS5hcGkuY292ZXIuUmVnaXN0cmF0aW9uU3RhdHVzEg4KBnN0YXR1cxgOIAEoCRITCgtsYXN0VXBkYXRlZBgPIAEoCSJDChpDcmVhdGVBY2NvdW50QWNjZXNzUmVxdWVzdBIOCgZ0YXJnZXQYASABKAkSFQoNZnJvbVRlcnJhZm9ybRgCIAEoCCJECiJDcmVhdGVBY2NvdW50QWNjZXNzU3RhY2tzZXRSZXF1ZXN0Eg4KBnRhcmdldBgBIAEoCRIOCgZyZWdpb24YAiABKAkiLAoaVXBkYXRlQWNjb3VudEFjY2Vzc1JlcXVlc3QSDgoGdGFyZ2V0GAEgASgJIjwKGkRlbGV0ZUFjY291bnRBY2Nlc3NSZXF1ZXN0Eg4KBnRhcmdldBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkiLwobRGVsZXRlQWNjb3VudEFjY2Vzc1Jlc3BvbnNlEhAKCHRhcmdldElkGAEgASgJIlAKFlJlZ2lzdGVyQWNjb3VudFJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhEKCWFjY291bnRJZBgCIAEoCRITCgthY2NvdW50TmFtZRgDIAEoCSLmAQoRTGlzdEFzc2V0c1JlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSEgoKc3RhcnRNb250aBgCIAEoCRIQCghlbmRNb250aBgDIAEoCRIaChJ3aXRoUmVjb21tZW5kYXRpb24YBCABKAgSNwoKYXdzT3B0aW9ucxgFIAMoCzIjLmJsdWVhcGkuY292ZXIudjEuTGlzdEFzc2V0c0ZpbHRlcnMSQQoUYXdzUHJvcGVydGllc09wdGlvbnMYBiADKAsyIy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RBc3NldHNGaWx0ZXJzIo8BChFMaXN0QXNzZXRzRmlsdGVycxJHCgphbmRGaWx0ZXJzGAEgAygLMjMuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QXNzZXRzRmlsdGVycy5BbmRGaWx0ZXJzRW50cnkaMQoPQW5kRmlsdGVyc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEivQEKCFJlc291cmNlEgwKBGRhdGUYASABKAkSDQoFb3JnSWQYAiABKAkSDgoGdmVuZG9yGAMgASgJEg8KB2FjY291bnQYBCABKAkSDwoHc2VydmljZRgFIAEoCRISCgpyZXNvdXJjZUlkGAYgASgJEhQKDHJlc291cmNlVHlwZRgHIAEoCRIMCgRjb3N0GAggASgBEhIKCnByb3BlcnRpZXMYCSABKAkSFgoOcmVjb21tZW5kYXRpb24YCiABKAki5gEKF0dldEFzc2V0c1N1bW1hcnlSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhIKCnN0YXJ0TW9udGgYAiABKAkSEAoIZW5kTW9udGgYAyABKAkSFAoMY29tYmluZURhdGVzGAQgASgIEjcKCmF3c09wdGlvbnMYBSADKAsyIy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RBc3NldHNGaWx0ZXJzEkEKFGF3c1Byb3BlcnRpZXNPcHRpb25zGAYgAygLMiMuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QXNzZXRzRmlsdGVycyJrChhHZXRBc3NldHNTdW1tYXJ5UmVzcG9uc2USMAoHc3VtbWFyeRgBIAMoCzIfLmJsdWVhcGkuY292ZXIudjEuQXNzZXRzU3VtbWFyeRIdChVyZWNvbW1lbmRhdGlvblN1bW1hcnkYAiABKAkiWAoNQXNzZXRzU3VtbWFyeRIMCgRkYXRlGAEgASgJEg4KBnZlbmRvchgCIAEoCRIWCg50b3RhbFJlc291cmNlcxgDIAEoAxIRCgl0b3RhbENvc3QYBCABKAEiOgojUmVzb2x2ZUNvc3RHcm91cENvbWJpbmF0aW9uc1JlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkiaQokUmVzb2x2ZUNvc3RHcm91cENvbWJpbmF0aW9uc1Jlc3BvbnNlEhMKC2Nvc3RHcm91cElkGAEgASgJEiwKCGFjY291bnRzGAIgAygLMhouYmx1ZWFwaS5hcGkuY292ZXIuQWNjb3VudCLHBAoTR2V0Q29zdFVzYWdlUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIRCglzdGFydFRpbWUYAiABKAkSDwoHZW5kVGltZRgDIAEoCRIUCgxncm91cEJ5TW9udGgYBCABKAgSDQoFbGltaXQYBSABKAMSEAoIY2F0ZWdvcnkYBiABKAkSDwoHZ3JvdXBCeRgHIAEoCRIXCg9pbmNsdWRlWmVyb0Nvc3QYCCABKAgSQwoKYXdzT3B0aW9ucxgJIAEoCzIvLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdFVzYWdlUmVxdWVzdEF3c09wdGlvbnMSRwoMYXp1cmVPcHRpb25zGAogASgLMjEuYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0VXNhZ2VSZXF1ZXN0QXp1cmVPcHRpb25zEkMKCmdjcE9wdGlvbnMYCyABKAsyLy5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RVc2FnZVJlcXVlc3RHY3BPcHRpb25zEk0KD2F6dXJlY3NwT3B0aW9ucxgMIAEoCzI0LmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdFVzYWdlUmVxdWVzdEF6dXJlQ3NwT3B0aW9ucxJJCg1jdXN0b21PcHRpb25zGA0gASgLMjIuYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0VXNhZ2VSZXF1ZXN0Q3VzdG9tT3B0aW9ucxIXCg9pbmNsdWRlRm9yZWNhc3QYDiABKAgSEAoIY3VycmVuY3kYDyABKAki5wEKHUdldENvc3RVc2FnZVJlcXVlc3RBd3NPcHRpb25zEhYKDmdyb3VwQnlDb2x1bW5zGAEgASgJEhUKDWdyb3VwQWNjb3VudHMYAiABKAgSQQoHZmlsdGVycxgDIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEkQKCnRhZ0ZpbHRlcnMYBCADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxIOCgZ0YWdLZXkYBSABKAki2QEKH0dldENvc3RVc2FnZVJlcXVlc3RBenVyZU9wdGlvbnMSFgoOZ3JvdXBCeUNvbHVtbnMYASABKAkSFQoNZ3JvdXBBY2NvdW50cxgCIAEoCBJBCgdmaWx0ZXJzGAMgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSRAoKdGFnRmlsdGVycxgEIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzIv4CCh1HZXRDb3N0VXNhZ2VSZXF1ZXN0R2NwT3B0aW9ucxIWCg5ncm91cEJ5Q29sdW1ucxgBIAEoCRIVCg1ncm91cEFjY291bnRzGAIgASgIEkEKB2ZpbHRlcnMYAyADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxJECgp0YWdGaWx0ZXJzGAQgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSRgoMbGFiZWxGaWx0ZXJzGAUgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSTQoTcHJvamVjdExhYmVsRmlsdGVycxgGIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEg4KBnRhZ0tleRgHIAEoCSLsAQoiR2V0Q29zdFVzYWdlUmVxdWVzdEF6dXJlQ3NwT3B0aW9ucxIWCg5ncm91cEJ5Q29sdW1ucxgBIAEoCRIVCg1ncm91cEFjY291bnRzGAIgASgIEkEKB2ZpbHRlcnMYAyADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxJECgp0YWdGaWx0ZXJzGAQgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSDgoGdGFnS2V5GAUgASgJIoEDCiBHZXRDb3N0VXNhZ2VSZXF1ZXN0Q3VzdG9tT3B0aW9ucxIWCg5ncm91cEJ5Q29sdW1ucxgBIAEoCRIVCg1ncm91cEFjY291bnRzGAIgASgIEkEKB2ZpbHRlcnMYAyADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxJECgp0YWdGaWx0ZXJzGAQgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSRgoMbGFiZWxGaWx0ZXJzGAUgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSTQoTcHJvamVjdExhYmVsRmlsdGVycxgGIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEg4KBnRhZ0tleRgHIAEoCSKpAQoeUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzElQKCmFuZEZpbHRlcnMYASADKAsyQC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycy5BbmRGaWx0ZXJzRW50cnkaMQoPQW5kRmlsdGVyc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEi9gMKCENvc3RJdGVtEg4KBnZlbmRvchgBIAEoCRIMCgRkYXRlGAIgASgJEg8KB3Byb2R1Y3QYAyABKAkSDwoHYWNjb3VudBgEIAEoCRIRCgl1c2FnZVR5cGUYECABKAkSEgoKY2hhcmdlVHlwZRgRIAEoCRIMCgRjb3N0GAUgASgBEg8KB2RldGFpbHMYBiABKAkSNAoIZm9yZWNhc3QYByABKAsyIi5ibHVlYXBpLmFwaS5jb3Zlci5Bd3NDb3N0Rm9yZWNhc3QSDgoGcmVnaW9uGAggASgJEhYKDmJpbGxpbmdBY2NvdW50GAkgASgJEhAKCHRhZ1ZhbHVlGAogASgJEhIKCmxhc3RVcGRhdGUYCyABKAkSDAoEdW5pdBgMIAEoCRIQCghjYXRlZ29yeRgNIAEoCRIOCgZ0YWdnZWQYDiABKAgSFQoNbnVtYmVyT2ZVbml0cxgSIAEoARJGCg51bml0Y29zdG1ldHJpYxgPIAMoCzIuLmJsdWVhcGkuY292ZXIudjEuQ29zdEl0ZW0uVW5pdGNvc3RtZXRyaWNFbnRyeRIaChJhbGxvY2F0aW9uQ2F0ZWdvcnkYEyABKAkaNQoTVW5pdGNvc3RtZXRyaWNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAE6AjgBIjoKI0dldFJpZ2h0U2l6aW5nUmVjb21tZW5kYXRpb25SZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJIlkKJEdldFJpZ2h0U2l6aW5nUmVjb21tZW5kYXRpb25SZXNwb25zZRIxCghyZXNvdXJjZRgBIAMoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLlJlc291cmNlRGF0YSJ4ChlNb2RpZnlSZXNvdXJjZVR5cGVSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIRCglhY2NvdW50SWQYAiABKAkSEgoKcmVzb3VyY2VJZBgDIAEoCRIUCgxyZXNvdXJjZVR5cGUYBCABKAkSDgoGcmVnaW9uGAUgASgJImkKGk1vZGlmeVJlc291cmNlVHlwZVJlc3BvbnNlEhEKCWFjY291bnRJZBgBIAEoCRISCgpyZXNvdXJjZUlkGAIgASgJEhQKDHJlc291cmNlVHlwZRgDIAEoCRIOCgZyZWdpb24YBCABKAkiYQoYVGVybWluYXRlUmVzb3VyY2VSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIRCglhY2NvdW50SWQYAiABKAkSEgoKcmVzb3VyY2VJZBgDIAEoCRIOCgZyZWdpb24YBCABKAkiUgoZVGVybWluYXRlUmVzb3VyY2VSZXNwb25zZRIRCglhY2NvdW50SWQYASABKAkSEgoKcmVzb3VyY2VJZBgCIAEoCRIOCgZyZWdpb24YAyABKAkiQwoXVXBsb2FkQ2hhcmdlQ29kZVJlcXVlc3QSDAoEbmFtZRgBIAEoCRIMCgR0eXBlGAIgASgJEgwKBGZpbGUYAyABKAwiUgoYVXBsb2FkQ2hhcmdlQ29kZVJlc3BvbnNlEgwKBG5hbWUYASABKAkSKAoGc3RhdHVzGAIgASgOMhguYmx1ZWFwaS5jb3Zlci52MS5TdGF0dXMiSAoSQXNzaWduUGF5ZXJSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIRCglhY2NvdW50SWQYAiABKAkSDwoHcGF5ZXJJZBgDIAEoCSI5ChNBc3NpZ25QYXllclJlc3BvbnNlEhEKCWFjY291bnRJZBgBIAEoCRIPCgdwYXllcklkGAIgASgJIiIKEEdldFBheWVyc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJIiMKEUdldFBheWVyc1Jlc3BvbnNlEg4KBnBheWVycxgBIAMoCSI5ChJHZXRBY2NvdW50c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJIicKE0dldEFjY291bnRzUmVzcG9uc2USEAoIYWNjb3VudHMYASADKAkiOQoSR2V0U2VydmljZXNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRITCgtjb3N0R3JvdXBJZBgCIAEoCSInChNHZXRTZXJ2aWNlc1Jlc3BvbnNlEhAKCHNlcnZpY2VzGAEgAygJIjgKEUdldFJlZ2lvbnNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRITCgtjb3N0R3JvdXBJZBgCIAEoCSIlChJHZXRSZWdpb25zUmVzcG9uc2USDwoHcmVnaW9ucxgBIAMoCSI1Cg5HZXRUYWdzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEwoLY29zdEdyb3VwSWQYAiABKAkiPgoPR2V0VGFnc1Jlc3BvbnNlEisKB3RhZ0RhdGEYASADKAsyGi5ibHVlYXBpLmFwaS5jb3Zlci5UYWdEYXRhIiAKD0xpc3RGZWVzUmVxdWVzdBINCgVtb250aBgBIAEoCSLtAgoKRmVlRGV0YWlscxIKCgJpZBgBIAEoCRINCgVvcmdJZBgCIAEoCRIOCgZ2ZW5kb3IYAyABKAkSDwoHYWNjb3VudBgEIAEoCRINCgVtb250aBgFIAEoCRIQCghsaW5lVHlwZRgGIAEoCRIPCgdmZWVUeXBlGAcgASgJEhMKC3Byb2R1Y3RDb2RlGAggASgJEhMKC2Rlc2NyaXB0aW9uGAkgASgJEg8KB3N0YXJ0ZWQYCiABKAkSFAoMdGltZUludGVydmFsGAsgASgJEhMKC3Byb2R1Y3ROYW1lGAwgASgJEhAKCGN1cnJlbmN5GA0gASgJEhMKC3NwbGl0U3RhdHVzGA4gASgJEhMKC2lzQWxsb2NhdGVkGA8gASgIEhEKCWlzQXBwbGllZBgQIAEoCBIVCg11bmJsZW5kZWRDb3N0GBEgASgBEhEKCXNvdXJjZUZlZRgSIAEoCRISCgpsYXN0VXBkYXRlGBMgASgJIiIKEVJlc3RvcmVGZWVSZXF1ZXN0Eg0KBWZlZUlkGAEgASgJIlEKFkdldENvc3RHcm91cEZlZVJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSEQoJc3RhcnRUaW1lGAIgASgJEg8KB2VuZFRpbWUYAyABKAkiZgoHRmVlSXRlbRIOCgZ2ZW5kb3IYASABKAkSDQoFbW9udGgYAiABKAkSDwoHcHJvZHVjdBgDIAEoCRIPCgdhY2NvdW50GAQgASgJEgwKBHR5cGUYBSABKAkSDAoEY29zdBgGIAEoASJJCglBbGxvY2F0b3ISDAoEdHlwZRgBIAEoCRINCgV2YWx1ZRgCIAEoCRIPCgdmb3JtdWxhGAMgASgJEg4KBm1vbnRocxgEIAEoAyJoCghDcml0ZXJpYRIwCgNhbmQYASADKAsyIy5ibHVlYXBpLmNvdmVyLnYxLkNyaXRlcmlhLkFuZEVudHJ5GioKCEFuZEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiogIKFENvc3RBbGxvY2F0b3JEZXRhaWxzEgoKAmlkGAEgASgJEhAKCGNhdGVnb3J5GAIgASgJEhIKCmV4cGlyYXRpb24YAyABKAMSEgoKc3RhcnRNb250aBgEIAEoCRIWCg5kZWZhdWx0QWNjb3VudBgFIAEoCRIxCghjcml0ZXJpYRgGIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkNvbWJpbmF0aW9ucxIuCglhbGxvY2F0b3IYByADKAsyGy5ibHVlYXBpLmNvdmVyLnYxLkFsbG9jYXRvchISCgpjcmVhdGVUaW1lGAggASgJEhIKCnVwZGF0ZVRpbWUYCSABKAkSDAoEbmFtZRgKIAEoCRITCgtkZXNjcmlwdGlvbhgLIAEoCSL6AQoUQ29zdEFsbG9jYXRvclJlcXVlc3QSCgoCaWQYASABKAkSEAoIY2F0ZWdvcnkYAiABKAkSEgoKZXhwaXJhdGlvbhgDIAEoAxISCgpzdGFydE1vbnRoGAQgASgJEhYKDmRlZmF1bHRBY2NvdW50GAUgASgJEjEKCGNyaXRlcmlhGAYgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQ29tYmluYXRpb25zEi4KCWFsbG9jYXRvchgHIAMoCzIbLmJsdWVhcGkuY292ZXIudjEuQWxsb2NhdG9yEgwKBG5hbWUYCCABKAkSEwoLZGVzY3JpcHRpb24YCSABKAkiFwoVTGlzdEFsbG9jYXRvcnNSZXF1ZXN0IvABChZDcmVhdGVBbGxvY2F0b3JSZXF1ZXN0EhAKCGNhdGVnb3J5GAEgASgJEhIKCmV4cGlyYXRpb24YAiABKAMSEgoKc3RhcnRNb250aBgDIAEoCRIWCg5kZWZhdWx0QWNjb3VudBgEIAEoCRIxCghjcml0ZXJpYRgFIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkNvbWJpbmF0aW9ucxIuCglhbGxvY2F0b3IYBiADKAsyGy5ibHVlYXBpLmNvdmVyLnYxLkFsbG9jYXRvchIMCgRuYW1lGAcgASgJEhMKC2Rlc2NyaXB0aW9uGAggASgJIjIKHkdldEFsbG9jYXRpb25BdHRyaWJ1dGVzUmVxdWVzdBIQCghjYXRlZ29yeRgBIAEoCSKxAQofR2V0QWxsb2NhdGlvbkF0dHJpYnV0ZXNSZXNwb25zZRJYCglhdHRyaWJ1dGUYASADKAsyRS5ibHVlYXBpLmNvdmVyLnYxLkdldEFsbG9jYXRpb25BdHRyaWJ1dGVzUmVzcG9uc2UuQWxsb2NhdGlvbkF0dHJpYnV0ZRo0ChNBbGxvY2F0aW9uQXR0cmlidXRlEgwKBHR5cGUYASABKAkSDwoHc2VydmljZRgCIAMoCSI+ChtHZXRBbGxvY2F0aW9uU291cmNlc1JlcXVlc3QSDAoEdHlwZRgBIAEoCRIRCglhY2NvdW50SWQYAiABKAki6wEKHEdldEFsbG9jYXRpb25Tb3VyY2VzUmVzcG9uc2USUAoGc291cmNlGAEgAygLMkAuYmx1ZWFwaS5jb3Zlci52MS5HZXRBbGxvY2F0aW9uU291cmNlc1Jlc3BvbnNlLkFsbG9jYXRpb25Tb3VyY2VzEisKB3RhZ0RhdGEYAiADKAsyGi5ibHVlYXBpLmFwaS5jb3Zlci5UYWdEYXRhGkwKEUFsbG9jYXRpb25Tb3VyY2VzEhMKC2FjY291bnROYW1lGAEgASgJEg8KB3NlcnZpY2UYAiABKAkSEQoJY29zdEdyb3VwGAMgASgJIiQKFkRlbGV0ZUFsbG9jYXRvclJlcXVlc3QSCgoCaWQYASABKAkiRwocUHJveHlDcmVhdGVDb21wbGV0aW9uUmVxdWVzdBInCgZwYXJhbXMYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ii0KHVByb3h5Q3JlYXRlQ29tcGxldGlvblJlc3BvbnNlEgwKBGxpbmUYASABKAki1AQKE0FjY291bnRVc2FnZURldGFpbHMSCgoCaWQYASABKAkSDQoFb3JnSWQYAiABKAkSDgoGdmVuZG9yGAMgASgJEg8KB2FjY291bnQYBCABKAkSDAoEZGF0ZRgFIAEoCRITCgtwcm9kdWN0Q29kZRgGIAEoCRITCgtzZXJ2aWNlQ29kZRgHIAEoCRIOCgZyZWdpb24YCCABKAkSDAoEem9uZRgJIAEoCRIRCgl1c2FnZVR5cGUYCiABKAkSFAoMaW5zdGFuY2VUeXBlGAsgASgJEhEKCW9wZXJhdGlvbhgMIAEoCRIRCglpbnZvaWNlSWQYDSABKAkSEwoLZGVzY3JpcHRpb24YDiABKAkSEgoKcmVzb3VyY2VJZBgPIAEoCRIMCgR0YWdzGBAgASgJEhYKDmNvc3RDYXRlZ29yaWVzGBEgASgJEhMKC3VzYWdlQW1vdW50GBIgASgBEhkKEXRydWVVbmJsZW5kZWRDb3N0GBMgASgBEhUKDXVuYmxlbmRlZENvc3QYFCABKAESFQoNZWZmZWN0aXZlQ29zdBgVIAEoARIVCg1hbW9ydGl6ZWRDb3N0GBYgASgBEhoKEnB1YmxpY09uRGVtYW5kQ29zdBgXIAEoARIbChN1bnVzZWRBbW9ydGl6ZWRDb3N0GBggASgBEhIKCmxhc3RVcGRhdGUYGSABKAkSEwoLc3BsaXRTdGF0dXMYGiABKAkSEwoLaXNBbGxvY2F0ZWQYGyABKAgSEQoJaXNBcHBsaWVkGBwgASgIEg4KBnNvdXJjZRgdIAEoCSI9ChdMaXN0QWNjb3VudFVzYWdlUmVxdWVzdBIRCglzdGFydERhdGUYASABKAkSDwoHZW5kRGF0ZRgCIAEoCSIyChpSZXN0b3JlQWNjb3VudFVzYWdlUmVxdWVzdBIUCgxhbGxvY2F0aW9uSWQYASABKAkiIwoVUmVzdG9yZVNhdmluZ3NSZXF1ZXN0EgoKAmlkGAEgASgJIroCCg5TYXZpbmdzRGV0YWlscxIKCgJpZBgBIAEoCRINCgVvcmdJZBgCIAEoCRIOCgZ2ZW5kb3IYAyABKAkSDwoHYWNjb3VudBgEIAEoCRINCgVtb250aBgFIAEoCRIMCgR0eXBlGAYgASgJEgsKA2FybhgHIAEoCRITCgtwcm9kdWN0Q29kZRgIIAEoCRISCgpvZmZlckNsYXNzGAkgASgJEhAKCG9uZGVtYW5kGAogASgBEhUKDWVmZmVjdGl2ZUNvc3QYCyABKAESDwoHc2F2aW5ncxgMIAEoARITCgtzcGxpdFN0YXR1cxgNIAEoCRITCgtpc0FsbG9jYXRlZBgOIAEoCBIRCglpc0FwcGxpZWQYDyABKAgSDgoGc291cmNlGBAgASgJEhIKCmxhc3RVcGRhdGUYESABKAkiagodR2V0Q29zdEdyb3VwQWxsb2NhdGlvblJlcXVlc3QSEAoIY2F0ZWdvcnkYASABKAkSEwoLY29zdEdyb3VwSWQYAiABKAkSEQoJc3RhcnREYXRlGAMgASgJEg8KB2VuZERhdGUYBCABKAkigAEKDkFsbG9jYXRpb25JdGVtEg4KBnZlbmRvchgBIAEoCRINCgVtb250aBgCIAEoCRIPCgdwcm9kdWN0GAMgASgJEg8KB2FjY291bnQYBCABKAkSDAoEdHlwZRgFIAEoCRIMCgRjb3N0GAYgASgBEhEKCWNvc3RHcm91cBgHIAEoCSJfChdQcm9jZXNzQXV0aDBVc2VyUmVxdWVzdBIOCgZzb3VyY2UYASABKAkSEgoKY3VzdG9tZXJJZBgCIAEoCRINCgVlbWFpbBgDIAEoCRIRCglzdWJ1c2VySWQYBCABKAkiMAoYUHJvY2Vzc0F1dGgwVXNlclJlc3BvbnNlEhQKDGlzQXV0aG9yaXplZBgBIAEoCCKVAgoKRGF0YUFjY2VzcxIOCgZ0YXJnZXQYASABKAkSDQoFb3JnSWQYAiABKAkSMQoKZ2NwT3B0aW9ucxgDIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkdjcE9wdGlvbnMSNQoMYXp1cmVPcHRpb25zGAQgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQXp1cmVPcHRpb25zEjEKCmF3c09wdGlvbnMYBSABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5Bd3NPcHRpb25zEhMKC2FjY291bnRUeXBlGAYgASgJEhIKCmxhc3RVcGRhdGUYByABKAkSEgoKY3JlYXRlVGltZRgIIAEoCRIOCgZ2ZW5kb3IYCSABKAki7QEKGVJlZ2lzdGVyRGF0YUFjY2Vzc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg4KBnRhcmdldBgCIAEoCRITCgthY2NvdW50VHlwZRgDIAEoCRIxCgpnY3BPcHRpb25zGAQgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuR2NwT3B0aW9ucxI1CgxhenVyZU9wdGlvbnMYBSABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5BenVyZU9wdGlvbnMSMQoKYXdzT3B0aW9ucxgGIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkF3c09wdGlvbnMi6wEKF1VwZGF0ZURhdGFBY2Nlc3NSZXF1ZXN0Eg4KBnRhcmdldBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSMQoKZ2NwT3B0aW9ucxgDIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkdjcE9wdGlvbnMSNQoMYXp1cmVPcHRpb25zGAQgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQXp1cmVPcHRpb25zEjEKCmF3c09wdGlvbnMYBSABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5Bd3NPcHRpb25zEhMKC2FjY291bnRUeXBlGAYgASgJIhcKFUxpc3REYXRhQWNjZXNzUmVxdWVzdCIhCh9MaXN0VW5yZWdpc3RlcmVkQWNjb3VudHNSZXF1ZXN0InEKIExpc3RVbnJlZ2lzdGVyZWRBY2NvdW50c1Jlc3BvbnNlEg0KBW9yZ0lkGAEgASgJEj4KEXVucmVnaXN0ZXJlZEFjY3RzGAIgAygLMiMuYmx1ZWFwaS5jb3Zlci52MS5VbnJlZ2lzdGVyZWRBY2N0cyJUChFVbnJlZ2lzdGVyZWRBY2N0cxIKCgJpZBgBIAEoCRIPCgdwYXllcklkGAIgASgJEg4KBnN0YXR1cxgDIAEoCRISCgpsYXN0VXBkYXRlGAQgASgJInwKFUJpbGxpbmdBY2NvdW50UmVxdWVzdBIRCgliaWxsaW5nSWQYASABKAkSEQoJZGF0YXNldElkGAIgASgJEhUKDWRhdGFzZXRSZWdpb24YAyABKAkSEQoJcHJvamVjdElkGAQgASgJEhMKC2JpbGxpbmdOYW1lGAUgASgJIlQKHUdldEFuZERlbGV0ZURhdGFBY2Nlc3NSZXF1ZXN0Eg4KBnRhcmdldBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSEwoLYWNjb3VudFR5cGUYAyABKAkiYQoiQWRkUGFydG5lckNlbnRlckNyZWRlbnRpYWxzUmVxdWVzdBIRCglhY2NvdW50SWQYASABKAkSFQoNYXBwbGljYXRpb25JZBgCIAEoCRIRCglzZWNyZXRLZXkYAyABKAkiJQoUQWRkTXBuU2V0dGluZ1JlcXVlc3QSDQoFbXBuSWQYASABKAki1gEKHEdldENvc3RHcm91cEF0dHJpYnV0ZVJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhUKDWF0dHJpYnV0ZVR5cGUYAiABKAkSEwoLY29zdEdyb3VwSWQYAyABKAkSPQoUZXhpc3RpbmdDb21iaW5hdGlvbnMYBCADKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Db21iaW5hdGlvbnMSOwoSY3VycmVudENvbWJpbmF0aW9uGAUgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQ29tYmluYXRpb25zIncKHUdldENvc3RHcm91cEF0dHJpYnV0ZVJlc3BvbnNlEikKBnJlc3VsdBgBIAMoCzIZLmJsdWVhcGkuYXBpLmNvdmVyLlJlc3VsdBIrCgd0YWdEYXRhGAIgAygLMhouYmx1ZWFwaS5hcGkuY292ZXIuVGFnRGF0YSImChRHZXRDYXRlZ29yaWVzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkiRgoVR2V0Q2F0ZWdvcmllc1Jlc3BvbnNlEi0KCGNhdGVnb3J5GAEgAygLMhsuYmx1ZWFwaS5hcGkuY292ZXIuQ2F0ZWdvcnkiEgoQR2V0QWxlcnRzUmVxdWVzdCJEChFHZXRBbGVydHNSZXNwb25zZRIvCglhbGVydERhdGEYASABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5BbGVydERhdGEihgEKEkNyZWF0ZUFsZXJ0UmVxdWVzdBIMCgRuYW1lGAEgASgJEhMKC2ZpeGVkQW1vdW50GAIgASgCEhIKCnBlcmNlbnRhZ2UYAyABKAISEwoLZ3JhbnVsYXJpdHkYBCABKAkSEgoKY29zdEdyb3VwcxgFIAMoCRIQCghjaGFubmVscxgGIAMoCSJGChNDcmVhdGVBbGVydFJlc3BvbnNlEi8KCWFsZXJ0RGF0YRgBIAEoCzIcLmJsdWVhcGkuYXBpLmNvdmVyLkFsZXJ0RGF0YSIkChZHZXRBbGVydERldGFpbHNSZXF1ZXN0EgoKAmlkGAEgASgJIkoKF0dldEFsZXJ0RGV0YWlsc1Jlc3BvbnNlEi8KCWFsZXJ0RGF0YRgBIAEoCzIcLmJsdWVhcGkuYXBpLmNvdmVyLkFsZXJ0RGF0YSIgChJEZWxldGVBbGVydFJlcXVlc3QSCgoCaWQYASABKAkiIQoTRGVsZXRlQWxlcnRSZXNwb25zZRIKCgJpZBgBIAEoCSKZAQoZVXBkYXRlQWxlcnREZXRhaWxzUmVxdWVzdBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC2ZpeGVkQW1vdW50GAMgASgCEhIKCnBlcmNlbnRhZ2UYBCABKAISEwoLZ3JhbnVsYXJpdHkYBSABKAkSEgoKY29zdEdyb3VwcxgGIAMoCRIQCghjaGFubmVscxgHIAMoCSJNChpVcGRhdGVBbGVydERldGFpbHNSZXNwb25zZRIvCglhbGVydERhdGEYASABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5BbGVydERhdGEiIgoSR2V0Q2hhbm5lbHNSZXF1ZXN0EgwKBHR5cGUYASABKAkiSgoTR2V0Q2hhbm5lbHNSZXNwb25zZRIzCgtjaGFubmVsRGF0YRgBIAEoCzIeLmJsdWVhcGkuYXBpLmNvdmVyLkNoYW5uZWxEYXRhIkYKFENyZWF0ZUNoYW5uZWxSZXF1ZXN0EgwKBG5hbWUYASABKAkSDAoEdHlwZRgCIAEoCRISCgp3ZWJob29rVXJsGAMgASgJIkwKFUNyZWF0ZUNoYW5uZWxSZXNwb25zZRIzCgtjaGFubmVsRGF0YRgBIAEoCzIeLmJsdWVhcGkuYXBpLmNvdmVyLkNoYW5uZWxEYXRhIiYKGEdldENoYW5uZWxEZXRhaWxzUmVxdWVzdBIKCgJpZBgBIAEoCSJQChlHZXRDaGFubmVsRGV0YWlsc1Jlc3BvbnNlEjMKC2NoYW5uZWxEYXRhGAEgASgLMh4uYmx1ZWFwaS5hcGkuY292ZXIuQ2hhbm5lbERhdGEiIgoURGVsZXRlQ2hhbm5lbFJlcXVlc3QSCgoCaWQYASABKAkiIwoVRGVsZXRlQ2hhbm5lbFJlc3BvbnNlEgoKAmlkGAEgASgJIlkKG1VwZGF0ZUNoYW5uZWxEZXRhaWxzUmVxdWVzdBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBHR5cGUYAyABKAkSEgoKd2ViaG9va1VybBgEIAEoCSJTChxVcGRhdGVDaGFubmVsRGV0YWlsc1Jlc3BvbnNlEjMKC2NoYW5uZWxEYXRhGAEgASgLMh4uYmx1ZWFwaS5hcGkuY292ZXIuQ2hhbm5lbERhdGEizwEKIUdldERpc2NvdW50UmVjb21tZW5kYXRpb25zUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIvCglhd3NJbnB1dHMYAiABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5Bd3NJbnB1dHMSMwoLYXp1cmVJbnB1dHMYAyABKAsyHi5ibHVlYXBpLmFwaS5jb3Zlci5BenVyZUlucHV0cxIvCglnY3BJbnB1dHMYBCABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5HY3BJbnB1dHMiiQIKIkdldERpc2NvdW50UmVjb21tZW5kYXRpb25zUmVzcG9uc2USSQoSYXdzUmVjb21tZW5kYXRpb25zGAEgASgLMi0uYmx1ZWFwaS5hcGkuY292ZXIuQXdzRGlzY291bnRSZWNvbW1lbmRhdGlvbnMSTQoUYXp1cmVSZWNvbW1lbmRhdGlvbnMYAiABKAsyLy5ibHVlYXBpLmFwaS5jb3Zlci5BenVyZURpc2NvdW50UmVjb21tZW5kYXRpb25zEkkKEmdjcFJlY29tbWVuZGF0aW9ucxgDIAEoCzItLmJsdWVhcGkuYXBpLmNvdmVyLkdjcERpc2NvdW50UmVjb21tZW5kYXRpb25zIlcKHEdldEFub21hbHlpbkNvc3RHcm91cFJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSEQoJc3RhcnREYXRlGAIgASgJEg8KB2VuZERhdGUYAyABKAki4QEKC0Fub21hbHlEYXRhEg8KB2FjY291bnQYASABKAkSEwoLY29zdEdyb3VwSWQYAiABKAkSDgoGdmVuZG9yGAMgASgJEg8KB3Byb2R1Y3QYBCABKAkSDAoEZGF0ZRgFIAEoCRIRCgl0b3RhbENvc3QYBiABKAISEQoJaXNBbm9tYWx5GAcgASgIEhIKCmxvd2VyTGltaXQYCCABKAISEgoKdXBwZXJMaW1pdBgJIAEoAhITCgthbm9tYWx5Q29zdBgKIAEoAhIaChJhbm9tYWx5UHJvYmFiaWxpdHkYCyABKAIihQEKJENyZWF0ZURpc2NvdW50RXhwaXJhdGlvbkFsZXJ0UmVxdWVzdBITCgtmcmVxdWVuY2llcxgBIAMoAxISCgpjb3N0R3JvdXBzGAIgAygJEhQKDGFsZXJ0RW5hYmxlZBgDIAEoCBIQCghjaGFubmVscxgEIAMoCRIMCgRuYW1lGAUgASgJIjYKKE1hbmlwdWxhdGVEaXNjb3VudEV4cGlyYXRpb25BbGVydFJlcXVlc3QSCgoCaWQYASABKAkikQEKJFVwZGF0ZURpc2NvdW50RXhwaXJhdGlvbkFsZXJ0UmVxdWVzdBIKCgJpZBgBIAEoCRIUCgxhbGVydEVuYWJsZWQYAiABKAgSEAoIY2hhbm5lbHMYAyADKAkSEwoLZnJlcXVlbmNpZXMYBCADKAMSEgoKY29zdEdyb3VwcxgFIAMoCRIMCgRuYW1lGAYgASgJIukBChdEaXNjb3VudEV4cGlyeUFsZXJ0RGF0YRIKCgJpZBgBIAEoCRINCgVvcmdJZBgCIAEoCRIUCgxhbGVydEVuYWJsZWQYAyABKAgSEwoLZnJlcXVlbmNpZXMYBCADKAMSNQoKY29zdEdyb3VwcxgFIAMoCzIhLmJsdWVhcGkuYXBpLmNvdmVyLkFsZXJ0Q29zdEdyb3VwEg8KB2RldGFpbHMYBiABKAkSMgoIY2hhbm5lbHMYByABKAsyIC5ibHVlYXBpLmFwaS5jb3Zlci5BbGVydENoYW5uZWxzEgwKBG5hbWUYCCABKAkiJAoiTGlzdERpc2NvdW50RXhwaXJhdGlvbkFsZXJ0UmVxdWVzdCKFAQoZQ3JlYXRlQW5vbWFseUFsZXJ0UmVxdWVzdBIMCgRuYW1lGAEgASgJEhQKDGFsZXJ0RW5hYmxlZBgCIAEoCBIRCglmcmVxdWVuY3kYAyABKAkSEwoLY29zdEdyb3VwSWQYBCABKAkSHAoUbm90aWZpY2F0aW9uQ2hhbm5lbHMYBSADKAkiKwodTWFuaXB1bGF0ZUFub21hbHlBbGVydFJlcXVlc3QSCgoCaWQYASABKAki0AEKEEFub21hbHlBbGVydERhdGESCgoCaWQYASABKAkSDQoFb3JnSWQYAiABKAkSDAoEbmFtZRgDIAEoCRIUCgxhbGVydEVuYWJsZWQYBCABKAgSEQoJZnJlcXVlbmN5GAUgASgJEjYKC2Nvc3RHcm91cElkGAYgASgLMiEuYmx1ZWFwaS5hcGkuY292ZXIuQWxlcnRDb3N0R3JvdXASMgoIY2hhbm5lbHMYByABKAsyIC5ibHVlYXBpLmFwaS5jb3Zlci5BbGVydENoYW5uZWxzIhkKF0xpc3RBbm9tYWx5QWxlcnRSZXF1ZXN0IpEBChlVcGRhdGVBbm9tYWx5QWxlcnRSZXF1ZXN0EgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSFAoMYWxlcnRFbmFibGVkGAMgASgIEhwKFG5vdGlmaWNhdGlvbkNoYW5uZWxzGAQgAygJEhEKCWZyZXF1ZW5jeRgFIAEoCRITCgtjb3N0R3JvdXBJZBgGIAEoCSKJAQoWUmVnaXN0ZXJOZXdVc2VyUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIQCghwYXNzd29yZBgCIAEoCRIMCgRuYW1lGAMgASgJEg8KB2NvbXBhbnkYBCABKAkSDAoEcm9sZRgFIAEoCRIOCgZhbW91bnQYBiABKAkSEQoJaW50ZW50aW9uGAcgASgJIi8KF1JlZ2lzdGVyTmV3VXNlclJlc3BvbnNlEhQKDGlzQXV0aG9yaXplZBgBIAEoCCImChVHZXRVc2VyUHJvZmlsZVJlcXVlc3QSDQoFZW1haWwYASABKAkizgEKFkdldFVzZXJQcm9maWxlUmVzcG9uc2USGQoRaGFzQ3JlYXRlZFByb2ZpbGUYASABKAgSDAoEbmFtZRgCIAEoCRIMCgRyb2xlGAMgASgJEg0KBXVzYWdlGAQgASgJEhEKCWludGVudGlvbhgFIAEoCRITCgtjb21wYW55TmFtZRgGIAEoCRIUCgxlbWFpbEFkZHJlc3MYByABKAkSEgoKbGlua1NvdXJjZRgIIAEoCRIcChRoYXNTdWJzY3JpYmVkVXBkYXRlcxgJIAEoCCKuAQoYVXBkYXRlVXNlclByb2ZpbGVSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJEgwKBG5hbWUYAiABKAkSDAoEcm9sZRgDIAEoCRINCgV1c2FnZRgEIAEoCRIRCglpbnRlbnRpb24YBSABKAkSEwoLY29tcGFueU5hbWUYBiABKAkSEgoKbGlua1NvdXJjZRgHIAEoCRIcChRoYXNTdWJzY3JpYmVkVXBkYXRlcxgIIAEoCCKvAQoZVXBkYXRlVXNlclByb2ZpbGVSZXNwb25zZRINCgVlbWFpbBgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBHJvbGUYAyABKAkSDQoFdXNhZ2UYBCABKAkSEQoJaW50ZW50aW9uGAUgASgJEhMKC2NvbXBhbnlOYW1lGAYgASgJEhIKCmxpbmtTb3VyY2UYByABKAkSHAoUaGFzU3Vic2NyaWJlZFVwZGF0ZXMYCCABKAgiSAoSTGlzdEJ1ZGdldHNSZXF1ZXN0Eh8KF2luY2x1ZGVTcGVuZEFuZEZvcmVjYXN0GAEgASgIEhEKCWNvc3RHcm91cBgCIAEoCSJIChNMaXN0QnVkZ2V0c1Jlc3BvbnNlEjEKCmJ1ZGdldERhdGEYASABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5CdWRnZXREYXRhIh4KEEdldEJ1ZGdldFJlcXVlc3QSCgoCaWQYASABKAkiRgoRR2V0QnVkZ2V0UmVzcG9uc2USMQoKYnVkZ2V0RGF0YRgBIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkJ1ZGdldERhdGEiSAoTQ3JlYXRlQnVkZ2V0UmVxdWVzdBIxCgpidWRnZXREYXRhGAEgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuQnVkZ2V0RGF0YSJJChRDcmVhdGVCdWRnZXRSZXNwb25zZRIxCgpidWRnZXREYXRhGAEgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuQnVkZ2V0RGF0YSIhChNEZWxldGVCdWRnZXRSZXF1ZXN0EgoKAmlkGAEgASgJIiIKFERlbGV0ZUJ1ZGdldFJlc3BvbnNlEgoKAmlkGAEgASgJIlQKE1VwZGF0ZUJ1ZGdldFJlcXVlc3QSCgoCaWQYASABKAkSMQoKYnVkZ2V0RGF0YRgCIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkJ1ZGdldERhdGEiSQoUVXBkYXRlQnVkZ2V0UmVzcG9uc2USMQoKYnVkZ2V0RGF0YRgBIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkJ1ZGdldERhdGEiSwouUmVzb2x2ZUFXU01hcmtldHBsYWNlVG9rZW5Gb3JPbmJvYXJkaW5nUmVxdWVzdBIZChFyZWdpc3RyYXRpb25Ub2tlbhgBIAEoCSJhCi9SZXNvbHZlQVdTTWFya2V0cGxhY2VUb2tlbkZvck9uYm9hcmRpbmdSZXNwb25zZRIaChJpc0FsbG93ZWRUb09uYm9hcmQYASABKAgSEgoKY3VzdG9tZXJJZBgCIAEoCSImCiRHZXRDdXN0b21lclN1YnNjcmlwdGlvblN0YXR1c1JlcXVlc3Qi8gEKJUdldEN1c3RvbWVyU3Vic2NyaXB0aW9uU3RhdHVzUmVzcG9uc2USFgoOZGF0ZVJlZ2lzdGVyZWQYASABKAkSGgoSc3Vic2NyaXB0aW9uRXhwaXJ5GAIgASgJEhAKCGRheXNMZWZ0GAMgASgFEhQKDGlzU3Vic2NyaWJlZBgEIAEoCBIRCglpc0V4cGlyZWQYBSABKAgSDAoEcGxhbhgGIAEoCRIOCgZhbW91bnQYByABKAkSFQoNcGF5bWVudE9wdGlvbhgIIAEoCRIVCg1wYXltZW50TWV0aG9kGAkgASgJEg4KBmNyZWRpdBgKIAEoASKzAQoWQ3JlYXRlUHJvZmlsaW5nUmVxdWVzdBIMCgRuYW1lGAEgASgJEgwKBHJvbGUYAiABKAkSDQoFdXNhZ2UYAyABKAkSEQoJaW50ZW50aW9uGAQgASgJEhMKC2NvbXBhbnlOYW1lGAUgASgJEhQKDGVtYWlsQWRkcmVzcxgGIAEoCRISCgpsaW5rU291cmNlGAcgASgJEhwKFGhhc1N1YnNjcmliZWRVcGRhdGVzGAggASgIIhkKF0NyZWF0ZVByb2ZpbGluZ1Jlc3BvbnNlIjkKG0FkZEluZm90b01hcmtldHBsYWNlUmVxdWVzdBIaChJjdXN0b21lcklkZW50aWZpZXIYASABKAkiHgocQWRkSW5mb3RvTWFya2V0cGxhY2VSZXNwb25zZSJ4ChdHZXRSZXBvcnRTdW1tYXJ5UmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIRCglzdGFydERhdGUYAiABKAkSDwoHZW5kRGF0ZRgDIAEoCRISCgpyZXBvcnRUeXBlGAQgASgJEhAKCGN1cnJlbmN5GAUgASgJIq4CChhHZXRSZXBvcnRTdW1tYXJ5UmVzcG9uc2USEwoLY29zdEdyb3VwSWQYASABKAkSEQoJc3RhcnREYXRlGAIgASgJEg8KB2VuZERhdGUYAyABKAkSPQoQZXhlY3V0aXZlU3VtbWFyeRgEIAEoCzIjLmJsdWVhcGkuYXBpLmNvdmVyLkV4ZWN1dGl2ZVN1bW1hcnkSXwohb3B0aW1pemF0aW9uUmVjb21tZW5kYXRpb25TdW1tYXJ5GAUgASgLMjQuYmx1ZWFwaS5hcGkuY292ZXIuT3B0aW1pemF0aW9uUmVjb21tZW5kYXRpb25TdW1tYXJ5EjkKDnNhdmluZ3NTdW1tYXJ5GAYgASgLMiEuYmx1ZWFwaS5hcGkuY292ZXIuU2F2aW5nc1N1bW1hcnkiqgIKGUxpc3RSZWNvbW1lbmRhdGlvblJlcXVlc3QSEwoLY29zdGdyb3VwSWQYASABKAkSFgoOZGF0ZVJhbmdlU3RhcnQYAiABKAkSFAoMZGF0ZVJhbmdlRW5kGAMgASgJEg4KBnZlbmRvchgEIAEoCRIOCgZzb3VyY2UYBSABKAkSGgoSb3B0aW1pemF0aW9uU3RhdHVzGAcgASgJEgwKBHR5cGUYCCABKAkSDgoGc3BUeXBlGAkgASgJEhEKCXJhdGVNb2RlbBgKIAEoCRIVCg1wYXltZW50T3B0aW9uGAsgASgJEgwKBHRlcm0YDCABKAkSDwoHc2VydmljZRgNIAEoCRIVCg1vZmZlcmluZ0NsYXNzGA4gASgJEhAKCGN1cnJlbmN5GA8gASgJItUCChtMaXN0UmVjb21tZW5kYXRpb25WMlJlcXVlc3QSEwoLY29zdGdyb3VwSWQYASABKAkSFgoOZGF0ZVJhbmdlU3RhcnQYAiABKAkSFAoMZGF0ZVJhbmdlRW5kGAMgASgJElAKDHJhdGVTZXR0aW5ncxgEIAEoCzI6LmJsdWVhcGkuY292ZXIudjEuTGlzdFJlY29tbWVuZGF0aW9uVjJSZXF1ZXN0LlJhdGVTZXR0aW5ncxIQCghjdXJyZW5jeRgFIAEoCRqOAQoMUmF0ZVNldHRpbmdzEg4KBnNwVHlwZRgBIAEoCRIRCglyYXRlTW9kZWwYAiABKAkSFQoNcGF5bWVudE9wdGlvbhgDIAEoCRIMCgR0ZXJtGAQgASgJEg8KB3NlcnZpY2UYBSABKAkSFQoNb2ZmZXJpbmdDbGFzcxgGIAEoCRIOCgZ2ZW5kb3IYByABKAki2gYKGkxpc3RSZWNvbW1lbmRhdGlvblJlc3BvbnNlEhgKEHJlY29tbWVuZGF0aW9uSWQYASABKAkSFgoOcmVjb21tZW5kYXRpb24YAiABKAkSDwoHc2VydmljZRgDIAEoCRIeChZlc3RpbWF0ZWRNb250aGx5U2F2aW5nGAQgASgBEhwKFGVzdGltYXRlZE1vbnRobHlDb3N0GAUgASgBEg8KB3Njb3JpbmcYBiABKAkSDgoGdmVuZG9yGAcgASgJEhAKCGNhdGVnb3J5GAggASgJEhoKEm9wdGltaXphdGlvblN0YXR1cxgJIAEoCRIUCgxlcnJvck1lc3NhZ2UYCiABKAkSEQoJYWNjb3VudElkGAsgASgJEhMKC2FjY291bnROYW1lGAwgASgJEhQKDGluc3RhbmNlTmFtZRgNIAEoCRISCgppbnN0YW5jZUlkGA4gASgJEhQKDGluc3RhbmNlVHlwZRgPIAEoCRIOCgZyZWdpb24YECABKAkSEgoKY29tbWl0bWVudBgRIAEoARIOCgZzcFR5cGUYEiABKAkSGAoQbnVtYmVyVG9QdXJjaGFzZRgTIAEoAxIOCgZyaVR5cGUYFCABKAkSDAoEdHlwZRgVIAEoCRIOCgZzb3VyY2UYFiABKAkSFwoPZGF0ZVJlY29tbWVuZGVkGBcgASgJEhsKE3JlY29tbWVuZGF0aW9uR3JvdXAYGCABKAkSFQoNbGFzdFVwZGF0ZWRBdBgZIAEoCRJTCg5wdXJjaGFzZU9wdGlvbhgaIAEoCzI7LmJsdWVhcGkuY292ZXIudjEuTGlzdFJlY29tbWVuZGF0aW9uUmVzcG9uc2UuUHVyY2hhc2VPcHRpb24azwEKDlB1cmNoYXNlT3B0aW9uEg4KBnNwVHlwZRgBIAEoCRIVCg1vZmZlcmluZ0NsYXNzGAIgASgJEhIKCmNvbW1pdG1lbnQYAyABKAESGAoQbnVtYmVyVG9QdXJjaGFzZRgEIAEoAxIVCg1wYXltZW50T3B0aW9uGAUgASgJEgwKBHRlcm0YBiABKAkSGQoRY3VycmVudEdlbmVyYXRpb24YByABKAgSEwoLc2VydmljZVR5cGUYCCABKAkSEwoLdXBmcm9udENvc3QYCSABKAEiUQoYR2V0UmVjb21tZW5kYXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJEhQKDHBlcmlvZE9wdGlvbhgDIAEoCSJeChlHZXRSZWNvbW1lbmRhdGlvblJlc3BvbnNlEkEKEnJlY29tbWVuZGF0aW9uRGF0YRgBIAEoCzIlLmJsdWVhcGkuYXBpLmNvdmVyLkFXU1JlY29tbWVuZGF0aW9ucyJEChpFeGVjdXRlT3B0aW1pemF0aW9uUmVxdWVzdBIYChByZWNvbW1lbmRhdGlvbklkGAEgASgJEgwKBHR5cGUYAiABKAkilAMKG0V4ZWN1dGVPcHRpbWl6YXRpb25SZXNwb25zZRJMCglhd3NPcHRpb24YASABKAsyNy5ibHVlYXBpLmNvdmVyLnYxLkV4ZWN1dGVPcHRpbWl6YXRpb25SZXNwb25zZS5BV1NPcHRpb25IABJMCglnY3BPcHRpb24YAiABKAsyNy5ibHVlYXBpLmNvdmVyLnYxLkV4ZWN1dGVPcHRpbWl6YXRpb25SZXNwb25zZS5HQ1BPcHRpb25IABJWCg5henVyZUNzcE9wdGlvbhgDIAEoCzI8LmJsdWVhcGkuY292ZXIudjEuRXhlY3V0ZU9wdGltaXphdGlvblJlc3BvbnNlLkF6dXJlQ1NQT3B0aW9uSAAaWAoJQVdTT3B0aW9uEhoKEmFwcHJvdmVUZW1wbGF0ZVVybBgBIAEoCRIYChByZWNvbW1lbmRhdGlvbklkGAIgASgJEhUKDWN1cnJlbnRTdGF0dXMYAyABKAkaCwoJR0NQT3B0aW9uGhAKDkF6dXJlQ1NQT3B0aW9uQggKBlZlbmRvciIjChVNYXJrQXNFeGVjdXRlZFJlcXVlc3QSCgoCaWQYASADKAkiGAoWTWFya0FzRXhlY3V0ZWRSZXNwb25zZSIvCiFVbmRvRXhlY3V0ZWRSZWNvbW1lbmRhdGlvblJlcXVlc3QSCgoCaWQYASADKAkiJAoiVW5kb0V4ZWN1dGVkUmVjb21tZW5kYXRpb25SZXNwb25zZSKnAQoaT3B0aW1pemF0aW9uSGlzdG9yeVJlcXVlc3QSEwoLY29zdGdyb3VwSWQYASABKAkSFgoOZGF0ZVJhbmdlU3RhcnQYAiABKAkSFAoMZGF0ZVJhbmdlRW5kGAMgASgJEg4KBnZlbmRvchgEIAEoCRIOCgZzb3VyY2UYBSABKAkSFAoMcGVyaW9kT3B0aW9uGAYgASgJEhAKCGN1cnJlbmN5GAcgASgJInYKG09wdGltaXphdGlvbkhpc3RvcnlSZXNwb25zZRJXCh1leGVjdXRlZFJlY29tbWVuZGF0aW9uRGV0YWlscxgCIAMoCzIwLmJsdWVhcGkuYXBpLmNvdmVyLkV4ZWN1dGVkUmVjb21tZW5kYXRpb25EZXRhaWxzImAKIVNldENvc3RHcm91cEV2ZW50SW5kaWNhdG9yUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIPCgdhbm9tYWx5GAIgASgIEhUKDXZpc3VhbEJ1aWxkZXIYAyABKAgidAoiU2V0Q29zdEdyb3VwRXZlbnRJbmRpY2F0b3JSZXNwb25zZRITCgtjb3N0R3JvdXBJZBgBIAEoCRI5Cg5ldmVudEluZGljYXRvchgCIAEoCzIhLmJsdWVhcGkuYXBpLmNvdmVyLkV2ZW50SW5kaWNhdG9yInsKIVNldENvc3RHcm91cEFub21hbHlPcHRpb25zUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIRCgl0aHJlc2hvbGQYAiABKAISFAoMaXNQZXJjZW50YWdlGAMgASgIEhgKEHBhc3REYXRhSW5Nb250aHMYBCABKAMidAoiU2V0Q29zdEdyb3VwQW5vbWFseU9wdGlvbnNSZXNwb25zZRITCgtjb3N0R3JvdXBJZBgBIAEoCRI5Cg5hbm9tYWx5T3B0aW9ucxgCIAEoCzIhLmJsdWVhcGkuYXBpLmNvdmVyLkFub21hbHlPcHRpb25zIi8KGFNldE9yZ0Zpc2NhbE1vbnRoUmVxdWVzdBITCgtmaXNjYWxNb250aBgBIAEoCSIwChlTZXRPcmdGaXNjYWxNb250aFJlc3BvbnNlEhMKC2Zpc2NhbE1vbnRoGAEgASgJIhoKGEdldE9yZ0Zpc2NhbE1vbnRoUmVxdWVzdCJIChlHZXRPcmdGaXNjYWxNb250aFJlc3BvbnNlEhMKC2Zpc2NhbE1vbnRoGAEgASgJEhYKDmRhdGVSZWdpc3RlcmVkGAIgASgJIlsKG1RyYW5zZmVyT3JnYW5pemF0aW9uUmVxdWVzdBIOCgZ0YXJnZXQYASABKAkSDgoGcmVnaW9uGAIgASgJEg0KBXBheWVyGAMgASgJEg0KBW9yZ0lkGAQgASgJIi4KHFRyYW5zZmVyT3JnYW5pemF0aW9uUmVzcG9uc2USDgoGdGFyZ2V0GAEgASgJIkUKIFVwZGF0ZUNvc3RHcm91cENyZWF0aW9uVUlSZXF1ZXN0EiEKGXVzZU5ld0Nvc3RHcm91cENyZWF0aW9uVUkYASABKAgiUgohVXBkYXRlQ29zdEdyb3VwQ3JlYXRpb25VSVJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiFgoUTGlzdFVuaXRUeXBlc1JlcXVlc3QiTgoVTGlzdFVuaXRUeXBlc1Jlc3BvbnNlEjUKDHVuaXRDb3N0RGF0YRgBIAMoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRDb3N0RGF0YSK2AQoVQ3JlYXRlVW5pdFR5cGVSZXF1ZXN0EhAKCHVuaXROYW1lGAEgASgJEi4KCXVuaXRJdGVtcxgCIAMoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRJdGVtEkYKD3NoYXJlZFJlc291cmNlcxgDIAMoCzItLmJsdWVhcGkuYXBpLmNvdmVyLlNoYXJlZFJlc291cmNlc0NvbWJpbmF0aW9uEhMKC2Rlc2NyaXB0aW9uGAQgASgJIk8KFkNyZWF0ZVVuaXRUeXBlUmVzcG9uc2USNQoMdW5pdENvc3REYXRhGAEgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuVW5pdENvc3REYXRhIiAKEkdldFVuaXRUeXBlUmVxdWVzdBIKCgJpZBgBIAEoCSJMChNHZXRVbml0VHlwZVJlc3BvbnNlEjUKDHVuaXRDb3N0RGF0YRgBIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRDb3N0RGF0YSLCAQoVVXBkYXRlVW5pdFR5cGVSZXF1ZXN0EgoKAmlkGAEgASgJEhAKCHVuaXROYW1lGAIgASgJEi4KCXVuaXRJdGVtcxgDIAMoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRJdGVtEkYKD3NoYXJlZFJlc291cmNlcxgEIAMoCzItLmJsdWVhcGkuYXBpLmNvdmVyLlNoYXJlZFJlc291cmNlc0NvbWJpbmF0aW9uEhMKC2Rlc2NyaXB0aW9uGAUgASgJIk8KFlVwZGF0ZVVuaXRUeXBlUmVzcG9uc2USNQoMdW5pdENvc3REYXRhGAEgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuVW5pdENvc3REYXRhIiMKFURlbGV0ZVVuaXRUeXBlUmVxdWVzdBIKCgJpZBgBIAEoCSIkChZEZWxldGVVbml0VHlwZVJlc3BvbnNlEgoKAmlkGAEgASgJIk8KEU1lcmdlVW5pdHNSZXF1ZXN0EhMKC3VuaXRDb3N0SWRzGAEgAygJEhAKCHVuaXROYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJIk0KEk1lcmdlVW5pdHNSZXNwb25zZRI3Cg5tZXJnZWRVbml0Q29zdBgBIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRDb3N0RGF0YSIbChlMaXN0U3VnZ2VzdGVkVW5pdHNSZXF1ZXN0IlYKGkxpc3RTdWdnZXN0ZWRVbml0c1Jlc3BvbnNlEjgKDnN1Z2dlc3RlZFVuaXRzGAEgAygLMiAuYmx1ZWFwaS5hcGkuY292ZXIuU3VnZ2VzdGVkVW5pdCJyChpNZXJnZVN1Z2dlc3RlZFVuaXRzUmVxdWVzdBIYChBzdWdnZXN0ZWRVbml0SWRzGAEgAygJEhMKC3VuaXRJdGVtSWRzGAIgAygJEhAKCHVuaXROYW1lGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJIl0KG01lcmdlU3VnZ2VzdGVkVW5pdHNSZXNwb25zZRI+ChRtZXJnZWRTdWdnZXN0ZWRVbml0cxgBIAEoCzIgLmJsdWVhcGkuYXBpLmNvdmVyLlN1Z2dlc3RlZFVuaXQiOgoeQ3JlYXRlVW5pdEZyb21TdWdnZXN0ZWRSZXF1ZXN0EhgKEHN1Z2dlc3RlZFVuaXRJZHMYASADKAkiNgofQ3JlYXRlVW5pdEZyb21TdWdnZXN0ZWRSZXNwb25zZRITCgt1bml0Q29zdElkcxgBIAMoCSIcChpMaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdCJlChtMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2USRgoPc2hhcmVkUmVzb3VyY2VzGAEgAygLMi0uYmx1ZWFwaS5hcGkuY292ZXIuU2hhcmVkUmVzb3VyY2VzQ29tYmluYXRpb24i0wIKHENyZWF0ZVNoYXJlZFJlc291cmNlc1JlcXVlc3QSGgoSc2hhcmVkUmVzb3VyY2VOYW1lGAEgASgJEk0KG3NoYXJlZFJlc291cmNlc0NvbWJpbmF0aW9ucxgCIAEoCzIoLmJsdWVhcGkuYXBpLmNvdmVyLlJlc291cmNlc0NvbWJpbmF0aW9ucxJWCgxkaXN0cmlidXRpb24YAyADKAsyQC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVNoYXJlZFJlc291cmNlc1JlcXVlc3QuRGlzdHJpYnV0aW9uRW50cnkSEQoJYWxsb2NhdGVkGAQgASgBEhMKC3VuYWxsb2NhdGVkGAUgASgBEhMKC2Rlc2NyaXB0aW9uGAYgASgJGjMKEURpc3RyaWJ1dGlvbkVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoAToCOAEiZwodQ3JlYXRlU2hhcmVkUmVzb3VyY2VzUmVzcG9uc2USRgoPc2hhcmVkUmVzb3VyY2VzGAEgASgLMi0uYmx1ZWFwaS5hcGkuY292ZXIuU2hhcmVkUmVzb3VyY2VzQ29tYmluYXRpb24iJwoZR2V0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdBIKCgJpZBgBIAEoCSJkChpHZXRTaGFyZWRSZXNvdXJjZXNSZXNwb25zZRJGCg9zaGFyZWRSZXNvdXJjZXMYASABKAsyLS5ibHVlYXBpLmFwaS5jb3Zlci5TaGFyZWRSZXNvdXJjZXNDb21iaW5hdGlvbiLfAgocVXBkYXRlU2hhcmVkUmVzb3VyY2VzUmVxdWVzdBIKCgJpZBgBIAEoCRIaChJzaGFyZWRSZXNvdXJjZU5hbWUYAiABKAkSTQobc2hhcmVkUmVzb3VyY2VzQ29tYmluYXRpb25zGAMgASgLMiguYmx1ZWFwaS5hcGkuY292ZXIuUmVzb3VyY2VzQ29tYmluYXRpb25zElYKDGRpc3RyaWJ1dGlvbhgEIAMoCzJALmJsdWVhcGkuY292ZXIudjEuVXBkYXRlU2hhcmVkUmVzb3VyY2VzUmVxdWVzdC5EaXN0cmlidXRpb25FbnRyeRIRCglhbGxvY2F0ZWQYBSABKAESEwoLdW5hbGxvY2F0ZWQYBiABKAESEwoLZGVzY3JpcHRpb24YByABKAkaMwoRRGlzdHJpYnV0aW9uRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgBOgI4ASJnCh1VcGRhdGVTaGFyZWRSZXNvdXJjZXNSZXNwb25zZRJGCg9zaGFyZWRSZXNvdXJjZXMYASABKAsyLS5ibHVlYXBpLmFwaS5jb3Zlci5TaGFyZWRSZXNvdXJjZXNDb21iaW5hdGlvbiIqChxEZWxldGVTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0EgoKAmlkGAEgASgJIisKHURlbGV0ZVNoYXJlZFJlc291cmNlc1Jlc3BvbnNlEgoKAmlkGAEgASgJIlcKFkxpc3RVbml0TWV0cmljc1JlcXVlc3QSGQoRYWdncmVnYXRpb25NZXRob2QYASABKAkSEgoKZGF0YVNvdXJjZRgCIAEoCRIOCgZzdGF0dXMYAyABKAkiTQoXTGlzdFVuaXRNZXRyaWNzUmVzcG9uc2USMgoLdW5pdE1ldHJpY3MYASADKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0TWV0cmljIrkBChdDcmVhdGVVbml0TWV0cmljUmVxdWVzdBISCgptZXRyaWNOYW1lGAEgASgJEhkKEWFnZ3JlZ2F0aW9uTWV0aG9kGAIgASgJEhIKCmRhdGFTb3VyY2UYAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSEwoLY29zdGdyb3VwSWQYBSADKAkSMQoKc291cmNlSW5mbxgGIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLlNvdXJjZUluZm8iTQoYQ3JlYXRlVW5pdE1ldHJpY1Jlc3BvbnNlEjEKCnVuaXRNZXRyaWMYASABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0TWV0cmljIiIKFEdldFVuaXRNZXRyaWNSZXF1ZXN0EgoKAmlkGAEgASgJIkoKFUdldFVuaXRNZXRyaWNSZXNwb25zZRIxCgp1bml0TWV0cmljGAEgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuVW5pdE1ldHJpYyLFAQoXVXBkYXRlVW5pdE1ldHJpY1JlcXVlc3QSCgoCaWQYASABKAkSEgoKbWV0cmljTmFtZRgCIAEoCRIZChFhZ2dyZWdhdGlvbk1ldGhvZBgDIAEoCRISCgpkYXRhU291cmNlGAQgASgJEhMKC2Rlc2NyaXB0aW9uGAUgASgJEhMKC2Nvc3Rncm91cElkGAYgAygJEjEKCnNvdXJjZUluZm8YByABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5Tb3VyY2VJbmZvIk0KGFVwZGF0ZVVuaXRNZXRyaWNSZXNwb25zZRIxCgp1bml0TWV0cmljGAEgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuVW5pdE1ldHJpYyIlChdEZWxldGVVbml0TWV0cmljUmVxdWVzdBIKCgJpZBgBIAEoCSImChhEZWxldGVVbml0TWV0cmljUmVzcG9uc2USCgoCaWQYASABKAkiZgoZUHJldmlld0dvb2dsZVNoZWV0UmVxdWVzdBIVCg1nb29nbGVTaGVldElkGAEgASgJEhAKCHNoZWV0VXJsGAIgASgJEhEKCXNoZWV0TmFtZRgDIAEoCRINCgVyYW5nZRgEIAEoCSJZChpQcmV2aWV3R29vZ2xlU2hlZXRSZXNwb25zZRIOCgZoZWFkZXIYASADKAkSKwoHcm93RGF0YRgCIAMoCzIaLmJsdWVhcGkuYXBpLmNvdmVyLlJvd0RhdGEiMwofQ29uZmlybUdvb2dsZVNoZWV0QWNjZXNzUmVxdWVzdBIQCghzaGVldFVybBgBIAEoCSJNCiBDb25maXJtR29vZ2xlU2hlZXRBY2Nlc3NSZXNwb25zZRIVCg1nb29nbGVTaGVldElkGAEgASgJEhIKCnNoZWV0TmFtZXMYAiADKAkidgocR2V0Q2xvdWR3YXRjaE1ldGFkYXRhUmVxdWVzdBIRCglhY2NvdW50SWQYASABKAkSDgoGcmVnaW9uGAIgASgJEgwKBHR5cGUYAyABKAkSEQoJbmFtZXNwYWNlGAQgASgJEhIKCm1ldHJpY05hbWUYBSABKAkivgEKHUdldENsb3Vkd2F0Y2hNZXRhZGF0YVJlc3BvbnNlEhIKCm5hbWVzcGFjZXMYASADKAkSDwoHbWV0cmljcxgCIAMoCRJNCgpkaW1lbnNpb25zGAMgAygLMjkuYmx1ZWFwaS5jb3Zlci52MS5HZXRDbG91ZHdhdGNoTWV0YWRhdGFSZXNwb25zZS5EaW1lbnNpb24aKQoJRGltZW5zaW9uEgwKBG5hbWUYASABKAkSDgoGdmFsdWVzGAIgAygJIoECChZHZXREaXNjb3VudFBsYW5SZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVvcmdJZBgCIAEoCRIYChByZWR1Y3Rpb25EaXNwbGF5GAMgASgJEhYKDmluY2x1ZGVEZXRhaWxzGAQgASgIEhAKCGZyb21EYXRlGAUgASgJEg4KBnRvRGF0ZRgGIAEoCRIPCgdwYXllcklkGAcgASgJEhkKEWJpbGxpbmdJbnRlcm5hbElkGAggASgJEg8KB2dyb3VwSWQYCSABKAkSEwoLY29zdEdyb3VwSWQYCiABKAkSEAoIYWNjb3VudHMYCyADKAkSEAoIc2VydmljZXMYDCADKAkiZwoXR2V0RGlzY291bnRQbGFuUmVzcG9uc2USDQoFb3JnSWQYASABKAkSPQoQYXdzRGlzY291bnRQbGFucxgCIAEoCzIjLmJsdWVhcGkuYXBpLmNvdmVyLkF3c0Rpc2NvdW50UGxhbnMicwocTGlzdE5vbnBlcmZvcm1pbmdSYXRlUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEwoLY29zdEdyb3VwSWQYAiABKAkSEAoIZnJvbURhdGUYAyABKAkSDgoGdG9EYXRlGAQgASgJEgwKBHR5cGUYBSABKAkiyQEKHUxpc3ROb25wZXJmb3JtaW5nUmF0ZVJlc3BvbnNlElQKDW5vbnBlcmZvcm1pbmcYASADKAsyPS5ibHVlYXBpLmNvdmVyLnYxLkxpc3ROb25wZXJmb3JtaW5nUmF0ZVJlc3BvbnNlLk5vbnBlcmZvcm1pbmcaUgoNTm9ucGVyZm9ybWluZxIMCgR0eXBlGAEgASgJEg8KB2FjY291bnQYAiABKAkSEwoLdXRpbGl6YXRpb24YAyABKAESDQoFd2FzdGUYBCABKAEidAocTGlzdFVudGFnZ2VkUmVzb3VyY2VzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEwoLY29zdEdyb3VwSWQYAiABKAkSEAoIZnJvbURhdGUYAyABKAkSDgoGdG9EYXRlGAQgASgJEg0KBWxpbWl0GAUgASgDIvkBCh1MaXN0VW50YWdnZWRSZXNvdXJjZXNSZXNwb25zZRJcChF1bnRhZ2dlZFJlc291cmNlcxgBIAMoCzJBLmJsdWVhcGkuY292ZXIudjEuTGlzdFVudGFnZ2VkUmVzb3VyY2VzUmVzcG9uc2UuVW50YWdnZWRSZXNvdXJjZXMaegoRVW50YWdnZWRSZXNvdXJjZXMSEAoIcmVzb3VyY2UYASABKAkSDwoHc2VydmljZRgCIAEoCRIRCglhY2NvdW50SWQYAyABKAkSEQoJY29zdEdyb3VwGAQgASgJEgwKBGNvc3QYBSABKAESDgoGdmVuZG9yGAYgASgJKj8KBlN0YXR1cxILCgdQRU5ESU5HEAASDwoLSU5fUFJPR1JFU1MQARILCgdTVUNDRVNTEAISCgoGRkFJTEVEEAMy0OMBCgVDb3ZlchJ3CgpPbmJvYXJkT3JnEiMuYmx1ZWFwaS5jb3Zlci52MS5PbmJvYXJkT3JnUmVxdWVzdBokLmJsdWVhcGkuY292ZXIudjEuT25ib2FyZE9yZ1Jlc3BvbnNlIh6C0+STAhg6ASoiEy92MS9tZW1iZXJzL29uYm9hcmQSfwoMSW52aXRlTWVtYmVyEiUuYmx1ZWFwaS5jb3Zlci52MS5JbnZpdGVNZW1iZXJSZXF1ZXN0GiYuYmx1ZWFwaS5jb3Zlci52MS5JbnZpdGVNZW1iZXJSZXNwb25zZSIgiAIBgtPkkwIXOgEqIhIvdjEvbWVtYmVycy9pbnZpdGUSfgoMQWN0aXZhdGVVc2VyEiUuYmx1ZWFwaS5jb3Zlci52MS5BY3RpdmF0ZVVzZXJSZXF1ZXN0GiYuYmx1ZWFwaS5jb3Zlci52MS5BY3RpdmF0ZVVzZXJSZXNwb25zZSIfgtPkkwIZOgEqIhQvdjEvbWVtYmVycy9hY3RpdmF0ZRJ4CgxDcmVhdGVNZW1iZXISJS5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZU1lbWJlclJlcXVlc3QaJi5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZU1lbWJlclJlc3BvbnNlIhmIAgGC0+STAhA6ASoiCy92MS9tZW1iZXJzEm8KCkdldE1lbWJlcnMSIy5ibHVlYXBpLmNvdmVyLnYxLkdldE1lbWJlcnNSZXF1ZXN0GiQuYmx1ZWFwaS5jb3Zlci52MS5HZXRNZW1iZXJzUmVzcG9uc2UiFogCAYLT5JMCDRILL3YxL21lbWJlcnMSigEKEEdldE1lbWJlckRldGFpbHMSKS5ibHVlYXBpLmNvdmVyLnYxLkdldE1lbWJlckRldGFpbHNSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5HZXRNZW1iZXJEZXRhaWxzUmVzcG9uc2UiH4gCAYLT5JMCFhIUL3YxL21lbWJlcnMve3VzZXJJZH0SmgEKEkdldE1lbWJlckNvc3RHcm91cBIrLmJsdWVhcGkuY292ZXIudjEuR2V0TWVtYmVyQ29zdEdyb3VwUmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuR2V0TWVtYmVyQ29zdEdyb3VwUmVzcG9uc2UiKYgCAYLT5JMCIBIeL3YxL21lbWJlcnMve3VzZXJJZH0vY29zdGdyb3VwEqcBChZVcGRhdGVNZW1iZXJQZXJtaXNzaW9uEi8uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVNZW1iZXJQZXJtaXNzaW9uUmVxdWVzdBowLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlTWVtYmVyUGVybWlzc2lvblJlc3BvbnNlIiqIAgGC0+STAiE6ASoaHC92MS9tZW1iZXJzL3t1c2VySWR9L2lzYWRtaW4ScwoOR2V0VXNlckRldGFpbHMSJy5ibHVlYXBpLmNvdmVyLnYxLkdldFVzZXJEZXRhaWxzUmVxdWVzdBooLmJsdWVhcGkuY292ZXIudjEuR2V0VXNlckRldGFpbHNSZXNwb25zZSIOgtPkkwIIEgYvdjEvbWUSgwEKEFVwZGF0ZVVzZXJBdmF0YXISKS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJBdmF0YXJSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyQXZhdGFyUmVzcG9uc2UiGILT5JMCEjoBKhoNL3YxL21lL2F2YXRhchJ7Cg5VcGRhdGVVc2VySWNvbhInLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckljb25SZXF1ZXN0GiguYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VySWNvblJlc3BvbnNlIhaC0+STAhA6ASoaCy92MS9tZS9pY29uEpMBChRVcGRhdGVVc2VyQ29sb3JUaGVtZRItLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckNvbG9yVGhlbWVSZXF1ZXN0Gi4uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyQ29sb3JUaGVtZVJlc3BvbnNlIhyC0+STAhY6ASoaES92MS9tZS9jb2xvcnRoZW1lEnsKDlVwZGF0ZVVzZXJOYW1lEicuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyTmFtZVJlcXVlc3QaKC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJOYW1lUmVzcG9uc2UiFoLT5JMCEDoBKhoLL3YxL21lL25hbWUSfwoPVXBkYXRlVXNlckVtYWlsEiguYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyRW1haWxSZXF1ZXN0GikuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyRW1haWxSZXNwb25zZSIXgtPkkwIROgEqGgwvdjEvbWUvZW1haWwSiwEKElVwZGF0ZVVzZXJNYWluVmlldxIrLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlck1haW5WaWV3UmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlck1haW5WaWV3UmVzcG9uc2UiGoLT5JMCFDoBKhoPL3YxL21lL21haW52aWV3EogBChFSZXNldFVzZXJQYXNzd29yZBIqLmJsdWVhcGkuY292ZXIudjEuUmVzZXRVc2VyUGFzc3dvcmRSZXF1ZXN0GisuYmx1ZWFwaS5jb3Zlci52MS5SZXNldFVzZXJQYXNzd29yZFJlc3BvbnNlIhqC0+STAhQ6ASoiDy92MS9tZS9wYXNzd29yZBKDAQoQVXBkYXRlVXNlckxvY2FsZRIpLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckxvY2FsZVJlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJMb2NhbGVSZXNwb25zZSIYgtPkkwISOgEqGg0vdjEvbWUvbG9jYWxlEosBChJVcGRhdGVVc2VyQXBwVGhlbWUSKy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJBcHBUaGVtZVJlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJBcHBUaGVtZVJlc3BvbnNlIhqC0+STAhQ6ASoaDy92MS9tZS9hcHB0aGVtZRKLAQoSVXBkYXRlVXNlclRpbWV6b25lEisuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyVGltZXpvbmVSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyVGltZXpvbmVSZXNwb25zZSIagtPkkwIUOgEqGg8vdjEvbWUvdGltZXpvbmUSkwEKFFVwZGF0ZVVzZXJBdHRyaWJ1dGVzEi0uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyQXR0cmlidXRlc1JlcXVlc3QaLi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJBdHRyaWJ1dGVzUmVzcG9uc2UiHILT5JMCFjoBKhoRL3YxL21lL2F0dHJpYnV0ZXMSewoMRGVsZXRlTWVtYmVyEiUuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVNZW1iZXJSZXF1ZXN0GiYuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVNZW1iZXJSZXNwb25zZSIcgtPkkwIWKhQvdjEvbWVtYmVycy97dXNlcklkfRKGAQoNUmVzZXRQYXNzd29yZBImLmJsdWVhcGkuY292ZXIudjEuUmVzZXRQYXNzd29yZFJlcXVlc3QaJy5ibHVlYXBpLmNvdmVyLnYxLlJlc2V0UGFzc3dvcmRSZXNwb25zZSIkgtPkkwIeOgEqIhkvdjEvbWVtYmVycy9yZXNldHBhc3N3b3JkEm0KCkNyZWF0ZVZpZXcSIy5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVZpZXdSZXF1ZXN0GiQuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVWaWV3UmVzcG9uc2UiFILT5JMCDjoBKiIJL3YxL3ZpZXdzEmQKCEdldFZpZXdzEiEuYmx1ZWFwaS5jb3Zlci52MS5HZXRWaWV3c1JlcXVlc3QaIi5ibHVlYXBpLmNvdmVyLnYxLkdldFZpZXdzUmVzcG9uc2UiEYLT5JMCCxIJL3YxL3ZpZXdzEn8KDkdldEN1cnJlbnRWaWV3EicuYmx1ZWFwaS5jb3Zlci52MS5HZXRDdXJyZW50Vmlld1JlcXVlc3QaKC5ibHVlYXBpLmNvdmVyLnYxLkdldEN1cnJlbnRWaWV3UmVzcG9uc2UiGoLT5JMCFBISL3YxL3ZpZXdzL3t2aWV3SWR9EoYBChBHZXRGYXZvcml0ZVZpZXdzEikuYmx1ZWFwaS5jb3Zlci52MS5HZXRGYXZvcml0ZVZpZXdzUmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuR2V0RmF2b3JpdGVWaWV3c1Jlc3BvbnNlIhuC0+STAhUSEy92MS92aWV3cy9mYXZvcml0ZXMSeAoLUHVibGlzaFZpZXcSJC5ibHVlYXBpLmNvdmVyLnYxLlB1Ymxpc2hWaWV3UmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuUHVibGlzaFZpZXdSZXNwb25zZSIcgtPkkwIWOgEqIhEvdjEvdmlld3MvcHVibGlzaBJ9CgtBZGRGYXZvcml0ZRIkLmJsdWVhcGkuY292ZXIudjEuQWRkRmF2b3JpdGVSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5BZGRGYXZvcml0ZVJlc3BvbnNlIiGC0+STAhs6ASoaFi92MS92aWV3cy9mYXZvcml0ZS9hZGQSiQEKDlJlbW92ZUZhdm9yaXRlEicuYmx1ZWFwaS5jb3Zlci52MS5SZW1vdmVGYXZvcml0ZVJlcXVlc3QaKC5ibHVlYXBpLmNvdmVyLnYxLlJlbW92ZUZhdm9yaXRlUmVzcG9uc2UiJILT5JMCHjoBKhoZL3YxL3ZpZXdzL2Zhdm9yaXRlL3JlbW92ZRJ2CgpVcGRhdGVWaWV3EiMuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVWaWV3UmVxdWVzdBokLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVmlld1Jlc3BvbnNlIh2C0+STAhc6ASoaEi92MS92aWV3cy97dmlld0lkfRKPAQoQVXBkYXRlVmlld0xheW91dBIpLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVmlld0xheW91dFJlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVZpZXdMYXlvdXRSZXNwb25zZSIkgtPkkwIeOgEqGhkvdjEvdmlld3MvbGF5b3V0L3t2aWV3SWR9EpoBChBVcGRhdGVWaWV3V2lkZ2V0EikuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVWaWV3V2lkZ2V0UmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVmlld1dpZGdldFJlc3BvbnNlIi+C0+STAik6ASoaJC92MS92aWV3cy9sYXlvdXQve3ZpZXdJZH0ve3dpZGdldElkfRKfAQoUVXBkYXRlVmlld0NvbG9yVGhlbWUSLS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVZpZXdDb2xvclRoZW1lUmVxdWVzdBouLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVmlld0NvbG9yVGhlbWVSZXNwb25zZSIogtPkkwIiOgEqGh0vdjEvdmlld3Mve3ZpZXdJZH0vY29sb3J0aGVtZRKXAQoSVXBkYXRlVmlld0N1cnJlbmN5EisuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVWaWV3Q3VycmVuY3lSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVWaWV3Q3VycmVuY3lSZXNwb25zZSImgtPkkwIgOgEqGhsvdjEvdmlld3Mve3ZpZXdJZH0vY3VycmVuY3kSnAEKFFNldE9yZ1VwZGF0ZUN1cnJlbmN5Ei0uYmx1ZWFwaS5jb3Zlci52MS5TZXRPcmdVcGRhdGVDdXJyZW5jeVJlcXVlc3QaLi5ibHVlYXBpLmNvdmVyLnYxLlNldE9yZ1VwZGF0ZUN1cnJlbmN5UmVzcG9uc2UiJYLT5JMCHzoBKiIaL3YxL29yZ2FuaXphdGlvbnMvY3VycmVuY3kSmQEKFEdldE9yZ1VwZGF0ZUN1cnJlbmN5Ei0uYmx1ZWFwaS5jb3Zlci52MS5HZXRPcmdVcGRhdGVDdXJyZW5jeVJlcXVlc3QaLi5ibHVlYXBpLmNvdmVyLnYxLkdldE9yZ1VwZGF0ZUN1cnJlbmN5UmVzcG9uc2UiIoLT5JMCHBIaL3YxL29yZ2FuaXphdGlvbnMvY3VycmVuY3kSjQEKEUxpc3RFeGNoYW5nZVJhdGVzEiouYmx1ZWFwaS5jb3Zlci52MS5MaXN0RXhjaGFuZ2VSYXRlc1JlcXVlc3QaKy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RFeGNoYW5nZVJhdGVzUmVzcG9uc2UiH4LT5JMCGRIXL3YxL29yZ2FuaXphdGlvbnMvcmF0ZXMScwoKRGVsZXRlVmlldxIjLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlVmlld1JlcXVlc3QaJC5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZVZpZXdSZXNwb25zZSIagtPkkwIUKhIvdjEvdmlld3Mve3ZpZXdJZH0SnwEKE1VwZGF0ZVNpZGVNZW51U3RhdGUSLC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVNpZGVNZW51U3RhdGVSZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVTaWRlTWVudVN0YXRlUmVzcG9uc2UiK4LT5JMCJToBKhogL3YxL3ZpZXdzL3t2aWV3SWR9L3NpZGVtZW51c3RhdGUSogEKE0FkZFNpZGVNZW51RmF2b3JpdGUSLC5ibHVlYXBpLmNvdmVyLnYxLkFkZFNpZGVNZW51RmF2b3JpdGVSZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5BZGRTaWRlTWVudUZhdm9yaXRlUmVzcG9uc2UiLoLT5JMCKDoBKiIjL3YxL3ZpZXdzL3t2aWV3SWR9L3NpZGVtZW51ZmF2b3JpdGUSrQEKFlJlbW92ZVNpZGVNZW51RmF2b3JpdGUSLy5ibHVlYXBpLmNvdmVyLnYxLlJlbW92ZVNpZGVNZW51RmF2b3JpdGVSZXF1ZXN0GjAuYmx1ZWFwaS5jb3Zlci52MS5SZW1vdmVTaWRlTWVudUZhdm9yaXRlUmVzcG9uc2UiMILT5JMCKjoBKiIlL3YxL3ZpZXdzL3t2aWV3SWR9L3NpZGVtZW51dW5mYXZvcml0ZRKBAQoPQ3JlYXRlQ29zdEdyb3VwEiguYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVDb3N0R3JvdXBSZXF1ZXN0GikuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVDb3N0R3JvdXBSZXNwb25zZSIZgtPkkwITOgEqIg4vdjEvY29zdGdyb3VwcxJ4Cg1HZXRDb3N0R3JvdXBzEiYuYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0R3JvdXBzUmVxdWVzdBonLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEdyb3Vwc1Jlc3BvbnNlIhaC0+STAhASDi92MS9jb3N0Z3JvdXBzEngKDUdldENhdGVnb3JpZXMSJi5ibHVlYXBpLmNvdmVyLnYxLkdldENhdGVnb3JpZXNSZXF1ZXN0GicuYmx1ZWFwaS5jb3Zlci52MS5HZXRDYXRlZ29yaWVzUmVzcG9uc2UiFoLT5JMCEBIOL3YxL2NhdGVnb3JpZXMSmAEKE0dldENvc3RHcm91cERldGFpbHMSLC5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RHcm91cERldGFpbHNSZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0R3JvdXBEZXRhaWxzUmVzcG9uc2UiJILT5JMCHhIcL3YxL2Nvc3Rncm91cHMve2Nvc3RHcm91cElkfRKgAQoTVXBkYXRlQ29zdEdyb3VwTmFtZRIsLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwTmFtZVJlcXVlc3QaLS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cE5hbWVSZXNwb25zZSIsgtPkkwImOgEqGiEvdjEvY29zdGdyb3Vwcy97Y29zdEdyb3VwSWR9L25hbWUSvAEKGlVwZGF0ZUNvc3RHcm91cERlc2NyaXB0aW9uEjMuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBEZXNjcmlwdGlvblJlcXVlc3QaNC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cERlc2NyaXB0aW9uUmVzcG9uc2UiM4LT5JMCLToBKhooL3YxL2Nvc3Rncm91cHMve2Nvc3RHcm91cElkfS9kZXNjcmlwdGlvbhKkAQoUVXBkYXRlQ29zdEdyb3VwSW1hZ2USLS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cEltYWdlUmVxdWVzdBouLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwSW1hZ2VSZXNwb25zZSItgtPkkwInOgEqGiIvdjEvY29zdGdyb3Vwcy97Y29zdEdyb3VwSWR9L2ltYWdlEqABChNVcGRhdGVDb3N0R3JvdXBJY29uEiwuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBJY29uUmVxdWVzdBotLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwSWNvblJlc3BvbnNlIiyC0+STAiY6ASoaIS92MS9jb3N0Z3JvdXBzL3tjb3N0R3JvdXBJZH0vaWNvbhK4AQoZVXBkYXRlQ29zdEdyb3VwQ29sb3JUaGVtZRIyLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwQ29sb3JUaGVtZVJlcXVlc3QaMy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cENvbG9yVGhlbWVSZXNwb25zZSIygtPkkwIsOgEqGicvdjEvY29zdGdyb3Vwcy97Y29zdEdyb3VwSWR9L2NvbG9ydGhlbWUSwAEKG1VwZGF0ZUNvc3RHcm91cENvbWJpbmF0aW9ucxI0LmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwQ29tYmluYXRpb25zUmVxdWVzdBo1LmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwQ29tYmluYXRpb25zUmVzcG9uc2UiNILT5JMCLjoBKhopL3YxL2Nvc3Rncm91cHMve2Nvc3RHcm91cElkfS9jb21iaW5hdGlvbnMSuwEKHFJlc29sdmVDb3N0R3JvdXBDb21iaW5hdGlvbnMSNS5ibHVlYXBpLmNvdmVyLnYxLlJlc29sdmVDb3N0R3JvdXBDb21iaW5hdGlvbnNSZXF1ZXN0GjYuYmx1ZWFwaS5jb3Zlci52MS5SZXNvbHZlQ29zdEdyb3VwQ29tYmluYXRpb25zUmVzcG9uc2UiLILT5JMCJhIkL3YxL2Nvc3Rncm91cHMvcmVzb2x2ZS97Y29zdEdyb3VwSWR9EqwBChVBc3NpZ25Db3N0R3JvdXBNZW1iZXISLi5ibHVlYXBpLmNvdmVyLnYxLkFzc2lnbkNvc3RHcm91cE1lbWJlclJlcXVlc3QaLy5ibHVlYXBpLmNvdmVyLnYxLkFzc2lnbkNvc3RHcm91cE1lbWJlclJlc3BvbnNlIjKC0+STAiw6ASoiJy92MS9jb3N0Z3JvdXBzL3tjb3N0R3JvdXBJZH0vbWVtYmVyL2FkZBKvAQoVUmVtb3ZlQ29zdEdyb3VwTWVtYmVyEi4uYmx1ZWFwaS5jb3Zlci52MS5SZW1vdmVDb3N0R3JvdXBNZW1iZXJSZXF1ZXN0Gi8uYmx1ZWFwaS5jb3Zlci52MS5SZW1vdmVDb3N0R3JvdXBNZW1iZXJSZXNwb25zZSI1gtPkkwIvOgEqIiovdjEvY29zdGdyb3Vwcy97Y29zdEdyb3VwSWR9L21lbWJlci9yZW1vdmUSjAEKD0RlbGV0ZUNvc3RHcm91cBIoLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQ29zdEdyb3VwUmVxdWVzdBopLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQ29zdEdyb3VwUmVzcG9uc2UiJILT5JMCHiocL3YxL2Nvc3Rncm91cHMve2Nvc3RHcm91cElkfRKmAQobR2V0QWNjb3VudEFjY2Vzc1RlbXBsYXRlVXJsEjQuYmx1ZWFwaS5jb3Zlci52MS5HZXRBY2NvdW50QWNjZXNzVGVtcGxhdGVVcmxSZXF1ZXN0GjUuYmx1ZWFwaS5jb3Zlci52MS5HZXRBY2NvdW50QWNjZXNzVGVtcGxhdGVVcmxSZXNwb25zZSIagtPkkwIUEhIvdjEvYXdzL2FjY3RhY2Nlc3MSigEKEUxpc3RBY2NvdW50QWNjZXNzEiouYmx1ZWFwaS5jb3Zlci52MS5MaXN0QWNjb3VudEFjY2Vzc1JlcXVlc3QaHy5ibHVlYXBpLmNvdmVyLnYxLkFjY291bnRBY2Nlc3MiJoLT5JMCIDoBKiIbL3YxL2F3cy9hY2N0YWNjZXNzL2FsbDpyZWFkMAESgwEKEEdldEFjY291bnRBY2Nlc3MSKS5ibHVlYXBpLmNvdmVyLnYxLkdldEFjY291bnRBY2Nlc3NSZXF1ZXN0Gh8uYmx1ZWFwaS5jb3Zlci52MS5BY2NvdW50QWNjZXNzIiOC0+STAh0SGy92MS9hd3MvYWNjdGFjY2Vzcy97dGFyZ2V0fRJ8Cg1HZXREYXRhQWNjZXNzEi8uYmx1ZWFwaS5jb3Zlci52MS5HZXRBbmREZWxldGVEYXRhQWNjZXNzUmVxdWVzdBocLmJsdWVhcGkuY292ZXIudjEuRGF0YUFjY2VzcyIcgtPkkwIWEhQvdjEvYWNjb3VudC97dGFyZ2V0fRJ5ChBEZWxldGVEYXRhQWNjZXNzEi8uYmx1ZWFwaS5jb3Zlci52MS5HZXRBbmREZWxldGVEYXRhQWNjZXNzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIcgtPkkwIWKhQvdjEvYWNjb3VudC97dGFyZ2V0fRKDAQoTQ3JlYXRlQWNjb3VudEFjY2VzcxIsLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQWNjb3VudEFjY2Vzc1JlcXVlc3QaHy5ibHVlYXBpLmNvdmVyLnYxLkFjY291bnRBY2Nlc3MiHYLT5JMCFzoBKiISL3YxL2F3cy9hY2N0YWNjZXNzEpwBChtDcmVhdGVBY2NvdW50QWNjZXNzU3RhY2tzZXQSNC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUFjY291bnRBY2Nlc3NTdGFja3NldFJlcXVlc3QaHy5ibHVlYXBpLmNvdmVyLnYxLkFjY291bnRBY2Nlc3MiJoLT5JMCIDoBKiIbL3YxL2F3cy9hY2N0YWNjZXNzL3N0YWNrc2V0EooBChZDcmVhdGVBY2NvdW50QWNjZXNzQ3VyEiwuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVBY2NvdW50QWNjZXNzUmVxdWVzdBofLmJsdWVhcGkuY292ZXIudjEuQWNjb3VudEFjY2VzcyIhgtPkkwIbOgEqIhYvdjEvYXdzL2FjY3RhY2Nlc3MvY3VyEnsKE1VwZGF0ZUFjY291bnRBY2Nlc3MSLC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUFjY291bnRBY2Nlc3NSZXF1ZXN0GhEucHJvdG9zLk9wZXJhdGlvbiIjgtPkkwIdGhsvdjEvYXdzL2FjY3RhY2Nlc3Mve3RhcmdldH0SkwEKE0RlbGV0ZUFjY291bnRBY2Nlc3MSLC5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUFjY291bnRBY2Nlc3NSZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVBY2NvdW50QWNjZXNzUmVzcG9uc2UiH4LT5JMCGSoXL3YxL2FjY3RhY2Nlc3Mve3RhcmdldH0SdAoPUmVnaXN0ZXJBY2NvdW50EiguYmx1ZWFwaS5jb3Zlci52MS5SZWdpc3RlckFjY291bnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ih+C0+STAhk6ASoiFC92MS97dmVuZG9yfS9hY2NvdW50EnEKElJlZ2lzdGVyRGF0YUFjY2VzcxIrLmJsdWVhcGkuY292ZXIudjEuUmVnaXN0ZXJEYXRhQWNjZXNzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIWgtPkkwIQOgEqIgsvdjEvYWNjb3VudBJwChFBZGRCaWxsaW5nQWNjb3VudBInLmJsdWVhcGkuY292ZXIudjEuQmlsbGluZ0FjY291bnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IhqC0+STAhQ6ASoiDy92MS9iaWxsaW5nYWNjdBJ3Cg5MaXN0RGF0YUFjY2VzcxInLmJsdWVhcGkuY292ZXIudjEuTGlzdERhdGFBY2Nlc3NSZXF1ZXN0GhwuYmx1ZWFwaS5jb3Zlci52MS5EYXRhQWNjZXNzIhyC0+STAhYiFC92MS9hY2NvdW50L2FsbDpyZWFkMAESqAEKGExpc3RVbnJlZ2lzdGVyZWRBY2NvdW50cxIxLmJsdWVhcGkuY292ZXIudjEuTGlzdFVucmVnaXN0ZXJlZEFjY291bnRzUmVxdWVzdBoyLmJsdWVhcGkuY292ZXIudjEuTGlzdFVucmVnaXN0ZXJlZEFjY291bnRzUmVzcG9uc2UiJYLT5JMCHyIdL3YxL2FjY291bnQvdW5yZWdpc3RlcmVkOnJlYWQSdgoQVXBkYXRlRGF0YUFjY2VzcxIpLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlRGF0YUFjY2Vzc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiH4LT5JMCGToBKhoUL3YxL2FjY291bnQve3RhcmdldH0SawoKTGlzdEFzc2V0cxIjLmJsdWVhcGkuY292ZXIudjEuTGlzdEFzc2V0c1JlcXVlc3QaGi5ibHVlYXBpLmNvdmVyLnYxLlJlc291cmNlIhqC0+STAhQ6ASoiDy92MS9hc3NldHM6cmVhZDABEpMBChBHZXRBc3NldHNTdW1tYXJ5EikuYmx1ZWFwaS5jb3Zlci52MS5HZXRBc3NldHNTdW1tYXJ5UmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuR2V0QXNzZXRzU3VtbWFyeVJlc3BvbnNlIiiC0+STAiISIC92MS9hc3NldHMvc3VtbWFyeS97Y29zdEdyb3VwSWR9EnIKDEdldENvc3RVc2FnZRIlLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdFVzYWdlUmVxdWVzdBoaLmJsdWVhcGkuY292ZXIudjEuQ29zdEl0ZW0iHYLT5JMCFzoBKiISL3YxL2Nvc3R1c2FnZTpyZWFkMAESwgEKHEdldFJpZ2h0U2l6aW5nUmVjb21tZW5kYXRpb24SNS5ibHVlYXBpLmNvdmVyLnYxLkdldFJpZ2h0U2l6aW5nUmVjb21tZW5kYXRpb25SZXF1ZXN0GjYuYmx1ZWFwaS5jb3Zlci52MS5HZXRSaWdodFNpemluZ1JlY29tbWVuZGF0aW9uUmVzcG9uc2UiM4LT5JMCLRIrL3YxL3JpZ2h0c2l6aW5ncmVjb21tZW5kYXRpb24ve2Nvc3RHcm91cElkfRKYAQoSTW9kaWZ5UmVzb3VyY2VUeXBlEisuYmx1ZWFwaS5jb3Zlci52MS5Nb2RpZnlSZXNvdXJjZVR5cGVSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5Nb2RpZnlSZXNvdXJjZVR5cGVSZXNwb25zZSIngtPkkwIhOgEqIhwvdjEve3ZlbmRvcn0vcmVzb3VyY2UvbW9kaWZ5EpgBChFUZXJtaW5hdGVSZXNvdXJjZRIqLmJsdWVhcGkuY292ZXIudjEuVGVybWluYXRlUmVzb3VyY2VSZXF1ZXN0GisuYmx1ZWFwaS5jb3Zlci52MS5UZXJtaW5hdGVSZXNvdXJjZVJlc3BvbnNlIiqC0+STAiQ6ASoiHy92MS97dmVuZG9yfS9yZXNvdXJjZS90ZXJtaW5hdGUSjQEKEFVwbG9hZENoYXJnZUNvZGUSKS5ibHVlYXBpLmNvdmVyLnYxLlVwbG9hZENoYXJnZUNvZGVSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5VcGxvYWRDaGFyZ2VDb2RlUmVzcG9uc2UiIILT5JMCGjoBKiIVL3YxL2NoYXJnZWNvZGUvdXBsb2FkKAESegoLQXNzaWduUGF5ZXISJC5ibHVlYXBpLmNvdmVyLnYxLkFzc2lnblBheWVyUmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuQXNzaWduUGF5ZXJSZXNwb25zZSIegtPkkwIYOgEqIhMvdjEve3ZlbmRvcn0vcGF5ZXJzEnEKCUdldFBheWVycxIiLmJsdWVhcGkuY292ZXIudjEuR2V0UGF5ZXJzUmVxdWVzdBojLmJsdWVhcGkuY292ZXIudjEuR2V0UGF5ZXJzUmVzcG9uc2UiG4LT5JMCFRITL3YxL3t2ZW5kb3J9L3BheWVycxKHAQoLR2V0QWNjb3VudHMSJC5ibHVlYXBpLmNvdmVyLnYxLkdldEFjY291bnRzUmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuR2V0QWNjb3VudHNSZXNwb25zZSIrgtPkkwIlEiMvdjEve3ZlbmRvcn0vYWNjb3VudHMve2Nvc3RHcm91cElkfRKHAQoLR2V0U2VydmljZXMSJC5ibHVlYXBpLmNvdmVyLnYxLkdldFNlcnZpY2VzUmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuR2V0U2VydmljZXNSZXNwb25zZSIrgtPkkwIlEiMvdjEve3ZlbmRvcn0vc2VydmljZXMve2Nvc3RHcm91cElkfRKDAQoKR2V0UmVnaW9ucxIjLmJsdWVhcGkuY292ZXIudjEuR2V0UmVnaW9uc1JlcXVlc3QaJC5ibHVlYXBpLmNvdmVyLnYxLkdldFJlZ2lvbnNSZXNwb25zZSIqgtPkkwIkEiIvdjEve3ZlbmRvcn0vcmVnaW9ucy97Y29zdEdyb3VwSWR9EncKB0dldFRhZ3MSIC5ibHVlYXBpLmNvdmVyLnYxLkdldFRhZ3NSZXF1ZXN0GiEuYmx1ZWFwaS5jb3Zlci52MS5HZXRUYWdzUmVzcG9uc2UiJ4LT5JMCIRIfL3YxL3t2ZW5kb3J9L3RhZ3Mve2Nvc3RHcm91cElkfRJ3CghMaXN0RmVlcxIhLmJsdWVhcGkuY292ZXIudjEuTGlzdEZlZXNSZXF1ZXN0GhwuYmx1ZWFwaS5jb3Zlci52MS5GZWVEZXRhaWxzIiiC0+STAiI6ASoiHS92MS9hbGxvY2F0aW9ucy9mZWVzL2FsbDpyZWFkMAESegoKUmVzdG9yZUZlZRIjLmJsdWVhcGkuY292ZXIudjEuUmVzdG9yZUZlZVJlcXVlc3QaHC5ibHVlYXBpLmNvdmVyLnYxLkZlZURldGFpbHMiJ4LT5JMCIToBKiIcL3YxL2FsbG9jYXRpb25zL2ZlZXMvcmVzdG9yZTABEn4KD0dldENvc3RHcm91cEZlZRIoLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEdyb3VwRmVlUmVxdWVzdBoZLmJsdWVhcGkuY292ZXIudjEuRmVlSXRlbSIkgtPkkwIeOgEqIhkvdjEvYWxsb2NhdGlvbnMvZmVlczpyZWFkMAESewoOTGlzdEFsbG9jYXRvcnMSJy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RBbGxvY2F0b3JzUmVxdWVzdBomLmJsdWVhcGkuY292ZXIudjEuQ29zdEFsbG9jYXRvckRldGFpbHMiFoLT5JMCEBIOL3YxL2FsbG9jYXRvcnMwARJ+Cg9DcmVhdGVBbGxvY2F0b3ISKC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUFsbG9jYXRvclJlcXVlc3QaJi5ibHVlYXBpLmNvdmVyLnYxLkNvc3RBbGxvY2F0b3JEZXRhaWxzIhmC0+STAhM6ASoiDi92MS9hbGxvY2F0b3JzEqABChdHZXRBbGxvY2F0aW9uQXR0cmlidXRlcxIwLmJsdWVhcGkuY292ZXIudjEuR2V0QWxsb2NhdGlvbkF0dHJpYnV0ZXNSZXF1ZXN0GjEuYmx1ZWFwaS5jb3Zlci52MS5HZXRBbGxvY2F0aW9uQXR0cmlidXRlc1Jlc3BvbnNlIiCC0+STAhoSGC92MS9hbGxvY2F0b3JzL2F0dHJpYnV0ZRKUAQoUR2V0QWxsb2NhdGlvblNvdXJjZXMSLS5ibHVlYXBpLmNvdmVyLnYxLkdldEFsbG9jYXRpb25Tb3VyY2VzUmVxdWVzdBouLmJsdWVhcGkuY292ZXIudjEuR2V0QWxsb2NhdGlvblNvdXJjZXNSZXNwb25zZSIdgtPkkwIXEhUvdjEvYWxsb2NhdG9ycy9zb3VyY2USgQEKD1VwZGF0ZUFsbG9jYXRvchImLmJsdWVhcGkuY292ZXIudjEuQ29zdEFsbG9jYXRvclJlcXVlc3QaJi5ibHVlYXBpLmNvdmVyLnYxLkNvc3RBbGxvY2F0b3JEZXRhaWxzIh6C0+STAhg6ASoaEy92MS9hbGxvY2F0b3JzL3tpZH0ScAoPRGVsZXRlQWxsb2NhdG9yEiguYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVBbGxvY2F0b3JSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IhuC0+STAhUqEy92MS9hbGxvY2F0b3JzL3tpZH0SkAEKFVByb3h5Q3JlYXRlQ29tcGxldGlvbhIuLmJsdWVhcGkuY292ZXIudjEuUHJveHlDcmVhdGVDb21wbGV0aW9uUmVxdWVzdBovLmJsdWVhcGkuY292ZXIudjEuUHJveHlDcmVhdGVDb21wbGV0aW9uUmVzcG9uc2UiFILT5JMCDjoBKiIJL3YxL3gvcGNjMAESigEKFFNpbXVsYXRlRmVlQWxsb2NhdG9yEiguYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVBbGxvY2F0b3JSZXF1ZXN0GhwuYmx1ZWFwaS5jb3Zlci52MS5GZWVEZXRhaWxzIiiC0+STAiI6ASoiHS92MS9hbGxvY2F0aW9ucy9mZWVzL3NpbXVsYXRlMAESmAEKEExpc3RBY2NvdW50VXNhZ2USKS5ibHVlYXBpLmNvdmVyLnYxLkxpc3RBY2NvdW50VXNhZ2VSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5BY2NvdW50VXNhZ2VEZXRhaWxzIjCC0+STAio6ASoiJS92MS9hbGxvY2F0aW9ucy9hY2NvdW50dXNhZ2UvYWxsOnJlYWQwARKdAQoTUmVzdG9yZUFjY291bnRVc2FnZRIsLmJsdWVhcGkuY292ZXIudjEuUmVzdG9yZUFjY291bnRVc2FnZVJlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkFjY291bnRVc2FnZURldGFpbHMiL4LT5JMCKToBKiIkL3YxL2FsbG9jYXRpb25zL2FjY291bnR1c2FnZS9yZXN0b3JlMAESmwEKFFNpbXVsYXRlQWNjb3VudFVzYWdlEiguYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVBbGxvY2F0b3JSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5BY2NvdW50VXNhZ2VEZXRhaWxzIjCC0+STAio6ASoiJS92MS9hbGxvY2F0aW9ucy9hY2NvdW50dXNhZ2Uvc2ltdWxhdGUwARKBAQoLTGlzdFNhdmluZ3MSIS5ibHVlYXBpLmNvdmVyLnYxLkxpc3RGZWVzUmVxdWVzdBogLmJsdWVhcGkuY292ZXIudjEuU2F2aW5nc0RldGFpbHMiK4LT5JMCJToBKiIgL3YxL2FsbG9jYXRpb25zL3NhdmluZ3MvYWxsOnJlYWQwARKJAQoOUmVzdG9yZVNhdmluZ3MSJy5ibHVlYXBpLmNvdmVyLnYxLlJlc3RvcmVTYXZpbmdzUmVxdWVzdBogLmJsdWVhcGkuY292ZXIudjEuU2F2aW5nc0RldGFpbHMiKoLT5JMCJDoBKiIfL3YxL2FsbG9jYXRpb25zL3NhdmluZ3MvcmVzdG9yZTABEowBCg9TaW11bGF0ZVNhdmluZ3MSKC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUFsbG9jYXRvclJlcXVlc3QaIC5ibHVlYXBpLmNvdmVyLnYxLlNhdmluZ3NEZXRhaWxzIiuC0+STAiU6ASoiIC92MS9hbGxvY2F0aW9ucy9zYXZpbmdzL3NpbXVsYXRlMAESjgEKFkdldENvc3RHcm91cEFsbG9jYXRpb24SLy5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RHcm91cEFsbG9jYXRpb25SZXF1ZXN0GiAuYmx1ZWFwaS5jb3Zlci52MS5BbGxvY2F0aW9uSXRlbSIfgtPkkwIZOgEqIhQvdjEvYWxsb2NhdGlvbnM6cmVhZDABEocBChBQcm9jZXNzQXV0aDBVc2VyEikuYmx1ZWFwaS5jb3Zlci52MS5Qcm9jZXNzQXV0aDBVc2VyUmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuUHJvY2Vzc0F1dGgwVXNlclJlc3BvbnNlIhyC0+STAhY6ASoiES92MS9tZW1iZXJzL2F1dGgwEpsBChtBZGRQYXJ0bmVyQ2VudGVyQ3JlZGVudGlhbHMSNC5ibHVlYXBpLmNvdmVyLnYxLkFkZFBhcnRuZXJDZW50ZXJDcmVkZW50aWFsc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiLoLT5JMCKDoBKiIjL3YxL2F6dXJlL2NyZWRlbnRpYWxzL3BhcnRuZXJjZW50ZXISdQoNQWRkTXBuU2V0dGluZxImLmJsdWVhcGkuY292ZXIudjEuQWRkTXBuU2V0dGluZ1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiJILT5JMCHjoBKiIZL3YxL2F6dXJlL2NyZWRlbnRpYWxzL21wbhKTAQoVR2V0Q29zdEdyb3VwQXR0cmlidXRlEi4uYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0R3JvdXBBdHRyaWJ1dGVSZXF1ZXN0Gi8uYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0R3JvdXBBdHRyaWJ1dGVSZXNwb25zZSIZgtPkkwITOgEqIg4vdjEvYXR0cmlidXRlcxJvCglHZXRBbGVydHMSIi5ibHVlYXBpLmNvdmVyLnYxLkdldEFsZXJ0c1JlcXVlc3QaIy5ibHVlYXBpLmNvdmVyLnYxLkdldEFsZXJ0c1Jlc3BvbnNlIheC0+STAhESDy92MS9hbGVydHMvY29zdDABEnYKC0NyZWF0ZUFsZXJ0EiQuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVBbGVydFJlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUFsZXJ0UmVzcG9uc2UiGoLT5JMCFDoBKiIPL3YxL2FsZXJ0cy9jb3N0EoQBCg9HZXRBbGVydERldGFpbHMSKC5ibHVlYXBpLmNvdmVyLnYxLkdldEFsZXJ0RGV0YWlsc1JlcXVlc3QaKS5ibHVlYXBpLmNvdmVyLnYxLkdldEFsZXJ0RGV0YWlsc1Jlc3BvbnNlIhyC0+STAhYSFC92MS9hbGVydHMvY29zdC97aWR9EngKC0RlbGV0ZUFsZXJ0EiQuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVBbGVydFJlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUFsZXJ0UmVzcG9uc2UiHILT5JMCFioUL3YxL2FsZXJ0cy9jb3N0L3tpZH0SkAEKElVwZGF0ZUFsZXJ0RGV0YWlscxIrLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQWxlcnREZXRhaWxzUmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQWxlcnREZXRhaWxzUmVzcG9uc2UiH4LT5JMCGToBKhoUL3YxL2FsZXJ0cy9jb3N0L3tpZH0SegoLR2V0Q2hhbm5lbHMSJC5ibHVlYXBpLmNvdmVyLnYxLkdldENoYW5uZWxzUmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuR2V0Q2hhbm5lbHNSZXNwb25zZSIcgtPkkwIWOgEqIhEvdjEvY2hhbm5lbHM6cmVhZDABEnkKDUNyZWF0ZUNoYW5uZWwSJi5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUNoYW5uZWxSZXF1ZXN0GicuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVDaGFubmVsUmVzcG9uc2UiF4LT5JMCEToBKiIML3YxL2NoYW5uZWxzEocBChFHZXRDaGFubmVsRGV0YWlscxIqLmJsdWVhcGkuY292ZXIudjEuR2V0Q2hhbm5lbERldGFpbHNSZXF1ZXN0GisuYmx1ZWFwaS5jb3Zlci52MS5HZXRDaGFubmVsRGV0YWlsc1Jlc3BvbnNlIhmC0+STAhMSES92MS9jaGFubmVscy97aWR9EnsKDURlbGV0ZUNoYW5uZWwSJi5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUNoYW5uZWxSZXF1ZXN0GicuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVDaGFubmVsUmVzcG9uc2UiGYLT5JMCEyoRL3YxL2NoYW5uZWxzL3tpZH0SkwEKFFVwZGF0ZUNoYW5uZWxEZXRhaWxzEi0uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDaGFubmVsRGV0YWlsc1JlcXVlc3QaLi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNoYW5uZWxEZXRhaWxzUmVzcG9uc2UiHILT5JMCFjoBKhoRL3YxL2NoYW5uZWxzL3tpZH0SoAEKGkdldERpc2NvdW50UmVjb21tZW5kYXRpb25zEjMuYmx1ZWFwaS5jb3Zlci52MS5HZXREaXNjb3VudFJlY29tbWVuZGF0aW9uc1JlcXVlc3QaNC5ibHVlYXBpLmNvdmVyLnYxLkdldERpc2NvdW50UmVjb21tZW5kYXRpb25zUmVzcG9uc2UiF4LT5JMCEToBKiIML3YxL2Rpc2NvdW50EoABChVHZXRBbm9tYWx5aW5Db3N0R3JvdXASLi5ibHVlYXBpLmNvdmVyLnYxLkdldEFub21hbHlpbkNvc3RHcm91cFJlcXVlc3QaHS5ibHVlYXBpLmNvdmVyLnYxLkFub21hbHlEYXRhIhaC0+STAhA6ASoiCy92MS9hbm9tYWx5MAESlgEKHUNyZWF0ZURpc2NvdW50RXhwaXJhdGlvbkFsZXJ0EjYuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVEaXNjb3VudEV4cGlyYXRpb25BbGVydFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiJYLT5JMCHzoBKiIaL3YxL2FsZXJ0cy9leHBpcmUvZGlzY291bnQSmwEKHVVwZGF0ZURpc2NvdW50RXhwaXJhdGlvbkFsZXJ0EjYuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVEaXNjb3VudEV4cGlyYXRpb25BbGVydFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiKoLT5JMCJDoBKhofL3YxL2FsZXJ0cy9leHBpcmUvZGlzY291bnQve2lkfRKsAQoaR2V0RGlzY291bnRFeHBpcmF0aW9uQWxlcnQSOi5ibHVlYXBpLmNvdmVyLnYxLk1hbmlwdWxhdGVEaXNjb3VudEV4cGlyYXRpb25BbGVydFJlcXVlc3QaKS5ibHVlYXBpLmNvdmVyLnYxLkRpc2NvdW50RXhwaXJ5QWxlcnREYXRhIieC0+STAiESHy92MS9hbGVydHMvZXhwaXJlL2Rpc2NvdW50L3tpZH0SrQEKG0xpc3REaXNjb3VudEV4cGlyYXRpb25BbGVydBI0LmJsdWVhcGkuY292ZXIudjEuTGlzdERpc2NvdW50RXhwaXJhdGlvbkFsZXJ0UmVxdWVzdBopLmJsdWVhcGkuY292ZXIudjEuRGlzY291bnRFeHBpcnlBbGVydERhdGEiK4LT5JMCJSIjL3YxL2FsZXJ0cy9leHBpcmUvZGlzY291bnQvYWxsOnJlYWQwARKcAQodRGVsZXRlRGlzY291bnRFeHBpcmF0aW9uQWxlcnQSOi5ibHVlYXBpLmNvdmVyLnYxLk1hbmlwdWxhdGVEaXNjb3VudEV4cGlyYXRpb25BbGVydFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiJ4LT5JMCISofL3YxL2FsZXJ0cy9leHBpcmUvZGlzY291bnQve2lkfRJ4ChJDcmVhdGVBbm9tYWx5QWxlcnQSKy5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUFub21hbHlBbGVydFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiHYLT5JMCFzoBKiISL3YxL2FsZXJ0cy9hbm9tYWx5En4KEkRlbGV0ZUFub21hbHlBbGVydBIvLmJsdWVhcGkuY292ZXIudjEuTWFuaXB1bGF0ZUFub21hbHlBbGVydFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiH4LT5JMCGSoXL3YxL2FsZXJ0cy9hbm9tYWx5L3tpZH0SiAEKEExpc3RBbm9tYWx5QWxlcnQSKS5ibHVlYXBpLmNvdmVyLnYxLkxpc3RBbm9tYWx5QWxlcnRSZXF1ZXN0GiIuYmx1ZWFwaS5jb3Zlci52MS5Bbm9tYWx5QWxlcnREYXRhIiOC0+STAh0iGy92MS9hbGVydHMvYW5vbWFseS9hbGw6cmVhZDABEocBCg9HZXRBbm9tYWx5QWxlcnQSLy5ibHVlYXBpLmNvdmVyLnYxLk1hbmlwdWxhdGVBbm9tYWx5QWxlcnRSZXF1ZXN0GiIuYmx1ZWFwaS5jb3Zlci52MS5Bbm9tYWx5QWxlcnREYXRhIh+C0+STAhkSFy92MS9hbGVydHMvYW5vbWFseS97aWR9En0KElVwZGF0ZUFub21hbHlBbGVydBIrLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQW5vbWFseUFsZXJ0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIigtPkkwIcOgEqGhcvdjEvYWxlcnRzL2Fub21hbHkve2lkfRKHAQoPUmVnaXN0ZXJOZXdVc2VyEiguYmx1ZWFwaS5jb3Zlci52MS5SZWdpc3Rlck5ld1VzZXJSZXF1ZXN0GikuYmx1ZWFwaS5jb3Zlci52MS5SZWdpc3Rlck5ld1VzZXJSZXNwb25zZSIfgtPkkwIZOgEqIhQvdjEvbWVtYmVycy9yZWdpc3RlchKIAQoOR2V0VXNlclByb2ZpbGUSJy5ibHVlYXBpLmNvdmVyLnYxLkdldFVzZXJQcm9maWxlUmVxdWVzdBooLmJsdWVhcGkuY292ZXIudjEuR2V0VXNlclByb2ZpbGVSZXNwb25zZSIjgtPkkwIdEhsvdjEvbWVtYmVycy9wcm9maWxlL3tlbWFpbH0SlAEKEVVwZGF0ZVVzZXJQcm9maWxlEiouYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyUHJvZmlsZVJlcXVlc3QaKy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJQcm9maWxlUmVzcG9uc2UiJoLT5JMCIDoBKhobL3YxL21lbWJlcnMvcHJvZmlsZS97ZW1haWx9EngKC0xpc3RCdWRnZXRzEiQuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QnVkZ2V0c1JlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkxpc3RCdWRnZXRzUmVzcG9uc2UiGoLT5JMCFDoBKiIPL3YxL2J1ZGdldDpyZWFkMAESbQoJR2V0QnVkZ2V0EiIuYmx1ZWFwaS5jb3Zlci52MS5HZXRCdWRnZXRSZXF1ZXN0GiMuYmx1ZWFwaS5jb3Zlci52MS5HZXRCdWRnZXRSZXNwb25zZSIXgtPkkwIREg8vdjEvYnVkZ2V0L3tpZH0SdAoMQ3JlYXRlQnVkZ2V0EiUuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVCdWRnZXRSZXF1ZXN0GiYuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVCdWRnZXRSZXNwb25zZSIVgtPkkwIPOgEqIgovdjEvYnVkZ2V0EnYKDERlbGV0ZUJ1ZGdldBIlLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQnVkZ2V0UmVxdWVzdBomLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQnVkZ2V0UmVzcG9uc2UiF4LT5JMCESoPL3YxL2J1ZGdldC97aWR9EnkKDFVwZGF0ZUJ1ZGdldBIlLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQnVkZ2V0UmVxdWVzdBomLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQnVkZ2V0UmVzcG9uc2UiGoLT5JMCFDoBKhoPL3YxL2J1ZGdldC97aWR9EtcBCidSZXNvbHZlQVdTTWFya2V0cGxhY2VUb2tlbkZvck9uYm9hcmRpbmcSQC5ibHVlYXBpLmNvdmVyLnYxLlJlc29sdmVBV1NNYXJrZXRwbGFjZVRva2VuRm9yT25ib2FyZGluZ1JlcXVlc3QaQS5ibHVlYXBpLmNvdmVyLnYxLlJlc29sdmVBV1NNYXJrZXRwbGFjZVRva2VuRm9yT25ib2FyZGluZ1Jlc3BvbnNlIieC0+STAiE6ASoiHC92MS9tZW1iZXJzL2F3cy9zdWJzY3JpcHRpb24SrAEKHUdldEN1c3RvbWVyU3Vic2NyaXB0aW9uU3RhdHVzEjYuYmx1ZWFwaS5jb3Zlci52MS5HZXRDdXN0b21lclN1YnNjcmlwdGlvblN0YXR1c1JlcXVlc3QaNy5ibHVlYXBpLmNvdmVyLnYxLkdldEN1c3RvbWVyU3Vic2NyaXB0aW9uU3RhdHVzUmVzcG9uc2UiGoLT5JMCFBISL3YxL2JpbGxpbmcvc3RhdHVzEoYBCg9DcmVhdGVQcm9maWxpbmcSKC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVByb2ZpbGluZ1JlcXVlc3QaKS5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVByb2ZpbGluZ1Jlc3BvbnNlIh6C0+STAhg6ASoiEy92MS9tZW1iZXJzL3Byb2ZpbGUSlgEKFEFkZEluZm90b01hcmtldHBsYWNlEi0uYmx1ZWFwaS5jb3Zlci52MS5BZGRJbmZvdG9NYXJrZXRwbGFjZVJlcXVlc3QaLi5ibHVlYXBpLmNvdmVyLnYxLkFkZEluZm90b01hcmtldHBsYWNlUmVzcG9uc2UiH4LT5JMCGToBKiIUL3YxL21hcmtldHBsYWNlL2luZm8SnAEKEEdldFJlcG9ydFN1bW1hcnkSKS5ibHVlYXBpLmNvdmVyLnYxLkdldFJlcG9ydFN1bW1hcnlSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5HZXRSZXBvcnRTdW1tYXJ5UmVzcG9uc2UiMYLT5JMCKxIpL3YxL3JlcG9ydHMvaW5zaWdodC9zdW1tYXJ5L3tjb3N0R3JvdXBJZH0SnAEKE0xpc3RSZWNvbW1lbmRhdGlvbnMSKy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RSZWNvbW1lbmRhdGlvblJlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLkxpc3RSZWNvbW1lbmRhdGlvblJlc3BvbnNlIiiC0+STAiISIC92MS9yZWNvbW1lbmRhdGlvbnMvb3B0aW1pemF0aW9uMAESnwEKFUxpc3RSZWNvbW1lbmRhdGlvbnNWMhItLmJsdWVhcGkuY292ZXIudjEuTGlzdFJlY29tbWVuZGF0aW9uVjJSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5MaXN0UmVjb21tZW5kYXRpb25SZXNwb25zZSIngtPkkwIhOgEqIhwvdjEvcmVjb21tZW5kYXRpb25zL2FsbDpyZWFkMAESmwEKEUdldFJlY29tbWVuZGF0aW9uEiouYmx1ZWFwaS5jb3Zlci52MS5HZXRSZWNvbW1lbmRhdGlvblJlcXVlc3QaKy5ibHVlYXBpLmNvdmVyLnYxLkdldFJlY29tbWVuZGF0aW9uUmVzcG9uc2UiLYLT5JMCJxIlL3YxL3JlY29tbWVuZGF0aW9ucy9vcHRpbWl6YXRpb24ve2lkfRKcAQoTR2V0UmVjb21tZW5kYXRpb25WMhIsLmJsdWVhcGkuY292ZXIudjEuR2V0UmVjb21tZW5kYXRpb25WMlJlcXVlc3QaLS5ibHVlYXBpLmNvdmVyLnYxLkdldFJlY29tbWVuZGF0aW9uVjJSZXNwb25zZSIogtPkkwIiEiAvdjEvcmVjb21tZW5kYXRpb25zL2RldGFpbHMve2lkfRKaAQoTRXhlY3V0ZU9wdGltaXphdGlvbhIsLmJsdWVhcGkuY292ZXIudjEuRXhlY3V0ZU9wdGltaXphdGlvblJlcXVlc3QaLS5ibHVlYXBpLmNvdmVyLnYxLkV4ZWN1dGVPcHRpbWl6YXRpb25SZXNwb25zZSImgtPkkwIgOgEqIhsvdjEvcmVjb21tZW5kYXRpb25zL2V4ZWN1dGUSnQEKEkdldEV4ZWN1dGlvblN0YXR1cxIrLmJsdWVhcGkuY292ZXIudjEuR2V0RXhlY3V0aW9uU3RhdHVzUmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuR2V0RXhlY3V0aW9uU3RhdHVzUmVzcG9uc2UiKoLT5JMCJBIiL3YxL3JlY29tbWVuZGF0aW9ucy9leGVjdXRlL3N0YXR1czABEpkBCg5NYXJrQXNFeGVjdXRlZBInLmJsdWVhcGkuY292ZXIudjEuTWFya0FzRXhlY3V0ZWRSZXF1ZXN0GiguYmx1ZWFwaS5jb3Zlci52MS5NYXJrQXNFeGVjdXRlZFJlc3BvbnNlIjSC0+STAi46ASoiKS92MS9yZWNvbW1lbmRhdGlvbnMvb3B0aW1pemF0aW9uL2V4ZWN1dGVkErkBChpVbmRvRXhlY3V0ZWRSZWNvbW1lbmRhdGlvbhIzLmJsdWVhcGkuY292ZXIudjEuVW5kb0V4ZWN1dGVkUmVjb21tZW5kYXRpb25SZXF1ZXN0GjQuYmx1ZWFwaS5jb3Zlci52MS5VbmRvRXhlY3V0ZWRSZWNvbW1lbmRhdGlvblJlc3BvbnNlIjCC0+STAio6ASoiJS92MS9yZWNvbW1lbmRhdGlvbnMvb3B0aW1pemF0aW9uL3VuZG8SpAEKE09wdGltaXphdGlvbkhpc3RvcnkSLC5ibHVlYXBpLmNvdmVyLnYxLk9wdGltaXphdGlvbkhpc3RvcnlSZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5PcHRpbWl6YXRpb25IaXN0b3J5UmVzcG9uc2UiMILT5JMCKhIoL3YxL3JlY29tbWVuZGF0aW9ucy9vcHRpbWl6YXRpb24vaGlzdG9yeRK/AQoaU2V0Q29zdEdyb3VwRXZlbnRJbmRpY2F0b3ISMy5ibHVlYXBpLmNvdmVyLnYxLlNldENvc3RHcm91cEV2ZW50SW5kaWNhdG9yUmVxdWVzdBo0LmJsdWVhcGkuY292ZXIudjEuU2V0Q29zdEdyb3VwRXZlbnRJbmRpY2F0b3JSZXNwb25zZSI2gtPkkwIwOgEqIisvdjEvY29zdGdyb3Vwcy97Y29zdEdyb3VwSWR9L2V2ZW50SW5kaWNhdG9yErgBChpTZXRDb3N0R3JvdXBBbm9tYWx5T3B0aW9ucxIzLmJsdWVhcGkuY292ZXIudjEuU2V0Q29zdEdyb3VwQW5vbWFseU9wdGlvbnNSZXF1ZXN0GjQuYmx1ZWFwaS5jb3Zlci52MS5TZXRDb3N0R3JvdXBBbm9tYWx5T3B0aW9uc1Jlc3BvbnNlIi+C0+STAik6ASoiJC92MS9jb3N0Z3JvdXBzL3tjb3N0R3JvdXBJZH0vYW5vbWFseRKQAQoRU2V0T3JnRmlzY2FsTW9udGgSKi5ibHVlYXBpLmNvdmVyLnYxLlNldE9yZ0Zpc2NhbE1vbnRoUmVxdWVzdBorLmJsdWVhcGkuY292ZXIudjEuU2V0T3JnRmlzY2FsTW9udGhSZXNwb25zZSIigtPkkwIcOgEqIhcvdjEvcmVwb3J0cy9maXNjYWxtb250aBKNAQoRR2V0T3JnRmlzY2FsTW9udGgSKi5ibHVlYXBpLmNvdmVyLnYxLkdldE9yZ0Zpc2NhbE1vbnRoUmVxdWVzdBorLmJsdWVhcGkuY292ZXIudjEuR2V0T3JnRmlzY2FsTW9udGhSZXNwb25zZSIfgtPkkwIZEhcvdjEvcmVwb3J0cy9maXNjYWxtb250aBKiAQoUVHJhbnNmZXJPcmdhbml6YXRpb24SLS5ibHVlYXBpLmNvdmVyLnYxLlRyYW5zZmVyT3JnYW5pemF0aW9uUmVxdWVzdBouLmJsdWVhcGkuY292ZXIudjEuVHJhbnNmZXJPcmdhbml6YXRpb25SZXNwb25zZSIrgtPkkwIlEiMvdjEvb3JnYW5pemF0aW9ucy90cmFuc2Zlci97dGFyZ2V0fRKpAQoZVXBkYXRlQ29zdEdyb3VwQ3JlYXRpb25VSRIyLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwQ3JlYXRpb25VSVJlcXVlc3QaMy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cENyZWF0aW9uVUlSZXNwb25zZSIjgtPkkwIdOgEqGhgvdjEvbWUvY29zdGdyb3VwY3JlYXRpb24SdgoNTGlzdFVuaXRUeXBlcxImLmJsdWVhcGkuY292ZXIudjEuTGlzdFVuaXRUeXBlc1JlcXVlc3QaJy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RVbml0VHlwZXNSZXNwb25zZSIUgtPkkwIOEgwvdjEvdW5pdGNvc3QSfAoOQ3JlYXRlVW5pdFR5cGUSJy5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVVuaXRUeXBlUmVxdWVzdBooLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlVW5pdFR5cGVSZXNwb25zZSIXgtPkkwIROgEqIgwvdjEvdW5pdGNvc3QSdQoLR2V0VW5pdFR5cGUSJC5ibHVlYXBpLmNvdmVyLnYxLkdldFVuaXRUeXBlUmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuR2V0VW5pdFR5cGVSZXNwb25zZSIZgtPkkwITEhEvdjEvdW5pdGNvc3Qve2lkfRKBAQoOVXBkYXRlVW5pdFR5cGUSJy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVuaXRUeXBlUmVxdWVzdBooLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVW5pdFR5cGVSZXNwb25zZSIcgtPkkwIWOgEqGhEvdjEvdW5pdGNvc3Qve2lkfRJ+Cg5EZWxldGVVbml0VHlwZRInLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlVW5pdFR5cGVSZXF1ZXN0GiguYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVVbml0VHlwZVJlc3BvbnNlIhmC0+STAhMqES92MS91bml0Y29zdC97aWR9EnYKCk1lcmdlVW5pdHMSIy5ibHVlYXBpLmNvdmVyLnYxLk1lcmdlVW5pdHNSZXF1ZXN0GiQuYmx1ZWFwaS5jb3Zlci52MS5NZXJnZVVuaXRzUmVzcG9uc2UiHYLT5JMCFzoBKiISL3YxL3VuaXRjb3N0L21lcmdlEpEBChJMaXN0U3VnZ2VzdGVkVW5pdHMSKy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RTdWdnZXN0ZWRVbml0c1JlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLkxpc3RTdWdnZXN0ZWRVbml0c1Jlc3BvbnNlIiCC0+STAhoSGC92MS91bml0Y29zdC9hdXRvc3VnZ2VzdBKdAQoTTWVyZ2VTdWdnZXN0ZWRVbml0cxIsLmJsdWVhcGkuY292ZXIudjEuTWVyZ2VTdWdnZXN0ZWRVbml0c1JlcXVlc3QaLS5ibHVlYXBpLmNvdmVyLnYxLk1lcmdlU3VnZ2VzdGVkVW5pdHNSZXNwb25zZSIpgtPkkwIjOgEqIh4vdjEvdW5pdGNvc3QvYXV0b3N1Z2dlc3QvbWVyZ2USqgEKF0NyZWF0ZVVuaXRGcm9tU3VnZ2VzdGVkEjAuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVVbml0RnJvbVN1Z2dlc3RlZFJlcXVlc3QaMS5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVVuaXRGcm9tU3VnZ2VzdGVkUmVzcG9uc2UiKoLT5JMCJDoBKiIfL3YxL3VuaXRjb3N0L2F1dG9zdWdnZXN0L2NyZWF0ZRKYAQoTTGlzdFNoYXJlZFJlc291cmNlcxIsLmJsdWVhcGkuY292ZXIudjEuTGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3QaLS5ibHVlYXBpLmNvdmVyLnYxLkxpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZSIkgtPkkwIeEhwvdjEvdW5pdGNvc3Qvc2hhcmVkcmVzb3VyY2VzEqABChRDcmVhdGVTaGFyZWRSZXNvdXJjZRIuLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlU2hhcmVkUmVzb3VyY2VzUmVxdWVzdBovLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlU2hhcmVkUmVzb3VyY2VzUmVzcG9uc2UiJ4LT5JMCIToBKiIcL3YxL3VuaXRjb3N0L3NoYXJlZHJlc291cmNlcxKZAQoRR2V0U2hhcmVkUmVzb3VyY2USKy5ibHVlYXBpLmNvdmVyLnYxLkdldFNoYXJlZFJlc291cmNlc1JlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLkdldFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlIimC0+STAiMSIS92MS91bml0Y29zdC9zaGFyZWRyZXNvdXJjZXMve2lkfRKlAQoUVXBkYXRlU2hhcmVkUmVzb3VyY2USLi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVNoYXJlZFJlc291cmNlc1JlcXVlc3QaLy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVNoYXJlZFJlc291cmNlc1Jlc3BvbnNlIiyC0+STAiY6ASoaIS92MS91bml0Y29zdC9zaGFyZWRyZXNvdXJjZXMve2lkfRKiAQoURGVsZXRlU2hhcmVkUmVzb3VyY2USLi5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZVNoYXJlZFJlc291cmNlc1JlcXVlc3QaLy5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZVNoYXJlZFJlc291cmNlc1Jlc3BvbnNlIimC0+STAiMqIS92MS91bml0Y29zdC9zaGFyZWRyZXNvdXJjZXMve2lkfRKEAQoPTGlzdFVuaXRNZXRyaWNzEiguYmx1ZWFwaS5jb3Zlci52MS5MaXN0VW5pdE1ldHJpY3NSZXF1ZXN0GikuYmx1ZWFwaS5jb3Zlci52MS5MaXN0VW5pdE1ldHJpY3NSZXNwb25zZSIcgtPkkwIWEhQvdjEvdW5pdGNvc3QvbWV0cmljcxKKAQoQQ3JlYXRlVW5pdE1ldHJpYxIpLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlVW5pdE1ldHJpY1JlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVVuaXRNZXRyaWNSZXNwb25zZSIfgtPkkwIZOgEqIhQvdjEvdW5pdGNvc3QvbWV0cmljcxKDAQoNR2V0VW5pdE1ldHJpYxImLmJsdWVhcGkuY292ZXIudjEuR2V0VW5pdE1ldHJpY1JlcXVlc3QaJy5ibHVlYXBpLmNvdmVyLnYxLkdldFVuaXRNZXRyaWNSZXNwb25zZSIhgtPkkwIbEhkvdjEvdW5pdGNvc3QvbWV0cmljcy97aWR9Eo8BChBVcGRhdGVVbml0TWV0cmljEikuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVbml0TWV0cmljUmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVW5pdE1ldHJpY1Jlc3BvbnNlIiSC0+STAh46ASoaGS92MS91bml0Y29zdC9tZXRyaWNzL3tpZH0SjAEKEERlbGV0ZVVuaXRNZXRyaWMSKS5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZVVuaXRNZXRyaWNSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVVbml0TWV0cmljUmVzcG9uc2UiIYLT5JMCGyoZL3YxL3VuaXRjb3N0L21ldHJpY3Mve2lkfRK2AQoYQ29uZmlybUdvb2dsZVNoZWV0QWNjZXNzEjEuYmx1ZWFwaS5jb3Zlci52MS5Db25maXJtR29vZ2xlU2hlZXRBY2Nlc3NSZXF1ZXN0GjIuYmx1ZWFwaS5jb3Zlci52MS5Db25maXJtR29vZ2xlU2hlZXRBY2Nlc3NSZXNwb25zZSIzgtPkkwItOgEqIigvdjEvdW5pdGNvc3QvbWV0cmljcy9nb29nbGVzaGVldC9jb25maXJtEqQBChJQcmV2aWV3R29vZ2xlU2hlZXQSKy5ibHVlYXBpLmNvdmVyLnYxLlByZXZpZXdHb29nbGVTaGVldFJlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLlByZXZpZXdHb29nbGVTaGVldFJlc3BvbnNlIjOC0+STAi06ASoiKC92MS91bml0Y29zdC9tZXRyaWNzL2dvb2dsZXNoZWV0L3ByZXZpZXcSqgEKFUdldENsb3Vkd2F0Y2hNZXRhZGF0YRIuLmJsdWVhcGkuY292ZXIudjEuR2V0Q2xvdWR3YXRjaE1ldGFkYXRhUmVxdWVzdBovLmJsdWVhcGkuY292ZXIudjEuR2V0Q2xvdWR3YXRjaE1ldGFkYXRhUmVzcG9uc2UiMILT5JMCKhIoL3YxL3VuaXRjb3N0L21ldHJpY3MvY2xvdWR3YXRjaC9tZXRhZGF0YRKEAQoPVmVyaWZ5QVBJQWNjZXNzEiguYmx1ZWFwaS5jb3Zlci52MS5WZXJpZnlBUElBY2Nlc3NSZXF1ZXN0GikuYmx1ZWFwaS5jb3Zlci52MS5WZXJpZnlBUElBY2Nlc3NSZXNwb25zZSIcgtPkkwIWEhQvdjEvYXBpYWNjZXNzL3ZlcmlmeRKJAQoRR2V0QUlDb3N0QW5kVXNhZ2USKi5ibHVlYXBpLmNvdmVyLnYxLkdldEFJQ29zdEFuZFVzYWdlUmVxdWVzdBorLmJsdWVhcGkuY292ZXIudjEuR2V0QUlDb3N0QW5kVXNhZ2VSZXNwb25zZSIbgtPkkwIVOgEqIhAvdjEvYWkvY29zdHVzYWdlEpcBChVHZXRDb250YWluZXJDb3N0VXNhZ2USKy5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlIiOC0+STAh06ASoiGC92MS9jb250YWluZXJzL2Nvc3R1c2FnZRKHAQoQUG9wdWxhdGVEZW1vRGF0YRIpLmJsdWVhcGkuY292ZXIudjEuUG9wdWxhdGVEZW1vRGF0YVJlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLlBvcHVsYXRlRGVtb0RhdGFSZXNwb25zZSIcgtPkkwIWOgEqIhEvdjEvZGVtby9wb3B1bGF0ZRJ7Cg1SZXNldERlbW9EYXRhEiYuYmx1ZWFwaS5jb3Zlci52MS5SZXNldERlbW9EYXRhUmVxdWVzdBonLmJsdWVhcGkuY292ZXIudjEuUmVzZXREZW1vRGF0YVJlc3BvbnNlIhmC0+STAhM6ASoiDi92MS9kZW1vL3Jlc2V0EpkBCg9HZXREaXNjb3VudFBsYW4SKC5ibHVlYXBpLmNvdmVyLnYxLkdldERpc2NvdW50UGxhblJlcXVlc3QaKS5ibHVlYXBpLmNvdmVyLnYxLkdldERpc2NvdW50UGxhblJlc3BvbnNlIjGC0+STAis6ASoiJi92MS97dmVuZG9yfS9kaXNjb3VudHBsYW4ve29yZ0lkfTpyZWFkEn8KDkdldENvc3RVc2FnZVYyEicuYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0VXNhZ2VWMlJlcXVlc3QaKC5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RVc2FnZVYyUmVzcG9uc2UiGILT5JMCEjoBKiINL3YxL2Nvc3R1c2FnZTABEqgBChVMaXN0Tm9ucGVyZm9ybWluZ1JhdGUSLi5ibHVlYXBpLmNvdmVyLnYxLkxpc3ROb25wZXJmb3JtaW5nUmF0ZVJlcXVlc3QaLy5ibHVlYXBpLmNvdmVyLnYxLkxpc3ROb25wZXJmb3JtaW5nUmF0ZVJlc3BvbnNlIi6C0+STAig6ASoiIy92MS9yZXBvcnRzL3JhdGUvbm9ucGVyZm9ybWluZzpyZWFkEqgBChVMaXN0VW50YWdnZWRSZXNvdXJjZXMSLi5ibHVlYXBpLmNvdmVyLnYxLkxpc3RVbnRhZ2dlZFJlc291cmNlc1JlcXVlc3QaLy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RVbnRhZ2dlZFJlc291cmNlc1Jlc3BvbnNlIi6C0+STAig6ASoiIy92MS9yZXBvcnRzL3Jlc291cmNlcy91bnRhZ2dlZDpyZWFkEn8KDUxpc3RGb3JlY2FzdHMSJi5ibHVlYXBpLmNvdmVyLnYxLkxpc3RGb3JlY2FzdHNSZXF1ZXN0GicuYmx1ZWFwaS5jb3Zlci52MS5MaXN0Rm9yZWNhc3RzUmVzcG9uc2UiHYLT5JMCFzoBKiISL3YxL2ZvcmVjYXN0czpyZWFkEokBChJDcmVhdGVDb3N0Rm9yZWNhc3QSKy5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUNvc3RGb3JlY2FzdFJlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUNvc3RGb3JlY2FzdFJlc3BvbnNlIhiC0+STAhI6ASoiDS92MS9mb3JlY2FzdHMSggEKD0dldENvc3RGb3JlY2FzdBIoLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEZvcmVjYXN0UmVxdWVzdBopLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEZvcmVjYXN0UmVzcG9uc2UiGoLT5JMCFBISL3YxL2ZvcmVjYXN0cy97aWR9Eo4BChJVcGRhdGVDb3N0Rm9yZWNhc3QSKy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RGb3JlY2FzdFJlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RGb3JlY2FzdFJlc3BvbnNlIh2C0+STAhc6ASoaEi92MS9mb3JlY2FzdHMve2lkfRKLAQoSRGVsZXRlQ29zdEZvcmVjYXN0EisuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVDb3N0Rm9yZWNhc3RSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVDb3N0Rm9yZWNhc3RSZXNwb25zZSIagtPkkwIUKhIvdjEvZm9yZWNhc3RzL3tpZH0SmwEKFEdldENvc3RGb3JlY2FzdHNEYXRhEi0uYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0Rm9yZWNhc3RzRGF0YVJlcXVlc3QaLi5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RGb3JlY2FzdHNEYXRhUmVzcG9uc2UiIoLT5JMCHDoBKiIXL3YxL2ZvcmVjYXN0cy9kYXRhOnJlYWQwARKPAQoTR2V0UmVjb21tZW5kYXRpb25WMxIsLmJsdWVhcGkuY292ZXIudjEuR2V0UmVjb21tZW5kYXRpb25WM1JlcXVlc3QaLS5ibHVlYXBpLmNvdmVyLnYxLkdldFJlY29tbWVuZGF0aW9uVjNSZXNwb25zZSIbgtPkkwIVEhMvdjEvcmVjb21tZW5kYXRpb25zEpwBChVMaXN0UmVjb21tZW5kYXRpb25zVjMSLi5ibHVlYXBpLmNvdmVyLnYxLkxpc3RSZWNvbW1lbmRhdGlvbnNWM1JlcXVlc3QaJy5ibHVlYXBpLmNvdmVyLnYxLlJlY29tbWVuZGF0aW9uU3VtbWFyeSIogtPkkwIiOgEqIh0vdjEvcmVjb21tZW5kYXRpb25zL3N1bW1hcmllczABEqUBChdFeGVjdXRlUmVjb21tZW5kYXRpb25WMxIwLmJsdWVhcGkuY292ZXIudjEuRXhlY3V0ZVJlY29tbWVuZGF0aW9uVjNSZXF1ZXN0GjEuYmx1ZWFwaS5jb3Zlci52MS5FeGVjdXRlUmVjb21tZW5kYXRpb25WM1Jlc3BvbnNlIiWC0+STAh86ASoiGi92MS9yZWNvbW1lbmRhdGlvbi9leGVjdXRlEnYKC0ludml0ZVVzZXJzEiQuYmx1ZWFwaS5jb3Zlci52MS5JbnZpdGVVc2Vyc1JlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkludml0ZVVzZXJzUmVzcG9uc2UiGoLT5JMCFDoBKiIPL3YxL3VzZXIvaW52aXRlEm4KCkRlbGV0ZVVzZXISIy5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZVVzZXJSZXF1ZXN0GiQuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVVc2VyUmVzcG9uc2UiFYLT5JMCDyoNL3YxL3VzZXIve2lkfRKCAQoOVXBkYXRlVXNlclJvbGUSJy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJSb2xlUmVxdWVzdBooLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlclJvbGVSZXNwb25zZSIdgtPkkwIXOgEqGhIvdjEvdXNlci97dXNlcl9pZH0SZwoJTGlzdFVzZXJzEiIuYmx1ZWFwaS5jb3Zlci52MS5MaXN0VXNlcnNSZXF1ZXN0GiMuYmx1ZWFwaS5jb3Zlci52MS5MaXN0VXNlcnNSZXNwb25zZSIRgtPkkwILEgkvdjEvdXNlcnMSgAEKDFJlaW52aXRlVXNlchIlLmJsdWVhcGkuY292ZXIudjEuUmVpbnZpdGVVc2VyUmVxdWVzdBomLmJsdWVhcGkuY292ZXIudjEuUmVpbnZpdGVVc2VyUmVzcG9uc2UiIYLT5JMCGzoBKiIWL3YxL3VzZXIve2lkfS9yZWludml0ZRJlCgdHZXRVc2VyEiAuYmx1ZWFwaS5jb3Zlci52MS5HZXRVc2VyUmVxdWVzdBohLmJsdWVhcGkuY292ZXIudjEuR2V0VXNlclJlc3BvbnNlIhWC0+STAg8SDS92MS91c2VyL3tpZH0alwGSQZMBEkIoQkVUQSkgQ292ZXIgQVBJLiBCYXNlIFVSTDogaHR0cHM6Ly9hcGkuYWxwaGF1cy5jbG91ZC9tL2JsdWUvY292ZXIaTQoSU2VydmljZSBkZWZpbml0aW9uEjdodHRwczovL2dpdGh1Yi5jb20vYWxwaGF1c2xhYnMvYmx1ZWFwaS90cmVlL21haW4vY292ZXIvQksKF2Nsb3VkLmFscGhhdXMuYXBpLmNvdmVyQgpDb3ZlclByb3RvWiRnaXRodWIuY29tL2FscGhhdXNsYWJzL2JsdWVhcGkvY292ZXJiBnByb3RvMw", [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_api_cover_role, file_google_protobuf_empty, file_google_protobuf_struct, file_protoc_gen_openapiv2_options_annotations]);
51
+
52
+ /**
53
+ * @generated from message blueapi.cover.v1.GetUserRequest
54
+ */
55
+ export type GetUserRequest = Message<"blueapi.cover.v1.GetUserRequest"> & {
56
+ /**
57
+ * @generated from field: string id = 1;
58
+ */
59
+ id: string;
60
+ };
61
+
62
+ /**
63
+ * Describes the message blueapi.cover.v1.GetUserRequest.
64
+ * Use `create(GetUserRequestSchema)` to create a new message.
65
+ */
66
+ export const GetUserRequestSchema: GenMessage<GetUserRequest> = /*@__PURE__*/
67
+ messageDesc(file_cover_v1_cover, 0);
68
+
69
+ /**
70
+ * @generated from message blueapi.cover.v1.GetUserResponse
71
+ */
72
+ export type GetUserResponse = Message<"blueapi.cover.v1.GetUserResponse"> & {
73
+ /**
74
+ * @generated from field: string id = 1;
75
+ */
76
+ id: string;
77
+
78
+ /**
79
+ * @generated from field: string name = 2;
80
+ */
81
+ name: string;
82
+
83
+ /**
84
+ * @generated from field: string email = 3;
85
+ */
86
+ email: string;
87
+
88
+ /**
89
+ * @generated from field: repeated blueapi.cover.v1.GetUserResponse.Role roles = 4;
90
+ */
91
+ roles: GetUserResponse_Role[];
92
+
93
+ /**
94
+ * @generated from field: blueapi.cover.v1.GetUserResponse.InvitedBy invited_by = 5;
95
+ */
96
+ invitedBy?: GetUserResponse_InvitedBy;
97
+
98
+ /**
99
+ * @generated from field: string last_updated = 6;
100
+ */
101
+ lastUpdated: string;
102
+
103
+ /**
104
+ * @generated from field: string created_on = 7;
105
+ */
106
+ createdOn: string;
107
+ };
108
+
109
+ /**
110
+ * Describes the message blueapi.cover.v1.GetUserResponse.
111
+ * Use `create(GetUserResponseSchema)` to create a new message.
112
+ */
113
+ export const GetUserResponseSchema: GenMessage<GetUserResponse> = /*@__PURE__*/
114
+ messageDesc(file_cover_v1_cover, 1);
115
+
116
+ /**
117
+ * @generated from message blueapi.cover.v1.GetUserResponse.Role
118
+ */
119
+ export type GetUserResponse_Role = Message<"blueapi.cover.v1.GetUserResponse.Role"> & {
120
+ /**
121
+ * @generated from field: string id = 1;
122
+ */
123
+ id: string;
124
+
125
+ /**
126
+ * @generated from field: string name = 2;
127
+ */
128
+ name: string;
129
+ };
130
+
131
+ /**
132
+ * Describes the message blueapi.cover.v1.GetUserResponse.Role.
133
+ * Use `create(GetUserResponse_RoleSchema)` to create a new message.
134
+ */
135
+ export const GetUserResponse_RoleSchema: GenMessage<GetUserResponse_Role> = /*@__PURE__*/
136
+ messageDesc(file_cover_v1_cover, 1, 0);
137
+
138
+ /**
139
+ * @generated from message blueapi.cover.v1.GetUserResponse.InvitedBy
140
+ */
141
+ export type GetUserResponse_InvitedBy = Message<"blueapi.cover.v1.GetUserResponse.InvitedBy"> & {
142
+ /**
143
+ * @generated from field: string id = 1;
144
+ */
145
+ id: string;
146
+
147
+ /**
148
+ * @generated from field: string name = 2;
149
+ */
150
+ name: string;
151
+
152
+ /**
153
+ * @generated from field: repeated blueapi.cover.v1.GetUserResponse.Role roles = 3;
154
+ */
155
+ roles: GetUserResponse_Role[];
156
+ };
157
+
158
+ /**
159
+ * Describes the message blueapi.cover.v1.GetUserResponse.InvitedBy.
160
+ * Use `create(GetUserResponse_InvitedBySchema)` to create a new message.
161
+ */
162
+ export const GetUserResponse_InvitedBySchema: GenMessage<GetUserResponse_InvitedBy> = /*@__PURE__*/
163
+ messageDesc(file_cover_v1_cover, 1, 1);
50
164
 
51
165
  /**
52
166
  * @generated from message blueapi.cover.v1.ReinviteUserRequest
@@ -63,7 +177,7 @@ export type ReinviteUserRequest = Message<"blueapi.cover.v1.ReinviteUserRequest"
63
177
  * Use `create(ReinviteUserRequestSchema)` to create a new message.
64
178
  */
65
179
  export const ReinviteUserRequestSchema: GenMessage<ReinviteUserRequest> = /*@__PURE__*/
66
- messageDesc(file_cover_v1_cover, 0);
180
+ messageDesc(file_cover_v1_cover, 2);
67
181
 
68
182
  /**
69
183
  * @generated from message blueapi.cover.v1.ReinviteUserResponse
@@ -76,7 +190,7 @@ export type ReinviteUserResponse = Message<"blueapi.cover.v1.ReinviteUserRespons
76
190
  * Use `create(ReinviteUserResponseSchema)` to create a new message.
77
191
  */
78
192
  export const ReinviteUserResponseSchema: GenMessage<ReinviteUserResponse> = /*@__PURE__*/
79
- messageDesc(file_cover_v1_cover, 1);
193
+ messageDesc(file_cover_v1_cover, 3);
80
194
 
81
195
  /**
82
196
  * @generated from message blueapi.cover.v1.ListUsersRequest
@@ -89,7 +203,7 @@ export type ListUsersRequest = Message<"blueapi.cover.v1.ListUsersRequest"> & {
89
203
  * Use `create(ListUsersRequestSchema)` to create a new message.
90
204
  */
91
205
  export const ListUsersRequestSchema: GenMessage<ListUsersRequest> = /*@__PURE__*/
92
- messageDesc(file_cover_v1_cover, 2);
206
+ messageDesc(file_cover_v1_cover, 4);
93
207
 
94
208
  /**
95
209
  * @generated from message blueapi.cover.v1.ListUsersResponse
@@ -106,7 +220,7 @@ export type ListUsersResponse = Message<"blueapi.cover.v1.ListUsersResponse"> &
106
220
  * Use `create(ListUsersResponseSchema)` to create a new message.
107
221
  */
108
222
  export const ListUsersResponseSchema: GenMessage<ListUsersResponse> = /*@__PURE__*/
109
- messageDesc(file_cover_v1_cover, 3);
223
+ messageDesc(file_cover_v1_cover, 5);
110
224
 
111
225
  /**
112
226
  * @generated from message blueapi.cover.v1.ListUsersResponse.UserSummary
@@ -153,7 +267,7 @@ export type ListUsersResponse_UserSummary = Message<"blueapi.cover.v1.ListUsersR
153
267
  * Use `create(ListUsersResponse_UserSummarySchema)` to create a new message.
154
268
  */
155
269
  export const ListUsersResponse_UserSummarySchema: GenMessage<ListUsersResponse_UserSummary> = /*@__PURE__*/
156
- messageDesc(file_cover_v1_cover, 3, 0);
270
+ messageDesc(file_cover_v1_cover, 5, 0);
157
271
 
158
272
  /**
159
273
  * @generated from message blueapi.cover.v1.UpdateUserRoleRequest
@@ -180,7 +294,7 @@ export type UpdateUserRoleRequest = Message<"blueapi.cover.v1.UpdateUserRoleRequ
180
294
  * Use `create(UpdateUserRoleRequestSchema)` to create a new message.
181
295
  */
182
296
  export const UpdateUserRoleRequestSchema: GenMessage<UpdateUserRoleRequest> = /*@__PURE__*/
183
- messageDesc(file_cover_v1_cover, 4);
297
+ messageDesc(file_cover_v1_cover, 6);
184
298
 
185
299
  /**
186
300
  * @generated from message blueapi.cover.v1.UpdateUserRoleResponse
@@ -193,7 +307,7 @@ export type UpdateUserRoleResponse = Message<"blueapi.cover.v1.UpdateUserRoleRes
193
307
  * Use `create(UpdateUserRoleResponseSchema)` to create a new message.
194
308
  */
195
309
  export const UpdateUserRoleResponseSchema: GenMessage<UpdateUserRoleResponse> = /*@__PURE__*/
196
- messageDesc(file_cover_v1_cover, 5);
310
+ messageDesc(file_cover_v1_cover, 7);
197
311
 
198
312
  /**
199
313
  * @generated from message blueapi.cover.v1.DeleteUserRequest
@@ -210,7 +324,7 @@ export type DeleteUserRequest = Message<"blueapi.cover.v1.DeleteUserRequest"> &
210
324
  * Use `create(DeleteUserRequestSchema)` to create a new message.
211
325
  */
212
326
  export const DeleteUserRequestSchema: GenMessage<DeleteUserRequest> = /*@__PURE__*/
213
- messageDesc(file_cover_v1_cover, 6);
327
+ messageDesc(file_cover_v1_cover, 8);
214
328
 
215
329
  /**
216
330
  * @generated from message blueapi.cover.v1.DeleteUserResponse
@@ -223,7 +337,7 @@ export type DeleteUserResponse = Message<"blueapi.cover.v1.DeleteUserResponse">
223
337
  * Use `create(DeleteUserResponseSchema)` to create a new message.
224
338
  */
225
339
  export const DeleteUserResponseSchema: GenMessage<DeleteUserResponse> = /*@__PURE__*/
226
- messageDesc(file_cover_v1_cover, 7);
340
+ messageDesc(file_cover_v1_cover, 9);
227
341
 
228
342
  /**
229
343
  * @generated from message blueapi.cover.v1.InviteUsersRequest
@@ -250,7 +364,7 @@ export type InviteUsersRequest = Message<"blueapi.cover.v1.InviteUsersRequest">
250
364
  * Use `create(InviteUsersRequestSchema)` to create a new message.
251
365
  */
252
366
  export const InviteUsersRequestSchema: GenMessage<InviteUsersRequest> = /*@__PURE__*/
253
- messageDesc(file_cover_v1_cover, 8);
367
+ messageDesc(file_cover_v1_cover, 10);
254
368
 
255
369
  /**
256
370
  * @generated from message blueapi.cover.v1.InviteUsersResponse
@@ -263,7 +377,7 @@ export type InviteUsersResponse = Message<"blueapi.cover.v1.InviteUsersResponse"
263
377
  * Use `create(InviteUsersResponseSchema)` to create a new message.
264
378
  */
265
379
  export const InviteUsersResponseSchema: GenMessage<InviteUsersResponse> = /*@__PURE__*/
266
- messageDesc(file_cover_v1_cover, 9);
380
+ messageDesc(file_cover_v1_cover, 11);
267
381
 
268
382
  /**
269
383
  * @generated from message blueapi.cover.v1.ExecuteRecommendationV3Request
@@ -285,7 +399,7 @@ export type ExecuteRecommendationV3Request = Message<"blueapi.cover.v1.ExecuteRe
285
399
  * Use `create(ExecuteRecommendationV3RequestSchema)` to create a new message.
286
400
  */
287
401
  export const ExecuteRecommendationV3RequestSchema: GenMessage<ExecuteRecommendationV3Request> = /*@__PURE__*/
288
- messageDesc(file_cover_v1_cover, 10);
402
+ messageDesc(file_cover_v1_cover, 12);
289
403
 
290
404
  /**
291
405
  * @generated from enum blueapi.cover.v1.ExecuteRecommendationV3Request.ExecuteType
@@ -321,7 +435,7 @@ export enum ExecuteRecommendationV3Request_ExecuteType {
321
435
  * Describes the enum blueapi.cover.v1.ExecuteRecommendationV3Request.ExecuteType.
322
436
  */
323
437
  export const ExecuteRecommendationV3Request_ExecuteTypeSchema: GenEnum<ExecuteRecommendationV3Request_ExecuteType> = /*@__PURE__*/
324
- enumDesc(file_cover_v1_cover, 10, 0);
438
+ enumDesc(file_cover_v1_cover, 12, 0);
325
439
 
326
440
  /**
327
441
  * @generated from message blueapi.cover.v1.ExecuteRecommendationV3Response
@@ -338,7 +452,7 @@ export type ExecuteRecommendationV3Response = Message<"blueapi.cover.v1.ExecuteR
338
452
  * Use `create(ExecuteRecommendationV3ResponseSchema)` to create a new message.
339
453
  */
340
454
  export const ExecuteRecommendationV3ResponseSchema: GenMessage<ExecuteRecommendationV3Response> = /*@__PURE__*/
341
- messageDesc(file_cover_v1_cover, 11);
455
+ messageDesc(file_cover_v1_cover, 13);
342
456
 
343
457
  /**
344
458
  * @generated from message blueapi.cover.v1.ListRecommendationsV3Request
@@ -365,7 +479,7 @@ export type ListRecommendationsV3Request = Message<"blueapi.cover.v1.ListRecomme
365
479
  * Use `create(ListRecommendationsV3RequestSchema)` to create a new message.
366
480
  */
367
481
  export const ListRecommendationsV3RequestSchema: GenMessage<ListRecommendationsV3Request> = /*@__PURE__*/
368
- messageDesc(file_cover_v1_cover, 12);
482
+ messageDesc(file_cover_v1_cover, 14);
369
483
 
370
484
  /**
371
485
  * @generated from message blueapi.cover.v1.RecommendationSummary
@@ -472,7 +586,7 @@ export type RecommendationSummary = Message<"blueapi.cover.v1.RecommendationSumm
472
586
  * Use `create(RecommendationSummarySchema)` to create a new message.
473
587
  */
474
588
  export const RecommendationSummarySchema: GenMessage<RecommendationSummary> = /*@__PURE__*/
475
- messageDesc(file_cover_v1_cover, 13);
589
+ messageDesc(file_cover_v1_cover, 15);
476
590
 
477
591
  /**
478
592
  * @generated from message blueapi.cover.v1.GetRecommendationV3Request
@@ -489,7 +603,7 @@ export type GetRecommendationV3Request = Message<"blueapi.cover.v1.GetRecommenda
489
603
  * Use `create(GetRecommendationV3RequestSchema)` to create a new message.
490
604
  */
491
605
  export const GetRecommendationV3RequestSchema: GenMessage<GetRecommendationV3Request> = /*@__PURE__*/
492
- messageDesc(file_cover_v1_cover, 14);
606
+ messageDesc(file_cover_v1_cover, 16);
493
607
 
494
608
  /**
495
609
  * @generated from message blueapi.cover.v1.GetRecommendationV3Response
@@ -506,7 +620,7 @@ export type GetRecommendationV3Response = Message<"blueapi.cover.v1.GetRecommend
506
620
  * Use `create(GetRecommendationV3ResponseSchema)` to create a new message.
507
621
  */
508
622
  export const GetRecommendationV3ResponseSchema: GenMessage<GetRecommendationV3Response> = /*@__PURE__*/
509
- messageDesc(file_cover_v1_cover, 15);
623
+ messageDesc(file_cover_v1_cover, 17);
510
624
 
511
625
  /**
512
626
  * @generated from message blueapi.cover.v1.GetRecommendationV3Response.RecommendationDetail
@@ -623,7 +737,7 @@ export type GetRecommendationV3Response_RecommendationDetail = Message<"blueapi.
623
737
  * Use `create(GetRecommendationV3Response_RecommendationDetailSchema)` to create a new message.
624
738
  */
625
739
  export const GetRecommendationV3Response_RecommendationDetailSchema: GenMessage<GetRecommendationV3Response_RecommendationDetail> = /*@__PURE__*/
626
- messageDesc(file_cover_v1_cover, 15, 0);
740
+ messageDesc(file_cover_v1_cover, 17, 0);
627
741
 
628
742
  /**
629
743
  * @generated from message blueapi.cover.v1.GetCostForecastsDataRequest
@@ -661,7 +775,7 @@ export type GetCostForecastsDataRequest = Message<"blueapi.cover.v1.GetCostForec
661
775
  * Use `create(GetCostForecastsDataRequestSchema)` to create a new message.
662
776
  */
663
777
  export const GetCostForecastsDataRequestSchema: GenMessage<GetCostForecastsDataRequest> = /*@__PURE__*/
664
- messageDesc(file_cover_v1_cover, 16);
778
+ messageDesc(file_cover_v1_cover, 18);
665
779
 
666
780
  /**
667
781
  * @generated from enum blueapi.cover.v1.GetCostForecastsDataRequest.Granularity
@@ -687,7 +801,7 @@ export enum GetCostForecastsDataRequest_Granularity {
687
801
  * Describes the enum blueapi.cover.v1.GetCostForecastsDataRequest.Granularity.
688
802
  */
689
803
  export const GetCostForecastsDataRequest_GranularitySchema: GenEnum<GetCostForecastsDataRequest_Granularity> = /*@__PURE__*/
690
- enumDesc(file_cover_v1_cover, 16, 0);
804
+ enumDesc(file_cover_v1_cover, 18, 0);
691
805
 
692
806
  /**
693
807
  * @generated from message blueapi.cover.v1.GetCostForecastsDataResponse
@@ -719,7 +833,7 @@ export type GetCostForecastsDataResponse = Message<"blueapi.cover.v1.GetCostFore
719
833
  * Use `create(GetCostForecastsDataResponseSchema)` to create a new message.
720
834
  */
721
835
  export const GetCostForecastsDataResponseSchema: GenMessage<GetCostForecastsDataResponse> = /*@__PURE__*/
722
- messageDesc(file_cover_v1_cover, 17);
836
+ messageDesc(file_cover_v1_cover, 19);
723
837
 
724
838
  /**
725
839
  * @generated from message blueapi.cover.v1.ListForecastsRequest
@@ -732,7 +846,7 @@ export type ListForecastsRequest = Message<"blueapi.cover.v1.ListForecastsReques
732
846
  * Use `create(ListForecastsRequestSchema)` to create a new message.
733
847
  */
734
848
  export const ListForecastsRequestSchema: GenMessage<ListForecastsRequest> = /*@__PURE__*/
735
- messageDesc(file_cover_v1_cover, 18);
849
+ messageDesc(file_cover_v1_cover, 20);
736
850
 
737
851
  /**
738
852
  * @generated from message blueapi.cover.v1.ListForecastsResponse
@@ -749,7 +863,7 @@ export type ListForecastsResponse = Message<"blueapi.cover.v1.ListForecastsRespo
749
863
  * Use `create(ListForecastsResponseSchema)` to create a new message.
750
864
  */
751
865
  export const ListForecastsResponseSchema: GenMessage<ListForecastsResponse> = /*@__PURE__*/
752
- messageDesc(file_cover_v1_cover, 19);
866
+ messageDesc(file_cover_v1_cover, 21);
753
867
 
754
868
  /**
755
869
  * @generated from message blueapi.cover.v1.CreateCostForecastRequest
@@ -803,7 +917,7 @@ export type CreateCostForecastRequest = Message<"blueapi.cover.v1.CreateCostFore
803
917
  * Use `create(CreateCostForecastRequestSchema)` to create a new message.
804
918
  */
805
919
  export const CreateCostForecastRequestSchema: GenMessage<CreateCostForecastRequest> = /*@__PURE__*/
806
- messageDesc(file_cover_v1_cover, 20);
920
+ messageDesc(file_cover_v1_cover, 22);
807
921
 
808
922
  /**
809
923
  * @generated from message blueapi.cover.v1.CreateCostForecastResponse
@@ -850,7 +964,7 @@ export type CreateCostForecastResponse = Message<"blueapi.cover.v1.CreateCostFor
850
964
  * Use `create(CreateCostForecastResponseSchema)` to create a new message.
851
965
  */
852
966
  export const CreateCostForecastResponseSchema: GenMessage<CreateCostForecastResponse> = /*@__PURE__*/
853
- messageDesc(file_cover_v1_cover, 21);
967
+ messageDesc(file_cover_v1_cover, 23);
854
968
 
855
969
  /**
856
970
  * @generated from message blueapi.cover.v1.GetCostForecastRequest
@@ -869,7 +983,7 @@ export type GetCostForecastRequest = Message<"blueapi.cover.v1.GetCostForecastRe
869
983
  * Use `create(GetCostForecastRequestSchema)` to create a new message.
870
984
  */
871
985
  export const GetCostForecastRequestSchema: GenMessage<GetCostForecastRequest> = /*@__PURE__*/
872
- messageDesc(file_cover_v1_cover, 22);
986
+ messageDesc(file_cover_v1_cover, 24);
873
987
 
874
988
  /**
875
989
  * @generated from message blueapi.cover.v1.GetCostForecastResponse
@@ -931,7 +1045,7 @@ export type GetCostForecastResponse = Message<"blueapi.cover.v1.GetCostForecastR
931
1045
  * Use `create(GetCostForecastResponseSchema)` to create a new message.
932
1046
  */
933
1047
  export const GetCostForecastResponseSchema: GenMessage<GetCostForecastResponse> = /*@__PURE__*/
934
- messageDesc(file_cover_v1_cover, 23);
1048
+ messageDesc(file_cover_v1_cover, 25);
935
1049
 
936
1050
  /**
937
1051
  * @generated from message blueapi.cover.v1.UpdateCostForecastRequest
@@ -992,7 +1106,7 @@ export type UpdateCostForecastRequest = Message<"blueapi.cover.v1.UpdateCostFore
992
1106
  * Use `create(UpdateCostForecastRequestSchema)` to create a new message.
993
1107
  */
994
1108
  export const UpdateCostForecastRequestSchema: GenMessage<UpdateCostForecastRequest> = /*@__PURE__*/
995
- messageDesc(file_cover_v1_cover, 24);
1109
+ messageDesc(file_cover_v1_cover, 26);
996
1110
 
997
1111
  /**
998
1112
  * @generated from message blueapi.cover.v1.UpdateCostForecastResponse
@@ -1054,7 +1168,7 @@ export type UpdateCostForecastResponse = Message<"blueapi.cover.v1.UpdateCostFor
1054
1168
  * Use `create(UpdateCostForecastResponseSchema)` to create a new message.
1055
1169
  */
1056
1170
  export const UpdateCostForecastResponseSchema: GenMessage<UpdateCostForecastResponse> = /*@__PURE__*/
1057
- messageDesc(file_cover_v1_cover, 25);
1171
+ messageDesc(file_cover_v1_cover, 27);
1058
1172
 
1059
1173
  /**
1060
1174
  * @generated from message blueapi.cover.v1.DeleteCostForecastRequest
@@ -1073,7 +1187,7 @@ export type DeleteCostForecastRequest = Message<"blueapi.cover.v1.DeleteCostFore
1073
1187
  * Use `create(DeleteCostForecastRequestSchema)` to create a new message.
1074
1188
  */
1075
1189
  export const DeleteCostForecastRequestSchema: GenMessage<DeleteCostForecastRequest> = /*@__PURE__*/
1076
- messageDesc(file_cover_v1_cover, 26);
1190
+ messageDesc(file_cover_v1_cover, 28);
1077
1191
 
1078
1192
  /**
1079
1193
  * @generated from message blueapi.cover.v1.DeleteCostForecastResponse
@@ -1090,7 +1204,7 @@ export type DeleteCostForecastResponse = Message<"blueapi.cover.v1.DeleteCostFor
1090
1204
  * Use `create(DeleteCostForecastResponseSchema)` to create a new message.
1091
1205
  */
1092
1206
  export const DeleteCostForecastResponseSchema: GenMessage<DeleteCostForecastResponse> = /*@__PURE__*/
1093
- messageDesc(file_cover_v1_cover, 27);
1207
+ messageDesc(file_cover_v1_cover, 29);
1094
1208
 
1095
1209
  /**
1096
1210
  * @generated from message blueapi.cover.v1.GetCostUsageV2Response
@@ -1122,7 +1236,7 @@ export type GetCostUsageV2Response = Message<"blueapi.cover.v1.GetCostUsageV2Res
1122
1236
  * Use `create(GetCostUsageV2ResponseSchema)` to create a new message.
1123
1237
  */
1124
1238
  export const GetCostUsageV2ResponseSchema: GenMessage<GetCostUsageV2Response> = /*@__PURE__*/
1125
- messageDesc(file_cover_v1_cover, 28);
1239
+ messageDesc(file_cover_v1_cover, 30);
1126
1240
 
1127
1241
  /**
1128
1242
  * @generated from message blueapi.cover.v1.GetCostUsageV2Request
@@ -1184,7 +1298,7 @@ export type GetCostUsageV2Request = Message<"blueapi.cover.v1.GetCostUsageV2Requ
1184
1298
  * Use `create(GetCostUsageV2RequestSchema)` to create a new message.
1185
1299
  */
1186
1300
  export const GetCostUsageV2RequestSchema: GenMessage<GetCostUsageV2Request> = /*@__PURE__*/
1187
- messageDesc(file_cover_v1_cover, 29);
1301
+ messageDesc(file_cover_v1_cover, 31);
1188
1302
 
1189
1303
  /**
1190
1304
  * @generated from enum blueapi.cover.v1.GetCostUsageV2Request.Granularity
@@ -1210,7 +1324,7 @@ export enum GetCostUsageV2Request_Granularity {
1210
1324
  * Describes the enum blueapi.cover.v1.GetCostUsageV2Request.Granularity.
1211
1325
  */
1212
1326
  export const GetCostUsageV2Request_GranularitySchema: GenEnum<GetCostUsageV2Request_Granularity> = /*@__PURE__*/
1213
- enumDesc(file_cover_v1_cover, 29, 0);
1327
+ enumDesc(file_cover_v1_cover, 31, 0);
1214
1328
 
1215
1329
  /**
1216
1330
  * @generated from enum blueapi.cover.v1.GetCostUsageV2Request.Category
@@ -1236,7 +1350,7 @@ export enum GetCostUsageV2Request_Category {
1236
1350
  * Describes the enum blueapi.cover.v1.GetCostUsageV2Request.Category.
1237
1351
  */
1238
1352
  export const GetCostUsageV2Request_CategorySchema: GenEnum<GetCostUsageV2Request_Category> = /*@__PURE__*/
1239
- enumDesc(file_cover_v1_cover, 29, 1);
1353
+ enumDesc(file_cover_v1_cover, 31, 1);
1240
1354
 
1241
1355
  /**
1242
1356
  * @generated from message blueapi.cover.v1.PopulateDemoDataRequest
@@ -1249,7 +1363,7 @@ export type PopulateDemoDataRequest = Message<"blueapi.cover.v1.PopulateDemoData
1249
1363
  * Use `create(PopulateDemoDataRequestSchema)` to create a new message.
1250
1364
  */
1251
1365
  export const PopulateDemoDataRequestSchema: GenMessage<PopulateDemoDataRequest> = /*@__PURE__*/
1252
- messageDesc(file_cover_v1_cover, 30);
1366
+ messageDesc(file_cover_v1_cover, 32);
1253
1367
 
1254
1368
  /**
1255
1369
  * @generated from message blueapi.cover.v1.PopulateDemoDataResponse
@@ -1262,7 +1376,7 @@ export type PopulateDemoDataResponse = Message<"blueapi.cover.v1.PopulateDemoDat
1262
1376
  * Use `create(PopulateDemoDataResponseSchema)` to create a new message.
1263
1377
  */
1264
1378
  export const PopulateDemoDataResponseSchema: GenMessage<PopulateDemoDataResponse> = /*@__PURE__*/
1265
- messageDesc(file_cover_v1_cover, 31);
1379
+ messageDesc(file_cover_v1_cover, 33);
1266
1380
 
1267
1381
  /**
1268
1382
  * @generated from message blueapi.cover.v1.ResetDemoDataRequest
@@ -1275,7 +1389,7 @@ export type ResetDemoDataRequest = Message<"blueapi.cover.v1.ResetDemoDataReques
1275
1389
  * Use `create(ResetDemoDataRequestSchema)` to create a new message.
1276
1390
  */
1277
1391
  export const ResetDemoDataRequestSchema: GenMessage<ResetDemoDataRequest> = /*@__PURE__*/
1278
- messageDesc(file_cover_v1_cover, 32);
1392
+ messageDesc(file_cover_v1_cover, 34);
1279
1393
 
1280
1394
  /**
1281
1395
  * @generated from message blueapi.cover.v1.ResetDemoDataResponse
@@ -1288,7 +1402,7 @@ export type ResetDemoDataResponse = Message<"blueapi.cover.v1.ResetDemoDataRespo
1288
1402
  * Use `create(ResetDemoDataResponseSchema)` to create a new message.
1289
1403
  */
1290
1404
  export const ResetDemoDataResponseSchema: GenMessage<ResetDemoDataResponse> = /*@__PURE__*/
1291
- messageDesc(file_cover_v1_cover, 33);
1405
+ messageDesc(file_cover_v1_cover, 35);
1292
1406
 
1293
1407
  /**
1294
1408
  * @generated from message blueapi.cover.v1.ContainerCostUsageRequest
@@ -1345,7 +1459,7 @@ export type ContainerCostUsageRequest = Message<"blueapi.cover.v1.ContainerCostU
1345
1459
  * Use `create(ContainerCostUsageRequestSchema)` to create a new message.
1346
1460
  */
1347
1461
  export const ContainerCostUsageRequestSchema: GenMessage<ContainerCostUsageRequest> = /*@__PURE__*/
1348
- messageDesc(file_cover_v1_cover, 34);
1462
+ messageDesc(file_cover_v1_cover, 36);
1349
1463
 
1350
1464
  /**
1351
1465
  * @generated from message blueapi.cover.v1.ContainerCostUsageRequest.FilterCriteria
@@ -1372,7 +1486,7 @@ export type ContainerCostUsageRequest_FilterCriteria = Message<"blueapi.cover.v1
1372
1486
  * Use `create(ContainerCostUsageRequest_FilterCriteriaSchema)` to create a new message.
1373
1487
  */
1374
1488
  export const ContainerCostUsageRequest_FilterCriteriaSchema: GenMessage<ContainerCostUsageRequest_FilterCriteria> = /*@__PURE__*/
1375
- messageDesc(file_cover_v1_cover, 34, 0);
1489
+ messageDesc(file_cover_v1_cover, 36, 0);
1376
1490
 
1377
1491
  /**
1378
1492
  * @generated from enum blueapi.cover.v1.ContainerCostUsageRequest.FilterCriteria.FilterOperator
@@ -1398,7 +1512,7 @@ export enum ContainerCostUsageRequest_FilterCriteria_FilterOperator {
1398
1512
  * Describes the enum blueapi.cover.v1.ContainerCostUsageRequest.FilterCriteria.FilterOperator.
1399
1513
  */
1400
1514
  export const ContainerCostUsageRequest_FilterCriteria_FilterOperatorSchema: GenEnum<ContainerCostUsageRequest_FilterCriteria_FilterOperator> = /*@__PURE__*/
1401
- enumDesc(file_cover_v1_cover, 34, 0, 0);
1515
+ enumDesc(file_cover_v1_cover, 36, 0, 0);
1402
1516
 
1403
1517
  /**
1404
1518
  * @generated from enum blueapi.cover.v1.ContainerCostUsageRequest.TimeGranularity
@@ -1424,7 +1538,7 @@ export enum ContainerCostUsageRequest_TimeGranularity {
1424
1538
  * Describes the enum blueapi.cover.v1.ContainerCostUsageRequest.TimeGranularity.
1425
1539
  */
1426
1540
  export const ContainerCostUsageRequest_TimeGranularitySchema: GenEnum<ContainerCostUsageRequest_TimeGranularity> = /*@__PURE__*/
1427
- enumDesc(file_cover_v1_cover, 34, 0);
1541
+ enumDesc(file_cover_v1_cover, 36, 0);
1428
1542
 
1429
1543
  /**
1430
1544
  * @generated from enum blueapi.cover.v1.ContainerCostUsageRequest.MetricType
@@ -1460,7 +1574,7 @@ export enum ContainerCostUsageRequest_MetricType {
1460
1574
  * Describes the enum blueapi.cover.v1.ContainerCostUsageRequest.MetricType.
1461
1575
  */
1462
1576
  export const ContainerCostUsageRequest_MetricTypeSchema: GenEnum<ContainerCostUsageRequest_MetricType> = /*@__PURE__*/
1463
- enumDesc(file_cover_v1_cover, 34, 1);
1577
+ enumDesc(file_cover_v1_cover, 36, 1);
1464
1578
 
1465
1579
  /**
1466
1580
  * @generated from enum blueapi.cover.v1.ContainerCostUsageRequest.ServiceType
@@ -1486,7 +1600,7 @@ export enum ContainerCostUsageRequest_ServiceType {
1486
1600
  * Describes the enum blueapi.cover.v1.ContainerCostUsageRequest.ServiceType.
1487
1601
  */
1488
1602
  export const ContainerCostUsageRequest_ServiceTypeSchema: GenEnum<ContainerCostUsageRequest_ServiceType> = /*@__PURE__*/
1489
- enumDesc(file_cover_v1_cover, 34, 2);
1603
+ enumDesc(file_cover_v1_cover, 36, 2);
1490
1604
 
1491
1605
  /**
1492
1606
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse
@@ -1518,7 +1632,7 @@ export type ContainerCostUsageResponse = Message<"blueapi.cover.v1.ContainerCost
1518
1632
  * Use `create(ContainerCostUsageResponseSchema)` to create a new message.
1519
1633
  */
1520
1634
  export const ContainerCostUsageResponseSchema: GenMessage<ContainerCostUsageResponse> = /*@__PURE__*/
1521
- messageDesc(file_cover_v1_cover, 35);
1635
+ messageDesc(file_cover_v1_cover, 37);
1522
1636
 
1523
1637
  /**
1524
1638
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.CostMetric
@@ -1545,7 +1659,7 @@ export type ContainerCostUsageResponse_CostMetric = Message<"blueapi.cover.v1.Co
1545
1659
  * Use `create(ContainerCostUsageResponse_CostMetricSchema)` to create a new message.
1546
1660
  */
1547
1661
  export const ContainerCostUsageResponse_CostMetricSchema: GenMessage<ContainerCostUsageResponse_CostMetric> = /*@__PURE__*/
1548
- messageDesc(file_cover_v1_cover, 35, 0);
1662
+ messageDesc(file_cover_v1_cover, 37, 0);
1549
1663
 
1550
1664
  /**
1551
1665
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.UsageMetric
@@ -1587,7 +1701,7 @@ export type ContainerCostUsageResponse_UsageMetric = Message<"blueapi.cover.v1.C
1587
1701
  * Use `create(ContainerCostUsageResponse_UsageMetricSchema)` to create a new message.
1588
1702
  */
1589
1703
  export const ContainerCostUsageResponse_UsageMetricSchema: GenMessage<ContainerCostUsageResponse_UsageMetric> = /*@__PURE__*/
1590
- messageDesc(file_cover_v1_cover, 35, 1);
1704
+ messageDesc(file_cover_v1_cover, 37, 1);
1591
1705
 
1592
1706
  /**
1593
1707
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.MetricDataPoint
@@ -1621,7 +1735,7 @@ export type ContainerCostUsageResponse_MetricDataPoint = Message<"blueapi.cover.
1621
1735
  * Use `create(ContainerCostUsageResponse_MetricDataPointSchema)` to create a new message.
1622
1736
  */
1623
1737
  export const ContainerCostUsageResponse_MetricDataPointSchema: GenMessage<ContainerCostUsageResponse_MetricDataPoint> = /*@__PURE__*/
1624
- messageDesc(file_cover_v1_cover, 35, 2);
1738
+ messageDesc(file_cover_v1_cover, 37, 2);
1625
1739
 
1626
1740
  /**
1627
1741
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.ResourceHighlight
@@ -1648,7 +1762,7 @@ export type ContainerCostUsageResponse_ResourceHighlight = Message<"blueapi.cove
1648
1762
  * Use `create(ContainerCostUsageResponse_ResourceHighlightSchema)` to create a new message.
1649
1763
  */
1650
1764
  export const ContainerCostUsageResponse_ResourceHighlightSchema: GenMessage<ContainerCostUsageResponse_ResourceHighlight> = /*@__PURE__*/
1651
- messageDesc(file_cover_v1_cover, 35, 3);
1765
+ messageDesc(file_cover_v1_cover, 37, 3);
1652
1766
 
1653
1767
  /**
1654
1768
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.ResourceHighlights
@@ -1680,7 +1794,7 @@ export type ContainerCostUsageResponse_ResourceHighlights = Message<"blueapi.cov
1680
1794
  * Use `create(ContainerCostUsageResponse_ResourceHighlightsSchema)` to create a new message.
1681
1795
  */
1682
1796
  export const ContainerCostUsageResponse_ResourceHighlightsSchema: GenMessage<ContainerCostUsageResponse_ResourceHighlights> = /*@__PURE__*/
1683
- messageDesc(file_cover_v1_cover, 35, 4);
1797
+ messageDesc(file_cover_v1_cover, 37, 4);
1684
1798
 
1685
1799
  /**
1686
1800
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.GroupedResult
@@ -1702,7 +1816,7 @@ export type ContainerCostUsageResponse_GroupedResult = Message<"blueapi.cover.v1
1702
1816
  * Use `create(ContainerCostUsageResponse_GroupedResultSchema)` to create a new message.
1703
1817
  */
1704
1818
  export const ContainerCostUsageResponse_GroupedResultSchema: GenMessage<ContainerCostUsageResponse_GroupedResult> = /*@__PURE__*/
1705
- messageDesc(file_cover_v1_cover, 35, 5);
1819
+ messageDesc(file_cover_v1_cover, 37, 5);
1706
1820
 
1707
1821
  /**
1708
1822
  * @generated from message blueapi.cover.v1.GetAICostAndUsageRequest
@@ -1749,7 +1863,7 @@ export type GetAICostAndUsageRequest = Message<"blueapi.cover.v1.GetAICostAndUsa
1749
1863
  * Use `create(GetAICostAndUsageRequestSchema)` to create a new message.
1750
1864
  */
1751
1865
  export const GetAICostAndUsageRequestSchema: GenMessage<GetAICostAndUsageRequest> = /*@__PURE__*/
1752
- messageDesc(file_cover_v1_cover, 36);
1866
+ messageDesc(file_cover_v1_cover, 38);
1753
1867
 
1754
1868
  /**
1755
1869
  * @generated from message blueapi.cover.v1.GetAICostAndUsageRequest.Filter
@@ -1784,7 +1898,7 @@ export type GetAICostAndUsageRequest_Filter = Message<"blueapi.cover.v1.GetAICos
1784
1898
  * Use `create(GetAICostAndUsageRequest_FilterSchema)` to create a new message.
1785
1899
  */
1786
1900
  export const GetAICostAndUsageRequest_FilterSchema: GenMessage<GetAICostAndUsageRequest_Filter> = /*@__PURE__*/
1787
- messageDesc(file_cover_v1_cover, 36, 0);
1901
+ messageDesc(file_cover_v1_cover, 38, 0);
1788
1902
 
1789
1903
  /**
1790
1904
  * @generated from enum blueapi.cover.v1.GetAICostAndUsageRequest.Filter.Operator
@@ -1810,7 +1924,7 @@ export enum GetAICostAndUsageRequest_Filter_Operator {
1810
1924
  * Describes the enum blueapi.cover.v1.GetAICostAndUsageRequest.Filter.Operator.
1811
1925
  */
1812
1926
  export const GetAICostAndUsageRequest_Filter_OperatorSchema: GenEnum<GetAICostAndUsageRequest_Filter_Operator> = /*@__PURE__*/
1813
- enumDesc(file_cover_v1_cover, 36, 0, 0);
1927
+ enumDesc(file_cover_v1_cover, 38, 0, 0);
1814
1928
 
1815
1929
  /**
1816
1930
  * @generated from enum blueapi.cover.v1.GetAICostAndUsageRequest.Granularity
@@ -1836,7 +1950,7 @@ export enum GetAICostAndUsageRequest_Granularity {
1836
1950
  * Describes the enum blueapi.cover.v1.GetAICostAndUsageRequest.Granularity.
1837
1951
  */
1838
1952
  export const GetAICostAndUsageRequest_GranularitySchema: GenEnum<GetAICostAndUsageRequest_Granularity> = /*@__PURE__*/
1839
- enumDesc(file_cover_v1_cover, 36, 0);
1953
+ enumDesc(file_cover_v1_cover, 38, 0);
1840
1954
 
1841
1955
  /**
1842
1956
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse
@@ -1853,7 +1967,7 @@ export type GetAICostAndUsageResponse = Message<"blueapi.cover.v1.GetAICostAndUs
1853
1967
  * Use `create(GetAICostAndUsageResponseSchema)` to create a new message.
1854
1968
  */
1855
1969
  export const GetAICostAndUsageResponseSchema: GenMessage<GetAICostAndUsageResponse> = /*@__PURE__*/
1856
- messageDesc(file_cover_v1_cover, 37);
1970
+ messageDesc(file_cover_v1_cover, 39);
1857
1971
 
1858
1972
  /**
1859
1973
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse.Cost
@@ -1875,7 +1989,7 @@ export type GetAICostAndUsageResponse_Cost = Message<"blueapi.cover.v1.GetAICost
1875
1989
  * Use `create(GetAICostAndUsageResponse_CostSchema)` to create a new message.
1876
1990
  */
1877
1991
  export const GetAICostAndUsageResponse_CostSchema: GenMessage<GetAICostAndUsageResponse_Cost> = /*@__PURE__*/
1878
- messageDesc(file_cover_v1_cover, 37, 0);
1992
+ messageDesc(file_cover_v1_cover, 39, 0);
1879
1993
 
1880
1994
  /**
1881
1995
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse.Usage
@@ -1897,7 +2011,7 @@ export type GetAICostAndUsageResponse_Usage = Message<"blueapi.cover.v1.GetAICos
1897
2011
  * Use `create(GetAICostAndUsageResponse_UsageSchema)` to create a new message.
1898
2012
  */
1899
2013
  export const GetAICostAndUsageResponse_UsageSchema: GenMessage<GetAICostAndUsageResponse_Usage> = /*@__PURE__*/
1900
- messageDesc(file_cover_v1_cover, 37, 1);
2014
+ messageDesc(file_cover_v1_cover, 39, 1);
1901
2015
 
1902
2016
  /**
1903
2017
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse.Metric
@@ -1924,7 +2038,7 @@ export type GetAICostAndUsageResponse_Metric = Message<"blueapi.cover.v1.GetAICo
1924
2038
  * Use `create(GetAICostAndUsageResponse_MetricSchema)` to create a new message.
1925
2039
  */
1926
2040
  export const GetAICostAndUsageResponse_MetricSchema: GenMessage<GetAICostAndUsageResponse_Metric> = /*@__PURE__*/
1927
- messageDesc(file_cover_v1_cover, 37, 2);
2041
+ messageDesc(file_cover_v1_cover, 39, 2);
1928
2042
 
1929
2043
  /**
1930
2044
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse.Result
@@ -1946,7 +2060,7 @@ export type GetAICostAndUsageResponse_Result = Message<"blueapi.cover.v1.GetAICo
1946
2060
  * Use `create(GetAICostAndUsageResponse_ResultSchema)` to create a new message.
1947
2061
  */
1948
2062
  export const GetAICostAndUsageResponse_ResultSchema: GenMessage<GetAICostAndUsageResponse_Result> = /*@__PURE__*/
1949
- messageDesc(file_cover_v1_cover, 37, 3);
2063
+ messageDesc(file_cover_v1_cover, 39, 3);
1950
2064
 
1951
2065
  /**
1952
2066
  * @generated from message blueapi.cover.v1.GetExecutionStatusRequest
@@ -1959,7 +2073,7 @@ export type GetExecutionStatusRequest = Message<"blueapi.cover.v1.GetExecutionSt
1959
2073
  * Use `create(GetExecutionStatusRequestSchema)` to create a new message.
1960
2074
  */
1961
2075
  export const GetExecutionStatusRequestSchema: GenMessage<GetExecutionStatusRequest> = /*@__PURE__*/
1962
- messageDesc(file_cover_v1_cover, 38);
2076
+ messageDesc(file_cover_v1_cover, 40);
1963
2077
 
1964
2078
  /**
1965
2079
  * @generated from message blueapi.cover.v1.GetExecutionStatusResponse
@@ -1986,7 +2100,7 @@ export type GetExecutionStatusResponse = Message<"blueapi.cover.v1.GetExecutionS
1986
2100
  * Use `create(GetExecutionStatusResponseSchema)` to create a new message.
1987
2101
  */
1988
2102
  export const GetExecutionStatusResponseSchema: GenMessage<GetExecutionStatusResponse> = /*@__PURE__*/
1989
- messageDesc(file_cover_v1_cover, 39);
2103
+ messageDesc(file_cover_v1_cover, 41);
1990
2104
 
1991
2105
  /**
1992
2106
  * Only supports gcp for now.
@@ -2014,7 +2128,7 @@ export type VerifyAPIAccessRequest = Message<"blueapi.cover.v1.VerifyAPIAccessRe
2014
2128
  * Use `create(VerifyAPIAccessRequestSchema)` to create a new message.
2015
2129
  */
2016
2130
  export const VerifyAPIAccessRequestSchema: GenMessage<VerifyAPIAccessRequest> = /*@__PURE__*/
2017
- messageDesc(file_cover_v1_cover, 40);
2131
+ messageDesc(file_cover_v1_cover, 42);
2018
2132
 
2019
2133
  /**
2020
2134
  * @generated from message blueapi.cover.v1.VerifyAPIAccessResponse
@@ -2031,7 +2145,7 @@ export type VerifyAPIAccessResponse = Message<"blueapi.cover.v1.VerifyAPIAccessR
2031
2145
  * Use `create(VerifyAPIAccessResponseSchema)` to create a new message.
2032
2146
  */
2033
2147
  export const VerifyAPIAccessResponseSchema: GenMessage<VerifyAPIAccessResponse> = /*@__PURE__*/
2034
- messageDesc(file_cover_v1_cover, 41);
2148
+ messageDesc(file_cover_v1_cover, 43);
2035
2149
 
2036
2150
  /**
2037
2151
  * @generated from message blueapi.cover.v1.GetRecommendationV2Request
@@ -2063,7 +2177,7 @@ export type GetRecommendationV2Request = Message<"blueapi.cover.v1.GetRecommenda
2063
2177
  * Use `create(GetRecommendationV2RequestSchema)` to create a new message.
2064
2178
  */
2065
2179
  export const GetRecommendationV2RequestSchema: GenMessage<GetRecommendationV2Request> = /*@__PURE__*/
2066
- messageDesc(file_cover_v1_cover, 42);
2180
+ messageDesc(file_cover_v1_cover, 44);
2067
2181
 
2068
2182
  /**
2069
2183
  * @generated from message blueapi.cover.v1.GetRecommendationV2Response
@@ -2080,7 +2194,7 @@ export type GetRecommendationV2Response = Message<"blueapi.cover.v1.GetRecommend
2080
2194
  * Use `create(GetRecommendationV2ResponseSchema)` to create a new message.
2081
2195
  */
2082
2196
  export const GetRecommendationV2ResponseSchema: GenMessage<GetRecommendationV2Response> = /*@__PURE__*/
2083
- messageDesc(file_cover_v1_cover, 43);
2197
+ messageDesc(file_cover_v1_cover, 45);
2084
2198
 
2085
2199
  /**
2086
2200
  * Request message for OnboardOrg
@@ -2114,7 +2228,7 @@ export type OnboardOrgRequest = Message<"blueapi.cover.v1.OnboardOrgRequest"> &
2114
2228
  * Use `create(OnboardOrgRequestSchema)` to create a new message.
2115
2229
  */
2116
2230
  export const OnboardOrgRequestSchema: GenMessage<OnboardOrgRequest> = /*@__PURE__*/
2117
- messageDesc(file_cover_v1_cover, 44);
2231
+ messageDesc(file_cover_v1_cover, 46);
2118
2232
 
2119
2233
  /**
2120
2234
  * Response message for OnboardOrg
@@ -2133,7 +2247,7 @@ export type OnboardOrgResponse = Message<"blueapi.cover.v1.OnboardOrgResponse">
2133
2247
  * Use `create(OnboardOrgResponseSchema)` to create a new message.
2134
2248
  */
2135
2249
  export const OnboardOrgResponseSchema: GenMessage<OnboardOrgResponse> = /*@__PURE__*/
2136
- messageDesc(file_cover_v1_cover, 45);
2250
+ messageDesc(file_cover_v1_cover, 47);
2137
2251
 
2138
2252
  /**
2139
2253
  * Request message for InviteMember
@@ -2162,7 +2276,7 @@ export type InviteMemberRequest = Message<"blueapi.cover.v1.InviteMemberRequest"
2162
2276
  * Use `create(InviteMemberRequestSchema)` to create a new message.
2163
2277
  */
2164
2278
  export const InviteMemberRequestSchema: GenMessage<InviteMemberRequest> = /*@__PURE__*/
2165
- messageDesc(file_cover_v1_cover, 46);
2279
+ messageDesc(file_cover_v1_cover, 48);
2166
2280
 
2167
2281
  /**
2168
2282
  * Response message for InviteMember
@@ -2181,7 +2295,7 @@ export type InviteMemberResponse = Message<"blueapi.cover.v1.InviteMemberRespons
2181
2295
  * Use `create(InviteMemberResponseSchema)` to create a new message.
2182
2296
  */
2183
2297
  export const InviteMemberResponseSchema: GenMessage<InviteMemberResponse> = /*@__PURE__*/
2184
- messageDesc(file_cover_v1_cover, 47);
2298
+ messageDesc(file_cover_v1_cover, 49);
2185
2299
 
2186
2300
  /**
2187
2301
  * Request message for ActivateUser
@@ -2239,7 +2353,7 @@ export type ActivateUserRequest = Message<"blueapi.cover.v1.ActivateUserRequest"
2239
2353
  * Use `create(ActivateUserRequestSchema)` to create a new message.
2240
2354
  */
2241
2355
  export const ActivateUserRequestSchema: GenMessage<ActivateUserRequest> = /*@__PURE__*/
2242
- messageDesc(file_cover_v1_cover, 48);
2356
+ messageDesc(file_cover_v1_cover, 50);
2243
2357
 
2244
2358
  /**
2245
2359
  * Response message for ActivateUser
@@ -2258,7 +2372,7 @@ export type ActivateUserResponse = Message<"blueapi.cover.v1.ActivateUserRespons
2258
2372
  * Use `create(ActivateUserResponseSchema)` to create a new message.
2259
2373
  */
2260
2374
  export const ActivateUserResponseSchema: GenMessage<ActivateUserResponse> = /*@__PURE__*/
2261
- messageDesc(file_cover_v1_cover, 49);
2375
+ messageDesc(file_cover_v1_cover, 51);
2262
2376
 
2263
2377
  /**
2264
2378
  * Request message for CreateMember
@@ -2292,7 +2406,7 @@ export type CreateMemberRequest = Message<"blueapi.cover.v1.CreateMemberRequest"
2292
2406
  * Use `create(CreateMemberRequestSchema)` to create a new message.
2293
2407
  */
2294
2408
  export const CreateMemberRequestSchema: GenMessage<CreateMemberRequest> = /*@__PURE__*/
2295
- messageDesc(file_cover_v1_cover, 50);
2409
+ messageDesc(file_cover_v1_cover, 52);
2296
2410
 
2297
2411
  /**
2298
2412
  * Response message for CreateMember
@@ -2311,7 +2425,7 @@ export type CreateMemberResponse = Message<"blueapi.cover.v1.CreateMemberRespons
2311
2425
  * Use `create(CreateMemberResponseSchema)` to create a new message.
2312
2426
  */
2313
2427
  export const CreateMemberResponseSchema: GenMessage<CreateMemberResponse> = /*@__PURE__*/
2314
- messageDesc(file_cover_v1_cover, 51);
2428
+ messageDesc(file_cover_v1_cover, 53);
2315
2429
 
2316
2430
  /**
2317
2431
  * Request message for GetMembers
@@ -2326,7 +2440,7 @@ export type GetMembersRequest = Message<"blueapi.cover.v1.GetMembersRequest"> &
2326
2440
  * Use `create(GetMembersRequestSchema)` to create a new message.
2327
2441
  */
2328
2442
  export const GetMembersRequestSchema: GenMessage<GetMembersRequest> = /*@__PURE__*/
2329
- messageDesc(file_cover_v1_cover, 52);
2443
+ messageDesc(file_cover_v1_cover, 54);
2330
2444
 
2331
2445
  /**
2332
2446
  * Response message for GetMembers
@@ -2345,7 +2459,7 @@ export type GetMembersResponse = Message<"blueapi.cover.v1.GetMembersResponse">
2345
2459
  * Use `create(GetMembersResponseSchema)` to create a new message.
2346
2460
  */
2347
2461
  export const GetMembersResponseSchema: GenMessage<GetMembersResponse> = /*@__PURE__*/
2348
- messageDesc(file_cover_v1_cover, 53);
2462
+ messageDesc(file_cover_v1_cover, 55);
2349
2463
 
2350
2464
  /**
2351
2465
  * Request message for GetMemberDetails
@@ -2366,7 +2480,7 @@ export type GetMemberDetailsRequest = Message<"blueapi.cover.v1.GetMemberDetails
2366
2480
  * Use `create(GetMemberDetailsRequestSchema)` to create a new message.
2367
2481
  */
2368
2482
  export const GetMemberDetailsRequestSchema: GenMessage<GetMemberDetailsRequest> = /*@__PURE__*/
2369
- messageDesc(file_cover_v1_cover, 54);
2483
+ messageDesc(file_cover_v1_cover, 56);
2370
2484
 
2371
2485
  /**
2372
2486
  * Response message for GetMemberDetails
@@ -2385,7 +2499,7 @@ export type GetMemberDetailsResponse = Message<"blueapi.cover.v1.GetMemberDetail
2385
2499
  * Use `create(GetMemberDetailsResponseSchema)` to create a new message.
2386
2500
  */
2387
2501
  export const GetMemberDetailsResponseSchema: GenMessage<GetMemberDetailsResponse> = /*@__PURE__*/
2388
- messageDesc(file_cover_v1_cover, 55);
2502
+ messageDesc(file_cover_v1_cover, 57);
2389
2503
 
2390
2504
  /**
2391
2505
  * Request message for GetMemberCostGroup
@@ -2406,7 +2520,7 @@ export type GetMemberCostGroupRequest = Message<"blueapi.cover.v1.GetMemberCostG
2406
2520
  * Use `create(GetMemberCostGroupRequestSchema)` to create a new message.
2407
2521
  */
2408
2522
  export const GetMemberCostGroupRequestSchema: GenMessage<GetMemberCostGroupRequest> = /*@__PURE__*/
2409
- messageDesc(file_cover_v1_cover, 56);
2523
+ messageDesc(file_cover_v1_cover, 58);
2410
2524
 
2411
2525
  /**
2412
2526
  * Response message for GetMemberCostGroup
@@ -2425,7 +2539,7 @@ export type GetMemberCostGroupResponse = Message<"blueapi.cover.v1.GetMemberCost
2425
2539
  * Use `create(GetMemberCostGroupResponseSchema)` to create a new message.
2426
2540
  */
2427
2541
  export const GetMemberCostGroupResponseSchema: GenMessage<GetMemberCostGroupResponse> = /*@__PURE__*/
2428
- messageDesc(file_cover_v1_cover, 57);
2542
+ messageDesc(file_cover_v1_cover, 59);
2429
2543
 
2430
2544
  /**
2431
2545
  * Request message for UpdateMemberPermission
@@ -2453,7 +2567,7 @@ export type UpdateMemberPermissionRequest = Message<"blueapi.cover.v1.UpdateMemb
2453
2567
  * Use `create(UpdateMemberPermissionRequestSchema)` to create a new message.
2454
2568
  */
2455
2569
  export const UpdateMemberPermissionRequestSchema: GenMessage<UpdateMemberPermissionRequest> = /*@__PURE__*/
2456
- messageDesc(file_cover_v1_cover, 58);
2570
+ messageDesc(file_cover_v1_cover, 60);
2457
2571
 
2458
2572
  /**
2459
2573
  * Response message for UpdateMemberPermission
@@ -2472,7 +2586,7 @@ export type UpdateMemberPermissionResponse = Message<"blueapi.cover.v1.UpdateMem
2472
2586
  * Use `create(UpdateMemberPermissionResponseSchema)` to create a new message.
2473
2587
  */
2474
2588
  export const UpdateMemberPermissionResponseSchema: GenMessage<UpdateMemberPermissionResponse> = /*@__PURE__*/
2475
- messageDesc(file_cover_v1_cover, 59);
2589
+ messageDesc(file_cover_v1_cover, 61);
2476
2590
 
2477
2591
  /**
2478
2592
  * Request message for GetUserDetails
@@ -2487,7 +2601,7 @@ export type GetUserDetailsRequest = Message<"blueapi.cover.v1.GetUserDetailsRequ
2487
2601
  * Use `create(GetUserDetailsRequestSchema)` to create a new message.
2488
2602
  */
2489
2603
  export const GetUserDetailsRequestSchema: GenMessage<GetUserDetailsRequest> = /*@__PURE__*/
2490
- messageDesc(file_cover_v1_cover, 60);
2604
+ messageDesc(file_cover_v1_cover, 62);
2491
2605
 
2492
2606
  /**
2493
2607
  * Response message for GetUserDetails
@@ -2506,7 +2620,7 @@ export type GetUserDetailsResponse = Message<"blueapi.cover.v1.GetUserDetailsRes
2506
2620
  * Use `create(GetUserDetailsResponseSchema)` to create a new message.
2507
2621
  */
2508
2622
  export const GetUserDetailsResponseSchema: GenMessage<GetUserDetailsResponse> = /*@__PURE__*/
2509
- messageDesc(file_cover_v1_cover, 61);
2623
+ messageDesc(file_cover_v1_cover, 63);
2510
2624
 
2511
2625
  /**
2512
2626
  * Request message for UpdateUserAvatar
@@ -2525,7 +2639,7 @@ export type UpdateUserAvatarRequest = Message<"blueapi.cover.v1.UpdateUserAvatar
2525
2639
  * Use `create(UpdateUserAvatarRequestSchema)` to create a new message.
2526
2640
  */
2527
2641
  export const UpdateUserAvatarRequestSchema: GenMessage<UpdateUserAvatarRequest> = /*@__PURE__*/
2528
- messageDesc(file_cover_v1_cover, 62);
2642
+ messageDesc(file_cover_v1_cover, 64);
2529
2643
 
2530
2644
  /**
2531
2645
  * Response message for UpdateUserAvatar
@@ -2544,7 +2658,7 @@ export type UpdateUserAvatarResponse = Message<"blueapi.cover.v1.UpdateUserAvata
2544
2658
  * Use `create(UpdateUserAvatarResponseSchema)` to create a new message.
2545
2659
  */
2546
2660
  export const UpdateUserAvatarResponseSchema: GenMessage<UpdateUserAvatarResponse> = /*@__PURE__*/
2547
- messageDesc(file_cover_v1_cover, 63);
2661
+ messageDesc(file_cover_v1_cover, 65);
2548
2662
 
2549
2663
  /**
2550
2664
  * Request message for UpdateUserIcon
@@ -2563,7 +2677,7 @@ export type UpdateUserIconRequest = Message<"blueapi.cover.v1.UpdateUserIconRequ
2563
2677
  * Use `create(UpdateUserIconRequestSchema)` to create a new message.
2564
2678
  */
2565
2679
  export const UpdateUserIconRequestSchema: GenMessage<UpdateUserIconRequest> = /*@__PURE__*/
2566
- messageDesc(file_cover_v1_cover, 64);
2680
+ messageDesc(file_cover_v1_cover, 66);
2567
2681
 
2568
2682
  /**
2569
2683
  * Response message for UpdateUserIcon
@@ -2582,7 +2696,7 @@ export type UpdateUserIconResponse = Message<"blueapi.cover.v1.UpdateUserIconRes
2582
2696
  * Use `create(UpdateUserIconResponseSchema)` to create a new message.
2583
2697
  */
2584
2698
  export const UpdateUserIconResponseSchema: GenMessage<UpdateUserIconResponse> = /*@__PURE__*/
2585
- messageDesc(file_cover_v1_cover, 65);
2699
+ messageDesc(file_cover_v1_cover, 67);
2586
2700
 
2587
2701
  /**
2588
2702
  * Request message for UpdateUserColorTheme
@@ -2601,7 +2715,7 @@ export type UpdateUserColorThemeRequest = Message<"blueapi.cover.v1.UpdateUserCo
2601
2715
  * Use `create(UpdateUserColorThemeRequestSchema)` to create a new message.
2602
2716
  */
2603
2717
  export const UpdateUserColorThemeRequestSchema: GenMessage<UpdateUserColorThemeRequest> = /*@__PURE__*/
2604
- messageDesc(file_cover_v1_cover, 66);
2718
+ messageDesc(file_cover_v1_cover, 68);
2605
2719
 
2606
2720
  /**
2607
2721
  * Response message for UpdateUserColorTheme
@@ -2620,7 +2734,7 @@ export type UpdateUserColorThemeResponse = Message<"blueapi.cover.v1.UpdateUserC
2620
2734
  * Use `create(UpdateUserColorThemeResponseSchema)` to create a new message.
2621
2735
  */
2622
2736
  export const UpdateUserColorThemeResponseSchema: GenMessage<UpdateUserColorThemeResponse> = /*@__PURE__*/
2623
- messageDesc(file_cover_v1_cover, 67);
2737
+ messageDesc(file_cover_v1_cover, 69);
2624
2738
 
2625
2739
  /**
2626
2740
  * Request message for UpdateUserName
@@ -2639,7 +2753,7 @@ export type UpdateUserNameRequest = Message<"blueapi.cover.v1.UpdateUserNameRequ
2639
2753
  * Use `create(UpdateUserNameRequestSchema)` to create a new message.
2640
2754
  */
2641
2755
  export const UpdateUserNameRequestSchema: GenMessage<UpdateUserNameRequest> = /*@__PURE__*/
2642
- messageDesc(file_cover_v1_cover, 68);
2756
+ messageDesc(file_cover_v1_cover, 70);
2643
2757
 
2644
2758
  /**
2645
2759
  * Response message for UpdateUserName
@@ -2658,7 +2772,7 @@ export type UpdateUserNameResponse = Message<"blueapi.cover.v1.UpdateUserNameRes
2658
2772
  * Use `create(UpdateUserNameResponseSchema)` to create a new message.
2659
2773
  */
2660
2774
  export const UpdateUserNameResponseSchema: GenMessage<UpdateUserNameResponse> = /*@__PURE__*/
2661
- messageDesc(file_cover_v1_cover, 69);
2775
+ messageDesc(file_cover_v1_cover, 71);
2662
2776
 
2663
2777
  /**
2664
2778
  * Request message for UpdateUserEmail
@@ -2677,7 +2791,7 @@ export type UpdateUserEmailRequest = Message<"blueapi.cover.v1.UpdateUserEmailRe
2677
2791
  * Use `create(UpdateUserEmailRequestSchema)` to create a new message.
2678
2792
  */
2679
2793
  export const UpdateUserEmailRequestSchema: GenMessage<UpdateUserEmailRequest> = /*@__PURE__*/
2680
- messageDesc(file_cover_v1_cover, 70);
2794
+ messageDesc(file_cover_v1_cover, 72);
2681
2795
 
2682
2796
  /**
2683
2797
  * Response message for UpdateUserEmail
@@ -2696,7 +2810,7 @@ export type UpdateUserEmailResponse = Message<"blueapi.cover.v1.UpdateUserEmailR
2696
2810
  * Use `create(UpdateUserEmailResponseSchema)` to create a new message.
2697
2811
  */
2698
2812
  export const UpdateUserEmailResponseSchema: GenMessage<UpdateUserEmailResponse> = /*@__PURE__*/
2699
- messageDesc(file_cover_v1_cover, 71);
2813
+ messageDesc(file_cover_v1_cover, 73);
2700
2814
 
2701
2815
  /**
2702
2816
  * Request message for UpdateUserMainView
@@ -2715,7 +2829,7 @@ export type UpdateUserMainViewRequest = Message<"blueapi.cover.v1.UpdateUserMain
2715
2829
  * Use `create(UpdateUserMainViewRequestSchema)` to create a new message.
2716
2830
  */
2717
2831
  export const UpdateUserMainViewRequestSchema: GenMessage<UpdateUserMainViewRequest> = /*@__PURE__*/
2718
- messageDesc(file_cover_v1_cover, 72);
2832
+ messageDesc(file_cover_v1_cover, 74);
2719
2833
 
2720
2834
  /**
2721
2835
  * Response message for UpdateUserMainView
@@ -2734,7 +2848,7 @@ export type UpdateUserMainViewResponse = Message<"blueapi.cover.v1.UpdateUserMai
2734
2848
  * Use `create(UpdateUserMainViewResponseSchema)` to create a new message.
2735
2849
  */
2736
2850
  export const UpdateUserMainViewResponseSchema: GenMessage<UpdateUserMainViewResponse> = /*@__PURE__*/
2737
- messageDesc(file_cover_v1_cover, 73);
2851
+ messageDesc(file_cover_v1_cover, 75);
2738
2852
 
2739
2853
  /**
2740
2854
  * Request message for ResetUserPassword
@@ -2758,7 +2872,7 @@ export type ResetUserPasswordRequest = Message<"blueapi.cover.v1.ResetUserPasswo
2758
2872
  * Use `create(ResetUserPasswordRequestSchema)` to create a new message.
2759
2873
  */
2760
2874
  export const ResetUserPasswordRequestSchema: GenMessage<ResetUserPasswordRequest> = /*@__PURE__*/
2761
- messageDesc(file_cover_v1_cover, 74);
2875
+ messageDesc(file_cover_v1_cover, 76);
2762
2876
 
2763
2877
  /**
2764
2878
  * Response message for ResetUserPassword
@@ -2777,7 +2891,7 @@ export type ResetUserPasswordResponse = Message<"blueapi.cover.v1.ResetUserPassw
2777
2891
  * Use `create(ResetUserPasswordResponseSchema)` to create a new message.
2778
2892
  */
2779
2893
  export const ResetUserPasswordResponseSchema: GenMessage<ResetUserPasswordResponse> = /*@__PURE__*/
2780
- messageDesc(file_cover_v1_cover, 75);
2894
+ messageDesc(file_cover_v1_cover, 77);
2781
2895
 
2782
2896
  /**
2783
2897
  * Request message for UpdateUserLocale
@@ -2796,7 +2910,7 @@ export type UpdateUserLocaleRequest = Message<"blueapi.cover.v1.UpdateUserLocale
2796
2910
  * Use `create(UpdateUserLocaleRequestSchema)` to create a new message.
2797
2911
  */
2798
2912
  export const UpdateUserLocaleRequestSchema: GenMessage<UpdateUserLocaleRequest> = /*@__PURE__*/
2799
- messageDesc(file_cover_v1_cover, 76);
2913
+ messageDesc(file_cover_v1_cover, 78);
2800
2914
 
2801
2915
  /**
2802
2916
  * Response message for UpdateUserLocale
@@ -2815,7 +2929,7 @@ export type UpdateUserLocaleResponse = Message<"blueapi.cover.v1.UpdateUserLocal
2815
2929
  * Use `create(UpdateUserLocaleResponseSchema)` to create a new message.
2816
2930
  */
2817
2931
  export const UpdateUserLocaleResponseSchema: GenMessage<UpdateUserLocaleResponse> = /*@__PURE__*/
2818
- messageDesc(file_cover_v1_cover, 77);
2932
+ messageDesc(file_cover_v1_cover, 79);
2819
2933
 
2820
2934
  /**
2821
2935
  * Request message for UpdateUserAppTheme
@@ -2834,7 +2948,7 @@ export type UpdateUserAppThemeRequest = Message<"blueapi.cover.v1.UpdateUserAppT
2834
2948
  * Use `create(UpdateUserAppThemeRequestSchema)` to create a new message.
2835
2949
  */
2836
2950
  export const UpdateUserAppThemeRequestSchema: GenMessage<UpdateUserAppThemeRequest> = /*@__PURE__*/
2837
- messageDesc(file_cover_v1_cover, 78);
2951
+ messageDesc(file_cover_v1_cover, 80);
2838
2952
 
2839
2953
  /**
2840
2954
  * Response message for UpdateUserAppTheme
@@ -2853,7 +2967,7 @@ export type UpdateUserAppThemeResponse = Message<"blueapi.cover.v1.UpdateUserApp
2853
2967
  * Use `create(UpdateUserAppThemeResponseSchema)` to create a new message.
2854
2968
  */
2855
2969
  export const UpdateUserAppThemeResponseSchema: GenMessage<UpdateUserAppThemeResponse> = /*@__PURE__*/
2856
- messageDesc(file_cover_v1_cover, 79);
2970
+ messageDesc(file_cover_v1_cover, 81);
2857
2971
 
2858
2972
  /**
2859
2973
  * Request message for UpdateUserTimezone
@@ -2877,7 +2991,7 @@ export type UpdateUserTimezoneRequest = Message<"blueapi.cover.v1.UpdateUserTime
2877
2991
  * Use `create(UpdateUserTimezoneRequestSchema)` to create a new message.
2878
2992
  */
2879
2993
  export const UpdateUserTimezoneRequestSchema: GenMessage<UpdateUserTimezoneRequest> = /*@__PURE__*/
2880
- messageDesc(file_cover_v1_cover, 80);
2994
+ messageDesc(file_cover_v1_cover, 82);
2881
2995
 
2882
2996
  /**
2883
2997
  * Response message for UpdateUserTimezone
@@ -2896,7 +3010,7 @@ export type UpdateUserTimezoneResponse = Message<"blueapi.cover.v1.UpdateUserTim
2896
3010
  * Use `create(UpdateUserTimezoneResponseSchema)` to create a new message.
2897
3011
  */
2898
3012
  export const UpdateUserTimezoneResponseSchema: GenMessage<UpdateUserTimezoneResponse> = /*@__PURE__*/
2899
- messageDesc(file_cover_v1_cover, 81);
3013
+ messageDesc(file_cover_v1_cover, 83);
2900
3014
 
2901
3015
  /**
2902
3016
  * Request message for UpdateUserAttributes
@@ -2915,7 +3029,7 @@ export type UpdateUserAttributesRequest = Message<"blueapi.cover.v1.UpdateUserAt
2915
3029
  * Use `create(UpdateUserAttributesRequestSchema)` to create a new message.
2916
3030
  */
2917
3031
  export const UpdateUserAttributesRequestSchema: GenMessage<UpdateUserAttributesRequest> = /*@__PURE__*/
2918
- messageDesc(file_cover_v1_cover, 82);
3032
+ messageDesc(file_cover_v1_cover, 84);
2919
3033
 
2920
3034
  /**
2921
3035
  * Response message for UpdateUserAttributes
@@ -2934,7 +3048,7 @@ export type UpdateUserAttributesResponse = Message<"blueapi.cover.v1.UpdateUserA
2934
3048
  * Use `create(UpdateUserAttributesResponseSchema)` to create a new message.
2935
3049
  */
2936
3050
  export const UpdateUserAttributesResponseSchema: GenMessage<UpdateUserAttributesResponse> = /*@__PURE__*/
2937
- messageDesc(file_cover_v1_cover, 83);
3051
+ messageDesc(file_cover_v1_cover, 85);
2938
3052
 
2939
3053
  /**
2940
3054
  * Request message for DeleteMember
@@ -2955,7 +3069,7 @@ export type DeleteMemberRequest = Message<"blueapi.cover.v1.DeleteMemberRequest"
2955
3069
  * Use `create(DeleteMemberRequestSchema)` to create a new message.
2956
3070
  */
2957
3071
  export const DeleteMemberRequestSchema: GenMessage<DeleteMemberRequest> = /*@__PURE__*/
2958
- messageDesc(file_cover_v1_cover, 84);
3072
+ messageDesc(file_cover_v1_cover, 86);
2959
3073
 
2960
3074
  /**
2961
3075
  * Response message for DeleteMember
@@ -2974,7 +3088,7 @@ export type DeleteMemberResponse = Message<"blueapi.cover.v1.DeleteMemberRespons
2974
3088
  * Use `create(DeleteMemberResponseSchema)` to create a new message.
2975
3089
  */
2976
3090
  export const DeleteMemberResponseSchema: GenMessage<DeleteMemberResponse> = /*@__PURE__*/
2977
- messageDesc(file_cover_v1_cover, 85);
3091
+ messageDesc(file_cover_v1_cover, 87);
2978
3092
 
2979
3093
  /**
2980
3094
  * Request message for ResetPassword
@@ -2995,7 +3109,7 @@ export type ResetPasswordRequest = Message<"blueapi.cover.v1.ResetPasswordReques
2995
3109
  * Use `create(ResetPasswordRequestSchema)` to create a new message.
2996
3110
  */
2997
3111
  export const ResetPasswordRequestSchema: GenMessage<ResetPasswordRequest> = /*@__PURE__*/
2998
- messageDesc(file_cover_v1_cover, 86);
3112
+ messageDesc(file_cover_v1_cover, 88);
2999
3113
 
3000
3114
  /**
3001
3115
  * Response message for ResetPassword
@@ -3014,7 +3128,7 @@ export type ResetPasswordResponse = Message<"blueapi.cover.v1.ResetPasswordRespo
3014
3128
  * Use `create(ResetPasswordResponseSchema)` to create a new message.
3015
3129
  */
3016
3130
  export const ResetPasswordResponseSchema: GenMessage<ResetPasswordResponse> = /*@__PURE__*/
3017
- messageDesc(file_cover_v1_cover, 87);
3131
+ messageDesc(file_cover_v1_cover, 89);
3018
3132
 
3019
3133
  /**
3020
3134
  * Request message for CreateView
@@ -3073,7 +3187,7 @@ export type CreateViewRequest = Message<"blueapi.cover.v1.CreateViewRequest"> &
3073
3187
  * Use `create(CreateViewRequestSchema)` to create a new message.
3074
3188
  */
3075
3189
  export const CreateViewRequestSchema: GenMessage<CreateViewRequest> = /*@__PURE__*/
3076
- messageDesc(file_cover_v1_cover, 88);
3190
+ messageDesc(file_cover_v1_cover, 90);
3077
3191
 
3078
3192
  /**
3079
3193
  * Response message for CreateView
@@ -3092,7 +3206,7 @@ export type CreateViewResponse = Message<"blueapi.cover.v1.CreateViewResponse">
3092
3206
  * Use `create(CreateViewResponseSchema)` to create a new message.
3093
3207
  */
3094
3208
  export const CreateViewResponseSchema: GenMessage<CreateViewResponse> = /*@__PURE__*/
3095
- messageDesc(file_cover_v1_cover, 89);
3209
+ messageDesc(file_cover_v1_cover, 91);
3096
3210
 
3097
3211
  /**
3098
3212
  * Request message for GetViews
@@ -3107,7 +3221,7 @@ export type GetViewsRequest = Message<"blueapi.cover.v1.GetViewsRequest"> & {
3107
3221
  * Use `create(GetViewsRequestSchema)` to create a new message.
3108
3222
  */
3109
3223
  export const GetViewsRequestSchema: GenMessage<GetViewsRequest> = /*@__PURE__*/
3110
- messageDesc(file_cover_v1_cover, 90);
3224
+ messageDesc(file_cover_v1_cover, 92);
3111
3225
 
3112
3226
  /**
3113
3227
  * Response message for GetViews
@@ -3126,7 +3240,7 @@ export type GetViewsResponse = Message<"blueapi.cover.v1.GetViewsResponse"> & {
3126
3240
  * Use `create(GetViewsResponseSchema)` to create a new message.
3127
3241
  */
3128
3242
  export const GetViewsResponseSchema: GenMessage<GetViewsResponse> = /*@__PURE__*/
3129
- messageDesc(file_cover_v1_cover, 91);
3243
+ messageDesc(file_cover_v1_cover, 93);
3130
3244
 
3131
3245
  /**
3132
3246
  * Request message for GetCurrentView
@@ -3147,7 +3261,7 @@ export type GetCurrentViewRequest = Message<"blueapi.cover.v1.GetCurrentViewRequ
3147
3261
  * Use `create(GetCurrentViewRequestSchema)` to create a new message.
3148
3262
  */
3149
3263
  export const GetCurrentViewRequestSchema: GenMessage<GetCurrentViewRequest> = /*@__PURE__*/
3150
- messageDesc(file_cover_v1_cover, 92);
3264
+ messageDesc(file_cover_v1_cover, 94);
3151
3265
 
3152
3266
  /**
3153
3267
  * Response message for GetCurrentView
@@ -3166,7 +3280,7 @@ export type GetCurrentViewResponse = Message<"blueapi.cover.v1.GetCurrentViewRes
3166
3280
  * Use `create(GetCurrentViewResponseSchema)` to create a new message.
3167
3281
  */
3168
3282
  export const GetCurrentViewResponseSchema: GenMessage<GetCurrentViewResponse> = /*@__PURE__*/
3169
- messageDesc(file_cover_v1_cover, 93);
3283
+ messageDesc(file_cover_v1_cover, 95);
3170
3284
 
3171
3285
  /**
3172
3286
  * Request message for GetFavoriteViews
@@ -3181,7 +3295,7 @@ export type GetFavoriteViewsRequest = Message<"blueapi.cover.v1.GetFavoriteViews
3181
3295
  * Use `create(GetFavoriteViewsRequestSchema)` to create a new message.
3182
3296
  */
3183
3297
  export const GetFavoriteViewsRequestSchema: GenMessage<GetFavoriteViewsRequest> = /*@__PURE__*/
3184
- messageDesc(file_cover_v1_cover, 94);
3298
+ messageDesc(file_cover_v1_cover, 96);
3185
3299
 
3186
3300
  /**
3187
3301
  * Response message for GetFavoriteViews
@@ -3200,7 +3314,7 @@ export type GetFavoriteViewsResponse = Message<"blueapi.cover.v1.GetFavoriteView
3200
3314
  * Use `create(GetFavoriteViewsResponseSchema)` to create a new message.
3201
3315
  */
3202
3316
  export const GetFavoriteViewsResponseSchema: GenMessage<GetFavoriteViewsResponse> = /*@__PURE__*/
3203
- messageDesc(file_cover_v1_cover, 95);
3317
+ messageDesc(file_cover_v1_cover, 97);
3204
3318
 
3205
3319
  /**
3206
3320
  * Request message for PublishView
@@ -3221,7 +3335,7 @@ export type PublishViewRequest = Message<"blueapi.cover.v1.PublishViewRequest">
3221
3335
  * Use `create(PublishViewRequestSchema)` to create a new message.
3222
3336
  */
3223
3337
  export const PublishViewRequestSchema: GenMessage<PublishViewRequest> = /*@__PURE__*/
3224
- messageDesc(file_cover_v1_cover, 96);
3338
+ messageDesc(file_cover_v1_cover, 98);
3225
3339
 
3226
3340
  /**
3227
3341
  * Response message for PublishView
@@ -3240,7 +3354,7 @@ export type PublishViewResponse = Message<"blueapi.cover.v1.PublishViewResponse"
3240
3354
  * Use `create(PublishViewResponseSchema)` to create a new message.
3241
3355
  */
3242
3356
  export const PublishViewResponseSchema: GenMessage<PublishViewResponse> = /*@__PURE__*/
3243
- messageDesc(file_cover_v1_cover, 97);
3357
+ messageDesc(file_cover_v1_cover, 99);
3244
3358
 
3245
3359
  /**
3246
3360
  * Request message for AddFavorite
@@ -3261,7 +3375,7 @@ export type AddFavoriteRequest = Message<"blueapi.cover.v1.AddFavoriteRequest">
3261
3375
  * Use `create(AddFavoriteRequestSchema)` to create a new message.
3262
3376
  */
3263
3377
  export const AddFavoriteRequestSchema: GenMessage<AddFavoriteRequest> = /*@__PURE__*/
3264
- messageDesc(file_cover_v1_cover, 98);
3378
+ messageDesc(file_cover_v1_cover, 100);
3265
3379
 
3266
3380
  /**
3267
3381
  * Response message for AddFavorite
@@ -3280,7 +3394,7 @@ export type AddFavoriteResponse = Message<"blueapi.cover.v1.AddFavoriteResponse"
3280
3394
  * Use `create(AddFavoriteResponseSchema)` to create a new message.
3281
3395
  */
3282
3396
  export const AddFavoriteResponseSchema: GenMessage<AddFavoriteResponse> = /*@__PURE__*/
3283
- messageDesc(file_cover_v1_cover, 99);
3397
+ messageDesc(file_cover_v1_cover, 101);
3284
3398
 
3285
3399
  /**
3286
3400
  * Request message for RemoveFavorite
@@ -3301,7 +3415,7 @@ export type RemoveFavoriteRequest = Message<"blueapi.cover.v1.RemoveFavoriteRequ
3301
3415
  * Use `create(RemoveFavoriteRequestSchema)` to create a new message.
3302
3416
  */
3303
3417
  export const RemoveFavoriteRequestSchema: GenMessage<RemoveFavoriteRequest> = /*@__PURE__*/
3304
- messageDesc(file_cover_v1_cover, 100);
3418
+ messageDesc(file_cover_v1_cover, 102);
3305
3419
 
3306
3420
  /**
3307
3421
  * Response message for RemoveFavorite
@@ -3320,7 +3434,7 @@ export type RemoveFavoriteResponse = Message<"blueapi.cover.v1.RemoveFavoriteRes
3320
3434
  * Use `create(RemoveFavoriteResponseSchema)` to create a new message.
3321
3435
  */
3322
3436
  export const RemoveFavoriteResponseSchema: GenMessage<RemoveFavoriteResponse> = /*@__PURE__*/
3323
- messageDesc(file_cover_v1_cover, 101);
3437
+ messageDesc(file_cover_v1_cover, 103);
3324
3438
 
3325
3439
  /**
3326
3440
  * Request message for UpdateView
@@ -3371,7 +3485,7 @@ export type UpdateViewRequest = Message<"blueapi.cover.v1.UpdateViewRequest"> &
3371
3485
  * Use `create(UpdateViewRequestSchema)` to create a new message.
3372
3486
  */
3373
3487
  export const UpdateViewRequestSchema: GenMessage<UpdateViewRequest> = /*@__PURE__*/
3374
- messageDesc(file_cover_v1_cover, 102);
3488
+ messageDesc(file_cover_v1_cover, 104);
3375
3489
 
3376
3490
  /**
3377
3491
  * Response message for UpdateView
@@ -3390,7 +3504,7 @@ export type UpdateViewResponse = Message<"blueapi.cover.v1.UpdateViewResponse">
3390
3504
  * Use `create(UpdateViewResponseSchema)` to create a new message.
3391
3505
  */
3392
3506
  export const UpdateViewResponseSchema: GenMessage<UpdateViewResponse> = /*@__PURE__*/
3393
- messageDesc(file_cover_v1_cover, 103);
3507
+ messageDesc(file_cover_v1_cover, 105);
3394
3508
 
3395
3509
  /**
3396
3510
  * Request message for UpdateViewLayout
@@ -3416,7 +3530,7 @@ export type UpdateViewLayoutRequest = Message<"blueapi.cover.v1.UpdateViewLayout
3416
3530
  * Use `create(UpdateViewLayoutRequestSchema)` to create a new message.
3417
3531
  */
3418
3532
  export const UpdateViewLayoutRequestSchema: GenMessage<UpdateViewLayoutRequest> = /*@__PURE__*/
3419
- messageDesc(file_cover_v1_cover, 104);
3533
+ messageDesc(file_cover_v1_cover, 106);
3420
3534
 
3421
3535
  /**
3422
3536
  * Response message for UpdateViewLayout
@@ -3435,7 +3549,7 @@ export type UpdateViewLayoutResponse = Message<"blueapi.cover.v1.UpdateViewLayou
3435
3549
  * Use `create(UpdateViewLayoutResponseSchema)` to create a new message.
3436
3550
  */
3437
3551
  export const UpdateViewLayoutResponseSchema: GenMessage<UpdateViewLayoutResponse> = /*@__PURE__*/
3438
- messageDesc(file_cover_v1_cover, 105);
3552
+ messageDesc(file_cover_v1_cover, 107);
3439
3553
 
3440
3554
  /**
3441
3555
  * Request message for UpdateViewWidget
@@ -3473,7 +3587,7 @@ export type UpdateViewWidgetRequest = Message<"blueapi.cover.v1.UpdateViewWidget
3473
3587
  * Use `create(UpdateViewWidgetRequestSchema)` to create a new message.
3474
3588
  */
3475
3589
  export const UpdateViewWidgetRequestSchema: GenMessage<UpdateViewWidgetRequest> = /*@__PURE__*/
3476
- messageDesc(file_cover_v1_cover, 106);
3590
+ messageDesc(file_cover_v1_cover, 108);
3477
3591
 
3478
3592
  /**
3479
3593
  * Response message for UpdateViewWidget
@@ -3497,7 +3611,7 @@ export type UpdateViewWidgetResponse = Message<"blueapi.cover.v1.UpdateViewWidge
3497
3611
  * Use `create(UpdateViewWidgetResponseSchema)` to create a new message.
3498
3612
  */
3499
3613
  export const UpdateViewWidgetResponseSchema: GenMessage<UpdateViewWidgetResponse> = /*@__PURE__*/
3500
- messageDesc(file_cover_v1_cover, 107);
3614
+ messageDesc(file_cover_v1_cover, 109);
3501
3615
 
3502
3616
  /**
3503
3617
  * Request message for UpdateViewColorTheme
@@ -3521,7 +3635,7 @@ export type UpdateViewColorThemeRequest = Message<"blueapi.cover.v1.UpdateViewCo
3521
3635
  * Use `create(UpdateViewColorThemeRequestSchema)` to create a new message.
3522
3636
  */
3523
3637
  export const UpdateViewColorThemeRequestSchema: GenMessage<UpdateViewColorThemeRequest> = /*@__PURE__*/
3524
- messageDesc(file_cover_v1_cover, 108);
3638
+ messageDesc(file_cover_v1_cover, 110);
3525
3639
 
3526
3640
  /**
3527
3641
  * Response message for UpdateViewColorTheme
@@ -3540,7 +3654,7 @@ export type UpdateViewColorThemeResponse = Message<"blueapi.cover.v1.UpdateViewC
3540
3654
  * Use `create(UpdateViewColorThemeResponseSchema)` to create a new message.
3541
3655
  */
3542
3656
  export const UpdateViewColorThemeResponseSchema: GenMessage<UpdateViewColorThemeResponse> = /*@__PURE__*/
3543
- messageDesc(file_cover_v1_cover, 109);
3657
+ messageDesc(file_cover_v1_cover, 111);
3544
3658
 
3545
3659
  /**
3546
3660
  * Request message for UpdateViewCurrency
@@ -3564,7 +3678,7 @@ export type UpdateViewCurrencyRequest = Message<"blueapi.cover.v1.UpdateViewCurr
3564
3678
  * Use `create(UpdateViewCurrencyRequestSchema)` to create a new message.
3565
3679
  */
3566
3680
  export const UpdateViewCurrencyRequestSchema: GenMessage<UpdateViewCurrencyRequest> = /*@__PURE__*/
3567
- messageDesc(file_cover_v1_cover, 110);
3681
+ messageDesc(file_cover_v1_cover, 112);
3568
3682
 
3569
3683
  /**
3570
3684
  * Response message for UpdateViewCurrency
@@ -3583,7 +3697,7 @@ export type UpdateViewCurrencyResponse = Message<"blueapi.cover.v1.UpdateViewCur
3583
3697
  * Use `create(UpdateViewCurrencyResponseSchema)` to create a new message.
3584
3698
  */
3585
3699
  export const UpdateViewCurrencyResponseSchema: GenMessage<UpdateViewCurrencyResponse> = /*@__PURE__*/
3586
- messageDesc(file_cover_v1_cover, 111);
3700
+ messageDesc(file_cover_v1_cover, 113);
3587
3701
 
3588
3702
  /**
3589
3703
  * @generated from message blueapi.cover.v1.SetOrgUpdateCurrencyRequest
@@ -3602,7 +3716,7 @@ export type SetOrgUpdateCurrencyRequest = Message<"blueapi.cover.v1.SetOrgUpdate
3602
3716
  * Use `create(SetOrgUpdateCurrencyRequestSchema)` to create a new message.
3603
3717
  */
3604
3718
  export const SetOrgUpdateCurrencyRequestSchema: GenMessage<SetOrgUpdateCurrencyRequest> = /*@__PURE__*/
3605
- messageDesc(file_cover_v1_cover, 112);
3719
+ messageDesc(file_cover_v1_cover, 114);
3606
3720
 
3607
3721
  /**
3608
3722
  * @generated from message blueapi.cover.v1.SetOrgUpdateCurrencyResponse
@@ -3619,7 +3733,7 @@ export type SetOrgUpdateCurrencyResponse = Message<"blueapi.cover.v1.SetOrgUpdat
3619
3733
  * Use `create(SetOrgUpdateCurrencyResponseSchema)` to create a new message.
3620
3734
  */
3621
3735
  export const SetOrgUpdateCurrencyResponseSchema: GenMessage<SetOrgUpdateCurrencyResponse> = /*@__PURE__*/
3622
- messageDesc(file_cover_v1_cover, 113);
3736
+ messageDesc(file_cover_v1_cover, 115);
3623
3737
 
3624
3738
  /**
3625
3739
  * @generated from message blueapi.cover.v1.GetOrgUpdateCurrencyRequest
@@ -3632,7 +3746,7 @@ export type GetOrgUpdateCurrencyRequest = Message<"blueapi.cover.v1.GetOrgUpdate
3632
3746
  * Use `create(GetOrgUpdateCurrencyRequestSchema)` to create a new message.
3633
3747
  */
3634
3748
  export const GetOrgUpdateCurrencyRequestSchema: GenMessage<GetOrgUpdateCurrencyRequest> = /*@__PURE__*/
3635
- messageDesc(file_cover_v1_cover, 114);
3749
+ messageDesc(file_cover_v1_cover, 116);
3636
3750
 
3637
3751
  /**
3638
3752
  * @generated from message blueapi.cover.v1.GetOrgUpdateCurrencyResponse
@@ -3659,7 +3773,7 @@ export type GetOrgUpdateCurrencyResponse = Message<"blueapi.cover.v1.GetOrgUpdat
3659
3773
  * Use `create(GetOrgUpdateCurrencyResponseSchema)` to create a new message.
3660
3774
  */
3661
3775
  export const GetOrgUpdateCurrencyResponseSchema: GenMessage<GetOrgUpdateCurrencyResponse> = /*@__PURE__*/
3662
- messageDesc(file_cover_v1_cover, 115);
3776
+ messageDesc(file_cover_v1_cover, 117);
3663
3777
 
3664
3778
  /**
3665
3779
  * Request message for ListExchangeRates
@@ -3687,7 +3801,7 @@ export type ListExchangeRatesRequest = Message<"blueapi.cover.v1.ListExchangeRat
3687
3801
  * Use `create(ListExchangeRatesRequestSchema)` to create a new message.
3688
3802
  */
3689
3803
  export const ListExchangeRatesRequestSchema: GenMessage<ListExchangeRatesRequest> = /*@__PURE__*/
3690
- messageDesc(file_cover_v1_cover, 116);
3804
+ messageDesc(file_cover_v1_cover, 118);
3691
3805
 
3692
3806
  /**
3693
3807
  * Response message for ListExchangeRates
@@ -3711,7 +3825,7 @@ export type ListExchangeRatesResponse = Message<"blueapi.cover.v1.ListExchangeRa
3711
3825
  * Use `create(ListExchangeRatesResponseSchema)` to create a new message.
3712
3826
  */
3713
3827
  export const ListExchangeRatesResponseSchema: GenMessage<ListExchangeRatesResponse> = /*@__PURE__*/
3714
- messageDesc(file_cover_v1_cover, 117);
3828
+ messageDesc(file_cover_v1_cover, 119);
3715
3829
 
3716
3830
  /**
3717
3831
  * @generated from message blueapi.cover.v1.ExchangeRates
@@ -3738,7 +3852,7 @@ export type ExchangeRates = Message<"blueapi.cover.v1.ExchangeRates"> & {
3738
3852
  * Use `create(ExchangeRatesSchema)` to create a new message.
3739
3853
  */
3740
3854
  export const ExchangeRatesSchema: GenMessage<ExchangeRates> = /*@__PURE__*/
3741
- messageDesc(file_cover_v1_cover, 118);
3855
+ messageDesc(file_cover_v1_cover, 120);
3742
3856
 
3743
3857
  /**
3744
3858
  * Request message for DeleteView
@@ -3759,7 +3873,7 @@ export type DeleteViewRequest = Message<"blueapi.cover.v1.DeleteViewRequest"> &
3759
3873
  * Use `create(DeleteViewRequestSchema)` to create a new message.
3760
3874
  */
3761
3875
  export const DeleteViewRequestSchema: GenMessage<DeleteViewRequest> = /*@__PURE__*/
3762
- messageDesc(file_cover_v1_cover, 119);
3876
+ messageDesc(file_cover_v1_cover, 121);
3763
3877
 
3764
3878
  /**
3765
3879
  * Response message for DeleteView
@@ -3778,7 +3892,7 @@ export type DeleteViewResponse = Message<"blueapi.cover.v1.DeleteViewResponse">
3778
3892
  * Use `create(DeleteViewResponseSchema)` to create a new message.
3779
3893
  */
3780
3894
  export const DeleteViewResponseSchema: GenMessage<DeleteViewResponse> = /*@__PURE__*/
3781
- messageDesc(file_cover_v1_cover, 120);
3895
+ messageDesc(file_cover_v1_cover, 122);
3782
3896
 
3783
3897
  /**
3784
3898
  * Request message for UpdateSideMenuState
@@ -3804,7 +3918,7 @@ export type UpdateSideMenuStateRequest = Message<"blueapi.cover.v1.UpdateSideMen
3804
3918
  * Use `create(UpdateSideMenuStateRequestSchema)` to create a new message.
3805
3919
  */
3806
3920
  export const UpdateSideMenuStateRequestSchema: GenMessage<UpdateSideMenuStateRequest> = /*@__PURE__*/
3807
- messageDesc(file_cover_v1_cover, 121);
3921
+ messageDesc(file_cover_v1_cover, 123);
3808
3922
 
3809
3923
  /**
3810
3924
  * Response message for UpdateSideMenuState
@@ -3823,7 +3937,7 @@ export type UpdateSideMenuStateResponse = Message<"blueapi.cover.v1.UpdateSideMe
3823
3937
  * Use `create(UpdateSideMenuStateResponseSchema)` to create a new message.
3824
3938
  */
3825
3939
  export const UpdateSideMenuStateResponseSchema: GenMessage<UpdateSideMenuStateResponse> = /*@__PURE__*/
3826
- messageDesc(file_cover_v1_cover, 122);
3940
+ messageDesc(file_cover_v1_cover, 124);
3827
3941
 
3828
3942
  /**
3829
3943
  * Request message for AddSideMenuFavorite
@@ -3849,7 +3963,7 @@ export type AddSideMenuFavoriteRequest = Message<"blueapi.cover.v1.AddSideMenuFa
3849
3963
  * Use `create(AddSideMenuFavoriteRequestSchema)` to create a new message.
3850
3964
  */
3851
3965
  export const AddSideMenuFavoriteRequestSchema: GenMessage<AddSideMenuFavoriteRequest> = /*@__PURE__*/
3852
- messageDesc(file_cover_v1_cover, 123);
3966
+ messageDesc(file_cover_v1_cover, 125);
3853
3967
 
3854
3968
  /**
3855
3969
  * Response message for AddSideMenuFavorite
@@ -3868,7 +3982,7 @@ export type AddSideMenuFavoriteResponse = Message<"blueapi.cover.v1.AddSideMenuF
3868
3982
  * Use `create(AddSideMenuFavoriteResponseSchema)` to create a new message.
3869
3983
  */
3870
3984
  export const AddSideMenuFavoriteResponseSchema: GenMessage<AddSideMenuFavoriteResponse> = /*@__PURE__*/
3871
- messageDesc(file_cover_v1_cover, 124);
3985
+ messageDesc(file_cover_v1_cover, 126);
3872
3986
 
3873
3987
  /**
3874
3988
  * Request message for RemoveSideMenuFavorite
@@ -3894,7 +4008,7 @@ export type RemoveSideMenuFavoriteRequest = Message<"blueapi.cover.v1.RemoveSide
3894
4008
  * Use `create(RemoveSideMenuFavoriteRequestSchema)` to create a new message.
3895
4009
  */
3896
4010
  export const RemoveSideMenuFavoriteRequestSchema: GenMessage<RemoveSideMenuFavoriteRequest> = /*@__PURE__*/
3897
- messageDesc(file_cover_v1_cover, 125);
4011
+ messageDesc(file_cover_v1_cover, 127);
3898
4012
 
3899
4013
  /**
3900
4014
  * Response message for RemoveSideMenuFavorite
@@ -3913,7 +4027,7 @@ export type RemoveSideMenuFavoriteResponse = Message<"blueapi.cover.v1.RemoveSid
3913
4027
  * Use `create(RemoveSideMenuFavoriteResponseSchema)` to create a new message.
3914
4028
  */
3915
4029
  export const RemoveSideMenuFavoriteResponseSchema: GenMessage<RemoveSideMenuFavoriteResponse> = /*@__PURE__*/
3916
- messageDesc(file_cover_v1_cover, 126);
4030
+ messageDesc(file_cover_v1_cover, 128);
3917
4031
 
3918
4032
  /**
3919
4033
  * Request message for CreateCostGroup
@@ -3962,7 +4076,7 @@ export type CreateCostGroupRequest = Message<"blueapi.cover.v1.CreateCostGroupRe
3962
4076
  * Use `create(CreateCostGroupRequestSchema)` to create a new message.
3963
4077
  */
3964
4078
  export const CreateCostGroupRequestSchema: GenMessage<CreateCostGroupRequest> = /*@__PURE__*/
3965
- messageDesc(file_cover_v1_cover, 127);
4079
+ messageDesc(file_cover_v1_cover, 129);
3966
4080
 
3967
4081
  /**
3968
4082
  * Response message for CreateCostGroup
@@ -3981,7 +4095,7 @@ export type CreateCostGroupResponse = Message<"blueapi.cover.v1.CreateCostGroupR
3981
4095
  * Use `create(CreateCostGroupResponseSchema)` to create a new message.
3982
4096
  */
3983
4097
  export const CreateCostGroupResponseSchema: GenMessage<CreateCostGroupResponse> = /*@__PURE__*/
3984
- messageDesc(file_cover_v1_cover, 128);
4098
+ messageDesc(file_cover_v1_cover, 130);
3985
4099
 
3986
4100
  /**
3987
4101
  * Request message for GetCostGroups
@@ -3996,7 +4110,7 @@ export type GetCostGroupsRequest = Message<"blueapi.cover.v1.GetCostGroupsReques
3996
4110
  * Use `create(GetCostGroupsRequestSchema)` to create a new message.
3997
4111
  */
3998
4112
  export const GetCostGroupsRequestSchema: GenMessage<GetCostGroupsRequest> = /*@__PURE__*/
3999
- messageDesc(file_cover_v1_cover, 129);
4113
+ messageDesc(file_cover_v1_cover, 131);
4000
4114
 
4001
4115
  /**
4002
4116
  * Response message for GetCostGroups
@@ -4015,7 +4129,7 @@ export type GetCostGroupsResponse = Message<"blueapi.cover.v1.GetCostGroupsRespo
4015
4129
  * Use `create(GetCostGroupsResponseSchema)` to create a new message.
4016
4130
  */
4017
4131
  export const GetCostGroupsResponseSchema: GenMessage<GetCostGroupsResponse> = /*@__PURE__*/
4018
- messageDesc(file_cover_v1_cover, 130);
4132
+ messageDesc(file_cover_v1_cover, 132);
4019
4133
 
4020
4134
  /**
4021
4135
  * Request message for GetCostGroupDetails
@@ -4036,7 +4150,7 @@ export type GetCostGroupDetailsRequest = Message<"blueapi.cover.v1.GetCostGroupD
4036
4150
  * Use `create(GetCostGroupDetailsRequestSchema)` to create a new message.
4037
4151
  */
4038
4152
  export const GetCostGroupDetailsRequestSchema: GenMessage<GetCostGroupDetailsRequest> = /*@__PURE__*/
4039
- messageDesc(file_cover_v1_cover, 131);
4153
+ messageDesc(file_cover_v1_cover, 133);
4040
4154
 
4041
4155
  /**
4042
4156
  * Response message for GetCostGroupDetails
@@ -4055,7 +4169,7 @@ export type GetCostGroupDetailsResponse = Message<"blueapi.cover.v1.GetCostGroup
4055
4169
  * Use `create(GetCostGroupDetailsResponseSchema)` to create a new message.
4056
4170
  */
4057
4171
  export const GetCostGroupDetailsResponseSchema: GenMessage<GetCostGroupDetailsResponse> = /*@__PURE__*/
4058
- messageDesc(file_cover_v1_cover, 132);
4172
+ messageDesc(file_cover_v1_cover, 134);
4059
4173
 
4060
4174
  /**
4061
4175
  * Request message for UpdateCostGroupName
@@ -4083,7 +4197,7 @@ export type UpdateCostGroupNameRequest = Message<"blueapi.cover.v1.UpdateCostGro
4083
4197
  * Use `create(UpdateCostGroupNameRequestSchema)` to create a new message.
4084
4198
  */
4085
4199
  export const UpdateCostGroupNameRequestSchema: GenMessage<UpdateCostGroupNameRequest> = /*@__PURE__*/
4086
- messageDesc(file_cover_v1_cover, 133);
4200
+ messageDesc(file_cover_v1_cover, 135);
4087
4201
 
4088
4202
  /**
4089
4203
  * Response message for UpdateCostGroupName
@@ -4102,7 +4216,7 @@ export type UpdateCostGroupNameResponse = Message<"blueapi.cover.v1.UpdateCostGr
4102
4216
  * Use `create(UpdateCostGroupNameResponseSchema)` to create a new message.
4103
4217
  */
4104
4218
  export const UpdateCostGroupNameResponseSchema: GenMessage<UpdateCostGroupNameResponse> = /*@__PURE__*/
4105
- messageDesc(file_cover_v1_cover, 134);
4219
+ messageDesc(file_cover_v1_cover, 136);
4106
4220
 
4107
4221
  /**
4108
4222
  * Request message for UpdateCostGroupDescription
@@ -4130,7 +4244,7 @@ export type UpdateCostGroupDescriptionRequest = Message<"blueapi.cover.v1.Update
4130
4244
  * Use `create(UpdateCostGroupDescriptionRequestSchema)` to create a new message.
4131
4245
  */
4132
4246
  export const UpdateCostGroupDescriptionRequestSchema: GenMessage<UpdateCostGroupDescriptionRequest> = /*@__PURE__*/
4133
- messageDesc(file_cover_v1_cover, 135);
4247
+ messageDesc(file_cover_v1_cover, 137);
4134
4248
 
4135
4249
  /**
4136
4250
  * Response message for UpdateCostGroupDescription
@@ -4149,7 +4263,7 @@ export type UpdateCostGroupDescriptionResponse = Message<"blueapi.cover.v1.Updat
4149
4263
  * Use `create(UpdateCostGroupDescriptionResponseSchema)` to create a new message.
4150
4264
  */
4151
4265
  export const UpdateCostGroupDescriptionResponseSchema: GenMessage<UpdateCostGroupDescriptionResponse> = /*@__PURE__*/
4152
- messageDesc(file_cover_v1_cover, 136);
4266
+ messageDesc(file_cover_v1_cover, 138);
4153
4267
 
4154
4268
  /**
4155
4269
  * Request message for UpdateCostGroupImage
@@ -4177,7 +4291,7 @@ export type UpdateCostGroupImageRequest = Message<"blueapi.cover.v1.UpdateCostGr
4177
4291
  * Use `create(UpdateCostGroupImageRequestSchema)` to create a new message.
4178
4292
  */
4179
4293
  export const UpdateCostGroupImageRequestSchema: GenMessage<UpdateCostGroupImageRequest> = /*@__PURE__*/
4180
- messageDesc(file_cover_v1_cover, 137);
4294
+ messageDesc(file_cover_v1_cover, 139);
4181
4295
 
4182
4296
  /**
4183
4297
  * Response message for UpdateCostGroupImage
@@ -4196,7 +4310,7 @@ export type UpdateCostGroupImageResponse = Message<"blueapi.cover.v1.UpdateCostG
4196
4310
  * Use `create(UpdateCostGroupImageResponseSchema)` to create a new message.
4197
4311
  */
4198
4312
  export const UpdateCostGroupImageResponseSchema: GenMessage<UpdateCostGroupImageResponse> = /*@__PURE__*/
4199
- messageDesc(file_cover_v1_cover, 138);
4313
+ messageDesc(file_cover_v1_cover, 140);
4200
4314
 
4201
4315
  /**
4202
4316
  * Request message for UpdateCostGroupIcon
@@ -4224,7 +4338,7 @@ export type UpdateCostGroupIconRequest = Message<"blueapi.cover.v1.UpdateCostGro
4224
4338
  * Use `create(UpdateCostGroupIconRequestSchema)` to create a new message.
4225
4339
  */
4226
4340
  export const UpdateCostGroupIconRequestSchema: GenMessage<UpdateCostGroupIconRequest> = /*@__PURE__*/
4227
- messageDesc(file_cover_v1_cover, 139);
4341
+ messageDesc(file_cover_v1_cover, 141);
4228
4342
 
4229
4343
  /**
4230
4344
  * Response message for UpdateCostGroupIcon
@@ -4243,7 +4357,7 @@ export type UpdateCostGroupIconResponse = Message<"blueapi.cover.v1.UpdateCostGr
4243
4357
  * Use `create(UpdateCostGroupIconResponseSchema)` to create a new message.
4244
4358
  */
4245
4359
  export const UpdateCostGroupIconResponseSchema: GenMessage<UpdateCostGroupIconResponse> = /*@__PURE__*/
4246
- messageDesc(file_cover_v1_cover, 140);
4360
+ messageDesc(file_cover_v1_cover, 142);
4247
4361
 
4248
4362
  /**
4249
4363
  * Request message for UpdateCostGroupColorTheme
@@ -4271,7 +4385,7 @@ export type UpdateCostGroupColorThemeRequest = Message<"blueapi.cover.v1.UpdateC
4271
4385
  * Use `create(UpdateCostGroupColorThemeRequestSchema)` to create a new message.
4272
4386
  */
4273
4387
  export const UpdateCostGroupColorThemeRequestSchema: GenMessage<UpdateCostGroupColorThemeRequest> = /*@__PURE__*/
4274
- messageDesc(file_cover_v1_cover, 141);
4388
+ messageDesc(file_cover_v1_cover, 143);
4275
4389
 
4276
4390
  /**
4277
4391
  * Response message for UpdateCostGroupColorTheme
@@ -4290,7 +4404,7 @@ export type UpdateCostGroupColorThemeResponse = Message<"blueapi.cover.v1.Update
4290
4404
  * Use `create(UpdateCostGroupColorThemeResponseSchema)` to create a new message.
4291
4405
  */
4292
4406
  export const UpdateCostGroupColorThemeResponseSchema: GenMessage<UpdateCostGroupColorThemeResponse> = /*@__PURE__*/
4293
- messageDesc(file_cover_v1_cover, 142);
4407
+ messageDesc(file_cover_v1_cover, 144);
4294
4408
 
4295
4409
  /**
4296
4410
  * Request message for UpdateCostGroupCombinations
@@ -4316,7 +4430,7 @@ export type UpdateCostGroupCombinationsRequest = Message<"blueapi.cover.v1.Updat
4316
4430
  * Use `create(UpdateCostGroupCombinationsRequestSchema)` to create a new message.
4317
4431
  */
4318
4432
  export const UpdateCostGroupCombinationsRequestSchema: GenMessage<UpdateCostGroupCombinationsRequest> = /*@__PURE__*/
4319
- messageDesc(file_cover_v1_cover, 143);
4433
+ messageDesc(file_cover_v1_cover, 145);
4320
4434
 
4321
4435
  /**
4322
4436
  * Response message for UpdateCostGroupCombinations
@@ -4335,7 +4449,7 @@ export type UpdateCostGroupCombinationsResponse = Message<"blueapi.cover.v1.Upda
4335
4449
  * Use `create(UpdateCostGroupCombinationsResponseSchema)` to create a new message.
4336
4450
  */
4337
4451
  export const UpdateCostGroupCombinationsResponseSchema: GenMessage<UpdateCostGroupCombinationsResponse> = /*@__PURE__*/
4338
- messageDesc(file_cover_v1_cover, 144);
4452
+ messageDesc(file_cover_v1_cover, 146);
4339
4453
 
4340
4454
  /**
4341
4455
  * Request message for AssignCostGroupMember
@@ -4363,7 +4477,7 @@ export type AssignCostGroupMemberRequest = Message<"blueapi.cover.v1.AssignCostG
4363
4477
  * Use `create(AssignCostGroupMemberRequestSchema)` to create a new message.
4364
4478
  */
4365
4479
  export const AssignCostGroupMemberRequestSchema: GenMessage<AssignCostGroupMemberRequest> = /*@__PURE__*/
4366
- messageDesc(file_cover_v1_cover, 145);
4480
+ messageDesc(file_cover_v1_cover, 147);
4367
4481
 
4368
4482
  /**
4369
4483
  * Response message for AssignCostGroupMember
@@ -4387,7 +4501,7 @@ export type AssignCostGroupMemberResponse = Message<"blueapi.cover.v1.AssignCost
4387
4501
  * Use `create(AssignCostGroupMemberResponseSchema)` to create a new message.
4388
4502
  */
4389
4503
  export const AssignCostGroupMemberResponseSchema: GenMessage<AssignCostGroupMemberResponse> = /*@__PURE__*/
4390
- messageDesc(file_cover_v1_cover, 146);
4504
+ messageDesc(file_cover_v1_cover, 148);
4391
4505
 
4392
4506
  /**
4393
4507
  * Request message for RemoveCostGroupMember
@@ -4415,7 +4529,7 @@ export type RemoveCostGroupMemberRequest = Message<"blueapi.cover.v1.RemoveCostG
4415
4529
  * Use `create(RemoveCostGroupMemberRequestSchema)` to create a new message.
4416
4530
  */
4417
4531
  export const RemoveCostGroupMemberRequestSchema: GenMessage<RemoveCostGroupMemberRequest> = /*@__PURE__*/
4418
- messageDesc(file_cover_v1_cover, 147);
4532
+ messageDesc(file_cover_v1_cover, 149);
4419
4533
 
4420
4534
  /**
4421
4535
  * Response message for RemoveCostGroupMember
@@ -4439,7 +4553,7 @@ export type RemoveCostGroupMemberResponse = Message<"blueapi.cover.v1.RemoveCost
4439
4553
  * Use `create(RemoveCostGroupMemberResponseSchema)` to create a new message.
4440
4554
  */
4441
4555
  export const RemoveCostGroupMemberResponseSchema: GenMessage<RemoveCostGroupMemberResponse> = /*@__PURE__*/
4442
- messageDesc(file_cover_v1_cover, 148);
4556
+ messageDesc(file_cover_v1_cover, 150);
4443
4557
 
4444
4558
  /**
4445
4559
  * Request message for DeleteCostGroup
@@ -4460,7 +4574,7 @@ export type DeleteCostGroupRequest = Message<"blueapi.cover.v1.DeleteCostGroupRe
4460
4574
  * Use `create(DeleteCostGroupRequestSchema)` to create a new message.
4461
4575
  */
4462
4576
  export const DeleteCostGroupRequestSchema: GenMessage<DeleteCostGroupRequest> = /*@__PURE__*/
4463
- messageDesc(file_cover_v1_cover, 149);
4577
+ messageDesc(file_cover_v1_cover, 151);
4464
4578
 
4465
4579
  /**
4466
4580
  * Response message for DeleteCostGroup
@@ -4479,7 +4593,7 @@ export type DeleteCostGroupResponse = Message<"blueapi.cover.v1.DeleteCostGroupR
4479
4593
  * Use `create(DeleteCostGroupResponseSchema)` to create a new message.
4480
4594
  */
4481
4595
  export const DeleteCostGroupResponseSchema: GenMessage<DeleteCostGroupResponse> = /*@__PURE__*/
4482
- messageDesc(file_cover_v1_cover, 150);
4596
+ messageDesc(file_cover_v1_cover, 152);
4483
4597
 
4484
4598
  /**
4485
4599
  * Request message for the GetAccountAccessTemplateUrlRequest rpc.
@@ -4500,7 +4614,7 @@ export type GetAccountAccessTemplateUrlRequest = Message<"blueapi.cover.v1.GetAc
4500
4614
  * Use `create(GetAccountAccessTemplateUrlRequestSchema)` to create a new message.
4501
4615
  */
4502
4616
  export const GetAccountAccessTemplateUrlRequestSchema: GenMessage<GetAccountAccessTemplateUrlRequest> = /*@__PURE__*/
4503
- messageDesc(file_cover_v1_cover, 151);
4617
+ messageDesc(file_cover_v1_cover, 153);
4504
4618
 
4505
4619
  /**
4506
4620
  * Response message for the GetAccountAccessTemplateUrlResponse rpc.
@@ -4542,6 +4656,11 @@ export type GetAccountAccessTemplateUrlResponse = Message<"blueapi.cover.v1.GetA
4542
4656
  * @generated from field: string externalId = 5;
4543
4657
  */
4544
4658
  externalId: string;
4659
+
4660
+ /**
4661
+ * @generated from field: string templateVersion = 6;
4662
+ */
4663
+ templateVersion: string;
4545
4664
  };
4546
4665
 
4547
4666
  /**
@@ -4549,7 +4668,7 @@ export type GetAccountAccessTemplateUrlResponse = Message<"blueapi.cover.v1.GetA
4549
4668
  * Use `create(GetAccountAccessTemplateUrlResponseSchema)` to create a new message.
4550
4669
  */
4551
4670
  export const GetAccountAccessTemplateUrlResponseSchema: GenMessage<GetAccountAccessTemplateUrlResponse> = /*@__PURE__*/
4552
- messageDesc(file_cover_v1_cover, 152);
4671
+ messageDesc(file_cover_v1_cover, 154);
4553
4672
 
4554
4673
  /**
4555
4674
  * Request message for the ListAccountAccess rpc.
@@ -4564,7 +4683,7 @@ export type ListAccountAccessRequest = Message<"blueapi.cover.v1.ListAccountAcce
4564
4683
  * Use `create(ListAccountAccessRequestSchema)` to create a new message.
4565
4684
  */
4566
4685
  export const ListAccountAccessRequestSchema: GenMessage<ListAccountAccessRequest> = /*@__PURE__*/
4567
- messageDesc(file_cover_v1_cover, 153);
4686
+ messageDesc(file_cover_v1_cover, 155);
4568
4687
 
4569
4688
  /**
4570
4689
  * Request message for the GetAccountAccess rpc.
@@ -4585,7 +4704,7 @@ export type GetAccountAccessRequest = Message<"blueapi.cover.v1.GetAccountAccess
4585
4704
  * Use `create(GetAccountAccessRequestSchema)` to create a new message.
4586
4705
  */
4587
4706
  export const GetAccountAccessRequestSchema: GenMessage<GetAccountAccessRequest> = /*@__PURE__*/
4588
- messageDesc(file_cover_v1_cover, 154);
4707
+ messageDesc(file_cover_v1_cover, 156);
4589
4708
 
4590
4709
  /**
4591
4710
  * Response message for GetAccountAccess, CreateAccountAccess rpc.
@@ -4704,7 +4823,7 @@ export type AccountAccess = Message<"blueapi.cover.v1.AccountAccess"> & {
4704
4823
  * Use `create(AccountAccessSchema)` to create a new message.
4705
4824
  */
4706
4825
  export const AccountAccessSchema: GenMessage<AccountAccess> = /*@__PURE__*/
4707
- messageDesc(file_cover_v1_cover, 155);
4826
+ messageDesc(file_cover_v1_cover, 157);
4708
4827
 
4709
4828
  /**
4710
4829
  * Request message for the CreateAccountAccess rpc.
@@ -4732,7 +4851,7 @@ export type CreateAccountAccessRequest = Message<"blueapi.cover.v1.CreateAccount
4732
4851
  * Use `create(CreateAccountAccessRequestSchema)` to create a new message.
4733
4852
  */
4734
4853
  export const CreateAccountAccessRequestSchema: GenMessage<CreateAccountAccessRequest> = /*@__PURE__*/
4735
- messageDesc(file_cover_v1_cover, 156);
4854
+ messageDesc(file_cover_v1_cover, 158);
4736
4855
 
4737
4856
  /**
4738
4857
  * Request message for the CreateAccountAccessStackset rpc.
@@ -4760,7 +4879,7 @@ export type CreateAccountAccessStacksetRequest = Message<"blueapi.cover.v1.Creat
4760
4879
  * Use `create(CreateAccountAccessStacksetRequestSchema)` to create a new message.
4761
4880
  */
4762
4881
  export const CreateAccountAccessStacksetRequestSchema: GenMessage<CreateAccountAccessStacksetRequest> = /*@__PURE__*/
4763
- messageDesc(file_cover_v1_cover, 157);
4882
+ messageDesc(file_cover_v1_cover, 159);
4764
4883
 
4765
4884
  /**
4766
4885
  * Request message for the UpdateAccountAccess rpc.
@@ -4781,7 +4900,7 @@ export type UpdateAccountAccessRequest = Message<"blueapi.cover.v1.UpdateAccount
4781
4900
  * Use `create(UpdateAccountAccessRequestSchema)` to create a new message.
4782
4901
  */
4783
4902
  export const UpdateAccountAccessRequestSchema: GenMessage<UpdateAccountAccessRequest> = /*@__PURE__*/
4784
- messageDesc(file_cover_v1_cover, 158);
4903
+ messageDesc(file_cover_v1_cover, 160);
4785
4904
 
4786
4905
  /**
4787
4906
  * Request message for the DeleteAccountAccess rpc.
@@ -4807,7 +4926,7 @@ export type DeleteAccountAccessRequest = Message<"blueapi.cover.v1.DeleteAccount
4807
4926
  * Use `create(DeleteAccountAccessRequestSchema)` to create a new message.
4808
4927
  */
4809
4928
  export const DeleteAccountAccessRequestSchema: GenMessage<DeleteAccountAccessRequest> = /*@__PURE__*/
4810
- messageDesc(file_cover_v1_cover, 159);
4929
+ messageDesc(file_cover_v1_cover, 161);
4811
4930
 
4812
4931
  /**
4813
4932
  * Response message for the DeleteAccountAccess rpc.
@@ -4826,7 +4945,7 @@ export type DeleteAccountAccessResponse = Message<"blueapi.cover.v1.DeleteAccoun
4826
4945
  * Use `create(DeleteAccountAccessResponseSchema)` to create a new message.
4827
4946
  */
4828
4947
  export const DeleteAccountAccessResponseSchema: GenMessage<DeleteAccountAccessResponse> = /*@__PURE__*/
4829
- messageDesc(file_cover_v1_cover, 160);
4948
+ messageDesc(file_cover_v1_cover, 162);
4830
4949
 
4831
4950
  /**
4832
4951
  * Request message for the RegisterAccount rpc.
@@ -4861,7 +4980,7 @@ export type RegisterAccountRequest = Message<"blueapi.cover.v1.RegisterAccountRe
4861
4980
  * Use `create(RegisterAccountRequestSchema)` to create a new message.
4862
4981
  */
4863
4982
  export const RegisterAccountRequestSchema: GenMessage<RegisterAccountRequest> = /*@__PURE__*/
4864
- messageDesc(file_cover_v1_cover, 161);
4983
+ messageDesc(file_cover_v1_cover, 163);
4865
4984
 
4866
4985
  /**
4867
4986
  * Request message for the Asset.ListResources rpc.
@@ -4917,7 +5036,7 @@ export type ListAssetsRequest = Message<"blueapi.cover.v1.ListAssetsRequest"> &
4917
5036
  * Use `create(ListAssetsRequestSchema)` to create a new message.
4918
5037
  */
4919
5038
  export const ListAssetsRequestSchema: GenMessage<ListAssetsRequest> = /*@__PURE__*/
4920
- messageDesc(file_cover_v1_cover, 162);
5039
+ messageDesc(file_cover_v1_cover, 164);
4921
5040
 
4922
5041
  /**
4923
5042
  * @generated from message blueapi.cover.v1.ListAssetsFilters
@@ -4934,7 +5053,7 @@ export type ListAssetsFilters = Message<"blueapi.cover.v1.ListAssetsFilters"> &
4934
5053
  * Use `create(ListAssetsFiltersSchema)` to create a new message.
4935
5054
  */
4936
5055
  export const ListAssetsFiltersSchema: GenMessage<ListAssetsFilters> = /*@__PURE__*/
4937
- messageDesc(file_cover_v1_cover, 163);
5056
+ messageDesc(file_cover_v1_cover, 165);
4938
5057
 
4939
5058
  /**
4940
5059
  * @generated from message blueapi.cover.v1.Resource
@@ -5016,7 +5135,7 @@ export type Resource = Message<"blueapi.cover.v1.Resource"> & {
5016
5135
  * Use `create(ResourceSchema)` to create a new message.
5017
5136
  */
5018
5137
  export const ResourceSchema: GenMessage<Resource> = /*@__PURE__*/
5019
- messageDesc(file_cover_v1_cover, 164);
5138
+ messageDesc(file_cover_v1_cover, 166);
5020
5139
 
5021
5140
  /**
5022
5141
  * @generated from message blueapi.cover.v1.GetAssetsSummaryRequest
@@ -5070,7 +5189,7 @@ export type GetAssetsSummaryRequest = Message<"blueapi.cover.v1.GetAssetsSummary
5070
5189
  * Use `create(GetAssetsSummaryRequestSchema)` to create a new message.
5071
5190
  */
5072
5191
  export const GetAssetsSummaryRequestSchema: GenMessage<GetAssetsSummaryRequest> = /*@__PURE__*/
5073
- messageDesc(file_cover_v1_cover, 165);
5192
+ messageDesc(file_cover_v1_cover, 167);
5074
5193
 
5075
5194
  /**
5076
5195
  * @generated from message blueapi.cover.v1.GetAssetsSummaryResponse
@@ -5094,7 +5213,7 @@ export type GetAssetsSummaryResponse = Message<"blueapi.cover.v1.GetAssetsSummar
5094
5213
  * Use `create(GetAssetsSummaryResponseSchema)` to create a new message.
5095
5214
  */
5096
5215
  export const GetAssetsSummaryResponseSchema: GenMessage<GetAssetsSummaryResponse> = /*@__PURE__*/
5097
- messageDesc(file_cover_v1_cover, 166);
5216
+ messageDesc(file_cover_v1_cover, 168);
5098
5217
 
5099
5218
  /**
5100
5219
  * @generated from message blueapi.cover.v1.AssetsSummary
@@ -5134,7 +5253,7 @@ export type AssetsSummary = Message<"blueapi.cover.v1.AssetsSummary"> & {
5134
5253
  * Use `create(AssetsSummarySchema)` to create a new message.
5135
5254
  */
5136
5255
  export const AssetsSummarySchema: GenMessage<AssetsSummary> = /*@__PURE__*/
5137
- messageDesc(file_cover_v1_cover, 167);
5256
+ messageDesc(file_cover_v1_cover, 169);
5138
5257
 
5139
5258
  /**
5140
5259
  * @generated from message blueapi.cover.v1.ResolveCostGroupCombinationsRequest
@@ -5153,7 +5272,7 @@ export type ResolveCostGroupCombinationsRequest = Message<"blueapi.cover.v1.Reso
5153
5272
  * Use `create(ResolveCostGroupCombinationsRequestSchema)` to create a new message.
5154
5273
  */
5155
5274
  export const ResolveCostGroupCombinationsRequestSchema: GenMessage<ResolveCostGroupCombinationsRequest> = /*@__PURE__*/
5156
- messageDesc(file_cover_v1_cover, 168);
5275
+ messageDesc(file_cover_v1_cover, 170);
5157
5276
 
5158
5277
  /**
5159
5278
  * @generated from message blueapi.cover.v1.ResolveCostGroupCombinationsResponse
@@ -5175,7 +5294,7 @@ export type ResolveCostGroupCombinationsResponse = Message<"blueapi.cover.v1.Res
5175
5294
  * Use `create(ResolveCostGroupCombinationsResponseSchema)` to create a new message.
5176
5295
  */
5177
5296
  export const ResolveCostGroupCombinationsResponseSchema: GenMessage<ResolveCostGroupCombinationsResponse> = /*@__PURE__*/
5178
- messageDesc(file_cover_v1_cover, 169);
5297
+ messageDesc(file_cover_v1_cover, 171);
5179
5298
 
5180
5299
  /**
5181
5300
  * @generated from message blueapi.cover.v1.GetCostUsageRequest
@@ -5299,7 +5418,7 @@ export type GetCostUsageRequest = Message<"blueapi.cover.v1.GetCostUsageRequest"
5299
5418
  * Use `create(GetCostUsageRequestSchema)` to create a new message.
5300
5419
  */
5301
5420
  export const GetCostUsageRequestSchema: GenMessage<GetCostUsageRequest> = /*@__PURE__*/
5302
- messageDesc(file_cover_v1_cover, 170);
5421
+ messageDesc(file_cover_v1_cover, 172);
5303
5422
 
5304
5423
  /**
5305
5424
  * @generated from message blueapi.cover.v1.GetCostUsageRequestAwsOptions
@@ -5353,7 +5472,7 @@ export type GetCostUsageRequestAwsOptions = Message<"blueapi.cover.v1.GetCostUsa
5353
5472
  * Use `create(GetCostUsageRequestAwsOptionsSchema)` to create a new message.
5354
5473
  */
5355
5474
  export const GetCostUsageRequestAwsOptionsSchema: GenMessage<GetCostUsageRequestAwsOptions> = /*@__PURE__*/
5356
- messageDesc(file_cover_v1_cover, 171);
5475
+ messageDesc(file_cover_v1_cover, 173);
5357
5476
 
5358
5477
  /**
5359
5478
  * @generated from message blueapi.cover.v1.GetCostUsageRequestAzureOptions
@@ -5399,7 +5518,7 @@ export type GetCostUsageRequestAzureOptions = Message<"blueapi.cover.v1.GetCostU
5399
5518
  * Use `create(GetCostUsageRequestAzureOptionsSchema)` to create a new message.
5400
5519
  */
5401
5520
  export const GetCostUsageRequestAzureOptionsSchema: GenMessage<GetCostUsageRequestAzureOptions> = /*@__PURE__*/
5402
- messageDesc(file_cover_v1_cover, 172);
5521
+ messageDesc(file_cover_v1_cover, 174);
5403
5522
 
5404
5523
  /**
5405
5524
  * @generated from message blueapi.cover.v1.GetCostUsageRequestGcpOptions
@@ -5461,7 +5580,7 @@ export type GetCostUsageRequestGcpOptions = Message<"blueapi.cover.v1.GetCostUsa
5461
5580
  * Use `create(GetCostUsageRequestGcpOptionsSchema)` to create a new message.
5462
5581
  */
5463
5582
  export const GetCostUsageRequestGcpOptionsSchema: GenMessage<GetCostUsageRequestGcpOptions> = /*@__PURE__*/
5464
- messageDesc(file_cover_v1_cover, 173);
5583
+ messageDesc(file_cover_v1_cover, 175);
5465
5584
 
5466
5585
  /**
5467
5586
  * @generated from message blueapi.cover.v1.GetCostUsageRequestAzureCspOptions
@@ -5513,7 +5632,7 @@ export type GetCostUsageRequestAzureCspOptions = Message<"blueapi.cover.v1.GetCo
5513
5632
  * Use `create(GetCostUsageRequestAzureCspOptionsSchema)` to create a new message.
5514
5633
  */
5515
5634
  export const GetCostUsageRequestAzureCspOptionsSchema: GenMessage<GetCostUsageRequestAzureCspOptions> = /*@__PURE__*/
5516
- messageDesc(file_cover_v1_cover, 174);
5635
+ messageDesc(file_cover_v1_cover, 176);
5517
5636
 
5518
5637
  /**
5519
5638
  * @generated from message blueapi.cover.v1.GetCostUsageRequestCustomOptions
@@ -5575,7 +5694,7 @@ export type GetCostUsageRequestCustomOptions = Message<"blueapi.cover.v1.GetCost
5575
5694
  * Use `create(GetCostUsageRequestCustomOptionsSchema)` to create a new message.
5576
5695
  */
5577
5696
  export const GetCostUsageRequestCustomOptionsSchema: GenMessage<GetCostUsageRequestCustomOptions> = /*@__PURE__*/
5578
- messageDesc(file_cover_v1_cover, 175);
5697
+ messageDesc(file_cover_v1_cover, 177);
5579
5698
 
5580
5699
  /**
5581
5700
  * 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.
@@ -5596,7 +5715,7 @@ export type ReadCostsRequestOptionsFilters = Message<"blueapi.cover.v1.ReadCosts
5596
5715
  * Use `create(ReadCostsRequestOptionsFiltersSchema)` to create a new message.
5597
5716
  */
5598
5717
  export const ReadCostsRequestOptionsFiltersSchema: GenMessage<ReadCostsRequestOptionsFilters> = /*@__PURE__*/
5599
- messageDesc(file_cover_v1_cover, 176);
5718
+ messageDesc(file_cover_v1_cover, 178);
5600
5719
 
5601
5720
  /**
5602
5721
  * Response message wrapper for cloud costs.
@@ -5734,7 +5853,7 @@ export type CostItem = Message<"blueapi.cover.v1.CostItem"> & {
5734
5853
  * Use `create(CostItemSchema)` to create a new message.
5735
5854
  */
5736
5855
  export const CostItemSchema: GenMessage<CostItem> = /*@__PURE__*/
5737
- messageDesc(file_cover_v1_cover, 177);
5856
+ messageDesc(file_cover_v1_cover, 179);
5738
5857
 
5739
5858
  /**
5740
5859
  * Request message for GetRightSizingRecommendation
@@ -5755,7 +5874,7 @@ export type GetRightSizingRecommendationRequest = Message<"blueapi.cover.v1.GetR
5755
5874
  * Use `create(GetRightSizingRecommendationRequestSchema)` to create a new message.
5756
5875
  */
5757
5876
  export const GetRightSizingRecommendationRequestSchema: GenMessage<GetRightSizingRecommendationRequest> = /*@__PURE__*/
5758
- messageDesc(file_cover_v1_cover, 178);
5877
+ messageDesc(file_cover_v1_cover, 180);
5759
5878
 
5760
5879
  /**
5761
5880
  * Response message for GetRightSizingRecommendation
@@ -5774,7 +5893,7 @@ export type GetRightSizingRecommendationResponse = Message<"blueapi.cover.v1.Get
5774
5893
  * Use `create(GetRightSizingRecommendationResponseSchema)` to create a new message.
5775
5894
  */
5776
5895
  export const GetRightSizingRecommendationResponseSchema: GenMessage<GetRightSizingRecommendationResponse> = /*@__PURE__*/
5777
- messageDesc(file_cover_v1_cover, 179);
5896
+ messageDesc(file_cover_v1_cover, 181);
5778
5897
 
5779
5898
  /**
5780
5899
  * Request message for ModifyResourceType
@@ -5823,7 +5942,7 @@ export type ModifyResourceTypeRequest = Message<"blueapi.cover.v1.ModifyResource
5823
5942
  * Use `create(ModifyResourceTypeRequestSchema)` to create a new message.
5824
5943
  */
5825
5944
  export const ModifyResourceTypeRequestSchema: GenMessage<ModifyResourceTypeRequest> = /*@__PURE__*/
5826
- messageDesc(file_cover_v1_cover, 180);
5945
+ messageDesc(file_cover_v1_cover, 182);
5827
5946
 
5828
5947
  /**
5829
5948
  * Response message for ModifyResourceType
@@ -5857,7 +5976,7 @@ export type ModifyResourceTypeResponse = Message<"blueapi.cover.v1.ModifyResourc
5857
5976
  * Use `create(ModifyResourceTypeResponseSchema)` to create a new message.
5858
5977
  */
5859
5978
  export const ModifyResourceTypeResponseSchema: GenMessage<ModifyResourceTypeResponse> = /*@__PURE__*/
5860
- messageDesc(file_cover_v1_cover, 181);
5979
+ messageDesc(file_cover_v1_cover, 183);
5861
5980
 
5862
5981
  /**
5863
5982
  * Request message for TerminateResource
@@ -5899,7 +6018,7 @@ export type TerminateResourceRequest = Message<"blueapi.cover.v1.TerminateResour
5899
6018
  * Use `create(TerminateResourceRequestSchema)` to create a new message.
5900
6019
  */
5901
6020
  export const TerminateResourceRequestSchema: GenMessage<TerminateResourceRequest> = /*@__PURE__*/
5902
- messageDesc(file_cover_v1_cover, 182);
6021
+ messageDesc(file_cover_v1_cover, 184);
5903
6022
 
5904
6023
  /**
5905
6024
  * Response message for TerminateResource
@@ -5928,7 +6047,7 @@ export type TerminateResourceResponse = Message<"blueapi.cover.v1.TerminateResou
5928
6047
  * Use `create(TerminateResourceResponseSchema)` to create a new message.
5929
6048
  */
5930
6049
  export const TerminateResourceResponseSchema: GenMessage<TerminateResourceResponse> = /*@__PURE__*/
5931
- messageDesc(file_cover_v1_cover, 183);
6050
+ messageDesc(file_cover_v1_cover, 185);
5932
6051
 
5933
6052
  /**
5934
6053
  * (WIP): Request message for Upload Charge Code
@@ -5969,7 +6088,7 @@ export type UploadChargeCodeRequest = Message<"blueapi.cover.v1.UploadChargeCode
5969
6088
  * Use `create(UploadChargeCodeRequestSchema)` to create a new message.
5970
6089
  */
5971
6090
  export const UploadChargeCodeRequestSchema: GenMessage<UploadChargeCodeRequest> = /*@__PURE__*/
5972
- messageDesc(file_cover_v1_cover, 184);
6091
+ messageDesc(file_cover_v1_cover, 186);
5973
6092
 
5974
6093
  /**
5975
6094
  * (WIP): Response message for Upload Charge Code
@@ -5997,7 +6116,7 @@ export type UploadChargeCodeResponse = Message<"blueapi.cover.v1.UploadChargeCod
5997
6116
  * Use `create(UploadChargeCodeResponseSchema)` to create a new message.
5998
6117
  */
5999
6118
  export const UploadChargeCodeResponseSchema: GenMessage<UploadChargeCodeResponse> = /*@__PURE__*/
6000
- messageDesc(file_cover_v1_cover, 185);
6119
+ messageDesc(file_cover_v1_cover, 187);
6001
6120
 
6002
6121
  /**
6003
6122
  * Request message for AssignPayer
@@ -6032,7 +6151,7 @@ export type AssignPayerRequest = Message<"blueapi.cover.v1.AssignPayerRequest">
6032
6151
  * Use `create(AssignPayerRequestSchema)` to create a new message.
6033
6152
  */
6034
6153
  export const AssignPayerRequestSchema: GenMessage<AssignPayerRequest> = /*@__PURE__*/
6035
- messageDesc(file_cover_v1_cover, 186);
6154
+ messageDesc(file_cover_v1_cover, 188);
6036
6155
 
6037
6156
  /**
6038
6157
  * Response message for AssignPayer
@@ -6056,7 +6175,7 @@ export type AssignPayerResponse = Message<"blueapi.cover.v1.AssignPayerResponse"
6056
6175
  * Use `create(AssignPayerResponseSchema)` to create a new message.
6057
6176
  */
6058
6177
  export const AssignPayerResponseSchema: GenMessage<AssignPayerResponse> = /*@__PURE__*/
6059
- messageDesc(file_cover_v1_cover, 187);
6178
+ messageDesc(file_cover_v1_cover, 189);
6060
6179
 
6061
6180
  /**
6062
6181
  * Request message for GetPayers
@@ -6077,7 +6196,7 @@ export type GetPayersRequest = Message<"blueapi.cover.v1.GetPayersRequest"> & {
6077
6196
  * Use `create(GetPayersRequestSchema)` to create a new message.
6078
6197
  */
6079
6198
  export const GetPayersRequestSchema: GenMessage<GetPayersRequest> = /*@__PURE__*/
6080
- messageDesc(file_cover_v1_cover, 188);
6199
+ messageDesc(file_cover_v1_cover, 190);
6081
6200
 
6082
6201
  /**
6083
6202
  * Response message for GetPayers
@@ -6096,7 +6215,7 @@ export type GetPayersResponse = Message<"blueapi.cover.v1.GetPayersResponse"> &
6096
6215
  * Use `create(GetPayersResponseSchema)` to create a new message.
6097
6216
  */
6098
6217
  export const GetPayersResponseSchema: GenMessage<GetPayersResponse> = /*@__PURE__*/
6099
- messageDesc(file_cover_v1_cover, 189);
6218
+ messageDesc(file_cover_v1_cover, 191);
6100
6219
 
6101
6220
  /**
6102
6221
  * Request message for GetAccounts
@@ -6122,7 +6241,7 @@ export type GetAccountsRequest = Message<"blueapi.cover.v1.GetAccountsRequest">
6122
6241
  * Use `create(GetAccountsRequestSchema)` to create a new message.
6123
6242
  */
6124
6243
  export const GetAccountsRequestSchema: GenMessage<GetAccountsRequest> = /*@__PURE__*/
6125
- messageDesc(file_cover_v1_cover, 190);
6244
+ messageDesc(file_cover_v1_cover, 192);
6126
6245
 
6127
6246
  /**
6128
6247
  * Response message for GetAccounts
@@ -6141,7 +6260,7 @@ export type GetAccountsResponse = Message<"blueapi.cover.v1.GetAccountsResponse"
6141
6260
  * Use `create(GetAccountsResponseSchema)` to create a new message.
6142
6261
  */
6143
6262
  export const GetAccountsResponseSchema: GenMessage<GetAccountsResponse> = /*@__PURE__*/
6144
- messageDesc(file_cover_v1_cover, 191);
6263
+ messageDesc(file_cover_v1_cover, 193);
6145
6264
 
6146
6265
  /**
6147
6266
  * Request message for GetServices
@@ -6167,7 +6286,7 @@ export type GetServicesRequest = Message<"blueapi.cover.v1.GetServicesRequest">
6167
6286
  * Use `create(GetServicesRequestSchema)` to create a new message.
6168
6287
  */
6169
6288
  export const GetServicesRequestSchema: GenMessage<GetServicesRequest> = /*@__PURE__*/
6170
- messageDesc(file_cover_v1_cover, 192);
6289
+ messageDesc(file_cover_v1_cover, 194);
6171
6290
 
6172
6291
  /**
6173
6292
  * Response message for GetServices
@@ -6186,7 +6305,7 @@ export type GetServicesResponse = Message<"blueapi.cover.v1.GetServicesResponse"
6186
6305
  * Use `create(GetServicesResponseSchema)` to create a new message.
6187
6306
  */
6188
6307
  export const GetServicesResponseSchema: GenMessage<GetServicesResponse> = /*@__PURE__*/
6189
- messageDesc(file_cover_v1_cover, 193);
6308
+ messageDesc(file_cover_v1_cover, 195);
6190
6309
 
6191
6310
  /**
6192
6311
  * Request message for GetRegions
@@ -6212,7 +6331,7 @@ export type GetRegionsRequest = Message<"blueapi.cover.v1.GetRegionsRequest"> &
6212
6331
  * Use `create(GetRegionsRequestSchema)` to create a new message.
6213
6332
  */
6214
6333
  export const GetRegionsRequestSchema: GenMessage<GetRegionsRequest> = /*@__PURE__*/
6215
- messageDesc(file_cover_v1_cover, 194);
6334
+ messageDesc(file_cover_v1_cover, 196);
6216
6335
 
6217
6336
  /**
6218
6337
  * Response message for GetRegions
@@ -6231,7 +6350,7 @@ export type GetRegionsResponse = Message<"blueapi.cover.v1.GetRegionsResponse">
6231
6350
  * Use `create(GetRegionsResponseSchema)` to create a new message.
6232
6351
  */
6233
6352
  export const GetRegionsResponseSchema: GenMessage<GetRegionsResponse> = /*@__PURE__*/
6234
- messageDesc(file_cover_v1_cover, 195);
6353
+ messageDesc(file_cover_v1_cover, 197);
6235
6354
 
6236
6355
  /**
6237
6356
  * Request message for GetTags
@@ -6257,7 +6376,7 @@ export type GetTagsRequest = Message<"blueapi.cover.v1.GetTagsRequest"> & {
6257
6376
  * Use `create(GetTagsRequestSchema)` to create a new message.
6258
6377
  */
6259
6378
  export const GetTagsRequestSchema: GenMessage<GetTagsRequest> = /*@__PURE__*/
6260
- messageDesc(file_cover_v1_cover, 196);
6379
+ messageDesc(file_cover_v1_cover, 198);
6261
6380
 
6262
6381
  /**
6263
6382
  * Response message for GetTags
@@ -6276,7 +6395,7 @@ export type GetTagsResponse = Message<"blueapi.cover.v1.GetTagsResponse"> & {
6276
6395
  * Use `create(GetTagsResponseSchema)` to create a new message.
6277
6396
  */
6278
6397
  export const GetTagsResponseSchema: GenMessage<GetTagsResponse> = /*@__PURE__*/
6279
- messageDesc(file_cover_v1_cover, 197);
6398
+ messageDesc(file_cover_v1_cover, 199);
6280
6399
 
6281
6400
  /**
6282
6401
  * Request message for the ListFees rpc.
@@ -6295,7 +6414,7 @@ export type ListFeesRequest = Message<"blueapi.cover.v1.ListFeesRequest"> & {
6295
6414
  * Use `create(ListFeesRequestSchema)` to create a new message.
6296
6415
  */
6297
6416
  export const ListFeesRequestSchema: GenMessage<ListFeesRequest> = /*@__PURE__*/
6298
- messageDesc(file_cover_v1_cover, 198);
6417
+ messageDesc(file_cover_v1_cover, 200);
6299
6418
 
6300
6419
  /**
6301
6420
  * Response message for GetFeeDetails, CreateFeeReallocation rpc.
@@ -6404,7 +6523,7 @@ export type FeeDetails = Message<"blueapi.cover.v1.FeeDetails"> & {
6404
6523
  * Use `create(FeeDetailsSchema)` to create a new message.
6405
6524
  */
6406
6525
  export const FeeDetailsSchema: GenMessage<FeeDetails> = /*@__PURE__*/
6407
- messageDesc(file_cover_v1_cover, 199);
6526
+ messageDesc(file_cover_v1_cover, 201);
6408
6527
 
6409
6528
  /**
6410
6529
  * Request message for the RestoreFee rpc.
@@ -6425,7 +6544,7 @@ export type RestoreFeeRequest = Message<"blueapi.cover.v1.RestoreFeeRequest"> &
6425
6544
  * Use `create(RestoreFeeRequestSchema)` to create a new message.
6426
6545
  */
6427
6546
  export const RestoreFeeRequestSchema: GenMessage<RestoreFeeRequest> = /*@__PURE__*/
6428
- messageDesc(file_cover_v1_cover, 200);
6547
+ messageDesc(file_cover_v1_cover, 202);
6429
6548
 
6430
6549
  /**
6431
6550
  * Request message for the GetCostGroupFee rpc.
@@ -6456,7 +6575,7 @@ export type GetCostGroupFeeRequest = Message<"blueapi.cover.v1.GetCostGroupFeeRe
6456
6575
  * Use `create(GetCostGroupFeeRequestSchema)` to create a new message.
6457
6576
  */
6458
6577
  export const GetCostGroupFeeRequestSchema: GenMessage<GetCostGroupFeeRequest> = /*@__PURE__*/
6459
- messageDesc(file_cover_v1_cover, 201);
6578
+ messageDesc(file_cover_v1_cover, 203);
6460
6579
 
6461
6580
  /**
6462
6581
  * Response message wrapper for cost group fees.
@@ -6500,7 +6619,7 @@ export type FeeItem = Message<"blueapi.cover.v1.FeeItem"> & {
6500
6619
  * Use `create(FeeItemSchema)` to create a new message.
6501
6620
  */
6502
6621
  export const FeeItemSchema: GenMessage<FeeItem> = /*@__PURE__*/
6503
- messageDesc(file_cover_v1_cover, 202);
6622
+ messageDesc(file_cover_v1_cover, 204);
6504
6623
 
6505
6624
  /**
6506
6625
  * @generated from message blueapi.cover.v1.Allocator
@@ -6540,7 +6659,7 @@ export type Allocator = Message<"blueapi.cover.v1.Allocator"> & {
6540
6659
  * Use `create(AllocatorSchema)` to create a new message.
6541
6660
  */
6542
6661
  export const AllocatorSchema: GenMessage<Allocator> = /*@__PURE__*/
6543
- messageDesc(file_cover_v1_cover, 203);
6662
+ messageDesc(file_cover_v1_cover, 205);
6544
6663
 
6545
6664
  /**
6546
6665
  * 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.
@@ -6559,7 +6678,7 @@ export type Criteria = Message<"blueapi.cover.v1.Criteria"> & {
6559
6678
  * Use `create(CriteriaSchema)` to create a new message.
6560
6679
  */
6561
6680
  export const CriteriaSchema: GenMessage<Criteria> = /*@__PURE__*/
6562
- messageDesc(file_cover_v1_cover, 204);
6681
+ messageDesc(file_cover_v1_cover, 206);
6563
6682
 
6564
6683
  /**
6565
6684
  * @generated from message blueapi.cover.v1.CostAllocatorDetails
@@ -6632,7 +6751,7 @@ export type CostAllocatorDetails = Message<"blueapi.cover.v1.CostAllocatorDetail
6632
6751
  * Use `create(CostAllocatorDetailsSchema)` to create a new message.
6633
6752
  */
6634
6753
  export const CostAllocatorDetailsSchema: GenMessage<CostAllocatorDetails> = /*@__PURE__*/
6635
- messageDesc(file_cover_v1_cover, 205);
6754
+ messageDesc(file_cover_v1_cover, 207);
6636
6755
 
6637
6756
  /**
6638
6757
  * @generated from message blueapi.cover.v1.CostAllocatorRequest
@@ -6695,7 +6814,7 @@ export type CostAllocatorRequest = Message<"blueapi.cover.v1.CostAllocatorReques
6695
6814
  * Use `create(CostAllocatorRequestSchema)` to create a new message.
6696
6815
  */
6697
6816
  export const CostAllocatorRequestSchema: GenMessage<CostAllocatorRequest> = /*@__PURE__*/
6698
- messageDesc(file_cover_v1_cover, 206);
6817
+ messageDesc(file_cover_v1_cover, 208);
6699
6818
 
6700
6819
  /**
6701
6820
  * Request message for the ListAllocators rpc.
@@ -6710,7 +6829,7 @@ export type ListAllocatorsRequest = Message<"blueapi.cover.v1.ListAllocatorsRequ
6710
6829
  * Use `create(ListAllocatorsRequestSchema)` to create a new message.
6711
6830
  */
6712
6831
  export const ListAllocatorsRequestSchema: GenMessage<ListAllocatorsRequest> = /*@__PURE__*/
6713
- messageDesc(file_cover_v1_cover, 207);
6832
+ messageDesc(file_cover_v1_cover, 209);
6714
6833
 
6715
6834
  /**
6716
6835
  * Request message for the CreateAllocator rpc.
@@ -6772,7 +6891,7 @@ export type CreateAllocatorRequest = Message<"blueapi.cover.v1.CreateAllocatorRe
6772
6891
  * Use `create(CreateAllocatorRequestSchema)` to create a new message.
6773
6892
  */
6774
6893
  export const CreateAllocatorRequestSchema: GenMessage<CreateAllocatorRequest> = /*@__PURE__*/
6775
- messageDesc(file_cover_v1_cover, 208);
6894
+ messageDesc(file_cover_v1_cover, 210);
6776
6895
 
6777
6896
  /**
6778
6897
  * Request message for the GetAllocationAttributes rpc.
@@ -6791,7 +6910,7 @@ export type GetAllocationAttributesRequest = Message<"blueapi.cover.v1.GetAlloca
6791
6910
  * Use `create(GetAllocationAttributesRequestSchema)` to create a new message.
6792
6911
  */
6793
6912
  export const GetAllocationAttributesRequestSchema: GenMessage<GetAllocationAttributesRequest> = /*@__PURE__*/
6794
- messageDesc(file_cover_v1_cover, 209);
6913
+ messageDesc(file_cover_v1_cover, 211);
6795
6914
 
6796
6915
  /**
6797
6916
  * Response message for the GetAllocationAttributes rpc.
@@ -6810,7 +6929,7 @@ export type GetAllocationAttributesResponse = Message<"blueapi.cover.v1.GetAlloc
6810
6929
  * Use `create(GetAllocationAttributesResponseSchema)` to create a new message.
6811
6930
  */
6812
6931
  export const GetAllocationAttributesResponseSchema: GenMessage<GetAllocationAttributesResponse> = /*@__PURE__*/
6813
- messageDesc(file_cover_v1_cover, 210);
6932
+ messageDesc(file_cover_v1_cover, 212);
6814
6933
 
6815
6934
  /**
6816
6935
  * @generated from message blueapi.cover.v1.GetAllocationAttributesResponse.AllocationAttribute
@@ -6832,7 +6951,7 @@ export type GetAllocationAttributesResponse_AllocationAttribute = Message<"bluea
6832
6951
  * Use `create(GetAllocationAttributesResponse_AllocationAttributeSchema)` to create a new message.
6833
6952
  */
6834
6953
  export const GetAllocationAttributesResponse_AllocationAttributeSchema: GenMessage<GetAllocationAttributesResponse_AllocationAttribute> = /*@__PURE__*/
6835
- messageDesc(file_cover_v1_cover, 210, 0);
6954
+ messageDesc(file_cover_v1_cover, 212, 0);
6836
6955
 
6837
6956
  /**
6838
6957
  * Request message for the GetAllocationSources rpc.
@@ -6856,7 +6975,7 @@ export type GetAllocationSourcesRequest = Message<"blueapi.cover.v1.GetAllocatio
6856
6975
  * Use `create(GetAllocationSourcesRequestSchema)` to create a new message.
6857
6976
  */
6858
6977
  export const GetAllocationSourcesRequestSchema: GenMessage<GetAllocationSourcesRequest> = /*@__PURE__*/
6859
- messageDesc(file_cover_v1_cover, 211);
6978
+ messageDesc(file_cover_v1_cover, 213);
6860
6979
 
6861
6980
  /**
6862
6981
  * Response message for the GetAllocationSources rpc.
@@ -6880,7 +6999,7 @@ export type GetAllocationSourcesResponse = Message<"blueapi.cover.v1.GetAllocati
6880
6999
  * Use `create(GetAllocationSourcesResponseSchema)` to create a new message.
6881
7000
  */
6882
7001
  export const GetAllocationSourcesResponseSchema: GenMessage<GetAllocationSourcesResponse> = /*@__PURE__*/
6883
- messageDesc(file_cover_v1_cover, 212);
7002
+ messageDesc(file_cover_v1_cover, 214);
6884
7003
 
6885
7004
  /**
6886
7005
  * @generated from message blueapi.cover.v1.GetAllocationSourcesResponse.AllocationSources
@@ -6907,7 +7026,7 @@ export type GetAllocationSourcesResponse_AllocationSources = Message<"blueapi.co
6907
7026
  * Use `create(GetAllocationSourcesResponse_AllocationSourcesSchema)` to create a new message.
6908
7027
  */
6909
7028
  export const GetAllocationSourcesResponse_AllocationSourcesSchema: GenMessage<GetAllocationSourcesResponse_AllocationSources> = /*@__PURE__*/
6910
- messageDesc(file_cover_v1_cover, 212, 0);
7029
+ messageDesc(file_cover_v1_cover, 214, 0);
6911
7030
 
6912
7031
  /**
6913
7032
  * Request message for the DeleteAllocator rpc.
@@ -6928,7 +7047,7 @@ export type DeleteAllocatorRequest = Message<"blueapi.cover.v1.DeleteAllocatorRe
6928
7047
  * Use `create(DeleteAllocatorRequestSchema)` to create a new message.
6929
7048
  */
6930
7049
  export const DeleteAllocatorRequestSchema: GenMessage<DeleteAllocatorRequest> = /*@__PURE__*/
6931
- messageDesc(file_cover_v1_cover, 213);
7050
+ messageDesc(file_cover_v1_cover, 215);
6932
7051
 
6933
7052
  /**
6934
7053
  * Request message for the ProxyCreateCompletion rpc.
@@ -6947,7 +7066,7 @@ export type ProxyCreateCompletionRequest = Message<"blueapi.cover.v1.ProxyCreate
6947
7066
  * Use `create(ProxyCreateCompletionRequestSchema)` to create a new message.
6948
7067
  */
6949
7068
  export const ProxyCreateCompletionRequestSchema: GenMessage<ProxyCreateCompletionRequest> = /*@__PURE__*/
6950
- messageDesc(file_cover_v1_cover, 214);
7069
+ messageDesc(file_cover_v1_cover, 216);
6951
7070
 
6952
7071
  /**
6953
7072
  * Response message for the ProxyCreateCompletion rpc.
@@ -6966,7 +7085,7 @@ export type ProxyCreateCompletionResponse = Message<"blueapi.cover.v1.ProxyCreat
6966
7085
  * Use `create(ProxyCreateCompletionResponseSchema)` to create a new message.
6967
7086
  */
6968
7087
  export const ProxyCreateCompletionResponseSchema: GenMessage<ProxyCreateCompletionResponse> = /*@__PURE__*/
6969
- messageDesc(file_cover_v1_cover, 215);
7088
+ messageDesc(file_cover_v1_cover, 217);
6970
7089
 
6971
7090
  /**
6972
7091
  * Response message for SimulateAccountCostAllocator rpc.
@@ -7125,7 +7244,7 @@ export type AccountUsageDetails = Message<"blueapi.cover.v1.AccountUsageDetails"
7125
7244
  * Use `create(AccountUsageDetailsSchema)` to create a new message.
7126
7245
  */
7127
7246
  export const AccountUsageDetailsSchema: GenMessage<AccountUsageDetails> = /*@__PURE__*/
7128
- messageDesc(file_cover_v1_cover, 216);
7247
+ messageDesc(file_cover_v1_cover, 218);
7129
7248
 
7130
7249
  /**
7131
7250
  * Request message for the RestoreAccountUsage rpc.
@@ -7149,7 +7268,7 @@ export type ListAccountUsageRequest = Message<"blueapi.cover.v1.ListAccountUsage
7149
7268
  * Use `create(ListAccountUsageRequestSchema)` to create a new message.
7150
7269
  */
7151
7270
  export const ListAccountUsageRequestSchema: GenMessage<ListAccountUsageRequest> = /*@__PURE__*/
7152
- messageDesc(file_cover_v1_cover, 217);
7271
+ messageDesc(file_cover_v1_cover, 219);
7153
7272
 
7154
7273
  /**
7155
7274
  * Request message for the RestoreAccountUsage rpc.
@@ -7170,7 +7289,7 @@ export type RestoreAccountUsageRequest = Message<"blueapi.cover.v1.RestoreAccoun
7170
7289
  * Use `create(RestoreAccountUsageRequestSchema)` to create a new message.
7171
7290
  */
7172
7291
  export const RestoreAccountUsageRequestSchema: GenMessage<RestoreAccountUsageRequest> = /*@__PURE__*/
7173
- messageDesc(file_cover_v1_cover, 218);
7292
+ messageDesc(file_cover_v1_cover, 220);
7174
7293
 
7175
7294
  /**
7176
7295
  * Request message for the RestoreSavings rpc.
@@ -7191,7 +7310,7 @@ export type RestoreSavingsRequest = Message<"blueapi.cover.v1.RestoreSavingsRequ
7191
7310
  * Use `create(RestoreSavingsRequestSchema)` to create a new message.
7192
7311
  */
7193
7312
  export const RestoreSavingsRequestSchema: GenMessage<RestoreSavingsRequest> = /*@__PURE__*/
7194
- messageDesc(file_cover_v1_cover, 219);
7313
+ messageDesc(file_cover_v1_cover, 221);
7195
7314
 
7196
7315
  /**
7197
7316
  * Response message for ListSavings, RestoreSavings, SimulateSavings rpc.
@@ -7290,7 +7409,7 @@ export type SavingsDetails = Message<"blueapi.cover.v1.SavingsDetails"> & {
7290
7409
  * Use `create(SavingsDetailsSchema)` to create a new message.
7291
7410
  */
7292
7411
  export const SavingsDetailsSchema: GenMessage<SavingsDetails> = /*@__PURE__*/
7293
- messageDesc(file_cover_v1_cover, 220);
7412
+ messageDesc(file_cover_v1_cover, 222);
7294
7413
 
7295
7414
  /**
7296
7415
  * Request message for the GetCostGroupAllocation rpc.
@@ -7328,7 +7447,7 @@ export type GetCostGroupAllocationRequest = Message<"blueapi.cover.v1.GetCostGro
7328
7447
  * Use `create(GetCostGroupAllocationRequestSchema)` to create a new message.
7329
7448
  */
7330
7449
  export const GetCostGroupAllocationRequestSchema: GenMessage<GetCostGroupAllocationRequest> = /*@__PURE__*/
7331
- messageDesc(file_cover_v1_cover, 221);
7450
+ messageDesc(file_cover_v1_cover, 223);
7332
7451
 
7333
7452
  /**
7334
7453
  * Response message wrapper for cost group allocations.
@@ -7377,7 +7496,7 @@ export type AllocationItem = Message<"blueapi.cover.v1.AllocationItem"> & {
7377
7496
  * Use `create(AllocationItemSchema)` to create a new message.
7378
7497
  */
7379
7498
  export const AllocationItemSchema: GenMessage<AllocationItem> = /*@__PURE__*/
7380
- messageDesc(file_cover_v1_cover, 222);
7499
+ messageDesc(file_cover_v1_cover, 224);
7381
7500
 
7382
7501
  /**
7383
7502
  * Request message for AddUserFromAuth0asRoot rpc
@@ -7411,7 +7530,7 @@ export type ProcessAuth0UserRequest = Message<"blueapi.cover.v1.ProcessAuth0User
7411
7530
  * Use `create(ProcessAuth0UserRequestSchema)` to create a new message.
7412
7531
  */
7413
7532
  export const ProcessAuth0UserRequestSchema: GenMessage<ProcessAuth0UserRequest> = /*@__PURE__*/
7414
- messageDesc(file_cover_v1_cover, 223);
7533
+ messageDesc(file_cover_v1_cover, 225);
7415
7534
 
7416
7535
  /**
7417
7536
  * Response message wrapper for adding user from Auth0 as root
@@ -7430,7 +7549,7 @@ export type ProcessAuth0UserResponse = Message<"blueapi.cover.v1.ProcessAuth0Use
7430
7549
  * Use `create(ProcessAuth0UserResponseSchema)` to create a new message.
7431
7550
  */
7432
7551
  export const ProcessAuth0UserResponseSchema: GenMessage<ProcessAuth0UserResponse> = /*@__PURE__*/
7433
- messageDesc(file_cover_v1_cover, 224);
7552
+ messageDesc(file_cover_v1_cover, 226);
7434
7553
 
7435
7554
  /**
7436
7555
  * Message Response for GetDataAccess. For Azure and GCP
@@ -7503,7 +7622,7 @@ export type DataAccess = Message<"blueapi.cover.v1.DataAccess"> & {
7503
7622
  * Use `create(DataAccessSchema)` to create a new message.
7504
7623
  */
7505
7624
  export const DataAccessSchema: GenMessage<DataAccess> = /*@__PURE__*/
7506
- messageDesc(file_cover_v1_cover, 225);
7625
+ messageDesc(file_cover_v1_cover, 227);
7507
7626
 
7508
7627
  /**
7509
7628
  * Request message for Register Data Access. For azure and gcp.
@@ -7559,7 +7678,7 @@ export type RegisterDataAccessRequest = Message<"blueapi.cover.v1.RegisterDataAc
7559
7678
  * Use `create(RegisterDataAccessRequestSchema)` to create a new message.
7560
7679
  */
7561
7680
  export const RegisterDataAccessRequestSchema: GenMessage<RegisterDataAccessRequest> = /*@__PURE__*/
7562
- messageDesc(file_cover_v1_cover, 226);
7681
+ messageDesc(file_cover_v1_cover, 228);
7563
7682
 
7564
7683
  /**
7565
7684
  * Request message for UpdateDataAccess (GCP/Azure)
@@ -7615,7 +7734,7 @@ export type UpdateDataAccessRequest = Message<"blueapi.cover.v1.UpdateDataAccess
7615
7734
  * Use `create(UpdateDataAccessRequestSchema)` to create a new message.
7616
7735
  */
7617
7736
  export const UpdateDataAccessRequestSchema: GenMessage<UpdateDataAccessRequest> = /*@__PURE__*/
7618
- messageDesc(file_cover_v1_cover, 227);
7737
+ messageDesc(file_cover_v1_cover, 229);
7619
7738
 
7620
7739
  /**
7621
7740
  * Request message for ListDataAccess
@@ -7630,7 +7749,7 @@ export type ListDataAccessRequest = Message<"blueapi.cover.v1.ListDataAccessRequ
7630
7749
  * Use `create(ListDataAccessRequestSchema)` to create a new message.
7631
7750
  */
7632
7751
  export const ListDataAccessRequestSchema: GenMessage<ListDataAccessRequest> = /*@__PURE__*/
7633
- messageDesc(file_cover_v1_cover, 228);
7752
+ messageDesc(file_cover_v1_cover, 230);
7634
7753
 
7635
7754
  /**
7636
7755
  * Request message for ListUnregisteredAccounts
@@ -7645,7 +7764,7 @@ export type ListUnregisteredAccountsRequest = Message<"blueapi.cover.v1.ListUnre
7645
7764
  * Use `create(ListUnregisteredAccountsRequestSchema)` to create a new message.
7646
7765
  */
7647
7766
  export const ListUnregisteredAccountsRequestSchema: GenMessage<ListUnregisteredAccountsRequest> = /*@__PURE__*/
7648
- messageDesc(file_cover_v1_cover, 229);
7767
+ messageDesc(file_cover_v1_cover, 231);
7649
7768
 
7650
7769
  /**
7651
7770
  * Response message for ListUnregisteredAccounts
@@ -7669,7 +7788,7 @@ export type ListUnregisteredAccountsResponse = Message<"blueapi.cover.v1.ListUnr
7669
7788
  * Use `create(ListUnregisteredAccountsResponseSchema)` to create a new message.
7670
7789
  */
7671
7790
  export const ListUnregisteredAccountsResponseSchema: GenMessage<ListUnregisteredAccountsResponse> = /*@__PURE__*/
7672
- messageDesc(file_cover_v1_cover, 230);
7791
+ messageDesc(file_cover_v1_cover, 232);
7673
7792
 
7674
7793
  /**
7675
7794
  * @generated from message blueapi.cover.v1.UnregisteredAccts
@@ -7703,7 +7822,7 @@ export type UnregisteredAccts = Message<"blueapi.cover.v1.UnregisteredAccts"> &
7703
7822
  * Use `create(UnregisteredAcctsSchema)` to create a new message.
7704
7823
  */
7705
7824
  export const UnregisteredAcctsSchema: GenMessage<UnregisteredAccts> = /*@__PURE__*/
7706
- messageDesc(file_cover_v1_cover, 231);
7825
+ messageDesc(file_cover_v1_cover, 233);
7707
7826
 
7708
7827
  /**
7709
7828
  * Request message for AddBillingAccount
@@ -7752,7 +7871,7 @@ export type BillingAccountRequest = Message<"blueapi.cover.v1.BillingAccountRequ
7752
7871
  * Use `create(BillingAccountRequestSchema)` to create a new message.
7753
7872
  */
7754
7873
  export const BillingAccountRequestSchema: GenMessage<BillingAccountRequest> = /*@__PURE__*/
7755
- messageDesc(file_cover_v1_cover, 232);
7874
+ messageDesc(file_cover_v1_cover, 234);
7756
7875
 
7757
7876
  /**
7758
7877
  * @generated from message blueapi.cover.v1.GetAndDeleteDataAccessRequest
@@ -7785,7 +7904,7 @@ export type GetAndDeleteDataAccessRequest = Message<"blueapi.cover.v1.GetAndDele
7785
7904
  * Use `create(GetAndDeleteDataAccessRequestSchema)` to create a new message.
7786
7905
  */
7787
7906
  export const GetAndDeleteDataAccessRequestSchema: GenMessage<GetAndDeleteDataAccessRequest> = /*@__PURE__*/
7788
- messageDesc(file_cover_v1_cover, 233);
7907
+ messageDesc(file_cover_v1_cover, 235);
7789
7908
 
7790
7909
  /**
7791
7910
  * Request message for AddPartnerCenterCredentials
@@ -7820,7 +7939,7 @@ export type AddPartnerCenterCredentialsRequest = Message<"blueapi.cover.v1.AddPa
7820
7939
  * Use `create(AddPartnerCenterCredentialsRequestSchema)` to create a new message.
7821
7940
  */
7822
7941
  export const AddPartnerCenterCredentialsRequestSchema: GenMessage<AddPartnerCenterCredentialsRequest> = /*@__PURE__*/
7823
- messageDesc(file_cover_v1_cover, 234);
7942
+ messageDesc(file_cover_v1_cover, 236);
7824
7943
 
7825
7944
  /**
7826
7945
  * Request message for AddMpnSetting
@@ -7841,7 +7960,7 @@ export type AddMpnSettingRequest = Message<"blueapi.cover.v1.AddMpnSettingReques
7841
7960
  * Use `create(AddMpnSettingRequestSchema)` to create a new message.
7842
7961
  */
7843
7962
  export const AddMpnSettingRequestSchema: GenMessage<AddMpnSettingRequest> = /*@__PURE__*/
7844
- messageDesc(file_cover_v1_cover, 235);
7963
+ messageDesc(file_cover_v1_cover, 237);
7845
7964
 
7846
7965
  /**
7847
7966
  * Request message for GetCostGroupAttribute
@@ -7887,7 +8006,7 @@ export type GetCostGroupAttributeRequest = Message<"blueapi.cover.v1.GetCostGrou
7887
8006
  * Use `create(GetCostGroupAttributeRequestSchema)` to create a new message.
7888
8007
  */
7889
8008
  export const GetCostGroupAttributeRequestSchema: GenMessage<GetCostGroupAttributeRequest> = /*@__PURE__*/
7890
- messageDesc(file_cover_v1_cover, 236);
8009
+ messageDesc(file_cover_v1_cover, 238);
7891
8010
 
7892
8011
  /**
7893
8012
  * Response message for GetCostGroupAttribute
@@ -7911,7 +8030,7 @@ export type GetCostGroupAttributeResponse = Message<"blueapi.cover.v1.GetCostGro
7911
8030
  * Use `create(GetCostGroupAttributeResponseSchema)` to create a new message.
7912
8031
  */
7913
8032
  export const GetCostGroupAttributeResponseSchema: GenMessage<GetCostGroupAttributeResponse> = /*@__PURE__*/
7914
- messageDesc(file_cover_v1_cover, 237);
8033
+ messageDesc(file_cover_v1_cover, 239);
7915
8034
 
7916
8035
  /**
7917
8036
  * @generated from message blueapi.cover.v1.GetCategoriesRequest
@@ -7928,7 +8047,7 @@ export type GetCategoriesRequest = Message<"blueapi.cover.v1.GetCategoriesReques
7928
8047
  * Use `create(GetCategoriesRequestSchema)` to create a new message.
7929
8048
  */
7930
8049
  export const GetCategoriesRequestSchema: GenMessage<GetCategoriesRequest> = /*@__PURE__*/
7931
- messageDesc(file_cover_v1_cover, 238);
8050
+ messageDesc(file_cover_v1_cover, 240);
7932
8051
 
7933
8052
  /**
7934
8053
  * @generated from message blueapi.cover.v1.GetCategoriesResponse
@@ -7945,7 +8064,7 @@ export type GetCategoriesResponse = Message<"blueapi.cover.v1.GetCategoriesRespo
7945
8064
  * Use `create(GetCategoriesResponseSchema)` to create a new message.
7946
8065
  */
7947
8066
  export const GetCategoriesResponseSchema: GenMessage<GetCategoriesResponse> = /*@__PURE__*/
7948
- messageDesc(file_cover_v1_cover, 239);
8067
+ messageDesc(file_cover_v1_cover, 241);
7949
8068
 
7950
8069
  /**
7951
8070
  * Request message for GetAlerts
@@ -7960,7 +8079,7 @@ export type GetAlertsRequest = Message<"blueapi.cover.v1.GetAlertsRequest"> & {
7960
8079
  * Use `create(GetAlertsRequestSchema)` to create a new message.
7961
8080
  */
7962
8081
  export const GetAlertsRequestSchema: GenMessage<GetAlertsRequest> = /*@__PURE__*/
7963
- messageDesc(file_cover_v1_cover, 240);
8082
+ messageDesc(file_cover_v1_cover, 242);
7964
8083
 
7965
8084
  /**
7966
8085
  * Response message for GetAlerts
@@ -7979,7 +8098,7 @@ export type GetAlertsResponse = Message<"blueapi.cover.v1.GetAlertsResponse"> &
7979
8098
  * Use `create(GetAlertsResponseSchema)` to create a new message.
7980
8099
  */
7981
8100
  export const GetAlertsResponseSchema: GenMessage<GetAlertsResponse> = /*@__PURE__*/
7982
- messageDesc(file_cover_v1_cover, 241);
8101
+ messageDesc(file_cover_v1_cover, 243);
7983
8102
 
7984
8103
  /**
7985
8104
  * Request message for CreateAlert
@@ -8033,7 +8152,7 @@ export type CreateAlertRequest = Message<"blueapi.cover.v1.CreateAlertRequest">
8033
8152
  * Use `create(CreateAlertRequestSchema)` to create a new message.
8034
8153
  */
8035
8154
  export const CreateAlertRequestSchema: GenMessage<CreateAlertRequest> = /*@__PURE__*/
8036
- messageDesc(file_cover_v1_cover, 242);
8155
+ messageDesc(file_cover_v1_cover, 244);
8037
8156
 
8038
8157
  /**
8039
8158
  * Response message for CreateAlert
@@ -8052,7 +8171,7 @@ export type CreateAlertResponse = Message<"blueapi.cover.v1.CreateAlertResponse"
8052
8171
  * Use `create(CreateAlertResponseSchema)` to create a new message.
8053
8172
  */
8054
8173
  export const CreateAlertResponseSchema: GenMessage<CreateAlertResponse> = /*@__PURE__*/
8055
- messageDesc(file_cover_v1_cover, 243);
8174
+ messageDesc(file_cover_v1_cover, 245);
8056
8175
 
8057
8176
  /**
8058
8177
  * Request message for GetAlertDetails
@@ -8073,7 +8192,7 @@ export type GetAlertDetailsRequest = Message<"blueapi.cover.v1.GetAlertDetailsRe
8073
8192
  * Use `create(GetAlertDetailsRequestSchema)` to create a new message.
8074
8193
  */
8075
8194
  export const GetAlertDetailsRequestSchema: GenMessage<GetAlertDetailsRequest> = /*@__PURE__*/
8076
- messageDesc(file_cover_v1_cover, 244);
8195
+ messageDesc(file_cover_v1_cover, 246);
8077
8196
 
8078
8197
  /**
8079
8198
  * Response message for GetAlertDetails
@@ -8092,7 +8211,7 @@ export type GetAlertDetailsResponse = Message<"blueapi.cover.v1.GetAlertDetailsR
8092
8211
  * Use `create(GetAlertDetailsResponseSchema)` to create a new message.
8093
8212
  */
8094
8213
  export const GetAlertDetailsResponseSchema: GenMessage<GetAlertDetailsResponse> = /*@__PURE__*/
8095
- messageDesc(file_cover_v1_cover, 245);
8214
+ messageDesc(file_cover_v1_cover, 247);
8096
8215
 
8097
8216
  /**
8098
8217
  * Request message for DeleteAlert
@@ -8113,7 +8232,7 @@ export type DeleteAlertRequest = Message<"blueapi.cover.v1.DeleteAlertRequest">
8113
8232
  * Use `create(DeleteAlertRequestSchema)` to create a new message.
8114
8233
  */
8115
8234
  export const DeleteAlertRequestSchema: GenMessage<DeleteAlertRequest> = /*@__PURE__*/
8116
- messageDesc(file_cover_v1_cover, 246);
8235
+ messageDesc(file_cover_v1_cover, 248);
8117
8236
 
8118
8237
  /**
8119
8238
  * Response message for DeleteAlert
@@ -8132,7 +8251,7 @@ export type DeleteAlertResponse = Message<"blueapi.cover.v1.DeleteAlertResponse"
8132
8251
  * Use `create(DeleteAlertResponseSchema)` to create a new message.
8133
8252
  */
8134
8253
  export const DeleteAlertResponseSchema: GenMessage<DeleteAlertResponse> = /*@__PURE__*/
8135
- messageDesc(file_cover_v1_cover, 247);
8254
+ messageDesc(file_cover_v1_cover, 249);
8136
8255
 
8137
8256
  /**
8138
8257
  * Request message for UpdateAlertDetails
@@ -8194,7 +8313,7 @@ export type UpdateAlertDetailsRequest = Message<"blueapi.cover.v1.UpdateAlertDet
8194
8313
  * Use `create(UpdateAlertDetailsRequestSchema)` to create a new message.
8195
8314
  */
8196
8315
  export const UpdateAlertDetailsRequestSchema: GenMessage<UpdateAlertDetailsRequest> = /*@__PURE__*/
8197
- messageDesc(file_cover_v1_cover, 248);
8316
+ messageDesc(file_cover_v1_cover, 250);
8198
8317
 
8199
8318
  /**
8200
8319
  * Response message for UpdateAlertDetails
@@ -8213,7 +8332,7 @@ export type UpdateAlertDetailsResponse = Message<"blueapi.cover.v1.UpdateAlertDe
8213
8332
  * Use `create(UpdateAlertDetailsResponseSchema)` to create a new message.
8214
8333
  */
8215
8334
  export const UpdateAlertDetailsResponseSchema: GenMessage<UpdateAlertDetailsResponse> = /*@__PURE__*/
8216
- messageDesc(file_cover_v1_cover, 249);
8335
+ messageDesc(file_cover_v1_cover, 251);
8217
8336
 
8218
8337
  /**
8219
8338
  * Request message for GetChannels
@@ -8235,7 +8354,7 @@ export type GetChannelsRequest = Message<"blueapi.cover.v1.GetChannelsRequest">
8235
8354
  * Use `create(GetChannelsRequestSchema)` to create a new message.
8236
8355
  */
8237
8356
  export const GetChannelsRequestSchema: GenMessage<GetChannelsRequest> = /*@__PURE__*/
8238
- messageDesc(file_cover_v1_cover, 250);
8357
+ messageDesc(file_cover_v1_cover, 252);
8239
8358
 
8240
8359
  /**
8241
8360
  * Response message for GetChannels
@@ -8254,7 +8373,7 @@ export type GetChannelsResponse = Message<"blueapi.cover.v1.GetChannelsResponse"
8254
8373
  * Use `create(GetChannelsResponseSchema)` to create a new message.
8255
8374
  */
8256
8375
  export const GetChannelsResponseSchema: GenMessage<GetChannelsResponse> = /*@__PURE__*/
8257
- messageDesc(file_cover_v1_cover, 251);
8376
+ messageDesc(file_cover_v1_cover, 253);
8258
8377
 
8259
8378
  /**
8260
8379
  * Request message for CreateChannel
@@ -8289,7 +8408,7 @@ export type CreateChannelRequest = Message<"blueapi.cover.v1.CreateChannelReques
8289
8408
  * Use `create(CreateChannelRequestSchema)` to create a new message.
8290
8409
  */
8291
8410
  export const CreateChannelRequestSchema: GenMessage<CreateChannelRequest> = /*@__PURE__*/
8292
- messageDesc(file_cover_v1_cover, 252);
8411
+ messageDesc(file_cover_v1_cover, 254);
8293
8412
 
8294
8413
  /**
8295
8414
  * Response message for CreateChannel
@@ -8308,7 +8427,7 @@ export type CreateChannelResponse = Message<"blueapi.cover.v1.CreateChannelRespo
8308
8427
  * Use `create(CreateChannelResponseSchema)` to create a new message.
8309
8428
  */
8310
8429
  export const CreateChannelResponseSchema: GenMessage<CreateChannelResponse> = /*@__PURE__*/
8311
- messageDesc(file_cover_v1_cover, 253);
8430
+ messageDesc(file_cover_v1_cover, 255);
8312
8431
 
8313
8432
  /**
8314
8433
  * Request message for GetChannelDetails
@@ -8329,7 +8448,7 @@ export type GetChannelDetailsRequest = Message<"blueapi.cover.v1.GetChannelDetai
8329
8448
  * Use `create(GetChannelDetailsRequestSchema)` to create a new message.
8330
8449
  */
8331
8450
  export const GetChannelDetailsRequestSchema: GenMessage<GetChannelDetailsRequest> = /*@__PURE__*/
8332
- messageDesc(file_cover_v1_cover, 254);
8451
+ messageDesc(file_cover_v1_cover, 256);
8333
8452
 
8334
8453
  /**
8335
8454
  * Response message for GetChannelDetails
@@ -8348,7 +8467,7 @@ export type GetChannelDetailsResponse = Message<"blueapi.cover.v1.GetChannelDeta
8348
8467
  * Use `create(GetChannelDetailsResponseSchema)` to create a new message.
8349
8468
  */
8350
8469
  export const GetChannelDetailsResponseSchema: GenMessage<GetChannelDetailsResponse> = /*@__PURE__*/
8351
- messageDesc(file_cover_v1_cover, 255);
8470
+ messageDesc(file_cover_v1_cover, 257);
8352
8471
 
8353
8472
  /**
8354
8473
  * Request message for DeleteChannel
@@ -8369,7 +8488,7 @@ export type DeleteChannelRequest = Message<"blueapi.cover.v1.DeleteChannelReques
8369
8488
  * Use `create(DeleteChannelRequestSchema)` to create a new message.
8370
8489
  */
8371
8490
  export const DeleteChannelRequestSchema: GenMessage<DeleteChannelRequest> = /*@__PURE__*/
8372
- messageDesc(file_cover_v1_cover, 256);
8491
+ messageDesc(file_cover_v1_cover, 258);
8373
8492
 
8374
8493
  /**
8375
8494
  * Response message for DeleteChannel
@@ -8388,7 +8507,7 @@ export type DeleteChannelResponse = Message<"blueapi.cover.v1.DeleteChannelRespo
8388
8507
  * Use `create(DeleteChannelResponseSchema)` to create a new message.
8389
8508
  */
8390
8509
  export const DeleteChannelResponseSchema: GenMessage<DeleteChannelResponse> = /*@__PURE__*/
8391
- messageDesc(file_cover_v1_cover, 257);
8510
+ messageDesc(file_cover_v1_cover, 259);
8392
8511
 
8393
8512
  /**
8394
8513
  * Request message for UpdateChannelDetails
@@ -8431,7 +8550,7 @@ export type UpdateChannelDetailsRequest = Message<"blueapi.cover.v1.UpdateChanne
8431
8550
  * Use `create(UpdateChannelDetailsRequestSchema)` to create a new message.
8432
8551
  */
8433
8552
  export const UpdateChannelDetailsRequestSchema: GenMessage<UpdateChannelDetailsRequest> = /*@__PURE__*/
8434
- messageDesc(file_cover_v1_cover, 258);
8553
+ messageDesc(file_cover_v1_cover, 260);
8435
8554
 
8436
8555
  /**
8437
8556
  * Response message for UpdateChannelDetails
@@ -8450,7 +8569,7 @@ export type UpdateChannelDetailsResponse = Message<"blueapi.cover.v1.UpdateChann
8450
8569
  * Use `create(UpdateChannelDetailsResponseSchema)` to create a new message.
8451
8570
  */
8452
8571
  export const UpdateChannelDetailsResponseSchema: GenMessage<UpdateChannelDetailsResponse> = /*@__PURE__*/
8453
- messageDesc(file_cover_v1_cover, 259);
8572
+ messageDesc(file_cover_v1_cover, 261);
8454
8573
 
8455
8574
  /**
8456
8575
  * Request message for GetDiscountRecomemendations
@@ -8492,7 +8611,7 @@ export type GetDiscountRecommendationsRequest = Message<"blueapi.cover.v1.GetDis
8492
8611
  * Use `create(GetDiscountRecommendationsRequestSchema)` to create a new message.
8493
8612
  */
8494
8613
  export const GetDiscountRecommendationsRequestSchema: GenMessage<GetDiscountRecommendationsRequest> = /*@__PURE__*/
8495
- messageDesc(file_cover_v1_cover, 260);
8614
+ messageDesc(file_cover_v1_cover, 262);
8496
8615
 
8497
8616
  /**
8498
8617
  * Response message for GetDiscountRecommendations
@@ -8521,7 +8640,7 @@ export type GetDiscountRecommendationsResponse = Message<"blueapi.cover.v1.GetDi
8521
8640
  * Use `create(GetDiscountRecommendationsResponseSchema)` to create a new message.
8522
8641
  */
8523
8642
  export const GetDiscountRecommendationsResponseSchema: GenMessage<GetDiscountRecommendationsResponse> = /*@__PURE__*/
8524
- messageDesc(file_cover_v1_cover, 261);
8643
+ messageDesc(file_cover_v1_cover, 263);
8525
8644
 
8526
8645
  /**
8527
8646
  * Request message for getting anomaly
@@ -8554,7 +8673,7 @@ export type GetAnomalyinCostGroupRequest = Message<"blueapi.cover.v1.GetAnomalyi
8554
8673
  * Use `create(GetAnomalyinCostGroupRequestSchema)` to create a new message.
8555
8674
  */
8556
8675
  export const GetAnomalyinCostGroupRequestSchema: GenMessage<GetAnomalyinCostGroupRequest> = /*@__PURE__*/
8557
- messageDesc(file_cover_v1_cover, 262);
8676
+ messageDesc(file_cover_v1_cover, 264);
8558
8677
 
8559
8678
  /**
8560
8679
  * Message response for anomaly detection
@@ -8633,7 +8752,7 @@ export type AnomalyData = Message<"blueapi.cover.v1.AnomalyData"> & {
8633
8752
  * Use `create(AnomalyDataSchema)` to create a new message.
8634
8753
  */
8635
8754
  export const AnomalyDataSchema: GenMessage<AnomalyData> = /*@__PURE__*/
8636
- messageDesc(file_cover_v1_cover, 263);
8755
+ messageDesc(file_cover_v1_cover, 265);
8637
8756
 
8638
8757
  /**
8639
8758
  * Request message for CreateDiscountExpirationAlert
@@ -8684,7 +8803,7 @@ export type CreateDiscountExpirationAlertRequest = Message<"blueapi.cover.v1.Cre
8684
8803
  * Use `create(CreateDiscountExpirationAlertRequestSchema)` to create a new message.
8685
8804
  */
8686
8805
  export const CreateDiscountExpirationAlertRequestSchema: GenMessage<CreateDiscountExpirationAlertRequest> = /*@__PURE__*/
8687
- messageDesc(file_cover_v1_cover, 264);
8806
+ messageDesc(file_cover_v1_cover, 266);
8688
8807
 
8689
8808
  /**
8690
8809
  * @generated from message blueapi.cover.v1.ManipulateDiscountExpirationAlertRequest
@@ -8703,7 +8822,7 @@ export type ManipulateDiscountExpirationAlertRequest = Message<"blueapi.cover.v1
8703
8822
  * Use `create(ManipulateDiscountExpirationAlertRequestSchema)` to create a new message.
8704
8823
  */
8705
8824
  export const ManipulateDiscountExpirationAlertRequestSchema: GenMessage<ManipulateDiscountExpirationAlertRequest> = /*@__PURE__*/
8706
- messageDesc(file_cover_v1_cover, 265);
8825
+ messageDesc(file_cover_v1_cover, 267);
8707
8826
 
8708
8827
  /**
8709
8828
  * @generated from message blueapi.cover.v1.UpdateDiscountExpirationAlertRequest
@@ -8757,7 +8876,7 @@ export type UpdateDiscountExpirationAlertRequest = Message<"blueapi.cover.v1.Upd
8757
8876
  * Use `create(UpdateDiscountExpirationAlertRequestSchema)` to create a new message.
8758
8877
  */
8759
8878
  export const UpdateDiscountExpirationAlertRequestSchema: GenMessage<UpdateDiscountExpirationAlertRequest> = /*@__PURE__*/
8760
- messageDesc(file_cover_v1_cover, 266);
8879
+ messageDesc(file_cover_v1_cover, 268);
8761
8880
 
8762
8881
  /**
8763
8882
  * @generated from message blueapi.cover.v1.DiscountExpiryAlertData
@@ -8809,7 +8928,7 @@ export type DiscountExpiryAlertData = Message<"blueapi.cover.v1.DiscountExpiryAl
8809
8928
  * Use `create(DiscountExpiryAlertDataSchema)` to create a new message.
8810
8929
  */
8811
8930
  export const DiscountExpiryAlertDataSchema: GenMessage<DiscountExpiryAlertData> = /*@__PURE__*/
8812
- messageDesc(file_cover_v1_cover, 267);
8931
+ messageDesc(file_cover_v1_cover, 269);
8813
8932
 
8814
8933
  /**
8815
8934
  * Request message for ListDiscountExpirationAlert
@@ -8824,7 +8943,7 @@ export type ListDiscountExpirationAlertRequest = Message<"blueapi.cover.v1.ListD
8824
8943
  * Use `create(ListDiscountExpirationAlertRequestSchema)` to create a new message.
8825
8944
  */
8826
8945
  export const ListDiscountExpirationAlertRequestSchema: GenMessage<ListDiscountExpirationAlertRequest> = /*@__PURE__*/
8827
- messageDesc(file_cover_v1_cover, 268);
8946
+ messageDesc(file_cover_v1_cover, 270);
8828
8947
 
8829
8948
  /**
8830
8949
  * Rquest message for CreateAnomalyAlert
@@ -8873,7 +8992,7 @@ export type CreateAnomalyAlertRequest = Message<"blueapi.cover.v1.CreateAnomalyA
8873
8992
  * Use `create(CreateAnomalyAlertRequestSchema)` to create a new message.
8874
8993
  */
8875
8994
  export const CreateAnomalyAlertRequestSchema: GenMessage<CreateAnomalyAlertRequest> = /*@__PURE__*/
8876
- messageDesc(file_cover_v1_cover, 269);
8995
+ messageDesc(file_cover_v1_cover, 271);
8877
8996
 
8878
8997
  /**
8879
8998
  * @generated from message blueapi.cover.v1.ManipulateAnomalyAlertRequest
@@ -8892,7 +9011,7 @@ export type ManipulateAnomalyAlertRequest = Message<"blueapi.cover.v1.Manipulate
8892
9011
  * Use `create(ManipulateAnomalyAlertRequestSchema)` to create a new message.
8893
9012
  */
8894
9013
  export const ManipulateAnomalyAlertRequestSchema: GenMessage<ManipulateAnomalyAlertRequest> = /*@__PURE__*/
8895
- messageDesc(file_cover_v1_cover, 270);
9014
+ messageDesc(file_cover_v1_cover, 272);
8896
9015
 
8897
9016
  /**
8898
9017
  * @generated from message blueapi.cover.v1.AnomalyAlertData
@@ -8939,7 +9058,7 @@ export type AnomalyAlertData = Message<"blueapi.cover.v1.AnomalyAlertData"> & {
8939
9058
  * Use `create(AnomalyAlertDataSchema)` to create a new message.
8940
9059
  */
8941
9060
  export const AnomalyAlertDataSchema: GenMessage<AnomalyAlertData> = /*@__PURE__*/
8942
- messageDesc(file_cover_v1_cover, 271);
9061
+ messageDesc(file_cover_v1_cover, 273);
8943
9062
 
8944
9063
  /**
8945
9064
  * Request message for ListAnomalyAlert
@@ -8954,7 +9073,7 @@ export type ListAnomalyAlertRequest = Message<"blueapi.cover.v1.ListAnomalyAlert
8954
9073
  * Use `create(ListAnomalyAlertRequestSchema)` to create a new message.
8955
9074
  */
8956
9075
  export const ListAnomalyAlertRequestSchema: GenMessage<ListAnomalyAlertRequest> = /*@__PURE__*/
8957
- messageDesc(file_cover_v1_cover, 272);
9076
+ messageDesc(file_cover_v1_cover, 274);
8958
9077
 
8959
9078
  /**
8960
9079
  * @generated from message blueapi.cover.v1.UpdateAnomalyAlertRequest
@@ -9008,7 +9127,7 @@ export type UpdateAnomalyAlertRequest = Message<"blueapi.cover.v1.UpdateAnomalyA
9008
9127
  * Use `create(UpdateAnomalyAlertRequestSchema)` to create a new message.
9009
9128
  */
9010
9129
  export const UpdateAnomalyAlertRequestSchema: GenMessage<UpdateAnomalyAlertRequest> = /*@__PURE__*/
9011
- messageDesc(file_cover_v1_cover, 273);
9130
+ messageDesc(file_cover_v1_cover, 275);
9012
9131
 
9013
9132
  /**
9014
9133
  * Request message for RegisterNewUser
@@ -9071,7 +9190,7 @@ export type RegisterNewUserRequest = Message<"blueapi.cover.v1.RegisterNewUserRe
9071
9190
  * Use `create(RegisterNewUserRequestSchema)` to create a new message.
9072
9191
  */
9073
9192
  export const RegisterNewUserRequestSchema: GenMessage<RegisterNewUserRequest> = /*@__PURE__*/
9074
- messageDesc(file_cover_v1_cover, 274);
9193
+ messageDesc(file_cover_v1_cover, 276);
9075
9194
 
9076
9195
  /**
9077
9196
  * @generated from message blueapi.cover.v1.RegisterNewUserResponse
@@ -9088,7 +9207,7 @@ export type RegisterNewUserResponse = Message<"blueapi.cover.v1.RegisterNewUserR
9088
9207
  * Use `create(RegisterNewUserResponseSchema)` to create a new message.
9089
9208
  */
9090
9209
  export const RegisterNewUserResponseSchema: GenMessage<RegisterNewUserResponse> = /*@__PURE__*/
9091
- messageDesc(file_cover_v1_cover, 275);
9210
+ messageDesc(file_cover_v1_cover, 277);
9092
9211
 
9093
9212
  /**
9094
9213
  * Request message for GetUserProfile
@@ -9109,7 +9228,7 @@ export type GetUserProfileRequest = Message<"blueapi.cover.v1.GetUserProfileRequ
9109
9228
  * Use `create(GetUserProfileRequestSchema)` to create a new message.
9110
9229
  */
9111
9230
  export const GetUserProfileRequestSchema: GenMessage<GetUserProfileRequest> = /*@__PURE__*/
9112
- messageDesc(file_cover_v1_cover, 276);
9231
+ messageDesc(file_cover_v1_cover, 278);
9113
9232
 
9114
9233
  /**
9115
9234
  * @generated from message blueapi.cover.v1.GetUserProfileResponse
@@ -9166,7 +9285,7 @@ export type GetUserProfileResponse = Message<"blueapi.cover.v1.GetUserProfileRes
9166
9285
  * Use `create(GetUserProfileResponseSchema)` to create a new message.
9167
9286
  */
9168
9287
  export const GetUserProfileResponseSchema: GenMessage<GetUserProfileResponse> = /*@__PURE__*/
9169
- messageDesc(file_cover_v1_cover, 277);
9288
+ messageDesc(file_cover_v1_cover, 279);
9170
9289
 
9171
9290
  /**
9172
9291
  * Request message for UpdateUserProfile
@@ -9222,7 +9341,7 @@ export type UpdateUserProfileRequest = Message<"blueapi.cover.v1.UpdateUserProfi
9222
9341
  * Use `create(UpdateUserProfileRequestSchema)` to create a new message.
9223
9342
  */
9224
9343
  export const UpdateUserProfileRequestSchema: GenMessage<UpdateUserProfileRequest> = /*@__PURE__*/
9225
- messageDesc(file_cover_v1_cover, 278);
9344
+ messageDesc(file_cover_v1_cover, 280);
9226
9345
 
9227
9346
  /**
9228
9347
  * @generated from message blueapi.cover.v1.UpdateUserProfileResponse
@@ -9274,7 +9393,7 @@ export type UpdateUserProfileResponse = Message<"blueapi.cover.v1.UpdateUserProf
9274
9393
  * Use `create(UpdateUserProfileResponseSchema)` to create a new message.
9275
9394
  */
9276
9395
  export const UpdateUserProfileResponseSchema: GenMessage<UpdateUserProfileResponse> = /*@__PURE__*/
9277
- messageDesc(file_cover_v1_cover, 279);
9396
+ messageDesc(file_cover_v1_cover, 281);
9278
9397
 
9279
9398
  /**
9280
9399
  * @generated from message blueapi.cover.v1.ListBudgetsRequest
@@ -9300,7 +9419,7 @@ export type ListBudgetsRequest = Message<"blueapi.cover.v1.ListBudgetsRequest">
9300
9419
  * Use `create(ListBudgetsRequestSchema)` to create a new message.
9301
9420
  */
9302
9421
  export const ListBudgetsRequestSchema: GenMessage<ListBudgetsRequest> = /*@__PURE__*/
9303
- messageDesc(file_cover_v1_cover, 280);
9422
+ messageDesc(file_cover_v1_cover, 282);
9304
9423
 
9305
9424
  /**
9306
9425
  * @generated from message blueapi.cover.v1.ListBudgetsResponse
@@ -9317,7 +9436,7 @@ export type ListBudgetsResponse = Message<"blueapi.cover.v1.ListBudgetsResponse"
9317
9436
  * Use `create(ListBudgetsResponseSchema)` to create a new message.
9318
9437
  */
9319
9438
  export const ListBudgetsResponseSchema: GenMessage<ListBudgetsResponse> = /*@__PURE__*/
9320
- messageDesc(file_cover_v1_cover, 281);
9439
+ messageDesc(file_cover_v1_cover, 283);
9321
9440
 
9322
9441
  /**
9323
9442
  * @generated from message blueapi.cover.v1.GetBudgetRequest
@@ -9336,7 +9455,7 @@ export type GetBudgetRequest = Message<"blueapi.cover.v1.GetBudgetRequest"> & {
9336
9455
  * Use `create(GetBudgetRequestSchema)` to create a new message.
9337
9456
  */
9338
9457
  export const GetBudgetRequestSchema: GenMessage<GetBudgetRequest> = /*@__PURE__*/
9339
- messageDesc(file_cover_v1_cover, 282);
9458
+ messageDesc(file_cover_v1_cover, 284);
9340
9459
 
9341
9460
  /**
9342
9461
  * @generated from message blueapi.cover.v1.GetBudgetResponse
@@ -9353,7 +9472,7 @@ export type GetBudgetResponse = Message<"blueapi.cover.v1.GetBudgetResponse"> &
9353
9472
  * Use `create(GetBudgetResponseSchema)` to create a new message.
9354
9473
  */
9355
9474
  export const GetBudgetResponseSchema: GenMessage<GetBudgetResponse> = /*@__PURE__*/
9356
- messageDesc(file_cover_v1_cover, 283);
9475
+ messageDesc(file_cover_v1_cover, 285);
9357
9476
 
9358
9477
  /**
9359
9478
  * @generated from message blueapi.cover.v1.CreateBudgetRequest
@@ -9370,7 +9489,7 @@ export type CreateBudgetRequest = Message<"blueapi.cover.v1.CreateBudgetRequest"
9370
9489
  * Use `create(CreateBudgetRequestSchema)` to create a new message.
9371
9490
  */
9372
9491
  export const CreateBudgetRequestSchema: GenMessage<CreateBudgetRequest> = /*@__PURE__*/
9373
- messageDesc(file_cover_v1_cover, 284);
9492
+ messageDesc(file_cover_v1_cover, 286);
9374
9493
 
9375
9494
  /**
9376
9495
  * @generated from message blueapi.cover.v1.CreateBudgetResponse
@@ -9387,7 +9506,7 @@ export type CreateBudgetResponse = Message<"blueapi.cover.v1.CreateBudgetRespons
9387
9506
  * Use `create(CreateBudgetResponseSchema)` to create a new message.
9388
9507
  */
9389
9508
  export const CreateBudgetResponseSchema: GenMessage<CreateBudgetResponse> = /*@__PURE__*/
9390
- messageDesc(file_cover_v1_cover, 285);
9509
+ messageDesc(file_cover_v1_cover, 287);
9391
9510
 
9392
9511
  /**
9393
9512
  * @generated from message blueapi.cover.v1.DeleteBudgetRequest
@@ -9406,7 +9525,7 @@ export type DeleteBudgetRequest = Message<"blueapi.cover.v1.DeleteBudgetRequest"
9406
9525
  * Use `create(DeleteBudgetRequestSchema)` to create a new message.
9407
9526
  */
9408
9527
  export const DeleteBudgetRequestSchema: GenMessage<DeleteBudgetRequest> = /*@__PURE__*/
9409
- messageDesc(file_cover_v1_cover, 286);
9528
+ messageDesc(file_cover_v1_cover, 288);
9410
9529
 
9411
9530
  /**
9412
9531
  * @generated from message blueapi.cover.v1.DeleteBudgetResponse
@@ -9423,7 +9542,7 @@ export type DeleteBudgetResponse = Message<"blueapi.cover.v1.DeleteBudgetRespons
9423
9542
  * Use `create(DeleteBudgetResponseSchema)` to create a new message.
9424
9543
  */
9425
9544
  export const DeleteBudgetResponseSchema: GenMessage<DeleteBudgetResponse> = /*@__PURE__*/
9426
- messageDesc(file_cover_v1_cover, 287);
9545
+ messageDesc(file_cover_v1_cover, 289);
9427
9546
 
9428
9547
  /**
9429
9548
  * @generated from message blueapi.cover.v1.UpdateBudgetRequest
@@ -9447,7 +9566,7 @@ export type UpdateBudgetRequest = Message<"blueapi.cover.v1.UpdateBudgetRequest"
9447
9566
  * Use `create(UpdateBudgetRequestSchema)` to create a new message.
9448
9567
  */
9449
9568
  export const UpdateBudgetRequestSchema: GenMessage<UpdateBudgetRequest> = /*@__PURE__*/
9450
- messageDesc(file_cover_v1_cover, 288);
9569
+ messageDesc(file_cover_v1_cover, 290);
9451
9570
 
9452
9571
  /**
9453
9572
  * @generated from message blueapi.cover.v1.UpdateBudgetResponse
@@ -9464,7 +9583,7 @@ export type UpdateBudgetResponse = Message<"blueapi.cover.v1.UpdateBudgetRespons
9464
9583
  * Use `create(UpdateBudgetResponseSchema)` to create a new message.
9465
9584
  */
9466
9585
  export const UpdateBudgetResponseSchema: GenMessage<UpdateBudgetResponse> = /*@__PURE__*/
9467
- messageDesc(file_cover_v1_cover, 289);
9586
+ messageDesc(file_cover_v1_cover, 291);
9468
9587
 
9469
9588
  /**
9470
9589
  * @generated from message blueapi.cover.v1.ResolveAWSMarketplaceTokenForOnboardingRequest
@@ -9481,7 +9600,7 @@ export type ResolveAWSMarketplaceTokenForOnboardingRequest = Message<"blueapi.co
9481
9600
  * Use `create(ResolveAWSMarketplaceTokenForOnboardingRequestSchema)` to create a new message.
9482
9601
  */
9483
9602
  export const ResolveAWSMarketplaceTokenForOnboardingRequestSchema: GenMessage<ResolveAWSMarketplaceTokenForOnboardingRequest> = /*@__PURE__*/
9484
- messageDesc(file_cover_v1_cover, 290);
9603
+ messageDesc(file_cover_v1_cover, 292);
9485
9604
 
9486
9605
  /**
9487
9606
  * @generated from message blueapi.cover.v1.ResolveAWSMarketplaceTokenForOnboardingResponse
@@ -9503,7 +9622,7 @@ export type ResolveAWSMarketplaceTokenForOnboardingResponse = Message<"blueapi.c
9503
9622
  * Use `create(ResolveAWSMarketplaceTokenForOnboardingResponseSchema)` to create a new message.
9504
9623
  */
9505
9624
  export const ResolveAWSMarketplaceTokenForOnboardingResponseSchema: GenMessage<ResolveAWSMarketplaceTokenForOnboardingResponse> = /*@__PURE__*/
9506
- messageDesc(file_cover_v1_cover, 291);
9625
+ messageDesc(file_cover_v1_cover, 293);
9507
9626
 
9508
9627
  /**
9509
9628
  * @generated from message blueapi.cover.v1.GetCustomerSubscriptionStatusRequest
@@ -9516,7 +9635,7 @@ export type GetCustomerSubscriptionStatusRequest = Message<"blueapi.cover.v1.Get
9516
9635
  * Use `create(GetCustomerSubscriptionStatusRequestSchema)` to create a new message.
9517
9636
  */
9518
9637
  export const GetCustomerSubscriptionStatusRequestSchema: GenMessage<GetCustomerSubscriptionStatusRequest> = /*@__PURE__*/
9519
- messageDesc(file_cover_v1_cover, 292);
9638
+ messageDesc(file_cover_v1_cover, 294);
9520
9639
 
9521
9640
  /**
9522
9641
  * @generated from message blueapi.cover.v1.GetCustomerSubscriptionStatusResponse
@@ -9578,7 +9697,7 @@ export type GetCustomerSubscriptionStatusResponse = Message<"blueapi.cover.v1.Ge
9578
9697
  * Use `create(GetCustomerSubscriptionStatusResponseSchema)` to create a new message.
9579
9698
  */
9580
9699
  export const GetCustomerSubscriptionStatusResponseSchema: GenMessage<GetCustomerSubscriptionStatusResponse> = /*@__PURE__*/
9581
- messageDesc(file_cover_v1_cover, 293);
9700
+ messageDesc(file_cover_v1_cover, 295);
9582
9701
 
9583
9702
  /**
9584
9703
  * @generated from message blueapi.cover.v1.CreateProfilingRequest
@@ -9630,7 +9749,7 @@ export type CreateProfilingRequest = Message<"blueapi.cover.v1.CreateProfilingRe
9630
9749
  * Use `create(CreateProfilingRequestSchema)` to create a new message.
9631
9750
  */
9632
9751
  export const CreateProfilingRequestSchema: GenMessage<CreateProfilingRequest> = /*@__PURE__*/
9633
- messageDesc(file_cover_v1_cover, 294);
9752
+ messageDesc(file_cover_v1_cover, 296);
9634
9753
 
9635
9754
  /**
9636
9755
  * @generated from message blueapi.cover.v1.CreateProfilingResponse
@@ -9643,7 +9762,7 @@ export type CreateProfilingResponse = Message<"blueapi.cover.v1.CreateProfilingR
9643
9762
  * Use `create(CreateProfilingResponseSchema)` to create a new message.
9644
9763
  */
9645
9764
  export const CreateProfilingResponseSchema: GenMessage<CreateProfilingResponse> = /*@__PURE__*/
9646
- messageDesc(file_cover_v1_cover, 295);
9765
+ messageDesc(file_cover_v1_cover, 297);
9647
9766
 
9648
9767
  /**
9649
9768
  * @generated from message blueapi.cover.v1.AddInfotoMarketplaceRequest
@@ -9660,7 +9779,7 @@ export type AddInfotoMarketplaceRequest = Message<"blueapi.cover.v1.AddInfotoMar
9660
9779
  * Use `create(AddInfotoMarketplaceRequestSchema)` to create a new message.
9661
9780
  */
9662
9781
  export const AddInfotoMarketplaceRequestSchema: GenMessage<AddInfotoMarketplaceRequest> = /*@__PURE__*/
9663
- messageDesc(file_cover_v1_cover, 296);
9782
+ messageDesc(file_cover_v1_cover, 298);
9664
9783
 
9665
9784
  /**
9666
9785
  * @generated from message blueapi.cover.v1.AddInfotoMarketplaceResponse
@@ -9673,7 +9792,7 @@ export type AddInfotoMarketplaceResponse = Message<"blueapi.cover.v1.AddInfotoMa
9673
9792
  * Use `create(AddInfotoMarketplaceResponseSchema)` to create a new message.
9674
9793
  */
9675
9794
  export const AddInfotoMarketplaceResponseSchema: GenMessage<AddInfotoMarketplaceResponse> = /*@__PURE__*/
9676
- messageDesc(file_cover_v1_cover, 297);
9795
+ messageDesc(file_cover_v1_cover, 299);
9677
9796
 
9678
9797
  /**
9679
9798
  * @generated from message blueapi.cover.v1.GetReportSummaryRequest
@@ -9720,7 +9839,7 @@ export type GetReportSummaryRequest = Message<"blueapi.cover.v1.GetReportSummary
9720
9839
  * Use `create(GetReportSummaryRequestSchema)` to create a new message.
9721
9840
  */
9722
9841
  export const GetReportSummaryRequestSchema: GenMessage<GetReportSummaryRequest> = /*@__PURE__*/
9723
- messageDesc(file_cover_v1_cover, 298);
9842
+ messageDesc(file_cover_v1_cover, 300);
9724
9843
 
9725
9844
  /**
9726
9845
  * @generated from message blueapi.cover.v1.GetReportSummaryResponse
@@ -9762,7 +9881,7 @@ export type GetReportSummaryResponse = Message<"blueapi.cover.v1.GetReportSummar
9762
9881
  * Use `create(GetReportSummaryResponseSchema)` to create a new message.
9763
9882
  */
9764
9883
  export const GetReportSummaryResponseSchema: GenMessage<GetReportSummaryResponse> = /*@__PURE__*/
9765
- messageDesc(file_cover_v1_cover, 299);
9884
+ messageDesc(file_cover_v1_cover, 301);
9766
9885
 
9767
9886
  /**
9768
9887
  * @generated from message blueapi.cover.v1.ListRecommendationRequest
@@ -9860,7 +9979,7 @@ export type ListRecommendationRequest = Message<"blueapi.cover.v1.ListRecommenda
9860
9979
  * Use `create(ListRecommendationRequestSchema)` to create a new message.
9861
9980
  */
9862
9981
  export const ListRecommendationRequestSchema: GenMessage<ListRecommendationRequest> = /*@__PURE__*/
9863
- messageDesc(file_cover_v1_cover, 300);
9982
+ messageDesc(file_cover_v1_cover, 302);
9864
9983
 
9865
9984
  /**
9866
9985
  * @generated from message blueapi.cover.v1.ListRecommendationV2Request
@@ -9899,7 +10018,7 @@ export type ListRecommendationV2Request = Message<"blueapi.cover.v1.ListRecommen
9899
10018
  * Use `create(ListRecommendationV2RequestSchema)` to create a new message.
9900
10019
  */
9901
10020
  export const ListRecommendationV2RequestSchema: GenMessage<ListRecommendationV2Request> = /*@__PURE__*/
9902
- messageDesc(file_cover_v1_cover, 301);
10021
+ messageDesc(file_cover_v1_cover, 303);
9903
10022
 
9904
10023
  /**
9905
10024
  * @generated from message blueapi.cover.v1.ListRecommendationV2Request.RateSettings
@@ -9946,7 +10065,7 @@ export type ListRecommendationV2Request_RateSettings = Message<"blueapi.cover.v1
9946
10065
  * Use `create(ListRecommendationV2Request_RateSettingsSchema)` to create a new message.
9947
10066
  */
9948
10067
  export const ListRecommendationV2Request_RateSettingsSchema: GenMessage<ListRecommendationV2Request_RateSettings> = /*@__PURE__*/
9949
- messageDesc(file_cover_v1_cover, 301, 0);
10068
+ messageDesc(file_cover_v1_cover, 303, 0);
9950
10069
 
9951
10070
  /**
9952
10071
  * @generated from message blueapi.cover.v1.ListRecommendationResponse
@@ -10088,7 +10207,7 @@ export type ListRecommendationResponse = Message<"blueapi.cover.v1.ListRecommend
10088
10207
  * Use `create(ListRecommendationResponseSchema)` to create a new message.
10089
10208
  */
10090
10209
  export const ListRecommendationResponseSchema: GenMessage<ListRecommendationResponse> = /*@__PURE__*/
10091
- messageDesc(file_cover_v1_cover, 302);
10210
+ messageDesc(file_cover_v1_cover, 304);
10092
10211
 
10093
10212
  /**
10094
10213
  * @generated from message blueapi.cover.v1.ListRecommendationResponse.PurchaseOption
@@ -10145,7 +10264,7 @@ export type ListRecommendationResponse_PurchaseOption = Message<"blueapi.cover.v
10145
10264
  * Use `create(ListRecommendationResponse_PurchaseOptionSchema)` to create a new message.
10146
10265
  */
10147
10266
  export const ListRecommendationResponse_PurchaseOptionSchema: GenMessage<ListRecommendationResponse_PurchaseOption> = /*@__PURE__*/
10148
- messageDesc(file_cover_v1_cover, 302, 0);
10267
+ messageDesc(file_cover_v1_cover, 304, 0);
10149
10268
 
10150
10269
  /**
10151
10270
  * @generated from message blueapi.cover.v1.GetRecommendationRequest
@@ -10174,7 +10293,7 @@ export type GetRecommendationRequest = Message<"blueapi.cover.v1.GetRecommendati
10174
10293
  * Use `create(GetRecommendationRequestSchema)` to create a new message.
10175
10294
  */
10176
10295
  export const GetRecommendationRequestSchema: GenMessage<GetRecommendationRequest> = /*@__PURE__*/
10177
- messageDesc(file_cover_v1_cover, 303);
10296
+ messageDesc(file_cover_v1_cover, 305);
10178
10297
 
10179
10298
  /**
10180
10299
  * @generated from message blueapi.cover.v1.GetRecommendationResponse
@@ -10191,7 +10310,7 @@ export type GetRecommendationResponse = Message<"blueapi.cover.v1.GetRecommendat
10191
10310
  * Use `create(GetRecommendationResponseSchema)` to create a new message.
10192
10311
  */
10193
10312
  export const GetRecommendationResponseSchema: GenMessage<GetRecommendationResponse> = /*@__PURE__*/
10194
- messageDesc(file_cover_v1_cover, 304);
10313
+ messageDesc(file_cover_v1_cover, 306);
10195
10314
 
10196
10315
  /**
10197
10316
  * @generated from message blueapi.cover.v1.ExecuteOptimizationRequest
@@ -10213,7 +10332,7 @@ export type ExecuteOptimizationRequest = Message<"blueapi.cover.v1.ExecuteOptimi
10213
10332
  * Use `create(ExecuteOptimizationRequestSchema)` to create a new message.
10214
10333
  */
10215
10334
  export const ExecuteOptimizationRequestSchema: GenMessage<ExecuteOptimizationRequest> = /*@__PURE__*/
10216
- messageDesc(file_cover_v1_cover, 305);
10335
+ messageDesc(file_cover_v1_cover, 307);
10217
10336
 
10218
10337
  /**
10219
10338
  * @generated from message blueapi.cover.v1.ExecuteOptimizationResponse
@@ -10248,7 +10367,7 @@ export type ExecuteOptimizationResponse = Message<"blueapi.cover.v1.ExecuteOptim
10248
10367
  * Use `create(ExecuteOptimizationResponseSchema)` to create a new message.
10249
10368
  */
10250
10369
  export const ExecuteOptimizationResponseSchema: GenMessage<ExecuteOptimizationResponse> = /*@__PURE__*/
10251
- messageDesc(file_cover_v1_cover, 306);
10370
+ messageDesc(file_cover_v1_cover, 308);
10252
10371
 
10253
10372
  /**
10254
10373
  * @generated from message blueapi.cover.v1.ExecuteOptimizationResponse.AWSOption
@@ -10275,7 +10394,7 @@ export type ExecuteOptimizationResponse_AWSOption = Message<"blueapi.cover.v1.Ex
10275
10394
  * Use `create(ExecuteOptimizationResponse_AWSOptionSchema)` to create a new message.
10276
10395
  */
10277
10396
  export const ExecuteOptimizationResponse_AWSOptionSchema: GenMessage<ExecuteOptimizationResponse_AWSOption> = /*@__PURE__*/
10278
- messageDesc(file_cover_v1_cover, 306, 0);
10397
+ messageDesc(file_cover_v1_cover, 308, 0);
10279
10398
 
10280
10399
  /**
10281
10400
  * @generated from message blueapi.cover.v1.ExecuteOptimizationResponse.GCPOption
@@ -10288,7 +10407,7 @@ export type ExecuteOptimizationResponse_GCPOption = Message<"blueapi.cover.v1.Ex
10288
10407
  * Use `create(ExecuteOptimizationResponse_GCPOptionSchema)` to create a new message.
10289
10408
  */
10290
10409
  export const ExecuteOptimizationResponse_GCPOptionSchema: GenMessage<ExecuteOptimizationResponse_GCPOption> = /*@__PURE__*/
10291
- messageDesc(file_cover_v1_cover, 306, 1);
10410
+ messageDesc(file_cover_v1_cover, 308, 1);
10292
10411
 
10293
10412
  /**
10294
10413
  * @generated from message blueapi.cover.v1.ExecuteOptimizationResponse.AzureCSPOption
@@ -10301,7 +10420,7 @@ export type ExecuteOptimizationResponse_AzureCSPOption = Message<"blueapi.cover.
10301
10420
  * Use `create(ExecuteOptimizationResponse_AzureCSPOptionSchema)` to create a new message.
10302
10421
  */
10303
10422
  export const ExecuteOptimizationResponse_AzureCSPOptionSchema: GenMessage<ExecuteOptimizationResponse_AzureCSPOption> = /*@__PURE__*/
10304
- messageDesc(file_cover_v1_cover, 306, 2);
10423
+ messageDesc(file_cover_v1_cover, 308, 2);
10305
10424
 
10306
10425
  /**
10307
10426
  * @generated from message blueapi.cover.v1.MarkAsExecutedRequest
@@ -10318,7 +10437,7 @@ export type MarkAsExecutedRequest = Message<"blueapi.cover.v1.MarkAsExecutedRequ
10318
10437
  * Use `create(MarkAsExecutedRequestSchema)` to create a new message.
10319
10438
  */
10320
10439
  export const MarkAsExecutedRequestSchema: GenMessage<MarkAsExecutedRequest> = /*@__PURE__*/
10321
- messageDesc(file_cover_v1_cover, 307);
10440
+ messageDesc(file_cover_v1_cover, 309);
10322
10441
 
10323
10442
  /**
10324
10443
  * @generated from message blueapi.cover.v1.MarkAsExecutedResponse
@@ -10331,7 +10450,7 @@ export type MarkAsExecutedResponse = Message<"blueapi.cover.v1.MarkAsExecutedRes
10331
10450
  * Use `create(MarkAsExecutedResponseSchema)` to create a new message.
10332
10451
  */
10333
10452
  export const MarkAsExecutedResponseSchema: GenMessage<MarkAsExecutedResponse> = /*@__PURE__*/
10334
- messageDesc(file_cover_v1_cover, 308);
10453
+ messageDesc(file_cover_v1_cover, 310);
10335
10454
 
10336
10455
  /**
10337
10456
  * @generated from message blueapi.cover.v1.UndoExecutedRecommendationRequest
@@ -10348,7 +10467,7 @@ export type UndoExecutedRecommendationRequest = Message<"blueapi.cover.v1.UndoEx
10348
10467
  * Use `create(UndoExecutedRecommendationRequestSchema)` to create a new message.
10349
10468
  */
10350
10469
  export const UndoExecutedRecommendationRequestSchema: GenMessage<UndoExecutedRecommendationRequest> = /*@__PURE__*/
10351
- messageDesc(file_cover_v1_cover, 309);
10470
+ messageDesc(file_cover_v1_cover, 311);
10352
10471
 
10353
10472
  /**
10354
10473
  * @generated from message blueapi.cover.v1.UndoExecutedRecommendationResponse
@@ -10361,7 +10480,7 @@ export type UndoExecutedRecommendationResponse = Message<"blueapi.cover.v1.UndoE
10361
10480
  * Use `create(UndoExecutedRecommendationResponseSchema)` to create a new message.
10362
10481
  */
10363
10482
  export const UndoExecutedRecommendationResponseSchema: GenMessage<UndoExecutedRecommendationResponse> = /*@__PURE__*/
10364
- messageDesc(file_cover_v1_cover, 310);
10483
+ messageDesc(file_cover_v1_cover, 312);
10365
10484
 
10366
10485
  /**
10367
10486
  * @generated from message blueapi.cover.v1.OptimizationHistoryRequest
@@ -10422,7 +10541,7 @@ export type OptimizationHistoryRequest = Message<"blueapi.cover.v1.OptimizationH
10422
10541
  * Use `create(OptimizationHistoryRequestSchema)` to create a new message.
10423
10542
  */
10424
10543
  export const OptimizationHistoryRequestSchema: GenMessage<OptimizationHistoryRequest> = /*@__PURE__*/
10425
- messageDesc(file_cover_v1_cover, 311);
10544
+ messageDesc(file_cover_v1_cover, 313);
10426
10545
 
10427
10546
  /**
10428
10547
  * @generated from message blueapi.cover.v1.OptimizationHistoryResponse
@@ -10439,7 +10558,7 @@ export type OptimizationHistoryResponse = Message<"blueapi.cover.v1.Optimization
10439
10558
  * Use `create(OptimizationHistoryResponseSchema)` to create a new message.
10440
10559
  */
10441
10560
  export const OptimizationHistoryResponseSchema: GenMessage<OptimizationHistoryResponse> = /*@__PURE__*/
10442
- messageDesc(file_cover_v1_cover, 312);
10561
+ messageDesc(file_cover_v1_cover, 314);
10443
10562
 
10444
10563
  /**
10445
10564
  * @generated from message blueapi.cover.v1.SetCostGroupEventIndicatorRequest
@@ -10472,7 +10591,7 @@ export type SetCostGroupEventIndicatorRequest = Message<"blueapi.cover.v1.SetCos
10472
10591
  * Use `create(SetCostGroupEventIndicatorRequestSchema)` to create a new message.
10473
10592
  */
10474
10593
  export const SetCostGroupEventIndicatorRequestSchema: GenMessage<SetCostGroupEventIndicatorRequest> = /*@__PURE__*/
10475
- messageDesc(file_cover_v1_cover, 313);
10594
+ messageDesc(file_cover_v1_cover, 315);
10476
10595
 
10477
10596
  /**
10478
10597
  * @generated from message blueapi.cover.v1.SetCostGroupEventIndicatorResponse
@@ -10494,7 +10613,7 @@ export type SetCostGroupEventIndicatorResponse = Message<"blueapi.cover.v1.SetCo
10494
10613
  * Use `create(SetCostGroupEventIndicatorResponseSchema)` to create a new message.
10495
10614
  */
10496
10615
  export const SetCostGroupEventIndicatorResponseSchema: GenMessage<SetCostGroupEventIndicatorResponse> = /*@__PURE__*/
10497
- messageDesc(file_cover_v1_cover, 314);
10616
+ messageDesc(file_cover_v1_cover, 316);
10498
10617
 
10499
10618
  /**
10500
10619
  * @generated from message blueapi.cover.v1.SetCostGroupAnomalyOptionsRequest
@@ -10534,7 +10653,7 @@ export type SetCostGroupAnomalyOptionsRequest = Message<"blueapi.cover.v1.SetCos
10534
10653
  * Use `create(SetCostGroupAnomalyOptionsRequestSchema)` to create a new message.
10535
10654
  */
10536
10655
  export const SetCostGroupAnomalyOptionsRequestSchema: GenMessage<SetCostGroupAnomalyOptionsRequest> = /*@__PURE__*/
10537
- messageDesc(file_cover_v1_cover, 315);
10656
+ messageDesc(file_cover_v1_cover, 317);
10538
10657
 
10539
10658
  /**
10540
10659
  * @generated from message blueapi.cover.v1.SetCostGroupAnomalyOptionsResponse
@@ -10556,7 +10675,7 @@ export type SetCostGroupAnomalyOptionsResponse = Message<"blueapi.cover.v1.SetCo
10556
10675
  * Use `create(SetCostGroupAnomalyOptionsResponseSchema)` to create a new message.
10557
10676
  */
10558
10677
  export const SetCostGroupAnomalyOptionsResponseSchema: GenMessage<SetCostGroupAnomalyOptionsResponse> = /*@__PURE__*/
10559
- messageDesc(file_cover_v1_cover, 316);
10678
+ messageDesc(file_cover_v1_cover, 318);
10560
10679
 
10561
10680
  /**
10562
10681
  * @generated from message blueapi.cover.v1.SetOrgFiscalMonthRequest
@@ -10575,7 +10694,7 @@ export type SetOrgFiscalMonthRequest = Message<"blueapi.cover.v1.SetOrgFiscalMon
10575
10694
  * Use `create(SetOrgFiscalMonthRequestSchema)` to create a new message.
10576
10695
  */
10577
10696
  export const SetOrgFiscalMonthRequestSchema: GenMessage<SetOrgFiscalMonthRequest> = /*@__PURE__*/
10578
- messageDesc(file_cover_v1_cover, 317);
10697
+ messageDesc(file_cover_v1_cover, 319);
10579
10698
 
10580
10699
  /**
10581
10700
  * @generated from message blueapi.cover.v1.SetOrgFiscalMonthResponse
@@ -10592,7 +10711,7 @@ export type SetOrgFiscalMonthResponse = Message<"blueapi.cover.v1.SetOrgFiscalMo
10592
10711
  * Use `create(SetOrgFiscalMonthResponseSchema)` to create a new message.
10593
10712
  */
10594
10713
  export const SetOrgFiscalMonthResponseSchema: GenMessage<SetOrgFiscalMonthResponse> = /*@__PURE__*/
10595
- messageDesc(file_cover_v1_cover, 318);
10714
+ messageDesc(file_cover_v1_cover, 320);
10596
10715
 
10597
10716
  /**
10598
10717
  * @generated from message blueapi.cover.v1.GetOrgFiscalMonthRequest
@@ -10605,7 +10724,7 @@ export type GetOrgFiscalMonthRequest = Message<"blueapi.cover.v1.GetOrgFiscalMon
10605
10724
  * Use `create(GetOrgFiscalMonthRequestSchema)` to create a new message.
10606
10725
  */
10607
10726
  export const GetOrgFiscalMonthRequestSchema: GenMessage<GetOrgFiscalMonthRequest> = /*@__PURE__*/
10608
- messageDesc(file_cover_v1_cover, 319);
10727
+ messageDesc(file_cover_v1_cover, 321);
10609
10728
 
10610
10729
  /**
10611
10730
  * @generated from message blueapi.cover.v1.GetOrgFiscalMonthResponse
@@ -10627,7 +10746,7 @@ export type GetOrgFiscalMonthResponse = Message<"blueapi.cover.v1.GetOrgFiscalMo
10627
10746
  * Use `create(GetOrgFiscalMonthResponseSchema)` to create a new message.
10628
10747
  */
10629
10748
  export const GetOrgFiscalMonthResponseSchema: GenMessage<GetOrgFiscalMonthResponse> = /*@__PURE__*/
10630
- messageDesc(file_cover_v1_cover, 320);
10749
+ messageDesc(file_cover_v1_cover, 322);
10631
10750
 
10632
10751
  /**
10633
10752
  * @generated from message blueapi.cover.v1.TransferOrganizationRequest
@@ -10667,7 +10786,7 @@ export type TransferOrganizationRequest = Message<"blueapi.cover.v1.TransferOrga
10667
10786
  * Use `create(TransferOrganizationRequestSchema)` to create a new message.
10668
10787
  */
10669
10788
  export const TransferOrganizationRequestSchema: GenMessage<TransferOrganizationRequest> = /*@__PURE__*/
10670
- messageDesc(file_cover_v1_cover, 321);
10789
+ messageDesc(file_cover_v1_cover, 323);
10671
10790
 
10672
10791
  /**
10673
10792
  * @generated from message blueapi.cover.v1.TransferOrganizationResponse
@@ -10684,7 +10803,7 @@ export type TransferOrganizationResponse = Message<"blueapi.cover.v1.TransferOrg
10684
10803
  * Use `create(TransferOrganizationResponseSchema)` to create a new message.
10685
10804
  */
10686
10805
  export const TransferOrganizationResponseSchema: GenMessage<TransferOrganizationResponse> = /*@__PURE__*/
10687
- messageDesc(file_cover_v1_cover, 322);
10806
+ messageDesc(file_cover_v1_cover, 324);
10688
10807
 
10689
10808
  /**
10690
10809
  * @generated from message blueapi.cover.v1.UpdateCostGroupCreationUIRequest
@@ -10701,7 +10820,7 @@ export type UpdateCostGroupCreationUIRequest = Message<"blueapi.cover.v1.UpdateC
10701
10820
  * Use `create(UpdateCostGroupCreationUIRequestSchema)` to create a new message.
10702
10821
  */
10703
10822
  export const UpdateCostGroupCreationUIRequestSchema: GenMessage<UpdateCostGroupCreationUIRequest> = /*@__PURE__*/
10704
- messageDesc(file_cover_v1_cover, 323);
10823
+ messageDesc(file_cover_v1_cover, 325);
10705
10824
 
10706
10825
  /**
10707
10826
  * @generated from message blueapi.cover.v1.UpdateCostGroupCreationUIResponse
@@ -10718,7 +10837,7 @@ export type UpdateCostGroupCreationUIResponse = Message<"blueapi.cover.v1.Update
10718
10837
  * Use `create(UpdateCostGroupCreationUIResponseSchema)` to create a new message.
10719
10838
  */
10720
10839
  export const UpdateCostGroupCreationUIResponseSchema: GenMessage<UpdateCostGroupCreationUIResponse> = /*@__PURE__*/
10721
- messageDesc(file_cover_v1_cover, 324);
10840
+ messageDesc(file_cover_v1_cover, 326);
10722
10841
 
10723
10842
  /**
10724
10843
  * @generated from message blueapi.cover.v1.ListUnitTypesRequest
@@ -10731,7 +10850,7 @@ export type ListUnitTypesRequest = Message<"blueapi.cover.v1.ListUnitTypesReques
10731
10850
  * Use `create(ListUnitTypesRequestSchema)` to create a new message.
10732
10851
  */
10733
10852
  export const ListUnitTypesRequestSchema: GenMessage<ListUnitTypesRequest> = /*@__PURE__*/
10734
- messageDesc(file_cover_v1_cover, 325);
10853
+ messageDesc(file_cover_v1_cover, 327);
10735
10854
 
10736
10855
  /**
10737
10856
  * @generated from message blueapi.cover.v1.ListUnitTypesResponse
@@ -10748,7 +10867,7 @@ export type ListUnitTypesResponse = Message<"blueapi.cover.v1.ListUnitTypesRespo
10748
10867
  * Use `create(ListUnitTypesResponseSchema)` to create a new message.
10749
10868
  */
10750
10869
  export const ListUnitTypesResponseSchema: GenMessage<ListUnitTypesResponse> = /*@__PURE__*/
10751
- messageDesc(file_cover_v1_cover, 326);
10870
+ messageDesc(file_cover_v1_cover, 328);
10752
10871
 
10753
10872
  /**
10754
10873
  * @generated from message blueapi.cover.v1.CreateUnitTypeRequest
@@ -10780,7 +10899,7 @@ export type CreateUnitTypeRequest = Message<"blueapi.cover.v1.CreateUnitTypeRequ
10780
10899
  * Use `create(CreateUnitTypeRequestSchema)` to create a new message.
10781
10900
  */
10782
10901
  export const CreateUnitTypeRequestSchema: GenMessage<CreateUnitTypeRequest> = /*@__PURE__*/
10783
- messageDesc(file_cover_v1_cover, 327);
10902
+ messageDesc(file_cover_v1_cover, 329);
10784
10903
 
10785
10904
  /**
10786
10905
  * @generated from message blueapi.cover.v1.CreateUnitTypeResponse
@@ -10797,7 +10916,7 @@ export type CreateUnitTypeResponse = Message<"blueapi.cover.v1.CreateUnitTypeRes
10797
10916
  * Use `create(CreateUnitTypeResponseSchema)` to create a new message.
10798
10917
  */
10799
10918
  export const CreateUnitTypeResponseSchema: GenMessage<CreateUnitTypeResponse> = /*@__PURE__*/
10800
- messageDesc(file_cover_v1_cover, 328);
10919
+ messageDesc(file_cover_v1_cover, 330);
10801
10920
 
10802
10921
  /**
10803
10922
  * @generated from message blueapi.cover.v1.GetUnitTypeRequest
@@ -10816,7 +10935,7 @@ export type GetUnitTypeRequest = Message<"blueapi.cover.v1.GetUnitTypeRequest">
10816
10935
  * Use `create(GetUnitTypeRequestSchema)` to create a new message.
10817
10936
  */
10818
10937
  export const GetUnitTypeRequestSchema: GenMessage<GetUnitTypeRequest> = /*@__PURE__*/
10819
- messageDesc(file_cover_v1_cover, 329);
10938
+ messageDesc(file_cover_v1_cover, 331);
10820
10939
 
10821
10940
  /**
10822
10941
  * @generated from message blueapi.cover.v1.GetUnitTypeResponse
@@ -10833,7 +10952,7 @@ export type GetUnitTypeResponse = Message<"blueapi.cover.v1.GetUnitTypeResponse"
10833
10952
  * Use `create(GetUnitTypeResponseSchema)` to create a new message.
10834
10953
  */
10835
10954
  export const GetUnitTypeResponseSchema: GenMessage<GetUnitTypeResponse> = /*@__PURE__*/
10836
- messageDesc(file_cover_v1_cover, 330);
10955
+ messageDesc(file_cover_v1_cover, 332);
10837
10956
 
10838
10957
  /**
10839
10958
  * @generated from message blueapi.cover.v1.UpdateUnitTypeRequest
@@ -10880,7 +10999,7 @@ export type UpdateUnitTypeRequest = Message<"blueapi.cover.v1.UpdateUnitTypeRequ
10880
10999
  * Use `create(UpdateUnitTypeRequestSchema)` to create a new message.
10881
11000
  */
10882
11001
  export const UpdateUnitTypeRequestSchema: GenMessage<UpdateUnitTypeRequest> = /*@__PURE__*/
10883
- messageDesc(file_cover_v1_cover, 331);
11002
+ messageDesc(file_cover_v1_cover, 333);
10884
11003
 
10885
11004
  /**
10886
11005
  * @generated from message blueapi.cover.v1.UpdateUnitTypeResponse
@@ -10897,7 +11016,7 @@ export type UpdateUnitTypeResponse = Message<"blueapi.cover.v1.UpdateUnitTypeRes
10897
11016
  * Use `create(UpdateUnitTypeResponseSchema)` to create a new message.
10898
11017
  */
10899
11018
  export const UpdateUnitTypeResponseSchema: GenMessage<UpdateUnitTypeResponse> = /*@__PURE__*/
10900
- messageDesc(file_cover_v1_cover, 332);
11019
+ messageDesc(file_cover_v1_cover, 334);
10901
11020
 
10902
11021
  /**
10903
11022
  * @generated from message blueapi.cover.v1.DeleteUnitTypeRequest
@@ -10916,7 +11035,7 @@ export type DeleteUnitTypeRequest = Message<"blueapi.cover.v1.DeleteUnitTypeRequ
10916
11035
  * Use `create(DeleteUnitTypeRequestSchema)` to create a new message.
10917
11036
  */
10918
11037
  export const DeleteUnitTypeRequestSchema: GenMessage<DeleteUnitTypeRequest> = /*@__PURE__*/
10919
- messageDesc(file_cover_v1_cover, 333);
11038
+ messageDesc(file_cover_v1_cover, 335);
10920
11039
 
10921
11040
  /**
10922
11041
  * @generated from message blueapi.cover.v1.DeleteUnitTypeResponse
@@ -10933,7 +11052,7 @@ export type DeleteUnitTypeResponse = Message<"blueapi.cover.v1.DeleteUnitTypeRes
10933
11052
  * Use `create(DeleteUnitTypeResponseSchema)` to create a new message.
10934
11053
  */
10935
11054
  export const DeleteUnitTypeResponseSchema: GenMessage<DeleteUnitTypeResponse> = /*@__PURE__*/
10936
- messageDesc(file_cover_v1_cover, 334);
11055
+ messageDesc(file_cover_v1_cover, 336);
10937
11056
 
10938
11057
  /**
10939
11058
  * @generated from message blueapi.cover.v1.MergeUnitsRequest
@@ -10960,7 +11079,7 @@ export type MergeUnitsRequest = Message<"blueapi.cover.v1.MergeUnitsRequest"> &
10960
11079
  * Use `create(MergeUnitsRequestSchema)` to create a new message.
10961
11080
  */
10962
11081
  export const MergeUnitsRequestSchema: GenMessage<MergeUnitsRequest> = /*@__PURE__*/
10963
- messageDesc(file_cover_v1_cover, 335);
11082
+ messageDesc(file_cover_v1_cover, 337);
10964
11083
 
10965
11084
  /**
10966
11085
  * @generated from message blueapi.cover.v1.MergeUnitsResponse
@@ -10977,7 +11096,7 @@ export type MergeUnitsResponse = Message<"blueapi.cover.v1.MergeUnitsResponse">
10977
11096
  * Use `create(MergeUnitsResponseSchema)` to create a new message.
10978
11097
  */
10979
11098
  export const MergeUnitsResponseSchema: GenMessage<MergeUnitsResponse> = /*@__PURE__*/
10980
- messageDesc(file_cover_v1_cover, 336);
11099
+ messageDesc(file_cover_v1_cover, 338);
10981
11100
 
10982
11101
  /**
10983
11102
  * @generated from message blueapi.cover.v1.ListSuggestedUnitsRequest
@@ -10990,7 +11109,7 @@ export type ListSuggestedUnitsRequest = Message<"blueapi.cover.v1.ListSuggestedU
10990
11109
  * Use `create(ListSuggestedUnitsRequestSchema)` to create a new message.
10991
11110
  */
10992
11111
  export const ListSuggestedUnitsRequestSchema: GenMessage<ListSuggestedUnitsRequest> = /*@__PURE__*/
10993
- messageDesc(file_cover_v1_cover, 337);
11112
+ messageDesc(file_cover_v1_cover, 339);
10994
11113
 
10995
11114
  /**
10996
11115
  * @generated from message blueapi.cover.v1.ListSuggestedUnitsResponse
@@ -11007,7 +11126,7 @@ export type ListSuggestedUnitsResponse = Message<"blueapi.cover.v1.ListSuggested
11007
11126
  * Use `create(ListSuggestedUnitsResponseSchema)` to create a new message.
11008
11127
  */
11009
11128
  export const ListSuggestedUnitsResponseSchema: GenMessage<ListSuggestedUnitsResponse> = /*@__PURE__*/
11010
- messageDesc(file_cover_v1_cover, 338);
11129
+ messageDesc(file_cover_v1_cover, 340);
11011
11130
 
11012
11131
  /**
11013
11132
  * @generated from message blueapi.cover.v1.MergeSuggestedUnitsRequest
@@ -11039,7 +11158,7 @@ export type MergeSuggestedUnitsRequest = Message<"blueapi.cover.v1.MergeSuggeste
11039
11158
  * Use `create(MergeSuggestedUnitsRequestSchema)` to create a new message.
11040
11159
  */
11041
11160
  export const MergeSuggestedUnitsRequestSchema: GenMessage<MergeSuggestedUnitsRequest> = /*@__PURE__*/
11042
- messageDesc(file_cover_v1_cover, 339);
11161
+ messageDesc(file_cover_v1_cover, 341);
11043
11162
 
11044
11163
  /**
11045
11164
  * @generated from message blueapi.cover.v1.MergeSuggestedUnitsResponse
@@ -11056,7 +11175,7 @@ export type MergeSuggestedUnitsResponse = Message<"blueapi.cover.v1.MergeSuggest
11056
11175
  * Use `create(MergeSuggestedUnitsResponseSchema)` to create a new message.
11057
11176
  */
11058
11177
  export const MergeSuggestedUnitsResponseSchema: GenMessage<MergeSuggestedUnitsResponse> = /*@__PURE__*/
11059
- messageDesc(file_cover_v1_cover, 340);
11178
+ messageDesc(file_cover_v1_cover, 342);
11060
11179
 
11061
11180
  /**
11062
11181
  * @generated from message blueapi.cover.v1.CreateUnitFromSuggestedRequest
@@ -11073,7 +11192,7 @@ export type CreateUnitFromSuggestedRequest = Message<"blueapi.cover.v1.CreateUni
11073
11192
  * Use `create(CreateUnitFromSuggestedRequestSchema)` to create a new message.
11074
11193
  */
11075
11194
  export const CreateUnitFromSuggestedRequestSchema: GenMessage<CreateUnitFromSuggestedRequest> = /*@__PURE__*/
11076
- messageDesc(file_cover_v1_cover, 341);
11195
+ messageDesc(file_cover_v1_cover, 343);
11077
11196
 
11078
11197
  /**
11079
11198
  * @generated from message blueapi.cover.v1.CreateUnitFromSuggestedResponse
@@ -11090,7 +11209,7 @@ export type CreateUnitFromSuggestedResponse = Message<"blueapi.cover.v1.CreateUn
11090
11209
  * Use `create(CreateUnitFromSuggestedResponseSchema)` to create a new message.
11091
11210
  */
11092
11211
  export const CreateUnitFromSuggestedResponseSchema: GenMessage<CreateUnitFromSuggestedResponse> = /*@__PURE__*/
11093
- messageDesc(file_cover_v1_cover, 342);
11212
+ messageDesc(file_cover_v1_cover, 344);
11094
11213
 
11095
11214
  /**
11096
11215
  * @generated from message blueapi.cover.v1.ListSharedResourcesRequest
@@ -11103,7 +11222,7 @@ export type ListSharedResourcesRequest = Message<"blueapi.cover.v1.ListSharedRes
11103
11222
  * Use `create(ListSharedResourcesRequestSchema)` to create a new message.
11104
11223
  */
11105
11224
  export const ListSharedResourcesRequestSchema: GenMessage<ListSharedResourcesRequest> = /*@__PURE__*/
11106
- messageDesc(file_cover_v1_cover, 343);
11225
+ messageDesc(file_cover_v1_cover, 345);
11107
11226
 
11108
11227
  /**
11109
11228
  * @generated from message blueapi.cover.v1.ListSharedResourcesResponse
@@ -11120,7 +11239,7 @@ export type ListSharedResourcesResponse = Message<"blueapi.cover.v1.ListSharedRe
11120
11239
  * Use `create(ListSharedResourcesResponseSchema)` to create a new message.
11121
11240
  */
11122
11241
  export const ListSharedResourcesResponseSchema: GenMessage<ListSharedResourcesResponse> = /*@__PURE__*/
11123
- messageDesc(file_cover_v1_cover, 344);
11242
+ messageDesc(file_cover_v1_cover, 346);
11124
11243
 
11125
11244
  /**
11126
11245
  * @generated from message blueapi.cover.v1.CreateSharedResourcesRequest
@@ -11164,7 +11283,7 @@ export type CreateSharedResourcesRequest = Message<"blueapi.cover.v1.CreateShare
11164
11283
  * Use `create(CreateSharedResourcesRequestSchema)` to create a new message.
11165
11284
  */
11166
11285
  export const CreateSharedResourcesRequestSchema: GenMessage<CreateSharedResourcesRequest> = /*@__PURE__*/
11167
- messageDesc(file_cover_v1_cover, 345);
11286
+ messageDesc(file_cover_v1_cover, 347);
11168
11287
 
11169
11288
  /**
11170
11289
  * @generated from message blueapi.cover.v1.CreateSharedResourcesResponse
@@ -11181,7 +11300,7 @@ export type CreateSharedResourcesResponse = Message<"blueapi.cover.v1.CreateShar
11181
11300
  * Use `create(CreateSharedResourcesResponseSchema)` to create a new message.
11182
11301
  */
11183
11302
  export const CreateSharedResourcesResponseSchema: GenMessage<CreateSharedResourcesResponse> = /*@__PURE__*/
11184
- messageDesc(file_cover_v1_cover, 346);
11303
+ messageDesc(file_cover_v1_cover, 348);
11185
11304
 
11186
11305
  /**
11187
11306
  * @generated from message blueapi.cover.v1.GetSharedResourcesRequest
@@ -11200,7 +11319,7 @@ export type GetSharedResourcesRequest = Message<"blueapi.cover.v1.GetSharedResou
11200
11319
  * Use `create(GetSharedResourcesRequestSchema)` to create a new message.
11201
11320
  */
11202
11321
  export const GetSharedResourcesRequestSchema: GenMessage<GetSharedResourcesRequest> = /*@__PURE__*/
11203
- messageDesc(file_cover_v1_cover, 347);
11322
+ messageDesc(file_cover_v1_cover, 349);
11204
11323
 
11205
11324
  /**
11206
11325
  * @generated from message blueapi.cover.v1.GetSharedResourcesResponse
@@ -11217,7 +11336,7 @@ export type GetSharedResourcesResponse = Message<"blueapi.cover.v1.GetSharedReso
11217
11336
  * Use `create(GetSharedResourcesResponseSchema)` to create a new message.
11218
11337
  */
11219
11338
  export const GetSharedResourcesResponseSchema: GenMessage<GetSharedResourcesResponse> = /*@__PURE__*/
11220
- messageDesc(file_cover_v1_cover, 348);
11339
+ messageDesc(file_cover_v1_cover, 350);
11221
11340
 
11222
11341
  /**
11223
11342
  * @generated from message blueapi.cover.v1.UpdateSharedResourcesRequest
@@ -11278,7 +11397,7 @@ export type UpdateSharedResourcesRequest = Message<"blueapi.cover.v1.UpdateShare
11278
11397
  * Use `create(UpdateSharedResourcesRequestSchema)` to create a new message.
11279
11398
  */
11280
11399
  export const UpdateSharedResourcesRequestSchema: GenMessage<UpdateSharedResourcesRequest> = /*@__PURE__*/
11281
- messageDesc(file_cover_v1_cover, 349);
11400
+ messageDesc(file_cover_v1_cover, 351);
11282
11401
 
11283
11402
  /**
11284
11403
  * @generated from message blueapi.cover.v1.UpdateSharedResourcesResponse
@@ -11295,7 +11414,7 @@ export type UpdateSharedResourcesResponse = Message<"blueapi.cover.v1.UpdateShar
11295
11414
  * Use `create(UpdateSharedResourcesResponseSchema)` to create a new message.
11296
11415
  */
11297
11416
  export const UpdateSharedResourcesResponseSchema: GenMessage<UpdateSharedResourcesResponse> = /*@__PURE__*/
11298
- messageDesc(file_cover_v1_cover, 350);
11417
+ messageDesc(file_cover_v1_cover, 352);
11299
11418
 
11300
11419
  /**
11301
11420
  * @generated from message blueapi.cover.v1.DeleteSharedResourcesRequest
@@ -11314,7 +11433,7 @@ export type DeleteSharedResourcesRequest = Message<"blueapi.cover.v1.DeleteShare
11314
11433
  * Use `create(DeleteSharedResourcesRequestSchema)` to create a new message.
11315
11434
  */
11316
11435
  export const DeleteSharedResourcesRequestSchema: GenMessage<DeleteSharedResourcesRequest> = /*@__PURE__*/
11317
- messageDesc(file_cover_v1_cover, 351);
11436
+ messageDesc(file_cover_v1_cover, 353);
11318
11437
 
11319
11438
  /**
11320
11439
  * @generated from message blueapi.cover.v1.DeleteSharedResourcesResponse
@@ -11331,7 +11450,7 @@ export type DeleteSharedResourcesResponse = Message<"blueapi.cover.v1.DeleteShar
11331
11450
  * Use `create(DeleteSharedResourcesResponseSchema)` to create a new message.
11332
11451
  */
11333
11452
  export const DeleteSharedResourcesResponseSchema: GenMessage<DeleteSharedResourcesResponse> = /*@__PURE__*/
11334
- messageDesc(file_cover_v1_cover, 352);
11453
+ messageDesc(file_cover_v1_cover, 354);
11335
11454
 
11336
11455
  /**
11337
11456
  * @generated from message blueapi.cover.v1.ListUnitMetricsRequest
@@ -11364,7 +11483,7 @@ export type ListUnitMetricsRequest = Message<"blueapi.cover.v1.ListUnitMetricsRe
11364
11483
  * Use `create(ListUnitMetricsRequestSchema)` to create a new message.
11365
11484
  */
11366
11485
  export const ListUnitMetricsRequestSchema: GenMessage<ListUnitMetricsRequest> = /*@__PURE__*/
11367
- messageDesc(file_cover_v1_cover, 353);
11486
+ messageDesc(file_cover_v1_cover, 355);
11368
11487
 
11369
11488
  /**
11370
11489
  * @generated from message blueapi.cover.v1.ListUnitMetricsResponse
@@ -11381,7 +11500,7 @@ export type ListUnitMetricsResponse = Message<"blueapi.cover.v1.ListUnitMetricsR
11381
11500
  * Use `create(ListUnitMetricsResponseSchema)` to create a new message.
11382
11501
  */
11383
11502
  export const ListUnitMetricsResponseSchema: GenMessage<ListUnitMetricsResponse> = /*@__PURE__*/
11384
- messageDesc(file_cover_v1_cover, 354);
11503
+ messageDesc(file_cover_v1_cover, 356);
11385
11504
 
11386
11505
  /**
11387
11506
  * @generated from message blueapi.cover.v1.CreateUnitMetricRequest
@@ -11425,7 +11544,7 @@ export type CreateUnitMetricRequest = Message<"blueapi.cover.v1.CreateUnitMetric
11425
11544
  * Use `create(CreateUnitMetricRequestSchema)` to create a new message.
11426
11545
  */
11427
11546
  export const CreateUnitMetricRequestSchema: GenMessage<CreateUnitMetricRequest> = /*@__PURE__*/
11428
- messageDesc(file_cover_v1_cover, 355);
11547
+ messageDesc(file_cover_v1_cover, 357);
11429
11548
 
11430
11549
  /**
11431
11550
  * @generated from message blueapi.cover.v1.CreateUnitMetricResponse
@@ -11442,7 +11561,7 @@ export type CreateUnitMetricResponse = Message<"blueapi.cover.v1.CreateUnitMetri
11442
11561
  * Use `create(CreateUnitMetricResponseSchema)` to create a new message.
11443
11562
  */
11444
11563
  export const CreateUnitMetricResponseSchema: GenMessage<CreateUnitMetricResponse> = /*@__PURE__*/
11445
- messageDesc(file_cover_v1_cover, 356);
11564
+ messageDesc(file_cover_v1_cover, 358);
11446
11565
 
11447
11566
  /**
11448
11567
  * @generated from message blueapi.cover.v1.GetUnitMetricRequest
@@ -11461,7 +11580,7 @@ export type GetUnitMetricRequest = Message<"blueapi.cover.v1.GetUnitMetricReques
11461
11580
  * Use `create(GetUnitMetricRequestSchema)` to create a new message.
11462
11581
  */
11463
11582
  export const GetUnitMetricRequestSchema: GenMessage<GetUnitMetricRequest> = /*@__PURE__*/
11464
- messageDesc(file_cover_v1_cover, 357);
11583
+ messageDesc(file_cover_v1_cover, 359);
11465
11584
 
11466
11585
  /**
11467
11586
  * @generated from message blueapi.cover.v1.GetUnitMetricResponse
@@ -11478,7 +11597,7 @@ export type GetUnitMetricResponse = Message<"blueapi.cover.v1.GetUnitMetricRespo
11478
11597
  * Use `create(GetUnitMetricResponseSchema)` to create a new message.
11479
11598
  */
11480
11599
  export const GetUnitMetricResponseSchema: GenMessage<GetUnitMetricResponse> = /*@__PURE__*/
11481
- messageDesc(file_cover_v1_cover, 358);
11600
+ messageDesc(file_cover_v1_cover, 360);
11482
11601
 
11483
11602
  /**
11484
11603
  * @generated from message blueapi.cover.v1.UpdateUnitMetricRequest
@@ -11539,7 +11658,7 @@ export type UpdateUnitMetricRequest = Message<"blueapi.cover.v1.UpdateUnitMetric
11539
11658
  * Use `create(UpdateUnitMetricRequestSchema)` to create a new message.
11540
11659
  */
11541
11660
  export const UpdateUnitMetricRequestSchema: GenMessage<UpdateUnitMetricRequest> = /*@__PURE__*/
11542
- messageDesc(file_cover_v1_cover, 359);
11661
+ messageDesc(file_cover_v1_cover, 361);
11543
11662
 
11544
11663
  /**
11545
11664
  * @generated from message blueapi.cover.v1.UpdateUnitMetricResponse
@@ -11556,7 +11675,7 @@ export type UpdateUnitMetricResponse = Message<"blueapi.cover.v1.UpdateUnitMetri
11556
11675
  * Use `create(UpdateUnitMetricResponseSchema)` to create a new message.
11557
11676
  */
11558
11677
  export const UpdateUnitMetricResponseSchema: GenMessage<UpdateUnitMetricResponse> = /*@__PURE__*/
11559
- messageDesc(file_cover_v1_cover, 360);
11678
+ messageDesc(file_cover_v1_cover, 362);
11560
11679
 
11561
11680
  /**
11562
11681
  * @generated from message blueapi.cover.v1.DeleteUnitMetricRequest
@@ -11575,7 +11694,7 @@ export type DeleteUnitMetricRequest = Message<"blueapi.cover.v1.DeleteUnitMetric
11575
11694
  * Use `create(DeleteUnitMetricRequestSchema)` to create a new message.
11576
11695
  */
11577
11696
  export const DeleteUnitMetricRequestSchema: GenMessage<DeleteUnitMetricRequest> = /*@__PURE__*/
11578
- messageDesc(file_cover_v1_cover, 361);
11697
+ messageDesc(file_cover_v1_cover, 363);
11579
11698
 
11580
11699
  /**
11581
11700
  * @generated from message blueapi.cover.v1.DeleteUnitMetricResponse
@@ -11592,7 +11711,7 @@ export type DeleteUnitMetricResponse = Message<"blueapi.cover.v1.DeleteUnitMetri
11592
11711
  * Use `create(DeleteUnitMetricResponseSchema)` to create a new message.
11593
11712
  */
11594
11713
  export const DeleteUnitMetricResponseSchema: GenMessage<DeleteUnitMetricResponse> = /*@__PURE__*/
11595
- messageDesc(file_cover_v1_cover, 362);
11714
+ messageDesc(file_cover_v1_cover, 364);
11596
11715
 
11597
11716
  /**
11598
11717
  * @generated from message blueapi.cover.v1.PreviewGoogleSheetRequest
@@ -11636,7 +11755,7 @@ export type PreviewGoogleSheetRequest = Message<"blueapi.cover.v1.PreviewGoogleS
11636
11755
  * Use `create(PreviewGoogleSheetRequestSchema)` to create a new message.
11637
11756
  */
11638
11757
  export const PreviewGoogleSheetRequestSchema: GenMessage<PreviewGoogleSheetRequest> = /*@__PURE__*/
11639
- messageDesc(file_cover_v1_cover, 363);
11758
+ messageDesc(file_cover_v1_cover, 365);
11640
11759
 
11641
11760
  /**
11642
11761
  * @generated from message blueapi.cover.v1.PreviewGoogleSheetResponse
@@ -11662,7 +11781,7 @@ export type PreviewGoogleSheetResponse = Message<"blueapi.cover.v1.PreviewGoogle
11662
11781
  * Use `create(PreviewGoogleSheetResponseSchema)` to create a new message.
11663
11782
  */
11664
11783
  export const PreviewGoogleSheetResponseSchema: GenMessage<PreviewGoogleSheetResponse> = /*@__PURE__*/
11665
- messageDesc(file_cover_v1_cover, 364);
11784
+ messageDesc(file_cover_v1_cover, 366);
11666
11785
 
11667
11786
  /**
11668
11787
  * @generated from message blueapi.cover.v1.ConfirmGoogleSheetAccessRequest
@@ -11682,7 +11801,7 @@ export type ConfirmGoogleSheetAccessRequest = Message<"blueapi.cover.v1.ConfirmG
11682
11801
  * Use `create(ConfirmGoogleSheetAccessRequestSchema)` to create a new message.
11683
11802
  */
11684
11803
  export const ConfirmGoogleSheetAccessRequestSchema: GenMessage<ConfirmGoogleSheetAccessRequest> = /*@__PURE__*/
11685
- messageDesc(file_cover_v1_cover, 365);
11804
+ messageDesc(file_cover_v1_cover, 367);
11686
11805
 
11687
11806
  /**
11688
11807
  * @generated from message blueapi.cover.v1.ConfirmGoogleSheetAccessResponse
@@ -11710,7 +11829,7 @@ export type ConfirmGoogleSheetAccessResponse = Message<"blueapi.cover.v1.Confirm
11710
11829
  * Use `create(ConfirmGoogleSheetAccessResponseSchema)` to create a new message.
11711
11830
  */
11712
11831
  export const ConfirmGoogleSheetAccessResponseSchema: GenMessage<ConfirmGoogleSheetAccessResponse> = /*@__PURE__*/
11713
- messageDesc(file_cover_v1_cover, 366);
11832
+ messageDesc(file_cover_v1_cover, 368);
11714
11833
 
11715
11834
  /**
11716
11835
  * @generated from message blueapi.cover.v1.GetCloudwatchMetadataRequest
@@ -11762,7 +11881,7 @@ export type GetCloudwatchMetadataRequest = Message<"blueapi.cover.v1.GetCloudwat
11762
11881
  * Use `create(GetCloudwatchMetadataRequestSchema)` to create a new message.
11763
11882
  */
11764
11883
  export const GetCloudwatchMetadataRequestSchema: GenMessage<GetCloudwatchMetadataRequest> = /*@__PURE__*/
11765
- messageDesc(file_cover_v1_cover, 367);
11884
+ messageDesc(file_cover_v1_cover, 369);
11766
11885
 
11767
11886
  /**
11768
11887
  * @generated from message blueapi.cover.v1.GetCloudwatchMetadataResponse
@@ -11789,7 +11908,7 @@ export type GetCloudwatchMetadataResponse = Message<"blueapi.cover.v1.GetCloudwa
11789
11908
  * Use `create(GetCloudwatchMetadataResponseSchema)` to create a new message.
11790
11909
  */
11791
11910
  export const GetCloudwatchMetadataResponseSchema: GenMessage<GetCloudwatchMetadataResponse> = /*@__PURE__*/
11792
- messageDesc(file_cover_v1_cover, 368);
11911
+ messageDesc(file_cover_v1_cover, 370);
11793
11912
 
11794
11913
  /**
11795
11914
  * @generated from message blueapi.cover.v1.GetCloudwatchMetadataResponse.Dimension
@@ -11811,7 +11930,7 @@ export type GetCloudwatchMetadataResponse_Dimension = Message<"blueapi.cover.v1.
11811
11930
  * Use `create(GetCloudwatchMetadataResponse_DimensionSchema)` to create a new message.
11812
11931
  */
11813
11932
  export const GetCloudwatchMetadataResponse_DimensionSchema: GenMessage<GetCloudwatchMetadataResponse_Dimension> = /*@__PURE__*/
11814
- messageDesc(file_cover_v1_cover, 368, 0);
11933
+ messageDesc(file_cover_v1_cover, 370, 0);
11815
11934
 
11816
11935
  /**
11817
11936
  * Request message for GetDiscountPlan
@@ -11909,7 +12028,7 @@ export type GetDiscountPlanRequest = Message<"blueapi.cover.v1.GetDiscountPlanRe
11909
12028
  * Use `create(GetDiscountPlanRequestSchema)` to create a new message.
11910
12029
  */
11911
12030
  export const GetDiscountPlanRequestSchema: GenMessage<GetDiscountPlanRequest> = /*@__PURE__*/
11912
- messageDesc(file_cover_v1_cover, 369);
12031
+ messageDesc(file_cover_v1_cover, 371);
11913
12032
 
11914
12033
  /**
11915
12034
  * Response message for GetDiscountPlan
@@ -11933,7 +12052,7 @@ export type GetDiscountPlanResponse = Message<"blueapi.cover.v1.GetDiscountPlanR
11933
12052
  * Use `create(GetDiscountPlanResponseSchema)` to create a new message.
11934
12053
  */
11935
12054
  export const GetDiscountPlanResponseSchema: GenMessage<GetDiscountPlanResponse> = /*@__PURE__*/
11936
- messageDesc(file_cover_v1_cover, 370);
12055
+ messageDesc(file_cover_v1_cover, 372);
11937
12056
 
11938
12057
  /**
11939
12058
  * Request message for ListNonperformingRate
@@ -11982,7 +12101,7 @@ export type ListNonperformingRateRequest = Message<"blueapi.cover.v1.ListNonperf
11982
12101
  * Use `create(ListNonperformingRateRequestSchema)` to create a new message.
11983
12102
  */
11984
12103
  export const ListNonperformingRateRequestSchema: GenMessage<ListNonperformingRateRequest> = /*@__PURE__*/
11985
- messageDesc(file_cover_v1_cover, 371);
12104
+ messageDesc(file_cover_v1_cover, 373);
11986
12105
 
11987
12106
  /**
11988
12107
  * Response message for ListNonperformingRate
@@ -12001,7 +12120,7 @@ export type ListNonperformingRateResponse = Message<"blueapi.cover.v1.ListNonper
12001
12120
  * Use `create(ListNonperformingRateResponseSchema)` to create a new message.
12002
12121
  */
12003
12122
  export const ListNonperformingRateResponseSchema: GenMessage<ListNonperformingRateResponse> = /*@__PURE__*/
12004
- messageDesc(file_cover_v1_cover, 372);
12123
+ messageDesc(file_cover_v1_cover, 374);
12005
12124
 
12006
12125
  /**
12007
12126
  * @generated from message blueapi.cover.v1.ListNonperformingRateResponse.Nonperforming
@@ -12033,7 +12152,7 @@ export type ListNonperformingRateResponse_Nonperforming = Message<"blueapi.cover
12033
12152
  * Use `create(ListNonperformingRateResponse_NonperformingSchema)` to create a new message.
12034
12153
  */
12035
12154
  export const ListNonperformingRateResponse_NonperformingSchema: GenMessage<ListNonperformingRateResponse_Nonperforming> = /*@__PURE__*/
12036
- messageDesc(file_cover_v1_cover, 372, 0);
12155
+ messageDesc(file_cover_v1_cover, 374, 0);
12037
12156
 
12038
12157
  /**
12039
12158
  * Request message for ListUntaggedResources
@@ -12082,7 +12201,7 @@ export type ListUntaggedResourcesRequest = Message<"blueapi.cover.v1.ListUntagge
12082
12201
  * Use `create(ListUntaggedResourcesRequestSchema)` to create a new message.
12083
12202
  */
12084
12203
  export const ListUntaggedResourcesRequestSchema: GenMessage<ListUntaggedResourcesRequest> = /*@__PURE__*/
12085
- messageDesc(file_cover_v1_cover, 373);
12204
+ messageDesc(file_cover_v1_cover, 375);
12086
12205
 
12087
12206
  /**
12088
12207
  * Response message for ListUntaggedResources
@@ -12101,7 +12220,7 @@ export type ListUntaggedResourcesResponse = Message<"blueapi.cover.v1.ListUntagg
12101
12220
  * Use `create(ListUntaggedResourcesResponseSchema)` to create a new message.
12102
12221
  */
12103
12222
  export const ListUntaggedResourcesResponseSchema: GenMessage<ListUntaggedResourcesResponse> = /*@__PURE__*/
12104
- messageDesc(file_cover_v1_cover, 374);
12223
+ messageDesc(file_cover_v1_cover, 376);
12105
12224
 
12106
12225
  /**
12107
12226
  * @generated from message blueapi.cover.v1.ListUntaggedResourcesResponse.UntaggedResources
@@ -12143,7 +12262,7 @@ export type ListUntaggedResourcesResponse_UntaggedResources = Message<"blueapi.c
12143
12262
  * Use `create(ListUntaggedResourcesResponse_UntaggedResourcesSchema)` to create a new message.
12144
12263
  */
12145
12264
  export const ListUntaggedResourcesResponse_UntaggedResourcesSchema: GenMessage<ListUntaggedResourcesResponse_UntaggedResources> = /*@__PURE__*/
12146
- messageDesc(file_cover_v1_cover, 374, 0);
12265
+ messageDesc(file_cover_v1_cover, 376, 0);
12147
12266
 
12148
12267
  /**
12149
12268
  * Status of upload file
@@ -12219,6 +12338,7 @@ export const Cover: GenService<{
12219
12338
  * Create a member
12220
12339
  *
12221
12340
  * @generated from rpc blueapi.cover.v1.Cover.CreateMember
12341
+ * @deprecated
12222
12342
  */
12223
12343
  createMember: {
12224
12344
  methodKind: "unary";
@@ -14167,6 +14287,16 @@ export const Cover: GenService<{
14167
14287
  input: typeof ReinviteUserRequestSchema;
14168
14288
  output: typeof ReinviteUserResponseSchema;
14169
14289
  },
14290
+ /**
14291
+ * Retrieves a user's details by their ID.
14292
+ *
14293
+ * @generated from rpc blueapi.cover.v1.Cover.GetUser
14294
+ */
14295
+ getUser: {
14296
+ methodKind: "unary";
14297
+ input: typeof GetUserRequestSchema;
14298
+ output: typeof GetUserResponseSchema;
14299
+ },
14170
14300
  }> = /*@__PURE__*/
14171
14301
  serviceDesc(file_cover_v1_cover, 0);
14172
14302