From 6fb15a45b022ac5e84974b2525640a40f05e8943 Mon Sep 17 00:00:00 2001 From: Andrey Vasnetsov Date: Mon, 12 Aug 2024 18:24:45 +0200 Subject: [PATCH] update client to v1.11.0 (#47) --- proto/collections.proto | 51 +- proto/points.proto | 69 +- proto/points_service.proto | 4 + qdrant/collections.pb.go | 1978 ++++++++---- qdrant/points.pb.go | 4880 +++++++++++++++++------------- qdrant/points_service.pb.go | 96 +- qdrant/points_service_grpc.pb.go | 38 + 7 files changed, 4257 insertions(+), 2859 deletions(-) diff --git a/proto/collections.proto b/proto/collections.proto index c959760..864ca6a 100644 --- a/proto/collections.proto +++ b/proto/collections.proto @@ -128,6 +128,7 @@ enum PayloadSchemaType { Text = 5; Bool = 6; Datetime = 7; + Uuid = 8; } enum QuantizationType { @@ -384,6 +385,26 @@ enum TokenizerType { Multilingual = 4; } +message KeywordIndexParams { + optional bool is_tenant = 1; // If true - used for tenant optimization. + optional bool on_disk = 2; // If true - store index on disk. +} + +message IntegerIndexParams { + bool lookup = 1; // If true - support direct lookups. + bool range = 2; // If true - support ranges filters. + optional bool is_principal = 3; // If true - use this key to organize storage of the collection data. This option assumes that this key will be used in majority of filtered requests. + optional bool on_disk = 4; // If true - store index on disk. +} + +message FloatIndexParams { + optional bool on_disk = 1; // If true - store index on disk. + optional bool is_principal = 2; // If true - use this key to organize storage of the collection data. This option assumes that this key will be used in majority of filtered requests. +} + +message GeoIndexParams { +} + message TextIndexParams { TokenizerType tokenizer = 1; // Tokenizer type optional bool lowercase = 2; // If true - all tokens will be lowercase @@ -391,15 +412,29 @@ message TextIndexParams { optional uint64 max_token_len = 4; // Maximal token length } -message IntegerIndexParams { - bool lookup = 1; // If true - support direct lookups. - bool range = 2; // If true - support ranges filters. +message BoolIndexParams { +} + +message DatetimeIndexParams { + optional bool on_disk = 1; // If true - store index on disk. + optional bool is_principal = 2; // If true - use this key to organize storage of the collection data. This option assumes that this key will be used in majority of filtered requests. +} + +message UuidIndexParams { + optional bool is_tenant = 1; // If true - used for tenant optimization. + optional bool on_disk = 2; // If true - store index on disk. } message PayloadIndexParams { oneof index_params { - TextIndexParams text_index_params = 1; // Parameters for text index + KeywordIndexParams keyword_index_params = 3; // Parameters for keyword index IntegerIndexParams integer_index_params = 2; // Parameters for integer index + FloatIndexParams float_index_params = 4; // Parameters for float index + GeoIndexParams geo_index_params = 5; // Parameters for geo index + TextIndexParams text_index_params = 1; // Parameters for text index + BoolIndexParams bool_index_params = 6; // Parameters for bool index + DatetimeIndexParams datetime_index_params = 7; // Parameters for datetime index + UuidIndexParams uuid_index_params = 8; // Parameters for uuid index } } @@ -510,12 +545,20 @@ message ShardTransferInfo { bool sync = 4; // If `true` transfer is a synchronization of a replicas; If `false` transfer is a moving of a shard from one peer to another } +message ReshardingInfo { + uint32 shard_id = 1; + uint64 peer_id = 2; + optional ShardKey shard_key = 3; +} + message CollectionClusterInfoResponse { uint64 peer_id = 1; // ID of this peer uint64 shard_count = 2; // Total number of shards repeated LocalShardInfo local_shards = 3; // Local shards repeated RemoteShardInfo remote_shards = 4; // Remote shards repeated ShardTransferInfo shard_transfers = 5; // Shard transfers + // TODO(resharding): enable on release: + // repeated ReshardingInfo resharding_operations = 6; // Resharding operations } message MoveShard { diff --git a/proto/points.proto b/proto/points.proto index f82bf33..a34047e 100644 --- a/proto/points.proto +++ b/proto/points.proto @@ -112,6 +112,7 @@ message GetPoints { optional WithVectorsSelector with_vectors = 5; // Options for specifying which vectors to include into response optional ReadConsistency read_consistency = 6; // Options for specifying read consistency guarantees optional ShardKeySelector shard_key_selector = 7; // Specify in which shards to look for the points, if not specified - look in all shards + optional uint64 timeout = 8; // If set, overrides global timeout setting for this request. Unit is seconds. } message UpdatePointVectors { @@ -173,6 +174,7 @@ enum FieldType { FieldTypeText = 4; FieldTypeBool = 5; FieldTypeDatetime = 6; + FieldTypeUuid = 7; } message CreateFieldIndexCollection { @@ -265,7 +267,7 @@ message SearchParams { optional bool exact = 2; /* - If set to true, search will ignore quantized vector data + If set to true, search will ignore quantized vector data */ optional QuantizationSearchParams quantization = 3; /* @@ -358,16 +360,17 @@ message ScrollPoints { optional ReadConsistency read_consistency = 8; // Options for specifying read consistency guarantees optional ShardKeySelector shard_key_selector = 9; // Specify in which shards to look for the points, if not specified - look in all shards optional OrderBy order_by = 10; // Order the records by a payload field + optional uint64 timeout = 11; // If set, overrides global timeout setting for this request. Unit is seconds. } // How to use positive and negative vectors to find the results, default is `AverageVector`. enum RecommendStrategy { - // Average positive and negative vectors and create a single query with the formula + // Average positive and negative vectors and create a single query with the formula // `query = avg_pos + avg_pos - avg_neg`. Then performs normal search. AverageVector = 0; - // Uses custom search objective. Each candidate is compared against all - // examples, its score is then chosen from the `max(max_pos_score, max_neg_score)`. + // Uses custom search objective. Each candidate is compared against all + // examples, its score is then chosen from the `max(max_pos_score, max_neg_score)`. // If the `max_neg_score` is chosen then it is squared and negated. BestScore = 1; } @@ -433,7 +436,7 @@ message RecommendPointGroups { message TargetVector { oneof target { VectorExample single = 1; - + // leaving extensibility for possibly adding multi-target } } @@ -480,6 +483,7 @@ message CountPoints { optional bool exact = 3; // If `true` - return exact count, if `false` - return approximate count optional ReadConsistency read_consistency = 4; // Options for specifying read consistency guarantees optional ShardKeySelector shard_key_selector = 5; // Specify in which shards to look for the points, if not specified - look in all shards + optional uint64 timeout = 6; // If set, overrides global timeout setting for this request. Unit is seconds. } message RecommendInput { @@ -504,6 +508,16 @@ message ContextInput { enum Fusion { RRF = 0; // Reciprocal Rank Fusion + DBSF = 1; // Distribution-Based Score Fusion +} + +// Sample points from the collection +// +// Available sampling methods: +// +// * `random` - Random sampling +enum Sample { + Random = 0; } message Query { @@ -514,6 +528,7 @@ message Query { ContextInput context = 4; // Return points that live in positive areas. OrderBy order_by = 5; // Order the points by a payload field. Fusion fusion = 6; // Fuse the results of multiple prefetches. + Sample sample = 7; // Sample points from the collection. } } @@ -553,6 +568,37 @@ message QueryBatchPoints { optional uint64 timeout = 4; // If set, overrides global timeout setting for this request. Unit is seconds. } +message QueryPointGroups { + string collection_name = 1; // Name of the collection + repeated PrefetchQuery prefetch = 2; // Sub-requests to perform first. If present, the query will be performed on the results of the prefetches. + optional Query query = 3; // Query to perform. If missing, returns points ordered by their IDs. + optional string using = 4; // Define which vector to use for querying. If missing, the default vector is used. + optional Filter filter = 5; // Filter conditions - return only those points that satisfy the specified conditions. + optional SearchParams params = 6; // Search params for when there is no prefetch. + optional float score_threshold = 7; // Return points with scores better than this threshold. + WithPayloadSelector with_payload = 8; // Options for specifying which payload to include or not + optional WithVectorsSelector with_vectors = 9; // Options for specifying which vectors to include into response + optional LookupLocation lookup_from = 10; // The location to use for IDs lookup, if not specified - use the current collection and the 'using' vector + optional uint64 limit = 11; // Max number of points. Default is 3. + optional uint64 group_size = 12; // Maximum amount of points to return per group. Default to 10. + string group_by = 13; // Payload field to group by, must be a string or number field. If there are multiple values for the field, all of them will be used. One point can be in multiple groups. + optional ReadConsistency read_consistency = 14; // Options for specifying read consistency guarantees + optional WithLookup with_lookup = 15; // Options for specifying how to use the group id to lookup points in another collection + optional uint64 timeout = 16; // If set, overrides global timeout setting for this request. Unit is seconds. + optional ShardKeySelector shard_key_selector = 17; // Specify in which shards to look for the points, if not specified - look in all shards +} + +message FacetValue { + oneof variant { + string string_value = 1; // String value from the facet + } +} + +message FacetValueHit { + FacetValue value = 1; // Value from the facet + uint64 count = 2; // Number of points with this value +} + message PointsUpdateOperation { message PointStructList { repeated PointStruct points = 1; @@ -666,7 +712,7 @@ message GroupId { message PointGroup { GroupId id = 1; // Group id - repeated ScoredPoint hits = 2; // Points in the group + repeated ScoredPoint hits = 2; // Points in the group RetrievedPoint lookup = 3; // Point(s) from the lookup collection that matches the group id } @@ -689,6 +735,11 @@ message QueryBatchResponse { double time = 2; // Time spent to process } +message QueryGroupsResponse { + GroupsResult result = 1; + double time = 2; // Time spent to process +} + message BatchResult { repeated ScoredPoint result = 1; } @@ -770,12 +821,12 @@ message Filter { repeated Condition should = 1; // At least one of those conditions should match repeated Condition must = 2; // All conditions must match repeated Condition must_not = 3; // All conditions must NOT match - optional MinShould min_should = 4; // At least minimum amount of given conditions should match + optional MinShould min_should = 4; // At least minimum amount of given conditions should match } message MinShould { - repeated Condition conditions = 1; - uint64 min_count = 2; + repeated Condition conditions = 1; + uint64 min_count = 2; } message Condition { diff --git a/proto/points_service.proto b/proto/points_service.proto index 7a8aaf8..e88f0fd 100644 --- a/proto/points_service.proto +++ b/proto/points_service.proto @@ -116,4 +116,8 @@ service Points { Universally query points in a batch fashion. This endpoint covers all capabilities of search, recommend, discover, filters. But also enables hybrid and multi-stage queries. */ rpc QueryBatch (QueryBatchPoints) returns (QueryBatchResponse) {} + /* + Universally query points in a group fashion. This endpoint covers all capabilities of search, recommend, discover, filters. But also enables hybrid and multi-stage queries. + */ + rpc QueryGroups (QueryPointGroups) returns (QueryGroupsResponse) {} } diff --git a/qdrant/collections.pb.go b/qdrant/collections.pb.go index defe357..0a5c07d 100644 --- a/qdrant/collections.pb.go +++ b/qdrant/collections.pb.go @@ -282,6 +282,7 @@ const ( PayloadSchemaType_Text PayloadSchemaType = 5 PayloadSchemaType_Bool PayloadSchemaType = 6 PayloadSchemaType_Datetime PayloadSchemaType = 7 + PayloadSchemaType_Uuid PayloadSchemaType = 8 ) // Enum value maps for PayloadSchemaType. @@ -295,6 +296,7 @@ var ( 5: "Text", 6: "Bool", 7: "Datetime", + 8: "Uuid", } PayloadSchemaType_value = map[string]int32{ "UnknownType": 0, @@ -305,6 +307,7 @@ var ( "Text": 5, "Bool": 6, "Datetime": 7, + "Uuid": 8, } ) @@ -3048,6 +3051,225 @@ func (x *CollectionConfig) GetQuantizationConfig() *QuantizationConfig { return nil } +type KeywordIndexParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsTenant *bool `protobuf:"varint,1,opt,name=is_tenant,json=isTenant,proto3,oneof" json:"is_tenant,omitempty"` // If true - used for tenant optimization. + OnDisk *bool `protobuf:"varint,2,opt,name=on_disk,json=onDisk,proto3,oneof" json:"on_disk,omitempty"` // If true - store index on disk. +} + +func (x *KeywordIndexParams) Reset() { + *x = KeywordIndexParams{} + if protoimpl.UnsafeEnabled { + mi := &file_collections_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *KeywordIndexParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*KeywordIndexParams) ProtoMessage() {} + +func (x *KeywordIndexParams) ProtoReflect() protoreflect.Message { + mi := &file_collections_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use KeywordIndexParams.ProtoReflect.Descriptor instead. +func (*KeywordIndexParams) Descriptor() ([]byte, []int) { + return file_collections_proto_rawDescGZIP(), []int{35} +} + +func (x *KeywordIndexParams) GetIsTenant() bool { + if x != nil && x.IsTenant != nil { + return *x.IsTenant + } + return false +} + +func (x *KeywordIndexParams) GetOnDisk() bool { + if x != nil && x.OnDisk != nil { + return *x.OnDisk + } + return false +} + +type IntegerIndexParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Lookup bool `protobuf:"varint,1,opt,name=lookup,proto3" json:"lookup,omitempty"` // If true - support direct lookups. + Range bool `protobuf:"varint,2,opt,name=range,proto3" json:"range,omitempty"` // If true - support ranges filters. + IsPrincipal *bool `protobuf:"varint,3,opt,name=is_principal,json=isPrincipal,proto3,oneof" json:"is_principal,omitempty"` // If true - use this key to organize storage of the collection data. This option assumes that this key will be used in majority of filtered requests. + OnDisk *bool `protobuf:"varint,4,opt,name=on_disk,json=onDisk,proto3,oneof" json:"on_disk,omitempty"` // If true - store index on disk. +} + +func (x *IntegerIndexParams) Reset() { + *x = IntegerIndexParams{} + if protoimpl.UnsafeEnabled { + mi := &file_collections_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IntegerIndexParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IntegerIndexParams) ProtoMessage() {} + +func (x *IntegerIndexParams) ProtoReflect() protoreflect.Message { + mi := &file_collections_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IntegerIndexParams.ProtoReflect.Descriptor instead. +func (*IntegerIndexParams) Descriptor() ([]byte, []int) { + return file_collections_proto_rawDescGZIP(), []int{36} +} + +func (x *IntegerIndexParams) GetLookup() bool { + if x != nil { + return x.Lookup + } + return false +} + +func (x *IntegerIndexParams) GetRange() bool { + if x != nil { + return x.Range + } + return false +} + +func (x *IntegerIndexParams) GetIsPrincipal() bool { + if x != nil && x.IsPrincipal != nil { + return *x.IsPrincipal + } + return false +} + +func (x *IntegerIndexParams) GetOnDisk() bool { + if x != nil && x.OnDisk != nil { + return *x.OnDisk + } + return false +} + +type FloatIndexParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OnDisk *bool `protobuf:"varint,1,opt,name=on_disk,json=onDisk,proto3,oneof" json:"on_disk,omitempty"` // If true - store index on disk. + IsPrincipal *bool `protobuf:"varint,2,opt,name=is_principal,json=isPrincipal,proto3,oneof" json:"is_principal,omitempty"` // If true - use this key to organize storage of the collection data. This option assumes that this key will be used in majority of filtered requests. +} + +func (x *FloatIndexParams) Reset() { + *x = FloatIndexParams{} + if protoimpl.UnsafeEnabled { + mi := &file_collections_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FloatIndexParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FloatIndexParams) ProtoMessage() {} + +func (x *FloatIndexParams) ProtoReflect() protoreflect.Message { + mi := &file_collections_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FloatIndexParams.ProtoReflect.Descriptor instead. +func (*FloatIndexParams) Descriptor() ([]byte, []int) { + return file_collections_proto_rawDescGZIP(), []int{37} +} + +func (x *FloatIndexParams) GetOnDisk() bool { + if x != nil && x.OnDisk != nil { + return *x.OnDisk + } + return false +} + +func (x *FloatIndexParams) GetIsPrincipal() bool { + if x != nil && x.IsPrincipal != nil { + return *x.IsPrincipal + } + return false +} + +type GeoIndexParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GeoIndexParams) Reset() { + *x = GeoIndexParams{} + if protoimpl.UnsafeEnabled { + mi := &file_collections_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GeoIndexParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GeoIndexParams) ProtoMessage() {} + +func (x *GeoIndexParams) ProtoReflect() protoreflect.Message { + mi := &file_collections_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GeoIndexParams.ProtoReflect.Descriptor instead. +func (*GeoIndexParams) Descriptor() ([]byte, []int) { + return file_collections_proto_rawDescGZIP(), []int{38} +} + type TextIndexParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3062,7 +3284,7 @@ type TextIndexParams struct { func (x *TextIndexParams) Reset() { *x = TextIndexParams{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[35] + mi := &file_collections_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3075,7 +3297,7 @@ func (x *TextIndexParams) String() string { func (*TextIndexParams) ProtoMessage() {} func (x *TextIndexParams) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[35] + mi := &file_collections_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3088,7 +3310,7 @@ func (x *TextIndexParams) ProtoReflect() protoreflect.Message { // Deprecated: Use TextIndexParams.ProtoReflect.Descriptor instead. func (*TextIndexParams) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{35} + return file_collections_proto_rawDescGZIP(), []int{39} } func (x *TextIndexParams) GetTokenizer() TokenizerType { @@ -3119,32 +3341,70 @@ func (x *TextIndexParams) GetMaxTokenLen() uint64 { return 0 } -type IntegerIndexParams struct { +type BoolIndexParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields +} - Lookup bool `protobuf:"varint,1,opt,name=lookup,proto3" json:"lookup,omitempty"` // If true - support direct lookups. - Range bool `protobuf:"varint,2,opt,name=range,proto3" json:"range,omitempty"` // If true - support ranges filters. +func (x *BoolIndexParams) Reset() { + *x = BoolIndexParams{} + if protoimpl.UnsafeEnabled { + mi := &file_collections_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (x *IntegerIndexParams) Reset() { - *x = IntegerIndexParams{} +func (x *BoolIndexParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BoolIndexParams) ProtoMessage() {} + +func (x *BoolIndexParams) ProtoReflect() protoreflect.Message { + mi := &file_collections_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BoolIndexParams.ProtoReflect.Descriptor instead. +func (*BoolIndexParams) Descriptor() ([]byte, []int) { + return file_collections_proto_rawDescGZIP(), []int{40} +} + +type DatetimeIndexParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OnDisk *bool `protobuf:"varint,1,opt,name=on_disk,json=onDisk,proto3,oneof" json:"on_disk,omitempty"` // If true - store index on disk. + IsPrincipal *bool `protobuf:"varint,2,opt,name=is_principal,json=isPrincipal,proto3,oneof" json:"is_principal,omitempty"` // If true - use this key to organize storage of the collection data. This option assumes that this key will be used in majority of filtered requests. +} + +func (x *DatetimeIndexParams) Reset() { + *x = DatetimeIndexParams{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[36] + mi := &file_collections_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IntegerIndexParams) String() string { +func (x *DatetimeIndexParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IntegerIndexParams) ProtoMessage() {} +func (*DatetimeIndexParams) ProtoMessage() {} -func (x *IntegerIndexParams) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[36] +func (x *DatetimeIndexParams) ProtoReflect() protoreflect.Message { + mi := &file_collections_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3155,21 +3415,76 @@ func (x *IntegerIndexParams) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IntegerIndexParams.ProtoReflect.Descriptor instead. -func (*IntegerIndexParams) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{36} +// Deprecated: Use DatetimeIndexParams.ProtoReflect.Descriptor instead. +func (*DatetimeIndexParams) Descriptor() ([]byte, []int) { + return file_collections_proto_rawDescGZIP(), []int{41} } -func (x *IntegerIndexParams) GetLookup() bool { - if x != nil { - return x.Lookup +func (x *DatetimeIndexParams) GetOnDisk() bool { + if x != nil && x.OnDisk != nil { + return *x.OnDisk } return false } -func (x *IntegerIndexParams) GetRange() bool { - if x != nil { - return x.Range +func (x *DatetimeIndexParams) GetIsPrincipal() bool { + if x != nil && x.IsPrincipal != nil { + return *x.IsPrincipal + } + return false +} + +type UuidIndexParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsTenant *bool `protobuf:"varint,1,opt,name=is_tenant,json=isTenant,proto3,oneof" json:"is_tenant,omitempty"` // If true - used for tenant optimization. + OnDisk *bool `protobuf:"varint,2,opt,name=on_disk,json=onDisk,proto3,oneof" json:"on_disk,omitempty"` // If true - store index on disk. +} + +func (x *UuidIndexParams) Reset() { + *x = UuidIndexParams{} + if protoimpl.UnsafeEnabled { + mi := &file_collections_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UuidIndexParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UuidIndexParams) ProtoMessage() {} + +func (x *UuidIndexParams) ProtoReflect() protoreflect.Message { + mi := &file_collections_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UuidIndexParams.ProtoReflect.Descriptor instead. +func (*UuidIndexParams) Descriptor() ([]byte, []int) { + return file_collections_proto_rawDescGZIP(), []int{42} +} + +func (x *UuidIndexParams) GetIsTenant() bool { + if x != nil && x.IsTenant != nil { + return *x.IsTenant + } + return false +} + +func (x *UuidIndexParams) GetOnDisk() bool { + if x != nil && x.OnDisk != nil { + return *x.OnDisk } return false } @@ -3181,15 +3496,21 @@ type PayloadIndexParams struct { // Types that are assignable to IndexParams: // - // *PayloadIndexParams_TextIndexParams + // *PayloadIndexParams_KeywordIndexParams // *PayloadIndexParams_IntegerIndexParams + // *PayloadIndexParams_FloatIndexParams + // *PayloadIndexParams_GeoIndexParams + // *PayloadIndexParams_TextIndexParams + // *PayloadIndexParams_BoolIndexParams + // *PayloadIndexParams_DatetimeIndexParams + // *PayloadIndexParams_UuidIndexParams IndexParams isPayloadIndexParams_IndexParams `protobuf_oneof:"index_params"` } func (x *PayloadIndexParams) Reset() { *x = PayloadIndexParams{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[37] + mi := &file_collections_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3202,7 +3523,7 @@ func (x *PayloadIndexParams) String() string { func (*PayloadIndexParams) ProtoMessage() {} func (x *PayloadIndexParams) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[37] + mi := &file_collections_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3215,7 +3536,7 @@ func (x *PayloadIndexParams) ProtoReflect() protoreflect.Message { // Deprecated: Use PayloadIndexParams.ProtoReflect.Descriptor instead. func (*PayloadIndexParams) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{37} + return file_collections_proto_rawDescGZIP(), []int{43} } func (m *PayloadIndexParams) GetIndexParams() isPayloadIndexParams_IndexParams { @@ -3225,9 +3546,9 @@ func (m *PayloadIndexParams) GetIndexParams() isPayloadIndexParams_IndexParams { return nil } -func (x *PayloadIndexParams) GetTextIndexParams() *TextIndexParams { - if x, ok := x.GetIndexParams().(*PayloadIndexParams_TextIndexParams); ok { - return x.TextIndexParams +func (x *PayloadIndexParams) GetKeywordIndexParams() *KeywordIndexParams { + if x, ok := x.GetIndexParams().(*PayloadIndexParams_KeywordIndexParams); ok { + return x.KeywordIndexParams } return nil } @@ -3239,22 +3560,100 @@ func (x *PayloadIndexParams) GetIntegerIndexParams() *IntegerIndexParams { return nil } +func (x *PayloadIndexParams) GetFloatIndexParams() *FloatIndexParams { + if x, ok := x.GetIndexParams().(*PayloadIndexParams_FloatIndexParams); ok { + return x.FloatIndexParams + } + return nil +} + +func (x *PayloadIndexParams) GetGeoIndexParams() *GeoIndexParams { + if x, ok := x.GetIndexParams().(*PayloadIndexParams_GeoIndexParams); ok { + return x.GeoIndexParams + } + return nil +} + +func (x *PayloadIndexParams) GetTextIndexParams() *TextIndexParams { + if x, ok := x.GetIndexParams().(*PayloadIndexParams_TextIndexParams); ok { + return x.TextIndexParams + } + return nil +} + +func (x *PayloadIndexParams) GetBoolIndexParams() *BoolIndexParams { + if x, ok := x.GetIndexParams().(*PayloadIndexParams_BoolIndexParams); ok { + return x.BoolIndexParams + } + return nil +} + +func (x *PayloadIndexParams) GetDatetimeIndexParams() *DatetimeIndexParams { + if x, ok := x.GetIndexParams().(*PayloadIndexParams_DatetimeIndexParams); ok { + return x.DatetimeIndexParams + } + return nil +} + +func (x *PayloadIndexParams) GetUuidIndexParams() *UuidIndexParams { + if x, ok := x.GetIndexParams().(*PayloadIndexParams_UuidIndexParams); ok { + return x.UuidIndexParams + } + return nil +} + type isPayloadIndexParams_IndexParams interface { isPayloadIndexParams_IndexParams() } -type PayloadIndexParams_TextIndexParams struct { - TextIndexParams *TextIndexParams `protobuf:"bytes,1,opt,name=text_index_params,json=textIndexParams,proto3,oneof"` // Parameters for text index +type PayloadIndexParams_KeywordIndexParams struct { + KeywordIndexParams *KeywordIndexParams `protobuf:"bytes,3,opt,name=keyword_index_params,json=keywordIndexParams,proto3,oneof"` // Parameters for keyword index } type PayloadIndexParams_IntegerIndexParams struct { IntegerIndexParams *IntegerIndexParams `protobuf:"bytes,2,opt,name=integer_index_params,json=integerIndexParams,proto3,oneof"` // Parameters for integer index } -func (*PayloadIndexParams_TextIndexParams) isPayloadIndexParams_IndexParams() {} +type PayloadIndexParams_FloatIndexParams struct { + FloatIndexParams *FloatIndexParams `protobuf:"bytes,4,opt,name=float_index_params,json=floatIndexParams,proto3,oneof"` // Parameters for float index +} + +type PayloadIndexParams_GeoIndexParams struct { + GeoIndexParams *GeoIndexParams `protobuf:"bytes,5,opt,name=geo_index_params,json=geoIndexParams,proto3,oneof"` // Parameters for geo index +} + +type PayloadIndexParams_TextIndexParams struct { + TextIndexParams *TextIndexParams `protobuf:"bytes,1,opt,name=text_index_params,json=textIndexParams,proto3,oneof"` // Parameters for text index +} + +type PayloadIndexParams_BoolIndexParams struct { + BoolIndexParams *BoolIndexParams `protobuf:"bytes,6,opt,name=bool_index_params,json=boolIndexParams,proto3,oneof"` // Parameters for bool index +} + +type PayloadIndexParams_DatetimeIndexParams struct { + DatetimeIndexParams *DatetimeIndexParams `protobuf:"bytes,7,opt,name=datetime_index_params,json=datetimeIndexParams,proto3,oneof"` // Parameters for datetime index +} + +type PayloadIndexParams_UuidIndexParams struct { + UuidIndexParams *UuidIndexParams `protobuf:"bytes,8,opt,name=uuid_index_params,json=uuidIndexParams,proto3,oneof"` // Parameters for uuid index +} + +func (*PayloadIndexParams_KeywordIndexParams) isPayloadIndexParams_IndexParams() {} func (*PayloadIndexParams_IntegerIndexParams) isPayloadIndexParams_IndexParams() {} +func (*PayloadIndexParams_FloatIndexParams) isPayloadIndexParams_IndexParams() {} + +func (*PayloadIndexParams_GeoIndexParams) isPayloadIndexParams_IndexParams() {} + +func (*PayloadIndexParams_TextIndexParams) isPayloadIndexParams_IndexParams() {} + +func (*PayloadIndexParams_BoolIndexParams) isPayloadIndexParams_IndexParams() {} + +func (*PayloadIndexParams_DatetimeIndexParams) isPayloadIndexParams_IndexParams() {} + +func (*PayloadIndexParams_UuidIndexParams) isPayloadIndexParams_IndexParams() {} + type PayloadSchemaInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3268,7 +3667,7 @@ type PayloadSchemaInfo struct { func (x *PayloadSchemaInfo) Reset() { *x = PayloadSchemaInfo{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[38] + mi := &file_collections_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3281,7 +3680,7 @@ func (x *PayloadSchemaInfo) String() string { func (*PayloadSchemaInfo) ProtoMessage() {} func (x *PayloadSchemaInfo) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[38] + mi := &file_collections_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3294,7 +3693,7 @@ func (x *PayloadSchemaInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use PayloadSchemaInfo.ProtoReflect.Descriptor instead. func (*PayloadSchemaInfo) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{38} + return file_collections_proto_rawDescGZIP(), []int{44} } func (x *PayloadSchemaInfo) GetDataType() PayloadSchemaType { @@ -3336,7 +3735,7 @@ type CollectionInfo struct { func (x *CollectionInfo) Reset() { *x = CollectionInfo{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[39] + mi := &file_collections_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3349,7 +3748,7 @@ func (x *CollectionInfo) String() string { func (*CollectionInfo) ProtoMessage() {} func (x *CollectionInfo) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[39] + mi := &file_collections_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3362,7 +3761,7 @@ func (x *CollectionInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use CollectionInfo.ProtoReflect.Descriptor instead. func (*CollectionInfo) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{39} + return file_collections_proto_rawDescGZIP(), []int{45} } func (x *CollectionInfo) GetStatus() CollectionStatus { @@ -3433,7 +3832,7 @@ type ChangeAliases struct { func (x *ChangeAliases) Reset() { *x = ChangeAliases{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[40] + mi := &file_collections_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3446,7 +3845,7 @@ func (x *ChangeAliases) String() string { func (*ChangeAliases) ProtoMessage() {} func (x *ChangeAliases) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[40] + mi := &file_collections_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3459,7 +3858,7 @@ func (x *ChangeAliases) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeAliases.ProtoReflect.Descriptor instead. func (*ChangeAliases) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{40} + return file_collections_proto_rawDescGZIP(), []int{46} } func (x *ChangeAliases) GetActions() []*AliasOperations { @@ -3492,7 +3891,7 @@ type AliasOperations struct { func (x *AliasOperations) Reset() { *x = AliasOperations{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[41] + mi := &file_collections_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3505,7 +3904,7 @@ func (x *AliasOperations) String() string { func (*AliasOperations) ProtoMessage() {} func (x *AliasOperations) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[41] + mi := &file_collections_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3518,7 +3917,7 @@ func (x *AliasOperations) ProtoReflect() protoreflect.Message { // Deprecated: Use AliasOperations.ProtoReflect.Descriptor instead. func (*AliasOperations) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{41} + return file_collections_proto_rawDescGZIP(), []int{47} } func (m *AliasOperations) GetAction() isAliasOperations_Action { @@ -3583,7 +3982,7 @@ type CreateAlias struct { func (x *CreateAlias) Reset() { *x = CreateAlias{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[42] + mi := &file_collections_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3596,7 +3995,7 @@ func (x *CreateAlias) String() string { func (*CreateAlias) ProtoMessage() {} func (x *CreateAlias) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[42] + mi := &file_collections_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3609,7 +4008,7 @@ func (x *CreateAlias) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateAlias.ProtoReflect.Descriptor instead. func (*CreateAlias) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{42} + return file_collections_proto_rawDescGZIP(), []int{48} } func (x *CreateAlias) GetCollectionName() string { @@ -3638,7 +4037,7 @@ type RenameAlias struct { func (x *RenameAlias) Reset() { *x = RenameAlias{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[43] + mi := &file_collections_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3651,7 +4050,7 @@ func (x *RenameAlias) String() string { func (*RenameAlias) ProtoMessage() {} func (x *RenameAlias) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[43] + mi := &file_collections_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3664,7 +4063,7 @@ func (x *RenameAlias) ProtoReflect() protoreflect.Message { // Deprecated: Use RenameAlias.ProtoReflect.Descriptor instead. func (*RenameAlias) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{43} + return file_collections_proto_rawDescGZIP(), []int{49} } func (x *RenameAlias) GetOldAliasName() string { @@ -3692,7 +4091,7 @@ type DeleteAlias struct { func (x *DeleteAlias) Reset() { *x = DeleteAlias{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[44] + mi := &file_collections_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3705,7 +4104,7 @@ func (x *DeleteAlias) String() string { func (*DeleteAlias) ProtoMessage() {} func (x *DeleteAlias) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[44] + mi := &file_collections_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3718,7 +4117,7 @@ func (x *DeleteAlias) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteAlias.ProtoReflect.Descriptor instead. func (*DeleteAlias) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{44} + return file_collections_proto_rawDescGZIP(), []int{50} } func (x *DeleteAlias) GetAliasName() string { @@ -3737,7 +4136,7 @@ type ListAliasesRequest struct { func (x *ListAliasesRequest) Reset() { *x = ListAliasesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[45] + mi := &file_collections_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3750,7 +4149,7 @@ func (x *ListAliasesRequest) String() string { func (*ListAliasesRequest) ProtoMessage() {} func (x *ListAliasesRequest) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[45] + mi := &file_collections_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3763,7 +4162,7 @@ func (x *ListAliasesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListAliasesRequest.ProtoReflect.Descriptor instead. func (*ListAliasesRequest) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{45} + return file_collections_proto_rawDescGZIP(), []int{51} } type ListCollectionAliasesRequest struct { @@ -3777,7 +4176,7 @@ type ListCollectionAliasesRequest struct { func (x *ListCollectionAliasesRequest) Reset() { *x = ListCollectionAliasesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[46] + mi := &file_collections_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3790,7 +4189,7 @@ func (x *ListCollectionAliasesRequest) String() string { func (*ListCollectionAliasesRequest) ProtoMessage() {} func (x *ListCollectionAliasesRequest) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[46] + mi := &file_collections_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3803,7 +4202,7 @@ func (x *ListCollectionAliasesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListCollectionAliasesRequest.ProtoReflect.Descriptor instead. func (*ListCollectionAliasesRequest) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{46} + return file_collections_proto_rawDescGZIP(), []int{52} } func (x *ListCollectionAliasesRequest) GetCollectionName() string { @@ -3825,7 +4224,7 @@ type AliasDescription struct { func (x *AliasDescription) Reset() { *x = AliasDescription{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[47] + mi := &file_collections_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3838,7 +4237,7 @@ func (x *AliasDescription) String() string { func (*AliasDescription) ProtoMessage() {} func (x *AliasDescription) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[47] + mi := &file_collections_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3851,7 +4250,7 @@ func (x *AliasDescription) ProtoReflect() protoreflect.Message { // Deprecated: Use AliasDescription.ProtoReflect.Descriptor instead. func (*AliasDescription) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{47} + return file_collections_proto_rawDescGZIP(), []int{53} } func (x *AliasDescription) GetAliasName() string { @@ -3880,7 +4279,7 @@ type ListAliasesResponse struct { func (x *ListAliasesResponse) Reset() { *x = ListAliasesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[48] + mi := &file_collections_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3893,7 +4292,7 @@ func (x *ListAliasesResponse) String() string { func (*ListAliasesResponse) ProtoMessage() {} func (x *ListAliasesResponse) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[48] + mi := &file_collections_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3906,7 +4305,7 @@ func (x *ListAliasesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListAliasesResponse.ProtoReflect.Descriptor instead. func (*ListAliasesResponse) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{48} + return file_collections_proto_rawDescGZIP(), []int{54} } func (x *ListAliasesResponse) GetAliases() []*AliasDescription { @@ -3934,7 +4333,7 @@ type CollectionClusterInfoRequest struct { func (x *CollectionClusterInfoRequest) Reset() { *x = CollectionClusterInfoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[49] + mi := &file_collections_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3947,7 +4346,7 @@ func (x *CollectionClusterInfoRequest) String() string { func (*CollectionClusterInfoRequest) ProtoMessage() {} func (x *CollectionClusterInfoRequest) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[49] + mi := &file_collections_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3960,7 +4359,7 @@ func (x *CollectionClusterInfoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CollectionClusterInfoRequest.ProtoReflect.Descriptor instead. func (*CollectionClusterInfoRequest) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{49} + return file_collections_proto_rawDescGZIP(), []int{55} } func (x *CollectionClusterInfoRequest) GetCollectionName() string { @@ -3985,7 +4384,7 @@ type ShardKey struct { func (x *ShardKey) Reset() { *x = ShardKey{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[50] + mi := &file_collections_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3998,7 +4397,7 @@ func (x *ShardKey) String() string { func (*ShardKey) ProtoMessage() {} func (x *ShardKey) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[50] + mi := &file_collections_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4011,7 +4410,7 @@ func (x *ShardKey) ProtoReflect() protoreflect.Message { // Deprecated: Use ShardKey.ProtoReflect.Descriptor instead. func (*ShardKey) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{50} + return file_collections_proto_rawDescGZIP(), []int{56} } func (m *ShardKey) GetKey() isShardKey_Key { @@ -4065,7 +4464,7 @@ type LocalShardInfo struct { func (x *LocalShardInfo) Reset() { *x = LocalShardInfo{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[51] + mi := &file_collections_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4078,7 +4477,7 @@ func (x *LocalShardInfo) String() string { func (*LocalShardInfo) ProtoMessage() {} func (x *LocalShardInfo) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[51] + mi := &file_collections_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4091,7 +4490,7 @@ func (x *LocalShardInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use LocalShardInfo.ProtoReflect.Descriptor instead. func (*LocalShardInfo) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{51} + return file_collections_proto_rawDescGZIP(), []int{57} } func (x *LocalShardInfo) GetShardId() uint32 { @@ -4136,7 +4535,7 @@ type RemoteShardInfo struct { func (x *RemoteShardInfo) Reset() { *x = RemoteShardInfo{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[52] + mi := &file_collections_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4149,7 +4548,7 @@ func (x *RemoteShardInfo) String() string { func (*RemoteShardInfo) ProtoMessage() {} func (x *RemoteShardInfo) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[52] + mi := &file_collections_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4162,7 +4561,7 @@ func (x *RemoteShardInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoteShardInfo.ProtoReflect.Descriptor instead. func (*RemoteShardInfo) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{52} + return file_collections_proto_rawDescGZIP(), []int{58} } func (x *RemoteShardInfo) GetShardId() uint32 { @@ -4193,35 +4592,112 @@ func (x *RemoteShardInfo) GetShardKey() *ShardKey { return nil } -type ShardTransferInfo struct { +type ShardTransferInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ShardId uint32 `protobuf:"varint,1,opt,name=shard_id,json=shardId,proto3" json:"shard_id,omitempty"` // Local shard id + ToShardId *uint32 `protobuf:"varint,5,opt,name=to_shard_id,json=toShardId,proto3,oneof" json:"to_shard_id,omitempty"` + From uint64 `protobuf:"varint,2,opt,name=from,proto3" json:"from,omitempty"` + To uint64 `protobuf:"varint,3,opt,name=to,proto3" json:"to,omitempty"` + Sync bool `protobuf:"varint,4,opt,name=sync,proto3" json:"sync,omitempty"` // If `true` transfer is a synchronization of a replicas; If `false` transfer is a moving of a shard from one peer to another +} + +func (x *ShardTransferInfo) Reset() { + *x = ShardTransferInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_collections_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ShardTransferInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ShardTransferInfo) ProtoMessage() {} + +func (x *ShardTransferInfo) ProtoReflect() protoreflect.Message { + mi := &file_collections_proto_msgTypes[59] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ShardTransferInfo.ProtoReflect.Descriptor instead. +func (*ShardTransferInfo) Descriptor() ([]byte, []int) { + return file_collections_proto_rawDescGZIP(), []int{59} +} + +func (x *ShardTransferInfo) GetShardId() uint32 { + if x != nil { + return x.ShardId + } + return 0 +} + +func (x *ShardTransferInfo) GetToShardId() uint32 { + if x != nil && x.ToShardId != nil { + return *x.ToShardId + } + return 0 +} + +func (x *ShardTransferInfo) GetFrom() uint64 { + if x != nil { + return x.From + } + return 0 +} + +func (x *ShardTransferInfo) GetTo() uint64 { + if x != nil { + return x.To + } + return 0 +} + +func (x *ShardTransferInfo) GetSync() bool { + if x != nil { + return x.Sync + } + return false +} + +type ReshardingInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ShardId uint32 `protobuf:"varint,1,opt,name=shard_id,json=shardId,proto3" json:"shard_id,omitempty"` // Local shard id - ToShardId *uint32 `protobuf:"varint,5,opt,name=to_shard_id,json=toShardId,proto3,oneof" json:"to_shard_id,omitempty"` - From uint64 `protobuf:"varint,2,opt,name=from,proto3" json:"from,omitempty"` - To uint64 `protobuf:"varint,3,opt,name=to,proto3" json:"to,omitempty"` - Sync bool `protobuf:"varint,4,opt,name=sync,proto3" json:"sync,omitempty"` // If `true` transfer is a synchronization of a replicas; If `false` transfer is a moving of a shard from one peer to another + ShardId uint32 `protobuf:"varint,1,opt,name=shard_id,json=shardId,proto3" json:"shard_id,omitempty"` + PeerId uint64 `protobuf:"varint,2,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` + ShardKey *ShardKey `protobuf:"bytes,3,opt,name=shard_key,json=shardKey,proto3,oneof" json:"shard_key,omitempty"` } -func (x *ShardTransferInfo) Reset() { - *x = ShardTransferInfo{} +func (x *ReshardingInfo) Reset() { + *x = ReshardingInfo{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[53] + mi := &file_collections_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ShardTransferInfo) String() string { +func (x *ReshardingInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ShardTransferInfo) ProtoMessage() {} +func (*ReshardingInfo) ProtoMessage() {} -func (x *ShardTransferInfo) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[53] +func (x *ReshardingInfo) ProtoReflect() protoreflect.Message { + mi := &file_collections_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4232,44 +4708,30 @@ func (x *ShardTransferInfo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ShardTransferInfo.ProtoReflect.Descriptor instead. -func (*ShardTransferInfo) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{53} +// Deprecated: Use ReshardingInfo.ProtoReflect.Descriptor instead. +func (*ReshardingInfo) Descriptor() ([]byte, []int) { + return file_collections_proto_rawDescGZIP(), []int{60} } -func (x *ShardTransferInfo) GetShardId() uint32 { +func (x *ReshardingInfo) GetShardId() uint32 { if x != nil { return x.ShardId } return 0 } -func (x *ShardTransferInfo) GetToShardId() uint32 { - if x != nil && x.ToShardId != nil { - return *x.ToShardId - } - return 0 -} - -func (x *ShardTransferInfo) GetFrom() uint64 { - if x != nil { - return x.From - } - return 0 -} - -func (x *ShardTransferInfo) GetTo() uint64 { +func (x *ReshardingInfo) GetPeerId() uint64 { if x != nil { - return x.To + return x.PeerId } return 0 } -func (x *ShardTransferInfo) GetSync() bool { +func (x *ReshardingInfo) GetShardKey() *ShardKey { if x != nil { - return x.Sync + return x.ShardKey } - return false + return nil } type CollectionClusterInfoResponse struct { @@ -4287,7 +4749,7 @@ type CollectionClusterInfoResponse struct { func (x *CollectionClusterInfoResponse) Reset() { *x = CollectionClusterInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[54] + mi := &file_collections_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4300,7 +4762,7 @@ func (x *CollectionClusterInfoResponse) String() string { func (*CollectionClusterInfoResponse) ProtoMessage() {} func (x *CollectionClusterInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[54] + mi := &file_collections_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4313,7 +4775,7 @@ func (x *CollectionClusterInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CollectionClusterInfoResponse.ProtoReflect.Descriptor instead. func (*CollectionClusterInfoResponse) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{54} + return file_collections_proto_rawDescGZIP(), []int{61} } func (x *CollectionClusterInfoResponse) GetPeerId() uint64 { @@ -4366,7 +4828,7 @@ type MoveShard struct { func (x *MoveShard) Reset() { *x = MoveShard{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[55] + mi := &file_collections_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4379,7 +4841,7 @@ func (x *MoveShard) String() string { func (*MoveShard) ProtoMessage() {} func (x *MoveShard) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[55] + mi := &file_collections_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4392,7 +4854,7 @@ func (x *MoveShard) ProtoReflect() protoreflect.Message { // Deprecated: Use MoveShard.ProtoReflect.Descriptor instead. func (*MoveShard) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{55} + return file_collections_proto_rawDescGZIP(), []int{62} } func (x *MoveShard) GetShardId() uint32 { @@ -4445,7 +4907,7 @@ type ReplicateShard struct { func (x *ReplicateShard) Reset() { *x = ReplicateShard{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[56] + mi := &file_collections_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4458,7 +4920,7 @@ func (x *ReplicateShard) String() string { func (*ReplicateShard) ProtoMessage() {} func (x *ReplicateShard) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[56] + mi := &file_collections_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4471,7 +4933,7 @@ func (x *ReplicateShard) ProtoReflect() protoreflect.Message { // Deprecated: Use ReplicateShard.ProtoReflect.Descriptor instead. func (*ReplicateShard) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{56} + return file_collections_proto_rawDescGZIP(), []int{63} } func (x *ReplicateShard) GetShardId() uint32 { @@ -4523,7 +4985,7 @@ type AbortShardTransfer struct { func (x *AbortShardTransfer) Reset() { *x = AbortShardTransfer{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[57] + mi := &file_collections_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4536,7 +4998,7 @@ func (x *AbortShardTransfer) String() string { func (*AbortShardTransfer) ProtoMessage() {} func (x *AbortShardTransfer) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[57] + mi := &file_collections_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4549,7 +5011,7 @@ func (x *AbortShardTransfer) ProtoReflect() protoreflect.Message { // Deprecated: Use AbortShardTransfer.ProtoReflect.Descriptor instead. func (*AbortShardTransfer) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{57} + return file_collections_proto_rawDescGZIP(), []int{64} } func (x *AbortShardTransfer) GetShardId() uint32 { @@ -4595,7 +5057,7 @@ type RestartTransfer struct { func (x *RestartTransfer) Reset() { *x = RestartTransfer{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[58] + mi := &file_collections_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4608,7 +5070,7 @@ func (x *RestartTransfer) String() string { func (*RestartTransfer) ProtoMessage() {} func (x *RestartTransfer) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[58] + mi := &file_collections_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4621,7 +5083,7 @@ func (x *RestartTransfer) ProtoReflect() protoreflect.Message { // Deprecated: Use RestartTransfer.ProtoReflect.Descriptor instead. func (*RestartTransfer) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{58} + return file_collections_proto_rawDescGZIP(), []int{65} } func (x *RestartTransfer) GetShardId() uint32 { @@ -4671,7 +5133,7 @@ type Replica struct { func (x *Replica) Reset() { *x = Replica{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[59] + mi := &file_collections_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4684,7 +5146,7 @@ func (x *Replica) String() string { func (*Replica) ProtoMessage() {} func (x *Replica) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[59] + mi := &file_collections_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4697,7 +5159,7 @@ func (x *Replica) ProtoReflect() protoreflect.Message { // Deprecated: Use Replica.ProtoReflect.Descriptor instead. func (*Replica) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{59} + return file_collections_proto_rawDescGZIP(), []int{66} } func (x *Replica) GetShardId() uint32 { @@ -4728,7 +5190,7 @@ type CreateShardKey struct { func (x *CreateShardKey) Reset() { *x = CreateShardKey{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[60] + mi := &file_collections_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4741,7 +5203,7 @@ func (x *CreateShardKey) String() string { func (*CreateShardKey) ProtoMessage() {} func (x *CreateShardKey) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[60] + mi := &file_collections_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4754,7 +5216,7 @@ func (x *CreateShardKey) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateShardKey.ProtoReflect.Descriptor instead. func (*CreateShardKey) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{60} + return file_collections_proto_rawDescGZIP(), []int{67} } func (x *CreateShardKey) GetShardKey() *ShardKey { @@ -4796,7 +5258,7 @@ type DeleteShardKey struct { func (x *DeleteShardKey) Reset() { *x = DeleteShardKey{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[61] + mi := &file_collections_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4809,7 +5271,7 @@ func (x *DeleteShardKey) String() string { func (*DeleteShardKey) ProtoMessage() {} func (x *DeleteShardKey) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[61] + mi := &file_collections_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4822,7 +5284,7 @@ func (x *DeleteShardKey) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteShardKey.ProtoReflect.Descriptor instead. func (*DeleteShardKey) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{61} + return file_collections_proto_rawDescGZIP(), []int{68} } func (x *DeleteShardKey) GetShardKey() *ShardKey { @@ -4854,7 +5316,7 @@ type UpdateCollectionClusterSetupRequest struct { func (x *UpdateCollectionClusterSetupRequest) Reset() { *x = UpdateCollectionClusterSetupRequest{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[62] + mi := &file_collections_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4867,7 +5329,7 @@ func (x *UpdateCollectionClusterSetupRequest) String() string { func (*UpdateCollectionClusterSetupRequest) ProtoMessage() {} func (x *UpdateCollectionClusterSetupRequest) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[62] + mi := &file_collections_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4880,7 +5342,7 @@ func (x *UpdateCollectionClusterSetupRequest) ProtoReflect() protoreflect.Messag // Deprecated: Use UpdateCollectionClusterSetupRequest.ProtoReflect.Descriptor instead. func (*UpdateCollectionClusterSetupRequest) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{62} + return file_collections_proto_rawDescGZIP(), []int{69} } func (x *UpdateCollectionClusterSetupRequest) GetCollectionName() string { @@ -5017,7 +5479,7 @@ type UpdateCollectionClusterSetupResponse struct { func (x *UpdateCollectionClusterSetupResponse) Reset() { *x = UpdateCollectionClusterSetupResponse{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[63] + mi := &file_collections_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5030,7 +5492,7 @@ func (x *UpdateCollectionClusterSetupResponse) String() string { func (*UpdateCollectionClusterSetupResponse) ProtoMessage() {} func (x *UpdateCollectionClusterSetupResponse) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[63] + mi := &file_collections_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5043,7 +5505,7 @@ func (x *UpdateCollectionClusterSetupResponse) ProtoReflect() protoreflect.Messa // Deprecated: Use UpdateCollectionClusterSetupResponse.ProtoReflect.Descriptor instead. func (*UpdateCollectionClusterSetupResponse) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{63} + return file_collections_proto_rawDescGZIP(), []int{70} } func (x *UpdateCollectionClusterSetupResponse) GetResult() bool { @@ -5066,7 +5528,7 @@ type CreateShardKeyRequest struct { func (x *CreateShardKeyRequest) Reset() { *x = CreateShardKeyRequest{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[64] + mi := &file_collections_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5079,7 +5541,7 @@ func (x *CreateShardKeyRequest) String() string { func (*CreateShardKeyRequest) ProtoMessage() {} func (x *CreateShardKeyRequest) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[64] + mi := &file_collections_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5092,7 +5554,7 @@ func (x *CreateShardKeyRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateShardKeyRequest.ProtoReflect.Descriptor instead. func (*CreateShardKeyRequest) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{64} + return file_collections_proto_rawDescGZIP(), []int{71} } func (x *CreateShardKeyRequest) GetCollectionName() string { @@ -5129,7 +5591,7 @@ type DeleteShardKeyRequest struct { func (x *DeleteShardKeyRequest) Reset() { *x = DeleteShardKeyRequest{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[65] + mi := &file_collections_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5142,7 +5604,7 @@ func (x *DeleteShardKeyRequest) String() string { func (*DeleteShardKeyRequest) ProtoMessage() {} func (x *DeleteShardKeyRequest) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[65] + mi := &file_collections_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5155,7 +5617,7 @@ func (x *DeleteShardKeyRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteShardKeyRequest.ProtoReflect.Descriptor instead. func (*DeleteShardKeyRequest) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{65} + return file_collections_proto_rawDescGZIP(), []int{72} } func (x *DeleteShardKeyRequest) GetCollectionName() string { @@ -5190,7 +5652,7 @@ type CreateShardKeyResponse struct { func (x *CreateShardKeyResponse) Reset() { *x = CreateShardKeyResponse{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[66] + mi := &file_collections_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5203,7 +5665,7 @@ func (x *CreateShardKeyResponse) String() string { func (*CreateShardKeyResponse) ProtoMessage() {} func (x *CreateShardKeyResponse) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[66] + mi := &file_collections_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5216,7 +5678,7 @@ func (x *CreateShardKeyResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateShardKeyResponse.ProtoReflect.Descriptor instead. func (*CreateShardKeyResponse) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{66} + return file_collections_proto_rawDescGZIP(), []int{73} } func (x *CreateShardKeyResponse) GetResult() bool { @@ -5237,7 +5699,7 @@ type DeleteShardKeyResponse struct { func (x *DeleteShardKeyResponse) Reset() { *x = DeleteShardKeyResponse{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[67] + mi := &file_collections_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5250,7 +5712,7 @@ func (x *DeleteShardKeyResponse) String() string { func (*DeleteShardKeyResponse) ProtoMessage() {} func (x *DeleteShardKeyResponse) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[67] + mi := &file_collections_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5263,7 +5725,7 @@ func (x *DeleteShardKeyResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteShardKeyResponse.ProtoReflect.Descriptor instead. func (*DeleteShardKeyResponse) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{67} + return file_collections_proto_rawDescGZIP(), []int{74} } func (x *DeleteShardKeyResponse) GetResult() bool { @@ -5768,398 +6230,472 @@ var file_collections_proto_rawDesc = []byte{ 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x12, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x22, 0xed, 0x01, 0x0a, 0x0f, 0x54, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x33, 0x0a, 0x09, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x69, 0x7a, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x71, 0x64, - 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x69, 0x7a, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x69, 0x7a, 0x65, 0x72, 0x12, 0x21, 0x0a, - 0x09, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x09, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x27, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x6c, 0x65, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x6d, 0x61, 0x78, - 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x02, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x88, - 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x6c, - 0x65, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x5f, 0x6c, 0x65, 0x6e, 0x22, 0x42, 0x0a, 0x12, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, - 0x6f, 0x6b, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6c, 0x6f, 0x6f, 0x6b, - 0x75, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x22, 0xbb, 0x01, 0x0a, 0x12, 0x50, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, - 0x45, 0x0a, 0x11, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, - 0x61, 0x6e, 0x74, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x6e, 0x66, 0x69, 0x67, 0x22, 0x6e, 0x0a, 0x12, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x20, 0x0a, 0x09, 0x69, 0x73, + 0x5f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, + 0x08, 0x69, 0x73, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, + 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, + 0x06, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, + 0x73, 0x5f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6f, 0x6e, 0x5f, + 0x64, 0x69, 0x73, 0x6b, 0x22, 0xa5, 0x01, 0x0a, 0x12, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6c, + 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6c, 0x6f, 0x6f, + 0x6b, 0x75, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x73, 0x5f, + 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x00, 0x52, 0x0b, 0x69, 0x73, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x88, 0x01, + 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x42, + 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x22, 0x75, 0x0a, 0x10, + 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x12, 0x1c, 0x0a, 0x07, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x26, + 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0b, 0x69, 0x73, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, + 0x70, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6f, 0x6e, 0x5f, 0x64, 0x69, + 0x73, 0x6b, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, + 0x70, 0x61, 0x6c, 0x22, 0x10, 0x0a, 0x0e, 0x47, 0x65, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xed, 0x01, 0x0a, 0x0f, 0x54, 0x65, 0x78, 0x74, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x33, 0x0a, 0x09, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x69, 0x7a, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x71, + 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x69, 0x7a, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x69, 0x7a, 0x65, 0x72, 0x12, 0x21, + 0x0a, 0x09, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x6c, + 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x6d, 0x61, + 0x78, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x02, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x65, 0x6e, + 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, + 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, + 0x6c, 0x65, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x22, 0x11, 0x0a, 0x0f, 0x42, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x78, 0x0a, 0x13, 0x44, 0x61, 0x74, 0x65, + 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x1c, 0x0a, 0x07, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x00, 0x52, 0x06, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, + 0x0c, 0x69, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0b, 0x69, 0x73, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, + 0x61, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x73, + 0x6b, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, + 0x61, 0x6c, 0x22, 0x6b, 0x0a, 0x0f, 0x55, 0x75, 0x69, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x20, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x74, 0x65, 0x6e, 0x61, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x08, 0x69, 0x73, 0x54, 0x65, + 0x6e, 0x61, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x6f, 0x6e, 0x5f, 0x64, 0x69, + 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x6e, 0x44, 0x69, + 0x73, 0x6b, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x73, 0x5f, 0x74, 0x65, 0x6e, + 0x61, 0x6e, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x22, + 0xfa, 0x04, 0x0a, 0x12, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x4e, 0x0a, 0x14, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, + 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4b, 0x65, + 0x79, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x48, 0x00, 0x52, 0x12, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x4e, 0x0a, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x12, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xb7, 0x01, 0x0a, 0x11, 0x50, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x0a, 0x09, - 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x19, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x48, 0x00, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, - 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, - 0x22, 0xe2, 0x04, 0x0a, 0x0e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x30, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x42, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, - 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, - 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, - 0x7a, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x76, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x00, 0x52, 0x0c, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x73, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x06, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, - 0x61, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x50, 0x0a, 0x0e, - 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x08, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0d, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x26, - 0x0a, 0x0c, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x0b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, - 0x64, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x13, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, - 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, - 0x5b, 0x0a, 0x12, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, - 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0f, - 0x0a, 0x0d, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, - 0x18, 0x0a, 0x16, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x5f, 0x76, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, - 0x04, 0x08, 0x06, 0x10, 0x07, 0x22, 0x6d, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, - 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, - 0x2e, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x07, 0x74, 0x69, - 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x22, 0xc9, 0x01, 0x0a, 0x0f, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, - 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6c, - 0x69, 0x61, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x69, - 0x61, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x61, 0x6c, 0x69, - 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, - 0x74, 0x2e, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x48, 0x00, 0x52, - 0x0b, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x38, 0x0a, 0x0c, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x55, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, - 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x61, - 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x6c, - 0x69, 0x61, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x59, 0x0a, 0x0b, 0x52, 0x65, 0x6e, 0x61, 0x6d, - 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x6f, 0x6c, 0x64, 0x5f, 0x61, 0x6c, - 0x69, 0x61, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x6f, 0x6c, 0x64, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, - 0x6e, 0x65, 0x77, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x65, 0x77, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x4e, 0x61, - 0x6d, 0x65, 0x22, 0x2c, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x69, 0x61, - 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x4e, 0x61, 0x6d, 0x65, - 0x22, 0x14, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x47, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, - 0x5a, 0x0a, 0x10, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x5d, 0x0a, 0x13, 0x4c, - 0x69, 0x73, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x41, 0x6c, 0x69, - 0x61, 0x73, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x61, - 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x47, 0x0a, 0x1c, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, - 0x61, 0x6d, 0x65, 0x22, 0x47, 0x0a, 0x08, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x12, - 0x1a, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x06, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x06, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x05, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x22, 0xbc, 0x01, 0x0a, - 0x0e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x19, 0x0a, 0x08, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x73, 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x71, - 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x32, 0x0a, 0x09, 0x73, 0x68, 0x61, - 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x71, - 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x48, 0x00, - 0x52, 0x08, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x22, 0xb3, 0x01, 0x0a, 0x0f, - 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x19, 0x0a, 0x08, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x73, 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x65, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x65, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x48, 0x0a, 0x12, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x46, 0x6c, 0x6f, 0x61, + 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x12, 0x42, 0x0a, 0x10, 0x67, 0x65, 0x6f, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, + 0x61, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x67, 0x65, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x45, 0x0a, 0x11, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x74, 0x65, 0x78, 0x74, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x45, 0x0a, 0x11, 0x62, + 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 0x42, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, + 0x00, 0x52, 0x0f, 0x62, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x12, 0x51, 0x0a, 0x15, 0x64, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x74, + 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, + 0x52, 0x13, 0x64, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x45, 0x0a, 0x11, 0x75, 0x75, 0x69, 0x64, 0x5f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x55, 0x75, 0x69, 0x64, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x75, 0x75, 0x69, + 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x0e, 0x0a, 0x0c, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xb7, 0x01, 0x0a, + 0x11, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x36, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x71, 0x64, 0x72, + 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0xe2, 0x04, 0x0a, 0x0e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x30, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, + 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x42, 0x0a, 0x10, 0x6f, + 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4f, + 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0f, + 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x28, 0x0a, 0x0d, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0c, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0d, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x30, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x50, 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x71, 0x64, 0x72, + 0x61, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, + 0x66, 0x6f, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x0b, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x13, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x5b, 0x0a, 0x12, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x71, + 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, + 0x64, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4a, + 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x22, 0x6d, 0x0a, 0x0d, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x07, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x1d, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x00, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0xc9, 0x01, 0x0a, 0x0f, 0x41, + 0x6c, 0x69, 0x61, 0x73, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x38, + 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x72, 0x65, 0x6e, 0x61, + 0x6d, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x41, 0x6c, + 0x69, 0x61, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x41, 0x6c, 0x69, + 0x61, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x61, 0x6c, 0x69, + 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, + 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x48, 0x00, 0x52, + 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x42, 0x08, 0x0a, 0x06, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x55, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, + 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x59, 0x0a, + 0x0b, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x24, 0x0a, 0x0e, + 0x6f, 0x6c, 0x64, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x6c, 0x64, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6e, 0x65, 0x77, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x65, 0x77, 0x41, + 0x6c, 0x69, 0x61, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x2c, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6c, 0x69, 0x61, 0x73, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x6c, 0x69, + 0x61, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, + 0x69, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x47, 0x0a, 0x1c, + 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, + 0x69, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x5a, 0x0a, 0x10, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x44, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6c, 0x69, + 0x61, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, + 0x6c, 0x69, 0x61, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, + 0x65, 0x22, 0x5d, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x6c, 0x69, 0x61, + 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, + 0x6e, 0x74, 0x2e, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, + 0x22, 0x47, 0x0a, 0x1c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x47, 0x0a, 0x08, 0x53, 0x68, 0x61, + 0x72, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, + 0x64, 0x12, 0x18, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x00, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x05, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x22, 0xbc, 0x01, 0x0a, 0x0e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, + 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x32, 0x0a, 0x09, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x48, 0x00, 0x52, 0x08, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, - 0x79, 0x22, 0x9b, 0x01, 0x0a, 0x11, 0x53, 0x68, 0x61, 0x72, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x66, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x68, 0x61, 0x72, 0x64, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x68, 0x61, 0x72, 0x64, - 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0b, 0x74, 0x6f, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x69, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x09, 0x74, 0x6f, 0x53, 0x68, 0x61, - 0x72, 0x64, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, - 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x73, - 0x79, 0x6e, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x73, 0x79, 0x6e, 0x63, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x22, - 0x96, 0x02, 0x0a, 0x1d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x68, - 0x61, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0a, 0x73, 0x68, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x0c, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, - 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x68, 0x61, - 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x68, - 0x61, 0x72, 0x64, 0x73, 0x12, 0x42, 0x0a, 0x0f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x79, 0x22, 0xb3, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, + 0x12, 0x17, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, + 0x74, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x32, 0x0a, 0x09, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, + 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, + 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x48, 0x00, 0x52, 0x08, 0x73, 0x68, + 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x68, + 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x22, 0x9b, 0x01, 0x0a, 0x11, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x0a, + 0x08, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x73, 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0b, 0x74, 0x6f, 0x5f, 0x73, + 0x68, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x09, 0x74, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, + 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x66, 0x72, 0x6f, + 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x74, + 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x04, 0x73, 0x79, 0x6e, 0x63, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x68, 0x61, + 0x72, 0x64, 0x5f, 0x69, 0x64, 0x22, 0x86, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x68, 0x61, 0x72, + 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x68, 0x61, 0x72, + 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x68, 0x61, 0x72, + 0x64, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x09, + 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, + 0x79, 0x48, 0x00, 0x52, 0x08, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x22, 0x96, + 0x02, 0x0a, 0x1d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x17, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x68, 0x61, + 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, + 0x73, 0x68, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x0c, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, + 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, + 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x68, 0x61, + 0x72, 0x64, 0x73, 0x12, 0x42, 0x0a, 0x0f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x71, + 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x73, 0x68, 0x61, 0x72, 0x64, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x22, 0xe0, 0x01, 0x0a, 0x09, 0x4d, 0x6f, 0x76, 0x65, + 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, + 0x12, 0x23, 0x0a, 0x0b, 0x74, 0x6f, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x09, 0x74, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x64, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x65, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x72, 0x6f, + 0x6d, 0x50, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x0a, 0x74, 0x6f, 0x5f, 0x70, 0x65, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x6f, 0x50, + 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x68, + 0x6f, 0x64, 0x48, 0x01, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x88, 0x01, 0x01, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0xe5, 0x01, 0x0a, 0x0e, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x19, 0x0a, + 0x08, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x73, 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0b, 0x74, 0x6f, 0x5f, 0x73, + 0x68, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x09, 0x74, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, + 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x50, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x1c, 0x0a, 0x0a, 0x74, 0x6f, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x6f, 0x50, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x38, 0x0a, + 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, + 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x66, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x48, 0x01, 0x52, 0x06, 0x6d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x6f, 0x5f, 0x73, + 0x68, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x65, 0x74, 0x68, + 0x6f, 0x64, 0x22, 0xa4, 0x01, 0x0a, 0x12, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x68, 0x61, + 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x68, 0x61, + 0x72, 0x64, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0b, 0x74, 0x6f, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, + 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x09, 0x74, 0x6f, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x0c, 0x66, 0x72, 0x6f, + 0x6d, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x50, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x0a, 0x74, + 0x6f, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x74, 0x6f, 0x50, 0x65, 0x65, 0x72, 0x49, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x6f, + 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x22, 0xd6, 0x01, 0x0a, 0x0f, 0x52, 0x65, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x08, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x73, 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0b, 0x74, 0x6f, 0x5f, 0x73, + 0x68, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x09, 0x74, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, + 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x50, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x1c, 0x0a, 0x0a, 0x74, 0x6f, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x6f, 0x50, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x33, 0x0a, + 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x66, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x73, 0x68, 0x61, 0x72, 0x64, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x22, 0xe0, 0x01, 0x0a, 0x09, 0x4d, 0x6f, 0x76, - 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x68, 0x61, 0x72, 0x64, 0x49, - 0x64, 0x12, 0x23, 0x0a, 0x0b, 0x74, 0x6f, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x09, 0x74, 0x6f, 0x53, 0x68, 0x61, 0x72, - 0x64, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, - 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x72, - 0x6f, 0x6d, 0x50, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x0a, 0x74, 0x6f, 0x5f, 0x70, - 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x6f, - 0x50, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, - 0x53, 0x68, 0x61, 0x72, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x48, 0x01, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x88, 0x01, 0x01, - 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0xe5, 0x01, 0x0a, 0x0e, - 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x19, - 0x0a, 0x08, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x73, 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0b, 0x74, 0x6f, 0x5f, - 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x09, 0x74, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, - 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x50, 0x65, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x1c, 0x0a, 0x0a, 0x74, 0x6f, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x6f, 0x50, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x38, - 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, - 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x48, 0x01, 0x52, 0x06, 0x6d, - 0x65, 0x74, 0x68, 0x6f, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x6f, 0x5f, - 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x22, 0xa4, 0x01, 0x0a, 0x12, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x53, 0x68, 0x61, - 0x72, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x68, - 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x68, - 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0b, 0x74, 0x6f, 0x5f, 0x73, 0x68, 0x61, 0x72, - 0x64, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x09, 0x74, 0x6f, - 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x0c, 0x66, 0x72, - 0x6f, 0x6d, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x50, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x0a, - 0x74, 0x6f, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x08, 0x74, 0x6f, 0x50, 0x65, 0x65, 0x72, 0x49, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, - 0x6f, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x22, 0xd6, 0x01, 0x0a, 0x0f, 0x52, - 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x08, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x73, 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0b, 0x74, 0x6f, 0x5f, - 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x09, 0x74, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, - 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x50, 0x65, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x1c, 0x0a, 0x0a, 0x74, 0x6f, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x6f, 0x50, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x33, - 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, - 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, - 0x5f, 0x69, 0x64, 0x22, 0x3d, 0x0a, 0x07, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x19, - 0x0a, 0x08, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x73, 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x65, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, - 0x49, 0x64, 0x22, 0xe4, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, - 0x72, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x09, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, - 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x52, 0x08, 0x73, 0x68, 0x61, 0x72, - 0x64, 0x4b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x73, - 0x68, 0x61, 0x72, 0x64, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x32, - 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x61, - 0x63, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x11, 0x72, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x88, - 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x04, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x22, 0x3f, 0x0a, 0x0e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x09, 0x73, - 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, - 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, - 0x52, 0x08, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x22, 0xc6, 0x04, 0x0a, 0x23, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x0a, 0x6d, - 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, - 0x72, 0x64, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, - 0x41, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x68, 0x61, - 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, - 0x74, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, - 0x48, 0x00, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, - 0x72, 0x64, 0x12, 0x43, 0x0a, 0x0e, 0x61, 0x62, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x66, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x71, 0x64, 0x72, - 0x61, 0x6e, 0x74, 0x2e, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x62, 0x6f, 0x72, 0x74, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x0c, 0x64, 0x72, 0x6f, 0x70, 0x5f, - 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x48, 0x00, - 0x52, 0x0b, 0x64, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x42, 0x0a, - 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x48, - 0x00, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, - 0x79, 0x12, 0x42, 0x0a, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, - 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, - 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, - 0x4b, 0x65, 0x79, 0x48, 0x00, 0x52, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x68, 0x61, - 0x72, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x44, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x07, 0x74, - 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x07, - 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x6f, 0x75, 0x74, 0x22, 0x3e, 0x0a, 0x24, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, - 0x74, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x22, 0x9d, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x68, - 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, - 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x52, - 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, - 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x07, 0x74, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x6f, 0x75, 0x74, 0x22, 0x9d, 0x01, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x68, - 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, - 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x52, - 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, - 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x07, 0x74, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x6f, 0x75, 0x74, 0x22, 0x30, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, - 0x72, 0x64, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x30, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, - 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2a, 0x3c, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x10, 0x00, - 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x32, 0x10, 0x01, 0x12, 0x09, 0x0a, - 0x05, 0x55, 0x69, 0x6e, 0x74, 0x38, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x61, - 0x74, 0x31, 0x36, 0x10, 0x03, 0x2a, 0x1d, 0x0a, 0x08, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x49, - 0x64, 0x66, 0x10, 0x01, 0x2a, 0x23, 0x0a, 0x15, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x56, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x0a, 0x0a, - 0x06, 0x4d, 0x61, 0x78, 0x53, 0x69, 0x6d, 0x10, 0x00, 0x2a, 0x4f, 0x0a, 0x08, 0x44, 0x69, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, - 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x6f, - 0x73, 0x69, 0x6e, 0x65, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x75, 0x63, 0x6c, 0x69, 0x64, - 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x6f, 0x74, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x4d, - 0x61, 0x6e, 0x68, 0x61, 0x74, 0x74, 0x61, 0x6e, 0x10, 0x04, 0x2a, 0x59, 0x0a, 0x10, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, - 0x0a, 0x17, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x47, - 0x72, 0x65, 0x65, 0x6e, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x59, 0x65, 0x6c, 0x6c, 0x6f, 0x77, - 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x52, 0x65, 0x64, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x47, - 0x72, 0x65, 0x79, 0x10, 0x04, 0x2a, 0x74, 0x0a, 0x11, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x6e, - 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x4b, - 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x10, 0x03, - 0x12, 0x07, 0x0a, 0x03, 0x47, 0x65, 0x6f, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x65, 0x78, - 0x74, 0x10, 0x05, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x6f, 0x6f, 0x6c, 0x10, 0x06, 0x12, 0x0c, 0x0a, - 0x08, 0x44, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x10, 0x07, 0x2a, 0x35, 0x0a, 0x10, 0x51, - 0x75, 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x17, 0x0a, 0x13, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x6e, 0x74, 0x38, - 0x10, 0x01, 0x2a, 0x3d, 0x0a, 0x10, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x06, 0x0a, 0x02, 0x78, 0x34, 0x10, 0x00, 0x12, 0x06, - 0x0a, 0x02, 0x78, 0x38, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x78, 0x31, 0x36, 0x10, 0x02, 0x12, - 0x07, 0x0a, 0x03, 0x78, 0x33, 0x32, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x78, 0x36, 0x34, 0x10, - 0x04, 0x2a, 0x26, 0x0a, 0x0e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x75, 0x74, 0x6f, 0x10, 0x00, 0x12, 0x0a, 0x0a, - 0x06, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x01, 0x2a, 0x54, 0x0a, 0x0d, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x69, 0x7a, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, - 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x57, 0x68, 0x69, 0x74, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x57, 0x6f, 0x72, 0x64, 0x10, 0x03, 0x12, 0x10, 0x0a, - 0x0c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x6c, 0x10, 0x04, 0x2a, - 0x84, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, - 0x44, 0x65, 0x61, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, - 0x6c, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, - 0x69, 0x6e, 0x67, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, - 0x72, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x65, 0x63, 0x6f, - 0x76, 0x65, 0x72, 0x79, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x68, 0x61, 0x72, - 0x64, 0x69, 0x6e, 0x67, 0x10, 0x07, 0x2a, 0x61, 0x0a, 0x13, 0x53, 0x68, 0x61, 0x72, 0x64, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x11, 0x0a, - 0x0d, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x10, 0x00, - 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x10, 0x01, 0x12, 0x0c, - 0x0a, 0x08, 0x57, 0x61, 0x6c, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, - 0x52, 0x65, 0x73, 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x10, 0x03, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x73, 0x66, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, + 0x6f, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, + 0x69, 0x64, 0x22, 0x3d, 0x0a, 0x07, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x19, 0x0a, + 0x08, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x73, 0x68, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, + 0x64, 0x22, 0xe4, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x4b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x09, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, + 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x52, 0x08, 0x73, 0x68, 0x61, 0x72, 0x64, + 0x4b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x68, + 0x61, 0x72, 0x64, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, + 0x12, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x63, + 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x11, 0x72, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, + 0x01, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x04, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x22, 0x3f, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x09, 0x73, 0x68, + 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x52, + 0x08, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x22, 0xc6, 0x04, 0x0a, 0x23, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x0a, 0x6d, 0x6f, + 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x41, + 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, + 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x48, + 0x00, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x12, 0x43, 0x0a, 0x0e, 0x61, 0x62, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x71, 0x64, 0x72, 0x61, + 0x6e, 0x74, 0x2e, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x66, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x62, 0x6f, 0x72, 0x74, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x0c, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x71, + 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x48, 0x00, 0x52, + 0x0b, 0x64, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x42, 0x0a, 0x10, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x48, 0x00, + 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, + 0x12, 0x42, 0x0a, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, + 0x61, 0x6e, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, + 0x65, 0x79, 0x48, 0x00, 0x52, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x4b, 0x65, 0x79, 0x12, 0x44, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x07, 0x74, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, + 0x75, 0x74, 0x22, 0x3e, 0x0a, 0x24, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, + 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x22, 0x9d, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, + 0x72, 0x64, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x52, 0x07, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, + 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, + 0x75, 0x74, 0x22, 0x9d, 0x01, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x68, 0x61, + 0x72, 0x64, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x52, 0x07, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, + 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, + 0x75, 0x74, 0x22, 0x30, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x22, 0x30, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x68, + 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2a, 0x3c, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x10, 0x00, 0x12, + 0x0b, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x32, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, + 0x55, 0x69, 0x6e, 0x74, 0x38, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x61, 0x74, + 0x31, 0x36, 0x10, 0x03, 0x2a, 0x1d, 0x0a, 0x08, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, + 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x64, + 0x66, 0x10, 0x01, 0x2a, 0x23, 0x0a, 0x15, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x56, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x0a, 0x0a, 0x06, + 0x4d, 0x61, 0x78, 0x53, 0x69, 0x6d, 0x10, 0x00, 0x2a, 0x4f, 0x0a, 0x08, 0x44, 0x69, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x44, + 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x6f, 0x73, + 0x69, 0x6e, 0x65, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x75, 0x63, 0x6c, 0x69, 0x64, 0x10, + 0x02, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x6f, 0x74, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x4d, 0x61, + 0x6e, 0x68, 0x61, 0x74, 0x74, 0x61, 0x6e, 0x10, 0x04, 0x2a, 0x59, 0x0a, 0x10, 0x43, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, + 0x17, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x72, + 0x65, 0x65, 0x6e, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x59, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x10, + 0x02, 0x12, 0x07, 0x0a, 0x03, 0x52, 0x65, 0x64, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x47, 0x72, + 0x65, 0x79, 0x10, 0x04, 0x2a, 0x7e, 0x0a, 0x11, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x6e, 0x6b, + 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x4b, 0x65, + 0x79, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x6e, 0x74, 0x65, 0x67, + 0x65, 0x72, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x10, 0x03, 0x12, + 0x07, 0x0a, 0x03, 0x47, 0x65, 0x6f, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x65, 0x78, 0x74, + 0x10, 0x05, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x6f, 0x6f, 0x6c, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, + 0x44, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x55, 0x75, + 0x69, 0x64, 0x10, 0x08, 0x2a, 0x35, 0x0a, 0x10, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x6e, 0x6b, 0x6e, + 0x6f, 0x77, 0x6e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, + 0x00, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x6e, 0x74, 0x38, 0x10, 0x01, 0x2a, 0x3d, 0x0a, 0x10, 0x43, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, + 0x06, 0x0a, 0x02, 0x78, 0x34, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x78, 0x38, 0x10, 0x01, 0x12, + 0x07, 0x0a, 0x03, 0x78, 0x31, 0x36, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x78, 0x33, 0x32, 0x10, + 0x03, 0x12, 0x07, 0x0a, 0x03, 0x78, 0x36, 0x34, 0x10, 0x04, 0x2a, 0x26, 0x0a, 0x0e, 0x53, 0x68, + 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x08, 0x0a, 0x04, + 0x41, 0x75, 0x74, 0x6f, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x10, 0x01, 0x2a, 0x54, 0x0a, 0x0d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x69, 0x7a, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, + 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, + 0x57, 0x68, 0x69, 0x74, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, + 0x57, 0x6f, 0x72, 0x64, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x6c, + 0x69, 0x6e, 0x67, 0x75, 0x61, 0x6c, 0x10, 0x04, 0x2a, 0x84, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x65, 0x61, 0x64, 0x10, 0x01, 0x12, + 0x0b, 0x0a, 0x07, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, + 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x10, 0x03, 0x12, 0x0c, + 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, + 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x10, + 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x10, 0x06, 0x12, + 0x0e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x07, 0x2a, + 0x61, 0x0a, 0x13, 0x53, 0x68, 0x61, 0x72, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, + 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x57, 0x61, 0x6c, 0x44, 0x65, + 0x6c, 0x74, 0x61, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x65, 0x73, 0x68, 0x61, 0x72, 0x64, + 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, + 0x10, 0x03, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -6175,7 +6711,7 @@ func file_collections_proto_rawDescGZIP() []byte { } var file_collections_proto_enumTypes = make([]protoimpl.EnumInfo, 12) -var file_collections_proto_msgTypes = make([]protoimpl.MessageInfo, 72) +var file_collections_proto_msgTypes = make([]protoimpl.MessageInfo, 79) var file_collections_proto_goTypes = []interface{}{ (Datatype)(0), // 0: qdrant.Datatype (Modifier)(0), // 1: qdrant.Modifier @@ -6224,43 +6760,50 @@ var file_collections_proto_goTypes = []interface{}{ (*CollectionParams)(nil), // 44: qdrant.CollectionParams (*CollectionParamsDiff)(nil), // 45: qdrant.CollectionParamsDiff (*CollectionConfig)(nil), // 46: qdrant.CollectionConfig - (*TextIndexParams)(nil), // 47: qdrant.TextIndexParams + (*KeywordIndexParams)(nil), // 47: qdrant.KeywordIndexParams (*IntegerIndexParams)(nil), // 48: qdrant.IntegerIndexParams - (*PayloadIndexParams)(nil), // 49: qdrant.PayloadIndexParams - (*PayloadSchemaInfo)(nil), // 50: qdrant.PayloadSchemaInfo - (*CollectionInfo)(nil), // 51: qdrant.CollectionInfo - (*ChangeAliases)(nil), // 52: qdrant.ChangeAliases - (*AliasOperations)(nil), // 53: qdrant.AliasOperations - (*CreateAlias)(nil), // 54: qdrant.CreateAlias - (*RenameAlias)(nil), // 55: qdrant.RenameAlias - (*DeleteAlias)(nil), // 56: qdrant.DeleteAlias - (*ListAliasesRequest)(nil), // 57: qdrant.ListAliasesRequest - (*ListCollectionAliasesRequest)(nil), // 58: qdrant.ListCollectionAliasesRequest - (*AliasDescription)(nil), // 59: qdrant.AliasDescription - (*ListAliasesResponse)(nil), // 60: qdrant.ListAliasesResponse - (*CollectionClusterInfoRequest)(nil), // 61: qdrant.CollectionClusterInfoRequest - (*ShardKey)(nil), // 62: qdrant.ShardKey - (*LocalShardInfo)(nil), // 63: qdrant.LocalShardInfo - (*RemoteShardInfo)(nil), // 64: qdrant.RemoteShardInfo - (*ShardTransferInfo)(nil), // 65: qdrant.ShardTransferInfo - (*CollectionClusterInfoResponse)(nil), // 66: qdrant.CollectionClusterInfoResponse - (*MoveShard)(nil), // 67: qdrant.MoveShard - (*ReplicateShard)(nil), // 68: qdrant.ReplicateShard - (*AbortShardTransfer)(nil), // 69: qdrant.AbortShardTransfer - (*RestartTransfer)(nil), // 70: qdrant.RestartTransfer - (*Replica)(nil), // 71: qdrant.Replica - (*CreateShardKey)(nil), // 72: qdrant.CreateShardKey - (*DeleteShardKey)(nil), // 73: qdrant.DeleteShardKey - (*UpdateCollectionClusterSetupRequest)(nil), // 74: qdrant.UpdateCollectionClusterSetupRequest - (*UpdateCollectionClusterSetupResponse)(nil), // 75: qdrant.UpdateCollectionClusterSetupResponse - (*CreateShardKeyRequest)(nil), // 76: qdrant.CreateShardKeyRequest - (*DeleteShardKeyRequest)(nil), // 77: qdrant.DeleteShardKeyRequest - (*CreateShardKeyResponse)(nil), // 78: qdrant.CreateShardKeyResponse - (*DeleteShardKeyResponse)(nil), // 79: qdrant.DeleteShardKeyResponse - nil, // 80: qdrant.VectorParamsMap.MapEntry - nil, // 81: qdrant.VectorParamsDiffMap.MapEntry - nil, // 82: qdrant.SparseVectorConfig.MapEntry - nil, // 83: qdrant.CollectionInfo.PayloadSchemaEntry + (*FloatIndexParams)(nil), // 49: qdrant.FloatIndexParams + (*GeoIndexParams)(nil), // 50: qdrant.GeoIndexParams + (*TextIndexParams)(nil), // 51: qdrant.TextIndexParams + (*BoolIndexParams)(nil), // 52: qdrant.BoolIndexParams + (*DatetimeIndexParams)(nil), // 53: qdrant.DatetimeIndexParams + (*UuidIndexParams)(nil), // 54: qdrant.UuidIndexParams + (*PayloadIndexParams)(nil), // 55: qdrant.PayloadIndexParams + (*PayloadSchemaInfo)(nil), // 56: qdrant.PayloadSchemaInfo + (*CollectionInfo)(nil), // 57: qdrant.CollectionInfo + (*ChangeAliases)(nil), // 58: qdrant.ChangeAliases + (*AliasOperations)(nil), // 59: qdrant.AliasOperations + (*CreateAlias)(nil), // 60: qdrant.CreateAlias + (*RenameAlias)(nil), // 61: qdrant.RenameAlias + (*DeleteAlias)(nil), // 62: qdrant.DeleteAlias + (*ListAliasesRequest)(nil), // 63: qdrant.ListAliasesRequest + (*ListCollectionAliasesRequest)(nil), // 64: qdrant.ListCollectionAliasesRequest + (*AliasDescription)(nil), // 65: qdrant.AliasDescription + (*ListAliasesResponse)(nil), // 66: qdrant.ListAliasesResponse + (*CollectionClusterInfoRequest)(nil), // 67: qdrant.CollectionClusterInfoRequest + (*ShardKey)(nil), // 68: qdrant.ShardKey + (*LocalShardInfo)(nil), // 69: qdrant.LocalShardInfo + (*RemoteShardInfo)(nil), // 70: qdrant.RemoteShardInfo + (*ShardTransferInfo)(nil), // 71: qdrant.ShardTransferInfo + (*ReshardingInfo)(nil), // 72: qdrant.ReshardingInfo + (*CollectionClusterInfoResponse)(nil), // 73: qdrant.CollectionClusterInfoResponse + (*MoveShard)(nil), // 74: qdrant.MoveShard + (*ReplicateShard)(nil), // 75: qdrant.ReplicateShard + (*AbortShardTransfer)(nil), // 76: qdrant.AbortShardTransfer + (*RestartTransfer)(nil), // 77: qdrant.RestartTransfer + (*Replica)(nil), // 78: qdrant.Replica + (*CreateShardKey)(nil), // 79: qdrant.CreateShardKey + (*DeleteShardKey)(nil), // 80: qdrant.DeleteShardKey + (*UpdateCollectionClusterSetupRequest)(nil), // 81: qdrant.UpdateCollectionClusterSetupRequest + (*UpdateCollectionClusterSetupResponse)(nil), // 82: qdrant.UpdateCollectionClusterSetupResponse + (*CreateShardKeyRequest)(nil), // 83: qdrant.CreateShardKeyRequest + (*DeleteShardKeyRequest)(nil), // 84: qdrant.DeleteShardKeyRequest + (*CreateShardKeyResponse)(nil), // 85: qdrant.CreateShardKeyResponse + (*DeleteShardKeyResponse)(nil), // 86: qdrant.DeleteShardKeyResponse + nil, // 87: qdrant.VectorParamsMap.MapEntry + nil, // 88: qdrant.VectorParamsDiffMap.MapEntry + nil, // 89: qdrant.SparseVectorConfig.MapEntry + nil, // 90: qdrant.CollectionInfo.PayloadSchemaEntry } var file_collections_proto_depIdxs = []int32{ 3, // 0: qdrant.VectorParams.distance:type_name -> qdrant.Distance @@ -6270,18 +6813,18 @@ var file_collections_proto_depIdxs = []int32{ 20, // 4: qdrant.VectorParams.multivector_config:type_name -> qdrant.MultiVectorConfig 30, // 5: qdrant.VectorParamsDiff.hnsw_config:type_name -> qdrant.HnswConfigDiff 39, // 6: qdrant.VectorParamsDiff.quantization_config:type_name -> qdrant.QuantizationConfigDiff - 80, // 7: qdrant.VectorParamsMap.map:type_name -> qdrant.VectorParamsMap.MapEntry - 81, // 8: qdrant.VectorParamsDiffMap.map:type_name -> qdrant.VectorParamsDiffMap.MapEntry + 87, // 7: qdrant.VectorParamsMap.map:type_name -> qdrant.VectorParamsMap.MapEntry + 88, // 8: qdrant.VectorParamsDiffMap.map:type_name -> qdrant.VectorParamsDiffMap.MapEntry 12, // 9: qdrant.VectorsConfig.params:type_name -> qdrant.VectorParams 14, // 10: qdrant.VectorsConfig.params_map:type_name -> qdrant.VectorParamsMap 13, // 11: qdrant.VectorsConfigDiff.params:type_name -> qdrant.VectorParamsDiff 15, // 12: qdrant.VectorsConfigDiff.params_map:type_name -> qdrant.VectorParamsDiffMap 31, // 13: qdrant.SparseVectorParams.index:type_name -> qdrant.SparseIndexConfig 1, // 14: qdrant.SparseVectorParams.modifier:type_name -> qdrant.Modifier - 82, // 15: qdrant.SparseVectorConfig.map:type_name -> qdrant.SparseVectorConfig.MapEntry + 89, // 15: qdrant.SparseVectorConfig.map:type_name -> qdrant.SparseVectorConfig.MapEntry 2, // 16: qdrant.MultiVectorConfig.comparator:type_name -> qdrant.MultiVectorComparator 23, // 17: qdrant.CollectionExistsResponse.result:type_name -> qdrant.CollectionExists - 51, // 18: qdrant.GetCollectionInfoResponse.result:type_name -> qdrant.CollectionInfo + 57, // 18: qdrant.GetCollectionInfoResponse.result:type_name -> qdrant.CollectionInfo 26, // 19: qdrant.ListCollectionsResponse.collections:type_name -> qdrant.CollectionDescription 0, // 20: qdrant.SparseIndexConfig.datatype:type_name -> qdrant.Datatype 6, // 21: qdrant.ScalarQuantization.type:type_name -> qdrant.QuantizationType @@ -6315,49 +6858,56 @@ var file_collections_proto_depIdxs = []int32{ 32, // 49: qdrant.CollectionConfig.wal_config:type_name -> qdrant.WalConfigDiff 37, // 50: qdrant.CollectionConfig.quantization_config:type_name -> qdrant.QuantizationConfig 9, // 51: qdrant.TextIndexParams.tokenizer:type_name -> qdrant.TokenizerType - 47, // 52: qdrant.PayloadIndexParams.text_index_params:type_name -> qdrant.TextIndexParams + 47, // 52: qdrant.PayloadIndexParams.keyword_index_params:type_name -> qdrant.KeywordIndexParams 48, // 53: qdrant.PayloadIndexParams.integer_index_params:type_name -> qdrant.IntegerIndexParams - 5, // 54: qdrant.PayloadSchemaInfo.data_type:type_name -> qdrant.PayloadSchemaType - 49, // 55: qdrant.PayloadSchemaInfo.params:type_name -> qdrant.PayloadIndexParams - 4, // 56: qdrant.CollectionInfo.status:type_name -> qdrant.CollectionStatus - 29, // 57: qdrant.CollectionInfo.optimizer_status:type_name -> qdrant.OptimizerStatus - 46, // 58: qdrant.CollectionInfo.config:type_name -> qdrant.CollectionConfig - 83, // 59: qdrant.CollectionInfo.payload_schema:type_name -> qdrant.CollectionInfo.PayloadSchemaEntry - 53, // 60: qdrant.ChangeAliases.actions:type_name -> qdrant.AliasOperations - 54, // 61: qdrant.AliasOperations.create_alias:type_name -> qdrant.CreateAlias - 55, // 62: qdrant.AliasOperations.rename_alias:type_name -> qdrant.RenameAlias - 56, // 63: qdrant.AliasOperations.delete_alias:type_name -> qdrant.DeleteAlias - 59, // 64: qdrant.ListAliasesResponse.aliases:type_name -> qdrant.AliasDescription - 10, // 65: qdrant.LocalShardInfo.state:type_name -> qdrant.ReplicaState - 62, // 66: qdrant.LocalShardInfo.shard_key:type_name -> qdrant.ShardKey - 10, // 67: qdrant.RemoteShardInfo.state:type_name -> qdrant.ReplicaState - 62, // 68: qdrant.RemoteShardInfo.shard_key:type_name -> qdrant.ShardKey - 63, // 69: qdrant.CollectionClusterInfoResponse.local_shards:type_name -> qdrant.LocalShardInfo - 64, // 70: qdrant.CollectionClusterInfoResponse.remote_shards:type_name -> qdrant.RemoteShardInfo - 65, // 71: qdrant.CollectionClusterInfoResponse.shard_transfers:type_name -> qdrant.ShardTransferInfo - 11, // 72: qdrant.MoveShard.method:type_name -> qdrant.ShardTransferMethod - 11, // 73: qdrant.ReplicateShard.method:type_name -> qdrant.ShardTransferMethod - 11, // 74: qdrant.RestartTransfer.method:type_name -> qdrant.ShardTransferMethod - 62, // 75: qdrant.CreateShardKey.shard_key:type_name -> qdrant.ShardKey - 62, // 76: qdrant.DeleteShardKey.shard_key:type_name -> qdrant.ShardKey - 67, // 77: qdrant.UpdateCollectionClusterSetupRequest.move_shard:type_name -> qdrant.MoveShard - 68, // 78: qdrant.UpdateCollectionClusterSetupRequest.replicate_shard:type_name -> qdrant.ReplicateShard - 69, // 79: qdrant.UpdateCollectionClusterSetupRequest.abort_transfer:type_name -> qdrant.AbortShardTransfer - 71, // 80: qdrant.UpdateCollectionClusterSetupRequest.drop_replica:type_name -> qdrant.Replica - 72, // 81: qdrant.UpdateCollectionClusterSetupRequest.create_shard_key:type_name -> qdrant.CreateShardKey - 73, // 82: qdrant.UpdateCollectionClusterSetupRequest.delete_shard_key:type_name -> qdrant.DeleteShardKey - 70, // 83: qdrant.UpdateCollectionClusterSetupRequest.restart_transfer:type_name -> qdrant.RestartTransfer - 72, // 84: qdrant.CreateShardKeyRequest.request:type_name -> qdrant.CreateShardKey - 73, // 85: qdrant.DeleteShardKeyRequest.request:type_name -> qdrant.DeleteShardKey - 12, // 86: qdrant.VectorParamsMap.MapEntry.value:type_name -> qdrant.VectorParams - 13, // 87: qdrant.VectorParamsDiffMap.MapEntry.value:type_name -> qdrant.VectorParamsDiff - 18, // 88: qdrant.SparseVectorConfig.MapEntry.value:type_name -> qdrant.SparseVectorParams - 50, // 89: qdrant.CollectionInfo.PayloadSchemaEntry.value:type_name -> qdrant.PayloadSchemaInfo - 90, // [90:90] is the sub-list for method output_type - 90, // [90:90] is the sub-list for method input_type - 90, // [90:90] is the sub-list for extension type_name - 90, // [90:90] is the sub-list for extension extendee - 0, // [0:90] is the sub-list for field type_name + 49, // 54: qdrant.PayloadIndexParams.float_index_params:type_name -> qdrant.FloatIndexParams + 50, // 55: qdrant.PayloadIndexParams.geo_index_params:type_name -> qdrant.GeoIndexParams + 51, // 56: qdrant.PayloadIndexParams.text_index_params:type_name -> qdrant.TextIndexParams + 52, // 57: qdrant.PayloadIndexParams.bool_index_params:type_name -> qdrant.BoolIndexParams + 53, // 58: qdrant.PayloadIndexParams.datetime_index_params:type_name -> qdrant.DatetimeIndexParams + 54, // 59: qdrant.PayloadIndexParams.uuid_index_params:type_name -> qdrant.UuidIndexParams + 5, // 60: qdrant.PayloadSchemaInfo.data_type:type_name -> qdrant.PayloadSchemaType + 55, // 61: qdrant.PayloadSchemaInfo.params:type_name -> qdrant.PayloadIndexParams + 4, // 62: qdrant.CollectionInfo.status:type_name -> qdrant.CollectionStatus + 29, // 63: qdrant.CollectionInfo.optimizer_status:type_name -> qdrant.OptimizerStatus + 46, // 64: qdrant.CollectionInfo.config:type_name -> qdrant.CollectionConfig + 90, // 65: qdrant.CollectionInfo.payload_schema:type_name -> qdrant.CollectionInfo.PayloadSchemaEntry + 59, // 66: qdrant.ChangeAliases.actions:type_name -> qdrant.AliasOperations + 60, // 67: qdrant.AliasOperations.create_alias:type_name -> qdrant.CreateAlias + 61, // 68: qdrant.AliasOperations.rename_alias:type_name -> qdrant.RenameAlias + 62, // 69: qdrant.AliasOperations.delete_alias:type_name -> qdrant.DeleteAlias + 65, // 70: qdrant.ListAliasesResponse.aliases:type_name -> qdrant.AliasDescription + 10, // 71: qdrant.LocalShardInfo.state:type_name -> qdrant.ReplicaState + 68, // 72: qdrant.LocalShardInfo.shard_key:type_name -> qdrant.ShardKey + 10, // 73: qdrant.RemoteShardInfo.state:type_name -> qdrant.ReplicaState + 68, // 74: qdrant.RemoteShardInfo.shard_key:type_name -> qdrant.ShardKey + 68, // 75: qdrant.ReshardingInfo.shard_key:type_name -> qdrant.ShardKey + 69, // 76: qdrant.CollectionClusterInfoResponse.local_shards:type_name -> qdrant.LocalShardInfo + 70, // 77: qdrant.CollectionClusterInfoResponse.remote_shards:type_name -> qdrant.RemoteShardInfo + 71, // 78: qdrant.CollectionClusterInfoResponse.shard_transfers:type_name -> qdrant.ShardTransferInfo + 11, // 79: qdrant.MoveShard.method:type_name -> qdrant.ShardTransferMethod + 11, // 80: qdrant.ReplicateShard.method:type_name -> qdrant.ShardTransferMethod + 11, // 81: qdrant.RestartTransfer.method:type_name -> qdrant.ShardTransferMethod + 68, // 82: qdrant.CreateShardKey.shard_key:type_name -> qdrant.ShardKey + 68, // 83: qdrant.DeleteShardKey.shard_key:type_name -> qdrant.ShardKey + 74, // 84: qdrant.UpdateCollectionClusterSetupRequest.move_shard:type_name -> qdrant.MoveShard + 75, // 85: qdrant.UpdateCollectionClusterSetupRequest.replicate_shard:type_name -> qdrant.ReplicateShard + 76, // 86: qdrant.UpdateCollectionClusterSetupRequest.abort_transfer:type_name -> qdrant.AbortShardTransfer + 78, // 87: qdrant.UpdateCollectionClusterSetupRequest.drop_replica:type_name -> qdrant.Replica + 79, // 88: qdrant.UpdateCollectionClusterSetupRequest.create_shard_key:type_name -> qdrant.CreateShardKey + 80, // 89: qdrant.UpdateCollectionClusterSetupRequest.delete_shard_key:type_name -> qdrant.DeleteShardKey + 77, // 90: qdrant.UpdateCollectionClusterSetupRequest.restart_transfer:type_name -> qdrant.RestartTransfer + 79, // 91: qdrant.CreateShardKeyRequest.request:type_name -> qdrant.CreateShardKey + 80, // 92: qdrant.DeleteShardKeyRequest.request:type_name -> qdrant.DeleteShardKey + 12, // 93: qdrant.VectorParamsMap.MapEntry.value:type_name -> qdrant.VectorParams + 13, // 94: qdrant.VectorParamsDiffMap.MapEntry.value:type_name -> qdrant.VectorParamsDiff + 18, // 95: qdrant.SparseVectorConfig.MapEntry.value:type_name -> qdrant.SparseVectorParams + 56, // 96: qdrant.CollectionInfo.PayloadSchemaEntry.value:type_name -> qdrant.PayloadSchemaInfo + 97, // [97:97] is the sub-list for method output_type + 97, // [97:97] is the sub-list for method input_type + 97, // [97:97] is the sub-list for extension type_name + 97, // [97:97] is the sub-list for extension extendee + 0, // [0:97] is the sub-list for field type_name } func init() { file_collections_proto_init() } @@ -6787,7 +7337,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TextIndexParams); i { + switch v := v.(*KeywordIndexParams); i { case 0: return &v.state case 1: @@ -6811,7 +7361,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PayloadIndexParams); i { + switch v := v.(*FloatIndexParams); i { case 0: return &v.state case 1: @@ -6823,7 +7373,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PayloadSchemaInfo); i { + switch v := v.(*GeoIndexParams); i { case 0: return &v.state case 1: @@ -6835,7 +7385,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CollectionInfo); i { + switch v := v.(*TextIndexParams); i { case 0: return &v.state case 1: @@ -6847,7 +7397,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeAliases); i { + switch v := v.(*BoolIndexParams); i { case 0: return &v.state case 1: @@ -6859,7 +7409,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AliasOperations); i { + switch v := v.(*DatetimeIndexParams); i { case 0: return &v.state case 1: @@ -6871,7 +7421,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateAlias); i { + switch v := v.(*UuidIndexParams); i { case 0: return &v.state case 1: @@ -6883,7 +7433,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RenameAlias); i { + switch v := v.(*PayloadIndexParams); i { case 0: return &v.state case 1: @@ -6895,7 +7445,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteAlias); i { + switch v := v.(*PayloadSchemaInfo); i { case 0: return &v.state case 1: @@ -6907,7 +7457,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListAliasesRequest); i { + switch v := v.(*CollectionInfo); i { case 0: return &v.state case 1: @@ -6919,7 +7469,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListCollectionAliasesRequest); i { + switch v := v.(*ChangeAliases); i { case 0: return &v.state case 1: @@ -6931,7 +7481,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AliasDescription); i { + switch v := v.(*AliasOperations); i { case 0: return &v.state case 1: @@ -6943,7 +7493,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListAliasesResponse); i { + switch v := v.(*CreateAlias); i { case 0: return &v.state case 1: @@ -6955,7 +7505,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CollectionClusterInfoRequest); i { + switch v := v.(*RenameAlias); i { case 0: return &v.state case 1: @@ -6967,7 +7517,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShardKey); i { + switch v := v.(*DeleteAlias); i { case 0: return &v.state case 1: @@ -6979,7 +7529,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LocalShardInfo); i { + switch v := v.(*ListAliasesRequest); i { case 0: return &v.state case 1: @@ -6991,7 +7541,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RemoteShardInfo); i { + switch v := v.(*ListCollectionAliasesRequest); i { case 0: return &v.state case 1: @@ -7003,7 +7553,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShardTransferInfo); i { + switch v := v.(*AliasDescription); i { case 0: return &v.state case 1: @@ -7015,7 +7565,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CollectionClusterInfoResponse); i { + switch v := v.(*ListAliasesResponse); i { case 0: return &v.state case 1: @@ -7027,7 +7577,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MoveShard); i { + switch v := v.(*CollectionClusterInfoRequest); i { case 0: return &v.state case 1: @@ -7039,7 +7589,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReplicateShard); i { + switch v := v.(*ShardKey); i { case 0: return &v.state case 1: @@ -7051,7 +7601,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AbortShardTransfer); i { + switch v := v.(*LocalShardInfo); i { case 0: return &v.state case 1: @@ -7063,7 +7613,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RestartTransfer); i { + switch v := v.(*RemoteShardInfo); i { case 0: return &v.state case 1: @@ -7075,7 +7625,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Replica); i { + switch v := v.(*ShardTransferInfo); i { case 0: return &v.state case 1: @@ -7087,7 +7637,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateShardKey); i { + switch v := v.(*ReshardingInfo); i { case 0: return &v.state case 1: @@ -7099,7 +7649,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteShardKey); i { + switch v := v.(*CollectionClusterInfoResponse); i { case 0: return &v.state case 1: @@ -7111,7 +7661,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateCollectionClusterSetupRequest); i { + switch v := v.(*MoveShard); i { case 0: return &v.state case 1: @@ -7123,7 +7673,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateCollectionClusterSetupResponse); i { + switch v := v.(*ReplicateShard); i { case 0: return &v.state case 1: @@ -7135,7 +7685,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateShardKeyRequest); i { + switch v := v.(*AbortShardTransfer); i { case 0: return &v.state case 1: @@ -7147,7 +7697,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteShardKeyRequest); i { + switch v := v.(*RestartTransfer); i { case 0: return &v.state case 1: @@ -7159,7 +7709,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateShardKeyResponse); i { + switch v := v.(*Replica); i { case 0: return &v.state case 1: @@ -7171,6 +7721,90 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateShardKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_collections_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteShardKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_collections_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateCollectionClusterSetupRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_collections_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateCollectionClusterSetupResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_collections_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateShardKeyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_collections_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteShardKeyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_collections_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateShardKeyResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_collections_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteShardKeyResponse); i { case 0: return &v.state @@ -7219,31 +7853,43 @@ func file_collections_proto_init() { file_collections_proto_msgTypes[33].OneofWrappers = []interface{}{} file_collections_proto_msgTypes[34].OneofWrappers = []interface{}{} file_collections_proto_msgTypes[35].OneofWrappers = []interface{}{} - file_collections_proto_msgTypes[37].OneofWrappers = []interface{}{ - (*PayloadIndexParams_TextIndexParams)(nil), - (*PayloadIndexParams_IntegerIndexParams)(nil), - } - file_collections_proto_msgTypes[38].OneofWrappers = []interface{}{} + file_collections_proto_msgTypes[36].OneofWrappers = []interface{}{} + file_collections_proto_msgTypes[37].OneofWrappers = []interface{}{} file_collections_proto_msgTypes[39].OneofWrappers = []interface{}{} - file_collections_proto_msgTypes[40].OneofWrappers = []interface{}{} - file_collections_proto_msgTypes[41].OneofWrappers = []interface{}{ + file_collections_proto_msgTypes[41].OneofWrappers = []interface{}{} + file_collections_proto_msgTypes[42].OneofWrappers = []interface{}{} + file_collections_proto_msgTypes[43].OneofWrappers = []interface{}{ + (*PayloadIndexParams_KeywordIndexParams)(nil), + (*PayloadIndexParams_IntegerIndexParams)(nil), + (*PayloadIndexParams_FloatIndexParams)(nil), + (*PayloadIndexParams_GeoIndexParams)(nil), + (*PayloadIndexParams_TextIndexParams)(nil), + (*PayloadIndexParams_BoolIndexParams)(nil), + (*PayloadIndexParams_DatetimeIndexParams)(nil), + (*PayloadIndexParams_UuidIndexParams)(nil), + } + file_collections_proto_msgTypes[44].OneofWrappers = []interface{}{} + file_collections_proto_msgTypes[45].OneofWrappers = []interface{}{} + file_collections_proto_msgTypes[46].OneofWrappers = []interface{}{} + file_collections_proto_msgTypes[47].OneofWrappers = []interface{}{ (*AliasOperations_CreateAlias)(nil), (*AliasOperations_RenameAlias)(nil), (*AliasOperations_DeleteAlias)(nil), } - file_collections_proto_msgTypes[50].OneofWrappers = []interface{}{ + file_collections_proto_msgTypes[56].OneofWrappers = []interface{}{ (*ShardKey_Keyword)(nil), (*ShardKey_Number)(nil), } - file_collections_proto_msgTypes[51].OneofWrappers = []interface{}{} - file_collections_proto_msgTypes[52].OneofWrappers = []interface{}{} - file_collections_proto_msgTypes[53].OneofWrappers = []interface{}{} - file_collections_proto_msgTypes[55].OneofWrappers = []interface{}{} - file_collections_proto_msgTypes[56].OneofWrappers = []interface{}{} file_collections_proto_msgTypes[57].OneofWrappers = []interface{}{} file_collections_proto_msgTypes[58].OneofWrappers = []interface{}{} + file_collections_proto_msgTypes[59].OneofWrappers = []interface{}{} file_collections_proto_msgTypes[60].OneofWrappers = []interface{}{} - file_collections_proto_msgTypes[62].OneofWrappers = []interface{}{ + file_collections_proto_msgTypes[62].OneofWrappers = []interface{}{} + file_collections_proto_msgTypes[63].OneofWrappers = []interface{}{} + file_collections_proto_msgTypes[64].OneofWrappers = []interface{}{} + file_collections_proto_msgTypes[65].OneofWrappers = []interface{}{} + file_collections_proto_msgTypes[67].OneofWrappers = []interface{}{} + file_collections_proto_msgTypes[69].OneofWrappers = []interface{}{ (*UpdateCollectionClusterSetupRequest_MoveShard)(nil), (*UpdateCollectionClusterSetupRequest_ReplicateShard)(nil), (*UpdateCollectionClusterSetupRequest_AbortTransfer)(nil), @@ -7252,15 +7898,15 @@ func file_collections_proto_init() { (*UpdateCollectionClusterSetupRequest_DeleteShardKey)(nil), (*UpdateCollectionClusterSetupRequest_RestartTransfer)(nil), } - file_collections_proto_msgTypes[64].OneofWrappers = []interface{}{} - file_collections_proto_msgTypes[65].OneofWrappers = []interface{}{} + file_collections_proto_msgTypes[71].OneofWrappers = []interface{}{} + file_collections_proto_msgTypes[72].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_collections_proto_rawDesc, NumEnums: 12, - NumMessages: 72, + NumMessages: 79, NumExtensions: 0, NumServices: 0, }, diff --git a/qdrant/points.pb.go b/qdrant/points.pb.go index cdd726f..5da94a5 100644 --- a/qdrant/points.pb.go +++ b/qdrant/points.pb.go @@ -129,6 +129,7 @@ const ( FieldType_FieldTypeText FieldType = 4 FieldType_FieldTypeBool FieldType = 5 FieldType_FieldTypeDatetime FieldType = 6 + FieldType_FieldTypeUuid FieldType = 7 ) // Enum value maps for FieldType. @@ -141,6 +142,7 @@ var ( 4: "FieldTypeText", 5: "FieldTypeBool", 6: "FieldTypeDatetime", + 7: "FieldTypeUuid", } FieldType_value = map[string]int32{ "FieldTypeKeyword": 0, @@ -150,6 +152,7 @@ var ( "FieldTypeText": 4, "FieldTypeBool": 5, "FieldTypeDatetime": 6, + "FieldTypeUuid": 7, } ) @@ -281,16 +284,19 @@ func (RecommendStrategy) EnumDescriptor() ([]byte, []int) { type Fusion int32 const ( - Fusion_RRF Fusion = 0 // Reciprocal Rank Fusion + Fusion_RRF Fusion = 0 // Reciprocal Rank Fusion + Fusion_DBSF Fusion = 1 // Distribution-Based Score Fusion ) // Enum value maps for Fusion. var ( Fusion_name = map[int32]string{ 0: "RRF", + 1: "DBSF", } Fusion_value = map[string]int32{ - "RRF": 0, + "RRF": 0, + "DBSF": 1, } ) @@ -321,6 +327,54 @@ func (Fusion) EnumDescriptor() ([]byte, []int) { return file_points_proto_rawDescGZIP(), []int{5} } +// Sample points from the collection +// +// Available sampling methods: +// +// * `random` - Random sampling +type Sample int32 + +const ( + Sample_Random Sample = 0 +) + +// Enum value maps for Sample. +var ( + Sample_name = map[int32]string{ + 0: "Random", + } + Sample_value = map[string]int32{ + "Random": 0, + } +) + +func (x Sample) Enum() *Sample { + p := new(Sample) + *p = x + return p +} + +func (x Sample) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Sample) Descriptor() protoreflect.EnumDescriptor { + return file_points_proto_enumTypes[6].Descriptor() +} + +func (Sample) Type() protoreflect.EnumType { + return &file_points_proto_enumTypes[6] +} + +func (x Sample) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Sample.Descriptor instead. +func (Sample) EnumDescriptor() ([]byte, []int) { + return file_points_proto_rawDescGZIP(), []int{6} +} + type UpdateStatus int32 const ( @@ -357,11 +411,11 @@ func (x UpdateStatus) String() string { } func (UpdateStatus) Descriptor() protoreflect.EnumDescriptor { - return file_points_proto_enumTypes[6].Descriptor() + return file_points_proto_enumTypes[7].Descriptor() } func (UpdateStatus) Type() protoreflect.EnumType { - return &file_points_proto_enumTypes[6] + return &file_points_proto_enumTypes[7] } func (x UpdateStatus) Number() protoreflect.EnumNumber { @@ -370,7 +424,7 @@ func (x UpdateStatus) Number() protoreflect.EnumNumber { // Deprecated: Use UpdateStatus.Descriptor instead. func (UpdateStatus) EnumDescriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{6} + return file_points_proto_rawDescGZIP(), []int{7} } type WriteOrdering struct { @@ -1168,6 +1222,7 @@ type GetPoints struct { WithVectors *WithVectorsSelector `protobuf:"bytes,5,opt,name=with_vectors,json=withVectors,proto3,oneof" json:"with_vectors,omitempty"` // Options for specifying which vectors to include into response ReadConsistency *ReadConsistency `protobuf:"bytes,6,opt,name=read_consistency,json=readConsistency,proto3,oneof" json:"read_consistency,omitempty"` // Options for specifying read consistency guarantees ShardKeySelector *ShardKeySelector `protobuf:"bytes,7,opt,name=shard_key_selector,json=shardKeySelector,proto3,oneof" json:"shard_key_selector,omitempty"` // Specify in which shards to look for the points, if not specified - look in all shards + Timeout *uint64 `protobuf:"varint,8,opt,name=timeout,proto3,oneof" json:"timeout,omitempty"` // If set, overrides global timeout setting for this request. Unit is seconds. } func (x *GetPoints) Reset() { @@ -1244,6 +1299,13 @@ func (x *GetPoints) GetShardKeySelector() *ShardKeySelector { return nil } +func (x *GetPoints) GetTimeout() uint64 { + if x != nil && x.Timeout != nil { + return *x.Timeout + } + return 0 +} + type UpdatePointVectors struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3117,6 +3179,7 @@ type ScrollPoints struct { ReadConsistency *ReadConsistency `protobuf:"bytes,8,opt,name=read_consistency,json=readConsistency,proto3,oneof" json:"read_consistency,omitempty"` // Options for specifying read consistency guarantees ShardKeySelector *ShardKeySelector `protobuf:"bytes,9,opt,name=shard_key_selector,json=shardKeySelector,proto3,oneof" json:"shard_key_selector,omitempty"` // Specify in which shards to look for the points, if not specified - look in all shards OrderBy *OrderBy `protobuf:"bytes,10,opt,name=order_by,json=orderBy,proto3,oneof" json:"order_by,omitempty"` // Order the records by a payload field + Timeout *uint64 `protobuf:"varint,11,opt,name=timeout,proto3,oneof" json:"timeout,omitempty"` // If set, overrides global timeout setting for this request. Unit is seconds. } func (x *ScrollPoints) Reset() { @@ -3214,6 +3277,13 @@ func (x *ScrollPoints) GetOrderBy() *OrderBy { return nil } +func (x *ScrollPoints) GetTimeout() uint64 { + if x != nil && x.Timeout != nil { + return *x.Timeout + } + return 0 +} + type LookupLocation struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4165,6 +4235,7 @@ type CountPoints struct { Exact *bool `protobuf:"varint,3,opt,name=exact,proto3,oneof" json:"exact,omitempty"` // If `true` - return exact count, if `false` - return approximate count ReadConsistency *ReadConsistency `protobuf:"bytes,4,opt,name=read_consistency,json=readConsistency,proto3,oneof" json:"read_consistency,omitempty"` // Options for specifying read consistency guarantees ShardKeySelector *ShardKeySelector `protobuf:"bytes,5,opt,name=shard_key_selector,json=shardKeySelector,proto3,oneof" json:"shard_key_selector,omitempty"` // Specify in which shards to look for the points, if not specified - look in all shards + Timeout *uint64 `protobuf:"varint,6,opt,name=timeout,proto3,oneof" json:"timeout,omitempty"` // If set, overrides global timeout setting for this request. Unit is seconds. } func (x *CountPoints) Reset() { @@ -4234,6 +4305,13 @@ func (x *CountPoints) GetShardKeySelector() *ShardKeySelector { return nil } +func (x *CountPoints) GetTimeout() uint64 { + if x != nil && x.Timeout != nil { + return *x.Timeout + } + return 0 +} + type RecommendInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4467,6 +4545,7 @@ type Query struct { // *Query_Context // *Query_OrderBy // *Query_Fusion + // *Query_Sample Variant isQuery_Variant `protobuf_oneof:"variant"` } @@ -4551,6 +4630,13 @@ func (x *Query) GetFusion() Fusion { return Fusion_RRF } +func (x *Query) GetSample() Sample { + if x, ok := x.GetVariant().(*Query_Sample); ok { + return x.Sample + } + return Sample_Random +} + type isQuery_Variant interface { isQuery_Variant() } @@ -4579,6 +4665,10 @@ type Query_Fusion struct { Fusion Fusion `protobuf:"varint,6,opt,name=fusion,proto3,enum=qdrant.Fusion,oneof"` // Fuse the results of multiple prefetches. } +type Query_Sample struct { + Sample Sample `protobuf:"varint,7,opt,name=sample,proto3,enum=qdrant.Sample,oneof"` // Sample points from the collection. +} + func (*Query_Nearest) isQuery_Variant() {} func (*Query_Recommend) isQuery_Variant() {} @@ -4591,6 +4681,8 @@ func (*Query_OrderBy) isQuery_Variant() {} func (*Query_Fusion) isQuery_Variant() {} +func (*Query_Sample) isQuery_Variant() {} + type PrefetchQuery struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4924,28 +5016,32 @@ func (x *QueryBatchPoints) GetTimeout() uint64 { return 0 } -type PointsUpdateOperation struct { +type QueryPointGroups struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Types that are assignable to Operation: - // - // *PointsUpdateOperation_Upsert - // *PointsUpdateOperation_DeleteDeprecated - // *PointsUpdateOperation_SetPayload_ - // *PointsUpdateOperation_OverwritePayload_ - // *PointsUpdateOperation_DeletePayload_ - // *PointsUpdateOperation_ClearPayloadDeprecated - // *PointsUpdateOperation_UpdateVectors_ - // *PointsUpdateOperation_DeleteVectors_ - // *PointsUpdateOperation_DeletePoints_ - // *PointsUpdateOperation_ClearPayload_ - Operation isPointsUpdateOperation_Operation `protobuf_oneof:"operation"` + CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // Name of the collection + Prefetch []*PrefetchQuery `protobuf:"bytes,2,rep,name=prefetch,proto3" json:"prefetch,omitempty"` // Sub-requests to perform first. If present, the query will be performed on the results of the prefetches. + Query *Query `protobuf:"bytes,3,opt,name=query,proto3,oneof" json:"query,omitempty"` // Query to perform. If missing, returns points ordered by their IDs. + Using *string `protobuf:"bytes,4,opt,name=using,proto3,oneof" json:"using,omitempty"` // Define which vector to use for querying. If missing, the default vector is used. + Filter *Filter `protobuf:"bytes,5,opt,name=filter,proto3,oneof" json:"filter,omitempty"` // Filter conditions - return only those points that satisfy the specified conditions. + Params *SearchParams `protobuf:"bytes,6,opt,name=params,proto3,oneof" json:"params,omitempty"` // Search params for when there is no prefetch. + ScoreThreshold *float32 `protobuf:"fixed32,7,opt,name=score_threshold,json=scoreThreshold,proto3,oneof" json:"score_threshold,omitempty"` // Return points with scores better than this threshold. + WithPayload *WithPayloadSelector `protobuf:"bytes,8,opt,name=with_payload,json=withPayload,proto3" json:"with_payload,omitempty"` // Options for specifying which payload to include or not + WithVectors *WithVectorsSelector `protobuf:"bytes,9,opt,name=with_vectors,json=withVectors,proto3,oneof" json:"with_vectors,omitempty"` // Options for specifying which vectors to include into response + LookupFrom *LookupLocation `protobuf:"bytes,10,opt,name=lookup_from,json=lookupFrom,proto3,oneof" json:"lookup_from,omitempty"` // The location to use for IDs lookup, if not specified - use the current collection and the 'using' vector + Limit *uint64 `protobuf:"varint,11,opt,name=limit,proto3,oneof" json:"limit,omitempty"` // Max number of points. Default is 3. + GroupSize *uint64 `protobuf:"varint,12,opt,name=group_size,json=groupSize,proto3,oneof" json:"group_size,omitempty"` // Maximum amount of points to return per group. Default to 10. + GroupBy string `protobuf:"bytes,13,opt,name=group_by,json=groupBy,proto3" json:"group_by,omitempty"` // Payload field to group by, must be a string or number field. If there are multiple values for the field, all of them will be used. One point can be in multiple groups. + ReadConsistency *ReadConsistency `protobuf:"bytes,14,opt,name=read_consistency,json=readConsistency,proto3,oneof" json:"read_consistency,omitempty"` // Options for specifying read consistency guarantees + WithLookup *WithLookup `protobuf:"bytes,15,opt,name=with_lookup,json=withLookup,proto3,oneof" json:"with_lookup,omitempty"` // Options for specifying how to use the group id to lookup points in another collection + Timeout *uint64 `protobuf:"varint,16,opt,name=timeout,proto3,oneof" json:"timeout,omitempty"` // If set, overrides global timeout setting for this request. Unit is seconds. + ShardKeySelector *ShardKeySelector `protobuf:"bytes,17,opt,name=shard_key_selector,json=shardKeySelector,proto3,oneof" json:"shard_key_selector,omitempty"` // Specify in which shards to look for the points, if not specified - look in all shards } -func (x *PointsUpdateOperation) Reset() { - *x = PointsUpdateOperation{} +func (x *QueryPointGroups) Reset() { + *x = QueryPointGroups{} if protoimpl.UnsafeEnabled { mi := &file_points_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4953,13 +5049,13 @@ func (x *PointsUpdateOperation) Reset() { } } -func (x *PointsUpdateOperation) String() string { +func (x *QueryPointGroups) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PointsUpdateOperation) ProtoMessage() {} +func (*QueryPointGroups) ProtoMessage() {} -func (x *PointsUpdateOperation) ProtoReflect() protoreflect.Message { +func (x *QueryPointGroups) ProtoReflect() protoreflect.Message { mi := &file_points_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -4971,169 +5067,143 @@ func (x *PointsUpdateOperation) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PointsUpdateOperation.ProtoReflect.Descriptor instead. -func (*PointsUpdateOperation) Descriptor() ([]byte, []int) { +// Deprecated: Use QueryPointGroups.ProtoReflect.Descriptor instead. +func (*QueryPointGroups) Descriptor() ([]byte, []int) { return file_points_proto_rawDescGZIP(), []int{55} } -func (m *PointsUpdateOperation) GetOperation() isPointsUpdateOperation_Operation { - if m != nil { - return m.Operation +func (x *QueryPointGroups) GetCollectionName() string { + if x != nil { + return x.CollectionName } - return nil + return "" } -func (x *PointsUpdateOperation) GetUpsert() *PointsUpdateOperation_PointStructList { - if x, ok := x.GetOperation().(*PointsUpdateOperation_Upsert); ok { - return x.Upsert +func (x *QueryPointGroups) GetPrefetch() []*PrefetchQuery { + if x != nil { + return x.Prefetch } return nil } -// Deprecated: Do not use. -func (x *PointsUpdateOperation) GetDeleteDeprecated() *PointsSelector { - if x, ok := x.GetOperation().(*PointsUpdateOperation_DeleteDeprecated); ok { - return x.DeleteDeprecated +func (x *QueryPointGroups) GetQuery() *Query { + if x != nil { + return x.Query } return nil } -func (x *PointsUpdateOperation) GetSetPayload() *PointsUpdateOperation_SetPayload { - if x, ok := x.GetOperation().(*PointsUpdateOperation_SetPayload_); ok { - return x.SetPayload +func (x *QueryPointGroups) GetUsing() string { + if x != nil && x.Using != nil { + return *x.Using } - return nil + return "" } -func (x *PointsUpdateOperation) GetOverwritePayload() *PointsUpdateOperation_OverwritePayload { - if x, ok := x.GetOperation().(*PointsUpdateOperation_OverwritePayload_); ok { - return x.OverwritePayload +func (x *QueryPointGroups) GetFilter() *Filter { + if x != nil { + return x.Filter } return nil } -func (x *PointsUpdateOperation) GetDeletePayload() *PointsUpdateOperation_DeletePayload { - if x, ok := x.GetOperation().(*PointsUpdateOperation_DeletePayload_); ok { - return x.DeletePayload +func (x *QueryPointGroups) GetParams() *SearchParams { + if x != nil { + return x.Params } return nil } -// Deprecated: Do not use. -func (x *PointsUpdateOperation) GetClearPayloadDeprecated() *PointsSelector { - if x, ok := x.GetOperation().(*PointsUpdateOperation_ClearPayloadDeprecated); ok { - return x.ClearPayloadDeprecated +func (x *QueryPointGroups) GetScoreThreshold() float32 { + if x != nil && x.ScoreThreshold != nil { + return *x.ScoreThreshold } - return nil + return 0 } -func (x *PointsUpdateOperation) GetUpdateVectors() *PointsUpdateOperation_UpdateVectors { - if x, ok := x.GetOperation().(*PointsUpdateOperation_UpdateVectors_); ok { - return x.UpdateVectors +func (x *QueryPointGroups) GetWithPayload() *WithPayloadSelector { + if x != nil { + return x.WithPayload } return nil } -func (x *PointsUpdateOperation) GetDeleteVectors() *PointsUpdateOperation_DeleteVectors { - if x, ok := x.GetOperation().(*PointsUpdateOperation_DeleteVectors_); ok { - return x.DeleteVectors +func (x *QueryPointGroups) GetWithVectors() *WithVectorsSelector { + if x != nil { + return x.WithVectors } return nil } -func (x *PointsUpdateOperation) GetDeletePoints() *PointsUpdateOperation_DeletePoints { - if x, ok := x.GetOperation().(*PointsUpdateOperation_DeletePoints_); ok { - return x.DeletePoints +func (x *QueryPointGroups) GetLookupFrom() *LookupLocation { + if x != nil { + return x.LookupFrom } return nil } -func (x *PointsUpdateOperation) GetClearPayload() *PointsUpdateOperation_ClearPayload { - if x, ok := x.GetOperation().(*PointsUpdateOperation_ClearPayload_); ok { - return x.ClearPayload +func (x *QueryPointGroups) GetLimit() uint64 { + if x != nil && x.Limit != nil { + return *x.Limit } - return nil -} - -type isPointsUpdateOperation_Operation interface { - isPointsUpdateOperation_Operation() -} - -type PointsUpdateOperation_Upsert struct { - Upsert *PointsUpdateOperation_PointStructList `protobuf:"bytes,1,opt,name=upsert,proto3,oneof"` -} - -type PointsUpdateOperation_DeleteDeprecated struct { - // Deprecated: Do not use. - DeleteDeprecated *PointsSelector `protobuf:"bytes,2,opt,name=delete_deprecated,json=deleteDeprecated,proto3,oneof"` -} - -type PointsUpdateOperation_SetPayload_ struct { - SetPayload *PointsUpdateOperation_SetPayload `protobuf:"bytes,3,opt,name=set_payload,json=setPayload,proto3,oneof"` -} - -type PointsUpdateOperation_OverwritePayload_ struct { - OverwritePayload *PointsUpdateOperation_OverwritePayload `protobuf:"bytes,4,opt,name=overwrite_payload,json=overwritePayload,proto3,oneof"` + return 0 } -type PointsUpdateOperation_DeletePayload_ struct { - DeletePayload *PointsUpdateOperation_DeletePayload `protobuf:"bytes,5,opt,name=delete_payload,json=deletePayload,proto3,oneof"` +func (x *QueryPointGroups) GetGroupSize() uint64 { + if x != nil && x.GroupSize != nil { + return *x.GroupSize + } + return 0 } -type PointsUpdateOperation_ClearPayloadDeprecated struct { - // Deprecated: Do not use. - ClearPayloadDeprecated *PointsSelector `protobuf:"bytes,6,opt,name=clear_payload_deprecated,json=clearPayloadDeprecated,proto3,oneof"` +func (x *QueryPointGroups) GetGroupBy() string { + if x != nil { + return x.GroupBy + } + return "" } -type PointsUpdateOperation_UpdateVectors_ struct { - UpdateVectors *PointsUpdateOperation_UpdateVectors `protobuf:"bytes,7,opt,name=update_vectors,json=updateVectors,proto3,oneof"` +func (x *QueryPointGroups) GetReadConsistency() *ReadConsistency { + if x != nil { + return x.ReadConsistency + } + return nil } -type PointsUpdateOperation_DeleteVectors_ struct { - DeleteVectors *PointsUpdateOperation_DeleteVectors `protobuf:"bytes,8,opt,name=delete_vectors,json=deleteVectors,proto3,oneof"` +func (x *QueryPointGroups) GetWithLookup() *WithLookup { + if x != nil { + return x.WithLookup + } + return nil } -type PointsUpdateOperation_DeletePoints_ struct { - DeletePoints *PointsUpdateOperation_DeletePoints `protobuf:"bytes,9,opt,name=delete_points,json=deletePoints,proto3,oneof"` +func (x *QueryPointGroups) GetTimeout() uint64 { + if x != nil && x.Timeout != nil { + return *x.Timeout + } + return 0 } -type PointsUpdateOperation_ClearPayload_ struct { - ClearPayload *PointsUpdateOperation_ClearPayload `protobuf:"bytes,10,opt,name=clear_payload,json=clearPayload,proto3,oneof"` +func (x *QueryPointGroups) GetShardKeySelector() *ShardKeySelector { + if x != nil { + return x.ShardKeySelector + } + return nil } -func (*PointsUpdateOperation_Upsert) isPointsUpdateOperation_Operation() {} - -func (*PointsUpdateOperation_DeleteDeprecated) isPointsUpdateOperation_Operation() {} - -func (*PointsUpdateOperation_SetPayload_) isPointsUpdateOperation_Operation() {} - -func (*PointsUpdateOperation_OverwritePayload_) isPointsUpdateOperation_Operation() {} - -func (*PointsUpdateOperation_DeletePayload_) isPointsUpdateOperation_Operation() {} - -func (*PointsUpdateOperation_ClearPayloadDeprecated) isPointsUpdateOperation_Operation() {} - -func (*PointsUpdateOperation_UpdateVectors_) isPointsUpdateOperation_Operation() {} - -func (*PointsUpdateOperation_DeleteVectors_) isPointsUpdateOperation_Operation() {} - -func (*PointsUpdateOperation_DeletePoints_) isPointsUpdateOperation_Operation() {} - -func (*PointsUpdateOperation_ClearPayload_) isPointsUpdateOperation_Operation() {} - -type UpdateBatchPoints struct { +type FacetValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // name of the collection - Wait *bool `protobuf:"varint,2,opt,name=wait,proto3,oneof" json:"wait,omitempty"` // Wait until the changes have been applied? - Operations []*PointsUpdateOperation `protobuf:"bytes,3,rep,name=operations,proto3" json:"operations,omitempty"` - Ordering *WriteOrdering `protobuf:"bytes,4,opt,name=ordering,proto3,oneof" json:"ordering,omitempty"` // Write ordering guarantees + // Types that are assignable to Variant: + // + // *FacetValue_StringValue + Variant isFacetValue_Variant `protobuf_oneof:"variant"` } -func (x *UpdateBatchPoints) Reset() { - *x = UpdateBatchPoints{} +func (x *FacetValue) Reset() { + *x = FacetValue{} if protoimpl.UnsafeEnabled { mi := &file_points_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5141,13 +5211,13 @@ func (x *UpdateBatchPoints) Reset() { } } -func (x *UpdateBatchPoints) String() string { +func (x *FacetValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UpdateBatchPoints) ProtoMessage() {} +func (*FacetValue) ProtoMessage() {} -func (x *UpdateBatchPoints) ProtoReflect() protoreflect.Message { +func (x *FacetValue) ProtoReflect() protoreflect.Message { mi := &file_points_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -5159,26 +5229,345 @@ func (x *UpdateBatchPoints) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UpdateBatchPoints.ProtoReflect.Descriptor instead. -func (*UpdateBatchPoints) Descriptor() ([]byte, []int) { +// Deprecated: Use FacetValue.ProtoReflect.Descriptor instead. +func (*FacetValue) Descriptor() ([]byte, []int) { return file_points_proto_rawDescGZIP(), []int{56} } -func (x *UpdateBatchPoints) GetCollectionName() string { - if x != nil { - return x.CollectionName +func (m *FacetValue) GetVariant() isFacetValue_Variant { + if m != nil { + return m.Variant } - return "" + return nil } -func (x *UpdateBatchPoints) GetWait() bool { - if x != nil && x.Wait != nil { - return *x.Wait +func (x *FacetValue) GetStringValue() string { + if x, ok := x.GetVariant().(*FacetValue_StringValue); ok { + return x.StringValue } - return false + return "" } -func (x *UpdateBatchPoints) GetOperations() []*PointsUpdateOperation { +type isFacetValue_Variant interface { + isFacetValue_Variant() +} + +type FacetValue_StringValue struct { + StringValue string `protobuf:"bytes,1,opt,name=string_value,json=stringValue,proto3,oneof"` // String value from the facet +} + +func (*FacetValue_StringValue) isFacetValue_Variant() {} + +type FacetValueHit struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Value *FacetValue `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` // Value from the facet + Count uint64 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` // Number of points with this value +} + +func (x *FacetValueHit) Reset() { + *x = FacetValueHit{} + if protoimpl.UnsafeEnabled { + mi := &file_points_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FacetValueHit) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FacetValueHit) ProtoMessage() {} + +func (x *FacetValueHit) ProtoReflect() protoreflect.Message { + mi := &file_points_proto_msgTypes[57] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FacetValueHit.ProtoReflect.Descriptor instead. +func (*FacetValueHit) Descriptor() ([]byte, []int) { + return file_points_proto_rawDescGZIP(), []int{57} +} + +func (x *FacetValueHit) GetValue() *FacetValue { + if x != nil { + return x.Value + } + return nil +} + +func (x *FacetValueHit) GetCount() uint64 { + if x != nil { + return x.Count + } + return 0 +} + +type PointsUpdateOperation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Operation: + // + // *PointsUpdateOperation_Upsert + // *PointsUpdateOperation_DeleteDeprecated + // *PointsUpdateOperation_SetPayload_ + // *PointsUpdateOperation_OverwritePayload_ + // *PointsUpdateOperation_DeletePayload_ + // *PointsUpdateOperation_ClearPayloadDeprecated + // *PointsUpdateOperation_UpdateVectors_ + // *PointsUpdateOperation_DeleteVectors_ + // *PointsUpdateOperation_DeletePoints_ + // *PointsUpdateOperation_ClearPayload_ + Operation isPointsUpdateOperation_Operation `protobuf_oneof:"operation"` +} + +func (x *PointsUpdateOperation) Reset() { + *x = PointsUpdateOperation{} + if protoimpl.UnsafeEnabled { + mi := &file_points_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PointsUpdateOperation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PointsUpdateOperation) ProtoMessage() {} + +func (x *PointsUpdateOperation) ProtoReflect() protoreflect.Message { + mi := &file_points_proto_msgTypes[58] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PointsUpdateOperation.ProtoReflect.Descriptor instead. +func (*PointsUpdateOperation) Descriptor() ([]byte, []int) { + return file_points_proto_rawDescGZIP(), []int{58} +} + +func (m *PointsUpdateOperation) GetOperation() isPointsUpdateOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (x *PointsUpdateOperation) GetUpsert() *PointsUpdateOperation_PointStructList { + if x, ok := x.GetOperation().(*PointsUpdateOperation_Upsert); ok { + return x.Upsert + } + return nil +} + +// Deprecated: Do not use. +func (x *PointsUpdateOperation) GetDeleteDeprecated() *PointsSelector { + if x, ok := x.GetOperation().(*PointsUpdateOperation_DeleteDeprecated); ok { + return x.DeleteDeprecated + } + return nil +} + +func (x *PointsUpdateOperation) GetSetPayload() *PointsUpdateOperation_SetPayload { + if x, ok := x.GetOperation().(*PointsUpdateOperation_SetPayload_); ok { + return x.SetPayload + } + return nil +} + +func (x *PointsUpdateOperation) GetOverwritePayload() *PointsUpdateOperation_OverwritePayload { + if x, ok := x.GetOperation().(*PointsUpdateOperation_OverwritePayload_); ok { + return x.OverwritePayload + } + return nil +} + +func (x *PointsUpdateOperation) GetDeletePayload() *PointsUpdateOperation_DeletePayload { + if x, ok := x.GetOperation().(*PointsUpdateOperation_DeletePayload_); ok { + return x.DeletePayload + } + return nil +} + +// Deprecated: Do not use. +func (x *PointsUpdateOperation) GetClearPayloadDeprecated() *PointsSelector { + if x, ok := x.GetOperation().(*PointsUpdateOperation_ClearPayloadDeprecated); ok { + return x.ClearPayloadDeprecated + } + return nil +} + +func (x *PointsUpdateOperation) GetUpdateVectors() *PointsUpdateOperation_UpdateVectors { + if x, ok := x.GetOperation().(*PointsUpdateOperation_UpdateVectors_); ok { + return x.UpdateVectors + } + return nil +} + +func (x *PointsUpdateOperation) GetDeleteVectors() *PointsUpdateOperation_DeleteVectors { + if x, ok := x.GetOperation().(*PointsUpdateOperation_DeleteVectors_); ok { + return x.DeleteVectors + } + return nil +} + +func (x *PointsUpdateOperation) GetDeletePoints() *PointsUpdateOperation_DeletePoints { + if x, ok := x.GetOperation().(*PointsUpdateOperation_DeletePoints_); ok { + return x.DeletePoints + } + return nil +} + +func (x *PointsUpdateOperation) GetClearPayload() *PointsUpdateOperation_ClearPayload { + if x, ok := x.GetOperation().(*PointsUpdateOperation_ClearPayload_); ok { + return x.ClearPayload + } + return nil +} + +type isPointsUpdateOperation_Operation interface { + isPointsUpdateOperation_Operation() +} + +type PointsUpdateOperation_Upsert struct { + Upsert *PointsUpdateOperation_PointStructList `protobuf:"bytes,1,opt,name=upsert,proto3,oneof"` +} + +type PointsUpdateOperation_DeleteDeprecated struct { + // Deprecated: Do not use. + DeleteDeprecated *PointsSelector `protobuf:"bytes,2,opt,name=delete_deprecated,json=deleteDeprecated,proto3,oneof"` +} + +type PointsUpdateOperation_SetPayload_ struct { + SetPayload *PointsUpdateOperation_SetPayload `protobuf:"bytes,3,opt,name=set_payload,json=setPayload,proto3,oneof"` +} + +type PointsUpdateOperation_OverwritePayload_ struct { + OverwritePayload *PointsUpdateOperation_OverwritePayload `protobuf:"bytes,4,opt,name=overwrite_payload,json=overwritePayload,proto3,oneof"` +} + +type PointsUpdateOperation_DeletePayload_ struct { + DeletePayload *PointsUpdateOperation_DeletePayload `protobuf:"bytes,5,opt,name=delete_payload,json=deletePayload,proto3,oneof"` +} + +type PointsUpdateOperation_ClearPayloadDeprecated struct { + // Deprecated: Do not use. + ClearPayloadDeprecated *PointsSelector `protobuf:"bytes,6,opt,name=clear_payload_deprecated,json=clearPayloadDeprecated,proto3,oneof"` +} + +type PointsUpdateOperation_UpdateVectors_ struct { + UpdateVectors *PointsUpdateOperation_UpdateVectors `protobuf:"bytes,7,opt,name=update_vectors,json=updateVectors,proto3,oneof"` +} + +type PointsUpdateOperation_DeleteVectors_ struct { + DeleteVectors *PointsUpdateOperation_DeleteVectors `protobuf:"bytes,8,opt,name=delete_vectors,json=deleteVectors,proto3,oneof"` +} + +type PointsUpdateOperation_DeletePoints_ struct { + DeletePoints *PointsUpdateOperation_DeletePoints `protobuf:"bytes,9,opt,name=delete_points,json=deletePoints,proto3,oneof"` +} + +type PointsUpdateOperation_ClearPayload_ struct { + ClearPayload *PointsUpdateOperation_ClearPayload `protobuf:"bytes,10,opt,name=clear_payload,json=clearPayload,proto3,oneof"` +} + +func (*PointsUpdateOperation_Upsert) isPointsUpdateOperation_Operation() {} + +func (*PointsUpdateOperation_DeleteDeprecated) isPointsUpdateOperation_Operation() {} + +func (*PointsUpdateOperation_SetPayload_) isPointsUpdateOperation_Operation() {} + +func (*PointsUpdateOperation_OverwritePayload_) isPointsUpdateOperation_Operation() {} + +func (*PointsUpdateOperation_DeletePayload_) isPointsUpdateOperation_Operation() {} + +func (*PointsUpdateOperation_ClearPayloadDeprecated) isPointsUpdateOperation_Operation() {} + +func (*PointsUpdateOperation_UpdateVectors_) isPointsUpdateOperation_Operation() {} + +func (*PointsUpdateOperation_DeleteVectors_) isPointsUpdateOperation_Operation() {} + +func (*PointsUpdateOperation_DeletePoints_) isPointsUpdateOperation_Operation() {} + +func (*PointsUpdateOperation_ClearPayload_) isPointsUpdateOperation_Operation() {} + +type UpdateBatchPoints struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // name of the collection + Wait *bool `protobuf:"varint,2,opt,name=wait,proto3,oneof" json:"wait,omitempty"` // Wait until the changes have been applied? + Operations []*PointsUpdateOperation `protobuf:"bytes,3,rep,name=operations,proto3" json:"operations,omitempty"` + Ordering *WriteOrdering `protobuf:"bytes,4,opt,name=ordering,proto3,oneof" json:"ordering,omitempty"` // Write ordering guarantees +} + +func (x *UpdateBatchPoints) Reset() { + *x = UpdateBatchPoints{} + if protoimpl.UnsafeEnabled { + mi := &file_points_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateBatchPoints) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateBatchPoints) ProtoMessage() {} + +func (x *UpdateBatchPoints) ProtoReflect() protoreflect.Message { + mi := &file_points_proto_msgTypes[59] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateBatchPoints.ProtoReflect.Descriptor instead. +func (*UpdateBatchPoints) Descriptor() ([]byte, []int) { + return file_points_proto_rawDescGZIP(), []int{59} +} + +func (x *UpdateBatchPoints) GetCollectionName() string { + if x != nil { + return x.CollectionName + } + return "" +} + +func (x *UpdateBatchPoints) GetWait() bool { + if x != nil && x.Wait != nil { + return *x.Wait + } + return false +} + +func (x *UpdateBatchPoints) GetOperations() []*PointsUpdateOperation { if x != nil { return x.Operations } @@ -5204,7 +5593,7 @@ type PointsOperationResponse struct { func (x *PointsOperationResponse) Reset() { *x = PointsOperationResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[57] + mi := &file_points_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5217,7 +5606,7 @@ func (x *PointsOperationResponse) String() string { func (*PointsOperationResponse) ProtoMessage() {} func (x *PointsOperationResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[57] + mi := &file_points_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5230,7 +5619,7 @@ func (x *PointsOperationResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PointsOperationResponse.ProtoReflect.Descriptor instead. func (*PointsOperationResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{57} + return file_points_proto_rawDescGZIP(), []int{60} } func (x *PointsOperationResponse) GetResult() *UpdateResult { @@ -5259,7 +5648,7 @@ type UpdateResult struct { func (x *UpdateResult) Reset() { *x = UpdateResult{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[58] + mi := &file_points_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5272,7 +5661,7 @@ func (x *UpdateResult) String() string { func (*UpdateResult) ProtoMessage() {} func (x *UpdateResult) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[58] + mi := &file_points_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5285,7 +5674,7 @@ func (x *UpdateResult) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateResult.ProtoReflect.Descriptor instead. func (*UpdateResult) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{58} + return file_points_proto_rawDescGZIP(), []int{61} } func (x *UpdateResult) GetOperationId() uint64 { @@ -5317,7 +5706,7 @@ type OrderValue struct { func (x *OrderValue) Reset() { *x = OrderValue{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[59] + mi := &file_points_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5330,7 +5719,7 @@ func (x *OrderValue) String() string { func (*OrderValue) ProtoMessage() {} func (x *OrderValue) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[59] + mi := &file_points_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5343,7 +5732,7 @@ func (x *OrderValue) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderValue.ProtoReflect.Descriptor instead. func (*OrderValue) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{59} + return file_points_proto_rawDescGZIP(), []int{62} } func (m *OrderValue) GetVariant() isOrderValue_Variant { @@ -5400,7 +5789,7 @@ type ScoredPoint struct { func (x *ScoredPoint) Reset() { *x = ScoredPoint{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[60] + mi := &file_points_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5413,7 +5802,7 @@ func (x *ScoredPoint) String() string { func (*ScoredPoint) ProtoMessage() {} func (x *ScoredPoint) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[60] + mi := &file_points_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5426,7 +5815,7 @@ func (x *ScoredPoint) ProtoReflect() protoreflect.Message { // Deprecated: Use ScoredPoint.ProtoReflect.Descriptor instead. func (*ScoredPoint) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{60} + return file_points_proto_rawDescGZIP(), []int{63} } func (x *ScoredPoint) GetId() *PointId { @@ -5494,7 +5883,7 @@ type GroupId struct { func (x *GroupId) Reset() { *x = GroupId{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[61] + mi := &file_points_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5507,7 +5896,7 @@ func (x *GroupId) String() string { func (*GroupId) ProtoMessage() {} func (x *GroupId) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[61] + mi := &file_points_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5520,7 +5909,7 @@ func (x *GroupId) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupId.ProtoReflect.Descriptor instead. func (*GroupId) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{61} + return file_points_proto_rawDescGZIP(), []int{64} } func (m *GroupId) GetKind() isGroupId_Kind { @@ -5589,7 +5978,7 @@ type PointGroup struct { func (x *PointGroup) Reset() { *x = PointGroup{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[62] + mi := &file_points_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5602,7 +5991,7 @@ func (x *PointGroup) String() string { func (*PointGroup) ProtoMessage() {} func (x *PointGroup) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[62] + mi := &file_points_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5615,7 +6004,7 @@ func (x *PointGroup) ProtoReflect() protoreflect.Message { // Deprecated: Use PointGroup.ProtoReflect.Descriptor instead. func (*PointGroup) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{62} + return file_points_proto_rawDescGZIP(), []int{65} } func (x *PointGroup) GetId() *GroupId { @@ -5650,7 +6039,7 @@ type GroupsResult struct { func (x *GroupsResult) Reset() { *x = GroupsResult{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[63] + mi := &file_points_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5663,7 +6052,7 @@ func (x *GroupsResult) String() string { func (*GroupsResult) ProtoMessage() {} func (x *GroupsResult) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[63] + mi := &file_points_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5676,7 +6065,7 @@ func (x *GroupsResult) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupsResult.ProtoReflect.Descriptor instead. func (*GroupsResult) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{63} + return file_points_proto_rawDescGZIP(), []int{66} } func (x *GroupsResult) GetGroups() []*PointGroup { @@ -5698,7 +6087,7 @@ type SearchResponse struct { func (x *SearchResponse) Reset() { *x = SearchResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[64] + mi := &file_points_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5711,7 +6100,7 @@ func (x *SearchResponse) String() string { func (*SearchResponse) ProtoMessage() {} func (x *SearchResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[64] + mi := &file_points_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5724,7 +6113,7 @@ func (x *SearchResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SearchResponse.ProtoReflect.Descriptor instead. func (*SearchResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{64} + return file_points_proto_rawDescGZIP(), []int{67} } func (x *SearchResponse) GetResult() []*ScoredPoint { @@ -5753,7 +6142,7 @@ type QueryResponse struct { func (x *QueryResponse) Reset() { *x = QueryResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[65] + mi := &file_points_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5766,7 +6155,7 @@ func (x *QueryResponse) String() string { func (*QueryResponse) ProtoMessage() {} func (x *QueryResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[65] + mi := &file_points_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5779,7 +6168,7 @@ func (x *QueryResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use QueryResponse.ProtoReflect.Descriptor instead. func (*QueryResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{65} + return file_points_proto_rawDescGZIP(), []int{68} } func (x *QueryResponse) GetResult() []*ScoredPoint { @@ -5808,7 +6197,7 @@ type QueryBatchResponse struct { func (x *QueryBatchResponse) Reset() { *x = QueryBatchResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[66] + mi := &file_points_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5821,7 +6210,7 @@ func (x *QueryBatchResponse) String() string { func (*QueryBatchResponse) ProtoMessage() {} func (x *QueryBatchResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[66] + mi := &file_points_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5834,7 +6223,7 @@ func (x *QueryBatchResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use QueryBatchResponse.ProtoReflect.Descriptor instead. func (*QueryBatchResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{66} + return file_points_proto_rawDescGZIP(), []int{69} } func (x *QueryBatchResponse) GetResult() []*BatchResult { @@ -5851,6 +6240,61 @@ func (x *QueryBatchResponse) GetTime() float64 { return 0 } +type QueryGroupsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Result *GroupsResult `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"` + Time float64 `protobuf:"fixed64,2,opt,name=time,proto3" json:"time,omitempty"` // Time spent to process +} + +func (x *QueryGroupsResponse) Reset() { + *x = QueryGroupsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_points_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryGroupsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryGroupsResponse) ProtoMessage() {} + +func (x *QueryGroupsResponse) ProtoReflect() protoreflect.Message { + mi := &file_points_proto_msgTypes[70] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use QueryGroupsResponse.ProtoReflect.Descriptor instead. +func (*QueryGroupsResponse) Descriptor() ([]byte, []int) { + return file_points_proto_rawDescGZIP(), []int{70} +} + +func (x *QueryGroupsResponse) GetResult() *GroupsResult { + if x != nil { + return x.Result + } + return nil +} + +func (x *QueryGroupsResponse) GetTime() float64 { + if x != nil { + return x.Time + } + return 0 +} + type BatchResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -5862,7 +6306,7 @@ type BatchResult struct { func (x *BatchResult) Reset() { *x = BatchResult{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[67] + mi := &file_points_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5875,7 +6319,7 @@ func (x *BatchResult) String() string { func (*BatchResult) ProtoMessage() {} func (x *BatchResult) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[67] + mi := &file_points_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5888,7 +6332,7 @@ func (x *BatchResult) ProtoReflect() protoreflect.Message { // Deprecated: Use BatchResult.ProtoReflect.Descriptor instead. func (*BatchResult) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{67} + return file_points_proto_rawDescGZIP(), []int{71} } func (x *BatchResult) GetResult() []*ScoredPoint { @@ -5910,7 +6354,7 @@ type SearchBatchResponse struct { func (x *SearchBatchResponse) Reset() { *x = SearchBatchResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[68] + mi := &file_points_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5923,7 +6367,7 @@ func (x *SearchBatchResponse) String() string { func (*SearchBatchResponse) ProtoMessage() {} func (x *SearchBatchResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[68] + mi := &file_points_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5936,7 +6380,7 @@ func (x *SearchBatchResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SearchBatchResponse.ProtoReflect.Descriptor instead. func (*SearchBatchResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{68} + return file_points_proto_rawDescGZIP(), []int{72} } func (x *SearchBatchResponse) GetResult() []*BatchResult { @@ -5965,7 +6409,7 @@ type SearchGroupsResponse struct { func (x *SearchGroupsResponse) Reset() { *x = SearchGroupsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[69] + mi := &file_points_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5978,7 +6422,7 @@ func (x *SearchGroupsResponse) String() string { func (*SearchGroupsResponse) ProtoMessage() {} func (x *SearchGroupsResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[69] + mi := &file_points_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5991,7 +6435,7 @@ func (x *SearchGroupsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SearchGroupsResponse.ProtoReflect.Descriptor instead. func (*SearchGroupsResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{69} + return file_points_proto_rawDescGZIP(), []int{73} } func (x *SearchGroupsResponse) GetResult() *GroupsResult { @@ -6020,7 +6464,7 @@ type CountResponse struct { func (x *CountResponse) Reset() { *x = CountResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[70] + mi := &file_points_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6033,7 +6477,7 @@ func (x *CountResponse) String() string { func (*CountResponse) ProtoMessage() {} func (x *CountResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[70] + mi := &file_points_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6046,7 +6490,7 @@ func (x *CountResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CountResponse.ProtoReflect.Descriptor instead. func (*CountResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{70} + return file_points_proto_rawDescGZIP(), []int{74} } func (x *CountResponse) GetResult() *CountResult { @@ -6076,7 +6520,7 @@ type ScrollResponse struct { func (x *ScrollResponse) Reset() { *x = ScrollResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[71] + mi := &file_points_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6089,7 +6533,7 @@ func (x *ScrollResponse) String() string { func (*ScrollResponse) ProtoMessage() {} func (x *ScrollResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[71] + mi := &file_points_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6102,7 +6546,7 @@ func (x *ScrollResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ScrollResponse.ProtoReflect.Descriptor instead. func (*ScrollResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{71} + return file_points_proto_rawDescGZIP(), []int{75} } func (x *ScrollResponse) GetNextPageOffset() *PointId { @@ -6137,7 +6581,7 @@ type CountResult struct { func (x *CountResult) Reset() { *x = CountResult{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[72] + mi := &file_points_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6150,7 +6594,7 @@ func (x *CountResult) String() string { func (*CountResult) ProtoMessage() {} func (x *CountResult) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[72] + mi := &file_points_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6163,7 +6607,7 @@ func (x *CountResult) ProtoReflect() protoreflect.Message { // Deprecated: Use CountResult.ProtoReflect.Descriptor instead. func (*CountResult) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{72} + return file_points_proto_rawDescGZIP(), []int{76} } func (x *CountResult) GetCount() uint64 { @@ -6188,7 +6632,7 @@ type RetrievedPoint struct { func (x *RetrievedPoint) Reset() { *x = RetrievedPoint{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[73] + mi := &file_points_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6201,7 +6645,7 @@ func (x *RetrievedPoint) String() string { func (*RetrievedPoint) ProtoMessage() {} func (x *RetrievedPoint) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[73] + mi := &file_points_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6214,7 +6658,7 @@ func (x *RetrievedPoint) ProtoReflect() protoreflect.Message { // Deprecated: Use RetrievedPoint.ProtoReflect.Descriptor instead. func (*RetrievedPoint) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{73} + return file_points_proto_rawDescGZIP(), []int{77} } func (x *RetrievedPoint) GetId() *PointId { @@ -6264,7 +6708,7 @@ type GetResponse struct { func (x *GetResponse) Reset() { *x = GetResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[74] + mi := &file_points_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6277,7 +6721,7 @@ func (x *GetResponse) String() string { func (*GetResponse) ProtoMessage() {} func (x *GetResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[74] + mi := &file_points_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6290,7 +6734,7 @@ func (x *GetResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetResponse.ProtoReflect.Descriptor instead. func (*GetResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{74} + return file_points_proto_rawDescGZIP(), []int{78} } func (x *GetResponse) GetResult() []*RetrievedPoint { @@ -6319,7 +6763,7 @@ type RecommendResponse struct { func (x *RecommendResponse) Reset() { *x = RecommendResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[75] + mi := &file_points_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6332,7 +6776,7 @@ func (x *RecommendResponse) String() string { func (*RecommendResponse) ProtoMessage() {} func (x *RecommendResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[75] + mi := &file_points_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6345,7 +6789,7 @@ func (x *RecommendResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RecommendResponse.ProtoReflect.Descriptor instead. func (*RecommendResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{75} + return file_points_proto_rawDescGZIP(), []int{79} } func (x *RecommendResponse) GetResult() []*ScoredPoint { @@ -6374,7 +6818,7 @@ type RecommendBatchResponse struct { func (x *RecommendBatchResponse) Reset() { *x = RecommendBatchResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[76] + mi := &file_points_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6387,7 +6831,7 @@ func (x *RecommendBatchResponse) String() string { func (*RecommendBatchResponse) ProtoMessage() {} func (x *RecommendBatchResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[76] + mi := &file_points_proto_msgTypes[80] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6400,7 +6844,7 @@ func (x *RecommendBatchResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RecommendBatchResponse.ProtoReflect.Descriptor instead. func (*RecommendBatchResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{76} + return file_points_proto_rawDescGZIP(), []int{80} } func (x *RecommendBatchResponse) GetResult() []*BatchResult { @@ -6429,7 +6873,7 @@ type DiscoverResponse struct { func (x *DiscoverResponse) Reset() { *x = DiscoverResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[77] + mi := &file_points_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6442,7 +6886,7 @@ func (x *DiscoverResponse) String() string { func (*DiscoverResponse) ProtoMessage() {} func (x *DiscoverResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[77] + mi := &file_points_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6455,7 +6899,7 @@ func (x *DiscoverResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DiscoverResponse.ProtoReflect.Descriptor instead. func (*DiscoverResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{77} + return file_points_proto_rawDescGZIP(), []int{81} } func (x *DiscoverResponse) GetResult() []*ScoredPoint { @@ -6484,7 +6928,7 @@ type DiscoverBatchResponse struct { func (x *DiscoverBatchResponse) Reset() { *x = DiscoverBatchResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[78] + mi := &file_points_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6497,7 +6941,7 @@ func (x *DiscoverBatchResponse) String() string { func (*DiscoverBatchResponse) ProtoMessage() {} func (x *DiscoverBatchResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[78] + mi := &file_points_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6510,7 +6954,7 @@ func (x *DiscoverBatchResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DiscoverBatchResponse.ProtoReflect.Descriptor instead. func (*DiscoverBatchResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{78} + return file_points_proto_rawDescGZIP(), []int{82} } func (x *DiscoverBatchResponse) GetResult() []*BatchResult { @@ -6539,7 +6983,7 @@ type RecommendGroupsResponse struct { func (x *RecommendGroupsResponse) Reset() { *x = RecommendGroupsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[79] + mi := &file_points_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6552,7 +6996,7 @@ func (x *RecommendGroupsResponse) String() string { func (*RecommendGroupsResponse) ProtoMessage() {} func (x *RecommendGroupsResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[79] + mi := &file_points_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6565,7 +7009,7 @@ func (x *RecommendGroupsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RecommendGroupsResponse.ProtoReflect.Descriptor instead. func (*RecommendGroupsResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{79} + return file_points_proto_rawDescGZIP(), []int{83} } func (x *RecommendGroupsResponse) GetResult() *GroupsResult { @@ -6594,7 +7038,7 @@ type UpdateBatchResponse struct { func (x *UpdateBatchResponse) Reset() { *x = UpdateBatchResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[80] + mi := &file_points_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6607,7 +7051,7 @@ func (x *UpdateBatchResponse) String() string { func (*UpdateBatchResponse) ProtoMessage() {} func (x *UpdateBatchResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[80] + mi := &file_points_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6620,7 +7064,7 @@ func (x *UpdateBatchResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateBatchResponse.ProtoReflect.Descriptor instead. func (*UpdateBatchResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{80} + return file_points_proto_rawDescGZIP(), []int{84} } func (x *UpdateBatchResponse) GetResult() []*UpdateResult { @@ -6651,7 +7095,7 @@ type Filter struct { func (x *Filter) Reset() { *x = Filter{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[81] + mi := &file_points_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6664,7 +7108,7 @@ func (x *Filter) String() string { func (*Filter) ProtoMessage() {} func (x *Filter) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[81] + mi := &file_points_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6677,7 +7121,7 @@ func (x *Filter) ProtoReflect() protoreflect.Message { // Deprecated: Use Filter.ProtoReflect.Descriptor instead. func (*Filter) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{81} + return file_points_proto_rawDescGZIP(), []int{85} } func (x *Filter) GetShould() []*Condition { @@ -6720,7 +7164,7 @@ type MinShould struct { func (x *MinShould) Reset() { *x = MinShould{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[82] + mi := &file_points_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6733,7 +7177,7 @@ func (x *MinShould) String() string { func (*MinShould) ProtoMessage() {} func (x *MinShould) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[82] + mi := &file_points_proto_msgTypes[86] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6746,7 +7190,7 @@ func (x *MinShould) ProtoReflect() protoreflect.Message { // Deprecated: Use MinShould.ProtoReflect.Descriptor instead. func (*MinShould) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{82} + return file_points_proto_rawDescGZIP(), []int{86} } func (x *MinShould) GetConditions() []*Condition { @@ -6782,7 +7226,7 @@ type Condition struct { func (x *Condition) Reset() { *x = Condition{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[83] + mi := &file_points_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6795,7 +7239,7 @@ func (x *Condition) String() string { func (*Condition) ProtoMessage() {} func (x *Condition) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[83] + mi := &file_points_proto_msgTypes[87] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6808,7 +7252,7 @@ func (x *Condition) ProtoReflect() protoreflect.Message { // Deprecated: Use Condition.ProtoReflect.Descriptor instead. func (*Condition) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{83} + return file_points_proto_rawDescGZIP(), []int{87} } func (m *Condition) GetConditionOneOf() isCondition_ConditionOneOf { @@ -6911,7 +7355,7 @@ type IsEmptyCondition struct { func (x *IsEmptyCondition) Reset() { *x = IsEmptyCondition{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[84] + mi := &file_points_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6924,7 +7368,7 @@ func (x *IsEmptyCondition) String() string { func (*IsEmptyCondition) ProtoMessage() {} func (x *IsEmptyCondition) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[84] + mi := &file_points_proto_msgTypes[88] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6937,7 +7381,7 @@ func (x *IsEmptyCondition) ProtoReflect() protoreflect.Message { // Deprecated: Use IsEmptyCondition.ProtoReflect.Descriptor instead. func (*IsEmptyCondition) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{84} + return file_points_proto_rawDescGZIP(), []int{88} } func (x *IsEmptyCondition) GetKey() string { @@ -6958,7 +7402,7 @@ type IsNullCondition struct { func (x *IsNullCondition) Reset() { *x = IsNullCondition{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[85] + mi := &file_points_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6971,7 +7415,7 @@ func (x *IsNullCondition) String() string { func (*IsNullCondition) ProtoMessage() {} func (x *IsNullCondition) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[85] + mi := &file_points_proto_msgTypes[89] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6984,7 +7428,7 @@ func (x *IsNullCondition) ProtoReflect() protoreflect.Message { // Deprecated: Use IsNullCondition.ProtoReflect.Descriptor instead. func (*IsNullCondition) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{85} + return file_points_proto_rawDescGZIP(), []int{89} } func (x *IsNullCondition) GetKey() string { @@ -7005,7 +7449,7 @@ type HasIdCondition struct { func (x *HasIdCondition) Reset() { *x = HasIdCondition{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[86] + mi := &file_points_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7018,7 +7462,7 @@ func (x *HasIdCondition) String() string { func (*HasIdCondition) ProtoMessage() {} func (x *HasIdCondition) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[86] + mi := &file_points_proto_msgTypes[90] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7031,7 +7475,7 @@ func (x *HasIdCondition) ProtoReflect() protoreflect.Message { // Deprecated: Use HasIdCondition.ProtoReflect.Descriptor instead. func (*HasIdCondition) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{86} + return file_points_proto_rawDescGZIP(), []int{90} } func (x *HasIdCondition) GetHasId() []*PointId { @@ -7053,7 +7497,7 @@ type NestedCondition struct { func (x *NestedCondition) Reset() { *x = NestedCondition{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[87] + mi := &file_points_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7066,7 +7510,7 @@ func (x *NestedCondition) String() string { func (*NestedCondition) ProtoMessage() {} func (x *NestedCondition) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[87] + mi := &file_points_proto_msgTypes[91] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7079,7 +7523,7 @@ func (x *NestedCondition) ProtoReflect() protoreflect.Message { // Deprecated: Use NestedCondition.ProtoReflect.Descriptor instead. func (*NestedCondition) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{87} + return file_points_proto_rawDescGZIP(), []int{91} } func (x *NestedCondition) GetKey() string { @@ -7114,7 +7558,7 @@ type FieldCondition struct { func (x *FieldCondition) Reset() { *x = FieldCondition{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[88] + mi := &file_points_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7127,7 +7571,7 @@ func (x *FieldCondition) String() string { func (*FieldCondition) ProtoMessage() {} func (x *FieldCondition) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[88] + mi := &file_points_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7140,7 +7584,7 @@ func (x *FieldCondition) ProtoReflect() protoreflect.Message { // Deprecated: Use FieldCondition.ProtoReflect.Descriptor instead. func (*FieldCondition) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{88} + return file_points_proto_rawDescGZIP(), []int{92} } func (x *FieldCondition) GetKey() string { @@ -7220,7 +7664,7 @@ type Match struct { func (x *Match) Reset() { *x = Match{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[89] + mi := &file_points_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7233,7 +7677,7 @@ func (x *Match) String() string { func (*Match) ProtoMessage() {} func (x *Match) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[89] + mi := &file_points_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7246,7 +7690,7 @@ func (x *Match) ProtoReflect() protoreflect.Message { // Deprecated: Use Match.ProtoReflect.Descriptor instead. func (*Match) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{89} + return file_points_proto_rawDescGZIP(), []int{93} } func (m *Match) GetMatchValue() isMatch_MatchValue { @@ -7375,7 +7819,7 @@ type RepeatedStrings struct { func (x *RepeatedStrings) Reset() { *x = RepeatedStrings{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[90] + mi := &file_points_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7388,7 +7832,7 @@ func (x *RepeatedStrings) String() string { func (*RepeatedStrings) ProtoMessage() {} func (x *RepeatedStrings) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[90] + mi := &file_points_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7401,7 +7845,7 @@ func (x *RepeatedStrings) ProtoReflect() protoreflect.Message { // Deprecated: Use RepeatedStrings.ProtoReflect.Descriptor instead. func (*RepeatedStrings) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{90} + return file_points_proto_rawDescGZIP(), []int{94} } func (x *RepeatedStrings) GetStrings() []string { @@ -7422,7 +7866,7 @@ type RepeatedIntegers struct { func (x *RepeatedIntegers) Reset() { *x = RepeatedIntegers{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[91] + mi := &file_points_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7435,7 +7879,7 @@ func (x *RepeatedIntegers) String() string { func (*RepeatedIntegers) ProtoMessage() {} func (x *RepeatedIntegers) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[91] + mi := &file_points_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7448,7 +7892,7 @@ func (x *RepeatedIntegers) ProtoReflect() protoreflect.Message { // Deprecated: Use RepeatedIntegers.ProtoReflect.Descriptor instead. func (*RepeatedIntegers) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{91} + return file_points_proto_rawDescGZIP(), []int{95} } func (x *RepeatedIntegers) GetIntegers() []int64 { @@ -7472,7 +7916,7 @@ type Range struct { func (x *Range) Reset() { *x = Range{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[92] + mi := &file_points_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7485,7 +7929,7 @@ func (x *Range) String() string { func (*Range) ProtoMessage() {} func (x *Range) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[92] + mi := &file_points_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7498,7 +7942,7 @@ func (x *Range) ProtoReflect() protoreflect.Message { // Deprecated: Use Range.ProtoReflect.Descriptor instead. func (*Range) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{92} + return file_points_proto_rawDescGZIP(), []int{96} } func (x *Range) GetLt() float64 { @@ -7543,7 +7987,7 @@ type DatetimeRange struct { func (x *DatetimeRange) Reset() { *x = DatetimeRange{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[93] + mi := &file_points_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7556,7 +8000,7 @@ func (x *DatetimeRange) String() string { func (*DatetimeRange) ProtoMessage() {} func (x *DatetimeRange) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[93] + mi := &file_points_proto_msgTypes[97] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7569,7 +8013,7 @@ func (x *DatetimeRange) ProtoReflect() protoreflect.Message { // Deprecated: Use DatetimeRange.ProtoReflect.Descriptor instead. func (*DatetimeRange) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{93} + return file_points_proto_rawDescGZIP(), []int{97} } func (x *DatetimeRange) GetLt() *timestamppb.Timestamp { @@ -7612,7 +8056,7 @@ type GeoBoundingBox struct { func (x *GeoBoundingBox) Reset() { *x = GeoBoundingBox{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[94] + mi := &file_points_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7625,7 +8069,7 @@ func (x *GeoBoundingBox) String() string { func (*GeoBoundingBox) ProtoMessage() {} func (x *GeoBoundingBox) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[94] + mi := &file_points_proto_msgTypes[98] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7638,7 +8082,7 @@ func (x *GeoBoundingBox) ProtoReflect() protoreflect.Message { // Deprecated: Use GeoBoundingBox.ProtoReflect.Descriptor instead. func (*GeoBoundingBox) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{94} + return file_points_proto_rawDescGZIP(), []int{98} } func (x *GeoBoundingBox) GetTopLeft() *GeoPoint { @@ -7667,7 +8111,7 @@ type GeoRadius struct { func (x *GeoRadius) Reset() { *x = GeoRadius{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[95] + mi := &file_points_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7680,7 +8124,7 @@ func (x *GeoRadius) String() string { func (*GeoRadius) ProtoMessage() {} func (x *GeoRadius) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[95] + mi := &file_points_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7693,7 +8137,7 @@ func (x *GeoRadius) ProtoReflect() protoreflect.Message { // Deprecated: Use GeoRadius.ProtoReflect.Descriptor instead. func (*GeoRadius) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{95} + return file_points_proto_rawDescGZIP(), []int{99} } func (x *GeoRadius) GetCenter() *GeoPoint { @@ -7721,7 +8165,7 @@ type GeoLineString struct { func (x *GeoLineString) Reset() { *x = GeoLineString{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[96] + mi := &file_points_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7734,7 +8178,7 @@ func (x *GeoLineString) String() string { func (*GeoLineString) ProtoMessage() {} func (x *GeoLineString) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[96] + mi := &file_points_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7747,7 +8191,7 @@ func (x *GeoLineString) ProtoReflect() protoreflect.Message { // Deprecated: Use GeoLineString.ProtoReflect.Descriptor instead. func (*GeoLineString) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{96} + return file_points_proto_rawDescGZIP(), []int{100} } func (x *GeoLineString) GetPoints() []*GeoPoint { @@ -7771,7 +8215,7 @@ type GeoPolygon struct { func (x *GeoPolygon) Reset() { *x = GeoPolygon{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[97] + mi := &file_points_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7784,7 +8228,7 @@ func (x *GeoPolygon) String() string { func (*GeoPolygon) ProtoMessage() {} func (x *GeoPolygon) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[97] + mi := &file_points_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7797,7 +8241,7 @@ func (x *GeoPolygon) ProtoReflect() protoreflect.Message { // Deprecated: Use GeoPolygon.ProtoReflect.Descriptor instead. func (*GeoPolygon) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{97} + return file_points_proto_rawDescGZIP(), []int{101} } func (x *GeoPolygon) GetExterior() *GeoLineString { @@ -7828,7 +8272,7 @@ type ValuesCount struct { func (x *ValuesCount) Reset() { *x = ValuesCount{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[98] + mi := &file_points_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7841,7 +8285,7 @@ func (x *ValuesCount) String() string { func (*ValuesCount) ProtoMessage() {} func (x *ValuesCount) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[98] + mi := &file_points_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7854,7 +8298,7 @@ func (x *ValuesCount) ProtoReflect() protoreflect.Message { // Deprecated: Use ValuesCount.ProtoReflect.Descriptor instead. func (*ValuesCount) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{98} + return file_points_proto_rawDescGZIP(), []int{102} } func (x *ValuesCount) GetLt() uint64 { @@ -7900,7 +8344,7 @@ type PointsSelector struct { func (x *PointsSelector) Reset() { *x = PointsSelector{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[99] + mi := &file_points_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7913,7 +8357,7 @@ func (x *PointsSelector) String() string { func (*PointsSelector) ProtoMessage() {} func (x *PointsSelector) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[99] + mi := &file_points_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7926,7 +8370,7 @@ func (x *PointsSelector) ProtoReflect() protoreflect.Message { // Deprecated: Use PointsSelector.ProtoReflect.Descriptor instead. func (*PointsSelector) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{99} + return file_points_proto_rawDescGZIP(), []int{103} } func (m *PointsSelector) GetPointsSelectorOneOf() isPointsSelector_PointsSelectorOneOf { @@ -7977,7 +8421,7 @@ type PointsIdsList struct { func (x *PointsIdsList) Reset() { *x = PointsIdsList{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[100] + mi := &file_points_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7990,7 +8434,7 @@ func (x *PointsIdsList) String() string { func (*PointsIdsList) ProtoMessage() {} func (x *PointsIdsList) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[100] + mi := &file_points_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8003,7 +8447,7 @@ func (x *PointsIdsList) ProtoReflect() protoreflect.Message { // Deprecated: Use PointsIdsList.ProtoReflect.Descriptor instead. func (*PointsIdsList) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{100} + return file_points_proto_rawDescGZIP(), []int{104} } func (x *PointsIdsList) GetIds() []*PointId { @@ -8026,7 +8470,7 @@ type PointStruct struct { func (x *PointStruct) Reset() { *x = PointStruct{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[101] + mi := &file_points_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8039,7 +8483,7 @@ func (x *PointStruct) String() string { func (*PointStruct) ProtoMessage() {} func (x *PointStruct) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[101] + mi := &file_points_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8052,7 +8496,7 @@ func (x *PointStruct) ProtoReflect() protoreflect.Message { // Deprecated: Use PointStruct.ProtoReflect.Descriptor instead. func (*PointStruct) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{101} + return file_points_proto_rawDescGZIP(), []int{105} } func (x *PointStruct) GetId() *PointId { @@ -8088,7 +8532,7 @@ type GeoPoint struct { func (x *GeoPoint) Reset() { *x = GeoPoint{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[102] + mi := &file_points_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8101,7 +8545,7 @@ func (x *GeoPoint) String() string { func (*GeoPoint) ProtoMessage() {} func (x *GeoPoint) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[102] + mi := &file_points_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8114,7 +8558,7 @@ func (x *GeoPoint) ProtoReflect() protoreflect.Message { // Deprecated: Use GeoPoint.ProtoReflect.Descriptor instead. func (*GeoPoint) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{102} + return file_points_proto_rawDescGZIP(), []int{106} } func (x *GeoPoint) GetLon() float64 { @@ -8143,7 +8587,7 @@ type PointsUpdateOperation_PointStructList struct { func (x *PointsUpdateOperation_PointStructList) Reset() { *x = PointsUpdateOperation_PointStructList{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[105] + mi := &file_points_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8156,7 +8600,7 @@ func (x *PointsUpdateOperation_PointStructList) String() string { func (*PointsUpdateOperation_PointStructList) ProtoMessage() {} func (x *PointsUpdateOperation_PointStructList) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[105] + mi := &file_points_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8169,7 +8613,7 @@ func (x *PointsUpdateOperation_PointStructList) ProtoReflect() protoreflect.Mess // Deprecated: Use PointsUpdateOperation_PointStructList.ProtoReflect.Descriptor instead. func (*PointsUpdateOperation_PointStructList) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{55, 0} + return file_points_proto_rawDescGZIP(), []int{58, 0} } func (x *PointsUpdateOperation_PointStructList) GetPoints() []*PointStruct { @@ -8200,7 +8644,7 @@ type PointsUpdateOperation_SetPayload struct { func (x *PointsUpdateOperation_SetPayload) Reset() { *x = PointsUpdateOperation_SetPayload{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[106] + mi := &file_points_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8213,7 +8657,7 @@ func (x *PointsUpdateOperation_SetPayload) String() string { func (*PointsUpdateOperation_SetPayload) ProtoMessage() {} func (x *PointsUpdateOperation_SetPayload) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[106] + mi := &file_points_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8226,7 +8670,7 @@ func (x *PointsUpdateOperation_SetPayload) ProtoReflect() protoreflect.Message { // Deprecated: Use PointsUpdateOperation_SetPayload.ProtoReflect.Descriptor instead. func (*PointsUpdateOperation_SetPayload) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{55, 1} + return file_points_proto_rawDescGZIP(), []int{58, 1} } func (x *PointsUpdateOperation_SetPayload) GetPayload() map[string]*Value { @@ -8271,7 +8715,7 @@ type PointsUpdateOperation_OverwritePayload struct { func (x *PointsUpdateOperation_OverwritePayload) Reset() { *x = PointsUpdateOperation_OverwritePayload{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[107] + mi := &file_points_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8284,7 +8728,7 @@ func (x *PointsUpdateOperation_OverwritePayload) String() string { func (*PointsUpdateOperation_OverwritePayload) ProtoMessage() {} func (x *PointsUpdateOperation_OverwritePayload) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[107] + mi := &file_points_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8297,7 +8741,7 @@ func (x *PointsUpdateOperation_OverwritePayload) ProtoReflect() protoreflect.Mes // Deprecated: Use PointsUpdateOperation_OverwritePayload.ProtoReflect.Descriptor instead. func (*PointsUpdateOperation_OverwritePayload) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{55, 2} + return file_points_proto_rawDescGZIP(), []int{58, 2} } func (x *PointsUpdateOperation_OverwritePayload) GetPayload() map[string]*Value { @@ -8341,7 +8785,7 @@ type PointsUpdateOperation_DeletePayload struct { func (x *PointsUpdateOperation_DeletePayload) Reset() { *x = PointsUpdateOperation_DeletePayload{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[108] + mi := &file_points_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8354,7 +8798,7 @@ func (x *PointsUpdateOperation_DeletePayload) String() string { func (*PointsUpdateOperation_DeletePayload) ProtoMessage() {} func (x *PointsUpdateOperation_DeletePayload) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[108] + mi := &file_points_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8367,7 +8811,7 @@ func (x *PointsUpdateOperation_DeletePayload) ProtoReflect() protoreflect.Messag // Deprecated: Use PointsUpdateOperation_DeletePayload.ProtoReflect.Descriptor instead. func (*PointsUpdateOperation_DeletePayload) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{55, 3} + return file_points_proto_rawDescGZIP(), []int{58, 3} } func (x *PointsUpdateOperation_DeletePayload) GetKeys() []string { @@ -8403,7 +8847,7 @@ type PointsUpdateOperation_UpdateVectors struct { func (x *PointsUpdateOperation_UpdateVectors) Reset() { *x = PointsUpdateOperation_UpdateVectors{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[109] + mi := &file_points_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8416,7 +8860,7 @@ func (x *PointsUpdateOperation_UpdateVectors) String() string { func (*PointsUpdateOperation_UpdateVectors) ProtoMessage() {} func (x *PointsUpdateOperation_UpdateVectors) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[109] + mi := &file_points_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8429,7 +8873,7 @@ func (x *PointsUpdateOperation_UpdateVectors) ProtoReflect() protoreflect.Messag // Deprecated: Use PointsUpdateOperation_UpdateVectors.ProtoReflect.Descriptor instead. func (*PointsUpdateOperation_UpdateVectors) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{55, 4} + return file_points_proto_rawDescGZIP(), []int{58, 4} } func (x *PointsUpdateOperation_UpdateVectors) GetPoints() []*PointVectors { @@ -8459,7 +8903,7 @@ type PointsUpdateOperation_DeleteVectors struct { func (x *PointsUpdateOperation_DeleteVectors) Reset() { *x = PointsUpdateOperation_DeleteVectors{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[110] + mi := &file_points_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8472,7 +8916,7 @@ func (x *PointsUpdateOperation_DeleteVectors) String() string { func (*PointsUpdateOperation_DeleteVectors) ProtoMessage() {} func (x *PointsUpdateOperation_DeleteVectors) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[110] + mi := &file_points_proto_msgTypes[114] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8485,7 +8929,7 @@ func (x *PointsUpdateOperation_DeleteVectors) ProtoReflect() protoreflect.Messag // Deprecated: Use PointsUpdateOperation_DeleteVectors.ProtoReflect.Descriptor instead. func (*PointsUpdateOperation_DeleteVectors) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{55, 5} + return file_points_proto_rawDescGZIP(), []int{58, 5} } func (x *PointsUpdateOperation_DeleteVectors) GetPointsSelector() *PointsSelector { @@ -8521,7 +8965,7 @@ type PointsUpdateOperation_DeletePoints struct { func (x *PointsUpdateOperation_DeletePoints) Reset() { *x = PointsUpdateOperation_DeletePoints{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[111] + mi := &file_points_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8534,7 +8978,7 @@ func (x *PointsUpdateOperation_DeletePoints) String() string { func (*PointsUpdateOperation_DeletePoints) ProtoMessage() {} func (x *PointsUpdateOperation_DeletePoints) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[111] + mi := &file_points_proto_msgTypes[115] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8547,7 +8991,7 @@ func (x *PointsUpdateOperation_DeletePoints) ProtoReflect() protoreflect.Message // Deprecated: Use PointsUpdateOperation_DeletePoints.ProtoReflect.Descriptor instead. func (*PointsUpdateOperation_DeletePoints) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{55, 6} + return file_points_proto_rawDescGZIP(), []int{58, 6} } func (x *PointsUpdateOperation_DeletePoints) GetPoints() *PointsSelector { @@ -8576,7 +9020,7 @@ type PointsUpdateOperation_ClearPayload struct { func (x *PointsUpdateOperation_ClearPayload) Reset() { *x = PointsUpdateOperation_ClearPayload{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[112] + mi := &file_points_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8589,7 +9033,7 @@ func (x *PointsUpdateOperation_ClearPayload) String() string { func (*PointsUpdateOperation_ClearPayload) ProtoMessage() {} func (x *PointsUpdateOperation_ClearPayload) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[112] + mi := &file_points_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8602,7 +9046,7 @@ func (x *PointsUpdateOperation_ClearPayload) ProtoReflect() protoreflect.Message // Deprecated: Use PointsUpdateOperation_ClearPayload.ProtoReflect.Descriptor instead. func (*PointsUpdateOperation_ClearPayload) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{55, 7} + return file_points_proto_rawDescGZIP(), []int{58, 7} } func (x *PointsUpdateOperation_ClearPayload) GetPoints() *PointsSelector { @@ -8722,7 +9166,7 @@ var file_points_proto_rawDesc = []byte{ 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, - 0xb5, 0x03, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, + 0xe0, 0x03, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, @@ -8745,653 +9189,568 @@ var file_points_proto_rawDesc = []byte{ 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x02, 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x76, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, - 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, - 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0xb6, 0x02, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x27, - 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x77, 0x61, 0x69, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x77, 0x61, 0x69, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x2c, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x56, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x36, - 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x01, 0x52, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, - 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, - 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x02, 0x52, 0x10, - 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x42, 0x0b, 0x0a, 0x09, - 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, + 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x76, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x22, 0x5a, 0x0a, 0x0c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, - 0x12, 0x1f, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x71, - 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x29, 0x0a, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x73, 0x52, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x22, 0xfc, 0x02, 0x0a, - 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x56, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x04, - 0x77, 0x61, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x77, 0x61, - 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, - 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x31, 0x0a, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, - 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x52, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x08, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4a, 0x04, 0x08, 0x03, + 0x10, 0x04, 0x22, 0xb6, 0x02, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x77, 0x61, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x00, 0x52, 0x04, 0x77, 0x61, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x71, 0x64, + 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x73, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x0a, 0x08, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x01, 0x52, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x02, 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, - 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0x91, 0x04, 0x0a, 0x10, - 0x53, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, - 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x77, 0x61, 0x69, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x77, 0x61, 0x69, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, - 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2e, 0x50, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x12, 0x44, 0x0a, 0x0f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, - 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x48, 0x01, 0x52, 0x0e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, - 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x48, 0x02, 0x52, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x88, 0x01, - 0x01, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, - 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x03, 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, - 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x15, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x88, 0x01, 0x01, 0x1a, 0x49, 0x0a, 0x0c, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, - 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6b, 0x65, 0x79, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22, - 0xfd, 0x02, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x17, 0x0a, 0x04, 0x77, 0x61, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, - 0x52, 0x04, 0x77, 0x61, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x65, 0x79, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x44, 0x0a, - 0x0f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, - 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x01, - 0x52, 0x0e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, - 0x72, 0x69, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x02, 0x52, 0x08, + 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0x5a, 0x0a, 0x0c, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x1f, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, + 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x02, 0x69, 0x64, 0x12, 0x29, 0x0a, 0x07, + 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, + 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x07, + 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x22, 0xfc, 0x02, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x27, + 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x77, 0x61, 0x69, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x77, 0x61, 0x69, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x3f, 0x0a, 0x0f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, + 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x52, 0x0e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x12, 0x31, 0x0a, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x07, 0x76, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x01, 0x52, + 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x12, + 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, + 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x48, 0x02, 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x77, 0x61, + 0x69, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x42, + 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0x91, 0x04, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x50, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x77, 0x61, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x77, 0x61, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, + 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x44, + 0x0a, 0x0f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, + 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, + 0x01, 0x52, 0x0e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x02, 0x52, + 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x12, + 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, + 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x48, 0x03, 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x88, 0x01, 0x01, + 0x1a, 0x49, 0x0a, 0x0c, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x77, 0x61, 0x69, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, + 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x06, 0x0a, 0x04, + 0x5f, 0x6b, 0x65, 0x79, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22, 0xfd, 0x02, 0x0a, 0x13, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x6f, 0x69, 0x6e, + 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x77, + 0x61, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x77, 0x61, 0x69, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x44, 0x0a, 0x0f, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, + 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x01, 0x52, 0x0e, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x36, + 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x02, 0x52, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, + 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x03, 0x52, 0x10, + 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22, 0xb8, 0x02, 0x0a, 0x12, 0x43, + 0x6c, 0x65, 0x61, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, + 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x77, 0x61, + 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x77, 0x61, 0x69, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x12, 0x36, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, + 0x72, 0x69, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x01, 0x52, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, + 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x48, 0x03, 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, + 0x72, 0x48, 0x02, 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x77, 0x61, 0x69, - 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, - 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22, - 0xb8, 0x02, 0x0a, 0x12, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x15, + 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0xf7, 0x02, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, + 0x04, 0x77, 0x61, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x77, + 0x61, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x71, 0x64, 0x72, 0x61, + 0x6e, 0x74, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x09, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x12, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, + 0x74, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x48, 0x02, 0x52, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x48, 0x03, 0x52, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x42, 0x0d, 0x0a, 0x0b, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x22, + 0xcb, 0x01, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, + 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x77, 0x61, 0x69, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x77, 0x61, 0x69, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x36, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x01, 0x52, 0x08, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x77, 0x61, 0x69, 0x74, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x30, 0x0a, + 0x16, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x22, + 0x30, 0x0a, 0x16, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x22, 0xbb, 0x01, 0x0a, 0x13, 0x57, 0x69, 0x74, 0x68, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x06, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x12, + 0x3a, 0x0a, 0x07, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x48, 0x00, 0x52, 0x07, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, + 0x97, 0x01, 0x0a, 0x0c, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, + 0x12, 0x3b, 0x0a, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, + 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x1a, 0x4a, 0x0a, + 0x0c, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, + 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x78, 0x0a, 0x07, 0x56, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x73, 0x12, 0x28, 0x0a, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x30, + 0x0a, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x56, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x73, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, + 0x42, 0x11, 0x0a, 0x0f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x22, 0x27, 0x0a, 0x0f, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x53, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x78, 0x0a, 0x13, + 0x57, 0x69, 0x74, 0x68, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x33, 0x0a, + 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x18, 0x51, 0x75, 0x61, 0x6e, 0x74, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1d, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x01, 0x52, 0x07, 0x72, 0x65, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x27, 0x0a, 0x0c, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, 0x0c, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x61, 0x6d, + 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x69, 0x67, 0x6e, + 0x6f, 0x72, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x65, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, + 0x0f, 0x0a, 0x0d, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, + 0x22, 0xf2, 0x01, 0x0a, 0x0c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x12, 0x1c, 0x0a, 0x07, 0x68, 0x6e, 0x73, 0x77, 0x5f, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x00, 0x52, 0x06, 0x68, 0x6e, 0x73, 0x77, 0x45, 0x66, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x65, 0x78, 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, + 0x52, 0x05, 0x65, 0x78, 0x61, 0x63, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0c, 0x71, 0x75, + 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x48, 0x02, 0x52, 0x0c, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, + 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x0b, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x68, 0x6e, 0x73, 0x77, 0x5f, 0x65, 0x66, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x78, + 0x61, 0x63, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, + 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x22, 0xba, 0x06, 0x0a, 0x0c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x17, 0x0a, 0x04, 0x77, 0x61, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, - 0x04, 0x77, 0x61, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, - 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, - 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x48, 0x01, 0x52, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, - 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, - 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x02, 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, - 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x69, 0x6e, 0x67, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, - 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0xf7, 0x02, 0x0a, 0x1a, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x43, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x77, 0x61, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x04, 0x77, 0x61, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x0a, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, - 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, - 0x65, 0x48, 0x01, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x4d, 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x02, 0x52, 0x10, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x36, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x72, 0x69, 0x74, - 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x03, 0x52, 0x08, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x77, 0x61, 0x69, - 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x22, 0xcb, 0x01, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x04, - 0x77, 0x61, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x77, 0x61, - 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, - 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x01, 0x52, - 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x77, 0x61, 0x69, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x22, 0x30, 0x0a, 0x16, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x73, 0x22, 0x30, 0x0a, 0x16, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, - 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x16, - 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x22, 0xbb, 0x01, 0x0a, 0x13, 0x57, 0x69, 0x74, 0x68, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x18, - 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, - 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x71, 0x64, 0x72, 0x61, - 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x07, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x07, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x42, 0x12, 0x0a, 0x10, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x97, 0x01, 0x0a, 0x0c, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x56, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, - 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x2e, 0x56, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x73, 0x1a, 0x4a, 0x0a, 0x0c, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x78, - 0x0a, 0x07, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x28, 0x0a, 0x06, 0x76, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, 0x64, 0x72, 0x61, - 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x06, 0x76, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x12, 0x30, 0x0a, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4e, 0x61, - 0x6d, 0x65, 0x64, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, - 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x27, 0x0a, 0x0f, 0x56, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x22, 0x78, 0x0a, 0x13, 0x57, 0x69, 0x74, 0x68, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x07, - 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x73, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x18, - 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x69, 0x67, 0x6e, 0x6f, - 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x69, 0x67, 0x6e, 0x6f, - 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x07, 0x72, 0x65, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x61, 0x6d, 0x70, - 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, 0x0c, 0x6f, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x65, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x61, 0x6d, - 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x22, 0xf2, 0x01, 0x0a, 0x0c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1c, 0x0a, 0x07, 0x68, 0x6e, 0x73, 0x77, 0x5f, 0x65, - 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x06, 0x68, 0x6e, 0x73, 0x77, 0x45, - 0x66, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x65, 0x78, 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x05, 0x65, 0x78, 0x61, 0x63, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x49, 0x0a, 0x0c, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x51, - 0x75, 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x02, 0x52, 0x0c, 0x71, 0x75, 0x61, 0x6e, 0x74, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x03, 0x52, 0x0b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x88, - 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x68, 0x6e, 0x73, 0x77, 0x5f, 0x65, 0x66, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x65, 0x78, 0x61, 0x63, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x71, 0x75, 0x61, - 0x6e, 0x74, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x22, 0xba, 0x06, 0x0a, 0x0c, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x02, 0x52, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x26, 0x0a, 0x06, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, - 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x3e, 0x0a, 0x0c, 0x77, 0x69, - 0x74, 0x68, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x50, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0b, 0x77, - 0x69, 0x74, 0x68, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2c, 0x0a, 0x06, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x71, 0x64, 0x72, - 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x02, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, - 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0a, 0x76, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0c, 0x77, 0x69, 0x74, - 0x68, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x56, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x03, 0x52, 0x0b, - 0x77, 0x69, 0x74, 0x68, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x47, - 0x0a, 0x10, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x63, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, - 0x74, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x48, 0x04, 0x52, 0x0f, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, - 0x75, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, - 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, - 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, - 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x06, 0x52, 0x10, - 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0e, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x5f, 0x69, 0x6e, - 0x64, 0x69, 0x63, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, - 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x70, 0x61, 0x72, 0x73, 0x65, 0x49, 0x6e, 0x64, 0x69, 0x63, - 0x65, 0x73, 0x48, 0x07, 0x52, 0x0d, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x49, 0x6e, 0x64, 0x69, - 0x63, 0x65, 0x73, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x76, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, - 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x11, - 0x0a, 0x0f, 0x5f, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, - 0x73, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x22, 0x80, 0x02, 0x0a, 0x11, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x42, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, - 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6f, 0x69, - 0x6e, 0x74, 0x73, 0x52, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6f, 0x69, 0x6e, 0x74, - 0x73, 0x12, 0x47, 0x0a, 0x10, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, - 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x63, 0x79, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, - 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x07, 0x74, - 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, - 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x0a, - 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0xd8, 0x01, 0x0a, 0x0a, 0x57, - 0x69, 0x74, 0x68, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x0c, 0x77, 0x69, 0x74, - 0x68, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x50, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0b, - 0x77, 0x69, 0x74, 0x68, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x88, 0x01, 0x01, 0x12, 0x43, - 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x69, - 0x74, 0x68, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x48, 0x01, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, - 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x76, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x73, 0x22, 0x95, 0x07, 0x0a, 0x11, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x02, 0x52, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x26, 0x0a, 0x06, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, - 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x3e, 0x0a, 0x0c, 0x77, 0x69, - 0x74, 0x68, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x50, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0b, 0x77, - 0x69, 0x74, 0x68, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2c, 0x0a, 0x06, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x71, 0x64, 0x72, - 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x02, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, - 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x76, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0c, - 0x77, 0x69, 0x74, 0x68, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x69, 0x74, 0x68, - 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, - 0x02, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x62, 0x79, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x12, 0x1d, 0x0a, 0x0a, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x47, 0x0a, 0x10, 0x72, - 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, - 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x03, - 0x52, 0x0f, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6c, 0x6f, 0x6f, - 0x6b, 0x75, 0x70, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x64, 0x72, 0x61, - 0x6e, 0x74, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x48, 0x04, 0x52, - 0x0a, 0x77, 0x69, 0x74, 0x68, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, 0x1d, - 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x05, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, - 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, - 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x48, 0x06, 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0e, 0x73, 0x70, - 0x61, 0x72, 0x73, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x70, 0x61, 0x72, - 0x73, 0x65, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x48, 0x07, 0x52, 0x0d, 0x73, 0x70, 0x61, - 0x72, 0x73, 0x65, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, - 0x10, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, - 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x77, 0x69, 0x74, 0x68, - 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x6f, 0x75, 0x74, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, - 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, - 0x70, 0x61, 0x72, 0x73, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x22, 0xa2, 0x01, - 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x05, 0x66, - 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, - 0x6f, 0x61, 0x74, 0x12, 0x1a, 0x0a, 0x07, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x07, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x12, - 0x3a, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, - 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1c, 0x0a, 0x08, 0x64, - 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x08, 0x64, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x34, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x44, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, - 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x71, 0x64, 0x72, - 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x48, 0x01, 0x52, - 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x22, 0xd9, 0x04, 0x0a, 0x0c, 0x53, - 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x71, - 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x48, 0x00, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x61, + 0x16, 0x0a, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x02, 0x52, + 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x26, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, + 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, + 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x3e, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x50, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x43, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x76, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x71, 0x64, - 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x02, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, - 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x10, 0x72, 0x65, - 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, - 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x03, 0x52, - 0x0f, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, - 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, - 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, - 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x04, 0x52, 0x10, 0x73, 0x68, 0x61, - 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, - 0x12, 0x2f, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x42, 0x79, 0x48, 0x05, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, - 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x61, 0x64, - 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x15, 0x0a, 0x13, - 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, - 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x22, 0xd3, 0x01, 0x0a, 0x0e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, - 0x70, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x76, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, - 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x03, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x68, 0x72, + 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0e, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x24, + 0x0a, 0x0b, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0a, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x76, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x71, 0x64, 0x72, + 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x03, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x56, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x10, 0x72, 0x65, 0x61, + 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x61, + 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x04, 0x52, 0x0f, + 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, + 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x06, 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, + 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x41, + 0x0a, 0x0e, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 0x53, 0x70, 0x61, 0x72, 0x73, 0x65, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x48, 0x07, 0x52, + 0x0d, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x88, 0x01, + 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, + 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, + 0x75, 0x74, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, + 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x70, + 0x61, 0x72, 0x73, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x4a, 0x04, 0x08, 0x05, + 0x10, 0x06, 0x22, 0x80, 0x02, 0x0a, 0x11, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x39, 0x0a, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, + 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x0c, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x47, 0x0a, 0x10, + 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x48, + 0x00, 0x52, 0x0f, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0xd8, 0x01, 0x0a, 0x0a, 0x57, 0x69, 0x74, 0x68, 0x4c, 0x6f, + 0x6f, 0x6b, 0x75, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x71, 0x64, 0x72, + 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x50, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0c, 0x77, 0x69, 0x74, + 0x68, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x56, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x01, 0x52, 0x0b, + 0x77, 0x69, 0x74, 0x68, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, + 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, + 0x22, 0x95, 0x07, 0x0a, 0x11, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6f, 0x69, 0x6e, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x02, 0x52, + 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x26, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, + 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, + 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x3e, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x71, 0x64, + 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x50, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x68, 0x72, + 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0e, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x5f, + 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x56, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x02, 0x52, 0x0b, 0x77, 0x69, + 0x74, 0x68, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x08, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x62, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x47, 0x0a, 0x10, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, + 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, + 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x03, 0x52, 0x0f, 0x72, 0x65, 0x61, + 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, + 0x38, 0x0a, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x69, + 0x74, 0x68, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x48, 0x04, 0x52, 0x0a, 0x77, 0x69, 0x74, 0x68, + 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x07, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, + 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, - 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x01, + 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x06, 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, - 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0xa5, 0x08, 0x0a, - 0x0f, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, - 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x08, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x71, 0x64, - 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x08, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x12, 0x2b, 0x0a, 0x08, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, - 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x08, 0x6e, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x12, 0x26, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x12, 0x3e, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, - 0x2e, 0x57, 0x69, 0x74, 0x68, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x12, 0x2c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, - 0x2c, 0x0a, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, - 0x6c, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x75, 0x73, - 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x75, 0x73, 0x69, - 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x76, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x71, 0x64, - 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x03, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, - 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0b, 0x6c, 0x6f, - 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x04, 0x52, 0x0a, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, - 0x70, 0x46, 0x72, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x10, 0x72, 0x65, 0x61, 0x64, - 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x61, 0x64, - 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x05, 0x52, 0x0f, 0x72, - 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, - 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x63, - 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x48, 0x06, - 0x52, 0x08, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, - 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, - 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, - 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x39, 0x0a, 0x10, 0x6e, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x12, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x52, 0x0f, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x56, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x13, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, - 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, - 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x08, 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, - 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, - 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, - 0x6f, 0x6c, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x69, 0x74, - 0x68, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x6f, - 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, - 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x0b, - 0x0a, 0x09, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, - 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4a, 0x04, - 0x08, 0x06, 0x10, 0x07, 0x22, 0x8c, 0x02, 0x0a, 0x14, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, - 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x64, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x47, 0x0a, 0x10, 0x72, 0x65, - 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, - 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x00, 0x52, - 0x0f, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, - 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x6f, 0x75, 0x74, 0x22, 0x80, 0x09, 0x0a, 0x14, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x27, 0x0a, 0x0f, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, - 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, - 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x76, 0x65, 0x12, 0x2b, 0x0a, 0x08, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, - 0x69, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x08, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x12, - 0x26, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0e, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x5f, + 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x70, 0x61, 0x72, 0x73, 0x65, 0x49, 0x6e, 0x64, + 0x69, 0x63, 0x65, 0x73, 0x48, 0x07, 0x52, 0x0d, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x49, 0x6e, + 0x64, 0x69, 0x63, 0x65, 0x73, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x63, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, + 0x75, 0x70, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x15, + 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, + 0x5f, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x22, 0xa2, 0x01, 0x0a, 0x09, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x1a, + 0x0a, 0x07, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, + 0x00, 0x52, 0x07, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1c, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x65, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x64, 0x61, 0x74, 0x65, + 0x74, 0x69, 0x6d, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa5, 0x01, + 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x34, 0x0a, 0x09, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, + 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x00, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x35, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x22, 0x84, 0x05, 0x0a, 0x0c, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, + 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x26, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, - 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x3e, 0x0a, - 0x0c, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x69, 0x74, - 0x68, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2c, 0x0a, - 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2c, 0x0a, 0x0f, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x54, 0x68, 0x72, - 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x75, 0x73, 0x69, - 0x6e, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x75, 0x73, 0x69, 0x6e, - 0x67, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x76, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x71, 0x64, 0x72, - 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x53, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x02, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x56, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0b, 0x6c, 0x6f, 0x6f, - 0x6b, 0x75, 0x70, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x03, 0x52, 0x0a, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, - 0x46, 0x72, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x5f, 0x62, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x42, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x73, 0x69, 0x7a, 0x65, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x69, 0x7a, - 0x65, 0x12, 0x47, 0x0a, 0x10, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, - 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x63, 0x79, 0x48, 0x04, 0x52, 0x0f, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0b, 0x77, 0x69, - 0x74, 0x68, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x4c, 0x6f, 0x6f, - 0x6b, 0x75, 0x70, 0x48, 0x05, 0x52, 0x0a, 0x77, 0x69, 0x74, 0x68, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, - 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, - 0x79, 0x48, 0x06, 0x52, 0x08, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x88, 0x01, 0x01, - 0x12, 0x39, 0x0a, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x76, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, 0x64, 0x72, - 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0f, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x76, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x39, 0x0a, 0x10, 0x6e, - 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, - 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0f, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x56, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, - 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, - 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, - 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, - 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x08, 0x52, 0x10, 0x73, - 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, - 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x68, 0x72, - 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x75, 0x73, 0x69, 0x6e, 0x67, + 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, + 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x3e, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 0x57, 0x69, 0x74, 0x68, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x12, 0x43, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 0x57, 0x69, 0x74, 0x68, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x48, 0x02, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x56, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x10, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x03, 0x52, 0x0f, 0x72, 0x65, 0x61, 0x64, + 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x4b, + 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, + 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x48, 0x04, 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, + 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x08, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, + 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x48, 0x05, + 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, + 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, + 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x66, 0x72, 0x6f, - 0x6d, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, - 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, - 0x65, 0x67, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, - 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0x49, 0x0a, 0x0c, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, - 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x48, 0x00, 0x52, - 0x06, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x22, 0x67, 0x0a, 0x0d, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, - 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, - 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x48, - 0x00, 0x52, 0x02, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, - 0x09, 0x0a, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x22, 0x7a, 0x0a, 0x12, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x78, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x50, 0x61, 0x69, 0x72, - 0x12, 0x31, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x76, 0x65, 0x12, 0x31, 0x0a, 0x08, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x08, 0x6e, 0x65, - 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x22, 0xa7, 0x06, 0x0a, 0x0e, 0x44, 0x69, 0x73, 0x63, 0x6f, - 0x76, 0x65, 0x72, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x12, 0x34, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x78, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x07, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x26, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x14, - 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x12, 0x3e, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x71, 0x64, 0x72, - 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x53, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x50, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, + 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x22, 0xd3, 0x01, 0x0a, + 0x0e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x76, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x0a, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4b, + 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, + 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x48, 0x01, 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, + 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, + 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x22, 0xa5, 0x08, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, + 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x2b, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0f, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, + 0x49, 0x64, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x12, 0x2b, 0x0a, 0x08, + 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, + 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x52, + 0x08, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x12, 0x26, 0x0a, 0x06, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, 0x64, 0x72, 0x61, + 0x6e, 0x74, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x3e, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x5f, + 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x50, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, + 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x74, + 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, + 0x52, 0x0e, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x02, 0x52, 0x05, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0c, 0x77, + 0x69, 0x74, 0x68, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x56, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x03, + 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x3c, 0x0a, 0x0b, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4c, + 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x04, 0x52, + 0x0a, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x46, 0x72, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x47, + 0x0a, 0x10, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x63, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, + 0x74, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, + 0x79, 0x48, 0x05, 0x52, 0x0f, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x61, 0x74, + 0x65, 0x67, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x71, 0x64, 0x72, 0x61, + 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x61, + 0x74, 0x65, 0x67, 0x79, 0x48, 0x06, 0x52, 0x08, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, + 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0f, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x39, + 0x0a, 0x10, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, + 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0f, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x76, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x07, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, + 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, + 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x08, + 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, + 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x42, + 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x63, 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, + 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x22, 0x8c, 0x02, 0x0a, 0x14, 0x52, + 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x10, + 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, + 0x0f, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x12, 0x47, 0x0a, 0x10, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, + 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x63, 0x79, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x07, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x61, + 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x80, 0x09, 0x0a, 0x14, 0x52, 0x65, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x08, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, + 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x08, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x12, 0x2b, 0x0a, 0x08, 0x6e, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x71, 0x64, 0x72, + 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x08, 0x6e, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x12, 0x26, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x12, 0x3e, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x71, 0x64, 0x72, 0x61, + 0x6e, 0x74, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x50, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x12, 0x2c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, @@ -9401,142 +9760,313 @@ var file_points_proto_rawDesc = []byte{ 0x3c, 0x0a, 0x0b, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x03, 0x52, 0x0a, - 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x46, 0x72, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, - 0x10, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, - 0x2e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, - 0x48, 0x04, 0x52, 0x0f, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, - 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, - 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, - 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, - 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x06, 0x52, 0x10, 0x73, - 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x69, 0x74, 0x68, - 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x6f, 0x6f, - 0x6b, 0x75, 0x70, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x61, - 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x0a, 0x0a, - 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, - 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x22, 0x88, 0x02, 0x0a, 0x13, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x3f, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, - 0x61, 0x6e, 0x74, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 0x73, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 0x73, 0x12, 0x47, 0x0a, 0x10, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, - 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x74, - 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x07, - 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, - 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0xc5, 0x02, 0x0a, 0x0b, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, - 0x65, 0x78, 0x61, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x05, 0x65, - 0x78, 0x61, 0x63, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x10, 0x72, 0x65, 0x61, 0x64, 0x5f, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x46, 0x72, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x62, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x47, 0x0a, 0x10, 0x72, 0x65, 0x61, 0x64, 0x5f, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x43, - 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x01, 0x52, 0x0f, 0x72, 0x65, + 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x04, 0x52, 0x0f, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, - 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, - 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x02, 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, - 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x65, 0x78, 0x61, 0x63, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x61, 0x64, - 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x15, 0x0a, 0x13, - 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x22, 0xbb, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x2f, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x76, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, + 0x12, 0x38, 0x0a, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, + 0x69, 0x74, 0x68, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x48, 0x05, 0x52, 0x0a, 0x77, 0x69, 0x74, + 0x68, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x73, 0x74, + 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x71, + 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x53, + 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x48, 0x06, 0x52, 0x08, 0x73, 0x74, 0x72, 0x61, 0x74, + 0x65, 0x67, 0x79, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x52, 0x0f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x73, 0x12, 0x39, 0x0a, 0x10, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x76, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, 0x64, + 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0f, 0x6e, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x1d, 0x0a, 0x07, + 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, + 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x12, 0x73, + 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, + 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x48, 0x08, 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, + 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, + 0x75, 0x70, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x61, 0x64, + 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, + 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0x49, 0x0a, 0x0c, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x2f, 0x0a, 0x06, + 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, + 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x78, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x06, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x67, 0x0a, 0x0d, 0x56, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, + 0x69, 0x6e, 0x74, 0x49, 0x64, 0x48, 0x00, 0x52, 0x02, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x06, 0x76, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, 0x64, + 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x06, 0x76, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, + 0x22, 0x7a, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x70, + 0x6c, 0x65, 0x50, 0x61, 0x69, 0x72, 0x12, 0x31, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, + 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, + 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x12, 0x31, 0x0a, 0x08, 0x6e, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, + 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, + 0x6c, 0x65, 0x52, 0x08, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x22, 0xa7, 0x06, 0x0a, + 0x0e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, + 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, + 0x74, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x34, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, + 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x50, + 0x61, 0x69, 0x72, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x26, 0x0a, 0x06, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, + 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x3e, 0x0a, 0x0c, 0x77, 0x69, + 0x74, 0x68, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x50, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0b, 0x77, + 0x69, 0x74, 0x68, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2c, 0x0a, 0x06, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x71, 0x64, 0x72, + 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, + 0x12, 0x43, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 0x57, 0x69, 0x74, 0x68, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x48, 0x02, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x56, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0b, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, + 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, + 0x61, 0x6e, 0x74, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x48, 0x03, 0x52, 0x0a, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x46, 0x72, 0x6f, 0x6d, + 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x10, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x04, 0x52, 0x0f, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, + 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, + 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, + 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x12, 0x73, + 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, + 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x48, 0x06, 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x42, 0x0f, 0x0a, + 0x0d, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x42, 0x13, + 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x63, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, + 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0x88, 0x02, 0x0a, 0x13, 0x44, 0x69, 0x73, 0x63, 0x6f, + 0x76, 0x65, 0x72, 0x42, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x27, + 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x63, 0x6f, + 0x76, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, + 0x65, 0x72, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, + 0x65, 0x72, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x47, 0x0a, 0x10, 0x72, 0x65, 0x61, 0x64, + 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x61, 0x64, + 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x00, 0x52, 0x0f, 0x72, + 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, + 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x01, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, + 0x74, 0x22, 0xf0, 0x02, 0x0a, 0x0b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, + 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x06, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, 0x64, 0x72, + 0x61, 0x6e, 0x74, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x65, 0x78, 0x61, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x00, 0x52, 0x05, 0x65, 0x78, 0x61, 0x63, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, + 0x10, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, + 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, + 0x2e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, + 0x48, 0x01, 0x52, 0x0f, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, + 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x02, 0x52, 0x10, + 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x78, 0x61, 0x63, 0x74, 0x42, 0x13, 0x0a, 0x11, + 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, + 0x79, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x22, 0xbb, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x2f, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, + 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x08, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x12, 0x2f, 0x0a, 0x08, 0x6e, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, + 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, + 0x08, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x73, 0x74, 0x72, + 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x71, 0x64, + 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x53, 0x74, + 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x48, 0x00, 0x52, 0x08, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, + 0x67, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, + 0x67, 0x79, 0x22, 0x74, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x50, 0x61, 0x69, 0x72, 0x12, 0x2f, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x12, 0x2f, 0x0a, 0x08, 0x6e, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, + 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x08, - 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x61, - 0x74, 0x65, 0x67, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x71, 0x64, 0x72, - 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x72, - 0x61, 0x74, 0x65, 0x67, 0x79, 0x48, 0x00, 0x52, 0x08, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, - 0x79, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, - 0x79, 0x22, 0x74, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x70, 0x75, - 0x74, 0x50, 0x61, 0x69, 0x72, 0x12, 0x2f, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, - 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x08, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x12, 0x2f, 0x0a, 0x08, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, - 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x08, 0x6e, - 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x22, 0x6c, 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x63, 0x6f, - 0x76, 0x65, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x2b, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, - 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x06, 0x74, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2e, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x07, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x3e, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, - 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x2e, 0x0a, 0x05, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x50, 0x61, 0x69, 0x72, 0x52, 0x05, - 0x70, 0x61, 0x69, 0x72, 0x73, 0x22, 0xba, 0x02, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, - 0x2f, 0x0a, 0x07, 0x6e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x07, 0x6e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, - 0x12, 0x36, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x63, - 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x09, 0x72, - 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x12, 0x33, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x63, - 0x6f, 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, - 0x61, 0x6e, 0x74, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x70, 0x75, - 0x74, 0x48, 0x00, 0x52, 0x08, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x30, 0x0a, - 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, - 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, - 0x2c, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0f, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x42, 0x79, 0x48, 0x00, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x28, 0x0a, - 0x06, 0x66, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, - 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, - 0x06, 0x66, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x76, 0x61, 0x72, 0x69, 0x61, - 0x6e, 0x74, 0x22, 0xc6, 0x03, 0x0a, 0x0d, 0x50, 0x72, 0x65, 0x66, 0x65, 0x74, 0x63, 0x68, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x12, 0x31, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x65, 0x74, 0x63, 0x68, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, - 0x50, 0x72, 0x65, 0x66, 0x65, 0x74, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x08, 0x70, - 0x72, 0x65, 0x66, 0x65, 0x74, 0x63, 0x68, 0x12, 0x28, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x00, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x05, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x06, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, - 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x06, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x06, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, - 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, - 0x03, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x02, 0x48, 0x04, 0x52, 0x0e, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x54, 0x68, - 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0b, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, - 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, - 0x61, 0x6e, 0x74, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x48, 0x06, 0x52, 0x0a, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x46, 0x72, 0x6f, 0x6d, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x12, 0x0a, - 0x10, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, - 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, - 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x22, 0xae, 0x07, 0x0a, 0x0b, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, + 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x22, 0x6c, 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x63, + 0x6f, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x2b, 0x0a, 0x06, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, + 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x06, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2e, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, + 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x07, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x3e, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x2e, 0x0a, 0x05, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x50, 0x61, 0x69, 0x72, 0x52, + 0x05, 0x70, 0x61, 0x69, 0x72, 0x73, 0x22, 0xe4, 0x02, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x12, 0x2f, 0x0a, 0x07, 0x6e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x07, 0x6e, 0x65, 0x61, 0x72, 0x65, 0x73, + 0x74, 0x12, 0x36, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x09, + 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x12, 0x33, 0x0a, 0x08, 0x64, 0x69, 0x73, + 0x63, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, + 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x48, 0x00, 0x52, 0x08, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x30, + 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, + 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, + 0x12, 0x2c, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x42, 0x79, 0x48, 0x00, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x28, + 0x0a, 0x06, 0x66, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, + 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, + 0x52, 0x06, 0x66, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x06, 0x73, 0x61, 0x6d, 0x70, + 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, + 0x74, 0x2e, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x06, 0x73, 0x61, 0x6d, 0x70, + 0x6c, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x22, 0xc6, 0x03, + 0x0a, 0x0d, 0x50, 0x72, 0x65, 0x66, 0x65, 0x74, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, + 0x31, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x65, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x72, 0x65, 0x66, 0x65, + 0x74, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x65, 0x74, + 0x63, 0x68, 0x12, 0x28, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x48, 0x00, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x75, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x75, + 0x73, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, + 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x03, 0x52, 0x06, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, + 0x48, 0x04, 0x52, 0x0e, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x3c, 0x0a, 0x0b, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4c, + 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x06, 0x52, + 0x0a, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x46, 0x72, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x75, 0x73, 0x69, + 0x6e, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, + 0x70, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x22, 0xae, 0x07, 0x0a, 0x0b, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x31, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x65, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x72, 0x65, 0x66, 0x65, + 0x74, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x65, 0x74, + 0x63, 0x68, 0x12, 0x28, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x48, 0x00, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x75, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x75, + 0x73, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, + 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x03, 0x52, 0x06, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, + 0x48, 0x04, 0x52, 0x0e, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x06, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, + 0x0c, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x69, 0x74, + 0x68, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x48, 0x07, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, + 0x74, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x08, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x50, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x10, 0x72, 0x65, 0x61, 0x64, 0x5f, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x43, + 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x09, 0x52, 0x0f, 0x72, 0x65, + 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, + 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, + 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x0a, 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, + 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, + 0x0b, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, + 0x75, 0x70, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x0b, 0x52, 0x0a, 0x6c, 0x6f, + 0x6f, 0x6b, 0x75, 0x70, 0x46, 0x72, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x74, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0c, 0x52, 0x07, + 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x74, + 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x0f, 0x0a, + 0x0d, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, + 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x63, 0x79, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, + 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0xfc, 0x01, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x0c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, + 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x52, 0x0b, 0x71, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x47, 0x0a, + 0x10, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, + 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, + 0x2e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, + 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, + 0x75, 0x74, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, + 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x8d, 0x08, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x65, 0x74, 0x63, 0x68, @@ -9555,651 +10085,658 @@ var file_points_proto_rawDesc = []byte{ 0x03, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x48, 0x04, 0x52, 0x0e, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x54, 0x68, - 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, - 0x74, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x07, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x56, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x5f, - 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x50, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x08, 0x52, 0x0b, 0x77, 0x69, - 0x74, 0x68, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x10, - 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, - 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x48, - 0x09, 0x52, 0x0f, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, - 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, - 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x0a, 0x52, 0x10, 0x73, - 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, - 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0b, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x66, 0x72, 0x6f, - 0x6d, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, - 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, - 0x0b, 0x52, 0x0a, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x46, 0x72, 0x6f, 0x6d, 0x88, 0x01, 0x01, - 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x0c, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x75, 0x73, - 0x69, 0x6e, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x76, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, - 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, - 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x66, 0x72, 0x6f, 0x6d, - 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0xfc, 0x01, 0x0a, - 0x10, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6f, 0x69, 0x6e, 0x74, - 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x0c, 0x71, 0x75, - 0x65, 0x72, 0x79, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, - 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 0x73, 0x12, 0x47, 0x0a, 0x10, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, - 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x74, - 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x07, - 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, - 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0xe1, 0x15, 0x0a, 0x15, - 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x06, 0x75, 0x70, 0x73, 0x65, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, + 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x0c, 0x77, 0x69, + 0x74, 0x68, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x50, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0b, 0x77, + 0x69, 0x74, 0x68, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x43, 0x0a, 0x0c, 0x77, 0x69, + 0x74, 0x68, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x56, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x05, 0x52, + 0x0b, 0x77, 0x69, 0x74, 0x68, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x3c, 0x0a, 0x0b, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4c, 0x6f, + 0x6f, 0x6b, 0x75, 0x70, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x06, 0x52, 0x0a, + 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x46, 0x72, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x05, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x48, 0x08, 0x52, 0x09, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x08, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x62, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x12, 0x47, 0x0a, 0x10, 0x72, 0x65, 0x61, 0x64, 0x5f, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x43, + 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x09, 0x52, 0x0f, 0x72, 0x65, + 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, + 0x12, 0x38, 0x0a, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, + 0x69, 0x74, 0x68, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x48, 0x0a, 0x52, 0x0a, 0x77, 0x69, 0x74, + 0x68, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0b, 0x52, 0x07, 0x74, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, + 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, + 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, + 0x0c, 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x76, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, + 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, + 0x0d, 0x0a, 0x0b, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x13, + 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x63, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6c, 0x6f, 0x6f, + 0x6b, 0x75, 0x70, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, + 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0x3c, 0x0a, 0x0a, 0x46, 0x61, 0x63, 0x65, 0x74, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x76, 0x61, 0x72, + 0x69, 0x61, 0x6e, 0x74, 0x22, 0x4f, 0x0a, 0x0d, 0x46, 0x61, 0x63, 0x65, 0x74, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x48, 0x69, 0x74, 0x12, 0x28, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x46, 0x61, + 0x63, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xe1, 0x15, 0x0a, 0x15, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x47, 0x0a, 0x06, 0x75, 0x70, 0x73, 0x65, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2d, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, + 0x52, 0x06, 0x75, 0x70, 0x73, 0x65, 0x72, 0x74, 0x12, 0x49, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x02, 0x18, 0x01, 0x48, + 0x00, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, + 0x74, 0x65, 0x64, 0x12, 0x4b, 0x0a, 0x0b, 0x73, 0x65, 0x74, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, + 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x12, 0x5d, 0x0a, 0x11, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x70, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x71, 0x64, + 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x77, + 0x72, 0x69, 0x74, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x10, 0x6f, + 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, + 0x54, 0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, + 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x56, 0x0a, 0x18, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x70, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, + 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, + 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x16, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x50, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x54, 0x0a, + 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x06, 0x75, 0x70, 0x73, 0x65, 0x72, 0x74, 0x12, 0x49, - 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, - 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, - 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, - 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x4b, 0x0a, 0x0b, 0x73, 0x65, 0x74, - 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, - 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x5d, 0x0a, 0x11, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, - 0x69, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2e, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, - 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x48, 0x00, 0x52, 0x10, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x50, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x54, 0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, - 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, - 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x56, 0x0a, 0x18, 0x63, - 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x64, 0x65, 0x70, - 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, - 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x16, 0x63, 0x6c, 0x65, - 0x61, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, - 0x74, 0x65, 0x64, 0x12, 0x54, 0x0a, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x71, 0x64, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x73, 0x12, 0x54, 0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x76, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x54, 0x0a, 0x0e, 0x64, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, - 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x48, 0x00, - 0x52, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, - 0x51, 0x0a, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, - 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 0x73, 0x12, 0x51, 0x0a, 0x0d, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x70, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x71, 0x64, 0x72, 0x61, - 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x50, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x50, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x1a, 0xa2, 0x01, 0x0a, 0x0f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x53, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x06, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, - 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, - 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, - 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x10, - 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, - 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x1a, 0x85, 0x03, 0x0a, 0x0a, 0x53, - 0x65, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x4f, 0x0a, 0x07, 0x70, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x71, 0x64, 0x72, - 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x44, 0x0a, 0x0f, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, - 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, + 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x51, 0x0a, 0x0d, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2a, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x48, 0x00, 0x52, 0x0c, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x51, 0x0a, 0x0d, + 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, + 0x00, 0x52, 0x0c, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x1a, + 0xa2, 0x01, 0x0a, 0x0f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x01, 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, - 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x88, 0x01, 0x01, 0x1a, 0x49, 0x0a, 0x0c, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, - 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, - 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6b, - 0x65, 0x79, 0x1a, 0x91, 0x03, 0x0a, 0x10, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, - 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x55, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, - 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, - 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x44, - 0x0a, 0x0f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, - 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, - 0x00, 0x52, 0x0e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, - 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, - 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x01, 0x52, 0x10, 0x73, 0x68, - 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, - 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x1a, 0x49, 0x0a, 0x0c, 0x50, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x64, 0x72, 0x61, - 0x6e, 0x74, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x73, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, - 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x06, - 0x0a, 0x04, 0x5f, 0x6b, 0x65, 0x79, 0x1a, 0xe1, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x44, 0x0a, 0x0f, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, - 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, - 0x0e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, - 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, - 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, - 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x01, 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, - 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, - 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, - 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x1a, 0xa1, 0x01, 0x0a, 0x0d, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2c, 0x0a, 0x06, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x71, - 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x56, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x73, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, + 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x1a, 0x85, 0x03, 0x0a, 0x0a, 0x53, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x12, 0x4f, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x50, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x44, 0x0a, 0x0f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x48, 0x00, 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, - 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x1a, 0xe7, - 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, - 0x12, 0x3f, 0x0a, 0x0f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, - 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x52, 0x0e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x12, 0x31, 0x0a, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x07, 0x76, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x73, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, - 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x48, 0x01, 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x1a, 0x49, + 0x0a, 0x0c, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6b, 0x65, 0x79, 0x1a, 0x91, 0x03, 0x0a, + 0x10, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x12, 0x55, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, + 0x74, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x44, 0x0a, 0x0f, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, + 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x4b, + 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, + 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x48, 0x01, 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, + 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x88, + 0x01, 0x01, 0x1a, 0x49, 0x0a, 0x0c, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x12, 0x0a, + 0x10, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6b, 0x65, 0x79, + 0x1a, 0xe1, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x44, 0x0a, 0x0f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x12, + 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, + 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x48, 0x01, 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x1a, 0xa1, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2c, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x06, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, + 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, - 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x1a, 0xa2, 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x06, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, - 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, - 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, - 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, - 0x00, 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, - 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x1a, 0xa2, 0x01, - 0x0a, 0x0c, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2e, - 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x4b, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x1a, 0xe7, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x3f, 0x0a, 0x0f, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0e, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x31, 0x0a, 0x07, 0x76, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, + 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x53, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, + 0x63, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0xe2, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x50, - 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, - 0x0a, 0x04, 0x77, 0x61, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, - 0x77, 0x61, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x71, 0x64, - 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x36, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, - 0x74, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x48, - 0x01, 0x52, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x22, 0x5b, 0x0a, 0x17, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x2c, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, - 0x65, 0x22, 0x75, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x12, 0x26, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, - 0x6e, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x22, 0x43, 0x0a, 0x0a, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x03, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x03, 0x69, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x05, 0x66, 0x6c, - 0x6f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x6f, - 0x61, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x22, 0xb3, 0x03, - 0x0a, 0x0b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1f, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x71, 0x64, 0x72, 0x61, - 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3a, - 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x64, 0x50, - 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x07, 0x76, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x71, 0x64, - 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x48, 0x00, 0x52, 0x07, - 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x09, 0x73, 0x68, - 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, - 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x48, - 0x01, 0x52, 0x08, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x38, - 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x02, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x49, 0x0a, 0x0c, 0x50, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x64, 0x72, 0x61, - 0x6e, 0x74, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0e, 0x0a, - 0x0c, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x4a, 0x04, 0x08, - 0x04, 0x10, 0x05, 0x22, 0x86, 0x01, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, - 0x27, 0x0a, 0x0e, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0d, 0x75, 0x6e, 0x73, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x25, 0x0a, 0x0d, 0x69, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, - 0x00, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, - 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x86, 0x01, 0x0a, - 0x0a, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1f, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, - 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x52, 0x02, 0x69, 0x64, 0x12, 0x27, 0x0a, 0x04, - 0x68, 0x69, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, - 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, - 0x04, 0x68, 0x69, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x06, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, - 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x6c, - 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x22, 0x3a, 0x0a, 0x0c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2a, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, - 0x6f, 0x69, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x73, 0x22, 0x51, 0x0a, 0x0e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6f, 0x72, 0x1a, 0xa2, 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, + 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, + 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x10, 0x73, 0x68, 0x61, + 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, + 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x1a, 0xa2, 0x01, 0x0a, 0x0c, 0x43, 0x6c, 0x65, 0x61, + 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2e, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, + 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, 0x61, 0x72, + 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, + 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x00, + 0x52, 0x10, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, + 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x0b, 0x0a, 0x09, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xe2, 0x01, 0x0a, 0x11, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, + 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x77, 0x61, 0x69, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x77, 0x61, 0x69, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x3d, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x36, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x72, 0x69, 0x74, + 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x01, 0x52, 0x08, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x77, 0x61, 0x69, + 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x5b, + 0x0a, 0x17, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x06, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, + 0x6e, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, + 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x75, 0x0a, 0x0c, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x26, 0x0a, 0x0c, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x22, 0x43, 0x0a, 0x0a, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x12, 0x0a, 0x03, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, + 0x03, 0x69, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x22, 0xb3, 0x03, 0x0a, 0x0b, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x49, 0x64, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x71, 0x64, 0x72, 0x61, + 0x6e, 0x74, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x50, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x09, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, + 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, + 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x48, 0x01, 0x52, 0x08, 0x73, 0x68, 0x61, + 0x72, 0x64, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x48, 0x02, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x1a, 0x49, 0x0a, 0x0c, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x68, + 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22, 0x86, 0x01, + 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0e, 0x75, 0x6e, 0x73, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x00, 0x52, 0x0d, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x25, 0x0a, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x06, + 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x86, 0x01, 0x0a, 0x0a, 0x50, 0x6f, 0x69, 0x6e, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1f, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0f, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x49, 0x64, 0x52, 0x02, 0x69, 0x64, 0x12, 0x27, 0x0a, 0x04, 0x68, 0x69, 0x74, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x04, 0x68, 0x69, 0x74, 0x73, 0x12, + 0x2e, 0x0a, 0x06, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, + 0x65, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x22, + 0x3a, 0x0a, 0x0c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x2a, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x22, 0x51, 0x0a, 0x0e, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, + 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x64, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x50, + 0x0a, 0x0d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x2b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x64, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, + 0x22, 0x55, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x57, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, + 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, + 0x22, 0x3a, 0x0a, 0x0b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x2b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x64, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x56, 0x0a, 0x13, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, - 0x74, 0x69, 0x6d, 0x65, 0x22, 0x50, 0x0a, 0x0d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, + 0x74, 0x69, 0x6d, 0x65, 0x22, 0x58, 0x0a, 0x14, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x06, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x71, + 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x50, + 0x0a, 0x0d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x2b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, + 0x22, 0xa9, 0x01, 0x0a, 0x0e, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x10, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, + 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x48, 0x00, + 0x52, 0x0e, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x74, + 0x72, 0x69, 0x65, 0x76, 0x65, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6e, 0x65, 0x78, 0x74, + 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x23, 0x0a, 0x0b, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x89, 0x03, 0x0a, 0x0e, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x64, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0f, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, + 0x64, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3d, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x50, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2e, 0x0a, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x09, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, + 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, + 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x48, 0x01, 0x52, 0x08, 0x73, 0x68, 0x61, + 0x72, 0x64, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x48, 0x02, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x1a, 0x49, 0x0a, 0x0c, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x68, + 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0x51, 0x0a, + 0x0b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x06, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, + 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x64, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, + 0x22, 0x54, 0x0a, 0x11, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, - 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x55, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, - 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x06, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, - 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x0a, - 0x0b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2b, 0x0a, 0x06, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, - 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x64, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x56, 0x0a, 0x13, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x59, 0x0a, 0x16, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, - 0x65, 0x22, 0x58, 0x0a, 0x14, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x06, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, - 0x6e, 0x74, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, - 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x50, 0x0a, 0x0d, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x06, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, - 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xa9, 0x01, - 0x0a, 0x0e, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x3e, 0x0a, 0x10, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x71, 0x64, 0x72, - 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x48, 0x00, 0x52, 0x0e, 0x6e, - 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x2e, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, - 0x76, 0x65, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, - 0x74, 0x69, 0x6d, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, - 0x67, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x23, 0x0a, 0x0b, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x89, - 0x03, 0x0a, 0x0e, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x64, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 0x12, 0x1f, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x3d, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x74, - 0x72, 0x69, 0x65, 0x76, 0x65, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x12, 0x2e, 0x0a, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x73, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x32, 0x0a, 0x09, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, - 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x48, 0x01, 0x52, 0x08, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, - 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x64, 0x72, - 0x61, 0x6e, 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x02, - 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, - 0x49, 0x0a, 0x0c, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0d, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, - 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0x51, 0x0a, 0x0b, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x06, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, - 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x64, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x54, 0x0a, - 0x11, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, - 0x69, 0x6d, 0x65, 0x22, 0x59, 0x0a, 0x16, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, - 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, - 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x53, - 0x0a, 0x10, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, - 0x69, 0x6d, 0x65, 0x22, 0x58, 0x0a, 0x15, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x42, - 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x06, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, - 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x65, 0x22, 0x53, 0x0a, 0x10, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x58, 0x0a, 0x15, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, + 0x65, 0x72, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x2b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, + 0x22, 0x5b, 0x0a, 0x17, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x06, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x71, 0x64, + 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x5b, 0x0a, - 0x17, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, - 0x74, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x57, 0x0a, 0x13, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x2c, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, - 0x69, 0x6d, 0x65, 0x22, 0xce, 0x01, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x29, - 0x0a, 0x06, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x06, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x12, 0x25, 0x0a, 0x04, 0x6d, 0x75, 0x73, - 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, - 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6d, 0x75, 0x73, 0x74, - 0x12, 0x2c, 0x0a, 0x08, 0x6d, 0x75, 0x73, 0x74, 0x5f, 0x6e, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6d, 0x75, 0x73, 0x74, 0x4e, 0x6f, 0x74, 0x12, 0x35, - 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4d, 0x69, 0x6e, 0x53, - 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x53, 0x68, 0x6f, 0x75, - 0x6c, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x68, - 0x6f, 0x75, 0x6c, 0x64, 0x22, 0x5b, 0x0a, 0x09, 0x4d, 0x69, 0x6e, 0x53, 0x68, 0x6f, 0x75, 0x6c, - 0x64, 0x12, 0x31, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x43, - 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0xc8, 0x02, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x2e, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43, 0x6f, 0x6e, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, - 0x35, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x49, 0x73, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x69, - 0x73, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2f, 0x0a, 0x06, 0x68, 0x61, 0x73, 0x5f, 0x69, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, - 0x48, 0x61, 0x73, 0x49, 0x64, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, - 0x52, 0x05, 0x68, 0x61, 0x73, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, - 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x12, 0x32, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x49, 0x73, 0x4e, 0x75, - 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x06, 0x69, - 0x73, 0x4e, 0x75, 0x6c, 0x6c, 0x12, 0x31, 0x0a, 0x06, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4e, - 0x65, 0x73, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, - 0x52, 0x06, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x6f, 0x66, 0x22, 0x24, 0x0a, 0x10, - 0x49, 0x73, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x22, 0x23, 0x0a, 0x0f, 0x49, 0x73, 0x4e, 0x75, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x38, 0x0a, 0x0e, 0x48, 0x61, 0x73, 0x49, 0x64, - 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x06, 0x68, 0x61, 0x73, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x71, 0x64, 0x72, 0x61, - 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x05, 0x68, 0x61, 0x73, 0x49, - 0x64, 0x22, 0x4b, 0x0a, 0x0f, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x64, 0x69, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x57, 0x0a, + 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xce, 0x01, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x12, 0x29, 0x0a, 0x06, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x12, 0x25, 0x0a, 0x04, + 0x6d, 0x75, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x71, 0x64, 0x72, + 0x61, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6d, + 0x75, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x08, 0x6d, 0x75, 0x73, 0x74, 0x5f, 0x6e, 0x6f, 0x74, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x43, + 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6d, 0x75, 0x73, 0x74, 0x4e, 0x6f, + 0x74, 0x12, 0x35, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4d, + 0x69, 0x6e, 0x53, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x53, + 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x69, 0x6e, + 0x5f, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x22, 0x5b, 0x0a, 0x09, 0x4d, 0x69, 0x6e, 0x53, 0x68, + 0x6f, 0x75, 0x6c, 0x64, 0x12, 0x31, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, + 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xc8, 0x02, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x05, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x12, 0x35, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x49, 0x73, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, + 0x52, 0x07, 0x69, 0x73, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2f, 0x0a, 0x06, 0x68, 0x61, 0x73, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, + 0x6e, 0x74, 0x2e, 0x48, 0x61, 0x73, 0x49, 0x64, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x00, 0x52, 0x05, 0x68, 0x61, 0x73, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x06, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, 0x64, 0x72, + 0x61, 0x6e, 0x74, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x49, + 0x73, 0x4e, 0x75, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, + 0x52, 0x06, 0x69, 0x73, 0x4e, 0x75, 0x6c, 0x6c, 0x12, 0x31, 0x0a, 0x06, 0x6e, 0x65, 0x73, 0x74, + 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, + 0x74, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x00, 0x52, 0x06, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x63, + 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x6f, 0x66, 0x22, + 0x24, 0x0a, 0x10, 0x49, 0x73, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x23, 0x0a, 0x0f, 0x49, 0x73, 0x4e, 0x75, 0x6c, 0x6c, 0x43, + 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x38, 0x0a, 0x0e, 0x48, 0x61, + 0x73, 0x49, 0x64, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x06, + 0x68, 0x61, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x71, + 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x05, 0x68, + 0x61, 0x73, 0x49, 0x64, 0x22, 0x4b, 0x0a, 0x0f, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x43, 0x6f, + 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x26, 0x0a, 0x06, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, 0x64, 0x72, 0x61, + 0x6e, 0x74, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x22, 0x8b, 0x03, 0x0a, 0x0e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x26, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x8b, - 0x03, 0x0a, 0x0e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x23, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, - 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x40, 0x0a, - 0x10, 0x67, 0x65, 0x6f, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6f, - 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, - 0x2e, 0x47, 0x65, 0x6f, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x52, - 0x0e, 0x67, 0x65, 0x6f, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x12, - 0x30, 0x0a, 0x0a, 0x67, 0x65, 0x6f, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x6f, - 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x52, 0x09, 0x67, 0x65, 0x6f, 0x52, 0x61, 0x64, 0x69, 0x75, - 0x73, 0x12, 0x36, 0x0a, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, - 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0b, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x0b, 0x67, 0x65, 0x6f, - 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x6f, 0x50, 0x6f, 0x6c, 0x79, 0x67, - 0x6f, 0x6e, 0x52, 0x0a, 0x67, 0x65, 0x6f, 0x50, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x12, 0x3c, - 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, - 0x44, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x64, - 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x22, 0xf8, 0x02, 0x0a, - 0x05, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1a, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, - 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x07, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x07, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x12, 0x1a, - 0x0a, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x00, 0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x12, 0x14, 0x0a, 0x04, 0x74, 0x65, - 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, - 0x12, 0x35, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x48, 0x00, 0x52, 0x08, 0x6b, - 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x36, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, - 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, - 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x67, - 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x12, - 0x43, 0x0a, 0x0f, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, - 0x74, 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x49, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x73, 0x12, 0x42, 0x0a, 0x0f, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x5f, 0x6b, - 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, - 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x2b, 0x0a, 0x0f, 0x52, 0x65, 0x70, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x73, 0x22, 0x2e, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x73, 0x22, 0x7d, 0x0a, 0x05, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x13, 0x0a, - 0x02, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x02, 0x6c, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, - 0x52, 0x02, 0x67, 0x74, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, 0x03, 0x67, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, - 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, 0x03, 0x52, 0x03, 0x6c, - 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x6c, 0x74, 0x42, 0x05, 0x0a, 0x03, - 0x5f, 0x67, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x74, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, - 0x6c, 0x74, 0x65, 0x22, 0xf5, 0x01, 0x0a, 0x0d, 0x44, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, - 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2f, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, - 0x02, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x01, - 0x52, 0x02, 0x67, 0x74, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x03, 0x67, 0x74, 0x65, 0x18, 0x03, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x23, 0x0a, 0x05, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x64, 0x72, + 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x12, 0x40, 0x0a, 0x10, 0x67, 0x65, 0x6f, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x5f, 0x62, 0x6f, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, + 0x61, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x6f, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, + 0x6f, 0x78, 0x52, 0x0e, 0x67, 0x65, 0x6f, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, + 0x6f, 0x78, 0x12, 0x30, 0x0a, 0x0a, 0x67, 0x65, 0x6f, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 0x47, 0x65, 0x6f, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x52, 0x09, 0x67, 0x65, 0x6f, 0x52, 0x61, + 0x64, 0x69, 0x75, 0x73, 0x12, 0x36, 0x0a, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x71, 0x64, 0x72, + 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x0b, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x0b, + 0x67, 0x65, 0x6f, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x6f, 0x50, 0x6f, + 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x52, 0x0a, 0x67, 0x65, 0x6f, 0x50, 0x6f, 0x6c, 0x79, 0x67, 0x6f, + 0x6e, 0x12, 0x3c, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, + 0x6e, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x52, 0x0d, 0x64, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x22, + 0xf8, 0x02, 0x0a, 0x05, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1a, 0x0a, 0x07, 0x6b, 0x65, 0x79, + 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x6b, 0x65, + 0x79, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x07, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x07, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x12, 0x1a, 0x0a, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x12, 0x14, 0x0a, + 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x74, + 0x65, 0x78, 0x74, 0x12, 0x35, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, + 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x48, 0x00, + 0x52, 0x08, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x36, 0x0a, 0x08, 0x69, 0x6e, + 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, + 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, + 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x73, 0x12, 0x43, 0x0a, 0x0f, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x5f, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, + 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x49, + 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x12, 0x42, 0x0a, 0x0f, 0x65, 0x78, 0x63, 0x65, 0x70, + 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x65, 0x78, 0x63, + 0x65, 0x70, 0x74, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x2b, 0x0a, 0x0f, 0x52, 0x65, + 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x18, 0x0a, + 0x07, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x2e, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x69, + 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x08, 0x69, + 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x73, 0x22, 0x7d, 0x0a, 0x05, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x12, 0x13, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x02, + 0x6c, 0x74, 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x01, 0x48, 0x01, 0x52, 0x02, 0x67, 0x74, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x67, 0x74, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, 0x03, 0x67, 0x74, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, 0x03, + 0x52, 0x03, 0x6c, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x6c, 0x74, 0x42, + 0x05, 0x0a, 0x03, 0x5f, 0x67, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x74, 0x65, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x6c, 0x74, 0x65, 0x22, 0xf5, 0x01, 0x0a, 0x0d, 0x44, 0x61, 0x74, 0x65, 0x74, + 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2f, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x48, 0x02, 0x52, 0x03, 0x67, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x03, 0x6c, 0x74, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x48, 0x00, 0x52, 0x02, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x02, 0x67, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x48, 0x01, 0x52, 0x02, 0x67, 0x74, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x03, 0x67, 0x74, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x48, 0x03, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x05, 0x0a, - 0x03, 0x5f, 0x6c, 0x74, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x67, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, - 0x67, 0x74, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6c, 0x74, 0x65, 0x22, 0x72, 0x0a, 0x0e, 0x47, - 0x65, 0x6f, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x12, 0x2b, 0x0a, - 0x08, 0x74, 0x6f, 0x70, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x6f, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x4c, 0x65, 0x66, 0x74, 0x12, 0x33, 0x0a, 0x0c, 0x62, 0x6f, - 0x74, 0x74, 0x6f, 0x6d, 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x10, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x6f, 0x50, 0x6f, 0x69, - 0x6e, 0x74, 0x52, 0x0b, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x52, 0x69, 0x67, 0x68, 0x74, 0x22, - 0x4d, 0x0a, 0x09, 0x47, 0x65, 0x6f, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x12, 0x28, 0x0a, 0x06, - 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x71, - 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, - 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x22, 0x39, - 0x0a, 0x0d, 0x47, 0x65, 0x6f, 0x4c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, - 0x28, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x61, 0x6d, 0x70, 0x48, 0x02, 0x52, 0x03, 0x67, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, + 0x03, 0x6c, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x03, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x6c, 0x74, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x67, 0x74, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x67, 0x74, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6c, 0x74, 0x65, 0x22, 0x72, + 0x0a, 0x0e, 0x47, 0x65, 0x6f, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, + 0x12, 0x2b, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x6f, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x4c, 0x65, 0x66, 0x74, 0x12, 0x33, 0x0a, + 0x0c, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x6f, + 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0b, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x52, 0x69, 0x67, + 0x68, 0x74, 0x22, 0x4d, 0x0a, 0x09, 0x47, 0x65, 0x6f, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x12, + 0x28, 0x0a, 0x06, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x6f, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0x74, 0x0a, 0x0a, 0x47, 0x65, 0x6f, - 0x50, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, - 0x69, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, - 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x6f, 0x4c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x69, 0x6f, 0x72, 0x12, 0x33, 0x0a, 0x09, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x69, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x6f, 0x4c, 0x69, 0x6e, 0x65, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6f, 0x72, 0x73, 0x22, - 0x83, 0x01, 0x0a, 0x0b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x13, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x02, 0x6c, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x01, 0x52, 0x02, 0x67, 0x74, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x67, 0x74, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x03, 0x67, 0x74, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x15, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, - 0x03, 0x6c, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x6c, 0x74, 0x42, 0x05, - 0x0a, 0x03, 0x5f, 0x67, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x74, 0x65, 0x42, 0x06, 0x0a, - 0x04, 0x5f, 0x6c, 0x74, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x0e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x2f, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, - 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x49, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x48, - 0x00, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x06, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, 0x64, 0x72, 0x61, - 0x6e, 0x74, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x42, 0x18, 0x0a, 0x16, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x6f, 0x66, 0x22, 0x32, 0x0a, - 0x0d, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x49, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, - 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x71, 0x64, - 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x03, 0x69, 0x64, - 0x73, 0x22, 0xf7, 0x01, 0x0a, 0x0b, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x12, 0x1f, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, - 0x6e, 0x74, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2e, - 0x0a, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0f, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, - 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x49, - 0x0a, 0x0c, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0d, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x73, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0x2e, 0x0a, 0x08, 0x47, - 0x65, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x6c, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x61, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x6c, 0x61, 0x74, 0x2a, 0x35, 0x0a, 0x11, 0x57, - 0x72, 0x69, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x08, 0x0a, 0x04, 0x57, 0x65, 0x61, 0x6b, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x65, - 0x64, 0x69, 0x75, 0x6d, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x6f, 0x6e, 0x67, - 0x10, 0x02, 0x2a, 0x38, 0x0a, 0x13, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x6c, 0x6c, - 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x61, 0x6a, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x10, 0x01, - 0x12, 0x0a, 0x0a, 0x06, 0x51, 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x10, 0x02, 0x2a, 0x9a, 0x01, 0x0a, - 0x09, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x00, - 0x12, 0x14, 0x0a, 0x10, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x49, 0x6e, 0x74, - 0x65, 0x67, 0x65, 0x72, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, - 0x79, 0x70, 0x65, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x47, 0x65, 0x6f, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x54, 0x65, 0x78, 0x74, 0x10, 0x04, 0x12, - 0x11, 0x0a, 0x0d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x42, 0x6f, 0x6f, 0x6c, - 0x10, 0x05, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x44, - 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x10, 0x06, 0x2a, 0x1e, 0x0a, 0x09, 0x44, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x73, 0x63, 0x10, 0x00, 0x12, - 0x08, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, 0x10, 0x01, 0x2a, 0x35, 0x0a, 0x11, 0x52, 0x65, 0x63, - 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x11, - 0x0a, 0x0d, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x10, - 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x65, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x10, 0x01, - 0x2a, 0x11, 0x0a, 0x06, 0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x07, 0x0a, 0x03, 0x52, 0x52, - 0x46, 0x10, 0x00, 0x2a, 0x5b, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, - 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0d, - 0x0a, 0x09, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x10, 0x02, 0x12, 0x11, 0x0a, - 0x0d, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x10, 0x03, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x52, 0x06, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x64, + 0x69, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x72, 0x61, 0x64, 0x69, 0x75, + 0x73, 0x22, 0x39, 0x0a, 0x0d, 0x47, 0x65, 0x6f, 0x4c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x6f, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0x74, 0x0a, 0x0a, + 0x47, 0x65, 0x6f, 0x50, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x08, 0x65, 0x78, + 0x74, 0x65, 0x72, 0x69, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, + 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x6f, 0x4c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x69, 0x6f, 0x72, 0x12, 0x33, 0x0a, + 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x6f, 0x4c, 0x69, 0x6e, + 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6f, + 0x72, 0x73, 0x22, 0x83, 0x01, 0x0a, 0x0b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x13, 0x0a, 0x02, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, + 0x52, 0x02, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x67, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x02, 0x67, 0x74, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, + 0x67, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x03, 0x67, 0x74, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6c, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x03, 0x52, 0x03, 0x6c, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x6c, + 0x74, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x67, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x74, 0x65, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6c, 0x74, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x0e, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x2f, 0x0a, 0x06, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, + 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x49, 0x64, 0x73, 0x4c, 0x69, + 0x73, 0x74, 0x48, 0x00, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x06, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x71, + 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x18, 0x0a, 0x16, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x6f, 0x66, + 0x22, 0x32, 0x0a, 0x0d, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x49, 0x64, 0x73, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x21, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, + 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x52, + 0x03, 0x69, 0x64, 0x73, 0x22, 0xf7, 0x01, 0x0a, 0x0b, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x12, 0x1f, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0f, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, + 0x64, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x50, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x12, 0x2e, 0x0a, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x73, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x88, 0x01, + 0x01, 0x1a, 0x49, 0x0a, 0x0c, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0x2e, + 0x0a, 0x08, 0x47, 0x65, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x6c, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, + 0x6c, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x6c, 0x61, 0x74, 0x2a, 0x35, + 0x0a, 0x11, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x57, 0x65, 0x61, 0x6b, 0x10, 0x00, 0x12, 0x0a, 0x0a, + 0x06, 0x4d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x74, 0x72, + 0x6f, 0x6e, 0x67, 0x10, 0x02, 0x2a, 0x38, 0x0a, 0x13, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, + 0x41, 0x6c, 0x6c, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x61, 0x6a, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x51, 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x10, 0x02, 0x2a, + 0xad, 0x01, 0x0a, 0x09, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, + 0x10, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, + 0x64, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, + 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x10, 0x02, 0x12, 0x10, 0x0a, + 0x0c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x47, 0x65, 0x6f, 0x10, 0x03, 0x12, + 0x11, 0x0a, 0x0d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x54, 0x65, 0x78, 0x74, + 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x42, + 0x6f, 0x6f, 0x6c, 0x10, 0x05, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, + 0x70, 0x65, 0x44, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x55, 0x75, 0x69, 0x64, 0x10, 0x07, 0x2a, + 0x1e, 0x0a, 0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x07, 0x0a, 0x03, + 0x41, 0x73, 0x63, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, 0x10, 0x01, 0x2a, + 0x35, 0x0a, 0x11, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x61, + 0x74, 0x65, 0x67, 0x79, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x56, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x65, 0x73, 0x74, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x10, 0x01, 0x2a, 0x1b, 0x0a, 0x06, 0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x07, 0x0a, 0x03, 0x52, 0x52, 0x46, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x42, 0x53, + 0x46, 0x10, 0x01, 0x2a, 0x14, 0x0a, 0x06, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x0a, 0x0a, + 0x06, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x10, 0x00, 0x2a, 0x5b, 0x0a, 0x0c, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x6e, 0x6b, + 0x6e, 0x6f, 0x77, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, + 0x65, 0x64, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, + 0x64, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x6a, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x10, 0x03, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -10214,8 +10751,8 @@ func file_points_proto_rawDescGZIP() []byte { return file_points_proto_rawDescData } -var file_points_proto_enumTypes = make([]protoimpl.EnumInfo, 7) -var file_points_proto_msgTypes = make([]protoimpl.MessageInfo, 118) +var file_points_proto_enumTypes = make([]protoimpl.EnumInfo, 8) +var file_points_proto_msgTypes = make([]protoimpl.MessageInfo, 122) var file_points_proto_goTypes = []interface{}{ (WriteOrderingType)(0), // 0: qdrant.WriteOrderingType (ReadConsistencyType)(0), // 1: qdrant.ReadConsistencyType @@ -10223,402 +10760,420 @@ var file_points_proto_goTypes = []interface{}{ (Direction)(0), // 3: qdrant.Direction (RecommendStrategy)(0), // 4: qdrant.RecommendStrategy (Fusion)(0), // 5: qdrant.Fusion - (UpdateStatus)(0), // 6: qdrant.UpdateStatus - (*WriteOrdering)(nil), // 7: qdrant.WriteOrdering - (*ReadConsistency)(nil), // 8: qdrant.ReadConsistency - (*PointId)(nil), // 9: qdrant.PointId - (*SparseIndices)(nil), // 10: qdrant.SparseIndices - (*Vector)(nil), // 11: qdrant.Vector - (*DenseVector)(nil), // 12: qdrant.DenseVector - (*SparseVector)(nil), // 13: qdrant.SparseVector - (*MultiDenseVector)(nil), // 14: qdrant.MultiDenseVector - (*VectorInput)(nil), // 15: qdrant.VectorInput - (*ShardKeySelector)(nil), // 16: qdrant.ShardKeySelector - (*UpsertPoints)(nil), // 17: qdrant.UpsertPoints - (*DeletePoints)(nil), // 18: qdrant.DeletePoints - (*GetPoints)(nil), // 19: qdrant.GetPoints - (*UpdatePointVectors)(nil), // 20: qdrant.UpdatePointVectors - (*PointVectors)(nil), // 21: qdrant.PointVectors - (*DeletePointVectors)(nil), // 22: qdrant.DeletePointVectors - (*SetPayloadPoints)(nil), // 23: qdrant.SetPayloadPoints - (*DeletePayloadPoints)(nil), // 24: qdrant.DeletePayloadPoints - (*ClearPayloadPoints)(nil), // 25: qdrant.ClearPayloadPoints - (*CreateFieldIndexCollection)(nil), // 26: qdrant.CreateFieldIndexCollection - (*DeleteFieldIndexCollection)(nil), // 27: qdrant.DeleteFieldIndexCollection - (*PayloadIncludeSelector)(nil), // 28: qdrant.PayloadIncludeSelector - (*PayloadExcludeSelector)(nil), // 29: qdrant.PayloadExcludeSelector - (*WithPayloadSelector)(nil), // 30: qdrant.WithPayloadSelector - (*NamedVectors)(nil), // 31: qdrant.NamedVectors - (*Vectors)(nil), // 32: qdrant.Vectors - (*VectorsSelector)(nil), // 33: qdrant.VectorsSelector - (*WithVectorsSelector)(nil), // 34: qdrant.WithVectorsSelector - (*QuantizationSearchParams)(nil), // 35: qdrant.QuantizationSearchParams - (*SearchParams)(nil), // 36: qdrant.SearchParams - (*SearchPoints)(nil), // 37: qdrant.SearchPoints - (*SearchBatchPoints)(nil), // 38: qdrant.SearchBatchPoints - (*WithLookup)(nil), // 39: qdrant.WithLookup - (*SearchPointGroups)(nil), // 40: qdrant.SearchPointGroups - (*StartFrom)(nil), // 41: qdrant.StartFrom - (*OrderBy)(nil), // 42: qdrant.OrderBy - (*ScrollPoints)(nil), // 43: qdrant.ScrollPoints - (*LookupLocation)(nil), // 44: qdrant.LookupLocation - (*RecommendPoints)(nil), // 45: qdrant.RecommendPoints - (*RecommendBatchPoints)(nil), // 46: qdrant.RecommendBatchPoints - (*RecommendPointGroups)(nil), // 47: qdrant.RecommendPointGroups - (*TargetVector)(nil), // 48: qdrant.TargetVector - (*VectorExample)(nil), // 49: qdrant.VectorExample - (*ContextExamplePair)(nil), // 50: qdrant.ContextExamplePair - (*DiscoverPoints)(nil), // 51: qdrant.DiscoverPoints - (*DiscoverBatchPoints)(nil), // 52: qdrant.DiscoverBatchPoints - (*CountPoints)(nil), // 53: qdrant.CountPoints - (*RecommendInput)(nil), // 54: qdrant.RecommendInput - (*ContextInputPair)(nil), // 55: qdrant.ContextInputPair - (*DiscoverInput)(nil), // 56: qdrant.DiscoverInput - (*ContextInput)(nil), // 57: qdrant.ContextInput - (*Query)(nil), // 58: qdrant.Query - (*PrefetchQuery)(nil), // 59: qdrant.PrefetchQuery - (*QueryPoints)(nil), // 60: qdrant.QueryPoints - (*QueryBatchPoints)(nil), // 61: qdrant.QueryBatchPoints - (*PointsUpdateOperation)(nil), // 62: qdrant.PointsUpdateOperation - (*UpdateBatchPoints)(nil), // 63: qdrant.UpdateBatchPoints - (*PointsOperationResponse)(nil), // 64: qdrant.PointsOperationResponse - (*UpdateResult)(nil), // 65: qdrant.UpdateResult - (*OrderValue)(nil), // 66: qdrant.OrderValue - (*ScoredPoint)(nil), // 67: qdrant.ScoredPoint - (*GroupId)(nil), // 68: qdrant.GroupId - (*PointGroup)(nil), // 69: qdrant.PointGroup - (*GroupsResult)(nil), // 70: qdrant.GroupsResult - (*SearchResponse)(nil), // 71: qdrant.SearchResponse - (*QueryResponse)(nil), // 72: qdrant.QueryResponse - (*QueryBatchResponse)(nil), // 73: qdrant.QueryBatchResponse - (*BatchResult)(nil), // 74: qdrant.BatchResult - (*SearchBatchResponse)(nil), // 75: qdrant.SearchBatchResponse - (*SearchGroupsResponse)(nil), // 76: qdrant.SearchGroupsResponse - (*CountResponse)(nil), // 77: qdrant.CountResponse - (*ScrollResponse)(nil), // 78: qdrant.ScrollResponse - (*CountResult)(nil), // 79: qdrant.CountResult - (*RetrievedPoint)(nil), // 80: qdrant.RetrievedPoint - (*GetResponse)(nil), // 81: qdrant.GetResponse - (*RecommendResponse)(nil), // 82: qdrant.RecommendResponse - (*RecommendBatchResponse)(nil), // 83: qdrant.RecommendBatchResponse - (*DiscoverResponse)(nil), // 84: qdrant.DiscoverResponse - (*DiscoverBatchResponse)(nil), // 85: qdrant.DiscoverBatchResponse - (*RecommendGroupsResponse)(nil), // 86: qdrant.RecommendGroupsResponse - (*UpdateBatchResponse)(nil), // 87: qdrant.UpdateBatchResponse - (*Filter)(nil), // 88: qdrant.Filter - (*MinShould)(nil), // 89: qdrant.MinShould - (*Condition)(nil), // 90: qdrant.Condition - (*IsEmptyCondition)(nil), // 91: qdrant.IsEmptyCondition - (*IsNullCondition)(nil), // 92: qdrant.IsNullCondition - (*HasIdCondition)(nil), // 93: qdrant.HasIdCondition - (*NestedCondition)(nil), // 94: qdrant.NestedCondition - (*FieldCondition)(nil), // 95: qdrant.FieldCondition - (*Match)(nil), // 96: qdrant.Match - (*RepeatedStrings)(nil), // 97: qdrant.RepeatedStrings - (*RepeatedIntegers)(nil), // 98: qdrant.RepeatedIntegers - (*Range)(nil), // 99: qdrant.Range - (*DatetimeRange)(nil), // 100: qdrant.DatetimeRange - (*GeoBoundingBox)(nil), // 101: qdrant.GeoBoundingBox - (*GeoRadius)(nil), // 102: qdrant.GeoRadius - (*GeoLineString)(nil), // 103: qdrant.GeoLineString - (*GeoPolygon)(nil), // 104: qdrant.GeoPolygon - (*ValuesCount)(nil), // 105: qdrant.ValuesCount - (*PointsSelector)(nil), // 106: qdrant.PointsSelector - (*PointsIdsList)(nil), // 107: qdrant.PointsIdsList - (*PointStruct)(nil), // 108: qdrant.PointStruct - (*GeoPoint)(nil), // 109: qdrant.GeoPoint - nil, // 110: qdrant.SetPayloadPoints.PayloadEntry - nil, // 111: qdrant.NamedVectors.VectorsEntry - (*PointsUpdateOperation_PointStructList)(nil), // 112: qdrant.PointsUpdateOperation.PointStructList - (*PointsUpdateOperation_SetPayload)(nil), // 113: qdrant.PointsUpdateOperation.SetPayload - (*PointsUpdateOperation_OverwritePayload)(nil), // 114: qdrant.PointsUpdateOperation.OverwritePayload - (*PointsUpdateOperation_DeletePayload)(nil), // 115: qdrant.PointsUpdateOperation.DeletePayload - (*PointsUpdateOperation_UpdateVectors)(nil), // 116: qdrant.PointsUpdateOperation.UpdateVectors - (*PointsUpdateOperation_DeleteVectors)(nil), // 117: qdrant.PointsUpdateOperation.DeleteVectors - (*PointsUpdateOperation_DeletePoints)(nil), // 118: qdrant.PointsUpdateOperation.DeletePoints - (*PointsUpdateOperation_ClearPayload)(nil), // 119: qdrant.PointsUpdateOperation.ClearPayload - nil, // 120: qdrant.PointsUpdateOperation.SetPayload.PayloadEntry - nil, // 121: qdrant.PointsUpdateOperation.OverwritePayload.PayloadEntry - nil, // 122: qdrant.ScoredPoint.PayloadEntry - nil, // 123: qdrant.RetrievedPoint.PayloadEntry - nil, // 124: qdrant.PointStruct.PayloadEntry - (*ShardKey)(nil), // 125: qdrant.ShardKey - (*PayloadIndexParams)(nil), // 126: qdrant.PayloadIndexParams - (*timestamppb.Timestamp)(nil), // 127: google.protobuf.Timestamp - (*Value)(nil), // 128: qdrant.Value + (Sample)(0), // 6: qdrant.Sample + (UpdateStatus)(0), // 7: qdrant.UpdateStatus + (*WriteOrdering)(nil), // 8: qdrant.WriteOrdering + (*ReadConsistency)(nil), // 9: qdrant.ReadConsistency + (*PointId)(nil), // 10: qdrant.PointId + (*SparseIndices)(nil), // 11: qdrant.SparseIndices + (*Vector)(nil), // 12: qdrant.Vector + (*DenseVector)(nil), // 13: qdrant.DenseVector + (*SparseVector)(nil), // 14: qdrant.SparseVector + (*MultiDenseVector)(nil), // 15: qdrant.MultiDenseVector + (*VectorInput)(nil), // 16: qdrant.VectorInput + (*ShardKeySelector)(nil), // 17: qdrant.ShardKeySelector + (*UpsertPoints)(nil), // 18: qdrant.UpsertPoints + (*DeletePoints)(nil), // 19: qdrant.DeletePoints + (*GetPoints)(nil), // 20: qdrant.GetPoints + (*UpdatePointVectors)(nil), // 21: qdrant.UpdatePointVectors + (*PointVectors)(nil), // 22: qdrant.PointVectors + (*DeletePointVectors)(nil), // 23: qdrant.DeletePointVectors + (*SetPayloadPoints)(nil), // 24: qdrant.SetPayloadPoints + (*DeletePayloadPoints)(nil), // 25: qdrant.DeletePayloadPoints + (*ClearPayloadPoints)(nil), // 26: qdrant.ClearPayloadPoints + (*CreateFieldIndexCollection)(nil), // 27: qdrant.CreateFieldIndexCollection + (*DeleteFieldIndexCollection)(nil), // 28: qdrant.DeleteFieldIndexCollection + (*PayloadIncludeSelector)(nil), // 29: qdrant.PayloadIncludeSelector + (*PayloadExcludeSelector)(nil), // 30: qdrant.PayloadExcludeSelector + (*WithPayloadSelector)(nil), // 31: qdrant.WithPayloadSelector + (*NamedVectors)(nil), // 32: qdrant.NamedVectors + (*Vectors)(nil), // 33: qdrant.Vectors + (*VectorsSelector)(nil), // 34: qdrant.VectorsSelector + (*WithVectorsSelector)(nil), // 35: qdrant.WithVectorsSelector + (*QuantizationSearchParams)(nil), // 36: qdrant.QuantizationSearchParams + (*SearchParams)(nil), // 37: qdrant.SearchParams + (*SearchPoints)(nil), // 38: qdrant.SearchPoints + (*SearchBatchPoints)(nil), // 39: qdrant.SearchBatchPoints + (*WithLookup)(nil), // 40: qdrant.WithLookup + (*SearchPointGroups)(nil), // 41: qdrant.SearchPointGroups + (*StartFrom)(nil), // 42: qdrant.StartFrom + (*OrderBy)(nil), // 43: qdrant.OrderBy + (*ScrollPoints)(nil), // 44: qdrant.ScrollPoints + (*LookupLocation)(nil), // 45: qdrant.LookupLocation + (*RecommendPoints)(nil), // 46: qdrant.RecommendPoints + (*RecommendBatchPoints)(nil), // 47: qdrant.RecommendBatchPoints + (*RecommendPointGroups)(nil), // 48: qdrant.RecommendPointGroups + (*TargetVector)(nil), // 49: qdrant.TargetVector + (*VectorExample)(nil), // 50: qdrant.VectorExample + (*ContextExamplePair)(nil), // 51: qdrant.ContextExamplePair + (*DiscoverPoints)(nil), // 52: qdrant.DiscoverPoints + (*DiscoverBatchPoints)(nil), // 53: qdrant.DiscoverBatchPoints + (*CountPoints)(nil), // 54: qdrant.CountPoints + (*RecommendInput)(nil), // 55: qdrant.RecommendInput + (*ContextInputPair)(nil), // 56: qdrant.ContextInputPair + (*DiscoverInput)(nil), // 57: qdrant.DiscoverInput + (*ContextInput)(nil), // 58: qdrant.ContextInput + (*Query)(nil), // 59: qdrant.Query + (*PrefetchQuery)(nil), // 60: qdrant.PrefetchQuery + (*QueryPoints)(nil), // 61: qdrant.QueryPoints + (*QueryBatchPoints)(nil), // 62: qdrant.QueryBatchPoints + (*QueryPointGroups)(nil), // 63: qdrant.QueryPointGroups + (*FacetValue)(nil), // 64: qdrant.FacetValue + (*FacetValueHit)(nil), // 65: qdrant.FacetValueHit + (*PointsUpdateOperation)(nil), // 66: qdrant.PointsUpdateOperation + (*UpdateBatchPoints)(nil), // 67: qdrant.UpdateBatchPoints + (*PointsOperationResponse)(nil), // 68: qdrant.PointsOperationResponse + (*UpdateResult)(nil), // 69: qdrant.UpdateResult + (*OrderValue)(nil), // 70: qdrant.OrderValue + (*ScoredPoint)(nil), // 71: qdrant.ScoredPoint + (*GroupId)(nil), // 72: qdrant.GroupId + (*PointGroup)(nil), // 73: qdrant.PointGroup + (*GroupsResult)(nil), // 74: qdrant.GroupsResult + (*SearchResponse)(nil), // 75: qdrant.SearchResponse + (*QueryResponse)(nil), // 76: qdrant.QueryResponse + (*QueryBatchResponse)(nil), // 77: qdrant.QueryBatchResponse + (*QueryGroupsResponse)(nil), // 78: qdrant.QueryGroupsResponse + (*BatchResult)(nil), // 79: qdrant.BatchResult + (*SearchBatchResponse)(nil), // 80: qdrant.SearchBatchResponse + (*SearchGroupsResponse)(nil), // 81: qdrant.SearchGroupsResponse + (*CountResponse)(nil), // 82: qdrant.CountResponse + (*ScrollResponse)(nil), // 83: qdrant.ScrollResponse + (*CountResult)(nil), // 84: qdrant.CountResult + (*RetrievedPoint)(nil), // 85: qdrant.RetrievedPoint + (*GetResponse)(nil), // 86: qdrant.GetResponse + (*RecommendResponse)(nil), // 87: qdrant.RecommendResponse + (*RecommendBatchResponse)(nil), // 88: qdrant.RecommendBatchResponse + (*DiscoverResponse)(nil), // 89: qdrant.DiscoverResponse + (*DiscoverBatchResponse)(nil), // 90: qdrant.DiscoverBatchResponse + (*RecommendGroupsResponse)(nil), // 91: qdrant.RecommendGroupsResponse + (*UpdateBatchResponse)(nil), // 92: qdrant.UpdateBatchResponse + (*Filter)(nil), // 93: qdrant.Filter + (*MinShould)(nil), // 94: qdrant.MinShould + (*Condition)(nil), // 95: qdrant.Condition + (*IsEmptyCondition)(nil), // 96: qdrant.IsEmptyCondition + (*IsNullCondition)(nil), // 97: qdrant.IsNullCondition + (*HasIdCondition)(nil), // 98: qdrant.HasIdCondition + (*NestedCondition)(nil), // 99: qdrant.NestedCondition + (*FieldCondition)(nil), // 100: qdrant.FieldCondition + (*Match)(nil), // 101: qdrant.Match + (*RepeatedStrings)(nil), // 102: qdrant.RepeatedStrings + (*RepeatedIntegers)(nil), // 103: qdrant.RepeatedIntegers + (*Range)(nil), // 104: qdrant.Range + (*DatetimeRange)(nil), // 105: qdrant.DatetimeRange + (*GeoBoundingBox)(nil), // 106: qdrant.GeoBoundingBox + (*GeoRadius)(nil), // 107: qdrant.GeoRadius + (*GeoLineString)(nil), // 108: qdrant.GeoLineString + (*GeoPolygon)(nil), // 109: qdrant.GeoPolygon + (*ValuesCount)(nil), // 110: qdrant.ValuesCount + (*PointsSelector)(nil), // 111: qdrant.PointsSelector + (*PointsIdsList)(nil), // 112: qdrant.PointsIdsList + (*PointStruct)(nil), // 113: qdrant.PointStruct + (*GeoPoint)(nil), // 114: qdrant.GeoPoint + nil, // 115: qdrant.SetPayloadPoints.PayloadEntry + nil, // 116: qdrant.NamedVectors.VectorsEntry + (*PointsUpdateOperation_PointStructList)(nil), // 117: qdrant.PointsUpdateOperation.PointStructList + (*PointsUpdateOperation_SetPayload)(nil), // 118: qdrant.PointsUpdateOperation.SetPayload + (*PointsUpdateOperation_OverwritePayload)(nil), // 119: qdrant.PointsUpdateOperation.OverwritePayload + (*PointsUpdateOperation_DeletePayload)(nil), // 120: qdrant.PointsUpdateOperation.DeletePayload + (*PointsUpdateOperation_UpdateVectors)(nil), // 121: qdrant.PointsUpdateOperation.UpdateVectors + (*PointsUpdateOperation_DeleteVectors)(nil), // 122: qdrant.PointsUpdateOperation.DeleteVectors + (*PointsUpdateOperation_DeletePoints)(nil), // 123: qdrant.PointsUpdateOperation.DeletePoints + (*PointsUpdateOperation_ClearPayload)(nil), // 124: qdrant.PointsUpdateOperation.ClearPayload + nil, // 125: qdrant.PointsUpdateOperation.SetPayload.PayloadEntry + nil, // 126: qdrant.PointsUpdateOperation.OverwritePayload.PayloadEntry + nil, // 127: qdrant.ScoredPoint.PayloadEntry + nil, // 128: qdrant.RetrievedPoint.PayloadEntry + nil, // 129: qdrant.PointStruct.PayloadEntry + (*ShardKey)(nil), // 130: qdrant.ShardKey + (*PayloadIndexParams)(nil), // 131: qdrant.PayloadIndexParams + (*timestamppb.Timestamp)(nil), // 132: google.protobuf.Timestamp + (*Value)(nil), // 133: qdrant.Value } var file_points_proto_depIdxs = []int32{ 0, // 0: qdrant.WriteOrdering.type:type_name -> qdrant.WriteOrderingType 1, // 1: qdrant.ReadConsistency.type:type_name -> qdrant.ReadConsistencyType - 10, // 2: qdrant.Vector.indices:type_name -> qdrant.SparseIndices - 12, // 3: qdrant.MultiDenseVector.vectors:type_name -> qdrant.DenseVector - 9, // 4: qdrant.VectorInput.id:type_name -> qdrant.PointId - 12, // 5: qdrant.VectorInput.dense:type_name -> qdrant.DenseVector - 13, // 6: qdrant.VectorInput.sparse:type_name -> qdrant.SparseVector - 14, // 7: qdrant.VectorInput.multi_dense:type_name -> qdrant.MultiDenseVector - 125, // 8: qdrant.ShardKeySelector.shard_keys:type_name -> qdrant.ShardKey - 108, // 9: qdrant.UpsertPoints.points:type_name -> qdrant.PointStruct - 7, // 10: qdrant.UpsertPoints.ordering:type_name -> qdrant.WriteOrdering - 16, // 11: qdrant.UpsertPoints.shard_key_selector:type_name -> qdrant.ShardKeySelector - 106, // 12: qdrant.DeletePoints.points:type_name -> qdrant.PointsSelector - 7, // 13: qdrant.DeletePoints.ordering:type_name -> qdrant.WriteOrdering - 16, // 14: qdrant.DeletePoints.shard_key_selector:type_name -> qdrant.ShardKeySelector - 9, // 15: qdrant.GetPoints.ids:type_name -> qdrant.PointId - 30, // 16: qdrant.GetPoints.with_payload:type_name -> qdrant.WithPayloadSelector - 34, // 17: qdrant.GetPoints.with_vectors:type_name -> qdrant.WithVectorsSelector - 8, // 18: qdrant.GetPoints.read_consistency:type_name -> qdrant.ReadConsistency - 16, // 19: qdrant.GetPoints.shard_key_selector:type_name -> qdrant.ShardKeySelector - 21, // 20: qdrant.UpdatePointVectors.points:type_name -> qdrant.PointVectors - 7, // 21: qdrant.UpdatePointVectors.ordering:type_name -> qdrant.WriteOrdering - 16, // 22: qdrant.UpdatePointVectors.shard_key_selector:type_name -> qdrant.ShardKeySelector - 9, // 23: qdrant.PointVectors.id:type_name -> qdrant.PointId - 32, // 24: qdrant.PointVectors.vectors:type_name -> qdrant.Vectors - 106, // 25: qdrant.DeletePointVectors.points_selector:type_name -> qdrant.PointsSelector - 33, // 26: qdrant.DeletePointVectors.vectors:type_name -> qdrant.VectorsSelector - 7, // 27: qdrant.DeletePointVectors.ordering:type_name -> qdrant.WriteOrdering - 16, // 28: qdrant.DeletePointVectors.shard_key_selector:type_name -> qdrant.ShardKeySelector - 110, // 29: qdrant.SetPayloadPoints.payload:type_name -> qdrant.SetPayloadPoints.PayloadEntry - 106, // 30: qdrant.SetPayloadPoints.points_selector:type_name -> qdrant.PointsSelector - 7, // 31: qdrant.SetPayloadPoints.ordering:type_name -> qdrant.WriteOrdering - 16, // 32: qdrant.SetPayloadPoints.shard_key_selector:type_name -> qdrant.ShardKeySelector - 106, // 33: qdrant.DeletePayloadPoints.points_selector:type_name -> qdrant.PointsSelector - 7, // 34: qdrant.DeletePayloadPoints.ordering:type_name -> qdrant.WriteOrdering - 16, // 35: qdrant.DeletePayloadPoints.shard_key_selector:type_name -> qdrant.ShardKeySelector - 106, // 36: qdrant.ClearPayloadPoints.points:type_name -> qdrant.PointsSelector - 7, // 37: qdrant.ClearPayloadPoints.ordering:type_name -> qdrant.WriteOrdering - 16, // 38: qdrant.ClearPayloadPoints.shard_key_selector:type_name -> qdrant.ShardKeySelector + 11, // 2: qdrant.Vector.indices:type_name -> qdrant.SparseIndices + 13, // 3: qdrant.MultiDenseVector.vectors:type_name -> qdrant.DenseVector + 10, // 4: qdrant.VectorInput.id:type_name -> qdrant.PointId + 13, // 5: qdrant.VectorInput.dense:type_name -> qdrant.DenseVector + 14, // 6: qdrant.VectorInput.sparse:type_name -> qdrant.SparseVector + 15, // 7: qdrant.VectorInput.multi_dense:type_name -> qdrant.MultiDenseVector + 130, // 8: qdrant.ShardKeySelector.shard_keys:type_name -> qdrant.ShardKey + 113, // 9: qdrant.UpsertPoints.points:type_name -> qdrant.PointStruct + 8, // 10: qdrant.UpsertPoints.ordering:type_name -> qdrant.WriteOrdering + 17, // 11: qdrant.UpsertPoints.shard_key_selector:type_name -> qdrant.ShardKeySelector + 111, // 12: qdrant.DeletePoints.points:type_name -> qdrant.PointsSelector + 8, // 13: qdrant.DeletePoints.ordering:type_name -> qdrant.WriteOrdering + 17, // 14: qdrant.DeletePoints.shard_key_selector:type_name -> qdrant.ShardKeySelector + 10, // 15: qdrant.GetPoints.ids:type_name -> qdrant.PointId + 31, // 16: qdrant.GetPoints.with_payload:type_name -> qdrant.WithPayloadSelector + 35, // 17: qdrant.GetPoints.with_vectors:type_name -> qdrant.WithVectorsSelector + 9, // 18: qdrant.GetPoints.read_consistency:type_name -> qdrant.ReadConsistency + 17, // 19: qdrant.GetPoints.shard_key_selector:type_name -> qdrant.ShardKeySelector + 22, // 20: qdrant.UpdatePointVectors.points:type_name -> qdrant.PointVectors + 8, // 21: qdrant.UpdatePointVectors.ordering:type_name -> qdrant.WriteOrdering + 17, // 22: qdrant.UpdatePointVectors.shard_key_selector:type_name -> qdrant.ShardKeySelector + 10, // 23: qdrant.PointVectors.id:type_name -> qdrant.PointId + 33, // 24: qdrant.PointVectors.vectors:type_name -> qdrant.Vectors + 111, // 25: qdrant.DeletePointVectors.points_selector:type_name -> qdrant.PointsSelector + 34, // 26: qdrant.DeletePointVectors.vectors:type_name -> qdrant.VectorsSelector + 8, // 27: qdrant.DeletePointVectors.ordering:type_name -> qdrant.WriteOrdering + 17, // 28: qdrant.DeletePointVectors.shard_key_selector:type_name -> qdrant.ShardKeySelector + 115, // 29: qdrant.SetPayloadPoints.payload:type_name -> qdrant.SetPayloadPoints.PayloadEntry + 111, // 30: qdrant.SetPayloadPoints.points_selector:type_name -> qdrant.PointsSelector + 8, // 31: qdrant.SetPayloadPoints.ordering:type_name -> qdrant.WriteOrdering + 17, // 32: qdrant.SetPayloadPoints.shard_key_selector:type_name -> qdrant.ShardKeySelector + 111, // 33: qdrant.DeletePayloadPoints.points_selector:type_name -> qdrant.PointsSelector + 8, // 34: qdrant.DeletePayloadPoints.ordering:type_name -> qdrant.WriteOrdering + 17, // 35: qdrant.DeletePayloadPoints.shard_key_selector:type_name -> qdrant.ShardKeySelector + 111, // 36: qdrant.ClearPayloadPoints.points:type_name -> qdrant.PointsSelector + 8, // 37: qdrant.ClearPayloadPoints.ordering:type_name -> qdrant.WriteOrdering + 17, // 38: qdrant.ClearPayloadPoints.shard_key_selector:type_name -> qdrant.ShardKeySelector 2, // 39: qdrant.CreateFieldIndexCollection.field_type:type_name -> qdrant.FieldType - 126, // 40: qdrant.CreateFieldIndexCollection.field_index_params:type_name -> qdrant.PayloadIndexParams - 7, // 41: qdrant.CreateFieldIndexCollection.ordering:type_name -> qdrant.WriteOrdering - 7, // 42: qdrant.DeleteFieldIndexCollection.ordering:type_name -> qdrant.WriteOrdering - 28, // 43: qdrant.WithPayloadSelector.include:type_name -> qdrant.PayloadIncludeSelector - 29, // 44: qdrant.WithPayloadSelector.exclude:type_name -> qdrant.PayloadExcludeSelector - 111, // 45: qdrant.NamedVectors.vectors:type_name -> qdrant.NamedVectors.VectorsEntry - 11, // 46: qdrant.Vectors.vector:type_name -> qdrant.Vector - 31, // 47: qdrant.Vectors.vectors:type_name -> qdrant.NamedVectors - 33, // 48: qdrant.WithVectorsSelector.include:type_name -> qdrant.VectorsSelector - 35, // 49: qdrant.SearchParams.quantization:type_name -> qdrant.QuantizationSearchParams - 88, // 50: qdrant.SearchPoints.filter:type_name -> qdrant.Filter - 30, // 51: qdrant.SearchPoints.with_payload:type_name -> qdrant.WithPayloadSelector - 36, // 52: qdrant.SearchPoints.params:type_name -> qdrant.SearchParams - 34, // 53: qdrant.SearchPoints.with_vectors:type_name -> qdrant.WithVectorsSelector - 8, // 54: qdrant.SearchPoints.read_consistency:type_name -> qdrant.ReadConsistency - 16, // 55: qdrant.SearchPoints.shard_key_selector:type_name -> qdrant.ShardKeySelector - 10, // 56: qdrant.SearchPoints.sparse_indices:type_name -> qdrant.SparseIndices - 37, // 57: qdrant.SearchBatchPoints.search_points:type_name -> qdrant.SearchPoints - 8, // 58: qdrant.SearchBatchPoints.read_consistency:type_name -> qdrant.ReadConsistency - 30, // 59: qdrant.WithLookup.with_payload:type_name -> qdrant.WithPayloadSelector - 34, // 60: qdrant.WithLookup.with_vectors:type_name -> qdrant.WithVectorsSelector - 88, // 61: qdrant.SearchPointGroups.filter:type_name -> qdrant.Filter - 30, // 62: qdrant.SearchPointGroups.with_payload:type_name -> qdrant.WithPayloadSelector - 36, // 63: qdrant.SearchPointGroups.params:type_name -> qdrant.SearchParams - 34, // 64: qdrant.SearchPointGroups.with_vectors:type_name -> qdrant.WithVectorsSelector - 8, // 65: qdrant.SearchPointGroups.read_consistency:type_name -> qdrant.ReadConsistency - 39, // 66: qdrant.SearchPointGroups.with_lookup:type_name -> qdrant.WithLookup - 16, // 67: qdrant.SearchPointGroups.shard_key_selector:type_name -> qdrant.ShardKeySelector - 10, // 68: qdrant.SearchPointGroups.sparse_indices:type_name -> qdrant.SparseIndices - 127, // 69: qdrant.StartFrom.timestamp:type_name -> google.protobuf.Timestamp + 131, // 40: qdrant.CreateFieldIndexCollection.field_index_params:type_name -> qdrant.PayloadIndexParams + 8, // 41: qdrant.CreateFieldIndexCollection.ordering:type_name -> qdrant.WriteOrdering + 8, // 42: qdrant.DeleteFieldIndexCollection.ordering:type_name -> qdrant.WriteOrdering + 29, // 43: qdrant.WithPayloadSelector.include:type_name -> qdrant.PayloadIncludeSelector + 30, // 44: qdrant.WithPayloadSelector.exclude:type_name -> qdrant.PayloadExcludeSelector + 116, // 45: qdrant.NamedVectors.vectors:type_name -> qdrant.NamedVectors.VectorsEntry + 12, // 46: qdrant.Vectors.vector:type_name -> qdrant.Vector + 32, // 47: qdrant.Vectors.vectors:type_name -> qdrant.NamedVectors + 34, // 48: qdrant.WithVectorsSelector.include:type_name -> qdrant.VectorsSelector + 36, // 49: qdrant.SearchParams.quantization:type_name -> qdrant.QuantizationSearchParams + 93, // 50: qdrant.SearchPoints.filter:type_name -> qdrant.Filter + 31, // 51: qdrant.SearchPoints.with_payload:type_name -> qdrant.WithPayloadSelector + 37, // 52: qdrant.SearchPoints.params:type_name -> qdrant.SearchParams + 35, // 53: qdrant.SearchPoints.with_vectors:type_name -> qdrant.WithVectorsSelector + 9, // 54: qdrant.SearchPoints.read_consistency:type_name -> qdrant.ReadConsistency + 17, // 55: qdrant.SearchPoints.shard_key_selector:type_name -> qdrant.ShardKeySelector + 11, // 56: qdrant.SearchPoints.sparse_indices:type_name -> qdrant.SparseIndices + 38, // 57: qdrant.SearchBatchPoints.search_points:type_name -> qdrant.SearchPoints + 9, // 58: qdrant.SearchBatchPoints.read_consistency:type_name -> qdrant.ReadConsistency + 31, // 59: qdrant.WithLookup.with_payload:type_name -> qdrant.WithPayloadSelector + 35, // 60: qdrant.WithLookup.with_vectors:type_name -> qdrant.WithVectorsSelector + 93, // 61: qdrant.SearchPointGroups.filter:type_name -> qdrant.Filter + 31, // 62: qdrant.SearchPointGroups.with_payload:type_name -> qdrant.WithPayloadSelector + 37, // 63: qdrant.SearchPointGroups.params:type_name -> qdrant.SearchParams + 35, // 64: qdrant.SearchPointGroups.with_vectors:type_name -> qdrant.WithVectorsSelector + 9, // 65: qdrant.SearchPointGroups.read_consistency:type_name -> qdrant.ReadConsistency + 40, // 66: qdrant.SearchPointGroups.with_lookup:type_name -> qdrant.WithLookup + 17, // 67: qdrant.SearchPointGroups.shard_key_selector:type_name -> qdrant.ShardKeySelector + 11, // 68: qdrant.SearchPointGroups.sparse_indices:type_name -> qdrant.SparseIndices + 132, // 69: qdrant.StartFrom.timestamp:type_name -> google.protobuf.Timestamp 3, // 70: qdrant.OrderBy.direction:type_name -> qdrant.Direction - 41, // 71: qdrant.OrderBy.start_from:type_name -> qdrant.StartFrom - 88, // 72: qdrant.ScrollPoints.filter:type_name -> qdrant.Filter - 9, // 73: qdrant.ScrollPoints.offset:type_name -> qdrant.PointId - 30, // 74: qdrant.ScrollPoints.with_payload:type_name -> qdrant.WithPayloadSelector - 34, // 75: qdrant.ScrollPoints.with_vectors:type_name -> qdrant.WithVectorsSelector - 8, // 76: qdrant.ScrollPoints.read_consistency:type_name -> qdrant.ReadConsistency - 16, // 77: qdrant.ScrollPoints.shard_key_selector:type_name -> qdrant.ShardKeySelector - 42, // 78: qdrant.ScrollPoints.order_by:type_name -> qdrant.OrderBy - 16, // 79: qdrant.LookupLocation.shard_key_selector:type_name -> qdrant.ShardKeySelector - 9, // 80: qdrant.RecommendPoints.positive:type_name -> qdrant.PointId - 9, // 81: qdrant.RecommendPoints.negative:type_name -> qdrant.PointId - 88, // 82: qdrant.RecommendPoints.filter:type_name -> qdrant.Filter - 30, // 83: qdrant.RecommendPoints.with_payload:type_name -> qdrant.WithPayloadSelector - 36, // 84: qdrant.RecommendPoints.params:type_name -> qdrant.SearchParams - 34, // 85: qdrant.RecommendPoints.with_vectors:type_name -> qdrant.WithVectorsSelector - 44, // 86: qdrant.RecommendPoints.lookup_from:type_name -> qdrant.LookupLocation - 8, // 87: qdrant.RecommendPoints.read_consistency:type_name -> qdrant.ReadConsistency + 42, // 71: qdrant.OrderBy.start_from:type_name -> qdrant.StartFrom + 93, // 72: qdrant.ScrollPoints.filter:type_name -> qdrant.Filter + 10, // 73: qdrant.ScrollPoints.offset:type_name -> qdrant.PointId + 31, // 74: qdrant.ScrollPoints.with_payload:type_name -> qdrant.WithPayloadSelector + 35, // 75: qdrant.ScrollPoints.with_vectors:type_name -> qdrant.WithVectorsSelector + 9, // 76: qdrant.ScrollPoints.read_consistency:type_name -> qdrant.ReadConsistency + 17, // 77: qdrant.ScrollPoints.shard_key_selector:type_name -> qdrant.ShardKeySelector + 43, // 78: qdrant.ScrollPoints.order_by:type_name -> qdrant.OrderBy + 17, // 79: qdrant.LookupLocation.shard_key_selector:type_name -> qdrant.ShardKeySelector + 10, // 80: qdrant.RecommendPoints.positive:type_name -> qdrant.PointId + 10, // 81: qdrant.RecommendPoints.negative:type_name -> qdrant.PointId + 93, // 82: qdrant.RecommendPoints.filter:type_name -> qdrant.Filter + 31, // 83: qdrant.RecommendPoints.with_payload:type_name -> qdrant.WithPayloadSelector + 37, // 84: qdrant.RecommendPoints.params:type_name -> qdrant.SearchParams + 35, // 85: qdrant.RecommendPoints.with_vectors:type_name -> qdrant.WithVectorsSelector + 45, // 86: qdrant.RecommendPoints.lookup_from:type_name -> qdrant.LookupLocation + 9, // 87: qdrant.RecommendPoints.read_consistency:type_name -> qdrant.ReadConsistency 4, // 88: qdrant.RecommendPoints.strategy:type_name -> qdrant.RecommendStrategy - 11, // 89: qdrant.RecommendPoints.positive_vectors:type_name -> qdrant.Vector - 11, // 90: qdrant.RecommendPoints.negative_vectors:type_name -> qdrant.Vector - 16, // 91: qdrant.RecommendPoints.shard_key_selector:type_name -> qdrant.ShardKeySelector - 45, // 92: qdrant.RecommendBatchPoints.recommend_points:type_name -> qdrant.RecommendPoints - 8, // 93: qdrant.RecommendBatchPoints.read_consistency:type_name -> qdrant.ReadConsistency - 9, // 94: qdrant.RecommendPointGroups.positive:type_name -> qdrant.PointId - 9, // 95: qdrant.RecommendPointGroups.negative:type_name -> qdrant.PointId - 88, // 96: qdrant.RecommendPointGroups.filter:type_name -> qdrant.Filter - 30, // 97: qdrant.RecommendPointGroups.with_payload:type_name -> qdrant.WithPayloadSelector - 36, // 98: qdrant.RecommendPointGroups.params:type_name -> qdrant.SearchParams - 34, // 99: qdrant.RecommendPointGroups.with_vectors:type_name -> qdrant.WithVectorsSelector - 44, // 100: qdrant.RecommendPointGroups.lookup_from:type_name -> qdrant.LookupLocation - 8, // 101: qdrant.RecommendPointGroups.read_consistency:type_name -> qdrant.ReadConsistency - 39, // 102: qdrant.RecommendPointGroups.with_lookup:type_name -> qdrant.WithLookup + 12, // 89: qdrant.RecommendPoints.positive_vectors:type_name -> qdrant.Vector + 12, // 90: qdrant.RecommendPoints.negative_vectors:type_name -> qdrant.Vector + 17, // 91: qdrant.RecommendPoints.shard_key_selector:type_name -> qdrant.ShardKeySelector + 46, // 92: qdrant.RecommendBatchPoints.recommend_points:type_name -> qdrant.RecommendPoints + 9, // 93: qdrant.RecommendBatchPoints.read_consistency:type_name -> qdrant.ReadConsistency + 10, // 94: qdrant.RecommendPointGroups.positive:type_name -> qdrant.PointId + 10, // 95: qdrant.RecommendPointGroups.negative:type_name -> qdrant.PointId + 93, // 96: qdrant.RecommendPointGroups.filter:type_name -> qdrant.Filter + 31, // 97: qdrant.RecommendPointGroups.with_payload:type_name -> qdrant.WithPayloadSelector + 37, // 98: qdrant.RecommendPointGroups.params:type_name -> qdrant.SearchParams + 35, // 99: qdrant.RecommendPointGroups.with_vectors:type_name -> qdrant.WithVectorsSelector + 45, // 100: qdrant.RecommendPointGroups.lookup_from:type_name -> qdrant.LookupLocation + 9, // 101: qdrant.RecommendPointGroups.read_consistency:type_name -> qdrant.ReadConsistency + 40, // 102: qdrant.RecommendPointGroups.with_lookup:type_name -> qdrant.WithLookup 4, // 103: qdrant.RecommendPointGroups.strategy:type_name -> qdrant.RecommendStrategy - 11, // 104: qdrant.RecommendPointGroups.positive_vectors:type_name -> qdrant.Vector - 11, // 105: qdrant.RecommendPointGroups.negative_vectors:type_name -> qdrant.Vector - 16, // 106: qdrant.RecommendPointGroups.shard_key_selector:type_name -> qdrant.ShardKeySelector - 49, // 107: qdrant.TargetVector.single:type_name -> qdrant.VectorExample - 9, // 108: qdrant.VectorExample.id:type_name -> qdrant.PointId - 11, // 109: qdrant.VectorExample.vector:type_name -> qdrant.Vector - 49, // 110: qdrant.ContextExamplePair.positive:type_name -> qdrant.VectorExample - 49, // 111: qdrant.ContextExamplePair.negative:type_name -> qdrant.VectorExample - 48, // 112: qdrant.DiscoverPoints.target:type_name -> qdrant.TargetVector - 50, // 113: qdrant.DiscoverPoints.context:type_name -> qdrant.ContextExamplePair - 88, // 114: qdrant.DiscoverPoints.filter:type_name -> qdrant.Filter - 30, // 115: qdrant.DiscoverPoints.with_payload:type_name -> qdrant.WithPayloadSelector - 36, // 116: qdrant.DiscoverPoints.params:type_name -> qdrant.SearchParams - 34, // 117: qdrant.DiscoverPoints.with_vectors:type_name -> qdrant.WithVectorsSelector - 44, // 118: qdrant.DiscoverPoints.lookup_from:type_name -> qdrant.LookupLocation - 8, // 119: qdrant.DiscoverPoints.read_consistency:type_name -> qdrant.ReadConsistency - 16, // 120: qdrant.DiscoverPoints.shard_key_selector:type_name -> qdrant.ShardKeySelector - 51, // 121: qdrant.DiscoverBatchPoints.discover_points:type_name -> qdrant.DiscoverPoints - 8, // 122: qdrant.DiscoverBatchPoints.read_consistency:type_name -> qdrant.ReadConsistency - 88, // 123: qdrant.CountPoints.filter:type_name -> qdrant.Filter - 8, // 124: qdrant.CountPoints.read_consistency:type_name -> qdrant.ReadConsistency - 16, // 125: qdrant.CountPoints.shard_key_selector:type_name -> qdrant.ShardKeySelector - 15, // 126: qdrant.RecommendInput.positive:type_name -> qdrant.VectorInput - 15, // 127: qdrant.RecommendInput.negative:type_name -> qdrant.VectorInput + 12, // 104: qdrant.RecommendPointGroups.positive_vectors:type_name -> qdrant.Vector + 12, // 105: qdrant.RecommendPointGroups.negative_vectors:type_name -> qdrant.Vector + 17, // 106: qdrant.RecommendPointGroups.shard_key_selector:type_name -> qdrant.ShardKeySelector + 50, // 107: qdrant.TargetVector.single:type_name -> qdrant.VectorExample + 10, // 108: qdrant.VectorExample.id:type_name -> qdrant.PointId + 12, // 109: qdrant.VectorExample.vector:type_name -> qdrant.Vector + 50, // 110: qdrant.ContextExamplePair.positive:type_name -> qdrant.VectorExample + 50, // 111: qdrant.ContextExamplePair.negative:type_name -> qdrant.VectorExample + 49, // 112: qdrant.DiscoverPoints.target:type_name -> qdrant.TargetVector + 51, // 113: qdrant.DiscoverPoints.context:type_name -> qdrant.ContextExamplePair + 93, // 114: qdrant.DiscoverPoints.filter:type_name -> qdrant.Filter + 31, // 115: qdrant.DiscoverPoints.with_payload:type_name -> qdrant.WithPayloadSelector + 37, // 116: qdrant.DiscoverPoints.params:type_name -> qdrant.SearchParams + 35, // 117: qdrant.DiscoverPoints.with_vectors:type_name -> qdrant.WithVectorsSelector + 45, // 118: qdrant.DiscoverPoints.lookup_from:type_name -> qdrant.LookupLocation + 9, // 119: qdrant.DiscoverPoints.read_consistency:type_name -> qdrant.ReadConsistency + 17, // 120: qdrant.DiscoverPoints.shard_key_selector:type_name -> qdrant.ShardKeySelector + 52, // 121: qdrant.DiscoverBatchPoints.discover_points:type_name -> qdrant.DiscoverPoints + 9, // 122: qdrant.DiscoverBatchPoints.read_consistency:type_name -> qdrant.ReadConsistency + 93, // 123: qdrant.CountPoints.filter:type_name -> qdrant.Filter + 9, // 124: qdrant.CountPoints.read_consistency:type_name -> qdrant.ReadConsistency + 17, // 125: qdrant.CountPoints.shard_key_selector:type_name -> qdrant.ShardKeySelector + 16, // 126: qdrant.RecommendInput.positive:type_name -> qdrant.VectorInput + 16, // 127: qdrant.RecommendInput.negative:type_name -> qdrant.VectorInput 4, // 128: qdrant.RecommendInput.strategy:type_name -> qdrant.RecommendStrategy - 15, // 129: qdrant.ContextInputPair.positive:type_name -> qdrant.VectorInput - 15, // 130: qdrant.ContextInputPair.negative:type_name -> qdrant.VectorInput - 15, // 131: qdrant.DiscoverInput.target:type_name -> qdrant.VectorInput - 57, // 132: qdrant.DiscoverInput.context:type_name -> qdrant.ContextInput - 55, // 133: qdrant.ContextInput.pairs:type_name -> qdrant.ContextInputPair - 15, // 134: qdrant.Query.nearest:type_name -> qdrant.VectorInput - 54, // 135: qdrant.Query.recommend:type_name -> qdrant.RecommendInput - 56, // 136: qdrant.Query.discover:type_name -> qdrant.DiscoverInput - 57, // 137: qdrant.Query.context:type_name -> qdrant.ContextInput - 42, // 138: qdrant.Query.order_by:type_name -> qdrant.OrderBy + 16, // 129: qdrant.ContextInputPair.positive:type_name -> qdrant.VectorInput + 16, // 130: qdrant.ContextInputPair.negative:type_name -> qdrant.VectorInput + 16, // 131: qdrant.DiscoverInput.target:type_name -> qdrant.VectorInput + 58, // 132: qdrant.DiscoverInput.context:type_name -> qdrant.ContextInput + 56, // 133: qdrant.ContextInput.pairs:type_name -> qdrant.ContextInputPair + 16, // 134: qdrant.Query.nearest:type_name -> qdrant.VectorInput + 55, // 135: qdrant.Query.recommend:type_name -> qdrant.RecommendInput + 57, // 136: qdrant.Query.discover:type_name -> qdrant.DiscoverInput + 58, // 137: qdrant.Query.context:type_name -> qdrant.ContextInput + 43, // 138: qdrant.Query.order_by:type_name -> qdrant.OrderBy 5, // 139: qdrant.Query.fusion:type_name -> qdrant.Fusion - 59, // 140: qdrant.PrefetchQuery.prefetch:type_name -> qdrant.PrefetchQuery - 58, // 141: qdrant.PrefetchQuery.query:type_name -> qdrant.Query - 88, // 142: qdrant.PrefetchQuery.filter:type_name -> qdrant.Filter - 36, // 143: qdrant.PrefetchQuery.params:type_name -> qdrant.SearchParams - 44, // 144: qdrant.PrefetchQuery.lookup_from:type_name -> qdrant.LookupLocation - 59, // 145: qdrant.QueryPoints.prefetch:type_name -> qdrant.PrefetchQuery - 58, // 146: qdrant.QueryPoints.query:type_name -> qdrant.Query - 88, // 147: qdrant.QueryPoints.filter:type_name -> qdrant.Filter - 36, // 148: qdrant.QueryPoints.params:type_name -> qdrant.SearchParams - 34, // 149: qdrant.QueryPoints.with_vectors:type_name -> qdrant.WithVectorsSelector - 30, // 150: qdrant.QueryPoints.with_payload:type_name -> qdrant.WithPayloadSelector - 8, // 151: qdrant.QueryPoints.read_consistency:type_name -> qdrant.ReadConsistency - 16, // 152: qdrant.QueryPoints.shard_key_selector:type_name -> qdrant.ShardKeySelector - 44, // 153: qdrant.QueryPoints.lookup_from:type_name -> qdrant.LookupLocation - 60, // 154: qdrant.QueryBatchPoints.query_points:type_name -> qdrant.QueryPoints - 8, // 155: qdrant.QueryBatchPoints.read_consistency:type_name -> qdrant.ReadConsistency - 112, // 156: qdrant.PointsUpdateOperation.upsert:type_name -> qdrant.PointsUpdateOperation.PointStructList - 106, // 157: qdrant.PointsUpdateOperation.delete_deprecated:type_name -> qdrant.PointsSelector - 113, // 158: qdrant.PointsUpdateOperation.set_payload:type_name -> qdrant.PointsUpdateOperation.SetPayload - 114, // 159: qdrant.PointsUpdateOperation.overwrite_payload:type_name -> qdrant.PointsUpdateOperation.OverwritePayload - 115, // 160: qdrant.PointsUpdateOperation.delete_payload:type_name -> qdrant.PointsUpdateOperation.DeletePayload - 106, // 161: qdrant.PointsUpdateOperation.clear_payload_deprecated:type_name -> qdrant.PointsSelector - 116, // 162: qdrant.PointsUpdateOperation.update_vectors:type_name -> qdrant.PointsUpdateOperation.UpdateVectors - 117, // 163: qdrant.PointsUpdateOperation.delete_vectors:type_name -> qdrant.PointsUpdateOperation.DeleteVectors - 118, // 164: qdrant.PointsUpdateOperation.delete_points:type_name -> qdrant.PointsUpdateOperation.DeletePoints - 119, // 165: qdrant.PointsUpdateOperation.clear_payload:type_name -> qdrant.PointsUpdateOperation.ClearPayload - 62, // 166: qdrant.UpdateBatchPoints.operations:type_name -> qdrant.PointsUpdateOperation - 7, // 167: qdrant.UpdateBatchPoints.ordering:type_name -> qdrant.WriteOrdering - 65, // 168: qdrant.PointsOperationResponse.result:type_name -> qdrant.UpdateResult - 6, // 169: qdrant.UpdateResult.status:type_name -> qdrant.UpdateStatus - 9, // 170: qdrant.ScoredPoint.id:type_name -> qdrant.PointId - 122, // 171: qdrant.ScoredPoint.payload:type_name -> qdrant.ScoredPoint.PayloadEntry - 32, // 172: qdrant.ScoredPoint.vectors:type_name -> qdrant.Vectors - 125, // 173: qdrant.ScoredPoint.shard_key:type_name -> qdrant.ShardKey - 66, // 174: qdrant.ScoredPoint.order_value:type_name -> qdrant.OrderValue - 68, // 175: qdrant.PointGroup.id:type_name -> qdrant.GroupId - 67, // 176: qdrant.PointGroup.hits:type_name -> qdrant.ScoredPoint - 80, // 177: qdrant.PointGroup.lookup:type_name -> qdrant.RetrievedPoint - 69, // 178: qdrant.GroupsResult.groups:type_name -> qdrant.PointGroup - 67, // 179: qdrant.SearchResponse.result:type_name -> qdrant.ScoredPoint - 67, // 180: qdrant.QueryResponse.result:type_name -> qdrant.ScoredPoint - 74, // 181: qdrant.QueryBatchResponse.result:type_name -> qdrant.BatchResult - 67, // 182: qdrant.BatchResult.result:type_name -> qdrant.ScoredPoint - 74, // 183: qdrant.SearchBatchResponse.result:type_name -> qdrant.BatchResult - 70, // 184: qdrant.SearchGroupsResponse.result:type_name -> qdrant.GroupsResult - 79, // 185: qdrant.CountResponse.result:type_name -> qdrant.CountResult - 9, // 186: qdrant.ScrollResponse.next_page_offset:type_name -> qdrant.PointId - 80, // 187: qdrant.ScrollResponse.result:type_name -> qdrant.RetrievedPoint - 9, // 188: qdrant.RetrievedPoint.id:type_name -> qdrant.PointId - 123, // 189: qdrant.RetrievedPoint.payload:type_name -> qdrant.RetrievedPoint.PayloadEntry - 32, // 190: qdrant.RetrievedPoint.vectors:type_name -> qdrant.Vectors - 125, // 191: qdrant.RetrievedPoint.shard_key:type_name -> qdrant.ShardKey - 66, // 192: qdrant.RetrievedPoint.order_value:type_name -> qdrant.OrderValue - 80, // 193: qdrant.GetResponse.result:type_name -> qdrant.RetrievedPoint - 67, // 194: qdrant.RecommendResponse.result:type_name -> qdrant.ScoredPoint - 74, // 195: qdrant.RecommendBatchResponse.result:type_name -> qdrant.BatchResult - 67, // 196: qdrant.DiscoverResponse.result:type_name -> qdrant.ScoredPoint - 74, // 197: qdrant.DiscoverBatchResponse.result:type_name -> qdrant.BatchResult - 70, // 198: qdrant.RecommendGroupsResponse.result:type_name -> qdrant.GroupsResult - 65, // 199: qdrant.UpdateBatchResponse.result:type_name -> qdrant.UpdateResult - 90, // 200: qdrant.Filter.should:type_name -> qdrant.Condition - 90, // 201: qdrant.Filter.must:type_name -> qdrant.Condition - 90, // 202: qdrant.Filter.must_not:type_name -> qdrant.Condition - 89, // 203: qdrant.Filter.min_should:type_name -> qdrant.MinShould - 90, // 204: qdrant.MinShould.conditions:type_name -> qdrant.Condition - 95, // 205: qdrant.Condition.field:type_name -> qdrant.FieldCondition - 91, // 206: qdrant.Condition.is_empty:type_name -> qdrant.IsEmptyCondition - 93, // 207: qdrant.Condition.has_id:type_name -> qdrant.HasIdCondition - 88, // 208: qdrant.Condition.filter:type_name -> qdrant.Filter - 92, // 209: qdrant.Condition.is_null:type_name -> qdrant.IsNullCondition - 94, // 210: qdrant.Condition.nested:type_name -> qdrant.NestedCondition - 9, // 211: qdrant.HasIdCondition.has_id:type_name -> qdrant.PointId - 88, // 212: qdrant.NestedCondition.filter:type_name -> qdrant.Filter - 96, // 213: qdrant.FieldCondition.match:type_name -> qdrant.Match - 99, // 214: qdrant.FieldCondition.range:type_name -> qdrant.Range - 101, // 215: qdrant.FieldCondition.geo_bounding_box:type_name -> qdrant.GeoBoundingBox - 102, // 216: qdrant.FieldCondition.geo_radius:type_name -> qdrant.GeoRadius - 105, // 217: qdrant.FieldCondition.values_count:type_name -> qdrant.ValuesCount - 104, // 218: qdrant.FieldCondition.geo_polygon:type_name -> qdrant.GeoPolygon - 100, // 219: qdrant.FieldCondition.datetime_range:type_name -> qdrant.DatetimeRange - 97, // 220: qdrant.Match.keywords:type_name -> qdrant.RepeatedStrings - 98, // 221: qdrant.Match.integers:type_name -> qdrant.RepeatedIntegers - 98, // 222: qdrant.Match.except_integers:type_name -> qdrant.RepeatedIntegers - 97, // 223: qdrant.Match.except_keywords:type_name -> qdrant.RepeatedStrings - 127, // 224: qdrant.DatetimeRange.lt:type_name -> google.protobuf.Timestamp - 127, // 225: qdrant.DatetimeRange.gt:type_name -> google.protobuf.Timestamp - 127, // 226: qdrant.DatetimeRange.gte:type_name -> google.protobuf.Timestamp - 127, // 227: qdrant.DatetimeRange.lte:type_name -> google.protobuf.Timestamp - 109, // 228: qdrant.GeoBoundingBox.top_left:type_name -> qdrant.GeoPoint - 109, // 229: qdrant.GeoBoundingBox.bottom_right:type_name -> qdrant.GeoPoint - 109, // 230: qdrant.GeoRadius.center:type_name -> qdrant.GeoPoint - 109, // 231: qdrant.GeoLineString.points:type_name -> qdrant.GeoPoint - 103, // 232: qdrant.GeoPolygon.exterior:type_name -> qdrant.GeoLineString - 103, // 233: qdrant.GeoPolygon.interiors:type_name -> qdrant.GeoLineString - 107, // 234: qdrant.PointsSelector.points:type_name -> qdrant.PointsIdsList - 88, // 235: qdrant.PointsSelector.filter:type_name -> qdrant.Filter - 9, // 236: qdrant.PointsIdsList.ids:type_name -> qdrant.PointId - 9, // 237: qdrant.PointStruct.id:type_name -> qdrant.PointId - 124, // 238: qdrant.PointStruct.payload:type_name -> qdrant.PointStruct.PayloadEntry - 32, // 239: qdrant.PointStruct.vectors:type_name -> qdrant.Vectors - 128, // 240: qdrant.SetPayloadPoints.PayloadEntry.value:type_name -> qdrant.Value - 11, // 241: qdrant.NamedVectors.VectorsEntry.value:type_name -> qdrant.Vector - 108, // 242: qdrant.PointsUpdateOperation.PointStructList.points:type_name -> qdrant.PointStruct - 16, // 243: qdrant.PointsUpdateOperation.PointStructList.shard_key_selector:type_name -> qdrant.ShardKeySelector - 120, // 244: qdrant.PointsUpdateOperation.SetPayload.payload:type_name -> qdrant.PointsUpdateOperation.SetPayload.PayloadEntry - 106, // 245: qdrant.PointsUpdateOperation.SetPayload.points_selector:type_name -> qdrant.PointsSelector - 16, // 246: qdrant.PointsUpdateOperation.SetPayload.shard_key_selector:type_name -> qdrant.ShardKeySelector - 121, // 247: qdrant.PointsUpdateOperation.OverwritePayload.payload:type_name -> qdrant.PointsUpdateOperation.OverwritePayload.PayloadEntry - 106, // 248: qdrant.PointsUpdateOperation.OverwritePayload.points_selector:type_name -> qdrant.PointsSelector - 16, // 249: qdrant.PointsUpdateOperation.OverwritePayload.shard_key_selector:type_name -> qdrant.ShardKeySelector - 106, // 250: qdrant.PointsUpdateOperation.DeletePayload.points_selector:type_name -> qdrant.PointsSelector - 16, // 251: qdrant.PointsUpdateOperation.DeletePayload.shard_key_selector:type_name -> qdrant.ShardKeySelector - 21, // 252: qdrant.PointsUpdateOperation.UpdateVectors.points:type_name -> qdrant.PointVectors - 16, // 253: qdrant.PointsUpdateOperation.UpdateVectors.shard_key_selector:type_name -> qdrant.ShardKeySelector - 106, // 254: qdrant.PointsUpdateOperation.DeleteVectors.points_selector:type_name -> qdrant.PointsSelector - 33, // 255: qdrant.PointsUpdateOperation.DeleteVectors.vectors:type_name -> qdrant.VectorsSelector - 16, // 256: qdrant.PointsUpdateOperation.DeleteVectors.shard_key_selector:type_name -> qdrant.ShardKeySelector - 106, // 257: qdrant.PointsUpdateOperation.DeletePoints.points:type_name -> qdrant.PointsSelector - 16, // 258: qdrant.PointsUpdateOperation.DeletePoints.shard_key_selector:type_name -> qdrant.ShardKeySelector - 106, // 259: qdrant.PointsUpdateOperation.ClearPayload.points:type_name -> qdrant.PointsSelector - 16, // 260: qdrant.PointsUpdateOperation.ClearPayload.shard_key_selector:type_name -> qdrant.ShardKeySelector - 128, // 261: qdrant.PointsUpdateOperation.SetPayload.PayloadEntry.value:type_name -> qdrant.Value - 128, // 262: qdrant.PointsUpdateOperation.OverwritePayload.PayloadEntry.value:type_name -> qdrant.Value - 128, // 263: qdrant.ScoredPoint.PayloadEntry.value:type_name -> qdrant.Value - 128, // 264: qdrant.RetrievedPoint.PayloadEntry.value:type_name -> qdrant.Value - 128, // 265: qdrant.PointStruct.PayloadEntry.value:type_name -> qdrant.Value - 266, // [266:266] is the sub-list for method output_type - 266, // [266:266] is the sub-list for method input_type - 266, // [266:266] is the sub-list for extension type_name - 266, // [266:266] is the sub-list for extension extendee - 0, // [0:266] is the sub-list for field type_name + 6, // 140: qdrant.Query.sample:type_name -> qdrant.Sample + 60, // 141: qdrant.PrefetchQuery.prefetch:type_name -> qdrant.PrefetchQuery + 59, // 142: qdrant.PrefetchQuery.query:type_name -> qdrant.Query + 93, // 143: qdrant.PrefetchQuery.filter:type_name -> qdrant.Filter + 37, // 144: qdrant.PrefetchQuery.params:type_name -> qdrant.SearchParams + 45, // 145: qdrant.PrefetchQuery.lookup_from:type_name -> qdrant.LookupLocation + 60, // 146: qdrant.QueryPoints.prefetch:type_name -> qdrant.PrefetchQuery + 59, // 147: qdrant.QueryPoints.query:type_name -> qdrant.Query + 93, // 148: qdrant.QueryPoints.filter:type_name -> qdrant.Filter + 37, // 149: qdrant.QueryPoints.params:type_name -> qdrant.SearchParams + 35, // 150: qdrant.QueryPoints.with_vectors:type_name -> qdrant.WithVectorsSelector + 31, // 151: qdrant.QueryPoints.with_payload:type_name -> qdrant.WithPayloadSelector + 9, // 152: qdrant.QueryPoints.read_consistency:type_name -> qdrant.ReadConsistency + 17, // 153: qdrant.QueryPoints.shard_key_selector:type_name -> qdrant.ShardKeySelector + 45, // 154: qdrant.QueryPoints.lookup_from:type_name -> qdrant.LookupLocation + 61, // 155: qdrant.QueryBatchPoints.query_points:type_name -> qdrant.QueryPoints + 9, // 156: qdrant.QueryBatchPoints.read_consistency:type_name -> qdrant.ReadConsistency + 60, // 157: qdrant.QueryPointGroups.prefetch:type_name -> qdrant.PrefetchQuery + 59, // 158: qdrant.QueryPointGroups.query:type_name -> qdrant.Query + 93, // 159: qdrant.QueryPointGroups.filter:type_name -> qdrant.Filter + 37, // 160: qdrant.QueryPointGroups.params:type_name -> qdrant.SearchParams + 31, // 161: qdrant.QueryPointGroups.with_payload:type_name -> qdrant.WithPayloadSelector + 35, // 162: qdrant.QueryPointGroups.with_vectors:type_name -> qdrant.WithVectorsSelector + 45, // 163: qdrant.QueryPointGroups.lookup_from:type_name -> qdrant.LookupLocation + 9, // 164: qdrant.QueryPointGroups.read_consistency:type_name -> qdrant.ReadConsistency + 40, // 165: qdrant.QueryPointGroups.with_lookup:type_name -> qdrant.WithLookup + 17, // 166: qdrant.QueryPointGroups.shard_key_selector:type_name -> qdrant.ShardKeySelector + 64, // 167: qdrant.FacetValueHit.value:type_name -> qdrant.FacetValue + 117, // 168: qdrant.PointsUpdateOperation.upsert:type_name -> qdrant.PointsUpdateOperation.PointStructList + 111, // 169: qdrant.PointsUpdateOperation.delete_deprecated:type_name -> qdrant.PointsSelector + 118, // 170: qdrant.PointsUpdateOperation.set_payload:type_name -> qdrant.PointsUpdateOperation.SetPayload + 119, // 171: qdrant.PointsUpdateOperation.overwrite_payload:type_name -> qdrant.PointsUpdateOperation.OverwritePayload + 120, // 172: qdrant.PointsUpdateOperation.delete_payload:type_name -> qdrant.PointsUpdateOperation.DeletePayload + 111, // 173: qdrant.PointsUpdateOperation.clear_payload_deprecated:type_name -> qdrant.PointsSelector + 121, // 174: qdrant.PointsUpdateOperation.update_vectors:type_name -> qdrant.PointsUpdateOperation.UpdateVectors + 122, // 175: qdrant.PointsUpdateOperation.delete_vectors:type_name -> qdrant.PointsUpdateOperation.DeleteVectors + 123, // 176: qdrant.PointsUpdateOperation.delete_points:type_name -> qdrant.PointsUpdateOperation.DeletePoints + 124, // 177: qdrant.PointsUpdateOperation.clear_payload:type_name -> qdrant.PointsUpdateOperation.ClearPayload + 66, // 178: qdrant.UpdateBatchPoints.operations:type_name -> qdrant.PointsUpdateOperation + 8, // 179: qdrant.UpdateBatchPoints.ordering:type_name -> qdrant.WriteOrdering + 69, // 180: qdrant.PointsOperationResponse.result:type_name -> qdrant.UpdateResult + 7, // 181: qdrant.UpdateResult.status:type_name -> qdrant.UpdateStatus + 10, // 182: qdrant.ScoredPoint.id:type_name -> qdrant.PointId + 127, // 183: qdrant.ScoredPoint.payload:type_name -> qdrant.ScoredPoint.PayloadEntry + 33, // 184: qdrant.ScoredPoint.vectors:type_name -> qdrant.Vectors + 130, // 185: qdrant.ScoredPoint.shard_key:type_name -> qdrant.ShardKey + 70, // 186: qdrant.ScoredPoint.order_value:type_name -> qdrant.OrderValue + 72, // 187: qdrant.PointGroup.id:type_name -> qdrant.GroupId + 71, // 188: qdrant.PointGroup.hits:type_name -> qdrant.ScoredPoint + 85, // 189: qdrant.PointGroup.lookup:type_name -> qdrant.RetrievedPoint + 73, // 190: qdrant.GroupsResult.groups:type_name -> qdrant.PointGroup + 71, // 191: qdrant.SearchResponse.result:type_name -> qdrant.ScoredPoint + 71, // 192: qdrant.QueryResponse.result:type_name -> qdrant.ScoredPoint + 79, // 193: qdrant.QueryBatchResponse.result:type_name -> qdrant.BatchResult + 74, // 194: qdrant.QueryGroupsResponse.result:type_name -> qdrant.GroupsResult + 71, // 195: qdrant.BatchResult.result:type_name -> qdrant.ScoredPoint + 79, // 196: qdrant.SearchBatchResponse.result:type_name -> qdrant.BatchResult + 74, // 197: qdrant.SearchGroupsResponse.result:type_name -> qdrant.GroupsResult + 84, // 198: qdrant.CountResponse.result:type_name -> qdrant.CountResult + 10, // 199: qdrant.ScrollResponse.next_page_offset:type_name -> qdrant.PointId + 85, // 200: qdrant.ScrollResponse.result:type_name -> qdrant.RetrievedPoint + 10, // 201: qdrant.RetrievedPoint.id:type_name -> qdrant.PointId + 128, // 202: qdrant.RetrievedPoint.payload:type_name -> qdrant.RetrievedPoint.PayloadEntry + 33, // 203: qdrant.RetrievedPoint.vectors:type_name -> qdrant.Vectors + 130, // 204: qdrant.RetrievedPoint.shard_key:type_name -> qdrant.ShardKey + 70, // 205: qdrant.RetrievedPoint.order_value:type_name -> qdrant.OrderValue + 85, // 206: qdrant.GetResponse.result:type_name -> qdrant.RetrievedPoint + 71, // 207: qdrant.RecommendResponse.result:type_name -> qdrant.ScoredPoint + 79, // 208: qdrant.RecommendBatchResponse.result:type_name -> qdrant.BatchResult + 71, // 209: qdrant.DiscoverResponse.result:type_name -> qdrant.ScoredPoint + 79, // 210: qdrant.DiscoverBatchResponse.result:type_name -> qdrant.BatchResult + 74, // 211: qdrant.RecommendGroupsResponse.result:type_name -> qdrant.GroupsResult + 69, // 212: qdrant.UpdateBatchResponse.result:type_name -> qdrant.UpdateResult + 95, // 213: qdrant.Filter.should:type_name -> qdrant.Condition + 95, // 214: qdrant.Filter.must:type_name -> qdrant.Condition + 95, // 215: qdrant.Filter.must_not:type_name -> qdrant.Condition + 94, // 216: qdrant.Filter.min_should:type_name -> qdrant.MinShould + 95, // 217: qdrant.MinShould.conditions:type_name -> qdrant.Condition + 100, // 218: qdrant.Condition.field:type_name -> qdrant.FieldCondition + 96, // 219: qdrant.Condition.is_empty:type_name -> qdrant.IsEmptyCondition + 98, // 220: qdrant.Condition.has_id:type_name -> qdrant.HasIdCondition + 93, // 221: qdrant.Condition.filter:type_name -> qdrant.Filter + 97, // 222: qdrant.Condition.is_null:type_name -> qdrant.IsNullCondition + 99, // 223: qdrant.Condition.nested:type_name -> qdrant.NestedCondition + 10, // 224: qdrant.HasIdCondition.has_id:type_name -> qdrant.PointId + 93, // 225: qdrant.NestedCondition.filter:type_name -> qdrant.Filter + 101, // 226: qdrant.FieldCondition.match:type_name -> qdrant.Match + 104, // 227: qdrant.FieldCondition.range:type_name -> qdrant.Range + 106, // 228: qdrant.FieldCondition.geo_bounding_box:type_name -> qdrant.GeoBoundingBox + 107, // 229: qdrant.FieldCondition.geo_radius:type_name -> qdrant.GeoRadius + 110, // 230: qdrant.FieldCondition.values_count:type_name -> qdrant.ValuesCount + 109, // 231: qdrant.FieldCondition.geo_polygon:type_name -> qdrant.GeoPolygon + 105, // 232: qdrant.FieldCondition.datetime_range:type_name -> qdrant.DatetimeRange + 102, // 233: qdrant.Match.keywords:type_name -> qdrant.RepeatedStrings + 103, // 234: qdrant.Match.integers:type_name -> qdrant.RepeatedIntegers + 103, // 235: qdrant.Match.except_integers:type_name -> qdrant.RepeatedIntegers + 102, // 236: qdrant.Match.except_keywords:type_name -> qdrant.RepeatedStrings + 132, // 237: qdrant.DatetimeRange.lt:type_name -> google.protobuf.Timestamp + 132, // 238: qdrant.DatetimeRange.gt:type_name -> google.protobuf.Timestamp + 132, // 239: qdrant.DatetimeRange.gte:type_name -> google.protobuf.Timestamp + 132, // 240: qdrant.DatetimeRange.lte:type_name -> google.protobuf.Timestamp + 114, // 241: qdrant.GeoBoundingBox.top_left:type_name -> qdrant.GeoPoint + 114, // 242: qdrant.GeoBoundingBox.bottom_right:type_name -> qdrant.GeoPoint + 114, // 243: qdrant.GeoRadius.center:type_name -> qdrant.GeoPoint + 114, // 244: qdrant.GeoLineString.points:type_name -> qdrant.GeoPoint + 108, // 245: qdrant.GeoPolygon.exterior:type_name -> qdrant.GeoLineString + 108, // 246: qdrant.GeoPolygon.interiors:type_name -> qdrant.GeoLineString + 112, // 247: qdrant.PointsSelector.points:type_name -> qdrant.PointsIdsList + 93, // 248: qdrant.PointsSelector.filter:type_name -> qdrant.Filter + 10, // 249: qdrant.PointsIdsList.ids:type_name -> qdrant.PointId + 10, // 250: qdrant.PointStruct.id:type_name -> qdrant.PointId + 129, // 251: qdrant.PointStruct.payload:type_name -> qdrant.PointStruct.PayloadEntry + 33, // 252: qdrant.PointStruct.vectors:type_name -> qdrant.Vectors + 133, // 253: qdrant.SetPayloadPoints.PayloadEntry.value:type_name -> qdrant.Value + 12, // 254: qdrant.NamedVectors.VectorsEntry.value:type_name -> qdrant.Vector + 113, // 255: qdrant.PointsUpdateOperation.PointStructList.points:type_name -> qdrant.PointStruct + 17, // 256: qdrant.PointsUpdateOperation.PointStructList.shard_key_selector:type_name -> qdrant.ShardKeySelector + 125, // 257: qdrant.PointsUpdateOperation.SetPayload.payload:type_name -> qdrant.PointsUpdateOperation.SetPayload.PayloadEntry + 111, // 258: qdrant.PointsUpdateOperation.SetPayload.points_selector:type_name -> qdrant.PointsSelector + 17, // 259: qdrant.PointsUpdateOperation.SetPayload.shard_key_selector:type_name -> qdrant.ShardKeySelector + 126, // 260: qdrant.PointsUpdateOperation.OverwritePayload.payload:type_name -> qdrant.PointsUpdateOperation.OverwritePayload.PayloadEntry + 111, // 261: qdrant.PointsUpdateOperation.OverwritePayload.points_selector:type_name -> qdrant.PointsSelector + 17, // 262: qdrant.PointsUpdateOperation.OverwritePayload.shard_key_selector:type_name -> qdrant.ShardKeySelector + 111, // 263: qdrant.PointsUpdateOperation.DeletePayload.points_selector:type_name -> qdrant.PointsSelector + 17, // 264: qdrant.PointsUpdateOperation.DeletePayload.shard_key_selector:type_name -> qdrant.ShardKeySelector + 22, // 265: qdrant.PointsUpdateOperation.UpdateVectors.points:type_name -> qdrant.PointVectors + 17, // 266: qdrant.PointsUpdateOperation.UpdateVectors.shard_key_selector:type_name -> qdrant.ShardKeySelector + 111, // 267: qdrant.PointsUpdateOperation.DeleteVectors.points_selector:type_name -> qdrant.PointsSelector + 34, // 268: qdrant.PointsUpdateOperation.DeleteVectors.vectors:type_name -> qdrant.VectorsSelector + 17, // 269: qdrant.PointsUpdateOperation.DeleteVectors.shard_key_selector:type_name -> qdrant.ShardKeySelector + 111, // 270: qdrant.PointsUpdateOperation.DeletePoints.points:type_name -> qdrant.PointsSelector + 17, // 271: qdrant.PointsUpdateOperation.DeletePoints.shard_key_selector:type_name -> qdrant.ShardKeySelector + 111, // 272: qdrant.PointsUpdateOperation.ClearPayload.points:type_name -> qdrant.PointsSelector + 17, // 273: qdrant.PointsUpdateOperation.ClearPayload.shard_key_selector:type_name -> qdrant.ShardKeySelector + 133, // 274: qdrant.PointsUpdateOperation.SetPayload.PayloadEntry.value:type_name -> qdrant.Value + 133, // 275: qdrant.PointsUpdateOperation.OverwritePayload.PayloadEntry.value:type_name -> qdrant.Value + 133, // 276: qdrant.ScoredPoint.PayloadEntry.value:type_name -> qdrant.Value + 133, // 277: qdrant.RetrievedPoint.PayloadEntry.value:type_name -> qdrant.Value + 133, // 278: qdrant.PointStruct.PayloadEntry.value:type_name -> qdrant.Value + 279, // [279:279] is the sub-list for method output_type + 279, // [279:279] is the sub-list for method input_type + 279, // [279:279] is the sub-list for extension type_name + 279, // [279:279] is the sub-list for extension extendee + 0, // [0:279] is the sub-list for field type_name } func init() { file_points_proto_init() } @@ -11290,7 +11845,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PointsUpdateOperation); i { + switch v := v.(*QueryPointGroups); i { case 0: return &v.state case 1: @@ -11302,7 +11857,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateBatchPoints); i { + switch v := v.(*FacetValue); i { case 0: return &v.state case 1: @@ -11314,7 +11869,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PointsOperationResponse); i { + switch v := v.(*FacetValueHit); i { case 0: return &v.state case 1: @@ -11326,7 +11881,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateResult); i { + switch v := v.(*PointsUpdateOperation); i { case 0: return &v.state case 1: @@ -11338,7 +11893,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderValue); i { + switch v := v.(*UpdateBatchPoints); i { case 0: return &v.state case 1: @@ -11350,7 +11905,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ScoredPoint); i { + switch v := v.(*PointsOperationResponse); i { case 0: return &v.state case 1: @@ -11362,7 +11917,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupId); i { + switch v := v.(*UpdateResult); i { case 0: return &v.state case 1: @@ -11374,7 +11929,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PointGroup); i { + switch v := v.(*OrderValue); i { case 0: return &v.state case 1: @@ -11386,7 +11941,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupsResult); i { + switch v := v.(*ScoredPoint); i { case 0: return &v.state case 1: @@ -11398,7 +11953,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchResponse); i { + switch v := v.(*GroupId); i { case 0: return &v.state case 1: @@ -11410,7 +11965,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryResponse); i { + switch v := v.(*PointGroup); i { case 0: return &v.state case 1: @@ -11422,7 +11977,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryBatchResponse); i { + switch v := v.(*GroupsResult); i { case 0: return &v.state case 1: @@ -11434,7 +11989,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BatchResult); i { + switch v := v.(*SearchResponse); i { case 0: return &v.state case 1: @@ -11446,7 +12001,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchBatchResponse); i { + switch v := v.(*QueryResponse); i { case 0: return &v.state case 1: @@ -11458,7 +12013,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchGroupsResponse); i { + switch v := v.(*QueryBatchResponse); i { case 0: return &v.state case 1: @@ -11470,7 +12025,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CountResponse); i { + switch v := v.(*QueryGroupsResponse); i { case 0: return &v.state case 1: @@ -11482,7 +12037,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ScrollResponse); i { + switch v := v.(*BatchResult); i { case 0: return &v.state case 1: @@ -11494,7 +12049,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CountResult); i { + switch v := v.(*SearchBatchResponse); i { case 0: return &v.state case 1: @@ -11506,7 +12061,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RetrievedPoint); i { + switch v := v.(*SearchGroupsResponse); i { case 0: return &v.state case 1: @@ -11518,7 +12073,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetResponse); i { + switch v := v.(*CountResponse); i { case 0: return &v.state case 1: @@ -11530,7 +12085,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RecommendResponse); i { + switch v := v.(*ScrollResponse); i { case 0: return &v.state case 1: @@ -11542,7 +12097,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RecommendBatchResponse); i { + switch v := v.(*CountResult); i { case 0: return &v.state case 1: @@ -11554,7 +12109,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DiscoverResponse); i { + switch v := v.(*RetrievedPoint); i { case 0: return &v.state case 1: @@ -11566,7 +12121,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DiscoverBatchResponse); i { + switch v := v.(*GetResponse); i { case 0: return &v.state case 1: @@ -11578,7 +12133,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RecommendGroupsResponse); i { + switch v := v.(*RecommendResponse); i { case 0: return &v.state case 1: @@ -11590,7 +12145,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateBatchResponse); i { + switch v := v.(*RecommendBatchResponse); i { case 0: return &v.state case 1: @@ -11602,7 +12157,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Filter); i { + switch v := v.(*DiscoverResponse); i { case 0: return &v.state case 1: @@ -11614,7 +12169,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MinShould); i { + switch v := v.(*DiscoverBatchResponse); i { case 0: return &v.state case 1: @@ -11626,7 +12181,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Condition); i { + switch v := v.(*RecommendGroupsResponse); i { case 0: return &v.state case 1: @@ -11638,7 +12193,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsEmptyCondition); i { + switch v := v.(*UpdateBatchResponse); i { case 0: return &v.state case 1: @@ -11650,7 +12205,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsNullCondition); i { + switch v := v.(*Filter); i { case 0: return &v.state case 1: @@ -11662,7 +12217,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HasIdCondition); i { + switch v := v.(*MinShould); i { case 0: return &v.state case 1: @@ -11674,7 +12229,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NestedCondition); i { + switch v := v.(*Condition); i { case 0: return &v.state case 1: @@ -11686,7 +12241,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FieldCondition); i { + switch v := v.(*IsEmptyCondition); i { case 0: return &v.state case 1: @@ -11698,7 +12253,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Match); i { + switch v := v.(*IsNullCondition); i { case 0: return &v.state case 1: @@ -11710,7 +12265,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RepeatedStrings); i { + switch v := v.(*HasIdCondition); i { case 0: return &v.state case 1: @@ -11722,7 +12277,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RepeatedIntegers); i { + switch v := v.(*NestedCondition); i { case 0: return &v.state case 1: @@ -11734,7 +12289,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Range); i { + switch v := v.(*FieldCondition); i { case 0: return &v.state case 1: @@ -11746,7 +12301,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DatetimeRange); i { + switch v := v.(*Match); i { case 0: return &v.state case 1: @@ -11758,7 +12313,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GeoBoundingBox); i { + switch v := v.(*RepeatedStrings); i { case 0: return &v.state case 1: @@ -11770,7 +12325,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GeoRadius); i { + switch v := v.(*RepeatedIntegers); i { case 0: return &v.state case 1: @@ -11782,7 +12337,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GeoLineString); i { + switch v := v.(*Range); i { case 0: return &v.state case 1: @@ -11794,7 +12349,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GeoPolygon); i { + switch v := v.(*DatetimeRange); i { case 0: return &v.state case 1: @@ -11806,7 +12361,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValuesCount); i { + switch v := v.(*GeoBoundingBox); i { case 0: return &v.state case 1: @@ -11818,7 +12373,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PointsSelector); i { + switch v := v.(*GeoRadius); i { case 0: return &v.state case 1: @@ -11830,7 +12385,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PointsIdsList); i { + switch v := v.(*GeoLineString); i { case 0: return &v.state case 1: @@ -11842,7 +12397,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PointStruct); i { + switch v := v.(*GeoPolygon); i { case 0: return &v.state case 1: @@ -11854,7 +12409,31 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GeoPoint); i { + switch v := v.(*ValuesCount); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_points_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PointsSelector); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_points_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PointsIdsList); i { case 0: return &v.state case 1: @@ -11866,7 +12445,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PointsUpdateOperation_PointStructList); i { + switch v := v.(*PointStruct); i { case 0: return &v.state case 1: @@ -11878,6 +12457,30 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GeoPoint); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_points_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PointsUpdateOperation_PointStructList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_points_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PointsUpdateOperation_SetPayload); i { case 0: return &v.state @@ -11889,7 +12492,7 @@ func file_points_proto_init() { return nil } } - file_points_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { + file_points_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PointsUpdateOperation_OverwritePayload); i { case 0: return &v.state @@ -11901,7 +12504,7 @@ func file_points_proto_init() { return nil } } - file_points_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { + file_points_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PointsUpdateOperation_DeletePayload); i { case 0: return &v.state @@ -11913,7 +12516,7 @@ func file_points_proto_init() { return nil } } - file_points_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { + file_points_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PointsUpdateOperation_UpdateVectors); i { case 0: return &v.state @@ -11925,7 +12528,7 @@ func file_points_proto_init() { return nil } } - file_points_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { + file_points_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PointsUpdateOperation_DeleteVectors); i { case 0: return &v.state @@ -11937,7 +12540,7 @@ func file_points_proto_init() { return nil } } - file_points_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { + file_points_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PointsUpdateOperation_DeletePoints); i { case 0: return &v.state @@ -11949,7 +12552,7 @@ func file_points_proto_init() { return nil } } - file_points_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { + file_points_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PointsUpdateOperation_ClearPayload); i { case 0: return &v.state @@ -12036,11 +12639,16 @@ func file_points_proto_init() { (*Query_Context)(nil), (*Query_OrderBy)(nil), (*Query_Fusion)(nil), + (*Query_Sample)(nil), } file_points_proto_msgTypes[52].OneofWrappers = []interface{}{} file_points_proto_msgTypes[53].OneofWrappers = []interface{}{} file_points_proto_msgTypes[54].OneofWrappers = []interface{}{} - file_points_proto_msgTypes[55].OneofWrappers = []interface{}{ + file_points_proto_msgTypes[55].OneofWrappers = []interface{}{} + file_points_proto_msgTypes[56].OneofWrappers = []interface{}{ + (*FacetValue_StringValue)(nil), + } + file_points_proto_msgTypes[58].OneofWrappers = []interface{}{ (*PointsUpdateOperation_Upsert)(nil), (*PointsUpdateOperation_DeleteDeprecated)(nil), (*PointsUpdateOperation_SetPayload_)(nil), @@ -12052,22 +12660,22 @@ func file_points_proto_init() { (*PointsUpdateOperation_DeletePoints_)(nil), (*PointsUpdateOperation_ClearPayload_)(nil), } - file_points_proto_msgTypes[56].OneofWrappers = []interface{}{} - file_points_proto_msgTypes[58].OneofWrappers = []interface{}{} - file_points_proto_msgTypes[59].OneofWrappers = []interface{}{ + file_points_proto_msgTypes[59].OneofWrappers = []interface{}{} + file_points_proto_msgTypes[61].OneofWrappers = []interface{}{} + file_points_proto_msgTypes[62].OneofWrappers = []interface{}{ (*OrderValue_Int)(nil), (*OrderValue_Float)(nil), } - file_points_proto_msgTypes[60].OneofWrappers = []interface{}{} - file_points_proto_msgTypes[61].OneofWrappers = []interface{}{ + file_points_proto_msgTypes[63].OneofWrappers = []interface{}{} + file_points_proto_msgTypes[64].OneofWrappers = []interface{}{ (*GroupId_UnsignedValue)(nil), (*GroupId_IntegerValue)(nil), (*GroupId_StringValue)(nil), } - file_points_proto_msgTypes[71].OneofWrappers = []interface{}{} - file_points_proto_msgTypes[73].OneofWrappers = []interface{}{} - file_points_proto_msgTypes[81].OneofWrappers = []interface{}{} - file_points_proto_msgTypes[83].OneofWrappers = []interface{}{ + file_points_proto_msgTypes[75].OneofWrappers = []interface{}{} + file_points_proto_msgTypes[77].OneofWrappers = []interface{}{} + file_points_proto_msgTypes[85].OneofWrappers = []interface{}{} + file_points_proto_msgTypes[87].OneofWrappers = []interface{}{ (*Condition_Field)(nil), (*Condition_IsEmpty)(nil), (*Condition_HasId)(nil), @@ -12075,7 +12683,7 @@ func file_points_proto_init() { (*Condition_IsNull)(nil), (*Condition_Nested)(nil), } - file_points_proto_msgTypes[89].OneofWrappers = []interface{}{ + file_points_proto_msgTypes[93].OneofWrappers = []interface{}{ (*Match_Keyword)(nil), (*Match_Integer)(nil), (*Match_Boolean)(nil), @@ -12085,29 +12693,29 @@ func file_points_proto_init() { (*Match_ExceptIntegers)(nil), (*Match_ExceptKeywords)(nil), } - file_points_proto_msgTypes[92].OneofWrappers = []interface{}{} - file_points_proto_msgTypes[93].OneofWrappers = []interface{}{} - file_points_proto_msgTypes[98].OneofWrappers = []interface{}{} - file_points_proto_msgTypes[99].OneofWrappers = []interface{}{ + file_points_proto_msgTypes[96].OneofWrappers = []interface{}{} + file_points_proto_msgTypes[97].OneofWrappers = []interface{}{} + file_points_proto_msgTypes[102].OneofWrappers = []interface{}{} + file_points_proto_msgTypes[103].OneofWrappers = []interface{}{ (*PointsSelector_Points)(nil), (*PointsSelector_Filter)(nil), } - file_points_proto_msgTypes[101].OneofWrappers = []interface{}{} file_points_proto_msgTypes[105].OneofWrappers = []interface{}{} - file_points_proto_msgTypes[106].OneofWrappers = []interface{}{} - file_points_proto_msgTypes[107].OneofWrappers = []interface{}{} - file_points_proto_msgTypes[108].OneofWrappers = []interface{}{} file_points_proto_msgTypes[109].OneofWrappers = []interface{}{} file_points_proto_msgTypes[110].OneofWrappers = []interface{}{} file_points_proto_msgTypes[111].OneofWrappers = []interface{}{} file_points_proto_msgTypes[112].OneofWrappers = []interface{}{} + file_points_proto_msgTypes[113].OneofWrappers = []interface{}{} + file_points_proto_msgTypes[114].OneofWrappers = []interface{}{} + file_points_proto_msgTypes[115].OneofWrappers = []interface{}{} + file_points_proto_msgTypes[116].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_points_proto_rawDesc, - NumEnums: 7, - NumMessages: 118, + NumEnums: 8, + NumMessages: 122, NumExtensions: 0, NumServices: 0, }, diff --git a/qdrant/points_service.pb.go b/qdrant/points_service.pb.go index f5469af..77523ed 100644 --- a/qdrant/points_service.pb.go +++ b/qdrant/points_service.pb.go @@ -24,7 +24,7 @@ var File_points_service_proto protoreflect.FileDescriptor var file_points_service_proto_rawDesc = []byte{ 0x0a, 0x14, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x1a, 0x0c, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0xce, 0x0d, 0x0a, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x96, 0x0e, 0x0a, 0x06, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x12, 0x14, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x1a, 0x1f, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, @@ -133,8 +133,12 @@ var file_points_service_proto_rawDesc = []byte{ 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x1a, 0x1a, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x46, 0x0a, + 0x0b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x18, 0x2e, 0x71, + 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x1a, 0x1b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_points_service_proto_goTypes = []interface{}{ @@ -161,21 +165,23 @@ var file_points_service_proto_goTypes = []interface{}{ (*UpdateBatchPoints)(nil), // 20: qdrant.UpdateBatchPoints (*QueryPoints)(nil), // 21: qdrant.QueryPoints (*QueryBatchPoints)(nil), // 22: qdrant.QueryBatchPoints - (*PointsOperationResponse)(nil), // 23: qdrant.PointsOperationResponse - (*GetResponse)(nil), // 24: qdrant.GetResponse - (*SearchResponse)(nil), // 25: qdrant.SearchResponse - (*SearchBatchResponse)(nil), // 26: qdrant.SearchBatchResponse - (*SearchGroupsResponse)(nil), // 27: qdrant.SearchGroupsResponse - (*ScrollResponse)(nil), // 28: qdrant.ScrollResponse - (*RecommendResponse)(nil), // 29: qdrant.RecommendResponse - (*RecommendBatchResponse)(nil), // 30: qdrant.RecommendBatchResponse - (*RecommendGroupsResponse)(nil), // 31: qdrant.RecommendGroupsResponse - (*DiscoverResponse)(nil), // 32: qdrant.DiscoverResponse - (*DiscoverBatchResponse)(nil), // 33: qdrant.DiscoverBatchResponse - (*CountResponse)(nil), // 34: qdrant.CountResponse - (*UpdateBatchResponse)(nil), // 35: qdrant.UpdateBatchResponse - (*QueryResponse)(nil), // 36: qdrant.QueryResponse - (*QueryBatchResponse)(nil), // 37: qdrant.QueryBatchResponse + (*QueryPointGroups)(nil), // 23: qdrant.QueryPointGroups + (*PointsOperationResponse)(nil), // 24: qdrant.PointsOperationResponse + (*GetResponse)(nil), // 25: qdrant.GetResponse + (*SearchResponse)(nil), // 26: qdrant.SearchResponse + (*SearchBatchResponse)(nil), // 27: qdrant.SearchBatchResponse + (*SearchGroupsResponse)(nil), // 28: qdrant.SearchGroupsResponse + (*ScrollResponse)(nil), // 29: qdrant.ScrollResponse + (*RecommendResponse)(nil), // 30: qdrant.RecommendResponse + (*RecommendBatchResponse)(nil), // 31: qdrant.RecommendBatchResponse + (*RecommendGroupsResponse)(nil), // 32: qdrant.RecommendGroupsResponse + (*DiscoverResponse)(nil), // 33: qdrant.DiscoverResponse + (*DiscoverBatchResponse)(nil), // 34: qdrant.DiscoverBatchResponse + (*CountResponse)(nil), // 35: qdrant.CountResponse + (*UpdateBatchResponse)(nil), // 36: qdrant.UpdateBatchResponse + (*QueryResponse)(nil), // 37: qdrant.QueryResponse + (*QueryBatchResponse)(nil), // 38: qdrant.QueryBatchResponse + (*QueryGroupsResponse)(nil), // 39: qdrant.QueryGroupsResponse } var file_points_service_proto_depIdxs = []int32{ 0, // 0: qdrant.Points.Upsert:input_type -> qdrant.UpsertPoints @@ -202,32 +208,34 @@ var file_points_service_proto_depIdxs = []int32{ 20, // 21: qdrant.Points.UpdateBatch:input_type -> qdrant.UpdateBatchPoints 21, // 22: qdrant.Points.Query:input_type -> qdrant.QueryPoints 22, // 23: qdrant.Points.QueryBatch:input_type -> qdrant.QueryBatchPoints - 23, // 24: qdrant.Points.Upsert:output_type -> qdrant.PointsOperationResponse - 23, // 25: qdrant.Points.Delete:output_type -> qdrant.PointsOperationResponse - 24, // 26: qdrant.Points.Get:output_type -> qdrant.GetResponse - 23, // 27: qdrant.Points.UpdateVectors:output_type -> qdrant.PointsOperationResponse - 23, // 28: qdrant.Points.DeleteVectors:output_type -> qdrant.PointsOperationResponse - 23, // 29: qdrant.Points.SetPayload:output_type -> qdrant.PointsOperationResponse - 23, // 30: qdrant.Points.OverwritePayload:output_type -> qdrant.PointsOperationResponse - 23, // 31: qdrant.Points.DeletePayload:output_type -> qdrant.PointsOperationResponse - 23, // 32: qdrant.Points.ClearPayload:output_type -> qdrant.PointsOperationResponse - 23, // 33: qdrant.Points.CreateFieldIndex:output_type -> qdrant.PointsOperationResponse - 23, // 34: qdrant.Points.DeleteFieldIndex:output_type -> qdrant.PointsOperationResponse - 25, // 35: qdrant.Points.Search:output_type -> qdrant.SearchResponse - 26, // 36: qdrant.Points.SearchBatch:output_type -> qdrant.SearchBatchResponse - 27, // 37: qdrant.Points.SearchGroups:output_type -> qdrant.SearchGroupsResponse - 28, // 38: qdrant.Points.Scroll:output_type -> qdrant.ScrollResponse - 29, // 39: qdrant.Points.Recommend:output_type -> qdrant.RecommendResponse - 30, // 40: qdrant.Points.RecommendBatch:output_type -> qdrant.RecommendBatchResponse - 31, // 41: qdrant.Points.RecommendGroups:output_type -> qdrant.RecommendGroupsResponse - 32, // 42: qdrant.Points.Discover:output_type -> qdrant.DiscoverResponse - 33, // 43: qdrant.Points.DiscoverBatch:output_type -> qdrant.DiscoverBatchResponse - 34, // 44: qdrant.Points.Count:output_type -> qdrant.CountResponse - 35, // 45: qdrant.Points.UpdateBatch:output_type -> qdrant.UpdateBatchResponse - 36, // 46: qdrant.Points.Query:output_type -> qdrant.QueryResponse - 37, // 47: qdrant.Points.QueryBatch:output_type -> qdrant.QueryBatchResponse - 24, // [24:48] is the sub-list for method output_type - 0, // [0:24] is the sub-list for method input_type + 23, // 24: qdrant.Points.QueryGroups:input_type -> qdrant.QueryPointGroups + 24, // 25: qdrant.Points.Upsert:output_type -> qdrant.PointsOperationResponse + 24, // 26: qdrant.Points.Delete:output_type -> qdrant.PointsOperationResponse + 25, // 27: qdrant.Points.Get:output_type -> qdrant.GetResponse + 24, // 28: qdrant.Points.UpdateVectors:output_type -> qdrant.PointsOperationResponse + 24, // 29: qdrant.Points.DeleteVectors:output_type -> qdrant.PointsOperationResponse + 24, // 30: qdrant.Points.SetPayload:output_type -> qdrant.PointsOperationResponse + 24, // 31: qdrant.Points.OverwritePayload:output_type -> qdrant.PointsOperationResponse + 24, // 32: qdrant.Points.DeletePayload:output_type -> qdrant.PointsOperationResponse + 24, // 33: qdrant.Points.ClearPayload:output_type -> qdrant.PointsOperationResponse + 24, // 34: qdrant.Points.CreateFieldIndex:output_type -> qdrant.PointsOperationResponse + 24, // 35: qdrant.Points.DeleteFieldIndex:output_type -> qdrant.PointsOperationResponse + 26, // 36: qdrant.Points.Search:output_type -> qdrant.SearchResponse + 27, // 37: qdrant.Points.SearchBatch:output_type -> qdrant.SearchBatchResponse + 28, // 38: qdrant.Points.SearchGroups:output_type -> qdrant.SearchGroupsResponse + 29, // 39: qdrant.Points.Scroll:output_type -> qdrant.ScrollResponse + 30, // 40: qdrant.Points.Recommend:output_type -> qdrant.RecommendResponse + 31, // 41: qdrant.Points.RecommendBatch:output_type -> qdrant.RecommendBatchResponse + 32, // 42: qdrant.Points.RecommendGroups:output_type -> qdrant.RecommendGroupsResponse + 33, // 43: qdrant.Points.Discover:output_type -> qdrant.DiscoverResponse + 34, // 44: qdrant.Points.DiscoverBatch:output_type -> qdrant.DiscoverBatchResponse + 35, // 45: qdrant.Points.Count:output_type -> qdrant.CountResponse + 36, // 46: qdrant.Points.UpdateBatch:output_type -> qdrant.UpdateBatchResponse + 37, // 47: qdrant.Points.Query:output_type -> qdrant.QueryResponse + 38, // 48: qdrant.Points.QueryBatch:output_type -> qdrant.QueryBatchResponse + 39, // 49: qdrant.Points.QueryGroups:output_type -> qdrant.QueryGroupsResponse + 25, // [25:50] is the sub-list for method output_type + 0, // [0:25] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name diff --git a/qdrant/points_service_grpc.pb.go b/qdrant/points_service_grpc.pb.go index 94dd84b..4194bb4 100644 --- a/qdrant/points_service_grpc.pb.go +++ b/qdrant/points_service_grpc.pb.go @@ -84,6 +84,8 @@ type PointsClient interface { Query(ctx context.Context, in *QueryPoints, opts ...grpc.CallOption) (*QueryResponse, error) // Universally query points in a batch fashion. This endpoint covers all capabilities of search, recommend, discover, filters. But also enables hybrid and multi-stage queries. QueryBatch(ctx context.Context, in *QueryBatchPoints, opts ...grpc.CallOption) (*QueryBatchResponse, error) + // Universally query points in a group fashion. This endpoint covers all capabilities of search, recommend, discover, filters. But also enables hybrid and multi-stage queries. + QueryGroups(ctx context.Context, in *QueryPointGroups, opts ...grpc.CallOption) (*QueryGroupsResponse, error) } type pointsClient struct { @@ -310,6 +312,15 @@ func (c *pointsClient) QueryBatch(ctx context.Context, in *QueryBatchPoints, opt return out, nil } +func (c *pointsClient) QueryGroups(ctx context.Context, in *QueryPointGroups, opts ...grpc.CallOption) (*QueryGroupsResponse, error) { + out := new(QueryGroupsResponse) + err := c.cc.Invoke(ctx, "/qdrant.Points/QueryGroups", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // PointsServer is the server API for Points service. // All implementations must embed UnimplementedPointsServer // for forward compatibility @@ -376,6 +387,8 @@ type PointsServer interface { Query(context.Context, *QueryPoints) (*QueryResponse, error) // Universally query points in a batch fashion. This endpoint covers all capabilities of search, recommend, discover, filters. But also enables hybrid and multi-stage queries. QueryBatch(context.Context, *QueryBatchPoints) (*QueryBatchResponse, error) + // Universally query points in a group fashion. This endpoint covers all capabilities of search, recommend, discover, filters. But also enables hybrid and multi-stage queries. + QueryGroups(context.Context, *QueryPointGroups) (*QueryGroupsResponse, error) mustEmbedUnimplementedPointsServer() } @@ -455,6 +468,9 @@ func (UnimplementedPointsServer) Query(context.Context, *QueryPoints) (*QueryRes func (UnimplementedPointsServer) QueryBatch(context.Context, *QueryBatchPoints) (*QueryBatchResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method QueryBatch not implemented") } +func (UnimplementedPointsServer) QueryGroups(context.Context, *QueryPointGroups) (*QueryGroupsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method QueryGroups not implemented") +} func (UnimplementedPointsServer) mustEmbedUnimplementedPointsServer() {} // UnsafePointsServer may be embedded to opt out of forward compatibility for this service. @@ -900,6 +916,24 @@ func _Points_QueryBatch_Handler(srv interface{}, ctx context.Context, dec func(i return interceptor(ctx, in, info, handler) } +func _Points_QueryGroups_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryPointGroups) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PointsServer).QueryGroups(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/qdrant.Points/QueryGroups", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PointsServer).QueryGroups(ctx, req.(*QueryPointGroups)) + } + return interceptor(ctx, in, info, handler) +} + // Points_ServiceDesc is the grpc.ServiceDesc for Points service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -1003,6 +1037,10 @@ var Points_ServiceDesc = grpc.ServiceDesc{ MethodName: "QueryBatch", Handler: _Points_QueryBatch_Handler, }, + { + MethodName: "QueryGroups", + Handler: _Points_QueryGroups_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "points_service.proto",