Commit 8d191ffa authored by vipwzw's avatar vipwzw

auto ci

parent 5c40e411
......@@ -78,14 +78,14 @@ func (t *tokenDB) mint(db dbm.KV, addr string, amount int64) ([]*types.KeyValue,
if t.token.Owner != addr {
return nil, nil, types.ErrNotAllow
}
if t.token.Total + amount > types.MaxTokenBalance {
if t.token.Total+amount > types.MaxTokenBalance {
return nil, nil, types.ErrAmount
}
prevToken := t.token
t.token.Total += amount
kvs := append(t.getKVSet(calcTokenKey(t.token.Symbol)), t.getKVSet(calcTokenAddrNewKeyS(t.token.Symbol, t.token.Owner))...)
logs := []*types.ReceiptLog{{Ty:pty.TyLogTokenMint, Log: types.Encode(&pty.ReceiptTokenAmount{Prev: &prevToken, Cur: &t.token})}}
logs := []*types.ReceiptLog{{Ty: pty.TyLogTokenMint, Log: types.Encode(&pty.ReceiptTokenAmount{Prev: &prevToken, Cur: &t.token})}}
return kvs, logs, nil
}
......@@ -516,7 +516,7 @@ func (action *tokenAction) mint(mint *pty.TokenMint) (*types.Receipt, error) {
return nil, err
}
if tokendb.token.Category & pty.CategoryMintSupport == 0 {
if tokendb.token.Category&pty.CategoryMintSupport == 0 {
return nil, types.ErrNotSupport
}
......@@ -531,7 +531,7 @@ func (action *tokenAction) mint(mint *pty.TokenMint) (*types.Receipt, error) {
return nil, err
}
tokenlog.Debug("mint", "token.Owner", mint.Symbol, "token.GetTotal()", mint.Amount)
receipt, err := tokenAccount.GenesisInit(mint.Symbol, mint.Amount) // TODO 更新 chain33 支持 account mint
receipt, err := tokenAccount.GenesisInit(mint.Symbol, mint.Amount) // TODO 更新 chain33 支持 account mint
if err != nil {
return nil, err
}
......@@ -541,4 +541,3 @@ func (action *tokenAction) mint(mint *pty.TokenMint) (*types.Receipt, error) {
return &types.Receipt{Ty: types.ExecOk, KV: kvs, Logs: logs}, nil
}
......@@ -34,6 +34,7 @@ type TokenAction struct {
// *TokenAction_Withdraw
// *TokenAction_Genesis
// *TokenAction_TransferToExec
// *TokenAction_TokenMint
Value isTokenAction_Value `protobuf_oneof:"value"`
Ty int32 `protobuf:"varint,7,opt,name=Ty,proto3" json:"Ty,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
......@@ -98,6 +99,10 @@ type TokenAction_TransferToExec struct {
TransferToExec *types.AssetsTransferToExec `protobuf:"bytes,8,opt,name=transferToExec,proto3,oneof"`
}
type TokenAction_TokenMint struct {
TokenMint *TokenMint `protobuf:"bytes,9,opt,name=tokenMint,proto3,oneof"`
}
func (*TokenAction_TokenPreCreate) isTokenAction_Value() {}
func (*TokenAction_TokenFinishCreate) isTokenAction_Value() {}
......@@ -112,6 +117,8 @@ func (*TokenAction_Genesis) isTokenAction_Value() {}
func (*TokenAction_TransferToExec) isTokenAction_Value() {}
func (*TokenAction_TokenMint) isTokenAction_Value() {}
func (m *TokenAction) GetValue() isTokenAction_Value {
if m != nil {
return m.Value
......@@ -168,6 +175,13 @@ func (m *TokenAction) GetTransferToExec() *types.AssetsTransferToExec {
return nil
}
func (m *TokenAction) GetTokenMint() *TokenMint {
if x, ok := m.GetValue().(*TokenAction_TokenMint); ok {
return x.TokenMint
}
return nil
}
func (m *TokenAction) GetTy() int32 {
if m != nil {
return m.Ty
......@@ -185,6 +199,7 @@ func (*TokenAction) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) e
(*TokenAction_Withdraw)(nil),
(*TokenAction_Genesis)(nil),
(*TokenAction_TransferToExec)(nil),
(*TokenAction_TokenMint)(nil),
}
}
......@@ -227,6 +242,11 @@ func _TokenAction_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
if err := b.EncodeMessage(x.TransferToExec); err != nil {
return err
}
case *TokenAction_TokenMint:
b.EncodeVarint(9<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.TokenMint); err != nil {
return err
}
case nil:
default:
return fmt.Errorf("TokenAction.Value has unexpected type %T", x)
......@@ -293,6 +313,14 @@ func _TokenAction_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Bu
err := b.DecodeMessage(msg)
m.Value = &TokenAction_TransferToExec{msg}
return true, err
case 9: // value.tokenMint
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(TokenMint)
err := b.DecodeMessage(msg)
m.Value = &TokenAction_TokenMint{msg}
return true, err
default:
return false, nil
}
......@@ -337,6 +365,11 @@ func _TokenAction_OneofSizer(msg proto.Message) (n int) {
n += 1 // tag and wire
n += proto.SizeVarint(uint64(s))
n += s
case *TokenAction_TokenMint:
s := proto.Size(x.TokenMint)
n += 1 // tag and wire
n += proto.SizeVarint(uint64(s))
n += s
case nil:
default:
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
......@@ -526,6 +559,53 @@ func (m *TokenRevokeCreate) GetOwner() string {
return ""
}
type TokenMint struct {
Symbol string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
Amount int64 `protobuf:"varint,2,opt,name=amount,proto3" json:"amount,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *TokenMint) Reset() { *m = TokenMint{} }
func (m *TokenMint) String() string { return proto.CompactTextString(m) }
func (*TokenMint) ProtoMessage() {}
func (*TokenMint) Descriptor() ([]byte, []int) {
return fileDescriptor_3aff0bcd502840ab, []int{4}
}
func (m *TokenMint) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TokenMint.Unmarshal(m, b)
}
func (m *TokenMint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_TokenMint.Marshal(b, m, deterministic)
}
func (m *TokenMint) XXX_Merge(src proto.Message) {
xxx_messageInfo_TokenMint.Merge(m, src)
}
func (m *TokenMint) XXX_Size() int {
return xxx_messageInfo_TokenMint.Size(m)
}
func (m *TokenMint) XXX_DiscardUnknown() {
xxx_messageInfo_TokenMint.DiscardUnknown(m)
}
var xxx_messageInfo_TokenMint proto.InternalMessageInfo
func (m *TokenMint) GetSymbol() string {
if m != nil {
return m.Symbol
}
return ""
}
func (m *TokenMint) GetAmount() int64 {
if m != nil {
return m.Amount
}
return 0
}
// state db
type Token struct {
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
......@@ -546,7 +626,7 @@ func (m *Token) Reset() { *m = Token{} }
func (m *Token) String() string { return proto.CompactTextString(m) }
func (*Token) ProtoMessage() {}
func (*Token) Descriptor() ([]byte, []int) {
return fileDescriptor_3aff0bcd502840ab, []int{4}
return fileDescriptor_3aff0bcd502840ab, []int{5}
}
func (m *Token) XXX_Unmarshal(b []byte) error {
......@@ -644,7 +724,7 @@ func (m *ReceiptToken) Reset() { *m = ReceiptToken{} }
func (m *ReceiptToken) String() string { return proto.CompactTextString(m) }
func (*ReceiptToken) ProtoMessage() {}
func (*ReceiptToken) Descriptor() ([]byte, []int) {
return fileDescriptor_3aff0bcd502840ab, []int{5}
return fileDescriptor_3aff0bcd502840ab, []int{6}
}
func (m *ReceiptToken) XXX_Unmarshal(b []byte) error {
......@@ -686,6 +766,53 @@ func (m *ReceiptToken) GetStatus() int32 {
return 0
}
type ReceiptTokenAmount struct {
Prev *Token `protobuf:"bytes,1,opt,name=prev,proto3" json:"prev,omitempty"`
Cur *Token `protobuf:"bytes,2,opt,name=cur,proto3" json:"cur,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ReceiptTokenAmount) Reset() { *m = ReceiptTokenAmount{} }
func (m *ReceiptTokenAmount) String() string { return proto.CompactTextString(m) }
func (*ReceiptTokenAmount) ProtoMessage() {}
func (*ReceiptTokenAmount) Descriptor() ([]byte, []int) {
return fileDescriptor_3aff0bcd502840ab, []int{7}
}
func (m *ReceiptTokenAmount) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReceiptTokenAmount.Unmarshal(m, b)
}
func (m *ReceiptTokenAmount) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ReceiptTokenAmount.Marshal(b, m, deterministic)
}
func (m *ReceiptTokenAmount) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReceiptTokenAmount.Merge(m, src)
}
func (m *ReceiptTokenAmount) XXX_Size() int {
return xxx_messageInfo_ReceiptTokenAmount.Size(m)
}
func (m *ReceiptTokenAmount) XXX_DiscardUnknown() {
xxx_messageInfo_ReceiptTokenAmount.DiscardUnknown(m)
}
var xxx_messageInfo_ReceiptTokenAmount proto.InternalMessageInfo
func (m *ReceiptTokenAmount) GetPrev() *Token {
if m != nil {
return m.Prev
}
return nil
}
func (m *ReceiptTokenAmount) GetCur() *Token {
if m != nil {
return m.Cur
}
return nil
}
// local
type LocalToken struct {
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
......@@ -715,7 +842,7 @@ func (m *LocalToken) Reset() { *m = LocalToken{} }
func (m *LocalToken) String() string { return proto.CompactTextString(m) }
func (*LocalToken) ProtoMessage() {}
func (*LocalToken) Descriptor() ([]byte, []int) {
return fileDescriptor_3aff0bcd502840ab, []int{6}
return fileDescriptor_3aff0bcd502840ab, []int{8}
}
func (m *LocalToken) XXX_Unmarshal(b []byte) error {
......@@ -870,7 +997,7 @@ func (m *ReqTokens) Reset() { *m = ReqTokens{} }
func (m *ReqTokens) String() string { return proto.CompactTextString(m) }
func (*ReqTokens) ProtoMessage() {}
func (*ReqTokens) Descriptor() ([]byte, []int) {
return fileDescriptor_3aff0bcd502840ab, []int{7}
return fileDescriptor_3aff0bcd502840ab, []int{9}
}
func (m *ReqTokens) XXX_Unmarshal(b []byte) error {
......@@ -930,7 +1057,7 @@ func (m *ReplyTokens) Reset() { *m = ReplyTokens{} }
func (m *ReplyTokens) String() string { return proto.CompactTextString(m) }
func (*ReplyTokens) ProtoMessage() {}
func (*ReplyTokens) Descriptor() ([]byte, []int) {
return fileDescriptor_3aff0bcd502840ab, []int{8}
return fileDescriptor_3aff0bcd502840ab, []int{10}
}
func (m *ReplyTokens) XXX_Unmarshal(b []byte) error {
......@@ -970,7 +1097,7 @@ func (m *TokenRecv) Reset() { *m = TokenRecv{} }
func (m *TokenRecv) String() string { return proto.CompactTextString(m) }
func (*TokenRecv) ProtoMessage() {}
func (*TokenRecv) Descriptor() ([]byte, []int) {
return fileDescriptor_3aff0bcd502840ab, []int{9}
return fileDescriptor_3aff0bcd502840ab, []int{11}
}
func (m *TokenRecv) XXX_Unmarshal(b []byte) error {
......@@ -1016,7 +1143,7 @@ func (m *ReplyAddrRecvForTokens) Reset() { *m = ReplyAddrRecvForTokens{}
func (m *ReplyAddrRecvForTokens) String() string { return proto.CompactTextString(m) }
func (*ReplyAddrRecvForTokens) ProtoMessage() {}
func (*ReplyAddrRecvForTokens) Descriptor() ([]byte, []int) {
return fileDescriptor_3aff0bcd502840ab, []int{10}
return fileDescriptor_3aff0bcd502840ab, []int{12}
}
func (m *ReplyAddrRecvForTokens) XXX_Unmarshal(b []byte) error {
......@@ -1057,7 +1184,7 @@ func (m *ReqTokenBalance) Reset() { *m = ReqTokenBalance{} }
func (m *ReqTokenBalance) String() string { return proto.CompactTextString(m) }
func (*ReqTokenBalance) ProtoMessage() {}
func (*ReqTokenBalance) Descriptor() ([]byte, []int) {
return fileDescriptor_3aff0bcd502840ab, []int{11}
return fileDescriptor_3aff0bcd502840ab, []int{13}
}
func (m *ReqTokenBalance) XXX_Unmarshal(b []byte) error {
......@@ -1111,7 +1238,7 @@ func (m *ReqAccountTokenAssets) Reset() { *m = ReqAccountTokenAssets{} }
func (m *ReqAccountTokenAssets) String() string { return proto.CompactTextString(m) }
func (*ReqAccountTokenAssets) ProtoMessage() {}
func (*ReqAccountTokenAssets) Descriptor() ([]byte, []int) {
return fileDescriptor_3aff0bcd502840ab, []int{12}
return fileDescriptor_3aff0bcd502840ab, []int{14}
}
func (m *ReqAccountTokenAssets) XXX_Unmarshal(b []byte) error {
......@@ -1158,7 +1285,7 @@ func (m *TokenAsset) Reset() { *m = TokenAsset{} }
func (m *TokenAsset) String() string { return proto.CompactTextString(m) }
func (*TokenAsset) ProtoMessage() {}
func (*TokenAsset) Descriptor() ([]byte, []int) {
return fileDescriptor_3aff0bcd502840ab, []int{13}
return fileDescriptor_3aff0bcd502840ab, []int{15}
}
func (m *TokenAsset) XXX_Unmarshal(b []byte) error {
......@@ -1204,7 +1331,7 @@ func (m *ReplyAccountTokenAssets) Reset() { *m = ReplyAccountTokenAssets
func (m *ReplyAccountTokenAssets) String() string { return proto.CompactTextString(m) }
func (*ReplyAccountTokenAssets) ProtoMessage() {}
func (*ReplyAccountTokenAssets) Descriptor() ([]byte, []int) {
return fileDescriptor_3aff0bcd502840ab, []int{14}
return fileDescriptor_3aff0bcd502840ab, []int{16}
}
func (m *ReplyAccountTokenAssets) XXX_Unmarshal(b []byte) error {
......@@ -1248,7 +1375,7 @@ func (m *ReqAddrTokens) Reset() { *m = ReqAddrTokens{} }
func (m *ReqAddrTokens) String() string { return proto.CompactTextString(m) }
func (*ReqAddrTokens) ProtoMessage() {}
func (*ReqAddrTokens) Descriptor() ([]byte, []int) {
return fileDescriptor_3aff0bcd502840ab, []int{15}
return fileDescriptor_3aff0bcd502840ab, []int{17}
}
func (m *ReqAddrTokens) XXX_Unmarshal(b []byte) error {
......@@ -1329,7 +1456,7 @@ func (m *ReqTokenTx) Reset() { *m = ReqTokenTx{} }
func (m *ReqTokenTx) String() string { return proto.CompactTextString(m) }
func (*ReqTokenTx) ProtoMessage() {}
func (*ReqTokenTx) Descriptor() ([]byte, []int) {
return fileDescriptor_3aff0bcd502840ab, []int{16}
return fileDescriptor_3aff0bcd502840ab, []int{18}
}
func (m *ReqTokenTx) XXX_Unmarshal(b []byte) error {
......@@ -1404,8 +1531,10 @@ func init() {
proto.RegisterType((*TokenPreCreate)(nil), "types.TokenPreCreate")
proto.RegisterType((*TokenFinishCreate)(nil), "types.TokenFinishCreate")
proto.RegisterType((*TokenRevokeCreate)(nil), "types.TokenRevokeCreate")
proto.RegisterType((*TokenMint)(nil), "types.TokenMint")
proto.RegisterType((*Token)(nil), "types.Token")
proto.RegisterType((*ReceiptToken)(nil), "types.ReceiptToken")
proto.RegisterType((*ReceiptTokenAmount)(nil), "types.ReceiptTokenAmount")
proto.RegisterType((*LocalToken)(nil), "types.LocalToken")
proto.RegisterType((*ReqTokens)(nil), "types.ReqTokens")
proto.RegisterType((*ReplyTokens)(nil), "types.ReplyTokens")
......@@ -1422,67 +1551,72 @@ func init() {
func init() { proto.RegisterFile("token.proto", fileDescriptor_3aff0bcd502840ab) }
var fileDescriptor_3aff0bcd502840ab = []byte{
// 960 bytes of a gzipped FileDescriptorProto
// 1029 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x56, 0xdd, 0x6e, 0xe3, 0x44,
0x14, 0x4e, 0xe2, 0xfc, 0xf9, 0x64, 0x9b, 0x6e, 0x86, 0xdd, 0x60, 0x95, 0x15, 0xaa, 0x2c, 0x2e,
0x8a, 0x84, 0xaa, 0xaa, 0x15, 0x12, 0x17, 0x48, 0x28, 0x8b, 0xba, 0x1b, 0x7e, 0xb4, 0xa0, 0x21,
0x12, 0xd7, 0x5e, 0xfb, 0xb4, 0xb5, 0x9a, 0xd8, 0xe9, 0x78, 0x92, 0x36, 0x4f, 0xc3, 0x3d, 0x17,
0x3c, 0x02, 0x8f, 0xc2, 0x2d, 0xaf, 0x81, 0xe6, 0xcc, 0x8c, 0x33, 0x93, 0xb4, 0x48, 0x7b, 0x87,
0xb8, 0xf3, 0xf9, 0xfb, 0xe6, 0x9c, 0xef, 0x7c, 0x1e, 0x1b, 0x06, 0xb2, 0xbc, 0xc5, 0xe2, 0x74,
0x29, 0x4a, 0x59, 0xb2, 0x8e, 0xdc, 0x2c, 0xb1, 0x3a, 0x1a, 0x49, 0x91, 0x14, 0x55, 0x92, 0xca,
0xbc, 0x34, 0x91, 0xa3, 0x83, 0x24, 0x4d, 0xcb, 0x55, 0x21, 0xb5, 0x19, 0xff, 0x15, 0xc0, 0x60,
0xa6, 0x0a, 0x27, 0x94, 0xc4, 0xbe, 0x81, 0x21, 0xe1, 0xfc, 0x2c, 0xf0, 0x5b, 0x81, 0x89, 0xc4,
0xa8, 0x79, 0xdc, 0x3c, 0x19, 0x9c, 0xbf, 0x3c, 0x25, 0xc4, 0xd3, 0x99, 0x17, 0x9c, 0x36, 0xf8,
0x4e, 0x3a, 0x9b, 0xc2, 0x88, 0x3c, 0x6f, 0xf2, 0x22, 0xaf, 0x6e, 0x0c, 0x46, 0x8b, 0x30, 0x22,
0x17, 0xc3, 0x8d, 0x4f, 0x1b, 0x7c, 0xbf, 0xa8, 0x46, 0xe2, 0xb8, 0x2e, 0x6f, 0x6d, 0x37, 0xc1,
0x3e, 0x92, 0x1b, 0xaf, 0x91, 0x5c, 0x27, 0xbb, 0x80, 0x3e, 0x11, 0x71, 0x85, 0x22, 0x6a, 0x7b,
0xe3, 0x4c, 0xaa, 0x0a, 0x65, 0x35, 0x33, 0xc1, 0x69, 0x83, 0xd7, 0x89, 0xaa, 0xe8, 0x3e, 0x97,
0x37, 0x99, 0x48, 0xee, 0xa3, 0xce, 0x23, 0x45, 0xbf, 0x9a, 0xa0, 0x2a, 0xb2, 0x89, 0xec, 0x0c,
0x7a, 0xd7, 0x58, 0x60, 0x95, 0x57, 0x51, 0x97, 0x6a, 0x5e, 0x78, 0x35, 0x6f, 0x75, 0x6c, 0xda,
0xe0, 0x36, 0x8d, 0x5d, 0xc2, 0xd0, 0x1e, 0x39, 0x2b, 0x2f, 0x1f, 0x30, 0x8d, 0xfa, 0x54, 0xf8,
0xc9, 0xa3, 0x1d, 0xea, 0x14, 0xa2, 0xdd, 0xf3, 0xb0, 0x21, 0xb4, 0x66, 0x9b, 0xa8, 0x77, 0xdc,
0x3c, 0xe9, 0xf0, 0xd6, 0x6c, 0xf3, 0xba, 0x07, 0x9d, 0x75, 0x32, 0x5f, 0x61, 0xfc, 0x67, 0x13,
0x86, 0xfe, 0xd2, 0x18, 0x83, 0x76, 0x91, 0x2c, 0xf4, 0x66, 0x43, 0x4e, 0xcf, 0x6c, 0x0c, 0xdd,
0x6a, 0xb3, 0x78, 0x5f, 0xce, 0x69, 0x57, 0x21, 0x37, 0x16, 0x8b, 0xe1, 0x59, 0x5e, 0x48, 0x51,
0x66, 0x2b, 0xd2, 0x07, 0xf1, 0x1f, 0x72, 0xcf, 0xc7, 0x5e, 0x40, 0x47, 0x96, 0x32, 0x99, 0x13,
0xb7, 0x01, 0xd7, 0x86, 0xf2, 0x2e, 0x45, 0x9e, 0x22, 0x91, 0x17, 0x70, 0x6d, 0x28, 0x6f, 0x79,
0x5f, 0xa0, 0x20, 0x7a, 0x42, 0xae, 0x0d, 0x76, 0x04, 0xfd, 0x34, 0x91, 0x78, 0x5d, 0x0a, 0x3b,
0x43, 0x6d, 0xc7, 0x13, 0x18, 0xed, 0x09, 0xc6, 0x69, 0xb7, 0xe9, 0xb5, 0x5b, 0xc3, 0xb7, 0x1c,
0xf8, 0x1a, 0xc2, 0x13, 0xc5, 0x87, 0x41, 0xfc, 0xdd, 0x84, 0x0e, 0x61, 0xfc, 0x07, 0xd9, 0x8b,
0xa0, 0x97, 0xaa, 0x99, 0x4a, 0x41, 0xe4, 0x85, 0xdc, 0x9a, 0xd4, 0x97, 0x4c, 0xe4, 0xaa, 0x22,
0x51, 0x75, 0xb8, 0xb1, 0x3c, 0xbe, 0xc3, 0x1d, 0xbe, 0x67, 0xf0, 0x8c, 0x63, 0x8a, 0xf9, 0x52,
0xea, 0x79, 0x3f, 0x88, 0x27, 0xe7, 0xc4, 0xc0, 0x3d, 0x31, 0xfe, 0xbd, 0x0d, 0xf0, 0x63, 0x99,
0x26, 0xf3, 0xff, 0x0f, 0x89, 0x9f, 0xc1, 0x01, 0xa5, 0x60, 0x36, 0xc5, 0xfc, 0xfa, 0x46, 0x12,
0x93, 0x01, 0xf7, 0x9d, 0xec, 0x18, 0x06, 0xc6, 0x31, 0xcb, 0x17, 0x18, 0x01, 0xe5, 0xb8, 0x2e,
0x76, 0x06, 0x1f, 0x2d, 0x05, 0x2e, 0x93, 0xfa, 0x52, 0xd5, 0x68, 0x03, 0xca, 0x7c, 0x2c, 0xc4,
0xbe, 0x80, 0x91, 0xe7, 0x26, 0xe4, 0x67, 0x94, 0xbf, 0x1f, 0x60, 0xaf, 0x20, 0x5c, 0x0a, 0x4c,
0xf3, 0x4a, 0x91, 0x77, 0x40, 0x23, 0x6c, 0x1d, 0xec, 0x14, 0x18, 0x91, 0x55, 0xdf, 0x30, 0xf9,
0x02, 0xab, 0x68, 0x48, 0x60, 0x8f, 0x44, 0xd4, 0xd4, 0x82, 0x5e, 0x23, 0x3b, 0xf5, 0xa1, 0x9e,
0xda, 0x73, 0xaa, 0xa9, 0x8d, 0x83, 0x7a, 0x7b, 0xae, 0xa7, 0x76, 0x5c, 0x9e, 0x04, 0x47, 0x3b,
0x12, 0xbc, 0x87, 0x90, 0xe3, 0x1d, 0x29, 0x85, 0xb4, 0x7a, 0xb7, 0x42, 0xb1, 0x99, 0xcc, 0xb5,
0x02, 0xfb, 0xbc, 0xb6, 0x9d, 0xd5, 0xb4, 0xbc, 0xd5, 0x8c, 0xa1, 0x4b, 0x5f, 0x01, 0xa5, 0xc2,
0x40, 0x49, 0x49, 0x5b, 0xec, 0x53, 0x00, 0x2d, 0xaa, 0x9f, 0x8a, 0xf9, 0x86, 0xb4, 0xd2, 0xe7,
0x8e, 0x27, 0xfe, 0x0a, 0x06, 0x1c, 0x97, 0xf3, 0x8d, 0x39, 0xfa, 0xf3, 0x1a, 0xa6, 0x79, 0x1c,
0x9c, 0x0c, 0xce, 0x47, 0xe6, 0x4e, 0xde, 0x0a, 0xd9, 0x22, 0xc7, 0x5f, 0x42, 0x68, 0xae, 0x98,
0x74, 0xad, 0xd5, 0x78, 0x8b, 0x85, 0x91, 0xb7, 0x36, 0x94, 0xe6, 0x05, 0xa6, 0x6b, 0x6a, 0x35,
0xe0, 0xf4, 0x1c, 0x7f, 0x0f, 0x63, 0x3a, 0x70, 0x92, 0x65, 0x42, 0x95, 0xbe, 0x29, 0x85, 0x39,
0xfb, 0x0c, 0x40, 0x5a, 0x40, 0x7b, 0xfe, 0x73, 0xff, 0xb3, 0x97, 0xae, 0xb9, 0x93, 0x13, 0xe7,
0x70, 0x68, 0x59, 0x7b, 0x9d, 0xcc, 0x93, 0x22, 0xa5, 0xd5, 0x27, 0x59, 0x26, 0xb0, 0xaa, 0x50,
0x63, 0x84, 0x7c, 0xeb, 0x50, 0x4b, 0xa2, 0xf2, 0x5f, 0xdc, 0xb7, 0xce, 0x75, 0x29, 0x1e, 0xf1,
0x01, 0x53, 0x14, 0xe6, 0xa5, 0x33, 0x56, 0xfc, 0x1d, 0xbc, 0xe4, 0x78, 0x37, 0xd1, 0x7f, 0x12,
0xfa, 0xf7, 0x81, 0x3e, 0x53, 0xea, 0x2d, 0x32, 0xf8, 0x66, 0x76, 0x6b, 0x3a, 0x50, 0x2d, 0x0f,
0xea, 0x1d, 0xc0, 0x16, 0xe0, 0xc9, 0xcb, 0xe6, 0x04, 0x7a, 0xe6, 0xbf, 0xc5, 0xfc, 0x4b, 0x0c,
0xed, 0xe7, 0x51, 0x7b, 0xb9, 0x0d, 0xc7, 0xef, 0xe0, 0x63, 0xcd, 0xe8, 0x7e, 0x73, 0x17, 0x66,
0x5e, 0x6d, 0xee, 0xec, 0x74, 0x9b, 0xc8, 0xdd, 0xac, 0xf8, 0xb7, 0x26, 0x1c, 0xa8, 0x59, 0xb3,
0xcc, 0x6e, 0x86, 0x41, 0x5b, 0x0d, 0x65, 0xef, 0x2e, 0xf5, 0xfc, 0xa4, 0x10, 0x6b, 0x25, 0x68,
0x1d, 0x1a, 0x25, 0xbc, 0x82, 0x30, 0xcb, 0x05, 0xea, 0xeb, 0xac, 0xad, 0xdf, 0xc8, 0xda, 0xa1,
0x6a, 0xf4, 0xa4, 0x1d, 0x8a, 0x68, 0x43, 0x31, 0x7b, 0x25, 0xca, 0xc5, 0x0f, 0xb8, 0x31, 0xf7,
0x96, 0x35, 0xe3, 0x3f, 0x9a, 0x00, 0x76, 0xf1, 0xb3, 0x87, 0x27, 0x29, 0x64, 0xd0, 0xbe, 0x9a,
0x27, 0xd7, 0xa6, 0x41, 0x7a, 0xde, 0x1e, 0x15, 0xb8, 0x47, 0xfd, 0x7b, 0x7b, 0x63, 0xe8, 0xde,
0xe8, 0x37, 0x5f, 0xdf, 0xaa, 0xc6, 0x52, 0x58, 0x79, 0x91, 0xe1, 0x03, 0xb5, 0x17, 0x70, 0x6d,
0xd4, 0x64, 0xf5, 0xb6, 0x64, 0x9d, 0x5f, 0x1a, 0x52, 0xd8, 0xd7, 0x70, 0xf8, 0x16, 0xa5, 0xa7,
0xd8, 0xb1, 0x59, 0xc7, 0x8e, 0x92, 0x8f, 0x0e, 0xfd, 0x7d, 0x57, 0x71, 0xe3, 0x7d, 0x97, 0xfe,
0x60, 0x2f, 0xfe, 0x09, 0x00, 0x00, 0xff, 0xff, 0x84, 0xd1, 0x60, 0x7f, 0xf9, 0x0a, 0x00, 0x00,
0x14, 0x4e, 0xe2, 0xfc, 0xd4, 0x27, 0x6d, 0xda, 0x0c, 0xbb, 0xc1, 0x2a, 0xab, 0x55, 0x64, 0x71,
0x51, 0x24, 0x54, 0x55, 0xad, 0x90, 0x90, 0x40, 0x42, 0x59, 0xd4, 0xdd, 0xf0, 0xb7, 0xa0, 0x21,
0x82, 0x6b, 0xaf, 0x7d, 0xda, 0x5a, 0x4d, 0x6c, 0x77, 0x3c, 0x49, 0x9b, 0xb7, 0xe0, 0x0d, 0xb8,
0xe7, 0x82, 0x47, 0xe0, 0x75, 0x78, 0x0d, 0x34, 0x67, 0xc6, 0xce, 0x4c, 0xd2, 0x22, 0xed, 0x1d,
0xe2, 0x2e, 0xe7, 0xef, 0x9b, 0x39, 0xdf, 0xf9, 0xe6, 0x38, 0xd0, 0x97, 0xf9, 0x2d, 0x66, 0xa7,
0x85, 0xc8, 0x65, 0xce, 0x3a, 0x72, 0x5d, 0x60, 0x79, 0x3c, 0x94, 0x22, 0xca, 0xca, 0x28, 0x96,
0x69, 0x6e, 0x22, 0xc7, 0x07, 0x51, 0x1c, 0xe7, 0xcb, 0x4c, 0x6a, 0x33, 0xfc, 0xad, 0x0d, 0xfd,
0x99, 0x2a, 0x9c, 0x50, 0x12, 0xfb, 0x0a, 0x06, 0x84, 0xf3, 0x93, 0xc0, 0xaf, 0x05, 0x46, 0x12,
0x83, 0xe6, 0xb8, 0x79, 0xd2, 0x3f, 0x7f, 0x7e, 0x4a, 0x88, 0xa7, 0x33, 0x27, 0x38, 0x6d, 0xf0,
0xad, 0x74, 0x36, 0x85, 0x21, 0x79, 0x5e, 0xa7, 0x59, 0x5a, 0xde, 0x18, 0x8c, 0x16, 0x61, 0x04,
0x36, 0x86, 0x1d, 0x9f, 0x36, 0xf8, 0x6e, 0x51, 0x8d, 0xc4, 0x71, 0x95, 0xdf, 0x56, 0xb7, 0xf1,
0x76, 0x91, 0xec, 0x78, 0x8d, 0x64, 0x3b, 0xd9, 0x05, 0xec, 0x11, 0x11, 0x57, 0x28, 0x82, 0xb6,
0xd3, 0xce, 0xa4, 0x2c, 0x51, 0x96, 0x33, 0x13, 0x9c, 0x36, 0x78, 0x9d, 0xa8, 0x8a, 0xee, 0x53,
0x79, 0x93, 0x88, 0xe8, 0x3e, 0xe8, 0x3c, 0x52, 0xf4, 0xab, 0x09, 0xaa, 0xa2, 0x2a, 0x91, 0x9d,
0x41, 0xef, 0x1a, 0x33, 0x2c, 0xd3, 0x32, 0xe8, 0x52, 0xcd, 0x33, 0xa7, 0xe6, 0x8d, 0x8e, 0x4d,
0x1b, 0xbc, 0x4a, 0x63, 0x97, 0x30, 0xa8, 0x8e, 0x9c, 0xe5, 0x97, 0x0f, 0x18, 0x07, 0x7b, 0x54,
0xf8, 0xd1, 0xa3, 0x37, 0xd4, 0x29, 0x44, 0xbb, 0xe3, 0x61, 0x67, 0xe0, 0x53, 0xdf, 0x3f, 0xa4,
0x99, 0x0c, 0x7c, 0x42, 0x38, 0xb2, 0x49, 0x52, 0xfe, 0x69, 0x83, 0x6f, 0x92, 0xd8, 0x00, 0x5a,
0xb3, 0x75, 0xd0, 0x1b, 0x37, 0x4f, 0x3a, 0xbc, 0x35, 0x5b, 0xbf, 0xea, 0x41, 0x67, 0x15, 0xcd,
0x97, 0x18, 0xfe, 0xd5, 0x84, 0x81, 0x3b, 0x66, 0xc6, 0xa0, 0x9d, 0x45, 0x0b, 0xad, 0x05, 0x9f,
0xd3, 0x6f, 0x36, 0x82, 0x6e, 0xb9, 0x5e, 0xbc, 0xcb, 0xe7, 0x34, 0x5d, 0x9f, 0x1b, 0x8b, 0x85,
0xb0, 0x9f, 0x66, 0x52, 0xe4, 0xc9, 0x92, 0x14, 0x45, 0x13, 0xf3, 0xb9, 0xe3, 0x63, 0xcf, 0xa0,
0x23, 0x73, 0x19, 0xcd, 0x69, 0x1a, 0x1e, 0xd7, 0x86, 0xf2, 0x16, 0x22, 0x8d, 0x91, 0xe8, 0xf6,
0xb8, 0x36, 0x94, 0x37, 0xbf, 0xcf, 0x50, 0x10, 0xa1, 0x3e, 0xd7, 0x06, 0x3b, 0x86, 0xbd, 0x38,
0x92, 0x78, 0x9d, 0x8b, 0xaa, 0x87, 0xda, 0x0e, 0x27, 0x30, 0xdc, 0x91, 0x98, 0x75, 0xdd, 0xa6,
0x73, 0xdd, 0x1a, 0xbe, 0x65, 0xc1, 0xd7, 0x10, 0x8e, 0x8c, 0xde, 0x0f, 0xe2, 0x0b, 0xf0, 0x6b,
0xe6, 0x9f, 0x2c, 0x1d, 0x41, 0x37, 0x5a, 0xa8, 0xe7, 0x48, 0xb5, 0x1e, 0x37, 0x56, 0xf8, 0x77,
0x13, 0x3a, 0x54, 0xfd, 0x1f, 0xa4, 0x3e, 0x80, 0x5e, 0xac, 0x08, 0xc9, 0x05, 0x31, 0xef, 0xf3,
0xca, 0xa4, 0x7b, 0xc9, 0x48, 0x2e, 0x4b, 0xd2, 0x70, 0x87, 0x1b, 0xcb, 0x19, 0x96, 0xbf, 0x35,
0xac, 0x19, 0xec, 0x73, 0x8c, 0x31, 0x2d, 0xa4, 0xee, 0xf7, 0xbd, 0x48, 0xb6, 0x4e, 0xf4, 0xec,
0x13, 0xc3, 0x5f, 0x80, 0xd9, 0xa8, 0x13, 0x62, 0x95, 0x8d, 0xa1, 0x5d, 0x08, 0x5c, 0x99, 0x95,
0xb6, 0xef, 0x2c, 0x11, 0x8a, 0xb0, 0x97, 0xe0, 0xc5, 0x4b, 0x61, 0xf6, 0x95, 0x9b, 0xa0, 0x02,
0xe1, 0x1f, 0x6d, 0x80, 0xef, 0xf3, 0x38, 0x9a, 0xff, 0x7f, 0x86, 0xf3, 0x31, 0x1c, 0x50, 0x0a,
0x26, 0x53, 0x4c, 0xaf, 0x6f, 0xf4, 0xf6, 0xf0, 0xb8, 0xeb, 0x64, 0x63, 0xe8, 0x1b, 0xc7, 0x2c,
0x5d, 0x60, 0x00, 0x94, 0x63, 0xbb, 0xd8, 0x19, 0x7c, 0x50, 0x08, 0x2c, 0xa2, 0xfa, 0xdb, 0xa0,
0xd1, 0xfa, 0x94, 0xf9, 0x58, 0x88, 0x7d, 0x0a, 0x43, 0xc7, 0x4d, 0xc8, 0xfb, 0x94, 0xbf, 0x1b,
0x60, 0x2f, 0xc0, 0x2f, 0x04, 0xc6, 0x69, 0xa9, 0xc8, 0x3b, 0xa0, 0x16, 0x36, 0x0e, 0x76, 0x0a,
0x8c, 0xc8, 0xaa, 0x17, 0x65, 0xba, 0xc0, 0x32, 0x18, 0x10, 0xd8, 0x23, 0x11, 0xd5, 0xb5, 0xa0,
0xb7, 0x5d, 0x75, 0x7d, 0xa8, 0xbb, 0x76, 0x9c, 0xaa, 0x6b, 0xe3, 0xa0, 0xbb, 0x1d, 0xe9, 0xae,
0x2d, 0x97, 0x23, 0xed, 0xe1, 0x96, 0xb4, 0xef, 0xc1, 0xe7, 0x78, 0x47, 0x4a, 0xa1, 0x37, 0x70,
0xb7, 0x44, 0xb1, 0x9e, 0xcc, 0xb5, 0xb2, 0xf7, 0x78, 0x6d, 0x5b, 0xa3, 0x69, 0x39, 0xa3, 0x19,
0x41, 0x97, 0xf6, 0xb5, 0x52, 0xb7, 0xa7, 0xa4, 0xa4, 0x2d, 0xf6, 0x12, 0x40, 0x8b, 0xea, 0xc7,
0x6c, 0xbe, 0x26, 0xad, 0xec, 0x71, 0xcb, 0x13, 0x7e, 0x0e, 0x7d, 0x8e, 0xc5, 0x7c, 0x6d, 0x8e,
0xfe, 0xa4, 0x86, 0x69, 0x8e, 0xbd, 0x93, 0xfe, 0xf9, 0xd0, 0xe8, 0x7a, 0x23, 0xe4, 0x0a, 0x39,
0xfc, 0xcc, 0x2c, 0x2d, 0x8e, 0xf1, 0x4a, 0xab, 0xf1, 0x16, 0x33, 0x23, 0x6f, 0x6d, 0x28, 0xcd,
0x0b, 0x8c, 0x57, 0x66, 0x61, 0xd1, 0xef, 0xf0, 0x5b, 0x18, 0xd1, 0x81, 0x93, 0x24, 0x11, 0xaa,
0xf4, 0x75, 0x2e, 0xcc, 0xd9, 0x67, 0x00, 0xb2, 0x02, 0xac, 0xce, 0x3f, 0x72, 0xbf, 0xde, 0xf1,
0x8a, 0x5b, 0x39, 0x61, 0x0a, 0x87, 0x15, 0x6b, 0xaf, 0xa2, 0x79, 0x94, 0xc5, 0x34, 0xfa, 0x28,
0x49, 0x04, 0x96, 0x25, 0x6a, 0x0c, 0x9f, 0x6f, 0x1c, 0x6a, 0x48, 0x54, 0xfe, 0xb3, 0xfd, 0xea,
0x6c, 0x97, 0xe2, 0x11, 0x1f, 0x30, 0x46, 0x61, 0x1e, 0x9d, 0xb1, 0xc2, 0x6f, 0xe0, 0x39, 0xc7,
0xbb, 0x89, 0xfe, 0x43, 0xa4, 0x17, 0x05, 0x7d, 0x6d, 0xd5, 0x2b, 0x32, 0xf8, 0xa6, 0xf7, 0xca,
0xb4, 0xa0, 0x5a, 0x0e, 0xd4, 0x5b, 0x80, 0x0d, 0xc0, 0x93, 0x4b, 0xec, 0x04, 0x7a, 0xe6, 0xef,
0x97, 0x59, 0x31, 0x83, 0xea, 0x2b, 0xaf, 0xbd, 0xbc, 0x0a, 0x87, 0x6f, 0xe1, 0x43, 0xcd, 0xe8,
0xee, 0xe5, 0x2e, 0x4c, 0xbf, 0xda, 0xdc, 0x9a, 0xe9, 0x26, 0x91, 0xdb, 0x59, 0xe1, 0xef, 0x4d,
0x38, 0x50, 0xbd, 0x26, 0x49, 0x35, 0x19, 0x06, 0x6d, 0xd5, 0x54, 0xb5, 0xbb, 0xd4, 0xef, 0x27,
0x85, 0x58, 0x2b, 0x41, 0xeb, 0xd0, 0x28, 0xe1, 0x05, 0xf8, 0x49, 0x2a, 0x50, 0xaf, 0xb3, 0xb6,
0x7e, 0x91, 0xb5, 0x43, 0xd5, 0xe8, 0x4e, 0x3b, 0x14, 0xd1, 0x86, 0x62, 0xf6, 0x4a, 0xe4, 0x8b,
0xef, 0x70, 0x6d, 0xf6, 0x56, 0x65, 0x86, 0x7f, 0x36, 0x01, 0xaa, 0xc1, 0xcf, 0x1e, 0x9e, 0xa4,
0x90, 0x41, 0xfb, 0x6a, 0x1e, 0x5d, 0x9b, 0x0b, 0xd2, 0xef, 0xcd, 0x51, 0x9e, 0x7d, 0xd4, 0xbf,
0x5f, 0x6f, 0x04, 0xdd, 0x1b, 0xfd, 0xf2, 0xf5, 0x56, 0x35, 0x96, 0xc2, 0x4a, 0xb3, 0x04, 0x1f,
0xe8, 0x7a, 0x1e, 0xd7, 0x46, 0x4d, 0x56, 0x6f, 0x43, 0xd6, 0xf9, 0xa5, 0x21, 0x85, 0x7d, 0x09,
0x87, 0x6f, 0x50, 0x3a, 0x8a, 0x1d, 0x99, 0x71, 0x6c, 0x29, 0xf9, 0xf8, 0xd0, 0x9d, 0x77, 0x19,
0x36, 0xde, 0x75, 0xe9, 0x8f, 0xf8, 0xc5, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x4d, 0x01, 0xf1,
0x83, 0xc0, 0x0b, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
......
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