// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.27.1-devel // protoc v3.19.4 // source: common.proto package webapi import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" server "mongo.games.com/game/protocol/server" 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) ) // 私有化mysql数据库 type MysqlDbSetting struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields HostName string `protobuf:"bytes,1,opt,name=HostName,proto3" json:"HostName,omitempty"` // ip/域名 HostPort int32 `protobuf:"varint,2,opt,name=HostPort,proto3" json:"HostPort,omitempty"` // 端口 Database string `protobuf:"bytes,3,opt,name=Database,proto3" json:"Database,omitempty"` // 数据库名 Username string `protobuf:"bytes,4,opt,name=Username,proto3" json:"Username,omitempty"` // 用户名 Password string `protobuf:"bytes,5,opt,name=Password,proto3" json:"Password,omitempty"` // 数据库密码 TODO:加密存储 Options string `protobuf:"bytes,6,opt,name=Options,proto3" json:"Options,omitempty"` // 附加参数 } func (x *MysqlDbSetting) Reset() { *x = MysqlDbSetting{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MysqlDbSetting) String() string { return protoimpl.X.MessageStringOf(x) } func (*MysqlDbSetting) ProtoMessage() {} func (x *MysqlDbSetting) ProtoReflect() protoreflect.Message { mi := &file_common_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 MysqlDbSetting.ProtoReflect.Descriptor instead. func (*MysqlDbSetting) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{0} } func (x *MysqlDbSetting) GetHostName() string { if x != nil { return x.HostName } return "" } func (x *MysqlDbSetting) GetHostPort() int32 { if x != nil { return x.HostPort } return 0 } func (x *MysqlDbSetting) GetDatabase() string { if x != nil { return x.Database } return "" } func (x *MysqlDbSetting) GetUsername() string { if x != nil { return x.Username } return "" } func (x *MysqlDbSetting) GetPassword() string { if x != nil { return x.Password } return "" } func (x *MysqlDbSetting) GetOptions() string { if x != nil { return x.Options } return "" } // 私有化mongo数据库 type MongoDbSetting struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields HostName string `protobuf:"bytes,1,opt,name=HostName,proto3" json:"HostName,omitempty"` // ip/域名 HostPort int32 `protobuf:"varint,2,opt,name=HostPort,proto3" json:"HostPort,omitempty"` // 端口 Database string `protobuf:"bytes,3,opt,name=Database,proto3" json:"Database,omitempty"` // 数据库名 Username string `protobuf:"bytes,4,opt,name=Username,proto3" json:"Username,omitempty"` // 用户名 Password string `protobuf:"bytes,5,opt,name=Password,proto3" json:"Password,omitempty"` // 数据库密码 TODO:加密存储 Options string `protobuf:"bytes,6,opt,name=Options,proto3" json:"Options,omitempty"` // 附加参数 CfgSign string `protobuf:"bytes,7,opt,name=CfgSign,proto3" json:"CfgSign,omitempty"` // 配置签名,防止来自外部的恶意修改 CfgVer int32 `protobuf:"varint,8,opt,name=CfgVer,proto3" json:"CfgVer,omitempty"` // 配置版本号,版本号提升可以显式的让业务层重建连接池 } func (x *MongoDbSetting) Reset() { *x = MongoDbSetting{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MongoDbSetting) String() string { return protoimpl.X.MessageStringOf(x) } func (*MongoDbSetting) ProtoMessage() {} func (x *MongoDbSetting) ProtoReflect() protoreflect.Message { mi := &file_common_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 MongoDbSetting.ProtoReflect.Descriptor instead. func (*MongoDbSetting) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{1} } func (x *MongoDbSetting) GetHostName() string { if x != nil { return x.HostName } return "" } func (x *MongoDbSetting) GetHostPort() int32 { if x != nil { return x.HostPort } return 0 } func (x *MongoDbSetting) GetDatabase() string { if x != nil { return x.Database } return "" } func (x *MongoDbSetting) GetUsername() string { if x != nil { return x.Username } return "" } func (x *MongoDbSetting) GetPassword() string { if x != nil { return x.Password } return "" } func (x *MongoDbSetting) GetOptions() string { if x != nil { return x.Options } return "" } func (x *MongoDbSetting) GetCfgSign() string { if x != nil { return x.CfgSign } return "" } func (x *MongoDbSetting) GetCfgVer() int32 { if x != nil { return x.CfgVer } return 0 } // 排行榜开关 type RankSwitch struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Asset int32 `protobuf:"varint,1,opt,name=Asset,proto3" json:"Asset,omitempty"` //财富榜 Recharge int32 `protobuf:"varint,2,opt,name=Recharge,proto3" json:"Recharge,omitempty"` //充值榜 Exchange int32 `protobuf:"varint,3,opt,name=Exchange,proto3" json:"Exchange,omitempty"` //兑换榜 Profit int32 `protobuf:"varint,4,opt,name=Profit,proto3" json:"Profit,omitempty"` //盈利榜 } func (x *RankSwitch) Reset() { *x = RankSwitch{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RankSwitch) String() string { return protoimpl.X.MessageStringOf(x) } func (*RankSwitch) ProtoMessage() {} func (x *RankSwitch) ProtoReflect() protoreflect.Message { mi := &file_common_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 RankSwitch.ProtoReflect.Descriptor instead. func (*RankSwitch) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{2} } func (x *RankSwitch) GetAsset() int32 { if x != nil { return x.Asset } return 0 } func (x *RankSwitch) GetRecharge() int32 { if x != nil { return x.Recharge } return 0 } func (x *RankSwitch) GetExchange() int32 { if x != nil { return x.Exchange } return 0 } func (x *RankSwitch) GetProfit() int32 { if x != nil { return x.Profit } return 0 } //俱乐部配置 type ClubConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CreationCoin int64 `protobuf:"varint,1,opt,name=CreationCoin,proto3" json:"CreationCoin,omitempty"` //创建俱乐部金额 IncreaseCoin int64 `protobuf:"varint,2,opt,name=IncreaseCoin,proto3" json:"IncreaseCoin,omitempty"` //升级俱乐部金额 ClubInitPlayerNum int32 `protobuf:"varint,3,opt,name=ClubInitPlayerNum,proto3" json:"ClubInitPlayerNum,omitempty"` //俱乐部初始人数 IncreasePlayerNum int32 `protobuf:"varint,4,opt,name=IncreasePlayerNum,proto3" json:"IncreasePlayerNum,omitempty"` //升级人数增加 IsOpenClub bool `protobuf:"varint,5,opt,name=IsOpenClub,proto3" json:"IsOpenClub,omitempty"` //是否开放俱乐部 CreateClubCheckByManual bool `protobuf:"varint,6,opt,name=CreateClubCheckByManual,proto3" json:"CreateClubCheckByManual,omitempty"` //创建俱乐部人工审核,true=手动 EditClubNoticeByManual bool `protobuf:"varint,7,opt,name=EditClubNoticeByManual,proto3" json:"EditClubNoticeByManual,omitempty"` //修改公告人工审核,true=手动 CreateRoomAmount int64 `protobuf:"varint,8,opt,name=CreateRoomAmount,proto3" json:"CreateRoomAmount,omitempty"` //创建房间金额(分/局) GiveCoinRate []int64 `protobuf:"varint,9,rep,packed,name=GiveCoinRate,proto3" json:"GiveCoinRate,omitempty"` //会长充值额外赠送比例 } func (x *ClubConfig) Reset() { *x = ClubConfig{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ClubConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*ClubConfig) ProtoMessage() {} func (x *ClubConfig) ProtoReflect() protoreflect.Message { mi := &file_common_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 ClubConfig.ProtoReflect.Descriptor instead. func (*ClubConfig) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{3} } func (x *ClubConfig) GetCreationCoin() int64 { if x != nil { return x.CreationCoin } return 0 } func (x *ClubConfig) GetIncreaseCoin() int64 { if x != nil { return x.IncreaseCoin } return 0 } func (x *ClubConfig) GetClubInitPlayerNum() int32 { if x != nil { return x.ClubInitPlayerNum } return 0 } func (x *ClubConfig) GetIncreasePlayerNum() int32 { if x != nil { return x.IncreasePlayerNum } return 0 } func (x *ClubConfig) GetIsOpenClub() bool { if x != nil { return x.IsOpenClub } return false } func (x *ClubConfig) GetCreateClubCheckByManual() bool { if x != nil { return x.CreateClubCheckByManual } return false } func (x *ClubConfig) GetEditClubNoticeByManual() bool { if x != nil { return x.EditClubNoticeByManual } return false } func (x *ClubConfig) GetCreateRoomAmount() int64 { if x != nil { return x.CreateRoomAmount } return 0 } func (x *ClubConfig) GetGiveCoinRate() []int64 { if x != nil { return x.GiveCoinRate } return nil } type ThirdGame struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` Merchant int32 `protobuf:"varint,2,opt,name=Merchant,proto3" json:"Merchant,omitempty"` // 状态 0/1 } func (x *ThirdGame) Reset() { *x = ThirdGame{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ThirdGame) String() string { return protoimpl.X.MessageStringOf(x) } func (*ThirdGame) ProtoMessage() {} func (x *ThirdGame) ProtoReflect() protoreflect.Message { mi := &file_common_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 ThirdGame.ProtoReflect.Descriptor instead. func (*ThirdGame) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{4} } func (x *ThirdGame) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *ThirdGame) GetMerchant() int32 { if x != nil { return x.Merchant } return 0 } // 平台结构 type Platform struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PlatformName string `protobuf:"bytes,1,opt,name=PlatformName,proto3" json:"PlatformName,omitempty"` // 平台名称 Isolated bool `protobuf:"varint,2,opt,name=Isolated,proto3" json:"Isolated,omitempty"` //是否独立平台 Disabled bool `protobuf:"varint,3,opt,name=Disabled,proto3" json:"Disabled,omitempty"` //是否关闭 Id int32 `protobuf:"varint,4,opt,name=Id,proto3" json:"Id,omitempty"` //平台ID CustomService string `protobuf:"bytes,5,opt,name=CustomService,proto3" json:"CustomService,omitempty"` //客服系统链接 BindOption int32 `protobuf:"varint,6,opt,name=BindOption,proto3" json:"BindOption,omitempty"` //平台用户绑定方式 位运算 微信|支付宝|银行卡 ServiceFlag bool `protobuf:"varint,7,opt,name=ServiceFlag,proto3" json:"ServiceFlag,omitempty"` //是否支持浏览器跳转 0=否 1=是 UpgradeAccountGiveCoin int32 `protobuf:"varint,8,opt,name=UpgradeAccountGiveCoin,proto3" json:"UpgradeAccountGiveCoin,omitempty"` //升级账号奖励金币 NewAccountGiveCoin int32 `protobuf:"varint,9,opt,name=NewAccountGiveCoin,proto3" json:"NewAccountGiveCoin,omitempty"` //新账号奖励金币 PerBankNoLimitAccount int32 `protobuf:"varint,10,opt,name=PerBankNoLimitAccount,proto3" json:"PerBankNoLimitAccount,omitempty"` //同一银行卡号绑定用户数量限制 ExchangeMin int32 `protobuf:"varint,11,opt,name=ExchangeMin,proto3" json:"ExchangeMin,omitempty"` //最低兑换金额 ExchangeLimit int32 `protobuf:"varint,12,opt,name=ExchangeLimit,proto3" json:"ExchangeLimit,omitempty"` // 兑换限制(身上携带) ExchangeTax int32 `protobuf:"varint,13,opt,name=ExchangeTax,proto3" json:"ExchangeTax,omitempty"` //兑换税收(万分比) ExchangeForceTax int32 `protobuf:"varint,14,opt,name=ExchangeForceTax,proto3" json:"ExchangeForceTax,omitempty"` //强制兑换税收 ExchangeFlow int32 `protobuf:"varint,15,opt,name=ExchangeFlow,proto3" json:"ExchangeFlow,omitempty"` // 兑换流水比例 ExchangeGiveFlow int32 `protobuf:"varint,16,opt,name=ExchangeGiveFlow,proto3" json:"ExchangeGiveFlow,omitempty"` //赠送兑换流水比例 ExchangeFlag int32 `protobuf:"varint,17,opt,name=ExchangeFlag,proto3" json:"ExchangeFlag,omitempty"` //兑换标记 二进制 第一位:兑换税收 第二位:流水比例 ExchangeVer int32 `protobuf:"varint,18,opt,name=ExchangeVer,proto3" json:"ExchangeVer,omitempty"` //兑换版本 ExchangeMultiple int32 `protobuf:"varint,19,opt,name=ExchangeMultiple,proto3" json:"ExchangeMultiple,omitempty"` //兑换基数 VipRange []int32 `protobuf:"varint,20,rep,packed,name=VipRange,proto3" json:"VipRange,omitempty"` // VIP充值区间 SpreadConfig int32 `protobuf:"varint,21,opt,name=SpreadConfig,proto3" json:"SpreadConfig,omitempty"` //0:等级返点 1:保底返佣 Leaderboard *RankSwitch `protobuf:"bytes,22,opt,name=Leaderboard,proto3" json:"Leaderboard,omitempty"` //排行榜开关 ClubConfig *ClubConfig `protobuf:"bytes,24,opt,name=ClubConfig,proto3" json:"ClubConfig,omitempty"` //俱乐部配置 VerifyCodeType int32 `protobuf:"varint,25,opt,name=VerifyCodeType,proto3" json:"VerifyCodeType,omitempty"` //验证码方式 短信,随机,滑块 ThirdGameMerchant []*ThirdGame `protobuf:"bytes,26,rep,name=ThirdGameMerchant,proto3" json:"ThirdGameMerchant,omitempty"` //三方游戏平台状态 CustomType int32 `protobuf:"varint,27,opt,name=CustomType,proto3" json:"CustomType,omitempty"` //客服类型 0 live800 1 美洽 2 CC客服 //bool NeedDeviceInfo = 28; //需要用户设备码 NeedSameName bool `protobuf:"varint,29,opt,name=NeedSameName,proto3" json:"NeedSameName,omitempty"` //绑定的银行卡和支付宝用户名字需要相同 ExchangeBankMax int32 `protobuf:"varint,30,opt,name=ExchangeBankMax,proto3" json:"ExchangeBankMax,omitempty"` //银行卡最大兑换金额 0不限制 ExchangeAlipayMax int32 `protobuf:"varint,31,opt,name=ExchangeAlipayMax,proto3" json:"ExchangeAlipayMax,omitempty"` //支付宝最大兑换金额 0不限制 PerBankNoLimitName int32 `protobuf:"varint,32,opt,name=PerBankNoLimitName,proto3" json:"PerBankNoLimitName,omitempty"` //银行卡名字数量限制 IsCanUserBindPromoter bool `protobuf:"varint,33,opt,name=IsCanUserBindPromoter,proto3" json:"IsCanUserBindPromoter,omitempty"` //是否允许用户手动绑定推广员 UserBindPromoterPrize int32 `protobuf:"varint,34,opt,name=UserBindPromoterPrize,proto3" json:"UserBindPromoterPrize,omitempty"` //手动绑定奖励 MerchantKey string `protobuf:"bytes,35,opt,name=MerchantKey,proto3" json:"MerchantKey,omitempty"` //商户秘钥 BindTelReward map[int32]int64 `protobuf:"bytes,36,rep,name=BindTelReward,proto3" json:"BindTelReward,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 绑定手机奖励;奖励id:数量 } func (x *Platform) Reset() { *x = Platform{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Platform) String() string { return protoimpl.X.MessageStringOf(x) } func (*Platform) ProtoMessage() {} func (x *Platform) ProtoReflect() protoreflect.Message { mi := &file_common_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 Platform.ProtoReflect.Descriptor instead. func (*Platform) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{5} } func (x *Platform) GetPlatformName() string { if x != nil { return x.PlatformName } return "" } func (x *Platform) GetIsolated() bool { if x != nil { return x.Isolated } return false } func (x *Platform) GetDisabled() bool { if x != nil { return x.Disabled } return false } func (x *Platform) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *Platform) GetCustomService() string { if x != nil { return x.CustomService } return "" } func (x *Platform) GetBindOption() int32 { if x != nil { return x.BindOption } return 0 } func (x *Platform) GetServiceFlag() bool { if x != nil { return x.ServiceFlag } return false } func (x *Platform) GetUpgradeAccountGiveCoin() int32 { if x != nil { return x.UpgradeAccountGiveCoin } return 0 } func (x *Platform) GetNewAccountGiveCoin() int32 { if x != nil { return x.NewAccountGiveCoin } return 0 } func (x *Platform) GetPerBankNoLimitAccount() int32 { if x != nil { return x.PerBankNoLimitAccount } return 0 } func (x *Platform) GetExchangeMin() int32 { if x != nil { return x.ExchangeMin } return 0 } func (x *Platform) GetExchangeLimit() int32 { if x != nil { return x.ExchangeLimit } return 0 } func (x *Platform) GetExchangeTax() int32 { if x != nil { return x.ExchangeTax } return 0 } func (x *Platform) GetExchangeForceTax() int32 { if x != nil { return x.ExchangeForceTax } return 0 } func (x *Platform) GetExchangeFlow() int32 { if x != nil { return x.ExchangeFlow } return 0 } func (x *Platform) GetExchangeGiveFlow() int32 { if x != nil { return x.ExchangeGiveFlow } return 0 } func (x *Platform) GetExchangeFlag() int32 { if x != nil { return x.ExchangeFlag } return 0 } func (x *Platform) GetExchangeVer() int32 { if x != nil { return x.ExchangeVer } return 0 } func (x *Platform) GetExchangeMultiple() int32 { if x != nil { return x.ExchangeMultiple } return 0 } func (x *Platform) GetVipRange() []int32 { if x != nil { return x.VipRange } return nil } func (x *Platform) GetSpreadConfig() int32 { if x != nil { return x.SpreadConfig } return 0 } func (x *Platform) GetLeaderboard() *RankSwitch { if x != nil { return x.Leaderboard } return nil } func (x *Platform) GetClubConfig() *ClubConfig { if x != nil { return x.ClubConfig } return nil } func (x *Platform) GetVerifyCodeType() int32 { if x != nil { return x.VerifyCodeType } return 0 } func (x *Platform) GetThirdGameMerchant() []*ThirdGame { if x != nil { return x.ThirdGameMerchant } return nil } func (x *Platform) GetCustomType() int32 { if x != nil { return x.CustomType } return 0 } func (x *Platform) GetNeedSameName() bool { if x != nil { return x.NeedSameName } return false } func (x *Platform) GetExchangeBankMax() int32 { if x != nil { return x.ExchangeBankMax } return 0 } func (x *Platform) GetExchangeAlipayMax() int32 { if x != nil { return x.ExchangeAlipayMax } return 0 } func (x *Platform) GetPerBankNoLimitName() int32 { if x != nil { return x.PerBankNoLimitName } return 0 } func (x *Platform) GetIsCanUserBindPromoter() bool { if x != nil { return x.IsCanUserBindPromoter } return false } func (x *Platform) GetUserBindPromoterPrize() int32 { if x != nil { return x.UserBindPromoterPrize } return 0 } func (x *Platform) GetMerchantKey() string { if x != nil { return x.MerchantKey } return "" } func (x *Platform) GetBindTelReward() map[int32]int64 { if x != nil { return x.BindTelReward } return nil } // 游戏状态结构 type GameStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameId int32 `protobuf:"varint,1,opt,name=GameId,proto3" json:"GameId,omitempty"` // excel 表Id Status bool `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 是否开启 } func (x *GameStatus) Reset() { *x = GameStatus{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GameStatus) String() string { return protoimpl.X.MessageStringOf(x) } func (*GameStatus) ProtoMessage() {} func (x *GameStatus) ProtoReflect() protoreflect.Message { mi := &file_common_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 GameStatus.ProtoReflect.Descriptor instead. func (*GameStatus) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{6} } func (x *GameStatus) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *GameStatus) GetStatus() bool { if x != nil { return x.Status } return false } // 全局游戏配置,单独拿出来,方便扩展 type GameConfigGlobal struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameStatus []*GameStatus `protobuf:"bytes,1,rep,name=GameStatus,proto3" json:"GameStatus,omitempty"` } func (x *GameConfigGlobal) Reset() { *x = GameConfigGlobal{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GameConfigGlobal) String() string { return protoimpl.X.MessageStringOf(x) } func (*GameConfigGlobal) ProtoMessage() {} func (x *GameConfigGlobal) ProtoReflect() protoreflect.Message { mi := &file_common_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 GameConfigGlobal.ProtoReflect.Descriptor instead. func (*GameConfigGlobal) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{7} } func (x *GameConfigGlobal) GetGameStatus() []*GameStatus { if x != nil { return x.GameStatus } return nil } // GameFree 需要包一层属性 type GameFree struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GroupId int32 `protobuf:"varint,1,opt,name=GroupId,proto3" json:"GroupId,omitempty"` // 组ID Status bool `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 开关 DbGameFree *server.DB_GameFree `protobuf:"bytes,3,opt,name=DbGameFree,proto3" json:"DbGameFree,omitempty"` // excel导出结构 } func (x *GameFree) Reset() { *x = GameFree{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GameFree) String() string { return protoimpl.X.MessageStringOf(x) } func (*GameFree) ProtoMessage() {} func (x *GameFree) ProtoReflect() protoreflect.Message { mi := &file_common_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 GameFree.ProtoReflect.Descriptor instead. func (*GameFree) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{8} } func (x *GameFree) GetGroupId() int32 { if x != nil { return x.GroupId } return 0 } func (x *GameFree) GetStatus() bool { if x != nil { return x.Status } return false } func (x *GameFree) GetDbGameFree() *server.DB_GameFree { if x != nil { return x.DbGameFree } return nil } // 平台级别游戏配置 type PlatformGameConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PlatformId int32 `protobuf:"varint,1,opt,name=PlatformId,proto3" json:"PlatformId,omitempty"` // 平台ID DbGameFrees []*GameFree `protobuf:"bytes,2,rep,name=DbGameFrees,proto3" json:"DbGameFrees,omitempty"` // 游戏配置 } func (x *PlatformGameConfig) Reset() { *x = PlatformGameConfig{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PlatformGameConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*PlatformGameConfig) ProtoMessage() {} func (x *PlatformGameConfig) ProtoReflect() protoreflect.Message { mi := &file_common_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 PlatformGameConfig.ProtoReflect.Descriptor instead. func (*PlatformGameConfig) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{9} } func (x *PlatformGameConfig) GetPlatformId() int32 { if x != nil { return x.PlatformId } return 0 } func (x *PlatformGameConfig) GetDbGameFrees() []*GameFree { if x != nil { return x.DbGameFrees } return nil } // 平台数据库配置 type PlatformDbConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PlatformId int32 `protobuf:"varint,1,opt,name=PlatformId,proto3" json:"PlatformId,omitempty"` //平台ID Mysql *MysqlDbSetting `protobuf:"bytes,2,opt,name=Mysql,proto3" json:"Mysql,omitempty"` MongoDb *MongoDbSetting `protobuf:"bytes,3,opt,name=MongoDb,proto3" json:"MongoDb,omitempty"` MongoDbLog *MongoDbSetting `protobuf:"bytes,4,opt,name=MongoDbLog,proto3" json:"MongoDbLog,omitempty"` } func (x *PlatformDbConfig) Reset() { *x = PlatformDbConfig{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PlatformDbConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*PlatformDbConfig) ProtoMessage() {} func (x *PlatformDbConfig) ProtoReflect() protoreflect.Message { mi := &file_common_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 PlatformDbConfig.ProtoReflect.Descriptor instead. func (*PlatformDbConfig) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{10} } func (x *PlatformDbConfig) GetPlatformId() int32 { if x != nil { return x.PlatformId } return 0 } func (x *PlatformDbConfig) GetMysql() *MysqlDbSetting { if x != nil { return x.Mysql } return nil } func (x *PlatformDbConfig) GetMongoDb() *MongoDbSetting { if x != nil { return x.MongoDb } return nil } func (x *PlatformDbConfig) GetMongoDbLog() *MongoDbSetting { if x != nil { return x.MongoDbLog } return nil } //游戏分组配置 type GameConfigGroup struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //分组id LogicId int32 `protobuf:"varint,2,opt,name=LogicId,proto3" json:"LogicId,omitempty"` //游戏id DbGameFree *server.DB_GameFree `protobuf:"bytes,3,opt,name=DbGameFree,proto3" json:"DbGameFree,omitempty"` // 游戏分组配置 GroupName string `protobuf:"bytes,4,opt,name=GroupName,proto3" json:"GroupName,omitempty"` //分组标题 } func (x *GameConfigGroup) Reset() { *x = GameConfigGroup{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GameConfigGroup) String() string { return protoimpl.X.MessageStringOf(x) } func (*GameConfigGroup) ProtoMessage() {} func (x *GameConfigGroup) ProtoReflect() protoreflect.Message { mi := &file_common_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 GameConfigGroup.ProtoReflect.Descriptor instead. func (*GameConfigGroup) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{11} } func (x *GameConfigGroup) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *GameConfigGroup) GetLogicId() int32 { if x != nil { return x.LogicId } return 0 } func (x *GameConfigGroup) GetDbGameFree() *server.DB_GameFree { if x != nil { return x.DbGameFree } return nil } func (x *GameConfigGroup) GetGroupName() string { if x != nil { return x.GroupName } return "" } // 包信息 type AppInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` PlatformId int32 `protobuf:"varint,2,opt,name=PlatformId,proto3" json:"PlatformId,omitempty"` // 平台ID Name string `protobuf:"bytes,3,opt,name=Name,proto3" json:"Name,omitempty"` // app名称 PackageName string `protobuf:"bytes,4,opt,name=PackageName,proto3" json:"PackageName,omitempty"` // android 包标识 BundleId string `protobuf:"bytes,5,opt,name=BundleId,proto3" json:"BundleId,omitempty"` // ios bundleid ApkUrl string `protobuf:"bytes,6,opt,name=ApkUrl,proto3" json:"ApkUrl,omitempty"` // apk 下载地址 IpaUrl string `protobuf:"bytes,7,opt,name=IpaUrl,proto3" json:"IpaUrl,omitempty"` // ipa 下载地址 CreateTime string `protobuf:"bytes,8,opt,name=CreateTime,proto3" json:"CreateTime,omitempty"` // 创建时间 CurrencyType string `protobuf:"bytes,9,opt,name=CurrencyType,proto3" json:"CurrencyType,omitempty"` // 货币类型 USD 美元 KHR 瑞尔 VND 越南盾 CurrencyRatio int32 `protobuf:"varint,10,opt,name=CurrencyRatio,proto3" json:"CurrencyRatio,omitempty"` // 货币比例 } func (x *AppInfo) Reset() { *x = AppInfo{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AppInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*AppInfo) ProtoMessage() {} func (x *AppInfo) ProtoReflect() protoreflect.Message { mi := &file_common_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 AppInfo.ProtoReflect.Descriptor instead. func (*AppInfo) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{12} } func (x *AppInfo) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *AppInfo) GetPlatformId() int32 { if x != nil { return x.PlatformId } return 0 } func (x *AppInfo) GetName() string { if x != nil { return x.Name } return "" } func (x *AppInfo) GetPackageName() string { if x != nil { return x.PackageName } return "" } func (x *AppInfo) GetBundleId() string { if x != nil { return x.BundleId } return "" } func (x *AppInfo) GetApkUrl() string { if x != nil { return x.ApkUrl } return "" } func (x *AppInfo) GetIpaUrl() string { if x != nil { return x.IpaUrl } return "" } func (x *AppInfo) GetCreateTime() string { if x != nil { return x.CreateTime } return "" } func (x *AppInfo) GetCurrencyType() string { if x != nil { return x.CurrencyType } return "" } func (x *AppInfo) GetCurrencyRatio() int32 { if x != nil { return x.CurrencyRatio } return 0 } type PlayerData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnId int32 `protobuf:"varint,1,opt,name=SnId,proto3" json:"SnId,omitempty"` Tel string `protobuf:"bytes,2,opt,name=Tel,proto3" json:"Tel,omitempty"` VIP int32 `protobuf:"varint,3,opt,name=VIP,proto3" json:"VIP,omitempty"` Name string `protobuf:"bytes,4,opt,name=Name,proto3" json:"Name,omitempty"` Coin int64 `protobuf:"varint,5,opt,name=Coin,proto3" json:"Coin,omitempty"` CoinExchangeTotal int64 `protobuf:"varint,6,opt,name=CoinExchangeTotal,proto3" json:"CoinExchangeTotal,omitempty"` //总提现金额 兑换 CoinPayTotal int64 `protobuf:"varint,7,opt,name=CoinPayTotal,proto3" json:"CoinPayTotal,omitempty"` //在线总充值金额 CreateTime int64 `protobuf:"varint,8,opt,name=CreateTime,proto3" json:"CreateTime,omitempty"` //创建时间 DeviceId string `protobuf:"bytes,9,opt,name=DeviceId,proto3" json:"DeviceId,omitempty"` //设备id DeviceOS string `protobuf:"bytes,10,opt,name=DeviceOS,proto3" json:"DeviceOS,omitempty"` //设备操作系统 DrawTimes int32 `protobuf:"varint,11,opt,name=DrawTimes,proto3" json:"DrawTimes,omitempty"` //平局次数 FailCoin int64 `protobuf:"varint,12,opt,name=FailCoin,proto3" json:"FailCoin,omitempty"` //总输钱数量 FailTimes int32 `protobuf:"varint,13,opt,name=FailTimes,proto3" json:"FailTimes,omitempty"` //失败次数 GameTax int64 `protobuf:"varint,14,opt,name=GameTax,proto3" json:"GameTax,omitempty"` //总游戏税收 Ip string `protobuf:"bytes,15,opt,name=Ip,proto3" json:"Ip,omitempty"` IsRob bool `protobuf:"varint,16,opt,name=IsRob,proto3" json:"IsRob,omitempty"` LastLoginTime int64 `protobuf:"varint,17,opt,name=LastLoginTime,proto3" json:"LastLoginTime,omitempty"` //最后登陆时间 MarkInfo string `protobuf:"bytes,18,opt,name=MarkInfo,proto3" json:"MarkInfo,omitempty"` //用来备注玩家信息 Online bool `protobuf:"varint,19,opt,name=Online,proto3" json:"Online,omitempty"` Package string `protobuf:"bytes,20,opt,name=Package,proto3" json:"Package,omitempty"` //包信息 android:包名 ios:bundleid PackageID string `protobuf:"bytes,21,opt,name=PackageID,proto3" json:"PackageID,omitempty"` //推广包标识 对应客户端的packagetag Platform string `protobuf:"bytes,22,opt,name=Platform,proto3" json:"Platform,omitempty"` RegIp string `protobuf:"bytes,23,opt,name=RegIp,proto3" json:"RegIp,omitempty"` //注册ip地址 SafeBoxCoin int64 `protobuf:"varint,24,opt,name=SafeBoxCoin,proto3" json:"SafeBoxCoin,omitempty"` //保险箱金币 WBLevel int32 `protobuf:"varint,25,opt,name=WBLevel,proto3" json:"WBLevel,omitempty"` //黑白名单等级 WinCoin int64 `protobuf:"varint,26,opt,name=WinCoin,proto3" json:"WinCoin,omitempty"` //总赢钱数量 WinTimes int32 `protobuf:"varint,27,opt,name=WinTimes,proto3" json:"WinTimes,omitempty"` //胜利次数 BlacklistType int32 `protobuf:"varint,28,opt,name=BlacklistType,proto3" json:"BlacklistType,omitempty"` //黑名单作用域和后台一样都是采用位标记的表示形式 SceneId int32 `protobuf:"varint,29,opt,name=SceneId,proto3" json:"SceneId,omitempty"` //房间号 GameFreeId int32 `protobuf:"varint,30,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` Diamond int64 `protobuf:"varint,31,opt,name=Diamond,proto3" json:"Diamond,omitempty"` //钻石 RoleUnlock int32 `protobuf:"varint,32,opt,name=RoleUnlock,proto3" json:"RoleUnlock,omitempty"` //角色解锁的个数 RolesIds []int32 `protobuf:"varint,33,rep,packed,name=RolesIds,proto3" json:"RolesIds,omitempty"` //角色Id PetUnlock int32 `protobuf:"varint,34,opt,name=PetUnlock,proto3" json:"PetUnlock,omitempty"` //宠物解锁的个数 PetsIds []int32 `protobuf:"varint,35,rep,packed,name=PetsIds,proto3" json:"PetsIds,omitempty"` //宠物Id AccountType int32 `protobuf:"varint,36,opt,name=AccountType,proto3" json:"AccountType,omitempty"` //账户类型 0.其他 1.google 2.facebook ChessGrade int32 `protobuf:"varint,37,opt,name=ChessGrade,proto3" json:"ChessGrade,omitempty"` // 象棋积分 AllWinCoin int64 `protobuf:"varint,38,opt,name=AllWinCoin,proto3" json:"AllWinCoin,omitempty"` // 总赢钱数量; 总赢钱数量(税前)-总输钱数量 AllFlow int64 `protobuf:"varint,39,opt,name=AllFlow,proto3" json:"AllFlow,omitempty"` // 总流水 PlayerPoolCurrent int64 `protobuf:"varint,40,opt,name=PlayerPoolCurrent,proto3" json:"PlayerPoolCurrent,omitempty"` // 个人水池当前值 PlayerPoolUpper int64 `protobuf:"varint,41,opt,name=PlayerPoolUpper,proto3" json:"PlayerPoolUpper,omitempty"` // 个人水池上限值 PlayerPoolLower int64 `protobuf:"varint,42,opt,name=PlayerPoolLower,proto3" json:"PlayerPoolLower,omitempty"` // 个人水池下限值 PlayerPoolRate int64 `protobuf:"varint,43,opt,name=PlayerPoolRate,proto3" json:"PlayerPoolRate,omitempty"` // 个人水池控制值 RankScore map[int64]int64 `protobuf:"bytes,44,rep,name=RankScore,proto3" json:"RankScore,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 排位积分 1 tienlen排位积分 RoleAdded int64 `protobuf:"varint,45,opt,name=RoleAdded,proto3" json:"RoleAdded,omitempty"` //人物加成 VipAdded int64 `protobuf:"varint,46,opt,name=VipAdded,proto3" json:"VipAdded,omitempty"` //VIP加成 VipExp int64 `protobuf:"varint,47,opt,name=VipExp,proto3" json:"VipExp,omitempty"` //VIP经验 ShopId []int32 `protobuf:"varint,48,rep,packed,name=ShopId,proto3" json:"ShopId,omitempty"` //首充加倍,已买过的商品id Delete int64 `protobuf:"varint,49,opt,name=Delete,proto3" json:"Delete,omitempty"` //是否删除 0.正常 1.删除 InviteCode string `protobuf:"bytes,50,opt,name=InviteCode,proto3" json:"InviteCode,omitempty"` //邀请码 InviteSnId int32 `protobuf:"varint,51,opt,name=InviteSnId,proto3" json:"InviteSnId,omitempty"` //邀请人 InviteScore int64 `protobuf:"varint,52,opt,name=InviteScore,proto3" json:"InviteScore,omitempty"` //邀请积分 Channel string `protobuf:"bytes,53,opt,name=Channel,proto3" json:"Channel,omitempty"` // 首次安装渠道 LastChannel string `protobuf:"bytes,54,opt,name=LastChannel,proto3" json:"LastChannel,omitempty"` // 最近使用的包渠道 Items []*ItemInfo `protobuf:"bytes,55,rep,name=Items,proto3" json:"Items,omitempty"` // 背包物品 IsPermit bool `protobuf:"varint,56,opt,name=IsPermit,proto3" json:"IsPermit,omitempty"` // 是否已购买典藏通行证 Long int64 `protobuf:"varint,57,opt,name=Long,proto3" json:"Long,omitempty"` // 龙币数量 PermitScore int64 `protobuf:"varint,58,opt,name=PermitScore,proto3" json:"PermitScore,omitempty"` // 赛季通行证积分 VCardCost int64 `protobuf:"varint,59,opt,name=VCardCost,proto3" json:"VCardCost,omitempty"` // v卡消耗 MoneyTotal int64 `protobuf:"varint,60,opt,name=MoneyTotal,proto3" json:"MoneyTotal,omitempty"` // 充值总金额 ChannelID string `protobuf:"bytes,61,opt,name=ChannelID,proto3" json:"ChannelID,omitempty"` // 渠道ID UseRoleId int32 `protobuf:"varint,62,opt,name=UseRoleId,proto3" json:"UseRoleId,omitempty"` // 当前使用的角色id UseSkinId int32 `protobuf:"varint,63,opt,name=UseSkinId,proto3" json:"UseSkinId,omitempty"` // 当前使用的皮肤id SkinIds []int32 `protobuf:"varint,64,rep,packed,name=SkinIds,proto3" json:"SkinIds,omitempty"` // 解锁的皮肤id列表 RoleUnlockList []*ModInfo `protobuf:"bytes,65,rep,name=RoleUnlockList,proto3" json:"RoleUnlockList,omitempty"` // 解锁的角色列表 PetUnlockList []*ModInfo `protobuf:"bytes,66,rep,name=PetUnlockList,proto3" json:"PetUnlockList,omitempty"` // 解锁的宠物列表 PetSkillUnlockList []*ModInfo `protobuf:"bytes,67,rep,name=PetSkillUnlockList,proto3" json:"PetSkillUnlockList,omitempty"` // 解锁的宠物技能列表 SkinUnlockList []*ModInfo `protobuf:"bytes,68,rep,name=SkinUnlockList,proto3" json:"SkinUnlockList,omitempty"` // 解锁的皮肤列表 } func (x *PlayerData) Reset() { *x = PlayerData{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PlayerData) String() string { return protoimpl.X.MessageStringOf(x) } func (*PlayerData) ProtoMessage() {} func (x *PlayerData) ProtoReflect() protoreflect.Message { mi := &file_common_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 PlayerData.ProtoReflect.Descriptor instead. func (*PlayerData) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{13} } func (x *PlayerData) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *PlayerData) GetTel() string { if x != nil { return x.Tel } return "" } func (x *PlayerData) GetVIP() int32 { if x != nil { return x.VIP } return 0 } func (x *PlayerData) GetName() string { if x != nil { return x.Name } return "" } func (x *PlayerData) GetCoin() int64 { if x != nil { return x.Coin } return 0 } func (x *PlayerData) GetCoinExchangeTotal() int64 { if x != nil { return x.CoinExchangeTotal } return 0 } func (x *PlayerData) GetCoinPayTotal() int64 { if x != nil { return x.CoinPayTotal } return 0 } func (x *PlayerData) GetCreateTime() int64 { if x != nil { return x.CreateTime } return 0 } func (x *PlayerData) GetDeviceId() string { if x != nil { return x.DeviceId } return "" } func (x *PlayerData) GetDeviceOS() string { if x != nil { return x.DeviceOS } return "" } func (x *PlayerData) GetDrawTimes() int32 { if x != nil { return x.DrawTimes } return 0 } func (x *PlayerData) GetFailCoin() int64 { if x != nil { return x.FailCoin } return 0 } func (x *PlayerData) GetFailTimes() int32 { if x != nil { return x.FailTimes } return 0 } func (x *PlayerData) GetGameTax() int64 { if x != nil { return x.GameTax } return 0 } func (x *PlayerData) GetIp() string { if x != nil { return x.Ip } return "" } func (x *PlayerData) GetIsRob() bool { if x != nil { return x.IsRob } return false } func (x *PlayerData) GetLastLoginTime() int64 { if x != nil { return x.LastLoginTime } return 0 } func (x *PlayerData) GetMarkInfo() string { if x != nil { return x.MarkInfo } return "" } func (x *PlayerData) GetOnline() bool { if x != nil { return x.Online } return false } func (x *PlayerData) GetPackage() string { if x != nil { return x.Package } return "" } func (x *PlayerData) GetPackageID() string { if x != nil { return x.PackageID } return "" } func (x *PlayerData) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *PlayerData) GetRegIp() string { if x != nil { return x.RegIp } return "" } func (x *PlayerData) GetSafeBoxCoin() int64 { if x != nil { return x.SafeBoxCoin } return 0 } func (x *PlayerData) GetWBLevel() int32 { if x != nil { return x.WBLevel } return 0 } func (x *PlayerData) GetWinCoin() int64 { if x != nil { return x.WinCoin } return 0 } func (x *PlayerData) GetWinTimes() int32 { if x != nil { return x.WinTimes } return 0 } func (x *PlayerData) GetBlacklistType() int32 { if x != nil { return x.BlacklistType } return 0 } func (x *PlayerData) GetSceneId() int32 { if x != nil { return x.SceneId } return 0 } func (x *PlayerData) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *PlayerData) GetDiamond() int64 { if x != nil { return x.Diamond } return 0 } func (x *PlayerData) GetRoleUnlock() int32 { if x != nil { return x.RoleUnlock } return 0 } func (x *PlayerData) GetRolesIds() []int32 { if x != nil { return x.RolesIds } return nil } func (x *PlayerData) GetPetUnlock() int32 { if x != nil { return x.PetUnlock } return 0 } func (x *PlayerData) GetPetsIds() []int32 { if x != nil { return x.PetsIds } return nil } func (x *PlayerData) GetAccountType() int32 { if x != nil { return x.AccountType } return 0 } func (x *PlayerData) GetChessGrade() int32 { if x != nil { return x.ChessGrade } return 0 } func (x *PlayerData) GetAllWinCoin() int64 { if x != nil { return x.AllWinCoin } return 0 } func (x *PlayerData) GetAllFlow() int64 { if x != nil { return x.AllFlow } return 0 } func (x *PlayerData) GetPlayerPoolCurrent() int64 { if x != nil { return x.PlayerPoolCurrent } return 0 } func (x *PlayerData) GetPlayerPoolUpper() int64 { if x != nil { return x.PlayerPoolUpper } return 0 } func (x *PlayerData) GetPlayerPoolLower() int64 { if x != nil { return x.PlayerPoolLower } return 0 } func (x *PlayerData) GetPlayerPoolRate() int64 { if x != nil { return x.PlayerPoolRate } return 0 } func (x *PlayerData) GetRankScore() map[int64]int64 { if x != nil { return x.RankScore } return nil } func (x *PlayerData) GetRoleAdded() int64 { if x != nil { return x.RoleAdded } return 0 } func (x *PlayerData) GetVipAdded() int64 { if x != nil { return x.VipAdded } return 0 } func (x *PlayerData) GetVipExp() int64 { if x != nil { return x.VipExp } return 0 } func (x *PlayerData) GetShopId() []int32 { if x != nil { return x.ShopId } return nil } func (x *PlayerData) GetDelete() int64 { if x != nil { return x.Delete } return 0 } func (x *PlayerData) GetInviteCode() string { if x != nil { return x.InviteCode } return "" } func (x *PlayerData) GetInviteSnId() int32 { if x != nil { return x.InviteSnId } return 0 } func (x *PlayerData) GetInviteScore() int64 { if x != nil { return x.InviteScore } return 0 } func (x *PlayerData) GetChannel() string { if x != nil { return x.Channel } return "" } func (x *PlayerData) GetLastChannel() string { if x != nil { return x.LastChannel } return "" } func (x *PlayerData) GetItems() []*ItemInfo { if x != nil { return x.Items } return nil } func (x *PlayerData) GetIsPermit() bool { if x != nil { return x.IsPermit } return false } func (x *PlayerData) GetLong() int64 { if x != nil { return x.Long } return 0 } func (x *PlayerData) GetPermitScore() int64 { if x != nil { return x.PermitScore } return 0 } func (x *PlayerData) GetVCardCost() int64 { if x != nil { return x.VCardCost } return 0 } func (x *PlayerData) GetMoneyTotal() int64 { if x != nil { return x.MoneyTotal } return 0 } func (x *PlayerData) GetChannelID() string { if x != nil { return x.ChannelID } return "" } func (x *PlayerData) GetUseRoleId() int32 { if x != nil { return x.UseRoleId } return 0 } func (x *PlayerData) GetUseSkinId() int32 { if x != nil { return x.UseSkinId } return 0 } func (x *PlayerData) GetSkinIds() []int32 { if x != nil { return x.SkinIds } return nil } func (x *PlayerData) GetRoleUnlockList() []*ModInfo { if x != nil { return x.RoleUnlockList } return nil } func (x *PlayerData) GetPetUnlockList() []*ModInfo { if x != nil { return x.PetUnlockList } return nil } func (x *PlayerData) GetPetSkillUnlockList() []*ModInfo { if x != nil { return x.PetSkillUnlockList } return nil } func (x *PlayerData) GetSkinUnlockList() []*ModInfo { if x != nil { return x.SkinUnlockList } return nil } type ModInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 模型id Level int32 `protobuf:"varint,2,opt,name=Level,proto3" json:"Level,omitempty"` // 模型等级 Ts int64 `protobuf:"varint,3,opt,name=Ts,proto3" json:"Ts,omitempty"` // 解锁时间 } func (x *ModInfo) Reset() { *x = ModInfo{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ModInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ModInfo) ProtoMessage() {} func (x *ModInfo) ProtoReflect() protoreflect.Message { mi := &file_common_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 ModInfo.ProtoReflect.Descriptor instead. func (*ModInfo) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{14} } func (x *ModInfo) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *ModInfo) GetLevel() int32 { if x != nil { return x.Level } return 0 } func (x *ModInfo) GetTs() int64 { if x != nil { return x.Ts } return 0 } type RoomInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` SceneId int32 `protobuf:"varint,2,opt,name=SceneId,proto3" json:"SceneId,omitempty"` //房间id GameId int32 `protobuf:"varint,3,opt,name=GameId,proto3" json:"GameId,omitempty"` //游戏id GameMode int32 `protobuf:"varint,4,opt,name=GameMode,proto3" json:"GameMode,omitempty"` //游戏模式 SceneMode int32 `protobuf:"varint,5,opt,name=SceneMode,proto3" json:"SceneMode,omitempty"` //房间模式,参考common.SceneMode_XXX GroupId int32 `protobuf:"varint,6,opt,name=GroupId,proto3" json:"GroupId,omitempty"` //组id GameFreeId int32 `protobuf:"varint,7,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` // 场次id SrvId int32 `protobuf:"varint,8,opt,name=SrvId,proto3" json:"SrvId,omitempty"` //服务器id Creator int32 `protobuf:"varint,9,opt,name=Creator,proto3" json:"Creator,omitempty"` //创建者账号id Agentor int32 `protobuf:"varint,10,opt,name=Agentor,proto3" json:"Agentor,omitempty"` //代理者id ReplayCode string `protobuf:"bytes,11,opt,name=ReplayCode,proto3" json:"ReplayCode,omitempty"` //回放码 Params []int32 `protobuf:"varint,12,rep,packed,name=Params,proto3" json:"Params,omitempty"` //场景参数 PlayerIds []int32 `protobuf:"varint,13,rep,packed,name=PlayerIds,proto3" json:"PlayerIds,omitempty"` //所有玩家id PlayerCnt int32 `protobuf:"varint,14,opt,name=PlayerCnt,proto3" json:"PlayerCnt,omitempty"` //玩家数量 RobotCnt int32 `protobuf:"varint,15,opt,name=RobotCnt,proto3" json:"RobotCnt,omitempty"` //AI数量 Start int32 `protobuf:"varint,16,opt,name=Start,proto3" json:"Start,omitempty"` //0.等待 1.游戏中 CreateTime int64 `protobuf:"varint,17,opt,name=CreateTime,proto3" json:"CreateTime,omitempty"` //创建时间 BaseScore int32 `protobuf:"varint,18,opt,name=BaseScore,proto3" json:"BaseScore,omitempty"` //底分 RoomConfigId int32 `protobuf:"varint,19,opt,name=RoomConfigId,proto3" json:"RoomConfigId,omitempty"` //房间配置id CurrRound int32 `protobuf:"varint,20,opt,name=CurrRound,proto3" json:"CurrRound,omitempty"` //当前局数 MaxRound int32 `protobuf:"varint,21,opt,name=MaxRound,proto3" json:"MaxRound,omitempty"` //最大局数 Password string `protobuf:"bytes,22,opt,name=Password,proto3" json:"Password,omitempty"` // 密码 CostType int32 `protobuf:"varint,23,opt,name=CostType,proto3" json:"CostType,omitempty"` // 付费方式 1房主 2AA Voice int32 `protobuf:"varint,24,opt,name=Voice,proto3" json:"Voice,omitempty"` // 语音开关 1开启 PlayerNum int32 `protobuf:"varint,25,opt,name=PlayerNum,proto3" json:"PlayerNum,omitempty"` // 房间最大人数 } func (x *RoomInfo) Reset() { *x = RoomInfo{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RoomInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*RoomInfo) ProtoMessage() {} func (x *RoomInfo) ProtoReflect() protoreflect.Message { mi := &file_common_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 RoomInfo.ProtoReflect.Descriptor instead. func (*RoomInfo) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{15} } func (x *RoomInfo) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *RoomInfo) GetSceneId() int32 { if x != nil { return x.SceneId } return 0 } func (x *RoomInfo) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *RoomInfo) GetGameMode() int32 { if x != nil { return x.GameMode } return 0 } func (x *RoomInfo) GetSceneMode() int32 { if x != nil { return x.SceneMode } return 0 } func (x *RoomInfo) GetGroupId() int32 { if x != nil { return x.GroupId } return 0 } func (x *RoomInfo) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *RoomInfo) GetSrvId() int32 { if x != nil { return x.SrvId } return 0 } func (x *RoomInfo) GetCreator() int32 { if x != nil { return x.Creator } return 0 } func (x *RoomInfo) GetAgentor() int32 { if x != nil { return x.Agentor } return 0 } func (x *RoomInfo) GetReplayCode() string { if x != nil { return x.ReplayCode } return "" } func (x *RoomInfo) GetParams() []int32 { if x != nil { return x.Params } return nil } func (x *RoomInfo) GetPlayerIds() []int32 { if x != nil { return x.PlayerIds } return nil } func (x *RoomInfo) GetPlayerCnt() int32 { if x != nil { return x.PlayerCnt } return 0 } func (x *RoomInfo) GetRobotCnt() int32 { if x != nil { return x.RobotCnt } return 0 } func (x *RoomInfo) GetStart() int32 { if x != nil { return x.Start } return 0 } func (x *RoomInfo) GetCreateTime() int64 { if x != nil { return x.CreateTime } return 0 } func (x *RoomInfo) GetBaseScore() int32 { if x != nil { return x.BaseScore } return 0 } func (x *RoomInfo) GetRoomConfigId() int32 { if x != nil { return x.RoomConfigId } return 0 } func (x *RoomInfo) GetCurrRound() int32 { if x != nil { return x.CurrRound } return 0 } func (x *RoomInfo) GetMaxRound() int32 { if x != nil { return x.MaxRound } return 0 } func (x *RoomInfo) GetPassword() string { if x != nil { return x.Password } return "" } func (x *RoomInfo) GetCostType() int32 { if x != nil { return x.CostType } return 0 } func (x *RoomInfo) GetVoice() int32 { if x != nil { return x.Voice } return 0 } func (x *RoomInfo) GetPlayerNum() int32 { if x != nil { return x.PlayerNum } return 0 } type PlayerSingleAdjust struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` Platform string `protobuf:"bytes,2,opt,name=Platform,proto3" json:"Platform,omitempty"` GameFreeId int32 `protobuf:"varint,3,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` SnId int32 `protobuf:"varint,4,opt,name=SnId,proto3" json:"SnId,omitempty"` Mode int32 `protobuf:"varint,5,opt,name=Mode,proto3" json:"Mode,omitempty"` //调控模式 1赢 2输 tinyint(1) TotalTime int32 `protobuf:"varint,6,opt,name=TotalTime,proto3" json:"TotalTime,omitempty"` //调控总次数 CurTime int32 `protobuf:"varint,7,opt,name=CurTime,proto3" json:"CurTime,omitempty"` //当前调控次数 BetMin int64 `protobuf:"varint,8,opt,name=BetMin,proto3" json:"BetMin,omitempty"` //下注下限 BetMax int64 `protobuf:"varint,9,opt,name=BetMax,proto3" json:"BetMax,omitempty"` //下注上限 BankerLoseMin int64 `protobuf:"varint,10,opt,name=BankerLoseMin,proto3" json:"BankerLoseMin,omitempty"` //坐庄被输下限 BankerWinMin int64 `protobuf:"varint,11,opt,name=BankerWinMin,proto3" json:"BankerWinMin,omitempty"` //坐庄被控赢下限 CardMin int32 `protobuf:"varint,12,opt,name=CardMin,proto3" json:"CardMin,omitempty"` //牌型下限 CardMax int32 `protobuf:"varint,13,opt,name=CardMax,proto3" json:"CardMax,omitempty"` //牌型上限 Priority int32 `protobuf:"varint,14,opt,name=Priority,proto3" json:"Priority,omitempty"` //优先级 WinRate int32 `protobuf:"varint,15,opt,name=WinRate,proto3" json:"WinRate,omitempty"` //万分比 GameId int32 `protobuf:"varint,16,opt,name=GameId,proto3" json:"GameId,omitempty"` GameMode int32 `protobuf:"varint,17,opt,name=GameMode,proto3" json:"GameMode,omitempty"` Operator string `protobuf:"bytes,18,opt,name=Operator,proto3" json:"Operator,omitempty"` CreateTime int64 `protobuf:"varint,19,opt,name=CreateTime,proto3" json:"CreateTime,omitempty"` UpdateTime int64 `protobuf:"varint,20,opt,name=UpdateTime,proto3" json:"UpdateTime,omitempty"` } func (x *PlayerSingleAdjust) Reset() { *x = PlayerSingleAdjust{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PlayerSingleAdjust) String() string { return protoimpl.X.MessageStringOf(x) } func (*PlayerSingleAdjust) ProtoMessage() {} func (x *PlayerSingleAdjust) ProtoReflect() protoreflect.Message { mi := &file_common_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 PlayerSingleAdjust.ProtoReflect.Descriptor instead. func (*PlayerSingleAdjust) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{16} } func (x *PlayerSingleAdjust) GetId() string { if x != nil { return x.Id } return "" } func (x *PlayerSingleAdjust) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *PlayerSingleAdjust) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *PlayerSingleAdjust) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *PlayerSingleAdjust) GetMode() int32 { if x != nil { return x.Mode } return 0 } func (x *PlayerSingleAdjust) GetTotalTime() int32 { if x != nil { return x.TotalTime } return 0 } func (x *PlayerSingleAdjust) GetCurTime() int32 { if x != nil { return x.CurTime } return 0 } func (x *PlayerSingleAdjust) GetBetMin() int64 { if x != nil { return x.BetMin } return 0 } func (x *PlayerSingleAdjust) GetBetMax() int64 { if x != nil { return x.BetMax } return 0 } func (x *PlayerSingleAdjust) GetBankerLoseMin() int64 { if x != nil { return x.BankerLoseMin } return 0 } func (x *PlayerSingleAdjust) GetBankerWinMin() int64 { if x != nil { return x.BankerWinMin } return 0 } func (x *PlayerSingleAdjust) GetCardMin() int32 { if x != nil { return x.CardMin } return 0 } func (x *PlayerSingleAdjust) GetCardMax() int32 { if x != nil { return x.CardMax } return 0 } func (x *PlayerSingleAdjust) GetPriority() int32 { if x != nil { return x.Priority } return 0 } func (x *PlayerSingleAdjust) GetWinRate() int32 { if x != nil { return x.WinRate } return 0 } func (x *PlayerSingleAdjust) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *PlayerSingleAdjust) GetGameMode() int32 { if x != nil { return x.GameMode } return 0 } func (x *PlayerSingleAdjust) GetOperator() string { if x != nil { return x.Operator } return "" } func (x *PlayerSingleAdjust) GetCreateTime() int64 { if x != nil { return x.CreateTime } return 0 } func (x *PlayerSingleAdjust) GetUpdateTime() int64 { if x != nil { return x.UpdateTime } return 0 } type ServerInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SrvId int32 `protobuf:"varint,1,opt,name=SrvId,proto3" json:"SrvId,omitempty"` //服务器id SrvType int32 `protobuf:"varint,2,opt,name=SrvType,proto3" json:"SrvType,omitempty"` //服务器类型 4.网管 6.大厅.7游戏 State int32 `protobuf:"varint,3,opt,name=State,proto3" json:"State,omitempty"` //服务器状态 0.关闭 1.开启 PlayerNum int32 `protobuf:"varint,4,opt,name=PlayerNum,proto3" json:"PlayerNum,omitempty"` //人数 RobotNum int32 `protobuf:"varint,5,opt,name=RobotNum,proto3" json:"RobotNum,omitempty"` //AI人数 SceneNum int32 `protobuf:"varint,6,opt,name=SceneNum,proto3" json:"SceneNum,omitempty"` //房间数量 Data string `protobuf:"bytes,7,opt,name=Data,proto3" json:"Data,omitempty"` } func (x *ServerInfo) Reset() { *x = ServerInfo{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ServerInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ServerInfo) ProtoMessage() {} func (x *ServerInfo) ProtoReflect() protoreflect.Message { mi := &file_common_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 ServerInfo.ProtoReflect.Descriptor instead. func (*ServerInfo) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{17} } func (x *ServerInfo) GetSrvId() int32 { if x != nil { return x.SrvId } return 0 } func (x *ServerInfo) GetSrvType() int32 { if x != nil { return x.SrvType } return 0 } func (x *ServerInfo) GetState() int32 { if x != nil { return x.State } return 0 } func (x *ServerInfo) GetPlayerNum() int32 { if x != nil { return x.PlayerNum } return 0 } func (x *ServerInfo) GetRobotNum() int32 { if x != nil { return x.RobotNum } return 0 } func (x *ServerInfo) GetSceneNum() int32 { if x != nil { return x.SceneNum } return 0 } func (x *ServerInfo) GetData() string { if x != nil { return x.Data } return "" } type CoinPoolSetting struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 水池配置(excel) Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` //平台id GroupId int32 `protobuf:"varint,2,opt,name=GroupId,proto3" json:"GroupId,omitempty"` //组id GameFreeId int32 `protobuf:"varint,3,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` //游戏id ServerId int32 `protobuf:"varint,4,opt,name=ServerId,proto3" json:"ServerId,omitempty"` //服务器id InitValue int64 `protobuf:"varint,5,opt,name=InitValue,proto3" json:"InitValue,omitempty"` //初始库存值 LowerLimit int64 `protobuf:"varint,6,opt,name=LowerLimit,proto3" json:"LowerLimit,omitempty"` //库存下限 UpperLimit int64 `protobuf:"varint,7,opt,name=UpperLimit,proto3" json:"UpperLimit,omitempty"` //库存上限 QuDu int64 `protobuf:"varint,8,opt,name=QuDu,proto3" json:"QuDu,omitempty"` // 曲度值 UpperOdds int32 `protobuf:"varint,9,opt,name=UpperOdds,proto3" json:"UpperOdds,omitempty"` // 上线初始概率 UpperOddsMax int32 `protobuf:"varint,10,opt,name=UpperOddsMax,proto3" json:"UpperOddsMax,omitempty"` // 上线最大概率 LowerOdds int32 `protobuf:"varint,11,opt,name=LowerOdds,proto3" json:"LowerOdds,omitempty"` // 下线初始概率 LowerOddsMax int32 `protobuf:"varint,12,opt,name=LowerOddsMax,proto3" json:"LowerOddsMax,omitempty"` // 下线最大概率 ProfitRate int32 `protobuf:"varint,13,opt,name=ProfitRate,proto3" json:"ProfitRate,omitempty"` //营收比例,千分比 ResetTime int64 `protobuf:"varint,14,opt,name=ResetTime,proto3" json:"ResetTime,omitempty"` // 重置时间 Switch int32 `protobuf:"varint,15,opt,name=Switch,proto3" json:"Switch,omitempty"` // 开关 0开启 1关闭 CoinValue int64 `protobuf:"varint,16,opt,name=CoinValue,proto3" json:"CoinValue,omitempty"` // 当前水位 ProfitPool int64 `protobuf:"varint,17,opt,name=ProfitPool,proto3" json:"ProfitPool,omitempty"` // 收益池水位 CtrlRate int32 `protobuf:"varint,18,opt,name=CtrlRate,proto3" json:"CtrlRate,omitempty"` //调节赔率,万分比 InitNoviceValue int64 `protobuf:"varint,19,opt,name=InitNoviceValue,proto3" json:"InitNoviceValue,omitempty"` // 新手池初始库存值 NoviceCoinValue int64 `protobuf:"varint,20,opt,name=NoviceCoinValue,proto3" json:"NoviceCoinValue,omitempty"` // 新手池水位 } func (x *CoinPoolSetting) Reset() { *x = CoinPoolSetting{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CoinPoolSetting) String() string { return protoimpl.X.MessageStringOf(x) } func (*CoinPoolSetting) ProtoMessage() {} func (x *CoinPoolSetting) ProtoReflect() protoreflect.Message { mi := &file_common_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 CoinPoolSetting.ProtoReflect.Descriptor instead. func (*CoinPoolSetting) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{18} } func (x *CoinPoolSetting) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *CoinPoolSetting) GetGroupId() int32 { if x != nil { return x.GroupId } return 0 } func (x *CoinPoolSetting) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *CoinPoolSetting) GetServerId() int32 { if x != nil { return x.ServerId } return 0 } func (x *CoinPoolSetting) GetInitValue() int64 { if x != nil { return x.InitValue } return 0 } func (x *CoinPoolSetting) GetLowerLimit() int64 { if x != nil { return x.LowerLimit } return 0 } func (x *CoinPoolSetting) GetUpperLimit() int64 { if x != nil { return x.UpperLimit } return 0 } func (x *CoinPoolSetting) GetQuDu() int64 { if x != nil { return x.QuDu } return 0 } func (x *CoinPoolSetting) GetUpperOdds() int32 { if x != nil { return x.UpperOdds } return 0 } func (x *CoinPoolSetting) GetUpperOddsMax() int32 { if x != nil { return x.UpperOddsMax } return 0 } func (x *CoinPoolSetting) GetLowerOdds() int32 { if x != nil { return x.LowerOdds } return 0 } func (x *CoinPoolSetting) GetLowerOddsMax() int32 { if x != nil { return x.LowerOddsMax } return 0 } func (x *CoinPoolSetting) GetProfitRate() int32 { if x != nil { return x.ProfitRate } return 0 } func (x *CoinPoolSetting) GetResetTime() int64 { if x != nil { return x.ResetTime } return 0 } func (x *CoinPoolSetting) GetSwitch() int32 { if x != nil { return x.Switch } return 0 } func (x *CoinPoolSetting) GetCoinValue() int64 { if x != nil { return x.CoinValue } return 0 } func (x *CoinPoolSetting) GetProfitPool() int64 { if x != nil { return x.ProfitPool } return 0 } func (x *CoinPoolSetting) GetCtrlRate() int32 { if x != nil { return x.CtrlRate } return 0 } func (x *CoinPoolSetting) GetInitNoviceValue() int64 { if x != nil { return x.InitNoviceValue } return 0 } func (x *CoinPoolSetting) GetNoviceCoinValue() int64 { if x != nil { return x.NoviceCoinValue } return 0 } //邮件 type MessageInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` MType int32 `protobuf:"varint,2,opt,name=MType,proto3" json:"MType,omitempty"` //消息类型 Title string `protobuf:"bytes,3,opt,name=Title,proto3" json:"Title,omitempty"` //标题 Content string `protobuf:"bytes,4,opt,name=Content,proto3" json:"Content,omitempty"` //内容 State int32 `protobuf:"varint,5,opt,name=State,proto3" json:"State,omitempty"` //当前消息状态 CreateTime int64 `protobuf:"varint,6,opt,name=CreateTime,proto3" json:"CreateTime,omitempty"` //创建时间戳 SrcSnid int32 `protobuf:"varint,7,opt,name=SrcSnid,proto3" json:"SrcSnid,omitempty"` //发送人ID DestSnid int32 `protobuf:"varint,8,opt,name=DestSnid,proto3" json:"DestSnid,omitempty"` //目标人ID Coin int64 `protobuf:"varint,9,opt,name=Coin,proto3" json:"Coin,omitempty"` //携带金币数量 GiftId string `protobuf:"bytes,10,opt,name=GiftId,proto3" json:"GiftId,omitempty"` GiftState int32 `protobuf:"varint,11,opt,name=GiftState,proto3" json:"GiftState,omitempty"` Platform string `protobuf:"bytes,12,opt,name=Platform,proto3" json:"Platform,omitempty"` } func (x *MessageInfo) Reset() { *x = MessageInfo{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MessageInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*MessageInfo) ProtoMessage() {} func (x *MessageInfo) ProtoReflect() protoreflect.Message { mi := &file_common_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 MessageInfo.ProtoReflect.Descriptor instead. func (*MessageInfo) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{19} } func (x *MessageInfo) GetId() string { if x != nil { return x.Id } return "" } func (x *MessageInfo) GetMType() int32 { if x != nil { return x.MType } return 0 } func (x *MessageInfo) GetTitle() string { if x != nil { return x.Title } return "" } func (x *MessageInfo) GetContent() string { if x != nil { return x.Content } return "" } func (x *MessageInfo) GetState() int32 { if x != nil { return x.State } return 0 } func (x *MessageInfo) GetCreateTime() int64 { if x != nil { return x.CreateTime } return 0 } func (x *MessageInfo) GetSrcSnid() int32 { if x != nil { return x.SrcSnid } return 0 } func (x *MessageInfo) GetDestSnid() int32 { if x != nil { return x.DestSnid } return 0 } func (x *MessageInfo) GetCoin() int64 { if x != nil { return x.Coin } return 0 } func (x *MessageInfo) GetGiftId() string { if x != nil { return x.GiftId } return "" } func (x *MessageInfo) GetGiftState() int32 { if x != nil { return x.GiftState } return 0 } func (x *MessageInfo) GetPlatform() string { if x != nil { return x.Platform } return "" } type HorseRaceLamp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` Platform string `protobuf:"bytes,2,opt,name=Platform,proto3" json:"Platform,omitempty"` Title string `protobuf:"bytes,3,opt,name=Title,proto3" json:"Title,omitempty"` Content string `protobuf:"bytes,4,opt,name=Content,proto3" json:"Content,omitempty"` //公告内容 Footer string `protobuf:"bytes,5,opt,name=Footer,proto3" json:"Footer,omitempty"` StartTime int64 `protobuf:"varint,6,opt,name=StartTime,proto3" json:"StartTime,omitempty"` //开始时间 Frequency int32 `protobuf:"varint,7,opt,name=Frequency,proto3" json:"Frequency,omitempty"` // 公告间隔 State int32 `protobuf:"varint,8,opt,name=State,proto3" json:"State,omitempty"` // 状态:0.启用;1.关闭 CreateTime int64 `protobuf:"varint,9,opt,name=CreateTime,proto3" json:"CreateTime,omitempty"` //创建时间 Count int32 `protobuf:"varint,10,opt,name=Count,proto3" json:"Count,omitempty"` //播放次数 Priority int32 `protobuf:"varint,11,opt,name=Priority,proto3" json:"Priority,omitempty"` //播放优先级 MsgType int32 `protobuf:"varint,12,opt,name=MsgType,proto3" json:"MsgType,omitempty"` //公告类型 Target []int32 `protobuf:"varint,13,rep,packed,name=Target,proto3" json:"Target,omitempty"` StandSec int32 `protobuf:"varint,14,opt,name=StandSec,proto3" json:"StandSec,omitempty"` } func (x *HorseRaceLamp) Reset() { *x = HorseRaceLamp{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HorseRaceLamp) String() string { return protoimpl.X.MessageStringOf(x) } func (*HorseRaceLamp) ProtoMessage() {} func (x *HorseRaceLamp) ProtoReflect() protoreflect.Message { mi := &file_common_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 HorseRaceLamp.ProtoReflect.Descriptor instead. func (*HorseRaceLamp) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{20} } func (x *HorseRaceLamp) GetId() string { if x != nil { return x.Id } return "" } func (x *HorseRaceLamp) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *HorseRaceLamp) GetTitle() string { if x != nil { return x.Title } return "" } func (x *HorseRaceLamp) GetContent() string { if x != nil { return x.Content } return "" } func (x *HorseRaceLamp) GetFooter() string { if x != nil { return x.Footer } return "" } func (x *HorseRaceLamp) GetStartTime() int64 { if x != nil { return x.StartTime } return 0 } func (x *HorseRaceLamp) GetFrequency() int32 { if x != nil { return x.Frequency } return 0 } func (x *HorseRaceLamp) GetState() int32 { if x != nil { return x.State } return 0 } func (x *HorseRaceLamp) GetCreateTime() int64 { if x != nil { return x.CreateTime } return 0 } func (x *HorseRaceLamp) GetCount() int32 { if x != nil { return x.Count } return 0 } func (x *HorseRaceLamp) GetPriority() int32 { if x != nil { return x.Priority } return 0 } func (x *HorseRaceLamp) GetMsgType() int32 { if x != nil { return x.MsgType } return 0 } func (x *HorseRaceLamp) GetTarget() []int32 { if x != nil { return x.Target } return nil } func (x *HorseRaceLamp) GetStandSec() int32 { if x != nil { return x.StandSec } return 0 } //在线统计 type OnlineGameCnt struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GameId int32 `protobuf:"varint,1,opt,name=GameId,proto3" json:"GameId,omitempty"` //游戏id Cnt int32 `protobuf:"varint,2,opt,name=Cnt,proto3" json:"Cnt,omitempty"` //在线人数 } func (x *OnlineGameCnt) Reset() { *x = OnlineGameCnt{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OnlineGameCnt) String() string { return protoimpl.X.MessageStringOf(x) } func (*OnlineGameCnt) ProtoMessage() {} func (x *OnlineGameCnt) ProtoReflect() protoreflect.Message { mi := &file_common_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 OnlineGameCnt.ProtoReflect.Descriptor instead. func (*OnlineGameCnt) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{21} } func (x *OnlineGameCnt) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *OnlineGameCnt) GetCnt() int32 { if x != nil { return x.Cnt } return 0 } type OnlineReport struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TotalCnt int32 `protobuf:"varint,1,opt,name=TotalCnt,proto3" json:"TotalCnt,omitempty"` // 在线总人数 AndroidOnlineCnt int32 `protobuf:"varint,2,opt,name=AndroidOnlineCnt,proto3" json:"AndroidOnlineCnt,omitempty"` //android在线 IosOnlineCnt int32 `protobuf:"varint,3,opt,name=IosOnlineCnt,proto3" json:"IosOnlineCnt,omitempty"` // ios在线 DatingPlayers int32 `protobuf:"varint,4,opt,name=DatingPlayers,proto3" json:"DatingPlayers,omitempty"` // 总大厅人数 OnRoomPlayers int32 `protobuf:"varint,5,opt,name=OnRoomPlayers,proto3" json:"OnRoomPlayers,omitempty"` // 正在游戏房间人数 TodayRegisterOnline int32 `protobuf:"varint,6,opt,name=TodayRegisterOnline,proto3" json:"TodayRegisterOnline,omitempty"` // 当天注册在线 SevenDayRegisterOnline int32 `protobuf:"varint,7,opt,name=SevenDayRegisterOnline,proto3" json:"SevenDayRegisterOnline,omitempty"` GameCount []*OnlineGameCnt `protobuf:"bytes,8,rep,name=GameCount,proto3" json:"GameCount,omitempty"` // 1-7天注册在线 } func (x *OnlineReport) Reset() { *x = OnlineReport{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OnlineReport) String() string { return protoimpl.X.MessageStringOf(x) } func (*OnlineReport) ProtoMessage() {} func (x *OnlineReport) ProtoReflect() protoreflect.Message { mi := &file_common_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 OnlineReport.ProtoReflect.Descriptor instead. func (*OnlineReport) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{22} } func (x *OnlineReport) GetTotalCnt() int32 { if x != nil { return x.TotalCnt } return 0 } func (x *OnlineReport) GetAndroidOnlineCnt() int32 { if x != nil { return x.AndroidOnlineCnt } return 0 } func (x *OnlineReport) GetIosOnlineCnt() int32 { if x != nil { return x.IosOnlineCnt } return 0 } func (x *OnlineReport) GetDatingPlayers() int32 { if x != nil { return x.DatingPlayers } return 0 } func (x *OnlineReport) GetOnRoomPlayers() int32 { if x != nil { return x.OnRoomPlayers } return 0 } func (x *OnlineReport) GetTodayRegisterOnline() int32 { if x != nil { return x.TodayRegisterOnline } return 0 } func (x *OnlineReport) GetSevenDayRegisterOnline() int32 { if x != nil { return x.SevenDayRegisterOnline } return 0 } func (x *OnlineReport) GetGameCount() []*OnlineGameCnt { if x != nil { return x.GameCount } return nil } type CommonNotice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Sort int32 `protobuf:"varint,1,opt,name=Sort,proto3" json:"Sort,omitempty"` Title string `protobuf:"bytes,2,opt,name=Title,proto3" json:"Title,omitempty"` Content string `protobuf:"bytes,3,opt,name=Content,proto3" json:"Content,omitempty"` TypeName string `protobuf:"bytes,4,opt,name=TypeName,proto3" json:"TypeName,omitempty"` Type int32 `protobuf:"varint,5,opt,name=Type,proto3" json:"Type,omitempty"` StartTime int64 `protobuf:"varint,6,opt,name=StartTime,proto3" json:"StartTime,omitempty"` EndTime int64 `protobuf:"varint,7,opt,name=EndTime,proto3" json:"EndTime,omitempty"` Platform string `protobuf:"bytes,8,opt,name=Platform,proto3" json:"Platform,omitempty"` CategoryType int32 `protobuf:"varint,9,opt,name=CategoryType,proto3" json:"CategoryType,omitempty"` ImgUrl string `protobuf:"bytes,10,opt,name=ImgUrl,proto3" json:"ImgUrl,omitempty"` NoticeId int32 `protobuf:"varint,11,opt,name=NoticeId,proto3" json:"NoticeId,omitempty"` IsLoop int32 `protobuf:"varint,12,opt,name=IsLoop,proto3" json:"IsLoop,omitempty"` LoopTime int32 `protobuf:"varint,13,opt,name=LoopTime,proto3" json:"LoopTime,omitempty"` OnChannelName []string `protobuf:"bytes,14,rep,name=OnChannelName,proto3" json:"OnChannelName,omitempty"` Url string `protobuf:"bytes,15,opt,name=Url,proto3" json:"Url,omitempty"` } func (x *CommonNotice) Reset() { *x = CommonNotice{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommonNotice) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommonNotice) ProtoMessage() {} func (x *CommonNotice) ProtoReflect() protoreflect.Message { mi := &file_common_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 CommonNotice.ProtoReflect.Descriptor instead. func (*CommonNotice) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{23} } func (x *CommonNotice) GetSort() int32 { if x != nil { return x.Sort } return 0 } func (x *CommonNotice) GetTitle() string { if x != nil { return x.Title } return "" } func (x *CommonNotice) GetContent() string { if x != nil { return x.Content } return "" } func (x *CommonNotice) GetTypeName() string { if x != nil { return x.TypeName } return "" } func (x *CommonNotice) GetType() int32 { if x != nil { return x.Type } return 0 } func (x *CommonNotice) GetStartTime() int64 { if x != nil { return x.StartTime } return 0 } func (x *CommonNotice) GetEndTime() int64 { if x != nil { return x.EndTime } return 0 } func (x *CommonNotice) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *CommonNotice) GetCategoryType() int32 { if x != nil { return x.CategoryType } return 0 } func (x *CommonNotice) GetImgUrl() string { if x != nil { return x.ImgUrl } return "" } func (x *CommonNotice) GetNoticeId() int32 { if x != nil { return x.NoticeId } return 0 } func (x *CommonNotice) GetIsLoop() int32 { if x != nil { return x.IsLoop } return 0 } func (x *CommonNotice) GetLoopTime() int32 { if x != nil { return x.LoopTime } return 0 } func (x *CommonNotice) GetOnChannelName() []string { if x != nil { return x.OnChannelName } return nil } func (x *CommonNotice) GetUrl() string { if x != nil { return x.Url } return "" } type CommonNoticeList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields List []*CommonNotice `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` Platform string `protobuf:"bytes,2,opt,name=Platform,proto3" json:"Platform,omitempty"` } func (x *CommonNoticeList) Reset() { *x = CommonNoticeList{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommonNoticeList) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommonNoticeList) ProtoMessage() {} func (x *CommonNoticeList) ProtoReflect() protoreflect.Message { mi := &file_common_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 CommonNoticeList.ProtoReflect.Descriptor instead. func (*CommonNoticeList) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{24} } func (x *CommonNoticeList) GetList() []*CommonNotice { if x != nil { return x.List } return nil } func (x *CommonNoticeList) GetPlatform() string { if x != nil { return x.Platform } return "" } type ExchangeShop struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //商品ID Picture string `protobuf:"bytes,2,opt,name=Picture,proto3" json:"Picture,omitempty"` // 图片 Type int32 `protobuf:"varint,3,opt,name=Type,proto3" json:"Type,omitempty"` // 类型 1,话费2,实物 3.道具 4.娃娃 Name string `protobuf:"bytes,4,opt,name=Name,proto3" json:"Name,omitempty"` // 名称 Content string `protobuf:"bytes,5,opt,name=Content,proto3" json:"Content,omitempty"` //规则说明 //int32 ShopLimit = 6; // 剩余总数 //int32 DayMaxLimit = 7; // 单日限购总数 DayPlayLimit int32 `protobuf:"varint,8,opt,name=DayPlayLimit,proto3" json:"DayPlayLimit,omitempty"` // 个人单日购买 ExType []*ExchangeType `protobuf:"bytes,9,rep,name=ExType,proto3" json:"ExType,omitempty"` //兑换类型 TelCharge int32 `protobuf:"varint,10,opt,name=TelCharge,proto3" json:"TelCharge,omitempty"` //话费 ItemId int32 `protobuf:"varint,11,opt,name=ItemId,proto3" json:"ItemId,omitempty"` //转化的道具Id VipDayMaxLimit int32 `protobuf:"varint,12,opt,name=VipDayMaxLimit,proto3" json:"VipDayMaxLimit,omitempty"` //VIP每日限购 NotVipDayMaxLimit int32 `protobuf:"varint,13,opt,name=NotVipDayMaxLimit,proto3" json:"NotVipDayMaxLimit,omitempty"` //非VIP每日限购 VipShopLimit int32 `protobuf:"varint,14,opt,name=VipShopLimit,proto3" json:"VipShopLimit,omitempty"` //VIP限购总数 NotVipShopLimit int32 `protobuf:"varint,15,opt,name=NotVipShopLimit,proto3" json:"NotVipShopLimit,omitempty"` //非VIP限购总数 ShopType int32 `protobuf:"varint,16,opt,name=ShopType,proto3" json:"ShopType,omitempty"` //商品类型 TelData []*TelChargeData `protobuf:"bytes,17,rep,name=TelData,proto3" json:"TelData,omitempty"` Items []*ItemInfo `protobuf:"bytes,18,rep,name=Items,proto3" json:"Items,omitempty"` } func (x *ExchangeShop) Reset() { *x = ExchangeShop{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ExchangeShop) String() string { return protoimpl.X.MessageStringOf(x) } func (*ExchangeShop) ProtoMessage() {} func (x *ExchangeShop) ProtoReflect() protoreflect.Message { mi := &file_common_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 ExchangeShop.ProtoReflect.Descriptor instead. func (*ExchangeShop) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{25} } func (x *ExchangeShop) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *ExchangeShop) GetPicture() string { if x != nil { return x.Picture } return "" } func (x *ExchangeShop) GetType() int32 { if x != nil { return x.Type } return 0 } func (x *ExchangeShop) GetName() string { if x != nil { return x.Name } return "" } func (x *ExchangeShop) GetContent() string { if x != nil { return x.Content } return "" } func (x *ExchangeShop) GetDayPlayLimit() int32 { if x != nil { return x.DayPlayLimit } return 0 } func (x *ExchangeShop) GetExType() []*ExchangeType { if x != nil { return x.ExType } return nil } func (x *ExchangeShop) GetTelCharge() int32 { if x != nil { return x.TelCharge } return 0 } func (x *ExchangeShop) GetItemId() int32 { if x != nil { return x.ItemId } return 0 } func (x *ExchangeShop) GetVipDayMaxLimit() int32 { if x != nil { return x.VipDayMaxLimit } return 0 } func (x *ExchangeShop) GetNotVipDayMaxLimit() int32 { if x != nil { return x.NotVipDayMaxLimit } return 0 } func (x *ExchangeShop) GetVipShopLimit() int32 { if x != nil { return x.VipShopLimit } return 0 } func (x *ExchangeShop) GetNotVipShopLimit() int32 { if x != nil { return x.NotVipShopLimit } return 0 } func (x *ExchangeShop) GetShopType() int32 { if x != nil { return x.ShopType } return 0 } func (x *ExchangeShop) GetTelData() []*TelChargeData { if x != nil { return x.TelData } return nil } func (x *ExchangeShop) GetItems() []*ItemInfo { if x != nil { return x.Items } return nil } type TelChargeData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` Url string `protobuf:"bytes,3,opt,name=Url,proto3" json:"Url,omitempty"` } func (x *TelChargeData) Reset() { *x = TelChargeData{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TelChargeData) String() string { return protoimpl.X.MessageStringOf(x) } func (*TelChargeData) ProtoMessage() {} func (x *TelChargeData) ProtoReflect() protoreflect.Message { mi := &file_common_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 TelChargeData.ProtoReflect.Descriptor instead. func (*TelChargeData) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{26} } func (x *TelChargeData) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *TelChargeData) GetName() string { if x != nil { return x.Name } return "" } func (x *TelChargeData) GetUrl() string { if x != nil { return x.Url } return "" } //兑换类型 type ExchangeType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Price int32 `protobuf:"varint,1,opt,name=Price,proto3" json:"Price,omitempty"` // 消耗V卡数量 JPrice int32 `protobuf:"varint,2,opt,name=JPrice,proto3" json:"JPrice,omitempty"` //消耗金券数量 Cash int32 `protobuf:"varint,3,opt,name=Cash,proto3" json:"Cash,omitempty"` //消耗现金数量 DPrice int32 `protobuf:"varint,4,opt,name=DPrice,proto3" json:"DPrice,omitempty"` //消耗娃娃卡数量 Id int32 `protobuf:"varint,5,opt,name=Id,proto3" json:"Id,omitempty"` //行数 } func (x *ExchangeType) Reset() { *x = ExchangeType{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ExchangeType) String() string { return protoimpl.X.MessageStringOf(x) } func (*ExchangeType) ProtoMessage() {} func (x *ExchangeType) ProtoReflect() protoreflect.Message { mi := &file_common_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 ExchangeType.ProtoReflect.Descriptor instead. func (*ExchangeType) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{27} } func (x *ExchangeType) GetPrice() int32 { if x != nil { return x.Price } return 0 } func (x *ExchangeType) GetJPrice() int32 { if x != nil { return x.JPrice } return 0 } func (x *ExchangeType) GetCash() int32 { if x != nil { return x.Cash } return 0 } func (x *ExchangeType) GetDPrice() int32 { if x != nil { return x.DPrice } return 0 } func (x *ExchangeType) GetId() int32 { if x != nil { return x.Id } return 0 } // etcd /game/exchange_shop type ExchangeShopList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields List []*ExchangeShop `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` Platform string `protobuf:"bytes,2,opt,name=Platform,proto3" json:"Platform,omitempty"` Weight []*ShopWeight `protobuf:"bytes,3,rep,name=Weight,proto3" json:"Weight,omitempty"` //分类排序 } func (x *ExchangeShopList) Reset() { *x = ExchangeShopList{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ExchangeShopList) String() string { return protoimpl.X.MessageStringOf(x) } func (*ExchangeShopList) ProtoMessage() {} func (x *ExchangeShopList) ProtoReflect() protoreflect.Message { mi := &file_common_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 ExchangeShopList.ProtoReflect.Descriptor instead. func (*ExchangeShopList) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{28} } func (x *ExchangeShopList) GetList() []*ExchangeShop { if x != nil { return x.List } return nil } func (x *ExchangeShopList) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *ExchangeShopList) GetWeight() []*ShopWeight { if x != nil { return x.Weight } return nil } type ShopWeight struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ShopType int32 `protobuf:"varint,1,opt,name=ShopType,proto3" json:"ShopType,omitempty"` Weight int32 `protobuf:"varint,2,opt,name=Weight,proto3" json:"Weight,omitempty"` Name string `protobuf:"bytes,3,opt,name=Name,proto3" json:"Name,omitempty"` IsShow int32 `protobuf:"varint,4,opt,name=IsShow,proto3" json:"IsShow,omitempty"` Location []int32 `protobuf:"varint,5,rep,packed,name=Location,proto3" json:"Location,omitempty"` // 显示位置 } func (x *ShopWeight) Reset() { *x = ShopWeight{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ShopWeight) String() string { return protoimpl.X.MessageStringOf(x) } func (*ShopWeight) ProtoMessage() {} func (x *ShopWeight) ProtoReflect() protoreflect.Message { mi := &file_common_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 ShopWeight.ProtoReflect.Descriptor instead. func (*ShopWeight) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{29} } func (x *ShopWeight) GetShopType() int32 { if x != nil { return x.ShopType } return 0 } func (x *ShopWeight) GetWeight() int32 { if x != nil { return x.Weight } return 0 } func (x *ShopWeight) GetName() string { if x != nil { return x.Name } return "" } func (x *ShopWeight) GetIsShow() int32 { if x != nil { return x.IsShow } return 0 } func (x *ShopWeight) GetLocation() []int32 { if x != nil { return x.Location } return nil } type ItemShop struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //商品ID ItemId int32 `protobuf:"varint,2,opt,name=ItemId,proto3" json:"ItemId,omitempty"` //道具ID Page int32 `protobuf:"varint,3,opt,name=Page,proto3" json:"Page,omitempty"` //页面 1,金币页面 2,钻石页面 3,道具页面 Order int32 `protobuf:"varint,4,opt,name=Order,proto3" json:"Order,omitempty"` //排序 页面内商品的位置排序 Type int32 `protobuf:"varint,5,opt,name=Type,proto3" json:"Type,omitempty"` // 类型 1,金币 2,钻石 3,道具类型1:用金币或者钻石购买 4.道具类型2:走充值购买 5,其他 Location []int32 `protobuf:"varint,6,rep,packed,name=Location,proto3" json:"Location,omitempty"` // 显示位置 第1位,竖版大厅 第2位,Tienlen1级选场 第3位,捕鱼1级选场 Picture string `protobuf:"bytes,7,opt,name=Picture,proto3" json:"Picture,omitempty"` // 图片id Name string `protobuf:"bytes,8,opt,name=Name,proto3" json:"Name,omitempty"` // 名称 Ad int32 `protobuf:"varint,9,opt,name=Ad,proto3" json:"Ad,omitempty"` //是否观看广告 1,是 2,不是 AdTime int32 `protobuf:"varint,10,opt,name=AdTime,proto3" json:"AdTime,omitempty"` // 观看几次广告 RepeatTimes int32 `protobuf:"varint,11,opt,name=RepeatTimes,proto3" json:"RepeatTimes,omitempty"` // 领取次数 CoolingTime []int32 `protobuf:"varint,12,rep,packed,name=CoolingTime,proto3" json:"CoolingTime,omitempty"` // 观看冷却时间 Label []int32 `protobuf:"varint,13,rep,packed,name=Label,proto3" json:"Label,omitempty"` // 标签 AddArea []int32 `protobuf:"varint,14,rep,packed,name=AddArea,proto3" json:"AddArea,omitempty"` // 加送百分比 Amount int32 `protobuf:"varint,15,opt,name=Amount,proto3" json:"Amount,omitempty"` // 货币金额 ConstType int32 `protobuf:"varint,16,opt,name=ConstType,proto3" json:"ConstType,omitempty"` // 购买消耗类型 1,金币 2,钻石 3,美金 4,柬埔寨币 CostArea []int32 `protobuf:"varint,17,rep,packed,name=CostArea,proto3" json:"CostArea,omitempty"` //消耗区间 Award map[int64]int64 `protobuf:"bytes,18,rep,name=Award,proto3" json:"Award,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //加赠物品 VipLevel int32 `protobuf:"varint,19,opt,name=VipLevel,proto3" json:"VipLevel,omitempty"` //Vip等级限制 Ratio int32 `protobuf:"varint,20,opt,name=Ratio,proto3" json:"Ratio,omitempty"` //权重 EndTime int32 `protobuf:"varint,21,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //新手礼包结束时间间隔 FirstSwitch bool `protobuf:"varint,22,opt,name=FirstSwitch,proto3" json:"FirstSwitch,omitempty"` //首冲翻倍开关 } func (x *ItemShop) Reset() { *x = ItemShop{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ItemShop) String() string { return protoimpl.X.MessageStringOf(x) } func (*ItemShop) ProtoMessage() {} func (x *ItemShop) ProtoReflect() protoreflect.Message { mi := &file_common_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 ItemShop.ProtoReflect.Descriptor instead. func (*ItemShop) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{30} } func (x *ItemShop) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *ItemShop) GetItemId() int32 { if x != nil { return x.ItemId } return 0 } func (x *ItemShop) GetPage() int32 { if x != nil { return x.Page } return 0 } func (x *ItemShop) GetOrder() int32 { if x != nil { return x.Order } return 0 } func (x *ItemShop) GetType() int32 { if x != nil { return x.Type } return 0 } func (x *ItemShop) GetLocation() []int32 { if x != nil { return x.Location } return nil } func (x *ItemShop) GetPicture() string { if x != nil { return x.Picture } return "" } func (x *ItemShop) GetName() string { if x != nil { return x.Name } return "" } func (x *ItemShop) GetAd() int32 { if x != nil { return x.Ad } return 0 } func (x *ItemShop) GetAdTime() int32 { if x != nil { return x.AdTime } return 0 } func (x *ItemShop) GetRepeatTimes() int32 { if x != nil { return x.RepeatTimes } return 0 } func (x *ItemShop) GetCoolingTime() []int32 { if x != nil { return x.CoolingTime } return nil } func (x *ItemShop) GetLabel() []int32 { if x != nil { return x.Label } return nil } func (x *ItemShop) GetAddArea() []int32 { if x != nil { return x.AddArea } return nil } func (x *ItemShop) GetAmount() int32 { if x != nil { return x.Amount } return 0 } func (x *ItemShop) GetConstType() int32 { if x != nil { return x.ConstType } return 0 } func (x *ItemShop) GetCostArea() []int32 { if x != nil { return x.CostArea } return nil } func (x *ItemShop) GetAward() map[int64]int64 { if x != nil { return x.Award } return nil } func (x *ItemShop) GetVipLevel() int32 { if x != nil { return x.VipLevel } return 0 } func (x *ItemShop) GetRatio() int32 { if x != nil { return x.Ratio } return 0 } func (x *ItemShop) GetEndTime() int32 { if x != nil { return x.EndTime } return 0 } func (x *ItemShop) GetFirstSwitch() bool { if x != nil { return x.FirstSwitch } return false } // etcd /game/item_shop type ItemShopList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields List []*ItemShop `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` Platform string `protobuf:"bytes,2,opt,name=Platform,proto3" json:"Platform,omitempty"` } func (x *ItemShopList) Reset() { *x = ItemShopList{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ItemShopList) String() string { return protoimpl.X.MessageStringOf(x) } func (*ItemShopList) ProtoMessage() {} func (x *ItemShopList) ProtoReflect() protoreflect.Message { mi := &file_common_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 ItemShopList.ProtoReflect.Descriptor instead. func (*ItemShopList) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{31} } func (x *ItemShopList) GetList() []*ItemShop { if x != nil { return x.List } return nil } func (x *ItemShopList) GetPlatform() string { if x != nil { return x.Platform } return "" } //物品信息 type ItemInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ItemId int32 `protobuf:"varint,1,opt,name=ItemId,proto3" json:"ItemId,omitempty"` // 物品ID ItemNum int64 `protobuf:"varint,2,opt,name=ItemNum,proto3" json:"ItemNum,omitempty"` // 物品数量 Name string `protobuf:"bytes,3,opt,name=Name,proto3" json:"Name,omitempty"` // 名称 } func (x *ItemInfo) Reset() { *x = ItemInfo{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ItemInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ItemInfo) ProtoMessage() {} func (x *ItemInfo) ProtoReflect() protoreflect.Message { mi := &file_common_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 ItemInfo.ProtoReflect.Descriptor instead. func (*ItemInfo) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{32} } func (x *ItemInfo) GetItemId() int32 { if x != nil { return x.ItemId } return 0 } func (x *ItemInfo) GetItemNum() int64 { if x != nil { return x.ItemNum } return 0 } func (x *ItemInfo) GetName() string { if x != nil { return x.Name } return "" } type MatchInfoAward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ItemId []*ItemInfo `protobuf:"bytes,1,rep,name=ItemId,proto3" json:"ItemId,omitempty"` // 道具 Coin int64 `protobuf:"varint,2,opt,name=Coin,proto3" json:"Coin,omitempty"` // 金币 Diamond int64 `protobuf:"varint,3,opt,name=Diamond,proto3" json:"Diamond,omitempty"` // 钻石、 UpLimit int32 `protobuf:"varint,4,opt,name=UpLimit,proto3" json:"UpLimit,omitempty"` // 名次上行 DownLimit int32 `protobuf:"varint,5,opt,name=DownLimit,proto3" json:"DownLimit,omitempty"` // 名次下行 例如 第一名为 UpLimit 1,DownLimit 1 4~10为 UpLimit 4,DownLimit 10 } func (x *MatchInfoAward) Reset() { *x = MatchInfoAward{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MatchInfoAward) String() string { return protoimpl.X.MessageStringOf(x) } func (*MatchInfoAward) ProtoMessage() {} func (x *MatchInfoAward) ProtoReflect() protoreflect.Message { mi := &file_common_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 MatchInfoAward.ProtoReflect.Descriptor instead. func (*MatchInfoAward) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{33} } func (x *MatchInfoAward) GetItemId() []*ItemInfo { if x != nil { return x.ItemId } return nil } func (x *MatchInfoAward) GetCoin() int64 { if x != nil { return x.Coin } return 0 } func (x *MatchInfoAward) GetDiamond() int64 { if x != nil { return x.Diamond } return 0 } func (x *MatchInfoAward) GetUpLimit() int32 { if x != nil { return x.UpLimit } return 0 } func (x *MatchInfoAward) GetDownLimit() int32 { if x != nil { return x.DownLimit } return 0 } // 比赛场配置 type GameMatchDate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 序号 GameFreeId int32 `protobuf:"varint,2,opt,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` // 玩法类型 所用的玩法ID MatchType int32 `protobuf:"varint,3,opt,name=MatchType,proto3" json:"MatchType,omitempty"` // 比赛类型 1.锦标赛 2.冠军赛 MatchName string `protobuf:"bytes,4,opt,name=MatchName,proto3" json:"MatchName,omitempty"` // 场次名字 MatchNumebr int32 `protobuf:"varint,5,opt,name=MatchNumebr,proto3" json:"MatchNumebr,omitempty"` // 报名人数 MatchPromotion []int32 `protobuf:"varint,6,rep,packed,name=MatchPromotion,proto3" json:"MatchPromotion,omitempty"` // 晋级方式 MatchSwitch int32 `protobuf:"varint,7,opt,name=MatchSwitch,proto3" json:"MatchSwitch,omitempty"` // 1.开启 2.关闭 Award []*MatchInfoAward `protobuf:"bytes,8,rep,name=Award,proto3" json:"Award,omitempty"` // 比赛奖励 SignupCostCoin int64 `protobuf:"varint,9,opt,name=SignupCostCoin,proto3" json:"SignupCostCoin,omitempty"` //报名消耗金币 SignupCostDiamond int64 `protobuf:"varint,10,opt,name=SignupCostDiamond,proto3" json:"SignupCostDiamond,omitempty"` //报名消耗钻石 SignupCostItem *ItemInfo `protobuf:"bytes,11,opt,name=SignupCostItem,proto3" json:"SignupCostItem,omitempty"` //报名消耗道具 MatchTimeType int32 `protobuf:"varint,12,opt,name=MatchTimeType,proto3" json:"MatchTimeType,omitempty"` //冠军赛时效类型 0无时效 1重复时间段 2一次性时间段 MatchTimeWeek []int32 `protobuf:"varint,13,rep,packed,name=MatchTimeWeek,proto3" json:"MatchTimeWeek,omitempty"` //周几 MatchTimeStartHMS int32 `protobuf:"varint,14,opt,name=MatchTimeStartHMS,proto3" json:"MatchTimeStartHMS,omitempty"` //几点开始(时*10000 + 分*100 + 秒) MatchTimeEndHMS int32 `protobuf:"varint,15,opt,name=MatchTimeEndHMS,proto3" json:"MatchTimeEndHMS,omitempty"` //几点结束(时*10000 + 分*100 + 秒) MatchTimeStamp []int64 `protobuf:"varint,16,rep,packed,name=MatchTimeStamp,proto3" json:"MatchTimeStamp,omitempty"` //哪一天(时间戳:开始时间戳-结束时间戳) TitleURL string `protobuf:"bytes,17,opt,name=TitleURL,proto3" json:"TitleURL,omitempty"` //比赛标题后台自定义 AwardShow string `protobuf:"bytes,18,opt,name=AwardShow,proto3" json:"AwardShow,omitempty"` //主要奖励展示 Rule string `protobuf:"bytes,19,opt,name=Rule,proto3" json:"Rule,omitempty"` SortId int32 `protobuf:"varint,20,opt,name=SortId,proto3" json:"SortId,omitempty"` UseRobot int32 `protobuf:"varint,21,opt,name=UseRobot,proto3" json:"UseRobot,omitempty"` //0机器人有参与 1纯真人 MatchLevel int32 `protobuf:"varint,22,opt,name=MatchLevel,proto3" json:"MatchLevel,omitempty"` // 难度等级 OnChannelName []string `protobuf:"bytes,23,rep,name=OnChannelName,proto3" json:"OnChannelName,omitempty"` // 开启的渠道名称 CardType int32 `protobuf:"varint,24,opt,name=CardType,proto3" json:"CardType,omitempty"` // 手机卡类型 ShowId int32 `protobuf:"varint,25,opt,name=ShowId,proto3" json:"ShowId,omitempty"` // 比赛区分 AwardNum int32 `protobuf:"varint,26,opt,name=AwardNum,proto3" json:"AwardNum,omitempty"` //比赛奖励剩余数量 AudienceSwitch int32 `protobuf:"varint,27,opt,name=AudienceSwitch,proto3" json:"AudienceSwitch,omitempty"` // 观战开关 1开启 2关闭 } func (x *GameMatchDate) Reset() { *x = GameMatchDate{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GameMatchDate) String() string { return protoimpl.X.MessageStringOf(x) } func (*GameMatchDate) ProtoMessage() {} func (x *GameMatchDate) ProtoReflect() protoreflect.Message { mi := &file_common_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 GameMatchDate.ProtoReflect.Descriptor instead. func (*GameMatchDate) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{34} } func (x *GameMatchDate) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *GameMatchDate) GetGameFreeId() int32 { if x != nil { return x.GameFreeId } return 0 } func (x *GameMatchDate) GetMatchType() int32 { if x != nil { return x.MatchType } return 0 } func (x *GameMatchDate) GetMatchName() string { if x != nil { return x.MatchName } return "" } func (x *GameMatchDate) GetMatchNumebr() int32 { if x != nil { return x.MatchNumebr } return 0 } func (x *GameMatchDate) GetMatchPromotion() []int32 { if x != nil { return x.MatchPromotion } return nil } func (x *GameMatchDate) GetMatchSwitch() int32 { if x != nil { return x.MatchSwitch } return 0 } func (x *GameMatchDate) GetAward() []*MatchInfoAward { if x != nil { return x.Award } return nil } func (x *GameMatchDate) GetSignupCostCoin() int64 { if x != nil { return x.SignupCostCoin } return 0 } func (x *GameMatchDate) GetSignupCostDiamond() int64 { if x != nil { return x.SignupCostDiamond } return 0 } func (x *GameMatchDate) GetSignupCostItem() *ItemInfo { if x != nil { return x.SignupCostItem } return nil } func (x *GameMatchDate) GetMatchTimeType() int32 { if x != nil { return x.MatchTimeType } return 0 } func (x *GameMatchDate) GetMatchTimeWeek() []int32 { if x != nil { return x.MatchTimeWeek } return nil } func (x *GameMatchDate) GetMatchTimeStartHMS() int32 { if x != nil { return x.MatchTimeStartHMS } return 0 } func (x *GameMatchDate) GetMatchTimeEndHMS() int32 { if x != nil { return x.MatchTimeEndHMS } return 0 } func (x *GameMatchDate) GetMatchTimeStamp() []int64 { if x != nil { return x.MatchTimeStamp } return nil } func (x *GameMatchDate) GetTitleURL() string { if x != nil { return x.TitleURL } return "" } func (x *GameMatchDate) GetAwardShow() string { if x != nil { return x.AwardShow } return "" } func (x *GameMatchDate) GetRule() string { if x != nil { return x.Rule } return "" } func (x *GameMatchDate) GetSortId() int32 { if x != nil { return x.SortId } return 0 } func (x *GameMatchDate) GetUseRobot() int32 { if x != nil { return x.UseRobot } return 0 } func (x *GameMatchDate) GetMatchLevel() int32 { if x != nil { return x.MatchLevel } return 0 } func (x *GameMatchDate) GetOnChannelName() []string { if x != nil { return x.OnChannelName } return nil } func (x *GameMatchDate) GetCardType() int32 { if x != nil { return x.CardType } return 0 } func (x *GameMatchDate) GetShowId() int32 { if x != nil { return x.ShowId } return 0 } func (x *GameMatchDate) GetAwardNum() int32 { if x != nil { return x.AwardNum } return 0 } func (x *GameMatchDate) GetAudienceSwitch() int32 { if x != nil { return x.AudienceSwitch } return 0 } // etcd /game/game_match type GameMatchDateList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields List []*GameMatchDate `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` Platform string `protobuf:"bytes,2,opt,name=Platform,proto3" json:"Platform,omitempty"` } func (x *GameMatchDateList) Reset() { *x = GameMatchDateList{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GameMatchDateList) String() string { return protoimpl.X.MessageStringOf(x) } func (*GameMatchDateList) ProtoMessage() {} func (x *GameMatchDateList) ProtoReflect() protoreflect.Message { mi := &file_common_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 GameMatchDateList.ProtoReflect.Descriptor instead. func (*GameMatchDateList) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{35} } func (x *GameMatchDateList) GetList() []*GameMatchDate { if x != nil { return x.List } return nil } func (x *GameMatchDateList) GetPlatform() string { if x != nil { return x.Platform } return "" } type MatchTypeInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` // 名称 SortId int32 `protobuf:"varint,2,opt,name=SortId,proto3" json:"SortId,omitempty"` // 序号 On bool `protobuf:"varint,3,opt,name=On,proto3" json:"On,omitempty"` // 开关 Id int32 `protobuf:"varint,4,opt,name=Id,proto3" json:"Id,omitempty"` // 类型id } func (x *MatchTypeInfo) Reset() { *x = MatchTypeInfo{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MatchTypeInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*MatchTypeInfo) ProtoMessage() {} func (x *MatchTypeInfo) ProtoReflect() protoreflect.Message { mi := &file_common_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 MatchTypeInfo.ProtoReflect.Descriptor instead. func (*MatchTypeInfo) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{36} } func (x *MatchTypeInfo) GetName() string { if x != nil { return x.Name } return "" } func (x *MatchTypeInfo) GetSortId() int32 { if x != nil { return x.SortId } return 0 } func (x *MatchTypeInfo) GetOn() bool { if x != nil { return x.On } return false } func (x *MatchTypeInfo) GetId() int32 { if x != nil { return x.Id } return 0 } // etcd /game/match_type type GameMatchType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` List []*MatchTypeInfo `protobuf:"bytes,2,rep,name=List,proto3" json:"List,omitempty"` // 比赛类型列表 } func (x *GameMatchType) Reset() { *x = GameMatchType{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GameMatchType) String() string { return protoimpl.X.MessageStringOf(x) } func (*GameMatchType) ProtoMessage() {} func (x *GameMatchType) ProtoReflect() protoreflect.Message { mi := &file_common_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 GameMatchType.ProtoReflect.Descriptor instead. func (*GameMatchType) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{37} } func (x *GameMatchType) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *GameMatchType) GetList() []*MatchTypeInfo { if x != nil { return x.List } return nil } type WelfareDate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Grade int32 `protobuf:"varint,1,opt,name=Grade,proto3" json:"Grade,omitempty"` // 数量 Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 类型1.金币 2.钻石 3.道具 Name string `protobuf:"bytes,3,opt,name=Name,proto3" json:"Name,omitempty"` // 名称 Item_Id int32 `protobuf:"varint,4,opt,name=Item_Id,json=ItemId,proto3" json:"Item_Id,omitempty"` // 道具id } func (x *WelfareDate) Reset() { *x = WelfareDate{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WelfareDate) String() string { return protoimpl.X.MessageStringOf(x) } func (*WelfareDate) ProtoMessage() {} func (x *WelfareDate) ProtoReflect() protoreflect.Message { mi := &file_common_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 WelfareDate.ProtoReflect.Descriptor instead. func (*WelfareDate) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{38} } func (x *WelfareDate) GetGrade() int32 { if x != nil { return x.Grade } return 0 } func (x *WelfareDate) GetType() int32 { if x != nil { return x.Type } return 0 } func (x *WelfareDate) GetName() string { if x != nil { return x.Name } return "" } func (x *WelfareDate) GetItem_Id() int32 { if x != nil { return x.Item_Id } return 0 } type WelfareTurnplateDate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 序号 Date []*WelfareDate `protobuf:"bytes,2,rep,name=Date,proto3" json:"Date,omitempty"` // 奖励 } func (x *WelfareTurnplateDate) Reset() { *x = WelfareTurnplateDate{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WelfareTurnplateDate) String() string { return protoimpl.X.MessageStringOf(x) } func (*WelfareTurnplateDate) ProtoMessage() {} func (x *WelfareTurnplateDate) ProtoReflect() protoreflect.Message { mi := &file_common_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 WelfareTurnplateDate.ProtoReflect.Descriptor instead. func (*WelfareTurnplateDate) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{39} } func (x *WelfareTurnplateDate) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *WelfareTurnplateDate) GetDate() []*WelfareDate { if x != nil { return x.Date } return nil } type WelfareTurnplateRate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Rate []int32 `protobuf:"varint,1,rep,packed,name=Rate,proto3" json:"Rate,omitempty"` // 转盘概率 } func (x *WelfareTurnplateRate) Reset() { *x = WelfareTurnplateRate{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WelfareTurnplateRate) String() string { return protoimpl.X.MessageStringOf(x) } func (*WelfareTurnplateRate) ProtoMessage() {} func (x *WelfareTurnplateRate) ProtoReflect() protoreflect.Message { mi := &file_common_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 WelfareTurnplateRate.ProtoReflect.Descriptor instead. func (*WelfareTurnplateRate) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{40} } func (x *WelfareTurnplateRate) GetRate() []int32 { if x != nil { return x.Rate } return nil } // etcd /game/act_turnplate 转盘 type WelfareTurnplateDateList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields List []*WelfareTurnplateDate `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` // 转盘奖励 RateList []*WelfareTurnplateRate `protobuf:"bytes,2,rep,name=RateList,proto3" json:"RateList,omitempty"` // 转盘概率 Platform string `protobuf:"bytes,3,opt,name=Platform,proto3" json:"Platform,omitempty"` Switch int32 `protobuf:"varint,4,opt,name=Switch,proto3" json:"Switch,omitempty"` // 1.开启 2.关闭 } func (x *WelfareTurnplateDateList) Reset() { *x = WelfareTurnplateDateList{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WelfareTurnplateDateList) String() string { return protoimpl.X.MessageStringOf(x) } func (*WelfareTurnplateDateList) ProtoMessage() {} func (x *WelfareTurnplateDateList) ProtoReflect() protoreflect.Message { mi := &file_common_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 WelfareTurnplateDateList.ProtoReflect.Descriptor instead. func (*WelfareTurnplateDateList) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{41} } func (x *WelfareTurnplateDateList) GetList() []*WelfareTurnplateDate { if x != nil { return x.List } return nil } func (x *WelfareTurnplateDateList) GetRateList() []*WelfareTurnplateRate { if x != nil { return x.RateList } return nil } func (x *WelfareTurnplateDateList) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *WelfareTurnplateDateList) GetSwitch() int32 { if x != nil { return x.Switch } return 0 } type AddUpWelfareDate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields AddUpDay int32 `protobuf:"varint,1,opt,name=AddUpDay,proto3" json:"AddUpDay,omitempty"` // 累计几天 AddUpDate []*WelfareDate `protobuf:"bytes,2,rep,name=AddUpDate,proto3" json:"AddUpDate,omitempty"` // 累计奖励 } func (x *AddUpWelfareDate) Reset() { *x = AddUpWelfareDate{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AddUpWelfareDate) String() string { return protoimpl.X.MessageStringOf(x) } func (*AddUpWelfareDate) ProtoMessage() {} func (x *AddUpWelfareDate) ProtoReflect() protoreflect.Message { mi := &file_common_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 AddUpWelfareDate.ProtoReflect.Descriptor instead. func (*AddUpWelfareDate) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{42} } func (x *AddUpWelfareDate) GetAddUpDay() int32 { if x != nil { return x.AddUpDay } return 0 } func (x *AddUpWelfareDate) GetAddUpDate() []*WelfareDate { if x != nil { return x.AddUpDate } return nil } type AddUpDate2TypeData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Day int32 `protobuf:"varint,1,opt,name=Day,proto3" json:"Day,omitempty"` Id int32 `protobuf:"varint,2,opt,name=Id,proto3" json:"Id,omitempty"` Num int32 `protobuf:"varint,3,opt,name=Num,proto3" json:"Num,omitempty"` } func (x *AddUpDate2TypeData) Reset() { *x = AddUpDate2TypeData{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AddUpDate2TypeData) String() string { return protoimpl.X.MessageStringOf(x) } func (*AddUpDate2TypeData) ProtoMessage() {} func (x *AddUpDate2TypeData) ProtoReflect() protoreflect.Message { mi := &file_common_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 AddUpDate2TypeData.ProtoReflect.Descriptor instead. func (*AddUpDate2TypeData) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{43} } func (x *AddUpDate2TypeData) GetDay() int32 { if x != nil { return x.Day } return 0 } func (x *AddUpDate2TypeData) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *AddUpDate2TypeData) GetNum() int32 { if x != nil { return x.Num } return 0 } type Welfare7SignDate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Day int32 `protobuf:"varint,1,opt,name=Day,proto3" json:"Day,omitempty"` // 第几天 Date []*WelfareDate `protobuf:"bytes,2,rep,name=Date,proto3" json:"Date,omitempty"` // 奖励 AddUpDate []*AddUpWelfareDate `protobuf:"bytes,3,rep,name=AddUpDate,proto3" json:"AddUpDate,omitempty"` // 累计奖励 AddUpDate2 []*AddUpWelfareDate `protobuf:"bytes,4,rep,name=AddUpDate2,proto3" json:"AddUpDate2,omitempty"` //进阶奖励 AddUpDate2Google []*AddUpWelfareDate `protobuf:"bytes,5,rep,name=AddUpDate2Google,proto3" json:"AddUpDate2Google,omitempty"` //谷歌渠道进阶奖励 AddUpDate2Type []*AddUpDate2TypeData `protobuf:"bytes,6,rep,name=AddUpDate2Type,proto3" json:"AddUpDate2Type,omitempty"` //进阶奖励领取条件 } func (x *Welfare7SignDate) Reset() { *x = Welfare7SignDate{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Welfare7SignDate) String() string { return protoimpl.X.MessageStringOf(x) } func (*Welfare7SignDate) ProtoMessage() {} func (x *Welfare7SignDate) ProtoReflect() protoreflect.Message { mi := &file_common_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 Welfare7SignDate.ProtoReflect.Descriptor instead. func (*Welfare7SignDate) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{44} } func (x *Welfare7SignDate) GetDay() int32 { if x != nil { return x.Day } return 0 } func (x *Welfare7SignDate) GetDate() []*WelfareDate { if x != nil { return x.Date } return nil } func (x *Welfare7SignDate) GetAddUpDate() []*AddUpWelfareDate { if x != nil { return x.AddUpDate } return nil } func (x *Welfare7SignDate) GetAddUpDate2() []*AddUpWelfareDate { if x != nil { return x.AddUpDate2 } return nil } func (x *Welfare7SignDate) GetAddUpDate2Google() []*AddUpWelfareDate { if x != nil { return x.AddUpDate2Google } return nil } func (x *Welfare7SignDate) GetAddUpDate2Type() []*AddUpDate2TypeData { if x != nil { return x.AddUpDate2Type } return nil } // etcd /game/act_7sign 7日签到 type Welfare7SignDateList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields List []*Welfare7SignDate `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` // 七日签到 Platform string `protobuf:"bytes,2,opt,name=Platform,proto3" json:"Platform,omitempty"` Switch int32 `protobuf:"varint,3,opt,name=Switch,proto3" json:"Switch,omitempty"` // 1.开启 2.关闭 } func (x *Welfare7SignDateList) Reset() { *x = Welfare7SignDateList{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Welfare7SignDateList) String() string { return protoimpl.X.MessageStringOf(x) } func (*Welfare7SignDateList) ProtoMessage() {} func (x *Welfare7SignDateList) ProtoReflect() protoreflect.Message { mi := &file_common_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 Welfare7SignDateList.ProtoReflect.Descriptor instead. func (*Welfare7SignDateList) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{45} } func (x *Welfare7SignDateList) GetList() []*Welfare7SignDate { if x != nil { return x.List } return nil } func (x *Welfare7SignDateList) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *Welfare7SignDateList) GetSwitch() int32 { if x != nil { return x.Switch } return 0 } type BlindBoxData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 序号 Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 类型1.金币 2.钻石 Name string `protobuf:"bytes,3,opt,name=Name,proto3" json:"Name,omitempty"` // 名称 Grade int32 `protobuf:"varint,4,opt,name=Grade,proto3" json:"Grade,omitempty"` // 数量 Consume int32 `protobuf:"varint,5,opt,name=Consume,proto3" json:"Consume,omitempty"` // 购买消耗类型 Price1 int64 `protobuf:"varint,6,opt,name=price1,proto3" json:"price1,omitempty"` // 原价 Price2 int64 `protobuf:"varint,7,opt,name=price2,proto3" json:"price2,omitempty"` // 现价 Discount float64 `protobuf:"fixed64,8,opt,name=Discount,proto3" json:"Discount,omitempty"` // 折扣 Item_Id int32 `protobuf:"varint,9,opt,name=Item_Id,json=ItemId,proto3" json:"Item_Id,omitempty"` // 道具id } func (x *BlindBoxData) Reset() { *x = BlindBoxData{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlindBoxData) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlindBoxData) ProtoMessage() {} func (x *BlindBoxData) ProtoReflect() protoreflect.Message { mi := &file_common_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 BlindBoxData.ProtoReflect.Descriptor instead. func (*BlindBoxData) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{46} } func (x *BlindBoxData) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *BlindBoxData) GetType() int32 { if x != nil { return x.Type } return 0 } func (x *BlindBoxData) GetName() string { if x != nil { return x.Name } return "" } func (x *BlindBoxData) GetGrade() int32 { if x != nil { return x.Grade } return 0 } func (x *BlindBoxData) GetConsume() int32 { if x != nil { return x.Consume } return 0 } func (x *BlindBoxData) GetPrice1() int64 { if x != nil { return x.Price1 } return 0 } func (x *BlindBoxData) GetPrice2() int64 { if x != nil { return x.Price2 } return 0 } func (x *BlindBoxData) GetDiscount() float64 { if x != nil { return x.Discount } return 0 } func (x *BlindBoxData) GetItem_Id() int32 { if x != nil { return x.Item_Id } return 0 } // etcd /game/act_blindbox 盲盒 type WelfareBlindBoxDataList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields List []*BlindBoxData `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` // 盲盒 Platform string `protobuf:"bytes,2,opt,name=Platform,proto3" json:"Platform,omitempty"` Switch int32 `protobuf:"varint,3,opt,name=Switch,proto3" json:"Switch,omitempty"` // 1.开启 2.关闭 Cycle int32 `protobuf:"varint,4,opt,name=Cycle,proto3" json:"Cycle,omitempty"` // 循环 1.开启 2.关闭 MinId int32 `protobuf:"varint,5,opt,name=MinId,proto3" json:"MinId,omitempty"` // 最低序号 } func (x *WelfareBlindBoxDataList) Reset() { *x = WelfareBlindBoxDataList{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WelfareBlindBoxDataList) String() string { return protoimpl.X.MessageStringOf(x) } func (*WelfareBlindBoxDataList) ProtoMessage() {} func (x *WelfareBlindBoxDataList) ProtoReflect() protoreflect.Message { mi := &file_common_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 WelfareBlindBoxDataList.ProtoReflect.Descriptor instead. func (*WelfareBlindBoxDataList) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{47} } func (x *WelfareBlindBoxDataList) GetList() []*BlindBoxData { if x != nil { return x.List } return nil } func (x *WelfareBlindBoxDataList) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *WelfareBlindBoxDataList) GetSwitch() int32 { if x != nil { return x.Switch } return 0 } func (x *WelfareBlindBoxDataList) GetCycle() int32 { if x != nil { return x.Cycle } return 0 } func (x *WelfareBlindBoxDataList) GetMinId() int32 { if x != nil { return x.MinId } return 0 } type WelfareSpree struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Day int32 `protobuf:"varint,1,opt,name=Day,proto3" json:"Day,omitempty"` // 序号 Item []*WelfareDate `protobuf:"bytes,2,rep,name=Item,proto3" json:"Item,omitempty"` // 道具 VIPEX int32 `protobuf:"varint,3,opt,name=VIPEX,proto3" json:"VIPEX,omitempty"` // VIP经验 Consume int32 `protobuf:"varint,5,opt,name=Consume,proto3" json:"Consume,omitempty"` // 购买消耗类型 Price1 int64 `protobuf:"varint,6,opt,name=price1,proto3" json:"price1,omitempty"` // 原价 Price2 int64 `protobuf:"varint,7,opt,name=price2,proto3" json:"price2,omitempty"` // 现价 Discount float64 `protobuf:"fixed64,8,opt,name=Discount,proto3" json:"Discount,omitempty"` // 折扣 } func (x *WelfareSpree) Reset() { *x = WelfareSpree{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WelfareSpree) String() string { return protoimpl.X.MessageStringOf(x) } func (*WelfareSpree) ProtoMessage() {} func (x *WelfareSpree) ProtoReflect() protoreflect.Message { mi := &file_common_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 WelfareSpree.ProtoReflect.Descriptor instead. func (*WelfareSpree) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{48} } func (x *WelfareSpree) GetDay() int32 { if x != nil { return x.Day } return 0 } func (x *WelfareSpree) GetItem() []*WelfareDate { if x != nil { return x.Item } return nil } func (x *WelfareSpree) GetVIPEX() int32 { if x != nil { return x.VIPEX } return 0 } func (x *WelfareSpree) GetConsume() int32 { if x != nil { return x.Consume } return 0 } func (x *WelfareSpree) GetPrice1() int64 { if x != nil { return x.Price1 } return 0 } func (x *WelfareSpree) GetPrice2() int64 { if x != nil { return x.Price2 } return 0 } func (x *WelfareSpree) GetDiscount() float64 { if x != nil { return x.Discount } return 0 } // etcd /game/act_FirstPay 首充 type WelfareFirstPayDataList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields List []*WelfareSpree `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` Platform string `protobuf:"bytes,2,opt,name=Platform,proto3" json:"Platform,omitempty"` Switch int32 `protobuf:"varint,3,opt,name=Switch,proto3" json:"Switch,omitempty"` // 1.开启 2.关闭 Cycle int32 `protobuf:"varint,4,opt,name=Cycle,proto3" json:"Cycle,omitempty"` // 循环 1.开启 2.关闭 } func (x *WelfareFirstPayDataList) Reset() { *x = WelfareFirstPayDataList{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WelfareFirstPayDataList) String() string { return protoimpl.X.MessageStringOf(x) } func (*WelfareFirstPayDataList) ProtoMessage() {} func (x *WelfareFirstPayDataList) ProtoReflect() protoreflect.Message { mi := &file_common_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 WelfareFirstPayDataList.ProtoReflect.Descriptor instead. func (*WelfareFirstPayDataList) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{49} } func (x *WelfareFirstPayDataList) GetList() []*WelfareSpree { if x != nil { return x.List } return nil } func (x *WelfareFirstPayDataList) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *WelfareFirstPayDataList) GetSwitch() int32 { if x != nil { return x.Switch } return 0 } func (x *WelfareFirstPayDataList) GetCycle() int32 { if x != nil { return x.Cycle } return 0 } // etcd /game/act_ContinuousPay 连续充值 type WelfareContinuousPayDataList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields List []*WelfareSpree `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` // 连续充值 Platform string `protobuf:"bytes,2,opt,name=Platform,proto3" json:"Platform,omitempty"` Switch int32 `protobuf:"varint,3,opt,name=Switch,proto3" json:"Switch,omitempty"` // 1.开启 2.关闭 Cycle int32 `protobuf:"varint,4,opt,name=Cycle,proto3" json:"Cycle,omitempty"` // 循环 1.开启 2.关闭 Break int32 `protobuf:"varint,5,opt,name=Break,proto3" json:"Break,omitempty"` // 中断 1.开启 2.关闭 } func (x *WelfareContinuousPayDataList) Reset() { *x = WelfareContinuousPayDataList{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WelfareContinuousPayDataList) String() string { return protoimpl.X.MessageStringOf(x) } func (*WelfareContinuousPayDataList) ProtoMessage() {} func (x *WelfareContinuousPayDataList) ProtoReflect() protoreflect.Message { mi := &file_common_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 WelfareContinuousPayDataList.ProtoReflect.Descriptor instead. func (*WelfareContinuousPayDataList) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{50} } func (x *WelfareContinuousPayDataList) GetList() []*WelfareSpree { if x != nil { return x.List } return nil } func (x *WelfareContinuousPayDataList) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *WelfareContinuousPayDataList) GetSwitch() int32 { if x != nil { return x.Switch } return 0 } func (x *WelfareContinuousPayDataList) GetCycle() int32 { if x != nil { return x.Cycle } return 0 } func (x *WelfareContinuousPayDataList) GetBreak() int32 { if x != nil { return x.Break } return 0 } type VIPcfg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields VipId int32 `protobuf:"varint,1,opt,name=VipId,proto3" json:"VipId,omitempty"` // 序号 Award map[int64]int64 `protobuf:"bytes,2,rep,name=Award,proto3" json:"Award,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 道具 VipEx int32 `protobuf:"varint,3,opt,name=VipEx,proto3" json:"VipEx,omitempty"` // VIP经验 Price int64 `protobuf:"varint,4,opt,name=Price,proto3" json:"Price,omitempty"` // 金额 Privilege1 map[int64]int64 `protobuf:"bytes,5,rep,name=Privilege1,proto3" json:"Privilege1,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //特权1 VIP比赛场免费次数 Privilege2 []int32 `protobuf:"varint,6,rep,packed,name=Privilege2,proto3" json:"Privilege2,omitempty"` //每日金币 0金币值 1充值金额 Privilege3 []int32 `protobuf:"varint,7,rep,packed,name=Privilege3,proto3" json:"Privilege3,omitempty"` Privilege4 int32 `protobuf:"varint,8,opt,name=Privilege4,proto3" json:"Privilege4,omitempty"` Privilege5 int32 `protobuf:"varint,9,opt,name=Privilege5,proto3" json:"Privilege5,omitempty"` Privilege6 int32 `protobuf:"varint,10,opt,name=Privilege6,proto3" json:"Privilege6,omitempty"` Privilege7 map[int64]int64 `protobuf:"bytes,11,rep,name=Privilege7,proto3" json:"Privilege7,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` Privilege7Price int32 `protobuf:"varint,12,opt,name=Privilege7Price,proto3" json:"Privilege7Price,omitempty"` Privilege8 int32 `protobuf:"varint,13,opt,name=Privilege8,proto3" json:"Privilege8,omitempty"` RewardOutlineID []int32 `protobuf:"varint,14,rep,packed,name=RewardOutlineID,proto3" json:"RewardOutlineID,omitempty"` ShopId2 int32 `protobuf:"varint,15,opt,name=ShopId2,proto3" json:"ShopId2,omitempty"` ShopId7 int32 `protobuf:"varint,16,opt,name=ShopId7,proto3" json:"ShopId7,omitempty"` MatchFreeTimes int32 `protobuf:"varint,17,opt,name=MatchFreeTimes,proto3" json:"MatchFreeTimes,omitempty"` // vip比赛场免费次数 Privilege9 map[int64]int64 `protobuf:"bytes,18,rep,name=Privilege9,proto3" json:"Privilege9,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // vip免费礼包,每个vip等级领取一次 } func (x *VIPcfg) Reset() { *x = VIPcfg{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VIPcfg) String() string { return protoimpl.X.MessageStringOf(x) } func (*VIPcfg) ProtoMessage() {} func (x *VIPcfg) ProtoReflect() protoreflect.Message { mi := &file_common_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 VIPcfg.ProtoReflect.Descriptor instead. func (*VIPcfg) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{51} } func (x *VIPcfg) GetVipId() int32 { if x != nil { return x.VipId } return 0 } func (x *VIPcfg) GetAward() map[int64]int64 { if x != nil { return x.Award } return nil } func (x *VIPcfg) GetVipEx() int32 { if x != nil { return x.VipEx } return 0 } func (x *VIPcfg) GetPrice() int64 { if x != nil { return x.Price } return 0 } func (x *VIPcfg) GetPrivilege1() map[int64]int64 { if x != nil { return x.Privilege1 } return nil } func (x *VIPcfg) GetPrivilege2() []int32 { if x != nil { return x.Privilege2 } return nil } func (x *VIPcfg) GetPrivilege3() []int32 { if x != nil { return x.Privilege3 } return nil } func (x *VIPcfg) GetPrivilege4() int32 { if x != nil { return x.Privilege4 } return 0 } func (x *VIPcfg) GetPrivilege5() int32 { if x != nil { return x.Privilege5 } return 0 } func (x *VIPcfg) GetPrivilege6() int32 { if x != nil { return x.Privilege6 } return 0 } func (x *VIPcfg) GetPrivilege7() map[int64]int64 { if x != nil { return x.Privilege7 } return nil } func (x *VIPcfg) GetPrivilege7Price() int32 { if x != nil { return x.Privilege7Price } return 0 } func (x *VIPcfg) GetPrivilege8() int32 { if x != nil { return x.Privilege8 } return 0 } func (x *VIPcfg) GetRewardOutlineID() []int32 { if x != nil { return x.RewardOutlineID } return nil } func (x *VIPcfg) GetShopId2() int32 { if x != nil { return x.ShopId2 } return 0 } func (x *VIPcfg) GetShopId7() int32 { if x != nil { return x.ShopId7 } return 0 } func (x *VIPcfg) GetMatchFreeTimes() int32 { if x != nil { return x.MatchFreeTimes } return 0 } func (x *VIPcfg) GetPrivilege9() map[int64]int64 { if x != nil { return x.Privilege9 } return nil } // etcd /game/VIPcfg VIP配置 type VIPcfgDataList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields List []*VIPcfg `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` // VIP配置 Platform string `protobuf:"bytes,2,opt,name=Platform,proto3" json:"Platform,omitempty"` MoneyRatio float64 `protobuf:"fixed64,3,opt,name=MoneyRatio,proto3" json:"MoneyRatio,omitempty"` // 充值对应经验比例 } func (x *VIPcfgDataList) Reset() { *x = VIPcfgDataList{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VIPcfgDataList) String() string { return protoimpl.X.MessageStringOf(x) } func (*VIPcfgDataList) ProtoMessage() {} func (x *VIPcfgDataList) ProtoReflect() protoreflect.Message { mi := &file_common_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 VIPcfgDataList.ProtoReflect.Descriptor instead. func (*VIPcfgDataList) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{52} } func (x *VIPcfgDataList) GetList() []*VIPcfg { if x != nil { return x.List } return nil } func (x *VIPcfgDataList) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *VIPcfgDataList) GetMoneyRatio() float64 { if x != nil { return x.MoneyRatio } return 0 } type WbCtrlCfg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` RealCtrl bool `protobuf:"varint,2,opt,name=RealCtrl,proto3" json:"RealCtrl,omitempty"` //人工调控 Novice bool `protobuf:"varint,3,opt,name=Novice,proto3" json:"Novice,omitempty"` //新手 Welfare bool `protobuf:"varint,4,opt,name=Welfare,proto3" json:"Welfare,omitempty"` //福利 KillPoints bool `protobuf:"varint,5,opt,name=KillPoints,proto3" json:"KillPoints,omitempty"` //杀分 } func (x *WbCtrlCfg) Reset() { *x = WbCtrlCfg{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WbCtrlCfg) String() string { return protoimpl.X.MessageStringOf(x) } func (*WbCtrlCfg) ProtoMessage() {} func (x *WbCtrlCfg) ProtoReflect() protoreflect.Message { mi := &file_common_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 WbCtrlCfg.ProtoReflect.Descriptor instead. func (*WbCtrlCfg) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{53} } func (x *WbCtrlCfg) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *WbCtrlCfg) GetRealCtrl() bool { if x != nil { return x.RealCtrl } return false } func (x *WbCtrlCfg) GetNovice() bool { if x != nil { return x.Novice } return false } func (x *WbCtrlCfg) GetWelfare() bool { if x != nil { return x.Welfare } return false } func (x *WbCtrlCfg) GetKillPoints() bool { if x != nil { return x.KillPoints } return false } // 入口开关 // etcd /game/plt/entryswitch/[平台id]/[游戏入口标识] type EntrySwitch struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` Index int32 `protobuf:"varint,2,opt,name=Index,proto3" json:"Index,omitempty"` // 游戏入口标识 Switch []bool `protobuf:"varint,3,rep,packed,name=Switch,proto3" json:"Switch,omitempty"` // 0:游戏入口开关 1:hot开关 2:new开关 } func (x *EntrySwitch) Reset() { *x = EntrySwitch{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *EntrySwitch) String() string { return protoimpl.X.MessageStringOf(x) } func (*EntrySwitch) ProtoMessage() {} func (x *EntrySwitch) ProtoReflect() protoreflect.Message { mi := &file_common_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 EntrySwitch.ProtoReflect.Descriptor instead. func (*EntrySwitch) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{54} } func (x *EntrySwitch) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *EntrySwitch) GetIndex() int32 { if x != nil { return x.Index } return 0 } func (x *EntrySwitch) GetSwitch() []bool { if x != nil { return x.Switch } return nil } type ChessRankConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` // 段位名称 Score int32 `protobuf:"varint,2,opt,name=Score,proto3" json:"Score,omitempty"` // 积分 Item []*WelfareDate `protobuf:"bytes,3,rep,name=Item,proto3" json:"Item,omitempty"` // 道具 } func (x *ChessRankConfig) Reset() { *x = ChessRankConfig{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ChessRankConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*ChessRankConfig) ProtoMessage() {} func (x *ChessRankConfig) ProtoReflect() protoreflect.Message { mi := &file_common_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 ChessRankConfig.ProtoReflect.Descriptor instead. func (*ChessRankConfig) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{55} } func (x *ChessRankConfig) GetName() string { if x != nil { return x.Name } return "" } func (x *ChessRankConfig) GetScore() int32 { if x != nil { return x.Score } return 0 } func (x *ChessRankConfig) GetItem() []*WelfareDate { if x != nil { return x.Item } return nil } type ChessRankcfgData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Datas []*ChessRankConfig `protobuf:"bytes,1,rep,name=Datas,proto3" json:"Datas,omitempty"` // 积分段位配置 Platform string `protobuf:"bytes,2,opt,name=Platform,proto3" json:"Platform,omitempty"` GameId int32 `protobuf:"varint,3,opt,name=GameId,proto3" json:"GameId,omitempty"` } func (x *ChessRankcfgData) Reset() { *x = ChessRankcfgData{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ChessRankcfgData) String() string { return protoimpl.X.MessageStringOf(x) } func (*ChessRankcfgData) ProtoMessage() {} func (x *ChessRankcfgData) ProtoReflect() protoreflect.Message { mi := &file_common_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 ChessRankcfgData.ProtoReflect.Descriptor instead. func (*ChessRankcfgData) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{56} } func (x *ChessRankcfgData) GetDatas() []*ChessRankConfig { if x != nil { return x.Datas } return nil } func (x *ChessRankcfgData) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *ChessRankcfgData) GetGameId() int32 { if x != nil { return x.GameId } return 0 } type PlayerPool struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台id UpperLimit int64 `protobuf:"varint,2,opt,name=UpperLimit,proto3" json:"UpperLimit,omitempty"` // 初始上限 LowerLimit int64 `protobuf:"varint,3,opt,name=LowerLimit,proto3" json:"LowerLimit,omitempty"` // 初始下限 QuDu int64 `protobuf:"varint,4,opt,name=QuDu,proto3" json:"QuDu,omitempty"` // 曲度值 UpperOdds int32 `protobuf:"varint,5,opt,name=UpperOdds,proto3" json:"UpperOdds,omitempty"` // 上限初始概率 UpperOddsMax int32 `protobuf:"varint,6,opt,name=UpperOddsMax,proto3" json:"UpperOddsMax,omitempty"` // 上限最大概率 LowerOdds int32 `protobuf:"varint,7,opt,name=LowerOdds,proto3" json:"LowerOdds,omitempty"` // 下限初始概率 LowerOddsMax int32 `protobuf:"varint,8,opt,name=LowerOddsMax,proto3" json:"LowerOddsMax,omitempty"` // 下限最大概率 FightUp int32 `protobuf:"varint,9,opt,name=FightUp,proto3" json:"FightUp,omitempty"` // 对战抽水比上限概率(千分比) FightDown int32 `protobuf:"varint,10,opt,name=FightDown,proto3" json:"FightDown,omitempty"` // 对战抽水比下限概率(千分比) PayUp int32 `protobuf:"varint,11,opt,name=PayUp,proto3" json:"PayUp,omitempty"` // 兑换比例上限概率(千分比) PayDown int32 `protobuf:"varint,12,opt,name=PayDown,proto3" json:"PayDown,omitempty"` // 兑换比例下限概率(千分比) TianHuRate int32 `protobuf:"varint,13,opt,name=TianHuRate,proto3" json:"TianHuRate,omitempty"` // 天胡概率(千分比) PlayerPoolSwitch bool `protobuf:"varint,14,opt,name=PlayerPoolSwitch,proto3" json:"PlayerPoolSwitch,omitempty"` // 个人水池开关 } func (x *PlayerPool) Reset() { *x = PlayerPool{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PlayerPool) String() string { return protoimpl.X.MessageStringOf(x) } func (*PlayerPool) ProtoMessage() {} func (x *PlayerPool) ProtoReflect() protoreflect.Message { mi := &file_common_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 PlayerPool.ProtoReflect.Descriptor instead. func (*PlayerPool) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{57} } func (x *PlayerPool) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *PlayerPool) GetUpperLimit() int64 { if x != nil { return x.UpperLimit } return 0 } func (x *PlayerPool) GetLowerLimit() int64 { if x != nil { return x.LowerLimit } return 0 } func (x *PlayerPool) GetQuDu() int64 { if x != nil { return x.QuDu } return 0 } func (x *PlayerPool) GetUpperOdds() int32 { if x != nil { return x.UpperOdds } return 0 } func (x *PlayerPool) GetUpperOddsMax() int32 { if x != nil { return x.UpperOddsMax } return 0 } func (x *PlayerPool) GetLowerOdds() int32 { if x != nil { return x.LowerOdds } return 0 } func (x *PlayerPool) GetLowerOddsMax() int32 { if x != nil { return x.LowerOddsMax } return 0 } func (x *PlayerPool) GetFightUp() int32 { if x != nil { return x.FightUp } return 0 } func (x *PlayerPool) GetFightDown() int32 { if x != nil { return x.FightDown } return 0 } func (x *PlayerPool) GetPayUp() int32 { if x != nil { return x.PayUp } return 0 } func (x *PlayerPool) GetPayDown() int32 { if x != nil { return x.PayDown } return 0 } func (x *PlayerPool) GetTianHuRate() int32 { if x != nil { return x.TianHuRate } return 0 } func (x *PlayerPool) GetPlayerPoolSwitch() bool { if x != nil { return x.PlayerPoolSwitch } return false } type GameConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台id Switch bool `protobuf:"varint,2,opt,name=Switch,proto3" json:"Switch,omitempty"` // 开关 TianHu int32 `protobuf:"varint,3,opt,name=TianHu,proto3" json:"TianHu,omitempty"` // 天胡使用权重 PaiKu int32 `protobuf:"varint,4,opt,name=PaiKu,proto3" json:"PaiKu,omitempty"` // 牌库使用权重 FenCha int32 `protobuf:"varint,5,opt,name=FenCha,proto3" json:"FenCha,omitempty"` // 分差发牌权重 FenChaScore int32 `protobuf:"varint,6,opt,name=FenChaScore,proto3" json:"FenChaScore,omitempty"` // 牌分差值 GoodFenCha int32 `protobuf:"varint,7,opt,name=GoodFenCha,proto3" json:"GoodFenCha,omitempty"` // 好牌分差值 } func (x *GameConfig) Reset() { *x = GameConfig{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GameConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*GameConfig) ProtoMessage() {} func (x *GameConfig) ProtoReflect() protoreflect.Message { mi := &file_common_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 GameConfig.ProtoReflect.Descriptor instead. func (*GameConfig) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{58} } func (x *GameConfig) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *GameConfig) GetSwitch() bool { if x != nil { return x.Switch } return false } func (x *GameConfig) GetTianHu() int32 { if x != nil { return x.TianHu } return 0 } func (x *GameConfig) GetPaiKu() int32 { if x != nil { return x.PaiKu } return 0 } func (x *GameConfig) GetFenCha() int32 { if x != nil { return x.FenCha } return 0 } func (x *GameConfig) GetFenChaScore() int32 { if x != nil { return x.FenChaScore } return 0 } func (x *GameConfig) GetGoodFenCha() int32 { if x != nil { return x.GoodFenCha } return 0 } // etcd /game/act_phoneLottery type WelfarePhoneLotteryStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` Switch int32 `protobuf:"varint,2,opt,name=Switch,proto3" json:"Switch,omitempty"` // 1.开启 2.关闭 } func (x *WelfarePhoneLotteryStatus) Reset() { *x = WelfarePhoneLotteryStatus{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WelfarePhoneLotteryStatus) String() string { return protoimpl.X.MessageStringOf(x) } func (*WelfarePhoneLotteryStatus) ProtoMessage() {} func (x *WelfarePhoneLotteryStatus) ProtoReflect() protoreflect.Message { mi := &file_common_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 WelfarePhoneLotteryStatus.ProtoReflect.Descriptor instead. func (*WelfarePhoneLotteryStatus) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{59} } func (x *WelfarePhoneLotteryStatus) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *WelfarePhoneLotteryStatus) GetSwitch() int32 { if x != nil { return x.Switch } return 0 } // etcd /game/act_collect type WelfareCollectConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` Switch int32 `protobuf:"varint,2,opt,name=Switch,proto3" json:"Switch,omitempty"` // 1.开启 2.关闭 } func (x *WelfareCollectConfig) Reset() { *x = WelfareCollectConfig{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WelfareCollectConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*WelfareCollectConfig) ProtoMessage() {} func (x *WelfareCollectConfig) ProtoReflect() protoreflect.Message { mi := &file_common_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 WelfareCollectConfig.ProtoReflect.Descriptor instead. func (*WelfareCollectConfig) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{60} } func (x *WelfareCollectConfig) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *WelfareCollectConfig) GetSwitch() int32 { if x != nil { return x.Switch } return 0 } // etcd /game/channel/switch type ChannelSwitchConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Tp int32 `protobuf:"varint,1,opt,name=Tp,proto3" json:"Tp,omitempty"` // 开关类型 1.兑换 2.道具掉落 3.邀请活动开关 4.通行证 5.钻石抽奖 Platform string `protobuf:"bytes,2,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台id OnChannelName []string `protobuf:"bytes,3,rep,name=OnChannelName,proto3" json:"OnChannelName,omitempty"` // 开启渠道 } func (x *ChannelSwitchConfig) Reset() { *x = ChannelSwitchConfig{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ChannelSwitchConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*ChannelSwitchConfig) ProtoMessage() {} func (x *ChannelSwitchConfig) ProtoReflect() protoreflect.Message { mi := &file_common_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 ChannelSwitchConfig.ProtoReflect.Descriptor instead. func (*ChannelSwitchConfig) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{61} } func (x *ChannelSwitchConfig) GetTp() int32 { if x != nil { return x.Tp } return 0 } func (x *ChannelSwitchConfig) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *ChannelSwitchConfig) GetOnChannelName() []string { if x != nil { return x.OnChannelName } return nil } type RankAward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Start int64 `protobuf:"varint,1,opt,name=Start,proto3" json:"Start,omitempty"` // 开始积分 End int64 `protobuf:"varint,2,opt,name=End,proto3" json:"End,omitempty"` // 结束积分 Num int64 `protobuf:"varint,3,opt,name=Num,proto3" json:"Num,omitempty"` // 奖励 } func (x *RankAward) Reset() { *x = RankAward{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RankAward) String() string { return protoimpl.X.MessageStringOf(x) } func (*RankAward) ProtoMessage() {} func (x *RankAward) ProtoReflect() protoreflect.Message { mi := &file_common_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 RankAward.ProtoReflect.Descriptor instead. func (*RankAward) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{62} } func (x *RankAward) GetStart() int64 { if x != nil { return x.Start } return 0 } func (x *RankAward) GetEnd() int64 { if x != nil { return x.End } return 0 } func (x *RankAward) GetNum() int64 { if x != nil { return x.Num } return 0 } // etcd /game/act_invite type ActInviteConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` BindScore int64 `protobuf:"varint,2,opt,name=BindScore,proto3" json:"BindScore,omitempty"` // 绑定积分 RechargeScore int64 `protobuf:"varint,3,opt,name=RechargeScore,proto3" json:"RechargeScore,omitempty"` // 充值积分,一个玩家最多给上级贡献一次 PayScore map[int64]int64 `protobuf:"bytes,4,rep,name=PayScore,proto3" json:"PayScore,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 充值积分;充值金额:获得积分 Rates []int64 `protobuf:"varint,5,rep,packed,name=Rates,proto3" json:"Rates,omitempty"` // 返佣比例;多级按顺序给 Awards1 []*RankAward `protobuf:"bytes,6,rep,name=Awards1,proto3" json:"Awards1,omitempty"` // 周榜奖励列表 Awards2 []*RankAward `protobuf:"bytes,7,rep,name=Awards2,proto3" json:"Awards2,omitempty"` // 周榜奖励列表 Awards3 []*RankAward `protobuf:"bytes,8,rep,name=Awards3,proto3" json:"Awards3,omitempty"` // 周榜奖励列表 BindTelScore int64 `protobuf:"varint,9,opt,name=BindTelScore,proto3" json:"BindTelScore,omitempty"` // 绑定手机号积分 } func (x *ActInviteConfig) Reset() { *x = ActInviteConfig{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ActInviteConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*ActInviteConfig) ProtoMessage() {} func (x *ActInviteConfig) ProtoReflect() protoreflect.Message { mi := &file_common_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 ActInviteConfig.ProtoReflect.Descriptor instead. func (*ActInviteConfig) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{63} } func (x *ActInviteConfig) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *ActInviteConfig) GetBindScore() int64 { if x != nil { return x.BindScore } return 0 } func (x *ActInviteConfig) GetRechargeScore() int64 { if x != nil { return x.RechargeScore } return 0 } func (x *ActInviteConfig) GetPayScore() map[int64]int64 { if x != nil { return x.PayScore } return nil } func (x *ActInviteConfig) GetRates() []int64 { if x != nil { return x.Rates } return nil } func (x *ActInviteConfig) GetAwards1() []*RankAward { if x != nil { return x.Awards1 } return nil } func (x *ActInviteConfig) GetAwards2() []*RankAward { if x != nil { return x.Awards2 } return nil } func (x *ActInviteConfig) GetAwards3() []*RankAward { if x != nil { return x.Awards3 } return nil } func (x *ActInviteConfig) GetBindTelScore() int64 { if x != nil { return x.BindTelScore } return 0 } // 等级奖励 type PermitLevelConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Rank int32 `protobuf:"varint,1,opt,name=Rank,proto3" json:"Rank,omitempty"` // 等级 Score int64 `protobuf:"varint,2,opt,name=Score,proto3" json:"Score,omitempty"` // 积分 Award1 []*ItemInfo `protobuf:"bytes,3,rep,name=Award1,proto3" json:"Award1,omitempty"` // 普通奖励 Award2 []*ItemInfo `protobuf:"bytes,4,rep,name=Award2,proto3" json:"Award2,omitempty"` // 典藏奖励 } func (x *PermitLevelConfig) Reset() { *x = PermitLevelConfig{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PermitLevelConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*PermitLevelConfig) ProtoMessage() {} func (x *PermitLevelConfig) ProtoReflect() protoreflect.Message { mi := &file_common_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 PermitLevelConfig.ProtoReflect.Descriptor instead. func (*PermitLevelConfig) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{64} } func (x *PermitLevelConfig) GetRank() int32 { if x != nil { return x.Rank } return 0 } func (x *PermitLevelConfig) GetScore() int64 { if x != nil { return x.Score } return 0 } func (x *PermitLevelConfig) GetAward1() []*ItemInfo { if x != nil { return x.Award1 } return nil } func (x *PermitLevelConfig) GetAward2() []*ItemInfo { if x != nil { return x.Award2 } return nil } // 兑换配置 type PermitExchangeConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 商品id SortId int32 `protobuf:"varint,2,opt,name=SortId,proto3" json:"SortId,omitempty"` // 排序序号 Gain []*ItemInfo `protobuf:"bytes,3,rep,name=Gain,proto3" json:"Gain,omitempty"` // 获得商品 Cost []*ItemInfo `protobuf:"bytes,4,rep,name=Cost,proto3" json:"Cost,omitempty"` // 消耗 IsPermit bool `protobuf:"varint,5,opt,name=IsPermit,proto3" json:"IsPermit,omitempty"` // 是否需要典藏通行证 Level int64 `protobuf:"varint,6,opt,name=Level,proto3" json:"Level,omitempty"` // 达到等级 Times int64 `protobuf:"varint,7,opt,name=Times,proto3" json:"Times,omitempty"` // 最大兑换次数 IsShow bool `protobuf:"varint,8,opt,name=IsShow,proto3" json:"IsShow,omitempty"` // 开关,true 开启, false 关闭 } func (x *PermitExchangeConfig) Reset() { *x = PermitExchangeConfig{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PermitExchangeConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*PermitExchangeConfig) ProtoMessage() {} func (x *PermitExchangeConfig) ProtoReflect() protoreflect.Message { mi := &file_common_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 PermitExchangeConfig.ProtoReflect.Descriptor instead. func (*PermitExchangeConfig) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{65} } func (x *PermitExchangeConfig) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *PermitExchangeConfig) GetSortId() int32 { if x != nil { return x.SortId } return 0 } func (x *PermitExchangeConfig) GetGain() []*ItemInfo { if x != nil { return x.Gain } return nil } func (x *PermitExchangeConfig) GetCost() []*ItemInfo { if x != nil { return x.Cost } return nil } func (x *PermitExchangeConfig) GetIsPermit() bool { if x != nil { return x.IsPermit } return false } func (x *PermitExchangeConfig) GetLevel() int64 { if x != nil { return x.Level } return 0 } func (x *PermitExchangeConfig) GetTimes() int64 { if x != nil { return x.Times } return 0 } func (x *PermitExchangeConfig) GetIsShow() bool { if x != nil { return x.IsShow } return false } // 排行配置 type PermitRankConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Start int32 `protobuf:"varint,1,opt,name=Start,proto3" json:"Start,omitempty"` // 开始排名;第一名为0 End int32 `protobuf:"varint,2,opt,name=End,proto3" json:"End,omitempty"` // 结束排名 ItemId []*ItemInfo `protobuf:"bytes,3,rep,name=ItemId,proto3" json:"ItemId,omitempty"` // 奖励 } func (x *PermitRankConfig) Reset() { *x = PermitRankConfig{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PermitRankConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*PermitRankConfig) ProtoMessage() {} func (x *PermitRankConfig) ProtoReflect() protoreflect.Message { mi := &file_common_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 PermitRankConfig.ProtoReflect.Descriptor instead. func (*PermitRankConfig) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{66} } func (x *PermitRankConfig) GetStart() int32 { if x != nil { return x.Start } return 0 } func (x *PermitRankConfig) GetEnd() int32 { if x != nil { return x.End } return 0 } func (x *PermitRankConfig) GetItemId() []*ItemInfo { if x != nil { return x.ItemId } return nil } type PermitChannelConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Channel string `protobuf:"bytes,1,opt,name=Channel,proto3" json:"Channel,omitempty"` // 渠道 LevelConfig []*PermitLevelConfig `protobuf:"bytes,2,rep,name=LevelConfig,proto3" json:"LevelConfig,omitempty"` // 等级奖励 ExchangeConfig []*PermitExchangeConfig `protobuf:"bytes,3,rep,name=ExchangeConfig,proto3" json:"ExchangeConfig,omitempty"` // 兑换配置 RankConfig []*PermitRankConfig `protobuf:"bytes,4,rep,name=RankConfig,proto3" json:"RankConfig,omitempty"` // 排行配置 } func (x *PermitChannelConfig) Reset() { *x = PermitChannelConfig{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PermitChannelConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*PermitChannelConfig) ProtoMessage() {} func (x *PermitChannelConfig) ProtoReflect() protoreflect.Message { mi := &file_common_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 PermitChannelConfig.ProtoReflect.Descriptor instead. func (*PermitChannelConfig) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{67} } func (x *PermitChannelConfig) GetChannel() string { if x != nil { return x.Channel } return "" } func (x *PermitChannelConfig) GetLevelConfig() []*PermitLevelConfig { if x != nil { return x.LevelConfig } return nil } func (x *PermitChannelConfig) GetExchangeConfig() []*PermitExchangeConfig { if x != nil { return x.ExchangeConfig } return nil } func (x *PermitChannelConfig) GetRankConfig() []*PermitRankConfig { if x != nil { return x.RankConfig } return nil } // etcd /game/act_permit type ActPermitConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台 StartTs int64 `protobuf:"varint,2,opt,name=StartTs,proto3" json:"StartTs,omitempty"` // 开始日期 Days int32 `protobuf:"varint,3,opt,name=Days,proto3" json:"Days,omitempty"` // 持续天数 Configs []*PermitChannelConfig `protobuf:"bytes,4,rep,name=Configs,proto3" json:"Configs,omitempty"` // 渠道配置 } func (x *ActPermitConfig) Reset() { *x = ActPermitConfig{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ActPermitConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*ActPermitConfig) ProtoMessage() {} func (x *ActPermitConfig) ProtoReflect() protoreflect.Message { mi := &file_common_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 ActPermitConfig.ProtoReflect.Descriptor instead. func (*ActPermitConfig) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{68} } func (x *ActPermitConfig) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *ActPermitConfig) GetStartTs() int64 { if x != nil { return x.StartTs } return 0 } func (x *ActPermitConfig) GetDays() int32 { if x != nil { return x.Days } return 0 } func (x *ActPermitConfig) GetConfigs() []*PermitChannelConfig { if x != nil { return x.Configs } return nil } //钻石抽奖 type DiamondLotteryInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` Name string `protobuf:"bytes,3,opt,name=Name,proto3" json:"Name,omitempty"` ItemId int32 `protobuf:"varint,4,opt,name=ItemId,proto3" json:"ItemId,omitempty"` Grade int32 `protobuf:"varint,5,opt,name=Grade,proto3" json:"Grade,omitempty"` Oddrate int32 `protobuf:"varint,6,opt,name=Oddrate,proto3" json:"Oddrate,omitempty"` } func (x *DiamondLotteryInfo) Reset() { *x = DiamondLotteryInfo{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DiamondLotteryInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*DiamondLotteryInfo) ProtoMessage() {} func (x *DiamondLotteryInfo) ProtoReflect() protoreflect.Message { mi := &file_common_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 DiamondLotteryInfo.ProtoReflect.Descriptor instead. func (*DiamondLotteryInfo) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{69} } func (x *DiamondLotteryInfo) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *DiamondLotteryInfo) GetType() int32 { if x != nil { return x.Type } return 0 } func (x *DiamondLotteryInfo) GetName() string { if x != nil { return x.Name } return "" } func (x *DiamondLotteryInfo) GetItemId() int32 { if x != nil { return x.ItemId } return 0 } func (x *DiamondLotteryInfo) GetGrade() int32 { if x != nil { return x.Grade } return 0 } func (x *DiamondLotteryInfo) GetOddrate() int32 { if x != nil { return x.Oddrate } return 0 } //钻石抽奖白名单 type DiamondLotteryPlayers struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid int32 `protobuf:"varint,1,opt,name=uid,proto3" json:"uid,omitempty"` Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` //抽奖次数 Award []*AwardData `protobuf:"bytes,3,rep,name=Award,proto3" json:"Award,omitempty"` //配置表里的奖励ID } func (x *DiamondLotteryPlayers) Reset() { *x = DiamondLotteryPlayers{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DiamondLotteryPlayers) String() string { return protoimpl.X.MessageStringOf(x) } func (*DiamondLotteryPlayers) ProtoMessage() {} func (x *DiamondLotteryPlayers) ProtoReflect() protoreflect.Message { mi := &file_common_proto_msgTypes[70] 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 DiamondLotteryPlayers.ProtoReflect.Descriptor instead. func (*DiamondLotteryPlayers) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{70} } func (x *DiamondLotteryPlayers) GetUid() int32 { if x != nil { return x.Uid } return 0 } func (x *DiamondLotteryPlayers) GetCount() int32 { if x != nil { return x.Count } return 0 } func (x *DiamondLotteryPlayers) GetAward() []*AwardData { if x != nil { return x.Award } return nil } type AwardData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields AwardId int32 `protobuf:"varint,1,opt,name=AwardId,proto3" json:"AwardId,omitempty"` Weight int32 `protobuf:"varint,2,opt,name=Weight,proto3" json:"Weight,omitempty"` } func (x *AwardData) Reset() { *x = AwardData{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AwardData) String() string { return protoimpl.X.MessageStringOf(x) } func (*AwardData) ProtoMessage() {} func (x *AwardData) ProtoReflect() protoreflect.Message { mi := &file_common_proto_msgTypes[71] 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 AwardData.ProtoReflect.Descriptor instead. func (*AwardData) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{71} } func (x *AwardData) GetAwardId() int32 { if x != nil { return x.AwardId } return 0 } func (x *AwardData) GetWeight() int32 { if x != nil { return x.Weight } return 0 } type DiamondLotteryData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Channel string `protobuf:"bytes,1,opt,name=Channel,proto3" json:"Channel,omitempty"` //渠道 Info []*DiamondLotteryInfo `protobuf:"bytes,2,rep,name=Info,proto3" json:"Info,omitempty"` MaxScore int32 `protobuf:"varint,3,opt,name=MaxScore,proto3" json:"MaxScore,omitempty"` //保底奖励最大值 DiamondNum int32 `protobuf:"varint,4,opt,name=DiamondNum,proto3" json:"DiamondNum,omitempty"` //单次抽奖消耗钻石数量 Players []*DiamondLotteryPlayers `protobuf:"bytes,5,rep,name=Players,proto3" json:"Players,omitempty"` //白名单 } func (x *DiamondLotteryData) Reset() { *x = DiamondLotteryData{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DiamondLotteryData) String() string { return protoimpl.X.MessageStringOf(x) } func (*DiamondLotteryData) ProtoMessage() {} func (x *DiamondLotteryData) ProtoReflect() protoreflect.Message { mi := &file_common_proto_msgTypes[72] 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 DiamondLotteryData.ProtoReflect.Descriptor instead. func (*DiamondLotteryData) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{72} } func (x *DiamondLotteryData) GetChannel() string { if x != nil { return x.Channel } return "" } func (x *DiamondLotteryData) GetInfo() []*DiamondLotteryInfo { if x != nil { return x.Info } return nil } func (x *DiamondLotteryData) GetMaxScore() int32 { if x != nil { return x.MaxScore } return 0 } func (x *DiamondLotteryData) GetDiamondNum() int32 { if x != nil { return x.DiamondNum } return 0 } func (x *DiamondLotteryData) GetPlayers() []*DiamondLotteryPlayers { if x != nil { return x.Players } return nil } // etcd /game/diamond_lottery type DiamondLotteryConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台 LotteryData []*DiamondLotteryData `protobuf:"bytes,2,rep,name=LotteryData,proto3" json:"LotteryData,omitempty"` } func (x *DiamondLotteryConfig) Reset() { *x = DiamondLotteryConfig{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DiamondLotteryConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*DiamondLotteryConfig) ProtoMessage() {} func (x *DiamondLotteryConfig) ProtoReflect() protoreflect.Message { mi := &file_common_proto_msgTypes[73] 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 DiamondLotteryConfig.ProtoReflect.Descriptor instead. func (*DiamondLotteryConfig) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{73} } func (x *DiamondLotteryConfig) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *DiamondLotteryConfig) GetLotteryData() []*DiamondLotteryData { if x != nil { return x.LotteryData } return nil } // etcd /game/item type ItemConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台 Items []*server.DB_GameItem `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 道具列表 } func (x *ItemConfig) Reset() { *x = ItemConfig{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ItemConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*ItemConfig) ProtoMessage() {} func (x *ItemConfig) ProtoReflect() protoreflect.Message { mi := &file_common_proto_msgTypes[74] 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 ItemConfig.ProtoReflect.Descriptor instead. func (*ItemConfig) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{74} } func (x *ItemConfig) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *ItemConfig) GetItems() []*server.DB_GameItem { if x != nil { return x.Items } return nil } type RankAwardInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` RankType int32 `protobuf:"varint,2,opt,name=RankType,proto3" json:"RankType,omitempty"` RankLevelId int32 `protobuf:"varint,3,opt,name=RankLevelId,proto3" json:"RankLevelId,omitempty"` Item []*ItemInfo `protobuf:"bytes,4,rep,name=Item,proto3" json:"Item,omitempty"` // 道具 } func (x *RankAwardInfo) Reset() { *x = RankAwardInfo{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RankAwardInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*RankAwardInfo) ProtoMessage() {} func (x *RankAwardInfo) ProtoReflect() protoreflect.Message { mi := &file_common_proto_msgTypes[75] 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 RankAwardInfo.ProtoReflect.Descriptor instead. func (*RankAwardInfo) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{75} } func (x *RankAwardInfo) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *RankAwardInfo) GetRankType() int32 { if x != nil { return x.RankType } return 0 } func (x *RankAwardInfo) GetRankLevelId() int32 { if x != nil { return x.RankLevelId } return 0 } func (x *RankAwardInfo) GetItem() []*ItemInfo { if x != nil { return x.Item } return nil } type RankTypeInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` Order int32 `protobuf:"varint,2,opt,name=Order,proto3" json:"Order,omitempty"` RankName string `protobuf:"bytes,3,opt,name=RankName,proto3" json:"RankName,omitempty"` RankType int32 `protobuf:"varint,4,opt,name=RankType,proto3" json:"RankType,omitempty"` TurnOff int32 `protobuf:"varint,5,opt,name=TurnOff,proto3" json:"TurnOff,omitempty"` //奖励开关 Award []*RankAwardInfo `protobuf:"bytes,6,rep,name=Award,proto3" json:"Award,omitempty"` } func (x *RankTypeInfo) Reset() { *x = RankTypeInfo{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RankTypeInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*RankTypeInfo) ProtoMessage() {} func (x *RankTypeInfo) ProtoReflect() protoreflect.Message { mi := &file_common_proto_msgTypes[76] 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 RankTypeInfo.ProtoReflect.Descriptor instead. func (*RankTypeInfo) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{76} } func (x *RankTypeInfo) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *RankTypeInfo) GetOrder() int32 { if x != nil { return x.Order } return 0 } func (x *RankTypeInfo) GetRankName() string { if x != nil { return x.RankName } return "" } func (x *RankTypeInfo) GetRankType() int32 { if x != nil { return x.RankType } return 0 } func (x *RankTypeInfo) GetTurnOff() int32 { if x != nil { return x.TurnOff } return 0 } func (x *RankTypeInfo) GetAward() []*RankAwardInfo { if x != nil { return x.Award } return nil } //etcd /game/RankType type RankTypeConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台 Info []*RankTypeInfo `protobuf:"bytes,2,rep,name=Info,proto3" json:"Info,omitempty"` } func (x *RankTypeConfig) Reset() { *x = RankTypeConfig{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RankTypeConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*RankTypeConfig) ProtoMessage() {} func (x *RankTypeConfig) ProtoReflect() protoreflect.Message { mi := &file_common_proto_msgTypes[77] 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 RankTypeConfig.ProtoReflect.Descriptor instead. func (*RankTypeConfig) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{77} } func (x *RankTypeConfig) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *RankTypeConfig) GetInfo() []*RankTypeInfo { if x != nil { return x.Info } return nil } type SkinLevel struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Level int32 `protobuf:"varint,1,opt,name=Level,proto3" json:"Level,omitempty"` // 等级 UpItem map[int32]int64 `protobuf:"bytes,2,rep,name=UpItem,proto3" json:"UpItem,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 升级所需道具 SkillId int32 `protobuf:"varint,3,opt,name=SkillId,proto3" json:"SkillId,omitempty"` // 技能id SkillLevel int32 `protobuf:"varint,4,opt,name=SkillLevel,proto3" json:"SkillLevel,omitempty"` // 技能等级 SkillValue int32 `protobuf:"varint,5,opt,name=SkillValue,proto3" json:"SkillValue,omitempty"` // 技能属性值 } func (x *SkinLevel) Reset() { *x = SkinLevel{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SkinLevel) String() string { return protoimpl.X.MessageStringOf(x) } func (*SkinLevel) ProtoMessage() {} func (x *SkinLevel) ProtoReflect() protoreflect.Message { mi := &file_common_proto_msgTypes[78] 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 SkinLevel.ProtoReflect.Descriptor instead. func (*SkinLevel) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{78} } func (x *SkinLevel) GetLevel() int32 { if x != nil { return x.Level } return 0 } func (x *SkinLevel) GetUpItem() map[int32]int64 { if x != nil { return x.UpItem } return nil } func (x *SkinLevel) GetSkillId() int32 { if x != nil { return x.SkillId } return 0 } func (x *SkinLevel) GetSkillLevel() int32 { if x != nil { return x.SkillLevel } return 0 } func (x *SkinLevel) GetSkillValue() int32 { if x != nil { return x.SkillValue } return 0 } type SkinItem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 皮肤id UnlockType int32 `protobuf:"varint,2,opt,name=UnlockType,proto3" json:"UnlockType,omitempty"` // 解锁类型 0默认使用 1自动使用道具解锁并使用 2使用道具解锁 UnlockParam map[int32]int64 `protobuf:"bytes,3,rep,name=UnlockParam,proto3" json:"UnlockParam,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 解锁所需道具 IsUpgrade int32 `protobuf:"varint,4,opt,name=IsUpgrade,proto3" json:"IsUpgrade,omitempty"` // 升级开关 1开启 2关闭 SkillType int32 `protobuf:"varint,5,opt,name=SkillType,proto3" json:"SkillType,omitempty"` // 技能生效类型 0获得后生效 1穿戴生效 Levels []*SkinLevel `protobuf:"bytes,6,rep,name=Levels,proto3" json:"Levels,omitempty"` // 等级列表 } func (x *SkinItem) Reset() { *x = SkinItem{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SkinItem) String() string { return protoimpl.X.MessageStringOf(x) } func (*SkinItem) ProtoMessage() {} func (x *SkinItem) ProtoReflect() protoreflect.Message { mi := &file_common_proto_msgTypes[79] 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 SkinItem.ProtoReflect.Descriptor instead. func (*SkinItem) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{79} } func (x *SkinItem) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *SkinItem) GetUnlockType() int32 { if x != nil { return x.UnlockType } return 0 } func (x *SkinItem) GetUnlockParam() map[int32]int64 { if x != nil { return x.UnlockParam } return nil } func (x *SkinItem) GetIsUpgrade() int32 { if x != nil { return x.IsUpgrade } return 0 } func (x *SkinItem) GetSkillType() int32 { if x != nil { return x.SkillType } return 0 } func (x *SkinItem) GetLevels() []*SkinLevel { if x != nil { return x.Levels } return nil } // etcd /game/skin_config type SkinConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台 Items []*SkinItem `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 皮肤列表 } func (x *SkinConfig) Reset() { *x = SkinConfig{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SkinConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*SkinConfig) ProtoMessage() {} func (x *SkinConfig) ProtoReflect() protoreflect.Message { mi := &file_common_proto_msgTypes[80] 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 SkinConfig.ProtoReflect.Descriptor instead. func (*SkinConfig) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{80} } func (x *SkinConfig) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *SkinConfig) GetItems() []*SkinItem { if x != nil { return x.Items } return nil } // etcd /game/awardlog_config type AwardLogConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台 AwardLog []*AwardLogData `protobuf:"bytes,2,rep,name=AwardLog,proto3" json:"AwardLog,omitempty"` AnnouncerLog []*AnnouncerLogInfo `protobuf:"bytes,3,rep,name=AnnouncerLog,proto3" json:"AnnouncerLog,omitempty"` } func (x *AwardLogConfig) Reset() { *x = AwardLogConfig{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AwardLogConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*AwardLogConfig) ProtoMessage() {} func (x *AwardLogConfig) ProtoReflect() protoreflect.Message { mi := &file_common_proto_msgTypes[81] 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 AwardLogConfig.ProtoReflect.Descriptor instead. func (*AwardLogConfig) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{81} } func (x *AwardLogConfig) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *AwardLogConfig) GetAwardLog() []*AwardLogData { if x != nil { return x.AwardLog } return nil } func (x *AwardLogConfig) GetAnnouncerLog() []*AnnouncerLogInfo { if x != nil { return x.AnnouncerLog } return nil } type AwardLogData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TypeId int32 `protobuf:"varint,1,opt,name=TypeId,proto3" json:"TypeId,omitempty"` //1话费 2实物 SortId int32 `protobuf:"varint,2,opt,name=SortId,proto3" json:"SortId,omitempty"` //排序類型 1-数量 2-序号 AwardLog []*AwardLogInfo `protobuf:"bytes,3,rep,name=AwardLog,proto3" json:"AwardLog,omitempty"` } func (x *AwardLogData) Reset() { *x = AwardLogData{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AwardLogData) String() string { return protoimpl.X.MessageStringOf(x) } func (*AwardLogData) ProtoMessage() {} func (x *AwardLogData) ProtoReflect() protoreflect.Message { mi := &file_common_proto_msgTypes[82] 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 AwardLogData.ProtoReflect.Descriptor instead. func (*AwardLogData) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{82} } func (x *AwardLogData) GetTypeId() int32 { if x != nil { return x.TypeId } return 0 } func (x *AwardLogData) GetSortId() int32 { if x != nil { return x.SortId } return 0 } func (x *AwardLogData) GetAwardLog() []*AwardLogInfo { if x != nil { return x.AwardLog } return nil } type AwardLogInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ItemId int32 `protobuf:"varint,2,opt,name=ItemId,proto3" json:"ItemId,omitempty"` //道具ID Num int64 `protobuf:"varint,4,opt,name=Num,proto3" json:"Num,omitempty"` //数量 Url string `protobuf:"bytes,5,opt,name=Url,proto3" json:"Url,omitempty"` //话费icon Order int32 `protobuf:"varint,6,opt,name=Order,proto3" json:"Order,omitempty"` //序号 } func (x *AwardLogInfo) Reset() { *x = AwardLogInfo{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AwardLogInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*AwardLogInfo) ProtoMessage() {} func (x *AwardLogInfo) ProtoReflect() protoreflect.Message { mi := &file_common_proto_msgTypes[83] 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 AwardLogInfo.ProtoReflect.Descriptor instead. func (*AwardLogInfo) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{83} } func (x *AwardLogInfo) GetItemId() int32 { if x != nil { return x.ItemId } return 0 } func (x *AwardLogInfo) GetNum() int64 { if x != nil { return x.Num } return 0 } func (x *AwardLogInfo) GetUrl() string { if x != nil { return x.Url } return "" } func (x *AwardLogInfo) GetOrder() int32 { if x != nil { return x.Order } return 0 } //实时播报 type AnnouncerLogInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Snid int32 `protobuf:"varint,1,opt,name=Snid,proto3" json:"Snid,omitempty"` //玩家ID Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` //玩家名字 Phone string `protobuf:"bytes,3,opt,name=Phone,proto3" json:"Phone,omitempty"` //电话 ItemId int32 `protobuf:"varint,4,opt,name=ItemId,proto3" json:"ItemId,omitempty"` //获得物品ID TypeId int32 `protobuf:"varint,5,opt,name=TypeId,proto3" json:"TypeId,omitempty"` //1-话费 2-实物 } func (x *AnnouncerLogInfo) Reset() { *x = AnnouncerLogInfo{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AnnouncerLogInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*AnnouncerLogInfo) ProtoMessage() {} func (x *AnnouncerLogInfo) ProtoReflect() protoreflect.Message { mi := &file_common_proto_msgTypes[84] 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 AnnouncerLogInfo.ProtoReflect.Descriptor instead. func (*AnnouncerLogInfo) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{84} } func (x *AnnouncerLogInfo) GetSnid() int32 { if x != nil { return x.Snid } return 0 } func (x *AnnouncerLogInfo) GetName() string { if x != nil { return x.Name } return "" } func (x *AnnouncerLogInfo) GetPhone() string { if x != nil { return x.Phone } return "" } func (x *AnnouncerLogInfo) GetItemId() int32 { if x != nil { return x.ItemId } return 0 } func (x *AnnouncerLogInfo) GetTypeId() int32 { if x != nil { return x.TypeId } return 0 } // etcd /game/guide_config type GuideConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台 On int32 `protobuf:"varint,2,opt,name=On,proto3" json:"On,omitempty"` // 引导开关 1开启 2关闭 Skip int32 `protobuf:"varint,3,opt,name=Skip,proto3" json:"Skip,omitempty"` // 引导跳过开关 1开启 2关闭 } func (x *GuideConfig) Reset() { *x = GuideConfig{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GuideConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*GuideConfig) ProtoMessage() {} func (x *GuideConfig) ProtoReflect() protoreflect.Message { mi := &file_common_proto_msgTypes[85] 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 GuideConfig.ProtoReflect.Descriptor instead. func (*GuideConfig) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{85} } func (x *GuideConfig) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *GuideConfig) GetOn() int32 { if x != nil { return x.On } return 0 } func (x *GuideConfig) GetSkip() int32 { if x != nil { return x.Skip } return 0 } //娃娃机配置视频 // etcd /game/machine_config type MachineConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台 Info []*MachineInfo `protobuf:"bytes,2,rep,name=Info,proto3" json:"Info,omitempty"` } func (x *MachineConfig) Reset() { *x = MachineConfig{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MachineConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*MachineConfig) ProtoMessage() {} func (x *MachineConfig) ProtoReflect() protoreflect.Message { mi := &file_common_proto_msgTypes[86] 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 MachineConfig.ProtoReflect.Descriptor instead. func (*MachineConfig) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{86} } func (x *MachineConfig) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *MachineConfig) GetInfo() []*MachineInfo { if x != nil { return x.Info } return nil } type MachineInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MachineId int32 `protobuf:"varint,1,opt,name=MachineId,proto3" json:"MachineId,omitempty"` //娃娃机Id AppId int64 `protobuf:"varint,2,opt,name=AppId,proto3" json:"AppId,omitempty"` ServerSecret string `protobuf:"bytes,3,opt,name=ServerSecret,proto3" json:"ServerSecret,omitempty"` StreamId string `protobuf:"bytes,4,opt,name=StreamId,proto3" json:"StreamId,omitempty"` CostItemNum int32 `protobuf:"varint,5,opt,name=CostItemNum,proto3" json:"CostItemNum,omitempty"` //消耗道具数量 ItemId int32 `protobuf:"varint,6,opt,name=ItemId,proto3" json:"ItemId,omitempty"` //获得道具Id ItemNum int32 `protobuf:"varint,7,opt,name=ItemNum,proto3" json:"ItemNum,omitempty"` //获得道具数量 IconAddr string `protobuf:"bytes,8,opt,name=IconAddr,proto3" json:"IconAddr,omitempty"` //图片地址 Name string `protobuf:"bytes,9,opt,name=Name,proto3" json:"Name,omitempty"` //场次名字 } func (x *MachineInfo) Reset() { *x = MachineInfo{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MachineInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*MachineInfo) ProtoMessage() {} func (x *MachineInfo) ProtoReflect() protoreflect.Message { mi := &file_common_proto_msgTypes[87] 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 MachineInfo.ProtoReflect.Descriptor instead. func (*MachineInfo) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{87} } func (x *MachineInfo) GetMachineId() int32 { if x != nil { return x.MachineId } return 0 } func (x *MachineInfo) GetAppId() int64 { if x != nil { return x.AppId } return 0 } func (x *MachineInfo) GetServerSecret() string { if x != nil { return x.ServerSecret } return "" } func (x *MachineInfo) GetStreamId() string { if x != nil { return x.StreamId } return "" } func (x *MachineInfo) GetCostItemNum() int32 { if x != nil { return x.CostItemNum } return 0 } func (x *MachineInfo) GetItemId() int32 { if x != nil { return x.ItemId } return 0 } func (x *MachineInfo) GetItemNum() int32 { if x != nil { return x.ItemNum } return 0 } func (x *MachineInfo) GetIconAddr() string { if x != nil { return x.IconAddr } return "" } func (x *MachineInfo) GetName() string { if x != nil { return x.Name } return "" } // etcd /game/match_audience type MatchAudience struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台 SnId int32 `protobuf:"varint,2,opt,name=SnId,proto3" json:"SnId,omitempty"` // 玩家ID Ts int64 `protobuf:"varint,3,opt,name=Ts,proto3" json:"Ts,omitempty"` // 时间戳 } func (x *MatchAudience) Reset() { *x = MatchAudience{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MatchAudience) String() string { return protoimpl.X.MessageStringOf(x) } func (*MatchAudience) ProtoMessage() {} func (x *MatchAudience) ProtoReflect() protoreflect.Message { mi := &file_common_proto_msgTypes[88] 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 MatchAudience.ProtoReflect.Descriptor instead. func (*MatchAudience) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{88} } func (x *MatchAudience) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *MatchAudience) GetSnId() int32 { if x != nil { return x.SnId } return 0 } func (x *MatchAudience) GetTs() int64 { if x != nil { return x.Ts } return 0 } // etcd /game/spirit type SpiritConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台 On int32 `protobuf:"varint,2,opt,name=On,proto3" json:"On,omitempty"` // 精灵开关 1开启 2关闭 Url string `protobuf:"bytes,3,opt,name=Url,proto3" json:"Url,omitempty"` } func (x *SpiritConfig) Reset() { *x = SpiritConfig{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SpiritConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*SpiritConfig) ProtoMessage() {} func (x *SpiritConfig) ProtoReflect() protoreflect.Message { mi := &file_common_proto_msgTypes[89] 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 SpiritConfig.ProtoReflect.Descriptor instead. func (*SpiritConfig) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{89} } func (x *SpiritConfig) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *SpiritConfig) GetOn() int32 { if x != nil { return x.On } return 0 } func (x *SpiritConfig) GetUrl() string { if x != nil { return x.Url } return "" } // etcd /game/room_type type RoomType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台 Id int32 `protobuf:"varint,2,opt,name=Id,proto3" json:"Id,omitempty"` // 配置ID Name string `protobuf:"bytes,3,opt,name=Name,proto3" json:"Name,omitempty"` // 类型名称 On int32 `protobuf:"varint,4,opt,name=On,proto3" json:"On,omitempty"` // 开关 1开启 2关闭 SortId int32 `protobuf:"varint,5,opt,name=SortId,proto3" json:"SortId,omitempty"` // 排序ID } func (x *RoomType) Reset() { *x = RoomType{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RoomType) String() string { return protoimpl.X.MessageStringOf(x) } func (*RoomType) ProtoMessage() {} func (x *RoomType) ProtoReflect() protoreflect.Message { mi := &file_common_proto_msgTypes[90] 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 RoomType.ProtoReflect.Descriptor instead. func (*RoomType) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{90} } func (x *RoomType) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *RoomType) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *RoomType) GetName() string { if x != nil { return x.Name } return "" } func (x *RoomType) GetOn() int32 { if x != nil { return x.On } return 0 } func (x *RoomType) GetSortId() int32 { if x != nil { return x.SortId } return 0 } // etcd /game/room_config type RoomConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台 Id int32 `protobuf:"varint,2,opt,name=Id,proto3" json:"Id,omitempty"` // 配置id Name string `protobuf:"bytes,3,opt,name=Name,proto3" json:"Name,omitempty"` // 配置名称 RoomType int32 `protobuf:"varint,4,opt,name=RoomType,proto3" json:"RoomType,omitempty"` // 房间类型id On int32 `protobuf:"varint,5,opt,name=On,proto3" json:"On,omitempty"` // 开关 1开启 2关闭 SortId int32 `protobuf:"varint,6,opt,name=SortId,proto3" json:"SortId,omitempty"` // 排序ID Cost []*ItemInfo `protobuf:"bytes,7,rep,name=Cost,proto3" json:"Cost,omitempty"` // 进入房间消耗 Reward []*ItemInfo `protobuf:"bytes,8,rep,name=Reward,proto3" json:"Reward,omitempty"` // 进入房间奖励 OnChannelName []string `protobuf:"bytes,9,rep,name=OnChannelName,proto3" json:"OnChannelName,omitempty"` // 开启的渠道名称 GameFreeId []int32 `protobuf:"varint,10,rep,packed,name=GameFreeId,proto3" json:"GameFreeId,omitempty"` // 场次id Round []int32 `protobuf:"varint,11,rep,packed,name=Round,proto3" json:"Round,omitempty"` // 局数 PlayerNum []int32 `protobuf:"varint,12,rep,packed,name=PlayerNum,proto3" json:"PlayerNum,omitempty"` // 人数 NeedPassword int32 `protobuf:"varint,13,opt,name=NeedPassword,proto3" json:"NeedPassword,omitempty"` // 是否需要密码 1是 2否 3自定义 CostType int32 `protobuf:"varint,14,opt,name=CostType,proto3" json:"CostType,omitempty"` // 消耗类型 1AA 2房主 3自定义 Voice int32 `protobuf:"varint,15,opt,name=Voice,proto3" json:"Voice,omitempty"` // 是否开启语音 1是 2否 3自定义 ImageURI string `protobuf:"bytes,16,opt,name=ImageURI,proto3" json:"ImageURI,omitempty"` // 奖励图片 } func (x *RoomConfig) Reset() { *x = RoomConfig{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RoomConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*RoomConfig) ProtoMessage() {} func (x *RoomConfig) ProtoReflect() protoreflect.Message { mi := &file_common_proto_msgTypes[91] 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 RoomConfig.ProtoReflect.Descriptor instead. func (*RoomConfig) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{91} } func (x *RoomConfig) GetPlatform() string { if x != nil { return x.Platform } return "" } func (x *RoomConfig) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *RoomConfig) GetName() string { if x != nil { return x.Name } return "" } func (x *RoomConfig) GetRoomType() int32 { if x != nil { return x.RoomType } return 0 } func (x *RoomConfig) GetOn() int32 { if x != nil { return x.On } return 0 } func (x *RoomConfig) GetSortId() int32 { if x != nil { return x.SortId } return 0 } func (x *RoomConfig) GetCost() []*ItemInfo { if x != nil { return x.Cost } return nil } func (x *RoomConfig) GetReward() []*ItemInfo { if x != nil { return x.Reward } return nil } func (x *RoomConfig) GetOnChannelName() []string { if x != nil { return x.OnChannelName } return nil } func (x *RoomConfig) GetGameFreeId() []int32 { if x != nil { return x.GameFreeId } return nil } func (x *RoomConfig) GetRound() []int32 { if x != nil { return x.Round } return nil } func (x *RoomConfig) GetPlayerNum() []int32 { if x != nil { return x.PlayerNum } return nil } func (x *RoomConfig) GetNeedPassword() int32 { if x != nil { return x.NeedPassword } return 0 } func (x *RoomConfig) GetCostType() int32 { if x != nil { return x.CostType } return 0 } func (x *RoomConfig) GetVoice() int32 { if x != nil { return x.Voice } return 0 } func (x *RoomConfig) GetImageURI() string { if x != nil { return x.ImageURI } return "" } var File_common_proto protoreflect.FileDescriptor var file_common_proto_rawDesc = []byte{ 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x1a, 0x1c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x62, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb6, 0x01, 0x0a, 0x0e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x44, 0x62, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x48, 0x6f, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x48, 0x6f, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x48, 0x6f, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x48, 0x6f, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe8, 0x01, 0x0a, 0x0e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x62, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x48, 0x6f, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x48, 0x6f, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x48, 0x6f, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x48, 0x6f, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x66, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x66, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x66, 0x67, 0x56, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x66, 0x67, 0x56, 0x65, 0x72, 0x22, 0x72, 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x41, 0x73, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x22, 0x92, 0x03, 0x0a, 0x0a, 0x43, 0x6c, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x2c, 0x0a, 0x11, 0x43, 0x6c, 0x75, 0x62, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x43, 0x6c, 0x75, 0x62, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x2c, 0x0a, 0x11, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6c, 0x75, 0x62, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x49, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6c, 0x75, 0x62, 0x12, 0x38, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x62, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x79, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x62, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x79, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x12, 0x36, 0x0a, 0x16, 0x45, 0x64, 0x69, 0x74, 0x43, 0x6c, 0x75, 0x62, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x42, 0x79, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x45, 0x64, 0x69, 0x74, 0x43, 0x6c, 0x75, 0x62, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x42, 0x79, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x47, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0c, 0x47, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x22, 0x37, 0x0a, 0x09, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x22, 0xce, 0x0b, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x42, 0x69, 0x6e, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x42, 0x69, 0x6e, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x36, 0x0a, 0x16, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x2e, 0x0a, 0x12, 0x4e, 0x65, 0x77, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x4e, 0x65, 0x77, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x34, 0x0a, 0x15, 0x50, 0x65, 0x72, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x50, 0x65, 0x72, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x69, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x78, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x78, 0x12, 0x2a, 0x0a, 0x10, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x54, 0x61, 0x78, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x54, 0x61, 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x2a, 0x0a, 0x10, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x47, 0x69, 0x76, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x47, 0x69, 0x76, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x56, 0x65, 0x72, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x56, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x56, 0x69, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x14, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x56, 0x69, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x34, 0x0a, 0x0b, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x52, 0x0b, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x12, 0x32, 0x0a, 0x0a, 0x43, 0x6c, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6c, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x43, 0x6c, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x26, 0x0a, 0x0e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3f, 0x0a, 0x11, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x11, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x4e, 0x65, 0x65, 0x64, 0x53, 0x61, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x4e, 0x65, 0x65, 0x64, 0x53, 0x61, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x78, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x78, 0x12, 0x2c, 0x0a, 0x11, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x4d, 0x61, 0x78, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x6c, 0x69, 0x70, 0x61, 0x79, 0x4d, 0x61, 0x78, 0x12, 0x2e, 0x0a, 0x12, 0x50, 0x65, 0x72, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x50, 0x65, 0x72, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x49, 0x73, 0x43, 0x61, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x49, 0x73, 0x43, 0x61, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x50, 0x72, 0x69, 0x7a, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x50, 0x72, 0x69, 0x7a, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x49, 0x0a, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x24, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x1a, 0x40, 0x0a, 0x12, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3c, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x46, 0x0a, 0x10, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x12, 0x32, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x71, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x44, 0x62, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x52, 0x0a, 0x44, 0x62, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x22, 0x68, 0x0a, 0x12, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x0b, 0x44, 0x62, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x52, 0x0b, 0x44, 0x62, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x73, 0x22, 0xca, 0x01, 0x0a, 0x10, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x44, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x05, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x44, 0x62, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x12, 0x30, 0x0a, 0x07, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x62, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x62, 0x12, 0x36, 0x0a, 0x0a, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x62, 0x4c, 0x6f, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x62, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0a, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x62, 0x4c, 0x6f, 0x67, 0x22, 0x8e, 0x01, 0x0a, 0x0f, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x0a, 0x44, 0x62, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x52, 0x0a, 0x44, 0x62, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xa5, 0x02, 0x0a, 0x07, 0x41, 0x70, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x70, 0x6b, 0x55, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x41, 0x70, 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x70, 0x61, 0x55, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x49, 0x70, 0x61, 0x55, 0x72, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x22, 0xad, 0x11, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x54, 0x65, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x56, 0x49, 0x50, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x56, 0x49, 0x50, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x2c, 0x0a, 0x11, 0x43, 0x6f, 0x69, 0x6e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x43, 0x6f, 0x69, 0x6e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x61, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x61, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x53, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x53, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x72, 0x61, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x44, 0x72, 0x61, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x61, 0x69, 0x6c, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x46, 0x61, 0x69, 0x6c, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x46, 0x61, 0x69, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x46, 0x61, 0x69, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x61, 0x78, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x61, 0x78, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x52, 0x6f, 0x62, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x49, 0x73, 0x52, 0x6f, 0x62, 0x12, 0x24, 0x0a, 0x0d, 0x4c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x4c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x49, 0x44, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x67, 0x49, 0x70, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x52, 0x65, 0x67, 0x49, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x61, 0x66, 0x65, 0x42, 0x6f, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x18, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x53, 0x61, 0x66, 0x65, 0x42, 0x6f, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x42, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x57, 0x42, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x57, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x6f, 0x6c, 0x65, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x20, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x6f, 0x6c, 0x65, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x49, 0x64, 0x73, 0x18, 0x21, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x49, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x65, 0x74, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x22, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x50, 0x65, 0x74, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x65, 0x74, 0x73, 0x49, 0x64, 0x73, 0x18, 0x23, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x50, 0x65, 0x74, 0x73, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x24, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x73, 0x73, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x68, 0x65, 0x73, 0x73, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x6c, 0x6c, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x26, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x41, 0x6c, 0x6c, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x6c, 0x6c, 0x46, 0x6c, 0x6f, 0x77, 0x18, 0x27, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x41, 0x6c, 0x6c, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x2c, 0x0a, 0x11, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x28, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x55, 0x70, 0x70, 0x65, 0x72, 0x18, 0x29, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x55, 0x70, 0x70, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x61, 0x74, 0x65, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x0a, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x2c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x6f, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x65, 0x64, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x52, 0x6f, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x56, 0x69, 0x70, 0x41, 0x64, 0x64, 0x65, 0x64, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x56, 0x69, 0x70, 0x41, 0x64, 0x64, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x18, 0x30, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x31, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x33, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x34, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x35, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x36, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x26, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x37, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x18, 0x38, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x4c, 0x6f, 0x6e, 0x67, 0x18, 0x39, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x4c, 0x6f, 0x6e, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x56, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x73, 0x74, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x56, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x55, 0x73, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x55, 0x73, 0x65, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x73, 0x18, 0x40, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x37, 0x0a, 0x0e, 0x52, 0x6f, 0x6c, 0x65, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x41, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x6f, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x52, 0x6f, 0x6c, 0x65, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x0d, 0x50, 0x65, 0x74, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x42, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x6f, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x50, 0x65, 0x74, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x12, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x43, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x6f, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x12, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x0e, 0x53, 0x6b, 0x69, 0x6e, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x44, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x6f, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x53, 0x6b, 0x69, 0x6e, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x3c, 0x0a, 0x0e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3f, 0x0a, 0x07, 0x4d, 0x6f, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x54, 0x73, 0x22, 0xc4, 0x05, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x72, 0x76, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x72, 0x76, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x43, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x43, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x42, 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x75, 0x72, 0x72, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x43, 0x75, 0x72, 0x72, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x78, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4d, 0x61, 0x78, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x22, 0xb4, 0x04, 0x0a, 0x12, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x75, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x75, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x65, 0x74, 0x4d, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x42, 0x65, 0x74, 0x4d, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x65, 0x74, 0x4d, 0x61, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x42, 0x65, 0x74, 0x4d, 0x61, 0x78, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, 0x4c, 0x6f, 0x73, 0x65, 0x4d, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, 0x4c, 0x6f, 0x73, 0x65, 0x4d, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x4d, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x4d, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x61, 0x72, 0x64, 0x4d, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x61, 0x72, 0x64, 0x4d, 0x61, 0x78, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x61, 0x72, 0x64, 0x4d, 0x61, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x69, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x57, 0x69, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xbc, 0x01, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x72, 0x76, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x72, 0x76, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x72, 0x76, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x72, 0x76, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0xfd, 0x04, 0x0a, 0x0f, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x49, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x51, 0x75, 0x44, 0x75, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x51, 0x75, 0x44, 0x75, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x52, 0x65, 0x73, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6f, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x43, 0x6f, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x74, 0x72, 0x6c, 0x52, 0x61, 0x74, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x74, 0x72, 0x6c, 0x52, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x49, 0x6e, 0x69, 0x74, 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x49, 0x6e, 0x69, 0x74, 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb5, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x72, 0x63, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x72, 0x63, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x65, 0x73, 0x74, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x65, 0x73, 0x74, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x69, 0x66, 0x74, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x47, 0x69, 0x66, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x69, 0x66, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x47, 0x69, 0x66, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0xf5, 0x02, 0x0a, 0x0d, 0x48, 0x6f, 0x72, 0x73, 0x65, 0x52, 0x61, 0x63, 0x65, 0x4c, 0x61, 0x6d, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x46, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x46, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x63, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x53, 0x65, 0x63, 0x22, 0x39, 0x0a, 0x0d, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x43, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x43, 0x6e, 0x74, 0x22, 0xe5, 0x02, 0x0a, 0x0c, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x49, 0x6f, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x49, 0x6f, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x44, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4f, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x54, 0x6f, 0x64, 0x61, 0x79, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x54, 0x6f, 0x64, 0x61, 0x79, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x44, 0x61, 0x79, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x44, 0x61, 0x79, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6e, 0x74, 0x52, 0x09, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9a, 0x03, 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x6d, 0x67, 0x55, 0x72, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x49, 0x6d, 0x67, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x4c, 0x6f, 0x6f, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x73, 0x4c, 0x6f, 0x6f, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x6f, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x6f, 0x6f, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x72, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x72, 0x6c, 0x22, 0x58, 0x0a, 0x10, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x9b, 0x04, 0x0a, 0x0c, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x44, 0x61, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x44, 0x61, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2c, 0x0a, 0x06, 0x45, 0x78, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x45, 0x78, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x65, 0x6c, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x54, 0x65, 0x6c, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x56, 0x69, 0x70, 0x44, 0x61, 0x79, 0x4d, 0x61, 0x78, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x56, 0x69, 0x70, 0x44, 0x61, 0x79, 0x4d, 0x61, 0x78, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x4e, 0x6f, 0x74, 0x56, 0x69, 0x70, 0x44, 0x61, 0x79, 0x4d, 0x61, 0x78, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x4e, 0x6f, 0x74, 0x56, 0x69, 0x70, 0x44, 0x61, 0x79, 0x4d, 0x61, 0x78, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x56, 0x69, 0x70, 0x53, 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x56, 0x69, 0x70, 0x53, 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x4e, 0x6f, 0x74, 0x56, 0x69, 0x70, 0x53, 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x4e, 0x6f, 0x74, 0x56, 0x69, 0x70, 0x53, 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x68, 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x54, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x65, 0x6c, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x54, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x45, 0x0a, 0x0d, 0x54, 0x65, 0x6c, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x72, 0x6c, 0x22, 0x78, 0x0a, 0x0c, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x4a, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4a, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x44, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x84, 0x01, 0x0a, 0x10, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x2a, 0x0a, 0x06, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x68, 0x6f, 0x70, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x06, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x0a, 0x53, 0x68, 0x6f, 0x70, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x68, 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x83, 0x05, 0x0a, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x50, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x41, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x41, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6f, 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x6f, 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x41, 0x72, 0x65, 0x61, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x41, 0x64, 0x64, 0x41, 0x72, 0x65, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x41, 0x72, 0x65, 0x61, 0x18, 0x11, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x41, 0x72, 0x65, 0x61, 0x12, 0x31, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x68, 0x6f, 0x70, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x56, 0x69, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x56, 0x69, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x46, 0x69, 0x72, 0x73, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x46, 0x69, 0x72, 0x73, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x50, 0x0a, 0x0c, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x68, 0x6f, 0x70, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x50, 0x0a, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xa0, 0x01, 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x28, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x55, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x55, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x6f, 0x77, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x44, 0x6f, 0x77, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xb1, 0x07, 0x0a, 0x0d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x75, 0x6d, 0x65, 0x62, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x75, 0x6d, 0x65, 0x62, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x2c, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x75, 0x70, 0x43, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x75, 0x70, 0x43, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x2c, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x75, 0x70, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x75, 0x70, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x38, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x75, 0x70, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x75, 0x70, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x65, 0x65, 0x6b, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x65, 0x65, 0x6b, 0x12, 0x2c, 0x0a, 0x11, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x4d, 0x53, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x4d, 0x53, 0x12, 0x28, 0x0a, 0x0f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x48, 0x4d, 0x53, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x48, 0x4d, 0x53, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x10, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x75, 0x6c, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x17, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x68, 0x6f, 0x77, 0x49, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x68, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x26, 0x0a, 0x0e, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x5a, 0x0a, 0x11, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x5b, 0x0a, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x4f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x4f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x56, 0x0a, 0x0d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x29, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x64, 0x0a, 0x0b, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x5f, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x22, 0x4f, 0x0a, 0x14, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x22, 0x2a, 0x0a, 0x14, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x74, 0x65, 0x22, 0xba, 0x01, 0x0a, 0x18, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x08, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x61, 0x74, 0x65, 0x52, 0x08, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x61, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x55, 0x70, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x79, 0x12, 0x31, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x09, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x22, 0x48, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x32, 0x54, 0x79, 0x70, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0xc9, 0x02, 0x0a, 0x10, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x37, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x09, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x32, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x32, 0x12, 0x44, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x32, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x10, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x32, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x12, 0x42, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x32, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x32, 0x54, 0x79, 0x70, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x32, 0x54, 0x79, 0x70, 0x65, 0x22, 0x78, 0x0a, 0x14, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x37, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x37, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0xdb, 0x01, 0x0a, 0x0c, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x5f, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x22, 0xa3, 0x01, 0x0a, 0x17, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4d, 0x69, 0x6e, 0x49, 0x64, 0x22, 0xc5, 0x01, 0x0a, 0x0c, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, 0x70, 0x72, 0x65, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x49, 0x50, 0x45, 0x58, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x49, 0x50, 0x45, 0x58, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x17, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x61, 0x79, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, 0x70, 0x72, 0x65, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x22, 0xa8, 0x01, 0x0a, 0x1c, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x50, 0x61, 0x79, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, 0x70, 0x72, 0x65, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x22, 0xa2, 0x07, 0x0a, 0x06, 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x69, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x69, 0x70, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x69, 0x70, 0x45, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x69, 0x70, 0x45, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x12, 0x3e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x12, 0x28, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x39, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x39, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x39, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x39, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x70, 0x0a, 0x0e, 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x22, 0x95, 0x01, 0x0a, 0x09, 0x57, 0x62, 0x43, 0x74, 0x72, 0x6c, 0x43, 0x66, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x61, 0x6c, 0x43, 0x74, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x52, 0x65, 0x61, 0x6c, 0x43, 0x74, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4b, 0x69, 0x6c, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x4b, 0x69, 0x6c, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0x57, 0x0a, 0x0b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x03, 0x28, 0x08, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x64, 0x0a, 0x0f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x75, 0x0a, 0x10, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x63, 0x66, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2d, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x22, 0xb4, 0x03, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x51, 0x75, 0x44, 0x75, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x51, 0x75, 0x44, 0x75, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x46, 0x69, 0x67, 0x68, 0x74, 0x55, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x46, 0x69, 0x67, 0x68, 0x74, 0x55, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x46, 0x69, 0x67, 0x68, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x46, 0x69, 0x67, 0x68, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x79, 0x55, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x79, 0x55, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x61, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x50, 0x61, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0xc8, 0x01, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x69, 0x4b, 0x75, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x69, 0x4b, 0x75, 0x12, 0x16, 0x0a, 0x06, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x6f, 0x6f, 0x64, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x6f, 0x6f, 0x64, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x22, 0x4f, 0x0a, 0x19, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x4a, 0x0a, 0x14, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x67, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x45, 0x0a, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x45, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0xb2, 0x03, 0x0a, 0x0f, 0x41, 0x63, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x69, 0x6e, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x42, 0x69, 0x6e, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x41, 0x0a, 0x08, 0x50, 0x61, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x61, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x50, 0x61, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x61, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x52, 0x61, 0x74, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x07, 0x41, 0x77, 0x61, 0x72, 0x64, 0x73, 0x31, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x07, 0x41, 0x77, 0x61, 0x72, 0x64, 0x73, 0x31, 0x12, 0x2b, 0x0a, 0x07, 0x41, 0x77, 0x61, 0x72, 0x64, 0x73, 0x32, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x07, 0x41, 0x77, 0x61, 0x72, 0x64, 0x73, 0x32, 0x12, 0x2b, 0x0a, 0x07, 0x41, 0x77, 0x61, 0x72, 0x64, 0x73, 0x33, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x07, 0x41, 0x77, 0x61, 0x72, 0x64, 0x73, 0x33, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x42, 0x69, 0x6e, 0x64, 0x54, 0x65, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x91, 0x01, 0x0a, 0x11, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, 0x6e, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x06, 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, 0x12, 0x28, 0x0a, 0x06, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x22, 0xea, 0x01, 0x0a, 0x14, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x12, 0x24, 0x0a, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x49, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x22, 0x64, 0x0a, 0x10, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x45, 0x6e, 0x64, 0x12, 0x28, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x22, 0xec, 0x01, 0x0a, 0x13, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x3b, 0x0a, 0x0b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x44, 0x0a, 0x0e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x38, 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x92, 0x01, 0x0a, 0x0f, 0x41, 0x63, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x79, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x44, 0x61, 0x79, 0x73, 0x12, 0x35, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x22, 0x94, 0x01, 0x0a, 0x12, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x22, 0x68, 0x0a, 0x15, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0x3d, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x77, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x41, 0x77, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xd3, 0x01, 0x0a, 0x12, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x2e, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x78, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4d, 0x61, 0x78, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x37, 0x0a, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, 0x70, 0x0a, 0x14, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x3c, 0x0a, 0x0b, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x22, 0x53, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x29, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x83, 0x01, 0x0a, 0x0d, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x22, 0xb3, 0x01, 0x0a, 0x0c, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x75, 0x72, 0x6e, 0x4f, 0x66, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x54, 0x75, 0x72, 0x6e, 0x4f, 0x66, 0x66, 0x12, 0x2b, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0x56, 0x0a, 0x0e, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x28, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xed, 0x01, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x35, 0x0a, 0x06, 0x55, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x2e, 0x55, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x55, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x39, 0x0a, 0x0b, 0x55, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa6, 0x02, 0x0a, 0x08, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, 0x0b, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x2e, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x73, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x49, 0x73, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x06, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x50, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x26, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x9c, 0x01, 0x0a, 0x0e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x6f, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x30, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x6f, 0x67, 0x12, 0x3c, 0x0a, 0x0c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x22, 0x70, 0x0a, 0x0c, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x6f, 0x67, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x6f, 0x67, 0x22, 0x60, 0x0a, 0x0c, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, 0x80, 0x01, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x22, 0x4d, 0x0a, 0x0b, 0x47, 0x75, 0x69, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x4f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x4f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6b, 0x69, 0x70, 0x22, 0x54, 0x0a, 0x0d, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x27, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x85, 0x02, 0x0a, 0x0b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x41, 0x70, 0x70, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x41, 0x70, 0x70, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x63, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x49, 0x63, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x4f, 0x0a, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x54, 0x73, 0x22, 0x4c, 0x0a, 0x0c, 0x53, 0x70, 0x69, 0x72, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x4f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x4f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x72, 0x6c, 0x22, 0x72, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x4f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x4f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x22, 0xcc, 0x03, 0x0a, 0x0a, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x4f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x4f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x4e, 0x65, 0x65, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4e, 0x65, 0x65, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x52, 0x49, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x52, 0x49, 0x42, 0x26, 0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_common_proto_rawDescOnce sync.Once file_common_proto_rawDescData = file_common_proto_rawDesc ) func file_common_proto_rawDescGZIP() []byte { file_common_proto_rawDescOnce.Do(func() { file_common_proto_rawDescData = protoimpl.X.CompressGZIP(file_common_proto_rawDescData) }) return file_common_proto_rawDescData } var file_common_proto_msgTypes = make([]protoimpl.MessageInfo, 102) var file_common_proto_goTypes = []interface{}{ (*MysqlDbSetting)(nil), // 0: webapi.MysqlDbSetting (*MongoDbSetting)(nil), // 1: webapi.MongoDbSetting (*RankSwitch)(nil), // 2: webapi.RankSwitch (*ClubConfig)(nil), // 3: webapi.ClubConfig (*ThirdGame)(nil), // 4: webapi.ThirdGame (*Platform)(nil), // 5: webapi.Platform (*GameStatus)(nil), // 6: webapi.GameStatus (*GameConfigGlobal)(nil), // 7: webapi.GameConfigGlobal (*GameFree)(nil), // 8: webapi.GameFree (*PlatformGameConfig)(nil), // 9: webapi.PlatformGameConfig (*PlatformDbConfig)(nil), // 10: webapi.PlatformDbConfig (*GameConfigGroup)(nil), // 11: webapi.GameConfigGroup (*AppInfo)(nil), // 12: webapi.AppInfo (*PlayerData)(nil), // 13: webapi.PlayerData (*ModInfo)(nil), // 14: webapi.ModInfo (*RoomInfo)(nil), // 15: webapi.RoomInfo (*PlayerSingleAdjust)(nil), // 16: webapi.PlayerSingleAdjust (*ServerInfo)(nil), // 17: webapi.ServerInfo (*CoinPoolSetting)(nil), // 18: webapi.CoinPoolSetting (*MessageInfo)(nil), // 19: webapi.MessageInfo (*HorseRaceLamp)(nil), // 20: webapi.HorseRaceLamp (*OnlineGameCnt)(nil), // 21: webapi.OnlineGameCnt (*OnlineReport)(nil), // 22: webapi.OnlineReport (*CommonNotice)(nil), // 23: webapi.CommonNotice (*CommonNoticeList)(nil), // 24: webapi.CommonNoticeList (*ExchangeShop)(nil), // 25: webapi.ExchangeShop (*TelChargeData)(nil), // 26: webapi.TelChargeData (*ExchangeType)(nil), // 27: webapi.ExchangeType (*ExchangeShopList)(nil), // 28: webapi.ExchangeShopList (*ShopWeight)(nil), // 29: webapi.ShopWeight (*ItemShop)(nil), // 30: webapi.ItemShop (*ItemShopList)(nil), // 31: webapi.ItemShopList (*ItemInfo)(nil), // 32: webapi.ItemInfo (*MatchInfoAward)(nil), // 33: webapi.MatchInfoAward (*GameMatchDate)(nil), // 34: webapi.GameMatchDate (*GameMatchDateList)(nil), // 35: webapi.GameMatchDateList (*MatchTypeInfo)(nil), // 36: webapi.MatchTypeInfo (*GameMatchType)(nil), // 37: webapi.GameMatchType (*WelfareDate)(nil), // 38: webapi.WelfareDate (*WelfareTurnplateDate)(nil), // 39: webapi.WelfareTurnplateDate (*WelfareTurnplateRate)(nil), // 40: webapi.WelfareTurnplateRate (*WelfareTurnplateDateList)(nil), // 41: webapi.WelfareTurnplateDateList (*AddUpWelfareDate)(nil), // 42: webapi.AddUpWelfareDate (*AddUpDate2TypeData)(nil), // 43: webapi.AddUpDate2TypeData (*Welfare7SignDate)(nil), // 44: webapi.Welfare7SignDate (*Welfare7SignDateList)(nil), // 45: webapi.Welfare7SignDateList (*BlindBoxData)(nil), // 46: webapi.BlindBoxData (*WelfareBlindBoxDataList)(nil), // 47: webapi.WelfareBlindBoxDataList (*WelfareSpree)(nil), // 48: webapi.WelfareSpree (*WelfareFirstPayDataList)(nil), // 49: webapi.WelfareFirstPayDataList (*WelfareContinuousPayDataList)(nil), // 50: webapi.WelfareContinuousPayDataList (*VIPcfg)(nil), // 51: webapi.VIPcfg (*VIPcfgDataList)(nil), // 52: webapi.VIPcfgDataList (*WbCtrlCfg)(nil), // 53: webapi.WbCtrlCfg (*EntrySwitch)(nil), // 54: webapi.EntrySwitch (*ChessRankConfig)(nil), // 55: webapi.ChessRankConfig (*ChessRankcfgData)(nil), // 56: webapi.ChessRankcfgData (*PlayerPool)(nil), // 57: webapi.PlayerPool (*GameConfig)(nil), // 58: webapi.GameConfig (*WelfarePhoneLotteryStatus)(nil), // 59: webapi.WelfarePhoneLotteryStatus (*WelfareCollectConfig)(nil), // 60: webapi.WelfareCollectConfig (*ChannelSwitchConfig)(nil), // 61: webapi.ChannelSwitchConfig (*RankAward)(nil), // 62: webapi.RankAward (*ActInviteConfig)(nil), // 63: webapi.ActInviteConfig (*PermitLevelConfig)(nil), // 64: webapi.PermitLevelConfig (*PermitExchangeConfig)(nil), // 65: webapi.PermitExchangeConfig (*PermitRankConfig)(nil), // 66: webapi.PermitRankConfig (*PermitChannelConfig)(nil), // 67: webapi.PermitChannelConfig (*ActPermitConfig)(nil), // 68: webapi.ActPermitConfig (*DiamondLotteryInfo)(nil), // 69: webapi.DiamondLotteryInfo (*DiamondLotteryPlayers)(nil), // 70: webapi.DiamondLotteryPlayers (*AwardData)(nil), // 71: webapi.AwardData (*DiamondLotteryData)(nil), // 72: webapi.DiamondLotteryData (*DiamondLotteryConfig)(nil), // 73: webapi.DiamondLotteryConfig (*ItemConfig)(nil), // 74: webapi.ItemConfig (*RankAwardInfo)(nil), // 75: webapi.RankAwardInfo (*RankTypeInfo)(nil), // 76: webapi.RankTypeInfo (*RankTypeConfig)(nil), // 77: webapi.RankTypeConfig (*SkinLevel)(nil), // 78: webapi.SkinLevel (*SkinItem)(nil), // 79: webapi.SkinItem (*SkinConfig)(nil), // 80: webapi.SkinConfig (*AwardLogConfig)(nil), // 81: webapi.AwardLogConfig (*AwardLogData)(nil), // 82: webapi.AwardLogData (*AwardLogInfo)(nil), // 83: webapi.AwardLogInfo (*AnnouncerLogInfo)(nil), // 84: webapi.AnnouncerLogInfo (*GuideConfig)(nil), // 85: webapi.GuideConfig (*MachineConfig)(nil), // 86: webapi.MachineConfig (*MachineInfo)(nil), // 87: webapi.MachineInfo (*MatchAudience)(nil), // 88: webapi.MatchAudience (*SpiritConfig)(nil), // 89: webapi.SpiritConfig (*RoomType)(nil), // 90: webapi.RoomType (*RoomConfig)(nil), // 91: webapi.RoomConfig nil, // 92: webapi.Platform.BindTelRewardEntry nil, // 93: webapi.PlayerData.RankScoreEntry nil, // 94: webapi.ItemShop.AwardEntry nil, // 95: webapi.VIPcfg.AwardEntry nil, // 96: webapi.VIPcfg.Privilege1Entry nil, // 97: webapi.VIPcfg.Privilege7Entry nil, // 98: webapi.VIPcfg.Privilege9Entry nil, // 99: webapi.ActInviteConfig.PayScoreEntry nil, // 100: webapi.SkinLevel.UpItemEntry nil, // 101: webapi.SkinItem.UnlockParamEntry (*server.DB_GameFree)(nil), // 102: server.DB_GameFree (*server.DB_GameItem)(nil), // 103: server.DB_GameItem } var file_common_proto_depIdxs = []int32{ 2, // 0: webapi.Platform.Leaderboard:type_name -> webapi.RankSwitch 3, // 1: webapi.Platform.ClubConfig:type_name -> webapi.ClubConfig 4, // 2: webapi.Platform.ThirdGameMerchant:type_name -> webapi.ThirdGame 92, // 3: webapi.Platform.BindTelReward:type_name -> webapi.Platform.BindTelRewardEntry 6, // 4: webapi.GameConfigGlobal.GameStatus:type_name -> webapi.GameStatus 102, // 5: webapi.GameFree.DbGameFree:type_name -> server.DB_GameFree 8, // 6: webapi.PlatformGameConfig.DbGameFrees:type_name -> webapi.GameFree 0, // 7: webapi.PlatformDbConfig.Mysql:type_name -> webapi.MysqlDbSetting 1, // 8: webapi.PlatformDbConfig.MongoDb:type_name -> webapi.MongoDbSetting 1, // 9: webapi.PlatformDbConfig.MongoDbLog:type_name -> webapi.MongoDbSetting 102, // 10: webapi.GameConfigGroup.DbGameFree:type_name -> server.DB_GameFree 93, // 11: webapi.PlayerData.RankScore:type_name -> webapi.PlayerData.RankScoreEntry 32, // 12: webapi.PlayerData.Items:type_name -> webapi.ItemInfo 14, // 13: webapi.PlayerData.RoleUnlockList:type_name -> webapi.ModInfo 14, // 14: webapi.PlayerData.PetUnlockList:type_name -> webapi.ModInfo 14, // 15: webapi.PlayerData.PetSkillUnlockList:type_name -> webapi.ModInfo 14, // 16: webapi.PlayerData.SkinUnlockList:type_name -> webapi.ModInfo 21, // 17: webapi.OnlineReport.GameCount:type_name -> webapi.OnlineGameCnt 23, // 18: webapi.CommonNoticeList.List:type_name -> webapi.CommonNotice 27, // 19: webapi.ExchangeShop.ExType:type_name -> webapi.ExchangeType 26, // 20: webapi.ExchangeShop.TelData:type_name -> webapi.TelChargeData 32, // 21: webapi.ExchangeShop.Items:type_name -> webapi.ItemInfo 25, // 22: webapi.ExchangeShopList.List:type_name -> webapi.ExchangeShop 29, // 23: webapi.ExchangeShopList.Weight:type_name -> webapi.ShopWeight 94, // 24: webapi.ItemShop.Award:type_name -> webapi.ItemShop.AwardEntry 30, // 25: webapi.ItemShopList.List:type_name -> webapi.ItemShop 32, // 26: webapi.MatchInfoAward.ItemId:type_name -> webapi.ItemInfo 33, // 27: webapi.GameMatchDate.Award:type_name -> webapi.MatchInfoAward 32, // 28: webapi.GameMatchDate.SignupCostItem:type_name -> webapi.ItemInfo 34, // 29: webapi.GameMatchDateList.List:type_name -> webapi.GameMatchDate 36, // 30: webapi.GameMatchType.List:type_name -> webapi.MatchTypeInfo 38, // 31: webapi.WelfareTurnplateDate.Date:type_name -> webapi.WelfareDate 39, // 32: webapi.WelfareTurnplateDateList.List:type_name -> webapi.WelfareTurnplateDate 40, // 33: webapi.WelfareTurnplateDateList.RateList:type_name -> webapi.WelfareTurnplateRate 38, // 34: webapi.AddUpWelfareDate.AddUpDate:type_name -> webapi.WelfareDate 38, // 35: webapi.Welfare7SignDate.Date:type_name -> webapi.WelfareDate 42, // 36: webapi.Welfare7SignDate.AddUpDate:type_name -> webapi.AddUpWelfareDate 42, // 37: webapi.Welfare7SignDate.AddUpDate2:type_name -> webapi.AddUpWelfareDate 42, // 38: webapi.Welfare7SignDate.AddUpDate2Google:type_name -> webapi.AddUpWelfareDate 43, // 39: webapi.Welfare7SignDate.AddUpDate2Type:type_name -> webapi.AddUpDate2TypeData 44, // 40: webapi.Welfare7SignDateList.List:type_name -> webapi.Welfare7SignDate 46, // 41: webapi.WelfareBlindBoxDataList.List:type_name -> webapi.BlindBoxData 38, // 42: webapi.WelfareSpree.Item:type_name -> webapi.WelfareDate 48, // 43: webapi.WelfareFirstPayDataList.List:type_name -> webapi.WelfareSpree 48, // 44: webapi.WelfareContinuousPayDataList.List:type_name -> webapi.WelfareSpree 95, // 45: webapi.VIPcfg.Award:type_name -> webapi.VIPcfg.AwardEntry 96, // 46: webapi.VIPcfg.Privilege1:type_name -> webapi.VIPcfg.Privilege1Entry 97, // 47: webapi.VIPcfg.Privilege7:type_name -> webapi.VIPcfg.Privilege7Entry 98, // 48: webapi.VIPcfg.Privilege9:type_name -> webapi.VIPcfg.Privilege9Entry 51, // 49: webapi.VIPcfgDataList.List:type_name -> webapi.VIPcfg 38, // 50: webapi.ChessRankConfig.Item:type_name -> webapi.WelfareDate 55, // 51: webapi.ChessRankcfgData.Datas:type_name -> webapi.ChessRankConfig 99, // 52: webapi.ActInviteConfig.PayScore:type_name -> webapi.ActInviteConfig.PayScoreEntry 62, // 53: webapi.ActInviteConfig.Awards1:type_name -> webapi.RankAward 62, // 54: webapi.ActInviteConfig.Awards2:type_name -> webapi.RankAward 62, // 55: webapi.ActInviteConfig.Awards3:type_name -> webapi.RankAward 32, // 56: webapi.PermitLevelConfig.Award1:type_name -> webapi.ItemInfo 32, // 57: webapi.PermitLevelConfig.Award2:type_name -> webapi.ItemInfo 32, // 58: webapi.PermitExchangeConfig.Gain:type_name -> webapi.ItemInfo 32, // 59: webapi.PermitExchangeConfig.Cost:type_name -> webapi.ItemInfo 32, // 60: webapi.PermitRankConfig.ItemId:type_name -> webapi.ItemInfo 64, // 61: webapi.PermitChannelConfig.LevelConfig:type_name -> webapi.PermitLevelConfig 65, // 62: webapi.PermitChannelConfig.ExchangeConfig:type_name -> webapi.PermitExchangeConfig 66, // 63: webapi.PermitChannelConfig.RankConfig:type_name -> webapi.PermitRankConfig 67, // 64: webapi.ActPermitConfig.Configs:type_name -> webapi.PermitChannelConfig 71, // 65: webapi.DiamondLotteryPlayers.Award:type_name -> webapi.AwardData 69, // 66: webapi.DiamondLotteryData.Info:type_name -> webapi.DiamondLotteryInfo 70, // 67: webapi.DiamondLotteryData.Players:type_name -> webapi.DiamondLotteryPlayers 72, // 68: webapi.DiamondLotteryConfig.LotteryData:type_name -> webapi.DiamondLotteryData 103, // 69: webapi.ItemConfig.Items:type_name -> server.DB_GameItem 32, // 70: webapi.RankAwardInfo.Item:type_name -> webapi.ItemInfo 75, // 71: webapi.RankTypeInfo.Award:type_name -> webapi.RankAwardInfo 76, // 72: webapi.RankTypeConfig.Info:type_name -> webapi.RankTypeInfo 100, // 73: webapi.SkinLevel.UpItem:type_name -> webapi.SkinLevel.UpItemEntry 101, // 74: webapi.SkinItem.UnlockParam:type_name -> webapi.SkinItem.UnlockParamEntry 78, // 75: webapi.SkinItem.Levels:type_name -> webapi.SkinLevel 79, // 76: webapi.SkinConfig.Items:type_name -> webapi.SkinItem 82, // 77: webapi.AwardLogConfig.AwardLog:type_name -> webapi.AwardLogData 84, // 78: webapi.AwardLogConfig.AnnouncerLog:type_name -> webapi.AnnouncerLogInfo 83, // 79: webapi.AwardLogData.AwardLog:type_name -> webapi.AwardLogInfo 87, // 80: webapi.MachineConfig.Info:type_name -> webapi.MachineInfo 32, // 81: webapi.RoomConfig.Cost:type_name -> webapi.ItemInfo 32, // 82: webapi.RoomConfig.Reward:type_name -> webapi.ItemInfo 83, // [83:83] is the sub-list for method output_type 83, // [83:83] is the sub-list for method input_type 83, // [83:83] is the sub-list for extension type_name 83, // [83:83] is the sub-list for extension extendee 0, // [0:83] is the sub-list for field type_name } func init() { file_common_proto_init() } func file_common_proto_init() { if File_common_proto != nil { return } if !protoimpl.UnsafeEnabled { file_common_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MysqlDbSetting); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MongoDbSetting); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RankSwitch); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClubConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ThirdGame); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Platform); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GameStatus); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GameConfigGlobal); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GameFree); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlatformGameConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlatformDbConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GameConfigGroup); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AppInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlayerData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ModInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlayerSingleAdjust); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ServerInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CoinPoolSetting); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessageInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HorseRaceLamp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OnlineGameCnt); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OnlineReport); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommonNotice); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommonNoticeList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExchangeShop); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TelChargeData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExchangeType); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExchangeShopList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ShopWeight); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ItemShop); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ItemShopList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ItemInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MatchInfoAward); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GameMatchDate); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GameMatchDateList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MatchTypeInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GameMatchType); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WelfareDate); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WelfareTurnplateDate); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WelfareTurnplateRate); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WelfareTurnplateDateList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddUpWelfareDate); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddUpDate2TypeData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Welfare7SignDate); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Welfare7SignDateList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlindBoxData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WelfareBlindBoxDataList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WelfareSpree); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WelfareFirstPayDataList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WelfareContinuousPayDataList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VIPcfg); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VIPcfgDataList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WbCtrlCfg); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EntrySwitch); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ChessRankConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ChessRankcfgData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlayerPool); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GameConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WelfarePhoneLotteryStatus); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WelfareCollectConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ChannelSwitchConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RankAward); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActInviteConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PermitLevelConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PermitExchangeConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PermitRankConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PermitChannelConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActPermitConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DiamondLotteryInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DiamondLotteryPlayers); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AwardData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DiamondLotteryData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DiamondLotteryConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ItemConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RankAwardInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RankTypeInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RankTypeConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SkinLevel); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SkinItem); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SkinConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AwardLogConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AwardLogData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AwardLogInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AnnouncerLogInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GuideConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MachineConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MachineInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MatchAudience); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SpiritConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomType); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomConfig); 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_common_proto_rawDesc, NumEnums: 0, NumMessages: 102, NumExtensions: 0, NumServices: 0, }, GoTypes: file_common_proto_goTypes, DependencyIndexes: file_common_proto_depIdxs, MessageInfos: file_common_proto_msgTypes, }.Build() File_common_proto = out.File file_common_proto_rawDesc = nil file_common_proto_goTypes = nil file_common_proto_depIdxs = nil }