// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.23.0
// 	protoc        (unknown)
// source: quote/api.proto

package quotev1

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 Command int32

const (
	Command_UNKNOWN_COMMAND                Command = 0
	Command_HEART_BEAT                     Command = 1   //心跳
	Command_AUTH                           Command = 2   //鉴权
	Command_RECONNECT                      Command = 3   //重新连接
	Command_QueryUserQuoteProfile          Command = 4   //查询用户行情信息
	Command_Subscription                   Command = 5   //查询连接的已订阅数据
	Command_Subscribe                      Command = 6   //订阅行情数据
	Command_Unsubscribe                    Command = 7   //取消订阅行情数据
	Command_QueryMarketTradePeriod         Command = 8   //查询各市场的当日交易时段
	Command_QueryMarketTradeDay            Command = 9   //查询交易日
	Command_QuerySecurityStaticInfo        Command = 10  //查询标的基础信息
	Command_QuerySecurityQuote             Command = 11  //查询标的行情(所有标的通用行情)
	Command_QueryOptionQuote               Command = 12  //查询期权行情(仅支持期权)
	Command_QueryWarrantQuote              Command = 13  //查询轮证行情(仅支持轮证)
	Command_QueryDepth                     Command = 14  //查询盘口
	Command_QueryBrokers                   Command = 15  //查询经纪队列
	Command_QueryParticipantBrokerIds      Command = 16  //查询券商经纪席位
	Command_QueryTrade                     Command = 17  //查询成交明细
	Command_QueryIntraday                  Command = 18  //查询当日分时
	Command_QueryCandlestick               Command = 19  //查询k线
	Command_QueryOptionChainDate           Command = 20  //查询标的期权链日期列表
	Command_QueryOptionChainDateStrikeInfo Command = 21  //查询标的期权链某日的行权价信息
	Command_QueryWarrantIssuerInfo         Command = 22  //查询轮证发行商对应Id
	Command_QueryWarrantFilterList         Command = 23  //查询轮证筛选列表
	Command_QueryCapitalFlowIntraday       Command = 24  //查询标的的资金流分时
	Command_QueryCapitalFlowDistribution   Command = 25  //查询标的资金流大小单
	Command_QuerySecurityCalcIndex         Command = 26  //查询标的指标数据
	Command_QueryHistoryCandlestick        Command = 27  //查询标的历史 k 线
	Command_PushQuoteData                  Command = 101 //推送行情
	Command_PushDepthData                  Command = 102 //推送盘口
	Command_PushBrokersData                Command = 103 //推送经纪队列
	Command_PushTradeData                  Command = 104 //推送成交明细
)

// Enum value maps for Command.
var (
	Command_name = map[int32]string{
		0:   "UNKNOWN_COMMAND",
		1:   "HEART_BEAT",
		2:   "AUTH",
		3:   "RECONNECT",
		4:   "QueryUserQuoteProfile",
		5:   "Subscription",
		6:   "Subscribe",
		7:   "Unsubscribe",
		8:   "QueryMarketTradePeriod",
		9:   "QueryMarketTradeDay",
		10:  "QuerySecurityStaticInfo",
		11:  "QuerySecurityQuote",
		12:  "QueryOptionQuote",
		13:  "QueryWarrantQuote",
		14:  "QueryDepth",
		15:  "QueryBrokers",
		16:  "QueryParticipantBrokerIds",
		17:  "QueryTrade",
		18:  "QueryIntraday",
		19:  "QueryCandlestick",
		20:  "QueryOptionChainDate",
		21:  "QueryOptionChainDateStrikeInfo",
		22:  "QueryWarrantIssuerInfo",
		23:  "QueryWarrantFilterList",
		24:  "QueryCapitalFlowIntraday",
		25:  "QueryCapitalFlowDistribution",
		26:  "QuerySecurityCalcIndex",
		27:  "QueryHistoryCandlestick",
		101: "PushQuoteData",
		102: "PushDepthData",
		103: "PushBrokersData",
		104: "PushTradeData",
	}
	Command_value = map[string]int32{
		"UNKNOWN_COMMAND":                0,
		"HEART_BEAT":                     1,
		"AUTH":                           2,
		"RECONNECT":                      3,
		"QueryUserQuoteProfile":          4,
		"Subscription":                   5,
		"Subscribe":                      6,
		"Unsubscribe":                    7,
		"QueryMarketTradePeriod":         8,
		"QueryMarketTradeDay":            9,
		"QuerySecurityStaticInfo":        10,
		"QuerySecurityQuote":             11,
		"QueryOptionQuote":               12,
		"QueryWarrantQuote":              13,
		"QueryDepth":                     14,
		"QueryBrokers":                   15,
		"QueryParticipantBrokerIds":      16,
		"QueryTrade":                     17,
		"QueryIntraday":                  18,
		"QueryCandlestick":               19,
		"QueryOptionChainDate":           20,
		"QueryOptionChainDateStrikeInfo": 21,
		"QueryWarrantIssuerInfo":         22,
		"QueryWarrantFilterList":         23,
		"QueryCapitalFlowIntraday":       24,
		"QueryCapitalFlowDistribution":   25,
		"QuerySecurityCalcIndex":         26,
		"QueryHistoryCandlestick":        27,
		"PushQuoteData":                  101,
		"PushDepthData":                  102,
		"PushBrokersData":                103,
		"PushTradeData":                  104,
	}
)

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

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

func (Command) Descriptor() protoreflect.EnumDescriptor {
	return file_quote_api_proto_enumTypes[0].Descriptor()
}

func (Command) Type() protoreflect.EnumType {
	return &file_quote_api_proto_enumTypes[0]
}

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

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

type TradeStatus int32

const (
	TradeStatus_NORMAL               TradeStatus = 0
	TradeStatus_HALTED               TradeStatus = 1
	TradeStatus_DELISTED             TradeStatus = 2
	TradeStatus_FUSE                 TradeStatus = 3
	TradeStatus_PREPARE_LIST         TradeStatus = 4
	TradeStatus_CODE_MOVED           TradeStatus = 5
	TradeStatus_TO_BE_OPENED         TradeStatus = 6
	TradeStatus_SPLIT_STOCK_HALTS    TradeStatus = 7
	TradeStatus_EXPIRED              TradeStatus = 8
	TradeStatus_WARRANT_PREPARE_LIST TradeStatus = 9
	TradeStatus_SUSPEND_TRADE        TradeStatus = 10
)

// Enum value maps for TradeStatus.
var (
	TradeStatus_name = map[int32]string{
		0:  "NORMAL",
		1:  "HALTED",
		2:  "DELISTED",
		3:  "FUSE",
		4:  "PREPARE_LIST",
		5:  "CODE_MOVED",
		6:  "TO_BE_OPENED",
		7:  "SPLIT_STOCK_HALTS",
		8:  "EXPIRED",
		9:  "WARRANT_PREPARE_LIST",
		10: "SUSPEND_TRADE",
	}
	TradeStatus_value = map[string]int32{
		"NORMAL":               0,
		"HALTED":               1,
		"DELISTED":             2,
		"FUSE":                 3,
		"PREPARE_LIST":         4,
		"CODE_MOVED":           5,
		"TO_BE_OPENED":         6,
		"SPLIT_STOCK_HALTS":    7,
		"EXPIRED":              8,
		"WARRANT_PREPARE_LIST": 9,
		"SUSPEND_TRADE":        10,
	}
)

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

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

func (TradeStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_quote_api_proto_enumTypes[1].Descriptor()
}

func (TradeStatus) Type() protoreflect.EnumType {
	return &file_quote_api_proto_enumTypes[1]
}

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

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

type TradeSession int32

const (
	TradeSession_NORMAL_TRADE    TradeSession = 0
	TradeSession_PRE_TRADE       TradeSession = 1
	TradeSession_POST_TRADE      TradeSession = 2
	TradeSession_OVERNIGHT_TRADE TradeSession = 3
)

// Enum value maps for TradeSession.
var (
	TradeSession_name = map[int32]string{
		0: "NORMAL_TRADE",
		1: "PRE_TRADE",
		2: "POST_TRADE",
		3: "OVERNIGHT_TRADE",
	}
	TradeSession_value = map[string]int32{
		"NORMAL_TRADE":    0,
		"PRE_TRADE":       1,
		"POST_TRADE":      2,
		"OVERNIGHT_TRADE": 3,
	}
)

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

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

func (TradeSession) Descriptor() protoreflect.EnumDescriptor {
	return file_quote_api_proto_enumTypes[2].Descriptor()
}

func (TradeSession) Type() protoreflect.EnumType {
	return &file_quote_api_proto_enumTypes[2]
}

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

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

type AdjustType int32

const (
	AdjustType_NO_ADJUST      AdjustType = 0
	AdjustType_FORWARD_ADJUST AdjustType = 1
)

// Enum value maps for AdjustType.
var (
	AdjustType_name = map[int32]string{
		0: "NO_ADJUST",
		1: "FORWARD_ADJUST",
	}
	AdjustType_value = map[string]int32{
		"NO_ADJUST":      0,
		"FORWARD_ADJUST": 1,
	}
)

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

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

func (AdjustType) Descriptor() protoreflect.EnumDescriptor {
	return file_quote_api_proto_enumTypes[3].Descriptor()
}

func (AdjustType) Type() protoreflect.EnumType {
	return &file_quote_api_proto_enumTypes[3]
}

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

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

type Period int32

const (
	Period_UNKNOWN_PERIOD    Period = 0
	Period_ONE_MINUTE        Period = 1
	Period_TWO_MINUTE        Period = 2
	Period_THREE_MINUTE      Period = 3
	Period_FIVE_MINUTE       Period = 5
	Period_TEN_MINUTE        Period = 10
	Period_FIFTEEN_MINUTE    Period = 15
	Period_TWENTY_MINUTE     Period = 20
	Period_THIRTY_MINUTE     Period = 30
	Period_FORTY_FIVE_MINUTE Period = 45
	Period_SIXTY_MINUTE      Period = 60
	Period_TWO_HOUR          Period = 120
	Period_THREE_HOUR        Period = 180
	Period_FOUR_HOUR         Period = 240
	Period_DAY               Period = 1000
	Period_WEEK              Period = 2000
	Period_MONTH             Period = 3000
	Period_QUARTER           Period = 3500
	Period_YEAR              Period = 4000
)

// Enum value maps for Period.
var (
	Period_name = map[int32]string{
		0:    "UNKNOWN_PERIOD",
		1:    "ONE_MINUTE",
		2:    "TWO_MINUTE",
		3:    "THREE_MINUTE",
		5:    "FIVE_MINUTE",
		10:   "TEN_MINUTE",
		15:   "FIFTEEN_MINUTE",
		20:   "TWENTY_MINUTE",
		30:   "THIRTY_MINUTE",
		45:   "FORTY_FIVE_MINUTE",
		60:   "SIXTY_MINUTE",
		120:  "TWO_HOUR",
		180:  "THREE_HOUR",
		240:  "FOUR_HOUR",
		1000: "DAY",
		2000: "WEEK",
		3000: "MONTH",
		3500: "QUARTER",
		4000: "YEAR",
	}
	Period_value = map[string]int32{
		"UNKNOWN_PERIOD":    0,
		"ONE_MINUTE":        1,
		"TWO_MINUTE":        2,
		"THREE_MINUTE":      3,
		"FIVE_MINUTE":       5,
		"TEN_MINUTE":        10,
		"FIFTEEN_MINUTE":    15,
		"TWENTY_MINUTE":     20,
		"THIRTY_MINUTE":     30,
		"FORTY_FIVE_MINUTE": 45,
		"SIXTY_MINUTE":      60,
		"TWO_HOUR":          120,
		"THREE_HOUR":        180,
		"FOUR_HOUR":         240,
		"DAY":               1000,
		"WEEK":              2000,
		"MONTH":             3000,
		"QUARTER":           3500,
		"YEAR":              4000,
	}
)

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

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

func (Period) Descriptor() protoreflect.EnumDescriptor {
	return file_quote_api_proto_enumTypes[4].Descriptor()
}

func (Period) Type() protoreflect.EnumType {
	return &file_quote_api_proto_enumTypes[4]
}

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

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

type SubType int32

const (
	SubType_UNKNOWN_TYPE SubType = 0
	SubType_QUOTE        SubType = 1
	SubType_DEPTH        SubType = 2
	SubType_BROKERS      SubType = 3
	SubType_TRADE        SubType = 4
)

// Enum value maps for SubType.
var (
	SubType_name = map[int32]string{
		0: "UNKNOWN_TYPE",
		1: "QUOTE",
		2: "DEPTH",
		3: "BROKERS",
		4: "TRADE",
	}
	SubType_value = map[string]int32{
		"UNKNOWN_TYPE": 0,
		"QUOTE":        1,
		"DEPTH":        2,
		"BROKERS":      3,
		"TRADE":        4,
	}
)

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

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

func (SubType) Descriptor() protoreflect.EnumDescriptor {
	return file_quote_api_proto_enumTypes[5].Descriptor()
}

func (SubType) Type() protoreflect.EnumType {
	return &file_quote_api_proto_enumTypes[5]
}

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

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

type PushQuoteTag int32

const (
	PushQuoteTag_Normal PushQuoteTag = 0
	PushQuoteTag_Eod    PushQuoteTag = 1
)

// Enum value maps for PushQuoteTag.
var (
	PushQuoteTag_name = map[int32]string{
		0: "Normal",
		1: "Eod",
	}
	PushQuoteTag_value = map[string]int32{
		"Normal": 0,
		"Eod":    1,
	}
)

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

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

func (PushQuoteTag) Descriptor() protoreflect.EnumDescriptor {
	return file_quote_api_proto_enumTypes[6].Descriptor()
}

func (PushQuoteTag) Type() protoreflect.EnumType {
	return &file_quote_api_proto_enumTypes[6]
}

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

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

type CalcIndex int32

const (
	CalcIndex_CALCINDEX_UNKNOWN                  CalcIndex = 0
	CalcIndex_CALCINDEX_LAST_DONE                CalcIndex = 1
	CalcIndex_CALCINDEX_CHANGE_VAL               CalcIndex = 2
	CalcIndex_CALCINDEX_CHANGE_RATE              CalcIndex = 3
	CalcIndex_CALCINDEX_VOLUME                   CalcIndex = 4
	CalcIndex_CALCINDEX_TURNOVER                 CalcIndex = 5
	CalcIndex_CALCINDEX_YTD_CHANGE_RATE          CalcIndex = 6
	CalcIndex_CALCINDEX_TURNOVER_RATE            CalcIndex = 7
	CalcIndex_CALCINDEX_TOTAL_MARKET_VALUE       CalcIndex = 8
	CalcIndex_CALCINDEX_CAPITAL_FLOW             CalcIndex = 9
	CalcIndex_CALCINDEX_AMPLITUDE                CalcIndex = 10
	CalcIndex_CALCINDEX_VOLUME_RATIO             CalcIndex = 11
	CalcIndex_CALCINDEX_PE_TTM_RATIO             CalcIndex = 12
	CalcIndex_CALCINDEX_PB_RATIO                 CalcIndex = 13
	CalcIndex_CALCINDEX_DIVIDEND_RATIO_TTM       CalcIndex = 14
	CalcIndex_CALCINDEX_FIVE_DAY_CHANGE_RATE     CalcIndex = 15
	CalcIndex_CALCINDEX_TEN_DAY_CHANGE_RATE      CalcIndex = 16
	CalcIndex_CALCINDEX_HALF_YEAR_CHANGE_RATE    CalcIndex = 17
	CalcIndex_CALCINDEX_FIVE_MINUTES_CHANGE_RATE CalcIndex = 18
	CalcIndex_CALCINDEX_EXPIRY_DATE              CalcIndex = 19
	CalcIndex_CALCINDEX_STRIKE_PRICE             CalcIndex = 20
	CalcIndex_CALCINDEX_UPPER_STRIKE_PRICE       CalcIndex = 21
	CalcIndex_CALCINDEX_LOWER_STRIKE_PRICE       CalcIndex = 22
	CalcIndex_CALCINDEX_OUTSTANDING_QTY          CalcIndex = 23
	CalcIndex_CALCINDEX_OUTSTANDING_RATIO        CalcIndex = 24
	CalcIndex_CALCINDEX_PREMIUM                  CalcIndex = 25
	CalcIndex_CALCINDEX_ITM_OTM                  CalcIndex = 26
	CalcIndex_CALCINDEX_IMPLIED_VOLATILITY       CalcIndex = 27
	CalcIndex_CALCINDEX_WARRANT_DELTA            CalcIndex = 28
	CalcIndex_CALCINDEX_CALL_PRICE               CalcIndex = 29
	CalcIndex_CALCINDEX_TO_CALL_PRICE            CalcIndex = 30
	CalcIndex_CALCINDEX_EFFECTIVE_LEVERAGE       CalcIndex = 31
	CalcIndex_CALCINDEX_LEVERAGE_RATIO           CalcIndex = 32
	CalcIndex_CALCINDEX_CONVERSION_RATIO         CalcIndex = 33
	CalcIndex_CALCINDEX_BALANCE_POINT            CalcIndex = 34
	CalcIndex_CALCINDEX_OPEN_INTEREST            CalcIndex = 35
	CalcIndex_CALCINDEX_DELTA                    CalcIndex = 36
	CalcIndex_CALCINDEX_GAMMA                    CalcIndex = 37
	CalcIndex_CALCINDEX_THETA                    CalcIndex = 38
	CalcIndex_CALCINDEX_VEGA                     CalcIndex = 39
	CalcIndex_CALCINDEX_RHO                      CalcIndex = 40
)

// Enum value maps for CalcIndex.
var (
	CalcIndex_name = map[int32]string{
		0:  "CALCINDEX_UNKNOWN",
		1:  "CALCINDEX_LAST_DONE",
		2:  "CALCINDEX_CHANGE_VAL",
		3:  "CALCINDEX_CHANGE_RATE",
		4:  "CALCINDEX_VOLUME",
		5:  "CALCINDEX_TURNOVER",
		6:  "CALCINDEX_YTD_CHANGE_RATE",
		7:  "CALCINDEX_TURNOVER_RATE",
		8:  "CALCINDEX_TOTAL_MARKET_VALUE",
		9:  "CALCINDEX_CAPITAL_FLOW",
		10: "CALCINDEX_AMPLITUDE",
		11: "CALCINDEX_VOLUME_RATIO",
		12: "CALCINDEX_PE_TTM_RATIO",
		13: "CALCINDEX_PB_RATIO",
		14: "CALCINDEX_DIVIDEND_RATIO_TTM",
		15: "CALCINDEX_FIVE_DAY_CHANGE_RATE",
		16: "CALCINDEX_TEN_DAY_CHANGE_RATE",
		17: "CALCINDEX_HALF_YEAR_CHANGE_RATE",
		18: "CALCINDEX_FIVE_MINUTES_CHANGE_RATE",
		19: "CALCINDEX_EXPIRY_DATE",
		20: "CALCINDEX_STRIKE_PRICE",
		21: "CALCINDEX_UPPER_STRIKE_PRICE",
		22: "CALCINDEX_LOWER_STRIKE_PRICE",
		23: "CALCINDEX_OUTSTANDING_QTY",
		24: "CALCINDEX_OUTSTANDING_RATIO",
		25: "CALCINDEX_PREMIUM",
		26: "CALCINDEX_ITM_OTM",
		27: "CALCINDEX_IMPLIED_VOLATILITY",
		28: "CALCINDEX_WARRANT_DELTA",
		29: "CALCINDEX_CALL_PRICE",
		30: "CALCINDEX_TO_CALL_PRICE",
		31: "CALCINDEX_EFFECTIVE_LEVERAGE",
		32: "CALCINDEX_LEVERAGE_RATIO",
		33: "CALCINDEX_CONVERSION_RATIO",
		34: "CALCINDEX_BALANCE_POINT",
		35: "CALCINDEX_OPEN_INTEREST",
		36: "CALCINDEX_DELTA",
		37: "CALCINDEX_GAMMA",
		38: "CALCINDEX_THETA",
		39: "CALCINDEX_VEGA",
		40: "CALCINDEX_RHO",
	}
	CalcIndex_value = map[string]int32{
		"CALCINDEX_UNKNOWN":                  0,
		"CALCINDEX_LAST_DONE":                1,
		"CALCINDEX_CHANGE_VAL":               2,
		"CALCINDEX_CHANGE_RATE":              3,
		"CALCINDEX_VOLUME":                   4,
		"CALCINDEX_TURNOVER":                 5,
		"CALCINDEX_YTD_CHANGE_RATE":          6,
		"CALCINDEX_TURNOVER_RATE":            7,
		"CALCINDEX_TOTAL_MARKET_VALUE":       8,
		"CALCINDEX_CAPITAL_FLOW":             9,
		"CALCINDEX_AMPLITUDE":                10,
		"CALCINDEX_VOLUME_RATIO":             11,
		"CALCINDEX_PE_TTM_RATIO":             12,
		"CALCINDEX_PB_RATIO":                 13,
		"CALCINDEX_DIVIDEND_RATIO_TTM":       14,
		"CALCINDEX_FIVE_DAY_CHANGE_RATE":     15,
		"CALCINDEX_TEN_DAY_CHANGE_RATE":      16,
		"CALCINDEX_HALF_YEAR_CHANGE_RATE":    17,
		"CALCINDEX_FIVE_MINUTES_CHANGE_RATE": 18,
		"CALCINDEX_EXPIRY_DATE":              19,
		"CALCINDEX_STRIKE_PRICE":             20,
		"CALCINDEX_UPPER_STRIKE_PRICE":       21,
		"CALCINDEX_LOWER_STRIKE_PRICE":       22,
		"CALCINDEX_OUTSTANDING_QTY":          23,
		"CALCINDEX_OUTSTANDING_RATIO":        24,
		"CALCINDEX_PREMIUM":                  25,
		"CALCINDEX_ITM_OTM":                  26,
		"CALCINDEX_IMPLIED_VOLATILITY":       27,
		"CALCINDEX_WARRANT_DELTA":            28,
		"CALCINDEX_CALL_PRICE":               29,
		"CALCINDEX_TO_CALL_PRICE":            30,
		"CALCINDEX_EFFECTIVE_LEVERAGE":       31,
		"CALCINDEX_LEVERAGE_RATIO":           32,
		"CALCINDEX_CONVERSION_RATIO":         33,
		"CALCINDEX_BALANCE_POINT":            34,
		"CALCINDEX_OPEN_INTEREST":            35,
		"CALCINDEX_DELTA":                    36,
		"CALCINDEX_GAMMA":                    37,
		"CALCINDEX_THETA":                    38,
		"CALCINDEX_VEGA":                     39,
		"CALCINDEX_RHO":                      40,
	}
)

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

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

func (CalcIndex) Descriptor() protoreflect.EnumDescriptor {
	return file_quote_api_proto_enumTypes[7].Descriptor()
}

func (CalcIndex) Type() protoreflect.EnumType {
	return &file_quote_api_proto_enumTypes[7]
}

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

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

type HistoryCandlestickQueryType int32

const (
	HistoryCandlestickQueryType_UNKNOWN_QUERY_TYPE HistoryCandlestickQueryType = 0
	HistoryCandlestickQueryType_QUERY_BY_OFFSET    HistoryCandlestickQueryType = 1
	HistoryCandlestickQueryType_QUERY_BY_DATE      HistoryCandlestickQueryType = 2
)

// Enum value maps for HistoryCandlestickQueryType.
var (
	HistoryCandlestickQueryType_name = map[int32]string{
		0: "UNKNOWN_QUERY_TYPE",
		1: "QUERY_BY_OFFSET",
		2: "QUERY_BY_DATE",
	}
	HistoryCandlestickQueryType_value = map[string]int32{
		"UNKNOWN_QUERY_TYPE": 0,
		"QUERY_BY_OFFSET":    1,
		"QUERY_BY_DATE":      2,
	}
)

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

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

func (HistoryCandlestickQueryType) Descriptor() protoreflect.EnumDescriptor {
	return file_quote_api_proto_enumTypes[8].Descriptor()
}

func (HistoryCandlestickQueryType) Type() protoreflect.EnumType {
	return &file_quote_api_proto_enumTypes[8]
}

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

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

type Direction int32

const (
	// 老数据, 从最新的数据往历史数据翻页
	Direction_BACKWARD Direction = 0
	// 新数据, 从当前数据往最新数据翻页
	Direction_FORWARD Direction = 1
)

// Enum value maps for Direction.
var (
	Direction_name = map[int32]string{
		0: "BACKWARD",
		1: "FORWARD",
	}
	Direction_value = map[string]int32{
		"BACKWARD": 0,
		"FORWARD":  1,
	}
)

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

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

func (Direction) Descriptor() protoreflect.EnumDescriptor {
	return file_quote_api_proto_enumTypes[9].Descriptor()
}

func (Direction) Type() protoreflect.EnumType {
	return &file_quote_api_proto_enumTypes[9]
}

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

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

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

	Symbol string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
}

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

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

func (*SecurityRequest) ProtoMessage() {}

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

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

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

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

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

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

func (*MultiSecurityRequest) ProtoMessage() {}

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

func (x *MultiSecurityRequest) GetSymbol() []string {
	if x != nil {
		return x.Symbol
	}
	return nil
}

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

	SecuStaticInfo []*StaticInfo `protobuf:"bytes,1,rep,name=secu_static_info,json=secuStaticInfo,proto3" json:"secu_static_info,omitempty"`
}

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

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

func (*SecurityStaticInfoResponse) ProtoMessage() {}

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

func (x *SecurityStaticInfoResponse) GetSecuStaticInfo() []*StaticInfo {
	if x != nil {
		return x.SecuStaticInfo
	}
	return nil
}

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

	Symbol            string  `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	NameCn            string  `protobuf:"bytes,2,opt,name=name_cn,json=nameCn,proto3" json:"name_cn,omitempty"`
	NameEn            string  `protobuf:"bytes,3,opt,name=name_en,json=nameEn,proto3" json:"name_en,omitempty"`
	NameHk            string  `protobuf:"bytes,4,opt,name=name_hk,json=nameHk,proto3" json:"name_hk,omitempty"`
	ListingDate       string  `protobuf:"bytes,5,opt,name=listing_date,json=listingDate,proto3" json:"listing_date,omitempty"`
	Exchange          string  `protobuf:"bytes,6,opt,name=exchange,proto3" json:"exchange,omitempty"`
	Currency          string  `protobuf:"bytes,7,opt,name=currency,proto3" json:"currency,omitempty"`
	LotSize           int32   `protobuf:"varint,8,opt,name=lot_size,json=lotSize,proto3" json:"lot_size,omitempty"`
	TotalShares       int64   `protobuf:"varint,9,opt,name=total_shares,json=totalShares,proto3" json:"total_shares,omitempty"`
	CirculatingShares int64   `protobuf:"varint,10,opt,name=circulating_shares,json=circulatingShares,proto3" json:"circulating_shares,omitempty"`
	HkShares          int64   `protobuf:"varint,11,opt,name=hk_shares,json=hkShares,proto3" json:"hk_shares,omitempty"`
	Eps               string  `protobuf:"bytes,12,opt,name=eps,proto3" json:"eps,omitempty"`
	EpsTtm            string  `protobuf:"bytes,13,opt,name=eps_ttm,json=epsTtm,proto3" json:"eps_ttm,omitempty"`
	Bps               string  `protobuf:"bytes,14,opt,name=bps,proto3" json:"bps,omitempty"`
	DividendYield     string  `protobuf:"bytes,15,opt,name=dividend_yield,json=dividendYield,proto3" json:"dividend_yield,omitempty"`
	StockDerivatives  []int32 `protobuf:"varint,16,rep,packed,name=stock_derivatives,json=stockDerivatives,proto3" json:"stock_derivatives,omitempty"`
	Board             string  `protobuf:"bytes,17,opt,name=board,proto3" json:"board,omitempty"`
}

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

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

func (*StaticInfo) ProtoMessage() {}

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

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

func (x *StaticInfo) GetNameCn() string {
	if x != nil {
		return x.NameCn
	}
	return ""
}

func (x *StaticInfo) GetNameEn() string {
	if x != nil {
		return x.NameEn
	}
	return ""
}

func (x *StaticInfo) GetNameHk() string {
	if x != nil {
		return x.NameHk
	}
	return ""
}

func (x *StaticInfo) GetListingDate() string {
	if x != nil {
		return x.ListingDate
	}
	return ""
}

func (x *StaticInfo) GetExchange() string {
	if x != nil {
		return x.Exchange
	}
	return ""
}

func (x *StaticInfo) GetCurrency() string {
	if x != nil {
		return x.Currency
	}
	return ""
}

func (x *StaticInfo) GetLotSize() int32 {
	if x != nil {
		return x.LotSize
	}
	return 0
}

func (x *StaticInfo) GetTotalShares() int64 {
	if x != nil {
		return x.TotalShares
	}
	return 0
}

func (x *StaticInfo) GetCirculatingShares() int64 {
	if x != nil {
		return x.CirculatingShares
	}
	return 0
}

func (x *StaticInfo) GetHkShares() int64 {
	if x != nil {
		return x.HkShares
	}
	return 0
}

func (x *StaticInfo) GetEps() string {
	if x != nil {
		return x.Eps
	}
	return ""
}

func (x *StaticInfo) GetEpsTtm() string {
	if x != nil {
		return x.EpsTtm
	}
	return ""
}

func (x *StaticInfo) GetBps() string {
	if x != nil {
		return x.Bps
	}
	return ""
}

func (x *StaticInfo) GetDividendYield() string {
	if x != nil {
		return x.DividendYield
	}
	return ""
}

func (x *StaticInfo) GetStockDerivatives() []int32 {
	if x != nil {
		return x.StockDerivatives
	}
	return nil
}

func (x *StaticInfo) GetBoard() string {
	if x != nil {
		return x.Board
	}
	return ""
}

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

	SecuQuote []*SecurityQuote `protobuf:"bytes,1,rep,name=secu_quote,json=secuQuote,proto3" json:"secu_quote,omitempty"`
}

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

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

func (*SecurityQuoteResponse) ProtoMessage() {}

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

func (x *SecurityQuoteResponse) GetSecuQuote() []*SecurityQuote {
	if x != nil {
		return x.SecuQuote
	}
	return nil
}

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

	Symbol          string        `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	LastDone        string        `protobuf:"bytes,2,opt,name=last_done,json=lastDone,proto3" json:"last_done,omitempty"`
	PrevClose       string        `protobuf:"bytes,3,opt,name=prev_close,json=prevClose,proto3" json:"prev_close,omitempty"`
	Open            string        `protobuf:"bytes,4,opt,name=open,proto3" json:"open,omitempty"`
	High            string        `protobuf:"bytes,5,opt,name=high,proto3" json:"high,omitempty"`
	Low             string        `protobuf:"bytes,6,opt,name=low,proto3" json:"low,omitempty"`
	Timestamp       int64         `protobuf:"varint,7,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	Volume          int64         `protobuf:"varint,8,opt,name=volume,proto3" json:"volume,omitempty"`
	Turnover        string        `protobuf:"bytes,9,opt,name=turnover,proto3" json:"turnover,omitempty"`
	TradeStatus     TradeStatus   `protobuf:"varint,10,opt,name=trade_status,json=tradeStatus,proto3,enum=longbridge.quote.v1.TradeStatus" json:"trade_status,omitempty"`
	PreMarketQuote  *PrePostQuote `protobuf:"bytes,11,opt,name=pre_market_quote,json=preMarketQuote,proto3" json:"pre_market_quote,omitempty"`
	PostMarketQuote *PrePostQuote `protobuf:"bytes,12,opt,name=post_market_quote,json=postMarketQuote,proto3" json:"post_market_quote,omitempty"`
	OverNightQuote  *PrePostQuote `protobuf:"bytes,13,opt,name=over_night_quote,json=overNightQuote,proto3" json:"over_night_quote,omitempty"`
}

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

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

func (*SecurityQuote) ProtoMessage() {}

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

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

func (x *SecurityQuote) GetLastDone() string {
	if x != nil {
		return x.LastDone
	}
	return ""
}

func (x *SecurityQuote) GetPrevClose() string {
	if x != nil {
		return x.PrevClose
	}
	return ""
}

func (x *SecurityQuote) GetOpen() string {
	if x != nil {
		return x.Open
	}
	return ""
}

func (x *SecurityQuote) GetHigh() string {
	if x != nil {
		return x.High
	}
	return ""
}

func (x *SecurityQuote) GetLow() string {
	if x != nil {
		return x.Low
	}
	return ""
}

func (x *SecurityQuote) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

func (x *SecurityQuote) GetVolume() int64 {
	if x != nil {
		return x.Volume
	}
	return 0
}

func (x *SecurityQuote) GetTurnover() string {
	if x != nil {
		return x.Turnover
	}
	return ""
}

func (x *SecurityQuote) GetTradeStatus() TradeStatus {
	if x != nil {
		return x.TradeStatus
	}
	return TradeStatus_NORMAL
}

func (x *SecurityQuote) GetPreMarketQuote() *PrePostQuote {
	if x != nil {
		return x.PreMarketQuote
	}
	return nil
}

func (x *SecurityQuote) GetPostMarketQuote() *PrePostQuote {
	if x != nil {
		return x.PostMarketQuote
	}
	return nil
}

func (x *SecurityQuote) GetOverNightQuote() *PrePostQuote {
	if x != nil {
		return x.OverNightQuote
	}
	return nil
}

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

	LastDone  string `protobuf:"bytes,1,opt,name=last_done,json=lastDone,proto3" json:"last_done,omitempty"`
	Timestamp int64  `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	Volume    int64  `protobuf:"varint,3,opt,name=volume,proto3" json:"volume,omitempty"`
	Turnover  string `protobuf:"bytes,4,opt,name=turnover,proto3" json:"turnover,omitempty"`
	High      string `protobuf:"bytes,5,opt,name=high,proto3" json:"high,omitempty"`
	Low       string `protobuf:"bytes,6,opt,name=low,proto3" json:"low,omitempty"`
	PrevClose string `protobuf:"bytes,7,opt,name=prev_close,json=prevClose,proto3" json:"prev_close,omitempty"`
}

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

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

func (*PrePostQuote) ProtoMessage() {}

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

func (x *PrePostQuote) GetLastDone() string {
	if x != nil {
		return x.LastDone
	}
	return ""
}

func (x *PrePostQuote) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

func (x *PrePostQuote) GetVolume() int64 {
	if x != nil {
		return x.Volume
	}
	return 0
}

func (x *PrePostQuote) GetTurnover() string {
	if x != nil {
		return x.Turnover
	}
	return ""
}

func (x *PrePostQuote) GetHigh() string {
	if x != nil {
		return x.High
	}
	return ""
}

func (x *PrePostQuote) GetLow() string {
	if x != nil {
		return x.Low
	}
	return ""
}

func (x *PrePostQuote) GetPrevClose() string {
	if x != nil {
		return x.PrevClose
	}
	return ""
}

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

	SecuQuote []*OptionQuote `protobuf:"bytes,1,rep,name=secu_quote,json=secuQuote,proto3" json:"secu_quote,omitempty"`
}

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

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

func (*OptionQuoteResponse) ProtoMessage() {}

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

func (x *OptionQuoteResponse) GetSecuQuote() []*OptionQuote {
	if x != nil {
		return x.SecuQuote
	}
	return nil
}

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

	Symbol       string        `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	LastDone     string        `protobuf:"bytes,2,opt,name=last_done,json=lastDone,proto3" json:"last_done,omitempty"`
	PrevClose    string        `protobuf:"bytes,3,opt,name=prev_close,json=prevClose,proto3" json:"prev_close,omitempty"`
	Open         string        `protobuf:"bytes,4,opt,name=open,proto3" json:"open,omitempty"`
	High         string        `protobuf:"bytes,5,opt,name=high,proto3" json:"high,omitempty"`
	Low          string        `protobuf:"bytes,6,opt,name=low,proto3" json:"low,omitempty"`
	Timestamp    int64         `protobuf:"varint,7,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	Volume       int64         `protobuf:"varint,8,opt,name=volume,proto3" json:"volume,omitempty"`
	Turnover     string        `protobuf:"bytes,9,opt,name=turnover,proto3" json:"turnover,omitempty"`
	TradeStatus  TradeStatus   `protobuf:"varint,10,opt,name=trade_status,json=tradeStatus,proto3,enum=longbridge.quote.v1.TradeStatus" json:"trade_status,omitempty"`
	OptionExtend *OptionExtend `protobuf:"bytes,11,opt,name=option_extend,json=optionExtend,proto3" json:"option_extend,omitempty"`
}

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

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

func (*OptionQuote) ProtoMessage() {}

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

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

func (x *OptionQuote) GetLastDone() string {
	if x != nil {
		return x.LastDone
	}
	return ""
}

func (x *OptionQuote) GetPrevClose() string {
	if x != nil {
		return x.PrevClose
	}
	return ""
}

func (x *OptionQuote) GetOpen() string {
	if x != nil {
		return x.Open
	}
	return ""
}

func (x *OptionQuote) GetHigh() string {
	if x != nil {
		return x.High
	}
	return ""
}

func (x *OptionQuote) GetLow() string {
	if x != nil {
		return x.Low
	}
	return ""
}

func (x *OptionQuote) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

func (x *OptionQuote) GetVolume() int64 {
	if x != nil {
		return x.Volume
	}
	return 0
}

func (x *OptionQuote) GetTurnover() string {
	if x != nil {
		return x.Turnover
	}
	return ""
}

func (x *OptionQuote) GetTradeStatus() TradeStatus {
	if x != nil {
		return x.TradeStatus
	}
	return TradeStatus_NORMAL
}

func (x *OptionQuote) GetOptionExtend() *OptionExtend {
	if x != nil {
		return x.OptionExtend
	}
	return nil
}

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

	ImpliedVolatility    string `protobuf:"bytes,1,opt,name=implied_volatility,json=impliedVolatility,proto3" json:"implied_volatility,omitempty"`
	OpenInterest         int64  `protobuf:"varint,2,opt,name=open_interest,json=openInterest,proto3" json:"open_interest,omitempty"`
	ExpiryDate           string `protobuf:"bytes,3,opt,name=expiry_date,json=expiryDate,proto3" json:"expiry_date,omitempty"`
	StrikePrice          string `protobuf:"bytes,4,opt,name=strike_price,json=strikePrice,proto3" json:"strike_price,omitempty"`
	ContractMultiplier   string `protobuf:"bytes,5,opt,name=contract_multiplier,json=contractMultiplier,proto3" json:"contract_multiplier,omitempty"`
	ContractType         string `protobuf:"bytes,6,opt,name=contract_type,json=contractType,proto3" json:"contract_type,omitempty"`
	ContractSize         string `protobuf:"bytes,7,opt,name=contract_size,json=contractSize,proto3" json:"contract_size,omitempty"`
	Direction            string `protobuf:"bytes,8,opt,name=direction,proto3" json:"direction,omitempty"`
	HistoricalVolatility string `protobuf:"bytes,9,opt,name=historical_volatility,json=historicalVolatility,proto3" json:"historical_volatility,omitempty"`
	UnderlyingSymbol     string `protobuf:"bytes,10,opt,name=underlying_symbol,json=underlyingSymbol,proto3" json:"underlying_symbol,omitempty"`
}

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

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

func (*OptionExtend) ProtoMessage() {}

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

func (x *OptionExtend) GetImpliedVolatility() string {
	if x != nil {
		return x.ImpliedVolatility
	}
	return ""
}

func (x *OptionExtend) GetOpenInterest() int64 {
	if x != nil {
		return x.OpenInterest
	}
	return 0
}

func (x *OptionExtend) GetExpiryDate() string {
	if x != nil {
		return x.ExpiryDate
	}
	return ""
}

func (x *OptionExtend) GetStrikePrice() string {
	if x != nil {
		return x.StrikePrice
	}
	return ""
}

func (x *OptionExtend) GetContractMultiplier() string {
	if x != nil {
		return x.ContractMultiplier
	}
	return ""
}

func (x *OptionExtend) GetContractType() string {
	if x != nil {
		return x.ContractType
	}
	return ""
}

func (x *OptionExtend) GetContractSize() string {
	if x != nil {
		return x.ContractSize
	}
	return ""
}

func (x *OptionExtend) GetDirection() string {
	if x != nil {
		return x.Direction
	}
	return ""
}

func (x *OptionExtend) GetHistoricalVolatility() string {
	if x != nil {
		return x.HistoricalVolatility
	}
	return ""
}

func (x *OptionExtend) GetUnderlyingSymbol() string {
	if x != nil {
		return x.UnderlyingSymbol
	}
	return ""
}

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

	SecuQuote []*WarrantQuote `protobuf:"bytes,2,rep,name=secu_quote,json=secuQuote,proto3" json:"secu_quote,omitempty"`
}

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

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

func (*WarrantQuoteResponse) ProtoMessage() {}

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

func (x *WarrantQuoteResponse) GetSecuQuote() []*WarrantQuote {
	if x != nil {
		return x.SecuQuote
	}
	return nil
}

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

	Symbol        string         `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	LastDone      string         `protobuf:"bytes,2,opt,name=last_done,json=lastDone,proto3" json:"last_done,omitempty"`
	PrevClose     string         `protobuf:"bytes,3,opt,name=prev_close,json=prevClose,proto3" json:"prev_close,omitempty"`
	Open          string         `protobuf:"bytes,4,opt,name=open,proto3" json:"open,omitempty"`
	High          string         `protobuf:"bytes,5,opt,name=high,proto3" json:"high,omitempty"`
	Low           string         `protobuf:"bytes,6,opt,name=low,proto3" json:"low,omitempty"`
	Timestamp     int64          `protobuf:"varint,7,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	Volume        int64          `protobuf:"varint,8,opt,name=volume,proto3" json:"volume,omitempty"`
	Turnover      string         `protobuf:"bytes,9,opt,name=turnover,proto3" json:"turnover,omitempty"`
	TradeStatus   TradeStatus    `protobuf:"varint,10,opt,name=trade_status,json=tradeStatus,proto3,enum=longbridge.quote.v1.TradeStatus" json:"trade_status,omitempty"`
	WarrantExtend *WarrantExtend `protobuf:"bytes,11,opt,name=warrant_extend,json=warrantExtend,proto3" json:"warrant_extend,omitempty"`
}

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

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

func (*WarrantQuote) ProtoMessage() {}

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

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

func (x *WarrantQuote) GetLastDone() string {
	if x != nil {
		return x.LastDone
	}
	return ""
}

func (x *WarrantQuote) GetPrevClose() string {
	if x != nil {
		return x.PrevClose
	}
	return ""
}

func (x *WarrantQuote) GetOpen() string {
	if x != nil {
		return x.Open
	}
	return ""
}

func (x *WarrantQuote) GetHigh() string {
	if x != nil {
		return x.High
	}
	return ""
}

func (x *WarrantQuote) GetLow() string {
	if x != nil {
		return x.Low
	}
	return ""
}

func (x *WarrantQuote) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

func (x *WarrantQuote) GetVolume() int64 {
	if x != nil {
		return x.Volume
	}
	return 0
}

func (x *WarrantQuote) GetTurnover() string {
	if x != nil {
		return x.Turnover
	}
	return ""
}

func (x *WarrantQuote) GetTradeStatus() TradeStatus {
	if x != nil {
		return x.TradeStatus
	}
	return TradeStatus_NORMAL
}

func (x *WarrantQuote) GetWarrantExtend() *WarrantExtend {
	if x != nil {
		return x.WarrantExtend
	}
	return nil
}

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

	ImpliedVolatility string `protobuf:"bytes,1,opt,name=implied_volatility,json=impliedVolatility,proto3" json:"implied_volatility,omitempty"`
	ExpiryDate        string `protobuf:"bytes,2,opt,name=expiry_date,json=expiryDate,proto3" json:"expiry_date,omitempty"`
	LastTradeDate     string `protobuf:"bytes,3,opt,name=last_trade_date,json=lastTradeDate,proto3" json:"last_trade_date,omitempty"`
	OutstandingRatio  string `protobuf:"bytes,4,opt,name=outstanding_ratio,json=outstandingRatio,proto3" json:"outstanding_ratio,omitempty"`
	OutstandingQty    int64  `protobuf:"varint,5,opt,name=outstanding_qty,json=outstandingQty,proto3" json:"outstanding_qty,omitempty"`
	ConversionRatio   string `protobuf:"bytes,6,opt,name=conversion_ratio,json=conversionRatio,proto3" json:"conversion_ratio,omitempty"`
	Category          string `protobuf:"bytes,7,opt,name=category,proto3" json:"category,omitempty"`
	StrikePrice       string `protobuf:"bytes,8,opt,name=strike_price,json=strikePrice,proto3" json:"strike_price,omitempty"`
	UpperStrikePrice  string `protobuf:"bytes,9,opt,name=upper_strike_price,json=upperStrikePrice,proto3" json:"upper_strike_price,omitempty"`
	LowerStrikePrice  string `protobuf:"bytes,10,opt,name=lower_strike_price,json=lowerStrikePrice,proto3" json:"lower_strike_price,omitempty"`
	CallPrice         string `protobuf:"bytes,11,opt,name=call_price,json=callPrice,proto3" json:"call_price,omitempty"`
	UnderlyingSymbol  string `protobuf:"bytes,12,opt,name=underlying_symbol,json=underlyingSymbol,proto3" json:"underlying_symbol,omitempty"`
}

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

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

func (*WarrantExtend) ProtoMessage() {}

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

func (x *WarrantExtend) GetImpliedVolatility() string {
	if x != nil {
		return x.ImpliedVolatility
	}
	return ""
}

func (x *WarrantExtend) GetExpiryDate() string {
	if x != nil {
		return x.ExpiryDate
	}
	return ""
}

func (x *WarrantExtend) GetLastTradeDate() string {
	if x != nil {
		return x.LastTradeDate
	}
	return ""
}

func (x *WarrantExtend) GetOutstandingRatio() string {
	if x != nil {
		return x.OutstandingRatio
	}
	return ""
}

func (x *WarrantExtend) GetOutstandingQty() int64 {
	if x != nil {
		return x.OutstandingQty
	}
	return 0
}

func (x *WarrantExtend) GetConversionRatio() string {
	if x != nil {
		return x.ConversionRatio
	}
	return ""
}

func (x *WarrantExtend) GetCategory() string {
	if x != nil {
		return x.Category
	}
	return ""
}

func (x *WarrantExtend) GetStrikePrice() string {
	if x != nil {
		return x.StrikePrice
	}
	return ""
}

func (x *WarrantExtend) GetUpperStrikePrice() string {
	if x != nil {
		return x.UpperStrikePrice
	}
	return ""
}

func (x *WarrantExtend) GetLowerStrikePrice() string {
	if x != nil {
		return x.LowerStrikePrice
	}
	return ""
}

func (x *WarrantExtend) GetCallPrice() string {
	if x != nil {
		return x.CallPrice
	}
	return ""
}

func (x *WarrantExtend) GetUnderlyingSymbol() string {
	if x != nil {
		return x.UnderlyingSymbol
	}
	return ""
}

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

	Symbol string   `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Ask    []*Depth `protobuf:"bytes,2,rep,name=ask,proto3" json:"ask,omitempty"`
	Bid    []*Depth `protobuf:"bytes,3,rep,name=bid,proto3" json:"bid,omitempty"`
}

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

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

func (*SecurityDepthResponse) ProtoMessage() {}

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

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

func (x *SecurityDepthResponse) GetAsk() []*Depth {
	if x != nil {
		return x.Ask
	}
	return nil
}

func (x *SecurityDepthResponse) GetBid() []*Depth {
	if x != nil {
		return x.Bid
	}
	return nil
}

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

	Position int32  `protobuf:"varint,1,opt,name=position,proto3" json:"position,omitempty"`
	Price    string `protobuf:"bytes,2,opt,name=price,proto3" json:"price,omitempty"`
	Volume   int64  `protobuf:"varint,3,opt,name=volume,proto3" json:"volume,omitempty"`
	OrderNum int64  `protobuf:"varint,4,opt,name=order_num,json=orderNum,proto3" json:"order_num,omitempty"`
}

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

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

func (*Depth) ProtoMessage() {}

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

func (x *Depth) GetPosition() int32 {
	if x != nil {
		return x.Position
	}
	return 0
}

func (x *Depth) GetPrice() string {
	if x != nil {
		return x.Price
	}
	return ""
}

func (x *Depth) GetVolume() int64 {
	if x != nil {
		return x.Volume
	}
	return 0
}

func (x *Depth) GetOrderNum() int64 {
	if x != nil {
		return x.OrderNum
	}
	return 0
}

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

	Symbol     string     `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	AskBrokers []*Brokers `protobuf:"bytes,2,rep,name=ask_brokers,json=askBrokers,proto3" json:"ask_brokers,omitempty"`
	BidBrokers []*Brokers `protobuf:"bytes,3,rep,name=bid_brokers,json=bidBrokers,proto3" json:"bid_brokers,omitempty"`
}

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

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

func (*SecurityBrokersResponse) ProtoMessage() {}

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

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

func (x *SecurityBrokersResponse) GetAskBrokers() []*Brokers {
	if x != nil {
		return x.AskBrokers
	}
	return nil
}

func (x *SecurityBrokersResponse) GetBidBrokers() []*Brokers {
	if x != nil {
		return x.BidBrokers
	}
	return nil
}

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

	Position  int32   `protobuf:"varint,1,opt,name=position,proto3" json:"position,omitempty"`
	BrokerIds []int32 `protobuf:"varint,2,rep,packed,name=broker_ids,json=brokerIds,proto3" json:"broker_ids,omitempty"`
}

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

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

func (*Brokers) ProtoMessage() {}

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

func (x *Brokers) GetPosition() int32 {
	if x != nil {
		return x.Position
	}
	return 0
}

func (x *Brokers) GetBrokerIds() []int32 {
	if x != nil {
		return x.BrokerIds
	}
	return nil
}

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

	ParticipantBrokerNumbers []*ParticipantInfo `protobuf:"bytes,1,rep,name=participant_broker_numbers,json=participantBrokerNumbers,proto3" json:"participant_broker_numbers,omitempty"`
}

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

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

func (*ParticipantBrokerIdsResponse) ProtoMessage() {}

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

func (x *ParticipantBrokerIdsResponse) GetParticipantBrokerNumbers() []*ParticipantInfo {
	if x != nil {
		return x.ParticipantBrokerNumbers
	}
	return nil
}

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

	BrokerIds         []int32 `protobuf:"varint,1,rep,packed,name=broker_ids,json=brokerIds,proto3" json:"broker_ids,omitempty"`
	ParticipantNameCn string  `protobuf:"bytes,2,opt,name=participant_name_cn,json=participantNameCn,proto3" json:"participant_name_cn,omitempty"`
	ParticipantNameEn string  `protobuf:"bytes,3,opt,name=participant_name_en,json=participantNameEn,proto3" json:"participant_name_en,omitempty"`
	ParticipantNameHk string  `protobuf:"bytes,4,opt,name=participant_name_hk,json=participantNameHk,proto3" json:"participant_name_hk,omitempty"`
}

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

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

func (*ParticipantInfo) ProtoMessage() {}

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

func (x *ParticipantInfo) GetBrokerIds() []int32 {
	if x != nil {
		return x.BrokerIds
	}
	return nil
}

func (x *ParticipantInfo) GetParticipantNameCn() string {
	if x != nil {
		return x.ParticipantNameCn
	}
	return ""
}

func (x *ParticipantInfo) GetParticipantNameEn() string {
	if x != nil {
		return x.ParticipantNameEn
	}
	return ""
}

func (x *ParticipantInfo) GetParticipantNameHk() string {
	if x != nil {
		return x.ParticipantNameHk
	}
	return ""
}

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

	Symbol string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Count  int32  `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
}

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

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

func (*SecurityTradeRequest) ProtoMessage() {}

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

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

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

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

	Symbol string   `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Trades []*Trade `protobuf:"bytes,2,rep,name=trades,proto3" json:"trades,omitempty"`
}

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

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

func (*SecurityTradeResponse) ProtoMessage() {}

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

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

func (x *SecurityTradeResponse) GetTrades() []*Trade {
	if x != nil {
		return x.Trades
	}
	return nil
}

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

	Price        string       `protobuf:"bytes,1,opt,name=price,proto3" json:"price,omitempty"`
	Volume       int64        `protobuf:"varint,2,opt,name=volume,proto3" json:"volume,omitempty"`
	Timestamp    int64        `protobuf:"varint,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	TradeType    string       `protobuf:"bytes,4,opt,name=trade_type,json=tradeType,proto3" json:"trade_type,omitempty"`
	Direction    int32        `protobuf:"varint,5,opt,name=direction,proto3" json:"direction,omitempty"`
	TradeSession TradeSession `protobuf:"varint,6,opt,name=trade_session,json=tradeSession,proto3,enum=longbridge.quote.v1.TradeSession" json:"trade_session,omitempty"`
}

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

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

func (*Trade) ProtoMessage() {}

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

func (x *Trade) GetPrice() string {
	if x != nil {
		return x.Price
	}
	return ""
}

func (x *Trade) GetVolume() int64 {
	if x != nil {
		return x.Volume
	}
	return 0
}

func (x *Trade) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

func (x *Trade) GetTradeType() string {
	if x != nil {
		return x.TradeType
	}
	return ""
}

func (x *Trade) GetDirection() int32 {
	if x != nil {
		return x.Direction
	}
	return 0
}

func (x *Trade) GetTradeSession() TradeSession {
	if x != nil {
		return x.TradeSession
	}
	return TradeSession_NORMAL_TRADE
}

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

	Symbol       string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	TradeSession int32  `protobuf:"varint,2,opt,name=trade_session,json=tradeSession,proto3" json:"trade_session,omitempty"`
}

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

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

func (*SecurityIntradayRequest) ProtoMessage() {}

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

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

func (x *SecurityIntradayRequest) GetTradeSession() int32 {
	if x != nil {
		return x.TradeSession
	}
	return 0
}

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

	Symbol string  `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Lines  []*Line `protobuf:"bytes,2,rep,name=lines,proto3" json:"lines,omitempty"`
}

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

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

func (*SecurityIntradayResponse) ProtoMessage() {}

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

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

func (x *SecurityIntradayResponse) GetLines() []*Line {
	if x != nil {
		return x.Lines
	}
	return nil
}

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

	Price     string `protobuf:"bytes,1,opt,name=price,proto3" json:"price,omitempty"`
	Timestamp int64  `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	Volume    int64  `protobuf:"varint,3,opt,name=volume,proto3" json:"volume,omitempty"`
	Turnover  string `protobuf:"bytes,4,opt,name=turnover,proto3" json:"turnover,omitempty"`
	AvgPrice  string `protobuf:"bytes,5,opt,name=avg_price,json=avgPrice,proto3" json:"avg_price,omitempty"`
}

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

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

func (*Line) ProtoMessage() {}

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

func (x *Line) GetPrice() string {
	if x != nil {
		return x.Price
	}
	return ""
}

func (x *Line) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

func (x *Line) GetVolume() int64 {
	if x != nil {
		return x.Volume
	}
	return 0
}

func (x *Line) GetTurnover() string {
	if x != nil {
		return x.Turnover
	}
	return ""
}

func (x *Line) GetAvgPrice() string {
	if x != nil {
		return x.AvgPrice
	}
	return ""
}

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

	Symbol       string     `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Period       Period     `protobuf:"varint,2,opt,name=period,proto3,enum=longbridge.quote.v1.Period" json:"period,omitempty"`
	Count        int32      `protobuf:"varint,3,opt,name=count,proto3" json:"count,omitempty"`
	AdjustType   AdjustType `protobuf:"varint,4,opt,name=adjust_type,json=adjustType,proto3,enum=longbridge.quote.v1.AdjustType" json:"adjust_type,omitempty"`
	TradeSession int32      `protobuf:"varint,5,opt,name=trade_session,json=tradeSession,proto3" json:"trade_session,omitempty"`
}

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

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

func (*SecurityCandlestickRequest) ProtoMessage() {}

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

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

func (x *SecurityCandlestickRequest) GetPeriod() Period {
	if x != nil {
		return x.Period
	}
	return Period_UNKNOWN_PERIOD
}

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

func (x *SecurityCandlestickRequest) GetAdjustType() AdjustType {
	if x != nil {
		return x.AdjustType
	}
	return AdjustType_NO_ADJUST
}

func (x *SecurityCandlestickRequest) GetTradeSession() int32 {
	if x != nil {
		return x.TradeSession
	}
	return 0
}

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

	Symbol       string         `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Candlesticks []*Candlestick `protobuf:"bytes,2,rep,name=candlesticks,proto3" json:"candlesticks,omitempty"`
}

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

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

func (*SecurityCandlestickResponse) ProtoMessage() {}

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

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

func (x *SecurityCandlestickResponse) GetCandlesticks() []*Candlestick {
	if x != nil {
		return x.Candlesticks
	}
	return nil
}

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

	Close        string       `protobuf:"bytes,1,opt,name=close,proto3" json:"close,omitempty"`
	Open         string       `protobuf:"bytes,2,opt,name=open,proto3" json:"open,omitempty"`
	Low          string       `protobuf:"bytes,3,opt,name=low,proto3" json:"low,omitempty"`
	High         string       `protobuf:"bytes,4,opt,name=high,proto3" json:"high,omitempty"`
	Volume       int64        `protobuf:"varint,5,opt,name=volume,proto3" json:"volume,omitempty"`
	Turnover     string       `protobuf:"bytes,6,opt,name=turnover,proto3" json:"turnover,omitempty"`
	Timestamp    int64        `protobuf:"varint,7,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	TradeSession TradeSession `protobuf:"varint,8,opt,name=trade_session,json=tradeSession,proto3,enum=longbridge.quote.v1.TradeSession" json:"trade_session,omitempty"`
}

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

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

func (*Candlestick) ProtoMessage() {}

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

func (x *Candlestick) GetClose() string {
	if x != nil {
		return x.Close
	}
	return ""
}

func (x *Candlestick) GetOpen() string {
	if x != nil {
		return x.Open
	}
	return ""
}

func (x *Candlestick) GetLow() string {
	if x != nil {
		return x.Low
	}
	return ""
}

func (x *Candlestick) GetHigh() string {
	if x != nil {
		return x.High
	}
	return ""
}

func (x *Candlestick) GetVolume() int64 {
	if x != nil {
		return x.Volume
	}
	return 0
}

func (x *Candlestick) GetTurnover() string {
	if x != nil {
		return x.Turnover
	}
	return ""
}

func (x *Candlestick) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

func (x *Candlestick) GetTradeSession() TradeSession {
	if x != nil {
		return x.TradeSession
	}
	return TradeSession_NORMAL_TRADE
}

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

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

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

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

func (*OptionChainDateListResponse) ProtoMessage() {}

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

func (x *OptionChainDateListResponse) GetExpiryDate() []string {
	if x != nil {
		return x.ExpiryDate
	}
	return nil
}

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

	Symbol     string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	ExpiryDate string `protobuf:"bytes,2,opt,name=expiry_date,json=expiryDate,proto3" json:"expiry_date,omitempty"`
}

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

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

func (*OptionChainDateStrikeInfoRequest) ProtoMessage() {}

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

// Deprecated: Use OptionChainDateStrikeInfoRequest.ProtoReflect.Descriptor instead.
func (*OptionChainDateStrikeInfoRequest) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{29}
}

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

func (x *OptionChainDateStrikeInfoRequest) GetExpiryDate() string {
	if x != nil {
		return x.ExpiryDate
	}
	return ""
}

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

	StrikePriceInfo []*StrikePriceInfo `protobuf:"bytes,1,rep,name=strike_price_info,json=strikePriceInfo,proto3" json:"strike_price_info,omitempty"`
}

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

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

func (*OptionChainDateStrikeInfoResponse) ProtoMessage() {}

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

// Deprecated: Use OptionChainDateStrikeInfoResponse.ProtoReflect.Descriptor instead.
func (*OptionChainDateStrikeInfoResponse) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{30}
}

func (x *OptionChainDateStrikeInfoResponse) GetStrikePriceInfo() []*StrikePriceInfo {
	if x != nil {
		return x.StrikePriceInfo
	}
	return nil
}

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

	Price      string `protobuf:"bytes,1,opt,name=price,proto3" json:"price,omitempty"`
	CallSymbol string `protobuf:"bytes,2,opt,name=call_symbol,json=callSymbol,proto3" json:"call_symbol,omitempty"`
	PutSymbol  string `protobuf:"bytes,3,opt,name=put_symbol,json=putSymbol,proto3" json:"put_symbol,omitempty"`
	Standard   bool   `protobuf:"varint,4,opt,name=standard,proto3" json:"standard,omitempty"`
}

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

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

func (*StrikePriceInfo) ProtoMessage() {}

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

// Deprecated: Use StrikePriceInfo.ProtoReflect.Descriptor instead.
func (*StrikePriceInfo) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{31}
}

func (x *StrikePriceInfo) GetPrice() string {
	if x != nil {
		return x.Price
	}
	return ""
}

func (x *StrikePriceInfo) GetCallSymbol() string {
	if x != nil {
		return x.CallSymbol
	}
	return ""
}

func (x *StrikePriceInfo) GetPutSymbol() string {
	if x != nil {
		return x.PutSymbol
	}
	return ""
}

func (x *StrikePriceInfo) GetStandard() bool {
	if x != nil {
		return x.Standard
	}
	return false
}

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

	IssuerInfo []*IssuerInfo `protobuf:"bytes,1,rep,name=issuer_info,json=issuerInfo,proto3" json:"issuer_info,omitempty"`
}

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

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

func (*IssuerInfoResponse) ProtoMessage() {}

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

// Deprecated: Use IssuerInfoResponse.ProtoReflect.Descriptor instead.
func (*IssuerInfoResponse) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{32}
}

func (x *IssuerInfoResponse) GetIssuerInfo() []*IssuerInfo {
	if x != nil {
		return x.IssuerInfo
	}
	return nil
}

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

	Id     int32  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	NameCn string `protobuf:"bytes,2,opt,name=name_cn,json=nameCn,proto3" json:"name_cn,omitempty"`
	NameEn string `protobuf:"bytes,3,opt,name=name_en,json=nameEn,proto3" json:"name_en,omitempty"`
	NameHk string `protobuf:"bytes,4,opt,name=name_hk,json=nameHk,proto3" json:"name_hk,omitempty"`
}

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

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

func (*IssuerInfo) ProtoMessage() {}

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

// Deprecated: Use IssuerInfo.ProtoReflect.Descriptor instead.
func (*IssuerInfo) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{33}
}

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

func (x *IssuerInfo) GetNameCn() string {
	if x != nil {
		return x.NameCn
	}
	return ""
}

func (x *IssuerInfo) GetNameEn() string {
	if x != nil {
		return x.NameEn
	}
	return ""
}

func (x *IssuerInfo) GetNameHk() string {
	if x != nil {
		return x.NameHk
	}
	return ""
}

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

	Symbol       string        `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	FilterConfig *FilterConfig `protobuf:"bytes,2,opt,name=filter_config,json=filterConfig,proto3" json:"filter_config,omitempty"`
	Language     int32         `protobuf:"varint,3,opt,name=language,proto3" json:"language,omitempty"`
}

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

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

func (*WarrantFilterListRequest) ProtoMessage() {}

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

// Deprecated: Use WarrantFilterListRequest.ProtoReflect.Descriptor instead.
func (*WarrantFilterListRequest) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{34}
}

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

func (x *WarrantFilterListRequest) GetFilterConfig() *FilterConfig {
	if x != nil {
		return x.FilterConfig
	}
	return nil
}

func (x *WarrantFilterListRequest) GetLanguage() int32 {
	if x != nil {
		return x.Language
	}
	return 0
}

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

	SortBy     int32   `protobuf:"varint,1,opt,name=sort_by,json=sortBy,proto3" json:"sort_by,omitempty"`
	SortOrder  int32   `protobuf:"varint,2,opt,name=sort_order,json=sortOrder,proto3" json:"sort_order,omitempty"`
	SortOffset int32   `protobuf:"varint,3,opt,name=sort_offset,json=sortOffset,proto3" json:"sort_offset,omitempty"`
	SortCount  int32   `protobuf:"varint,4,opt,name=sort_count,json=sortCount,proto3" json:"sort_count,omitempty"`
	Type       []int32 `protobuf:"varint,5,rep,packed,name=type,proto3" json:"type,omitempty"`
	Issuer     []int32 `protobuf:"varint,6,rep,packed,name=issuer,proto3" json:"issuer,omitempty"`
	ExpiryDate []int32 `protobuf:"varint,7,rep,packed,name=expiry_date,json=expiryDate,proto3" json:"expiry_date,omitempty"`
	PriceType  []int32 `protobuf:"varint,8,rep,packed,name=price_type,json=priceType,proto3" json:"price_type,omitempty"`
	Status     []int32 `protobuf:"varint,9,rep,packed,name=status,proto3" json:"status,omitempty"`
}

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

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

func (*FilterConfig) ProtoMessage() {}

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

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

func (x *FilterConfig) GetSortBy() int32 {
	if x != nil {
		return x.SortBy
	}
	return 0
}

func (x *FilterConfig) GetSortOrder() int32 {
	if x != nil {
		return x.SortOrder
	}
	return 0
}

func (x *FilterConfig) GetSortOffset() int32 {
	if x != nil {
		return x.SortOffset
	}
	return 0
}

func (x *FilterConfig) GetSortCount() int32 {
	if x != nil {
		return x.SortCount
	}
	return 0
}

func (x *FilterConfig) GetType() []int32 {
	if x != nil {
		return x.Type
	}
	return nil
}

func (x *FilterConfig) GetIssuer() []int32 {
	if x != nil {
		return x.Issuer
	}
	return nil
}

func (x *FilterConfig) GetExpiryDate() []int32 {
	if x != nil {
		return x.ExpiryDate
	}
	return nil
}

func (x *FilterConfig) GetPriceType() []int32 {
	if x != nil {
		return x.PriceType
	}
	return nil
}

func (x *FilterConfig) GetStatus() []int32 {
	if x != nil {
		return x.Status
	}
	return nil
}

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

	WarrantList []*FilterWarrant `protobuf:"bytes,1,rep,name=warrant_list,json=warrantList,proto3" json:"warrant_list,omitempty"`
	TotalCount  int32            `protobuf:"varint,2,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"`
}

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

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

func (*WarrantFilterListResponse) ProtoMessage() {}

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

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

func (x *WarrantFilterListResponse) GetWarrantList() []*FilterWarrant {
	if x != nil {
		return x.WarrantList
	}
	return nil
}

func (x *WarrantFilterListResponse) GetTotalCount() int32 {
	if x != nil {
		return x.TotalCount
	}
	return 0
}

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

	Symbol            string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Name              string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	LastDone          string `protobuf:"bytes,3,opt,name=last_done,json=lastDone,proto3" json:"last_done,omitempty"`
	ChangeRate        string `protobuf:"bytes,4,opt,name=change_rate,json=changeRate,proto3" json:"change_rate,omitempty"`
	ChangeVal         string `protobuf:"bytes,5,opt,name=change_val,json=changeVal,proto3" json:"change_val,omitempty"`
	Volume            int64  `protobuf:"varint,6,opt,name=volume,proto3" json:"volume,omitempty"`
	Turnover          string `protobuf:"bytes,7,opt,name=turnover,proto3" json:"turnover,omitempty"`
	ExpiryDate        string `protobuf:"bytes,8,opt,name=expiry_date,json=expiryDate,proto3" json:"expiry_date,omitempty"`
	StrikePrice       string `protobuf:"bytes,9,opt,name=strike_price,json=strikePrice,proto3" json:"strike_price,omitempty"`
	UpperStrikePrice  string `protobuf:"bytes,10,opt,name=upper_strike_price,json=upperStrikePrice,proto3" json:"upper_strike_price,omitempty"`
	LowerStrikePrice  string `protobuf:"bytes,11,opt,name=lower_strike_price,json=lowerStrikePrice,proto3" json:"lower_strike_price,omitempty"`
	OutstandingQty    string `protobuf:"bytes,12,opt,name=outstanding_qty,json=outstandingQty,proto3" json:"outstanding_qty,omitempty"`
	OutstandingRatio  string `protobuf:"bytes,13,opt,name=outstanding_ratio,json=outstandingRatio,proto3" json:"outstanding_ratio,omitempty"`
	Premium           string `protobuf:"bytes,14,opt,name=premium,proto3" json:"premium,omitempty"`
	ItmOtm            string `protobuf:"bytes,15,opt,name=itm_otm,json=itmOtm,proto3" json:"itm_otm,omitempty"`
	ImpliedVolatility string `protobuf:"bytes,16,opt,name=implied_volatility,json=impliedVolatility,proto3" json:"implied_volatility,omitempty"`
	Delta             string `protobuf:"bytes,17,opt,name=delta,proto3" json:"delta,omitempty"`
	CallPrice         string `protobuf:"bytes,18,opt,name=call_price,json=callPrice,proto3" json:"call_price,omitempty"`
	ToCallPrice       string `protobuf:"bytes,19,opt,name=to_call_price,json=toCallPrice,proto3" json:"to_call_price,omitempty"`
	EffectiveLeverage string `protobuf:"bytes,20,opt,name=effective_leverage,json=effectiveLeverage,proto3" json:"effective_leverage,omitempty"`
	LeverageRatio     string `protobuf:"bytes,21,opt,name=leverage_ratio,json=leverageRatio,proto3" json:"leverage_ratio,omitempty"`
	ConversionRatio   string `protobuf:"bytes,22,opt,name=conversion_ratio,json=conversionRatio,proto3" json:"conversion_ratio,omitempty"`
	BalancePoint      string `protobuf:"bytes,23,opt,name=balance_point,json=balancePoint,proto3" json:"balance_point,omitempty"`
	Status            int32  `protobuf:"varint,24,opt,name=status,proto3" json:"status,omitempty"`
	Type              int32  `protobuf:"varint,25,opt,name=type,proto3" json:"type,omitempty"`
}

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

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

func (*FilterWarrant) ProtoMessage() {}

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

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

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

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

func (x *FilterWarrant) GetLastDone() string {
	if x != nil {
		return x.LastDone
	}
	return ""
}

func (x *FilterWarrant) GetChangeRate() string {
	if x != nil {
		return x.ChangeRate
	}
	return ""
}

func (x *FilterWarrant) GetChangeVal() string {
	if x != nil {
		return x.ChangeVal
	}
	return ""
}

func (x *FilterWarrant) GetVolume() int64 {
	if x != nil {
		return x.Volume
	}
	return 0
}

func (x *FilterWarrant) GetTurnover() string {
	if x != nil {
		return x.Turnover
	}
	return ""
}

func (x *FilterWarrant) GetExpiryDate() string {
	if x != nil {
		return x.ExpiryDate
	}
	return ""
}

func (x *FilterWarrant) GetStrikePrice() string {
	if x != nil {
		return x.StrikePrice
	}
	return ""
}

func (x *FilterWarrant) GetUpperStrikePrice() string {
	if x != nil {
		return x.UpperStrikePrice
	}
	return ""
}

func (x *FilterWarrant) GetLowerStrikePrice() string {
	if x != nil {
		return x.LowerStrikePrice
	}
	return ""
}

func (x *FilterWarrant) GetOutstandingQty() string {
	if x != nil {
		return x.OutstandingQty
	}
	return ""
}

func (x *FilterWarrant) GetOutstandingRatio() string {
	if x != nil {
		return x.OutstandingRatio
	}
	return ""
}

func (x *FilterWarrant) GetPremium() string {
	if x != nil {
		return x.Premium
	}
	return ""
}

func (x *FilterWarrant) GetItmOtm() string {
	if x != nil {
		return x.ItmOtm
	}
	return ""
}

func (x *FilterWarrant) GetImpliedVolatility() string {
	if x != nil {
		return x.ImpliedVolatility
	}
	return ""
}

func (x *FilterWarrant) GetDelta() string {
	if x != nil {
		return x.Delta
	}
	return ""
}

func (x *FilterWarrant) GetCallPrice() string {
	if x != nil {
		return x.CallPrice
	}
	return ""
}

func (x *FilterWarrant) GetToCallPrice() string {
	if x != nil {
		return x.ToCallPrice
	}
	return ""
}

func (x *FilterWarrant) GetEffectiveLeverage() string {
	if x != nil {
		return x.EffectiveLeverage
	}
	return ""
}

func (x *FilterWarrant) GetLeverageRatio() string {
	if x != nil {
		return x.LeverageRatio
	}
	return ""
}

func (x *FilterWarrant) GetConversionRatio() string {
	if x != nil {
		return x.ConversionRatio
	}
	return ""
}

func (x *FilterWarrant) GetBalancePoint() string {
	if x != nil {
		return x.BalancePoint
	}
	return ""
}

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

func (x *FilterWarrant) GetType() int32 {
	if x != nil {
		return x.Type
	}
	return 0
}

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

	MarketTradeSession []*MarketTradePeriod `protobuf:"bytes,1,rep,name=market_trade_session,json=marketTradeSession,proto3" json:"market_trade_session,omitempty"`
}

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

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

func (*MarketTradePeriodResponse) ProtoMessage() {}

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

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

func (x *MarketTradePeriodResponse) GetMarketTradeSession() []*MarketTradePeriod {
	if x != nil {
		return x.MarketTradeSession
	}
	return nil
}

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

	Market       string         `protobuf:"bytes,1,opt,name=market,proto3" json:"market,omitempty"`
	TradeSession []*TradePeriod `protobuf:"bytes,2,rep,name=trade_session,json=tradeSession,proto3" json:"trade_session,omitempty"`
}

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

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

func (*MarketTradePeriod) ProtoMessage() {}

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

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

func (x *MarketTradePeriod) GetMarket() string {
	if x != nil {
		return x.Market
	}
	return ""
}

func (x *MarketTradePeriod) GetTradeSession() []*TradePeriod {
	if x != nil {
		return x.TradeSession
	}
	return nil
}

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

	BegTime      int32        `protobuf:"varint,1,opt,name=beg_time,json=begTime,proto3" json:"beg_time,omitempty"`
	EndTime      int32        `protobuf:"varint,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
	TradeSession TradeSession `protobuf:"varint,3,opt,name=trade_session,json=tradeSession,proto3,enum=longbridge.quote.v1.TradeSession" json:"trade_session,omitempty"`
}

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

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

func (*TradePeriod) ProtoMessage() {}

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

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

func (x *TradePeriod) GetBegTime() int32 {
	if x != nil {
		return x.BegTime
	}
	return 0
}

func (x *TradePeriod) GetEndTime() int32 {
	if x != nil {
		return x.EndTime
	}
	return 0
}

func (x *TradePeriod) GetTradeSession() TradeSession {
	if x != nil {
		return x.TradeSession
	}
	return TradeSession_NORMAL_TRADE
}

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

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

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

func (*SubscriptionRequest) ProtoMessage() {}

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

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

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

	SubList []*SubTypeList `protobuf:"bytes,1,rep,name=sub_list,json=subList,proto3" json:"sub_list,omitempty"`
}

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

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

func (*SubscriptionResponse) ProtoMessage() {}

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

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

func (x *SubscriptionResponse) GetSubList() []*SubTypeList {
	if x != nil {
		return x.SubList
	}
	return nil
}

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

	Symbol  string    `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	SubType []SubType `protobuf:"varint,2,rep,packed,name=sub_type,json=subType,proto3,enum=longbridge.quote.v1.SubType" json:"sub_type,omitempty"`
}

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

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

func (*SubTypeList) ProtoMessage() {}

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

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

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

func (x *SubTypeList) GetSubType() []SubType {
	if x != nil {
		return x.SubType
	}
	return nil
}

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

	Symbol      []string  `protobuf:"bytes,1,rep,name=symbol,proto3" json:"symbol,omitempty"`
	SubType     []SubType `protobuf:"varint,2,rep,packed,name=sub_type,json=subType,proto3,enum=longbridge.quote.v1.SubType" json:"sub_type,omitempty"`
	IsFirstPush bool      `protobuf:"varint,3,opt,name=is_first_push,json=isFirstPush,proto3" json:"is_first_push,omitempty"`
}

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

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

func (*SubscribeRequest) ProtoMessage() {}

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

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

func (x *SubscribeRequest) GetSymbol() []string {
	if x != nil {
		return x.Symbol
	}
	return nil
}

func (x *SubscribeRequest) GetSubType() []SubType {
	if x != nil {
		return x.SubType
	}
	return nil
}

func (x *SubscribeRequest) GetIsFirstPush() bool {
	if x != nil {
		return x.IsFirstPush
	}
	return false
}

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

	Symbol   []string  `protobuf:"bytes,1,rep,name=symbol,proto3" json:"symbol,omitempty"`
	SubType  []SubType `protobuf:"varint,2,rep,packed,name=sub_type,json=subType,proto3,enum=longbridge.quote.v1.SubType" json:"sub_type,omitempty"`
	UnsubAll bool      `protobuf:"varint,3,opt,name=unsub_all,json=unsubAll,proto3" json:"unsub_all,omitempty"`
}

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

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

func (*UnsubscribeRequest) ProtoMessage() {}

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

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

func (x *UnsubscribeRequest) GetSymbol() []string {
	if x != nil {
		return x.Symbol
	}
	return nil
}

func (x *UnsubscribeRequest) GetSubType() []SubType {
	if x != nil {
		return x.SubType
	}
	return nil
}

func (x *UnsubscribeRequest) GetUnsubAll() bool {
	if x != nil {
		return x.UnsubAll
	}
	return false
}

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

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

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

func (*UnsubscribeResponse) ProtoMessage() {}

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

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

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

	Symbol          string       `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Sequence        int64        `protobuf:"varint,2,opt,name=sequence,proto3" json:"sequence,omitempty"`
	LastDone        string       `protobuf:"bytes,3,opt,name=last_done,json=lastDone,proto3" json:"last_done,omitempty"`
	Open            string       `protobuf:"bytes,4,opt,name=open,proto3" json:"open,omitempty"`
	High            string       `protobuf:"bytes,5,opt,name=high,proto3" json:"high,omitempty"`
	Low             string       `protobuf:"bytes,6,opt,name=low,proto3" json:"low,omitempty"`
	Timestamp       int64        `protobuf:"varint,7,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	Volume          int64        `protobuf:"varint,8,opt,name=volume,proto3" json:"volume,omitempty"`
	Turnover        string       `protobuf:"bytes,9,opt,name=turnover,proto3" json:"turnover,omitempty"`
	TradeStatus     TradeStatus  `protobuf:"varint,10,opt,name=trade_status,json=tradeStatus,proto3,enum=longbridge.quote.v1.TradeStatus" json:"trade_status,omitempty"`
	TradeSession    TradeSession `protobuf:"varint,11,opt,name=trade_session,json=tradeSession,proto3,enum=longbridge.quote.v1.TradeSession" json:"trade_session,omitempty"`
	CurrentVolume   int64        `protobuf:"varint,12,opt,name=current_volume,json=currentVolume,proto3" json:"current_volume,omitempty"`
	CurrentTurnover string       `protobuf:"bytes,13,opt,name=current_turnover,json=currentTurnover,proto3" json:"current_turnover,omitempty"`
	Tag             PushQuoteTag `protobuf:"varint,14,opt,name=tag,proto3,enum=longbridge.quote.v1.PushQuoteTag" json:"tag,omitempty"`
}

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

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

func (*PushQuote) ProtoMessage() {}

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

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

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

func (x *PushQuote) GetSequence() int64 {
	if x != nil {
		return x.Sequence
	}
	return 0
}

func (x *PushQuote) GetLastDone() string {
	if x != nil {
		return x.LastDone
	}
	return ""
}

func (x *PushQuote) GetOpen() string {
	if x != nil {
		return x.Open
	}
	return ""
}

func (x *PushQuote) GetHigh() string {
	if x != nil {
		return x.High
	}
	return ""
}

func (x *PushQuote) GetLow() string {
	if x != nil {
		return x.Low
	}
	return ""
}

func (x *PushQuote) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

func (x *PushQuote) GetVolume() int64 {
	if x != nil {
		return x.Volume
	}
	return 0
}

func (x *PushQuote) GetTurnover() string {
	if x != nil {
		return x.Turnover
	}
	return ""
}

func (x *PushQuote) GetTradeStatus() TradeStatus {
	if x != nil {
		return x.TradeStatus
	}
	return TradeStatus_NORMAL
}

func (x *PushQuote) GetTradeSession() TradeSession {
	if x != nil {
		return x.TradeSession
	}
	return TradeSession_NORMAL_TRADE
}

func (x *PushQuote) GetCurrentVolume() int64 {
	if x != nil {
		return x.CurrentVolume
	}
	return 0
}

func (x *PushQuote) GetCurrentTurnover() string {
	if x != nil {
		return x.CurrentTurnover
	}
	return ""
}

func (x *PushQuote) GetTag() PushQuoteTag {
	if x != nil {
		return x.Tag
	}
	return PushQuoteTag_Normal
}

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

	Symbol   string   `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Sequence int64    `protobuf:"varint,2,opt,name=sequence,proto3" json:"sequence,omitempty"`
	Ask      []*Depth `protobuf:"bytes,3,rep,name=ask,proto3" json:"ask,omitempty"`
	Bid      []*Depth `protobuf:"bytes,4,rep,name=bid,proto3" json:"bid,omitempty"`
}

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

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

func (*PushDepth) ProtoMessage() {}

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

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

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

func (x *PushDepth) GetSequence() int64 {
	if x != nil {
		return x.Sequence
	}
	return 0
}

func (x *PushDepth) GetAsk() []*Depth {
	if x != nil {
		return x.Ask
	}
	return nil
}

func (x *PushDepth) GetBid() []*Depth {
	if x != nil {
		return x.Bid
	}
	return nil
}

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

	Symbol     string     `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Sequence   int64      `protobuf:"varint,2,opt,name=sequence,proto3" json:"sequence,omitempty"`
	AskBrokers []*Brokers `protobuf:"bytes,3,rep,name=ask_brokers,json=askBrokers,proto3" json:"ask_brokers,omitempty"`
	BidBrokers []*Brokers `protobuf:"bytes,4,rep,name=bid_brokers,json=bidBrokers,proto3" json:"bid_brokers,omitempty"`
}

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

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

func (*PushBrokers) ProtoMessage() {}

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

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

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

func (x *PushBrokers) GetSequence() int64 {
	if x != nil {
		return x.Sequence
	}
	return 0
}

func (x *PushBrokers) GetAskBrokers() []*Brokers {
	if x != nil {
		return x.AskBrokers
	}
	return nil
}

func (x *PushBrokers) GetBidBrokers() []*Brokers {
	if x != nil {
		return x.BidBrokers
	}
	return nil
}

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

	Symbol   string   `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Sequence int64    `protobuf:"varint,2,opt,name=sequence,proto3" json:"sequence,omitempty"`
	Trade    []*Trade `protobuf:"bytes,3,rep,name=trade,proto3" json:"trade,omitempty"`
}

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

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

func (*PushTrade) ProtoMessage() {}

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

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

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

func (x *PushTrade) GetSequence() int64 {
	if x != nil {
		return x.Sequence
	}
	return 0
}

func (x *PushTrade) GetTrade() []*Trade {
	if x != nil {
		return x.Trade
	}
	return nil
}

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

	Market string `protobuf:"bytes,1,opt,name=market,proto3" json:"market,omitempty"`
	BegDay string `protobuf:"bytes,2,opt,name=beg_day,json=begDay,proto3" json:"beg_day,omitempty"`
	EndDay string `protobuf:"bytes,3,opt,name=end_day,json=endDay,proto3" json:"end_day,omitempty"`
}

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

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

func (*MarketTradeDayRequest) ProtoMessage() {}

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

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

func (x *MarketTradeDayRequest) GetMarket() string {
	if x != nil {
		return x.Market
	}
	return ""
}

func (x *MarketTradeDayRequest) GetBegDay() string {
	if x != nil {
		return x.BegDay
	}
	return ""
}

func (x *MarketTradeDayRequest) GetEndDay() string {
	if x != nil {
		return x.EndDay
	}
	return ""
}

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

	TradeDay     []string `protobuf:"bytes,1,rep,name=trade_day,json=tradeDay,proto3" json:"trade_day,omitempty"`
	HalfTradeDay []string `protobuf:"bytes,2,rep,name=half_trade_day,json=halfTradeDay,proto3" json:"half_trade_day,omitempty"`
}

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

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

func (*MarketTradeDayResponse) ProtoMessage() {}

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

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

func (x *MarketTradeDayResponse) GetTradeDay() []string {
	if x != nil {
		return x.TradeDay
	}
	return nil
}

func (x *MarketTradeDayResponse) GetHalfTradeDay() []string {
	if x != nil {
		return x.HalfTradeDay
	}
	return nil
}

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

	Symbol string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
}

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

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

func (*CapitalFlowIntradayRequest) ProtoMessage() {}

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

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

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

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

	Symbol           string                                         `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	CapitalFlowLines []*CapitalFlowIntradayResponse_CapitalFlowLine `protobuf:"bytes,2,rep,name=capital_flow_lines,json=capitalFlowLines,proto3" json:"capital_flow_lines,omitempty"`
}

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

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

func (*CapitalFlowIntradayResponse) ProtoMessage() {}

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

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

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

func (x *CapitalFlowIntradayResponse) GetCapitalFlowLines() []*CapitalFlowIntradayResponse_CapitalFlowLine {
	if x != nil {
		return x.CapitalFlowLines
	}
	return nil
}

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

	Symbol     string                                           `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Timestamp  int64                                            `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	CapitalIn  *CapitalDistributionResponse_CapitalDistribution `protobuf:"bytes,3,opt,name=capital_in,json=capitalIn,proto3" json:"capital_in,omitempty"`
	CapitalOut *CapitalDistributionResponse_CapitalDistribution `protobuf:"bytes,4,opt,name=capital_out,json=capitalOut,proto3" json:"capital_out,omitempty"`
}

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

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

func (*CapitalDistributionResponse) ProtoMessage() {}

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

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

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

func (x *CapitalDistributionResponse) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

func (x *CapitalDistributionResponse) GetCapitalIn() *CapitalDistributionResponse_CapitalDistribution {
	if x != nil {
		return x.CapitalIn
	}
	return nil
}

func (x *CapitalDistributionResponse) GetCapitalOut() *CapitalDistributionResponse_CapitalDistribution {
	if x != nil {
		return x.CapitalOut
	}
	return nil
}

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

	Symbols   []string    `protobuf:"bytes,1,rep,name=symbols,proto3" json:"symbols,omitempty"`
	CalcIndex []CalcIndex `protobuf:"varint,2,rep,packed,name=calc_index,json=calcIndex,proto3,enum=longbridge.quote.v1.CalcIndex" json:"calc_index,omitempty"`
}

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

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

func (*SecurityCalcQuoteRequest) ProtoMessage() {}

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

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

func (x *SecurityCalcQuoteRequest) GetSymbols() []string {
	if x != nil {
		return x.Symbols
	}
	return nil
}

func (x *SecurityCalcQuoteRequest) GetCalcIndex() []CalcIndex {
	if x != nil {
		return x.CalcIndex
	}
	return nil
}

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

	Symbol                string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	LastDone              string `protobuf:"bytes,2,opt,name=last_done,json=lastDone,proto3" json:"last_done,omitempty"`
	ChangeVal             string `protobuf:"bytes,3,opt,name=change_val,json=changeVal,proto3" json:"change_val,omitempty"`
	ChangeRate            string `protobuf:"bytes,4,opt,name=change_rate,json=changeRate,proto3" json:"change_rate,omitempty"`
	Volume                int64  `protobuf:"varint,5,opt,name=volume,proto3" json:"volume,omitempty"`
	Turnover              string `protobuf:"bytes,6,opt,name=turnover,proto3" json:"turnover,omitempty"`
	YtdChangeRate         string `protobuf:"bytes,7,opt,name=ytd_change_rate,json=ytdChangeRate,proto3" json:"ytd_change_rate,omitempty"`
	TurnoverRate          string `protobuf:"bytes,8,opt,name=turnover_rate,json=turnoverRate,proto3" json:"turnover_rate,omitempty"`
	TotalMarketValue      string `protobuf:"bytes,9,opt,name=total_market_value,json=totalMarketValue,proto3" json:"total_market_value,omitempty"`
	CapitalFlow           string `protobuf:"bytes,10,opt,name=capital_flow,json=capitalFlow,proto3" json:"capital_flow,omitempty"`
	Amplitude             string `protobuf:"bytes,11,opt,name=amplitude,proto3" json:"amplitude,omitempty"`
	VolumeRatio           string `protobuf:"bytes,12,opt,name=volume_ratio,json=volumeRatio,proto3" json:"volume_ratio,omitempty"`
	PeTtmRatio            string `protobuf:"bytes,13,opt,name=pe_ttm_ratio,json=peTtmRatio,proto3" json:"pe_ttm_ratio,omitempty"`
	PbRatio               string `protobuf:"bytes,14,opt,name=pb_ratio,json=pbRatio,proto3" json:"pb_ratio,omitempty"`
	DividendRatioTtm      string `protobuf:"bytes,15,opt,name=dividend_ratio_ttm,json=dividendRatioTtm,proto3" json:"dividend_ratio_ttm,omitempty"`
	FiveDayChangeRate     string `protobuf:"bytes,16,opt,name=five_day_change_rate,json=fiveDayChangeRate,proto3" json:"five_day_change_rate,omitempty"`
	TenDayChangeRate      string `protobuf:"bytes,17,opt,name=ten_day_change_rate,json=tenDayChangeRate,proto3" json:"ten_day_change_rate,omitempty"`
	HalfYearChangeRate    string `protobuf:"bytes,18,opt,name=half_year_change_rate,json=halfYearChangeRate,proto3" json:"half_year_change_rate,omitempty"`
	FiveMinutesChangeRate string `protobuf:"bytes,19,opt,name=five_minutes_change_rate,json=fiveMinutesChangeRate,proto3" json:"five_minutes_change_rate,omitempty"`
	ExpiryDate            string `protobuf:"bytes,20,opt,name=expiry_date,json=expiryDate,proto3" json:"expiry_date,omitempty"`
	StrikePrice           string `protobuf:"bytes,21,opt,name=strike_price,json=strikePrice,proto3" json:"strike_price,omitempty"`
	UpperStrikePrice      string `protobuf:"bytes,22,opt,name=upper_strike_price,json=upperStrikePrice,proto3" json:"upper_strike_price,omitempty"`
	LowerStrikePrice      string `protobuf:"bytes,23,opt,name=lower_strike_price,json=lowerStrikePrice,proto3" json:"lower_strike_price,omitempty"`
	OutstandingQty        int64  `protobuf:"varint,24,opt,name=outstanding_qty,json=outstandingQty,proto3" json:"outstanding_qty,omitempty"`
	OutstandingRatio      string `protobuf:"bytes,25,opt,name=outstanding_ratio,json=outstandingRatio,proto3" json:"outstanding_ratio,omitempty"`
	Premium               string `protobuf:"bytes,26,opt,name=premium,proto3" json:"premium,omitempty"`
	ItmOtm                string `protobuf:"bytes,27,opt,name=itm_otm,json=itmOtm,proto3" json:"itm_otm,omitempty"`
	ImpliedVolatility     string `protobuf:"bytes,28,opt,name=implied_volatility,json=impliedVolatility,proto3" json:"implied_volatility,omitempty"`
	WarrantDelta          string `protobuf:"bytes,29,opt,name=warrant_delta,json=warrantDelta,proto3" json:"warrant_delta,omitempty"`
	CallPrice             string `protobuf:"bytes,30,opt,name=call_price,json=callPrice,proto3" json:"call_price,omitempty"`
	ToCallPrice           string `protobuf:"bytes,31,opt,name=to_call_price,json=toCallPrice,proto3" json:"to_call_price,omitempty"`
	EffectiveLeverage     string `protobuf:"bytes,32,opt,name=effective_leverage,json=effectiveLeverage,proto3" json:"effective_leverage,omitempty"`
	LeverageRatio         string `protobuf:"bytes,33,opt,name=leverage_ratio,json=leverageRatio,proto3" json:"leverage_ratio,omitempty"`
	ConversionRatio       string `protobuf:"bytes,34,opt,name=conversion_ratio,json=conversionRatio,proto3" json:"conversion_ratio,omitempty"`
	BalancePoint          string `protobuf:"bytes,35,opt,name=balance_point,json=balancePoint,proto3" json:"balance_point,omitempty"`
	OpenInterest          int64  `protobuf:"varint,36,opt,name=open_interest,json=openInterest,proto3" json:"open_interest,omitempty"`
	Delta                 string `protobuf:"bytes,37,opt,name=delta,proto3" json:"delta,omitempty"`
	Gamma                 string `protobuf:"bytes,38,opt,name=gamma,proto3" json:"gamma,omitempty"`
	Theta                 string `protobuf:"bytes,39,opt,name=theta,proto3" json:"theta,omitempty"`
	Vega                  string `protobuf:"bytes,40,opt,name=vega,proto3" json:"vega,omitempty"`
	Rho                   string `protobuf:"bytes,41,opt,name=rho,proto3" json:"rho,omitempty"`
}

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

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

func (*SecurityCalcIndex) ProtoMessage() {}

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

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

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

func (x *SecurityCalcIndex) GetLastDone() string {
	if x != nil {
		return x.LastDone
	}
	return ""
}

func (x *SecurityCalcIndex) GetChangeVal() string {
	if x != nil {
		return x.ChangeVal
	}
	return ""
}

func (x *SecurityCalcIndex) GetChangeRate() string {
	if x != nil {
		return x.ChangeRate
	}
	return ""
}

func (x *SecurityCalcIndex) GetVolume() int64 {
	if x != nil {
		return x.Volume
	}
	return 0
}

func (x *SecurityCalcIndex) GetTurnover() string {
	if x != nil {
		return x.Turnover
	}
	return ""
}

func (x *SecurityCalcIndex) GetYtdChangeRate() string {
	if x != nil {
		return x.YtdChangeRate
	}
	return ""
}

func (x *SecurityCalcIndex) GetTurnoverRate() string {
	if x != nil {
		return x.TurnoverRate
	}
	return ""
}

func (x *SecurityCalcIndex) GetTotalMarketValue() string {
	if x != nil {
		return x.TotalMarketValue
	}
	return ""
}

func (x *SecurityCalcIndex) GetCapitalFlow() string {
	if x != nil {
		return x.CapitalFlow
	}
	return ""
}

func (x *SecurityCalcIndex) GetAmplitude() string {
	if x != nil {
		return x.Amplitude
	}
	return ""
}

func (x *SecurityCalcIndex) GetVolumeRatio() string {
	if x != nil {
		return x.VolumeRatio
	}
	return ""
}

func (x *SecurityCalcIndex) GetPeTtmRatio() string {
	if x != nil {
		return x.PeTtmRatio
	}
	return ""
}

func (x *SecurityCalcIndex) GetPbRatio() string {
	if x != nil {
		return x.PbRatio
	}
	return ""
}

func (x *SecurityCalcIndex) GetDividendRatioTtm() string {
	if x != nil {
		return x.DividendRatioTtm
	}
	return ""
}

func (x *SecurityCalcIndex) GetFiveDayChangeRate() string {
	if x != nil {
		return x.FiveDayChangeRate
	}
	return ""
}

func (x *SecurityCalcIndex) GetTenDayChangeRate() string {
	if x != nil {
		return x.TenDayChangeRate
	}
	return ""
}

func (x *SecurityCalcIndex) GetHalfYearChangeRate() string {
	if x != nil {
		return x.HalfYearChangeRate
	}
	return ""
}

func (x *SecurityCalcIndex) GetFiveMinutesChangeRate() string {
	if x != nil {
		return x.FiveMinutesChangeRate
	}
	return ""
}

func (x *SecurityCalcIndex) GetExpiryDate() string {
	if x != nil {
		return x.ExpiryDate
	}
	return ""
}

func (x *SecurityCalcIndex) GetStrikePrice() string {
	if x != nil {
		return x.StrikePrice
	}
	return ""
}

func (x *SecurityCalcIndex) GetUpperStrikePrice() string {
	if x != nil {
		return x.UpperStrikePrice
	}
	return ""
}

func (x *SecurityCalcIndex) GetLowerStrikePrice() string {
	if x != nil {
		return x.LowerStrikePrice
	}
	return ""
}

func (x *SecurityCalcIndex) GetOutstandingQty() int64 {
	if x != nil {
		return x.OutstandingQty
	}
	return 0
}

func (x *SecurityCalcIndex) GetOutstandingRatio() string {
	if x != nil {
		return x.OutstandingRatio
	}
	return ""
}

func (x *SecurityCalcIndex) GetPremium() string {
	if x != nil {
		return x.Premium
	}
	return ""
}

func (x *SecurityCalcIndex) GetItmOtm() string {
	if x != nil {
		return x.ItmOtm
	}
	return ""
}

func (x *SecurityCalcIndex) GetImpliedVolatility() string {
	if x != nil {
		return x.ImpliedVolatility
	}
	return ""
}

func (x *SecurityCalcIndex) GetWarrantDelta() string {
	if x != nil {
		return x.WarrantDelta
	}
	return ""
}

func (x *SecurityCalcIndex) GetCallPrice() string {
	if x != nil {
		return x.CallPrice
	}
	return ""
}

func (x *SecurityCalcIndex) GetToCallPrice() string {
	if x != nil {
		return x.ToCallPrice
	}
	return ""
}

func (x *SecurityCalcIndex) GetEffectiveLeverage() string {
	if x != nil {
		return x.EffectiveLeverage
	}
	return ""
}

func (x *SecurityCalcIndex) GetLeverageRatio() string {
	if x != nil {
		return x.LeverageRatio
	}
	return ""
}

func (x *SecurityCalcIndex) GetConversionRatio() string {
	if x != nil {
		return x.ConversionRatio
	}
	return ""
}

func (x *SecurityCalcIndex) GetBalancePoint() string {
	if x != nil {
		return x.BalancePoint
	}
	return ""
}

func (x *SecurityCalcIndex) GetOpenInterest() int64 {
	if x != nil {
		return x.OpenInterest
	}
	return 0
}

func (x *SecurityCalcIndex) GetDelta() string {
	if x != nil {
		return x.Delta
	}
	return ""
}

func (x *SecurityCalcIndex) GetGamma() string {
	if x != nil {
		return x.Gamma
	}
	return ""
}

func (x *SecurityCalcIndex) GetTheta() string {
	if x != nil {
		return x.Theta
	}
	return ""
}

func (x *SecurityCalcIndex) GetVega() string {
	if x != nil {
		return x.Vega
	}
	return ""
}

func (x *SecurityCalcIndex) GetRho() string {
	if x != nil {
		return x.Rho
	}
	return ""
}

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

	SecurityCalcIndex []*SecurityCalcIndex `protobuf:"bytes,1,rep,name=security_calc_index,json=securityCalcIndex,proto3" json:"security_calc_index,omitempty"`
}

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

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

func (*SecurityCalcQuoteResponse) ProtoMessage() {}

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

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

func (x *SecurityCalcQuoteResponse) GetSecurityCalcIndex() []*SecurityCalcIndex {
	if x != nil {
		return x.SecurityCalcIndex
	}
	return nil
}

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

	Symbol        string                                         `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Period        Period                                         `protobuf:"varint,2,opt,name=period,proto3,enum=longbridge.quote.v1.Period" json:"period,omitempty"`
	AdjustType    AdjustType                                     `protobuf:"varint,3,opt,name=adjust_type,json=adjustType,proto3,enum=longbridge.quote.v1.AdjustType" json:"adjust_type,omitempty"`
	QueryType     HistoryCandlestickQueryType                    `protobuf:"varint,4,opt,name=query_type,json=queryType,proto3,enum=longbridge.quote.v1.HistoryCandlestickQueryType" json:"query_type,omitempty"`
	OffsetRequest *SecurityHistoryCandlestickRequest_OffsetQuery `protobuf:"bytes,5,opt,name=offset_request,json=offsetRequest,proto3" json:"offset_request,omitempty"`
	DateRequest   *SecurityHistoryCandlestickRequest_DateQuery   `protobuf:"bytes,6,opt,name=date_request,json=dateRequest,proto3" json:"date_request,omitempty"`
	TradeSession  int32                                          `protobuf:"varint,7,opt,name=trade_session,json=tradeSession,proto3" json:"trade_session,omitempty"`
}

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

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

func (*SecurityHistoryCandlestickRequest) ProtoMessage() {}

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

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

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

func (x *SecurityHistoryCandlestickRequest) GetPeriod() Period {
	if x != nil {
		return x.Period
	}
	return Period_UNKNOWN_PERIOD
}

func (x *SecurityHistoryCandlestickRequest) GetAdjustType() AdjustType {
	if x != nil {
		return x.AdjustType
	}
	return AdjustType_NO_ADJUST
}

func (x *SecurityHistoryCandlestickRequest) GetQueryType() HistoryCandlestickQueryType {
	if x != nil {
		return x.QueryType
	}
	return HistoryCandlestickQueryType_UNKNOWN_QUERY_TYPE
}

func (x *SecurityHistoryCandlestickRequest) GetOffsetRequest() *SecurityHistoryCandlestickRequest_OffsetQuery {
	if x != nil {
		return x.OffsetRequest
	}
	return nil
}

func (x *SecurityHistoryCandlestickRequest) GetDateRequest() *SecurityHistoryCandlestickRequest_DateQuery {
	if x != nil {
		return x.DateRequest
	}
	return nil
}

func (x *SecurityHistoryCandlestickRequest) GetTradeSession() int32 {
	if x != nil {
		return x.TradeSession
	}
	return 0
}

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

	Language string `protobuf:"bytes,1,opt,name=language,proto3" json:"language,omitempty"`
}

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

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

func (*UserQuoteProfileRequest) ProtoMessage() {}

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

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

func (x *UserQuoteProfileRequest) GetLanguage() string {
	if x != nil {
		return x.Language
	}
	return ""
}

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

	Command Command `protobuf:"varint,1,opt,name=command,proto3,enum=longbridge.quote.v1.Command" json:"command,omitempty"`
	Limit   int32   `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"`
	Burst   int32   `protobuf:"varint,3,opt,name=burst,proto3" json:"burst,omitempty"`
}

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

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

func (*RateLimit) ProtoMessage() {}

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

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

func (x *RateLimit) GetCommand() Command {
	if x != nil {
		return x.Command
	}
	return Command_UNKNOWN_COMMAND
}

func (x *RateLimit) GetLimit() int32 {
	if x != nil {
		return x.Limit
	}
	return 0
}

func (x *RateLimit) GetBurst() int32 {
	if x != nil {
		return x.Burst
	}
	return 0
}

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

	// 按行情包描述
	ByPackageKey map[string]*UserQuoteLevelDetail_PackageDetail `protobuf:"bytes,1,rep,name=by_package_key,json=byPackageKey,proto3" json:"by_package_key,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// 按市场描述, 目前写死的, 仅有 US HK CN USOption(期权) 4个
	ByMarketCode map[string]*UserQuoteLevelDetail_MarketPackageDetail `protobuf:"bytes,2,rep,name=by_market_code,json=byMarketCode,proto3" json:"by_market_code,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

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

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

func (*UserQuoteLevelDetail) ProtoMessage() {}

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

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

func (x *UserQuoteLevelDetail) GetByPackageKey() map[string]*UserQuoteLevelDetail_PackageDetail {
	if x != nil {
		return x.ByPackageKey
	}
	return nil
}

func (x *UserQuoteLevelDetail) GetByMarketCode() map[string]*UserQuoteLevelDetail_MarketPackageDetail {
	if x != nil {
		return x.ByMarketCode
	}
	return nil
}

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

	MemberId int64 `protobuf:"varint,1,opt,name=member_id,json=memberId,proto3" json:"member_id,omitempty"`
	// 行情权限信息
	QuoteLevel string `protobuf:"bytes,2,opt,name=quote_level,json=quoteLevel,proto3" json:"quote_level,omitempty"`
	// 订阅数量限制
	SubscribeLimit int32 `protobuf:"varint,3,opt,name=subscribe_limit,json=subscribeLimit,proto3" json:"subscribe_limit,omitempty"`
	// 历史 k 线限制
	HistoryCandlestickLimit int32 `protobuf:"varint,4,opt,name=history_candlestick_limit,json=historyCandlestickLimit,proto3" json:"history_candlestick_limit,omitempty"`
	// command rate limit
	RateLimit []*RateLimit `protobuf:"bytes,5,rep,name=rate_limit,json=rateLimit,proto3" json:"rate_limit,omitempty"`
	// 用户等级详情
	QuoteLevelDetail *UserQuoteLevelDetail `protobuf:"bytes,6,opt,name=quote_level_detail,json=quoteLevelDetail,proto3" json:"quote_level_detail,omitempty"`
}

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

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

func (*UserQuoteProfileResponse) ProtoMessage() {}

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

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

func (x *UserQuoteProfileResponse) GetMemberId() int64 {
	if x != nil {
		return x.MemberId
	}
	return 0
}

func (x *UserQuoteProfileResponse) GetQuoteLevel() string {
	if x != nil {
		return x.QuoteLevel
	}
	return ""
}

func (x *UserQuoteProfileResponse) GetSubscribeLimit() int32 {
	if x != nil {
		return x.SubscribeLimit
	}
	return 0
}

func (x *UserQuoteProfileResponse) GetHistoryCandlestickLimit() int32 {
	if x != nil {
		return x.HistoryCandlestickLimit
	}
	return 0
}

func (x *UserQuoteProfileResponse) GetRateLimit() []*RateLimit {
	if x != nil {
		return x.RateLimit
	}
	return nil
}

func (x *UserQuoteProfileResponse) GetQuoteLevelDetail() *UserQuoteLevelDetail {
	if x != nil {
		return x.QuoteLevelDetail
	}
	return nil
}

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

	Inflow    string `protobuf:"bytes,1,opt,name=inflow,proto3" json:"inflow,omitempty"`
	Timestamp int64  `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
}

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

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

func (*CapitalFlowIntradayResponse_CapitalFlowLine) ProtoMessage() {}

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

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

func (x *CapitalFlowIntradayResponse_CapitalFlowLine) GetInflow() string {
	if x != nil {
		return x.Inflow
	}
	return ""
}

func (x *CapitalFlowIntradayResponse_CapitalFlowLine) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

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

	Large  string `protobuf:"bytes,1,opt,name=large,proto3" json:"large,omitempty"`
	Medium string `protobuf:"bytes,2,opt,name=medium,proto3" json:"medium,omitempty"`
	Small  string `protobuf:"bytes,3,opt,name=small,proto3" json:"small,omitempty"`
}

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

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

func (*CapitalDistributionResponse_CapitalDistribution) ProtoMessage() {}

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

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

func (x *CapitalDistributionResponse_CapitalDistribution) GetLarge() string {
	if x != nil {
		return x.Large
	}
	return ""
}

func (x *CapitalDistributionResponse_CapitalDistribution) GetMedium() string {
	if x != nil {
		return x.Medium
	}
	return ""
}

func (x *CapitalDistributionResponse_CapitalDistribution) GetSmall() string {
	if x != nil {
		return x.Small
	}
	return ""
}

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

	Direction Direction `protobuf:"varint,1,opt,name=direction,proto3,enum=longbridge.quote.v1.Direction" json:"direction,omitempty"`
	Date      string    `protobuf:"bytes,2,opt,name=date,proto3" json:"date,omitempty"`
	Minute    string    `protobuf:"bytes,3,opt,name=minute,proto3" json:"minute,omitempty"`
	Count     int32     `protobuf:"varint,4,opt,name=count,proto3" json:"count,omitempty"`
}

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

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

func (*SecurityHistoryCandlestickRequest_OffsetQuery) ProtoMessage() {}

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

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

func (x *SecurityHistoryCandlestickRequest_OffsetQuery) GetDirection() Direction {
	if x != nil {
		return x.Direction
	}
	return Direction_BACKWARD
}

func (x *SecurityHistoryCandlestickRequest_OffsetQuery) GetDate() string {
	if x != nil {
		return x.Date
	}
	return ""
}

func (x *SecurityHistoryCandlestickRequest_OffsetQuery) GetMinute() string {
	if x != nil {
		return x.Minute
	}
	return ""
}

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

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

	StartDate string `protobuf:"bytes,1,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"`
	EndDate   string `protobuf:"bytes,2,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"`
}

func (x *SecurityHistoryCandlestickRequest_DateQuery) Reset() {
	*x = SecurityHistoryCandlestickRequest_DateQuery{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[67]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*SecurityHistoryCandlestickRequest_DateQuery) ProtoMessage() {}

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

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

func (x *SecurityHistoryCandlestickRequest_DateQuery) GetStartDate() string {
	if x != nil {
		return x.StartDate
	}
	return ""
}

func (x *SecurityHistoryCandlestickRequest_DateQuery) GetEndDate() string {
	if x != nil {
		return x.EndDate
	}
	return ""
}

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

	// 行情包 Key
	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	// 行情包名称
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// 行情包描述, 根据入参 lang 适配多语言
	Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
	// 行情包生效开始时间 Unix 时间戳
	Start int64 `protobuf:"varint,5,opt,name=start,proto3" json:"start,omitempty"`
	// 行情包生效结束时间 Unix 时间戳
	End int64 `protobuf:"varint,6,opt,name=end,proto3" json:"end,omitempty"`
}

func (x *UserQuoteLevelDetail_PackageDetail) Reset() {
	*x = UserQuoteLevelDetail_PackageDetail{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[68]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UserQuoteLevelDetail_PackageDetail) ProtoMessage() {}

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

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

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

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

func (x *UserQuoteLevelDetail_PackageDetail) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *UserQuoteLevelDetail_PackageDetail) GetStart() int64 {
	if x != nil {
		return x.Start
	}
	return 0
}

func (x *UserQuoteLevelDetail_PackageDetail) GetEnd() int64 {
	if x != nil {
		return x.End
	}
	return 0
}

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

	Packages []*UserQuoteLevelDetail_PackageDetail `protobuf:"bytes,1,rep,name=packages,proto3" json:"packages,omitempty"`
	// 当一个包也没有时, 会有如下, 多语言的文案
	// `您没有访问该市场 Open API 行情的权限，如需请前往行情商店购买`
	WarningMsg string `protobuf:"bytes,4,opt,name=warning_msg,json=warningMsg,proto3" json:"warning_msg,omitempty"`
}

func (x *UserQuoteLevelDetail_MarketPackageDetail) Reset() {
	*x = UserQuoteLevelDetail_MarketPackageDetail{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[69]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UserQuoteLevelDetail_MarketPackageDetail) ProtoMessage() {}

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

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

func (x *UserQuoteLevelDetail_MarketPackageDetail) GetPackages() []*UserQuoteLevelDetail_PackageDetail {
	if x != nil {
		return x.Packages
	}
	return nil
}

func (x *UserQuoteLevelDetail_MarketPackageDetail) GetWarningMsg() string {
	if x != nil {
		return x.WarningMsg
	}
	return ""
}

var File_quote_api_proto protoreflect.FileDescriptor

var file_quote_api_proto_rawDesc = []byte{
	0x0a, 0x0f, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x12, 0x13, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75,
	0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x22, 0x29, 0x0a, 0x0f, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69,
	0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d,
	0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f,
	0x6c, 0x22, 0x2e, 0x0a, 0x14, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69,
	0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d,
	0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f,
	0x6c, 0x22, 0x67, 0x0a, 0x1a, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61,
	0x74, 0x69, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x49, 0x0a, 0x10, 0x73, 0x65, 0x63, 0x75, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x69,
	0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6c, 0x6f, 0x6e, 0x67,
	0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x73, 0x65, 0x63, 0x75,
	0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xfb, 0x03, 0x0a, 0x0a, 0x53,
	0x74, 0x61, 0x74, 0x69, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d,
	0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f,
	0x6c, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x63, 0x6e, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x61,
	0x6d, 0x65, 0x5f, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x61, 0x6d,
	0x65, 0x45, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x68, 0x6b, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x61, 0x6d, 0x65, 0x48, 0x6b, 0x12, 0x21, 0x0a, 0x0c,
	0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x65, 0x12,
	0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63,
	0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63,
	0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x6f, 0x74, 0x5f, 0x73,
	0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6c, 0x6f, 0x74, 0x53, 0x69,
	0x7a, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x68, 0x61, 0x72,
	0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53,
	0x68, 0x61, 0x72, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x69, 0x72, 0x63, 0x75, 0x6c, 0x61,
	0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x11, 0x63, 0x69, 0x72, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x68,
	0x61, 0x72, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x6b, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65,
	0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x68, 0x6b, 0x53, 0x68, 0x61, 0x72, 0x65,
	0x73, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x70, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
	0x65, 0x70, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x70, 0x73, 0x5f, 0x74, 0x74, 0x6d, 0x18, 0x0d,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x70, 0x73, 0x54, 0x74, 0x6d, 0x12, 0x10, 0x0a, 0x03,
	0x62, 0x70, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x62, 0x70, 0x73, 0x12, 0x25,
	0x0a, 0x0e, 0x64, 0x69, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x64, 0x5f, 0x79, 0x69, 0x65, 0x6c, 0x64,
	0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x69, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x64,
	0x59, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x74, 0x6f, 0x63, 0x6b, 0x5f, 0x64,
	0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05,
	0x52, 0x10, 0x73, 0x74, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76,
	0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x05, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x22, 0x5a, 0x0a, 0x15, 0x53, 0x65, 0x63, 0x75,
	0x72, 0x69, 0x74, 0x79, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x41, 0x0a, 0x0a, 0x73, 0x65, 0x63, 0x75, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64,
	0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x63, 0x75,
	0x72, 0x69, 0x74, 0x79, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x09, 0x73, 0x65, 0x63, 0x75, 0x51,
	0x75, 0x6f, 0x74, 0x65, 0x22, 0x9d, 0x04, 0x0a, 0x0d, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74,
	0x79, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1b,
	0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6e, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70,
	0x72, 0x65, 0x76, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x09, 0x70, 0x72, 0x65, 0x76, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6f, 0x70,
	0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x12, 0x12,
	0x0a, 0x04, 0x68, 0x69, 0x67, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x69,
	0x67, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x03, 0x6c, 0x6f, 0x77, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
	0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
	0x6d, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x75,
	0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x75,
	0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x43, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f,
	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c,
	0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e,
	0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0b,
	0x74, 0x72, 0x61, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x4b, 0x0a, 0x10, 0x70,
	0x72, 0x65, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x18,
	0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64,
	0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x50,
	0x6f, 0x73, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x0e, 0x70, 0x72, 0x65, 0x4d, 0x61, 0x72,
	0x6b, 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74,
	0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x18, 0x0c, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65,
	0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x50, 0x6f, 0x73,
	0x74, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x0f, 0x70, 0x6f, 0x73, 0x74, 0x4d, 0x61, 0x72, 0x6b,
	0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x12, 0x4b, 0x0a, 0x10, 0x6f, 0x76, 0x65, 0x72, 0x5f,
	0x6e, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71,
	0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x51,
	0x75, 0x6f, 0x74, 0x65, 0x52, 0x0e, 0x6f, 0x76, 0x65, 0x72, 0x4e, 0x69, 0x67, 0x68, 0x74, 0x51,
	0x75, 0x6f, 0x74, 0x65, 0x22, 0xc2, 0x01, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x50, 0x6f, 0x73, 0x74,
	0x51, 0x75, 0x6f, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x6f,
	0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x6f,
	0x6e, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
	0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x75, 0x72, 0x6e,
	0x6f, 0x76, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x75, 0x72, 0x6e,
	0x6f, 0x76, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, 0x67, 0x68, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x04, 0x68, 0x69, 0x67, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x77, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x77, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72,
	0x65, 0x76, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
	0x70, 0x72, 0x65, 0x76, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x22, 0x56, 0x0a, 0x13, 0x4f, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x3f, 0x0a, 0x0a, 0x73, 0x65, 0x63, 0x75, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x18, 0x01,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67,
	0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x09, 0x73, 0x65, 0x63, 0x75, 0x51, 0x75, 0x6f, 0x74,
	0x65, 0x22, 0xfa, 0x02, 0x0a, 0x0b, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x6f, 0x74,
	0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73,
	0x74, 0x5f, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61,
	0x73, 0x74, 0x44, 0x6f, 0x6e, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x63,
	0x6c, 0x6f, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x65, 0x76,
	0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, 0x67,
	0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x69, 0x67, 0x68, 0x12, 0x10, 0x0a,
	0x03, 0x6c, 0x6f, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x77, 0x12,
	0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x16, 0x0a,
	0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x76,
	0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65,
	0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65,
	0x72, 0x12, 0x43, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72,
	0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72,
	0x61, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x64, 0x65,
	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x46, 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e,
	0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65,
	0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64,
	0x52, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x22, 0xa1,
	0x03, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x12,
	0x2d, 0x0a, 0x12, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x5f, 0x76, 0x6f, 0x6c, 0x61, 0x74,
	0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6d, 0x70,
	0x6c, 0x69, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x23,
	0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72,
	0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x64, 0x61,
	0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79,
	0x44, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x5f, 0x70,
	0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69,
	0x6b, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x72,
	0x61, 0x63, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4d, 0x75,
	0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74,
	0x72, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a,
	0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x53, 0x69,
	0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18,
	0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x12, 0x33, 0x0a, 0x15, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x76,
	0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x14, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x6f, 0x6c, 0x61, 0x74,
	0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x79,
	0x69, 0x6e, 0x67, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x10, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x53, 0x79, 0x6d, 0x62,
	0x6f, 0x6c, 0x22, 0x58, 0x0a, 0x14, 0x57, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x51, 0x75, 0x6f,
	0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0a, 0x73, 0x65,
	0x63, 0x75, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21,
	0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x51, 0x75, 0x6f, 0x74,
	0x65, 0x52, 0x09, 0x73, 0x65, 0x63, 0x75, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x22, 0xfe, 0x02, 0x0a,
	0x0c, 0x57, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x12, 0x16, 0x0a,
	0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73,
	0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x6f,
	0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x6f,
	0x6e, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x65, 0x76, 0x43, 0x6c, 0x6f, 0x73,
	0x65, 0x12, 0x12, 0x0a, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x04, 0x6f, 0x70, 0x65, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, 0x67, 0x68, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x69, 0x67, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x77,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x77, 0x12, 0x1c, 0x0a, 0x09, 0x74,
	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09,
	0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c,
	0x75, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d,
	0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x09, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x43, 0x0a,
	0x0c, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65,
	0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x12, 0x49, 0x0a, 0x0e, 0x77, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x5f, 0x65, 0x78,
	0x74, 0x65, 0x6e, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x6f, 0x6e,
	0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x57, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x0d,
	0x77, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x22, 0xef, 0x03,
	0x0a, 0x0d, 0x57, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x12,
	0x2d, 0x0a, 0x12, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x5f, 0x76, 0x6f, 0x6c, 0x61, 0x74,
	0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6d, 0x70,
	0x6c, 0x69, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1f,
	0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x44, 0x61, 0x74, 0x65, 0x12,
	0x26, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x64, 0x61,
	0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x72,
	0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x6f, 0x75, 0x74, 0x73, 0x74,
	0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52,
	0x61, 0x74, 0x69, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64,
	0x69, 0x6e, 0x67, 0x5f, 0x71, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6f,
	0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x51, 0x74, 0x79, 0x12, 0x29, 0x0a,
	0x10, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x69,
	0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73,
	0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65,
	0x67, 0x6f, 0x72, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65,
	0x67, 0x6f, 0x72, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x5f, 0x70,
	0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69,
	0x6b, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x75, 0x70, 0x70, 0x65, 0x72,
	0x5f, 0x73, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x10, 0x75, 0x70, 0x70, 0x65, 0x72, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65,
	0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x73,
	0x74, 0x72, 0x69, 0x6b, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x10, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x50, 0x72,
	0x69, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x72, 0x69, 0x63,
	0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x50, 0x72, 0x69,
	0x63, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x79, 0x69, 0x6e, 0x67,
	0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x75,
	0x6e, 0x64, 0x65, 0x72, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x22,
	0x8b, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x65, 0x70, 0x74,
	0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d,
	0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f,
	0x6c, 0x12, 0x2c, 0x0a, 0x03, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a,
	0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x74, 0x68, 0x52, 0x03, 0x61, 0x73, 0x6b, 0x12,
	0x2c, 0x0a, 0x03, 0x62, 0x69, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6c,
	0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e,
	0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x74, 0x68, 0x52, 0x03, 0x62, 0x69, 0x64, 0x22, 0x6e, 0x0a,
	0x05, 0x44, 0x65, 0x70, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
	0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
	0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75,
	0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65,
	0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x22, 0xaf, 0x01,
	0x0a, 0x17, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72,
	0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d,
	0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f,
	0x6c, 0x12, 0x3d, 0x0a, 0x0b, 0x61, 0x73, 0x6b, 0x5f, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69,
	0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x72, 0x6f,
	0x6b, 0x65, 0x72, 0x73, 0x52, 0x0a, 0x61, 0x73, 0x6b, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73,
	0x12, 0x3d, 0x0a, 0x0b, 0x62, 0x69, 0x64, 0x5f, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73, 0x18,
	0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64,
	0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x72, 0x6f, 0x6b,
	0x65, 0x72, 0x73, 0x52, 0x0a, 0x62, 0x69, 0x64, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73, 0x22,
	0x44, 0x0a, 0x07, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f,
	0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6f,
	0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72,
	0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x62, 0x72, 0x6f, 0x6b,
	0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x82, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63,
	0x69, 0x70, 0x61, 0x6e, 0x74, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x73, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x1a, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63,
	0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x5f, 0x6e, 0x75, 0x6d,
	0x62, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x6f, 0x6e,
	0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f,
	0x52, 0x18, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x42, 0x72, 0x6f,
	0x6b, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0xc0, 0x01, 0x0a, 0x0f, 0x50,
	0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d,
	0x0a, 0x0a, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x05, 0x52, 0x09, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x2e, 0x0a,
	0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d,
	0x65, 0x5f, 0x63, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x61, 0x72, 0x74,
	0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x43, 0x6e, 0x12, 0x2e, 0x0a,
	0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d,
	0x65, 0x5f, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x61, 0x72, 0x74,
	0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x6e, 0x12, 0x2e, 0x0a,
	0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d,
	0x65, 0x5f, 0x68, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x61, 0x72, 0x74,
	0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x48, 0x6b, 0x22, 0x44, 0x0a,
	0x14, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x14, 0x0a,
	0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x22, 0x63, 0x0a, 0x15, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x54,
	0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06,
	0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79,
	0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x32, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x02,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67,
	0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65,
	0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x22, 0xd8, 0x01, 0x0a, 0x05, 0x54, 0x72, 0x61,
	0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75,
	0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65,
	0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1d,
	0x0a, 0x0a, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x09, 0x74, 0x72, 0x61, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a,
	0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x0d, 0x74,
	0x72, 0x61, 0x64, 0x65, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e,
	0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x53, 0x65,
	0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x64, 0x65, 0x53, 0x65, 0x73, 0x73,
	0x69, 0x6f, 0x6e, 0x22, 0x56, 0x0a, 0x17, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x49,
	0x6e, 0x74, 0x72, 0x61, 0x64, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16,
	0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f,
	0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x74,
	0x72, 0x61, 0x64, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x63, 0x0a, 0x18, 0x53,
	0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x64, 0x61, 0x79, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f,
	0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12,
	0x2f, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19,
	0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x65, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x65, 0x73,
	0x22, 0x8b, 0x01, 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69,
	0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12,
	0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x16, 0x0a,
	0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x76,
	0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65,
	0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65,
	0x72, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x76, 0x67, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0xe6,
	0x01, 0x0a, 0x1a, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x6c,
	0x65, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a,
	0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73,
	0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x33, 0x0a, 0x06, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64,
	0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x69,
	0x6f, 0x64, 0x52, 0x06, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74,
	0x12, 0x40, 0x0a, 0x0b, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64,
	0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x6a, 0x75,
	0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x54, 0x79,
	0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x73, 0x65, 0x73, 0x73,
	0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x64, 0x65,
	0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x7b, 0x0a, 0x1b, 0x53, 0x65, 0x63, 0x75, 0x72,
	0x69, 0x74, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x44,
	0x0a, 0x0c, 0x63, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x18, 0x02,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67,
	0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x64, 0x6c,
	0x65, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x52, 0x0c, 0x63, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x74,
	0x69, 0x63, 0x6b, 0x73, 0x22, 0xf7, 0x01, 0x0a, 0x0b, 0x43, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x73,
	0x74, 0x69, 0x63, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6f, 0x70,
	0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x12, 0x10,
	0x0a, 0x03, 0x6c, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x77,
	0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, 0x67, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
	0x68, 0x69, 0x67, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08,
	0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65,
	0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d,
	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x46, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f,
	0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e,
	0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65,
	0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
	0x52, 0x0c, 0x74, 0x72, 0x61, 0x64, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3e,
	0x0a, 0x1b, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x44, 0x61, 0x74,
	0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a,
	0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x44, 0x61, 0x74, 0x65, 0x22, 0x5b,
	0x0a, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x44, 0x61, 0x74,
	0x65, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78,
	0x70, 0x69, 0x72, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x44, 0x61, 0x74, 0x65, 0x22, 0x75, 0x0a, 0x21, 0x4f,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x53, 0x74,
	0x72, 0x69, 0x6b, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x50, 0x0a, 0x11, 0x73, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65,
	0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x6f,
	0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66,
	0x6f, 0x52, 0x0f, 0x73, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x49, 0x6e,
	0x66, 0x6f, 0x22, 0x83, 0x01, 0x0a, 0x0f, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x50, 0x72, 0x69,
	0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0b,
	0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0a, 0x63, 0x61, 0x6c, 0x6c, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1d, 0x0a,
	0x0a, 0x70, 0x75, 0x74, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x09, 0x70, 0x75, 0x74, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1a, 0x0a, 0x08,
	0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08,
	0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x22, 0x56, 0x0a, 0x12, 0x49, 0x73, 0x73, 0x75,
	0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40,
	0x0a, 0x0b, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65,
	0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72,
	0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f,
	0x22, 0x67, 0x0a, 0x0a, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e,
	0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17,
	0x0a, 0x07, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x63, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x61, 0x6d, 0x65, 0x5f,
	0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x61, 0x6d, 0x65, 0x45, 0x6e,
	0x12, 0x17, 0x0a, 0x07, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x68, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x06, 0x6e, 0x61, 0x6d, 0x65, 0x48, 0x6b, 0x22, 0x96, 0x01, 0x0a, 0x18, 0x57, 0x61,
	0x72, 0x72, 0x61, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x46,
	0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64,
	0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74,
	0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61,
	0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61,
	0x67, 0x65, 0x22, 0x8a, 0x02, 0x0a, 0x0c, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x6f, 0x72, 0x74, 0x5f, 0x62, 0x79, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x6f, 0x72, 0x74, 0x42, 0x79, 0x12, 0x1d, 0x0a, 0x0a,
	0x73, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x09, 0x73, 0x6f, 0x72, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73,
	0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x0a, 0x73, 0x6f, 0x72, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1d, 0x0a, 0x0a,
	0x73, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x09, 0x73, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74,
	0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12,
	0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52,
	0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72,
	0x79, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x65, 0x78,
	0x70, 0x69, 0x72, 0x79, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x63,
	0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x70, 0x72,
	0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22,
	0x83, 0x01, 0x0a, 0x19, 0x57, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65,
	0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a,
	0x0c, 0x77, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65,
	0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72,
	0x57, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x0b, 0x77, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x74,
	0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c,
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xcf, 0x06, 0x0a, 0x0d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72,
	0x57, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f,
	0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12,
	0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
	0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x6f, 0x6e, 0x65,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6e, 0x65,
	0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74,
	0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x56, 0x61, 0x6c,
	0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x75, 0x72, 0x6e,
	0x6f, 0x76, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x75, 0x72, 0x6e,
	0x6f, 0x76, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x64,
	0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72,
	0x79, 0x44, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x5f,
	0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x72,
	0x69, 0x6b, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x75, 0x70, 0x70, 0x65,
	0x72, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0a,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x75, 0x70, 0x70, 0x65, 0x72, 0x53, 0x74, 0x72, 0x69, 0x6b,
	0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f,
	0x73, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x10, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x50,
	0x72, 0x69, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64,
	0x69, 0x6e, 0x67, 0x5f, 0x71, 0x74, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f,
	0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x51, 0x74, 0x79, 0x12, 0x2b, 0x0a,
	0x11, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61,
	0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72,
	0x65, 0x6d, 0x69, 0x75, 0x6d, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x65,
	0x6d, 0x69, 0x75, 0x6d, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x74, 0x6d, 0x5f, 0x6f, 0x74, 0x6d, 0x18,
	0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x74, 0x6d, 0x4f, 0x74, 0x6d, 0x12, 0x2d, 0x0a,
	0x12, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x5f, 0x76, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6c,
	0x69, 0x74, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6d, 0x70, 0x6c, 0x69,
	0x65, 0x64, 0x56, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05,
	0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6c,
	0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65,
	0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x50, 0x72, 0x69, 0x63,
	0x65, 0x12, 0x22, 0x0a, 0x0d, 0x74, 0x6f, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x72, 0x69,
	0x63, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x6f, 0x43, 0x61, 0x6c, 0x6c,
	0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69,
	0x76, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x11, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x65, 0x76, 0x65,
	0x72, 0x61, 0x67, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65,
	0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x65,
	0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x29, 0x0a, 0x10, 0x63,
	0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18,
	0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63,
	0x65, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62,
	0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x75, 0x0a, 0x19, 0x4d, 0x61, 0x72, 0x6b, 0x65,
	0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x14, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x74,
	0x72, 0x61, 0x64, 0x65, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e,
	0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x54,
	0x72, 0x61, 0x64, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x52, 0x12, 0x6d, 0x61, 0x72, 0x6b,
	0x65, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x72,
	0x0a, 0x11, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x50, 0x65, 0x72,
	0x69, 0x6f, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, 0x45, 0x0a, 0x0d, 0x74,
	0x72, 0x61, 0x64, 0x65, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e,
	0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x50, 0x65,
	0x72, 0x69, 0x6f, 0x64, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x64, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69,
	0x6f, 0x6e, 0x22, 0x8b, 0x01, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x64, 0x65, 0x50, 0x65, 0x72, 0x69,
	0x6f, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x65, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x62, 0x65, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a,
	0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x64,
	0x65, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x21, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f,
	0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69,
	0x6f, 0x6e, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x64, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
	0x22, 0x15, 0x0a, 0x13, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x53, 0x0a, 0x14, 0x53, 0x75, 0x62, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x3b, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71,
	0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x4c,
	0x69, 0x73, 0x74, 0x52, 0x07, 0x73, 0x75, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x5e, 0x0a, 0x0b,
	0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73,
	0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d,
	0x62, 0x6f, 0x6c, 0x12, 0x37, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
	0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64,
	0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x54,
	0x79, 0x70, 0x65, 0x52, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x22, 0x87, 0x01, 0x0a,
	0x10, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28,
	0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x37, 0x0a, 0x08, 0x73, 0x75, 0x62,
	0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6c, 0x6f,
	0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79,
	0x70, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x70,
	0x75, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x46, 0x69, 0x72,
	0x73, 0x74, 0x50, 0x75, 0x73, 0x68, 0x22, 0x82, 0x01, 0x0a, 0x12, 0x55, 0x6e, 0x73, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a,
	0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x73,
	0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x37, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70,
	0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72,
	0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75,
	0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b,
	0x0a, 0x09, 0x75, 0x6e, 0x73, 0x75, 0x62, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x08, 0x75, 0x6e, 0x73, 0x75, 0x62, 0x41, 0x6c, 0x6c, 0x22, 0x15, 0x0a, 0x13, 0x55,
	0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x22, 0xfc, 0x03, 0x0a, 0x09, 0x50, 0x75, 0x73, 0x68, 0x51, 0x75, 0x6f, 0x74, 0x65,
	0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75,
	0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75,
	0x65, 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x6f, 0x6e,
	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6e,
	0x65, 0x12, 0x12, 0x0a, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x04, 0x6f, 0x70, 0x65, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, 0x67, 0x68, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x69, 0x67, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x77,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x77, 0x12, 0x1c, 0x0a, 0x09, 0x74,
	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09,
	0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c,
	0x75, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d,
	0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x09, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x43, 0x0a,
	0x0c, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65,
	0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x12, 0x46, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x73, 0x65, 0x73, 0x73,
	0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x6f, 0x6e, 0x67,
	0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x54, 0x72, 0x61, 0x64, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x74, 0x72,
	0x61, 0x64, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x75,
	0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d,
	0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x75, 0x72,
	0x6e, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x75, 0x72,
	0x72, 0x65, 0x6e, 0x74, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x33, 0x0a, 0x03,
	0x74, 0x61, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6c, 0x6f, 0x6e, 0x67,
	0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x50, 0x75, 0x73, 0x68, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x54, 0x61, 0x67, 0x52, 0x03, 0x74, 0x61,
	0x67, 0x22, 0x9b, 0x01, 0x0a, 0x09, 0x50, 0x75, 0x73, 0x68, 0x44, 0x65, 0x70, 0x74, 0x68, 0x12,
	0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65,
	0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65,
	0x6e, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x03, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x1a, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75,
	0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x74, 0x68, 0x52, 0x03, 0x61, 0x73,
	0x6b, 0x12, 0x2c, 0x0a, 0x03, 0x62, 0x69, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a,
	0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x74, 0x68, 0x52, 0x03, 0x62, 0x69, 0x64, 0x22,
	0xbf, 0x01, 0x0a, 0x0b, 0x50, 0x75, 0x73, 0x68, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73, 0x12,
	0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65,
	0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65,
	0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x61, 0x73, 0x6b, 0x5f, 0x62, 0x72, 0x6f, 0x6b, 0x65,
	0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62,
	0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42,
	0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73, 0x52, 0x0a, 0x61, 0x73, 0x6b, 0x42, 0x72, 0x6f, 0x6b, 0x65,
	0x72, 0x73, 0x12, 0x3d, 0x0a, 0x0b, 0x62, 0x69, 0x64, 0x5f, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72,
	0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72,
	0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x72,
	0x6f, 0x6b, 0x65, 0x72, 0x73, 0x52, 0x0a, 0x62, 0x69, 0x64, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72,
	0x73, 0x22, 0x71, 0x0a, 0x09, 0x50, 0x75, 0x73, 0x68, 0x54, 0x72, 0x61, 0x64, 0x65, 0x12, 0x16,
	0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e,
	0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e,
	0x63, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x1a, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71,
	0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x05, 0x74,
	0x72, 0x61, 0x64, 0x65, 0x22, 0x61, 0x0a, 0x15, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x54, 0x72,
	0x61, 0x64, 0x65, 0x44, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a,
	0x06, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d,
	0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x62, 0x65, 0x67, 0x5f, 0x64, 0x61, 0x79,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x65, 0x67, 0x44, 0x61, 0x79, 0x12, 0x17,
	0x0a, 0x07, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x79, 0x22, 0x5b, 0x0a, 0x16, 0x4d, 0x61, 0x72, 0x6b, 0x65,
	0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x64, 0x61, 0x79, 0x18, 0x01,
	0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x79, 0x12, 0x24,
	0x0a, 0x0e, 0x68, 0x61, 0x6c, 0x66, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x64, 0x61, 0x79,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x68, 0x61, 0x6c, 0x66, 0x54, 0x72, 0x61, 0x64,
	0x65, 0x44, 0x61, 0x79, 0x22, 0x34, 0x0a, 0x1a, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x46,
	0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x64, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x22, 0xee, 0x01, 0x0a, 0x1b, 0x43,
	0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x64,
	0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79,
	0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62,
	0x6f, 0x6c, 0x12, 0x6e, 0x0a, 0x12, 0x63, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x5f, 0x66, 0x6c,
	0x6f, 0x77, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40,
	0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x77,
	0x49, 0x6e, 0x74, 0x72, 0x61, 0x64, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x2e, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x6e, 0x65,
	0x52, 0x10, 0x63, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x6e,
	0x65, 0x73, 0x1a, 0x47, 0x0a, 0x0f, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x46, 0x6c, 0x6f,
	0x77, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6e, 0x66, 0x6c, 0x6f, 0x77, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x6e, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x1c, 0x0a,
	0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xfa, 0x02, 0x0a, 0x1b,
	0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
	0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73,
	0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d,
	0x62, 0x6f, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
	0x70, 0x12, 0x63, 0x0a, 0x0a, 0x63, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64,
	0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x70, 0x69,
	0x74, 0x61, 0x6c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x44,
	0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x63, 0x61, 0x70,
	0x69, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x12, 0x65, 0x0a, 0x0b, 0x63, 0x61, 0x70, 0x69, 0x74, 0x61,
	0x6c, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x6c, 0x6f,
	0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62,
	0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x61,
	0x70, 0x69, 0x74, 0x61, 0x6c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x0a, 0x63, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x1a, 0x59, 0x0a,
	0x13, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75,
	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65,
	0x64, 0x69, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x64, 0x69,
	0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x05, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x22, 0x73, 0x0a, 0x18, 0x53, 0x65, 0x63, 0x75,
	0x72, 0x69, 0x74, 0x79, 0x43, 0x61, 0x6c, 0x63, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x73, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x73, 0x12, 0x3d,
	0x0a, 0x0a, 0x63, 0x61, 0x6c, 0x63, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x03,
	0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e,
	0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x49, 0x6e, 0x64,
	0x65, 0x78, 0x52, 0x09, 0x63, 0x61, 0x6c, 0x63, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xc5, 0x0b,
	0x0a, 0x11, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x43, 0x61, 0x6c, 0x63, 0x49, 0x6e,
	0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x6c,
	0x61, 0x73, 0x74, 0x5f, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x6c, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6e, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e,
	0x67, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x56, 0x61, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67,
	0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75,
	0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65,
	0x12, 0x1a, 0x0a, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0f,
	0x79, 0x74, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x79, 0x74, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65,
	0x52, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72,
	0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x75, 0x72,
	0x6e, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x6f, 0x74,
	0x61, 0x6c, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
	0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x61, 0x72, 0x6b,
	0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x69, 0x74,
	0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63,
	0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x6d,
	0x70, 0x6c, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61,
	0x6d, 0x70, 0x6c, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x6f, 0x6c, 0x75,
	0x6d, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
	0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x20, 0x0a, 0x0c, 0x70,
	0x65, 0x5f, 0x74, 0x74, 0x6d, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x0d, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0a, 0x70, 0x65, 0x54, 0x74, 0x6d, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x19, 0x0a,
	0x08, 0x70, 0x62, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x07, 0x70, 0x62, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x69, 0x76, 0x69,
	0x64, 0x65, 0x6e, 0x64, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x5f, 0x74, 0x74, 0x6d, 0x18, 0x0f,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x64, 0x69, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x64, 0x52, 0x61,
	0x74, 0x69, 0x6f, 0x54, 0x74, 0x6d, 0x12, 0x2f, 0x0a, 0x14, 0x66, 0x69, 0x76, 0x65, 0x5f, 0x64,
	0x61, 0x79, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x10,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x66, 0x69, 0x76, 0x65, 0x44, 0x61, 0x79, 0x43, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x13, 0x74, 0x65, 0x6e, 0x5f, 0x64,
	0x61, 0x79, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x11,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x74, 0x65, 0x6e, 0x44, 0x61, 0x79, 0x43, 0x68, 0x61, 0x6e,
	0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x31, 0x0a, 0x15, 0x68, 0x61, 0x6c, 0x66, 0x5f, 0x79,
	0x65, 0x61, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18,
	0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x68, 0x61, 0x6c, 0x66, 0x59, 0x65, 0x61, 0x72, 0x43,
	0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x66, 0x69, 0x76,
	0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
	0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x66, 0x69, 0x76,
	0x65, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61,
	0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x64, 0x61, 0x74,
	0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x44,
	0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x5f, 0x70, 0x72,
	0x69, 0x63, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6b,
	0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f,
	0x73, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x16, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x10, 0x75, 0x70, 0x70, 0x65, 0x72, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x50,
	0x72, 0x69, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x73, 0x74,
	0x72, 0x69, 0x6b, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x10, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x50, 0x72, 0x69,
	0x63, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e,
	0x67, 0x5f, 0x71, 0x74, 0x79, 0x18, 0x18, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6f, 0x75, 0x74,
	0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x51, 0x74, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x6f,
	0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64,
	0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x65, 0x6d,
	0x69, 0x75, 0x6d, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x65, 0x6d, 0x69,
	0x75, 0x6d, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x74, 0x6d, 0x5f, 0x6f, 0x74, 0x6d, 0x18, 0x1b, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x74, 0x6d, 0x4f, 0x74, 0x6d, 0x12, 0x2d, 0x0a, 0x12, 0x69,
	0x6d, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x5f, 0x76, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6c, 0x69, 0x74,
	0x79, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x65, 0x64,
	0x56, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x77, 0x61,
	0x72, 0x72, 0x61, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x1d, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0c, 0x77, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12,
	0x1d, 0x0a, 0x0a, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x1e, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x22,
	0x0a, 0x0d, 0x74, 0x6f, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18,
	0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x6f, 0x43, 0x61, 0x6c, 0x6c, 0x50, 0x72, 0x69,
	0x63, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f,
	0x6c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11,
	0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67,
	0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x61,
	0x74, 0x69, 0x6f, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x65, 0x76, 0x65, 0x72,
	0x61, 0x67, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x76,
	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x22, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61,
	0x74, 0x69, 0x6f, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x70,
	0x6f, 0x69, 0x6e, 0x74, 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x61, 0x6c, 0x61,
	0x6e, 0x63, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x6e,
	0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x18, 0x24, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x0c, 0x6f, 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a,
	0x05, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65,
	0x6c, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x61, 0x6d, 0x6d, 0x61, 0x18, 0x26, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x05, 0x67, 0x61, 0x6d, 0x6d, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x68, 0x65,
	0x74, 0x61, 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x68, 0x65, 0x74, 0x61, 0x12,
	0x12, 0x0a, 0x04, 0x76, 0x65, 0x67, 0x61, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x76,
	0x65, 0x67, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x68, 0x6f, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x03, 0x72, 0x68, 0x6f, 0x22, 0x73, 0x0a, 0x19, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74,
	0x79, 0x43, 0x61, 0x6c, 0x63, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x63,
	0x61, 0x6c, 0x63, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x26, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f,
	0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x43, 0x61,
	0x6c, 0x63, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x11, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74,
	0x79, 0x43, 0x61, 0x6c, 0x63, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xcf, 0x05, 0x0a, 0x21, 0x53,
	0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x43, 0x61,
	0x6e, 0x64, 0x6c, 0x65, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x33, 0x0a, 0x06, 0x70, 0x65, 0x72, 0x69,
	0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62,
	0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50,
	0x65, 0x72, 0x69, 0x6f, 0x64, 0x52, 0x06, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x40, 0x0a,
	0x0b, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e,
	0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x54,
	0x79, 0x70, 0x65, 0x52, 0x0a, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x4f, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65,
	0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
	0x79, 0x43, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x51, 0x75, 0x65, 0x72,
	0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65,
	0x12, 0x69, 0x0a, 0x0e, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62,
	0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53,
	0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x43, 0x61,
	0x6e, 0x64, 0x6c, 0x65, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x2e, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x0d, 0x6f, 0x66,
	0x66, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x63, 0x0a, 0x0c, 0x64,
	0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x40, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71,
	0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79,
	0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x74, 0x69,
	0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x51, 0x75,
	0x65, 0x72, 0x79, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f,
	0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x64, 0x65, 0x53, 0x65,
	0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x8d, 0x01, 0x0a, 0x0b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74,
	0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x3c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62,
	0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44,
	0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x75, 0x74,
	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x12,
	0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x45, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65,
	0x72, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74,
	0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x22, 0x35, 0x0a, 0x17,
	0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75,
	0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75,
	0x61, 0x67, 0x65, 0x22, 0x6f, 0x0a, 0x09, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74,
	0x12, 0x36, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0e, 0x32, 0x1c, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71,
	0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52,
	0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69,
	0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x14,
	0x0a, 0x05, 0x62, 0x75, 0x72, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x62,
	0x75, 0x72, 0x73, 0x74, 0x22, 0xe5, 0x05, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f,
	0x74, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x61, 0x0a,
	0x0e, 0x62, 0x79, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64,
	0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72,
	0x51, 0x75, 0x6f, 0x74, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
	0x2e, 0x42, 0x79, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x45, 0x6e, 0x74,
	0x72, 0x79, 0x52, 0x0c, 0x62, 0x79, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79,
	0x12, 0x61, 0x0a, 0x0e, 0x62, 0x79, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f,
	0x64, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62,
	0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55,
	0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x44, 0x65, 0x74,
	0x61, 0x69, 0x6c, 0x2e, 0x42, 0x79, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x62, 0x79, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x43,
	0x6f, 0x64, 0x65, 0x1a, 0x7f, 0x0a, 0x0d, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x44, 0x65,
	0x74, 0x61, 0x69, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05,
	0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61,
	0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x03, 0x65, 0x6e, 0x64, 0x1a, 0x8b, 0x01, 0x0a, 0x13, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x50,
	0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x53, 0x0a, 0x08,
	0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37,
	0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x4c, 0x65,
	0x76, 0x65, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67,
	0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65,
	0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x73, 0x67,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x4d,
	0x73, 0x67, 0x1a, 0x78, 0x0a, 0x11, 0x42, 0x79, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4b,
	0x65, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4d, 0x0a, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62,
	0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55,
	0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x44, 0x65, 0x74,
	0x61, 0x69, 0x6c, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69,
	0x6c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x7e, 0x0a, 0x11,
	0x42, 0x79, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
	0x6b, 0x65, 0x79, 0x12, 0x53, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e,
	0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f,
	0x74, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x4d, 0x61,
	0x72, 0x6b, 0x65, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69,
	0x6c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xd5, 0x02, 0x0a,
	0x18, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c,
	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x6d,
	0x62, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x65,
	0x6d, 0x62, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f,
	0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x71, 0x75, 0x6f,
	0x74, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x75, 0x62, 0x73, 0x63,
	0x72, 0x69, 0x62, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x0e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74,
	0x12, 0x3a, 0x0a, 0x19, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x63, 0x61, 0x6e, 0x64,
	0x6c, 0x65, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x17, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x43, 0x61, 0x6e, 0x64,
	0x6c, 0x65, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x3d, 0x0a, 0x0a,
	0x72, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x1e, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75,
	0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74,
	0x52, 0x09, 0x72, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x57, 0x0a, 0x12, 0x71,
	0x75, 0x6f, 0x74, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69,
	0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72,
	0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73,
	0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x44, 0x65, 0x74, 0x61,
	0x69, 0x6c, 0x52, 0x10, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x44, 0x65,
	0x74, 0x61, 0x69, 0x6c, 0x2a, 0xe2, 0x05, 0x0a, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64,
	0x12, 0x13, 0x0a, 0x0f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d,
	0x41, 0x4e, 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x48, 0x45, 0x41, 0x52, 0x54, 0x5f, 0x42,
	0x45, 0x41, 0x54, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x55, 0x54, 0x48, 0x10, 0x02, 0x12,
	0x0d, 0x0a, 0x09, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x10, 0x03, 0x12, 0x19,
	0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x65,
	0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x53,
	0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x6e,
	0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x10, 0x07, 0x12, 0x1a, 0x0a, 0x16, 0x51,
	0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x50,
	0x65, 0x72, 0x69, 0x6f, 0x64, 0x10, 0x08, 0x12, 0x17, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79,
	0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x79, 0x10, 0x09,
	0x12, 0x1b, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74,
	0x79, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0x0a, 0x12, 0x16, 0x0a,
	0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x51, 0x75,
	0x6f, 0x74, 0x65, 0x10, 0x0b, 0x12, 0x14, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x10, 0x0c, 0x12, 0x15, 0x0a, 0x11, 0x51,
	0x75, 0x65, 0x72, 0x79, 0x57, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x65,
	0x10, 0x0d, 0x12, 0x0e, 0x0a, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x70, 0x74, 0x68,
	0x10, 0x0e, 0x12, 0x10, 0x0a, 0x0c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x72, 0x6f, 0x6b, 0x65,
	0x72, 0x73, 0x10, 0x0f, 0x12, 0x1d, 0x0a, 0x19, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72,
	0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x49, 0x64,
	0x73, 0x10, 0x10, 0x12, 0x0e, 0x0a, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x72, 0x61, 0x64,
	0x65, 0x10, 0x11, 0x12, 0x11, 0x0a, 0x0d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x74, 0x72,
	0x61, 0x64, 0x61, 0x79, 0x10, 0x12, 0x12, 0x14, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43,
	0x61, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x10, 0x13, 0x12, 0x18, 0x0a, 0x14,
	0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e,
	0x44, 0x61, 0x74, 0x65, 0x10, 0x14, 0x12, 0x22, 0x0a, 0x1e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x53, 0x74,
	0x72, 0x69, 0x6b, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0x15, 0x12, 0x1a, 0x0a, 0x16, 0x51, 0x75,
	0x65, 0x72, 0x79, 0x57, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72,
	0x49, 0x6e, 0x66, 0x6f, 0x10, 0x16, 0x12, 0x1a, 0x0a, 0x16, 0x51, 0x75, 0x65, 0x72, 0x79, 0x57,
	0x61, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74,
	0x10, 0x17, 0x12, 0x1c, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x61, 0x70, 0x69, 0x74,
	0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x64, 0x61, 0x79, 0x10, 0x18,
	0x12, 0x20, 0x0a, 0x1c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c,
	0x46, 0x6c, 0x6f, 0x77, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e,
	0x10, 0x19, 0x12, 0x1a, 0x0a, 0x16, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x63, 0x75, 0x72,
	0x69, 0x74, 0x79, 0x43, 0x61, 0x6c, 0x63, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x10, 0x1a, 0x12, 0x1b,
	0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x43, 0x61,
	0x6e, 0x64, 0x6c, 0x65, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x10, 0x1b, 0x12, 0x11, 0x0a, 0x0d, 0x50,
	0x75, 0x73, 0x68, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x10, 0x65, 0x12, 0x11,
	0x0a, 0x0d, 0x50, 0x75, 0x73, 0x68, 0x44, 0x65, 0x70, 0x74, 0x68, 0x44, 0x61, 0x74, 0x61, 0x10,
	0x66, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x75, 0x73, 0x68, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73,
	0x44, 0x61, 0x74, 0x61, 0x10, 0x67, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x75, 0x73, 0x68, 0x54, 0x72,
	0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x61, 0x10, 0x68, 0x2a, 0xc2, 0x01, 0x0a, 0x0b, 0x54, 0x72,
	0x61, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x4f, 0x52,
	0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x48, 0x41, 0x4c, 0x54, 0x45, 0x44, 0x10,
	0x01, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x4c, 0x49, 0x53, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12,
	0x08, 0x0a, 0x04, 0x46, 0x55, 0x53, 0x45, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x52, 0x45,
	0x50, 0x41, 0x52, 0x45, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x43,
	0x4f, 0x44, 0x45, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x54,
	0x4f, 0x5f, 0x42, 0x45, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x45, 0x44, 0x10, 0x06, 0x12, 0x15, 0x0a,
	0x11, 0x53, 0x50, 0x4c, 0x49, 0x54, 0x5f, 0x53, 0x54, 0x4f, 0x43, 0x4b, 0x5f, 0x48, 0x41, 0x4c,
	0x54, 0x53, 0x10, 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10,
	0x08, 0x12, 0x18, 0x0a, 0x14, 0x57, 0x41, 0x52, 0x52, 0x41, 0x4e, 0x54, 0x5f, 0x50, 0x52, 0x45,
	0x50, 0x41, 0x52, 0x45, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x09, 0x12, 0x11, 0x0a, 0x0d, 0x53,
	0x55, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x44, 0x45, 0x10, 0x0a, 0x2a, 0x54,
	0x0a, 0x0c, 0x54, 0x72, 0x61, 0x64, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x10,
	0x0a, 0x0c, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x44, 0x45, 0x10, 0x00,
	0x12, 0x0d, 0x0a, 0x09, 0x50, 0x52, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x44, 0x45, 0x10, 0x01, 0x12,
	0x0e, 0x0a, 0x0a, 0x50, 0x4f, 0x53, 0x54, 0x5f, 0x54, 0x52, 0x41, 0x44, 0x45, 0x10, 0x02, 0x12,
	0x13, 0x0a, 0x0f, 0x4f, 0x56, 0x45, 0x52, 0x4e, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x54, 0x52, 0x41,
	0x44, 0x45, 0x10, 0x03, 0x2a, 0x2f, 0x0a, 0x0a, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x54, 0x79,
	0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x5f, 0x41, 0x44, 0x4a, 0x55, 0x53, 0x54, 0x10,
	0x00, 0x12, 0x12, 0x0a, 0x0e, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x5f, 0x41, 0x44, 0x4a,
	0x55, 0x53, 0x54, 0x10, 0x01, 0x2a, 0xbb, 0x02, 0x0a, 0x06, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64,
	0x12, 0x12, 0x0a, 0x0e, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x50, 0x45, 0x52, 0x49,
	0x4f, 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x4e, 0x45, 0x5f, 0x4d, 0x49, 0x4e, 0x55,
	0x54, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x57, 0x4f, 0x5f, 0x4d, 0x49, 0x4e, 0x55,
	0x54, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x48, 0x52, 0x45, 0x45, 0x5f, 0x4d, 0x49,
	0x4e, 0x55, 0x54, 0x45, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x49, 0x56, 0x45, 0x5f, 0x4d,
	0x49, 0x4e, 0x55, 0x54, 0x45, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x45, 0x4e, 0x5f, 0x4d,
	0x49, 0x4e, 0x55, 0x54, 0x45, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x46, 0x49, 0x46, 0x54, 0x45,
	0x45, 0x4e, 0x5f, 0x4d, 0x49, 0x4e, 0x55, 0x54, 0x45, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54,
	0x57, 0x45, 0x4e, 0x54, 0x59, 0x5f, 0x4d, 0x49, 0x4e, 0x55, 0x54, 0x45, 0x10, 0x14, 0x12, 0x11,
	0x0a, 0x0d, 0x54, 0x48, 0x49, 0x52, 0x54, 0x59, 0x5f, 0x4d, 0x49, 0x4e, 0x55, 0x54, 0x45, 0x10,
	0x1e, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x4f, 0x52, 0x54, 0x59, 0x5f, 0x46, 0x49, 0x56, 0x45, 0x5f,
	0x4d, 0x49, 0x4e, 0x55, 0x54, 0x45, 0x10, 0x2d, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x49, 0x58, 0x54,
	0x59, 0x5f, 0x4d, 0x49, 0x4e, 0x55, 0x54, 0x45, 0x10, 0x3c, 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x57,
	0x4f, 0x5f, 0x48, 0x4f, 0x55, 0x52, 0x10, 0x78, 0x12, 0x0f, 0x0a, 0x0a, 0x54, 0x48, 0x52, 0x45,
	0x45, 0x5f, 0x48, 0x4f, 0x55, 0x52, 0x10, 0xb4, 0x01, 0x12, 0x0e, 0x0a, 0x09, 0x46, 0x4f, 0x55,
	0x52, 0x5f, 0x48, 0x4f, 0x55, 0x52, 0x10, 0xf0, 0x01, 0x12, 0x08, 0x0a, 0x03, 0x44, 0x41, 0x59,
	0x10, 0xe8, 0x07, 0x12, 0x09, 0x0a, 0x04, 0x57, 0x45, 0x45, 0x4b, 0x10, 0xd0, 0x0f, 0x12, 0x0a,
	0x0a, 0x05, 0x4d, 0x4f, 0x4e, 0x54, 0x48, 0x10, 0xb8, 0x17, 0x12, 0x0c, 0x0a, 0x07, 0x51, 0x55,
	0x41, 0x52, 0x54, 0x45, 0x52, 0x10, 0xac, 0x1b, 0x12, 0x09, 0x0a, 0x04, 0x59, 0x45, 0x41, 0x52,
	0x10, 0xa0, 0x1f, 0x2a, 0x49, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10,
	0x0a, 0x0c, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00,
	0x12, 0x09, 0x0a, 0x05, 0x51, 0x55, 0x4f, 0x54, 0x45, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x44,
	0x45, 0x50, 0x54, 0x48, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x52, 0x4f, 0x4b, 0x45, 0x52,
	0x53, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x52, 0x41, 0x44, 0x45, 0x10, 0x04, 0x2a, 0x23,
	0x0a, 0x0c, 0x50, 0x75, 0x73, 0x68, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x54, 0x61, 0x67, 0x12, 0x0a,
	0x0a, 0x06, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x45, 0x6f,
	0x64, 0x10, 0x01, 0x2a, 0x96, 0x09, 0x0a, 0x09, 0x43, 0x61, 0x6c, 0x63, 0x49, 0x6e, 0x64, 0x65,
	0x78, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x41, 0x4c, 0x43, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, 0x55,
	0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x41, 0x4c, 0x43,
	0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x44, 0x4f, 0x4e, 0x45, 0x10,
	0x01, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x41, 0x4c, 0x43, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, 0x43,
	0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x56, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x43,
	0x41, 0x4c, 0x43, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f,
	0x52, 0x41, 0x54, 0x45, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x41, 0x4c, 0x43, 0x49, 0x4e,
	0x44, 0x45, 0x58, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12,
	0x43, 0x41, 0x4c, 0x43, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, 0x54, 0x55, 0x52, 0x4e, 0x4f, 0x56,
	0x45, 0x52, 0x10, 0x05, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x41, 0x4c, 0x43, 0x49, 0x4e, 0x44, 0x45,
	0x58, 0x5f, 0x59, 0x54, 0x44, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x52, 0x41, 0x54,
	0x45, 0x10, 0x06, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x41, 0x4c, 0x43, 0x49, 0x4e, 0x44, 0x45, 0x58,
	0x5f, 0x54, 0x55, 0x52, 0x4e, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x10, 0x07,
	0x12, 0x20, 0x0a, 0x1c, 0x43, 0x41, 0x4c, 0x43, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, 0x54, 0x4f,
	0x54, 0x41, 0x4c, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x54, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45,
	0x10, 0x08, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x41, 0x4c, 0x43, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f,
	0x43, 0x41, 0x50, 0x49, 0x54, 0x41, 0x4c, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x09, 0x12, 0x17,
	0x0a, 0x13, 0x43, 0x41, 0x4c, 0x43, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, 0x41, 0x4d, 0x50, 0x4c,
	0x49, 0x54, 0x55, 0x44, 0x45, 0x10, 0x0a, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x41, 0x4c, 0x43, 0x49,
	0x4e, 0x44, 0x45, 0x58, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x52, 0x41, 0x54, 0x49,
	0x4f, 0x10, 0x0b, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x41, 0x4c, 0x43, 0x49, 0x4e, 0x44, 0x45, 0x58,
	0x5f, 0x50, 0x45, 0x5f, 0x54, 0x54, 0x4d, 0x5f, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x10, 0x0c, 0x12,
	0x16, 0x0a, 0x12, 0x43, 0x41, 0x4c, 0x43, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, 0x50, 0x42, 0x5f,
	0x52, 0x41, 0x54, 0x49, 0x4f, 0x10, 0x0d, 0x12, 0x20, 0x0a, 0x1c, 0x43, 0x41, 0x4c, 0x43, 0x49,
	0x4e, 0x44, 0x45, 0x58, 0x5f, 0x44, 0x49, 0x56, 0x49, 0x44, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x41,
	0x54, 0x49, 0x4f, 0x5f, 0x54, 0x54, 0x4d, 0x10, 0x0e, 0x12, 0x22, 0x0a, 0x1e, 0x43, 0x41, 0x4c,
	0x43, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, 0x46, 0x49, 0x56, 0x45, 0x5f, 0x44, 0x41, 0x59, 0x5f,
	0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x10, 0x0f, 0x12, 0x21, 0x0a,
	0x1d, 0x43, 0x41, 0x4c, 0x43, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, 0x54, 0x45, 0x4e, 0x5f, 0x44,
	0x41, 0x59, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x10, 0x10,
	0x12, 0x23, 0x0a, 0x1f, 0x43, 0x41, 0x4c, 0x43, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, 0x48, 0x41,
	0x4c, 0x46, 0x5f, 0x59, 0x45, 0x41, 0x52, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x52,
	0x41, 0x54, 0x45, 0x10, 0x11, 0x12, 0x26, 0x0a, 0x22, 0x43, 0x41, 0x4c, 0x43, 0x49, 0x4e, 0x44,
	0x45, 0x58, 0x5f, 0x46, 0x49, 0x56, 0x45, 0x5f, 0x4d, 0x49, 0x4e, 0x55, 0x54, 0x45, 0x53, 0x5f,
	0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x10, 0x12, 0x12, 0x19, 0x0a,
	0x15, 0x43, 0x41, 0x4c, 0x43, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, 0x45, 0x58, 0x50, 0x49, 0x52,
	0x59, 0x5f, 0x44, 0x41, 0x54, 0x45, 0x10, 0x13, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x41, 0x4c, 0x43,
	0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4b, 0x45, 0x5f, 0x50, 0x52, 0x49,
	0x43, 0x45, 0x10, 0x14, 0x12, 0x20, 0x0a, 0x1c, 0x43, 0x41, 0x4c, 0x43, 0x49, 0x4e, 0x44, 0x45,
	0x58, 0x5f, 0x55, 0x50, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4b, 0x45, 0x5f, 0x50,
	0x52, 0x49, 0x43, 0x45, 0x10, 0x15, 0x12, 0x20, 0x0a, 0x1c, 0x43, 0x41, 0x4c, 0x43, 0x49, 0x4e,
	0x44, 0x45, 0x58, 0x5f, 0x4c, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4b, 0x45,
	0x5f, 0x50, 0x52, 0x49, 0x43, 0x45, 0x10, 0x16, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x41, 0x4c, 0x43,
	0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, 0x4f, 0x55, 0x54, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x49, 0x4e,
	0x47, 0x5f, 0x51, 0x54, 0x59, 0x10, 0x17, 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x41, 0x4c, 0x43, 0x49,
	0x4e, 0x44, 0x45, 0x58, 0x5f, 0x4f, 0x55, 0x54, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x49, 0x4e, 0x47,
	0x5f, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x10, 0x18, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x41, 0x4c, 0x43,
	0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x55, 0x4d, 0x10, 0x19, 0x12,
	0x15, 0x0a, 0x11, 0x43, 0x41, 0x4c, 0x43, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, 0x49, 0x54, 0x4d,
	0x5f, 0x4f, 0x54, 0x4d, 0x10, 0x1a, 0x12, 0x20, 0x0a, 0x1c, 0x43, 0x41, 0x4c, 0x43, 0x49, 0x4e,
	0x44, 0x45, 0x58, 0x5f, 0x49, 0x4d, 0x50, 0x4c, 0x49, 0x45, 0x44, 0x5f, 0x56, 0x4f, 0x4c, 0x41,
	0x54, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x10, 0x1b, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x41, 0x4c, 0x43,
	0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, 0x57, 0x41, 0x52, 0x52, 0x41, 0x4e, 0x54, 0x5f, 0x44, 0x45,
	0x4c, 0x54, 0x41, 0x10, 0x1c, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x41, 0x4c, 0x43, 0x49, 0x4e, 0x44,
	0x45, 0x58, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x5f, 0x50, 0x52, 0x49, 0x43, 0x45, 0x10, 0x1d, 0x12,
	0x1b, 0x0a, 0x17, 0x43, 0x41, 0x4c, 0x43, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, 0x54, 0x4f, 0x5f,
	0x43, 0x41, 0x4c, 0x4c, 0x5f, 0x50, 0x52, 0x49, 0x43, 0x45, 0x10, 0x1e, 0x12, 0x20, 0x0a, 0x1c,
	0x43, 0x41, 0x4c, 0x43, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, 0x45, 0x46, 0x46, 0x45, 0x43, 0x54,
	0x49, 0x56, 0x45, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x52, 0x41, 0x47, 0x45, 0x10, 0x1f, 0x12, 0x1c,
	0x0a, 0x18, 0x43, 0x41, 0x4c, 0x43, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, 0x4c, 0x45, 0x56, 0x45,
	0x52, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x10, 0x20, 0x12, 0x1e, 0x0a, 0x1a,
	0x43, 0x41, 0x4c, 0x43, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, 0x43, 0x4f, 0x4e, 0x56, 0x45, 0x52,
	0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x10, 0x21, 0x12, 0x1b, 0x0a, 0x17,
	0x43, 0x41, 0x4c, 0x43, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, 0x42, 0x41, 0x4c, 0x41, 0x4e, 0x43,
	0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x10, 0x22, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x41, 0x4c,
	0x43, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x5f, 0x49, 0x4e, 0x54, 0x45,
	0x52, 0x45, 0x53, 0x54, 0x10, 0x23, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x41, 0x4c, 0x43, 0x49, 0x4e,
	0x44, 0x45, 0x58, 0x5f, 0x44, 0x45, 0x4c, 0x54, 0x41, 0x10, 0x24, 0x12, 0x13, 0x0a, 0x0f, 0x43,
	0x41, 0x4c, 0x43, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, 0x47, 0x41, 0x4d, 0x4d, 0x41, 0x10, 0x25,
	0x12, 0x13, 0x0a, 0x0f, 0x43, 0x41, 0x4c, 0x43, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, 0x54, 0x48,
	0x45, 0x54, 0x41, 0x10, 0x26, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x41, 0x4c, 0x43, 0x49, 0x4e, 0x44,
	0x45, 0x58, 0x5f, 0x56, 0x45, 0x47, 0x41, 0x10, 0x27, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x41, 0x4c,
	0x43, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, 0x52, 0x48, 0x4f, 0x10, 0x28, 0x2a, 0x5d, 0x0a, 0x1b,
	0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x74, 0x69,
	0x63, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x55,
	0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50,
	0x45, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x42, 0x59, 0x5f,
	0x4f, 0x46, 0x46, 0x53, 0x45, 0x54, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x51, 0x55, 0x45, 0x52,
	0x59, 0x5f, 0x42, 0x59, 0x5f, 0x44, 0x41, 0x54, 0x45, 0x10, 0x02, 0x2a, 0x26, 0x0a, 0x09, 0x44,
	0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x41, 0x43, 0x4b,
	0x57, 0x41, 0x52, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52,
	0x44, 0x10, 0x01, 0x42, 0xcf, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x6c, 0x6f, 0x6e, 0x67,
	0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x42,
	0x08, 0x41, 0x70, 0x69, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3c, 0x67, 0x69, 0x74,
	0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64,
	0x67, 0x65, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x62, 0x75, 0x66, 0x73, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x71, 0x75, 0x6f, 0x74,
	0x65, 0x3b, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x4c, 0x51, 0x58, 0xaa,
	0x02, 0x13, 0x4c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x51, 0x75, 0x6f,
	0x74, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x4c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64,
	0x67, 0x65, 0x5c, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x4c, 0x6f,
	0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5c, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x5c, 0x56,
	0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15,
	0x4c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x3a, 0x3a, 0x51, 0x75, 0x6f, 0x74,
	0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_quote_api_proto_rawDescOnce sync.Once
	file_quote_api_proto_rawDescData = file_quote_api_proto_rawDesc
)

func file_quote_api_proto_rawDescGZIP() []byte {
	file_quote_api_proto_rawDescOnce.Do(func() {
		file_quote_api_proto_rawDescData = protoimpl.X.CompressGZIP(file_quote_api_proto_rawDescData)
	})
	return file_quote_api_proto_rawDescData
}

var file_quote_api_proto_enumTypes = make([]protoimpl.EnumInfo, 10)
var file_quote_api_proto_msgTypes = make([]protoimpl.MessageInfo, 72)
var file_quote_api_proto_goTypes = []interface{}{
	(Command)(0),                                            // 0: longbridge.quote.v1.Command
	(TradeStatus)(0),                                        // 1: longbridge.quote.v1.TradeStatus
	(TradeSession)(0),                                       // 2: longbridge.quote.v1.TradeSession
	(AdjustType)(0),                                         // 3: longbridge.quote.v1.AdjustType
	(Period)(0),                                             // 4: longbridge.quote.v1.Period
	(SubType)(0),                                            // 5: longbridge.quote.v1.SubType
	(PushQuoteTag)(0),                                       // 6: longbridge.quote.v1.PushQuoteTag
	(CalcIndex)(0),                                          // 7: longbridge.quote.v1.CalcIndex
	(HistoryCandlestickQueryType)(0),                        // 8: longbridge.quote.v1.HistoryCandlestickQueryType
	(Direction)(0),                                          // 9: longbridge.quote.v1.Direction
	(*SecurityRequest)(nil),                                 // 10: longbridge.quote.v1.SecurityRequest
	(*MultiSecurityRequest)(nil),                            // 11: longbridge.quote.v1.MultiSecurityRequest
	(*SecurityStaticInfoResponse)(nil),                      // 12: longbridge.quote.v1.SecurityStaticInfoResponse
	(*StaticInfo)(nil),                                      // 13: longbridge.quote.v1.StaticInfo
	(*SecurityQuoteResponse)(nil),                           // 14: longbridge.quote.v1.SecurityQuoteResponse
	(*SecurityQuote)(nil),                                   // 15: longbridge.quote.v1.SecurityQuote
	(*PrePostQuote)(nil),                                    // 16: longbridge.quote.v1.PrePostQuote
	(*OptionQuoteResponse)(nil),                             // 17: longbridge.quote.v1.OptionQuoteResponse
	(*OptionQuote)(nil),                                     // 18: longbridge.quote.v1.OptionQuote
	(*OptionExtend)(nil),                                    // 19: longbridge.quote.v1.OptionExtend
	(*WarrantQuoteResponse)(nil),                            // 20: longbridge.quote.v1.WarrantQuoteResponse
	(*WarrantQuote)(nil),                                    // 21: longbridge.quote.v1.WarrantQuote
	(*WarrantExtend)(nil),                                   // 22: longbridge.quote.v1.WarrantExtend
	(*SecurityDepthResponse)(nil),                           // 23: longbridge.quote.v1.SecurityDepthResponse
	(*Depth)(nil),                                           // 24: longbridge.quote.v1.Depth
	(*SecurityBrokersResponse)(nil),                         // 25: longbridge.quote.v1.SecurityBrokersResponse
	(*Brokers)(nil),                                         // 26: longbridge.quote.v1.Brokers
	(*ParticipantBrokerIdsResponse)(nil),                    // 27: longbridge.quote.v1.ParticipantBrokerIdsResponse
	(*ParticipantInfo)(nil),                                 // 28: longbridge.quote.v1.ParticipantInfo
	(*SecurityTradeRequest)(nil),                            // 29: longbridge.quote.v1.SecurityTradeRequest
	(*SecurityTradeResponse)(nil),                           // 30: longbridge.quote.v1.SecurityTradeResponse
	(*Trade)(nil),                                           // 31: longbridge.quote.v1.Trade
	(*SecurityIntradayRequest)(nil),                         // 32: longbridge.quote.v1.SecurityIntradayRequest
	(*SecurityIntradayResponse)(nil),                        // 33: longbridge.quote.v1.SecurityIntradayResponse
	(*Line)(nil),                                            // 34: longbridge.quote.v1.Line
	(*SecurityCandlestickRequest)(nil),                      // 35: longbridge.quote.v1.SecurityCandlestickRequest
	(*SecurityCandlestickResponse)(nil),                     // 36: longbridge.quote.v1.SecurityCandlestickResponse
	(*Candlestick)(nil),                                     // 37: longbridge.quote.v1.Candlestick
	(*OptionChainDateListResponse)(nil),                     // 38: longbridge.quote.v1.OptionChainDateListResponse
	(*OptionChainDateStrikeInfoRequest)(nil),                // 39: longbridge.quote.v1.OptionChainDateStrikeInfoRequest
	(*OptionChainDateStrikeInfoResponse)(nil),               // 40: longbridge.quote.v1.OptionChainDateStrikeInfoResponse
	(*StrikePriceInfo)(nil),                                 // 41: longbridge.quote.v1.StrikePriceInfo
	(*IssuerInfoResponse)(nil),                              // 42: longbridge.quote.v1.IssuerInfoResponse
	(*IssuerInfo)(nil),                                      // 43: longbridge.quote.v1.IssuerInfo
	(*WarrantFilterListRequest)(nil),                        // 44: longbridge.quote.v1.WarrantFilterListRequest
	(*FilterConfig)(nil),                                    // 45: longbridge.quote.v1.FilterConfig
	(*WarrantFilterListResponse)(nil),                       // 46: longbridge.quote.v1.WarrantFilterListResponse
	(*FilterWarrant)(nil),                                   // 47: longbridge.quote.v1.FilterWarrant
	(*MarketTradePeriodResponse)(nil),                       // 48: longbridge.quote.v1.MarketTradePeriodResponse
	(*MarketTradePeriod)(nil),                               // 49: longbridge.quote.v1.MarketTradePeriod
	(*TradePeriod)(nil),                                     // 50: longbridge.quote.v1.TradePeriod
	(*SubscriptionRequest)(nil),                             // 51: longbridge.quote.v1.SubscriptionRequest
	(*SubscriptionResponse)(nil),                            // 52: longbridge.quote.v1.SubscriptionResponse
	(*SubTypeList)(nil),                                     // 53: longbridge.quote.v1.SubTypeList
	(*SubscribeRequest)(nil),                                // 54: longbridge.quote.v1.SubscribeRequest
	(*UnsubscribeRequest)(nil),                              // 55: longbridge.quote.v1.UnsubscribeRequest
	(*UnsubscribeResponse)(nil),                             // 56: longbridge.quote.v1.UnsubscribeResponse
	(*PushQuote)(nil),                                       // 57: longbridge.quote.v1.PushQuote
	(*PushDepth)(nil),                                       // 58: longbridge.quote.v1.PushDepth
	(*PushBrokers)(nil),                                     // 59: longbridge.quote.v1.PushBrokers
	(*PushTrade)(nil),                                       // 60: longbridge.quote.v1.PushTrade
	(*MarketTradeDayRequest)(nil),                           // 61: longbridge.quote.v1.MarketTradeDayRequest
	(*MarketTradeDayResponse)(nil),                          // 62: longbridge.quote.v1.MarketTradeDayResponse
	(*CapitalFlowIntradayRequest)(nil),                      // 63: longbridge.quote.v1.CapitalFlowIntradayRequest
	(*CapitalFlowIntradayResponse)(nil),                     // 64: longbridge.quote.v1.CapitalFlowIntradayResponse
	(*CapitalDistributionResponse)(nil),                     // 65: longbridge.quote.v1.CapitalDistributionResponse
	(*SecurityCalcQuoteRequest)(nil),                        // 66: longbridge.quote.v1.SecurityCalcQuoteRequest
	(*SecurityCalcIndex)(nil),                               // 67: longbridge.quote.v1.SecurityCalcIndex
	(*SecurityCalcQuoteResponse)(nil),                       // 68: longbridge.quote.v1.SecurityCalcQuoteResponse
	(*SecurityHistoryCandlestickRequest)(nil),               // 69: longbridge.quote.v1.SecurityHistoryCandlestickRequest
	(*UserQuoteProfileRequest)(nil),                         // 70: longbridge.quote.v1.UserQuoteProfileRequest
	(*RateLimit)(nil),                                       // 71: longbridge.quote.v1.RateLimit
	(*UserQuoteLevelDetail)(nil),                            // 72: longbridge.quote.v1.UserQuoteLevelDetail
	(*UserQuoteProfileResponse)(nil),                        // 73: longbridge.quote.v1.UserQuoteProfileResponse
	(*CapitalFlowIntradayResponse_CapitalFlowLine)(nil),     // 74: longbridge.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine
	(*CapitalDistributionResponse_CapitalDistribution)(nil), // 75: longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution
	(*SecurityHistoryCandlestickRequest_OffsetQuery)(nil),   // 76: longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery
	(*SecurityHistoryCandlestickRequest_DateQuery)(nil),     // 77: longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery
	(*UserQuoteLevelDetail_PackageDetail)(nil),              // 78: longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail
	(*UserQuoteLevelDetail_MarketPackageDetail)(nil),        // 79: longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail
	nil, // 80: longbridge.quote.v1.UserQuoteLevelDetail.ByPackageKeyEntry
	nil, // 81: longbridge.quote.v1.UserQuoteLevelDetail.ByMarketCodeEntry
}
var file_quote_api_proto_depIdxs = []int32{
	13, // 0: longbridge.quote.v1.SecurityStaticInfoResponse.secu_static_info:type_name -> longbridge.quote.v1.StaticInfo
	15, // 1: longbridge.quote.v1.SecurityQuoteResponse.secu_quote:type_name -> longbridge.quote.v1.SecurityQuote
	1,  // 2: longbridge.quote.v1.SecurityQuote.trade_status:type_name -> longbridge.quote.v1.TradeStatus
	16, // 3: longbridge.quote.v1.SecurityQuote.pre_market_quote:type_name -> longbridge.quote.v1.PrePostQuote
	16, // 4: longbridge.quote.v1.SecurityQuote.post_market_quote:type_name -> longbridge.quote.v1.PrePostQuote
	16, // 5: longbridge.quote.v1.SecurityQuote.over_night_quote:type_name -> longbridge.quote.v1.PrePostQuote
	18, // 6: longbridge.quote.v1.OptionQuoteResponse.secu_quote:type_name -> longbridge.quote.v1.OptionQuote
	1,  // 7: longbridge.quote.v1.OptionQuote.trade_status:type_name -> longbridge.quote.v1.TradeStatus
	19, // 8: longbridge.quote.v1.OptionQuote.option_extend:type_name -> longbridge.quote.v1.OptionExtend
	21, // 9: longbridge.quote.v1.WarrantQuoteResponse.secu_quote:type_name -> longbridge.quote.v1.WarrantQuote
	1,  // 10: longbridge.quote.v1.WarrantQuote.trade_status:type_name -> longbridge.quote.v1.TradeStatus
	22, // 11: longbridge.quote.v1.WarrantQuote.warrant_extend:type_name -> longbridge.quote.v1.WarrantExtend
	24, // 12: longbridge.quote.v1.SecurityDepthResponse.ask:type_name -> longbridge.quote.v1.Depth
	24, // 13: longbridge.quote.v1.SecurityDepthResponse.bid:type_name -> longbridge.quote.v1.Depth
	26, // 14: longbridge.quote.v1.SecurityBrokersResponse.ask_brokers:type_name -> longbridge.quote.v1.Brokers
	26, // 15: longbridge.quote.v1.SecurityBrokersResponse.bid_brokers:type_name -> longbridge.quote.v1.Brokers
	28, // 16: longbridge.quote.v1.ParticipantBrokerIdsResponse.participant_broker_numbers:type_name -> longbridge.quote.v1.ParticipantInfo
	31, // 17: longbridge.quote.v1.SecurityTradeResponse.trades:type_name -> longbridge.quote.v1.Trade
	2,  // 18: longbridge.quote.v1.Trade.trade_session:type_name -> longbridge.quote.v1.TradeSession
	34, // 19: longbridge.quote.v1.SecurityIntradayResponse.lines:type_name -> longbridge.quote.v1.Line
	4,  // 20: longbridge.quote.v1.SecurityCandlestickRequest.period:type_name -> longbridge.quote.v1.Period
	3,  // 21: longbridge.quote.v1.SecurityCandlestickRequest.adjust_type:type_name -> longbridge.quote.v1.AdjustType
	37, // 22: longbridge.quote.v1.SecurityCandlestickResponse.candlesticks:type_name -> longbridge.quote.v1.Candlestick
	2,  // 23: longbridge.quote.v1.Candlestick.trade_session:type_name -> longbridge.quote.v1.TradeSession
	41, // 24: longbridge.quote.v1.OptionChainDateStrikeInfoResponse.strike_price_info:type_name -> longbridge.quote.v1.StrikePriceInfo
	43, // 25: longbridge.quote.v1.IssuerInfoResponse.issuer_info:type_name -> longbridge.quote.v1.IssuerInfo
	45, // 26: longbridge.quote.v1.WarrantFilterListRequest.filter_config:type_name -> longbridge.quote.v1.FilterConfig
	47, // 27: longbridge.quote.v1.WarrantFilterListResponse.warrant_list:type_name -> longbridge.quote.v1.FilterWarrant
	49, // 28: longbridge.quote.v1.MarketTradePeriodResponse.market_trade_session:type_name -> longbridge.quote.v1.MarketTradePeriod
	50, // 29: longbridge.quote.v1.MarketTradePeriod.trade_session:type_name -> longbridge.quote.v1.TradePeriod
	2,  // 30: longbridge.quote.v1.TradePeriod.trade_session:type_name -> longbridge.quote.v1.TradeSession
	53, // 31: longbridge.quote.v1.SubscriptionResponse.sub_list:type_name -> longbridge.quote.v1.SubTypeList
	5,  // 32: longbridge.quote.v1.SubTypeList.sub_type:type_name -> longbridge.quote.v1.SubType
	5,  // 33: longbridge.quote.v1.SubscribeRequest.sub_type:type_name -> longbridge.quote.v1.SubType
	5,  // 34: longbridge.quote.v1.UnsubscribeRequest.sub_type:type_name -> longbridge.quote.v1.SubType
	1,  // 35: longbridge.quote.v1.PushQuote.trade_status:type_name -> longbridge.quote.v1.TradeStatus
	2,  // 36: longbridge.quote.v1.PushQuote.trade_session:type_name -> longbridge.quote.v1.TradeSession
	6,  // 37: longbridge.quote.v1.PushQuote.tag:type_name -> longbridge.quote.v1.PushQuoteTag
	24, // 38: longbridge.quote.v1.PushDepth.ask:type_name -> longbridge.quote.v1.Depth
	24, // 39: longbridge.quote.v1.PushDepth.bid:type_name -> longbridge.quote.v1.Depth
	26, // 40: longbridge.quote.v1.PushBrokers.ask_brokers:type_name -> longbridge.quote.v1.Brokers
	26, // 41: longbridge.quote.v1.PushBrokers.bid_brokers:type_name -> longbridge.quote.v1.Brokers
	31, // 42: longbridge.quote.v1.PushTrade.trade:type_name -> longbridge.quote.v1.Trade
	74, // 43: longbridge.quote.v1.CapitalFlowIntradayResponse.capital_flow_lines:type_name -> longbridge.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine
	75, // 44: longbridge.quote.v1.CapitalDistributionResponse.capital_in:type_name -> longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution
	75, // 45: longbridge.quote.v1.CapitalDistributionResponse.capital_out:type_name -> longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution
	7,  // 46: longbridge.quote.v1.SecurityCalcQuoteRequest.calc_index:type_name -> longbridge.quote.v1.CalcIndex
	67, // 47: longbridge.quote.v1.SecurityCalcQuoteResponse.security_calc_index:type_name -> longbridge.quote.v1.SecurityCalcIndex
	4,  // 48: longbridge.quote.v1.SecurityHistoryCandlestickRequest.period:type_name -> longbridge.quote.v1.Period
	3,  // 49: longbridge.quote.v1.SecurityHistoryCandlestickRequest.adjust_type:type_name -> longbridge.quote.v1.AdjustType
	8,  // 50: longbridge.quote.v1.SecurityHistoryCandlestickRequest.query_type:type_name -> longbridge.quote.v1.HistoryCandlestickQueryType
	76, // 51: longbridge.quote.v1.SecurityHistoryCandlestickRequest.offset_request:type_name -> longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery
	77, // 52: longbridge.quote.v1.SecurityHistoryCandlestickRequest.date_request:type_name -> longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery
	0,  // 53: longbridge.quote.v1.RateLimit.command:type_name -> longbridge.quote.v1.Command
	80, // 54: longbridge.quote.v1.UserQuoteLevelDetail.by_package_key:type_name -> longbridge.quote.v1.UserQuoteLevelDetail.ByPackageKeyEntry
	81, // 55: longbridge.quote.v1.UserQuoteLevelDetail.by_market_code:type_name -> longbridge.quote.v1.UserQuoteLevelDetail.ByMarketCodeEntry
	71, // 56: longbridge.quote.v1.UserQuoteProfileResponse.rate_limit:type_name -> longbridge.quote.v1.RateLimit
	72, // 57: longbridge.quote.v1.UserQuoteProfileResponse.quote_level_detail:type_name -> longbridge.quote.v1.UserQuoteLevelDetail
	9,  // 58: longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery.direction:type_name -> longbridge.quote.v1.Direction
	78, // 59: longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail.packages:type_name -> longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail
	78, // 60: longbridge.quote.v1.UserQuoteLevelDetail.ByPackageKeyEntry.value:type_name -> longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail
	79, // 61: longbridge.quote.v1.UserQuoteLevelDetail.ByMarketCodeEntry.value:type_name -> longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail
	62, // [62:62] is the sub-list for method output_type
	62, // [62:62] is the sub-list for method input_type
	62, // [62:62] is the sub-list for extension type_name
	62, // [62:62] is the sub-list for extension extendee
	0,  // [0:62] is the sub-list for field type_name
}

func init() { file_quote_api_proto_init() }
func file_quote_api_proto_init() {
	if File_quote_api_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_quote_api_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MultiSecurityRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityStaticInfoResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StaticInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityQuoteResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityQuote); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PrePostQuote); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OptionQuoteResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OptionQuote); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OptionExtend); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WarrantQuoteResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WarrantQuote); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WarrantExtend); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityDepthResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Depth); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityBrokersResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Brokers); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ParticipantBrokerIdsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ParticipantInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityTradeRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityTradeResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Trade); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityIntradayRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityIntradayResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Line); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityCandlestickRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityCandlestickResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Candlestick); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OptionChainDateListResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OptionChainDateStrikeInfoRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OptionChainDateStrikeInfoResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StrikePriceInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*IssuerInfoResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*IssuerInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WarrantFilterListRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FilterConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WarrantFilterListResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FilterWarrant); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MarketTradePeriodResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MarketTradePeriod); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TradePeriod); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SubscriptionRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SubscriptionResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SubTypeList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SubscribeRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UnsubscribeRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UnsubscribeResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PushQuote); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PushDepth); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PushBrokers); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PushTrade); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MarketTradeDayRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MarketTradeDayResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CapitalFlowIntradayRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CapitalFlowIntradayResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CapitalDistributionResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityCalcQuoteRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityCalcIndex); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityCalcQuoteResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityHistoryCandlestickRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserQuoteProfileRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RateLimit); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserQuoteLevelDetail); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserQuoteProfileResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CapitalFlowIntradayResponse_CapitalFlowLine); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CapitalDistributionResponse_CapitalDistribution); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityHistoryCandlestickRequest_OffsetQuery); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityHistoryCandlestickRequest_DateQuery); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserQuoteLevelDetail_PackageDetail); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserQuoteLevelDetail_MarketPackageDetail); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_quote_api_proto_rawDesc,
			NumEnums:      10,
			NumMessages:   72,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_quote_api_proto_goTypes,
		DependencyIndexes: file_quote_api_proto_depIdxs,
		EnumInfos:         file_quote_api_proto_enumTypes,
		MessageInfos:      file_quote_api_proto_msgTypes,
	}.Build()
	File_quote_api_proto = out.File
	file_quote_api_proto_rawDesc = nil
	file_quote_api_proto_goTypes = nil
	file_quote_api_proto_depIdxs = nil
}
