diff --git a/README.md b/README.md index eafc587ee..7f4d97562 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ![ZeroOne](doc/splash.png) -01coin Community v0.12.3.6 +01coin Community v0.12.3.7 ================================== [Bitcointalk ANN thread](https://bitcointalk.org/index.php?topic=3457534.0) diff --git a/configure.ac b/configure.ac index b368a9e92..9b640bca1 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 0) define(_CLIENT_VERSION_MINOR, 12) define(_CLIENT_VERSION_REVISION, 3) -define(_CLIENT_VERSION_BUILD, 6) +define(_CLIENT_VERSION_BUILD, 7) define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2019) define(_COPYRIGHT_HOLDERS,[The %s developers]) diff --git a/contrib/seeds/nodes_main.txt b/contrib/seeds/nodes_main.txt index 3fbcaebb2..740f40173 100644 --- a/contrib/seeds/nodes_main.txt +++ b/contrib/seeds/nodes_main.txt @@ -1,100 +1,181 @@ -151.80.184.105:10000 -51.38.78.23:10000 -[2607:5300:0061:09bb:0000:0000:0d03:4039]:10000 -[2001:41d0:0800:1a45:0000:0000:10ac:b922]:10000 -151.80.3.237:10000 -[2001:41d0:1000:2995:0000:0000:0163:1c0d]:10000 -[2001:41d0:1000:2995:0000:0000:0925:4971]:10000 -[2001:41d0:1000:2995:0000:0000:0936:8ece]:10000 -[2001:41d0:1000:2995:0000:0000:09c5:aa05]:10000 -1.241.249.166:10000 -1.241.249.167:10000 -5.189.148.226:10000 -31.148.99.77:10000 -34.73.224.132:10000 -34.74.44.51:10000 -35.227.37.99:10000 -35.245.126.174:10000 -37.115.232.149:10000 -45.32.219.208:10000 -45.33.27.146:10000 -46.82.127.229:10000 -46.101.223.184:10000 -46.107.171.74:10000 -46.173.218.178:10000 -46.249.199.183:10000 -51.38.78.63:10000 -51.38.105.226:10000 -62.77.155.184:10000 -62.113.241.51:10000 +5.135.208.61:10000 +24.105.253.87:10000 +37.201.93.105:10000 +40.118.18.34:10000 +45.67.231.57:10000 +45.86.70.87:10000 +46.173.214.181:10000 +46.173.218.162:10000 +46.173.218.170:10000 +46.173.218.214:10000 +51.68.182.179:10000 +51.158.177.136:10000 +52.142.192.122:10000 +52.142.193.21:10000 +52.142.193.53:10000 +61.8.0.3:10000 +61.8.0.5:10000 +61.8.0.7:10000 +61.8.0.9:10000 62.210.24.202:10000 -62.210.31.67:10000 +66.42.32.195:10000 66.206.29.152:10000 +72.68.67.27:10000 +77.55.194.54:10000 +77.55.216.163:10000 79.111.14.146:10000 80.87.200.12:10000 -80.211.70.241:10000 -80.211.152.210:10000 -80.211.214.110:10000 +80.211.138.176:10000 +80.211.176.18:10000 +80.211.184.20:10000 +80.211.208.135:10000 +80.211.216.188:10000 80.211.243.204:10000 -81.2.250.190:10000 +80.241.217.60:10000 81.169.152.212:10000 -81.169.203.151:10000 -81.169.211.191:10000 -85.121.196.185:10000 -85.121.196.196:10000 -85.121.196.201:10000 -85.121.196.204:10000 -85.214.245.251:10000 -85.255.9.189:10000 +84.0.197.129:10000 +84.107.217.29:10000 +85.98.104.32:10000 +85.121.196.181:10000 +85.121.196.200:10000 +85.121.197.27:10000 +85.121.197.30:10000 +86.75.101.30:10000 +87.205.11.28:10000 +89.36.219.165:10000 +89.40.113.238:10000 89.40.126.103:10000 -90.255.225.179:10000 -94.177.163.99:10000 -94.177.254.48:10000 +89.248.245.83:10000 +93.108.190.44:10000 +94.177.237.91:10000 +94.177.237.168:10000 +94.177.252.211:10000 94.250.252.212:10000 95.165.145.111:10000 -107.173.6.236:10000 -112.165.165.68:10000 -134.209.16.65:10000 -134.209.103.219:10000 -134.255.89.220:10000 -139.180.134.180:10000 -139.180.215.51:10000 -142.234.157.243:10000 -144.76.203.73:10000 -144.217.112.138:10000 -144.217.112.139:10000 +95.216.48.42:10000 +95.216.48.45:10000 +95.216.232.28:10000 +103.215.55.24:10000 +107.173.102.155:10000 +108.197.158.221:10000 +113.28.67.38:10000 +113.28.67.40:10000 +119.120.137.15:10000 +119.210.122.13:10000 +128.199.96.161:10000 +132.117.15.5:10000 +134.238.151.11:10000 146.66.179.123:10000 -149.90.59.247:10000 +148.251.72.114:10000 +150.143.97.137:10000 +151.80.184.104:10000 +153.121.57.163:10000 163.172.200.2:10000 -165.227.1.164:10000 -167.86.71.164:10000 -178.239.225.246:10000 -178.239.225.249:10000 -178.239.238.6:10000 -178.239.238.7:10000 -178.249.242.40:10000 -185.33.145.239:10000 -185.63.191.241:10000 -185.203.117.193:10000 -185.221.152.178:10000 -185.230.162.126:10000 -185.240.242.137:10000 +165.22.48.27:10000 +165.227.17.14:10000 +167.86.72.143:10000 +172.110.10.239:10000 +173.100.23.99:10000 +173.103.23.99:10000 +173.106.23.99:10000 +173.107.23.99:10000 +173.117.23.99:10000 +173.131.23.99:10000 +173.136.23.99:10000 +173.137.23.99:10000 +173.208.77.8:10000 +173.208.77.30:10000 +173.208.77.113:10000 +173.208.77.132:10000 +173.212.240.91:10000 +176.223.141.0:10000 +178.238.237.124:10000 +185.122.223.200:10000 +185.240.242.142:10000 +185.240.242.157:10000 +185.240.243.178:10000 +185.240.243.179:10000 +187.237.215.22:10000 +188.122.212.138:10000 +188.122.213.61:10000 +188.122.213.135:10000 188.134.9.88:10000 +188.165.48.84:10000 188.191.232.44:10000 -193.187.172.242:10000 -193.187.174.91:10000 -207.180.217.58:10000 -207.180.217.59:10000 -207.246.114.161:10000 -212.8.247.220:10000 -212.83.165.229:10000 -212.237.12.49:10000 +188.214.93.150:10000 +192.3.21.15:10000 +194.182.72.87:10000 +194.182.73.25:10000 +195.154.52.150:10000 +198.13.42.183:10000 +199.247.8.112:10000 +206.189.68.47:10000 +212.123.50.214:10000 +212.237.0.17:10000 212.237.211.92:10000 -213.141.134.205:10000 -216.189.145.192:10000 -216.189.145.194:10000 -216.189.145.221:10000 -216.189.145.222:10000 -223.171.32.155:10000 -223.171.45.227:10000 -223.171.46.67:10000 +212.237.211.107:10000 +217.61.2.117:10000 +217.61.18.108:10000 +217.61.21.6:10000 +217.61.97.172:10000 +217.61.106.94:10000 +217.69.8.5:10000 +218.163.62.9:10000 +220.241.87.4:10000 +220.241.87.5:10000 +[2001:15e8:110:61b7::1]:10000 +[2001:19f0:7001:4182::101]:10000 +[2001:19f0:7001:4182::112]:10000 +[2001:19f0:7001:4182::113]:10000 +[2001:19f0:7001:4182::122]:10000 +[2001:41d0:1000:2995:457:32e:dc0e:4]:10000 +[2001:41d0:1000:2995:457:32e:dc0e:5]:10000 +[2001:41d0:1000:2995:457:32e:dc0e:6]:10000 +[2001:41d0:1000:2995:457:32e:dc0e:9]:10000 +[2001:41d0:1000:2995:457:32e:dc0e:c]:10000 +[2001:41d0:1000:2995:457:32e:dc0e:d]:10000 +[2001:41d0:1000:2995:457:32e:dc0e:e]:10000 +[2001:41d0:1000:2995::242:2076]:10000 +[2001:41d0:602:24b8::36e:7739]:10000 +[2001:41d0:602:24b8::38c:b83c]:10000 +[2001:41d0:602:24b8::3f9:2f8e]:10000 +[2001:41d0:700:227f:118:d7c2:9e7c:1]:10000 +[2001:41d0:700:227f:1cf:d93:e72:1]:10000 +[2001:41d0:700:227f::1306:52b6]:10000 +[2001:41d0:700:227f::1479:d7f8]:10000 +[2001:41d0:700:227f::1481:a3d7]:10000 +[2001:41d0:700:227f::c6b:437c]:10000 +[2001:41d0:700:227f::f8d:30e8]:10000 +[2001:41d0:700:227f::f9d:fa65]:10000 +[2001:41d0:800:1a45::10ef:ac57]:10000 +[2001:41d0:800:1a45::e48:be7c]:10000 +[2607:5300:61:9bb::d03:4039]:10000 +[2a00:6d40:72:9ae2::1]:10000 +[2a02:7b40:b0df:8d00::1]:10000 +[2a02:c207:2021:1075::1]:10000 +[2a02:c207:2021:1075::10]:10000 +[2a02:c207:2021:1075::11]:10000 +[2a02:c207:2021:1075::12]:10000 +[2a02:c207:2021:1075::13]:10000 +[2a02:c207:2021:1075::14]:10000 +[2a02:c207:2021:1075::17]:10000 +[2a02:c207:2021:1075::18]:10000 +[2a02:c207:2021:1075::19]:10000 +[2a02:c207:2021:1075::2]:10000 +[2a02:c207:2021:1075::21]:10000 +[2a02:c207:2021:1075::3]:10000 +[2a02:c207:2021:1075::4]:10000 +[2a02:c207:2021:1075::5]:10000 +[2a02:c207:2021:1075::6]:10000 +[2a02:c207:2021:1075::7]:10000 +[2a02:c207:2021:1075::9]:10000 +[2a02:c207:2024:605::1]:10000 +[2a02:c207:2027:1865::1]:10000 +[2a02:c207:2027:1865::2]:10000 +[2a02:c207:2027:1865::3]:10000 +[2a02:c207:2027:1865::4]:10000 +[2a02:c207:2027:1865::5]:10000 +[2a02:c207:2027:8303::1]:10000 +[2a02:c207:2027:8303::2]:10000 +[2a02:c207:2027:8303::3]:10000 +[2a0c:b9c0:f:42b1::1]:10000 diff --git a/doc/Doxyfile b/doc/Doxyfile index 367071f60..f029b9062 100644 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -41,7 +41,7 @@ PROJECT_NAME = "ZeroOne Core" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 0.12.3.6 +PROJECT_NUMBER = 0.12.3.7 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/doc/release-notes.md b/doc/release-notes.md index c756c74f7..58f889dbf 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -1,4 +1,4 @@ -# 01coin version 0.12.3.6 +# 01coin version 0.12.3.7 Release is now available from: @@ -19,23 +19,21 @@ If you are running an older version, shut it down. Wait until it has completely ### Downgrade warning -Downgrade to a version < 0.12.3.6 +Downgrade to a version < 0.12.3.7 -Because release 0.12.3.6 is a mandatory upgrade release, downgrading to an earlier version is not supported. +Because release 0.12.3.7 is a mandatory upgrade release, downgrading to an earlier version is not supported. ## Notable changes -- Node sw supports only protocol 70211 -- ZOC SLIP44 CoinType 399, HD(m/44'/399'/0'/0/0) -- Sharky-miner-blocks are burnt, block reward not shared w/MN and w/no tx processed will become unmatured/unpsent/burned -- Several cleanups and optimizations to speedup and unfreeze mnsync asset stages +- Node 2nd layer fork-auto-heal from verified mn broadcasts +- Delayed daily unstuck fork-auto-healing attempt - All users, exchanges, masternode owners and miners should upgrade as soon as possible -### 0.12.3.6 Change log +### 0.12.3.7 Change log -See detailed [set of changes](https://github.com/zocteam/zeroonecoin/compare/v0.12.3.5...zocteam:v0.12.3.6). +See detailed [set of changes](https://github.com/zocteam/zeroonecoin/compare/v0.12.3.6...zocteam:v0.12.3.7). ## Credits diff --git a/share/rpcuser/rpcuser.py b/share/rpcuser/rpcuser.py index f806a810e..e7a1cf0b2 100755 --- a/share/rpcuser/rpcuser.py +++ b/share/rpcuser/rpcuser.py @@ -36,6 +36,6 @@ m = hmac.new(bytearray(salt, 'utf-8'), bytearray(password, 'utf-8'), digestmod) result = m.hexdigest() -print("String to be appended to bitcoin.conf:") +print("String to be appended to zeroone.conf:") print("rpcauth="+username+":"+salt+"$"+result) print("Your password:\n"+password) diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 1d4061527..01847e791 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -120,11 +120,11 @@ class CMainParams : public CChainParams { consensus.vDeployments[Consensus::DEPLOYMENT_BIP147].nWindowSize = 4032; consensus.vDeployments[Consensus::DEPLOYMENT_BIP147].nThreshold = 3226; // 80% of 4032 - // The best chain should have at least this much work. - consensus.nMinimumChainWork = uint256S("0x0000000000000000000000000000000000000000000000000026d386e4a143b1"); // 303181 + // The best chain should have at least this much work (getblockchaininfo) + consensus.nMinimumChainWork = uint256S("0x00000000000000000000000000000000000000000000000000278109cc4d4f00"); // 327856 // By default assume that the signatures in ancestors of this block are valid. - consensus.defaultAssumeValid = uint256S("0x00000000270c57081c1a6c1c0e1c08eaf892577325e73a6921e6ef96fe027897"); // 303181 + consensus.defaultAssumeValid = uint256S("0x000000002fdb5872e1c42d949dab224cb1d41a79520a1c605f737236a2e55ecf"); // 327856 /** @@ -191,13 +191,16 @@ class CMainParams : public CChainParams { ( 101101, uint256S("0x000000001136784bed466075637c1885dc415c3bd65d7989bd159e7d851bc9f2")) ( 202202, uint256S("0x000000002ab69b401bac78c200a92bb1c8c2273ba2217f07cf8f8d935f252e9f")) ( 303202, uint256S("0x0000000095e87ff2246bc208bab6beaf4884dc18ef02bce5d672fd5cc91898fc")) + ( 309607, uint256S("0x0000000095eb0ecc0fd54f5714d2c0bf089fdc9386ce79911219e4141dbca6d8")) + ( 321143, uint256S("0x000000003cd8528639e51ed1541de721d8dd32c5c53a8c2ecdd5bebfaa059940")) + ( 327856, uint256S("0x000000002fdb5872e1c42d949dab224cb1d41a79520a1c605f737236a2e55ecf")) }; chainTxData = ChainTxData{ - 1567534245,// * UNIX timestamp of last known number of transactions - 109482, // * total number of transactions between genesis and that timestamp (transactions from gettxoutsetinfo) + 1571439186,// * UNIX timestamp of last known number of transactions + 123333, // * total number of transactions between genesis and that timestamp (transactions from gettxoutsetinfo) // (the tx=... number in the SetBestChain debug.log lines) - 0.002 // * estimated number of transactions per second after that timestamp (109482/(1567534245-1517407200)=0.002) + 0.002 // * estimated number of transactions per second after that timestamp (123333/(1571439186-1517407200)=0.002) }; } }; diff --git a/src/chainparamsseeds.h b/src/chainparamsseeds.h index d64aa1b32..1a7544230 100644 --- a/src/chainparamsseeds.h +++ b/src/chainparamsseeds.h @@ -8,119 +8,136 @@ * IPv4 as well as onion addresses are wrapped inside a IPv6 address accordingly. */ static SeedSpec6 pnSeed6_main[] = { - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x01,0xf1,0xf9,0xa6}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x87,0xd0,0x3d}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0xbd,0xa4,0xeb}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x17,0x65,0x4b,0x87}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x28,0x73,0x24,0x98}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2d,0x20,0x95,0xb3}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2d,0x20,0xb8,0xe7}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2d,0x43,0xe4,0xcc}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x18,0x69,0xfd,0x57}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x25,0xc9,0x5d,0x69}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x28,0x76,0x12,0x22}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2d,0x43,0xe7,0x39}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2d,0x56,0x46,0x57}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0xad,0xd5,0xe4}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0xad,0xd6,0xb5}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0xad,0xda,0x98}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0xad,0xda,0xa2}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0xad,0xda,0xaa}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0xad,0xda,0xd6}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x33,0x0f,0x25,0xa6}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x33,0x44,0xd1,0x8d}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x33,0x9e,0x6c,0x47}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x34,0x88,0xe8,0x1f}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x34,0xa6,0xb8,0x15}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3d,0x08,0x00,0x08}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3d,0x08,0x00,0x0e}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3d,0x08,0x00,0x17}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3d,0x08,0x00,0x19}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x40,0x6e,0x81,0xf9}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x33,0x44,0xb6,0xb3}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x33,0x9e,0xb1,0x88}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x34,0x8e,0xc0,0x7a}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x34,0x8e,0xc1,0x15}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x34,0x8e,0xc1,0x35}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3d,0x08,0x00,0x03}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3d,0x08,0x00,0x05}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3d,0x08,0x00,0x07}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3d,0x08,0x00,0x09}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3e,0xd2,0x18,0xca}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x42,0x2a,0x20,0xc3}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x42,0xce,0x1d,0x98}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x48,0x44,0x43,0x1b}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4d,0x37,0xc2,0x36}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4d,0x37,0xd8,0xa3}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4f,0x6f,0x0e,0x92}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x50,0xd3,0x2d,0x54}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x50,0xd3,0x38,0xdb}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x50,0xd3,0x4e,0x75}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x50,0xd3,0xde,0x9e}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x50,0xd3,0xed,0x13}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x50,0x57,0xc8,0x0c}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x50,0xd3,0x8a,0xb0}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x50,0xd3,0xb0,0x12}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x50,0xd3,0xb8,0x14}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x50,0xd3,0xd0,0x87}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x50,0xd3,0xd8,0xbc}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x50,0xd3,0xf3,0xcc}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x50,0xf1,0xd4,0xb2}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x50,0xf1,0xd9,0x3c}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x51,0xa9,0x98,0xd4}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x51,0xa9,0xcb,0x97}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x51,0xa9,0xd3,0xbf}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0x79,0xc4,0xbf}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0x79,0xc5,0x1d}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0x79,0xc5,0x26}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0x79,0xc5,0x3d}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0xd6,0xf5,0xfb}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0xff,0x0e,0x86}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x56,0x69,0x34,0x14}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x56,0x69,0x36,0x0c}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x54,0x00,0xc5,0x81}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x54,0x6b,0xd9,0x1d}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0x62,0x68,0x20}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0x79,0xc4,0xb5}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0x79,0xc4,0xc8}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0x79,0xc5,0x1b}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0x79,0xc5,0x1e}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x56,0x4b,0x65,0x1e}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x57,0xcd,0x0b,0x1c}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x59,0x24,0xdb,0xa5}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x59,0x28,0x71,0xee}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x59,0xa9,0x02,0x04}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5a,0xff,0xe1,0xb3}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0x7d,0x3f,0xe0}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x59,0x28,0x7e,0x67}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x59,0xf8,0xf5,0x53}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5d,0x6c,0xbe,0x2c}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0xb1,0xed,0x5b}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0xb1,0xed,0xa8}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0xb1,0xfe,0x30}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0xb1,0xfc,0xd3}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0xfa,0xfc,0xd4}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5f,0xa5,0x91,0x6f}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5f,0xd8,0x30,0x29}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5f,0xd8,0x30,0x2a}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5f,0xd8,0x30,0x2d}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5f,0xd8,0xe8,0x1c}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x67,0xd7,0x37,0x18}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6b,0xad,0x66,0x9b}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6c,0x3d,0x7b,0xe1}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6c,0xc5,0x9e,0xdd}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x71,0x1c,0x43,0x29}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x71,0x1c,0x43,0x2a}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x71,0x1c,0x43,0x35}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x71,0x1c,0x43,0x38}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x74,0xcb,0x12,0x65}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x90,0xd9,0x70,0x80}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x95,0x5a,0x3b,0xf7}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x97,0x50,0x03,0xeb}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x9b,0x8a,0x97,0x4d}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa4,0x44,0x63,0x6f}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa7,0x56,0x65,0x94}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x71,0x1c,0x43,0x26}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x71,0x1c,0x43,0x28}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x77,0x78,0x89,0x0f}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x77,0xd2,0x7a,0x0d}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x80,0xc7,0x60,0xa1}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x84,0x75,0x0f,0x05}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x86,0xee,0x97,0x0b}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x92,0x42,0xb3,0x7b}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x94,0xfb,0x48,0x72}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x96,0x8f,0x61,0x89}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x97,0x50,0xb8,0x68}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x99,0x79,0x39,0xa3}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa3,0xac,0xc8,0x02}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa5,0x16,0x30,0x1b}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa5,0xe3,0x11,0x0e}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa7,0x56,0x48,0x8f}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xac,0x6e,0x0a,0xef}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xac,0x6e,0x0a,0xf0}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xac,0x6e,0x12,0x3f}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0xd0,0x84,0xa2}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0x64,0x17,0x63}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0x67,0x17,0x63}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0x6a,0x17,0x63}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0x6b,0x17,0x63}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0x75,0x17,0x63}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0x83,0x17,0x63}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0x88,0x17,0x63}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0x89,0x17,0x63}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0xd0,0x4d,0x08}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0xd0,0x4d,0x1e}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0xd0,0x4d,0x71}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0xd0,0x4d,0x84}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0xd4,0xf0,0x5b}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb0,0xdf,0x8d,0x00}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb2,0xee,0xed,0x7c}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb9,0x7a,0xdf,0xc8}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb9,0xaa,0x70,0x14}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb9,0xdd,0x98,0xb2}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb9,0xdd,0x99,0xb2}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb9,0xf0,0xf2,0x9b}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb9,0xf0,0xf2,0x8e}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb9,0xf0,0xf2,0x9d}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb9,0xf0,0xf3,0xb2}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb9,0xf0,0xf3,0xb3}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbb,0xed,0xd7,0x16}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0x7a,0xd4,0x8a}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0x7a,0xd5,0x3d}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0x7a,0xd5,0x87}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0x86,0x09,0x58}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0xa5,0x30,0x54}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0xbf,0xe8,0x2c}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0xd6,0x5d,0x96}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc2,0xb6,0x45,0x31}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc2,0xb6,0x46,0xef}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc3,0xc9,0xec,0x9a}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xcb,0xc6,0x92,0xe8}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd4,0x08,0xf7,0xdc}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0x03,0x15,0x0f}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc2,0xb6,0x48,0x57}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc2,0xb6,0x49,0x19}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc3,0x9a,0x34,0x96}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc6,0x0d,0x2a,0xb7}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc7,0xf7,0x08,0x70}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xce,0xbd,0x44,0x2f}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd4,0x7b,0x32,0xd6}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd4,0xed,0x00,0x11}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd4,0xed,0xd3,0x5c}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd4,0xed,0xd3,0x6b}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd5,0x8d,0x86,0xcd}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd9,0x3d,0x02,0x75}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd9,0x3d,0x05,0x26}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd9,0x3d,0x12,0x6c}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd9,0x3d,0x15,0x06}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd9,0x3d,0x3d,0x42}, 10000}, {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd9,0x3d,0x61,0xac}, 10000}, - {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xdf,0xab,0x2e,0x43}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd9,0x3d,0x6a,0x5e}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd9,0x45,0x08,0x05}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xda,0xa3,0x3e,0x09}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xdc,0xf1,0x57,0x04}, 10000}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xdc,0xf1,0x57,0x05}, 10000}, {{0x20,0x01,0x15,0xe8,0x01,0x10,0x61,0xb7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01}, 10000}, - {{0x20,0x01,0x19,0xf0,0x70,0x01,0x41,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02}, 10000}, - {{0x20,0x01,0x19,0xf0,0x70,0x01,0x41,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x04}, 10000}, - {{0x20,0x01,0x19,0xf0,0x70,0x01,0x41,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x05}, 10000}, - {{0x20,0x01,0x19,0xf0,0x70,0x01,0x41,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x07}, 10000}, - {{0x20,0x01,0x19,0xf0,0x70,0x01,0x41,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x08}, 10000}, - {{0x20,0x01,0x19,0xf0,0x70,0x01,0x41,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x09}, 10000}, - {{0x20,0x01,0x19,0xf0,0x70,0x01,0x41,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x10}, 10000}, - {{0x20,0x01,0x19,0xf0,0x70,0x01,0x41,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x11}, 10000}, + {{0x20,0x01,0x19,0xf0,0x70,0x01,0x41,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01}, 10000}, {{0x20,0x01,0x19,0xf0,0x70,0x01,0x41,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x12}, 10000}, {{0x20,0x01,0x19,0xf0,0x70,0x01,0x41,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x13}, 10000}, - {{0x20,0x01,0x19,0xf0,0x70,0x01,0x41,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x14}, 10000}, - {{0x20,0x01,0x19,0xf0,0x70,0x01,0x41,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x15}, 10000}, - {{0x20,0x01,0x19,0xf0,0x70,0x01,0x41,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x16}, 10000}, - {{0x20,0x01,0x19,0xf0,0x70,0x01,0x41,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x17}, 10000}, + {{0x20,0x01,0x19,0xf0,0x70,0x01,0x41,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x22}, 10000}, {{0x20,0x01,0x41,0xd0,0x10,0x00,0x29,0x95,0x04,0x57,0x03,0x2e,0xdc,0x0e,0x00,0x04}, 10000}, {{0x20,0x01,0x41,0xd0,0x10,0x00,0x29,0x95,0x04,0x57,0x03,0x2e,0xdc,0x0e,0x00,0x05}, 10000}, {{0x20,0x01,0x41,0xd0,0x10,0x00,0x29,0x95,0x04,0x57,0x03,0x2e,0xdc,0x0e,0x00,0x06}, 10000}, @@ -133,199 +150,44 @@ static SeedSpec6 pnSeed6_main[] = { {{0x20,0x01,0x41,0xd0,0x06,0x02,0x24,0xb8,0x00,0x00,0x00,0x00,0x03,0x8c,0xb8,0x3c}, 10000}, {{0x20,0x01,0x41,0xd0,0x06,0x02,0x24,0xb8,0x00,0x00,0x00,0x00,0x03,0xf9,0x2f,0x8e}, 10000}, {{0x20,0x01,0x41,0xd0,0x07,0x00,0x22,0x7f,0x01,0x18,0xd7,0xc2,0x9e,0x7c,0x00,0x01}, 10000}, - {{0x20,0x01,0x41,0xd0,0x07,0x00,0x22,0x7f,0x00,0x00,0x00,0x00,0x11,0x5a,0x1b,0xa4}, 10000}, - {{0x20,0x01,0x41,0xd0,0x07,0x00,0x22,0x7f,0x00,0x00,0x00,0x00,0x11,0x9d,0x92,0x2d}, 10000}, - {{0x20,0x01,0x41,0xd0,0x07,0x00,0x22,0x7f,0x00,0x00,0x00,0x00,0x12,0xad,0x54,0xb3}, 10000}, + {{0x20,0x01,0x41,0xd0,0x07,0x00,0x22,0x7f,0x01,0xcf,0x0d,0x93,0x0e,0x72,0x00,0x01}, 10000}, {{0x20,0x01,0x41,0xd0,0x07,0x00,0x22,0x7f,0x00,0x00,0x00,0x00,0x13,0x06,0x52,0xb6}, 10000}, {{0x20,0x01,0x41,0xd0,0x07,0x00,0x22,0x7f,0x00,0x00,0x00,0x00,0x14,0x79,0xd7,0xf8}, 10000}, - {{0x20,0x01,0x41,0xd0,0x07,0x00,0x22,0x7f,0x00,0x00,0x00,0x00,0x19,0x57,0x1a,0xd2}, 10000}, - {{0x20,0x01,0x41,0xd0,0x07,0x00,0x22,0x7f,0x00,0x00,0x00,0x00,0x1a,0x4a,0x38,0x89}, 10000}, + {{0x20,0x01,0x41,0xd0,0x07,0x00,0x22,0x7f,0x00,0x00,0x00,0x00,0x14,0x81,0xa3,0xd7}, 10000}, {{0x20,0x01,0x41,0xd0,0x07,0x00,0x22,0x7f,0x00,0x00,0x00,0x00,0x0c,0x6b,0x43,0x7c}, 10000}, - {{0x20,0x01,0x41,0xd0,0x07,0x00,0x22,0x7f,0x00,0x00,0x00,0x00,0x0e,0xf2,0x0d,0x9e}, 10000}, {{0x20,0x01,0x41,0xd0,0x07,0x00,0x22,0x7f,0x00,0x00,0x00,0x00,0x0f,0x8d,0x30,0xe8}, 10000}, {{0x20,0x01,0x41,0xd0,0x07,0x00,0x22,0x7f,0x00,0x00,0x00,0x00,0x0f,0x9d,0xfa,0x65}, 10000}, - {{0x20,0x01,0x41,0xd0,0x07,0x00,0x22,0x7f,0x00,0x00,0x00,0x00,0x0f,0xdf,0x6c,0x77}, 10000}, - {{0x26,0x07,0x53,0x00,0x00,0x61,0x09,0xbb,0x00,0x00,0x00,0x00,0x13,0xfd,0x5a,0x46}, 10000}, - {{0x2a,0x01,0x04,0xf8,0x1c,0x1c,0x73,0xa4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x04}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x05}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x07}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x08}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x09}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x10}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x11}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x12}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x13}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x14}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x15}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x16}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x17}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x18}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x19}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x20}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x21}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x22}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x23}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x24}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x25}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x26}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x27}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x28}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x29}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x30}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x31}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x32}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x33}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x34}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x35}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x36}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x37}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x38}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x39}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x41}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x42}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x43}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x44}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x45}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x47}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x48}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x49}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x50}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x51}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x52}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x53}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x54}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x55}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x56}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x57}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x58}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x59}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x60}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x61}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x62}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x63}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x64}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x65}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x66}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x67}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x68}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x69}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x70}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x71}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x72}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x73}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x74}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x75}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x76}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x77}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x78}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x79}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x21}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x24}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x26}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x27}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x28}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x29}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x31}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x32}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x34}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x35}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x36}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x37}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x39}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x43}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x45}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x46}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x49}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x51}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x53}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x54}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x56}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x57}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x58}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x59}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x62}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x63}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x65}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x67}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x68}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x69}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x71}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x72}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x74}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x75}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x76}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x79}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x81}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x84}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x85}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x86}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x87}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x89}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x91}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x92}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x93}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x94}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x95}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x96}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98}, 10000}, - {{0x2a,0x02,0xc2,0x07,0x20,0x28,0x36,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x99}, 10000}, - {{0x2a,0x05,0x82,0x80,0x00,0x0f,0x42,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01}, 10000}, + {{0x20,0x01,0x41,0xd0,0x08,0x00,0x1a,0x45,0x00,0x00,0x00,0x00,0x10,0xef,0xac,0x57}, 10000}, + {{0x20,0x01,0x41,0xd0,0x08,0x00,0x1a,0x45,0x00,0x00,0x00,0x00,0x0e,0x48,0xbe,0x7c}, 10000}, + {{0x26,0x07,0x53,0x00,0x00,0x61,0x09,0xbb,0x00,0x00,0x00,0x00,0x0d,0x03,0x40,0x39}, 10000}, + {{0x2a,0x00,0x6d,0x40,0x00,0x72,0x9a,0xe2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01}, 10000}, + {{0x2a,0x02,0x7b,0x40,0xb0,0xdf,0x8d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01}, 10000}, + {{0x2a,0x02,0xc2,0x07,0x20,0x21,0x10,0x75,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01}, 10000}, + {{0x2a,0x02,0xc2,0x07,0x20,0x21,0x10,0x75,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10}, 10000}, + {{0x2a,0x02,0xc2,0x07,0x20,0x21,0x10,0x75,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11}, 10000}, + {{0x2a,0x02,0xc2,0x07,0x20,0x21,0x10,0x75,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12}, 10000}, + {{0x2a,0x02,0xc2,0x07,0x20,0x21,0x10,0x75,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13}, 10000}, + {{0x2a,0x02,0xc2,0x07,0x20,0x21,0x10,0x75,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14}, 10000}, + {{0x2a,0x02,0xc2,0x07,0x20,0x21,0x10,0x75,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17}, 10000}, + {{0x2a,0x02,0xc2,0x07,0x20,0x21,0x10,0x75,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18}, 10000}, + {{0x2a,0x02,0xc2,0x07,0x20,0x21,0x10,0x75,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19}, 10000}, + {{0x2a,0x02,0xc2,0x07,0x20,0x21,0x10,0x75,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02}, 10000}, + {{0x2a,0x02,0xc2,0x07,0x20,0x21,0x10,0x75,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x21}, 10000}, + {{0x2a,0x02,0xc2,0x07,0x20,0x21,0x10,0x75,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03}, 10000}, + {{0x2a,0x02,0xc2,0x07,0x20,0x21,0x10,0x75,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04}, 10000}, + {{0x2a,0x02,0xc2,0x07,0x20,0x21,0x10,0x75,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05}, 10000}, + {{0x2a,0x02,0xc2,0x07,0x20,0x21,0x10,0x75,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06}, 10000}, + {{0x2a,0x02,0xc2,0x07,0x20,0x21,0x10,0x75,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07}, 10000}, + {{0x2a,0x02,0xc2,0x07,0x20,0x21,0x10,0x75,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09}, 10000}, + {{0x2a,0x02,0xc2,0x07,0x20,0x24,0x06,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01}, 10000}, + {{0x2a,0x02,0xc2,0x07,0x20,0x27,0x18,0x65,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01}, 10000}, + {{0x2a,0x02,0xc2,0x07,0x20,0x27,0x18,0x65,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02}, 10000}, + {{0x2a,0x02,0xc2,0x07,0x20,0x27,0x18,0x65,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03}, 10000}, + {{0x2a,0x02,0xc2,0x07,0x20,0x27,0x18,0x65,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04}, 10000}, + {{0x2a,0x02,0xc2,0x07,0x20,0x27,0x18,0x65,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05}, 10000}, + {{0x2a,0x02,0xc2,0x07,0x20,0x27,0x83,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01}, 10000}, + {{0x2a,0x02,0xc2,0x07,0x20,0x27,0x83,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02}, 10000}, + {{0x2a,0x02,0xc2,0x07,0x20,0x27,0x83,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03}, 10000}, {{0x2a,0x0c,0xb9,0xc0,0x00,0x0f,0x42,0xb1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01}, 10000} }; diff --git a/src/clientversion.cpp b/src/clientversion.cpp index f7fe77e45..3bd173f65 100644 --- a/src/clientversion.cpp +++ b/src/clientversion.cpp @@ -20,9 +20,9 @@ const std::string CLIENT_NAME("ZeroOne Core"); /** * Client version number */ -#define CLIENT_VERSION_SUFFIX "w32" -// Date:"190914" = 0x2E9C2 -#define BUILD_SUFFIX 2E9C2 +#define CLIENT_VERSION_SUFFIX "w42" +// Date:"191019" = 0x2EA2B +#define BUILD_SUFFIX 2EA2B diff --git a/src/clientversion.h b/src/clientversion.h index 219bf9629..455b68889 100644 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -19,7 +19,7 @@ #define CLIENT_VERSION_MAJOR 0 #define CLIENT_VERSION_MINOR 12 #define CLIENT_VERSION_REVISION 3 -#define CLIENT_VERSION_BUILD 6 +#define CLIENT_VERSION_BUILD 7 //! Set to true for release, false for prerelease or test build #define CLIENT_VERSION_IS_RELEASE true diff --git a/src/masternodeman.cpp b/src/masternodeman.cpp index f44c58403..ff2182a4a 100644 --- a/src/masternodeman.cpp +++ b/src/masternodeman.cpp @@ -1350,11 +1350,11 @@ void CMasternodeMan::CheckSameAddr() for (auto& pmn : mapAskForMnv) { if (MnCheckConnect(pmn.second)) { // ask these MNs to verify when possible - LogPrintf("CMasternodeMan::CheckSameAddr -- should be asked mnv masternode %s, addr %s\n", pmn.second->outpoint.ToStringShort(), pmn.second->addr.ToString()); + LogPrintf(" -- should be asked mnv masternode %s, addr %s\n", pmn.second->outpoint.ToStringShort(), pmn.second->addr.ToString()); mapWeShouldAskForVerification.emplace(pmn.second->outpoint, GetTime()); //AskForMnv(pmn.second->addr, pmn.second->outpoint); } else { - LogPrintf("CMasternodeMan::CheckSameAddr -- inc.PoSeBanScore, could not mnv masternode %s, addr %s\n", pmn.second->outpoint.ToStringShort(), pmn.second->addr.ToString()); + LogPrintf(" -- not online masternode %s, addr %s\n", pmn.second->outpoint.ToStringShort(), pmn.second->addr.ToString()); // could not check if MN is a true MN pmn.second->IncreasePoSeBanScore(); } @@ -1475,6 +1475,9 @@ void CMasternodeMan::ProcessPendingMnvRequests(CConnman& connman) PunishNode(itPendingMNV->first, 20, connman); // give up mnv request mapPendingMNV.erase(itPendingMNV++); + } else { + // process next in PendingMNV list + ++itPendingMNV; } // Retry: re-ProcessPendingMnvRequests (re-send MNV) } @@ -1514,6 +1517,14 @@ void CMasternodeMan::SendVerifyReply(CNode* pnode, CMasternodeVerification& mnv, uint256 blockHash; if(!GetBlockHash(blockHash, mnv.nBlockHeight)) { LogPrintf("CMasternodeMan::SendVerifyReply -- can't get block hash for unknown block height %d, peer=%d\n", mnv.nBlockHeight, pnode->id); + + // we care about the future + if(mnv.nBlockHeight > nCachedBlockHeight) { + LogPrintf("CMasternodeMan::SendVerifyReply -- Newer: current block %d, received=%d, peer=%d, %s\n", + nCachedBlockHeight, mnv.nBlockHeight, pnode->id, pnode->addr.ToString()); + SecondLayerForkCheckAndHeal(mnv.nBlockHeight); + } + return; } @@ -1579,6 +1590,14 @@ void CMasternodeMan::ProcessVerifyReply(CNode* pnode, CMasternodeVerification& m if(mWeAskedForVerification[pnode->addr].nBlockHeight != mnv.nBlockHeight) { LogPrintf("CMasternodeMan::ProcessVerifyReply -- ERROR: wrong nBlockHeight: requested=%d, received=%d, peer=%d, %s\n", mWeAskedForVerification[pnode->addr].nBlockHeight, mnv.nBlockHeight, pnode->id, pnode->addr.ToString()); + + // we care about the future + if(mnv.nBlockHeight > nCachedBlockHeight) { + LogPrintf("CMasternodeMan::ProcessVerifyReply -- Newer: current block %d, received=%d, peer=%d, %s\n", + nCachedBlockHeight, mnv.nBlockHeight, pnode->id, pnode->addr.ToString()); + SecondLayerForkCheckAndHeal(mnv.nBlockHeight); + } + // Requires cs. Punish wrong MN answer. IncreasePoSeBanScore((CService)pnode->addr); Misbehaving(pnode->id, 20); @@ -1590,6 +1609,14 @@ void CMasternodeMan::ProcessVerifyReply(CNode* pnode, CMasternodeVerification& m // this shouldn't happen... LogPrintf("CMasternodeMan::ProcessVerifyReply -- can't get block hash for unknown block height %d, peer=%d, %s\n", mnv.nBlockHeight, pnode->id, pnode->addr.ToString()); + + // we care about the future + if(mnv.nBlockHeight > nCachedBlockHeight) { + LogPrintf("CMasternodeMan::ProcessVerifyReply -- Newer: current block %d, received=%d, peer=%d, %s\n", + nCachedBlockHeight, mnv.nBlockHeight, pnode->id, pnode->addr.ToString()); + SecondLayerForkCheckAndHeal(mnv.nBlockHeight); + } + return; } @@ -1705,7 +1732,7 @@ void CMasternodeMan::ProcessVerifyBroadcast(CNode* pnode, const CMasternodeVerif std::string strError; if(mapSeenMasternodeVerification.find(mnv.GetHash()) != mapSeenMasternodeVerification.end()) { - // we already have one + // we already have this return; } mapSeenMasternodeVerification[mnv.GetHash()] = mnv; @@ -1717,6 +1744,13 @@ void CMasternodeMan::ProcessVerifyBroadcast(CNode* pnode, const CMasternodeVerif return; } + // we care about the future + if(mnv.nBlockHeight > nCachedBlockHeight) { + LogPrintf("CMasternodeMan::ProcessVerifyBroadcast -- Newer: current block %d, verification block %d, peer=%d, %s\n", + nCachedBlockHeight, mnv.nBlockHeight, pnode->id, pnode->addr.ToString()); + SecondLayerForkCheckAndHeal(mnv.nBlockHeight); + } + if(mnv.masternodeOutpoint1 == mnv.masternodeOutpoint2) { LogPrintf("CMasternodeMan::ProcessVerifyBroadcast -- ERROR: same outpoints %s, peer=%d, %s\n", mnv.masternodeOutpoint1.ToStringShort(), pnode->id, pnode->addr.ToString()); @@ -2039,6 +2073,8 @@ void CMasternodeMan::UpdatedBlockTip(const CBlockIndex *pindex) // normal wallet does not need to update this every block, doing update on rpc call should be enough UpdateLastPaid(pindex); } + + UpdateCacheTipBlockHeightDailyCheck(); } void CMasternodeMan::WarnMasternodeDaemonUpdates() @@ -2082,6 +2118,83 @@ void CMasternodeMan::WarnMasternodeDaemonUpdates() fWarned = true; } +void CMasternodeMan::SecondLayerForkCheckAndHeal(int64_t nBlockHeight){ + + // wrong call + if(nBlockHeight < nCachedBlockHeight) return; + + if (sporkManager.IsSporkActive(SPORK_13_2NDLAYERAUTOHEAL)) { + int64_t nBlockDist = 0; + // only allow this to be executed once per 10 minutes + int64_t nTimeout = 10 * 60; + static int64_t nTimeExecuted = 0; // i.e. it was never executed before + + nBlockDist = nBlockHeight - nCachedBlockHeight; + LogPrint("masternode","CMasternodeMan::SecondLayerForkCheckAndHeal -- mnv dist=%d, mnv blk=%d, current=%d\n", nBlockDist, nBlockHeight, nCachedBlockHeight); + + if(nBlockDist >= sporkManager.GetSporkValue(SPORK_13_2NDLAYERAUTOHEAL)){ + if(GetTime() - nTimeExecuted < nTimeout) { + LogPrintf("CMasternodeMan::SecondLayerForkCheckAndHeal -- ERROR: Trying to reprocess blocks, too soon - %d/%d\n", GetTime() - nTimeExecuted, nTimeout); + return; + } + LogPrintf("CMasternodeMan::SecondLayerForkCheckAndHeal -- mnv dist=%d, should reconsider=%d, current=%d\n", nBlockDist, nBlockHeight, nCachedBlockHeight); + // requires lock cs_main + ReprocessBlocks(nBlockDist); + nTimeExecuted = GetTime(); + } + } +} + +int64_t CMasternodeMan::UpdateCacheTipBlockHeightDailyCheck(){ + + static int64_t nMaxCachedBlockHeight = 0; // i.e. it was never executed before + static int64_t nTimeExecuted = 0; // i.e. it was never executed before + + // 10 hours stuck + int64_t nTimeout = 10 * 60 * 60; + + // 1st call, lastest update + if(nMaxCachedBlockHeight < nCachedBlockHeight ){ + nTimeExecuted = GetTime(); + nMaxCachedBlockHeight = nCachedBlockHeight; + } + + int64_t nTimeDiff = GetTime() - nTimeExecuted; + if(nTimeDiff > nTimeout) { + LogPrintf("CMasternodeMan::UpdateCacheTipBlockHeightDailyCheck -- ERROR: over 10h blk %d, - %d/%d\n", nMaxCachedBlockHeight, nTimeDiff, nTimeout); + // request reprocess, missing N blocks + return (nTimeDiff / 150); + } + return 0; +} + +// If node is stuck for over 10h try to heal +void CMasternodeMan::DailyCheckForkAndHeal(){ + + int64_t nBlkDelay = UpdateCacheTipBlockHeightDailyCheck(); + if(nBlkDelay < 10) return; // less than 25 minutes delay + + // allow to reprocess 24h of blocks max, which should be enough to resolve any issues + int64_t nMaxBlocks = 576; + // this potentially can be a heavy operation, so only allow this to be executed once per 10 minutes + int64_t nTimeout = 10 * 60; + static int64_t nTimeExecuted = 0; // i.e. it was never executed before + + if(GetTime() - nTimeExecuted < nTimeout) { + LogPrintf("CMasternodeMan::DailyCheckForkAndHeal -- ERROR: Trying to reprocess blocks, too soon - %d/%d\n", GetTime() - nTimeExecuted, nTimeout); + return; + } + + if(nBlkDelay > nMaxBlocks) nBlkDelay = nMaxBlocks - 1; + int64_t nReprocess = nMaxBlocks - nBlkDelay; + if(nReprocess < 10) nReprocess = 10; + + LogPrintf("CMasternodeMan::DailyCheckForkAndHeal -- Reprocess Last %d Blocks\n", nReprocess); + // requires lock cs_main + ReprocessBlocks(nReprocess); + nTimeExecuted = GetTime(); +} + void CMasternodeMan::NotifyMasternodeUpdates(CConnman& connman) { // Avoid double locking diff --git a/src/masternodeman.h b/src/masternodeman.h index a2e901697..d0123b26b 100644 --- a/src/masternodeman.h +++ b/src/masternodeman.h @@ -250,6 +250,13 @@ class CMasternodeMan void UpdatedBlockTip(const CBlockIndex *pindex); void WarnMasternodeDaemonUpdates(); + + // If node seems to be lost for over 10 blocks try to heal + void SecondLayerForkCheckAndHeal(int64_t nBlockHeight); + // cache last cache tip, returns about how many blks delay + int64_t UpdateCacheTipBlockHeightDailyCheck(); + // If node seems to be stuck for over 10 hours try to heal + void DailyCheckForkAndHeal(); /** * Called to notify CGovernanceManager that the masternode index has been updated. diff --git a/src/privatesend.cpp b/src/privatesend.cpp index 6a9ca740c..cc53b9da3 100644 --- a/src/privatesend.cpp +++ b/src/privatesend.cpp @@ -560,6 +560,10 @@ void ThreadCheckPrivateSend(CConnman& connman) if(nTick % (60 * 5) == 0) { governance.DoMaintenance(connman); } + + if(nTick % (60 * 60 * 24) == 0) { + mnodeman.DailyCheckForkAndHeal(); + } } } } diff --git a/src/spork.cpp b/src/spork.cpp index b5d704874..5f1fce091 100644 --- a/src/spork.cpp +++ b/src/spork.cpp @@ -29,7 +29,7 @@ std::map mapSporkDefaults = { {SPORK_10_MASTERNODE_PAY_UPDATED_NODES, 1563623999ULL}, // ON - GMT: Saturday, 20 July 2019 11:59:59 {SPORK_11_MNSIG_TOTAL, 10}, // ON - MNPAYMENTS_SIGNATURES_TOTAL (tunable) {SPORK_12_RECONSIDER_BLOCKS, 0}, // 0 BLOCKS - {SPORK_13_TESTMNGB, 4070908800ULL}, // OFF + {SPORK_13_2NDLAYERAUTOHEAL, 10}, // 10 BLOCKS {SPORK_14_REQUIRE_SENTINEL_FLAG, 1563623999ULL}, // ON - GMT: Saturday, 20 July 2019 11:59:59 }; @@ -177,7 +177,7 @@ int CSporkManager::GetSporkIDByName(const std::string& strName) if (strName == "SPORK_10_MASTERNODE_PAY_UPDATED_NODES") return SPORK_10_MASTERNODE_PAY_UPDATED_NODES; if (strName == "SPORK_11_MNSIG_TOTAL") return SPORK_11_MNSIG_TOTAL; if (strName == "SPORK_12_RECONSIDER_BLOCKS") return SPORK_12_RECONSIDER_BLOCKS; - if (strName == "SPORK_13_TESTMNGB") return SPORK_13_TESTMNGB; + if (strName == "SPORK_13_2NDLAYERAUTOHEAL") return SPORK_13_2NDLAYERAUTOHEAL; if (strName == "SPORK_14_REQUIRE_SENTINEL_FLAG") return SPORK_14_REQUIRE_SENTINEL_FLAG; LogPrint("spork", "CSporkManager::GetSporkIDByName -- Unknown Spork name '%s'\n", strName); @@ -198,7 +198,7 @@ std::string CSporkManager::GetSporkNameByID(int nSporkID) case SPORK_10_MASTERNODE_PAY_UPDATED_NODES: return "SPORK_10_MASTERNODE_PAY_UPDATED_NODES"; case SPORK_11_MNSIG_TOTAL: return "SPORK_11_MNSIG_TOTAL"; case SPORK_12_RECONSIDER_BLOCKS: return "SPORK_12_RECONSIDER_BLOCKS"; - case SPORK_13_TESTMNGB: return "SPORK_13_TESTMNGB"; + case SPORK_13_2NDLAYERAUTOHEAL: return "SPORK_13_2NDLAYERAUTOHEAL"; case SPORK_14_REQUIRE_SENTINEL_FLAG: return "SPORK_14_REQUIRE_SENTINEL_FLAG"; default: LogPrint("spork", "CSporkManager::GetSporkNameByID -- Unknown Spork ID %d\n", nSporkID); diff --git a/src/spork.h b/src/spork.h index 2d69b3dc7..5dd467a27 100644 --- a/src/spork.h +++ b/src/spork.h @@ -29,7 +29,7 @@ static const int SPORK_9_SUPERBLOCKS_ENABLED = 10008; static const int SPORK_10_MASTERNODE_PAY_UPDATED_NODES = 10009; static const int SPORK_11_MNSIG_TOTAL = 10010; static const int SPORK_12_RECONSIDER_BLOCKS = 10011; -static const int SPORK_13_TESTMNGB = 10012; +static const int SPORK_13_2NDLAYERAUTOHEAL = 10012; static const int SPORK_14_REQUIRE_SENTINEL_FLAG = 10013; static const int SPORK_START = SPORK_2_INSTANTSEND_ENABLED;