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
ce15f935
Commit
ce15f935
authored
Jan 28, 2021
by
madengji
Committed by
vipwzw
Sep 18, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add role
parent
6e5bf601
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
283 additions
and
241 deletions
+283
-241
authorize.go
plugin/dapp/mix/executor/authorize.go
+1
-1
committree.go
plugin/dapp/mix/executor/committree.go
+15
-15
config.go
plugin/dapp/mix/executor/config.go
+4
-4
query.go
plugin/dapp/mix/executor/query.go
+4
-4
mix.proto
plugin/dapp/mix/proto/mix.proto
+22
-16
mix.pb.go
plugin/dapp/mix/types/mix.pb.go
+220
-188
mixbizdb.go
plugin/dapp/mix/wallet/mixbizdb.go
+7
-3
proof.go
plugin/dapp/mix/wallet/proof.go
+10
-10
No files found.
plugin/dapp/mix/executor/authorize.go
View file @
ce15f935
...
@@ -38,7 +38,7 @@ func (a *action) authParamCheck(input *mixTy.AuthorizePublicInput) error {
...
@@ -38,7 +38,7 @@ func (a *action) authParamCheck(input *mixTy.AuthorizePublicInput) error {
//authorize pubkey hash should be configured already
//authorize pubkey hash should be configured already
var
found
bool
var
found
bool
for
_
,
k
:=
range
authPubKeys
.
Data
{
for
_
,
k
:=
range
authPubKeys
.
Pks
{
if
input
.
AuthorizePubKey
==
k
{
if
input
.
AuthorizePubKey
==
k
{
found
=
true
found
=
true
break
break
...
...
plugin/dapp/mix/executor/committree.go
View file @
ce15f935
...
@@ -87,7 +87,7 @@ func getNewTree() *merkletree.Tree {
...
@@ -87,7 +87,7 @@ func getNewTree() *merkletree.Tree {
func
calcTreeRoot
(
leaves
*
mixTy
.
CommitTreeLeaves
)
[]
byte
{
func
calcTreeRoot
(
leaves
*
mixTy
.
CommitTreeLeaves
)
[]
byte
{
tree
:=
getNewTree
()
tree
:=
getNewTree
()
for
_
,
leaf
:=
range
leaves
.
Data
{
for
_
,
leaf
:=
range
leaves
.
Leaves
{
tree
.
Push
(
leaf
)
tree
.
Push
(
leaf
)
}
}
return
tree
.
Root
()
return
tree
.
Root
()
...
@@ -100,8 +100,8 @@ func getNewCommitLeaves() (*mixTy.CommitTreeLeaves, *mixTy.CommitTreeRoots) {
...
@@ -100,8 +100,8 @@ func getNewCommitLeaves() (*mixTy.CommitTreeLeaves, *mixTy.CommitTreeRoots) {
//第一个叶子节点都是固定的"00"字节
//第一个叶子节点都是固定的"00"字节
leaf
:=
[]
byte
(
"00"
)
leaf
:=
[]
byte
(
"00"
)
leaves
.
Data
=
append
(
leaves
.
Data
,
leaf
)
leaves
.
Leaves
=
append
(
leaves
.
Leaves
,
leaf
)
roots
.
Data
=
append
(
roots
.
Data
,
calcTreeRoot
(
leaves
))
roots
.
Roots
=
append
(
roots
.
Roots
,
calcTreeRoot
(
leaves
))
return
leaves
,
roots
return
leaves
,
roots
}
}
...
@@ -109,8 +109,8 @@ func getNewCommitLeaves() (*mixTy.CommitTreeLeaves, *mixTy.CommitTreeRoots) {
...
@@ -109,8 +109,8 @@ func getNewCommitLeaves() (*mixTy.CommitTreeLeaves, *mixTy.CommitTreeRoots) {
func
initNewLeaves
(
leaf
[][]
byte
)
*
types
.
Receipt
{
func
initNewLeaves
(
leaf
[][]
byte
)
*
types
.
Receipt
{
leaves
,
roots
:=
getNewCommitLeaves
()
leaves
,
roots
:=
getNewCommitLeaves
()
if
len
(
leaf
)
>
0
{
if
len
(
leaf
)
>
0
{
leaves
.
Data
=
append
(
leaves
.
Data
,
leaf
...
)
leaves
.
Leaves
=
append
(
leaves
.
Leaves
,
leaf
...
)
roots
.
Data
=
append
(
roots
.
Data
,
calcTreeRoot
(
leaves
))
roots
.
Roots
=
append
(
roots
.
Roots
,
calcTreeRoot
(
leaves
))
}
}
return
makeCurrentTreeReceipt
(
leaves
,
roots
)
return
makeCurrentTreeReceipt
(
leaves
,
roots
)
...
@@ -127,7 +127,7 @@ func archiveRoots(db dbm.KV, root []byte, leaves *mixTy.CommitTreeLeaves) (*type
...
@@ -127,7 +127,7 @@ func archiveRoots(db dbm.KV, root []byte, leaves *mixTy.CommitTreeLeaves) (*type
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
archiveRoots
.
Data
=
append
(
archiveRoots
.
Data
,
root
)
archiveRoots
.
Roots
=
append
(
archiveRoots
.
Roots
,
root
)
receiptArch
:=
makeTreeArchiveRootsReceipt
(
archiveRoots
)
receiptArch
:=
makeTreeArchiveRootsReceipt
(
archiveRoots
)
return
mergeReceipt
(
receiptRootLeaves
,
receiptArch
),
nil
return
mergeReceipt
(
receiptRootLeaves
,
receiptArch
),
nil
}
}
...
@@ -158,13 +158,13 @@ func pushTree(db dbm.KV, leaf [][]byte) (*types.Receipt, error) {
...
@@ -158,13 +158,13 @@ func pushTree(db dbm.KV, leaf [][]byte) (*types.Receipt, error) {
return
nil
,
err
return
nil
,
err
}
}
leaves
.
Data
=
append
(
leaves
.
Data
,
leaf
...
)
leaves
.
Leaves
=
append
(
leaves
.
Leaves
,
leaf
...
)
currentRoot
:=
calcTreeRoot
(
leaves
)
currentRoot
:=
calcTreeRoot
(
leaves
)
roots
.
Data
=
append
(
roots
.
Data
,
currentRoot
)
roots
.
Roots
=
append
(
roots
.
Roots
,
currentRoot
)
r
:=
makeCurrentTreeReceipt
(
leaves
,
roots
)
r
:=
makeCurrentTreeReceipt
(
leaves
,
roots
)
//归档
//归档
if
len
(
leaves
.
Data
)
>=
mixTy
.
MaxTreeLeaves
{
if
len
(
leaves
.
Leaves
)
>=
mixTy
.
MaxTreeLeaves
{
receiptArch
,
err
:=
archiveRoots
(
db
,
currentRoot
,
leaves
)
receiptArch
,
err
:=
archiveRoots
(
db
,
currentRoot
,
leaves
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
...
@@ -184,12 +184,12 @@ func checkTreeRootHashExist(db dbm.KV, hash []byte) bool {
...
@@ -184,12 +184,12 @@ func checkTreeRootHashExist(db dbm.KV, hash []byte) bool {
var
roots
[][]
byte
var
roots
[][]
byte
currentRoots
,
err
:=
getCurrentCommitTreeRoots
(
db
)
currentRoots
,
err
:=
getCurrentCommitTreeRoots
(
db
)
if
err
==
nil
{
if
err
==
nil
{
roots
=
append
(
roots
,
currentRoots
.
Data
...
)
roots
=
append
(
roots
,
currentRoots
.
Roots
...
)
}
}
archiveRoots
,
err
:=
getArchiveCommitRoots
(
db
)
archiveRoots
,
err
:=
getArchiveCommitRoots
(
db
)
if
err
==
nil
{
if
err
==
nil
{
roots
=
append
(
roots
,
archiveRoots
.
Data
...
)
roots
=
append
(
roots
,
archiveRoots
.
Roots
...
)
}
}
for
_
,
k
:=
range
roots
{
for
_
,
k
:=
range
roots
{
...
@@ -250,7 +250,7 @@ func CalcTreeProve(db dbm.KV, rootHash, leaf string) (*mixTy.CommitTreeProve, er
...
@@ -250,7 +250,7 @@ func CalcTreeProve(db dbm.KV, rootHash, leaf string) (*mixTy.CommitTreeProve, er
}
}
leaves
,
err
:=
getCurrentCommitTreeLeaves
(
db
)
leaves
,
err
:=
getCurrentCommitTreeLeaves
(
db
)
if
err
==
nil
{
if
err
==
nil
{
p
,
err
:=
getProveData
(
transferFr2Bytes
(
leaf
),
leaves
.
Data
)
p
,
err
:=
getProveData
(
transferFr2Bytes
(
leaf
),
leaves
.
Leaves
)
if
err
==
nil
{
if
err
==
nil
{
return
p
,
nil
return
p
,
nil
}
}
...
@@ -261,7 +261,7 @@ func CalcTreeProve(db dbm.KV, rootHash, leaf string) (*mixTy.CommitTreeProve, er
...
@@ -261,7 +261,7 @@ func CalcTreeProve(db dbm.KV, rootHash, leaf string) (*mixTy.CommitTreeProve, er
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
p
,
err
:=
getProveData
(
transferFr2Bytes
(
leaf
),
leaves
.
Data
)
p
,
err
:=
getProveData
(
transferFr2Bytes
(
leaf
),
leaves
.
Leaves
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
errors
.
Wrapf
(
err
,
"hash=%s,leaf=%s"
,
rootHash
,
leaf
)
return
nil
,
errors
.
Wrapf
(
err
,
"hash=%s,leaf=%s"
,
rootHash
,
leaf
)
}
}
...
@@ -270,10 +270,10 @@ func CalcTreeProve(db dbm.KV, rootHash, leaf string) (*mixTy.CommitTreeProve, er
...
@@ -270,10 +270,10 @@ func CalcTreeProve(db dbm.KV, rootHash, leaf string) (*mixTy.CommitTreeProve, er
roots
,
err
:=
getArchiveCommitRoots
(
db
)
roots
,
err
:=
getArchiveCommitRoots
(
db
)
if
err
==
nil
{
if
err
==
nil
{
for
_
,
root
:=
range
roots
.
Data
{
for
_
,
root
:=
range
roots
.
Roots
{
leaves
,
err
:=
getCommitRootLeaves
(
db
,
transferFr2String
(
root
))
leaves
,
err
:=
getCommitRootLeaves
(
db
,
transferFr2String
(
root
))
if
err
==
nil
{
if
err
==
nil
{
p
,
err
:=
getProveData
(
transferFr2Bytes
(
leaf
),
leaves
.
Data
)
p
,
err
:=
getProveData
(
transferFr2Bytes
(
leaf
),
leaves
.
Leaves
)
if
err
==
nil
{
if
err
==
nil
{
return
p
,
nil
return
p
,
nil
}
}
...
...
plugin/dapp/mix/executor/config.go
View file @
ce15f935
...
@@ -129,14 +129,14 @@ func (a *action) ConfigAddAuthPubKey(key string) (*types.Receipt, error) {
...
@@ -129,14 +129,14 @@ func (a *action) ConfigAddAuthPubKey(key string) (*types.Receipt, error) {
keys
,
err
:=
a
.
getAuthKeys
()
keys
,
err
:=
a
.
getAuthKeys
()
if
isNotFound
(
errors
.
Cause
(
err
))
{
if
isNotFound
(
errors
.
Cause
(
err
))
{
keys
:=
&
mixTy
.
AuthPubKeys
{}
keys
:=
&
mixTy
.
AuthPubKeys
{}
keys
.
Data
=
append
(
keys
.
Data
,
key
)
keys
.
Pks
=
append
(
keys
.
Pks
,
key
)
return
makeConfigAuthKeyReceipt
(
keys
),
nil
return
makeConfigAuthKeyReceipt
(
keys
),
nil
}
}
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
keys
.
Data
=
append
(
keys
.
Data
,
key
)
keys
.
Pks
=
append
(
keys
.
Pks
,
key
)
return
makeConfigAuthKeyReceipt
(
keys
),
nil
return
makeConfigAuthKeyReceipt
(
keys
),
nil
}
}
...
@@ -147,11 +147,11 @@ func (a *action) ConfigDeleteAuthPubKey(key string) (*types.Receipt, error) {
...
@@ -147,11 +147,11 @@ func (a *action) ConfigDeleteAuthPubKey(key string) (*types.Receipt, error) {
}
}
var
newKeys
mixTy
.
AuthPubKeys
var
newKeys
mixTy
.
AuthPubKeys
for
_
,
v
:=
range
keys
.
Data
{
for
_
,
v
:=
range
keys
.
Pks
{
if
key
==
v
{
if
key
==
v
{
continue
continue
}
}
newKeys
.
Data
=
append
(
newKeys
.
Data
,
v
)
newKeys
.
Pks
=
append
(
newKeys
.
Pks
,
v
)
}
}
return
makeConfigAuthKeyReceipt
(
&
newKeys
),
nil
return
makeConfigAuthKeyReceipt
(
&
newKeys
),
nil
...
...
plugin/dapp/mix/executor/query.go
View file @
ce15f935
...
@@ -34,8 +34,8 @@ func (m *Mix) Query_GetLeavesList(in *mixTy.TreeInfoReq) (types.Message, error)
...
@@ -34,8 +34,8 @@ func (m *Mix) Query_GetLeavesList(in *mixTy.TreeInfoReq) (types.Message, error)
return
nil
,
err
return
nil
,
err
}
}
var
resp
mixTy
.
TreeListResp
var
resp
mixTy
.
TreeListResp
for
_
,
k
:=
range
leaves
.
Data
{
for
_
,
k
:=
range
leaves
.
Leaves
{
resp
.
Datas
=
append
(
resp
.
Data
s
,
transferFr2String
(
k
))
resp
.
Leaves
=
append
(
resp
.
Leave
s
,
transferFr2String
(
k
))
}
}
return
&
resp
,
nil
return
&
resp
,
nil
...
@@ -49,8 +49,8 @@ func (m *Mix) Query_GetRootList(in *types.ReqNil) (types.Message, error) {
...
@@ -49,8 +49,8 @@ func (m *Mix) Query_GetRootList(in *types.ReqNil) (types.Message, error) {
return
nil
,
err
return
nil
,
err
}
}
var
resp
mixTy
.
TreeListResp
var
resp
mixTy
.
TreeListResp
for
_
,
k
:=
range
roots
.
Data
{
for
_
,
k
:=
range
roots
.
Roots
{
resp
.
Datas
=
append
(
resp
.
Data
s
,
transferFr2String
(
k
))
resp
.
Leaves
=
append
(
resp
.
Leave
s
,
transferFr2String
(
k
))
}
}
return
&
resp
,
nil
return
&
resp
,
nil
...
...
plugin/dapp/mix/proto/mix.proto
View file @
ce15f935
...
@@ -27,7 +27,7 @@ message ZkVerifyKeys{
...
@@ -27,7 +27,7 @@ message ZkVerifyKeys{
}
}
message
AuthPubKeys
{
message
AuthPubKeys
{
repeated
string
data
=
1
;
repeated
string
pks
=
1
;
}
}
message
PaymentKey
{
message
PaymentKey
{
...
@@ -167,11 +167,11 @@ message ExistValue {
...
@@ -167,11 +167,11 @@ message ExistValue {
}
}
message
CommitTreeLeaves
{
message
CommitTreeLeaves
{
repeated
bytes
data
=
1
;
repeated
bytes
leaves
=
1
;
}
}
message
CommitTreeRoots
{
message
CommitTreeRoots
{
repeated
bytes
data
=
1
;
repeated
bytes
roots
=
1
;
}
}
...
@@ -189,7 +189,7 @@ message TreeInfoReq{
...
@@ -189,7 +189,7 @@ message TreeInfoReq{
}
}
message
TreeListResp
{
message
TreeListResp
{
repeated
string
data
s
=
1
;
repeated
string
leave
s
=
1
;
}
}
// mix wallet part
// mix wallet part
...
@@ -289,8 +289,8 @@ message WithdrawProofResp{
...
@@ -289,8 +289,8 @@ message WithdrawProofResp{
string
authorizeSpendHash
=
3
;
string
authorizeSpendHash
=
3
;
string
noteHash
=
4
;
string
noteHash
=
4
;
string
spendPrivKey
=
5
;
string
spendPrivKey
=
5
;
uint32
spendFlag
=
6
;
string
spendFlag
=
6
;
uint32
authorizeFlag
=
7
;
string
authorizeFlag
=
7
;
TreePathProof
treeProof
=
8
;
TreePathProof
treeProof
=
8
;
}
}
...
@@ -306,7 +306,7 @@ message AuthProofResp{
...
@@ -306,7 +306,7 @@ message AuthProofResp{
string
authHash
=
4
;
string
authHash
=
4
;
string
authorizeSpendHash
=
5
;
string
authorizeSpendHash
=
5
;
string
noteHash
=
6
;
string
noteHash
=
6
;
uint32
spendFlag
=
7
;
string
spendFlag
=
7
;
TreePathProof
treeProof
=
8
;
TreePathProof
treeProof
=
8
;
}
}
...
@@ -331,8 +331,8 @@ message TransferInputProof{
...
@@ -331,8 +331,8 @@ message TransferInputProof{
string
authorizeSpendHash
=
3
;
string
authorizeSpendHash
=
3
;
string
noteHash
=
4
;
string
noteHash
=
4
;
string
spendPrivKey
=
5
;
string
spendPrivKey
=
5
;
uint32
spendFlag
=
6
;
string
spendFlag
=
6
;
uint32
authorizeFlag
=
7
;
string
authorizeFlag
=
7
;
TreePathProof
treeProof
=
8
;
TreePathProof
treeProof
=
8
;
ShieldAmount
shieldAmount
=
9
;
ShieldAmount
shieldAmount
=
9
;
string
amountRandom
=
10
;
string
amountRandom
=
10
;
...
@@ -372,14 +372,20 @@ enum NoteStatus{
...
@@ -372,14 +372,20 @@ enum NoteStatus{
USED
=
3
;
//已使用
USED
=
3
;
//已使用
}
}
enum
Role
{
SPENDER
=
0
;
RETURNER
=
1
;
AUTHORIZER
=
2
;
}
message
WalletIndexInfo
{
message
WalletIndexInfo
{
string
noteHash
=
1
;
string
noteHash
=
1
;
string
nullifier
=
2
;
string
nullifier
=
2
;
string
authorizeSpendHash
=
3
;
string
authorizeSpendHash
=
3
;
bool
isReturner
=
4
;
Role
role
=
4
;
string
account
=
5
;
//账户地址
string
account
=
5
;
//账户地址
NoteStatus
status
=
6
;
NoteStatus
status
=
6
;
SecretData
secret
=
7
;
SecretData
secret
=
7
;
}
}
...
...
plugin/dapp/mix/types/mix.pb.go
View file @
ce15f935
...
@@ -147,6 +147,34 @@ func (NoteStatus) EnumDescriptor() ([]byte, []int) {
...
@@ -147,6 +147,34 @@ func (NoteStatus) EnumDescriptor() ([]byte, []int) {
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
3
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
3
}
}
}
type
Role
int32
const
(
Role_SPENDER
Role
=
0
Role_RETURNER
Role
=
1
Role_AUTHORIZER
Role
=
2
)
var
Role_name
=
map
[
int32
]
string
{
0
:
"SPENDER"
,
1
:
"RETURNER"
,
2
:
"AUTHORIZER"
,
}
var
Role_value
=
map
[
string
]
int32
{
"SPENDER"
:
0
,
"RETURNER"
:
1
,
"AUTHORIZER"
:
2
,
}
func
(
x
Role
)
String
()
string
{
return
proto
.
EnumName
(
Role_name
,
int32
(
x
))
}
func
(
Role
)
EnumDescriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
4
}
}
type
MixWalletRescanStatus
int32
type
MixWalletRescanStatus
int32
const
(
const
(
...
@@ -172,7 +200,7 @@ func (x MixWalletRescanStatus) String() string {
...
@@ -172,7 +200,7 @@ func (x MixWalletRescanStatus) String() string {
}
}
func
(
MixWalletRescanStatus
)
EnumDescriptor
()
([]
byte
,
[]
int
)
{
func
(
MixWalletRescanStatus
)
EnumDescriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
4
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
5
}
}
}
type
ZkVerifyKey
struct
{
type
ZkVerifyKey
struct
{
...
@@ -262,7 +290,7 @@ func (m *ZkVerifyKeys) GetData() []*ZkVerifyKey {
...
@@ -262,7 +290,7 @@ func (m *ZkVerifyKeys) GetData() []*ZkVerifyKey {
}
}
type
AuthPubKeys
struct
{
type
AuthPubKeys
struct
{
Data
[]
string
`protobuf:"bytes,1,rep,name=data,proto3" json:"data
,omitempty"`
Pks
[]
string
`protobuf:"bytes,1,rep,name=pks,proto3" json:"pks
,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:"-"`
...
@@ -293,9 +321,9 @@ func (m *AuthPubKeys) XXX_DiscardUnknown() {
...
@@ -293,9 +321,9 @@ func (m *AuthPubKeys) XXX_DiscardUnknown() {
var
xxx_messageInfo_AuthPubKeys
proto
.
InternalMessageInfo
var
xxx_messageInfo_AuthPubKeys
proto
.
InternalMessageInfo
func
(
m
*
AuthPubKeys
)
Get
Data
()
[]
string
{
func
(
m
*
AuthPubKeys
)
Get
Pks
()
[]
string
{
if
m
!=
nil
{
if
m
!=
nil
{
return
m
.
Data
return
m
.
Pks
}
}
return
nil
return
nil
}
}
...
@@ -1288,7 +1316,7 @@ func (m *ExistValue) GetData() bool {
...
@@ -1288,7 +1316,7 @@ func (m *ExistValue) GetData() bool {
}
}
type
CommitTreeLeaves
struct
{
type
CommitTreeLeaves
struct
{
Data
[][]
byte
`protobuf:"bytes,1,rep,name=data,proto3" json:"data
,omitempty"`
Leaves
[][]
byte
`protobuf:"bytes,1,rep,name=leaves,proto3" json:"leaves
,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:"-"`
...
@@ -1319,15 +1347,15 @@ func (m *CommitTreeLeaves) XXX_DiscardUnknown() {
...
@@ -1319,15 +1347,15 @@ func (m *CommitTreeLeaves) XXX_DiscardUnknown() {
var
xxx_messageInfo_CommitTreeLeaves
proto
.
InternalMessageInfo
var
xxx_messageInfo_CommitTreeLeaves
proto
.
InternalMessageInfo
func
(
m
*
CommitTreeLeaves
)
Get
Data
()
[][]
byte
{
func
(
m
*
CommitTreeLeaves
)
Get
Leaves
()
[][]
byte
{
if
m
!=
nil
{
if
m
!=
nil
{
return
m
.
Data
return
m
.
Leaves
}
}
return
nil
return
nil
}
}
type
CommitTreeRoots
struct
{
type
CommitTreeRoots
struct
{
Data
[][]
byte
`protobuf:"bytes,1,rep,name=data,proto3" json:"data
,omitempty"`
Roots
[][]
byte
`protobuf:"bytes,1,rep,name=roots,proto3" json:"roots
,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:"-"`
...
@@ -1358,9 +1386,9 @@ func (m *CommitTreeRoots) XXX_DiscardUnknown() {
...
@@ -1358,9 +1386,9 @@ func (m *CommitTreeRoots) XXX_DiscardUnknown() {
var
xxx_messageInfo_CommitTreeRoots
proto
.
InternalMessageInfo
var
xxx_messageInfo_CommitTreeRoots
proto
.
InternalMessageInfo
func
(
m
*
CommitTreeRoots
)
Get
Data
()
[][]
byte
{
func
(
m
*
CommitTreeRoots
)
Get
Roots
()
[][]
byte
{
if
m
!=
nil
{
if
m
!=
nil
{
return
m
.
Data
return
m
.
Roots
}
}
return
nil
return
nil
}
}
...
@@ -1484,7 +1512,7 @@ func (m *TreeInfoReq) GetLeafHash() string {
...
@@ -1484,7 +1512,7 @@ func (m *TreeInfoReq) GetLeafHash() string {
}
}
type
TreeListResp
struct
{
type
TreeListResp
struct
{
Datas
[]
string
`protobuf:"bytes,1,rep,name=datas,proto3" json:"data
s,omitempty"`
Leaves
[]
string
`protobuf:"bytes,1,rep,name=leaves,proto3" json:"leave
s,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:"-"`
...
@@ -1515,9 +1543,9 @@ func (m *TreeListResp) XXX_DiscardUnknown() {
...
@@ -1515,9 +1543,9 @@ func (m *TreeListResp) XXX_DiscardUnknown() {
var
xxx_messageInfo_TreeListResp
proto
.
InternalMessageInfo
var
xxx_messageInfo_TreeListResp
proto
.
InternalMessageInfo
func
(
m
*
TreeListResp
)
Get
Data
s
()
[]
string
{
func
(
m
*
TreeListResp
)
Get
Leave
s
()
[]
string
{
if
m
!=
nil
{
if
m
!=
nil
{
return
m
.
Data
s
return
m
.
Leave
s
}
}
return
nil
return
nil
}
}
...
@@ -2250,8 +2278,8 @@ type WithdrawProofResp struct {
...
@@ -2250,8 +2278,8 @@ type WithdrawProofResp struct {
AuthorizeSpendHash
string
`protobuf:"bytes,3,opt,name=authorizeSpendHash,proto3" json:"authorizeSpendHash,omitempty"`
AuthorizeSpendHash
string
`protobuf:"bytes,3,opt,name=authorizeSpendHash,proto3" json:"authorizeSpendHash,omitempty"`
NoteHash
string
`protobuf:"bytes,4,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
NoteHash
string
`protobuf:"bytes,4,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
SpendPrivKey
string
`protobuf:"bytes,5,opt,name=spendPrivKey,proto3" json:"spendPrivKey,omitempty"`
SpendPrivKey
string
`protobuf:"bytes,5,opt,name=spendPrivKey,proto3" json:"spendPrivKey,omitempty"`
SpendFlag
uint32
`protobuf:"varint
,6,opt,name=spendFlag,proto3" json:"spendFlag,omitempty"`
SpendFlag
string
`protobuf:"bytes
,6,opt,name=spendFlag,proto3" json:"spendFlag,omitempty"`
AuthorizeFlag
uint32
`protobuf:"varint
,7,opt,name=authorizeFlag,proto3" json:"authorizeFlag,omitempty"`
AuthorizeFlag
string
`protobuf:"bytes
,7,opt,name=authorizeFlag,proto3" json:"authorizeFlag,omitempty"`
TreeProof
*
TreePathProof
`protobuf:"bytes,8,opt,name=treeProof,proto3" json:"treeProof,omitempty"`
TreeProof
*
TreePathProof
`protobuf:"bytes,8,opt,name=treeProof,proto3" json:"treeProof,omitempty"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
...
@@ -2318,18 +2346,18 @@ func (m *WithdrawProofResp) GetSpendPrivKey() string {
...
@@ -2318,18 +2346,18 @@ func (m *WithdrawProofResp) GetSpendPrivKey() string {
return
""
return
""
}
}
func
(
m
*
WithdrawProofResp
)
GetSpendFlag
()
uint32
{
func
(
m
*
WithdrawProofResp
)
GetSpendFlag
()
string
{
if
m
!=
nil
{
if
m
!=
nil
{
return
m
.
SpendFlag
return
m
.
SpendFlag
}
}
return
0
return
""
}
}
func
(
m
*
WithdrawProofResp
)
GetAuthorizeFlag
()
uint32
{
func
(
m
*
WithdrawProofResp
)
GetAuthorizeFlag
()
string
{
if
m
!=
nil
{
if
m
!=
nil
{
return
m
.
AuthorizeFlag
return
m
.
AuthorizeFlag
}
}
return
0
return
""
}
}
func
(
m
*
WithdrawProofResp
)
GetTreeProof
()
*
TreePathProof
{
func
(
m
*
WithdrawProofResp
)
GetTreeProof
()
*
TreePathProof
{
...
@@ -2393,7 +2421,7 @@ type AuthProofResp struct {
...
@@ -2393,7 +2421,7 @@ type AuthProofResp struct {
AuthHash
string
`protobuf:"bytes,4,opt,name=authHash,proto3" json:"authHash,omitempty"`
AuthHash
string
`protobuf:"bytes,4,opt,name=authHash,proto3" json:"authHash,omitempty"`
AuthorizeSpendHash
string
`protobuf:"bytes,5,opt,name=authorizeSpendHash,proto3" json:"authorizeSpendHash,omitempty"`
AuthorizeSpendHash
string
`protobuf:"bytes,5,opt,name=authorizeSpendHash,proto3" json:"authorizeSpendHash,omitempty"`
NoteHash
string
`protobuf:"bytes,6,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
NoteHash
string
`protobuf:"bytes,6,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
SpendFlag
uint32
`protobuf:"varint
,7,opt,name=spendFlag,proto3" json:"spendFlag,omitempty"`
SpendFlag
string
`protobuf:"bytes
,7,opt,name=spendFlag,proto3" json:"spendFlag,omitempty"`
TreeProof
*
TreePathProof
`protobuf:"bytes,8,opt,name=treeProof,proto3" json:"treeProof,omitempty"`
TreeProof
*
TreePathProof
`protobuf:"bytes,8,opt,name=treeProof,proto3" json:"treeProof,omitempty"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
...
@@ -2467,11 +2495,11 @@ func (m *AuthProofResp) GetNoteHash() string {
...
@@ -2467,11 +2495,11 @@ func (m *AuthProofResp) GetNoteHash() string {
return
""
return
""
}
}
func
(
m
*
AuthProofResp
)
GetSpendFlag
()
uint32
{
func
(
m
*
AuthProofResp
)
GetSpendFlag
()
string
{
if
m
!=
nil
{
if
m
!=
nil
{
return
m
.
SpendFlag
return
m
.
SpendFlag
}
}
return
0
return
""
}
}
func
(
m
*
AuthProofResp
)
GetTreeProof
()
*
TreePathProof
{
func
(
m
*
AuthProofResp
)
GetTreeProof
()
*
TreePathProof
{
...
@@ -2606,8 +2634,8 @@ type TransferInputProof struct {
...
@@ -2606,8 +2634,8 @@ type TransferInputProof struct {
AuthorizeSpendHash
string
`protobuf:"bytes,3,opt,name=authorizeSpendHash,proto3" json:"authorizeSpendHash,omitempty"`
AuthorizeSpendHash
string
`protobuf:"bytes,3,opt,name=authorizeSpendHash,proto3" json:"authorizeSpendHash,omitempty"`
NoteHash
string
`protobuf:"bytes,4,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
NoteHash
string
`protobuf:"bytes,4,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
SpendPrivKey
string
`protobuf:"bytes,5,opt,name=spendPrivKey,proto3" json:"spendPrivKey,omitempty"`
SpendPrivKey
string
`protobuf:"bytes,5,opt,name=spendPrivKey,proto3" json:"spendPrivKey,omitempty"`
SpendFlag
uint32
`protobuf:"varint
,6,opt,name=spendFlag,proto3" json:"spendFlag,omitempty"`
SpendFlag
string
`protobuf:"bytes
,6,opt,name=spendFlag,proto3" json:"spendFlag,omitempty"`
AuthorizeFlag
uint32
`protobuf:"varint
,7,opt,name=authorizeFlag,proto3" json:"authorizeFlag,omitempty"`
AuthorizeFlag
string
`protobuf:"bytes
,7,opt,name=authorizeFlag,proto3" json:"authorizeFlag,omitempty"`
TreeProof
*
TreePathProof
`protobuf:"bytes,8,opt,name=treeProof,proto3" json:"treeProof,omitempty"`
TreeProof
*
TreePathProof
`protobuf:"bytes,8,opt,name=treeProof,proto3" json:"treeProof,omitempty"`
ShieldAmount
*
ShieldAmount
`protobuf:"bytes,9,opt,name=shieldAmount,proto3" json:"shieldAmount,omitempty"`
ShieldAmount
*
ShieldAmount
`protobuf:"bytes,9,opt,name=shieldAmount,proto3" json:"shieldAmount,omitempty"`
AmountRandom
string
`protobuf:"bytes,10,opt,name=amountRandom,proto3" json:"amountRandom,omitempty"`
AmountRandom
string
`protobuf:"bytes,10,opt,name=amountRandom,proto3" json:"amountRandom,omitempty"`
...
@@ -2676,18 +2704,18 @@ func (m *TransferInputProof) GetSpendPrivKey() string {
...
@@ -2676,18 +2704,18 @@ func (m *TransferInputProof) GetSpendPrivKey() string {
return
""
return
""
}
}
func
(
m
*
TransferInputProof
)
GetSpendFlag
()
uint32
{
func
(
m
*
TransferInputProof
)
GetSpendFlag
()
string
{
if
m
!=
nil
{
if
m
!=
nil
{
return
m
.
SpendFlag
return
m
.
SpendFlag
}
}
return
0
return
""
}
}
func
(
m
*
TransferInputProof
)
GetAuthorizeFlag
()
uint32
{
func
(
m
*
TransferInputProof
)
GetAuthorizeFlag
()
string
{
if
m
!=
nil
{
if
m
!=
nil
{
return
m
.
AuthorizeFlag
return
m
.
AuthorizeFlag
}
}
return
0
return
""
}
}
func
(
m
*
TransferInputProof
)
GetTreeProof
()
*
TreePathProof
{
func
(
m
*
TransferInputProof
)
GetTreeProof
()
*
TreePathProof
{
...
@@ -2920,7 +2948,7 @@ type WalletIndexInfo struct {
...
@@ -2920,7 +2948,7 @@ type WalletIndexInfo struct {
NoteHash
string
`protobuf:"bytes,1,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
NoteHash
string
`protobuf:"bytes,1,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
Nullifier
string
`protobuf:"bytes,2,opt,name=nullifier,proto3" json:"nullifier,omitempty"`
Nullifier
string
`protobuf:"bytes,2,opt,name=nullifier,proto3" json:"nullifier,omitempty"`
AuthorizeSpendHash
string
`protobuf:"bytes,3,opt,name=authorizeSpendHash,proto3" json:"authorizeSpendHash,omitempty"`
AuthorizeSpendHash
string
`protobuf:"bytes,3,opt,name=authorizeSpendHash,proto3" json:"authorizeSpendHash,omitempty"`
IsReturner
bool
`protobuf:"varint,4,opt,name=isReturner,proto3" json:"isReturner
,omitempty"`
Role
Role
`protobuf:"varint,4,opt,name=role,proto3,enum=types.Role" json:"role
,omitempty"`
Account
string
`protobuf:"bytes,5,opt,name=account,proto3" json:"account,omitempty"`
Account
string
`protobuf:"bytes,5,opt,name=account,proto3" json:"account,omitempty"`
Status
NoteStatus
`protobuf:"varint,6,opt,name=status,proto3,enum=types.NoteStatus" json:"status,omitempty"`
Status
NoteStatus
`protobuf:"varint,6,opt,name=status,proto3,enum=types.NoteStatus" json:"status,omitempty"`
Secret
*
SecretData
`protobuf:"bytes,7,opt,name=secret,proto3" json:"secret,omitempty"`
Secret
*
SecretData
`protobuf:"bytes,7,opt,name=secret,proto3" json:"secret,omitempty"`
...
@@ -2975,11 +3003,11 @@ func (m *WalletIndexInfo) GetAuthorizeSpendHash() string {
...
@@ -2975,11 +3003,11 @@ func (m *WalletIndexInfo) GetAuthorizeSpendHash() string {
return
""
return
""
}
}
func
(
m
*
WalletIndexInfo
)
Get
IsReturner
()
bool
{
func
(
m
*
WalletIndexInfo
)
Get
Role
()
Role
{
if
m
!=
nil
{
if
m
!=
nil
{
return
m
.
IsReturner
return
m
.
Role
}
}
return
false
return
Role_SPENDER
}
}
func
(
m
*
WalletIndexInfo
)
GetAccount
()
string
{
func
(
m
*
WalletIndexInfo
)
GetAccount
()
string
{
...
@@ -3581,6 +3609,7 @@ func init() {
...
@@ -3581,6 +3609,7 @@ func init() {
proto
.
RegisterEnum
(
"types.MixConfigType"
,
MixConfigType_name
,
MixConfigType_value
)
proto
.
RegisterEnum
(
"types.MixConfigType"
,
MixConfigType_name
,
MixConfigType_value
)
proto
.
RegisterEnum
(
"types.MixConfigAct"
,
MixConfigAct_name
,
MixConfigAct_value
)
proto
.
RegisterEnum
(
"types.MixConfigAct"
,
MixConfigAct_name
,
MixConfigAct_value
)
proto
.
RegisterEnum
(
"types.NoteStatus"
,
NoteStatus_name
,
NoteStatus_value
)
proto
.
RegisterEnum
(
"types.NoteStatus"
,
NoteStatus_name
,
NoteStatus_value
)
proto
.
RegisterEnum
(
"types.Role"
,
Role_name
,
Role_value
)
proto
.
RegisterEnum
(
"types.MixWalletRescanStatus"
,
MixWalletRescanStatus_name
,
MixWalletRescanStatus_value
)
proto
.
RegisterEnum
(
"types.MixWalletRescanStatus"
,
MixWalletRescanStatus_name
,
MixWalletRescanStatus_value
)
proto
.
RegisterType
((
*
ZkVerifyKey
)(
nil
),
"types.ZkVerifyKey"
)
proto
.
RegisterType
((
*
ZkVerifyKey
)(
nil
),
"types.ZkVerifyKey"
)
proto
.
RegisterType
((
*
ZkVerifyKeys
)(
nil
),
"types.ZkVerifyKeys"
)
proto
.
RegisterType
((
*
ZkVerifyKeys
)(
nil
),
"types.ZkVerifyKeys"
)
...
@@ -3648,164 +3677,167 @@ func init() {
...
@@ -3648,164 +3677,167 @@ func init() {
}
}
var
fileDescriptor_5c21d519a9be369a
=
[]
byte
{
var
fileDescriptor_5c21d519a9be369a
=
[]
byte
{
// 25
04
bytes of a gzipped FileDescriptorProto
// 25
56
bytes of a gzipped FileDescriptorProto
0x1f
,
0x8b
,
0x08
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x02
,
0xff
,
0xec
,
0x59
,
0xcd
,
0x6e
,
0x1b
,
0xc9
,
0x1f
,
0x8b
,
0x08
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x02
,
0xff
,
0xec
,
0x59
,
0xcd
,
0x6e
,
0x1b
,
0xc9
,
0xf1
,
0xd7
,
0xf0
,
0x53
,
0x2c
,
0x91
,
0x
12
,
0xd9
,
0xf6
,
0x6a
,
0xb9
,
0xc2
,
0x7f
,
0xfd
,
0x57
,
0x7a
,
0xf1
,
0xd7
,
0xf0
,
0x53
,
0x2c
,
0x91
,
0x
d4
,
0xb0
,
0xed
,
0xd5
,
0xd2
,
0xc2
,
0x7f
,
0xd7
,
0x42
,
0xaf
,
0x
bd
,
0x5e
,
0x45
,
0x0e
,
0xb4
,
0x1b
,
0xda
,
0x71
,
0x92
,
0x43
,
0x76
,
0xc1
,
0x98
,
0x94
,
0xc9
,
0xb5
,
0x
ff
,
0xb6
,
0x22
,
0x07
,
0xda
,
0x5d
,
0xda
,
0x71
,
0x92
,
0x43
,
0x76
,
0xc1
,
0x98
,
0x94
,
0xc9
,
0xb5
,
0x45
,
0x11
,
0x4d
,
0x
fa
,
0x33
,
0x48
,
0x80
,
0x31
,
0xd9
,
0x12
,
0x07
,
0x26
,
0x39
,
0xe3
,
0x99
,
0xa1
,
0x45
,
0x11
,
0x4d
,
0x
ca
,
0x5f
,
0x41
,
0x02
,
0x8c
,
0xc9
,
0x96
,
0x38
,
0x30
,
0xc9
,
0x19
,
0xcf
,
0x0c
,
0x
4c
,
0xe5
,
0x14
,
0x20
,
0x01
,
0xf6
,
0x10
,
0xe4
,
0x14
,
0xe4
,
0x1a
,
0x20
,
0xa7
,
0xe4
,
0x01
,
0x16
,
0x
65
,
0x2a
,
0xa7
,
0x00
,
0x09
,
0xb0
,
0x97
,
0xe4
,
0x14
,
0xe4
,
0x1a
,
0x20
,
0xa7
,
0xe4
,
0x01
,
0x16
,
0x39
,
0xe4
,
0x19
,
0x72
,
0xcc
,
0x03
,
0x04
,
0xc8
,
0x21
,
0xd7
,
0x3c
,
0x42
,
0xd0
,
0x5f
,
0x33
,
0x
d
d
,
0x39
,
0xe4
,
0x19
,
0x72
,
0xcc
,
0x03
,
0x04
,
0xc8
,
0x21
,
0xd7
,
0x3c
,
0x42
,
0xd0
,
0x5f
,
0x33
,
0x
3
d
,
0x43
,
0xd2
,
0x92
,
0x9c
,
0xcd
,
0x2d
,
0xb7
,
0xa9
,
0xea
,
0x5f
,
0x77
,
0x57
,
0xfd
,
0xaa
,
0xba
,
0xbb
,
0x43
,
0xd2
,
0x92
,
0x9c
,
0xcd
,
0x2d
,
0xb7
,
0xa9
,
0xea
,
0x5f
,
0x77
,
0x57
,
0xfd
,
0xaa
,
0xba
,
0xbb
,
0xba
,
0x07
,
0x0a
,
0x13
,
0x67
,
0x7e
,
0xe0
,
0xf9
,
0x6e
,
0xe8
,
0xa2
,
0x6c
,
0x78
,
0xee
,
0xd1
,
0x60
,
0xba
,
0x07
,
0x0a
,
0x13
,
0x7b
,
0xbe
,
0xef
,
0x7a
,
0x4e
,
0xe0
,
0xa0
,
0x6c
,
0x70
,
0xee
,
0x52
,
0x7f
,
0xa7
,
0x38
,
0x70
,
0x27
,
0x13
,
0x77
,
0x2a
,
0x94
,
0x3b
,
0x95
,
0xd0
,
0xb7
,
0xa7
,
0x81
,
0x3d
,
0x08
,
0xbb
,
0x38
,
0x70
,
0x26
,
0x13
,
0x67
,
0x2a
,
0x94
,
0xdb
,
0x95
,
0xc0
,
0xb3
,
0xa6
,
0xbe
,
0x35
,
0x08
,
0x1d
,
0xa5
,
0xc2
,
0x5f
,
0xc2
,
0xc6
,
0x8b
,
0x57
,
0x4f
,
0xa8
,
0xef
,
0x9c
,
0x9c
,
0x3f
,
0xa4
,
0xe7
,
0x6c
,
0xa5
,
0xc2
,
0x5f
,
0xc1
,
0xc6
,
0xcb
,
0xd7
,
0x4f
,
0xa9
,
0x67
,
0x9f
,
0x9c
,
0x3f
,
0xa6
,
0xe7
,
0xe8
,
0x63
,
0xc8
,
0xb0
,
0x8e
,
0x55
,
0x6b
,
0xd7
,
0xda
,
0xdb
,
0xac
,
0x55
,
0x0e
,
0xf8
,
0x28
,
0x07
,
0xe8
,
0xff
,
0x21
,
0xc3
,
0x3a
,
0x56
,
0x8d
,
0x1d
,
0x63
,
0xb7
,
0x5c
,
0xab
,
0xec
,
0xf3
,
0x51
,
0xf6
,
0xa2
,
0xbd
,
0x7f
,
0xee
,
0x51
,
0xc2
,
0x9b
,
0xd1
,
0x75
,
0xc8
,
0x9e
,
0xd9
,
0xe3
,
0x19
,
0xad
,
0xa6
,
0x45
,
0x7b
,
0xff
,
0xdc
,
0xa5
,
0x84
,
0x37
,
0xa3
,
0xeb
,
0x90
,
0x3d
,
0xb3
,
0xc6
,
0x33
,
0x5a
,
0x4d
,
0x76
,
0xad
,
0xbd
,
0x02
,
0x11
,
0x02
,
0xbe
,
0x07
,
0x45
,
0x6d
,
0xac
,
0x00
,
0xdd
,
0x82
,
0xcc
,
0xd0
,
0xed
,
0x18
,
0xbb
,
0x05
,
0x22
,
0x04
,
0xfc
,
0x00
,
0x8a
,
0xda
,
0x58
,
0x3e
,
0xba
,
0x0d
,
0x99
,
0xa1
,
0x0e
,
0xed
,
0xaa
,
0xb5
,
0x9b
,
0xde
,
0xdb
,
0xa8
,
0x21
,
0x39
,
0x98
,
0x06
,
0x21
,
0xbc
,
0x1d
,
0x7f
,
0x15
,
0x58
,
0x55
,
0x63
,
0x27
,
0xbd
,
0xbb
,
0x51
,
0x43
,
0x72
,
0x30
,
0x0d
,
0x42
,
0x78
,
0x3b
,
0xbe
,
0x0b
,
0x36
,
0xea
,
0xb3
,
0x70
,
0xd4
,
0x9d
,
0xbd
,
0xe4
,
0xdd
,
0x90
,
0xd6
,
0xad
,
0x20
,
0x21
,
0x2e
,
0x09
,
0x1b
,
0xf5
,
0x59
,
0x30
,
0xea
,
0xce
,
0x5e
,
0xf1
,
0x6e
,
0x26
,
0xa4
,
0xdd
,
0xd7
,
0x3e
,
0xef
,
0x40
,
0xd7
,
0x3e
,
0x9f
,
0xd0
,
0x69
,
0xc8
,
0xac
,
0x44
,
0x90
,
0xb1
,
0x87
,
0x43
,
0x9f
,
0x5b
,
0x59
,
0x55
,
0x20
,
0xec
,
0x13
,
0x3b
,
0x00
,
0x5d
,
0xeb
,
0x7c
,
0x42
,
0xa7
,
0x01
,
0xb3
,
0x11
,
0x41
,
0xc6
,
0x20
,
0xfc
,
0x1b
,
0xed
,
0xc2
,
0x86
,
0x4f
,
0x07
,
0xd4
,
0x39
,
0xa3
,
0xfe
,
0x43
,
0x7a
,
0x2e
,
0x0d
,
0x1a
,
0x0e
,
0x3d
,
0x6e
,
0x63
,
0x81
,
0xf0
,
0x6f
,
0xb4
,
0x03
,
0x1b
,
0x1e
,
0x1d
,
0x50
,
0xfb
,
0x8c
,
0xd3
,
0x55
,
0xe8
,
0x36
,
0x14
,
0x02
,
0x3a
,
0xf0
,
0x29
,
0x1b
,
0xa2
,
0x9a
,
0xde
,
0xb5
,
0xf6
,
0x36
,
0x7a
,
0x8f
,
0xe9
,
0xb9
,
0x34
,
0x4b
,
0x57
,
0xa1
,
0xbb
,
0x50
,
0xf0
,
0xe9
,
0xc0
,
0xa3
,
0x6c
,
0x88
,
0x6a
,
0x25
,
0x69
,
0x93
,
0x98
,
0x9a
,
0xc4
,
0xed
,
0xf8
,
0x5f
,
0x16
,
0x6c
,
0x1d
,
0x39
,
0xf3
,
0xfb
,
0x6a
,
0x7a
,
0xc7
,
0xd8
,
0xdd
,
0xa8
,
0x95
,
0xa4
,
0x45
,
0x62
,
0x62
,
0x12
,
0xb5
,
0xe3
,
0x7f
,
0x19
,
0xee
,
0xf4
,
0xc4
,
0x39
,
0xad
,
0x73
,
0xc6
,
0xd0
,
0x4d
,
0x48
,
0xf5
,
0xcf
,
0x25
,
0x35
,
0xd7
,
0x65
,
0xb0
,
0x79
,
0x68
,
0xcf
,
0x1f
,
0x3a
,
0xd3
,
0x13
,
0xfb
,
0xb4
,
0xce
,
0xf9
,
0x42
,
0xb7
,
0x20
,
0xd5
,
0xcf
,
0x08
,
0xc3
,
0xd9
,
0x49
,
0xf5
,
0xd9
,
0x34
,
0x39
,
0x81
,
0xe7
,
0x36
,
0x6c
,
0xd6
,
0xae
,
0x25
,
0x3f
,
0x97
,
0xc4
,
0x5c
,
0x97
,
0x3d
,
0x43
,
0x0c
,
0xe7
,
0x26
,
0xd5
,
0x67
,
0xd3
,
0xe4
,
0x04
,
0x9e
,
0x91
,
0xf5
,
0x41
,
0x48
,
0x24
,
0x04
,
0xd5
,
0xa0
,
0x70
,
0xa6
,
0xd8
,
0x90
,
0x36
,
0x2d
,
0xe1
,
0xa9
,
0xdb
,
0x50
,
0xae
,
0x5d
,
0x4b
,
0x22
,
0xeb
,
0x83
,
0x80
,
0x48
,
0x08
,
0xaa
,
0x41
,
0xe1
,
0x4c
,
0x71
,
0xb5
,
0x46
,
0x62
,
0x18
,
0xaa
,
0x42
,
0xce
,
0x66
,
0x74
,
0xbd
,
0xaa
,
0x66
,
0x98
,
0x93
,
0xad
,
0x35
,
0x21
,
0x6d
,
0x5a
,
0xc2
,
0x52
,
0x6b
,
0x8d
,
0x44
,
0x30
,
0x54
,
0x85
,
0x9c
,
0xc5
,
0xc8
,
0x7a
,
0x5d
,
0x22
,
0x65
,
0x74
,
0x07
,
0xc0
,
0x8b
,
0x58
,
0xaa
,
0x66
,
0xf9
,
0x70
,
0x2a
,
0x86
,
0x31
,
0x7d
,
0xad
,
0xcd
,
0x30
,
0x27
,
0x5b
,
0x6b
,
0x44
,
0xca
,
0xe8
,
0x1e
,
0x80
,
0x1b
,
0xb2
,
0x54
,
0xcd
,
0xf2
,
0xe1
,
0x35
,
0xa2
,
0xc1
,
0x7e
,
0x9c
,
0x97
,
0xb1
,
0xc4
,
0xf7
,
0x61
,
0xbd
,
0xd1
,
0xea
,
0x71
,
0x06
,
0xd0
,
0x54
,
0x04
,
0x23
,
0xfa
,
0x5a
,
0x6b
,
0x44
,
0x83
,
0xfd
,
0x38
,
0x2f
,
0x23
,
0x89
,
0x1f
,
0xc2
,
0x7a
,
0xff
,
0x43
,
0x9a
,
0x7a
,
0xaf
,
0xb8
,
0xaf
,
0x0b
,
0x2c
,
0xb1
,
0x16
,
0xb4
,
0x0d
,
0x39
,
0x41
,
0x16
,
0xa3
,
0xd5
,
0xe3
,
0x0c
,
0xa0
,
0x9b
,
0x90
,
0xa6
,
0xee
,
0x6b
,
0xee
,
0xeb
,
0x02
,
0x4b
,
0xac
,
0x05
,
0xb7
,
0xba
,
0x40
,
0xa4
,
0x84
,
0x29
,
0x94
,
0xd4
,
0x20
,
0x0f
,
0x7c
,
0x77
,
0xe6
,
0xa1
,
0x1d
,
0x58
,
0x6d
,
0x41
,
0x4e
,
0x90
,
0xc5
,
0xad
,
0x2e
,
0x10
,
0x29
,
0x61
,
0x0a
,
0x25
,
0x35
,
0xc8
,
0x23
,
0xcf
,
0x57
,
0x41
,
0x90
,
0xf1
,
0x8a
,
0x64
,
0xd1
,
0x16
,
0xce
,
0xfc
,
0x29
,
0xf5
,
0x65
,
0xc0
,
0x22
,
0x19
,
0x99
,
0xb9
,
0x68
,
0x1b
,
0xd6
,
0x55
,
0x10
,
0x64
,
0xbc
,
0x42
,
0x59
,
0xb4
,
0x05
,
0x33
,
0x6f
,
0x4a
,
0xfd
,
0x1f
,
0x14
,
0x98
,
0x57
,
0xae
,
0xef
,
0xfc
,
0x9c
,
0xca
,
0x39
,
0x62
,
0x05
,
0x9e
,
0xb1
,
0xb4
,
0x3d
,
0x19
,
0xb0
,
0x50
,
0x46
,
0xff
,
0x07
,
0x05
,
0xe6
,
0x95
,
0xe3
,
0xd9
,
0x3f
,
0xa7
,
0x72
,
0x8e
,
0xed
,
0xfa
,
0xae
,
0x7b
,
0xd2
,
0x9e
,
0x9e
,
0xb8
,
0x2c
,
0x1f
,
0x3d
,
0x26
,
0xc8
,
0x19
,
0x84
,
0xc0
,
0x48
,
0x81
,
0x67
,
0x2c
,
0x69
,
0xbb
,
0x9e
,
0xe3
,
0x9c
,
0xb4
,
0xa7
,
0x27
,
0x0e
,
0xcb
,
0x46
,
0x97
,
0x52
,
0xc2
,
0x9b
,
0xbd
,
0x1c
,
0x3b
,
0x83
,
0xf6
,
0xd4
,
0x9b
,
0x85
,
0x2a
,
0x25
,
0x34
,
0x15
,
0x3a
,
0x09
,
0x72
,
0x06
,
0x21
,
0xb0
,
0x94
,
0x70
,
0x67
,
0xaf
,
0xc6
,
0xf6
,
0xa0
,
0x3d
,
0x75
,
0x67
,
0x81
,
0x80
,
0xbc
,
0xb0
,
0x3b
,
0x90
,
0xe4
,
0xab
,
0xb0
,
0x1a
,
0x3e
,
0x10
,
0x05
,
0xc2
,
0x7d
,
0x28
,
0x1f
,
0x4a
,
0x09
,
0x4d
,
0x85
,
0xf6
,
0x21
,
0x2f
,
0xec
,
0xf6
,
0x25
,
0xf9
,
0x2a
,
0xac
,
0x31
,
0x1f
,
0x88
,
0x39
,
0xf3
,
0x06
,
0xf5
,
0xdc
,
0xc0
,
0x09
,
0x65
,
0x08
,
0xb7
,
0x21
,
0x67
,
0x4f
,
0xdc
,
0xd9
,
0x34
,
0x02
,
0xe1
,
0x3e
,
0x98
,
0x87
,
0xf6
,
0xbc
,
0x41
,
0x5d
,
0xc7
,
0xb7
,
0x03
,
0x19
,
0xc2
,
0x2d
,
0xc8
,
0xe4
,
0x93
,
0x67
,
0x88
,
0x94
,
0xd0
,
0x9e
,
0xb2
,
0x29
,
0x95
,
0x08
,
0x6b
,
0x64
,
0xb6
,
0xb4
,
0x13
,
0x59
,
0x13
,
0x67
,
0x36
,
0x0d
,
0xf8
,
0xe4
,
0x19
,
0x22
,
0x25
,
0xb4
,
0xab
,
0x6c
,
0x4a
,
0x25
,
0xc2
,
0xff
,
0xce
,
0x82
,
0xca
,
0x91
,
0x33
,
0xef
,
0xb3
,
0xc5
,
0x79
,
0x42
,
0x7d
,
0x39
,
0xee
,
0x1e
,
0x64
,
0x1a
,
0x9a
,
0x2d
,
0xed
,
0xc4
,
0xbf
,
0x33
,
0xa0
,
0x72
,
0x68
,
0xcf
,
0xfb
,
0x6c
,
0x69
,
0x9e
,
0x50
,
0x1d
,
0x6e
,
0xb7
,
0xb5
,
0xba
,
0x3f
,
0x07
,
0xa0
,
0x7d
,
0xc8
,
0xb9
,
0xb3
,
0x50
,
0xb9
,
0xb8
,
0x1c
,
0x4f
,
0x8e
,
0xbb
,
0x0b
,
0x59
,
0x9b
,
0xdb
,
0x6d
,
0xac
,
0xee
,
0xcf
,
0x01
,
0x68
,
0x0f
,
0x72
,
0xce
,
0x2a
,
0x11
,
0x0c
,
0x3b
,
0x18
,
0xd9
,
0xd3
,
0x53
,
0xba
,
0x90
,
0x6d
,
0x1a
,
0x56
,
0x20
,
0xf0
,
0x80
,
0x2c
,
0x50
,
0x2e
,
0x2e
,
0x87
,
0x4a
,
0x04
,
0xc3
,
0x0e
,
0x46
,
0xd6
,
0xf4
,
0x94
,
0x2e
,
0x64
,
0x9b
,
0x9b
,
0xf5
,
0xd4
,
0x09
,
0x47
,
0x43
,
0xdf
,
0x7e
,
0x73
,
0x81
,
0xbb
,
0xf7
,
0xa0
,
0x18
,
0x78
,
0x74
,
0x86
,
0x15
,
0x08
,
0x3c
,
0xe0
,
0x66
,
0x3d
,
0xb3
,
0x83
,
0xd1
,
0xd0
,
0xb3
,
0xde
,
0x5e
,
0xe0
,
0xee
,
0x3a
,
0xbc
,
0xef
,
0x4e
,
0x26
,
0x4e
,
0x18
,
0x54
,
0x53
,
0x89
,
0x45
,
0x1f
,
0x0f
,
0x6f
,
0xe0
,
0xf0
,
0x03
,
0x28
,
0xfa
,
0x2e
,
0x9d
,
0x0e
,
0x1f
,
0x3a
,
0x93
,
0x89
,
0x1d
,
0xf8
,
0xd5
,
0x54
,
0x62
,
0xc9
,
0x97
,
0x80
,
0x8e
,
0x9c
,
0x79
,
0x5d
,
0x45
,
0x56
,
0xce
,
0x72
,
0x17
,
0x36
,
0x58
,
0xb0
,
0xd5
,
0x60
,
0x47
,
0xc3
,
0xc7
,
0x70
,
0xf8
,
0x2b
,
0x40
,
0x87
,
0xf6
,
0xbc
,
0xae
,
0x22
,
0x2b
,
0x67
,
0xb9
,
0x0f
,
0xd6
,
0xca
,
0xc1
,
0x74
,
0x18
,
0xfe
,
0x73
,
0x0a
,
0x0a
,
0x6c
,
0x30
,
0x31
,
0xc6
,
0x26
,
0xa4
,
0x42
,
0x1b
,
0x2c
,
0xd8
,
0x6a
,
0x30
,
0x63
,
0xe5
,
0x60
,
0x3a
,
0x0c
,
0xff
,
0x39
,
0x05
,
0x05
,
0x36
,
0x98
,
0xb1
,
0x5c
,
0xb3
,
0x24
,
0x15
,
0x9e
,
0xa3
,
0xcf
,
0x20
,
0x37
,
0xe0
,
0x0b
,
0x50
,
0xd2
,
0xb4
,
0xbd
,
0x18
,
0xa3
,
0x0c
,
0xa9
,
0x40
,
0x2c
,
0xd7
,
0x2c
,
0x49
,
0x05
,
0xe7
,
0xe8
,
0x33
,
0xc8
,
0x0d
,
0xf8
,
0x64
,
0x61
,
0x3a
,
0xee
,
0x94
,
0xad
,
0x27
,
0x81
,
0x43
,
0x77
,
0x20
,
0x3f
,
0x14
,
0xb1
,
0x96
,
0x6c
,
0x02
,
0x94
,
0x34
,
0x6d
,
0x2d
,
0x59
,
0x98
,
0xb6
,
0x33
,
0x65
,
0xeb
,
0x49
,
0xe0
,
0xd0
,
0x3d
,
0xc8
,
0xbd
,
0x1f
,
0x77
,
0x31
,
0x92
,
0xa0
,
0xb5
,
0x46
,
0x14
,
0x12
,
0xdd
,
0x83
,
0xf5
,
0x37
,
0x92
,
0x32
,
0x0f
,
0x45
,
0xac
,
0x25
,
0x5b
,
0x1f
,
0x46
,
0x5d
,
0x62
,
0x49
,
0xd0
,
0x5a
,
0x23
,
0x0a
,
0x89
,
0x1e
,
0xbe
,
0x40
,
0x37
,
0x6a
,
0xd5
,
0xb8
,
0x97
,
0x49
,
0x66
,
0x6b
,
0x8d
,
0x44
,
0x58
,
0xd6
,
0x2f
,
0x94
,
0xc0
,
0xfa
,
0x5b
,
0x49
,
0x19
,
0x5f
,
0xa0
,
0x1b
,
0xb5
,
0x6a
,
0xd4
,
0x2b
,
0x4e
,
0x66
,
0x6b
,
0x8d
,
0x19
,
0x20
,
0x97
,
0xae
,
0xd6
,
0xcf
,
0xcc
,
0x0d
,
0xd6
,
0x4f
,
0x61
,
0xd1
,
0x0f
,
0xf5
,
0x85
,
0x92
,
0x84
,
0x58
,
0xd6
,
0x2f
,
0x90
,
0x19
,
0x20
,
0x97
,
0xae
,
0xd6
,
0x2f
,
0x9e
,
0x1b
,
0xac
,
0x9f
,
0xc2
,
0xe3
,
0x1d
,
0x3f
,
0x88
,
0x3b
,
0x26
,
0x88
,
0x65
,
0x3b
,
0x49
,
0x84
,
0x8e
,
0x97
,
0x7e
,
0x0b
,
0x90
,
0xa2
,
0x1f
,
0xea
,
0x0b
,
0x25
,
0xc7
,
0x3b
,
0xde
,
0x88
,
0x3a
,
0x26
,
0x88
,
0x65
,
0x3b
,
0x49
,
0x88
,
0xf4
,
0xa7
,
0xab
,
0xad
,
0x8e
,
0x1d
,
0x58
,
0x9f
,
0xba
,
0x21
,
0x6d
,
0xd9
,
0xc1
,
0x48
,
0x2d
,
0x5d
,
0x8e
,
0x96
,
0x7e
,
0x0b
,
0x90
,
0xf4
,
0xa7
,
0xab
,
0xad
,
0x8e
,
0x6d
,
0x58
,
0x9f
,
0x3a
,
0x01
,
0x6d
,
0x25
,
0x6b
,
0x69
,
0x20
,
0x96
,
0x95
,
0x94
,
0xf0
,
0x1f
,
0x2d
,
0xb8
,
0xa6
,
0x9c
,
0xd4
,
0xc7
,
0xc2
,
0x59
,
0xfe
,
0x48
,
0x2d
,
0x5d
,
0x25
,
0x6b
,
0x69
,
0x20
,
0x96
,
0x95
,
0x94
,
0xf0
,
0x1f
,
0x0d
,
0xb8
,
0x50
,
0x0c
,
0x7d
,
0x4a
,
0x89
,
0xeb
,
0x86
,
0xda
,
0x78
,
0x86
,
0x0e
,
0xdd
,
0x84
,
0xd2
,
0x74
,
0x36
,
0xa6
,
0x9c
,
0xd4
,
0xc7
,
0xc2
,
0x50
,
0x0c
,
0x3c
,
0x4a
,
0x89
,
0xe3
,
0x04
,
0xda
,
0x78
,
0x31
,
0x1d
,
0x1e
,
0x3b
,
0x27
,
0x0e
,
0xf5
,
0x39
,
0x48
,
0x0c
,
0x6d
,
0x2a
,
0xd1
,
0x01
,
0xa0
,
0xc8
,
0x83
,
0x1e
,
0xba
,
0x05
,
0xa5
,
0xe9
,
0x6c
,
0x3c
,
0xb6
,
0x4f
,
0x6c
,
0xea
,
0x71
,
0x90
,
0x18
,
0x3a
,
0xae
,
0x44
,
0xcb
,
0x24
,
0x0e
,
0x15
,
0x3b
,
0xc4
,
0x92
,
0x16
,
0xcd
,
0xd2
,
0x8c
,
0x61
,
0xe9
,
0xdf
,
0x2d
,
0xa8
,
0xfb
,
0x80
,
0x42
,
0x0f
,
0x7a
,
0x2c
,
0x93
,
0x38
,
0x54
,
0xec
,
0x10
,
0x4b
,
0x5a
,
0x34
,
0x4b
,
0x33
,
0x2a
,
0x5a
,
0xb9
,
0x8d
,
0xef
,
0x60
,
0x6e
,
0x30
,
0x72
,
0xe8
,
0x78
,
0x58
,
0xe7
,
0x03
,
0x3e
,
0x53
,
0x31
,
0x4b
,
0xff
,
0x6e
,
0x40
,
0x55
,
0xd1
,
0xca
,
0x6d
,
0x7c
,
0x0f
,
0x73
,
0xfd
,
0x91
,
0x4d
,
0xc7
,
0xe6
,
0x1a
,
0xca
,
0x24
,
0xea
,
0xb9
,
0xb4
,
0xd4
,
0x54
,
0xae
,
0x70
,
0x2a
,
0xb3
,
0xd2
,
0xa9
,
0x05
,
0xc3
,
0x3a
,
0x1f
,
0xf0
,
0xb9
,
0x32
,
0x37
,
0xa6
,
0x4c
,
0xa2
,
0x5e
,
0x48
,
0x4b
,
0xe3
,
0xca
,
0x15
,
0xaa
,
0xb2
,
0x4b
,
0xa8
,
0xc2
,
0xbf
,
0xb4
,
0xe0
,
0x03
,
0xe5
,
0xe2
,
0x31
,
0x5f
,
0xff
,
0x97
,
0x0d
,
0x4e
,
0x65
,
0x56
,
0x3a
,
0xb5
,
0x40
,
0x55
,
0x76
,
0x09
,
0x55
,
0xf8
,
0x97
,
0x06
,
0xdc
,
0x50
,
0x2e
,
0xef
,
0x37
,
0xe8
,
0x1b
,
0xfe
,
0x8b
,
0x05
,
0xd7
,
0xa3
,
0x34
,
0xbc
,
0x2a
,
0xc9
,
0x7b
,
0xb0
,
0x65
,
0x1e
,
0xf1
,
0xf5
,
0x7f
,
0xd9
,
0xf0
,
0x7e
,
0x8b
,
0xbe
,
0xe1
,
0xbf
,
0x18
,
0x70
,
0x3d
,
0x4c
,
0xc3
,
0x6b
,
0x7d
,
0xe3
,
0xa3
,
0x3d
,
0xa9
,
0x66
,
0xc6
,
0x44
,
0x2a
,
0x2d
,
0x25
,
0x4c
,
0xe5
,
0x55
,
0x89
,
0xab
,
0x92
,
0xbc
,
0x0b
,
0x9b
,
0x96
,
0xd6
,
0x37
,
0x3a
,
0xda
,
0x93
,
0x6a
,
0x66
,
0x4c
,
0xa8
,
0xd2
,
0xc6
,
0xbb
,
0x00
,
0xcd
,
0xb9
,
0x13
,
0x84
,
0x4f
,
0xd8
,
0x3a
,
0xd1
,
0x4a
,
0x13
,
0x6b
,
0x6f
,
0x5d
,
0x52
,
0x22
,
0xae
,
0xbc
,
0x2a
,
0xd1
,
0x78
,
0x07
,
0xa0
,
0x39
,
0xb7
,
0xfd
,
0xe0
,
0x29
,
0x5b
,
0x27
,
0x96
,
0x26
,
0xb7
,
0xa0
,
0x2c
,
0xf6
,
0x9f
,
0xbe
,
0x4f
,
0xe9
,
0x23
,
0x6a
,
0x9f
,
0x51
,
0xb3
,
0x84
,
0xac
,
0xf0
,
0x90
,
0xf5
,
0x8c
,
0xb1
,
0xbb
,
0x2e
,
0x6b
,
0x97
,
0x3d
,
0x30
,
0xc5
,
0xfe
,
0xd3
,
0xf7
,
0x29
,
0x4a
,
0xdc
,
0xc7
,
0xb0
,
0x15
,
0xe3
,
0x98
,
0x7f
,
0xcb
,
0x61
,
0x7f
,
0xb0
,
0x74
,
0x5c
,
0xd7
,
0x28
,
0x7d
,
0x42
,
0xad
,
0x33
,
0xea
,
0xb3
,
0x9c
,
0x1b
,
0xf3
,
0x2f
,
0xbe
,
0x73
,
0x15
,
0x89
,
0x94
,
0x77
,
0xcf
,
0x28
,
0x3f
,
0x27
,
0x4d
,
0x92
,
0x22
,
0x99
,
0xb5
,
0xf1
,
0x53
,
0xa4
,
0x47
,
0x43
,
0xbe
,
0xf0
,
0x1d
,
0xd8
,
0x8c
,
0xb0
,
0xcc
,
0x47
,
0x9f
,
0x1d
,
0x5d
,
0x1e
,
0xfb
,
0x90
,
0x48
,
0x21
,
0xe0
,
0xe7
,
0x16
,
0x48
,
0x24
,
0xa3
,
0x1b
,
0x00
,
0x9e
,
0xd8
,
0x29
,
0x87
,
0x74
,
0xce
,
0xf9
,
0x28
,
0x11
,
0x3f
,
0x18
,
0x3a
,
0xb2
,
0xeb
,
0x39
,
0x67
,
0x94
,
0x9f
,
0x96
,
0x71
,
0xaa
,
0x42
,
0x99
,
0xb5
,
0xf1
,
0x4d
,
0xc3
,
0xce
,
0xd8
,
0xe9
,
0x6c
,
0x22
,
0x6c
,
0xe6
,
0x1c
,
0x94
,
0x48
,
0xac
,
0x40
,
0x55
,
0xc8
,
0xb3
,
0xa4
,
0x47
,
0x03
,
0xbe
,
0xf3
,
0x16
,
0x48
,
0x28
,
0xa3
,
0x8f
,
0x01
,
0x5c
,
0xb1
,
0x5f
,
0x0e
,
0x8f
,
0xe8
,
0xd8
,
0xa3
,
0x7e
,
0x50
,
0xcd
,
0xee
,
0xa6
,
0xf7
,
0x4a
,
0x44
,
0x89
,
0xb8
,
0x09
,
0x1b
,
0xe9
,
0x9c
,
0xb3
,
0x52
,
0x22
,
0x9a
,
0x86
,
0x9d
,
0xb4
,
0xd3
,
0xd9
,
0x44
,
0x58
,
0xce
,
0x99
,
0x28
,
0xcc
,
0x38
,
0xbe
,
0x01
,
0xd3
,
0xd7
,
0x17
,
0x99
,
0x37
,
0xa6
,
0xf6
,
0x89
,
0xb6
,
0x9c
,
0x23
,
0x19
,
0x91
,
0x48
,
0x81
,
0xaa
,
0x90
,
0x1f
,
0xd1
,
0xb1
,
0x4b
,
0x3d
,
0xbf
,
0x9a
,
0xdd
,
0x49
,
0xef
,
0x96
,
0xdf
,
0x84
,
0x22
,
0xe7
,
0xcc
,
0x09
,
0x42
,
0x42
,
0x03
,
0x8f
,
0x9d
,
0xe2
,
0x8c
,
0x82
,
0x40
,
0x56
,
0x88
,
0x12
,
0x71
,
0x13
,
0x36
,
0x98
,
0x71
,
0x7c
,
0x1b
,
0xa6
,
0x6f
,
0x2e
,
0x32
,
0x6f
,
0x4c
,
0xad
,
0x7e
,
0x42
,
0xc0
,
0x2f
,
0x60
,
0x33
,
0xae
,
0x5d
,
0xba
,
0xb6
,
0xe3
,
0xa3
,
0x5b
,
0xb0
,
0xa9
,
0x4a
,
0x13
,
0x6d
,
0x51
,
0x87
,
0x32
,
0xbe
,
0x0d
,
0x45
,
0xce
,
0x9c
,
0xed
,
0x07
,
0x84
,
0xfa
,
0x6e
,
0x82
,
0x08
,
0x99
,
0x12
,
0x62
,
0xd6
,
0x84
,
0x96
,
0x9d
,
0xff
,
0xfc
,
0xa8
,
0xe9
,
0xfa
,
0x8e
,
0x56
,
0x12
,
0xbb
,
0x42
,
0xc8
,
0xdd
,
0x4b
,
0x28
,
0x47
,
0x35
,
0x4c
,
0xd7
,
0xb2
,
0x3d
,
0x74
,
0x1b
,
0xca
,
0xaa
,
0x6a
,
0x2a
,
0x7c
,
0x13
,
0x72
,
0x12
,
0x5b
,
0x04
,
0xeb
,
0x99
,
0x1c
,
0xc6
,
0x7a
,
0xc6
,
0xa4
,
0xe7
,
0x94
,
0x90
,
0xa9
,
0x21
,
0xe6
,
0x4d
,
0x68
,
0x59
,
0x1d
,
0xc0
,
0x8f
,
0x9c
,
0xae
,
0x67
,
0x6b
,
0xa5
,
0x12
,
0x6f
,
0x3d
,
0xc7
,
0x1f
,
0x42
,
0xbe
,
0xeb
,
0x3b
,
0x67
,
0xb2
,
0xf2
,
0x8c
,
0x12
,
0x20
,
0xae
,
0xa1
,
0xa6
,
0xc2
,
0xb7
,
0x20
,
0x27
,
0xb1
,
0x45
,
0x30
,
0x9e
,
0xcb
,
0x61
,
0x8c
,
0xe7
,
0x4c
,
0x7a
,
0x4d
,
0x51
,
0x6f
,
0x64
,
0xfb
,
0xb4
,
0xa7
,
0x8a
,
0x47
,
0x6e
,
0xe4
,
0x1e
,
0xe4
,
0x3d
,
0xd1
,
0x49
,
0x21
,
0xf1
,
0xc6
,
0x0b
,
0xfc
,
0x11
,
0xe4
,
0xbb
,
0x9e
,
0x7d
,
0x26
,
0x2b
,
0xd0
,
0x30
,
0x11
,
0x0a
,
0x1e
,
0xe0
,
0x9b
,
0xaa
,
0x8a
,
0x12
,
0x5a
,
0xa2
,
0x9a
,
0xd1
,
0xa7
,
0xaa
,
0x72
,
0x75
,
0xa6
,
0xa7
,
0x32
,
0x11
,
0x1c
,
0x40
,
0xbd
,
0x91
,
0xe5
,
0xd1
,
0x9e
,
0x2a
,
0x22
,
0xb9
,
0x91
,
0xbb
,
0x90
,
0x77
,
0xdd
,
0x57
,
0xf2
,
0x70
,
0x4a
,
0xd4
,
0x5c
,
0x3a
,
0x02
,
0xff
,
0xc6
,
0x82
,
0x4a
,
0x7d
,
0x30
,
0x60
,
0x45
,
0x27
,
0x79
,
0x90
,
0x97
,
0x55
,
0x35
,
0x25
,
0xb4
,
0x44
,
0x35
,
0xa3
,
0x4f
,
0x55
,
0x05
,
0x6b
,
0xab
,
0x8b
,
0x0d
,
0x66
,
0x0f
,
0x78
,
0x59
,
0xf8
,
0x3d
,
0xa3
,
0xf8
,
0x13
,
0x73
,
0xbe
,
0xb7
,
0x50
,
0x4f
,
0x4f
,
0xbb
,
0xaf
,
0xe5
,
0x21
,
0x95
,
0xa8
,
0xbd
,
0x74
,
0x04
,
0xfe
,
0x8d
,
0x01
,
0x95
,
0xfa
,
0xfc
,
0x31
,
0xdb
,
0xf4
,
0xf2
,
0x0f
,
0xd5
,
0x61
,
0x33
,
0x30
,
0xac
,
0x97
,
0x06
,
0xa8
,
0x33
,
0x64
,
0x60
,
0xc0
,
0x56
,
0x19
,
0x1b
,
0xcc
,
0x1a
,
0xf0
,
0xf2
,
0xf0
,
0x7b
,
0xb1
,
0x22
,
0x50
,
0xcc
,
0xf9
,
0xd1
,
0x35
,
0x92
,
0xe8
,
0x80
,
0x7f
,
0x02
,
0x95
,
0xa7
,
0xf6
,
0x78
,
0x4c
,
0xc3
,
0xfa
,
0x70
,
0xe8
,
0xc1
,
0x42
,
0x11
,
0xc8
,
0x6c
,
0xd3
,
0xcb
,
0x40
,
0x54
,
0x87
,
0xb2
,
0x1f
,
0xb3
,
0x5e
,
0x1a
,
0xa0
,
0x4b
,
0x8b
,
0x50
,
0x4d
,
0xf8
,
0x6f
,
0x0f
,
0x94
,
0x2d
,
0xea
,
0x34
,
0x5b
,
0xb0
,
0x9c
,
0x28
,
0x60
,
0xce
,
0x92
,
0x45
,
0xd7
,
0x48
,
0xa2
,
0x03
,
0xfe
,
0x09
,
0x54
,
0x9e
,
0x59
,
0xe3
,
0x31
,
0x0d
,
0xea
,
0x54
,
0xd7
,
0xa7
,
0xe2
,
0xba
,
0x9e
,
0xed
,
0x1e
,
0x20
,
0xa6
,
0x6a
,
0xd8
,
0xa1
,
0x7d
,
0xe9
,
0xd8
,
0xc3
,
0xa1
,
0x27
,
0x2d
,
0x42
,
0x35
,
0xe1
,
0xbf
,
0x35
,
0x50
,
0xb6
,
0xa8
,
0x53
,
0x6d
,
0xc1
,
0x72
,
0x63
,
0x28
,
0x8a
,
0x52
,
0xd2
,
0xd8
,
0x34
,
0x0c
,
0xdd
,
0xb2
,
0xbd
,
0x25
,
0xbd
,
0x7c
,
0x6f
,
0x59
,
0xa2
,
0x80
,
0x61
,
0x7d
,
0x9f
,
0x8a
,
0xea
,
0x7b
,
0xb6
,
0x8b
,
0x80
,
0x98
,
0xaa
,
0x61
,
0x05
,
0xd6
,
0x71
,
0x86
,
0xb0
,
0x05
,
0xc6
,
0xb6
,
0x4c
,
0x62
,
0x4f
,
0x87
,
0xee
,
0x44
,
0xee
,
0xc1
,
0x9a
,
0x06
,
0xa5
,
0x63
,
0x8f
,
0xa1
,
0x28
,
0x4a
,
0xca
,
0xd8
,
0xe6
,
0x11
,
0xd3
,
0x2d
,
0xdb
,
0x63
,
0xd2
,
0xcb
,
0xbf
,
0x80
,
0x4a
,
0x73
,
0x3a
,
0x70
,
0x87
,
0x74
,
0xa8
,
0xb9
,
0x50
,
0x85
,
0x3c
,
0x15
,
0x4a
,
0x69
,
0xf7
,
0x98
,
0x15
,
0x67
,
0x09
,
0x5b
,
0x62
,
0x6c
,
0xeb
,
0x24
,
0xd6
,
0x74
,
0xe8
,
0x4c
,
0xe4
,
0x5e
,
0xbb
,
0x12
,
0xd1
,
0x6d
,
0xc8
,
0xfb
,
0xf6
,
0x1b
,
0x06
,
0x92
,
0x41
,
0x50
,
0xc5
,
0x7b
,
0xdc
,
0x9b
,
0xac
,
0x69
,
0xf0
,
0x4b
,
0xa8
,
0x34
,
0xa7
,
0x03
,
0x67
,
0x48
,
0x87
,
0x9a
,
0x0b
,
0x55
,
0xc8
,
0x53
,
0x28
,
0x04
,
0xfe
,
0x19
,
0x1f
,
0xdb
,
0x3f
,
0xf7
,
0x42
,
0x6d
,
0xec
,
0xb8
,
0x2c
,
0xb7
,
0xf4
,
0xb2
,
0xa1
,
0x94
,
0xb6
,
0x2b
,
0x11
,
0xdd
,
0x85
,
0xbc
,
0x67
,
0xbd
,
0x65
,
0x20
,
0x19
,
0x04
,
0x55
,
0xc4
,
0x1c
,
0x7d
,
0x17
,
0x8a
,
0x02
,
0xa5
,
0xd1
,
0xb1
,
0x90
,
0x64
,
0x06
,
0x04
,
0xff
,
0xc2
,
0x82
,
0x4a
,
0x47
,
0xbd
,
0x89
,
0x42
,
0xe0
,
0x9f
,
0xf1
,
0xb1
,
0xbd
,
0x73
,
0x37
,
0xd0
,
0xc6
,
0x8e
,
0xca
,
0x73
,
0x83
,
0x5e
,
0x76
,
0x82
,
0x5a
,
0x34
,
0x41
,
0xbc
,
0xd8
,
0x16
,
0x73
,
0xde
,
0xc0
,
0xa8
,
0x4b
,
0x46
,
0x43
,
0x2f
,
0xcf
,
0xd1
,
0xe7
,
0x50
,
0x14
,
0x28
,
0x8d
,
0x8e
,
0x85
,
0x24
,
0x8b
,
0x41
,
0xf0
,
0x2f
,
0x7a
,
0xd5
,
0x25
,
0x03
,
0xff
,
0xd6
,
0x82
,
0x2d
,
0x55
,
0x97
,
0xb0
,
0x5d
,
0x8b
,
0x6d
,
0x36
,
0x3c
,
0x0c
,
0xa8
,
0x34
,
0xe8
,
0x65
,
0x27
,
0xa8
,
0x85
,
0x13
,
0x44
,
0x8b
,
0x6d
,
0x31
,
0xe7
,
0x63
,
0x18
,
0xb0
,
0x22
,
0xd4
,
0xf5
,
0xf8
,
0x0e
,
0x68
,
0xe8
,
0x58
,
0x58
,
0x44
,
0xa0
,
0xeb
,
0x71
,
0x36
,
0x69
,
0x75
,
0xd9
,
0x48
,
0xaf
,
0xba
,
0x6c
,
0xe0
,
0xdf
,
0x1a
,
0xb0
,
0xa9
,
0xea
,
0x13
,
0xb6
,
0x6f
,
0xb1
,
0x1a
,
0xe3
,
0xa8
,
0xe0
,
0x90
,
0xe4
,
0x51
,
0xc1
,
0x51
,
0x66
,
0xd0
,
0xa3
,
0x4a
,
0x17
,
0x7f
,
0x65
,
0xed
,
0x86
,
0x07
,
0x56
,
0x84
,
0xba
,
0x1e
,
0xdd
,
0x05
,
0x63
,
0x3a
,
0x16
,
0x16
,
0x11
,
0xe8
,
0x7a
,
0x41
,
0xd9
,
0xb4
,
0x2a
,
0xf0
,
0xde
,
0x7a
,
0x98
,
0x7e
,
0x62
,
0xde
,
0x04
,
0x96
,
0x04
,
0x55
,
0x5e
,
0x94
,
0x4d
,
0x9a
,
0x26
,
0x76
,
0x64
,
0x70
,
0x48
,
0xf2
,
0xc8
,
0xe0
,
0xa8
,
0x78
,
0xd0
,
0xc3
,
0x8a
,
0x58
,
0xae
,
0x7a
,
0x1d
,
0xf9
,
0xca
,
0x82
,
0x12
,
0x3f
,
0x25
,
0xec
,
0x70
,
0xc4
,
0x4d
,
0xb9
,
0xd4
,
0x17
,
0x7f
,
0x6d
,
0x80
,
0x19
,
0xb7
,
0xca
,
0x77
,
0xdf
,
0x79
,
0xa8
,
0xde
,
0x89
,
0xdf
,
0x08
,
0x96
,
0x91
,
0xba
,
0xc3
,
0x0a
,
0x4d
,
0xd1
,
0x49
,
0x9d
,
0x18
,
0x4a
,
0xd6
,
0xf7
,
0xfc
,
0xb4
,
0xb1
,
0xe7
,
0x04
,
0x55
,
0x5e
,
0x5c
,
0xae
,
0x7a
,
0x2d
,
0xf9
,
0xda
,
0x80
,
0x12
,
0x3f
,
0x27
,
0xac
,
0x60
,
0xc4
,
0xb3
,
0xb3
,
0xe2
,
0xcc
,
0x1e
,
0x3b
,
0x43
,
0xde
,
0x2d
,
0xc3
,
0xdb
,
0x62
,
0x05
,
0x3e
,
0x80
,
0x72
,
0x4d
,
0xb9
,
0xd4
,
0xd1
,
0xba
,
0xcd
,
0x0a
,
0x4e
,
0xd1
,
0x49
,
0x9d
,
0x19
,
0x4a
,
0xd6
,
0x77
,
0xfd
,
0x54
,
0xf5
,
0xa9
,
0x48
,
0xbd
,
0x85
,
0x12
,
0xfc
,
0xd7
,
0x14
,
0x54
,
0x12
,
0x1d
,
0x02
,
0x0f
,
0x7d
,
0x74
,
0x6c
,
0xd7
,
0x67
,
0xa7
,
0xc5
,
0x99
,
0x35
,
0xb6
,
0x87
,
0xbc
,
0x5b
,
0x86
,
0xb7
,
0x45
,
0x0a
,
0xdb
,
0x48
,
0xae
,
0xa5
,
0x4c
,
0xa9
,
0x7c
,
0xfb
,
0xef
,
0xd4
,
0x8a
,
0xba
,
0xc9
,
0x99
,
0x44
,
0x14
,
0xbc
,
0x0f
,
0x66
,
0x58
,
0xfd
,
0xa9
,
0x48
,
0xbd
,
0x83
,
0x12
,
0xfc
,
0xd7
,
0x14
,
0x54
,
0x12
,
0x1d
,
0xb1
,
0xbc
,
0xe0
,
0xc8
,
0x5c
,
0x96
,
0xab
,
0xdd
,
0xd0
,
0x31
,
0x92
,
0xb8
,
0x7c
,
0x38
,
0xb6
,
0x4f
,
0x7c
,
0x17
,
0x7d
,
0x27
,
0x96
,
0x5c
,
0x4b
,
0x99
,
0x52
,
0xf9
,
0xf6
,
0xdf
,
0xa9
,
0x19
,
0x75
,
0x93
,
0x79
,
0x2d
,
0x5e
,
0x22
,
0xb1
,
0xc2
,
0x48
,
0x3b
,
0x8e
,
0xc8
,
0x73
,
0x84
,
0xa9
,
0x44
,
0x35
,
0x28
,
0x33
,
0x89
,
0x28
,
0x62
,
0x79
,
0xd1
,
0x91
,
0xb9
,
0x2c
,
0x57
,
0x7b
,
0x4c
,
0xc7
,
0x48
,
0xe2
,
0xf2
,
0x84
,
0xe2
,
0xe4
,
0x77
,
0x4f
,
0xaa
,
0xeb
,
0x46
,
0x1a
,
0x18
,
0xb1
,
0x26
,
0x31
,
0x0c
,
0x1f
,
0x42
,
0xc1
,
0xd8
,
0x3a
,
0xe5
,
0x35
,
0x79
,
0x81
,
0x44
,
0x8a
,
0x58
,
0xda
,
0x71
,
0x44
,
0x3e
,
0x91
,
0x76
,
0x91
,
0xbf
,
0xa0
,
0x5c
,
0x82
,
0x7a
,
0x1e
,
0x7e
,
0x97
,
0xf0
,
0xc5
,
0xc0
,
0x49
,
0x2b
,
0x91
,
0x48
,
0x1c
,
0x55
,
0x83
,
0x42
,
0x20
,
0xce
,
0x7e
,
0xe7
,
0xa4
,
0xba
,
0x1e
,
0x4b
,
0x83
,
0x58
,
0xac
,
0x49
,
0xc6
,
0x5f
,
0xa7
,
0xa0
,
0xa4
,
0x0d
,
0x14
,
0x78
,
0x71
,
0xee
,
0x5a
,
0x17
,
0xe4
,
0xee
,
0x0d
,
0x00
,
0x04
,
0xc3
,
0x07
,
0x50
,
0xe4
,
0xef
,
0x28
,
0x97
,
0xa0
,
0x9e
,
0x87
,
0xdf
,
0x21
,
0x7c
,
0x31
,
0x70
,
0x3b
,
0x7a
,
0xc4
,
0x51
,
0x6b
,
0x2e
,
0xd6
,
0xb0
,
0xc3
,
0x98
,
0x4b
,
0x92
,
0x3d
,
0x11
,
0x03
,
0x5d
,
0xd2
,
0x4a
,
0x24
,
0x94
,
0xf1
,
0x37
,
0x29
,
0x28
,
0x69
,
0x03
,
0xf9
,
0x6e
,
0x94
,
0xbb
,
0xc6
,
0x05
,
0xc5
,
0x0c
,
0x63
,
0xa2
,
0x4e
,
0xbe
,
0x92
,
0x57
,
0x04
,
0x32
,
0x7b
,
0xa9
,
0x40
,
0xe6
,
0x12
,
0x04
,
0xb9
,
0xfb
,
0x31
,
0x80
,
0x15
,
0x3e
,
0xe5
,
0xa8
,
0x35
,
0x17
,
0x69
,
0xd8
,
0x61
,
0xcc
,
0x25
,
0xc9
,
0x18
,
0x41
,
0xca
,
0x27
,
0x83
,
0xf4
,
0x2e
,
0xf4
,
0xff
,
0xde
,
0x82
,
0xb2
,
0xaa
,
0xb3
,
0x2f
,
0x15
,
0x9e
,
0x88
,
0x81
,
0xae
,
0x62
,
0x86
,
0x31
,
0x51
,
0x27
,
0x5f
,
0xc9
,
0x2b
,
0x02
,
0x99
,
0xbd
,
0x54
,
0x83
,
0x6d
,
0xc8
,
0x85
,
0xae
,
0xb6
,
0x39
,
0x49
,
0x89
,
0x91
,
0x18
,
0xba
,
0x2c
,
0x00
,
0xda
,
0xae
,
0x20
,
0x73
,
0x09
,
0x02
,
0x62
,
0x41
,
0xca
,
0x27
,
0x83
,
0xf4
,
0x3e
,
0xf4
,
0xff
,
0xde
,
0x00
,
0x53
,
0xa4
,
0x69
,
0x12
,
0x1b
,
0x5b
,
0x66
,
0x61
,
0x63
,
0x8b
,
0xb7
,
0xac
,
0xac
,
0xb1
,
0x65
,
0xed
,
0x43
,
0xd5
,
0xdb
,
0x97
,
0x8a
,
0xc1
,
0x16
,
0xe4
,
0x02
,
0x47
,
0xdb
,
0x9c
,
0xa4
,
0xc4
,
0x48
,
0x0c
,
0x1c
,
0xb1
,
0xa7
,
0xd5
,
0xe4
,
0x6f
,
0xad
,
0x76
,
0xfe
,
0x94
,
0x06
,
0x64
,
0xde
,
0x8b
,
0x78
,
0x7c
,
0x2f
,
0x16
,
0x00
,
0x6d
,
0x57
,
0xd2
,
0x34
,
0x89
,
0x8d
,
0x2d
,
0xb3
,
0xb0
,
0xb1
,
0x45
,
0x5b
,
0x56
,
0x36
,
0x9d
,
0x08
,
0xff
,
0x5b
,
0x99
,
0x5a
,
0x6a
,
0xa0
,
0xef
,
0x43
,
0x51
,
0xbf
,
0x0d
,
0x55
,
0x0b
,
0xbc
,
0xb6
,
0x65
,
0xed
,
0x41
,
0xb1
,
0xa7
,
0xd5
,
0xe6
,
0xef
,
0xac
,
0x76
,
0xfe
,
0x94
,
0x06
,
0x14
,
0xbf
,
0xdb
,
0xb5
,
0xa8
,
0xb8
,
0x8a
,
0x9b
,
0x88
,
0x01
,
0x64
,
0x4e
,
0x89
,
0xe0
,
0xc9
,
0xe2
,
0x02
,
0x84
,
0x1f
,
0xf1
,
0xf8
,
0x5e
,
0x3a
,
0x11
,
0xfe
,
0xb7
,
0x32
,
0xb5
,
0xd4
,
0x40
,
0xdf
,
0x87
,
0xa2
,
0x7e
,
0x53
,
0xba
,
0x0e
,
0xff
,
0xd3
,
0x82
,
0x6b
,
0x89
,
0xfb
,
0xdd
,
0xd5
,
0x62
,
0xa5
,
0xb3
,
0x9a
,
0x4a
,
0x2b
,
0xaa
,
0x16
,
0x78
,
0xb7
,
0x6b
,
0x61
,
0x71
,
0x15
,
0x35
,
0x91
,
0x18
,
0x90
,
0x39
,
0x25
,
0x82
,
0xb0
,
0x7a
,
0xc5
,
0xc3
,
0x68
,
0xc1
,
0xd3
,
0xcc
,
0xbb
,
0x7a
,
0x9a
,
0x5d
,
0xe2
,
0xe9
,
0xdf
,
0x2c
,
0x27
,
0x8b
,
0x0b
,
0x10
,
0x4e
,
0xe9
,
0x3a
,
0xfc
,
0x4f
,
0x03
,
0xae
,
0x25
,
0xee
,
0x79
,
0x57
,
0x8b
,
0xa8
,
0x24
,
0x56
,
0x58
,
0xe0
,
0xa1
,
0x2f
,
0xa0
,
0x14
,
0xea
,
0x99
,
0x2a
,
0xfd
,
0xfd
,
0x20
,
0x0a
,
0x95
,
0xce
,
0x6a
,
0x2a
,
0xc1
,
0xea
,
0x15
,
0x0f
,
0xa3
,
0x05
,
0x4f
,
0x33
,
0xef
,
0xeb
,
0x69
,
0x76
,
0x4a
,
0x32
,
0x8b
,
0x89
,
0x89
,
0x47
,
0x9f
,
0x43
,
0x31
,
0xb4
,
0xfd
,
0x53
,
0x1a
,
0x1e
,
0xeb
,
0xef
,
0x89
,
0xa7
,
0x7f
,
0x33
,
0xa0
,
0x92
,
0x58
,
0x61
,
0xbe
,
0x8b
,
0xbe
,
0x84
,
0x52
,
0xa0
,
0x67
,
0xaa
,
0x67
,
0x3b
,
0x89
,
0xfe
,
0x1a
,
0xb5
,
0xc4
,
0xc0
,
0xb3
,
0xfe
,
0xe2
,
0xad
,
0x4c
,
0xf6
,
0x4f
,
0x5f
,
0xf4
,
0xf7
,
0x46
,
0x18
,
0x94
,
0x64
,
0x16
,
0x93
,
0x38
,
0x1e
,
0x7d
,
0x01
,
0xc5
,
0xc0
,
0xf2
,
0x4e
,
0xdc
,
0x5f
,
0xc7
,
0xe3
,
0x5f
,
0xa5
,
0x60
,
0xcb
,
0x60
,
0x26
,
0x48
,
0xd6
,
0x94
,
0x56
,
0xb2
,
0xa6
,
0x69
,
0x70
,
0xa4
,
0xbf
,
0xa3
,
0x6d
,
0x27
,
0xfa
,
0x6b
,
0xd4
,
0x92
,
0x18
,
0x9e
,
0xf5
,
0x17
,
0x6f
,
0x64
,
0x15
,
0xb0
,
0x72
,
0x42
,
0x62
,
0x44
,
0xe4
,
0x12
,
0x5a
,
0x46
,
0xab
,
0x98
,
0x4b
,
0xa2
,
0xc4
,
0x66
,
0xb2
,
0x7f
,
0xfa
,
0xe2
,
0xfe
,
0x3a
,
0x1e
,
0xff
,
0x2a
,
0x05
,
0x9b
,
0x31
,
0x66
,
0xfc
,
0x64
,
0xda
,
0x32
,
0x74
,
0xe8
,
0x13
,
0xc8
,
0xb0
,
0x91
,
0xdf
,
0x16
,
0x2b
,
0x0e
,
0x40
,
0x9f
,
0x2e
,
0x3c
,
0x4d
,
0x69
,
0x24
,
0x6b
,
0x4a
,
0x56
,
0x01
,
0x2b
,
0x27
,
0x24
,
0x46
,
0x44
,
0x2e
,
0xa1
,
0x65
,
0xb4
,
0x4e
,
0x2d
,
0x05
,
0xc7
,
0xaf
,
0x52
,
0xb7
,
0xa3
,
0x77
,
0xc6
,
0xdc
,
0x6a
,
0xb8
,
0x7a
,
0x68
,
0xfc
,
0x8a
,
0xb9
,
0x24
,
0x4a
,
0xac
,
0xad
,
0x98
,
0x0e
,
0xdd
,
0x81
,
0x0c
,
0x1b
,
0xf9
,
0x5d
,
0xb1
,
0xe2
,
0x75
,
0x0a
,
0xb6
,
0xc4
,
0x0d
,
0x82
,
0xdf
,
0x4b
,
0xf9
,
0x93
,
0xee
,
0xdb
,
0xb6
,
0x4f
,
0x7e
,
0x6f
,
0x00
,
0xf4
,
0xe9
,
0xc2
,
0x23
,
0xd5
,
0x52
,
0x70
,
0xf4
,
0x3a
,
0x75
,
0x37
,
0x7c
,
0x6f
,
0xcc
,
0xad
,
0x95
,
0xbb
,
0x89
,
0xf4
,
0x3e
,
0x56
,
0x5c
,
0x79
,
0x6b
,
0xb9
,
0x01
,
0xe0
,
0x04
,
0x44
,
0xbd
,
0x43
,
0x86
,
0xab
,
0x07
,
0xc7
,
0x5f
,
0xa7
,
0x60
,
0x53
,
0xdc
,
0x20
,
0xf8
,
0xcd
,
0x94
,
0x3f
,
0xed
,
0xbe
,
0x67
,
0xf8
,
0xd5
,
0x5e
,
0xd3
,
0xb0
,
0x9a
,
0xc8
,
0x16
,
0x77
,
0x16
,
0x99
,
0x9a
,
0x4a
,
0xe4
,
0xf5
,
0x6b
,
0xfb
,
0xe4
,
0x37
,
0x57
,
0xb9
,
0x9b
,
0x48
,
0xef
,
0x23
,
0xc5
,
0x95
,
0xb7
,
0x96
,
0x9b
,
0x90
,
0x4a
,
0x68
,
0x87
,
0xb3
,
0x80
,
0x3b
,
0x19
,
0xff
,
0x2f
,
0xe9
,
0xb8
,
0x21
,
0xed
,
0xf1
,
0x06
,
0x22
,
0xf1
,
0x9c
,
0xb1
,
0x20
,
0xa1
,
0x5c
,
0xdb
,
0x90
,
0x86
,
0x12
,
0x67
,
0x4c
,
0x09
,
0x6f
,
0x60
,
0x45
,
0x01
,
0x5a
,
0x69
,
0x93
,
0xbf
,
0xa0
,
0xb4
,
0xc1
,
0x4f
,
0x15
,
0x19
,
0x8d
,
0x97
,
0x47
,
0x8e
,
0x20
,
0x91
,
0x25
,
0x2e
,
0x2d
,
0x32
,
0x37
,
0x95
,
0xc8
,
0x0b
,
0x96
,
0xc0
,
0x0a
,
0x66
,
0x3e
,
0xf7
,
0x32
,
0x63
,
0x1f
,
0x32
,
0xce
,
0xf4
,
0xc4
,
0x95
,
0xf9
,
0xad
,
0x1e
,
0x2e
,
0x13
,
0x94
,
0x11
,
0x8e
,
0x61
,
0xfa
,
0x6d
,
0xd2
,
0x71
,
0x02
,
0xda
,
0xe3
,
0x0d
,
0x44
,
0x02
,
0xb4
,
0xda
,
0x26
,
0x7f
,
0x41
,
0x6d
,
0xe6
,
0x86
,
0x73
,
0x71
,
0xe3
,
0x17
,
0xd4
,
0x28
,
0x11
,
0xff
,
0xc3
,
0x52
,
0x17
,
0x35
,
0x3e
,
0xee
,
0x83
,
0x9f
,
0x29
,
0x36
,
0x1a
,
0xaf
,
0x0e
,
0x6d
,
0xc1
,
0xc6
,
0x1e
,
0x64
,
0xec
,
0xe9
,
0x89
,
0x23
,
0x90
,
0xce
,
0x2f
,
0x3a
,
0xa7
,
0xbe
,
0x59
,
0xa2
,
0x57
,
0x13
,
0xb9
,
0x6d
,
0x10
,
0x99
,
0x8d
,
0x58
,
0x13
,
0x5c
,
0xbd
,
0x60
,
0x26
,
0x38
,
0x23
,
0x1c
,
0xc3
,
0xcc
,
0x0d
,
0xe6
,
0xe2
,
0xd2
,
0x2f
,
0xb8
,
0xbb
,
0x0e
,
0x59
,
0x81
,
0xcf
,
0x73
,
0xb5
,
0x10
,
0x98
,
0x55
,
0x43
,
0xc7
,
0xa7
,
0xe2
,
0x27
,
0xcb
,
0x51
,
0x22
,
0xfe
,
0x87
,
0xa1
,
0x6e
,
0x6a
,
0x7c
,
0xdc
,
0x21
,
0x9d
,
0x5f
,
0x74
,
0x50
,
0x7d
,
0xbb
,
0x3a
,
0x6f
,
0x89
,
0x15
,
0xf8
,
0x0b
,
0x23
,
0x97
,
0xf8
,
0x3e
,
0xf1
,
0x1d
,
0xc8
,
0x32
,
0x97
,
0xd4
,
0x4c
,
0xaf
,
0x26
,
0x72
,
0x2b
,
0x46
,
0x64
,
0x36
,
0x64
,
0xed
,
0x3a
,
0x64
,
0x05
,
0x3e
,
0xcf
,
0xd5
,
0x3b
,
0xf2
,
0x2a
,
0xfe
,
0x04
,
0x08
,
0xdf
,
0x82
,
0x4d
,
0xd1
,
0x42
,
0xe8
,
0x6b
,
0x76
,
0xaa
,
0x72
,
0x42
,
0x60
,
0x56
,
0x0d
,
0x6d
,
0x8f
,
0x8a
,
0xbf
,
0x2d
,
0xeb
,
0xbc
,
0x25
,
0x52
,
0xe0
,
0x2f
,
0x63
,
0x33
,
0xd8
,
0x5d
,
0x34
,
0x7a
,
0x98
,
0xe0
,
0x02
,
0x26
,
0xb0
,
0x2d
,
0x70
,
0xcd
,
0xa9
,
0xfd
,
0x72
,
0xc9
,
0xc4
,
0x37
,
0x8a
,
0xef
,
0x42
,
0x96
,
0xb9
,
0xa4
,
0x1e
,
0x94
,
0x57
,
0xf1
,
0x27
,
0x40
,
0xf8
,
0x4c
,
0xe5
,
0x85
,
0x96
,
0x2d
,
0xe1
,
0x65
,
0xff
,
0xa7
,
0x10
,
0x64
,
0x9c
,
0xe0
,
0xf8
,
0x21
,
0x67
,
0x36
,
0x94
,
0x45
,
0x0b
,
0xa1
,
0x6f
,
0xd8
,
0xb1
,
0xca
,
0xcd
,
0x60
,
0x97
,
0x51
,
0xf5
,
0x34
,
0x21
,
0x71
,
0x9d
,
0xf0
,
0x6f
,
0x54
,
0x86
,
0xf4
,
0x24
,
0x38
,
0x95
,
0x8c
,
0xb1
,
0x4f
,
0xdc
,
0x81
,
0xf7
,
0x04
,
0x4c
,
0x60
,
0x4b
,
0xe0
,
0x9a
,
0x53
,
0xeb
,
0xd5
,
0x98
,
0xca
,
0x1b
,
0x2d
,
0x5b
,
0xc3
,
0xcb
,
0x97
,
0x8d
,
0xc9
,
0x9c
,
0xb8
,
0x03
,
0x59
,
0x9f
,
0x06
,
0x9e
,
0x72
,
0xe2
,
0x43
,
0xc3
,
0x89
,
0xa4
,
0x7e
,
0x54
,
0x21
,
0xc8
,
0xd8
,
0xfe
,
0xd1
,
0x63
,
0xce
,
0xe2
,
0x3a
,
0xe1
,
0xdf
,
0xc8
,
0x84
,
0xf4
,
0x09
,
0x44
,
0x60
,
0x71
,
0x07
,
0xe0
,
0x91
,
0x3b
,
0xb0
,
0xc7
,
0x47
,
0xce
,
0xbc
,
0x3f
,
0x67
,
0x36
,
0xc4
,
0x3f
,
0x95
,
0x8c
,
0xb1
,
0x4f
,
0xdc
,
0x81
,
0x0f
,
0x97
,
0x8d
,
0xc9
,
0x9c
,
0xb8
,
0x07
,
0x59
,
0x8c
,
0xe2
,
0x30
,
0xf3
,
0x6f
,
0x46
,
0xfd
,
0x88
,
0x3a
,
0xa7
,
0x23
,
0xb1
,
0xf9
,
0xa5
,
0x89
,
0x94
,
0x8f
,
0xfa
,
0xae
,
0x72
,
0xe2
,
0xa3
,
0x98
,
0x13
,
0x49
,
0x13
,
0x88
,
0xc0
,
0xe2
,
0x0e
,
0xc0
,
0x13
,
0x98
,
0xcf
,
0x4e
,
0xf4
,
0x6c
,
0x94
,
0x26
,
0x42
,
0x60
,
0x95
,
0x4e
,
0x91
,
0x8f
,
0x25
,
0x1e
,
0x6d
,
0x67
,
0x60
,
0x8d
,
0x0f
,
0xed
,
0x79
,
0x7f
,
0xce
,
0x6c
,
0x18
,
0x45
,
0x61
,
0xe6
,
0xdf
,
0x8c
,
0xfa
,
0x5e
,
0xeb
,
0xd9
,
0x66
,
0x19
,
0xd9
,
0x16
,
0x4d
,
0x96
,
0x5a
,
0x3a
,
0x59
,
0x7a
,
0xf9
,
0x64
,
0x19
,
0x11
,
0xb5
,
0x4f
,
0x47
,
0x62
,
0xf7
,
0x4b
,
0x13
,
0x29
,
0x31
,
0x9f
,
0xed
,
0xf0
,
0xe5
,
0x28
,
0x4d
,
0x6d
,
0xb2
,
0x38
,
0xfa
,
0xd9
,
0x95
,
0xd1
,
0xcf
,
0x25
,
0xa3
,
0x7f
,
0x17
,
0x4a
,
0x9a
,
0x7d
,
0x81
,
0x84
,
0xc0
,
0x4a
,
0x9d
,
0x22
,
0x1f
,
0x4b
,
0xbc
,
0xdb
,
0xbc
,
0xd1
,
0xb3
,
0xcd
,
0x88
,
0x65
,
0x5b
,
0x87
,
0x3e
,
0x82
,
0x74
,
0x38
,
0x57
,
0xa4
,
0xa9
,
0x55
,
0x17
,
0x73
,
0x42
,
0x58
,
0x2b
,
0x3e
,
0x82
,
0x38
,
0x59
,
0x6a
,
0xe9
,
0x64
,
0xe9
,
0xe5
,
0x93
,
0x65
,
0xb4
,
0xc9
,
0xa2
,
0xe8
,
0x67
,
0x57
,
0x46
,
0x8a
,
0xe4
,
0x8e
,
0x05
,
0x9c
,
0xd0
,
0x60
,
0x36
,
0xfe
,
0x4f
,
0xa2
,
0xd8
,
0x86
,
0x6b
,
0x84
,
0xbe
,
0x3f
,
0x97
,
0x8c
,
0xfe
,
0x7d
,
0x28
,
0x69
,
0xf6
,
0xf9
,
0x2e
,
0xfa
,
0x04
,
0xd2
,
0xc1
,
0x5c
,
0x91
,
0x5e
,
0x48
,
0x8b
,
0x1a
,
0xe4
,
0x7d
,
0x3e
,
0xb4
,
0x32
,
0xa7
,
0xaa
,
0x5d
,
0x8f
,
0x8d
,
0xb9
,
0x89
,
0xa6
,
0x56
,
0x5d
,
0xc4
,
0x09
,
0x61
,
0xad
,
0xf8
,
0x10
,
0x2a
,
0x92
,
0x3b
,
0x16
,
0x70
,
0x42
,
0xfd
,
0x02
,
0xee
,
0xff
,
0x14
,
0x20
,
0xfe
,
0xfb
,
0x8a
,
0x36
,
0x20
,
0xdf
,
0x68
,
0x76
,
0x8f
,
0x7b
,
0xed
,
0xd9
,
0xf8
,
0x3f
,
0x89
,
0x62
,
0x1b
,
0xae
,
0x11
,
0xfa
,
0x66
,
0x21
,
0x2d
,
0x6a
,
0x90
,
0xf7
,
0xf8
,
0x7e
,
0x79
,
0x0d
,
0x15
,
0x61
,
0xfd
,
0x69
,
0xbb
,
0xdf
,
0x6a
,
0x90
,
0xfa
,
0xd3
,
0xb2
,
0x85
,
0x2a
,
0xd0
,
0xca
,
0x9c
,
0xaa
,
0x76
,
0x3f
,
0x8e
,
0xcd
,
0x4d
,
0x14
,
0x70
,
0xef
,
0xa7
,
0x00
,
0xd1
,
0x4f
,
0x50
,
0xea
,
0x93
,
0x7a
,
0xa7
,
0x77
,
0xd8
,
0x24
,
0xed
,
0x4e
,
0xf7
,
0x71
,
0xbf
,
0x9c
,
0x42
,
0x08
,
0x58
,
0xb4
,
0x01
,
0xf9
,
0x46
,
0xb3
,
0x7b
,
0xd4
,
0x6b
,
0xf7
,
0xcd
,
0x35
,
0x54
,
0x84
,
0xf5
,
0x67
,
0x36
,
0x95
,
0xea
,
0xf8
,
0x71
,
0x9f
,
0xe9
,
0xd2
,
0xa8
,
0x04
,
0x85
,
0xfa
,
0xe3
,
0x7e
,
0xeb
,
0x98
,
0xed
,
0x7e
,
0xab
,
0x41
,
0xea
,
0xcf
,
0x4c
,
0x03
,
0x55
,
0xa0
,
0xd4
,
0x27
,
0xf5
,
0x4e
,
0xef
,
0xa0
,
0xb4
,
0x5f
,
0x34
,
0xcb
,
0x99
,
0xfd
,
0x3a
,
0xa7
,
0x2b
,
0xfe
,
0x83
,
0xc9
,
0xda
,
0xa3
,
0xdf
,
0x8e
,
0x49
,
0xda
,
0x9d
,
0xee
,
0x71
,
0xdf
,
0x4c
,
0x21
,
0x04
,
0x65
,
0xa5
,
0x3a
,
0x3a
,
0xee
,
0x33
,
0x5d
,
0xe5
,
0x35
,
0xb4
,
0x09
,
0x10
,
0xff
,
0x9a
,
0x15
,
0xb3
,
0xc8
,
0xb7
,
0x24
,
0xa9
,
0x4a
,
0xed
,
0x7f
,
0x1a
,
0x95
,
0xa0
,
0x50
,
0x3f
,
0xee
,
0xb7
,
0x8e
,
0x48
,
0xfb
,
0x65
,
0xd3
,
0xcc
,
0xec
,
0xd5
,
0x39
,
0xc4
,
0x33
,
0x22
,
0xfa
,
0x83
,
0x82
,
0xf2
,
0x90
,
0xae
,
0x0f
,
0x87
,
0xe5
,
0x35
,
0x04
,
0x90
,
0x6b
,
0x5d
,
0xd1
,
0xaf
,
0x4c
,
0xd6
,
0x1e
,
0xfe
,
0x7f
,
0x34
,
0xd7
,
0x50
,
0x19
,
0x20
,
0xfa
,
0x43
,
0x2b
,
0xd0
,
0x31
,
0x0d
,
0x69
,
0xd9
,
0xda
,
0xff
,
0x01
,
0x40
,
0xbc
,
0x29
,
0xa2
,
0x02
,
0x64
,
0x1f
,
0x77
,
0x66
,
0x91
,
0x8f
,
0x49
,
0x52
,
0x95
,
0xda
,
0xfb
,
0x84
,
0x67
,
0x44
,
0xf8
,
0x2b
,
0x05
,
0xe5
,
0x21
,
0x1a
,
0xcd
,
0xc3
,
0xf2
,
0x1a
,
0xfb
,
0x7c
,
0x52
,
0x7f
,
0xd4
,
0x6e
,
0x94
,
0x2d
,
0x86
,
0x3f
,
0x24
,
0x5d
,
0x1f
,
0x0e
,
0xcd
,
0x35
,
0x04
,
0x90
,
0x6b
,
0xd0
,
0x31
,
0x0d
,
0xa8
,
0x69
,
0xec
,
0xfd
,
0x00
,
0xc7
,
0x2f
,
0x9a
,
0x9d
,
0x72
,
0x0a
,
0xad
,
0x43
,
0xe6
,
0x71
,
0xaf
,
0xd9
,
0x28
,
0xa7
,
0xf7
,
0x7f
,
0x20
,
0xda
,
0x14
,
0x51
,
0x01
,
0xb2
,
0xc7
,
0x9d
,
0x46
,
0xf3
,
0xc0
,
0x5c
,
0x63
,
0x9f
,
0x4f
,
0xeb
,
0x04
,
0xef
,
0x1d
,
0x39
,
0x73
,
0xb5
,
0x20
,
0x83
,
0x81
,
0x3d
,
0x95
,
0x83
,
0xac
,
0x43
,
0xa6
,
0xdd
,
0x4f
,
0xda
,
0x0d
,
0xd3
,
0x60
,
0xf8
,
0x03
,
0x72
,
0xf4
,
0xb2
,
0xd9
,
0x31
,
0x53
,
0x68
,
0x1d
,
0x32
,
0x78
,
0xd4
,
0x14
,
0x44
,
0xf4
,
0xee
,
0xd7
,
0x3b
,
0x9d
,
0x76
,
0xe7
,
0x41
,
0xd9
,
0x62
,
0xd2
,
0x61
,
0xc7
,
0xbd
,
0x66
,
0xc3
,
0x4c
,
0xef
,
0x7d
,
0x0e
,
0x19
,
0xb6
,
0x17
,
0x33
,
0xd7
,
0x7b
,
0xdd
,
0x66
,
0xbb
,
0xd3
,
0xee
,
0xb5
,
0x9a
,
0x8d
,
0x72
,
0xaa
,
0xf6
,
0xb5
,
0x05
,
0x30
,
0x71
,
0xe6
,
0xea
,
0x55
,
0xa7
,
0xd1
,
0x24
,
0xc2
,
0x75
,
0xd2
,
0xec
,
0x1f
,
0x93
,
0x4e
,
0x93
,
0x98
,
0x06
,
0x37
,
0x52
,
0xf9
,
0xea
,
0x2e
,
0x6c
,
0x3d
,
0x48
,
0x8c
,
0xa3
,
0x1e
,
0x1e
,
0x08
,
0x7d
,
0xdd
,
0x71
,
0xc6
,
0x3b
,
0xe5
,
0x44
,
0xcc
,
0xd4
,
0xde
,
0x8f
,
0xe0
,
0x83
,
0x43
,
0x7b
,
0xae
,
0xd6
,
0xb0
,
0x3f
,
0xb0
,
0xa6
,
0x72
,
0x58
,
0xec
,
0x85
,
0xbe
,
0x33
,
0x3d
,
0xc5
,
0x6b
,
0xe8
,
0x33
,
0xd8
,
0x10
,
0x5d
,
0x98
,
0x0f
,
0x97
,
0xde
,
0x75
,
0xc8
,
0xb4
,
0x1b
,
0x4f
,
0x9a
,
0x62
,
0x80
,
0xde
,
0xc3
,
0x7a
,
0xa7
,
0xd3
,
0xee
,
0x3c
,
0xea
,
0xf1
,
0x39
,
0x94
,
0x8c
,
0xf0
,
0xa3
,
0xad
,
0x18
,
0xc4
,
0xf7
,
0x94
,
0x9d
,
0x9d
,
0x58
,
0x91
,
0x32
,
0x0d
,
0x26
,
0x1d
,
0xb4
,
0x3b
,
0xed
,
0x5e
,
0xab
,
0xd9
,
0x30
,
0x53
,
0xb5
,
0x6f
,
0x0c
,
0x80
,
0x4c
,
0x14
,
0xbc
,
0xf6
,
0x32
,
0xc7
,
0xff
,
0xce
,
0xdf
,
0xf9
,
0x77
,
0x00
,
0x00
,
0x00
,
0xff
,
0xff
,
0x89
,
0x3d
,
0x57
,
0x2f
,
0x59
,
0xf7
,
0x61
,
0xf3
,
0x51
,
0x62
,
0x1c
,
0xf5
,
0x58
,
0x41
,
0xe8
,
0x9b
,
0x53
,
0x45
,
0xb1
,
0xbd
,
0xd2
,
0x1f
,
0x00
,
0x00
,
0x8e
,
0x3d
,
0xde
,
0x36
,
0x23
,
0xb1
,
0x17
,
0x78
,
0xf6
,
0xf4
,
0x14
,
0xaf
,
0xa1
,
0xcf
,
0x60
,
0x43
,
0x74
,
0x61
,
0x6e
,
0x5f
,
0xaa
,
0xc7
,
0x17
,
0x50
,
0x8a
,
0x65
,
0x0c
,
0xda
,
0x8c
,
0x40
,
0x7c
,
0x1b
,
0xda
,
0xde
,
0x8e
,
0x14
,
0xc9
,
0xdc
,
0xc2
,
0x6b
,
0xaf
,
0x72
,
0xfc
,
0xbf
,
0xfe
,
0xbd
,
0x7f
,
0x07
,
0x00
,
0x00
,
0xff
,
0xff
,
0x1d
,
0x09
,
0x71
,
0xcc
,
0x0c
,
0x20
,
0x00
,
0x00
,
}
}
// Reference imports to suppress errors if they are not otherwise used.
// Reference imports to suppress errors if they are not otherwise used.
...
...
plugin/dapp/mix/wallet/mixbizdb.go
View file @
ce15f935
...
@@ -350,11 +350,15 @@ func (p *mixPolicy) decodeSecret(noteHash string, secretData string, privacyKeys
...
@@ -350,11 +350,15 @@ func (p *mixPolicy) decodeSecret(noteHash string, secretData string, privacyKeys
//如果授权为returnerAuthHash,则returner更新本地为VALID,spender侧仍为FROZEN,
//如果授权为returnerAuthHash,则returner更新本地为VALID,spender侧仍为FROZEN,
info
.
AuthorizeSpendHash
=
"0"
info
.
AuthorizeSpendHash
=
"0"
if
len
(
rawData
.
AuthorizePubKey
)
>
LENNULLKEY
{
if
len
(
rawData
.
AuthorizePubKey
)
>
LENNULLKEY
{
if
rawData
.
ReceiverPubKey
==
key
.
Privacy
.
PaymentKey
.
ReceiverPubKey
{
switch
key
.
Privacy
.
PaymentKey
.
ReceiverPubKey
{
case
rawData
.
ReceiverPubKey
:
info
.
Role
=
mixTy
.
Role_SPENDER
info
.
AuthorizeSpendHash
=
getFrString
(
mimcHashString
([]
string
{
rawData
.
ReceiverPubKey
,
rawData
.
Amount
,
rawData
.
NoteRandom
}))
info
.
AuthorizeSpendHash
=
getFrString
(
mimcHashString
([]
string
{
rawData
.
ReceiverPubKey
,
rawData
.
Amount
,
rawData
.
NoteRandom
}))
}
else
if
rawData
.
ReturnPubKey
==
key
.
Privacy
.
PaymentKey
.
ReceiverPubKey
{
case
rawData
.
ReturnPubKey
:
info
.
IsReturner
=
true
info
.
Role
=
mixTy
.
Role_RETURNER
info
.
AuthorizeSpendHash
=
getFrString
(
mimcHashString
([]
string
{
rawData
.
ReturnPubKey
,
rawData
.
Amount
,
rawData
.
NoteRandom
}))
info
.
AuthorizeSpendHash
=
getFrString
(
mimcHashString
([]
string
{
rawData
.
ReturnPubKey
,
rawData
.
Amount
,
rawData
.
NoteRandom
}))
case
rawData
.
AuthorizePubKey
:
info
.
Role
=
mixTy
.
Role_AUTHORIZER
}
}
}
}
...
...
plugin/dapp/mix/wallet/proof.go
View file @
ce15f935
...
@@ -210,12 +210,12 @@ func (policy *mixPolicy) withdrawProof(req *mixTy.WithdrawProofReq) (*mixTy.With
...
@@ -210,12 +210,12 @@ func (policy *mixPolicy) withdrawProof(req *mixTy.WithdrawProofReq) (*mixTy.With
resp
.
NullifierHash
=
note
.
Nullifier
resp
.
NullifierHash
=
note
.
Nullifier
resp
.
AuthorizeSpendHash
=
note
.
AuthorizeSpendHash
resp
.
AuthorizeSpendHash
=
note
.
AuthorizeSpendHash
resp
.
NoteHash
=
note
.
NoteHash
resp
.
NoteHash
=
note
.
NoteHash
resp
.
SpendFlag
=
1
resp
.
SpendFlag
=
"1"
if
note
.
IsReturner
{
if
note
.
Role
==
mixTy
.
Role_RETURNER
{
resp
.
SpendFlag
=
0
resp
.
SpendFlag
=
"0"
}
}
if
len
(
resp
.
AuthorizeSpendHash
)
>
LENNULLKEY
{
if
len
(
resp
.
AuthorizeSpendHash
)
>
LENNULLKEY
{
resp
.
AuthorizeFlag
=
1
resp
.
AuthorizeFlag
=
"1"
}
}
//get spend privacy key
//get spend privacy key
...
@@ -260,10 +260,10 @@ func (policy *mixPolicy) authProof(req *mixTy.AuthProofReq) (*mixTy.AuthProofRes
...
@@ -260,10 +260,10 @@ func (policy *mixPolicy) authProof(req *mixTy.AuthProofReq) (*mixTy.AuthProofRes
resp
.
AuthHash
=
getFrString
(
mimcHashString
([]
string
{
resp
.
AuthPubKey
,
note
.
Secret
.
NoteRandom
}))
resp
.
AuthHash
=
getFrString
(
mimcHashString
([]
string
{
resp
.
AuthPubKey
,
note
.
Secret
.
NoteRandom
}))
//default auto to paymenter
//default auto to paymenter
resp
.
SpendFlag
=
1
resp
.
SpendFlag
=
"1"
resp
.
AuthorizeSpendHash
=
getFrString
(
mimcHashString
([]
string
{
note
.
Secret
.
ReceiverPubKey
,
note
.
Secret
.
Amount
,
note
.
Secret
.
NoteRandom
}))
resp
.
AuthorizeSpendHash
=
getFrString
(
mimcHashString
([]
string
{
note
.
Secret
.
ReceiverPubKey
,
note
.
Secret
.
Amount
,
note
.
Secret
.
NoteRandom
}))
if
req
.
ToReturn
!=
0
{
if
req
.
ToReturn
!=
0
{
resp
.
SpendFlag
=
0
resp
.
SpendFlag
=
"0"
//auth to returner
//auth to returner
resp
.
AuthorizeSpendHash
=
getFrString
(
mimcHashString
([]
string
{
note
.
Secret
.
ReturnPubKey
,
note
.
Secret
.
Amount
,
note
.
Secret
.
NoteRandom
}))
resp
.
AuthorizeSpendHash
=
getFrString
(
mimcHashString
([]
string
{
note
.
Secret
.
ReturnPubKey
,
note
.
Secret
.
Amount
,
note
.
Secret
.
NoteRandom
}))
}
}
...
@@ -313,12 +313,12 @@ func (policy *mixPolicy) getTransferInputPart(note *mixTy.WalletIndexInfo) (*mix
...
@@ -313,12 +313,12 @@ func (policy *mixPolicy) getTransferInputPart(note *mixTy.WalletIndexInfo) (*mix
return
nil
,
errors
.
Wrapf
(
types
.
ErrInvalidParam
,
"payment pubkey from note=%s not match from privacyKey=%s,for account =%s"
,
return
nil
,
errors
.
Wrapf
(
types
.
ErrInvalidParam
,
"payment pubkey from note=%s not match from privacyKey=%s,for account =%s"
,
note
.
Secret
.
ReceiverPubKey
,
privacyKey
.
Privacy
.
PaymentKey
.
ReceiverPubKey
,
note
.
Account
)
note
.
Secret
.
ReceiverPubKey
,
privacyKey
.
Privacy
.
PaymentKey
.
ReceiverPubKey
,
note
.
Account
)
}
}
input
.
SpendFlag
=
1
input
.
SpendFlag
=
"1"
if
note
.
IsReturner
{
if
note
.
Role
==
mixTy
.
Role_RETURNER
{
input
.
SpendFlag
=
0
input
.
SpendFlag
=
"0"
}
}
if
len
(
input
.
AuthorizeSpendHash
)
>
LENNULLKEY
{
if
len
(
input
.
AuthorizeSpendHash
)
>
LENNULLKEY
{
input
.
AuthorizeFlag
=
1
input
.
AuthorizeFlag
=
"1"
}
}
treeProof
,
err
:=
policy
.
getTreeProof
(
note
.
NoteHash
)
treeProof
,
err
:=
policy
.
getTreeProof
(
note
.
NoteHash
)
...
...
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