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

package hashdb

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	emptypb "google.golang.org/protobuf/types/known/emptypb"
	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 Persistence int32

const (
	Persistence_PERSISTENCE_CACHE_UNSPECIFIED Persistence = 0
	Persistence_PERSISTENCE_DATABASE          Persistence = 1
	Persistence_PERSISTENCE_TEMPORARY         Persistence = 2
)

// Enum value maps for Persistence.
var (
	Persistence_name = map[int32]string{
		0: "PERSISTENCE_CACHE_UNSPECIFIED",
		1: "PERSISTENCE_DATABASE",
		2: "PERSISTENCE_TEMPORARY",
	}
	Persistence_value = map[string]int32{
		"PERSISTENCE_CACHE_UNSPECIFIED": 0,
		"PERSISTENCE_DATABASE":          1,
		"PERSISTENCE_TEMPORARY":         2,
	}
)

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

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

func (Persistence) Descriptor() protoreflect.EnumDescriptor {
	return file_hashdb_proto_enumTypes[0].Descriptor()
}

func (Persistence) Type() protoreflect.EnumType {
	return &file_hashdb_proto_enumTypes[0]
}

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

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

type ResultCode_Code int32

const (
	ResultCode_CODE_UNSPECIFIED           ResultCode_Code = 0
	ResultCode_CODE_SUCCESS               ResultCode_Code = 1
	ResultCode_CODE_DB_KEY_NOT_FOUND      ResultCode_Code = 2 // Requested key was not found in database
	ResultCode_CODE_DB_ERROR              ResultCode_Code = 3 // Error connecting to database, or processing request
	ResultCode_CODE_INTERNAL_ERROR        ResultCode_Code = 4
	ResultCode_CODE_SMT_INVALID_DATA_SIZE ResultCode_Code = 14 // Invalid size for the data of MT node
)

// Enum value maps for ResultCode_Code.
var (
	ResultCode_Code_name = map[int32]string{
		0:  "CODE_UNSPECIFIED",
		1:  "CODE_SUCCESS",
		2:  "CODE_DB_KEY_NOT_FOUND",
		3:  "CODE_DB_ERROR",
		4:  "CODE_INTERNAL_ERROR",
		14: "CODE_SMT_INVALID_DATA_SIZE",
	}
	ResultCode_Code_value = map[string]int32{
		"CODE_UNSPECIFIED":           0,
		"CODE_SUCCESS":               1,
		"CODE_DB_KEY_NOT_FOUND":      2,
		"CODE_DB_ERROR":              3,
		"CODE_INTERNAL_ERROR":        4,
		"CODE_SMT_INVALID_DATA_SIZE": 14,
	}
)

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

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

func (ResultCode_Code) Descriptor() protoreflect.EnumDescriptor {
	return file_hashdb_proto_enumTypes[1].Descriptor()
}

func (ResultCode_Code) Type() protoreflect.EnumType {
	return &file_hashdb_proto_enumTypes[1]
}

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

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

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

	V0_0_1 string `protobuf:"bytes,1,opt,name=v0_0_1,json=v001,proto3" json:"v0_0_1,omitempty"`
}

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

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

func (*Version) ProtoMessage() {}

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

func (x *Version) GetV0_0_1() string {
	if x != nil {
		return x.V0_0_1
	}
	return ""
}

// *
// @dev SetRequest
// @param {old_root} - merkle-tree root
// @param {key} - key to set
// @param {value} - scalar value to set (HEX string format)
// @param {persistence} - indicates if it should be stored only in CACHE, in the SQL DATABASE, or it is just TEMPORARY and should be deleted at the flush of this batch UUID
// @param {details} - indicates if it should return all response parameters (true) or just the new root (false)
// @param {get_db_read_log} - indicates if it should return the DB reads generated during the execution of the request
// @param {batch_uuid} - indicates a unique identifier of the current batch or session; data for this batch can be stored in memory until flushed to database
// @param {tx_index} - current transaction ordinal index: 0, 1, 2...
// @param {block_index} - current block ordinal index: 0, 1, 2...
type SetRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	OldRoot      *Fea        `protobuf:"bytes,1,opt,name=old_root,json=oldRoot,proto3" json:"old_root,omitempty"`
	Key          *Fea        `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
	Value        string      `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
	Persistence  Persistence `protobuf:"varint,4,opt,name=persistence,proto3,enum=hashdb.v1.Persistence" json:"persistence,omitempty"`
	Details      bool        `protobuf:"varint,5,opt,name=details,proto3" json:"details,omitempty"`
	GetDbReadLog bool        `protobuf:"varint,6,opt,name=get_db_read_log,json=getDbReadLog,proto3" json:"get_db_read_log,omitempty"`
	BatchUuid    string      `protobuf:"bytes,7,opt,name=batch_uuid,json=batchUuid,proto3" json:"batch_uuid,omitempty"`
	TxIndex      uint64      `protobuf:"varint,8,opt,name=tx_index,json=txIndex,proto3" json:"tx_index,omitempty"`
	BlockIndex   uint64      `protobuf:"varint,9,opt,name=block_index,json=blockIndex,proto3" json:"block_index,omitempty"`
}

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

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

func (*SetRequest) ProtoMessage() {}

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

func (x *SetRequest) GetOldRoot() *Fea {
	if x != nil {
		return x.OldRoot
	}
	return nil
}

func (x *SetRequest) GetKey() *Fea {
	if x != nil {
		return x.Key
	}
	return nil
}

func (x *SetRequest) GetValue() string {
	if x != nil {
		return x.Value
	}
	return ""
}

func (x *SetRequest) GetPersistence() Persistence {
	if x != nil {
		return x.Persistence
	}
	return Persistence_PERSISTENCE_CACHE_UNSPECIFIED
}

func (x *SetRequest) GetDetails() bool {
	if x != nil {
		return x.Details
	}
	return false
}

func (x *SetRequest) GetGetDbReadLog() bool {
	if x != nil {
		return x.GetDbReadLog
	}
	return false
}

func (x *SetRequest) GetBatchUuid() string {
	if x != nil {
		return x.BatchUuid
	}
	return ""
}

func (x *SetRequest) GetTxIndex() uint64 {
	if x != nil {
		return x.TxIndex
	}
	return 0
}

func (x *SetRequest) GetBlockIndex() uint64 {
	if x != nil {
		return x.BlockIndex
	}
	return 0
}

// *
// @dev GetRequest
// @param {root} - merkle-tree root
// @param {key} - key to look for
// @param {details} - indicates if it should return all response parameters (true) or just the new root (false)
// @param {get_db_read_log} - indicates if it should return the DB reads generated during the execution of the request
// @param {batch_uuid} - indicates a unique identifier of the current batch or session; data for this batch can be stored in memory until flushed to database
type GetRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Root         *Fea   `protobuf:"bytes,1,opt,name=root,proto3" json:"root,omitempty"`
	Key          *Fea   `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
	Details      bool   `protobuf:"varint,3,opt,name=details,proto3" json:"details,omitempty"`
	GetDbReadLog bool   `protobuf:"varint,4,opt,name=get_db_read_log,json=getDbReadLog,proto3" json:"get_db_read_log,omitempty"`
	BatchUuid    string `protobuf:"bytes,5,opt,name=batch_uuid,json=batchUuid,proto3" json:"batch_uuid,omitempty"`
}

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

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

func (*GetRequest) ProtoMessage() {}

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

func (x *GetRequest) GetRoot() *Fea {
	if x != nil {
		return x.Root
	}
	return nil
}

func (x *GetRequest) GetKey() *Fea {
	if x != nil {
		return x.Key
	}
	return nil
}

func (x *GetRequest) GetDetails() bool {
	if x != nil {
		return x.Details
	}
	return false
}

func (x *GetRequest) GetGetDbReadLog() bool {
	if x != nil {
		return x.GetDbReadLog
	}
	return false
}

func (x *GetRequest) GetBatchUuid() string {
	if x != nil {
		return x.BatchUuid
	}
	return ""
}

// *
// @dev SetProgramRequest
// @param {key} - key to set
// @param {data} - Program data to store
// @param {persistence} - indicates if it should be stored only in CACHE, in the SQL DATABASE, or it is just TEMPORARY and should be deleted at the flush of this batch UUID
// @param {batch_uuid} - indicates a unique identifier of the current batch or session; data for this batch can be stored in memory until flushed to database
// @param {tx_index} - current transaction ordinal index: 0, 1, 2...
// @param {block_index} - current block ordinal index: 0, 1, 2...
type SetProgramRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Key         *Fea        `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	Data        []byte      `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
	Persistence Persistence `protobuf:"varint,3,opt,name=persistence,proto3,enum=hashdb.v1.Persistence" json:"persistence,omitempty"`
	BatchUuid   string      `protobuf:"bytes,4,opt,name=batch_uuid,json=batchUuid,proto3" json:"batch_uuid,omitempty"`
	TxIndex     uint64      `protobuf:"varint,5,opt,name=tx_index,json=txIndex,proto3" json:"tx_index,omitempty"`
	BlockIndex  uint64      `protobuf:"varint,6,opt,name=block_index,json=blockIndex,proto3" json:"block_index,omitempty"`
}

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

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

func (*SetProgramRequest) ProtoMessage() {}

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

func (x *SetProgramRequest) GetKey() *Fea {
	if x != nil {
		return x.Key
	}
	return nil
}

func (x *SetProgramRequest) GetData() []byte {
	if x != nil {
		return x.Data
	}
	return nil
}

func (x *SetProgramRequest) GetPersistence() Persistence {
	if x != nil {
		return x.Persistence
	}
	return Persistence_PERSISTENCE_CACHE_UNSPECIFIED
}

func (x *SetProgramRequest) GetBatchUuid() string {
	if x != nil {
		return x.BatchUuid
	}
	return ""
}

func (x *SetProgramRequest) GetTxIndex() uint64 {
	if x != nil {
		return x.TxIndex
	}
	return 0
}

func (x *SetProgramRequest) GetBlockIndex() uint64 {
	if x != nil {
		return x.BlockIndex
	}
	return 0
}

// *
// @dev GetProgramRequest
// @param {key} - key to get program data
// @param {batch_uuid} - indicates a unique identifier of the current batch or session; data for this batch can be stored in memory until flushed to database
type GetProgramRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Key       *Fea   `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	BatchUuid string `protobuf:"bytes,2,opt,name=batch_uuid,json=batchUuid,proto3" json:"batch_uuid,omitempty"`
}

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

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

func (*GetProgramRequest) ProtoMessage() {}

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

func (x *GetProgramRequest) GetKey() *Fea {
	if x != nil {
		return x.Key
	}
	return nil
}

func (x *GetProgramRequest) GetBatchUuid() string {
	if x != nil {
		return x.BatchUuid
	}
	return ""
}

// *
// @dev LoadDBRequest
// @param {input_db} - list of db records (MT) to load in the database
// @param {persistent} - indicates if it should be stored in the SQL database (true) or only in the memory cache (false)
// @param {state_root} - current (old) state root made up of the provided db records
type LoadDBRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	InputDb    map[string]*FeList `protobuf:"bytes,1,rep,name=input_db,json=inputDb,proto3" json:"input_db,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	Persistent bool               `protobuf:"varint,2,opt,name=persistent,proto3" json:"persistent,omitempty"`
	StateRoot  *Fea               `protobuf:"bytes,3,opt,name=state_root,json=stateRoot,proto3" json:"state_root,omitempty"`
}

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

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

func (*LoadDBRequest) ProtoMessage() {}

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

func (x *LoadDBRequest) GetInputDb() map[string]*FeList {
	if x != nil {
		return x.InputDb
	}
	return nil
}

func (x *LoadDBRequest) GetPersistent() bool {
	if x != nil {
		return x.Persistent
	}
	return false
}

func (x *LoadDBRequest) GetStateRoot() *Fea {
	if x != nil {
		return x.StateRoot
	}
	return nil
}

// *
// @dev LoadProgramDBRequest
// @param {input_program_db} - list of db records (program) to load in the database
// @param {persistent} - indicates if it should be stored in the SQL database (true) or only in the memory cache (false)
type LoadProgramDBRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	InputProgramDb map[string][]byte `protobuf:"bytes,1,rep,name=input_program_db,json=inputProgramDb,proto3" json:"input_program_db,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	Persistent     bool              `protobuf:"varint,2,opt,name=persistent,proto3" json:"persistent,omitempty"`
}

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

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

func (*LoadProgramDBRequest) ProtoMessage() {}

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

func (x *LoadProgramDBRequest) GetInputProgramDb() map[string][]byte {
	if x != nil {
		return x.InputProgramDb
	}
	return nil
}

func (x *LoadProgramDBRequest) GetPersistent() bool {
	if x != nil {
		return x.Persistent
	}
	return false
}

// *
// @dev FlushRequest
// @param {batch_uuid} - indicates a unique identifier of the current batch or session which data will be flushed to cache (and database if required)
// @param {new_state_root} - state root at this point of the execution
// @param {persistence} - indicates if it should be stored only in CACHE, in the SQL DATABASE, or it is just TEMPORARY and should be deleted at the flush of this batch UUID
type FlushRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	BatchUuid    string      `protobuf:"bytes,1,opt,name=batch_uuid,json=batchUuid,proto3" json:"batch_uuid,omitempty"`
	NewStateRoot string      `protobuf:"bytes,2,opt,name=new_state_root,json=newStateRoot,proto3" json:"new_state_root,omitempty"`
	Persistence  Persistence `protobuf:"varint,3,opt,name=persistence,proto3,enum=hashdb.v1.Persistence" json:"persistence,omitempty"`
}

func (x *FlushRequest) Reset() {
	*x = FlushRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_hashdb_proto_msgTypes[7]
		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_hashdb_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 FlushRequest.ProtoReflect.Descriptor instead.
func (*FlushRequest) Descriptor() ([]byte, []int) {
	return file_hashdb_proto_rawDescGZIP(), []int{7}
}

func (x *FlushRequest) GetBatchUuid() string {
	if x != nil {
		return x.BatchUuid
	}
	return ""
}

func (x *FlushRequest) GetNewStateRoot() string {
	if x != nil {
		return x.NewStateRoot
	}
	return ""
}

func (x *FlushRequest) GetPersistence() Persistence {
	if x != nil {
		return x.Persistence
	}
	return Persistence_PERSISTENCE_CACHE_UNSPECIFIED
}

// *
// @dev FinishTxRequest
// @param {batch_uuid} - indicates a unique identifier of the current batch or session which tx will be finished
// @param {new_state_root} - state root at this point of the execution
// @param {persistence} - indicates if it should be stored only in CACHE, in the SQL DATABASE, or it is just TEMPORARY and should be deleted at the flush of this batch UUID
type FinishTxRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	BatchUuid    string      `protobuf:"bytes,1,opt,name=batch_uuid,json=batchUuid,proto3" json:"batch_uuid,omitempty"`
	NewStateRoot string      `protobuf:"bytes,2,opt,name=new_state_root,json=newStateRoot,proto3" json:"new_state_root,omitempty"`
	Persistence  Persistence `protobuf:"varint,3,opt,name=persistence,proto3,enum=hashdb.v1.Persistence" json:"persistence,omitempty"`
}

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

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

func (*FinishTxRequest) ProtoMessage() {}

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

func (x *FinishTxRequest) GetBatchUuid() string {
	if x != nil {
		return x.BatchUuid
	}
	return ""
}

func (x *FinishTxRequest) GetNewStateRoot() string {
	if x != nil {
		return x.NewStateRoot
	}
	return ""
}

func (x *FinishTxRequest) GetPersistence() Persistence {
	if x != nil {
		return x.Persistence
	}
	return Persistence_PERSISTENCE_CACHE_UNSPECIFIED
}

// *
// @dev StartBlockRequest
// @param {batch_uuid} - indicates a unique identifier of the current batch or session which block started
// @param {new_state_root} - state root at this point of the execution
// @param {persistence} - indicates if it should be stored only in CACHE, in the SQL DATABASE, or it is just TEMPORARY and should be deleted at the flush of this batch UUID
type StartBlockRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	BatchUuid    string      `protobuf:"bytes,1,opt,name=batch_uuid,json=batchUuid,proto3" json:"batch_uuid,omitempty"`
	OldStateRoot string      `protobuf:"bytes,2,opt,name=old_state_root,json=oldStateRoot,proto3" json:"old_state_root,omitempty"`
	Persistence  Persistence `protobuf:"varint,3,opt,name=persistence,proto3,enum=hashdb.v1.Persistence" json:"persistence,omitempty"`
}

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

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

func (*StartBlockRequest) ProtoMessage() {}

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

func (x *StartBlockRequest) GetBatchUuid() string {
	if x != nil {
		return x.BatchUuid
	}
	return ""
}

func (x *StartBlockRequest) GetOldStateRoot() string {
	if x != nil {
		return x.OldStateRoot
	}
	return ""
}

func (x *StartBlockRequest) GetPersistence() Persistence {
	if x != nil {
		return x.Persistence
	}
	return Persistence_PERSISTENCE_CACHE_UNSPECIFIED
}

// *
// @dev FinishBlockRequest
// @param {batch_uuid} - indicates a unique identifier of the current batch or session which block will be finished
// @param {new_state_root} - state root at this point of the execution
// @param {persistence} - indicates if it should be stored only in CACHE, in the SQL DATABASE, or it is just TEMPORARY and should be deleted at the flush of this batch UUID
type FinishBlockRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	BatchUuid    string      `protobuf:"bytes,1,opt,name=batch_uuid,json=batchUuid,proto3" json:"batch_uuid,omitempty"`
	NewStateRoot string      `protobuf:"bytes,2,opt,name=new_state_root,json=newStateRoot,proto3" json:"new_state_root,omitempty"`
	Persistence  Persistence `protobuf:"varint,3,opt,name=persistence,proto3,enum=hashdb.v1.Persistence" json:"persistence,omitempty"`
}

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

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

func (*FinishBlockRequest) ProtoMessage() {}

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

func (x *FinishBlockRequest) GetBatchUuid() string {
	if x != nil {
		return x.BatchUuid
	}
	return ""
}

func (x *FinishBlockRequest) GetNewStateRoot() string {
	if x != nil {
		return x.NewStateRoot
	}
	return ""
}

func (x *FinishBlockRequest) GetPersistence() Persistence {
	if x != nil {
		return x.Persistence
	}
	return Persistence_PERSISTENCE_CACHE_UNSPECIFIED
}

// *
// @dev GetFlushDataRequest
// @param {flush_id} - last stored flush ID got using this method, or 0 if it never was called before
type GetFlushDataRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	FlushId uint64 `protobuf:"varint,1,opt,name=flush_id,json=flushId,proto3" json:"flush_id,omitempty"`
}

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

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

func (*GetFlushDataRequest) ProtoMessage() {}

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

func (x *GetFlushDataRequest) GetFlushId() uint64 {
	if x != nil {
		return x.FlushId
	}
	return 0
}

// *
// @dev ConsolidateStateRequest
// @param {virtual_state_root} - virtual state root to consolidate (and previous virtual state roots, too)
// @param {persistence} - indicates if it should be stored only in CACHE, in the SQL DATABASE, or it is just TEMPORARY and should be deleted at the flush of this batch UUID
type ConsolidateStateRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	VirtualStateRoot *Fea        `protobuf:"bytes,1,opt,name=virtual_state_root,json=virtualStateRoot,proto3" json:"virtual_state_root,omitempty"`
	Persistence      Persistence `protobuf:"varint,2,opt,name=persistence,proto3,enum=hashdb.v1.Persistence" json:"persistence,omitempty"`
}

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

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

func (*ConsolidateStateRequest) ProtoMessage() {}

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

func (x *ConsolidateStateRequest) GetVirtualStateRoot() *Fea {
	if x != nil {
		return x.VirtualStateRoot
	}
	return nil
}

func (x *ConsolidateStateRequest) GetPersistence() Persistence {
	if x != nil {
		return x.Persistence
	}
	return Persistence_PERSISTENCE_CACHE_UNSPECIFIED
}

// *
// @dev PurgeRequest
// @param {batch_uuid} - indicates a unique identifier of the current batch or session which data will be purged
// @param {new_state_root} - state root at this point of the execution
// @param {persistence} - indicates if it should be stored only in CACHE, in the SQL DATABASE, or it is just TEMPORARY and should be deleted at the flush of this batch UUID
type PurgeRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	BatchUuid    string      `protobuf:"bytes,1,opt,name=batch_uuid,json=batchUuid,proto3" json:"batch_uuid,omitempty"`
	NewStateRoot *Fea        `protobuf:"bytes,2,opt,name=new_state_root,json=newStateRoot,proto3" json:"new_state_root,omitempty"`
	Persistence  Persistence `protobuf:"varint,3,opt,name=persistence,proto3,enum=hashdb.v1.Persistence" json:"persistence,omitempty"`
}

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

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

func (*PurgeRequest) ProtoMessage() {}

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

func (x *PurgeRequest) GetBatchUuid() string {
	if x != nil {
		return x.BatchUuid
	}
	return ""
}

func (x *PurgeRequest) GetNewStateRoot() *Fea {
	if x != nil {
		return x.NewStateRoot
	}
	return nil
}

func (x *PurgeRequest) GetPersistence() Persistence {
	if x != nil {
		return x.Persistence
	}
	return Persistence_PERSISTENCE_CACHE_UNSPECIFIED
}

// *
// @dev ReadTreeRequest
// @param {state_root} - state root at this point of the execution
// @param {keys} - list of keys to get their values for
type ReadTreeRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	StateRoot *Fea   `protobuf:"bytes,1,opt,name=state_root,json=stateRoot,proto3" json:"state_root,omitempty"`
	Keys      []*Fea `protobuf:"bytes,2,rep,name=keys,proto3" json:"keys,omitempty"`
}

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

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

func (*ReadTreeRequest) ProtoMessage() {}

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

func (x *ReadTreeRequest) GetStateRoot() *Fea {
	if x != nil {
		return x.StateRoot
	}
	return nil
}

func (x *ReadTreeRequest) GetKeys() []*Fea {
	if x != nil {
		return x.Keys
	}
	return nil
}

// *
// @dev CancelBatchRequest
// @param {batch_uuid} - indicates a unique identifier of the current batch or session which data will be deleted
type CancelBatchRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	BatchUuid string `protobuf:"bytes,1,opt,name=batch_uuid,json=batchUuid,proto3" json:"batch_uuid,omitempty"`
}

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

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

func (*CancelBatchRequest) ProtoMessage() {}

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

func (x *CancelBatchRequest) GetBatchUuid() string {
	if x != nil {
		return x.BatchUuid
	}
	return ""
}

// *
// @dev GetLatestStateRootResponse
// @param {latest_root} - latest state root
// @param {result} - result code
type GetLatestStateRootResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	LatestRoot *Fea        `protobuf:"bytes,1,opt,name=latest_root,json=latestRoot,proto3" json:"latest_root,omitempty"`
	Result     *ResultCode `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"`
}

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

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

func (*GetLatestStateRootResponse) ProtoMessage() {}

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

func (x *GetLatestStateRootResponse) GetLatestRoot() *Fea {
	if x != nil {
		return x.LatestRoot
	}
	return nil
}

func (x *GetLatestStateRootResponse) GetResult() *ResultCode {
	if x != nil {
		return x.Result
	}
	return nil
}

// *
// @dev SetResponse
// @param {old_root} - merkle-tree root
// @param {new_root} - merkle-tree new root
// @param {key} - key to look for
// @param {siblings} - array of siblings
// @param {ins_key} - key found
// @param {ins_value} - value found (HEX string format)
// @param {is_old0} - is new insert or delete
// @param {old_value} - old value (HEX string format)
// @param {new_value} - new value (HEX string format)
// @param {mode}
// @param {proof_hash_counter}
// @param {db_read_log} - list of db records read during the execution of the request
// @param {result} - result code
// @param {sibling_left_child} - on delete not found, use children to hash intermediate node (to be sure that it's a intermediate)
// @param {sibling_right_child} - on delete not found, use children to hash intermediate node (to be sure that it's a intermediate)
type SetResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	OldRoot           *Fea                    `protobuf:"bytes,1,opt,name=old_root,json=oldRoot,proto3" json:"old_root,omitempty"`
	NewRoot           *Fea                    `protobuf:"bytes,2,opt,name=new_root,json=newRoot,proto3" json:"new_root,omitempty"`
	Key               *Fea                    `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"`
	Siblings          map[uint64]*SiblingList `protobuf:"bytes,4,rep,name=siblings,proto3" json:"siblings,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	InsKey            *Fea                    `protobuf:"bytes,5,opt,name=ins_key,json=insKey,proto3" json:"ins_key,omitempty"`
	InsValue          string                  `protobuf:"bytes,6,opt,name=ins_value,json=insValue,proto3" json:"ins_value,omitempty"`
	IsOld0            bool                    `protobuf:"varint,7,opt,name=is_old0,json=isOld0,proto3" json:"is_old0,omitempty"`
	OldValue          string                  `protobuf:"bytes,8,opt,name=old_value,json=oldValue,proto3" json:"old_value,omitempty"`
	NewValue          string                  `protobuf:"bytes,9,opt,name=new_value,json=newValue,proto3" json:"new_value,omitempty"`
	Mode              string                  `protobuf:"bytes,10,opt,name=mode,proto3" json:"mode,omitempty"`
	ProofHashCounter  uint64                  `protobuf:"varint,11,opt,name=proof_hash_counter,json=proofHashCounter,proto3" json:"proof_hash_counter,omitempty"`
	DbReadLog         map[string]*FeList      `protobuf:"bytes,12,rep,name=db_read_log,json=dbReadLog,proto3" json:"db_read_log,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	Result            *ResultCode             `protobuf:"bytes,13,opt,name=result,proto3" json:"result,omitempty"`
	SiblingLeftChild  *Fea                    `protobuf:"bytes,14,opt,name=sibling_left_child,json=siblingLeftChild,proto3" json:"sibling_left_child,omitempty"`
	SiblingRightChild *Fea                    `protobuf:"bytes,15,opt,name=sibling_right_child,json=siblingRightChild,proto3" json:"sibling_right_child,omitempty"`
}

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

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

func (*SetResponse) ProtoMessage() {}

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

func (x *SetResponse) GetOldRoot() *Fea {
	if x != nil {
		return x.OldRoot
	}
	return nil
}

func (x *SetResponse) GetNewRoot() *Fea {
	if x != nil {
		return x.NewRoot
	}
	return nil
}

func (x *SetResponse) GetKey() *Fea {
	if x != nil {
		return x.Key
	}
	return nil
}

func (x *SetResponse) GetSiblings() map[uint64]*SiblingList {
	if x != nil {
		return x.Siblings
	}
	return nil
}

func (x *SetResponse) GetInsKey() *Fea {
	if x != nil {
		return x.InsKey
	}
	return nil
}

func (x *SetResponse) GetInsValue() string {
	if x != nil {
		return x.InsValue
	}
	return ""
}

func (x *SetResponse) GetIsOld0() bool {
	if x != nil {
		return x.IsOld0
	}
	return false
}

func (x *SetResponse) GetOldValue() string {
	if x != nil {
		return x.OldValue
	}
	return ""
}

func (x *SetResponse) GetNewValue() string {
	if x != nil {
		return x.NewValue
	}
	return ""
}

func (x *SetResponse) GetMode() string {
	if x != nil {
		return x.Mode
	}
	return ""
}

func (x *SetResponse) GetProofHashCounter() uint64 {
	if x != nil {
		return x.ProofHashCounter
	}
	return 0
}

func (x *SetResponse) GetDbReadLog() map[string]*FeList {
	if x != nil {
		return x.DbReadLog
	}
	return nil
}

func (x *SetResponse) GetResult() *ResultCode {
	if x != nil {
		return x.Result
	}
	return nil
}

func (x *SetResponse) GetSiblingLeftChild() *Fea {
	if x != nil {
		return x.SiblingLeftChild
	}
	return nil
}

func (x *SetResponse) GetSiblingRightChild() *Fea {
	if x != nil {
		return x.SiblingRightChild
	}
	return nil
}

// *
// @dev GetResponse
// @param {root} - merkle-tree root
// @param {key} - key to look for
// @param {siblings} - array of siblings
// @param {ins_key} - key found
// @param {ins_value} - value found (HEX string format)
// @param {is_old0} - is new insert or delete
// @param {value} - value retrieved (HEX string format)
// @param {proof_hash_counter}
// @param {db_read_log} - list of db records read during the execution of the request
// @param {result} - result code
type GetResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Root             *Fea                    `protobuf:"bytes,1,opt,name=root,proto3" json:"root,omitempty"`
	Key              *Fea                    `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
	Siblings         map[uint64]*SiblingList `protobuf:"bytes,3,rep,name=siblings,proto3" json:"siblings,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	InsKey           *Fea                    `protobuf:"bytes,4,opt,name=ins_key,json=insKey,proto3" json:"ins_key,omitempty"`
	InsValue         string                  `protobuf:"bytes,5,opt,name=ins_value,json=insValue,proto3" json:"ins_value,omitempty"`
	IsOld0           bool                    `protobuf:"varint,6,opt,name=is_old0,json=isOld0,proto3" json:"is_old0,omitempty"`
	Value            string                  `protobuf:"bytes,7,opt,name=value,proto3" json:"value,omitempty"`
	ProofHashCounter uint64                  `protobuf:"varint,8,opt,name=proof_hash_counter,json=proofHashCounter,proto3" json:"proof_hash_counter,omitempty"`
	DbReadLog        map[string]*FeList      `protobuf:"bytes,9,rep,name=db_read_log,json=dbReadLog,proto3" json:"db_read_log,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	Result           *ResultCode             `protobuf:"bytes,10,opt,name=result,proto3" json:"result,omitempty"`
}

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

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

func (*GetResponse) ProtoMessage() {}

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

func (x *GetResponse) GetRoot() *Fea {
	if x != nil {
		return x.Root
	}
	return nil
}

func (x *GetResponse) GetKey() *Fea {
	if x != nil {
		return x.Key
	}
	return nil
}

func (x *GetResponse) GetSiblings() map[uint64]*SiblingList {
	if x != nil {
		return x.Siblings
	}
	return nil
}

func (x *GetResponse) GetInsKey() *Fea {
	if x != nil {
		return x.InsKey
	}
	return nil
}

func (x *GetResponse) GetInsValue() string {
	if x != nil {
		return x.InsValue
	}
	return ""
}

func (x *GetResponse) GetIsOld0() bool {
	if x != nil {
		return x.IsOld0
	}
	return false
}

func (x *GetResponse) GetValue() string {
	if x != nil {
		return x.Value
	}
	return ""
}

func (x *GetResponse) GetProofHashCounter() uint64 {
	if x != nil {
		return x.ProofHashCounter
	}
	return 0
}

func (x *GetResponse) GetDbReadLog() map[string]*FeList {
	if x != nil {
		return x.DbReadLog
	}
	return nil
}

func (x *GetResponse) GetResult() *ResultCode {
	if x != nil {
		return x.Result
	}
	return nil
}

// *
// @dev SetProgramResponse
// @param {result} - result code
type SetProgramResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Result *ResultCode `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
}

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

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

func (*SetProgramResponse) ProtoMessage() {}

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

func (x *SetProgramResponse) GetResult() *ResultCode {
	if x != nil {
		return x.Result
	}
	return nil
}

// *
// @dev GetProgramResponse
// @param {data} - program data retrieved
// @param {result} - result code
type GetProgramResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Data   []byte      `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
	Result *ResultCode `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"`
}

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

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

func (*GetProgramResponse) ProtoMessage() {}

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

func (x *GetProgramResponse) GetData() []byte {
	if x != nil {
		return x.Data
	}
	return nil
}

func (x *GetProgramResponse) GetResult() *ResultCode {
	if x != nil {
		return x.Result
	}
	return nil
}

// *
// @dev FlushResponse
// @param {flush_id} - id assigned to this flush data
// @param {stored_flush_id} - id of the last flush data sent to database
// @param {result} - result code
type FlushResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	FlushId       uint64      `protobuf:"varint,1,opt,name=flush_id,json=flushId,proto3" json:"flush_id,omitempty"`
	StoredFlushId uint64      `protobuf:"varint,2,opt,name=stored_flush_id,json=storedFlushId,proto3" json:"stored_flush_id,omitempty"`
	Result        *ResultCode `protobuf:"bytes,3,opt,name=result,proto3" json:"result,omitempty"`
}

func (x *FlushResponse) Reset() {
	*x = FlushResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_hashdb_proto_msgTypes[21]
		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_hashdb_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 FlushResponse.ProtoReflect.Descriptor instead.
func (*FlushResponse) Descriptor() ([]byte, []int) {
	return file_hashdb_proto_rawDescGZIP(), []int{21}
}

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

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

func (x *FlushResponse) GetResult() *ResultCode {
	if x != nil {
		return x.Result
	}
	return nil
}

// *
// @dev GetFlushStatusResponse
// @param {stored_flush_id} - id of the last flush data sent to database
// @param {sending_flush_id} - id of the flush data being sent now to database
// @param {last_flush_id} - id assigned to the last call to flush
// @param {pending_to_flush_nodes} - number of SMT nodes pending to flush
// @param {pending_to_flush_program} - number of SC programs pending to flush
// @param {storing_nodes} - number of SMT nodes being stored in the hash database
// @param {storing_program} - number of SC programs being stored in the hash database
// @param {prover_id} - id assigned to this instance of the prover process
type GetFlushStatusResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	StoredFlushId         uint64 `protobuf:"varint,1,opt,name=stored_flush_id,json=storedFlushId,proto3" json:"stored_flush_id,omitempty"`
	StoringFlushId        uint64 `protobuf:"varint,2,opt,name=storing_flush_id,json=storingFlushId,proto3" json:"storing_flush_id,omitempty"`
	LastFlushId           uint64 `protobuf:"varint,3,opt,name=last_flush_id,json=lastFlushId,proto3" json:"last_flush_id,omitempty"`
	PendingToFlushNodes   uint64 `protobuf:"varint,4,opt,name=pending_to_flush_nodes,json=pendingToFlushNodes,proto3" json:"pending_to_flush_nodes,omitempty"`
	PendingToFlushProgram uint64 `protobuf:"varint,5,opt,name=pending_to_flush_program,json=pendingToFlushProgram,proto3" json:"pending_to_flush_program,omitempty"`
	StoringNodes          uint64 `protobuf:"varint,6,opt,name=storing_nodes,json=storingNodes,proto3" json:"storing_nodes,omitempty"`
	StoringProgram        uint64 `protobuf:"varint,7,opt,name=storing_program,json=storingProgram,proto3" json:"storing_program,omitempty"`
	ProverId              string `protobuf:"bytes,8,opt,name=prover_id,json=proverId,proto3" json:"prover_id,omitempty"`
}

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

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

func (*GetFlushStatusResponse) ProtoMessage() {}

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

func (x *GetFlushStatusResponse) GetStoredFlushId() uint64 {
	if x != nil {
		return x.StoredFlushId
	}
	return 0
}

func (x *GetFlushStatusResponse) GetStoringFlushId() uint64 {
	if x != nil {
		return x.StoringFlushId
	}
	return 0
}

func (x *GetFlushStatusResponse) GetLastFlushId() uint64 {
	if x != nil {
		return x.LastFlushId
	}
	return 0
}

func (x *GetFlushStatusResponse) GetPendingToFlushNodes() uint64 {
	if x != nil {
		return x.PendingToFlushNodes
	}
	return 0
}

func (x *GetFlushStatusResponse) GetPendingToFlushProgram() uint64 {
	if x != nil {
		return x.PendingToFlushProgram
	}
	return 0
}

func (x *GetFlushStatusResponse) GetStoringNodes() uint64 {
	if x != nil {
		return x.StoringNodes
	}
	return 0
}

func (x *GetFlushStatusResponse) GetStoringProgram() uint64 {
	if x != nil {
		return x.StoringProgram
	}
	return 0
}

func (x *GetFlushStatusResponse) GetProverId() string {
	if x != nil {
		return x.ProverId
	}
	return ""
}

// *
// @dev GetFlushDataResponse
// @param {stored_flush_id} - id of the last flush data sent to database
// @param {nodes} - data to insert in the nodes table
// @param {program} - data to insert in the program table
// @param {nodes_state_root} - nodes state root to update in the nodes table
// @param {result} - result code
type GetFlushDataResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	StoredFlushId  uint64            `protobuf:"varint,1,opt,name=stored_flush_id,json=storedFlushId,proto3" json:"stored_flush_id,omitempty"`
	Nodes          map[string]string `protobuf:"bytes,2,rep,name=nodes,proto3" json:"nodes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	Program        map[string]string `protobuf:"bytes,3,rep,name=program,proto3" json:"program,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	NodesStateRoot string            `protobuf:"bytes,4,opt,name=nodes_state_root,json=nodesStateRoot,proto3" json:"nodes_state_root,omitempty"`
	Result         *ResultCode       `protobuf:"bytes,5,opt,name=result,proto3" json:"result,omitempty"`
}

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

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

func (*GetFlushDataResponse) ProtoMessage() {}

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

func (x *GetFlushDataResponse) GetStoredFlushId() uint64 {
	if x != nil {
		return x.StoredFlushId
	}
	return 0
}

func (x *GetFlushDataResponse) GetNodes() map[string]string {
	if x != nil {
		return x.Nodes
	}
	return nil
}

func (x *GetFlushDataResponse) GetProgram() map[string]string {
	if x != nil {
		return x.Program
	}
	return nil
}

func (x *GetFlushDataResponse) GetNodesStateRoot() string {
	if x != nil {
		return x.NodesStateRoot
	}
	return ""
}

func (x *GetFlushDataResponse) GetResult() *ResultCode {
	if x != nil {
		return x.Result
	}
	return nil
}

// *
// @dev ConsolidateStateResponse
// @param {consolidated_state_root} - consolidated state root at the point of the execution of virtual_state_root
// @param {flush_id} - id assigned to this flush data
// @param {stored_flush_id} - id of the last flush data sent to database
// @param {result} - result code
type ConsolidateStateResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ConsolidatedStateRoot *Fea        `protobuf:"bytes,1,opt,name=consolidated_state_root,json=consolidatedStateRoot,proto3" json:"consolidated_state_root,omitempty"`
	FlushId               uint64      `protobuf:"varint,2,opt,name=flush_id,json=flushId,proto3" json:"flush_id,omitempty"`
	StoredFlushId         uint64      `protobuf:"varint,3,opt,name=stored_flush_id,json=storedFlushId,proto3" json:"stored_flush_id,omitempty"`
	Result                *ResultCode `protobuf:"bytes,4,opt,name=result,proto3" json:"result,omitempty"`
}

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

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

func (*ConsolidateStateResponse) ProtoMessage() {}

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

func (x *ConsolidateStateResponse) GetConsolidatedStateRoot() *Fea {
	if x != nil {
		return x.ConsolidatedStateRoot
	}
	return nil
}

func (x *ConsolidateStateResponse) GetFlushId() uint64 {
	if x != nil {
		return x.FlushId
	}
	return 0
}

func (x *ConsolidateStateResponse) GetStoredFlushId() uint64 {
	if x != nil {
		return x.StoredFlushId
	}
	return 0
}

func (x *ConsolidateStateResponse) GetResult() *ResultCode {
	if x != nil {
		return x.Result
	}
	return nil
}

// *
// @dev PurgeResponse
// @param {result} - result code
type PurgeResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Result *ResultCode `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
}

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

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

func (*PurgeResponse) ProtoMessage() {}

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

func (x *PurgeResponse) GetResult() *ResultCode {
	if x != nil {
		return x.Result
	}
	return nil
}

// *
// @dev ReadTreeResponse
// @param {key_value} - list of key-value pairs requested to be read
// @param {hash_value} - list of hash-value pairs required to get the key-value pairs
// @param {result} - result code
type ReadTreeResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	KeyValue  []*KeyValue    `protobuf:"bytes,1,rep,name=key_value,json=keyValue,proto3" json:"key_value,omitempty"`
	HashValue []*HashValueGL `protobuf:"bytes,2,rep,name=hash_value,json=hashValue,proto3" json:"hash_value,omitempty"`
	Result    *ResultCode    `protobuf:"bytes,3,opt,name=result,proto3" json:"result,omitempty"`
}

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

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

func (*ReadTreeResponse) ProtoMessage() {}

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

func (x *ReadTreeResponse) GetKeyValue() []*KeyValue {
	if x != nil {
		return x.KeyValue
	}
	return nil
}

func (x *ReadTreeResponse) GetHashValue() []*HashValueGL {
	if x != nil {
		return x.HashValue
	}
	return nil
}

func (x *ReadTreeResponse) GetResult() *ResultCode {
	if x != nil {
		return x.Result
	}
	return nil
}

// *
// @dev CancelBatchResponse
// @param {result} - result code
type CancelBatchResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Result *ResultCode `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
}

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

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

func (*CancelBatchResponse) ProtoMessage() {}

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

func (x *CancelBatchResponse) GetResult() *ResultCode {
	if x != nil {
		return x.Result
	}
	return nil
}

// *
// @dev ResetDBResponse
// @param {result} - result code
type ResetDBResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Result *ResultCode `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
}

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

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

func (*ResetDBResponse) ProtoMessage() {}

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

func (x *ResetDBResponse) GetResult() *ResultCode {
	if x != nil {
		return x.Result
	}
	return nil
}

// *
// @dev Array of 4 FE
// @param {fe0} - Field Element value for pos 0
// @param {fe1} - Field Element value for pos 1
// @param {fe2} - Field Element value for pos 2
// @param {fe3} - Field Element value for pos 3
type Fea struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Fe0 uint64 `protobuf:"varint,1,opt,name=fe0,proto3" json:"fe0,omitempty"`
	Fe1 uint64 `protobuf:"varint,2,opt,name=fe1,proto3" json:"fe1,omitempty"`
	Fe2 uint64 `protobuf:"varint,3,opt,name=fe2,proto3" json:"fe2,omitempty"`
	Fe3 uint64 `protobuf:"varint,4,opt,name=fe3,proto3" json:"fe3,omitempty"`
}

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

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

func (*Fea) ProtoMessage() {}

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

func (x *Fea) GetFe0() uint64 {
	if x != nil {
		return x.Fe0
	}
	return 0
}

func (x *Fea) GetFe1() uint64 {
	if x != nil {
		return x.Fe1
	}
	return 0
}

func (x *Fea) GetFe2() uint64 {
	if x != nil {
		return x.Fe2
	}
	return 0
}

func (x *Fea) GetFe3() uint64 {
	if x != nil {
		return x.Fe3
	}
	return 0
}

// *
// @dev Array of 12 FE
// @param {fex} - Field Element value for pos x
type Fea12 struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Fe0  uint64 `protobuf:"varint,1,opt,name=fe0,proto3" json:"fe0,omitempty"`
	Fe1  uint64 `protobuf:"varint,2,opt,name=fe1,proto3" json:"fe1,omitempty"`
	Fe2  uint64 `protobuf:"varint,3,opt,name=fe2,proto3" json:"fe2,omitempty"`
	Fe3  uint64 `protobuf:"varint,4,opt,name=fe3,proto3" json:"fe3,omitempty"`
	Fe4  uint64 `protobuf:"varint,5,opt,name=fe4,proto3" json:"fe4,omitempty"`
	Fe5  uint64 `protobuf:"varint,6,opt,name=fe5,proto3" json:"fe5,omitempty"`
	Fe6  uint64 `protobuf:"varint,7,opt,name=fe6,proto3" json:"fe6,omitempty"`
	Fe7  uint64 `protobuf:"varint,8,opt,name=fe7,proto3" json:"fe7,omitempty"`
	Fe8  uint64 `protobuf:"varint,9,opt,name=fe8,proto3" json:"fe8,omitempty"`
	Fe9  uint64 `protobuf:"varint,10,opt,name=fe9,proto3" json:"fe9,omitempty"`
	Fe10 uint64 `protobuf:"varint,11,opt,name=fe10,proto3" json:"fe10,omitempty"`
	Fe11 uint64 `protobuf:"varint,12,opt,name=fe11,proto3" json:"fe11,omitempty"`
}

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

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

func (*Fea12) ProtoMessage() {}

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

func (x *Fea12) GetFe0() uint64 {
	if x != nil {
		return x.Fe0
	}
	return 0
}

func (x *Fea12) GetFe1() uint64 {
	if x != nil {
		return x.Fe1
	}
	return 0
}

func (x *Fea12) GetFe2() uint64 {
	if x != nil {
		return x.Fe2
	}
	return 0
}

func (x *Fea12) GetFe3() uint64 {
	if x != nil {
		return x.Fe3
	}
	return 0
}

func (x *Fea12) GetFe4() uint64 {
	if x != nil {
		return x.Fe4
	}
	return 0
}

func (x *Fea12) GetFe5() uint64 {
	if x != nil {
		return x.Fe5
	}
	return 0
}

func (x *Fea12) GetFe6() uint64 {
	if x != nil {
		return x.Fe6
	}
	return 0
}

func (x *Fea12) GetFe7() uint64 {
	if x != nil {
		return x.Fe7
	}
	return 0
}

func (x *Fea12) GetFe8() uint64 {
	if x != nil {
		return x.Fe8
	}
	return 0
}

func (x *Fea12) GetFe9() uint64 {
	if x != nil {
		return x.Fe9
	}
	return 0
}

func (x *Fea12) GetFe10() uint64 {
	if x != nil {
		return x.Fe10
	}
	return 0
}

func (x *Fea12) GetFe11() uint64 {
	if x != nil {
		return x.Fe11
	}
	return 0
}

// *
// @dev HashValueGL
// @param {hash} - Hash
// @param {value} - Value
type HashValueGL struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Hash  *Fea   `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
	Value *Fea12 `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}

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

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

func (*HashValueGL) ProtoMessage() {}

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

func (x *HashValueGL) GetHash() *Fea {
	if x != nil {
		return x.Hash
	}
	return nil
}

func (x *HashValueGL) GetValue() *Fea12 {
	if x != nil {
		return x.Value
	}
	return nil
}

// *
// @dev KeyValue
// @param {key} - key
// @param {value} - Value
type KeyValue struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Key   *Fea   `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}

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

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

func (*KeyValue) ProtoMessage() {}

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

func (x *KeyValue) GetKey() *Fea {
	if x != nil {
		return x.Key
	}
	return nil
}

func (x *KeyValue) GetValue() string {
	if x != nil {
		return x.Value
	}
	return ""
}

// *
// @dev FE (Field Element) List
// @param {fe} - list of Fe
type FeList struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Fe []uint64 `protobuf:"varint,1,rep,packed,name=fe,proto3" json:"fe,omitempty"`
}

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

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

func (*FeList) ProtoMessage() {}

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

func (x *FeList) GetFe() []uint64 {
	if x != nil {
		return x.Fe
	}
	return nil
}

// *
// @dev Siblings List
// @param {sibling} - list of siblings
type SiblingList struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Sibling []uint64 `protobuf:"varint,1,rep,packed,name=sibling,proto3" json:"sibling,omitempty"`
}

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

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

func (*SiblingList) ProtoMessage() {}

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

func (x *SiblingList) GetSibling() []uint64 {
	if x != nil {
		return x.Sibling
	}
	return nil
}

// *
// @dev Result code
// @param {code} - result code
type ResultCode struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Code ResultCode_Code `protobuf:"varint,1,opt,name=code,proto3,enum=hashdb.v1.ResultCode_Code" json:"code,omitempty"`
}

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

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

func (*ResultCode) ProtoMessage() {}

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

func (x *ResultCode) GetCode() ResultCode_Code {
	if x != nil {
		return x.Code
	}
	return ResultCode_CODE_UNSPECIFIED
}

var File_hashdb_proto protoreflect.FileDescriptor

var file_hashdb_proto_rawDesc = []byte{
	0x0a, 0x0c, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09,
	0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x1f, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x12, 0x14, 0x0a, 0x06, 0x76, 0x30, 0x5f, 0x30, 0x5f, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x04, 0x76, 0x30, 0x30, 0x31, 0x22, 0xc5, 0x02, 0x0a, 0x0a, 0x53, 0x65, 0x74, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x08, 0x6f, 0x6c, 0x64, 0x5f, 0x72, 0x6f,
	0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64,
	0x62, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x52, 0x07, 0x6f, 0x6c, 0x64, 0x52, 0x6f, 0x6f,
	0x74, 0x12, 0x20, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e,
	0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x52, 0x03,
	0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x70, 0x65, 0x72,
	0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16,
	0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69,
	0x73, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65,
	0x6e, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x25, 0x0a,
	0x0f, 0x67, 0x65, 0x74, 0x5f, 0x64, 0x62, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6c, 0x6f, 0x67,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x67, 0x65, 0x74, 0x44, 0x62, 0x52, 0x65, 0x61,
	0x64, 0x4c, 0x6f, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x75, 0x75,
	0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x55,
	0x75, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x78, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18,
	0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x78, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1f,
	0x0a, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22,
	0xb2, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22,
	0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x68,
	0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x52, 0x04, 0x72, 0x6f,
	0x6f, 0x74, 0x12, 0x20, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x0e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x52,
	0x03, 0x6b, 0x65, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x25,
	0x0a, 0x0f, 0x67, 0x65, 0x74, 0x5f, 0x64, 0x62, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6c, 0x6f,
	0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x67, 0x65, 0x74, 0x44, 0x62, 0x52, 0x65,
	0x61, 0x64, 0x4c, 0x6f, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x75,
	0x75, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68,
	0x55, 0x75, 0x69, 0x64, 0x22, 0xde, 0x01, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x67,
	0x72, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x03, 0x6b, 0x65,
	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62,
	0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04,
	0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61,
	0x12, 0x38, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76,
	0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0b, 0x70,
	0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61,
	0x74, 0x63, 0x68, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
	0x62, 0x61, 0x74, 0x63, 0x68, 0x55, 0x75, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x78, 0x5f,
	0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x78, 0x49,
	0x6e, 0x64, 0x65, 0x78, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x6e,
	0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b,
	0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x54, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x67,
	0x72, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x03, 0x6b, 0x65,
	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62,
	0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x0a,
	0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x55, 0x75, 0x69, 0x64, 0x22, 0xef, 0x01, 0x0a, 0x0d,
	0x4c, 0x6f, 0x61, 0x64, 0x44, 0x42, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a,
	0x08, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x64, 0x62, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x25, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x61, 0x64,
	0x44, 0x42, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x44,
	0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x62, 0x12,
	0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x12,
	0x2d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e,
	0x46, 0x65, 0x61, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x1a, 0x4d,
	0x0a, 0x0c, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
	0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
	0x12, 0x27, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x11, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x4c, 0x69,
	0x73, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xd8, 0x01,
	0x0a, 0x14, 0x4c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x44, 0x42, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5d, 0x0a, 0x10, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f,
	0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x64, 0x62, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x33, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x61,
	0x64, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x44, 0x42, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x44, 0x62,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x67,
	0x72, 0x61, 0x6d, 0x44, 0x62, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74,
	0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x69,
	0x73, 0x74, 0x65, 0x6e, 0x74, 0x1a, 0x41, 0x0a, 0x13, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x50, 0x72,
	0x6f, 0x67, 0x72, 0x61, 0x6d, 0x44, 0x62, 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, 0x0c, 0x52, 0x05, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8d, 0x01, 0x0a, 0x0c, 0x46, 0x6c, 0x75,
	0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74,
	0x63, 0x68, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62,
	0x61, 0x74, 0x63, 0x68, 0x55, 0x75, 0x69, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x6e, 0x65, 0x77, 0x5f,
	0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0c, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x38,
	0x0a, 0x0b, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e,
	0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0b, 0x70, 0x65, 0x72,
	0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x0f, 0x46, 0x69, 0x6e,
	0x69, 0x73, 0x68, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a,
	0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x55, 0x75, 0x69, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x6e,
	0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f,
	0x74, 0x12, 0x38, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x65,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e,
	0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0b,
	0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x92, 0x01, 0x0a, 0x11,
	0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x55, 0x75, 0x69, 0x64,
	0x12, 0x24, 0x0a, 0x0e, 0x6f, 0x6c, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f,
	0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x6c, 0x64, 0x53, 0x74, 0x61,
	0x74, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x38, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73,
	0x74, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x68, 0x61,
	0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65,
	0x6e, 0x63, 0x65, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x65,
	0x22, 0x93, 0x01, 0x0a, 0x12, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x42, 0x6c, 0x6f, 0x63, 0x6b,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68,
	0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x74,
	0x63, 0x68, 0x55, 0x75, 0x69, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74,
	0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
	0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x38, 0x0a, 0x0b,
	0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0e, 0x32, 0x16, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65,
	0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x73, 0x69,
	0x73, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x30, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75,
	0x73, 0x68, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a,
	0x08, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x07, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x49, 0x64, 0x22, 0x91, 0x01, 0x0a, 0x17, 0x43, 0x6f, 0x6e,
	0x73, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x12, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f,
	0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x0e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61,
	0x52, 0x10, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f,
	0x6f, 0x74, 0x12, 0x38, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62,
	0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x52,
	0x0b, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x9d, 0x01, 0x0a,
	0x0c, 0x50, 0x75, 0x72, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a,
	0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x55, 0x75, 0x69, 0x64, 0x12, 0x34, 0x0a, 0x0e,
	0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31,
	0x2e, 0x46, 0x65, 0x61, 0x52, 0x0c, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f,
	0x6f, 0x74, 0x12, 0x38, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63,
	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62,
	0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x52,
	0x0b, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x64, 0x0a, 0x0f,
	0x52, 0x65, 0x61, 0x64, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x2d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e,
	0x46, 0x65, 0x61, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x22,
	0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x68,
	0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x52, 0x04, 0x6b, 0x65,
	0x79, 0x73, 0x22, 0x33, 0x0a, 0x12, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x61, 0x74, 0x63,
	0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63,
	0x68, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61,
	0x74, 0x63, 0x68, 0x55, 0x75, 0x69, 0x64, 0x22, 0x7c, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x4c, 0x61,
	0x74, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x0b, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f,
	0x72, 0x6f, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x68, 0x61, 0x73,
	0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x52, 0x0a, 0x6c, 0x61, 0x74, 0x65,
	0x73, 0x74, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e,
	0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x72,
	0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xbc, 0x06, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x08, 0x6f, 0x6c, 0x64, 0x5f, 0x72, 0x6f, 0x6f,
	0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62,
	0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x52, 0x07, 0x6f, 0x6c, 0x64, 0x52, 0x6f, 0x6f, 0x74,
	0x12, 0x29, 0x0a, 0x08, 0x6e, 0x65, 0x77, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x46,
	0x65, 0x61, 0x52, 0x07, 0x6e, 0x65, 0x77, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x20, 0x0a, 0x03, 0x6b,
	0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64,
	0x62, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x40, 0x0a,
	0x08, 0x73, 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x24, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, 0x73,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x73, 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, 0x73, 0x12,
	0x27, 0x0a, 0x07, 0x69, 0x6e, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x0e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61,
	0x52, 0x06, 0x69, 0x6e, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x5f,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x73,
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x6f, 0x6c, 0x64, 0x30,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4f, 0x6c, 0x64, 0x30, 0x12, 0x1b,
	0x0a, 0x09, 0x6f, 0x6c, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x08, 0x6f, 0x6c, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6e,
	0x65, 0x77, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x6e, 0x65, 0x77, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65,
	0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x2c, 0x0a, 0x12,
	0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74,
	0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x48,
	0x61, 0x73, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x0b, 0x64, 0x62,
	0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x25, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x62, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6f,
	0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x64, 0x62, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6f,
	0x67, 0x12, 0x2d, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x15, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65,
	0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
	0x12, 0x3c, 0x0a, 0x12, 0x73, 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x65, 0x66, 0x74,
	0x5f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x68,
	0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x52, 0x10, 0x73, 0x69,
	0x62, 0x6c, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x66, 0x74, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x12, 0x3e,
	0x0a, 0x13, 0x73, 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f,
	0x63, 0x68, 0x69, 0x6c, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x68, 0x61,
	0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x52, 0x11, 0x73, 0x69, 0x62,
	0x6c, 0x69, 0x6e, 0x67, 0x52, 0x69, 0x67, 0x68, 0x74, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x1a, 0x53,
	0x0a, 0x0d, 0x53, 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
	0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65,
	0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x16, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x62,
	0x6c, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
	0x02, 0x38, 0x01, 0x1a, 0x4f, 0x0a, 0x0e, 0x44, 0x62, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x6f, 0x67,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e,
	0x76, 0x31, 0x2e, 0x46, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x3a, 0x02, 0x38, 0x01, 0x22, 0xd4, 0x04, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x46,
	0x65, 0x61, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x20, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76,
	0x31, 0x2e, 0x46, 0x65, 0x61, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x40, 0x0a, 0x08, 0x73, 0x69,
	0x62, 0x6c, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x68,
	0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, 0x73, 0x45, 0x6e, 0x74,
	0x72, 0x79, 0x52, 0x08, 0x73, 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x27, 0x0a, 0x07,
	0x69, 0x6e, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e,
	0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x52, 0x06, 0x69,
	0x6e, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x5f, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x56, 0x61, 0x6c,
	0x75, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x6f, 0x6c, 0x64, 0x30, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4f, 0x6c, 0x64, 0x30, 0x12, 0x14, 0x0a, 0x05, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x70,
	0x72, 0x6f, 0x6f, 0x66, 0x48, 0x61, 0x73, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12,
	0x45, 0x0a, 0x0b, 0x64, 0x62, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x09,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31,
	0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x62, 0x52,
	0x65, 0x61, 0x64, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x64, 0x62, 0x52,
	0x65, 0x61, 0x64, 0x4c, 0x6f, 0x67, 0x12, 0x2d, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
	0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e,
	0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x72,
	0x65, 0x73, 0x75, 0x6c, 0x74, 0x1a, 0x53, 0x0a, 0x0d, 0x53, 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67,
	0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62,
	0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4f, 0x0a, 0x0e, 0x44, 0x62,
	0x52, 0x65, 0x61, 0x64, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
	0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x27,
	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e,
	0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x4c, 0x69, 0x73, 0x74,
	0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x43, 0x0a, 0x12, 0x53,
	0x65, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x2d, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x15, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65,
	0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
	0x22, 0x57, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2d, 0x0a, 0x06, 0x72, 0x65,
	0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x68, 0x61, 0x73,
	0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64,
	0x65, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x0d, 0x46, 0x6c,
	0x75, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x66,
	0x6c, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x66,
	0x6c, 0x75, 0x73, 0x68, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64,
	0x5f, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x0d, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x49, 0x64, 0x12, 0x2d,
	0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15,
	0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c,
	0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xe7, 0x02,
	0x0a, 0x16, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x72,
	0x65, 0x64, 0x5f, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x49, 0x64,
	0x12, 0x28, 0x0a, 0x10, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x6c, 0x75, 0x73,
	0x68, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x73, 0x74, 0x6f, 0x72,
	0x69, 0x6e, 0x67, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x6c, 0x61,
	0x73, 0x74, 0x5f, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x49, 0x64, 0x12, 0x33,
	0x0a, 0x16, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x6c, 0x75,
	0x73, 0x68, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13,
	0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x4e, 0x6f,
	0x64, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x18, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74,
	0x6f, 0x5f, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x6f,
	0x46, 0x6c, 0x75, 0x73, 0x68, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x23, 0x0a, 0x0d,
	0x73, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x6f, 0x64, 0x65,
	0x73, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x6f,
	0x67, 0x72, 0x61, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x73, 0x74, 0x6f, 0x72,
	0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x72,
	0x6f, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70,
	0x72, 0x6f, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0x97, 0x03, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x46,
	0x6c, 0x75, 0x73, 0x68, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x26, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x75, 0x73, 0x68,
	0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x65,
	0x64, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65,
	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62,
	0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x44, 0x61, 0x74, 0x61,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x45, 0x6e,
	0x74, 0x72, 0x79, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x07, 0x70, 0x72,
	0x6f, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x68, 0x61,
	0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68,
	0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x72, 0x6f,
	0x67, 0x72, 0x61, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x67, 0x72,
	0x61, 0x6d, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74,
	0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x6f,
	0x64, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x2d, 0x0a, 0x06,
	0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x68,
	0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43,
	0x6f, 0x64, 0x65, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1a, 0x38, 0x0a, 0x0a, 0x4e,
	0x6f, 0x64, 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, 0x14, 0x0a, 0x05, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3a, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d,
	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, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
	0x01, 0x22, 0xd4, 0x01, 0x0a, 0x18, 0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x74,
	0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46,
	0x0a, 0x17, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73,
	0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x0e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x52,
	0x15, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x61,
	0x74, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f,
	0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x49,
	0x64, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x75, 0x73,
	0x68, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72,
	0x65, 0x64, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x06, 0x72, 0x65, 0x73,
	0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x68, 0x61, 0x73, 0x68,
	0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65,
	0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x3e, 0x0a, 0x0d, 0x50, 0x75, 0x72, 0x67,
	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x72, 0x65, 0x73,
	0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x68, 0x61, 0x73, 0x68,
	0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65,
	0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xaa, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x61,
	0x64, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a,
	0x09, 0x6b, 0x65, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x13, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x65, 0x79,
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12,
	0x35, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e,
	0x48, 0x61, 0x73, 0x68, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x47, 0x4c, 0x52, 0x09, 0x68, 0x61, 0x73,
	0x68, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e,
	0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x72,
	0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x44, 0x0a, 0x13, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42,
	0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x06,
	0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x68,
	0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43,
	0x6f, 0x64, 0x65, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x40, 0x0a, 0x0f, 0x52,
	0x65, 0x73, 0x65, 0x74, 0x44, 0x42, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d,
	0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15,
	0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c,
	0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x4d, 0x0a,
	0x03, 0x46, 0x65, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x03, 0x66, 0x65, 0x30, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x31, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x03, 0x66, 0x65, 0x31, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x32, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x66, 0x65, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65,
	0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x66, 0x65, 0x33, 0x22, 0xe3, 0x01, 0x0a,
	0x05, 0x46, 0x65, 0x61, 0x31, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x30, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x03, 0x66, 0x65, 0x30, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x31, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x66, 0x65, 0x31, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65,
	0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x66, 0x65, 0x32, 0x12, 0x10, 0x0a, 0x03,
	0x66, 0x65, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x66, 0x65, 0x33, 0x12, 0x10,
	0x0a, 0x03, 0x66, 0x65, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x66, 0x65, 0x34,
	0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x35, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x66,
	0x65, 0x35, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x36, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x03, 0x66, 0x65, 0x36, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x37, 0x18, 0x08, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x03, 0x66, 0x65, 0x37, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x38, 0x18, 0x09, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x03, 0x66, 0x65, 0x38, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x39, 0x18,
	0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x66, 0x65, 0x39, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x65,
	0x31, 0x30, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x66, 0x65, 0x31, 0x30, 0x12, 0x12,
	0x0a, 0x04, 0x66, 0x65, 0x31, 0x31, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x66, 0x65,
	0x31, 0x31, 0x22, 0x59, 0x0a, 0x0b, 0x48, 0x61, 0x73, 0x68, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x47,
	0x4c, 0x12, 0x22, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x0e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x52,
	0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x26, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31,
	0x2e, 0x46, 0x65, 0x61, 0x31, 0x32, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x42, 0x0a,
	0x08, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x20, 0x0a, 0x03, 0x6b, 0x65, 0x79,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e,
	0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x22, 0x18, 0x0a, 0x06, 0x46, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x66,
	0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x02, 0x66, 0x65, 0x22, 0x27, 0x0a, 0x0b, 0x53,
	0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x69,
	0x62, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x07, 0x73, 0x69, 0x62,
	0x6c, 0x69, 0x6e, 0x67, 0x22, 0xd4, 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43,
	0x6f, 0x64, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0e, 0x32, 0x1a, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65,
	0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63,
	0x6f, 0x64, 0x65, 0x22, 0x95, 0x01, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x10,
	0x43, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44,
	0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45,
	0x53, 0x53, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x44, 0x42, 0x5f,
	0x4b, 0x45, 0x59, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x02, 0x12,
	0x11, 0x0a, 0x0d, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x44, 0x42, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52,
	0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52,
	0x4e, 0x41, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x43,
	0x4f, 0x44, 0x45, 0x5f, 0x53, 0x4d, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f,
	0x44, 0x41, 0x54, 0x41, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x0e, 0x2a, 0x65, 0x0a, 0x0b, 0x50,
	0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x45,
	0x52, 0x53, 0x49, 0x53, 0x54, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x43, 0x41, 0x43, 0x48, 0x45, 0x5f,
	0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a,
	0x14, 0x50, 0x45, 0x52, 0x53, 0x49, 0x53, 0x54, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54,
	0x41, 0x42, 0x41, 0x53, 0x45, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x45, 0x52, 0x53, 0x49,
	0x53, 0x54, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x45, 0x4d, 0x50, 0x4f, 0x52, 0x41, 0x52, 0x59,
	0x10, 0x02, 0x32, 0x9f, 0x0a, 0x0a, 0x0d, 0x48, 0x61, 0x73, 0x68, 0x44, 0x42, 0x53, 0x65, 0x72,
	0x76, 0x69, 0x63, 0x65, 0x12, 0x55, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73,
	0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
	0x74, 0x79, 0x1a, 0x25, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x47,
	0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f,
	0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x03, 0x53,
	0x65, 0x74, 0x12, 0x15, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53,
	0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x68, 0x61, 0x73, 0x68,
	0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x15, 0x2e, 0x68, 0x61, 0x73,
	0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x16, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65,
	0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0a, 0x53,
	0x65, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x1c, 0x2e, 0x68, 0x61, 0x73, 0x68,
	0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62,
	0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x50,
	0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x1c, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e,
	0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31,
	0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x06, 0x4c, 0x6f, 0x61, 0x64, 0x44, 0x42, 0x12,
	0x18, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x61, 0x64,
	0x44, 0x42, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
	0x79, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x0d, 0x4c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x67, 0x72,
	0x61, 0x6d, 0x44, 0x42, 0x12, 0x1f, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31,
	0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x44, 0x42, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12,
	0x40, 0x0a, 0x08, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x78, 0x12, 0x1a, 0x2e, 0x68, 0x61,
	0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x78,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22,
	0x00, 0x12, 0x44, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12,
	0x1c, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72,
	0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
	0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0b, 0x46, 0x69, 0x6e, 0x69, 0x73,
	0x68, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e,
	0x76, 0x31, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12,
	0x3c, 0x0a, 0x05, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x12, 0x17, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64,
	0x62, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x18, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6c,
	0x75, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d, 0x0a,
	0x0e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
	0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
	0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x21, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62,
	0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0c,
	0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x2e, 0x68,
	0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73,
	0x68, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x68,
	0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73,
	0x68, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
	0x5d, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74,
	0x61, 0x74, 0x65, 0x12, 0x22, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e,
	0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62,
	0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53,
	0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c,
	0x0a, 0x05, 0x50, 0x75, 0x72, 0x67, 0x65, 0x12, 0x17, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62,
	0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x18, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x72,
	0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x08,
	0x52, 0x65, 0x61, 0x64, 0x54, 0x72, 0x65, 0x65, 0x12, 0x1a, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64,
	0x62, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31,
	0x2e, 0x52, 0x65, 0x61, 0x64, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x0b, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x61, 0x74,
	0x63, 0x68, 0x12, 0x1d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x43,
	0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x1e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61,
	0x6e, 0x63, 0x65, 0x6c, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x65, 0x74, 0x44, 0x42, 0x12, 0x16,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
	0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x2e,
	0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x44, 0x42, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x22, 0x00, 0x42, 0x39, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
	0x6f, 0x6d, 0x2f, 0x30, 0x78, 0x50, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x48, 0x65, 0x72, 0x6d,
	0x65, 0x7a, 0x2f, 0x7a, 0x6b, 0x65, 0x76, 0x6d, 0x2d, 0x6e, 0x6f, 0x64, 0x65, 0x2f, 0x6d, 0x65,
	0x72, 0x6b, 0x6c, 0x65, 0x74, 0x72, 0x65, 0x65, 0x2f, 0x68, 0x61, 0x73, 0x68, 0x64, 0x62, 0x62,
	0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_hashdb_proto_rawDescOnce sync.Once
	file_hashdb_proto_rawDescData = file_hashdb_proto_rawDesc
)

func file_hashdb_proto_rawDescGZIP() []byte {
	file_hashdb_proto_rawDescOnce.Do(func() {
		file_hashdb_proto_rawDescData = protoimpl.X.CompressGZIP(file_hashdb_proto_rawDescData)
	})
	return file_hashdb_proto_rawDescData
}

var file_hashdb_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_hashdb_proto_msgTypes = make([]protoimpl.MessageInfo, 44)
var file_hashdb_proto_goTypes = []interface{}{
	(Persistence)(0),                   // 0: hashdb.v1.Persistence
	(ResultCode_Code)(0),               // 1: hashdb.v1.ResultCode.Code
	(*Version)(nil),                    // 2: hashdb.v1.Version
	(*SetRequest)(nil),                 // 3: hashdb.v1.SetRequest
	(*GetRequest)(nil),                 // 4: hashdb.v1.GetRequest
	(*SetProgramRequest)(nil),          // 5: hashdb.v1.SetProgramRequest
	(*GetProgramRequest)(nil),          // 6: hashdb.v1.GetProgramRequest
	(*LoadDBRequest)(nil),              // 7: hashdb.v1.LoadDBRequest
	(*LoadProgramDBRequest)(nil),       // 8: hashdb.v1.LoadProgramDBRequest
	(*FlushRequest)(nil),               // 9: hashdb.v1.FlushRequest
	(*FinishTxRequest)(nil),            // 10: hashdb.v1.FinishTxRequest
	(*StartBlockRequest)(nil),          // 11: hashdb.v1.StartBlockRequest
	(*FinishBlockRequest)(nil),         // 12: hashdb.v1.FinishBlockRequest
	(*GetFlushDataRequest)(nil),        // 13: hashdb.v1.GetFlushDataRequest
	(*ConsolidateStateRequest)(nil),    // 14: hashdb.v1.ConsolidateStateRequest
	(*PurgeRequest)(nil),               // 15: hashdb.v1.PurgeRequest
	(*ReadTreeRequest)(nil),            // 16: hashdb.v1.ReadTreeRequest
	(*CancelBatchRequest)(nil),         // 17: hashdb.v1.CancelBatchRequest
	(*GetLatestStateRootResponse)(nil), // 18: hashdb.v1.GetLatestStateRootResponse
	(*SetResponse)(nil),                // 19: hashdb.v1.SetResponse
	(*GetResponse)(nil),                // 20: hashdb.v1.GetResponse
	(*SetProgramResponse)(nil),         // 21: hashdb.v1.SetProgramResponse
	(*GetProgramResponse)(nil),         // 22: hashdb.v1.GetProgramResponse
	(*FlushResponse)(nil),              // 23: hashdb.v1.FlushResponse
	(*GetFlushStatusResponse)(nil),     // 24: hashdb.v1.GetFlushStatusResponse
	(*GetFlushDataResponse)(nil),       // 25: hashdb.v1.GetFlushDataResponse
	(*ConsolidateStateResponse)(nil),   // 26: hashdb.v1.ConsolidateStateResponse
	(*PurgeResponse)(nil),              // 27: hashdb.v1.PurgeResponse
	(*ReadTreeResponse)(nil),           // 28: hashdb.v1.ReadTreeResponse
	(*CancelBatchResponse)(nil),        // 29: hashdb.v1.CancelBatchResponse
	(*ResetDBResponse)(nil),            // 30: hashdb.v1.ResetDBResponse
	(*Fea)(nil),                        // 31: hashdb.v1.Fea
	(*Fea12)(nil),                      // 32: hashdb.v1.Fea12
	(*HashValueGL)(nil),                // 33: hashdb.v1.HashValueGL
	(*KeyValue)(nil),                   // 34: hashdb.v1.KeyValue
	(*FeList)(nil),                     // 35: hashdb.v1.FeList
	(*SiblingList)(nil),                // 36: hashdb.v1.SiblingList
	(*ResultCode)(nil),                 // 37: hashdb.v1.ResultCode
	nil,                                // 38: hashdb.v1.LoadDBRequest.InputDbEntry
	nil,                                // 39: hashdb.v1.LoadProgramDBRequest.InputProgramDbEntry
	nil,                                // 40: hashdb.v1.SetResponse.SiblingsEntry
	nil,                                // 41: hashdb.v1.SetResponse.DbReadLogEntry
	nil,                                // 42: hashdb.v1.GetResponse.SiblingsEntry
	nil,                                // 43: hashdb.v1.GetResponse.DbReadLogEntry
	nil,                                // 44: hashdb.v1.GetFlushDataResponse.NodesEntry
	nil,                                // 45: hashdb.v1.GetFlushDataResponse.ProgramEntry
	(*emptypb.Empty)(nil),              // 46: google.protobuf.Empty
}
var file_hashdb_proto_depIdxs = []int32{
	31, // 0: hashdb.v1.SetRequest.old_root:type_name -> hashdb.v1.Fea
	31, // 1: hashdb.v1.SetRequest.key:type_name -> hashdb.v1.Fea
	0,  // 2: hashdb.v1.SetRequest.persistence:type_name -> hashdb.v1.Persistence
	31, // 3: hashdb.v1.GetRequest.root:type_name -> hashdb.v1.Fea
	31, // 4: hashdb.v1.GetRequest.key:type_name -> hashdb.v1.Fea
	31, // 5: hashdb.v1.SetProgramRequest.key:type_name -> hashdb.v1.Fea
	0,  // 6: hashdb.v1.SetProgramRequest.persistence:type_name -> hashdb.v1.Persistence
	31, // 7: hashdb.v1.GetProgramRequest.key:type_name -> hashdb.v1.Fea
	38, // 8: hashdb.v1.LoadDBRequest.input_db:type_name -> hashdb.v1.LoadDBRequest.InputDbEntry
	31, // 9: hashdb.v1.LoadDBRequest.state_root:type_name -> hashdb.v1.Fea
	39, // 10: hashdb.v1.LoadProgramDBRequest.input_program_db:type_name -> hashdb.v1.LoadProgramDBRequest.InputProgramDbEntry
	0,  // 11: hashdb.v1.FlushRequest.persistence:type_name -> hashdb.v1.Persistence
	0,  // 12: hashdb.v1.FinishTxRequest.persistence:type_name -> hashdb.v1.Persistence
	0,  // 13: hashdb.v1.StartBlockRequest.persistence:type_name -> hashdb.v1.Persistence
	0,  // 14: hashdb.v1.FinishBlockRequest.persistence:type_name -> hashdb.v1.Persistence
	31, // 15: hashdb.v1.ConsolidateStateRequest.virtual_state_root:type_name -> hashdb.v1.Fea
	0,  // 16: hashdb.v1.ConsolidateStateRequest.persistence:type_name -> hashdb.v1.Persistence
	31, // 17: hashdb.v1.PurgeRequest.new_state_root:type_name -> hashdb.v1.Fea
	0,  // 18: hashdb.v1.PurgeRequest.persistence:type_name -> hashdb.v1.Persistence
	31, // 19: hashdb.v1.ReadTreeRequest.state_root:type_name -> hashdb.v1.Fea
	31, // 20: hashdb.v1.ReadTreeRequest.keys:type_name -> hashdb.v1.Fea
	31, // 21: hashdb.v1.GetLatestStateRootResponse.latest_root:type_name -> hashdb.v1.Fea
	37, // 22: hashdb.v1.GetLatestStateRootResponse.result:type_name -> hashdb.v1.ResultCode
	31, // 23: hashdb.v1.SetResponse.old_root:type_name -> hashdb.v1.Fea
	31, // 24: hashdb.v1.SetResponse.new_root:type_name -> hashdb.v1.Fea
	31, // 25: hashdb.v1.SetResponse.key:type_name -> hashdb.v1.Fea
	40, // 26: hashdb.v1.SetResponse.siblings:type_name -> hashdb.v1.SetResponse.SiblingsEntry
	31, // 27: hashdb.v1.SetResponse.ins_key:type_name -> hashdb.v1.Fea
	41, // 28: hashdb.v1.SetResponse.db_read_log:type_name -> hashdb.v1.SetResponse.DbReadLogEntry
	37, // 29: hashdb.v1.SetResponse.result:type_name -> hashdb.v1.ResultCode
	31, // 30: hashdb.v1.SetResponse.sibling_left_child:type_name -> hashdb.v1.Fea
	31, // 31: hashdb.v1.SetResponse.sibling_right_child:type_name -> hashdb.v1.Fea
	31, // 32: hashdb.v1.GetResponse.root:type_name -> hashdb.v1.Fea
	31, // 33: hashdb.v1.GetResponse.key:type_name -> hashdb.v1.Fea
	42, // 34: hashdb.v1.GetResponse.siblings:type_name -> hashdb.v1.GetResponse.SiblingsEntry
	31, // 35: hashdb.v1.GetResponse.ins_key:type_name -> hashdb.v1.Fea
	43, // 36: hashdb.v1.GetResponse.db_read_log:type_name -> hashdb.v1.GetResponse.DbReadLogEntry
	37, // 37: hashdb.v1.GetResponse.result:type_name -> hashdb.v1.ResultCode
	37, // 38: hashdb.v1.SetProgramResponse.result:type_name -> hashdb.v1.ResultCode
	37, // 39: hashdb.v1.GetProgramResponse.result:type_name -> hashdb.v1.ResultCode
	37, // 40: hashdb.v1.FlushResponse.result:type_name -> hashdb.v1.ResultCode
	44, // 41: hashdb.v1.GetFlushDataResponse.nodes:type_name -> hashdb.v1.GetFlushDataResponse.NodesEntry
	45, // 42: hashdb.v1.GetFlushDataResponse.program:type_name -> hashdb.v1.GetFlushDataResponse.ProgramEntry
	37, // 43: hashdb.v1.GetFlushDataResponse.result:type_name -> hashdb.v1.ResultCode
	31, // 44: hashdb.v1.ConsolidateStateResponse.consolidated_state_root:type_name -> hashdb.v1.Fea
	37, // 45: hashdb.v1.ConsolidateStateResponse.result:type_name -> hashdb.v1.ResultCode
	37, // 46: hashdb.v1.PurgeResponse.result:type_name -> hashdb.v1.ResultCode
	34, // 47: hashdb.v1.ReadTreeResponse.key_value:type_name -> hashdb.v1.KeyValue
	33, // 48: hashdb.v1.ReadTreeResponse.hash_value:type_name -> hashdb.v1.HashValueGL
	37, // 49: hashdb.v1.ReadTreeResponse.result:type_name -> hashdb.v1.ResultCode
	37, // 50: hashdb.v1.CancelBatchResponse.result:type_name -> hashdb.v1.ResultCode
	37, // 51: hashdb.v1.ResetDBResponse.result:type_name -> hashdb.v1.ResultCode
	31, // 52: hashdb.v1.HashValueGL.hash:type_name -> hashdb.v1.Fea
	32, // 53: hashdb.v1.HashValueGL.value:type_name -> hashdb.v1.Fea12
	31, // 54: hashdb.v1.KeyValue.key:type_name -> hashdb.v1.Fea
	1,  // 55: hashdb.v1.ResultCode.code:type_name -> hashdb.v1.ResultCode.Code
	35, // 56: hashdb.v1.LoadDBRequest.InputDbEntry.value:type_name -> hashdb.v1.FeList
	36, // 57: hashdb.v1.SetResponse.SiblingsEntry.value:type_name -> hashdb.v1.SiblingList
	35, // 58: hashdb.v1.SetResponse.DbReadLogEntry.value:type_name -> hashdb.v1.FeList
	36, // 59: hashdb.v1.GetResponse.SiblingsEntry.value:type_name -> hashdb.v1.SiblingList
	35, // 60: hashdb.v1.GetResponse.DbReadLogEntry.value:type_name -> hashdb.v1.FeList
	46, // 61: hashdb.v1.HashDBService.GetLatestStateRoot:input_type -> google.protobuf.Empty
	3,  // 62: hashdb.v1.HashDBService.Set:input_type -> hashdb.v1.SetRequest
	4,  // 63: hashdb.v1.HashDBService.Get:input_type -> hashdb.v1.GetRequest
	5,  // 64: hashdb.v1.HashDBService.SetProgram:input_type -> hashdb.v1.SetProgramRequest
	6,  // 65: hashdb.v1.HashDBService.GetProgram:input_type -> hashdb.v1.GetProgramRequest
	7,  // 66: hashdb.v1.HashDBService.LoadDB:input_type -> hashdb.v1.LoadDBRequest
	8,  // 67: hashdb.v1.HashDBService.LoadProgramDB:input_type -> hashdb.v1.LoadProgramDBRequest
	10, // 68: hashdb.v1.HashDBService.FinishTx:input_type -> hashdb.v1.FinishTxRequest
	11, // 69: hashdb.v1.HashDBService.StartBlock:input_type -> hashdb.v1.StartBlockRequest
	12, // 70: hashdb.v1.HashDBService.FinishBlock:input_type -> hashdb.v1.FinishBlockRequest
	9,  // 71: hashdb.v1.HashDBService.Flush:input_type -> hashdb.v1.FlushRequest
	46, // 72: hashdb.v1.HashDBService.GetFlushStatus:input_type -> google.protobuf.Empty
	13, // 73: hashdb.v1.HashDBService.GetFlushData:input_type -> hashdb.v1.GetFlushDataRequest
	14, // 74: hashdb.v1.HashDBService.ConsolidateState:input_type -> hashdb.v1.ConsolidateStateRequest
	15, // 75: hashdb.v1.HashDBService.Purge:input_type -> hashdb.v1.PurgeRequest
	16, // 76: hashdb.v1.HashDBService.ReadTree:input_type -> hashdb.v1.ReadTreeRequest
	17, // 77: hashdb.v1.HashDBService.CancelBatch:input_type -> hashdb.v1.CancelBatchRequest
	46, // 78: hashdb.v1.HashDBService.ResetDB:input_type -> google.protobuf.Empty
	18, // 79: hashdb.v1.HashDBService.GetLatestStateRoot:output_type -> hashdb.v1.GetLatestStateRootResponse
	19, // 80: hashdb.v1.HashDBService.Set:output_type -> hashdb.v1.SetResponse
	20, // 81: hashdb.v1.HashDBService.Get:output_type -> hashdb.v1.GetResponse
	21, // 82: hashdb.v1.HashDBService.SetProgram:output_type -> hashdb.v1.SetProgramResponse
	22, // 83: hashdb.v1.HashDBService.GetProgram:output_type -> hashdb.v1.GetProgramResponse
	46, // 84: hashdb.v1.HashDBService.LoadDB:output_type -> google.protobuf.Empty
	46, // 85: hashdb.v1.HashDBService.LoadProgramDB:output_type -> google.protobuf.Empty
	46, // 86: hashdb.v1.HashDBService.FinishTx:output_type -> google.protobuf.Empty
	46, // 87: hashdb.v1.HashDBService.StartBlock:output_type -> google.protobuf.Empty
	46, // 88: hashdb.v1.HashDBService.FinishBlock:output_type -> google.protobuf.Empty
	23, // 89: hashdb.v1.HashDBService.Flush:output_type -> hashdb.v1.FlushResponse
	24, // 90: hashdb.v1.HashDBService.GetFlushStatus:output_type -> hashdb.v1.GetFlushStatusResponse
	25, // 91: hashdb.v1.HashDBService.GetFlushData:output_type -> hashdb.v1.GetFlushDataResponse
	26, // 92: hashdb.v1.HashDBService.ConsolidateState:output_type -> hashdb.v1.ConsolidateStateResponse
	27, // 93: hashdb.v1.HashDBService.Purge:output_type -> hashdb.v1.PurgeResponse
	28, // 94: hashdb.v1.HashDBService.ReadTree:output_type -> hashdb.v1.ReadTreeResponse
	29, // 95: hashdb.v1.HashDBService.CancelBatch:output_type -> hashdb.v1.CancelBatchResponse
	30, // 96: hashdb.v1.HashDBService.ResetDB:output_type -> hashdb.v1.ResetDBResponse
	79, // [79:97] is the sub-list for method output_type
	61, // [61:79] is the sub-list for method input_type
	61, // [61:61] is the sub-list for extension type_name
	61, // [61:61] is the sub-list for extension extendee
	0,  // [0:61] is the sub-list for field type_name
}

func init() { file_hashdb_proto_init() }
func file_hashdb_proto_init() {
	if File_hashdb_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_hashdb_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Version); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SetRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SetProgramRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetProgramRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LoadDBRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LoadProgramDBRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[7].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_hashdb_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FinishTxRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StartBlockRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FinishBlockRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetFlushDataRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ConsolidateStateRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PurgeRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReadTreeRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CancelBatchRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetLatestStateRootResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SetResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SetProgramResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetProgramResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[21].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_hashdb_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetFlushStatusResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetFlushDataResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ConsolidateStateResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PurgeResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReadTreeResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CancelBatchResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResetDBResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Fea); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Fea12); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*HashValueGL); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*KeyValue); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FeList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SiblingList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_hashdb_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResultCode); 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_hashdb_proto_rawDesc,
			NumEnums:      2,
			NumMessages:   44,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_hashdb_proto_goTypes,
		DependencyIndexes: file_hashdb_proto_depIdxs,
		EnumInfos:         file_hashdb_proto_enumTypes,
		MessageInfos:      file_hashdb_proto_msgTypes,
	}.Build()
	File_hashdb_proto = out.File
	file_hashdb_proto_rawDesc = nil
	file_hashdb_proto_goTypes = nil
	file_hashdb_proto_depIdxs = nil
}
