// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.23.0
// 	protoc        v3.6.0
// source: collateralize.proto

package types

import (
	proto "github.com/golang/protobuf/proto"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)

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

// This is a compile-time assertion that a sufficiently up-to-date version
// of the legacy proto package is being used.
const _ = proto.ProtoPackageIsVersion4

// 放贷信息
type Collateralize struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CollateralizeId        string          `protobuf:"bytes,1,opt,name=collateralizeId,proto3" json:"collateralizeId,omitempty"`                 //放贷ID,一期放贷对应一个ID
	TotalBalance           int64           `protobuf:"varint,2,opt,name=totalBalance,proto3" json:"totalBalance,omitempty"`                      //当期放贷的总金额(ccny)
	DebtCeiling            int64           `protobuf:"varint,3,opt,name=debtCeiling,proto3" json:"debtCeiling,omitempty"`                        //单用户可借出的限额(ccny)
	LiquidationRatio       int64           `protobuf:"varint,4,opt,name=liquidationRatio,proto3" json:"liquidationRatio,omitempty"`              //清算比例
	StabilityFeeRatio      int64           `protobuf:"varint,5,opt,name=stabilityFeeRatio,proto3" json:"stabilityFeeRatio,omitempty"`            //稳定费率
	CreateAddr             string          `protobuf:"bytes,6,opt,name=createAddr,proto3" json:"createAddr,omitempty"`                           //创建人地址
	Balance                int64           `protobuf:"varint,7,opt,name=balance,proto3" json:"balance,omitempty"`                                //放贷剩余金额(ccny)
	BorrowRecords          []*BorrowRecord `protobuf:"bytes,8,rep,name=borrowRecords,proto3" json:"borrowRecords,omitempty"`                     //借贷记录
	InvalidRecords         []*BorrowRecord `protobuf:"bytes,9,rep,name=InvalidRecords,proto3" json:"InvalidRecords,omitempty"`                   //失效的借贷记录
	Status                 int32           `protobuf:"varint,10,opt,name=status,proto3" json:"status,omitempty"`                                 //当期借贷的状态，是否关闭
	LatestLiquidationPrice int64           `protobuf:"varint,11,opt,name=latestLiquidationPrice,proto3" json:"latestLiquidationPrice,omitempty"` //最高清算价格
	Period                 int64           `protobuf:"varint,12,opt,name=period,proto3" json:"period,omitempty"`                                 //借贷最大期限
	LatestExpireTime       int64           `protobuf:"varint,13,opt,name=latestExpireTime,proto3" json:"latestExpireTime,omitempty"`             //最近超期时间
	CollBalance            int64           `protobuf:"varint,14,opt,name=collBalance,proto3" json:"collBalance,omitempty"`                       //抵押bty
	PreStatus              int32           `protobuf:"varint,15,opt,name=preStatus,proto3" json:"preStatus,omitempty"`                           //上一个状态
}

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

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

func (*Collateralize) ProtoMessage() {}

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

func (x *Collateralize) GetCollateralizeId() string {
	if x != nil {
		return x.CollateralizeId
	}
	return ""
}

func (x *Collateralize) GetTotalBalance() int64 {
	if x != nil {
		return x.TotalBalance
	}
	return 0
}

func (x *Collateralize) GetDebtCeiling() int64 {
	if x != nil {
		return x.DebtCeiling
	}
	return 0
}

func (x *Collateralize) GetLiquidationRatio() int64 {
	if x != nil {
		return x.LiquidationRatio
	}
	return 0
}

func (x *Collateralize) GetStabilityFeeRatio() int64 {
	if x != nil {
		return x.StabilityFeeRatio
	}
	return 0
}

func (x *Collateralize) GetCreateAddr() string {
	if x != nil {
		return x.CreateAddr
	}
	return ""
}

func (x *Collateralize) GetBalance() int64 {
	if x != nil {
		return x.Balance
	}
	return 0
}

func (x *Collateralize) GetBorrowRecords() []*BorrowRecord {
	if x != nil {
		return x.BorrowRecords
	}
	return nil
}

func (x *Collateralize) GetInvalidRecords() []*BorrowRecord {
	if x != nil {
		return x.InvalidRecords
	}
	return nil
}

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

func (x *Collateralize) GetLatestLiquidationPrice() int64 {
	if x != nil {
		return x.LatestLiquidationPrice
	}
	return 0
}

func (x *Collateralize) GetPeriod() int64 {
	if x != nil {
		return x.Period
	}
	return 0
}

func (x *Collateralize) GetLatestExpireTime() int64 {
	if x != nil {
		return x.LatestExpireTime
	}
	return 0
}

func (x *Collateralize) GetCollBalance() int64 {
	if x != nil {
		return x.CollBalance
	}
	return 0
}

func (x *Collateralize) GetPreStatus() int32 {
	if x != nil {
		return x.PreStatus
	}
	return 0
}

// 借出记录
type BorrowRecord struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AccountAddr      string `protobuf:"bytes,1,opt,name=accountAddr,proto3" json:"accountAddr,omitempty"`            //借贷人地址
	StartTime        int64  `protobuf:"varint,2,opt,name=startTime,proto3" json:"startTime,omitempty"`               //借贷时间
	CollateralValue  int64  `protobuf:"varint,3,opt,name=collateralValue,proto3" json:"collateralValue,omitempty"`   //抵押物价值(bty)
	CollateralPrice  int64  `protobuf:"varint,4,opt,name=collateralPrice,proto3" json:"collateralPrice,omitempty"`   //抵押物价格
	DebtValue        int64  `protobuf:"varint,5,opt,name=debtValue,proto3" json:"debtValue,omitempty"`               //债务价值(ccny)
	LiquidationPrice int64  `protobuf:"varint,6,opt,name=liquidationPrice,proto3" json:"liquidationPrice,omitempty"` //抵押物清算价格
	Status           int32  `protobuf:"varint,7,opt,name=status,proto3" json:"status,omitempty"`                     //抵押状态，是否被清算
	LiquidateTime    int64  `protobuf:"varint,8,opt,name=liquidateTime,proto3" json:"liquidateTime,omitempty"`       //清算时间
	ExpireTime       int64  `protobuf:"varint,9,opt,name=expireTime,proto3" json:"expireTime,omitempty"`             //超时清算时间
	PreStatus        int32  `protobuf:"varint,10,opt,name=preStatus,proto3" json:"preStatus,omitempty"`              //上一次抵押状态，用于告警恢复
	RecordId         string `protobuf:"bytes,11,opt,name=recordId,proto3" json:"recordId,omitempty"`                 //借贷id，标识一次借出记录
	CollateralizeId  string `protobuf:"bytes,12,opt,name=collateralizeId,proto3" json:"collateralizeId,omitempty"`   //放贷id
}

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

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

func (*BorrowRecord) ProtoMessage() {}

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

func (x *BorrowRecord) GetAccountAddr() string {
	if x != nil {
		return x.AccountAddr
	}
	return ""
}

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

func (x *BorrowRecord) GetCollateralValue() int64 {
	if x != nil {
		return x.CollateralValue
	}
	return 0
}

func (x *BorrowRecord) GetCollateralPrice() int64 {
	if x != nil {
		return x.CollateralPrice
	}
	return 0
}

func (x *BorrowRecord) GetDebtValue() int64 {
	if x != nil {
		return x.DebtValue
	}
	return 0
}

func (x *BorrowRecord) GetLiquidationPrice() int64 {
	if x != nil {
		return x.LiquidationPrice
	}
	return 0
}

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

func (x *BorrowRecord) GetLiquidateTime() int64 {
	if x != nil {
		return x.LiquidateTime
	}
	return 0
}

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

func (x *BorrowRecord) GetPreStatus() int32 {
	if x != nil {
		return x.PreStatus
	}
	return 0
}

func (x *BorrowRecord) GetRecordId() string {
	if x != nil {
		return x.RecordId
	}
	return ""
}

func (x *BorrowRecord) GetCollateralizeId() string {
	if x != nil {
		return x.CollateralizeId
	}
	return ""
}

// 资产价格记录
type AssetPriceRecord struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	RecordTime int64 `protobuf:"varint,1,opt,name=recordTime,proto3" json:"recordTime,omitempty"` //价格记录时间
	BtyPrice   int64 `protobuf:"varint,2,opt,name=btyPrice,proto3" json:"btyPrice,omitempty"`     // bty价格
	BtcPrice   int64 `protobuf:"varint,3,opt,name=btcPrice,proto3" json:"btcPrice,omitempty"`     // btc价格
	EthPrice   int64 `protobuf:"varint,4,opt,name=ethPrice,proto3" json:"ethPrice,omitempty"`     // eth价格
}

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

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

func (*AssetPriceRecord) ProtoMessage() {}

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

func (x *AssetPriceRecord) GetRecordTime() int64 {
	if x != nil {
		return x.RecordTime
	}
	return 0
}

func (x *AssetPriceRecord) GetBtyPrice() int64 {
	if x != nil {
		return x.BtyPrice
	}
	return 0
}

func (x *AssetPriceRecord) GetBtcPrice() int64 {
	if x != nil {
		return x.BtcPrice
	}
	return 0
}

func (x *AssetPriceRecord) GetEthPrice() int64 {
	if x != nil {
		return x.EthPrice
	}
	return 0
}

// action
type CollateralizeAction struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Value:
	//	*CollateralizeAction_Create
	//	*CollateralizeAction_Borrow
	//	*CollateralizeAction_Repay
	//	*CollateralizeAction_Append
	//	*CollateralizeAction_Feed
	//	*CollateralizeAction_Retrieve
	//	*CollateralizeAction_Manage
	Value isCollateralizeAction_Value `protobuf_oneof:"value"`
	Ty    int32                       `protobuf:"varint,10,opt,name=ty,proto3" json:"ty,omitempty"`
}

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

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

func (*CollateralizeAction) ProtoMessage() {}

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

func (m *CollateralizeAction) GetValue() isCollateralizeAction_Value {
	if m != nil {
		return m.Value
	}
	return nil
}

func (x *CollateralizeAction) GetCreate() *CollateralizeCreate {
	if x, ok := x.GetValue().(*CollateralizeAction_Create); ok {
		return x.Create
	}
	return nil
}

func (x *CollateralizeAction) GetBorrow() *CollateralizeBorrow {
	if x, ok := x.GetValue().(*CollateralizeAction_Borrow); ok {
		return x.Borrow
	}
	return nil
}

func (x *CollateralizeAction) GetRepay() *CollateralizeRepay {
	if x, ok := x.GetValue().(*CollateralizeAction_Repay); ok {
		return x.Repay
	}
	return nil
}

func (x *CollateralizeAction) GetAppend() *CollateralizeAppend {
	if x, ok := x.GetValue().(*CollateralizeAction_Append); ok {
		return x.Append
	}
	return nil
}

func (x *CollateralizeAction) GetFeed() *CollateralizeFeed {
	if x, ok := x.GetValue().(*CollateralizeAction_Feed); ok {
		return x.Feed
	}
	return nil
}

func (x *CollateralizeAction) GetRetrieve() *CollateralizeRetrieve {
	if x, ok := x.GetValue().(*CollateralizeAction_Retrieve); ok {
		return x.Retrieve
	}
	return nil
}

func (x *CollateralizeAction) GetManage() *CollateralizeManage {
	if x, ok := x.GetValue().(*CollateralizeAction_Manage); ok {
		return x.Manage
	}
	return nil
}

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

type isCollateralizeAction_Value interface {
	isCollateralizeAction_Value()
}

type CollateralizeAction_Create struct {
	Create *CollateralizeCreate `protobuf:"bytes,1,opt,name=create,proto3,oneof"` //创建一期借贷
}

type CollateralizeAction_Borrow struct {
	Borrow *CollateralizeBorrow `protobuf:"bytes,2,opt,name=borrow,proto3,oneof"` //借贷
}

type CollateralizeAction_Repay struct {
	Repay *CollateralizeRepay `protobuf:"bytes,3,opt,name=repay,proto3,oneof"` //清算
}

type CollateralizeAction_Append struct {
	Append *CollateralizeAppend `protobuf:"bytes,4,opt,name=append,proto3,oneof"` //追加
}

type CollateralizeAction_Feed struct {
	Feed *CollateralizeFeed `protobuf:"bytes,5,opt,name=feed,proto3,oneof"` //喂价
}

type CollateralizeAction_Retrieve struct {
	Retrieve *CollateralizeRetrieve `protobuf:"bytes,6,opt,name=retrieve,proto3,oneof"` //收回
}

type CollateralizeAction_Manage struct {
	Manage *CollateralizeManage `protobuf:"bytes,7,opt,name=manage,proto3,oneof"` //全局配置
}

func (*CollateralizeAction_Create) isCollateralizeAction_Value() {}

func (*CollateralizeAction_Borrow) isCollateralizeAction_Value() {}

func (*CollateralizeAction_Repay) isCollateralizeAction_Value() {}

func (*CollateralizeAction_Append) isCollateralizeAction_Value() {}

func (*CollateralizeAction_Feed) isCollateralizeAction_Value() {}

func (*CollateralizeAction_Retrieve) isCollateralizeAction_Value() {}

func (*CollateralizeAction_Manage) isCollateralizeAction_Value() {}

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

	DebtCeiling       int64 `protobuf:"varint,1,opt,name=debtCeiling,proto3" json:"debtCeiling,omitempty"`             //单用户可借出的限额(ccny)
	LiquidationRatio  int64 `protobuf:"varint,2,opt,name=liquidationRatio,proto3" json:"liquidationRatio,omitempty"`   //清算比例
	StabilityFeeRatio int64 `protobuf:"varint,3,opt,name=stabilityFeeRatio,proto3" json:"stabilityFeeRatio,omitempty"` //稳定费
	Period            int64 `protobuf:"varint,4,opt,name=period,proto3" json:"period,omitempty"`                       //合约期限
	TotalBalance      int64 `protobuf:"varint,5,opt,name=totalBalance,proto3" json:"totalBalance,omitempty"`           //放贷总量
	CurrentTime       int64 `protobuf:"varint,6,opt,name=currentTime,proto3" json:"currentTime,omitempty"`             //设置时间
}

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

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

func (*CollateralizeManage) ProtoMessage() {}

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

func (x *CollateralizeManage) GetDebtCeiling() int64 {
	if x != nil {
		return x.DebtCeiling
	}
	return 0
}

func (x *CollateralizeManage) GetLiquidationRatio() int64 {
	if x != nil {
		return x.LiquidationRatio
	}
	return 0
}

func (x *CollateralizeManage) GetStabilityFeeRatio() int64 {
	if x != nil {
		return x.StabilityFeeRatio
	}
	return 0
}

func (x *CollateralizeManage) GetPeriod() int64 {
	if x != nil {
		return x.Period
	}
	return 0
}

func (x *CollateralizeManage) GetTotalBalance() int64 {
	if x != nil {
		return x.TotalBalance
	}
	return 0
}

func (x *CollateralizeManage) GetCurrentTime() int64 {
	if x != nil {
		return x.CurrentTime
	}
	return 0
}

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

	SuperAddrs []string `protobuf:"bytes,1,rep,name=superAddrs,proto3" json:"superAddrs,omitempty"` //大户地址
}

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

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

func (*CollateralizeAddr) ProtoMessage() {}

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

func (x *CollateralizeAddr) GetSuperAddrs() []string {
	if x != nil {
		return x.SuperAddrs
	}
	return nil
}

// 创建放贷
type CollateralizeCreate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	TotalBalance int64 `protobuf:"varint,1,opt,name=totalBalance,proto3" json:"totalBalance,omitempty"` //可借贷总金额
}

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

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

func (*CollateralizeCreate) ProtoMessage() {}

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

func (x *CollateralizeCreate) GetTotalBalance() int64 {
	if x != nil {
		return x.TotalBalance
	}
	return 0
}

// 质押借出
type CollateralizeBorrow struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CollateralizeId string `protobuf:"bytes,1,opt,name=collateralizeId,proto3" json:"collateralizeId,omitempty"` //借贷期数ID
	Value           int64  `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"`                    //借贷价值(ccny)
}

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

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

func (*CollateralizeBorrow) ProtoMessage() {}

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

func (x *CollateralizeBorrow) GetCollateralizeId() string {
	if x != nil {
		return x.CollateralizeId
	}
	return ""
}

func (x *CollateralizeBorrow) GetValue() int64 {
	if x != nil {
		return x.Value
	}
	return 0
}

// 质押清算
type CollateralizeRepay struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CollateralizeId string `protobuf:"bytes,1,opt,name=collateralizeId,proto3" json:"collateralizeId,omitempty"` //借贷期数ID
	RecordId        string `protobuf:"bytes,2,opt,name=recordId,proto3" json:"recordId,omitempty"`               //借贷ID
}

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

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

func (*CollateralizeRepay) ProtoMessage() {}

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

func (x *CollateralizeRepay) GetCollateralizeId() string {
	if x != nil {
		return x.CollateralizeId
	}
	return ""
}

func (x *CollateralizeRepay) GetRecordId() string {
	if x != nil {
		return x.RecordId
	}
	return ""
}

// 追加抵押物
type CollateralizeAppend struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CollateralizeId string `protobuf:"bytes,1,opt,name=collateralizeId,proto3" json:"collateralizeId,omitempty"`  //借贷期数ID
	RecordId        string `protobuf:"bytes,2,opt,name=recordId,proto3" json:"recordId,omitempty"`                //借贷ID
	CollateralValue int64  `protobuf:"varint,3,opt,name=collateralValue,proto3" json:"collateralValue,omitempty"` //追加价值(bty)
}

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

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

func (*CollateralizeAppend) ProtoMessage() {}

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

func (x *CollateralizeAppend) GetCollateralizeId() string {
	if x != nil {
		return x.CollateralizeId
	}
	return ""
}

func (x *CollateralizeAppend) GetRecordId() string {
	if x != nil {
		return x.RecordId
	}
	return ""
}

func (x *CollateralizeAppend) GetCollateralValue() int64 {
	if x != nil {
		return x.CollateralValue
	}
	return 0
}

// 喂价
type CollateralizeFeed struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CollType int32   `protobuf:"varint,1,opt,name=collType,proto3" json:"collType,omitempty"`    //抵押物价格类型(1，bty，2，btc，3，eth...)
	Price    []int64 `protobuf:"varint,2,rep,packed,name=price,proto3" json:"price,omitempty"`   //喂价
	Volume   []int64 `protobuf:"varint,3,rep,packed,name=volume,proto3" json:"volume,omitempty"` //成交量
}

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

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

func (*CollateralizeFeed) ProtoMessage() {}

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

func (x *CollateralizeFeed) GetCollType() int32 {
	if x != nil {
		return x.CollType
	}
	return 0
}

func (x *CollateralizeFeed) GetPrice() []int64 {
	if x != nil {
		return x.Price
	}
	return nil
}

func (x *CollateralizeFeed) GetVolume() []int64 {
	if x != nil {
		return x.Volume
	}
	return nil
}

// 收回
type CollateralizeRetrieve struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CollateralizeId string `protobuf:"bytes,1,opt,name=collateralizeId,proto3" json:"collateralizeId,omitempty"` //借贷期数ID
	Balance         int64  `protobuf:"varint,2,opt,name=balance,proto3" json:"balance,omitempty"`                //收回金额
}

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

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

func (*CollateralizeRetrieve) ProtoMessage() {}

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

func (x *CollateralizeRetrieve) GetCollateralizeId() string {
	if x != nil {
		return x.CollateralizeId
	}
	return ""
}

func (x *CollateralizeRetrieve) GetBalance() int64 {
	if x != nil {
		return x.Balance
	}
	return 0
}

// exec_local 放贷信息
type ReceiptCollateralize struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CollateralizeId string `protobuf:"bytes,1,opt,name=collateralizeId,proto3" json:"collateralizeId,omitempty"`
	AccountAddr     string `protobuf:"bytes,3,opt,name=accountAddr,proto3" json:"accountAddr,omitempty"`
	RecordId        string `protobuf:"bytes,4,opt,name=recordId,proto3" json:"recordId,omitempty"`
	Status          int32  `protobuf:"varint,5,opt,name=status,proto3" json:"status,omitempty"`
}

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

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

func (*ReceiptCollateralize) ProtoMessage() {}

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

func (x *ReceiptCollateralize) GetCollateralizeId() string {
	if x != nil {
		return x.CollateralizeId
	}
	return ""
}

func (x *ReceiptCollateralize) GetAccountAddr() string {
	if x != nil {
		return x.AccountAddr
	}
	return ""
}

func (x *ReceiptCollateralize) GetRecordId() string {
	if x != nil {
		return x.RecordId
	}
	return ""
}

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

// exec_local 放贷记录信息列表
type CollateralizeRecords struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Records []*ReceiptCollateralize `protobuf:"bytes,1,rep,name=records,proto3" json:"records,omitempty"`
}

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

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

func (*CollateralizeRecords) ProtoMessage() {}

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

func (x *CollateralizeRecords) GetRecords() []*ReceiptCollateralize {
	if x != nil {
		return x.Records
	}
	return nil
}

// 根据ID查询一期放贷信息
type ReqCollateralizeInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CollateralizeId string `protobuf:"bytes,1,opt,name=collateralizeId,proto3" json:"collateralizeId,omitempty"`
}

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

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

func (*ReqCollateralizeInfo) ProtoMessage() {}

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

func (x *ReqCollateralizeInfo) GetCollateralizeId() string {
	if x != nil {
		return x.CollateralizeId
	}
	return ""
}

// 返回一期放贷信息
type RepCollateralizeCurrentInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status            int32           `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"`                       //当期借贷的状态，是否关闭
	TotalBalance      int64           `protobuf:"varint,2,opt,name=totalBalance,proto3" json:"totalBalance,omitempty"`           //当期可借贷的总金额(ccny)
	DebtCeiling       int64           `protobuf:"varint,3,opt,name=debtCeiling,proto3" json:"debtCeiling,omitempty"`             //单用户可借出的限额(ccny)
	LiquidationRatio  int64           `protobuf:"varint,4,opt,name=liquidationRatio,proto3" json:"liquidationRatio,omitempty"`   //清算比例
	StabilityFeeRatio int64           `protobuf:"varint,5,opt,name=stabilityFeeRatio,proto3" json:"stabilityFeeRatio,omitempty"` //稳定费
	CreateAddr        string          `protobuf:"bytes,6,opt,name=createAddr,proto3" json:"createAddr,omitempty"`                //创建人地址
	Balance           int64           `protobuf:"varint,7,opt,name=balance,proto3" json:"balance,omitempty"`                     //剩余可借贷金额(ccny)
	Period            int64           `protobuf:"varint,8,opt,name=period,proto3" json:"period,omitempty"`                       //合约期限
	CollateralizeId   string          `protobuf:"bytes,9,opt,name=collateralizeId,proto3" json:"collateralizeId,omitempty"`      //放贷ID
	CollBalance       int64           `protobuf:"varint,10,opt,name=collBalance,proto3" json:"collBalance,omitempty"`            //抵押bty
	BorrowRecords     []*BorrowRecord `protobuf:"bytes,11,rep,name=borrowRecords,proto3" json:"borrowRecords,omitempty"`         //借贷记录
}

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

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

func (*RepCollateralizeCurrentInfo) ProtoMessage() {}

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

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

func (x *RepCollateralizeCurrentInfo) GetTotalBalance() int64 {
	if x != nil {
		return x.TotalBalance
	}
	return 0
}

func (x *RepCollateralizeCurrentInfo) GetDebtCeiling() int64 {
	if x != nil {
		return x.DebtCeiling
	}
	return 0
}

func (x *RepCollateralizeCurrentInfo) GetLiquidationRatio() int64 {
	if x != nil {
		return x.LiquidationRatio
	}
	return 0
}

func (x *RepCollateralizeCurrentInfo) GetStabilityFeeRatio() int64 {
	if x != nil {
		return x.StabilityFeeRatio
	}
	return 0
}

func (x *RepCollateralizeCurrentInfo) GetCreateAddr() string {
	if x != nil {
		return x.CreateAddr
	}
	return ""
}

func (x *RepCollateralizeCurrentInfo) GetBalance() int64 {
	if x != nil {
		return x.Balance
	}
	return 0
}

func (x *RepCollateralizeCurrentInfo) GetPeriod() int64 {
	if x != nil {
		return x.Period
	}
	return 0
}

func (x *RepCollateralizeCurrentInfo) GetCollateralizeId() string {
	if x != nil {
		return x.CollateralizeId
	}
	return ""
}

func (x *RepCollateralizeCurrentInfo) GetCollBalance() int64 {
	if x != nil {
		return x.CollBalance
	}
	return 0
}

func (x *RepCollateralizeCurrentInfo) GetBorrowRecords() []*BorrowRecord {
	if x != nil {
		return x.BorrowRecords
	}
	return nil
}

// 根据ID列表查询多期放贷信息
type ReqCollateralizeInfos struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

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

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

func (*ReqCollateralizeInfos) ProtoMessage() {}

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

func (x *ReqCollateralizeInfos) GetCollateralizeIds() []string {
	if x != nil {
		return x.CollateralizeIds
	}
	return nil
}

// 返回多期放贷信息
type RepCollateralizeCurrentInfos struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Infos []*RepCollateralizeCurrentInfo `protobuf:"bytes,1,rep,name=infos,proto3" json:"infos,omitempty"`
}

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

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

func (*RepCollateralizeCurrentInfos) ProtoMessage() {}

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

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

// 根据放贷状态查询
type ReqCollateralizeByStatus struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status int32  `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"`
	CollID string `protobuf:"bytes,2,opt,name=collID,proto3" json:"collID,omitempty"`
}

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

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

func (*ReqCollateralizeByStatus) ProtoMessage() {}

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

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

func (x *ReqCollateralizeByStatus) GetCollID() string {
	if x != nil {
		return x.CollID
	}
	return ""
}

// 根据用户地址查询
type ReqCollateralizeByAddr struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Addr   string `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"`
	Status int32  `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"`
	CollID string `protobuf:"bytes,3,opt,name=collID,proto3" json:"collID,omitempty"`
}

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

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

func (*ReqCollateralizeByAddr) ProtoMessage() {}

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

func (x *ReqCollateralizeByAddr) GetAddr() string {
	if x != nil {
		return x.Addr
	}
	return ""
}

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

func (x *ReqCollateralizeByAddr) GetCollID() string {
	if x != nil {
		return x.CollID
	}
	return ""
}

// 返回放贷ID列表
type RepCollateralizeIDs struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

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

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

func (*RepCollateralizeIDs) ProtoMessage() {}

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

func (x *RepCollateralizeIDs) GetIDs() []string {
	if x != nil {
		return x.IDs
	}
	return nil
}

// 根据地址和借贷ID混合查询具体借贷记录
type ReqCollateralizeRecordByAddr struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CollateralizeId string `protobuf:"bytes,1,opt,name=collateralizeId,proto3" json:"collateralizeId,omitempty"`
	Addr            string `protobuf:"bytes,2,opt,name=addr,proto3" json:"addr,omitempty"`
	Status          int32  `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"`
	RecordId        string `protobuf:"bytes,4,opt,name=recordId,proto3" json:"recordId,omitempty"`
}

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

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

func (*ReqCollateralizeRecordByAddr) ProtoMessage() {}

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

func (x *ReqCollateralizeRecordByAddr) GetCollateralizeId() string {
	if x != nil {
		return x.CollateralizeId
	}
	return ""
}

func (x *ReqCollateralizeRecordByAddr) GetAddr() string {
	if x != nil {
		return x.Addr
	}
	return ""
}

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

func (x *ReqCollateralizeRecordByAddr) GetRecordId() string {
	if x != nil {
		return x.RecordId
	}
	return ""
}

// 根据状态和借贷ID混合查询具体借贷记录
type ReqCollateralizeRecordByStatus struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CollateralizeId string `protobuf:"bytes,1,opt,name=collateralizeId,proto3" json:"collateralizeId,omitempty"`
	Status          int32  `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"`
	RecordId        string `protobuf:"bytes,3,opt,name=recordId,proto3" json:"recordId,omitempty"`
}

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

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

func (*ReqCollateralizeRecordByStatus) ProtoMessage() {}

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

func (x *ReqCollateralizeRecordByStatus) GetCollateralizeId() string {
	if x != nil {
		return x.CollateralizeId
	}
	return ""
}

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

func (x *ReqCollateralizeRecordByStatus) GetRecordId() string {
	if x != nil {
		return x.RecordId
	}
	return ""
}

// 返回借贷记录
type RepCollateralizeRecords struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Records []*BorrowRecord `protobuf:"bytes,1,rep,name=records,proto3" json:"records,omitempty"`
}

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

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

func (*RepCollateralizeRecords) ProtoMessage() {}

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

func (x *RepCollateralizeRecords) GetRecords() []*BorrowRecord {
	if x != nil {
		return x.Records
	}
	return nil
}

// 精确查找借贷记录
type ReqCollateralizeRecord struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CollateralizeId string `protobuf:"bytes,1,opt,name=collateralizeId,proto3" json:"collateralizeId,omitempty"`
	RecordId        string `protobuf:"bytes,2,opt,name=recordId,proto3" json:"recordId,omitempty"`
}

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

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

func (*ReqCollateralizeRecord) ProtoMessage() {}

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

func (x *ReqCollateralizeRecord) GetCollateralizeId() string {
	if x != nil {
		return x.CollateralizeId
	}
	return ""
}

func (x *ReqCollateralizeRecord) GetRecordId() string {
	if x != nil {
		return x.RecordId
	}
	return ""
}

// 返回借贷记录
type RepCollateralizeRecord struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Record *BorrowRecord `protobuf:"bytes,1,opt,name=record,proto3" json:"record,omitempty"`
}

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

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

func (*RepCollateralizeRecord) ProtoMessage() {}

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

func (x *RepCollateralizeRecord) GetRecord() *BorrowRecord {
	if x != nil {
		return x.Record
	}
	return nil
}

// 返回放贷配置
type RepCollateralizeConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DebtCeiling       int64 `protobuf:"varint,1,opt,name=debtCeiling,proto3" json:"debtCeiling,omitempty"`             //单用户可借出的限额(ccny)
	LiquidationRatio  int64 `protobuf:"varint,2,opt,name=liquidationRatio,proto3" json:"liquidationRatio,omitempty"`   //清算比例
	StabilityFeeRatio int64 `protobuf:"varint,3,opt,name=stabilityFeeRatio,proto3" json:"stabilityFeeRatio,omitempty"` //稳定费
	Period            int64 `protobuf:"varint,4,opt,name=period,proto3" json:"period,omitempty"`                       //合约期限
	TotalBalance      int64 `protobuf:"varint,5,opt,name=totalBalance,proto3" json:"totalBalance,omitempty"`           //放贷总量
	Balance           int64 `protobuf:"varint,6,opt,name=balance,proto3" json:"balance,omitempty"`                     //剩余放贷额度
	CurrentTime       int64 `protobuf:"varint,7,opt,name=currentTime,proto3" json:"currentTime,omitempty"`             //设置时间
}

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

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

func (*RepCollateralizeConfig) ProtoMessage() {}

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

func (x *RepCollateralizeConfig) GetDebtCeiling() int64 {
	if x != nil {
		return x.DebtCeiling
	}
	return 0
}

func (x *RepCollateralizeConfig) GetLiquidationRatio() int64 {
	if x != nil {
		return x.LiquidationRatio
	}
	return 0
}

func (x *RepCollateralizeConfig) GetStabilityFeeRatio() int64 {
	if x != nil {
		return x.StabilityFeeRatio
	}
	return 0
}

func (x *RepCollateralizeConfig) GetPeriod() int64 {
	if x != nil {
		return x.Period
	}
	return 0
}

func (x *RepCollateralizeConfig) GetTotalBalance() int64 {
	if x != nil {
		return x.TotalBalance
	}
	return 0
}

func (x *RepCollateralizeConfig) GetBalance() int64 {
	if x != nil {
		return x.Balance
	}
	return 0
}

func (x *RepCollateralizeConfig) GetCurrentTime() int64 {
	if x != nil {
		return x.CurrentTime
	}
	return 0
}

// 返回最新抵押物价格
type RepCollateralizePrice struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Price int64 `protobuf:"varint,1,opt,name=price,proto3" json:"price,omitempty"` //当前抵押物最新价格
}

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

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

func (*RepCollateralizePrice) ProtoMessage() {}

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

func (x *RepCollateralizePrice) GetPrice() int64 {
	if x != nil {
		return x.Price
	}
	return 0
}

// 返回用户借贷总额
type RepCollateralizeUserBalance struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Balance int64 `protobuf:"varint,1,opt,name=balance,proto3" json:"balance,omitempty"` //返回用户借贷总额
}

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

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

func (*RepCollateralizeUserBalance) ProtoMessage() {}

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

func (x *RepCollateralizeUserBalance) GetBalance() int64 {
	if x != nil {
		return x.Balance
	}
	return 0
}

var File_collateralize_proto protoreflect.FileDescriptor

var file_collateralize_proto_rawDesc = []byte{
	0x0a, 0x13, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x22, 0xdf, 0x04, 0x0a,
	0x0d, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x12, 0x28,
	0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x49,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65,
	0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61,
	0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c,
	0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b,
	0x64, 0x65, 0x62, 0x74, 0x43, 0x65, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x0b, 0x64, 0x65, 0x62, 0x74, 0x43, 0x65, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x2a,
	0x0a, 0x10, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74,
	0x69, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x74,
	0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x46, 0x65, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x73, 0x74, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79,
	0x46, 0x65, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61,
	0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61,
	0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e,
	0x63, 0x65, 0x12, 0x39, 0x0a, 0x0d, 0x62, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x52, 0x65, 0x63, 0x6f,
	0x72, 0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x42, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0d,
	0x62, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x3b, 0x0a,
	0x0e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18,
	0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x6f,
	0x72, 0x72, 0x6f, 0x77, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0e, 0x49, 0x6e, 0x76, 0x61,
	0x6c, 0x69, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x71, 0x75,
	0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x16, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x65,
	0x72, 0x69, 0x6f, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x65, 0x72, 0x69,
	0x6f, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x45, 0x78, 0x70, 0x69,
	0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6c, 0x61,
	0x74, 0x65, 0x73, 0x74, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20,
	0x0a, 0x0b, 0x63, 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0e, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65,
	0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xae,
	0x03, 0x0a, 0x0c, 0x42, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12,
	0x20, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64,
	0x72, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12,
	0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x56, 0x61, 0x6c,
	0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74,
	0x65, 0x72, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6c,
	0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x50, 0x72,
	0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x62, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x62, 0x74, 0x56, 0x61, 0x6c, 0x75,
	0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6c, 0x69, 0x71,
	0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a,
	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61,
	0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6c, 0x69,
	0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x65,
	0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70,
	0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09,
	0x70, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63,
	0x6f, 0x72, 0x64, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63,
	0x6f, 0x72, 0x64, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65,
	0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x49, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f,
	0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x49, 0x64, 0x22,
	0x86, 0x01, 0x0a, 0x10, 0x41, 0x73, 0x73, 0x65, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65,
	0x63, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x69,
	0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64,
	0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x74, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x62, 0x74, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65,
	0x12, 0x1a, 0x0a, 0x08, 0x62, 0x74, 0x63, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x08, 0x62, 0x74, 0x63, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08,
	0x65, 0x74, 0x68, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08,
	0x65, 0x74, 0x68, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0xa5, 0x03, 0x0a, 0x13, 0x43, 0x6f, 0x6c,
	0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x12, 0x34, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1a, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65,
	0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x06,
	0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x62, 0x6f, 0x72, 0x72, 0x6f, 0x77,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43,
	0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x42, 0x6f, 0x72, 0x72,
	0x6f, 0x77, 0x48, 0x00, 0x52, 0x06, 0x62, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x12, 0x31, 0x0a, 0x05,
	0x72, 0x65, 0x70, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a,
	0x65, 0x52, 0x65, 0x70, 0x61, 0x79, 0x48, 0x00, 0x52, 0x05, 0x72, 0x65, 0x70, 0x61, 0x79, 0x12,
	0x34, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1a, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72,
	0x61, 0x6c, 0x69, 0x7a, 0x65, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x06, 0x61,
	0x70, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x2e, 0x0a, 0x04, 0x66, 0x65, 0x65, 0x64, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6c, 0x6c,
	0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x46, 0x65, 0x65, 0x64, 0x48, 0x00, 0x52,
	0x04, 0x66, 0x65, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x08, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76,
	0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x74,
	0x72, 0x69, 0x65, 0x76, 0x65, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76,
	0x65, 0x12, 0x34, 0x0a, 0x06, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74,
	0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52,
	0x06, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x79, 0x18, 0x0a, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x02, 0x74, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x22, 0xef, 0x01, 0x0a, 0x13, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69,
	0x7a, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x62, 0x74,
	0x43, 0x65, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x64,
	0x65, 0x62, 0x74, 0x43, 0x65, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x6c, 0x69,
	0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x62, 0x69, 0x6c,
	0x69, 0x74, 0x79, 0x46, 0x65, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x11, 0x73, 0x74, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x46, 0x65, 0x65, 0x52,
	0x61, 0x74, 0x69, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x22, 0x0a, 0x0c,
	0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65,
	0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x69,
	0x6d, 0x65, 0x22, 0x33, 0x0a, 0x11, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c,
	0x69, 0x7a, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x70, 0x65, 0x72,
	0x41, 0x64, 0x64, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x75, 0x70,
	0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x73, 0x22, 0x39, 0x0a, 0x13, 0x43, 0x6f, 0x6c, 0x6c, 0x61,
	0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x22,
	0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e,
	0x63, 0x65, 0x22, 0x55, 0x0a, 0x13, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c,
	0x69, 0x7a, 0x65, 0x42, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6c,
	0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a,
	0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x5a, 0x0a, 0x12, 0x43, 0x6f, 0x6c,
	0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x70, 0x61, 0x79, 0x12,
	0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65,
	0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74,
	0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63,
	0x6f, 0x72, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63,
	0x6f, 0x72, 0x64, 0x49, 0x64, 0x22, 0x85, 0x01, 0x0a, 0x13, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74,
	0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x28, 0x0a,
	0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x49, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72,
	0x61, 0x6c, 0x69, 0x7a, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x6f, 0x72,
	0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x6f, 0x72,
	0x64, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61,
	0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x63, 0x6f,
	0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x5d, 0x0a,
	0x11, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x46, 0x65,
	0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x6f, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14,
	0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x70,
	0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x03,
	0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x5b, 0x0a, 0x15,
	0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x74,
	0x72, 0x69, 0x65, 0x76, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65,
	0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f,
	0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x49, 0x64, 0x12,
	0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x96, 0x01, 0x0a, 0x14, 0x52, 0x65,
	0x63, 0x65, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69,
	0x7a, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c,
	0x69, 0x7a, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6c,
	0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b,
	0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1a,
	0x0a, 0x08, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x08, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x22, 0x4d, 0x0a, 0x14, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c,
	0x69, 0x7a, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x35, 0x0a, 0x07, 0x72, 0x65,
	0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x61,
	0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x52, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64,
	0x73, 0x22, 0x40, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72,
	0x61, 0x6c, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6c,
	0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a,
	0x65, 0x49, 0x64, 0x22, 0xae, 0x03, 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x43, 0x6f, 0x6c, 0x6c, 0x61,
	0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x49,
	0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x74,
	0x6f, 0x74, 0x61, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12,
	0x20, 0x0a, 0x0b, 0x64, 0x65, 0x62, 0x74, 0x43, 0x65, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x64, 0x65, 0x62, 0x74, 0x43, 0x65, 0x69, 0x6c, 0x69, 0x6e,
	0x67, 0x12, 0x2a, 0x0a, 0x10, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6c, 0x69, 0x71,
	0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x2c, 0x0a,
	0x11, 0x73, 0x74, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x46, 0x65, 0x65, 0x52, 0x61, 0x74,
	0x69, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x73, 0x74, 0x61, 0x62, 0x69, 0x6c,
	0x69, 0x74, 0x79, 0x46, 0x65, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x63,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x62,
	0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x62, 0x61,
	0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18,
	0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x28, 0x0a,
	0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x49, 0x64,
	0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72,
	0x61, 0x6c, 0x69, 0x7a, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6c, 0x6c, 0x42,
	0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x6f,
	0x6c, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x0d, 0x62, 0x6f, 0x72,
	0x72, 0x6f, 0x77, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x52,
	0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0d, 0x62, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x52, 0x65, 0x63,
	0x6f, 0x72, 0x64, 0x73, 0x22, 0x43, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x43, 0x6f, 0x6c, 0x6c, 0x61,
	0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x2a, 0x0a,
	0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x49, 0x64,
	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65,
	0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x49, 0x64, 0x73, 0x22, 0x58, 0x0a, 0x1c, 0x52, 0x65, 0x70,
	0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x43, 0x75, 0x72,
	0x72, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x38, 0x0a, 0x05, 0x69, 0x6e, 0x66,
	0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x52, 0x65, 0x70, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a,
	0x65, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x69, 0x6e,
	0x66, 0x6f, 0x73, 0x22, 0x4a, 0x0a, 0x18, 0x52, 0x65, 0x71, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74,
	0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
	0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x6c, 0x49,
	0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x6c, 0x49, 0x44, 0x22,
	0x5c, 0x0a, 0x16, 0x52, 0x65, 0x71, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c,
	0x69, 0x7a, 0x65, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64,
	0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x16, 0x0a,
	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x6c, 0x49, 0x44, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x6c, 0x49, 0x44, 0x22, 0x27, 0x0a,
	0x13, 0x52, 0x65, 0x70, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a,
	0x65, 0x49, 0x44, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
	0x09, 0x52, 0x03, 0x49, 0x44, 0x73, 0x22, 0x90, 0x01, 0x0a, 0x1c, 0x52, 0x65, 0x71, 0x43, 0x6f,
	0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72,
	0x64, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x61,
	0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x49,
	0x64, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a,
	0x08, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x08, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x64, 0x22, 0x7e, 0x0a, 0x1e, 0x52, 0x65, 0x71,
	0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x63,
	0x6f, 0x72, 0x64, 0x42, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x63,
	0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x49, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c,
	0x69, 0x7a, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a,
	0x08, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x08, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x64, 0x22, 0x48, 0x0a, 0x17, 0x52, 0x65, 0x70,
	0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x63,
	0x6f, 0x72, 0x64, 0x73, 0x12, 0x2d, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x6f,
	0x72, 0x72, 0x6f, 0x77, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x07, 0x72, 0x65, 0x63, 0x6f,
	0x72, 0x64, 0x73, 0x22, 0x5e, 0x0a, 0x16, 0x52, 0x65, 0x71, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74,
	0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x28, 0x0a,
	0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x49, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72,
	0x61, 0x6c, 0x69, 0x7a, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x6f, 0x72,
	0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x6f, 0x72,
	0x64, 0x49, 0x64, 0x22, 0x45, 0x0a, 0x16, 0x52, 0x65, 0x70, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74,
	0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x2b, 0x0a,
	0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x52, 0x65, 0x63, 0x6f,
	0x72, 0x64, 0x52, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x8c, 0x02, 0x0a, 0x16, 0x52,
	0x65, 0x70, 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x62, 0x74, 0x43, 0x65, 0x69,
	0x6c, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x64, 0x65, 0x62, 0x74,
	0x43, 0x65, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x6c, 0x69, 0x71, 0x75, 0x69,
	0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x10, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61,
	0x74, 0x69, 0x6f, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79,
	0x46, 0x65, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11,
	0x73, 0x74, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x46, 0x65, 0x65, 0x52, 0x61, 0x74, 0x69,
	0x6f, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x06, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x6f, 0x74,
	0x61, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x18, 0x0a,
	0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07,
	0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65,
	0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x75,
	0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x2d, 0x0a, 0x15, 0x52, 0x65, 0x70,
	0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x50, 0x72, 0x69,
	0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x22, 0x37, 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x43,
	0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x55, 0x73, 0x65, 0x72,
	0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e,
	0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63,
	0x65, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_collateralize_proto_rawDescOnce sync.Once
	file_collateralize_proto_rawDescData = file_collateralize_proto_rawDesc
)

func file_collateralize_proto_rawDescGZIP() []byte {
	file_collateralize_proto_rawDescOnce.Do(func() {
		file_collateralize_proto_rawDescData = protoimpl.X.CompressGZIP(file_collateralize_proto_rawDescData)
	})
	return file_collateralize_proto_rawDescData
}

var file_collateralize_proto_msgTypes = make([]protoimpl.MessageInfo, 29)
var file_collateralize_proto_goTypes = []interface{}{
	(*Collateralize)(nil),                  // 0: types.Collateralize
	(*BorrowRecord)(nil),                   // 1: types.BorrowRecord
	(*AssetPriceRecord)(nil),               // 2: types.AssetPriceRecord
	(*CollateralizeAction)(nil),            // 3: types.CollateralizeAction
	(*CollateralizeManage)(nil),            // 4: types.CollateralizeManage
	(*CollateralizeAddr)(nil),              // 5: types.CollateralizeAddr
	(*CollateralizeCreate)(nil),            // 6: types.CollateralizeCreate
	(*CollateralizeBorrow)(nil),            // 7: types.CollateralizeBorrow
	(*CollateralizeRepay)(nil),             // 8: types.CollateralizeRepay
	(*CollateralizeAppend)(nil),            // 9: types.CollateralizeAppend
	(*CollateralizeFeed)(nil),              // 10: types.CollateralizeFeed
	(*CollateralizeRetrieve)(nil),          // 11: types.CollateralizeRetrieve
	(*ReceiptCollateralize)(nil),           // 12: types.ReceiptCollateralize
	(*CollateralizeRecords)(nil),           // 13: types.CollateralizeRecords
	(*ReqCollateralizeInfo)(nil),           // 14: types.ReqCollateralizeInfo
	(*RepCollateralizeCurrentInfo)(nil),    // 15: types.RepCollateralizeCurrentInfo
	(*ReqCollateralizeInfos)(nil),          // 16: types.ReqCollateralizeInfos
	(*RepCollateralizeCurrentInfos)(nil),   // 17: types.RepCollateralizeCurrentInfos
	(*ReqCollateralizeByStatus)(nil),       // 18: types.ReqCollateralizeByStatus
	(*ReqCollateralizeByAddr)(nil),         // 19: types.ReqCollateralizeByAddr
	(*RepCollateralizeIDs)(nil),            // 20: types.RepCollateralizeIDs
	(*ReqCollateralizeRecordByAddr)(nil),   // 21: types.ReqCollateralizeRecordByAddr
	(*ReqCollateralizeRecordByStatus)(nil), // 22: types.ReqCollateralizeRecordByStatus
	(*RepCollateralizeRecords)(nil),        // 23: types.RepCollateralizeRecords
	(*ReqCollateralizeRecord)(nil),         // 24: types.ReqCollateralizeRecord
	(*RepCollateralizeRecord)(nil),         // 25: types.RepCollateralizeRecord
	(*RepCollateralizeConfig)(nil),         // 26: types.RepCollateralizeConfig
	(*RepCollateralizePrice)(nil),          // 27: types.RepCollateralizePrice
	(*RepCollateralizeUserBalance)(nil),    // 28: types.RepCollateralizeUserBalance
}
var file_collateralize_proto_depIdxs = []int32{
	1,  // 0: types.Collateralize.borrowRecords:type_name -> types.BorrowRecord
	1,  // 1: types.Collateralize.InvalidRecords:type_name -> types.BorrowRecord
	6,  // 2: types.CollateralizeAction.create:type_name -> types.CollateralizeCreate
	7,  // 3: types.CollateralizeAction.borrow:type_name -> types.CollateralizeBorrow
	8,  // 4: types.CollateralizeAction.repay:type_name -> types.CollateralizeRepay
	9,  // 5: types.CollateralizeAction.append:type_name -> types.CollateralizeAppend
	10, // 6: types.CollateralizeAction.feed:type_name -> types.CollateralizeFeed
	11, // 7: types.CollateralizeAction.retrieve:type_name -> types.CollateralizeRetrieve
	4,  // 8: types.CollateralizeAction.manage:type_name -> types.CollateralizeManage
	12, // 9: types.CollateralizeRecords.records:type_name -> types.ReceiptCollateralize
	1,  // 10: types.RepCollateralizeCurrentInfo.borrowRecords:type_name -> types.BorrowRecord
	15, // 11: types.RepCollateralizeCurrentInfos.infos:type_name -> types.RepCollateralizeCurrentInfo
	1,  // 12: types.RepCollateralizeRecords.records:type_name -> types.BorrowRecord
	1,  // 13: types.RepCollateralizeRecord.record:type_name -> types.BorrowRecord
	14, // [14:14] is the sub-list for method output_type
	14, // [14:14] is the sub-list for method input_type
	14, // [14:14] is the sub-list for extension type_name
	14, // [14:14] is the sub-list for extension extendee
	0,  // [0:14] is the sub-list for field type_name
}

func init() { file_collateralize_proto_init() }
func file_collateralize_proto_init() {
	if File_collateralize_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_collateralize_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Collateralize); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_collateralize_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BorrowRecord); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_collateralize_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AssetPriceRecord); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_collateralize_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CollateralizeAction); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_collateralize_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CollateralizeManage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_collateralize_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CollateralizeAddr); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_collateralize_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CollateralizeCreate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_collateralize_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CollateralizeBorrow); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_collateralize_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CollateralizeRepay); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_collateralize_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CollateralizeAppend); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_collateralize_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CollateralizeFeed); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_collateralize_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CollateralizeRetrieve); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_collateralize_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReceiptCollateralize); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_collateralize_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CollateralizeRecords); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_collateralize_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReqCollateralizeInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_collateralize_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RepCollateralizeCurrentInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_collateralize_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReqCollateralizeInfos); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_collateralize_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RepCollateralizeCurrentInfos); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_collateralize_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReqCollateralizeByStatus); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_collateralize_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReqCollateralizeByAddr); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_collateralize_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RepCollateralizeIDs); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_collateralize_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReqCollateralizeRecordByAddr); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_collateralize_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReqCollateralizeRecordByStatus); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_collateralize_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RepCollateralizeRecords); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_collateralize_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReqCollateralizeRecord); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_collateralize_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RepCollateralizeRecord); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_collateralize_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RepCollateralizeConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_collateralize_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RepCollateralizePrice); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_collateralize_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RepCollateralizeUserBalance); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_collateralize_proto_msgTypes[3].OneofWrappers = []interface{}{
		(*CollateralizeAction_Create)(nil),
		(*CollateralizeAction_Borrow)(nil),
		(*CollateralizeAction_Repay)(nil),
		(*CollateralizeAction_Append)(nil),
		(*CollateralizeAction_Feed)(nil),
		(*CollateralizeAction_Retrieve)(nil),
		(*CollateralizeAction_Manage)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_collateralize_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   29,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_collateralize_proto_goTypes,
		DependencyIndexes: file_collateralize_proto_depIdxs,
		MessageInfos:      file_collateralize_proto_msgTypes,
	}.Build()
	File_collateralize_proto = out.File
	file_collateralize_proto_rawDesc = nil
	file_collateralize_proto_goTypes = nil
	file_collateralize_proto_depIdxs = nil
}
