@eide/foir-proto-ts 0.72.0 → 0.74.0

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eide/foir-proto-ts",
3
- "version": "0.72.0",
3
+ "version": "0.74.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./analytics/v1/analytics_pb": "./src/analytics/v1/analytics_pb.js",
@@ -3,7 +3,7 @@
3
3
  /* eslint-disable */
4
4
  // @ts-nocheck
5
5
 
6
- import { BatchPublishVersionsRequest, BatchPublishVersionsResponse, BatchRecordOperationsRequest, BatchRecordOperationsResponse, BatchResolveRecordsRequest, BatchResolveRecordsResponse, BulkUpdateRecordsRequest, BulkUpdateRecordsResponse, CancelScheduledRecordPublishRequest, CancelScheduledRecordPublishResponse, CheckLookupAvailabilityRequest, CheckLookupAvailabilityResponse, CreateRecordRequest, CreateRecordResponse, CreateVariantRequest, CreateVariantResponse, CreateVersionRequest, CreateVersionResponse, DeleteEmbeddingsRequest, DeleteEmbeddingsResponse, DeleteRecordRequest, DeleteRecordResponse, DeleteVariantRequest, DeleteVariantResponse, DuplicateRecordRequest, DuplicateRecordResponse, DuplicateRecordsBulkRequest, DuplicateRecordsBulkResponse, EnqueueGenerateEmbeddingRequest, EnqueueGenerateEmbeddingResponse, FindSimilarRecordsRequest, FindSimilarRecordsResponse, GetEmbeddingStatsRequest, GetEmbeddingStatsResponse, GetRecordByKeyOrIdRequest, GetRecordByKeyOrIdResponse, GetRecordByKeyRequest, GetRecordByKeyResponse, GetRecordEmbeddingsRequest, GetRecordEmbeddingsResponse, GetRecordRequest, GetRecordResponse, GetScheduledPublishRequest, GetScheduledPublishResponse, GlobalSearchRequest, GlobalSearchResponse, ListDraftVersionsRequest, ListDraftVersionsResponse, ListLookupConflictsRequest, ListLookupConflictsResponse, ListRecordsRequest, ListRecordsResponse, ListRecordVariantsRequest, ListRecordVariantsResponse, ListRecordVersionsRequest, ListRecordVersionsResponse, ListScheduledPublishesRequest, ListScheduledPublishesResponse, LookupRecordModelsRequest, LookupRecordModelsResponse, LookupRecordRequest, LookupRecordResponse, PublishVersionRequest, PublishVersionResponse, RebuildModelLookupsRequest, RebuildModelLookupsResponse, RevertToVersionRequest, RevertToVersionResponse, SaveContentRequest, SaveContentResponse, ScheduleRecordPublishRequest, ScheduleRecordPublishResponse, SearchEmbeddingsRequest, SearchEmbeddingsResponse, SetDefaultVariantRequest, SetDefaultVariantResponse, UnpublishRecordRequest, UnpublishRecordResponse, UpdateRecordRequest, UpdateRecordResponse, UpdateVariantRequest, UpdateVariantResponse, UpsertRecordRequest, UpsertRecordResponse, WriteEmbeddingsRequest, WriteEmbeddingsResponse } from "./records_pbjs";
6
+ import { BackfillModelIndexesRequest, BackfillModelIndexesResponse, BackfillQueryableIndexRequest, BackfillQueryableIndexResponse, BatchPublishVersionsRequest, BatchPublishVersionsResponse, BatchRecordOperationsRequest, BatchRecordOperationsResponse, BatchResolveRecordsRequest, BatchResolveRecordsResponse, BulkUpdateRecordsRequest, BulkUpdateRecordsResponse, CancelScheduledRecordPublishRequest, CancelScheduledRecordPublishResponse, CheckLookupAvailabilityRequest, CheckLookupAvailabilityResponse, CreateRecordRequest, CreateRecordResponse, CreateVariantRequest, CreateVariantResponse, CreateVersionRequest, CreateVersionResponse, DeleteEmbeddingsRequest, DeleteEmbeddingsResponse, DeleteRecordRequest, DeleteRecordResponse, DeleteVariantRequest, DeleteVariantResponse, DuplicateRecordRequest, DuplicateRecordResponse, DuplicateRecordsBulkRequest, DuplicateRecordsBulkResponse, EnqueueGenerateEmbeddingRequest, EnqueueGenerateEmbeddingResponse, FindSimilarRecordsRequest, FindSimilarRecordsResponse, GetEmbeddingStatsRequest, GetEmbeddingStatsResponse, GetRecordByKeyOrIdRequest, GetRecordByKeyOrIdResponse, GetRecordByKeyRequest, GetRecordByKeyResponse, GetRecordEmbeddingsRequest, GetRecordEmbeddingsResponse, GetRecordRequest, GetRecordResponse, GetScheduledPublishRequest, GetScheduledPublishResponse, GlobalSearchRequest, GlobalSearchResponse, ListDraftVersionsRequest, ListDraftVersionsResponse, ListLookupConflictsRequest, ListLookupConflictsResponse, ListRecordsRequest, ListRecordsResponse, ListRecordVariantsRequest, ListRecordVariantsResponse, ListRecordVersionsRequest, ListRecordVersionsResponse, ListScheduledPublishesRequest, ListScheduledPublishesResponse, LookupRecordModelsRequest, LookupRecordModelsResponse, LookupRecordRequest, LookupRecordResponse, PublishVersionRequest, PublishVersionResponse, RebuildModelLookupsRequest, RebuildModelLookupsResponse, RevertToVersionRequest, RevertToVersionResponse, SaveContentRequest, SaveContentResponse, ScheduleRecordPublishRequest, ScheduleRecordPublishResponse, SearchEmbeddingsRequest, SearchEmbeddingsResponse, SetDefaultVariantRequest, SetDefaultVariantResponse, UnpublishRecordRequest, UnpublishRecordResponse, UpdateRecordRequest, UpdateRecordResponse, UpdateVariantRequest, UpdateVariantResponse, UpsertRecordRequest, UpsertRecordResponse, WriteEmbeddingsRequest, WriteEmbeddingsResponse } from "./records_pbjs";
7
7
  import { MethodKind } from "@bufbuild/protobuf";
8
8
 
9
9
  /**
@@ -104,6 +104,24 @@ export declare const RecordsService: {
104
104
  readonly O: typeof BulkUpdateRecordsResponse,
105
105
  readonly kind: MethodKind.Unary,
106
106
  },
107
+ /**
108
+ * @generated from rpc records.v1.RecordsService.BackfillQueryableIndex
109
+ */
110
+ readonly backfillQueryableIndex: {
111
+ readonly name: "BackfillQueryableIndex",
112
+ readonly I: typeof BackfillQueryableIndexRequest,
113
+ readonly O: typeof BackfillQueryableIndexResponse,
114
+ readonly kind: MethodKind.Unary,
115
+ },
116
+ /**
117
+ * @generated from rpc records.v1.RecordsService.BackfillModelIndexes
118
+ */
119
+ readonly backfillModelIndexes: {
120
+ readonly name: "BackfillModelIndexes",
121
+ readonly I: typeof BackfillModelIndexesRequest,
122
+ readonly O: typeof BackfillModelIndexesResponse,
123
+ readonly kind: MethodKind.Unary,
124
+ },
107
125
  /**
108
126
  * @generated from rpc records.v1.RecordsService.DuplicateRecord
109
127
  */
@@ -3,7 +3,7 @@
3
3
  /* eslint-disable */
4
4
  // @ts-nocheck
5
5
 
6
- import { BatchPublishVersionsRequest, BatchPublishVersionsResponse, BatchRecordOperationsRequest, BatchRecordOperationsResponse, BatchResolveRecordsRequest, BatchResolveRecordsResponse, BulkUpdateRecordsRequest, BulkUpdateRecordsResponse, CancelScheduledRecordPublishRequest, CancelScheduledRecordPublishResponse, CheckLookupAvailabilityRequest, CheckLookupAvailabilityResponse, CreateRecordRequest, CreateRecordResponse, CreateVariantRequest, CreateVariantResponse, CreateVersionRequest, CreateVersionResponse, DeleteEmbeddingsRequest, DeleteEmbeddingsResponse, DeleteRecordRequest, DeleteRecordResponse, DeleteVariantRequest, DeleteVariantResponse, DuplicateRecordRequest, DuplicateRecordResponse, DuplicateRecordsBulkRequest, DuplicateRecordsBulkResponse, EnqueueGenerateEmbeddingRequest, EnqueueGenerateEmbeddingResponse, FindSimilarRecordsRequest, FindSimilarRecordsResponse, GetEmbeddingStatsRequest, GetEmbeddingStatsResponse, GetRecordByKeyOrIdRequest, GetRecordByKeyOrIdResponse, GetRecordByKeyRequest, GetRecordByKeyResponse, GetRecordEmbeddingsRequest, GetRecordEmbeddingsResponse, GetRecordRequest, GetRecordResponse, GetScheduledPublishRequest, GetScheduledPublishResponse, GlobalSearchRequest, GlobalSearchResponse, ListDraftVersionsRequest, ListDraftVersionsResponse, ListLookupConflictsRequest, ListLookupConflictsResponse, ListRecordsRequest, ListRecordsResponse, ListRecordVariantsRequest, ListRecordVariantsResponse, ListRecordVersionsRequest, ListRecordVersionsResponse, ListScheduledPublishesRequest, ListScheduledPublishesResponse, LookupRecordModelsRequest, LookupRecordModelsResponse, LookupRecordRequest, LookupRecordResponse, PublishVersionRequest, PublishVersionResponse, RebuildModelLookupsRequest, RebuildModelLookupsResponse, RevertToVersionRequest, RevertToVersionResponse, SaveContentRequest, SaveContentResponse, ScheduleRecordPublishRequest, ScheduleRecordPublishResponse, SearchEmbeddingsRequest, SearchEmbeddingsResponse, SetDefaultVariantRequest, SetDefaultVariantResponse, UnpublishRecordRequest, UnpublishRecordResponse, UpdateRecordRequest, UpdateRecordResponse, UpdateVariantRequest, UpdateVariantResponse, UpsertRecordRequest, UpsertRecordResponse, WriteEmbeddingsRequest, WriteEmbeddingsResponse } from "./records_pbjs";
6
+ import { BackfillModelIndexesRequest, BackfillModelIndexesResponse, BackfillQueryableIndexRequest, BackfillQueryableIndexResponse, BatchPublishVersionsRequest, BatchPublishVersionsResponse, BatchRecordOperationsRequest, BatchRecordOperationsResponse, BatchResolveRecordsRequest, BatchResolveRecordsResponse, BulkUpdateRecordsRequest, BulkUpdateRecordsResponse, CancelScheduledRecordPublishRequest, CancelScheduledRecordPublishResponse, CheckLookupAvailabilityRequest, CheckLookupAvailabilityResponse, CreateRecordRequest, CreateRecordResponse, CreateVariantRequest, CreateVariantResponse, CreateVersionRequest, CreateVersionResponse, DeleteEmbeddingsRequest, DeleteEmbeddingsResponse, DeleteRecordRequest, DeleteRecordResponse, DeleteVariantRequest, DeleteVariantResponse, DuplicateRecordRequest, DuplicateRecordResponse, DuplicateRecordsBulkRequest, DuplicateRecordsBulkResponse, EnqueueGenerateEmbeddingRequest, EnqueueGenerateEmbeddingResponse, FindSimilarRecordsRequest, FindSimilarRecordsResponse, GetEmbeddingStatsRequest, GetEmbeddingStatsResponse, GetRecordByKeyOrIdRequest, GetRecordByKeyOrIdResponse, GetRecordByKeyRequest, GetRecordByKeyResponse, GetRecordEmbeddingsRequest, GetRecordEmbeddingsResponse, GetRecordRequest, GetRecordResponse, GetScheduledPublishRequest, GetScheduledPublishResponse, GlobalSearchRequest, GlobalSearchResponse, ListDraftVersionsRequest, ListDraftVersionsResponse, ListLookupConflictsRequest, ListLookupConflictsResponse, ListRecordsRequest, ListRecordsResponse, ListRecordVariantsRequest, ListRecordVariantsResponse, ListRecordVersionsRequest, ListRecordVersionsResponse, ListScheduledPublishesRequest, ListScheduledPublishesResponse, LookupRecordModelsRequest, LookupRecordModelsResponse, LookupRecordRequest, LookupRecordResponse, PublishVersionRequest, PublishVersionResponse, RebuildModelLookupsRequest, RebuildModelLookupsResponse, RevertToVersionRequest, RevertToVersionResponse, SaveContentRequest, SaveContentResponse, ScheduleRecordPublishRequest, ScheduleRecordPublishResponse, SearchEmbeddingsRequest, SearchEmbeddingsResponse, SetDefaultVariantRequest, SetDefaultVariantResponse, UnpublishRecordRequest, UnpublishRecordResponse, UpdateRecordRequest, UpdateRecordResponse, UpdateVariantRequest, UpdateVariantResponse, UpsertRecordRequest, UpsertRecordResponse, WriteEmbeddingsRequest, WriteEmbeddingsResponse } from "./records_pbjs";
7
7
  import { MethodKind } from "@bufbuild/protobuf";
8
8
 
9
9
  /**
@@ -104,6 +104,24 @@ export const RecordsService = {
104
104
  O: BulkUpdateRecordsResponse,
105
105
  kind: MethodKind.Unary,
106
106
  },
107
+ /**
108
+ * @generated from rpc records.v1.RecordsService.BackfillQueryableIndex
109
+ */
110
+ backfillQueryableIndex: {
111
+ name: "BackfillQueryableIndex",
112
+ I: BackfillQueryableIndexRequest,
113
+ O: BackfillQueryableIndexResponse,
114
+ kind: MethodKind.Unary,
115
+ },
116
+ /**
117
+ * @generated from rpc records.v1.RecordsService.BackfillModelIndexes
118
+ */
119
+ backfillModelIndexes: {
120
+ name: "BackfillModelIndexes",
121
+ I: BackfillModelIndexesRequest,
122
+ O: BackfillModelIndexesResponse,
123
+ kind: MethodKind.Unary,
124
+ },
107
125
  /**
108
126
  * @generated from rpc records.v1.RecordsService.DuplicateRecord
109
127
  */
@@ -987,6 +987,93 @@ export declare type BulkUpdateRecordsResponse = Message<"records.v1.BulkUpdateRe
987
987
  */
988
988
  export declare const BulkUpdateRecordsResponseSchema: GenMessage<BulkUpdateRecordsResponse>;
989
989
 
990
+ /**
991
+ * BackfillQueryableIndex walks every record of a model and (re)populates
992
+ * record_field_index rows for declared queryable fields. Required after
993
+ * a field is newly declared `queryable: true` on a model that already
994
+ * has records — without it, existing records have no index rows and
995
+ * the typed-filter SQL emitter's Tier 2 path silently excludes them.
996
+ * Idempotent: re-runs replace each record's index rows in place.
997
+ *
998
+ * @generated from message records.v1.BackfillQueryableIndexRequest
999
+ */
1000
+ export declare type BackfillQueryableIndexRequest = Message<"records.v1.BackfillQueryableIndexRequest"> & {
1001
+ /**
1002
+ * @generated from field: string model_key = 1;
1003
+ */
1004
+ modelKey: string;
1005
+ };
1006
+
1007
+ /**
1008
+ * Describes the message records.v1.BackfillQueryableIndexRequest.
1009
+ * Use `create(BackfillQueryableIndexRequestSchema)` to create a new message.
1010
+ */
1011
+ export declare const BackfillQueryableIndexRequestSchema: GenMessage<BackfillQueryableIndexRequest>;
1012
+
1013
+ /**
1014
+ * @generated from message records.v1.BackfillQueryableIndexResponse
1015
+ */
1016
+ export declare type BackfillQueryableIndexResponse = Message<"records.v1.BackfillQueryableIndexResponse"> & {
1017
+ /**
1018
+ * @generated from field: int32 records_indexed = 1;
1019
+ */
1020
+ recordsIndexed: number;
1021
+ };
1022
+
1023
+ /**
1024
+ * Describes the message records.v1.BackfillQueryableIndexResponse.
1025
+ * Use `create(BackfillQueryableIndexResponseSchema)` to create a new message.
1026
+ */
1027
+ export declare const BackfillQueryableIndexResponseSchema: GenMessage<BackfillQueryableIndexResponse>;
1028
+
1029
+ /**
1030
+ * BackfillModelIndexes is the operator-facing one-shot that rebuilds
1031
+ * both the record_lookups projection AND the record_field_index for
1032
+ * every record of a model. Use this after declaring a new lookup,
1033
+ * flipping `queryable: true` on a field, or whenever you suspect the
1034
+ * projections have drifted from records.data. Idempotent; safe to
1035
+ * re-run from cron.
1036
+ *
1037
+ * Internally composes BackfillModelLookups + BackfillQueryableIndex so
1038
+ * operators have one button to press after model schema changes
1039
+ * instead of remembering which index needs which RPC.
1040
+ *
1041
+ * @generated from message records.v1.BackfillModelIndexesRequest
1042
+ */
1043
+ export declare type BackfillModelIndexesRequest = Message<"records.v1.BackfillModelIndexesRequest"> & {
1044
+ /**
1045
+ * @generated from field: string model_key = 1;
1046
+ */
1047
+ modelKey: string;
1048
+ };
1049
+
1050
+ /**
1051
+ * Describes the message records.v1.BackfillModelIndexesRequest.
1052
+ * Use `create(BackfillModelIndexesRequestSchema)` to create a new message.
1053
+ */
1054
+ export declare const BackfillModelIndexesRequestSchema: GenMessage<BackfillModelIndexesRequest>;
1055
+
1056
+ /**
1057
+ * @generated from message records.v1.BackfillModelIndexesResponse
1058
+ */
1059
+ export declare type BackfillModelIndexesResponse = Message<"records.v1.BackfillModelIndexesResponse"> & {
1060
+ /**
1061
+ * @generated from field: int32 lookups_records_walked = 1;
1062
+ */
1063
+ lookupsRecordsWalked: number;
1064
+
1065
+ /**
1066
+ * @generated from field: int32 queryable_records_indexed = 2;
1067
+ */
1068
+ queryableRecordsIndexed: number;
1069
+ };
1070
+
1071
+ /**
1072
+ * Describes the message records.v1.BackfillModelIndexesResponse.
1073
+ * Use `create(BackfillModelIndexesResponseSchema)` to create a new message.
1074
+ */
1075
+ export declare const BackfillModelIndexesResponseSchema: GenMessage<BackfillModelIndexesResponse>;
1076
+
990
1077
  /**
991
1078
  * @generated from message records.v1.DuplicateRecordRequest
992
1079
  */
@@ -2918,6 +3005,22 @@ export declare const RecordsService: GenService<{
2918
3005
  input: typeof BulkUpdateRecordsRequestSchema;
2919
3006
  output: typeof BulkUpdateRecordsResponseSchema;
2920
3007
  },
3008
+ /**
3009
+ * @generated from rpc records.v1.RecordsService.BackfillQueryableIndex
3010
+ */
3011
+ backfillQueryableIndex: {
3012
+ methodKind: "unary";
3013
+ input: typeof BackfillQueryableIndexRequestSchema;
3014
+ output: typeof BackfillQueryableIndexResponseSchema;
3015
+ },
3016
+ /**
3017
+ * @generated from rpc records.v1.RecordsService.BackfillModelIndexes
3018
+ */
3019
+ backfillModelIndexes: {
3020
+ methodKind: "unary";
3021
+ input: typeof BackfillModelIndexesRequestSchema;
3022
+ output: typeof BackfillModelIndexesResponseSchema;
3023
+ },
2921
3024
  /**
2922
3025
  * @generated from rpc records.v1.RecordsService.DuplicateRecord
2923
3026
  */
@@ -10,7 +10,7 @@ import { file_expressions_v1_expressions } from "../../expressions/v1/expression
10
10
  * Describes the file records/v1/records.proto.
11
11
  */
12
12
  export const file_records_v1_records = /*@__PURE__*/
13
- fileDesc("ChhyZWNvcmRzL3YxL3JlY29yZHMucHJvdG8SCnJlY29yZHMudjEihA0KBlJlY29yZBIKCgJpZBgBIAEoCRIRCgltb2RlbF9rZXkYAiABKAkSGAoLbmF0dXJhbF9rZXkYAyABKAlIAIgBARIWCglwYXJlbnRfaWQYBCABKAlIAYgBARIrCgtyZWNvcmRfdHlwZRgFIAEoDjIWLnJlY29yZHMudjEuUmVjb3JkVHlwZRIlCgRkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCghtZXRhZGF0YRgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIYCgtjdXN0b21lcl9pZBgIIAEoCUgDiAEBEhEKCXRlbmFudF9pZBgKIAEoCRISCgpwcm9qZWN0X2lkGAsgASgJEhcKCmNyZWF0ZWRfYnkYFCABKAlIBIgBARIXCgp1cGRhdGVkX2J5GBUgASgJSAWIAQESLgoKY3JlYXRlZF9hdBgeIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgfIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGwoOdmVyc2lvbl9udW1iZXIYKCABKAVIBogBARIZCgxjb250ZW50X2hhc2gYKSABKAlIB4gBARIfChJjaGFuZ2VfZGVzY3JpcHRpb24YKiABKAlICIgBARIbCg5wdWJsaXNoX3N0YXR1cxgrIAEoCUgJiAEBEj0KFHNjaGVkdWxlZF9wdWJsaXNoX2F0GCwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgKiAEBEj8KFnNjaGVkdWxlZF91bnB1Ymxpc2hfYXQYLSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAuIAQESGAoLdmFyaWFudF9rZXkYMiABKAlIDIgBARIZCgx2YXJpYW50X25hbWUYMyABKAlIDYgBARIgChN2YXJpYW50X2Rlc2NyaXB0aW9uGDQgASgJSA6IAQESFwoKY2F0YWxvZ19pZBg1IAEoCUgPiAEBEhUKCHByaW9yaXR5GDYgASgFSBCIAQESPAoPdGFyZ2V0aW5nX3J1bGVzGDcgASgLMh4uZXhwcmVzc2lvbnMudjEuUnVsZUV4cHJlc3Npb25IEYgBARIXCgppc19kZWZhdWx0GDggASgISBKIAQESHwoSY3VycmVudF92ZXJzaW9uX2lkGDwgASgJSBOIAQESIQoUcHVibGlzaGVkX3ZlcnNpb25faWQYPSABKAlIFIgBARIlChhwdWJsaXNoZWRfdmVyc2lvbl9udW1iZXIYPiABKAVIFYgBARI1CgxwdWJsaXNoZWRfYXQYPyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBaIAQESGQoMcHVibGlzaGVkX2J5GEAgASgJSBeIAQESEwoLY2FuX3B1Ymxpc2gYQSABKAgSFQoNY2FuX3VucHVibGlzaBhCIAEoCBIfChdoYXNfdW5wdWJsaXNoZWRfY2hhbmdlcxhDIAEoCBIdChBtb2RlbF92ZXJzaW9uX2lkGEYgASgJSBiIAQFCDgoMX25hdHVyYWxfa2V5QgwKCl9wYXJlbnRfaWRCCwoJX21ldGFkYXRhQg4KDF9jdXN0b21lcl9pZEINCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieUIRCg9fdmVyc2lvbl9udW1iZXJCDwoNX2NvbnRlbnRfaGFzaEIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uQhEKD19wdWJsaXNoX3N0YXR1c0IXChVfc2NoZWR1bGVkX3B1Ymxpc2hfYXRCGQoXX3NjaGVkdWxlZF91bnB1Ymxpc2hfYXRCDgoMX3ZhcmlhbnRfa2V5Qg8KDV92YXJpYW50X25hbWVCFgoUX3ZhcmlhbnRfZGVzY3JpcHRpb25CDQoLX2NhdGFsb2dfaWRCCwoJX3ByaW9yaXR5QhIKEF90YXJnZXRpbmdfcnVsZXNCDQoLX2lzX2RlZmF1bHRCFQoTX2N1cnJlbnRfdmVyc2lvbl9pZEIXChVfcHVibGlzaGVkX3ZlcnNpb25faWRCGwoZX3B1Ymxpc2hlZF92ZXJzaW9uX251bWJlckIPCg1fcHVibGlzaGVkX2F0Qg8KDV9wdWJsaXNoZWRfYnlCEwoRX21vZGVsX3ZlcnNpb25faWQi9QEKD1B1Ymxpc2hTY2hlZHVsZRISCgp2ZXJzaW9uX2lkGAEgASgJEi4KCnB1Ymxpc2hfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKDHVucHVibGlzaF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIuCgpjcmVhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCgpjcmVhdGVkX2J5GAUgASgJSAGIAQFCDwoNX3VucHVibGlzaF9hdEINCgtfY3JlYXRlZF9ieSJ8CgxSZWNvcmRGaWx0ZXISDQoFZmllbGQYASABKAkSEAoIb3BlcmF0b3IYAiABKAkSJQoFdmFsdWUYAyABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSFgoJcmVmX21vZGVsGAQgASgJSACIAQFCDAoKX3JlZl9tb2RlbCIuCglTb3J0RmllbGQSDQoFZmllbGQYASABKAkSEgoKZGVzY2VuZGluZxgCIAEoCCKFAgoOQmF0Y2hPcGVyYXRpb24SLAoEdHlwZRgBIAEoDjIeLnJlY29yZHMudjEuQmF0Y2hPcGVyYXRpb25UeXBlEg8KAmlkGAIgASgJSACIAQESFgoJbW9kZWxfa2V5GAMgASgJSAGIAQESGAoLbmF0dXJhbF9rZXkYBCABKAlIAogBARIqCgRkYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEhgKC2N1c3RvbWVyX2lkGAYgASgJSASIAQFCBQoDX2lkQgwKCl9tb2RlbF9rZXlCDgoMX25hdHVyYWxfa2V5QgcKBV9kYXRhQg4KDF9jdXN0b21lcl9pZCKIAQoUQmF0Y2hPcGVyYXRpb25SZXN1bHQSDQoFaW5kZXgYASABKAUSDwoHc3VjY2VzcxgCIAEoCBInCgZyZWNvcmQYAyABKAsyEi5yZWNvcmRzLnYxLlJlY29yZEgAiAEBEhIKBWVycm9yGAQgASgJSAGIAQFCCQoHX3JlY29yZEIICgZfZXJyb3IimAIKE0NyZWF0ZVJlY29yZFJlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJEhgKC25hdHVyYWxfa2V5GAIgASgJSACIAQESJQoEZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSGAoLY3VzdG9tZXJfaWQYBCABKAlIAYgBARIuCghtZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIfChJjaGFuZ2VfZGVzY3JpcHRpb24YBiABKAlIA4gBAUIOCgxfbmF0dXJhbF9rZXlCDgoMX2N1c3RvbWVyX2lkQgsKCV9tZXRhZGF0YUIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uIqYBChRDcmVhdGVSZWNvcmRSZXNwb25zZRIiCgZyZWNvcmQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZBIoCgd2YXJpYW50GAIgASgLMhIucmVjb3Jkcy52MS5SZWNvcmRIAIgBARIoCgd2ZXJzaW9uGAMgASgLMhIucmVjb3Jkcy52MS5SZWNvcmRIAYgBAUIKCghfdmFyaWFudEIKCghfdmVyc2lvbiIeChBHZXRSZWNvcmRSZXF1ZXN0EgoKAmlkGAEgASgJIjcKEUdldFJlY29yZFJlc3BvbnNlEiIKBnJlY29yZBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIj8KFUdldFJlY29yZEJ5S2V5UmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSEwoLbmF0dXJhbF9rZXkYAiABKAkiPAoWR2V0UmVjb3JkQnlLZXlSZXNwb25zZRIiCgZyZWNvcmQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCJCChlHZXRSZWNvcmRCeUtleU9ySWRSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCRISCgppZGVudGlmaWVyGAIgASgJIkAKGkdldFJlY29yZEJ5S2V5T3JJZFJlc3BvbnNlEiIKBnJlY29yZBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIqADChJMaXN0UmVjb3Jkc1JlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJEg0KBWxpbWl0GAIgASgFEg4KBm9mZnNldBgDIAEoBRIpCgdmaWx0ZXJzGAQgAygLMhgucmVjb3Jkcy52MS5SZWNvcmRGaWx0ZXISIwoEc29ydBgFIAMoCzIVLnJlY29yZHMudjEuU29ydEZpZWxkEhgKC2N1c3RvbWVyX2lkGAYgASgJSACIAQESEwoGc2VhcmNoGAcgASgJSAGIAQESDwoHcHJldmlldxgIIAEoCBIrCgV3aGVyZRgJIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARISCgVhZnRlchgKIAEoCUgDiAEBEhMKBmJlZm9yZRgLIAEoCUgEiAEBEhIKBWZpcnN0GAwgASgFSAWIAQESEQoEbGFzdBgNIAEoBUgGiAEBQg4KDF9jdXN0b21lcl9pZEIJCgdfc2VhcmNoQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QilgEKE0xpc3RSZWNvcmRzUmVzcG9uc2USIwoHcmVjb3JkcxgBIAMoCzISLnJlY29yZHMudjEuUmVjb3JkEg0KBXRvdGFsGAIgASgFEiwKCXBhZ2VfaW5mbxgDIAEoCzIULnJlY29yZHMudjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8ikAEKCFBhZ2VJbmZvEhUKDWhhc19uZXh0X3BhZ2UYASABKAgSGQoRaGFzX3ByZXZpb3VzX3BhZ2UYAiABKAgSGQoMc3RhcnRfY3Vyc29yGAMgASgJSACIAQESFwoKZW5kX2N1cnNvchgEIAEoCUgBiAEBQg8KDV9zdGFydF9jdXJzb3JCDQoLX2VuZF9jdXJzb3IitwEKE1VwZGF0ZVJlY29yZFJlcXVlc3QSCgoCaWQYASABKAkSJQoEZGF0YRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSGAoLbmF0dXJhbF9rZXkYAyABKAlIAIgBARIyCgx0eXBlZF91cGRhdGUYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQFCDgoMX25hdHVyYWxfa2V5Qg8KDV90eXBlZF91cGRhdGUiOgoUVXBkYXRlUmVjb3JkUmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQiIQoTRGVsZXRlUmVjb3JkUmVxdWVzdBIKCgJpZBgBIAEoCSInChREZWxldGVSZWNvcmRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIqcBChNVcHNlcnRSZWNvcmRSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEhEKCW1vZGVsX2tleRgDIAEoCRITCgtuYXR1cmFsX2tleRgEIAEoCRIlCgRkYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIaChJjaGFuZ2VfZGVzY3JpcHRpb24YBiABKAkiSwoUVXBzZXJ0UmVjb3JkUmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQSDwoHY3JlYXRlZBgCIAEoCCJOChxCYXRjaFJlY29yZE9wZXJhdGlvbnNSZXF1ZXN0Ei4KCm9wZXJhdGlvbnMYASADKAsyGi5yZWNvcmRzLnYxLkJhdGNoT3BlcmF0aW9uIlIKHUJhdGNoUmVjb3JkT3BlcmF0aW9uc1Jlc3BvbnNlEjEKB3Jlc3VsdHMYASADKAsyIC5yZWNvcmRzLnYxLkJhdGNoT3BlcmF0aW9uUmVzdWx0In4KGEJ1bGtVcGRhdGVSZWNvcmRzUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSKAoGZmlsdGVyGAIgAygLMhgucmVjb3Jkcy52MS5SZWNvcmRGaWx0ZXISJQoEZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiKgoZQnVsa1VwZGF0ZVJlY29yZHNSZXNwb25zZRINCgVjb3VudBgBIAEoBSJWChZEdXBsaWNhdGVSZWNvcmRSZXF1ZXN0EgoKAmlkGAEgASgJEhwKD25ld19uYXR1cmFsX2tleRgCIAEoCUgAiAEBQhIKEF9uZXdfbmF0dXJhbF9rZXkiPQoXRHVwbGljYXRlUmVjb3JkUmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQiUAobRHVwbGljYXRlUmVjb3Jkc0J1bGtSZXF1ZXN0EgsKA2lkcxgBIAMoCRIWCgltb2RlbF9rZXkYAiABKAlIAIgBAUIMCgpfbW9kZWxfa2V5IkMKHER1cGxpY2F0ZVJlY29yZHNCdWxrUmVzcG9uc2USIwoHcmVjb3JkcxgBIAMoCzISLnJlY29yZHMudjEuUmVjb3JkIogBChRDcmVhdGVWZXJzaW9uUmVxdWVzdBIRCglwYXJlbnRfaWQYASABKAkSJQoEZGF0YRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSHwoSY2hhbmdlX2Rlc2NyaXB0aW9uGAMgASgJSACIAQFCFQoTX2NoYW5nZV9kZXNjcmlwdGlvbiI8ChVDcmVhdGVWZXJzaW9uUmVzcG9uc2USIwoHdmVyc2lvbhgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIisKFVB1Ymxpc2hWZXJzaW9uUmVxdWVzdBISCgp2ZXJzaW9uX2lkGAEgASgJIjwKFlB1Ymxpc2hWZXJzaW9uUmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQiKwoWVW5wdWJsaXNoUmVjb3JkUmVxdWVzdBIRCglyZWNvcmRfaWQYASABKAkiKgoXVW5wdWJsaXNoUmVjb3JkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIsChZSZXZlcnRUb1ZlcnNpb25SZXF1ZXN0EhIKCnZlcnNpb25faWQYASABKAkiPQoXUmV2ZXJ0VG9WZXJzaW9uUmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQiTQoZTGlzdFJlY29yZFZlcnNpb25zUmVxdWVzdBIRCglwYXJlbnRfaWQYASABKAkSDQoFbGltaXQYAiABKAUSDgoGb2Zmc2V0GAMgASgFIlEKGkxpc3RSZWNvcmRWZXJzaW9uc1Jlc3BvbnNlEiQKCHZlcnNpb25zGAEgAygLMhIucmVjb3Jkcy52MS5SZWNvcmQSDQoFdG90YWwYAiABKAUiZQoUQ3JlYXRlVmFyaWFudFJlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJEhMKC3ZhcmlhbnRfa2V5GAIgASgJEiUKBGRhdGEYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IjwKFUNyZWF0ZVZhcmlhbnRSZXNwb25zZRIjCgd2YXJpYW50GAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQimgEKFFVwZGF0ZVZhcmlhbnRSZXF1ZXN0EhIKCnZhcmlhbnRfaWQYASABKAkSJQoEZGF0YRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSNAoObWV0YWRhdGFfcGF0Y2gYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQFCEQoPX21ldGFkYXRhX3BhdGNoIjwKFVVwZGF0ZVZhcmlhbnRSZXNwb25zZRIjCgd2YXJpYW50GAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQiKgoURGVsZXRlVmFyaWFudFJlcXVlc3QSEgoKdmFyaWFudF9pZBgBIAEoCSIoChVEZWxldGVWYXJpYW50UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJBChhTZXREZWZhdWx0VmFyaWFudFJlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJEhIKCnZhcmlhbnRfaWQYAiABKAkiPwoZU2V0RGVmYXVsdFZhcmlhbnRSZXNwb25zZRIiCgZyZWNvcmQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCJNChlMaXN0UmVjb3JkVmFyaWFudHNSZXF1ZXN0EhEKCXJlY29yZF9pZBgBIAEoCRINCgVsaW1pdBgCIAEoBRIOCgZvZmZzZXQYAyABKAUiUQoaTGlzdFJlY29yZFZhcmlhbnRzUmVzcG9uc2USJAoIdmFyaWFudHMYASADKAsyEi5yZWNvcmRzLnYxLlJlY29yZBINCgV0b3RhbBgCIAEoBSKwAQoSU2F2ZUNvbnRlbnRSZXF1ZXN0EhEKCXJlY29yZF9pZBgBIAEoCRIlCgRkYXRhGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIYCgt2YXJpYW50X2tleRgDIAEoCUgAiAEBEh8KEmNoYW5nZV9kZXNjcmlwdGlvbhgEIAEoCUgBiAEBQg4KDF92YXJpYW50X2tleUIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uIl4KE1NhdmVDb250ZW50UmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQSIwoHdmVyc2lvbhgCIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIqoBChxTY2hlZHVsZVJlY29yZFB1Ymxpc2hSZXF1ZXN0EhIKCnZlcnNpb25faWQYASABKAkSLgoKcHVibGlzaF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNQoMdW5wdWJsaXNoX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBQg8KDV91bnB1Ymxpc2hfYXQiRAodU2NoZWR1bGVSZWNvcmRQdWJsaXNoUmVzcG9uc2USIwoHdmVyc2lvbhgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIjkKI0NhbmNlbFNjaGVkdWxlZFJlY29yZFB1Ymxpc2hSZXF1ZXN0EhIKCnZlcnNpb25faWQYASABKAkiSwokQ2FuY2VsU2NoZWR1bGVkUmVjb3JkUHVibGlzaFJlc3BvbnNlEiMKB3ZlcnNpb24YASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCLQAQodTGlzdFNjaGVkdWxlZFB1Ymxpc2hlc1JlcXVlc3QSLQoEZnJvbRgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIrCgJ0bxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIWCgltb2RlbF9rZXkYAyABKAlIAogBARINCgVsaW1pdBgEIAEoBRIOCgZvZmZzZXQYBSABKAVCBwoFX2Zyb21CBQoDX3RvQgwKCl9tb2RlbF9rZXkiVQoeTGlzdFNjaGVkdWxlZFB1Ymxpc2hlc1Jlc3BvbnNlEiQKCHZlcnNpb25zGAEgAygLMhIucmVjb3Jkcy52MS5SZWNvcmQSDQoFdG90YWwYAiABKAUiMAoaR2V0U2NoZWR1bGVkUHVibGlzaFJlcXVlc3QSEgoKdmVyc2lvbl9pZBgBIAEoCSJMChtHZXRTY2hlZHVsZWRQdWJsaXNoUmVzcG9uc2USLQoIc2NoZWR1bGUYASABKAsyGy5yZWNvcmRzLnYxLlB1Ymxpc2hTY2hlZHVsZSKZAQoYTGlzdERyYWZ0VmVyc2lvbnNSZXF1ZXN0EhYKCW1vZGVsX2tleRgBIAEoCUgAiAEBEhMKBnNlYXJjaBgCIAEoCUgBiAEBEg0KBWxpbWl0GAMgASgFEg4KBm9mZnNldBgEIAEoBRIYChBkZWR1cGVfYnlfcGFyZW50GAUgASgIQgwKCl9tb2RlbF9rZXlCCQoHX3NlYXJjaCJQChlMaXN0RHJhZnRWZXJzaW9uc1Jlc3BvbnNlEiQKCHZlcnNpb25zGAEgAygLMhIucmVjb3Jkcy52MS5SZWNvcmQSDQoFdG90YWwYAiABKAUiMgobQmF0Y2hQdWJsaXNoVmVyc2lvbnNSZXF1ZXN0EhMKC3ZlcnNpb25faWRzGAEgAygJIlwKHEJhdGNoUHVibGlzaFZlcnNpb25zUmVzcG9uc2USIwoHcmVjb3JkcxgBIAMoCzISLnJlY29yZHMudjEuUmVjb3JkEhcKD3B1Ymxpc2hlZF9jb3VudBgCIAEoBSK5AQoaQmF0Y2hSZXNvbHZlUmVjb3Jkc1JlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJEhIKCnJlY29yZF9pZHMYAiADKAkSGAoLY3VzdG9tZXJfaWQYAyABKAlIAIgBARItCgdjb250ZXh0GAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBEg8KB3ByZXZpZXcYBSABKAhCDgoMX2N1c3RvbWVyX2lkQgoKCF9jb250ZXh0IkoKG0JhdGNoUmVzb2x2ZVJlY29yZHNSZXNwb25zZRIrCgdyZWNvcmRzGAEgAygLMhoucmVjb3Jkcy52MS5SZXNvbHZlZFJlY29yZCLNAgoOUmVzb2x2ZWRSZWNvcmQSEQoJcmVjb3JkX2lkGAEgASgJEhEKCW1vZGVsX2tleRgCIAEoCRIYCgtuYXR1cmFsX2tleRgDIAEoCUgAiAEBEiUKBGRhdGEYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EikKCG1ldGFkYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIXCgp2YXJpYW50X2lkGAYgASgJSAGIAQESEQoJaGFzX2RyYWZ0GAggASgIEi4KCmNyZWF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg4KDF9uYXR1cmFsX2tleUINCgtfdmFyaWFudF9pZCIvChlMb29rdXBSZWNvcmRNb2RlbHNSZXF1ZXN0EhIKCnJlY29yZF9pZHMYASADKAkiOAoQUmVjb3JkTW9kZWxFbnRyeRIRCglyZWNvcmRfaWQYASABKAkSEQoJbW9kZWxfa2V5GAIgASgJIksKGkxvb2t1cFJlY29yZE1vZGVsc1Jlc3BvbnNlEi0KB2VudHJpZXMYASADKAsyHC5yZWNvcmRzLnYxLlJlY29yZE1vZGVsRW50cnkiRwoTR2xvYmFsU2VhcmNoUmVxdWVzdBINCgVxdWVyeRgBIAEoCRISCgptb2RlbF9rZXlzGAIgAygJEg0KBWxpbWl0GAogASgFIpEBChBTZWFyY2hSZXN1bHRJdGVtEgoKAmlkGAEgASgJEhEKCW1vZGVsX2tleRgCIAEoCRIYCgtuYXR1cmFsX2tleRgDIAEoCUgAiAEBEiUKBGRhdGEYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg0KBXNjb3JlGAUgASgBQg4KDF9uYXR1cmFsX2tleSJUChRHbG9iYWxTZWFyY2hSZXNwb25zZRItCgdyZWNvcmRzGAEgAygLMhwucmVjb3Jkcy52MS5TZWFyY2hSZXN1bHRJdGVtEg0KBXRvdGFsGAIgASgFIqEBCg5FbWJlZGRpbmdTdGF0cxIRCgltb2RlbF9rZXkYASABKAkSFQoNdG90YWxfcmVjb3JkcxgCIAEoBRIYChBlbWJlZGRlZF9yZWNvcmRzGAMgASgFEhcKD3BlbmRpbmdfcmVjb3JkcxgEIAEoBRIdChBsYXN0X2VtYmVkZGVkX2F0GAUgASgJSACIAQFCEwoRX2xhc3RfZW1iZWRkZWRfYXQidQoPUmVjb3JkRW1iZWRkaW5nEhEKCXJlY29yZF9pZBgBIAEoCRIRCgltb2RlbF9rZXkYAiABKAkSEgoKZGltZW5zaW9ucxgDIAEoBRIYCgtlbWJlZGRlZF9hdBgEIAEoCUgAiAEBQg4KDF9lbWJlZGRlZF9hdCKTAQoNU2ltaWxhclJlY29yZBIKCgJpZBgBIAEoCRIRCgltb2RlbF9rZXkYAiABKAkSGAoLbmF0dXJhbF9rZXkYAyABKAlIAIgBARIlCgRkYXRhGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBISCgpzaW1pbGFyaXR5GAUgASgBQg4KDF9uYXR1cmFsX2tleSJAChhHZXRFbWJlZGRpbmdTdGF0c1JlcXVlc3QSFgoJbW9kZWxfa2V5GAEgASgJSACIAQFCDAoKX21vZGVsX2tleSJGChlHZXRFbWJlZGRpbmdTdGF0c1Jlc3BvbnNlEikKBXN0YXRzGAEgAygLMhoucmVjb3Jkcy52MS5FbWJlZGRpbmdTdGF0cyIvChpHZXRSZWNvcmRFbWJlZGRpbmdzUmVxdWVzdBIRCglyZWNvcmRfaWQYASABKAkiTgobR2V0UmVjb3JkRW1iZWRkaW5nc1Jlc3BvbnNlEi8KCmVtYmVkZGluZ3MYASADKAsyGy5yZWNvcmRzLnYxLlJlY29yZEVtYmVkZGluZyJjChlGaW5kU2ltaWxhclJlY29yZHNSZXF1ZXN0EhEKCXJlY29yZF9pZBgBIAEoCRIWCgltb2RlbF9rZXkYAiABKAlIAIgBARINCgVsaW1pdBgKIAEoBUIMCgpfbW9kZWxfa2V5IkgKGkZpbmRTaW1pbGFyUmVjb3Jkc1Jlc3BvbnNlEioKB3JlY29yZHMYASADKAsyGS5yZWNvcmRzLnYxLlNpbWlsYXJSZWNvcmQimwEKFldyaXRlRW1iZWRkaW5nc1JlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJEg4KBnZlY3RvchgCIAMoAhISCgpkaW1lbnNpb25zGAMgASgFEhUKCHByb3ZpZGVyGAQgASgJSACIAQESFwoKbW9kZWxfbmFtZRgFIAEoCUgBiAEBQgsKCV9wcm92aWRlckINCgtfbW9kZWxfbmFtZSIqChdXcml0ZUVtYmVkZGluZ3NSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIiwKF0RlbGV0ZUVtYmVkZGluZ3NSZXF1ZXN0EhEKCXJlY29yZF9pZBgBIAEoCSIrChhEZWxldGVFbWJlZGRpbmdzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJnCh9FbnF1ZXVlR2VuZXJhdGVFbWJlZGRpbmdSZXF1ZXN0EhEKCXJlY29yZF9pZBgBIAEoCRIRCgltb2RlbF9rZXkYAiABKAkSEwoGc291cmNlGAMgASgJSACIAQFCCQoHX3NvdXJjZSI0CiBFbnF1ZXVlR2VuZXJhdGVFbWJlZGRpbmdSZXNwb25zZRIQCghlbnF1ZXVlZBgBIAEoCCJkChdTZWFyY2hFbWJlZGRpbmdzUmVxdWVzdBIUCgxxdWVyeV92ZWN0b3IYASADKAISFgoJbW9kZWxfa2V5GAIgASgJSACIAQESDQoFbGltaXQYCiABKAVCDAoKX21vZGVsX2tleSJGChhTZWFyY2hFbWJlZGRpbmdzUmVzcG9uc2USKgoHcmVzdWx0cxgBIAMoCzIZLnJlY29yZHMudjEuU2ltaWxhclJlY29yZCKfAgoTTG9va3VwUmVjb3JkUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSEwoLbG9va3VwX25hbWUYAiABKAkSEAoIa2V5X2hhc2gYAyABKAwSDwoHY2hhbm5lbBgEIAEoCRIXCgp2YXJpYW50X2lkGAUgASgJSACIAQESEwoGbG9jYWxlGAYgASgJSAGIAQESGAoLY3VzdG9tZXJfaWQYByABKAlIAogBARI2ChBjdXN0b21lcl9jb250ZXh0GAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBQg0KC192YXJpYW50X2lkQgkKB19sb2NhbGVCDgoMX2N1c3RvbWVyX2lkQhMKEV9jdXN0b21lcl9jb250ZXh0IjwKFExvb2t1cFJlY29yZFJlc3BvbnNlEhYKCXJlY29yZF9pZBgBIAEoCUgAiAEBQgwKCl9yZWNvcmRfaWQi6QEKHkNoZWNrTG9va3VwQXZhaWxhYmlsaXR5UmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSEwoLbG9va3VwX25hbWUYAiABKAkSEAoIa2V5X2hhc2gYAyABKAwSDwoHY2hhbm5lbBgEIAEoCRIXCgp2YXJpYW50X2lkGAUgASgJSACIAQESEwoGbG9jYWxlGAYgASgJSAGIAQESHgoRZXhjbHVkZV9yZWNvcmRfaWQYByABKAlIAogBAUINCgtfdmFyaWFudF9pZEIJCgdfbG9jYWxlQhQKEl9leGNsdWRlX3JlY29yZF9pZCI0Ch9DaGVja0xvb2t1cEF2YWlsYWJpbGl0eVJlc3BvbnNlEhEKCWF2YWlsYWJsZRgBIAEoCCKXAQoUTG9va3VwQ29uZmxpY3REZXRhaWwSEQoJbW9kZWxfa2V5GAEgASgJEhMKC2xvb2t1cF9uYW1lGAIgASgJEg8KB2NoYW5uZWwYAyABKAkSFwoKdmFyaWFudF9pZBgEIAEoCUgAiAEBEhMKBmxvY2FsZRgFIAEoCUgBiAEBQg0KC192YXJpYW50X2lkQgkKB19sb2NhbGUiagoaTGlzdExvb2t1cENvbmZsaWN0c1JlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJEhgKC2xvb2t1cF9uYW1lGAIgASgJSACIAQESDwoHY2hhbm5lbBgDIAEoCUIOCgxfbG9va3VwX25hbWUiSAobTGlzdExvb2t1cENvbmZsaWN0c1Jlc3BvbnNlEikKBmdyb3VwcxgBIAMoCzIZLnJlY29yZHMudjEuQ29uZmxpY3RHcm91cCKbAQoNQ29uZmxpY3RHcm91cBITCgtlbmNvZGVkX2tleRgBIAEoCRIPCgdjaGFubmVsGAIgASgJEhcKCnZhcmlhbnRfaWQYAyABKAlIAIgBARIYCgtjdXN0b21lcl9pZBgEIAEoCUgBiAEBEhIKCnJlY29yZF9pZHMYBSADKAlCDQoLX3ZhcmlhbnRfaWRCDgoMX2N1c3RvbWVyX2lkIi8KGlJlYnVpbGRNb2RlbExvb2t1cHNSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCSI1ChtSZWJ1aWxkTW9kZWxMb29rdXBzUmVzcG9uc2USFgoOcmVjb3Jkc193YWxrZWQYASABKAUqcwoKUmVjb3JkVHlwZRIbChdSRUNPUkRfVFlQRV9VTlNQRUNJRklFRBAAEhYKElJFQ09SRF9UWVBFX1JFQ09SRBABEhcKE1JFQ09SRF9UWVBFX1ZBUklBTlQQAhIXChNSRUNPUkRfVFlQRV9WRVJTSU9OEAMqnQEKEkJhdGNoT3BlcmF0aW9uVHlwZRIkCiBCQVRDSF9PUEVSQVRJT05fVFlQRV9VTlNQRUNJRklFRBAAEh8KG0JBVENIX09QRVJBVElPTl9UWVBFX0NSRUFURRABEh8KG0JBVENIX09QRVJBVElPTl9UWVBFX1VQREFURRACEh8KG0JBVENIX09QRVJBVElPTl9UWVBFX0RFTEVURRADMr8gCg5SZWNvcmRzU2VydmljZRJRCgxDcmVhdGVSZWNvcmQSHy5yZWNvcmRzLnYxLkNyZWF0ZVJlY29yZFJlcXVlc3QaIC5yZWNvcmRzLnYxLkNyZWF0ZVJlY29yZFJlc3BvbnNlEkgKCUdldFJlY29yZBIcLnJlY29yZHMudjEuR2V0UmVjb3JkUmVxdWVzdBodLnJlY29yZHMudjEuR2V0UmVjb3JkUmVzcG9uc2USVwoOR2V0UmVjb3JkQnlLZXkSIS5yZWNvcmRzLnYxLkdldFJlY29yZEJ5S2V5UmVxdWVzdBoiLnJlY29yZHMudjEuR2V0UmVjb3JkQnlLZXlSZXNwb25zZRJjChJHZXRSZWNvcmRCeUtleU9ySWQSJS5yZWNvcmRzLnYxLkdldFJlY29yZEJ5S2V5T3JJZFJlcXVlc3QaJi5yZWNvcmRzLnYxLkdldFJlY29yZEJ5S2V5T3JJZFJlc3BvbnNlEk4KC0xpc3RSZWNvcmRzEh4ucmVjb3Jkcy52MS5MaXN0UmVjb3Jkc1JlcXVlc3QaHy5yZWNvcmRzLnYxLkxpc3RSZWNvcmRzUmVzcG9uc2USUQoMVXBkYXRlUmVjb3JkEh8ucmVjb3Jkcy52MS5VcGRhdGVSZWNvcmRSZXF1ZXN0GiAucmVjb3Jkcy52MS5VcGRhdGVSZWNvcmRSZXNwb25zZRJRCgxVcHNlcnRSZWNvcmQSHy5yZWNvcmRzLnYxLlVwc2VydFJlY29yZFJlcXVlc3QaIC5yZWNvcmRzLnYxLlVwc2VydFJlY29yZFJlc3BvbnNlElEKDERlbGV0ZVJlY29yZBIfLnJlY29yZHMudjEuRGVsZXRlUmVjb3JkUmVxdWVzdBogLnJlY29yZHMudjEuRGVsZXRlUmVjb3JkUmVzcG9uc2USbAoVQmF0Y2hSZWNvcmRPcGVyYXRpb25zEigucmVjb3Jkcy52MS5CYXRjaFJlY29yZE9wZXJhdGlvbnNSZXF1ZXN0GikucmVjb3Jkcy52MS5CYXRjaFJlY29yZE9wZXJhdGlvbnNSZXNwb25zZRJgChFCdWxrVXBkYXRlUmVjb3JkcxIkLnJlY29yZHMudjEuQnVsa1VwZGF0ZVJlY29yZHNSZXF1ZXN0GiUucmVjb3Jkcy52MS5CdWxrVXBkYXRlUmVjb3Jkc1Jlc3BvbnNlEloKD0R1cGxpY2F0ZVJlY29yZBIiLnJlY29yZHMudjEuRHVwbGljYXRlUmVjb3JkUmVxdWVzdBojLnJlY29yZHMudjEuRHVwbGljYXRlUmVjb3JkUmVzcG9uc2USaQoURHVwbGljYXRlUmVjb3Jkc0J1bGsSJy5yZWNvcmRzLnYxLkR1cGxpY2F0ZVJlY29yZHNCdWxrUmVxdWVzdBooLnJlY29yZHMudjEuRHVwbGljYXRlUmVjb3Jkc0J1bGtSZXNwb25zZRJUCg1DcmVhdGVWZXJzaW9uEiAucmVjb3Jkcy52MS5DcmVhdGVWZXJzaW9uUmVxdWVzdBohLnJlY29yZHMudjEuQ3JlYXRlVmVyc2lvblJlc3BvbnNlElcKDlB1Ymxpc2hWZXJzaW9uEiEucmVjb3Jkcy52MS5QdWJsaXNoVmVyc2lvblJlcXVlc3QaIi5yZWNvcmRzLnYxLlB1Ymxpc2hWZXJzaW9uUmVzcG9uc2USWgoPVW5wdWJsaXNoUmVjb3JkEiIucmVjb3Jkcy52MS5VbnB1Ymxpc2hSZWNvcmRSZXF1ZXN0GiMucmVjb3Jkcy52MS5VbnB1Ymxpc2hSZWNvcmRSZXNwb25zZRJaCg9SZXZlcnRUb1ZlcnNpb24SIi5yZWNvcmRzLnYxLlJldmVydFRvVmVyc2lvblJlcXVlc3QaIy5yZWNvcmRzLnYxLlJldmVydFRvVmVyc2lvblJlc3BvbnNlEmMKEkxpc3RSZWNvcmRWZXJzaW9ucxIlLnJlY29yZHMudjEuTGlzdFJlY29yZFZlcnNpb25zUmVxdWVzdBomLnJlY29yZHMudjEuTGlzdFJlY29yZFZlcnNpb25zUmVzcG9uc2USTgoLU2F2ZUNvbnRlbnQSHi5yZWNvcmRzLnYxLlNhdmVDb250ZW50UmVxdWVzdBofLnJlY29yZHMudjEuU2F2ZUNvbnRlbnRSZXNwb25zZRJUCg1DcmVhdGVWYXJpYW50EiAucmVjb3Jkcy52MS5DcmVhdGVWYXJpYW50UmVxdWVzdBohLnJlY29yZHMudjEuQ3JlYXRlVmFyaWFudFJlc3BvbnNlElQKDVVwZGF0ZVZhcmlhbnQSIC5yZWNvcmRzLnYxLlVwZGF0ZVZhcmlhbnRSZXF1ZXN0GiEucmVjb3Jkcy52MS5VcGRhdGVWYXJpYW50UmVzcG9uc2USVAoNRGVsZXRlVmFyaWFudBIgLnJlY29yZHMudjEuRGVsZXRlVmFyaWFudFJlcXVlc3QaIS5yZWNvcmRzLnYxLkRlbGV0ZVZhcmlhbnRSZXNwb25zZRJgChFTZXREZWZhdWx0VmFyaWFudBIkLnJlY29yZHMudjEuU2V0RGVmYXVsdFZhcmlhbnRSZXF1ZXN0GiUucmVjb3Jkcy52MS5TZXREZWZhdWx0VmFyaWFudFJlc3BvbnNlEmMKEkxpc3RSZWNvcmRWYXJpYW50cxIlLnJlY29yZHMudjEuTGlzdFJlY29yZFZhcmlhbnRzUmVxdWVzdBomLnJlY29yZHMudjEuTGlzdFJlY29yZFZhcmlhbnRzUmVzcG9uc2USbAoVU2NoZWR1bGVSZWNvcmRQdWJsaXNoEigucmVjb3Jkcy52MS5TY2hlZHVsZVJlY29yZFB1Ymxpc2hSZXF1ZXN0GikucmVjb3Jkcy52MS5TY2hlZHVsZVJlY29yZFB1Ymxpc2hSZXNwb25zZRKBAQocQ2FuY2VsU2NoZWR1bGVkUmVjb3JkUHVibGlzaBIvLnJlY29yZHMudjEuQ2FuY2VsU2NoZWR1bGVkUmVjb3JkUHVibGlzaFJlcXVlc3QaMC5yZWNvcmRzLnYxLkNhbmNlbFNjaGVkdWxlZFJlY29yZFB1Ymxpc2hSZXNwb25zZRJvChZMaXN0U2NoZWR1bGVkUHVibGlzaGVzEikucmVjb3Jkcy52MS5MaXN0U2NoZWR1bGVkUHVibGlzaGVzUmVxdWVzdBoqLnJlY29yZHMudjEuTGlzdFNjaGVkdWxlZFB1Ymxpc2hlc1Jlc3BvbnNlEmYKE0dldFNjaGVkdWxlZFB1Ymxpc2gSJi5yZWNvcmRzLnYxLkdldFNjaGVkdWxlZFB1Ymxpc2hSZXF1ZXN0GicucmVjb3Jkcy52MS5HZXRTY2hlZHVsZWRQdWJsaXNoUmVzcG9uc2USYAoRTGlzdERyYWZ0VmVyc2lvbnMSJC5yZWNvcmRzLnYxLkxpc3REcmFmdFZlcnNpb25zUmVxdWVzdBolLnJlY29yZHMudjEuTGlzdERyYWZ0VmVyc2lvbnNSZXNwb25zZRJpChRCYXRjaFB1Ymxpc2hWZXJzaW9ucxInLnJlY29yZHMudjEuQmF0Y2hQdWJsaXNoVmVyc2lvbnNSZXF1ZXN0GigucmVjb3Jkcy52MS5CYXRjaFB1Ymxpc2hWZXJzaW9uc1Jlc3BvbnNlEmYKE0JhdGNoUmVzb2x2ZVJlY29yZHMSJi5yZWNvcmRzLnYxLkJhdGNoUmVzb2x2ZVJlY29yZHNSZXF1ZXN0GicucmVjb3Jkcy52MS5CYXRjaFJlc29sdmVSZWNvcmRzUmVzcG9uc2USYwoSTG9va3VwUmVjb3JkTW9kZWxzEiUucmVjb3Jkcy52MS5Mb29rdXBSZWNvcmRNb2RlbHNSZXF1ZXN0GiYucmVjb3Jkcy52MS5Mb29rdXBSZWNvcmRNb2RlbHNSZXNwb25zZRJRCgxHbG9iYWxTZWFyY2gSHy5yZWNvcmRzLnYxLkdsb2JhbFNlYXJjaFJlcXVlc3QaIC5yZWNvcmRzLnYxLkdsb2JhbFNlYXJjaFJlc3BvbnNlElEKDExvb2t1cFJlY29yZBIfLnJlY29yZHMudjEuTG9va3VwUmVjb3JkUmVxdWVzdBogLnJlY29yZHMudjEuTG9va3VwUmVjb3JkUmVzcG9uc2UScgoXQ2hlY2tMb29rdXBBdmFpbGFiaWxpdHkSKi5yZWNvcmRzLnYxLkNoZWNrTG9va3VwQXZhaWxhYmlsaXR5UmVxdWVzdBorLnJlY29yZHMudjEuQ2hlY2tMb29rdXBBdmFpbGFiaWxpdHlSZXNwb25zZRJmChNMaXN0TG9va3VwQ29uZmxpY3RzEiYucmVjb3Jkcy52MS5MaXN0TG9va3VwQ29uZmxpY3RzUmVxdWVzdBonLnJlY29yZHMudjEuTGlzdExvb2t1cENvbmZsaWN0c1Jlc3BvbnNlEmYKE1JlYnVpbGRNb2RlbExvb2t1cHMSJi5yZWNvcmRzLnYxLlJlYnVpbGRNb2RlbExvb2t1cHNSZXF1ZXN0GicucmVjb3Jkcy52MS5SZWJ1aWxkTW9kZWxMb29rdXBzUmVzcG9uc2USYAoRR2V0RW1iZWRkaW5nU3RhdHMSJC5yZWNvcmRzLnYxLkdldEVtYmVkZGluZ1N0YXRzUmVxdWVzdBolLnJlY29yZHMudjEuR2V0RW1iZWRkaW5nU3RhdHNSZXNwb25zZRJmChNHZXRSZWNvcmRFbWJlZGRpbmdzEiYucmVjb3Jkcy52MS5HZXRSZWNvcmRFbWJlZGRpbmdzUmVxdWVzdBonLnJlY29yZHMudjEuR2V0UmVjb3JkRW1iZWRkaW5nc1Jlc3BvbnNlEmMKEkZpbmRTaW1pbGFyUmVjb3JkcxIlLnJlY29yZHMudjEuRmluZFNpbWlsYXJSZWNvcmRzUmVxdWVzdBomLnJlY29yZHMudjEuRmluZFNpbWlsYXJSZWNvcmRzUmVzcG9uc2USWgoPV3JpdGVFbWJlZGRpbmdzEiIucmVjb3Jkcy52MS5Xcml0ZUVtYmVkZGluZ3NSZXF1ZXN0GiMucmVjb3Jkcy52MS5Xcml0ZUVtYmVkZGluZ3NSZXNwb25zZRJdChBEZWxldGVFbWJlZGRpbmdzEiMucmVjb3Jkcy52MS5EZWxldGVFbWJlZGRpbmdzUmVxdWVzdBokLnJlY29yZHMudjEuRGVsZXRlRW1iZWRkaW5nc1Jlc3BvbnNlEl0KEFNlYXJjaEVtYmVkZGluZ3MSIy5yZWNvcmRzLnYxLlNlYXJjaEVtYmVkZGluZ3NSZXF1ZXN0GiQucmVjb3Jkcy52MS5TZWFyY2hFbWJlZGRpbmdzUmVzcG9uc2USdQoYRW5xdWV1ZUdlbmVyYXRlRW1iZWRkaW5nEisucmVjb3Jkcy52MS5FbnF1ZXVlR2VuZXJhdGVFbWJlZGRpbmdSZXF1ZXN0GiwucmVjb3Jkcy52MS5FbnF1ZXVlR2VuZXJhdGVFbWJlZGRpbmdSZXNwb25zZUI7WjlnaXRodWIuY29tL2VpZGVzdHVkaW8vZm9pci9nZW4vcHJvdG8vcmVjb3Jkcy92MTtyZWNvcmRzdjFiBnByb3RvMw", [file_google_protobuf_struct, file_google_protobuf_timestamp, file_expressions_v1_expressions]);
13
+ fileDesc("ChhyZWNvcmRzL3YxL3JlY29yZHMucHJvdG8SCnJlY29yZHMudjEihA0KBlJlY29yZBIKCgJpZBgBIAEoCRIRCgltb2RlbF9rZXkYAiABKAkSGAoLbmF0dXJhbF9rZXkYAyABKAlIAIgBARIWCglwYXJlbnRfaWQYBCABKAlIAYgBARIrCgtyZWNvcmRfdHlwZRgFIAEoDjIWLnJlY29yZHMudjEuUmVjb3JkVHlwZRIlCgRkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCghtZXRhZGF0YRgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIYCgtjdXN0b21lcl9pZBgIIAEoCUgDiAEBEhEKCXRlbmFudF9pZBgKIAEoCRISCgpwcm9qZWN0X2lkGAsgASgJEhcKCmNyZWF0ZWRfYnkYFCABKAlIBIgBARIXCgp1cGRhdGVkX2J5GBUgASgJSAWIAQESLgoKY3JlYXRlZF9hdBgeIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgfIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGwoOdmVyc2lvbl9udW1iZXIYKCABKAVIBogBARIZCgxjb250ZW50X2hhc2gYKSABKAlIB4gBARIfChJjaGFuZ2VfZGVzY3JpcHRpb24YKiABKAlICIgBARIbCg5wdWJsaXNoX3N0YXR1cxgrIAEoCUgJiAEBEj0KFHNjaGVkdWxlZF9wdWJsaXNoX2F0GCwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgKiAEBEj8KFnNjaGVkdWxlZF91bnB1Ymxpc2hfYXQYLSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAuIAQESGAoLdmFyaWFudF9rZXkYMiABKAlIDIgBARIZCgx2YXJpYW50X25hbWUYMyABKAlIDYgBARIgChN2YXJpYW50X2Rlc2NyaXB0aW9uGDQgASgJSA6IAQESFwoKY2F0YWxvZ19pZBg1IAEoCUgPiAEBEhUKCHByaW9yaXR5GDYgASgFSBCIAQESPAoPdGFyZ2V0aW5nX3J1bGVzGDcgASgLMh4uZXhwcmVzc2lvbnMudjEuUnVsZUV4cHJlc3Npb25IEYgBARIXCgppc19kZWZhdWx0GDggASgISBKIAQESHwoSY3VycmVudF92ZXJzaW9uX2lkGDwgASgJSBOIAQESIQoUcHVibGlzaGVkX3ZlcnNpb25faWQYPSABKAlIFIgBARIlChhwdWJsaXNoZWRfdmVyc2lvbl9udW1iZXIYPiABKAVIFYgBARI1CgxwdWJsaXNoZWRfYXQYPyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBaIAQESGQoMcHVibGlzaGVkX2J5GEAgASgJSBeIAQESEwoLY2FuX3B1Ymxpc2gYQSABKAgSFQoNY2FuX3VucHVibGlzaBhCIAEoCBIfChdoYXNfdW5wdWJsaXNoZWRfY2hhbmdlcxhDIAEoCBIdChBtb2RlbF92ZXJzaW9uX2lkGEYgASgJSBiIAQFCDgoMX25hdHVyYWxfa2V5QgwKCl9wYXJlbnRfaWRCCwoJX21ldGFkYXRhQg4KDF9jdXN0b21lcl9pZEINCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieUIRCg9fdmVyc2lvbl9udW1iZXJCDwoNX2NvbnRlbnRfaGFzaEIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uQhEKD19wdWJsaXNoX3N0YXR1c0IXChVfc2NoZWR1bGVkX3B1Ymxpc2hfYXRCGQoXX3NjaGVkdWxlZF91bnB1Ymxpc2hfYXRCDgoMX3ZhcmlhbnRfa2V5Qg8KDV92YXJpYW50X25hbWVCFgoUX3ZhcmlhbnRfZGVzY3JpcHRpb25CDQoLX2NhdGFsb2dfaWRCCwoJX3ByaW9yaXR5QhIKEF90YXJnZXRpbmdfcnVsZXNCDQoLX2lzX2RlZmF1bHRCFQoTX2N1cnJlbnRfdmVyc2lvbl9pZEIXChVfcHVibGlzaGVkX3ZlcnNpb25faWRCGwoZX3B1Ymxpc2hlZF92ZXJzaW9uX251bWJlckIPCg1fcHVibGlzaGVkX2F0Qg8KDV9wdWJsaXNoZWRfYnlCEwoRX21vZGVsX3ZlcnNpb25faWQi9QEKD1B1Ymxpc2hTY2hlZHVsZRISCgp2ZXJzaW9uX2lkGAEgASgJEi4KCnB1Ymxpc2hfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKDHVucHVibGlzaF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIuCgpjcmVhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCgpjcmVhdGVkX2J5GAUgASgJSAGIAQFCDwoNX3VucHVibGlzaF9hdEINCgtfY3JlYXRlZF9ieSJ8CgxSZWNvcmRGaWx0ZXISDQoFZmllbGQYASABKAkSEAoIb3BlcmF0b3IYAiABKAkSJQoFdmFsdWUYAyABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSFgoJcmVmX21vZGVsGAQgASgJSACIAQFCDAoKX3JlZl9tb2RlbCIuCglTb3J0RmllbGQSDQoFZmllbGQYASABKAkSEgoKZGVzY2VuZGluZxgCIAEoCCKFAgoOQmF0Y2hPcGVyYXRpb24SLAoEdHlwZRgBIAEoDjIeLnJlY29yZHMudjEuQmF0Y2hPcGVyYXRpb25UeXBlEg8KAmlkGAIgASgJSACIAQESFgoJbW9kZWxfa2V5GAMgASgJSAGIAQESGAoLbmF0dXJhbF9rZXkYBCABKAlIAogBARIqCgRkYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEhgKC2N1c3RvbWVyX2lkGAYgASgJSASIAQFCBQoDX2lkQgwKCl9tb2RlbF9rZXlCDgoMX25hdHVyYWxfa2V5QgcKBV9kYXRhQg4KDF9jdXN0b21lcl9pZCKIAQoUQmF0Y2hPcGVyYXRpb25SZXN1bHQSDQoFaW5kZXgYASABKAUSDwoHc3VjY2VzcxgCIAEoCBInCgZyZWNvcmQYAyABKAsyEi5yZWNvcmRzLnYxLlJlY29yZEgAiAEBEhIKBWVycm9yGAQgASgJSAGIAQFCCQoHX3JlY29yZEIICgZfZXJyb3IimAIKE0NyZWF0ZVJlY29yZFJlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJEhgKC25hdHVyYWxfa2V5GAIgASgJSACIAQESJQoEZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSGAoLY3VzdG9tZXJfaWQYBCABKAlIAYgBARIuCghtZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIfChJjaGFuZ2VfZGVzY3JpcHRpb24YBiABKAlIA4gBAUIOCgxfbmF0dXJhbF9rZXlCDgoMX2N1c3RvbWVyX2lkQgsKCV9tZXRhZGF0YUIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uIqYBChRDcmVhdGVSZWNvcmRSZXNwb25zZRIiCgZyZWNvcmQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZBIoCgd2YXJpYW50GAIgASgLMhIucmVjb3Jkcy52MS5SZWNvcmRIAIgBARIoCgd2ZXJzaW9uGAMgASgLMhIucmVjb3Jkcy52MS5SZWNvcmRIAYgBAUIKCghfdmFyaWFudEIKCghfdmVyc2lvbiIeChBHZXRSZWNvcmRSZXF1ZXN0EgoKAmlkGAEgASgJIjcKEUdldFJlY29yZFJlc3BvbnNlEiIKBnJlY29yZBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIj8KFUdldFJlY29yZEJ5S2V5UmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSEwoLbmF0dXJhbF9rZXkYAiABKAkiPAoWR2V0UmVjb3JkQnlLZXlSZXNwb25zZRIiCgZyZWNvcmQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCJCChlHZXRSZWNvcmRCeUtleU9ySWRSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCRISCgppZGVudGlmaWVyGAIgASgJIkAKGkdldFJlY29yZEJ5S2V5T3JJZFJlc3BvbnNlEiIKBnJlY29yZBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIqADChJMaXN0UmVjb3Jkc1JlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJEg0KBWxpbWl0GAIgASgFEg4KBm9mZnNldBgDIAEoBRIpCgdmaWx0ZXJzGAQgAygLMhgucmVjb3Jkcy52MS5SZWNvcmRGaWx0ZXISIwoEc29ydBgFIAMoCzIVLnJlY29yZHMudjEuU29ydEZpZWxkEhgKC2N1c3RvbWVyX2lkGAYgASgJSACIAQESEwoGc2VhcmNoGAcgASgJSAGIAQESDwoHcHJldmlldxgIIAEoCBIrCgV3aGVyZRgJIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARISCgVhZnRlchgKIAEoCUgDiAEBEhMKBmJlZm9yZRgLIAEoCUgEiAEBEhIKBWZpcnN0GAwgASgFSAWIAQESEQoEbGFzdBgNIAEoBUgGiAEBQg4KDF9jdXN0b21lcl9pZEIJCgdfc2VhcmNoQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QilgEKE0xpc3RSZWNvcmRzUmVzcG9uc2USIwoHcmVjb3JkcxgBIAMoCzISLnJlY29yZHMudjEuUmVjb3JkEg0KBXRvdGFsGAIgASgFEiwKCXBhZ2VfaW5mbxgDIAEoCzIULnJlY29yZHMudjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8ikAEKCFBhZ2VJbmZvEhUKDWhhc19uZXh0X3BhZ2UYASABKAgSGQoRaGFzX3ByZXZpb3VzX3BhZ2UYAiABKAgSGQoMc3RhcnRfY3Vyc29yGAMgASgJSACIAQESFwoKZW5kX2N1cnNvchgEIAEoCUgBiAEBQg8KDV9zdGFydF9jdXJzb3JCDQoLX2VuZF9jdXJzb3IitwEKE1VwZGF0ZVJlY29yZFJlcXVlc3QSCgoCaWQYASABKAkSJQoEZGF0YRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSGAoLbmF0dXJhbF9rZXkYAyABKAlIAIgBARIyCgx0eXBlZF91cGRhdGUYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQFCDgoMX25hdHVyYWxfa2V5Qg8KDV90eXBlZF91cGRhdGUiOgoUVXBkYXRlUmVjb3JkUmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQiIQoTRGVsZXRlUmVjb3JkUmVxdWVzdBIKCgJpZBgBIAEoCSInChREZWxldGVSZWNvcmRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIqcBChNVcHNlcnRSZWNvcmRSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEhEKCW1vZGVsX2tleRgDIAEoCRITCgtuYXR1cmFsX2tleRgEIAEoCRIlCgRkYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIaChJjaGFuZ2VfZGVzY3JpcHRpb24YBiABKAkiSwoUVXBzZXJ0UmVjb3JkUmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQSDwoHY3JlYXRlZBgCIAEoCCJOChxCYXRjaFJlY29yZE9wZXJhdGlvbnNSZXF1ZXN0Ei4KCm9wZXJhdGlvbnMYASADKAsyGi5yZWNvcmRzLnYxLkJhdGNoT3BlcmF0aW9uIlIKHUJhdGNoUmVjb3JkT3BlcmF0aW9uc1Jlc3BvbnNlEjEKB3Jlc3VsdHMYASADKAsyIC5yZWNvcmRzLnYxLkJhdGNoT3BlcmF0aW9uUmVzdWx0In4KGEJ1bGtVcGRhdGVSZWNvcmRzUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSKAoGZmlsdGVyGAIgAygLMhgucmVjb3Jkcy52MS5SZWNvcmRGaWx0ZXISJQoEZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiKgoZQnVsa1VwZGF0ZVJlY29yZHNSZXNwb25zZRINCgVjb3VudBgBIAEoBSIyCh1CYWNrZmlsbFF1ZXJ5YWJsZUluZGV4UmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkiOQoeQmFja2ZpbGxRdWVyeWFibGVJbmRleFJlc3BvbnNlEhcKD3JlY29yZHNfaW5kZXhlZBgBIAEoBSIwChtCYWNrZmlsbE1vZGVsSW5kZXhlc1JlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJImEKHEJhY2tmaWxsTW9kZWxJbmRleGVzUmVzcG9uc2USHgoWbG9va3Vwc19yZWNvcmRzX3dhbGtlZBgBIAEoBRIhChlxdWVyeWFibGVfcmVjb3Jkc19pbmRleGVkGAIgASgFIlYKFkR1cGxpY2F0ZVJlY29yZFJlcXVlc3QSCgoCaWQYASABKAkSHAoPbmV3X25hdHVyYWxfa2V5GAIgASgJSACIAQFCEgoQX25ld19uYXR1cmFsX2tleSI9ChdEdXBsaWNhdGVSZWNvcmRSZXNwb25zZRIiCgZyZWNvcmQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCJQChtEdXBsaWNhdGVSZWNvcmRzQnVsa1JlcXVlc3QSCwoDaWRzGAEgAygJEhYKCW1vZGVsX2tleRgCIAEoCUgAiAEBQgwKCl9tb2RlbF9rZXkiQwocRHVwbGljYXRlUmVjb3Jkc0J1bGtSZXNwb25zZRIjCgdyZWNvcmRzGAEgAygLMhIucmVjb3Jkcy52MS5SZWNvcmQiiAEKFENyZWF0ZVZlcnNpb25SZXF1ZXN0EhEKCXBhcmVudF9pZBgBIAEoCRIlCgRkYXRhGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIfChJjaGFuZ2VfZGVzY3JpcHRpb24YAyABKAlIAIgBAUIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uIjwKFUNyZWF0ZVZlcnNpb25SZXNwb25zZRIjCgd2ZXJzaW9uGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQiKwoVUHVibGlzaFZlcnNpb25SZXF1ZXN0EhIKCnZlcnNpb25faWQYASABKAkiPAoWUHVibGlzaFZlcnNpb25SZXNwb25zZRIiCgZyZWNvcmQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCIrChZVbnB1Ymxpc2hSZWNvcmRSZXF1ZXN0EhEKCXJlY29yZF9pZBgBIAEoCSIqChdVbnB1Ymxpc2hSZWNvcmRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIiwKFlJldmVydFRvVmVyc2lvblJlcXVlc3QSEgoKdmVyc2lvbl9pZBgBIAEoCSI9ChdSZXZlcnRUb1ZlcnNpb25SZXNwb25zZRIiCgZyZWNvcmQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCJNChlMaXN0UmVjb3JkVmVyc2lvbnNSZXF1ZXN0EhEKCXBhcmVudF9pZBgBIAEoCRINCgVsaW1pdBgCIAEoBRIOCgZvZmZzZXQYAyABKAUiUQoaTGlzdFJlY29yZFZlcnNpb25zUmVzcG9uc2USJAoIdmVyc2lvbnMYASADKAsyEi5yZWNvcmRzLnYxLlJlY29yZBINCgV0b3RhbBgCIAEoBSJlChRDcmVhdGVWYXJpYW50UmVxdWVzdBIRCglyZWNvcmRfaWQYASABKAkSEwoLdmFyaWFudF9rZXkYAiABKAkSJQoEZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiPAoVQ3JlYXRlVmFyaWFudFJlc3BvbnNlEiMKB3ZhcmlhbnQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCKaAQoUVXBkYXRlVmFyaWFudFJlcXVlc3QSEgoKdmFyaWFudF9pZBgBIAEoCRIlCgRkYXRhGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBI0Cg5tZXRhZGF0YV9wYXRjaBgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBAUIRCg9fbWV0YWRhdGFfcGF0Y2giPAoVVXBkYXRlVmFyaWFudFJlc3BvbnNlEiMKB3ZhcmlhbnQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCIqChREZWxldGVWYXJpYW50UmVxdWVzdBISCgp2YXJpYW50X2lkGAEgASgJIigKFURlbGV0ZVZhcmlhbnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIkEKGFNldERlZmF1bHRWYXJpYW50UmVxdWVzdBIRCglyZWNvcmRfaWQYASABKAkSEgoKdmFyaWFudF9pZBgCIAEoCSI/ChlTZXREZWZhdWx0VmFyaWFudFJlc3BvbnNlEiIKBnJlY29yZBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIk0KGUxpc3RSZWNvcmRWYXJpYW50c1JlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJEg0KBWxpbWl0GAIgASgFEg4KBm9mZnNldBgDIAEoBSJRChpMaXN0UmVjb3JkVmFyaWFudHNSZXNwb25zZRIkCgh2YXJpYW50cxgBIAMoCzISLnJlY29yZHMudjEuUmVjb3JkEg0KBXRvdGFsGAIgASgFIrABChJTYXZlQ29udGVudFJlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJEiUKBGRhdGEYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhgKC3ZhcmlhbnRfa2V5GAMgASgJSACIAQESHwoSY2hhbmdlX2Rlc2NyaXB0aW9uGAQgASgJSAGIAQFCDgoMX3ZhcmlhbnRfa2V5QhUKE19jaGFuZ2VfZGVzY3JpcHRpb24iXgoTU2F2ZUNvbnRlbnRSZXNwb25zZRIiCgZyZWNvcmQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZBIjCgd2ZXJzaW9uGAIgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQiqgEKHFNjaGVkdWxlUmVjb3JkUHVibGlzaFJlcXVlc3QSEgoKdmVyc2lvbl9pZBgBIAEoCRIuCgpwdWJsaXNoX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI1Cgx1bnB1Ymxpc2hfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCDwoNX3VucHVibGlzaF9hdCJECh1TY2hlZHVsZVJlY29yZFB1Ymxpc2hSZXNwb25zZRIjCgd2ZXJzaW9uGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQiOQojQ2FuY2VsU2NoZWR1bGVkUmVjb3JkUHVibGlzaFJlcXVlc3QSEgoKdmVyc2lvbl9pZBgBIAEoCSJLCiRDYW5jZWxTY2hlZHVsZWRSZWNvcmRQdWJsaXNoUmVzcG9uc2USIwoHdmVyc2lvbhgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkItABCh1MaXN0U2NoZWR1bGVkUHVibGlzaGVzUmVxdWVzdBItCgRmcm9tGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEisKAnRvGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEhYKCW1vZGVsX2tleRgDIAEoCUgCiAEBEg0KBWxpbWl0GAQgASgFEg4KBm9mZnNldBgFIAEoBUIHCgVfZnJvbUIFCgNfdG9CDAoKX21vZGVsX2tleSJVCh5MaXN0U2NoZWR1bGVkUHVibGlzaGVzUmVzcG9uc2USJAoIdmVyc2lvbnMYASADKAsyEi5yZWNvcmRzLnYxLlJlY29yZBINCgV0b3RhbBgCIAEoBSIwChpHZXRTY2hlZHVsZWRQdWJsaXNoUmVxdWVzdBISCgp2ZXJzaW9uX2lkGAEgASgJIkwKG0dldFNjaGVkdWxlZFB1Ymxpc2hSZXNwb25zZRItCghzY2hlZHVsZRgBIAEoCzIbLnJlY29yZHMudjEuUHVibGlzaFNjaGVkdWxlIpkBChhMaXN0RHJhZnRWZXJzaW9uc1JlcXVlc3QSFgoJbW9kZWxfa2V5GAEgASgJSACIAQESEwoGc2VhcmNoGAIgASgJSAGIAQESDQoFbGltaXQYAyABKAUSDgoGb2Zmc2V0GAQgASgFEhgKEGRlZHVwZV9ieV9wYXJlbnQYBSABKAhCDAoKX21vZGVsX2tleUIJCgdfc2VhcmNoIlAKGUxpc3REcmFmdFZlcnNpb25zUmVzcG9uc2USJAoIdmVyc2lvbnMYASADKAsyEi5yZWNvcmRzLnYxLlJlY29yZBINCgV0b3RhbBgCIAEoBSIyChtCYXRjaFB1Ymxpc2hWZXJzaW9uc1JlcXVlc3QSEwoLdmVyc2lvbl9pZHMYASADKAkiXAocQmF0Y2hQdWJsaXNoVmVyc2lvbnNSZXNwb25zZRIjCgdyZWNvcmRzGAEgAygLMhIucmVjb3Jkcy52MS5SZWNvcmQSFwoPcHVibGlzaGVkX2NvdW50GAIgASgFIrkBChpCYXRjaFJlc29sdmVSZWNvcmRzUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSEgoKcmVjb3JkX2lkcxgCIAMoCRIYCgtjdXN0b21lcl9pZBgDIAEoCUgAiAEBEi0KB2NvbnRleHQYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQESDwoHcHJldmlldxgFIAEoCEIOCgxfY3VzdG9tZXJfaWRCCgoIX2NvbnRleHQiSgobQmF0Y2hSZXNvbHZlUmVjb3Jkc1Jlc3BvbnNlEisKB3JlY29yZHMYASADKAsyGi5yZWNvcmRzLnYxLlJlc29sdmVkUmVjb3JkIs0CCg5SZXNvbHZlZFJlY29yZBIRCglyZWNvcmRfaWQYASABKAkSEQoJbW9kZWxfa2V5GAIgASgJEhgKC25hdHVyYWxfa2V5GAMgASgJSACIAQESJQoEZGF0YRgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSKQoIbWV0YWRhdGEYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhcKCnZhcmlhbnRfaWQYBiABKAlIAYgBARIRCgloYXNfZHJhZnQYCCABKAgSLgoKY3JlYXRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDgoMX25hdHVyYWxfa2V5Qg0KC192YXJpYW50X2lkIi8KGUxvb2t1cFJlY29yZE1vZGVsc1JlcXVlc3QSEgoKcmVjb3JkX2lkcxgBIAMoCSI4ChBSZWNvcmRNb2RlbEVudHJ5EhEKCXJlY29yZF9pZBgBIAEoCRIRCgltb2RlbF9rZXkYAiABKAkiSwoaTG9va3VwUmVjb3JkTW9kZWxzUmVzcG9uc2USLQoHZW50cmllcxgBIAMoCzIcLnJlY29yZHMudjEuUmVjb3JkTW9kZWxFbnRyeSJHChNHbG9iYWxTZWFyY2hSZXF1ZXN0Eg0KBXF1ZXJ5GAEgASgJEhIKCm1vZGVsX2tleXMYAiADKAkSDQoFbGltaXQYCiABKAUikQEKEFNlYXJjaFJlc3VsdEl0ZW0SCgoCaWQYASABKAkSEQoJbW9kZWxfa2V5GAIgASgJEhgKC25hdHVyYWxfa2V5GAMgASgJSACIAQESJQoEZGF0YRgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSDQoFc2NvcmUYBSABKAFCDgoMX25hdHVyYWxfa2V5IlQKFEdsb2JhbFNlYXJjaFJlc3BvbnNlEi0KB3JlY29yZHMYASADKAsyHC5yZWNvcmRzLnYxLlNlYXJjaFJlc3VsdEl0ZW0SDQoFdG90YWwYAiABKAUioQEKDkVtYmVkZGluZ1N0YXRzEhEKCW1vZGVsX2tleRgBIAEoCRIVCg10b3RhbF9yZWNvcmRzGAIgASgFEhgKEGVtYmVkZGVkX3JlY29yZHMYAyABKAUSFwoPcGVuZGluZ19yZWNvcmRzGAQgASgFEh0KEGxhc3RfZW1iZWRkZWRfYXQYBSABKAlIAIgBAUITChFfbGFzdF9lbWJlZGRlZF9hdCJ1Cg9SZWNvcmRFbWJlZGRpbmcSEQoJcmVjb3JkX2lkGAEgASgJEhEKCW1vZGVsX2tleRgCIAEoCRISCgpkaW1lbnNpb25zGAMgASgFEhgKC2VtYmVkZGVkX2F0GAQgASgJSACIAQFCDgoMX2VtYmVkZGVkX2F0IpMBCg1TaW1pbGFyUmVjb3JkEgoKAmlkGAEgASgJEhEKCW1vZGVsX2tleRgCIAEoCRIYCgtuYXR1cmFsX2tleRgDIAEoCUgAiAEBEiUKBGRhdGEYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhIKCnNpbWlsYXJpdHkYBSABKAFCDgoMX25hdHVyYWxfa2V5IkAKGEdldEVtYmVkZGluZ1N0YXRzUmVxdWVzdBIWCgltb2RlbF9rZXkYASABKAlIAIgBAUIMCgpfbW9kZWxfa2V5IkYKGUdldEVtYmVkZGluZ1N0YXRzUmVzcG9uc2USKQoFc3RhdHMYASADKAsyGi5yZWNvcmRzLnYxLkVtYmVkZGluZ1N0YXRzIi8KGkdldFJlY29yZEVtYmVkZGluZ3NSZXF1ZXN0EhEKCXJlY29yZF9pZBgBIAEoCSJOChtHZXRSZWNvcmRFbWJlZGRpbmdzUmVzcG9uc2USLwoKZW1iZWRkaW5ncxgBIAMoCzIbLnJlY29yZHMudjEuUmVjb3JkRW1iZWRkaW5nImMKGUZpbmRTaW1pbGFyUmVjb3Jkc1JlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJEhYKCW1vZGVsX2tleRgCIAEoCUgAiAEBEg0KBWxpbWl0GAogASgFQgwKCl9tb2RlbF9rZXkiSAoaRmluZFNpbWlsYXJSZWNvcmRzUmVzcG9uc2USKgoHcmVjb3JkcxgBIAMoCzIZLnJlY29yZHMudjEuU2ltaWxhclJlY29yZCKbAQoWV3JpdGVFbWJlZGRpbmdzUmVxdWVzdBIRCglyZWNvcmRfaWQYASABKAkSDgoGdmVjdG9yGAIgAygCEhIKCmRpbWVuc2lvbnMYAyABKAUSFQoIcHJvdmlkZXIYBCABKAlIAIgBARIXCgptb2RlbF9uYW1lGAUgASgJSAGIAQFCCwoJX3Byb3ZpZGVyQg0KC19tb2RlbF9uYW1lIioKF1dyaXRlRW1iZWRkaW5nc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiLAoXRGVsZXRlRW1iZWRkaW5nc1JlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJIisKGERlbGV0ZUVtYmVkZGluZ3NSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIImcKH0VucXVldWVHZW5lcmF0ZUVtYmVkZGluZ1JlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJEhEKCW1vZGVsX2tleRgCIAEoCRITCgZzb3VyY2UYAyABKAlIAIgBAUIJCgdfc291cmNlIjQKIEVucXVldWVHZW5lcmF0ZUVtYmVkZGluZ1Jlc3BvbnNlEhAKCGVucXVldWVkGAEgASgIImQKF1NlYXJjaEVtYmVkZGluZ3NSZXF1ZXN0EhQKDHF1ZXJ5X3ZlY3RvchgBIAMoAhIWCgltb2RlbF9rZXkYAiABKAlIAIgBARINCgVsaW1pdBgKIAEoBUIMCgpfbW9kZWxfa2V5IkYKGFNlYXJjaEVtYmVkZGluZ3NSZXNwb25zZRIqCgdyZXN1bHRzGAEgAygLMhkucmVjb3Jkcy52MS5TaW1pbGFyUmVjb3JkIp8CChNMb29rdXBSZWNvcmRSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCRITCgtsb29rdXBfbmFtZRgCIAEoCRIQCghrZXlfaGFzaBgDIAEoDBIPCgdjaGFubmVsGAQgASgJEhcKCnZhcmlhbnRfaWQYBSABKAlIAIgBARITCgZsb2NhbGUYBiABKAlIAYgBARIYCgtjdXN0b21lcl9pZBgHIAEoCUgCiAEBEjYKEGN1c3RvbWVyX2NvbnRleHQYCCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQFCDQoLX3ZhcmlhbnRfaWRCCQoHX2xvY2FsZUIOCgxfY3VzdG9tZXJfaWRCEwoRX2N1c3RvbWVyX2NvbnRleHQiPAoUTG9va3VwUmVjb3JkUmVzcG9uc2USFgoJcmVjb3JkX2lkGAEgASgJSACIAQFCDAoKX3JlY29yZF9pZCLpAQoeQ2hlY2tMb29rdXBBdmFpbGFiaWxpdHlSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCRITCgtsb29rdXBfbmFtZRgCIAEoCRIQCghrZXlfaGFzaBgDIAEoDBIPCgdjaGFubmVsGAQgASgJEhcKCnZhcmlhbnRfaWQYBSABKAlIAIgBARITCgZsb2NhbGUYBiABKAlIAYgBARIeChFleGNsdWRlX3JlY29yZF9pZBgHIAEoCUgCiAEBQg0KC192YXJpYW50X2lkQgkKB19sb2NhbGVCFAoSX2V4Y2x1ZGVfcmVjb3JkX2lkIjQKH0NoZWNrTG9va3VwQXZhaWxhYmlsaXR5UmVzcG9uc2USEQoJYXZhaWxhYmxlGAEgASgIIpcBChRMb29rdXBDb25mbGljdERldGFpbBIRCgltb2RlbF9rZXkYASABKAkSEwoLbG9va3VwX25hbWUYAiABKAkSDwoHY2hhbm5lbBgDIAEoCRIXCgp2YXJpYW50X2lkGAQgASgJSACIAQESEwoGbG9jYWxlGAUgASgJSAGIAQFCDQoLX3ZhcmlhbnRfaWRCCQoHX2xvY2FsZSJqChpMaXN0TG9va3VwQ29uZmxpY3RzUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSGAoLbG9va3VwX25hbWUYAiABKAlIAIgBARIPCgdjaGFubmVsGAMgASgJQg4KDF9sb29rdXBfbmFtZSJIChtMaXN0TG9va3VwQ29uZmxpY3RzUmVzcG9uc2USKQoGZ3JvdXBzGAEgAygLMhkucmVjb3Jkcy52MS5Db25mbGljdEdyb3VwIpsBCg1Db25mbGljdEdyb3VwEhMKC2VuY29kZWRfa2V5GAEgASgJEg8KB2NoYW5uZWwYAiABKAkSFwoKdmFyaWFudF9pZBgDIAEoCUgAiAEBEhgKC2N1c3RvbWVyX2lkGAQgASgJSAGIAQESEgoKcmVjb3JkX2lkcxgFIAMoCUINCgtfdmFyaWFudF9pZEIOCgxfY3VzdG9tZXJfaWQiLwoaUmVidWlsZE1vZGVsTG9va3Vwc1JlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJIjUKG1JlYnVpbGRNb2RlbExvb2t1cHNSZXNwb25zZRIWCg5yZWNvcmRzX3dhbGtlZBgBIAEoBSpzCgpSZWNvcmRUeXBlEhsKF1JFQ09SRF9UWVBFX1VOU1BFQ0lGSUVEEAASFgoSUkVDT1JEX1RZUEVfUkVDT1JEEAESFwoTUkVDT1JEX1RZUEVfVkFSSUFOVBACEhcKE1JFQ09SRF9UWVBFX1ZFUlNJT04QAyqdAQoSQmF0Y2hPcGVyYXRpb25UeXBlEiQKIEJBVENIX09QRVJBVElPTl9UWVBFX1VOU1BFQ0lGSUVEEAASHwobQkFUQ0hfT1BFUkFUSU9OX1RZUEVfQ1JFQVRFEAESHwobQkFUQ0hfT1BFUkFUSU9OX1RZUEVfVVBEQVRFEAISHwobQkFUQ0hfT1BFUkFUSU9OX1RZUEVfREVMRVRFEAMymyIKDlJlY29yZHNTZXJ2aWNlElEKDENyZWF0ZVJlY29yZBIfLnJlY29yZHMudjEuQ3JlYXRlUmVjb3JkUmVxdWVzdBogLnJlY29yZHMudjEuQ3JlYXRlUmVjb3JkUmVzcG9uc2USSAoJR2V0UmVjb3JkEhwucmVjb3Jkcy52MS5HZXRSZWNvcmRSZXF1ZXN0Gh0ucmVjb3Jkcy52MS5HZXRSZWNvcmRSZXNwb25zZRJXCg5HZXRSZWNvcmRCeUtleRIhLnJlY29yZHMudjEuR2V0UmVjb3JkQnlLZXlSZXF1ZXN0GiIucmVjb3Jkcy52MS5HZXRSZWNvcmRCeUtleVJlc3BvbnNlEmMKEkdldFJlY29yZEJ5S2V5T3JJZBIlLnJlY29yZHMudjEuR2V0UmVjb3JkQnlLZXlPcklkUmVxdWVzdBomLnJlY29yZHMudjEuR2V0UmVjb3JkQnlLZXlPcklkUmVzcG9uc2USTgoLTGlzdFJlY29yZHMSHi5yZWNvcmRzLnYxLkxpc3RSZWNvcmRzUmVxdWVzdBofLnJlY29yZHMudjEuTGlzdFJlY29yZHNSZXNwb25zZRJRCgxVcGRhdGVSZWNvcmQSHy5yZWNvcmRzLnYxLlVwZGF0ZVJlY29yZFJlcXVlc3QaIC5yZWNvcmRzLnYxLlVwZGF0ZVJlY29yZFJlc3BvbnNlElEKDFVwc2VydFJlY29yZBIfLnJlY29yZHMudjEuVXBzZXJ0UmVjb3JkUmVxdWVzdBogLnJlY29yZHMudjEuVXBzZXJ0UmVjb3JkUmVzcG9uc2USUQoMRGVsZXRlUmVjb3JkEh8ucmVjb3Jkcy52MS5EZWxldGVSZWNvcmRSZXF1ZXN0GiAucmVjb3Jkcy52MS5EZWxldGVSZWNvcmRSZXNwb25zZRJsChVCYXRjaFJlY29yZE9wZXJhdGlvbnMSKC5yZWNvcmRzLnYxLkJhdGNoUmVjb3JkT3BlcmF0aW9uc1JlcXVlc3QaKS5yZWNvcmRzLnYxLkJhdGNoUmVjb3JkT3BlcmF0aW9uc1Jlc3BvbnNlEmAKEUJ1bGtVcGRhdGVSZWNvcmRzEiQucmVjb3Jkcy52MS5CdWxrVXBkYXRlUmVjb3Jkc1JlcXVlc3QaJS5yZWNvcmRzLnYxLkJ1bGtVcGRhdGVSZWNvcmRzUmVzcG9uc2USbwoWQmFja2ZpbGxRdWVyeWFibGVJbmRleBIpLnJlY29yZHMudjEuQmFja2ZpbGxRdWVyeWFibGVJbmRleFJlcXVlc3QaKi5yZWNvcmRzLnYxLkJhY2tmaWxsUXVlcnlhYmxlSW5kZXhSZXNwb25zZRJpChRCYWNrZmlsbE1vZGVsSW5kZXhlcxInLnJlY29yZHMudjEuQmFja2ZpbGxNb2RlbEluZGV4ZXNSZXF1ZXN0GigucmVjb3Jkcy52MS5CYWNrZmlsbE1vZGVsSW5kZXhlc1Jlc3BvbnNlEloKD0R1cGxpY2F0ZVJlY29yZBIiLnJlY29yZHMudjEuRHVwbGljYXRlUmVjb3JkUmVxdWVzdBojLnJlY29yZHMudjEuRHVwbGljYXRlUmVjb3JkUmVzcG9uc2USaQoURHVwbGljYXRlUmVjb3Jkc0J1bGsSJy5yZWNvcmRzLnYxLkR1cGxpY2F0ZVJlY29yZHNCdWxrUmVxdWVzdBooLnJlY29yZHMudjEuRHVwbGljYXRlUmVjb3Jkc0J1bGtSZXNwb25zZRJUCg1DcmVhdGVWZXJzaW9uEiAucmVjb3Jkcy52MS5DcmVhdGVWZXJzaW9uUmVxdWVzdBohLnJlY29yZHMudjEuQ3JlYXRlVmVyc2lvblJlc3BvbnNlElcKDlB1Ymxpc2hWZXJzaW9uEiEucmVjb3Jkcy52MS5QdWJsaXNoVmVyc2lvblJlcXVlc3QaIi5yZWNvcmRzLnYxLlB1Ymxpc2hWZXJzaW9uUmVzcG9uc2USWgoPVW5wdWJsaXNoUmVjb3JkEiIucmVjb3Jkcy52MS5VbnB1Ymxpc2hSZWNvcmRSZXF1ZXN0GiMucmVjb3Jkcy52MS5VbnB1Ymxpc2hSZWNvcmRSZXNwb25zZRJaCg9SZXZlcnRUb1ZlcnNpb24SIi5yZWNvcmRzLnYxLlJldmVydFRvVmVyc2lvblJlcXVlc3QaIy5yZWNvcmRzLnYxLlJldmVydFRvVmVyc2lvblJlc3BvbnNlEmMKEkxpc3RSZWNvcmRWZXJzaW9ucxIlLnJlY29yZHMudjEuTGlzdFJlY29yZFZlcnNpb25zUmVxdWVzdBomLnJlY29yZHMudjEuTGlzdFJlY29yZFZlcnNpb25zUmVzcG9uc2USTgoLU2F2ZUNvbnRlbnQSHi5yZWNvcmRzLnYxLlNhdmVDb250ZW50UmVxdWVzdBofLnJlY29yZHMudjEuU2F2ZUNvbnRlbnRSZXNwb25zZRJUCg1DcmVhdGVWYXJpYW50EiAucmVjb3Jkcy52MS5DcmVhdGVWYXJpYW50UmVxdWVzdBohLnJlY29yZHMudjEuQ3JlYXRlVmFyaWFudFJlc3BvbnNlElQKDVVwZGF0ZVZhcmlhbnQSIC5yZWNvcmRzLnYxLlVwZGF0ZVZhcmlhbnRSZXF1ZXN0GiEucmVjb3Jkcy52MS5VcGRhdGVWYXJpYW50UmVzcG9uc2USVAoNRGVsZXRlVmFyaWFudBIgLnJlY29yZHMudjEuRGVsZXRlVmFyaWFudFJlcXVlc3QaIS5yZWNvcmRzLnYxLkRlbGV0ZVZhcmlhbnRSZXNwb25zZRJgChFTZXREZWZhdWx0VmFyaWFudBIkLnJlY29yZHMudjEuU2V0RGVmYXVsdFZhcmlhbnRSZXF1ZXN0GiUucmVjb3Jkcy52MS5TZXREZWZhdWx0VmFyaWFudFJlc3BvbnNlEmMKEkxpc3RSZWNvcmRWYXJpYW50cxIlLnJlY29yZHMudjEuTGlzdFJlY29yZFZhcmlhbnRzUmVxdWVzdBomLnJlY29yZHMudjEuTGlzdFJlY29yZFZhcmlhbnRzUmVzcG9uc2USbAoVU2NoZWR1bGVSZWNvcmRQdWJsaXNoEigucmVjb3Jkcy52MS5TY2hlZHVsZVJlY29yZFB1Ymxpc2hSZXF1ZXN0GikucmVjb3Jkcy52MS5TY2hlZHVsZVJlY29yZFB1Ymxpc2hSZXNwb25zZRKBAQocQ2FuY2VsU2NoZWR1bGVkUmVjb3JkUHVibGlzaBIvLnJlY29yZHMudjEuQ2FuY2VsU2NoZWR1bGVkUmVjb3JkUHVibGlzaFJlcXVlc3QaMC5yZWNvcmRzLnYxLkNhbmNlbFNjaGVkdWxlZFJlY29yZFB1Ymxpc2hSZXNwb25zZRJvChZMaXN0U2NoZWR1bGVkUHVibGlzaGVzEikucmVjb3Jkcy52MS5MaXN0U2NoZWR1bGVkUHVibGlzaGVzUmVxdWVzdBoqLnJlY29yZHMudjEuTGlzdFNjaGVkdWxlZFB1Ymxpc2hlc1Jlc3BvbnNlEmYKE0dldFNjaGVkdWxlZFB1Ymxpc2gSJi5yZWNvcmRzLnYxLkdldFNjaGVkdWxlZFB1Ymxpc2hSZXF1ZXN0GicucmVjb3Jkcy52MS5HZXRTY2hlZHVsZWRQdWJsaXNoUmVzcG9uc2USYAoRTGlzdERyYWZ0VmVyc2lvbnMSJC5yZWNvcmRzLnYxLkxpc3REcmFmdFZlcnNpb25zUmVxdWVzdBolLnJlY29yZHMudjEuTGlzdERyYWZ0VmVyc2lvbnNSZXNwb25zZRJpChRCYXRjaFB1Ymxpc2hWZXJzaW9ucxInLnJlY29yZHMudjEuQmF0Y2hQdWJsaXNoVmVyc2lvbnNSZXF1ZXN0GigucmVjb3Jkcy52MS5CYXRjaFB1Ymxpc2hWZXJzaW9uc1Jlc3BvbnNlEmYKE0JhdGNoUmVzb2x2ZVJlY29yZHMSJi5yZWNvcmRzLnYxLkJhdGNoUmVzb2x2ZVJlY29yZHNSZXF1ZXN0GicucmVjb3Jkcy52MS5CYXRjaFJlc29sdmVSZWNvcmRzUmVzcG9uc2USYwoSTG9va3VwUmVjb3JkTW9kZWxzEiUucmVjb3Jkcy52MS5Mb29rdXBSZWNvcmRNb2RlbHNSZXF1ZXN0GiYucmVjb3Jkcy52MS5Mb29rdXBSZWNvcmRNb2RlbHNSZXNwb25zZRJRCgxHbG9iYWxTZWFyY2gSHy5yZWNvcmRzLnYxLkdsb2JhbFNlYXJjaFJlcXVlc3QaIC5yZWNvcmRzLnYxLkdsb2JhbFNlYXJjaFJlc3BvbnNlElEKDExvb2t1cFJlY29yZBIfLnJlY29yZHMudjEuTG9va3VwUmVjb3JkUmVxdWVzdBogLnJlY29yZHMudjEuTG9va3VwUmVjb3JkUmVzcG9uc2UScgoXQ2hlY2tMb29rdXBBdmFpbGFiaWxpdHkSKi5yZWNvcmRzLnYxLkNoZWNrTG9va3VwQXZhaWxhYmlsaXR5UmVxdWVzdBorLnJlY29yZHMudjEuQ2hlY2tMb29rdXBBdmFpbGFiaWxpdHlSZXNwb25zZRJmChNMaXN0TG9va3VwQ29uZmxpY3RzEiYucmVjb3Jkcy52MS5MaXN0TG9va3VwQ29uZmxpY3RzUmVxdWVzdBonLnJlY29yZHMudjEuTGlzdExvb2t1cENvbmZsaWN0c1Jlc3BvbnNlEmYKE1JlYnVpbGRNb2RlbExvb2t1cHMSJi5yZWNvcmRzLnYxLlJlYnVpbGRNb2RlbExvb2t1cHNSZXF1ZXN0GicucmVjb3Jkcy52MS5SZWJ1aWxkTW9kZWxMb29rdXBzUmVzcG9uc2USYAoRR2V0RW1iZWRkaW5nU3RhdHMSJC5yZWNvcmRzLnYxLkdldEVtYmVkZGluZ1N0YXRzUmVxdWVzdBolLnJlY29yZHMudjEuR2V0RW1iZWRkaW5nU3RhdHNSZXNwb25zZRJmChNHZXRSZWNvcmRFbWJlZGRpbmdzEiYucmVjb3Jkcy52MS5HZXRSZWNvcmRFbWJlZGRpbmdzUmVxdWVzdBonLnJlY29yZHMudjEuR2V0UmVjb3JkRW1iZWRkaW5nc1Jlc3BvbnNlEmMKEkZpbmRTaW1pbGFyUmVjb3JkcxIlLnJlY29yZHMudjEuRmluZFNpbWlsYXJSZWNvcmRzUmVxdWVzdBomLnJlY29yZHMudjEuRmluZFNpbWlsYXJSZWNvcmRzUmVzcG9uc2USWgoPV3JpdGVFbWJlZGRpbmdzEiIucmVjb3Jkcy52MS5Xcml0ZUVtYmVkZGluZ3NSZXF1ZXN0GiMucmVjb3Jkcy52MS5Xcml0ZUVtYmVkZGluZ3NSZXNwb25zZRJdChBEZWxldGVFbWJlZGRpbmdzEiMucmVjb3Jkcy52MS5EZWxldGVFbWJlZGRpbmdzUmVxdWVzdBokLnJlY29yZHMudjEuRGVsZXRlRW1iZWRkaW5nc1Jlc3BvbnNlEl0KEFNlYXJjaEVtYmVkZGluZ3MSIy5yZWNvcmRzLnYxLlNlYXJjaEVtYmVkZGluZ3NSZXF1ZXN0GiQucmVjb3Jkcy52MS5TZWFyY2hFbWJlZGRpbmdzUmVzcG9uc2USdQoYRW5xdWV1ZUdlbmVyYXRlRW1iZWRkaW5nEisucmVjb3Jkcy52MS5FbnF1ZXVlR2VuZXJhdGVFbWJlZGRpbmdSZXF1ZXN0GiwucmVjb3Jkcy52MS5FbnF1ZXVlR2VuZXJhdGVFbWJlZGRpbmdSZXNwb25zZUI7WjlnaXRodWIuY29tL2VpZGVzdHVkaW8vZm9pci9nZW4vcHJvdG8vcmVjb3Jkcy92MTtyZWNvcmRzdjFiBnByb3RvMw", [file_google_protobuf_struct, file_google_protobuf_timestamp, file_expressions_v1_expressions]);
14
14
 
15
15
  /**
16
16
  * Describes the message records.v1.Record.
@@ -201,523 +201,551 @@ export const BulkUpdateRecordsRequestSchema = /*@__PURE__*/
201
201
  export const BulkUpdateRecordsResponseSchema = /*@__PURE__*/
202
202
  messageDesc(file_records_v1_records, 26);
203
203
 
204
+ /**
205
+ * Describes the message records.v1.BackfillQueryableIndexRequest.
206
+ * Use `create(BackfillQueryableIndexRequestSchema)` to create a new message.
207
+ */
208
+ export const BackfillQueryableIndexRequestSchema = /*@__PURE__*/
209
+ messageDesc(file_records_v1_records, 27);
210
+
211
+ /**
212
+ * Describes the message records.v1.BackfillQueryableIndexResponse.
213
+ * Use `create(BackfillQueryableIndexResponseSchema)` to create a new message.
214
+ */
215
+ export const BackfillQueryableIndexResponseSchema = /*@__PURE__*/
216
+ messageDesc(file_records_v1_records, 28);
217
+
218
+ /**
219
+ * Describes the message records.v1.BackfillModelIndexesRequest.
220
+ * Use `create(BackfillModelIndexesRequestSchema)` to create a new message.
221
+ */
222
+ export const BackfillModelIndexesRequestSchema = /*@__PURE__*/
223
+ messageDesc(file_records_v1_records, 29);
224
+
225
+ /**
226
+ * Describes the message records.v1.BackfillModelIndexesResponse.
227
+ * Use `create(BackfillModelIndexesResponseSchema)` to create a new message.
228
+ */
229
+ export const BackfillModelIndexesResponseSchema = /*@__PURE__*/
230
+ messageDesc(file_records_v1_records, 30);
231
+
204
232
  /**
205
233
  * Describes the message records.v1.DuplicateRecordRequest.
206
234
  * Use `create(DuplicateRecordRequestSchema)` to create a new message.
207
235
  */
208
236
  export const DuplicateRecordRequestSchema = /*@__PURE__*/
209
- messageDesc(file_records_v1_records, 27);
237
+ messageDesc(file_records_v1_records, 31);
210
238
 
211
239
  /**
212
240
  * Describes the message records.v1.DuplicateRecordResponse.
213
241
  * Use `create(DuplicateRecordResponseSchema)` to create a new message.
214
242
  */
215
243
  export const DuplicateRecordResponseSchema = /*@__PURE__*/
216
- messageDesc(file_records_v1_records, 28);
244
+ messageDesc(file_records_v1_records, 32);
217
245
 
218
246
  /**
219
247
  * Describes the message records.v1.DuplicateRecordsBulkRequest.
220
248
  * Use `create(DuplicateRecordsBulkRequestSchema)` to create a new message.
221
249
  */
222
250
  export const DuplicateRecordsBulkRequestSchema = /*@__PURE__*/
223
- messageDesc(file_records_v1_records, 29);
251
+ messageDesc(file_records_v1_records, 33);
224
252
 
225
253
  /**
226
254
  * Describes the message records.v1.DuplicateRecordsBulkResponse.
227
255
  * Use `create(DuplicateRecordsBulkResponseSchema)` to create a new message.
228
256
  */
229
257
  export const DuplicateRecordsBulkResponseSchema = /*@__PURE__*/
230
- messageDesc(file_records_v1_records, 30);
258
+ messageDesc(file_records_v1_records, 34);
231
259
 
232
260
  /**
233
261
  * Describes the message records.v1.CreateVersionRequest.
234
262
  * Use `create(CreateVersionRequestSchema)` to create a new message.
235
263
  */
236
264
  export const CreateVersionRequestSchema = /*@__PURE__*/
237
- messageDesc(file_records_v1_records, 31);
265
+ messageDesc(file_records_v1_records, 35);
238
266
 
239
267
  /**
240
268
  * Describes the message records.v1.CreateVersionResponse.
241
269
  * Use `create(CreateVersionResponseSchema)` to create a new message.
242
270
  */
243
271
  export const CreateVersionResponseSchema = /*@__PURE__*/
244
- messageDesc(file_records_v1_records, 32);
272
+ messageDesc(file_records_v1_records, 36);
245
273
 
246
274
  /**
247
275
  * Describes the message records.v1.PublishVersionRequest.
248
276
  * Use `create(PublishVersionRequestSchema)` to create a new message.
249
277
  */
250
278
  export const PublishVersionRequestSchema = /*@__PURE__*/
251
- messageDesc(file_records_v1_records, 33);
279
+ messageDesc(file_records_v1_records, 37);
252
280
 
253
281
  /**
254
282
  * Describes the message records.v1.PublishVersionResponse.
255
283
  * Use `create(PublishVersionResponseSchema)` to create a new message.
256
284
  */
257
285
  export const PublishVersionResponseSchema = /*@__PURE__*/
258
- messageDesc(file_records_v1_records, 34);
286
+ messageDesc(file_records_v1_records, 38);
259
287
 
260
288
  /**
261
289
  * Describes the message records.v1.UnpublishRecordRequest.
262
290
  * Use `create(UnpublishRecordRequestSchema)` to create a new message.
263
291
  */
264
292
  export const UnpublishRecordRequestSchema = /*@__PURE__*/
265
- messageDesc(file_records_v1_records, 35);
293
+ messageDesc(file_records_v1_records, 39);
266
294
 
267
295
  /**
268
296
  * Describes the message records.v1.UnpublishRecordResponse.
269
297
  * Use `create(UnpublishRecordResponseSchema)` to create a new message.
270
298
  */
271
299
  export const UnpublishRecordResponseSchema = /*@__PURE__*/
272
- messageDesc(file_records_v1_records, 36);
300
+ messageDesc(file_records_v1_records, 40);
273
301
 
274
302
  /**
275
303
  * Describes the message records.v1.RevertToVersionRequest.
276
304
  * Use `create(RevertToVersionRequestSchema)` to create a new message.
277
305
  */
278
306
  export const RevertToVersionRequestSchema = /*@__PURE__*/
279
- messageDesc(file_records_v1_records, 37);
307
+ messageDesc(file_records_v1_records, 41);
280
308
 
281
309
  /**
282
310
  * Describes the message records.v1.RevertToVersionResponse.
283
311
  * Use `create(RevertToVersionResponseSchema)` to create a new message.
284
312
  */
285
313
  export const RevertToVersionResponseSchema = /*@__PURE__*/
286
- messageDesc(file_records_v1_records, 38);
314
+ messageDesc(file_records_v1_records, 42);
287
315
 
288
316
  /**
289
317
  * Describes the message records.v1.ListRecordVersionsRequest.
290
318
  * Use `create(ListRecordVersionsRequestSchema)` to create a new message.
291
319
  */
292
320
  export const ListRecordVersionsRequestSchema = /*@__PURE__*/
293
- messageDesc(file_records_v1_records, 39);
321
+ messageDesc(file_records_v1_records, 43);
294
322
 
295
323
  /**
296
324
  * Describes the message records.v1.ListRecordVersionsResponse.
297
325
  * Use `create(ListRecordVersionsResponseSchema)` to create a new message.
298
326
  */
299
327
  export const ListRecordVersionsResponseSchema = /*@__PURE__*/
300
- messageDesc(file_records_v1_records, 40);
328
+ messageDesc(file_records_v1_records, 44);
301
329
 
302
330
  /**
303
331
  * Describes the message records.v1.CreateVariantRequest.
304
332
  * Use `create(CreateVariantRequestSchema)` to create a new message.
305
333
  */
306
334
  export const CreateVariantRequestSchema = /*@__PURE__*/
307
- messageDesc(file_records_v1_records, 41);
335
+ messageDesc(file_records_v1_records, 45);
308
336
 
309
337
  /**
310
338
  * Describes the message records.v1.CreateVariantResponse.
311
339
  * Use `create(CreateVariantResponseSchema)` to create a new message.
312
340
  */
313
341
  export const CreateVariantResponseSchema = /*@__PURE__*/
314
- messageDesc(file_records_v1_records, 42);
342
+ messageDesc(file_records_v1_records, 46);
315
343
 
316
344
  /**
317
345
  * Describes the message records.v1.UpdateVariantRequest.
318
346
  * Use `create(UpdateVariantRequestSchema)` to create a new message.
319
347
  */
320
348
  export const UpdateVariantRequestSchema = /*@__PURE__*/
321
- messageDesc(file_records_v1_records, 43);
349
+ messageDesc(file_records_v1_records, 47);
322
350
 
323
351
  /**
324
352
  * Describes the message records.v1.UpdateVariantResponse.
325
353
  * Use `create(UpdateVariantResponseSchema)` to create a new message.
326
354
  */
327
355
  export const UpdateVariantResponseSchema = /*@__PURE__*/
328
- messageDesc(file_records_v1_records, 44);
356
+ messageDesc(file_records_v1_records, 48);
329
357
 
330
358
  /**
331
359
  * Describes the message records.v1.DeleteVariantRequest.
332
360
  * Use `create(DeleteVariantRequestSchema)` to create a new message.
333
361
  */
334
362
  export const DeleteVariantRequestSchema = /*@__PURE__*/
335
- messageDesc(file_records_v1_records, 45);
363
+ messageDesc(file_records_v1_records, 49);
336
364
 
337
365
  /**
338
366
  * Describes the message records.v1.DeleteVariantResponse.
339
367
  * Use `create(DeleteVariantResponseSchema)` to create a new message.
340
368
  */
341
369
  export const DeleteVariantResponseSchema = /*@__PURE__*/
342
- messageDesc(file_records_v1_records, 46);
370
+ messageDesc(file_records_v1_records, 50);
343
371
 
344
372
  /**
345
373
  * Describes the message records.v1.SetDefaultVariantRequest.
346
374
  * Use `create(SetDefaultVariantRequestSchema)` to create a new message.
347
375
  */
348
376
  export const SetDefaultVariantRequestSchema = /*@__PURE__*/
349
- messageDesc(file_records_v1_records, 47);
377
+ messageDesc(file_records_v1_records, 51);
350
378
 
351
379
  /**
352
380
  * Describes the message records.v1.SetDefaultVariantResponse.
353
381
  * Use `create(SetDefaultVariantResponseSchema)` to create a new message.
354
382
  */
355
383
  export const SetDefaultVariantResponseSchema = /*@__PURE__*/
356
- messageDesc(file_records_v1_records, 48);
384
+ messageDesc(file_records_v1_records, 52);
357
385
 
358
386
  /**
359
387
  * Describes the message records.v1.ListRecordVariantsRequest.
360
388
  * Use `create(ListRecordVariantsRequestSchema)` to create a new message.
361
389
  */
362
390
  export const ListRecordVariantsRequestSchema = /*@__PURE__*/
363
- messageDesc(file_records_v1_records, 49);
391
+ messageDesc(file_records_v1_records, 53);
364
392
 
365
393
  /**
366
394
  * Describes the message records.v1.ListRecordVariantsResponse.
367
395
  * Use `create(ListRecordVariantsResponseSchema)` to create a new message.
368
396
  */
369
397
  export const ListRecordVariantsResponseSchema = /*@__PURE__*/
370
- messageDesc(file_records_v1_records, 50);
398
+ messageDesc(file_records_v1_records, 54);
371
399
 
372
400
  /**
373
401
  * Describes the message records.v1.SaveContentRequest.
374
402
  * Use `create(SaveContentRequestSchema)` to create a new message.
375
403
  */
376
404
  export const SaveContentRequestSchema = /*@__PURE__*/
377
- messageDesc(file_records_v1_records, 51);
405
+ messageDesc(file_records_v1_records, 55);
378
406
 
379
407
  /**
380
408
  * Describes the message records.v1.SaveContentResponse.
381
409
  * Use `create(SaveContentResponseSchema)` to create a new message.
382
410
  */
383
411
  export const SaveContentResponseSchema = /*@__PURE__*/
384
- messageDesc(file_records_v1_records, 52);
412
+ messageDesc(file_records_v1_records, 56);
385
413
 
386
414
  /**
387
415
  * Describes the message records.v1.ScheduleRecordPublishRequest.
388
416
  * Use `create(ScheduleRecordPublishRequestSchema)` to create a new message.
389
417
  */
390
418
  export const ScheduleRecordPublishRequestSchema = /*@__PURE__*/
391
- messageDesc(file_records_v1_records, 53);
419
+ messageDesc(file_records_v1_records, 57);
392
420
 
393
421
  /**
394
422
  * Describes the message records.v1.ScheduleRecordPublishResponse.
395
423
  * Use `create(ScheduleRecordPublishResponseSchema)` to create a new message.
396
424
  */
397
425
  export const ScheduleRecordPublishResponseSchema = /*@__PURE__*/
398
- messageDesc(file_records_v1_records, 54);
426
+ messageDesc(file_records_v1_records, 58);
399
427
 
400
428
  /**
401
429
  * Describes the message records.v1.CancelScheduledRecordPublishRequest.
402
430
  * Use `create(CancelScheduledRecordPublishRequestSchema)` to create a new message.
403
431
  */
404
432
  export const CancelScheduledRecordPublishRequestSchema = /*@__PURE__*/
405
- messageDesc(file_records_v1_records, 55);
433
+ messageDesc(file_records_v1_records, 59);
406
434
 
407
435
  /**
408
436
  * Describes the message records.v1.CancelScheduledRecordPublishResponse.
409
437
  * Use `create(CancelScheduledRecordPublishResponseSchema)` to create a new message.
410
438
  */
411
439
  export const CancelScheduledRecordPublishResponseSchema = /*@__PURE__*/
412
- messageDesc(file_records_v1_records, 56);
440
+ messageDesc(file_records_v1_records, 60);
413
441
 
414
442
  /**
415
443
  * Describes the message records.v1.ListScheduledPublishesRequest.
416
444
  * Use `create(ListScheduledPublishesRequestSchema)` to create a new message.
417
445
  */
418
446
  export const ListScheduledPublishesRequestSchema = /*@__PURE__*/
419
- messageDesc(file_records_v1_records, 57);
447
+ messageDesc(file_records_v1_records, 61);
420
448
 
421
449
  /**
422
450
  * Describes the message records.v1.ListScheduledPublishesResponse.
423
451
  * Use `create(ListScheduledPublishesResponseSchema)` to create a new message.
424
452
  */
425
453
  export const ListScheduledPublishesResponseSchema = /*@__PURE__*/
426
- messageDesc(file_records_v1_records, 58);
454
+ messageDesc(file_records_v1_records, 62);
427
455
 
428
456
  /**
429
457
  * Describes the message records.v1.GetScheduledPublishRequest.
430
458
  * Use `create(GetScheduledPublishRequestSchema)` to create a new message.
431
459
  */
432
460
  export const GetScheduledPublishRequestSchema = /*@__PURE__*/
433
- messageDesc(file_records_v1_records, 59);
461
+ messageDesc(file_records_v1_records, 63);
434
462
 
435
463
  /**
436
464
  * Describes the message records.v1.GetScheduledPublishResponse.
437
465
  * Use `create(GetScheduledPublishResponseSchema)` to create a new message.
438
466
  */
439
467
  export const GetScheduledPublishResponseSchema = /*@__PURE__*/
440
- messageDesc(file_records_v1_records, 60);
468
+ messageDesc(file_records_v1_records, 64);
441
469
 
442
470
  /**
443
471
  * Describes the message records.v1.ListDraftVersionsRequest.
444
472
  * Use `create(ListDraftVersionsRequestSchema)` to create a new message.
445
473
  */
446
474
  export const ListDraftVersionsRequestSchema = /*@__PURE__*/
447
- messageDesc(file_records_v1_records, 61);
475
+ messageDesc(file_records_v1_records, 65);
448
476
 
449
477
  /**
450
478
  * Describes the message records.v1.ListDraftVersionsResponse.
451
479
  * Use `create(ListDraftVersionsResponseSchema)` to create a new message.
452
480
  */
453
481
  export const ListDraftVersionsResponseSchema = /*@__PURE__*/
454
- messageDesc(file_records_v1_records, 62);
482
+ messageDesc(file_records_v1_records, 66);
455
483
 
456
484
  /**
457
485
  * Describes the message records.v1.BatchPublishVersionsRequest.
458
486
  * Use `create(BatchPublishVersionsRequestSchema)` to create a new message.
459
487
  */
460
488
  export const BatchPublishVersionsRequestSchema = /*@__PURE__*/
461
- messageDesc(file_records_v1_records, 63);
489
+ messageDesc(file_records_v1_records, 67);
462
490
 
463
491
  /**
464
492
  * Describes the message records.v1.BatchPublishVersionsResponse.
465
493
  * Use `create(BatchPublishVersionsResponseSchema)` to create a new message.
466
494
  */
467
495
  export const BatchPublishVersionsResponseSchema = /*@__PURE__*/
468
- messageDesc(file_records_v1_records, 64);
496
+ messageDesc(file_records_v1_records, 68);
469
497
 
470
498
  /**
471
499
  * Describes the message records.v1.BatchResolveRecordsRequest.
472
500
  * Use `create(BatchResolveRecordsRequestSchema)` to create a new message.
473
501
  */
474
502
  export const BatchResolveRecordsRequestSchema = /*@__PURE__*/
475
- messageDesc(file_records_v1_records, 65);
503
+ messageDesc(file_records_v1_records, 69);
476
504
 
477
505
  /**
478
506
  * Describes the message records.v1.BatchResolveRecordsResponse.
479
507
  * Use `create(BatchResolveRecordsResponseSchema)` to create a new message.
480
508
  */
481
509
  export const BatchResolveRecordsResponseSchema = /*@__PURE__*/
482
- messageDesc(file_records_v1_records, 66);
510
+ messageDesc(file_records_v1_records, 70);
483
511
 
484
512
  /**
485
513
  * Describes the message records.v1.ResolvedRecord.
486
514
  * Use `create(ResolvedRecordSchema)` to create a new message.
487
515
  */
488
516
  export const ResolvedRecordSchema = /*@__PURE__*/
489
- messageDesc(file_records_v1_records, 67);
517
+ messageDesc(file_records_v1_records, 71);
490
518
 
491
519
  /**
492
520
  * Describes the message records.v1.LookupRecordModelsRequest.
493
521
  * Use `create(LookupRecordModelsRequestSchema)` to create a new message.
494
522
  */
495
523
  export const LookupRecordModelsRequestSchema = /*@__PURE__*/
496
- messageDesc(file_records_v1_records, 68);
524
+ messageDesc(file_records_v1_records, 72);
497
525
 
498
526
  /**
499
527
  * Describes the message records.v1.RecordModelEntry.
500
528
  * Use `create(RecordModelEntrySchema)` to create a new message.
501
529
  */
502
530
  export const RecordModelEntrySchema = /*@__PURE__*/
503
- messageDesc(file_records_v1_records, 69);
531
+ messageDesc(file_records_v1_records, 73);
504
532
 
505
533
  /**
506
534
  * Describes the message records.v1.LookupRecordModelsResponse.
507
535
  * Use `create(LookupRecordModelsResponseSchema)` to create a new message.
508
536
  */
509
537
  export const LookupRecordModelsResponseSchema = /*@__PURE__*/
510
- messageDesc(file_records_v1_records, 70);
538
+ messageDesc(file_records_v1_records, 74);
511
539
 
512
540
  /**
513
541
  * Describes the message records.v1.GlobalSearchRequest.
514
542
  * Use `create(GlobalSearchRequestSchema)` to create a new message.
515
543
  */
516
544
  export const GlobalSearchRequestSchema = /*@__PURE__*/
517
- messageDesc(file_records_v1_records, 71);
545
+ messageDesc(file_records_v1_records, 75);
518
546
 
519
547
  /**
520
548
  * Describes the message records.v1.SearchResultItem.
521
549
  * Use `create(SearchResultItemSchema)` to create a new message.
522
550
  */
523
551
  export const SearchResultItemSchema = /*@__PURE__*/
524
- messageDesc(file_records_v1_records, 72);
552
+ messageDesc(file_records_v1_records, 76);
525
553
 
526
554
  /**
527
555
  * Describes the message records.v1.GlobalSearchResponse.
528
556
  * Use `create(GlobalSearchResponseSchema)` to create a new message.
529
557
  */
530
558
  export const GlobalSearchResponseSchema = /*@__PURE__*/
531
- messageDesc(file_records_v1_records, 73);
559
+ messageDesc(file_records_v1_records, 77);
532
560
 
533
561
  /**
534
562
  * Describes the message records.v1.EmbeddingStats.
535
563
  * Use `create(EmbeddingStatsSchema)` to create a new message.
536
564
  */
537
565
  export const EmbeddingStatsSchema = /*@__PURE__*/
538
- messageDesc(file_records_v1_records, 74);
566
+ messageDesc(file_records_v1_records, 78);
539
567
 
540
568
  /**
541
569
  * Describes the message records.v1.RecordEmbedding.
542
570
  * Use `create(RecordEmbeddingSchema)` to create a new message.
543
571
  */
544
572
  export const RecordEmbeddingSchema = /*@__PURE__*/
545
- messageDesc(file_records_v1_records, 75);
573
+ messageDesc(file_records_v1_records, 79);
546
574
 
547
575
  /**
548
576
  * Describes the message records.v1.SimilarRecord.
549
577
  * Use `create(SimilarRecordSchema)` to create a new message.
550
578
  */
551
579
  export const SimilarRecordSchema = /*@__PURE__*/
552
- messageDesc(file_records_v1_records, 76);
580
+ messageDesc(file_records_v1_records, 80);
553
581
 
554
582
  /**
555
583
  * Describes the message records.v1.GetEmbeddingStatsRequest.
556
584
  * Use `create(GetEmbeddingStatsRequestSchema)` to create a new message.
557
585
  */
558
586
  export const GetEmbeddingStatsRequestSchema = /*@__PURE__*/
559
- messageDesc(file_records_v1_records, 77);
587
+ messageDesc(file_records_v1_records, 81);
560
588
 
561
589
  /**
562
590
  * Describes the message records.v1.GetEmbeddingStatsResponse.
563
591
  * Use `create(GetEmbeddingStatsResponseSchema)` to create a new message.
564
592
  */
565
593
  export const GetEmbeddingStatsResponseSchema = /*@__PURE__*/
566
- messageDesc(file_records_v1_records, 78);
594
+ messageDesc(file_records_v1_records, 82);
567
595
 
568
596
  /**
569
597
  * Describes the message records.v1.GetRecordEmbeddingsRequest.
570
598
  * Use `create(GetRecordEmbeddingsRequestSchema)` to create a new message.
571
599
  */
572
600
  export const GetRecordEmbeddingsRequestSchema = /*@__PURE__*/
573
- messageDesc(file_records_v1_records, 79);
601
+ messageDesc(file_records_v1_records, 83);
574
602
 
575
603
  /**
576
604
  * Describes the message records.v1.GetRecordEmbeddingsResponse.
577
605
  * Use `create(GetRecordEmbeddingsResponseSchema)` to create a new message.
578
606
  */
579
607
  export const GetRecordEmbeddingsResponseSchema = /*@__PURE__*/
580
- messageDesc(file_records_v1_records, 80);
608
+ messageDesc(file_records_v1_records, 84);
581
609
 
582
610
  /**
583
611
  * Describes the message records.v1.FindSimilarRecordsRequest.
584
612
  * Use `create(FindSimilarRecordsRequestSchema)` to create a new message.
585
613
  */
586
614
  export const FindSimilarRecordsRequestSchema = /*@__PURE__*/
587
- messageDesc(file_records_v1_records, 81);
615
+ messageDesc(file_records_v1_records, 85);
588
616
 
589
617
  /**
590
618
  * Describes the message records.v1.FindSimilarRecordsResponse.
591
619
  * Use `create(FindSimilarRecordsResponseSchema)` to create a new message.
592
620
  */
593
621
  export const FindSimilarRecordsResponseSchema = /*@__PURE__*/
594
- messageDesc(file_records_v1_records, 82);
622
+ messageDesc(file_records_v1_records, 86);
595
623
 
596
624
  /**
597
625
  * Describes the message records.v1.WriteEmbeddingsRequest.
598
626
  * Use `create(WriteEmbeddingsRequestSchema)` to create a new message.
599
627
  */
600
628
  export const WriteEmbeddingsRequestSchema = /*@__PURE__*/
601
- messageDesc(file_records_v1_records, 83);
629
+ messageDesc(file_records_v1_records, 87);
602
630
 
603
631
  /**
604
632
  * Describes the message records.v1.WriteEmbeddingsResponse.
605
633
  * Use `create(WriteEmbeddingsResponseSchema)` to create a new message.
606
634
  */
607
635
  export const WriteEmbeddingsResponseSchema = /*@__PURE__*/
608
- messageDesc(file_records_v1_records, 84);
636
+ messageDesc(file_records_v1_records, 88);
609
637
 
610
638
  /**
611
639
  * Describes the message records.v1.DeleteEmbeddingsRequest.
612
640
  * Use `create(DeleteEmbeddingsRequestSchema)` to create a new message.
613
641
  */
614
642
  export const DeleteEmbeddingsRequestSchema = /*@__PURE__*/
615
- messageDesc(file_records_v1_records, 85);
643
+ messageDesc(file_records_v1_records, 89);
616
644
 
617
645
  /**
618
646
  * Describes the message records.v1.DeleteEmbeddingsResponse.
619
647
  * Use `create(DeleteEmbeddingsResponseSchema)` to create a new message.
620
648
  */
621
649
  export const DeleteEmbeddingsResponseSchema = /*@__PURE__*/
622
- messageDesc(file_records_v1_records, 86);
650
+ messageDesc(file_records_v1_records, 90);
623
651
 
624
652
  /**
625
653
  * Describes the message records.v1.EnqueueGenerateEmbeddingRequest.
626
654
  * Use `create(EnqueueGenerateEmbeddingRequestSchema)` to create a new message.
627
655
  */
628
656
  export const EnqueueGenerateEmbeddingRequestSchema = /*@__PURE__*/
629
- messageDesc(file_records_v1_records, 87);
657
+ messageDesc(file_records_v1_records, 91);
630
658
 
631
659
  /**
632
660
  * Describes the message records.v1.EnqueueGenerateEmbeddingResponse.
633
661
  * Use `create(EnqueueGenerateEmbeddingResponseSchema)` to create a new message.
634
662
  */
635
663
  export const EnqueueGenerateEmbeddingResponseSchema = /*@__PURE__*/
636
- messageDesc(file_records_v1_records, 88);
664
+ messageDesc(file_records_v1_records, 92);
637
665
 
638
666
  /**
639
667
  * Describes the message records.v1.SearchEmbeddingsRequest.
640
668
  * Use `create(SearchEmbeddingsRequestSchema)` to create a new message.
641
669
  */
642
670
  export const SearchEmbeddingsRequestSchema = /*@__PURE__*/
643
- messageDesc(file_records_v1_records, 89);
671
+ messageDesc(file_records_v1_records, 93);
644
672
 
645
673
  /**
646
674
  * Describes the message records.v1.SearchEmbeddingsResponse.
647
675
  * Use `create(SearchEmbeddingsResponseSchema)` to create a new message.
648
676
  */
649
677
  export const SearchEmbeddingsResponseSchema = /*@__PURE__*/
650
- messageDesc(file_records_v1_records, 90);
678
+ messageDesc(file_records_v1_records, 94);
651
679
 
652
680
  /**
653
681
  * Describes the message records.v1.LookupRecordRequest.
654
682
  * Use `create(LookupRecordRequestSchema)` to create a new message.
655
683
  */
656
684
  export const LookupRecordRequestSchema = /*@__PURE__*/
657
- messageDesc(file_records_v1_records, 91);
685
+ messageDesc(file_records_v1_records, 95);
658
686
 
659
687
  /**
660
688
  * Describes the message records.v1.LookupRecordResponse.
661
689
  * Use `create(LookupRecordResponseSchema)` to create a new message.
662
690
  */
663
691
  export const LookupRecordResponseSchema = /*@__PURE__*/
664
- messageDesc(file_records_v1_records, 92);
692
+ messageDesc(file_records_v1_records, 96);
665
693
 
666
694
  /**
667
695
  * Describes the message records.v1.CheckLookupAvailabilityRequest.
668
696
  * Use `create(CheckLookupAvailabilityRequestSchema)` to create a new message.
669
697
  */
670
698
  export const CheckLookupAvailabilityRequestSchema = /*@__PURE__*/
671
- messageDesc(file_records_v1_records, 93);
699
+ messageDesc(file_records_v1_records, 97);
672
700
 
673
701
  /**
674
702
  * Describes the message records.v1.CheckLookupAvailabilityResponse.
675
703
  * Use `create(CheckLookupAvailabilityResponseSchema)` to create a new message.
676
704
  */
677
705
  export const CheckLookupAvailabilityResponseSchema = /*@__PURE__*/
678
- messageDesc(file_records_v1_records, 94);
706
+ messageDesc(file_records_v1_records, 98);
679
707
 
680
708
  /**
681
709
  * Describes the message records.v1.LookupConflictDetail.
682
710
  * Use `create(LookupConflictDetailSchema)` to create a new message.
683
711
  */
684
712
  export const LookupConflictDetailSchema = /*@__PURE__*/
685
- messageDesc(file_records_v1_records, 95);
713
+ messageDesc(file_records_v1_records, 99);
686
714
 
687
715
  /**
688
716
  * Describes the message records.v1.ListLookupConflictsRequest.
689
717
  * Use `create(ListLookupConflictsRequestSchema)` to create a new message.
690
718
  */
691
719
  export const ListLookupConflictsRequestSchema = /*@__PURE__*/
692
- messageDesc(file_records_v1_records, 96);
720
+ messageDesc(file_records_v1_records, 100);
693
721
 
694
722
  /**
695
723
  * Describes the message records.v1.ListLookupConflictsResponse.
696
724
  * Use `create(ListLookupConflictsResponseSchema)` to create a new message.
697
725
  */
698
726
  export const ListLookupConflictsResponseSchema = /*@__PURE__*/
699
- messageDesc(file_records_v1_records, 97);
727
+ messageDesc(file_records_v1_records, 101);
700
728
 
701
729
  /**
702
730
  * Describes the message records.v1.ConflictGroup.
703
731
  * Use `create(ConflictGroupSchema)` to create a new message.
704
732
  */
705
733
  export const ConflictGroupSchema = /*@__PURE__*/
706
- messageDesc(file_records_v1_records, 98);
734
+ messageDesc(file_records_v1_records, 102);
707
735
 
708
736
  /**
709
737
  * Describes the message records.v1.RebuildModelLookupsRequest.
710
738
  * Use `create(RebuildModelLookupsRequestSchema)` to create a new message.
711
739
  */
712
740
  export const RebuildModelLookupsRequestSchema = /*@__PURE__*/
713
- messageDesc(file_records_v1_records, 99);
741
+ messageDesc(file_records_v1_records, 103);
714
742
 
715
743
  /**
716
744
  * Describes the message records.v1.RebuildModelLookupsResponse.
717
745
  * Use `create(RebuildModelLookupsResponseSchema)` to create a new message.
718
746
  */
719
747
  export const RebuildModelLookupsResponseSchema = /*@__PURE__*/
720
- messageDesc(file_records_v1_records, 100);
748
+ messageDesc(file_records_v1_records, 104);
721
749
 
722
750
  /**
723
751
  * Describes the enum records.v1.RecordType.