Contract 0x8c9737c9a28af4d40B8Ef5C992769c2D8539df12

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x18658c5012c8b48a0fc5a590068734f730f595f53f6b676b217216c85d639df50x60806040103103302021-11-25 7:23:426 days 17 hrs ago0xd29205598630823f3f8d71664da7dad0c1305f45 IN  Contract Creation0 HT0.0079853325 2.5
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TdexMining

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at hecoinfo.com on 2021-11-25
*/

// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.8.0 <0.9.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

struct OrderMining {
    uint256 id;
    uint256 orderId;
    uint256 matchId;
    uint256 amount;
    uint time;
    address sender;
    bool hasReceive;
}

struct Data {
    uint256 autoId;
    mapping(address => uint256)         revenues;
    mapping(uint256 => OrderMining)     orderMining;
    mapping(address => uint256[])       orderMiningIdList;
    mapping(address => uint256)         orderGetProgress;
}

interface PoolInterface {
    
    function production(address _to, uint256 _production) external returns (uint256 alreadyProduction);
    
    function tokenContract() external pure returns (address);
}

interface TurnoverBooks {
    
    function get(address _sender) external view returns (uint256);
    
    function write(address _sender, uint256 _turnover) external;
}

interface BalanceTools {

    function write(address _sender) external;
}

contract TdexMining {
    
    address[] private _contractList;
    
    mapping(address => Data) map;
    
    mapping(address => uint256) _revenues;

    mapping(address => uint256) _balances;

    address private _pool;
    
    address private _turnoverBooks;

    address private _balanceTools;

    address private _gate;
    
    address private _owner;
    
    address private _token;

    uint256[] private _expInClasses;
    
    uint256[] private _coeffcientOfClasses;

    constructor (address __pool, address __turnoverBooks, address __balanceTools) {  
        _owner = msg.sender;
        _pool = __pool;
        _token = PoolInterface(_pool).tokenContract();
        _turnoverBooks = __turnoverBooks;
        _balanceTools = __balanceTools;
        _initExpInClasses();
        _initCoeffcientOfClasses();
    }
    
    function _initExpInClasses() private
    {
        if (_expInClasses.length > 0)
            return;
        
        _expInClasses.push(1 * 10 ** 22);
        _expInClasses.push(2 * 10 ** 22);
        uint i = _expInClasses.length;
        while (i < 25)
        {
            _expInClasses.push(_expInClasses[i-2] + _expInClasses[i-1]);
            i++;
        }
    }
    
    function _initCoeffcientOfClasses() private
    {
        if (_coeffcientOfClasses.length > 0)
            return;
        
        _coeffcientOfClasses.push(100);
        uint i = _coeffcientOfClasses.length;
        while (i < 25)
        {
            _coeffcientOfClasses.push((10 + 10 * i * 9 / 24) * (10 + 10 * i * 9 / 24));
            i++;
        }
    }
    
    function _toMiningAmount(address _sender, uint256 _ttTransactionNumber) internal view returns (uint256)
    {
        uint level = getLevel(_sender);
        if (level == 0)
            return 0;
        return _ttTransactionNumber * _coeffcientOfClasses[level-1] / 1000000;
    }
    
    function getExperience(address _sender) public view returns (uint256)
    {
        return TurnoverBooks(_turnoverBooks).get(_sender);
    }
    
    function getLevel(address _sender) public view returns (uint)
    {
        uint256 _value = getExperience(_sender);
        uint index = 0;
        uint i = _expInClasses.length - 1;
        while (true)
        {
            if (_expInClasses[i] <= _value)
            {
                index = i+1;
                break;
            }
            if (i == 0)
                break;
            i--;
        }
        return index;
    }

    function getExps() external view returns (uint256[] memory) //..................
    {
        return _expInClasses;
    }
    
    function getCoes() external view returns (uint256[] memory) //..................
    {
        return _coeffcientOfClasses;
    }

    modifier onlyOwner() {
        require(_owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }

    modifier onlyGate() {
        require(_gate == msg.sender, "Ownable: caller is not the gate");
        _;
    }
    
    function setGate(address __gate) external onlyOwner
    {
        _gate = __gate;
    }
    
    function tokenContract() external view returns (address)
    {
        return _token;
    }
    
    function mining(address _tokenContract, uint256 _orderId, uint256 _matchId, address _sender, uint256 _turnover, uint256 _ttTransactionNumber) external onlyGate
    {
        if (_turnover == 0) 
            return;
 
        uint256 amount = 0;

        amount = _toMiningAmount(_sender, _ttTransactionNumber);
        
        TurnoverBooks(_turnoverBooks).write(_sender, _turnover);

        BalanceTools(_balanceTools).write(_sender);

        amount = PoolInterface(_pool).production(address(this), amount);

        if (amount > 0)
        {
            Data storage data = map[_tokenContract];
            if (data.autoId == 0)
            {
                _contractList.push(_tokenContract);
            }
            data.autoId++;
            
            uint256 id = data.autoId;
            data.orderMining[id] = OrderMining({
                id:id,
                orderId:_orderId,
                matchId:_matchId,
                amount:amount,
                time:block.timestamp,
                sender:_sender,
                hasReceive:false
            });
            
            data.orderMiningIdList[_sender].push(id);
            
            _revenues[_sender] += amount;
            _balances[_sender] += amount;
            data.revenues[_sender] += amount;

        }
    }
    
    function getOrderMiningIdListLength(address _tokenContract, address _sender) external view returns (uint length)
    {
        return map[_tokenContract].orderMiningIdList[_sender].length;
    }

    function getOrderMiningIdListCountDesc10(address _tokenContract, uint index, address _sender) external view returns (uint256[10] memory list)
    {
        uint256[] memory orderMiningIdList = map[_tokenContract].orderMiningIdList[_sender];
        uint length = orderMiningIdList.length;
        if (index > 0 && index <= length)
        {
            uint begin = index-1;
            uint end = 0;
            if (index >= 10)
            {
                end = index-10;
            }
            uint j = 0;
            uint i = begin;
            while(true)
            {
                list[j] = orderMiningIdList[i];
                if (i == end) break;
                i--;
                j++;
            }
        }
    }
    
    function getOrderMining(address _tokenContract, uint256 _id) external view returns (
        uint256 orderId,
        uint256 matchId,
        uint256 amount,
        uint    time,
        address sender,
        bool hasReceive
    )
    {
        OrderMining memory order = map[_tokenContract].orderMining[_id];
        
        orderId = order.orderId;
        matchId = order.matchId;
        amount = order.amount;
        time = order.time;
        sender = order.sender;
        hasReceive = order.hasReceive;
    }
    
    function revenueOf(address _sender) external view returns (uint256 revenue)
    {
        return _revenues[_sender];
    }
    
    function balanceOf(address _sender) external view returns (uint256 balance)
    {
        return _balances[_sender];
    }
    
    function revenueFromTokenOf(address _tokenContract, address _sender) external view returns (uint256 revenueFromToken)
    {
        return map[_tokenContract].revenues[_sender];
    }
    
    function sendReceive() external returns (uint256)
    {
        uint256 amount = 0;
        address _sender = msg.sender;
        for (uint i=0; i<_contractList.length; i++)
        {
            Data storage data = map[_contractList[i]];
            for (uint j=data.orderGetProgress[_sender]; j<data.orderMiningIdList[_sender].length; j++)
            {
                uint256 id = data.orderMiningIdList[_sender][j];
                if (data.orderMining[id].hasReceive == false && data.orderMining[id].time + 86400 <= block.timestamp)
                {
                    amount += data.orderMining[id].amount;
                    data.orderMining[id].hasReceive = true;
                    data.orderGetProgress[_sender] = j;
                }
            }
        }
        _balances[_sender] -= amount;
        IERC20(_token).transfer(_sender, amount);
        return amount;
    }
    
    function getReleasedRevenueOf(address _sender) external view returns (uint256)
    {
        uint256 releasedRevenue = 0;
        for (uint i=0; i<_contractList.length; i++)
        {
            Data storage data = map[_contractList[i]];
            for (uint j=data.orderGetProgress[_sender]; j<data.orderMiningIdList[_sender].length; j++)
            {
                uint256 id = data.orderMiningIdList[_sender][j];
                if (data.orderMining[id].hasReceive == false && data.orderMining[id].time + 86400 <= block.timestamp)
                {
                    releasedRevenue += data.orderMining[id].amount;
                }
            }
        }
        return releasedRevenue;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"__pool","type":"address"},{"internalType":"address","name":"__turnoverBooks","type":"address"},{"internalType":"address","name":"__balanceTools","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCoes","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"getExperience","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getExps","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"getLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenContract","type":"address"},{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"getOrderMining","outputs":[{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"uint256","name":"matchId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"time","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"bool","name":"hasReceive","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenContract","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"address","name":"_sender","type":"address"}],"name":"getOrderMiningIdListCountDesc10","outputs":[{"internalType":"uint256[10]","name":"list","type":"uint256[10]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenContract","type":"address"},{"internalType":"address","name":"_sender","type":"address"}],"name":"getOrderMiningIdListLength","outputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"getReleasedRevenueOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenContract","type":"address"},{"internalType":"uint256","name":"_orderId","type":"uint256"},{"internalType":"uint256","name":"_matchId","type":"uint256"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint256","name":"_turnover","type":"uint256"},{"internalType":"uint256","name":"_ttTransactionNumber","type":"uint256"}],"name":"mining","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenContract","type":"address"},{"internalType":"address","name":"_sender","type":"address"}],"name":"revenueFromTokenOf","outputs":[{"internalType":"uint256","name":"revenueFromToken","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"revenueOf","outputs":[{"internalType":"uint256","name":"revenue","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sendReceive","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"__gate","type":"address"}],"name":"setGate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tokenContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b506040516200277b3803806200277b833981810160405281019062000037919062000503565b33600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166355a373d66040518163ffffffff1660e01b815260040160206040518083038186803b1580156200012257600080fd5b505afa15801562000137573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200015d91906200055f565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200022f6200024860201b60201c565b6200023f6200038560201b60201c565b505050620007a7565b6000600a8054905011156200025d5762000383565b600a69021e19e0c9bab24000009080600181540180825580915050600190039060005260206000200160009091909190915055600a69043c33c193756480000090806001815401808255809150506001900390600052602060002001600090919091909150556000600a8054905090505b60198110156200038157600a80600183620002ea9190620005ca565b81548110620002fe57620002fd62000605565b5b9060005260206000200154600a6002846200031a9190620005ca565b815481106200032e576200032d62000605565b5b906000526020600020015462000345919062000634565b90806001815401808255809150506001900390600052602060002001600090919091909150558080620003789062000691565b915050620002ce565b505b565b6000600b8054905011156200039a5762000497565b600b606490806001815401808255809150506001900390600052602060002001600090919091909150556000600b8054905090505b60198110156200049557600b6018600983600a620003ee9190620006df565b620003fa9190620006df565b6200040691906200076f565b600a62000414919062000634565b6018600984600a620004279190620006df565b620004339190620006df565b6200043f91906200076f565b600a6200044d919062000634565b620004599190620006df565b908060018154018082558091505060019003906000526020600020016000909190919091505580806200048c9062000691565b915050620003cf565b505b565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620004cb826200049e565b9050919050565b620004dd81620004be565b8114620004e957600080fd5b50565b600081519050620004fd81620004d2565b92915050565b6000806000606084860312156200051f576200051e62000499565b5b60006200052f86828701620004ec565b93505060206200054286828701620004ec565b92505060406200055586828701620004ec565b9150509250925092565b60006020828403121562000578576200057762000499565b5b60006200058884828501620004ec565b91505092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620005d78262000591565b9150620005e48362000591565b925082821015620005fa57620005f96200059b565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000620006418262000591565b91506200064e8362000591565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200068657620006856200059b565b5b828201905092915050565b60006200069e8262000591565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415620006d457620006d36200059b565b5b600182019050919050565b6000620006ec8262000591565b9150620006f98362000591565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200073557620007346200059b565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200077c8262000591565b9150620007898362000591565b9250826200079c576200079b62000740565b5b828204905092915050565b611fc480620007b76000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063817c896611610097578063e2d152b011610066578063e2d152b0146102ac578063eb17881c146102dc578063fd31d394146102fa578063ff7e88dd1461032f576100f5565b8063817c89661461021457806388315a40146102445780638d87833c14610260578063c1b6f97f1461027c576100f5565b806365ba832d116100d357806365ba832d146101665780636b743a2c146101965780636dd28b37146101c657806370a08231146101e4576100f5565b80632d617cec146100fa57806331243b3b1461012a57806355a373d614610148575b600080fd5b610114600480360381019061010f91906117b9565b61035f565b6040516101219190611812565b60405180910390f35b6101326103ec565b60405161013f91906118eb565b60405180910390f35b610150610444565b60405161015d919061191c565b60405180910390f35b610180600480360381019061017b9190611963565b61046e565b60405161018d9190611a3a565b60405180910390f35b6101b060048036038101906101ab9190611a56565b61060f565b6040516101bd9190611812565b60405180910390f35b6101ce6106c3565b6040516101db91906118eb565b60405180910390f35b6101fe60048036038101906101f99190611a56565b61071b565b60405161020b9190611812565b60405180910390f35b61022e60048036038101906102299190611a56565b610764565b60405161023b9190611812565b60405180910390f35b61025e60048036038101906102599190611a56565b6107f6565b005b61027a60048036038101906102759190611a83565b6108ca565b005b61029660048036038101906102919190611a56565b610e99565b6040516102a39190611812565b60405180910390f35b6102c660048036038101906102c191906117b9565b610ee2565b6040516102d39190611812565b60405180910390f35b6102e4610f6c565b6040516102f19190611812565b60405180910390f35b610314600480360381019061030f9190611b10565b611337565b60405161032696959493929190611b6b565b60405180910390f35b61034960048036038101906103449190611a56565b61147a565b6040516103569190611812565b60405180910390f35b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050905092915050565b6060600b80548060200260200160405190810160405280929190818152602001828054801561043a57602002820191906000526020600020905b815481526020019060010190808311610426575b5050505050905090565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610476611733565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561054157602002820191906000526020600020905b81548152602001906001019080831161052d575b5050505050905060008151905060008511801561055e5750808511155b156106065760006001866105729190611bfb565b90506000600a871061058e57600a8761058b9190611bfb565b90505b6000808390505b600115610601578581815181106105af576105ae611c2f565b5b60200260200101518783600a81106105ca576105c9611c2f565b5b602002018181525050828114156105e057610601565b80806105eb90611c5e565b91505081806105f990611c88565b925050610595565b505050505b50509392505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c2bc2efc836040518263ffffffff1660e01b815260040161066c919061191c565b60206040518083038186803b15801561068457600080fd5b505afa158015610698573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106bc9190611ce6565b9050919050565b6060600a80548060200260200160405190810160405280929190818152602001828054801561071157602002820191906000526020600020905b8154815260200190600101908083116106fd575b5050505050905090565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806107708361060f565b90506000806001600a805490506107879190611bfb565b90505b6001156107eb5782600a82815481106107a6576107a5611c2f565b5b9060005260206000200154116107ca576001816107c39190611d13565b91506107eb565b60008114156107d8576107eb565b80806107e390611c5e565b91505061078a565b819350505050919050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610886576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087d90611dc6565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461095a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095190611e32565b60405180910390fd5b600082141561096857610e91565b600061097484836116c4565b9050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635158d42a85856040518363ffffffff1660e01b81526004016109d3929190611e52565b600060405180830381600087803b1580156109ed57600080fd5b505af1158015610a01573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166393730f70856040518263ffffffff1660e01b8152600401610a60919061191c565b600060405180830381600087803b158015610a7a57600080fd5b505af1158015610a8e573d6000803e3d6000fd5b50505050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639e4a322130836040518363ffffffff1660e01b8152600401610aef929190611e52565b602060405180830381600087803b158015610b0957600080fd5b505af1158015610b1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b419190611ce6565b90506000811115610e8f576000600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600001541415610c00576000889080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b806000016000815480929190610c1590611c88565b91905055506000816000015490506040518060e001604052808281526020018981526020018881526020018481526020014281526020018773ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250826002016000838152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c08201518160050160146101000a81548160ff0219169083151502179055509050508160030160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081908060018154018082558091505060019003906000526020600020016000909190919091505582600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610dd79190611d13565b9250508190555082600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e2d9190611d13565b92505081905550828260010160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e859190611d13565b9250508190555050505b505b505050505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008060009050600033905060005b60008054905081101561122857600060016000808481548110610fa157610fa0611c2f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160040160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b8160030160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156112135760008260030160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106110f0576110ef611c2f565b5b906000526020600020015490506000151583600201600083815260200190815260200160002060050160149054906101000a900460ff16151514801561115c57504262015180846002016000848152602001908152602001600020600401546111599190611d13565b11155b156111ff5782600201600082815260200190815260200160002060030154866111859190611d13565b9550600183600201600083815260200190815260200160002060050160146101000a81548160ff021916908315150217905550818360040160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50808061120b90611c88565b91505061104f565b5050808061122090611c88565b915050610f7b565b5081600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112789190611bfb565b92505081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82846040518363ffffffff1660e01b81526004016112dc929190611e52565b602060405180830381600087803b1580156112f657600080fd5b505af115801561130a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132e9190611ea7565b50819250505090565b6000806000806000806000600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008981526020019081526020016000206040518060e001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016005820160149054906101000a900460ff1615151515815250509050806020015196508060400151955080606001519450806080015193508060a0015192508060c001519150509295509295509295565b6000806000905060005b6000805490508110156116ba576000600160008084815481106114aa576114a9611c2f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160040160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b8160030160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156116a55760008260030160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106115f9576115f8611c2f565b5b906000526020600020015490506000151583600201600083815260200190815260200160002060050160149054906101000a900460ff16151514801561166557504262015180846002016000848152602001908152602001600020600401546116629190611d13565b11155b1561169157826002016000828152602001908152602001600020600301548561168e9190611d13565b94505b50808061169d90611c88565b915050611558565b505080806116b290611c88565b915050611484565b5080915050919050565b6000806116d084610764565b905060008114156116e557600091505061172d565b620f4240600b6001836116f89190611bfb565b8154811061170957611708611c2f565b5b90600052602060002001548461171f9190611ed4565b6117299190611f5d565b9150505b92915050565b604051806101400160405280600a90602082028036833780820191505090505090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006117868261175b565b9050919050565b6117968161177b565b81146117a157600080fd5b50565b6000813590506117b38161178d565b92915050565b600080604083850312156117d0576117cf611756565b5b60006117de858286016117a4565b92505060206117ef858286016117a4565b9150509250929050565b6000819050919050565b61180c816117f9565b82525050565b60006020820190506118276000830184611803565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611862816117f9565b82525050565b60006118748383611859565b60208301905092915050565b6000602082019050919050565b60006118988261182d565b6118a28185611838565b93506118ad83611849565b8060005b838110156118de5781516118c58882611868565b97506118d083611880565b9250506001810190506118b1565b5085935050505092915050565b60006020820190508181036000830152611905818461188d565b905092915050565b6119168161177b565b82525050565b6000602082019050611931600083018461190d565b92915050565b611940816117f9565b811461194b57600080fd5b50565b60008135905061195d81611937565b92915050565b60008060006060848603121561197c5761197b611756565b5b600061198a868287016117a4565b935050602061199b8682870161194e565b92505060406119ac868287016117a4565b9150509250925092565b6000600a9050919050565b600081905092915050565b6000819050919050565b6000602082019050919050565b6119ec816119b6565b6119f681846119c1565b9250611a01826119cc565b8060005b83811015611a32578151611a198782611868565b9650611a24836119d6565b925050600181019050611a05565b505050505050565b600061014082019050611a5060008301846119e3565b92915050565b600060208284031215611a6c57611a6b611756565b5b6000611a7a848285016117a4565b91505092915050565b60008060008060008060c08789031215611aa057611a9f611756565b5b6000611aae89828a016117a4565b9650506020611abf89828a0161194e565b9550506040611ad089828a0161194e565b9450506060611ae189828a016117a4565b9350506080611af289828a0161194e565b92505060a0611b0389828a0161194e565b9150509295509295509295565b60008060408385031215611b2757611b26611756565b5b6000611b35858286016117a4565b9250506020611b468582860161194e565b9150509250929050565b60008115159050919050565b611b6581611b50565b82525050565b600060c082019050611b806000830189611803565b611b8d6020830188611803565b611b9a6040830187611803565b611ba76060830186611803565b611bb4608083018561190d565b611bc160a0830184611b5c565b979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611c06826117f9565b9150611c11836117f9565b925082821015611c2457611c23611bcc565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000611c69826117f9565b91506000821415611c7d57611c7c611bcc565b5b600182039050919050565b6000611c93826117f9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611cc657611cc5611bcc565b5b600182019050919050565b600081519050611ce081611937565b92915050565b600060208284031215611cfc57611cfb611756565b5b6000611d0a84828501611cd1565b91505092915050565b6000611d1e826117f9565b9150611d29836117f9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611d5e57611d5d611bcc565b5b828201905092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611db0602083611d69565b9150611dbb82611d7a565b602082019050919050565b60006020820190508181036000830152611ddf81611da3565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206761746500600082015250565b6000611e1c601f83611d69565b9150611e2782611de6565b602082019050919050565b60006020820190508181036000830152611e4b81611e0f565b9050919050565b6000604082019050611e67600083018561190d565b611e746020830184611803565b9392505050565b611e8481611b50565b8114611e8f57600080fd5b50565b600081519050611ea181611e7b565b92915050565b600060208284031215611ebd57611ebc611756565b5b6000611ecb84828501611e92565b91505092915050565b6000611edf826117f9565b9150611eea836117f9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611f2357611f22611bcc565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611f68826117f9565b9150611f73836117f9565b925082611f8357611f82611f2e565b5b82820490509291505056fea2646970667358221220712a6077ac1eb9e32f3cba2d58522b8e3d3ae3cb5c950316fe93dcee7ab7617564736f6c634300080900330000000000000000000000007666b0d2b0c41dc8b1dc2305456b4f44cf2aed8d00000000000000000000000061efff85759ea949871ff2105fc76f6838c516600000000000000000000000008592f48b71c10199d18e14a77ab6fef6bbdfd984

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007666b0d2b0c41dc8b1dc2305456b4f44cf2aed8d00000000000000000000000061efff85759ea949871ff2105fc76f6838c516600000000000000000000000008592f48b71c10199d18e14a77ab6fef6bbdfd984

-----Decoded View---------------
Arg [0] : __pool (address): 0x7666b0d2b0c41dc8b1dc2305456b4f44cf2aed8d
Arg [1] : __turnoverBooks (address): 0x61efff85759ea949871ff2105fc76f6838c51660
Arg [2] : __balanceTools (address): 0x8592f48b71c10199d18e14a77ab6fef6bbdfd984

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000007666b0d2b0c41dc8b1dc2305456b4f44cf2aed8d
Arg [1] : 00000000000000000000000061efff85759ea949871ff2105fc76f6838c51660
Arg [2] : 0000000000000000000000008592f48b71c10199d18e14a77ab6fef6bbdfd984


Deployed ByteCode Sourcemap

3690:8317:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8363:197;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6402:132;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6895:94;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8568:758;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5645:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6265:125;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10026;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5800:457;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6793:90;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7001:1350;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9889:125;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10163:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10361:911;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9338:539;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;11284:720;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8363:197;8463:11;8499:3;:19;8503:14;8499:19;;;;;;;;;;;;;;;:37;;:46;8537:7;8499:46;;;;;;;;;;;;;;;:53;;;;8492:60;;8363:197;;;;:::o;6402:132::-;6444:16;6506:20;6499:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6402:132;:::o;6895:94::-;6943:7;6975:6;;;;;;;;;;;6968:13;;6895:94;:::o;8568:758::-;8685:23;;:::i;:::-;8726:34;8763:3;:19;8767:14;8763:19;;;;;;;;;;;;;;;:37;;:46;8801:7;8763:46;;;;;;;;;;;;;;;8726:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8820:11;8834:17;:24;8820:38;;8881:1;8873:5;:9;:28;;;;;8895:6;8886:5;:15;;8873:28;8869:450;;;8927:10;8946:1;8940:5;:7;;;;:::i;:::-;8927:20;;8962:8;9002:2;8993:5;:11;8989:79;;9050:2;9044:5;:8;;;;:::i;:::-;9038:14;;8989:79;9082:6;9107;9116:5;9107:14;;9136:172;9142:4;9136:172;;;9190:17;9208:1;9190:20;;;;;;;;:::i;:::-;;;;;;;;9180:4;9185:1;9180:7;;;;;;;:::i;:::-;;;;;:30;;;;;9238:3;9233:1;:8;9229:19;;;9243:5;;9229:19;9267:3;;;;;:::i;:::-;;;;9289;;;;;:::i;:::-;;;;9136:172;;;8912:407;;;;8869:450;8715:611;;8568:758;;;;;:::o;5645:143::-;5706:7;5752:14;;;;;;;;;;;5738:33;;;5772:7;5738:42;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5731:49;;5645:143;;;:::o;6265:125::-;6307:16;6369:13;6362:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6265:125;:::o;10026:::-;10085:15;10125:9;:18;10135:7;10125:18;;;;;;;;;;;;;;;;10118:25;;10026:125;;;:::o;5800:457::-;5856:4;5878:14;5895:22;5909:7;5895:13;:22::i;:::-;5878:39;;5928:10;5953:6;5985:1;5962:13;:20;;;;:24;;;;:::i;:::-;5953:33;;5997:230;6004:4;5997:230;;;6058:6;6038:13;6052:1;6038:16;;;;;;;;:::i;:::-;;;;;;;;;;:26;6034:115;;6108:1;6106;:3;;;;:::i;:::-;6098:11;;6128:5;;6034:115;6172:1;6167;:6;6163:34;;;6192:5;;6163:34;6212:3;;;;;:::i;:::-;;;;5997:230;;;6244:5;6237:12;;;;;5800:457;;;:::o;6793:90::-;6592:10;6582:20;;:6;;;;;;;;;;;:20;;;6574:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;6869:6:::1;6861:5;;:14;;;;;;;;;;;;;;;;;;6793:90:::0;:::o;7001:1350::-;6715:10;6706:19;;:5;;;;;;;;;;;:19;;;6698:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;7194:1:::1;7181:9;:14;7177:41;;;7211:7;;7177:41;7231:14;7271:46;7287:7;7296:20;7271:15;:46::i;:::-;7262:55;;7352:14;;;;;;;;;;;7338:35;;;7374:7;7383:9;7338:55;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7419:13;;;;;;;;;;;7406:33;;;7440:7;7406:42;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7484:5;;;;;;;;;;;7470:31;;;7510:4;7517:6;7470:54;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7461:63;;7550:1;7541:6;:10;7537:807;;;7577:17;7597:3;:19;7601:14;7597:19;;;;;;;;;;;;;;;7577:39;;7650:1;7635:4;:11;;;:16;7631:104;;;7685:13;7704:14;7685:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7631:104;7749:4;:11;;;:13;;;;;;;;;:::i;:::-;;;;;;7791:10;7804:4;:11;;;7791:24;;7853:261;;;;;;;;7887:2;7853:261;;;;7916:8;7853:261;;;;7951:8;7853:261;;;;7985:6;7853:261;;;;8015:15;7853:261;;;;8056:7;7853:261;;;;;;8093:5;7853:261;;;;::::0;7830:4:::1;:16;;:20;7847:2;7830:20;;;;;;;;;;;:284;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8143:4;:22;;:31;8166:7;8143:31;;;;;;;;;;;;;;;8180:2;8143:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8234:6;8212:9;:18;8222:7;8212:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;8277:6;8255:9;:18;8265:7;8255:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;8324:6;8298:4;:13;;:22;8312:7;8298:22;;;;;;;;;;;;;;;;:32;;;;;;;:::i;:::-;;;;;;;;7562:782;;7537:807;7166:1185;6772:1;7001:1350:::0;;;;;;:::o;9889:125::-;9948:15;9988:9;:18;9998:7;9988:18;;;;;;;;;;;;;;;;9981:25;;9889:125;;;:::o;10163:186::-;10255:24;10304:3;:19;10308:14;10304:19;;;;;;;;;;;;;;;:28;;:37;10333:7;10304:37;;;;;;;;;;;;;;;;10297:44;;10163:186;;;;:::o;10361:911::-;10402:7;10427:14;10444:1;10427:18;;10456:15;10474:10;10456:28;;10500:6;10495:656;10512:13;:20;;;;10510:1;:22;10495:656;;;10563:17;10583:3;:21;10587:13;10601:1;10587:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10583:21;;;;;;;;;;;;;;;10563:41;;10624:6;10631:4;:21;;:30;10653:7;10631:30;;;;;;;;;;;;;;;;10624:37;;10619:521;10665:4;:22;;:31;10688:7;10665:31;;;;;;;;;;;;;;;:38;;;;10663:1;:40;10619:521;;;10742:10;10755:4;:22;;:31;10778:7;10755:31;;;;;;;;;;;;;;;10787:1;10755:34;;;;;;;;:::i;:::-;;;;;;;;;;10742:47;;10847:5;10812:40;;:4;:16;;:20;10829:2;10812:20;;;;;;;;;;;:31;;;;;;;;;;;;:40;;;:96;;;;;10893:15;10884:5;10856:4;:16;;:20;10873:2;10856:20;;;;;;;;;;;:25;;;:33;;;;:::i;:::-;:52;;10812:96;10808:317;;;10960:4;:16;;:20;10977:2;10960:20;;;;;;;;;;;:27;;;10950:37;;;;;:::i;:::-;;;11044:4;11010;:16;;:20;11027:2;11010:20;;;;;;;;;;;:31;;;:38;;;;;;;;;;;;;;;;;;11104:1;11071:4;:21;;:30;11093:7;11071:30;;;;;;;;;;;;;;;:34;;;;10808:317;10723:417;10705:3;;;;;:::i;:::-;;;;10619:521;;;;10548:603;10534:3;;;;;:::i;:::-;;;;10495:656;;;;11183:6;11161:9;:18;11171:7;11161:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;11207:6;;;;;;;;;;;11200:23;;;11224:7;11233:6;11200:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11258:6;11251:13;;;;10361:911;:::o;9338:539::-;9432:15;9458;9484:14;9509:12;9532:14;9557:15;9596:24;9623:3;:19;9627:14;9623:19;;;;;;;;;;;;;;;:31;;:36;9655:3;9623:36;;;;;;;;;;;9596:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9690:5;:13;;;9680:23;;9724:5;:13;;;9714:23;;9757:5;:12;;;9748:21;;9787:5;:10;;;9780:17;;9817:5;:12;;;9808:21;;9853:5;:16;;;9840:29;;9585:292;9338:539;;;;;;;;:::o;11284:720::-;11354:7;11379:23;11405:1;11379:27;;11422:6;11417:547;11434:13;:20;;;;11432:1;:22;11417:547;;;11485:17;11505:3;:21;11509:13;11523:1;11509:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11505:21;;;;;;;;;;;;;;;11485:41;;11546:6;11553:4;:21;;:30;11575:7;11553:30;;;;;;;;;;;;;;;;11546:37;;11541:412;11587:4;:22;;:31;11610:7;11587:31;;;;;;;;;;;;;;;:38;;;;11585:1;:40;11541:412;;;11664:10;11677:4;:22;;:31;11700:7;11677:31;;;;;;;;;;;;;;;11709:1;11677:34;;;;;;;;:::i;:::-;;;;;;;;;;11664:47;;11769:5;11734:40;;:4;:16;;:20;11751:2;11734:20;;;;;;;;;;;:31;;;;;;;;;;;;:40;;;:96;;;;;11815:15;11806:5;11778:4;:16;;:20;11795:2;11778:20;;;;;;;;;;;:25;;;:33;;;;:::i;:::-;:52;;11734:96;11730:208;;;11891:4;:16;;:20;11908:2;11891:20;;;;;;;;;;;:27;;;11872:46;;;;;:::i;:::-;;;11730:208;11645:308;11627:3;;;;;:::i;:::-;;;;11541:412;;;;11470:494;11456:3;;;;;:::i;:::-;;;;11417:547;;;;11981:15;11974:22;;;11284:720;;;:::o;5347:286::-;5442:7;5467:10;5480:17;5489:7;5480:8;:17::i;:::-;5467:30;;5521:1;5512:5;:10;5508:37;;;5544:1;5537:8;;;;;5508:37;5618:7;5586:20;5613:1;5607:5;:7;;;;:::i;:::-;5586:29;;;;;;;;:::i;:::-;;;;;;;;;;5563:20;:52;;;;:::i;:::-;:62;;;;:::i;:::-;5556:69;;;5347:286;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:474::-;909:6;917;966:2;954:9;945:7;941:23;937:32;934:119;;;972:79;;:::i;:::-;934:119;1092:1;1117:53;1162:7;1153:6;1142:9;1138:22;1117:53;:::i;:::-;1107:63;;1063:117;1219:2;1245:53;1290:7;1281:6;1270:9;1266:22;1245:53;:::i;:::-;1235:63;;1190:118;841:474;;;;;:::o;1321:77::-;1358:7;1387:5;1376:16;;1321:77;;;:::o;1404:118::-;1491:24;1509:5;1491:24;:::i;:::-;1486:3;1479:37;1404:118;;:::o;1528:222::-;1621:4;1659:2;1648:9;1644:18;1636:26;;1672:71;1740:1;1729:9;1725:17;1716:6;1672:71;:::i;:::-;1528:222;;;;:::o;1756:114::-;1823:6;1857:5;1851:12;1841:22;;1756:114;;;:::o;1876:184::-;1975:11;2009:6;2004:3;1997:19;2049:4;2044:3;2040:14;2025:29;;1876:184;;;;:::o;2066:132::-;2133:4;2156:3;2148:11;;2186:4;2181:3;2177:14;2169:22;;2066:132;;;:::o;2204:108::-;2281:24;2299:5;2281:24;:::i;:::-;2276:3;2269:37;2204:108;;:::o;2318:179::-;2387:10;2408:46;2450:3;2442:6;2408:46;:::i;:::-;2486:4;2481:3;2477:14;2463:28;;2318:179;;;;:::o;2503:113::-;2573:4;2605;2600:3;2596:14;2588:22;;2503:113;;;:::o;2652:732::-;2771:3;2800:54;2848:5;2800:54;:::i;:::-;2870:86;2949:6;2944:3;2870:86;:::i;:::-;2863:93;;2980:56;3030:5;2980:56;:::i;:::-;3059:7;3090:1;3075:284;3100:6;3097:1;3094:13;3075:284;;;3176:6;3170:13;3203:63;3262:3;3247:13;3203:63;:::i;:::-;3196:70;;3289:60;3342:6;3289:60;:::i;:::-;3279:70;;3135:224;3122:1;3119;3115:9;3110:14;;3075:284;;;3079:14;3375:3;3368:10;;2776:608;;;2652:732;;;;:::o;3390:373::-;3533:4;3571:2;3560:9;3556:18;3548:26;;3620:9;3614:4;3610:20;3606:1;3595:9;3591:17;3584:47;3648:108;3751:4;3742:6;3648:108;:::i;:::-;3640:116;;3390:373;;;;:::o;3769:118::-;3856:24;3874:5;3856:24;:::i;:::-;3851:3;3844:37;3769:118;;:::o;3893:222::-;3986:4;4024:2;4013:9;4009:18;4001:26;;4037:71;4105:1;4094:9;4090:17;4081:6;4037:71;:::i;:::-;3893:222;;;;:::o;4121:122::-;4194:24;4212:5;4194:24;:::i;:::-;4187:5;4184:35;4174:63;;4233:1;4230;4223:12;4174:63;4121:122;:::o;4249:139::-;4295:5;4333:6;4320:20;4311:29;;4349:33;4376:5;4349:33;:::i;:::-;4249:139;;;;:::o;4394:619::-;4471:6;4479;4487;4536:2;4524:9;4515:7;4511:23;4507:32;4504:119;;;4542:79;;:::i;:::-;4504:119;4662:1;4687:53;4732:7;4723:6;4712:9;4708:22;4687:53;:::i;:::-;4677:63;;4633:117;4789:2;4815:53;4860:7;4851:6;4840:9;4836:22;4815:53;:::i;:::-;4805:63;;4760:118;4917:2;4943:53;4988:7;4979:6;4968:9;4964:22;4943:53;:::i;:::-;4933:63;;4888:118;4394:619;;;;;:::o;5019:105::-;5085:6;5113:4;5103:14;;5019:105;;;:::o;5130:144::-;5228:11;5265:3;5250:18;;5130:144;;;;:::o;5280:99::-;5346:4;5369:3;5361:11;;5280:99;;;:::o;5385:112::-;5454:4;5486;5481:3;5477:14;5469:22;;5385:112;;;:::o;5537:700::-;5675:53;5722:5;5675:53;:::i;:::-;5744:85;5822:6;5817:3;5744:85;:::i;:::-;5737:92;;5853:55;5902:5;5853:55;:::i;:::-;5931:7;5962:1;5947:283;5972:6;5969:1;5966:13;5947:283;;;6048:6;6042:13;6075:63;6134:3;6119:13;6075:63;:::i;:::-;6068:70;;6161:59;6213:6;6161:59;:::i;:::-;6151:69;;6007:223;5994:1;5991;5987:9;5982:14;;5947:283;;;5951:14;5651:586;;;5537:700;;:::o;6243:319::-;6384:4;6422:3;6411:9;6407:19;6399:27;;6436:119;6552:1;6541:9;6537:17;6528:6;6436:119;:::i;:::-;6243:319;;;;:::o;6568:329::-;6627:6;6676:2;6664:9;6655:7;6651:23;6647:32;6644:119;;;6682:79;;:::i;:::-;6644:119;6802:1;6827:53;6872:7;6863:6;6852:9;6848:22;6827:53;:::i;:::-;6817:63;;6773:117;6568:329;;;;:::o;6903:1057::-;7007:6;7015;7023;7031;7039;7047;7096:3;7084:9;7075:7;7071:23;7067:33;7064:120;;;7103:79;;:::i;:::-;7064:120;7223:1;7248:53;7293:7;7284:6;7273:9;7269:22;7248:53;:::i;:::-;7238:63;;7194:117;7350:2;7376:53;7421:7;7412:6;7401:9;7397:22;7376:53;:::i;:::-;7366:63;;7321:118;7478:2;7504:53;7549:7;7540:6;7529:9;7525:22;7504:53;:::i;:::-;7494:63;;7449:118;7606:2;7632:53;7677:7;7668:6;7657:9;7653:22;7632:53;:::i;:::-;7622:63;;7577:118;7734:3;7761:53;7806:7;7797:6;7786:9;7782:22;7761:53;:::i;:::-;7751:63;;7705:119;7863:3;7890:53;7935:7;7926:6;7915:9;7911:22;7890:53;:::i;:::-;7880:63;;7834:119;6903:1057;;;;;;;;:::o;7966:474::-;8034:6;8042;8091:2;8079:9;8070:7;8066:23;8062:32;8059:119;;;8097:79;;:::i;:::-;8059:119;8217:1;8242:53;8287:7;8278:6;8267:9;8263:22;8242:53;:::i;:::-;8232:63;;8188:117;8344:2;8370:53;8415:7;8406:6;8395:9;8391:22;8370:53;:::i;:::-;8360:63;;8315:118;7966:474;;;;;:::o;8446:90::-;8480:7;8523:5;8516:13;8509:21;8498:32;;8446:90;;;:::o;8542:109::-;8623:21;8638:5;8623:21;:::i;:::-;8618:3;8611:34;8542:109;;:::o;8657:763::-;8884:4;8922:3;8911:9;8907:19;8899:27;;8936:71;9004:1;8993:9;8989:17;8980:6;8936:71;:::i;:::-;9017:72;9085:2;9074:9;9070:18;9061:6;9017:72;:::i;:::-;9099;9167:2;9156:9;9152:18;9143:6;9099:72;:::i;:::-;9181;9249:2;9238:9;9234:18;9225:6;9181:72;:::i;:::-;9263:73;9331:3;9320:9;9316:19;9307:6;9263:73;:::i;:::-;9346:67;9408:3;9397:9;9393:19;9384:6;9346:67;:::i;:::-;8657:763;;;;;;;;;:::o;9426:180::-;9474:77;9471:1;9464:88;9571:4;9568:1;9561:15;9595:4;9592:1;9585:15;9612:191;9652:4;9672:20;9690:1;9672:20;:::i;:::-;9667:25;;9706:20;9724:1;9706:20;:::i;:::-;9701:25;;9745:1;9742;9739:8;9736:34;;;9750:18;;:::i;:::-;9736:34;9795:1;9792;9788:9;9780:17;;9612:191;;;;:::o;9809:180::-;9857:77;9854:1;9847:88;9954:4;9951:1;9944:15;9978:4;9975:1;9968:15;9995:171;10034:3;10057:24;10075:5;10057:24;:::i;:::-;10048:33;;10103:4;10096:5;10093:15;10090:41;;;10111:18;;:::i;:::-;10090:41;10158:1;10151:5;10147:13;10140:20;;9995:171;;;:::o;10172:233::-;10211:3;10234:24;10252:5;10234:24;:::i;:::-;10225:33;;10280:66;10273:5;10270:77;10267:103;;;10350:18;;:::i;:::-;10267:103;10397:1;10390:5;10386:13;10379:20;;10172:233;;;:::o;10411:143::-;10468:5;10499:6;10493:13;10484:22;;10515:33;10542:5;10515:33;:::i;:::-;10411:143;;;;:::o;10560:351::-;10630:6;10679:2;10667:9;10658:7;10654:23;10650:32;10647:119;;;10685:79;;:::i;:::-;10647:119;10805:1;10830:64;10886:7;10877:6;10866:9;10862:22;10830:64;:::i;:::-;10820:74;;10776:128;10560:351;;;;:::o;10917:305::-;10957:3;10976:20;10994:1;10976:20;:::i;:::-;10971:25;;11010:20;11028:1;11010:20;:::i;:::-;11005:25;;11164:1;11096:66;11092:74;11089:1;11086:81;11083:107;;;11170:18;;:::i;:::-;11083:107;11214:1;11211;11207:9;11200:16;;10917:305;;;;:::o;11228:169::-;11312:11;11346:6;11341:3;11334:19;11386:4;11381:3;11377:14;11362:29;;11228:169;;;;:::o;11403:182::-;11543:34;11539:1;11531:6;11527:14;11520:58;11403:182;:::o;11591:366::-;11733:3;11754:67;11818:2;11813:3;11754:67;:::i;:::-;11747:74;;11830:93;11919:3;11830:93;:::i;:::-;11948:2;11943:3;11939:12;11932:19;;11591:366;;;:::o;11963:419::-;12129:4;12167:2;12156:9;12152:18;12144:26;;12216:9;12210:4;12206:20;12202:1;12191:9;12187:17;12180:47;12244:131;12370:4;12244:131;:::i;:::-;12236:139;;11963:419;;;:::o;12388:181::-;12528:33;12524:1;12516:6;12512:14;12505:57;12388:181;:::o;12575:366::-;12717:3;12738:67;12802:2;12797:3;12738:67;:::i;:::-;12731:74;;12814:93;12903:3;12814:93;:::i;:::-;12932:2;12927:3;12923:12;12916:19;;12575:366;;;:::o;12947:419::-;13113:4;13151:2;13140:9;13136:18;13128:26;;13200:9;13194:4;13190:20;13186:1;13175:9;13171:17;13164:47;13228:131;13354:4;13228:131;:::i;:::-;13220:139;;12947:419;;;:::o;13372:332::-;13493:4;13531:2;13520:9;13516:18;13508:26;;13544:71;13612:1;13601:9;13597:17;13588:6;13544:71;:::i;:::-;13625:72;13693:2;13682:9;13678:18;13669:6;13625:72;:::i;:::-;13372:332;;;;;:::o;13710:116::-;13780:21;13795:5;13780:21;:::i;:::-;13773:5;13770:32;13760:60;;13816:1;13813;13806:12;13760:60;13710:116;:::o;13832:137::-;13886:5;13917:6;13911:13;13902:22;;13933:30;13957:5;13933:30;:::i;:::-;13832:137;;;;:::o;13975:345::-;14042:6;14091:2;14079:9;14070:7;14066:23;14062:32;14059:119;;;14097:79;;:::i;:::-;14059:119;14217:1;14242:61;14295:7;14286:6;14275:9;14271:22;14242:61;:::i;:::-;14232:71;;14188:125;13975:345;;;;:::o;14326:348::-;14366:7;14389:20;14407:1;14389:20;:::i;:::-;14384:25;;14423:20;14441:1;14423:20;:::i;:::-;14418:25;;14611:1;14543:66;14539:74;14536:1;14533:81;14528:1;14521:9;14514:17;14510:105;14507:131;;;14618:18;;:::i;:::-;14507:131;14666:1;14663;14659:9;14648:20;;14326:348;;;;:::o;14680:180::-;14728:77;14725:1;14718:88;14825:4;14822:1;14815:15;14849:4;14846:1;14839:15;14866:185;14906:1;14923:20;14941:1;14923:20;:::i;:::-;14918:25;;14957:20;14975:1;14957:20;:::i;:::-;14952:25;;14996:1;14986:35;;15001:18;;:::i;:::-;14986:35;15043:1;15040;15036:9;15031:14;;14866:185;;;;:::o

Swarm Source

ipfs://712a6077ac1eb9e32f3cba2d58522b8e3d3ae3cb5c950316fe93dcee7ab76175
Block Transaction Gas Used Reward
Age Block Fee Address Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading