From 3693cac745d7d5c8773dd2c14cd47bbfcdfc71bd Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Fri, 9 Aug 2024 11:33:10 +0800 Subject: [PATCH] update --- data/DB_GiftCard.dat | Bin 57 -> 57 bytes data/DB_PropExchange.dat | Bin 384 -> 384 bytes data/DB_Task.dat | Bin 5299 -> 5299 bytes data/DB_VIP.dat | Bin 2170 -> 2204 bytes data/DB_VIP.json | 168 +++++--- data/DB_VIPShow.dat | 3 + data/DB_VIPShow.json | 13 + protocol/player/player.pb.go | 233 ++++++----- protocol/player/player.proto | 10 +- protocol/server/pbdata.pb.go | 233 +++++++++-- protocol/server/pbdata.proto | 16 + protocol/webapi/common.pb.go | 792 ++++++++++++++++++----------------- protocol/webapi/common.proto | 3 +- xlsx/DB_VIP.xlsx | Bin 20287 -> 20715 bytes xlsx/DB_VIPShow.xlsx | Bin 0 -> 14308 bytes 15 files changed, 895 insertions(+), 576 deletions(-) create mode 100644 data/DB_VIPShow.dat create mode 100644 data/DB_VIPShow.json create mode 100644 xlsx/DB_VIPShow.xlsx diff --git a/data/DB_GiftCard.dat b/data/DB_GiftCard.dat index 15600367ff42a73b75826e6378f02a3bde3a8661..96640b07f274cbbbda035ee3e52503c8356a73cb 100644 GIT binary patch delta 38 pcmcDtoFJjd$+57PP2j+^jZ8{x92eV|1-P_0AVMv+2JBXh3;@YB39kSE delta 38 pcmcDtoFJjd#&NNYS%6E4lVf2oo4|o-8=15?Aj}q919mG$1^~Z739kSE diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index 1fdfa22d3d1680db8aa34b0800e3fb8249320bc7..4af13dc83916a0ced2c93c133302db99d033c002 100644 GIT binary patch literal 384 zcmd-w<6snElw#w!(#8y?uR`f-Q2IKQz6_$3I5-yevI!h$vE|a^U;?YZ36;MErEf#& z8))joIUwf4xbC~)(>;IUwf4?17mN(+9H$W-`!9a1aLzLJ#76Co_g_( z0Vb&EgoXT@gIL~z%m687g$g%xR!t6IJ2Lq*x5#DOSGdF`hj4D2oXjgYS(@wL z(NN%z}=kCcR z9Ac9dxPC%qxnP=FY$t1Rn@(QNC%CzQ`!gd{nh~bCmu+(iuQB6fRbIi#JNOKMrU*{{ U$(IRL#tc>VV7budVtxl!0Bu`AG5`Po diff --git a/data/DB_VIP.dat b/data/DB_VIP.dat index b5b997e64e1d5732705055476dc9ea34e55c5395..b5dd8d5678b47acf4f5d419393ba73effe5d2f4d 100644 GIT binary patch literal 2204 zcmcK4O=}b}7zgmp%j~@D%dCqpfr302DfCjieNmxaJjnD?dXnJTuONsZ4qGj?P`4te zjG`;;NvK*V*h4K#@dNBl@TN5Df?vYSgqcn5lf(ZxOd$VXAd}#J+dn(n9=-W;XJu^$ zS1KKuTQU)TfVzkvgtlZ7bYcAbn>cxWcJxvlycc_iV!b!|xRIc?{{3(Fv*>+I(A4Pd zq1a30mSXF}c>Vime^;D5700pYz4(OW?!hAuwW(a6V`CS_?xY#v$l-c7F0s3hP+pI- z`VJe0Fbs`)pA+rq<<{f8o@Dj&Y;zhmrziCoM-5K3dQ$4?NnTI0`USSL3OlPt{W&_+fs6sT$g3KFmU@0C2UIh_5*uz1kkJ4nn&PfCKs5)r8Q>c0Z&yLa z008$iK)E--%>iBpxXuPi9b_f|LZU0&w+8TXfS&R>~kTC!=JkS8;-T_|$V&nyF zCw+mgvcZ#^AY%|_dCeLjC0#jZi7|PpBzE7kPC>=&-@70}Saf z5X-z_4N)%;4TYFz@%|qQ>6joWjc)U%HAJI8G!|kPZW}#zSj}W`PJ5Vv)ta n|6PJ~7>K*PWepJ)h?YVuvH0}oETqFg+~eo1AzBI{U%kqIOls7x delta 509 zcmXAl&nrbi6vyApotb;z`0;)S!$PxAYEphY9u_uMY-A;tO7{=2B)UrS=;d)r@*{7> zhGZcY7O$6uotF(sk|bHkLMbcf&Ru-YVm{}b?`if@f5|#Ila9Y#=HItZ$4ABtE9M2= zNKG}!S&yU{K6R-NSAV$HOmD3DjdIST)^w{%LRS)oe?xqWfF#yA)@9U6n_g)%ytGq& zLm(G9W?hdejOxOu;V(z&KLQ^0o8-L5t?O0AJ)#lAgL8FEAs1O;ZB|v59gP@XEVn#U zkdB>ot?g5Iyhbqfwzc5ET4X(I`xTy|5zKuuWe2L6osC;Npm3o^F!!_b$ALWao8^Kh z(>(lxPE}eO)CdOuW)B%8xz$yX?ovT+RwJ0aH2A;(xKCxUDe48s*HsQm_$_jgcs0>L zMg=FYOozpYQvQNmao88W30rETmL3&6UdMG4$B^j;As-S$|p~HeJcE9MIfOgO4(%B)ge-Z_g^Z)<= diff --git a/data/DB_VIP.json b/data/DB_VIP.json index c0ddc58..4a7347f 100644 --- a/data/DB_VIP.json +++ b/data/DB_VIP.json @@ -3,8 +3,8 @@ { "Name": "不是VIP", "Privilege1": [ - 100000, - 2 + 0, + 0 ], "Privilege2": [ 0, @@ -28,6 +28,10 @@ "获得专属头像框", "获得专属炮台", "更多VIP功能正待开发" + ], + "Privilege9": [ + 0, + 0 ] }, { @@ -36,8 +40,8 @@ "Count": 1000, "VipExp": 1000, "Privilege1": [ - 100000, - 100 + 0, + 0 ], "Privilege2": [ 0, @@ -63,7 +67,11 @@ "获得专属炮台", "更多VIP功能正待开发" ], - "MatchFreeTimes": 1 + "MatchFreeTimes": 1, + "Privilege9": [ + 0, + 0 + ] }, { "Id": 2, @@ -71,8 +79,8 @@ "Count": 2000, "VipExp": 2000, "Privilege1": [ - 150000, - 150 + 0, + 0 ], "Privilege2": [ 0, @@ -98,7 +106,11 @@ "获得专属炮台", "更多VIP功能正待开发" ], - "MatchFreeTimes": 2 + "MatchFreeTimes": 2, + "Privilege9": [ + 0, + 0 + ] }, { "Id": 3, @@ -106,8 +118,8 @@ "Count": 5000, "VipExp": 5000, "Privilege1": [ - 200000, - 200 + 0, + 0 ], "Privilege2": [ 0, @@ -133,7 +145,11 @@ "获得专属炮台", "更多VIP功能正待开发" ], - "MatchFreeTimes": 3 + "MatchFreeTimes": 3, + "Privilege9": [ + 0, + 0 + ] }, { "Id": 4, @@ -141,8 +157,8 @@ "Count": 10000, "VipExp": 10000, "Privilege1": [ - 300000, - 250 + 0, + 0 ], "Privilege2": [ 0, @@ -168,7 +184,11 @@ "获得专属炮台", "更多VIP功能正待开发" ], - "MatchFreeTimes": 4 + "MatchFreeTimes": 4, + "Privilege9": [ + 0, + 0 + ] }, { "Id": 5, @@ -176,8 +196,8 @@ "Count": 20000, "VipExp": 20000, "Privilege1": [ - 400000, - 300 + 0, + 0 ], "Privilege2": [ 0, @@ -203,7 +223,11 @@ "获得专属炮台", "更多VIP功能正待开发" ], - "MatchFreeTimes": 5 + "MatchFreeTimes": 5, + "Privilege9": [ + 0, + 0 + ] }, { "Id": 6, @@ -211,8 +235,8 @@ "Count": 50000, "VipExp": 50000, "Privilege1": [ - 500000, - 350 + 0, + 0 ], "Privilege2": [ 0, @@ -238,7 +262,11 @@ "获得专属炮台", "更多VIP功能正待开发" ], - "MatchFreeTimes": 6 + "MatchFreeTimes": 6, + "Privilege9": [ + 0, + 0 + ] }, { "Id": 7, @@ -246,8 +274,8 @@ "Count": 100000, "VipExp": 100000, "Privilege1": [ - 600000, - 400 + 0, + 0 ], "Privilege2": [ 0, @@ -273,7 +301,11 @@ "获得专属炮台", "更多VIP功能正待开发" ], - "MatchFreeTimes": 7 + "MatchFreeTimes": 7, + "Privilege9": [ + 0, + 0 + ] }, { "Id": 8, @@ -281,8 +313,8 @@ "Count": 200000, "VipExp": 200000, "Privilege1": [ - 700000, - 450 + 0, + 0 ], "Privilege2": [ 0, @@ -308,7 +340,11 @@ "获得专属炮台", "更多VIP功能正待开发" ], - "MatchFreeTimes": 8 + "MatchFreeTimes": 8, + "Privilege9": [ + 0, + 0 + ] }, { "Id": 9, @@ -316,8 +352,8 @@ "Count": 500000, "VipExp": 500000, "Privilege1": [ - 800000, - 500 + 0, + 0 ], "Privilege2": [ 0, @@ -343,7 +379,11 @@ "获得专属炮台", "更多VIP功能正待开发" ], - "MatchFreeTimes": 9 + "MatchFreeTimes": 9, + "Privilege9": [ + 0, + 0 + ] }, { "Id": 10, @@ -351,8 +391,8 @@ "Count": 1000000, "VipExp": 1000000, "Privilege1": [ - 900000, - 550 + 0, + 0 ], "Privilege2": [ 0, @@ -378,7 +418,11 @@ "获得专属炮台", "更多VIP功能正待开发" ], - "MatchFreeTimes": 10 + "MatchFreeTimes": 10, + "Privilege9": [ + 0, + 0 + ] }, { "Id": 11, @@ -386,8 +430,8 @@ "Count": 2000000, "VipExp": 2000000, "Privilege1": [ - 1000000, - 600 + 0, + 0 ], "Privilege2": [ 0, @@ -413,7 +457,11 @@ "获得专属炮台", "更多VIP功能正待开发" ], - "MatchFreeTimes": 11 + "MatchFreeTimes": 11, + "Privilege9": [ + 0, + 0 + ] }, { "Id": 12, @@ -421,8 +469,8 @@ "Count": 5000000, "VipExp": 5000000, "Privilege1": [ - 2000000, - 650 + 0, + 0 ], "Privilege2": [ 0, @@ -448,7 +496,11 @@ "获得专属炮台", "更多VIP功能正待开发" ], - "MatchFreeTimes": 12 + "MatchFreeTimes": 12, + "Privilege9": [ + 0, + 0 + ] }, { "Id": 13, @@ -456,8 +508,8 @@ "Count": 10000000, "VipExp": 10000000, "Privilege1": [ - 3000000, - 700 + 0, + 0 ], "Privilege2": [ 0, @@ -483,7 +535,11 @@ "获得专属炮台", "更多VIP功能正待开发" ], - "MatchFreeTimes": 13 + "MatchFreeTimes": 13, + "Privilege9": [ + 0, + 0 + ] }, { "Id": 14, @@ -491,8 +547,8 @@ "Count": 20000000, "VipExp": 20000000, "Privilege1": [ - 4000000, - 750 + 0, + 0 ], "Privilege2": [ 0, @@ -518,7 +574,11 @@ "获得专属炮台", "更多VIP功能正待开发" ], - "MatchFreeTimes": 14 + "MatchFreeTimes": 14, + "Privilege9": [ + 0, + 0 + ] }, { "Id": 15, @@ -526,8 +586,8 @@ "Count": 50000000, "VipExp": 50000000, "Privilege1": [ - 5000000, - 800 + 0, + 0 ], "Privilege2": [ 0, @@ -553,7 +613,11 @@ "获得专属炮台", "更多VIP功能正待开发" ], - "MatchFreeTimes": 15 + "MatchFreeTimes": 15, + "Privilege9": [ + 0, + 0 + ] }, { "Id": 16, @@ -561,8 +625,8 @@ "Count": 100000000, "VipExp": 100000000, "Privilege1": [ - 6000000, - 850 + 0, + 0 ], "Privilege2": [ 0, @@ -588,7 +652,11 @@ "获得专属炮台", "更多VIP功能正待开发" ], - "MatchFreeTimes": 16 + "MatchFreeTimes": 16, + "Privilege9": [ + 0, + 0 + ] }, { "ParamName": [ diff --git a/data/DB_VIPShow.dat b/data/DB_VIPShow.dat new file mode 100644 index 0000000..71c1e91 --- /dev/null +++ b/data/DB_VIPShow.dat @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/data/DB_VIPShow.json b/data/DB_VIPShow.json new file mode 100644 index 0000000..79d6cdb --- /dev/null +++ b/data/DB_VIPShow.json @@ -0,0 +1,13 @@ +{ + "Arr": [ + { + "Id": 1, + "SkinId": 300003 + }, + { + "Id": 2, + "SkinId": 300004, + "VIPLevel": 3 + } + ] +} \ No newline at end of file diff --git a/protocol/player/player.pb.go b/protocol/player/player.pb.go index 4375221..7cc47f0 100644 --- a/protocol/player/player.pb.go +++ b/protocol/player/player.pb.go @@ -7455,7 +7455,8 @@ type CSVIPDraw struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 领取编号 0.每日礼包 + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 领取编号 0.每日礼包 1.等级礼包(Privilege9) + Vip int32 `protobuf:"varint,2,opt,name=Vip,proto3" json:"Vip,omitempty"` //领取的礼包vip等级 } func (x *CSVIPDraw) Reset() { @@ -7497,6 +7498,13 @@ func (x *CSVIPDraw) GetId() int32 { return 0 } +func (x *CSVIPDraw) GetVip() int32 { + if x != nil { + return x.Vip + } + return 0 +} + //VIP领取 //PACKET_SC_DRAWVIPGIFT type SCVIPDraw struct { @@ -7504,7 +7512,7 @@ type SCVIPDraw struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 领取编号 0.每日礼包 1.每日金币礼包 2.VIP礼包 + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 领取编号 Vip int32 `protobuf:"varint,2,opt,name=Vip,proto3" json:"Vip,omitempty"` //领取的礼包vip等级 OpRetCode OpResultCode `protobuf:"varint,3,opt,name=OpRetCode,proto3,enum=player.OpResultCode" json:"OpRetCode,omitempty"` //操作结果 } @@ -7607,24 +7615,25 @@ type VIPcfg struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - VipId int32 `protobuf:"varint,1,opt,name=VipId,proto3" json:"VipId,omitempty"` // 序号 - Item []*ItemInfo `protobuf:"bytes,2,rep,name=Item,proto3" json:"Item,omitempty"` // 道具 - 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 []int32 `protobuf:"varint,5,rep,packed,name=Privilege1,proto3" json:"Privilege1,omitempty"` //每日礼包 - LineId []int32 `protobuf:"varint,6,rep,packed,name=LineId,proto3" json:"LineId,omitempty"` //头像框Id - Privilege2 []int32 `protobuf:"varint,7,rep,packed,name=Privilege2,proto3" json:"Privilege2,omitempty"` //每日金币礼包1金币值2代表充值的金额 - Privilege3 []int32 `protobuf:"varint,8,rep,packed,name=Privilege3,proto3" json:"Privilege3,omitempty"` //VIP商城刷新次数和商品数量 - Privilege4 int32 `protobuf:"varint,9,opt,name=Privilege4,proto3" json:"Privilege4,omitempty"` //赛季积分的加成比例 - Privilege5 int32 `protobuf:"varint,10,opt,name=Privilege5,proto3" json:"Privilege5,omitempty"` //月卡到哦句领取金币的比例 - Privilege6 int32 `protobuf:"varint,11,opt,name=Privilege6,proto3" json:"Privilege6,omitempty"` //充值额外获取的钻石比例 - Privilege7 []*ItemInfo `protobuf:"bytes,12,rep,name=Privilege7,proto3" json:"Privilege7,omitempty"` //固定VIP礼包 - Privilege7Price int32 `protobuf:"varint,13,opt,name=Privilege7Price,proto3" json:"Privilege7Price,omitempty"` - Privilege8 int32 `protobuf:"varint,14,opt,name=Privilege8,proto3" json:"Privilege8,omitempty"` //VIP客服标识 - ShopId2 int32 `protobuf:"varint,15,opt,name=ShopId2,proto3" json:"ShopId2,omitempty"` - ShopId7 int32 `protobuf:"varint,16,opt,name=ShopId7,proto3" json:"ShopId7,omitempty"` - BagStatus []int32 `protobuf:"varint,17,rep,packed,name=BagStatus,proto3" json:"BagStatus,omitempty"` //每日礼包|每日金币礼包|固定VIP礼包 0可领取 1不可领取 - MatchFreeTimes int32 `protobuf:"varint,18,opt,name=MatchFreeTimes,proto3" json:"MatchFreeTimes,omitempty"` // 比赛免费次数 + VipId int32 `protobuf:"varint,1,opt,name=VipId,proto3" json:"VipId,omitempty"` // 序号 + Item []*ItemInfo `protobuf:"bytes,2,rep,name=Item,proto3" json:"Item,omitempty"` // 道具 + 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"` //每日礼包 + LineId []int32 `protobuf:"varint,6,rep,packed,name=LineId,proto3" json:"LineId,omitempty"` //头像框Id + Privilege2 []int32 `protobuf:"varint,7,rep,packed,name=Privilege2,proto3" json:"Privilege2,omitempty"` //每日金币礼包1金币值2代表充值的金额 + Privilege3 []int32 `protobuf:"varint,8,rep,packed,name=Privilege3,proto3" json:"Privilege3,omitempty"` //VIP商城刷新次数和商品数量 + Privilege4 int32 `protobuf:"varint,9,opt,name=Privilege4,proto3" json:"Privilege4,omitempty"` //赛季积分的加成比例 + Privilege5 int32 `protobuf:"varint,10,opt,name=Privilege5,proto3" json:"Privilege5,omitempty"` //月卡到哦句领取金币的比例 + Privilege6 int32 `protobuf:"varint,11,opt,name=Privilege6,proto3" json:"Privilege6,omitempty"` //充值额外获取的钻石比例 + Privilege7 []*ItemInfo `protobuf:"bytes,12,rep,name=Privilege7,proto3" json:"Privilege7,omitempty"` //固定VIP礼包 + Privilege7Price int32 `protobuf:"varint,13,opt,name=Privilege7Price,proto3" json:"Privilege7Price,omitempty"` + Privilege8 int32 `protobuf:"varint,14,opt,name=Privilege8,proto3" json:"Privilege8,omitempty"` //VIP客服标识 + ShopId2 int32 `protobuf:"varint,15,opt,name=ShopId2,proto3" json:"ShopId2,omitempty"` + ShopId7 int32 `protobuf:"varint,16,opt,name=ShopId7,proto3" json:"ShopId7,omitempty"` + BagStatus []int32 `protobuf:"varint,17,rep,packed,name=BagStatus,proto3" json:"BagStatus,omitempty"` //每日礼包|每日金币礼包|固定VIP礼包|等级礼包 0可领取 1不可领取 + MatchFreeTimes int32 `protobuf:"varint,18,opt,name=MatchFreeTimes,proto3" json:"MatchFreeTimes,omitempty"` // 比赛免费次数 + Privilege9 map[int64]int64 `protobuf:"bytes,19,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() { @@ -7687,7 +7696,7 @@ func (x *VIPcfg) GetPrice() int64 { return 0 } -func (x *VIPcfg) GetPrivilege1() []int32 { +func (x *VIPcfg) GetPrivilege1() map[int64]int64 { if x != nil { return x.Privilege1 } @@ -7785,6 +7794,13 @@ func (x *VIPcfg) GetMatchFreeTimes() int32 { return 0 } +func (x *VIPcfg) GetPrivilege9() map[int64]int64 { + if x != nil { + return x.Privilege9 + } + return nil +} + //VIP信息 //PACKET_SC_VIPINFO type SCVIPInfo struct { @@ -11614,51 +11630,66 @@ var file_player_proto_rawDesc = []byte{ 0x12, 0x10, 0x0a, 0x03, 0x56, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x56, 0x69, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x6f, 0x6c, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x54, 0x6f, 0x6c, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, - 0x22, 0x1b, 0x0a, 0x09, 0x43, 0x53, 0x56, 0x49, 0x50, 0x44, 0x72, 0x61, 0x77, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x61, 0x0a, - 0x09, 0x53, 0x43, 0x56, 0x49, 0x50, 0x44, 0x72, 0x61, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x56, 0x69, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x56, 0x69, 0x70, 0x12, 0x32, 0x0a, 0x09, - 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x22, 0x0b, 0x0a, 0x09, 0x43, 0x53, 0x56, 0x49, 0x50, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xbe, 0x04, - 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, 0x24, - 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, - 0x49, 0x74, 0x65, 0x6d, 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, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, - 0x12, 0x16, 0x0a, 0x06, 0x4c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x06, 0x4c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, - 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x18, 0x07, 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, 0x08, 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, 0x09, 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, 0x0a, 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, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, - 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x12, 0x30, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, - 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 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, 0x0d, 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, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x38, 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, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x67, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x42, 0x61, 0x67, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, - 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x22, 0xdf, + 0x22, 0x2d, 0x0a, 0x09, 0x43, 0x53, 0x56, 0x49, 0x50, 0x44, 0x72, 0x61, 0x77, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, + 0x03, 0x56, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x56, 0x69, 0x70, 0x22, + 0x61, 0x0a, 0x09, 0x53, 0x43, 0x56, 0x49, 0x50, 0x44, 0x72, 0x61, 0x77, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, + 0x56, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x56, 0x69, 0x70, 0x12, 0x32, + 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, + 0x64, 0x65, 0x22, 0x0b, 0x0a, 0x09, 0x43, 0x53, 0x56, 0x49, 0x50, 0x49, 0x6e, 0x66, 0x6f, 0x22, + 0x9c, 0x06, 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, 0x24, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, + 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 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, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 0x16, 0x0a, 0x06, 0x4c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x06, 0x4c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, + 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x18, 0x07, 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, 0x08, 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, 0x09, 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, 0x0a, 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, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x12, 0x30, 0x0a, 0x0a, 0x50, 0x72, + 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, + 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, + 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, + 0x0d, 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, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, + 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 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, 0x1c, 0x0a, 0x09, 0x42, 0x61, + 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x42, + 0x61, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x12, 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, 0x13, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 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, 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, 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, 0xdf, 0x01, 0x0a, 0x09, 0x53, 0x43, 0x56, 0x49, 0x50, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x32, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, @@ -12322,7 +12353,7 @@ func file_player_proto_rawDescGZIP() []byte { } var file_player_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_player_proto_msgTypes = make([]protoimpl.MessageInfo, 160) +var file_player_proto_msgTypes = make([]protoimpl.MessageInfo, 162) var file_player_proto_goTypes = []interface{}{ (OpResultCode)(0), // 0: player.OpResultCode (PlayerPacketID)(0), // 1: player.PlayerPacketID @@ -12485,8 +12516,10 @@ var file_player_proto_goTypes = []interface{}{ nil, // 158: player.PlayerData.RankScoreEntry nil, // 159: player.SCPlayerDataUpdate.RankScoreEntry nil, // 160: player.SCGameExDropItems.ItemsEntry - nil, // 161: player.SCBindTelInfo.BindTelRewardEntry - (*server.DB_GameItem)(nil), // 162: server.DB_GameItem + nil, // 161: player.VIPcfg.Privilege1Entry + nil, // 162: player.VIPcfg.Privilege9Entry + nil, // 163: player.SCBindTelInfo.BindTelRewardEntry + (*server.DB_GameItem)(nil), // 164: server.DB_GameItem } var file_player_proto_depIdxs = []int32{ 4, // 0: player.SCBillList.Items:type_name -> player.BillItem @@ -12537,35 +12570,37 @@ var file_player_proto_depIdxs = []int32{ 0, // 45: player.SCVIPBuy.OpRetCode:type_name -> player.OpResultCode 0, // 46: player.SCVIPDraw.OpRetCode:type_name -> player.OpResultCode 93, // 47: player.VIPcfg.Item:type_name -> player.ItemInfo - 93, // 48: player.VIPcfg.Privilege7:type_name -> player.ItemInfo - 0, // 49: player.SCVIPInfo.OpRetCode:type_name -> player.OpResultCode - 103, // 50: player.SCVIPInfo.List:type_name -> player.VIPcfg - 108, // 51: player.SCPayGoodsInfo.Item:type_name -> player.PayItem - 0, // 52: player.SCClientLog.OpRetCode:type_name -> player.OpResultCode - 161, // 53: player.SCBindTelInfo.BindTelReward:type_name -> player.SCBindTelInfo.BindTelRewardEntry - 0, // 54: player.SCPlayerSMSCode.Code:type_name -> player.OpResultCode - 0, // 55: player.SCBindTel.Code:type_name -> player.OpResultCode - 0, // 56: player.SCHttpPass.OpRetCode:type_name -> player.OpResultCode - 128, // 57: player.SCPhoneLotteryInfo.Item:type_name -> player.LotteryItem - 128, // 58: player.SCPhoneLottery.Item:type_name -> player.LotteryItem - 108, // 59: player.SCGetWeekCardAwary.Items:type_name -> player.PayItem - 9, // 60: player.SCGetWeekCardAwary.WeekCard:type_name -> player.WeekInfo - 135, // 61: player.SCExchangeChannel.Datas:type_name -> player.ChannelSwitch - 139, // 62: player.SCSMSConfig.Info:type_name -> player.SMSInfo - 128, // 63: player.SCDiamondLotteryInfo.Item:type_name -> player.LotteryItem - 128, // 64: player.SCDiamondLottery.Item:type_name -> player.LotteryItem - 128, // 65: player.SCDiamondLotteryLuckyAward.Item:type_name -> player.LotteryItem - 162, // 66: player.SCItem.Items:type_name -> server.DB_GameItem - 149, // 67: player.SCAwardLog.AwardLog:type_name -> player.AwardLogData - 151, // 68: player.SCAwardLog.AnnouncerLog:type_name -> player.AnnouncerLogInfo - 150, // 69: player.AwardLogData.AwardLog:type_name -> player.AwardLogInfo - 154, // 70: player.SCPopUpWindowsConfig.Info:type_name -> player.WindowsInfo - 0, // 71: player.SCUpdateAttribute.OpRetCode:type_name -> player.OpResultCode - 72, // [72:72] is the sub-list for method output_type - 72, // [72:72] is the sub-list for method input_type - 72, // [72:72] is the sub-list for extension type_name - 72, // [72:72] is the sub-list for extension extendee - 0, // [0:72] is the sub-list for field type_name + 161, // 48: player.VIPcfg.Privilege1:type_name -> player.VIPcfg.Privilege1Entry + 93, // 49: player.VIPcfg.Privilege7:type_name -> player.ItemInfo + 162, // 50: player.VIPcfg.Privilege9:type_name -> player.VIPcfg.Privilege9Entry + 0, // 51: player.SCVIPInfo.OpRetCode:type_name -> player.OpResultCode + 103, // 52: player.SCVIPInfo.List:type_name -> player.VIPcfg + 108, // 53: player.SCPayGoodsInfo.Item:type_name -> player.PayItem + 0, // 54: player.SCClientLog.OpRetCode:type_name -> player.OpResultCode + 163, // 55: player.SCBindTelInfo.BindTelReward:type_name -> player.SCBindTelInfo.BindTelRewardEntry + 0, // 56: player.SCPlayerSMSCode.Code:type_name -> player.OpResultCode + 0, // 57: player.SCBindTel.Code:type_name -> player.OpResultCode + 0, // 58: player.SCHttpPass.OpRetCode:type_name -> player.OpResultCode + 128, // 59: player.SCPhoneLotteryInfo.Item:type_name -> player.LotteryItem + 128, // 60: player.SCPhoneLottery.Item:type_name -> player.LotteryItem + 108, // 61: player.SCGetWeekCardAwary.Items:type_name -> player.PayItem + 9, // 62: player.SCGetWeekCardAwary.WeekCard:type_name -> player.WeekInfo + 135, // 63: player.SCExchangeChannel.Datas:type_name -> player.ChannelSwitch + 139, // 64: player.SCSMSConfig.Info:type_name -> player.SMSInfo + 128, // 65: player.SCDiamondLotteryInfo.Item:type_name -> player.LotteryItem + 128, // 66: player.SCDiamondLottery.Item:type_name -> player.LotteryItem + 128, // 67: player.SCDiamondLotteryLuckyAward.Item:type_name -> player.LotteryItem + 164, // 68: player.SCItem.Items:type_name -> server.DB_GameItem + 149, // 69: player.SCAwardLog.AwardLog:type_name -> player.AwardLogData + 151, // 70: player.SCAwardLog.AnnouncerLog:type_name -> player.AnnouncerLogInfo + 150, // 71: player.AwardLogData.AwardLog:type_name -> player.AwardLogInfo + 154, // 72: player.SCPopUpWindowsConfig.Info:type_name -> player.WindowsInfo + 0, // 73: player.SCUpdateAttribute.OpRetCode:type_name -> player.OpResultCode + 74, // [74:74] is the sub-list for method output_type + 74, // [74:74] is the sub-list for method input_type + 74, // [74:74] is the sub-list for extension type_name + 74, // [74:74] is the sub-list for extension extendee + 0, // [0:74] is the sub-list for field type_name } func init() { file_player_proto_init() } @@ -14453,7 +14488,7 @@ func file_player_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_player_proto_rawDesc, NumEnums: 2, - NumMessages: 160, + NumMessages: 162, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/player/player.proto b/protocol/player/player.proto index 72afdf4..5170d4a 100644 --- a/protocol/player/player.proto +++ b/protocol/player/player.proto @@ -987,13 +987,14 @@ message SCVIPBuy { //VIP领取 //PACKET_CS_DRAWVIPGIFT message CSVIPDraw { - int32 Id = 1; // 领取编号 0.每日礼包 + int32 Id = 1; // 领取编号 0.每日礼包 1.等级礼包(Privilege9) + int32 Vip = 2; //领取的礼包vip等级 } //VIP领取 //PACKET_SC_DRAWVIPGIFT message SCVIPDraw { - int32 Id = 1; // 领取编号 0.每日礼包 1.每日金币礼包 2.VIP礼包 + int32 Id = 1; // 领取编号 int32 Vip = 2; //领取的礼包vip等级 OpResultCode OpRetCode = 3; //操作结果 } @@ -1008,7 +1009,7 @@ message VIPcfg { repeated ItemInfo Item = 2; // 道具 int32 VipEx = 3; // VIP经验 int64 Price = 4; // 金额 - repeated int32 Privilege1 = 5; //每日礼包 + map Privilege1 = 5; //每日礼包 repeated int32 LineId = 6; //头像框Id repeated int32 Privilege2 = 7; //每日金币礼包1金币值2代表充值的金额 repeated int32 Privilege3 = 8;//VIP商城刷新次数和商品数量 @@ -1020,8 +1021,9 @@ message VIPcfg { int32 Privilege8 = 14;//VIP客服标识 int32 ShopId2 = 15; int32 ShopId7 = 16; - repeated int32 BagStatus = 17;//每日礼包|每日金币礼包|固定VIP礼包 0可领取 1不可领取 + repeated int32 BagStatus = 17;//每日礼包|每日金币礼包|固定VIP礼包|等级礼包 0可领取 1不可领取 int32 MatchFreeTimes = 18;// 比赛免费次数 + map Privilege9 = 19; // vip免费礼包,每个vip等级领取一次 } //VIP信息 diff --git a/protocol/server/pbdata.pb.go b/protocol/server/pbdata.pb.go index 6b80939..f48bfa0 100644 --- a/protocol/server/pbdata.pb.go +++ b/protocol/server/pbdata.pb.go @@ -10496,6 +10496,7 @@ type DB_VIP struct { 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"` ParamName []string `protobuf:"bytes,19,rep,name=ParamName,proto3" json:"ParamName,omitempty"` MatchFreeTimes int32 `protobuf:"varint,20,opt,name=MatchFreeTimes,proto3" json:"MatchFreeTimes,omitempty"` + Privilege9 []int32 `protobuf:"varint,21,rep,packed,name=Privilege9,proto3" json:"Privilege9,omitempty"` } func (x *DB_VIP) Reset() { @@ -10670,6 +10671,13 @@ func (x *DB_VIP) GetMatchFreeTimes() int32 { return 0 } +func (x *DB_VIP) GetPrivilege9() []int32 { + if x != nil { + return x.Privilege9 + } + return nil +} + type DB_VIPArray struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -10717,6 +10725,116 @@ func (x *DB_VIPArray) GetArr() []*DB_VIP { return nil } +type DB_VIPShow struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + SkinId int32 `protobuf:"varint,2,opt,name=SkinId,proto3" json:"SkinId,omitempty"` + VIPLevel int32 `protobuf:"varint,3,opt,name=VIPLevel,proto3" json:"VIPLevel,omitempty"` +} + +func (x *DB_VIPShow) Reset() { + *x = DB_VIPShow{} + if protoimpl.UnsafeEnabled { + mi := &file_pbdata_proto_msgTypes[138] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DB_VIPShow) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DB_VIPShow) ProtoMessage() {} + +func (x *DB_VIPShow) ProtoReflect() protoreflect.Message { + mi := &file_pbdata_proto_msgTypes[138] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DB_VIPShow.ProtoReflect.Descriptor instead. +func (*DB_VIPShow) Descriptor() ([]byte, []int) { + return file_pbdata_proto_rawDescGZIP(), []int{138} +} + +func (x *DB_VIPShow) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *DB_VIPShow) GetSkinId() int32 { + if x != nil { + return x.SkinId + } + return 0 +} + +func (x *DB_VIPShow) GetVIPLevel() int32 { + if x != nil { + return x.VIPLevel + } + return 0 +} + +type DB_VIPShowArray struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Arr []*DB_VIPShow `protobuf:"bytes,1,rep,name=Arr,proto3" json:"Arr,omitempty"` +} + +func (x *DB_VIPShowArray) Reset() { + *x = DB_VIPShowArray{} + if protoimpl.UnsafeEnabled { + mi := &file_pbdata_proto_msgTypes[139] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DB_VIPShowArray) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DB_VIPShowArray) ProtoMessage() {} + +func (x *DB_VIPShowArray) ProtoReflect() protoreflect.Message { + mi := &file_pbdata_proto_msgTypes[139] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DB_VIPShowArray.ProtoReflect.Descriptor instead. +func (*DB_VIPShowArray) Descriptor() ([]byte, []int) { + return file_pbdata_proto_rawDescGZIP(), []int{139} +} + +func (x *DB_VIPShowArray) GetArr() []*DB_VIPShow { + if x != nil { + return x.Arr + } + return nil +} + var File_pbdata_proto protoreflect.FileDescriptor var file_pbdata_proto_rawDesc = []byte{ @@ -12099,7 +12217,7 @@ var file_pbdata_proto_rawDesc = []byte{ 0x03, 0x44, 0x65, 0x73, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x69, - 0x70, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x88, 0x06, 0x0a, 0x06, 0x44, 0x42, 0x5f, 0x56, + 0x70, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa8, 0x06, 0x0a, 0x06, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 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, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, @@ -12140,7 +12258,9 @@ var file_pbdata_proto_rawDesc = []byte{ 0x18, 0x13, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x69, + 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, + 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x39, 0x18, 0x15, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, + 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x39, 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, @@ -12151,10 +12271,18 @@ var file_pbdata_proto_rawDesc = []byte{ 0x38, 0x01, 0x22, 0x2f, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x52, 0x03, - 0x41, 0x72, 0x72, 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, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x41, 0x72, 0x72, 0x22, 0x50, 0x0a, 0x0a, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x53, 0x68, 0x6f, + 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x56, 0x49, 0x50, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x56, 0x49, 0x50, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x37, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x53, + 0x68, 0x6f, 0x77, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x24, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, + 0x42, 0x5f, 0x56, 0x49, 0x50, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x03, 0x41, 0x72, 0x72, 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, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -12169,7 +12297,7 @@ func file_pbdata_proto_rawDescGZIP() []byte { return file_pbdata_proto_rawDescData } -var file_pbdata_proto_msgTypes = make([]protoimpl.MessageInfo, 151) +var file_pbdata_proto_msgTypes = make([]protoimpl.MessageInfo, 153) var file_pbdata_proto_goTypes = []interface{}{ (*DB_ActSign)(nil), // 0: server.DB_ActSign (*DB_ActSignArray)(nil), // 1: server.DB_ActSignArray @@ -12309,19 +12437,21 @@ var file_pbdata_proto_goTypes = []interface{}{ (*DB_TipsArray)(nil), // 135: server.DB_TipsArray (*DB_VIP)(nil), // 136: server.DB_VIP (*DB_VIPArray)(nil), // 137: server.DB_VIPArray - nil, // 138: server.DB_CollectBox.ItemIDEntry - nil, // 139: server.DB_GameItem.GainEntry - nil, // 140: server.DB_GiftBox.ItemIDEntry - nil, // 141: server.DB_GiftCard.RewardsEntry - nil, // 142: server.DB_GiftCard.DayRewardsEntry - nil, // 143: server.DB_PetSkill.ItemConsumEntry - nil, // 144: server.DB_PropExchange.CostEntry - nil, // 145: server.DB_PropExchange.GainEntry - nil, // 146: server.DB_Skin.UnlockItemEntry - nil, // 147: server.DB_SkinLevel.UpItemEntry - nil, // 148: server.DB_Task.AwardEntry - nil, // 149: server.DB_VIP.Privilege7Entry - nil, // 150: server.DB_VIP.AwardEntry + (*DB_VIPShow)(nil), // 138: server.DB_VIPShow + (*DB_VIPShowArray)(nil), // 139: server.DB_VIPShowArray + nil, // 140: server.DB_CollectBox.ItemIDEntry + nil, // 141: server.DB_GameItem.GainEntry + nil, // 142: server.DB_GiftBox.ItemIDEntry + nil, // 143: server.DB_GiftCard.RewardsEntry + nil, // 144: server.DB_GiftCard.DayRewardsEntry + nil, // 145: server.DB_PetSkill.ItemConsumEntry + nil, // 146: server.DB_PropExchange.CostEntry + nil, // 147: server.DB_PropExchange.GainEntry + nil, // 148: server.DB_Skin.UnlockItemEntry + nil, // 149: server.DB_SkinLevel.UpItemEntry + nil, // 150: server.DB_Task.AwardEntry + nil, // 151: server.DB_VIP.Privilege7Entry + nil, // 152: server.DB_VIP.AwardEntry } var file_pbdata_proto_depIdxs = []int32{ 0, // 0: server.DB_ActSignArray.Arr:type_name -> server.DB_ActSign @@ -12336,7 +12466,7 @@ var file_pbdata_proto_depIdxs = []int32{ 18, // 9: server.DB_ChessMatchRulesArray.Arr:type_name -> server.DB_ChessMatchRules 20, // 10: server.DB_ChessRankArray.Arr:type_name -> server.DB_ChessRank 22, // 11: server.DB_ClientVerArray.Arr:type_name -> server.DB_ClientVer - 138, // 12: server.DB_CollectBox.ItemID:type_name -> server.DB_CollectBox.ItemIDEntry + 140, // 12: server.DB_CollectBox.ItemID:type_name -> server.DB_CollectBox.ItemIDEntry 24, // 13: server.DB_CollectBoxArray.Arr:type_name -> server.DB_CollectBox 26, // 14: server.DB_CollectBoxGainArray.Arr:type_name -> server.DB_CollectBoxGain 28, // 15: server.DB_CrashSearchArray.Arr:type_name -> server.DB_CrashSearch @@ -12353,7 +12483,7 @@ var file_pbdata_proto_depIdxs = []int32{ 50, // 26: server.DB_GamMatchLVArray.Arr:type_name -> server.DB_GamMatchLV 52, // 27: server.DB_GameCoinPoolArray.Arr:type_name -> server.DB_GameCoinPool 54, // 28: server.DB_GameFreeArray.Arr:type_name -> server.DB_GameFree - 139, // 29: server.DB_GameItem.Gain:type_name -> server.DB_GameItem.GainEntry + 141, // 29: server.DB_GameItem.Gain:type_name -> server.DB_GameItem.GainEntry 56, // 30: server.DB_GameItemArray.Arr:type_name -> server.DB_GameItem 58, // 31: server.DB_GameMatchLevelArray.Arr:type_name -> server.DB_GameMatchLevel 60, // 32: server.DB_GameRuleArray.Arr:type_name -> server.DB_GameRule @@ -12362,10 +12492,10 @@ var file_pbdata_proto_depIdxs = []int32{ 66, // 35: server.DB_Game_IntroductionArray.Arr:type_name -> server.DB_Game_Introduction 68, // 36: server.DB_Game_PetArray.Arr:type_name -> server.DB_Game_Pet 70, // 37: server.DB_Game_RoleArray.Arr:type_name -> server.DB_Game_Role - 140, // 38: server.DB_GiftBox.ItemID:type_name -> server.DB_GiftBox.ItemIDEntry + 142, // 38: server.DB_GiftBox.ItemID:type_name -> server.DB_GiftBox.ItemIDEntry 72, // 39: server.DB_GiftBoxArray.Arr:type_name -> server.DB_GiftBox - 141, // 40: server.DB_GiftCard.Rewards:type_name -> server.DB_GiftCard.RewardsEntry - 142, // 41: server.DB_GiftCard.DayRewards:type_name -> server.DB_GiftCard.DayRewardsEntry + 143, // 40: server.DB_GiftCard.Rewards:type_name -> server.DB_GiftCard.RewardsEntry + 144, // 41: server.DB_GiftCard.DayRewards:type_name -> server.DB_GiftCard.DayRewardsEntry 74, // 42: server.DB_GiftCardArray.Arr:type_name -> server.DB_GiftCard 76, // 43: server.DB_IceAgeElementRateArray.Arr:type_name -> server.DB_IceAgeElementRate 78, // 44: server.DB_Legend_OddsArray.Arr:type_name -> server.DB_Legend_Odds @@ -12378,7 +12508,7 @@ var file_pbdata_proto_depIdxs = []int32{ 92, // 51: server.DB_NameGirlArray.Arr:type_name -> server.DB_NameGirl 94, // 52: server.DB_NewPlayerArray.Arr:type_name -> server.DB_NewPlayer 96, // 53: server.DB_PassShowArray.Arr:type_name -> server.DB_PassShow - 143, // 54: server.DB_PetSkill.ItemConsum:type_name -> server.DB_PetSkill.ItemConsumEntry + 145, // 54: server.DB_PetSkill.ItemConsum:type_name -> server.DB_PetSkill.ItemConsumEntry 98, // 55: server.DB_PetSkillArray.Arr:type_name -> server.DB_PetSkill 100, // 56: server.DB_PhoneLotteryArray.Arr:type_name -> server.DB_PhoneLottery 102, // 57: server.DB_PigBank_DiamondArray.Arr:type_name -> server.DB_PigBank_Diamond @@ -12386,31 +12516,32 @@ var file_pbdata_proto_depIdxs = []int32{ 106, // 59: server.DB_PlayerExpArray.Arr:type_name -> server.DB_PlayerExp 108, // 60: server.DB_PlayerTypeArray.Arr:type_name -> server.DB_PlayerType 110, // 61: server.DB_PotOddArray.Arr:type_name -> server.DB_PotOdd - 144, // 62: server.DB_PropExchange.Cost:type_name -> server.DB_PropExchange.CostEntry - 145, // 63: server.DB_PropExchange.Gain:type_name -> server.DB_PropExchange.GainEntry + 146, // 62: server.DB_PropExchange.Cost:type_name -> server.DB_PropExchange.CostEntry + 147, // 63: server.DB_PropExchange.Gain:type_name -> server.DB_PropExchange.GainEntry 112, // 64: server.DB_PropExchangeArray.Arr:type_name -> server.DB_PropExchange 114, // 65: server.DB_RankCycleArray.Arr:type_name -> server.DB_RankCycle 116, // 66: server.DB_RankLevelArray.Arr:type_name -> server.DB_RankLevel 118, // 67: server.DB_RankRewardArray.Arr:type_name -> server.DB_RankReward 120, // 68: server.DB_Sensitive_WordsArray.Arr:type_name -> server.DB_Sensitive_Words - 146, // 69: server.DB_Skin.UnlockItem:type_name -> server.DB_Skin.UnlockItemEntry + 148, // 69: server.DB_Skin.UnlockItem:type_name -> server.DB_Skin.UnlockItemEntry 122, // 70: server.DB_SkinArray.Arr:type_name -> server.DB_Skin - 147, // 71: server.DB_SkinLevel.UpItem:type_name -> server.DB_SkinLevel.UpItemEntry + 149, // 71: server.DB_SkinLevel.UpItem:type_name -> server.DB_SkinLevel.UpItemEntry 124, // 72: server.DB_SkinLevelArray.Arr:type_name -> server.DB_SkinLevel 126, // 73: server.DB_SlotRateWeightArray.Arr:type_name -> server.DB_SlotRateWeight 128, // 74: server.DB_SystemChanceArray.Arr:type_name -> server.DB_SystemChance - 148, // 75: server.DB_Task.Award:type_name -> server.DB_Task.AwardEntry + 150, // 75: server.DB_Task.Award:type_name -> server.DB_Task.AwardEntry 130, // 76: server.DB_TaskArray.Arr:type_name -> server.DB_Task 132, // 77: server.DB_ThirdPlatformGameMappingArray.Arr:type_name -> server.DB_ThirdPlatformGameMapping 134, // 78: server.DB_TipsArray.Arr:type_name -> server.DB_Tips - 149, // 79: server.DB_VIP.Privilege7:type_name -> server.DB_VIP.Privilege7Entry - 150, // 80: server.DB_VIP.Award:type_name -> server.DB_VIP.AwardEntry + 151, // 79: server.DB_VIP.Privilege7:type_name -> server.DB_VIP.Privilege7Entry + 152, // 80: server.DB_VIP.Award:type_name -> server.DB_VIP.AwardEntry 136, // 81: server.DB_VIPArray.Arr:type_name -> server.DB_VIP - 82, // [82:82] is the sub-list for method output_type - 82, // [82:82] is the sub-list for method input_type - 82, // [82:82] is the sub-list for extension type_name - 82, // [82:82] is the sub-list for extension extendee - 0, // [0:82] is the sub-list for field type_name + 138, // 82: server.DB_VIPShowArray.Arr:type_name -> server.DB_VIPShow + 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_pbdata_proto_init() } @@ -14075,6 +14206,30 @@ func file_pbdata_proto_init() { return nil } } + file_pbdata_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DB_VIPShow); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbdata_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DB_VIPShowArray); 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{ @@ -14082,7 +14237,7 @@ func file_pbdata_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pbdata_proto_rawDesc, NumEnums: 0, - NumMessages: 151, + NumMessages: 153, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/server/pbdata.proto b/protocol/server/pbdata.proto index d6f391e..609ab4d 100644 --- a/protocol/server/pbdata.proto +++ b/protocol/server/pbdata.proto @@ -1741,9 +1741,25 @@ message DB_VIP { int32 MatchFreeTimes = 20; + repeated int32 Privilege9 = 21; + } message DB_VIPArray { repeated DB_VIP Arr = 1; } +message DB_VIPShow { + + int32 Id = 1; + + int32 SkinId = 2; + + int32 VIPLevel = 3; + +} + +message DB_VIPShowArray { + repeated DB_VIPShow Arr = 1; +} + diff --git a/protocol/webapi/common.pb.go b/protocol/webapi/common.pb.go index 5d72c58..72fde33 100644 --- a/protocol/webapi/common.pb.go +++ b/protocol/webapi/common.pb.go @@ -5469,12 +5469,12 @@ type VIPcfg struct { 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 []int32 `protobuf:"varint,5,rep,packed,name=Privilege1,proto3" json:"Privilege1,omitempty"` //特权1 VIP比赛场免费次数 - Privilege2 []int32 `protobuf:"varint,6,rep,packed,name=Privilege2,proto3" json:"Privilege2,omitempty"` //每日金币 0金币值 1充值金额 + 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"` @@ -5485,7 +5485,8 @@ type VIPcfg struct { 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比赛场免费次数 + 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() { @@ -5548,7 +5549,7 @@ func (x *VIPcfg) GetPrice() int64 { return 0 } -func (x *VIPcfg) GetPrivilege1() []int32 { +func (x *VIPcfg) GetPrivilege1() map[int64]int64 { if x != nil { return x.Privilege1 } @@ -5639,6 +5640,13 @@ func (x *VIPcfg) GetMatchFreeTimes() int32 { 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 @@ -9021,7 +9029,7 @@ var file_common_proto_rawDesc = []byte{ 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, 0xc4, 0x05, 0x0a, 0x06, 0x56, + 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, @@ -9029,8 +9037,10 @@ var file_common_proto_rawDesc = []byte{ 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, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, - 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, + 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, @@ -9058,340 +9068,352 @@ var file_common_proto_rawDesc = []byte{ 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, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, + 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, 0x37, + 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, 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, + 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, 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, 0x8e, 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, 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, + 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, 0x8e, + 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, 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, + 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, 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, 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, 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, + 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, 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 ( @@ -9406,7 +9428,7 @@ func file_common_proto_rawDescGZIP() []byte { return file_common_proto_rawDescData } -var file_common_proto_msgTypes = make([]protoimpl.MessageInfo, 94) +var file_common_proto_msgTypes = make([]protoimpl.MessageInfo, 96) var file_common_proto_goTypes = []interface{}{ (*MysqlDbSetting)(nil), // 0: webapi.MysqlDbSetting (*MongoDbSetting)(nil), // 1: webapi.MongoDbSetting @@ -9498,12 +9520,14 @@ var file_common_proto_goTypes = []interface{}{ nil, // 87: webapi.PlayerData.RankScoreEntry nil, // 88: webapi.ItemShop.AwardEntry nil, // 89: webapi.VIPcfg.AwardEntry - nil, // 90: webapi.VIPcfg.Privilege7Entry - nil, // 91: webapi.ActInviteConfig.PayScoreEntry - nil, // 92: webapi.SkinLevel.UpItemEntry - nil, // 93: webapi.SkinItem.UnlockParamEntry - (*server.DB_GameFree)(nil), // 94: server.DB_GameFree - (*server.DB_GameItem)(nil), // 95: server.DB_GameItem + nil, // 90: webapi.VIPcfg.Privilege1Entry + nil, // 91: webapi.VIPcfg.Privilege7Entry + nil, // 92: webapi.VIPcfg.Privilege9Entry + nil, // 93: webapi.ActInviteConfig.PayScoreEntry + nil, // 94: webapi.SkinLevel.UpItemEntry + nil, // 95: webapi.SkinItem.UnlockParamEntry + (*server.DB_GameFree)(nil), // 96: server.DB_GameFree + (*server.DB_GameItem)(nil), // 97: server.DB_GameItem } var file_common_proto_depIdxs = []int32{ 2, // 0: webapi.Platform.Leaderboard:type_name -> webapi.RankSwitch @@ -9511,12 +9535,12 @@ var file_common_proto_depIdxs = []int32{ 4, // 2: webapi.Platform.ThirdGameMerchant:type_name -> webapi.ThirdGame 86, // 3: webapi.Platform.BindTelReward:type_name -> webapi.Platform.BindTelRewardEntry 6, // 4: webapi.GameConfigGlobal.GameStatus:type_name -> webapi.GameStatus - 94, // 5: webapi.GameFree.DbGameFree:type_name -> server.DB_GameFree + 96, // 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 - 94, // 10: webapi.GameConfigGroup.DbGameFree:type_name -> server.DB_GameFree + 96, // 10: webapi.GameConfigGroup.DbGameFree:type_name -> server.DB_GameFree 87, // 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 @@ -9551,43 +9575,45 @@ var file_common_proto_depIdxs = []int32{ 48, // 42: webapi.WelfareFirstPayDataList.List:type_name -> webapi.WelfareSpree 48, // 43: webapi.WelfareContinuousPayDataList.List:type_name -> webapi.WelfareSpree 89, // 44: webapi.VIPcfg.Award:type_name -> webapi.VIPcfg.AwardEntry - 90, // 45: webapi.VIPcfg.Privilege7:type_name -> webapi.VIPcfg.Privilege7Entry - 51, // 46: webapi.VIPcfgDataList.List:type_name -> webapi.VIPcfg - 38, // 47: webapi.ChessRankConfig.Item:type_name -> webapi.WelfareDate - 55, // 48: webapi.ChessRankcfgData.Datas:type_name -> webapi.ChessRankConfig - 91, // 49: webapi.ActInviteConfig.PayScore:type_name -> webapi.ActInviteConfig.PayScoreEntry - 62, // 50: webapi.ActInviteConfig.Awards1:type_name -> webapi.RankAward - 62, // 51: webapi.ActInviteConfig.Awards2:type_name -> webapi.RankAward - 62, // 52: webapi.ActInviteConfig.Awards3:type_name -> webapi.RankAward - 32, // 53: webapi.PermitLevelConfig.Award1:type_name -> webapi.ItemInfo - 32, // 54: webapi.PermitLevelConfig.Award2:type_name -> webapi.ItemInfo - 32, // 55: webapi.PermitExchangeConfig.Gain:type_name -> webapi.ItemInfo - 32, // 56: webapi.PermitExchangeConfig.Cost:type_name -> webapi.ItemInfo - 32, // 57: webapi.PermitRankConfig.ItemId:type_name -> webapi.ItemInfo - 64, // 58: webapi.PermitChannelConfig.LevelConfig:type_name -> webapi.PermitLevelConfig - 65, // 59: webapi.PermitChannelConfig.ExchangeConfig:type_name -> webapi.PermitExchangeConfig - 66, // 60: webapi.PermitChannelConfig.RankConfig:type_name -> webapi.PermitRankConfig - 67, // 61: webapi.ActPermitConfig.Configs:type_name -> webapi.PermitChannelConfig - 71, // 62: webapi.DiamondLotteryPlayers.Award:type_name -> webapi.AwardData - 69, // 63: webapi.DiamondLotteryData.Info:type_name -> webapi.DiamondLotteryInfo - 70, // 64: webapi.DiamondLotteryData.Players:type_name -> webapi.DiamondLotteryPlayers - 72, // 65: webapi.DiamondLotteryConfig.LotteryData:type_name -> webapi.DiamondLotteryData - 95, // 66: webapi.ItemConfig.Items:type_name -> server.DB_GameItem - 32, // 67: webapi.RankAwardInfo.Item:type_name -> webapi.ItemInfo - 75, // 68: webapi.RankTypeInfo.Award:type_name -> webapi.RankAwardInfo - 76, // 69: webapi.RankTypeConfig.Info:type_name -> webapi.RankTypeInfo - 92, // 70: webapi.SkinLevel.UpItem:type_name -> webapi.SkinLevel.UpItemEntry - 93, // 71: webapi.SkinItem.UnlockParam:type_name -> webapi.SkinItem.UnlockParamEntry - 78, // 72: webapi.SkinItem.Levels:type_name -> webapi.SkinLevel - 79, // 73: webapi.SkinConfig.Items:type_name -> webapi.SkinItem - 82, // 74: webapi.AwardLogConfig.AwardLog:type_name -> webapi.AwardLogData - 84, // 75: webapi.AwardLogConfig.AnnouncerLog:type_name -> webapi.AnnouncerLogInfo - 83, // 76: webapi.AwardLogData.AwardLog:type_name -> webapi.AwardLogInfo - 77, // [77:77] is the sub-list for method output_type - 77, // [77:77] is the sub-list for method input_type - 77, // [77:77] is the sub-list for extension type_name - 77, // [77:77] is the sub-list for extension extendee - 0, // [0:77] is the sub-list for field type_name + 90, // 45: webapi.VIPcfg.Privilege1:type_name -> webapi.VIPcfg.Privilege1Entry + 91, // 46: webapi.VIPcfg.Privilege7:type_name -> webapi.VIPcfg.Privilege7Entry + 92, // 47: webapi.VIPcfg.Privilege9:type_name -> webapi.VIPcfg.Privilege9Entry + 51, // 48: webapi.VIPcfgDataList.List:type_name -> webapi.VIPcfg + 38, // 49: webapi.ChessRankConfig.Item:type_name -> webapi.WelfareDate + 55, // 50: webapi.ChessRankcfgData.Datas:type_name -> webapi.ChessRankConfig + 93, // 51: webapi.ActInviteConfig.PayScore:type_name -> webapi.ActInviteConfig.PayScoreEntry + 62, // 52: webapi.ActInviteConfig.Awards1:type_name -> webapi.RankAward + 62, // 53: webapi.ActInviteConfig.Awards2:type_name -> webapi.RankAward + 62, // 54: webapi.ActInviteConfig.Awards3:type_name -> webapi.RankAward + 32, // 55: webapi.PermitLevelConfig.Award1:type_name -> webapi.ItemInfo + 32, // 56: webapi.PermitLevelConfig.Award2:type_name -> webapi.ItemInfo + 32, // 57: webapi.PermitExchangeConfig.Gain:type_name -> webapi.ItemInfo + 32, // 58: webapi.PermitExchangeConfig.Cost:type_name -> webapi.ItemInfo + 32, // 59: webapi.PermitRankConfig.ItemId:type_name -> webapi.ItemInfo + 64, // 60: webapi.PermitChannelConfig.LevelConfig:type_name -> webapi.PermitLevelConfig + 65, // 61: webapi.PermitChannelConfig.ExchangeConfig:type_name -> webapi.PermitExchangeConfig + 66, // 62: webapi.PermitChannelConfig.RankConfig:type_name -> webapi.PermitRankConfig + 67, // 63: webapi.ActPermitConfig.Configs:type_name -> webapi.PermitChannelConfig + 71, // 64: webapi.DiamondLotteryPlayers.Award:type_name -> webapi.AwardData + 69, // 65: webapi.DiamondLotteryData.Info:type_name -> webapi.DiamondLotteryInfo + 70, // 66: webapi.DiamondLotteryData.Players:type_name -> webapi.DiamondLotteryPlayers + 72, // 67: webapi.DiamondLotteryConfig.LotteryData:type_name -> webapi.DiamondLotteryData + 97, // 68: webapi.ItemConfig.Items:type_name -> server.DB_GameItem + 32, // 69: webapi.RankAwardInfo.Item:type_name -> webapi.ItemInfo + 75, // 70: webapi.RankTypeInfo.Award:type_name -> webapi.RankAwardInfo + 76, // 71: webapi.RankTypeConfig.Info:type_name -> webapi.RankTypeInfo + 94, // 72: webapi.SkinLevel.UpItem:type_name -> webapi.SkinLevel.UpItemEntry + 95, // 73: webapi.SkinItem.UnlockParam:type_name -> webapi.SkinItem.UnlockParamEntry + 78, // 74: webapi.SkinItem.Levels:type_name -> webapi.SkinLevel + 79, // 75: webapi.SkinConfig.Items:type_name -> webapi.SkinItem + 82, // 76: webapi.AwardLogConfig.AwardLog:type_name -> webapi.AwardLogData + 84, // 77: webapi.AwardLogConfig.AnnouncerLog:type_name -> webapi.AnnouncerLogInfo + 83, // 78: webapi.AwardLogData.AwardLog:type_name -> webapi.AwardLogInfo + 79, // [79:79] is the sub-list for method output_type + 79, // [79:79] is the sub-list for method input_type + 79, // [79:79] is the sub-list for extension type_name + 79, // [79:79] is the sub-list for extension extendee + 0, // [0:79] is the sub-list for field type_name } func init() { file_common_proto_init() } @@ -10635,7 +10661,7 @@ func file_common_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_common_proto_rawDesc, NumEnums: 0, - NumMessages: 94, + NumMessages: 96, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/webapi/common.proto b/protocol/webapi/common.proto index 42af3e2..f9eae8e 100644 --- a/protocol/webapi/common.proto +++ b/protocol/webapi/common.proto @@ -615,7 +615,7 @@ message VIPcfg { map Award = 2; // 道具 int32 VipEx = 3; // VIP经验 int64 Price = 4; // 金额 - repeated int32 Privilege1 = 5; //特权1 VIP比赛场免费次数 + map Privilege1 = 5; //特权1 VIP比赛场免费次数 repeated int32 Privilege2 = 6; //每日金币 0金币值 1充值金额 repeated int32 Privilege3 = 7; int32 Privilege4 = 8; @@ -628,6 +628,7 @@ message VIPcfg { int32 ShopId2 = 15; int32 ShopId7 = 16; int32 MatchFreeTimes = 17; // vip比赛场免费次数 + map Privilege9 = 18; // vip免费礼包,每个vip等级领取一次 } // etcd /game/VIPcfg VIP配置 diff --git a/xlsx/DB_VIP.xlsx b/xlsx/DB_VIP.xlsx index 54529400e3d4bcc39a15c7c02f29a8b63b28b4ab..4a5feb2a5610ed7e7d588dd6bdace7fefab94886 100644 GIT binary patch delta 15345 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 Nbx8+xA@@)F{{cT>2EG6Q delta 14860 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 diff --git a/xlsx/DB_VIPShow.xlsx b/xlsx/DB_VIPShow.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..96e9c67411ca71b864502a159dac1d2223302824 GIT binary patch literal 14308 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 z z2l;-T2d7+O>vbmVV3zL%*FO{v;MMeZQbqCeSNv%61#O?`u7~MRg}$TDjq<{gSnPE& z6MBmqt6XUBo1Pqjs5o(EG1}eGPvb-h8{M?=3Fiki`mO&P+5b348nxP$NkWZ*Nw2#--#KIm}3^H`s7TRoEESUY`*~Dcp zLo7StdJMmUC<3Ss*)EFAL2nv=PiLm$Z30&;#uo6KId}}T8Hvhv*AY+ic6kT`T%7M1 zle@BIJ5<7bZdpYYKA1CQ?i;-T;-9%2boiO^DH7|Q$L z$O7^A$Pl1MxwTU;q$SMG9J#{aC7osaY3VgWNoKKl?{Wu4Nh4uHs<)K*?FqmJ*!6;B zcjcgJM3un@r`=|~%FL2r<6OXPVZO3Ef^M#;N#~lx4S7_`ElY)6_PK!vU9>}U`a5YJ z#AA`jtAQ7QR|!5vuQxgu<^b@RxP70h4$Y$R5$%Ckjq0EAz#nx-j|Aw3E1=ZrIj^I} zXJKv&s8Q9Fce2#8(Rg;5U9pRj9XtrWM-s07`WCPnZJlU*s~^r~B|0IL9U$h*Jmypo zmX>xw1n<9zzOk6ET3}mdtDLZ>RYgyw!qeI`ZFhEx*VD?8i%ms2FtT2#*F_in6gxWn zp?%uZl#!DQU3~f-ZI*E`7=_NcQc4zOJLF(0gcyY!YDj=By8d?v&HfjAXarrvG?`%w$cz3f#2UM+$vbJX-go=~4jt0cl6ddD&w9zM zA1nJ;1$h?bzzWtykUkWx44s9W?t(D-A34h_u@FASF+!8zqMPMN z3gPyYRtDkEI!paw{-I^>lEd}M<5)QeXpauuS*}bE#$_I2-qWf$(+*VR9Efe41;&y6 z-Fpy`EuiBr-3*5PXI+?fYJWN{nN<)+t8nj zlz+8ntT+Hh3c&qG$@1TI%HK7QNsLk055CWehUf*Bo_XBgx`XGR=B+s z^m2vwTTnmoPeK1@z4ubW%cRC{3FuhAB>XqU@ozx>U56x5ezN|R=>I#4FH`-$d$jwL z?RVn;5lM@I{d6*zfP)3CfN$`0&wT$6 Dx!Qc4 literal 0 HcmV?d00001