// Code generated by protoc-gen-go.
// source: volume_server.proto
// DO NOT EDIT!

/*
Package volume_server_pb is a generated protocol buffer package.

It is generated from these files:
	volume_server.proto

It has these top-level messages:
	BatchDeleteRequest
	BatchDeleteResponse
	DeleteResult
	Empty
	VacuumVolumeCheckRequest
	VacuumVolumeCheckResponse
	VacuumVolumeCompactRequest
	VacuumVolumeCompactResponse
	VacuumVolumeCommitRequest
	VacuumVolumeCommitResponse
	VacuumVolumeCleanupRequest
	VacuumVolumeCleanupResponse
	DeleteCollectionRequest
	DeleteCollectionResponse
	AllocateVolumeRequest
	AllocateVolumeResponse
	VolumeSyncStatusRequest
	VolumeSyncStatusResponse
	VolumeFollowRequest
	VolumeFollowResponse
	VolumeMountRequest
	VolumeMountResponse
	VolumeUnmountRequest
	VolumeUnmountResponse
	VolumeDeleteRequest
	VolumeDeleteResponse
	ReplicateVolumeRequest
	ReplicateVolumeResponse
	CopyFileRequest
	CopyFileResponse
	ReadVolumeFileStatusRequest
	ReadVolumeFileStatusResponse
	DiskStatus
	MemStatus
*/
package volume_server_pb

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"

import (
	context "golang.org/x/net/context"
	grpc "google.golang.org/grpc"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package

type BatchDeleteRequest struct {
	FileIds []string `protobuf:"bytes,1,rep,name=file_ids,json=fileIds" json:"file_ids,omitempty"`
}

func (m *BatchDeleteRequest) Reset()                    { *m = BatchDeleteRequest{} }
func (m *BatchDeleteRequest) String() string            { return proto.CompactTextString(m) }
func (*BatchDeleteRequest) ProtoMessage()               {}
func (*BatchDeleteRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }

func (m *BatchDeleteRequest) GetFileIds() []string {
	if m != nil {
		return m.FileIds
	}
	return nil
}

type BatchDeleteResponse struct {
	Results []*DeleteResult `protobuf:"bytes,1,rep,name=results" json:"results,omitempty"`
}

func (m *BatchDeleteResponse) Reset()                    { *m = BatchDeleteResponse{} }
func (m *BatchDeleteResponse) String() string            { return proto.CompactTextString(m) }
func (*BatchDeleteResponse) ProtoMessage()               {}
func (*BatchDeleteResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }

func (m *BatchDeleteResponse) GetResults() []*DeleteResult {
	if m != nil {
		return m.Results
	}
	return nil
}

type DeleteResult struct {
	FileId string `protobuf:"bytes,1,opt,name=file_id,json=fileId" json:"file_id,omitempty"`
	Status int32  `protobuf:"varint,2,opt,name=status" json:"status,omitempty"`
	Error  string `protobuf:"bytes,3,opt,name=error" json:"error,omitempty"`
	Size   uint32 `protobuf:"varint,4,opt,name=size" json:"size,omitempty"`
}

func (m *DeleteResult) Reset()                    { *m = DeleteResult{} }
func (m *DeleteResult) String() string            { return proto.CompactTextString(m) }
func (*DeleteResult) ProtoMessage()               {}
func (*DeleteResult) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }

func (m *DeleteResult) GetFileId() string {
	if m != nil {
		return m.FileId
	}
	return ""
}

func (m *DeleteResult) GetStatus() int32 {
	if m != nil {
		return m.Status
	}
	return 0
}

func (m *DeleteResult) GetError() string {
	if m != nil {
		return m.Error
	}
	return ""
}

func (m *DeleteResult) GetSize() uint32 {
	if m != nil {
		return m.Size
	}
	return 0
}

type Empty struct {
}

func (m *Empty) Reset()                    { *m = Empty{} }
func (m *Empty) String() string            { return proto.CompactTextString(m) }
func (*Empty) ProtoMessage()               {}
func (*Empty) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }

type VacuumVolumeCheckRequest struct {
	VolumeId uint32 `protobuf:"varint,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"`
}

func (m *VacuumVolumeCheckRequest) Reset()                    { *m = VacuumVolumeCheckRequest{} }
func (m *VacuumVolumeCheckRequest) String() string            { return proto.CompactTextString(m) }
func (*VacuumVolumeCheckRequest) ProtoMessage()               {}
func (*VacuumVolumeCheckRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }

func (m *VacuumVolumeCheckRequest) GetVolumeId() uint32 {
	if m != nil {
		return m.VolumeId
	}
	return 0
}

type VacuumVolumeCheckResponse struct {
	GarbageRatio float64 `protobuf:"fixed64,1,opt,name=garbage_ratio,json=garbageRatio" json:"garbage_ratio,omitempty"`
}

func (m *VacuumVolumeCheckResponse) Reset()                    { *m = VacuumVolumeCheckResponse{} }
func (m *VacuumVolumeCheckResponse) String() string            { return proto.CompactTextString(m) }
func (*VacuumVolumeCheckResponse) ProtoMessage()               {}
func (*VacuumVolumeCheckResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }

func (m *VacuumVolumeCheckResponse) GetGarbageRatio() float64 {
	if m != nil {
		return m.GarbageRatio
	}
	return 0
}

type VacuumVolumeCompactRequest struct {
	VolumeId    uint32 `protobuf:"varint,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"`
	Preallocate int64  `protobuf:"varint,2,opt,name=preallocate" json:"preallocate,omitempty"`
}

func (m *VacuumVolumeCompactRequest) Reset()                    { *m = VacuumVolumeCompactRequest{} }
func (m *VacuumVolumeCompactRequest) String() string            { return proto.CompactTextString(m) }
func (*VacuumVolumeCompactRequest) ProtoMessage()               {}
func (*VacuumVolumeCompactRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }

func (m *VacuumVolumeCompactRequest) GetVolumeId() uint32 {
	if m != nil {
		return m.VolumeId
	}
	return 0
}

func (m *VacuumVolumeCompactRequest) GetPreallocate() int64 {
	if m != nil {
		return m.Preallocate
	}
	return 0
}

type VacuumVolumeCompactResponse struct {
}

func (m *VacuumVolumeCompactResponse) Reset()                    { *m = VacuumVolumeCompactResponse{} }
func (m *VacuumVolumeCompactResponse) String() string            { return proto.CompactTextString(m) }
func (*VacuumVolumeCompactResponse) ProtoMessage()               {}
func (*VacuumVolumeCompactResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }

type VacuumVolumeCommitRequest struct {
	VolumeId uint32 `protobuf:"varint,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"`
}

func (m *VacuumVolumeCommitRequest) Reset()                    { *m = VacuumVolumeCommitRequest{} }
func (m *VacuumVolumeCommitRequest) String() string            { return proto.CompactTextString(m) }
func (*VacuumVolumeCommitRequest) ProtoMessage()               {}
func (*VacuumVolumeCommitRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }

func (m *VacuumVolumeCommitRequest) GetVolumeId() uint32 {
	if m != nil {
		return m.VolumeId
	}
	return 0
}

type VacuumVolumeCommitResponse struct {
}

func (m *VacuumVolumeCommitResponse) Reset()                    { *m = VacuumVolumeCommitResponse{} }
func (m *VacuumVolumeCommitResponse) String() string            { return proto.CompactTextString(m) }
func (*VacuumVolumeCommitResponse) ProtoMessage()               {}
func (*VacuumVolumeCommitResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }

type VacuumVolumeCleanupRequest struct {
	VolumeId uint32 `protobuf:"varint,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"`
}

func (m *VacuumVolumeCleanupRequest) Reset()                    { *m = VacuumVolumeCleanupRequest{} }
func (m *VacuumVolumeCleanupRequest) String() string            { return proto.CompactTextString(m) }
func (*VacuumVolumeCleanupRequest) ProtoMessage()               {}
func (*VacuumVolumeCleanupRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }

func (m *VacuumVolumeCleanupRequest) GetVolumeId() uint32 {
	if m != nil {
		return m.VolumeId
	}
	return 0
}

type VacuumVolumeCleanupResponse struct {
}

func (m *VacuumVolumeCleanupResponse) Reset()                    { *m = VacuumVolumeCleanupResponse{} }
func (m *VacuumVolumeCleanupResponse) String() string            { return proto.CompactTextString(m) }
func (*VacuumVolumeCleanupResponse) ProtoMessage()               {}
func (*VacuumVolumeCleanupResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }

type DeleteCollectionRequest struct {
	Collection string `protobuf:"bytes,1,opt,name=collection" json:"collection,omitempty"`
}

func (m *DeleteCollectionRequest) Reset()                    { *m = DeleteCollectionRequest{} }
func (m *DeleteCollectionRequest) String() string            { return proto.CompactTextString(m) }
func (*DeleteCollectionRequest) ProtoMessage()               {}
func (*DeleteCollectionRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }

func (m *DeleteCollectionRequest) GetCollection() string {
	if m != nil {
		return m.Collection
	}
	return ""
}

type DeleteCollectionResponse struct {
}

func (m *DeleteCollectionResponse) Reset()                    { *m = DeleteCollectionResponse{} }
func (m *DeleteCollectionResponse) String() string            { return proto.CompactTextString(m) }
func (*DeleteCollectionResponse) ProtoMessage()               {}
func (*DeleteCollectionResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }

type AllocateVolumeRequest struct {
	VolumeId    uint32 `protobuf:"varint,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"`
	Collection  string `protobuf:"bytes,2,opt,name=collection" json:"collection,omitempty"`
	Preallocate int64  `protobuf:"varint,3,opt,name=preallocate" json:"preallocate,omitempty"`
	Replication string `protobuf:"bytes,4,opt,name=replication" json:"replication,omitempty"`
	Ttl         string `protobuf:"bytes,5,opt,name=ttl" json:"ttl,omitempty"`
}

func (m *AllocateVolumeRequest) Reset()                    { *m = AllocateVolumeRequest{} }
func (m *AllocateVolumeRequest) String() string            { return proto.CompactTextString(m) }
func (*AllocateVolumeRequest) ProtoMessage()               {}
func (*AllocateVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }

func (m *AllocateVolumeRequest) GetVolumeId() uint32 {
	if m != nil {
		return m.VolumeId
	}
	return 0
}

func (m *AllocateVolumeRequest) GetCollection() string {
	if m != nil {
		return m.Collection
	}
	return ""
}

func (m *AllocateVolumeRequest) GetPreallocate() int64 {
	if m != nil {
		return m.Preallocate
	}
	return 0
}

func (m *AllocateVolumeRequest) GetReplication() string {
	if m != nil {
		return m.Replication
	}
	return ""
}

func (m *AllocateVolumeRequest) GetTtl() string {
	if m != nil {
		return m.Ttl
	}
	return ""
}

type AllocateVolumeResponse struct {
}

func (m *AllocateVolumeResponse) Reset()                    { *m = AllocateVolumeResponse{} }
func (m *AllocateVolumeResponse) String() string            { return proto.CompactTextString(m) }
func (*AllocateVolumeResponse) ProtoMessage()               {}
func (*AllocateVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }

type VolumeSyncStatusRequest struct {
	VolumeId uint32 `protobuf:"varint,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"`
}

func (m *VolumeSyncStatusRequest) Reset()                    { *m = VolumeSyncStatusRequest{} }
func (m *VolumeSyncStatusRequest) String() string            { return proto.CompactTextString(m) }
func (*VolumeSyncStatusRequest) ProtoMessage()               {}
func (*VolumeSyncStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }

func (m *VolumeSyncStatusRequest) GetVolumeId() uint32 {
	if m != nil {
		return m.VolumeId
	}
	return 0
}

type VolumeSyncStatusResponse struct {
	VolumeId        uint32 `protobuf:"varint,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"`
	Collection      string `protobuf:"bytes,2,opt,name=collection" json:"collection,omitempty"`
	Replication     string `protobuf:"bytes,4,opt,name=replication" json:"replication,omitempty"`
	Ttl             string `protobuf:"bytes,5,opt,name=ttl" json:"ttl,omitempty"`
	TailOffset      uint64 `protobuf:"varint,6,opt,name=tail_offset,json=tailOffset" json:"tail_offset,omitempty"`
	CompactRevision uint32 `protobuf:"varint,7,opt,name=compact_revision,json=compactRevision" json:"compact_revision,omitempty"`
	IdxFileSize     uint64 `protobuf:"varint,8,opt,name=idx_file_size,json=idxFileSize" json:"idx_file_size,omitempty"`
}

func (m *VolumeSyncStatusResponse) Reset()                    { *m = VolumeSyncStatusResponse{} }
func (m *VolumeSyncStatusResponse) String() string            { return proto.CompactTextString(m) }
func (*VolumeSyncStatusResponse) ProtoMessage()               {}
func (*VolumeSyncStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }

func (m *VolumeSyncStatusResponse) GetVolumeId() uint32 {
	if m != nil {
		return m.VolumeId
	}
	return 0
}

func (m *VolumeSyncStatusResponse) GetCollection() string {
	if m != nil {
		return m.Collection
	}
	return ""
}

func (m *VolumeSyncStatusResponse) GetReplication() string {
	if m != nil {
		return m.Replication
	}
	return ""
}

func (m *VolumeSyncStatusResponse) GetTtl() string {
	if m != nil {
		return m.Ttl
	}
	return ""
}

func (m *VolumeSyncStatusResponse) GetTailOffset() uint64 {
	if m != nil {
		return m.TailOffset
	}
	return 0
}

func (m *VolumeSyncStatusResponse) GetCompactRevision() uint32 {
	if m != nil {
		return m.CompactRevision
	}
	return 0
}

func (m *VolumeSyncStatusResponse) GetIdxFileSize() uint64 {
	if m != nil {
		return m.IdxFileSize
	}
	return 0
}

type VolumeFollowRequest struct {
	VolumeId uint32 `protobuf:"varint,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"`
	Since    uint64 `protobuf:"varint,2,opt,name=since" json:"since,omitempty"`
}

func (m *VolumeFollowRequest) Reset()                    { *m = VolumeFollowRequest{} }
func (m *VolumeFollowRequest) String() string            { return proto.CompactTextString(m) }
func (*VolumeFollowRequest) ProtoMessage()               {}
func (*VolumeFollowRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }

func (m *VolumeFollowRequest) GetVolumeId() uint32 {
	if m != nil {
		return m.VolumeId
	}
	return 0
}

func (m *VolumeFollowRequest) GetSince() uint64 {
	if m != nil {
		return m.Since
	}
	return 0
}

type VolumeFollowResponse struct {
	FileContent []byte `protobuf:"bytes,1,opt,name=file_content,json=fileContent,proto3" json:"file_content,omitempty"`
}

func (m *VolumeFollowResponse) Reset()                    { *m = VolumeFollowResponse{} }
func (m *VolumeFollowResponse) String() string            { return proto.CompactTextString(m) }
func (*VolumeFollowResponse) ProtoMessage()               {}
func (*VolumeFollowResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }

func (m *VolumeFollowResponse) GetFileContent() []byte {
	if m != nil {
		return m.FileContent
	}
	return nil
}

type VolumeMountRequest struct {
	VolumeId uint32 `protobuf:"varint,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"`
}

func (m *VolumeMountRequest) Reset()                    { *m = VolumeMountRequest{} }
func (m *VolumeMountRequest) String() string            { return proto.CompactTextString(m) }
func (*VolumeMountRequest) ProtoMessage()               {}
func (*VolumeMountRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} }

func (m *VolumeMountRequest) GetVolumeId() uint32 {
	if m != nil {
		return m.VolumeId
	}
	return 0
}

type VolumeMountResponse struct {
}

func (m *VolumeMountResponse) Reset()                    { *m = VolumeMountResponse{} }
func (m *VolumeMountResponse) String() string            { return proto.CompactTextString(m) }
func (*VolumeMountResponse) ProtoMessage()               {}
func (*VolumeMountResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} }

type VolumeUnmountRequest struct {
	VolumeId uint32 `protobuf:"varint,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"`
}

func (m *VolumeUnmountRequest) Reset()                    { *m = VolumeUnmountRequest{} }
func (m *VolumeUnmountRequest) String() string            { return proto.CompactTextString(m) }
func (*VolumeUnmountRequest) ProtoMessage()               {}
func (*VolumeUnmountRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} }

func (m *VolumeUnmountRequest) GetVolumeId() uint32 {
	if m != nil {
		return m.VolumeId
	}
	return 0
}

type VolumeUnmountResponse struct {
}

func (m *VolumeUnmountResponse) Reset()                    { *m = VolumeUnmountResponse{} }
func (m *VolumeUnmountResponse) String() string            { return proto.CompactTextString(m) }
func (*VolumeUnmountResponse) ProtoMessage()               {}
func (*VolumeUnmountResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} }

type VolumeDeleteRequest struct {
	VolumeId uint32 `protobuf:"varint,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"`
}

func (m *VolumeDeleteRequest) Reset()                    { *m = VolumeDeleteRequest{} }
func (m *VolumeDeleteRequest) String() string            { return proto.CompactTextString(m) }
func (*VolumeDeleteRequest) ProtoMessage()               {}
func (*VolumeDeleteRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} }

func (m *VolumeDeleteRequest) GetVolumeId() uint32 {
	if m != nil {
		return m.VolumeId
	}
	return 0
}

type VolumeDeleteResponse struct {
}

func (m *VolumeDeleteResponse) Reset()                    { *m = VolumeDeleteResponse{} }
func (m *VolumeDeleteResponse) String() string            { return proto.CompactTextString(m) }
func (*VolumeDeleteResponse) ProtoMessage()               {}
func (*VolumeDeleteResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} }

type ReplicateVolumeRequest struct {
	VolumeId       uint32 `protobuf:"varint,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"`
	Collection     string `protobuf:"bytes,2,opt,name=collection" json:"collection,omitempty"`
	Replication    string `protobuf:"bytes,3,opt,name=replication" json:"replication,omitempty"`
	Ttl            string `protobuf:"bytes,4,opt,name=ttl" json:"ttl,omitempty"`
	SourceDataNode string `protobuf:"bytes,5,opt,name=source_data_node,json=sourceDataNode" json:"source_data_node,omitempty"`
}

func (m *ReplicateVolumeRequest) Reset()                    { *m = ReplicateVolumeRequest{} }
func (m *ReplicateVolumeRequest) String() string            { return proto.CompactTextString(m) }
func (*ReplicateVolumeRequest) ProtoMessage()               {}
func (*ReplicateVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} }

func (m *ReplicateVolumeRequest) GetVolumeId() uint32 {
	if m != nil {
		return m.VolumeId
	}
	return 0
}

func (m *ReplicateVolumeRequest) GetCollection() string {
	if m != nil {
		return m.Collection
	}
	return ""
}

func (m *ReplicateVolumeRequest) GetReplication() string {
	if m != nil {
		return m.Replication
	}
	return ""
}

func (m *ReplicateVolumeRequest) GetTtl() string {
	if m != nil {
		return m.Ttl
	}
	return ""
}

func (m *ReplicateVolumeRequest) GetSourceDataNode() string {
	if m != nil {
		return m.SourceDataNode
	}
	return ""
}

type ReplicateVolumeResponse struct {
}

func (m *ReplicateVolumeResponse) Reset()                    { *m = ReplicateVolumeResponse{} }
func (m *ReplicateVolumeResponse) String() string            { return proto.CompactTextString(m) }
func (*ReplicateVolumeResponse) ProtoMessage()               {}
func (*ReplicateVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} }

type CopyFileRequest struct {
	VolumeId  uint32 `protobuf:"varint,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"`
	IsIdxFile bool   `protobuf:"varint,2,opt,name=is_idx_file,json=isIdxFile" json:"is_idx_file,omitempty"`
	IsDatFile bool   `protobuf:"varint,3,opt,name=is_dat_file,json=isDatFile" json:"is_dat_file,omitempty"`
}

func (m *CopyFileRequest) Reset()                    { *m = CopyFileRequest{} }
func (m *CopyFileRequest) String() string            { return proto.CompactTextString(m) }
func (*CopyFileRequest) ProtoMessage()               {}
func (*CopyFileRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} }

func (m *CopyFileRequest) GetVolumeId() uint32 {
	if m != nil {
		return m.VolumeId
	}
	return 0
}

func (m *CopyFileRequest) GetIsIdxFile() bool {
	if m != nil {
		return m.IsIdxFile
	}
	return false
}

func (m *CopyFileRequest) GetIsDatFile() bool {
	if m != nil {
		return m.IsDatFile
	}
	return false
}

type CopyFileResponse struct {
	FileContent []byte `protobuf:"bytes,1,opt,name=file_content,json=fileContent,proto3" json:"file_content,omitempty"`
}

func (m *CopyFileResponse) Reset()                    { *m = CopyFileResponse{} }
func (m *CopyFileResponse) String() string            { return proto.CompactTextString(m) }
func (*CopyFileResponse) ProtoMessage()               {}
func (*CopyFileResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} }

func (m *CopyFileResponse) GetFileContent() []byte {
	if m != nil {
		return m.FileContent
	}
	return nil
}

type ReadVolumeFileStatusRequest struct {
	VolumeId uint32 `protobuf:"varint,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"`
}

func (m *ReadVolumeFileStatusRequest) Reset()                    { *m = ReadVolumeFileStatusRequest{} }
func (m *ReadVolumeFileStatusRequest) String() string            { return proto.CompactTextString(m) }
func (*ReadVolumeFileStatusRequest) ProtoMessage()               {}
func (*ReadVolumeFileStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} }

func (m *ReadVolumeFileStatusRequest) GetVolumeId() uint32 {
	if m != nil {
		return m.VolumeId
	}
	return 0
}

type ReadVolumeFileStatusResponse struct {
	VolumeId         uint32 `protobuf:"varint,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"`
	IdxFileTimestamp uint64 `protobuf:"varint,2,opt,name=idx_file_timestamp,json=idxFileTimestamp" json:"idx_file_timestamp,omitempty"`
	IdxFileSize      uint64 `protobuf:"varint,3,opt,name=idx_file_size,json=idxFileSize" json:"idx_file_size,omitempty"`
	DatFileTimestamp uint64 `protobuf:"varint,4,opt,name=dat_file_timestamp,json=datFileTimestamp" json:"dat_file_timestamp,omitempty"`
	DatFileSize      uint64 `protobuf:"varint,5,opt,name=dat_file_size,json=datFileSize" json:"dat_file_size,omitempty"`
	FileCount        uint64 `protobuf:"varint,6,opt,name=file_count,json=fileCount" json:"file_count,omitempty"`
}

func (m *ReadVolumeFileStatusResponse) Reset()                    { *m = ReadVolumeFileStatusResponse{} }
func (m *ReadVolumeFileStatusResponse) String() string            { return proto.CompactTextString(m) }
func (*ReadVolumeFileStatusResponse) ProtoMessage()               {}
func (*ReadVolumeFileStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} }

func (m *ReadVolumeFileStatusResponse) GetVolumeId() uint32 {
	if m != nil {
		return m.VolumeId
	}
	return 0
}

func (m *ReadVolumeFileStatusResponse) GetIdxFileTimestamp() uint64 {
	if m != nil {
		return m.IdxFileTimestamp
	}
	return 0
}

func (m *ReadVolumeFileStatusResponse) GetIdxFileSize() uint64 {
	if m != nil {
		return m.IdxFileSize
	}
	return 0
}

func (m *ReadVolumeFileStatusResponse) GetDatFileTimestamp() uint64 {
	if m != nil {
		return m.DatFileTimestamp
	}
	return 0
}

func (m *ReadVolumeFileStatusResponse) GetDatFileSize() uint64 {
	if m != nil {
		return m.DatFileSize
	}
	return 0
}

func (m *ReadVolumeFileStatusResponse) GetFileCount() uint64 {
	if m != nil {
		return m.FileCount
	}
	return 0
}

type DiskStatus struct {
	Dir  string `protobuf:"bytes,1,opt,name=dir" json:"dir,omitempty"`
	All  uint64 `protobuf:"varint,2,opt,name=all" json:"all,omitempty"`
	Used uint64 `protobuf:"varint,3,opt,name=used" json:"used,omitempty"`
	Free uint64 `protobuf:"varint,4,opt,name=free" json:"free,omitempty"`
}

func (m *DiskStatus) Reset()                    { *m = DiskStatus{} }
func (m *DiskStatus) String() string            { return proto.CompactTextString(m) }
func (*DiskStatus) ProtoMessage()               {}
func (*DiskStatus) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} }

func (m *DiskStatus) GetDir() string {
	if m != nil {
		return m.Dir
	}
	return ""
}

func (m *DiskStatus) GetAll() uint64 {
	if m != nil {
		return m.All
	}
	return 0
}

func (m *DiskStatus) GetUsed() uint64 {
	if m != nil {
		return m.Used
	}
	return 0
}

func (m *DiskStatus) GetFree() uint64 {
	if m != nil {
		return m.Free
	}
	return 0
}

type MemStatus struct {
	Goroutines int32  `protobuf:"varint,1,opt,name=goroutines" json:"goroutines,omitempty"`
	All        uint64 `protobuf:"varint,2,opt,name=all" json:"all,omitempty"`
	Used       uint64 `protobuf:"varint,3,opt,name=used" json:"used,omitempty"`
	Free       uint64 `protobuf:"varint,4,opt,name=free" json:"free,omitempty"`
	Self       uint64 `protobuf:"varint,5,opt,name=self" json:"self,omitempty"`
	Heap       uint64 `protobuf:"varint,6,opt,name=heap" json:"heap,omitempty"`
	Stack      uint64 `protobuf:"varint,7,opt,name=stack" json:"stack,omitempty"`
}

func (m *MemStatus) Reset()                    { *m = MemStatus{} }
func (m *MemStatus) String() string            { return proto.CompactTextString(m) }
func (*MemStatus) ProtoMessage()               {}
func (*MemStatus) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{33} }

func (m *MemStatus) GetGoroutines() int32 {
	if m != nil {
		return m.Goroutines
	}
	return 0
}

func (m *MemStatus) GetAll() uint64 {
	if m != nil {
		return m.All
	}
	return 0
}

func (m *MemStatus) GetUsed() uint64 {
	if m != nil {
		return m.Used
	}
	return 0
}

func (m *MemStatus) GetFree() uint64 {
	if m != nil {
		return m.Free
	}
	return 0
}

func (m *MemStatus) GetSelf() uint64 {
	if m != nil {
		return m.Self
	}
	return 0
}

func (m *MemStatus) GetHeap() uint64 {
	if m != nil {
		return m.Heap
	}
	return 0
}

func (m *MemStatus) GetStack() uint64 {
	if m != nil {
		return m.Stack
	}
	return 0
}

func init() {
	proto.RegisterType((*BatchDeleteRequest)(nil), "volume_server_pb.BatchDeleteRequest")
	proto.RegisterType((*BatchDeleteResponse)(nil), "volume_server_pb.BatchDeleteResponse")
	proto.RegisterType((*DeleteResult)(nil), "volume_server_pb.DeleteResult")
	proto.RegisterType((*Empty)(nil), "volume_server_pb.Empty")
	proto.RegisterType((*VacuumVolumeCheckRequest)(nil), "volume_server_pb.VacuumVolumeCheckRequest")
	proto.RegisterType((*VacuumVolumeCheckResponse)(nil), "volume_server_pb.VacuumVolumeCheckResponse")
	proto.RegisterType((*VacuumVolumeCompactRequest)(nil), "volume_server_pb.VacuumVolumeCompactRequest")
	proto.RegisterType((*VacuumVolumeCompactResponse)(nil), "volume_server_pb.VacuumVolumeCompactResponse")
	proto.RegisterType((*VacuumVolumeCommitRequest)(nil), "volume_server_pb.VacuumVolumeCommitRequest")
	proto.RegisterType((*VacuumVolumeCommitResponse)(nil), "volume_server_pb.VacuumVolumeCommitResponse")
	proto.RegisterType((*VacuumVolumeCleanupRequest)(nil), "volume_server_pb.VacuumVolumeCleanupRequest")
	proto.RegisterType((*VacuumVolumeCleanupResponse)(nil), "volume_server_pb.VacuumVolumeCleanupResponse")
	proto.RegisterType((*DeleteCollectionRequest)(nil), "volume_server_pb.DeleteCollectionRequest")
	proto.RegisterType((*DeleteCollectionResponse)(nil), "volume_server_pb.DeleteCollectionResponse")
	proto.RegisterType((*AllocateVolumeRequest)(nil), "volume_server_pb.AllocateVolumeRequest")
	proto.RegisterType((*AllocateVolumeResponse)(nil), "volume_server_pb.AllocateVolumeResponse")
	proto.RegisterType((*VolumeSyncStatusRequest)(nil), "volume_server_pb.VolumeSyncStatusRequest")
	proto.RegisterType((*VolumeSyncStatusResponse)(nil), "volume_server_pb.VolumeSyncStatusResponse")
	proto.RegisterType((*VolumeFollowRequest)(nil), "volume_server_pb.VolumeFollowRequest")
	proto.RegisterType((*VolumeFollowResponse)(nil), "volume_server_pb.VolumeFollowResponse")
	proto.RegisterType((*VolumeMountRequest)(nil), "volume_server_pb.VolumeMountRequest")
	proto.RegisterType((*VolumeMountResponse)(nil), "volume_server_pb.VolumeMountResponse")
	proto.RegisterType((*VolumeUnmountRequest)(nil), "volume_server_pb.VolumeUnmountRequest")
	proto.RegisterType((*VolumeUnmountResponse)(nil), "volume_server_pb.VolumeUnmountResponse")
	proto.RegisterType((*VolumeDeleteRequest)(nil), "volume_server_pb.VolumeDeleteRequest")
	proto.RegisterType((*VolumeDeleteResponse)(nil), "volume_server_pb.VolumeDeleteResponse")
	proto.RegisterType((*ReplicateVolumeRequest)(nil), "volume_server_pb.ReplicateVolumeRequest")
	proto.RegisterType((*ReplicateVolumeResponse)(nil), "volume_server_pb.ReplicateVolumeResponse")
	proto.RegisterType((*CopyFileRequest)(nil), "volume_server_pb.CopyFileRequest")
	proto.RegisterType((*CopyFileResponse)(nil), "volume_server_pb.CopyFileResponse")
	proto.RegisterType((*ReadVolumeFileStatusRequest)(nil), "volume_server_pb.ReadVolumeFileStatusRequest")
	proto.RegisterType((*ReadVolumeFileStatusResponse)(nil), "volume_server_pb.ReadVolumeFileStatusResponse")
	proto.RegisterType((*DiskStatus)(nil), "volume_server_pb.DiskStatus")
	proto.RegisterType((*MemStatus)(nil), "volume_server_pb.MemStatus")
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConn

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion4

// Client API for VolumeServer service

type VolumeServerClient interface {
	// Experts only: takes multiple fid parameters. This function does not propagate deletes to replicas.
	BatchDelete(ctx context.Context, in *BatchDeleteRequest, opts ...grpc.CallOption) (*BatchDeleteResponse, error)
	VacuumVolumeCheck(ctx context.Context, in *VacuumVolumeCheckRequest, opts ...grpc.CallOption) (*VacuumVolumeCheckResponse, error)
	VacuumVolumeCompact(ctx context.Context, in *VacuumVolumeCompactRequest, opts ...grpc.CallOption) (*VacuumVolumeCompactResponse, error)
	VacuumVolumeCommit(ctx context.Context, in *VacuumVolumeCommitRequest, opts ...grpc.CallOption) (*VacuumVolumeCommitResponse, error)
	VacuumVolumeCleanup(ctx context.Context, in *VacuumVolumeCleanupRequest, opts ...grpc.CallOption) (*VacuumVolumeCleanupResponse, error)
	DeleteCollection(ctx context.Context, in *DeleteCollectionRequest, opts ...grpc.CallOption) (*DeleteCollectionResponse, error)
	AllocateVolume(ctx context.Context, in *AllocateVolumeRequest, opts ...grpc.CallOption) (*AllocateVolumeResponse, error)
	VolumeSyncStatus(ctx context.Context, in *VolumeSyncStatusRequest, opts ...grpc.CallOption) (*VolumeSyncStatusResponse, error)
	VolumeFollow(ctx context.Context, in *VolumeFollowRequest, opts ...grpc.CallOption) (VolumeServer_VolumeFollowClient, error)
	VolumeMount(ctx context.Context, in *VolumeMountRequest, opts ...grpc.CallOption) (*VolumeMountResponse, error)
	VolumeUnmount(ctx context.Context, in *VolumeUnmountRequest, opts ...grpc.CallOption) (*VolumeUnmountResponse, error)
	VolumeDelete(ctx context.Context, in *VolumeDeleteRequest, opts ...grpc.CallOption) (*VolumeDeleteResponse, error)
	ReplicateVolume(ctx context.Context, in *ReplicateVolumeRequest, opts ...grpc.CallOption) (*ReplicateVolumeResponse, error)
	ReadVolumeFileStatus(ctx context.Context, in *ReadVolumeFileStatusRequest, opts ...grpc.CallOption) (*ReadVolumeFileStatusResponse, error)
	CopyFile(ctx context.Context, in *CopyFileRequest, opts ...grpc.CallOption) (VolumeServer_CopyFileClient, error)
}

type volumeServerClient struct {
	cc *grpc.ClientConn
}

func NewVolumeServerClient(cc *grpc.ClientConn) VolumeServerClient {
	return &volumeServerClient{cc}
}

func (c *volumeServerClient) BatchDelete(ctx context.Context, in *BatchDeleteRequest, opts ...grpc.CallOption) (*BatchDeleteResponse, error) {
	out := new(BatchDeleteResponse)
	err := grpc.Invoke(ctx, "/volume_server_pb.VolumeServer/BatchDelete", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *volumeServerClient) VacuumVolumeCheck(ctx context.Context, in *VacuumVolumeCheckRequest, opts ...grpc.CallOption) (*VacuumVolumeCheckResponse, error) {
	out := new(VacuumVolumeCheckResponse)
	err := grpc.Invoke(ctx, "/volume_server_pb.VolumeServer/VacuumVolumeCheck", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *volumeServerClient) VacuumVolumeCompact(ctx context.Context, in *VacuumVolumeCompactRequest, opts ...grpc.CallOption) (*VacuumVolumeCompactResponse, error) {
	out := new(VacuumVolumeCompactResponse)
	err := grpc.Invoke(ctx, "/volume_server_pb.VolumeServer/VacuumVolumeCompact", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *volumeServerClient) VacuumVolumeCommit(ctx context.Context, in *VacuumVolumeCommitRequest, opts ...grpc.CallOption) (*VacuumVolumeCommitResponse, error) {
	out := new(VacuumVolumeCommitResponse)
	err := grpc.Invoke(ctx, "/volume_server_pb.VolumeServer/VacuumVolumeCommit", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *volumeServerClient) VacuumVolumeCleanup(ctx context.Context, in *VacuumVolumeCleanupRequest, opts ...grpc.CallOption) (*VacuumVolumeCleanupResponse, error) {
	out := new(VacuumVolumeCleanupResponse)
	err := grpc.Invoke(ctx, "/volume_server_pb.VolumeServer/VacuumVolumeCleanup", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *volumeServerClient) DeleteCollection(ctx context.Context, in *DeleteCollectionRequest, opts ...grpc.CallOption) (*DeleteCollectionResponse, error) {
	out := new(DeleteCollectionResponse)
	err := grpc.Invoke(ctx, "/volume_server_pb.VolumeServer/DeleteCollection", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *volumeServerClient) AllocateVolume(ctx context.Context, in *AllocateVolumeRequest, opts ...grpc.CallOption) (*AllocateVolumeResponse, error) {
	out := new(AllocateVolumeResponse)
	err := grpc.Invoke(ctx, "/volume_server_pb.VolumeServer/AllocateVolume", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *volumeServerClient) VolumeSyncStatus(ctx context.Context, in *VolumeSyncStatusRequest, opts ...grpc.CallOption) (*VolumeSyncStatusResponse, error) {
	out := new(VolumeSyncStatusResponse)
	err := grpc.Invoke(ctx, "/volume_server_pb.VolumeServer/VolumeSyncStatus", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *volumeServerClient) VolumeFollow(ctx context.Context, in *VolumeFollowRequest, opts ...grpc.CallOption) (VolumeServer_VolumeFollowClient, error) {
	stream, err := grpc.NewClientStream(ctx, &_VolumeServer_serviceDesc.Streams[0], c.cc, "/volume_server_pb.VolumeServer/VolumeFollow", opts...)
	if err != nil {
		return nil, err
	}
	x := &volumeServerVolumeFollowClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type VolumeServer_VolumeFollowClient interface {
	Recv() (*VolumeFollowResponse, error)
	grpc.ClientStream
}

type volumeServerVolumeFollowClient struct {
	grpc.ClientStream
}

func (x *volumeServerVolumeFollowClient) Recv() (*VolumeFollowResponse, error) {
	m := new(VolumeFollowResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *volumeServerClient) VolumeMount(ctx context.Context, in *VolumeMountRequest, opts ...grpc.CallOption) (*VolumeMountResponse, error) {
	out := new(VolumeMountResponse)
	err := grpc.Invoke(ctx, "/volume_server_pb.VolumeServer/VolumeMount", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *volumeServerClient) VolumeUnmount(ctx context.Context, in *VolumeUnmountRequest, opts ...grpc.CallOption) (*VolumeUnmountResponse, error) {
	out := new(VolumeUnmountResponse)
	err := grpc.Invoke(ctx, "/volume_server_pb.VolumeServer/VolumeUnmount", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *volumeServerClient) VolumeDelete(ctx context.Context, in *VolumeDeleteRequest, opts ...grpc.CallOption) (*VolumeDeleteResponse, error) {
	out := new(VolumeDeleteResponse)
	err := grpc.Invoke(ctx, "/volume_server_pb.VolumeServer/VolumeDelete", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *volumeServerClient) ReplicateVolume(ctx context.Context, in *ReplicateVolumeRequest, opts ...grpc.CallOption) (*ReplicateVolumeResponse, error) {
	out := new(ReplicateVolumeResponse)
	err := grpc.Invoke(ctx, "/volume_server_pb.VolumeServer/ReplicateVolume", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *volumeServerClient) ReadVolumeFileStatus(ctx context.Context, in *ReadVolumeFileStatusRequest, opts ...grpc.CallOption) (*ReadVolumeFileStatusResponse, error) {
	out := new(ReadVolumeFileStatusResponse)
	err := grpc.Invoke(ctx, "/volume_server_pb.VolumeServer/ReadVolumeFileStatus", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *volumeServerClient) CopyFile(ctx context.Context, in *CopyFileRequest, opts ...grpc.CallOption) (VolumeServer_CopyFileClient, error) {
	stream, err := grpc.NewClientStream(ctx, &_VolumeServer_serviceDesc.Streams[1], c.cc, "/volume_server_pb.VolumeServer/CopyFile", opts...)
	if err != nil {
		return nil, err
	}
	x := &volumeServerCopyFileClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type VolumeServer_CopyFileClient interface {
	Recv() (*CopyFileResponse, error)
	grpc.ClientStream
}

type volumeServerCopyFileClient struct {
	grpc.ClientStream
}

func (x *volumeServerCopyFileClient) Recv() (*CopyFileResponse, error) {
	m := new(CopyFileResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

// Server API for VolumeServer service

type VolumeServerServer interface {
	// Experts only: takes multiple fid parameters. This function does not propagate deletes to replicas.
	BatchDelete(context.Context, *BatchDeleteRequest) (*BatchDeleteResponse, error)
	VacuumVolumeCheck(context.Context, *VacuumVolumeCheckRequest) (*VacuumVolumeCheckResponse, error)
	VacuumVolumeCompact(context.Context, *VacuumVolumeCompactRequest) (*VacuumVolumeCompactResponse, error)
	VacuumVolumeCommit(context.Context, *VacuumVolumeCommitRequest) (*VacuumVolumeCommitResponse, error)
	VacuumVolumeCleanup(context.Context, *VacuumVolumeCleanupRequest) (*VacuumVolumeCleanupResponse, error)
	DeleteCollection(context.Context, *DeleteCollectionRequest) (*DeleteCollectionResponse, error)
	AllocateVolume(context.Context, *AllocateVolumeRequest) (*AllocateVolumeResponse, error)
	VolumeSyncStatus(context.Context, *VolumeSyncStatusRequest) (*VolumeSyncStatusResponse, error)
	VolumeFollow(*VolumeFollowRequest, VolumeServer_VolumeFollowServer) error
	VolumeMount(context.Context, *VolumeMountRequest) (*VolumeMountResponse, error)
	VolumeUnmount(context.Context, *VolumeUnmountRequest) (*VolumeUnmountResponse, error)
	VolumeDelete(context.Context, *VolumeDeleteRequest) (*VolumeDeleteResponse, error)
	ReplicateVolume(context.Context, *ReplicateVolumeRequest) (*ReplicateVolumeResponse, error)
	ReadVolumeFileStatus(context.Context, *ReadVolumeFileStatusRequest) (*ReadVolumeFileStatusResponse, error)
	CopyFile(*CopyFileRequest, VolumeServer_CopyFileServer) error
}

func RegisterVolumeServerServer(s *grpc.Server, srv VolumeServerServer) {
	s.RegisterService(&_VolumeServer_serviceDesc, srv)
}

func _VolumeServer_BatchDelete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BatchDeleteRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VolumeServerServer).BatchDelete(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/volume_server_pb.VolumeServer/BatchDelete",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VolumeServerServer).BatchDelete(ctx, req.(*BatchDeleteRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VolumeServer_VacuumVolumeCheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(VacuumVolumeCheckRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VolumeServerServer).VacuumVolumeCheck(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/volume_server_pb.VolumeServer/VacuumVolumeCheck",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VolumeServerServer).VacuumVolumeCheck(ctx, req.(*VacuumVolumeCheckRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VolumeServer_VacuumVolumeCompact_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(VacuumVolumeCompactRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VolumeServerServer).VacuumVolumeCompact(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/volume_server_pb.VolumeServer/VacuumVolumeCompact",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VolumeServerServer).VacuumVolumeCompact(ctx, req.(*VacuumVolumeCompactRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VolumeServer_VacuumVolumeCommit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(VacuumVolumeCommitRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VolumeServerServer).VacuumVolumeCommit(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/volume_server_pb.VolumeServer/VacuumVolumeCommit",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VolumeServerServer).VacuumVolumeCommit(ctx, req.(*VacuumVolumeCommitRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VolumeServer_VacuumVolumeCleanup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(VacuumVolumeCleanupRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VolumeServerServer).VacuumVolumeCleanup(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/volume_server_pb.VolumeServer/VacuumVolumeCleanup",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VolumeServerServer).VacuumVolumeCleanup(ctx, req.(*VacuumVolumeCleanupRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VolumeServer_DeleteCollection_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteCollectionRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VolumeServerServer).DeleteCollection(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/volume_server_pb.VolumeServer/DeleteCollection",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VolumeServerServer).DeleteCollection(ctx, req.(*DeleteCollectionRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VolumeServer_AllocateVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AllocateVolumeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VolumeServerServer).AllocateVolume(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/volume_server_pb.VolumeServer/AllocateVolume",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VolumeServerServer).AllocateVolume(ctx, req.(*AllocateVolumeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VolumeServer_VolumeSyncStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(VolumeSyncStatusRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VolumeServerServer).VolumeSyncStatus(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/volume_server_pb.VolumeServer/VolumeSyncStatus",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VolumeServerServer).VolumeSyncStatus(ctx, req.(*VolumeSyncStatusRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VolumeServer_VolumeFollow_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(VolumeFollowRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(VolumeServerServer).VolumeFollow(m, &volumeServerVolumeFollowServer{stream})
}

type VolumeServer_VolumeFollowServer interface {
	Send(*VolumeFollowResponse) error
	grpc.ServerStream
}

type volumeServerVolumeFollowServer struct {
	grpc.ServerStream
}

func (x *volumeServerVolumeFollowServer) Send(m *VolumeFollowResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _VolumeServer_VolumeMount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(VolumeMountRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VolumeServerServer).VolumeMount(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/volume_server_pb.VolumeServer/VolumeMount",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VolumeServerServer).VolumeMount(ctx, req.(*VolumeMountRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VolumeServer_VolumeUnmount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(VolumeUnmountRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VolumeServerServer).VolumeUnmount(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/volume_server_pb.VolumeServer/VolumeUnmount",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VolumeServerServer).VolumeUnmount(ctx, req.(*VolumeUnmountRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VolumeServer_VolumeDelete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(VolumeDeleteRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VolumeServerServer).VolumeDelete(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/volume_server_pb.VolumeServer/VolumeDelete",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VolumeServerServer).VolumeDelete(ctx, req.(*VolumeDeleteRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VolumeServer_ReplicateVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReplicateVolumeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VolumeServerServer).ReplicateVolume(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/volume_server_pb.VolumeServer/ReplicateVolume",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VolumeServerServer).ReplicateVolume(ctx, req.(*ReplicateVolumeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VolumeServer_ReadVolumeFileStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReadVolumeFileStatusRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VolumeServerServer).ReadVolumeFileStatus(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/volume_server_pb.VolumeServer/ReadVolumeFileStatus",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VolumeServerServer).ReadVolumeFileStatus(ctx, req.(*ReadVolumeFileStatusRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VolumeServer_CopyFile_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(CopyFileRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(VolumeServerServer).CopyFile(m, &volumeServerCopyFileServer{stream})
}

type VolumeServer_CopyFileServer interface {
	Send(*CopyFileResponse) error
	grpc.ServerStream
}

type volumeServerCopyFileServer struct {
	grpc.ServerStream
}

func (x *volumeServerCopyFileServer) Send(m *CopyFileResponse) error {
	return x.ServerStream.SendMsg(m)
}

var _VolumeServer_serviceDesc = grpc.ServiceDesc{
	ServiceName: "volume_server_pb.VolumeServer",
	HandlerType: (*VolumeServerServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "BatchDelete",
			Handler:    _VolumeServer_BatchDelete_Handler,
		},
		{
			MethodName: "VacuumVolumeCheck",
			Handler:    _VolumeServer_VacuumVolumeCheck_Handler,
		},
		{
			MethodName: "VacuumVolumeCompact",
			Handler:    _VolumeServer_VacuumVolumeCompact_Handler,
		},
		{
			MethodName: "VacuumVolumeCommit",
			Handler:    _VolumeServer_VacuumVolumeCommit_Handler,
		},
		{
			MethodName: "VacuumVolumeCleanup",
			Handler:    _VolumeServer_VacuumVolumeCleanup_Handler,
		},
		{
			MethodName: "DeleteCollection",
			Handler:    _VolumeServer_DeleteCollection_Handler,
		},
		{
			MethodName: "AllocateVolume",
			Handler:    _VolumeServer_AllocateVolume_Handler,
		},
		{
			MethodName: "VolumeSyncStatus",
			Handler:    _VolumeServer_VolumeSyncStatus_Handler,
		},
		{
			MethodName: "VolumeMount",
			Handler:    _VolumeServer_VolumeMount_Handler,
		},
		{
			MethodName: "VolumeUnmount",
			Handler:    _VolumeServer_VolumeUnmount_Handler,
		},
		{
			MethodName: "VolumeDelete",
			Handler:    _VolumeServer_VolumeDelete_Handler,
		},
		{
			MethodName: "ReplicateVolume",
			Handler:    _VolumeServer_ReplicateVolume_Handler,
		},
		{
			MethodName: "ReadVolumeFileStatus",
			Handler:    _VolumeServer_ReadVolumeFileStatus_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "VolumeFollow",
			Handler:       _VolumeServer_VolumeFollow_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "CopyFile",
			Handler:       _VolumeServer_CopyFile_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "volume_server.proto",
}

func init() { proto.RegisterFile("volume_server.proto", fileDescriptor0) }

var fileDescriptor0 = []byte{
	// 1183 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x58, 0x5b, 0x73, 0xdb, 0xc4,
	0x17, 0x8f, 0x6a, 0x3b, 0x89, 0x8f, 0x9d, 0xc6, 0xff, 0xcd, 0x4d, 0x51, 0xda, 0xfc, 0xdd, 0x85,
	0xb4, 0x4e, 0x9b, 0x06, 0x48, 0x07, 0x68, 0x79, 0x02, 0x12, 0x3a, 0xe4, 0xa1, 0x74, 0x46, 0xa1,
	0x1d, 0x66, 0x60, 0x46, 0xb3, 0x91, 0x36, 0x89, 0x26, 0xb2, 0x56, 0x95, 0x56, 0x69, 0xc3, 0xd7,
	0xe1, 0x8d, 0x57, 0x5e, 0xf9, 0x66, 0xcc, 0x30, 0xcc, 0x5e, 0xa4, 0x58, 0x17, 0xd7, 0xe2, 0xf2,
	0xb6, 0x3a, 0x7b, 0xce, 0xef, 0x5c, 0xf6, 0x9c, 0xdd, 0x9f, 0x0d, 0x2b, 0x57, 0x2c, 0x48, 0xc7,
	0xd4, 0x49, 0x68, 0x7c, 0x45, 0xe3, 0xfd, 0x28, 0x66, 0x9c, 0xa1, 0x41, 0x41, 0xe8, 0x44, 0xa7,
	0xf8, 0x23, 0x40, 0x5f, 0x13, 0xee, 0x5e, 0x1c, 0xd1, 0x80, 0x72, 0x6a, 0xd3, 0x37, 0x29, 0x4d,
	0x38, 0xda, 0x84, 0xc5, 0x33, 0x3f, 0xa0, 0x8e, 0xef, 0x25, 0xa6, 0x31, 0x6c, 0x8d, 0xba, 0xf6,
	0x82, 0xf8, 0x3e, 0xf6, 0x12, 0xfc, 0x12, 0x56, 0x0a, 0x06, 0x49, 0xc4, 0xc2, 0x84, 0xa2, 0xa7,
	0xb0, 0x10, 0xd3, 0x24, 0x0d, 0xb8, 0x32, 0xe8, 0x1d, 0x6c, 0xef, 0x97, 0x7d, 0xed, 0xe7, 0x26,
	0x69, 0xc0, 0xed, 0x4c, 0x1d, 0xfb, 0xd0, 0x9f, 0xdc, 0x40, 0x1b, 0xb0, 0xa0, 0x7d, 0x9b, 0xc6,
	0xd0, 0x18, 0x75, 0xed, 0x79, 0xe5, 0x1a, 0xad, 0xc3, 0x7c, 0xc2, 0x09, 0x4f, 0x13, 0xf3, 0xd6,
	0xd0, 0x18, 0x75, 0x6c, 0xfd, 0x85, 0x56, 0xa1, 0x43, 0xe3, 0x98, 0xc5, 0x66, 0x4b, 0xaa, 0xab,
	0x0f, 0x84, 0xa0, 0x9d, 0xf8, 0x3f, 0x53, 0xb3, 0x3d, 0x34, 0x46, 0x4b, 0xb6, 0x5c, 0xe3, 0x05,
	0xe8, 0x7c, 0x33, 0x8e, 0xf8, 0x35, 0xfe, 0x1c, 0xcc, 0xd7, 0xc4, 0x4d, 0xd3, 0xf1, 0x6b, 0x19,
	0xe3, 0xe1, 0x05, 0x75, 0x2f, 0xb3, 0xdc, 0xb7, 0xa0, 0xab, 0x23, 0xd7, 0x11, 0x2c, 0xd9, 0x8b,
	0x4a, 0x70, 0xec, 0xe1, 0x2f, 0x61, 0xb3, 0xc6, 0x50, 0xd7, 0xe0, 0x03, 0x58, 0x3a, 0x27, 0xf1,
	0x29, 0x39, 0xa7, 0x4e, 0x4c, 0xb8, 0xcf, 0xa4, 0xb5, 0x61, 0xf7, 0xb5, 0xd0, 0x16, 0x32, 0xfc,
	0x23, 0x58, 0x05, 0x04, 0x36, 0x8e, 0x88, 0xcb, 0x9b, 0x38, 0x47, 0x43, 0xe8, 0x45, 0x31, 0x25,
	0x41, 0xc0, 0x5c, 0xc2, 0xa9, 0xac, 0x42, 0xcb, 0x9e, 0x14, 0xe1, 0xbb, 0xb0, 0x55, 0x0b, 0xae,
	0x02, 0xc4, 0x4f, 0x4b, 0xd1, 0xb3, 0xf1, 0xd8, 0x6f, 0xe4, 0x1a, 0xdf, 0xa9, 0x44, 0x2d, 0x2d,
	0x35, 0xee, 0xb3, 0xd2, 0x6e, 0x40, 0x49, 0x98, 0x46, 0x8d, 0x80, 0xcb, 0x11, 0x67, 0xa6, 0x39,
	0xf2, 0x86, 0x6a, 0x8e, 0x43, 0x16, 0x04, 0xd4, 0xe5, 0x3e, 0x0b, 0x33, 0xd8, 0x6d, 0x00, 0x37,
	0x17, 0xea, 0x56, 0x99, 0x90, 0x60, 0x0b, 0xcc, 0xaa, 0xa9, 0x86, 0xfd, 0xd5, 0x80, 0xb5, 0xaf,
	0x74, 0xd1, 0x94, 0xe3, 0x46, 0x07, 0x50, 0x74, 0x79, 0xab, 0xec, 0xb2, 0x7c, 0x40, 0xad, 0xca,
	0x01, 0x09, 0x8d, 0x98, 0x46, 0x81, 0xef, 0x12, 0x09, 0xd1, 0x96, 0x10, 0x93, 0x22, 0x34, 0x80,
	0x16, 0xe7, 0x81, 0xd9, 0x91, 0x3b, 0x62, 0x89, 0x4d, 0x58, 0x2f, 0xc7, 0xaa, 0xd3, 0xf8, 0x0c,
	0x36, 0x94, 0xe4, 0xe4, 0x3a, 0x74, 0x4f, 0xe4, 0x34, 0x34, 0x2a, 0xfa, 0x1f, 0x06, 0x98, 0x55,
	0x43, 0xdd, 0xc5, 0xff, 0xb6, 0x02, 0x7f, 0x37, 0x3f, 0xf4, 0x7f, 0xe8, 0x71, 0xe2, 0x07, 0x0e,
	0x3b, 0x3b, 0x4b, 0x28, 0x37, 0xe7, 0x87, 0xc6, 0xa8, 0x6d, 0x83, 0x10, 0xbd, 0x94, 0x12, 0xb4,
	0x0b, 0x03, 0x57, 0x75, 0xb2, 0x13, 0xd3, 0x2b, 0x3f, 0x11, 0xc8, 0x0b, 0x32, 0xb0, 0x65, 0x37,
	0xeb, 0x70, 0x25, 0x46, 0x18, 0x96, 0x7c, 0xef, 0x9d, 0x23, 0x2f, 0x10, 0x39, 0xfe, 0x8b, 0x12,
	0xad, 0xe7, 0x7b, 0xef, 0x9e, 0xfb, 0x01, 0x3d, 0x11, 0xb7, 0xc0, 0xb7, 0xb0, 0xa2, 0x92, 0x7f,
	0xce, 0x82, 0x80, 0xbd, 0x6d, 0x74, 0xf2, 0xab, 0xd0, 0x49, 0xfc, 0xd0, 0x55, 0x43, 0xd7, 0xb6,
	0xd5, 0x07, 0x7e, 0x06, 0xab, 0x45, 0x24, 0x5d, 0xc2, 0x7b, 0xd0, 0x97, 0x11, 0xb8, 0x2c, 0xe4,
	0x34, 0xe4, 0x12, 0xad, 0x6f, 0xf7, 0x84, 0xec, 0x50, 0x89, 0xf0, 0x27, 0x80, 0x94, 0xe9, 0x0b,
	0x96, 0x86, 0xcd, 0x66, 0x70, 0x2d, 0x8b, 0x5b, 0x9b, 0xe8, 0x26, 0x78, 0x92, 0x05, 0xf1, 0x2a,
	0x1c, 0x37, 0xc6, 0xda, 0x80, 0xb5, 0x92, 0x91, 0x46, 0x3b, 0xc8, 0x9c, 0x14, 0x1f, 0x84, 0xf7,
	0x82, 0xad, 0x67, 0x11, 0x14, 0xdf, 0x04, 0xfc, 0x9b, 0x01, 0xeb, 0xb6, 0x3e, 0xfa, 0xff, 0x78,
	0xcc, 0x26, 0x9b, 0xac, 0x35, 0xb5, 0xc9, 0xda, 0x37, 0x4d, 0x36, 0x82, 0x41, 0xc2, 0xd2, 0xd8,
	0xa5, 0x8e, 0x47, 0x38, 0x71, 0x42, 0xe6, 0x51, 0xdd, 0x83, 0xb7, 0x95, 0xfc, 0x88, 0x70, 0xf2,
	0x1d, 0xf3, 0x28, 0xde, 0x84, 0x8d, 0x4a, 0xd0, 0x3a, 0xa1, 0x10, 0x96, 0x0f, 0x59, 0x74, 0x2d,
	0x3a, 0xa9, 0x61, 0x22, 0x3d, 0x3f, 0x71, 0xb2, 0x86, 0x94, 0x99, 0x2c, 0xda, 0x5d, 0x3f, 0x39,
	0x56, 0xdd, 0xa8, 0xf7, 0x3d, 0xc2, 0xd5, 0x7e, 0x2b, 0xdb, 0x3f, 0x22, 0x5c, 0xec, 0xe3, 0x4f,
	0x61, 0x70, 0xe3, 0xaf, 0x79, 0x6f, 0x7d, 0x01, 0x5b, 0x36, 0x25, 0x9e, 0x6e, 0x4d, 0xd1, 0xf6,
	0xcd, 0xaf, 0x86, 0x3f, 0x0d, 0xb8, 0x53, 0x6f, 0xdc, 0xe4, 0x7a, 0xd8, 0x03, 0x94, 0x8f, 0x1f,
	0xf7, 0xc7, 0x34, 0xe1, 0x64, 0x1c, 0xe9, 0x99, 0x19, 0xe8, 0x19, 0xfc, 0x3e, 0x93, 0x57, 0x87,
	0xb5, 0x55, 0x19, 0x56, 0x81, 0x98, 0xd5, 0x67, 0x02, 0xb1, 0xad, 0x10, 0x3d, 0x55, 0xa7, 0x02,
	0x62, 0xae, 0x2d, 0x11, 0x3b, 0x0a, 0x51, 0x2b, 0x4a, 0xc4, 0xbb, 0x00, 0xba, 0x80, 0x69, 0x98,
	0xdd, 0x36, 0x5d, 0x55, 0xbe, 0x34, 0xe4, 0xf8, 0x07, 0x80, 0x23, 0x3f, 0xb9, 0x54, 0x59, 0x8b,
	0x46, 0xf2, 0xfc, 0x58, 0xbf, 0x2e, 0x62, 0x29, 0x24, 0x24, 0x08, 0x74, 0x4e, 0x62, 0x29, 0x98,
	0x46, 0x9a, 0x50, 0x4f, 0x47, 0x2f, 0xd7, 0x42, 0x76, 0x16, 0x53, 0xaa, 0x03, 0x95, 0x6b, 0xfc,
	0x8b, 0x01, 0xdd, 0x17, 0x74, 0xac, 0x91, 0xb7, 0x01, 0xce, 0x59, 0xcc, 0x52, 0xee, 0x87, 0x34,
	0x91, 0x0e, 0x3a, 0xf6, 0x84, 0xe4, 0x9f, 0xfb, 0x91, 0xcc, 0x87, 0x06, 0x67, 0x3a, 0x77, 0xb9,
	0x16, 0xb2, 0x0b, 0x4a, 0x22, 0x9d, 0xae, 0x5c, 0xcb, 0x3b, 0x8d, 0x13, 0xf7, 0x52, 0xde, 0xa5,
	0xe2, 0x4e, 0x13, 0x1f, 0x07, 0xbf, 0xf7, 0xa1, 0xaf, 0xdf, 0x06, 0x49, 0xdc, 0xd0, 0x4f, 0xd0,
	0x9b, 0x20, 0x7c, 0xe8, 0xc3, 0x2a, 0xaf, 0xab, 0x12, 0x48, 0x6b, 0x67, 0x86, 0x96, 0x1e, 0xa8,
	0x39, 0x14, 0xc2, 0xff, 0x2a, 0x84, 0x0a, 0x3d, 0xac, 0x5a, 0x4f, 0xa3, 0x6b, 0xd6, 0xa3, 0x46,
	0xba, 0xb9, 0x3f, 0x0e, 0x2b, 0x35, 0x0c, 0x09, 0xed, 0xcd, 0x40, 0x29, 0xb0, 0x34, 0xeb, 0x71,
	0x43, 0xed, 0xdc, 0xeb, 0x1b, 0x40, 0x55, 0xfa, 0x84, 0x1e, 0xcd, 0x84, 0xb9, 0xa1, 0x67, 0xd6,
	0x5e, 0x33, 0xe5, 0xa9, 0x89, 0x2a, 0x62, 0x35, 0x33, 0xd1, 0x02, 0x75, 0x9b, 0x99, 0x68, 0x89,
	0xad, 0xcd, 0xa1, 0x4b, 0x18, 0x94, 0x49, 0x17, 0xda, 0x9d, 0xf6, 0x4b, 0xa0, 0xc2, 0xe9, 0xac,
	0x87, 0x4d, 0x54, 0x73, 0x67, 0x14, 0x6e, 0x17, 0x89, 0x11, 0x7a, 0x50, 0xb5, 0xaf, 0xa5, 0x79,
	0xd6, 0x68, 0xb6, 0xe2, 0x64, 0x4e, 0x65, 0xb2, 0x54, 0x97, 0xd3, 0x14, 0x26, 0x56, 0x97, 0xd3,
	0x34, 0xee, 0x85, 0xe7, 0x10, 0xc9, 0xa6, 0x4f, 0x51, 0x0a, 0xb4, 0x33, 0xcd, 0xba, 0x40, 0x5e,
	0xac, 0xfb, 0xb3, 0xd4, 0x32, 0x07, 0x1f, 0x1b, 0x62, 0xa0, 0x27, 0x78, 0x44, 0xdd, 0x40, 0x57,
	0x99, 0x89, 0xb5, 0x33, 0x43, 0x2b, 0x4f, 0xe0, 0x14, 0x96, 0x0a, 0xcc, 0x02, 0x4d, 0x0d, 0xad,
	0xc8, 0x57, 0xac, 0x07, 0x33, 0xf5, 0x72, 0x1f, 0x4e, 0x56, 0x24, 0x7d, 0x27, 0x4d, 0x0d, 0xae,
	0x78, 0x29, 0xdd, 0x9f, 0xa5, 0x96, 0x3b, 0xb8, 0x80, 0xe5, 0x12, 0x07, 0x40, 0x35, 0x1d, 0x53,
	0xcf, 0x6d, 0xac, 0xdd, 0x06, 0x9a, 0xb9, 0xa7, 0xb7, 0xb0, 0x5a, 0xf7, 0xdc, 0xa2, 0xc7, 0x75,
	0x20, 0x53, 0xdf, 0x74, 0x6b, 0xbf, 0xa9, 0x7a, 0xee, 0xf8, 0x15, 0x2c, 0x66, 0xdc, 0x02, 0xdd,
	0xab, 0x5a, 0x97, 0x78, 0x8e, 0x85, 0xdf, 0xa7, 0x72, 0xd3, 0x5c, 0xa7, 0xf3, 0xf2, 0x8f, 0x86,
	0x27, 0x7f, 0x05, 0x00, 0x00, 0xff, 0xff, 0x8c, 0xa8, 0xce, 0x0c, 0x7f, 0x10, 0x00, 0x00,
}