// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.33.0
// 	protoc        v5.27.0
// source: data_coord.proto

package datapb

import (
	commonpb "github.com/milvus-io/milvus-proto/go-api/v3/commonpb"
	milvuspb "github.com/milvus-io/milvus-proto/go-api/v3/milvuspb"
	msgpb "github.com/milvus-io/milvus-proto/go-api/v3/msgpb"
	schemapb "github.com/milvus-io/milvus-proto/go-api/v3/schemapb"
	indexpb "github.com/milvus-io/milvus/pkg/v3/proto/indexpb"
	internalpb "github.com/milvus-io/milvus/pkg/v3/proto/internalpb"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type SegmentType int32

const (
	SegmentType_New       SegmentType = 0
	SegmentType_Normal    SegmentType = 1
	SegmentType_Flushed   SegmentType = 2
	SegmentType_Compacted SegmentType = 3
)

// Enum value maps for SegmentType.
var (
	SegmentType_name = map[int32]string{
		0: "New",
		1: "Normal",
		2: "Flushed",
		3: "Compacted",
	}
	SegmentType_value = map[string]int32{
		"New":       0,
		"Normal":    1,
		"Flushed":   2,
		"Compacted": 3,
	}
)

func (x SegmentType) Enum() *SegmentType {
	p := new(SegmentType)
	*p = x
	return p
}

func (x SegmentType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (SegmentType) Descriptor() protoreflect.EnumDescriptor {
	return file_data_coord_proto_enumTypes[0].Descriptor()
}

func (SegmentType) Type() protoreflect.EnumType {
	return &file_data_coord_proto_enumTypes[0]
}

func (x SegmentType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use SegmentType.Descriptor instead.
func (SegmentType) EnumDescriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{0}
}

type SegmentLevel int32

const (
	SegmentLevel_Legacy SegmentLevel = 0 // zero value for legacy logic
	SegmentLevel_L0     SegmentLevel = 1 // L0 segment, contains delta data for current channel
	SegmentLevel_L1     SegmentLevel = 2 // L1 segment, normal segment, with no extra compaction attribute
	SegmentLevel_L2     SegmentLevel = 3 // L2 segment, segment with extra data distribution info
)

// Enum value maps for SegmentLevel.
var (
	SegmentLevel_name = map[int32]string{
		0: "Legacy",
		1: "L0",
		2: "L1",
		3: "L2",
	}
	SegmentLevel_value = map[string]int32{
		"Legacy": 0,
		"L0":     1,
		"L1":     2,
		"L2":     3,
	}
)

func (x SegmentLevel) Enum() *SegmentLevel {
	p := new(SegmentLevel)
	*p = x
	return p
}

func (x SegmentLevel) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (SegmentLevel) Descriptor() protoreflect.EnumDescriptor {
	return file_data_coord_proto_enumTypes[1].Descriptor()
}

func (SegmentLevel) Type() protoreflect.EnumType {
	return &file_data_coord_proto_enumTypes[1]
}

func (x SegmentLevel) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use SegmentLevel.Descriptor instead.
func (SegmentLevel) EnumDescriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{1}
}

type ChannelWatchState int32

const (
	ChannelWatchState_Uncomplete     ChannelWatchState = 0 // deprecated, keep it for compatibility
	ChannelWatchState_Complete       ChannelWatchState = 1 // deprecated, keep it for compatibility
	ChannelWatchState_ToWatch        ChannelWatchState = 2
	ChannelWatchState_WatchSuccess   ChannelWatchState = 3
	ChannelWatchState_WatchFailure   ChannelWatchState = 4
	ChannelWatchState_ToRelease      ChannelWatchState = 5
	ChannelWatchState_ReleaseSuccess ChannelWatchState = 6
	ChannelWatchState_ReleaseFailure ChannelWatchState = 7
)

// Enum value maps for ChannelWatchState.
var (
	ChannelWatchState_name = map[int32]string{
		0: "Uncomplete",
		1: "Complete",
		2: "ToWatch",
		3: "WatchSuccess",
		4: "WatchFailure",
		5: "ToRelease",
		6: "ReleaseSuccess",
		7: "ReleaseFailure",
	}
	ChannelWatchState_value = map[string]int32{
		"Uncomplete":     0,
		"Complete":       1,
		"ToWatch":        2,
		"WatchSuccess":   3,
		"WatchFailure":   4,
		"ToRelease":      5,
		"ReleaseSuccess": 6,
		"ReleaseFailure": 7,
	}
)

func (x ChannelWatchState) Enum() *ChannelWatchState {
	p := new(ChannelWatchState)
	*p = x
	return p
}

func (x ChannelWatchState) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ChannelWatchState) Descriptor() protoreflect.EnumDescriptor {
	return file_data_coord_proto_enumTypes[2].Descriptor()
}

func (ChannelWatchState) Type() protoreflect.EnumType {
	return &file_data_coord_proto_enumTypes[2]
}

func (x ChannelWatchState) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ChannelWatchState.Descriptor instead.
func (ChannelWatchState) EnumDescriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{2}
}

type CompactionType int32

const (
	CompactionType_UndefinedCompaction CompactionType = 0
	CompactionType_MergeCompaction     CompactionType = 2
	CompactionType_MixCompaction       CompactionType = 3
	// compactionV2
	CompactionType_SingleCompaction                     CompactionType = 4
	CompactionType_MinorCompaction                      CompactionType = 5
	CompactionType_MajorCompaction                      CompactionType = 6
	CompactionType_Level0DeleteCompaction               CompactionType = 7
	CompactionType_ClusteringCompaction                 CompactionType = 8
	CompactionType_SortCompaction                       CompactionType = 9
	CompactionType_PartitionKeySortCompaction           CompactionType = 10
	CompactionType_ClusteringPartitionKeySortCompaction CompactionType = 11
	CompactionType_BumpSchemaVersionCompaction          CompactionType = 12
)

// Enum value maps for CompactionType.
var (
	CompactionType_name = map[int32]string{
		0:  "UndefinedCompaction",
		2:  "MergeCompaction",
		3:  "MixCompaction",
		4:  "SingleCompaction",
		5:  "MinorCompaction",
		6:  "MajorCompaction",
		7:  "Level0DeleteCompaction",
		8:  "ClusteringCompaction",
		9:  "SortCompaction",
		10: "PartitionKeySortCompaction",
		11: "ClusteringPartitionKeySortCompaction",
		12: "BumpSchemaVersionCompaction",
	}
	CompactionType_value = map[string]int32{
		"UndefinedCompaction":                  0,
		"MergeCompaction":                      2,
		"MixCompaction":                        3,
		"SingleCompaction":                     4,
		"MinorCompaction":                      5,
		"MajorCompaction":                      6,
		"Level0DeleteCompaction":               7,
		"ClusteringCompaction":                 8,
		"SortCompaction":                       9,
		"PartitionKeySortCompaction":           10,
		"ClusteringPartitionKeySortCompaction": 11,
		"BumpSchemaVersionCompaction":          12,
	}
)

func (x CompactionType) Enum() *CompactionType {
	p := new(CompactionType)
	*p = x
	return p
}

func (x CompactionType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (CompactionType) Descriptor() protoreflect.EnumDescriptor {
	return file_data_coord_proto_enumTypes[3].Descriptor()
}

func (CompactionType) Type() protoreflect.EnumType {
	return &file_data_coord_proto_enumTypes[3]
}

func (x CompactionType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use CompactionType.Descriptor instead.
func (CompactionType) EnumDescriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{3}
}

// CopySegmentJobState defines the state machine for copy segment jobs
type CopySegmentJobState int32

const (
	CopySegmentJobState_CopySegmentJobNone      CopySegmentJobState = 0
	CopySegmentJobState_CopySegmentJobPending   CopySegmentJobState = 1 // Job created, waiting to start
	CopySegmentJobState_CopySegmentJobExecuting CopySegmentJobState = 2 // Executing copy segment tasks
	CopySegmentJobState_CopySegmentJobCompleted CopySegmentJobState = 3 // All done
	CopySegmentJobState_CopySegmentJobFailed    CopySegmentJobState = 4 // Failed
)

// Enum value maps for CopySegmentJobState.
var (
	CopySegmentJobState_name = map[int32]string{
		0: "CopySegmentJobNone",
		1: "CopySegmentJobPending",
		2: "CopySegmentJobExecuting",
		3: "CopySegmentJobCompleted",
		4: "CopySegmentJobFailed",
	}
	CopySegmentJobState_value = map[string]int32{
		"CopySegmentJobNone":      0,
		"CopySegmentJobPending":   1,
		"CopySegmentJobExecuting": 2,
		"CopySegmentJobCompleted": 3,
		"CopySegmentJobFailed":    4,
	}
)

func (x CopySegmentJobState) Enum() *CopySegmentJobState {
	p := new(CopySegmentJobState)
	*p = x
	return p
}

func (x CopySegmentJobState) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (CopySegmentJobState) Descriptor() protoreflect.EnumDescriptor {
	return file_data_coord_proto_enumTypes[4].Descriptor()
}

func (CopySegmentJobState) Type() protoreflect.EnumType {
	return &file_data_coord_proto_enumTypes[4]
}

func (x CopySegmentJobState) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use CopySegmentJobState.Descriptor instead.
func (CopySegmentJobState) EnumDescriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{4}
}

// CopySegmentTaskState defines the state machine for copy segment tasks
type CopySegmentTaskState int32

const (
	CopySegmentTaskState_CopySegmentTaskNone       CopySegmentTaskState = 0
	CopySegmentTaskState_CopySegmentTaskPending    CopySegmentTaskState = 1 // Task created, waiting to be scheduled
	CopySegmentTaskState_CopySegmentTaskInProgress CopySegmentTaskState = 2 // Task is being executed on DataNode
	CopySegmentTaskState_CopySegmentTaskCompleted  CopySegmentTaskState = 3 // Task successfully completed, segment copied
	CopySegmentTaskState_CopySegmentTaskFailed     CopySegmentTaskState = 4 // Task failed, requires manual handling
)

// Enum value maps for CopySegmentTaskState.
var (
	CopySegmentTaskState_name = map[int32]string{
		0: "CopySegmentTaskNone",
		1: "CopySegmentTaskPending",
		2: "CopySegmentTaskInProgress",
		3: "CopySegmentTaskCompleted",
		4: "CopySegmentTaskFailed",
	}
	CopySegmentTaskState_value = map[string]int32{
		"CopySegmentTaskNone":       0,
		"CopySegmentTaskPending":    1,
		"CopySegmentTaskInProgress": 2,
		"CopySegmentTaskCompleted":  3,
		"CopySegmentTaskFailed":     4,
	}
)

func (x CopySegmentTaskState) Enum() *CopySegmentTaskState {
	p := new(CopySegmentTaskState)
	*p = x
	return p
}

func (x CopySegmentTaskState) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (CopySegmentTaskState) Descriptor() protoreflect.EnumDescriptor {
	return file_data_coord_proto_enumTypes[5].Descriptor()
}

func (CopySegmentTaskState) Type() protoreflect.EnumType {
	return &file_data_coord_proto_enumTypes[5]
}

func (x CopySegmentTaskState) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use CopySegmentTaskState.Descriptor instead.
func (CopySegmentTaskState) EnumDescriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{5}
}

// SnapshotState defines the state for snapshot 2PC commit
type SnapshotState int32

const (
	SnapshotState_SnapshotStateUnknown   SnapshotState = 0 // Default/unknown state
	SnapshotState_SnapshotStatePending   SnapshotState = 1 // S3 files are being written
	SnapshotState_SnapshotStateCommitted SnapshotState = 2 // S3 write completed, snapshot is ready
	SnapshotState_SnapshotStateDeleting  SnapshotState = 3 // Marked for deletion, S3 cleanup in progress
)

// Enum value maps for SnapshotState.
var (
	SnapshotState_name = map[int32]string{
		0: "SnapshotStateUnknown",
		1: "SnapshotStatePending",
		2: "SnapshotStateCommitted",
		3: "SnapshotStateDeleting",
	}
	SnapshotState_value = map[string]int32{
		"SnapshotStateUnknown":   0,
		"SnapshotStatePending":   1,
		"SnapshotStateCommitted": 2,
		"SnapshotStateDeleting":  3,
	}
)

func (x SnapshotState) Enum() *SnapshotState {
	p := new(SnapshotState)
	*p = x
	return p
}

func (x SnapshotState) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (SnapshotState) Descriptor() protoreflect.EnumDescriptor {
	return file_data_coord_proto_enumTypes[6].Descriptor()
}

func (SnapshotState) Type() protoreflect.EnumType {
	return &file_data_coord_proto_enumTypes[6]
}

func (x SnapshotState) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use SnapshotState.Descriptor instead.
func (SnapshotState) EnumDescriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{6}
}

// RestoreSnapshotState defines the state machine for restore snapshot jobs
type RestoreSnapshotState int32

const (
	RestoreSnapshotState_RestoreSnapshotNone      RestoreSnapshotState = 0
	RestoreSnapshotState_RestoreSnapshotPending   RestoreSnapshotState = 1 // Job created, waiting to start
	RestoreSnapshotState_RestoreSnapshotExecuting RestoreSnapshotState = 2 // Executing restore tasks
	RestoreSnapshotState_RestoreSnapshotCompleted RestoreSnapshotState = 3 // All done
	RestoreSnapshotState_RestoreSnapshotFailed    RestoreSnapshotState = 4 // Failed
)

// Enum value maps for RestoreSnapshotState.
var (
	RestoreSnapshotState_name = map[int32]string{
		0: "RestoreSnapshotNone",
		1: "RestoreSnapshotPending",
		2: "RestoreSnapshotExecuting",
		3: "RestoreSnapshotCompleted",
		4: "RestoreSnapshotFailed",
	}
	RestoreSnapshotState_value = map[string]int32{
		"RestoreSnapshotNone":      0,
		"RestoreSnapshotPending":   1,
		"RestoreSnapshotExecuting": 2,
		"RestoreSnapshotCompleted": 3,
		"RestoreSnapshotFailed":    4,
	}
)

func (x RestoreSnapshotState) Enum() *RestoreSnapshotState {
	p := new(RestoreSnapshotState)
	*p = x
	return p
}

func (x RestoreSnapshotState) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (RestoreSnapshotState) Descriptor() protoreflect.EnumDescriptor {
	return file_data_coord_proto_enumTypes[7].Descriptor()
}

func (RestoreSnapshotState) Type() protoreflect.EnumType {
	return &file_data_coord_proto_enumTypes[7]
}

func (x RestoreSnapshotState) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use RestoreSnapshotState.Descriptor instead.
func (RestoreSnapshotState) EnumDescriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{7}
}

type ImportTaskStateV2 int32

const (
	ImportTaskStateV2_None       ImportTaskStateV2 = 0
	ImportTaskStateV2_Pending    ImportTaskStateV2 = 1
	ImportTaskStateV2_InProgress ImportTaskStateV2 = 2
	ImportTaskStateV2_Failed     ImportTaskStateV2 = 3
	ImportTaskStateV2_Completed  ImportTaskStateV2 = 4
	ImportTaskStateV2_Retry      ImportTaskStateV2 = 5
)

// Enum value maps for ImportTaskStateV2.
var (
	ImportTaskStateV2_name = map[int32]string{
		0: "None",
		1: "Pending",
		2: "InProgress",
		3: "Failed",
		4: "Completed",
		5: "Retry",
	}
	ImportTaskStateV2_value = map[string]int32{
		"None":       0,
		"Pending":    1,
		"InProgress": 2,
		"Failed":     3,
		"Completed":  4,
		"Retry":      5,
	}
)

func (x ImportTaskStateV2) Enum() *ImportTaskStateV2 {
	p := new(ImportTaskStateV2)
	*p = x
	return p
}

func (x ImportTaskStateV2) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ImportTaskStateV2) Descriptor() protoreflect.EnumDescriptor {
	return file_data_coord_proto_enumTypes[8].Descriptor()
}

func (ImportTaskStateV2) Type() protoreflect.EnumType {
	return &file_data_coord_proto_enumTypes[8]
}

func (x ImportTaskStateV2) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ImportTaskStateV2.Descriptor instead.
func (ImportTaskStateV2) EnumDescriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{8}
}

type ImportTaskSourceV2 int32

const (
	ImportTaskSourceV2_Request      ImportTaskSourceV2 = 0
	ImportTaskSourceV2_L0Compaction ImportTaskSourceV2 = 1
)

// Enum value maps for ImportTaskSourceV2.
var (
	ImportTaskSourceV2_name = map[int32]string{
		0: "Request",
		1: "L0Compaction",
	}
	ImportTaskSourceV2_value = map[string]int32{
		"Request":      0,
		"L0Compaction": 1,
	}
)

func (x ImportTaskSourceV2) Enum() *ImportTaskSourceV2 {
	p := new(ImportTaskSourceV2)
	*p = x
	return p
}

func (x ImportTaskSourceV2) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ImportTaskSourceV2) Descriptor() protoreflect.EnumDescriptor {
	return file_data_coord_proto_enumTypes[9].Descriptor()
}

func (ImportTaskSourceV2) Type() protoreflect.EnumType {
	return &file_data_coord_proto_enumTypes[9]
}

func (x ImportTaskSourceV2) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ImportTaskSourceV2.Descriptor instead.
func (ImportTaskSourceV2) EnumDescriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{9}
}

type GcCommand int32

const (
	GcCommand__      GcCommand = 0
	GcCommand_Pause  GcCommand = 1
	GcCommand_Resume GcCommand = 2
)

// Enum value maps for GcCommand.
var (
	GcCommand_name = map[int32]string{
		0: "_",
		1: "Pause",
		2: "Resume",
	}
	GcCommand_value = map[string]int32{
		"_":      0,
		"Pause":  1,
		"Resume": 2,
	}
)

func (x GcCommand) Enum() *GcCommand {
	p := new(GcCommand)
	*p = x
	return p
}

func (x GcCommand) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (GcCommand) Descriptor() protoreflect.EnumDescriptor {
	return file_data_coord_proto_enumTypes[10].Descriptor()
}

func (GcCommand) Type() protoreflect.EnumType {
	return &file_data_coord_proto_enumTypes[10]
}

func (x GcCommand) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use GcCommand.Descriptor instead.
func (GcCommand) EnumDescriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{10}
}

type CompactionTaskState int32

const (
	CompactionTaskState_unknown    CompactionTaskState = 0
	CompactionTaskState_executing  CompactionTaskState = 1
	CompactionTaskState_pipelining CompactionTaskState = 2
	CompactionTaskState_completed  CompactionTaskState = 3
	CompactionTaskState_failed     CompactionTaskState = 4
	CompactionTaskState_timeout    CompactionTaskState = 5
	CompactionTaskState_analyzing  CompactionTaskState = 6
	CompactionTaskState_indexing   CompactionTaskState = 7
	CompactionTaskState_cleaned    CompactionTaskState = 8
	CompactionTaskState_meta_saved CompactionTaskState = 9
	CompactionTaskState_statistic  CompactionTaskState = 10
)

// Enum value maps for CompactionTaskState.
var (
	CompactionTaskState_name = map[int32]string{
		0:  "unknown",
		1:  "executing",
		2:  "pipelining",
		3:  "completed",
		4:  "failed",
		5:  "timeout",
		6:  "analyzing",
		7:  "indexing",
		8:  "cleaned",
		9:  "meta_saved",
		10: "statistic",
	}
	CompactionTaskState_value = map[string]int32{
		"unknown":    0,
		"executing":  1,
		"pipelining": 2,
		"completed":  3,
		"failed":     4,
		"timeout":    5,
		"analyzing":  6,
		"indexing":   7,
		"cleaned":    8,
		"meta_saved": 9,
		"statistic":  10,
	}
)

func (x CompactionTaskState) Enum() *CompactionTaskState {
	p := new(CompactionTaskState)
	*p = x
	return p
}

func (x CompactionTaskState) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (CompactionTaskState) Descriptor() protoreflect.EnumDescriptor {
	return file_data_coord_proto_enumTypes[11].Descriptor()
}

func (CompactionTaskState) Type() protoreflect.EnumType {
	return &file_data_coord_proto_enumTypes[11]
}

func (x CompactionTaskState) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use CompactionTaskState.Descriptor instead.
func (CompactionTaskState) EnumDescriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{11}
}

type SnapshotLayout int32

const (
	SnapshotLayout_SnapshotLayoutUnknown       SnapshotLayout = 0
	SnapshotLayout_SnapshotLayoutReferenced    SnapshotLayout = 1
	SnapshotLayout_SnapshotLayoutSelfContained SnapshotLayout = 2
)

// Enum value maps for SnapshotLayout.
var (
	SnapshotLayout_name = map[int32]string{
		0: "SnapshotLayoutUnknown",
		1: "SnapshotLayoutReferenced",
		2: "SnapshotLayoutSelfContained",
	}
	SnapshotLayout_value = map[string]int32{
		"SnapshotLayoutUnknown":       0,
		"SnapshotLayoutReferenced":    1,
		"SnapshotLayoutSelfContained": 2,
	}
)

func (x SnapshotLayout) Enum() *SnapshotLayout {
	p := new(SnapshotLayout)
	*p = x
	return p
}

func (x SnapshotLayout) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (SnapshotLayout) Descriptor() protoreflect.EnumDescriptor {
	return file_data_coord_proto_enumTypes[12].Descriptor()
}

func (SnapshotLayout) Type() protoreflect.EnumType {
	return &file_data_coord_proto_enumTypes[12]
}

func (x SnapshotLayout) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use SnapshotLayout.Descriptor instead.
func (SnapshotLayout) EnumDescriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{12}
}

// TODO: import google/protobuf/empty.proto
type Empty struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *Empty) Reset() {
	*x = Empty{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Empty) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Empty) ProtoMessage() {}

func (x *Empty) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[0]
	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 Empty.ProtoReflect.Descriptor instead.
func (*Empty) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{0}
}

type FlushRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base         *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	DbID         int64             `protobuf:"varint,2,opt,name=dbID,proto3" json:"dbID,omitempty"`
	SegmentIDs   []int64           `protobuf:"varint,3,rep,packed,name=segmentIDs,proto3" json:"segmentIDs,omitempty"`
	CollectionID int64             `protobuf:"varint,4,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
	IsImport     bool              `protobuf:"varint,5,opt,name=isImport,proto3" json:"isImport,omitempty"` // deprecated
}

func (x *FlushRequest) Reset() {
	*x = FlushRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FlushRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FlushRequest) ProtoMessage() {}

func (x *FlushRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[1]
	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 FlushRequest.ProtoReflect.Descriptor instead.
func (*FlushRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{1}
}

func (x *FlushRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *FlushRequest) GetDbID() int64 {
	if x != nil {
		return x.DbID
	}
	return 0
}

func (x *FlushRequest) GetSegmentIDs() []int64 {
	if x != nil {
		return x.SegmentIDs
	}
	return nil
}

func (x *FlushRequest) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

func (x *FlushRequest) GetIsImport() bool {
	if x != nil {
		return x.IsImport
	}
	return false
}

type FlushResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status          *commonpb.Status              `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	DbID            int64                         `protobuf:"varint,2,opt,name=dbID,proto3" json:"dbID,omitempty"`
	CollectionID    int64                         `protobuf:"varint,3,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
	SegmentIDs      []int64                       `protobuf:"varint,4,rep,packed,name=segmentIDs,proto3" json:"segmentIDs,omitempty"`           // newly sealed segments
	FlushSegmentIDs []int64                       `protobuf:"varint,5,rep,packed,name=flushSegmentIDs,proto3" json:"flushSegmentIDs,omitempty"` // old flushed segment
	TimeOfSeal      int64                         `protobuf:"varint,6,opt,name=timeOfSeal,proto3" json:"timeOfSeal,omitempty"`
	FlushTs         uint64                        `protobuf:"varint,7,opt,name=flush_ts,json=flushTs,proto3" json:"flush_ts,omitempty"`
	ChannelCps      map[string]*msgpb.MsgPosition `protobuf:"bytes,8,rep,name=channel_cps,json=channelCps,proto3" json:"channel_cps,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *FlushResponse) Reset() {
	*x = FlushResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FlushResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FlushResponse) ProtoMessage() {}

func (x *FlushResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[2]
	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 FlushResponse.ProtoReflect.Descriptor instead.
func (*FlushResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{2}
}

func (x *FlushResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *FlushResponse) GetDbID() int64 {
	if x != nil {
		return x.DbID
	}
	return 0
}

func (x *FlushResponse) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

func (x *FlushResponse) GetSegmentIDs() []int64 {
	if x != nil {
		return x.SegmentIDs
	}
	return nil
}

func (x *FlushResponse) GetFlushSegmentIDs() []int64 {
	if x != nil {
		return x.FlushSegmentIDs
	}
	return nil
}

func (x *FlushResponse) GetTimeOfSeal() int64 {
	if x != nil {
		return x.TimeOfSeal
	}
	return 0
}

func (x *FlushResponse) GetFlushTs() uint64 {
	if x != nil {
		return x.FlushTs
	}
	return 0
}

func (x *FlushResponse) GetChannelCps() map[string]*msgpb.MsgPosition {
	if x != nil {
		return x.ChannelCps
	}
	return nil
}

type FlushResult struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CollectionID    int64                         `protobuf:"varint,1,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
	SegmentIDs      []int64                       `protobuf:"varint,2,rep,packed,name=segmentIDs,proto3" json:"segmentIDs,omitempty"`           // newly sealed segments
	FlushSegmentIDs []int64                       `protobuf:"varint,3,rep,packed,name=flushSegmentIDs,proto3" json:"flushSegmentIDs,omitempty"` // old flushed segment
	TimeOfSeal      int64                         `protobuf:"varint,4,opt,name=timeOfSeal,proto3" json:"timeOfSeal,omitempty"`
	FlushTs         uint64                        `protobuf:"varint,5,opt,name=flush_ts,json=flushTs,proto3" json:"flush_ts,omitempty"`
	ChannelCps      map[string]*msgpb.MsgPosition `protobuf:"bytes,6,rep,name=channel_cps,json=channelCps,proto3" json:"channel_cps,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	DbName          string                        `protobuf:"bytes,7,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"`                         // database name for this flush result
	CollectionName  string                        `protobuf:"bytes,8,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // collection name for this flush result
}

func (x *FlushResult) Reset() {
	*x = FlushResult{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FlushResult) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FlushResult) ProtoMessage() {}

func (x *FlushResult) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[3]
	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 FlushResult.ProtoReflect.Descriptor instead.
func (*FlushResult) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{3}
}

func (x *FlushResult) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

func (x *FlushResult) GetSegmentIDs() []int64 {
	if x != nil {
		return x.SegmentIDs
	}
	return nil
}

func (x *FlushResult) GetFlushSegmentIDs() []int64 {
	if x != nil {
		return x.FlushSegmentIDs
	}
	return nil
}

func (x *FlushResult) GetTimeOfSeal() int64 {
	if x != nil {
		return x.TimeOfSeal
	}
	return 0
}

func (x *FlushResult) GetFlushTs() uint64 {
	if x != nil {
		return x.FlushTs
	}
	return 0
}

func (x *FlushResult) GetChannelCps() map[string]*msgpb.MsgPosition {
	if x != nil {
		return x.ChannelCps
	}
	return nil
}

func (x *FlushResult) GetDbName() string {
	if x != nil {
		return x.DbName
	}
	return ""
}

func (x *FlushResult) GetCollectionName() string {
	if x != nil {
		return x.CollectionName
	}
	return ""
}

type FlushAllRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	// Deprecated: Marked as deprecated in data_coord.proto.
	DbName string `protobuf:"bytes,2,opt,name=dbName,proto3" json:"dbName,omitempty"`
	// Deprecated: Marked as deprecated in data_coord.proto.
	FlushTargets []*FlushAllTarget `protobuf:"bytes,3,rep,name=flush_targets,json=flushTargets,proto3" json:"flush_targets,omitempty"`
}

func (x *FlushAllRequest) Reset() {
	*x = FlushAllRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FlushAllRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FlushAllRequest) ProtoMessage() {}

func (x *FlushAllRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[4]
	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 FlushAllRequest.ProtoReflect.Descriptor instead.
func (*FlushAllRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{4}
}

func (x *FlushAllRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

// Deprecated: Marked as deprecated in data_coord.proto.
func (x *FlushAllRequest) GetDbName() string {
	if x != nil {
		return x.DbName
	}
	return ""
}

// Deprecated: Marked as deprecated in data_coord.proto.
func (x *FlushAllRequest) GetFlushTargets() []*FlushAllTarget {
	if x != nil {
		return x.FlushTargets
	}
	return nil
}

// Deprecated: FlushAll semantics changed to flushing the entire cluster.
// Specific collection to flush with database context
// This message allows targeting specific collections within a database for flush operations
type FlushAllTarget struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Database name to target for flush operation
	DbName string `protobuf:"bytes,1,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"`
	// Collections within this database to flush
	// If empty, flush all collections in this database
	CollectionIds []int64 `protobuf:"varint,3,rep,packed,name=collection_ids,json=collectionIds,proto3" json:"collection_ids,omitempty"`
}

func (x *FlushAllTarget) Reset() {
	*x = FlushAllTarget{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FlushAllTarget) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FlushAllTarget) ProtoMessage() {}

func (x *FlushAllTarget) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[5]
	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 FlushAllTarget.ProtoReflect.Descriptor instead.
func (*FlushAllTarget) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{5}
}

func (x *FlushAllTarget) GetDbName() string {
	if x != nil {
		return x.DbName
	}
	return ""
}

func (x *FlushAllTarget) GetCollectionIds() []int64 {
	if x != nil {
		return x.CollectionIds
	}
	return nil
}

type FlushAllResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	// Deprecated: Marked as deprecated in data_coord.proto.
	FlushTs uint64 `protobuf:"varint,2,opt,name=flushTs,proto3" json:"flushTs,omitempty"`
	// Deprecated: Marked as deprecated in data_coord.proto.
	FlushResults []*FlushResult                        `protobuf:"bytes,3,rep,name=flush_results,json=flushResults,proto3" json:"flush_results,omitempty"`
	FlushAllMsgs map[string]*commonpb.ImmutableMessage `protobuf:"bytes,4,rep,name=flush_all_msgs,json=flushAllMsgs,proto3" json:"flush_all_msgs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // pchannel -> FlushAllMsg
	ClusterInfo  *milvuspb.ClusterInfo                 `protobuf:"bytes,5,opt,name=cluster_info,json=clusterInfo,proto3" json:"cluster_info,omitempty"`
}

func (x *FlushAllResponse) Reset() {
	*x = FlushAllResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FlushAllResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FlushAllResponse) ProtoMessage() {}

func (x *FlushAllResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[6]
	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 FlushAllResponse.ProtoReflect.Descriptor instead.
func (*FlushAllResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{6}
}

func (x *FlushAllResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

// Deprecated: Marked as deprecated in data_coord.proto.
func (x *FlushAllResponse) GetFlushTs() uint64 {
	if x != nil {
		return x.FlushTs
	}
	return 0
}

// Deprecated: Marked as deprecated in data_coord.proto.
func (x *FlushAllResponse) GetFlushResults() []*FlushResult {
	if x != nil {
		return x.FlushResults
	}
	return nil
}

func (x *FlushAllResponse) GetFlushAllMsgs() map[string]*commonpb.ImmutableMessage {
	if x != nil {
		return x.FlushAllMsgs
	}
	return nil
}

func (x *FlushAllResponse) GetClusterInfo() *milvuspb.ClusterInfo {
	if x != nil {
		return x.ClusterInfo
	}
	return nil
}

type FlushChannelsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base     *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	FlushTs  uint64            `protobuf:"varint,2,opt,name=flush_ts,json=flushTs,proto3" json:"flush_ts,omitempty"`
	Channels []string          `protobuf:"bytes,3,rep,name=channels,proto3" json:"channels,omitempty"`
}

func (x *FlushChannelsRequest) Reset() {
	*x = FlushChannelsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FlushChannelsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FlushChannelsRequest) ProtoMessage() {}

func (x *FlushChannelsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[7]
	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 FlushChannelsRequest.ProtoReflect.Descriptor instead.
func (*FlushChannelsRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{7}
}

func (x *FlushChannelsRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *FlushChannelsRequest) GetFlushTs() uint64 {
	if x != nil {
		return x.FlushTs
	}
	return 0
}

func (x *FlushChannelsRequest) GetChannels() []string {
	if x != nil {
		return x.Channels
	}
	return nil
}

type SegmentIDRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Count          uint32       `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"`
	ChannelName    string       `protobuf:"bytes,2,opt,name=channel_name,json=channelName,proto3" json:"channel_name,omitempty"`
	CollectionID   int64        `protobuf:"varint,3,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
	PartitionID    int64        `protobuf:"varint,4,opt,name=partitionID,proto3" json:"partitionID,omitempty"`
	IsImport       bool         `protobuf:"varint,5,opt,name=isImport,proto3" json:"isImport,omitempty"`                               // deprecated
	ImportTaskID   int64        `protobuf:"varint,6,opt,name=importTaskID,proto3" json:"importTaskID,omitempty"`                       // deprecated
	Level          SegmentLevel `protobuf:"varint,7,opt,name=level,proto3,enum=milvus.proto.data.SegmentLevel" json:"level,omitempty"` // deprecated
	StorageVersion int64        `protobuf:"varint,8,opt,name=storage_version,json=storageVersion,proto3" json:"storage_version,omitempty"`
}

func (x *SegmentIDRequest) Reset() {
	*x = SegmentIDRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SegmentIDRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SegmentIDRequest) ProtoMessage() {}

func (x *SegmentIDRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[8]
	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 SegmentIDRequest.ProtoReflect.Descriptor instead.
func (*SegmentIDRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{8}
}

func (x *SegmentIDRequest) GetCount() uint32 {
	if x != nil {
		return x.Count
	}
	return 0
}

func (x *SegmentIDRequest) GetChannelName() string {
	if x != nil {
		return x.ChannelName
	}
	return ""
}

func (x *SegmentIDRequest) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

func (x *SegmentIDRequest) GetPartitionID() int64 {
	if x != nil {
		return x.PartitionID
	}
	return 0
}

func (x *SegmentIDRequest) GetIsImport() bool {
	if x != nil {
		return x.IsImport
	}
	return false
}

func (x *SegmentIDRequest) GetImportTaskID() int64 {
	if x != nil {
		return x.ImportTaskID
	}
	return 0
}

func (x *SegmentIDRequest) GetLevel() SegmentLevel {
	if x != nil {
		return x.Level
	}
	return SegmentLevel_Legacy
}

func (x *SegmentIDRequest) GetStorageVersion() int64 {
	if x != nil {
		return x.StorageVersion
	}
	return 0
}

type AllocSegmentRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CollectionId         int64  `protobuf:"varint,1,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`
	PartitionId          int64  `protobuf:"varint,2,opt,name=partition_id,json=partitionId,proto3" json:"partition_id,omitempty"`
	SegmentId            int64  `protobuf:"varint,3,opt,name=segment_id,json=segmentId,proto3" json:"segment_id,omitempty"` // segment id must be allocate from rootcoord idalloc service.
	Vchannel             string `protobuf:"bytes,4,opt,name=vchannel,proto3" json:"vchannel,omitempty"`
	StorageVersion       int64  `protobuf:"varint,5,opt,name=storage_version,json=storageVersion,proto3" json:"storage_version,omitempty"`
	IsCreatedByStreaming bool   `protobuf:"varint,6,opt,name=is_created_by_streaming,json=isCreatedByStreaming,proto3" json:"is_created_by_streaming,omitempty"`
	SchemaVersion        int32  `protobuf:"varint,7,opt,name=schema_version,json=schemaVersion,proto3" json:"schema_version,omitempty"`
}

func (x *AllocSegmentRequest) Reset() {
	*x = AllocSegmentRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AllocSegmentRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AllocSegmentRequest) ProtoMessage() {}

func (x *AllocSegmentRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[9]
	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 AllocSegmentRequest.ProtoReflect.Descriptor instead.
func (*AllocSegmentRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{9}
}

func (x *AllocSegmentRequest) GetCollectionId() int64 {
	if x != nil {
		return x.CollectionId
	}
	return 0
}

func (x *AllocSegmentRequest) GetPartitionId() int64 {
	if x != nil {
		return x.PartitionId
	}
	return 0
}

func (x *AllocSegmentRequest) GetSegmentId() int64 {
	if x != nil {
		return x.SegmentId
	}
	return 0
}

func (x *AllocSegmentRequest) GetVchannel() string {
	if x != nil {
		return x.Vchannel
	}
	return ""
}

func (x *AllocSegmentRequest) GetStorageVersion() int64 {
	if x != nil {
		return x.StorageVersion
	}
	return 0
}

func (x *AllocSegmentRequest) GetIsCreatedByStreaming() bool {
	if x != nil {
		return x.IsCreatedByStreaming
	}
	return false
}

func (x *AllocSegmentRequest) GetSchemaVersion() int32 {
	if x != nil {
		return x.SchemaVersion
	}
	return 0
}

type AllocSegmentResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SegmentInfo *SegmentInfo     `protobuf:"bytes,1,opt,name=segment_info,json=segmentInfo,proto3" json:"segment_info,omitempty"`
	Status      *commonpb.Status `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
}

func (x *AllocSegmentResponse) Reset() {
	*x = AllocSegmentResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AllocSegmentResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AllocSegmentResponse) ProtoMessage() {}

func (x *AllocSegmentResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[10]
	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 AllocSegmentResponse.ProtoReflect.Descriptor instead.
func (*AllocSegmentResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{10}
}

func (x *AllocSegmentResponse) GetSegmentInfo() *SegmentInfo {
	if x != nil {
		return x.SegmentInfo
	}
	return nil
}

func (x *AllocSegmentResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

type AssignSegmentIDRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NodeID            int64               `protobuf:"varint,1,opt,name=nodeID,proto3" json:"nodeID,omitempty"`
	PeerRole          string              `protobuf:"bytes,2,opt,name=peer_role,json=peerRole,proto3" json:"peer_role,omitempty"`
	SegmentIDRequests []*SegmentIDRequest `protobuf:"bytes,3,rep,name=segmentIDRequests,proto3" json:"segmentIDRequests,omitempty"`
}

func (x *AssignSegmentIDRequest) Reset() {
	*x = AssignSegmentIDRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AssignSegmentIDRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AssignSegmentIDRequest) ProtoMessage() {}

func (x *AssignSegmentIDRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[11]
	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 AssignSegmentIDRequest.ProtoReflect.Descriptor instead.
func (*AssignSegmentIDRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{11}
}

func (x *AssignSegmentIDRequest) GetNodeID() int64 {
	if x != nil {
		return x.NodeID
	}
	return 0
}

func (x *AssignSegmentIDRequest) GetPeerRole() string {
	if x != nil {
		return x.PeerRole
	}
	return ""
}

func (x *AssignSegmentIDRequest) GetSegmentIDRequests() []*SegmentIDRequest {
	if x != nil {
		return x.SegmentIDRequests
	}
	return nil
}

type SegmentIDAssignment struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SegID        int64            `protobuf:"varint,1,opt,name=segID,proto3" json:"segID,omitempty"`
	ChannelName  string           `protobuf:"bytes,2,opt,name=channel_name,json=channelName,proto3" json:"channel_name,omitempty"`
	Count        uint32           `protobuf:"varint,3,opt,name=count,proto3" json:"count,omitempty"`
	CollectionID int64            `protobuf:"varint,4,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
	PartitionID  int64            `protobuf:"varint,5,opt,name=partitionID,proto3" json:"partitionID,omitempty"`
	ExpireTime   uint64           `protobuf:"varint,6,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"`
	Status       *commonpb.Status `protobuf:"bytes,7,opt,name=status,proto3" json:"status,omitempty"`
}

func (x *SegmentIDAssignment) Reset() {
	*x = SegmentIDAssignment{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SegmentIDAssignment) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SegmentIDAssignment) ProtoMessage() {}

func (x *SegmentIDAssignment) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[12]
	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 SegmentIDAssignment.ProtoReflect.Descriptor instead.
func (*SegmentIDAssignment) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{12}
}

func (x *SegmentIDAssignment) GetSegID() int64 {
	if x != nil {
		return x.SegID
	}
	return 0
}

func (x *SegmentIDAssignment) GetChannelName() string {
	if x != nil {
		return x.ChannelName
	}
	return ""
}

func (x *SegmentIDAssignment) GetCount() uint32 {
	if x != nil {
		return x.Count
	}
	return 0
}

func (x *SegmentIDAssignment) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

func (x *SegmentIDAssignment) GetPartitionID() int64 {
	if x != nil {
		return x.PartitionID
	}
	return 0
}

func (x *SegmentIDAssignment) GetExpireTime() uint64 {
	if x != nil {
		return x.ExpireTime
	}
	return 0
}

func (x *SegmentIDAssignment) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

type AssignSegmentIDResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SegIDAssignments []*SegmentIDAssignment `protobuf:"bytes,1,rep,name=segIDAssignments,proto3" json:"segIDAssignments,omitempty"`
	Status           *commonpb.Status       `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
}

func (x *AssignSegmentIDResponse) Reset() {
	*x = AssignSegmentIDResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AssignSegmentIDResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AssignSegmentIDResponse) ProtoMessage() {}

func (x *AssignSegmentIDResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[13]
	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 AssignSegmentIDResponse.ProtoReflect.Descriptor instead.
func (*AssignSegmentIDResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{13}
}

func (x *AssignSegmentIDResponse) GetSegIDAssignments() []*SegmentIDAssignment {
	if x != nil {
		return x.SegIDAssignments
	}
	return nil
}

func (x *AssignSegmentIDResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

type GetSegmentStatesRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base       *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	SegmentIDs []int64           `protobuf:"varint,2,rep,packed,name=segmentIDs,proto3" json:"segmentIDs,omitempty"`
}

func (x *GetSegmentStatesRequest) Reset() {
	*x = GetSegmentStatesRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetSegmentStatesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetSegmentStatesRequest) ProtoMessage() {}

func (x *GetSegmentStatesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[14]
	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 GetSegmentStatesRequest.ProtoReflect.Descriptor instead.
func (*GetSegmentStatesRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{14}
}

func (x *GetSegmentStatesRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *GetSegmentStatesRequest) GetSegmentIDs() []int64 {
	if x != nil {
		return x.SegmentIDs
	}
	return nil
}

type SegmentStateInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SegmentID     int64                 `protobuf:"varint,1,opt,name=segmentID,proto3" json:"segmentID,omitempty"`
	State         commonpb.SegmentState `protobuf:"varint,2,opt,name=state,proto3,enum=milvus.proto.common.SegmentState" json:"state,omitempty"`
	StartPosition *msgpb.MsgPosition    `protobuf:"bytes,3,opt,name=start_position,json=startPosition,proto3" json:"start_position,omitempty"`
	EndPosition   *msgpb.MsgPosition    `protobuf:"bytes,4,opt,name=end_position,json=endPosition,proto3" json:"end_position,omitempty"`
	Status        *commonpb.Status      `protobuf:"bytes,5,opt,name=status,proto3" json:"status,omitempty"`
}

func (x *SegmentStateInfo) Reset() {
	*x = SegmentStateInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SegmentStateInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SegmentStateInfo) ProtoMessage() {}

func (x *SegmentStateInfo) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[15]
	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 SegmentStateInfo.ProtoReflect.Descriptor instead.
func (*SegmentStateInfo) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{15}
}

func (x *SegmentStateInfo) GetSegmentID() int64 {
	if x != nil {
		return x.SegmentID
	}
	return 0
}

func (x *SegmentStateInfo) GetState() commonpb.SegmentState {
	if x != nil {
		return x.State
	}
	return commonpb.SegmentState(0)
}

func (x *SegmentStateInfo) GetStartPosition() *msgpb.MsgPosition {
	if x != nil {
		return x.StartPosition
	}
	return nil
}

func (x *SegmentStateInfo) GetEndPosition() *msgpb.MsgPosition {
	if x != nil {
		return x.EndPosition
	}
	return nil
}

func (x *SegmentStateInfo) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

type GetSegmentStatesResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status *commonpb.Status    `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	States []*SegmentStateInfo `protobuf:"bytes,2,rep,name=states,proto3" json:"states,omitempty"`
}

func (x *GetSegmentStatesResponse) Reset() {
	*x = GetSegmentStatesResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetSegmentStatesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetSegmentStatesResponse) ProtoMessage() {}

func (x *GetSegmentStatesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[16]
	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 GetSegmentStatesResponse.ProtoReflect.Descriptor instead.
func (*GetSegmentStatesResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{16}
}

func (x *GetSegmentStatesResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *GetSegmentStatesResponse) GetStates() []*SegmentStateInfo {
	if x != nil {
		return x.States
	}
	return nil
}

type GetSegmentInfoRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base             *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	SegmentIDs       []int64           `protobuf:"varint,2,rep,packed,name=segmentIDs,proto3" json:"segmentIDs,omitempty"`
	IncludeUnHealthy bool              `protobuf:"varint,3,opt,name=includeUnHealthy,proto3" json:"includeUnHealthy,omitempty"`
}

func (x *GetSegmentInfoRequest) Reset() {
	*x = GetSegmentInfoRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetSegmentInfoRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetSegmentInfoRequest) ProtoMessage() {}

func (x *GetSegmentInfoRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[17]
	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 GetSegmentInfoRequest.ProtoReflect.Descriptor instead.
func (*GetSegmentInfoRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{17}
}

func (x *GetSegmentInfoRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *GetSegmentInfoRequest) GetSegmentIDs() []int64 {
	if x != nil {
		return x.SegmentIDs
	}
	return nil
}

func (x *GetSegmentInfoRequest) GetIncludeUnHealthy() bool {
	if x != nil {
		return x.IncludeUnHealthy
	}
	return false
}

type GetSegmentInfoResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status            *commonpb.Status              `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	Infos             []*SegmentInfo                `protobuf:"bytes,2,rep,name=infos,proto3" json:"infos,omitempty"`
	ChannelCheckpoint map[string]*msgpb.MsgPosition `protobuf:"bytes,3,rep,name=channel_checkpoint,json=channelCheckpoint,proto3" json:"channel_checkpoint,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *GetSegmentInfoResponse) Reset() {
	*x = GetSegmentInfoResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetSegmentInfoResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetSegmentInfoResponse) ProtoMessage() {}

func (x *GetSegmentInfoResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[18]
	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 GetSegmentInfoResponse.ProtoReflect.Descriptor instead.
func (*GetSegmentInfoResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{18}
}

func (x *GetSegmentInfoResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *GetSegmentInfoResponse) GetInfos() []*SegmentInfo {
	if x != nil {
		return x.Infos
	}
	return nil
}

func (x *GetSegmentInfoResponse) GetChannelCheckpoint() map[string]*msgpb.MsgPosition {
	if x != nil {
		return x.ChannelCheckpoint
	}
	return nil
}

type GetInsertBinlogPathsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base      *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	SegmentID int64             `protobuf:"varint,2,opt,name=segmentID,proto3" json:"segmentID,omitempty"`
}

func (x *GetInsertBinlogPathsRequest) Reset() {
	*x = GetInsertBinlogPathsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetInsertBinlogPathsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetInsertBinlogPathsRequest) ProtoMessage() {}

func (x *GetInsertBinlogPathsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[19]
	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 GetInsertBinlogPathsRequest.ProtoReflect.Descriptor instead.
func (*GetInsertBinlogPathsRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{19}
}

func (x *GetInsertBinlogPathsRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *GetInsertBinlogPathsRequest) GetSegmentID() int64 {
	if x != nil {
		return x.SegmentID
	}
	return 0
}

type GetInsertBinlogPathsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	FieldIDs []int64                  `protobuf:"varint,1,rep,packed,name=fieldIDs,proto3" json:"fieldIDs,omitempty"`
	Paths    []*internalpb.StringList `protobuf:"bytes,2,rep,name=paths,proto3" json:"paths,omitempty"`
	Status   *commonpb.Status         `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
}

func (x *GetInsertBinlogPathsResponse) Reset() {
	*x = GetInsertBinlogPathsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetInsertBinlogPathsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetInsertBinlogPathsResponse) ProtoMessage() {}

func (x *GetInsertBinlogPathsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[20]
	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 GetInsertBinlogPathsResponse.ProtoReflect.Descriptor instead.
func (*GetInsertBinlogPathsResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{20}
}

func (x *GetInsertBinlogPathsResponse) GetFieldIDs() []int64 {
	if x != nil {
		return x.FieldIDs
	}
	return nil
}

func (x *GetInsertBinlogPathsResponse) GetPaths() []*internalpb.StringList {
	if x != nil {
		return x.Paths
	}
	return nil
}

func (x *GetInsertBinlogPathsResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

type GetCollectionStatisticsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base         *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	DbID         int64             `protobuf:"varint,2,opt,name=dbID,proto3" json:"dbID,omitempty"`
	CollectionID int64             `protobuf:"varint,3,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
}

func (x *GetCollectionStatisticsRequest) Reset() {
	*x = GetCollectionStatisticsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetCollectionStatisticsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetCollectionStatisticsRequest) ProtoMessage() {}

func (x *GetCollectionStatisticsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[21]
	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 GetCollectionStatisticsRequest.ProtoReflect.Descriptor instead.
func (*GetCollectionStatisticsRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{21}
}

func (x *GetCollectionStatisticsRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *GetCollectionStatisticsRequest) GetDbID() int64 {
	if x != nil {
		return x.DbID
	}
	return 0
}

func (x *GetCollectionStatisticsRequest) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

type GetCollectionStatisticsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Stats  []*commonpb.KeyValuePair `protobuf:"bytes,1,rep,name=stats,proto3" json:"stats,omitempty"`
	Status *commonpb.Status         `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
}

func (x *GetCollectionStatisticsResponse) Reset() {
	*x = GetCollectionStatisticsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetCollectionStatisticsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetCollectionStatisticsResponse) ProtoMessage() {}

func (x *GetCollectionStatisticsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[22]
	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 GetCollectionStatisticsResponse.ProtoReflect.Descriptor instead.
func (*GetCollectionStatisticsResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{22}
}

func (x *GetCollectionStatisticsResponse) GetStats() []*commonpb.KeyValuePair {
	if x != nil {
		return x.Stats
	}
	return nil
}

func (x *GetCollectionStatisticsResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

type GetPartitionStatisticsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base         *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	DbID         int64             `protobuf:"varint,2,opt,name=dbID,proto3" json:"dbID,omitempty"`
	CollectionID int64             `protobuf:"varint,3,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
	PartitionIDs []int64           `protobuf:"varint,4,rep,packed,name=partitionIDs,proto3" json:"partitionIDs,omitempty"`
}

func (x *GetPartitionStatisticsRequest) Reset() {
	*x = GetPartitionStatisticsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetPartitionStatisticsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetPartitionStatisticsRequest) ProtoMessage() {}

func (x *GetPartitionStatisticsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[23]
	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 GetPartitionStatisticsRequest.ProtoReflect.Descriptor instead.
func (*GetPartitionStatisticsRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{23}
}

func (x *GetPartitionStatisticsRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *GetPartitionStatisticsRequest) GetDbID() int64 {
	if x != nil {
		return x.DbID
	}
	return 0
}

func (x *GetPartitionStatisticsRequest) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

func (x *GetPartitionStatisticsRequest) GetPartitionIDs() []int64 {
	if x != nil {
		return x.PartitionIDs
	}
	return nil
}

type GetPartitionStatisticsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Stats  []*commonpb.KeyValuePair `protobuf:"bytes,1,rep,name=stats,proto3" json:"stats,omitempty"`
	Status *commonpb.Status         `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
}

func (x *GetPartitionStatisticsResponse) Reset() {
	*x = GetPartitionStatisticsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetPartitionStatisticsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetPartitionStatisticsResponse) ProtoMessage() {}

func (x *GetPartitionStatisticsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[24]
	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 GetPartitionStatisticsResponse.ProtoReflect.Descriptor instead.
func (*GetPartitionStatisticsResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{24}
}

func (x *GetPartitionStatisticsResponse) GetStats() []*commonpb.KeyValuePair {
	if x != nil {
		return x.Stats
	}
	return nil
}

func (x *GetPartitionStatisticsResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

type GetSegmentInfoChannelRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *GetSegmentInfoChannelRequest) Reset() {
	*x = GetSegmentInfoChannelRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[25]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetSegmentInfoChannelRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetSegmentInfoChannelRequest) ProtoMessage() {}

func (x *GetSegmentInfoChannelRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[25]
	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 GetSegmentInfoChannelRequest.ProtoReflect.Descriptor instead.
func (*GetSegmentInfoChannelRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{25}
}

type VchannelInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CollectionID int64              `protobuf:"varint,1,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
	ChannelName  string             `protobuf:"bytes,2,opt,name=channelName,proto3" json:"channelName,omitempty"`
	SeekPosition *msgpb.MsgPosition `protobuf:"bytes,3,opt,name=seek_position,json=seekPosition,proto3" json:"seek_position,omitempty"`
	// Deprecated: Marked as deprecated in data_coord.proto.
	UnflushedSegments []*SegmentInfo `protobuf:"bytes,4,rep,name=unflushedSegments,proto3" json:"unflushedSegments,omitempty"` // deprecated, keep it for compatibility
	// Deprecated: Marked as deprecated in data_coord.proto.
	FlushedSegments []*SegmentInfo `protobuf:"bytes,5,rep,name=flushedSegments,proto3" json:"flushedSegments,omitempty"` // deprecated, keep it for compatibility
	// Deprecated: Marked as deprecated in data_coord.proto.
	DroppedSegments        []*SegmentInfo  `protobuf:"bytes,6,rep,name=dropped_segments,json=droppedSegments,proto3" json:"dropped_segments,omitempty"` // deprecated, keep it for compatibility
	UnflushedSegmentIds    []int64         `protobuf:"varint,7,rep,packed,name=unflushedSegmentIds,proto3" json:"unflushedSegmentIds,omitempty"`
	FlushedSegmentIds      []int64         `protobuf:"varint,8,rep,packed,name=flushedSegmentIds,proto3" json:"flushedSegmentIds,omitempty"`
	DroppedSegmentIds      []int64         `protobuf:"varint,9,rep,packed,name=dropped_segmentIds,json=droppedSegmentIds,proto3" json:"dropped_segmentIds,omitempty"`
	IndexedSegmentIds      []int64         `protobuf:"varint,10,rep,packed,name=indexed_segmentIds,json=indexedSegmentIds,proto3" json:"indexed_segmentIds,omitempty"` // deprecated, keep it for compatibility
	IndexedSegments        []*SegmentInfo  `protobuf:"bytes,11,rep,name=indexed_segments,json=indexedSegments,proto3" json:"indexed_segments,omitempty"`               // deprecated, keep it for compatibility
	LevelZeroSegmentIds    []int64         `protobuf:"varint,12,rep,packed,name=level_zero_segment_ids,json=levelZeroSegmentIds,proto3" json:"level_zero_segment_ids,omitempty"`
	PartitionStatsVersions map[int64]int64 `protobuf:"bytes,13,rep,name=partition_stats_versions,json=partitionStatsVersions,proto3" json:"partition_stats_versions,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
	// delete record which ts is smaller than delete_checkpoint already be dispatch to sealed segments.
	DeleteCheckpoint *msgpb.MsgPosition `protobuf:"bytes,14,opt,name=delete_checkpoint,json=deleteCheckpoint,proto3" json:"delete_checkpoint,omitempty"`
}

func (x *VchannelInfo) Reset() {
	*x = VchannelInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[26]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *VchannelInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*VchannelInfo) ProtoMessage() {}

func (x *VchannelInfo) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[26]
	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 VchannelInfo.ProtoReflect.Descriptor instead.
func (*VchannelInfo) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{26}
}

func (x *VchannelInfo) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

func (x *VchannelInfo) GetChannelName() string {
	if x != nil {
		return x.ChannelName
	}
	return ""
}

func (x *VchannelInfo) GetSeekPosition() *msgpb.MsgPosition {
	if x != nil {
		return x.SeekPosition
	}
	return nil
}

// Deprecated: Marked as deprecated in data_coord.proto.
func (x *VchannelInfo) GetUnflushedSegments() []*SegmentInfo {
	if x != nil {
		return x.UnflushedSegments
	}
	return nil
}

// Deprecated: Marked as deprecated in data_coord.proto.
func (x *VchannelInfo) GetFlushedSegments() []*SegmentInfo {
	if x != nil {
		return x.FlushedSegments
	}
	return nil
}

// Deprecated: Marked as deprecated in data_coord.proto.
func (x *VchannelInfo) GetDroppedSegments() []*SegmentInfo {
	if x != nil {
		return x.DroppedSegments
	}
	return nil
}

func (x *VchannelInfo) GetUnflushedSegmentIds() []int64 {
	if x != nil {
		return x.UnflushedSegmentIds
	}
	return nil
}

func (x *VchannelInfo) GetFlushedSegmentIds() []int64 {
	if x != nil {
		return x.FlushedSegmentIds
	}
	return nil
}

func (x *VchannelInfo) GetDroppedSegmentIds() []int64 {
	if x != nil {
		return x.DroppedSegmentIds
	}
	return nil
}

func (x *VchannelInfo) GetIndexedSegmentIds() []int64 {
	if x != nil {
		return x.IndexedSegmentIds
	}
	return nil
}

func (x *VchannelInfo) GetIndexedSegments() []*SegmentInfo {
	if x != nil {
		return x.IndexedSegments
	}
	return nil
}

func (x *VchannelInfo) GetLevelZeroSegmentIds() []int64 {
	if x != nil {
		return x.LevelZeroSegmentIds
	}
	return nil
}

func (x *VchannelInfo) GetPartitionStatsVersions() map[int64]int64 {
	if x != nil {
		return x.PartitionStatsVersions
	}
	return nil
}

func (x *VchannelInfo) GetDeleteCheckpoint() *msgpb.MsgPosition {
	if x != nil {
		return x.DeleteCheckpoint
	}
	return nil
}

type WatchDmChannelsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base      *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	Vchannels []*VchannelInfo   `protobuf:"bytes,2,rep,name=vchannels,proto3" json:"vchannels,omitempty"`
}

func (x *WatchDmChannelsRequest) Reset() {
	*x = WatchDmChannelsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[27]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WatchDmChannelsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WatchDmChannelsRequest) ProtoMessage() {}

func (x *WatchDmChannelsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[27]
	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 WatchDmChannelsRequest.ProtoReflect.Descriptor instead.
func (*WatchDmChannelsRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{27}
}

func (x *WatchDmChannelsRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *WatchDmChannelsRequest) GetVchannels() []*VchannelInfo {
	if x != nil {
		return x.Vchannels
	}
	return nil
}

type FlushSegmentsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base         *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	DbID         int64             `protobuf:"varint,2,opt,name=dbID,proto3" json:"dbID,omitempty"`
	CollectionID int64             `protobuf:"varint,3,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
	SegmentIDs   []int64           `protobuf:"varint,4,rep,packed,name=segmentIDs,proto3" json:"segmentIDs,omitempty"` // segments to flush
	ChannelName  string            `protobuf:"bytes,5,opt,name=channelName,proto3" json:"channelName,omitempty"`       // vchannel name to flush
}

func (x *FlushSegmentsRequest) Reset() {
	*x = FlushSegmentsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[28]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FlushSegmentsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FlushSegmentsRequest) ProtoMessage() {}

func (x *FlushSegmentsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_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 FlushSegmentsRequest.ProtoReflect.Descriptor instead.
func (*FlushSegmentsRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{28}
}

func (x *FlushSegmentsRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *FlushSegmentsRequest) GetDbID() int64 {
	if x != nil {
		return x.DbID
	}
	return 0
}

func (x *FlushSegmentsRequest) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

func (x *FlushSegmentsRequest) GetSegmentIDs() []int64 {
	if x != nil {
		return x.SegmentIDs
	}
	return nil
}

func (x *FlushSegmentsRequest) GetChannelName() string {
	if x != nil {
		return x.ChannelName
	}
	return ""
}

type SegmentMsg struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base    *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	Segment *SegmentInfo      `protobuf:"bytes,2,opt,name=segment,proto3" json:"segment,omitempty"`
}

func (x *SegmentMsg) Reset() {
	*x = SegmentMsg{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[29]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SegmentMsg) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SegmentMsg) ProtoMessage() {}

func (x *SegmentMsg) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[29]
	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 SegmentMsg.ProtoReflect.Descriptor instead.
func (*SegmentMsg) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{29}
}

func (x *SegmentMsg) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *SegmentMsg) GetSegment() *SegmentInfo {
	if x != nil {
		return x.Segment
	}
	return nil
}

type SegmentInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ID            int64                 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	CollectionID  int64                 `protobuf:"varint,2,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
	PartitionID   int64                 `protobuf:"varint,3,opt,name=partitionID,proto3" json:"partitionID,omitempty"`
	InsertChannel string                `protobuf:"bytes,4,opt,name=insert_channel,json=insertChannel,proto3" json:"insert_channel,omitempty"`
	NumOfRows     int64                 `protobuf:"varint,5,opt,name=num_of_rows,json=numOfRows,proto3" json:"num_of_rows,omitempty"`
	State         commonpb.SegmentState `protobuf:"varint,6,opt,name=state,proto3,enum=milvus.proto.common.SegmentState" json:"state,omitempty"`
	// Deprecated: Marked as deprecated in data_coord.proto.
	MaxRowNum      int64              `protobuf:"varint,7,opt,name=max_row_num,json=maxRowNum,proto3" json:"max_row_num,omitempty"` // deprecated, we use the binary size to control the segment size but not a estimate rows.
	LastExpireTime uint64             `protobuf:"varint,8,opt,name=last_expire_time,json=lastExpireTime,proto3" json:"last_expire_time,omitempty"`
	StartPosition  *msgpb.MsgPosition `protobuf:"bytes,9,opt,name=start_position,json=startPosition,proto3" json:"start_position,omitempty"`
	DmlPosition    *msgpb.MsgPosition `protobuf:"bytes,10,opt,name=dml_position,json=dmlPosition,proto3" json:"dml_position,omitempty"`
	// binlogs consist of insert binlogs
	Binlogs   []*FieldBinlog `protobuf:"bytes,11,rep,name=binlogs,proto3" json:"binlogs,omitempty"`
	Statslogs []*FieldBinlog `protobuf:"bytes,12,rep,name=statslogs,proto3" json:"statslogs,omitempty"`
	// deltalogs consists of delete binlogs. FieldID is not used yet since delete is always applied on primary key
	Deltalogs           []*FieldBinlog `protobuf:"bytes,13,rep,name=deltalogs,proto3" json:"deltalogs,omitempty"`
	CreatedByCompaction bool           `protobuf:"varint,14,opt,name=createdByCompaction,proto3" json:"createdByCompaction,omitempty"`
	CompactionFrom      []int64        `protobuf:"varint,15,rep,packed,name=compactionFrom,proto3" json:"compactionFrom,omitempty"`
	DroppedAt           uint64         `protobuf:"varint,16,opt,name=dropped_at,json=droppedAt,proto3" json:"dropped_at,omitempty"` // timestamp when segment marked drop
	// A flag indicating if:
	// (1) this segment is created by bulk insert, and
	// (2) the bulk insert task that creates this segment has not yet reached `ImportCompleted` state.
	IsImporting bool `protobuf:"varint,17,opt,name=is_importing,json=isImporting,proto3" json:"is_importing,omitempty"`
	IsFake      bool `protobuf:"varint,18,opt,name=is_fake,json=isFake,proto3" json:"is_fake,omitempty"`
	// denote if this segment is compacted to other segment.
	// For compatibility reasons, this flag of an old compacted segment may still be False.
	// As for new fields added in the message, they will be populated with their respective field types' default values.
	Compacted bool `protobuf:"varint,19,opt,name=compacted,proto3" json:"compacted,omitempty"`
	// Segment level, indicating compaction segment level
	// Available value: Legacy, L0, L1, L2
	// For legacy level, it represent old segment before segment level introduced
	// so segments with Legacy level shall be treated as L1 segment
	Level                 SegmentLevel `protobuf:"varint,20,opt,name=level,proto3,enum=milvus.proto.data.SegmentLevel" json:"level,omitempty"`
	StorageVersion        int64        `protobuf:"varint,21,opt,name=storage_version,json=storageVersion,proto3" json:"storage_version,omitempty"`
	PartitionStatsVersion int64        `protobuf:"varint,22,opt,name=partition_stats_version,json=partitionStatsVersion,proto3" json:"partition_stats_version,omitempty"`
	// use in major compaction, if compaction fail, should revert segment level to last value
	LastLevel SegmentLevel `protobuf:"varint,23,opt,name=last_level,json=lastLevel,proto3,enum=milvus.proto.data.SegmentLevel" json:"last_level,omitempty"`
	// use in major compaction, if compaction fail, should revert partition stats version to last value
	LastPartitionStatsVersion int64 `protobuf:"varint,24,opt,name=last_partition_stats_version,json=lastPartitionStatsVersion,proto3" json:"last_partition_stats_version,omitempty"`
	// used to indicate whether the segment is sorted by primary key.
	IsSorted bool `protobuf:"varint,25,opt,name=is_sorted,json=isSorted,proto3" json:"is_sorted,omitempty"`
	// textStatsLogs is used to record tokenization index for fields.
	TextStatsLogs map[int64]*TextIndexStats `protobuf:"bytes,26,rep,name=textStatsLogs,proto3" json:"textStatsLogs,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	Bm25Statslogs []*FieldBinlog            `protobuf:"bytes,27,rep,name=bm25statslogs,proto3" json:"bm25statslogs,omitempty"`
	// This field is used to indicate that some intermediate state segments should not be loaded.
	// For example, segments that have been clustered but haven't undergone stats yet.
	IsInvisible bool `protobuf:"varint,28,opt,name=is_invisible,json=isInvisible,proto3" json:"is_invisible,omitempty"`
	// jsonKeyStats is used to record json key index for fields.
	JsonKeyStats map[int64]*JsonKeyStats `protobuf:"bytes,29,rep,name=jsonKeyStats,proto3" json:"jsonKeyStats,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// This field is used to indicate that the segment is created by streaming service.
	// This field is meaningful only when the segment state is growing.
	// If the segment is created by streaming service, it will be a true.
	// A segment generated by datacoord of old arch, will be false.
	// After the growing segment is full managed by streamingnode, the true value can never be seen at coordinator.
	IsCreatedByStreaming bool `protobuf:"varint,30,opt,name=is_created_by_streaming,json=isCreatedByStreaming,proto3" json:"is_created_by_streaming,omitempty"`
	IsSortedByNamespace  bool `protobuf:"varint,31,opt,name=is_sorted_by_namespace,json=isSortedByNamespace,proto3" json:"is_sorted_by_namespace,omitempty"`
	// manifest_path stores the fullpath of LOON manifest file of segemnt data files.
	// we could keep the fullpath since one segment shall only have one active manifest
	// and we could keep the possiblity that manifest stores out side of collection/partition/segment path
	ManifestPath string `protobuf:"bytes,32,opt,name=manifest_path,json=manifestPath,proto3" json:"manifest_path,omitempty"`
	// expirQuantiles records the expiration timestamptz values of the segment
	// at the 20%, 40%, 60%, 80%, and 100% data distribution levels
	ExpirQuantiles []int64 `protobuf:"varint,33,rep,packed,name=expirQuantiles,proto3" json:"expirQuantiles,omitempty"`
	SchemaVersion  int32   `protobuf:"varint,34,opt,name=schema_version,json=schemaVersion,proto3" json:"schema_version,omitempty"`
	DataVersion    int32   `protobuf:"varint,35,opt,name=data_version,json=dataVersion,proto3" json:"data_version,omitempty"`
	// commit_timestamp is the transaction timestamp for import/CDC segments.
	// When non-zero, it overrides start_position.Timestamp, dml_position.Timestamp,
	// and binlog.TimestampFrom/TimestampTo for all temporal decisions (delete
	// filtering, snapshot visibility, compaction selection, GC).
	// Zero means normal segment.
	// Non-L0 compaction normalizes import/CDC segments by rewriting output row
	// timestamps to commit_timestamp, then clears this field back to 0. L0 delete
	// compaction is excluded because it only compacts delete logs.
	CommitTimestamp uint64 `protobuf:"varint,36,opt,name=commit_timestamp,json=commitTimestamp,proto3" json:"commit_timestamp,omitempty"`
	// child_manifest_paths is a load-time delete overlay for compaction fallback.
	// It is populated only on cloned SegmentInfo responses from GetSegmentInfo
	// with includeUnHealthy=true.
	ChildManifestPaths []string `protobuf:"bytes,37,rep,name=child_manifest_paths,json=childManifestPaths,proto3" json:"child_manifest_paths,omitempty"`
	// Aggregate metrics extracted at data-generation time. Populated for all
	// segments regardless of storage version. DataCoord reads these directly
	// instead of iterating Binlogs/Statslogs/Deltalogs for scheduling
	// decisions (compaction, load balancing, GC). See message Statistics.
	Stats *Statistics `protobuf:"bytes,38,opt,name=stats,proto3" json:"stats,omitempty"`
}

func (x *SegmentInfo) Reset() {
	*x = SegmentInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[30]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SegmentInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SegmentInfo) ProtoMessage() {}

func (x *SegmentInfo) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[30]
	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 SegmentInfo.ProtoReflect.Descriptor instead.
func (*SegmentInfo) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{30}
}

func (x *SegmentInfo) GetID() int64 {
	if x != nil {
		return x.ID
	}
	return 0
}

func (x *SegmentInfo) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

func (x *SegmentInfo) GetPartitionID() int64 {
	if x != nil {
		return x.PartitionID
	}
	return 0
}

func (x *SegmentInfo) GetInsertChannel() string {
	if x != nil {
		return x.InsertChannel
	}
	return ""
}

func (x *SegmentInfo) GetNumOfRows() int64 {
	if x != nil {
		return x.NumOfRows
	}
	return 0
}

func (x *SegmentInfo) GetState() commonpb.SegmentState {
	if x != nil {
		return x.State
	}
	return commonpb.SegmentState(0)
}

// Deprecated: Marked as deprecated in data_coord.proto.
func (x *SegmentInfo) GetMaxRowNum() int64 {
	if x != nil {
		return x.MaxRowNum
	}
	return 0
}

func (x *SegmentInfo) GetLastExpireTime() uint64 {
	if x != nil {
		return x.LastExpireTime
	}
	return 0
}

func (x *SegmentInfo) GetStartPosition() *msgpb.MsgPosition {
	if x != nil {
		return x.StartPosition
	}
	return nil
}

func (x *SegmentInfo) GetDmlPosition() *msgpb.MsgPosition {
	if x != nil {
		return x.DmlPosition
	}
	return nil
}

func (x *SegmentInfo) GetBinlogs() []*FieldBinlog {
	if x != nil {
		return x.Binlogs
	}
	return nil
}

func (x *SegmentInfo) GetStatslogs() []*FieldBinlog {
	if x != nil {
		return x.Statslogs
	}
	return nil
}

func (x *SegmentInfo) GetDeltalogs() []*FieldBinlog {
	if x != nil {
		return x.Deltalogs
	}
	return nil
}

func (x *SegmentInfo) GetCreatedByCompaction() bool {
	if x != nil {
		return x.CreatedByCompaction
	}
	return false
}

func (x *SegmentInfo) GetCompactionFrom() []int64 {
	if x != nil {
		return x.CompactionFrom
	}
	return nil
}

func (x *SegmentInfo) GetDroppedAt() uint64 {
	if x != nil {
		return x.DroppedAt
	}
	return 0
}

func (x *SegmentInfo) GetIsImporting() bool {
	if x != nil {
		return x.IsImporting
	}
	return false
}

func (x *SegmentInfo) GetIsFake() bool {
	if x != nil {
		return x.IsFake
	}
	return false
}

func (x *SegmentInfo) GetCompacted() bool {
	if x != nil {
		return x.Compacted
	}
	return false
}

func (x *SegmentInfo) GetLevel() SegmentLevel {
	if x != nil {
		return x.Level
	}
	return SegmentLevel_Legacy
}

func (x *SegmentInfo) GetStorageVersion() int64 {
	if x != nil {
		return x.StorageVersion
	}
	return 0
}

func (x *SegmentInfo) GetPartitionStatsVersion() int64 {
	if x != nil {
		return x.PartitionStatsVersion
	}
	return 0
}

func (x *SegmentInfo) GetLastLevel() SegmentLevel {
	if x != nil {
		return x.LastLevel
	}
	return SegmentLevel_Legacy
}

func (x *SegmentInfo) GetLastPartitionStatsVersion() int64 {
	if x != nil {
		return x.LastPartitionStatsVersion
	}
	return 0
}

func (x *SegmentInfo) GetIsSorted() bool {
	if x != nil {
		return x.IsSorted
	}
	return false
}

func (x *SegmentInfo) GetTextStatsLogs() map[int64]*TextIndexStats {
	if x != nil {
		return x.TextStatsLogs
	}
	return nil
}

func (x *SegmentInfo) GetBm25Statslogs() []*FieldBinlog {
	if x != nil {
		return x.Bm25Statslogs
	}
	return nil
}

func (x *SegmentInfo) GetIsInvisible() bool {
	if x != nil {
		return x.IsInvisible
	}
	return false
}

func (x *SegmentInfo) GetJsonKeyStats() map[int64]*JsonKeyStats {
	if x != nil {
		return x.JsonKeyStats
	}
	return nil
}

func (x *SegmentInfo) GetIsCreatedByStreaming() bool {
	if x != nil {
		return x.IsCreatedByStreaming
	}
	return false
}

func (x *SegmentInfo) GetIsSortedByNamespace() bool {
	if x != nil {
		return x.IsSortedByNamespace
	}
	return false
}

func (x *SegmentInfo) GetManifestPath() string {
	if x != nil {
		return x.ManifestPath
	}
	return ""
}

func (x *SegmentInfo) GetExpirQuantiles() []int64 {
	if x != nil {
		return x.ExpirQuantiles
	}
	return nil
}

func (x *SegmentInfo) GetSchemaVersion() int32 {
	if x != nil {
		return x.SchemaVersion
	}
	return 0
}

func (x *SegmentInfo) GetDataVersion() int32 {
	if x != nil {
		return x.DataVersion
	}
	return 0
}

func (x *SegmentInfo) GetCommitTimestamp() uint64 {
	if x != nil {
		return x.CommitTimestamp
	}
	return 0
}

func (x *SegmentInfo) GetChildManifestPaths() []string {
	if x != nil {
		return x.ChildManifestPaths
	}
	return nil
}

func (x *SegmentInfo) GetStats() *Statistics {
	if x != nil {
		return x.Stats
	}
	return nil
}

// Statistics carries aggregate metrics for a segment so DataCoord can make
// scheduling decisions without iterating the FieldBinlog arrays or reading
// the LOON manifest. Populated by the flush path (DataNode side) and by
// compaction; backfilled on load for segments persisted before this proto
// existed. V2 segments derive every field from their FieldBinlog arrays;
// V3 segments derive insert/delta fields from the cumulative arrays the
// metawriter still ships, and stats_binlog_size from the manifest the
// writer just committed.
type Statistics struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Insert/stats/delta sizes are summed over the cumulative FieldBinlog
	// arrays. Insert row count is intentionally absent — SegmentInfo.num_of_rows
	// is the authoritative segment row count (computed from binlogs[0] in V2 /
	// reported by the writer in V3); summing EntriesNum across all field
	// binlogs would overcount by a factor of the field/group count.
	InsertBinlogSize  int64 `protobuf:"varint,1,opt,name=insert_binlog_size,json=insertBinlogSize,proto3" json:"insert_binlog_size,omitempty"`    // sum of MemorySize across insert binlogs
	StatsBinlogSize   int64 `protobuf:"varint,2,opt,name=stats_binlog_size,json=statsBinlogSize,proto3" json:"stats_binlog_size,omitempty"`       // sum of MemorySize across stats binlogs
	DeltaBinlogSize   int64 `protobuf:"varint,3,opt,name=delta_binlog_size,json=deltaBinlogSize,proto3" json:"delta_binlog_size,omitempty"`       // sum of MemorySize across delta binlogs
	DeleteNumRows     int64 `protobuf:"varint,4,opt,name=delete_num_rows,json=deleteNumRows,proto3" json:"delete_num_rows,omitempty"`             // sum of EntriesNum across delta binlogs
	InsertBinlogCount int64 `protobuf:"varint,5,opt,name=insert_binlog_count,json=insertBinlogCount,proto3" json:"insert_binlog_count,omitempty"` // number of insert binlog files
	DeltaBinlogCount  int64 `protobuf:"varint,6,opt,name=delta_binlog_count,json=deltaBinlogCount,proto3" json:"delta_binlog_count,omitempty"`    // number of delta binlog files
	// timestamp_quantiles are the 20/40/60/80/100 percentile values of insert
	// row write timestamps, sorted ascending (5 elements). Used by the
	// opportunistic TTL ratio + size path in the compaction trigger
	// (SingleCompactionRatioThreshold / SingleCompactionExpiredLogMaxSize) —
	// its 20% bucket granularity is acceptable for ratio decisions. For
	// precise min/max comparisons use timestamp_from / timestamp_to. Empty
	// on segments with no insert data.
	TimestampQuantiles []int64 `protobuf:"varint,8,rep,packed,name=timestamp_quantiles,json=timestampQuantiles,proto3" json:"timestamp_quantiles,omitempty"`
	// Exact min(TimestampFrom) and max(TimestampTo) across all insert
	// binlogs. Used by GetEarliestTs (needs exact min for ordering / TTL
	// strict-tolerance) and by the "entire segment expired" short-circuit
	// in the compaction trigger (needs exact max). Zero on segments with
	// no insert data.
	TimestampFrom uint64 `protobuf:"varint,9,opt,name=timestamp_from,json=timestampFrom,proto3" json:"timestamp_from,omitempty"`
	TimestampTo   uint64 `protobuf:"varint,10,opt,name=timestamp_to,json=timestampTo,proto3" json:"timestamp_to,omitempty"`
	// Exact min(TimestampFrom) and max(TimestampTo) across all delta
	// binlogs. Used by L0 import to determine the timestamp range covered
	// by the delete records. Zero on segments with no delta data.
	DeltaTimestampFrom uint64 `protobuf:"varint,11,opt,name=delta_timestamp_from,json=deltaTimestampFrom,proto3" json:"delta_timestamp_from,omitempty"`
	DeltaTimestampTo   uint64 `protobuf:"varint,12,opt,name=delta_timestamp_to,json=deltaTimestampTo,proto3" json:"delta_timestamp_to,omitempty"`
	// Per-field null-row counts, summed across all binlogs of that field.
	// Populated only for nullable fields. Used by task_index to compute
	// the effective (non-null) row count for vector index build decisions
	// on nullable vector fields.
	NullCounts map[int64]int64 `protobuf:"bytes,13,rep,name=null_counts,json=nullCounts,proto3" json:"null_counts,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}

func (x *Statistics) Reset() {
	*x = Statistics{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[31]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Statistics) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Statistics) ProtoMessage() {}

func (x *Statistics) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[31]
	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 Statistics.ProtoReflect.Descriptor instead.
func (*Statistics) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{31}
}

func (x *Statistics) GetInsertBinlogSize() int64 {
	if x != nil {
		return x.InsertBinlogSize
	}
	return 0
}

func (x *Statistics) GetStatsBinlogSize() int64 {
	if x != nil {
		return x.StatsBinlogSize
	}
	return 0
}

func (x *Statistics) GetDeltaBinlogSize() int64 {
	if x != nil {
		return x.DeltaBinlogSize
	}
	return 0
}

func (x *Statistics) GetDeleteNumRows() int64 {
	if x != nil {
		return x.DeleteNumRows
	}
	return 0
}

func (x *Statistics) GetInsertBinlogCount() int64 {
	if x != nil {
		return x.InsertBinlogCount
	}
	return 0
}

func (x *Statistics) GetDeltaBinlogCount() int64 {
	if x != nil {
		return x.DeltaBinlogCount
	}
	return 0
}

func (x *Statistics) GetTimestampQuantiles() []int64 {
	if x != nil {
		return x.TimestampQuantiles
	}
	return nil
}

func (x *Statistics) GetTimestampFrom() uint64 {
	if x != nil {
		return x.TimestampFrom
	}
	return 0
}

func (x *Statistics) GetTimestampTo() uint64 {
	if x != nil {
		return x.TimestampTo
	}
	return 0
}

func (x *Statistics) GetDeltaTimestampFrom() uint64 {
	if x != nil {
		return x.DeltaTimestampFrom
	}
	return 0
}

func (x *Statistics) GetDeltaTimestampTo() uint64 {
	if x != nil {
		return x.DeltaTimestampTo
	}
	return 0
}

func (x *Statistics) GetNullCounts() map[int64]int64 {
	if x != nil {
		return x.NullCounts
	}
	return nil
}

type SegmentStartPosition struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	StartPosition *msgpb.MsgPosition `protobuf:"bytes,1,opt,name=start_position,json=startPosition,proto3" json:"start_position,omitempty"`
	SegmentID     int64              `protobuf:"varint,2,opt,name=segmentID,proto3" json:"segmentID,omitempty"`
}

func (x *SegmentStartPosition) Reset() {
	*x = SegmentStartPosition{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[32]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SegmentStartPosition) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SegmentStartPosition) ProtoMessage() {}

func (x *SegmentStartPosition) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[32]
	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 SegmentStartPosition.ProtoReflect.Descriptor instead.
func (*SegmentStartPosition) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{32}
}

func (x *SegmentStartPosition) GetStartPosition() *msgpb.MsgPosition {
	if x != nil {
		return x.StartPosition
	}
	return nil
}

func (x *SegmentStartPosition) GetSegmentID() int64 {
	if x != nil {
		return x.SegmentID
	}
	return 0
}

type SaveBinlogPathsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base                *commonpb.MsgBase       `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	SegmentID           int64                   `protobuf:"varint,2,opt,name=segmentID,proto3" json:"segmentID,omitempty"`
	CollectionID        int64                   `protobuf:"varint,3,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
	Field2BinlogPaths   []*FieldBinlog          `protobuf:"bytes,4,rep,name=field2BinlogPaths,proto3" json:"field2BinlogPaths,omitempty"`
	CheckPoints         []*CheckPoint           `protobuf:"bytes,5,rep,name=checkPoints,proto3" json:"checkPoints,omitempty"`
	StartPositions      []*SegmentStartPosition `protobuf:"bytes,6,rep,name=start_positions,json=startPositions,proto3" json:"start_positions,omitempty"`
	Flushed             bool                    `protobuf:"varint,7,opt,name=flushed,proto3" json:"flushed,omitempty"`
	Field2StatslogPaths []*FieldBinlog          `protobuf:"bytes,8,rep,name=field2StatslogPaths,proto3" json:"field2StatslogPaths,omitempty"`
	Deltalogs           []*FieldBinlog          `protobuf:"bytes,9,rep,name=deltalogs,proto3" json:"deltalogs,omitempty"`
	Dropped             bool                    `protobuf:"varint,10,opt,name=dropped,proto3" json:"dropped,omitempty"`
	Importing           bool                    `protobuf:"varint,11,opt,name=importing,proto3" json:"importing,omitempty"` // deprecated
	Channel             string                  `protobuf:"bytes,12,opt,name=channel,proto3" json:"channel,omitempty"`      // report channel name for verification
	SegLevel            SegmentLevel            `protobuf:"varint,13,opt,name=seg_level,json=segLevel,proto3,enum=milvus.proto.data.SegmentLevel" json:"seg_level,omitempty"`
	PartitionID         int64                   `protobuf:"varint,14,opt,name=partitionID,proto3" json:"partitionID,omitempty"` // report partitionID for create L0 segment
	StorageVersion      int64                   `protobuf:"varint,15,opt,name=storageVersion,proto3" json:"storageVersion,omitempty"`
	Field2Bm25LogPaths  []*FieldBinlog          `protobuf:"bytes,16,rep,name=field2Bm25logPaths,proto3" json:"field2Bm25logPaths,omitempty"`
	WithFullBinlogs     bool                    `protobuf:"varint,17,opt,name=with_full_binlogs,json=withFullBinlogs,proto3" json:"with_full_binlogs,omitempty"` // report with full data for verification.
	ManifestPath        string                  `protobuf:"bytes,18,opt,name=manifest_path,json=manifestPath,proto3" json:"manifest_path,omitempty"`             //
	// V3 stats live in the manifest, not in the statslogs FieldBinlog array,
	// so the writer ships the cumulative stats footprint here. The handler
	// overlays these onto the segment Statistics after computing insert/delta
	// from the cumulative arrays. Nil / zero for V2 flushes — V2 stats come
	// from req.Field2StatslogPaths via the iteration helper.
	Stats *Statistics `protobuf:"bytes,19,opt,name=stats,proto3" json:"stats,omitempty"`
}

func (x *SaveBinlogPathsRequest) Reset() {
	*x = SaveBinlogPathsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[33]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SaveBinlogPathsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SaveBinlogPathsRequest) ProtoMessage() {}

func (x *SaveBinlogPathsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[33]
	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 SaveBinlogPathsRequest.ProtoReflect.Descriptor instead.
func (*SaveBinlogPathsRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{33}
}

func (x *SaveBinlogPathsRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *SaveBinlogPathsRequest) GetSegmentID() int64 {
	if x != nil {
		return x.SegmentID
	}
	return 0
}

func (x *SaveBinlogPathsRequest) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

func (x *SaveBinlogPathsRequest) GetField2BinlogPaths() []*FieldBinlog {
	if x != nil {
		return x.Field2BinlogPaths
	}
	return nil
}

func (x *SaveBinlogPathsRequest) GetCheckPoints() []*CheckPoint {
	if x != nil {
		return x.CheckPoints
	}
	return nil
}

func (x *SaveBinlogPathsRequest) GetStartPositions() []*SegmentStartPosition {
	if x != nil {
		return x.StartPositions
	}
	return nil
}

func (x *SaveBinlogPathsRequest) GetFlushed() bool {
	if x != nil {
		return x.Flushed
	}
	return false
}

func (x *SaveBinlogPathsRequest) GetField2StatslogPaths() []*FieldBinlog {
	if x != nil {
		return x.Field2StatslogPaths
	}
	return nil
}

func (x *SaveBinlogPathsRequest) GetDeltalogs() []*FieldBinlog {
	if x != nil {
		return x.Deltalogs
	}
	return nil
}

func (x *SaveBinlogPathsRequest) GetDropped() bool {
	if x != nil {
		return x.Dropped
	}
	return false
}

func (x *SaveBinlogPathsRequest) GetImporting() bool {
	if x != nil {
		return x.Importing
	}
	return false
}

func (x *SaveBinlogPathsRequest) GetChannel() string {
	if x != nil {
		return x.Channel
	}
	return ""
}

func (x *SaveBinlogPathsRequest) GetSegLevel() SegmentLevel {
	if x != nil {
		return x.SegLevel
	}
	return SegmentLevel_Legacy
}

func (x *SaveBinlogPathsRequest) GetPartitionID() int64 {
	if x != nil {
		return x.PartitionID
	}
	return 0
}

func (x *SaveBinlogPathsRequest) GetStorageVersion() int64 {
	if x != nil {
		return x.StorageVersion
	}
	return 0
}

func (x *SaveBinlogPathsRequest) GetField2Bm25LogPaths() []*FieldBinlog {
	if x != nil {
		return x.Field2Bm25LogPaths
	}
	return nil
}

func (x *SaveBinlogPathsRequest) GetWithFullBinlogs() bool {
	if x != nil {
		return x.WithFullBinlogs
	}
	return false
}

func (x *SaveBinlogPathsRequest) GetManifestPath() string {
	if x != nil {
		return x.ManifestPath
	}
	return ""
}

func (x *SaveBinlogPathsRequest) GetStats() *Statistics {
	if x != nil {
		return x.Stats
	}
	return nil
}

type CheckPoint struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SegmentID int64              `protobuf:"varint,1,opt,name=segmentID,proto3" json:"segmentID,omitempty"`
	Position  *msgpb.MsgPosition `protobuf:"bytes,2,opt,name=position,proto3" json:"position,omitempty"`
	NumOfRows int64              `protobuf:"varint,3,opt,name=num_of_rows,json=numOfRows,proto3" json:"num_of_rows,omitempty"`
}

func (x *CheckPoint) Reset() {
	*x = CheckPoint{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[34]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CheckPoint) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CheckPoint) ProtoMessage() {}

func (x *CheckPoint) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[34]
	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 CheckPoint.ProtoReflect.Descriptor instead.
func (*CheckPoint) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{34}
}

func (x *CheckPoint) GetSegmentID() int64 {
	if x != nil {
		return x.SegmentID
	}
	return 0
}

func (x *CheckPoint) GetPosition() *msgpb.MsgPosition {
	if x != nil {
		return x.Position
	}
	return nil
}

func (x *CheckPoint) GetNumOfRows() int64 {
	if x != nil {
		return x.NumOfRows
	}
	return 0
}

type DeltaLogInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	RecordEntries uint64 `protobuf:"varint,1,opt,name=record_entries,json=recordEntries,proto3" json:"record_entries,omitempty"`
	TimestampFrom uint64 `protobuf:"varint,2,opt,name=timestamp_from,json=timestampFrom,proto3" json:"timestamp_from,omitempty"`
	TimestampTo   uint64 `protobuf:"varint,3,opt,name=timestamp_to,json=timestampTo,proto3" json:"timestamp_to,omitempty"`
	DeltaLogPath  string `protobuf:"bytes,4,opt,name=delta_log_path,json=deltaLogPath,proto3" json:"delta_log_path,omitempty"`
	DeltaLogSize  int64  `protobuf:"varint,5,opt,name=delta_log_size,json=deltaLogSize,proto3" json:"delta_log_size,omitempty"`
}

func (x *DeltaLogInfo) Reset() {
	*x = DeltaLogInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[35]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeltaLogInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeltaLogInfo) ProtoMessage() {}

func (x *DeltaLogInfo) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[35]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeltaLogInfo.ProtoReflect.Descriptor instead.
func (*DeltaLogInfo) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{35}
}

func (x *DeltaLogInfo) GetRecordEntries() uint64 {
	if x != nil {
		return x.RecordEntries
	}
	return 0
}

func (x *DeltaLogInfo) GetTimestampFrom() uint64 {
	if x != nil {
		return x.TimestampFrom
	}
	return 0
}

func (x *DeltaLogInfo) GetTimestampTo() uint64 {
	if x != nil {
		return x.TimestampTo
	}
	return 0
}

func (x *DeltaLogInfo) GetDeltaLogPath() string {
	if x != nil {
		return x.DeltaLogPath
	}
	return ""
}

func (x *DeltaLogInfo) GetDeltaLogSize() int64 {
	if x != nil {
		return x.DeltaLogSize
	}
	return 0
}

type ChannelStatus struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name         string            `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	State        ChannelWatchState `protobuf:"varint,2,opt,name=state,proto3,enum=milvus.proto.data.ChannelWatchState" json:"state,omitempty"`
	CollectionID int64             `protobuf:"varint,3,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
}

func (x *ChannelStatus) Reset() {
	*x = ChannelStatus{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[36]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ChannelStatus) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ChannelStatus) ProtoMessage() {}

func (x *ChannelStatus) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[36]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ChannelStatus.ProtoReflect.Descriptor instead.
func (*ChannelStatus) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{36}
}

func (x *ChannelStatus) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *ChannelStatus) GetState() ChannelWatchState {
	if x != nil {
		return x.State
	}
	return ChannelWatchState_Uncomplete
}

func (x *ChannelStatus) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

type DataNodeInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Address  string           `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Version  int64            `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"`
	Channels []*ChannelStatus `protobuf:"bytes,3,rep,name=channels,proto3" json:"channels,omitempty"`
}

func (x *DataNodeInfo) Reset() {
	*x = DataNodeInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[37]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DataNodeInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DataNodeInfo) ProtoMessage() {}

func (x *DataNodeInfo) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[37]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DataNodeInfo.ProtoReflect.Descriptor instead.
func (*DataNodeInfo) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{37}
}

func (x *DataNodeInfo) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

func (x *DataNodeInfo) GetVersion() int64 {
	if x != nil {
		return x.Version
	}
	return 0
}

func (x *DataNodeInfo) GetChannels() []*ChannelStatus {
	if x != nil {
		return x.Channels
	}
	return nil
}

type SegmentBinlogs struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SegmentID     int64                     `protobuf:"varint,1,opt,name=segmentID,proto3" json:"segmentID,omitempty"`
	FieldBinlogs  []*FieldBinlog            `protobuf:"bytes,2,rep,name=fieldBinlogs,proto3" json:"fieldBinlogs,omitempty"`
	NumOfRows     int64                     `protobuf:"varint,3,opt,name=num_of_rows,json=numOfRows,proto3" json:"num_of_rows,omitempty"`
	Statslogs     []*FieldBinlog            `protobuf:"bytes,4,rep,name=statslogs,proto3" json:"statslogs,omitempty"`
	Deltalogs     []*FieldBinlog            `protobuf:"bytes,5,rep,name=deltalogs,proto3" json:"deltalogs,omitempty"`
	InsertChannel string                    `protobuf:"bytes,6,opt,name=insert_channel,json=insertChannel,proto3" json:"insert_channel,omitempty"`
	TextStatsLogs map[int64]*TextIndexStats `protobuf:"bytes,7,rep,name=textStatsLogs,proto3" json:"textStatsLogs,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *SegmentBinlogs) Reset() {
	*x = SegmentBinlogs{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[38]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SegmentBinlogs) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SegmentBinlogs) ProtoMessage() {}

func (x *SegmentBinlogs) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[38]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SegmentBinlogs.ProtoReflect.Descriptor instead.
func (*SegmentBinlogs) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{38}
}

func (x *SegmentBinlogs) GetSegmentID() int64 {
	if x != nil {
		return x.SegmentID
	}
	return 0
}

func (x *SegmentBinlogs) GetFieldBinlogs() []*FieldBinlog {
	if x != nil {
		return x.FieldBinlogs
	}
	return nil
}

func (x *SegmentBinlogs) GetNumOfRows() int64 {
	if x != nil {
		return x.NumOfRows
	}
	return 0
}

func (x *SegmentBinlogs) GetStatslogs() []*FieldBinlog {
	if x != nil {
		return x.Statslogs
	}
	return nil
}

func (x *SegmentBinlogs) GetDeltalogs() []*FieldBinlog {
	if x != nil {
		return x.Deltalogs
	}
	return nil
}

func (x *SegmentBinlogs) GetInsertChannel() string {
	if x != nil {
		return x.InsertChannel
	}
	return ""
}

func (x *SegmentBinlogs) GetTextStatsLogs() map[int64]*TextIndexStats {
	if x != nil {
		return x.TextStatsLogs
	}
	return nil
}

type FieldBinlog struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	FieldID     int64     `protobuf:"varint,1,opt,name=fieldID,proto3" json:"fieldID,omitempty"`
	Binlogs     []*Binlog `protobuf:"bytes,2,rep,name=binlogs,proto3" json:"binlogs,omitempty"`
	ChildFields []int64   `protobuf:"varint,3,rep,packed,name=child_fields,json=childFields,proto3" json:"child_fields,omitempty"`
	Format      string    `protobuf:"bytes,4,opt,name=format,proto3" json:"format,omitempty"`
}

func (x *FieldBinlog) Reset() {
	*x = FieldBinlog{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[39]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FieldBinlog) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FieldBinlog) ProtoMessage() {}

func (x *FieldBinlog) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[39]
	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 FieldBinlog.ProtoReflect.Descriptor instead.
func (*FieldBinlog) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{39}
}

func (x *FieldBinlog) GetFieldID() int64 {
	if x != nil {
		return x.FieldID
	}
	return 0
}

func (x *FieldBinlog) GetBinlogs() []*Binlog {
	if x != nil {
		return x.Binlogs
	}
	return nil
}

func (x *FieldBinlog) GetChildFields() []int64 {
	if x != nil {
		return x.ChildFields
	}
	return nil
}

func (x *FieldBinlog) GetFormat() string {
	if x != nil {
		return x.Format
	}
	return ""
}

type TextIndexStats struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	FieldID                   int64    `protobuf:"varint,1,opt,name=fieldID,proto3" json:"fieldID,omitempty"`
	Version                   int64    `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"`
	Files                     []string `protobuf:"bytes,3,rep,name=files,proto3" json:"files,omitempty"`
	LogSize                   int64    `protobuf:"varint,4,opt,name=log_size,json=logSize,proto3" json:"log_size,omitempty"`
	MemorySize                int64    `protobuf:"varint,5,opt,name=memory_size,json=memorySize,proto3" json:"memory_size,omitempty"`
	BuildID                   int64    `protobuf:"varint,6,opt,name=buildID,proto3" json:"buildID,omitempty"`
	CurrentScalarIndexVersion int32    `protobuf:"varint,7,opt,name=current_scalar_index_version,json=currentScalarIndexVersion,proto3" json:"current_scalar_index_version,omitempty"`
}

func (x *TextIndexStats) Reset() {
	*x = TextIndexStats{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[40]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TextIndexStats) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TextIndexStats) ProtoMessage() {}

func (x *TextIndexStats) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[40]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TextIndexStats.ProtoReflect.Descriptor instead.
func (*TextIndexStats) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{40}
}

func (x *TextIndexStats) GetFieldID() int64 {
	if x != nil {
		return x.FieldID
	}
	return 0
}

func (x *TextIndexStats) GetVersion() int64 {
	if x != nil {
		return x.Version
	}
	return 0
}

func (x *TextIndexStats) GetFiles() []string {
	if x != nil {
		return x.Files
	}
	return nil
}

func (x *TextIndexStats) GetLogSize() int64 {
	if x != nil {
		return x.LogSize
	}
	return 0
}

func (x *TextIndexStats) GetMemorySize() int64 {
	if x != nil {
		return x.MemorySize
	}
	return 0
}

func (x *TextIndexStats) GetBuildID() int64 {
	if x != nil {
		return x.BuildID
	}
	return 0
}

func (x *TextIndexStats) GetCurrentScalarIndexVersion() int32 {
	if x != nil {
		return x.CurrentScalarIndexVersion
	}
	return 0
}

type JsonKeyStats struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	FieldID                int64    `protobuf:"varint,1,opt,name=fieldID,proto3" json:"fieldID,omitempty"`
	Version                int64    `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"`
	Files                  []string `protobuf:"bytes,3,rep,name=files,proto3" json:"files,omitempty"`
	LogSize                int64    `protobuf:"varint,4,opt,name=log_size,json=logSize,proto3" json:"log_size,omitempty"`
	MemorySize             int64    `protobuf:"varint,5,opt,name=memory_size,json=memorySize,proto3" json:"memory_size,omitempty"`
	BuildID                int64    `protobuf:"varint,6,opt,name=buildID,proto3" json:"buildID,omitempty"`
	JsonKeyStatsDataFormat int64    `protobuf:"varint,7,opt,name=json_key_stats_data_format,json=jsonKeyStatsDataFormat,proto3" json:"json_key_stats_data_format,omitempty"`
}

func (x *JsonKeyStats) Reset() {
	*x = JsonKeyStats{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[41]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *JsonKeyStats) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*JsonKeyStats) ProtoMessage() {}

func (x *JsonKeyStats) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[41]
	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 JsonKeyStats.ProtoReflect.Descriptor instead.
func (*JsonKeyStats) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{41}
}

func (x *JsonKeyStats) GetFieldID() int64 {
	if x != nil {
		return x.FieldID
	}
	return 0
}

func (x *JsonKeyStats) GetVersion() int64 {
	if x != nil {
		return x.Version
	}
	return 0
}

func (x *JsonKeyStats) GetFiles() []string {
	if x != nil {
		return x.Files
	}
	return nil
}

func (x *JsonKeyStats) GetLogSize() int64 {
	if x != nil {
		return x.LogSize
	}
	return 0
}

func (x *JsonKeyStats) GetMemorySize() int64 {
	if x != nil {
		return x.MemorySize
	}
	return 0
}

func (x *JsonKeyStats) GetBuildID() int64 {
	if x != nil {
		return x.BuildID
	}
	return 0
}

func (x *JsonKeyStats) GetJsonKeyStatsDataFormat() int64 {
	if x != nil {
		return x.JsonKeyStatsDataFormat
	}
	return 0
}

type Binlog struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	EntriesNum    int64  `protobuf:"varint,1,opt,name=entries_num,json=entriesNum,proto3" json:"entries_num,omitempty"`
	TimestampFrom uint64 `protobuf:"varint,2,opt,name=timestamp_from,json=timestampFrom,proto3" json:"timestamp_from,omitempty"`
	TimestampTo   uint64 `protobuf:"varint,3,opt,name=timestamp_to,json=timestampTo,proto3" json:"timestamp_to,omitempty"`
	// deprecated
	LogPath string `protobuf:"bytes,4,opt,name=log_path,json=logPath,proto3" json:"log_path,omitempty"`
	LogSize int64  `protobuf:"varint,5,opt,name=log_size,json=logSize,proto3" json:"log_size,omitempty"`
	LogID   int64  `protobuf:"varint,6,opt,name=logID,proto3" json:"logID,omitempty"`
	// memory_size represents the size occupied by loading data into memory.
	// log_size represents the size after data serialized.
	// for stats_log, the memory_size always equal log_size.
	MemorySize int64 `protobuf:"varint,7,opt,name=memory_size,json=memorySize,proto3" json:"memory_size,omitempty"`
	// null counts per field in this column group.
	FieldNullCounts map[int64]int64 `protobuf:"bytes,8,rep,name=field_null_counts,json=fieldNullCounts,proto3" json:"field_null_counts,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}

func (x *Binlog) Reset() {
	*x = Binlog{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[42]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Binlog) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Binlog) ProtoMessage() {}

func (x *Binlog) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[42]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Binlog.ProtoReflect.Descriptor instead.
func (*Binlog) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{42}
}

func (x *Binlog) GetEntriesNum() int64 {
	if x != nil {
		return x.EntriesNum
	}
	return 0
}

func (x *Binlog) GetTimestampFrom() uint64 {
	if x != nil {
		return x.TimestampFrom
	}
	return 0
}

func (x *Binlog) GetTimestampTo() uint64 {
	if x != nil {
		return x.TimestampTo
	}
	return 0
}

func (x *Binlog) GetLogPath() string {
	if x != nil {
		return x.LogPath
	}
	return ""
}

func (x *Binlog) GetLogSize() int64 {
	if x != nil {
		return x.LogSize
	}
	return 0
}

func (x *Binlog) GetLogID() int64 {
	if x != nil {
		return x.LogID
	}
	return 0
}

func (x *Binlog) GetMemorySize() int64 {
	if x != nil {
		return x.MemorySize
	}
	return 0
}

func (x *Binlog) GetFieldNullCounts() map[int64]int64 {
	if x != nil {
		return x.FieldNullCounts
	}
	return nil
}

type GetRecoveryInfoResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status   *commonpb.Status  `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	Channels []*VchannelInfo   `protobuf:"bytes,2,rep,name=channels,proto3" json:"channels,omitempty"`
	Binlogs  []*SegmentBinlogs `protobuf:"bytes,3,rep,name=binlogs,proto3" json:"binlogs,omitempty"`
}

func (x *GetRecoveryInfoResponse) Reset() {
	*x = GetRecoveryInfoResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[43]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetRecoveryInfoResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetRecoveryInfoResponse) ProtoMessage() {}

func (x *GetRecoveryInfoResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[43]
	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 GetRecoveryInfoResponse.ProtoReflect.Descriptor instead.
func (*GetRecoveryInfoResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{43}
}

func (x *GetRecoveryInfoResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *GetRecoveryInfoResponse) GetChannels() []*VchannelInfo {
	if x != nil {
		return x.Channels
	}
	return nil
}

func (x *GetRecoveryInfoResponse) GetBinlogs() []*SegmentBinlogs {
	if x != nil {
		return x.Binlogs
	}
	return nil
}

type GetRecoveryInfoRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base         *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	CollectionID int64             `protobuf:"varint,2,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
	PartitionID  int64             `protobuf:"varint,3,opt,name=partitionID,proto3" json:"partitionID,omitempty"`
}

func (x *GetRecoveryInfoRequest) Reset() {
	*x = GetRecoveryInfoRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[44]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetRecoveryInfoRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetRecoveryInfoRequest) ProtoMessage() {}

func (x *GetRecoveryInfoRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[44]
	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 GetRecoveryInfoRequest.ProtoReflect.Descriptor instead.
func (*GetRecoveryInfoRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{44}
}

func (x *GetRecoveryInfoRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *GetRecoveryInfoRequest) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

func (x *GetRecoveryInfoRequest) GetPartitionID() int64 {
	if x != nil {
		return x.PartitionID
	}
	return 0
}

type GetRecoveryInfoResponseV2 struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status   *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	Channels []*VchannelInfo  `protobuf:"bytes,2,rep,name=channels,proto3" json:"channels,omitempty"`
	Segments []*SegmentInfo   `protobuf:"bytes,3,rep,name=segments,proto3" json:"segments,omitempty"`
}

func (x *GetRecoveryInfoResponseV2) Reset() {
	*x = GetRecoveryInfoResponseV2{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[45]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetRecoveryInfoResponseV2) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetRecoveryInfoResponseV2) ProtoMessage() {}

func (x *GetRecoveryInfoResponseV2) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[45]
	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 GetRecoveryInfoResponseV2.ProtoReflect.Descriptor instead.
func (*GetRecoveryInfoResponseV2) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{45}
}

func (x *GetRecoveryInfoResponseV2) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *GetRecoveryInfoResponseV2) GetChannels() []*VchannelInfo {
	if x != nil {
		return x.Channels
	}
	return nil
}

func (x *GetRecoveryInfoResponseV2) GetSegments() []*SegmentInfo {
	if x != nil {
		return x.Segments
	}
	return nil
}

type GetRecoveryInfoRequestV2 struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base         *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	CollectionID int64             `protobuf:"varint,2,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
	PartitionIDs []int64           `protobuf:"varint,3,rep,packed,name=partitionIDs,proto3" json:"partitionIDs,omitempty"`
}

func (x *GetRecoveryInfoRequestV2) Reset() {
	*x = GetRecoveryInfoRequestV2{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[46]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetRecoveryInfoRequestV2) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetRecoveryInfoRequestV2) ProtoMessage() {}

func (x *GetRecoveryInfoRequestV2) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[46]
	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 GetRecoveryInfoRequestV2.ProtoReflect.Descriptor instead.
func (*GetRecoveryInfoRequestV2) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{46}
}

func (x *GetRecoveryInfoRequestV2) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *GetRecoveryInfoRequestV2) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

func (x *GetRecoveryInfoRequestV2) GetPartitionIDs() []int64 {
	if x != nil {
		return x.PartitionIDs
	}
	return nil
}

type GetChannelRecoveryInfoRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base     *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	Vchannel string            `protobuf:"bytes,2,opt,name=vchannel,proto3" json:"vchannel,omitempty"`
}

func (x *GetChannelRecoveryInfoRequest) Reset() {
	*x = GetChannelRecoveryInfoRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[47]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetChannelRecoveryInfoRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetChannelRecoveryInfoRequest) ProtoMessage() {}

func (x *GetChannelRecoveryInfoRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[47]
	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 GetChannelRecoveryInfoRequest.ProtoReflect.Descriptor instead.
func (*GetChannelRecoveryInfoRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{47}
}

func (x *GetChannelRecoveryInfoRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *GetChannelRecoveryInfoRequest) GetVchannel() string {
	if x != nil {
		return x.Vchannel
	}
	return ""
}

type GetChannelRecoveryInfoResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	Info   *VchannelInfo    `protobuf:"bytes,2,opt,name=info,proto3" json:"info,omitempty"`
	// Deprecated: Marked as deprecated in data_coord.proto.
	Schema                        *schemapb.CollectionSchema      `protobuf:"bytes,3,opt,name=schema,proto3" json:"schema,omitempty"`                                                                                          // schema is managed by streaming node itself now, so it should not be passed by rpc.
	SegmentsNotCreatedByStreaming []*SegmentNotCreatedByStreaming `protobuf:"bytes,4,rep,name=segments_not_created_by_streaming,json=segmentsNotCreatedByStreaming,proto3" json:"segments_not_created_by_streaming,omitempty"` // Should be flushed by streaming service when upgrading.
}

func (x *GetChannelRecoveryInfoResponse) Reset() {
	*x = GetChannelRecoveryInfoResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[48]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetChannelRecoveryInfoResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetChannelRecoveryInfoResponse) ProtoMessage() {}

func (x *GetChannelRecoveryInfoResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[48]
	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 GetChannelRecoveryInfoResponse.ProtoReflect.Descriptor instead.
func (*GetChannelRecoveryInfoResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{48}
}

func (x *GetChannelRecoveryInfoResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *GetChannelRecoveryInfoResponse) GetInfo() *VchannelInfo {
	if x != nil {
		return x.Info
	}
	return nil
}

// Deprecated: Marked as deprecated in data_coord.proto.
func (x *GetChannelRecoveryInfoResponse) GetSchema() *schemapb.CollectionSchema {
	if x != nil {
		return x.Schema
	}
	return nil
}

func (x *GetChannelRecoveryInfoResponse) GetSegmentsNotCreatedByStreaming() []*SegmentNotCreatedByStreaming {
	if x != nil {
		return x.SegmentsNotCreatedByStreaming
	}
	return nil
}

type SegmentNotCreatedByStreaming struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CollectionId int64 `protobuf:"varint,1,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`
	PartitionId  int64 `protobuf:"varint,2,opt,name=partition_id,json=partitionId,proto3" json:"partition_id,omitempty"`
	SegmentId    int64 `protobuf:"varint,3,opt,name=segment_id,json=segmentId,proto3" json:"segment_id,omitempty"`
}

func (x *SegmentNotCreatedByStreaming) Reset() {
	*x = SegmentNotCreatedByStreaming{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[49]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SegmentNotCreatedByStreaming) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SegmentNotCreatedByStreaming) ProtoMessage() {}

func (x *SegmentNotCreatedByStreaming) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[49]
	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 SegmentNotCreatedByStreaming.ProtoReflect.Descriptor instead.
func (*SegmentNotCreatedByStreaming) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{49}
}

func (x *SegmentNotCreatedByStreaming) GetCollectionId() int64 {
	if x != nil {
		return x.CollectionId
	}
	return 0
}

func (x *SegmentNotCreatedByStreaming) GetPartitionId() int64 {
	if x != nil {
		return x.PartitionId
	}
	return 0
}

func (x *SegmentNotCreatedByStreaming) GetSegmentId() int64 {
	if x != nil {
		return x.SegmentId
	}
	return 0
}

type GetSegmentsByStatesRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base         *commonpb.MsgBase       `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	CollectionID int64                   `protobuf:"varint,2,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
	PartitionID  int64                   `protobuf:"varint,3,opt,name=partitionID,proto3" json:"partitionID,omitempty"`
	States       []commonpb.SegmentState `protobuf:"varint,4,rep,packed,name=states,proto3,enum=milvus.proto.common.SegmentState" json:"states,omitempty"`
}

func (x *GetSegmentsByStatesRequest) Reset() {
	*x = GetSegmentsByStatesRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[50]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetSegmentsByStatesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetSegmentsByStatesRequest) ProtoMessage() {}

func (x *GetSegmentsByStatesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[50]
	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 GetSegmentsByStatesRequest.ProtoReflect.Descriptor instead.
func (*GetSegmentsByStatesRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{50}
}

func (x *GetSegmentsByStatesRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *GetSegmentsByStatesRequest) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

func (x *GetSegmentsByStatesRequest) GetPartitionID() int64 {
	if x != nil {
		return x.PartitionID
	}
	return 0
}

func (x *GetSegmentsByStatesRequest) GetStates() []commonpb.SegmentState {
	if x != nil {
		return x.States
	}
	return nil
}

type GetSegmentsByStatesResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status   *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	Segments []int64          `protobuf:"varint,2,rep,packed,name=segments,proto3" json:"segments,omitempty"`
}

func (x *GetSegmentsByStatesResponse) Reset() {
	*x = GetSegmentsByStatesResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[51]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetSegmentsByStatesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetSegmentsByStatesResponse) ProtoMessage() {}

func (x *GetSegmentsByStatesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[51]
	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 GetSegmentsByStatesResponse.ProtoReflect.Descriptor instead.
func (*GetSegmentsByStatesResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{51}
}

func (x *GetSegmentsByStatesResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *GetSegmentsByStatesResponse) GetSegments() []int64 {
	if x != nil {
		return x.Segments
	}
	return nil
}

type GetFlushedSegmentsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base             *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	CollectionID     int64             `protobuf:"varint,2,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
	PartitionID      int64             `protobuf:"varint,3,opt,name=partitionID,proto3" json:"partitionID,omitempty"`
	IncludeUnhealthy bool              `protobuf:"varint,4,opt,name=includeUnhealthy,proto3" json:"includeUnhealthy,omitempty"`
}

func (x *GetFlushedSegmentsRequest) Reset() {
	*x = GetFlushedSegmentsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[52]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetFlushedSegmentsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetFlushedSegmentsRequest) ProtoMessage() {}

func (x *GetFlushedSegmentsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[52]
	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 GetFlushedSegmentsRequest.ProtoReflect.Descriptor instead.
func (*GetFlushedSegmentsRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{52}
}

func (x *GetFlushedSegmentsRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *GetFlushedSegmentsRequest) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

func (x *GetFlushedSegmentsRequest) GetPartitionID() int64 {
	if x != nil {
		return x.PartitionID
	}
	return 0
}

func (x *GetFlushedSegmentsRequest) GetIncludeUnhealthy() bool {
	if x != nil {
		return x.IncludeUnhealthy
	}
	return false
}

type GetFlushedSegmentsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status   *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	Segments []int64          `protobuf:"varint,2,rep,packed,name=segments,proto3" json:"segments,omitempty"`
}

func (x *GetFlushedSegmentsResponse) Reset() {
	*x = GetFlushedSegmentsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[53]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetFlushedSegmentsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetFlushedSegmentsResponse) ProtoMessage() {}

func (x *GetFlushedSegmentsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[53]
	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 GetFlushedSegmentsResponse.ProtoReflect.Descriptor instead.
func (*GetFlushedSegmentsResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{53}
}

func (x *GetFlushedSegmentsResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *GetFlushedSegmentsResponse) GetSegments() []int64 {
	if x != nil {
		return x.Segments
	}
	return nil
}

type SegmentFlushCompletedMsg struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base    *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	Segment *SegmentInfo      `protobuf:"bytes,2,opt,name=segment,proto3" json:"segment,omitempty"`
}

func (x *SegmentFlushCompletedMsg) Reset() {
	*x = SegmentFlushCompletedMsg{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[54]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SegmentFlushCompletedMsg) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SegmentFlushCompletedMsg) ProtoMessage() {}

func (x *SegmentFlushCompletedMsg) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[54]
	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 SegmentFlushCompletedMsg.ProtoReflect.Descriptor instead.
func (*SegmentFlushCompletedMsg) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{54}
}

func (x *SegmentFlushCompletedMsg) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *SegmentFlushCompletedMsg) GetSegment() *SegmentInfo {
	if x != nil {
		return x.Segment
	}
	return nil
}

type ChannelWatchInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Vchan   *VchannelInfo     `protobuf:"bytes,1,opt,name=vchan,proto3" json:"vchan,omitempty"`
	StartTs int64             `protobuf:"varint,2,opt,name=startTs,proto3" json:"startTs,omitempty"`
	State   ChannelWatchState `protobuf:"varint,3,opt,name=state,proto3,enum=milvus.proto.data.ChannelWatchState" json:"state,omitempty"`
	// the timeout ts, datanode shall do nothing after it
	// NOT USED.
	TimeoutTs int64 `protobuf:"varint,4,opt,name=timeoutTs,proto3" json:"timeoutTs,omitempty"`
	// the schema of the collection to watch, to avoid get schema rpc issues.
	Schema *schemapb.CollectionSchema `protobuf:"bytes,5,opt,name=schema,proto3" json:"schema,omitempty"`
	// watch progress, deprecated
	Progress     int32                    `protobuf:"varint,6,opt,name=progress,proto3" json:"progress,omitempty"`
	OpID         int64                    `protobuf:"varint,7,opt,name=opID,proto3" json:"opID,omitempty"`
	DbProperties []*commonpb.KeyValuePair `protobuf:"bytes,8,rep,name=dbProperties,proto3" json:"dbProperties,omitempty"`
}

func (x *ChannelWatchInfo) Reset() {
	*x = ChannelWatchInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[55]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ChannelWatchInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ChannelWatchInfo) ProtoMessage() {}

func (x *ChannelWatchInfo) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[55]
	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 ChannelWatchInfo.ProtoReflect.Descriptor instead.
func (*ChannelWatchInfo) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{55}
}

func (x *ChannelWatchInfo) GetVchan() *VchannelInfo {
	if x != nil {
		return x.Vchan
	}
	return nil
}

func (x *ChannelWatchInfo) GetStartTs() int64 {
	if x != nil {
		return x.StartTs
	}
	return 0
}

func (x *ChannelWatchInfo) GetState() ChannelWatchState {
	if x != nil {
		return x.State
	}
	return ChannelWatchState_Uncomplete
}

func (x *ChannelWatchInfo) GetTimeoutTs() int64 {
	if x != nil {
		return x.TimeoutTs
	}
	return 0
}

func (x *ChannelWatchInfo) GetSchema() *schemapb.CollectionSchema {
	if x != nil {
		return x.Schema
	}
	return nil
}

func (x *ChannelWatchInfo) GetProgress() int32 {
	if x != nil {
		return x.Progress
	}
	return 0
}

func (x *ChannelWatchInfo) GetOpID() int64 {
	if x != nil {
		return x.OpID
	}
	return 0
}

func (x *ChannelWatchInfo) GetDbProperties() []*commonpb.KeyValuePair {
	if x != nil {
		return x.DbProperties
	}
	return nil
}

type CompactionStateRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base   *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	PlanID int64             `protobuf:"varint,2,opt,name=planID,proto3" json:"planID,omitempty"`
}

func (x *CompactionStateRequest) Reset() {
	*x = CompactionStateRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[56]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CompactionStateRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CompactionStateRequest) ProtoMessage() {}

func (x *CompactionStateRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_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 CompactionStateRequest.ProtoReflect.Descriptor instead.
func (*CompactionStateRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{56}
}

func (x *CompactionStateRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *CompactionStateRequest) GetPlanID() int64 {
	if x != nil {
		return x.PlanID
	}
	return 0
}

type SyncSegmentInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SegmentId  int64                 `protobuf:"varint,1,opt,name=segment_id,json=segmentId,proto3" json:"segment_id,omitempty"`
	PkStatsLog *FieldBinlog          `protobuf:"bytes,2,opt,name=pk_stats_log,json=pkStatsLog,proto3" json:"pk_stats_log,omitempty"`
	State      commonpb.SegmentState `protobuf:"varint,3,opt,name=state,proto3,enum=milvus.proto.common.SegmentState" json:"state,omitempty"`
	Level      SegmentLevel          `protobuf:"varint,4,opt,name=level,proto3,enum=milvus.proto.data.SegmentLevel" json:"level,omitempty"`
	NumOfRows  int64                 `protobuf:"varint,5,opt,name=num_of_rows,json=numOfRows,proto3" json:"num_of_rows,omitempty"`
}

func (x *SyncSegmentInfo) Reset() {
	*x = SyncSegmentInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[57]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SyncSegmentInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SyncSegmentInfo) ProtoMessage() {}

func (x *SyncSegmentInfo) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[57]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SyncSegmentInfo.ProtoReflect.Descriptor instead.
func (*SyncSegmentInfo) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{57}
}

func (x *SyncSegmentInfo) GetSegmentId() int64 {
	if x != nil {
		return x.SegmentId
	}
	return 0
}

func (x *SyncSegmentInfo) GetPkStatsLog() *FieldBinlog {
	if x != nil {
		return x.PkStatsLog
	}
	return nil
}

func (x *SyncSegmentInfo) GetState() commonpb.SegmentState {
	if x != nil {
		return x.State
	}
	return commonpb.SegmentState(0)
}

func (x *SyncSegmentInfo) GetLevel() SegmentLevel {
	if x != nil {
		return x.Level
	}
	return SegmentLevel_Legacy
}

func (x *SyncSegmentInfo) GetNumOfRows() int64 {
	if x != nil {
		return x.NumOfRows
	}
	return 0
}

type SyncSegmentsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Deprecated, after v2.4.3
	PlanID int64 `protobuf:"varint,1,opt,name=planID,proto3" json:"planID,omitempty"`
	// Deprecated, after v2.4.3
	CompactedTo int64 `protobuf:"varint,2,opt,name=compacted_to,json=compactedTo,proto3" json:"compacted_to,omitempty"`
	// Deprecated, after v2.4.3
	NumOfRows int64 `protobuf:"varint,3,opt,name=num_of_rows,json=numOfRows,proto3" json:"num_of_rows,omitempty"`
	// Deprecated, after v2.4.3
	CompactedFrom []int64 `protobuf:"varint,4,rep,packed,name=compacted_from,json=compactedFrom,proto3" json:"compacted_from,omitempty"`
	// Deprecated, after v2.4.3
	StatsLogs    []*FieldBinlog             `protobuf:"bytes,5,rep,name=stats_logs,json=statsLogs,proto3" json:"stats_logs,omitempty"`
	ChannelName  string                     `protobuf:"bytes,6,opt,name=channel_name,json=channelName,proto3" json:"channel_name,omitempty"`
	PartitionId  int64                      `protobuf:"varint,7,opt,name=partition_id,json=partitionId,proto3" json:"partition_id,omitempty"`
	CollectionId int64                      `protobuf:"varint,8,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`
	SegmentInfos map[int64]*SyncSegmentInfo `protobuf:"bytes,9,rep,name=segment_infos,json=segmentInfos,proto3" json:"segment_infos,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *SyncSegmentsRequest) Reset() {
	*x = SyncSegmentsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[58]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SyncSegmentsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SyncSegmentsRequest) ProtoMessage() {}

func (x *SyncSegmentsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[58]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SyncSegmentsRequest.ProtoReflect.Descriptor instead.
func (*SyncSegmentsRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{58}
}

func (x *SyncSegmentsRequest) GetPlanID() int64 {
	if x != nil {
		return x.PlanID
	}
	return 0
}

func (x *SyncSegmentsRequest) GetCompactedTo() int64 {
	if x != nil {
		return x.CompactedTo
	}
	return 0
}

func (x *SyncSegmentsRequest) GetNumOfRows() int64 {
	if x != nil {
		return x.NumOfRows
	}
	return 0
}

func (x *SyncSegmentsRequest) GetCompactedFrom() []int64 {
	if x != nil {
		return x.CompactedFrom
	}
	return nil
}

func (x *SyncSegmentsRequest) GetStatsLogs() []*FieldBinlog {
	if x != nil {
		return x.StatsLogs
	}
	return nil
}

func (x *SyncSegmentsRequest) GetChannelName() string {
	if x != nil {
		return x.ChannelName
	}
	return ""
}

func (x *SyncSegmentsRequest) GetPartitionId() int64 {
	if x != nil {
		return x.PartitionId
	}
	return 0
}

func (x *SyncSegmentsRequest) GetCollectionId() int64 {
	if x != nil {
		return x.CollectionId
	}
	return 0
}

func (x *SyncSegmentsRequest) GetSegmentInfos() map[int64]*SyncSegmentInfo {
	if x != nil {
		return x.SegmentInfos
	}
	return nil
}

type CompactionSegmentBinlogs struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SegmentID           int64          `protobuf:"varint,1,opt,name=segmentID,proto3" json:"segmentID,omitempty"`
	FieldBinlogs        []*FieldBinlog `protobuf:"bytes,2,rep,name=fieldBinlogs,proto3" json:"fieldBinlogs,omitempty"`
	Field2StatslogPaths []*FieldBinlog `protobuf:"bytes,3,rep,name=field2StatslogPaths,proto3" json:"field2StatslogPaths,omitempty"`
	Deltalogs           []*FieldBinlog `protobuf:"bytes,4,rep,name=deltalogs,proto3" json:"deltalogs,omitempty"`
	InsertChannel       string         `protobuf:"bytes,5,opt,name=insert_channel,json=insertChannel,proto3" json:"insert_channel,omitempty"`
	Level               SegmentLevel   `protobuf:"varint,6,opt,name=level,proto3,enum=milvus.proto.data.SegmentLevel" json:"level,omitempty"`
	CollectionID        int64          `protobuf:"varint,7,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
	PartitionID         int64          `protobuf:"varint,8,opt,name=partitionID,proto3" json:"partitionID,omitempty"`
	IsSorted            bool           `protobuf:"varint,9,opt,name=is_sorted,json=isSorted,proto3" json:"is_sorted,omitempty"`
	StorageVersion      int64          `protobuf:"varint,10,opt,name=storage_version,json=storageVersion,proto3" json:"storage_version,omitempty"`
	Manifest            string         `protobuf:"bytes,11,opt,name=manifest,proto3" json:"manifest,omitempty"`
	// expirQuantiles records the expiration timestamptz values of the segment
	// at the 20%, 40%, 60%, 80%, and 100% data distribution levels
	ExpirQuantiles      []int64 `protobuf:"varint,12,rep,packed,name=expirQuantiles,proto3" json:"expirQuantiles,omitempty"`
	IsSortedByNamespace bool    `protobuf:"varint,13,opt,name=is_sorted_by_namespace,json=isSortedByNamespace,proto3" json:"is_sorted_by_namespace,omitempty"`
	// commit_timestamp mirrors SegmentInfo.commit_timestamp.
	// DataNode uses it to protect import/CDC segment rows from premature TTL
	// expiry during compaction: isEntityExpired uses max(row_ts, commit_ts)
	// so stale row timestamps never cause rows to be silently dropped.
	CommitTimestamp uint64 `protobuf:"varint,14,opt,name=commit_timestamp,json=commitTimestamp,proto3" json:"commit_timestamp,omitempty"`
}

func (x *CompactionSegmentBinlogs) Reset() {
	*x = CompactionSegmentBinlogs{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[59]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CompactionSegmentBinlogs) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CompactionSegmentBinlogs) ProtoMessage() {}

func (x *CompactionSegmentBinlogs) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_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 CompactionSegmentBinlogs.ProtoReflect.Descriptor instead.
func (*CompactionSegmentBinlogs) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{59}
}

func (x *CompactionSegmentBinlogs) GetSegmentID() int64 {
	if x != nil {
		return x.SegmentID
	}
	return 0
}

func (x *CompactionSegmentBinlogs) GetFieldBinlogs() []*FieldBinlog {
	if x != nil {
		return x.FieldBinlogs
	}
	return nil
}

func (x *CompactionSegmentBinlogs) GetField2StatslogPaths() []*FieldBinlog {
	if x != nil {
		return x.Field2StatslogPaths
	}
	return nil
}

func (x *CompactionSegmentBinlogs) GetDeltalogs() []*FieldBinlog {
	if x != nil {
		return x.Deltalogs
	}
	return nil
}

func (x *CompactionSegmentBinlogs) GetInsertChannel() string {
	if x != nil {
		return x.InsertChannel
	}
	return ""
}

func (x *CompactionSegmentBinlogs) GetLevel() SegmentLevel {
	if x != nil {
		return x.Level
	}
	return SegmentLevel_Legacy
}

func (x *CompactionSegmentBinlogs) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

func (x *CompactionSegmentBinlogs) GetPartitionID() int64 {
	if x != nil {
		return x.PartitionID
	}
	return 0
}

func (x *CompactionSegmentBinlogs) GetIsSorted() bool {
	if x != nil {
		return x.IsSorted
	}
	return false
}

func (x *CompactionSegmentBinlogs) GetStorageVersion() int64 {
	if x != nil {
		return x.StorageVersion
	}
	return 0
}

func (x *CompactionSegmentBinlogs) GetManifest() string {
	if x != nil {
		return x.Manifest
	}
	return ""
}

func (x *CompactionSegmentBinlogs) GetExpirQuantiles() []int64 {
	if x != nil {
		return x.ExpirQuantiles
	}
	return nil
}

func (x *CompactionSegmentBinlogs) GetIsSortedByNamespace() bool {
	if x != nil {
		return x.IsSortedByNamespace
	}
	return false
}

func (x *CompactionSegmentBinlogs) GetCommitTimestamp() uint64 {
	if x != nil {
		return x.CommitTimestamp
	}
	return 0
}

type CompactionPlan struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlanID         int64                       `protobuf:"varint,1,opt,name=planID,proto3" json:"planID,omitempty"`
	SegmentBinlogs []*CompactionSegmentBinlogs `protobuf:"bytes,2,rep,name=segmentBinlogs,proto3" json:"segmentBinlogs,omitempty"`
	StartTime      int64                       `protobuf:"varint,3,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
	// Deprecated: Marked as deprecated in data_coord.proto.
	TimeoutInSeconds       int32                      `protobuf:"varint,4,opt,name=timeout_in_seconds,json=timeoutInSeconds,proto3" json:"timeout_in_seconds,omitempty"`
	Type                   CompactionType             `protobuf:"varint,5,opt,name=type,proto3,enum=milvus.proto.data.CompactionType" json:"type,omitempty"`
	Timetravel             uint64                     `protobuf:"varint,6,opt,name=timetravel,proto3" json:"timetravel,omitempty"`
	Channel                string                     `protobuf:"bytes,7,opt,name=channel,proto3" json:"channel,omitempty"`
	CollectionTtl          int64                      `protobuf:"varint,8,opt,name=collection_ttl,json=collectionTtl,proto3" json:"collection_ttl,omitempty"` // nanoseconds
	TotalRows              int64                      `protobuf:"varint,9,opt,name=total_rows,json=totalRows,proto3" json:"total_rows,omitempty"`
	Schema                 *schemapb.CollectionSchema `protobuf:"bytes,10,opt,name=schema,proto3" json:"schema,omitempty"`
	ClusteringKeyField     int64                      `protobuf:"varint,11,opt,name=clustering_key_field,json=clusteringKeyField,proto3" json:"clustering_key_field,omitempty"`
	MaxSegmentRows         int64                      `protobuf:"varint,12,opt,name=max_segment_rows,json=maxSegmentRows,proto3" json:"max_segment_rows,omitempty"`
	PreferSegmentRows      int64                      `protobuf:"varint,13,opt,name=prefer_segment_rows,json=preferSegmentRows,proto3" json:"prefer_segment_rows,omitempty"`
	AnalyzeResultPath      string                     `protobuf:"bytes,14,opt,name=analyze_result_path,json=analyzeResultPath,proto3" json:"analyze_result_path,omitempty"`
	AnalyzeSegmentIds      []int64                    `protobuf:"varint,15,rep,packed,name=analyze_segment_ids,json=analyzeSegmentIds,proto3" json:"analyze_segment_ids,omitempty"`
	State                  int32                      `protobuf:"varint,16,opt,name=state,proto3" json:"state,omitempty"`
	BeginLogID             int64                      `protobuf:"varint,17,opt,name=begin_logID,json=beginLogID,proto3" json:"begin_logID,omitempty"` // deprecated, use pre_allocated_logIDs instead.
	PreAllocatedSegmentIDs *IDRange                   `protobuf:"bytes,18,opt,name=pre_allocated_segmentIDs,json=preAllocatedSegmentIDs,proto3" json:"pre_allocated_segmentIDs,omitempty"`
	SlotUsage              int64                      `protobuf:"varint,19,opt,name=slot_usage,json=slotUsage,proto3" json:"slot_usage,omitempty"`
	MaxSize                int64                      `protobuf:"varint,20,opt,name=max_size,json=maxSize,proto3" json:"max_size,omitempty"`
	// bf path for importing
	// collection is importing
	PreAllocatedLogIDs        *IDRange                       `protobuf:"bytes,21,opt,name=pre_allocated_logIDs,json=preAllocatedLogIDs,proto3" json:"pre_allocated_logIDs,omitempty"`
	JsonParams                string                         `protobuf:"bytes,22,opt,name=json_params,json=jsonParams,proto3" json:"json_params,omitempty"`
	CurrentScalarIndexVersion int32                          `protobuf:"varint,23,opt,name=current_scalar_index_version,json=currentScalarIndexVersion,proto3" json:"current_scalar_index_version,omitempty"`
	PluginContext             []*commonpb.KeyValuePair       `protobuf:"bytes,29,rep,name=plugin_context,json=pluginContext,proto3" json:"plugin_context,omitempty"`
	FileResources             []*internalpb.FileResourceInfo `protobuf:"bytes,30,rep,name=file_resources,json=fileResources,proto3" json:"file_resources,omitempty"`
	Functions                 []*schemapb.FunctionSchema     `protobuf:"bytes,31,rep,name=functions,proto3" json:"functions,omitempty"`
}

func (x *CompactionPlan) Reset() {
	*x = CompactionPlan{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[60]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CompactionPlan) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CompactionPlan) ProtoMessage() {}

func (x *CompactionPlan) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_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 CompactionPlan.ProtoReflect.Descriptor instead.
func (*CompactionPlan) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{60}
}

func (x *CompactionPlan) GetPlanID() int64 {
	if x != nil {
		return x.PlanID
	}
	return 0
}

func (x *CompactionPlan) GetSegmentBinlogs() []*CompactionSegmentBinlogs {
	if x != nil {
		return x.SegmentBinlogs
	}
	return nil
}

func (x *CompactionPlan) GetStartTime() int64 {
	if x != nil {
		return x.StartTime
	}
	return 0
}

// Deprecated: Marked as deprecated in data_coord.proto.
func (x *CompactionPlan) GetTimeoutInSeconds() int32 {
	if x != nil {
		return x.TimeoutInSeconds
	}
	return 0
}

func (x *CompactionPlan) GetType() CompactionType {
	if x != nil {
		return x.Type
	}
	return CompactionType_UndefinedCompaction
}

func (x *CompactionPlan) GetTimetravel() uint64 {
	if x != nil {
		return x.Timetravel
	}
	return 0
}

func (x *CompactionPlan) GetChannel() string {
	if x != nil {
		return x.Channel
	}
	return ""
}

func (x *CompactionPlan) GetCollectionTtl() int64 {
	if x != nil {
		return x.CollectionTtl
	}
	return 0
}

func (x *CompactionPlan) GetTotalRows() int64 {
	if x != nil {
		return x.TotalRows
	}
	return 0
}

func (x *CompactionPlan) GetSchema() *schemapb.CollectionSchema {
	if x != nil {
		return x.Schema
	}
	return nil
}

func (x *CompactionPlan) GetClusteringKeyField() int64 {
	if x != nil {
		return x.ClusteringKeyField
	}
	return 0
}

func (x *CompactionPlan) GetMaxSegmentRows() int64 {
	if x != nil {
		return x.MaxSegmentRows
	}
	return 0
}

func (x *CompactionPlan) GetPreferSegmentRows() int64 {
	if x != nil {
		return x.PreferSegmentRows
	}
	return 0
}

func (x *CompactionPlan) GetAnalyzeResultPath() string {
	if x != nil {
		return x.AnalyzeResultPath
	}
	return ""
}

func (x *CompactionPlan) GetAnalyzeSegmentIds() []int64 {
	if x != nil {
		return x.AnalyzeSegmentIds
	}
	return nil
}

func (x *CompactionPlan) GetState() int32 {
	if x != nil {
		return x.State
	}
	return 0
}

func (x *CompactionPlan) GetBeginLogID() int64 {
	if x != nil {
		return x.BeginLogID
	}
	return 0
}

func (x *CompactionPlan) GetPreAllocatedSegmentIDs() *IDRange {
	if x != nil {
		return x.PreAllocatedSegmentIDs
	}
	return nil
}

func (x *CompactionPlan) GetSlotUsage() int64 {
	if x != nil {
		return x.SlotUsage
	}
	return 0
}

func (x *CompactionPlan) GetMaxSize() int64 {
	if x != nil {
		return x.MaxSize
	}
	return 0
}

func (x *CompactionPlan) GetPreAllocatedLogIDs() *IDRange {
	if x != nil {
		return x.PreAllocatedLogIDs
	}
	return nil
}

func (x *CompactionPlan) GetJsonParams() string {
	if x != nil {
		return x.JsonParams
	}
	return ""
}

func (x *CompactionPlan) GetCurrentScalarIndexVersion() int32 {
	if x != nil {
		return x.CurrentScalarIndexVersion
	}
	return 0
}

func (x *CompactionPlan) GetPluginContext() []*commonpb.KeyValuePair {
	if x != nil {
		return x.PluginContext
	}
	return nil
}

func (x *CompactionPlan) GetFileResources() []*internalpb.FileResourceInfo {
	if x != nil {
		return x.FileResources
	}
	return nil
}

func (x *CompactionPlan) GetFunctions() []*schemapb.FunctionSchema {
	if x != nil {
		return x.Functions
	}
	return nil
}

type CompactionSegment struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlanID              int64                     `protobuf:"varint,1,opt,name=planID,proto3" json:"planID,omitempty"` // deprecated after 2.3.4
	SegmentID           int64                     `protobuf:"varint,2,opt,name=segmentID,proto3" json:"segmentID,omitempty"`
	NumOfRows           int64                     `protobuf:"varint,3,opt,name=num_of_rows,json=numOfRows,proto3" json:"num_of_rows,omitempty"`
	InsertLogs          []*FieldBinlog            `protobuf:"bytes,4,rep,name=insert_logs,json=insertLogs,proto3" json:"insert_logs,omitempty"`
	Field2StatslogPaths []*FieldBinlog            `protobuf:"bytes,5,rep,name=field2StatslogPaths,proto3" json:"field2StatslogPaths,omitempty"`
	Deltalogs           []*FieldBinlog            `protobuf:"bytes,6,rep,name=deltalogs,proto3" json:"deltalogs,omitempty"`
	Channel             string                    `protobuf:"bytes,7,opt,name=channel,proto3" json:"channel,omitempty"`
	IsSorted            bool                      `protobuf:"varint,8,opt,name=is_sorted,json=isSorted,proto3" json:"is_sorted,omitempty"`
	Bm25Logs            []*FieldBinlog            `protobuf:"bytes,9,rep,name=bm25logs,proto3" json:"bm25logs,omitempty"`
	StorageVersion      int64                     `protobuf:"varint,10,opt,name=storage_version,json=storageVersion,proto3" json:"storage_version,omitempty"`
	TextStatsLogs       map[int64]*TextIndexStats `protobuf:"bytes,11,rep,name=text_stats_logs,json=textStatsLogs,proto3" json:"text_stats_logs,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	Manifest            string                    `protobuf:"bytes,12,opt,name=manifest,proto3" json:"manifest,omitempty"`
	ExpirQuantiles      []int64                   `protobuf:"varint,13,rep,packed,name=expirQuantiles,proto3" json:"expirQuantiles,omitempty"`
	IsSortedByNamespace bool                      `protobuf:"varint,14,opt,name=is_sorted_by_namespace,json=isSortedByNamespace,proto3" json:"is_sorted_by_namespace,omitempty"`
	// base_manifest is the manifest the in-place schema-bump result was built
	// on (the plan-pinned base). DataCoord adopts the result only if it still
	// equals the segment's current manifest (optimistic-concurrency CAS),
	// mirroring StatsResult.base_manifest.
	BaseManifest string `protobuf:"bytes,15,opt,name=base_manifest,json=baseManifest,proto3" json:"base_manifest,omitempty"`
	// Aggregate footprint of this compaction output. Populated by the
	// compactor (mix / sort / bump-schema / L0) at write completion and
	// copied verbatim onto SegmentInfo.Stats by the DataCoord receiver,
	// so the receiver never recomputes from FieldBinlog arrays for
	// compaction results. For V3 outputs whose stats blob lives in the
	// manifest, this is the only authoritative source for
	// stats_binlog_size.
	Stats *Statistics `protobuf:"bytes,16,opt,name=stats,proto3" json:"stats,omitempty"`
}

func (x *CompactionSegment) Reset() {
	*x = CompactionSegment{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[61]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CompactionSegment) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CompactionSegment) ProtoMessage() {}

func (x *CompactionSegment) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_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 CompactionSegment.ProtoReflect.Descriptor instead.
func (*CompactionSegment) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{61}
}

func (x *CompactionSegment) GetPlanID() int64 {
	if x != nil {
		return x.PlanID
	}
	return 0
}

func (x *CompactionSegment) GetSegmentID() int64 {
	if x != nil {
		return x.SegmentID
	}
	return 0
}

func (x *CompactionSegment) GetNumOfRows() int64 {
	if x != nil {
		return x.NumOfRows
	}
	return 0
}

func (x *CompactionSegment) GetInsertLogs() []*FieldBinlog {
	if x != nil {
		return x.InsertLogs
	}
	return nil
}

func (x *CompactionSegment) GetField2StatslogPaths() []*FieldBinlog {
	if x != nil {
		return x.Field2StatslogPaths
	}
	return nil
}

func (x *CompactionSegment) GetDeltalogs() []*FieldBinlog {
	if x != nil {
		return x.Deltalogs
	}
	return nil
}

func (x *CompactionSegment) GetChannel() string {
	if x != nil {
		return x.Channel
	}
	return ""
}

func (x *CompactionSegment) GetIsSorted() bool {
	if x != nil {
		return x.IsSorted
	}
	return false
}

func (x *CompactionSegment) GetBm25Logs() []*FieldBinlog {
	if x != nil {
		return x.Bm25Logs
	}
	return nil
}

func (x *CompactionSegment) GetStorageVersion() int64 {
	if x != nil {
		return x.StorageVersion
	}
	return 0
}

func (x *CompactionSegment) GetTextStatsLogs() map[int64]*TextIndexStats {
	if x != nil {
		return x.TextStatsLogs
	}
	return nil
}

func (x *CompactionSegment) GetManifest() string {
	if x != nil {
		return x.Manifest
	}
	return ""
}

func (x *CompactionSegment) GetExpirQuantiles() []int64 {
	if x != nil {
		return x.ExpirQuantiles
	}
	return nil
}

func (x *CompactionSegment) GetIsSortedByNamespace() bool {
	if x != nil {
		return x.IsSortedByNamespace
	}
	return false
}

func (x *CompactionSegment) GetBaseManifest() string {
	if x != nil {
		return x.BaseManifest
	}
	return ""
}

func (x *CompactionSegment) GetStats() *Statistics {
	if x != nil {
		return x.Stats
	}
	return nil
}

type CompactionPlanResult struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlanID   int64                `protobuf:"varint,1,opt,name=planID,proto3" json:"planID,omitempty"`
	State    CompactionTaskState  `protobuf:"varint,2,opt,name=state,proto3,enum=milvus.proto.data.CompactionTaskState" json:"state,omitempty"`
	Segments []*CompactionSegment `protobuf:"bytes,3,rep,name=segments,proto3" json:"segments,omitempty"`
	Channel  string               `protobuf:"bytes,4,opt,name=channel,proto3" json:"channel,omitempty"`
	Type     CompactionType       `protobuf:"varint,5,opt,name=type,proto3,enum=milvus.proto.data.CompactionType" json:"type,omitempty"`
}

func (x *CompactionPlanResult) Reset() {
	*x = CompactionPlanResult{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[62]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CompactionPlanResult) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CompactionPlanResult) ProtoMessage() {}

func (x *CompactionPlanResult) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_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 CompactionPlanResult.ProtoReflect.Descriptor instead.
func (*CompactionPlanResult) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{62}
}

func (x *CompactionPlanResult) GetPlanID() int64 {
	if x != nil {
		return x.PlanID
	}
	return 0
}

func (x *CompactionPlanResult) GetState() CompactionTaskState {
	if x != nil {
		return x.State
	}
	return CompactionTaskState_unknown
}

func (x *CompactionPlanResult) GetSegments() []*CompactionSegment {
	if x != nil {
		return x.Segments
	}
	return nil
}

func (x *CompactionPlanResult) GetChannel() string {
	if x != nil {
		return x.Channel
	}
	return ""
}

func (x *CompactionPlanResult) GetType() CompactionType {
	if x != nil {
		return x.Type
	}
	return CompactionType_UndefinedCompaction
}

type CompactionStateResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status  *commonpb.Status        `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	Results []*CompactionPlanResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"`
}

func (x *CompactionStateResponse) Reset() {
	*x = CompactionStateResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[63]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CompactionStateResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CompactionStateResponse) ProtoMessage() {}

func (x *CompactionStateResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[63]
	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 CompactionStateResponse.ProtoReflect.Descriptor instead.
func (*CompactionStateResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{63}
}

func (x *CompactionStateResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *CompactionStateResponse) GetResults() []*CompactionPlanResult {
	if x != nil {
		return x.Results
	}
	return nil
}

// Deprecated
type SegmentFieldBinlogMeta struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	FieldID    int64  `protobuf:"varint,1,opt,name=fieldID,proto3" json:"fieldID,omitempty"`
	BinlogPath string `protobuf:"bytes,2,opt,name=binlog_path,json=binlogPath,proto3" json:"binlog_path,omitempty"`
}

func (x *SegmentFieldBinlogMeta) Reset() {
	*x = SegmentFieldBinlogMeta{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[64]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SegmentFieldBinlogMeta) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SegmentFieldBinlogMeta) ProtoMessage() {}

func (x *SegmentFieldBinlogMeta) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[64]
	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 SegmentFieldBinlogMeta.ProtoReflect.Descriptor instead.
func (*SegmentFieldBinlogMeta) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{64}
}

func (x *SegmentFieldBinlogMeta) GetFieldID() int64 {
	if x != nil {
		return x.FieldID
	}
	return 0
}

func (x *SegmentFieldBinlogMeta) GetBinlogPath() string {
	if x != nil {
		return x.BinlogPath
	}
	return ""
}

type WatchChannelsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CollectionID    int64                       `protobuf:"varint,1,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
	ChannelNames    []string                    `protobuf:"bytes,2,rep,name=channelNames,proto3" json:"channelNames,omitempty"`
	StartPositions  []*commonpb.KeyDataPair     `protobuf:"bytes,3,rep,name=start_positions,json=startPositions,proto3" json:"start_positions,omitempty"`
	Schema          *schemapb.CollectionSchema  `protobuf:"bytes,4,opt,name=schema,proto3" json:"schema,omitempty"`
	CreateTimestamp uint64                      `protobuf:"varint,5,opt,name=create_timestamp,json=createTimestamp,proto3" json:"create_timestamp,omitempty"`
	DbProperties    []*commonpb.KeyValuePair    `protobuf:"bytes,6,rep,name=db_properties,json=dbProperties,proto3" json:"db_properties,omitempty"`
	ChannelWalNames map[string]commonpb.WALName `protobuf:"bytes,7,rep,name=channel_wal_names,json=channelWalNames,proto3" json:"channel_wal_names,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=milvus.proto.common.WALName"`
}

func (x *WatchChannelsRequest) Reset() {
	*x = WatchChannelsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[65]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WatchChannelsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WatchChannelsRequest) ProtoMessage() {}

func (x *WatchChannelsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[65]
	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 WatchChannelsRequest.ProtoReflect.Descriptor instead.
func (*WatchChannelsRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{65}
}

func (x *WatchChannelsRequest) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

func (x *WatchChannelsRequest) GetChannelNames() []string {
	if x != nil {
		return x.ChannelNames
	}
	return nil
}

func (x *WatchChannelsRequest) GetStartPositions() []*commonpb.KeyDataPair {
	if x != nil {
		return x.StartPositions
	}
	return nil
}

func (x *WatchChannelsRequest) GetSchema() *schemapb.CollectionSchema {
	if x != nil {
		return x.Schema
	}
	return nil
}

func (x *WatchChannelsRequest) GetCreateTimestamp() uint64 {
	if x != nil {
		return x.CreateTimestamp
	}
	return 0
}

func (x *WatchChannelsRequest) GetDbProperties() []*commonpb.KeyValuePair {
	if x != nil {
		return x.DbProperties
	}
	return nil
}

func (x *WatchChannelsRequest) GetChannelWalNames() map[string]commonpb.WALName {
	if x != nil {
		return x.ChannelWalNames
	}
	return nil
}

type WatchChannelsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
}

func (x *WatchChannelsResponse) Reset() {
	*x = WatchChannelsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[66]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WatchChannelsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WatchChannelsResponse) ProtoMessage() {}

func (x *WatchChannelsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[66]
	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 WatchChannelsResponse.ProtoReflect.Descriptor instead.
func (*WatchChannelsResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{66}
}

func (x *WatchChannelsResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

type SetSegmentStateRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base      *commonpb.MsgBase     `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	SegmentId int64                 `protobuf:"varint,2,opt,name=segment_id,json=segmentId,proto3" json:"segment_id,omitempty"`
	NewState  commonpb.SegmentState `protobuf:"varint,3,opt,name=new_state,json=newState,proto3,enum=milvus.proto.common.SegmentState" json:"new_state,omitempty"`
}

func (x *SetSegmentStateRequest) Reset() {
	*x = SetSegmentStateRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[67]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SetSegmentStateRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SetSegmentStateRequest) ProtoMessage() {}

func (x *SetSegmentStateRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[67]
	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 SetSegmentStateRequest.ProtoReflect.Descriptor instead.
func (*SetSegmentStateRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{67}
}

func (x *SetSegmentStateRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *SetSegmentStateRequest) GetSegmentId() int64 {
	if x != nil {
		return x.SegmentId
	}
	return 0
}

func (x *SetSegmentStateRequest) GetNewState() commonpb.SegmentState {
	if x != nil {
		return x.NewState
	}
	return commonpb.SegmentState(0)
}

type SetSegmentStateResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
}

func (x *SetSegmentStateResponse) Reset() {
	*x = SetSegmentStateResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[68]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SetSegmentStateResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SetSegmentStateResponse) ProtoMessage() {}

func (x *SetSegmentStateResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[68]
	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 SetSegmentStateResponse.ProtoReflect.Descriptor instead.
func (*SetSegmentStateResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{68}
}

func (x *SetSegmentStateResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

type DropVirtualChannelRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base        *commonpb.MsgBase            `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	ChannelName string                       `protobuf:"bytes,2,opt,name=channel_name,json=channelName,proto3" json:"channel_name,omitempty"`
	Segments    []*DropVirtualChannelSegment `protobuf:"bytes,3,rep,name=segments,proto3" json:"segments,omitempty"`
}

func (x *DropVirtualChannelRequest) Reset() {
	*x = DropVirtualChannelRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[69]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DropVirtualChannelRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DropVirtualChannelRequest) ProtoMessage() {}

func (x *DropVirtualChannelRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[69]
	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 DropVirtualChannelRequest.ProtoReflect.Descriptor instead.
func (*DropVirtualChannelRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{69}
}

func (x *DropVirtualChannelRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *DropVirtualChannelRequest) GetChannelName() string {
	if x != nil {
		return x.ChannelName
	}
	return ""
}

func (x *DropVirtualChannelRequest) GetSegments() []*DropVirtualChannelSegment {
	if x != nil {
		return x.Segments
	}
	return nil
}

type DropVirtualChannelSegment struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SegmentID           int64              `protobuf:"varint,1,opt,name=segmentID,proto3" json:"segmentID,omitempty"`
	CollectionID        int64              `protobuf:"varint,2,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
	Field2BinlogPaths   []*FieldBinlog     `protobuf:"bytes,3,rep,name=field2BinlogPaths,proto3" json:"field2BinlogPaths,omitempty"`
	Field2StatslogPaths []*FieldBinlog     `protobuf:"bytes,4,rep,name=field2StatslogPaths,proto3" json:"field2StatslogPaths,omitempty"`
	Deltalogs           []*FieldBinlog     `protobuf:"bytes,5,rep,name=deltalogs,proto3" json:"deltalogs,omitempty"`
	StartPosition       *msgpb.MsgPosition `protobuf:"bytes,6,opt,name=startPosition,proto3" json:"startPosition,omitempty"`
	CheckPoint          *msgpb.MsgPosition `protobuf:"bytes,7,opt,name=checkPoint,proto3" json:"checkPoint,omitempty"`
	NumOfRows           int64              `protobuf:"varint,8,opt,name=numOfRows,proto3" json:"numOfRows,omitempty"`
}

func (x *DropVirtualChannelSegment) Reset() {
	*x = DropVirtualChannelSegment{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[70]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DropVirtualChannelSegment) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DropVirtualChannelSegment) ProtoMessage() {}

func (x *DropVirtualChannelSegment) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[70]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DropVirtualChannelSegment.ProtoReflect.Descriptor instead.
func (*DropVirtualChannelSegment) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{70}
}

func (x *DropVirtualChannelSegment) GetSegmentID() int64 {
	if x != nil {
		return x.SegmentID
	}
	return 0
}

func (x *DropVirtualChannelSegment) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

func (x *DropVirtualChannelSegment) GetField2BinlogPaths() []*FieldBinlog {
	if x != nil {
		return x.Field2BinlogPaths
	}
	return nil
}

func (x *DropVirtualChannelSegment) GetField2StatslogPaths() []*FieldBinlog {
	if x != nil {
		return x.Field2StatslogPaths
	}
	return nil
}

func (x *DropVirtualChannelSegment) GetDeltalogs() []*FieldBinlog {
	if x != nil {
		return x.Deltalogs
	}
	return nil
}

func (x *DropVirtualChannelSegment) GetStartPosition() *msgpb.MsgPosition {
	if x != nil {
		return x.StartPosition
	}
	return nil
}

func (x *DropVirtualChannelSegment) GetCheckPoint() *msgpb.MsgPosition {
	if x != nil {
		return x.CheckPoint
	}
	return nil
}

func (x *DropVirtualChannelSegment) GetNumOfRows() int64 {
	if x != nil {
		return x.NumOfRows
	}
	return 0
}

type DropVirtualChannelResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
}

func (x *DropVirtualChannelResponse) Reset() {
	*x = DropVirtualChannelResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[71]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DropVirtualChannelResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DropVirtualChannelResponse) ProtoMessage() {}

func (x *DropVirtualChannelResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[71]
	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 DropVirtualChannelResponse.ProtoReflect.Descriptor instead.
func (*DropVirtualChannelResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{71}
}

func (x *DropVirtualChannelResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

type UpdateSegmentStatisticsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base  *commonpb.MsgBase        `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	Stats []*commonpb.SegmentStats `protobuf:"bytes,2,rep,name=stats,proto3" json:"stats,omitempty"`
}

func (x *UpdateSegmentStatisticsRequest) Reset() {
	*x = UpdateSegmentStatisticsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[72]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateSegmentStatisticsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateSegmentStatisticsRequest) ProtoMessage() {}

func (x *UpdateSegmentStatisticsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[72]
	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 UpdateSegmentStatisticsRequest.ProtoReflect.Descriptor instead.
func (*UpdateSegmentStatisticsRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{72}
}

func (x *UpdateSegmentStatisticsRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *UpdateSegmentStatisticsRequest) GetStats() []*commonpb.SegmentStats {
	if x != nil {
		return x.Stats
	}
	return nil
}

type UpdateChannelCheckpointRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base               *commonpb.MsgBase    `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	VChannel           string               `protobuf:"bytes,2,opt,name=vChannel,proto3" json:"vChannel,omitempty"` // deprecated, keep it for compatibility
	Position           *msgpb.MsgPosition   `protobuf:"bytes,3,opt,name=position,proto3" json:"position,omitempty"` // deprecated, keep it for compatibility
	ChannelCheckpoints []*msgpb.MsgPosition `protobuf:"bytes,4,rep,name=channel_checkpoints,json=channelCheckpoints,proto3" json:"channel_checkpoints,omitempty"`
}

func (x *UpdateChannelCheckpointRequest) Reset() {
	*x = UpdateChannelCheckpointRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[73]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateChannelCheckpointRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateChannelCheckpointRequest) ProtoMessage() {}

func (x *UpdateChannelCheckpointRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[73]
	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 UpdateChannelCheckpointRequest.ProtoReflect.Descriptor instead.
func (*UpdateChannelCheckpointRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{73}
}

func (x *UpdateChannelCheckpointRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *UpdateChannelCheckpointRequest) GetVChannel() string {
	if x != nil {
		return x.VChannel
	}
	return ""
}

func (x *UpdateChannelCheckpointRequest) GetPosition() *msgpb.MsgPosition {
	if x != nil {
		return x.Position
	}
	return nil
}

func (x *UpdateChannelCheckpointRequest) GetChannelCheckpoints() []*msgpb.MsgPosition {
	if x != nil {
		return x.ChannelCheckpoints
	}
	return nil
}

type ResendSegmentStatsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
}

func (x *ResendSegmentStatsRequest) Reset() {
	*x = ResendSegmentStatsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[74]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ResendSegmentStatsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResendSegmentStatsRequest) ProtoMessage() {}

func (x *ResendSegmentStatsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[74]
	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 ResendSegmentStatsRequest.ProtoReflect.Descriptor instead.
func (*ResendSegmentStatsRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{74}
}

func (x *ResendSegmentStatsRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

type ResendSegmentStatsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status    *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	SegResent []int64          `protobuf:"varint,2,rep,packed,name=seg_resent,json=segResent,proto3" json:"seg_resent,omitempty"`
}

func (x *ResendSegmentStatsResponse) Reset() {
	*x = ResendSegmentStatsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[75]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ResendSegmentStatsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResendSegmentStatsResponse) ProtoMessage() {}

func (x *ResendSegmentStatsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[75]
	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 ResendSegmentStatsResponse.ProtoReflect.Descriptor instead.
func (*ResendSegmentStatsResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{75}
}

func (x *ResendSegmentStatsResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *ResendSegmentStatsResponse) GetSegResent() []int64 {
	if x != nil {
		return x.SegResent
	}
	return nil
}

type MarkSegmentsDroppedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base       *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	SegmentIds []int64           `protobuf:"varint,2,rep,packed,name=segment_ids,json=segmentIds,proto3" json:"segment_ids,omitempty"` // IDs of segments that needs to be marked as `dropped`.
}

func (x *MarkSegmentsDroppedRequest) Reset() {
	*x = MarkSegmentsDroppedRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[76]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MarkSegmentsDroppedRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MarkSegmentsDroppedRequest) ProtoMessage() {}

func (x *MarkSegmentsDroppedRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[76]
	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 MarkSegmentsDroppedRequest.ProtoReflect.Descriptor instead.
func (*MarkSegmentsDroppedRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{76}
}

func (x *MarkSegmentsDroppedRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *MarkSegmentsDroppedRequest) GetSegmentIds() []int64 {
	if x != nil {
		return x.SegmentIds
	}
	return nil
}

type SegmentReferenceLock struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	TaskID     int64   `protobuf:"varint,1,opt,name=taskID,proto3" json:"taskID,omitempty"`
	NodeID     int64   `protobuf:"varint,2,opt,name=nodeID,proto3" json:"nodeID,omitempty"`
	SegmentIDs []int64 `protobuf:"varint,3,rep,packed,name=segmentIDs,proto3" json:"segmentIDs,omitempty"`
}

func (x *SegmentReferenceLock) Reset() {
	*x = SegmentReferenceLock{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[77]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SegmentReferenceLock) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SegmentReferenceLock) ProtoMessage() {}

func (x *SegmentReferenceLock) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[77]
	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 SegmentReferenceLock.ProtoReflect.Descriptor instead.
func (*SegmentReferenceLock) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{77}
}

func (x *SegmentReferenceLock) GetTaskID() int64 {
	if x != nil {
		return x.TaskID
	}
	return 0
}

func (x *SegmentReferenceLock) GetNodeID() int64 {
	if x != nil {
		return x.NodeID
	}
	return 0
}

func (x *SegmentReferenceLock) GetSegmentIDs() []int64 {
	if x != nil {
		return x.SegmentIDs
	}
	return nil
}

type AlterCollectionRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CollectionID   int64                      `protobuf:"varint,1,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
	Schema         *schemapb.CollectionSchema `protobuf:"bytes,2,opt,name=schema,proto3" json:"schema,omitempty"`
	PartitionIDs   []int64                    `protobuf:"varint,3,rep,packed,name=partitionIDs,proto3" json:"partitionIDs,omitempty"`
	StartPositions []*commonpb.KeyDataPair    `protobuf:"bytes,4,rep,name=start_positions,json=startPositions,proto3" json:"start_positions,omitempty"`
	Properties     []*commonpb.KeyValuePair   `protobuf:"bytes,5,rep,name=properties,proto3" json:"properties,omitempty"`
	DbID           int64                      `protobuf:"varint,6,opt,name=dbID,proto3" json:"dbID,omitempty"`
	VChannels      []string                   `protobuf:"bytes,7,rep,name=vChannels,proto3" json:"vChannels,omitempty"`
}

func (x *AlterCollectionRequest) Reset() {
	*x = AlterCollectionRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[78]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AlterCollectionRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AlterCollectionRequest) ProtoMessage() {}

func (x *AlterCollectionRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[78]
	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 AlterCollectionRequest.ProtoReflect.Descriptor instead.
func (*AlterCollectionRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{78}
}

func (x *AlterCollectionRequest) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

func (x *AlterCollectionRequest) GetSchema() *schemapb.CollectionSchema {
	if x != nil {
		return x.Schema
	}
	return nil
}

func (x *AlterCollectionRequest) GetPartitionIDs() []int64 {
	if x != nil {
		return x.PartitionIDs
	}
	return nil
}

func (x *AlterCollectionRequest) GetStartPositions() []*commonpb.KeyDataPair {
	if x != nil {
		return x.StartPositions
	}
	return nil
}

func (x *AlterCollectionRequest) GetProperties() []*commonpb.KeyValuePair {
	if x != nil {
		return x.Properties
	}
	return nil
}

func (x *AlterCollectionRequest) GetDbID() int64 {
	if x != nil {
		return x.DbID
	}
	return 0
}

func (x *AlterCollectionRequest) GetVChannels() []string {
	if x != nil {
		return x.VChannels
	}
	return nil
}

type AddCollectionFieldRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CollectionID   int64                      `protobuf:"varint,1,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
	DbID           int64                      `protobuf:"varint,2,opt,name=dbID,proto3" json:"dbID,omitempty"`
	FieldSchema    *schemapb.FieldSchema      `protobuf:"bytes,3,opt,name=field_schema,json=fieldSchema,proto3" json:"field_schema,omitempty"`
	Schema         *schemapb.CollectionSchema `protobuf:"bytes,4,opt,name=schema,proto3" json:"schema,omitempty"`
	PartitionIDs   []int64                    `protobuf:"varint,5,rep,packed,name=partitionIDs,proto3" json:"partitionIDs,omitempty"`
	StartPositions []*commonpb.KeyDataPair    `protobuf:"bytes,6,rep,name=start_positions,json=startPositions,proto3" json:"start_positions,omitempty"`
	Properties     []*commonpb.KeyValuePair   `protobuf:"bytes,7,rep,name=properties,proto3" json:"properties,omitempty"`
	VChannels      []string                   `protobuf:"bytes,8,rep,name=vChannels,proto3" json:"vChannels,omitempty"`
}

func (x *AddCollectionFieldRequest) Reset() {
	*x = AddCollectionFieldRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[79]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AddCollectionFieldRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AddCollectionFieldRequest) ProtoMessage() {}

func (x *AddCollectionFieldRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[79]
	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 AddCollectionFieldRequest.ProtoReflect.Descriptor instead.
func (*AddCollectionFieldRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{79}
}

func (x *AddCollectionFieldRequest) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

func (x *AddCollectionFieldRequest) GetDbID() int64 {
	if x != nil {
		return x.DbID
	}
	return 0
}

func (x *AddCollectionFieldRequest) GetFieldSchema() *schemapb.FieldSchema {
	if x != nil {
		return x.FieldSchema
	}
	return nil
}

func (x *AddCollectionFieldRequest) GetSchema() *schemapb.CollectionSchema {
	if x != nil {
		return x.Schema
	}
	return nil
}

func (x *AddCollectionFieldRequest) GetPartitionIDs() []int64 {
	if x != nil {
		return x.PartitionIDs
	}
	return nil
}

func (x *AddCollectionFieldRequest) GetStartPositions() []*commonpb.KeyDataPair {
	if x != nil {
		return x.StartPositions
	}
	return nil
}

func (x *AddCollectionFieldRequest) GetProperties() []*commonpb.KeyValuePair {
	if x != nil {
		return x.Properties
	}
	return nil
}

func (x *AddCollectionFieldRequest) GetVChannels() []string {
	if x != nil {
		return x.VChannels
	}
	return nil
}

type GcConfirmRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CollectionId int64 `protobuf:"varint,1,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`
	PartitionId  int64 `protobuf:"varint,2,opt,name=partition_id,json=partitionId,proto3" json:"partition_id,omitempty"` // -1 means whole collection.
}

func (x *GcConfirmRequest) Reset() {
	*x = GcConfirmRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[80]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GcConfirmRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GcConfirmRequest) ProtoMessage() {}

func (x *GcConfirmRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[80]
	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 GcConfirmRequest.ProtoReflect.Descriptor instead.
func (*GcConfirmRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{80}
}

func (x *GcConfirmRequest) GetCollectionId() int64 {
	if x != nil {
		return x.CollectionId
	}
	return 0
}

func (x *GcConfirmRequest) GetPartitionId() int64 {
	if x != nil {
		return x.PartitionId
	}
	return 0
}

type GcConfirmResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status     *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	GcFinished bool             `protobuf:"varint,2,opt,name=gc_finished,json=gcFinished,proto3" json:"gc_finished,omitempty"`
}

func (x *GcConfirmResponse) Reset() {
	*x = GcConfirmResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[81]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GcConfirmResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GcConfirmResponse) ProtoMessage() {}

func (x *GcConfirmResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[81]
	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 GcConfirmResponse.ProtoReflect.Descriptor instead.
func (*GcConfirmResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{81}
}

func (x *GcConfirmResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *GcConfirmResponse) GetGcFinished() bool {
	if x != nil {
		return x.GcFinished
	}
	return false
}

type ReportDataNodeTtMsgsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base *commonpb.MsgBase      `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	Msgs []*msgpb.DataNodeTtMsg `protobuf:"bytes,2,rep,name=msgs,proto3" json:"msgs,omitempty"` // -1 means whole collection.
}

func (x *ReportDataNodeTtMsgsRequest) Reset() {
	*x = ReportDataNodeTtMsgsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[82]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ReportDataNodeTtMsgsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReportDataNodeTtMsgsRequest) ProtoMessage() {}

func (x *ReportDataNodeTtMsgsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[82]
	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 ReportDataNodeTtMsgsRequest.ProtoReflect.Descriptor instead.
func (*ReportDataNodeTtMsgsRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{82}
}

func (x *ReportDataNodeTtMsgsRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *ReportDataNodeTtMsgsRequest) GetMsgs() []*msgpb.DataNodeTtMsg {
	if x != nil {
		return x.Msgs
	}
	return nil
}

type GetFlushStateRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SegmentIDs     []int64 `protobuf:"varint,1,rep,packed,name=segmentIDs,proto3" json:"segmentIDs,omitempty"`
	FlushTs        uint64  `protobuf:"varint,2,opt,name=flush_ts,json=flushTs,proto3" json:"flush_ts,omitempty"`
	DbName         string  `protobuf:"bytes,3,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"`
	CollectionName string  `protobuf:"bytes,4,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"`
	CollectionID   int64   `protobuf:"varint,5,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
}

func (x *GetFlushStateRequest) Reset() {
	*x = GetFlushStateRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[83]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetFlushStateRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetFlushStateRequest) ProtoMessage() {}

func (x *GetFlushStateRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[83]
	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 GetFlushStateRequest.ProtoReflect.Descriptor instead.
func (*GetFlushStateRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{83}
}

func (x *GetFlushStateRequest) GetSegmentIDs() []int64 {
	if x != nil {
		return x.SegmentIDs
	}
	return nil
}

func (x *GetFlushStateRequest) GetFlushTs() uint64 {
	if x != nil {
		return x.FlushTs
	}
	return 0
}

func (x *GetFlushStateRequest) GetDbName() string {
	if x != nil {
		return x.DbName
	}
	return ""
}

func (x *GetFlushStateRequest) GetCollectionName() string {
	if x != nil {
		return x.CollectionName
	}
	return ""
}

func (x *GetFlushStateRequest) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

type ChannelOperationsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Infos []*ChannelWatchInfo `protobuf:"bytes,1,rep,name=infos,proto3" json:"infos,omitempty"`
}

func (x *ChannelOperationsRequest) Reset() {
	*x = ChannelOperationsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[84]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ChannelOperationsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ChannelOperationsRequest) ProtoMessage() {}

func (x *ChannelOperationsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[84]
	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 ChannelOperationsRequest.ProtoReflect.Descriptor instead.
func (*ChannelOperationsRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{84}
}

func (x *ChannelOperationsRequest) GetInfos() []*ChannelWatchInfo {
	if x != nil {
		return x.Infos
	}
	return nil
}

type ChannelOperationProgressResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status   *commonpb.Status  `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	OpID     int64             `protobuf:"varint,2,opt,name=opID,proto3" json:"opID,omitempty"`
	State    ChannelWatchState `protobuf:"varint,3,opt,name=state,proto3,enum=milvus.proto.data.ChannelWatchState" json:"state,omitempty"`
	Progress int32             `protobuf:"varint,4,opt,name=progress,proto3" json:"progress,omitempty"`
}

func (x *ChannelOperationProgressResponse) Reset() {
	*x = ChannelOperationProgressResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[85]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ChannelOperationProgressResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ChannelOperationProgressResponse) ProtoMessage() {}

func (x *ChannelOperationProgressResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[85]
	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 ChannelOperationProgressResponse.ProtoReflect.Descriptor instead.
func (*ChannelOperationProgressResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{85}
}

func (x *ChannelOperationProgressResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *ChannelOperationProgressResponse) GetOpID() int64 {
	if x != nil {
		return x.OpID
	}
	return 0
}

func (x *ChannelOperationProgressResponse) GetState() ChannelWatchState {
	if x != nil {
		return x.State
	}
	return ChannelWatchState_Uncomplete
}

func (x *ChannelOperationProgressResponse) GetProgress() int32 {
	if x != nil {
		return x.Progress
	}
	return 0
}

type PreImportRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ClusterID     string                     `protobuf:"bytes,1,opt,name=clusterID,proto3" json:"clusterID,omitempty"`
	JobID         int64                      `protobuf:"varint,2,opt,name=jobID,proto3" json:"jobID,omitempty"`
	TaskID        int64                      `protobuf:"varint,3,opt,name=taskID,proto3" json:"taskID,omitempty"`
	CollectionID  int64                      `protobuf:"varint,4,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
	PartitionIDs  []int64                    `protobuf:"varint,5,rep,packed,name=partitionIDs,proto3" json:"partitionIDs,omitempty"`
	Vchannels     []string                   `protobuf:"bytes,6,rep,name=vchannels,proto3" json:"vchannels,omitempty"`
	Schema        *schemapb.CollectionSchema `protobuf:"bytes,7,opt,name=schema,proto3" json:"schema,omitempty"`
	ImportFiles   []*internalpb.ImportFile   `protobuf:"bytes,8,rep,name=import_files,json=importFiles,proto3" json:"import_files,omitempty"`
	Options       []*commonpb.KeyValuePair   `protobuf:"bytes,9,rep,name=options,proto3" json:"options,omitempty"`
	StorageConfig *indexpb.StorageConfig     `protobuf:"bytes,10,opt,name=storage_config,json=storageConfig,proto3" json:"storage_config,omitempty"`
	TaskSlot      int64                      `protobuf:"varint,11,opt,name=task_slot,json=taskSlot,proto3" json:"task_slot,omitempty"`
	PluginContext []*commonpb.KeyValuePair   `protobuf:"bytes,12,rep,name=plugin_context,json=pluginContext,proto3" json:"plugin_context,omitempty"`
}

func (x *PreImportRequest) Reset() {
	*x = PreImportRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[86]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PreImportRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PreImportRequest) ProtoMessage() {}

func (x *PreImportRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_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 PreImportRequest.ProtoReflect.Descriptor instead.
func (*PreImportRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{86}
}

func (x *PreImportRequest) GetClusterID() string {
	if x != nil {
		return x.ClusterID
	}
	return ""
}

func (x *PreImportRequest) GetJobID() int64 {
	if x != nil {
		return x.JobID
	}
	return 0
}

func (x *PreImportRequest) GetTaskID() int64 {
	if x != nil {
		return x.TaskID
	}
	return 0
}

func (x *PreImportRequest) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

func (x *PreImportRequest) GetPartitionIDs() []int64 {
	if x != nil {
		return x.PartitionIDs
	}
	return nil
}

func (x *PreImportRequest) GetVchannels() []string {
	if x != nil {
		return x.Vchannels
	}
	return nil
}

func (x *PreImportRequest) GetSchema() *schemapb.CollectionSchema {
	if x != nil {
		return x.Schema
	}
	return nil
}

func (x *PreImportRequest) GetImportFiles() []*internalpb.ImportFile {
	if x != nil {
		return x.ImportFiles
	}
	return nil
}

func (x *PreImportRequest) GetOptions() []*commonpb.KeyValuePair {
	if x != nil {
		return x.Options
	}
	return nil
}

func (x *PreImportRequest) GetStorageConfig() *indexpb.StorageConfig {
	if x != nil {
		return x.StorageConfig
	}
	return nil
}

func (x *PreImportRequest) GetTaskSlot() int64 {
	if x != nil {
		return x.TaskSlot
	}
	return 0
}

func (x *PreImportRequest) GetPluginContext() []*commonpb.KeyValuePair {
	if x != nil {
		return x.PluginContext
	}
	return nil
}

type IDRange struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Begin int64 `protobuf:"varint,1,opt,name=begin,proto3" json:"begin,omitempty"`
	End   int64 `protobuf:"varint,2,opt,name=end,proto3" json:"end,omitempty"`
}

func (x *IDRange) Reset() {
	*x = IDRange{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[87]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *IDRange) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*IDRange) ProtoMessage() {}

func (x *IDRange) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_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 IDRange.ProtoReflect.Descriptor instead.
func (*IDRange) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{87}
}

func (x *IDRange) GetBegin() int64 {
	if x != nil {
		return x.Begin
	}
	return 0
}

func (x *IDRange) GetEnd() int64 {
	if x != nil {
		return x.End
	}
	return 0
}

type ImportRequestSegment struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SegmentID   int64  `protobuf:"varint,1,opt,name=segmentID,proto3" json:"segmentID,omitempty"`
	PartitionID int64  `protobuf:"varint,2,opt,name=partitionID,proto3" json:"partitionID,omitempty"`
	Vchannel    string `protobuf:"bytes,3,opt,name=vchannel,proto3" json:"vchannel,omitempty"`
}

func (x *ImportRequestSegment) Reset() {
	*x = ImportRequestSegment{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[88]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ImportRequestSegment) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ImportRequestSegment) ProtoMessage() {}

func (x *ImportRequestSegment) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_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 ImportRequestSegment.ProtoReflect.Descriptor instead.
func (*ImportRequestSegment) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{88}
}

func (x *ImportRequestSegment) GetSegmentID() int64 {
	if x != nil {
		return x.SegmentID
	}
	return 0
}

func (x *ImportRequestSegment) GetPartitionID() int64 {
	if x != nil {
		return x.PartitionID
	}
	return 0
}

func (x *ImportRequestSegment) GetVchannel() string {
	if x != nil {
		return x.Vchannel
	}
	return ""
}

type ImportRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ClusterID       string                     `protobuf:"bytes,1,opt,name=clusterID,proto3" json:"clusterID,omitempty"`
	JobID           int64                      `protobuf:"varint,2,opt,name=jobID,proto3" json:"jobID,omitempty"`
	TaskID          int64                      `protobuf:"varint,3,opt,name=taskID,proto3" json:"taskID,omitempty"`
	CollectionID    int64                      `protobuf:"varint,4,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
	PartitionIDs    []int64                    `protobuf:"varint,5,rep,packed,name=partitionIDs,proto3" json:"partitionIDs,omitempty"`
	Vchannels       []string                   `protobuf:"bytes,6,rep,name=vchannels,proto3" json:"vchannels,omitempty"`
	Schema          *schemapb.CollectionSchema `protobuf:"bytes,7,opt,name=schema,proto3" json:"schema,omitempty"`
	Files           []*internalpb.ImportFile   `protobuf:"bytes,8,rep,name=files,proto3" json:"files,omitempty"`
	Options         []*commonpb.KeyValuePair   `protobuf:"bytes,9,rep,name=options,proto3" json:"options,omitempty"`
	Ts              uint64                     `protobuf:"varint,10,opt,name=ts,proto3" json:"ts,omitempty"`
	IDRange         *IDRange                   `protobuf:"bytes,11,opt,name=ID_range,json=IDRange,proto3" json:"ID_range,omitempty"`
	RequestSegments []*ImportRequestSegment    `protobuf:"bytes,12,rep,name=request_segments,json=requestSegments,proto3" json:"request_segments,omitempty"`
	StorageConfig   *indexpb.StorageConfig     `protobuf:"bytes,13,opt,name=storage_config,json=storageConfig,proto3" json:"storage_config,omitempty"`
	TaskSlot        int64                      `protobuf:"varint,14,opt,name=task_slot,json=taskSlot,proto3" json:"task_slot,omitempty"`
	StorageVersion  int64                      `protobuf:"varint,15,opt,name=storage_version,json=storageVersion,proto3" json:"storage_version,omitempty"`
	PluginContext   []*commonpb.KeyValuePair   `protobuf:"bytes,16,rep,name=plugin_context,json=pluginContext,proto3" json:"plugin_context,omitempty"`
	UseLoonFfi      bool                       `protobuf:"varint,17,opt,name=use_loon_ffi,json=useLoonFfi,proto3" json:"use_loon_ffi,omitempty"`
}

func (x *ImportRequest) Reset() {
	*x = ImportRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[89]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ImportRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ImportRequest) ProtoMessage() {}

func (x *ImportRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[89]
	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 ImportRequest.ProtoReflect.Descriptor instead.
func (*ImportRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{89}
}

func (x *ImportRequest) GetClusterID() string {
	if x != nil {
		return x.ClusterID
	}
	return ""
}

func (x *ImportRequest) GetJobID() int64 {
	if x != nil {
		return x.JobID
	}
	return 0
}

func (x *ImportRequest) GetTaskID() int64 {
	if x != nil {
		return x.TaskID
	}
	return 0
}

func (x *ImportRequest) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

func (x *ImportRequest) GetPartitionIDs() []int64 {
	if x != nil {
		return x.PartitionIDs
	}
	return nil
}

func (x *ImportRequest) GetVchannels() []string {
	if x != nil {
		return x.Vchannels
	}
	return nil
}

func (x *ImportRequest) GetSchema() *schemapb.CollectionSchema {
	if x != nil {
		return x.Schema
	}
	return nil
}

func (x *ImportRequest) GetFiles() []*internalpb.ImportFile {
	if x != nil {
		return x.Files
	}
	return nil
}

func (x *ImportRequest) GetOptions() []*commonpb.KeyValuePair {
	if x != nil {
		return x.Options
	}
	return nil
}

func (x *ImportRequest) GetTs() uint64 {
	if x != nil {
		return x.Ts
	}
	return 0
}

func (x *ImportRequest) GetIDRange() *IDRange {
	if x != nil {
		return x.IDRange
	}
	return nil
}

func (x *ImportRequest) GetRequestSegments() []*ImportRequestSegment {
	if x != nil {
		return x.RequestSegments
	}
	return nil
}

func (x *ImportRequest) GetStorageConfig() *indexpb.StorageConfig {
	if x != nil {
		return x.StorageConfig
	}
	return nil
}

func (x *ImportRequest) GetTaskSlot() int64 {
	if x != nil {
		return x.TaskSlot
	}
	return 0
}

func (x *ImportRequest) GetStorageVersion() int64 {
	if x != nil {
		return x.StorageVersion
	}
	return 0
}

func (x *ImportRequest) GetPluginContext() []*commonpb.KeyValuePair {
	if x != nil {
		return x.PluginContext
	}
	return nil
}

func (x *ImportRequest) GetUseLoonFfi() bool {
	if x != nil {
		return x.UseLoonFfi
	}
	return false
}

type QueryPreImportRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ClusterID string `protobuf:"bytes,1,opt,name=clusterID,proto3" json:"clusterID,omitempty"`
	JobID     int64  `protobuf:"varint,2,opt,name=jobID,proto3" json:"jobID,omitempty"`
	TaskID    int64  `protobuf:"varint,3,opt,name=taskID,proto3" json:"taskID,omitempty"`
}

func (x *QueryPreImportRequest) Reset() {
	*x = QueryPreImportRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[90]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QueryPreImportRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QueryPreImportRequest) ProtoMessage() {}

func (x *QueryPreImportRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[90]
	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 QueryPreImportRequest.ProtoReflect.Descriptor instead.
func (*QueryPreImportRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{90}
}

func (x *QueryPreImportRequest) GetClusterID() string {
	if x != nil {
		return x.ClusterID
	}
	return ""
}

func (x *QueryPreImportRequest) GetJobID() int64 {
	if x != nil {
		return x.JobID
	}
	return 0
}

func (x *QueryPreImportRequest) GetTaskID() int64 {
	if x != nil {
		return x.TaskID
	}
	return 0
}

type PartitionImportStats struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PartitionRows     map[int64]int64 `protobuf:"bytes,1,rep,name=partition_rows,json=partitionRows,proto3" json:"partition_rows,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`               // partitionID -> numRows
	PartitionDataSize map[int64]int64 `protobuf:"bytes,2,rep,name=partition_data_size,json=partitionDataSize,proto3" json:"partition_data_size,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // partitionID -> dataSize
}

func (x *PartitionImportStats) Reset() {
	*x = PartitionImportStats{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[91]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PartitionImportStats) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PartitionImportStats) ProtoMessage() {}

func (x *PartitionImportStats) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[91]
	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 PartitionImportStats.ProtoReflect.Descriptor instead.
func (*PartitionImportStats) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{91}
}

func (x *PartitionImportStats) GetPartitionRows() map[int64]int64 {
	if x != nil {
		return x.PartitionRows
	}
	return nil
}

func (x *PartitionImportStats) GetPartitionDataSize() map[int64]int64 {
	if x != nil {
		return x.PartitionDataSize
	}
	return nil
}

type ImportFileStats struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ImportFile      *internalpb.ImportFile           `protobuf:"bytes,1,opt,name=import_file,json=importFile,proto3" json:"import_file,omitempty"`
	FileSize        int64                            `protobuf:"varint,2,opt,name=file_size,json=fileSize,proto3" json:"file_size,omitempty"`
	TotalRows       int64                            `protobuf:"varint,3,opt,name=total_rows,json=totalRows,proto3" json:"total_rows,omitempty"`
	TotalMemorySize int64                            `protobuf:"varint,4,opt,name=total_memory_size,json=totalMemorySize,proto3" json:"total_memory_size,omitempty"`
	HashedStats     map[string]*PartitionImportStats `protobuf:"bytes,5,rep,name=hashed_stats,json=hashedStats,proto3" json:"hashed_stats,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // channel -> PartitionImportStats
}

func (x *ImportFileStats) Reset() {
	*x = ImportFileStats{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[92]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ImportFileStats) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ImportFileStats) ProtoMessage() {}

func (x *ImportFileStats) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[92]
	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 ImportFileStats.ProtoReflect.Descriptor instead.
func (*ImportFileStats) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{92}
}

func (x *ImportFileStats) GetImportFile() *internalpb.ImportFile {
	if x != nil {
		return x.ImportFile
	}
	return nil
}

func (x *ImportFileStats) GetFileSize() int64 {
	if x != nil {
		return x.FileSize
	}
	return 0
}

func (x *ImportFileStats) GetTotalRows() int64 {
	if x != nil {
		return x.TotalRows
	}
	return 0
}

func (x *ImportFileStats) GetTotalMemorySize() int64 {
	if x != nil {
		return x.TotalMemorySize
	}
	return 0
}

func (x *ImportFileStats) GetHashedStats() map[string]*PartitionImportStats {
	if x != nil {
		return x.HashedStats
	}
	return nil
}

type QueryPreImportResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status    *commonpb.Status   `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	TaskID    int64              `protobuf:"varint,2,opt,name=taskID,proto3" json:"taskID,omitempty"`
	State     ImportTaskStateV2  `protobuf:"varint,3,opt,name=state,proto3,enum=milvus.proto.data.ImportTaskStateV2" json:"state,omitempty"`
	Reason    string             `protobuf:"bytes,4,opt,name=reason,proto3" json:"reason,omitempty"`
	Slots     int64              `protobuf:"varint,5,opt,name=slots,proto3" json:"slots,omitempty"`
	FileStats []*ImportFileStats `protobuf:"bytes,6,rep,name=file_stats,json=fileStats,proto3" json:"file_stats,omitempty"`
}

func (x *QueryPreImportResponse) Reset() {
	*x = QueryPreImportResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[93]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QueryPreImportResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QueryPreImportResponse) ProtoMessage() {}

func (x *QueryPreImportResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[93]
	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 QueryPreImportResponse.ProtoReflect.Descriptor instead.
func (*QueryPreImportResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{93}
}

func (x *QueryPreImportResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *QueryPreImportResponse) GetTaskID() int64 {
	if x != nil {
		return x.TaskID
	}
	return 0
}

func (x *QueryPreImportResponse) GetState() ImportTaskStateV2 {
	if x != nil {
		return x.State
	}
	return ImportTaskStateV2_None
}

func (x *QueryPreImportResponse) GetReason() string {
	if x != nil {
		return x.Reason
	}
	return ""
}

func (x *QueryPreImportResponse) GetSlots() int64 {
	if x != nil {
		return x.Slots
	}
	return 0
}

func (x *QueryPreImportResponse) GetFileStats() []*ImportFileStats {
	if x != nil {
		return x.FileStats
	}
	return nil
}

type QueryImportRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ClusterID string `protobuf:"bytes,1,opt,name=clusterID,proto3" json:"clusterID,omitempty"`
	JobID     int64  `protobuf:"varint,2,opt,name=jobID,proto3" json:"jobID,omitempty"`
	TaskID    int64  `protobuf:"varint,3,opt,name=taskID,proto3" json:"taskID,omitempty"`
	QuerySlot bool   `protobuf:"varint,4,opt,name=querySlot,proto3" json:"querySlot,omitempty"`
}

func (x *QueryImportRequest) Reset() {
	*x = QueryImportRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[94]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QueryImportRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QueryImportRequest) ProtoMessage() {}

func (x *QueryImportRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[94]
	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 QueryImportRequest.ProtoReflect.Descriptor instead.
func (*QueryImportRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{94}
}

func (x *QueryImportRequest) GetClusterID() string {
	if x != nil {
		return x.ClusterID
	}
	return ""
}

func (x *QueryImportRequest) GetJobID() int64 {
	if x != nil {
		return x.JobID
	}
	return 0
}

func (x *QueryImportRequest) GetTaskID() int64 {
	if x != nil {
		return x.TaskID
	}
	return 0
}

func (x *QueryImportRequest) GetQuerySlot() bool {
	if x != nil {
		return x.QuerySlot
	}
	return false
}

type ImportSegmentInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SegmentID    int64          `protobuf:"varint,1,opt,name=segmentID,proto3" json:"segmentID,omitempty"`
	ImportedRows int64          `protobuf:"varint,2,opt,name=imported_rows,json=importedRows,proto3" json:"imported_rows,omitempty"`
	Binlogs      []*FieldBinlog `protobuf:"bytes,3,rep,name=binlogs,proto3" json:"binlogs,omitempty"`
	Statslogs    []*FieldBinlog `protobuf:"bytes,4,rep,name=statslogs,proto3" json:"statslogs,omitempty"`
	Deltalogs    []*FieldBinlog `protobuf:"bytes,5,rep,name=deltalogs,proto3" json:"deltalogs,omitempty"`
	Bm25Logs     []*FieldBinlog `protobuf:"bytes,6,rep,name=bm25logs,proto3" json:"bm25logs,omitempty"`
	ManifestPath string         `protobuf:"bytes,7,opt,name=manifest_path,json=manifestPath,proto3" json:"manifest_path,omitempty"`
	// Writer-built segment Statistics. DataCoord persists it onto
	// SegmentInfo.stats directly; when absent (rolling upgrade) DataCoord
	// falls back to reconstructing from the FieldBinlog arrays.
	Stats *Statistics `protobuf:"bytes,8,opt,name=stats,proto3" json:"stats,omitempty"`
}

func (x *ImportSegmentInfo) Reset() {
	*x = ImportSegmentInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[95]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ImportSegmentInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ImportSegmentInfo) ProtoMessage() {}

func (x *ImportSegmentInfo) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[95]
	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 ImportSegmentInfo.ProtoReflect.Descriptor instead.
func (*ImportSegmentInfo) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{95}
}

func (x *ImportSegmentInfo) GetSegmentID() int64 {
	if x != nil {
		return x.SegmentID
	}
	return 0
}

func (x *ImportSegmentInfo) GetImportedRows() int64 {
	if x != nil {
		return x.ImportedRows
	}
	return 0
}

func (x *ImportSegmentInfo) GetBinlogs() []*FieldBinlog {
	if x != nil {
		return x.Binlogs
	}
	return nil
}

func (x *ImportSegmentInfo) GetStatslogs() []*FieldBinlog {
	if x != nil {
		return x.Statslogs
	}
	return nil
}

func (x *ImportSegmentInfo) GetDeltalogs() []*FieldBinlog {
	if x != nil {
		return x.Deltalogs
	}
	return nil
}

func (x *ImportSegmentInfo) GetBm25Logs() []*FieldBinlog {
	if x != nil {
		return x.Bm25Logs
	}
	return nil
}

func (x *ImportSegmentInfo) GetManifestPath() string {
	if x != nil {
		return x.ManifestPath
	}
	return ""
}

func (x *ImportSegmentInfo) GetStats() *Statistics {
	if x != nil {
		return x.Stats
	}
	return nil
}

type QueryImportResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status             *commonpb.Status     `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	TaskID             int64                `protobuf:"varint,2,opt,name=taskID,proto3" json:"taskID,omitempty"`
	State              ImportTaskStateV2    `protobuf:"varint,3,opt,name=state,proto3,enum=milvus.proto.data.ImportTaskStateV2" json:"state,omitempty"`
	Reason             string               `protobuf:"bytes,4,opt,name=reason,proto3" json:"reason,omitempty"`
	Slots              int64                `protobuf:"varint,5,opt,name=slots,proto3" json:"slots,omitempty"`
	ImportSegmentsInfo []*ImportSegmentInfo `protobuf:"bytes,6,rep,name=import_segments_info,json=importSegmentsInfo,proto3" json:"import_segments_info,omitempty"`
}

func (x *QueryImportResponse) Reset() {
	*x = QueryImportResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[96]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QueryImportResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QueryImportResponse) ProtoMessage() {}

func (x *QueryImportResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[96]
	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 QueryImportResponse.ProtoReflect.Descriptor instead.
func (*QueryImportResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{96}
}

func (x *QueryImportResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *QueryImportResponse) GetTaskID() int64 {
	if x != nil {
		return x.TaskID
	}
	return 0
}

func (x *QueryImportResponse) GetState() ImportTaskStateV2 {
	if x != nil {
		return x.State
	}
	return ImportTaskStateV2_None
}

func (x *QueryImportResponse) GetReason() string {
	if x != nil {
		return x.Reason
	}
	return ""
}

func (x *QueryImportResponse) GetSlots() int64 {
	if x != nil {
		return x.Slots
	}
	return 0
}

func (x *QueryImportResponse) GetImportSegmentsInfo() []*ImportSegmentInfo {
	if x != nil {
		return x.ImportSegmentsInfo
	}
	return nil
}

type DropImportRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ClusterID string `protobuf:"bytes,1,opt,name=clusterID,proto3" json:"clusterID,omitempty"`
	JobID     int64  `protobuf:"varint,2,opt,name=jobID,proto3" json:"jobID,omitempty"`
	TaskID    int64  `protobuf:"varint,3,opt,name=taskID,proto3" json:"taskID,omitempty"`
}

func (x *DropImportRequest) Reset() {
	*x = DropImportRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[97]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DropImportRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DropImportRequest) ProtoMessage() {}

func (x *DropImportRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[97]
	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 DropImportRequest.ProtoReflect.Descriptor instead.
func (*DropImportRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{97}
}

func (x *DropImportRequest) GetClusterID() string {
	if x != nil {
		return x.ClusterID
	}
	return ""
}

func (x *DropImportRequest) GetJobID() int64 {
	if x != nil {
		return x.JobID
	}
	return 0
}

func (x *DropImportRequest) GetTaskID() int64 {
	if x != nil {
		return x.TaskID
	}
	return 0
}

// CopySegment related messages
type CopySegmentSource struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Source identity (avoid parsing from path)
	CollectionId int64 `protobuf:"varint,1,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"` // source collection ID
	PartitionId  int64 `protobuf:"varint,2,opt,name=partition_id,json=partitionId,proto3" json:"partition_id,omitempty"`    // source partition ID
	SegmentId    int64 `protobuf:"varint,3,opt,name=segment_id,json=segmentId,proto3" json:"segment_id,omitempty"`          // source segment ID
	// Source binlogs (paths contain source IDs)
	InsertBinlogs []*FieldBinlog `protobuf:"bytes,4,rep,name=insert_binlogs,json=insertBinlogs,proto3" json:"insert_binlogs,omitempty"` // insert log files
	StatsBinlogs  []*FieldBinlog `protobuf:"bytes,5,rep,name=stats_binlogs,json=statsBinlogs,proto3" json:"stats_binlogs,omitempty"`    // stats log files
	DeltaBinlogs  []*FieldBinlog `protobuf:"bytes,6,rep,name=delta_binlogs,json=deltaBinlogs,proto3" json:"delta_binlogs,omitempty"`    // delta log files
	// Optional: vector/scalar index files to copy (if provided, copy index along with segment data)
	IndexFiles []*indexpb.IndexFilePathInfo `protobuf:"bytes,7,rep,name=index_files,json=indexFiles,proto3" json:"index_files,omitempty"` // vector/scalar index file info
	// BM25 stats binlogs (for BM25 index)
	Bm25Binlogs []*FieldBinlog `protobuf:"bytes,8,rep,name=bm25_binlogs,json=bm25Binlogs,proto3" json:"bm25_binlogs,omitempty"` // bm25 stats log files
	// Text index files (for text tokenization index)
	TextIndexFiles map[int64]*TextIndexStats `protobuf:"bytes,9,rep,name=text_index_files,json=textIndexFiles,proto3" json:"text_index_files,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // text index files by field ID
	// JSON key index files (for JSON index)
	JsonKeyIndexFiles map[int64]*JsonKeyStats `protobuf:"bytes,10,rep,name=json_key_index_files,json=jsonKeyIndexFiles,proto3" json:"json_key_index_files,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // json key index files by field ID
	// StorageV2 manifest (JSON encoded)
	ManifestPath string `protobuf:"bytes,11,opt,name=manifest_path,json=manifestPath,proto3" json:"manifest_path,omitempty"`
	// Storage version: 0=V1(legacy binlog), 2=V2(packed parquet), 3=V3(loon manifest)
	// When storage_version >= 3, binlog paths must be resolved from manifest_path
	StorageVersion int64 `protobuf:"varint,12,opt,name=storage_version,json=storageVersion,proto3" json:"storage_version,omitempty"`
	// Whether the source segment belongs to an external collection.
	IsExternalCollection bool `protobuf:"varint,13,opt,name=is_external_collection,json=isExternalCollection,proto3" json:"is_external_collection,omitempty"`
	// Optional source root path for external snapshot restore.
	// When set, DataNode rewrites this prefix to the target root path before
	// replacing collection/partition/segment IDs.
	SourceRootPath string `protobuf:"bytes,14,opt,name=source_root_path,json=sourceRootPath,proto3" json:"source_root_path,omitempty"`
}

func (x *CopySegmentSource) Reset() {
	*x = CopySegmentSource{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[98]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CopySegmentSource) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CopySegmentSource) ProtoMessage() {}

func (x *CopySegmentSource) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[98]
	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 CopySegmentSource.ProtoReflect.Descriptor instead.
func (*CopySegmentSource) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{98}
}

func (x *CopySegmentSource) GetCollectionId() int64 {
	if x != nil {
		return x.CollectionId
	}
	return 0
}

func (x *CopySegmentSource) GetPartitionId() int64 {
	if x != nil {
		return x.PartitionId
	}
	return 0
}

func (x *CopySegmentSource) GetSegmentId() int64 {
	if x != nil {
		return x.SegmentId
	}
	return 0
}

func (x *CopySegmentSource) GetInsertBinlogs() []*FieldBinlog {
	if x != nil {
		return x.InsertBinlogs
	}
	return nil
}

func (x *CopySegmentSource) GetStatsBinlogs() []*FieldBinlog {
	if x != nil {
		return x.StatsBinlogs
	}
	return nil
}

func (x *CopySegmentSource) GetDeltaBinlogs() []*FieldBinlog {
	if x != nil {
		return x.DeltaBinlogs
	}
	return nil
}

func (x *CopySegmentSource) GetIndexFiles() []*indexpb.IndexFilePathInfo {
	if x != nil {
		return x.IndexFiles
	}
	return nil
}

func (x *CopySegmentSource) GetBm25Binlogs() []*FieldBinlog {
	if x != nil {
		return x.Bm25Binlogs
	}
	return nil
}

func (x *CopySegmentSource) GetTextIndexFiles() map[int64]*TextIndexStats {
	if x != nil {
		return x.TextIndexFiles
	}
	return nil
}

func (x *CopySegmentSource) GetJsonKeyIndexFiles() map[int64]*JsonKeyStats {
	if x != nil {
		return x.JsonKeyIndexFiles
	}
	return nil
}

func (x *CopySegmentSource) GetManifestPath() string {
	if x != nil {
		return x.ManifestPath
	}
	return ""
}

func (x *CopySegmentSource) GetStorageVersion() int64 {
	if x != nil {
		return x.StorageVersion
	}
	return 0
}

func (x *CopySegmentSource) GetIsExternalCollection() bool {
	if x != nil {
		return x.IsExternalCollection
	}
	return false
}

func (x *CopySegmentSource) GetSourceRootPath() string {
	if x != nil {
		return x.SourceRootPath
	}
	return ""
}

type CopySegmentTarget struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CollectionId   int64           `protobuf:"varint,1,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`                                                                                         // target collection ID
	PartitionId    int64           `protobuf:"varint,2,opt,name=partition_id,json=partitionId,proto3" json:"partition_id,omitempty"`                                                                                            // target partition ID
	SegmentId      int64           `protobuf:"varint,3,opt,name=segment_id,json=segmentId,proto3" json:"segment_id,omitempty"`                                                                                                  // target segment ID
	NewBuildIds    map[int64]int64 `protobuf:"bytes,4,rep,name=new_build_ids,json=newBuildIds,proto3" json:"new_build_ids,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // srcBuildID -> newBuildID mapping for target segment indexes
	TargetRootPath string          `protobuf:"bytes,5,opt,name=target_root_path,json=targetRootPath,proto3" json:"target_root_path,omitempty"`                                                                                  // target root path for external snapshot restore
}

func (x *CopySegmentTarget) Reset() {
	*x = CopySegmentTarget{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[99]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CopySegmentTarget) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CopySegmentTarget) ProtoMessage() {}

func (x *CopySegmentTarget) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[99]
	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 CopySegmentTarget.ProtoReflect.Descriptor instead.
func (*CopySegmentTarget) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{99}
}

func (x *CopySegmentTarget) GetCollectionId() int64 {
	if x != nil {
		return x.CollectionId
	}
	return 0
}

func (x *CopySegmentTarget) GetPartitionId() int64 {
	if x != nil {
		return x.PartitionId
	}
	return 0
}

func (x *CopySegmentTarget) GetSegmentId() int64 {
	if x != nil {
		return x.SegmentId
	}
	return 0
}

func (x *CopySegmentTarget) GetNewBuildIds() map[int64]int64 {
	if x != nil {
		return x.NewBuildIds
	}
	return nil
}

func (x *CopySegmentTarget) GetTargetRootPath() string {
	if x != nil {
		return x.TargetRootPath
	}
	return ""
}

type CopySegmentRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ClusterID string `protobuf:"bytes,1,opt,name=clusterID,proto3" json:"clusterID,omitempty"`
	JobID     int64  `protobuf:"varint,2,opt,name=jobID,proto3" json:"jobID,omitempty"`
	TaskID    int64  `protobuf:"varint,3,opt,name=taskID,proto3" json:"taskID,omitempty"`
	// Copy mappings (sources[i] -> targets[i])
	Sources       []*CopySegmentSource   `protobuf:"bytes,4,rep,name=sources,proto3" json:"sources,omitempty"` // source segments with full identity
	Targets       []*CopySegmentTarget   `protobuf:"bytes,5,rep,name=targets,proto3" json:"targets,omitempty"` // target segments with full identity
	StorageConfig *indexpb.StorageConfig `protobuf:"bytes,6,opt,name=storage_config,json=storageConfig,proto3" json:"storage_config,omitempty"`
	TaskSlot      int64                  `protobuf:"varint,7,opt,name=task_slot,json=taskSlot,proto3" json:"task_slot,omitempty"`
	ExternalSpec  string                 `protobuf:"bytes,8,opt,name=external_spec,json=externalSpec,proto3" json:"external_spec,omitempty"`
}

func (x *CopySegmentRequest) Reset() {
	*x = CopySegmentRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[100]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CopySegmentRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CopySegmentRequest) ProtoMessage() {}

func (x *CopySegmentRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[100]
	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 CopySegmentRequest.ProtoReflect.Descriptor instead.
func (*CopySegmentRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{100}
}

func (x *CopySegmentRequest) GetClusterID() string {
	if x != nil {
		return x.ClusterID
	}
	return ""
}

func (x *CopySegmentRequest) GetJobID() int64 {
	if x != nil {
		return x.JobID
	}
	return 0
}

func (x *CopySegmentRequest) GetTaskID() int64 {
	if x != nil {
		return x.TaskID
	}
	return 0
}

func (x *CopySegmentRequest) GetSources() []*CopySegmentSource {
	if x != nil {
		return x.Sources
	}
	return nil
}

func (x *CopySegmentRequest) GetTargets() []*CopySegmentTarget {
	if x != nil {
		return x.Targets
	}
	return nil
}

func (x *CopySegmentRequest) GetStorageConfig() *indexpb.StorageConfig {
	if x != nil {
		return x.StorageConfig
	}
	return nil
}

func (x *CopySegmentRequest) GetTaskSlot() int64 {
	if x != nil {
		return x.TaskSlot
	}
	return 0
}

func (x *CopySegmentRequest) GetExternalSpec() string {
	if x != nil {
		return x.ExternalSpec
	}
	return ""
}

type QueryCopySegmentRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ClusterID string `protobuf:"bytes,1,opt,name=clusterID,proto3" json:"clusterID,omitempty"`
	JobID     int64  `protobuf:"varint,2,opt,name=jobID,proto3" json:"jobID,omitempty"`
	TaskID    int64  `protobuf:"varint,3,opt,name=taskID,proto3" json:"taskID,omitempty"`
}

func (x *QueryCopySegmentRequest) Reset() {
	*x = QueryCopySegmentRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[101]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QueryCopySegmentRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QueryCopySegmentRequest) ProtoMessage() {}

func (x *QueryCopySegmentRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[101]
	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 QueryCopySegmentRequest.ProtoReflect.Descriptor instead.
func (*QueryCopySegmentRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{101}
}

func (x *QueryCopySegmentRequest) GetClusterID() string {
	if x != nil {
		return x.ClusterID
	}
	return ""
}

func (x *QueryCopySegmentRequest) GetJobID() int64 {
	if x != nil {
		return x.JobID
	}
	return 0
}

func (x *QueryCopySegmentRequest) GetTaskID() int64 {
	if x != nil {
		return x.TaskID
	}
	return 0
}

type QueryCopySegmentResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status         *commonpb.Status     `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	TaskID         int64                `protobuf:"varint,2,opt,name=taskID,proto3" json:"taskID,omitempty"`
	State          CopySegmentTaskState `protobuf:"varint,3,opt,name=state,proto3,enum=milvus.proto.data.CopySegmentTaskState" json:"state,omitempty"` // Task state
	Reason         string               `protobuf:"bytes,4,opt,name=reason,proto3" json:"reason,omitempty"`
	SegmentResults []*CopySegmentResult `protobuf:"bytes,5,rep,name=segment_results,json=segmentResults,proto3" json:"segment_results,omitempty"` // Complete segment and index metadata
	Slots          int64                `protobuf:"varint,6,opt,name=slots,proto3" json:"slots,omitempty"`
}

func (x *QueryCopySegmentResponse) Reset() {
	*x = QueryCopySegmentResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[102]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QueryCopySegmentResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QueryCopySegmentResponse) ProtoMessage() {}

func (x *QueryCopySegmentResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[102]
	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 QueryCopySegmentResponse.ProtoReflect.Descriptor instead.
func (*QueryCopySegmentResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{102}
}

func (x *QueryCopySegmentResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *QueryCopySegmentResponse) GetTaskID() int64 {
	if x != nil {
		return x.TaskID
	}
	return 0
}

func (x *QueryCopySegmentResponse) GetState() CopySegmentTaskState {
	if x != nil {
		return x.State
	}
	return CopySegmentTaskState_CopySegmentTaskNone
}

func (x *QueryCopySegmentResponse) GetReason() string {
	if x != nil {
		return x.Reason
	}
	return ""
}

func (x *QueryCopySegmentResponse) GetSegmentResults() []*CopySegmentResult {
	if x != nil {
		return x.SegmentResults
	}
	return nil
}

func (x *QueryCopySegmentResponse) GetSlots() int64 {
	if x != nil {
		return x.Slots
	}
	return 0
}

type DropCopySegmentRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ClusterID string `protobuf:"bytes,1,opt,name=clusterID,proto3" json:"clusterID,omitempty"`
	JobID     int64  `protobuf:"varint,2,opt,name=jobID,proto3" json:"jobID,omitempty"`
	TaskID    int64  `protobuf:"varint,3,opt,name=taskID,proto3" json:"taskID,omitempty"`
}

func (x *DropCopySegmentRequest) Reset() {
	*x = DropCopySegmentRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[103]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DropCopySegmentRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DropCopySegmentRequest) ProtoMessage() {}

func (x *DropCopySegmentRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[103]
	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 DropCopySegmentRequest.ProtoReflect.Descriptor instead.
func (*DropCopySegmentRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{103}
}

func (x *DropCopySegmentRequest) GetClusterID() string {
	if x != nil {
		return x.ClusterID
	}
	return ""
}

func (x *DropCopySegmentRequest) GetJobID() int64 {
	if x != nil {
		return x.JobID
	}
	return 0
}

func (x *DropCopySegmentRequest) GetTaskID() int64 {
	if x != nil {
		return x.TaskID
	}
	return 0
}

// VectorScalarIndexInfo contains metadata for copied vector/scalar indexes
// Combines information from IndexTaskInfo for copy operations
type VectorScalarIndexInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	FieldId                   int64                         `protobuf:"varint,1,opt,name=field_id,json=fieldId,proto3" json:"field_id,omitempty"`
	IndexId                   int64                         `protobuf:"varint,2,opt,name=index_id,json=indexId,proto3" json:"index_id,omitempty"`
	BuildId                   int64                         `protobuf:"varint,3,opt,name=build_id,json=buildId,proto3" json:"build_id,omitempty"`
	Version                   int64                         `protobuf:"varint,4,opt,name=version,proto3" json:"version,omitempty"`
	IndexFilePaths            []string                      `protobuf:"bytes,5,rep,name=index_file_paths,json=indexFilePaths,proto3" json:"index_file_paths,omitempty"`                                     // Full paths to index files
	IndexSize                 int64                         `protobuf:"varint,6,opt,name=index_size,json=indexSize,proto3" json:"index_size,omitempty"`                                                     // Total index size in bytes
	CurrentIndexVersion       int32                         `protobuf:"varint,7,opt,name=current_index_version,json=currentIndexVersion,proto3" json:"current_index_version,omitempty"`                     // Index engine version
	CurrentScalarIndexVersion int32                         `protobuf:"varint,8,opt,name=current_scalar_index_version,json=currentScalarIndexVersion,proto3" json:"current_scalar_index_version,omitempty"` // Scalar index engine version
	IndexName                 string                        `protobuf:"bytes,9,opt,name=index_name,json=indexName,proto3" json:"index_name,omitempty"`                                                      // Index name for multi-index-per-field lookup
	IndexStorePathVersion     indexpb.IndexStorePathVersion `protobuf:"varint,10,opt,name=index_store_path_version,json=indexStorePathVersion,proto3,enum=milvus.proto.index.IndexStorePathVersion" json:"index_store_path_version,omitempty"`
}

func (x *VectorScalarIndexInfo) Reset() {
	*x = VectorScalarIndexInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[104]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *VectorScalarIndexInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*VectorScalarIndexInfo) ProtoMessage() {}

func (x *VectorScalarIndexInfo) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[104]
	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 VectorScalarIndexInfo.ProtoReflect.Descriptor instead.
func (*VectorScalarIndexInfo) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{104}
}

func (x *VectorScalarIndexInfo) GetFieldId() int64 {
	if x != nil {
		return x.FieldId
	}
	return 0
}

func (x *VectorScalarIndexInfo) GetIndexId() int64 {
	if x != nil {
		return x.IndexId
	}
	return 0
}

func (x *VectorScalarIndexInfo) GetBuildId() int64 {
	if x != nil {
		return x.BuildId
	}
	return 0
}

func (x *VectorScalarIndexInfo) GetVersion() int64 {
	if x != nil {
		return x.Version
	}
	return 0
}

func (x *VectorScalarIndexInfo) GetIndexFilePaths() []string {
	if x != nil {
		return x.IndexFilePaths
	}
	return nil
}

func (x *VectorScalarIndexInfo) GetIndexSize() int64 {
	if x != nil {
		return x.IndexSize
	}
	return 0
}

func (x *VectorScalarIndexInfo) GetCurrentIndexVersion() int32 {
	if x != nil {
		return x.CurrentIndexVersion
	}
	return 0
}

func (x *VectorScalarIndexInfo) GetCurrentScalarIndexVersion() int32 {
	if x != nil {
		return x.CurrentScalarIndexVersion
	}
	return 0
}

func (x *VectorScalarIndexInfo) GetIndexName() string {
	if x != nil {
		return x.IndexName
	}
	return ""
}

func (x *VectorScalarIndexInfo) GetIndexStorePathVersion() indexpb.IndexStorePathVersion {
	if x != nil {
		return x.IndexStorePathVersion
	}
	return indexpb.IndexStorePathVersion(0)
}

// CopySegmentResult contains the complete result of a copy segment operation
// It extends ImportSegmentInfo with index metadata from copied indexes
type CopySegmentResult struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Basic segment info (same as ImportSegmentInfo)
	SegmentId    int64          `protobuf:"varint,1,opt,name=segment_id,json=segmentId,proto3" json:"segment_id,omitempty"`
	ImportedRows int64          `protobuf:"varint,2,opt,name=imported_rows,json=importedRows,proto3" json:"imported_rows,omitempty"`
	Binlogs      []*FieldBinlog `protobuf:"bytes,3,rep,name=binlogs,proto3" json:"binlogs,omitempty"`
	Statslogs    []*FieldBinlog `protobuf:"bytes,4,rep,name=statslogs,proto3" json:"statslogs,omitempty"`
	Deltalogs    []*FieldBinlog `protobuf:"bytes,5,rep,name=deltalogs,proto3" json:"deltalogs,omitempty"`
	Bm25Logs     []*FieldBinlog `protobuf:"bytes,6,rep,name=bm25logs,proto3" json:"bm25logs,omitempty"`
	// Index metadata
	// Vector/Scalar indexes - map<fieldID, VectorScalarIndexInfo>
	IndexInfos map[int64]*VectorScalarIndexInfo `protobuf:"bytes,7,rep,name=index_infos,json=indexInfos,proto3" json:"index_infos,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Text indexes - map<fieldID, TextIndexStats>
	TextIndexInfos map[int64]*TextIndexStats `protobuf:"bytes,8,rep,name=text_index_infos,json=textIndexInfos,proto3" json:"text_index_infos,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// JSON Key indexes - map<int64, JsonKeyStats>
	JsonKeyIndexInfos map[int64]*JsonKeyStats `protobuf:"bytes,9,rep,name=json_key_index_infos,json=jsonKeyIndexInfos,proto3" json:"json_key_index_infos,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Transformed manifest path for target segment
	ManifestPath string `protobuf:"bytes,10,opt,name=manifest_path,json=manifestPath,proto3" json:"manifest_path,omitempty"`
}

func (x *CopySegmentResult) Reset() {
	*x = CopySegmentResult{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[105]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CopySegmentResult) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CopySegmentResult) ProtoMessage() {}

func (x *CopySegmentResult) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[105]
	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 CopySegmentResult.ProtoReflect.Descriptor instead.
func (*CopySegmentResult) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{105}
}

func (x *CopySegmentResult) GetSegmentId() int64 {
	if x != nil {
		return x.SegmentId
	}
	return 0
}

func (x *CopySegmentResult) GetImportedRows() int64 {
	if x != nil {
		return x.ImportedRows
	}
	return 0
}

func (x *CopySegmentResult) GetBinlogs() []*FieldBinlog {
	if x != nil {
		return x.Binlogs
	}
	return nil
}

func (x *CopySegmentResult) GetStatslogs() []*FieldBinlog {
	if x != nil {
		return x.Statslogs
	}
	return nil
}

func (x *CopySegmentResult) GetDeltalogs() []*FieldBinlog {
	if x != nil {
		return x.Deltalogs
	}
	return nil
}

func (x *CopySegmentResult) GetBm25Logs() []*FieldBinlog {
	if x != nil {
		return x.Bm25Logs
	}
	return nil
}

func (x *CopySegmentResult) GetIndexInfos() map[int64]*VectorScalarIndexInfo {
	if x != nil {
		return x.IndexInfos
	}
	return nil
}

func (x *CopySegmentResult) GetTextIndexInfos() map[int64]*TextIndexStats {
	if x != nil {
		return x.TextIndexInfos
	}
	return nil
}

func (x *CopySegmentResult) GetJsonKeyIndexInfos() map[int64]*JsonKeyStats {
	if x != nil {
		return x.JsonKeyIndexInfos
	}
	return nil
}

func (x *CopySegmentResult) GetManifestPath() string {
	if x != nil {
		return x.ManifestPath
	}
	return ""
}

// CopySegmentTask represents a copy segment task that copies segment data and optionally indexes
// from source locations to target locations for snapshot restore or other purposes
// Optimized for minimal etcd storage: heavy data (binlogs, schema, results) are not persisted
type CopySegmentTask struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	TaskId       int64                   `protobuf:"varint,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	JobId        int64                   `protobuf:"varint,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
	CollectionId int64                   `protobuf:"varint,3,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`
	NodeId       int64                   `protobuf:"varint,4,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
	TaskVersion  int64                   `protobuf:"varint,5,opt,name=task_version,json=taskVersion,proto3" json:"task_version,omitempty"`
	TaskSlot     int64                   `protobuf:"varint,6,opt,name=task_slot,json=taskSlot,proto3" json:"task_slot,omitempty"`
	State        CopySegmentTaskState    `protobuf:"varint,7,opt,name=state,proto3,enum=milvus.proto.data.CopySegmentTaskState" json:"state,omitempty"`
	Reason       string                  `protobuf:"bytes,8,opt,name=reason,proto3" json:"reason,omitempty"`
	IdMappings   []*CopySegmentIDMapping `protobuf:"bytes,9,rep,name=id_mappings,json=idMappings,proto3" json:"id_mappings,omitempty"`
	CreatedTs    uint64                  `protobuf:"varint,10,opt,name=created_ts,json=createdTs,proto3" json:"created_ts,omitempty"`    // Unix timestamp in nanoseconds
	CompleteTs   uint64                  `protobuf:"varint,11,opt,name=complete_ts,json=completeTs,proto3" json:"complete_ts,omitempty"` // Unix timestamp in nanoseconds
}

func (x *CopySegmentTask) Reset() {
	*x = CopySegmentTask{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[106]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CopySegmentTask) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CopySegmentTask) ProtoMessage() {}

func (x *CopySegmentTask) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[106]
	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 CopySegmentTask.ProtoReflect.Descriptor instead.
func (*CopySegmentTask) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{106}
}

func (x *CopySegmentTask) GetTaskId() int64 {
	if x != nil {
		return x.TaskId
	}
	return 0
}

func (x *CopySegmentTask) GetJobId() int64 {
	if x != nil {
		return x.JobId
	}
	return 0
}

func (x *CopySegmentTask) GetCollectionId() int64 {
	if x != nil {
		return x.CollectionId
	}
	return 0
}

func (x *CopySegmentTask) GetNodeId() int64 {
	if x != nil {
		return x.NodeId
	}
	return 0
}

func (x *CopySegmentTask) GetTaskVersion() int64 {
	if x != nil {
		return x.TaskVersion
	}
	return 0
}

func (x *CopySegmentTask) GetTaskSlot() int64 {
	if x != nil {
		return x.TaskSlot
	}
	return 0
}

func (x *CopySegmentTask) GetState() CopySegmentTaskState {
	if x != nil {
		return x.State
	}
	return CopySegmentTaskState_CopySegmentTaskNone
}

func (x *CopySegmentTask) GetReason() string {
	if x != nil {
		return x.Reason
	}
	return ""
}

func (x *CopySegmentTask) GetIdMappings() []*CopySegmentIDMapping {
	if x != nil {
		return x.IdMappings
	}
	return nil
}

func (x *CopySegmentTask) GetCreatedTs() uint64 {
	if x != nil {
		return x.CreatedTs
	}
	return 0
}

func (x *CopySegmentTask) GetCompleteTs() uint64 {
	if x != nil {
		return x.CompleteTs
	}
	return 0
}

// CopySegmentIDMapping defines lightweight ID-only mapping from source to target segment
// Used in Job and Task storage to minimize etcd load
type CopySegmentIDMapping struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SourceSegmentId int64 `protobuf:"varint,1,opt,name=source_segment_id,json=sourceSegmentId,proto3" json:"source_segment_id,omitempty"`
	TargetSegmentId int64 `protobuf:"varint,2,opt,name=target_segment_id,json=targetSegmentId,proto3" json:"target_segment_id,omitempty"`
	PartitionId     int64 `protobuf:"varint,3,opt,name=partition_id,json=partitionId,proto3" json:"partition_id,omitempty"` // Cached for grouping, avoid repeated meta lookups
}

func (x *CopySegmentIDMapping) Reset() {
	*x = CopySegmentIDMapping{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[107]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CopySegmentIDMapping) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CopySegmentIDMapping) ProtoMessage() {}

func (x *CopySegmentIDMapping) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[107]
	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 CopySegmentIDMapping.ProtoReflect.Descriptor instead.
func (*CopySegmentIDMapping) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{107}
}

func (x *CopySegmentIDMapping) GetSourceSegmentId() int64 {
	if x != nil {
		return x.SourceSegmentId
	}
	return 0
}

func (x *CopySegmentIDMapping) GetTargetSegmentId() int64 {
	if x != nil {
		return x.TargetSegmentId
	}
	return 0
}

func (x *CopySegmentIDMapping) GetPartitionId() int64 {
	if x != nil {
		return x.PartitionId
	}
	return 0
}

// CopySegmentJob represents a user-level copy segment job
type CopySegmentJob struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	JobId          int64  `protobuf:"varint,1,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
	DbId           int64  `protobuf:"varint,2,opt,name=db_id,json=dbId,proto3" json:"db_id,omitempty"`
	CollectionId   int64  `protobuf:"varint,3,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`
	CollectionName string `protobuf:"bytes,4,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"`
	// Job state machine: Pending -> Copying -> IndexBuilding -> Completed/Failed
	State  CopySegmentJobState `protobuf:"varint,5,opt,name=state,proto3,enum=milvus.proto.data.CopySegmentJobState" json:"state,omitempty"`
	Reason string              `protobuf:"bytes,6,opt,name=reason,proto3" json:"reason,omitempty"`
	// Segment copy ID mappings (lightweight, ~48 bytes per segment)
	IdMappings []*CopySegmentIDMapping `protobuf:"bytes,7,rep,name=id_mappings,json=idMappings,proto3" json:"id_mappings,omitempty"`
	// Timestamps
	TimeoutTs uint64 `protobuf:"varint,8,opt,name=timeout_ts,json=timeoutTs,proto3" json:"timeout_ts,omitempty"`
	CleanupTs uint64 `protobuf:"varint,9,opt,name=cleanup_ts,json=cleanupTs,proto3" json:"cleanup_ts,omitempty"`
	// Timing
	StartTs    uint64 `protobuf:"varint,10,opt,name=start_ts,json=startTs,proto3" json:"start_ts,omitempty"`          // Unix timestamp in nanoseconds
	CompleteTs uint64 `protobuf:"varint,11,opt,name=complete_ts,json=completeTs,proto3" json:"complete_ts,omitempty"` // Unix timestamp in nanoseconds
	// Options (e.g., "copy_index": "true")
	Options []*commonpb.KeyValuePair `protobuf:"bytes,12,rep,name=options,proto3" json:"options,omitempty"`
	// Statistics
	TotalSegments  int64 `protobuf:"varint,13,opt,name=total_segments,json=totalSegments,proto3" json:"total_segments,omitempty"`
	CopiedSegments int64 `protobuf:"varint,14,opt,name=copied_segments,json=copiedSegments,proto3" json:"copied_segments,omitempty"`
	TotalRows      int64 `protobuf:"varint,15,opt,name=total_rows,json=totalRows,proto3" json:"total_rows,omitempty"`
	// Optional snapshot name for restore snapshot use case
	SnapshotName string `protobuf:"bytes,16,opt,name=snapshot_name,json=snapshotName,proto3" json:"snapshot_name,omitempty"`
	// Source collection ID for per-collection snapshot name lookup
	SourceCollectionId int64 `protobuf:"varint,17,opt,name=source_collection_id,json=sourceCollectionId,proto3" json:"source_collection_id,omitempty"`
	// Pin ID on the source snapshot, claimed at restore phase 0 and released when
	// this job reaches terminal state. Protects the source snapshot from being
	// dropped (by DropSnapshot RPC, drop-collection cascade, or GC) while this
	// job is still reading its data.
	PinId int64 `protobuf:"varint,18,opt,name=pin_id,json=pinId,proto3" json:"pin_id,omitempty"`
	// External snapshot restore reads snapshot metadata directly from object
	// storage instead of local snapshot catalog.
	External           bool   `protobuf:"varint,19,opt,name=external,proto3" json:"external,omitempty"`
	SnapshotS3Location string `protobuf:"bytes,20,opt,name=snapshot_s3_location,json=snapshotS3Location,proto3" json:"snapshot_s3_location,omitempty"`
	ExternalSpec       string `protobuf:"bytes,21,opt,name=external_spec,json=externalSpec,proto3" json:"external_spec,omitempty"`
}

func (x *CopySegmentJob) Reset() {
	*x = CopySegmentJob{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[108]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CopySegmentJob) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CopySegmentJob) ProtoMessage() {}

func (x *CopySegmentJob) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[108]
	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 CopySegmentJob.ProtoReflect.Descriptor instead.
func (*CopySegmentJob) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{108}
}

func (x *CopySegmentJob) GetJobId() int64 {
	if x != nil {
		return x.JobId
	}
	return 0
}

func (x *CopySegmentJob) GetDbId() int64 {
	if x != nil {
		return x.DbId
	}
	return 0
}

func (x *CopySegmentJob) GetCollectionId() int64 {
	if x != nil {
		return x.CollectionId
	}
	return 0
}

func (x *CopySegmentJob) GetCollectionName() string {
	if x != nil {
		return x.CollectionName
	}
	return ""
}

func (x *CopySegmentJob) GetState() CopySegmentJobState {
	if x != nil {
		return x.State
	}
	return CopySegmentJobState_CopySegmentJobNone
}

func (x *CopySegmentJob) GetReason() string {
	if x != nil {
		return x.Reason
	}
	return ""
}

func (x *CopySegmentJob) GetIdMappings() []*CopySegmentIDMapping {
	if x != nil {
		return x.IdMappings
	}
	return nil
}

func (x *CopySegmentJob) GetTimeoutTs() uint64 {
	if x != nil {
		return x.TimeoutTs
	}
	return 0
}

func (x *CopySegmentJob) GetCleanupTs() uint64 {
	if x != nil {
		return x.CleanupTs
	}
	return 0
}

func (x *CopySegmentJob) GetStartTs() uint64 {
	if x != nil {
		return x.StartTs
	}
	return 0
}

func (x *CopySegmentJob) GetCompleteTs() uint64 {
	if x != nil {
		return x.CompleteTs
	}
	return 0
}

func (x *CopySegmentJob) GetOptions() []*commonpb.KeyValuePair {
	if x != nil {
		return x.Options
	}
	return nil
}

func (x *CopySegmentJob) GetTotalSegments() int64 {
	if x != nil {
		return x.TotalSegments
	}
	return 0
}

func (x *CopySegmentJob) GetCopiedSegments() int64 {
	if x != nil {
		return x.CopiedSegments
	}
	return 0
}

func (x *CopySegmentJob) GetTotalRows() int64 {
	if x != nil {
		return x.TotalRows
	}
	return 0
}

func (x *CopySegmentJob) GetSnapshotName() string {
	if x != nil {
		return x.SnapshotName
	}
	return ""
}

func (x *CopySegmentJob) GetSourceCollectionId() int64 {
	if x != nil {
		return x.SourceCollectionId
	}
	return 0
}

func (x *CopySegmentJob) GetPinId() int64 {
	if x != nil {
		return x.PinId
	}
	return 0
}

func (x *CopySegmentJob) GetExternal() bool {
	if x != nil {
		return x.External
	}
	return false
}

func (x *CopySegmentJob) GetSnapshotS3Location() string {
	if x != nil {
		return x.SnapshotS3Location
	}
	return ""
}

func (x *CopySegmentJob) GetExternalSpec() string {
	if x != nil {
		return x.ExternalSpec
	}
	return ""
}

type ImportJob struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	JobID              int64                      `protobuf:"varint,1,opt,name=jobID,proto3" json:"jobID,omitempty"`
	DbID               int64                      `protobuf:"varint,2,opt,name=dbID,proto3" json:"dbID,omitempty"`
	CollectionID       int64                      `protobuf:"varint,3,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
	CollectionName     string                     `protobuf:"bytes,4,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"`
	PartitionIDs       []int64                    `protobuf:"varint,5,rep,packed,name=partitionIDs,proto3" json:"partitionIDs,omitempty"`
	Vchannels          []string                   `protobuf:"bytes,6,rep,name=vchannels,proto3" json:"vchannels,omitempty"`
	Schema             *schemapb.CollectionSchema `protobuf:"bytes,7,opt,name=schema,proto3" json:"schema,omitempty"`
	TimeoutTs          uint64                     `protobuf:"varint,8,opt,name=timeout_ts,json=timeoutTs,proto3" json:"timeout_ts,omitempty"`
	CleanupTs          uint64                     `protobuf:"varint,9,opt,name=cleanup_ts,json=cleanupTs,proto3" json:"cleanup_ts,omitempty"`
	RequestedDiskSize  int64                      `protobuf:"varint,10,opt,name=requestedDiskSize,proto3" json:"requestedDiskSize,omitempty"`
	State              internalpb.ImportJobState  `protobuf:"varint,11,opt,name=state,proto3,enum=milvus.proto.internal.ImportJobState" json:"state,omitempty"`
	Reason             string                     `protobuf:"bytes,12,opt,name=reason,proto3" json:"reason,omitempty"`
	CompleteTime       string                     `protobuf:"bytes,13,opt,name=complete_time,json=completeTime,proto3" json:"complete_time,omitempty"`
	Files              []*internalpb.ImportFile   `protobuf:"bytes,14,rep,name=files,proto3" json:"files,omitempty"`
	Options            []*commonpb.KeyValuePair   `protobuf:"bytes,15,rep,name=options,proto3" json:"options,omitempty"`
	CreateTime         string                     `protobuf:"bytes,16,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	ReadyVchannels     []string                   `protobuf:"bytes,17,rep,name=ready_vchannels,json=readyVchannels,proto3" json:"ready_vchannels,omitempty"`
	DataTs             uint64                     `protobuf:"varint,18,opt,name=data_ts,json=dataTs,proto3" json:"data_ts,omitempty"`
	CommittedVchannels []string                   `protobuf:"bytes,19,rep,name=committed_vchannels,json=committedVchannels,proto3" json:"committed_vchannels,omitempty"`
	AutoCommit         bool                       `protobuf:"varint,20,opt,name=auto_commit,json=autoCommit,proto3" json:"auto_commit,omitempty"`
}

func (x *ImportJob) Reset() {
	*x = ImportJob{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[109]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ImportJob) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ImportJob) ProtoMessage() {}

func (x *ImportJob) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[109]
	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 ImportJob.ProtoReflect.Descriptor instead.
func (*ImportJob) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{109}
}

func (x *ImportJob) GetJobID() int64 {
	if x != nil {
		return x.JobID
	}
	return 0
}

func (x *ImportJob) GetDbID() int64 {
	if x != nil {
		return x.DbID
	}
	return 0
}

func (x *ImportJob) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

func (x *ImportJob) GetCollectionName() string {
	if x != nil {
		return x.CollectionName
	}
	return ""
}

func (x *ImportJob) GetPartitionIDs() []int64 {
	if x != nil {
		return x.PartitionIDs
	}
	return nil
}

func (x *ImportJob) GetVchannels() []string {
	if x != nil {
		return x.Vchannels
	}
	return nil
}

func (x *ImportJob) GetSchema() *schemapb.CollectionSchema {
	if x != nil {
		return x.Schema
	}
	return nil
}

func (x *ImportJob) GetTimeoutTs() uint64 {
	if x != nil {
		return x.TimeoutTs
	}
	return 0
}

func (x *ImportJob) GetCleanupTs() uint64 {
	if x != nil {
		return x.CleanupTs
	}
	return 0
}

func (x *ImportJob) GetRequestedDiskSize() int64 {
	if x != nil {
		return x.RequestedDiskSize
	}
	return 0
}

func (x *ImportJob) GetState() internalpb.ImportJobState {
	if x != nil {
		return x.State
	}
	return internalpb.ImportJobState(0)
}

func (x *ImportJob) GetReason() string {
	if x != nil {
		return x.Reason
	}
	return ""
}

func (x *ImportJob) GetCompleteTime() string {
	if x != nil {
		return x.CompleteTime
	}
	return ""
}

func (x *ImportJob) GetFiles() []*internalpb.ImportFile {
	if x != nil {
		return x.Files
	}
	return nil
}

func (x *ImportJob) GetOptions() []*commonpb.KeyValuePair {
	if x != nil {
		return x.Options
	}
	return nil
}

func (x *ImportJob) GetCreateTime() string {
	if x != nil {
		return x.CreateTime
	}
	return ""
}

func (x *ImportJob) GetReadyVchannels() []string {
	if x != nil {
		return x.ReadyVchannels
	}
	return nil
}

func (x *ImportJob) GetDataTs() uint64 {
	if x != nil {
		return x.DataTs
	}
	return 0
}

func (x *ImportJob) GetCommittedVchannels() []string {
	if x != nil {
		return x.CommittedVchannels
	}
	return nil
}

func (x *ImportJob) GetAutoCommit() bool {
	if x != nil {
		return x.AutoCommit
	}
	return false
}

type PreImportTask struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	JobID        int64              `protobuf:"varint,1,opt,name=jobID,proto3" json:"jobID,omitempty"`
	TaskID       int64              `protobuf:"varint,2,opt,name=taskID,proto3" json:"taskID,omitempty"`
	CollectionID int64              `protobuf:"varint,3,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
	NodeID       int64              `protobuf:"varint,6,opt,name=nodeID,proto3" json:"nodeID,omitempty"`
	State        ImportTaskStateV2  `protobuf:"varint,7,opt,name=state,proto3,enum=milvus.proto.data.ImportTaskStateV2" json:"state,omitempty"`
	Reason       string             `protobuf:"bytes,8,opt,name=reason,proto3" json:"reason,omitempty"`
	FileStats    []*ImportFileStats `protobuf:"bytes,10,rep,name=file_stats,json=fileStats,proto3" json:"file_stats,omitempty"`
	CreatedTime  string             `protobuf:"bytes,11,opt,name=created_time,json=createdTime,proto3" json:"created_time,omitempty"`
	CompleteTime string             `protobuf:"bytes,12,opt,name=complete_time,json=completeTime,proto3" json:"complete_time,omitempty"`
}

func (x *PreImportTask) Reset() {
	*x = PreImportTask{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[110]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PreImportTask) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PreImportTask) ProtoMessage() {}

func (x *PreImportTask) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[110]
	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 PreImportTask.ProtoReflect.Descriptor instead.
func (*PreImportTask) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{110}
}

func (x *PreImportTask) GetJobID() int64 {
	if x != nil {
		return x.JobID
	}
	return 0
}

func (x *PreImportTask) GetTaskID() int64 {
	if x != nil {
		return x.TaskID
	}
	return 0
}

func (x *PreImportTask) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

func (x *PreImportTask) GetNodeID() int64 {
	if x != nil {
		return x.NodeID
	}
	return 0
}

func (x *PreImportTask) GetState() ImportTaskStateV2 {
	if x != nil {
		return x.State
	}
	return ImportTaskStateV2_None
}

func (x *PreImportTask) GetReason() string {
	if x != nil {
		return x.Reason
	}
	return ""
}

func (x *PreImportTask) GetFileStats() []*ImportFileStats {
	if x != nil {
		return x.FileStats
	}
	return nil
}

func (x *PreImportTask) GetCreatedTime() string {
	if x != nil {
		return x.CreatedTime
	}
	return ""
}

func (x *PreImportTask) GetCompleteTime() string {
	if x != nil {
		return x.CompleteTime
	}
	return ""
}

type ImportTaskV2 struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	JobID            int64              `protobuf:"varint,1,opt,name=jobID,proto3" json:"jobID,omitempty"`
	TaskID           int64              `protobuf:"varint,2,opt,name=taskID,proto3" json:"taskID,omitempty"`
	CollectionID     int64              `protobuf:"varint,3,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
	SegmentIDs       []int64            `protobuf:"varint,4,rep,packed,name=segmentIDs,proto3" json:"segmentIDs,omitempty"`
	NodeID           int64              `protobuf:"varint,5,opt,name=nodeID,proto3" json:"nodeID,omitempty"`
	State            ImportTaskStateV2  `protobuf:"varint,6,opt,name=state,proto3,enum=milvus.proto.data.ImportTaskStateV2" json:"state,omitempty"`
	Reason           string             `protobuf:"bytes,7,opt,name=reason,proto3" json:"reason,omitempty"`
	CompleteTime     string             `protobuf:"bytes,8,opt,name=complete_time,json=completeTime,proto3" json:"complete_time,omitempty"`
	FileStats        []*ImportFileStats `protobuf:"bytes,9,rep,name=file_stats,json=fileStats,proto3" json:"file_stats,omitempty"`
	SortedSegmentIDs []int64            `protobuf:"varint,10,rep,packed,name=sorted_segmentIDs,json=sortedSegmentIDs,proto3" json:"sorted_segmentIDs,omitempty"`
	CreatedTime      string             `protobuf:"bytes,11,opt,name=created_time,json=createdTime,proto3" json:"created_time,omitempty"`
	Source           ImportTaskSourceV2 `protobuf:"varint,12,opt,name=source,proto3,enum=milvus.proto.data.ImportTaskSourceV2" json:"source,omitempty"`
}

func (x *ImportTaskV2) Reset() {
	*x = ImportTaskV2{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[111]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ImportTaskV2) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ImportTaskV2) ProtoMessage() {}

func (x *ImportTaskV2) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[111]
	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 ImportTaskV2.ProtoReflect.Descriptor instead.
func (*ImportTaskV2) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{111}
}

func (x *ImportTaskV2) GetJobID() int64 {
	if x != nil {
		return x.JobID
	}
	return 0
}

func (x *ImportTaskV2) GetTaskID() int64 {
	if x != nil {
		return x.TaskID
	}
	return 0
}

func (x *ImportTaskV2) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

func (x *ImportTaskV2) GetSegmentIDs() []int64 {
	if x != nil {
		return x.SegmentIDs
	}
	return nil
}

func (x *ImportTaskV2) GetNodeID() int64 {
	if x != nil {
		return x.NodeID
	}
	return 0
}

func (x *ImportTaskV2) GetState() ImportTaskStateV2 {
	if x != nil {
		return x.State
	}
	return ImportTaskStateV2_None
}

func (x *ImportTaskV2) GetReason() string {
	if x != nil {
		return x.Reason
	}
	return ""
}

func (x *ImportTaskV2) GetCompleteTime() string {
	if x != nil {
		return x.CompleteTime
	}
	return ""
}

func (x *ImportTaskV2) GetFileStats() []*ImportFileStats {
	if x != nil {
		return x.FileStats
	}
	return nil
}

func (x *ImportTaskV2) GetSortedSegmentIDs() []int64 {
	if x != nil {
		return x.SortedSegmentIDs
	}
	return nil
}

func (x *ImportTaskV2) GetCreatedTime() string {
	if x != nil {
		return x.CreatedTime
	}
	return ""
}

func (x *ImportTaskV2) GetSource() ImportTaskSourceV2 {
	if x != nil {
		return x.Source
	}
	return ImportTaskSourceV2_Request
}

type GcControlRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base    *commonpb.MsgBase        `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	Command GcCommand                `protobuf:"varint,2,opt,name=command,proto3,enum=milvus.proto.data.GcCommand" json:"command,omitempty"`
	Params  []*commonpb.KeyValuePair `protobuf:"bytes,3,rep,name=params,proto3" json:"params,omitempty"`
}

func (x *GcControlRequest) Reset() {
	*x = GcControlRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[112]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GcControlRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GcControlRequest) ProtoMessage() {}

func (x *GcControlRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[112]
	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 GcControlRequest.ProtoReflect.Descriptor instead.
func (*GcControlRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{112}
}

func (x *GcControlRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *GcControlRequest) GetCommand() GcCommand {
	if x != nil {
		return x.Command
	}
	return GcCommand__
}

func (x *GcControlRequest) GetParams() []*commonpb.KeyValuePair {
	if x != nil {
		return x.Params
	}
	return nil
}

// The response message for GetGcStatus.
type GetGcStatusResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// is_paused is true if the garbage collector is currently paused.
	IsPaused bool `protobuf:"varint,1,opt,name=is_paused,json=isPaused,proto3" json:"is_paused,omitempty"`
	// time_remaining_seconds is the remaining duration in seconds until the GC resumes.
	TimeRemainingSeconds int32 `protobuf:"varint,2,opt,name=time_remaining_seconds,json=timeRemainingSeconds,proto3" json:"time_remaining_seconds,omitempty"`
}

func (x *GetGcStatusResponse) Reset() {
	*x = GetGcStatusResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[113]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetGcStatusResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetGcStatusResponse) ProtoMessage() {}

func (x *GetGcStatusResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[113]
	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 GetGcStatusResponse.ProtoReflect.Descriptor instead.
func (*GetGcStatusResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{113}
}

func (x *GetGcStatusResponse) GetIsPaused() bool {
	if x != nil {
		return x.IsPaused
	}
	return false
}

func (x *GetGcStatusResponse) GetTimeRemainingSeconds() int32 {
	if x != nil {
		return x.TimeRemainingSeconds
	}
	return 0
}

type QuerySlotRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *QuerySlotRequest) Reset() {
	*x = QuerySlotRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[114]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QuerySlotRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QuerySlotRequest) ProtoMessage() {}

func (x *QuerySlotRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[114]
	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 QuerySlotRequest.ProtoReflect.Descriptor instead.
func (*QuerySlotRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{114}
}

type QuerySlotResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status         *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	AvailableSlots int64            `protobuf:"varint,2,opt,name=available_slots,json=availableSlots,proto3" json:"available_slots,omitempty"`
}

func (x *QuerySlotResponse) Reset() {
	*x = QuerySlotResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[115]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QuerySlotResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QuerySlotResponse) ProtoMessage() {}

func (x *QuerySlotResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[115]
	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 QuerySlotResponse.ProtoReflect.Descriptor instead.
func (*QuerySlotResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{115}
}

func (x *QuerySlotResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *QuerySlotResponse) GetAvailableSlots() int64 {
	if x != nil {
		return x.AvailableSlots
	}
	return 0
}

type CompactionTask struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlanID       int64               `protobuf:"varint,1,opt,name=planID,proto3" json:"planID,omitempty"`
	TriggerID    int64               `protobuf:"varint,2,opt,name=triggerID,proto3" json:"triggerID,omitempty"`
	CollectionID int64               `protobuf:"varint,3,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
	PartitionID  int64               `protobuf:"varint,4,opt,name=partitionID,proto3" json:"partitionID,omitempty"`
	Channel      string              `protobuf:"bytes,5,opt,name=channel,proto3" json:"channel,omitempty"`
	Type         CompactionType      `protobuf:"varint,6,opt,name=type,proto3,enum=milvus.proto.data.CompactionType" json:"type,omitempty"`
	State        CompactionTaskState `protobuf:"varint,7,opt,name=state,proto3,enum=milvus.proto.data.CompactionTaskState" json:"state,omitempty"`
	FailReason   string              `protobuf:"bytes,8,opt,name=fail_reason,json=failReason,proto3" json:"fail_reason,omitempty"`
	StartTime    int64               `protobuf:"varint,9,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
	EndTime      int64               `protobuf:"varint,10,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
	// Deprecated: Marked as deprecated in data_coord.proto.
	TimeoutInSeconds       int32                      `protobuf:"varint,11,opt,name=timeout_in_seconds,json=timeoutInSeconds,proto3" json:"timeout_in_seconds,omitempty"`
	RetryTimes             int32                      `protobuf:"varint,12,opt,name=retry_times,json=retryTimes,proto3" json:"retry_times,omitempty"`
	CollectionTtl          int64                      `protobuf:"varint,13,opt,name=collection_ttl,json=collectionTtl,proto3" json:"collection_ttl,omitempty"`
	TotalRows              int64                      `protobuf:"varint,14,opt,name=total_rows,json=totalRows,proto3" json:"total_rows,omitempty"`
	InputSegments          []int64                    `protobuf:"varint,15,rep,packed,name=inputSegments,proto3" json:"inputSegments,omitempty"`
	ResultSegments         []int64                    `protobuf:"varint,16,rep,packed,name=resultSegments,proto3" json:"resultSegments,omitempty"`
	Pos                    *msgpb.MsgPosition         `protobuf:"bytes,17,opt,name=pos,proto3" json:"pos,omitempty"`
	NodeID                 int64                      `protobuf:"varint,18,opt,name=nodeID,proto3" json:"nodeID,omitempty"`
	Schema                 *schemapb.CollectionSchema `protobuf:"bytes,19,opt,name=schema,proto3" json:"schema,omitempty"`
	ClusteringKeyField     *schemapb.FieldSchema      `protobuf:"bytes,20,opt,name=clustering_key_field,json=clusteringKeyField,proto3" json:"clustering_key_field,omitempty"`
	MaxSegmentRows         int64                      `protobuf:"varint,21,opt,name=max_segment_rows,json=maxSegmentRows,proto3" json:"max_segment_rows,omitempty"`
	PreferSegmentRows      int64                      `protobuf:"varint,22,opt,name=prefer_segment_rows,json=preferSegmentRows,proto3" json:"prefer_segment_rows,omitempty"`
	AnalyzeTaskID          int64                      `protobuf:"varint,23,opt,name=analyzeTaskID,proto3" json:"analyzeTaskID,omitempty"`
	AnalyzeVersion         int64                      `protobuf:"varint,24,opt,name=analyzeVersion,proto3" json:"analyzeVersion,omitempty"`
	LastStateStartTime     int64                      `protobuf:"varint,25,opt,name=lastStateStartTime,proto3" json:"lastStateStartTime,omitempty"`
	MaxSize                int64                      `protobuf:"varint,26,opt,name=max_size,json=maxSize,proto3" json:"max_size,omitempty"`
	TmpSegments            []int64                    `protobuf:"varint,27,rep,packed,name=tmpSegments,proto3" json:"tmpSegments,omitempty"`
	PreAllocatedSegmentIDs *IDRange                   `protobuf:"bytes,28,opt,name=pre_allocated_segmentIDs,json=preAllocatedSegmentIDs,proto3" json:"pre_allocated_segmentIDs,omitempty"`
	DiffFunctions          []*schemapb.FunctionSchema `protobuf:"bytes,29,rep,name=diff_functions,json=diffFunctions,proto3" json:"diff_functions,omitempty"`
}

func (x *CompactionTask) Reset() {
	*x = CompactionTask{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[116]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CompactionTask) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CompactionTask) ProtoMessage() {}

func (x *CompactionTask) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[116]
	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 CompactionTask.ProtoReflect.Descriptor instead.
func (*CompactionTask) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{116}
}

func (x *CompactionTask) GetPlanID() int64 {
	if x != nil {
		return x.PlanID
	}
	return 0
}

func (x *CompactionTask) GetTriggerID() int64 {
	if x != nil {
		return x.TriggerID
	}
	return 0
}

func (x *CompactionTask) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

func (x *CompactionTask) GetPartitionID() int64 {
	if x != nil {
		return x.PartitionID
	}
	return 0
}

func (x *CompactionTask) GetChannel() string {
	if x != nil {
		return x.Channel
	}
	return ""
}

func (x *CompactionTask) GetType() CompactionType {
	if x != nil {
		return x.Type
	}
	return CompactionType_UndefinedCompaction
}

func (x *CompactionTask) GetState() CompactionTaskState {
	if x != nil {
		return x.State
	}
	return CompactionTaskState_unknown
}

func (x *CompactionTask) GetFailReason() string {
	if x != nil {
		return x.FailReason
	}
	return ""
}

func (x *CompactionTask) GetStartTime() int64 {
	if x != nil {
		return x.StartTime
	}
	return 0
}

func (x *CompactionTask) GetEndTime() int64 {
	if x != nil {
		return x.EndTime
	}
	return 0
}

// Deprecated: Marked as deprecated in data_coord.proto.
func (x *CompactionTask) GetTimeoutInSeconds() int32 {
	if x != nil {
		return x.TimeoutInSeconds
	}
	return 0
}

func (x *CompactionTask) GetRetryTimes() int32 {
	if x != nil {
		return x.RetryTimes
	}
	return 0
}

func (x *CompactionTask) GetCollectionTtl() int64 {
	if x != nil {
		return x.CollectionTtl
	}
	return 0
}

func (x *CompactionTask) GetTotalRows() int64 {
	if x != nil {
		return x.TotalRows
	}
	return 0
}

func (x *CompactionTask) GetInputSegments() []int64 {
	if x != nil {
		return x.InputSegments
	}
	return nil
}

func (x *CompactionTask) GetResultSegments() []int64 {
	if x != nil {
		return x.ResultSegments
	}
	return nil
}

func (x *CompactionTask) GetPos() *msgpb.MsgPosition {
	if x != nil {
		return x.Pos
	}
	return nil
}

func (x *CompactionTask) GetNodeID() int64 {
	if x != nil {
		return x.NodeID
	}
	return 0
}

func (x *CompactionTask) GetSchema() *schemapb.CollectionSchema {
	if x != nil {
		return x.Schema
	}
	return nil
}

func (x *CompactionTask) GetClusteringKeyField() *schemapb.FieldSchema {
	if x != nil {
		return x.ClusteringKeyField
	}
	return nil
}

func (x *CompactionTask) GetMaxSegmentRows() int64 {
	if x != nil {
		return x.MaxSegmentRows
	}
	return 0
}

func (x *CompactionTask) GetPreferSegmentRows() int64 {
	if x != nil {
		return x.PreferSegmentRows
	}
	return 0
}

func (x *CompactionTask) GetAnalyzeTaskID() int64 {
	if x != nil {
		return x.AnalyzeTaskID
	}
	return 0
}

func (x *CompactionTask) GetAnalyzeVersion() int64 {
	if x != nil {
		return x.AnalyzeVersion
	}
	return 0
}

func (x *CompactionTask) GetLastStateStartTime() int64 {
	if x != nil {
		return x.LastStateStartTime
	}
	return 0
}

func (x *CompactionTask) GetMaxSize() int64 {
	if x != nil {
		return x.MaxSize
	}
	return 0
}

func (x *CompactionTask) GetTmpSegments() []int64 {
	if x != nil {
		return x.TmpSegments
	}
	return nil
}

func (x *CompactionTask) GetPreAllocatedSegmentIDs() *IDRange {
	if x != nil {
		return x.PreAllocatedSegmentIDs
	}
	return nil
}

func (x *CompactionTask) GetDiffFunctions() []*schemapb.FunctionSchema {
	if x != nil {
		return x.DiffFunctions
	}
	return nil
}

type PartitionStatsInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CollectionID  int64   `protobuf:"varint,1,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
	PartitionID   int64   `protobuf:"varint,2,opt,name=partitionID,proto3" json:"partitionID,omitempty"`
	VChannel      string  `protobuf:"bytes,3,opt,name=vChannel,proto3" json:"vChannel,omitempty"`
	Version       int64   `protobuf:"varint,4,opt,name=version,proto3" json:"version,omitempty"`
	SegmentIDs    []int64 `protobuf:"varint,5,rep,packed,name=segmentIDs,proto3" json:"segmentIDs,omitempty"`
	AnalyzeTaskID int64   `protobuf:"varint,6,opt,name=analyzeTaskID,proto3" json:"analyzeTaskID,omitempty"`
	CommitTime    int64   `protobuf:"varint,7,opt,name=commitTime,proto3" json:"commitTime,omitempty"`
}

func (x *PartitionStatsInfo) Reset() {
	*x = PartitionStatsInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[117]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PartitionStatsInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PartitionStatsInfo) ProtoMessage() {}

func (x *PartitionStatsInfo) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[117]
	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 PartitionStatsInfo.ProtoReflect.Descriptor instead.
func (*PartitionStatsInfo) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{117}
}

func (x *PartitionStatsInfo) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

func (x *PartitionStatsInfo) GetPartitionID() int64 {
	if x != nil {
		return x.PartitionID
	}
	return 0
}

func (x *PartitionStatsInfo) GetVChannel() string {
	if x != nil {
		return x.VChannel
	}
	return ""
}

func (x *PartitionStatsInfo) GetVersion() int64 {
	if x != nil {
		return x.Version
	}
	return 0
}

func (x *PartitionStatsInfo) GetSegmentIDs() []int64 {
	if x != nil {
		return x.SegmentIDs
	}
	return nil
}

func (x *PartitionStatsInfo) GetAnalyzeTaskID() int64 {
	if x != nil {
		return x.AnalyzeTaskID
	}
	return 0
}

func (x *PartitionStatsInfo) GetCommitTime() int64 {
	if x != nil {
		return x.CommitTime
	}
	return 0
}

type DropCompactionPlanRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlanID int64 `protobuf:"varint,1,opt,name=planID,proto3" json:"planID,omitempty"`
}

func (x *DropCompactionPlanRequest) Reset() {
	*x = DropCompactionPlanRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[118]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DropCompactionPlanRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DropCompactionPlanRequest) ProtoMessage() {}

func (x *DropCompactionPlanRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[118]
	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 DropCompactionPlanRequest.ProtoReflect.Descriptor instead.
func (*DropCompactionPlanRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{118}
}

func (x *DropCompactionPlanRequest) GetPlanID() int64 {
	if x != nil {
		return x.PlanID
	}
	return 0
}

type RefreshExternalCollectionTaskRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base                   *commonpb.MsgBase          `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	CollectionID           int64                      `protobuf:"varint,2,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
	TaskID                 int64                      `protobuf:"varint,3,opt,name=taskID,proto3" json:"taskID,omitempty"`
	CurrentSegments        []*SegmentInfo             `protobuf:"bytes,4,rep,name=currentSegments,proto3" json:"currentSegments,omitempty"`
	ExternalSource         string                     `protobuf:"bytes,5,opt,name=externalSource,proto3" json:"externalSource,omitempty"`
	ExternalSpec           string                     `protobuf:"bytes,6,opt,name=externalSpec,proto3" json:"externalSpec,omitempty"`
	StorageConfig          *indexpb.StorageConfig     `protobuf:"bytes,7,opt,name=storage_config,json=storageConfig,proto3" json:"storage_config,omitempty"`
	Schema                 *schemapb.CollectionSchema `protobuf:"bytes,8,opt,name=schema,proto3" json:"schema,omitempty"`
	PreAllocatedSegmentIds *IDRange                   `protobuf:"bytes,9,opt,name=pre_allocated_segment_ids,json=preAllocatedSegmentIds,proto3" json:"pre_allocated_segment_ids,omitempty"` // pre-allocated segment ID range for data mapping
	NumSegmentsExpected    int64                      `protobuf:"varint,10,opt,name=num_segments_expected,json=numSegmentsExpected,proto3" json:"num_segments_expected,omitempty"`          // expected number of segments for validation
	ExploreManifestPath    string                     `protobuf:"bytes,11,opt,name=explore_manifest_path,json=exploreManifestPath,proto3" json:"explore_manifest_path,omitempty"`           // S3 manifest path for file discovery
	FileIndexBegin         int64                      `protobuf:"varint,12,opt,name=file_index_begin,json=fileIndexBegin,proto3" json:"file_index_begin,omitempty"`                         // File range start for this task
	FileIndexEnd           int64                      `protobuf:"varint,13,opt,name=file_index_end,json=fileIndexEnd,proto3" json:"file_index_end,omitempty"`                               // File range end for this task
	PartitionID            int64                      `protobuf:"varint,14,opt,name=partitionID,proto3" json:"partitionID,omitempty"`                                                       // target partition for manifest path
	TargetRowsPerSegment   int64                      `protobuf:"varint,15,opt,name=target_rows_per_segment,json=targetRowsPerSegment,proto3" json:"target_rows_per_segment,omitempty"`     // target row count for segment organization
}

func (x *RefreshExternalCollectionTaskRequest) Reset() {
	*x = RefreshExternalCollectionTaskRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[119]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RefreshExternalCollectionTaskRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RefreshExternalCollectionTaskRequest) ProtoMessage() {}

func (x *RefreshExternalCollectionTaskRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[119]
	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 RefreshExternalCollectionTaskRequest.ProtoReflect.Descriptor instead.
func (*RefreshExternalCollectionTaskRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{119}
}

func (x *RefreshExternalCollectionTaskRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *RefreshExternalCollectionTaskRequest) GetCollectionID() int64 {
	if x != nil {
		return x.CollectionID
	}
	return 0
}

func (x *RefreshExternalCollectionTaskRequest) GetTaskID() int64 {
	if x != nil {
		return x.TaskID
	}
	return 0
}

func (x *RefreshExternalCollectionTaskRequest) GetCurrentSegments() []*SegmentInfo {
	if x != nil {
		return x.CurrentSegments
	}
	return nil
}

func (x *RefreshExternalCollectionTaskRequest) GetExternalSource() string {
	if x != nil {
		return x.ExternalSource
	}
	return ""
}

func (x *RefreshExternalCollectionTaskRequest) GetExternalSpec() string {
	if x != nil {
		return x.ExternalSpec
	}
	return ""
}

func (x *RefreshExternalCollectionTaskRequest) GetStorageConfig() *indexpb.StorageConfig {
	if x != nil {
		return x.StorageConfig
	}
	return nil
}

func (x *RefreshExternalCollectionTaskRequest) GetSchema() *schemapb.CollectionSchema {
	if x != nil {
		return x.Schema
	}
	return nil
}

func (x *RefreshExternalCollectionTaskRequest) GetPreAllocatedSegmentIds() *IDRange {
	if x != nil {
		return x.PreAllocatedSegmentIds
	}
	return nil
}

func (x *RefreshExternalCollectionTaskRequest) GetNumSegmentsExpected() int64 {
	if x != nil {
		return x.NumSegmentsExpected
	}
	return 0
}

func (x *RefreshExternalCollectionTaskRequest) GetExploreManifestPath() string {
	if x != nil {
		return x.ExploreManifestPath
	}
	return ""
}

func (x *RefreshExternalCollectionTaskRequest) GetFileIndexBegin() int64 {
	if x != nil {
		return x.FileIndexBegin
	}
	return 0
}

func (x *RefreshExternalCollectionTaskRequest) GetFileIndexEnd() int64 {
	if x != nil {
		return x.FileIndexEnd
	}
	return 0
}

func (x *RefreshExternalCollectionTaskRequest) GetPartitionID() int64 {
	if x != nil {
		return x.PartitionID
	}
	return 0
}

func (x *RefreshExternalCollectionTaskRequest) GetTargetRowsPerSegment() int64 {
	if x != nil {
		return x.TargetRowsPerSegment
	}
	return 0
}

type RefreshExternalCollectionTaskResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status          *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	KeptSegments    []int64          `protobuf:"varint,2,rep,packed,name=keptSegments,proto3" json:"keptSegments,omitempty"`
	UpdatedSegments []*SegmentInfo   `protobuf:"bytes,3,rep,name=updatedSegments,proto3" json:"updatedSegments,omitempty"`
	State           indexpb.JobState `protobuf:"varint,4,opt,name=state,proto3,enum=milvus.proto.index.JobState" json:"state,omitempty"`
	FailReason      string           `protobuf:"bytes,5,opt,name=fail_reason,json=failReason,proto3" json:"fail_reason,omitempty"`
}

func (x *RefreshExternalCollectionTaskResponse) Reset() {
	*x = RefreshExternalCollectionTaskResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[120]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RefreshExternalCollectionTaskResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RefreshExternalCollectionTaskResponse) ProtoMessage() {}

func (x *RefreshExternalCollectionTaskResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[120]
	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 RefreshExternalCollectionTaskResponse.ProtoReflect.Descriptor instead.
func (*RefreshExternalCollectionTaskResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{120}
}

func (x *RefreshExternalCollectionTaskResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *RefreshExternalCollectionTaskResponse) GetKeptSegments() []int64 {
	if x != nil {
		return x.KeptSegments
	}
	return nil
}

func (x *RefreshExternalCollectionTaskResponse) GetUpdatedSegments() []*SegmentInfo {
	if x != nil {
		return x.UpdatedSegments
	}
	return nil
}

func (x *RefreshExternalCollectionTaskResponse) GetState() indexpb.JobState {
	if x != nil {
		return x.State
	}
	return indexpb.JobState(0)
}

func (x *RefreshExternalCollectionTaskResponse) GetFailReason() string {
	if x != nil {
		return x.FailReason
	}
	return ""
}

type RefreshExternalCollectionRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base           *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	CollectionId   int64             `protobuf:"varint,2,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`
	CollectionName string            `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"`
	ExternalSource string            `protobuf:"bytes,4,opt,name=external_source,json=externalSource,proto3" json:"external_source,omitempty"` // Optional: new external source path
	ExternalSpec   string            `protobuf:"bytes,5,opt,name=external_spec,json=externalSpec,proto3" json:"external_spec,omitempty"`       // Optional: new external spec configuration
}

func (x *RefreshExternalCollectionRequest) Reset() {
	*x = RefreshExternalCollectionRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[121]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RefreshExternalCollectionRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RefreshExternalCollectionRequest) ProtoMessage() {}

func (x *RefreshExternalCollectionRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[121]
	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 RefreshExternalCollectionRequest.ProtoReflect.Descriptor instead.
func (*RefreshExternalCollectionRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{121}
}

func (x *RefreshExternalCollectionRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *RefreshExternalCollectionRequest) GetCollectionId() int64 {
	if x != nil {
		return x.CollectionId
	}
	return 0
}

func (x *RefreshExternalCollectionRequest) GetCollectionName() string {
	if x != nil {
		return x.CollectionName
	}
	return ""
}

func (x *RefreshExternalCollectionRequest) GetExternalSource() string {
	if x != nil {
		return x.ExternalSource
	}
	return ""
}

func (x *RefreshExternalCollectionRequest) GetExternalSpec() string {
	if x != nil {
		return x.ExternalSpec
	}
	return ""
}

type RefreshExternalCollectionResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	JobId  int64            `protobuf:"varint,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
}

func (x *RefreshExternalCollectionResponse) Reset() {
	*x = RefreshExternalCollectionResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[122]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RefreshExternalCollectionResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RefreshExternalCollectionResponse) ProtoMessage() {}

func (x *RefreshExternalCollectionResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[122]
	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 RefreshExternalCollectionResponse.ProtoReflect.Descriptor instead.
func (*RefreshExternalCollectionResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{122}
}

func (x *RefreshExternalCollectionResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *RefreshExternalCollectionResponse) GetJobId() int64 {
	if x != nil {
		return x.JobId
	}
	return 0
}

type GetRefreshExternalCollectionProgressRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base  *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	JobId int64             `protobuf:"varint,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
}

func (x *GetRefreshExternalCollectionProgressRequest) Reset() {
	*x = GetRefreshExternalCollectionProgressRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[123]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetRefreshExternalCollectionProgressRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetRefreshExternalCollectionProgressRequest) ProtoMessage() {}

func (x *GetRefreshExternalCollectionProgressRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[123]
	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 GetRefreshExternalCollectionProgressRequest.ProtoReflect.Descriptor instead.
func (*GetRefreshExternalCollectionProgressRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{123}
}

func (x *GetRefreshExternalCollectionProgressRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *GetRefreshExternalCollectionProgressRequest) GetJobId() int64 {
	if x != nil {
		return x.JobId
	}
	return 0
}

// ExternalCollectionRefreshJob - Job level abstraction for API tracking and user queries
// A Job represents a user-initiated refresh operation and can contain multiple tasks (1:N)
type ExternalCollectionRefreshJob struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	JobId          int64            `protobuf:"varint,1,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` // Unique job identifier for API tracking
	CollectionId   int64            `protobuf:"varint,2,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`
	CollectionName string           `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"`
	ExternalSource string           `protobuf:"bytes,4,opt,name=external_source,json=externalSource,proto3" json:"external_source,omitempty"`
	ExternalSpec   string           `protobuf:"bytes,5,opt,name=external_spec,json=externalSpec,proto3" json:"external_spec,omitempty"`
	State          indexpb.JobState `protobuf:"varint,6,opt,name=state,proto3,enum=milvus.proto.index.JobState" json:"state,omitempty"` // Aggregated state from all tasks
	FailReason     string           `protobuf:"bytes,7,opt,name=fail_reason,json=failReason,proto3" json:"fail_reason,omitempty"`       // Error message if failed
	StartTime      int64            `protobuf:"varint,8,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`         // Job start timestamp (Unix ms)
	EndTime        int64            `protobuf:"varint,9,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`               // Job end timestamp (Unix ms, 0 if not completed)
	Progress       int64            `protobuf:"varint,10,opt,name=progress,proto3" json:"progress,omitempty"`                           // Aggregated progress percentage (0-100)
	TaskIds        []int64          `protobuf:"varint,11,rep,packed,name=task_ids,json=taskIds,proto3" json:"task_ids,omitempty"`       // Task IDs belonging to this job
}

func (x *ExternalCollectionRefreshJob) Reset() {
	*x = ExternalCollectionRefreshJob{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[124]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ExternalCollectionRefreshJob) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ExternalCollectionRefreshJob) ProtoMessage() {}

func (x *ExternalCollectionRefreshJob) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[124]
	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 ExternalCollectionRefreshJob.ProtoReflect.Descriptor instead.
func (*ExternalCollectionRefreshJob) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{124}
}

func (x *ExternalCollectionRefreshJob) GetJobId() int64 {
	if x != nil {
		return x.JobId
	}
	return 0
}

func (x *ExternalCollectionRefreshJob) GetCollectionId() int64 {
	if x != nil {
		return x.CollectionId
	}
	return 0
}

func (x *ExternalCollectionRefreshJob) GetCollectionName() string {
	if x != nil {
		return x.CollectionName
	}
	return ""
}

func (x *ExternalCollectionRefreshJob) GetExternalSource() string {
	if x != nil {
		return x.ExternalSource
	}
	return ""
}

func (x *ExternalCollectionRefreshJob) GetExternalSpec() string {
	if x != nil {
		return x.ExternalSpec
	}
	return ""
}

func (x *ExternalCollectionRefreshJob) GetState() indexpb.JobState {
	if x != nil {
		return x.State
	}
	return indexpb.JobState(0)
}

func (x *ExternalCollectionRefreshJob) GetFailReason() string {
	if x != nil {
		return x.FailReason
	}
	return ""
}

func (x *ExternalCollectionRefreshJob) GetStartTime() int64 {
	if x != nil {
		return x.StartTime
	}
	return 0
}

func (x *ExternalCollectionRefreshJob) GetEndTime() int64 {
	if x != nil {
		return x.EndTime
	}
	return 0
}

func (x *ExternalCollectionRefreshJob) GetProgress() int64 {
	if x != nil {
		return x.Progress
	}
	return 0
}

func (x *ExternalCollectionRefreshJob) GetTaskIds() []int64 {
	if x != nil {
		return x.TaskIds
	}
	return nil
}

// ExternalCollectionRefreshTask - Task level abstraction for scheduler and worker execution
// A Task is an execution unit managed by the scheduler, belonging to a parent Job
// ExternalFileInfo describes a single external file discovered during explore.
type ExternalFileInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	FilePath string `protobuf:"bytes,1,opt,name=file_path,json=filePath,proto3" json:"file_path,omitempty"`
	NumRows  int64  `protobuf:"varint,2,opt,name=num_rows,json=numRows,proto3" json:"num_rows,omitempty"`
}

func (x *ExternalFileInfo) Reset() {
	*x = ExternalFileInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[125]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ExternalFileInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ExternalFileInfo) ProtoMessage() {}

func (x *ExternalFileInfo) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[125]
	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 ExternalFileInfo.ProtoReflect.Descriptor instead.
func (*ExternalFileInfo) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{125}
}

func (x *ExternalFileInfo) GetFilePath() string {
	if x != nil {
		return x.FilePath
	}
	return ""
}

func (x *ExternalFileInfo) GetNumRows() int64 {
	if x != nil {
		return x.NumRows
	}
	return 0
}

type ExternalCollectionRefreshTask struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	TaskId              int64            `protobuf:"varint,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"` // Unique task identifier
	JobId               int64            `protobuf:"varint,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`    // Parent job ID
	CollectionId        int64            `protobuf:"varint,3,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`
	Version             int64            `protobuf:"varint,4,opt,name=version,proto3" json:"version,omitempty"`                              // Task version for CAS
	NodeId              int64            `protobuf:"varint,5,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`                  // Assigned worker node
	State               indexpb.JobState `protobuf:"varint,6,opt,name=state,proto3,enum=milvus.proto.index.JobState" json:"state,omitempty"` // Task execution state
	FailReason          string           `protobuf:"bytes,7,opt,name=fail_reason,json=failReason,proto3" json:"fail_reason,omitempty"`
	ExternalSource      string           `protobuf:"bytes,8,opt,name=external_source,json=externalSource,proto3" json:"external_source,omitempty"`                   // Copied from job for worker execution
	ExternalSpec        string           `protobuf:"bytes,9,opt,name=external_spec,json=externalSpec,proto3" json:"external_spec,omitempty"`                         // Copied from job for worker execution
	Progress            int64            `protobuf:"varint,10,opt,name=progress,proto3" json:"progress,omitempty"`                                                   // Task-level progress (0-100)
	ExploreManifestPath string           `protobuf:"bytes,12,opt,name=explore_manifest_path,json=exploreManifestPath,proto3" json:"explore_manifest_path,omitempty"` // S3 manifest path for this job
	FileIndexBegin      int64            `protobuf:"varint,13,opt,name=file_index_begin,json=fileIndexBegin,proto3" json:"file_index_begin,omitempty"`               // File range start for this task
	FileIndexEnd        int64            `protobuf:"varint,14,opt,name=file_index_end,json=fileIndexEnd,proto3" json:"file_index_end,omitempty"`                     // File range end for this task
	KeptSegments        []int64          `protobuf:"varint,15,rep,packed,name=kept_segments,json=keptSegments,proto3" json:"kept_segments,omitempty"`                // Segment IDs kept by this task result
	UpdatedSegments     []*SegmentInfo   `protobuf:"bytes,16,rep,name=updated_segments,json=updatedSegments,proto3" json:"updated_segments,omitempty"`               // Segment upsert payload produced by this task result
	ResultReady         bool             `protobuf:"varint,17,opt,name=result_ready,json=resultReady,proto3" json:"result_ready,omitempty"`                          // True once this task has persisted job-level refresh result payload
}

func (x *ExternalCollectionRefreshTask) Reset() {
	*x = ExternalCollectionRefreshTask{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[126]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ExternalCollectionRefreshTask) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ExternalCollectionRefreshTask) ProtoMessage() {}

func (x *ExternalCollectionRefreshTask) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[126]
	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 ExternalCollectionRefreshTask.ProtoReflect.Descriptor instead.
func (*ExternalCollectionRefreshTask) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{126}
}

func (x *ExternalCollectionRefreshTask) GetTaskId() int64 {
	if x != nil {
		return x.TaskId
	}
	return 0
}

func (x *ExternalCollectionRefreshTask) GetJobId() int64 {
	if x != nil {
		return x.JobId
	}
	return 0
}

func (x *ExternalCollectionRefreshTask) GetCollectionId() int64 {
	if x != nil {
		return x.CollectionId
	}
	return 0
}

func (x *ExternalCollectionRefreshTask) GetVersion() int64 {
	if x != nil {
		return x.Version
	}
	return 0
}

func (x *ExternalCollectionRefreshTask) GetNodeId() int64 {
	if x != nil {
		return x.NodeId
	}
	return 0
}

func (x *ExternalCollectionRefreshTask) GetState() indexpb.JobState {
	if x != nil {
		return x.State
	}
	return indexpb.JobState(0)
}

func (x *ExternalCollectionRefreshTask) GetFailReason() string {
	if x != nil {
		return x.FailReason
	}
	return ""
}

func (x *ExternalCollectionRefreshTask) GetExternalSource() string {
	if x != nil {
		return x.ExternalSource
	}
	return ""
}

func (x *ExternalCollectionRefreshTask) GetExternalSpec() string {
	if x != nil {
		return x.ExternalSpec
	}
	return ""
}

func (x *ExternalCollectionRefreshTask) GetProgress() int64 {
	if x != nil {
		return x.Progress
	}
	return 0
}

func (x *ExternalCollectionRefreshTask) GetExploreManifestPath() string {
	if x != nil {
		return x.ExploreManifestPath
	}
	return ""
}

func (x *ExternalCollectionRefreshTask) GetFileIndexBegin() int64 {
	if x != nil {
		return x.FileIndexBegin
	}
	return 0
}

func (x *ExternalCollectionRefreshTask) GetFileIndexEnd() int64 {
	if x != nil {
		return x.FileIndexEnd
	}
	return 0
}

func (x *ExternalCollectionRefreshTask) GetKeptSegments() []int64 {
	if x != nil {
		return x.KeptSegments
	}
	return nil
}

func (x *ExternalCollectionRefreshTask) GetUpdatedSegments() []*SegmentInfo {
	if x != nil {
		return x.UpdatedSegments
	}
	return nil
}

func (x *ExternalCollectionRefreshTask) GetResultReady() bool {
	if x != nil {
		return x.ResultReady
	}
	return false
}

type GetRefreshExternalCollectionProgressResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status  *commonpb.Status              `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	JobInfo *ExternalCollectionRefreshJob `protobuf:"bytes,2,opt,name=job_info,json=jobInfo,proto3" json:"job_info,omitempty"`
}

func (x *GetRefreshExternalCollectionProgressResponse) Reset() {
	*x = GetRefreshExternalCollectionProgressResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[127]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetRefreshExternalCollectionProgressResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetRefreshExternalCollectionProgressResponse) ProtoMessage() {}

func (x *GetRefreshExternalCollectionProgressResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[127]
	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 GetRefreshExternalCollectionProgressResponse.ProtoReflect.Descriptor instead.
func (*GetRefreshExternalCollectionProgressResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{127}
}

func (x *GetRefreshExternalCollectionProgressResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *GetRefreshExternalCollectionProgressResponse) GetJobInfo() *ExternalCollectionRefreshJob {
	if x != nil {
		return x.JobInfo
	}
	return nil
}

type ListRefreshExternalCollectionJobsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base         *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	CollectionId int64             `protobuf:"varint,2,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`
}

func (x *ListRefreshExternalCollectionJobsRequest) Reset() {
	*x = ListRefreshExternalCollectionJobsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[128]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListRefreshExternalCollectionJobsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListRefreshExternalCollectionJobsRequest) ProtoMessage() {}

func (x *ListRefreshExternalCollectionJobsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[128]
	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 ListRefreshExternalCollectionJobsRequest.ProtoReflect.Descriptor instead.
func (*ListRefreshExternalCollectionJobsRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{128}
}

func (x *ListRefreshExternalCollectionJobsRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *ListRefreshExternalCollectionJobsRequest) GetCollectionId() int64 {
	if x != nil {
		return x.CollectionId
	}
	return 0
}

type ListRefreshExternalCollectionJobsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status *commonpb.Status                `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	Jobs   []*ExternalCollectionRefreshJob `protobuf:"bytes,2,rep,name=jobs,proto3" json:"jobs,omitempty"`
}

func (x *ListRefreshExternalCollectionJobsResponse) Reset() {
	*x = ListRefreshExternalCollectionJobsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[129]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListRefreshExternalCollectionJobsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListRefreshExternalCollectionJobsResponse) ProtoMessage() {}

func (x *ListRefreshExternalCollectionJobsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[129]
	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 ListRefreshExternalCollectionJobsResponse.ProtoReflect.Descriptor instead.
func (*ListRefreshExternalCollectionJobsResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{129}
}

func (x *ListRefreshExternalCollectionJobsResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *ListRefreshExternalCollectionJobsResponse) GetJobs() []*ExternalCollectionRefreshJob {
	if x != nil {
		return x.Jobs
	}
	return nil
}

type CreateSnapshotRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base                        *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	Name                        string            `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`                                                                                     // user-defined snapshot name
	Description                 string            `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`                                                                       // user-defined snapshot description
	CollectionId                int64             `protobuf:"varint,4,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`                                                // collection name
	CompactionProtectionSeconds int64             `protobuf:"varint,5,opt,name=compaction_protection_seconds,json=compactionProtectionSeconds,proto3" json:"compaction_protection_seconds,omitempty"` // duration in seconds to protect referenced segments from compaction, 0 = no protection
}

func (x *CreateSnapshotRequest) Reset() {
	*x = CreateSnapshotRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[130]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateSnapshotRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateSnapshotRequest) ProtoMessage() {}

func (x *CreateSnapshotRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[130]
	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 CreateSnapshotRequest.ProtoReflect.Descriptor instead.
func (*CreateSnapshotRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{130}
}

func (x *CreateSnapshotRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *CreateSnapshotRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *CreateSnapshotRequest) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *CreateSnapshotRequest) GetCollectionId() int64 {
	if x != nil {
		return x.CollectionId
	}
	return 0
}

func (x *CreateSnapshotRequest) GetCompactionProtectionSeconds() int64 {
	if x != nil {
		return x.CompactionProtectionSeconds
	}
	return 0
}

type DropSnapshotRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base         *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	Name         string            `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`                                      // snapshot name
	CollectionId int64             `protobuf:"varint,3,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"` // collection id for per-collection name uniqueness
}

func (x *DropSnapshotRequest) Reset() {
	*x = DropSnapshotRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[131]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DropSnapshotRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DropSnapshotRequest) ProtoMessage() {}

func (x *DropSnapshotRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[131]
	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 DropSnapshotRequest.ProtoReflect.Descriptor instead.
func (*DropSnapshotRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{131}
}

func (x *DropSnapshotRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *DropSnapshotRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *DropSnapshotRequest) GetCollectionId() int64 {
	if x != nil {
		return x.CollectionId
	}
	return 0
}

type ListSnapshotsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base         *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	CollectionId int64             `protobuf:"varint,2,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"` // collection id, if collection_id is 0, it will list all snapshots.
	PartitionId  int64             `protobuf:"varint,3,opt,name=partition_id,json=partitionId,proto3" json:"partition_id,omitempty"`    // partition id, if partition_id is 0, it will list all snapshots.
	DbId         int64             `protobuf:"varint,4,opt,name=db_id,json=dbId,proto3" json:"db_id,omitempty"`                         // filter by database, 0 means no filter
}

func (x *ListSnapshotsRequest) Reset() {
	*x = ListSnapshotsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[132]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListSnapshotsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListSnapshotsRequest) ProtoMessage() {}

func (x *ListSnapshotsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[132]
	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 ListSnapshotsRequest.ProtoReflect.Descriptor instead.
func (*ListSnapshotsRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{132}
}

func (x *ListSnapshotsRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *ListSnapshotsRequest) GetCollectionId() int64 {
	if x != nil {
		return x.CollectionId
	}
	return 0
}

func (x *ListSnapshotsRequest) GetPartitionId() int64 {
	if x != nil {
		return x.PartitionId
	}
	return 0
}

func (x *ListSnapshotsRequest) GetDbId() int64 {
	if x != nil {
		return x.DbId
	}
	return 0
}

// return all snapshots for the given collection or partition
// Note: list snapshots is not a privilege check operation
type ListSnapshotsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status    *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	Snapshots []string         `protobuf:"bytes,2,rep,name=snapshots,proto3" json:"snapshots,omitempty"`
}

func (x *ListSnapshotsResponse) Reset() {
	*x = ListSnapshotsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[133]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListSnapshotsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListSnapshotsResponse) ProtoMessage() {}

func (x *ListSnapshotsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[133]
	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 ListSnapshotsResponse.ProtoReflect.Descriptor instead.
func (*ListSnapshotsResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{133}
}

func (x *ListSnapshotsResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *ListSnapshotsResponse) GetSnapshots() []string {
	if x != nil {
		return x.Snapshots
	}
	return nil
}

type ExportSnapshotRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base         *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	Name         string            `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`                                       // snapshot name
	CollectionId int64             `protobuf:"varint,3,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`  // source collection id
	TargetS3Path string            `protobuf:"bytes,4,opt,name=target_s3_path,json=targetS3Path,proto3" json:"target_s3_path,omitempty"` // target root path for the exported snapshot bundle
	ExternalSpec string            `protobuf:"bytes,5,opt,name=external_spec,json=externalSpec,proto3" json:"external_spec,omitempty"`   // optional external storage spec for cross-bucket export target
}

func (x *ExportSnapshotRequest) Reset() {
	*x = ExportSnapshotRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[134]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ExportSnapshotRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ExportSnapshotRequest) ProtoMessage() {}

func (x *ExportSnapshotRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[134]
	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 ExportSnapshotRequest.ProtoReflect.Descriptor instead.
func (*ExportSnapshotRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{134}
}

func (x *ExportSnapshotRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *ExportSnapshotRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *ExportSnapshotRequest) GetCollectionId() int64 {
	if x != nil {
		return x.CollectionId
	}
	return 0
}

func (x *ExportSnapshotRequest) GetTargetS3Path() string {
	if x != nil {
		return x.TargetS3Path
	}
	return ""
}

func (x *ExportSnapshotRequest) GetExternalSpec() string {
	if x != nil {
		return x.ExternalSpec
	}
	return ""
}

type ExportSnapshotResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status              *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	SnapshotMetadataUri string           `protobuf:"bytes,2,opt,name=snapshot_metadata_uri,json=snapshotMetadataUri,proto3" json:"snapshot_metadata_uri,omitempty"`
}

func (x *ExportSnapshotResponse) Reset() {
	*x = ExportSnapshotResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[135]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ExportSnapshotResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ExportSnapshotResponse) ProtoMessage() {}

func (x *ExportSnapshotResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[135]
	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 ExportSnapshotResponse.ProtoReflect.Descriptor instead.
func (*ExportSnapshotResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{135}
}

func (x *ExportSnapshotResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *ExportSnapshotResponse) GetSnapshotMetadataUri() string {
	if x != nil {
		return x.SnapshotMetadataUri
	}
	return ""
}

type SegmentDescription struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SegmentId         int64                        `protobuf:"varint,1,opt,name=segment_id,json=segmentId,proto3" json:"segment_id,omitempty"`                                                                                                                      // segment id
	PartitionId       int64                        `protobuf:"varint,2,opt,name=partition_id,json=partitionId,proto3" json:"partition_id,omitempty"`                                                                                                                // partition id
	SegmentLevel      SegmentLevel                 `protobuf:"varint,3,opt,name=segment_level,json=segmentLevel,proto3,enum=milvus.proto.data.SegmentLevel" json:"segment_level,omitempty"`                                                                         // segment level
	ChannelName       string                       `protobuf:"bytes,4,opt,name=channel_name,json=channelName,proto3" json:"channel_name,omitempty"`                                                                                                                 // channel name
	Binlogs           []*FieldBinlog               `protobuf:"bytes,5,rep,name=binlogs,proto3" json:"binlogs,omitempty"`                                                                                                                                            // binlog files
	Deltalogs         []*FieldBinlog               `protobuf:"bytes,6,rep,name=deltalogs,proto3" json:"deltalogs,omitempty"`                                                                                                                                        // deltalog files
	Statslogs         []*FieldBinlog               `protobuf:"bytes,7,rep,name=statslogs,proto3" json:"statslogs,omitempty"`                                                                                                                                        // statslog files
	Bm25Statslogs     []*FieldBinlog               `protobuf:"bytes,8,rep,name=bm25_statslogs,json=bm25Statslogs,proto3" json:"bm25_statslogs,omitempty"`                                                                                                           // bm25 stats logs
	TextIndexFiles    map[int64]*TextIndexStats    `protobuf:"bytes,9,rep,name=text_index_files,json=textIndexFiles,proto3" json:"text_index_files,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`             // text index files
	JsonKeyIndexFiles map[int64]*JsonKeyStats      `protobuf:"bytes,10,rep,name=json_key_index_files,json=jsonKeyIndexFiles,proto3" json:"json_key_index_files,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // json key index files
	IndexFiles        []*indexpb.IndexFilePathInfo `protobuf:"bytes,11,rep,name=index_files,json=indexFiles,proto3" json:"index_files,omitempty"`                                                                                                                   // vector/scalar index files
	NumOfRows         int64                        `protobuf:"varint,12,opt,name=num_of_rows,json=numOfRows,proto3" json:"num_of_rows,omitempty"`                                                                                                                   // number of rows
	StartPosition     *msgpb.MsgPosition           `protobuf:"bytes,13,opt,name=start_position,json=startPosition,proto3" json:"start_position,omitempty"`                                                                                                          // start position
	DmlPosition       *msgpb.MsgPosition           `protobuf:"bytes,14,opt,name=dml_position,json=dmlPosition,proto3" json:"dml_position,omitempty"`                                                                                                                // dml position
	StorageVersion    int64                        `protobuf:"varint,15,opt,name=storage_version,json=storageVersion,proto3" json:"storage_version,omitempty"`                                                                                                      // storage version
	IsSorted          bool                         `protobuf:"varint,16,opt,name=is_sorted,json=isSorted,proto3" json:"is_sorted,omitempty"`                                                                                                                        // whether the segment is sorted by primary key
	ManifestPath      string                       `protobuf:"bytes,17,opt,name=manifest_path,json=manifestPath,proto3" json:"manifest_path,omitempty"`                                                                                                             // StorageV2 manifest file path
	// commit_timestamp mirrors SegmentInfo.commit_timestamp.
	// Must be preserved across snapshot/restore so temporal protections
	// (GC, TTL, MVCC) are not lost on the restored segments.
	CommitTimestamp uint64 `protobuf:"varint,18,opt,name=commit_timestamp,json=commitTimestamp,proto3" json:"commit_timestamp,omitempty"`
}

func (x *SegmentDescription) Reset() {
	*x = SegmentDescription{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[136]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SegmentDescription) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SegmentDescription) ProtoMessage() {}

func (x *SegmentDescription) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[136]
	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 SegmentDescription.ProtoReflect.Descriptor instead.
func (*SegmentDescription) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{136}
}

func (x *SegmentDescription) GetSegmentId() int64 {
	if x != nil {
		return x.SegmentId
	}
	return 0
}

func (x *SegmentDescription) GetPartitionId() int64 {
	if x != nil {
		return x.PartitionId
	}
	return 0
}

func (x *SegmentDescription) GetSegmentLevel() SegmentLevel {
	if x != nil {
		return x.SegmentLevel
	}
	return SegmentLevel_Legacy
}

func (x *SegmentDescription) GetChannelName() string {
	if x != nil {
		return x.ChannelName
	}
	return ""
}

func (x *SegmentDescription) GetBinlogs() []*FieldBinlog {
	if x != nil {
		return x.Binlogs
	}
	return nil
}

func (x *SegmentDescription) GetDeltalogs() []*FieldBinlog {
	if x != nil {
		return x.Deltalogs
	}
	return nil
}

func (x *SegmentDescription) GetStatslogs() []*FieldBinlog {
	if x != nil {
		return x.Statslogs
	}
	return nil
}

func (x *SegmentDescription) GetBm25Statslogs() []*FieldBinlog {
	if x != nil {
		return x.Bm25Statslogs
	}
	return nil
}

func (x *SegmentDescription) GetTextIndexFiles() map[int64]*TextIndexStats {
	if x != nil {
		return x.TextIndexFiles
	}
	return nil
}

func (x *SegmentDescription) GetJsonKeyIndexFiles() map[int64]*JsonKeyStats {
	if x != nil {
		return x.JsonKeyIndexFiles
	}
	return nil
}

func (x *SegmentDescription) GetIndexFiles() []*indexpb.IndexFilePathInfo {
	if x != nil {
		return x.IndexFiles
	}
	return nil
}

func (x *SegmentDescription) GetNumOfRows() int64 {
	if x != nil {
		return x.NumOfRows
	}
	return 0
}

func (x *SegmentDescription) GetStartPosition() *msgpb.MsgPosition {
	if x != nil {
		return x.StartPosition
	}
	return nil
}

func (x *SegmentDescription) GetDmlPosition() *msgpb.MsgPosition {
	if x != nil {
		return x.DmlPosition
	}
	return nil
}

func (x *SegmentDescription) GetStorageVersion() int64 {
	if x != nil {
		return x.StorageVersion
	}
	return 0
}

func (x *SegmentDescription) GetIsSorted() bool {
	if x != nil {
		return x.IsSorted
	}
	return false
}

func (x *SegmentDescription) GetManifestPath() string {
	if x != nil {
		return x.ManifestPath
	}
	return ""
}

func (x *SegmentDescription) GetCommitTimestamp() uint64 {
	if x != nil {
		return x.CommitTimestamp
	}
	return 0
}

type CollectionDescription struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Schema              *schemapb.CollectionSchema `protobuf:"bytes,1,opt,name=schema,proto3" json:"schema,omitempty"`                                                                                                  // collection schema
	NumPartitions       int64                      `protobuf:"varint,2,opt,name=num_partitions,json=numPartitions,proto3" json:"num_partitions,omitempty"`                                                              // num of default physical partitions, only used in partition key mode and changes are not supported
	NumShards           int64                      `protobuf:"varint,3,opt,name=num_shards,json=numShards,proto3" json:"num_shards,omitempty"`                                                                          // num of shards
	ConsistencyLevel    commonpb.ConsistencyLevel  `protobuf:"varint,4,opt,name=consistency_level,json=consistencyLevel,proto3,enum=milvus.proto.common.ConsistencyLevel" json:"consistency_level,omitempty"`           // consistency level
	Properties          []*commonpb.KeyValuePair   `protobuf:"bytes,5,rep,name=properties,proto3" json:"properties,omitempty"`                                                                                          // properties
	Partitions          map[string]int64           `protobuf:"bytes,6,rep,name=partitions,proto3" json:"partitions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // partition name to id mapping
	VirtualChannelNames []string                   `protobuf:"bytes,7,rep,name=virtual_channel_names,json=virtualChannelNames,proto3" json:"virtual_channel_names,omitempty"`                                           // virtual channel names for restore to preserve pchannel mapping
}

func (x *CollectionDescription) Reset() {
	*x = CollectionDescription{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[137]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CollectionDescription) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CollectionDescription) ProtoMessage() {}

func (x *CollectionDescription) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[137]
	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 CollectionDescription.ProtoReflect.Descriptor instead.
func (*CollectionDescription) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{137}
}

func (x *CollectionDescription) GetSchema() *schemapb.CollectionSchema {
	if x != nil {
		return x.Schema
	}
	return nil
}

func (x *CollectionDescription) GetNumPartitions() int64 {
	if x != nil {
		return x.NumPartitions
	}
	return 0
}

func (x *CollectionDescription) GetNumShards() int64 {
	if x != nil {
		return x.NumShards
	}
	return 0
}

func (x *CollectionDescription) GetConsistencyLevel() commonpb.ConsistencyLevel {
	if x != nil {
		return x.ConsistencyLevel
	}
	return commonpb.ConsistencyLevel(0)
}

func (x *CollectionDescription) GetProperties() []*commonpb.KeyValuePair {
	if x != nil {
		return x.Properties
	}
	return nil
}

func (x *CollectionDescription) GetPartitions() map[string]int64 {
	if x != nil {
		return x.Partitions
	}
	return nil
}

func (x *CollectionDescription) GetVirtualChannelNames() []string {
	if x != nil {
		return x.VirtualChannelNames
	}
	return nil
}

type SnapshotInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name         string  `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`                                             // user-defined snapshot name
	Id           int64   `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"`                                                // snapshot id
	Description  string  `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`                               // user-defined snapshot description
	CollectionId int64   `protobuf:"varint,4,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`        // collection id
	PartitionIds []int64 `protobuf:"varint,5,rep,packed,name=partition_ids,json=partitionIds,proto3" json:"partition_ids,omitempty"` // partition ids
	// create_ts is a compatibility summary timestamp. For new snapshots it is
	// min(channel_seek_positions.timestamp), not a global cross-channel boundary.
	CreateTs             int64           `protobuf:"varint,6,opt,name=create_ts,json=createTs,proto3" json:"create_ts,omitempty"`
	S3Location           string          `protobuf:"bytes,7,opt,name=s3_location,json=s3Location,proto3" json:"s3_location,omitempty"`                                                                                                         // s3 location of the snapshot meta file if snapshot is exported to s3.
	State                SnapshotState   `protobuf:"varint,8,opt,name=state,proto3,enum=milvus.proto.data.SnapshotState" json:"state,omitempty"`                                                                                               // snapshot state for 2PC commit (Pending/Committed)
	PendingStartTime     int64           `protobuf:"varint,9,opt,name=pending_start_time,json=pendingStartTime,proto3" json:"pending_start_time,omitempty"`                                                                                    // timestamp when pending started, for GC timeout
	CompactionExpireTime uint64          `protobuf:"varint,10,opt,name=compaction_expire_time,json=compactionExpireTime,proto3" json:"compaction_expire_time,omitempty"`                                                                       // absolute expiry timestamp (Unix seconds) for compaction protection, 0 = no protection
	PinIds               []int64         `protobuf:"varint,11,rep,packed,name=pin_ids,json=pinIds,proto3" json:"pin_ids,omitempty"`                                                                                                            // active pin IDs (crypto-random, unique per pin operation)
	PinExpireAtMs        map[int64]int64 `protobuf:"bytes,12,rep,name=pin_expire_at_ms,json=pinExpireAtMs,proto3" json:"pin_expire_at_ms,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // pin_id -> expiry timestamp (ms), 0 = no expiry
	// Per-channel snapshot boundaries. Each position records the seek point used
	// to decide which segments from that channel are included in the snapshot.
	ChannelSeekPositions []*msgpb.MsgPosition `protobuf:"bytes,13,rep,name=channel_seek_positions,json=channelSeekPositions,proto3" json:"channel_seek_positions,omitempty"`
}

func (x *SnapshotInfo) Reset() {
	*x = SnapshotInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[138]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SnapshotInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SnapshotInfo) ProtoMessage() {}

func (x *SnapshotInfo) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[138]
	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 SnapshotInfo.ProtoReflect.Descriptor instead.
func (*SnapshotInfo) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{138}
}

func (x *SnapshotInfo) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *SnapshotInfo) GetId() int64 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *SnapshotInfo) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *SnapshotInfo) GetCollectionId() int64 {
	if x != nil {
		return x.CollectionId
	}
	return 0
}

func (x *SnapshotInfo) GetPartitionIds() []int64 {
	if x != nil {
		return x.PartitionIds
	}
	return nil
}

func (x *SnapshotInfo) GetCreateTs() int64 {
	if x != nil {
		return x.CreateTs
	}
	return 0
}

func (x *SnapshotInfo) GetS3Location() string {
	if x != nil {
		return x.S3Location
	}
	return ""
}

func (x *SnapshotInfo) GetState() SnapshotState {
	if x != nil {
		return x.State
	}
	return SnapshotState_SnapshotStateUnknown
}

func (x *SnapshotInfo) GetPendingStartTime() int64 {
	if x != nil {
		return x.PendingStartTime
	}
	return 0
}

func (x *SnapshotInfo) GetCompactionExpireTime() uint64 {
	if x != nil {
		return x.CompactionExpireTime
	}
	return 0
}

func (x *SnapshotInfo) GetPinIds() []int64 {
	if x != nil {
		return x.PinIds
	}
	return nil
}

func (x *SnapshotInfo) GetPinExpireAtMs() map[int64]int64 {
	if x != nil {
		return x.PinExpireAtMs
	}
	return nil
}

func (x *SnapshotInfo) GetChannelSeekPositions() []*msgpb.MsgPosition {
	if x != nil {
		return x.ChannelSeekPositions
	}
	return nil
}

// StorageV2SegmentManifest maps a segment ID to its StorageV2 manifest file path.
// StorageV2 is Milvus's newer storage format that uses Lance/Arrow for better performance.
type StorageV2SegmentManifest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SegmentId int64  `protobuf:"varint,1,opt,name=segment_id,json=segmentId,proto3" json:"segment_id,omitempty"`
	Manifest  string `protobuf:"bytes,2,opt,name=manifest,proto3" json:"manifest,omitempty"`
}

func (x *StorageV2SegmentManifest) Reset() {
	*x = StorageV2SegmentManifest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[139]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StorageV2SegmentManifest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StorageV2SegmentManifest) ProtoMessage() {}

func (x *StorageV2SegmentManifest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[139]
	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 StorageV2SegmentManifest.ProtoReflect.Descriptor instead.
func (*StorageV2SegmentManifest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{139}
}

func (x *StorageV2SegmentManifest) GetSegmentId() int64 {
	if x != nil {
		return x.SegmentId
	}
	return 0
}

func (x *StorageV2SegmentManifest) GetManifest() string {
	if x != nil {
		return x.Manifest
	}
	return ""
}

// SnapshotMetadata is the root structure for snapshot metadata JSON file.
// This file serves as the entry point for reading a snapshot, containing:
//   - Snapshot identification and status information
//   - Collection schema and properties
//   - References to segment manifest files
//   - Pre-computed ID lists for optimized loading
//
// File path: snapshots/{collection_id}/metadata/{snapshot_id}.json
type SnapshotMetadata struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	FormatVersion         int32                       `protobuf:"varint,1,opt,name=format_version,json=formatVersion,proto3" json:"format_version,omitempty"`
	SnapshotInfo          *SnapshotInfo               `protobuf:"bytes,2,opt,name=snapshot_info,json=snapshotInfo,proto3" json:"snapshot_info,omitempty"`
	Collection            *CollectionDescription      `protobuf:"bytes,3,opt,name=collection,proto3" json:"collection,omitempty"`
	Indexes               []*indexpb.IndexInfo        `protobuf:"bytes,4,rep,name=indexes,proto3" json:"indexes,omitempty"`
	ManifestList          []string                    `protobuf:"bytes,5,rep,name=manifest_list,json=manifestList,proto3" json:"manifest_list,omitempty"`
	Storagev2ManifestList []*StorageV2SegmentManifest `protobuf:"bytes,6,rep,name=storagev2_manifest_list,json=storagev2ManifestList,proto3" json:"storagev2_manifest_list,omitempty"`
	SegmentIds            []int64                     `protobuf:"varint,7,rep,packed,name=segment_ids,json=segmentIds,proto3" json:"segment_ids,omitempty"`
	BuildIds              []int64                     `protobuf:"varint,8,rep,packed,name=build_ids,json=buildIds,proto3" json:"build_ids,omitempty"`
	Layout                SnapshotLayout              `protobuf:"varint,9,opt,name=layout,proto3,enum=milvus.proto.data.SnapshotLayout" json:"layout,omitempty"`
}

func (x *SnapshotMetadata) Reset() {
	*x = SnapshotMetadata{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[140]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SnapshotMetadata) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SnapshotMetadata) ProtoMessage() {}

func (x *SnapshotMetadata) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[140]
	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 SnapshotMetadata.ProtoReflect.Descriptor instead.
func (*SnapshotMetadata) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{140}
}

func (x *SnapshotMetadata) GetFormatVersion() int32 {
	if x != nil {
		return x.FormatVersion
	}
	return 0
}

func (x *SnapshotMetadata) GetSnapshotInfo() *SnapshotInfo {
	if x != nil {
		return x.SnapshotInfo
	}
	return nil
}

func (x *SnapshotMetadata) GetCollection() *CollectionDescription {
	if x != nil {
		return x.Collection
	}
	return nil
}

func (x *SnapshotMetadata) GetIndexes() []*indexpb.IndexInfo {
	if x != nil {
		return x.Indexes
	}
	return nil
}

func (x *SnapshotMetadata) GetManifestList() []string {
	if x != nil {
		return x.ManifestList
	}
	return nil
}

func (x *SnapshotMetadata) GetStoragev2ManifestList() []*StorageV2SegmentManifest {
	if x != nil {
		return x.Storagev2ManifestList
	}
	return nil
}

func (x *SnapshotMetadata) GetSegmentIds() []int64 {
	if x != nil {
		return x.SegmentIds
	}
	return nil
}

func (x *SnapshotMetadata) GetBuildIds() []int64 {
	if x != nil {
		return x.BuildIds
	}
	return nil
}

func (x *SnapshotMetadata) GetLayout() SnapshotLayout {
	if x != nil {
		return x.Layout
	}
	return SnapshotLayout_SnapshotLayoutUnknown
}

type RestoreSnapshotInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	JobId        int64                `protobuf:"varint,1,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`                                // restore job ID
	SnapshotName string               `protobuf:"bytes,2,opt,name=snapshot_name,json=snapshotName,proto3" json:"snapshot_name,omitempty"`            // snapshot name
	CollectionId int64                `protobuf:"varint,3,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`           // collection id
	State        RestoreSnapshotState `protobuf:"varint,4,opt,name=state,proto3,enum=milvus.proto.data.RestoreSnapshotState" json:"state,omitempty"` // restore job state
	Progress     int32                `protobuf:"varint,5,opt,name=progress,proto3" json:"progress,omitempty"`                                       // progress percentage (0-100)
	Reason       string               `protobuf:"bytes,6,opt,name=reason,proto3" json:"reason,omitempty"`                                            // error reason if failed
	TimeCost     uint64               `protobuf:"varint,7,opt,name=time_cost,json=timeCost,proto3" json:"time_cost,omitempty"`                       // time cost in milliseconds
	StartTime    uint64               `protobuf:"varint,8,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`                    // start time in milliseconds since Unix epoch
	DbId         int64                `protobuf:"varint,9,opt,name=db_id,json=dbId,proto3" json:"db_id,omitempty"`                                   // database id of the target collection
}

func (x *RestoreSnapshotInfo) Reset() {
	*x = RestoreSnapshotInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[141]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RestoreSnapshotInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RestoreSnapshotInfo) ProtoMessage() {}

func (x *RestoreSnapshotInfo) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[141]
	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 RestoreSnapshotInfo.ProtoReflect.Descriptor instead.
func (*RestoreSnapshotInfo) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{141}
}

func (x *RestoreSnapshotInfo) GetJobId() int64 {
	if x != nil {
		return x.JobId
	}
	return 0
}

func (x *RestoreSnapshotInfo) GetSnapshotName() string {
	if x != nil {
		return x.SnapshotName
	}
	return ""
}

func (x *RestoreSnapshotInfo) GetCollectionId() int64 {
	if x != nil {
		return x.CollectionId
	}
	return 0
}

func (x *RestoreSnapshotInfo) GetState() RestoreSnapshotState {
	if x != nil {
		return x.State
	}
	return RestoreSnapshotState_RestoreSnapshotNone
}

func (x *RestoreSnapshotInfo) GetProgress() int32 {
	if x != nil {
		return x.Progress
	}
	return 0
}

func (x *RestoreSnapshotInfo) GetReason() string {
	if x != nil {
		return x.Reason
	}
	return ""
}

func (x *RestoreSnapshotInfo) GetTimeCost() uint64 {
	if x != nil {
		return x.TimeCost
	}
	return 0
}

func (x *RestoreSnapshotInfo) GetStartTime() uint64 {
	if x != nil {
		return x.StartTime
	}
	return 0
}

func (x *RestoreSnapshotInfo) GetDbId() int64 {
	if x != nil {
		return x.DbId
	}
	return 0
}

type DescribeSnapshotRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base                  *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	Name                  string            `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`                                                                   // snapshot name
	IncludeCollectionInfo bool              `protobuf:"varint,3,opt,name=include_collection_info,json=includeCollectionInfo,proto3" json:"include_collection_info,omitempty"` // if include_collection_info is true, it will return collection info.
	CollectionId          int64             `protobuf:"varint,4,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`                              // collection id for per-collection name uniqueness
}

func (x *DescribeSnapshotRequest) Reset() {
	*x = DescribeSnapshotRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[142]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DescribeSnapshotRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DescribeSnapshotRequest) ProtoMessage() {}

func (x *DescribeSnapshotRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[142]
	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 DescribeSnapshotRequest.ProtoReflect.Descriptor instead.
func (*DescribeSnapshotRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{142}
}

func (x *DescribeSnapshotRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *DescribeSnapshotRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *DescribeSnapshotRequest) GetIncludeCollectionInfo() bool {
	if x != nil {
		return x.IncludeCollectionInfo
	}
	return false
}

func (x *DescribeSnapshotRequest) GetCollectionId() int64 {
	if x != nil {
		return x.CollectionId
	}
	return 0
}

// return snapshot basic info and snapshot data info
type DescribeSnapshotResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status         *commonpb.Status       `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	SnapshotInfo   *SnapshotInfo          `protobuf:"bytes,2,opt,name=snapshot_info,json=snapshotInfo,proto3" json:"snapshot_info,omitempty"`       // snapshot info, if snapshot_info is not nil, it will be used to describe the snapshot.
	CollectionInfo *CollectionDescription `protobuf:"bytes,3,opt,name=collection_info,json=collectionInfo,proto3" json:"collection_info,omitempty"` // collection info, if include_collection_info is true, it will return collection info.
	IndexInfos     []*indexpb.IndexInfo   `protobuf:"bytes,4,rep,name=index_infos,json=indexInfos,proto3" json:"index_infos,omitempty"`             // index infos, if include_collection_info is true, it will return index infos.
}

func (x *DescribeSnapshotResponse) Reset() {
	*x = DescribeSnapshotResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[143]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DescribeSnapshotResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DescribeSnapshotResponse) ProtoMessage() {}

func (x *DescribeSnapshotResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[143]
	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 DescribeSnapshotResponse.ProtoReflect.Descriptor instead.
func (*DescribeSnapshotResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{143}
}

func (x *DescribeSnapshotResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *DescribeSnapshotResponse) GetSnapshotInfo() *SnapshotInfo {
	if x != nil {
		return x.SnapshotInfo
	}
	return nil
}

func (x *DescribeSnapshotResponse) GetCollectionInfo() *CollectionDescription {
	if x != nil {
		return x.CollectionInfo
	}
	return nil
}

func (x *DescribeSnapshotResponse) GetIndexInfos() []*indexpb.IndexInfo {
	if x != nil {
		return x.IndexInfos
	}
	return nil
}

// restore a snapshot to a new collection (DataCoord-driven flow)
// DataCoord creates the collection and partitions via RootCoord, then creates copy segment jobs
type RestoreSnapshotRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base                 *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	Name                 string            `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`                                                               // snapshot name
	TargetDbName         string            `protobuf:"bytes,3,opt,name=target_db_name,json=targetDbName,proto3" json:"target_db_name,omitempty"`                         // target database name (where to restore to)
	TargetCollectionName string            `protobuf:"bytes,4,opt,name=target_collection_name,json=targetCollectionName,proto3" json:"target_collection_name,omitempty"` // target collection name (must not exist)
	SourceCollectionId   int64             `protobuf:"varint,5,opt,name=source_collection_id,json=sourceCollectionId,proto3" json:"source_collection_id,omitempty"`      // source collection id for per-collection snapshot name lookup
	External             bool              `protobuf:"varint,6,opt,name=external,proto3" json:"external,omitempty"`                                                      // true when restoring from an external snapshot metadata URI
	SnapshotS3Location   string            `protobuf:"bytes,7,opt,name=snapshot_s3_location,json=snapshotS3Location,proto3" json:"snapshot_s3_location,omitempty"`       // metadata file path for external snapshot restore
	ExternalSpec         string            `protobuf:"bytes,8,opt,name=external_spec,json=externalSpec,proto3" json:"external_spec,omitempty"`                           // optional external storage spec for cross-bucket restore source
}

func (x *RestoreSnapshotRequest) Reset() {
	*x = RestoreSnapshotRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[144]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RestoreSnapshotRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RestoreSnapshotRequest) ProtoMessage() {}

func (x *RestoreSnapshotRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[144]
	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 RestoreSnapshotRequest.ProtoReflect.Descriptor instead.
func (*RestoreSnapshotRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{144}
}

func (x *RestoreSnapshotRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *RestoreSnapshotRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *RestoreSnapshotRequest) GetTargetDbName() string {
	if x != nil {
		return x.TargetDbName
	}
	return ""
}

func (x *RestoreSnapshotRequest) GetTargetCollectionName() string {
	if x != nil {
		return x.TargetCollectionName
	}
	return ""
}

func (x *RestoreSnapshotRequest) GetSourceCollectionId() int64 {
	if x != nil {
		return x.SourceCollectionId
	}
	return 0
}

func (x *RestoreSnapshotRequest) GetExternal() bool {
	if x != nil {
		return x.External
	}
	return false
}

func (x *RestoreSnapshotRequest) GetSnapshotS3Location() string {
	if x != nil {
		return x.SnapshotS3Location
	}
	return ""
}

func (x *RestoreSnapshotRequest) GetExternalSpec() string {
	if x != nil {
		return x.ExternalSpec
	}
	return ""
}

type RestoreSnapshotResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status       *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	JobId        int64            `protobuf:"varint,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`                      // restore job ID for async tracking (deprecated, use ListRestoreJobs)
	CollectionId int64            `protobuf:"varint,3,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"` // deprecated
}

func (x *RestoreSnapshotResponse) Reset() {
	*x = RestoreSnapshotResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[145]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RestoreSnapshotResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RestoreSnapshotResponse) ProtoMessage() {}

func (x *RestoreSnapshotResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[145]
	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 RestoreSnapshotResponse.ProtoReflect.Descriptor instead.
func (*RestoreSnapshotResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{145}
}

func (x *RestoreSnapshotResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *RestoreSnapshotResponse) GetJobId() int64 {
	if x != nil {
		return x.JobId
	}
	return 0
}

func (x *RestoreSnapshotResponse) GetCollectionId() int64 {
	if x != nil {
		return x.CollectionId
	}
	return 0
}

type GetRestoreSnapshotStateRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base  *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	JobId int64             `protobuf:"varint,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` // restore job ID
}

func (x *GetRestoreSnapshotStateRequest) Reset() {
	*x = GetRestoreSnapshotStateRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[146]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetRestoreSnapshotStateRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetRestoreSnapshotStateRequest) ProtoMessage() {}

func (x *GetRestoreSnapshotStateRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[146]
	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 GetRestoreSnapshotStateRequest.ProtoReflect.Descriptor instead.
func (*GetRestoreSnapshotStateRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{146}
}

func (x *GetRestoreSnapshotStateRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *GetRestoreSnapshotStateRequest) GetJobId() int64 {
	if x != nil {
		return x.JobId
	}
	return 0
}

type GetRestoreSnapshotStateResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status *commonpb.Status     `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	Info   *RestoreSnapshotInfo `protobuf:"bytes,2,opt,name=info,proto3" json:"info,omitempty"` // restore snapshot job info
}

func (x *GetRestoreSnapshotStateResponse) Reset() {
	*x = GetRestoreSnapshotStateResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[147]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetRestoreSnapshotStateResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetRestoreSnapshotStateResponse) ProtoMessage() {}

func (x *GetRestoreSnapshotStateResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[147]
	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 GetRestoreSnapshotStateResponse.ProtoReflect.Descriptor instead.
func (*GetRestoreSnapshotStateResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{147}
}

func (x *GetRestoreSnapshotStateResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *GetRestoreSnapshotStateResponse) GetInfo() *RestoreSnapshotInfo {
	if x != nil {
		return x.Info
	}
	return nil
}

type ListRestoreSnapshotJobsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base         *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	CollectionId int64             `protobuf:"varint,2,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"` // filter by collection id, empty for all
	DbId         int64             `protobuf:"varint,3,opt,name=db_id,json=dbId,proto3" json:"db_id,omitempty"`                         // filter by database, 0 means no filter
}

func (x *ListRestoreSnapshotJobsRequest) Reset() {
	*x = ListRestoreSnapshotJobsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[148]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListRestoreSnapshotJobsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListRestoreSnapshotJobsRequest) ProtoMessage() {}

func (x *ListRestoreSnapshotJobsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[148]
	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 ListRestoreSnapshotJobsRequest.ProtoReflect.Descriptor instead.
func (*ListRestoreSnapshotJobsRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{148}
}

func (x *ListRestoreSnapshotJobsRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *ListRestoreSnapshotJobsRequest) GetCollectionId() int64 {
	if x != nil {
		return x.CollectionId
	}
	return 0
}

func (x *ListRestoreSnapshotJobsRequest) GetDbId() int64 {
	if x != nil {
		return x.DbId
	}
	return 0
}

type ListRestoreSnapshotJobsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status *commonpb.Status       `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	Jobs   []*RestoreSnapshotInfo `protobuf:"bytes,2,rep,name=jobs,proto3" json:"jobs,omitempty"` // list of restore snapshot jobs
}

func (x *ListRestoreSnapshotJobsResponse) Reset() {
	*x = ListRestoreSnapshotJobsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[149]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListRestoreSnapshotJobsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListRestoreSnapshotJobsResponse) ProtoMessage() {}

func (x *ListRestoreSnapshotJobsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[149]
	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 ListRestoreSnapshotJobsResponse.ProtoReflect.Descriptor instead.
func (*ListRestoreSnapshotJobsResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{149}
}

func (x *ListRestoreSnapshotJobsResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *ListRestoreSnapshotJobsResponse) GetJobs() []*RestoreSnapshotInfo {
	if x != nil {
		return x.Jobs
	}
	return nil
}

type BatchUpdateManifestRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base         *commonpb.MsgBase          `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	CollectionId int64                      `protobuf:"varint,2,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`
	Items        []*BatchUpdateManifestItem `protobuf:"bytes,3,rep,name=items,proto3" json:"items,omitempty"`
}

func (x *BatchUpdateManifestRequest) Reset() {
	*x = BatchUpdateManifestRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[150]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *BatchUpdateManifestRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*BatchUpdateManifestRequest) ProtoMessage() {}

func (x *BatchUpdateManifestRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[150]
	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 BatchUpdateManifestRequest.ProtoReflect.Descriptor instead.
func (*BatchUpdateManifestRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{150}
}

func (x *BatchUpdateManifestRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *BatchUpdateManifestRequest) GetCollectionId() int64 {
	if x != nil {
		return x.CollectionId
	}
	return 0
}

func (x *BatchUpdateManifestRequest) GetItems() []*BatchUpdateManifestItem {
	if x != nil {
		return x.Items
	}
	return nil
}

type BatchUpdateManifestItem struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SegmentId       int64 `protobuf:"varint,1,opt,name=segment_id,json=segmentId,proto3" json:"segment_id,omitempty"`
	ManifestVersion int64 `protobuf:"varint,2,opt,name=manifest_version,json=manifestVersion,proto3" json:"manifest_version,omitempty"`
}

func (x *BatchUpdateManifestItem) Reset() {
	*x = BatchUpdateManifestItem{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[151]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *BatchUpdateManifestItem) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*BatchUpdateManifestItem) ProtoMessage() {}

func (x *BatchUpdateManifestItem) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[151]
	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 BatchUpdateManifestItem.ProtoReflect.Descriptor instead.
func (*BatchUpdateManifestItem) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{151}
}

func (x *BatchUpdateManifestItem) GetSegmentId() int64 {
	if x != nil {
		return x.SegmentId
	}
	return 0
}

func (x *BatchUpdateManifestItem) GetManifestVersion() int64 {
	if x != nil {
		return x.ManifestVersion
	}
	return 0
}

// CommitBackfillResultRequest is sent by the proxy management HTTP endpoint to
// hand off the path of a BackfillResult JSON file on object storage. DataCoord
// downloads the JSON, classifies each segment entry (V2/V3), and dispatches
// the resulting operators through the BatchUpdateManifest broadcast pipeline.
type CommitBackfillResultRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	// Accepted forms:
	//
	//	s3a://<bucket>/<key>   (canonical form produced by Spark)
	//	s3://<bucket>/<key>
	//	/<key>                 (bucket implied)
	ResultPath string `protobuf:"bytes,2,opt,name=result_path,json=resultPath,proto3" json:"result_path,omitempty"`
}

func (x *CommitBackfillResultRequest) Reset() {
	*x = CommitBackfillResultRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[152]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CommitBackfillResultRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CommitBackfillResultRequest) ProtoMessage() {}

func (x *CommitBackfillResultRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[152]
	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 CommitBackfillResultRequest.ProtoReflect.Descriptor instead.
func (*CommitBackfillResultRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{152}
}

func (x *CommitBackfillResultRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *CommitBackfillResultRequest) GetResultPath() string {
	if x != nil {
		return x.ResultPath
	}
	return ""
}

type CommitBackfillResultSegmentStatus struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SegmentId int64  `protobuf:"varint,1,opt,name=segment_id,json=segmentId,proto3" json:"segment_id,omitempty"`
	Ok        bool   `protobuf:"varint,2,opt,name=ok,proto3" json:"ok,omitempty"`
	Reason    string `protobuf:"bytes,3,opt,name=reason,proto3" json:"reason,omitempty"`
	Kind      string `protobuf:"bytes,4,opt,name=kind,proto3" json:"kind,omitempty"` // "v2" | "v3"
}

func (x *CommitBackfillResultSegmentStatus) Reset() {
	*x = CommitBackfillResultSegmentStatus{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[153]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CommitBackfillResultSegmentStatus) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CommitBackfillResultSegmentStatus) ProtoMessage() {}

func (x *CommitBackfillResultSegmentStatus) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[153]
	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 CommitBackfillResultSegmentStatus.ProtoReflect.Descriptor instead.
func (*CommitBackfillResultSegmentStatus) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{153}
}

func (x *CommitBackfillResultSegmentStatus) GetSegmentId() int64 {
	if x != nil {
		return x.SegmentId
	}
	return 0
}

func (x *CommitBackfillResultSegmentStatus) GetOk() bool {
	if x != nil {
		return x.Ok
	}
	return false
}

func (x *CommitBackfillResultSegmentStatus) GetReason() string {
	if x != nil {
		return x.Reason
	}
	return ""
}

func (x *CommitBackfillResultSegmentStatus) GetKind() string {
	if x != nil {
		return x.Kind
	}
	return ""
}

type CommitBackfillResultResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status            *commonpb.Status                     `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	TotalSegments     int32                                `protobuf:"varint,2,opt,name=total_segments,json=totalSegments,proto3" json:"total_segments,omitempty"`
	CommittedSegments int32                                `protobuf:"varint,3,opt,name=committed_segments,json=committedSegments,proto3" json:"committed_segments,omitempty"`
	FailedSegments    int32                                `protobuf:"varint,4,opt,name=failed_segments,json=failedSegments,proto3" json:"failed_segments,omitempty"`
	SegmentStatuses   []*CommitBackfillResultSegmentStatus `protobuf:"bytes,5,rep,name=segment_statuses,json=segmentStatuses,proto3" json:"segment_statuses,omitempty"`
}

func (x *CommitBackfillResultResponse) Reset() {
	*x = CommitBackfillResultResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[154]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CommitBackfillResultResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CommitBackfillResultResponse) ProtoMessage() {}

func (x *CommitBackfillResultResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[154]
	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 CommitBackfillResultResponse.ProtoReflect.Descriptor instead.
func (*CommitBackfillResultResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{154}
}

func (x *CommitBackfillResultResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *CommitBackfillResultResponse) GetTotalSegments() int32 {
	if x != nil {
		return x.TotalSegments
	}
	return 0
}

func (x *CommitBackfillResultResponse) GetCommittedSegments() int32 {
	if x != nil {
		return x.CommittedSegments
	}
	return 0
}

func (x *CommitBackfillResultResponse) GetFailedSegments() int32 {
	if x != nil {
		return x.FailedSegments
	}
	return 0
}

func (x *CommitBackfillResultResponse) GetSegmentStatuses() []*CommitBackfillResultSegmentStatus {
	if x != nil {
		return x.SegmentStatuses
	}
	return nil
}

type PinSnapshotDataRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base         *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	Name         string            `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`                                      // snapshot name
	CollectionId int64             `protobuf:"varint,3,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"` // collection id
	TtlSeconds   int64             `protobuf:"varint,4,opt,name=ttl_seconds,json=ttlSeconds,proto3" json:"ttl_seconds,omitempty"`       // optional: 0 = no expiry, >0 = auto-expire in seconds
}

func (x *PinSnapshotDataRequest) Reset() {
	*x = PinSnapshotDataRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[155]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PinSnapshotDataRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PinSnapshotDataRequest) ProtoMessage() {}

func (x *PinSnapshotDataRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[155]
	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 PinSnapshotDataRequest.ProtoReflect.Descriptor instead.
func (*PinSnapshotDataRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{155}
}

func (x *PinSnapshotDataRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *PinSnapshotDataRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *PinSnapshotDataRequest) GetCollectionId() int64 {
	if x != nil {
		return x.CollectionId
	}
	return 0
}

func (x *PinSnapshotDataRequest) GetTtlSeconds() int64 {
	if x != nil {
		return x.TtlSeconds
	}
	return 0
}

type PinSnapshotDataResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	PinId  int64            `protobuf:"varint,2,opt,name=pin_id,json=pinId,proto3" json:"pin_id,omitempty"` // allocated pin ID for Unpin
}

func (x *PinSnapshotDataResponse) Reset() {
	*x = PinSnapshotDataResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[156]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PinSnapshotDataResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PinSnapshotDataResponse) ProtoMessage() {}

func (x *PinSnapshotDataResponse) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[156]
	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 PinSnapshotDataResponse.ProtoReflect.Descriptor instead.
func (*PinSnapshotDataResponse) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{156}
}

func (x *PinSnapshotDataResponse) GetStatus() *commonpb.Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *PinSnapshotDataResponse) GetPinId() int64 {
	if x != nil {
		return x.PinId
	}
	return 0
}

type UnpinSnapshotDataRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base  *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	PinId int64             `protobuf:"varint,2,opt,name=pin_id,json=pinId,proto3" json:"pin_id,omitempty"` // pin ID from PinSnapshotData response
}

func (x *UnpinSnapshotDataRequest) Reset() {
	*x = UnpinSnapshotDataRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[157]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UnpinSnapshotDataRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UnpinSnapshotDataRequest) ProtoMessage() {}

func (x *UnpinSnapshotDataRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[157]
	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 UnpinSnapshotDataRequest.ProtoReflect.Descriptor instead.
func (*UnpinSnapshotDataRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{157}
}

func (x *UnpinSnapshotDataRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *UnpinSnapshotDataRequest) GetPinId() int64 {
	if x != nil {
		return x.PinId
	}
	return 0
}

type CommitImportRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base  *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	JobId int64             `protobuf:"varint,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
}

func (x *CommitImportRequest) Reset() {
	*x = CommitImportRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[158]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CommitImportRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CommitImportRequest) ProtoMessage() {}

func (x *CommitImportRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[158]
	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 CommitImportRequest.ProtoReflect.Descriptor instead.
func (*CommitImportRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{158}
}

func (x *CommitImportRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *CommitImportRequest) GetJobId() int64 {
	if x != nil {
		return x.JobId
	}
	return 0
}

type AbortImportRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base  *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	JobId int64             `protobuf:"varint,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
}

func (x *AbortImportRequest) Reset() {
	*x = AbortImportRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[159]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AbortImportRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AbortImportRequest) ProtoMessage() {}

func (x *AbortImportRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[159]
	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 AbortImportRequest.ProtoReflect.Descriptor instead.
func (*AbortImportRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{159}
}

func (x *AbortImportRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *AbortImportRequest) GetJobId() int64 {
	if x != nil {
		return x.JobId
	}
	return 0
}

type HandleCommitVchannelRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Base     *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	JobId    int64             `protobuf:"varint,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
	Vchannel string            `protobuf:"bytes,3,opt,name=vchannel,proto3" json:"vchannel,omitempty"`
	// commit_timestamp is the WAL message timestamp of the CommitImportMessage.
	// This becomes the segment's commit_timestamp for MVCC/TTL/delete correctness.
	CommitTimestamp uint64 `protobuf:"varint,4,opt,name=commit_timestamp,json=commitTimestamp,proto3" json:"commit_timestamp,omitempty"`
}

func (x *HandleCommitVchannelRequest) Reset() {
	*x = HandleCommitVchannelRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_data_coord_proto_msgTypes[160]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *HandleCommitVchannelRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HandleCommitVchannelRequest) ProtoMessage() {}

func (x *HandleCommitVchannelRequest) ProtoReflect() protoreflect.Message {
	mi := &file_data_coord_proto_msgTypes[160]
	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 HandleCommitVchannelRequest.ProtoReflect.Descriptor instead.
func (*HandleCommitVchannelRequest) Descriptor() ([]byte, []int) {
	return file_data_coord_proto_rawDescGZIP(), []int{160}
}

func (x *HandleCommitVchannelRequest) GetBase() *commonpb.MsgBase {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *HandleCommitVchannelRequest) GetJobId() int64 {
	if x != nil {
		return x.JobId
	}
	return 0
}

func (x *HandleCommitVchannelRequest) GetVchannel() string {
	if x != nil {
		return x.Vchannel
	}
	return ""
}

func (x *HandleCommitVchannelRequest) GetCommitTimestamp() uint64 {
	if x != nil {
		return x.CommitTimestamp
	}
	return 0
}

var File_data_coord_proto protoreflect.FileDescriptor

var file_data_coord_proto_rawDesc = []byte{
	0x0a, 0x10, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x12, 0x11, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x1a, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x1a, 0x0c, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x1a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
	0x09, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x69, 0x6e, 0x64, 0x65,
	0x78, 0x5f, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x07, 0x0a,
	0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xb4, 0x01, 0x0a, 0x0c, 0x46, 0x6c, 0x75, 0x73, 0x68,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42,
	0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x62, 0x49,
	0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x64, 0x62, 0x49, 0x44, 0x12, 0x1e, 0x0a,
	0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
	0x03, 0x52, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x12, 0x22, 0x0a,
	0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49,
	0x44, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x22, 0xb2, 0x03,
	0x0a, 0x0d, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63,
	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x62, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x04, 0x64, 0x62, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c,
	0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a,
	0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x03,
	0x52, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x12, 0x28, 0x0a, 0x0f,
	0x66, 0x6c, 0x75, 0x73, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x18,
	0x05, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0f, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x53, 0x65, 0x67, 0x6d,
	0x65, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x4f, 0x66,
	0x53, 0x65, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65,
	0x4f, 0x66, 0x53, 0x65, 0x61, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f,
	0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x54,
	0x73, 0x12, 0x51, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x70, 0x73,
	0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
	0x43, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65,
	0x6c, 0x43, 0x70, 0x73, 0x1a, 0x5c, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43,
	0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x73, 0x67, 0x50,
	0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
	0x38, 0x01, 0x22, 0xa7, 0x03, 0x0a, 0x0b, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x65, 0x73, 0x75,
	0x6c, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x49, 0x44, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x65, 0x67, 0x6d,
	0x65, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x53,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52,
	0x0f, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x73,
	0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x53, 0x65, 0x61, 0x6c, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x53, 0x65, 0x61, 0x6c,
	0x12, 0x19, 0x0a, 0x08, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x04, 0x52, 0x07, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x54, 0x73, 0x12, 0x4f, 0x0a, 0x0b, 0x63,
	0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x70, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
	0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
	0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x70, 0x73, 0x12, 0x17, 0x0a, 0x07,
	0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64,
	0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e,
	0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x5c,
	0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
	0x6b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xab, 0x01, 0x0a,
	0x0f, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f,
	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61,
	0x73, 0x65, 0x12, 0x1a, 0x0a, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4a,
	0x0a, 0x0d, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18,
	0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41,
	0x6c, 0x6c, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0c, 0x66, 0x6c,
	0x75, 0x73, 0x68, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x22, 0x50, 0x0a, 0x0e, 0x46, 0x6c,
	0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x17, 0x0a, 0x07,
	0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64,
	0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0d, 0x63,
	0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x22, 0xb8, 0x03, 0x0a,
	0x10, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06,
	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x07, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x54,
	0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x18, 0x01, 0x52, 0x07, 0x66, 0x6c, 0x75,
	0x73, 0x68, 0x54, 0x73, 0x12, 0x47, 0x0a, 0x0d, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x72, 0x65,
	0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e,
	0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x02, 0x18, 0x01, 0x52,
	0x0c, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x5b, 0x0a,
	0x0e, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x6d, 0x73, 0x67, 0x73, 0x18,
	0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41,
	0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68,
	0x41, 0x6c, 0x6c, 0x4d, 0x73, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x66, 0x6c,
	0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x4d, 0x73, 0x67, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x63, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x20, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e,
	0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x1a,
	0x66, 0x0a, 0x11, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x4d, 0x73, 0x67, 0x73, 0x45,
	0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x49, 0x6d, 0x6d, 0x75,
	0x74, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x76, 0x61,
	0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7f, 0x0a, 0x14, 0x46, 0x6c, 0x75, 0x73, 0x68,
	0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d,
	0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73,
	0x65, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x74, 0x73, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x07, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x54, 0x73, 0x12, 0x1a, 0x0a, 0x08,
	0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08,
	0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x22, 0xb1, 0x02, 0x0a, 0x10, 0x53, 0x65, 0x67,
	0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a,
	0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e,
	0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f,
	0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61,
	0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08,
	0x69, 0x73, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08,
	0x69, 0x73, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6d, 0x70, 0x6f,
	0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c,
	0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x05,
	0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e,
	0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65,
	0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x76,
	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x73, 0x74,
	0x6f, 0x72, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x9f, 0x02, 0x0a,
	0x13, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c,
	0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x72,
	0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a,
	0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x76,
	0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76,
	0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61,
	0x67, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
	0x12, 0x35, 0x0a, 0x17, 0x69, 0x73, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62,
	0x79, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x14, 0x69, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x53, 0x74,
	0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x63, 0x68, 0x65, 0x6d,
	0x61, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x0d, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x8e,
	0x01, 0x0a, 0x14, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74,
	0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x73,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
	0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22,
	0xa0, 0x01, 0x0a, 0x16, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f,
	0x64, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65,
	0x49, 0x44, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x65, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12,
	0x51, 0x0a, 0x11, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52,
	0x11, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x73, 0x22, 0x80, 0x02, 0x0a, 0x13, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44,
	0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x65,
	0x67, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x65, 0x67, 0x49, 0x44,
	0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e,
	0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c,
	0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a,
	0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12,
	0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65,
	0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xa2, 0x01, 0x0a, 0x17, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e,
	0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x52, 0x0a, 0x10, 0x73, 0x65, 0x67, 0x49, 0x44, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e,
	0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e,
	0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d,
	0x65, 0x6e, 0x74, 0x52, 0x10, 0x73, 0x65, 0x67, 0x49, 0x44, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e,
	0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x6b, 0x0a, 0x17, 0x47, 0x65,
	0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73,
	0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x49, 0x44, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x65, 0x67,
	0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x22, 0xa6, 0x02, 0x0a, 0x10, 0x53, 0x65, 0x67, 0x6d,
	0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09,
	0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x37, 0x0a, 0x05, 0x73, 0x74,
	0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
	0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74,
	0x61, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x73,
	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d,
	0x73, 0x67, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72,
	0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0c, 0x65, 0x6e, 0x64,
	0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d,
	0x73, 0x67, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b,
	0x65, 0x6e, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x06, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
	0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x22, 0x8c, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53,
	0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a,
	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d,
	0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74,
	0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x22,
	0x95, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e,
	0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73,
	0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52,
	0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x69,
	0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x55, 0x6e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x55, 0x6e,
	0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x22, 0xd9, 0x02, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x34, 0x0a, 0x05, 0x69, 0x6e, 0x66, 0x6f, 0x73,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x6f, 0x0a,
	0x12, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f,
	0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65,
	0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x68, 0x65, 0x63,
	0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x63, 0x68, 0x61,
	0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x1a, 0x63,
	0x0a, 0x16, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f,
	0x69, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61,
	0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x73, 0x67,
	0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
	0x02, 0x38, 0x01, 0x22, 0x6d, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74,
	0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04,
	0x62, 0x61, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49,
	0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x49, 0x44, 0x22, 0xa8, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74,
	0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x44, 0x73, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x44, 0x73, 0x12,
	0x37, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e,
	0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73,
	0x74, 0x52, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x8a, 0x01,
	0x0a, 0x1e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53,
	0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f,
	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61,
	0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x62, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x04, 0x64, 0x62, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f,
	0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x8f, 0x01, 0x0a, 0x1f, 0x47,
	0x65, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74,
	0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37,
	0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d,
	0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72,
	0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xad, 0x01, 0x0a,
	0x1d, 0x47, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61,
	0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30,
	0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
	0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65,
	0x12, 0x12, 0x0a, 0x04, 0x64, 0x62, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04,
	0x64, 0x62, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74,
	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0c,
	0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x73, 0x22, 0x8e, 0x01, 0x0a,
	0x1e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61,
	0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x37, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f,
	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69,
	0x72, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x1e, 0x0a,
	0x1c, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x43,
	0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xd3, 0x07,
	0x0a, 0x0c, 0x56, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22,
	0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x0d, 0x73, 0x65, 0x65, 0x6b, 0x5f, 0x70, 0x6f, 0x73,
	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d,
	0x73, 0x67, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x65, 0x65, 0x6b,
	0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x11, 0x75, 0x6e, 0x66, 0x6c,
	0x75, 0x73, 0x68, 0x65, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49,
	0x6e, 0x66, 0x6f, 0x42, 0x02, 0x18, 0x01, 0x52, 0x11, 0x75, 0x6e, 0x66, 0x6c, 0x75, 0x73, 0x68,
	0x65, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4c, 0x0a, 0x0f, 0x66, 0x6c,
	0x75, 0x73, 0x68, 0x65, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49,
	0x6e, 0x66, 0x6f, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0f, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64,
	0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x10, 0x64, 0x72, 0x6f, 0x70,
	0x70, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e,
	0x66, 0x6f, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0f, 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x53,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x75, 0x6e, 0x66, 0x6c, 0x75,
	0x73, 0x68, 0x65, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x18, 0x07,
	0x20, 0x03, 0x28, 0x03, 0x52, 0x13, 0x75, 0x6e, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x53,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x66, 0x6c, 0x75,
	0x73, 0x68, 0x65, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x18, 0x08,
	0x20, 0x03, 0x28, 0x03, 0x52, 0x11, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x53, 0x65, 0x67,
	0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x72, 0x6f, 0x70, 0x70,
	0x65, 0x64, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x18, 0x09, 0x20,
	0x03, 0x28, 0x03, 0x52, 0x11, 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x53, 0x65, 0x67, 0x6d,
	0x65, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65,
	0x64, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03,
	0x28, 0x03, 0x52, 0x11, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x49, 0x0a, 0x10, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64,
	0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64,
	0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52,
	0x0f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73,
	0x12, 0x33, 0x0a, 0x16, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x7a, 0x65, 0x72, 0x6f, 0x5f, 0x73,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x03,
	0x52, 0x13, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5a, 0x65, 0x72, 0x6f, 0x53, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x75, 0x0a, 0x18, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69,
	0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
	0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x63, 0x68, 0x61,
	0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69,
	0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45,
	0x6e, 0x74, 0x72, 0x79, 0x52, 0x16, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53,
	0x74, 0x61, 0x74, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4a, 0x0a, 0x11,
	0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e,
	0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x6f,
	0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x68,
	0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x1a, 0x49, 0x0a, 0x1b, 0x50, 0x61, 0x72, 0x74,
	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
	0x02, 0x38, 0x01, 0x22, 0x89, 0x01, 0x0a, 0x16, 0x57, 0x61, 0x74, 0x63, 0x68, 0x44, 0x6d, 0x43,
	0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30,
	0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
	0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65,
	0x12, 0x3d, 0x0a, 0x09, 0x76, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
	0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x76, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x22,
	0xc2, 0x01, 0x0a, 0x14, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67,
	0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x62,
	0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x64, 0x62, 0x49, 0x44, 0x12, 0x22,
	0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x73,
	0x18, 0x04, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49,
	0x44, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d,
	0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
	0x4e, 0x61, 0x6d, 0x65, 0x22, 0x78, 0x0a, 0x0a, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d,
	0x73, 0x67, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04,
	0x62, 0x61, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xec,
	0x0f, 0x0a, 0x0b, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e,
	0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x44, 0x12, 0x22,
	0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49,
	0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69,
	0x6f, 0x6e, 0x49, 0x44, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x5f, 0x63,
	0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e,
	0x73, 0x65, 0x72, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0b, 0x6e,
	0x75, 0x6d, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x09, 0x6e, 0x75, 0x6d, 0x4f, 0x66, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x37, 0x0a, 0x05, 0x73,
	0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
	0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73,
	0x74, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x6f, 0x77, 0x5f,
	0x6e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x6d,
	0x61, 0x78, 0x52, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74,
	0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x04, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69,
	0x6d, 0x65, 0x12, 0x44, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x69,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x73,
	0x67, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74,
	0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0c, 0x64, 0x6d, 0x6c, 0x5f,
	0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x73,
	0x67, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x64,
	0x6d, 0x6c, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x07, 0x62, 0x69,
	0x6e, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e,
	0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x07, 0x62, 0x69, 0x6e,
	0x6c, 0x6f, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x73, 0x6c, 0x6f, 0x67,
	0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c,
	0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x73, 0x6c, 0x6f,
	0x67, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x18,
	0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42,
	0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73,
	0x12, 0x30, 0x0a, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6d,
	0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x63,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x46, 0x72, 0x6f, 0x6d, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x70,
	0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x72,
	0x6f, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09,
	0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x41, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f,
	0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x0b, 0x69, 0x73, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x17, 0x0a, 0x07,
	0x69, 0x73, 0x5f, 0x66, 0x61, 0x6b, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69,
	0x73, 0x46, 0x61, 0x6b, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74,
	0x65, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63,
	0x74, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x14, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x65,
	0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x74,
	0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x15, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73,
	0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x17, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e,
	0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x16,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53,
	0x74, 0x61, 0x74, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0a, 0x6c,
	0x61, 0x73, 0x74, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64,
	0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c,
	0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x3f, 0x0a, 0x1c, 0x6c,
	0x61, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74,
	0x61, 0x74, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x18, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x19, 0x6c, 0x61, 0x73, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e,
	0x53, 0x74, 0x61, 0x74, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09,
	0x69, 0x73, 0x5f, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x08, 0x69, 0x73, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, 0x57, 0x0a, 0x0d, 0x74, 0x65, 0x78,
	0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x31, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f,
	0x2e, 0x54, 0x65, 0x78, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4c, 0x6f, 0x67, 0x73, 0x45, 0x6e,
	0x74, 0x72, 0x79, 0x52, 0x0d, 0x74, 0x65, 0x78, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4c, 0x6f,
	0x67, 0x73, 0x12, 0x44, 0x0a, 0x0d, 0x62, 0x6d, 0x32, 0x35, 0x73, 0x74, 0x61, 0x74, 0x73, 0x6c,
	0x6f, 0x67, 0x73, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x69,
	0x65, 0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x0d, 0x62, 0x6d, 0x32, 0x35, 0x73,
	0x74, 0x61, 0x74, 0x73, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x69,
	0x6e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b,
	0x69, 0x73, 0x49, 0x6e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x54, 0x0a, 0x0c, 0x6a,
	0x73, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x18, 0x1d, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x30, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66,
	0x6f, 0x2e, 0x4a, 0x73, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x45, 0x6e,
	0x74, 0x72, 0x79, 0x52, 0x0c, 0x6a, 0x73, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x61, 0x74,
	0x73, 0x12, 0x35, 0x0a, 0x17, 0x69, 0x73, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f,
	0x62, 0x79, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x1e, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x14, 0x69, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x53,
	0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x16, 0x69, 0x73, 0x5f, 0x73,
	0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61,
	0x63, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x69, 0x73, 0x53, 0x6f, 0x72, 0x74,
	0x65, 0x64, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x23, 0x0a,
	0x0d, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x20,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x50, 0x61,
	0x74, 0x68, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x51, 0x75, 0x61, 0x6e, 0x74,
	0x69, 0x6c, 0x65, 0x73, 0x18, 0x21, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69,
	0x72, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x63,
	0x68, 0x65, 0x6d, 0x61, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x22, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x0d, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x18, 0x23, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x56, 0x65, 0x72,
	0x73, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x74,
	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x24, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f,
	0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12,
	0x30, 0x0a, 0x14, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73,
	0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x25, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x63,
	0x68, 0x69, 0x6c, 0x64, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68,
	0x73, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52,
	0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x1a, 0x63, 0x0a, 0x12, 0x54, 0x65, 0x78, 0x74, 0x53, 0x74,
	0x61, 0x74, 0x73, 0x4c, 0x6f, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
	0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x37,
	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74,
	0x61, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x73,
	0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x60, 0x0a, 0x11, 0x4a,
	0x73, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
	0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b,
	0x65, 0x79, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4a, 0x73, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x61,
	0x74, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x88, 0x05,
	0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x2c, 0x0a, 0x12,
	0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x5f, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x5f, 0x73, 0x69,
	0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74,
	0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x74,
	0x61, 0x74, 0x73, 0x5f, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x42, 0x69, 0x6e, 0x6c,
	0x6f, 0x67, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f,
	0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x0f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x53, 0x69,
	0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x6e, 0x75, 0x6d,
	0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x64, 0x65, 0x6c,
	0x65, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x69, 0x6e,
	0x73, 0x65, 0x72, 0x74, 0x5f, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x5f, 0x63, 0x6f, 0x75, 0x6e,
	0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x42,
	0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x65,
	0x6c, 0x74, 0x61, 0x5f, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x42, 0x69, 0x6e,
	0x6c, 0x6f, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x74, 0x69, 0x6d, 0x65,
	0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x18,
	0x08, 0x20, 0x03, 0x28, 0x03, 0x52, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
	0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x69, 0x6d,
	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x46, 0x72, 0x6f, 0x6d,
	0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x74, 0x6f,
	0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
	0x70, 0x54, 0x6f, 0x12, 0x30, 0x0a, 0x14, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x74, 0x69, 0x6d,
	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x12, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
	0x70, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x74,
	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x74, 0x6f, 0x18, 0x0c, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
	0x70, 0x54, 0x6f, 0x12, 0x4e, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e,
	0x74, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61,
	0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x43, 0x6f, 0x75, 0x6e,
	0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6e, 0x75, 0x6c, 0x6c, 0x43, 0x6f, 0x75,
	0x6e, 0x74, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x4e, 0x75, 0x6c, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74,
	0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
	0x38, 0x01, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x22, 0x7a, 0x0a, 0x14, 0x53, 0x65, 0x67, 0x6d,
	0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
	0x12, 0x44, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
	0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x73, 0x67, 0x50,
	0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f,
	0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x49, 0x44, 0x22, 0xc7, 0x07, 0x0a, 0x16, 0x53, 0x61, 0x76, 0x65, 0x42, 0x69, 0x6e,
	0x6c, 0x6f, 0x67, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d,
	0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73,
	0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12,
	0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x49, 0x44, 0x12, 0x4c, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x42, 0x69, 0x6e,
	0x6c, 0x6f, 0x67, 0x50, 0x61, 0x74, 0x68, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61,
	0x74, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x11,
	0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x50, 0x61, 0x74, 0x68,
	0x73, 0x12, 0x3f, 0x0a, 0x0b, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73,
	0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b,
	0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0b, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x6f, 0x69, 0x6e,
	0x74, 0x73, 0x12, 0x50, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x69,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e,
	0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f, 0x73, 0x69,
	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x12, 0x50,
	0x0a, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x53, 0x74, 0x61, 0x74, 0x73, 0x6c, 0x6f, 0x67,
	0x50, 0x61, 0x74, 0x68, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e,
	0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x13, 0x66, 0x69, 0x65,
	0x6c, 0x64, 0x32, 0x53, 0x74, 0x61, 0x74, 0x73, 0x6c, 0x6f, 0x67, 0x50, 0x61, 0x74, 0x68, 0x73,
	0x12, 0x3c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x09, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69, 0x6e,
	0x6c, 0x6f, 0x67, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x18,
	0x0a, 0x07, 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x07, 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x70, 0x6f,
	0x72, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x6d, 0x70,
	0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65,
	0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
	0x12, 0x3c, 0x0a, 0x09, 0x73, 0x65, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0d, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c,
	0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x73, 0x65, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x20,
	0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x0e, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44,
	0x12, 0x26, 0x0a, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69,
	0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67,
	0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4e, 0x0a, 0x12, 0x66, 0x69, 0x65, 0x6c,
	0x64, 0x32, 0x42, 0x6d, 0x32, 0x35, 0x6c, 0x6f, 0x67, 0x50, 0x61, 0x74, 0x68, 0x73, 0x18, 0x10,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69,
	0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x12, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x42, 0x6d, 0x32, 0x35,
	0x6c, 0x6f, 0x67, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x77, 0x69, 0x74, 0x68,
	0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x11, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x0f, 0x77, 0x69, 0x74, 0x68, 0x46, 0x75, 0x6c, 0x6c, 0x42, 0x69, 0x6e,
	0x6c, 0x6f, 0x67, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74,
	0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x6e,
	0x69, 0x66, 0x65, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61,
	0x74, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61,
	0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x22, 0x85,
	0x01, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1c, 0x0a,
	0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x39, 0x0a, 0x08, 0x70,
	0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x73, 0x67,
	0x2e, 0x4d, 0x73, 0x67, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x70, 0x6f,
	0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0b, 0x6e, 0x75, 0x6d, 0x5f, 0x6f, 0x66,
	0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6e, 0x75, 0x6d,
	0x4f, 0x66, 0x52, 0x6f, 0x77, 0x73, 0x22, 0xcb, 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x74, 0x61,
	0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x6f, 0x72,
	0x64, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x0d, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x25,
	0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x66, 0x72, 0x6f, 0x6d,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
	0x70, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
	0x6d, 0x70, 0x5f, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x69, 0x6d,
	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, 0x6f, 0x12, 0x24, 0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x74,
	0x61, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0c, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x4c, 0x6f, 0x67, 0x50, 0x61, 0x74, 0x68, 0x12, 0x24,
	0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x73, 0x69, 0x7a, 0x65,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x4c, 0x6f, 0x67,
	0x53, 0x69, 0x7a, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x05, 0x73, 0x74,
	0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68,
	0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x57, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52,
	0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f,
	0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x80, 0x01, 0x0a, 0x0c, 0x44,
	0x61, 0x74, 0x61, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x61,
	0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64,
	0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12,
	0x3c, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x22, 0xf6, 0x03,
	0x0a, 0x0e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x73,
	0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x42,
	0x0a, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x02,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69,
	0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f,
	0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0b, 0x6e, 0x75, 0x6d, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x6f, 0x77,
	0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6e, 0x75, 0x6d, 0x4f, 0x66, 0x52, 0x6f,
	0x77, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x73, 0x6c, 0x6f, 0x67, 0x73, 0x18,
	0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42,
	0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x73, 0x6c, 0x6f, 0x67, 0x73,
	0x12, 0x3c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x05, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69, 0x6e,
	0x6c, 0x6f, 0x67, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x25,
	0x0a, 0x0e, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x43, 0x68,
	0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x5a, 0x0a, 0x0d, 0x74, 0x65, 0x78, 0x74, 0x53, 0x74, 0x61,
	0x74, 0x73, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61,
	0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x73, 0x2e,
	0x54, 0x65, 0x78, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4c, 0x6f, 0x67, 0x73, 0x45, 0x6e, 0x74,
	0x72, 0x79, 0x52, 0x0d, 0x74, 0x65, 0x78, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4c, 0x6f, 0x67,
	0x73, 0x1a, 0x63, 0x0a, 0x12, 0x54, 0x65, 0x78, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4c, 0x6f,
	0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x37, 0x0a, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x65, 0x78,
	0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x97, 0x01, 0x0a, 0x0b, 0x46, 0x69, 0x65, 0x6c, 0x64,
	0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49,
	0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x44,
	0x12, 0x33, 0x0a, 0x07, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x07, 0x62, 0x69,
	0x6e, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5f, 0x66,
	0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x68, 0x69,
	0x6c, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d,
	0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
	0x22, 0xf1, 0x01, 0x0a, 0x0e, 0x54, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74,
	0x61, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x18, 0x0a,
	0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07,
	0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73,
	0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x19, 0x0a,
	0x08, 0x6c, 0x6f, 0x67, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x07, 0x6c, 0x6f, 0x67, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x6f,
	0x72, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6d,
	0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x75, 0x69,
	0x6c, 0x64, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c,
	0x64, 0x49, 0x44, 0x12, 0x3f, 0x0a, 0x1c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73,
	0x63, 0x61, 0x6c, 0x61, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x76, 0x65, 0x72, 0x73,
	0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x63, 0x75, 0x72, 0x72, 0x65,
	0x6e, 0x74, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x56, 0x65, 0x72,
	0x73, 0x69, 0x6f, 0x6e, 0x22, 0xea, 0x01, 0x0a, 0x0c, 0x4a, 0x73, 0x6f, 0x6e, 0x4b, 0x65, 0x79,
	0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x44,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x44, 0x12,
	0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x6c,
	0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12,
	0x19, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x65,
	0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x0a, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x62,
	0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x62, 0x75,
	0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x3a, 0x0a, 0x1a, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6b, 0x65,
	0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66, 0x6f, 0x72,
	0x6d, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x6a, 0x73, 0x6f, 0x6e, 0x4b,
	0x65, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61,
	0x74, 0x22, 0x80, 0x03, 0x0a, 0x06, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x12, 0x1f, 0x0a, 0x0b,
	0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x4e, 0x75, 0x6d, 0x12, 0x25, 0x0a,
	0x0e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
	0x46, 0x72, 0x6f, 0x6d, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
	0x70, 0x5f, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65,
	0x73, 0x74, 0x61, 0x6d, 0x70, 0x54, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x5f, 0x70,
	0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x50, 0x61,
	0x74, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a,
	0x05, 0x6c, 0x6f, 0x67, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, 0x6f,
	0x67, 0x49, 0x44, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x69,
	0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79,
	0x53, 0x69, 0x7a, 0x65, 0x12, 0x5a, 0x0a, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x75,
	0x6c, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64,
	0x61, 0x74, 0x61, 0x2e, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64,
	0x4e, 0x75, 0x6c, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
	0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x75, 0x6c, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73,
	0x1a, 0x42, 0x0a, 0x14, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x75, 0x6c, 0x6c, 0x43, 0x6f, 0x75,
	0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
	0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x3a, 0x02, 0x38, 0x01, 0x22, 0xc8, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f,
	0x76, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3b, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x63, 0x68, 0x61,
	0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65,
	0x6c, 0x73, 0x12, 0x3b, 0x0a, 0x07, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x03, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x42,
	0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x73, 0x52, 0x07, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x73, 0x22,
	0x90, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x49,
	0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61,
	0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d,
	0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x0c,
	0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44,
	0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e,
	0x49, 0x44, 0x22, 0xc9, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65,
	0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32,
	0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3b, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x63, 0x68, 0x61,
	0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65,
	0x6c, 0x73, 0x12, 0x3a, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x94,
	0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x49, 0x6e,
	0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x32, 0x12, 0x30, 0x0a, 0x04, 0x62,
	0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
	0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x22, 0x0a,
	0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49,
	0x44, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44,
	0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69,
	0x6f, 0x6e, 0x49, 0x44, 0x73, 0x22, 0x6d, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e,
	0x6e, 0x65, 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61,
	0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x63, 0x68, 0x61,
	0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x63, 0x68, 0x61,
	0x6e, 0x6e, 0x65, 0x6c, 0x22, 0xc8, 0x02, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e,
	0x6e, 0x65, 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x04,
	0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56,
	0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66,
	0x6f, 0x12, 0x41, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x73, 0x63,
	0x68, 0x65, 0x6d, 0x61, 0x12, 0x79, 0x0a, 0x21, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73,
	0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f,
	0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x2f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64,
	0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x43, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67,
	0x52, 0x1d, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4e, 0x6f, 0x74, 0x43, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x22,
	0x85, 0x01, 0x0a, 0x1c, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x43, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67,
	0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69,
	0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x61, 0x72,
	0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x67, 0x6d,
	0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65,
	0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0xcf, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61,
	0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c,
	0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b,
	0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x39,
	0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x21,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f,
	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74,
	0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x22, 0x6e, 0x0a, 0x1b, 0x47, 0x65, 0x74,
	0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a,
	0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52,
	0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xbf, 0x01, 0x0a, 0x19, 0x47, 0x65,
	0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42,
	0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c,
	0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a,
	0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12,
	0x2a, 0x0a, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x55, 0x6e, 0x68, 0x65, 0x61, 0x6c,
	0x74, 0x68, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75,
	0x64, 0x65, 0x55, 0x6e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x22, 0x6d, 0x0a, 0x1a, 0x47,
	0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a,
	0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03,
	0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x86, 0x01, 0x0a, 0x18, 0x53,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x6d, 0x70, 0x6c,
	0x65, 0x74, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42,
	0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x73, 0x65, 0x67,
	0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x73, 0x65, 0x67, 0x6d,
	0x65, 0x6e, 0x74, 0x22, 0xf3, 0x02, 0x0a, 0x10, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x57,
	0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x63, 0x68, 0x61,
	0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x63, 0x68, 0x61,
	0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x63, 0x68, 0x61, 0x6e, 0x12,
	0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x73, 0x12, 0x3a, 0x0a, 0x05, 0x73, 0x74, 0x61,
	0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x61,
	0x6e, 0x6e, 0x65, 0x6c, 0x57, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05,
	0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,
	0x54, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75,
	0x74, 0x54, 0x73, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65,
	0x6d, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12,
	0x0a, 0x04, 0x6f, 0x70, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x6f, 0x70,
	0x49, 0x44, 0x12, 0x45, 0x0a, 0x0c, 0x64, 0x62, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69,
	0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b,
	0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0c, 0x64, 0x62, 0x50,
	0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x62, 0x0a, 0x16, 0x43, 0x6f, 0x6d,
	0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52,
	0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x44, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x44, 0x22, 0x82, 0x02,
	0x0a, 0x0f, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66,
	0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64,
	0x12, 0x40, 0x0a, 0x0c, 0x70, 0x6b, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x6c, 0x6f, 0x67,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64,
	0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x0a, 0x70, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4c,
	0x6f, 0x67, 0x12, 0x37, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0e, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53,
	0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x05, 0x6c,
	0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65, 0x76,
	0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0b, 0x6e, 0x75, 0x6d, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x6f, 0x77,
	0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6e, 0x75, 0x6d, 0x4f, 0x66, 0x52, 0x6f,
	0x77, 0x73, 0x22, 0x85, 0x04, 0x0a, 0x13, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c,
	0x61, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e,
	0x49, 0x44, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x65, 0x64, 0x5f,
	0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63,
	0x74, 0x65, 0x64, 0x54, 0x6f, 0x12, 0x1e, 0x0a, 0x0b, 0x6e, 0x75, 0x6d, 0x5f, 0x6f, 0x66, 0x5f,
	0x72, 0x6f, 0x77, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6e, 0x75, 0x6d, 0x4f,
	0x66, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74,
	0x65, 0x64, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0d, 0x63,
	0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x65, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x3d, 0x0a, 0x0a,
	0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67,
	0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x73, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x63,
	0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21,
	0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49,
	0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
	0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x5d, 0x0a, 0x0d, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74,
	0x61, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66,
	0x6f, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x49, 0x6e, 0x66, 0x6f, 0x73, 0x1a, 0x63, 0x0a, 0x11, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x49, 0x6e, 0x66, 0x6f, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x38, 0x0a, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e,
	0x53, 0x79, 0x6e, 0x63, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9a, 0x05, 0x0a, 0x18, 0x43,
	0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x67, 0x6d,
	0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x42, 0x0a, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69,
	0x6e, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e,
	0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x0c, 0x66, 0x69, 0x65,
	0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x50, 0x0a, 0x13, 0x66, 0x69, 0x65,
	0x6c, 0x64, 0x32, 0x53, 0x74, 0x61, 0x74, 0x73, 0x6c, 0x6f, 0x67, 0x50, 0x61, 0x74, 0x68, 0x73,
	0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64,
	0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x53, 0x74,
	0x61, 0x74, 0x73, 0x6c, 0x6f, 0x67, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x64,
	0x65, 0x6c, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61,
	0x74, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x09,
	0x64, 0x65, 0x6c, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x73,
	0x65, 0x72, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0d, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
	0x12, 0x35, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64,
	0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c,
	0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63,
	0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x70,
	0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1b, 0x0a,
	0x09, 0x69, 0x73, 0x5f, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x08, 0x69, 0x73, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x74,
	0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73,
	0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x18,
	0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x12,
	0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65,
	0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x51, 0x75,
	0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x16, 0x69, 0x73, 0x5f, 0x73, 0x6f,
	0x72, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63,
	0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x69, 0x73, 0x53, 0x6f, 0x72, 0x74, 0x65,
	0x64, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x29, 0x0a, 0x10,
	0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
	0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x54, 0x69,
	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x84, 0x0a, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x70,
	0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c,
	0x61, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e,
	0x49, 0x44, 0x12, 0x53, 0x0a, 0x0e, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x6e,
	0x6c, 0x6f, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43,
	0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x73, 0x52, 0x0e, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74,
	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61,
	0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75,
	0x74, 0x5f, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x05, 0x42, 0x02, 0x18, 0x01, 0x52, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x49,
	0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12,
	0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x12,
	0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6c,
	0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x74, 0x6c,
	0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x09,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x6f, 0x77, 0x73, 0x12,
	0x3d, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73,
	0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x30,
	0x0a, 0x14, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6b, 0x65, 0x79,
	0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x63, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64,
	0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f,
	0x72, 0x6f, 0x77, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x53,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x72,
	0x65, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x77,
	0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x53,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x6e,
	0x61, 0x6c, 0x79, 0x7a, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x70, 0x61, 0x74,
	0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65,
	0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x6e,
	0x61, 0x6c, 0x79, 0x7a, 0x65, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64,
	0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x03, 0x52, 0x11, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65,
	0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74,
	0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
	0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x6c, 0x6f, 0x67, 0x49, 0x44, 0x18,
	0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x49,
	0x44, 0x12, 0x54, 0x0a, 0x18, 0x70, 0x72, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74,
	0x65, 0x64, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x18, 0x12, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x44, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52,
	0x16, 0x70, 0x72, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x67,
	0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x6c, 0x6f, 0x74, 0x5f,
	0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x6c, 0x6f,
	0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69,
	0x7a, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x53, 0x69, 0x7a,
	0x65, 0x12, 0x4c, 0x0a, 0x14, 0x70, 0x72, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74,
	0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x67, 0x49, 0x44, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64,
	0x61, 0x74, 0x61, 0x2e, 0x49, 0x44, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x12, 0x70, 0x72, 0x65,
	0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x49, 0x44, 0x73, 0x12,
	0x1f, 0x0a, 0x0b, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x16,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73,
	0x12, 0x3f, 0x0a, 0x1c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x63, 0x61, 0x6c,
	0x61, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
	0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53,
	0x63, 0x61, 0x6c, 0x61, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x12, 0x48, 0x0a, 0x0e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74,
	0x65, 0x78, 0x74, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
	0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0d, 0x70, 0x6c,
	0x75, 0x67, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x4e, 0x0a, 0x0e, 0x66,
	0x69, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x1e, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x46, 0x69, 0x6c, 0x65,
	0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x66, 0x69,
	0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x66,
	0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63,
	0x68, 0x65, 0x6d, 0x61, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68,
	0x65, 0x6d, 0x61, 0x52, 0x09, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xef,
	0x06, 0x0a, 0x11, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x67,
	0x6d, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x44, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09,
	0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0b, 0x6e, 0x75,
	0x6d, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x09, 0x6e, 0x75, 0x6d, 0x4f, 0x66, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x3f, 0x0a, 0x0b, 0x69, 0x6e,
	0x73, 0x65, 0x72, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64,
	0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52,
	0x0a, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x50, 0x0a, 0x13, 0x66,
	0x69, 0x65, 0x6c, 0x64, 0x32, 0x53, 0x74, 0x61, 0x74, 0x73, 0x6c, 0x6f, 0x67, 0x50, 0x61, 0x74,
	0x68, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x65,
	0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32,
	0x53, 0x74, 0x61, 0x74, 0x73, 0x6c, 0x6f, 0x67, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x3c, 0x0a,
	0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67,
	0x52, 0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63,
	0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68,
	0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x73, 0x6f, 0x72, 0x74,
	0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x53, 0x6f, 0x72, 0x74,
	0x65, 0x64, 0x12, 0x3a, 0x0a, 0x08, 0x62, 0x6d, 0x32, 0x35, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x09,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69,
	0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x08, 0x62, 0x6d, 0x32, 0x35, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x27,
	0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65,
	0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x5f, 0x0a, 0x0f, 0x74, 0x65, 0x78, 0x74, 0x5f,
	0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x37, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73,
	0x4c, 0x6f, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x74, 0x65, 0x78, 0x74, 0x53,
	0x74, 0x61, 0x74, 0x73, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x6e, 0x69,
	0x66, 0x65, 0x73, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x6e, 0x69,
	0x66, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x51, 0x75, 0x61,
	0x6e, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0e, 0x65, 0x78,
	0x70, 0x69, 0x72, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x16,
	0x69, 0x73, 0x5f, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x6e, 0x61, 0x6d,
	0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x69, 0x73,
	0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63,
	0x65, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65,
	0x73, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x4d, 0x61,
	0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18,
	0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73,
	0x74, 0x69, 0x63, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x1a, 0x63, 0x0a, 0x12, 0x54,
	0x65, 0x78, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4c, 0x6f, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03,
	0x6b, 0x65, 0x79, 0x12, 0x37, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78,
	0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
	0x22, 0xff, 0x01, 0x0a, 0x14, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50,
	0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61,
	0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49,
	0x44, 0x12, 0x3c, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x26, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54,
	0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12,
	0x40, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x35, 0x0a, 0x04, 0x74,
	0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f,
	0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79,
	0x70, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x17, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33,
	0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f,
	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x12, 0x41, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72,
	0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x53, 0x0a, 0x16, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61,
	0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x69,
	0x6e, 0x6c, 0x6f, 0x67, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0a, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x50, 0x61, 0x74, 0x68, 0x22, 0xa7, 0x04, 0x0a, 0x14,
	0x57, 0x61, 0x74, 0x63, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e,
	0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c,
	0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x0f,
	0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
	0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x44,
	0x61, 0x74, 0x61, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f,
	0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d,
	0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x43, 0x6f,
	0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x06,
	0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04,
	0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
	0x70, 0x12, 0x46, 0x0a, 0x0d, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69,
	0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b,
	0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0c, 0x64, 0x62, 0x50,
	0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x68, 0x0a, 0x11, 0x63, 0x68, 0x61,
	0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x77, 0x61, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x07,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x43, 0x68,
	0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x68,
	0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x57, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x45, 0x6e, 0x74,
	0x72, 0x79, 0x52, 0x0f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x57, 0x61, 0x6c, 0x4e, 0x61,
	0x6d, 0x65, 0x73, 0x1a, 0x60, 0x0a, 0x14, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x57, 0x61,
	0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
	0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
	0x6f, 0x6e, 0x2e, 0x57, 0x41, 0x4c, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4c, 0x0a, 0x15, 0x57, 0x61, 0x74, 0x63, 0x68, 0x43, 0x68,
	0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33,
	0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f,
	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x22, 0xa9, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30,
	0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
	0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65,
	0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12,
	0x3e, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22,
	0x4e, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61,
	0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
	0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22,
	0xba, 0x01, 0x0a, 0x19, 0x44, 0x72, 0x6f, 0x70, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x43,
	0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a,
	0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
	0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12,
	0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61,
	0x6d, 0x65, 0x12, 0x48, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x56, 0x69, 0x72,
	0x74, 0x75, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xdd, 0x03, 0x0a,
	0x19, 0x44, 0x72, 0x6f, 0x70, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e,
	0x6e, 0x65, 0x6c, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65,
	0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c,
	0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x4c, 0x0a, 0x11,
	0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x50, 0x61, 0x74, 0x68,
	0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c,
	0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x42,
	0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x50, 0x0a, 0x13, 0x66, 0x69,
	0x65, 0x6c, 0x64, 0x32, 0x53, 0x74, 0x61, 0x74, 0x73, 0x6c, 0x6f, 0x67, 0x50, 0x61, 0x74, 0x68,
	0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c,
	0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x13, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x53,
	0x74, 0x61, 0x74, 0x73, 0x6c, 0x6f, 0x67, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x3c, 0x0a, 0x09,
	0x64, 0x65, 0x6c, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64,
	0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52,
	0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x43, 0x0a, 0x0d, 0x73, 0x74,
	0x61, 0x72, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
	0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12,
	0x3d, 0x0a, 0x0a, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x07, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69,
	0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1c,
	0x0a, 0x09, 0x6e, 0x75, 0x6d, 0x4f, 0x66, 0x52, 0x6f, 0x77, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x09, 0x6e, 0x75, 0x6d, 0x4f, 0x66, 0x52, 0x6f, 0x77, 0x73, 0x22, 0x51, 0x0a, 0x1a,
	0x44, 0x72, 0x6f, 0x70, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x6e,
	0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
	0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22,
	0x8b, 0x01, 0x0a, 0x1e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04,
	0x62, 0x61, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x22, 0xf9, 0x01,
	0x0a, 0x1e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43,
	0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f,
	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61,
	0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x39,
	0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52,
	0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4e, 0x0a, 0x13, 0x63, 0x68, 0x61,
	0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73,
	0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x6f, 0x73,
	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x68,
	0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0x4d, 0x0a, 0x19, 0x52, 0x65, 0x73,
	0x65, 0x6e, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61,
	0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x22, 0x70, 0x0a, 0x1a, 0x52, 0x65, 0x73, 0x65,
	0x6e, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73,
	0x65, 0x67, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52,
	0x09, 0x73, 0x65, 0x67, 0x52, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x22, 0x6f, 0x0a, 0x1a, 0x4d, 0x61,
	0x72, 0x6b, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x44, 0x72, 0x6f, 0x70, 0x70, 0x65,
	0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67,
	0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65,
	0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52,
	0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x22, 0x66, 0x0a, 0x14, 0x53,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x4c,
	0x6f, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x6e,
	0x6f, 0x64, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64,
	0x65, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44,
	0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x49, 0x44, 0x73, 0x22, 0xdf, 0x02, 0x0a, 0x16, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6c,
	0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22,
	0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x49, 0x44, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d,
	0x61, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44,
	0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69,
	0x6f, 0x6e, 0x49, 0x44, 0x73, 0x12, 0x49, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x70,
	0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f,
	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x69, 0x72,
	0x52, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,
	0x12, 0x41, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x05,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61,
	0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
	0x69, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x62, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x04, 0x64, 0x62, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x43, 0x68, 0x61, 0x6e,
	0x6e, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x76, 0x43, 0x68, 0x61,
	0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x22, 0xa7, 0x03, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6c,
	0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x62, 0x49, 0x44, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x64, 0x62, 0x49, 0x44, 0x12, 0x43, 0x0a, 0x0c, 0x66,
	0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x63, 0x68,
	0x65, 0x6d, 0x61, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61,
	0x12, 0x3d, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12,
	0x22, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x73, 0x18,
	0x05, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e,
	0x49, 0x44, 0x73, 0x12, 0x49, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x73,
	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
	0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0e,
	0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41,
	0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75,
	0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65,
	0x73, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x08,
	0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x76, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x22,
	0x5a, 0x0a, 0x10, 0x47, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74,
	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b,
	0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x69, 0x0a, 0x11, 0x47,
	0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x67, 0x63, 0x5f, 0x66, 0x69, 0x6e, 0x69,
	0x73, 0x68, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x67, 0x63, 0x46, 0x69,
	0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x22, 0x84, 0x01, 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x6f, 0x72,
	0x74, 0x44, 0x61, 0x74, 0x61, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x74, 0x4d, 0x73, 0x67, 0x73, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61,
	0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x04, 0x6d, 0x73, 0x67, 0x73,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x4e, 0x6f,
	0x64, 0x65, 0x54, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x22, 0xb7, 0x01,
	0x0a, 0x14, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x65, 0x67, 0x6d,
	0x65, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f,
	0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x54,
	0x73, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f,
	0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e,
	0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x55, 0x0a, 0x18, 0x43, 0x68, 0x61, 0x6e, 0x6e,
	0x65, 0x6c, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x05, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x57, 0x61,
	0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0xc3,
	0x01, 0x0a, 0x20, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6f, 0x70, 0x49, 0x44,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x6f, 0x70, 0x49, 0x44, 0x12, 0x3a, 0x0a, 0x05,
	0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e,
	0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x57, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74,
	0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67,
	0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67,
	0x72, 0x65, 0x73, 0x73, 0x22, 0xb7, 0x04, 0x0a, 0x10, 0x50, 0x72, 0x65, 0x49, 0x6d, 0x70, 0x6f,
	0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x12, 0x16, 0x0a,
	0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x74,
	0x61, 0x73, 0x6b, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c,
	0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x61, 0x72,
	0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x03, 0x52,
	0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x73, 0x12, 0x1c, 0x0a,
	0x09, 0x76, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09,
	0x52, 0x09, 0x76, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x3d, 0x0a, 0x06, 0x73,
	0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d,
	0x61, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65,
	0x6d, 0x61, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x44, 0x0a, 0x0c, 0x69, 0x6d,
	0x70, 0x6f, 0x72, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46,
	0x69, 0x6c, 0x65, 0x52, 0x0b, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73,
	0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65,
	0x50, 0x61, 0x69, 0x72, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x48, 0x0a,
	0x0e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18,
	0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61,
	0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67,
	0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x5f,
	0x73, 0x6c, 0x6f, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b,
	0x53, 0x6c, 0x6f, 0x74, 0x12, 0x48, 0x0a, 0x0e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x63,
	0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
	0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52,
	0x0d, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x31,
	0x0a, 0x07, 0x49, 0x44, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x65, 0x67,
	0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x12,
	0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x65, 0x6e,
	0x64, 0x22, 0x72, 0x0a, 0x14, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x67,
	0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65,
	0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69,
	0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x61,
	0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x63, 0x68,
	0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x63, 0x68,
	0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0x8d, 0x06, 0x0a, 0x0d, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x74,
	0x61, 0x73, 0x6b, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x74, 0x61, 0x73,
	0x6b, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69,
	0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0c, 0x70,
	0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x76,
	0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09,
	0x76, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x63, 0x68,
	0x65, 0x6d, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e,
	0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61,
	0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x37, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65,
	0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e,
	0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65,
	0x73, 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75,
	0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x0e,
	0x0a, 0x02, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x74, 0x73, 0x12, 0x35,
	0x0a, 0x08, 0x49, 0x44, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x44, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x07, 0x49, 0x44,
	0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x52, 0x0a, 0x10, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64,
	0x61, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x48, 0x0a, 0x0e, 0x73, 0x74, 0x6f,
	0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74,
	0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x6c, 0x6f, 0x74,
	0x12, 0x27, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73,
	0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x61,
	0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x0e, 0x70, 0x6c, 0x75,
	0x67, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x10, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65,
	0x50, 0x61, 0x69, 0x72, 0x52, 0x0d, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x74,
	0x65, 0x78, 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x5f, 0x6c, 0x6f, 0x6f, 0x6e, 0x5f,
	0x66, 0x66, 0x69, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x4c, 0x6f,
	0x6f, 0x6e, 0x46, 0x66, 0x69, 0x22, 0x63, 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72,
	0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c,
	0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05,
	0x6a, 0x6f, 0x62, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62,
	0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x22, 0xf1, 0x02, 0x0a, 0x14, 0x50,
	0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74,
	0x61, 0x74, 0x73, 0x12, 0x61, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e,
	0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e,
	0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53,
	0x74, 0x61, 0x74, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f,
	0x77, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69,
	0x6f, 0x6e, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x6e, 0x0a, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74,
	0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f,
	0x6e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x50, 0x61, 0x72,
	0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x69, 0x7a, 0x65, 0x45, 0x6e,
	0x74, 0x72, 0x79, 0x52, 0x11, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61,
	0x74, 0x61, 0x53, 0x69, 0x7a, 0x65, 0x1a, 0x40, 0x0a, 0x12, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74,
	0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x77, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
	0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x44, 0x0a, 0x16, 0x50, 0x61, 0x72, 0x74,
	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x69, 0x7a, 0x65, 0x45, 0x6e, 0x74,
	0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xfe,
	0x02, 0x0a, 0x0f, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61,
	0x74, 0x73, 0x12, 0x42, 0x0a, 0x0b, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x66, 0x69, 0x6c,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e,
	0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x0a, 0x69, 0x6d, 0x70, 0x6f,
	0x72, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73,
	0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53,
	0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x77,
	0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x6f,
	0x77, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x65, 0x6d, 0x6f,
	0x72, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x74,
	0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x56,
	0x0a, 0x0c, 0x68, 0x61, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x05,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46,
	0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x65, 0x64, 0x53,
	0x74, 0x61, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x68, 0x61, 0x73, 0x68, 0x65,
	0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x1a, 0x67, 0x0a, 0x10, 0x48, 0x61, 0x73, 0x68, 0x65, 0x64,
	0x53, 0x74, 0x61, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3d, 0x0a, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e,
	0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53,
	0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22,
	0x92, 0x02, 0x0a, 0x16, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x65, 0x49, 0x6d, 0x70, 0x6f,
	0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
	0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
	0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x12, 0x3a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72,
	0x74, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x32, 0x52, 0x05, 0x73, 0x74,
	0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73,
	0x6c, 0x6f, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x6c, 0x6f, 0x74,
	0x73, 0x12, 0x41, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18,
	0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74,
	0x46, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x53,
	0x74, 0x61, 0x74, 0x73, 0x22, 0x7e, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6d, 0x70,
	0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6a, 0x6f, 0x62, 0x49,
	0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x12, 0x16,
	0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06,
	0x74, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53,
	0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79,
	0x53, 0x6c, 0x6f, 0x74, 0x22, 0xa2, 0x03, 0x0a, 0x11, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65,
	0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6d, 0x70, 0x6f,
	0x72, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x0c, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x38, 0x0a,
	0x07, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61,
	0x74, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x07,
	0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x73,
	0x6c, 0x6f, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46,
	0x69, 0x65, 0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74,
	0x73, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x6c, 0x6f,
	0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x65,
	0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x6c,
	0x6f, 0x67, 0x73, 0x12, 0x3a, 0x0a, 0x08, 0x62, 0x6d, 0x32, 0x35, 0x6c, 0x6f, 0x67, 0x73, 0x18,
	0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42,
	0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x08, 0x62, 0x6d, 0x32, 0x35, 0x6c, 0x6f, 0x67, 0x73, 0x12,
	0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74,
	0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x08, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69,
	0x63, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x22, 0xa4, 0x02, 0x0a, 0x13, 0x51, 0x75,
	0x65, 0x72, 0x79, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06,
	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x44,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x12, 0x3a,
	0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74,
	0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74,
	0x65, 0x56, 0x32, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65,
	0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73,
	0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x05, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x12, 0x56, 0x0a, 0x14, 0x69, 0x6d, 0x70, 0x6f,
	0x72, 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f,
	0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72,
	0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x12, 0x69, 0x6d,
	0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x49, 0x6e, 0x66, 0x6f,
	0x22, 0x5f, 0x0a, 0x11, 0x44, 0x72, 0x6f, 0x70, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73,
	0x6b, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49,
	0x44, 0x22, 0xa3, 0x08, 0x0a, 0x11, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c,
	0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c,
	0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12,
	0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x45,
	0x0a, 0x0e, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x5f, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x73,
	0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64,
	0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x0d, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x42, 0x69,
	0x6e, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x43, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x62,
	0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61,
	0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x0c, 0x73, 0x74,
	0x61, 0x74, 0x73, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x43, 0x0a, 0x0d, 0x64, 0x65,
	0x6c, 0x74, 0x61, 0x5f, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f,
	0x67, 0x52, 0x0c, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x73, 0x12,
	0x46, 0x0a, 0x0b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x07,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x46,
	0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x64,
	0x65, 0x78, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x0c, 0x62, 0x6d, 0x32, 0x35, 0x5f,
	0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74,
	0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x0b, 0x62,
	0x6d, 0x32, 0x35, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x62, 0x0a, 0x10, 0x74, 0x65,
	0x78, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x09,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x65, 0x67,
	0x6d, 0x65, 0x6e, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x49,
	0x6e, 0x64, 0x65, 0x78, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e,
	0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x6c,
	0x0a, 0x14, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78,
	0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61,
	0x2e, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x2e, 0x4a, 0x73, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x46,
	0x69, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x6a, 0x73, 0x6f, 0x6e, 0x4b,
	0x65, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d,
	0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0b, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x50, 0x61, 0x74,
	0x68, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x65, 0x72,
	0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x73, 0x74, 0x6f, 0x72,
	0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x16, 0x69, 0x73,
	0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x69, 0x73, 0x45, 0x78,
	0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x12, 0x28, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x5f,
	0x70, 0x61, 0x74, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x50, 0x61, 0x74, 0x68, 0x1a, 0x64, 0x0a, 0x13, 0x54, 0x65,
	0x78, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03,
	0x6b, 0x65, 0x79, 0x12, 0x37, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78,
	0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
	0x1a, 0x65, 0x0a, 0x16, 0x4a, 0x73, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78,
	0x46, 0x69, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x35, 0x0a, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e,
	0x4a, 0x73, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x76, 0x61,
	0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xbf, 0x02, 0x0a, 0x11, 0x43, 0x6f, 0x70, 0x79,
	0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x23, 0x0a,
	0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
	0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74,
	0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x49, 0x64, 0x12, 0x59, 0x0a, 0x0d, 0x6e, 0x65, 0x77, 0x5f, 0x62, 0x75, 0x69, 0x6c,
	0x64, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e,
	0x43, 0x6f, 0x70, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65,
	0x74, 0x2e, 0x4e, 0x65, 0x77, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x73, 0x45, 0x6e, 0x74,
	0x72, 0x79, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x73, 0x12,
	0x28, 0x0a, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x70,
	0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65,
	0x74, 0x52, 0x6f, 0x6f, 0x74, 0x50, 0x61, 0x74, 0x68, 0x1a, 0x3e, 0x0a, 0x10, 0x4e, 0x65, 0x77,
	0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
	0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
	0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xec, 0x02, 0x0a, 0x12, 0x43, 0x6f,
	0x70, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x14,
	0x0a, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6a,
	0x6f, 0x62, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x12, 0x3e, 0x0a, 0x07,
	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74,
	0x61, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x52, 0x07, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x07,
	0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74,
	0x61, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x72,
	0x67, 0x65, 0x74, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x48, 0x0a, 0x0e,
	0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67,
	0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73,
	0x6c, 0x6f, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x53,
	0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f,
	0x73, 0x70, 0x65, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65,
	0x72, 0x6e, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x22, 0x65, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72,
	0x79, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49,
	0x44, 0x12, 0x14, 0x0a, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49,
	0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x22,
	0xa3, 0x02, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x65, 0x67,
	0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06,
	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
	0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x12, 0x3d, 0x0a, 0x05, 0x73, 0x74, 0x61,
	0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x70,
	0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74,
	0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73,
	0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e,
	0x12, 0x4d, 0x0a, 0x0f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75,
	0x6c, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f,
	0x70, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52,
	0x0e, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12,
	0x14, 0x0a, 0x05, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
	0x73, 0x6c, 0x6f, 0x74, 0x73, 0x22, 0x64, 0x0a, 0x16, 0x44, 0x72, 0x6f, 0x70, 0x43, 0x6f, 0x70,
	0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x14, 0x0a,
	0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f,
	0x62, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x22, 0xc3, 0x03, 0x0a, 0x15,
	0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x49, 0x6e, 0x64, 0x65,
	0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64,
	0x12, 0x19, 0x0a, 0x08, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x62,
	0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x62,
	0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
	0x12, 0x28, 0x0a, 0x10, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70,
	0x61, 0x74, 0x68, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6e, 0x64, 0x65,
	0x78, 0x46, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e,
	0x64, 0x65, 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09,
	0x69, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x75, 0x72,
	0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69,
	0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e,
	0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a,
	0x1c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x5f,
	0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x19, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x63, 0x61, 0x6c,
	0x61, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d,
	0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x62, 0x0a,
	0x18, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x70, 0x61, 0x74,
	0x68, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69,
	0x6e, 0x64, 0x65, 0x78, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x50,
	0x61, 0x74, 0x68, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x69, 0x6e, 0x64, 0x65,
	0x78, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x61, 0x74, 0x68, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x22, 0xcd, 0x07, 0x0a, 0x11, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x67,
	0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74,
	0x65, 0x64, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x69,
	0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x38, 0x0a, 0x07, 0x62,
	0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61,
	0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x07, 0x62, 0x69,
	0x6e, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x73, 0x6c, 0x6f,
	0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x65,
	0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x73, 0x6c,
	0x6f, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73,
	0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64,
	0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x6c, 0x6f, 0x67,
	0x73, 0x12, 0x3a, 0x0a, 0x08, 0x62, 0x6d, 0x32, 0x35, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x06, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69, 0x6e,
	0x6c, 0x6f, 0x67, 0x52, 0x08, 0x62, 0x6d, 0x32, 0x35, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x55, 0x0a,
	0x0b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x07, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x6e,
	0x66, 0x6f, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49,
	0x6e, 0x66, 0x6f, 0x73, 0x12, 0x62, 0x0a, 0x10, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x69, 0x6e, 0x64,
	0x65, 0x78, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61,
	0x74, 0x61, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65,
	0x73, 0x75, 0x6c, 0x74, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x6e,
	0x66, 0x6f, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e,
	0x64, 0x65, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x6c, 0x0a, 0x14, 0x6a, 0x73, 0x6f, 0x6e,
	0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x73,
	0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x53,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x4a, 0x73, 0x6f,
	0x6e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x45, 0x6e,
	0x74, 0x72, 0x79, 0x52, 0x11, 0x6a, 0x73, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x64, 0x65,
	0x78, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65,
	0x73, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d,
	0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x1a, 0x67, 0x0a, 0x0f, 0x49,
	0x6e, 0x64, 0x65, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
	0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79,
	0x12, 0x3e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64,
	0x61, 0x74, 0x61, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x72,
	0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x3a, 0x02, 0x38, 0x01, 0x1a, 0x64, 0x0a, 0x13, 0x54, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x64, 0x65,
	0x78, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
	0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x37, 0x0a,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61,
	0x2e, 0x54, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x65, 0x0a, 0x16, 0x4a, 0x73,
	0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x45,
	0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4a, 0x73, 0x6f, 0x6e, 0x4b, 0x65,
	0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
	0x01, 0x22, 0xa0, 0x03, 0x0a, 0x0f, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x15,
	0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
	0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f,
	0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f,
	0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64,
	0x65, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73,
	0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74, 0x61, 0x73, 0x6b, 0x56,
	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73,
	0x6c, 0x6f, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x53,
	0x6c, 0x6f, 0x74, 0x12, 0x3d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61,
	0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x0b, 0x69, 0x64,
	0x5f, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64,
	0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49,
	0x44, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x0a, 0x69, 0x64, 0x4d, 0x61, 0x70, 0x70,
	0x69, 0x6e, 0x67, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f,
	0x74, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x64, 0x54, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x5f,
	0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65,
	0x74, 0x65, 0x54, 0x73, 0x22, 0x91, 0x01, 0x0a, 0x14, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x65, 0x67,
	0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x2a, 0x0a,
	0x11, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x61, 0x72,
	0x67, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d,
	0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69,
	0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x61, 0x72,
	0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xb1, 0x06, 0x0a, 0x0e, 0x43, 0x6f, 0x70,
	0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x15, 0x0a, 0x06, 0x6a,
	0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62,
	0x49, 0x64, 0x12, 0x13, 0x0a, 0x05, 0x64, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x04, 0x64, 0x62, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c,
	0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f,
	0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x65, 0x67,
	0x6d, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74,
	0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x0b, 0x69,
	0x64, 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x49, 0x44, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x0a, 0x69, 0x64, 0x4d, 0x61, 0x70,
	0x70, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,
	0x5f, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x6f,
	0x75, 0x74, 0x54, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x5f,
	0x74, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x75,
	0x70, 0x54, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x73, 0x18,
	0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x73, 0x12, 0x1f,
	0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x73, 0x18, 0x0b, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x73, 0x12,
	0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50,
	0x61, 0x69, 0x72, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0e,
	0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0d,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x5f, 0x73, 0x65,
	0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x63, 0x6f,
	0x70, 0x69, 0x65, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a,
	0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x73,
	0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0c, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4e, 0x61, 0x6d, 0x65,
	0x12, 0x30, 0x0a, 0x14, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12,
	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x12, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x05, 0x70, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74,
	0x65, 0x72, 0x6e, 0x61, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x65, 0x78, 0x74,
	0x65, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f,
	0x74, 0x5f, 0x73, 0x33, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x33, 0x4c,
	0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x72,
	0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
	0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x22, 0x94, 0x06, 0x0a,
	0x09, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x14, 0x0a, 0x05, 0x6a, 0x6f,
	0x62, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44,
	0x12, 0x12, 0x0a, 0x04, 0x64, 0x62, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04,
	0x64, 0x62, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d,
	0x65, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44,
	0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69,
	0x6f, 0x6e, 0x49, 0x44, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65,
	0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x76, 0x63, 0x68, 0x61, 0x6e, 0x6e,
	0x65, 0x6c, 0x73, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x07, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65,
	0x6d, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x74, 0x73,
	0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x54,
	0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x5f, 0x74, 0x73, 0x18,
	0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x54, 0x73,
	0x12, 0x2c, 0x0a, 0x11, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x44, 0x69, 0x73,
	0x6b, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x72, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x3b,
	0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x74,
	0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x53,
	0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72,
	0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61,
	0x73, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x5f,
	0x74, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70,
	0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65,
	0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e,
	0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65,
	0x73, 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75,
	0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f,
	0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12,
	0x27, 0x0a, 0x0f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x5f, 0x76, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65,
	0x6c, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x61, 0x64, 0x79, 0x56,
	0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x61, 0x74, 0x61,
	0x5f, 0x74, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x64, 0x61, 0x74, 0x61, 0x54,
	0x73, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x5f, 0x76,
	0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12,
	0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x56, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65,
	0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69,
	0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x43, 0x6f, 0x6d,
	0x6d, 0x69, 0x74, 0x22, 0xd8, 0x02, 0x0a, 0x0d, 0x50, 0x72, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72,
	0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x74,
	0x61, 0x73, 0x6b, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x74, 0x61, 0x73,
	0x6b, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49,
	0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x44, 0x12,
	0x3a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61,
	0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61,
	0x74, 0x65, 0x56, 0x32, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72,
	0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61,
	0x73, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74,
	0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f,
	0x72, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x09, 0x66, 0x69, 0x6c,
	0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6d,
	0x70, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xe3,
	0x03, 0x0a, 0x0c, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x56, 0x32, 0x12,
	0x14, 0x0a, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
	0x6a, 0x6f, 0x62, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x12, 0x22, 0x0a,
	0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49,
	0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x18,
	0x04, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44,
	0x73, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x44, 0x12, 0x3a, 0x0a, 0x05, 0x73, 0x74, 0x61,
	0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70,
	0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x32, 0x52, 0x05,
	0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x23, 0x0a,
	0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69,
	0x6d, 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73,
	0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72,
	0x74, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x09, 0x66, 0x69, 0x6c, 0x65,
	0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f,
	0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x03,
	0x52, 0x10, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49,
	0x44, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x69,
	0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18,
	0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74,
	0x54, 0x61, 0x73, 0x6b, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, 0x52, 0x06, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x22, 0xb7, 0x01, 0x0a, 0x10, 0x47, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x72,
	0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73,
	0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x63,
	0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61,
	0x2e, 0x47, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d,
	0x61, 0x6e, 0x64, 0x12, 0x39, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c,
	0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x68,
	0x0a, 0x13, 0x47, 0x65, 0x74, 0x47, 0x63, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x70, 0x61, 0x75, 0x73,
	0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x50, 0x61, 0x75, 0x73,
	0x65, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x61, 0x69,
	0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x14, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e,
	0x67, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x12, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72,
	0x79, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x71, 0x0a, 0x11,
	0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06,
	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61,
	0x62, 0x6c, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x0e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x6c, 0x6f, 0x74, 0x73, 0x22,
	0xf0, 0x09, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61,
	0x73, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x72,
	0x69, 0x67, 0x67, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74,
	0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c,
	0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b,
	0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x18,
	0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12,
	0x3c, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61,
	0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73,
	0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a,
	0x0b, 0x66, 0x61, 0x69, 0x6c, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0a, 0x66, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1d,
	0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a,
	0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65,
	0x6f, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x0b,
	0x20, 0x01, 0x28, 0x05, 0x42, 0x02, 0x18, 0x01, 0x52, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75,
	0x74, 0x49, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65,
	0x74, 0x72, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x0a, 0x72, 0x65, 0x74, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x63,
	0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x0d, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54,
	0x74, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x77, 0x73,
	0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x6f, 0x77,
	0x73, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0d, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x75, 0x6c,
	0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x03, 0x52,
	0x0e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12,
	0x2f, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x73, 0x67, 0x2e,
	0x4d, 0x73, 0x67, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x70, 0x6f, 0x73,
	0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x44, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x44, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65,
	0x6d, 0x61, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x43,
	0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52,
	0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x52, 0x0a, 0x14, 0x63, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18,
	0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c,
	0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x12, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x6d,
	0x61, 0x78, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18,
	0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x5f,
	0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x16, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65,
	0x54, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x18, 0x17, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x61, 0x6e,
	0x61, 0x6c, 0x79, 0x7a, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x61,
	0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x18, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x0e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x56, 0x65, 0x72, 0x73,
	0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65,
	0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x12, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54,
	0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18,
	0x1a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x20,
	0x0a, 0x0b, 0x74, 0x6d, 0x70, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x1b, 0x20,
	0x03, 0x28, 0x03, 0x52, 0x0b, 0x74, 0x6d, 0x70, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73,
	0x12, 0x54, 0x0a, 0x18, 0x70, 0x72, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65,
	0x64, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x18, 0x1c, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x44, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x16,
	0x70, 0x72, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x67, 0x6d,
	0x65, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x12, 0x4a, 0x0a, 0x0e, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x66,
	0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63,
	0x68, 0x65, 0x6d, 0x61, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68,
	0x65, 0x6d, 0x61, 0x52, 0x0d, 0x64, 0x69, 0x66, 0x66, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x73, 0x22, 0xf6, 0x01, 0x0a, 0x12, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e,
	0x53, 0x74, 0x61, 0x74, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c,
	0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a,
	0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12,
	0x1a, 0x0a, 0x08, 0x76, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x08, 0x76, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x76,
	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x76, 0x65,
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x49, 0x44, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x49, 0x44, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65,
	0x54, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x61, 0x6e,
	0x61, 0x6c, 0x79, 0x7a, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x63,
	0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x33, 0x0a, 0x19, 0x44,
	0x72, 0x6f, 0x70, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61,
	0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x6e,
	0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x44,
	0x22, 0x9b, 0x06, 0x0a, 0x24, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65,
	0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61,
	0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73,
	0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63,
	0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12,
	0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x12, 0x48, 0x0a, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65,
	0x6e, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f,
	0x52, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x73, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x72,
	0x6e, 0x61, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, 0x74,
	0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x12, 0x48, 0x0a,
	0x0e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61,
	0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67,
	0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d,
	0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x43, 0x6f,
	0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x06,
	0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x55, 0x0a, 0x19, 0x70, 0x72, 0x65, 0x5f, 0x61, 0x6c,
	0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f,
	0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x44,
	0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x16, 0x70, 0x72, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61,
	0x74, 0x65, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x32, 0x0a,
	0x15, 0x6e, 0x75, 0x6d, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x65, 0x78,
	0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x6e, 0x75,
	0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65,
	0x64, 0x12, 0x32, 0x0a, 0x15, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x5f, 0x6d, 0x61, 0x6e,
	0x69, 0x66, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x13, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73,
	0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x6e,
	0x64, 0x65, 0x78, 0x5f, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x0e, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x12,
	0x24, 0x0a, 0x0e, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x65, 0x6e,
	0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x64,
	0x65, 0x78, 0x45, 0x6e, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69,
	0x6f, 0x6e, 0x49, 0x44, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74,
	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x17, 0x74, 0x61, 0x72, 0x67, 0x65,
	0x74, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74,
	0x52, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9f,
	0x02, 0x0a, 0x25, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e,
	0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a,
	0x0c, 0x6b, 0x65, 0x70, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20,
	0x03, 0x28, 0x03, 0x52, 0x0c, 0x6b, 0x65, 0x70, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x73, 0x12, 0x48, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x67, 0x6d,
	0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x73,
	0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e,
	0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12,
	0x1f, 0x0a, 0x0b, 0x66, 0x61, 0x69, 0x6c, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e,
	0x22, 0xf0, 0x01, 0x0a, 0x20, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65,
	0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73,
	0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c,
	0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f,
	0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61,
	0x6c, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e,
	0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x23,
	0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53,
	0x70, 0x65, 0x63, 0x22, 0x6f, 0x0a, 0x21, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78,
	0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x0a,
	0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6a,
	0x6f, 0x62, 0x49, 0x64, 0x22, 0x76, 0x0a, 0x2b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x66, 0x72, 0x65,
	0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52,
	0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0x9d, 0x03, 0x0a,
	0x1c, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x4a, 0x6f, 0x62, 0x12, 0x15, 0x0a,
	0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6a,
	0x6f, 0x62, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c,
	0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c,
	0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61,
	0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x74,
	0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65,
	0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63,
	0x12, 0x32, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69,
	0x6e, 0x64, 0x65, 0x78, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73,
	0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x61, 0x69, 0x6c, 0x5f, 0x72, 0x65, 0x61,
	0x73, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x61, 0x69, 0x6c, 0x52,
	0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74,
	0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74,
	0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65,
	0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12,
	0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74,
	0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x74,
	0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x4a, 0x04, 0x08, 0x0c, 0x10, 0x0d, 0x22, 0x4a, 0x0a, 0x10,
	0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f,
	0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x19, 0x0a,
	0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x07, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x22, 0x89, 0x05, 0x0a, 0x1d, 0x45, 0x78, 0x74,
	0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52,
	0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61,
	0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x74, 0x61, 0x73,
	0x6b, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f,
	0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12,
	0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64,
	0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65,
	0x49, 0x64, 0x12, 0x32, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x0e, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52,
	0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x61, 0x69, 0x6c, 0x5f, 0x72,
	0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x61, 0x69,
	0x6c, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x72,
	0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x70, 0x65,
	0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61,
	0x6c, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73,
	0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73,
	0x73, 0x12, 0x32, 0x0a, 0x15, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x5f, 0x6d, 0x61, 0x6e,
	0x69, 0x66, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x13, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73,
	0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x6e,
	0x64, 0x65, 0x78, 0x5f, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x0e, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x12,
	0x24, 0x0a, 0x0e, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x65, 0x6e,
	0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x64,
	0x65, 0x78, 0x45, 0x6e, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6b, 0x65, 0x70, 0x74, 0x5f, 0x73, 0x65,
	0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0c, 0x6b, 0x65,
	0x70, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x49, 0x0a, 0x10, 0x75, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x10,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x67,
	0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f,
	0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x72, 0x65, 0x73,
	0x75, 0x6c, 0x74, 0x52, 0x65, 0x61, 0x64, 0x79, 0x4a, 0x04, 0x08, 0x12, 0x10, 0x13, 0x4a, 0x04,
	0x08, 0x0b, 0x10, 0x0c, 0x22, 0xaf, 0x01, 0x0a, 0x2c, 0x47, 0x65, 0x74, 0x52, 0x65, 0x66, 0x72,
	0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x4a, 0x0a, 0x08, 0x6a, 0x6f,
	0x62, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61,
	0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x4a, 0x6f, 0x62, 0x52, 0x07, 0x6a,
	0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x81, 0x01, 0x0a, 0x28, 0x4c, 0x69, 0x73, 0x74, 0x52,
	0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f,
	0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52,
	0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f,
	0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xa5, 0x01, 0x0a, 0x29, 0x4c,
	0x69, 0x73, 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e,
	0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x73,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x43, 0x0a,
	0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e,
	0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x4a, 0x6f, 0x62, 0x52, 0x04, 0x6a, 0x6f,
	0x62, 0x73, 0x22, 0xe8, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x6e, 0x61,
	0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04,
	0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
	0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x12,
	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c,
	0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x1d, 0x63, 0x6f, 0x6d,
	0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x1b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x80, 0x01,
	0x0a, 0x13, 0x44, 0x72, 0x6f, 0x70, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73,
	0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63,
	0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64,
	0x22, 0xa5, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f,
	0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73,
	0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63,
	0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64,
	0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f,
	0x6e, 0x49, 0x64, 0x12, 0x13, 0x0a, 0x05, 0x64, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x04, 0x64, 0x62, 0x49, 0x64, 0x22, 0x6a, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74,
	0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06,
	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68,
	0x6f, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6e, 0x61, 0x70, 0x73,
	0x68, 0x6f, 0x74, 0x73, 0x22, 0xcd, 0x01, 0x0a, 0x15, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x53,
	0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30,
	0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
	0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65,
	0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
	0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c,
	0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x61, 0x72,
	0x67, 0x65, 0x74, 0x5f, 0x73, 0x33, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x33, 0x50, 0x61, 0x74, 0x68, 0x12,
	0x23, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,
	0x53, 0x70, 0x65, 0x63, 0x22, 0x81, 0x01, 0x0a, 0x16, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x53,
	0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63,
	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74,
	0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4d, 0x65, 0x74,
	0x61, 0x64, 0x61, 0x74, 0x61, 0x55, 0x72, 0x69, 0x22, 0xe3, 0x09, 0x0a, 0x12, 0x53, 0x65, 0x67,
	0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12,
	0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x21,
	0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49,
	0x64, 0x12, 0x44, 0x0a, 0x0d, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x76,
	0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x67,
	0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e,
	0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63,
	0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x62, 0x69,
	0x6e, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e,
	0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x07, 0x62, 0x69, 0x6e,
	0x6c, 0x6f, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x6c, 0x6f, 0x67,
	0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c,
	0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x6c, 0x6f,
	0x67, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x73, 0x6c, 0x6f, 0x67, 0x73, 0x18,
	0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42,
	0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x73, 0x6c, 0x6f, 0x67, 0x73,
	0x12, 0x45, 0x0a, 0x0e, 0x62, 0x6d, 0x32, 0x35, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x6c, 0x6f,
	0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x65,
	0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x0d, 0x62, 0x6d, 0x32, 0x35, 0x53, 0x74,
	0x61, 0x74, 0x73, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x63, 0x0a, 0x10, 0x74, 0x65, 0x78, 0x74, 0x5f,
	0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x39, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x73,
	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x64,
	0x65, 0x78, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x74, 0x65,
	0x78, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x6d, 0x0a, 0x14,
	0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x66,
	0x69, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x2e, 0x4a, 0x73, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x46, 0x69,
	0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x6a, 0x73, 0x6f, 0x6e, 0x4b, 0x65,
	0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x69,
	0x6e, 0x64, 0x65, 0x78, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x46, 0x69, 0x6c, 0x65, 0x50,
	0x61, 0x74, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x46, 0x69,
	0x6c, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0b, 0x6e, 0x75, 0x6d, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x6f,
	0x77, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6e, 0x75, 0x6d, 0x4f, 0x66, 0x52,
	0x6f, 0x77, 0x73, 0x12, 0x44, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x73,
	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d,
	0x73, 0x67, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72,
	0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0c, 0x64, 0x6d, 0x6c,
	0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d,
	0x73, 0x67, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b,
	0x64, 0x6d, 0x6c, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x73,
	0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0f,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72,
	0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x73, 0x6f, 0x72, 0x74, 0x65,
	0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x53, 0x6f, 0x72, 0x74, 0x65,
	0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x61,
	0x74, 0x68, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65,
	0x73, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74,
	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04,
	0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
	0x70, 0x1a, 0x64, 0x0a, 0x13, 0x54, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x46, 0x69,
	0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x37, 0x0a, 0x05, 0x76, 0x61,
	0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x65,
	0x78, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x76, 0x61,
	0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x65, 0x0a, 0x16, 0x4a, 0x73, 0x6f, 0x6e, 0x4b,
	0x65, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03,
	0x6b, 0x65, 0x79, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4a, 0x73, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x53, 0x74,
	0x61, 0x74, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x80,
	0x04, 0x0a, 0x15, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73,
	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65,
	0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x43,
	0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52,
	0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x75, 0x6d, 0x5f, 0x70,
	0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x0d, 0x6e, 0x75, 0x6d, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1d,
	0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x09, 0x6e, 0x75, 0x6d, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x52, 0x0a,
	0x11, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x65, 0x76,
	0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43,
	0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52,
	0x10, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65,
	0x6c, 0x12, 0x41, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18,
	0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56,
	0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
	0x74, 0x69, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f,
	0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6c,
	0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74,
	0x72, 0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x32,
	0x0a, 0x15, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65,
	0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x76,
	0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d,
	0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
	0x01, 0x22, 0x85, 0x05, 0x0a, 0x0c, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e,
	0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73,
	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x23, 0x0a,
	0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x05,
	0x20, 0x03, 0x28, 0x03, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49,
	0x64, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x73, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x73, 0x12,
	0x1f, 0x0a, 0x0b, 0x73, 0x33, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x33, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x12, 0x36, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x20, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64,
	0x61, 0x74, 0x61, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74,
	0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x65, 0x6e, 0x64,
	0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61,
	0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65,
	0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07,
	0x70, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x70,
	0x69, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x5b, 0x0a, 0x10, 0x70, 0x69, 0x6e, 0x5f, 0x65, 0x78, 0x70,
	0x69, 0x72, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x6d, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x32, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64,
	0x61, 0x74, 0x61, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f,
	0x2e, 0x50, 0x69, 0x6e, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x41, 0x74, 0x4d, 0x73, 0x45, 0x6e,
	0x74, 0x72, 0x79, 0x52, 0x0d, 0x70, 0x69, 0x6e, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x41, 0x74,
	0x4d, 0x73, 0x12, 0x53, 0x0a, 0x16, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x73, 0x65,
	0x65, 0x6b, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x14, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x65, 0x6b, 0x50, 0x6f,
	0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x40, 0x0a, 0x12, 0x50, 0x69, 0x6e, 0x45, 0x78,
	0x70, 0x69, 0x72, 0x65, 0x41, 0x74, 0x4d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
	0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
	0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x55, 0x0a, 0x18, 0x53, 0x74, 0x6f,
	0x72, 0x61, 0x67, 0x65, 0x56, 0x32, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x6e,
	0x69, 0x66, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74,
	0x22, 0x85, 0x04, 0x0a, 0x10, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4d, 0x65, 0x74,
	0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x5f,
	0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x66,
	0x6f, 0x72, 0x6d, 0x61, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x0d,
	0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74,
	0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e,
	0x66, 0x6f, 0x12, 0x48, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x07,
	0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x64,
	0x65, 0x78, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x69, 0x6e,
	0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73,
	0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61,
	0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x63, 0x0a, 0x17, 0x73, 0x74,
	0x6f, 0x72, 0x61, 0x67, 0x65, 0x76, 0x32, 0x5f, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74,
	0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e,
	0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x56, 0x32, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x52, 0x15, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67,
	0x65, 0x76, 0x32, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12,
	0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x07,
	0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x73,
	0x12, 0x1b, 0x0a, 0x09, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x08, 0x20,
	0x03, 0x28, 0x03, 0x52, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x73, 0x12, 0x39, 0x0a,
	0x06, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74,
	0x61, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74,
	0x52, 0x06, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x22, 0xba, 0x02, 0x0a, 0x13, 0x52, 0x65, 0x73,
	0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f,
	0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73,
	0x68, 0x6f, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
	0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d,
	0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49,
	0x64, 0x12, 0x3d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70,
	0x73, 0x68, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
	0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06,
	0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65,
	0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x73,
	0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x73,
	0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
	0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65,
	0x12, 0x13, 0x0a, 0x05, 0x64, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x04, 0x64, 0x62, 0x49, 0x64, 0x22, 0xbc, 0x01, 0x0a, 0x17, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69,
	0x62, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63,
	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62,
	0x61, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x69, 0x6e, 0x63, 0x6c, 0x75,
	0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e,
	0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64,
	0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12,
	0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x49, 0x64, 0x22, 0xa8, 0x02, 0x0a, 0x18, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62,
	0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06,
	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x44, 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68,
	0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74,
	0x61, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c,
	0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x51, 0x0a, 0x0f,
	0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52,
	0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12,
	0x3e, 0x0a, 0x0b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x04,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49,
	0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22,
	0xdf, 0x02, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73,
	0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61,
	0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d,
	0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04,
	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
	0x12, 0x24, 0x0a, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x64, 0x62, 0x5f, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74,
	0x44, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74,
	0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43, 0x6f,
	0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14,
	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x73, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1a,
	0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x6e,
	0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x73, 0x33, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68,
	0x6f, 0x74, 0x53, 0x33, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d,
	0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x08, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x70, 0x65,
	0x63, 0x22, 0x8a, 0x01, 0x0a, 0x17, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61,
	0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a,
	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d,
	0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6c,
	0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x69,
	0x0a, 0x1e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70,
	0x73, 0x68, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f,
	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61,
	0x73, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0x92, 0x01, 0x0a, 0x1f, 0x47, 0x65,
	0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74,
	0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a,
	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d,
	0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x12, 0x3a, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x26, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70,
	0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x8c,
	0x01, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e,
	0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63,
	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62,
	0x61, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x13, 0x0a, 0x05, 0x64, 0x62, 0x5f, 0x69,
	0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x64, 0x62, 0x49, 0x64, 0x22, 0x92, 0x01,
	0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61,
	0x70, 0x73, 0x68, 0x6f, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06,
	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3a, 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x02,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65,
	0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6a, 0x6f,
	0x62, 0x73, 0x22, 0xb5, 0x01, 0x0a, 0x1a, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63,
	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62,
	0x61, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d,
	0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x61, 0x74, 0x63,
	0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x49,
	0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x63, 0x0a, 0x17, 0x42, 0x61,
	0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73,
	0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74,
	0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f,
	0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22,
	0x70, 0x0a, 0x1b, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c,
	0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30,
	0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
	0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65,
	0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x74,
	0x68, 0x22, 0x7e, 0x0a, 0x21, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x66,
	0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x67, 0x6d,
	0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x02, 0x6f, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x12, 0x0a,
	0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e,
	0x64, 0x22, 0xb3, 0x02, 0x0a, 0x1c, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x42, 0x61, 0x63, 0x6b,
	0x66, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c,
	0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2d,
	0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x67, 0x6d,
	0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x6d,
	0x69, 0x74, 0x74, 0x65, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a,
	0x0f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x53, 0x65,
	0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x5f, 0x0a, 0x10, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x34, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x66,
	0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x22, 0xa4, 0x01, 0x0a, 0x16, 0x50, 0x69, 0x6e, 0x53,
	0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04,
	0x62, 0x61, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a,
	0x0b, 0x74, 0x74, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x0a, 0x74, 0x74, 0x6c, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x65,
	0x0a, 0x17, 0x50, 0x69, 0x6e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x44, 0x61, 0x74,
	0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x15,
	0x0a, 0x06, 0x70, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
	0x70, 0x69, 0x6e, 0x49, 0x64, 0x22, 0x63, 0x0a, 0x18, 0x55, 0x6e, 0x70, 0x69, 0x6e, 0x53, 0x6e,
	0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63,
	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62,
	0x61, 0x73, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x05, 0x70, 0x69, 0x6e, 0x49, 0x64, 0x22, 0x5e, 0x0a, 0x13, 0x43, 0x6f,
	0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63,
	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62,
	0x61, 0x73, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0x5d, 0x0a, 0x12, 0x41, 0x62,
	0x6f, 0x72, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f,
	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61,
	0x73, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0xad, 0x01, 0x0a, 0x1b, 0x48, 0x61,
	0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x56, 0x63, 0x68, 0x61, 0x6e, 0x6e,
	0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73,
	0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6a,
	0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62,
	0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x29,
	0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
	0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74,
	0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2a, 0x3e, 0x0a, 0x0b, 0x53, 0x65, 0x67,
	0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x65, 0x77, 0x10,
	0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x0b, 0x0a,
	0x07, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x6f,
	0x6d, 0x70, 0x61, 0x63, 0x74, 0x65, 0x64, 0x10, 0x03, 0x2a, 0x32, 0x0a, 0x0c, 0x53, 0x65, 0x67,
	0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x65, 0x67,
	0x61, 0x63, 0x79, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x4c, 0x30, 0x10, 0x01, 0x12, 0x06, 0x0a,
	0x02, 0x4c, 0x31, 0x10, 0x02, 0x12, 0x06, 0x0a, 0x02, 0x4c, 0x32, 0x10, 0x03, 0x2a, 0x99, 0x01,
	0x0a, 0x11, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x57, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74,
	0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74,
	0x65, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10,
	0x01, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x6f, 0x57, 0x61, 0x74, 0x63, 0x68, 0x10, 0x02, 0x12, 0x10,
	0x0a, 0x0c, 0x57, 0x61, 0x74, 0x63, 0x68, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x03,
	0x12, 0x10, 0x0a, 0x0c, 0x57, 0x61, 0x74, 0x63, 0x68, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65,
	0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x6f, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x10,
	0x05, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x53, 0x75, 0x63, 0x63,
	0x65, 0x73, 0x73, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65,
	0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x10, 0x07, 0x2a, 0xcc, 0x02, 0x0a, 0x0e, 0x43, 0x6f,
	0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13,
	0x55, 0x6e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x43, 0x6f,
	0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x4d, 0x69,
	0x78, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x03, 0x12, 0x14, 0x0a,
	0x10, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x4d, 0x69, 0x6e, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x70,
	0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x4d, 0x61, 0x6a, 0x6f,
	0x72, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x06, 0x12, 0x1a, 0x0a,
	0x16, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x30, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d,
	0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x07, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x09, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x61, 0x72, 0x74, 0x69,
	0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x53, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x0a, 0x12, 0x28, 0x0a, 0x24, 0x43, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65,
	0x79, 0x53, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10,
	0x0b, 0x12, 0x1f, 0x0a, 0x1b, 0x42, 0x75, 0x6d, 0x70, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x56,
	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x10, 0x0c, 0x22, 0x04, 0x08, 0x01, 0x10, 0x01, 0x2a, 0x9c, 0x01, 0x0a, 0x13, 0x43, 0x6f, 0x70,
	0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65,
	0x12, 0x16, 0x0a, 0x12, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4a,
	0x6f, 0x62, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x6f, 0x70, 0x79,
	0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x62, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e,
	0x67, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x4a, 0x6f, 0x62, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x02,
	0x12, 0x1b, 0x0a, 0x17, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4a,
	0x6f, 0x62, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x10, 0x03, 0x12, 0x18, 0x0a,
	0x14, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x62, 0x46,
	0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x04, 0x2a, 0xa3, 0x01, 0x0a, 0x14, 0x43, 0x6f, 0x70, 0x79,
	0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65,
	0x12, 0x17, 0x0a, 0x13, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x54,
	0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x6f, 0x70,
	0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x65, 0x6e, 0x64,
	0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x65, 0x67,
	0x6d, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65,
	0x73, 0x73, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x65, 0x67, 0x6d,
	0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64,
	0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x04, 0x2a, 0x7a, 0x0a,
	0x0d, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18,
	0x0a, 0x14, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x55,
	0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x6e, 0x61, 0x70,
	0x73, 0x68, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67,
	0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x74,
	0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x10, 0x02, 0x12, 0x19,
	0x0a, 0x15, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x44,
	0x65, 0x6c, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x03, 0x2a, 0xa2, 0x01, 0x0a, 0x14, 0x52, 0x65,
	0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x74, 0x61,
	0x74, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61,
	0x70, 0x73, 0x68, 0x6f, 0x74, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x52,
	0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x50, 0x65,
	0x6e, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x52, 0x65, 0x73, 0x74, 0x6f,
	0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74,
	0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65,
	0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65,
	0x64, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e,
	0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x04, 0x2a, 0x60,
	0x0a, 0x11, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74,
	0x65, 0x56, 0x32, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x0b, 0x0a,
	0x07, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x6e,
	0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x61,
	0x69, 0x6c, 0x65, 0x64, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65,
	0x74, 0x65, 0x64, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x65, 0x74, 0x72, 0x79, 0x10, 0x05,
	0x2a, 0x33, 0x0a, 0x12, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x56, 0x32, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x4c, 0x30, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x10, 0x01, 0x2a, 0x29, 0x0a, 0x09, 0x47, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x61,
	0x6e, 0x64, 0x12, 0x05, 0x0a, 0x01, 0x5f, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x61, 0x75,
	0x73, 0x65, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x10, 0x02,
	0x2a, 0xb2, 0x01, 0x0a, 0x13, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54,
	0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x75, 0x6e, 0x6b, 0x6e,
	0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69,
	0x6e, 0x67, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x69,
	0x6e, 0x67, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65,
	0x64, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x04, 0x12,
	0x0b, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09,
	0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x69, 0x6e, 0x67, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x69,
	0x6e, 0x64, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x10, 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x63, 0x6c, 0x65,
	0x61, 0x6e, 0x65, 0x64, 0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x73,
	0x61, 0x76, 0x65, 0x64, 0x10, 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73,
	0x74, 0x69, 0x63, 0x10, 0x0a, 0x2a, 0x6a, 0x0a, 0x0e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f,
	0x74, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x6e, 0x61, 0x70, 0x73,
	0x68, 0x6f, 0x74, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e,
	0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4c, 0x61,
	0x79, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x10, 0x01,
	0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4c, 0x61, 0x79, 0x6f,
	0x75, 0x74, 0x53, 0x65, 0x6c, 0x66, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x10,
	0x02, 0x32, 0xd9, 0x37, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x12,
	0x4c, 0x0a, 0x05, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x12, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x6c, 0x75,
	0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x6c,
	0x75, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a,
	0x08, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x12, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x6c,
	0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74,
	0x61, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x0c, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x53, 0x65, 0x67,
	0x6d, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x53, 0x65,
	0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61,
	0x2e, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6d, 0x0a, 0x0f, 0x41, 0x73, 0x73, 0x69, 0x67,
	0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x29, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41,
	0x73, 0x73, 0x69, 0x67, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e,
	0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x67, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67,
	0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74,
	0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
	0x6d, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61,
	0x74, 0x65, 0x73, 0x12, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
	0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64,
	0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74,
	0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x79,
	0x0a, 0x14, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x42, 0x69, 0x6e, 0x6c, 0x6f,
	0x67, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e,
	0x73, 0x65, 0x72, 0x74, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e,
	0x73, 0x65, 0x72, 0x74, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x82, 0x01, 0x0a, 0x17, 0x47, 0x65,
	0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69,
	0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x31, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6c,
	0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63,
	0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74,
	0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73,
	0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7f,
	0x0a, 0x16, 0x47, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74,
	0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x30, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74,
	0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74,
	0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47,
	0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69,
	0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
	0x6f, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66,
	0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x2f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74,
	0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e,
	0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
	0x12, 0x5b, 0x0a, 0x0f, 0x53, 0x61, 0x76, 0x65, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x50, 0x61,
	0x74, 0x68, 0x73, 0x12, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x42, 0x69, 0x6e, 0x6c,
	0x6f, 0x67, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f,
	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x6a, 0x0a,
	0x0f, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f,
	0x12, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79,
	0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e,
	0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x70, 0x0a, 0x11, 0x47, 0x65, 0x74,
	0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x32, 0x12, 0x2b,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61,
	0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x49, 0x6e,
	0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x32, 0x1a, 0x2c, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e,
	0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x22, 0x00, 0x12, 0x7f, 0x0a, 0x16, 0x47,
	0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72,
	0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x30, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61,
	0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x43,
	0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x49, 0x6e,
	0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x73, 0x0a, 0x12,
	0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x73, 0x12, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x65,
	0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x53,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
	0x00, 0x12, 0x76, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73,
	0x42, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74,
	0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x53,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x71, 0x0a, 0x10, 0x47, 0x65, 0x74,
	0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x53,
	0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61,
	0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x12,
	0x53, 0x68, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x73, 0x12, 0x30, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x53, 0x68, 0x6f,
	0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x0a, 0x47, 0x65, 0x74,
	0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x26, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65,
	0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
	0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x71, 0x0a, 0x10, 0x4d, 0x61,
	0x6e, 0x75, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x61,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x77, 0x0a,
	0x12, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74,
	0x61, 0x74, 0x65, 0x12, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d,
	0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d,
	0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x80, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x43, 0x6f,
	0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74,
	0x68, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x12, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74,
	0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74,
	0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x0d, 0x57, 0x61, 0x74,
	0x63, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x27, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57,
	0x61, 0x74, 0x63, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x43, 0x68, 0x61,
	0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88,
	0x02, 0x01, 0x12, 0x66, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x53, 0x74,
	0x61, 0x74, 0x65, 0x12, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68,
	0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x73, 0x0a, 0x12, 0x44, 0x72,
	0x6f, 0x70, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
	0x12, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c,
	0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61,
	0x74, 0x61, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x43, 0x68,
	0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
	0x6a, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61,
	0x74, 0x65, 0x12, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74,
	0x61, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74,
	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x17, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74,
	0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x31, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69,
	0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f,
	0x69, 0x6e, 0x74, 0x12, 0x31, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68,
	0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x13, 0x4d, 0x61, 0x72, 0x6b, 0x53, 0x65, 0x67,
	0x6d, 0x65, 0x6e, 0x74, 0x73, 0x44, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x12, 0x2d, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61,
	0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x44, 0x72, 0x6f,
	0x70, 0x70, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
	0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x1a, 0x42, 0x72,
	0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x43, 0x6f,
	0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x6c, 0x74,
	0x65, 0x72, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x22, 0x00, 0x12, 0x62, 0x0a, 0x0b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x6c, 0x74,
	0x68, 0x12, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x65, 0x61,
	0x6c, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d,
	0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0a,
	0x41, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x25, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e,
	0x41, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00,
	0x12, 0x66, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74,
	0x65, 0x12, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53,
	0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78,
	0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x53,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65,
	0x12, 0x2f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x30, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65,
	0x78, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x47, 0x65, 0x74, 0x49,
	0x6e, 0x64, 0x65, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
	0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69,
	0x6e, 0x64, 0x65, 0x78, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x6e, 0x66,
	0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x09, 0x44,
	0x72, 0x6f, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x44, 0x72,
	0x6f, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f,
	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x66, 0x0a,
	0x0d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x28,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e,
	0x64, 0x65, 0x78, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x49, 0x6e, 0x64, 0x65,
	0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x44, 0x65,
	0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65,
	0x78, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78,
	0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74,
	0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e,
	0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69,
	0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x15,
	0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x72, 0x6f,
	0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x30, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e,
	0x64, 0x65, 0x78, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x47, 0x65, 0x74,
	0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65,
	0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x0b,
	0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x26, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78,
	0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64,
	0x65, 0x78, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x58,
	0x0a, 0x09, 0x47, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x12, 0x23, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e,
	0x47, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x14, 0x52, 0x65, 0x70, 0x6f,
	0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x74, 0x4d, 0x73, 0x67, 0x73,
	0x12, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x4e,
	0x6f, 0x64, 0x65, 0x54, 0x74, 0x4d, 0x73, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12,
	0x4f, 0x0a, 0x09, 0x47, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x23, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61,
	0x2e, 0x47, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00,
	0x12, 0x61, 0x0a, 0x08, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x56, 0x32, 0x12, 0x2c, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x74, 0x65,
	0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x1a, 0x25, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e,
	0x61, 0x6c, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74,
	0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,
	0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65,
	0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61,
	0x6c, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72,
	0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6e, 0x0a,
	0x0b, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x31, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x74, 0x65,
	0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x1a,
	0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69,
	0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x70, 0x6f,
	0x72, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x59, 0x0a,
	0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12,
	0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64,
	0x61, 0x74, 0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68,
	0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0c, 0x44, 0x72, 0x6f, 0x70,
	0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x26, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x72, 0x6f,
	0x70, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12,
	0x64, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73,
	0x12, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x64, 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f,
	0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x69,
	0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6d, 0x0a, 0x10, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62,
	0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65,
	0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69,
	0x62, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x22, 0x00, 0x12, 0x6a, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53,
	0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x74,
	0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e,
	0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
	0x12, 0x67, 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68,
	0x6f, 0x74, 0x12, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x6e, 0x61,
	0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61,
	0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x82, 0x01, 0x0a, 0x17, 0x47, 0x65,
	0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74,
	0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x31, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73,
	0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74,
	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74,
	0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53,
	0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x82,
	0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e,
	0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x31, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4c,
	0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68,
	0x6f, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74,
	0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61,
	0x70, 0x73, 0x68, 0x6f, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x22, 0x00, 0x12, 0x6a, 0x0a, 0x0f, 0x50, 0x69, 0x6e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68,
	0x6f, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x69, 0x6e, 0x53, 0x6e,
	0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x69, 0x6e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f,
	0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
	0x5f, 0x0a, 0x11, 0x55, 0x6e, 0x70, 0x69, 0x6e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74,
	0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x6e, 0x70, 0x69, 0x6e, 0x53, 0x6e,
	0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00,
	0x12, 0x63, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d,
	0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x61, 0x74, 0x63,
	0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x79, 0x0a, 0x14, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x42,
	0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2e, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74,
	0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c,
	0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74,
	0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c,
	0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
	0x12, 0x88, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65,
	0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61,
	0x74, 0x61, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e,
	0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45,
	0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xa9, 0x01, 0x0a, 0x24,
	0x47, 0x65, 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e,
	0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x67,
	0x72, 0x65, 0x73, 0x73, 0x12, 0x3e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x66, 0x72,
	0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x66, 0x72,
	0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xa0, 0x01, 0x0a, 0x21, 0x4c, 0x69, 0x73, 0x74,
	0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43,
	0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x3b, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74,
	0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74,
	0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4a,
	0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4c,
	0x69, 0x73, 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e,
	0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x73,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0c, 0x43, 0x6f,
	0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x26, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43,
	0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22,
	0x00, 0x12, 0x53, 0x0a, 0x0b, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74,
	0x12, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x14, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65,
	0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x56, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x2e,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61,
	0x74, 0x61, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x56,
	0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f,
	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x32, 0xa2, 0x10,
	0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x6c, 0x0a, 0x12, 0x47, 0x65,
	0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73,
	0x12, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e,
	0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,
	0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x22, 0x00, 0x12, 0x71, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x53,
	0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
	0x12, 0x32, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74,
	0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e,
	0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x0f, 0x57,
	0x61, 0x74, 0x63, 0x68, 0x44, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x29,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61,
	0x74, 0x61, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x44, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65,
	0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x0d, 0x46, 0x6c, 0x75, 0x73,
	0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x6c,
	0x75, 0x73, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22,
	0x00, 0x12, 0x7b, 0x0a, 0x12, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75,
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e,
	0x53, 0x68, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61,
	0x6c, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5f,
	0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x26, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65,
	0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
	0x50, 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x12,
	0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64,
	0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c,
	0x61, 0x6e, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22,
	0x00, 0x12, 0x6d, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x70,
	0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
	0x12, 0x55, 0x0a, 0x0c, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73,
	0x12, 0x26, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x73, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x65, 0x6e,
	0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x2c, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74,
	0x61, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53,
	0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e,
	0x52, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61,
	0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x0d,
	0x46, 0x6c, 0x75, 0x73, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x27, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74,
	0x61, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x16, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x43,
	0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
	0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64,
	0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x72, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
	0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x1d, 0x43,
	0x68, 0x65, 0x63, 0x6b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x72, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x23, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61,
	0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x57, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66,
	0x6f, 0x1a, 0x33, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x70, 0x65,
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x09, 0x50, 0x72, 0x65, 0x49,
	0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x23, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x65, 0x49, 0x6d, 0x70,
	0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
	0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x08, 0x49, 0x6d, 0x70,
	0x6f, 0x72, 0x74, 0x56, 0x32, 0x12, 0x20, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x0e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50,
	0x72, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x51, 0x75, 0x65,
	0x72, 0x79, 0x50, 0x72, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x65, 0x49,
	0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
	0x5e, 0x0a, 0x0b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x25,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61,
	0x74, 0x61, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49,
	0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
	0x51, 0x0a, 0x0a, 0x44, 0x72, 0x6f, 0x70, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x24, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74,
	0x61, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x22, 0x00, 0x12, 0x58, 0x0a, 0x09, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6c, 0x6f, 0x74, 0x12,
	0x23, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64,
	0x61, 0x74, 0x61, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6c,
	0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x12,
	0x44, 0x72, 0x6f, 0x70, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c,
	0x61, 0x6e, 0x12, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x43, 0x6f, 0x6d, 0x70, 0x61,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12,
	0x61, 0x0a, 0x10, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x12, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x53, 0x79, 0x6e, 0x63,
	0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x22, 0x00, 0x42, 0x31, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
	0x2f, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2d, 0x69, 0x6f, 0x2f, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x76, 0x33, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x64,
	0x61, 0x74, 0x61, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_data_coord_proto_rawDescOnce sync.Once
	file_data_coord_proto_rawDescData = file_data_coord_proto_rawDesc
)

func file_data_coord_proto_rawDescGZIP() []byte {
	file_data_coord_proto_rawDescOnce.Do(func() {
		file_data_coord_proto_rawDescData = protoimpl.X.CompressGZIP(file_data_coord_proto_rawDescData)
	})
	return file_data_coord_proto_rawDescData
}

var file_data_coord_proto_enumTypes = make([]protoimpl.EnumInfo, 13)
var file_data_coord_proto_msgTypes = make([]protoimpl.MessageInfo, 187)
var file_data_coord_proto_goTypes = []interface{}{
	(SegmentType)(0),                                     // 0: milvus.proto.data.SegmentType
	(SegmentLevel)(0),                                    // 1: milvus.proto.data.SegmentLevel
	(ChannelWatchState)(0),                               // 2: milvus.proto.data.ChannelWatchState
	(CompactionType)(0),                                  // 3: milvus.proto.data.CompactionType
	(CopySegmentJobState)(0),                             // 4: milvus.proto.data.CopySegmentJobState
	(CopySegmentTaskState)(0),                            // 5: milvus.proto.data.CopySegmentTaskState
	(SnapshotState)(0),                                   // 6: milvus.proto.data.SnapshotState
	(RestoreSnapshotState)(0),                            // 7: milvus.proto.data.RestoreSnapshotState
	(ImportTaskStateV2)(0),                               // 8: milvus.proto.data.ImportTaskStateV2
	(ImportTaskSourceV2)(0),                              // 9: milvus.proto.data.ImportTaskSourceV2
	(GcCommand)(0),                                       // 10: milvus.proto.data.GcCommand
	(CompactionTaskState)(0),                             // 11: milvus.proto.data.CompactionTaskState
	(SnapshotLayout)(0),                                  // 12: milvus.proto.data.SnapshotLayout
	(*Empty)(nil),                                        // 13: milvus.proto.data.Empty
	(*FlushRequest)(nil),                                 // 14: milvus.proto.data.FlushRequest
	(*FlushResponse)(nil),                                // 15: milvus.proto.data.FlushResponse
	(*FlushResult)(nil),                                  // 16: milvus.proto.data.FlushResult
	(*FlushAllRequest)(nil),                              // 17: milvus.proto.data.FlushAllRequest
	(*FlushAllTarget)(nil),                               // 18: milvus.proto.data.FlushAllTarget
	(*FlushAllResponse)(nil),                             // 19: milvus.proto.data.FlushAllResponse
	(*FlushChannelsRequest)(nil),                         // 20: milvus.proto.data.FlushChannelsRequest
	(*SegmentIDRequest)(nil),                             // 21: milvus.proto.data.SegmentIDRequest
	(*AllocSegmentRequest)(nil),                          // 22: milvus.proto.data.AllocSegmentRequest
	(*AllocSegmentResponse)(nil),                         // 23: milvus.proto.data.AllocSegmentResponse
	(*AssignSegmentIDRequest)(nil),                       // 24: milvus.proto.data.AssignSegmentIDRequest
	(*SegmentIDAssignment)(nil),                          // 25: milvus.proto.data.SegmentIDAssignment
	(*AssignSegmentIDResponse)(nil),                      // 26: milvus.proto.data.AssignSegmentIDResponse
	(*GetSegmentStatesRequest)(nil),                      // 27: milvus.proto.data.GetSegmentStatesRequest
	(*SegmentStateInfo)(nil),                             // 28: milvus.proto.data.SegmentStateInfo
	(*GetSegmentStatesResponse)(nil),                     // 29: milvus.proto.data.GetSegmentStatesResponse
	(*GetSegmentInfoRequest)(nil),                        // 30: milvus.proto.data.GetSegmentInfoRequest
	(*GetSegmentInfoResponse)(nil),                       // 31: milvus.proto.data.GetSegmentInfoResponse
	(*GetInsertBinlogPathsRequest)(nil),                  // 32: milvus.proto.data.GetInsertBinlogPathsRequest
	(*GetInsertBinlogPathsResponse)(nil),                 // 33: milvus.proto.data.GetInsertBinlogPathsResponse
	(*GetCollectionStatisticsRequest)(nil),               // 34: milvus.proto.data.GetCollectionStatisticsRequest
	(*GetCollectionStatisticsResponse)(nil),              // 35: milvus.proto.data.GetCollectionStatisticsResponse
	(*GetPartitionStatisticsRequest)(nil),                // 36: milvus.proto.data.GetPartitionStatisticsRequest
	(*GetPartitionStatisticsResponse)(nil),               // 37: milvus.proto.data.GetPartitionStatisticsResponse
	(*GetSegmentInfoChannelRequest)(nil),                 // 38: milvus.proto.data.GetSegmentInfoChannelRequest
	(*VchannelInfo)(nil),                                 // 39: milvus.proto.data.VchannelInfo
	(*WatchDmChannelsRequest)(nil),                       // 40: milvus.proto.data.WatchDmChannelsRequest
	(*FlushSegmentsRequest)(nil),                         // 41: milvus.proto.data.FlushSegmentsRequest
	(*SegmentMsg)(nil),                                   // 42: milvus.proto.data.SegmentMsg
	(*SegmentInfo)(nil),                                  // 43: milvus.proto.data.SegmentInfo
	(*Statistics)(nil),                                   // 44: milvus.proto.data.Statistics
	(*SegmentStartPosition)(nil),                         // 45: milvus.proto.data.SegmentStartPosition
	(*SaveBinlogPathsRequest)(nil),                       // 46: milvus.proto.data.SaveBinlogPathsRequest
	(*CheckPoint)(nil),                                   // 47: milvus.proto.data.CheckPoint
	(*DeltaLogInfo)(nil),                                 // 48: milvus.proto.data.DeltaLogInfo
	(*ChannelStatus)(nil),                                // 49: milvus.proto.data.ChannelStatus
	(*DataNodeInfo)(nil),                                 // 50: milvus.proto.data.DataNodeInfo
	(*SegmentBinlogs)(nil),                               // 51: milvus.proto.data.SegmentBinlogs
	(*FieldBinlog)(nil),                                  // 52: milvus.proto.data.FieldBinlog
	(*TextIndexStats)(nil),                               // 53: milvus.proto.data.TextIndexStats
	(*JsonKeyStats)(nil),                                 // 54: milvus.proto.data.JsonKeyStats
	(*Binlog)(nil),                                       // 55: milvus.proto.data.Binlog
	(*GetRecoveryInfoResponse)(nil),                      // 56: milvus.proto.data.GetRecoveryInfoResponse
	(*GetRecoveryInfoRequest)(nil),                       // 57: milvus.proto.data.GetRecoveryInfoRequest
	(*GetRecoveryInfoResponseV2)(nil),                    // 58: milvus.proto.data.GetRecoveryInfoResponseV2
	(*GetRecoveryInfoRequestV2)(nil),                     // 59: milvus.proto.data.GetRecoveryInfoRequestV2
	(*GetChannelRecoveryInfoRequest)(nil),                // 60: milvus.proto.data.GetChannelRecoveryInfoRequest
	(*GetChannelRecoveryInfoResponse)(nil),               // 61: milvus.proto.data.GetChannelRecoveryInfoResponse
	(*SegmentNotCreatedByStreaming)(nil),                 // 62: milvus.proto.data.SegmentNotCreatedByStreaming
	(*GetSegmentsByStatesRequest)(nil),                   // 63: milvus.proto.data.GetSegmentsByStatesRequest
	(*GetSegmentsByStatesResponse)(nil),                  // 64: milvus.proto.data.GetSegmentsByStatesResponse
	(*GetFlushedSegmentsRequest)(nil),                    // 65: milvus.proto.data.GetFlushedSegmentsRequest
	(*GetFlushedSegmentsResponse)(nil),                   // 66: milvus.proto.data.GetFlushedSegmentsResponse
	(*SegmentFlushCompletedMsg)(nil),                     // 67: milvus.proto.data.SegmentFlushCompletedMsg
	(*ChannelWatchInfo)(nil),                             // 68: milvus.proto.data.ChannelWatchInfo
	(*CompactionStateRequest)(nil),                       // 69: milvus.proto.data.CompactionStateRequest
	(*SyncSegmentInfo)(nil),                              // 70: milvus.proto.data.SyncSegmentInfo
	(*SyncSegmentsRequest)(nil),                          // 71: milvus.proto.data.SyncSegmentsRequest
	(*CompactionSegmentBinlogs)(nil),                     // 72: milvus.proto.data.CompactionSegmentBinlogs
	(*CompactionPlan)(nil),                               // 73: milvus.proto.data.CompactionPlan
	(*CompactionSegment)(nil),                            // 74: milvus.proto.data.CompactionSegment
	(*CompactionPlanResult)(nil),                         // 75: milvus.proto.data.CompactionPlanResult
	(*CompactionStateResponse)(nil),                      // 76: milvus.proto.data.CompactionStateResponse
	(*SegmentFieldBinlogMeta)(nil),                       // 77: milvus.proto.data.SegmentFieldBinlogMeta
	(*WatchChannelsRequest)(nil),                         // 78: milvus.proto.data.WatchChannelsRequest
	(*WatchChannelsResponse)(nil),                        // 79: milvus.proto.data.WatchChannelsResponse
	(*SetSegmentStateRequest)(nil),                       // 80: milvus.proto.data.SetSegmentStateRequest
	(*SetSegmentStateResponse)(nil),                      // 81: milvus.proto.data.SetSegmentStateResponse
	(*DropVirtualChannelRequest)(nil),                    // 82: milvus.proto.data.DropVirtualChannelRequest
	(*DropVirtualChannelSegment)(nil),                    // 83: milvus.proto.data.DropVirtualChannelSegment
	(*DropVirtualChannelResponse)(nil),                   // 84: milvus.proto.data.DropVirtualChannelResponse
	(*UpdateSegmentStatisticsRequest)(nil),               // 85: milvus.proto.data.UpdateSegmentStatisticsRequest
	(*UpdateChannelCheckpointRequest)(nil),               // 86: milvus.proto.data.UpdateChannelCheckpointRequest
	(*ResendSegmentStatsRequest)(nil),                    // 87: milvus.proto.data.ResendSegmentStatsRequest
	(*ResendSegmentStatsResponse)(nil),                   // 88: milvus.proto.data.ResendSegmentStatsResponse
	(*MarkSegmentsDroppedRequest)(nil),                   // 89: milvus.proto.data.MarkSegmentsDroppedRequest
	(*SegmentReferenceLock)(nil),                         // 90: milvus.proto.data.SegmentReferenceLock
	(*AlterCollectionRequest)(nil),                       // 91: milvus.proto.data.AlterCollectionRequest
	(*AddCollectionFieldRequest)(nil),                    // 92: milvus.proto.data.AddCollectionFieldRequest
	(*GcConfirmRequest)(nil),                             // 93: milvus.proto.data.GcConfirmRequest
	(*GcConfirmResponse)(nil),                            // 94: milvus.proto.data.GcConfirmResponse
	(*ReportDataNodeTtMsgsRequest)(nil),                  // 95: milvus.proto.data.ReportDataNodeTtMsgsRequest
	(*GetFlushStateRequest)(nil),                         // 96: milvus.proto.data.GetFlushStateRequest
	(*ChannelOperationsRequest)(nil),                     // 97: milvus.proto.data.ChannelOperationsRequest
	(*ChannelOperationProgressResponse)(nil),             // 98: milvus.proto.data.ChannelOperationProgressResponse
	(*PreImportRequest)(nil),                             // 99: milvus.proto.data.PreImportRequest
	(*IDRange)(nil),                                      // 100: milvus.proto.data.IDRange
	(*ImportRequestSegment)(nil),                         // 101: milvus.proto.data.ImportRequestSegment
	(*ImportRequest)(nil),                                // 102: milvus.proto.data.ImportRequest
	(*QueryPreImportRequest)(nil),                        // 103: milvus.proto.data.QueryPreImportRequest
	(*PartitionImportStats)(nil),                         // 104: milvus.proto.data.PartitionImportStats
	(*ImportFileStats)(nil),                              // 105: milvus.proto.data.ImportFileStats
	(*QueryPreImportResponse)(nil),                       // 106: milvus.proto.data.QueryPreImportResponse
	(*QueryImportRequest)(nil),                           // 107: milvus.proto.data.QueryImportRequest
	(*ImportSegmentInfo)(nil),                            // 108: milvus.proto.data.ImportSegmentInfo
	(*QueryImportResponse)(nil),                          // 109: milvus.proto.data.QueryImportResponse
	(*DropImportRequest)(nil),                            // 110: milvus.proto.data.DropImportRequest
	(*CopySegmentSource)(nil),                            // 111: milvus.proto.data.CopySegmentSource
	(*CopySegmentTarget)(nil),                            // 112: milvus.proto.data.CopySegmentTarget
	(*CopySegmentRequest)(nil),                           // 113: milvus.proto.data.CopySegmentRequest
	(*QueryCopySegmentRequest)(nil),                      // 114: milvus.proto.data.QueryCopySegmentRequest
	(*QueryCopySegmentResponse)(nil),                     // 115: milvus.proto.data.QueryCopySegmentResponse
	(*DropCopySegmentRequest)(nil),                       // 116: milvus.proto.data.DropCopySegmentRequest
	(*VectorScalarIndexInfo)(nil),                        // 117: milvus.proto.data.VectorScalarIndexInfo
	(*CopySegmentResult)(nil),                            // 118: milvus.proto.data.CopySegmentResult
	(*CopySegmentTask)(nil),                              // 119: milvus.proto.data.CopySegmentTask
	(*CopySegmentIDMapping)(nil),                         // 120: milvus.proto.data.CopySegmentIDMapping
	(*CopySegmentJob)(nil),                               // 121: milvus.proto.data.CopySegmentJob
	(*ImportJob)(nil),                                    // 122: milvus.proto.data.ImportJob
	(*PreImportTask)(nil),                                // 123: milvus.proto.data.PreImportTask
	(*ImportTaskV2)(nil),                                 // 124: milvus.proto.data.ImportTaskV2
	(*GcControlRequest)(nil),                             // 125: milvus.proto.data.GcControlRequest
	(*GetGcStatusResponse)(nil),                          // 126: milvus.proto.data.GetGcStatusResponse
	(*QuerySlotRequest)(nil),                             // 127: milvus.proto.data.QuerySlotRequest
	(*QuerySlotResponse)(nil),                            // 128: milvus.proto.data.QuerySlotResponse
	(*CompactionTask)(nil),                               // 129: milvus.proto.data.CompactionTask
	(*PartitionStatsInfo)(nil),                           // 130: milvus.proto.data.PartitionStatsInfo
	(*DropCompactionPlanRequest)(nil),                    // 131: milvus.proto.data.DropCompactionPlanRequest
	(*RefreshExternalCollectionTaskRequest)(nil),         // 132: milvus.proto.data.RefreshExternalCollectionTaskRequest
	(*RefreshExternalCollectionTaskResponse)(nil),        // 133: milvus.proto.data.RefreshExternalCollectionTaskResponse
	(*RefreshExternalCollectionRequest)(nil),             // 134: milvus.proto.data.RefreshExternalCollectionRequest
	(*RefreshExternalCollectionResponse)(nil),            // 135: milvus.proto.data.RefreshExternalCollectionResponse
	(*GetRefreshExternalCollectionProgressRequest)(nil),  // 136: milvus.proto.data.GetRefreshExternalCollectionProgressRequest
	(*ExternalCollectionRefreshJob)(nil),                 // 137: milvus.proto.data.ExternalCollectionRefreshJob
	(*ExternalFileInfo)(nil),                             // 138: milvus.proto.data.ExternalFileInfo
	(*ExternalCollectionRefreshTask)(nil),                // 139: milvus.proto.data.ExternalCollectionRefreshTask
	(*GetRefreshExternalCollectionProgressResponse)(nil), // 140: milvus.proto.data.GetRefreshExternalCollectionProgressResponse
	(*ListRefreshExternalCollectionJobsRequest)(nil),     // 141: milvus.proto.data.ListRefreshExternalCollectionJobsRequest
	(*ListRefreshExternalCollectionJobsResponse)(nil),    // 142: milvus.proto.data.ListRefreshExternalCollectionJobsResponse
	(*CreateSnapshotRequest)(nil),                        // 143: milvus.proto.data.CreateSnapshotRequest
	(*DropSnapshotRequest)(nil),                          // 144: milvus.proto.data.DropSnapshotRequest
	(*ListSnapshotsRequest)(nil),                         // 145: milvus.proto.data.ListSnapshotsRequest
	(*ListSnapshotsResponse)(nil),                        // 146: milvus.proto.data.ListSnapshotsResponse
	(*ExportSnapshotRequest)(nil),                        // 147: milvus.proto.data.ExportSnapshotRequest
	(*ExportSnapshotResponse)(nil),                       // 148: milvus.proto.data.ExportSnapshotResponse
	(*SegmentDescription)(nil),                           // 149: milvus.proto.data.SegmentDescription
	(*CollectionDescription)(nil),                        // 150: milvus.proto.data.CollectionDescription
	(*SnapshotInfo)(nil),                                 // 151: milvus.proto.data.SnapshotInfo
	(*StorageV2SegmentManifest)(nil),                     // 152: milvus.proto.data.StorageV2SegmentManifest
	(*SnapshotMetadata)(nil),                             // 153: milvus.proto.data.SnapshotMetadata
	(*RestoreSnapshotInfo)(nil),                          // 154: milvus.proto.data.RestoreSnapshotInfo
	(*DescribeSnapshotRequest)(nil),                      // 155: milvus.proto.data.DescribeSnapshotRequest
	(*DescribeSnapshotResponse)(nil),                     // 156: milvus.proto.data.DescribeSnapshotResponse
	(*RestoreSnapshotRequest)(nil),                       // 157: milvus.proto.data.RestoreSnapshotRequest
	(*RestoreSnapshotResponse)(nil),                      // 158: milvus.proto.data.RestoreSnapshotResponse
	(*GetRestoreSnapshotStateRequest)(nil),               // 159: milvus.proto.data.GetRestoreSnapshotStateRequest
	(*GetRestoreSnapshotStateResponse)(nil),              // 160: milvus.proto.data.GetRestoreSnapshotStateResponse
	(*ListRestoreSnapshotJobsRequest)(nil),               // 161: milvus.proto.data.ListRestoreSnapshotJobsRequest
	(*ListRestoreSnapshotJobsResponse)(nil),              // 162: milvus.proto.data.ListRestoreSnapshotJobsResponse
	(*BatchUpdateManifestRequest)(nil),                   // 163: milvus.proto.data.BatchUpdateManifestRequest
	(*BatchUpdateManifestItem)(nil),                      // 164: milvus.proto.data.BatchUpdateManifestItem
	(*CommitBackfillResultRequest)(nil),                  // 165: milvus.proto.data.CommitBackfillResultRequest
	(*CommitBackfillResultSegmentStatus)(nil),            // 166: milvus.proto.data.CommitBackfillResultSegmentStatus
	(*CommitBackfillResultResponse)(nil),                 // 167: milvus.proto.data.CommitBackfillResultResponse
	(*PinSnapshotDataRequest)(nil),                       // 168: milvus.proto.data.PinSnapshotDataRequest
	(*PinSnapshotDataResponse)(nil),                      // 169: milvus.proto.data.PinSnapshotDataResponse
	(*UnpinSnapshotDataRequest)(nil),                     // 170: milvus.proto.data.UnpinSnapshotDataRequest
	(*CommitImportRequest)(nil),                          // 171: milvus.proto.data.CommitImportRequest
	(*AbortImportRequest)(nil),                           // 172: milvus.proto.data.AbortImportRequest
	(*HandleCommitVchannelRequest)(nil),                  // 173: milvus.proto.data.HandleCommitVchannelRequest
	nil,                                                  // 174: milvus.proto.data.FlushResponse.ChannelCpsEntry
	nil,                                                  // 175: milvus.proto.data.FlushResult.ChannelCpsEntry
	nil,                                                  // 176: milvus.proto.data.FlushAllResponse.FlushAllMsgsEntry
	nil,                                                  // 177: milvus.proto.data.GetSegmentInfoResponse.ChannelCheckpointEntry
	nil,                                                  // 178: milvus.proto.data.VchannelInfo.PartitionStatsVersionsEntry
	nil,                                                  // 179: milvus.proto.data.SegmentInfo.TextStatsLogsEntry
	nil,                                                  // 180: milvus.proto.data.SegmentInfo.JsonKeyStatsEntry
	nil,                                                  // 181: milvus.proto.data.Statistics.NullCountsEntry
	nil,                                                  // 182: milvus.proto.data.SegmentBinlogs.TextStatsLogsEntry
	nil,                                                  // 183: milvus.proto.data.Binlog.FieldNullCountsEntry
	nil,                                                  // 184: milvus.proto.data.SyncSegmentsRequest.SegmentInfosEntry
	nil,                                                  // 185: milvus.proto.data.CompactionSegment.TextStatsLogsEntry
	nil,                                                  // 186: milvus.proto.data.WatchChannelsRequest.ChannelWalNamesEntry
	nil,                                                  // 187: milvus.proto.data.PartitionImportStats.PartitionRowsEntry
	nil,                                                  // 188: milvus.proto.data.PartitionImportStats.PartitionDataSizeEntry
	nil,                                                  // 189: milvus.proto.data.ImportFileStats.HashedStatsEntry
	nil,                                                  // 190: milvus.proto.data.CopySegmentSource.TextIndexFilesEntry
	nil,                                                  // 191: milvus.proto.data.CopySegmentSource.JsonKeyIndexFilesEntry
	nil,                                                  // 192: milvus.proto.data.CopySegmentTarget.NewBuildIdsEntry
	nil,                                                  // 193: milvus.proto.data.CopySegmentResult.IndexInfosEntry
	nil,                                                  // 194: milvus.proto.data.CopySegmentResult.TextIndexInfosEntry
	nil,                                                  // 195: milvus.proto.data.CopySegmentResult.JsonKeyIndexInfosEntry
	nil,                                                  // 196: milvus.proto.data.SegmentDescription.TextIndexFilesEntry
	nil,                                                  // 197: milvus.proto.data.SegmentDescription.JsonKeyIndexFilesEntry
	nil,                                                  // 198: milvus.proto.data.CollectionDescription.PartitionsEntry
	nil,                                                  // 199: milvus.proto.data.SnapshotInfo.PinExpireAtMsEntry
	(*commonpb.MsgBase)(nil),                             // 200: milvus.proto.common.MsgBase
	(*commonpb.Status)(nil),                              // 201: milvus.proto.common.Status
	(*milvuspb.ClusterInfo)(nil),                         // 202: milvus.proto.milvus.ClusterInfo
	(commonpb.SegmentState)(0),                           // 203: milvus.proto.common.SegmentState
	(*msgpb.MsgPosition)(nil),                            // 204: milvus.proto.msg.MsgPosition
	(*internalpb.StringList)(nil),                        // 205: milvus.proto.internal.StringList
	(*commonpb.KeyValuePair)(nil),                        // 206: milvus.proto.common.KeyValuePair
	(*schemapb.CollectionSchema)(nil),                    // 207: milvus.proto.schema.CollectionSchema
	(*internalpb.FileResourceInfo)(nil),                  // 208: milvus.proto.internal.FileResourceInfo
	(*schemapb.FunctionSchema)(nil),                      // 209: milvus.proto.schema.FunctionSchema
	(*commonpb.KeyDataPair)(nil),                         // 210: milvus.proto.common.KeyDataPair
	(*commonpb.SegmentStats)(nil),                        // 211: milvus.proto.common.SegmentStats
	(*schemapb.FieldSchema)(nil),                         // 212: milvus.proto.schema.FieldSchema
	(*msgpb.DataNodeTtMsg)(nil),                          // 213: milvus.proto.msg.DataNodeTtMsg
	(*internalpb.ImportFile)(nil),                        // 214: milvus.proto.internal.ImportFile
	(*indexpb.StorageConfig)(nil),                        // 215: milvus.proto.index.StorageConfig
	(*indexpb.IndexFilePathInfo)(nil),                    // 216: milvus.proto.index.IndexFilePathInfo
	(indexpb.IndexStorePathVersion)(0),                   // 217: milvus.proto.index.IndexStorePathVersion
	(internalpb.ImportJobState)(0),                       // 218: milvus.proto.internal.ImportJobState
	(indexpb.JobState)(0),                                // 219: milvus.proto.index.JobState
	(commonpb.ConsistencyLevel)(0),                       // 220: milvus.proto.common.ConsistencyLevel
	(*indexpb.IndexInfo)(nil),                            // 221: milvus.proto.index.IndexInfo
	(*commonpb.ImmutableMessage)(nil),                    // 222: milvus.proto.common.ImmutableMessage
	(commonpb.WALName)(0),                                // 223: milvus.proto.common.WALName
	(*milvuspb.GetFlushAllStateRequest)(nil),             // 224: milvus.proto.milvus.GetFlushAllStateRequest
	(*internalpb.ShowConfigurationsRequest)(nil),         // 225: milvus.proto.internal.ShowConfigurationsRequest
	(*milvuspb.GetMetricsRequest)(nil),                   // 226: milvus.proto.milvus.GetMetricsRequest
	(*milvuspb.ManualCompactionRequest)(nil),             // 227: milvus.proto.milvus.ManualCompactionRequest
	(*milvuspb.GetCompactionStateRequest)(nil),           // 228: milvus.proto.milvus.GetCompactionStateRequest
	(*milvuspb.GetCompactionPlansRequest)(nil),           // 229: milvus.proto.milvus.GetCompactionPlansRequest
	(*milvuspb.CheckHealthRequest)(nil),                  // 230: milvus.proto.milvus.CheckHealthRequest
	(*indexpb.CreateIndexRequest)(nil),                   // 231: milvus.proto.index.CreateIndexRequest
	(*indexpb.AlterIndexRequest)(nil),                    // 232: milvus.proto.index.AlterIndexRequest
	(*indexpb.GetIndexStateRequest)(nil),                 // 233: milvus.proto.index.GetIndexStateRequest
	(*indexpb.GetSegmentIndexStateRequest)(nil),          // 234: milvus.proto.index.GetSegmentIndexStateRequest
	(*indexpb.GetIndexInfoRequest)(nil),                  // 235: milvus.proto.index.GetIndexInfoRequest
	(*indexpb.DropIndexRequest)(nil),                     // 236: milvus.proto.index.DropIndexRequest
	(*indexpb.DescribeIndexRequest)(nil),                 // 237: milvus.proto.index.DescribeIndexRequest
	(*indexpb.GetIndexStatisticsRequest)(nil),            // 238: milvus.proto.index.GetIndexStatisticsRequest
	(*indexpb.GetIndexBuildProgressRequest)(nil),         // 239: milvus.proto.index.GetIndexBuildProgressRequest
	(*indexpb.ListIndexesRequest)(nil),                   // 240: milvus.proto.index.ListIndexesRequest
	(*internalpb.ImportRequestInternal)(nil),             // 241: milvus.proto.internal.ImportRequestInternal
	(*internalpb.GetImportProgressRequest)(nil),          // 242: milvus.proto.internal.GetImportProgressRequest
	(*internalpb.ListImportsRequestInternal)(nil),        // 243: milvus.proto.internal.ListImportsRequestInternal
	(*milvuspb.GetComponentStatesRequest)(nil),           // 244: milvus.proto.milvus.GetComponentStatesRequest
	(*internalpb.GetStatisticsChannelRequest)(nil),       // 245: milvus.proto.internal.GetStatisticsChannelRequest
	(*internalpb.SyncFileResourceRequest)(nil),           // 246: milvus.proto.internal.SyncFileResourceRequest
	(*milvuspb.StringResponse)(nil),                      // 247: milvus.proto.milvus.StringResponse
	(*milvuspb.GetFlushAllStateResponse)(nil),            // 248: milvus.proto.milvus.GetFlushAllStateResponse
	(*internalpb.ShowConfigurationsResponse)(nil),        // 249: milvus.proto.internal.ShowConfigurationsResponse
	(*milvuspb.GetMetricsResponse)(nil),                  // 250: milvus.proto.milvus.GetMetricsResponse
	(*milvuspb.ManualCompactionResponse)(nil),            // 251: milvus.proto.milvus.ManualCompactionResponse
	(*milvuspb.GetCompactionStateResponse)(nil),          // 252: milvus.proto.milvus.GetCompactionStateResponse
	(*milvuspb.GetCompactionPlansResponse)(nil),          // 253: milvus.proto.milvus.GetCompactionPlansResponse
	(*milvuspb.GetFlushStateResponse)(nil),               // 254: milvus.proto.milvus.GetFlushStateResponse
	(*milvuspb.CheckHealthResponse)(nil),                 // 255: milvus.proto.milvus.CheckHealthResponse
	(*indexpb.GetIndexStateResponse)(nil),                // 256: milvus.proto.index.GetIndexStateResponse
	(*indexpb.GetSegmentIndexStateResponse)(nil),         // 257: milvus.proto.index.GetSegmentIndexStateResponse
	(*indexpb.GetIndexInfoResponse)(nil),                 // 258: milvus.proto.index.GetIndexInfoResponse
	(*indexpb.DescribeIndexResponse)(nil),                // 259: milvus.proto.index.DescribeIndexResponse
	(*indexpb.GetIndexStatisticsResponse)(nil),           // 260: milvus.proto.index.GetIndexStatisticsResponse
	(*indexpb.GetIndexBuildProgressResponse)(nil),        // 261: milvus.proto.index.GetIndexBuildProgressResponse
	(*indexpb.ListIndexesResponse)(nil),                  // 262: milvus.proto.index.ListIndexesResponse
	(*internalpb.ImportResponse)(nil),                    // 263: milvus.proto.internal.ImportResponse
	(*internalpb.GetImportProgressResponse)(nil),         // 264: milvus.proto.internal.GetImportProgressResponse
	(*internalpb.ListImportsResponse)(nil),               // 265: milvus.proto.internal.ListImportsResponse
	(*milvuspb.ComponentStates)(nil),                     // 266: milvus.proto.milvus.ComponentStates
}
var file_data_coord_proto_depIdxs = []int32{
	200, // 0: milvus.proto.data.FlushRequest.base:type_name -> milvus.proto.common.MsgBase
	201, // 1: milvus.proto.data.FlushResponse.status:type_name -> milvus.proto.common.Status
	174, // 2: milvus.proto.data.FlushResponse.channel_cps:type_name -> milvus.proto.data.FlushResponse.ChannelCpsEntry
	175, // 3: milvus.proto.data.FlushResult.channel_cps:type_name -> milvus.proto.data.FlushResult.ChannelCpsEntry
	200, // 4: milvus.proto.data.FlushAllRequest.base:type_name -> milvus.proto.common.MsgBase
	18,  // 5: milvus.proto.data.FlushAllRequest.flush_targets:type_name -> milvus.proto.data.FlushAllTarget
	201, // 6: milvus.proto.data.FlushAllResponse.status:type_name -> milvus.proto.common.Status
	16,  // 7: milvus.proto.data.FlushAllResponse.flush_results:type_name -> milvus.proto.data.FlushResult
	176, // 8: milvus.proto.data.FlushAllResponse.flush_all_msgs:type_name -> milvus.proto.data.FlushAllResponse.FlushAllMsgsEntry
	202, // 9: milvus.proto.data.FlushAllResponse.cluster_info:type_name -> milvus.proto.milvus.ClusterInfo
	200, // 10: milvus.proto.data.FlushChannelsRequest.base:type_name -> milvus.proto.common.MsgBase
	1,   // 11: milvus.proto.data.SegmentIDRequest.level:type_name -> milvus.proto.data.SegmentLevel
	43,  // 12: milvus.proto.data.AllocSegmentResponse.segment_info:type_name -> milvus.proto.data.SegmentInfo
	201, // 13: milvus.proto.data.AllocSegmentResponse.status:type_name -> milvus.proto.common.Status
	21,  // 14: milvus.proto.data.AssignSegmentIDRequest.segmentIDRequests:type_name -> milvus.proto.data.SegmentIDRequest
	201, // 15: milvus.proto.data.SegmentIDAssignment.status:type_name -> milvus.proto.common.Status
	25,  // 16: milvus.proto.data.AssignSegmentIDResponse.segIDAssignments:type_name -> milvus.proto.data.SegmentIDAssignment
	201, // 17: milvus.proto.data.AssignSegmentIDResponse.status:type_name -> milvus.proto.common.Status
	200, // 18: milvus.proto.data.GetSegmentStatesRequest.base:type_name -> milvus.proto.common.MsgBase
	203, // 19: milvus.proto.data.SegmentStateInfo.state:type_name -> milvus.proto.common.SegmentState
	204, // 20: milvus.proto.data.SegmentStateInfo.start_position:type_name -> milvus.proto.msg.MsgPosition
	204, // 21: milvus.proto.data.SegmentStateInfo.end_position:type_name -> milvus.proto.msg.MsgPosition
	201, // 22: milvus.proto.data.SegmentStateInfo.status:type_name -> milvus.proto.common.Status
	201, // 23: milvus.proto.data.GetSegmentStatesResponse.status:type_name -> milvus.proto.common.Status
	28,  // 24: milvus.proto.data.GetSegmentStatesResponse.states:type_name -> milvus.proto.data.SegmentStateInfo
	200, // 25: milvus.proto.data.GetSegmentInfoRequest.base:type_name -> milvus.proto.common.MsgBase
	201, // 26: milvus.proto.data.GetSegmentInfoResponse.status:type_name -> milvus.proto.common.Status
	43,  // 27: milvus.proto.data.GetSegmentInfoResponse.infos:type_name -> milvus.proto.data.SegmentInfo
	177, // 28: milvus.proto.data.GetSegmentInfoResponse.channel_checkpoint:type_name -> milvus.proto.data.GetSegmentInfoResponse.ChannelCheckpointEntry
	200, // 29: milvus.proto.data.GetInsertBinlogPathsRequest.base:type_name -> milvus.proto.common.MsgBase
	205, // 30: milvus.proto.data.GetInsertBinlogPathsResponse.paths:type_name -> milvus.proto.internal.StringList
	201, // 31: milvus.proto.data.GetInsertBinlogPathsResponse.status:type_name -> milvus.proto.common.Status
	200, // 32: milvus.proto.data.GetCollectionStatisticsRequest.base:type_name -> milvus.proto.common.MsgBase
	206, // 33: milvus.proto.data.GetCollectionStatisticsResponse.stats:type_name -> milvus.proto.common.KeyValuePair
	201, // 34: milvus.proto.data.GetCollectionStatisticsResponse.status:type_name -> milvus.proto.common.Status
	200, // 35: milvus.proto.data.GetPartitionStatisticsRequest.base:type_name -> milvus.proto.common.MsgBase
	206, // 36: milvus.proto.data.GetPartitionStatisticsResponse.stats:type_name -> milvus.proto.common.KeyValuePair
	201, // 37: milvus.proto.data.GetPartitionStatisticsResponse.status:type_name -> milvus.proto.common.Status
	204, // 38: milvus.proto.data.VchannelInfo.seek_position:type_name -> milvus.proto.msg.MsgPosition
	43,  // 39: milvus.proto.data.VchannelInfo.unflushedSegments:type_name -> milvus.proto.data.SegmentInfo
	43,  // 40: milvus.proto.data.VchannelInfo.flushedSegments:type_name -> milvus.proto.data.SegmentInfo
	43,  // 41: milvus.proto.data.VchannelInfo.dropped_segments:type_name -> milvus.proto.data.SegmentInfo
	43,  // 42: milvus.proto.data.VchannelInfo.indexed_segments:type_name -> milvus.proto.data.SegmentInfo
	178, // 43: milvus.proto.data.VchannelInfo.partition_stats_versions:type_name -> milvus.proto.data.VchannelInfo.PartitionStatsVersionsEntry
	204, // 44: milvus.proto.data.VchannelInfo.delete_checkpoint:type_name -> milvus.proto.msg.MsgPosition
	200, // 45: milvus.proto.data.WatchDmChannelsRequest.base:type_name -> milvus.proto.common.MsgBase
	39,  // 46: milvus.proto.data.WatchDmChannelsRequest.vchannels:type_name -> milvus.proto.data.VchannelInfo
	200, // 47: milvus.proto.data.FlushSegmentsRequest.base:type_name -> milvus.proto.common.MsgBase
	200, // 48: milvus.proto.data.SegmentMsg.base:type_name -> milvus.proto.common.MsgBase
	43,  // 49: milvus.proto.data.SegmentMsg.segment:type_name -> milvus.proto.data.SegmentInfo
	203, // 50: milvus.proto.data.SegmentInfo.state:type_name -> milvus.proto.common.SegmentState
	204, // 51: milvus.proto.data.SegmentInfo.start_position:type_name -> milvus.proto.msg.MsgPosition
	204, // 52: milvus.proto.data.SegmentInfo.dml_position:type_name -> milvus.proto.msg.MsgPosition
	52,  // 53: milvus.proto.data.SegmentInfo.binlogs:type_name -> milvus.proto.data.FieldBinlog
	52,  // 54: milvus.proto.data.SegmentInfo.statslogs:type_name -> milvus.proto.data.FieldBinlog
	52,  // 55: milvus.proto.data.SegmentInfo.deltalogs:type_name -> milvus.proto.data.FieldBinlog
	1,   // 56: milvus.proto.data.SegmentInfo.level:type_name -> milvus.proto.data.SegmentLevel
	1,   // 57: milvus.proto.data.SegmentInfo.last_level:type_name -> milvus.proto.data.SegmentLevel
	179, // 58: milvus.proto.data.SegmentInfo.textStatsLogs:type_name -> milvus.proto.data.SegmentInfo.TextStatsLogsEntry
	52,  // 59: milvus.proto.data.SegmentInfo.bm25statslogs:type_name -> milvus.proto.data.FieldBinlog
	180, // 60: milvus.proto.data.SegmentInfo.jsonKeyStats:type_name -> milvus.proto.data.SegmentInfo.JsonKeyStatsEntry
	44,  // 61: milvus.proto.data.SegmentInfo.stats:type_name -> milvus.proto.data.Statistics
	181, // 62: milvus.proto.data.Statistics.null_counts:type_name -> milvus.proto.data.Statistics.NullCountsEntry
	204, // 63: milvus.proto.data.SegmentStartPosition.start_position:type_name -> milvus.proto.msg.MsgPosition
	200, // 64: milvus.proto.data.SaveBinlogPathsRequest.base:type_name -> milvus.proto.common.MsgBase
	52,  // 65: milvus.proto.data.SaveBinlogPathsRequest.field2BinlogPaths:type_name -> milvus.proto.data.FieldBinlog
	47,  // 66: milvus.proto.data.SaveBinlogPathsRequest.checkPoints:type_name -> milvus.proto.data.CheckPoint
	45,  // 67: milvus.proto.data.SaveBinlogPathsRequest.start_positions:type_name -> milvus.proto.data.SegmentStartPosition
	52,  // 68: milvus.proto.data.SaveBinlogPathsRequest.field2StatslogPaths:type_name -> milvus.proto.data.FieldBinlog
	52,  // 69: milvus.proto.data.SaveBinlogPathsRequest.deltalogs:type_name -> milvus.proto.data.FieldBinlog
	1,   // 70: milvus.proto.data.SaveBinlogPathsRequest.seg_level:type_name -> milvus.proto.data.SegmentLevel
	52,  // 71: milvus.proto.data.SaveBinlogPathsRequest.field2Bm25logPaths:type_name -> milvus.proto.data.FieldBinlog
	44,  // 72: milvus.proto.data.SaveBinlogPathsRequest.stats:type_name -> milvus.proto.data.Statistics
	204, // 73: milvus.proto.data.CheckPoint.position:type_name -> milvus.proto.msg.MsgPosition
	2,   // 74: milvus.proto.data.ChannelStatus.state:type_name -> milvus.proto.data.ChannelWatchState
	49,  // 75: milvus.proto.data.DataNodeInfo.channels:type_name -> milvus.proto.data.ChannelStatus
	52,  // 76: milvus.proto.data.SegmentBinlogs.fieldBinlogs:type_name -> milvus.proto.data.FieldBinlog
	52,  // 77: milvus.proto.data.SegmentBinlogs.statslogs:type_name -> milvus.proto.data.FieldBinlog
	52,  // 78: milvus.proto.data.SegmentBinlogs.deltalogs:type_name -> milvus.proto.data.FieldBinlog
	182, // 79: milvus.proto.data.SegmentBinlogs.textStatsLogs:type_name -> milvus.proto.data.SegmentBinlogs.TextStatsLogsEntry
	55,  // 80: milvus.proto.data.FieldBinlog.binlogs:type_name -> milvus.proto.data.Binlog
	183, // 81: milvus.proto.data.Binlog.field_null_counts:type_name -> milvus.proto.data.Binlog.FieldNullCountsEntry
	201, // 82: milvus.proto.data.GetRecoveryInfoResponse.status:type_name -> milvus.proto.common.Status
	39,  // 83: milvus.proto.data.GetRecoveryInfoResponse.channels:type_name -> milvus.proto.data.VchannelInfo
	51,  // 84: milvus.proto.data.GetRecoveryInfoResponse.binlogs:type_name -> milvus.proto.data.SegmentBinlogs
	200, // 85: milvus.proto.data.GetRecoveryInfoRequest.base:type_name -> milvus.proto.common.MsgBase
	201, // 86: milvus.proto.data.GetRecoveryInfoResponseV2.status:type_name -> milvus.proto.common.Status
	39,  // 87: milvus.proto.data.GetRecoveryInfoResponseV2.channels:type_name -> milvus.proto.data.VchannelInfo
	43,  // 88: milvus.proto.data.GetRecoveryInfoResponseV2.segments:type_name -> milvus.proto.data.SegmentInfo
	200, // 89: milvus.proto.data.GetRecoveryInfoRequestV2.base:type_name -> milvus.proto.common.MsgBase
	200, // 90: milvus.proto.data.GetChannelRecoveryInfoRequest.base:type_name -> milvus.proto.common.MsgBase
	201, // 91: milvus.proto.data.GetChannelRecoveryInfoResponse.status:type_name -> milvus.proto.common.Status
	39,  // 92: milvus.proto.data.GetChannelRecoveryInfoResponse.info:type_name -> milvus.proto.data.VchannelInfo
	207, // 93: milvus.proto.data.GetChannelRecoveryInfoResponse.schema:type_name -> milvus.proto.schema.CollectionSchema
	62,  // 94: milvus.proto.data.GetChannelRecoveryInfoResponse.segments_not_created_by_streaming:type_name -> milvus.proto.data.SegmentNotCreatedByStreaming
	200, // 95: milvus.proto.data.GetSegmentsByStatesRequest.base:type_name -> milvus.proto.common.MsgBase
	203, // 96: milvus.proto.data.GetSegmentsByStatesRequest.states:type_name -> milvus.proto.common.SegmentState
	201, // 97: milvus.proto.data.GetSegmentsByStatesResponse.status:type_name -> milvus.proto.common.Status
	200, // 98: milvus.proto.data.GetFlushedSegmentsRequest.base:type_name -> milvus.proto.common.MsgBase
	201, // 99: milvus.proto.data.GetFlushedSegmentsResponse.status:type_name -> milvus.proto.common.Status
	200, // 100: milvus.proto.data.SegmentFlushCompletedMsg.base:type_name -> milvus.proto.common.MsgBase
	43,  // 101: milvus.proto.data.SegmentFlushCompletedMsg.segment:type_name -> milvus.proto.data.SegmentInfo
	39,  // 102: milvus.proto.data.ChannelWatchInfo.vchan:type_name -> milvus.proto.data.VchannelInfo
	2,   // 103: milvus.proto.data.ChannelWatchInfo.state:type_name -> milvus.proto.data.ChannelWatchState
	207, // 104: milvus.proto.data.ChannelWatchInfo.schema:type_name -> milvus.proto.schema.CollectionSchema
	206, // 105: milvus.proto.data.ChannelWatchInfo.dbProperties:type_name -> milvus.proto.common.KeyValuePair
	200, // 106: milvus.proto.data.CompactionStateRequest.base:type_name -> milvus.proto.common.MsgBase
	52,  // 107: milvus.proto.data.SyncSegmentInfo.pk_stats_log:type_name -> milvus.proto.data.FieldBinlog
	203, // 108: milvus.proto.data.SyncSegmentInfo.state:type_name -> milvus.proto.common.SegmentState
	1,   // 109: milvus.proto.data.SyncSegmentInfo.level:type_name -> milvus.proto.data.SegmentLevel
	52,  // 110: milvus.proto.data.SyncSegmentsRequest.stats_logs:type_name -> milvus.proto.data.FieldBinlog
	184, // 111: milvus.proto.data.SyncSegmentsRequest.segment_infos:type_name -> milvus.proto.data.SyncSegmentsRequest.SegmentInfosEntry
	52,  // 112: milvus.proto.data.CompactionSegmentBinlogs.fieldBinlogs:type_name -> milvus.proto.data.FieldBinlog
	52,  // 113: milvus.proto.data.CompactionSegmentBinlogs.field2StatslogPaths:type_name -> milvus.proto.data.FieldBinlog
	52,  // 114: milvus.proto.data.CompactionSegmentBinlogs.deltalogs:type_name -> milvus.proto.data.FieldBinlog
	1,   // 115: milvus.proto.data.CompactionSegmentBinlogs.level:type_name -> milvus.proto.data.SegmentLevel
	72,  // 116: milvus.proto.data.CompactionPlan.segmentBinlogs:type_name -> milvus.proto.data.CompactionSegmentBinlogs
	3,   // 117: milvus.proto.data.CompactionPlan.type:type_name -> milvus.proto.data.CompactionType
	207, // 118: milvus.proto.data.CompactionPlan.schema:type_name -> milvus.proto.schema.CollectionSchema
	100, // 119: milvus.proto.data.CompactionPlan.pre_allocated_segmentIDs:type_name -> milvus.proto.data.IDRange
	100, // 120: milvus.proto.data.CompactionPlan.pre_allocated_logIDs:type_name -> milvus.proto.data.IDRange
	206, // 121: milvus.proto.data.CompactionPlan.plugin_context:type_name -> milvus.proto.common.KeyValuePair
	208, // 122: milvus.proto.data.CompactionPlan.file_resources:type_name -> milvus.proto.internal.FileResourceInfo
	209, // 123: milvus.proto.data.CompactionPlan.functions:type_name -> milvus.proto.schema.FunctionSchema
	52,  // 124: milvus.proto.data.CompactionSegment.insert_logs:type_name -> milvus.proto.data.FieldBinlog
	52,  // 125: milvus.proto.data.CompactionSegment.field2StatslogPaths:type_name -> milvus.proto.data.FieldBinlog
	52,  // 126: milvus.proto.data.CompactionSegment.deltalogs:type_name -> milvus.proto.data.FieldBinlog
	52,  // 127: milvus.proto.data.CompactionSegment.bm25logs:type_name -> milvus.proto.data.FieldBinlog
	185, // 128: milvus.proto.data.CompactionSegment.text_stats_logs:type_name -> milvus.proto.data.CompactionSegment.TextStatsLogsEntry
	44,  // 129: milvus.proto.data.CompactionSegment.stats:type_name -> milvus.proto.data.Statistics
	11,  // 130: milvus.proto.data.CompactionPlanResult.state:type_name -> milvus.proto.data.CompactionTaskState
	74,  // 131: milvus.proto.data.CompactionPlanResult.segments:type_name -> milvus.proto.data.CompactionSegment
	3,   // 132: milvus.proto.data.CompactionPlanResult.type:type_name -> milvus.proto.data.CompactionType
	201, // 133: milvus.proto.data.CompactionStateResponse.status:type_name -> milvus.proto.common.Status
	75,  // 134: milvus.proto.data.CompactionStateResponse.results:type_name -> milvus.proto.data.CompactionPlanResult
	210, // 135: milvus.proto.data.WatchChannelsRequest.start_positions:type_name -> milvus.proto.common.KeyDataPair
	207, // 136: milvus.proto.data.WatchChannelsRequest.schema:type_name -> milvus.proto.schema.CollectionSchema
	206, // 137: milvus.proto.data.WatchChannelsRequest.db_properties:type_name -> milvus.proto.common.KeyValuePair
	186, // 138: milvus.proto.data.WatchChannelsRequest.channel_wal_names:type_name -> milvus.proto.data.WatchChannelsRequest.ChannelWalNamesEntry
	201, // 139: milvus.proto.data.WatchChannelsResponse.status:type_name -> milvus.proto.common.Status
	200, // 140: milvus.proto.data.SetSegmentStateRequest.base:type_name -> milvus.proto.common.MsgBase
	203, // 141: milvus.proto.data.SetSegmentStateRequest.new_state:type_name -> milvus.proto.common.SegmentState
	201, // 142: milvus.proto.data.SetSegmentStateResponse.status:type_name -> milvus.proto.common.Status
	200, // 143: milvus.proto.data.DropVirtualChannelRequest.base:type_name -> milvus.proto.common.MsgBase
	83,  // 144: milvus.proto.data.DropVirtualChannelRequest.segments:type_name -> milvus.proto.data.DropVirtualChannelSegment
	52,  // 145: milvus.proto.data.DropVirtualChannelSegment.field2BinlogPaths:type_name -> milvus.proto.data.FieldBinlog
	52,  // 146: milvus.proto.data.DropVirtualChannelSegment.field2StatslogPaths:type_name -> milvus.proto.data.FieldBinlog
	52,  // 147: milvus.proto.data.DropVirtualChannelSegment.deltalogs:type_name -> milvus.proto.data.FieldBinlog
	204, // 148: milvus.proto.data.DropVirtualChannelSegment.startPosition:type_name -> milvus.proto.msg.MsgPosition
	204, // 149: milvus.proto.data.DropVirtualChannelSegment.checkPoint:type_name -> milvus.proto.msg.MsgPosition
	201, // 150: milvus.proto.data.DropVirtualChannelResponse.status:type_name -> milvus.proto.common.Status
	200, // 151: milvus.proto.data.UpdateSegmentStatisticsRequest.base:type_name -> milvus.proto.common.MsgBase
	211, // 152: milvus.proto.data.UpdateSegmentStatisticsRequest.stats:type_name -> milvus.proto.common.SegmentStats
	200, // 153: milvus.proto.data.UpdateChannelCheckpointRequest.base:type_name -> milvus.proto.common.MsgBase
	204, // 154: milvus.proto.data.UpdateChannelCheckpointRequest.position:type_name -> milvus.proto.msg.MsgPosition
	204, // 155: milvus.proto.data.UpdateChannelCheckpointRequest.channel_checkpoints:type_name -> milvus.proto.msg.MsgPosition
	200, // 156: milvus.proto.data.ResendSegmentStatsRequest.base:type_name -> milvus.proto.common.MsgBase
	201, // 157: milvus.proto.data.ResendSegmentStatsResponse.status:type_name -> milvus.proto.common.Status
	200, // 158: milvus.proto.data.MarkSegmentsDroppedRequest.base:type_name -> milvus.proto.common.MsgBase
	207, // 159: milvus.proto.data.AlterCollectionRequest.schema:type_name -> milvus.proto.schema.CollectionSchema
	210, // 160: milvus.proto.data.AlterCollectionRequest.start_positions:type_name -> milvus.proto.common.KeyDataPair
	206, // 161: milvus.proto.data.AlterCollectionRequest.properties:type_name -> milvus.proto.common.KeyValuePair
	212, // 162: milvus.proto.data.AddCollectionFieldRequest.field_schema:type_name -> milvus.proto.schema.FieldSchema
	207, // 163: milvus.proto.data.AddCollectionFieldRequest.schema:type_name -> milvus.proto.schema.CollectionSchema
	210, // 164: milvus.proto.data.AddCollectionFieldRequest.start_positions:type_name -> milvus.proto.common.KeyDataPair
	206, // 165: milvus.proto.data.AddCollectionFieldRequest.properties:type_name -> milvus.proto.common.KeyValuePair
	201, // 166: milvus.proto.data.GcConfirmResponse.status:type_name -> milvus.proto.common.Status
	200, // 167: milvus.proto.data.ReportDataNodeTtMsgsRequest.base:type_name -> milvus.proto.common.MsgBase
	213, // 168: milvus.proto.data.ReportDataNodeTtMsgsRequest.msgs:type_name -> milvus.proto.msg.DataNodeTtMsg
	68,  // 169: milvus.proto.data.ChannelOperationsRequest.infos:type_name -> milvus.proto.data.ChannelWatchInfo
	201, // 170: milvus.proto.data.ChannelOperationProgressResponse.status:type_name -> milvus.proto.common.Status
	2,   // 171: milvus.proto.data.ChannelOperationProgressResponse.state:type_name -> milvus.proto.data.ChannelWatchState
	207, // 172: milvus.proto.data.PreImportRequest.schema:type_name -> milvus.proto.schema.CollectionSchema
	214, // 173: milvus.proto.data.PreImportRequest.import_files:type_name -> milvus.proto.internal.ImportFile
	206, // 174: milvus.proto.data.PreImportRequest.options:type_name -> milvus.proto.common.KeyValuePair
	215, // 175: milvus.proto.data.PreImportRequest.storage_config:type_name -> milvus.proto.index.StorageConfig
	206, // 176: milvus.proto.data.PreImportRequest.plugin_context:type_name -> milvus.proto.common.KeyValuePair
	207, // 177: milvus.proto.data.ImportRequest.schema:type_name -> milvus.proto.schema.CollectionSchema
	214, // 178: milvus.proto.data.ImportRequest.files:type_name -> milvus.proto.internal.ImportFile
	206, // 179: milvus.proto.data.ImportRequest.options:type_name -> milvus.proto.common.KeyValuePair
	100, // 180: milvus.proto.data.ImportRequest.ID_range:type_name -> milvus.proto.data.IDRange
	101, // 181: milvus.proto.data.ImportRequest.request_segments:type_name -> milvus.proto.data.ImportRequestSegment
	215, // 182: milvus.proto.data.ImportRequest.storage_config:type_name -> milvus.proto.index.StorageConfig
	206, // 183: milvus.proto.data.ImportRequest.plugin_context:type_name -> milvus.proto.common.KeyValuePair
	187, // 184: milvus.proto.data.PartitionImportStats.partition_rows:type_name -> milvus.proto.data.PartitionImportStats.PartitionRowsEntry
	188, // 185: milvus.proto.data.PartitionImportStats.partition_data_size:type_name -> milvus.proto.data.PartitionImportStats.PartitionDataSizeEntry
	214, // 186: milvus.proto.data.ImportFileStats.import_file:type_name -> milvus.proto.internal.ImportFile
	189, // 187: milvus.proto.data.ImportFileStats.hashed_stats:type_name -> milvus.proto.data.ImportFileStats.HashedStatsEntry
	201, // 188: milvus.proto.data.QueryPreImportResponse.status:type_name -> milvus.proto.common.Status
	8,   // 189: milvus.proto.data.QueryPreImportResponse.state:type_name -> milvus.proto.data.ImportTaskStateV2
	105, // 190: milvus.proto.data.QueryPreImportResponse.file_stats:type_name -> milvus.proto.data.ImportFileStats
	52,  // 191: milvus.proto.data.ImportSegmentInfo.binlogs:type_name -> milvus.proto.data.FieldBinlog
	52,  // 192: milvus.proto.data.ImportSegmentInfo.statslogs:type_name -> milvus.proto.data.FieldBinlog
	52,  // 193: milvus.proto.data.ImportSegmentInfo.deltalogs:type_name -> milvus.proto.data.FieldBinlog
	52,  // 194: milvus.proto.data.ImportSegmentInfo.bm25logs:type_name -> milvus.proto.data.FieldBinlog
	44,  // 195: milvus.proto.data.ImportSegmentInfo.stats:type_name -> milvus.proto.data.Statistics
	201, // 196: milvus.proto.data.QueryImportResponse.status:type_name -> milvus.proto.common.Status
	8,   // 197: milvus.proto.data.QueryImportResponse.state:type_name -> milvus.proto.data.ImportTaskStateV2
	108, // 198: milvus.proto.data.QueryImportResponse.import_segments_info:type_name -> milvus.proto.data.ImportSegmentInfo
	52,  // 199: milvus.proto.data.CopySegmentSource.insert_binlogs:type_name -> milvus.proto.data.FieldBinlog
	52,  // 200: milvus.proto.data.CopySegmentSource.stats_binlogs:type_name -> milvus.proto.data.FieldBinlog
	52,  // 201: milvus.proto.data.CopySegmentSource.delta_binlogs:type_name -> milvus.proto.data.FieldBinlog
	216, // 202: milvus.proto.data.CopySegmentSource.index_files:type_name -> milvus.proto.index.IndexFilePathInfo
	52,  // 203: milvus.proto.data.CopySegmentSource.bm25_binlogs:type_name -> milvus.proto.data.FieldBinlog
	190, // 204: milvus.proto.data.CopySegmentSource.text_index_files:type_name -> milvus.proto.data.CopySegmentSource.TextIndexFilesEntry
	191, // 205: milvus.proto.data.CopySegmentSource.json_key_index_files:type_name -> milvus.proto.data.CopySegmentSource.JsonKeyIndexFilesEntry
	192, // 206: milvus.proto.data.CopySegmentTarget.new_build_ids:type_name -> milvus.proto.data.CopySegmentTarget.NewBuildIdsEntry
	111, // 207: milvus.proto.data.CopySegmentRequest.sources:type_name -> milvus.proto.data.CopySegmentSource
	112, // 208: milvus.proto.data.CopySegmentRequest.targets:type_name -> milvus.proto.data.CopySegmentTarget
	215, // 209: milvus.proto.data.CopySegmentRequest.storage_config:type_name -> milvus.proto.index.StorageConfig
	201, // 210: milvus.proto.data.QueryCopySegmentResponse.status:type_name -> milvus.proto.common.Status
	5,   // 211: milvus.proto.data.QueryCopySegmentResponse.state:type_name -> milvus.proto.data.CopySegmentTaskState
	118, // 212: milvus.proto.data.QueryCopySegmentResponse.segment_results:type_name -> milvus.proto.data.CopySegmentResult
	217, // 213: milvus.proto.data.VectorScalarIndexInfo.index_store_path_version:type_name -> milvus.proto.index.IndexStorePathVersion
	52,  // 214: milvus.proto.data.CopySegmentResult.binlogs:type_name -> milvus.proto.data.FieldBinlog
	52,  // 215: milvus.proto.data.CopySegmentResult.statslogs:type_name -> milvus.proto.data.FieldBinlog
	52,  // 216: milvus.proto.data.CopySegmentResult.deltalogs:type_name -> milvus.proto.data.FieldBinlog
	52,  // 217: milvus.proto.data.CopySegmentResult.bm25logs:type_name -> milvus.proto.data.FieldBinlog
	193, // 218: milvus.proto.data.CopySegmentResult.index_infos:type_name -> milvus.proto.data.CopySegmentResult.IndexInfosEntry
	194, // 219: milvus.proto.data.CopySegmentResult.text_index_infos:type_name -> milvus.proto.data.CopySegmentResult.TextIndexInfosEntry
	195, // 220: milvus.proto.data.CopySegmentResult.json_key_index_infos:type_name -> milvus.proto.data.CopySegmentResult.JsonKeyIndexInfosEntry
	5,   // 221: milvus.proto.data.CopySegmentTask.state:type_name -> milvus.proto.data.CopySegmentTaskState
	120, // 222: milvus.proto.data.CopySegmentTask.id_mappings:type_name -> milvus.proto.data.CopySegmentIDMapping
	4,   // 223: milvus.proto.data.CopySegmentJob.state:type_name -> milvus.proto.data.CopySegmentJobState
	120, // 224: milvus.proto.data.CopySegmentJob.id_mappings:type_name -> milvus.proto.data.CopySegmentIDMapping
	206, // 225: milvus.proto.data.CopySegmentJob.options:type_name -> milvus.proto.common.KeyValuePair
	207, // 226: milvus.proto.data.ImportJob.schema:type_name -> milvus.proto.schema.CollectionSchema
	218, // 227: milvus.proto.data.ImportJob.state:type_name -> milvus.proto.internal.ImportJobState
	214, // 228: milvus.proto.data.ImportJob.files:type_name -> milvus.proto.internal.ImportFile
	206, // 229: milvus.proto.data.ImportJob.options:type_name -> milvus.proto.common.KeyValuePair
	8,   // 230: milvus.proto.data.PreImportTask.state:type_name -> milvus.proto.data.ImportTaskStateV2
	105, // 231: milvus.proto.data.PreImportTask.file_stats:type_name -> milvus.proto.data.ImportFileStats
	8,   // 232: milvus.proto.data.ImportTaskV2.state:type_name -> milvus.proto.data.ImportTaskStateV2
	105, // 233: milvus.proto.data.ImportTaskV2.file_stats:type_name -> milvus.proto.data.ImportFileStats
	9,   // 234: milvus.proto.data.ImportTaskV2.source:type_name -> milvus.proto.data.ImportTaskSourceV2
	200, // 235: milvus.proto.data.GcControlRequest.base:type_name -> milvus.proto.common.MsgBase
	10,  // 236: milvus.proto.data.GcControlRequest.command:type_name -> milvus.proto.data.GcCommand
	206, // 237: milvus.proto.data.GcControlRequest.params:type_name -> milvus.proto.common.KeyValuePair
	201, // 238: milvus.proto.data.QuerySlotResponse.status:type_name -> milvus.proto.common.Status
	3,   // 239: milvus.proto.data.CompactionTask.type:type_name -> milvus.proto.data.CompactionType
	11,  // 240: milvus.proto.data.CompactionTask.state:type_name -> milvus.proto.data.CompactionTaskState
	204, // 241: milvus.proto.data.CompactionTask.pos:type_name -> milvus.proto.msg.MsgPosition
	207, // 242: milvus.proto.data.CompactionTask.schema:type_name -> milvus.proto.schema.CollectionSchema
	212, // 243: milvus.proto.data.CompactionTask.clustering_key_field:type_name -> milvus.proto.schema.FieldSchema
	100, // 244: milvus.proto.data.CompactionTask.pre_allocated_segmentIDs:type_name -> milvus.proto.data.IDRange
	209, // 245: milvus.proto.data.CompactionTask.diff_functions:type_name -> milvus.proto.schema.FunctionSchema
	200, // 246: milvus.proto.data.RefreshExternalCollectionTaskRequest.base:type_name -> milvus.proto.common.MsgBase
	43,  // 247: milvus.proto.data.RefreshExternalCollectionTaskRequest.currentSegments:type_name -> milvus.proto.data.SegmentInfo
	215, // 248: milvus.proto.data.RefreshExternalCollectionTaskRequest.storage_config:type_name -> milvus.proto.index.StorageConfig
	207, // 249: milvus.proto.data.RefreshExternalCollectionTaskRequest.schema:type_name -> milvus.proto.schema.CollectionSchema
	100, // 250: milvus.proto.data.RefreshExternalCollectionTaskRequest.pre_allocated_segment_ids:type_name -> milvus.proto.data.IDRange
	201, // 251: milvus.proto.data.RefreshExternalCollectionTaskResponse.status:type_name -> milvus.proto.common.Status
	43,  // 252: milvus.proto.data.RefreshExternalCollectionTaskResponse.updatedSegments:type_name -> milvus.proto.data.SegmentInfo
	219, // 253: milvus.proto.data.RefreshExternalCollectionTaskResponse.state:type_name -> milvus.proto.index.JobState
	200, // 254: milvus.proto.data.RefreshExternalCollectionRequest.base:type_name -> milvus.proto.common.MsgBase
	201, // 255: milvus.proto.data.RefreshExternalCollectionResponse.status:type_name -> milvus.proto.common.Status
	200, // 256: milvus.proto.data.GetRefreshExternalCollectionProgressRequest.base:type_name -> milvus.proto.common.MsgBase
	219, // 257: milvus.proto.data.ExternalCollectionRefreshJob.state:type_name -> milvus.proto.index.JobState
	219, // 258: milvus.proto.data.ExternalCollectionRefreshTask.state:type_name -> milvus.proto.index.JobState
	43,  // 259: milvus.proto.data.ExternalCollectionRefreshTask.updated_segments:type_name -> milvus.proto.data.SegmentInfo
	201, // 260: milvus.proto.data.GetRefreshExternalCollectionProgressResponse.status:type_name -> milvus.proto.common.Status
	137, // 261: milvus.proto.data.GetRefreshExternalCollectionProgressResponse.job_info:type_name -> milvus.proto.data.ExternalCollectionRefreshJob
	200, // 262: milvus.proto.data.ListRefreshExternalCollectionJobsRequest.base:type_name -> milvus.proto.common.MsgBase
	201, // 263: milvus.proto.data.ListRefreshExternalCollectionJobsResponse.status:type_name -> milvus.proto.common.Status
	137, // 264: milvus.proto.data.ListRefreshExternalCollectionJobsResponse.jobs:type_name -> milvus.proto.data.ExternalCollectionRefreshJob
	200, // 265: milvus.proto.data.CreateSnapshotRequest.base:type_name -> milvus.proto.common.MsgBase
	200, // 266: milvus.proto.data.DropSnapshotRequest.base:type_name -> milvus.proto.common.MsgBase
	200, // 267: milvus.proto.data.ListSnapshotsRequest.base:type_name -> milvus.proto.common.MsgBase
	201, // 268: milvus.proto.data.ListSnapshotsResponse.status:type_name -> milvus.proto.common.Status
	200, // 269: milvus.proto.data.ExportSnapshotRequest.base:type_name -> milvus.proto.common.MsgBase
	201, // 270: milvus.proto.data.ExportSnapshotResponse.status:type_name -> milvus.proto.common.Status
	1,   // 271: milvus.proto.data.SegmentDescription.segment_level:type_name -> milvus.proto.data.SegmentLevel
	52,  // 272: milvus.proto.data.SegmentDescription.binlogs:type_name -> milvus.proto.data.FieldBinlog
	52,  // 273: milvus.proto.data.SegmentDescription.deltalogs:type_name -> milvus.proto.data.FieldBinlog
	52,  // 274: milvus.proto.data.SegmentDescription.statslogs:type_name -> milvus.proto.data.FieldBinlog
	52,  // 275: milvus.proto.data.SegmentDescription.bm25_statslogs:type_name -> milvus.proto.data.FieldBinlog
	196, // 276: milvus.proto.data.SegmentDescription.text_index_files:type_name -> milvus.proto.data.SegmentDescription.TextIndexFilesEntry
	197, // 277: milvus.proto.data.SegmentDescription.json_key_index_files:type_name -> milvus.proto.data.SegmentDescription.JsonKeyIndexFilesEntry
	216, // 278: milvus.proto.data.SegmentDescription.index_files:type_name -> milvus.proto.index.IndexFilePathInfo
	204, // 279: milvus.proto.data.SegmentDescription.start_position:type_name -> milvus.proto.msg.MsgPosition
	204, // 280: milvus.proto.data.SegmentDescription.dml_position:type_name -> milvus.proto.msg.MsgPosition
	207, // 281: milvus.proto.data.CollectionDescription.schema:type_name -> milvus.proto.schema.CollectionSchema
	220, // 282: milvus.proto.data.CollectionDescription.consistency_level:type_name -> milvus.proto.common.ConsistencyLevel
	206, // 283: milvus.proto.data.CollectionDescription.properties:type_name -> milvus.proto.common.KeyValuePair
	198, // 284: milvus.proto.data.CollectionDescription.partitions:type_name -> milvus.proto.data.CollectionDescription.PartitionsEntry
	6,   // 285: milvus.proto.data.SnapshotInfo.state:type_name -> milvus.proto.data.SnapshotState
	199, // 286: milvus.proto.data.SnapshotInfo.pin_expire_at_ms:type_name -> milvus.proto.data.SnapshotInfo.PinExpireAtMsEntry
	204, // 287: milvus.proto.data.SnapshotInfo.channel_seek_positions:type_name -> milvus.proto.msg.MsgPosition
	151, // 288: milvus.proto.data.SnapshotMetadata.snapshot_info:type_name -> milvus.proto.data.SnapshotInfo
	150, // 289: milvus.proto.data.SnapshotMetadata.collection:type_name -> milvus.proto.data.CollectionDescription
	221, // 290: milvus.proto.data.SnapshotMetadata.indexes:type_name -> milvus.proto.index.IndexInfo
	152, // 291: milvus.proto.data.SnapshotMetadata.storagev2_manifest_list:type_name -> milvus.proto.data.StorageV2SegmentManifest
	12,  // 292: milvus.proto.data.SnapshotMetadata.layout:type_name -> milvus.proto.data.SnapshotLayout
	7,   // 293: milvus.proto.data.RestoreSnapshotInfo.state:type_name -> milvus.proto.data.RestoreSnapshotState
	200, // 294: milvus.proto.data.DescribeSnapshotRequest.base:type_name -> milvus.proto.common.MsgBase
	201, // 295: milvus.proto.data.DescribeSnapshotResponse.status:type_name -> milvus.proto.common.Status
	151, // 296: milvus.proto.data.DescribeSnapshotResponse.snapshot_info:type_name -> milvus.proto.data.SnapshotInfo
	150, // 297: milvus.proto.data.DescribeSnapshotResponse.collection_info:type_name -> milvus.proto.data.CollectionDescription
	221, // 298: milvus.proto.data.DescribeSnapshotResponse.index_infos:type_name -> milvus.proto.index.IndexInfo
	200, // 299: milvus.proto.data.RestoreSnapshotRequest.base:type_name -> milvus.proto.common.MsgBase
	201, // 300: milvus.proto.data.RestoreSnapshotResponse.status:type_name -> milvus.proto.common.Status
	200, // 301: milvus.proto.data.GetRestoreSnapshotStateRequest.base:type_name -> milvus.proto.common.MsgBase
	201, // 302: milvus.proto.data.GetRestoreSnapshotStateResponse.status:type_name -> milvus.proto.common.Status
	154, // 303: milvus.proto.data.GetRestoreSnapshotStateResponse.info:type_name -> milvus.proto.data.RestoreSnapshotInfo
	200, // 304: milvus.proto.data.ListRestoreSnapshotJobsRequest.base:type_name -> milvus.proto.common.MsgBase
	201, // 305: milvus.proto.data.ListRestoreSnapshotJobsResponse.status:type_name -> milvus.proto.common.Status
	154, // 306: milvus.proto.data.ListRestoreSnapshotJobsResponse.jobs:type_name -> milvus.proto.data.RestoreSnapshotInfo
	200, // 307: milvus.proto.data.BatchUpdateManifestRequest.base:type_name -> milvus.proto.common.MsgBase
	164, // 308: milvus.proto.data.BatchUpdateManifestRequest.items:type_name -> milvus.proto.data.BatchUpdateManifestItem
	200, // 309: milvus.proto.data.CommitBackfillResultRequest.base:type_name -> milvus.proto.common.MsgBase
	201, // 310: milvus.proto.data.CommitBackfillResultResponse.status:type_name -> milvus.proto.common.Status
	166, // 311: milvus.proto.data.CommitBackfillResultResponse.segment_statuses:type_name -> milvus.proto.data.CommitBackfillResultSegmentStatus
	200, // 312: milvus.proto.data.PinSnapshotDataRequest.base:type_name -> milvus.proto.common.MsgBase
	201, // 313: milvus.proto.data.PinSnapshotDataResponse.status:type_name -> milvus.proto.common.Status
	200, // 314: milvus.proto.data.UnpinSnapshotDataRequest.base:type_name -> milvus.proto.common.MsgBase
	200, // 315: milvus.proto.data.CommitImportRequest.base:type_name -> milvus.proto.common.MsgBase
	200, // 316: milvus.proto.data.AbortImportRequest.base:type_name -> milvus.proto.common.MsgBase
	200, // 317: milvus.proto.data.HandleCommitVchannelRequest.base:type_name -> milvus.proto.common.MsgBase
	204, // 318: milvus.proto.data.FlushResponse.ChannelCpsEntry.value:type_name -> milvus.proto.msg.MsgPosition
	204, // 319: milvus.proto.data.FlushResult.ChannelCpsEntry.value:type_name -> milvus.proto.msg.MsgPosition
	222, // 320: milvus.proto.data.FlushAllResponse.FlushAllMsgsEntry.value:type_name -> milvus.proto.common.ImmutableMessage
	204, // 321: milvus.proto.data.GetSegmentInfoResponse.ChannelCheckpointEntry.value:type_name -> milvus.proto.msg.MsgPosition
	53,  // 322: milvus.proto.data.SegmentInfo.TextStatsLogsEntry.value:type_name -> milvus.proto.data.TextIndexStats
	54,  // 323: milvus.proto.data.SegmentInfo.JsonKeyStatsEntry.value:type_name -> milvus.proto.data.JsonKeyStats
	53,  // 324: milvus.proto.data.SegmentBinlogs.TextStatsLogsEntry.value:type_name -> milvus.proto.data.TextIndexStats
	70,  // 325: milvus.proto.data.SyncSegmentsRequest.SegmentInfosEntry.value:type_name -> milvus.proto.data.SyncSegmentInfo
	53,  // 326: milvus.proto.data.CompactionSegment.TextStatsLogsEntry.value:type_name -> milvus.proto.data.TextIndexStats
	223, // 327: milvus.proto.data.WatchChannelsRequest.ChannelWalNamesEntry.value:type_name -> milvus.proto.common.WALName
	104, // 328: milvus.proto.data.ImportFileStats.HashedStatsEntry.value:type_name -> milvus.proto.data.PartitionImportStats
	53,  // 329: milvus.proto.data.CopySegmentSource.TextIndexFilesEntry.value:type_name -> milvus.proto.data.TextIndexStats
	54,  // 330: milvus.proto.data.CopySegmentSource.JsonKeyIndexFilesEntry.value:type_name -> milvus.proto.data.JsonKeyStats
	117, // 331: milvus.proto.data.CopySegmentResult.IndexInfosEntry.value:type_name -> milvus.proto.data.VectorScalarIndexInfo
	53,  // 332: milvus.proto.data.CopySegmentResult.TextIndexInfosEntry.value:type_name -> milvus.proto.data.TextIndexStats
	54,  // 333: milvus.proto.data.CopySegmentResult.JsonKeyIndexInfosEntry.value:type_name -> milvus.proto.data.JsonKeyStats
	53,  // 334: milvus.proto.data.SegmentDescription.TextIndexFilesEntry.value:type_name -> milvus.proto.data.TextIndexStats
	54,  // 335: milvus.proto.data.SegmentDescription.JsonKeyIndexFilesEntry.value:type_name -> milvus.proto.data.JsonKeyStats
	14,  // 336: milvus.proto.data.DataCoord.Flush:input_type -> milvus.proto.data.FlushRequest
	17,  // 337: milvus.proto.data.DataCoord.FlushAll:input_type -> milvus.proto.data.FlushAllRequest
	22,  // 338: milvus.proto.data.DataCoord.AllocSegment:input_type -> milvus.proto.data.AllocSegmentRequest
	24,  // 339: milvus.proto.data.DataCoord.AssignSegmentID:input_type -> milvus.proto.data.AssignSegmentIDRequest
	30,  // 340: milvus.proto.data.DataCoord.GetSegmentInfo:input_type -> milvus.proto.data.GetSegmentInfoRequest
	27,  // 341: milvus.proto.data.DataCoord.GetSegmentStates:input_type -> milvus.proto.data.GetSegmentStatesRequest
	32,  // 342: milvus.proto.data.DataCoord.GetInsertBinlogPaths:input_type -> milvus.proto.data.GetInsertBinlogPathsRequest
	34,  // 343: milvus.proto.data.DataCoord.GetCollectionStatistics:input_type -> milvus.proto.data.GetCollectionStatisticsRequest
	36,  // 344: milvus.proto.data.DataCoord.GetPartitionStatistics:input_type -> milvus.proto.data.GetPartitionStatisticsRequest
	38,  // 345: milvus.proto.data.DataCoord.GetSegmentInfoChannel:input_type -> milvus.proto.data.GetSegmentInfoChannelRequest
	46,  // 346: milvus.proto.data.DataCoord.SaveBinlogPaths:input_type -> milvus.proto.data.SaveBinlogPathsRequest
	57,  // 347: milvus.proto.data.DataCoord.GetRecoveryInfo:input_type -> milvus.proto.data.GetRecoveryInfoRequest
	59,  // 348: milvus.proto.data.DataCoord.GetRecoveryInfoV2:input_type -> milvus.proto.data.GetRecoveryInfoRequestV2
	60,  // 349: milvus.proto.data.DataCoord.GetChannelRecoveryInfo:input_type -> milvus.proto.data.GetChannelRecoveryInfoRequest
	65,  // 350: milvus.proto.data.DataCoord.GetFlushedSegments:input_type -> milvus.proto.data.GetFlushedSegmentsRequest
	63,  // 351: milvus.proto.data.DataCoord.GetSegmentsByStates:input_type -> milvus.proto.data.GetSegmentsByStatesRequest
	224, // 352: milvus.proto.data.DataCoord.GetFlushAllState:input_type -> milvus.proto.milvus.GetFlushAllStateRequest
	225, // 353: milvus.proto.data.DataCoord.ShowConfigurations:input_type -> milvus.proto.internal.ShowConfigurationsRequest
	226, // 354: milvus.proto.data.DataCoord.GetMetrics:input_type -> milvus.proto.milvus.GetMetricsRequest
	227, // 355: milvus.proto.data.DataCoord.ManualCompaction:input_type -> milvus.proto.milvus.ManualCompactionRequest
	228, // 356: milvus.proto.data.DataCoord.GetCompactionState:input_type -> milvus.proto.milvus.GetCompactionStateRequest
	229, // 357: milvus.proto.data.DataCoord.GetCompactionStateWithPlans:input_type -> milvus.proto.milvus.GetCompactionPlansRequest
	78,  // 358: milvus.proto.data.DataCoord.WatchChannels:input_type -> milvus.proto.data.WatchChannelsRequest
	96,  // 359: milvus.proto.data.DataCoord.GetFlushState:input_type -> milvus.proto.data.GetFlushStateRequest
	82,  // 360: milvus.proto.data.DataCoord.DropVirtualChannel:input_type -> milvus.proto.data.DropVirtualChannelRequest
	80,  // 361: milvus.proto.data.DataCoord.SetSegmentState:input_type -> milvus.proto.data.SetSegmentStateRequest
	85,  // 362: milvus.proto.data.DataCoord.UpdateSegmentStatistics:input_type -> milvus.proto.data.UpdateSegmentStatisticsRequest
	86,  // 363: milvus.proto.data.DataCoord.UpdateChannelCheckpoint:input_type -> milvus.proto.data.UpdateChannelCheckpointRequest
	89,  // 364: milvus.proto.data.DataCoord.MarkSegmentsDropped:input_type -> milvus.proto.data.MarkSegmentsDroppedRequest
	91,  // 365: milvus.proto.data.DataCoord.BroadcastAlteredCollection:input_type -> milvus.proto.data.AlterCollectionRequest
	230, // 366: milvus.proto.data.DataCoord.CheckHealth:input_type -> milvus.proto.milvus.CheckHealthRequest
	231, // 367: milvus.proto.data.DataCoord.CreateIndex:input_type -> milvus.proto.index.CreateIndexRequest
	232, // 368: milvus.proto.data.DataCoord.AlterIndex:input_type -> milvus.proto.index.AlterIndexRequest
	233, // 369: milvus.proto.data.DataCoord.GetIndexState:input_type -> milvus.proto.index.GetIndexStateRequest
	234, // 370: milvus.proto.data.DataCoord.GetSegmentIndexState:input_type -> milvus.proto.index.GetSegmentIndexStateRequest
	235, // 371: milvus.proto.data.DataCoord.GetIndexInfos:input_type -> milvus.proto.index.GetIndexInfoRequest
	236, // 372: milvus.proto.data.DataCoord.DropIndex:input_type -> milvus.proto.index.DropIndexRequest
	237, // 373: milvus.proto.data.DataCoord.DescribeIndex:input_type -> milvus.proto.index.DescribeIndexRequest
	238, // 374: milvus.proto.data.DataCoord.GetIndexStatistics:input_type -> milvus.proto.index.GetIndexStatisticsRequest
	239, // 375: milvus.proto.data.DataCoord.GetIndexBuildProgress:input_type -> milvus.proto.index.GetIndexBuildProgressRequest
	240, // 376: milvus.proto.data.DataCoord.ListIndexes:input_type -> milvus.proto.index.ListIndexesRequest
	93,  // 377: milvus.proto.data.DataCoord.GcConfirm:input_type -> milvus.proto.data.GcConfirmRequest
	95,  // 378: milvus.proto.data.DataCoord.ReportDataNodeTtMsgs:input_type -> milvus.proto.data.ReportDataNodeTtMsgsRequest
	125, // 379: milvus.proto.data.DataCoord.GcControl:input_type -> milvus.proto.data.GcControlRequest
	241, // 380: milvus.proto.data.DataCoord.ImportV2:input_type -> milvus.proto.internal.ImportRequestInternal
	242, // 381: milvus.proto.data.DataCoord.GetImportProgress:input_type -> milvus.proto.internal.GetImportProgressRequest
	243, // 382: milvus.proto.data.DataCoord.ListImports:input_type -> milvus.proto.internal.ListImportsRequestInternal
	143, // 383: milvus.proto.data.DataCoord.CreateSnapshot:input_type -> milvus.proto.data.CreateSnapshotRequest
	144, // 384: milvus.proto.data.DataCoord.DropSnapshot:input_type -> milvus.proto.data.DropSnapshotRequest
	145, // 385: milvus.proto.data.DataCoord.ListSnapshots:input_type -> milvus.proto.data.ListSnapshotsRequest
	155, // 386: milvus.proto.data.DataCoord.DescribeSnapshot:input_type -> milvus.proto.data.DescribeSnapshotRequest
	157, // 387: milvus.proto.data.DataCoord.RestoreSnapshot:input_type -> milvus.proto.data.RestoreSnapshotRequest
	147, // 388: milvus.proto.data.DataCoord.ExportSnapshot:input_type -> milvus.proto.data.ExportSnapshotRequest
	159, // 389: milvus.proto.data.DataCoord.GetRestoreSnapshotState:input_type -> milvus.proto.data.GetRestoreSnapshotStateRequest
	161, // 390: milvus.proto.data.DataCoord.ListRestoreSnapshotJobs:input_type -> milvus.proto.data.ListRestoreSnapshotJobsRequest
	168, // 391: milvus.proto.data.DataCoord.PinSnapshotData:input_type -> milvus.proto.data.PinSnapshotDataRequest
	170, // 392: milvus.proto.data.DataCoord.UnpinSnapshotData:input_type -> milvus.proto.data.UnpinSnapshotDataRequest
	163, // 393: milvus.proto.data.DataCoord.BatchUpdateManifest:input_type -> milvus.proto.data.BatchUpdateManifestRequest
	165, // 394: milvus.proto.data.DataCoord.CommitBackfillResult:input_type -> milvus.proto.data.CommitBackfillResultRequest
	134, // 395: milvus.proto.data.DataCoord.RefreshExternalCollection:input_type -> milvus.proto.data.RefreshExternalCollectionRequest
	136, // 396: milvus.proto.data.DataCoord.GetRefreshExternalCollectionProgress:input_type -> milvus.proto.data.GetRefreshExternalCollectionProgressRequest
	141, // 397: milvus.proto.data.DataCoord.ListRefreshExternalCollectionJobs:input_type -> milvus.proto.data.ListRefreshExternalCollectionJobsRequest
	171, // 398: milvus.proto.data.DataCoord.CommitImport:input_type -> milvus.proto.data.CommitImportRequest
	172, // 399: milvus.proto.data.DataCoord.AbortImport:input_type -> milvus.proto.data.AbortImportRequest
	173, // 400: milvus.proto.data.DataCoord.HandleCommitVchannel:input_type -> milvus.proto.data.HandleCommitVchannelRequest
	244, // 401: milvus.proto.data.DataNode.GetComponentStates:input_type -> milvus.proto.milvus.GetComponentStatesRequest
	245, // 402: milvus.proto.data.DataNode.GetStatisticsChannel:input_type -> milvus.proto.internal.GetStatisticsChannelRequest
	40,  // 403: milvus.proto.data.DataNode.WatchDmChannels:input_type -> milvus.proto.data.WatchDmChannelsRequest
	41,  // 404: milvus.proto.data.DataNode.FlushSegments:input_type -> milvus.proto.data.FlushSegmentsRequest
	225, // 405: milvus.proto.data.DataNode.ShowConfigurations:input_type -> milvus.proto.internal.ShowConfigurationsRequest
	226, // 406: milvus.proto.data.DataNode.GetMetrics:input_type -> milvus.proto.milvus.GetMetricsRequest
	73,  // 407: milvus.proto.data.DataNode.CompactionV2:input_type -> milvus.proto.data.CompactionPlan
	69,  // 408: milvus.proto.data.DataNode.GetCompactionState:input_type -> milvus.proto.data.CompactionStateRequest
	71,  // 409: milvus.proto.data.DataNode.SyncSegments:input_type -> milvus.proto.data.SyncSegmentsRequest
	87,  // 410: milvus.proto.data.DataNode.ResendSegmentStats:input_type -> milvus.proto.data.ResendSegmentStatsRequest
	20,  // 411: milvus.proto.data.DataNode.FlushChannels:input_type -> milvus.proto.data.FlushChannelsRequest
	97,  // 412: milvus.proto.data.DataNode.NotifyChannelOperation:input_type -> milvus.proto.data.ChannelOperationsRequest
	68,  // 413: milvus.proto.data.DataNode.CheckChannelOperationProgress:input_type -> milvus.proto.data.ChannelWatchInfo
	99,  // 414: milvus.proto.data.DataNode.PreImport:input_type -> milvus.proto.data.PreImportRequest
	102, // 415: milvus.proto.data.DataNode.ImportV2:input_type -> milvus.proto.data.ImportRequest
	103, // 416: milvus.proto.data.DataNode.QueryPreImport:input_type -> milvus.proto.data.QueryPreImportRequest
	107, // 417: milvus.proto.data.DataNode.QueryImport:input_type -> milvus.proto.data.QueryImportRequest
	110, // 418: milvus.proto.data.DataNode.DropImport:input_type -> milvus.proto.data.DropImportRequest
	127, // 419: milvus.proto.data.DataNode.QuerySlot:input_type -> milvus.proto.data.QuerySlotRequest
	131, // 420: milvus.proto.data.DataNode.DropCompactionPlan:input_type -> milvus.proto.data.DropCompactionPlanRequest
	246, // 421: milvus.proto.data.DataNode.SyncFileResource:input_type -> milvus.proto.internal.SyncFileResourceRequest
	15,  // 422: milvus.proto.data.DataCoord.Flush:output_type -> milvus.proto.data.FlushResponse
	19,  // 423: milvus.proto.data.DataCoord.FlushAll:output_type -> milvus.proto.data.FlushAllResponse
	23,  // 424: milvus.proto.data.DataCoord.AllocSegment:output_type -> milvus.proto.data.AllocSegmentResponse
	26,  // 425: milvus.proto.data.DataCoord.AssignSegmentID:output_type -> milvus.proto.data.AssignSegmentIDResponse
	31,  // 426: milvus.proto.data.DataCoord.GetSegmentInfo:output_type -> milvus.proto.data.GetSegmentInfoResponse
	29,  // 427: milvus.proto.data.DataCoord.GetSegmentStates:output_type -> milvus.proto.data.GetSegmentStatesResponse
	33,  // 428: milvus.proto.data.DataCoord.GetInsertBinlogPaths:output_type -> milvus.proto.data.GetInsertBinlogPathsResponse
	35,  // 429: milvus.proto.data.DataCoord.GetCollectionStatistics:output_type -> milvus.proto.data.GetCollectionStatisticsResponse
	37,  // 430: milvus.proto.data.DataCoord.GetPartitionStatistics:output_type -> milvus.proto.data.GetPartitionStatisticsResponse
	247, // 431: milvus.proto.data.DataCoord.GetSegmentInfoChannel:output_type -> milvus.proto.milvus.StringResponse
	201, // 432: milvus.proto.data.DataCoord.SaveBinlogPaths:output_type -> milvus.proto.common.Status
	56,  // 433: milvus.proto.data.DataCoord.GetRecoveryInfo:output_type -> milvus.proto.data.GetRecoveryInfoResponse
	58,  // 434: milvus.proto.data.DataCoord.GetRecoveryInfoV2:output_type -> milvus.proto.data.GetRecoveryInfoResponseV2
	61,  // 435: milvus.proto.data.DataCoord.GetChannelRecoveryInfo:output_type -> milvus.proto.data.GetChannelRecoveryInfoResponse
	66,  // 436: milvus.proto.data.DataCoord.GetFlushedSegments:output_type -> milvus.proto.data.GetFlushedSegmentsResponse
	64,  // 437: milvus.proto.data.DataCoord.GetSegmentsByStates:output_type -> milvus.proto.data.GetSegmentsByStatesResponse
	248, // 438: milvus.proto.data.DataCoord.GetFlushAllState:output_type -> milvus.proto.milvus.GetFlushAllStateResponse
	249, // 439: milvus.proto.data.DataCoord.ShowConfigurations:output_type -> milvus.proto.internal.ShowConfigurationsResponse
	250, // 440: milvus.proto.data.DataCoord.GetMetrics:output_type -> milvus.proto.milvus.GetMetricsResponse
	251, // 441: milvus.proto.data.DataCoord.ManualCompaction:output_type -> milvus.proto.milvus.ManualCompactionResponse
	252, // 442: milvus.proto.data.DataCoord.GetCompactionState:output_type -> milvus.proto.milvus.GetCompactionStateResponse
	253, // 443: milvus.proto.data.DataCoord.GetCompactionStateWithPlans:output_type -> milvus.proto.milvus.GetCompactionPlansResponse
	79,  // 444: milvus.proto.data.DataCoord.WatchChannels:output_type -> milvus.proto.data.WatchChannelsResponse
	254, // 445: milvus.proto.data.DataCoord.GetFlushState:output_type -> milvus.proto.milvus.GetFlushStateResponse
	84,  // 446: milvus.proto.data.DataCoord.DropVirtualChannel:output_type -> milvus.proto.data.DropVirtualChannelResponse
	81,  // 447: milvus.proto.data.DataCoord.SetSegmentState:output_type -> milvus.proto.data.SetSegmentStateResponse
	201, // 448: milvus.proto.data.DataCoord.UpdateSegmentStatistics:output_type -> milvus.proto.common.Status
	201, // 449: milvus.proto.data.DataCoord.UpdateChannelCheckpoint:output_type -> milvus.proto.common.Status
	201, // 450: milvus.proto.data.DataCoord.MarkSegmentsDropped:output_type -> milvus.proto.common.Status
	201, // 451: milvus.proto.data.DataCoord.BroadcastAlteredCollection:output_type -> milvus.proto.common.Status
	255, // 452: milvus.proto.data.DataCoord.CheckHealth:output_type -> milvus.proto.milvus.CheckHealthResponse
	201, // 453: milvus.proto.data.DataCoord.CreateIndex:output_type -> milvus.proto.common.Status
	201, // 454: milvus.proto.data.DataCoord.AlterIndex:output_type -> milvus.proto.common.Status
	256, // 455: milvus.proto.data.DataCoord.GetIndexState:output_type -> milvus.proto.index.GetIndexStateResponse
	257, // 456: milvus.proto.data.DataCoord.GetSegmentIndexState:output_type -> milvus.proto.index.GetSegmentIndexStateResponse
	258, // 457: milvus.proto.data.DataCoord.GetIndexInfos:output_type -> milvus.proto.index.GetIndexInfoResponse
	201, // 458: milvus.proto.data.DataCoord.DropIndex:output_type -> milvus.proto.common.Status
	259, // 459: milvus.proto.data.DataCoord.DescribeIndex:output_type -> milvus.proto.index.DescribeIndexResponse
	260, // 460: milvus.proto.data.DataCoord.GetIndexStatistics:output_type -> milvus.proto.index.GetIndexStatisticsResponse
	261, // 461: milvus.proto.data.DataCoord.GetIndexBuildProgress:output_type -> milvus.proto.index.GetIndexBuildProgressResponse
	262, // 462: milvus.proto.data.DataCoord.ListIndexes:output_type -> milvus.proto.index.ListIndexesResponse
	94,  // 463: milvus.proto.data.DataCoord.GcConfirm:output_type -> milvus.proto.data.GcConfirmResponse
	201, // 464: milvus.proto.data.DataCoord.ReportDataNodeTtMsgs:output_type -> milvus.proto.common.Status
	201, // 465: milvus.proto.data.DataCoord.GcControl:output_type -> milvus.proto.common.Status
	263, // 466: milvus.proto.data.DataCoord.ImportV2:output_type -> milvus.proto.internal.ImportResponse
	264, // 467: milvus.proto.data.DataCoord.GetImportProgress:output_type -> milvus.proto.internal.GetImportProgressResponse
	265, // 468: milvus.proto.data.DataCoord.ListImports:output_type -> milvus.proto.internal.ListImportsResponse
	201, // 469: milvus.proto.data.DataCoord.CreateSnapshot:output_type -> milvus.proto.common.Status
	201, // 470: milvus.proto.data.DataCoord.DropSnapshot:output_type -> milvus.proto.common.Status
	146, // 471: milvus.proto.data.DataCoord.ListSnapshots:output_type -> milvus.proto.data.ListSnapshotsResponse
	156, // 472: milvus.proto.data.DataCoord.DescribeSnapshot:output_type -> milvus.proto.data.DescribeSnapshotResponse
	158, // 473: milvus.proto.data.DataCoord.RestoreSnapshot:output_type -> milvus.proto.data.RestoreSnapshotResponse
	148, // 474: milvus.proto.data.DataCoord.ExportSnapshot:output_type -> milvus.proto.data.ExportSnapshotResponse
	160, // 475: milvus.proto.data.DataCoord.GetRestoreSnapshotState:output_type -> milvus.proto.data.GetRestoreSnapshotStateResponse
	162, // 476: milvus.proto.data.DataCoord.ListRestoreSnapshotJobs:output_type -> milvus.proto.data.ListRestoreSnapshotJobsResponse
	169, // 477: milvus.proto.data.DataCoord.PinSnapshotData:output_type -> milvus.proto.data.PinSnapshotDataResponse
	201, // 478: milvus.proto.data.DataCoord.UnpinSnapshotData:output_type -> milvus.proto.common.Status
	201, // 479: milvus.proto.data.DataCoord.BatchUpdateManifest:output_type -> milvus.proto.common.Status
	167, // 480: milvus.proto.data.DataCoord.CommitBackfillResult:output_type -> milvus.proto.data.CommitBackfillResultResponse
	135, // 481: milvus.proto.data.DataCoord.RefreshExternalCollection:output_type -> milvus.proto.data.RefreshExternalCollectionResponse
	140, // 482: milvus.proto.data.DataCoord.GetRefreshExternalCollectionProgress:output_type -> milvus.proto.data.GetRefreshExternalCollectionProgressResponse
	142, // 483: milvus.proto.data.DataCoord.ListRefreshExternalCollectionJobs:output_type -> milvus.proto.data.ListRefreshExternalCollectionJobsResponse
	201, // 484: milvus.proto.data.DataCoord.CommitImport:output_type -> milvus.proto.common.Status
	201, // 485: milvus.proto.data.DataCoord.AbortImport:output_type -> milvus.proto.common.Status
	201, // 486: milvus.proto.data.DataCoord.HandleCommitVchannel:output_type -> milvus.proto.common.Status
	266, // 487: milvus.proto.data.DataNode.GetComponentStates:output_type -> milvus.proto.milvus.ComponentStates
	247, // 488: milvus.proto.data.DataNode.GetStatisticsChannel:output_type -> milvus.proto.milvus.StringResponse
	201, // 489: milvus.proto.data.DataNode.WatchDmChannels:output_type -> milvus.proto.common.Status
	201, // 490: milvus.proto.data.DataNode.FlushSegments:output_type -> milvus.proto.common.Status
	249, // 491: milvus.proto.data.DataNode.ShowConfigurations:output_type -> milvus.proto.internal.ShowConfigurationsResponse
	250, // 492: milvus.proto.data.DataNode.GetMetrics:output_type -> milvus.proto.milvus.GetMetricsResponse
	201, // 493: milvus.proto.data.DataNode.CompactionV2:output_type -> milvus.proto.common.Status
	76,  // 494: milvus.proto.data.DataNode.GetCompactionState:output_type -> milvus.proto.data.CompactionStateResponse
	201, // 495: milvus.proto.data.DataNode.SyncSegments:output_type -> milvus.proto.common.Status
	88,  // 496: milvus.proto.data.DataNode.ResendSegmentStats:output_type -> milvus.proto.data.ResendSegmentStatsResponse
	201, // 497: milvus.proto.data.DataNode.FlushChannels:output_type -> milvus.proto.common.Status
	201, // 498: milvus.proto.data.DataNode.NotifyChannelOperation:output_type -> milvus.proto.common.Status
	98,  // 499: milvus.proto.data.DataNode.CheckChannelOperationProgress:output_type -> milvus.proto.data.ChannelOperationProgressResponse
	201, // 500: milvus.proto.data.DataNode.PreImport:output_type -> milvus.proto.common.Status
	201, // 501: milvus.proto.data.DataNode.ImportV2:output_type -> milvus.proto.common.Status
	106, // 502: milvus.proto.data.DataNode.QueryPreImport:output_type -> milvus.proto.data.QueryPreImportResponse
	109, // 503: milvus.proto.data.DataNode.QueryImport:output_type -> milvus.proto.data.QueryImportResponse
	201, // 504: milvus.proto.data.DataNode.DropImport:output_type -> milvus.proto.common.Status
	128, // 505: milvus.proto.data.DataNode.QuerySlot:output_type -> milvus.proto.data.QuerySlotResponse
	201, // 506: milvus.proto.data.DataNode.DropCompactionPlan:output_type -> milvus.proto.common.Status
	201, // 507: milvus.proto.data.DataNode.SyncFileResource:output_type -> milvus.proto.common.Status
	422, // [422:508] is the sub-list for method output_type
	336, // [336:422] is the sub-list for method input_type
	336, // [336:336] is the sub-list for extension type_name
	336, // [336:336] is the sub-list for extension extendee
	0,   // [0:336] is the sub-list for field type_name
}

func init() { file_data_coord_proto_init() }
func file_data_coord_proto_init() {
	if File_data_coord_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_data_coord_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Empty); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FlushRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FlushResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FlushResult); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FlushAllRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FlushAllTarget); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FlushAllResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FlushChannelsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SegmentIDRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AllocSegmentRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AllocSegmentResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AssignSegmentIDRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SegmentIDAssignment); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AssignSegmentIDResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetSegmentStatesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SegmentStateInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetSegmentStatesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetSegmentInfoRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetSegmentInfoResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetInsertBinlogPathsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetInsertBinlogPathsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetCollectionStatisticsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetCollectionStatisticsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetPartitionStatisticsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetPartitionStatisticsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetSegmentInfoChannelRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*VchannelInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WatchDmChannelsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FlushSegmentsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SegmentMsg); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SegmentInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Statistics); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SegmentStartPosition); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SaveBinlogPathsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CheckPoint); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeltaLogInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ChannelStatus); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DataNodeInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SegmentBinlogs); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FieldBinlog); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TextIndexStats); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*JsonKeyStats); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Binlog); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetRecoveryInfoResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetRecoveryInfoRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetRecoveryInfoResponseV2); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetRecoveryInfoRequestV2); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetChannelRecoveryInfoRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetChannelRecoveryInfoResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SegmentNotCreatedByStreaming); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetSegmentsByStatesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetSegmentsByStatesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetFlushedSegmentsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetFlushedSegmentsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SegmentFlushCompletedMsg); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ChannelWatchInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CompactionStateRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SyncSegmentInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SyncSegmentsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CompactionSegmentBinlogs); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CompactionPlan); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CompactionSegment); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CompactionPlanResult); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CompactionStateResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SegmentFieldBinlogMeta); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WatchChannelsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WatchChannelsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SetSegmentStateRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SetSegmentStateResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DropVirtualChannelRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DropVirtualChannelSegment); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DropVirtualChannelResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateSegmentStatisticsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateChannelCheckpointRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResendSegmentStatsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResendSegmentStatsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MarkSegmentsDroppedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SegmentReferenceLock); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AlterCollectionRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AddCollectionFieldRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GcConfirmRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GcConfirmResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReportDataNodeTtMsgsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetFlushStateRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ChannelOperationsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ChannelOperationProgressResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PreImportRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*IDRange); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ImportRequestSegment); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ImportRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QueryPreImportRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PartitionImportStats); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ImportFileStats); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QueryPreImportResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QueryImportRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ImportSegmentInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QueryImportResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DropImportRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CopySegmentSource); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CopySegmentTarget); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CopySegmentRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QueryCopySegmentRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QueryCopySegmentResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DropCopySegmentRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*VectorScalarIndexInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CopySegmentResult); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CopySegmentTask); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CopySegmentIDMapping); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CopySegmentJob); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ImportJob); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PreImportTask); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ImportTaskV2); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GcControlRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetGcStatusResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QuerySlotRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QuerySlotResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CompactionTask); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PartitionStatsInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DropCompactionPlanRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RefreshExternalCollectionTaskRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RefreshExternalCollectionTaskResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RefreshExternalCollectionRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RefreshExternalCollectionResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetRefreshExternalCollectionProgressRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ExternalCollectionRefreshJob); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ExternalFileInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ExternalCollectionRefreshTask); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetRefreshExternalCollectionProgressResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListRefreshExternalCollectionJobsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListRefreshExternalCollectionJobsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateSnapshotRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DropSnapshotRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListSnapshotsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListSnapshotsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ExportSnapshotRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ExportSnapshotResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SegmentDescription); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CollectionDescription); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SnapshotInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StorageV2SegmentManifest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SnapshotMetadata); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RestoreSnapshotInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DescribeSnapshotRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DescribeSnapshotResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RestoreSnapshotRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RestoreSnapshotResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetRestoreSnapshotStateRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetRestoreSnapshotStateResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListRestoreSnapshotJobsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListRestoreSnapshotJobsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BatchUpdateManifestRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BatchUpdateManifestItem); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CommitBackfillResultRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CommitBackfillResultSegmentStatus); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CommitBackfillResultResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PinSnapshotDataRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PinSnapshotDataResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UnpinSnapshotDataRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CommitImportRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AbortImportRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_data_coord_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*HandleCommitVchannelRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_data_coord_proto_rawDesc,
			NumEnums:      13,
			NumMessages:   187,
			NumExtensions: 0,
			NumServices:   2,
		},
		GoTypes:           file_data_coord_proto_goTypes,
		DependencyIndexes: file_data_coord_proto_depIdxs,
		EnumInfos:         file_data_coord_proto_enumTypes,
		MessageInfos:      file_data_coord_proto_msgTypes,
	}.Build()
	File_data_coord_proto = out.File
	file_data_coord_proto_rawDesc = nil
	file_data_coord_proto_goTypes = nil
	file_data_coord_proto_depIdxs = nil
}
