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
960e7656
Commit
960e7656
authored
Nov 01, 2021
by
hezhengjun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add para check for mine
parent
6584e084
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
181 additions
and
129 deletions
+181
-129
BridgeBank.sol
plugin/dapp/bridgevmxgo/contracts/BridgeBank/BridgeBank.sol
+1
-1
EvmAssetBank.sol
...in/dapp/bridgevmxgo/contracts/BridgeBank/EvmAssetBank.sol
+2
-2
BridgeBank.go
plugin/dapp/bridgevmxgo/contracts/generated/BridgeBank.go
+0
-0
evmxgodb.go
plugin/dapp/evmxgo/executor/evmxgodb.go
+4
-16
exec.go
plugin/dapp/evmxgo/executor/exec.go
+12
-3
parse.go
plugin/dapp/evmxgo/executor/parse.go
+40
-0
evmxgo.proto
plugin/dapp/evmxgo/proto/evmxgo.proto
+1
-0
evmxgo.pb.go
plugin/dapp/evmxgo/types/evmxgo.pb.go
+121
-107
No files found.
plugin/dapp/bridgevmxgo/contracts/BridgeBank/BridgeBank.sol
View file @
960e7656
...
...
@@ -213,7 +213,7 @@ contract BridgeBank is GoAssetBank, EvmAssetBank {
* @param _amount: value of deposit
*/
function lock(
bytes memory
_recipient,
address
_recipient,
address _token,
uint256 _amount
)
...
...
plugin/dapp/bridgevmxgo/contracts/BridgeBank/EvmAssetBank.sol
View file @
960e7656
...
...
@@ -34,7 +34,7 @@ contract EvmAssetBank {
*/
event LogLock(
address _from,
byte
s _to,
addres
s _to,
address _token,
string _symbol,
uint256 _value,
...
...
@@ -183,7 +183,7 @@ contract EvmAssetBank {
*/
function lockFunds(
address payable _sender,
bytes memory
_recipient,
address
_recipient,
address _token,
string memory _symbol,
uint256 _amount
...
...
plugin/dapp/bridgevmxgo/contracts/generated/BridgeBank.go
View file @
960e7656
This source diff could not be displayed because it is too large. You can
view the blob
instead.
plugin/dapp/evmxgo/executor/evmxgodb.go
View file @
960e7656
...
...
@@ -95,7 +95,6 @@ func (e *evmxgoDB) burn(db dbm.KV, amount int64) ([]*types.KeyValue, []*types.Re
return
kvs
,
logs
,
nil
}
type
evmxgoAction
struct
{
coinsAccount
*
account
.
DB
db
dbm
.
KV
...
...
@@ -115,7 +114,6 @@ func newEvmxgoAction(e *evmxgo, toaddr string, tx *types.Transaction) *evmxgoAct
e
.
GetBlockTime
(),
e
.
GetHeight
(),
dapp
.
ExecAddress
(
string
(
tx
.
Execer
)),
e
.
GetAPI
()}
}
func
getManageKey
(
key
string
,
db
dbm
.
KV
)
([]
byte
,
error
)
{
manageKey
:=
types
.
ManageKey
(
key
)
value
,
err
:=
db
.
Get
([]
byte
(
manageKey
))
...
...
@@ -183,7 +181,6 @@ func loadEvmxgoMintConfig(db dbm.KV, symbol string) (*evmxgotypes.EvmxgoMintConf
return
nil
,
err
// types.ErrBadConfigValue
}
configValue
:=
item
.
GetArr
()
.
Value
if
len
(
configValue
)
<=
0
{
return
nil
,
evmxgotypes
.
ErrEvmxgoSymbolNotConfigValue
...
...
@@ -247,21 +244,11 @@ func AddTokenToAssets(addr string, db dbm.KVDB, symbol string) []*types.KeyValue
return
kv
}
// 同时比较配置symbol与address参数,和parse返回值是否一致
func
check
()
(
address
,
symbol
string
,
amount
int64
,
err
error
)
{
return
""
,
""
,
0
,
err
}
func
parse
()
(
address
,
symbol
string
,
amount
int64
,
err
error
)
{
// 上一个交易是否lock执行成功,如果是,返回实际参数,不是返回error
return
""
,
""
,
0
,
err
}
// 铸币不可控, 也是麻烦。 2选1
// 1. 谁可以发起
// 2. 是否需要审核 这个会增加管理的成本
// 现在实现选择 1
func
(
action
*
evmxgoAction
)
mint
(
mint
*
evmxgotypes
.
EvmxgoMint
)
(
*
types
.
Receipt
,
error
)
{
func
(
action
*
evmxgoAction
)
mint
(
mint
*
evmxgotypes
.
EvmxgoMint
,
tx2lock
*
types
.
Transaction
)
(
*
types
.
Receipt
,
error
)
{
if
mint
==
nil
{
return
nil
,
types
.
ErrInvalidParam
}
...
...
@@ -269,7 +256,9 @@ func (action *evmxgoAction) mint(mint *evmxgotypes.EvmxgoMint) (*types.Receipt,
return
nil
,
types
.
ErrInvalidParam
}
cfg
:=
action
.
api
.
GetConfig
()
parse
()
if
err
:=
checkMinePara
(
mint
,
tx2lock
);
nil
!=
err
{
return
nil
,
err
}
// TODO check()
evmxgodb
,
err
:=
loadEvmxgoDB
(
action
.
db
,
mint
.
GetSymbol
())
...
...
@@ -343,4 +332,3 @@ func (action *evmxgoAction) burn(burn *evmxgotypes.EvmxgoBurn) (*types.Receipt,
return
&
types
.
Receipt
{
Ty
:
types
.
ExecOk
,
KV
:
kvs
,
Logs
:
logs
},
nil
}
plugin/dapp/evmxgo/executor/exec.go
View file @
960e7656
package
executor
import
(
"errors"
"github.com/33cn/chain33/account"
"github.com/33cn/chain33/types"
evmxgotypes
"github.com/33cn/plugin/plugin/dapp/evmxgo/types"
...
...
@@ -60,11 +62,18 @@ func (e *evmxgo) Exec_TransferToExec(payload *types.AssetsTransferToExec, tx *ty
}
func
(
e
*
evmxgo
)
Exec_Mint
(
payload
*
evmxgotypes
.
EvmxgoMint
,
tx
*
types
.
Transaction
,
index
int
)
(
*
types
.
Receipt
,
error
)
{
action
:=
newEvmxgoAction
(
e
,
""
,
tx
)
return
action
.
mint
(
payload
)
action
:=
newEvmxgoAction
(
e
,
""
,
tx
)
txGroup
,
err
:=
e
.
GetTxGroup
(
index
)
if
nil
!=
err
{
return
nil
,
err
}
if
len
(
txGroup
)
<
2
{
return
nil
,
errors
.
New
(
"Mint tx should be included in lock tx group"
)
}
return
action
.
mint
(
payload
,
txGroup
[
0
])
}
func
(
e
*
evmxgo
)
Exec_Burn
(
payload
*
evmxgotypes
.
EvmxgoBurn
,
tx
*
types
.
Transaction
,
index
int
)
(
*
types
.
Receipt
,
error
)
{
action
:=
newEvmxgoAction
(
e
,
""
,
tx
)
action
:=
newEvmxgoAction
(
e
,
""
,
tx
)
return
action
.
burn
(
payload
)
}
plugin/dapp/evmxgo/executor/parse.go
0 → 100644
View file @
960e7656
package
executor
import
(
"errors"
"github.com/33cn/chain33/types"
bridgevmxgo
"github.com/33cn/plugin/plugin/dapp/bridgevmxgo/contracts/generated"
chain33Abi
"github.com/33cn/plugin/plugin/dapp/evm/executor/abi"
evmxgotypes
"github.com/33cn/plugin/plugin/dapp/evmxgo/types"
)
const
(
LockMethod
=
"lock"
)
//solidity interface: function lock(address _recipient, address _token, uint256 _amount)
func
checkMinePara
(
mint
*
evmxgotypes
.
EvmxgoMint
,
tx2lock
*
types
.
Transaction
)
error
{
unpack
,
err
:=
chain33Abi
.
Unpack
(
tx2lock
.
Payload
,
LockMethod
,
bridgevmxgo
.
BridgeBankABI
)
if
err
!=
nil
{
return
err
}
for
_
,
para
:=
range
unpack
{
switch
para
.
Name
{
case
"_recipient"
:
if
mint
.
Address
!=
para
.
Value
{
return
errors
.
New
(
"Not consitent recipient address"
)
}
case
"_amount"
:
if
mint
.
Amount
!=
para
.
Value
{
return
errors
.
New
(
"Not consitent Amount"
)
}
case
"_token"
:
if
mint
.
Token
!=
para
.
Value
{
return
errors
.
New
(
"Not consitent token Address"
)
}
}
}
return
nil
}
plugin/dapp/evmxgo/proto/evmxgo.proto
View file @
960e7656
...
...
@@ -22,6 +22,7 @@ message EvmxgoMint {
string
symbol
=
1
;
int64
amount
=
2
;
string
address
=
3
;
string
token
=
4
;
}
message
EvmxgoBurn
{
...
...
plugin/dapp/evmxgo/types/evmxgo.pb.go
View file @
960e7656
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.2
6
.0
// protoc v3.
15.8
// protoc-gen-go v1.2
3
.0
// protoc v3.
9.1
// source: evmxgo.proto
package
types
...
...
@@ -9,6 +9,7 @@ package types
import
(
context
"context"
types
"github.com/33cn/chain33/types"
proto
"github.com/golang/protobuf/proto"
grpc
"google.golang.org/grpc"
protoreflect
"google.golang.org/protobuf/reflect/protoreflect"
protoimpl
"google.golang.org/protobuf/runtime/protoimpl"
...
...
@@ -23,6 +24,10 @@ const (
_
=
protoimpl
.
EnforceVersion
(
protoimpl
.
MaxVersion
-
20
)
)
// This is a compile-time assertion that a sufficiently up-to-date version
// of the legacy proto package is being used.
const
_
=
proto
.
ProtoPackageIsVersion4
// action
type
EvmxgoAction
struct
{
state
protoimpl
.
MessageState
...
...
@@ -162,6 +167,7 @@ type EvmxgoMint 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"`
Address
string
`protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"`
Token
string
`protobuf:"bytes,4,opt,name=token,proto3" json:"token,omitempty"`
}
func
(
x
*
EvmxgoMint
)
Reset
()
{
...
...
@@ -217,6 +223,13 @@ func (x *EvmxgoMint) GetAddress() string {
return
""
}
func
(
x
*
EvmxgoMint
)
GetToken
()
string
{
if
x
!=
nil
{
return
x
.
Token
}
return
""
}
type
EvmxgoBurn
struct
{
state
protoimpl
.
MessageState
sizeCache
protoimpl
.
SizeCache
...
...
@@ -1310,116 +1323,117 @@ var file_evmxgo_proto_rawDesc = []byte{
0x32
,
0x11
,
0x2e
,
0x74
,
0x79
,
0x70
,
0x65
,
0x73
,
0x2e
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x42
,
0x75
,
0x72
,
0x6e
,
0x48
,
0x00
,
0x52
,
0x04
,
0x62
,
0x75
,
0x72
,
0x6e
,
0x12
,
0x0e
,
0x0a
,
0x02
,
0x54
,
0x79
,
0x18
,
0x06
,
0x20
,
0x01
,
0x28
,
0x05
,
0x52
,
0x02
,
0x54
,
0x79
,
0x42
,
0x07
,
0x0a
,
0x05
,
0x76
,
0x61
,
0x6c
,
0x75
,
0x65
,
0x22
,
0x
56
,
0x0a
,
0x0a
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x4d
,
0x69
,
0x61
,
0x6c
,
0x75
,
0x65
,
0x22
,
0x
6c
,
0x0a
,
0x0a
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x4d
,
0x69
,
0x6e
,
0x74
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x61
,
0x6d
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x03
,
0x52
,
0x06
,
0x61
,
0x6d
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x12
,
0x18
,
0x0a
,
0x07
,
0x61
,
0x64
,
0x64
,
0x72
,
0x65
,
0x73
,
0x73
,
0x18
,
0x03
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x07
,
0x61
,
0x64
,
0x64
,
0x72
,
0x65
,
0x73
,
0x73
,
0x22
,
0x3c
,
0x0a
,
0x0a
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x42
,
0x75
,
0x72
,
0x6e
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x79
,
0x01
,
0x28
,
0x09
,
0x52
,
0x07
,
0x61
,
0x64
,
0x64
,
0x72
,
0x65
,
0x73
,
0x73
,
0x12
,
0x14
,
0x0a
,
0x05
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x18
,
0x04
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x05
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x22
,
0x3c
,
0x0a
,
0x0a
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x42
,
0x75
,
0x72
,
0x6e
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x61
,
0x6d
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x03
,
0x52
,
0x06
,
0x61
,
0x6d
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x22
,
0x5a
,
0x0a
,
0x06
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x12
,
0x22
,
0x0a
,
0x0c
,
0x69
,
0x6e
,
0x74
,
0x72
,
0x6f
,
0x64
,
0x75
,
0x63
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x0c
,
0x69
,
0x6e
,
0x74
,
0x72
,
0x6f
,
0x64
,
0x75
,
0x63
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x12
,
0x14
,
0x0a
,
0x05
,
0x74
,
0x6f
,
0x74
,
0x61
,
0x6c
,
0x18
,
0x03
,
0x20
,
0x01
,
0x28
,
0x03
,
0x52
,
0x05
,
0x74
,
0x6f
,
0x74
,
0x61
,
0x6c
,
0x22
,
0x6e
,
0x0a
,
0x10
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x4d
,
0x69
,
0x6e
,
0x74
,
0x43
,
0x6f
,
0x6e
,
0x66
,
0x69
,
0x67
,
0x12
,
0x18
,
0x0a
,
0x07
,
0x61
,
0x64
,
0x64
,
0x72
,
0x65
,
0x73
,
0x73
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x07
,
0x61
,
0x64
,
0x64
,
0x72
,
0x65
,
0x73
,
0x73
,
0x12
,
0x1c
,
0x0a
,
0x09
,
0x70
,
0x72
,
0x65
,
0x63
,
0x69
,
0x73
,
0x69
,
0x6f
,
0x6e
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x05
,
0x52
,
0x09
,
0x70
,
0x72
,
0x65
,
0x63
,
0x69
,
0x73
,
0x69
,
0x6f
,
0x6e
,
0x12
,
0x22
,
0x0a
,
0x0c
,
0x69
,
0x6e
,
0x74
,
0x72
,
0x6f
,
0x64
,
0x75
,
0x63
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x18
,
0x03
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x0c
,
0x69
,
0x6e
,
0x74
,
0x72
,
0x6f
,
0x64
,
0x75
,
0x63
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x22
,
0x27
,
0x0a
,
0x0d
,
0x52
,
0x65
,
0x63
,
0x65
,
0x69
,
0x70
,
0x74
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x22
,
0x61
,
0x0a
,
0x13
,
0x52
,
0x65
,
0x63
,
0x65
,
0x69
,
0x70
,
0x74
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x41
,
0x6d
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x12
,
0x21
,
0x0a
,
0x04
,
0x70
,
0x72
,
0x65
,
0x76
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x0d
,
0x2e
,
0x74
,
0x79
,
0x70
,
0x65
,
0x73
,
0x2e
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x52
,
0x04
,
0x70
,
0x72
,
0x65
,
0x76
,
0x12
,
0x27
,
0x0a
,
0x07
,
0x63
,
0x75
,
0x72
,
0x72
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x0d
,
0x2e
,
0x74
,
0x79
,
0x70
,
0x65
,
0x73
,
0x2e
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x52
,
0x07
,
0x63
,
0x75
,
0x72
,
0x72
,
0x65
,
0x6e
,
0x74
,
0x22
,
0x7d
,
0x0a
,
0x0b
,
0x4c
,
0x6f
,
0x63
,
0x61
,
0x6c
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x12
,
0x22
,
0x0a
,
0x0c
,
0x69
,
0x6e
,
0x74
,
0x72
,
0x6f
,
0x64
,
0x75
,
0x63
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x0c
,
0x69
,
0x6e
,
0x74
,
0x72
,
0x6f
,
0x64
,
0x75
,
0x63
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x12
,
0x14
,
0x0a
,
0x05
,
0x74
,
0x6f
,
0x74
,
0x61
,
0x6c
,
0x18
,
0x03
,
0x20
,
0x01
,
0x28
,
0x03
,
0x52
,
0x05
,
0x74
,
0x6f
,
0x74
,
0x61
,
0x6c
,
0x12
,
0x1c
,
0x0a
,
0x09
,
0x70
,
0x72
,
0x65
,
0x63
,
0x69
,
0x73
,
0x69
,
0x6f
,
0x6e
,
0x18
,
0x04
,
0x20
,
0x01
,
0x28
,
0x05
,
0x52
,
0x09
,
0x70
,
0x72
,
0x65
,
0x63
,
0x69
,
0x73
,
0x69
,
0x6f
,
0x6e
,
0x22
,
0x7b
,
0x0a
,
0x0f
,
0x4c
,
0x6f
,
0x63
,
0x61
,
0x6c
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x4c
,
0x6f
,
0x67
,
0x73
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x61
,
0x6d
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x03
,
0x52
,
0x06
,
0x61
,
0x6d
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x22
,
0x5a
,
0x0a
,
0x06
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x12
,
0x22
,
0x0a
,
0x0c
,
0x69
,
0x6e
,
0x74
,
0x72
,
0x6f
,
0x64
,
0x75
,
0x63
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x0c
,
0x69
,
0x6e
,
0x74
,
0x72
,
0x6f
,
0x64
,
0x75
,
0x63
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x12
,
0x14
,
0x0a
,
0x05
,
0x74
,
0x6f
,
0x74
,
0x61
,
0x6c
,
0x18
,
0x03
,
0x20
,
0x01
,
0x28
,
0x03
,
0x52
,
0x05
,
0x74
,
0x6f
,
0x74
,
0x61
,
0x6c
,
0x22
,
0x6e
,
0x0a
,
0x10
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x4d
,
0x69
,
0x6e
,
0x74
,
0x43
,
0x6f
,
0x6e
,
0x66
,
0x69
,
0x67
,
0x12
,
0x18
,
0x0a
,
0x07
,
0x61
,
0x64
,
0x64
,
0x72
,
0x65
,
0x73
,
0x73
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x07
,
0x61
,
0x64
,
0x64
,
0x72
,
0x65
,
0x73
,
0x73
,
0x12
,
0x1c
,
0x0a
,
0x09
,
0x70
,
0x72
,
0x65
,
0x63
,
0x69
,
0x73
,
0x69
,
0x6f
,
0x6e
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x05
,
0x52
,
0x09
,
0x70
,
0x72
,
0x65
,
0x63
,
0x69
,
0x73
,
0x69
,
0x6f
,
0x6e
,
0x12
,
0x22
,
0x0a
,
0x0c
,
0x69
,
0x6e
,
0x74
,
0x72
,
0x6f
,
0x64
,
0x75
,
0x63
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x18
,
0x03
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x0c
,
0x69
,
0x6e
,
0x74
,
0x72
,
0x6f
,
0x64
,
0x75
,
0x63
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x22
,
0x27
,
0x0a
,
0x0d
,
0x52
,
0x65
,
0x63
,
0x65
,
0x69
,
0x70
,
0x74
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x22
,
0x61
,
0x0a
,
0x13
,
0x52
,
0x65
,
0x63
,
0x65
,
0x69
,
0x70
,
0x74
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x41
,
0x6d
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x12
,
0x21
,
0x0a
,
0x04
,
0x70
,
0x72
,
0x65
,
0x76
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x0d
,
0x2e
,
0x74
,
0x79
,
0x70
,
0x65
,
0x73
,
0x2e
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x52
,
0x04
,
0x70
,
0x72
,
0x65
,
0x76
,
0x12
,
0x27
,
0x0a
,
0x07
,
0x63
,
0x75
,
0x72
,
0x72
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x0d
,
0x2e
,
0x74
,
0x79
,
0x70
,
0x65
,
0x73
,
0x2e
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x52
,
0x07
,
0x63
,
0x75
,
0x72
,
0x72
,
0x65
,
0x6e
,
0x74
,
0x22
,
0x7d
,
0x0a
,
0x0b
,
0x4c
,
0x6f
,
0x63
,
0x61
,
0x6c
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x12
,
0x22
,
0x0a
,
0x0c
,
0x69
,
0x6e
,
0x74
,
0x72
,
0x6f
,
0x64
,
0x75
,
0x63
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x0c
,
0x69
,
0x6e
,
0x74
,
0x72
,
0x6f
,
0x64
,
0x75
,
0x63
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x12
,
0x14
,
0x0a
,
0x05
,
0x74
,
0x6f
,
0x74
,
0x61
,
0x6c
,
0x18
,
0x03
,
0x20
,
0x01
,
0x28
,
0x03
,
0x52
,
0x05
,
0x74
,
0x6f
,
0x74
,
0x61
,
0x6c
,
0x12
,
0x1c
,
0x0a
,
0x09
,
0x70
,
0x72
,
0x65
,
0x63
,
0x69
,
0x73
,
0x69
,
0x6f
,
0x6e
,
0x18
,
0x04
,
0x20
,
0x01
,
0x28
,
0x05
,
0x52
,
0x09
,
0x70
,
0x72
,
0x65
,
0x63
,
0x69
,
0x73
,
0x69
,
0x6f
,
0x6e
,
0x22
,
0x7b
,
0x0a
,
0x0f
,
0x4c
,
0x6f
,
0x63
,
0x61
,
0x6c
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x4c
,
0x6f
,
0x67
,
0x73
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x12
,
0x18
,
0x0a
,
0x07
,
0x74
,
0x78
,
0x49
,
0x6e
,
0x64
,
0x65
,
0x78
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x07
,
0x74
,
0x78
,
0x49
,
0x6e
,
0x64
,
0x65
,
0x78
,
0x12
,
0x1e
,
0x0a
,
0x0a
,
0x61
,
0x63
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x54
,
0x79
,
0x70
,
0x65
,
0x18
,
0x03
,
0x20
,
0x01
,
0x28
,
0x05
,
0x52
,
0x0a
,
0x61
,
0x63
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x54
,
0x79
,
0x70
,
0x65
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x74
,
0x78
,
0x48
,
0x61
,
0x73
,
0x68
,
0x18
,
0x04
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x74
,
0x78
,
0x48
,
0x61
,
0x73
,
0x68
,
0x22
,
0x40
,
0x0a
,
0x0a
,
0x52
,
0x65
,
0x71
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x73
,
0x12
,
0x1a
,
0x0a
,
0x08
,
0x71
,
0x75
,
0x65
,
0x72
,
0x79
,
0x41
,
0x6c
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x08
,
0x52
,
0x08
,
0x71
,
0x75
,
0x65
,
0x72
,
0x79
,
0x41
,
0x6c
,
0x6c
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x18
,
0x02
,
0x20
,
0x03
,
0x28
,
0x09
,
0x52
,
0x06
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x22
,
0x3a
,
0x0a
,
0x0c
,
0x52
,
0x65
,
0x70
,
0x6c
,
0x79
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x73
,
0x12
,
0x2a
,
0x0a
,
0x06
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x18
,
0x01
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x12
,
0x2e
,
0x74
,
0x79
,
0x70
,
0x65
,
0x73
,
0x2e
,
0x4c
,
0x6f
,
0x63
,
0x61
,
0x6c
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x52
,
0x06
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x22
,
0x38
,
0x0a
,
0x0a
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x52
,
0x65
,
0x63
,
0x76
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x65
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x65
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x72
,
0x65
,
0x63
,
0x76
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x03
,
0x52
,
0x04
,
0x72
,
0x65
,
0x63
,
0x76
,
0x22
,
0x4e
,
0x0a
,
0x17
,
0x52
,
0x65
,
0x70
,
0x6c
,
0x79
,
0x41
,
0x64
,
0x64
,
0x72
,
0x52
,
0x65
,
0x63
,
0x76
,
0x46
,
0x6f
,
0x72
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x73
,
0x12
,
0x33
,
0x0a
,
0x0b
,
0x65
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x52
,
0x65
,
0x63
,
0x76
,
0x73
,
0x18
,
0x01
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x11
,
0x2e
,
0x74
,
0x79
,
0x70
,
0x65
,
0x73
,
0x2e
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x52
,
0x65
,
0x63
,
0x76
,
0x52
,
0x0b
,
0x65
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x52
,
0x65
,
0x63
,
0x76
,
0x73
,
0x22
,
0x3b
,
0x0a
,
0x0d
,
0x52
,
0x65
,
0x70
,
0x6c
,
0x79
,
0x41
,
0x63
,
0x63
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x73
,
0x12
,
0x2a
,
0x0a
,
0x08
,
0x61
,
0x63
,
0x63
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x73
,
0x18
,
0x01
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x0e
,
0x2e
,
0x74
,
0x79
,
0x70
,
0x65
,
0x73
,
0x2e
,
0x41
,
0x63
,
0x63
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x52
,
0x08
,
0x61
,
0x63
,
0x63
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x73
,
0x22
,
0x4a
,
0x0a
,
0x16
,
0x52
,
0x65
,
0x71
,
0x41
,
0x63
,
0x63
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x41
,
0x73
,
0x73
,
0x65
,
0x74
,
0x73
,
0x12
,
0x18
,
0x0a
,
0x07
,
0x61
,
0x64
,
0x64
,
0x72
,
0x65
,
0x73
,
0x73
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x07
,
0x61
,
0x64
,
0x64
,
0x72
,
0x65
,
0x73
,
0x73
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x65
,
0x78
,
0x65
,
0x63
,
0x65
,
0x72
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x65
,
0x78
,
0x65
,
0x63
,
0x65
,
0x72
,
0x22
,
0x4f
,
0x0a
,
0x0b
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x41
,
0x73
,
0x73
,
0x65
,
0x74
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x12
,
0x28
,
0x0a
,
0x07
,
0x61
,
0x63
,
0x63
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x0e
,
0x2e
,
0x74
,
0x79
,
0x70
,
0x65
,
0x73
,
0x2e
,
0x41
,
0x63
,
0x63
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x52
,
0x07
,
0x61
,
0x63
,
0x63
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x22
,
0x52
,
0x0a
,
0x18
,
0x52
,
0x65
,
0x70
,
0x6c
,
0x79
,
0x41
,
0x63
,
0x63
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x41
,
0x73
,
0x73
,
0x65
,
0x74
,
0x73
,
0x12
,
0x36
,
0x0a
,
0x0c
,
0x65
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x41
,
0x73
,
0x73
,
0x65
,
0x74
,
0x73
,
0x18
,
0x01
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x12
,
0x2e
,
0x74
,
0x79
,
0x70
,
0x65
,
0x73
,
0x2e
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x41
,
0x73
,
0x73
,
0x65
,
0x74
,
0x52
,
0x0c
,
0x65
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x41
,
0x73
,
0x73
,
0x65
,
0x74
,
0x73
,
0x22
,
0xa2
,
0x01
,
0x0a
,
0x0e
,
0x52
,
0x65
,
0x71
,
0x41
,
0x64
,
0x64
,
0x72
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x73
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x61
,
0x64
,
0x64
,
0x72
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x04
,
0x61
,
0x64
,
0x64
,
0x72
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x74
,
0x61
,
0x74
,
0x75
,
0x73
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x05
,
0x52
,
0x06
,
0x73
,
0x74
,
0x61
,
0x74
,
0x75
,
0x73
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x65
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x18
,
0x03
,
0x20
,
0x03
,
0x28
,
0x09
,
0x52
,
0x06
,
0x65
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x12
,
0x1c
,
0x0a
,
0x09
,
0x64
,
0x69
,
0x72
,
0x65
,
0x63
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x18
,
0x04
,
0x20
,
0x01
,
0x28
,
0x05
,
0x52
,
0x09
,
0x64
,
0x69
,
0x72
,
0x65
,
0x63
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x12
,
0x14
,
0x0a
,
0x05
,
0x63
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x18
,
0x05
,
0x20
,
0x01
,
0x28
,
0x05
,
0x52
,
0x05
,
0x63
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x12
,
0x18
,
0x0a
,
0x07
,
0x66
,
0x72
,
0x6f
,
0x6d
,
0x4b
,
0x65
,
0x79
,
0x18
,
0x06
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x07
,
0x66
,
0x72
,
0x6f
,
0x6d
,
0x4b
,
0x65
,
0x79
,
0x22
,
0xaf
,
0x01
,
0x0a
,
0x0b
,
0x52
,
0x65
,
0x71
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x54
,
0x78
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x66
,
0x6c
,
0x61
,
0x67
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x05
,
0x52
,
0x04
,
0x66
,
0x6c
,
0x61
,
0x67
,
0x12
,
0x14
,
0x0a
,
0x05
,
0x63
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x18
,
0x03
,
0x20
,
0x01
,
0x28
,
0x05
,
0x52
,
0x05
,
0x63
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x12
,
0x1c
,
0x0a
,
0x09
,
0x64
,
0x69
,
0x72
,
0x65
,
0x63
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x18
,
0x04
,
0x20
,
0x01
,
0x28
,
0x05
,
0x52
,
0x09
,
0x64
,
0x69
,
0x72
,
0x65
,
0x63
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x68
,
0x65
,
0x69
,
0x67
,
0x68
,
0x74
,
0x18
,
0x05
,
0x20
,
0x01
,
0x28
,
0x03
,
0x52
,
0x06
,
0x68
,
0x65
,
0x69
,
0x67
,
0x68
,
0x74
,
0x12
,
0x14
,
0x0a
,
0x05
,
0x69
,
0x6e
,
0x64
,
0x65
,
0x78
,
0x18
,
0x06
,
0x20
,
0x01
,
0x28
,
0x03
,
0x52
,
0x05
,
0x69
,
0x6e
,
0x64
,
0x65
,
0x78
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x61
,
0x64
,
0x64
,
0x72
,
0x18
,
0x07
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x04
,
0x61
,
0x64
,
0x64
,
0x72
,
0x22
,
0x3d
,
0x0a
,
0x0f
,
0x52
,
0x65
,
0x70
,
0x6c
,
0x79
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x4c
,
0x6f
,
0x67
,
0x73
,
0x12
,
0x2a
,
0x0a
,
0x04
,
0x6c
,
0x6f
,
0x67
,
0x73
,
0x18
,
0x01
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x16
,
0x2e
,
0x74
,
0x79
,
0x70
,
0x65
,
0x73
,
0x2e
,
0x4c
,
0x6f
,
0x63
,
0x61
,
0x6c
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x4c
,
0x6f
,
0x67
,
0x73
,
0x52
,
0x04
,
0x6c
,
0x6f
,
0x67
,
0x73
,
0x32
,
0x08
,
0x0a
,
0x06
,
0x65
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x42
,
0x0a
,
0x5a
,
0x08
,
0x2e
,
0x2e
,
0x2f
,
0x74
,
0x79
,
0x70
,
0x65
,
0x73
,
0x62
,
0x06
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x33
,
0x6f
,
0x6c
,
0x12
,
0x18
,
0x0a
,
0x07
,
0x74
,
0x78
,
0x49
,
0x6e
,
0x64
,
0x65
,
0x78
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x07
,
0x74
,
0x78
,
0x49
,
0x6e
,
0x64
,
0x65
,
0x78
,
0x12
,
0x1e
,
0x0a
,
0x0a
,
0x61
,
0x63
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x54
,
0x79
,
0x70
,
0x65
,
0x18
,
0x03
,
0x20
,
0x01
,
0x28
,
0x05
,
0x52
,
0x0a
,
0x61
,
0x63
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x54
,
0x79
,
0x70
,
0x65
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x74
,
0x78
,
0x48
,
0x61
,
0x73
,
0x68
,
0x18
,
0x04
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x74
,
0x78
,
0x48
,
0x61
,
0x73
,
0x68
,
0x22
,
0x40
,
0x0a
,
0x0a
,
0x52
,
0x65
,
0x71
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x73
,
0x12
,
0x1a
,
0x0a
,
0x08
,
0x71
,
0x75
,
0x65
,
0x72
,
0x79
,
0x41
,
0x6c
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x08
,
0x52
,
0x08
,
0x71
,
0x75
,
0x65
,
0x72
,
0x79
,
0x41
,
0x6c
,
0x6c
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x18
,
0x02
,
0x20
,
0x03
,
0x28
,
0x09
,
0x52
,
0x06
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x22
,
0x3a
,
0x0a
,
0x0c
,
0x52
,
0x65
,
0x70
,
0x6c
,
0x79
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x73
,
0x12
,
0x2a
,
0x0a
,
0x06
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x18
,
0x01
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x12
,
0x2e
,
0x74
,
0x79
,
0x70
,
0x65
,
0x73
,
0x2e
,
0x4c
,
0x6f
,
0x63
,
0x61
,
0x6c
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x52
,
0x06
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x22
,
0x38
,
0x0a
,
0x0a
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x52
,
0x65
,
0x63
,
0x76
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x65
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x65
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x72
,
0x65
,
0x63
,
0x76
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x03
,
0x52
,
0x04
,
0x72
,
0x65
,
0x63
,
0x76
,
0x22
,
0x4e
,
0x0a
,
0x17
,
0x52
,
0x65
,
0x70
,
0x6c
,
0x79
,
0x41
,
0x64
,
0x64
,
0x72
,
0x52
,
0x65
,
0x63
,
0x76
,
0x46
,
0x6f
,
0x72
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x73
,
0x12
,
0x33
,
0x0a
,
0x0b
,
0x65
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x52
,
0x65
,
0x63
,
0x76
,
0x73
,
0x18
,
0x01
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x11
,
0x2e
,
0x74
,
0x79
,
0x70
,
0x65
,
0x73
,
0x2e
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x52
,
0x65
,
0x63
,
0x76
,
0x52
,
0x0b
,
0x65
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x52
,
0x65
,
0x63
,
0x76
,
0x73
,
0x22
,
0x3b
,
0x0a
,
0x0d
,
0x52
,
0x65
,
0x70
,
0x6c
,
0x79
,
0x41
,
0x63
,
0x63
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x73
,
0x12
,
0x2a
,
0x0a
,
0x08
,
0x61
,
0x63
,
0x63
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x73
,
0x18
,
0x01
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x0e
,
0x2e
,
0x74
,
0x79
,
0x70
,
0x65
,
0x73
,
0x2e
,
0x41
,
0x63
,
0x63
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x52
,
0x08
,
0x61
,
0x63
,
0x63
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x73
,
0x22
,
0x4a
,
0x0a
,
0x16
,
0x52
,
0x65
,
0x71
,
0x41
,
0x63
,
0x63
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x41
,
0x73
,
0x73
,
0x65
,
0x74
,
0x73
,
0x12
,
0x18
,
0x0a
,
0x07
,
0x61
,
0x64
,
0x64
,
0x72
,
0x65
,
0x73
,
0x73
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x07
,
0x61
,
0x64
,
0x64
,
0x72
,
0x65
,
0x73
,
0x73
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x65
,
0x78
,
0x65
,
0x63
,
0x65
,
0x72
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x65
,
0x78
,
0x65
,
0x63
,
0x65
,
0x72
,
0x22
,
0x4f
,
0x0a
,
0x0b
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x41
,
0x73
,
0x73
,
0x65
,
0x74
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x12
,
0x28
,
0x0a
,
0x07
,
0x61
,
0x63
,
0x63
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x0e
,
0x2e
,
0x74
,
0x79
,
0x70
,
0x65
,
0x73
,
0x2e
,
0x41
,
0x63
,
0x63
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x52
,
0x07
,
0x61
,
0x63
,
0x63
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x22
,
0x52
,
0x0a
,
0x18
,
0x52
,
0x65
,
0x70
,
0x6c
,
0x79
,
0x41
,
0x63
,
0x63
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x41
,
0x73
,
0x73
,
0x65
,
0x74
,
0x73
,
0x12
,
0x36
,
0x0a
,
0x0c
,
0x65
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x41
,
0x73
,
0x73
,
0x65
,
0x74
,
0x73
,
0x18
,
0x01
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x12
,
0x2e
,
0x74
,
0x79
,
0x70
,
0x65
,
0x73
,
0x2e
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x41
,
0x73
,
0x73
,
0x65
,
0x74
,
0x52
,
0x0c
,
0x65
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x41
,
0x73
,
0x73
,
0x65
,
0x74
,
0x73
,
0x22
,
0xa2
,
0x01
,
0x0a
,
0x0e
,
0x52
,
0x65
,
0x71
,
0x41
,
0x64
,
0x64
,
0x72
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x73
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x61
,
0x64
,
0x64
,
0x72
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x04
,
0x61
,
0x64
,
0x64
,
0x72
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x74
,
0x61
,
0x74
,
0x75
,
0x73
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x05
,
0x52
,
0x06
,
0x73
,
0x74
,
0x61
,
0x74
,
0x75
,
0x73
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x65
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x18
,
0x03
,
0x20
,
0x03
,
0x28
,
0x09
,
0x52
,
0x06
,
0x65
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x12
,
0x1c
,
0x0a
,
0x09
,
0x64
,
0x69
,
0x72
,
0x65
,
0x63
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x18
,
0x04
,
0x20
,
0x01
,
0x28
,
0x05
,
0x52
,
0x09
,
0x64
,
0x69
,
0x72
,
0x65
,
0x63
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x12
,
0x14
,
0x0a
,
0x05
,
0x63
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x18
,
0x05
,
0x20
,
0x01
,
0x28
,
0x05
,
0x52
,
0x05
,
0x63
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x12
,
0x18
,
0x0a
,
0x07
,
0x66
,
0x72
,
0x6f
,
0x6d
,
0x4b
,
0x65
,
0x79
,
0x18
,
0x06
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x07
,
0x66
,
0x72
,
0x6f
,
0x6d
,
0x4b
,
0x65
,
0x79
,
0x22
,
0xaf
,
0x01
,
0x0a
,
0x0b
,
0x52
,
0x65
,
0x71
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x54
,
0x78
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x66
,
0x6c
,
0x61
,
0x67
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x05
,
0x52
,
0x04
,
0x66
,
0x6c
,
0x61
,
0x67
,
0x12
,
0x14
,
0x0a
,
0x05
,
0x63
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x18
,
0x03
,
0x20
,
0x01
,
0x28
,
0x05
,
0x52
,
0x05
,
0x63
,
0x6f
,
0x75
,
0x6e
,
0x74
,
0x12
,
0x1c
,
0x0a
,
0x09
,
0x64
,
0x69
,
0x72
,
0x65
,
0x63
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x18
,
0x04
,
0x20
,
0x01
,
0x28
,
0x05
,
0x52
,
0x09
,
0x64
,
0x69
,
0x72
,
0x65
,
0x63
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x68
,
0x65
,
0x69
,
0x67
,
0x68
,
0x74
,
0x18
,
0x05
,
0x20
,
0x01
,
0x28
,
0x03
,
0x52
,
0x06
,
0x68
,
0x65
,
0x69
,
0x67
,
0x68
,
0x74
,
0x12
,
0x14
,
0x0a
,
0x05
,
0x69
,
0x6e
,
0x64
,
0x65
,
0x78
,
0x18
,
0x06
,
0x20
,
0x01
,
0x28
,
0x03
,
0x52
,
0x05
,
0x69
,
0x6e
,
0x64
,
0x65
,
0x78
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x61
,
0x64
,
0x64
,
0x72
,
0x18
,
0x07
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x04
,
0x61
,
0x64
,
0x64
,
0x72
,
0x22
,
0x3d
,
0x0a
,
0x0f
,
0x52
,
0x65
,
0x70
,
0x6c
,
0x79
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x4c
,
0x6f
,
0x67
,
0x73
,
0x12
,
0x2a
,
0x0a
,
0x04
,
0x6c
,
0x6f
,
0x67
,
0x73
,
0x18
,
0x01
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x16
,
0x2e
,
0x74
,
0x79
,
0x70
,
0x65
,
0x73
,
0x2e
,
0x4c
,
0x6f
,
0x63
,
0x61
,
0x6c
,
0x45
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x4c
,
0x6f
,
0x67
,
0x73
,
0x52
,
0x04
,
0x6c
,
0x6f
,
0x67
,
0x73
,
0x32
,
0x08
,
0x0a
,
0x06
,
0x65
,
0x76
,
0x6d
,
0x78
,
0x67
,
0x6f
,
0x42
,
0x0a
,
0x5a
,
0x08
,
0x2e
,
0x2e
,
0x2f
,
0x74
,
0x79
,
0x70
,
0x65
,
0x73
,
0x62
,
0x06
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x33
,
}
var
(
...
...
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