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
12dccb29
Commit
12dccb29
authored
Dec 10, 2020
by
madengji
Committed by
vipwzw
Jan 03, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add miner custom
parent
2983a997
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
756 additions
and
301 deletions
+756
-301
chain33.para.toml
chain33.para.toml
+9
-2
go.mod
go.mod
+1
-1
go.sum
go.sum
+40
-0
paracommitmsg.go
plugin/consensus/para/paracommitmsg.go
+4
-0
action.go
plugin/dapp/paracross/executor/action.go
+0
-65
miner.go
plugin/dapp/paracross/executor/miner.go
+110
-0
minerCustom.go
plugin/dapp/paracross/executor/minerCustom.go
+121
-0
minerCustom_test.go
plugin/dapp/paracross/executor/minerCustom_test.go
+132
-0
reward.go
plugin/dapp/paracross/executor/reward.go
+74
-24
paracross.proto
plugin/dapp/paracross/proto/paracross.proto
+5
-0
paracross.pb.go
plugin/dapp/paracross/types/paracross.pb.go
+257
-209
type.go
plugin/dapp/paracross/types/type.go
+3
-0
No files found.
chain33.para.toml
View file @
12dccb29
...
...
@@ -94,8 +94,13 @@ coinDevFund=12
coinBaseReward
=
3
#委托账户最少解绑定时间(按小时)
unBindTime
=
24
#支持挖矿奖励的1e8小数模式,比如18coin 需要配置成1800000000 以支持小数位后的配置
#decimalMode=true
#支持挖矿奖励的1e8小数模式,比如18coin 需要配置成1800000000 以支持小数位后的配置,如果true,意味着已经打开即coinReward=1800000000
decimalMode
=
false
#挖矿模式, 0:普通挖矿,1:减半挖矿,2:自定义
minerMode
=
2
#挖矿减半周期,按高度减半
halvePeriod
=
1000
[consensus.sub.para]
#主链节点的grpc服务器ip,当前可以支持多ip负载均衡,如“118.31.177.1:8802,39.97.2.127:8802”
...
...
@@ -261,6 +266,8 @@ ForkLoopCheckCommitTxDone=0
#仅平行链适用,自共识分阶段开启,缺省是0,若对应主链高度7200000之前开启过自共识,需要重新配置此分叉,并为之前自共识设置selfConsensEnablePreContract配置项
ForkParaSelfConsStages
=
0
ForkParaAssetTransferRbk
=
0
#仅平行链适用,开启挖矿交易的高度,已有代码版本可能未在0高度开启挖矿,需要设置这个高度,新版本默认从0开启挖矿,通过交易配置分阶段奖励
ForkParaFullMinerHeight
=
0
[fork.sub.evm]
Enable
=
0
...
...
go.mod
View file @
12dccb29
...
...
@@ -11,7 +11,7 @@ require (
github.com/NebulousLabs/merkletree v0.0.0-20181203152040-08d5d54b07f5 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/bitly/go-simplejson v0.5.0
github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869
// indirect
github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869
github.com/btcsuite/btcd v0.20.1-beta
github.com/coreos/etcd v3.3.15+incompatible
github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f // indirect
...
...
go.sum
View file @
12dccb29
...
...
@@ -30,15 +30,19 @@ github.com/NebulousLabs/merkletree v0.0.0-20181203152040-08d5d54b07f5/go.mod h1:
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
github.com/OneOfOne/xxhash v1.2.5/go.mod h1:eZbhyaAYD41SGSSsnmcpxVoRiQ/MPUTjUdIIOT9Um7Q=
github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=
github.com/VictoriaMetrics/fastcache v1.5.3 h1:2odJnXLbFZcoV9KYtQ+7TH1UOq3dn3AssMgieaezkR4=
github.com/VictoriaMetrics/fastcache v1.5.3/go.mod h1:+jv9Ckb+za/P1ZRg/sulP5Ni1v49daAVERr0H3CuscE=
github.com/XiaoMi/pegasus-go-client v0.0.0-20181029071519-9400942c5d1c h1:3fAhdHMhoSG57DjJ/dqLFfgD+FoooPbQH6szINbrr3k=
github.com/XiaoMi/pegasus-go-client v0.0.0-20181029071519-9400942c5d1c/go.mod h1:KcL6D/4RZ8RAYzQ5gKI0odcdWUmCVlbQTOlWrhP71CY=
github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc h1:cAKDfWh5VpdgMhJosfJnn5/FoN2SRZ4p7fJNX58YPaU=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf h1:qet1QNfXsQxTZqLG4oE62mJzwPIB8+Tee4RNCL9ulrY=
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM=
github.com/apache/thrift v0.0.0-20171203172758-327ebb6c2b6d h1:b/FqDLjWXDQI6XBYvWDVgEKv3xOTs68qRkuqyU37lBc=
github.com/apache/thrift v0.0.0-20171203172758-327ebb6c2b6d/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
github.com/aristanetworks/goarista v0.0.0-20170210015632-ea17b1a17847 h1:rtI0fD4oG/8eVokGVPYJEW1F88p1ZNgXiEIs9thEE4A=
github.com/aristanetworks/goarista v0.0.0-20170210015632-ea17b1a17847/go.mod h1:D/tb0zPVXnP7fmsLZjtdUhSsumbK/ij54UXjjVgMGxQ=
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
github.com/benbjohnson/clock v1.0.2 h1:Z0CN0Yb4ig9sGPXkvAQcGJfnrrMQ5QYLCMPRi9iD7YE=
...
...
@@ -48,6 +52,7 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
github.com/bitly/go-simplejson v0.5.0 h1:6IH+V8/tVMab511d5bn4M7EwGXZf9Hj6i2xSwkNEM+Y=
github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA=
github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY=
github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4=
github.com/btcsuite/btcd v0.0.0-20171128150713-2e60448ffcc6/go.mod h1:Dmm/EzmjnCiweXmzRIAiUWCInVmPgjkzgv5k4tVyXiQ=
github.com/btcsuite/btcd v0.0.0-20190109040709-5bda5314ca95/go.mod h1:d3C0AkH6BRcvO8T0UEPu53cnw4IbV63x1bEjildYhO0=
...
...
@@ -56,13 +61,17 @@ github.com/btcsuite/btcd v0.0.0-20190523000118-16327141da8c/go.mod h1:3J08xEfcug
github.com/btcsuite/btcd v0.0.0-20190824003749-130ea5bddde3/go.mod h1:3J08xEfcugPacsc34/LKRU2yO7YmuT8yt28J8k2+rrI=
github.com/btcsuite/btcd v0.20.1-beta h1:Ik4hyJqN8Jfyv3S4AGBOmyouMsYE3EdYODkMbQjwPGw=
github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ=
github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f h1:bAs4lUbRJpnnkd9VhRV3jjAVU7DJVjMaK+IsvSeZvFo=
github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA=
github.com/btcsuite/btcutil v0.0.0-20180706230648-ab6388e0c60a/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg=
github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg=
github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d h1:yJzD/yFppdVCf6ApMkVy8cUxV0XrxdP9rVf6D87/Mng=
github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg=
github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd h1:R/opQEbFEy9JGkIguV40SvRY1uliPX8ifOvi6ICsFCw=
github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg=
github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY=
github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc=
github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792 h1:R8vQdOQdZ9Y3SkEwmHoWBmX1DNXhXZqlTpq6s4tyJGc=
github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY=
github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs=
github.com/campoy/embedmd v1.0.0/go.mod h1:oxyr9RCiSXg0M3VJ3ks0UGfp98BpSSGr0kpiX3MzVl8=
...
...
@@ -71,6 +80,7 @@ github.com/cespare/cp v0.1.0/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW
github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
github.com/cespare/xxhash/v2 v2.0.1-0.20190104013014-3767db7a7e18/go.mod h1:HD5P3vAIAh+Y2GAxg0PrPN1P8WkepXGpjbUPDHJqqKM=
github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cloudflare/cloudflare-go v0.10.2-0.20190916151808-a80f83b9add9/go.mod h1:1MxXX1Ux4x6mqPmjkUgTP1CdXIBXKX7T+Jk9Gxrmx+U=
...
...
@@ -90,9 +100,11 @@ github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwc
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davidlazar/go-crypto v0.0.0-20170701192655-dcfb0a7ac018 h1:6xT9KW8zLC5IlbaIF5Q7JNieBoACT7iW0YTxQHR0in0=
github.com/davidlazar/go-crypto v0.0.0-20170701192655-dcfb0a7ac018/go.mod h1:rQYf4tfk5sSwFsnDg3qYaBxSjsD9S8+59vW0dKUgme4=
github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea h1:j4317fAZh7X6GqbFowYdYdI0L9bwxL07jyPZIdepyZ0=
github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ=
github.com/decred/base58 v1.0.2 h1:yupIH6bg+q7KYfBk7oUv3xFjKGb5Ypm4+v/61X4keGY=
github.com/decred/base58 v1.0.2/go.mod h1:pXP9cXCfM2sFLb2viz2FNIdeMWmZDBKG3ZBYbiSM78E=
...
...
@@ -115,7 +127,9 @@ github.com/docker/docker v1.4.2-0.20180625184442-8e610b2b55bf/go.mod h1:eEKB0N0r
github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
github.com/edsrzf/mmap-go v0.0.0-20160512033002-935e0e8a636c/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
github.com/edsrzf/mmap-go v1.0.0 h1:CEBF7HpRnUCSJgGUb5h1Gm7e3VkmVDrR8lvWVLtrOFw=
github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
github.com/elastic/gosigar v0.8.1-0.20180330100440-37f05ff46ffa h1:XKAhUk/dtp+CV0VO6mhG2V7jA9vbcGcnYF/Ay9NjZrY=
github.com/elastic/gosigar v0.8.1-0.20180330100440-37f05ff46ffa/go.mod h1:cdorVVzy1fhmEqmtgqkoE3bYtCfSCkVyjTyCIo22xvs=
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
...
...
@@ -128,6 +142,7 @@ github.com/fatih/color v1.3.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5Kwzbycv
github.com/fjl/memsize v0.0.0-20180418122429-ca190fb6ffbc/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0=
github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff h1:tY80oXqGNY4FhTFhk+o9oFHGINQ/+vhlm8HFzi6znCI=
github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww=
github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98=
github.com/go-interpreter/wagon v0.6.0 h1:BBxDxjiJiHgw9EdkYXAWs8NHhwnazZ5P2EWBW5hFNWw=
...
...
@@ -144,6 +159,7 @@ github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls=
github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
github.com/golang-collections/collections v0.0.0-20130729185459-604e922904d3 h1:zN2lZNZRflqFyxVaTIU61KNKQ9C0055u9CAfpmqUvo4=
github.com/golang-collections/collections v0.0.0-20130729185459-604e922904d3/go.mod h1:nPpo7qLxd6XL3hWJG/O60sR8ZKfMCiIoNap5GvD12KU=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
...
...
@@ -256,6 +272,7 @@ github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlT
github.com/julienschmidt/httprouter v1.1.1-0.20170430222011-975b5c4c7c21/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
github.com/kami-zh/go-capturer v0.0.0-20171211120116-e492ea43421d/go.mod h1:P2viExyCEfeWGU259JnaQ34Inuec4R38JCyBx2edgD0=
github.com/karalabe/usb v0.0.0-20190919080040-51dc0efba356 h1:I/yrLt2WilKxlQKCM52clh5rGzTKpVctGT1lH4Dc8Jw=
github.com/karalabe/usb v0.0.0-20190919080040-51dc0efba356/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU=
github.com/kevinms/leakybucket-go v0.0.0-20200115003610-082473db97ca h1:qNtd6alRqd3qOdPrKXMZImV192ngQ0WSh1briEO33Tk=
github.com/kevinms/leakybucket-go v0.0.0-20200115003610-082473db97ca/go.mod h1:ph+C5vpnCcQvKBwJwKLTK3JLNGnBXYlG7m7JjoC/zYA=
...
...
@@ -263,15 +280,19 @@ github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvW
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4=
github.com/klauspost/compress v1.8.2 h1:Bx0qjetmNjdFXASH02NSAREKpiaDwkO1DRZ3dV2KCcs=
github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
github.com/klauspost/cpuid v1.2.1 h1:vJi+O/nMdFt0vqm8NZBI6wzALWdA2X+egi0ogNyrC/w=
github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/koron/go-ssdp v0.0.0-20191105050749-2e1c40ed0b5d h1:68u9r4wEvL3gYg2jvAOgROwZ3H+Y3hIDk4tbbmIjcYQ=
github.com/koron/go-ssdp v0.0.0-20191105050749-2e1c40ed0b5d/go.mod h1:5Ky9EC2xfoUKUor0Hjgi2BJhCSXJfMOFlmyYrVKGQMk=
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs=
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
github.com/libp2p/go-addr-util v0.0.1/go.mod h1:4ac6O7n9rIAKB1dnd+s8IbbMXkt+oBpzX4/+RACcnlQ=
...
...
@@ -436,6 +457,7 @@ github.com/mattn/go-isatty v0.0.5-0.20180830101745-3fb116b82035/go.mod h1:M+lRXT
github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw=
github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
github.com/mattn/go-runewidth v0.0.4 h1:2BvfKmzob6Bmd4YsL0zygOqfdFnK7GR4QL06Do4/p7Y=
github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
...
...
@@ -443,6 +465,7 @@ github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyex
github.com/miekg/dns v1.1.12/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
github.com/miekg/dns v1.1.30 h1:Qww6FseFn8PRfw07jueqIXqodm0JKiiKuK0DeXSqfyo=
github.com/miekg/dns v1.1.30/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
github.com/miguelmota/go-solidity-sha3 v0.1.0 h1:RoRqUD/qKqZCZIoAGVJhX6gEHeD6333uQv+jhBGpRDk=
github.com/miguelmota/go-solidity-sha3 v0.1.0/go.mod h1:FuaBKCJUkJcmPqCuKvPFYfzK1auYGr5+8i2evSBIm/Q=
github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g=
github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ=
...
...
@@ -516,6 +539,7 @@ github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h
github.com/naoina/toml v0.1.2-0.20170918210437-9fafd6967416/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E=
github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
github.com/olekukonko/tablewriter v0.0.2-0.20190409134802-7e037d187b0c h1:1RHs3tNxjXGHeul8z2t6H2N2TlAqpKe5yryJztRx4Jk=
github.com/olekukonko/tablewriter v0.0.2-0.20190409134802-7e037d187b0c/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
...
...
@@ -530,6 +554,7 @@ github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFSt
github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=
github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
github.com/pborman/uuid v0.0.0-20170112150404-1b00554d8222/go.mod h1:VyrYX9gd7irzKovcSS6BIIEwPRkP2Wm2m9ufcdFSJ34=
github.com/pborman/uuid v1.2.0 h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g=
github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
github.com/perlin-network/life v0.0.0-20191203030451-05c0e0f7eaea h1:okKoivlkNRRLqXraEtatHfEhW+D71QTwkaj+4n4M2Xc=
...
...
@@ -541,6 +566,7 @@ github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
github.com/prometheus/client_golang v0.9.2 h1:awm861/B8OKDd2I/6o1dy3ra4BamzKhYOiGItCeZ740=
...
...
@@ -556,9 +582,11 @@ github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R
github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.3 h1:CTwfnzjQ+8dS6MhHHu4YswVAD99sL2wjPqP+VkURmKE=
github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ=
github.com/prometheus/tsdb v0.6.2-0.20190402121629-4f204dcbc150 h1:ZeU+auZj1iNzN8iVhff6M38Mfu73FQiJve/GEXYJBjE=
github.com/prometheus/tsdb v0.6.2-0.20190402121629-4f204dcbc150/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563 h1:dY6ETXrvDG7Sa4vE8ZQG4yqWg6UnOcbqTAahkV813vQ=
github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/rjeczalik/notify v0.9.1 h1:CLCKso/QK1snAlnhNR/CNvNiFU2saUtjV0bx3EwNeCE=
github.com/rjeczalik/notify v0.9.1/go.mod h1:rKwnCoCGeuQnwBtTSPL9Dad03Vh2n40ePRrjvIXnJho=
github.com/robertkrimen/otto v0.0.0-20170205013659-6a77b7cbc37d/go.mod h1:xvqspoSXJTIpemEonrMDFq6XzwHYYgToXWj5eRX1OtY=
github.com/robertkrimen/otto v0.0.0-20180617131154-15f95af6e78d h1:1VUlQbCfkoSGv7qP7Y+ro3ap1P1pPZxgdGVqiTVy5C4=
...
...
@@ -571,6 +599,7 @@ github.com/rs/xhandler v0.0.0-20160618193221-ed27b6fd6521/go.mod h1:RvLn4FgxWubr
github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
github.com/sirupsen/logrus v1.2.0 h1:juTguoYk5qI21pwyTXY3B3Y5cOTH3ZUyZCg1v/mihuo=
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
github.com/smola/gocompat v0.2.0/go.mod h1:1B0MlxbmoZNo3h8guHp8HztB3BSYR5itql9qtVc0ypY=
github.com/spacemonkeygo/openssl v0.0.0-20181017203307-c2dcc5cca94a/go.mod h1:7AyxJNCJ7SBZ1MfVQCWD6Uqo2oubI2Eq2y2eqf+A5r0=
...
...
@@ -588,15 +617,20 @@ github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg=
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=
github.com/src-d/envconfig v1.0.0/go.mod h1:Q9YQZ7BKITldTBnoxsE5gOeB5y66RyPXeue/R4aaNBc=
github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4 h1:Gb2Tyox57NRNuZ2d3rmvB3pcmbu7O1RS3m8WRx7ilrg=
github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4/go.mod h1:RZLeN1LMWmRsyYjvAu+I6Dm9QmlDaIIt+Y+4Kd7Tp+Q=
github.com/steakknife/bloomfilter v0.0.0-20180922174646-6819c0d2a570 h1:gIlAHnH1vJb5vwEjIp5kBj/eu99p/bl0Ay2goiPe5xE=
github.com/steakknife/bloomfilter v0.0.0-20180922174646-6819c0d2a570/go.mod h1:8OR4w3TdeIHIh1g6EMY5p0gVNOovcWC+1vpc7naMuAw=
github.com/steakknife/hamming v0.0.0-20180906055917-c99c65617cd3 h1:njlZPzLwU639dk2kqnCPPv+wNjq7Xb6EfUxe/oX0/NM=
github.com/steakknife/hamming v0.0.0-20180906055917-c99c65617cd3/go.mod h1:hpGUWaI9xL8pRQCTXQgocU38Qw1g0Us7n5PxxTwTCYU=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A=
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ=
github.com/syndtr/goleveldb v1.0.1-0.20190923125748-758128399b1d h1:gZZadD8H+fF+n9CmNhYL1Y0dJB+kLOmKd7FbPJLeGHs=
...
...
@@ -605,11 +639,14 @@ github.com/tjfoc/gmsm v1.3.1/go.mod h1:HaUcFuY0auTiaHB9MHFGCPx5IaLhTUd2atbCFBQXn
github.com/tjfoc/gmsm v1.3.2 h1:7JVkAn5bvUJ7HtU08iW6UiD+UTmJTIToHCfeFzkcCxM=
github.com/tjfoc/gmsm v1.3.2/go.mod h1:HaUcFuY0auTiaHB9MHFGCPx5IaLhTUd2atbCFBQXn9w=
github.com/twitchyliquid64/golang-asm v0.0.0-20190126203739-365674df15fc/go.mod h1:NoCfSFWosfqMqmmD7hApkirIK9ozpHjxRnRxs1l413A=
github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef h1:wHSqTBrZW24CsNJDfeh9Ex6Pm0Rcpc7qrgKBiL44vF4=
github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs=
github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
github.com/valyala/fasthttp v1.5.0 h1:dhq+O9pmNZFF6qAXpasMO1xSm7dL4qEz2ylfZN8BG9w=
github.com/valyala/fasthttp v1.5.0/go.mod h1:eriCz9OhZjKCGfJ185a/IDgNl0bg9IbzfpcslMZXU1c=
github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio=
github.com/vmihailenco/msgpack v4.0.4+incompatible h1:dSLoQfGFAo3F6OoNhwUmLwVgaUXK79GlxNBwueZn0xI=
...
...
@@ -625,6 +662,7 @@ github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 h1:
github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7/go.mod h1:X2c0RVCI1eSUFI8eLcY3c0423ykwiUdxLJtkDvruhjI=
github.com/whyrusleeping/timecache v0.0.0-20160911033111-cfcb2f1abfee h1:lYbXeSvJi5zk5GLKVuid9TVjS9a0OmLIDKTfoZBL6Ow=
github.com/whyrusleeping/timecache v0.0.0-20160911033111-cfcb2f1abfee/go.mod h1:m2aV4LZI4Aez7dP5PMyVKEHhUyEJ/RjmPEDOpDvudHg=
github.com/wsddn/go-ecdh v0.0.0-20161211032359-48726bab9208 h1:1cngl9mPEoITZG8s8cVcUy5CeIBYhEESkOB7m6Gmkrk=
github.com/wsddn/go-ecdh v0.0.0-20161211032359-48726bab9208/go.mod h1:IotVbo4F+mw0EzQ08zFqg7pK3FebNXpaMsRy2RT+Ees=
github.com/x-cray/logrus-prefixed-formatter v0.5.2/go.mod h1:2duySbKsL6M18s5GU7VPsoEPHyzalCE06qoARUCeBBE=
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8=
...
...
@@ -771,6 +809,7 @@ google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQ
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.28.0 h1:bO/TA4OxCOummhSf10siHuG7vJOiwh7SpRpFZDkOgl4=
google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60=
gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
...
...
@@ -793,6 +832,7 @@ gopkg.in/urfave/cli.v1 v1.20.0/go.mod h1:vuBzUtMdQeixQj8LVd+/98pzhxNGQoyuPBlsXHO
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
...
...
plugin/consensus/para/paracommitmsg.go
View file @
12dccb29
...
...
@@ -490,6 +490,10 @@ func (client *commitMsgClient) getTxsGroup(txsArr *types.Transactions) (*types.T
func
(
client
*
commitMsgClient
)
getExecName
(
commitHeight
int64
)
string
{
cfg
:=
client
.
paraClient
.
GetAPI
()
.
GetConfig
()
if
cfg
.
IsDappFork
(
commitHeight
,
pt
.
ParaX
,
pt
.
ForkParaFullMinerHeight
)
{
return
paracross
.
GetExecName
(
cfg
)
}
if
cfg
.
IsDappFork
(
commitHeight
,
pt
.
ParaX
,
pt
.
ForkParaSelfConsStages
)
{
return
paracross
.
GetExecName
(
cfg
)
}
...
...
plugin/dapp/paracross/executor/action.go
View file @
12dccb29
...
...
@@ -1254,71 +1254,6 @@ func (a *action) CrossAssetTransfer(transfer *pt.CrossAssetTransfer) (*types.Rec
return
receipt
,
nil
}
//当前miner tx不需要校验上一个区块的衔接性,因为tx就是本节点发出,高度,preHash等都在本区块里面的blockchain做了校验
func
(
a
*
action
)
Miner
(
miner
*
pt
.
ParacrossMinerAction
)
(
*
types
.
Receipt
,
error
)
{
cfg
:=
a
.
api
.
GetConfig
()
if
miner
.
Status
.
Title
!=
cfg
.
GetTitle
()
||
miner
.
Status
.
MainBlockHash
==
nil
{
return
nil
,
pt
.
ErrParaMinerExecErr
}
var
logs
[]
*
types
.
ReceiptLog
var
receipt
=
&
pt
.
ReceiptParacrossMiner
{}
log
:=
&
types
.
ReceiptLog
{}
log
.
Ty
=
pt
.
TyLogParacrossMiner
receipt
.
Status
=
miner
.
Status
log
.
Log
=
types
.
Encode
(
receipt
)
logs
=
append
(
logs
,
log
)
minerReceipt
:=
&
types
.
Receipt
{
Ty
:
types
.
ExecOk
,
KV
:
nil
,
Logs
:
logs
}
//自共识分阶段使能,综合考虑挖矿奖励和共识分配奖励,判断是否自共识使能需要采用共识的高度,而不能采用当前区块高度a.height
//考虑自共识使能区块高度100,如果采用区块高度判断,则在100高度可能收到80~99的20条共识交易,这20条交易在100高度参与共识,则无奖励可分配,而且共识高度将是80而不是100
//采用共识高度miner.Status.Height判断,则严格执行了产生奖励和分配奖励,且共识高度从100开始
isSelfConsensOn
:=
miner
.
IsSelfConsensus
if
cfg
.
IsDappFork
(
a
.
height
,
pt
.
ParaX
,
pt
.
ForkParaSelfConsStages
)
{
var
err
error
isSelfConsensOn
,
err
=
isSelfConsOn
(
a
.
db
,
miner
.
Status
.
Height
)
if
err
!=
nil
&&
errors
.
Cause
(
err
)
!=
pt
.
ErrKeyNotExist
{
clog
.
Error
(
"paracross miner getConsensus "
,
"height"
,
miner
.
Status
.
Height
,
"err"
,
err
)
return
nil
,
err
}
}
//自共识后才挖矿
if
isSelfConsensOn
{
//增发coins到paracross合约中,只处理发放,不做分配
totalReward
:=
int64
(
0
)
coinReward
:=
cfg
.
MGInt
(
"mver.consensus.paracross.coinReward"
,
a
.
height
)
fundReward
:=
cfg
.
MGInt
(
"mver.consensus.paracross.coinDevFund"
,
a
.
height
)
if
coinReward
>
0
{
totalReward
+=
coinReward
}
if
fundReward
>
0
{
totalReward
+=
fundReward
}
decimalMode
:=
cfg
.
MIsEnable
(
"mver.consensus.paracross.decimalMode"
,
a
.
height
)
if
!
decimalMode
{
totalReward
*=
types
.
Coin
}
if
totalReward
>
0
{
issueReceipt
,
err
:=
a
.
coinsAccount
.
ExecIssueCoins
(
a
.
execaddr
,
totalReward
)
if
err
!=
nil
{
clog
.
Error
(
"paracross miner issue err"
,
"height"
,
miner
.
Status
.
Height
,
"execAddr"
,
a
.
execaddr
,
"amount"
,
totalReward
)
return
nil
,
err
}
minerReceipt
=
mergeReceipt
(
minerReceipt
,
issueReceipt
)
}
}
return
minerReceipt
,
nil
}
func
getTitleFrom
(
exec
[]
byte
)
([]
byte
,
error
)
{
last
:=
bytes
.
LastIndex
(
exec
,
[]
byte
(
"."
))
if
last
==
-
1
{
...
...
plugin/dapp/paracross/executor/miner.go
0 → 100644
View file @
12dccb29
// Copyright Fuzamei Corp. 2018 All Rights Reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package
executor
import
(
"github.com/33cn/chain33/types"
pt
"github.com/33cn/plugin/plugin/dapp/paracross/types"
"github.com/pkg/errors"
)
//当前miner tx不需要校验上一个区块的衔接性,因为tx就是本节点发出,高度,preHash等都在本区块里面的blockchain做了校验
//note: 平行链的Miner从Height=1开始, 创世区块不挖矿
func
(
a
*
action
)
Miner
(
miner
*
pt
.
ParacrossMinerAction
)
(
*
types
.
Receipt
,
error
)
{
cfg
:=
a
.
api
.
GetConfig
()
if
miner
.
Status
.
Title
!=
cfg
.
GetTitle
()
||
miner
.
Status
.
MainBlockHash
==
nil
{
return
nil
,
pt
.
ErrParaMinerExecErr
}
var
logs
[]
*
types
.
ReceiptLog
var
receipt
=
&
pt
.
ReceiptParacrossMiner
{}
log
:=
&
types
.
ReceiptLog
{}
log
.
Ty
=
pt
.
TyLogParacrossMiner
receipt
.
Status
=
miner
.
Status
log
.
Log
=
types
.
Encode
(
receipt
)
logs
=
append
(
logs
,
log
)
minerReceipt
:=
&
types
.
Receipt
{
Ty
:
types
.
ExecOk
,
KV
:
nil
,
Logs
:
logs
}
on
,
err
:=
a
.
isSelfConsensOn
(
miner
)
if
err
!=
nil
{
return
nil
,
err
}
//自共识后才挖矿
if
on
{
r
,
err
:=
a
.
issueCoins
(
miner
)
if
err
!=
nil
{
return
nil
,
err
}
minerReceipt
=
mergeReceipt
(
minerReceipt
,
r
)
}
return
minerReceipt
,
nil
}
func
(
a
*
action
)
isSelfConsensOn
(
miner
*
pt
.
ParacrossMinerAction
)
(
bool
,
error
)
{
cfg
:=
a
.
api
.
GetConfig
()
//ForkParaInitMinerHeight高度后,默认全部挖矿,产生在paracross执行器地址,如果自共识分阶段,也只是分阶段奖励,挖矿一直产生
if
cfg
.
IsDappFork
(
a
.
height
,
pt
.
ParaX
,
pt
.
ForkParaFullMinerHeight
)
{
return
true
,
nil
}
isSelfConsensOn
:=
miner
.
IsSelfConsensus
//自共识分阶段使能,综合考虑挖矿奖励和共识分配奖励,判断是否自共识使能需要采用共识的高度,而不能采用当前区块高度a.height
//考虑自共识使能区块高度100,如果采用区块高度判断,则在100高度可能收到80~99的20条共识交易,这20条交易在100高度参与共识,则无奖励可分配,而且共识高度将是80而不是100
//采用共识高度miner.Status.Height判断,则严格执行了产生奖励和分配奖励,且共识高度从100开始
if
cfg
.
IsDappFork
(
a
.
height
,
pt
.
ParaX
,
pt
.
ForkParaSelfConsStages
)
{
var
err
error
isSelfConsensOn
,
err
=
isSelfConsOn
(
a
.
db
,
miner
.
Status
.
Height
)
if
err
!=
nil
&&
errors
.
Cause
(
err
)
!=
pt
.
ErrKeyNotExist
{
clog
.
Error
(
"paracross miner getConsensus "
,
"height"
,
miner
.
Status
.
Height
,
"err"
,
err
)
return
false
,
err
}
}
return
isSelfConsensOn
,
nil
}
const
(
normalMiner
=
iota
halveMiner
customMiner
)
type
rewardValFn
func
(
cfg
*
types
.
Chain33Config
,
height
int64
)
(
int64
,
int64
,
int64
)
var
getConfigRewards
=
make
(
map
[
int
]
rewardValFn
)
func
init
()
{
getConfigRewards
[
normalMiner
]
=
getNormalReward
}
func
(
a
*
action
)
issueCoins
(
miner
*
pt
.
ParacrossMinerAction
)
(
*
types
.
Receipt
,
error
)
{
cfg
:=
a
.
api
.
GetConfig
()
mode
:=
int
(
cfg
.
MGInt
(
"mver.consensus.paracross.minerMode"
,
a
.
height
))
if
getConfigRewards
[
mode
]
==
nil
{
panic
(
"getTotalReward not be set depend on consensus.paracross.minerMode"
)
}
coinReward
,
coinFundReward
,
_
:=
getConfigRewards
[
mode
](
cfg
,
a
.
height
)
totalReward
:=
coinReward
+
coinFundReward
if
totalReward
>
0
{
issueReceipt
,
err
:=
a
.
coinsAccount
.
ExecIssueCoins
(
a
.
execaddr
,
totalReward
)
if
err
!=
nil
{
clog
.
Error
(
"paracross miner issue err"
,
"height"
,
miner
.
Status
.
Height
,
"execAddr"
,
a
.
execaddr
,
"amount"
,
totalReward
)
return
nil
,
err
}
return
issueReceipt
,
nil
}
return
nil
,
nil
}
plugin/dapp/paracross/executor/minerCustom.go
0 → 100644
View file @
12dccb29
// Copyright Fuzamei Corp. 2018 All Rights Reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package
executor
import
(
"fmt"
"github.com/33cn/chain33/types"
pt
"github.com/33cn/plugin/plugin/dapp/paracross/types"
"math"
"strconv"
"strings"
)
const
(
startN
uint32
=
11
minerUnit
int64
=
10000
//addr:quota的配置
// 18.75/100份额,由于浮点数的原因,都扩大100倍即1875/10000
addrStaffA
=
"1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4:1875"
//18.75quota 1875/10000
addrStaffB
=
"1JRNjdEqp4LJ5fqycUBm9ayCKSeeskgMKR:1875"
//18.75 quota
addrBoss
=
"1NLHPEcbTWWxxU3dGUZBhayjrCHD3psX7k:6250"
//62.50 quota
)
var
addrs
=
[]
string
{
addrStaffA
,
addrStaffB
,
addrBoss
}
var
addrsMap
=
make
(
map
[
string
]
int64
)
func
checkQuota
()
{
var
sum
int64
for
_
,
a
:=
range
addrs
{
val
:=
strings
.
Split
(
a
,
":"
)
v
,
err
:=
strconv
.
Atoi
(
val
[
1
])
if
err
!=
nil
||
v
==
0
{
panic
(
fmt
.
Sprintf
(
"minerCustom checkQuota err=%s,addr=%s"
,
err
,
a
))
}
addrsMap
[
val
[
0
]]
=
int64
(
v
)
sum
+=
int64
(
v
)
}
if
sum
>
minerUnit
{
panic
(
fmt
.
Sprintf
(
"minerCustom checkQuota sum=%d beyond %d"
,
sum
,
minerUnit
))
}
}
func
init
()
{
getConfigRewards
[
customMiner
]
=
getCustomReward
rewardMiner
[
customMiner
]
=
customRewardMiner
checkQuota
()
}
func
getCustomReward
(
cfg
*
types
.
Chain33Config
,
height
int64
)
(
int64
,
int64
,
int64
)
{
n
:=
getCurrentN
(
height
)
return
calcCoins
(
n
),
0
,
0
}
func
getNHeight
(
n
uint32
)
int64
{
v
:=
1
<<
n
return
4096
*
(
int64
(
v
)
-
1
)
}
//高度 4096*(2^n -1)+1 开始减半, n=1:1~4096, n=2:4096+1~12288
func
getCurrentN
(
height
int64
)
uint32
{
if
height
<=
0
{
panic
(
"height should bigger than 0"
)
}
var
totalCycle
uint32
=
1
<<
30
offsetHeight
:=
getNHeight
(
6
)
for
n
:=
uint32
(
0
);
n
<
totalCycle
;
n
++
{
leftVal
:=
getNHeight
(
n
)
rightVal
:=
getNHeight
(
n
+
1
)
if
offsetHeight
+
height
>
leftVal
&&
offsetHeight
+
height
<=
rightVal
{
return
n
+
1
}
}
panic
(
"not enought total cycle"
)
}
//客户原有链大约50s出一个块,一个块是32/16/8..coins, 我们平均5s一个块,需要/10
func
calcCoins
(
n
uint32
)
int64
{
if
n
<=
startN
{
return
1e7
*
(
1
<<
(
startN
-
n
))
}
v
:=
1
<<
(
n
-
startN
)
vf
:=
1e7
/
v
return
int64
(
math
.
Trunc
(
float64
(
vf
)))
}
func
customRewardMiner
(
coinReward
int64
,
miners
[]
string
,
height
int64
)
([]
*
pt
.
ParaMinerReward
,
int64
)
{
//找零
var
change
int64
var
rewards
[]
*
pt
.
ParaMinerReward
coins
,
_
,
_
:=
getCustomReward
(
nil
,
height
)
var
sum
int64
//get quto to miner
for
_
,
m
:=
range
miners
{
if
v
,
ok
:=
addrsMap
[
m
];
ok
{
amount
:=
(
v
*
coins
)
/
minerUnit
sum
+=
amount
r
:=
&
pt
.
ParaMinerReward
{
Addr
:
m
,
Amount
:
amount
}
rewards
=
append
(
rewards
,
r
)
}
}
//所有找零给addrC
change
=
coins
-
sum
if
change
>
0
{
val
:=
strings
.
Split
(
addrBoss
,
":"
)
r
:=
&
pt
.
ParaMinerReward
{
Addr
:
val
[
0
],
Amount
:
change
}
rewards
=
append
(
rewards
,
r
)
}
return
rewards
,
0
}
plugin/dapp/paracross/executor/minerCustom_test.go
0 → 100644
View file @
12dccb29
// Copyright Fuzamei Corp. 2018 All Rights Reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package
executor
import
(
"fmt"
"github.com/bmizerany/assert"
"testing"
_
"github.com/33cn/plugin/plugin/crypto/bls"
)
func
TestGetNHeight
(
t
*
testing
.
T
)
{
h
:=
getNHeight
(
1
)
assert
.
Equal
(
t
,
int64
(
4096
),
h
)
h
=
getNHeight
(
2
)
assert
.
Equal
(
t
,
int64
(
12288
),
h
)
h
=
getNHeight
(
6
)
assert
.
Equal
(
t
,
int64
(
258048
),
h
)
h
=
getNHeight
(
7
)
assert
.
Equal
(
t
,
int64
(
520192
),
h
)
}
func
TestGetN
(
t
*
testing
.
T
)
{
n
:=
getCurrentN
(
1
)
assert
.
Equal
(
t
,
uint32
(
7
),
n
)
n
=
getCurrentN
(
262144
)
assert
.
Equal
(
t
,
uint32
(
7
),
n
)
n
=
getCurrentN
(
262145
)
assert
.
Equal
(
t
,
uint32
(
8
),
n
)
n
=
getCurrentN
(
3932160
)
assert
.
Equal
(
t
,
uint32
(
10
),
n
)
n
=
getCurrentN
(
3932161
)
assert
.
Equal
(
t
,
uint32
(
11
),
n
)
}
func
TestGetBlockNum
(
t
*
testing
.
T
)
{
offset
:=
getNHeight
(
6
)
for
n
:=
uint32
(
7
);
n
<
50
;
n
++
{
blocks
:=
getNHeight
(
n
)
-
offset
secs
:=
blocks
*
5
secsOfYear
:=
int64
(
60
*
60
*
24
*
365
)
year
:=
secs
/
secsOfYear
fmt
.
Println
(
"n="
,
n
,
"coins="
,
calcCoins
(
n
),
"height="
,
blocks
,
"year="
,
year
)
}
}
func
TestGetCoins
(
t
*
testing
.
T
)
{
c
:=
calcCoins
(
7
)
assert
.
Equal
(
t
,
int64
(
1.6
*
1e8
),
c
)
c
=
calcCoins
(
6
)
assert
.
Equal
(
t
,
int64
(
3.2
*
1e8
),
c
)
//for i:=uint32(0);i<50;i++{
// coin := calcCoins(i)
// fmt.Println("n",i,"coins",coin)
//}
}
func
getCustomRewardMinerRst
(
miners
[]
string
,
height
int64
)
(
map
[
string
]
int64
,
int64
)
{
res
,
change
:=
customRewardMiner
(
0
,
miners
,
height
)
check
:=
make
(
map
[
string
]
int64
)
for
_
,
r
:=
range
res
{
//fmt.Println("addr",r.Addr,"amount",r.Amount)
check
[
r
.
Addr
]
+=
r
.
Amount
}
return
check
,
change
}
func
TestCustomRewardMiner
(
t
*
testing
.
T
)
{
staffA
:=
"1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4"
staffB
:=
"1JRNjdEqp4LJ5fqycUBm9ayCKSeeskgMKR"
staffBoss
:=
"1NLHPEcbTWWxxU3dGUZBhayjrCHD3psX7k"
miners
:=
[]
string
{
staffA
,
staffB
,
staffBoss
}
offsetHeight
:=
getNHeight
(
6
)
//height=1
height
:=
int64
(
1
)
check
,
change
:=
getCustomRewardMinerRst
(
miners
,
height
)
assert
.
Equal
(
t
,
int64
(
3
*
1e7
),
check
[
staffA
])
assert
.
Equal
(
t
,
int64
(
3
*
1e7
),
check
[
staffB
])
assert
.
Equal
(
t
,
int64
(
10
*
1e7
),
check
[
staffBoss
])
assert
.
Equal
(
t
,
int64
(
0
),
change
)
//height=262144
var
n
uint32
n
=
8
height
=
getNHeight
(
n
)
coins
:=
calcCoins
(
n
)
fmt
.
Println
(
"n="
,
n
,
"coins="
,
coins
)
check
,
change
=
getCustomRewardMinerRst
(
miners
,
height
-
offsetHeight
)
assert
.
Equal
(
t
,
int64
(
1.5
*
1e7
),
check
[
staffA
])
assert
.
Equal
(
t
,
int64
(
1.5
*
1e7
),
check
[
staffB
])
assert
.
Equal
(
t
,
int64
(
5
*
1e7
),
check
[
staffBoss
])
assert
.
Equal
(
t
,
int64
(
0
),
change
)
//
n
=
17
height
=
getNHeight
(
n
)
coins
=
calcCoins
(
n
)
fmt
.
Println
(
"n="
,
n
,
"coins="
,
coins
)
check
,
change
=
getCustomRewardMinerRst
(
miners
,
height
-
offsetHeight
)
assert
.
Equal
(
t
,
int64
(
29296
),
check
[
staffA
])
assert
.
Equal
(
t
,
int64
(
29296
),
check
[
staffB
])
assert
.
Equal
(
t
,
int64
(
97658
),
check
[
staffBoss
])
assert
.
Equal
(
t
,
int64
(
0
),
change
)
//
n
=
18
height
=
getNHeight
(
n
)
coins
=
calcCoins
(
n
)
fmt
.
Println
(
"n="
,
n
,
"coins="
,
coins
)
check
,
change
=
getCustomRewardMinerRst
(
miners
,
height
-
offsetHeight
)
assert
.
Equal
(
t
,
int64
(
14648
),
check
[
staffA
])
assert
.
Equal
(
t
,
int64
(
14648
),
check
[
staffB
])
assert
.
Equal
(
t
,
int64
(
48829
),
check
[
staffBoss
])
assert
.
Equal
(
t
,
int64
(
0
),
change
)
}
plugin/dapp/paracross/executor/reward.go
View file @
12dccb29
...
...
@@ -40,28 +40,64 @@ func (a *action) getBindAddrs(nodes []string, statusHeight int64) (*pt.ParaNodeB
}
func
(
a
*
action
)
rewardSuperNode
(
coinReward
int64
,
miners
[]
string
,
statusHeight
int64
)
(
*
types
.
Receipt
,
int64
,
error
)
{
//分配给矿工的单位奖励
minerUnit
:=
coinReward
/
int64
(
len
(
miners
))
type
rewardFn
func
(
coinReward
int64
,
miners
[]
string
,
height
int64
)
([]
*
pt
.
ParaMinerReward
,
int64
)
var
rewardMiner
=
make
(
map
[
int
]
rewardFn
)
func
init
()
{
rewardMiner
[
normalMiner
]
=
rewardEven
}
func
rewardEven
(
coinReward
int64
,
miners
[]
string
,
height
int64
)
([]
*
pt
.
ParaMinerReward
,
int64
)
{
//找零
var
change
int64
receipt
:=
&
types
.
Receipt
{
Ty
:
types
.
ExecOk
}
var
rewards
[]
*
pt
.
ParaMinerReward
//分配给矿工的平均奖励
minerUnit
:=
coinReward
/
int64
(
len
(
miners
))
if
minerUnit
>
0
{
for
_
,
m
:=
range
miners
{
r
:=
&
pt
.
ParaMinerReward
{
Addr
:
m
,
Amount
:
minerUnit
}
rewards
=
append
(
rewards
,
r
)
}
//如果不等分转到发展基金
change
=
coinReward
%
minerUnit
for
_
,
addr
:=
range
miners
{
rep
,
err
:=
a
.
coinsAccount
.
ExecDeposit
(
addr
,
a
.
execaddr
,
minerUnit
)
}
return
rewards
,
change
}
if
err
!=
nil
{
clog
.
Error
(
"paracross super node reward deposit err"
,
"height"
,
statusHeight
,
"execAddr"
,
a
.
execaddr
,
"minerAddr"
,
addr
,
"amount"
,
minerUnit
,
"err"
,
err
)
return
nil
,
0
,
err
}
receipt
=
mergeReceipt
(
receipt
,
rep
)
}
func
(
a
*
action
)
rewardSuperNode
(
coinReward
int64
,
miners
[]
string
,
statusHeight
int64
)
(
*
types
.
Receipt
,
int64
,
error
)
{
cfg
:=
a
.
api
.
GetConfig
()
receipt
:=
&
types
.
Receipt
{
Ty
:
types
.
ExecOk
}
mode
:=
int
(
cfg
.
MGInt
(
"mver.consensus.paracross.minerMode"
,
a
.
height
))
if
rewardMiner
[
mode
]
==
nil
{
panic
(
"getReward not be set depend on consensus.paracross.minerMode"
)
}
rewards
,
change
:=
rewardMiner
[
mode
](
coinReward
,
miners
,
statusHeight
)
resp
,
err
:=
a
.
rewardDeposit
(
rewards
,
statusHeight
)
if
err
!=
nil
{
return
nil
,
0
,
err
}
receipt
=
mergeReceipt
(
receipt
,
resp
)
return
receipt
,
change
,
nil
}
func
(
a
*
action
)
rewardDeposit
(
rewards
[]
*
pt
.
ParaMinerReward
,
statusHeight
int64
)
(
*
types
.
Receipt
,
error
)
{
receipt
:=
&
types
.
Receipt
{}
for
_
,
v
:=
range
rewards
{
rep
,
err
:=
a
.
coinsAccount
.
ExecDeposit
(
v
.
Addr
,
a
.
execaddr
,
v
.
Amount
)
if
err
!=
nil
{
clog
.
Error
(
"paracross super node reward deposit err"
,
"height"
,
statusHeight
,
"execAddr"
,
a
.
execaddr
,
"minerAddr"
,
v
.
Addr
,
"amount"
,
v
.
Amount
,
"err"
,
err
)
return
nil
,
err
}
receipt
=
mergeReceipt
(
receipt
,
rep
)
}
return
receipt
,
nil
}
//奖励委托挖矿账户
func
(
a
*
action
)
rewardBindAddr
(
coinReward
int64
,
bindList
*
pt
.
ParaNodeBindList
,
statusHeight
int64
)
(
*
types
.
Receipt
,
int64
,
error
)
{
if
coinReward
<=
0
{
...
...
@@ -103,28 +139,42 @@ func (a *action) rewardBindAddr(coinReward int64, bindList *pt.ParaNodeBindList,
return
receipt
,
change
,
nil
}
// reward 挖矿奖励, 主要处理挖矿分配逻辑,先实现基本策略,后面根据需求进行重构
func
(
a
*
action
)
reward
(
nodeStatus
*
pt
.
ParacrossNodeStatus
,
stat
*
pt
.
ParacrossHeightStatus
)
(
*
types
.
Receipt
,
error
)
{
//获取挖矿相关配置,这里需注意是共识的高度,而不是交易的高度
cfg
:=
a
.
api
.
GetConfig
()
coinReward
:=
cfg
.
MGInt
(
"mver.consensus.paracross.coinReward"
,
nodeStatus
.
Height
)
fundReward
:=
cfg
.
MGInt
(
"mver.consensus.paracross.coinDevFund"
,
nodeStatus
.
Height
)
coinBaseReward
:=
cfg
.
MGInt
(
"mver.consensus.paracross.coinBaseReward"
,
nodeStatus
.
Height
)
func
getNormalReward
(
cfg
*
types
.
Chain33Config
,
height
int64
)
(
int64
,
int64
,
int64
)
{
coinReward
:=
cfg
.
MGInt
(
"mver.consensus.paracross.coinReward"
,
height
)
fundReward
:=
cfg
.
MGInt
(
"mver.consensus.paracross.coinDevFund"
,
height
)
coinBaseReward
:=
cfg
.
MGInt
(
"mver.consensus.paracross.coinBaseReward"
,
height
)
if
coinReward
<
0
||
fundReward
<
0
||
coinBaseReward
<
0
{
panic
(
"para config consensus.paracross.coinReward should bigger than 0"
)
}
decimalMode
:=
cfg
.
MIsEnable
(
"mver.consensus.paracross.decimalMode"
,
nodeStatus
.
Height
)
//decimalMode=false,意味着精简模式,需要乘1e8
decimalMode
:=
cfg
.
MIsEnable
(
"mver.consensus.paracross.decimalMode"
,
height
)
if
!
decimalMode
{
coinReward
*=
types
.
Coin
fundReward
*=
types
.
Coin
coinBaseReward
*=
types
.
Coin
}
fundAddr
:=
cfg
.
MGStr
(
"mver.consensus.fundKeyAddr"
,
nodeStatus
.
Height
)
//防止coinBaseReward 设置出错场景, coinBaseReward 一定要比coinReward小
if
coinBaseReward
>=
coinReward
{
coinBaseReward
=
coinReward
/
10
}
return
coinReward
,
fundReward
,
coinBaseReward
}
// reward 挖矿奖励, 主要处理挖矿分配逻辑,先实现基本策略,后面根据需求进行重构
func
(
a
*
action
)
reward
(
nodeStatus
*
pt
.
ParacrossNodeStatus
,
stat
*
pt
.
ParacrossHeightStatus
)
(
*
types
.
Receipt
,
error
)
{
//获取挖矿相关配置,这里需注意是共识的高度,而不是交易的高度
cfg
:=
a
.
api
.
GetConfig
()
//此分叉后 0高度不产生挖矿奖励,也就是以后的新版本默认0高度不产生挖矿奖励
if
nodeStatus
.
Height
==
0
&&
cfg
.
IsDappFork
(
nodeStatus
.
Height
,
pt
.
ParaX
,
pt
.
ForkParaFullMinerHeight
)
{
return
nil
,
nil
}
mode
:=
int
(
cfg
.
MGInt
(
"mver.consensus.paracross.minerMode"
,
a
.
height
))
coinReward
,
fundReward
,
coinBaseReward
:=
getConfigRewards
[
mode
](
cfg
,
nodeStatus
.
Height
)
fundAddr
:=
cfg
.
MGStr
(
"mver.consensus.fundKeyAddr"
,
nodeStatus
.
Height
)
//超级节点地址
nodeAddrs
:=
getSuperNodes
(
stat
.
Details
,
nodeStatus
.
BlockHash
)
//委托地址
...
...
plugin/dapp/paracross/proto/paracross.proto
View file @
12dccb29
...
...
@@ -323,6 +323,11 @@ message ParacrossMinerAction {
bool
isSelfConsensus
=
2
;
}
message
ParaMinerReward
{
string
addr
=
1
;
int64
amount
=
2
;
}
message
CrossAssetTransfer
{
string
assetExec
=
1
;
string
assetSymbol
=
2
;
...
...
plugin/dapp/paracross/types/paracross.pb.go
View file @
12dccb29
...
...
@@ -6,13 +6,12 @@ package types
import
(
context
"context"
fmt
"fmt"
math
"math"
types
"github.com/33cn/chain33/types"
proto
"github.com/golang/protobuf/proto"
grpc
"google.golang.org/grpc"
codes
"google.golang.org/grpc/codes"
status
"google.golang.org/grpc/status"
math
"math"
)
// Reference imports to suppress errors if they are not otherwise used.
...
...
@@ -2824,6 +2823,53 @@ func (m *ParacrossMinerAction) GetIsSelfConsensus() bool {
return
false
}
type
ParaMinerReward
struct
{
Addr
string
`protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"`
Amount
int64
`protobuf:"varint,2,opt,name=amount,proto3" json:"amount,omitempty"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
XXX_sizecache
int32
`json:"-"`
}
func
(
m
*
ParaMinerReward
)
Reset
()
{
*
m
=
ParaMinerReward
{}
}
func
(
m
*
ParaMinerReward
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
ParaMinerReward
)
ProtoMessage
()
{}
func
(
*
ParaMinerReward
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
44
}
}
func
(
m
*
ParaMinerReward
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
return
xxx_messageInfo_ParaMinerReward
.
Unmarshal
(
m
,
b
)
}
func
(
m
*
ParaMinerReward
)
XXX_Marshal
(
b
[]
byte
,
deterministic
bool
)
([]
byte
,
error
)
{
return
xxx_messageInfo_ParaMinerReward
.
Marshal
(
b
,
m
,
deterministic
)
}
func
(
m
*
ParaMinerReward
)
XXX_Merge
(
src
proto
.
Message
)
{
xxx_messageInfo_ParaMinerReward
.
Merge
(
m
,
src
)
}
func
(
m
*
ParaMinerReward
)
XXX_Size
()
int
{
return
xxx_messageInfo_ParaMinerReward
.
Size
(
m
)
}
func
(
m
*
ParaMinerReward
)
XXX_DiscardUnknown
()
{
xxx_messageInfo_ParaMinerReward
.
DiscardUnknown
(
m
)
}
var
xxx_messageInfo_ParaMinerReward
proto
.
InternalMessageInfo
func
(
m
*
ParaMinerReward
)
GetAddr
()
string
{
if
m
!=
nil
{
return
m
.
Addr
}
return
""
}
func
(
m
*
ParaMinerReward
)
GetAmount
()
int64
{
if
m
!=
nil
{
return
m
.
Amount
}
return
0
}
type
CrossAssetTransfer
struct
{
AssetExec
string
`protobuf:"bytes,1,opt,name=assetExec,proto3" json:"assetExec,omitempty"`
AssetSymbol
string
`protobuf:"bytes,2,opt,name=assetSymbol,proto3" json:"assetSymbol,omitempty"`
...
...
@@ -2840,7 +2886,7 @@ func (m *CrossAssetTransfer) Reset() { *m = CrossAssetTransfer{} }
func
(
m
*
CrossAssetTransfer
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
CrossAssetTransfer
)
ProtoMessage
()
{}
func
(
*
CrossAssetTransfer
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
4
4
}
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
4
5
}
}
func
(
m
*
CrossAssetTransfer
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
...
@@ -2921,7 +2967,7 @@ func (m *ParacrossAction) Reset() { *m = ParacrossAction{} }
func
(
m
*
ParacrossAction
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
ParacrossAction
)
ProtoMessage
()
{}
func
(
*
ParacrossAction
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
4
5
}
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
4
6
}
}
func
(
m
*
ParacrossAction
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
...
@@ -3149,7 +3195,7 @@ func (m *ReceiptParacrossCommit) Reset() { *m = ReceiptParacrossCommit{}
func
(
m
*
ReceiptParacrossCommit
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
ReceiptParacrossCommit
)
ProtoMessage
()
{}
func
(
*
ReceiptParacrossCommit
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
4
6
}
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
4
7
}
}
func
(
m
*
ReceiptParacrossCommit
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
...
@@ -3209,7 +3255,7 @@ func (m *ReceiptParacrossMiner) Reset() { *m = ReceiptParacrossMiner{} }
func
(
m
*
ReceiptParacrossMiner
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
ReceiptParacrossMiner
)
ProtoMessage
()
{}
func
(
*
ReceiptParacrossMiner
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
4
7
}
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
4
8
}
}
func
(
m
*
ReceiptParacrossMiner
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
...
@@ -3262,7 +3308,7 @@ func (m *ReceiptParacrossDone) Reset() { *m = ReceiptParacrossDone{} }
func
(
m
*
ReceiptParacrossDone
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
ReceiptParacrossDone
)
ProtoMessage
()
{}
func
(
*
ReceiptParacrossDone
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
4
8
}
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
4
9
}
}
func
(
m
*
ReceiptParacrossDone
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
...
@@ -3400,7 +3446,7 @@ func (m *ReceiptParacrossRecord) Reset() { *m = ReceiptParacrossRecord{}
func
(
m
*
ReceiptParacrossRecord
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
ReceiptParacrossRecord
)
ProtoMessage
()
{}
func
(
*
ReceiptParacrossRecord
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
49
}
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
50
}
}
func
(
m
*
ReceiptParacrossRecord
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
...
@@ -3448,7 +3494,7 @@ func (m *ParacrossTx) Reset() { *m = ParacrossTx{} }
func
(
m
*
ParacrossTx
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
ParacrossTx
)
ProtoMessage
()
{}
func
(
*
ParacrossTx
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
5
0
}
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
5
1
}
}
func
(
m
*
ParacrossTx
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
...
@@ -3489,7 +3535,7 @@ func (m *ReqParacrossTitleHeight) Reset() { *m = ReqParacrossTitleHeight
func
(
m
*
ReqParacrossTitleHeight
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
ReqParacrossTitleHeight
)
ProtoMessage
()
{}
func
(
*
ReqParacrossTitleHeight
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
5
1
}
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
5
2
}
}
func
(
m
*
ReqParacrossTitleHeight
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
...
@@ -3544,7 +3590,7 @@ func (m *RespParacrossDone) Reset() { *m = RespParacrossDone{} }
func
(
m
*
RespParacrossDone
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
RespParacrossDone
)
ProtoMessage
()
{}
func
(
*
RespParacrossDone
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
5
2
}
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
5
3
}
}
func
(
m
*
RespParacrossDone
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
...
@@ -3639,7 +3685,7 @@ func (m *RespParacrossTitles) Reset() { *m = RespParacrossTitles{} }
func
(
m
*
RespParacrossTitles
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
RespParacrossTitles
)
ProtoMessage
()
{}
func
(
*
RespParacrossTitles
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
5
3
}
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
5
4
}
}
func
(
m
*
RespParacrossTitles
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
...
@@ -3679,7 +3725,7 @@ func (m *ReqParacrossTitleHash) Reset() { *m = ReqParacrossTitleHash{} }
func
(
m
*
ReqParacrossTitleHash
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
ReqParacrossTitleHash
)
ProtoMessage
()
{}
func
(
*
ReqParacrossTitleHash
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
5
4
}
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
5
5
}
}
func
(
m
*
ReqParacrossTitleHash
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
...
@@ -3741,7 +3787,7 @@ func (m *ParacrossAsset) Reset() { *m = ParacrossAsset{} }
func
(
m
*
ParacrossAsset
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
ParacrossAsset
)
ProtoMessage
()
{}
func
(
*
ParacrossAsset
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
5
5
}
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
5
6
}
}
func
(
m
*
ParacrossAsset
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
...
@@ -3862,7 +3908,7 @@ func (m *ParaLocalDbBlock) Reset() { *m = ParaLocalDbBlock{} }
func
(
m
*
ParaLocalDbBlock
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
ParaLocalDbBlock
)
ProtoMessage
()
{}
func
(
*
ParaLocalDbBlock
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
5
6
}
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
5
7
}
}
func
(
m
*
ParaLocalDbBlock
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
...
@@ -3941,7 +3987,7 @@ func (m *ParaLocalDbBlockInfo) Reset() { *m = ParaLocalDbBlockInfo{} }
func
(
m
*
ParaLocalDbBlockInfo
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
ParaLocalDbBlockInfo
)
ProtoMessage
()
{}
func
(
*
ParaLocalDbBlockInfo
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
5
7
}
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
5
8
}
}
func
(
m
*
ParaLocalDbBlockInfo
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
...
@@ -4018,7 +4064,7 @@ func (m *ParaBlsSignSumDetails) Reset() { *m = ParaBlsSignSumDetails{} }
func
(
m
*
ParaBlsSignSumDetails
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
ParaBlsSignSumDetails
)
ProtoMessage
()
{}
func
(
*
ParaBlsSignSumDetails
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
5
8
}
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
5
9
}
}
func
(
m
*
ParaBlsSignSumDetails
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
...
@@ -4080,7 +4126,7 @@ func (m *ParaBlsSignSumDetailsShow) Reset() { *m = ParaBlsSignSumDetails
func
(
m
*
ParaBlsSignSumDetailsShow
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
ParaBlsSignSumDetailsShow
)
ProtoMessage
()
{}
func
(
*
ParaBlsSignSumDetailsShow
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
59
}
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
60
}
}
func
(
m
*
ParaBlsSignSumDetailsShow
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
...
@@ -4134,7 +4180,7 @@ func (m *ParaBlsSignSumInfo) Reset() { *m = ParaBlsSignSumInfo{} }
func
(
m
*
ParaBlsSignSumInfo
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
ParaBlsSignSumInfo
)
ProtoMessage
()
{}
func
(
*
ParaBlsSignSumInfo
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
6
0
}
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
6
1
}
}
func
(
m
*
ParaBlsSignSumInfo
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
...
@@ -4182,7 +4228,7 @@ func (m *LeaderSyncInfo) Reset() { *m = LeaderSyncInfo{} }
func
(
m
*
LeaderSyncInfo
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
LeaderSyncInfo
)
ProtoMessage
()
{}
func
(
*
LeaderSyncInfo
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
6
1
}
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
6
2
}
}
func
(
m
*
LeaderSyncInfo
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
...
@@ -4239,7 +4285,7 @@ func (m *ParaP2PSubMsg) Reset() { *m = ParaP2PSubMsg{} }
func
(
m
*
ParaP2PSubMsg
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
ParaP2PSubMsg
)
ProtoMessage
()
{}
func
(
*
ParaP2PSubMsg
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
6
2
}
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
6
3
}
}
func
(
m
*
ParaP2PSubMsg
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
...
@@ -4325,7 +4371,7 @@ func (m *ElectionStatus) Reset() { *m = ElectionStatus{} }
func
(
m
*
ElectionStatus
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
ElectionStatus
)
ProtoMessage
()
{}
func
(
*
ElectionStatus
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
6
3
}
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
6
4
}
}
func
(
m
*
ElectionStatus
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
...
@@ -4371,7 +4417,7 @@ func (m *BlsPubKey) Reset() { *m = BlsPubKey{} }
func
(
m
*
BlsPubKey
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
BlsPubKey
)
ProtoMessage
()
{}
func
(
*
BlsPubKey
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
6
4
}
return
fileDescriptor_6a397e38c9ea6747
,
[]
int
{
6
5
}
}
func
(
m
*
BlsPubKey
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
...
@@ -4444,6 +4490,7 @@ func init() {
proto
.
RegisterType
((
*
ParacrossCommitBlsInfo
)(
nil
),
"types.ParacrossCommitBlsInfo"
)
proto
.
RegisterType
((
*
ParacrossCommitAction
)(
nil
),
"types.ParacrossCommitAction"
)
proto
.
RegisterType
((
*
ParacrossMinerAction
)(
nil
),
"types.ParacrossMinerAction"
)
proto
.
RegisterType
((
*
ParaMinerReward
)(
nil
),
"types.ParaMinerReward"
)
proto
.
RegisterType
((
*
CrossAssetTransfer
)(
nil
),
"types.CrossAssetTransfer"
)
proto
.
RegisterType
((
*
ParacrossAction
)(
nil
),
"types.ParacrossAction"
)
proto
.
RegisterType
((
*
ReceiptParacrossCommit
)(
nil
),
"types.ReceiptParacrossCommit"
)
...
...
@@ -4472,192 +4519,193 @@ func init() {
}
var
fileDescriptor_6a397e38c9ea6747
=
[]
byte
{
// 2946 bytes of a gzipped FileDescriptorProto
0x1f
,
0x8b
,
0x08
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x02
,
0xff
,
0xd4
,
0x3a
,
0xcd
,
0x6f
,
0x24
,
0x47
,
0xf5
,
0xee
,
0xf9
,
0xf2
,
0xcc
,
0xb3
,
0xc7
,
0x5e
,
0x77
,
0xbc
,
0xce
,
0xc4
,
0x49
,
0x56
,
0x56
,
0x2b
,
0xbf
,
0xc8
,
0x3f
,
0xb2
,
0xf1
,
0x66
,
0x9d
,
0x10
,
0x14
,
0x21
,
0x04
,
0xb1
,
0x77
,
0x93
,
0xb1
,
0xb2
,
0x0e
,
0x9b
,
0xb2
,
0x03
,
0x48
,
0x11
,
0x88
,
0xf6
,
0x4c
,
0xd9
,
0x6e
,
0x65
,
0xa6
,
0x7b
,
0xb6
,
0xab
,
0x27
,
0x6b
,
0x23
,
0xa4
,
0x70
,
0x00
,
0x6e
,
0x48
,
0x5c
,
0x90
,
0x00
,
0x09
,
0x2e
,
0x70
,
0x43
,
0xe2
,
0xc4
,
0x99
,
0x03
,
0x12
,
0x97
,
0x88
,
0x4b
,
0x38
,
0x72
,
0xe3
,
0x86
,
0xc4
,
0x91
,
0x7f
,
0x00
,
0xbd
,
0x57
,
0x55
,
0xdd
,
0x55
,
0xd5
,
0x3d
,
0x63
,
0x27
,
0x9b
,
0x0b
,
0xb7
,
0xae
,
0xd7
,
0xaf
,
0xaa
,
0xde
,
0xf7
,
0x57
,
0x37
,
0xac
,
0x4e
,
0xc2
,
0x34
,
0x1c
,
0xa4
,
0x89
,
0x10
,
0x3b
,
0x93
,
0x34
,
0xc9
,
0x12
,
0xbf
,
0x99
,
0x5d
,
0x4e
,
0xb8
,
0xd8
,
0x5c
,
0xcb
,
0xd2
,
0x30
,
0x16
,
0xe1
,
0x20
,
0x8b
,
0x92
,
0x58
,
0xbe
,
0xd9
,
0x5c
,
0x1e
,
0x24
,
0xe3
,
0x71
,
0xbe
,
0xba
,
0x71
,
0x32
,
0x4a
,
0x06
,
0x1f
,
0x0e
,
0xce
,
0xc3
,
0x48
,
0x41
,
0x82
,
0x07
,
0xb0
,
0xf1
,
0x50
,
0x1f
,
0x76
,
0x94
,
0x85
,
0xd9
,
0x54
,
0xdc
,
0xe3
,
0x59
,
0x18
,
0x8d
,
0x84
,
0xbf
,
0x0e
,
0xcd
,
0x70
,
0x38
,
0x4c
,
0x45
,
0xcf
,
0xdb
,
0xaa
,
0x6f
,
0x77
,
0x98
,
0x5c
,
0xf8
,
0xcf
,
0x41
,
0x87
,
0xce
,
0xe8
,
0x87
,
0xe2
,
0xbc
,
0x57
,
0xdb
,
0xaa
,
0x6f
,
0x2f
,
0xb3
,
0x02
,
0x10
,
0x7c
,
0x00
,
0xcf
,
0x3a
,
0xa7
,
0xed
,
0xe1
,
0x3b
,
0x7d
,
0xe4
,
0x2d
,
0x80
,
0x1c
,
0x57
,
0x9e
,
0xbb
,
0xcc
,
0x0c
,
0x08
,
0x1e
,
0x9e
,
0x5d
,
0x30
,
0x2e
,
0xa6
,
0xa3
,
0x4c
,
0xe8
,
0xc3
,
0x73
,
0x40
,
0xf0
,
0xeb
,
0x1a
,
0xdc
,
0xcc
,
0x4f
,
0xef
,
0xf3
,
0xe8
,
0xec
,
0x3c
,
0x93
,
0x77
,
0xf8
,
0x1b
,
0xd0
,
0x12
,
0xf4
,
0xd4
,
0xf3
,
0xb6
,
0xbc
,
0xed
,
0x26
,
0x53
,
0x2b
,
0x64
,
0x21
,
0x8b
,
0xb2
,
0x11
,
0xef
,
0xd5
,
0xb6
,
0x3c
,
0x64
,
0x81
,
0x16
,
0x88
,
0x7d
,
0x4e
,
0xbb
,
0x7b
,
0xf5
,
0x2d
,
0x6f
,
0xbb
,
0xce
,
0xd4
,
0xca
,
0xff
,
0x0a
,
0x2c
,
0x0e
,
0x25
,
0xa1
,
0xbd
,
0xc6
,
0x96
,
0xb7
,
0xbd
,
0xb4
,
0xfb
,
0xfc
,
0x0e
,
0x89
,
0x75
,
0xa7
,
0x5a
,
0x40
,
0x4c
,
0x63
,
0x23
,
0x5b
,
0xe3
,
0x30
,
0x8a
,
0x25
,
0x49
,
0xbd
,
0x26
,
0x1d
,
0x6a
,
0x40
,
0xfc
,
0x4d
,
0x68
,
0xd3
,
0x0a
,
0x45
,
0xd6
,
0xda
,
0xf2
,
0xb6
,
0x97
,
0x59
,
0xbe
,
0xf6
,
0xdf
,
0x82
,
0xe5
,
0x13
,
0x43
,
0x44
,
0xbd
,
0x45
,
0xba
,
0x39
,
0xa8
,
0xbe
,
0xd9
,
0x14
,
0x26
,
0xb3
,
0xf6
,
0x05
,
0xff
,
0xf2
,
0xa0
,
0x57
,
0x29
,
0x1c
,
0x26
,
0x26
,
0x5f
,
0x90
,
0x7c
,
0x6c
,
0x36
,
0x1b
,
0x73
,
0xd9
,
0x6c
,
0xd2
,
0x81
,
0x05
,
0x9b
,
0x5b
,
0xb0
,
0x84
,
0x86
,
0x18
,
0x65
,
0x6f
,
0x92
,
0x49
,
0xb5
,
0xc8
,
0xa4
,
0x4c
,
0x90
,
0xbf
,
0x0d
,
0xab
,
0x72
,
0xb9
,
0x97
,
0x9b
,
0xd7
,
0x22
,
0x61
,
0xb9
,
0xe0
,
0xe0
,
0x57
,
0x1e
,
0xac
,
0x3a
,
0x82
,
0x29
,
0x38
,
0xf1
,
0xaa
,
0x39
,
0xa9
,
0x59
,
0x9c
,
0x58
,
0x46
,
0x5c
,
0x27
,
0x8d
,
0x14
,
0x80
,
0xcf
,
0xcc
,
0xa7
,
0xa1
,
0xce
,
0xe0
,
0xf7
,
0xa6
,
0x1a
,
0xf6
,
0x93
,
0x58
,
0xf0
,
0x58
,
0x4c
,
0xe7
,
0x13
,
0x89
,
0xa2
,
0x39
,
0x2f
,
0xee
,
0x93
,
0x94
,
0x9a
,
0x20
,
0xff
,
0x05
,
0xe8
,
0x0e
,
0xe4
,
0x51
,
0x7d
,
0x53
,
0x2f
,
0x36
,
0xd0
,
0xff
,
0x12
,
0xdc
,
0x50
,
0x80
,
0x42
,
0x82
,
0x0d
,
0xba
,
0xa8
,
0x04
,
0x0f
,
0xfe
,
0xe4
,
0x81
,
0x8f
,
0x64
,
0xbe
,
0x9b
,
0x0c
,
0x39
,
0x8a
,
0x7f
,
0x3f
,
0x89
,
0x4f
,
0xa3
,
0xb3
,
0x19
,
0x04
,
0xae
,
0x40
,
0x2d
,
0x99
,
0x10
,
0x5d
,
0x5d
,
0x56
,
0x4b
,
0x26
,
0xb8
,
0x8e
,
0x86
,
0x44
,
0x43
,
0x87
,
0xd5
,
0xa2
,
0xa1
,
0xef
,
0x43
,
0x03
,
0x63
,
0x83
,
0xba
,
0x8c
,
0x9e
,
0xf1
,
0xa4
,
0x8f
,
0xc2
,
0xd1
,
0x94
,
0x93
,
0x80
,
0xba
,
0x4c
,
0x2e
,
0xa4
,
0x15
,
0x44
,
0xb1
,
0x78
,
0x2b
,
0x4d
,
0x7e
,
0xc0
,
0x63
,
0xf2
,
0x05
,
0x64
,
0xb5
,
0x00
,
0x49
,
0xcd
,
0x88
,
0x87
,
0xd3
,
0x93
,
0x77
,
0xf8
,
0x25
,
0xf9
,
0x42
,
0x87
,
0x15
,
0x80
,
0xe0
,
0x1b
,
0x05
,
0xd5
,
0xdf
,
0x4a
,
0x32
,
0x2e
,
0x6d
,
0x7f
,
0x46
,
0xa0
,
0x42
,
0x0a
,
0x92
,
0x8c
,
0xcb
,
0x38
,
0xd2
,
0x61
,
0x72
,
0x11
,
0xfc
,
0xd1
,
0x83
,
0x75
,
0x93
,
0xf1
,
0x83
,
0xa1
,
0xd2
,
0x8d
,
0x66
,
0xc2
,
0x33
,
0x98
,
0xb8
,
0x05
,
0x30
,
0x49
,
0x93
,
0x49
,
0x22
,
0xc2
,
0xd1
,
0xc1
,
0x50
,
0xf9
,
0x88
,
0x01
,
0x41
,
0xf3
,
0x7a
,
0x34
,
0x8d
,
0xb2
,
0x03
,
0x2d
,
0x0c
,
0xb5
,
0x32
,
0xdc
,
0xad
,
0x51
,
0xed
,
0x6e
,
0x4d
,
0x53
,
0xbc
,
0x16
,
0xcb
,
0x2d
,
0x97
,
0xe5
,
0x5f
,
0xd4
,
0xe0
,
0x86
,
0x26
,
0x38
,
0x27
,
0x56
,
0x6a
,
0xc0
,
0xcb
,
0x35
,
0x50
,
0x5c
,
0x58
,
0xab
,
0xbe
,
0xb0
,
0x6e
,
0x5e
,
0x78
,
0x0b
,
0x20
,
0x0b
,
0xd3
,
0x33
,
0x4e
,
0x8e
,
0xa7
,
0xb4
,
0x66
,
0x40
,
0x5c
,
0x2d
,
0x35
,
0xcb
,
0x5a
,
0xba
,
0xa3
,
0x65
,
0xdb
,
0xa2
,
0x68
,
0xf5
,
0x8c
,
0x11
,
0xad
,
0x6c
,
0xdd
,
0x28
,
0xb1
,
0xa3
,
0xcb
,
0x9c
,
0xa6
,
0xc9
,
0x98
,
0x2e
,
0x94
,
0x5a
,
0xcd
,
0xd7
,
0x86
,
0x93
,
0xb6
,
0xcb
,
0x4e
,
0xaa
,
0xe5
,
0xd2
,
0x71
,
0xe5
,
0xf2
,
0x67
,
0x0f
,
0x6e
,
0x32
,
0x3e
,
0xe0
,
0xd1
,
0x24
,
0xd3
,
0xd7
,
0x2a
,
0x23
,
0xae
,
0xd2
,
0xe4
,
0x5d
,
0x68
,
0x0d
,
0xe8
,
0x2d
,
0x09
,
0xa8
,
0x4c
,
0x71
,
0xe1
,
0x03
,
0x4c
,
0x21
,
0xfa
,
0x2f
,
0x41
,
0x63
,
0x92
,
0xf2
,
0x8f
,
0x48
,
0x74
,
0x4b
,
0xbb
,
0x4f
,
0x3b
,
0x1b
,
0xb4
,
0x2a
,
0x18
,
0x21
,
0xf9
,
0x77
,
0x61
,
0x71
,
0x30
,
0x4d
,
0x53
,
0x1e
,
0x67
,
0x2a
,
0x75
,
0xcc
,
0xc4
,
0xd7
,
0x78
,
0xc1
,
0xef
,
0x3c
,
0x78
,
0xde
,
0x61
,
0x00
,
0xa9
,
0x40
,
0xb4
,
0xf7
,
0x27
,
0xc3
,
0x30
,
0xe3
,
0x96
,
0xd0
,
0x3c
,
0x47
,
0x68
,
0x77
,
0x14
,
0x75
,
0x92
,
0x9d
,
0x67
,
0x2b
,
0xd8
,
0x71
,
0x28
,
0xfc
,
0x72
,
0x41
,
0x61
,
0xfd
,
0xea
,
0x3d
,
0x39
,
0x95
,
0xff
,
0xf1
,
0xe0
,
0x69
,
0x87
,
0x4a
,
0xd2
,
0x6e
,
0x12
,
0xf3
,
0x92
,
0x15
,
0x56
,
0x67
,
0x13
,
0xdb
,
0xda
,
0xea
,
0x25
,
0x6b
,
0xc3
,
0xf7
,
0x49
,
0x16
,
0x8e
,
0xf0
,
0x68
,
0xed
,
0x30
,
0x06
,
0x84
,
0x6a
,
0x02
,
0x5c
,
0xe1
,
0xb5
,
0x64
,
0x8b
,
0x4d
,
0x56
,
0x00
,
0x28
,
0x16
,
0x27
,
0x22
,
0xa3
,
0x97
,
0x2d
,
0x7a
,
0x99
,
0xaf
,
0xfd
,
0x1e
,
0x2c
,
0xa2
,
0xf5
,
0x31
,
0x91
,
0x29
,
0x9b
,
0xd3
,
0x4b
,
0xbc
,
0x73
,
0x98
,
0xc4
,
0x5c
,
0x32
,
0x4b
,
0x66
,
0xd7
,
0x64
,
0x06
,
0x04
,
0x75
,
0xf3
,
0x94
,
0x66
,
0xf7
,
0xed
,
0x34
,
0x99
,
0x4e
,
0x9e
,
0x28
,
0x3e
,
0xe6
,
0xf1
,
0x49
,
0xba
,
0x9a
,
0x8a
,
0x4f
,
0x57
,
0x7b
,
0x19
,
0x55
,
0x4b
,
0xca
,
0xde
,
0x85
,
0x8a
,
0x0c
,
0x06
,
0x24
,
0xf8
,
0xb7
,
0x4b
,
0xe5
,
0x17
,
0x12
,
0x1d
,
0xb6
,
0x60
,
0xa9
,
0xd0
,
0x8e
,
0xa6
,
0xd9
,
0x04
,
0x5d
,
0x83
,
0x72
,
0xd3
,
0x72
,
0x5b
,
0x33
,
0xdd
,
0x7d
,
0xd1
,
0xad
,
0x2e
,
0x0c
,
0x6e
,
0xdb
,
0x25
,
0x6e
,
0x3f
,
0xf1
,
0x60
,
0xd3
,
0xb1
,
0x44
,
0x53
,
0x35
,
0x55
,
0x5e
,
0xbf
,
0xeb
,
0x78
,
0xfd
,
0xa6
,
0x63
,
0xf2
,
0xc6
,
0xfe
,
0xdc
,
0xed
,
0x77
,
0x2c
,
0xb7
,
0xaf
,
0xdc
,
0x61
,
0xf9
,
0xd5
,
0x6b
,
0xae
,
0xe7
,
0xcf
,
0xdb
,
0x92
,
0xbb
,
0xd5
,
0x4f
,
0x3d
,
0x58
,
0x67
,
0xfc
,
0x51
,
0x5e
,
0x29
,
0x50
,
0x88
,
0x88
,
0x4f
,
0x93
,
0xd9
,
0x16
,
0x16
,
0xe9
,
0x04
,
0x64
,
0x66
,
0xdc
,
0xba
,
0xc1
,
0xec
,
0xac
,
0xa4
,
0x63
,
0x85
,
0xd1
,
0xa6
,
0x1b
,
0x46
,
0xf7
,
0x61
,
0x83
,
0x71
,
0x31
,
0xb1
,
0x08
,
0x91
,
0x5a
,
0xfe
,
0x7f
,
0xa8
,
0x47
,
0x43
,
0x99
,
0x53
,
0xe7
,
0x84
,
0x33
,
0xc4
,
0x09
,
0xde
,
0xc6
,
0x18
,
0xe1
,
0x1c
,
0x42
,
0x6c
,
0x0b
,
0xff
,
0xb6
,
0x79
,
0xca
,
0x3c
,
0xd1
,
0xd0
,
0x41
,
0x13
,
0x99
,
0xeb
,
0xf6
,
0xa2
,
0x78
,
0x78
,
0x18
,
0xc5
,
0x3c
,
0xdd
,
0x1f
,
0x0f
,
0xc9
,
0x2e
,
0xa2
,
0x78
,
0xf8
,
0x26
,
0x35
,
0x35
,
0xaa
,
0x7e
,
0x35
,
0x20
,
0xc4
,
0x5f
,
0x14
,
0x0f
,
0xf7
,
0xd1
,
0xfc
,
0x54
,
0xf1
,
0x54
,
0x00
,
0x8a
,
0xe8
,
0x83
,
0xf7
,
0xd9
,
0xd1
,
0x07
,
0x21
,
0xc1
,
0x5f
,
0x3d
,
0x58
,
0xb3
,
0xae
,
0x24
,
0x2d
,
0xcc
,
0x28
,
0x06
,
0xf0
,
0xd8
,
0x23
,
0xd3
,
0x93
,
0x0c
,
0x88
,
0x4d
,
0x47
,
0x7d
,
0x3e
,
0x1d
,
0x0d
,
0x97
,
0x8e
,
0xbc
,
0x22
,
0x3d
,
0x8e
,
0xc6
,
0x5c
,
0x79
,
0x54
,
0x01
,
0x40
,
0x8f
,
0x93
,
0xe5
,
0xa9
,
0x74
,
0x1c
,
0x55
,
0x37
,
0x19
,
0xa0
,
0xe0
,
0xe7
,
0x1e
,
0xf4
,
0x0c
,
0xef
,
0xb8
,
0x9a
,
0x9d
,
0xdb
,
0x56
,
0x02
,
0xe9
,
0x19
,
0x9a
,
0xb1
,
0xf6
,
0x2a
,
0x2b
,
0xdf
,
0x75
,
0xb3
,
0xc7
,
0xec
,
0x0d
,
0xb9
,
0x8d
,
0xdf
,
0x97
,
0x55
,
0x3a
,
0xb2
,
0x87
,
0x18
,
0xdf
,
0x8c
,
0x89
,
0x4b
,
0x31
,
0x9d
,
0xf0
,
0x94
,
0x84
,
0x20
,
0xa9
,
0x29
,
0x00
,
0x68
,
0xfb
,
0x63
,
0x3c
,
0x46
,
0xe7
,
0x0f
,
0x5a
,
0x04
,
0xdf
,
0x29
,
0xea
,
0x1f
,
0x3c
,
0xe6
,
0x41
,
0x24
,
0xb2
,
0x19
,
0x5e
,
0xb2
,
0x03
,
0x2d
,
0xda
,
0x22
,
0x4b
,
0xbe
,
0xa5
,
0xdd
,
0x0d
,
0xc7
,
0xdc
,
0x14
,
0x15
,
0x4c
,
0x61
,
0x05
,
0x1f
,
0x97
,
0x12
,
0xb0
,
0xbe
,
0x40
,
0x25
,
0x60
,
0x5d
,
0x02
,
0x78
,
0x95
,
0x29
,
0x5d
,
0x23
,
0x97
,
0x4b
,
0x80
,
0xda
,
0x7c
,
0xfc
,
0x5c
,
0x42
,
0x8f
,
0x31
,
0x08
,
0x48
,
0xbf
,
0xb1
,
0xd8
,
0x7b
,
0x09
,
0x1a
,
0xa3
,
0x48
,
0x64
,
0x57
,
0xde
,
0x8b
,
0x48
,
0xa8
,
0x1a
,
0xdd
,
0xb5
,
0x4a
,
0xb6
,
0xe7
,
0xa8
,
0x46
,
0x21
,
0x06
,
0x3f
,
0xd1
,
0x56
,
0x8f
,
0x16
,
0xb4
,
0x7b
,
0x18
,
0x46
,
0xf1
,
0x61
,
0x38
,
0x31
,
0x22
,
0xb3
,
0x37
,
0xbb
,
0x5b
,
0xaa
,
0xe9
,
0x08
,
0x52
,
0xdd
,
0x2d
,
0xd5
,
0xe7
,
0x76
,
0x4b
,
0x0d
,
0xbb
,
0x2b
,
0x0c
,
0xee
,
0xc9
,
0x7a
,
0xbe
,
0x20
,
0x83
,
0xcc
,
0x75
,
0x07
,
0x9a
,
0x51
,
0xc6
,
0xc7
,
0x3a
,
0x6a
,
0x58
,
0xfc
,
0x98
,
0x04
,
0x33
,
0x89
,
0x16
,
0xfc
,
0xb3
,
0x2e
,
0xf3
,
0x60
,
0x1e
,
0x7b
,
0x94
,
0x47
,
0xbe
,
0x00
,
0x5d
,
0xbc
,
0xa9
,
0xe8
,
0x86
,
0x3c
,
0x6a
,
0xd6
,
0x6c
,
0x20
,
0xf6
,
0x9d
,
0x05
,
0xc0
,
0x6c
,
0xc1
,
0x5c
,
0xf0
,
0x8c
,
0x7c
,
0x59
,
0x48
,
0xad
,
0x61
,
0x49
,
0x2d
,
0x80
,
0xe5
,
0x49
,
0xca
,
0x8b
,
0xcb
,
0x65
,
0xa7
,
0x68
,
0xc1
,
0x6c
,
0xc9
,
0xb6
,
0xdc
,
0x3e
,
0x54
,
0x9e
,
0x80
,
0xcc
,
0x70
,
0xd5
,
0x0e
,
0xeb
,
0x13
,
0x72
,
0x18
,
0x79
,
0x54
,
0x8e
,
0xd0
,
0x96
,
0x27
,
0xe4
,
0x00
,
0x94
,
0x7d
,
0x76
,
0xb1
,
0x9f
,
0x4c
,
0xe3
,
0x4c
,
0x50
,
0x05
,
0xdd
,
0x65
,
0xf9
,
0x5a
,
0xbe
,
0x93
,
0xa3
,
0x95
,
0x1e
,
0xc8
,
0x2e
,
0x56
,
0xaf
,
0xb1
,
0x72
,
0xca
,
0x2e
,
0xe4
,
0x90
,
0x66
,
0x89
,
0xa6
,
0x30
,
0x7a
,
0x49
,
0xad
,
0x28
,
0x8a
,
0xf9
,
0x58
,
0x6f
,
0x5d
,
0x96
,
0x32
,
0xb5
,
0x80
,
0x48
,
0xb9
,
0x02
,
0xc8
,
0x43
,
0xba
,
0x74
,
0x88
,
0x05
,
0xf3
,
0x6f
,
0xc3
,
0x5a
,
0x9c
,
0xc4
,
0xfb
,
0xd4
,
0xdb
,
0x1f
,
0x6b
,
0x22
,
0x57
,
0x88
,
0xc8
,
0xf2
,
0x8b
,
0x60
,
0x0f
,
0xd6
,
0x8e
,
0xf8
,
0xe8
,
0x54
,
0x75
,
0xd4
,
0x47
,
0x59
,
0x78
,
0xc6
,
0x85
,
0xff
,
0xb2
,
0x6d
,
0x28
,
0xda
,
0x51
,
0x5c
,
0x44
,
0x6d
,
0x27
,
0x0f
,
0xe0
,
0x86
,
0xfb
,
0x0a
,
0x23
,
0xab
,
0xc8
,
0xc2
,
0x34
,
0xeb
,
0x9b
,
0x86
,
0x6f
,
0x82
,
0x50
,
0xbf
,
0x3c
,
0x0e
,
0x4f
,
0x54
,
0x59
,
0xdb
,
0x65
,
0x6a
,
0x15
,
0xfc
,
0xc3
,
0x83
,
0x75
,
0xf7
,
0x38
,
0x32
,
0xdf
,
0xf9
,
0xe5
,
0x57
,
0x37
,
0x4f
,
0xcc
,
0x2f
,
0x43
,
0x53
,
0xe0
,
0x26
,
0xa7
,
0xc3
,
0x28
,
0x53
,
0x4f
,
0x58
,
0x56
,
0x4d
,
0xd5
,
0x70
,
0x6a
,
0xaa
,
0x5b
,
0x00
,
0xfc
,
0x82
,
0x0f
,
0xec
,
0x01
,
0x54
,
0x01
,
0xf9
,
0xcc
,
0xfd
,
0x5a
,
0xc0
,
0x61
,
0xe3
,
0x41
,
0x32
,
0x08
,
0x47
,
0x9a
,
0x98
,
0x82
,
0xbb
,
0xbb
,
0x9a
,
0x6a
,
0xcf
,
0xea
,
0x22
,
0xaa
,
0x24
,
0xa1
,
0x29
,
0x27
,
0x6b
,
0x3a
,
0x88
,
0x87
,
0xfc
,
0x42
,
0x45
,
0x0f
,
0xbd
,
0x0c
,
0x5e
,
0x87
,
0x15
,
0x59
,
0x7e
,
0x21
,
0x05
,
0x95
,
0xc2
,
0xcb
,
0xe7
,
0x08
,
0x35
,
0x63
,
0x8e
,
0x10
,
0x04
,
0x70
,
0x43
,
0xee
,
0xdb
,
0x0f
,
0xe3
,
0x01
,
0x1f
,
0x55
,
0xed
,
0x0c
,
0x3e
,
0x55
,
0x53
,
0x22
,
0x22
,
0xe7
,
0xaa
,
0xfa
,
0x3d
,
0xbb
,
0xd4
,
0xf5
,
0x7b
,
0x76
,
0x89
,
0xd2
,
0x92
,
0x2c
,
0xc2
,
0x5c
,
0xc5
,
0xf4
,
0x17
,
0x34
,
0x83
,
0x2f
,
0x41
,
0x03
,
0xc5
,
0xd6
,
0x5b
,
0x22
,
0xfc
,
0x9b
,
0x0a
,
0xdf
,
0xe6
,
0xac
,
0xbf
,
0xc0
,
0x08
,
0x89
,
0x5a
,
0x51
,
0xa2
,
0x9a
,
0x5c
,
0xa7
,
0x38
,
0xde
,
0x65
,
0xa8
,
0xbf
,
0xc0
,
0x14
,
0xe2
,
0xde
,
0xa2
,
0x12
,
0x42
,
0xf0
,
0xe3
,
0xa2
,
0x06
,
0xb6
,
0x34
,
0xa3
,
0xd8
,
0xbb
,
0x63
,
0xe5
,
0xab
,
0xb9
,
0xaa
,
0x29
,
0x35
,
0x85
,
0xb5
,
0xab
,
0xf7
,
0xe4
,
0x79
,
0xeb
,
0x53
,
0x0f
,
0x9e
,
0xab
,
0x22
,
0x63
,
0x66
,
0x67
,
0x98
,
0x9b
,
0x7a
,
0xed
,
0x5a
,
0xa6
,
0x6e
,
0xb7
,
0x84
,
0xf5
,
0xf9
,
0x2d
,
0x61
,
0x63
,
0x5e
,
0x4b
,
0xd8
,
0x9c
,
0xdd
,
0x12
,
0xb6
,
0xac
,
0x96
,
0x30
,
0xf8
,
0x18
,
0x9e
,
0xad
,
0x62
,
0x49
,
0xa8
,
0x52
,
0xe0
,
0xb6
,
0x25
,
0xda
,
0xde
,
0x0c
,
0x06
,
0x44
,
0xb9
,
0x5c
,
0xaa
,
0x5d
,
0xb1
,
0x21
,
0x17
,
0xea
,
0x6f
,
0x3d
,
0xf0
,
0x19
,
0x7f
,
0xf4
,
0xde
,
0x94
,
0xa7
,
0x97
,
0x88
,
0xa6
,
0x62
,
0x9c
,
0x3d
,
0xba
,
0x2d
,
0xa2
,
0x87
,
0xdb
,
0x12
,
0xac
,
0x43
,
0x73
,
0x80
,
0xa1
,
0x52
,
0x89
,
0x4b
,
0x2e
,
0x50
,
0x52
,
0xc3
,
0x28
,
0xe5
,
0xb2
,
0x76
,
0x56
,
0x92
,
0xca
,
0x01
,
0x46
,
0xea
,
0x6a
,
0x5a
,
0xa9
,
0x6b
,
0x1d
,
0x9a
,
0x11
,
0xb9
,
0xab
,
0xec
,
0xa8
,
0xe5
,
0x22
,
0x78
,
0x0f
,
0xab
,
0x95
,
0xc9
,
0xe8
,
0xd2
,
0xa5
,
0xf0
,
0x0d
,
0x4a
,
0x41
,
0xd2
,
0x46
,
0x54
,
0x24
,
0x9e
,
0x6b
,
0x46
,
0x05
,
0x76
,
0xf0
,
0x3d
,
0xe3
,
0xe3
,
0xc3
,
0xbe
,
0x9a
,
0xf2
,
0x0a
,
0x5d
,
0xb2
,
0x8a
,
0xe8
,
0x2c
,
0x56
,
0x29
,
0x9b
,
0x9e
,
0x51
,
0xb1
,
0xd4
,
0x3a
,
0x1f
,
0x86
,
0xb2
,
0xdb
,
0x5e
,
0x66
,
0xf9
,
0xba
,
0xe8
,
0xb1
,
0xeb
,
0xc6
,
0x0c
,
0x30
,
0xf8
,
0xa1
,
0xf1
,
0xc1
,
0x40
,
0x9e
,
0xaf
,
0x9a
,
0x86
,
0x5d
,
0x4b
,
0xaa
,
0x76
,
0x67
,
0xe2
,
0x94
,
0x11
,
0xb9
,
0xc4
,
0xef
,
0x40
,
0xfd
,
0x64
,
0x24
,
0x94
,
0x42
,
0x4b
,
0x9f
,
0x06
,
0x2c
,
0xf2
,
0x19
,
0x62
,
0x06
,
0x99
,
0x1c
,
0x35
,
0xd2
,
0x6b
,
0x2a
,
0xc2
,
0x9e
,
0xe0
,
0xf2
,
0x6d
,
0x58
,
0x8d
,
0x84
,
0x21
,
0x4e
,
0x95
,
0x4d
,
0xda
,
0xcc
,
0x05
,
0x07
,
0xbf
,
0xf4
,
0xc0
,
0xdf
,
0xc7
,
0x53
,
0xde
,
0x14
,
0x82
,
0x67
,
0xc7
,
0x69
,
0x18
,
0x8b
,
0x53
,
0x9e
,
0xa2
,
0x25
,
0x84
,
0x08
,
0xb8
,
0x7f
,
0xc1
,
0x07
,
0xba
,
0xf4
,
0xce
,
0x01
,
0x98
,
0x06
,
0x69
,
0x71
,
0x74
,
0x39
,
0x3e
,
0x49
,
0x46
,
0xca
,
0xac
,
0x4c
,
0x10
,
0xda
,
0x4a
,
0x38
,
0xce
,
0x0d
,
0xac
,
0xce
,
0xd4
,
0x0a
,
0xe1
,
0x59
,
0x62
,
0x24
,
0x25
,
0xb5
,
0x42
,
0x05
,
0xc6
,
0xda
,
0x03
,
0x3b
,
0x8c
,
0x9e
,
0x83
,
0xdf
,
0xb4
,
0x8c
,
0xc1
,
0xbd
,
0x12
,
0xc6
,
0xeb
,
0xd8
,
0xa3
,
0xa3
,
0xe8
,
0x94
,
0x30
,
0x9e
,
0xab
,
0x16
,
0xac
,
0xc4
,
0xa6
,
0x98
,
0x48
,
0x6b
,
0xff
,
0x55
,
0xdd
,
0x2c
,
0x94
,
0xa7
,
0x59
,
0xae
,
0xc0
,
0x31
,
0x50
,
0x13
,
0xae
,
0xff
,
0x35
,
0xe8
,
0x86
,
0xa6
,
0x54
,
0x54
,
0xcb
,
0xae
,
0x23
,
0x36
,
0x49
,
0x4c
,
0xe8
,
0x97
,
0xfd
,
0x05
,
0x66
,
0x63
,
0xe7
,
0xdb
,
0xbf
,
0x1d
,
0x65
,
0xe7
,
0xc3
,
0x34
,
0x7c
,
0x4c
,
0xcc
,
0xb9
,
0xdb
,
0xf5
,
0xcb
,
0x7c
,
0xbb
,
0x06
,
0xf8
,
0xaf
,
0x42
,
0x3b
,
0xd3
,
0x17
,
0xb7
,
0xe6
,
0x5f
,
0x9c
,
0x23
,
0xe2
,
0xa6
,
0xc7
,
0xfa
,
0xba
,
0xc5
,
0xf9
,
0xd7
,
0xe5
,
0x88
,
0xfe
,
0x7d
,
0x58
,
0xd1
,
0x07
,
0x1c
,
0x27
,
0xa4
,
0xf1
,
0xb6
,
0x25
,
0x25
,
0xfb
,
0x3e
,
0x89
,
0xd2
,
0x5f
,
0x60
,
0xce
,
0x26
,
0xff
,
0xab
,
0x00
,
0x71
,
0x3e
,
0x57
,
0xa5
,
0x02
,
0x72
,
0xde
,
0xe4
,
0xb4
,
0xbf
,
0xc0
,
0x0c
,
0x74
,
0xff
,
0x2d
,
0x58
,
0x8d
,
0xed
,
0x19
,
0x8b
,
0xca
,
0xa7
,
0x73
,
0xa6
,
0x30
,
0xfd
,
0x05
,
0xe6
,
0x6e
,
0xf2
,
0xf7
,
0x60
,
0x55
,
0xe8
,
0x60
,
0xa3
,
0xce
,
0x91
,
0x79
,
0xd6
,
0x6c
,
0xef
,
0x8c
,
0xb7
,
0x78
,
0x86
,
0xb3
,
0xc1
,
0x7f
,
0x07
,
0xfc
,
0x41
,
0xc9
,
0x25
,
0x54
,
0xfe
,
0xd5
,
0x0c
,
0x95
,
0x7d
,
0xa6
,
0xbf
,
0xc0
,
0x2a
,
0xb6
,
0xf9
,
0x5f
,
0x87
,
0xee
,
0xc4
,
0x6c
,
0xad
,
0x7a
,
0xdd
,
0x52
,
0x9b
,
0x66
,
0x0e
,
0x30
,
0xd0
,
0x0e
,
0x2c
,
0x7c
,
0xa3
,
0xde
,
0x68
,
0x62
,
0xbd
,
0x51
,
0xa4
,
0xf7
,
0x4f
,
0x3c
,
0xd8
,
0x30
,
0x3a
,
0x52
,
0xc3
,
0xfc
,
0x67
,
0x8d
,
0xb7
,
0x8c
,
0xc2
,
0xf2
,
0x7a
,
0x71
,
0xe4
,
0x15
,
0x6b
,
0xbc
,
0x55
,
0x72
,
0x36
,
0xeb
,
0xc3
,
0xa1
,
0xcc
,
0x65
,
0xaf
,
0xbb
,
0x03
,
0xae
,
0xf9
,
0x9b
,
0xf2
,
0x7c
,
0xf6
,
0x8e
,
0x35
,
0x9f
,
0x2f
,
0x7c
,
0xf2
,
0xf3
,
0x84
,
0xbf
,
0xe0
,
0x47
,
0x0d
,
0x4c
,
0x3e
,
0xf6
,
0x69
,
0x54
,
0x69
,
0xd8
,
0xa5
,
0x82
,
0x57
,
0x2a
,
0x15
,
0xb6
,
0x60
,
0x89
,
0x56
,
0x52
,
0x8c
,
0x4a
,
0xe8
,
0x26
,
0xc8
,
0x7f
,
0x11
,
0x56
,
0xb0
,
0x3c
,
0x38
,
0x0a
,
0xc7
,
0x5c
,
0x21
,
0xc9
,
0x0c
,
0xea
,
0x40
,
0x8b
,
0xda
,
0xb1
,
0x51
,
0xdd
,
0xfd
,
0x35
,
0xdd
,
0x9e
,
0xb9
,
0xe8
,
0xcb
,
0x5a
,
0xf3
,
0xfa
,
0xb2
,
0xc5
,
0x39
,
0x7d
,
0x59
,
0xdb
,
0xe9
,
0xcb
,
0xac
,
0x7e
,
0xb1
,
0xe3
,
0xf6
,
0x8b
,
0x46
,
0xd7
,
0x06
,
0x57
,
0x74
,
0x6d
,
0x4b
,
0xd7
,
0xe9
,
0xda
,
0x96
,
0x2b
,
0xba
,
0xb6
,
0x52
,
0x4f
,
0xdd
,
0xbd
,
0x66
,
0x4f
,
0xbd
,
0x52
,
0xdd
,
0x53
,
0x6f
,
0xc3
,
0x2a
,
0x7d
,
0xe9
,
0xbc
,
0x5f
,
0xb4
,
0x2f
,
0xab
,
0x12
,
0xd3
,
0x01
,
0x07
,
0xdf
,
0x2f
,
0xfb
,
0x06
,
0xe3
,
0x83
,
0x24
,
0x1d
,
0x7e
,
0x51
,
0xbe
,
0x11
,
0xfc
,
0x1f
,
0x2c
,
0xe5
,
0xaf
,
0x8f
,
0x2f
,
0x28
,
0xb3
,
0x5d
,
0xe4
,
0x73
,
0x03
,
0xcc
,
0x6c
,
0xb4
,
0x92
,
0xd3
,
0xce
,
0x62
,
0x74
,
0x7b
,
0x8c
,
0x76
,
0xe0
,
0x4e
,
0x08
,
0xae
,
0xf3
,
0x15
,
0x3a
,
0xf8
,
0x43
,
0x0d
,
0xd6
,
0xac
,
0xb9
,
0xe9
,
0xff
,
0x96
,
0x45
,
0x77
,
0x3e
,
0xaf
,
0x45
,
0x77
,
0x0c
,
0x8b
,
0xae
,
0xd0
,
0x7f
,
0xa7
,
0x5a
,
0xff
,
0x6f
,
0xc3
,
0x53
,
0x96
,
0xb0
,
0x48
,
0xee
,
0x18
,
0xd0
,
0x5a
,
0x44
,
0xb7
,
0x3b
,
0x2d
,
0x2a
,
0x09
,
0x96
,
0x29
,
0x3c
,
0x19
,
0x98
,
0x5c
,
0xfd
,
0x21
,
0x0f
,
0xd5
,
0xda
,
0x2b
,
0x4d
,
0xbf
,
0xac
,
0x1f
,
0x5e
,
0xfe
,
0x56
,
0x83
,
0x95
,
0xa2
,
0xa4
,
0xc1
,
0x3c
,
0x81
,
0xe6
,
0x88
,
0x8d
,
0xb9
,
0x36
,
0x47
,
0x7c
,
0xa6
,
0x90
,
0x9f
,
0xe8
,
0x6a
,
0x3d
,
0x4b
,
0x50
,
0xc9
,
0x51
,
0x9e
,
0xba
,
0x49
,
0x3d
,
0x6d
,
0x66
,
0x40
,
0x0c
,
0xdb
,
0x6b
,
0x98
,
0xb6
,
0x67
,
0x54
,
0x61
,
0x4d
,
0xab
,
0x0a
,
0xf3
,
0xa1
,
0x81
,
0xed
,
0xbe
,
0xd2
,
0x0b
,
0x3d
,
0x53
,
0xe7
,
0x20
,
0xcb
,
0x39
,
0xf9
,
0xf5
,
0x4b
,
0xad
,
0x90
,
0x21
,
0xc9
,
0xf8
,
0xe5
,
0x84
,
0x93
,
0x3e
,
0xba
,
0xac
,
0x00
,
0x18
,
0xea
,
0x07
,
0x4b
,
0xfd
,
0xf4
,
0x77
,
0x01
,
0x9a
,
0x0d
,
0xca
,
0x52
,
0x69
,
0xea
,
0x26
,
0x61
,
0x94
,
0xe0
,
0xf4
,
0xdd
,
0x3c
,
0x4c
,
0x43
,
0x85
,
0xb5
,
0x21
,
0xc7
,
0x11
,
0x05
,
0x04
,
0x03
,
0x95
,
0x98
,
0x0e
,
0x06
,
0x5c
,
0x88
,
0xde
,
0xd3
,
0xc4
,
0xba
,
0x5e
,
0x06
,
0x7f
,
0xf7
,
0xe4
,
0xb4
,
0x97
,
0x86
,
0x0f
,
0xf7
,
0x4e
,
0x28
,
0x52
,
0xcc
,
0x9c
,
0x4b
,
0x9a
,
0x93
,
0xc5
,
0x9a
,
0xf3
,
0x5b
,
0xcd
,
0x55
,
0x53
,
0xc9
,
0x17
,
0x61
,
0x65
,
0x12
,
0x62
,
0x9e
,
0x3a
,
0x34
,
0x67
,
0x93
,
0xcb
,
0xcc
,
0x81
,
0x5e
,
0x31
,
0x97
,
0x7f
,
0x01
,
0xea
,
0xd9
,
0x85
,
0xfc
,
0x9b
,
0x65
,
0x69
,
0xd7
,
0x57
,
0x96
,
0x77
,
0x5c
,
0xfc
,
0x83
,
0xc5
,
0xf0
,
0x75
,
0xf0
,
0x17
,
0xf5
,
0xcf
,
0x81
,
0xc9
,
0x14
,
0x35
,
0x39
,
0xd7
,
0x65
,
0xac
,
0xf3
,
0xc4
,
0x8c
,
0x75
,
0x3e
,
0x23
,
0x63
,
0x37
,
0x0a
,
0xc6
,
0x3a
,
0x92
,
0x89
,
0x44
,
0xb6
,
0x52
,
0x7b
,
0x23
,
0x71
,
0x14
,
0x9d
,
0xc5
,
0x47
,
0xd3
,
0xb1
,
0xfe
,
0xa7
,
0x6b
,
0x16
,
0x13
,
0x79
,
0x47
,
0x56
,
0x33
,
0xff
,
0xca
,
0xf0
,
0xa1
,
0x31
,
0x16
,
0x67
,
0xb2
,
0x4d
,
0x5b
,
0x66
,
0xf4
,
0x8c
,
0x98
,
0xd8
,
0xdf
,
0x89
,
0x5e
,
0x83
,
0x80
,
0x72
,
0x11
,
0x7c
,
0x17
,
0x9e
,
0xa9
,
0xbc
,
0xf0
,
0xe8
,
0x3c
,
0x79
,
0xfc
,
0x04
,
0x97
,
0x76
,
0xe4
,
0xa5
,
0xc1
,
0x89
,
0x1e
,
0x3d
,
0xeb
,
0xe3
,
0x49
,
0x23
,
0xaf
,
0x41
,
0x23
,
0x2a
,
0xda
,
0xd8
,
0x2d
,
0x6b
,
0xf2
,
0x5c
,
0x41
,
0x07
,
0x23
,
0x6c
,
0xd9
,
0x03
,
0x4d
,
0xa2
,
0x81
,
0xbe
,
0x56
,
0xad
,
0x02
,
0x06
,
0x2b
,
0x0f
,
0x78
,
0x38
,
0xe4
,
0xe9
,
0xd1
,
0x65
,
0x3c
,
0xd0
,
0x43
,
0xaa
,
0x83
,
0x7b
,
0x7a
,
0x30
,
0x72
,
0x70
,
0x0f
,
0x3d
,
0xe1
,
0x24
,
0x14
,
0xfc
,
0x60
,
0x78
,
0xa1
,
0x02
,
0xb9
,
0x5e
,
0xe2
,
0x99
,
0xc9
,
0xe9
,
0xa9
,
0xe0
,
0x3a
,
0x78
,
0xab
,
0x55
,
0xf0
,
0x33
,
0x0f
,
0xba
,
0x48
,
0xcf
,
0xc3
,
0xdd
,
0x87
,
0x47
,
0xd3
,
0x93
,
0x43
,
0x71
,
0xa6
,
0xca
,
0x49
,
0x4f
,
0x97
,
0x93
,
0xfe
,
0x2b
,
0xd0
,
0x1e
,
0xa8
,
0xe1
,
0xa9
,
0xaa
,
0xb8
,
0x2b
,
0x2c
,
0x13
,
0xdb
,
0x05
,
0x8d
,
0xe5
,
0xdf
,
0x85
,
0x45
,
0x71
,
0x19
,
0x0f
,
0x0e
,
0xc5
,
0x99
,
0x33
,
0xc2
,
0xb2
,
0xa9
,
0xef
,
0x2f
,
0x30
,
0x8d
,
0x57
,
0xd4
,
0xac
,
0x1f
,
0xc0
,
0xca
,
0xfd
,
0x91
,
0x9c
,
0x27
,
0xa8
,
0xb1
,
0xfb
,
0x26
,
0xb4
,
0x23
,
0x21
,
0x77
,
0x12
,
0x55
,
0x6d
,
0x96
,
0xaf
,
0xfd
,
0x97
,
0xa1
,
0x35
,
0x92
,
0x6f
,
0x6a
,
0x73
,
0x2e
,
0x62
,
0x0a
,
0x29
,
0x78
,
0x1e
,
0x3a
,
0x7b
,
0xfa
,
0x53
,
0x25
,
0xda
,
0xe4
,
0x87
,
0xfc
,
0x52
,
0x09
,
0x0f
,
0x1f
,
0x77
,
0xdf
,
0x80
,
0x4e
,
0xfe
,
0x23
,
0xa4
,
0x7f
,
0x1b
,
0x5a
,
0x07
,
0x02
,
0x4f
,
0xf0
,
0xbb
,
0x79
,
0x0a
,
0x78
,
0xf4
,
0x6e
,
0x34
,
0xda
,
0x5c
,
0x53
,
0xcb
,
0x03
,
0xb1
,
0x1f
,
0x4e
,
0xcf
,
0xce
,
0xb3
,
0xf7
,
0x27
,
0xc1
,
0xc2
,
0x49
,
0x8b
,
0xfe
,
0x7e
,
0x7c
,
0xf5
,
0xbf
,
0x01
,
0x00
,
0x00
,
0xff
,
0xff
,
0xa1
,
0x27
,
0x7c
,
0x4a
,
0x4a
,
0x29
,
0x00
,
0x00
,
// 2966 bytes of a gzipped FileDescriptorProto
0x1f
,
0x8b
,
0x08
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x02
,
0xff
,
0xd4
,
0x1a
,
0x4d
,
0x6f
,
0x24
,
0x47
,
0xd5
,
0x3d
,
0x5f
,
0xf6
,
0x3c
,
0x7b
,
0xec
,
0xdd
,
0xce
,
0xae
,
0x33
,
0x71
,
0x92
,
0x95
,
0x55
,
0x0a
,
0x91
,
0x21
,
0x9b
,
0xdd
,
0xac
,
0x13
,
0x82
,
0x22
,
0x14
,
0x41
,
0xec
,
0xdd
,
0x64
,
0xac
,
0xac
,
0xc3
,
0xa6
,
0xec
,
0x00
,
0x52
,
0x04
,
0xa2
,
0x3d
,
0x53
,
0xb6
,
0x5b
,
0x99
,
0xe9
,
0x9e
,
0x9d
,
0xea
,
0xc9
,
0xda
,
0x08
,
0x29
,
0x1c
,
0x80
,
0x1b
,
0x12
,
0x17
,
0x24
,
0x40
,
0x82
,
0x0b
,
0xdc
,
0x90
,
0x38
,
0x71
,
0xe6
,
0x80
,
0xc4
,
0x25
,
0xe2
,
0x12
,
0x8e
,
0xdc
,
0xb8
,
0x21
,
0x71
,
0xe4
,
0x0f
,
0xa0
,
0xf7
,
0xaa
,
0xaa
,
0xbb
,
0xaa
,
0xba
,
0x67
,
0xec
,
0xec
,
0xe6
,
0xc2
,
0xad
,
0xeb
,
0xf5
,
0xab
,
0xaa
,
0xf7
,
0xfd
,
0xd5
,
0x0d
,
0x6b
,
0xe3
,
0x68
,
0x12
,
0xf5
,
0x27
,
0xa9
,
0x94
,
0xb7
,
0xc6
,
0x93
,
0x34
,
0x4b
,
0xc3
,
0x66
,
0x76
,
0x3e
,
0x16
,
0x72
,
0xe3
,
0x6a
,
0x36
,
0x89
,
0x12
,
0x19
,
0xf5
,
0xb3
,
0x38
,
0x4d
,
0xd4
,
0x9b
,
0x8d
,
0x95
,
0x7e
,
0x3a
,
0x1a
,
0xe5
,
0xab
,
0x2b
,
0x47
,
0xc3
,
0xb4
,
0xff
,
0x51
,
0xff
,
0x34
,
0x8a
,
0x35
,
0x84
,
0xdd
,
0x87
,
0xf5
,
0x07
,
0xe6
,
0xb0
,
0x83
,
0x2c
,
0xca
,
0xa6
,
0xf2
,
0xae
,
0xc8
,
0xa2
,
0x78
,
0x28
,
0xc3
,
0x6b
,
0xd0
,
0x8c
,
0x06
,
0x83
,
0x89
,
0xec
,
0x06
,
0x9b
,
0xf5
,
0xad
,
0x36
,
0x57
,
0x8b
,
0xf0
,
0x39
,
0x68
,
0xd3
,
0x19
,
0xbd
,
0x48
,
0x9e
,
0x76
,
0x6b
,
0x9b
,
0xf5
,
0xad
,
0x15
,
0x5e
,
0x00
,
0xd8
,
0x87
,
0xf0
,
0xac
,
0x77
,
0xda
,
0x0e
,
0xbe
,
0x33
,
0x47
,
0xde
,
0x00
,
0xc8
,
0x71
,
0xd5
,
0xb9
,
0x2b
,
0xdc
,
0x82
,
0xe0
,
0xe1
,
0xd9
,
0x19
,
0x17
,
0x72
,
0x3a
,
0xcc
,
0xa4
,
0x39
,
0x3c
,
0x07
,
0xb0
,
0xdf
,
0xd4
,
0xe0
,
0x7a
,
0x7e
,
0x7a
,
0x4f
,
0xc4
,
0x27
,
0xa7
,
0x99
,
0xba
,
0x23
,
0x5c
,
0x87
,
0x96
,
0xa4
,
0xa7
,
0x6e
,
0xb0
,
0x19
,
0x6c
,
0x35
,
0xb9
,
0x5e
,
0x21
,
0x0b
,
0x59
,
0x9c
,
0x0d
,
0x45
,
0xb7
,
0xb6
,
0x19
,
0x20
,
0x0b
,
0xb4
,
0x40
,
0xec
,
0x53
,
0xda
,
0xdd
,
0xad
,
0x6f
,
0x06
,
0x5b
,
0x75
,
0xae
,
0x57
,
0xe1
,
0xd7
,
0x60
,
0x71
,
0xa0
,
0x08
,
0xed
,
0x36
,
0x36
,
0x83
,
0xad
,
0xe5
,
0xed
,
0xe7
,
0x6f
,
0x91
,
0x58
,
0x6f
,
0x55
,
0x0b
,
0x88
,
0x1b
,
0x6c
,
0x64
,
0x6b
,
0x14
,
0xc5
,
0x89
,
0x22
,
0xa9
,
0xdb
,
0xa4
,
0x43
,
0x2d
,
0x48
,
0xb8
,
0x01
,
0x4b
,
0xb4
,
0x42
,
0x91
,
0xb5
,
0x36
,
0x83
,
0xad
,
0x15
,
0x9e
,
0xaf
,
0xc3
,
0xb7
,
0x61
,
0xe5
,
0xc8
,
0x12
,
0x51
,
0x77
,
0x91
,
0x6e
,
0x66
,
0xd5
,
0x37
,
0xdb
,
0xc2
,
0xe4
,
0xce
,
0x3e
,
0xf6
,
0xef
,
0x00
,
0xba
,
0x95
,
0xc2
,
0xe1
,
0x72
,
0xfc
,
0x05
,
0xc9
,
0xc7
,
0x65
,
0xb3
,
0x31
,
0x97
,
0xcd
,
0x26
,
0x1d
,
0x58
,
0xb0
,
0xb9
,
0x09
,
0xcb
,
0x68
,
0x88
,
0x71
,
0xf6
,
0x16
,
0x99
,
0x54
,
0x8b
,
0x4c
,
0xca
,
0x06
,
0x85
,
0x5b
,
0xb0
,
0xa6
,
0x96
,
0x3b
,
0xb9
,
0x79
,
0x2d
,
0x12
,
0x96
,
0x0f
,
0x66
,
0xbf
,
0x0e
,
0x60
,
0xcd
,
0x13
,
0x4c
,
0xc1
,
0x49
,
0x50
,
0xcd
,
0x49
,
0xcd
,
0xe1
,
0xc4
,
0x31
,
0xe2
,
0x3a
,
0x69
,
0xa4
,
0x00
,
0x7c
,
0x6e
,
0x3e
,
0x2d
,
0x75
,
0xb2
,
0x3f
,
0xd8
,
0x6a
,
0xd8
,
0x4d
,
0x13
,
0x29
,
0x12
,
0x39
,
0x9d
,
0x4f
,
0x24
,
0x8a
,
0xe6
,
0xb4
,
0xb8
,
0x4f
,
0x51
,
0x6a
,
0x83
,
0xc2
,
0x17
,
0xa0
,
0xd3
,
0x57
,
0x47
,
0xf5
,
0x6c
,
0xbd
,
0xb8
,
0xc0
,
0xf0
,
0x2b
,
0x70
,
0x45
,
0x03
,
0x0a
,
0x09
,
0x36
,
0xe8
,
0xa2
,
0x12
,
0x9c
,
0xfd
,
0x39
,
0x80
,
0x10
,
0xc9
,
0x7c
,
0x2f
,
0x1d
,
0x08
,
0x14
,
0xff
,
0x6e
,
0x9a
,
0x1c
,
0xc7
,
0x27
,
0x33
,
0x08
,
0x5c
,
0x85
,
0x5a
,
0x3a
,
0x26
,
0xba
,
0x3a
,
0xbc
,
0x96
,
0x8e
,
0x71
,
0x1d
,
0x0f
,
0x88
,
0x86
,
0x36
,
0xaf
,
0xc5
,
0x83
,
0x30
,
0x84
,
0x06
,
0xc6
,
0x06
,
0x7d
,
0x19
,
0x3d
,
0xe3
,
0x49
,
0x1f
,
0x47
,
0xc3
,
0xa9
,
0x20
,
0x01
,
0x75
,
0xb8
,
0x5a
,
0x28
,
0x2b
,
0x88
,
0x13
,
0xf9
,
0xf6
,
0x24
,
0xfd
,
0xa1
,
0x48
,
0xc8
,
0x17
,
0x90
,
0xd5
,
0x02
,
0xa4
,
0x34
,
0x23
,
0x1f
,
0x4c
,
0x8f
,
0xde
,
0x15
,
0xe7
,
0xe4
,
0x0b
,
0x6d
,
0x5e
,
0x00
,
0xd8
,
0x37
,
0x0b
,
0xaa
,
0xbf
,
0x9d
,
0x66
,
0x42
,
0xd9
,
0xfe
,
0x8c
,
0x40
,
0x85
,
0x14
,
0xa4
,
0x99
,
0x50
,
0x71
,
0xa4
,
0xcd
,
0xd5
,
0x82
,
0xfd
,
0x29
,
0x80
,
0x6b
,
0x36
,
0xe3
,
0x7b
,
0x03
,
0xad
,
0x1b
,
0xc3
,
0x44
,
0x60
,
0x31
,
0x71
,
0x03
,
0x60
,
0x3c
,
0x49
,
0xc7
,
0xa9
,
0x8c
,
0x86
,
0x7b
,
0x03
,
0xed
,
0x23
,
0x16
,
0x04
,
0xcd
,
0xeb
,
0xe1
,
0x34
,
0xce
,
0xf6
,
0x8c
,
0x30
,
0xf4
,
0xca
,
0x72
,
0xb7
,
0x46
,
0xb5
,
0xbb
,
0x35
,
0x6d
,
0xf1
,
0x3a
,
0x2c
,
0xb7
,
0x7c
,
0x96
,
0x7f
,
0x59
,
0x83
,
0x2b
,
0x86
,
0xe0
,
0x9c
,
0x58
,
0xa5
,
0x81
,
0x20
,
0xd7
,
0x40
,
0x71
,
0x61
,
0xad
,
0xfa
,
0xc2
,
0xba
,
0x7d
,
0xe1
,
0x0d
,
0x80
,
0x2c
,
0x9a
,
0x9c
,
0x08
,
0x72
,
0x3c
,
0xad
,
0x35
,
0x0b
,
0xe2
,
0x6b
,
0xa9
,
0x59
,
0xd6
,
0xd2
,
0x6d
,
0x23
,
0xdb
,
0x16
,
0x45
,
0xab
,
0x67
,
0xac
,
0x68
,
0xe5
,
0xea
,
0x46
,
0x8b
,
0x1d
,
0x5d
,
0xe6
,
0x78
,
0x92
,
0x8e
,
0xe8
,
0x42
,
0xa5
,
0xd5
,
0x7c
,
0x6d
,
0x39
,
0xe9
,
0x52
,
0xd9
,
0x49
,
0x8d
,
0x5c
,
0xda
,
0xbe
,
0x5c
,
0xfe
,
0x12
,
0xc0
,
0x75
,
0x2e
,
0xfa
,
0x22
,
0x1e
,
0x67
,
0xe6
,
0x5a
,
0x6d
,
0xc4
,
0x55
,
0x9a
,
0xbc
,
0x03
,
0xad
,
0x3e
,
0xbd
,
0x25
,
0x01
,
0x95
,
0x29
,
0x2e
,
0x7c
,
0x80
,
0x6b
,
0xc4
,
0xf0
,
0x25
,
0x68
,
0x8c
,
0x27
,
0xe2
,
0x63
,
0x12
,
0xdd
,
0xf2
,
0xf6
,
0xd3
,
0xde
,
0x06
,
0xa3
,
0x0a
,
0x4e
,
0x48
,
0xe1
,
0x1d
,
0x58
,
0xec
,
0x4f
,
0x27
,
0x13
,
0x91
,
0x64
,
0x3a
,
0x75
,
0xcc
,
0xc4
,
0x37
,
0x78
,
0xec
,
0xf7
,
0x01
,
0x3c
,
0xef
,
0x31
,
0x80
,
0x54
,
0x20
,
0xda
,
0x07
,
0xe3
,
0x41
,
0x94
,
0x09
,
0x47
,
0x68
,
0x81
,
0x27
,
0xb4
,
0xdb
,
0x9a
,
0x3a
,
0xc5
,
0xce
,
0xb3
,
0x15
,
0xec
,
0x78
,
0x14
,
0x7e
,
0xb5
,
0xa0
,
0xb0
,
0x7e
,
0xf1
,
0x9e
,
0x9c
,
0xca
,
0xff
,
0x06
,
0xf0
,
0xb4
,
0x47
,
0x25
,
0x69
,
0x37
,
0x4d
,
0x44
,
0xc9
,
0x0a
,
0xab
,
0xb3
,
0x89
,
0x6b
,
0x6d
,
0xf5
,
0x92
,
0xb5
,
0xe1
,
0xfb
,
0x34
,
0x8b
,
0x86
,
0x78
,
0xb4
,
0x71
,
0x18
,
0x0b
,
0x42
,
0x35
,
0x01
,
0xae
,
0xf0
,
0x5a
,
0xb2
,
0xc5
,
0x26
,
0x2f
,
0x00
,
0x14
,
0x8b
,
0x53
,
0x99
,
0xd1
,
0xcb
,
0x16
,
0xbd
,
0xcc
,
0xd7
,
0x61
,
0x17
,
0x16
,
0xd1
,
0xfa
,
0xb8
,
0xcc
,
0xb4
,
0xcd
,
0x99
,
0x25
,
0xde
,
0x39
,
0x48
,
0x13
,
0xa1
,
0x98
,
0x25
,
0xb3
,
0x6b
,
0x72
,
0x0b
,
0x82
,
0xba
,
0x79
,
0xca
,
0xb0
,
0xfb
,
0xce
,
0x24
,
0x9d
,
0x8e
,
0x9f
,
0x28
,
0x3e
,
0xe6
,
0xf1
,
0x49
,
0xb9
,
0x9a
,
0x8e
,
0x4f
,
0x17
,
0x7b
,
0x19
,
0x55
,
0x4b
,
0xda
,
0xde
,
0xa5
,
0x8e
,
0x0c
,
0x16
,
0x84
,
0xfd
,
0xc7
,
0xa7
,
0xf2
,
0x0b
,
0x89
,
0x0e
,
0x9b
,
0xb0
,
0x5c
,
0x68
,
0xc7
,
0xd0
,
0x6c
,
0x83
,
0x2e
,
0x41
,
0xb9
,
0x6d
,
0xb9
,
0xad
,
0x99
,
0xee
,
0xbe
,
0xe8
,
0x57
,
0x17
,
0x16
,
0xb7
,
0x4b
,
0x25
,
0x6e
,
0x3f
,
0x0d
,
0x60
,
0xc3
,
0xb3
,
0x44
,
0x5b
,
0x35
,
0x55
,
0x5e
,
0xbf
,
0xed
,
0x79
,
0xfd
,
0x86
,
0x67
,
0xf2
,
0xd6
,
0xfe
,
0xdc
,
0xed
,
0x6f
,
0x39
,
0x6e
,
0x5f
,
0xb9
,
0xc3
,
0xf1
,
0xab
,
0xd7
,
0x7c
,
0xcf
,
0x9f
,
0xb7
,
0x25
,
0x77
,
0xab
,
0x9f
,
0x05
,
0x70
,
0x8d
,
0x8b
,
0x87
,
0x79
,
0xa5
,
0x40
,
0x21
,
0x22
,
0x39
,
0x4e
,
0x67
,
0x5b
,
0x58
,
0x6c
,
0x12
,
0x90
,
0x9d
,
0x71
,
0xeb
,
0x16
,
0xb3
,
0xb3
,
0x92
,
0x8e
,
0x13
,
0x46
,
0x9b
,
0x7e
,
0x18
,
0xdd
,
0x85
,
0x75
,
0x2e
,
0xe4
,
0xd8
,
0x21
,
0x44
,
0x69
,
0xf9
,
0xcb
,
0x50
,
0x8f
,
0x07
,
0x2a
,
0xa7
,
0xce
,
0x09
,
0x67
,
0x88
,
0xc3
,
0xde
,
0xc1
,
0x18
,
0xe1
,
0x1d
,
0x42
,
0x6c
,
0xcb
,
0xf0
,
0xa6
,
0x7d
,
0xca
,
0x3c
,
0xd1
,
0xd0
,
0x41
,
0x63
,
0x95
,
0xeb
,
0x76
,
0xe2
,
0x64
,
0xb0
,
0x1f
,
0x27
,
0x62
,
0xb2
,
0x3b
,
0x1a
,
0x90
,
0x5d
,
0xc4
,
0xc9
,
0xe0
,
0x2d
,
0x6a
,
0x6a
,
0x74
,
0xfd
,
0x6a
,
0x41
,
0x88
,
0xbf
,
0x38
,
0x19
,
0xec
,
0xa2
,
0xf9
,
0xe9
,
0xe2
,
0xa9
,
0x00
,
0x14
,
0xd1
,
0x07
,
0xef
,
0x73
,
0xa3
,
0x0f
,
0x42
,
0xd8
,
0xdf
,
0x02
,
0xb8
,
0xea
,
0x5c
,
0x49
,
0x5a
,
0x98
,
0x51
,
0x0c
,
0xe0
,
0xb1
,
0x07
,
0xb6
,
0x27
,
0x59
,
0x10
,
0x97
,
0x8e
,
0xfa
,
0x7c
,
0x3a
,
0x1a
,
0x3e
,
0x1d
,
0x79
,
0x45
,
0x7a
,
0x18
,
0x8f
,
0x84
,
0xf6
,
0xa8
,
0x02
,
0x80
,
0x1e
,
0xa7
,
0xca
,
0x53
,
0xe5
,
0x38
,
0xba
,
0x6e
,
0xb2
,
0x40
,
0xec
,
0x17
,
0x01
,
0x74
,
0x2d
,
0xef
,
0xb8
,
0x98
,
0x9d
,
0x9b
,
0x4e
,
0x02
,
0xe9
,
0x5a
,
0x9a
,
0x71
,
0xf6
,
0x6a
,
0x2b
,
0xdf
,
0xf6
,
0xb3
,
0xc7
,
0xec
,
0x0d
,
0xb9
,
0x8d
,
0xdf
,
0x53
,
0x55
,
0x3a
,
0xb2
,
0x87
,
0x18
,
0xdf
,
0x4a
,
0x88
,
0x4b
,
0x39
,
0x1d
,
0x8b
,
0x09
,
0x09
,
0x41
,
0x51
,
0x53
,
0x00
,
0xd0
,
0xf6
,
0x47
,
0x78
,
0x8c
,
0xc9
,
0x1f
,
0xb4
,
0x60
,
0xdf
,
0x2d
,
0xea
,
0x1f
,
0x3c
,
0xe6
,
0x7e
,
0x2c
,
0xb3
,
0x19
,
0x5e
,
0x72
,
0x0b
,
0x5a
,
0xb4
,
0x45
,
0x95
,
0x7c
,
0xcb
,
0xdb
,
0xeb
,
0x9e
,
0xb9
,
0x69
,
0x2a
,
0xb8
,
0xc6
,
0x62
,
0x9f
,
0x94
,
0x12
,
0xb0
,
0xb9
,
0x40
,
0x27
,
0x60
,
0x53
,
0x02
,
0x04
,
0x95
,
0x29
,
0xdd
,
0x20
,
0x97
,
0x4b
,
0x80
,
0xda
,
0x7c
,
0xfc
,
0x5c
,
0x42
,
0x8f
,
0x30
,
0x08
,
0x28
,
0xbf
,
0x71
,
0xd8
,
0x7b
,
0x09
,
0x1a
,
0xc3
,
0x58
,
0x66
,
0x17
,
0xde
,
0x8b
,
0x48
,
0xa8
,
0x1a
,
0xd3
,
0xb5
,
0x2a
,
0xb6
,
0xe7
,
0xa8
,
0x46
,
0x23
,
0xb2
,
0x9f
,
0x1a
,
0xab
,
0x47
,
0x0b
,
0xda
,
0xde
,
0x8f
,
0xe2
,
0x64
,
0x3f
,
0x1a
,
0x5b
,
0x91
,
0x39
,
0x98
,
0xdd
,
0x2d
,
0xd5
,
0x4c
,
0x04
,
0xa9
,
0xee
,
0x96
,
0xea
,
0x73
,
0xbb
,
0xa5
,
0x86
,
0xdb
,
0x15
,
0xb2
,
0xbb
,
0xaa
,
0x9e
,
0x2f
,
0xc8
,
0x20
,
0x73
,
0xbd
,
0x05
,
0xcd
,
0x38
,
0x13
,
0x23
,
0x13
,
0x35
,
0x1c
,
0x7e
,
0x6c
,
0x82
,
0xb9
,
0x42
,
0x63
,
0xff
,
0xaa
,
0xab
,
0x3c
,
0x98
,
0xc7
,
0x1e
,
0xed
,
0x91
,
0x2f
,
0x40
,
0x07
,
0x6f
,
0x2a
,
0xba
,
0xa1
,
0x80
,
0x9a
,
0x35
,
0x17
,
0x88
,
0x7d
,
0x67
,
0x01
,
0xb0
,
0x5b
,
0x30
,
0x1f
,
0x3c
,
0x23
,
0x5f
,
0x16
,
0x52
,
0x6b
,
0x38
,
0x52
,
0x63
,
0xb0
,
0x32
,
0x9e
,
0x88
,
0xe2
,
0x72
,
0xd5
,
0x29
,
0x3a
,
0x30
,
0x57
,
0xb2
,
0x2d
,
0xbf
,
0x0f
,
0x55
,
0x27
,
0x20
,
0x33
,
0x42
,
0xb7
,
0xc3
,
0xe6
,
0x84
,
0x1c
,
0x46
,
0x1e
,
0x95
,
0x23
,
0x2c
,
0xa9
,
0x13
,
0x72
,
0x00
,
0xca
,
0x3e
,
0x3b
,
0xdb
,
0x4d
,
0xa7
,
0x49
,
0x26
,
0xa9
,
0x82
,
0xee
,
0xf0
,
0x7c
,
0xad
,
0xde
,
0xa9
,
0xd1
,
0x4a
,
0x17
,
0x54
,
0x17
,
0x6b
,
0xd6
,
0x58
,
0x39
,
0x65
,
0x67
,
0x6a
,
0x48
,
0xb3
,
0x4c
,
0x53
,
0x18
,
0xb3
,
0xa4
,
0x56
,
0x14
,
0xc5
,
0x7c
,
0x68
,
0xb6
,
0xae
,
0x28
,
0x99
,
0x3a
,
0x40
,
0xa4
,
0x5c
,
0x03
,
0xd4
,
0x21
,
0x1d
,
0x3a
,
0xc4
,
0x81
,
0x85
,
0x37
,
0xe1
,
0x6a
,
0x92
,
0x26
,
0xbb
,
0xd4
,
0xdb
,
0x1f
,
0x1a
,
0x22
,
0x57
,
0x89
,
0xc8
,
0xf2
,
0x0b
,
0xb6
,
0x03
,
0x57
,
0x0f
,
0xc4
,
0xf0
,
0x58
,
0x77
,
0xd4
,
0x07
,
0x59
,
0x74
,
0x22
,
0x64
,
0xf8
,
0xb2
,
0x6b
,
0x28
,
0xc6
,
0x51
,
0x7c
,
0x44
,
0x63
,
0x27
,
0xf7
,
0xe1
,
0x8a
,
0xff
,
0x0a
,
0x23
,
0xab
,
0xcc
,
0xa2
,
0x49
,
0xd6
,
0xb3
,
0x0d
,
0xdf
,
0x06
,
0xa1
,
0x7e
,
0x45
,
0x12
,
0x1d
,
0xe9
,
0xb2
,
0xb6
,
0xc3
,
0xf5
,
0x8a
,
0xfd
,
0x33
,
0x80
,
0x6b
,
0xfe
,
0x71
,
0x64
,
0xbe
,
0xf3
,
0xcb
,
0xaf
,
0x4e
,
0x9e
,
0x98
,
0x5f
,
0x86
,
0xa6
,
0xc4
,
0x4d
,
0x5e
,
0x87
,
0x51
,
0xa6
,
0x9e
,
0xb0
,
0x9c
,
0x9a
,
0xaa
,
0xe1
,
0xd5
,
0x54
,
0x37
,
0x00
,
0xc4
,
0x99
,
0xe8
,
0xbb
,
0x03
,
0xa8
,
0x02
,
0xf2
,
0xb9
,
0xfb
,
0x35
,
0x26
,
0x60
,
0xfd
,
0x7e
,
0xda
,
0x8f
,
0x86
,
0x86
,
0x98
,
0x82
,
0xbb
,
0x3b
,
0x86
,
0xea
,
0xc0
,
0xe9
,
0x22
,
0xaa
,
0x24
,
0x61
,
0x28
,
0x27
,
0x6b
,
0xda
,
0x4b
,
0x06
,
0xe2
,
0x4c
,
0x47
,
0x0f
,
0xb3
,
0x64
,
0xaf
,
0xc3
,
0xaa
,
0x2a
,
0xbf
,
0x90
,
0x82
,
0x4a
,
0xe1
,
0xe5
,
0x73
,
0x84
,
0x9a
,
0x35
,
0x47
,
0x60
,
0x0c
,
0xae
,
0xa8
,
0x7d
,
0xbb
,
0x51
,
0xd2
,
0x17
,
0xc3
,
0xaa
,
0x9d
,
0xec
,
0x33
,
0x3d
,
0x25
,
0x22
,
0x72
,
0x2e
,
0xaa
,
0xdf
,
0xb3
,
0x73
,
0x53
,
0xbf
,
0x67
,
0xe7
,
0x28
,
0x2d
,
0xc5
,
0x22
,
0xcc
,
0x55
,
0x4c
,
0x6f
,
0xc1
,
0x30
,
0xf8
,
0x12
,
0x34
,
0x50
,
0x6c
,
0xdd
,
0x65
,
0xc2
,
0xbf
,
0xae
,
0xf1
,
0x5d
,
0xce
,
0x7a
,
0x0b
,
0x9c
,
0x90
,
0xa8
,
0x15
,
0x25
,
0xaa
,
0xc9
,
0x75
,
0x8a
,
0xe3
,
0x7d
,
0x86
,
0x7a
,
0x0b
,
0x5c
,
0x23
,
0xee
,
0x2c
,
0x6a
,
0x21
,
0xb0
,
0x9f
,
0x14
,
0x35
,
0xb0
,
0xa3
,
0x19
,
0xcd
,
0xde
,
0x6d
,
0x27
,
0x5f
,
0xcd
,
0x55
,
0x4d
,
0xa9
,
0x29
,
0xac
,
0x5d
,
0xbc
,
0x27
,
0xcf
,
0x5b
,
0x9f
,
0x05
,
0xf0
,
0x5c
,
0x15
,
0x19
,
0x33
,
0x3b
,
0xc3
,
0xdc
,
0xd4
,
0x6b
,
0x97
,
0x32
,
0x75
,
0xb7
,
0x25
,
0xac
,
0xcf
,
0x6f
,
0x09
,
0x1b
,
0xf3
,
0x5a
,
0xc2
,
0xe6
,
0xec
,
0x96
,
0xb0
,
0xe5
,
0xb4
,
0x84
,
0xec
,
0x13
,
0x78
,
0xb6
,
0x8a
,
0x25
,
0xa9
,
0x4b
,
0x81
,
0x9b
,
0x8e
,
0x68
,
0xbb
,
0x33
,
0x18
,
0x90
,
0xe5
,
0x72
,
0xa9
,
0x76
,
0xc1
,
0x86
,
0x5c
,
0xa8
,
0xbf
,
0x0b
,
0x20
,
0xe4
,
0xe2
,
0xe1
,
0xfb
,
0x53
,
0x31
,
0x39
,
0x47
,
0x34
,
0x1d
,
0xe3
,
0xdc
,
0xd1
,
0x6d
,
0x11
,
0x3d
,
0xfc
,
0x96
,
0xe0
,
0x1a
,
0x34
,
0xfb
,
0x18
,
0x2a
,
0xb5
,
0xb8
,
0xd4
,
0x02
,
0x25
,
0x35
,
0x88
,
0x27
,
0x42
,
0xd5
,
0xce
,
0x5a
,
0x52
,
0x39
,
0xc0
,
0x4a
,
0x5d
,
0x4d
,
0x27
,
0x75
,
0x5d
,
0x83
,
0x66
,
0x4c
,
0xee
,
0xaa
,
0x3a
,
0x6a
,
0xb5
,
0x60
,
0xef
,
0x63
,
0xb5
,
0x32
,
0x1e
,
0x9e
,
0xfb
,
0x14
,
0xbe
,
0x41
,
0x29
,
0x48
,
0xd9
,
0x88
,
0x8e
,
0xc4
,
0x73
,
0xcd
,
0xa8
,
0xc0
,
0x66
,
0xdf
,
0xb7
,
0x3e
,
0x3e
,
0xec
,
0xea
,
0x29
,
0xaf
,
0x34
,
0x25
,
0xab
,
0x8c
,
0x4f
,
0x12
,
0x9d
,
0xb2
,
0xe9
,
0x19
,
0x15
,
0x4b
,
0xad
,
0xf3
,
0x7e
,
0xa4
,
0xba
,
0xed
,
0x15
,
0x9e
,
0xaf
,
0x8b
,
0x1e
,
0xbb
,
0x6e
,
0xcd
,
0x00
,
0xd9
,
0x8f
,
0xac
,
0x0f
,
0x06
,
0xea
,
0x7c
,
0xdd
,
0x34
,
0x6c
,
0x3b
,
0x52
,
0x75
,
0x3b
,
0x13
,
0xaf
,
0x8c
,
0xc8
,
0x25
,
0x7e
,
0x1b
,
0xea
,
0x47
,
0x43
,
0xa9
,
0x15
,
0x5a
,
0xfa
,
0x34
,
0xe0
,
0x90
,
0xcf
,
0x11
,
0x93
,
0x65
,
0x6a
,
0xd4
,
0x48
,
0xaf
,
0xa9
,
0x08
,
0x7b
,
0x82
,
0xcb
,
0xb7
,
0x60
,
0x2d
,
0x96
,
0x96
,
0x38
,
0x75
,
0x36
,
0x59
,
0xe2
,
0x3e
,
0x98
,
0xbd
,
0xa9
,
0xc2
,
0x1e
,
0x5d
,
0xc8
,
0xc5
,
0xa3
,
0x68
,
0x32
,
0xa8
,
0xac
,
0xff
,
0xd7
,
0xa1
,
0x15
,
0x8d
,
0xc8
,
0x60
,
0xf4
,
0x68
,
0x5c
,
0xad
,
0xd8
,
0xaf
,
0x02
,
0x08
,
0x77
,
0x91
,
0x88
,
0xb7
,
0xa4
,
0x14
,
0xd9
,
0xe1
,
0x24
,
0x4a
,
0xe4
,
0xb1
,
0x98
,
0xa0
,
0x21
,
0x45
,
0x08
,
0xb8
,
0x77
,
0x26
,
0xfa
,
0xa6
,
0x72
,
0xcf
,
0x01
,
0x98
,
0x45
,
0x69
,
0x71
,
0x70
,
0x3e
,
0x3a
,
0x4a
,
0x87
,
0xda
,
0x2a
,
0x6d
,
0x90
,
0x75
,
0x5d
,
0xdd
,
0xbe
,
0x0e
,
0xe1
,
0x59
,
0x6a
,
0xe5
,
0x34
,
0xbd
,
0x42
,
0x92
,
0x13
,
0xe3
,
0xc0
,
0x6d
,
0x4e
,
0xcf
,
0xec
,
0xb7
,
0x2d
,
0x6b
,
0xee
,
0xaf
,
0x65
,
0xf9
,
0x3a
,
0xb6
,
0xf8
,
0x28
,
0x79
,
0x2d
,
0xcb
,
0xe7
,
0xaa
,
0xf5
,
0xa2
,
0xb0
,
0x29
,
0xa4
,
0xd2
,
0x3a
,
0x7c
,
0xd5
,
0xf4
,
0x1a
,
0xe5
,
0x61
,
0x98
,
0xaf
,
0x2f
,
0x8c
,
0xf3
,
0x84
,
0x1b
,
0xbe
,
0x09
,
0x9d
,
0xc8
,
0x96
,
0x8a
,
0xee
,
0xf8
,
0x4d
,
0xc0
,
0x27
,
0x89
,
0x49
,
0xf3
,
0xb2
,
0xb7
,
0xc0
,
0x5d
,
0xec
,
0x7c
,
0xfb
,
0x77
,
0xe2
,
0xec
,
0x74
,
0x30
,
0x89
,
0x1e
,
0x11
,
0x73
,
0xfe
,
0x76
,
0xf3
,
0x32
,
0xdf
,
0x6e
,
0x00
,
0xe1
,
0xab
,
0xb0
,
0x94
,
0x99
,
0x8b
,
0x5b
,
0xf3
,
0x2f
,
0xce
,
0x11
,
0x71
,
0xd3
,
0x23
,
0x73
,
0xdd
,
0xe2
,
0xfc
,
0xeb
,
0x72
,
0xc4
,
0xf0
,
0x1e
,
0xac
,
0x9a
,
0x03
,
0x0e
,
0x53
,
0xd2
,
0xf8
,
0x92
,
0x23
,
0x25
,
0xf7
,
0x3e
,
0x85
,
0xd2
,
0x5b
,
0xe0
,
0xde
,
0xa6
,
0xf0
,
0xeb
,
0x00
,
0x49
,
0x3e
,
0x96
,
0xa5
,
0xfa
,
0x73
,
0xde
,
0xe0
,
0xb5
,
0xb7
,
0xc0
,
0x2d
,
0xf4
,
0xf0
,
0x6d
,
0x58
,
0x4b
,
0xdc
,
0x11
,
0x8d
,
0x4e
,
0xc7
,
0x73
,
0x86
,
0x38
,
0xbd
,
0x05
,
0xee
,
0x6f
,
0x0a
,
0x77
,
0x60
,
0x4d
,
0x9a
,
0x58
,
0xa5
,
0xcf
,
0x51
,
0x69
,
0xda
,
0xee
,
0x0e
,
0xad
,
0xb7
,
0x78
,
0x86
,
0xb7
,
0x21
,
0x7c
,
0x17
,
0xc2
,
0x7e
,
0xc9
,
0x25
,
0x74
,
0xfa
,
0x36
,
0x0c
,
0x95
,
0x7d
,
0xa6
,
0xb7
,
0xc0
,
0x2b
,
0xb6
,
0x85
,
0xdf
,
0x80
,
0xce
,
0xd8
,
0xee
,
0xcc
,
0xba
,
0x9d
,
0x52
,
0x97
,
0x67
,
0xcf
,
0x3f
,
0xd0
,
0x0e
,
0x1c
,
0x7c
,
0xab
,
0x5c
,
0x69
,
0x62
,
0xb9
,
0x52
,
0x54
,
0x07
,
0x9f
,
0x06
,
0xb0
,
0x6e
,
0x35
,
0xb4
,
0x96
,
0xf9
,
0xcf
,
0x9a
,
0x8e
,
0x59
,
0x75
,
0xe9
,
0xe5
,
0xc2
,
0xd0
,
0x2b
,
0xce
,
0x74
,
0xac
,
0xe4
,
0x6c
,
0xce
,
0x77
,
0x47
,
0x95
,
0x0a
,
0x5f
,
0xf7
,
0xe7
,
0x63
,
0xf3
,
0x37
,
0xe5
,
0xe9
,
0xf0
,
0x5d
,
0x67
,
0xbc
,
0x5f
,
0xf8
,
0xe4
,
0xe3
,
0x44
,
0x4f
,
0xf6
,
0xe3
,
0x06
,
0xe6
,
0x2e
,
0xf7
,
0x34
,
0x2a
,
0x54
,
0xdc
,
0x4a
,
0x23
,
0x28
,
0x55
,
0x1a
,
0x9b
,
0xb0
,
0x4c
,
0x2b
,
0x25
,
0x46
,
0x2d
,
0x74
,
0x1b
,
0x14
,
0xbe
,
0x08
,
0xab
,
0x58
,
0x5d
,
0x1c
,
0x44
,
0x23
,
0xa1
,
0x91
,
0x54
,
0x02
,
0xf6
,
0xa0
,
0x45
,
0xe9
,
0xd9
,
0xa8
,
0x6e
,
0x1e
,
0x9b
,
0x7e
,
0xcb
,
0x5d
,
0xb4
,
0x75
,
0xad
,
0x79
,
0x6d
,
0xdd
,
0xe2
,
0x9c
,
0xb6
,
0x6e
,
0xc9
,
0x6b
,
0xeb
,
0x9c
,
0x76
,
0xb3
,
0xed
,
0xb7
,
0x9b
,
0x56
,
0xd3
,
0x07
,
0x17
,
0x34
,
0x7d
,
0xcb
,
0x97
,
0x69
,
0xfa
,
0x56
,
0x2a
,
0x9a
,
0xbe
,
0x52
,
0x4b
,
0xde
,
0xb9
,
0x64
,
0x4b
,
0xbe
,
0x5a
,
0xdd
,
0x92
,
0x6f
,
0xc1
,
0x1a
,
0x7d
,
0x28
,
0xbd
,
0x57
,
0x74
,
0x3f
,
0x6b
,
0x0a
,
0xd3
,
0x03
,
0xb3
,
0x1f
,
0x94
,
0x7d
,
0x83
,
0x8b
,
0x7e
,
0x3a
,
0x23
,
0x3b
,
0x3e
,
0x86
,
0x6f
,
0xb0
,
0x2f
,
0xc1
,
0x72
,
0xfe
,
0xfa
,
0xf0
,
0x8c
,
0x32
,
0xdb
,
0x59
,
0x3e
,
0x76
,
0xc0
,
0xcc
,
0x46
,
0x2b
,
0x35
,
0x2c
,
0x2d
,
0x26
,
0xbf
,
0x87
,
0x68
,
0x07
,
0xfe
,
0x80
,
0xe1
,
0x32
,
0x1f
,
0xb1
,
0xd9
,
0x1f
,
0x6b
,
0x70
,
0xd5
,
0x19
,
0xbb
,
0xfe
,
0x7f
,
0x59
,
0x74
,
0xfb
,
0x71
,
0x2d
,
0xba
,
0x6d
,
0x59
,
0x74
,
0x85
,
0xfe
,
0xdb
,
0xd5
,
0xfa
,
0x7f
,
0x07
,
0x9e
,
0x72
,
0x84
,
0x45
,
0x72
,
0xc7
,
0x80
,
0xd6
,
0x22
,
0xba
,
0xfd
,
0x61
,
0x53
,
0x49
,
0xb0
,
0x5c
,
0xe3
,
0xa9
,
0xc0
,
0xe4
,
0xeb
,
0x0f
,
0x79
,
0xa8
,
0xd6
,
0x5e
,
0x69
,
0x78
,
0xe6
,
0xfc
,
0x2f
,
0xf3
,
0xf7
,
0x1a
,
0xac
,
0x16
,
0x25
,
0x0d
,
0xe6
,
0x09
,
0x34
,
0x47
,
0xec
,
0xeb
,
0x8d
,
0x39
,
0xe2
,
0x33
,
0x85
,
0xfc
,
0xd4
,
0x14
,
0xfb
,
0x59
,
0x8a
,
0x4a
,
0x8e
,
0xf3
,
0xd4
,
0x4d
,
0xea
,
0x59
,
0xe2
,
0x16
,
0xc4
,
0xb2
,
0xbd
,
0x86
,
0x6d
,
0x7b
,
0x56
,
0x15
,
0xd6
,
0x74
,
0xaa
,
0xb0
,
0x10
,
0x1a
,
0x02
,
0xd3
,
0xbc
,
0xd2
,
0x0b
,
0x3d
,
0x53
,
0xe3
,
0xa1
,
0xca
,
0x39
,
0xf5
,
0xf1
,
0x4c
,
0xaf
,
0x90
,
0x21
,
0xc5
,
0xf8
,
0xf9
,
0x58
,
0x90
,
0x3e
,
0x3a
,
0xbc
,
0x00
,
0x58
,
0xea
,
0x07
,
0x47
,
0xfd
,
0xf4
,
0x73
,
0x02
,
0x9a
,
0x0d
,
0xca
,
0x52
,
0x6b
,
0xea
,
0x3a
,
0x61
,
0x94
,
0xe0
,
0xf4
,
0xd9
,
0x3d
,
0x9a
,
0x44
,
0x1a
,
0x6b
,
0x5d
,
0x4d
,
0x33
,
0x0a
,
0x08
,
0x06
,
0x2a
,
0x39
,
0xed
,
0xf7
,
0x85
,
0x94
,
0xdd
,
0xa7
,
0x89
,
0x75
,
0xb3
,
0x64
,
0xff
,
0x08
,
0xd4
,
0xb0
,
0x98
,
0x66
,
0x17
,
0x77
,
0x8f
,
0x28
,
0x52
,
0xcc
,
0x1c
,
0x6b
,
0xda
,
0x83
,
0xc9
,
0x9a
,
0xf7
,
0x57
,
0xce
,
0x45
,
0x43
,
0xcd
,
0x17
,
0x61
,
0x75
,
0x1c
,
0x61
,
0x9e
,
0xda
,
0xb7
,
0x47
,
0x9b
,
0x2b
,
0xdc
,
0x83
,
0x5e
,
0x30
,
0xd6
,
0x7f
,
0x01
,
0xea
,
0xd9
,
0x99
,
0xfa
,
0x19
,
0x66
,
0x79
,
0x3b
,
0xd4
,
0x96
,
0x77
,
0x58
,
0xfc
,
0xc2
,
0xc5
,
0xf1
,
0x35
,
0xfb
,
0xab
,
0xfe
,
0x65
,
0xc1
,
0x66
,
0x8a
,
0x7a
,
0xa4
,
0xcb
,
0x32
,
0xd6
,
0x7e
,
0x62
,
0xc6
,
0xda
,
0x9f
,
0x93
,
0xb1
,
0x2b
,
0x05
,
0x63
,
0x6d
,
0xc5
,
0x44
,
0xaa
,
0x3a
,
0xb1
,
0x9d
,
0xa1
,
0x3c
,
0x88
,
0x4f
,
0x92
,
0x83
,
0xe9
,
0xc8
,
0xfc
,
0x12
,
0x36
,
0x8b
,
0x89
,
0xbc
,
0xa1
,
0xab
,
0xd9
,
0x3f
,
0x75
,
0x84
,
0xd0
,
0x18
,
0xc9
,
0x13
,
0xd5
,
0xe5
,
0xad
,
0x70
,
0x7a
,
0x46
,
0x4c
,
0x6c
,
0x0f
,
0x65
,
0xb7
,
0x41
,
0x40
,
0xb5
,
0x60
,
0xdf
,
0x83
,
0x67
,
0x2a
,
0x2f
,
0x3c
,
0x38
,
0x4d
,
0x1f
,
0x3d
,
0xc1
,
0xa5
,
0x6d
,
0x75
,
0x29
,
0x3b
,
0x32
,
0x93
,
0x6b
,
0x73
,
0x3c
,
0x69
,
0xe4
,
0x35
,
0x68
,
0xc4
,
0x45
,
0x17
,
0xbc
,
0xe9
,
0x0c
,
0xae
,
0x2b
,
0xe8
,
0xe0
,
0x84
,
0xad
,
0x7a
,
0xa0
,
0x71
,
0xdc
,
0x37
,
0xd7
,
0xea
,
0x15
,
0xe3
,
0xb0
,
0x7a
,
0x5f
,
0x44
,
0x03
,
0x31
,
0x39
,
0x38
,
0x4f
,
0xfa
,
0x66
,
0xc6
,
0xb5
,
0x77
,
0xd7
,
0xcc
,
0x55
,
0xf6
,
0xee
,
0xa2
,
0x27
,
0x1c
,
0x45
,
0x52
,
0xec
,
0x0d
,
0xce
,
0x74
,
0x20
,
0x37
,
0x4b
,
0x3c
,
0x33
,
0x3d
,
0x3e
,
0x96
,
0xc2
,
0x04
,
0x6f
,
0xbd
,
0x62
,
0x3f
,
0x0f
,
0xa0
,
0x83
,
0xf4
,
0x3c
,
0xd8
,
0x7e
,
0x70
,
0x30
,
0x3d
,
0xda
,
0x97
,
0x27
,
0xba
,
0x9c
,
0x0c
,
0x4c
,
0x39
,
0x19
,
0xbe
,
0x02
,
0x4b
,
0x7d
,
0x3d
,
0x7b
,
0xd5
,
0x15
,
0x77
,
0x85
,
0x65
,
0x62
,
0xbb
,
0x60
,
0xb0
,
0xc2
,
0x3b
,
0xb0
,
0x28
,
0xcf
,
0x93
,
0xfe
,
0xbe
,
0x3c
,
0xf1
,
0x26
,
0x60
,
0x2e
,
0xf5
,
0xbd
,
0x05
,
0x6e
,
0xf0
,
0x8a
,
0x9a
,
0xf5
,
0x43
,
0x58
,
0xbd
,
0x37
,
0x54
,
0xe3
,
0x08
,
0x3d
,
0xb5
,
0xdf
,
0x80
,
0xa5
,
0x58
,
0xaa
,
0x9d
,
0x44
,
0xd5
,
0x12
,
0xcf
,
0xd7
,
0xe1
,
0xcb
,
0xd0
,
0x1a
,
0xaa
,
0x37
,
0xb5
,
0x39
,
0x17
,
0x71
,
0x8d
,
0xc4
,
0x9e
,
0x87
,
0xf6
,
0x8e
,
0xf9
,
0xd2
,
0x89
,
0x36
,
0xf9
,
0x91
,
0x38
,
0xd7
,
0xc2
,
0xc3
,
0xc7
,
0xed
,
0x37
,
0xa0
,
0x9d
,
0xff
,
0x47
,
0x19
,
0xde
,
0x84
,
0xd6
,
0x9e
,
0xc4
,
0x13
,
0xc2
,
0x4e
,
0x9e
,
0x02
,
0x1e
,
0xbe
,
0x17
,
0x0f
,
0x37
,
0xae
,
0xea
,
0xe5
,
0x9e
,
0xdc
,
0x8d
,
0xa6
,
0x27
,
0xa7
,
0xd9
,
0x07
,
0x63
,
0xb6
,
0x70
,
0xd4
,
0xa2
,
0x9f
,
0x27
,
0x5f
,
0xfd
,
0x5f
,
0x00
,
0x00
,
0x00
,
0xff
,
0xff
,
0x4e
,
0x6a
,
0x0d
,
0x85
,
0x89
,
0x29
,
0x00
,
0x00
,
}
// Reference imports to suppress errors if they are not otherwise used.
...
...
plugin/dapp/paracross/types/type.go
View file @
12dccb29
...
...
@@ -28,6 +28,8 @@ var (
ForkParaSelfConsStages
=
"ForkParaSelfConsStages"
// ForkParaAssetTransferRbk 平行链资产转移平行链失败主链回滚
ForkParaAssetTransferRbk
=
"ForkParaAssetTransferRbk"
// ForkParaFullMinerHeight 平行链全挖矿开启高度
ForkParaFullMinerHeight
=
"ForkParaFullMinerHeight"
// ParaConsSubConf sub
ParaConsSubConf
=
"consensus.sub.para"
...
...
@@ -59,6 +61,7 @@ func InitFork(cfg *types.Chain33Config) {
//只在平行链启用
cfg
.
RegisterDappFork
(
ParaX
,
ForkParaSelfConsStages
,
types
.
MaxHeight
)
cfg
.
RegisterDappFork
(
ParaX
,
ForkParaFullMinerHeight
,
types
.
MaxHeight
)
}
//InitExecutor ...
...
...
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