General Bugfixes from RS integration.

* heisenbug fixed. msgout_find_node was inside debugging #defs.
 * fixed ReplyFindNode and ReplyQueryHash counters for stats.
 * added Node Space size() functions.
 * added FINDSELF mode. 60 secs to search for own hash.
 * incremental addition of search ids.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3326 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
drbob 2010-08-01 18:19:27 +00:00
parent 5ed26b7ccb
commit f876dcb93b
10 changed files with 741 additions and 526 deletions

View File

@ -132,16 +132,18 @@ virtual void bdPrintNodeId(std::ostream &out, const bdNodeId *a) = 0;
/* Status options */
#define BITDHT_QUERY_QUERYING 1
#define BITDHT_QUERY_FAILURE 2
#define BITDHT_QUERY_FOUND_CLOSEST 3
#define BITDHT_QUERY_PEER_UNREACHABLE 4
#define BITDHT_QUERY_SUCCESS 5
#define BITDHT_QUERY_READY 1
#define BITDHT_QUERY_QUERYING 2
#define BITDHT_QUERY_FAILURE 3
#define BITDHT_QUERY_FOUND_CLOSEST 4
#define BITDHT_QUERY_PEER_UNREACHABLE 5
#define BITDHT_QUERY_SUCCESS 6
/* Query Flags */
#define BITDHT_QFLAGS_NONE 0
#define BITDHT_QFLAGS_DISGUISE 1
#define BITDHT_QFLAGS_DO_IDLE 2
#define BITDHT_QFLAGS_INTERNAL 4 // means it runs through startup.
class BitDhtCallback
{

View File

@ -54,7 +54,7 @@
* #define DEBUG_MGR_PKT 1
***/
#define DEBUG_MGR 1
//#define DEBUG_MGR 1
bdNodeManager::bdNodeManager(bdNodeId *id, std::string dhtVersion, std::string bootfile, bdDhtFunctions *fns)
:bdNode(id, dhtVersion, bootfile, fns)
@ -94,14 +94,41 @@ void bdNodeManager::addFindNode(bdNodeId *id, uint32_t qflags)
/* add to map */
bdQueryPeer peer;
peer.mId.id = (*id);
peer.mStatus = BITDHT_QUERY_QUERYING;
peer.mStatus = BITDHT_QUERY_READY; //QUERYING;
peer.mQFlags = qflags;
mActivePeers[*id] = peer;
#ifdef DEBUG_MGR
std::cerr << "bdNodeManager::addFindNode() Added QueryPeer....";
std::cerr << "bdNodeManager::addFindNode() Added QueryPeer as READY....";
std::cerr << std::endl;
#endif
addQuery(id, qflags | BITDHT_QFLAGS_DISGUISE);
//addQuery(id, qflags | BITDHT_QFLAGS_DISGUISE);
return;
}
/* finds a queued query, and starts it */
void bdNodeManager::startQueries()
{
#ifdef DEBUG_MGR
std::cerr << "bdNodeManager::startQueries() ";
std::cerr << std::endl;
#endif
/* check if exists already */
std::map<bdNodeId, bdQueryPeer>::iterator it;
for(it = mActivePeers.begin(); it != mActivePeers.end(); it++)
{
if (it->second.mStatus == BITDHT_QUERY_READY)
{
#ifdef DEBUG_MGR
std::cerr << "bdNodeManager::startQueries() Found READY Query.";
std::cerr << std::endl;
#endif
it->second.mStatus == BITDHT_QUERY_QUERYING;
uint32_t qflags = it->second.mQFlags | BITDHT_QFLAGS_DISGUISE;
addQuery(&(it->first), qflags);
return;
}
}
return;
}
@ -138,6 +165,7 @@ void bdNodeManager::iteration()
{
case BITDHT_MGR_STATE_STARTUP:
/* 10 seconds startup .... then switch to ACTIVE */
if (modeAge > MAX_STARTUP_TIME)
{
#ifdef DEBUG_MGR
@ -148,10 +176,29 @@ void bdNodeManager::iteration()
getOwnId(&id);
addQuery(&id, BITDHT_QFLAGS_DO_IDLE | BITDHT_QFLAGS_DISGUISE);
mMode = BITDHT_MGR_STATE_FINDSELF;
mModeTS = now;
}
break;
case BITDHT_MGR_STATE_FINDSELF:
/* 60 seconds further startup .... then switch to ACTIVE */
#define MAX_FINDSELF_TIME 60
#define MIN_OP_SPACE_SIZE 100
#ifdef DEBUG_MGR
std::cerr << "bdNodeManager::iteration() Finding Oneself: NodeSpace Size:" << mNodeSpace.size();
std::cerr << std::endl;
#endif
if ((modeAge > MAX_FINDSELF_TIME) ||
(mNodeSpace.size() > MIN_OP_SPACE_SIZE))
{
//mMode = BITDHT_MGR_STATE_ACTIVE;
mMode = BITDHT_MGR_STATE_REFRESH;
mModeTS = now;
}
break;
case BITDHT_MGR_STATE_ACTIVE:
@ -177,6 +224,13 @@ void bdNodeManager::iteration()
mMode = BITDHT_MGR_STATE_ACTIVE;
mModeTS = now;
#ifdef DEBUG_MGR
std::cerr << "bdNodeManager::iteration(): Starting Query";
std::cerr << std::endl;
#endif
startQueries();
#ifdef DEBUG_MGR
std::cerr << "bdNodeManager::iteration(): Updating Stores";
std::cerr << std::endl;

View File

@ -70,12 +70,13 @@ class bdQueryPeer
#define BITDHT_MGR_STATE_STARTUP 1
#define BITDHT_MGR_STATE_ACTIVE 2
#define BITDHT_MGR_STATE_REFRESH 3
#define BITDHT_MGR_STATE_QUIET 4
#define BITDHT_MGR_STATE_FINDSELF 2
#define BITDHT_MGR_STATE_ACTIVE 3
#define BITDHT_MGR_STATE_REFRESH 4
#define BITDHT_MGR_STATE_QUIET 5
#define MAX_STARTUP_TIME 10
#define MAX_REFRESH_TIME 30
#define MAX_REFRESH_TIME 20
#define BITDHT_MGR_QUERY_FAILURE 1
#define BITDHT_MGR_QUERY_PEER_OFFLINE 2
@ -128,6 +129,7 @@ int status();
int checkStatus();
int checkPingStatus();
int SearchOutOfDate();
void startQueries();
std::map<bdNodeId, bdQueryPeer> mActivePeers;
std::list<BitDhtCallback *> mCallbacks;

View File

@ -53,6 +53,7 @@
* #define DEBUG_NODE_MSGOUT 1
***/
//#define DEBUG_NODE_MSGS 1
bdNode::bdNode(bdNodeId *ownId, std::string dhtVersion, std::string bootfile, bdDhtFunctions *fns)
:mOwnId(*ownId), mNodeSpace(ownId, fns), mStore(bootfile, fns), mDhtVersion(dhtVersion), mFns(fns)
@ -215,8 +216,9 @@ void bdNode::iteration()
genNewTransId(&transId);
registerOutgoingMsg(&id, &transId, BITDHT_MSG_TYPE_FIND_NODE);
#ifdef DEBUG_NODE_MSGS
msgout_find_node(&id, &transId, &targetNodeId);
#ifdef DEBUG_NODE_MSGS
std::cerr << "bdNode::iteration() Find Node Req for : ";
mFns->bdPrintId(std::cerr, &id);
std::cerr << " searching for : ";
@ -391,6 +393,39 @@ void bdNode::addPeer(const bdId *id, uint32_t peerflags)
mStore.addStore(&peer);
}
#if 0
// virtual so manager can do callback.
// peer flags defined in bdiface.h
void bdNode::PeerResponse(const bdId *id, const bdNodeId *target, uint32_t peerflags)
{
#ifdef DEBUG_NODE_ACTIONS
std::cerr << "bdNode::PeerResponse(";
mFns->bdPrintId(std::cerr, id);
std::cerr << ", target: ";
mFns->bdPrintNodeId(std::cerr, target);
fprintf(stderr, ")\n");
#endif
/* iterate through queries */
std::list<bdQuery>::iterator it;
for(it = mLocalQueries.begin(); it != mLocalQueries.end(); it++)
{
it->PeerResponse(id, target, peerflags);
}
mNodeSpace.add_peer(id, peerflags);
bdPeer peer;
peer.mPeerId = *id;
peer.mPeerFlags = peerflags;
peer.mLastRecvTime = time(NULL);
mStore.addStore(&peer);
}
#endif
/************************************ Query Details *************************/
void bdNode::addQuery(const bdNodeId *id, uint32_t qflags)
{
@ -489,7 +524,7 @@ void bdNode::processRemoteQuery()
std::cerr << std::endl;
#endif
mCounterReplyFindNode = 0;
mCounterReplyFindNode++;
break;
}
@ -501,7 +536,7 @@ void bdNode::processRemoteQuery()
std::cerr << " TODO";
std::cerr << std::endl;
#endif
mCounterReplyQueryHash = 0;
mCounterReplyQueryHash++;
/* TODO */
@ -519,6 +554,16 @@ void bdNode::processRemoteQuery()
}
else
{
#ifdef DEBUG_NODE_MSGS
std::cerr << "bdNode::processRemoteQuery() Query Too Old: Discarding: ";
mFns->bdPrintId(std::cerr, &(query.mId));
std::cerr << std::endl;
#endif
}
mRemoteQueries.pop_front();
}
}

View File

@ -176,12 +176,15 @@ void recvPkt(char *msg, int len, struct sockaddr_in addr);
void printQueries();
private:
protected:
bdNodeId mOwnId;
bdId mLikelyOwnId; // Try to workout own id address.
bdSpace mNodeSpace;
private:
bdStore mStore;
std::string mDhtVersion;

View File

@ -734,3 +734,101 @@ int bdSpace::printDHT()
return 1;
}
int bdSpace::calcSizes()
{
std::vector<bdBucket>::iterator it;
/* little summary */
unsigned long long sum = 0;
unsigned long long no_peers = 0;
uint32_t count = 0;
uint32_t totalcount = 0;
bool doPrint = false;
bool doAvg = false;
int i = 0;
for(it = buckets.begin(); it != buckets.end(); it++, i++)
{
int size = it->entries.size();
totalcount += size;
int shift = BITDHT_KEY_BITLEN - i;
bool toBig = false;
if (shift > BITDHT_ULLONG_BITS - mFns->bdBucketBitSize() - 1)
{
toBig = true;
shift = BITDHT_ULLONG_BITS - mFns->bdBucketBitSize() - 1;
}
unsigned long long no_nets = ((unsigned long long) 1 << shift);
/* use doPrint so it acts as a single switch */
if (size && !doAvg && !doPrint)
{
doAvg = true;
}
if (size && !doPrint)
{
doPrint = true;
}
if (size == 0)
{
/* reset counters - if empty slot - to discount outliers in average */
sum = 0;
no_peers = 0;
count = 0;
}
if (!toBig)
{
no_peers = no_nets * size;
}
if (doPrint && doAvg && !toBig)
{
if (size == mFns->bdNodesPerBucket())
{
/* last average */
doAvg = false;
}
if (no_peers != 0)
{
sum += no_peers;
count++;
}
}
}
mLastSize = totalcount;
if (count == 0)
{
mLastNetSize = 0;
}
else
{
mLastNetSize = sum / count;
}
return 1;
}
uint32_t bdSpace::size()
{
calcSizes();
return mLastSize;
}
uint32_t bdSpace::netSize()
{
calcSizes();
return mLastNetSize;
}

View File

@ -153,6 +153,10 @@ int out_of_date_peer(bdId &id); // side-effect updates, send flag on peer.
int add_peer(const bdId *id, uint32_t mode);
int printDHT();
int calcSizes();
uint32_t size();
uint32_t netSize();
/* to add later */
int updateOwnId(bdNodeId *newOwnId);
@ -161,6 +165,9 @@ int updateOwnId(bdNodeId *newOwnId);
std::vector<bdBucket> buckets;
bdNodeId mOwnId;
bdDhtFunctions *mFns;
uint32_t mLastSize;
uint32_t mLastNetSize;
};

View File

@ -353,9 +353,11 @@ int bdQuery::addPeer(const bdId *id, uint32_t mode)
}
}
#ifdef DEBUG_QUERY
fprintf(stderr, "bdQuery::addPeer(): Closer Peer!: ");
mFns->bdPrintId(std::cerr, id);
fprintf(stderr, "\n");
#endif
/* add it in */
bdPeer peer;
@ -502,9 +504,11 @@ int bdQuery::addPotentialPeer(const bdId *id, uint32_t mode)
}
}
#ifdef DEBUG_QUERY
fprintf(stderr, "bdQuery::addPotentialPeer(): Closer Peer!: ");
mFns->bdPrintId(std::cerr, id);
fprintf(stderr, "\n");
#endif
/* add it in */
bdPeer peer;

View File

@ -29,7 +29,7 @@
#include "bitdht/bdiface.h"
#define BITDHT_STANDARD_BUCKET_SIZE 10 // 20 - too many per query.
#define BITDHT_STANDARD_BUCKET_SIZE 10 // 20 too many per query?
#define BITDHT_STANDARD_BUCKET_SIZE_BITS 5
#define BITDHT_STANDARD_N_BUCKETS BITDHT_KEY_BITLEN

View File

@ -1,500 +1,500 @@
92.12.39.6 16244
89.212.217.239 28436
78.245.141.29 24062
205.237.249.60 60753
62.21.68.140 29607
61.64.105.113 25526
91.124.60.138 29433
218.224.131.30 40758
83.240.70.102 36020
85.217.136.19 12987
117.200.98.12 52766
78.96.190.94 62088
178.223.87.21 10014
80.2.47.245 15552
90.170.111.137 13192
188.226.10.2 34216
90.227.88.106 54053
85.75.149.20 28827
69.148.26.74 40190
95.57.8.245 13623
77.78.137.242 34136
88.198.31.48 51413
114.177.196.25 23313
112.143.5.152 10035
201.210.35.114 1089
114.166.35.238 20748
89.23.16.155 21007
82.209.158.227 29892
71.154.218.34 32471
66.68.12.56 42237
77.250.248.129 35359
86.123.20.27 59763
88.189.215.153 47003
212.115.243.128 35331
68.33.231.30 4041
174.3.187.193 17999
61.73.159.158 62930
202.106.63.129 6881
121.254.72.205 18068
94.27.71.190 45882
76.221.142.55 8106
118.243.253.168 51810
83.82.215.49 27067
99.56.61.56 16881
93.100.178.63 63982
89.124.38.17 7719
94.96.39.71 14533
85.224.48.124 19157
83.149.3.111 2212
165.132.28.29 22553
210.6.190.167 9258
183.89.42.239 10211
76.11.65.212 11952
173.59.11.238 49662
85.187.184.104 11066
82.44.90.159 22344
188.27.114.217 32171
89.31.112.26 51780
124.218.29.192 16642
78.130.222.130 43658
74.105.211.205 48819
114.168.150.173 55910
96.51.33.140 32329
190.204.29.202 54450
80.240.217.180 56605
72.229.227.66 51413
81.147.10.199 60224
60.50.255.65 27500
82.210.154.254 49074
95.178.165.85 22073
173.74.61.121 20296
189.172.91.63 32862
83.149.3.87 49422
221.118.228.240 19062
113.167.211.162 26491
82.75.83.7 32231
184.59.26.110 57394
75.72.139.138 57619
187.112.195.219 35326
59.171.53.80 6885
89.132.238.128 14064
79.119.179.173 51847
94.232.9.137 22515
93.183.158.243 33177
190.142.237.235 57012
81.225.3.15 52735
87.70.134.32 35691
125.34.10.134 16881
72.252.147.147 44561
81.132.137.167 64163
188.17.186.176 20143
122.173.123.126 10059
84.124.240.134 13910
76.65.82.185 53620
92.83.123.164 10312
115.118.204.63 23820
118.172.176.216 16326
81.98.36.18 37915
111.243.22.108 19934
94.10.204.178 18391
213.120.100.133 64504
95.42.85.28 22290
75.65.154.63 49384
93.185.177.162 26017
71.195.178.231 29656
83.97.66.17 36084
88.205.175.143 52773
78.8.223.23 35068
195.18.14.209 42232
175.144.254.70 21025
96.51.132.228 31985
211.224.68.157 38486
84.3.119.43 37819
64.120.255.60 6860
64.120.255.40 6840
88.112.86.60 6881
85.15.90.39 62239
203.219.136.214 12386
24.86.186.73 35444
98.117.17.53 47127
71.236.116.230 53266
79.88.52.95 58810
70.26.249.175 12712
84.238.32.93 39000
142.177.138.67 42608
193.227.230.38 25998
159.148.201.3 51279
81.101.108.205 55319
92.112.239.251 54423
89.32.161.80 20534
92.134.174.244 63288
76.99.68.51 50009
82.13.104.126 60394
190.254.250.39 16039
95.58.121.74 59312
174.88.26.132 10167
109.96.138.146 23894
186.19.235.217 25339
109.192.92.151 42637
87.239.33.5 1907
95.154.176.23 46887
94.137.206.211 50526
210.146.116.72 62780
218.171.243.202 9133
61.244.211.243 8756
91.95.25.150 47353
174.5.75.103 25772
118.167.114.241 51001
75.56.207.235 26166
92.30.126.173 18921
114.36.64.2 17738
78.29.165.84 52760
173.212.206.213 6813
187.59.109.115 37484
85.22.8.175 52857
126.109.206.4 64327
82.210.188.127 20329
95.165.163.114 23448
83.153.209.5 17211
76.29.235.184 17801
66.177.225.54 55952
59.26.76.120 49911
70.26.207.239 50591
87.2.17.117 18586
81.102.125.77 40848
109.104.187.38 13937
95.68.94.144 16302
85.229.75.44 35060
76.92.217.64 26272
125.1.208.157 40393
92.27.172.45 12303
140.113.179.143 14232
81.191.145.10 58334
70.53.178.100 9472
126.114.208.43 50784
183.178.66.202 24910
79.101.206.136 10361
90.136.101.48 41749
188.60.106.125 39889
217.209.12.220 20544
90.190.114.159 113
95.71.127.32 33037
61.12.222.55 13064
77.229.176.143 27625
81.23.166.136 22829
78.29.119.181 21344
67.171.29.15 40385
122.118.176.147 19139
190.235.210.249 14178
76.11.109.99 44390
99.253.38.74 19441
62.169.123.28 35746
82.132.23.195 52333
109.111.156.186 17673
82.239.40.163 16624
90.213.246.144 9402
83.227.156.194 26021
95.79.96.241 15528
74.192.71.122 48397
89.204.102.106 15739
90.191.179.50 16191
122.128.7.158 13056
92.112.175.123 57663
91.126.193.107 47880
109.213.51.102 29726
94.242.39.161 52574
94.242.146.69 12718
71.162.145.34 29292
69.124.254.45 22881
150.241.243.9 11285
93.186.210.168 10720
178.162.183.230 6821
126.129.78.39 12196
220.104.150.203 14433
188.231.161.11 15100
92.37.60.58 36471
91.200.201.18 30249
90.224.113.160 14137
188.168.149.62 32100
89.85.101.239 49653
85.137.231.20 27117
109.173.31.9 35713
95.93.164.200 30478
195.134.67.116 47054
77.204.69.245 20415
118.166.138.60 20047
69.226.208.233 58693
178.162.183.229 6821
147.102.101.57 31117
99.155.75.169 27252
95.95.131.196 53008
86.135.175.65 22570
96.248.14.215 54714
99.114.93.62 6881
218.101.254.179 20865
122.29.166.207 20125
24.138.175.76 54343
74.59.81.208 52162
118.237.9.41 26975
125.27.16.14 24154
82.42.153.229 6881
72.83.129.103 13768
109.121.138.103 16757
99.49.108.135 61808
174.16.53.212 10881
208.96.64.154 8545
70.233.142.241 10844
218.250.92.55 24465
109.185.145.116 46074
71.233.253.247 52632
69.199.158.242 1046
61.237.150.128 16001
113.167.87.35 23472
92.80.179.29 46605
95.174.221.82 13219
188.51.50.221 45298
187.58.97.75 29532
77.31.99.230 12300
109.254.58.59 16275
78.56.58.195 20217
122.167.251.69 10907
60.51.126.182 10476
178.128.11.174 61849
218.212.172.84 15730
211.2.124.206 21145
109.228.129.162 21836
92.81.66.102 14464
216.59.6.151 49161
217.9.228.38 52626
89.102.21.149 59205
94.236.135.235 14741
178.95.49.31 35059
95.222.241.5 20086
93.12.155.205 13490
84.189.184.178 27337
95.37.6.182 80
77.225.25.74 21516
123.205.25.101 24874
211.49.2.134 51699
84.80.253.42 58301
95.190.84.211 23514
77.85.121.195 19864
80.81.52.236 11588
114.78.108.245 18763
87.117.193.75 59052
93.86.43.29 18717
76.200.119.40 33598
202.91.148.53 61417
117.199.66.185 59509
83.213.159.14 61673
78.69.137.44 51413
94.195.125.8 16194
74.60.226.19 39582
118.216.216.189 31485
61.206.209.175 19759
85.230.109.209 6885
85.230.109.209 6882
70.161.168.143 28026
186.89.208.31 29977
76.170.201.149 58022
188.168.37.213 26920
220.87.28.165 19422
90.196.0.115 8793
95.25.118.39 43292
89.89.184.28 45594
2.94.21.224 21167
94.24.180.164 51413
69.22.210.60 44108
99.3.36.205 29624
87.118.159.137 32214
78.150.70.194 11605
118.169.51.195 63655
109.87.209.181 35691
88.168.220.170 16515
83.21.98.78 23532
84.228.30.163 26271
71.201.250.18 62141
75.155.68.157 12004
98.244.32.255 27000
187.22.84.8 13362
67.174.144.251 48131
59.93.116.98 60592
219.40.160.200 11266
188.230.68.133 64234
93.103.76.133 62482
82.35.193.163 49367
82.199.200.214 40635
79.121.55.130 33416
97.102.6.239 59824
69.150.73.121 48195
99.250.69.227 25017
178.83.250.159 62178
75.65.95.130 24792
77.70.96.235 48474
76.173.74.239 10826
98.251.67.38 15801
123.201.200.33 54012
213.191.30.253 12135
125.164.105.45 14264
188.54.96.108 13874
98.225.190.156 63350
70.81.211.190 39510
117.201.19.29 29960
69.221.9.204 36204
82.226.93.109 52049
94.21.163.155 6881
173.72.2.69 58839
173.72.2.69 58838
174.115.207.53 40067
24.200.200.102 11693
81.182.59.31 26133
212.92.232.102 36439
78.58.104.112 49574
79.100.174.203 18249
91.123.214.17 47577
70.55.196.137 60603
83.108.244.62 59851
61.5.241.219 59550
220.118.223.179 55487
80.184.76.198 46930
95.180.177.64 20749
190.51.60.70 13430
178.253.74.146 57795
221.161.5.96 21381
95.83.24.44 58220
61.64.85.57 8871
115.241.141.104 31440
41.218.245.100 10064
95.84.46.158 40663
83.154.58.197 39055
67.193.111.176 38941
84.251.15.143 51413
78.144.58.92 10112
120.60.15.173 13419
78.130.227.226 55407
184.91.54.179 57218
213.85.190.254 18216
85.220.114.208 52900
142.162.24.166 37627
77.232.0.135 51921
69.249.169.177 51691
76.213.243.148 28855
203.223.253.214 7770
78.229.62.160 14415
85.56.139.56 58749
71.196.189.66 43541
60.54.39.89 18756
112.207.137.130 45682
84.115.175.203 38839
85.10.16.82 42070
61.116.102.55 58995
87.56.74.190 51804
83.31.49.246 49408
88.132.33.234 10889
93.148.69.177 64396
95.140.7.82 45643
84.42.245.181 62910
71.172.80.247 16639
77.41.69.144 58436
189.239.185.252 63091
187.114.203.208 18571
70.75.204.73 34767
78.83.106.252 32836
95.139.113.36 30816
189.60.98.121 38345
220.132.72.212 27085
70.157.138.186 23602
189.136.163.215 22838
89.33.94.80 18377
79.111.165.2 19211
92.24.189.239 45717
193.25.104.85 45766
59.93.93.23 39382
89.18.194.180 53230
116.71.218.45 10165
156.34.28.98 45682
203.206.53.27 10358
41.235.61.5 16498
86.138.70.43 14685
183.14.156.148 16001
85.107.216.225 61077
79.89.31.240 23687
187.67.26.74 20595
24.87.88.9 49947
222.131.10.83 5070
212.117.169.181 55788
80.64.65.14 61551
81.232.90.184 43611
89.180.106.123 51337
71.180.229.140 25107
41.238.203.245 42311
71.227.139.224 32093
123.115.241.29 8808
62.45.98.176 6881
92.154.104.90 49500
78.60.71.95 39201
89.113.24.69 41489
98.222.41.217 55836
98.242.242.83 25455
99.41.207.6 58729
96.250.33.132 50343
93.80.210.92 53838
94.236.129.131 46060
83.142.210.17 17901
93.152.162.14 42404
71.82.210.81 26642
116.74.67.240 42370
98.225.224.13 16321
89.179.79.75 62045
24.250.154.26 52769
72.39.29.128 22844
194.186.188.48 63808
67.172.251.253 22076
92.13.58.11 55202
218.44.104.181 59116
91.195.208.8 6881
66.197.165.38 6821
70.160.28.191 29602
24.15.202.167 15309
118.128.194.3 35703
92.27.69.69 11399
113.169.9.165 20302
41.204.126.178 11275
66.212.214.127 22767
174.94.79.203 63317
83.84.130.254 2302
88.203.213.216 9463
173.174.10.130 39909
114.24.151.183 8262
121.164.15.29 13396
125.26.125.11 16915
95.130.12.19 61050
95.79.35.108 54704
62.30.225.190 10398
79.69.156.88 11179
76.28.227.60 10277
69.249.116.97 60199
118.100.44.109 48673
114.47.173.140 12818
79.116.217.129 36525
64.46.21.119 30393
209.82.182.182 46512
95.56.18.8 55061
24.210.149.136 45504
189.110.174.160 42176
210.159.160.128 43535
119.179.53.14 16001
212.63.215.33 49001
78.61.116.247 56061
212.80.48.31 11175
77.49.170.106 30929
211.187.166.100 46368
186.45.162.37 54458
84.52.32.176 22994
89.34.93.54 23540
213.151.5.123 21520
173.72.137.187 27512
212.75.18.238 9486
212.21.20.244 24825
95.7.164.167 23502
116.0.246.100 11209
58.153.12.250 5067
77.126.4.157 63977
79.81.134.243 12275
81.89.88.35 20576
188.19.198.174 9853
118.233.55.189 14280
95.155.118.39 9334
83.97.66.151 12608
202.125.62.131 7444
61.57.105.113 22728
81.82.115.46 43952
79.111.74.223 45987
60.56.221.89 1069
109.74.209.168 62393
76.224.27.8 56053
79.163.179.77 26850
189.32.67.235 63258
75.84.157.242 15877
142.177.246.95 59112
116.2.32.161 20124
188.126.46.50 44950
95.179.25.105 20206
95.68.47.164 30021
58.123.157.201 26652
201.153.228.202 21677
121.44.92.49 46001
80.98.231.47 26348
77.81.214.54 55140
188.2.177.127 18893
77.106.248.215 61010
76.189.218.104 31714
92.40.218.25 17436
79.11.74.201 25511
124.217.18.33 52665
110.139.49.2 10021
116.75.93.225 17753
91.154.247.194 47519
85.157.34.95 39877
72.12.147.238 48200
87.207.198.164 57380
76.88.103.96 6688
69.156.182.48 9745
174.118.75.21 57528
78.131.114.243 35625
178.162.183.226 6821
85.120.227.7 39679
77.108.227.234 46150
67.21.102.65 61696
90.20.253.243 17134
77.106.112.192 63044
89.132.70.154 54892
80.190.139.91 6892
89.228.34.41 11402
99.16.45.162 58728
114.169.35.228 10609
119.247.254.79 5294
62.194.214.11 53956
86.140.220.164 63805
89.209.84.223 45645
69.61.67.154 51413
71.176.151.158 34312
87.252.246.164 10004
76.83.2.223 51867
174.100.244.175 32360
174.6.184.150 55074
122.116.144.204 6881
188.126.95.124 51422
178.40.80.76 14409
71.167.112.211 6881
204.210.194.241 6881
99.0.82.216 51494
109.124.16.234 11636
220.131.73.187 20718
178.88.8.252 56292
83.87.238.214 6881
87.78.183.103 24204
92.249.133.6 6754
81.225.216.54 53358
89.166.108.48 47175
109.194.46.208 80
24.252.70.24 52516
78.154.10.6 35981
99.1.110.3 22440
201.53.55.59 61292
95.58.92.65 48802
188.134.14.120 9089
78.72.106.34 53188
89.178.134.24 64389
76.215.117.211 51413
114.27.89.171 43349
80.99.42.137 10566
187.20.103.130 16333
213.85.141.144 46456
84.86.167.83 49250
85.186.48.10 25274
70.48.43.93 59364
94.31.232.73 47220
24.12.33.224 25976
114.154.228.24 14512
202.67.20.232 13380
94.15.164.174 45657
151.56.153.203 10006
92.243.177.118 26338
95.71.69.196 25226
98.117.36.191 56023
209.222.54.23 6881
79.141.52.134 48614
82.4.38.3 60580
77.160.150.63 12348
95.132.188.142 16747
89.123.135.44 12967
24.242.52.51 41199
84.3.164.209 38059
67.61.48.132 51772
75.51.92.53 46369
61.56.132.76 23439
112.104.6.195 21025
78.116.106.245 29797
62.205.245.195 43207
188.24.228.246 48433
188.241.183.77 41892
95.78.151.107 28055
91.144.104.160 40122
203.135.35.68 16058
94.180.34.231 18040
216.186.213.183 34057
182.88.83.202 6881
188.163.76.190 51413
77.71.45.107 63222
71.63.16.85 44949
68.215.227.132 50513
62.228.103.223 11249
219.112.140.25 16297
118.168.199.192 21018
89.103.74.81 11790
77.110.201.72 55144
87.21.255.123 32743
72.39.132.149 11229
178.49.20.218 42235
87.121.209.168 27230
118.108.135.76 22708
112.144.249.69 17601
85.210.192.179 53929
95.143.216.174 25887
95.43.73.227 25933
208.70.61.203 18073
70.178.206.42 24881
189.24.23.171 60416
62.201.119.41 61849
87.206.75.146 6881
78.176.207.54 6881
78.163.164.237 24362
99.190.51.250 59551
76.252.236.215 19134
98.242.28.163 26145
99.50.200.151 53564
220.98.144.232 22922
79.113.121.141 35771
98.148.246.127 50300
142.68.210.47 63653
218.168.225.229 22678
88.162.153.3 45698
109.87.83.228 48931
92.104.49.179 8500
173.32.63.117 61054
87.121.173.150 6148
83.251.66.66 65052
91.154.137.162 11984
80.171.58.170 22797
94.27.109.220 36053
67.215.242.138 6881
82.149.25.41 46820
116.82.89.250 25571
60.50.82.192 12787
187.114.133.241 10549
109.120.6.96 21469
92.124.180.230 23079
24.19.253.77 48092
58.190.47.190 27512
219.116.160.55 25208
94.123.195.173 17434
125.54.101.116 57138
85.230.109.209 6884
92.84.191.232 10293
174.50.54.21 32019
99.229.109.124 6888
87.110.153.41 56759
178.187.66.20 17438
89.218.103.57 19107
114.44.18.94 1529
109.111.152.211 35691
77.122.1.218 30237
82.56.51.220 59015
82.245.238.156 39545
68.44.185.187 29888
83.217.190.31 39457
81.201.56.15 6881
188.186.68.15 42452
109.160.57.143 11947
151.57.36.222 57980
95.59.24.64 26897
78.13.96.106 9091
194.44.203.120 60457
86.63.247.225 14760
24.11.181.218 54587
68.40.4.78 38131
70.26.98.163 10009
187.104.240.6 27396
41.227.4.6 53989
69.221.61.72 63861
86.7.2.171 25589
70.73.113.97 28081
188.212.192.150 44909
82.246.253.38 6900
66.227.154.68 55316
210.50.200.115 6881
89.211.201.1 47214
71.145.142.137 44293
109.60.217.204 9000
94.241.206.69 20091
88.135.131.100 58407
98.179.26.65 10197
180.146.24.30 24733
94.66.189.31 34843
125.26.41.6 44723
77.50.185.98 45240
193.43.222.175 15977
24.34.126.186 59769
115.87.124.125 53022
67.177.209.198 32814
93.102.81.243 20634
62.121.85.134 6881
67.163.87.22 6881
173.173.24.204 17165
189.19.28.184 2042
84.100.62.233 52448
88.169.213.101 35608
109.255.144.87 8080
217.131.178.155 31638
193.43.255.89 12451
173.57.57.106 41416
94.62.199.171 15566
71.177.102.167 37973
59.27.33.209 51801
89.178.242.209 27670
86.132.130.195 16438
76.108.128.141 58775
173.50.147.111 55669
67.240.191.70 53081
118.160.53.83 12731
216.138.216.227 49001
77.93.16.43 35431
178.82.201.203 12055
68.62.10.72 22867
88.177.195.185 20299
187.16.62.58 63388
121.80.39.231 18252
213.112.106.243 18786
79.113.182.121 42808
88.184.85.157 40478
82.119.65.229 41614
24.35.86.183 48539
67.183.139.6 29721
121.124.190.173 50282
117.194.194.73 13257
110.175.157.60 12000
93.102.129.104 36854
92.104.22.153 6881
68.203.251.86 18992
173.51.127.134 33785
98.232.90.6 53436
59.98.161.236 62056
201.87.32.172 36138
88.115.78.139 15273
123.117.107.29 19970
93.96.190.204 6883
83.248.90.115 53778
78.96.174.224 60387
68.40.87.11 37253
70.178.210.213 38087
77.101.133.246 14789
115.143.47.172 30429
93.100.92.224 27243
80.80.153.98 11832
91.206.4.9 3333
188.35.8.236 62459
86.107.79.233 49905
24.22.195.49 6881
76.101.135.11 20009
222.164.18.139 6881
193.106.25.130 57020
79.107.183.240 45683
71.229.83.233 45682
76.88.94.229 37557
76.21.110.223 51413
99.40.159.122 25946
88.173.24.47 41595
67.149.36.107 40347
201.155.152.51 10196
118.128.22.37 37251
95.143.25.198 47616
92.144.60.92 13751
86.197.129.179 47067
99.66.5.48 21364
99.48.229.94 25361
121.254.45.84 6800
188.248.58.21 50340
95.26.55.82 59164
62.221.151.184 20536
109.201.74.159 10207
98.254.244.165 56359
203.185.36.12 19872
210.73.1.92 12469
218.171.240.219 10236
173.73.187.215 37840
86.10.229.246 27857
119.247.45.173 10745
79.113.175.185 50877
95.31.11.189 6886
90.49.27.240 50510
188.4.197.57 59491
84.101.189.175 19015
90.180.166.149 6880
67.189.42.213 53943
113.199.242.93 35720
183.179.97.20 24840
121.45.215.192 58823
121.219.253.112 31161
118.137.194.171 26705
210.6.173.121 14972
87.194.243.159 64670
81.236.226.106 6882
83.77.171.200 15846
84.52.63.250 14255
67.215.242.139 6881
84.246.95.179 43652
88.222.154.187 62265
111.243.28.27 55276
122.164.144.53 18463
210.6.181.220 24282
91.153.197.239 2104
77.210.249.40 14915
109.86.76.157 47312
82.193.158.49 8807
115.43.165.207 4713
94.41.128.202 49440
83.254.22.62 28881
62.21.16.139 51172
147.102.102.94 62957
62.98.164.48 10950
117.194.32.225 60090
187.57.200.195 33839
190.177.176.192 49799
88.181.170.74 53822
97.97.117.10 38628
97.120.33.227 57680
61.4.170.187 17790
78.144.120.92 20965
70.139.176.169 27008
92.115.180.186 35691
174.142.32.120 51413
97.85.57.37 34092
84.90.10.205 24820
83.149.3.23 59982
98.14.97.232 36193
98.192.164.25 17489
210.124.128.139 33819
195.234.110.226 39347
99.9.186.124 58889
115.242.8.83 9388
88.189.81.247 14965
87.194.85.120 50941
84.50.22.179 63089
173.75.218.211 63205
122.118.67.231 23915
83.9.39.33 22798
94.69.249.98 48057
86.13.80.190 51326
88.106.69.215 11924
212.242.219.216 47000
95.76.50.171 19698
88.89.180.142 10766
77.45.166.176 32802
24.14.73.12 40442
123.203.168.108 16828
110.4.246.105 15045
88.215.184.26 52757
74.68.145.105 11524
112.70.90.34 7793
89.216.145.232 57343
86.207.79.244 19560
67.86.153.146 61010
92.83.127.98 18709
116.15.128.30 9998
203.59.10.85 22847
182.93.10.208 13054
79.17.30.127 32896
123.118.137.119 25421
219.175.138.61 23739
95.96.188.23 12400
188.134.67.102 6882
24.98.183.64 57540
93.123.41.127 23436
173.87.8.115 22866
200.29.72.19 46935
189.19.100.69 1224
220.102.166.142 27156
81.106.247.102 19244
82.25.111.214 21311
193.201.198.253 63408
94.47.188.106 56342
173.71.152.93 50989
70.119.159.158 62727
86.176.212.56 53046
74.78.254.79 55775
124.37.161.214 10990
123.204.252.197 10037
78.233.97.234 28751
78.106.52.107 15048
89.211.154.147 57399
78.92.20.255 14850
76.22.26.195 10269
60.46.193.129 20326
89.132.136.252 51385
122.217.69.120 21438
24.184.162.88 20212
71.139.186.245 31114
93.94.21.27 15252
87.70.142.8 15960
98.135.71.79 29008
117.47.90.194 10016
99.139.154.78 8877
85.12.239.118 64317
76.65.18.45 7700
87.224.254.21 25388
93.84.84.155 51757
84.124.205.238 23020
221.46.51.137 22507
213.16.120.166 54701
92.81.249.11 11185
77.54.70.32 35815
60.244.140.57 12687
109.165.40.174 23806
147.46.216.167 50410
99.57.47.134 19965
180.25.22.176 40005
71.12.16.186 11422
24.49.177.89 40029
88.141.135.252 58810
92.112.66.105 55311
111.249.218.164 56509
68.149.168.121 64750
41.223.241.48 38494
80.99.189.105 50001
95.32.38.47 31175
213.125.29.122 6881
92.28.148.131 22902
114.42.222.199 22443
175.115.187.64 13038
114.44.107.200 17500
81.50.148.235 64081
88.230.2.13 41680
60.49.48.177 21184
86.43.195.228 39164
88.237.29.153 14665
86.126.237.42 49627
68.37.160.28 29734
123.123.0.174 16330
84.215.70.237 25116
200.118.51.152 23106
92.62.116.14 38298
189.115.242.12 16373
86.126.244.83 10358
93.86.94.198 12077
220.134.70.7 57682
81.101.108.205 62082
80.48.112.175 24917
94.27.95.56 25376
41.239.99.14 16942
89.190.216.86 53241
58.152.99.134 16001
124.181.115.135 34574
110.226.38.196 11614
117.254.176.138 24325
67.164.200.224 40281
94.125.247.162 22331
213.130.92.78 32973
70.26.64.139 26358
219.70.171.198 18038
189.78.31.162 39736
86.184.173.124 63265
118.170.7.23 26814
186.45.139.74 12756
116.88.194.226 8883
114.47.171.209 21087
76.177.235.15 13961
178.164.177.154 8929