diff --git a/internal/proto/collections.proto b/internal/proto/collections.proto index 864ca6a..ed77244 100644 --- a/internal/proto/collections.proto +++ b/internal/proto/collections.proto @@ -309,6 +309,18 @@ enum ShardingMethod { Custom = 1; // Shard by user-defined key } +message StrictModeConfig { + optional bool enabled = 1; + optional uint32 max_query_limit = 2; + optional uint32 max_timeout = 3; + optional bool unindexed_filtering_retrieve = 4; + optional bool unindexed_filtering_update = 5; + + optional uint32 search_max_hnsw_ef = 6; + optional bool search_allow_exact = 7; + optional float search_max_oversampling = 8; +} + message CreateCollection { string collection_name = 1; // Name of the collection reserved 2; // Deprecated @@ -326,6 +338,7 @@ message CreateCollection { optional QuantizationConfig quantization_config = 14; // Quantization configuration of vector optional ShardingMethod sharding_method = 15; // Sharding method optional SparseVectorConfig sparse_vectors_config = 16; // Configuration for sparse vectors + optional StrictModeConfig strict_mode_config = 17; // Configuration for strict mode } message UpdateCollection { @@ -375,6 +388,7 @@ message CollectionConfig { OptimizersConfigDiff optimizer_config = 3; // Configuration of the optimizers WalConfigDiff wal_config = 4; // Configuration of the Write-Ahead-Log optional QuantizationConfig quantization_config = 5; // Configuration of the vector quantization + optional StrictModeConfig strict_mode_config = 6; // Configuration of strict mode. } enum TokenizerType { @@ -391,8 +405,8 @@ message KeywordIndexParams { } message IntegerIndexParams { - bool lookup = 1; // If true - support direct lookups. - bool range = 2; // If true - support ranges filters. + optional bool lookup = 1; // If true - support direct lookups. + optional 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. } @@ -403,6 +417,7 @@ message FloatIndexParams { } message GeoIndexParams { + optional bool on_disk = 1; // If true - store index on disk. } message TextIndexParams { @@ -410,6 +425,7 @@ message TextIndexParams { optional bool lowercase = 2; // If true - all tokens will be lowercase optional uint64 min_token_len = 3; // Minimal token length optional uint64 max_token_len = 4; // Maximal token length + optional bool on_disk = 5; // If true - store index on disk. } message BoolIndexParams { diff --git a/internal/proto/points.proto b/internal/proto/points.proto index a34047e..d3f99fb 100644 --- a/internal/proto/points.proto +++ b/internal/proto/points.proto @@ -588,17 +588,59 @@ message QueryPointGroups { optional ShardKeySelector shard_key_selector = 17; // Specify in which shards to look for the points, if not specified - look in all shards } +message FacetCounts { + string collection_name = 1; // Name of the collection + string key = 2; // Payload key of the facet + optional Filter filter = 3; // Filter conditions - return only those points that satisfy the specified conditions. + optional uint64 limit = 4; // Max number of facets. Default is 10. + optional bool exact = 5; // If true, return exact counts, slower but useful for debugging purposes. Default is false. + optional uint64 timeout = 6; // If set, overrides global timeout setting for this request. Unit is seconds. + optional ReadConsistency read_consistency = 7; // Options for specifying read consistency guarantees + optional ShardKeySelector shard_key_selector = 8; // 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 + int64 integer_value = 2; // Integer value from the facet + bool bool_value = 3; // Boolean value from the facet } } -message FacetValueHit { +message FacetHit { FacetValue value = 1; // Value from the facet uint64 count = 2; // Number of points with this value } +message SearchMatrixPoints { + string collection_name = 1; // Name of the collection + optional Filter filter = 2; // Filter conditions - return only those points that satisfy the specified conditions. + optional uint64 sample = 3; // How many points to select and search within. Default is 10. + optional uint64 limit = 4; // How many neighbours per sample to find. Default is 3. + optional string using = 5; // Define which vector to use for querying. If missing, the default vector is is used. + optional uint64 timeout = 6; // If set, overrides global timeout setting for this request. Unit is seconds. + optional ReadConsistency read_consistency = 7; // Options for specifying read consistency guarantees + optional ShardKeySelector shard_key_selector = 8; // Specify in which shards to look for the points, if not specified - look in all shards +} + +message SearchMatrixPairs { + repeated SearchMatrixPair pairs = 1; // List of pairs of points with scores +} + +message SearchMatrixPair { + PointId a = 1; // first id of the pair + PointId b = 2; // second id of the pair + float score = 3; // score of the pair +} + +message SearchMatrixOffsets { + repeated uint64 offsets_row = 1; // Row indices of the matrix + repeated uint64 offsets_col = 2; // Column indices of the matrix + repeated float scores = 3; // Scores associated with matrix coordinates + repeated PointId ids = 4; // Ids of the points in order +} + + message PointsUpdateOperation { message PointStructList { repeated PointStruct points = 1; @@ -813,6 +855,21 @@ message UpdateBatchResponse { double time = 2; // Time spent to process } +message FacetResponse { + repeated FacetHit hits = 1; + double time = 2; // Time spent to process +} + +message SearchMatrixPairsResponse { + SearchMatrixPairs result = 1; + double time = 2; // Time spent to process +} + +message SearchMatrixOffsetsResponse { + SearchMatrixOffsets result = 1; + double time = 2; // Time spent to process +} + // --------------------------------------------- // ------------- Filter Conditions ------------- // --------------------------------------------- diff --git a/internal/proto/points_service.proto b/internal/proto/points_service.proto index e88f0fd..f79313b 100644 --- a/internal/proto/points_service.proto +++ b/internal/proto/points_service.proto @@ -120,4 +120,16 @@ service Points { 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) {} + /* + Perform facet counts. For each value in the field, count the number of points that have this value and match the conditions. + */ + rpc Facet (FacetCounts) returns (FacetResponse) {} + /* + Compute distance matrix for sampled points with a pair based output format + */ + rpc SearchMatrixPairs (SearchMatrixPoints) returns (SearchMatrixPairsResponse) {} + /* + Compute distance matrix for sampled points with an offset based output format + */ + rpc SearchMatrixOffsets (SearchMatrixPoints) returns (SearchMatrixOffsetsResponse) {} } diff --git a/qdrant/collections.pb.go b/qdrant/collections.pb.go index 95b1398..522aa98 100644 --- a/qdrant/collections.pb.go +++ b/qdrant/collections.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.34.2 -// protoc v4.25.1 +// protoc v5.27.3 // source: collections.proto package qdrant @@ -2434,6 +2434,109 @@ func (*QuantizationConfigDiff_Disabled) isQuantizationConfigDiff_Quantization() func (*QuantizationConfigDiff_Binary) isQuantizationConfigDiff_Quantization() {} +type StrictModeConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Enabled *bool `protobuf:"varint,1,opt,name=enabled,proto3,oneof" json:"enabled,omitempty"` + MaxQueryLimit *uint32 `protobuf:"varint,2,opt,name=max_query_limit,json=maxQueryLimit,proto3,oneof" json:"max_query_limit,omitempty"` + MaxTimeout *uint32 `protobuf:"varint,3,opt,name=max_timeout,json=maxTimeout,proto3,oneof" json:"max_timeout,omitempty"` + UnindexedFilteringRetrieve *bool `protobuf:"varint,4,opt,name=unindexed_filtering_retrieve,json=unindexedFilteringRetrieve,proto3,oneof" json:"unindexed_filtering_retrieve,omitempty"` + UnindexedFilteringUpdate *bool `protobuf:"varint,5,opt,name=unindexed_filtering_update,json=unindexedFilteringUpdate,proto3,oneof" json:"unindexed_filtering_update,omitempty"` + SearchMaxHnswEf *uint32 `protobuf:"varint,6,opt,name=search_max_hnsw_ef,json=searchMaxHnswEf,proto3,oneof" json:"search_max_hnsw_ef,omitempty"` + SearchAllowExact *bool `protobuf:"varint,7,opt,name=search_allow_exact,json=searchAllowExact,proto3,oneof" json:"search_allow_exact,omitempty"` + SearchMaxOversampling *float32 `protobuf:"fixed32,8,opt,name=search_max_oversampling,json=searchMaxOversampling,proto3,oneof" json:"search_max_oversampling,omitempty"` +} + +func (x *StrictModeConfig) Reset() { + *x = StrictModeConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_collections_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StrictModeConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StrictModeConfig) ProtoMessage() {} + +func (x *StrictModeConfig) ProtoReflect() protoreflect.Message { + mi := &file_collections_proto_msgTypes[28] + 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 StrictModeConfig.ProtoReflect.Descriptor instead. +func (*StrictModeConfig) Descriptor() ([]byte, []int) { + return file_collections_proto_rawDescGZIP(), []int{28} +} + +func (x *StrictModeConfig) GetEnabled() bool { + if x != nil && x.Enabled != nil { + return *x.Enabled + } + return false +} + +func (x *StrictModeConfig) GetMaxQueryLimit() uint32 { + if x != nil && x.MaxQueryLimit != nil { + return *x.MaxQueryLimit + } + return 0 +} + +func (x *StrictModeConfig) GetMaxTimeout() uint32 { + if x != nil && x.MaxTimeout != nil { + return *x.MaxTimeout + } + return 0 +} + +func (x *StrictModeConfig) GetUnindexedFilteringRetrieve() bool { + if x != nil && x.UnindexedFilteringRetrieve != nil { + return *x.UnindexedFilteringRetrieve + } + return false +} + +func (x *StrictModeConfig) GetUnindexedFilteringUpdate() bool { + if x != nil && x.UnindexedFilteringUpdate != nil { + return *x.UnindexedFilteringUpdate + } + return false +} + +func (x *StrictModeConfig) GetSearchMaxHnswEf() uint32 { + if x != nil && x.SearchMaxHnswEf != nil { + return *x.SearchMaxHnswEf + } + return 0 +} + +func (x *StrictModeConfig) GetSearchAllowExact() bool { + if x != nil && x.SearchAllowExact != nil { + return *x.SearchAllowExact + } + return false +} + +func (x *StrictModeConfig) GetSearchMaxOversampling() float32 { + if x != nil && x.SearchMaxOversampling != nil { + return *x.SearchMaxOversampling + } + return 0 +} + type CreateCollection struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2453,12 +2556,13 @@ type CreateCollection struct { QuantizationConfig *QuantizationConfig `protobuf:"bytes,14,opt,name=quantization_config,json=quantizationConfig,proto3,oneof" json:"quantization_config,omitempty"` // Quantization configuration of vector ShardingMethod *ShardingMethod `protobuf:"varint,15,opt,name=sharding_method,json=shardingMethod,proto3,enum=qdrant.ShardingMethod,oneof" json:"sharding_method,omitempty"` // Sharding method SparseVectorsConfig *SparseVectorConfig `protobuf:"bytes,16,opt,name=sparse_vectors_config,json=sparseVectorsConfig,proto3,oneof" json:"sparse_vectors_config,omitempty"` // Configuration for sparse vectors + StrictModeConfig *StrictModeConfig `protobuf:"bytes,17,opt,name=strict_mode_config,json=strictModeConfig,proto3,oneof" json:"strict_mode_config,omitempty"` // Configuration for strict mode } func (x *CreateCollection) Reset() { *x = CreateCollection{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[28] + mi := &file_collections_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2471,7 +2575,7 @@ func (x *CreateCollection) String() string { func (*CreateCollection) ProtoMessage() {} func (x *CreateCollection) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[28] + mi := &file_collections_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2484,7 +2588,7 @@ func (x *CreateCollection) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateCollection.ProtoReflect.Descriptor instead. func (*CreateCollection) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{28} + return file_collections_proto_rawDescGZIP(), []int{29} } func (x *CreateCollection) GetCollectionName() string { @@ -2585,6 +2689,13 @@ func (x *CreateCollection) GetSparseVectorsConfig() *SparseVectorConfig { return nil } +func (x *CreateCollection) GetStrictModeConfig() *StrictModeConfig { + if x != nil { + return x.StrictModeConfig + } + return nil +} + type UpdateCollection struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2603,7 +2714,7 @@ type UpdateCollection struct { func (x *UpdateCollection) Reset() { *x = UpdateCollection{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[29] + mi := &file_collections_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2616,7 +2727,7 @@ func (x *UpdateCollection) String() string { func (*UpdateCollection) ProtoMessage() {} func (x *UpdateCollection) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[29] + mi := &file_collections_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2629,7 +2740,7 @@ func (x *UpdateCollection) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateCollection.ProtoReflect.Descriptor instead. func (*UpdateCollection) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{29} + return file_collections_proto_rawDescGZIP(), []int{30} } func (x *UpdateCollection) GetCollectionName() string { @@ -2700,7 +2811,7 @@ type DeleteCollection struct { func (x *DeleteCollection) Reset() { *x = DeleteCollection{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[30] + mi := &file_collections_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2713,7 +2824,7 @@ func (x *DeleteCollection) String() string { func (*DeleteCollection) ProtoMessage() {} func (x *DeleteCollection) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[30] + mi := &file_collections_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2726,7 +2837,7 @@ func (x *DeleteCollection) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteCollection.ProtoReflect.Descriptor instead. func (*DeleteCollection) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{30} + return file_collections_proto_rawDescGZIP(), []int{31} } func (x *DeleteCollection) GetCollectionName() string { @@ -2755,7 +2866,7 @@ type CollectionOperationResponse struct { func (x *CollectionOperationResponse) Reset() { *x = CollectionOperationResponse{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[31] + mi := &file_collections_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2768,7 +2879,7 @@ func (x *CollectionOperationResponse) String() string { func (*CollectionOperationResponse) ProtoMessage() {} func (x *CollectionOperationResponse) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[31] + mi := &file_collections_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2781,7 +2892,7 @@ func (x *CollectionOperationResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CollectionOperationResponse.ProtoReflect.Descriptor instead. func (*CollectionOperationResponse) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{31} + return file_collections_proto_rawDescGZIP(), []int{32} } func (x *CollectionOperationResponse) GetResult() bool { @@ -2816,7 +2927,7 @@ type CollectionParams struct { func (x *CollectionParams) Reset() { *x = CollectionParams{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[32] + mi := &file_collections_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2829,7 +2940,7 @@ func (x *CollectionParams) String() string { func (*CollectionParams) ProtoMessage() {} func (x *CollectionParams) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[32] + mi := &file_collections_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2842,7 +2953,7 @@ func (x *CollectionParams) ProtoReflect() protoreflect.Message { // Deprecated: Use CollectionParams.ProtoReflect.Descriptor instead. func (*CollectionParams) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{32} + return file_collections_proto_rawDescGZIP(), []int{33} } func (x *CollectionParams) GetShardNumber() uint32 { @@ -2915,7 +3026,7 @@ type CollectionParamsDiff struct { func (x *CollectionParamsDiff) Reset() { *x = CollectionParamsDiff{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[33] + mi := &file_collections_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2928,7 +3039,7 @@ func (x *CollectionParamsDiff) String() string { func (*CollectionParamsDiff) ProtoMessage() {} func (x *CollectionParamsDiff) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[33] + mi := &file_collections_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2941,7 +3052,7 @@ func (x *CollectionParamsDiff) ProtoReflect() protoreflect.Message { // Deprecated: Use CollectionParamsDiff.ProtoReflect.Descriptor instead. func (*CollectionParamsDiff) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{33} + return file_collections_proto_rawDescGZIP(), []int{34} } func (x *CollectionParamsDiff) GetReplicationFactor() uint32 { @@ -2982,12 +3093,13 @@ type CollectionConfig struct { OptimizerConfig *OptimizersConfigDiff `protobuf:"bytes,3,opt,name=optimizer_config,json=optimizerConfig,proto3" json:"optimizer_config,omitempty"` // Configuration of the optimizers WalConfig *WalConfigDiff `protobuf:"bytes,4,opt,name=wal_config,json=walConfig,proto3" json:"wal_config,omitempty"` // Configuration of the Write-Ahead-Log QuantizationConfig *QuantizationConfig `protobuf:"bytes,5,opt,name=quantization_config,json=quantizationConfig,proto3,oneof" json:"quantization_config,omitempty"` // Configuration of the vector quantization + StrictModeConfig *StrictModeConfig `protobuf:"bytes,6,opt,name=strict_mode_config,json=strictModeConfig,proto3,oneof" json:"strict_mode_config,omitempty"` // Configuration of strict mode. } func (x *CollectionConfig) Reset() { *x = CollectionConfig{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[34] + mi := &file_collections_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3000,7 +3112,7 @@ func (x *CollectionConfig) String() string { func (*CollectionConfig) ProtoMessage() {} func (x *CollectionConfig) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[34] + mi := &file_collections_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3013,7 +3125,7 @@ func (x *CollectionConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use CollectionConfig.ProtoReflect.Descriptor instead. func (*CollectionConfig) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{34} + return file_collections_proto_rawDescGZIP(), []int{35} } func (x *CollectionConfig) GetParams() *CollectionParams { @@ -3051,6 +3163,13 @@ func (x *CollectionConfig) GetQuantizationConfig() *QuantizationConfig { return nil } +func (x *CollectionConfig) GetStrictModeConfig() *StrictModeConfig { + if x != nil { + return x.StrictModeConfig + } + return nil +} + type KeywordIndexParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3063,7 +3182,7 @@ type KeywordIndexParams struct { func (x *KeywordIndexParams) Reset() { *x = KeywordIndexParams{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[35] + mi := &file_collections_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3076,7 +3195,7 @@ func (x *KeywordIndexParams) String() string { func (*KeywordIndexParams) ProtoMessage() {} func (x *KeywordIndexParams) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[35] + mi := &file_collections_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3089,7 +3208,7 @@ func (x *KeywordIndexParams) ProtoReflect() protoreflect.Message { // Deprecated: Use KeywordIndexParams.ProtoReflect.Descriptor instead. func (*KeywordIndexParams) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{35} + return file_collections_proto_rawDescGZIP(), []int{36} } func (x *KeywordIndexParams) GetIsTenant() bool { @@ -3111,8 +3230,8 @@ type IntegerIndexParams struct { 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. + Lookup *bool `protobuf:"varint,1,opt,name=lookup,proto3,oneof" json:"lookup,omitempty"` // If true - support direct lookups. + Range *bool `protobuf:"varint,2,opt,name=range,proto3,oneof" 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. } @@ -3120,7 +3239,7 @@ type IntegerIndexParams struct { func (x *IntegerIndexParams) Reset() { *x = IntegerIndexParams{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[36] + mi := &file_collections_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3133,7 +3252,7 @@ func (x *IntegerIndexParams) String() string { func (*IntegerIndexParams) ProtoMessage() {} func (x *IntegerIndexParams) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[36] + mi := &file_collections_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3146,19 +3265,19 @@ func (x *IntegerIndexParams) ProtoReflect() protoreflect.Message { // Deprecated: Use IntegerIndexParams.ProtoReflect.Descriptor instead. func (*IntegerIndexParams) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{36} + return file_collections_proto_rawDescGZIP(), []int{37} } func (x *IntegerIndexParams) GetLookup() bool { - if x != nil { - return x.Lookup + if x != nil && x.Lookup != nil { + return *x.Lookup } return false } func (x *IntegerIndexParams) GetRange() bool { - if x != nil { - return x.Range + if x != nil && x.Range != nil { + return *x.Range } return false } @@ -3189,7 +3308,7 @@ type FloatIndexParams struct { func (x *FloatIndexParams) Reset() { *x = FloatIndexParams{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[37] + mi := &file_collections_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3202,7 +3321,7 @@ func (x *FloatIndexParams) String() string { func (*FloatIndexParams) ProtoMessage() {} func (x *FloatIndexParams) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[37] + mi := &file_collections_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3215,7 +3334,7 @@ func (x *FloatIndexParams) ProtoReflect() protoreflect.Message { // Deprecated: Use FloatIndexParams.ProtoReflect.Descriptor instead. func (*FloatIndexParams) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{37} + return file_collections_proto_rawDescGZIP(), []int{38} } func (x *FloatIndexParams) GetOnDisk() bool { @@ -3236,12 +3355,14 @@ type GeoIndexParams 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. } func (x *GeoIndexParams) Reset() { *x = GeoIndexParams{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[38] + mi := &file_collections_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3254,7 +3375,7 @@ func (x *GeoIndexParams) String() string { func (*GeoIndexParams) ProtoMessage() {} func (x *GeoIndexParams) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[38] + mi := &file_collections_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3267,7 +3388,14 @@ func (x *GeoIndexParams) ProtoReflect() protoreflect.Message { // Deprecated: Use GeoIndexParams.ProtoReflect.Descriptor instead. func (*GeoIndexParams) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{38} + return file_collections_proto_rawDescGZIP(), []int{39} +} + +func (x *GeoIndexParams) GetOnDisk() bool { + if x != nil && x.OnDisk != nil { + return *x.OnDisk + } + return false } type TextIndexParams struct { @@ -3279,12 +3407,13 @@ type TextIndexParams struct { Lowercase *bool `protobuf:"varint,2,opt,name=lowercase,proto3,oneof" json:"lowercase,omitempty"` // If true - all tokens will be lowercase MinTokenLen *uint64 `protobuf:"varint,3,opt,name=min_token_len,json=minTokenLen,proto3,oneof" json:"min_token_len,omitempty"` // Minimal token length MaxTokenLen *uint64 `protobuf:"varint,4,opt,name=max_token_len,json=maxTokenLen,proto3,oneof" json:"max_token_len,omitempty"` // Maximal token length + OnDisk *bool `protobuf:"varint,5,opt,name=on_disk,json=onDisk,proto3,oneof" json:"on_disk,omitempty"` // If true - store index on disk. } func (x *TextIndexParams) Reset() { *x = TextIndexParams{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[39] + mi := &file_collections_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3297,7 +3426,7 @@ func (x *TextIndexParams) String() string { func (*TextIndexParams) ProtoMessage() {} func (x *TextIndexParams) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[39] + mi := &file_collections_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3310,7 +3439,7 @@ func (x *TextIndexParams) ProtoReflect() protoreflect.Message { // Deprecated: Use TextIndexParams.ProtoReflect.Descriptor instead. func (*TextIndexParams) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{39} + return file_collections_proto_rawDescGZIP(), []int{40} } func (x *TextIndexParams) GetTokenizer() TokenizerType { @@ -3341,6 +3470,13 @@ func (x *TextIndexParams) GetMaxTokenLen() uint64 { return 0 } +func (x *TextIndexParams) GetOnDisk() bool { + if x != nil && x.OnDisk != nil { + return *x.OnDisk + } + return false +} + type BoolIndexParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3350,7 +3486,7 @@ type BoolIndexParams struct { func (x *BoolIndexParams) Reset() { *x = BoolIndexParams{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[40] + mi := &file_collections_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3363,7 +3499,7 @@ func (x *BoolIndexParams) String() string { func (*BoolIndexParams) ProtoMessage() {} func (x *BoolIndexParams) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[40] + mi := &file_collections_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3376,7 +3512,7 @@ func (x *BoolIndexParams) ProtoReflect() protoreflect.Message { // Deprecated: Use BoolIndexParams.ProtoReflect.Descriptor instead. func (*BoolIndexParams) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{40} + return file_collections_proto_rawDescGZIP(), []int{41} } type DatetimeIndexParams struct { @@ -3391,7 +3527,7 @@ type DatetimeIndexParams struct { func (x *DatetimeIndexParams) Reset() { *x = DatetimeIndexParams{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[41] + mi := &file_collections_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3404,7 +3540,7 @@ func (x *DatetimeIndexParams) String() string { func (*DatetimeIndexParams) ProtoMessage() {} func (x *DatetimeIndexParams) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[41] + mi := &file_collections_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3417,7 +3553,7 @@ func (x *DatetimeIndexParams) ProtoReflect() protoreflect.Message { // Deprecated: Use DatetimeIndexParams.ProtoReflect.Descriptor instead. func (*DatetimeIndexParams) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{41} + return file_collections_proto_rawDescGZIP(), []int{42} } func (x *DatetimeIndexParams) GetOnDisk() bool { @@ -3446,7 +3582,7 @@ type UuidIndexParams struct { func (x *UuidIndexParams) Reset() { *x = UuidIndexParams{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[42] + mi := &file_collections_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3459,7 +3595,7 @@ func (x *UuidIndexParams) String() string { func (*UuidIndexParams) ProtoMessage() {} func (x *UuidIndexParams) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[42] + mi := &file_collections_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3472,7 +3608,7 @@ func (x *UuidIndexParams) ProtoReflect() protoreflect.Message { // Deprecated: Use UuidIndexParams.ProtoReflect.Descriptor instead. func (*UuidIndexParams) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{42} + return file_collections_proto_rawDescGZIP(), []int{43} } func (x *UuidIndexParams) GetIsTenant() bool { @@ -3510,7 +3646,7 @@ type PayloadIndexParams struct { func (x *PayloadIndexParams) Reset() { *x = PayloadIndexParams{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[43] + mi := &file_collections_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3523,7 +3659,7 @@ func (x *PayloadIndexParams) String() string { func (*PayloadIndexParams) ProtoMessage() {} func (x *PayloadIndexParams) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[43] + mi := &file_collections_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3536,7 +3672,7 @@ func (x *PayloadIndexParams) ProtoReflect() protoreflect.Message { // Deprecated: Use PayloadIndexParams.ProtoReflect.Descriptor instead. func (*PayloadIndexParams) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{43} + return file_collections_proto_rawDescGZIP(), []int{44} } func (m *PayloadIndexParams) GetIndexParams() isPayloadIndexParams_IndexParams { @@ -3667,7 +3803,7 @@ type PayloadSchemaInfo struct { func (x *PayloadSchemaInfo) Reset() { *x = PayloadSchemaInfo{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[44] + mi := &file_collections_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3680,7 +3816,7 @@ func (x *PayloadSchemaInfo) String() string { func (*PayloadSchemaInfo) ProtoMessage() {} func (x *PayloadSchemaInfo) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[44] + mi := &file_collections_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3693,7 +3829,7 @@ func (x *PayloadSchemaInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use PayloadSchemaInfo.ProtoReflect.Descriptor instead. func (*PayloadSchemaInfo) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{44} + return file_collections_proto_rawDescGZIP(), []int{45} } func (x *PayloadSchemaInfo) GetDataType() PayloadSchemaType { @@ -3735,7 +3871,7 @@ type CollectionInfo struct { func (x *CollectionInfo) Reset() { *x = CollectionInfo{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[45] + mi := &file_collections_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3748,7 +3884,7 @@ func (x *CollectionInfo) String() string { func (*CollectionInfo) ProtoMessage() {} func (x *CollectionInfo) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[45] + mi := &file_collections_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3761,7 +3897,7 @@ func (x *CollectionInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use CollectionInfo.ProtoReflect.Descriptor instead. func (*CollectionInfo) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{45} + return file_collections_proto_rawDescGZIP(), []int{46} } func (x *CollectionInfo) GetStatus() CollectionStatus { @@ -3832,7 +3968,7 @@ type ChangeAliases struct { func (x *ChangeAliases) Reset() { *x = ChangeAliases{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[46] + mi := &file_collections_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3845,7 +3981,7 @@ func (x *ChangeAliases) String() string { func (*ChangeAliases) ProtoMessage() {} func (x *ChangeAliases) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[46] + mi := &file_collections_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3858,7 +3994,7 @@ func (x *ChangeAliases) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeAliases.ProtoReflect.Descriptor instead. func (*ChangeAliases) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{46} + return file_collections_proto_rawDescGZIP(), []int{47} } func (x *ChangeAliases) GetActions() []*AliasOperations { @@ -3891,7 +4027,7 @@ type AliasOperations struct { func (x *AliasOperations) Reset() { *x = AliasOperations{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[47] + mi := &file_collections_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3904,7 +4040,7 @@ func (x *AliasOperations) String() string { func (*AliasOperations) ProtoMessage() {} func (x *AliasOperations) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[47] + mi := &file_collections_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3917,7 +4053,7 @@ func (x *AliasOperations) ProtoReflect() protoreflect.Message { // Deprecated: Use AliasOperations.ProtoReflect.Descriptor instead. func (*AliasOperations) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{47} + return file_collections_proto_rawDescGZIP(), []int{48} } func (m *AliasOperations) GetAction() isAliasOperations_Action { @@ -3982,7 +4118,7 @@ type CreateAlias struct { func (x *CreateAlias) Reset() { *x = CreateAlias{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[48] + mi := &file_collections_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3995,7 +4131,7 @@ func (x *CreateAlias) String() string { func (*CreateAlias) ProtoMessage() {} func (x *CreateAlias) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[48] + mi := &file_collections_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4008,7 +4144,7 @@ func (x *CreateAlias) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateAlias.ProtoReflect.Descriptor instead. func (*CreateAlias) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{48} + return file_collections_proto_rawDescGZIP(), []int{49} } func (x *CreateAlias) GetCollectionName() string { @@ -4037,7 +4173,7 @@ type RenameAlias struct { func (x *RenameAlias) Reset() { *x = RenameAlias{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[49] + mi := &file_collections_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4050,7 +4186,7 @@ func (x *RenameAlias) String() string { func (*RenameAlias) ProtoMessage() {} func (x *RenameAlias) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[49] + mi := &file_collections_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4063,7 +4199,7 @@ func (x *RenameAlias) ProtoReflect() protoreflect.Message { // Deprecated: Use RenameAlias.ProtoReflect.Descriptor instead. func (*RenameAlias) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{49} + return file_collections_proto_rawDescGZIP(), []int{50} } func (x *RenameAlias) GetOldAliasName() string { @@ -4091,7 +4227,7 @@ type DeleteAlias struct { func (x *DeleteAlias) Reset() { *x = DeleteAlias{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[50] + mi := &file_collections_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4104,7 +4240,7 @@ func (x *DeleteAlias) String() string { func (*DeleteAlias) ProtoMessage() {} func (x *DeleteAlias) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[50] + mi := &file_collections_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4117,7 +4253,7 @@ func (x *DeleteAlias) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteAlias.ProtoReflect.Descriptor instead. func (*DeleteAlias) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{50} + return file_collections_proto_rawDescGZIP(), []int{51} } func (x *DeleteAlias) GetAliasName() string { @@ -4136,7 +4272,7 @@ type ListAliasesRequest struct { func (x *ListAliasesRequest) Reset() { *x = ListAliasesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[51] + mi := &file_collections_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4149,7 +4285,7 @@ func (x *ListAliasesRequest) String() string { func (*ListAliasesRequest) ProtoMessage() {} func (x *ListAliasesRequest) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[51] + mi := &file_collections_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4162,7 +4298,7 @@ func (x *ListAliasesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListAliasesRequest.ProtoReflect.Descriptor instead. func (*ListAliasesRequest) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{51} + return file_collections_proto_rawDescGZIP(), []int{52} } type ListCollectionAliasesRequest struct { @@ -4176,7 +4312,7 @@ type ListCollectionAliasesRequest struct { func (x *ListCollectionAliasesRequest) Reset() { *x = ListCollectionAliasesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[52] + mi := &file_collections_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4189,7 +4325,7 @@ func (x *ListCollectionAliasesRequest) String() string { func (*ListCollectionAliasesRequest) ProtoMessage() {} func (x *ListCollectionAliasesRequest) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[52] + mi := &file_collections_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4202,7 +4338,7 @@ func (x *ListCollectionAliasesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListCollectionAliasesRequest.ProtoReflect.Descriptor instead. func (*ListCollectionAliasesRequest) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{52} + return file_collections_proto_rawDescGZIP(), []int{53} } func (x *ListCollectionAliasesRequest) GetCollectionName() string { @@ -4224,7 +4360,7 @@ type AliasDescription struct { func (x *AliasDescription) Reset() { *x = AliasDescription{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[53] + mi := &file_collections_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4237,7 +4373,7 @@ func (x *AliasDescription) String() string { func (*AliasDescription) ProtoMessage() {} func (x *AliasDescription) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[53] + mi := &file_collections_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4250,7 +4386,7 @@ func (x *AliasDescription) ProtoReflect() protoreflect.Message { // Deprecated: Use AliasDescription.ProtoReflect.Descriptor instead. func (*AliasDescription) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{53} + return file_collections_proto_rawDescGZIP(), []int{54} } func (x *AliasDescription) GetAliasName() string { @@ -4279,7 +4415,7 @@ type ListAliasesResponse struct { func (x *ListAliasesResponse) Reset() { *x = ListAliasesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[54] + mi := &file_collections_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4292,7 +4428,7 @@ func (x *ListAliasesResponse) String() string { func (*ListAliasesResponse) ProtoMessage() {} func (x *ListAliasesResponse) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[54] + mi := &file_collections_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4305,7 +4441,7 @@ func (x *ListAliasesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListAliasesResponse.ProtoReflect.Descriptor instead. func (*ListAliasesResponse) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{54} + return file_collections_proto_rawDescGZIP(), []int{55} } func (x *ListAliasesResponse) GetAliases() []*AliasDescription { @@ -4333,7 +4469,7 @@ type CollectionClusterInfoRequest struct { func (x *CollectionClusterInfoRequest) Reset() { *x = CollectionClusterInfoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[55] + mi := &file_collections_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4346,7 +4482,7 @@ func (x *CollectionClusterInfoRequest) String() string { func (*CollectionClusterInfoRequest) ProtoMessage() {} func (x *CollectionClusterInfoRequest) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[55] + mi := &file_collections_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4359,7 +4495,7 @@ func (x *CollectionClusterInfoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CollectionClusterInfoRequest.ProtoReflect.Descriptor instead. func (*CollectionClusterInfoRequest) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{55} + return file_collections_proto_rawDescGZIP(), []int{56} } func (x *CollectionClusterInfoRequest) GetCollectionName() string { @@ -4384,7 +4520,7 @@ type ShardKey struct { func (x *ShardKey) Reset() { *x = ShardKey{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[56] + mi := &file_collections_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4397,7 +4533,7 @@ func (x *ShardKey) String() string { func (*ShardKey) ProtoMessage() {} func (x *ShardKey) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[56] + mi := &file_collections_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4410,7 +4546,7 @@ func (x *ShardKey) ProtoReflect() protoreflect.Message { // Deprecated: Use ShardKey.ProtoReflect.Descriptor instead. func (*ShardKey) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{56} + return file_collections_proto_rawDescGZIP(), []int{57} } func (m *ShardKey) GetKey() isShardKey_Key { @@ -4464,7 +4600,7 @@ type LocalShardInfo struct { func (x *LocalShardInfo) Reset() { *x = LocalShardInfo{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[57] + mi := &file_collections_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4477,7 +4613,7 @@ func (x *LocalShardInfo) String() string { func (*LocalShardInfo) ProtoMessage() {} func (x *LocalShardInfo) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[57] + mi := &file_collections_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4490,7 +4626,7 @@ func (x *LocalShardInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use LocalShardInfo.ProtoReflect.Descriptor instead. func (*LocalShardInfo) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{57} + return file_collections_proto_rawDescGZIP(), []int{58} } func (x *LocalShardInfo) GetShardId() uint32 { @@ -4535,7 +4671,7 @@ type RemoteShardInfo struct { func (x *RemoteShardInfo) Reset() { *x = RemoteShardInfo{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[58] + mi := &file_collections_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4548,7 +4684,7 @@ func (x *RemoteShardInfo) String() string { func (*RemoteShardInfo) ProtoMessage() {} func (x *RemoteShardInfo) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[58] + mi := &file_collections_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4561,7 +4697,7 @@ func (x *RemoteShardInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoteShardInfo.ProtoReflect.Descriptor instead. func (*RemoteShardInfo) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{58} + return file_collections_proto_rawDescGZIP(), []int{59} } func (x *RemoteShardInfo) GetShardId() uint32 { @@ -4607,7 +4743,7 @@ type ShardTransferInfo struct { func (x *ShardTransferInfo) Reset() { *x = ShardTransferInfo{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[59] + mi := &file_collections_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4620,7 +4756,7 @@ func (x *ShardTransferInfo) String() string { func (*ShardTransferInfo) ProtoMessage() {} func (x *ShardTransferInfo) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[59] + mi := &file_collections_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4633,7 +4769,7 @@ func (x *ShardTransferInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ShardTransferInfo.ProtoReflect.Descriptor instead. func (*ShardTransferInfo) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{59} + return file_collections_proto_rawDescGZIP(), []int{60} } func (x *ShardTransferInfo) GetShardId() uint32 { @@ -4684,7 +4820,7 @@ type ReshardingInfo struct { func (x *ReshardingInfo) Reset() { *x = ReshardingInfo{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[60] + mi := &file_collections_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4697,7 +4833,7 @@ func (x *ReshardingInfo) String() string { func (*ReshardingInfo) ProtoMessage() {} func (x *ReshardingInfo) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[60] + mi := &file_collections_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4710,7 +4846,7 @@ func (x *ReshardingInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ReshardingInfo.ProtoReflect.Descriptor instead. func (*ReshardingInfo) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{60} + return file_collections_proto_rawDescGZIP(), []int{61} } func (x *ReshardingInfo) GetShardId() uint32 { @@ -4749,7 +4885,7 @@ type CollectionClusterInfoResponse struct { func (x *CollectionClusterInfoResponse) Reset() { *x = CollectionClusterInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[61] + mi := &file_collections_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4762,7 +4898,7 @@ func (x *CollectionClusterInfoResponse) String() string { func (*CollectionClusterInfoResponse) ProtoMessage() {} func (x *CollectionClusterInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[61] + mi := &file_collections_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4775,7 +4911,7 @@ func (x *CollectionClusterInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CollectionClusterInfoResponse.ProtoReflect.Descriptor instead. func (*CollectionClusterInfoResponse) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{61} + return file_collections_proto_rawDescGZIP(), []int{62} } func (x *CollectionClusterInfoResponse) GetPeerId() uint64 { @@ -4828,7 +4964,7 @@ type MoveShard struct { func (x *MoveShard) Reset() { *x = MoveShard{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[62] + mi := &file_collections_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4841,7 +4977,7 @@ func (x *MoveShard) String() string { func (*MoveShard) ProtoMessage() {} func (x *MoveShard) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[62] + mi := &file_collections_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4854,7 +4990,7 @@ func (x *MoveShard) ProtoReflect() protoreflect.Message { // Deprecated: Use MoveShard.ProtoReflect.Descriptor instead. func (*MoveShard) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{62} + return file_collections_proto_rawDescGZIP(), []int{63} } func (x *MoveShard) GetShardId() uint32 { @@ -4907,7 +5043,7 @@ type ReplicateShard struct { func (x *ReplicateShard) Reset() { *x = ReplicateShard{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[63] + mi := &file_collections_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4920,7 +5056,7 @@ func (x *ReplicateShard) String() string { func (*ReplicateShard) ProtoMessage() {} func (x *ReplicateShard) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[63] + mi := &file_collections_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4933,7 +5069,7 @@ func (x *ReplicateShard) ProtoReflect() protoreflect.Message { // Deprecated: Use ReplicateShard.ProtoReflect.Descriptor instead. func (*ReplicateShard) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{63} + return file_collections_proto_rawDescGZIP(), []int{64} } func (x *ReplicateShard) GetShardId() uint32 { @@ -4985,7 +5121,7 @@ type AbortShardTransfer struct { func (x *AbortShardTransfer) Reset() { *x = AbortShardTransfer{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[64] + mi := &file_collections_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4998,7 +5134,7 @@ func (x *AbortShardTransfer) String() string { func (*AbortShardTransfer) ProtoMessage() {} func (x *AbortShardTransfer) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[64] + mi := &file_collections_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5011,7 +5147,7 @@ func (x *AbortShardTransfer) ProtoReflect() protoreflect.Message { // Deprecated: Use AbortShardTransfer.ProtoReflect.Descriptor instead. func (*AbortShardTransfer) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{64} + return file_collections_proto_rawDescGZIP(), []int{65} } func (x *AbortShardTransfer) GetShardId() uint32 { @@ -5057,7 +5193,7 @@ type RestartTransfer struct { func (x *RestartTransfer) Reset() { *x = RestartTransfer{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[65] + mi := &file_collections_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5070,7 +5206,7 @@ func (x *RestartTransfer) String() string { func (*RestartTransfer) ProtoMessage() {} func (x *RestartTransfer) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[65] + mi := &file_collections_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5083,7 +5219,7 @@ func (x *RestartTransfer) ProtoReflect() protoreflect.Message { // Deprecated: Use RestartTransfer.ProtoReflect.Descriptor instead. func (*RestartTransfer) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{65} + return file_collections_proto_rawDescGZIP(), []int{66} } func (x *RestartTransfer) GetShardId() uint32 { @@ -5133,7 +5269,7 @@ type Replica struct { func (x *Replica) Reset() { *x = Replica{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[66] + mi := &file_collections_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5146,7 +5282,7 @@ func (x *Replica) String() string { func (*Replica) ProtoMessage() {} func (x *Replica) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[66] + mi := &file_collections_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5159,7 +5295,7 @@ func (x *Replica) ProtoReflect() protoreflect.Message { // Deprecated: Use Replica.ProtoReflect.Descriptor instead. func (*Replica) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{66} + return file_collections_proto_rawDescGZIP(), []int{67} } func (x *Replica) GetShardId() uint32 { @@ -5190,7 +5326,7 @@ type CreateShardKey struct { func (x *CreateShardKey) Reset() { *x = CreateShardKey{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[67] + mi := &file_collections_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5203,7 +5339,7 @@ func (x *CreateShardKey) String() string { func (*CreateShardKey) ProtoMessage() {} func (x *CreateShardKey) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[67] + mi := &file_collections_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5216,7 +5352,7 @@ func (x *CreateShardKey) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateShardKey.ProtoReflect.Descriptor instead. func (*CreateShardKey) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{67} + return file_collections_proto_rawDescGZIP(), []int{68} } func (x *CreateShardKey) GetShardKey() *ShardKey { @@ -5258,7 +5394,7 @@ type DeleteShardKey struct { func (x *DeleteShardKey) Reset() { *x = DeleteShardKey{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[68] + mi := &file_collections_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5271,7 +5407,7 @@ func (x *DeleteShardKey) String() string { func (*DeleteShardKey) ProtoMessage() {} func (x *DeleteShardKey) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[68] + mi := &file_collections_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5284,7 +5420,7 @@ func (x *DeleteShardKey) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteShardKey.ProtoReflect.Descriptor instead. func (*DeleteShardKey) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{68} + return file_collections_proto_rawDescGZIP(), []int{69} } func (x *DeleteShardKey) GetShardKey() *ShardKey { @@ -5316,7 +5452,7 @@ type UpdateCollectionClusterSetupRequest struct { func (x *UpdateCollectionClusterSetupRequest) Reset() { *x = UpdateCollectionClusterSetupRequest{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[69] + mi := &file_collections_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5329,7 +5465,7 @@ func (x *UpdateCollectionClusterSetupRequest) String() string { func (*UpdateCollectionClusterSetupRequest) ProtoMessage() {} func (x *UpdateCollectionClusterSetupRequest) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[69] + mi := &file_collections_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5342,7 +5478,7 @@ func (x *UpdateCollectionClusterSetupRequest) ProtoReflect() protoreflect.Messag // Deprecated: Use UpdateCollectionClusterSetupRequest.ProtoReflect.Descriptor instead. func (*UpdateCollectionClusterSetupRequest) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{69} + return file_collections_proto_rawDescGZIP(), []int{70} } func (x *UpdateCollectionClusterSetupRequest) GetCollectionName() string { @@ -5479,7 +5615,7 @@ type UpdateCollectionClusterSetupResponse struct { func (x *UpdateCollectionClusterSetupResponse) Reset() { *x = UpdateCollectionClusterSetupResponse{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[70] + mi := &file_collections_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5492,7 +5628,7 @@ func (x *UpdateCollectionClusterSetupResponse) String() string { func (*UpdateCollectionClusterSetupResponse) ProtoMessage() {} func (x *UpdateCollectionClusterSetupResponse) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[70] + mi := &file_collections_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5505,7 +5641,7 @@ func (x *UpdateCollectionClusterSetupResponse) ProtoReflect() protoreflect.Messa // Deprecated: Use UpdateCollectionClusterSetupResponse.ProtoReflect.Descriptor instead. func (*UpdateCollectionClusterSetupResponse) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{70} + return file_collections_proto_rawDescGZIP(), []int{71} } func (x *UpdateCollectionClusterSetupResponse) GetResult() bool { @@ -5528,7 +5664,7 @@ type CreateShardKeyRequest struct { func (x *CreateShardKeyRequest) Reset() { *x = CreateShardKeyRequest{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[71] + mi := &file_collections_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5541,7 +5677,7 @@ func (x *CreateShardKeyRequest) String() string { func (*CreateShardKeyRequest) ProtoMessage() {} func (x *CreateShardKeyRequest) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[71] + mi := &file_collections_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5554,7 +5690,7 @@ func (x *CreateShardKeyRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateShardKeyRequest.ProtoReflect.Descriptor instead. func (*CreateShardKeyRequest) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{71} + return file_collections_proto_rawDescGZIP(), []int{72} } func (x *CreateShardKeyRequest) GetCollectionName() string { @@ -5591,7 +5727,7 @@ type DeleteShardKeyRequest struct { func (x *DeleteShardKeyRequest) Reset() { *x = DeleteShardKeyRequest{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[72] + mi := &file_collections_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5604,7 +5740,7 @@ func (x *DeleteShardKeyRequest) String() string { func (*DeleteShardKeyRequest) ProtoMessage() {} func (x *DeleteShardKeyRequest) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[72] + mi := &file_collections_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5617,7 +5753,7 @@ func (x *DeleteShardKeyRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteShardKeyRequest.ProtoReflect.Descriptor instead. func (*DeleteShardKeyRequest) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{72} + return file_collections_proto_rawDescGZIP(), []int{73} } func (x *DeleteShardKeyRequest) GetCollectionName() string { @@ -5652,7 +5788,7 @@ type CreateShardKeyResponse struct { func (x *CreateShardKeyResponse) Reset() { *x = CreateShardKeyResponse{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[73] + mi := &file_collections_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5665,7 +5801,7 @@ func (x *CreateShardKeyResponse) String() string { func (*CreateShardKeyResponse) ProtoMessage() {} func (x *CreateShardKeyResponse) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[73] + mi := &file_collections_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5678,7 +5814,7 @@ func (x *CreateShardKeyResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateShardKeyResponse.ProtoReflect.Descriptor instead. func (*CreateShardKeyResponse) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{73} + return file_collections_proto_rawDescGZIP(), []int{74} } func (x *CreateShardKeyResponse) GetResult() bool { @@ -5699,7 +5835,7 @@ type DeleteShardKeyResponse struct { func (x *DeleteShardKeyResponse) Reset() { *x = DeleteShardKeyResponse{} if protoimpl.UnsafeEnabled { - mi := &file_collections_proto_msgTypes[74] + mi := &file_collections_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5712,7 +5848,7 @@ func (x *DeleteShardKeyResponse) String() string { func (*DeleteShardKeyResponse) ProtoMessage() {} func (x *DeleteShardKeyResponse) ProtoReflect() protoreflect.Message { - mi := &file_collections_proto_msgTypes[74] + mi := &file_collections_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5725,7 +5861,7 @@ func (x *DeleteShardKeyResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteShardKeyResponse.ProtoReflect.Descriptor instead. func (*DeleteShardKeyResponse) Descriptor() ([]byte, []int) { - return file_collections_proto_rawDescGZIP(), []int{74} + return file_collections_proto_rawDescGZIP(), []int{75} } func (x *DeleteShardKeyResponse) GetResult() bool { @@ -6023,495 +6159,539 @@ var file_collections_proto_rawDesc = []byte{ 0x32, 0x1a, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x06, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xea, 0x08, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 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, 0x3c, 0x0a, 0x0b, 0x68, 0x6e, 0x73, 0x77, 0x5f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, - 0x6e, 0x74, 0x2e, 0x48, 0x6e, 0x73, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x69, 0x66, - 0x66, 0x48, 0x00, 0x52, 0x0a, 0x68, 0x6e, 0x73, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, - 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0a, 0x77, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, - 0x57, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x69, 0x66, 0x66, 0x48, 0x01, 0x52, - 0x09, 0x77, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, - 0x11, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, - 0x74, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x44, 0x69, 0x66, 0x66, 0x48, 0x02, 0x52, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, - 0x7a, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, - 0x0c, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0b, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x6b, - 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, - 0x52, 0x0d, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x41, 0x0a, 0x0e, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xea, 0x04, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x69, 0x63, + 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1d, 0x0a, 0x07, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6d, 0x61, + 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0a, + 0x6d, 0x61, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, + 0x1c, 0x75, 0x6e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x1a, 0x75, 0x6e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x1a, 0x75, 0x6e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, + 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x18, 0x75, 0x6e, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x12, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x68, 0x6e, 0x73, 0x77, 0x5f, 0x65, 0x66, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x0f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x61, 0x78, + 0x48, 0x6e, 0x73, 0x77, 0x45, 0x66, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x73, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x65, 0x78, 0x61, 0x63, 0x74, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x10, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, + 0x6c, 0x6c, 0x6f, 0x77, 0x45, 0x78, 0x61, 0x63, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x73, + 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x48, 0x07, 0x52, + 0x15, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6d, 0x61, + 0x78, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x75, 0x6e, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x75, + 0x6e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x68, 0x6e, 0x73, 0x77, 0x5f, 0x65, 0x66, + 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x5f, 0x65, 0x78, 0x61, 0x63, 0x74, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x61, 0x6d, 0x70, 0x6c, + 0x69, 0x6e, 0x67, 0x22, 0xce, 0x09, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 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, 0x3c, 0x0a, 0x0b, 0x68, 0x6e, 0x73, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 0x48, 0x6e, 0x73, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x69, 0x66, 0x66, 0x48, 0x00, + 0x52, 0x0a, 0x68, 0x6e, 0x73, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x12, + 0x39, 0x0a, 0x0a, 0x77, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x57, 0x61, 0x6c, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x69, 0x66, 0x66, 0x48, 0x01, 0x52, 0x09, 0x77, 0x61, + 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x11, 0x6f, 0x70, + 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4f, + 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, + 0x69, 0x66, 0x66, 0x48, 0x02, 0x52, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x72, + 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x68, + 0x61, 0x72, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x03, 0x52, 0x0b, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, + 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x70, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x0d, 0x6f, + 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x1d, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x05, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, + 0x0a, 0x0e, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x06, 0x52, + 0x0d, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, + 0x11, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x63, 0x74, + 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x63, + 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, + 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x08, 0x52, 0x16, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x61, 0x63, 0x74, 0x6f, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x66, 0x72, 0x6f, + 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x09, 0x52, 0x12, 0x69, 0x6e, 0x69, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x13, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, + 0x74, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x48, 0x0a, 0x52, 0x12, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, + 0x0f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 0x53, 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x48, 0x0b, + 0x52, 0x0e, 0x73, 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x15, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x5f, 0x76, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x70, 0x61, 0x72, + 0x73, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x0c, + 0x52, 0x13, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x74, 0x72, 0x69, + 0x63, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x74, + 0x72, 0x69, 0x63, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x0d, + 0x52, 0x10, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x68, 0x6e, 0x73, 0x77, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x77, 0x61, 0x6c, 0x5f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, + 0x65, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, + 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x15, + 0x0a, 0x13, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, + 0x61, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x66, 0x61, 0x63, 0x74, + 0x6f, 0x72, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x66, 0x72, 0x6f, 0x6d, + 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x16, 0x0a, 0x14, 0x5f, + 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, + 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x73, 0x70, 0x61, 0x72, + 0x73, 0x65, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, + 0x08, 0x03, 0x10, 0x04, 0x22, 0x97, 0x05, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 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, 0x4e, 0x0a, 0x11, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x73, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x72, + 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x69, 0x66, 0x66, 0x48, 0x00, 0x52, 0x10, 0x6f, + 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, + 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x39, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x44, 0x69, 0x66, 0x66, 0x48, + 0x02, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0b, + 0x68, 0x6e, 0x73, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x48, 0x6e, 0x73, 0x77, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x69, 0x66, 0x66, 0x48, 0x03, 0x52, 0x0a, 0x68, 0x6e, 0x73, + 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0e, 0x76, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x69, 0x66, 0x66, 0x48, 0x04, 0x52, + 0x0d, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, + 0x01, 0x12, 0x54, 0x0a, 0x13, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x69, 0x66, 0x66, 0x48, 0x05, + 0x52, 0x12, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x15, 0x73, 0x70, 0x61, 0x72, 0x73, + 0x65, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 0x53, 0x70, 0x61, 0x72, 0x73, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x48, 0x06, 0x52, 0x13, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x56, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, + 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x68, 0x6e, + 0x73, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x76, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x16, 0x0a, 0x14, + 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x5f, + 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x66, + 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 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, 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, 0x49, 0x0a, 0x1b, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, + 0x65, 0x22, 0xfb, 0x04, 0x0a, 0x10, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x68, + 0x61, 0x72, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x6e, 0x5f, + 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0d, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x12, 0x41, 0x0a, 0x0e, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x48, 0x06, 0x52, 0x0d, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x48, 0x00, 0x52, 0x0d, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 0x0b, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x07, 0x52, 0x11, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, + 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x06, 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, 0x3d, 0x0a, 0x18, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x66, 0x61, - 0x63, 0x74, 0x6f, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x08, 0x52, 0x16, 0x77, 0x72, + 0x63, 0x74, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x16, 0x77, 0x72, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x61, - 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x69, 0x6e, 0x69, 0x74, 0x5f, - 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x09, 0x48, 0x09, 0x52, 0x12, 0x69, 0x6e, 0x69, 0x74, 0x46, 0x72, 0x6f, - 0x6d, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x50, - 0x0a, 0x13, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x71, 0x64, - 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x0a, 0x52, 0x12, 0x71, 0x75, 0x61, 0x6e, 0x74, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, - 0x12, 0x44, 0x0a, 0x0f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, - 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x68, 0x6f, - 0x64, 0x48, 0x0b, 0x52, 0x0e, 0x73, 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x15, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, - 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, - 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, - 0x70, 0x61, 0x72, 0x73, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x48, 0x0c, 0x52, 0x13, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, - 0x68, 0x6e, 0x73, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, - 0x77, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6f, - 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x70, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, - 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x1b, 0x0a, 0x19, 0x5f, - 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x69, 0x6e, 0x69, - 0x74, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x68, - 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x42, 0x18, 0x0a, - 0x16, 0x5f, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, - 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, - 0x03, 0x10, 0x04, 0x22, 0x97, 0x05, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 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, 0x4e, 0x0a, 0x11, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x5f, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x71, - 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x73, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x69, 0x66, 0x66, 0x48, 0x00, 0x52, 0x10, 0x6f, 0x70, - 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, - 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x01, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x39, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x44, 0x69, 0x66, 0x66, 0x48, 0x02, - 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0b, 0x68, - 0x6e, 0x73, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x48, 0x6e, 0x73, 0x77, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x44, 0x69, 0x66, 0x66, 0x48, 0x03, 0x52, 0x0a, 0x68, 0x6e, 0x73, 0x77, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0e, 0x76, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x69, 0x66, 0x66, 0x48, 0x04, 0x52, 0x0d, - 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, - 0x12, 0x54, 0x0a, 0x13, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x69, 0x66, 0x66, 0x48, 0x05, 0x52, - 0x12, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x15, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, - 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, - 0x70, 0x61, 0x72, 0x73, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x48, 0x06, 0x52, 0x13, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, - 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x68, 0x6e, 0x73, - 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x76, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x16, 0x0a, 0x14, 0x5f, - 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x5f, 0x76, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x66, 0x0a, - 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 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, 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, 0x49, 0x0a, 0x1b, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x12, 0x12, 0x0a, 0x04, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, - 0x22, 0xfb, 0x04, 0x0a, 0x10, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x68, 0x61, - 0x72, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x6e, 0x5f, 0x64, - 0x69, 0x73, 0x6b, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0d, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x12, 0x41, 0x0a, 0x0e, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, - 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, - 0x00, 0x52, 0x0d, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 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, 0x06, 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, 0x3d, 0x0a, 0x18, 0x77, 0x72, 0x69, 0x74, 0x65, - 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x66, 0x61, 0x63, - 0x74, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x16, 0x77, 0x72, 0x69, - 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x61, 0x63, - 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x13, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x66, - 0x61, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x10, 0x72, 0x65, 0x61, 0x64, 0x46, 0x61, 0x6e, 0x4f, 0x75, - 0x74, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0f, 0x73, 0x68, - 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61, - 0x72, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x48, 0x04, 0x52, 0x0e, 0x73, - 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x53, 0x0a, 0x15, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x70, 0x61, 0x72, 0x73, 0x65, 0x56, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x05, 0x52, 0x13, 0x73, - 0x70, 0x61, 0x72, 0x73, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x72, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x42, - 0x1b, 0x0a, 0x19, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x16, 0x0a, 0x14, - 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x66, 0x61, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x66, 0x61, - 0x63, 0x74, 0x6f, 0x72, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, - 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x73, 0x70, 0x61, - 0x72, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0xca, - 0x02, 0x0a, 0x14, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x44, 0x69, 0x66, 0x66, 0x12, 0x32, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x11, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x77, - 0x72, 0x69, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, - 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x16, 0x77, 0x72, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6f, 0x6e, - 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0d, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x50, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x13, 0x72, 0x65, 0x61, 0x64, 0x5f, - 0x66, 0x61, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x04, + 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x13, 0x72, 0x65, 0x61, 0x64, 0x5f, + 0x66, 0x61, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x10, 0x72, 0x65, 0x61, 0x64, 0x46, 0x61, 0x6e, 0x4f, - 0x75, 0x74, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, - 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x63, 0x74, - 0x6f, 0x72, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x42, - 0x12, 0x0a, 0x10, 0x5f, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x70, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x66, 0x61, 0x6e, - 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x22, 0xe6, 0x02, 0x0a, 0x10, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x12, 0x30, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0x37, 0x0a, 0x0b, 0x68, 0x6e, 0x73, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, - 0x2e, 0x48, 0x6e, 0x73, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x69, 0x66, 0x66, 0x52, - 0x0a, 0x68, 0x6e, 0x73, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x47, 0x0a, 0x10, 0x6f, - 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x4f, - 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, - 0x69, 0x66, 0x66, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x34, 0x0a, 0x0a, 0x77, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, - 0x74, 0x2e, 0x57, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x69, 0x66, 0x66, 0x52, - 0x09, 0x77, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x50, 0x0a, 0x13, 0x71, 0x75, - 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, - 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, - 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, 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, + 0x75, 0x74, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0f, 0x73, + 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x68, + 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x48, 0x04, 0x52, 0x0e, + 0x73, 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x53, 0x0a, 0x15, 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x70, 0x61, 0x72, 0x73, 0x65, + 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x05, 0x52, 0x13, + 0x73, 0x70, 0x61, 0x72, 0x73, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x16, 0x0a, + 0x14, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x66, 0x61, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x66, + 0x61, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x69, + 0x6e, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x73, 0x70, + 0x61, 0x72, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, + 0xca, 0x02, 0x0a, 0x14, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x44, 0x69, 0x66, 0x66, 0x12, 0x32, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x11, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, + 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, + 0x79, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x16, 0x77, 0x72, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x63, 0x79, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6f, + 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0d, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x50, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x13, 0x72, 0x65, 0x61, 0x64, + 0x5f, 0x66, 0x61, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x10, 0x72, 0x65, 0x61, 0x64, 0x46, 0x61, 0x6e, + 0x4f, 0x75, 0x74, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, + 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x63, + 0x74, 0x6f, 0x72, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x66, 0x61, + 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x22, 0xca, 0x03, 0x0a, + 0x10, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x30, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x12, 0x37, 0x0a, 0x0b, 0x68, 0x6e, 0x73, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, + 0x74, 0x2e, 0x48, 0x6e, 0x73, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x69, 0x66, 0x66, + 0x52, 0x0a, 0x68, 0x6e, 0x73, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x47, 0x0a, 0x10, + 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x44, 0x69, 0x66, 0x66, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x34, 0x0a, 0x0a, 0x77, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, + 0x6e, 0x74, 0x2e, 0x57, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x69, 0x66, 0x66, + 0x52, 0x09, 0x77, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x50, 0x0a, 0x13, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, + 0x74, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, + 0x6e, 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, 0x12, 0x4b, 0x0a, + 0x12, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, + 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x63, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x48, 0x01, 0x52, 0x10, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x4d, 0x6f, 0x64, + 0x65, 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, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x5f, 0x63, 0x6f, 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, - 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, + 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, 0xc4, 0x01, 0x0a, 0x12, 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, 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, 0x1b, 0x0a, 0x06, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x00, 0x52, 0x06, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x05, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x70, + 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, + 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, 0x03, 0x52, 0x06, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x72, 0x61, + 0x6e, 0x67, 0x65, 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, 0x3a, 0x0a, 0x0e, 0x47, 0x65, 0x6f, 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, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6f, 0x6e, 0x5f, 0x64, + 0x69, 0x73, 0x6b, 0x22, 0x97, 0x02, 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, 0x12, 0x1c, 0x0a, 0x07, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x03, 0x52, 0x06, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x6b, 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, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x6b, 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, 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, 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, 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, + 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, 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, + 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, 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, 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, + 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, @@ -6525,177 +6705,192 @@ var file_collections_proto_rawDesc = []byte{ 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, + 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, 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, + 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 ( @@ -6711,7 +6906,7 @@ func file_collections_proto_rawDescGZIP() []byte { } var file_collections_proto_enumTypes = make([]protoimpl.EnumInfo, 12) -var file_collections_proto_msgTypes = make([]protoimpl.MessageInfo, 79) +var file_collections_proto_msgTypes = make([]protoimpl.MessageInfo, 80) var file_collections_proto_goTypes = []any{ (Datatype)(0), // 0: qdrant.Datatype (Modifier)(0), // 1: qdrant.Modifier @@ -6753,57 +6948,58 @@ var file_collections_proto_goTypes = []any{ (*QuantizationConfig)(nil), // 37: qdrant.QuantizationConfig (*Disabled)(nil), // 38: qdrant.Disabled (*QuantizationConfigDiff)(nil), // 39: qdrant.QuantizationConfigDiff - (*CreateCollection)(nil), // 40: qdrant.CreateCollection - (*UpdateCollection)(nil), // 41: qdrant.UpdateCollection - (*DeleteCollection)(nil), // 42: qdrant.DeleteCollection - (*CollectionOperationResponse)(nil), // 43: qdrant.CollectionOperationResponse - (*CollectionParams)(nil), // 44: qdrant.CollectionParams - (*CollectionParamsDiff)(nil), // 45: qdrant.CollectionParamsDiff - (*CollectionConfig)(nil), // 46: qdrant.CollectionConfig - (*KeywordIndexParams)(nil), // 47: qdrant.KeywordIndexParams - (*IntegerIndexParams)(nil), // 48: qdrant.IntegerIndexParams - (*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 + (*StrictModeConfig)(nil), // 40: qdrant.StrictModeConfig + (*CreateCollection)(nil), // 41: qdrant.CreateCollection + (*UpdateCollection)(nil), // 42: qdrant.UpdateCollection + (*DeleteCollection)(nil), // 43: qdrant.DeleteCollection + (*CollectionOperationResponse)(nil), // 44: qdrant.CollectionOperationResponse + (*CollectionParams)(nil), // 45: qdrant.CollectionParams + (*CollectionParamsDiff)(nil), // 46: qdrant.CollectionParamsDiff + (*CollectionConfig)(nil), // 47: qdrant.CollectionConfig + (*KeywordIndexParams)(nil), // 48: qdrant.KeywordIndexParams + (*IntegerIndexParams)(nil), // 49: qdrant.IntegerIndexParams + (*FloatIndexParams)(nil), // 50: qdrant.FloatIndexParams + (*GeoIndexParams)(nil), // 51: qdrant.GeoIndexParams + (*TextIndexParams)(nil), // 52: qdrant.TextIndexParams + (*BoolIndexParams)(nil), // 53: qdrant.BoolIndexParams + (*DatetimeIndexParams)(nil), // 54: qdrant.DatetimeIndexParams + (*UuidIndexParams)(nil), // 55: qdrant.UuidIndexParams + (*PayloadIndexParams)(nil), // 56: qdrant.PayloadIndexParams + (*PayloadSchemaInfo)(nil), // 57: qdrant.PayloadSchemaInfo + (*CollectionInfo)(nil), // 58: qdrant.CollectionInfo + (*ChangeAliases)(nil), // 59: qdrant.ChangeAliases + (*AliasOperations)(nil), // 60: qdrant.AliasOperations + (*CreateAlias)(nil), // 61: qdrant.CreateAlias + (*RenameAlias)(nil), // 62: qdrant.RenameAlias + (*DeleteAlias)(nil), // 63: qdrant.DeleteAlias + (*ListAliasesRequest)(nil), // 64: qdrant.ListAliasesRequest + (*ListCollectionAliasesRequest)(nil), // 65: qdrant.ListCollectionAliasesRequest + (*AliasDescription)(nil), // 66: qdrant.AliasDescription + (*ListAliasesResponse)(nil), // 67: qdrant.ListAliasesResponse + (*CollectionClusterInfoRequest)(nil), // 68: qdrant.CollectionClusterInfoRequest + (*ShardKey)(nil), // 69: qdrant.ShardKey + (*LocalShardInfo)(nil), // 70: qdrant.LocalShardInfo + (*RemoteShardInfo)(nil), // 71: qdrant.RemoteShardInfo + (*ShardTransferInfo)(nil), // 72: qdrant.ShardTransferInfo + (*ReshardingInfo)(nil), // 73: qdrant.ReshardingInfo + (*CollectionClusterInfoResponse)(nil), // 74: qdrant.CollectionClusterInfoResponse + (*MoveShard)(nil), // 75: qdrant.MoveShard + (*ReplicateShard)(nil), // 76: qdrant.ReplicateShard + (*AbortShardTransfer)(nil), // 77: qdrant.AbortShardTransfer + (*RestartTransfer)(nil), // 78: qdrant.RestartTransfer + (*Replica)(nil), // 79: qdrant.Replica + (*CreateShardKey)(nil), // 80: qdrant.CreateShardKey + (*DeleteShardKey)(nil), // 81: qdrant.DeleteShardKey + (*UpdateCollectionClusterSetupRequest)(nil), // 82: qdrant.UpdateCollectionClusterSetupRequest + (*UpdateCollectionClusterSetupResponse)(nil), // 83: qdrant.UpdateCollectionClusterSetupResponse + (*CreateShardKeyRequest)(nil), // 84: qdrant.CreateShardKeyRequest + (*DeleteShardKeyRequest)(nil), // 85: qdrant.DeleteShardKeyRequest + (*CreateShardKeyResponse)(nil), // 86: qdrant.CreateShardKeyResponse + (*DeleteShardKeyResponse)(nil), // 87: qdrant.DeleteShardKeyResponse + nil, // 88: qdrant.VectorParamsMap.MapEntry + nil, // 89: qdrant.VectorParamsDiffMap.MapEntry + nil, // 90: qdrant.SparseVectorConfig.MapEntry + nil, // 91: qdrant.CollectionInfo.PayloadSchemaEntry } var file_collections_proto_depIdxs = []int32{ 3, // 0: qdrant.VectorParams.distance:type_name -> qdrant.Distance @@ -6813,18 +7009,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 - 87, // 7: qdrant.VectorParamsMap.map:type_name -> qdrant.VectorParamsMap.MapEntry - 88, // 8: qdrant.VectorParamsDiffMap.map:type_name -> qdrant.VectorParamsDiffMap.MapEntry + 88, // 7: qdrant.VectorParamsMap.map:type_name -> qdrant.VectorParamsMap.MapEntry + 89, // 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 - 89, // 15: qdrant.SparseVectorConfig.map:type_name -> qdrant.SparseVectorConfig.MapEntry + 90, // 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 - 57, // 18: qdrant.GetCollectionInfoResponse.result:type_name -> qdrant.CollectionInfo + 58, // 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 @@ -6843,71 +7039,73 @@ var file_collections_proto_depIdxs = []int32{ 37, // 34: qdrant.CreateCollection.quantization_config:type_name -> qdrant.QuantizationConfig 8, // 35: qdrant.CreateCollection.sharding_method:type_name -> qdrant.ShardingMethod 19, // 36: qdrant.CreateCollection.sparse_vectors_config:type_name -> qdrant.SparseVectorConfig - 33, // 37: qdrant.UpdateCollection.optimizers_config:type_name -> qdrant.OptimizersConfigDiff - 45, // 38: qdrant.UpdateCollection.params:type_name -> qdrant.CollectionParamsDiff - 30, // 39: qdrant.UpdateCollection.hnsw_config:type_name -> qdrant.HnswConfigDiff - 17, // 40: qdrant.UpdateCollection.vectors_config:type_name -> qdrant.VectorsConfigDiff - 39, // 41: qdrant.UpdateCollection.quantization_config:type_name -> qdrant.QuantizationConfigDiff - 19, // 42: qdrant.UpdateCollection.sparse_vectors_config:type_name -> qdrant.SparseVectorConfig - 16, // 43: qdrant.CollectionParams.vectors_config:type_name -> qdrant.VectorsConfig - 8, // 44: qdrant.CollectionParams.sharding_method:type_name -> qdrant.ShardingMethod - 19, // 45: qdrant.CollectionParams.sparse_vectors_config:type_name -> qdrant.SparseVectorConfig - 44, // 46: qdrant.CollectionConfig.params:type_name -> qdrant.CollectionParams - 30, // 47: qdrant.CollectionConfig.hnsw_config:type_name -> qdrant.HnswConfigDiff - 33, // 48: qdrant.CollectionConfig.optimizer_config:type_name -> qdrant.OptimizersConfigDiff - 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.keyword_index_params:type_name -> qdrant.KeywordIndexParams - 48, // 53: qdrant.PayloadIndexParams.integer_index_params:type_name -> qdrant.IntegerIndexParams - 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 + 40, // 37: qdrant.CreateCollection.strict_mode_config:type_name -> qdrant.StrictModeConfig + 33, // 38: qdrant.UpdateCollection.optimizers_config:type_name -> qdrant.OptimizersConfigDiff + 46, // 39: qdrant.UpdateCollection.params:type_name -> qdrant.CollectionParamsDiff + 30, // 40: qdrant.UpdateCollection.hnsw_config:type_name -> qdrant.HnswConfigDiff + 17, // 41: qdrant.UpdateCollection.vectors_config:type_name -> qdrant.VectorsConfigDiff + 39, // 42: qdrant.UpdateCollection.quantization_config:type_name -> qdrant.QuantizationConfigDiff + 19, // 43: qdrant.UpdateCollection.sparse_vectors_config:type_name -> qdrant.SparseVectorConfig + 16, // 44: qdrant.CollectionParams.vectors_config:type_name -> qdrant.VectorsConfig + 8, // 45: qdrant.CollectionParams.sharding_method:type_name -> qdrant.ShardingMethod + 19, // 46: qdrant.CollectionParams.sparse_vectors_config:type_name -> qdrant.SparseVectorConfig + 45, // 47: qdrant.CollectionConfig.params:type_name -> qdrant.CollectionParams + 30, // 48: qdrant.CollectionConfig.hnsw_config:type_name -> qdrant.HnswConfigDiff + 33, // 49: qdrant.CollectionConfig.optimizer_config:type_name -> qdrant.OptimizersConfigDiff + 32, // 50: qdrant.CollectionConfig.wal_config:type_name -> qdrant.WalConfigDiff + 37, // 51: qdrant.CollectionConfig.quantization_config:type_name -> qdrant.QuantizationConfig + 40, // 52: qdrant.CollectionConfig.strict_mode_config:type_name -> qdrant.StrictModeConfig + 9, // 53: qdrant.TextIndexParams.tokenizer:type_name -> qdrant.TokenizerType + 48, // 54: qdrant.PayloadIndexParams.keyword_index_params:type_name -> qdrant.KeywordIndexParams + 49, // 55: qdrant.PayloadIndexParams.integer_index_params:type_name -> qdrant.IntegerIndexParams + 50, // 56: qdrant.PayloadIndexParams.float_index_params:type_name -> qdrant.FloatIndexParams + 51, // 57: qdrant.PayloadIndexParams.geo_index_params:type_name -> qdrant.GeoIndexParams + 52, // 58: qdrant.PayloadIndexParams.text_index_params:type_name -> qdrant.TextIndexParams + 53, // 59: qdrant.PayloadIndexParams.bool_index_params:type_name -> qdrant.BoolIndexParams + 54, // 60: qdrant.PayloadIndexParams.datetime_index_params:type_name -> qdrant.DatetimeIndexParams + 55, // 61: qdrant.PayloadIndexParams.uuid_index_params:type_name -> qdrant.UuidIndexParams + 5, // 62: qdrant.PayloadSchemaInfo.data_type:type_name -> qdrant.PayloadSchemaType + 56, // 63: qdrant.PayloadSchemaInfo.params:type_name -> qdrant.PayloadIndexParams + 4, // 64: qdrant.CollectionInfo.status:type_name -> qdrant.CollectionStatus + 29, // 65: qdrant.CollectionInfo.optimizer_status:type_name -> qdrant.OptimizerStatus + 47, // 66: qdrant.CollectionInfo.config:type_name -> qdrant.CollectionConfig + 91, // 67: qdrant.CollectionInfo.payload_schema:type_name -> qdrant.CollectionInfo.PayloadSchemaEntry + 60, // 68: qdrant.ChangeAliases.actions:type_name -> qdrant.AliasOperations + 61, // 69: qdrant.AliasOperations.create_alias:type_name -> qdrant.CreateAlias + 62, // 70: qdrant.AliasOperations.rename_alias:type_name -> qdrant.RenameAlias + 63, // 71: qdrant.AliasOperations.delete_alias:type_name -> qdrant.DeleteAlias + 66, // 72: qdrant.ListAliasesResponse.aliases:type_name -> qdrant.AliasDescription + 10, // 73: qdrant.LocalShardInfo.state:type_name -> qdrant.ReplicaState + 69, // 74: qdrant.LocalShardInfo.shard_key:type_name -> qdrant.ShardKey + 10, // 75: qdrant.RemoteShardInfo.state:type_name -> qdrant.ReplicaState + 69, // 76: qdrant.RemoteShardInfo.shard_key:type_name -> qdrant.ShardKey + 69, // 77: qdrant.ReshardingInfo.shard_key:type_name -> qdrant.ShardKey + 70, // 78: qdrant.CollectionClusterInfoResponse.local_shards:type_name -> qdrant.LocalShardInfo + 71, // 79: qdrant.CollectionClusterInfoResponse.remote_shards:type_name -> qdrant.RemoteShardInfo + 72, // 80: qdrant.CollectionClusterInfoResponse.shard_transfers:type_name -> qdrant.ShardTransferInfo + 11, // 81: qdrant.MoveShard.method:type_name -> qdrant.ShardTransferMethod + 11, // 82: qdrant.ReplicateShard.method:type_name -> qdrant.ShardTransferMethod + 11, // 83: qdrant.RestartTransfer.method:type_name -> qdrant.ShardTransferMethod + 69, // 84: qdrant.CreateShardKey.shard_key:type_name -> qdrant.ShardKey + 69, // 85: qdrant.DeleteShardKey.shard_key:type_name -> qdrant.ShardKey + 75, // 86: qdrant.UpdateCollectionClusterSetupRequest.move_shard:type_name -> qdrant.MoveShard + 76, // 87: qdrant.UpdateCollectionClusterSetupRequest.replicate_shard:type_name -> qdrant.ReplicateShard + 77, // 88: qdrant.UpdateCollectionClusterSetupRequest.abort_transfer:type_name -> qdrant.AbortShardTransfer + 79, // 89: qdrant.UpdateCollectionClusterSetupRequest.drop_replica:type_name -> qdrant.Replica + 80, // 90: qdrant.UpdateCollectionClusterSetupRequest.create_shard_key:type_name -> qdrant.CreateShardKey + 81, // 91: qdrant.UpdateCollectionClusterSetupRequest.delete_shard_key:type_name -> qdrant.DeleteShardKey + 78, // 92: qdrant.UpdateCollectionClusterSetupRequest.restart_transfer:type_name -> qdrant.RestartTransfer + 80, // 93: qdrant.CreateShardKeyRequest.request:type_name -> qdrant.CreateShardKey + 81, // 94: qdrant.DeleteShardKeyRequest.request:type_name -> qdrant.DeleteShardKey + 12, // 95: qdrant.VectorParamsMap.MapEntry.value:type_name -> qdrant.VectorParams + 13, // 96: qdrant.VectorParamsDiffMap.MapEntry.value:type_name -> qdrant.VectorParamsDiff + 18, // 97: qdrant.SparseVectorConfig.MapEntry.value:type_name -> qdrant.SparseVectorParams + 57, // 98: qdrant.CollectionInfo.PayloadSchemaEntry.value:type_name -> qdrant.PayloadSchemaInfo + 99, // [99:99] is the sub-list for method output_type + 99, // [99:99] is the sub-list for method input_type + 99, // [99:99] is the sub-list for extension type_name + 99, // [99:99] is the sub-list for extension extendee + 0, // [0:99] is the sub-list for field type_name } func init() { file_collections_proto_init() } @@ -7253,7 +7451,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[28].Exporter = func(v any, i int) any { - switch v := v.(*CreateCollection); i { + switch v := v.(*StrictModeConfig); i { case 0: return &v.state case 1: @@ -7265,7 +7463,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[29].Exporter = func(v any, i int) any { - switch v := v.(*UpdateCollection); i { + switch v := v.(*CreateCollection); i { case 0: return &v.state case 1: @@ -7277,7 +7475,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[30].Exporter = func(v any, i int) any { - switch v := v.(*DeleteCollection); i { + switch v := v.(*UpdateCollection); i { case 0: return &v.state case 1: @@ -7289,7 +7487,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[31].Exporter = func(v any, i int) any { - switch v := v.(*CollectionOperationResponse); i { + switch v := v.(*DeleteCollection); i { case 0: return &v.state case 1: @@ -7301,7 +7499,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[32].Exporter = func(v any, i int) any { - switch v := v.(*CollectionParams); i { + switch v := v.(*CollectionOperationResponse); i { case 0: return &v.state case 1: @@ -7313,7 +7511,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[33].Exporter = func(v any, i int) any { - switch v := v.(*CollectionParamsDiff); i { + switch v := v.(*CollectionParams); i { case 0: return &v.state case 1: @@ -7325,7 +7523,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[34].Exporter = func(v any, i int) any { - switch v := v.(*CollectionConfig); i { + switch v := v.(*CollectionParamsDiff); i { case 0: return &v.state case 1: @@ -7337,7 +7535,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[35].Exporter = func(v any, i int) any { - switch v := v.(*KeywordIndexParams); i { + switch v := v.(*CollectionConfig); i { case 0: return &v.state case 1: @@ -7349,7 +7547,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[36].Exporter = func(v any, i int) any { - switch v := v.(*IntegerIndexParams); i { + switch v := v.(*KeywordIndexParams); i { case 0: return &v.state case 1: @@ -7361,7 +7559,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[37].Exporter = func(v any, i int) any { - switch v := v.(*FloatIndexParams); i { + switch v := v.(*IntegerIndexParams); i { case 0: return &v.state case 1: @@ -7373,7 +7571,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[38].Exporter = func(v any, i int) any { - switch v := v.(*GeoIndexParams); i { + switch v := v.(*FloatIndexParams); i { case 0: return &v.state case 1: @@ -7385,7 +7583,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[39].Exporter = func(v any, i int) any { - switch v := v.(*TextIndexParams); i { + switch v := v.(*GeoIndexParams); i { case 0: return &v.state case 1: @@ -7397,7 +7595,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[40].Exporter = func(v any, i int) any { - switch v := v.(*BoolIndexParams); i { + switch v := v.(*TextIndexParams); i { case 0: return &v.state case 1: @@ -7409,7 +7607,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[41].Exporter = func(v any, i int) any { - switch v := v.(*DatetimeIndexParams); i { + switch v := v.(*BoolIndexParams); i { case 0: return &v.state case 1: @@ -7421,7 +7619,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[42].Exporter = func(v any, i int) any { - switch v := v.(*UuidIndexParams); i { + switch v := v.(*DatetimeIndexParams); i { case 0: return &v.state case 1: @@ -7433,7 +7631,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[43].Exporter = func(v any, i int) any { - switch v := v.(*PayloadIndexParams); i { + switch v := v.(*UuidIndexParams); i { case 0: return &v.state case 1: @@ -7445,7 +7643,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[44].Exporter = func(v any, i int) any { - switch v := v.(*PayloadSchemaInfo); i { + switch v := v.(*PayloadIndexParams); i { case 0: return &v.state case 1: @@ -7457,7 +7655,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[45].Exporter = func(v any, i int) any { - switch v := v.(*CollectionInfo); i { + switch v := v.(*PayloadSchemaInfo); i { case 0: return &v.state case 1: @@ -7469,7 +7667,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[46].Exporter = func(v any, i int) any { - switch v := v.(*ChangeAliases); i { + switch v := v.(*CollectionInfo); i { case 0: return &v.state case 1: @@ -7481,7 +7679,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[47].Exporter = func(v any, i int) any { - switch v := v.(*AliasOperations); i { + switch v := v.(*ChangeAliases); i { case 0: return &v.state case 1: @@ -7493,7 +7691,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[48].Exporter = func(v any, i int) any { - switch v := v.(*CreateAlias); i { + switch v := v.(*AliasOperations); i { case 0: return &v.state case 1: @@ -7505,7 +7703,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[49].Exporter = func(v any, i int) any { - switch v := v.(*RenameAlias); i { + switch v := v.(*CreateAlias); i { case 0: return &v.state case 1: @@ -7517,7 +7715,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[50].Exporter = func(v any, i int) any { - switch v := v.(*DeleteAlias); i { + switch v := v.(*RenameAlias); i { case 0: return &v.state case 1: @@ -7529,7 +7727,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[51].Exporter = func(v any, i int) any { - switch v := v.(*ListAliasesRequest); i { + switch v := v.(*DeleteAlias); i { case 0: return &v.state case 1: @@ -7541,7 +7739,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[52].Exporter = func(v any, i int) any { - switch v := v.(*ListCollectionAliasesRequest); i { + switch v := v.(*ListAliasesRequest); i { case 0: return &v.state case 1: @@ -7553,7 +7751,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[53].Exporter = func(v any, i int) any { - switch v := v.(*AliasDescription); i { + switch v := v.(*ListCollectionAliasesRequest); i { case 0: return &v.state case 1: @@ -7565,7 +7763,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[54].Exporter = func(v any, i int) any { - switch v := v.(*ListAliasesResponse); i { + switch v := v.(*AliasDescription); i { case 0: return &v.state case 1: @@ -7577,7 +7775,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[55].Exporter = func(v any, i int) any { - switch v := v.(*CollectionClusterInfoRequest); i { + switch v := v.(*ListAliasesResponse); i { case 0: return &v.state case 1: @@ -7589,7 +7787,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[56].Exporter = func(v any, i int) any { - switch v := v.(*ShardKey); i { + switch v := v.(*CollectionClusterInfoRequest); i { case 0: return &v.state case 1: @@ -7601,7 +7799,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[57].Exporter = func(v any, i int) any { - switch v := v.(*LocalShardInfo); i { + switch v := v.(*ShardKey); i { case 0: return &v.state case 1: @@ -7613,7 +7811,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[58].Exporter = func(v any, i int) any { - switch v := v.(*RemoteShardInfo); i { + switch v := v.(*LocalShardInfo); i { case 0: return &v.state case 1: @@ -7625,7 +7823,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[59].Exporter = func(v any, i int) any { - switch v := v.(*ShardTransferInfo); i { + switch v := v.(*RemoteShardInfo); i { case 0: return &v.state case 1: @@ -7637,7 +7835,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[60].Exporter = func(v any, i int) any { - switch v := v.(*ReshardingInfo); i { + switch v := v.(*ShardTransferInfo); i { case 0: return &v.state case 1: @@ -7649,7 +7847,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[61].Exporter = func(v any, i int) any { - switch v := v.(*CollectionClusterInfoResponse); i { + switch v := v.(*ReshardingInfo); i { case 0: return &v.state case 1: @@ -7661,7 +7859,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[62].Exporter = func(v any, i int) any { - switch v := v.(*MoveShard); i { + switch v := v.(*CollectionClusterInfoResponse); i { case 0: return &v.state case 1: @@ -7673,7 +7871,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[63].Exporter = func(v any, i int) any { - switch v := v.(*ReplicateShard); i { + switch v := v.(*MoveShard); i { case 0: return &v.state case 1: @@ -7685,7 +7883,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[64].Exporter = func(v any, i int) any { - switch v := v.(*AbortShardTransfer); i { + switch v := v.(*ReplicateShard); i { case 0: return &v.state case 1: @@ -7697,7 +7895,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[65].Exporter = func(v any, i int) any { - switch v := v.(*RestartTransfer); i { + switch v := v.(*AbortShardTransfer); i { case 0: return &v.state case 1: @@ -7709,7 +7907,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[66].Exporter = func(v any, i int) any { - switch v := v.(*Replica); i { + switch v := v.(*RestartTransfer); i { case 0: return &v.state case 1: @@ -7721,7 +7919,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[67].Exporter = func(v any, i int) any { - switch v := v.(*CreateShardKey); i { + switch v := v.(*Replica); i { case 0: return &v.state case 1: @@ -7733,7 +7931,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[68].Exporter = func(v any, i int) any { - switch v := v.(*DeleteShardKey); i { + switch v := v.(*CreateShardKey); i { case 0: return &v.state case 1: @@ -7745,7 +7943,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[69].Exporter = func(v any, i int) any { - switch v := v.(*UpdateCollectionClusterSetupRequest); i { + switch v := v.(*DeleteShardKey); i { case 0: return &v.state case 1: @@ -7757,7 +7955,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[70].Exporter = func(v any, i int) any { - switch v := v.(*UpdateCollectionClusterSetupResponse); i { + switch v := v.(*UpdateCollectionClusterSetupRequest); i { case 0: return &v.state case 1: @@ -7769,7 +7967,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[71].Exporter = func(v any, i int) any { - switch v := v.(*CreateShardKeyRequest); i { + switch v := v.(*UpdateCollectionClusterSetupResponse); i { case 0: return &v.state case 1: @@ -7781,7 +7979,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[72].Exporter = func(v any, i int) any { - switch v := v.(*DeleteShardKeyRequest); i { + switch v := v.(*CreateShardKeyRequest); i { case 0: return &v.state case 1: @@ -7793,7 +7991,7 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[73].Exporter = func(v any, i int) any { - switch v := v.(*CreateShardKeyResponse); i { + switch v := v.(*DeleteShardKeyRequest); i { case 0: return &v.state case 1: @@ -7805,6 +8003,18 @@ func file_collections_proto_init() { } } file_collections_proto_msgTypes[74].Exporter = func(v any, i int) any { + 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[75].Exporter = func(v any, i int) any { switch v := v.(*DeleteShardKeyResponse); i { case 0: return &v.state @@ -7849,16 +8059,18 @@ func file_collections_proto_init() { file_collections_proto_msgTypes[28].OneofWrappers = []any{} file_collections_proto_msgTypes[29].OneofWrappers = []any{} file_collections_proto_msgTypes[30].OneofWrappers = []any{} - file_collections_proto_msgTypes[32].OneofWrappers = []any{} + file_collections_proto_msgTypes[31].OneofWrappers = []any{} file_collections_proto_msgTypes[33].OneofWrappers = []any{} file_collections_proto_msgTypes[34].OneofWrappers = []any{} file_collections_proto_msgTypes[35].OneofWrappers = []any{} file_collections_proto_msgTypes[36].OneofWrappers = []any{} file_collections_proto_msgTypes[37].OneofWrappers = []any{} + file_collections_proto_msgTypes[38].OneofWrappers = []any{} file_collections_proto_msgTypes[39].OneofWrappers = []any{} - file_collections_proto_msgTypes[41].OneofWrappers = []any{} + file_collections_proto_msgTypes[40].OneofWrappers = []any{} file_collections_proto_msgTypes[42].OneofWrappers = []any{} - file_collections_proto_msgTypes[43].OneofWrappers = []any{ + file_collections_proto_msgTypes[43].OneofWrappers = []any{} + file_collections_proto_msgTypes[44].OneofWrappers = []any{ (*PayloadIndexParams_KeywordIndexParams)(nil), (*PayloadIndexParams_IntegerIndexParams)(nil), (*PayloadIndexParams_FloatIndexParams)(nil), @@ -7868,28 +8080,28 @@ func file_collections_proto_init() { (*PayloadIndexParams_DatetimeIndexParams)(nil), (*PayloadIndexParams_UuidIndexParams)(nil), } - file_collections_proto_msgTypes[44].OneofWrappers = []any{} file_collections_proto_msgTypes[45].OneofWrappers = []any{} file_collections_proto_msgTypes[46].OneofWrappers = []any{} - file_collections_proto_msgTypes[47].OneofWrappers = []any{ + file_collections_proto_msgTypes[47].OneofWrappers = []any{} + file_collections_proto_msgTypes[48].OneofWrappers = []any{ (*AliasOperations_CreateAlias)(nil), (*AliasOperations_RenameAlias)(nil), (*AliasOperations_DeleteAlias)(nil), } - file_collections_proto_msgTypes[56].OneofWrappers = []any{ + file_collections_proto_msgTypes[57].OneofWrappers = []any{ (*ShardKey_Keyword)(nil), (*ShardKey_Number)(nil), } - file_collections_proto_msgTypes[57].OneofWrappers = []any{} file_collections_proto_msgTypes[58].OneofWrappers = []any{} file_collections_proto_msgTypes[59].OneofWrappers = []any{} file_collections_proto_msgTypes[60].OneofWrappers = []any{} - file_collections_proto_msgTypes[62].OneofWrappers = []any{} + file_collections_proto_msgTypes[61].OneofWrappers = []any{} file_collections_proto_msgTypes[63].OneofWrappers = []any{} file_collections_proto_msgTypes[64].OneofWrappers = []any{} file_collections_proto_msgTypes[65].OneofWrappers = []any{} - file_collections_proto_msgTypes[67].OneofWrappers = []any{} - file_collections_proto_msgTypes[69].OneofWrappers = []any{ + file_collections_proto_msgTypes[66].OneofWrappers = []any{} + file_collections_proto_msgTypes[68].OneofWrappers = []any{} + file_collections_proto_msgTypes[70].OneofWrappers = []any{ (*UpdateCollectionClusterSetupRequest_MoveShard)(nil), (*UpdateCollectionClusterSetupRequest_ReplicateShard)(nil), (*UpdateCollectionClusterSetupRequest_AbortTransfer)(nil), @@ -7898,15 +8110,15 @@ func file_collections_proto_init() { (*UpdateCollectionClusterSetupRequest_DeleteShardKey)(nil), (*UpdateCollectionClusterSetupRequest_RestartTransfer)(nil), } - file_collections_proto_msgTypes[71].OneofWrappers = []any{} file_collections_proto_msgTypes[72].OneofWrappers = []any{} + file_collections_proto_msgTypes[73].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_collections_proto_rawDesc, NumEnums: 12, - NumMessages: 79, + NumMessages: 80, NumExtensions: 0, NumServices: 0, }, diff --git a/qdrant/collections_service.pb.go b/qdrant/collections_service.pb.go index 7b66ffe..dca1d24 100644 --- a/qdrant/collections_service.pb.go +++ b/qdrant/collections_service.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.34.2 -// protoc v4.25.1 +// protoc v5.27.3 // source: collections_service.proto package qdrant diff --git a/qdrant/collections_service_grpc.pb.go b/qdrant/collections_service_grpc.pb.go index 79a0fa7..35c1e8c 100644 --- a/qdrant/collections_service_grpc.pb.go +++ b/qdrant/collections_service_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.5.1 -// - protoc v4.25.1 +// - protoc v5.27.3 // source: collections_service.proto package qdrant diff --git a/qdrant/json_with_int.pb.go b/qdrant/json_with_int.pb.go index 7106b9e..523bc28 100644 --- a/qdrant/json_with_int.pb.go +++ b/qdrant/json_with_int.pb.go @@ -3,7 +3,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.34.2 -// protoc v4.25.1 +// protoc v5.27.3 // source: json_with_int.proto package qdrant diff --git a/qdrant/points.go b/qdrant/points.go index 683c2c0..3336757 100644 --- a/qdrant/points.go +++ b/qdrant/points.go @@ -300,3 +300,51 @@ func (c *Client) QueryGroups(ctx context.Context, request *QueryPointGroups) ([] } return resp.GetResult().GetGroups(), nil } + +// Facets the points that would match a filter, with respect to a payload field. +// +// Parameters: +// - ctx: The context for the request. +// - request: The FacetCounts request containing the facet parameters. +// +// Returns: +// - []*FacetHit: A slice of facet hits matching the query. Each hit contains the value and the count for this value +func (c *Client) Facet(ctx context.Context, request *FacetCounts) ([]*FacetHit, error) { + resp, err := c.GetPointsClient().Facet(ctx, request) + if err != nil { + return nil, newQdrantErr(err, "Facet", request.GetCollectionName()) + } + return resp.GetHits(), nil +} + +// Calculates the distances between a random sample of points. +// +// Parameters: +// - ctx: The context for the request. +// - request: The SearchMatrixPoints request containing the sample size and other parameters. +// +// Returns: +// - *SearchMatrixPairs: Pairwise representation of distances. +func (c *Client) SearchMatrixPairs(ctx context.Context, request *SearchMatrixPoints) (*SearchMatrixPairs, error) { + resp, err := c.GetPointsClient().SearchMatrixPairs(ctx, request) + if err != nil { + return nil, newQdrantErr(err, "SearchMatrixPairs", request.GetCollectionName()) + } + return resp.GetResult(), nil +} + +// Calculates the distances between a random sample of points. +// +// Parameters: +// - ctx: The context for the request. +// - request: The SearchMatrixPoints request containing the sample size and other parameters. +// +// Returns: +// - *SearchMatrixOffsets: Parallel lists of offsets within an id list, and the distance between them. +func (c *Client) SearchMatrixOffsets(ctx context.Context, request *SearchMatrixPoints) (*SearchMatrixOffsets, error) { + resp, err := c.GetPointsClient().SearchMatrixOffsets(ctx, request) + if err != nil { + return nil, newQdrantErr(err, "SearchMatrixOffsets", request.GetCollectionName()) + } + return resp.GetResult(), nil +} diff --git a/qdrant/points.pb.go b/qdrant/points.pb.go index 26cafe4..1d3f879 100644 --- a/qdrant/points.pb.go +++ b/qdrant/points.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.34.2 -// protoc v4.25.1 +// protoc v5.27.3 // source: points.proto package qdrant @@ -5191,6 +5191,109 @@ func (x *QueryPointGroups) GetShardKeySelector() *ShardKeySelector { return nil } +type FacetCounts 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 + Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` // Payload key of the facet + Filter *Filter `protobuf:"bytes,3,opt,name=filter,proto3,oneof" json:"filter,omitempty"` // Filter conditions - return only those points that satisfy the specified conditions. + Limit *uint64 `protobuf:"varint,4,opt,name=limit,proto3,oneof" json:"limit,omitempty"` // Max number of facets. Default is 10. + Exact *bool `protobuf:"varint,5,opt,name=exact,proto3,oneof" json:"exact,omitempty"` // If true, return exact counts, slower but useful for debugging purposes. Default is false. + 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. + ReadConsistency *ReadConsistency `protobuf:"bytes,7,opt,name=read_consistency,json=readConsistency,proto3,oneof" json:"read_consistency,omitempty"` // Options for specifying read consistency guarantees + ShardKeySelector *ShardKeySelector `protobuf:"bytes,8,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 *FacetCounts) Reset() { + *x = FacetCounts{} + if protoimpl.UnsafeEnabled { + mi := &file_points_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FacetCounts) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FacetCounts) ProtoMessage() {} + +func (x *FacetCounts) ProtoReflect() protoreflect.Message { + mi := &file_points_proto_msgTypes[56] + 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 FacetCounts.ProtoReflect.Descriptor instead. +func (*FacetCounts) Descriptor() ([]byte, []int) { + return file_points_proto_rawDescGZIP(), []int{56} +} + +func (x *FacetCounts) GetCollectionName() string { + if x != nil { + return x.CollectionName + } + return "" +} + +func (x *FacetCounts) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (x *FacetCounts) GetFilter() *Filter { + if x != nil { + return x.Filter + } + return nil +} + +func (x *FacetCounts) GetLimit() uint64 { + if x != nil && x.Limit != nil { + return *x.Limit + } + return 0 +} + +func (x *FacetCounts) GetExact() bool { + if x != nil && x.Exact != nil { + return *x.Exact + } + return false +} + +func (x *FacetCounts) GetTimeout() uint64 { + if x != nil && x.Timeout != nil { + return *x.Timeout + } + return 0 +} + +func (x *FacetCounts) GetReadConsistency() *ReadConsistency { + if x != nil { + return x.ReadConsistency + } + return nil +} + +func (x *FacetCounts) GetShardKeySelector() *ShardKeySelector { + if x != nil { + return x.ShardKeySelector + } + return nil +} + type FacetValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -5199,13 +5302,15 @@ type FacetValue struct { // Types that are assignable to Variant: // // *FacetValue_StringValue + // *FacetValue_IntegerValue + // *FacetValue_BoolValue Variant isFacetValue_Variant `protobuf_oneof:"variant"` } func (x *FacetValue) Reset() { *x = FacetValue{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[56] + mi := &file_points_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5218,7 +5323,7 @@ func (x *FacetValue) String() string { func (*FacetValue) ProtoMessage() {} func (x *FacetValue) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[56] + mi := &file_points_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5231,7 +5336,7 @@ func (x *FacetValue) ProtoReflect() protoreflect.Message { // Deprecated: Use FacetValue.ProtoReflect.Descriptor instead. func (*FacetValue) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{56} + return file_points_proto_rawDescGZIP(), []int{57} } func (m *FacetValue) GetVariant() isFacetValue_Variant { @@ -5248,6 +5353,20 @@ func (x *FacetValue) GetStringValue() string { return "" } +func (x *FacetValue) GetIntegerValue() int64 { + if x, ok := x.GetVariant().(*FacetValue_IntegerValue); ok { + return x.IntegerValue + } + return 0 +} + +func (x *FacetValue) GetBoolValue() bool { + if x, ok := x.GetVariant().(*FacetValue_BoolValue); ok { + return x.BoolValue + } + return false +} + type isFacetValue_Variant interface { isFacetValue_Variant() } @@ -5256,9 +5375,21 @@ type FacetValue_StringValue struct { StringValue string `protobuf:"bytes,1,opt,name=string_value,json=stringValue,proto3,oneof"` // String value from the facet } +type FacetValue_IntegerValue struct { + IntegerValue int64 `protobuf:"varint,2,opt,name=integer_value,json=integerValue,proto3,oneof"` // Integer value from the facet +} + +type FacetValue_BoolValue struct { + BoolValue bool `protobuf:"varint,3,opt,name=bool_value,json=boolValue,proto3,oneof"` // Boolean value from the facet +} + func (*FacetValue_StringValue) isFacetValue_Variant() {} -type FacetValueHit struct { +func (*FacetValue_IntegerValue) isFacetValue_Variant() {} + +func (*FacetValue_BoolValue) isFacetValue_Variant() {} + +type FacetHit struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -5267,23 +5398,23 @@ type FacetValueHit struct { Count uint64 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` // Number of points with this value } -func (x *FacetValueHit) Reset() { - *x = FacetValueHit{} +func (x *FacetHit) Reset() { + *x = FacetHit{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[57] + mi := &file_points_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FacetValueHit) String() string { +func (x *FacetHit) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FacetValueHit) ProtoMessage() {} +func (*FacetHit) ProtoMessage() {} -func (x *FacetValueHit) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[57] +func (x *FacetHit) 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 { @@ -5294,25 +5425,309 @@ func (x *FacetValueHit) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FacetValueHit.ProtoReflect.Descriptor instead. -func (*FacetValueHit) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{57} +// Deprecated: Use FacetHit.ProtoReflect.Descriptor instead. +func (*FacetHit) Descriptor() ([]byte, []int) { + return file_points_proto_rawDescGZIP(), []int{58} } -func (x *FacetValueHit) GetValue() *FacetValue { +func (x *FacetHit) GetValue() *FacetValue { if x != nil { return x.Value } return nil } -func (x *FacetValueHit) GetCount() uint64 { +func (x *FacetHit) GetCount() uint64 { if x != nil { return x.Count } return 0 } +type SearchMatrixPoints 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 + Filter *Filter `protobuf:"bytes,2,opt,name=filter,proto3,oneof" json:"filter,omitempty"` // Filter conditions - return only those points that satisfy the specified conditions. + Sample *uint64 `protobuf:"varint,3,opt,name=sample,proto3,oneof" json:"sample,omitempty"` // How many points to select and search within. Default is 10. + Limit *uint64 `protobuf:"varint,4,opt,name=limit,proto3,oneof" json:"limit,omitempty"` // How many neighbours per sample to find. Default is 3. + Using *string `protobuf:"bytes,5,opt,name=using,proto3,oneof" json:"using,omitempty"` // Define which vector to use for querying. If missing, the default vector is is used. + 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. + ReadConsistency *ReadConsistency `protobuf:"bytes,7,opt,name=read_consistency,json=readConsistency,proto3,oneof" json:"read_consistency,omitempty"` // Options for specifying read consistency guarantees + ShardKeySelector *ShardKeySelector `protobuf:"bytes,8,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 *SearchMatrixPoints) Reset() { + *x = SearchMatrixPoints{} + if protoimpl.UnsafeEnabled { + mi := &file_points_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchMatrixPoints) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchMatrixPoints) ProtoMessage() {} + +func (x *SearchMatrixPoints) 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 SearchMatrixPoints.ProtoReflect.Descriptor instead. +func (*SearchMatrixPoints) Descriptor() ([]byte, []int) { + return file_points_proto_rawDescGZIP(), []int{59} +} + +func (x *SearchMatrixPoints) GetCollectionName() string { + if x != nil { + return x.CollectionName + } + return "" +} + +func (x *SearchMatrixPoints) GetFilter() *Filter { + if x != nil { + return x.Filter + } + return nil +} + +func (x *SearchMatrixPoints) GetSample() uint64 { + if x != nil && x.Sample != nil { + return *x.Sample + } + return 0 +} + +func (x *SearchMatrixPoints) GetLimit() uint64 { + if x != nil && x.Limit != nil { + return *x.Limit + } + return 0 +} + +func (x *SearchMatrixPoints) GetUsing() string { + if x != nil && x.Using != nil { + return *x.Using + } + return "" +} + +func (x *SearchMatrixPoints) GetTimeout() uint64 { + if x != nil && x.Timeout != nil { + return *x.Timeout + } + return 0 +} + +func (x *SearchMatrixPoints) GetReadConsistency() *ReadConsistency { + if x != nil { + return x.ReadConsistency + } + return nil +} + +func (x *SearchMatrixPoints) GetShardKeySelector() *ShardKeySelector { + if x != nil { + return x.ShardKeySelector + } + return nil +} + +type SearchMatrixPairs struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pairs []*SearchMatrixPair `protobuf:"bytes,1,rep,name=pairs,proto3" json:"pairs,omitempty"` // List of pairs of points with scores +} + +func (x *SearchMatrixPairs) Reset() { + *x = SearchMatrixPairs{} + if protoimpl.UnsafeEnabled { + mi := &file_points_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchMatrixPairs) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchMatrixPairs) ProtoMessage() {} + +func (x *SearchMatrixPairs) ProtoReflect() protoreflect.Message { + mi := &file_points_proto_msgTypes[60] + 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 SearchMatrixPairs.ProtoReflect.Descriptor instead. +func (*SearchMatrixPairs) Descriptor() ([]byte, []int) { + return file_points_proto_rawDescGZIP(), []int{60} +} + +func (x *SearchMatrixPairs) GetPairs() []*SearchMatrixPair { + if x != nil { + return x.Pairs + } + return nil +} + +type SearchMatrixPair struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + A *PointId `protobuf:"bytes,1,opt,name=a,proto3" json:"a,omitempty"` // first id of the pair + B *PointId `protobuf:"bytes,2,opt,name=b,proto3" json:"b,omitempty"` // second id of the pair + Score float32 `protobuf:"fixed32,3,opt,name=score,proto3" json:"score,omitempty"` // score of the pair +} + +func (x *SearchMatrixPair) Reset() { + *x = SearchMatrixPair{} + if protoimpl.UnsafeEnabled { + mi := &file_points_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchMatrixPair) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchMatrixPair) ProtoMessage() {} + +func (x *SearchMatrixPair) ProtoReflect() protoreflect.Message { + mi := &file_points_proto_msgTypes[61] + 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 SearchMatrixPair.ProtoReflect.Descriptor instead. +func (*SearchMatrixPair) Descriptor() ([]byte, []int) { + return file_points_proto_rawDescGZIP(), []int{61} +} + +func (x *SearchMatrixPair) GetA() *PointId { + if x != nil { + return x.A + } + return nil +} + +func (x *SearchMatrixPair) GetB() *PointId { + if x != nil { + return x.B + } + return nil +} + +func (x *SearchMatrixPair) GetScore() float32 { + if x != nil { + return x.Score + } + return 0 +} + +type SearchMatrixOffsets struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OffsetsRow []uint64 `protobuf:"varint,1,rep,packed,name=offsets_row,json=offsetsRow,proto3" json:"offsets_row,omitempty"` // Row indices of the matrix + OffsetsCol []uint64 `protobuf:"varint,2,rep,packed,name=offsets_col,json=offsetsCol,proto3" json:"offsets_col,omitempty"` // Column indices of the matrix + Scores []float32 `protobuf:"fixed32,3,rep,packed,name=scores,proto3" json:"scores,omitempty"` // Scores associated with matrix coordinates + Ids []*PointId `protobuf:"bytes,4,rep,name=ids,proto3" json:"ids,omitempty"` // Ids of the points in order +} + +func (x *SearchMatrixOffsets) Reset() { + *x = SearchMatrixOffsets{} + if protoimpl.UnsafeEnabled { + mi := &file_points_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchMatrixOffsets) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchMatrixOffsets) ProtoMessage() {} + +func (x *SearchMatrixOffsets) ProtoReflect() protoreflect.Message { + mi := &file_points_proto_msgTypes[62] + 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 SearchMatrixOffsets.ProtoReflect.Descriptor instead. +func (*SearchMatrixOffsets) Descriptor() ([]byte, []int) { + return file_points_proto_rawDescGZIP(), []int{62} +} + +func (x *SearchMatrixOffsets) GetOffsetsRow() []uint64 { + if x != nil { + return x.OffsetsRow + } + return nil +} + +func (x *SearchMatrixOffsets) GetOffsetsCol() []uint64 { + if x != nil { + return x.OffsetsCol + } + return nil +} + +func (x *SearchMatrixOffsets) GetScores() []float32 { + if x != nil { + return x.Scores + } + return nil +} + +func (x *SearchMatrixOffsets) GetIds() []*PointId { + if x != nil { + return x.Ids + } + return nil +} + type PointsUpdateOperation struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -5336,7 +5751,7 @@ type PointsUpdateOperation struct { func (x *PointsUpdateOperation) Reset() { *x = PointsUpdateOperation{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[58] + mi := &file_points_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5349,7 +5764,7 @@ func (x *PointsUpdateOperation) String() string { func (*PointsUpdateOperation) ProtoMessage() {} func (x *PointsUpdateOperation) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[58] + mi := &file_points_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5362,7 +5777,7 @@ func (x *PointsUpdateOperation) ProtoReflect() protoreflect.Message { // Deprecated: Use PointsUpdateOperation.ProtoReflect.Descriptor instead. func (*PointsUpdateOperation) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{58} + return file_points_proto_rawDescGZIP(), []int{63} } func (m *PointsUpdateOperation) GetOperation() isPointsUpdateOperation_Operation { @@ -5524,7 +5939,7 @@ type UpdateBatchPoints struct { func (x *UpdateBatchPoints) Reset() { *x = UpdateBatchPoints{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[59] + mi := &file_points_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5537,7 +5952,7 @@ func (x *UpdateBatchPoints) String() string { func (*UpdateBatchPoints) ProtoMessage() {} func (x *UpdateBatchPoints) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[59] + mi := &file_points_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5550,7 +5965,7 @@ func (x *UpdateBatchPoints) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateBatchPoints.ProtoReflect.Descriptor instead. func (*UpdateBatchPoints) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{59} + return file_points_proto_rawDescGZIP(), []int{64} } func (x *UpdateBatchPoints) GetCollectionName() string { @@ -5593,7 +6008,7 @@ type PointsOperationResponse struct { func (x *PointsOperationResponse) Reset() { *x = PointsOperationResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[60] + mi := &file_points_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5606,7 +6021,7 @@ func (x *PointsOperationResponse) String() string { func (*PointsOperationResponse) ProtoMessage() {} func (x *PointsOperationResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[60] + mi := &file_points_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5619,7 +6034,7 @@ func (x *PointsOperationResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PointsOperationResponse.ProtoReflect.Descriptor instead. func (*PointsOperationResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{60} + return file_points_proto_rawDescGZIP(), []int{65} } func (x *PointsOperationResponse) GetResult() *UpdateResult { @@ -5648,7 +6063,7 @@ type UpdateResult struct { func (x *UpdateResult) Reset() { *x = UpdateResult{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[61] + mi := &file_points_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5661,7 +6076,7 @@ func (x *UpdateResult) String() string { func (*UpdateResult) ProtoMessage() {} func (x *UpdateResult) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[61] + mi := &file_points_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5674,7 +6089,7 @@ func (x *UpdateResult) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateResult.ProtoReflect.Descriptor instead. func (*UpdateResult) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{61} + return file_points_proto_rawDescGZIP(), []int{66} } func (x *UpdateResult) GetOperationId() uint64 { @@ -5706,7 +6121,7 @@ type OrderValue struct { func (x *OrderValue) Reset() { *x = OrderValue{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[62] + mi := &file_points_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5719,7 +6134,7 @@ func (x *OrderValue) String() string { func (*OrderValue) ProtoMessage() {} func (x *OrderValue) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[62] + mi := &file_points_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5732,7 +6147,7 @@ func (x *OrderValue) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderValue.ProtoReflect.Descriptor instead. func (*OrderValue) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{62} + return file_points_proto_rawDescGZIP(), []int{67} } func (m *OrderValue) GetVariant() isOrderValue_Variant { @@ -5789,7 +6204,7 @@ type ScoredPoint struct { func (x *ScoredPoint) Reset() { *x = ScoredPoint{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[63] + mi := &file_points_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5802,7 +6217,7 @@ func (x *ScoredPoint) String() string { func (*ScoredPoint) ProtoMessage() {} func (x *ScoredPoint) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[63] + mi := &file_points_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5815,7 +6230,7 @@ func (x *ScoredPoint) ProtoReflect() protoreflect.Message { // Deprecated: Use ScoredPoint.ProtoReflect.Descriptor instead. func (*ScoredPoint) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{63} + return file_points_proto_rawDescGZIP(), []int{68} } func (x *ScoredPoint) GetId() *PointId { @@ -5883,7 +6298,7 @@ type GroupId struct { func (x *GroupId) Reset() { *x = GroupId{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[64] + mi := &file_points_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5896,7 +6311,7 @@ func (x *GroupId) String() string { func (*GroupId) ProtoMessage() {} func (x *GroupId) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[64] + mi := &file_points_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5909,7 +6324,7 @@ func (x *GroupId) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupId.ProtoReflect.Descriptor instead. func (*GroupId) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{64} + return file_points_proto_rawDescGZIP(), []int{69} } func (m *GroupId) GetKind() isGroupId_Kind { @@ -5978,7 +6393,7 @@ type PointGroup struct { func (x *PointGroup) Reset() { *x = PointGroup{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[65] + mi := &file_points_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5991,7 +6406,7 @@ func (x *PointGroup) String() string { func (*PointGroup) ProtoMessage() {} func (x *PointGroup) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[65] + mi := &file_points_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6004,7 +6419,7 @@ func (x *PointGroup) ProtoReflect() protoreflect.Message { // Deprecated: Use PointGroup.ProtoReflect.Descriptor instead. func (*PointGroup) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{65} + return file_points_proto_rawDescGZIP(), []int{70} } func (x *PointGroup) GetId() *GroupId { @@ -6039,7 +6454,7 @@ type GroupsResult struct { func (x *GroupsResult) Reset() { *x = GroupsResult{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[66] + mi := &file_points_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6052,7 +6467,7 @@ func (x *GroupsResult) String() string { func (*GroupsResult) ProtoMessage() {} func (x *GroupsResult) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[66] + mi := &file_points_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6065,7 +6480,7 @@ func (x *GroupsResult) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupsResult.ProtoReflect.Descriptor instead. func (*GroupsResult) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{66} + return file_points_proto_rawDescGZIP(), []int{71} } func (x *GroupsResult) GetGroups() []*PointGroup { @@ -6087,7 +6502,7 @@ type SearchResponse struct { func (x *SearchResponse) Reset() { *x = SearchResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[67] + mi := &file_points_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6100,7 +6515,7 @@ func (x *SearchResponse) String() string { func (*SearchResponse) ProtoMessage() {} func (x *SearchResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[67] + mi := &file_points_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6113,7 +6528,7 @@ func (x *SearchResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SearchResponse.ProtoReflect.Descriptor instead. func (*SearchResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{67} + return file_points_proto_rawDescGZIP(), []int{72} } func (x *SearchResponse) GetResult() []*ScoredPoint { @@ -6142,7 +6557,7 @@ type QueryResponse struct { func (x *QueryResponse) Reset() { *x = QueryResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[68] + mi := &file_points_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6155,7 +6570,7 @@ func (x *QueryResponse) String() string { func (*QueryResponse) ProtoMessage() {} func (x *QueryResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[68] + mi := &file_points_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6168,7 +6583,7 @@ func (x *QueryResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use QueryResponse.ProtoReflect.Descriptor instead. func (*QueryResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{68} + return file_points_proto_rawDescGZIP(), []int{73} } func (x *QueryResponse) GetResult() []*ScoredPoint { @@ -6197,7 +6612,7 @@ type QueryBatchResponse struct { func (x *QueryBatchResponse) Reset() { *x = QueryBatchResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[69] + mi := &file_points_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6210,7 +6625,7 @@ func (x *QueryBatchResponse) String() string { func (*QueryBatchResponse) ProtoMessage() {} func (x *QueryBatchResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[69] + mi := &file_points_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6223,7 +6638,7 @@ func (x *QueryBatchResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use QueryBatchResponse.ProtoReflect.Descriptor instead. func (*QueryBatchResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{69} + return file_points_proto_rawDescGZIP(), []int{74} } func (x *QueryBatchResponse) GetResult() []*BatchResult { @@ -6252,7 +6667,7 @@ type QueryGroupsResponse struct { func (x *QueryGroupsResponse) Reset() { *x = QueryGroupsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[70] + mi := &file_points_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6265,7 +6680,7 @@ func (x *QueryGroupsResponse) String() string { func (*QueryGroupsResponse) ProtoMessage() {} func (x *QueryGroupsResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[70] + mi := &file_points_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6278,7 +6693,7 @@ func (x *QueryGroupsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use QueryGroupsResponse.ProtoReflect.Descriptor instead. func (*QueryGroupsResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{70} + return file_points_proto_rawDescGZIP(), []int{75} } func (x *QueryGroupsResponse) GetResult() *GroupsResult { @@ -6306,7 +6721,7 @@ type BatchResult struct { func (x *BatchResult) Reset() { *x = BatchResult{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[71] + mi := &file_points_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6319,7 +6734,7 @@ func (x *BatchResult) String() string { func (*BatchResult) ProtoMessage() {} func (x *BatchResult) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[71] + mi := &file_points_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6332,7 +6747,7 @@ func (x *BatchResult) ProtoReflect() protoreflect.Message { // Deprecated: Use BatchResult.ProtoReflect.Descriptor instead. func (*BatchResult) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{71} + return file_points_proto_rawDescGZIP(), []int{76} } func (x *BatchResult) GetResult() []*ScoredPoint { @@ -6354,7 +6769,7 @@ type SearchBatchResponse struct { func (x *SearchBatchResponse) Reset() { *x = SearchBatchResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[72] + mi := &file_points_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6367,7 +6782,7 @@ func (x *SearchBatchResponse) String() string { func (*SearchBatchResponse) ProtoMessage() {} func (x *SearchBatchResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[72] + mi := &file_points_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6380,7 +6795,7 @@ func (x *SearchBatchResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SearchBatchResponse.ProtoReflect.Descriptor instead. func (*SearchBatchResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{72} + return file_points_proto_rawDescGZIP(), []int{77} } func (x *SearchBatchResponse) GetResult() []*BatchResult { @@ -6409,7 +6824,7 @@ type SearchGroupsResponse struct { func (x *SearchGroupsResponse) Reset() { *x = SearchGroupsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[73] + mi := &file_points_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6422,7 +6837,7 @@ func (x *SearchGroupsResponse) String() string { func (*SearchGroupsResponse) ProtoMessage() {} func (x *SearchGroupsResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[73] + mi := &file_points_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6435,7 +6850,7 @@ func (x *SearchGroupsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SearchGroupsResponse.ProtoReflect.Descriptor instead. func (*SearchGroupsResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{73} + return file_points_proto_rawDescGZIP(), []int{78} } func (x *SearchGroupsResponse) GetResult() *GroupsResult { @@ -6464,7 +6879,7 @@ type CountResponse struct { func (x *CountResponse) Reset() { *x = CountResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[74] + mi := &file_points_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6477,7 +6892,7 @@ func (x *CountResponse) String() string { func (*CountResponse) ProtoMessage() {} func (x *CountResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[74] + mi := &file_points_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6490,7 +6905,7 @@ func (x *CountResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CountResponse.ProtoReflect.Descriptor instead. func (*CountResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{74} + return file_points_proto_rawDescGZIP(), []int{79} } func (x *CountResponse) GetResult() *CountResult { @@ -6520,7 +6935,7 @@ type ScrollResponse struct { func (x *ScrollResponse) Reset() { *x = ScrollResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[75] + mi := &file_points_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6533,7 +6948,7 @@ func (x *ScrollResponse) String() string { func (*ScrollResponse) ProtoMessage() {} func (x *ScrollResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[75] + mi := &file_points_proto_msgTypes[80] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6546,7 +6961,7 @@ func (x *ScrollResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ScrollResponse.ProtoReflect.Descriptor instead. func (*ScrollResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{75} + return file_points_proto_rawDescGZIP(), []int{80} } func (x *ScrollResponse) GetNextPageOffset() *PointId { @@ -6581,7 +6996,7 @@ type CountResult struct { func (x *CountResult) Reset() { *x = CountResult{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[76] + mi := &file_points_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6594,7 +7009,7 @@ func (x *CountResult) String() string { func (*CountResult) ProtoMessage() {} func (x *CountResult) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[76] + mi := &file_points_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6607,7 +7022,7 @@ func (x *CountResult) ProtoReflect() protoreflect.Message { // Deprecated: Use CountResult.ProtoReflect.Descriptor instead. func (*CountResult) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{76} + return file_points_proto_rawDescGZIP(), []int{81} } func (x *CountResult) GetCount() uint64 { @@ -6632,7 +7047,7 @@ type RetrievedPoint struct { func (x *RetrievedPoint) Reset() { *x = RetrievedPoint{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[77] + mi := &file_points_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6645,7 +7060,7 @@ func (x *RetrievedPoint) String() string { func (*RetrievedPoint) ProtoMessage() {} func (x *RetrievedPoint) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[77] + mi := &file_points_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6658,7 +7073,7 @@ func (x *RetrievedPoint) ProtoReflect() protoreflect.Message { // Deprecated: Use RetrievedPoint.ProtoReflect.Descriptor instead. func (*RetrievedPoint) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{77} + return file_points_proto_rawDescGZIP(), []int{82} } func (x *RetrievedPoint) GetId() *PointId { @@ -6708,7 +7123,7 @@ type GetResponse struct { func (x *GetResponse) Reset() { *x = GetResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[78] + mi := &file_points_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6721,7 +7136,7 @@ func (x *GetResponse) String() string { func (*GetResponse) ProtoMessage() {} func (x *GetResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[78] + mi := &file_points_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6734,7 +7149,7 @@ func (x *GetResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetResponse.ProtoReflect.Descriptor instead. func (*GetResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{78} + return file_points_proto_rawDescGZIP(), []int{83} } func (x *GetResponse) GetResult() []*RetrievedPoint { @@ -6763,7 +7178,7 @@ type RecommendResponse struct { func (x *RecommendResponse) Reset() { *x = RecommendResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[79] + mi := &file_points_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6776,7 +7191,7 @@ func (x *RecommendResponse) String() string { func (*RecommendResponse) ProtoMessage() {} func (x *RecommendResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[79] + mi := &file_points_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6789,7 +7204,7 @@ func (x *RecommendResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RecommendResponse.ProtoReflect.Descriptor instead. func (*RecommendResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{79} + return file_points_proto_rawDescGZIP(), []int{84} } func (x *RecommendResponse) GetResult() []*ScoredPoint { @@ -6818,7 +7233,7 @@ type RecommendBatchResponse struct { func (x *RecommendBatchResponse) Reset() { *x = RecommendBatchResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[80] + mi := &file_points_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6831,7 +7246,7 @@ func (x *RecommendBatchResponse) String() string { func (*RecommendBatchResponse) ProtoMessage() {} func (x *RecommendBatchResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[80] + mi := &file_points_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6844,49 +7259,214 @@ func (x *RecommendBatchResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RecommendBatchResponse.ProtoReflect.Descriptor instead. func (*RecommendBatchResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{80} + return file_points_proto_rawDescGZIP(), []int{85} +} + +func (x *RecommendBatchResponse) GetResult() []*BatchResult { + if x != nil { + return x.Result + } + return nil +} + +func (x *RecommendBatchResponse) GetTime() float64 { + if x != nil { + return x.Time + } + return 0 +} + +type DiscoverResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Result []*ScoredPoint `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + Time float64 `protobuf:"fixed64,2,opt,name=time,proto3" json:"time,omitempty"` // Time spent to process +} + +func (x *DiscoverResponse) Reset() { + *x = DiscoverResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_points_proto_msgTypes[86] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DiscoverResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DiscoverResponse) ProtoMessage() {} + +func (x *DiscoverResponse) ProtoReflect() protoreflect.Message { + mi := &file_points_proto_msgTypes[86] + 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 DiscoverResponse.ProtoReflect.Descriptor instead. +func (*DiscoverResponse) Descriptor() ([]byte, []int) { + return file_points_proto_rawDescGZIP(), []int{86} +} + +func (x *DiscoverResponse) GetResult() []*ScoredPoint { + if x != nil { + return x.Result + } + return nil +} + +func (x *DiscoverResponse) GetTime() float64 { + if x != nil { + return x.Time + } + return 0 +} + +type DiscoverBatchResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Result []*BatchResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + Time float64 `protobuf:"fixed64,2,opt,name=time,proto3" json:"time,omitempty"` // Time spent to process +} + +func (x *DiscoverBatchResponse) Reset() { + *x = DiscoverBatchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_points_proto_msgTypes[87] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DiscoverBatchResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DiscoverBatchResponse) ProtoMessage() {} + +func (x *DiscoverBatchResponse) ProtoReflect() protoreflect.Message { + mi := &file_points_proto_msgTypes[87] + 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 DiscoverBatchResponse.ProtoReflect.Descriptor instead. +func (*DiscoverBatchResponse) Descriptor() ([]byte, []int) { + return file_points_proto_rawDescGZIP(), []int{87} +} + +func (x *DiscoverBatchResponse) GetResult() []*BatchResult { + if x != nil { + return x.Result + } + return nil +} + +func (x *DiscoverBatchResponse) GetTime() float64 { + if x != nil { + return x.Time + } + return 0 +} + +type RecommendGroupsResponse 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 *RecommendGroupsResponse) Reset() { + *x = RecommendGroupsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_points_proto_msgTypes[88] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RecommendGroupsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RecommendGroupsResponse) ProtoMessage() {} + +func (x *RecommendGroupsResponse) ProtoReflect() protoreflect.Message { + mi := &file_points_proto_msgTypes[88] + 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 RecommendGroupsResponse.ProtoReflect.Descriptor instead. +func (*RecommendGroupsResponse) Descriptor() ([]byte, []int) { + return file_points_proto_rawDescGZIP(), []int{88} } -func (x *RecommendBatchResponse) GetResult() []*BatchResult { +func (x *RecommendGroupsResponse) GetResult() *GroupsResult { if x != nil { return x.Result } return nil } -func (x *RecommendBatchResponse) GetTime() float64 { +func (x *RecommendGroupsResponse) GetTime() float64 { if x != nil { return x.Time } return 0 } -type DiscoverResponse struct { +type UpdateBatchResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Result []*ScoredPoint `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` - Time float64 `protobuf:"fixed64,2,opt,name=time,proto3" json:"time,omitempty"` // Time spent to process + Result []*UpdateResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + Time float64 `protobuf:"fixed64,2,opt,name=time,proto3" json:"time,omitempty"` // Time spent to process } -func (x *DiscoverResponse) Reset() { - *x = DiscoverResponse{} +func (x *UpdateBatchResponse) Reset() { + *x = UpdateBatchResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[81] + mi := &file_points_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DiscoverResponse) String() string { +func (x *UpdateBatchResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DiscoverResponse) ProtoMessage() {} +func (*UpdateBatchResponse) ProtoMessage() {} -func (x *DiscoverResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[81] +func (x *UpdateBatchResponse) ProtoReflect() protoreflect.Message { + mi := &file_points_proto_msgTypes[89] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6897,51 +7477,51 @@ func (x *DiscoverResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DiscoverResponse.ProtoReflect.Descriptor instead. -func (*DiscoverResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{81} +// Deprecated: Use UpdateBatchResponse.ProtoReflect.Descriptor instead. +func (*UpdateBatchResponse) Descriptor() ([]byte, []int) { + return file_points_proto_rawDescGZIP(), []int{89} } -func (x *DiscoverResponse) GetResult() []*ScoredPoint { +func (x *UpdateBatchResponse) GetResult() []*UpdateResult { if x != nil { return x.Result } return nil } -func (x *DiscoverResponse) GetTime() float64 { +func (x *UpdateBatchResponse) GetTime() float64 { if x != nil { return x.Time } return 0 } -type DiscoverBatchResponse struct { +type FacetResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Result []*BatchResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` - Time float64 `protobuf:"fixed64,2,opt,name=time,proto3" json:"time,omitempty"` // Time spent to process + Hits []*FacetHit `protobuf:"bytes,1,rep,name=hits,proto3" json:"hits,omitempty"` + Time float64 `protobuf:"fixed64,2,opt,name=time,proto3" json:"time,omitempty"` // Time spent to process } -func (x *DiscoverBatchResponse) Reset() { - *x = DiscoverBatchResponse{} +func (x *FacetResponse) Reset() { + *x = FacetResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[82] + mi := &file_points_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DiscoverBatchResponse) String() string { +func (x *FacetResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DiscoverBatchResponse) ProtoMessage() {} +func (*FacetResponse) ProtoMessage() {} -func (x *DiscoverBatchResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[82] +func (x *FacetResponse) ProtoReflect() protoreflect.Message { + mi := &file_points_proto_msgTypes[90] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6952,51 +7532,51 @@ func (x *DiscoverBatchResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DiscoverBatchResponse.ProtoReflect.Descriptor instead. -func (*DiscoverBatchResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{82} +// Deprecated: Use FacetResponse.ProtoReflect.Descriptor instead. +func (*FacetResponse) Descriptor() ([]byte, []int) { + return file_points_proto_rawDescGZIP(), []int{90} } -func (x *DiscoverBatchResponse) GetResult() []*BatchResult { +func (x *FacetResponse) GetHits() []*FacetHit { if x != nil { - return x.Result + return x.Hits } return nil } -func (x *DiscoverBatchResponse) GetTime() float64 { +func (x *FacetResponse) GetTime() float64 { if x != nil { return x.Time } return 0 } -type RecommendGroupsResponse struct { +type SearchMatrixPairsResponse 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 + Result *SearchMatrixPairs `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 *RecommendGroupsResponse) Reset() { - *x = RecommendGroupsResponse{} +func (x *SearchMatrixPairsResponse) Reset() { + *x = SearchMatrixPairsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[83] + mi := &file_points_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RecommendGroupsResponse) String() string { +func (x *SearchMatrixPairsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RecommendGroupsResponse) ProtoMessage() {} +func (*SearchMatrixPairsResponse) ProtoMessage() {} -func (x *RecommendGroupsResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[83] +func (x *SearchMatrixPairsResponse) ProtoReflect() protoreflect.Message { + mi := &file_points_proto_msgTypes[91] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7007,51 +7587,51 @@ func (x *RecommendGroupsResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RecommendGroupsResponse.ProtoReflect.Descriptor instead. -func (*RecommendGroupsResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{83} +// Deprecated: Use SearchMatrixPairsResponse.ProtoReflect.Descriptor instead. +func (*SearchMatrixPairsResponse) Descriptor() ([]byte, []int) { + return file_points_proto_rawDescGZIP(), []int{91} } -func (x *RecommendGroupsResponse) GetResult() *GroupsResult { +func (x *SearchMatrixPairsResponse) GetResult() *SearchMatrixPairs { if x != nil { return x.Result } return nil } -func (x *RecommendGroupsResponse) GetTime() float64 { +func (x *SearchMatrixPairsResponse) GetTime() float64 { if x != nil { return x.Time } return 0 } -type UpdateBatchResponse struct { +type SearchMatrixOffsetsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Result []*UpdateResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` - Time float64 `protobuf:"fixed64,2,opt,name=time,proto3" json:"time,omitempty"` // Time spent to process + Result *SearchMatrixOffsets `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 *UpdateBatchResponse) Reset() { - *x = UpdateBatchResponse{} +func (x *SearchMatrixOffsetsResponse) Reset() { + *x = SearchMatrixOffsetsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[84] + mi := &file_points_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UpdateBatchResponse) String() string { +func (x *SearchMatrixOffsetsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UpdateBatchResponse) ProtoMessage() {} +func (*SearchMatrixOffsetsResponse) ProtoMessage() {} -func (x *UpdateBatchResponse) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[84] +func (x *SearchMatrixOffsetsResponse) ProtoReflect() protoreflect.Message { + mi := &file_points_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7062,19 +7642,19 @@ func (x *UpdateBatchResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UpdateBatchResponse.ProtoReflect.Descriptor instead. -func (*UpdateBatchResponse) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{84} +// Deprecated: Use SearchMatrixOffsetsResponse.ProtoReflect.Descriptor instead. +func (*SearchMatrixOffsetsResponse) Descriptor() ([]byte, []int) { + return file_points_proto_rawDescGZIP(), []int{92} } -func (x *UpdateBatchResponse) GetResult() []*UpdateResult { +func (x *SearchMatrixOffsetsResponse) GetResult() *SearchMatrixOffsets { if x != nil { return x.Result } return nil } -func (x *UpdateBatchResponse) GetTime() float64 { +func (x *SearchMatrixOffsetsResponse) GetTime() float64 { if x != nil { return x.Time } @@ -7095,7 +7675,7 @@ type Filter struct { func (x *Filter) Reset() { *x = Filter{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[85] + mi := &file_points_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7108,7 +7688,7 @@ func (x *Filter) String() string { func (*Filter) ProtoMessage() {} func (x *Filter) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[85] + mi := &file_points_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7121,7 +7701,7 @@ func (x *Filter) ProtoReflect() protoreflect.Message { // Deprecated: Use Filter.ProtoReflect.Descriptor instead. func (*Filter) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{85} + return file_points_proto_rawDescGZIP(), []int{93} } func (x *Filter) GetShould() []*Condition { @@ -7164,7 +7744,7 @@ type MinShould struct { func (x *MinShould) Reset() { *x = MinShould{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[86] + mi := &file_points_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7177,7 +7757,7 @@ func (x *MinShould) String() string { func (*MinShould) ProtoMessage() {} func (x *MinShould) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[86] + mi := &file_points_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7190,7 +7770,7 @@ func (x *MinShould) ProtoReflect() protoreflect.Message { // Deprecated: Use MinShould.ProtoReflect.Descriptor instead. func (*MinShould) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{86} + return file_points_proto_rawDescGZIP(), []int{94} } func (x *MinShould) GetConditions() []*Condition { @@ -7226,7 +7806,7 @@ type Condition struct { func (x *Condition) Reset() { *x = Condition{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[87] + mi := &file_points_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7239,7 +7819,7 @@ func (x *Condition) String() string { func (*Condition) ProtoMessage() {} func (x *Condition) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[87] + mi := &file_points_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7252,7 +7832,7 @@ func (x *Condition) ProtoReflect() protoreflect.Message { // Deprecated: Use Condition.ProtoReflect.Descriptor instead. func (*Condition) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{87} + return file_points_proto_rawDescGZIP(), []int{95} } func (m *Condition) GetConditionOneOf() isCondition_ConditionOneOf { @@ -7355,7 +7935,7 @@ type IsEmptyCondition struct { func (x *IsEmptyCondition) Reset() { *x = IsEmptyCondition{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[88] + mi := &file_points_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7368,7 +7948,7 @@ func (x *IsEmptyCondition) String() string { func (*IsEmptyCondition) ProtoMessage() {} func (x *IsEmptyCondition) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[88] + mi := &file_points_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7381,7 +7961,7 @@ func (x *IsEmptyCondition) ProtoReflect() protoreflect.Message { // Deprecated: Use IsEmptyCondition.ProtoReflect.Descriptor instead. func (*IsEmptyCondition) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{88} + return file_points_proto_rawDescGZIP(), []int{96} } func (x *IsEmptyCondition) GetKey() string { @@ -7402,7 +7982,7 @@ type IsNullCondition struct { func (x *IsNullCondition) Reset() { *x = IsNullCondition{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[89] + mi := &file_points_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7415,7 +7995,7 @@ func (x *IsNullCondition) String() string { func (*IsNullCondition) ProtoMessage() {} func (x *IsNullCondition) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[89] + mi := &file_points_proto_msgTypes[97] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7428,7 +8008,7 @@ func (x *IsNullCondition) ProtoReflect() protoreflect.Message { // Deprecated: Use IsNullCondition.ProtoReflect.Descriptor instead. func (*IsNullCondition) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{89} + return file_points_proto_rawDescGZIP(), []int{97} } func (x *IsNullCondition) GetKey() string { @@ -7449,7 +8029,7 @@ type HasIdCondition struct { func (x *HasIdCondition) Reset() { *x = HasIdCondition{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[90] + mi := &file_points_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7462,7 +8042,7 @@ func (x *HasIdCondition) String() string { func (*HasIdCondition) ProtoMessage() {} func (x *HasIdCondition) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[90] + mi := &file_points_proto_msgTypes[98] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7475,7 +8055,7 @@ func (x *HasIdCondition) ProtoReflect() protoreflect.Message { // Deprecated: Use HasIdCondition.ProtoReflect.Descriptor instead. func (*HasIdCondition) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{90} + return file_points_proto_rawDescGZIP(), []int{98} } func (x *HasIdCondition) GetHasId() []*PointId { @@ -7497,7 +8077,7 @@ type NestedCondition struct { func (x *NestedCondition) Reset() { *x = NestedCondition{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[91] + mi := &file_points_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7510,7 +8090,7 @@ func (x *NestedCondition) String() string { func (*NestedCondition) ProtoMessage() {} func (x *NestedCondition) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[91] + mi := &file_points_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7523,7 +8103,7 @@ func (x *NestedCondition) ProtoReflect() protoreflect.Message { // Deprecated: Use NestedCondition.ProtoReflect.Descriptor instead. func (*NestedCondition) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{91} + return file_points_proto_rawDescGZIP(), []int{99} } func (x *NestedCondition) GetKey() string { @@ -7558,7 +8138,7 @@ type FieldCondition struct { func (x *FieldCondition) Reset() { *x = FieldCondition{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[92] + mi := &file_points_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7571,7 +8151,7 @@ func (x *FieldCondition) String() string { func (*FieldCondition) ProtoMessage() {} func (x *FieldCondition) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[92] + mi := &file_points_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7584,7 +8164,7 @@ func (x *FieldCondition) ProtoReflect() protoreflect.Message { // Deprecated: Use FieldCondition.ProtoReflect.Descriptor instead. func (*FieldCondition) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{92} + return file_points_proto_rawDescGZIP(), []int{100} } func (x *FieldCondition) GetKey() string { @@ -7664,7 +8244,7 @@ type Match struct { func (x *Match) Reset() { *x = Match{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[93] + mi := &file_points_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7677,7 +8257,7 @@ func (x *Match) String() string { func (*Match) ProtoMessage() {} func (x *Match) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[93] + mi := &file_points_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7690,7 +8270,7 @@ func (x *Match) ProtoReflect() protoreflect.Message { // Deprecated: Use Match.ProtoReflect.Descriptor instead. func (*Match) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{93} + return file_points_proto_rawDescGZIP(), []int{101} } func (m *Match) GetMatchValue() isMatch_MatchValue { @@ -7819,7 +8399,7 @@ type RepeatedStrings struct { func (x *RepeatedStrings) Reset() { *x = RepeatedStrings{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[94] + mi := &file_points_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7832,7 +8412,7 @@ func (x *RepeatedStrings) String() string { func (*RepeatedStrings) ProtoMessage() {} func (x *RepeatedStrings) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[94] + mi := &file_points_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7845,7 +8425,7 @@ func (x *RepeatedStrings) ProtoReflect() protoreflect.Message { // Deprecated: Use RepeatedStrings.ProtoReflect.Descriptor instead. func (*RepeatedStrings) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{94} + return file_points_proto_rawDescGZIP(), []int{102} } func (x *RepeatedStrings) GetStrings() []string { @@ -7866,7 +8446,7 @@ type RepeatedIntegers struct { func (x *RepeatedIntegers) Reset() { *x = RepeatedIntegers{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[95] + mi := &file_points_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7879,7 +8459,7 @@ func (x *RepeatedIntegers) String() string { func (*RepeatedIntegers) ProtoMessage() {} func (x *RepeatedIntegers) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[95] + mi := &file_points_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7892,7 +8472,7 @@ func (x *RepeatedIntegers) ProtoReflect() protoreflect.Message { // Deprecated: Use RepeatedIntegers.ProtoReflect.Descriptor instead. func (*RepeatedIntegers) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{95} + return file_points_proto_rawDescGZIP(), []int{103} } func (x *RepeatedIntegers) GetIntegers() []int64 { @@ -7916,7 +8496,7 @@ type Range struct { func (x *Range) Reset() { *x = Range{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[96] + mi := &file_points_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7929,7 +8509,7 @@ func (x *Range) String() string { func (*Range) ProtoMessage() {} func (x *Range) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[96] + mi := &file_points_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7942,7 +8522,7 @@ func (x *Range) ProtoReflect() protoreflect.Message { // Deprecated: Use Range.ProtoReflect.Descriptor instead. func (*Range) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{96} + return file_points_proto_rawDescGZIP(), []int{104} } func (x *Range) GetLt() float64 { @@ -7987,7 +8567,7 @@ type DatetimeRange struct { func (x *DatetimeRange) Reset() { *x = DatetimeRange{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[97] + mi := &file_points_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8000,7 +8580,7 @@ func (x *DatetimeRange) String() string { func (*DatetimeRange) ProtoMessage() {} func (x *DatetimeRange) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[97] + mi := &file_points_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8013,7 +8593,7 @@ func (x *DatetimeRange) ProtoReflect() protoreflect.Message { // Deprecated: Use DatetimeRange.ProtoReflect.Descriptor instead. func (*DatetimeRange) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{97} + return file_points_proto_rawDescGZIP(), []int{105} } func (x *DatetimeRange) GetLt() *timestamppb.Timestamp { @@ -8056,7 +8636,7 @@ type GeoBoundingBox struct { func (x *GeoBoundingBox) Reset() { *x = GeoBoundingBox{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[98] + mi := &file_points_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8069,7 +8649,7 @@ func (x *GeoBoundingBox) String() string { func (*GeoBoundingBox) ProtoMessage() {} func (x *GeoBoundingBox) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[98] + mi := &file_points_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8082,7 +8662,7 @@ func (x *GeoBoundingBox) ProtoReflect() protoreflect.Message { // Deprecated: Use GeoBoundingBox.ProtoReflect.Descriptor instead. func (*GeoBoundingBox) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{98} + return file_points_proto_rawDescGZIP(), []int{106} } func (x *GeoBoundingBox) GetTopLeft() *GeoPoint { @@ -8111,7 +8691,7 @@ type GeoRadius struct { func (x *GeoRadius) Reset() { *x = GeoRadius{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[99] + mi := &file_points_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8124,7 +8704,7 @@ func (x *GeoRadius) String() string { func (*GeoRadius) ProtoMessage() {} func (x *GeoRadius) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[99] + mi := &file_points_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8137,7 +8717,7 @@ func (x *GeoRadius) ProtoReflect() protoreflect.Message { // Deprecated: Use GeoRadius.ProtoReflect.Descriptor instead. func (*GeoRadius) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{99} + return file_points_proto_rawDescGZIP(), []int{107} } func (x *GeoRadius) GetCenter() *GeoPoint { @@ -8165,7 +8745,7 @@ type GeoLineString struct { func (x *GeoLineString) Reset() { *x = GeoLineString{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[100] + mi := &file_points_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8178,7 +8758,7 @@ func (x *GeoLineString) String() string { func (*GeoLineString) ProtoMessage() {} func (x *GeoLineString) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[100] + mi := &file_points_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8191,7 +8771,7 @@ func (x *GeoLineString) ProtoReflect() protoreflect.Message { // Deprecated: Use GeoLineString.ProtoReflect.Descriptor instead. func (*GeoLineString) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{100} + return file_points_proto_rawDescGZIP(), []int{108} } func (x *GeoLineString) GetPoints() []*GeoPoint { @@ -8215,7 +8795,7 @@ type GeoPolygon struct { func (x *GeoPolygon) Reset() { *x = GeoPolygon{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[101] + mi := &file_points_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8228,7 +8808,7 @@ func (x *GeoPolygon) String() string { func (*GeoPolygon) ProtoMessage() {} func (x *GeoPolygon) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[101] + mi := &file_points_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8241,7 +8821,7 @@ func (x *GeoPolygon) ProtoReflect() protoreflect.Message { // Deprecated: Use GeoPolygon.ProtoReflect.Descriptor instead. func (*GeoPolygon) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{101} + return file_points_proto_rawDescGZIP(), []int{109} } func (x *GeoPolygon) GetExterior() *GeoLineString { @@ -8272,7 +8852,7 @@ type ValuesCount struct { func (x *ValuesCount) Reset() { *x = ValuesCount{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[102] + mi := &file_points_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8285,7 +8865,7 @@ func (x *ValuesCount) String() string { func (*ValuesCount) ProtoMessage() {} func (x *ValuesCount) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[102] + mi := &file_points_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8298,7 +8878,7 @@ func (x *ValuesCount) ProtoReflect() protoreflect.Message { // Deprecated: Use ValuesCount.ProtoReflect.Descriptor instead. func (*ValuesCount) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{102} + return file_points_proto_rawDescGZIP(), []int{110} } func (x *ValuesCount) GetLt() uint64 { @@ -8344,7 +8924,7 @@ type PointsSelector struct { func (x *PointsSelector) Reset() { *x = PointsSelector{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[103] + mi := &file_points_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8357,7 +8937,7 @@ func (x *PointsSelector) String() string { func (*PointsSelector) ProtoMessage() {} func (x *PointsSelector) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[103] + mi := &file_points_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8370,7 +8950,7 @@ func (x *PointsSelector) ProtoReflect() protoreflect.Message { // Deprecated: Use PointsSelector.ProtoReflect.Descriptor instead. func (*PointsSelector) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{103} + return file_points_proto_rawDescGZIP(), []int{111} } func (m *PointsSelector) GetPointsSelectorOneOf() isPointsSelector_PointsSelectorOneOf { @@ -8421,7 +9001,7 @@ type PointsIdsList struct { func (x *PointsIdsList) Reset() { *x = PointsIdsList{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[104] + mi := &file_points_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8434,7 +9014,7 @@ func (x *PointsIdsList) String() string { func (*PointsIdsList) ProtoMessage() {} func (x *PointsIdsList) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[104] + mi := &file_points_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8447,7 +9027,7 @@ func (x *PointsIdsList) ProtoReflect() protoreflect.Message { // Deprecated: Use PointsIdsList.ProtoReflect.Descriptor instead. func (*PointsIdsList) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{104} + return file_points_proto_rawDescGZIP(), []int{112} } func (x *PointsIdsList) GetIds() []*PointId { @@ -8470,7 +9050,7 @@ type PointStruct struct { func (x *PointStruct) Reset() { *x = PointStruct{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[105] + mi := &file_points_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8483,7 +9063,7 @@ func (x *PointStruct) String() string { func (*PointStruct) ProtoMessage() {} func (x *PointStruct) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[105] + mi := &file_points_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8496,7 +9076,7 @@ func (x *PointStruct) ProtoReflect() protoreflect.Message { // Deprecated: Use PointStruct.ProtoReflect.Descriptor instead. func (*PointStruct) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{105} + return file_points_proto_rawDescGZIP(), []int{113} } func (x *PointStruct) GetId() *PointId { @@ -8532,7 +9112,7 @@ type GeoPoint struct { func (x *GeoPoint) Reset() { *x = GeoPoint{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[106] + mi := &file_points_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8545,7 +9125,7 @@ func (x *GeoPoint) String() string { func (*GeoPoint) ProtoMessage() {} func (x *GeoPoint) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[106] + mi := &file_points_proto_msgTypes[114] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8558,7 +9138,7 @@ func (x *GeoPoint) ProtoReflect() protoreflect.Message { // Deprecated: Use GeoPoint.ProtoReflect.Descriptor instead. func (*GeoPoint) Descriptor() ([]byte, []int) { - return file_points_proto_rawDescGZIP(), []int{106} + return file_points_proto_rawDescGZIP(), []int{114} } func (x *GeoPoint) GetLon() float64 { @@ -8587,7 +9167,7 @@ type PointsUpdateOperation_PointStructList struct { func (x *PointsUpdateOperation_PointStructList) Reset() { *x = PointsUpdateOperation_PointStructList{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[109] + mi := &file_points_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8600,7 +9180,7 @@ func (x *PointsUpdateOperation_PointStructList) String() string { func (*PointsUpdateOperation_PointStructList) ProtoMessage() {} func (x *PointsUpdateOperation_PointStructList) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[109] + mi := &file_points_proto_msgTypes[117] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8613,7 +9193,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{58, 0} + return file_points_proto_rawDescGZIP(), []int{63, 0} } func (x *PointsUpdateOperation_PointStructList) GetPoints() []*PointStruct { @@ -8644,7 +9224,7 @@ type PointsUpdateOperation_SetPayload struct { func (x *PointsUpdateOperation_SetPayload) Reset() { *x = PointsUpdateOperation_SetPayload{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[110] + mi := &file_points_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8657,7 +9237,7 @@ func (x *PointsUpdateOperation_SetPayload) String() string { func (*PointsUpdateOperation_SetPayload) ProtoMessage() {} func (x *PointsUpdateOperation_SetPayload) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[110] + mi := &file_points_proto_msgTypes[118] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8670,7 +9250,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{58, 1} + return file_points_proto_rawDescGZIP(), []int{63, 1} } func (x *PointsUpdateOperation_SetPayload) GetPayload() map[string]*Value { @@ -8715,7 +9295,7 @@ type PointsUpdateOperation_OverwritePayload struct { func (x *PointsUpdateOperation_OverwritePayload) Reset() { *x = PointsUpdateOperation_OverwritePayload{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[111] + mi := &file_points_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8728,7 +9308,7 @@ func (x *PointsUpdateOperation_OverwritePayload) String() string { func (*PointsUpdateOperation_OverwritePayload) ProtoMessage() {} func (x *PointsUpdateOperation_OverwritePayload) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[111] + mi := &file_points_proto_msgTypes[119] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8741,7 +9321,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{58, 2} + return file_points_proto_rawDescGZIP(), []int{63, 2} } func (x *PointsUpdateOperation_OverwritePayload) GetPayload() map[string]*Value { @@ -8785,7 +9365,7 @@ type PointsUpdateOperation_DeletePayload struct { func (x *PointsUpdateOperation_DeletePayload) Reset() { *x = PointsUpdateOperation_DeletePayload{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[112] + mi := &file_points_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8798,7 +9378,7 @@ func (x *PointsUpdateOperation_DeletePayload) String() string { func (*PointsUpdateOperation_DeletePayload) ProtoMessage() {} func (x *PointsUpdateOperation_DeletePayload) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[112] + mi := &file_points_proto_msgTypes[120] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8811,7 +9391,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{58, 3} + return file_points_proto_rawDescGZIP(), []int{63, 3} } func (x *PointsUpdateOperation_DeletePayload) GetKeys() []string { @@ -8847,7 +9427,7 @@ type PointsUpdateOperation_UpdateVectors struct { func (x *PointsUpdateOperation_UpdateVectors) Reset() { *x = PointsUpdateOperation_UpdateVectors{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[113] + mi := &file_points_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8860,7 +9440,7 @@ func (x *PointsUpdateOperation_UpdateVectors) String() string { func (*PointsUpdateOperation_UpdateVectors) ProtoMessage() {} func (x *PointsUpdateOperation_UpdateVectors) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[113] + mi := &file_points_proto_msgTypes[121] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8873,7 +9453,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{58, 4} + return file_points_proto_rawDescGZIP(), []int{63, 4} } func (x *PointsUpdateOperation_UpdateVectors) GetPoints() []*PointVectors { @@ -8903,7 +9483,7 @@ type PointsUpdateOperation_DeleteVectors struct { func (x *PointsUpdateOperation_DeleteVectors) Reset() { *x = PointsUpdateOperation_DeleteVectors{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[114] + mi := &file_points_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8916,7 +9496,7 @@ func (x *PointsUpdateOperation_DeleteVectors) String() string { func (*PointsUpdateOperation_DeleteVectors) ProtoMessage() {} func (x *PointsUpdateOperation_DeleteVectors) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[114] + mi := &file_points_proto_msgTypes[122] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8929,7 +9509,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{58, 5} + return file_points_proto_rawDescGZIP(), []int{63, 5} } func (x *PointsUpdateOperation_DeleteVectors) GetPointsSelector() *PointsSelector { @@ -8965,7 +9545,7 @@ type PointsUpdateOperation_DeletePoints struct { func (x *PointsUpdateOperation_DeletePoints) Reset() { *x = PointsUpdateOperation_DeletePoints{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[115] + mi := &file_points_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8978,7 +9558,7 @@ func (x *PointsUpdateOperation_DeletePoints) String() string { func (*PointsUpdateOperation_DeletePoints) ProtoMessage() {} func (x *PointsUpdateOperation_DeletePoints) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[115] + mi := &file_points_proto_msgTypes[123] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8991,7 +9571,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{58, 6} + return file_points_proto_rawDescGZIP(), []int{63, 6} } func (x *PointsUpdateOperation_DeletePoints) GetPoints() *PointsSelector { @@ -9020,7 +9600,7 @@ type PointsUpdateOperation_ClearPayload struct { func (x *PointsUpdateOperation_ClearPayload) Reset() { *x = PointsUpdateOperation_ClearPayload{} if protoimpl.UnsafeEnabled { - mi := &file_points_proto_msgTypes[116] + mi := &file_points_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9033,7 +9613,7 @@ func (x *PointsUpdateOperation_ClearPayload) String() string { func (*PointsUpdateOperation_ClearPayload) ProtoMessage() {} func (x *PointsUpdateOperation_ClearPayload) ProtoReflect() protoreflect.Message { - mi := &file_points_proto_msgTypes[116] + mi := &file_points_proto_msgTypes[124] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9046,7 +9626,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{58, 7} + return file_points_proto_rawDescGZIP(), []int{63, 7} } func (x *PointsUpdateOperation_ClearPayload) GetPoints() *PointsSelector { @@ -10130,613 +10710,712 @@ var file_points_proto_rawDesc = []byte{ 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, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0xb7, 0x03, 0x0a, 0x0b, 0x46, 0x61, 0x63, 0x65, 0x74, + 0x43, 0x6f, 0x75, 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, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x2b, 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, 0x48, 0x00, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x65, 0x78, 0x61, + 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x05, 0x65, 0x78, 0x61, 0x63, + 0x74, 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, 0x12, 0x47, 0x0a, 0x10, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x07, 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, 0x4b, 0x0a, 0x12, + 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x18, 0x08, 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, 0x05, 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, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x65, 0x78, 0x61, 0x63, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 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, 0x84, 0x01, 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, 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, 0x1f, 0x0a, 0x0a, 0x62, + 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x00, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x09, 0x0a, 0x07, + 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x22, 0x4a, 0x0a, 0x08, 0x46, 0x61, 0x63, 0x65, 0x74, + 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, 0xd4, 0x03, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x61, + 0x74, 0x72, 0x69, 0x78, 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, 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, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x01, 0x52, 0x06, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x05, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x75, 0x73, 0x69, 0x6e, + 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x05, 0x75, 0x73, 0x69, 0x6e, 0x67, + 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 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, 0x07, 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, 0x4b, 0x0a, 0x12, 0x73, + 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x18, 0x08, 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, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x75, 0x73, 0x69, + 0x6e, 0x67, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 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, 0x43, 0x0a, 0x11, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x50, 0x61, 0x69, 0x72, 0x73, 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, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x61, + 0x74, 0x72, 0x69, 0x78, 0x50, 0x61, 0x69, 0x72, 0x52, 0x05, 0x70, 0x61, 0x69, 0x72, 0x73, 0x22, + 0x66, 0x0a, 0x10, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x50, + 0x61, 0x69, 0x72, 0x12, 0x1d, 0x0a, 0x01, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, + 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x52, + 0x01, 0x61, 0x12, 0x1d, 0x0a, 0x01, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, + 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x01, + 0x62, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x92, 0x01, 0x0a, 0x13, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x73, 0x12, + 0x1f, 0x0a, 0x0b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x73, 0x5f, 0x72, 0x6f, 0x77, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x04, 0x52, 0x0a, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x73, 0x52, 0x6f, 0x77, + 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6c, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0a, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x73, 0x43, 0x6f, + 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x02, 0x52, 0x06, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x03, 0x69, 0x64, 0x73, + 0x18, 0x04, 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, 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, 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, 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, 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, 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, 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, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x68, + 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, 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, 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, + 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, 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, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 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, + 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, 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, 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, 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, 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, + 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, 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, + 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, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x64, 0x50, 0x6f, 0x69, + 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, 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, 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, + 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, 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, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 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, 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, 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, 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, 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, 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, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x49, 0x0a, + 0x0d, 0x46, 0x61, 0x63, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, + 0x0a, 0x04, 0x68, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x71, + 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x74, 0x48, 0x69, 0x74, 0x52, 0x04, + 0x68, 0x69, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x62, 0x0a, 0x19, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x50, 0x61, 0x69, 0x72, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x50, 0x61, 0x69, 0x72, 0x73, + 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, 0x66, 0x0a, 0x1b, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x4f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x71, 0x64, + 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x61, 0x74, 0x72, 0x69, + 0x78, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x73, 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, 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, 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, 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, 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, - 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, + 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, 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, 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, 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, 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, + 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, - 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, + 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 ( @@ -10752,7 +11431,7 @@ func file_points_proto_rawDescGZIP() []byte { } var file_points_proto_enumTypes = make([]protoimpl.EnumInfo, 8) -var file_points_proto_msgTypes = make([]protoimpl.MessageInfo, 122) +var file_points_proto_msgTypes = make([]protoimpl.MessageInfo, 130) var file_points_proto_goTypes = []any{ (WriteOrderingType)(0), // 0: qdrant.WriteOrderingType (ReadConsistencyType)(0), // 1: qdrant.ReadConsistencyType @@ -10818,76 +11497,84 @@ var file_points_proto_goTypes = []any{ (*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 + (*FacetCounts)(nil), // 64: qdrant.FacetCounts + (*FacetValue)(nil), // 65: qdrant.FacetValue + (*FacetHit)(nil), // 66: qdrant.FacetHit + (*SearchMatrixPoints)(nil), // 67: qdrant.SearchMatrixPoints + (*SearchMatrixPairs)(nil), // 68: qdrant.SearchMatrixPairs + (*SearchMatrixPair)(nil), // 69: qdrant.SearchMatrixPair + (*SearchMatrixOffsets)(nil), // 70: qdrant.SearchMatrixOffsets + (*PointsUpdateOperation)(nil), // 71: qdrant.PointsUpdateOperation + (*UpdateBatchPoints)(nil), // 72: qdrant.UpdateBatchPoints + (*PointsOperationResponse)(nil), // 73: qdrant.PointsOperationResponse + (*UpdateResult)(nil), // 74: qdrant.UpdateResult + (*OrderValue)(nil), // 75: qdrant.OrderValue + (*ScoredPoint)(nil), // 76: qdrant.ScoredPoint + (*GroupId)(nil), // 77: qdrant.GroupId + (*PointGroup)(nil), // 78: qdrant.PointGroup + (*GroupsResult)(nil), // 79: qdrant.GroupsResult + (*SearchResponse)(nil), // 80: qdrant.SearchResponse + (*QueryResponse)(nil), // 81: qdrant.QueryResponse + (*QueryBatchResponse)(nil), // 82: qdrant.QueryBatchResponse + (*QueryGroupsResponse)(nil), // 83: qdrant.QueryGroupsResponse + (*BatchResult)(nil), // 84: qdrant.BatchResult + (*SearchBatchResponse)(nil), // 85: qdrant.SearchBatchResponse + (*SearchGroupsResponse)(nil), // 86: qdrant.SearchGroupsResponse + (*CountResponse)(nil), // 87: qdrant.CountResponse + (*ScrollResponse)(nil), // 88: qdrant.ScrollResponse + (*CountResult)(nil), // 89: qdrant.CountResult + (*RetrievedPoint)(nil), // 90: qdrant.RetrievedPoint + (*GetResponse)(nil), // 91: qdrant.GetResponse + (*RecommendResponse)(nil), // 92: qdrant.RecommendResponse + (*RecommendBatchResponse)(nil), // 93: qdrant.RecommendBatchResponse + (*DiscoverResponse)(nil), // 94: qdrant.DiscoverResponse + (*DiscoverBatchResponse)(nil), // 95: qdrant.DiscoverBatchResponse + (*RecommendGroupsResponse)(nil), // 96: qdrant.RecommendGroupsResponse + (*UpdateBatchResponse)(nil), // 97: qdrant.UpdateBatchResponse + (*FacetResponse)(nil), // 98: qdrant.FacetResponse + (*SearchMatrixPairsResponse)(nil), // 99: qdrant.SearchMatrixPairsResponse + (*SearchMatrixOffsetsResponse)(nil), // 100: qdrant.SearchMatrixOffsetsResponse + (*Filter)(nil), // 101: qdrant.Filter + (*MinShould)(nil), // 102: qdrant.MinShould + (*Condition)(nil), // 103: qdrant.Condition + (*IsEmptyCondition)(nil), // 104: qdrant.IsEmptyCondition + (*IsNullCondition)(nil), // 105: qdrant.IsNullCondition + (*HasIdCondition)(nil), // 106: qdrant.HasIdCondition + (*NestedCondition)(nil), // 107: qdrant.NestedCondition + (*FieldCondition)(nil), // 108: qdrant.FieldCondition + (*Match)(nil), // 109: qdrant.Match + (*RepeatedStrings)(nil), // 110: qdrant.RepeatedStrings + (*RepeatedIntegers)(nil), // 111: qdrant.RepeatedIntegers + (*Range)(nil), // 112: qdrant.Range + (*DatetimeRange)(nil), // 113: qdrant.DatetimeRange + (*GeoBoundingBox)(nil), // 114: qdrant.GeoBoundingBox + (*GeoRadius)(nil), // 115: qdrant.GeoRadius + (*GeoLineString)(nil), // 116: qdrant.GeoLineString + (*GeoPolygon)(nil), // 117: qdrant.GeoPolygon + (*ValuesCount)(nil), // 118: qdrant.ValuesCount + (*PointsSelector)(nil), // 119: qdrant.PointsSelector + (*PointsIdsList)(nil), // 120: qdrant.PointsIdsList + (*PointStruct)(nil), // 121: qdrant.PointStruct + (*GeoPoint)(nil), // 122: qdrant.GeoPoint + nil, // 123: qdrant.SetPayloadPoints.PayloadEntry + nil, // 124: qdrant.NamedVectors.VectorsEntry + (*PointsUpdateOperation_PointStructList)(nil), // 125: qdrant.PointsUpdateOperation.PointStructList + (*PointsUpdateOperation_SetPayload)(nil), // 126: qdrant.PointsUpdateOperation.SetPayload + (*PointsUpdateOperation_OverwritePayload)(nil), // 127: qdrant.PointsUpdateOperation.OverwritePayload + (*PointsUpdateOperation_DeletePayload)(nil), // 128: qdrant.PointsUpdateOperation.DeletePayload + (*PointsUpdateOperation_UpdateVectors)(nil), // 129: qdrant.PointsUpdateOperation.UpdateVectors + (*PointsUpdateOperation_DeleteVectors)(nil), // 130: qdrant.PointsUpdateOperation.DeleteVectors + (*PointsUpdateOperation_DeletePoints)(nil), // 131: qdrant.PointsUpdateOperation.DeletePoints + (*PointsUpdateOperation_ClearPayload)(nil), // 132: qdrant.PointsUpdateOperation.ClearPayload + nil, // 133: qdrant.PointsUpdateOperation.SetPayload.PayloadEntry + nil, // 134: qdrant.PointsUpdateOperation.OverwritePayload.PayloadEntry + nil, // 135: qdrant.ScoredPoint.PayloadEntry + nil, // 136: qdrant.RetrievedPoint.PayloadEntry + nil, // 137: qdrant.PointStruct.PayloadEntry + (*ShardKey)(nil), // 138: qdrant.ShardKey + (*PayloadIndexParams)(nil), // 139: qdrant.PayloadIndexParams + (*timestamppb.Timestamp)(nil), // 140: google.protobuf.Timestamp + (*Value)(nil), // 141: qdrant.Value } var file_points_proto_depIdxs = []int32{ 0, // 0: qdrant.WriteOrdering.type:type_name -> qdrant.WriteOrderingType @@ -10898,11 +11585,11 @@ var file_points_proto_depIdxs = []int32{ 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 + 138, // 8: qdrant.ShardKeySelector.shard_keys:type_name -> qdrant.ShardKey + 121, // 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 + 119, // 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 @@ -10915,32 +11602,32 @@ var file_points_proto_depIdxs = []int32{ 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 + 119, // 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 + 123, // 29: qdrant.SetPayloadPoints.payload:type_name -> qdrant.SetPayloadPoints.PayloadEntry + 119, // 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 + 119, // 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 + 119, // 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 - 131, // 40: qdrant.CreateFieldIndexCollection.field_index_params:type_name -> qdrant.PayloadIndexParams + 139, // 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 + 124, // 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 + 101, // 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 @@ -10951,7 +11638,7 @@ var file_points_proto_depIdxs = []int32{ 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 + 101, // 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 @@ -10959,10 +11646,10 @@ var file_points_proto_depIdxs = []int32{ 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 + 140, // 69: qdrant.StartFrom.timestamp:type_name -> google.protobuf.Timestamp 3, // 70: qdrant.OrderBy.direction:type_name -> qdrant.Direction 42, // 71: qdrant.OrderBy.start_from:type_name -> qdrant.StartFrom - 93, // 72: qdrant.ScrollPoints.filter:type_name -> qdrant.Filter + 101, // 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 @@ -10972,7 +11659,7 @@ var file_points_proto_depIdxs = []int32{ 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 + 101, // 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 @@ -10986,7 +11673,7 @@ var file_points_proto_depIdxs = []int32{ 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 + 101, // 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 @@ -11004,7 +11691,7 @@ var file_points_proto_depIdxs = []int32{ 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 + 101, // 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 @@ -11013,7 +11700,7 @@ var file_points_proto_depIdxs = []int32{ 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 + 101, // 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 @@ -11033,12 +11720,12 @@ var file_points_proto_depIdxs = []int32{ 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 + 101, // 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 + 101, // 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 @@ -11049,7 +11736,7 @@ var file_points_proto_depIdxs = []int32{ 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 + 101, // 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 @@ -11057,123 +11744,136 @@ var file_points_proto_depIdxs = []int32{ 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 + 101, // 167: qdrant.FacetCounts.filter:type_name -> qdrant.Filter + 9, // 168: qdrant.FacetCounts.read_consistency:type_name -> qdrant.ReadConsistency + 17, // 169: qdrant.FacetCounts.shard_key_selector:type_name -> qdrant.ShardKeySelector + 65, // 170: qdrant.FacetHit.value:type_name -> qdrant.FacetValue + 101, // 171: qdrant.SearchMatrixPoints.filter:type_name -> qdrant.Filter + 9, // 172: qdrant.SearchMatrixPoints.read_consistency:type_name -> qdrant.ReadConsistency + 17, // 173: qdrant.SearchMatrixPoints.shard_key_selector:type_name -> qdrant.ShardKeySelector + 69, // 174: qdrant.SearchMatrixPairs.pairs:type_name -> qdrant.SearchMatrixPair + 10, // 175: qdrant.SearchMatrixPair.a:type_name -> qdrant.PointId + 10, // 176: qdrant.SearchMatrixPair.b:type_name -> qdrant.PointId + 10, // 177: qdrant.SearchMatrixOffsets.ids:type_name -> qdrant.PointId + 125, // 178: qdrant.PointsUpdateOperation.upsert:type_name -> qdrant.PointsUpdateOperation.PointStructList + 119, // 179: qdrant.PointsUpdateOperation.delete_deprecated:type_name -> qdrant.PointsSelector + 126, // 180: qdrant.PointsUpdateOperation.set_payload:type_name -> qdrant.PointsUpdateOperation.SetPayload + 127, // 181: qdrant.PointsUpdateOperation.overwrite_payload:type_name -> qdrant.PointsUpdateOperation.OverwritePayload + 128, // 182: qdrant.PointsUpdateOperation.delete_payload:type_name -> qdrant.PointsUpdateOperation.DeletePayload + 119, // 183: qdrant.PointsUpdateOperation.clear_payload_deprecated:type_name -> qdrant.PointsSelector + 129, // 184: qdrant.PointsUpdateOperation.update_vectors:type_name -> qdrant.PointsUpdateOperation.UpdateVectors + 130, // 185: qdrant.PointsUpdateOperation.delete_vectors:type_name -> qdrant.PointsUpdateOperation.DeleteVectors + 131, // 186: qdrant.PointsUpdateOperation.delete_points:type_name -> qdrant.PointsUpdateOperation.DeletePoints + 132, // 187: qdrant.PointsUpdateOperation.clear_payload:type_name -> qdrant.PointsUpdateOperation.ClearPayload + 71, // 188: qdrant.UpdateBatchPoints.operations:type_name -> qdrant.PointsUpdateOperation + 8, // 189: qdrant.UpdateBatchPoints.ordering:type_name -> qdrant.WriteOrdering + 74, // 190: qdrant.PointsOperationResponse.result:type_name -> qdrant.UpdateResult + 7, // 191: qdrant.UpdateResult.status:type_name -> qdrant.UpdateStatus + 10, // 192: qdrant.ScoredPoint.id:type_name -> qdrant.PointId + 135, // 193: qdrant.ScoredPoint.payload:type_name -> qdrant.ScoredPoint.PayloadEntry + 33, // 194: qdrant.ScoredPoint.vectors:type_name -> qdrant.Vectors + 138, // 195: qdrant.ScoredPoint.shard_key:type_name -> qdrant.ShardKey + 75, // 196: qdrant.ScoredPoint.order_value:type_name -> qdrant.OrderValue + 77, // 197: qdrant.PointGroup.id:type_name -> qdrant.GroupId + 76, // 198: qdrant.PointGroup.hits:type_name -> qdrant.ScoredPoint + 90, // 199: qdrant.PointGroup.lookup:type_name -> qdrant.RetrievedPoint + 78, // 200: qdrant.GroupsResult.groups:type_name -> qdrant.PointGroup + 76, // 201: qdrant.SearchResponse.result:type_name -> qdrant.ScoredPoint + 76, // 202: qdrant.QueryResponse.result:type_name -> qdrant.ScoredPoint + 84, // 203: qdrant.QueryBatchResponse.result:type_name -> qdrant.BatchResult + 79, // 204: qdrant.QueryGroupsResponse.result:type_name -> qdrant.GroupsResult + 76, // 205: qdrant.BatchResult.result:type_name -> qdrant.ScoredPoint + 84, // 206: qdrant.SearchBatchResponse.result:type_name -> qdrant.BatchResult + 79, // 207: qdrant.SearchGroupsResponse.result:type_name -> qdrant.GroupsResult + 89, // 208: qdrant.CountResponse.result:type_name -> qdrant.CountResult + 10, // 209: qdrant.ScrollResponse.next_page_offset:type_name -> qdrant.PointId + 90, // 210: qdrant.ScrollResponse.result:type_name -> qdrant.RetrievedPoint + 10, // 211: qdrant.RetrievedPoint.id:type_name -> qdrant.PointId + 136, // 212: qdrant.RetrievedPoint.payload:type_name -> qdrant.RetrievedPoint.PayloadEntry + 33, // 213: qdrant.RetrievedPoint.vectors:type_name -> qdrant.Vectors + 138, // 214: qdrant.RetrievedPoint.shard_key:type_name -> qdrant.ShardKey + 75, // 215: qdrant.RetrievedPoint.order_value:type_name -> qdrant.OrderValue + 90, // 216: qdrant.GetResponse.result:type_name -> qdrant.RetrievedPoint + 76, // 217: qdrant.RecommendResponse.result:type_name -> qdrant.ScoredPoint + 84, // 218: qdrant.RecommendBatchResponse.result:type_name -> qdrant.BatchResult + 76, // 219: qdrant.DiscoverResponse.result:type_name -> qdrant.ScoredPoint + 84, // 220: qdrant.DiscoverBatchResponse.result:type_name -> qdrant.BatchResult + 79, // 221: qdrant.RecommendGroupsResponse.result:type_name -> qdrant.GroupsResult + 74, // 222: qdrant.UpdateBatchResponse.result:type_name -> qdrant.UpdateResult + 66, // 223: qdrant.FacetResponse.hits:type_name -> qdrant.FacetHit + 68, // 224: qdrant.SearchMatrixPairsResponse.result:type_name -> qdrant.SearchMatrixPairs + 70, // 225: qdrant.SearchMatrixOffsetsResponse.result:type_name -> qdrant.SearchMatrixOffsets + 103, // 226: qdrant.Filter.should:type_name -> qdrant.Condition + 103, // 227: qdrant.Filter.must:type_name -> qdrant.Condition + 103, // 228: qdrant.Filter.must_not:type_name -> qdrant.Condition + 102, // 229: qdrant.Filter.min_should:type_name -> qdrant.MinShould + 103, // 230: qdrant.MinShould.conditions:type_name -> qdrant.Condition + 108, // 231: qdrant.Condition.field:type_name -> qdrant.FieldCondition + 104, // 232: qdrant.Condition.is_empty:type_name -> qdrant.IsEmptyCondition + 106, // 233: qdrant.Condition.has_id:type_name -> qdrant.HasIdCondition + 101, // 234: qdrant.Condition.filter:type_name -> qdrant.Filter + 105, // 235: qdrant.Condition.is_null:type_name -> qdrant.IsNullCondition + 107, // 236: qdrant.Condition.nested:type_name -> qdrant.NestedCondition + 10, // 237: qdrant.HasIdCondition.has_id:type_name -> qdrant.PointId + 101, // 238: qdrant.NestedCondition.filter:type_name -> qdrant.Filter + 109, // 239: qdrant.FieldCondition.match:type_name -> qdrant.Match + 112, // 240: qdrant.FieldCondition.range:type_name -> qdrant.Range + 114, // 241: qdrant.FieldCondition.geo_bounding_box:type_name -> qdrant.GeoBoundingBox + 115, // 242: qdrant.FieldCondition.geo_radius:type_name -> qdrant.GeoRadius + 118, // 243: qdrant.FieldCondition.values_count:type_name -> qdrant.ValuesCount + 117, // 244: qdrant.FieldCondition.geo_polygon:type_name -> qdrant.GeoPolygon + 113, // 245: qdrant.FieldCondition.datetime_range:type_name -> qdrant.DatetimeRange + 110, // 246: qdrant.Match.keywords:type_name -> qdrant.RepeatedStrings + 111, // 247: qdrant.Match.integers:type_name -> qdrant.RepeatedIntegers + 111, // 248: qdrant.Match.except_integers:type_name -> qdrant.RepeatedIntegers + 110, // 249: qdrant.Match.except_keywords:type_name -> qdrant.RepeatedStrings + 140, // 250: qdrant.DatetimeRange.lt:type_name -> google.protobuf.Timestamp + 140, // 251: qdrant.DatetimeRange.gt:type_name -> google.protobuf.Timestamp + 140, // 252: qdrant.DatetimeRange.gte:type_name -> google.protobuf.Timestamp + 140, // 253: qdrant.DatetimeRange.lte:type_name -> google.protobuf.Timestamp + 122, // 254: qdrant.GeoBoundingBox.top_left:type_name -> qdrant.GeoPoint + 122, // 255: qdrant.GeoBoundingBox.bottom_right:type_name -> qdrant.GeoPoint + 122, // 256: qdrant.GeoRadius.center:type_name -> qdrant.GeoPoint + 122, // 257: qdrant.GeoLineString.points:type_name -> qdrant.GeoPoint + 116, // 258: qdrant.GeoPolygon.exterior:type_name -> qdrant.GeoLineString + 116, // 259: qdrant.GeoPolygon.interiors:type_name -> qdrant.GeoLineString + 120, // 260: qdrant.PointsSelector.points:type_name -> qdrant.PointsIdsList + 101, // 261: qdrant.PointsSelector.filter:type_name -> qdrant.Filter + 10, // 262: qdrant.PointsIdsList.ids:type_name -> qdrant.PointId + 10, // 263: qdrant.PointStruct.id:type_name -> qdrant.PointId + 137, // 264: qdrant.PointStruct.payload:type_name -> qdrant.PointStruct.PayloadEntry + 33, // 265: qdrant.PointStruct.vectors:type_name -> qdrant.Vectors + 141, // 266: qdrant.SetPayloadPoints.PayloadEntry.value:type_name -> qdrant.Value + 12, // 267: qdrant.NamedVectors.VectorsEntry.value:type_name -> qdrant.Vector + 121, // 268: qdrant.PointsUpdateOperation.PointStructList.points:type_name -> qdrant.PointStruct + 17, // 269: qdrant.PointsUpdateOperation.PointStructList.shard_key_selector:type_name -> qdrant.ShardKeySelector + 133, // 270: qdrant.PointsUpdateOperation.SetPayload.payload:type_name -> qdrant.PointsUpdateOperation.SetPayload.PayloadEntry + 119, // 271: qdrant.PointsUpdateOperation.SetPayload.points_selector:type_name -> qdrant.PointsSelector + 17, // 272: qdrant.PointsUpdateOperation.SetPayload.shard_key_selector:type_name -> qdrant.ShardKeySelector + 134, // 273: qdrant.PointsUpdateOperation.OverwritePayload.payload:type_name -> qdrant.PointsUpdateOperation.OverwritePayload.PayloadEntry + 119, // 274: qdrant.PointsUpdateOperation.OverwritePayload.points_selector:type_name -> qdrant.PointsSelector + 17, // 275: qdrant.PointsUpdateOperation.OverwritePayload.shard_key_selector:type_name -> qdrant.ShardKeySelector + 119, // 276: qdrant.PointsUpdateOperation.DeletePayload.points_selector:type_name -> qdrant.PointsSelector + 17, // 277: qdrant.PointsUpdateOperation.DeletePayload.shard_key_selector:type_name -> qdrant.ShardKeySelector + 22, // 278: qdrant.PointsUpdateOperation.UpdateVectors.points:type_name -> qdrant.PointVectors + 17, // 279: qdrant.PointsUpdateOperation.UpdateVectors.shard_key_selector:type_name -> qdrant.ShardKeySelector + 119, // 280: qdrant.PointsUpdateOperation.DeleteVectors.points_selector:type_name -> qdrant.PointsSelector + 34, // 281: qdrant.PointsUpdateOperation.DeleteVectors.vectors:type_name -> qdrant.VectorsSelector + 17, // 282: qdrant.PointsUpdateOperation.DeleteVectors.shard_key_selector:type_name -> qdrant.ShardKeySelector + 119, // 283: qdrant.PointsUpdateOperation.DeletePoints.points:type_name -> qdrant.PointsSelector + 17, // 284: qdrant.PointsUpdateOperation.DeletePoints.shard_key_selector:type_name -> qdrant.ShardKeySelector + 119, // 285: qdrant.PointsUpdateOperation.ClearPayload.points:type_name -> qdrant.PointsSelector + 17, // 286: qdrant.PointsUpdateOperation.ClearPayload.shard_key_selector:type_name -> qdrant.ShardKeySelector + 141, // 287: qdrant.PointsUpdateOperation.SetPayload.PayloadEntry.value:type_name -> qdrant.Value + 141, // 288: qdrant.PointsUpdateOperation.OverwritePayload.PayloadEntry.value:type_name -> qdrant.Value + 141, // 289: qdrant.ScoredPoint.PayloadEntry.value:type_name -> qdrant.Value + 141, // 290: qdrant.RetrievedPoint.PayloadEntry.value:type_name -> qdrant.Value + 141, // 291: qdrant.PointStruct.PayloadEntry.value:type_name -> qdrant.Value + 292, // [292:292] is the sub-list for method output_type + 292, // [292:292] is the sub-list for method input_type + 292, // [292:292] is the sub-list for extension type_name + 292, // [292:292] is the sub-list for extension extendee + 0, // [0:292] is the sub-list for field type_name } func init() { file_points_proto_init() } @@ -11857,7 +12557,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[56].Exporter = func(v any, i int) any { - switch v := v.(*FacetValue); i { + switch v := v.(*FacetCounts); i { case 0: return &v.state case 1: @@ -11869,7 +12569,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[57].Exporter = func(v any, i int) any { - switch v := v.(*FacetValueHit); i { + switch v := v.(*FacetValue); i { case 0: return &v.state case 1: @@ -11881,7 +12581,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[58].Exporter = func(v any, i int) any { - switch v := v.(*PointsUpdateOperation); i { + switch v := v.(*FacetHit); i { case 0: return &v.state case 1: @@ -11893,7 +12593,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[59].Exporter = func(v any, i int) any { - switch v := v.(*UpdateBatchPoints); i { + switch v := v.(*SearchMatrixPoints); i { case 0: return &v.state case 1: @@ -11905,7 +12605,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[60].Exporter = func(v any, i int) any { - switch v := v.(*PointsOperationResponse); i { + switch v := v.(*SearchMatrixPairs); i { case 0: return &v.state case 1: @@ -11917,7 +12617,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[61].Exporter = func(v any, i int) any { - switch v := v.(*UpdateResult); i { + switch v := v.(*SearchMatrixPair); i { case 0: return &v.state case 1: @@ -11929,7 +12629,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[62].Exporter = func(v any, i int) any { - switch v := v.(*OrderValue); i { + switch v := v.(*SearchMatrixOffsets); i { case 0: return &v.state case 1: @@ -11941,7 +12641,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[63].Exporter = func(v any, i int) any { - switch v := v.(*ScoredPoint); i { + switch v := v.(*PointsUpdateOperation); i { case 0: return &v.state case 1: @@ -11953,7 +12653,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[64].Exporter = func(v any, i int) any { - switch v := v.(*GroupId); i { + switch v := v.(*UpdateBatchPoints); i { case 0: return &v.state case 1: @@ -11965,7 +12665,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[65].Exporter = func(v any, i int) any { - switch v := v.(*PointGroup); i { + switch v := v.(*PointsOperationResponse); i { case 0: return &v.state case 1: @@ -11977,7 +12677,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[66].Exporter = func(v any, i int) any { - switch v := v.(*GroupsResult); i { + switch v := v.(*UpdateResult); i { case 0: return &v.state case 1: @@ -11989,7 +12689,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[67].Exporter = func(v any, i int) any { - switch v := v.(*SearchResponse); i { + switch v := v.(*OrderValue); i { case 0: return &v.state case 1: @@ -12001,7 +12701,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[68].Exporter = func(v any, i int) any { - switch v := v.(*QueryResponse); i { + switch v := v.(*ScoredPoint); i { case 0: return &v.state case 1: @@ -12013,7 +12713,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[69].Exporter = func(v any, i int) any { - switch v := v.(*QueryBatchResponse); i { + switch v := v.(*GroupId); i { case 0: return &v.state case 1: @@ -12025,7 +12725,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[70].Exporter = func(v any, i int) any { - switch v := v.(*QueryGroupsResponse); i { + switch v := v.(*PointGroup); i { case 0: return &v.state case 1: @@ -12037,7 +12737,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[71].Exporter = func(v any, i int) any { - switch v := v.(*BatchResult); i { + switch v := v.(*GroupsResult); i { case 0: return &v.state case 1: @@ -12049,7 +12749,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[72].Exporter = func(v any, i int) any { - switch v := v.(*SearchBatchResponse); i { + switch v := v.(*SearchResponse); i { case 0: return &v.state case 1: @@ -12061,7 +12761,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[73].Exporter = func(v any, i int) any { - switch v := v.(*SearchGroupsResponse); i { + switch v := v.(*QueryResponse); i { case 0: return &v.state case 1: @@ -12073,7 +12773,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[74].Exporter = func(v any, i int) any { - switch v := v.(*CountResponse); i { + switch v := v.(*QueryBatchResponse); i { case 0: return &v.state case 1: @@ -12085,7 +12785,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[75].Exporter = func(v any, i int) any { - switch v := v.(*ScrollResponse); i { + switch v := v.(*QueryGroupsResponse); i { case 0: return &v.state case 1: @@ -12097,7 +12797,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[76].Exporter = func(v any, i int) any { - switch v := v.(*CountResult); i { + switch v := v.(*BatchResult); i { case 0: return &v.state case 1: @@ -12109,7 +12809,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[77].Exporter = func(v any, i int) any { - switch v := v.(*RetrievedPoint); i { + switch v := v.(*SearchBatchResponse); i { case 0: return &v.state case 1: @@ -12121,7 +12821,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[78].Exporter = func(v any, i int) any { - switch v := v.(*GetResponse); i { + switch v := v.(*SearchGroupsResponse); i { case 0: return &v.state case 1: @@ -12133,7 +12833,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[79].Exporter = func(v any, i int) any { - switch v := v.(*RecommendResponse); i { + switch v := v.(*CountResponse); i { case 0: return &v.state case 1: @@ -12145,7 +12845,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[80].Exporter = func(v any, i int) any { - switch v := v.(*RecommendBatchResponse); i { + switch v := v.(*ScrollResponse); i { case 0: return &v.state case 1: @@ -12157,7 +12857,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[81].Exporter = func(v any, i int) any { - switch v := v.(*DiscoverResponse); i { + switch v := v.(*CountResult); i { case 0: return &v.state case 1: @@ -12169,7 +12869,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[82].Exporter = func(v any, i int) any { - switch v := v.(*DiscoverBatchResponse); i { + switch v := v.(*RetrievedPoint); i { case 0: return &v.state case 1: @@ -12181,7 +12881,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[83].Exporter = func(v any, i int) any { - switch v := v.(*RecommendGroupsResponse); i { + switch v := v.(*GetResponse); i { case 0: return &v.state case 1: @@ -12193,7 +12893,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[84].Exporter = func(v any, i int) any { - switch v := v.(*UpdateBatchResponse); i { + switch v := v.(*RecommendResponse); i { case 0: return &v.state case 1: @@ -12205,7 +12905,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[85].Exporter = func(v any, i int) any { - switch v := v.(*Filter); i { + switch v := v.(*RecommendBatchResponse); i { case 0: return &v.state case 1: @@ -12217,7 +12917,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[86].Exporter = func(v any, i int) any { - switch v := v.(*MinShould); i { + switch v := v.(*DiscoverResponse); i { case 0: return &v.state case 1: @@ -12229,7 +12929,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[87].Exporter = func(v any, i int) any { - switch v := v.(*Condition); i { + switch v := v.(*DiscoverBatchResponse); i { case 0: return &v.state case 1: @@ -12241,7 +12941,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[88].Exporter = func(v any, i int) any { - switch v := v.(*IsEmptyCondition); i { + switch v := v.(*RecommendGroupsResponse); i { case 0: return &v.state case 1: @@ -12253,7 +12953,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[89].Exporter = func(v any, i int) any { - switch v := v.(*IsNullCondition); i { + switch v := v.(*UpdateBatchResponse); i { case 0: return &v.state case 1: @@ -12265,7 +12965,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[90].Exporter = func(v any, i int) any { - switch v := v.(*HasIdCondition); i { + switch v := v.(*FacetResponse); i { case 0: return &v.state case 1: @@ -12277,7 +12977,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[91].Exporter = func(v any, i int) any { - switch v := v.(*NestedCondition); i { + switch v := v.(*SearchMatrixPairsResponse); i { case 0: return &v.state case 1: @@ -12289,7 +12989,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[92].Exporter = func(v any, i int) any { - switch v := v.(*FieldCondition); i { + switch v := v.(*SearchMatrixOffsetsResponse); i { case 0: return &v.state case 1: @@ -12301,7 +13001,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[93].Exporter = func(v any, i int) any { - switch v := v.(*Match); i { + switch v := v.(*Filter); i { case 0: return &v.state case 1: @@ -12313,7 +13013,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[94].Exporter = func(v any, i int) any { - switch v := v.(*RepeatedStrings); i { + switch v := v.(*MinShould); i { case 0: return &v.state case 1: @@ -12325,7 +13025,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[95].Exporter = func(v any, i int) any { - switch v := v.(*RepeatedIntegers); i { + switch v := v.(*Condition); i { case 0: return &v.state case 1: @@ -12337,7 +13037,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[96].Exporter = func(v any, i int) any { - switch v := v.(*Range); i { + switch v := v.(*IsEmptyCondition); i { case 0: return &v.state case 1: @@ -12349,7 +13049,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[97].Exporter = func(v any, i int) any { - switch v := v.(*DatetimeRange); i { + switch v := v.(*IsNullCondition); i { case 0: return &v.state case 1: @@ -12361,7 +13061,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[98].Exporter = func(v any, i int) any { - switch v := v.(*GeoBoundingBox); i { + switch v := v.(*HasIdCondition); i { case 0: return &v.state case 1: @@ -12373,7 +13073,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[99].Exporter = func(v any, i int) any { - switch v := v.(*GeoRadius); i { + switch v := v.(*NestedCondition); i { case 0: return &v.state case 1: @@ -12385,7 +13085,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[100].Exporter = func(v any, i int) any { - switch v := v.(*GeoLineString); i { + switch v := v.(*FieldCondition); i { case 0: return &v.state case 1: @@ -12397,7 +13097,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[101].Exporter = func(v any, i int) any { - switch v := v.(*GeoPolygon); i { + switch v := v.(*Match); i { case 0: return &v.state case 1: @@ -12409,7 +13109,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[102].Exporter = func(v any, i int) any { - switch v := v.(*ValuesCount); i { + switch v := v.(*RepeatedStrings); i { case 0: return &v.state case 1: @@ -12421,7 +13121,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[103].Exporter = func(v any, i int) any { - switch v := v.(*PointsSelector); i { + switch v := v.(*RepeatedIntegers); i { case 0: return &v.state case 1: @@ -12433,7 +13133,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[104].Exporter = func(v any, i int) any { - switch v := v.(*PointsIdsList); i { + switch v := v.(*Range); i { case 0: return &v.state case 1: @@ -12445,7 +13145,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[105].Exporter = func(v any, i int) any { - switch v := v.(*PointStruct); i { + switch v := v.(*DatetimeRange); i { case 0: return &v.state case 1: @@ -12457,7 +13157,31 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[106].Exporter = func(v any, i int) any { - switch v := v.(*GeoPoint); i { + switch v := v.(*GeoBoundingBox); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_points_proto_msgTypes[107].Exporter = func(v any, i int) any { + switch v := v.(*GeoRadius); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_points_proto_msgTypes[108].Exporter = func(v any, i int) any { + switch v := v.(*GeoLineString); i { case 0: return &v.state case 1: @@ -12469,7 +13193,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[109].Exporter = func(v any, i int) any { - switch v := v.(*PointsUpdateOperation_PointStructList); i { + switch v := v.(*GeoPolygon); i { case 0: return &v.state case 1: @@ -12481,7 +13205,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[110].Exporter = func(v any, i int) any { - switch v := v.(*PointsUpdateOperation_SetPayload); i { + switch v := v.(*ValuesCount); i { case 0: return &v.state case 1: @@ -12493,7 +13217,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[111].Exporter = func(v any, i int) any { - switch v := v.(*PointsUpdateOperation_OverwritePayload); i { + switch v := v.(*PointsSelector); i { case 0: return &v.state case 1: @@ -12505,7 +13229,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[112].Exporter = func(v any, i int) any { - switch v := v.(*PointsUpdateOperation_DeletePayload); i { + switch v := v.(*PointsIdsList); i { case 0: return &v.state case 1: @@ -12517,7 +13241,7 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[113].Exporter = func(v any, i int) any { - switch v := v.(*PointsUpdateOperation_UpdateVectors); i { + switch v := v.(*PointStruct); i { case 0: return &v.state case 1: @@ -12529,6 +13253,78 @@ func file_points_proto_init() { } } file_points_proto_msgTypes[114].Exporter = func(v any, i int) any { + 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[117].Exporter = func(v any, i int) any { + 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[118].Exporter = func(v any, i int) any { + switch v := v.(*PointsUpdateOperation_SetPayload); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_points_proto_msgTypes[119].Exporter = func(v any, i int) any { + switch v := v.(*PointsUpdateOperation_OverwritePayload); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_points_proto_msgTypes[120].Exporter = func(v any, i int) any { + switch v := v.(*PointsUpdateOperation_DeletePayload); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_points_proto_msgTypes[121].Exporter = func(v any, i int) any { + switch v := v.(*PointsUpdateOperation_UpdateVectors); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_points_proto_msgTypes[122].Exporter = func(v any, i int) any { switch v := v.(*PointsUpdateOperation_DeleteVectors); i { case 0: return &v.state @@ -12540,7 +13336,7 @@ func file_points_proto_init() { return nil } } - file_points_proto_msgTypes[115].Exporter = func(v any, i int) any { + file_points_proto_msgTypes[123].Exporter = func(v any, i int) any { switch v := v.(*PointsUpdateOperation_DeletePoints); i { case 0: return &v.state @@ -12552,7 +13348,7 @@ func file_points_proto_init() { return nil } } - file_points_proto_msgTypes[116].Exporter = func(v any, i int) any { + file_points_proto_msgTypes[124].Exporter = func(v any, i int) any { switch v := v.(*PointsUpdateOperation_ClearPayload); i { case 0: return &v.state @@ -12645,10 +13441,14 @@ func file_points_proto_init() { file_points_proto_msgTypes[53].OneofWrappers = []any{} file_points_proto_msgTypes[54].OneofWrappers = []any{} file_points_proto_msgTypes[55].OneofWrappers = []any{} - file_points_proto_msgTypes[56].OneofWrappers = []any{ + file_points_proto_msgTypes[56].OneofWrappers = []any{} + file_points_proto_msgTypes[57].OneofWrappers = []any{ (*FacetValue_StringValue)(nil), + (*FacetValue_IntegerValue)(nil), + (*FacetValue_BoolValue)(nil), } - file_points_proto_msgTypes[58].OneofWrappers = []any{ + file_points_proto_msgTypes[59].OneofWrappers = []any{} + file_points_proto_msgTypes[63].OneofWrappers = []any{ (*PointsUpdateOperation_Upsert)(nil), (*PointsUpdateOperation_DeleteDeprecated)(nil), (*PointsUpdateOperation_SetPayload_)(nil), @@ -12660,22 +13460,22 @@ func file_points_proto_init() { (*PointsUpdateOperation_DeletePoints_)(nil), (*PointsUpdateOperation_ClearPayload_)(nil), } - file_points_proto_msgTypes[59].OneofWrappers = []any{} - file_points_proto_msgTypes[61].OneofWrappers = []any{} - file_points_proto_msgTypes[62].OneofWrappers = []any{ + file_points_proto_msgTypes[64].OneofWrappers = []any{} + file_points_proto_msgTypes[66].OneofWrappers = []any{} + file_points_proto_msgTypes[67].OneofWrappers = []any{ (*OrderValue_Int)(nil), (*OrderValue_Float)(nil), } - file_points_proto_msgTypes[63].OneofWrappers = []any{} - file_points_proto_msgTypes[64].OneofWrappers = []any{ + file_points_proto_msgTypes[68].OneofWrappers = []any{} + file_points_proto_msgTypes[69].OneofWrappers = []any{ (*GroupId_UnsignedValue)(nil), (*GroupId_IntegerValue)(nil), (*GroupId_StringValue)(nil), } - file_points_proto_msgTypes[75].OneofWrappers = []any{} - file_points_proto_msgTypes[77].OneofWrappers = []any{} - file_points_proto_msgTypes[85].OneofWrappers = []any{} - file_points_proto_msgTypes[87].OneofWrappers = []any{ + file_points_proto_msgTypes[80].OneofWrappers = []any{} + file_points_proto_msgTypes[82].OneofWrappers = []any{} + file_points_proto_msgTypes[93].OneofWrappers = []any{} + file_points_proto_msgTypes[95].OneofWrappers = []any{ (*Condition_Field)(nil), (*Condition_IsEmpty)(nil), (*Condition_HasId)(nil), @@ -12683,7 +13483,7 @@ func file_points_proto_init() { (*Condition_IsNull)(nil), (*Condition_Nested)(nil), } - file_points_proto_msgTypes[93].OneofWrappers = []any{ + file_points_proto_msgTypes[101].OneofWrappers = []any{ (*Match_Keyword)(nil), (*Match_Integer)(nil), (*Match_Boolean)(nil), @@ -12693,29 +13493,29 @@ func file_points_proto_init() { (*Match_ExceptIntegers)(nil), (*Match_ExceptKeywords)(nil), } - file_points_proto_msgTypes[96].OneofWrappers = []any{} - file_points_proto_msgTypes[97].OneofWrappers = []any{} - file_points_proto_msgTypes[102].OneofWrappers = []any{} - file_points_proto_msgTypes[103].OneofWrappers = []any{ + file_points_proto_msgTypes[104].OneofWrappers = []any{} + file_points_proto_msgTypes[105].OneofWrappers = []any{} + file_points_proto_msgTypes[110].OneofWrappers = []any{} + file_points_proto_msgTypes[111].OneofWrappers = []any{ (*PointsSelector_Points)(nil), (*PointsSelector_Filter)(nil), } - file_points_proto_msgTypes[105].OneofWrappers = []any{} - file_points_proto_msgTypes[109].OneofWrappers = []any{} - file_points_proto_msgTypes[110].OneofWrappers = []any{} - file_points_proto_msgTypes[111].OneofWrappers = []any{} - file_points_proto_msgTypes[112].OneofWrappers = []any{} file_points_proto_msgTypes[113].OneofWrappers = []any{} - file_points_proto_msgTypes[114].OneofWrappers = []any{} - file_points_proto_msgTypes[115].OneofWrappers = []any{} - file_points_proto_msgTypes[116].OneofWrappers = []any{} + file_points_proto_msgTypes[117].OneofWrappers = []any{} + file_points_proto_msgTypes[118].OneofWrappers = []any{} + file_points_proto_msgTypes[119].OneofWrappers = []any{} + file_points_proto_msgTypes[120].OneofWrappers = []any{} + file_points_proto_msgTypes[121].OneofWrappers = []any{} + file_points_proto_msgTypes[122].OneofWrappers = []any{} + file_points_proto_msgTypes[123].OneofWrappers = []any{} + file_points_proto_msgTypes[124].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_points_proto_rawDesc, NumEnums: 8, - NumMessages: 122, + NumMessages: 130, NumExtensions: 0, NumServices: 0, }, diff --git a/qdrant/points_service.pb.go b/qdrant/points_service.pb.go index 13a3484..86850a2 100644 --- a/qdrant/points_service.pb.go +++ b/qdrant/points_service.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.34.2 -// protoc v4.25.1 +// protoc v5.27.3 // source: points_service.proto package qdrant @@ -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, 0x96, 0x0e, 0x0a, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0xfd, 0x0f, 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, @@ -138,50 +138,70 @@ var file_points_service_proto_rawDesc = []byte{ 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, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x05, 0x46, 0x61, 0x63, 0x65, 0x74, 0x12, 0x13, + 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x74, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x1a, 0x15, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x46, 0x61, 0x63, + 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x11, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x50, 0x61, 0x69, 0x72, + 0x73, 0x12, 0x1a, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x1a, 0x21, 0x2e, + 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x61, 0x74, + 0x72, 0x69, 0x78, 0x50, 0x61, 0x69, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x58, 0x0a, 0x13, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x61, 0x74, 0x72, + 0x69, 0x78, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x73, 0x12, 0x1a, 0x2e, 0x71, 0x64, 0x72, 0x61, + 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x1a, 0x23, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x4f, 0x66, 0x66, 0x73, 0x65, + 0x74, 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 = []any{ - (*UpsertPoints)(nil), // 0: qdrant.UpsertPoints - (*DeletePoints)(nil), // 1: qdrant.DeletePoints - (*GetPoints)(nil), // 2: qdrant.GetPoints - (*UpdatePointVectors)(nil), // 3: qdrant.UpdatePointVectors - (*DeletePointVectors)(nil), // 4: qdrant.DeletePointVectors - (*SetPayloadPoints)(nil), // 5: qdrant.SetPayloadPoints - (*DeletePayloadPoints)(nil), // 6: qdrant.DeletePayloadPoints - (*ClearPayloadPoints)(nil), // 7: qdrant.ClearPayloadPoints - (*CreateFieldIndexCollection)(nil), // 8: qdrant.CreateFieldIndexCollection - (*DeleteFieldIndexCollection)(nil), // 9: qdrant.DeleteFieldIndexCollection - (*SearchPoints)(nil), // 10: qdrant.SearchPoints - (*SearchBatchPoints)(nil), // 11: qdrant.SearchBatchPoints - (*SearchPointGroups)(nil), // 12: qdrant.SearchPointGroups - (*ScrollPoints)(nil), // 13: qdrant.ScrollPoints - (*RecommendPoints)(nil), // 14: qdrant.RecommendPoints - (*RecommendBatchPoints)(nil), // 15: qdrant.RecommendBatchPoints - (*RecommendPointGroups)(nil), // 16: qdrant.RecommendPointGroups - (*DiscoverPoints)(nil), // 17: qdrant.DiscoverPoints - (*DiscoverBatchPoints)(nil), // 18: qdrant.DiscoverBatchPoints - (*CountPoints)(nil), // 19: qdrant.CountPoints - (*UpdateBatchPoints)(nil), // 20: qdrant.UpdateBatchPoints - (*QueryPoints)(nil), // 21: qdrant.QueryPoints - (*QueryBatchPoints)(nil), // 22: qdrant.QueryBatchPoints - (*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 + (*UpsertPoints)(nil), // 0: qdrant.UpsertPoints + (*DeletePoints)(nil), // 1: qdrant.DeletePoints + (*GetPoints)(nil), // 2: qdrant.GetPoints + (*UpdatePointVectors)(nil), // 3: qdrant.UpdatePointVectors + (*DeletePointVectors)(nil), // 4: qdrant.DeletePointVectors + (*SetPayloadPoints)(nil), // 5: qdrant.SetPayloadPoints + (*DeletePayloadPoints)(nil), // 6: qdrant.DeletePayloadPoints + (*ClearPayloadPoints)(nil), // 7: qdrant.ClearPayloadPoints + (*CreateFieldIndexCollection)(nil), // 8: qdrant.CreateFieldIndexCollection + (*DeleteFieldIndexCollection)(nil), // 9: qdrant.DeleteFieldIndexCollection + (*SearchPoints)(nil), // 10: qdrant.SearchPoints + (*SearchBatchPoints)(nil), // 11: qdrant.SearchBatchPoints + (*SearchPointGroups)(nil), // 12: qdrant.SearchPointGroups + (*ScrollPoints)(nil), // 13: qdrant.ScrollPoints + (*RecommendPoints)(nil), // 14: qdrant.RecommendPoints + (*RecommendBatchPoints)(nil), // 15: qdrant.RecommendBatchPoints + (*RecommendPointGroups)(nil), // 16: qdrant.RecommendPointGroups + (*DiscoverPoints)(nil), // 17: qdrant.DiscoverPoints + (*DiscoverBatchPoints)(nil), // 18: qdrant.DiscoverBatchPoints + (*CountPoints)(nil), // 19: qdrant.CountPoints + (*UpdateBatchPoints)(nil), // 20: qdrant.UpdateBatchPoints + (*QueryPoints)(nil), // 21: qdrant.QueryPoints + (*QueryBatchPoints)(nil), // 22: qdrant.QueryBatchPoints + (*QueryPointGroups)(nil), // 23: qdrant.QueryPointGroups + (*FacetCounts)(nil), // 24: qdrant.FacetCounts + (*SearchMatrixPoints)(nil), // 25: qdrant.SearchMatrixPoints + (*PointsOperationResponse)(nil), // 26: qdrant.PointsOperationResponse + (*GetResponse)(nil), // 27: qdrant.GetResponse + (*SearchResponse)(nil), // 28: qdrant.SearchResponse + (*SearchBatchResponse)(nil), // 29: qdrant.SearchBatchResponse + (*SearchGroupsResponse)(nil), // 30: qdrant.SearchGroupsResponse + (*ScrollResponse)(nil), // 31: qdrant.ScrollResponse + (*RecommendResponse)(nil), // 32: qdrant.RecommendResponse + (*RecommendBatchResponse)(nil), // 33: qdrant.RecommendBatchResponse + (*RecommendGroupsResponse)(nil), // 34: qdrant.RecommendGroupsResponse + (*DiscoverResponse)(nil), // 35: qdrant.DiscoverResponse + (*DiscoverBatchResponse)(nil), // 36: qdrant.DiscoverBatchResponse + (*CountResponse)(nil), // 37: qdrant.CountResponse + (*UpdateBatchResponse)(nil), // 38: qdrant.UpdateBatchResponse + (*QueryResponse)(nil), // 39: qdrant.QueryResponse + (*QueryBatchResponse)(nil), // 40: qdrant.QueryBatchResponse + (*QueryGroupsResponse)(nil), // 41: qdrant.QueryGroupsResponse + (*FacetResponse)(nil), // 42: qdrant.FacetResponse + (*SearchMatrixPairsResponse)(nil), // 43: qdrant.SearchMatrixPairsResponse + (*SearchMatrixOffsetsResponse)(nil), // 44: qdrant.SearchMatrixOffsetsResponse } var file_points_service_proto_depIdxs = []int32{ 0, // 0: qdrant.Points.Upsert:input_type -> qdrant.UpsertPoints @@ -209,33 +229,39 @@ var file_points_service_proto_depIdxs = []int32{ 21, // 22: qdrant.Points.Query:input_type -> qdrant.QueryPoints 22, // 23: qdrant.Points.QueryBatch:input_type -> qdrant.QueryBatchPoints 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 + 24, // 25: qdrant.Points.Facet:input_type -> qdrant.FacetCounts + 25, // 26: qdrant.Points.SearchMatrixPairs:input_type -> qdrant.SearchMatrixPoints + 25, // 27: qdrant.Points.SearchMatrixOffsets:input_type -> qdrant.SearchMatrixPoints + 26, // 28: qdrant.Points.Upsert:output_type -> qdrant.PointsOperationResponse + 26, // 29: qdrant.Points.Delete:output_type -> qdrant.PointsOperationResponse + 27, // 30: qdrant.Points.Get:output_type -> qdrant.GetResponse + 26, // 31: qdrant.Points.UpdateVectors:output_type -> qdrant.PointsOperationResponse + 26, // 32: qdrant.Points.DeleteVectors:output_type -> qdrant.PointsOperationResponse + 26, // 33: qdrant.Points.SetPayload:output_type -> qdrant.PointsOperationResponse + 26, // 34: qdrant.Points.OverwritePayload:output_type -> qdrant.PointsOperationResponse + 26, // 35: qdrant.Points.DeletePayload:output_type -> qdrant.PointsOperationResponse + 26, // 36: qdrant.Points.ClearPayload:output_type -> qdrant.PointsOperationResponse + 26, // 37: qdrant.Points.CreateFieldIndex:output_type -> qdrant.PointsOperationResponse + 26, // 38: qdrant.Points.DeleteFieldIndex:output_type -> qdrant.PointsOperationResponse + 28, // 39: qdrant.Points.Search:output_type -> qdrant.SearchResponse + 29, // 40: qdrant.Points.SearchBatch:output_type -> qdrant.SearchBatchResponse + 30, // 41: qdrant.Points.SearchGroups:output_type -> qdrant.SearchGroupsResponse + 31, // 42: qdrant.Points.Scroll:output_type -> qdrant.ScrollResponse + 32, // 43: qdrant.Points.Recommend:output_type -> qdrant.RecommendResponse + 33, // 44: qdrant.Points.RecommendBatch:output_type -> qdrant.RecommendBatchResponse + 34, // 45: qdrant.Points.RecommendGroups:output_type -> qdrant.RecommendGroupsResponse + 35, // 46: qdrant.Points.Discover:output_type -> qdrant.DiscoverResponse + 36, // 47: qdrant.Points.DiscoverBatch:output_type -> qdrant.DiscoverBatchResponse + 37, // 48: qdrant.Points.Count:output_type -> qdrant.CountResponse + 38, // 49: qdrant.Points.UpdateBatch:output_type -> qdrant.UpdateBatchResponse + 39, // 50: qdrant.Points.Query:output_type -> qdrant.QueryResponse + 40, // 51: qdrant.Points.QueryBatch:output_type -> qdrant.QueryBatchResponse + 41, // 52: qdrant.Points.QueryGroups:output_type -> qdrant.QueryGroupsResponse + 42, // 53: qdrant.Points.Facet:output_type -> qdrant.FacetResponse + 43, // 54: qdrant.Points.SearchMatrixPairs:output_type -> qdrant.SearchMatrixPairsResponse + 44, // 55: qdrant.Points.SearchMatrixOffsets:output_type -> qdrant.SearchMatrixOffsetsResponse + 28, // [28:56] is the sub-list for method output_type + 0, // [0:28] 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 f7a50a3..b87f89d 100644 --- a/qdrant/points_service_grpc.pb.go +++ b/qdrant/points_service_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.5.1 -// - protoc v4.25.1 +// - protoc v5.27.3 // source: points_service.proto package qdrant @@ -17,31 +17,34 @@ import ( const _ = grpc.SupportPackageIsVersion9 const ( - Points_Upsert_FullMethodName = "/qdrant.Points/Upsert" - Points_Delete_FullMethodName = "/qdrant.Points/Delete" - Points_Get_FullMethodName = "/qdrant.Points/Get" - Points_UpdateVectors_FullMethodName = "/qdrant.Points/UpdateVectors" - Points_DeleteVectors_FullMethodName = "/qdrant.Points/DeleteVectors" - Points_SetPayload_FullMethodName = "/qdrant.Points/SetPayload" - Points_OverwritePayload_FullMethodName = "/qdrant.Points/OverwritePayload" - Points_DeletePayload_FullMethodName = "/qdrant.Points/DeletePayload" - Points_ClearPayload_FullMethodName = "/qdrant.Points/ClearPayload" - Points_CreateFieldIndex_FullMethodName = "/qdrant.Points/CreateFieldIndex" - Points_DeleteFieldIndex_FullMethodName = "/qdrant.Points/DeleteFieldIndex" - Points_Search_FullMethodName = "/qdrant.Points/Search" - Points_SearchBatch_FullMethodName = "/qdrant.Points/SearchBatch" - Points_SearchGroups_FullMethodName = "/qdrant.Points/SearchGroups" - Points_Scroll_FullMethodName = "/qdrant.Points/Scroll" - Points_Recommend_FullMethodName = "/qdrant.Points/Recommend" - Points_RecommendBatch_FullMethodName = "/qdrant.Points/RecommendBatch" - Points_RecommendGroups_FullMethodName = "/qdrant.Points/RecommendGroups" - Points_Discover_FullMethodName = "/qdrant.Points/Discover" - Points_DiscoverBatch_FullMethodName = "/qdrant.Points/DiscoverBatch" - Points_Count_FullMethodName = "/qdrant.Points/Count" - Points_UpdateBatch_FullMethodName = "/qdrant.Points/UpdateBatch" - Points_Query_FullMethodName = "/qdrant.Points/Query" - Points_QueryBatch_FullMethodName = "/qdrant.Points/QueryBatch" - Points_QueryGroups_FullMethodName = "/qdrant.Points/QueryGroups" + Points_Upsert_FullMethodName = "/qdrant.Points/Upsert" + Points_Delete_FullMethodName = "/qdrant.Points/Delete" + Points_Get_FullMethodName = "/qdrant.Points/Get" + Points_UpdateVectors_FullMethodName = "/qdrant.Points/UpdateVectors" + Points_DeleteVectors_FullMethodName = "/qdrant.Points/DeleteVectors" + Points_SetPayload_FullMethodName = "/qdrant.Points/SetPayload" + Points_OverwritePayload_FullMethodName = "/qdrant.Points/OverwritePayload" + Points_DeletePayload_FullMethodName = "/qdrant.Points/DeletePayload" + Points_ClearPayload_FullMethodName = "/qdrant.Points/ClearPayload" + Points_CreateFieldIndex_FullMethodName = "/qdrant.Points/CreateFieldIndex" + Points_DeleteFieldIndex_FullMethodName = "/qdrant.Points/DeleteFieldIndex" + Points_Search_FullMethodName = "/qdrant.Points/Search" + Points_SearchBatch_FullMethodName = "/qdrant.Points/SearchBatch" + Points_SearchGroups_FullMethodName = "/qdrant.Points/SearchGroups" + Points_Scroll_FullMethodName = "/qdrant.Points/Scroll" + Points_Recommend_FullMethodName = "/qdrant.Points/Recommend" + Points_RecommendBatch_FullMethodName = "/qdrant.Points/RecommendBatch" + Points_RecommendGroups_FullMethodName = "/qdrant.Points/RecommendGroups" + Points_Discover_FullMethodName = "/qdrant.Points/Discover" + Points_DiscoverBatch_FullMethodName = "/qdrant.Points/DiscoverBatch" + Points_Count_FullMethodName = "/qdrant.Points/Count" + Points_UpdateBatch_FullMethodName = "/qdrant.Points/UpdateBatch" + Points_Query_FullMethodName = "/qdrant.Points/Query" + Points_QueryBatch_FullMethodName = "/qdrant.Points/QueryBatch" + Points_QueryGroups_FullMethodName = "/qdrant.Points/QueryGroups" + Points_Facet_FullMethodName = "/qdrant.Points/Facet" + Points_SearchMatrixPairs_FullMethodName = "/qdrant.Points/SearchMatrixPairs" + Points_SearchMatrixOffsets_FullMethodName = "/qdrant.Points/SearchMatrixOffsets" ) // PointsClient is the client API for Points service. @@ -112,6 +115,12 @@ type PointsClient interface { 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) + // Perform facet counts. For each value in the field, count the number of points that have this value and match the conditions. + Facet(ctx context.Context, in *FacetCounts, opts ...grpc.CallOption) (*FacetResponse, error) + // Compute distance matrix for sampled points with a pair based output format + SearchMatrixPairs(ctx context.Context, in *SearchMatrixPoints, opts ...grpc.CallOption) (*SearchMatrixPairsResponse, error) + // Compute distance matrix for sampled points with an offset based output format + SearchMatrixOffsets(ctx context.Context, in *SearchMatrixPoints, opts ...grpc.CallOption) (*SearchMatrixOffsetsResponse, error) } type pointsClient struct { @@ -371,3 +380,33 @@ func (c *pointsClient) QueryGroups(ctx context.Context, in *QueryPointGroups, op } return out, nil } + +func (c *pointsClient) Facet(ctx context.Context, in *FacetCounts, opts ...grpc.CallOption) (*FacetResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(FacetResponse) + err := c.cc.Invoke(ctx, Points_Facet_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *pointsClient) SearchMatrixPairs(ctx context.Context, in *SearchMatrixPoints, opts ...grpc.CallOption) (*SearchMatrixPairsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(SearchMatrixPairsResponse) + err := c.cc.Invoke(ctx, Points_SearchMatrixPairs_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *pointsClient) SearchMatrixOffsets(ctx context.Context, in *SearchMatrixPoints, opts ...grpc.CallOption) (*SearchMatrixOffsetsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(SearchMatrixOffsetsResponse) + err := c.cc.Invoke(ctx, Points_SearchMatrixOffsets_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} diff --git a/qdrant/qdrant.pb.go b/qdrant/qdrant.pb.go index f9f04c7..795f8fd 100644 --- a/qdrant/qdrant.pb.go +++ b/qdrant/qdrant.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.34.2 -// protoc v4.25.1 +// protoc v5.27.3 // source: qdrant.proto package qdrant diff --git a/qdrant/qdrant_grpc.pb.go b/qdrant/qdrant_grpc.pb.go index b86f154..a7c4db2 100644 --- a/qdrant/qdrant_grpc.pb.go +++ b/qdrant/qdrant_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.5.1 -// - protoc v4.25.1 +// - protoc v5.27.3 // source: qdrant.proto package qdrant diff --git a/qdrant/snapshots_service.pb.go b/qdrant/snapshots_service.pb.go index 7fba7ef..de1db41 100644 --- a/qdrant/snapshots_service.pb.go +++ b/qdrant/snapshots_service.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.34.2 -// protoc v4.25.1 +// protoc v5.27.3 // source: snapshots_service.proto package qdrant diff --git a/qdrant/snapshots_service_grpc.pb.go b/qdrant/snapshots_service_grpc.pb.go index b993888..57b6322 100644 --- a/qdrant/snapshots_service_grpc.pb.go +++ b/qdrant/snapshots_service_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.5.1 -// - protoc v4.25.1 +// - protoc v5.27.3 // source: snapshots_service.proto package qdrant diff --git a/qdrant_test/image_test.go b/qdrant_test/image_test.go index b1787e5..0844ead 100644 --- a/qdrant_test/image_test.go +++ b/qdrant_test/image_test.go @@ -8,7 +8,7 @@ import ( "github.com/testcontainers/testcontainers-go/wait" ) -const TestImage string = "qdrant/qdrant:v1.11.3" +const TestImage string = "qdrant/qdrant:v1.12.0" // We use an instance with distributed mode enabled // to test methods like CreateShardKey(), DeleteShardKey(). diff --git a/qdrant_test/points_test.go b/qdrant_test/points_test.go index 7879add..6b26ea7 100644 --- a/qdrant_test/points_test.go +++ b/qdrant_test/points_test.go @@ -49,9 +49,19 @@ func TestPointsClient(t *testing.T) { }) require.NoError(t, err) - testPointID := qdrant.NewID("ed7ac159-d8a7-41fb-9da3-66a14916330f") wait := true + result, err := client.CreateFieldIndex(ctx, &qdrant.CreateFieldIndexCollection{ + CollectionName: collectionName, + FieldName: "key", + FieldType: qdrant.FieldType_FieldTypeKeyword.Enum(), + Wait: &wait, + }) + require.NoError(t, err) + require.NotNil(t, result) + + testPointID := qdrant.NewID("ed7ac159-d8a7-41fb-9da3-66a14916330f") + t.Run("UpsertPoints", func(t *testing.T) { points := []*qdrant.PointStruct{ { @@ -182,6 +192,39 @@ func TestPointsClient(t *testing.T) { require.Empty(t, groups) }) + t.Run("Facet", func(t *testing.T) { + res, err := client.Facet(ctx, &qdrant.FacetCounts{ + CollectionName: collectionName, + Key: "key", + }) + require.NoError(t, err) + require.Empty(t, res) + }) + + t.Run("SearchMatrixPairs", func(t *testing.T) { + sample := uint64(10) + limit := uint64(10) + res, err := client.SearchMatrixPairs(ctx, &qdrant.SearchMatrixPoints{ + CollectionName: collectionName, + Sample: &sample, + Limit: &limit, + }) + require.NoError(t, err) + require.Empty(t, res) + }) + + t.Run("SearchMatrixOffsets", func(t *testing.T) { + sample := uint64(10) + limit := uint64(10) + res, err := client.SearchMatrixOffsets(ctx, &qdrant.SearchMatrixPoints{ + CollectionName: collectionName, + Sample: &sample, + Limit: &limit, + }) + require.NoError(t, err) + require.Empty(t, res) + }) + t.Run("DeleteVectors", func(t *testing.T) { res, err := client.DeleteVectors(ctx, &qdrant.DeletePointVectors{ CollectionName: collectionName,