// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.26.0
// 	protoc        v3.9.1
// source: zksync.proto

package types

import (
	context "context"
	reflect "reflect"
	sync "sync"

	types "github.com/33cn/chain33/types"
	grpc "google.golang.org/grpc"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
)

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 ZksyncAction struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Value:
	//	*ZksyncAction_Deposit
	//	*ZksyncAction_ZkWithdraw
	//	*ZksyncAction_ZkTransfer
	//	*ZksyncAction_TransferToNew
	//	*ZksyncAction_ProxyExit
	//	*ZksyncAction_SetPubKey
	//	*ZksyncAction_FullExit
	//	*ZksyncAction_Swap
	//	*ZksyncAction_ContractToTree
	//	*ZksyncAction_TreeToContract
	//	*ZksyncAction_MintNFT
	//	*ZksyncAction_WithdrawNFT
	//	*ZksyncAction_TransferNFT
	//	*ZksyncAction_SetVerifyKey
	//	*ZksyncAction_CommitProof
	//	*ZksyncAction_SetVerifier
	//	*ZksyncAction_SetFee
	//	*ZksyncAction_SetTokenSymbol
	//	*ZksyncAction_SetExodusMode
	//	*ZksyncAction_Transfer
	//	*ZksyncAction_Withdraw
	//	*ZksyncAction_TransferToExec
	Value isZksyncAction_Value `protobuf_oneof:"value"`
	Ty    int32                `protobuf:"varint,15,opt,name=ty,proto3" json:"ty,omitempty"`
}

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

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

func (*ZksyncAction) ProtoMessage() {}

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

func (m *ZksyncAction) GetValue() isZksyncAction_Value {
	if m != nil {
		return m.Value
	}
	return nil
}

func (x *ZksyncAction) GetDeposit() *ZkDeposit {
	if x, ok := x.GetValue().(*ZksyncAction_Deposit); ok {
		return x.Deposit
	}
	return nil
}

func (x *ZksyncAction) GetZkWithdraw() *ZkWithdraw {
	if x, ok := x.GetValue().(*ZksyncAction_ZkWithdraw); ok {
		return x.ZkWithdraw
	}
	return nil
}

func (x *ZksyncAction) GetZkTransfer() *ZkTransfer {
	if x, ok := x.GetValue().(*ZksyncAction_ZkTransfer); ok {
		return x.ZkTransfer
	}
	return nil
}

func (x *ZksyncAction) GetTransferToNew() *ZkTransferToNew {
	if x, ok := x.GetValue().(*ZksyncAction_TransferToNew); ok {
		return x.TransferToNew
	}
	return nil
}

func (x *ZksyncAction) GetProxyExit() *ZkProxyExit {
	if x, ok := x.GetValue().(*ZksyncAction_ProxyExit); ok {
		return x.ProxyExit
	}
	return nil
}

func (x *ZksyncAction) GetSetPubKey() *ZkSetPubKey {
	if x, ok := x.GetValue().(*ZksyncAction_SetPubKey); ok {
		return x.SetPubKey
	}
	return nil
}

func (x *ZksyncAction) GetFullExit() *ZkFullExit {
	if x, ok := x.GetValue().(*ZksyncAction_FullExit); ok {
		return x.FullExit
	}
	return nil
}

func (x *ZksyncAction) GetSwap() *ZkSwap {
	if x, ok := x.GetValue().(*ZksyncAction_Swap); ok {
		return x.Swap
	}
	return nil
}

func (x *ZksyncAction) GetContractToTree() *ZkContractToTree {
	if x, ok := x.GetValue().(*ZksyncAction_ContractToTree); ok {
		return x.ContractToTree
	}
	return nil
}

func (x *ZksyncAction) GetTreeToContract() *ZkTreeToContract {
	if x, ok := x.GetValue().(*ZksyncAction_TreeToContract); ok {
		return x.TreeToContract
	}
	return nil
}

func (x *ZksyncAction) GetMintNFT() *ZkMintNFT {
	if x, ok := x.GetValue().(*ZksyncAction_MintNFT); ok {
		return x.MintNFT
	}
	return nil
}

func (x *ZksyncAction) GetWithdrawNFT() *ZkWithdrawNFT {
	if x, ok := x.GetValue().(*ZksyncAction_WithdrawNFT); ok {
		return x.WithdrawNFT
	}
	return nil
}

func (x *ZksyncAction) GetTransferNFT() *ZkTransferNFT {
	if x, ok := x.GetValue().(*ZksyncAction_TransferNFT); ok {
		return x.TransferNFT
	}
	return nil
}

func (x *ZksyncAction) GetSetVerifyKey() *ZkVerifyKey {
	if x, ok := x.GetValue().(*ZksyncAction_SetVerifyKey); ok {
		return x.SetVerifyKey
	}
	return nil
}

func (x *ZksyncAction) GetCommitProof() *ZkCommitProof {
	if x, ok := x.GetValue().(*ZksyncAction_CommitProof); ok {
		return x.CommitProof
	}
	return nil
}

func (x *ZksyncAction) GetSetVerifier() *ZkVerifier {
	if x, ok := x.GetValue().(*ZksyncAction_SetVerifier); ok {
		return x.SetVerifier
	}
	return nil
}

func (x *ZksyncAction) GetSetFee() *ZkSetFee {
	if x, ok := x.GetValue().(*ZksyncAction_SetFee); ok {
		return x.SetFee
	}
	return nil
}

func (x *ZksyncAction) GetSetTokenSymbol() *ZkTokenSymbol {
	if x, ok := x.GetValue().(*ZksyncAction_SetTokenSymbol); ok {
		return x.SetTokenSymbol
	}
	return nil
}

func (x *ZksyncAction) GetSetExodusMode() *ZkExodusMode {
	if x, ok := x.GetValue().(*ZksyncAction_SetExodusMode); ok {
		return x.SetExodusMode
	}
	return nil
}

func (x *ZksyncAction) GetTransfer() *types.AssetsTransfer {
	if x, ok := x.GetValue().(*ZksyncAction_Transfer); ok {
		return x.Transfer
	}
	return nil
}

func (x *ZksyncAction) GetWithdraw() *types.AssetsWithdraw {
	if x, ok := x.GetValue().(*ZksyncAction_Withdraw); ok {
		return x.Withdraw
	}
	return nil
}

func (x *ZksyncAction) GetTransferToExec() *types.AssetsTransferToExec {
	if x, ok := x.GetValue().(*ZksyncAction_TransferToExec); ok {
		return x.TransferToExec
	}
	return nil
}

func (x *ZksyncAction) GetTy() int32 {
	if x != nil {
		return x.Ty
	}
	return 0
}

type isZksyncAction_Value interface {
	isZksyncAction_Value()
}

type ZksyncAction_Deposit struct {
	Deposit *ZkDeposit `protobuf:"bytes,1,opt,name=deposit,proto3,oneof"`
}

type ZksyncAction_ZkWithdraw struct {
	ZkWithdraw *ZkWithdraw `protobuf:"bytes,2,opt,name=zkWithdraw,proto3,oneof"`
}

type ZksyncAction_ZkTransfer struct {
	ZkTransfer *ZkTransfer `protobuf:"bytes,3,opt,name=zkTransfer,proto3,oneof"`
}

type ZksyncAction_TransferToNew struct {
	TransferToNew *ZkTransferToNew `protobuf:"bytes,4,opt,name=transferToNew,proto3,oneof"`
}

type ZksyncAction_ProxyExit struct {
	ProxyExit *ZkProxyExit `protobuf:"bytes,5,opt,name=proxyExit,proto3,oneof"`
}

type ZksyncAction_SetPubKey struct {
	SetPubKey *ZkSetPubKey `protobuf:"bytes,6,opt,name=setPubKey,proto3,oneof"`
}

type ZksyncAction_FullExit struct {
	FullExit *ZkFullExit `protobuf:"bytes,7,opt,name=fullExit,proto3,oneof"`
}

type ZksyncAction_Swap struct {
	Swap *ZkSwap `protobuf:"bytes,8,opt,name=swap,proto3,oneof"`
}

type ZksyncAction_ContractToTree struct {
	ContractToTree *ZkContractToTree `protobuf:"bytes,9,opt,name=contractToTree,proto3,oneof"`
}

type ZksyncAction_TreeToContract struct {
	TreeToContract *ZkTreeToContract `protobuf:"bytes,10,opt,name=treeToContract,proto3,oneof"`
}

type ZksyncAction_MintNFT struct {
	MintNFT *ZkMintNFT `protobuf:"bytes,12,opt,name=mintNFT,proto3,oneof"`
}

type ZksyncAction_WithdrawNFT struct {
	WithdrawNFT *ZkWithdrawNFT `protobuf:"bytes,13,opt,name=withdrawNFT,proto3,oneof"`
}

type ZksyncAction_TransferNFT struct {
	TransferNFT *ZkTransferNFT `protobuf:"bytes,14,opt,name=transferNFT,proto3,oneof"`
}

type ZksyncAction_SetVerifyKey struct {
	SetVerifyKey *ZkVerifyKey `protobuf:"bytes,31,opt,name=setVerifyKey,proto3,oneof"`
}

type ZksyncAction_CommitProof struct {
	CommitProof *ZkCommitProof `protobuf:"bytes,32,opt,name=commitProof,proto3,oneof"`
}

type ZksyncAction_SetVerifier struct {
	SetVerifier *ZkVerifier `protobuf:"bytes,33,opt,name=setVerifier,proto3,oneof"`
}

type ZksyncAction_SetFee struct {
	SetFee *ZkSetFee `protobuf:"bytes,34,opt,name=setFee,proto3,oneof"`
}

type ZksyncAction_SetTokenSymbol struct {
	SetTokenSymbol *ZkTokenSymbol `protobuf:"bytes,35,opt,name=setTokenSymbol,proto3,oneof"`
}

type ZksyncAction_SetExodusMode struct {
	SetExodusMode *ZkExodusMode `protobuf:"bytes,36,opt,name=setExodusMode,proto3,oneof"`
}

type ZksyncAction_Transfer struct {
	Transfer *types.AssetsTransfer `protobuf:"bytes,40,opt,name=transfer,proto3,oneof"`
}

type ZksyncAction_Withdraw struct {
	Withdraw *types.AssetsWithdraw `protobuf:"bytes,41,opt,name=withdraw,proto3,oneof"`
}

type ZksyncAction_TransferToExec struct {
	TransferToExec *types.AssetsTransferToExec `protobuf:"bytes,42,opt,name=transferToExec,proto3,oneof"`
}

func (*ZksyncAction_Deposit) isZksyncAction_Value() {}

func (*ZksyncAction_ZkWithdraw) isZksyncAction_Value() {}

func (*ZksyncAction_ZkTransfer) isZksyncAction_Value() {}

func (*ZksyncAction_TransferToNew) isZksyncAction_Value() {}

func (*ZksyncAction_ProxyExit) isZksyncAction_Value() {}

func (*ZksyncAction_SetPubKey) isZksyncAction_Value() {}

func (*ZksyncAction_FullExit) isZksyncAction_Value() {}

func (*ZksyncAction_Swap) isZksyncAction_Value() {}

func (*ZksyncAction_ContractToTree) isZksyncAction_Value() {}

func (*ZksyncAction_TreeToContract) isZksyncAction_Value() {}

func (*ZksyncAction_MintNFT) isZksyncAction_Value() {}

func (*ZksyncAction_WithdrawNFT) isZksyncAction_Value() {}

func (*ZksyncAction_TransferNFT) isZksyncAction_Value() {}

func (*ZksyncAction_SetVerifyKey) isZksyncAction_Value() {}

func (*ZksyncAction_CommitProof) isZksyncAction_Value() {}

func (*ZksyncAction_SetVerifier) isZksyncAction_Value() {}

func (*ZksyncAction_SetFee) isZksyncAction_Value() {}

func (*ZksyncAction_SetTokenSymbol) isZksyncAction_Value() {}

func (*ZksyncAction_SetExodusMode) isZksyncAction_Value() {}

func (*ZksyncAction_Transfer) isZksyncAction_Value() {}

func (*ZksyncAction_Withdraw) isZksyncAction_Value() {}

func (*ZksyncAction_TransferToExec) isZksyncAction_Value() {}

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

	Id      string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Symbol  string `protobuf:"bytes,2,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Decimal uint32 `protobuf:"varint,3,opt,name=decimal,proto3" json:"decimal,omitempty"`
}

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

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

func (*ZkTokenSymbol) ProtoMessage() {}

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

func (x *ZkTokenSymbol) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *ZkTokenSymbol) GetSymbol() string {
	if x != nil {
		return x.Symbol
	}
	return ""
}

func (x *ZkTokenSymbol) GetDecimal() uint32 {
	if x != nil {
		return x.Decimal
	}
	return 0
}

//某个token的余额
type TokenBalance struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	TokenId   uint64 `protobuf:"varint,1,opt,name=tokenId,proto3" json:"tokenId,omitempty"`
	Balance   string `protobuf:"bytes,2,opt,name=balance,proto3" json:"balance,omitempty"`
	TokenHash []byte `protobuf:"bytes,3,opt,name=tokenHash,proto3" json:"tokenHash,omitempty"`
}

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

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

func (*TokenBalance) ProtoMessage() {}

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

func (x *TokenBalance) GetTokenId() uint64 {
	if x != nil {
		return x.TokenId
	}
	return 0
}

func (x *TokenBalance) GetBalance() string {
	if x != nil {
		return x.Balance
	}
	return ""
}

func (x *TokenBalance) GetTokenHash() []byte {
	if x != nil {
		return x.TokenHash
	}
	return nil
}

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

	Index           uint64     `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"`                     //当前的叶子索引
	TotalIndex      uint64     `protobuf:"varint,2,opt,name=totalIndex,proto3" json:"totalIndex,omitempty"`           //总计叶子索引
	MaxCurrentIndex uint64     `protobuf:"varint,3,opt,name=maxCurrentIndex,proto3" json:"maxCurrentIndex,omitempty"` //当前索引最大值，超过最大值会进行归档
	SubTrees        []*SubTree `protobuf:"bytes,4,rep,name=subTrees,proto3" json:"subTrees,omitempty"`                //当前未归档的子树
}

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

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

func (*AccountTree) ProtoMessage() {}

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

func (x *AccountTree) GetIndex() uint64 {
	if x != nil {
		return x.Index
	}
	return 0
}

func (x *AccountTree) GetTotalIndex() uint64 {
	if x != nil {
		return x.TotalIndex
	}
	return 0
}

func (x *AccountTree) GetMaxCurrentIndex() uint64 {
	if x != nil {
		return x.MaxCurrentIndex
	}
	return 0
}

func (x *AccountTree) GetSubTrees() []*SubTree {
	if x != nil {
		return x.SubTrees
	}
	return nil
}

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

	AccountId    uint64               `protobuf:"varint,1,opt,name=accountId,proto3" json:"accountId,omitempty"`      //accountId其实就是叶子的totalIndex
	EthAddress   string               `protobuf:"bytes,2,opt,name=ethAddress,proto3" json:"ethAddress,omitempty"`     //账户对应的以太坊地址
	PubKey       *ZkPubKey            `protobuf:"bytes,3,opt,name=pubKey,proto3" json:"pubKey,omitempty"`             //eddsa公钥，用于验证身份
	Chain33Addr  string               `protobuf:"bytes,4,opt,name=chain33Addr,proto3" json:"chain33Addr,omitempty"`   //chain33地址
	TokenHash    []byte               `protobuf:"bytes,5,opt,name=tokenHash,proto3" json:"tokenHash,omitempty"`       //叶子下token的hash
	TokenIds     []uint64             `protobuf:"varint,6,rep,packed,name=tokenIds,proto3" json:"tokenIds,omitempty"` //叶子下拥有的tokenId
	ProxyPubKeys *AccountProxyPubKeys `protobuf:"bytes,7,opt,name=proxyPubKeys,proto3" json:"proxyPubKeys,omitempty"` //eddsa代理公钥，用于验证代理者的身份
	LeafHash     []byte               `protobuf:"bytes,8,opt,name=leafHash,proto3" json:"leafHash,omitempty"`
}

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

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

func (*Leaf) ProtoMessage() {}

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

func (x *Leaf) GetAccountId() uint64 {
	if x != nil {
		return x.AccountId
	}
	return 0
}

func (x *Leaf) GetEthAddress() string {
	if x != nil {
		return x.EthAddress
	}
	return ""
}

func (x *Leaf) GetPubKey() *ZkPubKey {
	if x != nil {
		return x.PubKey
	}
	return nil
}

func (x *Leaf) GetChain33Addr() string {
	if x != nil {
		return x.Chain33Addr
	}
	return ""
}

func (x *Leaf) GetTokenHash() []byte {
	if x != nil {
		return x.TokenHash
	}
	return nil
}

func (x *Leaf) GetTokenIds() []uint64 {
	if x != nil {
		return x.TokenIds
	}
	return nil
}

func (x *Leaf) GetProxyPubKeys() *AccountProxyPubKeys {
	if x != nil {
		return x.ProxyPubKeys
	}
	return nil
}

func (x *Leaf) GetLeafHash() []byte {
	if x != nil {
		return x.LeafHash
	}
	return nil
}

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

	AccountId    uint64               `protobuf:"varint,1,opt,name=accountId,proto3" json:"accountId,omitempty"`      //accountId其实就是叶子的totalIndex
	EthAddress   string               `protobuf:"bytes,2,opt,name=ethAddress,proto3" json:"ethAddress,omitempty"`     //账户对应的以太坊地址
	PubKey       *ZkPubKey            `protobuf:"bytes,3,opt,name=pubKey,proto3" json:"pubKey,omitempty"`             //eddsa公钥，用于验证身份
	Chain33Addr  string               `protobuf:"bytes,4,opt,name=chain33Addr,proto3" json:"chain33Addr,omitempty"`   //chain33地址
	TokenHash    string               `protobuf:"bytes,5,opt,name=tokenHash,proto3" json:"tokenHash,omitempty"`       //叶子下token的hash
	Tokens       []*TokenBalance      `protobuf:"bytes,6,rep,name=tokens,proto3" json:"tokens,omitempty"`             //叶子下拥有的token
	ProofId      uint64               `protobuf:"varint,7,opt,name=proofId,proto3" json:"proofId,omitempty"`          //账户状态所在的proofId
	ProxyPubKeys *AccountProxyPubKeys `protobuf:"bytes,8,opt,name=proxyPubKeys,proto3" json:"proxyPubKeys,omitempty"` //eddsa代理公钥，用于验证代理者的身份
}

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

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

func (*HistoryLeaf) ProtoMessage() {}

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

func (x *HistoryLeaf) GetAccountId() uint64 {
	if x != nil {
		return x.AccountId
	}
	return 0
}

func (x *HistoryLeaf) GetEthAddress() string {
	if x != nil {
		return x.EthAddress
	}
	return ""
}

func (x *HistoryLeaf) GetPubKey() *ZkPubKey {
	if x != nil {
		return x.PubKey
	}
	return nil
}

func (x *HistoryLeaf) GetChain33Addr() string {
	if x != nil {
		return x.Chain33Addr
	}
	return ""
}

func (x *HistoryLeaf) GetTokenHash() string {
	if x != nil {
		return x.TokenHash
	}
	return ""
}

func (x *HistoryLeaf) GetTokens() []*TokenBalance {
	if x != nil {
		return x.Tokens
	}
	return nil
}

func (x *HistoryLeaf) GetProofId() uint64 {
	if x != nil {
		return x.ProofId
	}
	return 0
}

func (x *HistoryLeaf) GetProxyPubKeys() *AccountProxyPubKeys {
	if x != nil {
		return x.ProxyPubKeys
	}
	return nil
}

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

	RootHash   []byte `protobuf:"bytes,1,opt,name=rootHash,proto3" json:"rootHash,omitempty"`      //归档Merkle Tree的根hash
	Height     int32  `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"`         //归档的高度
	StartIndex uint64 `protobuf:"varint,3,opt,name=startIndex,proto3" json:"startIndex,omitempty"` //开始的全局index
}

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

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

func (*RootInfo) ProtoMessage() {}

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

func (x *RootInfo) GetRootHash() []byte {
	if x != nil {
		return x.RootHash
	}
	return nil
}

func (x *RootInfo) GetHeight() int32 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *RootInfo) GetStartIndex() uint64 {
	if x != nil {
		return x.StartIndex
	}
	return 0
}

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

	Height   int32  `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
	RootHash []byte `protobuf:"bytes,2,opt,name=rootHash,proto3" json:"rootHash,omitempty"` //子树的根hash
}

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

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

func (*SubTree) ProtoMessage() {}

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

func (x *SubTree) GetHeight() int32 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *SubTree) GetRootHash() []byte {
	if x != nil {
		return x.RootHash
	}
	return nil
}

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

	TokenId      uint64       `protobuf:"varint,1,opt,name=tokenId,proto3" json:"tokenId,omitempty"`
	Amount       string       `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"`
	EthAddress   string       `protobuf:"bytes,3,opt,name=ethAddress,proto3" json:"ethAddress,omitempty"`
	Chain33Addr  string       `protobuf:"bytes,4,opt,name=chain33Addr,proto3" json:"chain33Addr,omitempty"`
	L1PriorityId int64        `protobuf:"varint,5,opt,name=l1PriorityId,proto3" json:"l1PriorityId,omitempty"` //需要在合约保证id连续
	Signature    *ZkSignature `protobuf:"bytes,6,opt,name=signature,proto3" json:"signature,omitempty"`
}

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

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

func (*ZkDeposit) ProtoMessage() {}

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

func (x *ZkDeposit) GetTokenId() uint64 {
	if x != nil {
		return x.TokenId
	}
	return 0
}

func (x *ZkDeposit) GetAmount() string {
	if x != nil {
		return x.Amount
	}
	return ""
}

func (x *ZkDeposit) GetEthAddress() string {
	if x != nil {
		return x.EthAddress
	}
	return ""
}

func (x *ZkDeposit) GetChain33Addr() string {
	if x != nil {
		return x.Chain33Addr
	}
	return ""
}

func (x *ZkDeposit) GetL1PriorityId() int64 {
	if x != nil {
		return x.L1PriorityId
	}
	return 0
}

func (x *ZkDeposit) GetSignature() *ZkSignature {
	if x != nil {
		return x.Signature
	}
	return nil
}

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

	TokenId   uint64       `protobuf:"varint,1,opt,name=tokenId,proto3" json:"tokenId,omitempty"`
	Amount    string       `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"`
	AccountId uint64       `protobuf:"varint,3,opt,name=accountId,proto3" json:"accountId,omitempty"`
	Signature *ZkSignature `protobuf:"bytes,4,opt,name=signature,proto3" json:"signature,omitempty"`
}

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

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

func (*ZkWithdraw) ProtoMessage() {}

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

func (x *ZkWithdraw) GetTokenId() uint64 {
	if x != nil {
		return x.TokenId
	}
	return 0
}

func (x *ZkWithdraw) GetAmount() string {
	if x != nil {
		return x.Amount
	}
	return ""
}

func (x *ZkWithdraw) GetAccountId() uint64 {
	if x != nil {
		return x.AccountId
	}
	return 0
}

func (x *ZkWithdraw) GetSignature() *ZkSignature {
	if x != nil {
		return x.Signature
	}
	return nil
}

//从chain33合约提款到二层
type ZkContractToTree struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	TokenSymbol  string       `protobuf:"bytes,1,opt,name=tokenSymbol,proto3" json:"tokenSymbol,omitempty"`
	Amount       string       `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"`
	ToAccountId  uint64       `protobuf:"varint,3,opt,name=toAccountId,proto3" json:"toAccountId,omitempty"`
	ToEthAddr    string       `protobuf:"bytes,4,opt,name=toEthAddr,proto3" json:"toEthAddr,omitempty"`
	ToLayer2Addr string       `protobuf:"bytes,5,opt,name=toLayer2Addr,proto3" json:"toLayer2Addr,omitempty"`
	Signature    *ZkSignature `protobuf:"bytes,6,opt,name=signature,proto3" json:"signature,omitempty"`
	FromExec     string       `protobuf:"bytes,7,opt,name=fromExec,proto3" json:"fromExec,omitempty"`
}

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

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

func (*ZkContractToTree) ProtoMessage() {}

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

func (x *ZkContractToTree) GetTokenSymbol() string {
	if x != nil {
		return x.TokenSymbol
	}
	return ""
}

func (x *ZkContractToTree) GetAmount() string {
	if x != nil {
		return x.Amount
	}
	return ""
}

func (x *ZkContractToTree) GetToAccountId() uint64 {
	if x != nil {
		return x.ToAccountId
	}
	return 0
}

func (x *ZkContractToTree) GetToEthAddr() string {
	if x != nil {
		return x.ToEthAddr
	}
	return ""
}

func (x *ZkContractToTree) GetToLayer2Addr() string {
	if x != nil {
		return x.ToLayer2Addr
	}
	return ""
}

func (x *ZkContractToTree) GetSignature() *ZkSignature {
	if x != nil {
		return x.Signature
	}
	return nil
}

func (x *ZkContractToTree) GetFromExec() string {
	if x != nil {
		return x.FromExec
	}
	return ""
}

//从二层铸造到chain33合约
type ZkTreeToContract struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	TokenId   uint64       `protobuf:"varint,1,opt,name=tokenId,proto3" json:"tokenId,omitempty"`
	Amount    string       `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"`
	AccountId uint64       `protobuf:"varint,3,opt,name=accountId,proto3" json:"accountId,omitempty"`
	ToAcctId  uint64       `protobuf:"varint,4,opt,name=toAcctId,proto3" json:"toAcctId,omitempty"` //缺省的systemTree2ContractId， 这里设置是为了签名需要和电路验证，也防止重放
	Signature *ZkSignature `protobuf:"bytes,5,opt,name=signature,proto3" json:"signature,omitempty"`
	ToExec    string       `protobuf:"bytes,6,opt,name=toExec,proto3" json:"toExec,omitempty"`
}

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

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

func (*ZkTreeToContract) ProtoMessage() {}

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

func (x *ZkTreeToContract) GetTokenId() uint64 {
	if x != nil {
		return x.TokenId
	}
	return 0
}

func (x *ZkTreeToContract) GetAmount() string {
	if x != nil {
		return x.Amount
	}
	return ""
}

func (x *ZkTreeToContract) GetAccountId() uint64 {
	if x != nil {
		return x.AccountId
	}
	return 0
}

func (x *ZkTreeToContract) GetToAcctId() uint64 {
	if x != nil {
		return x.ToAcctId
	}
	return 0
}

func (x *ZkTreeToContract) GetSignature() *ZkSignature {
	if x != nil {
		return x.Signature
	}
	return nil
}

func (x *ZkTreeToContract) GetToExec() string {
	if x != nil {
		return x.ToExec
	}
	return ""
}

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

	TokenId       uint64       `protobuf:"varint,1,opt,name=tokenId,proto3" json:"tokenId,omitempty"`
	Amount        string       `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"`
	FromAccountId uint64       `protobuf:"varint,3,opt,name=fromAccountId,proto3" json:"fromAccountId,omitempty"`
	ToAccountId   uint64       `protobuf:"varint,4,opt,name=toAccountId,proto3" json:"toAccountId,omitempty"`
	Signature     *ZkSignature `protobuf:"bytes,5,opt,name=signature,proto3" json:"signature,omitempty"`
}

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

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

func (*ZkTransfer) ProtoMessage() {}

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

func (x *ZkTransfer) GetTokenId() uint64 {
	if x != nil {
		return x.TokenId
	}
	return 0
}

func (x *ZkTransfer) GetAmount() string {
	if x != nil {
		return x.Amount
	}
	return ""
}

func (x *ZkTransfer) GetFromAccountId() uint64 {
	if x != nil {
		return x.FromAccountId
	}
	return 0
}

func (x *ZkTransfer) GetToAccountId() uint64 {
	if x != nil {
		return x.ToAccountId
	}
	return 0
}

func (x *ZkTransfer) GetSignature() *ZkSignature {
	if x != nil {
		return x.Signature
	}
	return nil
}

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

	TokenId         uint64       `protobuf:"varint,1,opt,name=tokenId,proto3" json:"tokenId,omitempty"`
	Amount          string       `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"`
	FromAccountId   uint64       `protobuf:"varint,3,opt,name=fromAccountId,proto3" json:"fromAccountId,omitempty"`
	ToEthAddress    string       `protobuf:"bytes,4,opt,name=toEthAddress,proto3" json:"toEthAddress,omitempty"`
	ToLayer2Address string       `protobuf:"bytes,5,opt,name=toLayer2Address,proto3" json:"toLayer2Address,omitempty"`
	Signature       *ZkSignature `protobuf:"bytes,6,opt,name=signature,proto3" json:"signature,omitempty"`
}

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

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

func (*ZkTransferToNew) ProtoMessage() {}

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

func (x *ZkTransferToNew) GetTokenId() uint64 {
	if x != nil {
		return x.TokenId
	}
	return 0
}

func (x *ZkTransferToNew) GetAmount() string {
	if x != nil {
		return x.Amount
	}
	return ""
}

func (x *ZkTransferToNew) GetFromAccountId() uint64 {
	if x != nil {
		return x.FromAccountId
	}
	return 0
}

func (x *ZkTransferToNew) GetToEthAddress() string {
	if x != nil {
		return x.ToEthAddress
	}
	return ""
}

func (x *ZkTransferToNew) GetToLayer2Address() string {
	if x != nil {
		return x.ToLayer2Address
	}
	return ""
}

func (x *ZkTransferToNew) GetSignature() *ZkSignature {
	if x != nil {
		return x.Signature
	}
	return nil
}

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

	TokenId   uint64       `protobuf:"varint,1,opt,name=tokenId,proto3" json:"tokenId,omitempty"`
	AccountId uint64       `protobuf:"varint,2,opt,name=accountId,proto3" json:"accountId,omitempty"`
	Signature *ZkSignature `protobuf:"bytes,3,opt,name=signature,proto3" json:"signature,omitempty"`
}

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

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

func (*ZkForceExit) ProtoMessage() {}

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

func (x *ZkForceExit) GetTokenId() uint64 {
	if x != nil {
		return x.TokenId
	}
	return 0
}

func (x *ZkForceExit) GetAccountId() uint64 {
	if x != nil {
		return x.AccountId
	}
	return 0
}

func (x *ZkForceExit) GetSignature() *ZkSignature {
	if x != nil {
		return x.Signature
	}
	return nil
}

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

	TokenId   uint64       `protobuf:"varint,1,opt,name=tokenId,proto3" json:"tokenId,omitempty"`
	ProxyId   uint64       `protobuf:"varint,2,opt,name=proxyId,proto3" json:"proxyId,omitempty"`   //代理id，扣手续费
	TargetId  uint64       `protobuf:"varint,3,opt,name=targetId,proto3" json:"targetId,omitempty"` //目标id
	Signature *ZkSignature `protobuf:"bytes,4,opt,name=signature,proto3" json:"signature,omitempty"`
	Fee       *ZkFee       `protobuf:"bytes,5,opt,name=fee,proto3" json:"fee,omitempty"`
}

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

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

func (*ZkProxyExit) ProtoMessage() {}

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

func (x *ZkProxyExit) GetTokenId() uint64 {
	if x != nil {
		return x.TokenId
	}
	return 0
}

func (x *ZkProxyExit) GetProxyId() uint64 {
	if x != nil {
		return x.ProxyId
	}
	return 0
}

func (x *ZkProxyExit) GetTargetId() uint64 {
	if x != nil {
		return x.TargetId
	}
	return 0
}

func (x *ZkProxyExit) GetSignature() *ZkSignature {
	if x != nil {
		return x.Signature
	}
	return nil
}

func (x *ZkProxyExit) GetFee() *ZkFee {
	if x != nil {
		return x.Fee
	}
	return nil
}

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

	AccountId uint64       `protobuf:"varint,1,opt,name=accountId,proto3" json:"accountId,omitempty"`
	PubKey    *ZkPubKey    `protobuf:"bytes,2,opt,name=pubKey,proto3" json:"pubKey,omitempty"`
	PubKeyTy  uint64       `protobuf:"varint,3,opt,name=pubKeyTy,proto3" json:"pubKeyTy,omitempty"`
	Signature *ZkSignature `protobuf:"bytes,4,opt,name=signature,proto3" json:"signature,omitempty"`
}

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

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

func (*ZkSetPubKey) ProtoMessage() {}

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

func (x *ZkSetPubKey) GetAccountId() uint64 {
	if x != nil {
		return x.AccountId
	}
	return 0
}

func (x *ZkSetPubKey) GetPubKey() *ZkPubKey {
	if x != nil {
		return x.PubKey
	}
	return nil
}

func (x *ZkSetPubKey) GetPubKeyTy() uint64 {
	if x != nil {
		return x.PubKeyTy
	}
	return 0
}

func (x *ZkSetPubKey) GetSignature() *ZkSignature {
	if x != nil {
		return x.Signature
	}
	return nil
}

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

	TokenId            uint64       `protobuf:"varint,1,opt,name=tokenId,proto3" json:"tokenId,omitempty"`
	AccountId          uint64       `protobuf:"varint,2,opt,name=accountId,proto3" json:"accountId,omitempty"`
	EthPriorityQueueId int64        `protobuf:"varint,3,opt,name=ethPriorityQueueId,proto3" json:"ethPriorityQueueId,omitempty"`
	Signature          *ZkSignature `protobuf:"bytes,4,opt,name=signature,proto3" json:"signature,omitempty"`
}

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

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

func (*ZkFullExit) ProtoMessage() {}

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

func (x *ZkFullExit) GetTokenId() uint64 {
	if x != nil {
		return x.TokenId
	}
	return 0
}

func (x *ZkFullExit) GetAccountId() uint64 {
	if x != nil {
		return x.AccountId
	}
	return 0
}

func (x *ZkFullExit) GetEthPriorityQueueId() int64 {
	if x != nil {
		return x.EthPriorityQueueId
	}
	return 0
}

func (x *ZkFullExit) GetSignature() *ZkSignature {
	if x != nil {
		return x.Signature
	}
	return nil
}

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

	Signature *ZkSignature `protobuf:"bytes,1,opt,name=signature,proto3" json:"signature,omitempty"`
}

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

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

func (*ZkSwap) ProtoMessage() {}

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

func (x *ZkSwap) GetSignature() *ZkSignature {
	if x != nil {
		return x.Signature
	}
	return nil
}

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

	FromAccountId uint64       `protobuf:"varint,1,opt,name=fromAccountId,proto3" json:"fromAccountId,omitempty"`
	RecipientId   uint64       `protobuf:"varint,2,opt,name=recipientId,proto3" json:"recipientId,omitempty"`
	ContentHash   string       `protobuf:"bytes,3,opt,name=contentHash,proto3" json:"contentHash,omitempty"`
	ErcProtocol   uint64       `protobuf:"varint,4,opt,name=ercProtocol,proto3" json:"ercProtocol,omitempty"`
	Amount        uint64       `protobuf:"varint,5,opt,name=amount,proto3" json:"amount,omitempty"`
	Signature     *ZkSignature `protobuf:"bytes,6,opt,name=signature,proto3" json:"signature,omitempty"`
}

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

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

func (*ZkMintNFT) ProtoMessage() {}

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

func (x *ZkMintNFT) GetFromAccountId() uint64 {
	if x != nil {
		return x.FromAccountId
	}
	return 0
}

func (x *ZkMintNFT) GetRecipientId() uint64 {
	if x != nil {
		return x.RecipientId
	}
	return 0
}

func (x *ZkMintNFT) GetContentHash() string {
	if x != nil {
		return x.ContentHash
	}
	return ""
}

func (x *ZkMintNFT) GetErcProtocol() uint64 {
	if x != nil {
		return x.ErcProtocol
	}
	return 0
}

func (x *ZkMintNFT) GetAmount() uint64 {
	if x != nil {
		return x.Amount
	}
	return 0
}

func (x *ZkMintNFT) GetSignature() *ZkSignature {
	if x != nil {
		return x.Signature
	}
	return nil
}

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

	FromAccountId uint64       `protobuf:"varint,1,opt,name=fromAccountId,proto3" json:"fromAccountId,omitempty"`
	NFTTokenId    uint64       `protobuf:"varint,2,opt,name=NFTTokenId,proto3" json:"NFTTokenId,omitempty"`
	Amount        uint64       `protobuf:"varint,3,opt,name=amount,proto3" json:"amount,omitempty"`
	Signature     *ZkSignature `protobuf:"bytes,5,opt,name=signature,proto3" json:"signature,omitempty"`
}

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

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

func (*ZkWithdrawNFT) ProtoMessage() {}

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

func (x *ZkWithdrawNFT) GetFromAccountId() uint64 {
	if x != nil {
		return x.FromAccountId
	}
	return 0
}

func (x *ZkWithdrawNFT) GetNFTTokenId() uint64 {
	if x != nil {
		return x.NFTTokenId
	}
	return 0
}

func (x *ZkWithdrawNFT) GetAmount() uint64 {
	if x != nil {
		return x.Amount
	}
	return 0
}

func (x *ZkWithdrawNFT) GetSignature() *ZkSignature {
	if x != nil {
		return x.Signature
	}
	return nil
}

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

	FromAccountId uint64       `protobuf:"varint,1,opt,name=fromAccountId,proto3" json:"fromAccountId,omitempty"`
	RecipientId   uint64       `protobuf:"varint,2,opt,name=recipientId,proto3" json:"recipientId,omitempty"`
	NFTTokenId    uint64       `protobuf:"varint,3,opt,name=NFTTokenId,proto3" json:"NFTTokenId,omitempty"`
	Amount        uint64       `protobuf:"varint,4,opt,name=amount,proto3" json:"amount,omitempty"`
	Signature     *ZkSignature `protobuf:"bytes,6,opt,name=signature,proto3" json:"signature,omitempty"`
}

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

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

func (*ZkTransferNFT) ProtoMessage() {}

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

func (x *ZkTransferNFT) GetFromAccountId() uint64 {
	if x != nil {
		return x.FromAccountId
	}
	return 0
}

func (x *ZkTransferNFT) GetRecipientId() uint64 {
	if x != nil {
		return x.RecipientId
	}
	return 0
}

func (x *ZkTransferNFT) GetNFTTokenId() uint64 {
	if x != nil {
		return x.NFTTokenId
	}
	return 0
}

func (x *ZkTransferNFT) GetAmount() uint64 {
	if x != nil {
		return x.Amount
	}
	return 0
}

func (x *ZkTransferNFT) GetSignature() *ZkSignature {
	if x != nil {
		return x.Signature
	}
	return nil
}

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

	Id              uint64 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`
	CreatorId       uint64 `protobuf:"varint,2,opt,name=creatorId,proto3" json:"creatorId,omitempty"`
	CreatorEthAddr  string `protobuf:"bytes,3,opt,name=creatorEthAddr,proto3" json:"creatorEthAddr,omitempty"`
	CreatorSerialId uint64 `protobuf:"varint,4,opt,name=creatorSerialId,proto3" json:"creatorSerialId,omitempty"`
	ErcProtocol     uint64 `protobuf:"varint,5,opt,name=ercProtocol,proto3" json:"ercProtocol,omitempty"`
	MintAmount      uint64 `protobuf:"varint,6,opt,name=mintAmount,proto3" json:"mintAmount,omitempty"`
	ContentHash     string `protobuf:"bytes,7,opt,name=contentHash,proto3" json:"contentHash,omitempty"`
	BurnedAmount    uint64 `protobuf:"varint,8,opt,name=burnedAmount,proto3" json:"burnedAmount,omitempty"` //是否提取到了L1
}

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

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

func (*ZkNFTTokenStatus) ProtoMessage() {}

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

func (x *ZkNFTTokenStatus) GetId() uint64 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *ZkNFTTokenStatus) GetCreatorId() uint64 {
	if x != nil {
		return x.CreatorId
	}
	return 0
}

func (x *ZkNFTTokenStatus) GetCreatorEthAddr() string {
	if x != nil {
		return x.CreatorEthAddr
	}
	return ""
}

func (x *ZkNFTTokenStatus) GetCreatorSerialId() uint64 {
	if x != nil {
		return x.CreatorSerialId
	}
	return 0
}

func (x *ZkNFTTokenStatus) GetErcProtocol() uint64 {
	if x != nil {
		return x.ErcProtocol
	}
	return 0
}

func (x *ZkNFTTokenStatus) GetMintAmount() uint64 {
	if x != nil {
		return x.MintAmount
	}
	return 0
}

func (x *ZkNFTTokenStatus) GetContentHash() string {
	if x != nil {
		return x.ContentHash
	}
	return ""
}

func (x *ZkNFTTokenStatus) GetBurnedAmount() uint64 {
	if x != nil {
		return x.BurnedAmount
	}
	return 0
}

//电路验证key
type ZkVerifyKey struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
}

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

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

func (*ZkVerifyKey) ProtoMessage() {}

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

func (x *ZkVerifyKey) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

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

	Prev    *ZkVerifyKey `protobuf:"bytes,1,opt,name=prev,proto3" json:"prev,omitempty"`
	Current *ZkVerifyKey `protobuf:"bytes,2,opt,name=current,proto3" json:"current,omitempty"`
}

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

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

func (*ReceiptSetVerifyKey) ProtoMessage() {}

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

func (x *ReceiptSetVerifyKey) GetPrev() *ZkVerifyKey {
	if x != nil {
		return x.Prev
	}
	return nil
}

func (x *ReceiptSetVerifyKey) GetCurrent() *ZkVerifyKey {
	if x != nil {
		return x.Current
	}
	return nil
}

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

	EthFeeAddr string `protobuf:"bytes,1,opt,name=ethFeeAddr,proto3" json:"ethFeeAddr,omitempty"`
	L2FeeAddr  string `protobuf:"bytes,2,opt,name=l2FeeAddr,proto3" json:"l2FeeAddr,omitempty"`
}

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

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

func (*ZkFeeAddrs) ProtoMessage() {}

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

func (x *ZkFeeAddrs) GetEthFeeAddr() string {
	if x != nil {
		return x.EthFeeAddr
	}
	return ""
}

func (x *ZkFeeAddrs) GetL2FeeAddr() string {
	if x != nil {
		return x.L2FeeAddr
	}
	return ""
}

//commit proof tx data
type ZkCommitProof struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	BlockStart  uint64 `protobuf:"varint,1,opt,name=blockStart,proto3" json:"blockStart,omitempty"`
	IndexStart  uint64 `protobuf:"varint,2,opt,name=indexStart,proto3" json:"indexStart,omitempty"`
	BlockEnd    uint64 `protobuf:"varint,3,opt,name=blockEnd,proto3" json:"blockEnd,omitempty"`
	IndexEnd    uint64 `protobuf:"varint,4,opt,name=indexEnd,proto3" json:"indexEnd,omitempty"`
	OpIndex     uint32 `protobuf:"varint,5,opt,name=opIndex,proto3" json:"opIndex,omitempty"`
	OldTreeRoot string `protobuf:"bytes,6,opt,name=oldTreeRoot,proto3" json:"oldTreeRoot,omitempty"`
	NewTreeRoot string `protobuf:"bytes,7,opt,name=newTreeRoot,proto3" json:"newTreeRoot,omitempty"`
	//proof serialized public input
	PublicInput string `protobuf:"bytes,8,opt,name=publicInput,proto3" json:"publicInput,omitempty"`
	Proof       string `protobuf:"bytes,9,opt,name=proof,proto3" json:"proof,omitempty"`
	//all tx pub datas
	PubDatas        []string `protobuf:"bytes,10,rep,name=pubDatas,proto3" json:"pubDatas,omitempty"`
	OnChainPubDatas []string `protobuf:"bytes,11,rep,name=onChainPubDatas,proto3" json:"onChainPubDatas,omitempty"`
	ProofId         uint64   `protobuf:"varint,12,opt,name=proofId,proto3" json:"proofId,omitempty"`
	//包含onChainPubdata的proof排序
	OnChainProofId uint64 `protobuf:"varint,13,opt,name=onChainProofId,proto3" json:"onChainProofId,omitempty"`
	//commit时候的blockHeight,localdb会填充
	CommitBlockHeight int64 `protobuf:"varint,14,opt,name=commitBlockHeight,proto3" json:"commitBlockHeight,omitempty"`
}

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

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

func (*ZkCommitProof) ProtoMessage() {}

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

func (x *ZkCommitProof) GetBlockStart() uint64 {
	if x != nil {
		return x.BlockStart
	}
	return 0
}

func (x *ZkCommitProof) GetIndexStart() uint64 {
	if x != nil {
		return x.IndexStart
	}
	return 0
}

func (x *ZkCommitProof) GetBlockEnd() uint64 {
	if x != nil {
		return x.BlockEnd
	}
	return 0
}

func (x *ZkCommitProof) GetIndexEnd() uint64 {
	if x != nil {
		return x.IndexEnd
	}
	return 0
}

func (x *ZkCommitProof) GetOpIndex() uint32 {
	if x != nil {
		return x.OpIndex
	}
	return 0
}

func (x *ZkCommitProof) GetOldTreeRoot() string {
	if x != nil {
		return x.OldTreeRoot
	}
	return ""
}

func (x *ZkCommitProof) GetNewTreeRoot() string {
	if x != nil {
		return x.NewTreeRoot
	}
	return ""
}

func (x *ZkCommitProof) GetPublicInput() string {
	if x != nil {
		return x.PublicInput
	}
	return ""
}

func (x *ZkCommitProof) GetProof() string {
	if x != nil {
		return x.Proof
	}
	return ""
}

func (x *ZkCommitProof) GetPubDatas() []string {
	if x != nil {
		return x.PubDatas
	}
	return nil
}

func (x *ZkCommitProof) GetOnChainPubDatas() []string {
	if x != nil {
		return x.OnChainPubDatas
	}
	return nil
}

func (x *ZkCommitProof) GetProofId() uint64 {
	if x != nil {
		return x.ProofId
	}
	return 0
}

func (x *ZkCommitProof) GetOnChainProofId() uint64 {
	if x != nil {
		return x.OnChainProofId
	}
	return 0
}

func (x *ZkCommitProof) GetCommitBlockHeight() int64 {
	if x != nil {
		return x.CommitBlockHeight
	}
	return 0
}

//commit proof stat, pubdata保存到localdb
type CommitProofState struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	BlockStart  uint64 `protobuf:"varint,1,opt,name=blockStart,proto3" json:"blockStart,omitempty"`
	IndexStart  uint64 `protobuf:"varint,2,opt,name=indexStart,proto3" json:"indexStart,omitempty"`
	BlockEnd    uint64 `protobuf:"varint,3,opt,name=blockEnd,proto3" json:"blockEnd,omitempty"`
	IndexEnd    uint64 `protobuf:"varint,4,opt,name=indexEnd,proto3" json:"indexEnd,omitempty"`
	OpIndex     uint32 `protobuf:"varint,5,opt,name=opIndex,proto3" json:"opIndex,omitempty"`
	OldTreeRoot string `protobuf:"bytes,6,opt,name=oldTreeRoot,proto3" json:"oldTreeRoot,omitempty"`
	NewTreeRoot string `protobuf:"bytes,7,opt,name=newTreeRoot,proto3" json:"newTreeRoot,omitempty"`
	//proof serialized public input
	PublicInput    string `protobuf:"bytes,8,opt,name=publicInput,proto3" json:"publicInput,omitempty"`
	Proof          string `protobuf:"bytes,9,opt,name=proof,proto3" json:"proof,omitempty"`
	ProofId        uint64 `protobuf:"varint,10,opt,name=proofId,proto3" json:"proofId,omitempty"`
	OnChainProofId uint64 `protobuf:"varint,11,opt,name=onChainProofId,proto3" json:"onChainProofId,omitempty"`
	//commit时候的blockHeight
	CommitBlockHeight int64 `protobuf:"varint,12,opt,name=commitBlockHeight,proto3" json:"commitBlockHeight,omitempty"`
	//all tx pub datas, record proof 的验证需要用到
	PubDatas []string `protobuf:"bytes,14,rep,name=pubDatas,proto3" json:"pubDatas,omitempty"`
}

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

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

func (*CommitProofState) ProtoMessage() {}

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

func (x *CommitProofState) GetBlockStart() uint64 {
	if x != nil {
		return x.BlockStart
	}
	return 0
}

func (x *CommitProofState) GetIndexStart() uint64 {
	if x != nil {
		return x.IndexStart
	}
	return 0
}

func (x *CommitProofState) GetBlockEnd() uint64 {
	if x != nil {
		return x.BlockEnd
	}
	return 0
}

func (x *CommitProofState) GetIndexEnd() uint64 {
	if x != nil {
		return x.IndexEnd
	}
	return 0
}

func (x *CommitProofState) GetOpIndex() uint32 {
	if x != nil {
		return x.OpIndex
	}
	return 0
}

func (x *CommitProofState) GetOldTreeRoot() string {
	if x != nil {
		return x.OldTreeRoot
	}
	return ""
}

func (x *CommitProofState) GetNewTreeRoot() string {
	if x != nil {
		return x.NewTreeRoot
	}
	return ""
}

func (x *CommitProofState) GetPublicInput() string {
	if x != nil {
		return x.PublicInput
	}
	return ""
}

func (x *CommitProofState) GetProof() string {
	if x != nil {
		return x.Proof
	}
	return ""
}

func (x *CommitProofState) GetProofId() uint64 {
	if x != nil {
		return x.ProofId
	}
	return 0
}

func (x *CommitProofState) GetOnChainProofId() uint64 {
	if x != nil {
		return x.OnChainProofId
	}
	return 0
}

func (x *CommitProofState) GetCommitBlockHeight() int64 {
	if x != nil {
		return x.CommitBlockHeight
	}
	return 0
}

func (x *CommitProofState) GetPubDatas() []string {
	if x != nil {
		return x.PubDatas
	}
	return nil
}

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

	Prev    *CommitProofState `protobuf:"bytes,1,opt,name=prev,proto3" json:"prev,omitempty"`
	Current *CommitProofState `protobuf:"bytes,2,opt,name=current,proto3" json:"current,omitempty"`
}

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

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

func (*ReceiptCommitProof) ProtoMessage() {}

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

func (x *ReceiptCommitProof) GetPrev() *CommitProofState {
	if x != nil {
		return x.Prev
	}
	return nil
}

func (x *ReceiptCommitProof) GetCurrent() *CommitProofState {
	if x != nil {
		return x.Current
	}
	return nil
}

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

	Proof *CommitProofState `protobuf:"bytes,1,opt,name=proof,proto3" json:"proof,omitempty"`
}

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

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

func (*ReceiptCommitProofRecord) ProtoMessage() {}

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

func (x *ReceiptCommitProofRecord) GetProof() *CommitProofState {
	if x != nil {
		return x.Proof
	}
	return nil
}

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

	Proof  *ZkCommitProof       `protobuf:"bytes,1,opt,name=proof,proto3" json:"proof,omitempty"`
	Queues *ProofId2QueueIdData `protobuf:"bytes,2,opt,name=queues,proto3" json:"queues,omitempty"`
}

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

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

func (*QueryProofInfo) ProtoMessage() {}

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

func (x *QueryProofInfo) GetProof() *ZkCommitProof {
	if x != nil {
		return x.Proof
	}
	return nil
}

func (x *QueryProofInfo) GetQueues() *ProofId2QueueIdData {
	if x != nil {
		return x.Queues
	}
	return nil
}

//电路验证者名单
type ZkVerifier struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Verifiers []string `protobuf:"bytes,1,rep,name=verifiers,proto3" json:"verifiers,omitempty"`
}

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

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

func (*ZkVerifier) ProtoMessage() {}

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

func (x *ZkVerifier) GetVerifiers() []string {
	if x != nil {
		return x.Verifiers
	}
	return nil
}

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

	Prev    *ZkVerifier `protobuf:"bytes,1,opt,name=prev,proto3" json:"prev,omitempty"`
	Current *ZkVerifier `protobuf:"bytes,2,opt,name=current,proto3" json:"current,omitempty"`
}

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

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

func (*ReceiptSetVerifier) ProtoMessage() {}

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

func (x *ReceiptSetVerifier) GetPrev() *ZkVerifier {
	if x != nil {
		return x.Prev
	}
	return nil
}

func (x *ReceiptSetVerifier) GetCurrent() *ZkVerifier {
	if x != nil {
		return x.Current
	}
	return nil
}

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

	TokenId  uint64 `protobuf:"varint,1,opt,name=tokenId,proto3" json:"tokenId,omitempty"`
	Amount   string `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"`
	ActionTy int32  `protobuf:"varint,3,opt,name=actionTy,proto3" json:"actionTy,omitempty"`
}

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

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

func (*ZkSetFee) ProtoMessage() {}

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

func (x *ZkSetFee) GetTokenId() uint64 {
	if x != nil {
		return x.TokenId
	}
	return 0
}

func (x *ZkSetFee) GetAmount() string {
	if x != nil {
		return x.Amount
	}
	return ""
}

func (x *ZkSetFee) GetActionTy() int32 {
	if x != nil {
		return x.ActionTy
	}
	return 0
}

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

	TokenId       uint64 `protobuf:"varint,1,opt,name=tokenId,proto3" json:"tokenId,omitempty"`
	ActionTy      int32  `protobuf:"varint,2,opt,name=actionTy,proto3" json:"actionTy,omitempty"`
	PrevAmount    string `protobuf:"bytes,3,opt,name=prevAmount,proto3" json:"prevAmount,omitempty"`
	CurrentAmount string `protobuf:"bytes,4,opt,name=currentAmount,proto3" json:"currentAmount,omitempty"`
}

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

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

func (*ReceiptSetFee) ProtoMessage() {}

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

func (x *ReceiptSetFee) GetTokenId() uint64 {
	if x != nil {
		return x.TokenId
	}
	return 0
}

func (x *ReceiptSetFee) GetActionTy() int32 {
	if x != nil {
		return x.ActionTy
	}
	return 0
}

func (x *ReceiptSetFee) GetPrevAmount() string {
	if x != nil {
		return x.PrevAmount
	}
	return ""
}

func (x *ReceiptSetFee) GetCurrentAmount() string {
	if x != nil {
		return x.CurrentAmount
	}
	return ""
}

//zk relayer operators
type RelayerOperators struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Operators []string `protobuf:"bytes,1,rep,name=operators,proto3" json:"operators,omitempty"`
}

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

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

func (*RelayerOperators) ProtoMessage() {}

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

func (x *RelayerOperators) GetOperators() []string {
	if x != nil {
		return x.Operators
	}
	return nil
}

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

	AccountId         uint64 `protobuf:"varint,1,opt,name=accountId,proto3" json:"accountId,omitempty"`
	BlockHeight       uint64 `protobuf:"varint,2,opt,name=blockHeight,proto3" json:"blockHeight,omitempty"`
	TxIndex           uint32 `protobuf:"varint,3,opt,name=txIndex,proto3" json:"txIndex,omitempty"`
	EthAddress        string `protobuf:"bytes,4,opt,name=ethAddress,proto3" json:"ethAddress,omitempty"`
	Chain33Addr       string `protobuf:"bytes,5,opt,name=chain33Addr,proto3" json:"chain33Addr,omitempty"`
	TokenSymbol       string `protobuf:"bytes,6,opt,name=tokenSymbol,proto3" json:"tokenSymbol,omitempty"`
	Chain33WalletAddr string `protobuf:"bytes,7,opt,name=chain33WalletAddr,proto3" json:"chain33WalletAddr,omitempty"`
	TokenId           uint64 `protobuf:"varint,8,opt,name=tokenId,proto3" json:"tokenId,omitempty"`
	TxHash            string `protobuf:"bytes,9,opt,name=txHash,proto3" json:"txHash,omitempty"`
	ProofId           uint64 `protobuf:"varint,10,opt,name=proofId,proto3" json:"proofId,omitempty"`
	OpType            uint32 `protobuf:"varint,11,opt,name=opType,proto3" json:"opType,omitempty"`
	Decimal           uint32 `protobuf:"varint,12,opt,name=decimal,proto3" json:"decimal,omitempty"` //是否以decimal show
}

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

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

func (*ZkQueryReq) ProtoMessage() {}

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

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

func (x *ZkQueryReq) GetAccountId() uint64 {
	if x != nil {
		return x.AccountId
	}
	return 0
}

func (x *ZkQueryReq) GetBlockHeight() uint64 {
	if x != nil {
		return x.BlockHeight
	}
	return 0
}

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

func (x *ZkQueryReq) GetEthAddress() string {
	if x != nil {
		return x.EthAddress
	}
	return ""
}

func (x *ZkQueryReq) GetChain33Addr() string {
	if x != nil {
		return x.Chain33Addr
	}
	return ""
}

func (x *ZkQueryReq) GetTokenSymbol() string {
	if x != nil {
		return x.TokenSymbol
	}
	return ""
}

func (x *ZkQueryReq) GetChain33WalletAddr() string {
	if x != nil {
		return x.Chain33WalletAddr
	}
	return ""
}

func (x *ZkQueryReq) GetTokenId() uint64 {
	if x != nil {
		return x.TokenId
	}
	return 0
}

func (x *ZkQueryReq) GetTxHash() string {
	if x != nil {
		return x.TxHash
	}
	return ""
}

func (x *ZkQueryReq) GetProofId() uint64 {
	if x != nil {
		return x.ProofId
	}
	return 0
}

func (x *ZkQueryReq) GetOpType() uint32 {
	if x != nil {
		return x.OpType
	}
	return 0
}

func (x *ZkQueryReq) GetDecimal() uint32 {
	if x != nil {
		return x.Decimal
	}
	return 0
}

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

	OperationInfos []*OperationInfo `protobuf:"bytes,1,rep,name=operationInfos,proto3" json:"operationInfos,omitempty"`
	Leaves         []*Leaf          `protobuf:"bytes,2,rep,name=leaves,proto3" json:"leaves,omitempty"`
	TokenBalances  []*TokenBalance  `protobuf:"bytes,3,rep,name=tokenBalances,proto3" json:"tokenBalances,omitempty"`
}

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

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

func (*ZkQueryResp) ProtoMessage() {}

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

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

func (x *ZkQueryResp) GetOperationInfos() []*OperationInfo {
	if x != nil {
		return x.OperationInfos
	}
	return nil
}

func (x *ZkQueryResp) GetLeaves() []*Leaf {
	if x != nil {
		return x.Leaves
	}
	return nil
}

func (x *ZkQueryResp) GetTokenBalances() []*TokenBalance {
	if x != nil {
		return x.TokenBalances
	}
	return nil
}

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

	OperationInfo *OperationInfo    `protobuf:"bytes,1,opt,name=operationInfo,proto3" json:"operationInfo,omitempty"`
	LocalKvs      []*types.KeyValue `protobuf:"bytes,2,rep,name=localKvs,proto3" json:"localKvs,omitempty"`
}

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

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

func (*ZkReceiptLog) ProtoMessage() {}

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

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

func (x *ZkReceiptLog) GetOperationInfo() *OperationInfo {
	if x != nil {
		return x.OperationInfo
	}
	return nil
}

func (x *ZkReceiptLog) GetLocalKvs() []*types.KeyValue {
	if x != nil {
		return x.LocalKvs
	}
	return nil
}

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

	NeedDetail       bool   `protobuf:"varint,1,opt,name=needDetail,proto3" json:"needDetail,omitempty"`
	StartBlockHeight uint64 `protobuf:"varint,2,opt,name=startBlockHeight,proto3" json:"startBlockHeight,omitempty"`
	EndBlockHeight   uint64 `protobuf:"varint,3,opt,name=endBlockHeight,proto3" json:"endBlockHeight,omitempty"`
	StartIndex       uint64 `protobuf:"varint,4,opt,name=startIndex,proto3" json:"startIndex,omitempty"`
	OpIndex          uint32 `protobuf:"varint,5,opt,name=opIndex,proto3" json:"opIndex,omitempty"`
}

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

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

func (*ZkQueryProofReq) ProtoMessage() {}

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

// Deprecated: Use ZkQueryProofReq.ProtoReflect.Descriptor instead.
func (*ZkQueryProofReq) Descriptor() ([]byte, []int) {
	return file_zksync_proto_rawDescGZIP(), []int{39}
}

func (x *ZkQueryProofReq) GetNeedDetail() bool {
	if x != nil {
		return x.NeedDetail
	}
	return false
}

func (x *ZkQueryProofReq) GetStartBlockHeight() uint64 {
	if x != nil {
		return x.StartBlockHeight
	}
	return 0
}

func (x *ZkQueryProofReq) GetEndBlockHeight() uint64 {
	if x != nil {
		return x.EndBlockHeight
	}
	return 0
}

func (x *ZkQueryProofReq) GetStartIndex() uint64 {
	if x != nil {
		return x.StartIndex
	}
	return 0
}

func (x *ZkQueryProofReq) GetOpIndex() uint32 {
	if x != nil {
		return x.OpIndex
	}
	return 0
}

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

	OperationInfos []*OperationInfo `protobuf:"bytes,1,rep,name=operationInfos,proto3" json:"operationInfos,omitempty"`
}

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

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

func (*ZkQueryProofResp) ProtoMessage() {}

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

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

func (x *ZkQueryProofResp) GetOperationInfos() []*OperationInfo {
	if x != nil {
		return x.OperationInfos
	}
	return nil
}

//query committed proof info
type ZkFetchProofList struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ProofId         uint64 `protobuf:"varint,1,opt,name=proofId,proto3" json:"proofId,omitempty"`
	OnChainProofId  uint64 `protobuf:"varint,2,opt,name=onChainProofId,proto3" json:"onChainProofId,omitempty"`
	ReqOnChainProof bool   `protobuf:"varint,3,opt,name=reqOnChainProof,proto3" json:"reqOnChainProof,omitempty"` //
	ReqLatestProof  bool   `protobuf:"varint,4,opt,name=reqLatestProof,proto3" json:"reqLatestProof,omitempty"`   //请求截止高度之前的最新的proof，适用于获取最新proof场景
	EndHeight       uint64 `protobuf:"varint,5,opt,name=endHeight,proto3" json:"endHeight,omitempty"`             //截止高度
}

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

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

func (*ZkFetchProofList) ProtoMessage() {}

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

// Deprecated: Use ZkFetchProofList.ProtoReflect.Descriptor instead.
func (*ZkFetchProofList) Descriptor() ([]byte, []int) {
	return file_zksync_proto_rawDescGZIP(), []int{41}
}

func (x *ZkFetchProofList) GetProofId() uint64 {
	if x != nil {
		return x.ProofId
	}
	return 0
}

func (x *ZkFetchProofList) GetOnChainProofId() uint64 {
	if x != nil {
		return x.OnChainProofId
	}
	return 0
}

func (x *ZkFetchProofList) GetReqOnChainProof() bool {
	if x != nil {
		return x.ReqOnChainProof
	}
	return false
}

func (x *ZkFetchProofList) GetReqLatestProof() bool {
	if x != nil {
		return x.ReqLatestProof
	}
	return false
}

func (x *ZkFetchProofList) GetEndHeight() uint64 {
	if x != nil {
		return x.EndHeight
	}
	return 0
}

//NFT content hash切分成两部分
type ZkContentHash struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Part1 string `protobuf:"bytes,1,opt,name=part1,proto3" json:"part1,omitempty"`
	Part2 string `protobuf:"bytes,2,opt,name=part2,proto3" json:"part2,omitempty"`
}

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

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

func (*ZkContentHash) ProtoMessage() {}

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

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

func (x *ZkContentHash) GetPart1() string {
	if x != nil {
		return x.Part1
	}
	return ""
}

func (x *ZkContentHash) GetPart2() string {
	if x != nil {
		return x.Part2
	}
	return ""
}

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

	TokenId         uint64         `protobuf:"varint,1,opt,name=tokenId,proto3" json:"tokenId,omitempty"`
	CreatorId       uint64         `protobuf:"varint,2,opt,name=creatorId,proto3" json:"creatorId,omitempty"`             //for withdraw NFT
	CreatorSerialId uint64         `protobuf:"varint,3,opt,name=creatorSerialId,proto3" json:"creatorSerialId,omitempty"` //for withdraw NFT
	ErcProtocol     uint64         `protobuf:"varint,4,opt,name=ercProtocol,proto3" json:"ercProtocol,omitempty"`
	MintAmount      string         `protobuf:"bytes,5,opt,name=mintAmount,proto3" json:"mintAmount,omitempty"`
	Amount          string         `protobuf:"bytes,6,opt,name=amount,proto3" json:"amount,omitempty"`
	Content         *ZkContentHash `protobuf:"bytes,7,opt,name=content,proto3" json:"content,omitempty"`
}

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

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

func (*ZkOpNFTData) ProtoMessage() {}

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

// Deprecated: Use ZkOpNFTData.ProtoReflect.Descriptor instead.
func (*ZkOpNFTData) Descriptor() ([]byte, []int) {
	return file_zksync_proto_rawDescGZIP(), []int{43}
}

func (x *ZkOpNFTData) GetTokenId() uint64 {
	if x != nil {
		return x.TokenId
	}
	return 0
}

func (x *ZkOpNFTData) GetCreatorId() uint64 {
	if x != nil {
		return x.CreatorId
	}
	return 0
}

func (x *ZkOpNFTData) GetCreatorSerialId() uint64 {
	if x != nil {
		return x.CreatorSerialId
	}
	return 0
}

func (x *ZkOpNFTData) GetErcProtocol() uint64 {
	if x != nil {
		return x.ErcProtocol
	}
	return 0
}

func (x *ZkOpNFTData) GetMintAmount() string {
	if x != nil {
		return x.MintAmount
	}
	return ""
}

func (x *ZkOpNFTData) GetAmount() string {
	if x != nil {
		return x.Amount
	}
	return ""
}

func (x *ZkOpNFTData) GetContent() *ZkContentHash {
	if x != nil {
		return x.Content
	}
	return nil
}

//swapData: from maker pov
type ZkOpSwapData struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	TokenId uint64 `protobuf:"varint,1,opt,name=tokenId,proto3" json:"tokenId,omitempty"`
	Amount  string `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"`
	Fee     string `protobuf:"bytes,3,opt,name=fee,proto3" json:"fee,omitempty"`
}

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

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

func (*ZkOpSwapData) ProtoMessage() {}

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

// Deprecated: Use ZkOpSwapData.ProtoReflect.Descriptor instead.
func (*ZkOpSwapData) Descriptor() ([]byte, []int) {
	return file_zksync_proto_rawDescGZIP(), []int{44}
}

func (x *ZkOpSwapData) GetTokenId() uint64 {
	if x != nil {
		return x.TokenId
	}
	return 0
}

func (x *ZkOpSwapData) GetAmount() string {
	if x != nil {
		return x.Amount
	}
	return ""
}

func (x *ZkOpSwapData) GetFee() string {
	if x != nil {
		return x.Fee
	}
	return ""
}

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

	TokenId uint64 `protobuf:"varint,1,opt,name=tokenId,proto3" json:"tokenId,omitempty"`
	Fee     string `protobuf:"bytes,2,opt,name=fee,proto3" json:"fee,omitempty"`
}

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

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

func (*ZkOpFeeData) ProtoMessage() {}

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

// Deprecated: Use ZkOpFeeData.ProtoReflect.Descriptor instead.
func (*ZkOpFeeData) Descriptor() ([]byte, []int) {
	return file_zksync_proto_rawDescGZIP(), []int{45}
}

func (x *ZkOpFeeData) GetTokenId() uint64 {
	if x != nil {
		return x.TokenId
	}
	return 0
}

func (x *ZkOpFeeData) GetFee() string {
	if x != nil {
		return x.Fee
	}
	return ""
}

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

	Ty     uint64    `protobuf:"varint,1,opt,name=ty,proto3" json:"ty,omitempty"`        //set type, self or proxy
	PubKey *ZkPubKey `protobuf:"bytes,7,opt,name=pubKey,proto3" json:"pubKey,omitempty"` //eddsa公钥，用于验证身份
}

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

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

func (*ZkSetPubKeyData) ProtoMessage() {}

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

// Deprecated: Use ZkSetPubKeyData.ProtoReflect.Descriptor instead.
func (*ZkSetPubKeyData) Descriptor() ([]byte, []int) {
	return file_zksync_proto_rawDescGZIP(), []int{46}
}

func (x *ZkSetPubKeyData) GetTy() uint64 {
	if x != nil {
		return x.Ty
	}
	return 0
}

func (x *ZkSetPubKeyData) GetPubKey() *ZkPubKey {
	if x != nil {
		return x.PubKey
	}
	return nil
}

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

	ID string `protobuf:"bytes,1,opt,name=ID,proto3" json:"ID,omitempty"` //需要为string，不能为int64,因为db不支持ID=0的时候
}

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

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

func (*L1PriorityID) ProtoMessage() {}

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

// Deprecated: Use L1PriorityID.ProtoReflect.Descriptor instead.
func (*L1PriorityID) Descriptor() ([]byte, []int) {
	return file_zksync_proto_rawDescGZIP(), []int{47}
}

func (x *L1PriorityID) GetID() string {
	if x != nil {
		return x.ID
	}
	return ""
}

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

	Prev    int64 `protobuf:"varint,1,opt,name=prev,proto3" json:"prev,omitempty"`
	Current int64 `protobuf:"varint,2,opt,name=current,proto3" json:"current,omitempty"`
}

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

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

func (*ReceiptL1PriorityID) ProtoMessage() {}

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

// Deprecated: Use ReceiptL1PriorityID.ProtoReflect.Descriptor instead.
func (*ReceiptL1PriorityID) Descriptor() ([]byte, []int) {
	return file_zksync_proto_rawDescGZIP(), []int{48}
}

func (x *ReceiptL1PriorityID) GetPrev() int64 {
	if x != nil {
		return x.Prev
	}
	return 0
}

func (x *ReceiptL1PriorityID) GetCurrent() int64 {
	if x != nil {
		return x.Current
	}
	return 0
}

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

	RootHash string   `protobuf:"bytes,1,opt,name=rootHash,proto3" json:"rootHash,omitempty"`
	ProofSet []string `protobuf:"bytes,2,rep,name=proofSet,proto3" json:"proofSet,omitempty"`
	Helpers  []string `protobuf:"bytes,3,rep,name=helpers,proto3" json:"helpers,omitempty"`
}

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

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

func (*MerkleTreeProof) ProtoMessage() {}

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

// Deprecated: Use MerkleTreeProof.ProtoReflect.Descriptor instead.
func (*MerkleTreeProof) Descriptor() ([]byte, []int) {
	return file_zksync_proto_rawDescGZIP(), []int{49}
}

func (x *MerkleTreeProof) GetRootHash() string {
	if x != nil {
		return x.RootHash
	}
	return ""
}

func (x *MerkleTreeProof) GetProofSet() []string {
	if x != nil {
		return x.ProofSet
	}
	return nil
}

func (x *MerkleTreeProof) GetHelpers() []string {
	if x != nil {
		return x.Helpers
	}
	return nil
}

// leaf merkle proof票据日志
type ZkReceiptLeaf struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Leaf       *Leaf            `protobuf:"bytes,1,opt,name=leaf,proto3" json:"leaf,omitempty"`
	Token      *TokenBalance    `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"`
	TreeProof  *MerkleTreeProof `protobuf:"bytes,3,opt,name=treeProof,proto3" json:"treeProof,omitempty"`
	TokenProof *MerkleTreeProof `protobuf:"bytes,4,opt,name=tokenProof,proto3" json:"tokenProof,omitempty"`
}

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

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

func (*ZkReceiptLeaf) ProtoMessage() {}

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

// Deprecated: Use ZkReceiptLeaf.ProtoReflect.Descriptor instead.
func (*ZkReceiptLeaf) Descriptor() ([]byte, []int) {
	return file_zksync_proto_rawDescGZIP(), []int{50}
}

func (x *ZkReceiptLeaf) GetLeaf() *Leaf {
	if x != nil {
		return x.Leaf
	}
	return nil
}

func (x *ZkReceiptLeaf) GetToken() *TokenBalance {
	if x != nil {
		return x.Token
	}
	return nil
}

func (x *ZkReceiptLeaf) GetTreeProof() *MerkleTreeProof {
	if x != nil {
		return x.TreeProof
	}
	return nil
}

func (x *ZkReceiptLeaf) GetTokenProof() *MerkleTreeProof {
	if x != nil {
		return x.TokenProof
	}
	return nil
}

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

	AccountId    uint64 `protobuf:"varint,1,opt,name=accountId,proto3" json:"accountId,omitempty"`
	TokenId      uint64 `protobuf:"varint,2,opt,name=tokenId,proto3" json:"tokenId,omitempty"`
	Balance      string `protobuf:"bytes,3,opt,name=balance,proto3" json:"balance,omitempty"`
	NeedRollback string `protobuf:"bytes,4,opt,name=needRollback,proto3" json:"needRollback,omitempty"`
	Gap          string `protobuf:"bytes,5,opt,name=gap,proto3" json:"gap,omitempty"` //gap=needRollback-balance
}

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

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

func (*ZkAcctRollbackInfo) ProtoMessage() {}

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

// Deprecated: Use ZkAcctRollbackInfo.ProtoReflect.Descriptor instead.
func (*ZkAcctRollbackInfo) Descriptor() ([]byte, []int) {
	return file_zksync_proto_rawDescGZIP(), []int{51}
}

func (x *ZkAcctRollbackInfo) GetAccountId() uint64 {
	if x != nil {
		return x.AccountId
	}
	return 0
}

func (x *ZkAcctRollbackInfo) GetTokenId() uint64 {
	if x != nil {
		return x.TokenId
	}
	return 0
}

func (x *ZkAcctRollbackInfo) GetBalance() string {
	if x != nil {
		return x.Balance
	}
	return ""
}

func (x *ZkAcctRollbackInfo) GetNeedRollback() string {
	if x != nil {
		return x.NeedRollback
	}
	return ""
}

func (x *ZkAcctRollbackInfo) GetGap() string {
	if x != nil {
		return x.Gap
	}
	return ""
}

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

	LastSuccessProofId uint64 `protobuf:"varint,1,opt,name=lastSuccessProofId,proto3" json:"lastSuccessProofId,omitempty"` //在回滚模式时候，设置此在l1上最后success的proofId，系统根据此Id对应queueId回滚一些deposit,withdraw操作
	//回滚lastSuccessProofId后的所有deposit的策略
	//1. 如果某deposit已经转走交易，余额不够无法rollback扣减,则尝试从交易所交易费垫付扣除，保证L2和L1此token资产总额相等
	//2. 如果交易所的交易费也不够扣减，则扣光后统计差额，差额需要管理员在L1存款补充被忽略掉的deposit资产金额，不然会导致最后从L1逃生舱执行不成功
	KnownBalanceGap uint32 `protobuf:"varint,2,opt,name=knownBalanceGap,proto3" json:"knownBalanceGap,omitempty"` //是否已知晓差额统计的错误报告，缺省不忽略，如果不需要L1补充，则直接rollback成功，若需要L1补充，知晓差额后，设置为1完成回滚
}

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

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

func (*ZkExodusRollbackModeParm) ProtoMessage() {}

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

// Deprecated: Use ZkExodusRollbackModeParm.ProtoReflect.Descriptor instead.
func (*ZkExodusRollbackModeParm) Descriptor() ([]byte, []int) {
	return file_zksync_proto_rawDescGZIP(), []int{52}
}

func (x *ZkExodusRollbackModeParm) GetLastSuccessProofId() uint64 {
	if x != nil {
		return x.LastSuccessProofId
	}
	return 0
}

func (x *ZkExodusRollbackModeParm) GetKnownBalanceGap() uint32 {
	if x != nil {
		return x.KnownBalanceGap
	}
	return 0
}

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

	Mode uint32 `protobuf:"varint,1,opt,name=mode,proto3" json:"mode,omitempty"`
	// Types that are assignable to Value:
	//	*ZkExodusMode_Rollback
	Value isZkExodusMode_Value `protobuf_oneof:"value"`
}

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

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

func (*ZkExodusMode) ProtoMessage() {}

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

// Deprecated: Use ZkExodusMode.ProtoReflect.Descriptor instead.
func (*ZkExodusMode) Descriptor() ([]byte, []int) {
	return file_zksync_proto_rawDescGZIP(), []int{53}
}

func (x *ZkExodusMode) GetMode() uint32 {
	if x != nil {
		return x.Mode
	}
	return 0
}

func (m *ZkExodusMode) GetValue() isZkExodusMode_Value {
	if m != nil {
		return m.Value
	}
	return nil
}

func (x *ZkExodusMode) GetRollback() *ZkExodusRollbackModeParm {
	if x, ok := x.GetValue().(*ZkExodusMode_Rollback); ok {
		return x.Rollback
	}
	return nil
}

type isZkExodusMode_Value interface {
	isZkExodusMode_Value()
}

type ZkExodusMode_Rollback struct {
	Rollback *ZkExodusRollbackModeParm `protobuf:"bytes,2,opt,name=rollback,proto3,oneof"`
}

func (*ZkExodusMode_Rollback) isZkExodusMode_Value() {}

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

	Prev    int64 `protobuf:"varint,1,opt,name=prev,proto3" json:"prev,omitempty"`
	Current int64 `protobuf:"varint,2,opt,name=current,proto3" json:"current,omitempty"`
}

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

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

func (*ReceiptExodusMode) ProtoMessage() {}

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

// Deprecated: Use ReceiptExodusMode.ProtoReflect.Descriptor instead.
func (*ReceiptExodusMode) Descriptor() ([]byte, []int) {
	return file_zksync_proto_rawDescGZIP(), []int{54}
}

func (x *ReceiptExodusMode) GetPrev() int64 {
	if x != nil {
		return x.Prev
	}
	return 0
}

func (x *ReceiptExodusMode) GetCurrent() int64 {
	if x != nil {
		return x.Current
	}
	return 0
}

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

	Pre *ZkTokenSymbol `protobuf:"bytes,1,opt,name=pre,proto3" json:"pre,omitempty"`
	Cur *ZkTokenSymbol `protobuf:"bytes,2,opt,name=cur,proto3" json:"cur,omitempty"`
}

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

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

func (*ReceiptSetTokenSymbol) ProtoMessage() {}

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

// Deprecated: Use ReceiptSetTokenSymbol.ProtoReflect.Descriptor instead.
func (*ReceiptSetTokenSymbol) Descriptor() ([]byte, []int) {
	return file_zksync_proto_rawDescGZIP(), []int{55}
}

func (x *ReceiptSetTokenSymbol) GetPre() *ZkTokenSymbol {
	if x != nil {
		return x.Pre
	}
	return nil
}

func (x *ReceiptSetTokenSymbol) GetCur() *ZkTokenSymbol {
	if x != nil {
		return x.Cur
	}
	return nil
}

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

	ProofId        uint64 `protobuf:"varint,1,opt,name=proofId,proto3" json:"proofId,omitempty"`
	OnChainProofId uint64 `protobuf:"varint,2,opt,name=onChainProofId,proto3" json:"onChainProofId,omitempty"`
}

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

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

func (*LastOnChainProof) ProtoMessage() {}

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

// Deprecated: Use LastOnChainProof.ProtoReflect.Descriptor instead.
func (*LastOnChainProof) Descriptor() ([]byte, []int) {
	return file_zksync_proto_rawDescGZIP(), []int{56}
}

func (x *LastOnChainProof) GetProofId() uint64 {
	if x != nil {
		return x.ProofId
	}
	return 0
}

func (x *LastOnChainProof) GetOnChainProofId() uint64 {
	if x != nil {
		return x.OnChainProofId
	}
	return 0
}

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

	RootHash   string         `protobuf:"bytes,1,opt,name=rootHash,proto3" json:"rootHash,omitempty"`
	Leaves     []*HistoryLeaf `protobuf:"bytes,2,rep,name=leaves,proto3" json:"leaves,omitempty"`
	LeafHashes [][]byte       `protobuf:"bytes,3,rep,name=leafHashes,proto3" json:"leafHashes,omitempty"`
}

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

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

func (*HistoryAccountProofInfo) ProtoMessage() {}

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

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

func (x *HistoryAccountProofInfo) GetRootHash() string {
	if x != nil {
		return x.RootHash
	}
	return ""
}

func (x *HistoryAccountProofInfo) GetLeaves() []*HistoryLeaf {
	if x != nil {
		return x.Leaves
	}
	return nil
}

func (x *HistoryAccountProofInfo) GetLeafHashes() [][]byte {
	if x != nil {
		return x.LeafHashes
	}
	return nil
}

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

	AccountId uint64 `protobuf:"varint,1,opt,name=accountId,proto3" json:"accountId,omitempty"`
	TokenId   uint64 `protobuf:"varint,2,opt,name=tokenId,proto3" json:"tokenId,omitempty"`
	RootHash  string `protobuf:"bytes,3,opt,name=rootHash,proto3" json:"rootHash,omitempty"`
}

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

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

func (*ZkReqExistenceProof) ProtoMessage() {}

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

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

func (x *ZkReqExistenceProof) GetAccountId() uint64 {
	if x != nil {
		return x.AccountId
	}
	return 0
}

func (x *ZkReqExistenceProof) GetTokenId() uint64 {
	if x != nil {
		return x.TokenId
	}
	return 0
}

func (x *ZkReqExistenceProof) GetRootHash() string {
	if x != nil {
		return x.RootHash
	}
	return ""
}

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

	StartBlockHeight uint64 `protobuf:"varint,1,opt,name=startBlockHeight,proto3" json:"startBlockHeight,omitempty"` //起始高度
	StartIndex       uint64 `protobuf:"varint,2,opt,name=startIndex,proto3" json:"startIndex,omitempty"`             //块中交易的序号
	OpIndex          uint32 `protobuf:"varint,3,opt,name=opIndex,proto3" json:"opIndex,omitempty"`                   //交易操作快照片序号：目前是0，1。
	Count            uint32 `protobuf:"varint,4,opt,name=count,proto3" json:"count,omitempty"`                       //获取交易操作数量：默认值是：100000 = types.MaxTxsPerBlock
	BlockOffset      uint32 `protobuf:"varint,5,opt,name=blockOffset,proto3" json:"blockOffset,omitempty"`           //高度偏移：以块高度为偏移单位，计算错误时，最多是固定块的交易证明错误。块中的交易不变，proof数量不变，即proofID也不变。
	Maturity         uint32 `protobuf:"varint,6,opt,name=maturity,proto3" json:"maturity,omitempty"`                 //成熟度：最新高度-成熟度 = endBlockHeigh
}

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

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

func (*ZkQueryTxOperationReq) ProtoMessage() {}

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

// Deprecated: Use ZkQueryTxOperationReq.ProtoReflect.Descriptor instead.
func (*ZkQueryTxOperationReq) Descriptor() ([]byte, []int) {
	return file_zksync_proto_rawDescGZIP(), []int{59}
}

func (x *ZkQueryTxOperationReq) GetStartBlockHeight() uint64 {
	if x != nil {
		return x.StartBlockHeight
	}
	return 0
}

func (x *ZkQueryTxOperationReq) GetStartIndex() uint64 {
	if x != nil {
		return x.StartIndex
	}
	return 0
}

func (x *ZkQueryTxOperationReq) GetOpIndex() uint32 {
	if x != nil {
		return x.OpIndex
	}
	return 0
}

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

func (x *ZkQueryTxOperationReq) GetBlockOffset() uint32 {
	if x != nil {
		return x.BlockOffset
	}
	return 0
}

func (x *ZkQueryTxOperationReq) GetMaturity() uint32 {
	if x != nil {
		return x.Maturity
	}
	return 0
}

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

	StartAccountId uint64 `protobuf:"varint,1,opt,name=startAccountId,proto3" json:"startAccountId,omitempty"`
	EndAccountId   uint64 `protobuf:"varint,2,opt,name=endAccountId,proto3" json:"endAccountId,omitempty"`
	TokenId        uint64 `protobuf:"varint,3,opt,name=tokenId,proto3" json:"tokenId,omitempty"`
	RootHash       string `protobuf:"bytes,4,opt,name=rootHash,proto3" json:"rootHash,omitempty"`
}

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

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

func (*ZkExodusBatchProofReq) ProtoMessage() {}

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

// Deprecated: Use ZkExodusBatchProofReq.ProtoReflect.Descriptor instead.
func (*ZkExodusBatchProofReq) Descriptor() ([]byte, []int) {
	return file_zksync_proto_rawDescGZIP(), []int{60}
}

func (x *ZkExodusBatchProofReq) GetStartAccountId() uint64 {
	if x != nil {
		return x.StartAccountId
	}
	return 0
}

func (x *ZkExodusBatchProofReq) GetEndAccountId() uint64 {
	if x != nil {
		return x.EndAccountId
	}
	return 0
}

func (x *ZkExodusBatchProofReq) GetTokenId() uint64 {
	if x != nil {
		return x.TokenId
	}
	return 0
}

func (x *ZkExodusBatchProofReq) GetRootHash() string {
	if x != nil {
		return x.RootHash
	}
	return ""
}

//记录L2 的所有operation 到queue，以和proof校验
type ReceiptL2LastQueueID struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Prev    int64 `protobuf:"varint,1,opt,name=prev,proto3" json:"prev,omitempty"`
	Current int64 `protobuf:"varint,2,opt,name=current,proto3" json:"current,omitempty"`
}

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

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

func (*ReceiptL2LastQueueID) ProtoMessage() {}

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

// Deprecated: Use ReceiptL2LastQueueID.ProtoReflect.Descriptor instead.
func (*ReceiptL2LastQueueID) Descriptor() ([]byte, []int) {
	return file_zksync_proto_rawDescGZIP(), []int{61}
}

func (x *ReceiptL2LastQueueID) GetPrev() int64 {
	if x != nil {
		return x.Prev
	}
	return 0
}

func (x *ReceiptL2LastQueueID) GetCurrent() int64 {
	if x != nil {
		return x.Current
	}
	return 0
}

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

	Prev    int64 `protobuf:"varint,1,opt,name=prev,proto3" json:"prev,omitempty"`
	Current int64 `protobuf:"varint,2,opt,name=current,proto3" json:"current,omitempty"`
}

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

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

func (*ReceiptL2FirstQueueID) ProtoMessage() {}

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

// Deprecated: Use ReceiptL2FirstQueueID.ProtoReflect.Descriptor instead.
func (*ReceiptL2FirstQueueID) Descriptor() ([]byte, []int) {
	return file_zksync_proto_rawDescGZIP(), []int{62}
}

func (x *ReceiptL2FirstQueueID) GetPrev() int64 {
	if x != nil {
		return x.Prev
	}
	return 0
}

func (x *ReceiptL2FirstQueueID) GetCurrent() int64 {
	if x != nil {
		return x.Current
	}
	return 0
}

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

	Id int64        `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Op *ZkOperation `protobuf:"bytes,2,opt,name=op,proto3" json:"op,omitempty"`
}

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

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

func (*ReceiptL2QueueIDData) ProtoMessage() {}

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

// Deprecated: Use ReceiptL2QueueIDData.ProtoReflect.Descriptor instead.
func (*ReceiptL2QueueIDData) Descriptor() ([]byte, []int) {
	return file_zksync_proto_rawDescGZIP(), []int{63}
}

func (x *ReceiptL2QueueIDData) GetId() int64 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *ReceiptL2QueueIDData) GetOp() *ZkOperation {
	if x != nil {
		return x.Op
	}
	return nil
}

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

	ProofId      uint64 `protobuf:"varint,1,opt,name=proofId,proto3" json:"proofId,omitempty"`
	FirstQueueId int64  `protobuf:"varint,2,opt,name=firstQueueId,proto3" json:"firstQueueId,omitempty"`
	LastQueueId  int64  `protobuf:"varint,3,opt,name=lastQueueId,proto3" json:"lastQueueId,omitempty"`
}

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

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

func (*ProofId2QueueIdData) ProtoMessage() {}

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

// Deprecated: Use ProofId2QueueIdData.ProtoReflect.Descriptor instead.
func (*ProofId2QueueIdData) Descriptor() ([]byte, []int) {
	return file_zksync_proto_rawDescGZIP(), []int{64}
}

func (x *ProofId2QueueIdData) GetProofId() uint64 {
	if x != nil {
		return x.ProofId
	}
	return 0
}

func (x *ProofId2QueueIdData) GetFirstQueueId() int64 {
	if x != nil {
		return x.FirstQueueId
	}
	return 0
}

func (x *ProofId2QueueIdData) GetLastQueueId() int64 {
	if x != nil {
		return x.LastQueueId
	}
	return 0
}

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

	Data *ProofId2QueueIdData `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
}

func (x *ReceiptProofId2QueueIDData) Reset() {
	*x = ReceiptProofId2QueueIDData{}
	if protoimpl.UnsafeEnabled {
		mi := &file_zksync_proto_msgTypes[65]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ReceiptProofId2QueueIDData) ProtoMessage() {}

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

// Deprecated: Use ReceiptProofId2QueueIDData.ProtoReflect.Descriptor instead.
func (*ReceiptProofId2QueueIDData) Descriptor() ([]byte, []int) {
	return file_zksync_proto_rawDescGZIP(), []int{65}
}

func (x *ReceiptProofId2QueueIDData) GetData() *ProofId2QueueIdData {
	if x != nil {
		return x.Data
	}
	return nil
}

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

	PriorityId int64 `protobuf:"varint,1,opt,name=priorityId,proto3" json:"priorityId,omitempty"`
	QueueId    int64 `protobuf:"varint,2,opt,name=queueId,proto3" json:"queueId,omitempty"`
}

func (x *Priority2QueueId) Reset() {
	*x = Priority2QueueId{}
	if protoimpl.UnsafeEnabled {
		mi := &file_zksync_proto_msgTypes[66]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Priority2QueueId) ProtoMessage() {}

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

// Deprecated: Use Priority2QueueId.ProtoReflect.Descriptor instead.
func (*Priority2QueueId) Descriptor() ([]byte, []int) {
	return file_zksync_proto_rawDescGZIP(), []int{66}
}

func (x *Priority2QueueId) GetPriorityId() int64 {
	if x != nil {
		return x.PriorityId
	}
	return 0
}

func (x *Priority2QueueId) GetQueueId() int64 {
	if x != nil {
		return x.QueueId
	}
	return 0
}

var File_zksync_proto protoreflect.FileDescriptor

var file_zksync_proto_rawDesc = []byte{
	0x0a, 0x0c, 0x7a, 0x6b, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x1a, 0x0d, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x1a, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe9, 0x09, 0x0a, 0x0c, 0x5a, 0x6b, 0x73, 0x79, 0x6e, 0x63,
	0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69,
	0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x5a, 0x6b, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x48, 0x00, 0x52, 0x07, 0x64, 0x65, 0x70,
	0x6f, 0x73, 0x69, 0x74, 0x12, 0x33, 0x0a, 0x0a, 0x7a, 0x6b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72,
	0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x5a, 0x6b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x48, 0x00, 0x52, 0x0a, 0x7a,
	0x6b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x12, 0x33, 0x0a, 0x0a, 0x7a, 0x6b, 0x54,
	0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72,
	0x48, 0x00, 0x52, 0x0a, 0x7a, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x3e,
	0x0a, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x6f, 0x4e, 0x65, 0x77, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b,
	0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x6f, 0x4e, 0x65, 0x77, 0x48, 0x00, 0x52,
	0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x6f, 0x4e, 0x65, 0x77, 0x12, 0x32,
	0x0a, 0x09, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x45, 0x78, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x50, 0x72, 0x6f, 0x78,
	0x79, 0x45, 0x78, 0x69, 0x74, 0x48, 0x00, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x45, 0x78,
	0x69, 0x74, 0x12, 0x32, 0x0a, 0x09, 0x73, 0x65, 0x74, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b,
	0x53, 0x65, 0x74, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x48, 0x00, 0x52, 0x09, 0x73, 0x65, 0x74,
	0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x45, 0x78,
	0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x5a, 0x6b, 0x46, 0x75, 0x6c, 0x6c, 0x45, 0x78, 0x69, 0x74, 0x48, 0x00, 0x52, 0x08, 0x66,
	0x75, 0x6c, 0x6c, 0x45, 0x78, 0x69, 0x74, 0x12, 0x23, 0x0a, 0x04, 0x73, 0x77, 0x61, 0x70, 0x18,
	0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b,
	0x53, 0x77, 0x61, 0x70, 0x48, 0x00, 0x52, 0x04, 0x73, 0x77, 0x61, 0x70, 0x12, 0x41, 0x0a, 0x0e,
	0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x6f, 0x54, 0x72, 0x65, 0x65, 0x18, 0x09,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x43,
	0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x6f, 0x54, 0x72, 0x65, 0x65, 0x48, 0x00, 0x52,
	0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x6f, 0x54, 0x72, 0x65, 0x65, 0x12,
	0x41, 0x0a, 0x0e, 0x74, 0x72, 0x65, 0x65, 0x54, 0x6f, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63,
	0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x5a, 0x6b, 0x54, 0x72, 0x65, 0x65, 0x54, 0x6f, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74,
	0x48, 0x00, 0x52, 0x0e, 0x74, 0x72, 0x65, 0x65, 0x54, 0x6f, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61,
	0x63, 0x74, 0x12, 0x2c, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x74, 0x4e, 0x46, 0x54, 0x18, 0x0c, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x4d, 0x69,
	0x6e, 0x74, 0x4e, 0x46, 0x54, 0x48, 0x00, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x74, 0x4e, 0x46, 0x54,
	0x12, 0x38, 0x0a, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x4e, 0x46, 0x54, 0x18,
	0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b,
	0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x4e, 0x46, 0x54, 0x48, 0x00, 0x52, 0x0b, 0x77,
	0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x4e, 0x46, 0x54, 0x12, 0x38, 0x0a, 0x0b, 0x74, 0x72,
	0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4e, 0x46, 0x54, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66,
	0x65, 0x72, 0x4e, 0x46, 0x54, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65,
	0x72, 0x4e, 0x46, 0x54, 0x12, 0x38, 0x0a, 0x0c, 0x73, 0x65, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66,
	0x79, 0x4b, 0x65, 0x79, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x48, 0x00,
	0x52, 0x0c, 0x73, 0x65, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x38,
	0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x20, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x43, 0x6f,
	0x6d, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x6f, 0x6d,
	0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x35, 0x0a, 0x0b, 0x73, 0x65, 0x74, 0x56,
	0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x72,
	0x48, 0x00, 0x52, 0x0b, 0x73, 0x65, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12,
	0x29, 0x0a, 0x06, 0x73, 0x65, 0x74, 0x46, 0x65, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x0f, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x53, 0x65, 0x74, 0x46, 0x65, 0x65,
	0x48, 0x00, 0x52, 0x06, 0x73, 0x65, 0x74, 0x46, 0x65, 0x65, 0x12, 0x3e, 0x0a, 0x0e, 0x73, 0x65,
	0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x23, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x54, 0x6f, 0x6b,
	0x65, 0x6e, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x65, 0x74, 0x54,
	0x6f, 0x6b, 0x65, 0x6e, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x3b, 0x0a, 0x0d, 0x73, 0x65,
	0x74, 0x45, 0x78, 0x6f, 0x64, 0x75, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x24, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x45, 0x78, 0x6f, 0x64,
	0x75, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x65, 0x74, 0x45, 0x78, 0x6f,
	0x64, 0x75, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x33, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73,
	0x66, 0x65, 0x72, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72,
	0x48, 0x00, 0x52, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x33, 0x0a, 0x08,
	0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15,
	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x57, 0x69, 0x74,
	0x68, 0x64, 0x72, 0x61, 0x77, 0x48, 0x00, 0x52, 0x08, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61,
	0x77, 0x12, 0x45, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x6f, 0x45,
	0x78, 0x65, 0x63, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72,
	0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x48, 0x00, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66,
	0x65, 0x72, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x79, 0x18, 0x0f,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x74, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x22, 0x51, 0x0a, 0x0d, 0x5a, 0x6b, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x53, 0x79, 0x6d, 0x62,
	0x6f, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
	0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65,
	0x63, 0x69, 0x6d, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x64, 0x65, 0x63,
	0x69, 0x6d, 0x61, 0x6c, 0x22, 0x60, 0x0a, 0x0c, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x61, 0x6c,
	0x61, 0x6e, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x18,
	0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x6f, 0x6b, 0x65,
	0x6e, 0x48, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x6f, 0x6b,
	0x65, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x22, 0x99, 0x01, 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x54, 0x72, 0x65, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1e, 0x0a, 0x0a,
	0x74, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04,
	0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x28, 0x0a, 0x0f,
	0x6d, 0x61, 0x78, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e,
	0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2a, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x54, 0x72, 0x65,
	0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x53, 0x75, 0x62, 0x54, 0x72, 0x65, 0x65, 0x52, 0x08, 0x73, 0x75, 0x62, 0x54, 0x72, 0x65,
	0x65, 0x73, 0x22, 0xa5, 0x02, 0x0a, 0x04, 0x4c, 0x65, 0x61, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x61,
	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09,
	0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x74, 0x68,
	0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65,
	0x74, 0x68, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x27, 0x0a, 0x06, 0x70, 0x75, 0x62,
	0x4b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x5a, 0x6b, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x06, 0x70, 0x75, 0x62, 0x4b,
	0x65, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x33, 0x33, 0x41, 0x64, 0x64,
	0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x33, 0x33,
	0x41, 0x64, 0x64, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x48, 0x61, 0x73,
	0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x48, 0x61,
	0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x73, 0x18, 0x06,
	0x20, 0x03, 0x28, 0x04, 0x52, 0x08, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x3e,
	0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x41, 0x63, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73,
	0x52, 0x0c, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x1a,
	0x0a, 0x08, 0x6c, 0x65, 0x61, 0x66, 0x48, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c,
	0x52, 0x08, 0x6c, 0x65, 0x61, 0x66, 0x48, 0x61, 0x73, 0x68, 0x22, 0xbb, 0x02, 0x0a, 0x0b, 0x48,
	0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x65, 0x61, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61,
	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x74, 0x68, 0x41,
	0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x74,
	0x68, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x27, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x4b,
	0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x5a, 0x6b, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65,
	0x79, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x33, 0x33, 0x41, 0x64, 0x64, 0x72,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x33, 0x33, 0x41,
	0x64, 0x64, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x48, 0x61, 0x73, 0x68,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x48, 0x61, 0x73,
	0x68, 0x12, 0x2b, 0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42,
	0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x18,
	0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x07, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x78,
	0x79, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72,
	0x6f, 0x78, 0x79, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x78,
	0x79, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x22, 0x5e, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x74,
	0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68,
	0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72,
	0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x74,
	0x61, 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x3d, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x54,
	0x72, 0x65, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72,
	0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72,
	0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x22, 0xd5, 0x01, 0x0a, 0x09, 0x5a, 0x6b, 0x44, 0x65,
	0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x12,
	0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x74, 0x68, 0x41, 0x64,
	0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x74, 0x68,
	0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x69, 0x6e,
	0x33, 0x33, 0x41, 0x64, 0x64, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68,
	0x61, 0x69, 0x6e, 0x33, 0x33, 0x41, 0x64, 0x64, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x31, 0x50,
	0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x0c, 0x6c, 0x31, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x30, 0x0a,
	0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22,
	0x8e, 0x01, 0x0a, 0x0a, 0x5a, 0x6b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x12, 0x18,
	0x0a, 0x07, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x07, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75,
	0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74,
	0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x30,
	0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x53, 0x69, 0x67, 0x6e,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x22, 0xfe, 0x01, 0x0a, 0x10, 0x5a, 0x6b, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54,
	0x6f, 0x54, 0x72, 0x65, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x53, 0x79,
	0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x6f, 0x6b, 0x65,
	0x6e, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e,
	0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12,
	0x20, 0x0a, 0x0b, 0x74, 0x6f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49,
	0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x6f, 0x45, 0x74, 0x68, 0x41, 0x64, 0x64, 0x72, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x6f, 0x45, 0x74, 0x68, 0x41, 0x64, 0x64, 0x72, 0x12,
	0x22, 0x0a, 0x0c, 0x74, 0x6f, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x32, 0x41, 0x64, 0x64, 0x72, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x6f, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x32, 0x41,
	0x64, 0x64, 0x72, 0x12, 0x30, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a,
	0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x6f, 0x6d, 0x45, 0x78, 0x65,
	0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, 0x6f, 0x6d, 0x45, 0x78, 0x65,
	0x63, 0x22, 0xc8, 0x01, 0x0a, 0x10, 0x5a, 0x6b, 0x54, 0x72, 0x65, 0x65, 0x54, 0x6f, 0x43, 0x6f,
	0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64,
	0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x63, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x41, 0x63, 0x63, 0x74,
	0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x6f, 0x41, 0x63, 0x63, 0x74,
	0x49, 0x64, 0x12, 0x30, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b,
	0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x22, 0xb8, 0x01, 0x0a,
	0x0a, 0x5a, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x74,
	0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f,
	0x6b, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a,
	0x0d, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e,
	0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x6f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
	0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x41, 0x63, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x5a, 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73, 0x69,
	0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0xe9, 0x01, 0x0a, 0x0f, 0x5a, 0x6b, 0x54, 0x72,
	0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x6f, 0x4e, 0x65, 0x77, 0x12, 0x18, 0x0a, 0x07, 0x74,
	0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f,
	0x6b, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a,
	0x0d, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e,
	0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x6f, 0x45, 0x74, 0x68, 0x41, 0x64, 0x64, 0x72,
	0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x6f, 0x45, 0x74, 0x68,
	0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x6f, 0x4c, 0x61, 0x79,
	0x65, 0x72, 0x32, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0f, 0x74, 0x6f, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x32, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73,
	0x73, 0x12, 0x30, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x53,
	0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x22, 0x77, 0x0a, 0x0b, 0x5a, 0x6b, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x45, 0x78,
	0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09,
	0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x09, 0x73, 0x69,
	0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72,
	0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0xaf, 0x01, 0x0a,
	0x0b, 0x5a, 0x6b, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x45, 0x78, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07,
	0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74,
	0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x49,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x49, 0x64,
	0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x04, 0x52, 0x08, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x09,
	0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1e,
	0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x46, 0x65, 0x65, 0x52, 0x03, 0x66, 0x65, 0x65, 0x22, 0xa2,
	0x01, 0x0a, 0x0b, 0x5a, 0x6b, 0x53, 0x65, 0x74, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x1c,
	0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x06,
	0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x06, 0x70,
	0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x54,
	0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x54,
	0x79, 0x12, 0x30, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x53,
	0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x22, 0xa6, 0x01, 0x0a, 0x0a, 0x5a, 0x6b, 0x46, 0x75, 0x6c, 0x6c, 0x45, 0x78,
	0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09,
	0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x65, 0x74,
	0x68, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x64,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x65, 0x74, 0x68, 0x50, 0x72, 0x69, 0x6f, 0x72,
	0x69, 0x74, 0x79, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x09, 0x73, 0x69,
	0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72,
	0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x3a, 0x0a, 0x06,
	0x5a, 0x6b, 0x53, 0x77, 0x61, 0x70, 0x12, 0x30, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x5a, 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73,
	0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0xe1, 0x01, 0x0a, 0x09, 0x5a, 0x6b, 0x4d,
	0x69, 0x6e, 0x74, 0x4e, 0x46, 0x54, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x63,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x66,
	0x72, 0x6f, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b,
	0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x20,
	0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68,
	0x12, 0x20, 0x0a, 0x0b, 0x65, 0x72, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x65, 0x72, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63,
	0x6f, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x04, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x09, 0x73, 0x69,
	0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72,
	0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x9f, 0x01, 0x0a,
	0x0d, 0x5a, 0x6b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x4e, 0x46, 0x54, 0x12, 0x24,
	0x0a, 0x0d, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x46, 0x54, 0x54, 0x6f, 0x6b, 0x65, 0x6e,
	0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x4e, 0x46, 0x54, 0x54, 0x6f, 0x6b,
	0x65, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x09,
	0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0xc1,
	0x01, 0x0a, 0x0d, 0x5a, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4e, 0x46, 0x54,
	0x12, 0x24, 0x0a, 0x0d, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x63, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69,
	0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x72, 0x65, 0x63,
	0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x46, 0x54, 0x54,
	0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x4e, 0x46,
	0x54, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75,
	0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74,
	0x12, 0x30, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x53, 0x69,
	0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x22, 0x9a, 0x02, 0x0a, 0x10, 0x5a, 0x6b, 0x4e, 0x46, 0x54, 0x54, 0x6f, 0x6b, 0x65,
	0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74,
	0x6f, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61,
	0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72,
	0x45, 0x74, 0x68, 0x41, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63,
	0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x45, 0x74, 0x68, 0x41, 0x64, 0x64, 0x72, 0x12, 0x28, 0x0a,
	0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x49, 0x64,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x53,
	0x65, 0x72, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x72, 0x63, 0x50, 0x72,
	0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x65, 0x72,
	0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x69, 0x6e,
	0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d,
	0x69, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e,
	0x74, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
	0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x62,
	0x75, 0x72, 0x6e, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x0c, 0x62, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22,
	0x1f, 0x0a, 0x0b, 0x5a, 0x6b, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x10,
	0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
	0x22, 0x6b, 0x0a, 0x13, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x53, 0x65, 0x74, 0x56, 0x65,
	0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x26, 0x0a, 0x04, 0x70, 0x72, 0x65, 0x76, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b,
	0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x04, 0x70, 0x72, 0x65, 0x76, 0x12,
	0x2c, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x56, 0x65, 0x72, 0x69, 0x66,
	0x79, 0x4b, 0x65, 0x79, 0x52, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x4a, 0x0a,
	0x0a, 0x5a, 0x6b, 0x46, 0x65, 0x65, 0x41, 0x64, 0x64, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x65,
	0x74, 0x68, 0x46, 0x65, 0x65, 0x41, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0a, 0x65, 0x74, 0x68, 0x46, 0x65, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x6c,
	0x32, 0x46, 0x65, 0x65, 0x41, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
	0x6c, 0x32, 0x46, 0x65, 0x65, 0x41, 0x64, 0x64, 0x72, 0x22, 0xd3, 0x03, 0x0a, 0x0d, 0x5a, 0x6b,
	0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x1e, 0x0a, 0x0a, 0x62,
	0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x69,
	0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x62,
	0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x62,
	0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x64, 0x65, 0x78,
	0x45, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x6e, 0x64, 0x65, 0x78,
	0x45, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6f, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a,
	0x0b, 0x6f, 0x6c, 0x64, 0x54, 0x72, 0x65, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0b, 0x6f, 0x6c, 0x64, 0x54, 0x72, 0x65, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x12,
	0x20, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x54, 0x72, 0x65, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x54, 0x72, 0x65, 0x65, 0x52, 0x6f, 0x6f,
	0x74, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x49, 0x6e, 0x70, 0x75, 0x74,
	0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x49, 0x6e,
	0x70, 0x75, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x09, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x75, 0x62,
	0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x70, 0x75, 0x62,
	0x44, 0x61, 0x74, 0x61, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e,
	0x50, 0x75, 0x62, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f,
	0x6f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x75, 0x62, 0x44, 0x61, 0x74, 0x61, 0x73, 0x12,
	0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x49, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04,
	0x52, 0x07, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x6e, 0x43,
	0x68, 0x61, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x49, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x0e, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x49,
	0x64, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b,
	0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x63, 0x6f,
	0x6d, 0x6d, 0x69, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22,
	0xac, 0x03, 0x0a, 0x10, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x53,
	0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61,
	0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53,
	0x74, 0x61, 0x72, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61,
	0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x53,
	0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x6e, 0x64,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x6e, 0x64,
	0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x04, 0x52, 0x08, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07,
	0x6f, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6f,
	0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x6c, 0x64, 0x54, 0x72, 0x65,
	0x65, 0x52, 0x6f, 0x6f, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x6c, 0x64,
	0x54, 0x72, 0x65, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x54,
	0x72, 0x65, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e,
	0x65, 0x77, 0x54, 0x72, 0x65, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x75,
	0x62, 0x6c, 0x69, 0x63, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x14, 0x0a, 0x05,
	0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x6f,
	0x6f, 0x66, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x49, 0x64, 0x18, 0x0a, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e,
	0x6f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x49, 0x64, 0x18, 0x0b,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x72, 0x6f,
	0x6f, 0x66, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x42, 0x6c,
	0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x11, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67,
	0x68, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x75, 0x62, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x0e,
	0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x70, 0x75, 0x62, 0x44, 0x61, 0x74, 0x61, 0x73, 0x22, 0x74,
	0x0a, 0x12, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x50,
	0x72, 0x6f, 0x6f, 0x66, 0x12, 0x2b, 0x0a, 0x04, 0x70, 0x72, 0x65, 0x76, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
	0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x04, 0x70, 0x72, 0x65,
	0x76, 0x12, 0x31, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
	0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x07, 0x63, 0x75, 0x72,
	0x72, 0x65, 0x6e, 0x74, 0x22, 0x49, 0x0a, 0x18, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x43,
	0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64,
	0x12, 0x2d, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x50, 0x72,
	0x6f, 0x6f, 0x66, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x22,
	0x70, 0x0a, 0x0e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x49, 0x6e, 0x66,
	0x6f, 0x12, 0x2a, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
	0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x32, 0x0a,
	0x06, 0x71, 0x75, 0x65, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x49, 0x64, 0x32, 0x51, 0x75,
	0x65, 0x75, 0x65, 0x49, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x71, 0x75, 0x65, 0x75, 0x65,
	0x73, 0x22, 0x2a, 0x0a, 0x0a, 0x5a, 0x6b, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12,
	0x1c, 0x0a, 0x09, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x09, 0x52, 0x09, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x22, 0x68, 0x0a,
	0x12, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x53, 0x65, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66,
	0x69, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x04, 0x70, 0x72, 0x65, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x56, 0x65, 0x72, 0x69,
	0x66, 0x69, 0x65, 0x72, 0x52, 0x04, 0x70, 0x72, 0x65, 0x76, 0x12, 0x2b, 0x0a, 0x07, 0x63, 0x75,
	0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x07,
	0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x58, 0x0a, 0x08, 0x5a, 0x6b, 0x53, 0x65, 0x74,
	0x46, 0x65, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a,
	0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61,
	0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54,
	0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54,
	0x79, 0x22, 0x8b, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x53, 0x65, 0x74,
	0x46, 0x65, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a,
	0x08, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x08, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x65,
	0x76, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70,
	0x72, 0x65, 0x76, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x75, 0x72,
	0x72, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22,
	0x30, 0x0a, 0x10, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74,
	0x6f, 0x72, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73,
	0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72,
	0x73, 0x22, 0xf6, 0x02, 0x0a, 0x0a, 0x5a, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71,
	0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x20,
	0x0a, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74,
	0x12, 0x18, 0x0a, 0x07, 0x74, 0x78, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x07, 0x74, 0x78, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x74,
	0x68, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
	0x65, 0x74, 0x68, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68,
	0x61, 0x69, 0x6e, 0x33, 0x33, 0x41, 0x64, 0x64, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x33, 0x33, 0x41, 0x64, 0x64, 0x72, 0x12, 0x20, 0x0a, 0x0b,
	0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0b, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x2c,
	0x0a, 0x11, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x33, 0x33, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41,
	0x64, 0x64, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x68, 0x61, 0x69, 0x6e,
	0x33, 0x33, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x12, 0x18, 0x0a, 0x07,
	0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74,
	0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68,
	0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x18,
	0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x07, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x70, 0x54, 0x79,
	0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65,
	0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x07, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x22, 0xab, 0x01, 0x0a, 0x0b, 0x5a,
	0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0e, 0x6f, 0x70,
	0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x23, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x76,
	0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x4c, 0x65, 0x61, 0x66, 0x52, 0x06, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x12, 0x39, 0x0a,
	0x0d, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x03,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x54, 0x6f, 0x6b,
	0x65, 0x6e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x0d, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
	0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x77, 0x0a, 0x0c, 0x5a, 0x6b, 0x52, 0x65,
	0x63, 0x65, 0x69, 0x70, 0x74, 0x4c, 0x6f, 0x67, 0x12, 0x3a, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2b, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x4b, 0x76, 0x73,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4b,
	0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x4b, 0x76,
	0x73, 0x22, 0xbf, 0x01, 0x0a, 0x0f, 0x5a, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f,
	0x6f, 0x66, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x65, 0x64, 0x44, 0x65, 0x74,
	0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x6e, 0x65, 0x65, 0x64, 0x44,
	0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x6c,
	0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x10, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68,
	0x74, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69,
	0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x65, 0x6e, 0x64, 0x42, 0x6c,
	0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61,
	0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73,
	0x74, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x49,
	0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6f, 0x70, 0x49, 0x6e,
	0x64, 0x65, 0x78, 0x22, 0x50, 0x0a, 0x10, 0x5a, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72,
	0x6f, 0x6f, 0x66, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0xc4, 0x01, 0x0a, 0x10, 0x5a, 0x6b, 0x46, 0x65, 0x74, 0x63,
	0x68, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72,
	0x6f, 0x6f, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, 0x72, 0x6f,
	0x6f, 0x66, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50,
	0x72, 0x6f, 0x6f, 0x66, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6f, 0x6e,
	0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f,
	0x72, 0x65, 0x71, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x72, 0x65, 0x71, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x69,
	0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x4c, 0x61, 0x74,
	0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e,
	0x72, 0x65, 0x71, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x1c,
	0x0a, 0x09, 0x65, 0x6e, 0x64, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x3b, 0x0a, 0x0d,
	0x5a, 0x6b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a,
	0x05, 0x70, 0x61, 0x72, 0x74, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61,
	0x72, 0x74, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x74, 0x32, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x72, 0x74, 0x32, 0x22, 0xf9, 0x01, 0x0a, 0x0b, 0x5a, 0x6b,
	0x4f, 0x70, 0x4e, 0x46, 0x54, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x6f, 0x6b,
	0x65, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x6b, 0x65,
	0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x49,
	0x64, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x69,
	0x61, 0x6c, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61,
	0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x65,
	0x72, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04,
	0x52, 0x0b, 0x65, 0x72, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x1e, 0x0a,
	0x0a, 0x6d, 0x69, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0a, 0x6d, 0x69, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a,
	0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61,
	0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a,
	0x6b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x52, 0x07, 0x63, 0x6f,
	0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x52, 0x0a, 0x0c, 0x5a, 0x6b, 0x4f, 0x70, 0x53, 0x77, 0x61,
	0x70, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x12,
	0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x65, 0x65, 0x22, 0x39, 0x0a, 0x0b, 0x5a, 0x6b, 0x4f,
	0x70, 0x46, 0x65, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x6f, 0x6b, 0x65,
	0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
	0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x03, 0x66, 0x65, 0x65, 0x22, 0x4a, 0x0a, 0x0f, 0x5a, 0x6b, 0x53, 0x65, 0x74, 0x50, 0x75, 0x62,
	0x4b, 0x65, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x79, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x02, 0x74, 0x79, 0x12, 0x27, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65,
	0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x5a, 0x6b, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79,
	0x22, 0x1e, 0x0a, 0x0c, 0x4c, 0x31, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x49, 0x44,
	0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x44,
	0x22, 0x43, 0x0a, 0x13, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x4c, 0x31, 0x50, 0x72, 0x69,
	0x6f, 0x72, 0x69, 0x74, 0x79, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x72, 0x65, 0x76, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x72, 0x65, 0x76, 0x12, 0x18, 0x0a, 0x07, 0x63,
	0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x75,
	0x72, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x63, 0x0a, 0x0f, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x54,
	0x72, 0x65, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x74,
	0x48, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x74,
	0x48, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x53, 0x65, 0x74,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x53, 0x65, 0x74,
	0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x6c, 0x70, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
	0x09, 0x52, 0x07, 0x68, 0x65, 0x6c, 0x70, 0x65, 0x72, 0x73, 0x22, 0xc9, 0x01, 0x0a, 0x0d, 0x5a,
	0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x4c, 0x65, 0x61, 0x66, 0x12, 0x1f, 0x0a, 0x04,
	0x6c, 0x65, 0x61, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x2e, 0x4c, 0x65, 0x61, 0x66, 0x52, 0x04, 0x6c, 0x65, 0x61, 0x66, 0x12, 0x29, 0x0a,
	0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63,
	0x65, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x34, 0x0a, 0x09, 0x74, 0x72, 0x65, 0x65,
	0x50, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x54, 0x72, 0x65, 0x65, 0x50, 0x72,
	0x6f, 0x6f, 0x66, 0x52, 0x09, 0x74, 0x72, 0x65, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x36,
	0x0a, 0x0a, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x65, 0x72, 0x6b, 0x6c,
	0x65, 0x54, 0x72, 0x65, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x0a, 0x74, 0x6f, 0x6b, 0x65,
	0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0x9c, 0x01, 0x0a, 0x12, 0x5a, 0x6b, 0x41, 0x63, 0x63,
	0x74, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a,
	0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04,
	0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74,
	0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f,
	0x6b, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12,
	0x22, 0x0a, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x62,
	0x61, 0x63, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x03, 0x67, 0x61, 0x70, 0x22, 0x74, 0x0a, 0x18, 0x5a, 0x6b, 0x45, 0x78, 0x6f, 0x64, 0x75,
	0x73, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x50, 0x61, 0x72,
	0x6d, 0x12, 0x2e, 0x0a, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73,
	0x50, 0x72, 0x6f, 0x6f, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x6c,
	0x61, 0x73, 0x74, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x49,
	0x64, 0x12, 0x28, 0x0a, 0x0f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63,
	0x65, 0x47, 0x61, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x6b, 0x6e, 0x6f, 0x77,
	0x6e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x47, 0x61, 0x70, 0x22, 0x6a, 0x0a, 0x0c, 0x5a,
	0x6b, 0x45, 0x78, 0x6f, 0x64, 0x75, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d,
	0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12,
	0x3d, 0x0a, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x45, 0x78, 0x6f, 0x64,
	0x75, 0x73, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x50, 0x61,
	0x72, 0x6d, 0x48, 0x00, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x42, 0x07,
	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x41, 0x0a, 0x11, 0x52, 0x65, 0x63, 0x65, 0x69,
	0x70, 0x74, 0x45, 0x78, 0x6f, 0x64, 0x75, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04,
	0x70, 0x72, 0x65, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x72, 0x65, 0x76,
	0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x67, 0x0a, 0x15, 0x52, 0x65,
	0x63, 0x65, 0x69, 0x70, 0x74, 0x53, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x53, 0x79, 0x6d,
	0x62, 0x6f, 0x6c, 0x12, 0x26, 0x0a, 0x03, 0x70, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x54, 0x6f, 0x6b, 0x65, 0x6e,
	0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x52, 0x03, 0x70, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x03, 0x63,
	0x75, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x5a, 0x6b, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x52, 0x03,
	0x63, 0x75, 0x72, 0x22, 0x54, 0x0a, 0x10, 0x4c, 0x61, 0x73, 0x74, 0x4f, 0x6e, 0x43, 0x68, 0x61,
	0x69, 0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6f, 0x66,
	0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x49,
	0x64, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x6f,
	0x66, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6f, 0x6e, 0x43, 0x68, 0x61,
	0x69, 0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x49, 0x64, 0x22, 0x81, 0x01, 0x0a, 0x17, 0x48, 0x69,
	0x73, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x6f,
	0x66, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73,
	0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73,
	0x68, 0x12, 0x2a, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
	0x79, 0x4c, 0x65, 0x61, 0x66, 0x52, 0x06, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x12, 0x1e, 0x0a,
	0x0a, 0x6c, 0x65, 0x61, 0x66, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
	0x0c, 0x52, 0x0a, 0x6c, 0x65, 0x61, 0x66, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x22, 0x69, 0x0a,
	0x13, 0x5a, 0x6b, 0x52, 0x65, 0x71, 0x45, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x50,
	0x72, 0x6f, 0x6f, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
	0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08,
	0x72, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x72, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x22, 0xd1, 0x01, 0x0a, 0x15, 0x5a, 0x6b, 0x51,
	0x75, 0x65, 0x72, 0x79, 0x54, 0x78, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
	0x65, 0x71, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b,
	0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x73, 0x74,
	0x61, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1e,
	0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x04, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x18,
	0x0a, 0x07, 0x6f, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52,
	0x07, 0x6f, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e,
	0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20,
	0x0a, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74,
	0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x75, 0x72, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x08, 0x6d, 0x61, 0x74, 0x75, 0x72, 0x69, 0x74, 0x79, 0x22, 0x99, 0x01, 0x0a,
	0x15, 0x5a, 0x6b, 0x45, 0x78, 0x6f, 0x64, 0x75, 0x73, 0x42, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72,
	0x6f, 0x6f, 0x66, 0x52, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x41,
	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e,
	0x73, 0x74, 0x61, 0x72, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x22,
	0x0a, 0x0c, 0x65, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
	0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08,
	0x72, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x72, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x22, 0x44, 0x0a, 0x14, 0x52, 0x65, 0x63, 0x65,
	0x69, 0x70, 0x74, 0x4c, 0x32, 0x4c, 0x61, 0x73, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x44,
	0x12, 0x12, 0x0a, 0x04, 0x70, 0x72, 0x65, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04,
	0x70, 0x72, 0x65, 0x76, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x45,
	0x0a, 0x15, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x4c, 0x32, 0x46, 0x69, 0x72, 0x73, 0x74,
	0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x72, 0x65, 0x76, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x72, 0x65, 0x76, 0x12, 0x18, 0x0a, 0x07, 0x63,
	0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x75,
	0x72, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x4a, 0x0a, 0x14, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74,
	0x4c, 0x32, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x44, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a,
	0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x22, 0x0a,
	0x02, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x5a, 0x6b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x6f,
	0x70, 0x22, 0x75, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x49, 0x64, 0x32, 0x51, 0x75, 0x65,
	0x75, 0x65, 0x49, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6f,
	0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6f, 0x66,
	0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x69, 0x72, 0x73, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65,
	0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x66, 0x69, 0x72, 0x73, 0x74, 0x51,
	0x75, 0x65, 0x75, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x51, 0x75,
	0x65, 0x75, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6c, 0x61, 0x73,
	0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x64, 0x22, 0x4c, 0x0a, 0x1a, 0x52, 0x65, 0x63, 0x65,
	0x69, 0x70, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x49, 0x64, 0x32, 0x51, 0x75, 0x65, 0x75, 0x65,
	0x49, 0x44, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x72, 0x6f,
	0x6f, 0x66, 0x49, 0x64, 0x32, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x64, 0x44, 0x61, 0x74, 0x61,
	0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4c, 0x0a, 0x10, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69,
	0x74, 0x79, 0x32, 0x51, 0x75, 0x65, 0x75, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72,
	0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a,
	0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75,
	0x65, 0x75, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x71, 0x75, 0x65,
	0x75, 0x65, 0x49, 0x64, 0x32, 0x08, 0x0a, 0x06, 0x7a, 0x6b, 0x73, 0x79, 0x6e, 0x63, 0x42, 0x0a,
	0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x33,
}

var (
	file_zksync_proto_rawDescOnce sync.Once
	file_zksync_proto_rawDescData = file_zksync_proto_rawDesc
)

func file_zksync_proto_rawDescGZIP() []byte {
	file_zksync_proto_rawDescOnce.Do(func() {
		file_zksync_proto_rawDescData = protoimpl.X.CompressGZIP(file_zksync_proto_rawDescData)
	})
	return file_zksync_proto_rawDescData
}

var file_zksync_proto_msgTypes = make([]protoimpl.MessageInfo, 67)
var file_zksync_proto_goTypes = []interface{}{
	(*ZksyncAction)(nil),               // 0: types.ZksyncAction
	(*ZkTokenSymbol)(nil),              // 1: types.ZkTokenSymbol
	(*TokenBalance)(nil),               // 2: types.TokenBalance
	(*AccountTree)(nil),                // 3: types.AccountTree
	(*Leaf)(nil),                       // 4: types.Leaf
	(*HistoryLeaf)(nil),                // 5: types.HistoryLeaf
	(*RootInfo)(nil),                   // 6: types.RootInfo
	(*SubTree)(nil),                    // 7: types.SubTree
	(*ZkDeposit)(nil),                  // 8: types.ZkDeposit
	(*ZkWithdraw)(nil),                 // 9: types.ZkWithdraw
	(*ZkContractToTree)(nil),           // 10: types.ZkContractToTree
	(*ZkTreeToContract)(nil),           // 11: types.ZkTreeToContract
	(*ZkTransfer)(nil),                 // 12: types.ZkTransfer
	(*ZkTransferToNew)(nil),            // 13: types.ZkTransferToNew
	(*ZkForceExit)(nil),                // 14: types.ZkForceExit
	(*ZkProxyExit)(nil),                // 15: types.ZkProxyExit
	(*ZkSetPubKey)(nil),                // 16: types.ZkSetPubKey
	(*ZkFullExit)(nil),                 // 17: types.ZkFullExit
	(*ZkSwap)(nil),                     // 18: types.ZkSwap
	(*ZkMintNFT)(nil),                  // 19: types.ZkMintNFT
	(*ZkWithdrawNFT)(nil),              // 20: types.ZkWithdrawNFT
	(*ZkTransferNFT)(nil),              // 21: types.ZkTransferNFT
	(*ZkNFTTokenStatus)(nil),           // 22: types.ZkNFTTokenStatus
	(*ZkVerifyKey)(nil),                // 23: types.ZkVerifyKey
	(*ReceiptSetVerifyKey)(nil),        // 24: types.ReceiptSetVerifyKey
	(*ZkFeeAddrs)(nil),                 // 25: types.ZkFeeAddrs
	(*ZkCommitProof)(nil),              // 26: types.ZkCommitProof
	(*CommitProofState)(nil),           // 27: types.CommitProofState
	(*ReceiptCommitProof)(nil),         // 28: types.ReceiptCommitProof
	(*ReceiptCommitProofRecord)(nil),   // 29: types.ReceiptCommitProofRecord
	(*QueryProofInfo)(nil),             // 30: types.QueryProofInfo
	(*ZkVerifier)(nil),                 // 31: types.ZkVerifier
	(*ReceiptSetVerifier)(nil),         // 32: types.ReceiptSetVerifier
	(*ZkSetFee)(nil),                   // 33: types.ZkSetFee
	(*ReceiptSetFee)(nil),              // 34: types.ReceiptSetFee
	(*RelayerOperators)(nil),           // 35: types.RelayerOperators
	(*ZkQueryReq)(nil),                 // 36: types.ZkQueryReq
	(*ZkQueryResp)(nil),                // 37: types.ZkQueryResp
	(*ZkReceiptLog)(nil),               // 38: types.ZkReceiptLog
	(*ZkQueryProofReq)(nil),            // 39: types.ZkQueryProofReq
	(*ZkQueryProofResp)(nil),           // 40: types.ZkQueryProofResp
	(*ZkFetchProofList)(nil),           // 41: types.ZkFetchProofList
	(*ZkContentHash)(nil),              // 42: types.ZkContentHash
	(*ZkOpNFTData)(nil),                // 43: types.ZkOpNFTData
	(*ZkOpSwapData)(nil),               // 44: types.ZkOpSwapData
	(*ZkOpFeeData)(nil),                // 45: types.ZkOpFeeData
	(*ZkSetPubKeyData)(nil),            // 46: types.ZkSetPubKeyData
	(*L1PriorityID)(nil),               // 47: types.L1PriorityID
	(*ReceiptL1PriorityID)(nil),        // 48: types.ReceiptL1PriorityID
	(*MerkleTreeProof)(nil),            // 49: types.MerkleTreeProof
	(*ZkReceiptLeaf)(nil),              // 50: types.ZkReceiptLeaf
	(*ZkAcctRollbackInfo)(nil),         // 51: types.ZkAcctRollbackInfo
	(*ZkExodusRollbackModeParm)(nil),   // 52: types.ZkExodusRollbackModeParm
	(*ZkExodusMode)(nil),               // 53: types.ZkExodusMode
	(*ReceiptExodusMode)(nil),          // 54: types.ReceiptExodusMode
	(*ReceiptSetTokenSymbol)(nil),      // 55: types.ReceiptSetTokenSymbol
	(*LastOnChainProof)(nil),           // 56: types.LastOnChainProof
	(*HistoryAccountProofInfo)(nil),    // 57: types.HistoryAccountProofInfo
	(*ZkReqExistenceProof)(nil),        // 58: types.ZkReqExistenceProof
	(*ZkQueryTxOperationReq)(nil),      // 59: types.ZkQueryTxOperationReq
	(*ZkExodusBatchProofReq)(nil),      // 60: types.ZkExodusBatchProofReq
	(*ReceiptL2LastQueueID)(nil),       // 61: types.ReceiptL2LastQueueID
	(*ReceiptL2FirstQueueID)(nil),      // 62: types.ReceiptL2FirstQueueID
	(*ReceiptL2QueueIDData)(nil),       // 63: types.ReceiptL2QueueIDData
	(*ProofId2QueueIdData)(nil),        // 64: types.ProofId2QueueIdData
	(*ReceiptProofId2QueueIDData)(nil), // 65: types.ReceiptProofId2QueueIDData
	(*Priority2QueueId)(nil),           // 66: types.Priority2QueueId
	(*types.AssetsTransfer)(nil),       // 67: types.AssetsTransfer
	(*types.AssetsWithdraw)(nil),       // 68: types.AssetsWithdraw
	(*types.AssetsTransferToExec)(nil), // 69: types.AssetsTransferToExec
	(*ZkPubKey)(nil),                   // 70: types.ZkPubKey
	(*AccountProxyPubKeys)(nil),        // 71: types.AccountProxyPubKeys
	(*ZkSignature)(nil),                // 72: types.ZkSignature
	(*ZkFee)(nil),                      // 73: types.ZkFee
	(*OperationInfo)(nil),              // 74: types.OperationInfo
	(*types.KeyValue)(nil),             // 75: types.KeyValue
	(*ZkOperation)(nil),                // 76: types.ZkOperation
}
var file_zksync_proto_depIdxs = []int32{
	8,  // 0: types.ZksyncAction.deposit:type_name -> types.ZkDeposit
	9,  // 1: types.ZksyncAction.zkWithdraw:type_name -> types.ZkWithdraw
	12, // 2: types.ZksyncAction.zkTransfer:type_name -> types.ZkTransfer
	13, // 3: types.ZksyncAction.transferToNew:type_name -> types.ZkTransferToNew
	15, // 4: types.ZksyncAction.proxyExit:type_name -> types.ZkProxyExit
	16, // 5: types.ZksyncAction.setPubKey:type_name -> types.ZkSetPubKey
	17, // 6: types.ZksyncAction.fullExit:type_name -> types.ZkFullExit
	18, // 7: types.ZksyncAction.swap:type_name -> types.ZkSwap
	10, // 8: types.ZksyncAction.contractToTree:type_name -> types.ZkContractToTree
	11, // 9: types.ZksyncAction.treeToContract:type_name -> types.ZkTreeToContract
	19, // 10: types.ZksyncAction.mintNFT:type_name -> types.ZkMintNFT
	20, // 11: types.ZksyncAction.withdrawNFT:type_name -> types.ZkWithdrawNFT
	21, // 12: types.ZksyncAction.transferNFT:type_name -> types.ZkTransferNFT
	23, // 13: types.ZksyncAction.setVerifyKey:type_name -> types.ZkVerifyKey
	26, // 14: types.ZksyncAction.commitProof:type_name -> types.ZkCommitProof
	31, // 15: types.ZksyncAction.setVerifier:type_name -> types.ZkVerifier
	33, // 16: types.ZksyncAction.setFee:type_name -> types.ZkSetFee
	1,  // 17: types.ZksyncAction.setTokenSymbol:type_name -> types.ZkTokenSymbol
	53, // 18: types.ZksyncAction.setExodusMode:type_name -> types.ZkExodusMode
	67, // 19: types.ZksyncAction.transfer:type_name -> types.AssetsTransfer
	68, // 20: types.ZksyncAction.withdraw:type_name -> types.AssetsWithdraw
	69, // 21: types.ZksyncAction.transferToExec:type_name -> types.AssetsTransferToExec
	7,  // 22: types.AccountTree.subTrees:type_name -> types.SubTree
	70, // 23: types.Leaf.pubKey:type_name -> types.ZkPubKey
	71, // 24: types.Leaf.proxyPubKeys:type_name -> types.AccountProxyPubKeys
	70, // 25: types.HistoryLeaf.pubKey:type_name -> types.ZkPubKey
	2,  // 26: types.HistoryLeaf.tokens:type_name -> types.TokenBalance
	71, // 27: types.HistoryLeaf.proxyPubKeys:type_name -> types.AccountProxyPubKeys
	72, // 28: types.ZkDeposit.signature:type_name -> types.ZkSignature
	72, // 29: types.ZkWithdraw.signature:type_name -> types.ZkSignature
	72, // 30: types.ZkContractToTree.signature:type_name -> types.ZkSignature
	72, // 31: types.ZkTreeToContract.signature:type_name -> types.ZkSignature
	72, // 32: types.ZkTransfer.signature:type_name -> types.ZkSignature
	72, // 33: types.ZkTransferToNew.signature:type_name -> types.ZkSignature
	72, // 34: types.ZkForceExit.signature:type_name -> types.ZkSignature
	72, // 35: types.ZkProxyExit.signature:type_name -> types.ZkSignature
	73, // 36: types.ZkProxyExit.fee:type_name -> types.ZkFee
	70, // 37: types.ZkSetPubKey.pubKey:type_name -> types.ZkPubKey
	72, // 38: types.ZkSetPubKey.signature:type_name -> types.ZkSignature
	72, // 39: types.ZkFullExit.signature:type_name -> types.ZkSignature
	72, // 40: types.ZkSwap.signature:type_name -> types.ZkSignature
	72, // 41: types.ZkMintNFT.signature:type_name -> types.ZkSignature
	72, // 42: types.ZkWithdrawNFT.signature:type_name -> types.ZkSignature
	72, // 43: types.ZkTransferNFT.signature:type_name -> types.ZkSignature
	23, // 44: types.ReceiptSetVerifyKey.prev:type_name -> types.ZkVerifyKey
	23, // 45: types.ReceiptSetVerifyKey.current:type_name -> types.ZkVerifyKey
	27, // 46: types.ReceiptCommitProof.prev:type_name -> types.CommitProofState
	27, // 47: types.ReceiptCommitProof.current:type_name -> types.CommitProofState
	27, // 48: types.ReceiptCommitProofRecord.proof:type_name -> types.CommitProofState
	26, // 49: types.QueryProofInfo.proof:type_name -> types.ZkCommitProof
	64, // 50: types.QueryProofInfo.queues:type_name -> types.ProofId2QueueIdData
	31, // 51: types.ReceiptSetVerifier.prev:type_name -> types.ZkVerifier
	31, // 52: types.ReceiptSetVerifier.current:type_name -> types.ZkVerifier
	74, // 53: types.ZkQueryResp.operationInfos:type_name -> types.OperationInfo
	4,  // 54: types.ZkQueryResp.leaves:type_name -> types.Leaf
	2,  // 55: types.ZkQueryResp.tokenBalances:type_name -> types.TokenBalance
	74, // 56: types.ZkReceiptLog.operationInfo:type_name -> types.OperationInfo
	75, // 57: types.ZkReceiptLog.localKvs:type_name -> types.KeyValue
	74, // 58: types.ZkQueryProofResp.operationInfos:type_name -> types.OperationInfo
	42, // 59: types.ZkOpNFTData.content:type_name -> types.ZkContentHash
	70, // 60: types.ZkSetPubKeyData.pubKey:type_name -> types.ZkPubKey
	4,  // 61: types.ZkReceiptLeaf.leaf:type_name -> types.Leaf
	2,  // 62: types.ZkReceiptLeaf.token:type_name -> types.TokenBalance
	49, // 63: types.ZkReceiptLeaf.treeProof:type_name -> types.MerkleTreeProof
	49, // 64: types.ZkReceiptLeaf.tokenProof:type_name -> types.MerkleTreeProof
	52, // 65: types.ZkExodusMode.rollback:type_name -> types.ZkExodusRollbackModeParm
	1,  // 66: types.ReceiptSetTokenSymbol.pre:type_name -> types.ZkTokenSymbol
	1,  // 67: types.ReceiptSetTokenSymbol.cur:type_name -> types.ZkTokenSymbol
	5,  // 68: types.HistoryAccountProofInfo.leaves:type_name -> types.HistoryLeaf
	76, // 69: types.ReceiptL2QueueIDData.op:type_name -> types.ZkOperation
	64, // 70: types.ReceiptProofId2QueueIDData.data:type_name -> types.ProofId2QueueIdData
	71, // [71:71] is the sub-list for method output_type
	71, // [71:71] is the sub-list for method input_type
	71, // [71:71] is the sub-list for extension type_name
	71, // [71:71] is the sub-list for extension extendee
	0,  // [0:71] is the sub-list for field type_name
}

func init() { file_zksync_proto_init() }
func file_zksync_proto_init() {
	if File_zksync_proto != nil {
		return
	}
	file_witness_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_zksync_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZksyncAction); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkTokenSymbol); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TokenBalance); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AccountTree); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Leaf); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*HistoryLeaf); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RootInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SubTree); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkDeposit); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkWithdraw); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkContractToTree); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkTreeToContract); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkTransfer); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkTransferToNew); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkForceExit); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkProxyExit); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkSetPubKey); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkFullExit); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkSwap); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkMintNFT); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkWithdrawNFT); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkTransferNFT); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkNFTTokenStatus); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkVerifyKey); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReceiptSetVerifyKey); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkFeeAddrs); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkCommitProof); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CommitProofState); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReceiptCommitProof); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReceiptCommitProofRecord); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QueryProofInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkVerifier); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReceiptSetVerifier); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkSetFee); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReceiptSetFee); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RelayerOperators); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkQueryReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkQueryResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkReceiptLog); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkQueryProofReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkQueryProofResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkFetchProofList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkContentHash); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkOpNFTData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkOpSwapData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkOpFeeData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkSetPubKeyData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*L1PriorityID); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReceiptL1PriorityID); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MerkleTreeProof); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkReceiptLeaf); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkAcctRollbackInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkExodusRollbackModeParm); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkExodusMode); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReceiptExodusMode); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReceiptSetTokenSymbol); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LastOnChainProof); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*HistoryAccountProofInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkReqExistenceProof); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkQueryTxOperationReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkExodusBatchProofReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReceiptL2LastQueueID); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReceiptL2FirstQueueID); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReceiptL2QueueIDData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ProofId2QueueIdData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReceiptProofId2QueueIDData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_zksync_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Priority2QueueId); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_zksync_proto_msgTypes[0].OneofWrappers = []interface{}{
		(*ZksyncAction_Deposit)(nil),
		(*ZksyncAction_ZkWithdraw)(nil),
		(*ZksyncAction_ZkTransfer)(nil),
		(*ZksyncAction_TransferToNew)(nil),
		(*ZksyncAction_ProxyExit)(nil),
		(*ZksyncAction_SetPubKey)(nil),
		(*ZksyncAction_FullExit)(nil),
		(*ZksyncAction_Swap)(nil),
		(*ZksyncAction_ContractToTree)(nil),
		(*ZksyncAction_TreeToContract)(nil),
		(*ZksyncAction_MintNFT)(nil),
		(*ZksyncAction_WithdrawNFT)(nil),
		(*ZksyncAction_TransferNFT)(nil),
		(*ZksyncAction_SetVerifyKey)(nil),
		(*ZksyncAction_CommitProof)(nil),
		(*ZksyncAction_SetVerifier)(nil),
		(*ZksyncAction_SetFee)(nil),
		(*ZksyncAction_SetTokenSymbol)(nil),
		(*ZksyncAction_SetExodusMode)(nil),
		(*ZksyncAction_Transfer)(nil),
		(*ZksyncAction_Withdraw)(nil),
		(*ZksyncAction_TransferToExec)(nil),
	}
	file_zksync_proto_msgTypes[53].OneofWrappers = []interface{}{
		(*ZkExodusMode_Rollback)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_zksync_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   67,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_zksync_proto_goTypes,
		DependencyIndexes: file_zksync_proto_depIdxs,
		MessageInfos:      file_zksync_proto_msgTypes,
	}.Build()
	File_zksync_proto = out.File
	file_zksync_proto_rawDesc = nil
	file_zksync_proto_goTypes = nil
	file_zksync_proto_depIdxs = nil
}

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

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

// ZksyncClient is the client API for Zksync service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type ZksyncClient interface {
}

type zksyncClient struct {
	cc grpc.ClientConnInterface
}

func NewZksyncClient(cc grpc.ClientConnInterface) ZksyncClient {
	return &zksyncClient{cc}
}

// ZksyncServer is the server API for Zksync service.
type ZksyncServer interface {
}

// UnimplementedZksyncServer can be embedded to have forward compatible implementations.
type UnimplementedZksyncServer struct {
}

func RegisterZksyncServer(s *grpc.Server, srv ZksyncServer) {
	s.RegisterService(&_Zksync_serviceDesc, srv)
}

var _Zksync_serviceDesc = grpc.ServiceDesc{
	ServiceName: "types.zksync",
	HandlerType: (*ZksyncServer)(nil),
	Methods:     []grpc.MethodDesc{},
	Streams:     []grpc.StreamDesc{},
	Metadata:    "zksync.proto",
}
