diff --git a/README.md b/README.md index 85dc2a2..1fd03ad 100644 --- a/README.md +++ b/README.md @@ -27,57 +27,99 @@ solidity_flattener --solc-paths=zeppelin-solidity=$(pwd)/node_modules/zeppelin-s Example: "1510291574","1610291574","100000000000000000000","100000000000000000","0x0039f22efb07a647557c7c5d17854cfd6d489ef3" - startTime: `Friday, November 10, 2017 5:26:14 AM ` endTime: `Sunday, January 10, 2021 3:12:54 PM ` cap: `100 eth ` minimum: `0.1 eth ` vault: `0x0039f22efb07a647557c7c5d17854cfd6d489ef3` -4. Let investors send money to contract's address OR to send to `buy` method (`0xa6f2ae3a`) +4. Whitelist investors by calling `whitelistInvestors` with an array ['0x0039f22efb07a647557c7c5d17854cfd6d489ef3'] +5. Let whitelisted investors send money to contract's address OR to send to `buy` method (`0xa6f2ae3a`) +# How to whitelist a lot of addresses in batch +1. `cd scripts` +2. `npm install` +3. open `.env` file and modify settings: ``` -Contract: Presale +PRESALE_ADDRESS=0x6F3f79941f89E03D4aF9bDb8BE0623DC24F2bef0 +UNLOCKED_ADDRESS=0x0039f22efb07a647557c7c5d17854cfd6d489ef3 +RPC_PORT=8549 +GAS_PRICE=0.7 +``` +4. run parity with unlocked account from which the deployment will happen. It has to match with your .env UNLOCKED_ADDRESS: +``` +parity --jsonrpc-port 8549 --chain kovan --unlock 0x0039F22efB07A647557C7C5d17854CFD6D489eF3 --password $HOME/FILE_PATH_TO_YOUR_PASSWORD_FILE +``` +4. run `node whitelist.js` + +# Test result and gas usage +``` + + Contract: Presale ✓ constructor should set owner - ✓ can not buy if not initialized (22623 gas) + ✓ can not buy if not initialized (21411 gas) #initilize - ✓ rejects if not sent by owner (25358 gas) - ✓ sets values (131519 gas) - ✓ cannot initialize twice (157189 gas) - ✓ startTime cannot be 0 (25102 gas) - ✓ endTime cannot be 0 (25166 gas) - ✓ endTime cannot be less than startTime (25358 gas) - ✓ cap cannot be 0 (24910 gas) - ✓ vault cannot be 0x0 (24078 gas) - ✓ minimumContribution cannot be 0 (24910 gas) + ✓ rejects if not sent by owner (25424 gas) + ✓ sets values (131614 gas) + ✓ cannot initialize twice (157350 gas) + ✓ startTime cannot be 0 (25168 gas) + ✓ endTime cannot be 0 (25232 gas) + ✓ endTime cannot be less than startTime (25424 gas) + ✓ cap cannot be 0 (24976 gas) + ✓ vault cannot be 0x0 (24144 gas) + ✓ minimumContribution cannot be 0 (24976 gas) #buy - ✓ cannot buy if not value is 0 (64231 gas) - ✓ cannot buy if not value is less than minimum (64231 gas) - ✓ can not buy if time is not within startTime&endTime (116233 gas) - ✓ can not buy more than cap (64236 gas) - ✓ happy path (178974 gas) + ✓ cannot buy if not whitelisted (21411 gas) + ✓ cannot buy if not value is 0 (63333 gas) + ✓ cannot buy if not value is less than minimum (63333 gas) + ✓ can not buy if time is not within startTime&endTime (111666 gas) + ✓ can not buy more than cap (63333 gas) + ✓ happy path (244544 gas) + whitelisting capabilities + #whitelistInvestor + ✓ cannot by called by non-owner (23450 gas) + ✓ whitelists an investor (64399 gas) + #whitelistInvestors + ✓ cannot by called by non-owner (23666 gas) + ✓ whitelists investors (119844 gas) + #blacklistInvestor + ✓ cannot by called by non-owner (23582 gas) + ✓ blacklist an investors (139579 gas) -·-----------------------------------------------------------------------|-----------------------------------· -│ Gas · Block limit: 17592186044415 gas │ -·········································|······························|···································· -│ Methods · 1 gwei/gas · 297.51 usd/eth │ -···················|·····················|·········|··········|·········|················|··················· -│ Contract · Method · Min · Max · Avg · # calls · usd (avg) │ -···················|·····················|·········|··········|·········|················|··················· -│ PresaleOracles · buy · - · - · - · 0 · - │ -···················|·····················|·········|··········|·········|················|··················· -│ PresaleOracles · claimTokens · - · - · - · 0 · - │ -···················|·····················|·········|··········|·········|················|··················· -│ PresaleOracles · initialize · 24078 · 131519 · 46359 · 10 · 0.01 │ -···················|·····················|·········|··········|·········|················|··················· -│ PresaleOracles · Presale · - · - · - · 0 · - │ -···················|·····················|·········|··········|·········|················|··················· -│ PresaleOracles · transferOwnership · - · - · - · 0 · - │ -·------------------|---------------------|---------|----------|---------|----------------|------------------· +·------------------------------------------------------------------------|-----------------------------------· +│ Gas · Block limit: 17592186044415 gas │ +··········································|······························|···································· +│ Methods · 1 gwei/gas · 307.55 usd/eth │ +···················|······················|·········|··········|·········|················|··················· +│ Contract · Method · Min · Max · Avg · # calls · usd (avg) │ +···················|······················|·········|··········|·········|················|··················· +│ PresaleOracles · blacklistInvestor · 19735 · 23582 · 21659 · 2 · 0.01 │ +···················|······················|·········|··········|·········|················|··················· +│ PresaleOracles · buy · - · - · - · 0 · - │ +···················|······················|·········|··········|·········|················|··················· +│ PresaleOracles · claimTokens · - · - · - · 0 · - │ +···················|······················|·········|··········|·········|················|··················· +│ PresaleOracles · initialize · 24144 · 131614 · 46431 · 10 · 0.01 │ +···················|······················|·········|··········|·········|················|··················· +│ PresaleOracles · Presale · - · - · - · 0 · - │ +···················|······················|·········|··········|·········|················|··················· +│ PresaleOracles · transferOwnership · - · - · - · 0 · - │ +···················|······················|·········|··········|·········|················|··················· +│ PresaleOracles · whitelistInvestor · 23450 · 64399 · 50749 · 3 · 0.02 │ +···················|······················|·········|··········|·········|················|··················· +│ PresaleOracles · whitelistInvestors · 23666 · 119844 · 87785 · 3 · 0.03 │ +·------------------|----------------------|---------|----------|---------|----------------|------------------· - 16 passing (2m) + 23 passing (3m) ``` # Testnet deployment +===== +## Latest Contract deployment +https://kovan.etherscan.io/address/0x6f3f79941f89e03d4af9bdb8be0623dc24f2bef0 +===== + +## Previous deployments with old source code: + Contract Deployment: https://kovan.etherscan.io/address/0xb9b49e21e77d2d89a9e4c7ef4f684ad2a4e99663#code Called Initialize by Owner with params: @@ -116,4 +158,3 @@ https://kovan.etherscan.io/address/0xec1afb89f87cb0ac296cad6e73dbeeab5b006050#re Send 0.1 ether to get rejected: https://kovan.etherscan.io/tx/0xd859be5b5b58303a4cbc61902f8927efa9de96a3739ce39a18e1f6949a154c2b - diff --git a/contracts/PresaleOracles.sol b/contracts/PresaleOracles.sol index 8c30d49..666fa42 100644 --- a/contracts/PresaleOracles.sol +++ b/contracts/PresaleOracles.sol @@ -18,6 +18,8 @@ contract PresaleOracles is Ownable { uint256 public totalInvestedInWei; uint256 public minimumContribution; mapping(address => uint256) public investorBalances; + mapping(address => bool) public whitelist; + uint256 public investorsLength; address public vault; bool public isInitialized = false; // TESTED by Roman Storm @@ -46,6 +48,7 @@ contract PresaleOracles is Ownable { } //TESTED by Roman Storm function buy() public payable { + require(whitelist[msg.sender]); require(isValidPurchase(msg.value)); require(isInitialized); require(getTime() >= startTime && getTime() <= endTime); @@ -81,4 +84,30 @@ contract PresaleOracles is Ownable { bool withinCap = totalInvestedInWei.add(_amount) <= cap; return hasMinimumAmount && withinCap && nonZero; } + //TESTED by Roman Storm + function whitelistInvestor(address _newInvestor) public onlyOwner { + if(!whitelist[_newInvestor]) { + whitelist[_newInvestor] = true; + investorsLength++; + } + } + //TESTED by Roman Storm + function whitelistInvestors(address[] _investors) external onlyOwner { + require(_investors.length <= 250); + for(uint8 i=0; i<_investors.length;i++) { + address newInvestor = _investors[i]; + if(!whitelist[newInvestor]) { + whitelist[newInvestor] = true; + investorsLength++; + } + } + } + function blacklistInvestor(address _investor) public onlyOwner { + if(whitelist[_investor]) { + delete whitelist[_investor]; + if(investorsLength != 0) { + investorsLength--; + } + } + } } \ No newline at end of file diff --git a/flat/PresaleOracles_flat.sol b/flat/PresaleOracles_flat.sol index cdad4e0..99171e6 100644 --- a/flat/PresaleOracles_flat.sol +++ b/flat/PresaleOracles_flat.sol @@ -115,6 +115,8 @@ contract PresaleOracles is Ownable { uint256 public totalInvestedInWei; uint256 public minimumContribution; mapping(address => uint256) public investorBalances; + mapping(address => bool) public whitelist; + uint256 public investorsLength; address public vault; bool public isInitialized = false; // TESTED by Roman Storm @@ -143,6 +145,7 @@ contract PresaleOracles is Ownable { } //TESTED by Roman Storm function buy() public payable { + require(whitelist[msg.sender]); require(isValidPurchase(msg.value)); require(isInitialized); require(getTime() >= startTime && getTime() <= endTime); @@ -178,5 +181,31 @@ contract PresaleOracles is Ownable { bool withinCap = totalInvestedInWei.add(_amount) <= cap; return hasMinimumAmount && withinCap && nonZero; } + //TESTED by Roman Storm + function whitelistInvestor(address _newInvestor) public onlyOwner { + if(!whitelist[_newInvestor]) { + whitelist[_newInvestor] = true; + investorsLength++; + } + } + //TESTED by Roman Storm + function whitelistInvestors(address[] _investors) external onlyOwner { + require(_investors.length <= 250); + for(uint8 i=0; i<_investors.length;i++) { + address newInvestor = _investors[i]; + if(!whitelist[newInvestor]) { + whitelist[newInvestor] = true; + investorsLength++; + } + } + } + function blacklistInvestor(address _investor) public onlyOwner { + if(whitelist[_investor]) { + delete whitelist[_investor]; + if(investorsLength != 0) { + investorsLength--; + } + } + } } diff --git a/scripts/.env b/scripts/.env new file mode 100644 index 0000000..039a523 --- /dev/null +++ b/scripts/.env @@ -0,0 +1,4 @@ +PRESALE_ADDRESS=0x6F3f79941f89E03D4aF9bDb8BE0623DC24F2bef0 +UNLOCKED_ADDRESS=0x0039f22efb07a647557c7c5d17854cfd6d489ef3 +RPC_PORT=8549 +GAS_PRICE=0.7 \ No newline at end of file diff --git a/scripts/ARRAY_OF_ADDRESSES.json b/scripts/ARRAY_OF_ADDRESSES.json new file mode 100644 index 0000000..9be1ea0 --- /dev/null +++ b/scripts/ARRAY_OF_ADDRESSES.json @@ -0,0 +1,1487 @@ +[ + "0x528619ca62dd1a65d103aeb2301bfc1b2e9582f2", + "0x8336968572ae01e15da255164946ee5725cb84a9", + "0x3505b070a6677dd72938db04b30a0e12400f06ea", + "0x7533f14c1d6c5e4d5a20418ad3837a71dc3bf482", + "0x5354ec07ca3c4b8fbeadd1842d0d0febfd7e066a", + "0xcbfc619de72a0f27dd12e58c3860f5e336b24bb6", + "0x361a17354f1fd1d07b22135d3e2e04c434309c74", + "0x8de75337374ed1eb09050f4f59dc202564477eb0", + "0x13cd22c54265787e9d29e65e6234b6fc8e1786fa", + "0x17880331dc3ee2a43964548d367e25b93a646fc4", + "0xa677f469c2661cc7dd73b07a8589c79ffe4f7f32", + "0xc594cdbb8273f544920cfe1a246562c47c2a8d40", + "0x2f91f7e7165905373ab25cfb1458d1e7144e94bd", + "0xab26dffb15804a8d7dbdc6013fc1bd8297304e25", + "0xda0e8960ad73b8aa5640753150a626cd226cfe5d", + "0x903b806ad3c40af2c77101355c640a20dc552fbf", + "0xd13b31ac5603c07279469f9a703ca3c66dcd8c33", + "0xe7bfab49c5612c60edbf5a28f9d9d73b0e3975ae", + "0x1253e984456c00ec9ae0814a54f3d1d5357eb68f", + "0xf0ab20227995229d8aa581ae0b2b1885f3ac9632", + "0x38bfab995ae58a009b30e8f79cc08c768d403e44", + "0x07fcd4491e7e93de47a4b4233d450eaad17d2d0c", + "0x2c335498511b633e6c7c582d837735dc1ed628f8", + "0xc62681416859597678ae52d0fb04d745a58463c7", + "0x487ef09fce5f1b6873be52e70d1d1bd1deab6dd9", + "0x235470c7824ce2a8583c40e7c9bdc682804dcbfe", + "0xdb2c1601f0feb76b26d720af2fbe92edb55d3bf0", + "0xcce5be565f37586bfcdf2a940026b6d66bbbe1c8", + "0x5f3cc2bca657a3ca864a49e7f3a8896d6898addb", + "0xa408eba487d5dffff38651294e1a89f4e3d925a6", + "0x84679e9eaace2cac0c88c4aa723cb2495f01abad", + "0x29cffb6ab33978fb6c56b837b67c5987660562a8", + "0xa22066eca1a417aecb770f9d1be48ee26673d32a", + "0x049e44ede8ae8fb2d4cd6055f18ead4f7e039ab2", + "0xba4e80a192c8472b3f597a71f61f03acb26cccc4", + "0x03b82245483815300c14e8731e1ab6558a7f97cc", + "0x21550cc1f0c26093f60e1277147e9bda946d52dd", + "0x8850df9235e722d58df80877e05ab59f91176e2c", + "0xbf60dd2c0875c2fa73a88fb46ab8149958aa5d3d", + "0xdcd454ea4b9dfe9663263821031e1fd3ab420f20", + "0x9b200f1d18a700acffc3b1b81451f25384748e33", + "0x7cf1e9ee4017004a3607958b924eea86763c56b9", + "0x8c3c524a2be451a670183ee4a2415f0d64a8f1ae", + "0xdbe4d8ceb1e98a7a79f4c4f75fe62c94fdfd2874", + "0x3c5aac9f7a8d5a8bfb0f8b0f56af191e8273586d", + "0x00618874d5d90cf97cca544ae20835f3ba351ad3", + "0xd43b3f9ef4cd0e3dcdcbc6f52ec5405eaeb8f9ae", + "0x60ba6c590883ab3c06289eff076f96b80065e3f5", + "0x91ee7e6179b1ce84cff129868d05628ca0ecab8e", + "0xabff30dccd2db83435621e26f3203f327a829952", + "0x417fd65560a8168ac2fd45c67d8923f07d3fb7f3", + "0xb0d2ce3e2bfbc1a47dbfe5b3eef5335284dfeb49", + "0x3b3adc072eb0d890d7ac2909b65c88503386fc51", + "0x13e34d225efd99a669f68f12742f223563045dfd", + "0xbb860c249427a38e8aa73d93ea6f7ba63a86ff02", + "0x888e785002a39726e23b673e2466f9bb1bd7db76", + "0xf217eda6cc59d4f68b9748f85177a287c2a01bb3", + "0x3a54bd258136123c6f9bfc555ac576371e0a94a3", + "0x007d8a795850ba1e0bce32f969c1ba11335338b9", + "0x0ab8e4d5e6d517ed58dbc795292c60496db4b7b2", + "0xeae9fed78b7e616b8a9802ab50a4467fc9570341", + "0xf96dee6569f6ac359669d51179d2e6094b5a84eb", + "0x7a32f1b6a70816a821ac38e1a11932c16a7b9c13", + "0xd82ab13c28b70d2a904e03faf15c48df1c970926", + "0x96d4bf8aa27e0007eaaf78472ff896a6ce4dd5c6", + "0xb84b52c89b8b1760bdfec29df6b0d45a3d1a99f7", + "0xa5a1bcb59c92dcb478535332daaf7ea86e34125c", + "0xd698b6da96b832ba8bb0e56698f2579dcc43dd4c", + "0x0cfaee31a5fa75438f7f0d592b38e7c7c9c6f67e", + "0xeefcd01087281d035ece6a3bc369eb3afafc4cec", + "0x09039a625a960df34e1b9f8164c839fee6b7d312", + "0xf6770969d954de4ac44daffab4a6c2f787662745", + "0x0e1653d0da5ffd5f4b59abb08fbd2a5c9ed3a2d8", + "0x28b77307b456d8b5aa5ff5de45c8ea1aeae65f1f", + "0xbdc4315271ea276ccd952609b2b2beb5148f8cc3", + "0xb875f205eb38ef3d0a1801aea1df08ae78933dad", + "0x2169dd9c4e535d359795a3064db1a1a837d74ccd", + "0xe26758a5c9f304689cef289acaa21d352f64eb62", + "0xbd8a2c8dd302f65af2184bb61314d97b682b4535", + "0xf78e198188c10c666cc71a6456e0d7d26cdfb29b", + "0x24446c32ea40d11f5f8ec8faad9b140c8ba1f50d", + "0x149cb2242f49575faf2178940f72ad04224f568e", + "0x00b6e79ba38c889a1ed3a2b7aeda45aa571d103c", + "0xa8f76f25b85d31077a067d3a053a59ba65ad3fcc", + "0xa2918c0f8c938d797d994ec2604150c3a192e759", + "0x3c0a94847e00117e2dc0ac61456dd75710642586", + "0x139ce4d1063e43d84e31bdb1a2e58d1b40f6f8cf", + "0x550c45bbb6f50ce9d87defbe7aea537fe7b6e6a9", + "0x7af47687bb952c4356b6837f14f8218ccbe261b5", + "0xc16f91bbeae6fd042d447e461fa41707528cd241", + "0xcf42d5778ebdebcb4761553e80480fd8149c46fa", + "0x40469b319db6c79b55c94f4276cdb5e8a31c0442", + "0xf929e583ed42e752c1d0376d7aecf994d5dc6ee5", + "0x05528ad35deea50d4b309409a04534ab8daa0e08", + "0x6c7816c8606531d3cc1f78f83b9cc9f3656a93ec", + "0x1e1d8c59774652bc2c55c4ea537764954a33a66f", + "0x689107323fdd0062473b8ccb5cb0fc86705814a1", + "0x708717a2f20af35f5b58f5f3fa49aa6f63677fb9", + "0x0ddacd36795c8ecba353c6d292b020dcb7b8e690", + "0x5abc435796a099d53425770848db43a42772c56c", + "0x6a27a0ad9c8431c51771a8d845f2573560e646fd", + "0x7635c9e2b37f084e8e0fc3e1eb304a90c2027dc1", + "0x12007bf5ac7ddf191a10d13c58a6028ddbfe468a", + "0x102c54bd5a536258ba739fbfad46e4a1a4498950", + "0x34407418cf3d3b0cc57bd77a568268a29509dc7d", + "0x312d5247075fe9b84959450f317b57bf528bad98", + "0x451c9a8defb694ba742343d5bd5da0d7fc8f6ddf", + "0xe9d1b994cba71aec2c7bff1368024bbf53c2f1b5", + "0x3ef647cbc82c12ac649660a1ba5d35134a8d21c5", + "0x450d22b92af09c1fdcc744c2f6d079f24ea950ba", + "0xcb726f13479963934e91b6f34b6e87ec69c21bb9", + "0xd8c6e648f23c95d36b5938494ee8ecdfae770e14", + "0xac21b02fc49e4040c159e21a6d3c1649c7e836a9", + "0x9744e4daccdf1474421177b015ae8cc979942f50", + "0x874daa671530339c268792fd1edd37b1241de717", + "0x774d1ae972cde17559835c87efe70106098b037e", + "0x1ab5e1cd1acb276f9b175bd7545f77291ff53c0e", + "0x2d02c276424d75876a800a0375b9ab78d010ad07", + "0xfc06eb44bec8b15baeff98fb93b4d4c0e4be8404", + "0x91d817c004730faa87d8f20a4b2c11a1026f00b7", + "0x9aa21adc92c75dfda268dba00c0199353184baee", + "0x3b2e4532bd14908a10e8e04f891c2bc532c00586", + "0xc44a7137ab9770a22a97bd201136fec20bb5f0af", + "0xbae29b6fd54ff70db6b17b09227d0fc8b0f7ac4c", + "0x5438f09a0cb551169e7817b6fcf9948f02f7b508", + "0x8c693425c7ab4f02bb64d24334b8e48e23f4356f", + "0xcbe0a34bd5f83627e916ceb08e3d66e2b1eb5c0a", + "0x366adc50dfea3f19ac3f7c14871a0c9b095d0179", + "0xa03e17f1609ecf17871e56aac11447719b6aa86b", + "0xe36e3223157a4b96e13360fc2a1b5ac3dbbff4e6", + "0x4dd0fbf10f11d6dca11a802257bf80a9fef1ac8b", + "0xaffd31d6cb3745187aea3012f430e16c94ea7e05", + "0x83b79cb8b25295786cdea116f79e8b6f0893cff8", + "0x5b2d7d6308eac9e326b9398baf8ba054b191783a", + "0x9973919bfe3dc4ad494f7d3bb051c089a970d8c7", + "0x3feb8680f17ff29a0be08b4cb6a7cfdb75e4399b", + "0x2d73bce5ec3c9e9ca969e0b8ab1b374efdaa29b1", + "0x8a5fb33aaf88134795d3a383bd04aa8116e6ee81", + "0xcab30dab3079cad10bf7abd900f2c0fca967e51f", + "0x4cbe06ef97dd6365438b09498b6793407db65f0d", + "0x090bae5626844b995653c33497194cdfda98cd8a", + "0x86e4a0c486455a17031c099431f194dcf5d220d5", + "0xcc88fc23eee85dc2113148bd502d0f683048c0b5", + "0x39be8ca10ae4efdc961c1a21f6aca1ac7ae64380", + "0x6086b4fdc9a7509e641936557773545a995d54be", + "0x41640de9af4444a43c700d3a7dfd8e7fe58ff544", + "0xdb14c5e06d8974da7a9cdea2823b5455506697eb", + "0x6a26ad8e0d8819602360b9fa9ec13381b3e898f9", + "0x585c1e6816672d5cb8a6a89ac6dc1304034fcbb1", + "0x7e66be5d6a02959857e0996955f372b02aa74343", + "0x660ae5f2d0d084691335da8ddd3842e9f061c64e", + "0xa6ec70cc311575fc15cad6843c7bd5e0d177f7ae", + "0xd662ea25b3989a75b40df35adaf847e69c90f378", + "0x040324456e2486bc2d7265e8324d5ff0f8b0b65b", + "0x294fb1c067dd36e8ee543aafc9d6269810dd1c8f", + "0xff987e2a33bda238878a14ea409942b0444eb733", + "0xa42fe5fe7f47fd72b1770ed6e4b47d5a318d1b83", + "0x2ffa6dfc3424eea79bb759fe41e5c01d152057c6", + "0xfa77a18384082dc8f6318ce3a2d6b558177678e5", + "0x6bbec8a5390dd7831cff5399c8257ecc594508d7", + "0xac0bfb4afed2a24adc7b493b8481841aabdbadd8", + "0x62e4cbdb8ff22e6a6e65180afc9e27615fb0a887", + "0x50ac0c64344c878cb7f9a57baa96cca46a39b227", + "0x069e4cf2cd9c44495483400a84f68e834177afe4", + "0xc6edf29b34340a5acbe9d7e582d3cfa83f30c70c", + "0x625c7b9203f82c4cdf0f4153a9b5f68277ae7c57", + "0xa93ce80b12ac2fd16ba62921fa4b8b5ac0b2ecc5", + "0xc39941c257a77453b78a3453a411179c42cf6ae4", + "0xbbab2b25174677273b46a35fd45de6f6e88a19d0", + "0x7be6930e35e2b72f73b87c0929b131c8d512f4cb", + "0x0c0b6c1732dead2f5990acbb11d97a83e60f53aa", + "0xb7b3ecbc3fd793dd150b57c45d1518469e6fed06", + "0xd07a2c152b48aaa821e4ef78f88bc33a593f77c1", + "0x5141d4c0feabbf2d1455f66be0dd0ba60a88d8c6", + "0x3dcb641c9751e8871247c860fa21c3ed85e91611", + "0x7b6bd2e6122ae82b0b63557c7916437e386947ca", + "0x6e1460c450293256694ab411ba5386ca4c7d77e6", + "0x77c0016fea4b7c41cb7867518f23a5cde66f8cd4", + "0x89091a11b723788d852df161490788487fcc5006", + "0x32c6125e90e1138f784f982ff5de4f8bbb677078", + "0x330c9840a133fe01419af967b21f25f1843e0402", + "0x504996886ef295b4bb3d1386d78ec3e3d32bb43a", + "0xc11decc299141e912d3bc26068c7924cf1bf5997", + "0x035689ad65687ccef8f8d2d007a4681d6337b8ba", + "0xca322b1f78a123c0eeda24834e3667a0b5fcd0fa", + "0x89f2505a3ea260848c8b561577de51c598aee5f0", + "0x347da26faef323ca0c09feb00857ac3f7180bbb4", + "0x3207d221a81bff597962d2ad849fa8bbfcb74ec5", + "0xac545a2007f33b77fe5ebf06c32dc570e636ecc9", + "0x57f9c666ab7761c7c82d0792d9b27f13c24b7357", + "0xecbf59a8977a35459a913e5023c20b7166c17185", + "0x1f6308f0a42f23e0ca701ac07587eb6110e2bf11", + "0xe9f935b79afc9b4e282433f5723438bbc14a9114", + "0x65947124c369d33ec038f4fb8b371b0bea365ccb", + "0xaa45124cbaf9c3fb4fbad2eb7e0b2dfa3c13c8c6", + "0xef45218aff36e720b713d88f421eea2e052aa8ed", + "0x0a950b55e57cb7c8ea43c9312e31804e5315ad8d", + "0xa4eb90713ac647d884d4284c8a5c6da3338f7c84", + "0xf47725a7e0ea7f50008343b2cf96b073883ffdd0", + "0x5f95ade1739b34518e7e6e64c88e790b11c82641", + "0xc8d8737fff15b4e95d459375974556297dd069fa", + "0x4b712dee57a5152983e528c79220a88b6feb8906", + "0x4de6f16ac07ab7ab36fddc177134cc938f8cdcc5", + "0x88f9fc939e77b29567cfa1212b1a701284a8d5e8", + "0x21305e90d257b3c7891f7cd8ae4342b0699506dd", + "0xd77dc9753124309e07c35842b3e525af3bbeaee2", + "0xd46f10bad68fc19dd5810b5bffb73590b98165ce", + "0xef2363b007e540a2abcb246882a769a7cd6ca1fb", + "0x6378c50d8146280c57219e8642d3b1d9ed742021", + "0x1bbc03463e692740f9725a26ff35b8adea22a176", + "0x69a44aed4d8c1c747eca0f5fd1d7a2d54a5f38f5", + "0x3aeec9ddfa25e9b0557768d14e97f1594e42a91e", + "0x8f488eb5720314bc2c0dc4cc3a3219e2169c1950", + "0xc1c4d4d1cb3d9a4ae8cb99c8c2a1f965b7f19463", + "0x9688e30e7a78a7fb2ec28ec492194120beed5942", + "0xaf20875362aa6b395237e3777ae3872977d5cd03", + "0xf163ee4d2923657101f2f6dbd4ce67a7562f3018", + "0x62a6ca9c32286b60535a77a23f886685d5488521", + "0x5a3f001620b6e6ea6b325a120fb77c6470a46a34", + "0x445a8ee1a7d8274a56f45c3d9e96c33d73a09d9d", + "0x9abdefbabe7f459186b5cd58d17371b2e02ac8f8", + "0xa63420a5d5c47b137cc360e7a8900e7ee6313731", + "0x7544bf5283e934f816608badb0934f0f9e703b87", + "0x4fad48735f6fd6d601b50d6575185c0618a3ef48", + "0x13148f7a44f78415ba50e8d6a9d7f97ad5a5aff6", + "0xc2d36124ef743d19ea9ace7bb6bd3ab3165bf7db", + "0xca7d6e2129bb2827063ae15d57e7716aba39dc7c", + "0x8e7bd3dc5a41971455a7e5af99c3ab77766b964e", + "0xbed7106d98366a91b868616448f7446b9d254e81", + "0xc8d8059a6672518ddbcc6b69d4854d2d6c55314e", + "0x6aced5d666564aeabbc44209d23b495d13bc1ec7", + "0xa622c98e1bdd08b26a22a5287e6287fcfa4c8f7a", + "0xc614932daca7c90c0d1ae64b9be5a88806036ebb", + "0x6f8558b4c06b5c72e6fa5d6e2b9fc1a9ebb77fb6", + "0x30e6ba6f9ae4879015a80c5980103b887f3ddead", + "0x5e75e4c09de01e8042ddbbd61c51f8df2b3f9797", + "0xf722bee1c7447b475ac0ad7e129e85ff88bae2b4", + "0x59112a758dcb3adc232a9fb4bbf94ec99c87308e", + "0x5fade72484186b693f18fccabbc727df2299e34c", + "0xf8d2effe4d4ea1a4a5aa1ead11f439ccfb2e9eeb", + "0xe7fbd1539d711cddfae9a08a537900a88691eeb6", + "0xdea74a39b45cc48eafacddf4d7f93b1c62f0ab53", + "0xc46a5354ba311ec34537182b060bc465cd39ef47", + "0xde7b89667dc3311c45179aa6223d9592053dc4c8", + "0x25016a1e07612076e815c25da3683cec069af40d", + "0x60c2ccf26a29ccfb39f009f526f8fbe4b28922a6", + "0x2d6b68c9cb99ca9b3ac53a67644d20a4e987adf1", + "0x945a857a0fcce8870e5b04b8f64824e57b920f19", + "0x3095361b409edb002f991e1a7c5a31da17ea1410", + "0x456024868e5c95e18aa4f05e75b265a1f190267d", + "0x9294d596000626d09b68884a986a1dda882a6cd9", + "0x1e4cabbf7b19a680d14706b2aff5b536b27225f4", + "0x1292eb032bdce92318f7e20e259f8ee74df4e1a2", + "0xec457de9f4e4eedb4acfd6928ecedfeda2ef9148", + "0x08e5b0b460ad27cad0f60a8b645fa08fc36ca3d7", + "0x87a38a49d2fc0676749132eac73a6b60863d8f17", + "0x20a5c30d00548102b7f06f871f63f0cc94d28017", + "0x2b094a58153775e4099b621d31ab14c70f998db1", + "0x7fbe30cf46ceb7891726159eeeb91ec9ff8fc69a", + "0xa3f59ebc3bf8fa664ce12e2f841fe6556289f053", + "0xe5d4aafc54cf15051bbe0ba11f65de4f4ccedbc0", + "0xf09dd502c61a7dd1ece5b86eca6da2d01488e54d", + "0x81fefc2388b971d5fafb9a8688c743f710b96d8c", + "0x597bbe9d5436dec3b42f1c27a2934ecafbc92a48", + "0xad56bbf1cbead2d2871a6517173e27943533afe6", + "0x45c556aff90d5fe6e91d24874a8036693cec18d0", + "0x7318c36d97f98514cb79a866e1ca731d9f11fc5a", + "0x7b0be4c198fa2bb5a71faecf7fee78d3aa7bf9b2", + "0x1b140fc79abf061211c0e2654716e71919572a56", + "0xfe04a678a433716e65e3f31fe6f03da75145805c", + "0x29faaf279ded8be2d089c286924027aa5c8e7afe", + "0xb40522bdaff09cb4757761d35411931dba2d8dc8", + "0x27075ecb08cab69b5c53d8908cc41861d1d5d982", + "0x2dd9b7ba6b8fc74e7c7afca6a05e8e07f600350a", + "0xe5d676df02b6e0eef771e6f908611bef40085df5", + "0x5abc732d0b4256fb4271bf77a9ca6a14a321b310", + "0x31eb6d8753dfd036404197d7ee628b85b464cc77", + "0x6d60019f86a314a6a379873fedac487fd79c83e8", + "0x7d3743fbe210816ff9789bbe806f5f271c2325b1", + "0x0c6017a327396b13ae14e9be46cb25c9bd31636a", + "0x6dcc3b595f842098cc9e52ca40eab7904374b65a", + "0x5546b1ffbac05f185bf5f527162ac4dd412b5ea3", + "0x57bef5404f80cf73248f87a0aec1a186df09b4fb", + "0xf8dbce81326c7bc920ae695753eb1ec704b6ec70", + "0x2dc06afb85fc9b5372917fe2ccbb0e88259a5fcb", + "0x849476bd03d430e16c282158b4c69d9e636df202", + "0xe8ceffc6ae42835069d121356602068b358ea549", + "0x4063a725d6fc25689ba66d9bcbee3bfa62f89bf4", + "0x4cf9faf73714b65b98557c822b6b514dfda0e339", + "0xc2beab150ff64ffd239aea9d7b7b502575e4fab0", + "0xc31d1da4c9ca879cf3245b821593761c784e15b2", + "0xbb5fce1afa8e2caa9ca8e13f88fbfe1d676d3723", + "0x3d51847413663696741ccc5081c1e9744b01c3e7", + "0x2eb8579c09b171f5f38210279c49944a86004fb5", + "0xeb084d13cfa87269b4e45703a61d6233f4229b5c", + "0x1c2c923a8168b607276b422ec05bb101b5579b41", + "0x91173abf04fafde2bee7839356a5784d1692cbbd", + "0x02f4d24f5d8afdd5b7bbeb6cd316ccf7f9515881", + "0x71d00b142eeadc58303fc6c3b9b9577fcb0cd381", + "0x96e30cb565128b06472e8782a3c35e0c01b3786d", + "0xeefc1227112447cc9471a2c74ef37c8e18c160c6", + "0x6723e655a5b99dc2267796f81d0d3303615bd040", + "0xb6dfa683805f794aae87fec0171742d4b1e5da1f", + "0x009e02b21abefc7ecc1f2b11700b49106d7d552b", + "0xee0717bfab61e234c62e10cc7a13a7c060e251df", + "0xf5e1167d8e691f48a6060432ce1caec4619a1bf5", + "0x00f07da332aa7751f9170430f6e4b354568c5b40", + "0x0f30c808069315b3b7dfbfe149c87448b50c6d8b", + "0xe47bbeac8f268d7126082d5574b6f027f95af5fb", + "0x9715a023e1a147ddba64f970b58c3cc095f6cb2a", + "0x3a9f21e5d65dc1a4027e9c2f46ad9d01e8f8a2f4", + "0xff7dee40fcce069f47e8a5fcec5da3c229667ea6", + "0x1330b7402f677e3adc774d13164ebbd9066ce181", + "0x902294cc2b7928d919792d878cf753749d3a5fbe", + "0x7f4a3148726e128e31eb2390916a3de40129ea59", + "0xb36aeb30b7a883497b75b8103c11c4f62ebdf032", + "0xf7d25953ca97f6739caabb99d17392253c85c1ac", + "0xfaf3a1ce15f2e222ee43f0eec7e465b32414ec52", + "0x21ade7de5cf8a34021ecc19e87de90564f5a7ba0", + "0x22a0105994c3f4ad8c3e78144e47a6eff9976377", + "0x7a3783b0d8ff05b71adb4435694bff6d6728c77a", + "0x5f136a6bf7cdee5d5ded6c919b48ae0b5f0e9d2e", + "0x52224c0ac49250f978617bef3488d533cf79aa08", + "0x8af73fa0df680db56ef2b50c6f669c11935129f9", + "0xd2e89790abacc3412ce328dee4a64007948f7c7e", + "0x33c2b1d7ec6cde77d04deba677d8057bd70f683f", + "0xa1b5c9011a6d97013d877b5e5b2f81a43ed56e2c", + "0x666091c3a15fcd4be857953d38d0b64a055c32ba", + "0x7db6ef114a60ac308afcec832dd8ffc9851bf9e1", + "0x49ef69ad25f2f37761fd336a6024360e243614f3", + "0xc48f74f5f710232eccdea452cc2d27c77e1926d5", + "0x111cc7d54f9ba9d9cc1dfeea6ca3c7d0b150392f", + "0xb850d72ebb986e35eccdd906ead05eab720288de", + "0x0fe11d63f27e28fbecdc5c922e8af14f53bca6ad", + "0x8a522342e7ba79f24edd6ce8309987b36c08121e", + "0xddbf7ec546d52eb0602abd14913d1a78814c41d6", + "0x9b2a98673e733d0045da0cbf98aa5ceee76f2ca3", + "0x0679c7193d2f767a99116b0d0ced1224c54a09b8", + "0xb6a8c5331b234818bdfd542e7974372d2dd293f2", + "0xce5ba8566f586ea4977688d0c7dfb99bfff65b3e", + "0xd35be5fb9bf7efccfc8c87889ffc824e08e59e75", + "0x807b96ec07597780f3e6fd89c3b6e783658d0e85", + "0xb33a79f375165ec9ba83c430fea32ccd3a1ab074", + "0x57ad93215ce478beb106f782177d52ac634d5183", + "0x65f5f8756771aa600c903ea0a865b03fa1f3ed3c", + "0xe7a278f4580e4fac4ff842ad54274c6208ee8cb9", + "0x947304330d50d938583250bf0bbcc8659c76914f", + "0xaa5ec6aaa887c57b6c44f8fa5a21b7c8837dee32", + "0x05fdb3be2e9d5c79dbd601ff5a0a835957aaa94e", + "0xbfae55e32cee862e700929bdeebed59bf08f3284", + "0x822b3cd2e46516bffc3cafeec7250a980e914dba", + "0xe8e68dedd2474cb1a4d59a2199961b8a79d23deb", + "0xf619bc623c1d8e1be1e2d4edc4cb3d6fcd15608f", + "0x0174bed89609e1de43df66dd480dc2e97cef2cf2", + "0x64feec84c700737ed3f93f92920e5caf560cd4db", + "0x97491faa0882e668ca6ea60b7a81009d76043b00", + "0x0fbcfcd1642edb6192268d7265495d76eaa86364", + "0xada088b2deb8fd573394939f5656d76eefdd2afb", + "0xc2e3be43cf588e391968f2bea3d53bf04dcd3e50", + "0x632bc5e3cf64f83c9170141d57e18ab808efa3e4", + "0x931ab213d37e5c510f5236dba95fa5e1fd90b4f4", + "0xa6f8cdb286a0183c45cbed19a680fdb492c5c376", + "0x0c9afcf672f82410f9b7a073824bedb7687b3f52", + "0x947226418d2d4ca37b000c0d291a5bec67474a27", + "0x8137f810c7815b63b6cf5d496fbb8fdb356313c5", + "0x11e35b4a94b1bf3a84443dcf1c609d993463e187", + "0xc8b19eccccd97d55114a5ac4b9fdd2512017ebee", + "0xa2806cd0b2a97437c99e7691cb0d59a520f20529", + "0xe7df38d14af89de04e65ff184c836865ee33109c", + "0x6b4c10ef020e26d8209a1c47c3dbc940340cdf77", + "0x9f4562c9be26c7020909b50ccde3447f1b8c4b21", + "0x742ace0ce92159015b29641224b5a96e8ffa8b6c", + "0x64dbd7a2c422fa5438b73508f6f2486839e2c486", + "0xa1c6bf9a94e603c0c7e0559a9bbe6329137239f7", + "0xed9d2dd36a71170c2fb8c067da42433a82a2f6a2", + "0xd8bf18d1ad38d2a3a7b1f018215136f32e01d86f", + "0xab648f1147a5bac4dd10b22978c6eda0eb089294", + "0x1980970d7a0ad25eb63628d1947b7c55420559d5", + "0xff4ddbcc0d719659d7889978137c2e5ba4a0c7a3", + "0x09d3a75688bb5a04ffc59b93e6d2c5693218f70e", + "0x46092e7863c0f6413264cf05a85e342db53d75e6", + "0x67e3a9403180aceff131abb1bfc5583d59202e13", + "0xd2ebe7408b5674bfd11dc52ec81c216a73eb921a", + "0x55f9fb2763047fc3359bd3ee2c71e03639ea0c47", + "0x00618874d5d90cf97cca544ae20835f3ba351ad3", + "0xdbe4d8ceb1e98a7a79f4c4f75fe62c94fdfd2874", + "0x0fdc5ba36f48d433c73781be2087cc85d7d2ee19", + "0xf5ff12b77601b7a4efd6b3b0c5dd8b3ec87c3b8f", + "0x3a2138548e93e5b7cb3416af0e2722f62507e9af", + "0xedfd52f4f19ab409d31a0d2febfe419aa858d6ec", + "0x0e69ea66f8eb62edc7dcd5cb0a4bccba2837c179", + "0x854e8bb82e0b491f49bbe1b01059d0cef6d9be7f", + "0x9c2d1627e275011cb0d7dc712097ceff5ff74ea9", + "0xff83462399704fa1ec0d59ffbe37d86ce0e6f307", + "0xa3290a93d8b033fc82c27f0559f2e76c06e73c08", + "0xa3b1a88f57f20f539055c4b0786f95384bf54749", + "0xd323d309b9d8b0105a7e3703f237d78d6b910eb0", + "0xbea1d71251a893ffe81e2de201a7ad1a6e4ffe83", + "0x9c6462d1aafdf411da06a5253d5ce88072742e4e", + "0x336f6c6afd795dbdb8e94446b9fe61fde0fb16ec", + "0xda8cf40f9f26f37d2b4cc7a3c6e37648878c95de", + "0x88cf217cf3bf88aadaf712084345257980ab2812", + "0x250bf281550abac4f8b09b24cbd064f2ad71e6dc", + "0x6dcb48d9544fc31148c9b1aade3a3cb9c0e4549d", + "0x2fc157b99b2f418553a60626ce0889e0a4728876", + "0x0a03f48d6d667f9480061bd1cd21c9e4d9402557", + "0xe1c43d253d5d24b61bf5e13325a55457b05da53d", + "0xe9dde5ddc326d38de89d1bd70424b3ebf59a5db8", + "0xd57289c9b6f17b2f51743c66543540c753fe7e30", + "0xc110a7a786182d379cdca529c750bbd29978df7e", + "0x511f1b2c48d11c8df4237fefc0edb42da099f1ae", + "0xe8e9a3b74deb42eb5039d1734b38a6ee113d863f", + "0x5e06dc0f6b4187b63f2f0d5cfd51ad80a9ebec97", + "0x492a864bbfe520566d8957de002fb963fbb3e442", + "0x863442d78e69bd9a06562aeeb5da5a3374ae7d3e", + "0x3b4e6d131dd51abc93a6f84c71351a86a2e535a9", + "0xa5259052cddcc23c9a1b6a2642ff05fd41043824", + "0xca10ef9fe087b67091a33afb9bab4fc76d2933b7", + "0xdd03b439daca835277df05e25ec7560f55eb770b", + "0x997882f395004b023ec6dd2fda98e39d275cb171", + "0xcb404b6acda556d61997dee538e8e41df943b8fd", + "0x685d79e21421e470d027316d58b5503a77640b83", + "0xce632aef4c0822b97f2862b3dc9a70d3ac06faa5", + "0xd1fa2b91a94cbdb0bf7625ba7cede66b2422adaf", + "0xe0f98da15ff6f432c76bc6d7bbabf4ab0a2fb96d", + "0x0bc82c94318b79d793f8f3d372e4dc0e62d02280", + "0x85a8c1f422c3ab9fe1ad70c1453bcc0feb5893f8", + "0xe6a2709901df5d02e5175f3866b65a74271025fb", + "0xb63c2cbe32edc5fce8be636a4f9cd8dabbb59b6c", + "0x5be4b88ed01abbf75c21a7b96c45da2bb9c72d56", + "0x0098336cf7c2266a6145ef3d6eaf82634049d979", + "0xf20841a0152ea00150a6866ac0383675786f1648", + "0x49d20a53bbd6ba0e0be341c1bb3e22bb0f7b5abe", + "0x4532a77b0cd2f71ba2f669be7c23b6461bc27dfc", + "0x62ede4cf018ccdae89babf6688e8db33d47ce76e", + "0x62150b4587aef1e1575b752943c0f7fdf71eb1e5", + "0xfa5557e97e0eae59d2ef17a1429e71db717739b0", + "0xd22bc6d0be0b2541aae3dc199cf16b09918379b3", + "0x4841d36b570fc42aeb1694bd2e5ae7c4f1096aea", + "0x24f099933cb4ef332855d3b8f23cb6f0e5564828", + "0x4bfc8de3bdf2277d9f1325c4f27ae4bef029f83d", + "0x131c354e12470b269e549287a9af19579fca9d43", + "0x1e6e872032df082532f9025d8cf3eeafff0fe57a", + "0x9690832bde2708405f34c37f051aaf4b1b7ff801", + "0x20ab1c2eb17bae026c2688755459d46986e2b751", + "0x16170418303acc27d272ef6f15ceebbd3ba6c069", + "0xca59e9d4e0f590620e4c85ec2d813bb27de980aa", + "0xe7b6f8d8ab9a53a7733ab21639a65dc7884dfbbd", + "0xc8d32b67f1ba3fee668837e6547c12c2b0ba6e9e", + "0x7fb8f2592a4145a8a189f617adbcf2500a451bdd", + "0x29f7d43917825fd8654b66290b7ff2fd79662c8e", + "0x3f7db532ef6e2b7e77d6b1dffbe6379b34dbcfa1", + "0x05ad4abf7168630ac5f50c47acfa8f5d8485a817", + "0x143a0ac1ff1fc1e6dd5298ecb2f41220a424d5cc", + "0x28b83232ee64eec531a51a5553a2ebc2776bd9c5", + "0xf294b4e8e80ce1c8cf84a956d678a8322774a7da", + "0xb71d05cf5cdf7a9b15b20b9aab5e91332c271c96", + "0xfd71cd085a296aab5017810eaaa5584931ef082d", + "0xc677e066284face940584d274200aa73b3f5d0d7", + "0x6ce05fb51c170dcba8b1b4cf2b4b8ddb791a0ff8", + "0x5ad9248babf30b0cbfe9c9f61f4dafeef3b6ba08", + "0x247b6f2b6941f99186f8dd79e6c5c7dc797b152f", + "0x73b151f3eaf4f7d3f38107f4280da602917a0af6", + "0xe319da160dc1ced1129534a658a7d442536e8fcb", + "0x0aceb918d0bfa12ee5ac64a73b64ceb85e39e489", + "0x229985f5aa033bc86f2759946b04f3efce561805", + "0x79419f3a97848408f8b9f7bd7fe98bcee28ca93d", + "0xd1aa20031d90beb3be49f5737a84c8af0e748041", + "0x19e757467cbfed9d927b0ae244ec9103038eef59", + "0xdc98626318959dc6164616776c2cd38f4f0acb01", + "0x822fd50f043f331fe44df12af8559527b4be8006", + "0xc1cc8de3701c6efd56ff5fb3d5fb963f3325eb62", + "0xd2f2e56de19d35913236d89cdb5d6ef3ee5e3e36", + "0x7c5a3ade60035635cf772388c8da7822087c9021", + "0x84d32e508bc2c38bb52e710e9b6955a02006a98b", + "0x63c998c65d783610a7d3db44d5456cc29ff02770", + "0x22f644a7fc3c7d8db2135e866ab81dfd5502ce80", + "0xdb2c1601f0feb76b26d720af2fbe92edb55d3bf0", + "0x8ca9c57f827b2ae985238ad10783d98f5066393d", + "0x57df9ae44a44565da06b103a1ae55788ce281823", + "0xd523b420c021804dadbb78738f6268477db69c5a", + "0x9c72fe42320e6f19c2e9d2bcd895e68773f393f8", + "0x19061db29f6dc6640fe97acac9e82b351403ddee", + "0x7cc3c48d86920a1f40242f60526e3a5fa5ab8d2e", + "0x004972ff6cb313f098eb56da1f1299ae0b1a70f2", + "0x2f62c247e6637207a2c6645f706e171f668b344d", + "0x6e2820675c0f01dd584404807a8626738d8a0ed2", + "0x71fd2dd47ed3350e4d8d1ee16a26db2434ca8608", + "0xc16f91bbeae6fd042d447e461fa41707528cd241", + "0x96e30cb565128b06472e8782a3c35e0c01b3786d", + "0xaa3bf09291c8749d91eeadebc0122167ec3cfd9c", + "0xab868ac6da9172531df31afd181c9623de5831b4", + "0x8bf0b111c492305cff29821e7dd0621589996db3", + "0xb88096ec6de738676db16e3fc83aced6fc95bbf1", + "0x1ed7d37d8945183c5a0721bfef9692ce8d57a97c", + "0xf45b6e9a7033264c7c61416a9b9d97618dc3bc6c", + "0xa03bd4e0b47faab30546bb70625f60e6b9ad3e4f", + "0x23ca9894c5c9834f5d7194d39f1c4c90a4be6aad", + "0x3b2f20e0d6e999d35153a811890fe086ceab9fbe", + "0xd63eaf45ec2d17c0bc17d21a60442d9ac708bde4", + "0x6ccdf3eefbb0e9a5fad3f099e671faf62285b1d2", + "0x845a72a200ee44585ecc7be13c82573c7982b606", + "0x78ca86ce2eafab22ed90e796fcb4896ca09aab3a", + "0x964d105fb02f3da3dbd5f34ab863f831e6c40c4e", + "0xefadef57a9620c525dbd9b12fa286b205fece1dc", + "0xc49a246c93a750411dcb98b25c6dd2c20304d975", + "0x2fad1595c753245f824a134edf807bacf6f77609", + "0xbf50ce2e264b9fe2b06830617aedf502b2351b45", + "0x6247691ca5f43383352ba3b2176f1ee4a6266d6c", + "0x94af4e6dd20c1d36a24d7bd1147411208751265a", + "0x4d925c0e574ddab268f503743a8010b0fba80ab9", + "0xb91b2541fe3c4ecbaf5f4a1be07cb70b10be69d4", + "0xe9bbbec3d814fa126a2af318d665a9bbd9d68738", + "0x905c76e92ffcda99fc8203f15f808c8f38ec1006", + "0x57b8581af0b271cc74d724f6dbccb3fb724eb1ea", + "0xde3b6c96f7e6c002c1018b77f93b07956c6fb3e8", + "0xc62ee64b7b19a8b72f9452a0287833925bfcc970", + "0x41d024c95401e3aba197043173f2e44ccbe0990b", + "0xcb35118bd3b51e9e7ecbf787c9964f3961244fc3", + "0x427f91627adc39bef67af01136652d2600fad413", + "0x00288a579db5af84a0c840f7e684805b78529fd4", + "0x9c86f859c25febb8792cf5972ff1bfa59b4e2edb", + "0x8bbaea19a0a59f65864e5a7519a055d15adaf722", + "0xbbe8a1421d8583194bd959a640cb82225650c748", + "0x94326cc0b0f0f765f59a3a3096bd13572cfe2dac", + "0x34480670e089dc8e463b5cdb2464b2e89b1ddba3", + "0x55e1ab9a5c231ffb03375da013ff8ed847f6731d", + "0x04b8688be56c290faaf079f58b0b5c2567df1e97", + "0x06729f0fd0fef5f0990fdcd60d1fc6dcd2369cd9", + "0x5d9461ef1a27dd78bc620bc0498aebfc7409e509", + "0xf2d9fe009dabe229360b0098628bac55ab375cd3", + "0x2d6ab583e609b4ea4688bef3a0ea278979baeac8", + "0x1ee5ce04a347503ddbae966ec21fcb162c543aef", + "0x587a93b20042a2b9551bb0c203f001475efb52a1", + "0xa5e77468b75b4d67c73e02f103e7b1463d59f4b5", + "0x117fd2d6683a19bcacc54e038435395fd7ec1234", + "0xc9faa8d3d3895369672879e02f929cb13a37df38", + "0xf98ffb2e052594fb805bd91db5907fd42449b38f", + "0xd3012af11b41da1fc54b4c15e52dfeceebdc758d", + "0xe5721c379606edda6e085bb555d1082d3bd8e0e6", + "0x572680ec852ca35f6d47c038ed31f9b85726dc3e", + "0x36d2d6e4b571412676e6c5759e6d614fae5462c9", + "0x10ef70ffcd4142fe3b0fcc87ae553826fcf83296", + "0xb4b693fc269b0375c3ac526aaceb6f9f799c0686", + "0xfdbe37a47551a82c6fa38f4d0709dd6fcf9e8ced", + "0xcf3f90bbe29145c74e327d36251d474d2e39a477", + "0x1680820323de8af35586258503eaab9ec82d6fa1", + "0x84679e9eaace2cac0c88c4aa723cb2495f01abad", + "0x88884e35d7006ae84efef09ee6bc6a43dd8e2bb8", + "0x72bba9f3dab24bd1c0dbb67ef23990f3a1ce6ffc", + "0xf90562320c80787b56a15076be36b47d3a7a01bf", + "0x4e60f1e62c757a3d883f3c2dbd53498970c2a319", + "0xcbe0a34bd5f83627e916ceb08e3d66e2b1eb5c0a", + "0x655f6f7339e19d79119abc22650d6ee941e97dfb", + "0xda296646d07f95483ae438892aeb4a3f5b36e46c", + "0x6c65e2363b96bc549e35fed614584b5512dcab71", + "0x4890ea38dc225f86e2d55837322182a06be797cf", + "0x1ac159858826a3d9cd64f41218e531f0823999b7", + "0xaa8f3a776415c12f506599d74fcfdc7720eafe36", + "0x00316a0bd01a998449dd7263c8a05097b450695d", + "0x4a84ba6e5cdc3b1ded42b0db88dd5b0057b1c6c9", + "0x67f11b7d6aa8eb36a1908bf46301d5bbdf1b4e31", + "0x3d73476d3019183652d52bf2859678dc313e5ebb", + "0xe34733200ef3759ca5aca3589c8b14aab4b30bd6", + "0x89df66ed81edefac42e29f7b7562d1887d93de1b", + "0xf78e198188c10c666cc71a6456e0d7d26cdfb29b", + "0x0db9e69acb603ffe53d2f67fd321d4973c27062e", + "0x8da0a15786008f543a760701e2021f992e1c1cc5", + "0x8038339ca5c71a11eb321986bf7acd1282da84d5", + "0x3e0c219b63752d43d3bb150ec08e883d22cfb479", + "0x992b737a279f6ce912514addc0337c0c455f7e42", + "0x4d0ef0f385ff627c44147f6858d110ca76260a93", + "0xdf67de2ab57f0c902b71086c932dd4511efbda06", + "0x59a150ba06d4751164f3367de28472cf7c657f3b", + "0xabf3699e58c5916101b66d0c565a20e09502f76e", + "0x2b6b4000b219c053cdb13114b0ffd805da68c276", + "0xd35be5fb9bf7efccfc8c87889ffc824e08e59e75", + "0x9a10b5d522ea82d48c8a9779aee197c0f63ab745", + "0x63905ab4363fa86251c02d7ed17e74aab7f382df", + "0xb8ceaac9b86677782d25777f90be7eee00d03585", + "0xc5c5501480af7189e55f940608773e669f9a7d20", + "0xc6fa742f5a58cf2ccf8234a7c13cf9dcb8515221", + "0x22314348624cbe6cec28b8f26f41cc56e04f153a", + "0xcc0b1f6a1ffe1cd78e19274434fab24f3bb2e5ea", + "0x696ab422744e4c3061af0b4d604e773c70d0beb9", + "0xbb28fd3974c1d8050da404ab2502c03ce42d02ba", + "0x864b1336ad86a839099e456faf8bf287537b5ab7", + "0x630a83e1365f180d02482a4d6303c6ad4ac6e39d", + "0x10e3dcfe3eeacd8a5857ab9d82c5c43344d003d3", + "0x16a2a393dc3435af44ab6deeb4abaf73c03d703c", + "0xa9b172f6a1e9f3a4c499f9f3a4fff2daf941c817", + "0x742853e54a8492f5640fa60d78ca3e26a1ace01f", + "0x18bedb919a767a5d0b4e39d57e5ea946c160ec88", + "0xa8a77e1975d47fb309ee139dba813ac887b1f1b5", + "0x676388babcbae2f5be5cac8500788366db1516a7", + "0x1df0d8c4a5695bd526e150c33885ab2980971037", + "0x3f9dbcb114f5e1ae6c91a34396140c4855f4cfc0", + "0x35ed7a925ee54341844e64d20c29962a64ce9e4b", + "0x1badd880414fe7d7edd7b6376c5147e9f280488a", + "0xf14244bf743eb2d0d055d347fa55c8001bcd3e8e", + "0xec47e53d7cb9653bdc2777bd237dd95a76b781c9", + "0xee6bbb8682a4150ad49b8761717ef97bd688ad39", + "0xd25db8b4160c5b81f15fe6b4c4b8dbf198dea3ea", + "0x3ab014ce7dbbcab9aa3c69539b35d18ed591ab14", + "0xe2f2f64ef341e3187c84d237c0b5601d624f83b9", + "0x6a0b8e3c39e561f8bc14172b45b8cdf82fec585a", + "0x675a5fff91825cd227cbde52e3d2fb948d9c1ddd", + "0x5b45b084ea96c0fd31647b1eeba820ab80179c31", + "0xc08119203543e2e752694d9c708e63cb3409e82f", + "0xaee0897b0e929ae9832274eee8bf76c321f897fc", + "0x6df9d041d22571af579b95548061b5d36dd1173c", + "0x0881c20a10bd9040d73c2d5160f10470126662ca", + "0xc31edf9d0dc6609437db8da6bbd9dafe11b254b0", + "0xd29cc89b6e8bea9f5ec647e0b52068837ce44c57", + "0x53965d42f2f0db5376073a888bc289a63e8cee94", + "0x39a69543ce846fa5b094c35d5f87f759f36ecf5d", + "0xe104fcf354e4472d83d50a7481328db74d3bebce", + "0x38fec9b0ff12557b96743d00d6b6d9d3c2e2ce88", + "0x0463f0e467215a56a38b1419ff10992ab3edffe8", + "0xaa4624171551679a878d5ae9e3ed17e1b6ee8ad1", + "0x2a71120abb17aa59b47b056ab8b657346fb231ef", + "0xac0bfb4afed2a24adc7b493b8481841aabdbadd8", + "0x2eb2ee9178f1e34c3066612a0518f8f88ea4be6c", + "0xf3cb4d02ceff72a905cda8b4e51ecb4d1030a999", + "0x7bff82c27fa7ad2e04beb543404808599f90cd10", + "0xccef4d06f6b5ec40db7eca4338997dfa1ee59d66", + "0x58e6523cfc1f02dee4013adb7df57e2b9b97400a", + "0x1c89ebe8750238d8e8fbbebf78b70f2a54f80432", + "0xa94b40c53432f0576e64873ce1cead1aae62fc90", + "0x902ef428177876894a41f98c159a4f16643666da", + "0x8c6ccbe42b5beff7f73241a9c1da6d6a58f5b096", + "0x338c746f4e5b780e240e2d8c128506df0e65df29", + "0x80ed27b6eb090be67f80f24ce24ff78c429c1f96", + "0x6f5f6567e974cb58357b734c91dc46bc43beb6dd", + "0x4ce5f02786d29ab505230a6706956b9ff0b8d831", + "0xa032e08975cbf20d3dbaebaf586566024943218b", + "0xc44a7137ab9770a22a97bd201136fec20bb5f0af", + "0xf6523504ae53a4134c1500f98786b0ec903d98fc", + "0x53a4fac228a84bb6cf57a31e9d9bd7d33d0b59b7", + "0x0c6017a327396b13ae14e9be46cb25c9bd31636a", + "0x625782cfae29ec37a4285775f3bcbd6febd03804", + "0xd20dc68974c4117c4fbe18b7a9035c79b74a7400", + "0xfb6d6b954e30407ca07c1aa85b890859076dcebd", + "0x079911888a6bf781c89f27b61ab04bbb9bcfae0f", + "0x63f21e7ddcb6d3d7b71cbb51de21684ae8eeae09", + "0xf5a14dea9b53004facce6d70ff41abeea8e56e3c", + "0xc304bdf66e033fff8f861d33dc159ac9eff101d4", + "0xbabdb9c00934b9670a764370034caaeccad52cbc", + "0x17b56827bd0871ce7a39fad8d4257da754716f94", + "0x0279bcbef294859319b46d69005988634a427967", + "0xdf0782ee3c2d1f90437bd7c96d9123ab4d37c34e", + "0x437b780393d021c69cd764eaf1855c92dc212198", + "0xac064b00ffa2bf1382a04a7a26623b6c62e8ef4a", + "0x3a9cfbb025811f570542d5a8bd9668cf89198b84", + "0xec1e1dd31857a1f81aa0f06d902c4c38e897b44f", + "0x673254a72f62e7bb9a71b6425ba3ec160f0b3992", + "0xd5044762a91093075bbb5615e25ea51cae82a326", + "0x83b79cb8b25295786cdea116f79e8b6f0893cff8", + "0x4d8067e32dd419a9c9942edd432c43d005daad52", + "0x00b657b946f52f332fcc1c9adc663872118188a8", + "0xe14fa48274d55ae93cbd841d155d792494300602", + "0xd4a44b9685666522c75d55a79e5af6f280378c8e", + "0xda120c1acf1c5ee94270c8500443d801c3dc516d", + "0xd731484dea1da0689185f4c29fac580429866e8f", + "0xb8f5e5e030ef3c2f50e08c86420f5614a0451cc4", + "0x1e268279b95e74d4ca3f5396624528b67fd46b67", + "0xa27564a243c3241366b777795b2847bcfd4c6da6", + "0xe033126833eb6c9ded524e8147f85de62b74b604", + "0x4de9b4b0467ec65216cf3d4cd8a2bee3ea0a7382", + "0x4a9ac9d4d4caca62e83032eda3cbd8fdc446778e", + "0x73f5e1ab0b1068e1e322ff6ac7ffcff14fe97d95", + "0x1b2fa92820bc09080eb72c098d8f433e25c8857a", + "0x4b34846f0d839d5daf17e621dd71a7be0b79844a", + "0xc3ab684e6513e46afe148ac58140505b62f21c9e", + "0xbc7a287f1fa70a269bae36e8fc1751f8aa48f6c8", + "0x8448b8e6f661136e7e41e0a160f76b3bd6a25b0e", + "0xfb793a46a5c4e288df96bcb8cdf7dcbf761abd9a", + "0x3ee3489dbcd0dd1abb811671a6c1c22e47d8e67c", + "0x26dfad3b3dc0279f7c39e88fc1cc7d2a18b091b6", + "0x7af98f6db81aef06ecf446a8a011f55bf0ea3ff2", + "0x47a73fd550a6ad264426f9633fb87c23f8e7d7b7", + "0xdf2f1459db257325b91661e4c9521ad372439e6f", + "0x546061105c7210b40fcc42337ab42247b8a5302a", + "0x42df33e19e3a962707d279cbe1a6edbe1cbf98d9", + "0x004eba336d1e38f335c106fc9a4ff2cab6664581", + "0xa6c60b544cdff5aa30b40c4f84bb0c085c7de461", + "0x774d1ae972cde17559835c87efe70106098b037e", + "0x6d010fcc41eb060b9185cae8cc9b5895d9257c31", + "0x390c9a8c8df06123389704967c50206034fdbef3", + "0xf87c97c7548f48303a74ab75b306db4d38927c72", + "0x119e0d12b7a07760f4c9c7dd9881da306834569f", + "0x9ab76703205f63bb1cc64357c5ee4441fde46d46", + "0xcfc9315cee88e5c650b5a97318c2b9f632af6547", + "0xeefc1227112447cc9471a2c74ef37c8e18c160c6", + "0xc790581018ca6a3905d770e88db20951928c265f", + "0x499adddd69d8c4d7233825a225e2d9a41d95a2ce", + "0x033173ac3df8004d6df2b032708ef391e45602bd", + "0xe68548b697ac4272cfd164d69feb80dd05522200", + "0xefae30531c40881a3fc1591ce386083bd744a10e", + "0xe7fd0931cdbdb674e9686861d53f857219e27595", + "0x75036b0b8f823b9d074a808a7e4b43e9fd9ec392", + "0x18d2852b75600dea099c6a25e0539545846ac27c", + "0xc68e37f02377b5f8388c27b8341baa75bd44dd44", + "0xf1fede55b706d276c58a847a078f60a312e7691b", + "0x4a105a60c5bf9ba1931f53cac1901a2213fa6202", + "0xc2a2e70370121017d5d396a35d8047dcc6393acf", + "0x2c1c2669f7c26988a71afb3dd51520c38a8b9b74", + "0x1b527a1feff2bd7c8151484282100f7e6202090a", + "0x12090b365e4f47253494a142855445a42f6a3d8a", + "0xd3fd0135da142748309e3813f6fe439e90827326", + "0x89bdeffb367578dd77a744fd65b39b79654a3dc0", + "0xde30882157ed306df4056793a3e9336d92609f6a", + "0x4ae8ee57e7089f3b8092d185378e47ab8d3ef944", + "0xf223ad5d331a3558128be86dedb556e0c2de3f4b", + "0x00a463d0394ea663bbd0a71ca90963f6296604bc", + "0x147b9db698091819d783cd41bfbc95a18199f468", + "0xabe93d2aed56e20fda7a378b6b47b62a49ea1f57", + "0x65ebc9ba8acc1c861a9502e020b35a6d47bbb6a8", + "0x699ed52f9ec2eadabf792c2368d29f94967e2981", + "0x54262c4961b0dc582ef0db6a300734106829a56b", + "0xf636a2c4ddab863261666dbffeb4d489f79f02b2", + "0x7b84c2ce53cd9c0eada3e03642560ceda20bea97", + "0x5db3262bbfacca9dbf6516232d54b44577533ee7", + "0xd65dc35998b26474ad7cfd47df8e70ed4a9fae7e", + "0x567955cece65f6a8f7aaddc972fcdca62e892297", + "0x88a05347e20f4060fb6b5eae7fbcaa705e88fe29", + "0xab77e743df2ff59dab16bf759de15189c39b1a90", + "0x06870e0a9290d5f2e5b405b83f8aa7a805e8fb10", + "0xae61dcd27859ca625d4852370116da82a1026af8", + "0x398ab7959b32acd655573090f72e22bdd348ae4f", + "0xfe06603c301c2cec8f616e34ecc111e7c3dfad18", + "0x6557e2ff4f3c71b3490a7002ced7decd98c3d956", + "0x945a857a0fcce8870e5b04b8f64824e57b920f19", + "0x5e5ab1354aba74cd8e2cd77b7ab49aa78a191872", + "0xd3af1390c4e2cc93ef922cbeb1af9b50d4c023df", + "0x79b9afda658b787304abd3fe8dcd7fb2b8f56cbe", + "0x068ea1f51dfbb06670ad809b4e152f1facc82872", + "0xf15ad9d998ceaca8a26cdd59712e9655dfe7411b", + "0x3dc2cc1525bebaae5478ecbde6b5b6a803818d41", + "0x77e3d9fda1717868d8ba271e0fe8c0c1f4bf58f2", + "0x00c500289369f3163b43ccb32a42199f9bf6eb46", + "0x83c5b1fa2477d4f7ecb2926af7198f66acd68bc5", + "0x0ad55adc930d142496f2a46358fa7306a6295763", + "0x787541cad8e7a51d76c2541dd463936a0342a6f7", + "0x8eb7c34dd7982264dc8d6b1a73394ed5ed3ccb42", + "0x9f20b4cfa27381f586bf713cd8beb354fb875d49", + "0x47213a36ad5b7b59fa29279a434ad025889fa3ff", + "0x92db54e49f246c628ae5eb8265033c5b9b1efd6e", + "0xd933d531d354bb49e283930743e0a473fc8099df", + "0x9c54a741690fdc0af97d3721bc16f30b615dc416", + "0xf889c6747e91e8191d20571b3d6d920550082c46", + "0x965a67909c5bfd1ae7c9f37d66305d721a5e6090", + "0x5d2ed636fab44f7d0dc81c78b72cac643354e5e1", + "0x246703d015fc3248f032e61ebb8321b1f1e0170b", + "0x2bfc501a7581f755499eb64d3c183cef5d60755e", + "0x9d03916800eaa26466f8dd33b26b8bfd48465ea4", + "0xc46a5354ba311ec34537182b060bc465cd39ef47", + "0x40c315f456d704531017c993b494992c5453af4a", + "0x0f8d58fac2992370a2c1ab4103f302bc00f288de", + "0x0e71b9e15406642e7da7b91ba7f9d2722fb69cb2", + "0xdea570cac2c29fbb210543c7cc7b8e75d4e5acc0", + "0x5b27b930c7d8a62bed0765e85befa3ce40d53ab0", + "0x1c99a1041cb293c17485620b26af37d2e4f418e6", + "0x2321194ca8e0bd429251596bc7d60a9c634bc62d", + "0x393a5343ada02b0015ffe988f55f9a10e9401530", + "0x2c1c2669f7c26988a71afb3dd51520c38a8b9b74", + "0x3b4e6d131dd51abc93a6f84c71351a86a2e535a9", + "0xa1cc84677e13df0700457f67b8d6c8d155ead680", + "0x047669ca0afb38ec4b438662cddd3bc76ee7da86", + "0xfbd4b9f363f4387779232e28bf19df903319ccad", + "0x6e41bee259317d8d4c7264eed55a14ab73fe5c1c", + "0xbe7196433d983820285d7f3d9c8cb05e17bbfa36", + "0x0bbda0acbf74b3a7ba73a8aa89dedda86f772c22", + "0x48bec3b4075ea7e560a99827d22f778a441632f1", + "0xf69776f0ef47815d1e5df9908f1c553727f32b17", + "0xf850f5aef09da45e314c43323c622840ba5221ee", + "0x47e0342c30e1d569ac6f7611cc8066c48285682b", + "0xb6a34bd460f02241e80e031023ec20ce6fc310ae", + "0xf2c5ea9e7d74e3247aa903b327d27e90b3c52c71", + "0xa66abc20e8633f14a58246b53780dea27c07ba81", + "0x8c1413860015d5e0895a26464ad23efd9b1bdeba", + "0x47d0e377f1f34c057085654331eb082296d02990", + "0x48e92765c21bf93605bb0c3cd821f4789ad8c914", + "0x93843c248a882d8c24db4e9786eb1c68f0a2ff02", + "0x22b0ac0be4633f57fa4457268ad365c11227e172", + "0x26017a5028e75da515e7340a3ca83c7cfff4ff85", + "0x75fe89cb2426ce372dc9cbc3b8a247f92805def9", + "0xebe9068b5d4cac778588ff7a0da25491836f168b", + "0x8d1a0cc38628bfd46e6ee97c1dcb4da6e2ed02f8", + "0x2e33dfe6ff5e5626c7d7fb0e968dad43d0aaddb8", + "0x41582e2077411e2b53822257b1db3304fd15d8a9", + "0x72f3de96d00ae814a8b19a684e3a4ae5c926b9d6", + "0xcbcd9ad2f13edcd2fea9ea927ca591510d2dd7a4", + "0x22ebeb835d95924d993edec7a3fd6995ae843b25", + "0x2d7f10bf019492e6e3dd9b9853f8a3929702f118", + "0x526ad0bd522d93d125ef06bee51457d1526b0fde", + "0x8993e8e6707b84532032e6cafa0f95c2382dc121", + "0x5c866fd28f898acf5a234fad29b663d3d38d9b61", + "0x2fc157b99b2f418553a60626ce0889e0a4728876", + "0x4d3d79944f9315d15a16968f41d737c7fec886f7", + "0x16617c3dc6cb3d3adc5471153520cb9c9a4a0498", + "0xd4472c726564fdc3ab789e269137cf6f5d7e6fb3", + "0x648488d142a1e51c9ad8024ce7b9f1d827dd30c5", + "0xeda4e408b1b453fcf9ffdc85fb5c4a4c60b1f49a", + "0x3f5dae03df6683ecb8f45927545a5d8b35757696", + "0x1e199cf946622af3f2c2462638070e15c202bbba", + "0x11e5273f7f55b1756f02393d38fc0d486afb2e15", + "0x59231b352ee5bf05ac9d6fe5d01ba8ea89f51d41", + "0x26524108412a29d9e26757d109c2f35ada3e446c", + "0xa795ecc5bf12a45c7f99ac16870d941d2c9cd6da", + "0x26a145bad46f37f32a5128bdf8c60e05754a812b", + "0x86d21002b69ac262f7d1a0d38341a4b780923c59", + "0x39552d7aada1ab24dcd12fb17f5b077b8c5ea231", + "0xc161a8aea2b4df5817e27aa4af041abc4a14ee22", + "0x146dd57339f3b8f732549b7d224718beb021829b", + "0x393e200664ed5aa3099e6f4cb3c4b22064182638", + "0x649db9e3b0cf6dfb096bbe806cbf140e4326c0e2", + "0x088b34bf3cbf53375c816e9574ca5b62b822c378", + "0x8d8ae25f0ee8fe427aa3c936d55d1a315efe1bf2", + "0x8f0920210bbf08b7fe2d97acacfe29a06da2d824", + "0x5e6e7ab2cfc407aacc98df522ef0ab43837e9603", + "0x84472775e6638293e47925c2ac30bae720445167", + "0x0fa9506856ac34b144dcbc5778b55f8e1b29c2f6", + "0x01f211f0e8a36feea2e5be7e7e898e245ac84aee", + "0xb848d6d489d65a748dee9317e5f87e02678b6245", + "0xb9ad5a561d9c487cda3d1cbc0294dc339fb86a56", + "0x5d5e485f4015b69b7fa28d87962e561baa590c40", + "0x22e66a5d780a1dc2cf4f84fcf0cdae4a3d6fb6cd", + "0xc769b77f61f468cbfabd27b08b9adf1fe1b70df2", + "0xa702163b4e89b1b3dbef1fd0ab39e0c5a06b76b4", + "0xe02a6cba354288b9938f8129bd995e8988666f5a", + "0xc359d6ab1f5d79c9b2c3eef82a734e353517a510", + "0xfb8c1ed840e41ebad8a79a1959d8dd748208bf25", + "0xa8f9423e79b89dd8f4b9ccc14f1b8a6c3bc045f8", + "0x327bea6de5b577623e3e29610ed55a336019a5c7", + "0xd1833a50f411432ad38e8374df8cfff79e743788", + "0x23938deffa46d25f52988c85e15d6e5637874173", + "0x532cbc68f66bb7482086a15972fa20ee3aca21c4", + "0xa25978f539e305d6f6dc638b011e35612cfc2f8b", + "0x4c31a1ea330ac7416b5d0baefaa5046b4e91ee80", + "0xdde322a7b9291ade1c151760bd9e97ff9aab2add", + "0x2b998ae5f0a91dd7ba8de81aec597b5dc8df6ef3", + "0x73e775335bddaac0b95211441fefb7fcce13db08", + "0x3f7a90eeffc95c37fa08f9277871a6be6f0c7455", + "0x195649c6dedc3f6e0403ba87b54803a9ae24c256", + "0x349c24fcf591a51f75084086e581ad43d99890e5", + "0xc7ee3e3e201703484b9e7e3fa4bd9801a1be90b7", + "0x8af38cd0926c6a2865d6812f21746d081f4e05ce", + "0x889cc507f7875be7476d04abc5b6b3511ec01c7b", + "0x822fd50f043f331fe44df12af8559527b4be8006", + "0x76dd4dcadd23d707504494598addfa53f78e6077", + "0xeff3a39b58edec5368f1c3ddc2fb1f3aa292aba4", + "0xef1c36fc9031def46d98c50abf2d035122c93ee9", + "0x44838d25d056337aa87ab4208e576c40f75d029f", + "0xe077eb2ebc5a1b492fd8f3ffcf2c451059a455c0", + "0x2ba254618e36059ad065f7dec9b2eda77c17d05c", + "0x3e923eb617f8dfc2a82fffa79929627d6774597d", + "0xae335a7e4e67707f89d7bc5b076c25eb86040209", + "0xf3839792c684751fb3774a265342b4f2cf15e01c", + "0x5eb42e53b3f8f3126f99ea37486f7d0c6c529eb7", + "0x6a27a0ad9c8431c51771a8d845f2573560e646fd", + "0x8c6dd9348b89a20b94689220370d6fc4585fcd88", + "0xda120c1acf1c5ee94270c8500443d801c3dc516d", + "0xc200ac3a44bcdc21c77101889c35b1c57f44a124", + "0x56a84de7d9cf2ed75c93fd083bfb0bbba5899a0a", + "0x1add48b4cd3b30ce2ede0e5b68d2080eb5d6b33f", + "0x7f61d247979068d871b26d1b96a39b2fabcd8195", + "0x6c7de01cc27104709f6204ceb547ec0d33beccae", + "0x56290a747993457a887576b5448d465186e86ca2", + "0xfc96404aca990f71e0bd7bd95f0cef5f06469f3e", + "0x114076a004ba82b6a680e1902c33071a899d3e5f", + "0xb52687509884fb1ebf45046a5a8f6bf6c48eeba6", + "0xaa3bf09291c8749d91eeadebc0122167ec3cfd9c", + "0x7905cbc93fb6cc5cc6846486318bfc170ab806d4", + "0xd5c74e77c2790fd884a9c6e08b3080bf80ff9b91", + "0x34dde26671f552014e835dac7b85038e558bad17", + "0x232022732eb313a206db0b37903109872a2a1f5e", + "0xf87fd76501f1532b50a22f9918f787255e066edd", + "0x75ce0ab0b24544fca242bd8569024931d1282916", + "0x89ad5242ec3eb5e2458dbfa78807d78a607431c9", + "0x0b4693c0fe201c51a1d557f6423f7edcce0676f6", + "0x4952cd5cf506a90ccf313d7d104115639ebb3b5b", + "0xeb4464f8110610e14c11b7196b1dd063cdc002bc", + "0x9faaa0efbe61bc445e1068ab1cd67f23b45d624f", + "0xfc36cf9684253b69bfb68b431e304adb66519e60", + "0x5d9868c8a6055ef1ca5db0e9e456439eac29e8e1", + "0xc4a860c57b0d66b9973167ef9a984d934a77428b", + "0x13bc75741559d5742c04cad5de635c7e4bc9976d", + "0x9eecfe100d0d3340c95dccc113cb2acaaf3b1d04", + "0x2c80c4793fb622902a0ee3bbaeb2f7d6440212f3", + "0xf94571dbdff33446dabd17040cd6236b0d2c2545", + "0x71ed74fdc742b3e397b60ee08e42b9f3656d66a8", + "0xe4b272b319a8f60bbd479c4f0be421d4b4b1b443", + "0x621f0eecd7515bb8254b2e4a4e142933b8dd0971", + "0xa59d4548c907ef5661a30b284c179698c40628e8", + "0xd81071d06de6e212fc50bbf9e39833c83ce9fde8", + "0xbabae358d1f2c5d60c7d6ddb25663bdd99052663", + "0xc97e0b9329f29613e28a752c29cd9f57dae7de7f", + "0xbc8b2a2403da08af2450a0a461f3872d797f2327", + "0x0b92265b128d7c9d064d1adb9d51095421e95d45", + "0xa30ba39fd1275e8ddfc089d4653f3fbc4da5f6c4", + "0x3e284c856b2b3064ea6c0ddb9ba1649a9bc9e969", + "0x2347938a83e83b1e3559bd7e8ee18145dce2536c", + "0x12896bc564e8f0a75778ab5f43a107df0d9dbfb9", + "0xe1d9cebc258c698e413f063a7c35fa8ea5a57319", + "0x2a91c28775ddaea59d9a5687376270d2c6d96280", + "0xc6301f45cdd2863769cf9a035fea53807b161be9", + "0x211c6d0d110c66f99a66f290e4ac7bef2b2e9cdf", + "0xf09a1fd28667638349c487c7174e7d1504d2bb4f", + "0xa6a04f5f4e88e2f6fa9af1a7d982730c42666340", + "0xd8aac2a8365a1a7d5e2381e3424fa3e5b98dd9d1", + "0x89bdeffb367578dd77a744fd65b39b79654a3dc0", + "0xeaa40f6b29ce35d8f53f6bf9b2a7397e3d8475af", + "0x9fab3ade376def77f15cb3380ff748adce294a6a", + "0xbd2c44b376b4209e81812cce56a09631b4337e82", + "0x71fe2e63a112479b65d964eb2a5f5cd035029ee8", + "0x2561a6f4f32908f2bef562987da896701ec943ae", + "0xd90cfb6fc6ffafffe551bb99fa6bb7be6349d334", + "0x2d9016f7c05c598180b411e69e1dc43a25074e32", + "0x0c09b6d68d12499e707a4073f60347e6e84aa1aa", + "0x5650f41ed6683b3ace95885e9caf60c4ff0381a1", + "0xee3f07980dcadfa90d7d1852d67531d045dbd140", + "0x125d6386f0a0eb6fa556430a3d4bbd1ead686c58", + "0xd52f5142f377e265ea5fc245ee81559d9da34a68", + "0x76e98efdea920ab9c7237bc18150316f4efae2aa", + "0x2d3cd84fe5164f52d6cb9cc81259f078b01f890c", + "0xbfabba641941642a046d060de0afcb7c6ca05c46", + "0x6b813853735d6e1186cbcf47fc7c83ad321c76b1", + "0xd5e544ed329c011f3d44d6a3a76a5eef984c72f9", + "0xffefecfe9590b02d454d9e4070093c3b04e2f222", + "0x2403a9caf3173485884826be347a65132205b16d", + "0xb60f9fbc25b2fbc448187a7b54d1cb9bddb24868", + "0xce23e15f73f15977a040e69bb303e586225d7a14", + "0x0ebd8eadce3c4f406dd37afac13e955c4ec9113b", + "0xdc01179358efa0ea4f6b3d9dcb66028b6dba4fbf", + "0x3474eb36810c347c985d50c9fb67ceaf0d460a73", + "0x9c8c267a90a3d8815ba91d0fe12e354c1078336d", + "0x51fa0b0c88970c30d2bc0640559f8a6221b6aa0c", + "0x17e9ae474ead160278a488d7370a6c352817c106", + "0xfdefeac2140cb31d05c240d3f4f7c236c47cd7ee", + "0x65570b90b7887a0ceb57f7604da311e84663a290", + "0x39ecfa2e5142f3eb11bf187367817636cf38dd5b", + "0xd243f973b0c874ea87a2602b4761ba6e34f2629e", + "0xf2d9fe009dabe229360b0098628bac55ab375cd3", + "0xb71e717cd1b35e840bbc8095355fbba83605a4b0", + "0x84287bc91abff688d32b81a432f396f7331a3673", + "0xb33d2f6381750e4432aa55d15ff2013d95d405d3", + "0xdc5984a2673c46b68036076026810ffdffb695b8", + "0xdf77da839b438a86a8e50097236c9c0e65e1f33c", + "0x4565f1ad6cadb07d215173bd27bb49cfe9db8efc", + "0xdddb9240934cd40fc5f8d1452e644e4ce97012c4", + "0x05abcb0e92a620451a484a565a2807d28b2cf877", + "0x14bbe364f5f92fa2533e88274bede6907376a9d1", + "0xc248f470011a0868b99a4b21b06fe60711b239cb", + "0x7031eba487dcf811c8b274bd9d9adb6d2573cf58", + "0x079972ac6d0133486a1b1cd3c40084e85abaf91b", + "0xe18c718dcb06f42385e37d470a5ebc6e66022a5e", + "0x5f3fe549570292130345d621e2c988a1a4ae89f2", + "0x8e659f05e9f256b8e1ecfcf10eac8659de823b75", + "0x86e9099a4941a66cad0cdcf3ba9ea00840f3f7c7", + "0xeaa0987ad748c033d01d71ddd87e2d5e1fd80e52", + "0x96b1e087cca1f69b8ef5779a9003c41e4b584e5e", + "0x2fb48f9703837795ae6075739bad01bb719eefb0", + "0xad165a88933f0fb45e8c8b7464ac9d3fb26bc534", + "0x1fcf47069de8aa48e35e7f13c7d33da15dce238c", + "0xe30316a4cc805a46fcd292b61b4e7fc84c81c2bc", + "0xfb323b9ac6899bdf679574df4b5d0bbfb1b00b9e", + "0x3dbe0a3e0fa494c5c012cf5b6b2caa5ed5312376", + "0x06a7204b683e3c3cf6a790dc7820eff26b9ca527", + "0x559615254968807f7b7d67ff48a5b8e06a5d5843", + "0x5c538fd3372ebebb0cf583ce514fcf9555d64543", + "0x292f86434f4d2449af750cf6d68157d2eba2bee7", + "0x78686fca7a95600068ddc2d4b1567c0b3ab140cc", + "0xccf531fc994eafa6168197795f70bd2c5fc09bff", + "0x63d49b44eb10d7b41687f492cf1a0d4f13a3da15", + "0xbb5a3d4ee794799cc6c90f01c5ec6bb315a22a95", + "0x17c5d5d3ba1fb8aead9cac8825f10e7a63bbefa0", + "0xad2d432cbd8387492f6eabb11bf6bc62cc0ef38c", + "0x5f467025429ee4a67291cd916e886ddb776786f8", + "0xe28c5e4c6891afb0df739910c733766305cde69a", + "0x8f7d78dec8d73d2ad78eb9ed299f3bb2870f0dca", + "0x49e06de46b47cc3241943fece445854e641a13ab", + "0x43e9c427bccd43c95bad1e5e3f6352d748a96809", + "0x39be8dffdb49222c52f2b7073332e0352cd5c077", + "0x3827084648cf3a0870d1441efa6736ac142dea55", + "0xbf91e79d679fd4fde42463c9c8e02609aef5d15e", + "0x1649a1252703814dcead07c3083c3344eaf4b8d7", + "0xb633a5cfdaeb179cd2589a94e18e897515326004", + "0x23f9e4e7856a59185fb3d1394c0e9c5ea1ff53f2", + "0x38294068f8958e0aa02588f7b878b38bb31b49af", + "0xccef4d06f6b5ec40db7eca4338997dfa1ee59d66", + "0xb50612101abf7a079539ac33396fe52b24d59e81", + "0xcd0de9ec410d55b94ac6d6c32f0dd242420d6f40", + "0xb549b8e057225f9815f24ad1ce37659f4ed09bc6", + "0x5cf76fbcb966c23de0f78a1cc8f4a5e2e32bb3c7", + "0xb8a300a54300ece48746325a0642961b9c45e890", + "0xede8aef0cc4a6e97d8af3d187f50860a3c8c3c27", + "0x646d058bdbe573ab23e0352c670a04aba817f553", + "0xc1ec77a9bcae3711fb4295e5094cd6690183396a", + "0x49c374467dcb9bab545f5cc8aa697a3e133ecae7", + "0x9a392ebff55128c42f82d9ab65ffcf87cccec19a", + "0xe69c3d2aaa47f2c75d1f7938a60dc4715e0d23e4", + "0xe2921a01c7c611036d4cf66f953e9af6e53f949c", + "0x57464149f719e0fa7f23a9b9ed5269ddb1451756", + "0x4a814a7b82134d06e75d5d502b46add94086011c", + "0x20a5c30d00548102b7f06f871f63f0cc94d28017", + "0x5ffe8ff514884c11e4bb57b807a3963d0cccf74a", + "0x865e5db6a1cb155723d1a6ea49fd44eb94c3fdcd", + "0x4de9b4b0467ec65216cf3d4cd8a2bee3ea0a7382", + "0xec249576026682289e18c17d0299374796005fbe", + "0x37cd21ecfc04941274b8b6e50c07a0c367283214", + "0xc4592092df7e2e3024d204bb26375e85f41b5a3e", + "0xa651078c928800a909f9e896477b5646c26b8894", + "0x16c456faeeff91ea8d550b86cc397a98099bb289", + "0x6ad999c8521ce725e38785d3041d6c18963e0bba", + "0x2ad8158d6d5176dfa99f8fd55f7ded9e0b024324", + "0xfbd6d0146394e1ba411762459cf285c6cfaa10fb", + "0x7a3f3d64cb2895c0bacd355f4d09aa061aea1812", + "0x5e4a4e2488cfac39c7586588ec0c614f5e784ac7", + "0x694c7309675fab3d3f3c7e5803ac1970bad8ec17", + "0x3285de43ad6ad897cfdf0e48808b2aaca3df871d", + "0xf7a1ad180878b5ab88d333e0457a9a3f64d36d4d", + "0x9148299c20e43f7bf3924b1672155ad6e0d0621b", + "0x52fcfc118aed57bd38c837a82a016f21794f666d", + "0xc32cc294c1ef880f4f5a40f4b42904c9ec62271b", + "0x9960100082739b729d14b81ae0bc56a9ba35fa09", + "0x97e3465775442ecc20538d534c2582925dd4ff8b", + "0x1ab5e1cd1acb276f9b175bd7545f77291ff53c0e", + "0xd07b7ee5d5160ee77443fd5bad4dcc62347c1b51", + "0xa887496f89a8f219179d85adea62918346337a30", + "0x8111dd35c1df60628629a61c33adf806e0f39dc6", + "0xa0cb6e7a1eae1ce3bc575fcca075e9bd5f31ab1f", + "0xe3041b92220dc9389ff2db2cda0430c8a0ef2c69", + "0x5b1d0c87306acd01be71d558cb577fcb483dcec0", + "0x1e6e872032df082532f9025d8cf3eeafff0fe57a", + "0x1711799e06a995c8efe408f6a3e46862bc9f300b", + "0x23395f69ba3d91f78e76fbf902d3c594c75914e4", + "0x6a47cf82e4149fe6986d5b0bfd69daf8d3590982", + "0x8922559ca2feb7fa09d6b73a66d18aee2d86b5cd", + "0x43f797f6ecfa75c36bc7616f29e67310d2e8f3f6", + "0x8ab93d4a84b7d1d8b89a113a8d448ea29f8076ac", + "0x736048b5431818966a6ee43732102a53562e35cf", + "0x29323deabf63ac295c91033ee7052d3b2e8e9a1a", + "0xb4c89428f8633c96220d0a6ff3f23d0de9f4335d", + "0xc67f47b0ca0a0b0dde919b9fbb5177420edd09f0", + "0xf31de0cf301b9067700373a611d41cc5bae4310c", + "0x3f1b3a86855c0fbe0293754ea37ee7fc0dce0a02", + "0x5eb48d53cf8e0658d8f5f6e419278a03dbf6b3fc", + "0x28bfce290ec67e9d05817317e0706cab8f4612e1", + "0x0ecfc3102bb9e04d4a8dac084921d6dff0a57031", + "0x3c2aec7d35a53cfaec6f22a0f0fe3306b3c9ea15", + "0x5fcbd88e694f4a399f717a84618e6569c467eaf6", + "0x115de9748d13fae06311965065297cc4d8affd69", + "0x7671cef72ddbb2f95f9ada88ccc8f64802a97611", + "0x00b657b946f52f332fcc1c9adc663872118188a8", + "0x6f70518b20661622bb25bd4b1410687042273719", + "0x76e543975ae24eccf1cc2dda1e6778ce4a9fd230", + "0xda9b2a033774354d54271ea3cb0afe707d4ca4ff", + "0x6bfb3e6f3f65faa7c0f29118f4aa8960ff8a3db1", + "0x334864b8c4eab0384006a9f9885b5541f1fda010", + "0xbcc4eb9d3b130da6dd2b955bdbce28d65e468f70", + "0x81facc69908d9c1188280fbb2793567de39f8f9b", + "0x006fc5a99f92bf112d4bf28962209d5e5bef635d", + "0x839b9b2c102c462dab45a5d62f612b8b675f8f9a", + "0xb24e59abba5a4ff158e6c79cc735a86a3e14b4e4", + "0x68fd1383e7b2527c195c81715512958eae688215", + "0x6e48a142c5a92d1f0012211fa4f054547e703fcd", + "0x920fe64e3f22ae853bf4c4bc4b70027a0a482108", + "0x50aa7ef4ebe3a5c27afbba116fc0bcc256c89320", + "0x1870c4ad6b4452deaebeeb1a791b74da886b06ae", + "0x3cda3e90edcf4d3020245e2b7009b649efe5735c", + "0x6cadc27f2d7ddcac235c0ccde550d6fcdd178ede", + "0x5066762c13f9e4bd96e6d615a59496182400f412", + "0x447238197666881eb5141b03576475d3e5cfa70a", + "0x7af47687bb952c4356b6837f14f8218ccbe261b5", + "0x08994aa2a8843ace59785ba08229f4542f2c61fe", + "0xe22c15a06552fbe20e2aa4d4bb7b2195c6e7c234", + "0xef9d20fe1b12e73cdf14031da7d1c1d95d1b2e93", + "0xf619bc623c1d8e1be1e2d4edc4cb3d6fcd15608f", + "0xaaf981ed5e9b251513ad7112b5185399918b9c0b", + "0x17029a78e9dd18a56b61b5806463f4d66182dec6", + "0x8b442c5b6907c69078c442ac25b64818e683af0b", + "0x55c000c44b5ef2ca41bf4e3162b826905501a153", + "0x40b499b21f336ca64be79d05e2b7bf14b2d6740c", + "0x132b973a5b76c506998ba526973a2940a6b83df5", + "0x93c027865354e96a1e9ec69fc8253e6d49013f82", + "0x26ad38204847c2b4f870b0a4a1a7cb63c8aef312", + "0xf80dadf457d4b5ff0fbb79f0ed11114836c4aa76", + "0x196fa1ed394faecac0df76ce525db02cfa237094", + "0xf7b36965cbad1eb58d40ec735d3ddaceeb707d9c", + "0x992b737a279f6ce912514addc0337c0c455f7e42", + "0xb9629473f888fff1f17efb5b0230a7202188f1dc", + "0xbc09c7ef5b692694cc469fb6a142f6ea3292a47b", + "0xdd03b439daca835277df05e25ec7560f55eb770b", + "0x8cac912e58391c02f938393c9435b9938bd6c16a", + "0x11a2d01911d223eb3285d4ff211a6e8f55260fa6", + "0x15033b62867562f47c0085ba61116a244610ac2c", + "0xb0601f4b1edaad60e671c6ee266358ea1ed19af9", + "0xee5238a3ebdbae330e649a8eef698d0f0a3a8271", + "0x25c1a47799a307ad3297d30cdc77ffccacd02b33", + "0x7f4c4087e3cb540421202d634d4b4cde372dae05", + "0xcd8760ade13d42e5442ad3f0a27fa37fcefe4ed4", + "0xe1b243f78041123ee6ff06ce014ac4367d7ca8c7", + "0x7e1bb353c3751cd30789629026b370da349bba2e", + "0x3a7d4b53c8e04076dd9ad0df633d1073631bcc88", + "0xf223ad5d331a3558128be86dedb556e0c2de3f4b", + "0xed6f39ad8dd87d988ca01b82048b4cd32d8bf6d8", + "0xd283acea493f5217ef844f383e0d54f9386b20e9", + "0xc2b2ba47b76a291f38993457081b813f1a81bf34", + "0x9ad044f2fbe7d63c9c5f677c11f03b040d54022f", + "0x4d955701d1e24cb1df0a32e4460766ae0dee4a91", + "0xd4ebad119b5d6c2216fbb4b124345e534ff8b519", + "0x3313ec3738cec22c8e627906258d8233bde587cf", + "0x5e38b0e47e88eabcd4a81040c08258d98907dddc", + "0xaca9fd46bfa5e903a75fb604f977792bd349a1af", + "0x7d03fc58c754f61ba14293bcf82061cd8c90dfca", + "0xa4041c2c155f143c8cbd22289b3f20fec2c155e0", + "0xc57a891fb95c4855ca706c414787c93992256462", + "0x6a64fa75c2cfcc28d278d7579e1a419eb6b9bde8", + "0xd8b1ebc8dab48c2a12f9f9e16d9eb7d125d39cfe", + "0x53a90779bd1ac85d65b407fa9aa03e1106c140d6", + "0xe1b561cc2fa06ff30933231dc9894af0166abedb", + "0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae", + "0x1a351cbd2417f927fa4e3bcd21ebb5c5cb7aa6d3", + "0x3b12085239ce84fab240578c77a784e0a41edc7b", + "0xbb6a6fc40b8ce01964daf618115cb4433ee38b2d", + "0xb63c2cbe32edc5fce8be636a4f9cd8dabbb59b6c", + "0x28bbf0ef519f72cafea000eaf64ed679dbdda738", + "0x050770cbf1dea603eaab0e5ec734dc2d5c798c17", + "0x325a09289fe972a2f280ccca4148666802045da9", + "0x69c438b0703025a8d2d78654a4b98f9aa9adae44", + "0x6edf8ba1f1968e3b15adc214afbab0df3ecef432", + "0x8fb1d715273750c607bcfe253784437140c9bfcc", + "0xb2fd74bff2f61237ed8d2023e16e83c587e7a197", + "0x0b3d33f20284c97b38822141d2747f77cba29416", + "0xdf35db99b2a4f0e5111acdee17690174b7776b6b", + "0xdb917435817bb2668a8b01d8370a2fd9e1651214", + "0xc86eb3ceb665542829cc62ff88072018c7084b96", + "0xd909803684d60f9ab211a6de374ec31c117e0738", + "0x91962b4310ed0acd8a4b14a331cc56b84003cf23", + "0xf9a066b8a16d386411da7ff099f744e70e7f057a", + "0x3fb776401dc1e7fdd13474d48599d0ac10fc1ee8", + "0x9b3148413d908c2193317a045c218bf3ee45615f", + "0x67ca73911ab8183f427064d174e24f521bfaab85", + "0x77b378a4db683baf4c9f35bba50bcecde107a206", + "0x92923961c73a1bf7d8ca29baafaf6decf298c53d", + "0x60a4e810f4b293206a299f980d9cdd323dedf228", + "0x43f6c52564cb586732fb00f84ce36309c9868a59", + "0x0c69da0ba097e031678ccc826f64f620b98a3528", + "0x93e72c0486e59d10d3b59197ada93d5719808d89", + "0x9d558bb9369dc9c42e5b0e782dfc09cfeeb57441", + "0xa2f178e266dd5523fcc8fd36053d310b3053c6ef", + "0x65654b1007e11dcf3f523355df1b51733b2ff894", + "0xbac5672ffcadd9b5e228aa0b5adff92f0da449fa", + "0x2c805328473317d9dfb22450615edbbe10c7f817", + "0x71e6bd2a68a3983b36d439ccf0d9849ac765b3db", + "0x787541cad8e7a51d76c2541dd463936a0342a6f7", + "0xeb1abb7be9f8fe549d1dfd877884f002dccd4c94", + "0x951f42fd9a7cdee0de99994514c56598bae77ff5", + "0xb0163239ec0b886a5629e41542730a40052a865a", + "0x19775e1817bc7a1e41060f80e0d00eabae2959a7", + "0x046651b6497444240913d6c0f803b19d8d7600fe", + "0xb165c73d3d9872d7014f2d390ff091d5944309a5", + "0x3afb59a03a5ae0d8ee1f434bd8cd89096e5b0441", + "0x3679928b9053570b165b5e5d151d75ad35a3edf9", + "0x3342c55f883223a55b66c5ffdea976e0916d8918", + "0xf889c6747e91e8191d20571b3d6d920550082c46", + "0x1d4cd052f7a0a8480e4ee0cde1bd4525b03ab064", + "0x7976843cd1d04b05d7a7054c18df7fc7b7e01fe6", + "0x57a968629431590701e1fc4341516e5fcacb1e9c", + "0xf6b890e735d2d1ff276d240b310543997695db11", + "0x5be1d72497df604857497d3ad6cfd8b5bf65aff7", + "0x9e7d948388f00cf7b01d4c70f45d8763ac803cb8", + "0xaca9808c5d72c5d0ff88dcc881d165a2a6f46c71", + "0xa70c30624d66a707ed61701259e5b0bfc424f842", + "0xfabd1599d8c36b9698490727cffccda9981b6092", + "0x776058ad2cd19b94fcf247eceaadf23b53c2df06", + "0x8b9e7365dbd0c78ad7b85dd5ca2758c920298e64", + "0x6ce18819396f639aa2ea04e135ab31db6d5e0dfb", + "0xcc0110978750ccbdc5f28fe322c0ca822c274546", + "0x082f3fe16bdc99144e8837010433b255c7eea666", + "0xc8b6173482731b8690690b4e21c6d392a6ea93c4", + "0x3f6286a8e4372fc115ff916c721ff2b234460155", + "0x2bb81f05c64040712e3f2259d6b33b7d92891d02", + "0xc81d14595feef32f476cb56a805ef0139354a5b9", + "0x716df56da608fab871bc95ce32163bcd6c0f9abc", + "0x1cbc2b4342d30a23dcd51a161762ce632fb02474", + "0x39552d7aada1ab24dcd12fb17f5b077b8c5ea231", + "0x56b71495be5c61957ed2311047be1475ba4a834c", + "0xa36145f94cd176d186354a25f9d945fbab990c3d", + "0x56eea0da038971d6905b07f164343a00a5e30fde", + "0x7bcfc67a969780202741c30977c6c64350170d82", + "0x07fcd4491e7e93de47a4b4233d450eaad17d2d0c", + "0x6cfb145fddbb0e3fc0404f1401211f43d80457ce", + "0xd94a2a386f4e811f5da03e379b03199aeccba16b", + "0x43730cc97fa4647929dcfada4649d751e9fe98bc", + "0xc929e5bdebd8e4df5635a3de9f0dc1a606509d0d", + "0x03b82245483815300c14e8731e1ab6558a7f97cc", + "0xe799c472ad2e2358b373c4b697213e71d09f3fcc", + "0xaf051f2ccbbba65b29da70bafb4ea995dfe26f7a", + "0x987ac785d19d5a6c1a4188e38cdb18eb43db054f", + "0xfe75cf8dbccb736c8dea50b9fd9b4cde4ee34c3b", + "0xc775a53d404f28872221c32cc198d646641f9a84", + "0x0975b094bd18963a91735c526d9f257b7f73e851", + "0x5735151c888b42b0016486c061776c3a9f9ba4b0", + "0x92002b88013a99bcc77d96772229e3ffc7df633e", + "0x16e1a6eb4ab66b1a51a6001dbf391265ad286dfc", + "0xadbe1fbdd354597da4079e67af13a5586665c16e", + "0x077fe0c1b489edd868fc9ca90e0a5f942188057c", + "0x7ca930ca2d705e491332140aa07357748aa0bafd", + "0xe362db9bdb94d910ef9360c4a450baa6dd5ba257", + "0x2a1301e43b4d00555e3ed87183a034f7f553f67c", + "0xf9f5b76752cf26286a0392f7f8c962db724d16f8", + "0x8e7bd3dc5a41971455a7e5af99c3ab77766b964e", + "0xac21b02fc49e4040c159e21a6d3c1649c7e836a9", + "0x645f26c0e35b75f2e1a2d0f46a9b4932de3f2c83", + "0x001abaf2bf757edcca6dac047521930a66561290", + "0xcf42d5778ebdebcb4761553e80480fd8149c46fa", + "0xee5238a3ebdbae330e649a8eef698d0f0a3a8271", + "0x037712144ede9eb52dd62d92485de3876ca6d22b", + "0x5d0464a56965f1703cecc9f1ba69541716f32c14", + "0xd13b31ac5603c07279469f9a703ca3c66dcd8c33", + "0x912327399f77d96ed2e5cfca8735560cfd53935a", + "0x59e4f1c1d27697fad7fee78bbb7ce038331b0c28", + "0xa2fbbcace9d4ebe0d207ca34b5e02d7a6fb92c4d", + "0x6a26ad8e0d8819602360b9fa9ec13381b3e898f9", + "0x087e1ea3cc208df6c72f727a015a18255e45927b", + "0xbfb7468860e1b9a966089c9583f3b931f898da80", + "0x01877539fddc63be06b51b4aa0eb03485ec9012c", + "0xd77dc9753124309e07c35842b3e525af3bbeaee2", + "0xed1faf64352e34744936ab526ce3b0dc156acd29", + "0x1c920c7e5441edba21be39ffdb9e3e7979f210b5", + "0x2dd913def58d8a851c1ad243997361a8e0ff9bd6", + "0x4fa01d2bfaaef9c9e51f1edc2f1928f18b8f3a2b", + "0x0d0f5a17ab280bfe39146135a17452ec14c48afe", + "0xa1be1a28b90993a6f80bcc8b319f5937877ffc06", + "0x0f6e2362cc492a871ea06b80d340940deeed9163", + "0x3373e93e9d6184c3601c7047eeae7ae001cc2478", + "0xd11e4c28a6d4a2c2c276780aae462aee59147e49", + "0x26d08b9d227933a85e855656dc46ab889e183c88", + "0x0745fa6469b37466f4bc762596b7b38633242480", + "0x56e37a9e86316c612ee10258d05d938bc8ab3004", + "0xe9c239b0e29dfc9b4cf8bd0cac4149815d64cbc0", + "0xc41a11d7126f2fe82e53c4669c71aa729979d37e", + "0xd54d7dae85a86e0b839c5f59e1385d8bfdb49c41", + "0xa0ef26551e7c9c416252bf64d0635f7a63cb7887", + "0x54edd1af5aa9a58c967d9ce9719a1e71420b6125", + "0x292f86434f4d2449af750cf6d68157d2eba2bee7", + "0x2c611c84d13b46e81b561cd29f04cdd464bb0738", + "0x45ca5cf543fd7f694715ba83bf638744729e963c", + "0x7fcb8e9bc462f8383f810c5bff52af43d9e36d8d", + "0xf7d5c03a3892a3ae3ea32bdd1afb108baff6ebde", + "0xa3d777c4bc2b81232a23e653a56a0a8ed8d34447", + "0x7f2ff67fa9db3f40e9a0a6f6d255fa2773d289c5", + "0xc1c2028d07173b3131a7f9a9f4e0b000bf177dfb", + "0xdeed38edaeb3f441eb3b6113385beb824361787c", + "0xb990d56ef34b0a190d36ea9642363d75e99896b5", + "0xbc9f5524d1ac14b733764e9b1b252dc3a00bc53c", + "0x91de6ef9b3998609ae0b44f4c1ea51a8e3a1c208", + "0x2047d2bcf5ba42634424771f4f3ac62a662bc252", + "0x665da1a14687b1cb05636f6046ec75796c228cd8", + "0x437b040c2993f4242c4235f47a3623eb922f024a", + "0x1cdf893e750d3bbc7b07f9819fb014c242dc2ee7", + "0x77e3d9fda1717868d8ba271e0fe8c0c1f4bf58f2", + "0xbb4cb6fda375c137bdf62696cd40e073654542c9", + "0x7fb8f2592a4145a8a189f617adbcf2500a451bdd", + "0x7aaaf43ac29abef47e4663fe4d7c2a518a32b6ea", + "0xff110236b3b40155057b45ae77b99d1b38851b15", + "0xac9964bcc15305987dd1ad8de80a11b60e0dc881", + "0xd4a44b9685666522c75d55a79e5af6f280378c8e", + "0xac4714299a63913752aeb8b36f83ef058fec490b", + "0x5e215366f5d3554e4b82d0a630aec080611db0a9", + "0xc13eafd899b695586a749080852c7d2a1960274a", + "0x6a64fa75c2cfcc28d278d7579e1a419eb6b9bde8", + "0x823bcb7b0de947c8a80c650f1a2494e4c2ebf89f", + "0xd8274f634a6f67c4b8848466fa09296a3eb29dde", + "0xef1128f4b800d067cdde344d103dd2f0f2dae211", + "0xc06e3fdfa24d40b05faf0597f5d81196bfe5460e", + "0xfbc200b85dbf0d3e5cc5c6bb65ba4326eaf35aa4", + "0xf018d1789ec67bf24e16cc341221b6a4e18b15aa", + "0xef45218aff36e720b713d88f421eea2e052aa8ed", + "0x96f845b63b0dd6f996edbca43c8b0fa5f1531184", + "0x7fe008c27d0365788a982b6135b86fee67a0e0a9", + "0x249a8a5a26526edee23c7b4b5f8dccb3636e8c8d", + "0xe917683dfee2422fe51d431b6fc694e105aa687d", + "0x32345c7481d4760a6b2004970a307ec42573b02c", + "0xb4f638b0b0f39df236c78138dc317941f02b680a", + "0xbf51776dccb125f5a950f9dccd3fa8ef38541141", + "0xa5a1bcb59c92dcb478535332daaf7ea86e34125c", + "0x051ad9bbaa92cf934f5dcc6d825622cc36d3cd81", + "0x42b99c6378e4ecb709acc1c0f7dcf8293269e744", + "0x95d96b8b9b95cfa3f10509e76f7d1f1db2abcc78", + "0xb4513bc7f383d9f27e8c9d2b16216328927f1669", + "0x59b5be01877fb07b20b4b2a1a42cf16ebdf19c97", + "0xcdb39673e14684c801533960492e378f6c691073", + "0xef2cb7e1a3f30a31c67a27a9ddda331e8b2a0c57", + "0x491b4108608c6940eff8babd204066ee0febf86f", + "0x8523645ab9c41bbd1908e1fc627a8dcafe7023e7", + "0x255e625d66886a984c52eaa7fd6f834bcd583831", + "0xe27ebdf23ef1f23d53a548e61c98979d2fd88382", + "0x294fb1c067dd36e8ee543aafc9d6269810dd1c8f", + "0xd0cb6249af4ad196fe34bd0a8f5764315af5c2dc", + "0x17e854811cfa7ef3a25bc650a2bd4ce95fc3bf6d", + "0xaa9a9119429982cf214356e2e87be9928270a4ad", + "0x303215116f2886781d5477408868fe6269f607c3", + "0xbc591ef18a5f50797356bbcab875ff444abd751d", + "0x856a53b84a4e0120550a2f25fd95a3401773af5b", + "0x0cb05f33237ab0d8dbe9c7bbcd39f6ab75f4b290", + "0x03edd27265c192bb97f2617cb91d7f132038dccf", + "0xf54981c7aaad8a67bf9aae19cc0596462f255de8", + "0xf0d31a65a1f0c230c01879aa9cc3c5333c1addc4", + "0x90192aa58c6a2681004abd4abc16aaeebf8bf46e", + "0x41582e2077411e2b53822257b1db3304fd15d8a9", + "0xe07a42ec84c4bca2a8c94f32ca707565d0f20eca", + "0xf1dd07743a186c4cf210aa7ff7ba023b507ecc00", + "0x033173ac3df8004d6df2b032708ef391e45602bd", + "0x221bcdbad28f8d978bd91e62f6eef3e23526943f", + "0x2e9241e6108a7f0f4afdaf89ccf82bbf251904e3", + "0x8f3e2a9ac8f31ab17a493a6fe5951d0864f8dd66", + "0x93843c248a882d8c24db4e9786eb1c68f0a2ff02", + "0x925efd60f1649cead34d34ae1fcdcc527d1fef12", + "0x21047cb23309603d1d39f72247513958453c76bc", + "0xb0c6213298499e376b2b5b97dca0548b9e2ba39f", + "0x22b0ac0be4633f57fa4457268ad365c11227e172", + "0xb204cbeb8614efcf1d0e02df8025c5e4aaad0732", + "0xb01387f8c59d3c9805f49981cc48e9ef6a383807", + "0x1890346258659667ddd63c04e58195de06796223", + "0x537d9caeadb327f6e4fcc61fa6fdf355d5c878df", + "0x24000ecc9385e51ca29585b01e44fe0e40ec96c9", + "0x24446c32ea40d11f5f8ec8faad9b140c8ba1f50d", + "0x67a417d40e6713b96bc123343225b011eab4b38c", + "0x68c4592214aec12d1479c9910b7fdad95ac66cf2", + "0x5e3351c318239c6440e5fccc19aaf22f29c0ec77", + "0x68b6ba34a5bcf760ec7507c061d3d16e90cea93c", + "0x66cad6a529c0d937fd2786c7bec74f491f47b948", + "0x097eb69cd700c252ae55ab123013b46bf68028f9", + "0xaffd31d6cb3745187aea3012f430e16c94ea7e05", + "0xbc58b9bce3c0ce472b0bf3a7d69e0d1124cb76e9", + "0x4717da0d5662fbe8618d04646e086663432925d0", + "0xc66ed7624f4ef6be99e614f02efdda3b5cecf8c7", + "0x7f5d9bb247d9102bea1ec67d098c0a4d57d92386", + "0xf1066b9b515f21c02c70fea24f84e48bfd8976d9", + "0xf82366646c061e4a472b6632e344d787bcbb9c5a", + "0xa2af8b8c09d2698b793e9e4bad113b8fd38c931b", + "0x3745588b698d07cdd8d8795fc918139413da29ac", + "0x786d92084ac1d9e56d1f7a5a87bebccee9b0576c", + "0x1fffe5f49b2708e18a34a658e9e173afb28fa93d", + "0x3614dc0a3eea14079d9046f5c54d165700540ed8", + "0x1d387aff6987fb794fc6fff0e9cb4b9e837f2cfa", + "0x8acaea3644d68decf90698469c28d135eee2d711", + "0x2ad955d74dfc06c540244a4a6cbff896f8323cc6", + "0xa3771c18051f87e4565eee8d9de40c641e8f1937", + "0xa9bd188a75fb4537ce8dd30de3aa2764156bc2ed", + "0xbb03f0f31c0bda8518c1b421afd6df2b0f04dbbb", + "0x2e2e83fb18420d231f80d82a95ff614927332213", + "0x0748b06216a58b0ce2866977464ab3145f7171da", + "0xf402241ae59336f93a308ec8955386670f8b481e", + "0x68c059f7a9ae706413922a95133c3e91ff4a3ed7", + "0xc91699cd96d9e204c1a47bc11da8468bd4701b03", + "0x7e1bb353c3751cd30789629026b370da349bba2e", + "0x7eb46dd46c583695846b0dc97603086fe6387105", + "0x8e73c17025c5c1d81188b2d186c92ed9292d4530", + "0x81be412688fa6d3810dfd42e7c16b52683b274e7", + "0x3e0cf03f718520f30300266dcf4db50ba12d3331", + "0xf75947aa09b03074491bf5bd2645927a3117ed12", + "0xe4dd4d6a9565323a05d201ba97b9a64edd7172de", + "0x10e3dcfe3eeacd8a5857ab9d82c5c43344d003d3", + "0x4108d95e0d016db28ba4583d0c42fcfd51572b59", + "0x20a4ec8bfb711e92e158477a29881e6714134a95", + "0xbeb4679aee1e343fb89118efecc8ffd16daadd7c", + "0x537ff9b28ecd380403951cd1c1353f041a58d5e6", + "0x59f5b392e7eff58992e298f94aa355c36897557e", + "0xa73b4085a5df067bf376e66e4555c2af33dc1a7e", + "0x7a39f5c46d1f26a14d163446d57e2ba2405446f9", + "0xf7ce70c1d7e030405db94bba9622a7ad031fb139", + "0x92a041ef2b3b0e1ad182daa4594f5c8db226124c", + "0x1074df7c731956c590b2ef85008fe75d9790f8b4", + "0x0fb9903ee37f10e78288bebf135e0b6b98e0280e", + "0x7c18577db4a99a5716dde37fd8f08242a61b1829", + "0xb457c4df5b9c9cbe4278c914c0006cd7dd2c2495", + "0xf6e70fc4656f4e8fb44795f0078fbf7c823251e6", + "0xb196adb24f975db88d80590100cc81e9106ffb51", + "0x0fde88f4e8d2db650fa08e2087ba8b62a36c7f69", + "0xce59200874a99e14d3d3d88c2b2530999573cdd1", + "0xc44a7137ab9770a22a97bd201136fec20bb5f0af", + "0x0e1fd821f4350dc84b1136d7e77a3dd829b51fb0", + "0x63c998c65d783610a7d3db44d5456cc29ff02770", + "0x284b63b2f56d8bfe07ad12e1934ee0c699e10377", + "0xe80bf5caecf42b06248e65f31ea05ec85262a6b7", + "0xd43b1ef306d3a13f74ca487434b28cbb727b134c", + "0x27e4ad4eb003cc1c26e65300d0b3d7a0287d2e3e", + "0x95ce81027b57239985d75fc2b7e2aa6f2baccbd2", + "0xb1bd1133b7b45c7a857f8c76330abcb792918e4f", + "0xe7d3aeffbc139b6dca215340545baea20a3a1da4", + "0x2a3cae2c60bf3da98744deaca010a29251adf19d", + "0xca7d6e2129bb2827063ae15d57e7716aba39dc7c", + "0xd106424e6a8075892d04dee20693d40be086b97e", + "0x510ca6a8b2f19e9cba8e8486546560ca473dcb7b", + "0xb8a013458fd2cccc773d234b110e728fa0bb8af1", + "0xe3041b92220dc9389ff2db2cda0430c8a0ef2c69", + "0x6a27a0ad9c8431c51771a8d845f2573560e646fd", + "0x6af337afafe2ed7bc8456d7fc56d2e979fc77cb1", + "0x7af47687bb952c4356b6837f14f8218ccbe261b5", + "0xa462b7226cf95393c5a9fcc102cf5c2152331040", + "0xe2f030010b24e3a238c5a652bf6ea2a8abdf5ac7", + "0x43089c81f2fba8dab88b87aa66248c58e24604c5", + "0x6ad081d94d142ec5fab63db795f3dbdf764f7a8b", + "0x009cf9ade9341f555f941de152ec12b307555c15", + "0x385987ca11119f0b722d308be4284679d8ff69b6", + "0x55fb452267001b7073a1d83ecc46f29d684a932c", + "0xd530da3b3ef26a88282aa2523f5e5ae0892333b3", + "0x232226078d8849911c2d981d11f29167e519566e", + "0xd4ebad119b5d6c2216fbb4b124345e534ff8b519", + "0x0f29286476806084b880e22fd2149b59c7cc8900", + "0x937bdbeebcacded4cf49fd0d414c337668c6ac7f", + "0x6dcb48d9544fc31148c9b1aade3a3cb9c0e4549d", + "0xabb92539f14482be1d242ee7a41d5e8141659eb0", + "0x313eb039346044f4f492704e79469ece64209c0f", + "0x3c6a9388fd20e2b39db3497dea3324be2b48caa5", + "0xa007ccb369786974861d00ec61a33c8a639bc5fc", + "0x301845fc440909190e1a2bbe8bf65b29ae15b190", + "0xf24aef449d88a8a1a86cf869b14d9bdd07e40594", + "0x508b080e1a18f6d04086c217546cebdaf336e476", + "0xc46cc2b817f209de2f89585bd772d1186795953f", + "0x1649a166aded10acd9501f02ca6b12eb18283e8c", + "0x8c0b1cb2d07a60f2d3e384bb027ad5a44d2323a5", + "0x38227eb6c3ef34c1a637e371dd5c3d2dba9e3127", + "0x421aaa03e24c75e34efd7ca1b68777ddeae2d183", + "0xb8b6853da0adc48d96077bb423a71d943b2e1157", + "0xc763690b5f8b17d0d7b20291b167ccc3c147b193", + "0x07cc6be63f46e67a19028d7a8ab50e93268abbbe", + "0xe93f762d2e38e129cda9c43869e42c0738954fe2", + "0x1e6e872032df082532f9025d8cf3eeafff0fe57a", + "0x1f252bff5da6741447601140680b2a33ffca0f67", + "0x94c51b3b4fce01f107bd91aa8fbdfcf7f1ccce33", + "0x60ca3ef21dc98f23bd229dfce7152af1e3fabdcd", + "0x091e26376f89d0c6a97467cb57eae050a43821dd", + "0xd8fa300b5a8f30fc1717349c492d87ba50aedebc", + "0x50b3914938e6b2dc0ecf6c40bea2f43d5400b341", + "0xe9b7b25027f160a7f7aa7999991bcb957909a765", + "0xb6a8c5331b234818bdfd542e7974372d2dd293f2", + "0xc478b7468365d90d1b61d65d25bb63aff1d08fd9", + "0x487088b1e36dc17f5e3c7739b08e8d3c3dac7ff1", + "0x7d1894ad938570042c72dd7d5dacdfed6fb688dc", + "0x8f5b8bb5ecc8a12a2af5d6f4a372c9670aac56d3", + "0xed02dac9726f15498559c05ce56470ab4d18eaef", + "0xf3d10939063783f11e69760336b64d8da380a605", + "0x0a3dcb07cd734f0531fa1231576124ae410129e5", + "0xbc7df6eb88824a699c2e73da9dd17c1de9076d13", + "0x1e8ac273163f6f7bcefdc7983a357714eea853ff", + "0x147b9db698091819d783cd41bfbc95a18199f468", + "0xf242a80eb8a15c20d507da99f9052052ed8129f6", + "0x938c28f83e68ec270caf2b65356579b95e07b138", + "0x61b724aa89f4c8813815f484bc8b0b8c2dab093f", + "0x471c058471fa580ca52ac8402c739c7bcb3658c0", + "0xd4c77bc0b69c8dfcfed5ba6a142f7f7a7a962531", + "0x2ab6de28af927d662454b96c916b398976a7e1be", + "0x4ce29e298baff43178409877b29d31f80b649e66", + "0x3bca5ce8a2027b4526210726e2ce66f469329d81", + "0x7b4413a7f29e6b2e1b68afbed2378cc9d36a83dc", + "0x12f8f25bbcdb6e99f7ba957989f62f9a22a9bab0", + "0xf23e07e98e86ef74bd95e94ebcaf6b82bc7dd06a", + "0xfe06603c301c2cec8f616e34ecc111e7c3dfad18", + "0xd539a03fae40039968095c8e0bb8e101bdfd1303", + "0xfae0357e4c97a816c14e4b69eaa09c7f33411329", + "0x132e350a151d4953affd0d3ab714394056a1fee3", + "0x5b07fadd3769c5ce93c73ca955ec1b0ad80934e3", + "0x5e49e59ff1f8f96b1e3ae0b3425932055b39e368", + "0x62286ddeed9675f5d8c5f52fa35bc7857dd85d14", + "0x996dc7490c3ae28e00aab4fd6e2cf049bd75f3e4", + "0x6b488c6f5c2800c7071fec6730e8c547b657610a", + "0xab44db0969ebd83afee19e8e9eb412f78f6c5d35", + "0x19578e503328d6408fdb8a42225220ee5f870557", + "0x416753e9ead077765f8579d78e058cf4a6fe724d", + "0x9253021f92b43b9a1d6d9bd850ed5e0388220655", + "0xc907e197712eca30dd1bb450b345204d754895fa", + "0x65654b1007e11dcf3f523355df1b51733b2ff894", + "0xfd2819ee4816c85895961bde648483f3a3253bcd", + "0x23511bc6a5791e490dd964f01596010c1eaf38af", + "0xaba0d6566fdfca1df125d5dae72ff6c8bcbc5e50", + "0xf62319a34e4e16790703814e5eae3ad68555047f", + "0xad70680ac6eeb0051a59cb7de9b460820accbfbd", + "0xcd528d989f85d6b09de9a8dcc024528f5db31a19", + "0xc478faa66462a9a38fb905cf217824f594b0ca7a", + "0x2bfc501a7581f755499eb64d3c183cef5d60755e" +] \ No newline at end of file diff --git a/scripts/filterAddresses.js b/scripts/filterAddresses.js new file mode 100644 index 0000000..3201684 --- /dev/null +++ b/scripts/filterAddresses.js @@ -0,0 +1,62 @@ +require('dotenv').config(); +const ContributionABI = require('../build/contracts/PresaleOracles.json').abi; + +// const Web3 = require('web3'); +// // const MAINET_RPC_URL = 'https://mainnet.infura.io/metamask' +// // const KOVAN_RPC_URL = 'https://kovan.infura.io/metamask' +// const local = `http://localhost:${process.env.RPC_PORT}`; +// const provider = new Web3.providers.HttpProvider(local); +// const web3 = new Web3(provider); +// var myContract = new web3.eth.Contract(ContributionABI, '0x6F3f79941f89E03D4aF9bDb8BE0623DC24F2bef0'); +// const ARRAY_OF_ADDRESSES = require('./ARRAY_OF_ADDRESSES.json'); +// filterAddresses(ARRAY_OF_ADDRESSES).then(console.log) +function setup({web3Param, contribAddress}){ + web3 = web3Param; + CONTRIBUTION_ADDRESS = contribAddress + myContract = new web3.eth.Contract(ContributionABI, CONTRIBUTION_ADDRESS); +} + +function readCap() { + myContract.methods.cap().call().then((cap) => { + console.log('cap', cap); + }) +} +function isWhitelisted(toCheckAddress) { + readCap(); + var count = 0; + var leftRun = toCheckAddress.length; + let notWhitelisted = []; + let promise = new Promise((res) => { + if(toCheckAddress.length === 0 || !toCheckAddress) { + rej('array is empty'); + } + console.log(toCheckAddress.length) + toCheckAddress.forEach((address, index) => { + myContract.methods.whitelist(address).call().then((isWhitelisted) => { + leftRun--; + if (!isWhitelisted) { + count++; + notWhitelisted.push(address); + } + if (leftRun === 0) { + console.log('FINISHED! notWhitelisted: ', notWhitelisted.length); + res(notWhitelisted); + } + }); + }) + }) + return promise; +} + +function filterAddresses(arrayOfAddresses) { + const date = Date.now(); + console.log(date, 'DATE NOW', arrayOfAddresses.length); + return new Promise((res, rej) => { + return isWhitelisted(arrayOfAddresses).then((whitelistedAddress) => { + res(whitelistedAddress); + }).catch(console.error); + }) +} +exports.filterAddresses = filterAddresses; +exports.isWhitelisted = isWhitelisted; +exports.setup = setup; \ No newline at end of file diff --git a/scripts/package-lock.json b/scripts/package-lock.json new file mode 100644 index 0000000..bd5bfee --- /dev/null +++ b/scripts/package-lock.json @@ -0,0 +1,2244 @@ +{ + "name": "scripts", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "accepts": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", + "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", + "requires": { + "mime-types": "2.1.17", + "negotiator": "0.6.1" + } + }, + "ajv": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.3.0.tgz", + "integrity": "sha1-RBT/dKUIecII7l/cgm4ywwNUnto=", + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.0.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base64-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", + "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==" + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "bl": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", + "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", + "requires": { + "readable-stream": "2.3.3" + } + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "requires": { + "inherits": "2.0.3" + } + }, + "bluebird": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", + "integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE=" + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, + "body-parser": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", + "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "requires": { + "bytes": "3.0.0", + "content-type": "1.0.4", + "debug": "2.6.9", + "depd": "1.1.1", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "on-finished": "2.3.0", + "qs": "6.5.1", + "raw-body": "2.3.2", + "type-is": "1.6.15" + } + }, + "boom": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", + "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", + "requires": { + "hoek": "4.2.0" + } + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browserify-sha3": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/browserify-sha3/-/browserify-sha3-0.0.1.tgz", + "integrity": "sha1-P/NKMAbvFcD7NWflQbkaI0ASPRE=", + "requires": { + "js-sha3": "0.3.1" + } + }, + "buffer": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.0.8.tgz", + "integrity": "sha512-xXvjQhVNz50v2nPeoOsNqWCLGfiv4ji/gXZM28jnVwdLJxH4mFyqgqCKfaK9zf1KUbG6zTkjLOy7ou+jSMarGA==", + "requires": { + "base64-js": "1.2.1", + "ieee754": "1.1.8" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + }, + "buffer-to-arraybuffer": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.2.tgz", + "integrity": "sha1-0NgFZNwxhmoZdlFUh7OrYg23yEk=", + "requires": { + "tape": "3.6.1" + } + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "requires": { + "delayed-stream": "1.0.0" + } + }, + "commander": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", + "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", + "requires": { + "graceful-readlink": "1.0.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cors": { + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.4.tgz", + "integrity": "sha1-K9OB8usgECAQXNUOpZ2mMJBpRoY=", + "requires": { + "object-assign": "4.1.1", + "vary": "1.1.2" + } + }, + "create-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", + "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", + "requires": { + "cipher-base": "1.0.4", + "inherits": "2.0.3", + "ripemd160": "2.0.1", + "sha.js": "2.4.9" + } + }, + "create-hmac": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", + "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", + "requires": { + "cipher-base": "1.0.4", + "create-hash": "1.1.3", + "inherits": "2.0.3", + "ripemd160": "2.0.1", + "safe-buffer": "5.1.1", + "sha.js": "2.4.9" + } + }, + "cryptiles": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", + "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", + "requires": { + "boom": "5.2.0" + }, + "dependencies": { + "boom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "requires": { + "hoek": "4.2.0" + } + } + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "1.0.0" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "decompress": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.0.tgz", + "integrity": "sha1-eu3YVCflqS2s/lVnSnxQXpbQH50=", + "requires": { + "decompress-tar": "4.1.1", + "decompress-tarbz2": "4.1.1", + "decompress-targz": "4.1.1", + "decompress-unzip": "4.0.1", + "graceful-fs": "4.1.11", + "make-dir": "1.1.0", + "pify": "2.3.0", + "strip-dirs": "2.1.0" + } + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "1.0.0" + } + }, + "decompress-tar": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", + "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", + "requires": { + "file-type": "5.2.0", + "is-stream": "1.1.0", + "tar-stream": "1.5.4" + } + }, + "decompress-tarbz2": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", + "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", + "requires": { + "decompress-tar": "4.1.1", + "file-type": "6.2.0", + "is-stream": "1.1.0", + "seek-bzip": "1.0.5", + "unbzip2-stream": "1.2.5" + }, + "dependencies": { + "file-type": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", + "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==" + } + } + }, + "decompress-targz": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", + "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", + "requires": { + "decompress-tar": "4.1.1", + "file-type": "5.2.0", + "is-stream": "1.1.0" + } + }, + "decompress-unzip": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", + "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=", + "requires": { + "file-type": "3.9.0", + "get-stream": "2.3.1", + "pify": "2.3.0", + "yauzl": "2.9.1" + }, + "dependencies": { + "file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=" + }, + "get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", + "requires": { + "object-assign": "4.1.1", + "pinkie-promise": "2.0.1" + } + } + } + }, + "deep-equal": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-0.2.2.tgz", + "integrity": "sha1-hLdFiW80xoTpjyzg5Cq69Du6AX0=" + }, + "defined": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-0.0.0.tgz", + "integrity": "sha1-817qfXBekzuvE7LwOz+D2SFAOz4=" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "dom-walk": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", + "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=" + }, + "dotenv": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", + "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=" + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "elliptic": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", + "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", + "requires": { + "bn.js": "4.11.8", + "brorand": "1.1.0", + "hash.js": "1.1.3", + "hmac-drbg": "1.0.1", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" + } + }, + "encodeurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", + "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=" + }, + "end-of-stream": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", + "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=", + "requires": { + "once": "1.4.0" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "eth-lib": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.27.tgz", + "integrity": "sha512-B8czsfkJYzn2UIEMwjc7Mbj+Cy72V+/OXH/tb44LV8jhrjizQJJ325xMOMyk3+ETa6r6oi0jsUY14+om8mQMWA==", + "requires": { + "bn.js": "4.11.8", + "elliptic": "6.4.0", + "keccakjs": "0.2.1", + "nano-json-stream-parser": "0.1.2", + "servify": "0.1.12", + "ws": "3.3.1", + "xhr-request-promise": "0.1.2" + } + }, + "ethjs-unit": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", + "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", + "requires": { + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + } + } + }, + "eventemitter3": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.1.1.tgz", + "integrity": "sha1-R3hr2qCHyvext15zq8XH1UAVjNA=" + }, + "express": { + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", + "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", + "requires": { + "accepts": "1.3.4", + "array-flatten": "1.1.1", + "body-parser": "1.18.2", + "content-disposition": "0.5.2", + "content-type": "1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "1.1.1", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.1", + "finalhandler": "1.1.0", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "1.1.2", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "2.0.2", + "qs": "6.5.1", + "range-parser": "1.2.0", + "safe-buffer": "5.1.1", + "send": "0.16.1", + "serve-static": "1.13.1", + "setprototypeof": "1.1.0", + "statuses": "1.3.1", + "type-is": "1.6.15", + "utils-merge": "1.0.1", + "vary": "1.1.2" + }, + "dependencies": { + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + } + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", + "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=" + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + }, + "fd-slicer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "requires": { + "pend": "1.2.0" + } + }, + "file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" + }, + "finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "requires": { + "debug": "2.6.9", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.3.1", + "unpipe": "1.0.0" + }, + "dependencies": { + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + } + } + }, + "for-each": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.2.tgz", + "integrity": "sha1-LEBFC5NI6X8oEyJZO6lnBLmr1NQ=", + "requires": { + "is-function": "1.0.1" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", + "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "fs-extra": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz", + "integrity": "sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU=", + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0" + } + }, + "fs-promise": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fs-promise/-/fs-promise-2.0.3.tgz", + "integrity": "sha1-9k5PhUvPaJqovdy6JokW2z20aFQ=", + "requires": { + "any-promise": "1.3.0", + "fs-extra": "2.1.2", + "mz": "2.7.0", + "thenify-all": "1.6.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.2" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "1.0.0" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "global": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", + "requires": { + "min-document": "2.19.0", + "process": "0.5.2" + } + }, + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "requires": { + "decompress-response": "3.3.0", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "is-plain-obj": "1.1.0", + "is-retry-allowed": "1.1.0", + "is-stream": "1.1.0", + "isurl": "1.0.0", + "lowercase-keys": "1.0.0", + "p-cancelable": "0.3.0", + "p-timeout": "1.2.0", + "safe-buffer": "5.1.1", + "timed-out": "4.0.1", + "url-parse-lax": "1.0.0", + "url-to-options": "1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "requires": { + "ajv": "5.3.0", + "har-schema": "2.0.0" + } + }, + "has-symbol-support-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.1.tgz", + "integrity": "sha512-JkaetveU7hFbqnAC1EV1sF4rlojU2D4Usc5CmS69l6NfmPDnpnFUegzFg33eDkkpNCxZ0mQp65HwUDrNFS/8MA==" + }, + "has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "requires": { + "has-symbol-support-x": "1.4.1" + } + }, + "hash-base": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", + "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", + "requires": { + "inherits": "2.0.3" + } + }, + "hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } + }, + "hawk": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", + "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", + "requires": { + "boom": "4.3.1", + "cryptiles": "3.1.2", + "hoek": "4.2.0", + "sntp": "2.1.0" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "1.1.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" + } + }, + "hoek": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", + "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==" + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.4.0" + } + }, + "http-https": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", + "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=" + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" + }, + "ieee754": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", + "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ipaddr.js": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz", + "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=" + }, + "is-function": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", + "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" + }, + "is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=" + }, + "is-natural-number": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", + "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=" + }, + "is-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", + "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=" + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, + "is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "requires": { + "has-to-string-tag-x": "1.4.1", + "is-object": "1.0.1" + } + }, + "js-sha3": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.3.1.tgz", + "integrity": "sha1-hhIoAhQvCChQKg0d7h2V4lO7AkM=" + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "keccakjs": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/keccakjs/-/keccakjs-0.2.1.tgz", + "integrity": "sha1-HWM6+QfvMFu/ny+mFtVsRFYd+k0=", + "requires": { + "browserify-sha3": "0.0.1", + "sha3": "1.2.0" + } + }, + "lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" + }, + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" + }, + "make-dir": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.1.0.tgz", + "integrity": "sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA==", + "requires": { + "pify": "3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + }, + "mime-db": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" + }, + "mime-types": { + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", + "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "requires": { + "mime-db": "1.30.0" + } + }, + "mimic-response": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.0.tgz", + "integrity": "sha1-3z02Uqc/3ta5sLJBRub9BSNTRY4=" + }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "requires": { + "dom-walk": "0.1.1" + } + }, + "minimalistic-assert": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", + "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "1.1.8" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + } + }, + "mkdirp-promise": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", + "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", + "requires": { + "mkdirp": "0.5.1" + } + }, + "mock-fs": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.4.2.tgz", + "integrity": "sha512-dF+yxZSojSiI8AXGoxj5qdFWpucndc54Ug+TwlpHFaV7j22MGG+OML2+FVa6xAZtjb/OFFQhOC37Jegx2GbEwA==" + }, + "mout": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/mout/-/mout-0.11.1.tgz", + "integrity": "sha1-ujYR318OWx/7/QEWa48C0fX6K5k=" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "requires": { + "any-promise": "1.3.0", + "object-assign": "4.1.1", + "thenify-all": "1.6.0" + } + }, + "nan": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.7.0.tgz", + "integrity": "sha1-2Vv3IeyHfgjbJ27T/G63j5CDrUY=" + }, + "nano-json-stream-parser": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", + "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=" + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" + }, + "number-to-bn": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", + "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", + "requires": { + "bn.js": "4.11.6", + "strip-hex-prefix": "1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + } + } + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-inspect": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-0.4.0.tgz", + "integrity": "sha1-9RV8EWwUVbJDsG7pdwM5LFrYn+w=" + }, + "oboe": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.3.tgz", + "integrity": "sha1-K0hl29Rr6BIlcT9Om/5Lz09oCk8=", + "requires": { + "http-https": "1.0.0" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1.0.2" + } + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-timeout": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.0.tgz", + "integrity": "sha1-mCD5lDTFgXhotPNICe5SkWYNW2w=", + "requires": { + "p-finally": "1.0.0" + } + }, + "parse-headers": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.1.tgz", + "integrity": "sha1-aug6eqJanZtwCswoaYzR8e1+lTY=", + "requires": { + "for-each": "0.3.2", + "trim": "0.0.1" + } + }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "pbkdf2": { + "version": "3.0.14", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", + "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", + "requires": { + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "ripemd160": "2.0.1", + "safe-buffer": "5.1.1", + "sha.js": "2.4.9" + } + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "2.0.4" + } + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=" + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "proxy-addr": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", + "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", + "requires": { + "forwarded": "0.1.2", + "ipaddr.js": "1.5.2" + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + }, + "query-string": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-2.4.2.tgz", + "integrity": "sha1-fbBmZCCAS6qSrp8miWKFWnYUPfs=", + "requires": { + "strict-uri-encode": "1.1.0" + } + }, + "randomhex": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/randomhex/-/randomhex-0.1.5.tgz", + "integrity": "sha1-us7vmCMpCRQA8qKRLGzQLxCU9YU=" + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + }, + "raw-body": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "unpipe": "1.0.0" + } + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } + }, + "request": { + "version": "2.83.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", + "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", + "requires": { + "aws-sign2": "0.7.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.3.1", + "har-validator": "5.0.3", + "hawk": "6.0.2", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.17", + "oauth-sign": "0.8.2", + "performance-now": "2.1.0", + "qs": "6.5.1", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.6.0", + "uuid": "3.1.0" + } + }, + "resumer": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", + "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", + "requires": { + "through": "2.3.8" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "requires": { + "glob": "7.1.2" + } + }, + "ripemd160": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", + "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", + "requires": { + "hash-base": "2.0.2", + "inherits": "2.0.3" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "scrypt": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/scrypt/-/scrypt-6.0.3.tgz", + "integrity": "sha1-BOAUpWgrU/pQwtXM4WfXGcBthw0=", + "requires": { + "nan": "2.7.0" + } + }, + "scrypt.js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/scrypt.js/-/scrypt.js-0.2.0.tgz", + "integrity": "sha1-r40UZbcemZARC+38WTuUeeA6ito=", + "requires": { + "scrypt": "6.0.3", + "scryptsy": "1.2.1" + } + }, + "scryptsy": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.2.1.tgz", + "integrity": "sha1-oyJfpLJST4AnAHYeKFW987LZIWM=", + "requires": { + "pbkdf2": "3.0.14" + } + }, + "seek-bzip": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz", + "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=", + "requires": { + "commander": "2.8.1" + } + }, + "send": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", + "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", + "requires": { + "debug": "2.6.9", + "depd": "1.1.1", + "destroy": "1.0.4", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.1", + "fresh": "0.5.2", + "http-errors": "1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.3.1" + }, + "dependencies": { + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + } + } + }, + "serve-static": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", + "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", + "requires": { + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "parseurl": "1.3.2", + "send": "0.16.1" + } + }, + "servify": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", + "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", + "requires": { + "body-parser": "1.18.2", + "cors": "2.8.4", + "express": "4.16.2", + "request": "2.83.0", + "xhr": "2.4.0" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" + }, + "sha.js": { + "version": "2.4.9", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz", + "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==", + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } + }, + "sha3": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/sha3/-/sha3-1.2.0.tgz", + "integrity": "sha1-aYnxtwpJhwWHajc+LGKs6WqpOZo=", + "requires": { + "nan": "2.7.0" + } + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=" + }, + "simple-get": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-1.4.3.tgz", + "integrity": "sha1-6XVe2kB+ltpAxeUVjJ6jezO+y+s=", + "requires": { + "once": "1.4.0", + "unzip-response": "1.0.2", + "xtend": "4.0.1" + } + }, + "sntp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", + "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", + "requires": { + "hoek": "4.2.0" + } + }, + "sshpk": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + } + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "5.1.1" + } + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" + }, + "strip-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", + "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", + "requires": { + "is-natural-number": "4.0.1" + } + }, + "strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", + "requires": { + "is-hex-prefixed": "1.0.0" + } + }, + "swarm-js": { + "version": "0.1.35", + "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.35.tgz", + "integrity": "sha512-fwVjz/RoRV8/HoZHbbYjKHu+gCiXHrtUwbw0gxc0E1yQPjV5cEXzbCblbBJPzezcBEAbLDYPdMXkclbsW7aGhw==", + "requires": { + "buffer": "5.0.8", + "decompress": "4.2.0", + "fs-extra": "2.1.2", + "fs-promise": "2.0.3", + "got": "7.1.0", + "mime-types": "2.1.17", + "mkdirp-promise": "5.0.1", + "mock-fs": "4.4.2", + "setimmediate": "1.0.5", + "tar.gz": "1.0.7", + "xhr-request-promise": "0.1.2" + } + }, + "tape": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/tape/-/tape-3.6.1.tgz", + "integrity": "sha1-SJPdU+KApfWMDOswwsDrs7zVHh8=", + "requires": { + "deep-equal": "0.2.2", + "defined": "0.0.0", + "glob": "3.2.11", + "inherits": "2.0.3", + "object-inspect": "0.4.0", + "resumer": "0.0.0", + "through": "2.3.8" + }, + "dependencies": { + "glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", + "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", + "requires": { + "inherits": "2.0.3", + "minimatch": "0.3.0" + } + }, + "minimatch": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", + "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", + "requires": { + "lru-cache": "2.7.3", + "sigmund": "1.0.1" + } + } + } + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "tar-stream": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.4.tgz", + "integrity": "sha1-NlSc8E7RrumyowwBQyUiONr5QBY=", + "requires": { + "bl": "1.2.1", + "end-of-stream": "1.4.0", + "readable-stream": "2.3.3", + "xtend": "4.0.1" + } + }, + "tar.gz": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/tar.gz/-/tar.gz-1.0.7.tgz", + "integrity": "sha512-uhGatJvds/3diZrETqMj4RxBR779LKlIE74SsMcn5JProZsfs9j0QBwWO1RW+IWNJxS2x8Zzra1+AW6OQHWphg==", + "requires": { + "bluebird": "2.11.0", + "commander": "2.8.1", + "fstream": "1.0.11", + "mout": "0.11.1", + "tar": "2.2.1" + } + }, + "thenify": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz", + "integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=", + "requires": { + "any-promise": "1.3.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "requires": { + "thenify": "3.3.0" + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + }, + "tough-cookie": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", + "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "requires": { + "punycode": "1.4.1" + } + }, + "trim": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", + "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "5.1.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "optional": true + }, + "type-is": { + "version": "1.6.15", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", + "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", + "requires": { + "media-typer": "0.3.0", + "mime-types": "2.1.17" + } + }, + "typedarray-to-buffer": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.2.tgz", + "integrity": "sha1-EBezLZhP9VbroQD1AViauhrOLgQ=", + "requires": { + "is-typedarray": "1.0.0" + } + }, + "ultron": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.0.tgz", + "integrity": "sha1-sHoualQagV/Go0zNRTO67DB8qGQ=" + }, + "unbzip2-stream": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.2.5.tgz", + "integrity": "sha512-izD3jxT8xkzwtXRUZjtmRwKnZoeECrfZ8ra/ketwOcusbZEp4mjULMnJOCfTDZBgGQAAY1AJ/IgxcwkavcX9Og==", + "requires": { + "buffer": "3.6.0", + "through": "2.3.8" + }, + "dependencies": { + "base64-js": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", + "integrity": "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=" + }, + "buffer": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.6.0.tgz", + "integrity": "sha1-pyyTb3e5a/UvX357RnGAYoVR3vs=", + "requires": { + "base64-js": "0.0.8", + "ieee754": "1.1.8", + "isarray": "1.0.0" + } + } + } + }, + "underscore": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unzip-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz", + "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=" + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "requires": { + "prepend-http": "1.0.4" + } + }, + "url-set-query": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", + "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=" + }, + "url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" + }, + "utf8": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.1.tgz", + "integrity": "sha1-LgHbAvfY0JRPdxBPFgnrDDBM92g=" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" + } + }, + "web3": { + "version": "1.0.0-beta.24", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.0.0-beta.24.tgz", + "integrity": "sha1-C2U9alD0B7N/WTNx+27hvTofJ8I=", + "requires": { + "web3-bzz": "1.0.0-beta.22", + "web3-core": "1.0.0-beta.24", + "web3-eth": "1.0.0-beta.24", + "web3-eth-personal": "1.0.0-beta.24", + "web3-net": "1.0.0-beta.24", + "web3-shh": "1.0.0-beta.24", + "web3-utils": "1.0.0-beta.24" + } + }, + "web3-bzz": { + "version": "1.0.0-beta.22", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.0.0-beta.22.tgz", + "integrity": "sha1-jrLbNKlEiDnpwMb1pI5n5m4jopQ=", + "requires": { + "got": "7.1.0", + "swarm-js": "0.1.35", + "underscore": "1.8.3" + } + }, + "web3-core": { + "version": "1.0.0-beta.24", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.0.0-beta.24.tgz", + "integrity": "sha1-JCeLrsZJu4YCKtCYXs7kTHZ4VDg=", + "requires": { + "web3-core-helpers": "1.0.0-beta.24", + "web3-core-method": "1.0.0-beta.24", + "web3-core-requestmanager": "1.0.0-beta.24", + "web3-utils": "1.0.0-beta.24" + } + }, + "web3-core-helpers": { + "version": "1.0.0-beta.24", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.24.tgz", + "integrity": "sha1-638UQbDGKLjJryqrXt1eOQM5IJI=", + "requires": { + "underscore": "1.8.3", + "web3-eth-iban": "1.0.0-beta.24", + "web3-utils": "1.0.0-beta.24" + } + }, + "web3-core-method": { + "version": "1.0.0-beta.24", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.0.0-beta.24.tgz", + "integrity": "sha1-cSvsy2WK+RVRrrOjlg3ODfGGPp8=", + "requires": { + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.24", + "web3-core-promievent": "1.0.0-beta.22", + "web3-core-subscriptions": "1.0.0-beta.24", + "web3-utils": "1.0.0-beta.24" + } + }, + "web3-core-promievent": { + "version": "1.0.0-beta.22", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.22.tgz", + "integrity": "sha1-qGLxW+o4c0qcOH9jwi568eC4cYg=", + "requires": { + "bluebird": "3.3.1", + "eventemitter3": "1.1.1" + }, + "dependencies": { + "bluebird": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.3.1.tgz", + "integrity": "sha1-+Xrhlw9B2FF3KDBT6aEgFg5mxh0=" + } + } + }, + "web3-core-requestmanager": { + "version": "1.0.0-beta.24", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.0.0-beta.24.tgz", + "integrity": "sha1-+dbi8kxNOfDCNYKlUf6/JSfctII=", + "requires": { + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.24", + "web3-providers-http": "1.0.0-beta.24", + "web3-providers-ipc": "1.0.0-beta.24", + "web3-providers-ws": "1.0.0-beta.24" + } + }, + "web3-core-subscriptions": { + "version": "1.0.0-beta.24", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.24.tgz", + "integrity": "sha1-TEGVP/J3E2LIjpF+8UCVMu6KvHg=", + "requires": { + "eventemitter3": "1.1.1", + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.24" + } + }, + "web3-eth": { + "version": "1.0.0-beta.24", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.0.0-beta.24.tgz", + "integrity": "sha1-VO6vejIL4DYK2IJdpFwjRzW2qvE=", + "requires": { + "underscore": "1.8.3", + "web3-core": "1.0.0-beta.24", + "web3-core-helpers": "1.0.0-beta.24", + "web3-core-method": "1.0.0-beta.24", + "web3-core-subscriptions": "1.0.0-beta.24", + "web3-eth-abi": "1.0.0-beta.24", + "web3-eth-accounts": "1.0.0-beta.24", + "web3-eth-contract": "1.0.0-beta.24", + "web3-eth-iban": "1.0.0-beta.24", + "web3-eth-personal": "1.0.0-beta.24", + "web3-net": "1.0.0-beta.24", + "web3-utils": "1.0.0-beta.24" + } + }, + "web3-eth-abi": { + "version": "1.0.0-beta.24", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.24.tgz", + "integrity": "sha1-uLYyqkR+T2ybU4jWlzihIENOP3Q=", + "requires": { + "bn.js": "4.11.6", + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.24", + "web3-utils": "1.0.0-beta.24" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + } + } + }, + "web3-eth-accounts": { + "version": "1.0.0-beta.24", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.0.0-beta.24.tgz", + "integrity": "sha1-Ab669zmoXhZScjCDQ36UobxDWzg=", + "requires": { + "bluebird": "3.3.1", + "eth-lib": "0.2.5", + "scrypt.js": "0.2.0", + "underscore": "1.8.3", + "uuid": "2.0.1", + "web3-core": "1.0.0-beta.24", + "web3-core-helpers": "1.0.0-beta.24", + "web3-core-method": "1.0.0-beta.24", + "web3-utils": "1.0.0-beta.24" + }, + "dependencies": { + "bluebird": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.3.1.tgz", + "integrity": "sha1-+Xrhlw9B2FF3KDBT6aEgFg5mxh0=" + }, + "eth-lib": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.5.tgz", + "integrity": "sha512-pXs4ryU+7S8MPpkQpNqG4JlXEec87kbXowQbYzRVV+c5XUccrO6WOxVPDicxql1AXSBzfmBSFVkvvG+H4htuxg==", + "requires": { + "bn.js": "4.11.8", + "elliptic": "6.4.0", + "xhr-request-promise": "0.1.2" + } + }, + "uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=" + } + } + }, + "web3-eth-contract": { + "version": "1.0.0-beta.24", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.24.tgz", + "integrity": "sha1-5Kk1O5eDEN0vlGksMD9mH/ihH50=", + "requires": { + "underscore": "1.8.3", + "web3-core": "1.0.0-beta.24", + "web3-core-helpers": "1.0.0-beta.24", + "web3-core-method": "1.0.0-beta.24", + "web3-core-promievent": "1.0.0-beta.22", + "web3-core-subscriptions": "1.0.0-beta.24", + "web3-eth-abi": "1.0.0-beta.24", + "web3-utils": "1.0.0-beta.24" + } + }, + "web3-eth-iban": { + "version": "1.0.0-beta.24", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.24.tgz", + "integrity": "sha1-NssxYFiIm34Jym9TX8ZnFEltChs=", + "requires": { + "bn.js": "4.11.8", + "web3-utils": "1.0.0-beta.24" + } + }, + "web3-eth-personal": { + "version": "1.0.0-beta.24", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.24.tgz", + "integrity": "sha1-PCBADL9hZ0f5NzS0dhnJs+9B1EM=", + "requires": { + "web3-core": "1.0.0-beta.24", + "web3-core-helpers": "1.0.0-beta.24", + "web3-core-method": "1.0.0-beta.24", + "web3-net": "1.0.0-beta.24", + "web3-utils": "1.0.0-beta.24" + } + }, + "web3-net": { + "version": "1.0.0-beta.24", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.0.0-beta.24.tgz", + "integrity": "sha1-3AKYcgHhFuVLUbFqec/dlAEuHtM=", + "requires": { + "web3-core": "1.0.0-beta.24", + "web3-core-method": "1.0.0-beta.24", + "web3-utils": "1.0.0-beta.24" + } + }, + "web3-providers-http": { + "version": "1.0.0-beta.24", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.0.0-beta.24.tgz", + "integrity": "sha1-EfbB0XgpJX0Ud9adkAPgGOMaxIw=", + "requires": { + "web3-core-helpers": "1.0.0-beta.24", + "xhr2": "0.1.4" + } + }, + "web3-providers-ipc": { + "version": "1.0.0-beta.24", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.0.0-beta.24.tgz", + "integrity": "sha1-wvIuk9xojLNUH4bIyEUJSO5lVqk=", + "requires": { + "oboe": "2.1.3", + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.24" + } + }, + "web3-providers-ws": { + "version": "1.0.0-beta.24", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.0.0-beta.24.tgz", + "integrity": "sha1-CaFwOsexSbaDrIx3tcg2AVvJgmw=", + "requires": { + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.24", + "websocket": "git://github.com/frozeman/WebSocket-Node.git#7004c39c42ac98875ab61126e5b4a925430f592c" + } + }, + "web3-shh": { + "version": "1.0.0-beta.24", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.0.0-beta.24.tgz", + "integrity": "sha1-ouff5oYGm2uDop+a3Fq3OnyBl4Q=", + "requires": { + "web3-core": "1.0.0-beta.24", + "web3-core-method": "1.0.0-beta.24", + "web3-core-subscriptions": "1.0.0-beta.24", + "web3-net": "1.0.0-beta.24" + } + }, + "web3-utils": { + "version": "1.0.0-beta.24", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.24.tgz", + "integrity": "sha1-A6lBJ8+cv8ZkZ2CO9LgFXv6JIeo=", + "requires": { + "bn.js": "4.11.6", + "eth-lib": "0.1.27", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randomhex": "0.1.5", + "underscore": "1.8.3", + "utf8": "2.1.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + } + } + }, + "websocket": { + "version": "git://github.com/frozeman/WebSocket-Node.git#7004c39c42ac98875ab61126e5b4a925430f592c", + "requires": { + "debug": "2.6.9", + "nan": "2.7.0", + "typedarray-to-buffer": "3.1.2", + "yaeti": "0.0.6" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "ws": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.1.tgz", + "integrity": "sha512-8A/uRMnQy8KCQsmep1m7Bk+z/+LIkeF7w+TDMLtX1iZm5Hq9HsUDmgFGaW1ACW5Cj0b2Qo7wCvRhYN2ErUVp/A==", + "requires": { + "async-limiter": "1.0.0", + "safe-buffer": "5.1.1", + "ultron": "1.1.0" + } + }, + "xhr": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.4.0.tgz", + "integrity": "sha1-4W5mpF+GmGHu76tBbV7/ci3ECZM=", + "requires": { + "global": "4.3.2", + "is-function": "1.0.1", + "parse-headers": "2.0.1", + "xtend": "4.0.1" + } + }, + "xhr-request": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.0.1.tgz", + "integrity": "sha1-g/CKSyC+7Geowcco6BAvTJ7svdo=", + "requires": { + "buffer-to-arraybuffer": "0.0.2", + "object-assign": "3.0.0", + "query-string": "2.4.2", + "simple-get": "1.4.3", + "timed-out": "2.0.0", + "url-set-query": "1.0.0", + "xhr": "2.4.0" + }, + "dependencies": { + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=" + }, + "timed-out": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-2.0.0.tgz", + "integrity": "sha1-84sK6B03R9YoAB9B2vxlKs5nHAo=" + } + } + }, + "xhr-request-promise": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.2.tgz", + "integrity": "sha1-NDxE0e53JrhkgGloLQ+EDIO0Jh0=", + "requires": { + "xhr-request": "1.0.1" + } + }, + "xhr2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.1.4.tgz", + "integrity": "sha1-f4dliEdxbbUCYyOBL4GMras4el8=" + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + }, + "yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=" + }, + "yauzl": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.9.1.tgz", + "integrity": "sha1-qBmB6nCleUYTOIPwKcWCGok1mn8=", + "requires": { + "buffer-crc32": "0.2.13", + "fd-slicer": "1.0.1" + } + } + } +} diff --git a/scripts/package.json b/scripts/package.json new file mode 100644 index 0000000..26cb7b2 --- /dev/null +++ b/scripts/package.json @@ -0,0 +1,15 @@ +{ + "name": "scripts", + "version": "1.0.0", + "description": "", + "main": "whitelist.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "Roman Storm", + "license": "MIT", + "dependencies": { + "dotenv": "^4.0.0", + "web3": "^1.0.0-beta.24" + } +} diff --git a/scripts/whitelist.js b/scripts/whitelist.js new file mode 100644 index 0000000..63266bb --- /dev/null +++ b/scripts/whitelist.js @@ -0,0 +1,65 @@ +require('dotenv').config(); +const ARRAY_OF_ADDRESSES = require('./ARRAY_OF_ADDRESSES.json'); +const RPC_PORT = process.env.RPC_PORT; +const PRESALE_ADDRESS = process.env.PRESALE_ADDRESS; +const UNLOCKED_ADDRESS = process.env.UNLOCKED_ADDRESS; + +const ICO_ABI = require('../build/contracts/PresaleOracles.json').abi; +const Web3 = require('web3'); +const provider = new Web3.providers.HttpProvider(`http://localhost:${RPC_PORT}`); +const web3 = new Web3(provider); + +const { filterAddresses, setup } = require('./filterAddresses'); +setup({ web3Param: web3, contribAddress: PRESALE_ADDRESS}); +filterAddresses(ARRAY_OF_ADDRESSES).then(async (toWhitelist) => { + console.log(toWhitelist.length); + const addPerTx = 160; + const slices = Math.ceil(toWhitelist.length / addPerTx); + var txcount = await web3.eth.getTransactionCount(UNLOCKED_ADDRESS); + const nonce = web3.utils.toHex(txcount); + console.log('STARTED', nonce); + return sendTransactionToContribution({array: toWhitelist, slice: slices, addPerTx, nonce}); +}).then(console.log).catch(console.error); + +const GAS_PRICE = web3.utils.toWei(process.env.GAS_PRICE, 'gwei'); +const GAS_LIMIT = '6700000'; +const myContract = new web3.eth.Contract(ICO_ABI, PRESALE_ADDRESS, { + from: UNLOCKED_ADDRESS, // default from address + gasPrice: GAS_PRICE, + gas: GAS_LIMIT // default gas price in wei +}); + + +async function sendTransactionToContribution({array, slice, addPerTx, nonce}) { + if(array.length === 0){ + console.log('array doesnot have not whitelisted addresses'); + process.exit(); + } + const start = (slice - 1) * addPerTx; + const end = slice * addPerTx; + const arrayToProcess = array.slice(start, end); + let encodedData = myContract.methods.whitelistInvestors(arrayToProcess).encodeABI(); + + console.log('Processing array length', arrayToProcess.length, arrayToProcess[0], arrayToProcess[arrayToProcess.length - 1]); + return new Promise((res) => { + web3.eth.estimateGas({ + from: UNLOCKED_ADDRESS, to: PRESALE_ADDRESS, data: encodedData, gas: GAS_LIMIT, gasPrice: GAS_PRICE + }).then((gasNeeded) => { + console.log('gasNeeded', gasNeeded); + web3.eth.sendTransaction({ + from: UNLOCKED_ADDRESS, to: PRESALE_ADDRESS, data: encodedData, gas: gasNeeded, gasPrice: GAS_PRICE, nonce + }).on('transactionHash', function(hash){console.log('hash', hash)}); + slice--; + if (slice > 0) { + nonce = parseInt(nonce, 16); + nonce++; + nonce = web3.utils.toHex(nonce); + sendTransactionToContribution({array, slice, addPerTx, nonce}); + } else { + res({ result: 'completed' }); + // process.exit(); + } + + }); + }) +} \ No newline at end of file diff --git a/test/presale.js b/test/presale.js index 57a7e15..e9a14f1 100644 --- a/test/presale.js +++ b/test/presale.js @@ -112,6 +112,11 @@ contract('Presale', function(accounts) { PRESALE_END_DATE = moment('2017-12-18T16:00:00Z').unix(); await presaleContract.initialize(PRESALE_START_DATE, PRESALE_END_DATE, ETHER.mul(40000), ETHER.mul(100), accounts[1], {from: accounts[0]}) }) + it('cannot buy if not whitelisted', async () => { + // require(whitelist[msg.sender]); + await presaleContract.sendTransaction({amount: ETHER}) + .should.be.rejectedWith(REVERT_MSG); + }) it('cannot buy if not value is 0', async () => { // require(msg.value > 0); await presaleContract.setTime(PRESALE_START_DATE); @@ -150,6 +155,7 @@ contract('Presale', function(accounts) { const vault = accounts[1]; const preVaultBalance = await web3.eth.getBalance(vault); await presaleContract.setTime(PRESALE_START_DATE); + await presaleContract.whitelistInvestor(accounts[0]); await presaleContract.sendTransaction({value: ETHER.mul(100)}); ETHER.mul(100).should.be.bignumber.equal( await presaleContract.investorBalances(accounts[0]) @@ -177,5 +183,78 @@ contract('Presale', function(accounts) { }) }) + describe('whitelisting capabilities', async ()=> { + describe('#whitelistInvestor', async ()=>{ + it('cannot by called by non-owner', async ()=> { + await presaleContract.whitelistInvestor(accounts[0], {from: accounts[1]}) + .should.be.rejectedWith(REVERT_MSG); + }) + it('whitelists an investor', async ()=> { + '0'.should.be.bignumber.equal( + await presaleContract.investorsLength() + ) + false.should.be.equal( + await presaleContract.whitelist(accounts[0]) + ) + await presaleContract.whitelistInvestor(accounts[0]); + true.should.be.equal( + await presaleContract.whitelist(accounts[0]) + ) + '1'.should.be.bignumber.equal( + await presaleContract.investorsLength() + ) + }) + }) + describe('#whitelistInvestors', async ()=>{ + it('cannot by called by non-owner', async ()=> { + await presaleContract.whitelistInvestors([accounts[0]], {from: accounts[1]}) + .should.be.rejectedWith(REVERT_MSG); + }) + it('whitelists investors', async ()=> { + '0'.should.be.bignumber.equal( + await presaleContract.investorsLength() + ) + false.should.be.equal( + await presaleContract.whitelist(accounts[0]) + ) + await presaleContract.whitelistInvestors([accounts[0], accounts[1], accounts[2]]); + true.should.be.equal( + await presaleContract.whitelist(accounts[2]) + ) + '3'.should.be.bignumber.equal( + await presaleContract.investorsLength() + ) + }) + }) + describe('#blacklistInvestor', async ()=>{ + it('cannot by called by non-owner', async ()=> { + await presaleContract.blacklistInvestor(accounts[0], {from: accounts[1]}) + .should.be.rejectedWith(REVERT_MSG); + }) + it('blacklist an investors', async ()=> { + '0'.should.be.bignumber.equal( + await presaleContract.investorsLength() + ) + false.should.be.equal( + await presaleContract.whitelist(accounts[0]) + ) + await presaleContract.whitelistInvestors([accounts[0], accounts[1], accounts[2]]); + true.should.be.equal( + await presaleContract.whitelist(accounts[0]) + ) + '3'.should.be.bignumber.equal( + await presaleContract.investorsLength() + ) + await presaleContract.blacklistInvestor(accounts[0]); + false.should.be.equal( + await presaleContract.whitelist(accounts[0]) + ) + '2'.should.be.bignumber.equal( + await presaleContract.investorsLength() + ) + }) + }) + }) + }); \ No newline at end of file