Commit 22ca51dd authored by jixing wei's avatar jixing wei Committed by vipwzw

remove float

parent 71f5a595
...@@ -49,7 +49,7 @@ const ( ...@@ -49,7 +49,7 @@ const (
const ( const (
luckyNumMol = 100000 luckyNumMol = 100000
decimal = 100000000 //1e8 decimal = types.Coin //1e8
blockNum = 5 blockNum = 5
) )
...@@ -177,7 +177,7 @@ func (action *Action) GetBuyReceiptLog(lottery *pty.Lottery, preStatus int32, ro ...@@ -177,7 +177,7 @@ func (action *Action) GetBuyReceiptLog(lottery *pty.Lottery, preStatus int32, ro
// GetDrawReceiptLog generate logs for lottery draw action // GetDrawReceiptLog generate logs for lottery draw action
func (action *Action) GetDrawReceiptLog(lottery *pty.Lottery, preStatus int32, round int64, luckyNum int64, updateInfo *pty.LotteryUpdateBuyInfo, addrNumThisRound int64, buyAmountThisRound int64, gainInfos *pty.LotteryGainInfos, func (action *Action) GetDrawReceiptLog(lottery *pty.Lottery, preStatus int32, round int64, luckyNum int64, updateInfo *pty.LotteryUpdateBuyInfo, addrNumThisRound int64, buyAmountThisRound int64, gainInfos *pty.LotteryGainInfos,
luckyAddrNum int64, totalFund int64, factor float64) *types.ReceiptLog { luckyAddrNum int64, totalFund int64, factor int64) *types.ReceiptLog {
log := &types.ReceiptLog{} log := &types.ReceiptLog{}
log.Ty = pty.TyLogLotteryDraw log.Ty = pty.TyLogLotteryDraw
...@@ -191,7 +191,7 @@ func (action *Action) GetDrawReceiptLog(lottery *pty.Lottery, preStatus int32, r ...@@ -191,7 +191,7 @@ func (action *Action) GetDrawReceiptLog(lottery *pty.Lottery, preStatus int32, r
l.BuyAmount = buyAmountThisRound l.BuyAmount = buyAmountThisRound
l.LuckyAddrNum = luckyAddrNum l.LuckyAddrNum = luckyAddrNum
l.TotalFund = totalFund l.TotalFund = totalFund
l.Factor = float32(factor) l.Factor = factor
if len(updateInfo.BuyInfo) > 0 { if len(updateInfo.BuyInfo) > 0 {
l.UpdateInfo = updateInfo l.UpdateInfo = updateInfo
} }
...@@ -578,7 +578,7 @@ func checkFundAmount(luckynum int64, guessnum int64, way int64) (int64, int64) { ...@@ -578,7 +578,7 @@ func checkFundAmount(luckynum int64, guessnum int64, way int64) (int64, int64) {
} }
} }
func (action *Action) checkDraw(lott *LotteryDB) (*types.Receipt, *pty.LotteryUpdateBuyInfo, *pty.LotteryGainInfos, int64, int64, float64, error) { func (action *Action) checkDraw(lott *LotteryDB) (*types.Receipt, *pty.LotteryUpdateBuyInfo, *pty.LotteryGainInfos, int64, int64, int64, error) {
luckynum, err := action.findLuckyNum(false, lott) luckynum, err := action.findLuckyNum(false, lott)
if luckynum < 0 || luckynum >= luckyNumMol { if luckynum < 0 || luckynum >= luckyNumMol {
return nil, nil, nil, 0, 0, 0, err return nil, nil, nil, 0, 0, 0, err
...@@ -616,35 +616,27 @@ func (action *Action) checkDraw(lott *LotteryDB) (*types.Receipt, *pty.LotteryUp ...@@ -616,35 +616,27 @@ func (action *Action) checkDraw(lott *LotteryDB) (*types.Receipt, *pty.LotteryUp
} }
llog.Debug("checkDraw", "lenofupdate", len(updateInfo.BuyInfo), "update", updateInfo.BuyInfo) llog.Debug("checkDraw", "lenofupdate", len(updateInfo.BuyInfo), "update", updateInfo.BuyInfo)
var factor = 1.0 var factor = decimal
if totalFund > 0 { if totalFund > 0 {
if totalFund > lott.GetFund()/2 { if totalFund > lott.GetFund()/2 {
llog.Debug("checkDraw ajust fund", "lott.Fund", lott.Fund, "totalFund", totalFund) llog.Debug("checkDraw ajust fund", "lott.Fund", lott.Fund, "totalFund", totalFund)
factor = (float64)(lott.GetFund()) / 2 / (float64)(totalFund) factor = decimal * (lott.GetFund()) / 2 / (totalFund)
lott.Fund = lott.Fund / 2 lott.Fund = lott.Fund / 2
} else { } else {
factor = 1.0
lott.Fund -= totalFund lott.Fund -= totalFund
} }
llog.Debug("checkDraw", "factor", factor, "totalFund", totalFund) llog.Debug("checkDraw", "factor", factor, "totalFund", totalFund)
//protection for rollback if !action.CheckExecAccount(lott.CreateAddr, factor*totalFund+1, true) {
if factor == 1.0 {
if !action.CheckExecAccount(lott.CreateAddr, totalFund, true) {
return nil, nil, nil, 0, 0, 0, pty.ErrLotteryFundNotEnough return nil, nil, nil, 0, 0, 0, pty.ErrLotteryFundNotEnough
} }
} else {
if !action.CheckExecAccount(lott.CreateAddr, decimal*lott.Fund/2+1, true) {
return nil, nil, nil, 0, 0, 0, pty.ErrLotteryFundNotEnough
}
}
for _, recs := range lott.PurRecords { for _, recs := range lott.PurRecords {
if recs.FundWin > 0 { if recs.FundWin > 0 {
fund := (recs.FundWin * int64(factor*exciting)) * decimal * (rewardBase - lott.OpRewardRatio - lott.DevRewardRatio) / (exciting * rewardBase) //any problem when too little? fund := (recs.FundWin * factor) * (rewardBase - lott.OpRewardRatio - lott.DevRewardRatio) / rewardBase //any problem when too little?
llog.Debug("checkDraw", "fund", fund) llog.Debug("checkDraw", "fund", fund)
gain := &pty.LotteryGainInfo{Addr: recs.Addr, BuyAmount: recs.AmountOneRound, FundAmount: float32(fund) / float32(decimal)} gain := &pty.LotteryGainInfo{Addr: recs.Addr, BuyAmount: recs.AmountOneRound, FundAmount: fund}
gainInfos.Gains = append(gainInfos.Gains, gain) gainInfos.Gains = append(gainInfos.Gains, gain)
receipt, err := action.coinsAccount.ExecTransferFrozen(lott.CreateAddr, recs.Addr, action.execaddr, fund) receipt, err := action.coinsAccount.ExecTransferFrozen(lott.CreateAddr, recs.Addr, action.execaddr, fund)
if err != nil { if err != nil {
...@@ -660,7 +652,7 @@ func (action *Action) checkDraw(lott *LotteryDB) (*types.Receipt, *pty.LotteryUp ...@@ -660,7 +652,7 @@ func (action *Action) checkDraw(lott *LotteryDB) (*types.Receipt, *pty.LotteryUp
} }
//op reward //op reward
fundOp := int64(factor*decimal) * totalFund * lott.OpRewardRatio / rewardBase fundOp := factor * totalFund * lott.OpRewardRatio / rewardBase
receipt, err := action.coinsAccount.ExecTransferFrozen(lott.CreateAddr, opRewardAddr, action.execaddr, fundOp) receipt, err := action.coinsAccount.ExecTransferFrozen(lott.CreateAddr, opRewardAddr, action.execaddr, fundOp)
if err != nil { if err != nil {
return nil, nil, nil, 0, 0, 0, err return nil, nil, nil, 0, 0, 0, err
...@@ -668,7 +660,7 @@ func (action *Action) checkDraw(lott *LotteryDB) (*types.Receipt, *pty.LotteryUp ...@@ -668,7 +660,7 @@ func (action *Action) checkDraw(lott *LotteryDB) (*types.Receipt, *pty.LotteryUp
kv = append(kv, receipt.KV...) kv = append(kv, receipt.KV...)
logs = append(logs, receipt.Logs...) logs = append(logs, receipt.Logs...)
//dev reward //dev reward
fundDev := int64(factor*decimal) * totalFund * lott.DevRewardRatio / rewardBase fundDev := factor * totalFund * lott.DevRewardRatio / rewardBase
receipt, err = action.coinsAccount.ExecTransferFrozen(lott.CreateAddr, devRewardAddr, action.execaddr, fundDev) receipt, err = action.coinsAccount.ExecTransferFrozen(lott.CreateAddr, devRewardAddr, action.execaddr, fundDev)
if err != nil { if err != nil {
return nil, nil, nil, 0, 0, 0, err return nil, nil, nil, 0, 0, 0, err
......
...@@ -96,7 +96,7 @@ message ReceiptLottery { ...@@ -96,7 +96,7 @@ message ReceiptLottery {
LotteryGainInfos gainInfos = 16; LotteryGainInfos gainInfos = 16;
int64 luckyAddrNum = 17; int64 luckyAddrNum = 17;
int64 totalFund = 18; int64 totalFund = 18;
float factor = 19; int64 factor = 19;
} }
message ReqLotteryInfo { message ReqLotteryInfo {
...@@ -194,7 +194,7 @@ message LotteryDrawRecord { ...@@ -194,7 +194,7 @@ message LotteryDrawRecord {
int64 buyAmount = 6; int64 buyAmount = 6;
int64 luckyAddrNum = 7; int64 luckyAddrNum = 7;
int64 totalFund = 8; int64 totalFund = 8;
float factor = 9; int64 factor = 9;
} }
message LotteryDrawRecords { message LotteryDrawRecords {
...@@ -225,13 +225,13 @@ message LotteryGainInfos{ ...@@ -225,13 +225,13 @@ message LotteryGainInfos{
message LotteryGainInfo{ message LotteryGainInfo{
string addr = 1; string addr = 1;
int64 buyAmount = 2; int64 buyAmount = 2;
float fundAmount = 3; int64 fundAmount = 3;
} }
message LotteryGainRecord{ message LotteryGainRecord{
string addr = 1; string addr = 1;
int64 buyAmount = 2; int64 buyAmount = 2;
float fundAmount = 3; int64 fundAmount = 3;
int64 round = 4; int64 round = 4;
} }
......
...@@ -494,116 +494,229 @@ func (m *LotteryAction) GetTy() int32 { ...@@ -494,116 +494,229 @@ func (m *LotteryAction) GetTy() int32 {
return 0 return 0
} }
// XXX_OneofWrappers is for the internal use of the proto package.
func (*LotteryAction) XXX_OneofWrappers() []interface{} {
return []interface{}{
(*LotteryAction_Create)(nil),
(*LotteryAction_Buy)(nil),
(*LotteryAction_Draw)(nil),
(*LotteryAction_Close)(nil),
}
}
// XXX_OneofFuncs is for the internal use of the proto package. // XXX_OneofFuncs is for the internal use of the proto package.
func (*LotteryAction) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { func (*LotteryAction) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
return _LotteryAction_OneofMarshaler, _LotteryAction_OneofUnmarshaler, _LotteryAction_OneofSizer, []interface{}{ return _LotteryAction_OneofMarshaler, _LotteryAction_OneofUnmarshaler, _LotteryAction_OneofSizer, []interface{}{
(*LotteryAction_Create)(nil), (*LotteryAction_Create)(nil),
(*LotteryAction_Buy)(nil), (*LotteryAction_Buy)(nil),
(*LotteryAction_Draw)(nil), (*LotteryAction_Draw)(nil),
(*LotteryAction_Close)(nil), (*LotteryAction_Close)(nil),
} }
} }
func _LotteryAction_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { func _LotteryAction_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
m := msg.(*LotteryAction) m := msg.(*LotteryAction)
// value // value
switch x := m.Value.(type) { switch x := m.Value.(type) {
case *LotteryAction_Create: case *LotteryAction_Create:
b.EncodeVarint(1<<3 | proto.WireBytes) b.EncodeVarint(1<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Create); err != nil { if err := b.EncodeMessage(x.Create); err != nil {
return err return err
} }
case *LotteryAction_Buy: case *LotteryAction_Buy:
b.EncodeVarint(2<<3 | proto.WireBytes) b.EncodeVarint(2<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Buy); err != nil { if err := b.EncodeMessage(x.Buy); err != nil {
return err return err
} }
case *LotteryAction_Draw: case *LotteryAction_Draw:
b.EncodeVarint(3<<3 | proto.WireBytes) b.EncodeVarint(3<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Draw); err != nil { if err := b.EncodeMessage(x.Draw); err != nil {
return err return err
} }
case *LotteryAction_Close: case *LotteryAction_Close:
b.EncodeVarint(4<<3 | proto.WireBytes) b.EncodeVarint(4<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Close); err != nil { if err := b.EncodeMessage(x.Close); err != nil {
return err return err
} }
case nil: case nil:
default: default:
return fmt.Errorf("LotteryAction.Value has unexpected type %T", x) return fmt.Errorf("LotteryAction.Value has unexpected type %T", x)
} }
return nil return nil
} }
func _LotteryAction_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { func _LotteryAction_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
m := msg.(*LotteryAction) m := msg.(*LotteryAction)
switch tag { switch tag {
case 1: // value.create case 1: // value.create
if wire != proto.WireBytes { if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType return true, proto.ErrInternalBadWireType
} }
msg := new(LotteryCreate) msg := new(LotteryCreate)
err := b.DecodeMessage(msg) err := b.DecodeMessage(msg)
m.Value = &LotteryAction_Create{msg} m.Value = &LotteryAction_Create{msg}
return true, err return true, err
case 2: // value.buy case 2: // value.buy
if wire != proto.WireBytes { if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType return true, proto.ErrInternalBadWireType
} }
msg := new(LotteryBuy) msg := new(LotteryBuy)
err := b.DecodeMessage(msg) err := b.DecodeMessage(msg)
m.Value = &LotteryAction_Buy{msg} m.Value = &LotteryAction_Buy{msg}
return true, err return true, err
case 3: // value.draw case 3: // value.draw
if wire != proto.WireBytes { if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType return true, proto.ErrInternalBadWireType
} }
msg := new(LotteryDraw) msg := new(LotteryDraw)
err := b.DecodeMessage(msg) err := b.DecodeMessage(msg)
m.Value = &LotteryAction_Draw{msg} m.Value = &LotteryAction_Draw{msg}
return true, err return true, err
case 4: // value.close case 4: // value.close
if wire != proto.WireBytes { if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType return true, proto.ErrInternalBadWireType
} }
msg := new(LotteryClose) msg := new(LotteryClose)
err := b.DecodeMessage(msg) err := b.DecodeMessage(msg)
m.Value = &LotteryAction_Close{msg} m.Value = &LotteryAction_Close{msg}
return true, err return true, err
default: default:
return false, nil return false, nil
} }
} }
func _LotteryAction_OneofSizer(msg proto.Message) (n int) { func _LotteryAction_OneofSizer(msg proto.Message) (n int) {
m := msg.(*LotteryAction) m := msg.(*LotteryAction)
// value // value
switch x := m.Value.(type) { switch x := m.Value.(type) {
case *LotteryAction_Create: case *LotteryAction_Create:
s := proto.Size(x.Create) s := proto.Size(x.Create)
n += 1 // tag and wire n += 1 // tag and wire
n += proto.SizeVarint(uint64(s)) n += proto.SizeVarint(uint64(s))
n += s n += s
case *LotteryAction_Buy: case *LotteryAction_Buy:
s := proto.Size(x.Buy) s := proto.Size(x.Buy)
n += 1 // tag and wire n += 1 // tag and wire
n += proto.SizeVarint(uint64(s)) n += proto.SizeVarint(uint64(s))
n += s n += s
case *LotteryAction_Draw: case *LotteryAction_Draw:
s := proto.Size(x.Draw) s := proto.Size(x.Draw)
n += 1 // tag and wire n += 1 // tag and wire
n += proto.SizeVarint(uint64(s)) n += proto.SizeVarint(uint64(s))
n += s n += s
case *LotteryAction_Close: case *LotteryAction_Close:
s := proto.Size(x.Close) s := proto.Size(x.Close)
n += 1 // tag and wire n += 1 // tag and wire
n += proto.SizeVarint(uint64(s)) n += proto.SizeVarint(uint64(s))
n += s n += s
case nil: case nil:
default: default:
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
} }
return n return n
} }
type LotteryCreate struct { type LotteryCreate struct {
...@@ -829,7 +942,7 @@ type ReceiptLottery struct { ...@@ -829,7 +942,7 @@ type ReceiptLottery struct {
GainInfos *LotteryGainInfos `protobuf:"bytes,16,opt,name=gainInfos,proto3" json:"gainInfos,omitempty"` GainInfos *LotteryGainInfos `protobuf:"bytes,16,opt,name=gainInfos,proto3" json:"gainInfos,omitempty"`
LuckyAddrNum int64 `protobuf:"varint,17,opt,name=luckyAddrNum,proto3" json:"luckyAddrNum,omitempty"` LuckyAddrNum int64 `protobuf:"varint,17,opt,name=luckyAddrNum,proto3" json:"luckyAddrNum,omitempty"`
TotalFund int64 `protobuf:"varint,18,opt,name=totalFund,proto3" json:"totalFund,omitempty"` TotalFund int64 `protobuf:"varint,18,opt,name=totalFund,proto3" json:"totalFund,omitempty"`
Factor float32 `protobuf:"fixed32,19,opt,name=factor,proto3" json:"factor,omitempty"` Factor int64 `protobuf:"varint,19,opt,name=factor,proto3" json:"factor,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
...@@ -986,7 +1099,7 @@ func (m *ReceiptLottery) GetTotalFund() int64 { ...@@ -986,7 +1099,7 @@ func (m *ReceiptLottery) GetTotalFund() int64 {
return 0 return 0
} }
func (m *ReceiptLottery) GetFactor() float32 { func (m *ReceiptLottery) GetFactor() int64 {
if m != nil { if m != nil {
return m.Factor return m.Factor
} }
...@@ -1767,7 +1880,7 @@ type LotteryDrawRecord struct { ...@@ -1767,7 +1880,7 @@ type LotteryDrawRecord struct {
BuyAmount int64 `protobuf:"varint,6,opt,name=buyAmount,proto3" json:"buyAmount,omitempty"` BuyAmount int64 `protobuf:"varint,6,opt,name=buyAmount,proto3" json:"buyAmount,omitempty"`
LuckyAddrNum int64 `protobuf:"varint,7,opt,name=luckyAddrNum,proto3" json:"luckyAddrNum,omitempty"` LuckyAddrNum int64 `protobuf:"varint,7,opt,name=luckyAddrNum,proto3" json:"luckyAddrNum,omitempty"`
TotalFund int64 `protobuf:"varint,8,opt,name=totalFund,proto3" json:"totalFund,omitempty"` TotalFund int64 `protobuf:"varint,8,opt,name=totalFund,proto3" json:"totalFund,omitempty"`
Factor float32 `protobuf:"fixed32,9,opt,name=factor,proto3" json:"factor,omitempty"` Factor int64 `protobuf:"varint,9,opt,name=factor,proto3" json:"factor,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
...@@ -1854,7 +1967,7 @@ func (m *LotteryDrawRecord) GetTotalFund() int64 { ...@@ -1854,7 +1967,7 @@ func (m *LotteryDrawRecord) GetTotalFund() int64 {
return 0 return 0
} }
func (m *LotteryDrawRecord) GetFactor() float32 { func (m *LotteryDrawRecord) GetFactor() int64 {
if m != nil { if m != nil {
return m.Factor return m.Factor
} }
...@@ -2106,7 +2219,7 @@ func (m *LotteryGainInfos) GetGains() []*LotteryGainInfo { ...@@ -2106,7 +2219,7 @@ func (m *LotteryGainInfos) GetGains() []*LotteryGainInfo {
type LotteryGainInfo struct { type LotteryGainInfo struct {
Addr string `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"` Addr string `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"`
BuyAmount int64 `protobuf:"varint,2,opt,name=buyAmount,proto3" json:"buyAmount,omitempty"` BuyAmount int64 `protobuf:"varint,2,opt,name=buyAmount,proto3" json:"buyAmount,omitempty"`
FundAmount float32 `protobuf:"fixed32,3,opt,name=fundAmount,proto3" json:"fundAmount,omitempty"` FundAmount int64 `protobuf:"varint,3,opt,name=fundAmount,proto3" json:"fundAmount,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
...@@ -2151,7 +2264,7 @@ func (m *LotteryGainInfo) GetBuyAmount() int64 { ...@@ -2151,7 +2264,7 @@ func (m *LotteryGainInfo) GetBuyAmount() int64 {
return 0 return 0
} }
func (m *LotteryGainInfo) GetFundAmount() float32 { func (m *LotteryGainInfo) GetFundAmount() int64 {
if m != nil { if m != nil {
return m.FundAmount return m.FundAmount
} }
...@@ -2161,7 +2274,7 @@ func (m *LotteryGainInfo) GetFundAmount() float32 { ...@@ -2161,7 +2274,7 @@ func (m *LotteryGainInfo) GetFundAmount() float32 {
type LotteryGainRecord struct { type LotteryGainRecord struct {
Addr string `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"` Addr string `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"`
BuyAmount int64 `protobuf:"varint,2,opt,name=buyAmount,proto3" json:"buyAmount,omitempty"` BuyAmount int64 `protobuf:"varint,2,opt,name=buyAmount,proto3" json:"buyAmount,omitempty"`
FundAmount float32 `protobuf:"fixed32,3,opt,name=fundAmount,proto3" json:"fundAmount,omitempty"` FundAmount int64 `protobuf:"varint,3,opt,name=fundAmount,proto3" json:"fundAmount,omitempty"`
Round int64 `protobuf:"varint,4,opt,name=round,proto3" json:"round,omitempty"` Round int64 `protobuf:"varint,4,opt,name=round,proto3" json:"round,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
...@@ -2207,7 +2320,7 @@ func (m *LotteryGainRecord) GetBuyAmount() int64 { ...@@ -2207,7 +2320,7 @@ func (m *LotteryGainRecord) GetBuyAmount() int64 {
return 0 return 0
} }
func (m *LotteryGainRecord) GetFundAmount() float32 { func (m *LotteryGainRecord) GetFundAmount() int64 {
if m != nil { if m != nil {
return m.FundAmount return m.FundAmount
} }
...@@ -2427,100 +2540,100 @@ func init() { ...@@ -2427,100 +2540,100 @@ func init() {
func init() { proto.RegisterFile("lottery.proto", fileDescriptor_2cce7afd61783b10) } func init() { proto.RegisterFile("lottery.proto", fileDescriptor_2cce7afd61783b10) }
var fileDescriptor_2cce7afd61783b10 = []byte{ var fileDescriptor_2cce7afd61783b10 = []byte{
// 1512 bytes of a gzipped FileDescriptorProto // 1509 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0xcd, 0x6e, 0xdb, 0xc6, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0xcd, 0x6e, 0x1c, 0xc5,
0x13, 0x37, 0x49, 0x51, 0xb2, 0x46, 0x96, 0x1c, 0xaf, 0x1d, 0x87, 0xff, 0xfc, 0x0b, 0xc3, 0x20, 0x13, 0xf7, 0x7c, 0xed, 0x7a, 0x6b, 0xbd, 0xeb, 0xb8, 0xed, 0x38, 0xf3, 0xcf, 0x1f, 0x59, 0xd6,
0x9a, 0xc2, 0x40, 0x52, 0xa1, 0x55, 0x3f, 0x50, 0xb4, 0x41, 0xd1, 0x38, 0x4d, 0x2a, 0x03, 0xf9, 0x88, 0x20, 0x4b, 0x09, 0x2b, 0x58, 0x3e, 0x84, 0x20, 0x42, 0xc4, 0x21, 0x61, 0x2d, 0xe5, 0x4b,
0xc2, 0xc6, 0x45, 0x0f, 0xed, 0x85, 0x96, 0x98, 0x98, 0x88, 0x4c, 0xaa, 0xe4, 0x32, 0x36, 0xd1, 0x1d, 0x23, 0x0e, 0x70, 0x19, 0xef, 0x4c, 0xe2, 0x51, 0xd6, 0x33, 0xcb, 0x4c, 0x4f, 0xec, 0x11,
0x4b, 0xaf, 0x3d, 0x17, 0xe8, 0x0b, 0xf4, 0xd2, 0x63, 0x1f, 0xa1, 0xa7, 0xbe, 0x41, 0x0b, 0xf4, 0x17, 0xae, 0x9c, 0x91, 0x78, 0x01, 0x2e, 0x1c, 0x79, 0x04, 0x4e, 0xbc, 0x01, 0x48, 0xbc, 0x05,
0x2d, 0xfa, 0x08, 0xc5, 0xce, 0x2e, 0xb9, 0x4b, 0x8a, 0x32, 0xed, 0x26, 0x87, 0x9e, 0xcc, 0x9d, 0x8f, 0x80, 0xfa, 0x63, 0xa6, 0x7b, 0x7a, 0x67, 0x3d, 0x36, 0xc9, 0x81, 0x93, 0xa7, 0xab, 0xab,
0x9d, 0xdd, 0x99, 0x9d, 0xf9, 0xcd, 0xcc, 0x4f, 0x86, 0xfe, 0x2c, 0x62, 0xcc, 0x8f, 0xb3, 0xe1, 0xbb, 0xaa, 0xab, 0x7e, 0x55, 0xf5, 0x5b, 0xc3, 0x60, 0x96, 0x10, 0x12, 0xa6, 0xc5, 0x68, 0x9e,
0x3c, 0x8e, 0x58, 0x44, 0x6c, 0x96, 0xcd, 0xfd, 0xc4, 0x3d, 0x86, 0xc1, 0x93, 0x34, 0x9e, 0x1c, 0x26, 0x24, 0x41, 0x0e, 0x29, 0xe6, 0x61, 0xe6, 0x1d, 0xc3, 0xf0, 0x49, 0x9e, 0x4e, 0x8f, 0xfd,
0x7b, 0x89, 0x4f, 0xfd, 0x49, 0x14, 0x4f, 0xc9, 0x36, 0xb4, 0xbd, 0x93, 0x28, 0x0d, 0x99, 0x63, 0x2c, 0xc4, 0xe1, 0x34, 0x49, 0x03, 0xb4, 0x0d, 0x1d, 0xff, 0x24, 0xc9, 0x63, 0xe2, 0x1a, 0xbb,
0xec, 0x1a, 0x7b, 0x16, 0x95, 0x2b, 0x2e, 0x0f, 0xd3, 0x93, 0x23, 0x3f, 0x76, 0x4c, 0x21, 0x17, 0xc6, 0x9e, 0x85, 0xc5, 0x8a, 0xca, 0xe3, 0xfc, 0xe4, 0x28, 0x4c, 0x5d, 0x93, 0xcb, 0xf9, 0x0a,
0x2b, 0xb2, 0x05, 0x76, 0x10, 0x4e, 0xfd, 0x33, 0xc7, 0x42, 0xb1, 0x58, 0x90, 0x2b, 0x60, 0x9d, 0x6d, 0x81, 0x13, 0xc5, 0x41, 0x78, 0xe6, 0x5a, 0x4c, 0xcc, 0x17, 0xe8, 0x0a, 0x58, 0xa7, 0x7e,
0x7a, 0x99, 0xd3, 0x42, 0x19, 0xff, 0x74, 0x7f, 0x32, 0x60, 0xbd, 0x6c, 0x2a, 0x21, 0x6f, 0x43, 0xe1, 0xda, 0x4c, 0x46, 0x3f, 0xbd, 0x9f, 0x0c, 0x58, 0xaf, 0x9b, 0xca, 0xd0, 0xdb, 0xd0, 0x49,
0x3b, 0xc6, 0x4f, 0xc7, 0xd8, 0xb5, 0xf6, 0x7a, 0xa3, 0xab, 0x43, 0xf4, 0x6a, 0x58, 0xd6, 0xa3, 0xd9, 0xa7, 0x6b, 0xec, 0x5a, 0x7b, 0xfd, 0xf1, 0xd5, 0x11, 0xf3, 0x6a, 0x54, 0xd7, 0xc3, 0x42,
0x52, 0x89, 0x38, 0xd0, 0x79, 0x96, 0x86, 0xd3, 0xaf, 0x82, 0x50, 0xfa, 0x90, 0x2f, 0xc9, 0x5b, 0x09, 0xb9, 0xd0, 0x7d, 0x96, 0xc7, 0xc1, 0x57, 0x51, 0x2c, 0x7c, 0x28, 0x97, 0xe8, 0x2d, 0x18,
0x30, 0x10, 0x6e, 0x3e, 0x0e, 0x7d, 0x1a, 0xa5, 0xe1, 0x54, 0x7a, 0x53, 0x91, 0x12, 0x02, 0x2d, 0x72, 0x37, 0x1f, 0xc7, 0x21, 0x4e, 0xf2, 0x38, 0x10, 0xde, 0x68, 0x52, 0x84, 0xc0, 0xf6, 0x83,
0x6f, 0x3a, 0x8d, 0xd1, 0xaf, 0x2e, 0xc5, 0x6f, 0xf7, 0x8f, 0x36, 0x74, 0x1e, 0x88, 0xd8, 0x90, 0x20, 0x65, 0x7e, 0xf5, 0x30, 0xfb, 0xf6, 0xfe, 0xe8, 0x40, 0xf7, 0x01, 0x8f, 0x0d, 0x7a, 0x03,
0x37, 0xa0, 0x2b, 0xc3, 0x74, 0x30, 0xc5, 0xf7, 0x77, 0xa9, 0x12, 0xf0, 0x10, 0x24, 0xcc, 0x63, 0x7a, 0x22, 0x4c, 0x07, 0x01, 0x7b, 0x7f, 0x0f, 0x4b, 0x01, 0x0d, 0x41, 0x46, 0x7c, 0x92, 0x67,
0x69, 0x82, 0xe6, 0x6d, 0x2a, 0x57, 0xc4, 0x85, 0xb5, 0x49, 0xec, 0x7b, 0xcc, 0x1f, 0xfb, 0xc1, 0xcc, 0xbc, 0x83, 0xc5, 0x0a, 0x79, 0xb0, 0x36, 0x4d, 0x43, 0x9f, 0x84, 0x93, 0x30, 0x7a, 0x7e,
0xf3, 0x63, 0x26, 0x6d, 0x97, 0x64, 0xdc, 0x32, 0x77, 0x56, 0x46, 0x04, 0xbf, 0xc9, 0x2e, 0xf4, 0x4c, 0x84, 0xed, 0x9a, 0x8c, 0x5a, 0xa6, 0xce, 0x8a, 0x88, 0xb0, 0x6f, 0xb4, 0x0b, 0xfd, 0x79,
0xe6, 0x69, 0xbc, 0x3f, 0x8b, 0x26, 0x2f, 0x1e, 0xa5, 0x27, 0x8e, 0x8d, 0x5b, 0xba, 0x88, 0xdf, 0x9e, 0xee, 0xcf, 0x92, 0xe9, 0x8b, 0x47, 0xf9, 0x89, 0xeb, 0xb0, 0x2d, 0x55, 0x44, 0x6f, 0x0e,
0x3c, 0x8d, 0xbd, 0xd3, 0x42, 0xa5, 0x2d, 0x6e, 0xd6, 0x65, 0xe4, 0x1d, 0xd8, 0x9c, 0x79, 0x09, 0x52, 0xff, 0xb4, 0x52, 0xe9, 0xf0, 0x9b, 0x55, 0x19, 0x7a, 0x07, 0x36, 0x67, 0x7e, 0x46, 0x0e,
0x3b, 0x8c, 0xbd, 0x30, 0x39, 0x8c, 0x9e, 0xa4, 0xf1, 0x53, 0xe6, 0x31, 0xdf, 0xe9, 0xa0, 0x6a, 0x53, 0x3f, 0xce, 0x0e, 0x93, 0x27, 0x79, 0xfa, 0x94, 0xf8, 0x24, 0x74, 0xbb, 0x4c, 0xb5, 0x69,
0xdd, 0x16, 0x19, 0xc1, 0x96, 0x26, 0xfe, 0x3c, 0xf6, 0x4e, 0xc5, 0x91, 0x55, 0x3c, 0x52, 0xbb, 0x0b, 0x8d, 0x61, 0x4b, 0x11, 0x7f, 0x9e, 0xfa, 0xa7, 0xfc, 0xc8, 0x2a, 0x3b, 0xd2, 0xb8, 0x47,
0xc7, 0xad, 0xb0, 0x88, 0x79, 0xb3, 0x3c, 0x35, 0xd3, 0xc3, 0x33, 0xee, 0x10, 0x08, 0x2b, 0x35, 0xad, 0x90, 0x84, 0xf8, 0xb3, 0x32, 0x35, 0xc1, 0xe1, 0x19, 0x75, 0x08, 0xb8, 0x95, 0x86, 0x2d,
0x5b, 0x64, 0x07, 0x40, 0x44, 0xe0, 0x0e, 0x8f, 0x78, 0x0f, 0x83, 0xa9, 0x49, 0x38, 0x70, 0x62, 0xb4, 0x03, 0xc0, 0x23, 0x70, 0x87, 0x46, 0xbc, 0xcf, 0x82, 0xa9, 0x48, 0x28, 0x70, 0x52, 0x96,
0x4c, 0xd5, 0x9a, 0x00, 0x0e, 0x2e, 0x78, 0x4c, 0x66, 0xe9, 0xe4, 0x45, 0xf6, 0x48, 0x60, 0xad, 0xaa, 0x35, 0x0e, 0x1c, 0xb6, 0xa0, 0x31, 0x99, 0xe5, 0xd3, 0x17, 0xc5, 0x23, 0x8e, 0xb5, 0x01,
0x2f, 0x62, 0xa2, 0x89, 0x54, 0xb4, 0x1f, 0x87, 0x0f, 0xbd, 0x20, 0x74, 0x06, 0x7a, 0xb4, 0x85, 0x8f, 0x89, 0x22, 0x92, 0xd1, 0x7e, 0x1c, 0x3f, 0xf4, 0xa3, 0xd8, 0x1d, 0xaa, 0xd1, 0xe6, 0x32,
0x8c, 0xdc, 0x86, 0xff, 0xd5, 0x3c, 0x5c, 0x1e, 0x58, 0xc7, 0x03, 0xcb, 0x15, 0xc8, 0xa7, 0x70, 0x74, 0x1b, 0xfe, 0xd7, 0xf0, 0x70, 0x71, 0x60, 0x9d, 0x1d, 0x58, 0xae, 0x80, 0x3e, 0x85, 0xeb,
0xbd, 0x2e, 0x06, 0xf2, 0xf8, 0x15, 0x3c, 0x7e, 0x8e, 0x06, 0xb9, 0x0d, 0x83, 0x93, 0x20, 0x49, 0x4d, 0x31, 0x10, 0xc7, 0xaf, 0xb0, 0xe3, 0xe7, 0x68, 0xa0, 0xdb, 0x30, 0x3c, 0x89, 0xb2, 0x2c,
0x82, 0xf0, 0xb9, 0x04, 0xba, 0xb3, 0x81, 0xf0, 0xde, 0x92, 0xf0, 0x7e, 0xa8, 0x6f, 0xd2, 0x8a, 0x8a, 0x9f, 0x0b, 0xa0, 0xbb, 0x1b, 0x0c, 0xde, 0x5b, 0x02, 0xde, 0x0f, 0xd5, 0x4d, 0xac, 0xe9,
0x2e, 0x79, 0x13, 0xfa, 0xd1, 0x9c, 0xfa, 0xa7, 0x5e, 0x3c, 0xa5, 0x1e, 0x0b, 0x22, 0x87, 0xa0, 0xa2, 0x37, 0x61, 0x90, 0xcc, 0x71, 0x78, 0xea, 0xa7, 0x01, 0xf6, 0x49, 0x94, 0xb8, 0x88, 0x19,
0xc1, 0xb2, 0x90, 0x23, 0x7e, 0xea, 0xbf, 0xd4, 0xd5, 0x36, 0x05, 0xe2, 0xcb, 0x52, 0xf2, 0x21, 0xac, 0x0b, 0x29, 0xe2, 0x83, 0xf0, 0xa5, 0xaa, 0xb6, 0xc9, 0x11, 0x5f, 0x97, 0xa2, 0x0f, 0x01,
0xc0, 0x3c, 0x8d, 0x73, 0x3f, 0xb6, 0xd0, 0x8f, 0xed, 0xda, 0x32, 0x4b, 0xa8, 0xa6, 0xc9, 0xa3, 0xe6, 0x79, 0x5a, 0xfa, 0xb1, 0xc5, 0xfc, 0xd8, 0x6e, 0x2c, 0xb3, 0x0c, 0x2b, 0x9a, 0x34, 0xca,
0x8c, 0x49, 0xe5, 0xa9, 0xe2, 0x89, 0xbe, 0x2a, 0xa2, 0xac, 0xcb, 0x78, 0xb5, 0x1c, 0xa5, 0xd9, 0x2c, 0xa9, 0x34, 0x55, 0x34, 0xd1, 0x57, 0x79, 0x94, 0x55, 0x19, 0xad, 0x96, 0xa3, 0xbc, 0xb8,
0x1d, 0xd1, 0x2d, 0xb6, 0x51, 0x41, 0x09, 0xdc, 0x1b, 0xd0, 0x2f, 0x3d, 0x94, 0x27, 0x9c, 0x05, 0xc3, 0xbb, 0xc5, 0x36, 0x53, 0x90, 0x02, 0xef, 0x06, 0x0c, 0x6a, 0x0f, 0xa5, 0x09, 0x27, 0xd1,
0x27, 0x7e, 0x82, 0xc5, 0x6e, 0x53, 0xb1, 0x70, 0xff, 0x34, 0xa0, 0x2f, 0xcb, 0xef, 0xce, 0x84, 0x49, 0x98, 0xb1, 0x62, 0x77, 0x30, 0x5f, 0x78, 0x7f, 0x1a, 0x30, 0x10, 0xe5, 0x77, 0x67, 0x4a,
0x05, 0x51, 0x48, 0x86, 0xd0, 0x16, 0xc9, 0xc4, 0x0a, 0x54, 0x61, 0x93, 0x5a, 0x77, 0x45, 0x59, 0xa2, 0x24, 0x46, 0x23, 0xe8, 0xf0, 0x64, 0xb2, 0x0a, 0x94, 0x61, 0x13, 0x5a, 0x77, 0x79, 0x59,
0xad, 0x50, 0xa9, 0x45, 0x6e, 0x80, 0x75, 0x94, 0x66, 0x58, 0x93, 0xbd, 0xd1, 0x46, 0x59, 0x79, 0xad, 0x60, 0xa1, 0x85, 0x6e, 0x80, 0x75, 0x94, 0x17, 0xac, 0x26, 0xfb, 0xe3, 0x8d, 0xba, 0xf2,
0x3f, 0xcd, 0xc6, 0x2b, 0x94, 0xef, 0x93, 0x3d, 0x68, 0xf1, 0xba, 0xc1, 0xea, 0xec, 0x8d, 0x48, 0x7e, 0x5e, 0x4c, 0x56, 0x30, 0xdd, 0x47, 0x7b, 0x60, 0xd3, 0xba, 0x61, 0xd5, 0xd9, 0x1f, 0xa3,
0x59, 0x8f, 0xa7, 0x70, 0xbc, 0x42, 0x51, 0x83, 0xdc, 0x04, 0x7b, 0x32, 0x8b, 0x12, 0x1f, 0x8b, 0xba, 0x1e, 0x4d, 0xe1, 0x64, 0x05, 0x33, 0x0d, 0x74, 0x13, 0x9c, 0xe9, 0x2c, 0xc9, 0x42, 0x56,
0xb5, 0x37, 0xda, 0xac, 0xd8, 0xe7, 0x5b, 0xe3, 0x15, 0x2a, 0x74, 0xc8, 0x00, 0x4c, 0x96, 0x61, 0xac, 0xfd, 0xf1, 0xa6, 0x66, 0x9f, 0x6e, 0x4d, 0x56, 0x30, 0xd7, 0x41, 0x43, 0x30, 0x49, 0xc1,
0x1d, 0xd8, 0xd4, 0x64, 0xd9, 0x7e, 0x07, 0xec, 0x97, 0xde, 0x2c, 0xf5, 0xdd, 0x9f, 0xd5, 0xc3, 0xea, 0xc0, 0xc1, 0x26, 0x29, 0xf6, 0xbb, 0xe0, 0xbc, 0xf4, 0x67, 0x79, 0xe8, 0xfd, 0x2c, 0x1f,
0x84, 0xcb, 0xd5, 0x7a, 0x37, 0x9a, 0xeb, 0xdd, 0xac, 0xa9, 0xf7, 0x05, 0x7c, 0x58, 0x17, 0xc3, 0xc6, 0x5d, 0xd6, 0xeb, 0xdd, 0x68, 0xaf, 0x77, 0xb3, 0xa1, 0xde, 0x17, 0xf0, 0x61, 0x5d, 0x0c,
0x47, 0xab, 0x0e, 0x1f, 0xee, 0x0c, 0x40, 0x85, 0xaa, 0xb9, 0xff, 0xc9, 0xd1, 0x60, 0x2e, 0x19, 0x1f, 0x76, 0x13, 0x3e, 0xbc, 0x19, 0x80, 0x0c, 0x55, 0x7b, 0xff, 0x13, 0xa3, 0xc1, 0x5c, 0x32,
0x0d, 0x56, 0x69, 0x34, 0x2c, 0x0e, 0x81, 0x9b, 0xd0, 0xd3, 0x02, 0x7e, 0xbe, 0x39, 0xf7, 0x16, 0x1a, 0xac, 0xda, 0x68, 0x58, 0x1c, 0x02, 0x37, 0xa1, 0xaf, 0x04, 0xfc, 0x7c, 0x73, 0xde, 0x2d,
0xac, 0xe9, 0x21, 0x6f, 0xd0, 0xfe, 0xbd, 0x05, 0x03, 0xea, 0x4f, 0xfc, 0x60, 0xce, 0x5e, 0xad, 0x58, 0x53, 0x43, 0xde, 0xa2, 0xfd, 0xbb, 0x0d, 0x43, 0x1c, 0x4e, 0xc3, 0x68, 0x4e, 0x5e, 0xad,
0x9b, 0xef, 0x00, 0xcc, 0x63, 0xff, 0xe5, 0x53, 0xb1, 0x67, 0xe1, 0x9e, 0x26, 0xa9, 0x9b, 0x21, 0x9b, 0xef, 0x00, 0xcc, 0xd3, 0xf0, 0xe5, 0x53, 0xbe, 0x67, 0xb1, 0x3d, 0x45, 0xd2, 0x34, 0x43,
0xaa, 0x97, 0xd9, 0x7a, 0x2f, 0x53, 0x71, 0x69, 0x97, 0xe2, 0xa2, 0xe2, 0xd8, 0x29, 0xc5, 0xb1, 0x64, 0x2f, 0x73, 0xd4, 0x5e, 0x26, 0xe3, 0xd2, 0xa9, 0xc5, 0x45, 0xc6, 0xb1, 0x5b, 0x8b, 0xa3,
0xd2, 0xfb, 0x56, 0x17, 0x7b, 0x1f, 0x81, 0x16, 0xaf, 0x1a, 0xa7, 0x2b, 0xa6, 0x08, 0xff, 0xe6, 0xd6, 0xfb, 0x56, 0x17, 0x7b, 0x1f, 0x02, 0x9b, 0x56, 0x8d, 0xdb, 0xe3, 0x53, 0x84, 0x7e, 0xd3,
0xb7, 0xb1, 0xb3, 0xb1, 0x97, 0x1c, 0x23, 0x08, 0xbb, 0x54, 0xae, 0xc8, 0x27, 0x00, 0xe9, 0x7c, 0xdb, 0xc8, 0xd9, 0xc4, 0xcf, 0x8e, 0x19, 0x08, 0x7b, 0x58, 0xac, 0xd0, 0x27, 0x00, 0xf9, 0x3c,
0xea, 0x31, 0xff, 0x20, 0x7c, 0x16, 0x61, 0xff, 0xed, 0x8d, 0xfe, 0x5f, 0x86, 0xf2, 0x97, 0xb8, 0xf0, 0x49, 0x78, 0x10, 0x3f, 0x4b, 0x58, 0xff, 0xed, 0x8f, 0xff, 0x5f, 0x87, 0xf2, 0x97, 0x6c,
0xbf, 0x9f, 0x66, 0x5c, 0x85, 0x6a, 0xea, 0x79, 0xea, 0xd6, 0x8a, 0xd4, 0xa9, 0x39, 0xdf, 0xd7, 0x7f, 0x3f, 0x2f, 0xa8, 0x0a, 0x56, 0xd4, 0xcb, 0xd4, 0xad, 0x55, 0xa9, 0x93, 0x73, 0x7e, 0xa0,
0xe7, 0x7c, 0xb5, 0x4d, 0x0c, 0x9a, 0xda, 0xc4, 0x7a, 0xa5, 0x4d, 0x90, 0x0f, 0xa0, 0xfb, 0xdc, 0xce, 0x79, 0xbd, 0x4d, 0x0c, 0xdb, 0xda, 0xc4, 0xba, 0xd6, 0x26, 0xd0, 0x07, 0xd0, 0x7b, 0xee,
0x0b, 0x42, 0x6e, 0x35, 0xc1, 0xde, 0xda, 0x1b, 0x5d, 0x2b, 0x7b, 0xf9, 0x45, 0xbe, 0x4d, 0x95, 0x47, 0x31, 0xb5, 0x9a, 0xb1, 0xde, 0xda, 0x1f, 0x5f, 0xab, 0x7b, 0xf9, 0x45, 0xb9, 0x8d, 0xa5,
0x26, 0x37, 0x8c, 0x81, 0xc9, 0x0d, 0x6f, 0x08, 0xc3, 0xba, 0x8c, 0x1b, 0x46, 0x47, 0xee, 0xf3, 0x26, 0x35, 0xcc, 0x02, 0x53, 0x1a, 0xde, 0xe0, 0x86, 0x55, 0x19, 0x35, 0xcc, 0x1c, 0xb9, 0x4f,
0xcc, 0x88, 0x2e, 0xaa, 0x04, 0x3c, 0x6e, 0xcf, 0xbc, 0x09, 0x8b, 0x62, 0xec, 0x9c, 0x26, 0x95, 0x33, 0xc3, 0xbb, 0xa8, 0x14, 0xd0, 0xb8, 0x3d, 0xf3, 0xa7, 0x24, 0x49, 0x45, 0xe7, 0x14, 0x2b,
0x2b, 0x77, 0xc8, 0x71, 0xf4, 0xad, 0xb4, 0x8d, 0xc1, 0x38, 0x1f, 0x78, 0x5f, 0xc3, 0x86, 0xd2, 0x6f, 0x44, 0x71, 0xf4, 0xad, 0xb0, 0xcd, 0x82, 0x71, 0x3e, 0xf0, 0xbe, 0x86, 0x0d, 0xa9, 0x2f,
0x97, 0xb1, 0x6c, 0x80, 0x5e, 0x0e, 0x21, 0xb3, 0x0e, 0x42, 0x96, 0x06, 0x21, 0xf7, 0x17, 0x03, 0x62, 0xd9, 0x02, 0xbd, 0x12, 0x42, 0x66, 0x13, 0x84, 0x2c, 0x05, 0x42, 0xde, 0x2f, 0x06, 0x6c,
0xb6, 0x4a, 0xb7, 0x8f, 0x83, 0x84, 0x45, 0x8d, 0xd8, 0xbe, 0xb0, 0x01, 0x2e, 0x9d, 0x60, 0x62, 0xd5, 0x6e, 0x9f, 0x44, 0x19, 0x49, 0x5a, 0xb1, 0x7d, 0x61, 0x03, 0x54, 0x3a, 0x65, 0x89, 0xb1,
0x5a, 0x08, 0x74, 0xb1, 0xe0, 0xb7, 0x4f, 0x83, 0xd8, 0xc7, 0x7e, 0x8c, 0x98, 0xb6, 0xa9, 0x12, 0x19, 0xd0, 0xf9, 0x82, 0xde, 0x1e, 0x44, 0x69, 0xc8, 0xfa, 0x31, 0xc3, 0xb4, 0x83, 0xa5, 0x40,
0x28, 0x28, 0xb4, 0x35, 0x28, 0xb8, 0x07, 0xb0, 0xa9, 0x3c, 0x7d, 0xc0, 0xf3, 0x70, 0x81, 0x48, 0x42, 0xa1, 0xa3, 0x40, 0xc1, 0x3b, 0x80, 0x4d, 0xe9, 0xe9, 0x03, 0x9a, 0x87, 0x0b, 0x44, 0xa2,
0x14, 0x4e, 0x99, 0xbb, 0x96, 0x7a, 0xf5, 0xf7, 0x06, 0x6c, 0x57, 0xee, 0xba, 0xd8, 0xbb, 0xb5, 0x72, 0xca, 0xdc, 0xb5, 0xe4, 0xab, 0xbf, 0x37, 0x60, 0x5b, 0xbb, 0xeb, 0x62, 0xef, 0x56, 0xae,
0xeb, 0xea, 0xde, 0x68, 0x2d, 0x7d, 0x63, 0xab, 0xf2, 0x46, 0xf7, 0x6f, 0x74, 0x61, 0x3e, 0xcb, 0x6b, 0x7a, 0xa3, 0xb5, 0xf4, 0x8d, 0xb6, 0xf6, 0x46, 0xef, 0x6f, 0xe6, 0xc2, 0x7c, 0x56, 0x08,
0xa4, 0x13, 0x8f, 0xa2, 0xf8, 0xc4, 0x9b, 0xe1, 0x8b, 0xaa, 0x74, 0xcf, 0xa8, 0xa1, 0x7b, 0x95, 0x27, 0x1e, 0x25, 0xe9, 0x89, 0x3f, 0x63, 0x2f, 0xd2, 0xe9, 0x9e, 0xd1, 0x40, 0xf7, 0xb4, 0x56,
0x56, 0x6f, 0x36, 0xb7, 0x7a, 0xab, 0xa6, 0xd5, 0x97, 0x29, 0x54, 0x6b, 0x81, 0x42, 0x2d, 0x8c, 0x6f, 0xb6, 0xb7, 0x7a, 0xab, 0xa1, 0xd5, 0xd7, 0x29, 0x94, 0xbd, 0x40, 0xa1, 0x16, 0x46, 0x81,
0x02, 0xfb, 0x62, 0xa3, 0xa0, 0x5d, 0x3b, 0x0a, 0xfe, 0x6a, 0xc1, 0x35, 0xfd, 0xc9, 0x77, 0xd3, 0x73, 0xb1, 0x51, 0xd0, 0x69, 0x1c, 0x05, 0x7f, 0xd9, 0x70, 0x4d, 0x7d, 0xf2, 0xdd, 0x3c, 0x4d,
0x38, 0xf6, 0x43, 0x86, 0x6f, 0x56, 0xcd, 0xd2, 0x28, 0x35, 0xcb, 0x9c, 0xd6, 0x9a, 0x1a, 0xad, 0xc3, 0x98, 0xb0, 0x37, 0xcb, 0x66, 0x69, 0xd4, 0x9a, 0x65, 0x49, 0x6b, 0x4d, 0x85, 0xd6, 0x2e,
0x5d, 0x42, 0x48, 0xad, 0xcb, 0x13, 0xd2, 0xd6, 0xe5, 0x09, 0xa9, 0xbd, 0x9c, 0x90, 0x16, 0xe0, 0x21, 0xa4, 0xd6, 0xe5, 0x09, 0xa9, 0x7d, 0x79, 0x42, 0xea, 0x2c, 0x27, 0xa4, 0x15, 0x38, 0x3a,
0x68, 0x9f, 0x43, 0x38, 0x3b, 0x8b, 0x4d, 0xf7, 0x5c, 0x32, 0xb9, 0xfa, 0x6a, 0x64, 0xb2, 0xdb, 0xe7, 0x10, 0xce, 0xee, 0x62, 0xd3, 0x3d, 0x97, 0x4c, 0xae, 0xbe, 0x1a, 0x99, 0xec, 0xb5, 0x92,
0x48, 0x26, 0x2b, 0x48, 0x82, 0x66, 0x24, 0xf5, 0x6a, 0x90, 0xb4, 0x48, 0x49, 0xd7, 0x2e, 0x41, 0x49, 0x0d, 0x49, 0xd0, 0x8e, 0xa4, 0x7e, 0x03, 0x92, 0x16, 0x29, 0xe9, 0xda, 0x25, 0x28, 0xa9,
0x49, 0xab, 0x5d, 0xbe, 0xdf, 0xd4, 0xe5, 0x07, 0x55, 0x32, 0xb8, 0x0f, 0x3b, 0x3a, 0xb4, 0x64, 0xde, 0xe5, 0x07, 0x6d, 0x5d, 0x7e, 0xa8, 0x93, 0xc1, 0x7d, 0xd8, 0x51, 0xa1, 0x25, 0xaa, 0xf9,
0x35, 0x3f, 0xd0, 0xa2, 0x5c, 0xc9, 0x83, 0x81, 0xfd, 0x40, 0x17, 0xb9, 0x07, 0xbc, 0x15, 0xaa, 0x81, 0x12, 0x65, 0x2d, 0x0f, 0x06, 0xeb, 0x07, 0xaa, 0xc8, 0x3b, 0xa0, 0xad, 0x50, 0xde, 0xf1,
0x3b, 0x9e, 0x1e, 0x47, 0xa7, 0x88, 0xcd, 0x77, 0xa1, 0x13, 0xcb, 0x47, 0x89, 0x9f, 0x91, 0xd7, 0xf4, 0x38, 0x39, 0x65, 0xd8, 0x7c, 0x17, 0xba, 0xa9, 0x78, 0x14, 0xff, 0x19, 0x79, 0x6d, 0x81,
0x16, 0x38, 0xa0, 0x7c, 0x57, 0xae, 0xe7, 0xde, 0x83, 0xcd, 0xbc, 0xae, 0xf1, 0x6e, 0xf5, 0xdb, 0x03, 0x8a, 0x77, 0x95, 0x7a, 0xde, 0x3d, 0xd8, 0x2c, 0xeb, 0x9a, 0xdd, 0x2d, 0x7f, 0xfb, 0xc6,
0x37, 0xcc, 0xcd, 0xd7, 0x0f, 0xec, 0x12, 0xf1, 0x71, 0x7f, 0x33, 0xe0, 0x4a, 0xd5, 0xc8, 0x65, 0xa5, 0xf9, 0xe6, 0x81, 0x5d, 0x23, 0x3e, 0xde, 0x6f, 0x06, 0x5c, 0xd1, 0x8d, 0x5c, 0xf6, 0x92,
0x2f, 0x59, 0xd2, 0x97, 0xf9, 0xa4, 0xcf, 0xe6, 0x79, 0x09, 0xe0, 0x77, 0x3e, 0x94, 0xed, 0x9a, 0x25, 0x7d, 0x99, 0x4e, 0xfa, 0x62, 0x5e, 0x96, 0x00, 0xfb, 0x2e, 0x87, 0xb2, 0xd3, 0x30, 0x94,
0xa1, 0xac, 0x77, 0xe2, 0x82, 0x25, 0x74, 0x6a, 0x59, 0xc2, 0xaa, 0xce, 0x12, 0xdc, 0xfb, 0xb0, 0xd5, 0x4e, 0x5c, 0xb1, 0x84, 0x6e, 0x23, 0x4b, 0x58, 0x55, 0x59, 0x82, 0x77, 0x1f, 0x36, 0xf4,
0x51, 0x7d, 0x41, 0xf2, 0x6f, 0x22, 0xfa, 0x83, 0x59, 0x5c, 0xc4, 0x11, 0xdc, 0x10, 0x8b, 0xfa, 0x17, 0x64, 0xff, 0x26, 0xa2, 0x3f, 0x98, 0xd5, 0x45, 0x14, 0xc1, 0x2d, 0xb1, 0x68, 0xee, 0xd3,
0x3e, 0x9d, 0xfb, 0x6d, 0xd5, 0xfa, 0xdd, 0x2a, 0xb1, 0x9b, 0x2a, 0x24, 0xed, 0x26, 0x48, 0xb6, 0xa5, 0xdf, 0x56, 0xa3, 0xdf, 0x76, 0x8d, 0xdd, 0xe8, 0x90, 0x74, 0xda, 0x20, 0xd9, 0xd1, 0x89,
0xab, 0xc4, 0xa3, 0xca, 0x20, 0x3a, 0x4d, 0x0c, 0x62, 0x75, 0x39, 0x83, 0xe8, 0x96, 0x18, 0xc4, 0x87, 0xce, 0x20, 0xba, 0x6d, 0x0c, 0x62, 0x75, 0x39, 0x83, 0xe8, 0xd5, 0x18, 0xc4, 0x04, 0xd0,
0x18, 0xc8, 0x42, 0x28, 0x12, 0x32, 0xaa, 0x06, 0xd5, 0x59, 0xfc, 0x09, 0x52, 0x8d, 0xea, 0xed, 0x42, 0x28, 0x32, 0x34, 0xd6, 0x83, 0xea, 0x2e, 0xfe, 0x04, 0xd1, 0xa3, 0x7a, 0xbb, 0xc2, 0x17,
0x02, 0x5f, 0x82, 0xaa, 0x51, 0x7f, 0xa2, 0x72, 0x6e, 0x54, 0x73, 0xce, 0xf1, 0x62, 0x2a, 0xbc, 0xa7, 0x6a, 0x38, 0x9c, 0xca, 0x9c, 0x1b, 0x7a, 0xce, 0x29, 0x5e, 0x4c, 0x89, 0x17, 0x25, 0xb7,
0x68, 0xb9, 0x2d, 0x4e, 0x37, 0xe7, 0xb6, 0x50, 0x55, 0x5e, 0xfc, 0x6a, 0xc0, 0x56, 0x1d, 0x63, 0xd5, 0xe9, 0xf6, 0xdc, 0x56, 0xaa, 0xd2, 0x8b, 0x5f, 0x0d, 0xd8, 0x6a, 0x62, 0x8c, 0x68, 0x1f,
0x24, 0xfb, 0xd0, 0x39, 0x12, 0x9f, 0xf2, 0xae, 0xbd, 0x73, 0xf8, 0xe5, 0x50, 0xfe, 0xbd, 0x17, 0xba, 0x47, 0xfc, 0x53, 0xdc, 0xb5, 0x77, 0x0e, 0xbf, 0x1c, 0x89, 0xbf, 0xf7, 0x62, 0x92, 0x16,
0xb2, 0x38, 0xa3, 0xf9, 0xc1, 0xeb, 0x87, 0xb0, 0xa6, 0x6f, 0x70, 0x90, 0xbf, 0xf0, 0x33, 0x39, 0xb8, 0x3c, 0x78, 0xfd, 0x10, 0xd6, 0xd4, 0x0d, 0x0a, 0xf2, 0x17, 0x61, 0x21, 0x46, 0x3b, 0xfd,
0xda, 0xf9, 0x27, 0x19, 0xca, 0x5f, 0x54, 0xf2, 0x17, 0x9e, 0xb3, 0xc4, 0xdf, 0x84, 0x0a, 0xb5, 0x44, 0x23, 0xf1, 0x8b, 0x4a, 0xfc, 0xc2, 0x73, 0x97, 0xf8, 0x9b, 0x61, 0xae, 0xf6, 0xb1, 0xf9,
0x8f, 0xcd, 0x8f, 0x0c, 0xf7, 0x7d, 0x70, 0xf4, 0x5e, 0x91, 0x4f, 0x02, 0x9c, 0x9a, 0x0e, 0x74, 0x91, 0xe1, 0xbd, 0x0f, 0xae, 0xda, 0x2b, 0xca, 0x49, 0xc0, 0xa6, 0xa6, 0x0b, 0x5d, 0x4a, 0x88,
0x38, 0x21, 0xf2, 0x13, 0x11, 0x81, 0x2e, 0xcd, 0x97, 0xee, 0x67, 0x45, 0xb8, 0x0b, 0xce, 0x49, 0xc2, 0x8c, 0x47, 0xa0, 0x87, 0xcb, 0xa5, 0xf7, 0x59, 0x15, 0xee, 0x8a, 0x73, 0xa2, 0x5b, 0xe0,
0x6e, 0x81, 0xcd, 0x59, 0x67, 0x1e, 0xad, 0xed, 0x7a, 0x6e, 0x4a, 0x85, 0x92, 0x3b, 0x81, 0xf5, 0x50, 0xd6, 0x59, 0x46, 0x6b, 0xbb, 0x99, 0x9b, 0x62, 0xae, 0xe4, 0x4d, 0x61, 0x5d, 0xdb, 0xa9,
0xca, 0x4e, 0xc1, 0xc5, 0x0c, 0x8d, 0x8b, 0x95, 0x90, 0x69, 0x56, 0x91, 0xb9, 0x03, 0xc0, 0x07, 0xb8, 0x98, 0xa1, 0x70, 0xb1, 0x1a, 0x32, 0x4d, 0x1d, 0x99, 0x3b, 0x00, 0x74, 0x90, 0x8a, 0x6d,
0xa9, 0xdc, 0xb6, 0x10, 0x5b, 0x9a, 0xc4, 0xfd, 0xae, 0xc8, 0x2b, 0x37, 0x22, 0x4b, 0xed, 0xb5, 0x5e, 0x0d, 0x8a, 0xc4, 0xfb, 0xae, 0xca, 0x2b, 0x35, 0x22, 0x4a, 0xed, 0xb5, 0x9b, 0x91, 0x45,
0x9b, 0x51, 0x45, 0xda, 0xd2, 0x19, 0xa9, 0x02, 0xb7, 0x32, 0xde, 0x0c, 0x6e, 0xa5, 0xab, 0x60, 0x6a, 0xab, 0x8c, 0x54, 0x82, 0x5b, 0x1a, 0x6f, 0x07, 0xb7, 0xd4, 0x95, 0xb0, 0xfa, 0xd1, 0x80,
0xf5, 0xa3, 0x01, 0x57, 0x15, 0xcb, 0xe3, 0x1a, 0xff, 0x01, 0x72, 0xeb, 0x7e, 0x03, 0xa4, 0xec, 0xab, 0x92, 0xe5, 0x51, 0x8d, 0xff, 0x00, 0xb9, 0xf5, 0xbe, 0x01, 0x54, 0x77, 0xea, 0x75, 0xf2,
0xd4, 0xeb, 0xe4, 0xf3, 0x47, 0x6d, 0xfc, 0xef, 0xeb, 0x7b, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0xf9, 0xa3, 0x0e, 0xfb, 0xef, 0xeb, 0x7b, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x8d, 0x47, 0x0e,
0xee, 0xc1, 0x98, 0xcd, 0x8e, 0x15, 0x00, 0x00, 0xbc, 0x8e, 0x15, 0x00, 0x00,
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment