Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
plugin
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
link33
plugin
Commits
dd7fbd8c
Commit
dd7fbd8c
authored
Nov 09, 2021
by
harrylee
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update broker
parent
e664d86c
Pipeline
#8222
failed with stages
in 0 seconds
Changes
4
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
74 additions
and
79 deletions
+74
-79
brokerdb.go
plugin/dapp/broker/executor/brokerdb.go
+3
-2
tables.go
plugin/dapp/broker/executor/tables.go
+0
-2
broker.proto
plugin/dapp/broker/proto/broker.proto
+7
-21
broker.pb.go
plugin/dapp/broker/types/broker.pb.go
+64
-54
No files found.
plugin/dapp/broker/executor/brokerdb.go
View file @
dd7fbd8c
...
@@ -140,14 +140,15 @@ func (b *BrokerDB) updateIndex(payload *brokertypes.UpdateIndex) (*types.Receipt
...
@@ -140,14 +140,15 @@ func (b *BrokerDB) updateIndex(payload *brokertypes.UpdateIndex) (*types.Receipt
receipt
.
Logs
=
append
(
receipt
.
Logs
,
receiptlog
)
receipt
.
Logs
=
append
(
receipt
.
Logs
,
receiptlog
)
return
receipt
,
nil
return
receipt
,
nil
}
}
//TODO 重构跨链事件发布
func
(
b
*
BrokerDB
)
emitInterchainEvent
(
payload
*
brokertypes
.
InterchainEvent
)
(
*
types
.
Receipt
,
error
)
{
func
(
b
*
BrokerDB
)
emitInterchainEvent
(
payload
*
brokertypes
.
InterchainEvent
)
(
*
types
.
Receipt
,
error
)
{
//FIXME 权限检查,是否需要设定指定账户拥有跨链的权限
//FIXME 权限检查,是否需要设定指定账户拥有跨链的权限
receipt
:=
&
types
.
Receipt
{
Ty
:
types
.
ExecOk
}
receipt
:=
&
types
.
Receipt
{
Ty
:
types
.
ExecOk
}
//发布跨链事件分为 1.信息跨链 2.代币跨链,代币跨链需要在这步将所需金额冻结在broker下面
//发布跨链事件分为 1.信息跨链 2.代币跨链,代币跨链需要在这步将所需金额冻结在broker下面
if
payload
.
Type
==
brokertypes
.
Req_Type_Storage
{
if
payload
.
Type
==
brokertypes
.
Req_Type_Storage
{
//校验存在交易是否存在
//校验存在交易是否存在
params
:=
&
storagetypes
.
QueryStorage
{
TxHash
:
payload
.
Args
[
0
]
}
params
:=
&
storagetypes
.
QueryStorage
{
TxHash
:
payload
.
Args
}
_
,
err
:=
b
.
api
.
Query
(
storagetypes
.
StorageX
,
payload
.
GetFunc
()
,
params
)
_
,
err
:=
b
.
api
.
Query
(
storagetypes
.
StorageX
,
"QueryStorage"
,
params
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
brokertypes
.
ErrBrokerStorageTx
return
nil
,
brokertypes
.
ErrBrokerStorageTx
}
}
...
...
plugin/dapp/broker/executor/tables.go
View file @
dd7fbd8c
...
@@ -47,8 +47,6 @@ func (m *InterchainEventRow) Get(key string) ([]byte, error) {
...
@@ -47,8 +47,6 @@ func (m *InterchainEventRow) Get(key string) ([]byte, error) {
return
[]
byte
(
fmt
.
Sprintf
(
"%018d"
,
m
.
Index
)),
nil
return
[]
byte
(
fmt
.
Sprintf
(
"%018d"
,
m
.
Index
)),
nil
}
else
if
key
==
"dstServiceID"
{
}
else
if
key
==
"dstServiceID"
{
return
[]
byte
(
fmt
.
Sprintf
(
"%s"
,
m
.
GetDstServiceID
())),
nil
return
[]
byte
(
fmt
.
Sprintf
(
"%s"
,
m
.
GetDstServiceID
())),
nil
}
else
if
key
==
"status"
{
return
[]
byte
(
fmt
.
Sprintf
(
"%d"
,
m
.
GetStatus
())),
nil
}
else
if
key
==
"type"
{
}
else
if
key
==
"type"
{
return
[]
byte
(
fmt
.
Sprintf
(
"%d"
,
m
.
GetType
())),
nil
return
[]
byte
(
fmt
.
Sprintf
(
"%d"
,
m
.
GetType
())),
nil
}
}
...
...
plugin/dapp/broker/proto/broker.proto
View file @
dd7fbd8c
...
@@ -52,7 +52,6 @@ message UpdateIndex {
...
@@ -52,7 +52,6 @@ message UpdateIndex {
//响应信息
//响应信息
Response
response
=
5
;
Response
response
=
5
;
}
}
// 跨链事件
// 跨链事件
message
InterchainEvent
{
message
InterchainEvent
{
//索引值,这个有系统自动生成
//索引值,这个有系统自动生成
...
@@ -63,12 +62,16 @@ message InterchainEvent {
...
@@ -63,12 +62,16 @@ message InterchainEvent {
string
srcServiceID
=
3
;
string
srcServiceID
=
3
;
//跨链交易类型 0表示storage,1表示coins,2表示token......
//跨链交易类型 0表示storage,1表示coins,2表示token......
uint64
type
=
4
;
uint64
type
=
4
;
//
调用方法
//
方法集合分别表示 当前,回调,回滚方法 用,号分割 比如: "interchainGet,interchainSet,interchainRollback"
string
func
=
5
;
string
func
=
5
;
//参数列表
//参数列表
repeated
string
args
=
6
;
string
args
=
6
;
//回调参数
string
argscb
=
7
;
//回滚参数
string
argsrb
=
8
;
//状态 0表示开始处理 1表示跨链成功 2表示跨链失败
//状态 0表示开始处理 1表示跨链成功 2表示跨链失败
int32
status
=
7
;
//
int32 status = 7;
}
}
//ReceiptBrokerLog
//ReceiptBrokerLog
message
ReceiptBrokerLog
{
message
ReceiptBrokerLog
{
...
@@ -95,23 +98,6 @@ message InterChainEventList{
...
@@ -95,23 +98,6 @@ message InterChainEventList{
repeated
InterchainEvent
list
=
1
;
repeated
InterchainEvent
list
=
1
;
}
}
////根据状态查看跨链事件
//message QueryInterchainEventList {
// //事件状态必填(默认是0,只查询待处理状态的事件)
// int32 status = 1;
// // 主键索引
// string primaryKey = 2;
// //单页返回多少条记录,默认返回10条,为了系统安全最多单次只能返回20条
// int32 count = 3;
// // 0降序,1升序,默认降序
// int32 direction = 4;
//}
////跨链事件列表
//message InterchainEventList {
// repeated InterchainEvent list = 1;
// string primaryKey = 2;
//}
message
QueryNilParam
{
message
QueryNilParam
{
}
}
...
...
plugin/dapp/broker/types/broker.pb.go
View file @
dd7fbd8c
...
@@ -424,9 +424,11 @@ type InterchainEvent struct {
...
@@ -424,9 +424,11 @@ type InterchainEvent struct {
//调用方法
//调用方法
Func
string
`protobuf:"bytes,5,opt,name=func,proto3" json:"func,omitempty"`
Func
string
`protobuf:"bytes,5,opt,name=func,proto3" json:"func,omitempty"`
//参数列表
//参数列表
Args
[]
string
`protobuf:"bytes,6,rep,name=args,proto3" json:"args,omitempty"`
Args
string
`protobuf:"bytes,6,opt,name=args,proto3" json:"args,omitempty"`
//状态 0表示开始处理 1表示跨链成功 2表示跨链失败
//回调参数
Status
int32
`protobuf:"varint,7,opt,name=status,proto3" json:"status,omitempty"`
Argscb
string
`protobuf:"bytes,7,opt,name=argscb,proto3" json:"argscb,omitempty"`
//回滚参数
Argsrb
string
`protobuf:"bytes,8,opt,name=argsrb,proto3" json:"argsrb,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:"-"`
...
@@ -492,18 +494,25 @@ func (m *InterchainEvent) GetFunc() string {
...
@@ -492,18 +494,25 @@ func (m *InterchainEvent) GetFunc() string {
return
""
return
""
}
}
func
(
m
*
InterchainEvent
)
GetArgs
()
[]
string
{
func
(
m
*
InterchainEvent
)
GetArgs
()
string
{
if
m
!=
nil
{
if
m
!=
nil
{
return
m
.
Args
return
m
.
Args
}
}
return
nil
return
""
}
}
func
(
m
*
InterchainEvent
)
Get
Status
()
int32
{
func
(
m
*
InterchainEvent
)
Get
Argscb
()
string
{
if
m
!=
nil
{
if
m
!=
nil
{
return
m
.
Status
return
m
.
Argscb
}
}
return
0
return
""
}
func
(
m
*
InterchainEvent
)
GetArgsrb
()
string
{
if
m
!=
nil
{
return
m
.
Argsrb
}
return
""
}
}
//ReceiptBrokerLog
//ReceiptBrokerLog
...
@@ -1083,52 +1092,53 @@ func init() {
...
@@ -1083,52 +1092,53 @@ func init() {
}
}
var
fileDescriptor_f209535e190f2bed
=
[]
byte
{
var
fileDescriptor_f209535e190f2bed
=
[]
byte
{
// 718 bytes of a gzipped FileDescriptorProto
// 732 bytes of a gzipped FileDescriptorProto
0x1f
,
0x8b
,
0x08
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x02
,
0xff
,
0xbc
,
0x55
,
0xcf
,
0x6e
,
0xd3
,
0x4e
,
0x1f
,
0x8b
,
0x08
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x02
,
0xff
,
0xbc
,
0x55
,
0xdd
,
0x4e
,
0xe3
,
0x46
,
0x10
,
0x8e
,
0x1d
,
0x3b
,
0x4d
,
0x26
,
0x69
,
0xd3
,
0xdf
,
0xb6
,
0xbf
,
0xca
,
0xe2
,
0x00
,
0xc1
,
0xea
,
0x14
,
0x8e
,
0x1d
,
0x3b
,
0x24
,
0x27
,
0x81
,
0xd0
,
0x81
,
0x22
,
0xab
,
0x17
,
0x2d
,
0xb5
,
0xb8
,
0xa0
,
0xa1
,
0x80
,
0x94
,
0x4a
,
0xad
,
0x04
,
0x08
,
0x71
,
0x49
,
0x4a
,
0xa5
,
0x04
,
0xb5
,
0xa5
,
0x2c
,
0x7f
,
0xad
,
0x14
,
0x24
,
0x90
,
0xda
,
0xaa
,
0xea
,
0x4d
,
0x42
,
0x91
,
0x92
,
0x0a
,
0x28
,
0x9d
,
0xfd
,
0xd1
,
0x04
,
0xdc
,
0xb6
,
0xce
,
0x34
,
0x5d
,
0x9a
,
0xd8
,
0xee
,
0x7a
,
0x5d
,
0xd5
,
0x8f
,
0xc2
,
0x9b
,
0x70
,
0xee
,
0xde
,
0x4d
,
0x9c
,
0x43
,
0x98
,
0x25
,
0xb1
,
0xcd
,
0x78
,
0x8c
,
0xf0
,
0xa3
,
0xec
,
0x9b
,
0xec
,
0xe2
,
0xc2
,
0x8b
,
0xa1
,
0x5d
,
0x6f
,
0x12
,
0x27
,
0x2d
,
0x42
,
0x54
,
0x15
,
0x97
,
0x68
,
0xe7
,
0x9b
,
0xd5
,
0xbe
,
0xc8
,
0xbe
,
0xcc
,
0x6a
,
0x7e
,
0x92
,
0x38
,
0x81
,
0xd5
,
0x6a
,
0x11
,
0xda
,
0x1b
,
0x98
,
0xd9
,
0x9d
,
0xc9
,
0x37
,
0xf3
,
0x8d
,
0xa1
,
0x71
,
0x22
,
0xa2
,
0x73
,
0x14
,
0xed
,
0x58
,
0x44
,
0x32
,
0xf3
,
0x9d
,
0x33
,
0x73
,
0xbe
,
0x7c
,
0xe7
,
0xc7
,
0xd0
,
0x1a
,
0x8a
,
0xe4
,
0x1a
,
0x45
,
0x27
,
0x15
,
0x22
,
0xae
,
0xcc
,
0x62
,
0x4c
,
0xfc
,
0xef
,
0x36
,
0x34
,
0xba
,
0x1a
,
0xef
,
0x04
,
0x92
,
0x47
,
0x21
,
0x89
,
0x4c
,
0x88
,
0x2f
,
0x8b
,
0x14
,
0xb3
,
0xf0
,
0xbd
,
0x0b
,
0xad
,
0x9e
,
0xc6
,
0xbb
,
0x91
,
0xe4
,
0x79
,
0x08
,
0x0e
,
0x0f
,
0xb9
,
0xf4
,
0xac
,
0x96
,
0xb5
,
0x55
,
0xdf
,
0xa9
,
0xb7
,
0x75
,
0x58
,
0xbb
,
0x49
,
0x4c
,
0x7e
,
0x06
,
0x8f
,
0xc7
,
0x5c
,
0x06
,
0xce
,
0xae
,
0xb3
,
0xdf
,
0x3c
,
0x6c
,
0x76
,
0x74
,
0x1f
,
0x72
,
0xd9
,
0x2b
,
0x51
,
0xed
,
0x22
,
0x5d
,
0x68
,
0x0a
,
0x1c
,
0xf2
,
0x44
,
0xa2
,
0xd8
,
0xbf
,
0x58
,
0x67
,
0x10
,
0x73
,
0xd9
,
0xaf
,
0x50
,
0xed
,
0x22
,
0x3d
,
0x68
,
0x0b
,
0x1c
,
0xf3
,
0x4c
,
0xa2
,
0xc2
,
0x40
,
0x46
,
0xc2
,
0xb3
,
0x75
,
0xf4
,
0x86
,
0x89
,
0xa6
,
0xf3
,
0xde
,
0x5e
,
0x89
,
0x2e
,
0x5e
,
0x38
,
0xb9
,
0xc3
,
0x48
,
0x26
,
0x22
,
0x70
,
0x75
,
0xf4
,
0x8e
,
0x8d
,
0xa6
,
0xcb
,
0xde
,
0x7e
,
0x85
,
0x20
,
0x9b
,
0xe0
,
0xb2
,
0x74
,
0xc0
,
0xa5
,
0x57
,
0xd6
,
0x37
,
0x1b
,
0xe6
,
0x66
,
0x47
,
0x61
,
0xbd
,
0xae
,
0x5e
,
0x20
,
0x7b
,
0xe0
,
0xb3
,
0x7c
,
0xc4
,
0x65
,
0x50
,
0xd5
,
0x37
,
0x5b
,
0xf6
,
0x66
,
0x57
,
0x12
,
0xcd
,
0x9d
,
0xe4
,
0x35
,
0xac
,
0xe1
,
0x98
,
0xcb
,
0x7e
,
0x28
,
0x51
,
0x04
,
0x67
,
0x8c
,
0x87
,
0x61
,
0xfd
,
0x0a
,
0x35
,
0x4e
,
0xf2
,
0x2f
,
0x6c
,
0xe1
,
0x94
,
0xcb
,
0x41
,
0x2c
,
0x51
,
0x44
,
0x57
,
0xfb
,
0x97
,
0x18
,
0x4a
,
0xcf
,
0x99
,
0xcb
,
0xb6
,
0xe0
,
0xed
,
0x95
,
0xe8
,
0x4d
,
0x97
,
0xc8
,
0x53
,
0x8c
,
0xc7
,
0x27
,
0xb7
,
0x18
,
0xcb
,
0xc0
,
0x5b
,
0xca
,
0xb6
,
0xe2
,
0xed
,
0x57
,
0xe8
,
0x43
,
0x97
,
0xa8
,
0xa7
,
0xf1
,
0x80
,
0x49
,
0xec
,
0x87
,
0x03
,
0xbc
,
0xf2
,
0x5c
,
0xfd
,
0x06
,
0x31
,
0x6f
,
0x7c
,
0xc8
,
0xef
,
0xd0
,
0xcc
,
0xd3
,
0x11
,
0x93
,
0x38
,
0x88
,
0x47
,
0x78
,
0x17
,
0xf8
,
0xfa
,
0x0d
,
0x62
,
0x98
,
0x79
,
0x7a
,
0x25
,
0x5a
,
0x0c
,
0x24
,
0x2b
,
0x60
,
0xcb
,
0xcc
,
0xab
,
0xb4
,
0xac
,
0x2d
,
0x97
,
0xdf
,
0x78
,
0xb1
,
0xf0
,
0xf4
,
0x2b
,
0xb4
,
0x1c
,
0x48
,
0x36
,
0xc0
,
0x95
,
0x45
,
0x50
,
0xdb
,
0x75
,
0xda
,
0x32
,
0xeb
,
0x2e
,
0x81
,
0x7b
,
0xc9
,
0x46
,
0x29
,
0xfa
,
0x2f
,
0xc1
,
0x51
,
0xb4
,
0x90
,
0x75
,
0xf6
,
0x7d
,
0xea
,
0xca
,
0xa2
,
0xb7
,
0x06
,
0xfe
,
0x2d
,
0x9b
,
0xe4
,
0x18
,
0xfe
,
0x0d
,
0x9e
,
0x92
,
0x70
,
0x4f
,
0xae
,
0xce
,
0xfa
,
0x03
,
0x4d
,
0x59
,
0x8d
,
0xe6
,
0x06
,
0xb9
,
0x0f
,
0xc0
,
0xe2
,
0x78
,
0x85
,
0x6c
,
0x83
,
0x3f
,
0xbc
,
0xbb
,
0x1a
,
0x8c
,
0xb4
,
0x64
,
0x0d
,
0x6a
,
0x0c
,
0xf2
,
0x23
,
0x00
,
0x4f
,
0xe5
,
0xef
,
0x0f
,
0x34
,
0x3f
,
0x35
,
0x5a
,
0x40
,
0xfc
,
0x5d
,
0x68
,
0x2e
,
0xd0
,
0x44
,
0x5a
,
0x4b
,
0xd3
,
0x63
,
0x95
,
0x7f
,
0x30
,
0xd2
,
0xfa
,
0x34
,
0x68
,
0x09
,
0x09
,
0x8f
,
0xa0
,
0xbd
,
0x22
,
0x50
,
0xc7
,
0xfc
,
0x78
,
0xc4
,
0xc6
,
0x68
,
0x9e
,
0x2b
,
0x42
,
0x7e
,
0x07
,
0x5c
,
0xcd
,
0xd0
,
0x9f
,
0x13
,
0xd9
,
0x85
,
0x26
,
0x9a
,
0xe3
,
0x39
,
0x9b
,
0xa2
,
0x7d
,
0xae
,
0x0c
,
0x85
,
0x5d
,
0xf0
,
0xb5
,
0x43
,
0xc9
,
0x06
,
0x54
,
0x12
,
0xc9
,
0x64
,
0x9a
,
0x98
,
0xdc
,
0xc6
,
0xf2
,
0xb7
,
0xa1
,
0x71
,
0x1c
,
0x42
,
0x5f
,
0x0e
,
0x25
,
0x3b
,
0x50
,
0xcb
,
0x24
,
0x93
,
0x79
,
0x66
,
0x73
,
0x5b
,
0x2b
,
0x3c
,
0x80
,
0x8d
,
0x46
,
0x3c
,
0x1c
,
0xe6
,
0xb4
,
0x3c
,
0x00
,
0x67
,
0x8c
,
0x92
,
0x2d
,
0xf4
,
0xfb
,
0x10
,
0x25
,
0xd6
,
0x45
,
0x32
,
0x99
,
0xf0
,
0x78
,
0x6c
,
0x64
,
0xf9
,
0x09
,
0xbc
,
0x29
,
0x4a
,
0xb6
,
0x52
,
0xef
,
0xa3
,
0xda
,
0xe1
,
0xff
,
0xb0
,
0xa0
,
0x5e
,
0xa0
,
0x47
,
0xa5
,
0x4e
,
0xf0
,
0x22
,
0xc5
,
0x30
,
0xc0
,
0x33
,
0x94
,
0x8c
,
0x6a
,
0x47
,
0xf8
,
0xc1
,
0x81
,
0x66
,
0x49
,
0x1e
,
0x95
,
0x3a
,
0xc3
,
0x9b
,
0x1c
,
0xa3
,
0x74
,
0xac
,
0xef
,
0x39
,
0xb4
,
0x08
,
0x11
,
0x1f
,
0x1a
,
0x83
,
0x44
,
0xbe
,
0x43
,
0x71
,
0xc9
,
0xe3
,
0x08
,
0xcf
,
0xf3
,
0xa9
,
0xbe
,
0xe7
,
0xd1
,
0x32
,
0x44
,
0x42
,
0x68
,
0x8d
,
0x32
,
0xf9
,
0x0c
,
0x03
,
0xec
,
0xbf
,
0x32
,
0x05
,
0xcc
,
0x61
,
0x2a
,
0x26
,
0x11
,
0xc1
,
0x2c
,
0xa6
,
0x9c
,
0xc7
,
0x14
,
0xc5
,
0x2d
,
0x8f
,
0x70
,
0xf0
,
0x8f
,
0x25
,
0xb0
,
0x84
,
0xa9
,
0x98
,
0x4c
,
0x44
,
0x8b
,
0x98
,
0xaa
,
0x31
,
0xe2
,
0xc1
,
0x92
,
0xc0
,
0x8b
,
0xf7
,
0x59
,
0x8c
,
0xba
,
0xe3
,
0x0e
,
0x9d
,
0x98
,
0xe4
,
0x09
,
0x89
,
0x29
,
0x63
,
0x24
,
0x80
,
0x35
,
0x81
,
0x37
,
0xcf
,
0x8b
,
0x14
,
0x75
,
0xc5
,
0x3d
,
0x3a
,
0x33
,
0x54
,
0x05
,
0x26
,
0x71
,
0x14
,
0x26
,
0x68
,
0x1a
,
0xd9
,
0x9c
,
0x8e
,
0x5e
,
0x0e
,
0xd3
,
0x69
,
0x80
,
0xc9
,
0x6f
,
0x50
,
0x17
,
0x98
,
0xa5
,
0x49
,
0x9c
,
0xa1
,
0x2d
,
0x64
,
0x7b
,
0xde
,
0x7a
,
0x06
,
0xa6
,
0xff
,
0xd3
,
0x82
,
0xe6
,
0xe2
,
0x30
,
0xac
,
0x83
,
0xcb
,
0xf5
,
0x18
,
0xe4
,
0xe5
,
0xe7
,
0xc6
,
0x9d
,
0xf3
,
0x80
,
0xf0
,
0xa3
,
0x03
,
0xed
,
0xd5
,
0x66
,
0xd8
,
0x06
,
0x9f
,
0xeb
,
0x36
,
0x30
,
0xf4
,
0x8d
,
0x15
,
0x4e
,
0xc0
,
0x91
,
0xb3
,
0xaa
,
0xf5
,
0x59
,
0x61
,
0xa7
,
0x69
,
0x18
,
0xe8
,
0x72
,
0x6b
,
0x54
,
0xf1
,
0x64
,
0xc4
,
0x09
,
0x78
,
0x72
,
0xc1
,
0x5a
,
0x9f
,
0x15
,
0x76
,
0x99
,
0xc7
,
0x91
,
0xa6
,
0xdb
,
0x9f
,
0x15
,
0xc6
,
0xc4
,
0x30
,
0xf1
,
0x2a
,
0xad
,
0xb2
,
0xc2
,
0xd4
,
0xb9
,
0xd0
,
0xb7
,
0x25
,
0x3d
,
0xa0
,
0xfa
,
0xac
,
0x30
,
0x26
,
0xc6
,
0x99
,
0x6e
,
0xae
,
0x06
,
0xd5
,
0x67
,
0x55
,
0x37
,
0xf5
,
0x3f
,
0x72
,
0x93
,
0xbe
,
0x7d
,
0xb3
,
0x61
,
0x95
,
0x62
,
0x80
,
0x3c
,
0x96
,
0xb9
,
0x5e
,
0x0f
,
0xa2
,
0xe1
,
0x1a
,
0x06
,
0x6b
,
0xa6
,
0x6e
,
0xc6
,
0x9a
,
0xe1
,
0x62
,
0x18
,
0xd4
,
0x17
,
0xb8
,
0x18
,
0x86
,
0xef
,
0x4d
,
0x4a
,
0xb4
,
0x6e
,
0xad
,
0x44
,
0xfb
,
0x16
,
0x4a
,
0x2c
,
0xdf
,
0x81
,
0x12
,
0x9d
,
0xbf
,
0x53
,
0x5c
,
0xd8
,
0xa4
,
0x18
,
0x21
,
0x4f
,
0xa5
,
0x99
,
0xe3
,
0xd3
,
0x64
,
0xfc
,
0xd0
,
0x84
,
0x3a
,
0x8f
,
0xa2
,
0x7b
,
0x5d
,
0x89
,
0x12
,
0xd6
,
0xdf
,
0xa6
,
0x28
,
0xb2
,
0x7f
,
0xda
,
0x65
,
0xbf
,
0x03
,
0x6b
,
0x9e
,
0x50
,
0xf7
,
0x11
,
0x13
,
0x5a
,
0x7d
,
0x82
,
0x09
,
0xf5
,
0xbe
,
0x6e
,
0x42
,
0xfd
,
0xfb
,
0x13
,
0x3a
,
0xe1
,
0xde
,
0x34
,
0xe1
,
0x01
,
0x4f
,
0x24
,
0x79
,
0x0c
,
0xce
,
0x88
,
0x27
,
0x6a
,
0x81
,
0x96
,
0x2a
,
0x61
,
0xfb
,
0xff
,
0x1c
,
0x45
,
0xf1
,
0x4d
,
0xab
,
0x1f
,
0x76
,
0x61
,
0x4b
,
0x27
,
0x3c
,
0x9e
,
0x7f
,
0x4f
,
0x0d
,
0xd5
,
0x31
,
0x7e
,
0x13
,
0x96
,
0x75
,
0xe1
,
0x47
,
0x7c
,
0x74
,
0xcc
,
0x04
,
0x1b
,
0x27
,
0x3c
,
0xe5
,
0x99
,
0x24
,
0xbf
,
0x82
,
0x37
,
0xe1
,
0x99
,
0x5a
,
0xac
,
0xd5
,
0xcf
,
0x4b
,
0x43
,
0xfb
,
0xff
,
0x41
,
0x53
,
0x03
,
0x6f
,
0x52
,
0x29
,
0x51
,
0x28
,
0x15
,
0xfa
,
0xab
,
0xb0
,
0x62
,
0xfe
,
0x75
,
0x4c
,
0xd8
,
0x86
,
0x75
,
0x4d
,
0xfc
,
0x9c
,
0x4f
,
0x2e
,
0x98
,
0x60
,
0xd3
,
0xf0
,
0x3b
,
0x68
,
0x5c
,
0x68
,
0x90
,
0x4f
,
0x53
,
0xe4
,
0x10
,
0x93
,
0x84
,
0x0d
,
0x91
,
0x6c
,
0xc2
,
0x32
,
0x0f
,
0x4d
,
0x6b
,
0xe0
,
0xbf
,
0x5c
,
0x4a
,
0x14
,
0x6a
,
0x3a
,
0xc3
,
0x4d
,
0xd8
,
0xb0
,
0x3f
,
0x2e
,
0xb6
,
0xc8
,
0x65
,
0xc7
,
0x8c
,
0x0b
,
0xb3
,
0x10
,
0xe6
,
0xc1
,
0x45
,
0xe5
,
0xda
,
0xd7
,
0x94
,
0xeb
,
0x7f
,
0x9e
,
0xab
,
0x39
,
0x72
,
0x86
,
0x59
,
0xc6
,
0xc6
,
0x48
,
0xf6
,
0x60
,
0x9d
,
0xc7
,
0x96
,
0xd9
,
0x05
,
0xe3
,
0xa5
,
0xbf
,
0xeb
,
0xa7
,
0xbb
,
0x00
,
0xf9
,
0xdc
,
0xf6
,
0xc3
,
0xd3
,
0xe8
,
0x96
,
0x3b
,
0xf3
,
0x2b
,
0xc2
,
0x2e
,
0x8a
,
0x65
,
0x70
,
0x75
,
0xa2
,
0xdd
,
0x7b
,
0x13
,
0x1d
,
0xbe
,
0x5e
,
0xa4
,
0x7f
,
0xea
,
0x38
,
0x8a
,
0x00
,
0xf2
,
0x68
,
0xba
,
0xb3
,
0x14
,
0xc5
,
0xff
,
0x17
,
0x76
,
0x96
,
0xfe
,
0xd9
,
0x0f
,
0xa7
,
0x7b
,
0x00
,
0xa6
,
0x6f
,
0x07
,
0xf1
,
0x65
,
0xf2
,
0xc8
,
0x5d
,
0xfa
,
0x16
,
0x3c
,
0x25
,
0x00
,
0xa5
,
0xc8
,
0xf2
,
0xed
,
0x75
,
0xef
,
0x19
,
0xd4
,
0xa6
,
0x10
,
0x59
,
0x85
,
0xf2
,
0x39
,
0x66
,
0x26
,
0xf9
,
0x65
,
0xbe
,
0xcb
,
0x94
,
0xc4
,
0xdf
,
0x97
,
0x76
,
0x99
,
0xfe
,
0x73
,
0x12
,
0x4b
,
0x51
,
0x98
,
0xa7
,
0x3a
,
0xaa
,
0x3a
,
0xf4
,
0x08
,
0x99
,
0x8a
,
0x73
,
0xe3
,
0x85
,
0xfd
,
0xdc
,
0xf2
,
0x3f
,
0x42
,
0xad
,
0xf6
,
0xc3
,
0x1f
,
0xd0
,
0x98
,
0x43
,
0x64
,
0x13
,
0xaa
,
0xd7
,
0x58
,
0xd8
,
0x9c
,
0xea
,
0xa8
,
0x75
,
0xb2
,
0x4b
,
0x0a
,
0x9a
,
0xb4
,
0x8a
,
0x9a
,
0x54
,
0x0b
,
0x6a
,
0x9c
,
0xd3
,
0x64
,
0x8a
,
0x9d
,
0x78
,
0xe8
,
0x16
,
0xb2
,
0x8c
,
0x8d
,
0xf1
,
0x97
,
0xfb
,
0xa7
,
0x13
,
0xbe
,
0x84
,
0xfa
,
0x6c
,
0xc7
,
0x98
,
0xca
,
0x13
,
0xb3
,
0x6c
,
0x14
,
0xb1
,
0x81
,
0x1e
,
0x9d
,
0x06
,
0x9d
,
0x98
,
0x3b
,
0x55
,
0xa8
,
0x94
,
0x76
,
0xac
,
0xa3
,
0x9b
,
0xcf
,
0x5a
,
0x6a
,
0x71
,
0x4d
,
0x8d
,
0x4c
,
0x96
,
0xec
,
0xcc
,
0x54
,
0xe4
,
0xdf
,
0xe1
,
0x2e
,
0x7c
,
0xa9
,
0xb6
,
0xdb
,
0xdb
,
0xba
,
0xf6
,
0x93
,
0x8a
,
0xfe
,
0x28
,
0xef
,
0x9e
,
0x94
,
0x15
,
0x93
,
0x84
,
0x8d
,
0x74
,
0xeb
,
0xb4
,
0xe8
,
0xcc
,
0x3c
,
0xac
,
0x43
,
0xcd
,
0x7c
,
0xfe
,
0x0a
,
0x00
,
0x00
,
0xff
,
0xff
,
0x68
,
0xa7
,
0x77
,
0x2e
,
0xa4
,
0x07
,
0x00
,
0x00
,
0x9f
,
0x7b
,
0xf0
,
0xa6
,
0xde
,
0xe9
,
0x1c
,
0x68
,
0xee
,
0xc3
,
0x9a
,
0xfe
,
0x58
,
0x1f
,
0x7d
,
0x0a
,
0x00
,
0x00
,
0xff
,
0xff
,
0xb2
,
0x03
,
0x83
,
0x52
,
0xbc
,
0x07
,
0x00
,
0x00
,
}
}
// Reference imports to suppress errors if they are not otherwise used.
// Reference imports to suppress errors if they are not otherwise used.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment