ETH Price: $3,631.63 (-2.12%)

Contract

0xEEA92913d8AA554a102ED5B4F0A6206E6D8d59D5
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Age:7D
Reset Filter

Transaction Hash
Method
Block
From
To

There are no matching entries

Update your filters to view other transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
136773712021-11-24 13:04:081104 days ago1637759048
0xEEA92913...E6D8d59D5
0.00011559 ETH
136773712021-11-24 13:04:081104 days ago1637759048
0xEEA92913...E6D8d59D5
0.0017074 ETH
129207762021-07-29 12:42:501222 days ago1627562570
0xEEA92913...E6D8d59D5
0.00042171 ETH
129207762021-07-29 12:42:501222 days ago1627562570
0xEEA92913...E6D8d59D5
0.04957828 ETH
129003132021-07-26 6:48:481225 days ago1627282128
0xEEA92913...E6D8d59D5
0.00021697 ETH
129003132021-07-26 6:48:481225 days ago1627282128
0xEEA92913...E6D8d59D5
0.02978302 ETH
128768732021-07-22 14:54:441229 days ago1626965684
0xEEA92913...E6D8d59D5
0.00169239 ETH
128768732021-07-22 14:54:441229 days ago1626965684
0xEEA92913...E6D8d59D5
0.1483076 ETH
128753882021-07-22 9:35:451229 days ago1626946545
0xEEA92913...E6D8d59D5
0.0003924 ETH
128753882021-07-22 9:35:451229 days ago1626946545
0xEEA92913...E6D8d59D5
0.04960759 ETH
128753692021-07-22 9:31:251229 days ago1626946285
0xEEA92913...E6D8d59D5
0.0003924 ETH
128753692021-07-22 9:31:251229 days ago1626946285
0xEEA92913...E6D8d59D5
0.04960759 ETH
128723182021-07-21 21:54:191230 days ago1626904459
0xEEA92913...E6D8d59D5
0.0002075 ETH
128723182021-07-21 21:54:191230 days ago1626904459
0xEEA92913...E6D8d59D5
0.00599649 ETH
127680692021-07-05 14:37:401246 days ago1625495860
0xEEA92913...E6D8d59D5
0.09416568 ETH
127680692021-07-05 14:37:401246 days ago1625495860
0xEEA92913...E6D8d59D5
0.04583431 ETH
127560342021-07-03 17:44:181248 days ago1625334258
0xEEA92913...E6D8d59D5
0.00118589 ETH
127560342021-07-03 17:44:181248 days ago1625334258
0xEEA92913...E6D8d59D5
0.1188141 ETH
127556572021-07-03 16:23:031248 days ago1625329383
0xEEA92913...E6D8d59D5
0.00107812 ETH
127556572021-07-03 16:23:031248 days ago1625329383
0xEEA92913...E6D8d59D5
0.11073417 ETH
127392612021-07-01 2:56:001250 days ago1625108160
0xEEA92913...E6D8d59D5
0.00017139 ETH
127392612021-07-01 2:56:001250 days ago1625108160
0xEEA92913...E6D8d59D5
0.0248286 ETH
127335522021-06-30 5:41:441251 days ago1625031704
0xEEA92913...E6D8d59D5
0.00072343 ETH
127335522021-06-30 5:41:441251 days ago1625031704
0xEEA92913...E6D8d59D5
0.03037656 ETH
127335432021-06-30 5:39:491251 days ago1625031589
0xEEA92913...E6D8d59D5
0.00072343 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
NimbusInitialAcquisition

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 999999 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-01-27
*/

pragma solidity =0.8.0;

contract Ownable {
    address public owner;
    address public newOwner;

    event OwnershipTransferred(address indexed from, address indexed to);

    constructor() {
        owner = msg.sender;
        emit OwnershipTransferred(address(0), owner);
    }

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

    function transferOwnership(address transferOwner) public onlyOwner {
        require(transferOwner != newOwner);
        newOwner = transferOwner;
    }

    function acceptOwnership() virtual public {
        require(msg.sender == newOwner);
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
        newOwner = address(0);
    }
}

abstract contract Pausable is Ownable {
    event Paused(address account);
    event Unpaused(address account);

    bool private _paused;

    constructor () {
        _paused = false;
    }

    function paused() public view returns (bool) {
        return _paused;
    }

    modifier whenNotPaused() {
        require(!_paused, "Pausable: paused");
        _;
    }

    modifier whenPaused() {
        require(_paused, "Pausable: not paused");
        _;
    }


    function pause() external onlyOwner whenNotPaused {
        _paused = true;
        emit Paused(msg.sender);
    }

    function unpause() external onlyOwner whenPaused {
        _paused = false;
        emit Unpaused(msg.sender);
    }
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

interface INBU {
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function approve(address spender, uint256 amount) external returns (bool);
    function give(address recipient, uint256 amount, uint vesterId) external;
}

interface INimbusReferralProgram {
    function userSponsorByAddress(address user)  external view returns (uint);
    function userIdByAddress(address user) external view returns (uint);
    function userAddressById(uint id) external view returns (address);
    function userSponsorAddressByAddress(address user) external view returns (address);
}

interface INimbusStakingPool {
    function stakeFor(uint amount, address user) external;
    function balanceOf(address account) external view returns (uint256);
}

interface INBU_WETH {
    function deposit() external payable;
    function transfer(address to, uint value) external returns (bool);
    function withdraw(uint) external;
}

interface INimbusRouter {
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
}



contract NimbusInitialAcquisition is Ownable, Pausable {
    using SafeMath for uint;

    INBU public immutable NBU;
    address public immutable NBU_WETH;
    INimbusReferralProgram public referralProgram;
    INimbusStakingPool[] public stakingPools;   //staking pools for checking sponsor balances
    INimbusStakingPool public stakePool;        //staking pool for staking purchased assets
    address public recipient;                      
   
    INimbusRouter public swapRouter;                
    mapping (address => bool) public allowedTokens;
    address public swapToken;                       
    uint public swapTokenAmountForBonusThreshold;  
    
    uint public sponsorBonus;
    mapping(address => uint) public unclaimedBonusBases;

    event BuyNbuForToken(address token, uint tokenAmount, uint nbuAmount, address nbuRecipient);
    event BuyNbuForEth(uint ethAmount, uint nbuAmount, address nbuRecipient);
    event ProcessSponsorBonus(address sponsor, address user, uint bonusAmount);
    event AddUnclaimedSponsorBonus(address user, uint nbuAmount);

    event UpdateTokenNbuExchangeRate(address token, uint newRate);
    event UpdateEthNbuExchangeRate(uint newRate);
    event Rescue(address to, uint amount);
    event RescueToken(address token, address to, uint amount); 

    constructor (address nbu, address router, address nbuWeth, address pool) {
        NBU = INBU(nbu);
        NBU_WETH = nbuWeth;
        sponsorBonus = 10;
        swapRouter = INimbusRouter(router);
        recipient = address(this);
        stakePool = INimbusStakingPool(pool);
    }

    function availableInitialSupply() external view returns (uint) {
        return NBU.balanceOf(address(this));
    }

    function getNbuAmountForToken(address token, uint tokenAmount) public view returns (uint) { 
        address[] memory path = new address[](2);
        path[0] = token;
        path[1] = address(NBU);
        return swapRouter.getAmountsOut(tokenAmount, path)[1];
    }

    function getNbuAmountForEth(uint ethAmount) public view returns (uint) { 
        return getNbuAmountForToken(NBU_WETH, ethAmount); 
    }

    function getTokenAmountForNbu(address token, uint nbuAmount) public view returns (uint) { 
        address[] memory path = new address[](2);
        path[0] = address(NBU);
        path[1] = token;
        return swapRouter.getAmountsOut(nbuAmount, path)[1];
    }

    function getEthAmountForNbu(uint nbuAmount) public view returns (uint) { 
        return getTokenAmountForNbu(NBU_WETH, nbuAmount);
    }

    function currentBalance(address token) public view returns (uint) { 
        return INBU(token).balanceOf(address(this));
    }


    


    function _buyNbu(address token, uint tokenAmount, uint nbuAmount, address nbuRecipient) private {
        stakePool.stakeFor(nbuAmount, nbuRecipient);
        emit BuyNbuForToken(token, tokenAmount, nbuAmount, nbuRecipient);
        _processSponsor(nbuAmount);
    }

    function _processSponsor(uint nbuAmount) private {
        address sponsorAddress = _getUserSponsorAddress();
        if (sponsorAddress != address(0)) { 
            uint minNbuAmountForBonus = getNbuAmountForToken(swapToken, swapTokenAmountForBonusThreshold);
            if (nbuAmount > minNbuAmountForBonus) {
                uint sponsorAmount = NBU.balanceOf(sponsorAddress);
                for (uint i; i < stakingPools.length; i++) {
                    if (sponsorAmount > minNbuAmountForBonus) break;
                    sponsorAmount = sponsorAmount.add(stakingPools[i].balanceOf(sponsorAddress));
                }
                
                if (sponsorAmount > minNbuAmountForBonus) {
                    uint bonusBase = nbuAmount.add(unclaimedBonusBases[msg.sender]);
                    uint sponsorBonusAmount = bonusBase.mul(sponsorBonus) / 100;
                    NBU.give(sponsorAddress, sponsorBonusAmount, 3);
                    unclaimedBonusBases[msg.sender] = 0;
                    emit ProcessSponsorBonus(sponsorAddress, msg.sender, sponsorBonusAmount);
                } else {
                    unclaimedBonusBases[msg.sender] = unclaimedBonusBases[msg.sender].add(nbuAmount);
                    emit AddUnclaimedSponsorBonus(msg.sender, nbuAmount);
                }
            } else {
                unclaimedBonusBases[msg.sender] = unclaimedBonusBases[msg.sender].add(nbuAmount);
                emit AddUnclaimedSponsorBonus(msg.sender, nbuAmount);
            }
        } else {
            unclaimedBonusBases[msg.sender] = unclaimedBonusBases[msg.sender].add(nbuAmount);
            emit AddUnclaimedSponsorBonus(msg.sender, nbuAmount);
        }
    }

    function _getUserSponsorAddress() private view returns (address) {
        if (address(referralProgram) == address(0)) {
            return address(0);
        } else {
            return referralProgram.userSponsorAddressByAddress(msg.sender);
        } 
    }
    
    function buyExactNbuForTokens(address token, uint nbuAmount, address nbuRecipient) external whenNotPaused {
        require(allowedTokens[token], "Not allowed token");
        uint tokenAmount = getTokenAmountForNbu(token, nbuAmount);
        TransferHelper.safeTransferFrom(token, msg.sender, recipient, tokenAmount);
        _buyNbu(token, tokenAmount, nbuAmount, nbuRecipient);
    }

    function buyNbuForExactTokens(address token, uint tokenAmount, address nbuRecipient) external whenNotPaused {
        require(allowedTokens[token], "Not allowed token");
        uint nbuAmount = getNbuAmountForToken(token, tokenAmount);
        TransferHelper.safeTransferFrom(token, msg.sender, recipient, tokenAmount);
        _buyNbu(token, tokenAmount, nbuAmount, nbuRecipient);
    }

    function buyNbuForExactEth(address nbuRecipient) payable external whenNotPaused {
        require(allowedTokens[NBU_WETH], "Not allowed purchase for ETH");
        uint nbuAmount = getNbuAmountForEth(msg.value);
        INBU_WETH(NBU_WETH).deposit{value: msg.value}();
        _buyNbu(NBU_WETH, msg.value, nbuAmount, nbuRecipient);
    }

    function buyExactNbuForEth(uint nbuAmount, address nbuRecipient) payable external whenNotPaused {
        require(allowedTokens[NBU_WETH], "Not allowed purchase for ETH");
        uint nbuAmountMax = getNbuAmountForEth(msg.value);
        require(nbuAmountMax >= nbuAmount, "Not enough ETH");
        uint ethAmount = nbuAmountMax == nbuAmount ? msg.value : getEthAmountForNbu(nbuAmount);
        INBU_WETH(NBU_WETH).deposit{value: ethAmount}();
        _buyNbu(NBU_WETH, ethAmount, nbuAmount, nbuRecipient);
        // refund dust eth, if any
        if (nbuAmountMax > nbuAmount) TransferHelper.safeTransferETH(msg.sender, msg.value - ethAmount);
    }


    function claimSponsorBonusesBatch(address[] memory users) external { 
        for (uint i; i < users.length; i++) {
            claimSponsorBonuses(users[i]);
        }
    }

    function claimSponsorBonuses(address user) public {
        require(unclaimedBonusBases[user] > 0, "No unclaimed bonuses");
        require(referralProgram.userSponsorByAddress(user) == referralProgram.userIdByAddress(msg.sender), "Not user sponsor");
        
        uint minNbuAmountForBonus = getNbuAmountForToken(swapToken, swapTokenAmountForBonusThreshold);
        uint bonusBase = unclaimedBonusBases[user];
        require (bonusBase >= minNbuAmountForBonus, "Bonus threshold not met");

        uint sponsorAmount = NBU.balanceOf(msg.sender);
        for (uint i; i < stakingPools.length; i++) {
            if (sponsorAmount > minNbuAmountForBonus) break;
            sponsorAmount = sponsorAmount.add(stakingPools[i].balanceOf(msg.sender));
        }
        
        require (sponsorAmount > minNbuAmountForBonus, "Sponsor balance threshold for bonus not met");
        uint sponsorBonusAmount = bonusBase.mul(sponsorBonus) / 100;
        NBU.give(msg.sender, sponsorBonusAmount, 3);
        unclaimedBonusBases[msg.sender] = 0;
        emit ProcessSponsorBonus(msg.sender, user, sponsorBonusAmount);
    }
    


    //Admin functions
    function rescue(address payable to, uint256 amount) external onlyOwner {
        require(to != address(0), "Can't be zero address");
        require(amount > 0, "Should be greater than 0");
        TransferHelper.safeTransferETH(to, amount);
        emit Rescue(to, amount);
    }

    function rescue(address to, address token, uint256 amount) external onlyOwner {
        require(to != address(0), "Can't be zero address");
        require(amount > 0, "Should be greater than 0");
        TransferHelper.safeTransfer(token, to, amount);
        emit RescueToken(token, to, amount);
    }

    function updateAllowedTokens(address token, bool isAllowed) external onlyOwner {
        require (token != address(0), "Wrong addresses");
        allowedTokens[token] = isAllowed;
    }
    
    function updateRecipient(address recipientAddress) external onlyOwner {
        require(recipientAddress != address(0), "Address is zero");
        recipient = recipientAddress;
    } 

    function updateSponsorBonus(uint bonus) external onlyOwner {
        sponsorBonus = bonus;
    }

    function updateReferralProgramContract(address newReferralProgramContract) external onlyOwner {
        require(newReferralProgramContract != address(0), "Address is zero");
        referralProgram = INimbusReferralProgram(newReferralProgramContract);
    }

    function updateStakePool(address newStakingPool) external onlyOwner {
        require(newStakingPool != address(0), "Address is zero");
        if (address(stakePool) != address(0)) NBU.approve(address(stakePool), 0);
        stakePool = INimbusStakingPool(newStakingPool);
        NBU.approve(newStakingPool, 2 ** 256 - 1);
    }

    function updateStakingPoolAdd(address newStakingPool) external onlyOwner {
        for (uint i; i < stakingPools.length; i++) {
            require (address(stakingPools[i]) != newStakingPool, "Pool exists");
        }
        stakingPools.push(INimbusStakingPool(newStakingPool));
    }

    function updateStakingPoolRemove(uint poolIndex) external onlyOwner {
        stakingPools[poolIndex] = stakingPools[stakingPools.length - 1];
        stakingPools.pop();
    }

    function updateSwapRouter(address newSwapRouter) external onlyOwner {
        require(newSwapRouter != address(0), "Address is zero");
        swapRouter = INimbusRouter(newSwapRouter);
    }

    function updateSwapToken(address newSwapToken) external onlyOwner {
        require(newSwapToken != address(0), "Address is zero");
        swapToken = newSwapToken;
    }

    function updateSwapTokenAmountForBonusThreshold(uint threshold) external onlyOwner {
        swapTokenAmountForBonusThreshold = threshold;
    }
}

library TransferHelper {
    function safeApprove(address token, address to, uint value) internal {
        // bytes4(keccak256(bytes('approve(address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: APPROVE_FAILED');
    }

    function safeTransfer(address token, address to, uint value) internal {
        // bytes4(keccak256(bytes('transfer(address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FAILED');
    }

    function safeTransferFrom(address token, address from, address to, uint value) internal {
        // bytes4(keccak256(bytes('transferFrom(address,address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FROM_FAILED');
    }

    function safeTransferETH(address to, uint value) internal {
        (bool success,) = to.call{value:value}(new bytes(0));
        require(success, 'TransferHelper: ETH_TRANSFER_FAILED');
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"nbu","type":"address"},{"internalType":"address","name":"router","type":"address"},{"internalType":"address","name":"nbuWeth","type":"address"},{"internalType":"address","name":"pool","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"nbuAmount","type":"uint256"}],"name":"AddUnclaimedSponsorBonus","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"ethAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"nbuAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"nbuRecipient","type":"address"}],"name":"BuyNbuForEth","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"nbuAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"nbuRecipient","type":"address"}],"name":"BuyNbuForToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sponsor","type":"address"},{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"bonusAmount","type":"uint256"}],"name":"ProcessSponsorBonus","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Rescue","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RescueToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newRate","type":"uint256"}],"name":"UpdateEthNbuExchangeRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"newRate","type":"uint256"}],"name":"UpdateTokenNbuExchangeRate","type":"event"},{"inputs":[],"name":"NBU","outputs":[{"internalType":"contract INBU","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NBU_WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"allowedTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"availableInitialSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"nbuAmount","type":"uint256"},{"internalType":"address","name":"nbuRecipient","type":"address"}],"name":"buyExactNbuForEth","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"nbuAmount","type":"uint256"},{"internalType":"address","name":"nbuRecipient","type":"address"}],"name":"buyExactNbuForTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"nbuRecipient","type":"address"}],"name":"buyNbuForExactEth","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"address","name":"nbuRecipient","type":"address"}],"name":"buyNbuForExactTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"claimSponsorBonuses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"users","type":"address[]"}],"name":"claimSponsorBonusesBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"currentBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"nbuAmount","type":"uint256"}],"name":"getEthAmountForNbu","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"ethAmount","type":"uint256"}],"name":"getNbuAmountForEth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"getNbuAmountForToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"nbuAmount","type":"uint256"}],"name":"getTokenAmountForNbu","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"newOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"referralProgram","outputs":[{"internalType":"contract INimbusReferralProgram","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sponsorBonus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakePool","outputs":[{"internalType":"contract INimbusStakingPool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakingPools","outputs":[{"internalType":"contract INimbusStakingPool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapRouter","outputs":[{"internalType":"contract INimbusRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokenAmountForBonusThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"transferOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"unclaimedBonusBases","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"bool","name":"isAllowed","type":"bool"}],"name":"updateAllowedTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipientAddress","type":"address"}],"name":"updateRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newReferralProgramContract","type":"address"}],"name":"updateReferralProgramContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bonus","type":"uint256"}],"name":"updateSponsorBonus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newStakingPool","type":"address"}],"name":"updateStakePool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newStakingPool","type":"address"}],"name":"updateStakingPoolAdd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolIndex","type":"uint256"}],"name":"updateStakingPoolRemove","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newSwapRouter","type":"address"}],"name":"updateSwapRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newSwapToken","type":"address"}],"name":"updateSwapToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"threshold","type":"uint256"}],"name":"updateSwapTokenAmountForBonusThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60c06040523480156200001157600080fd5b50604051620041e7380380620041e7833981016040819052620000349162000105565b600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36001805460ff60a01b191690556001600160601b0319606094851b81166080529190931b1660a052600a8055600680546001600160a01b039283166001600160a01b031991821617909155600580548216301790556004805493909216921691909117905562000161565b80516001600160a01b03811681146200010057600080fd5b919050565b600080600080608085870312156200011b578384fd5b6200012685620000e8565b93506200013660208601620000e8565b92506200014660408601620000e8565b91506200015660608601620000e8565b905092959194509250565b60805160601c60a05160601c613fe362000204600039600081816107da0152818161099d01528181610a1401528181610a9801528181611a070152818161207701528181612143015281816121c701526129c50152600081816107b101528181610d42015281816115d1015281816116c901528181611e2601528181611ef3015281816124d20152818161271701528181612ff501526131cf0152613fe36000f3fe6080604052600436106102dc5760003560e01c80639e546c3811610184578063d4ee1d90116100d6578063eadcb1ef1161008a578063f8ea475611610064578063f8ea47561461075f578063fd9ef86214610774578063feec756c14610789576102dc565b8063eadcb1ef1461070a578063f1170a911461071f578063f2fde38b1461073f576102dc565b8063dc73e49c116100bb578063dc73e49c146106b5578063e25fe45d146106ca578063e744092e146106ea576102dc565b8063d4ee1d901461068d578063d7c0bf77146106a2576102dc565b8063b98b677f11610138578063ca9f576311610112578063ca9f576314610638578063cdc4234414610658578063d084dbbf1461066d576102dc565b8063b98b677f146105ee578063bf1b13e11461060e578063c31c9c0714610623576102dc565b8063ab636f8811610169578063ab636f881461058e578063af0b3c07146105ae578063b572ccca146105ce576102dc565b80639e546c381461054e578063a52bac611461056e576102dc565b8063675c9e921161023d578063855f0924116101f157806392fc4dcb116101cb57806392fc4dcb146104ee57806394071d7d1461050e578063996bc2921461052e576102dc565b8063855f0924146104995780638b1729dd146104b95780638da5cb5b146104d9576102dc565b80637a4e4ecf116102225780637a4e4ecf146104445780637fc96d6b146104645780638456cb5914610484576102dc565b8063675c9e921461040f57806379ba50971461042f576102dc565b80633ab7fea7116102945780635aad6cf0116102795780635aad6cf0146103b85780635c975abb146103d857806366d003ac146103fa576102dc565b80633ab7fea7146103835780633f4ba83a146103a3576102dc565b806320d1e874116102c557806320d1e8741461032e57806320ff430b1461034e578063366a548514610370576102dc565b80630978e84d146102e1578063164547541461030c575b600080fd5b3480156102ed57600080fd5b506102f66107a9565b6040516103039190613d60565b60405180910390f35b34801561031857600080fd5b506103216107af565b6040516103039190613795565b34801561033a57600080fd5b506102f6610349366004613708565b6107d3565b34801561035a57600080fd5b5061036e6103693660046134ff565b610805565b005b61036e61037e36600461349c565b610931565b34801561038f57600080fd5b5061036e61039e3660046135ca565b610ac3565b3480156103af57600080fd5b5061036e610b2a565b3480156103c457600080fd5b506103216103d3366004613708565b610c31565b3480156103e457600080fd5b506103ed610c68565b6040516103039190613873565b34801561040657600080fd5b50610321610c8a565b34801561041b57600080fd5b506102f661042a366004613577565b610ca6565b34801561043b57600080fd5b5061036e610ebc565b34801561045057600080fd5b5061036e61045f3660046134d4565b610f76565b34801561047057600080fd5b5061036e61047f36600461349c565b611095565b34801561049057600080fd5b5061036e61117a565b3480156104a557600080fd5b5061036e6104b4366004613708565b61128f565b3480156104c557600080fd5b5061036e6104d4366004613708565b611462565b3480156104e557600080fd5b506103216114b8565b3480156104fa57600080fd5b5061036e61050936600461349c565b6114d4565b34801561051a57600080fd5b5061036e610529366004613708565b611772565b34801561053a57600080fd5b5061036e61054936600461349c565b6117c8565b34801561055a57600080fd5b506102f661056936600461349c565b61195b565b34801561057a57600080fd5b506102f6610589366004613708565b611a00565b34801561059a57600080fd5b5061036e6105a9366004613589565b611a2c565b3480156105ba57600080fd5b5061036e6105c936600461349c565b611b28565b3480156105da57600080fd5b5061036e6105e936600461353f565b611c0d565b3480156105fa57600080fd5b5061036e61060936600461349c565b611d01565b34801561061a57600080fd5b506102f6611de6565b34801561062f57600080fd5b50610321611eb0565b34801561064457600080fd5b506102f6610653366004613577565b611ecc565b34801561066457600080fd5b50610321611fc1565b34801561067957600080fd5b506102f661068836600461349c565b611fdd565b34801561069957600080fd5b50610321611fef565b61036e6106b0366004613738565b61200b565b3480156106c157600080fd5b50610321612209565b3480156106d657600080fd5b5061036e6106e536600461349c565b612225565b3480156106f657600080fd5b506103ed61070536600461349c565b6127d6565b34801561071657600080fd5b506102f66127eb565b34801561072b57600080fd5b5061036e61073a366004613589565b6127f1565b34801561074b57600080fd5b5061036e61075a36600461349c565b6128e7565b34801561076b57600080fd5b506103216129a7565b34801561078057600080fd5b506103216129c3565b34801561079557600080fd5b5061036e6107a436600461349c565b6129e7565b60095481565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006107ff7f000000000000000000000000000000000000000000000000000000000000000083611ecc565b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461085f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166108ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613921565b600081116108e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613b93565b6108f1828483612acc565b7faabf44ab9d5bef08d1b60f287a337f0d11a248e49741ad189b429e47e98ba910828483604051610924939291906137dc565b60405180910390a1505050565b60015474010000000000000000000000000000000000000000900460ff1615610986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613a5a565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660009081526007602052604090205460ff16610a05576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613a91565b6000610a1034611a00565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015610a7a57600080fd5b505af1158015610a8e573d6000803e3d6000fd5b5050505050610abf7f0000000000000000000000000000000000000000000000000000000000000000348385612bf5565b5050565b60005b8151811015610abf57610b18828281518110610b0b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151612225565b80610b2281613ee3565b915050610ac6565b60005473ffffffffffffffffffffffffffffffffffffffff163314610b7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b60015474010000000000000000000000000000000000000000900460ff16610bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138b5565b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556040517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90610c27903390613795565b60405180910390a1565b60038181548110610c4157600080fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60015474010000000000000000000000000000000000000000900460ff165b90565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110610d06577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610d9b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff92831660209182029290920101526006546040517fd06ca61f00000000000000000000000000000000000000000000000000000000815291169063d06ca61f90610e009086908590600401613d8d565b60006040518083038186803b158015610e1857600080fd5b505afa158015610e2c573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610e729190810190613668565b600181518110610eab577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015191505092915050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610ee057600080fd5b6001546000805460405173ffffffffffffffffffffffffffffffffffffffff93841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff841617909155169055565b60005473ffffffffffffffffffffffffffffffffffffffff163314610fc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b73ffffffffffffffffffffffffffffffffffffffff8216611014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613921565b6000811161104e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613b93565b6110588282612cc4565b7f542fa6bfee3b4746210fbdd1d83f9e49b65adde3639f8d8f165dd18347938af282826040516110899291906137b6565b60405180910390a15050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146110e6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b73ffffffffffffffffffffffffffffffffffffffff8116611133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613c95565b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff1633146111cb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b60015474010000000000000000000000000000000000000000900460ff1615611220576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613a5a565b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556040517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890610c27903390613795565b60005473ffffffffffffffffffffffffffffffffffffffff1633146112e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b600380546112f090600190613ecc565b81548110611327577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000918252602090912001546003805473ffffffffffffffffffffffffffffffffffffffff9092169183908110611387577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003805480611407577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905501905550565b60005473ffffffffffffffffffffffffffffffffffffffff1633146114b3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b600a55565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff163314611525576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b73ffffffffffffffffffffffffffffffffffffffff8116611572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613c95565b60045473ffffffffffffffffffffffffffffffffffffffff161561165d57600480546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081169363095ea7b39361160993921691600091016137b6565b602060405180830381600087803b15801561162357600080fd5b505af1158015611637573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165b91906136ec565b505b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8381169190911782556040517f095ea7b30000000000000000000000000000000000000000000000000000000081527f00000000000000000000000000000000000000000000000000000000000000009091169163095ea7b3916117209185917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff91016137b6565b602060405180830381600087803b15801561173a57600080fd5b505af115801561174e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abf91906136ec565b60005473ffffffffffffffffffffffffffffffffffffffff1633146117c3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b600955565b60005473ffffffffffffffffffffffffffffffffffffffff163314611819576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b60005b6003548110156118e3578173ffffffffffffffffffffffffffffffffffffffff1660038281548110611877577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614156118d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613b5c565b806118db81613ee3565b91505061181c565b50600380546001810182556000919091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8316906370a08231906119b0903090600401613795565b60206040518083038186803b1580156119c857600080fd5b505afa1580156119dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ff9190613720565b60006107ff7f000000000000000000000000000000000000000000000000000000000000000083610ca6565b60015474010000000000000000000000000000000000000000900460ff1615611a81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613a5a565b73ffffffffffffffffffffffffffffffffffffffff831660009081526007602052604090205460ff16611ae0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613958565b6000611aec8484611ecc565b600554909150611b16908590339073ffffffffffffffffffffffffffffffffffffffff1684612d7d565b611b2284828585612bf5565b50505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314611b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b73ffffffffffffffffffffffffffffffffffffffff8116611bc6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613c95565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff163314611c5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b73ffffffffffffffffffffffffffffffffffffffff8216611cab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613ccc565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260076020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff163314611d52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b73ffffffffffffffffffffffffffffffffffffffff8116611d9f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613c95565b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906370a0823190611e5b903090600401613795565b60206040518083038186803b158015611e7357600080fd5b505afa158015611e87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eab9190613720565b905090565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b604080516002808252606082018352600092839291906020830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110611f4c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508381600181518110610d9b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60025473ffffffffffffffffffffffffffffffffffffffff1681565b600b6020526000908152604090205481565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60015474010000000000000000000000000000000000000000900460ff1615612060576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613a5a565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660009081526007602052604090205460ff166120df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613a91565b60006120ea34611a00565b905082811015612126576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613b25565b600083821461213d57612138846107d3565b61213f565b345b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156121a957600080fd5b505af11580156121bd573d6000803e3d6000fd5b50505050506121ee7f0000000000000000000000000000000000000000000000000000000000000000828686612bf5565b83821115611b2257611b22336122048334613ecc565b612cc4565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600b6020526040902054612281576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613bca565b6002546040517f4b75908800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690634b759088906122d7903390600401613795565b60206040518083038186803b1580156122ef57600080fd5b505afa158015612303573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123279190613720565b6002546040517f62d58c8700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906362d58c879061237d908590600401613795565b60206040518083038186803b15801561239557600080fd5b505afa1580156123a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123cd9190613720565b14612404576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906139c6565b60085460095460009161242f9173ffffffffffffffffffffffffffffffffffffffff90911690610ca6565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600b602052604090205490915081811015612492576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613c5e565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906370a0823190612507903390600401613795565b60206040518083038186803b15801561251f57600080fd5b505afa158015612533573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125579190613720565b905060005b60035481101561267a57838211156125735761267a565b612666600382815481106125b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000918252602090912001546040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906370a082319061260f903390600401613795565b60206040518083038186803b15801561262757600080fd5b505afa15801561263b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061265f9190613720565b8390612ea9565b91508061267281613ee3565b91505061255c565b508281116126b4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906139fd565b600060646126cd600a5485612ef990919063ffffffff16565b6126d79190613e56565b6040517fd9c24caf00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063d9c24caf90612751903390859060039060040161380d565b600060405180830381600087803b15801561276b57600080fd5b505af115801561277f573d6000803e3d6000fd5b5050336000818152600b602052604080822091909155517f1b3baf176b177f085bfde28708b89ac6eb563c8dd97fb07c669402f30cfbbf2e93506127c79250889085906137dc565b60405180910390a15050505050565b60076020526000908152604090205460ff1681565b600a5481565b60015474010000000000000000000000000000000000000000900460ff1615612846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613a5a565b73ffffffffffffffffffffffffffffffffffffffff831660009081526007602052604090205460ff166128a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613958565b60006128b18484610ca6565b6005549091506128db908590339073ffffffffffffffffffffffffffffffffffffffff1686612d7d565b611b2284848385612bf5565b60005473ffffffffffffffffffffffffffffffffffffffff163314612938576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b60015473ffffffffffffffffffffffffffffffffffffffff8281169116141561296057600080fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60045473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005473ffffffffffffffffffffffffffffffffffffffff163314612a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b73ffffffffffffffffffffffffffffffffffffffff8116612a85576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613c95565b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000808473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8585604051602401612afe9291906137b6565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051612b4c919061375c565b6000604051808303816000865af19150503d8060008114612b89576040519150601f19603f3d011682016040523d82523d6000602084013e612b8e565b606091505b5091509150818015612bb8575080511580612bb8575080806020019051810190612bb891906136ec565b612bee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108569061387e565b5050505050565b600480546040517f51746bb200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116916351746bb291612c4c918691869101613d69565b600060405180830381600087803b158015612c6657600080fd5b505af1158015612c7a573d6000803e3d6000fd5b505050507f516b4ae8076d4c01a0b4f1a2eee1b44bb232a0a6bb6e9893d145f84ccb3ac17d84848484604051612cb3949392919061383b565b60405180910390a1611b2282612f58565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff8416908390604051612cfb919061375c565b60006040518083038185875af1925050503d8060008114612d38576040519150601f19603f3d011682016040523d82523d6000602084013e612d3d565b606091505b5050905080612d78576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613c01565b505050565b6000808573ffffffffffffffffffffffffffffffffffffffff166323b872dd868686604051602401612db1939291906137dc565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051612dff919061375c565b6000604051808303816000865af19150503d8060008114612e3c576040519150601f19603f3d011682016040523d82523d6000602084013e612e41565b606091505b5091509150818015612e6b575080511580612e6b575080806020019051810190612e6b91906136ec565b612ea1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613d03565b505050505050565b600080612eb68385613e3e565b905083811015612ef2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108569061398f565b9392505050565b600082612f08575060006107ff565b6000612f148385613e8f565b905082612f218583613e56565b14612ef2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613ac8565b6000612f626133c7565b905073ffffffffffffffffffffffffffffffffffffffff81161561336957600854600954600091612fab9173ffffffffffffffffffffffffffffffffffffffff90911690610ca6565b9050808311156132fc576040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906370a082319061302a908690600401613795565b60206040518083038186803b15801561304257600080fd5b505afa158015613056573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061307a9190613720565b905060005b600354811015613146578282111561309657613146565b613132600382815481106130d3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000918252602090912001546040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906370a082319061260f908890600401613795565b91508061313e81613ee3565b91505061307f565b508181111561328f57336000908152600b602052604081205461316a908690612ea9565b905060006064613185600a5484612ef990919063ffffffff16565b61318f9190613e56565b6040517fd9c24caf00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063d9c24caf90613209908890859060039060040161380d565b600060405180830381600087803b15801561322357600080fd5b505af1158015613237573d6000803e3d6000fd5b5050336000818152600b602052604080822091909155517f1b3baf176b177f085bfde28708b89ac6eb563c8dd97fb07c669402f30cfbbf2e9350613280925088919085906137dc565b60405180910390a150506132f6565b336000908152600b60205260409020546132a99085612ea9565b336000818152600b6020526040908190209290925590517f8394fe60b40d30070bfe4a28d0420f9a7c8b5c4be70b22a37bf68ca7575a8a1b916132ed9187906137b6565b60405180910390a15b50613363565b336000908152600b60205260409020546133169084612ea9565b336000818152600b6020526040908190209290925590517f8394fe60b40d30070bfe4a28d0420f9a7c8b5c4be70b22a37bf68ca7575a8a1b9161335a9186906137b6565b60405180910390a15b50610abf565b336000908152600b60205260409020546133839083612ea9565b336000818152600b6020526040908190209290925590517f8394fe60b40d30070bfe4a28d0420f9a7c8b5c4be70b22a37bf68ca7575a8a1b916110899185906137b6565b60025460009073ffffffffffffffffffffffffffffffffffffffff166133ef57506000610c87565b6002546040517fe1e0313400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063e1e0313490613445903390600401613795565b60206040518083038186803b15801561345d57600080fd5b505afa158015613471573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061349591906134b8565b9050610c87565b6000602082840312156134ad578081fd5b8135612ef281613f7a565b6000602082840312156134c9578081fd5b8151612ef281613f7a565b600080604083850312156134e6578081fd5b82356134f181613f7a565b946020939093013593505050565b600080600060608486031215613513578081fd5b833561351e81613f7a565b9250602084013561352e81613f7a565b929592945050506040919091013590565b60008060408385031215613551578182fd5b823561355c81613f7a565b9150602083013561356c81613f9f565b809150509250929050565b600080604083850312156134e6578182fd5b60008060006060848603121561359d578283fd5b83356135a881613f7a565b92506020840135915060408401356135bf81613f7a565b809150509250925092565b600060208083850312156135dc578182fd5b823567ffffffffffffffff8111156135f2578283fd5b8301601f81018513613602578283fd5b803561361561361082613e1a565b613df0565b8181528381019083850185840285018601891015613631578687fd5b8694505b8385101561365c57803561364881613f7a565b835260019490940193918501918501613635565b50979650505050505050565b6000602080838503121561367a578182fd5b825167ffffffffffffffff811115613690578283fd5b8301601f810185136136a0578283fd5b80516136ae61361082613e1a565b81815283810190838501858402850186018910156136ca578687fd5b8694505b8385101561365c5780518352600194909401939185019185016136ce565b6000602082840312156136fd578081fd5b8151612ef281613f9f565b600060208284031215613719578081fd5b5035919050565b600060208284031215613731578081fd5b5051919050565b6000806040838503121561374a578182fd5b82359150602083013561356c81613f7a565b60008251815b8181101561377c5760208186018101518583015201613762565b8181111561378a5782828501525b509190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff9390931683526020830191909152604082015260600190565b73ffffffffffffffffffffffffffffffffffffffff948516815260208101939093526040830191909152909116606082015260800190565b901515815260200190565b6020808252601f908201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604082015260600190565b60208082526014908201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2043616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526015908201527f43616e2774206265207a65726f20616464726573730000000000000000000000604082015260600190565b60208082526011908201527f4e6f7420616c6c6f77656420746f6b656e000000000000000000000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526010908201527f4e6f7420757365722073706f6e736f7200000000000000000000000000000000604082015260600190565b6020808252602b908201527f53706f6e736f722062616c616e6365207468726573686f6c6420666f7220626f60408201527f6e7573206e6f74206d6574000000000000000000000000000000000000000000606082015260800190565b60208082526010908201527f5061757361626c653a2070617573656400000000000000000000000000000000604082015260600190565b6020808252601c908201527f4e6f7420616c6c6f77656420707572636861736520666f722045544800000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60408201527f7700000000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252600e908201527f4e6f7420656e6f75676820455448000000000000000000000000000000000000604082015260600190565b6020808252600b908201527f506f6f6c20657869737473000000000000000000000000000000000000000000604082015260600190565b60208082526018908201527f53686f756c642062652067726561746572207468616e20300000000000000000604082015260600190565b60208082526014908201527f4e6f20756e636c61696d656420626f6e75736573000000000000000000000000604082015260600190565b60208082526023908201527f5472616e7366657248656c7065723a204554485f5452414e534645525f46414960408201527f4c45440000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526017908201527f426f6e7573207468726573686f6c64206e6f74206d6574000000000000000000604082015260600190565b6020808252600f908201527f41646472657373206973207a65726f0000000000000000000000000000000000604082015260600190565b6020808252600f908201527f57726f6e67206164647265737365730000000000000000000000000000000000604082015260600190565b60208082526024908201527f5472616e7366657248656c7065723a205452414e534645525f46524f4d5f464160408201527f494c454400000000000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b91825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b60006040820184835260206040818501528185518084526060860191508287019350845b81811015613de357845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101613db1565b5090979650505050505050565b60405181810167ffffffffffffffff81118282101715613e1257613e12613f4b565b604052919050565b600067ffffffffffffffff821115613e3457613e34613f4b565b5060209081020190565b60008219821115613e5157613e51613f1c565b500190565b600082613e8a577f4e487b710000000000000000000000000000000000000000000000000000000081526012600452602481fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ec757613ec7613f1c565b500290565b600082821015613ede57613ede613f1c565b500390565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613f1557613f15613f1c565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff81168114613f9c57600080fd5b50565b8015158114613f9c57600080fdfea2646970667358221220d9724946e64518d2b369df77ee23935376aeb78bf58b0d05635309e5f180853664736f6c63430008000033000000000000000000000000eb58343b36c7528f23caae63a15024024131004900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bcd83df58a1bfd25b1347f9c9da1b7118b648a60000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106102dc5760003560e01c80639e546c3811610184578063d4ee1d90116100d6578063eadcb1ef1161008a578063f8ea475611610064578063f8ea47561461075f578063fd9ef86214610774578063feec756c14610789576102dc565b8063eadcb1ef1461070a578063f1170a911461071f578063f2fde38b1461073f576102dc565b8063dc73e49c116100bb578063dc73e49c146106b5578063e25fe45d146106ca578063e744092e146106ea576102dc565b8063d4ee1d901461068d578063d7c0bf77146106a2576102dc565b8063b98b677f11610138578063ca9f576311610112578063ca9f576314610638578063cdc4234414610658578063d084dbbf1461066d576102dc565b8063b98b677f146105ee578063bf1b13e11461060e578063c31c9c0714610623576102dc565b8063ab636f8811610169578063ab636f881461058e578063af0b3c07146105ae578063b572ccca146105ce576102dc565b80639e546c381461054e578063a52bac611461056e576102dc565b8063675c9e921161023d578063855f0924116101f157806392fc4dcb116101cb57806392fc4dcb146104ee57806394071d7d1461050e578063996bc2921461052e576102dc565b8063855f0924146104995780638b1729dd146104b95780638da5cb5b146104d9576102dc565b80637a4e4ecf116102225780637a4e4ecf146104445780637fc96d6b146104645780638456cb5914610484576102dc565b8063675c9e921461040f57806379ba50971461042f576102dc565b80633ab7fea7116102945780635aad6cf0116102795780635aad6cf0146103b85780635c975abb146103d857806366d003ac146103fa576102dc565b80633ab7fea7146103835780633f4ba83a146103a3576102dc565b806320d1e874116102c557806320d1e8741461032e57806320ff430b1461034e578063366a548514610370576102dc565b80630978e84d146102e1578063164547541461030c575b600080fd5b3480156102ed57600080fd5b506102f66107a9565b6040516103039190613d60565b60405180910390f35b34801561031857600080fd5b506103216107af565b6040516103039190613795565b34801561033a57600080fd5b506102f6610349366004613708565b6107d3565b34801561035a57600080fd5b5061036e6103693660046134ff565b610805565b005b61036e61037e36600461349c565b610931565b34801561038f57600080fd5b5061036e61039e3660046135ca565b610ac3565b3480156103af57600080fd5b5061036e610b2a565b3480156103c457600080fd5b506103216103d3366004613708565b610c31565b3480156103e457600080fd5b506103ed610c68565b6040516103039190613873565b34801561040657600080fd5b50610321610c8a565b34801561041b57600080fd5b506102f661042a366004613577565b610ca6565b34801561043b57600080fd5b5061036e610ebc565b34801561045057600080fd5b5061036e61045f3660046134d4565b610f76565b34801561047057600080fd5b5061036e61047f36600461349c565b611095565b34801561049057600080fd5b5061036e61117a565b3480156104a557600080fd5b5061036e6104b4366004613708565b61128f565b3480156104c557600080fd5b5061036e6104d4366004613708565b611462565b3480156104e557600080fd5b506103216114b8565b3480156104fa57600080fd5b5061036e61050936600461349c565b6114d4565b34801561051a57600080fd5b5061036e610529366004613708565b611772565b34801561053a57600080fd5b5061036e61054936600461349c565b6117c8565b34801561055a57600080fd5b506102f661056936600461349c565b61195b565b34801561057a57600080fd5b506102f6610589366004613708565b611a00565b34801561059a57600080fd5b5061036e6105a9366004613589565b611a2c565b3480156105ba57600080fd5b5061036e6105c936600461349c565b611b28565b3480156105da57600080fd5b5061036e6105e936600461353f565b611c0d565b3480156105fa57600080fd5b5061036e61060936600461349c565b611d01565b34801561061a57600080fd5b506102f6611de6565b34801561062f57600080fd5b50610321611eb0565b34801561064457600080fd5b506102f6610653366004613577565b611ecc565b34801561066457600080fd5b50610321611fc1565b34801561067957600080fd5b506102f661068836600461349c565b611fdd565b34801561069957600080fd5b50610321611fef565b61036e6106b0366004613738565b61200b565b3480156106c157600080fd5b50610321612209565b3480156106d657600080fd5b5061036e6106e536600461349c565b612225565b3480156106f657600080fd5b506103ed61070536600461349c565b6127d6565b34801561071657600080fd5b506102f66127eb565b34801561072b57600080fd5b5061036e61073a366004613589565b6127f1565b34801561074b57600080fd5b5061036e61075a36600461349c565b6128e7565b34801561076b57600080fd5b506103216129a7565b34801561078057600080fd5b506103216129c3565b34801561079557600080fd5b5061036e6107a436600461349c565b6129e7565b60095481565b7f000000000000000000000000eb58343b36c7528f23caae63a15024024131004981565b60006107ff7f0000000000000000000000000bcd83df58a1bfd25b1347f9c9da1b7118b648a683611ecc565b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461085f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166108ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613921565b600081116108e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613b93565b6108f1828483612acc565b7faabf44ab9d5bef08d1b60f287a337f0d11a248e49741ad189b429e47e98ba910828483604051610924939291906137dc565b60405180910390a1505050565b60015474010000000000000000000000000000000000000000900460ff1615610986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613a5a565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000bcd83df58a1bfd25b1347f9c9da1b7118b648a61660009081526007602052604090205460ff16610a05576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613a91565b6000610a1034611a00565b90507f0000000000000000000000000bcd83df58a1bfd25b1347f9c9da1b7118b648a673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015610a7a57600080fd5b505af1158015610a8e573d6000803e3d6000fd5b5050505050610abf7f0000000000000000000000000bcd83df58a1bfd25b1347f9c9da1b7118b648a6348385612bf5565b5050565b60005b8151811015610abf57610b18828281518110610b0b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151612225565b80610b2281613ee3565b915050610ac6565b60005473ffffffffffffffffffffffffffffffffffffffff163314610b7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b60015474010000000000000000000000000000000000000000900460ff16610bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138b5565b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556040517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90610c27903390613795565b60405180910390a1565b60038181548110610c4157600080fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60015474010000000000000000000000000000000000000000900460ff165b90565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110610d06577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000eb58343b36c7528f23caae63a15024024131004981600181518110610d9b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff92831660209182029290920101526006546040517fd06ca61f00000000000000000000000000000000000000000000000000000000815291169063d06ca61f90610e009086908590600401613d8d565b60006040518083038186803b158015610e1857600080fd5b505afa158015610e2c573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610e729190810190613668565b600181518110610eab577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015191505092915050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610ee057600080fd5b6001546000805460405173ffffffffffffffffffffffffffffffffffffffff93841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff841617909155169055565b60005473ffffffffffffffffffffffffffffffffffffffff163314610fc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b73ffffffffffffffffffffffffffffffffffffffff8216611014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613921565b6000811161104e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613b93565b6110588282612cc4565b7f542fa6bfee3b4746210fbdd1d83f9e49b65adde3639f8d8f165dd18347938af282826040516110899291906137b6565b60405180910390a15050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146110e6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b73ffffffffffffffffffffffffffffffffffffffff8116611133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613c95565b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff1633146111cb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b60015474010000000000000000000000000000000000000000900460ff1615611220576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613a5a565b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556040517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890610c27903390613795565b60005473ffffffffffffffffffffffffffffffffffffffff1633146112e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b600380546112f090600190613ecc565b81548110611327577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000918252602090912001546003805473ffffffffffffffffffffffffffffffffffffffff9092169183908110611387577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003805480611407577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905501905550565b60005473ffffffffffffffffffffffffffffffffffffffff1633146114b3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b600a55565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff163314611525576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b73ffffffffffffffffffffffffffffffffffffffff8116611572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613c95565b60045473ffffffffffffffffffffffffffffffffffffffff161561165d57600480546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000eb58343b36c7528f23caae63a15024024131004981169363095ea7b39361160993921691600091016137b6565b602060405180830381600087803b15801561162357600080fd5b505af1158015611637573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165b91906136ec565b505b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8381169190911782556040517f095ea7b30000000000000000000000000000000000000000000000000000000081527f000000000000000000000000eb58343b36c7528f23caae63a1502402413100499091169163095ea7b3916117209185917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff91016137b6565b602060405180830381600087803b15801561173a57600080fd5b505af115801561174e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abf91906136ec565b60005473ffffffffffffffffffffffffffffffffffffffff1633146117c3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b600955565b60005473ffffffffffffffffffffffffffffffffffffffff163314611819576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b60005b6003548110156118e3578173ffffffffffffffffffffffffffffffffffffffff1660038281548110611877577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614156118d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613b5c565b806118db81613ee3565b91505061181c565b50600380546001810182556000919091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8316906370a08231906119b0903090600401613795565b60206040518083038186803b1580156119c857600080fd5b505afa1580156119dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ff9190613720565b60006107ff7f0000000000000000000000000bcd83df58a1bfd25b1347f9c9da1b7118b648a683610ca6565b60015474010000000000000000000000000000000000000000900460ff1615611a81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613a5a565b73ffffffffffffffffffffffffffffffffffffffff831660009081526007602052604090205460ff16611ae0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613958565b6000611aec8484611ecc565b600554909150611b16908590339073ffffffffffffffffffffffffffffffffffffffff1684612d7d565b611b2284828585612bf5565b50505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314611b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b73ffffffffffffffffffffffffffffffffffffffff8116611bc6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613c95565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff163314611c5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b73ffffffffffffffffffffffffffffffffffffffff8216611cab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613ccc565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260076020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff163314611d52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b73ffffffffffffffffffffffffffffffffffffffff8116611d9f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613c95565b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000eb58343b36c7528f23caae63a15024024131004916906370a0823190611e5b903090600401613795565b60206040518083038186803b158015611e7357600080fd5b505afa158015611e87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eab9190613720565b905090565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b604080516002808252606082018352600092839291906020830190803683370190505090507f000000000000000000000000eb58343b36c7528f23caae63a15024024131004981600081518110611f4c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508381600181518110610d9b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60025473ffffffffffffffffffffffffffffffffffffffff1681565b600b6020526000908152604090205481565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60015474010000000000000000000000000000000000000000900460ff1615612060576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613a5a565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000bcd83df58a1bfd25b1347f9c9da1b7118b648a61660009081526007602052604090205460ff166120df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613a91565b60006120ea34611a00565b905082811015612126576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613b25565b600083821461213d57612138846107d3565b61213f565b345b90507f0000000000000000000000000bcd83df58a1bfd25b1347f9c9da1b7118b648a673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156121a957600080fd5b505af11580156121bd573d6000803e3d6000fd5b50505050506121ee7f0000000000000000000000000bcd83df58a1bfd25b1347f9c9da1b7118b648a6828686612bf5565b83821115611b2257611b22336122048334613ecc565b612cc4565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600b6020526040902054612281576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613bca565b6002546040517f4b75908800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690634b759088906122d7903390600401613795565b60206040518083038186803b1580156122ef57600080fd5b505afa158015612303573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123279190613720565b6002546040517f62d58c8700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906362d58c879061237d908590600401613795565b60206040518083038186803b15801561239557600080fd5b505afa1580156123a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123cd9190613720565b14612404576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906139c6565b60085460095460009161242f9173ffffffffffffffffffffffffffffffffffffffff90911690610ca6565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600b602052604090205490915081811015612492576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613c5e565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000eb58343b36c7528f23caae63a15024024131004916906370a0823190612507903390600401613795565b60206040518083038186803b15801561251f57600080fd5b505afa158015612533573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125579190613720565b905060005b60035481101561267a57838211156125735761267a565b612666600382815481106125b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000918252602090912001546040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906370a082319061260f903390600401613795565b60206040518083038186803b15801561262757600080fd5b505afa15801561263b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061265f9190613720565b8390612ea9565b91508061267281613ee3565b91505061255c565b508281116126b4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906139fd565b600060646126cd600a5485612ef990919063ffffffff16565b6126d79190613e56565b6040517fd9c24caf00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000eb58343b36c7528f23caae63a150240241310049169063d9c24caf90612751903390859060039060040161380d565b600060405180830381600087803b15801561276b57600080fd5b505af115801561277f573d6000803e3d6000fd5b5050336000818152600b602052604080822091909155517f1b3baf176b177f085bfde28708b89ac6eb563c8dd97fb07c669402f30cfbbf2e93506127c79250889085906137dc565b60405180910390a15050505050565b60076020526000908152604090205460ff1681565b600a5481565b60015474010000000000000000000000000000000000000000900460ff1615612846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613a5a565b73ffffffffffffffffffffffffffffffffffffffff831660009081526007602052604090205460ff166128a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613958565b60006128b18484610ca6565b6005549091506128db908590339073ffffffffffffffffffffffffffffffffffffffff1686612d7d565b611b2284848385612bf5565b60005473ffffffffffffffffffffffffffffffffffffffff163314612938576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b60015473ffffffffffffffffffffffffffffffffffffffff8281169116141561296057600080fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60045473ffffffffffffffffffffffffffffffffffffffff1681565b7f0000000000000000000000000bcd83df58a1bfd25b1347f9c9da1b7118b648a681565b60005473ffffffffffffffffffffffffffffffffffffffff163314612a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610856906138ec565b73ffffffffffffffffffffffffffffffffffffffff8116612a85576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613c95565b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000808473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8585604051602401612afe9291906137b6565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051612b4c919061375c565b6000604051808303816000865af19150503d8060008114612b89576040519150601f19603f3d011682016040523d82523d6000602084013e612b8e565b606091505b5091509150818015612bb8575080511580612bb8575080806020019051810190612bb891906136ec565b612bee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108569061387e565b5050505050565b600480546040517f51746bb200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116916351746bb291612c4c918691869101613d69565b600060405180830381600087803b158015612c6657600080fd5b505af1158015612c7a573d6000803e3d6000fd5b505050507f516b4ae8076d4c01a0b4f1a2eee1b44bb232a0a6bb6e9893d145f84ccb3ac17d84848484604051612cb3949392919061383b565b60405180910390a1611b2282612f58565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff8416908390604051612cfb919061375c565b60006040518083038185875af1925050503d8060008114612d38576040519150601f19603f3d011682016040523d82523d6000602084013e612d3d565b606091505b5050905080612d78576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613c01565b505050565b6000808573ffffffffffffffffffffffffffffffffffffffff166323b872dd868686604051602401612db1939291906137dc565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051612dff919061375c565b6000604051808303816000865af19150503d8060008114612e3c576040519150601f19603f3d011682016040523d82523d6000602084013e612e41565b606091505b5091509150818015612e6b575080511580612e6b575080806020019051810190612e6b91906136ec565b612ea1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613d03565b505050505050565b600080612eb68385613e3e565b905083811015612ef2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108569061398f565b9392505050565b600082612f08575060006107ff565b6000612f148385613e8f565b905082612f218583613e56565b14612ef2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690613ac8565b6000612f626133c7565b905073ffffffffffffffffffffffffffffffffffffffff81161561336957600854600954600091612fab9173ffffffffffffffffffffffffffffffffffffffff90911690610ca6565b9050808311156132fc576040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000eb58343b36c7528f23caae63a15024024131004916906370a082319061302a908690600401613795565b60206040518083038186803b15801561304257600080fd5b505afa158015613056573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061307a9190613720565b905060005b600354811015613146578282111561309657613146565b613132600382815481106130d3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000918252602090912001546040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906370a082319061260f908890600401613795565b91508061313e81613ee3565b91505061307f565b508181111561328f57336000908152600b602052604081205461316a908690612ea9565b905060006064613185600a5484612ef990919063ffffffff16565b61318f9190613e56565b6040517fd9c24caf00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000eb58343b36c7528f23caae63a150240241310049169063d9c24caf90613209908890859060039060040161380d565b600060405180830381600087803b15801561322357600080fd5b505af1158015613237573d6000803e3d6000fd5b5050336000818152600b602052604080822091909155517f1b3baf176b177f085bfde28708b89ac6eb563c8dd97fb07c669402f30cfbbf2e9350613280925088919085906137dc565b60405180910390a150506132f6565b336000908152600b60205260409020546132a99085612ea9565b336000818152600b6020526040908190209290925590517f8394fe60b40d30070bfe4a28d0420f9a7c8b5c4be70b22a37bf68ca7575a8a1b916132ed9187906137b6565b60405180910390a15b50613363565b336000908152600b60205260409020546133169084612ea9565b336000818152600b6020526040908190209290925590517f8394fe60b40d30070bfe4a28d0420f9a7c8b5c4be70b22a37bf68ca7575a8a1b9161335a9186906137b6565b60405180910390a15b50610abf565b336000908152600b60205260409020546133839083612ea9565b336000818152600b6020526040908190209290925590517f8394fe60b40d30070bfe4a28d0420f9a7c8b5c4be70b22a37bf68ca7575a8a1b916110899185906137b6565b60025460009073ffffffffffffffffffffffffffffffffffffffff166133ef57506000610c87565b6002546040517fe1e0313400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063e1e0313490613445903390600401613795565b60206040518083038186803b15801561345d57600080fd5b505afa158015613471573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061349591906134b8565b9050610c87565b6000602082840312156134ad578081fd5b8135612ef281613f7a565b6000602082840312156134c9578081fd5b8151612ef281613f7a565b600080604083850312156134e6578081fd5b82356134f181613f7a565b946020939093013593505050565b600080600060608486031215613513578081fd5b833561351e81613f7a565b9250602084013561352e81613f7a565b929592945050506040919091013590565b60008060408385031215613551578182fd5b823561355c81613f7a565b9150602083013561356c81613f9f565b809150509250929050565b600080604083850312156134e6578182fd5b60008060006060848603121561359d578283fd5b83356135a881613f7a565b92506020840135915060408401356135bf81613f7a565b809150509250925092565b600060208083850312156135dc578182fd5b823567ffffffffffffffff8111156135f2578283fd5b8301601f81018513613602578283fd5b803561361561361082613e1a565b613df0565b8181528381019083850185840285018601891015613631578687fd5b8694505b8385101561365c57803561364881613f7a565b835260019490940193918501918501613635565b50979650505050505050565b6000602080838503121561367a578182fd5b825167ffffffffffffffff811115613690578283fd5b8301601f810185136136a0578283fd5b80516136ae61361082613e1a565b81815283810190838501858402850186018910156136ca578687fd5b8694505b8385101561365c5780518352600194909401939185019185016136ce565b6000602082840312156136fd578081fd5b8151612ef281613f9f565b600060208284031215613719578081fd5b5035919050565b600060208284031215613731578081fd5b5051919050565b6000806040838503121561374a578182fd5b82359150602083013561356c81613f7a565b60008251815b8181101561377c5760208186018101518583015201613762565b8181111561378a5782828501525b509190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff9390931683526020830191909152604082015260600190565b73ffffffffffffffffffffffffffffffffffffffff948516815260208101939093526040830191909152909116606082015260800190565b901515815260200190565b6020808252601f908201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604082015260600190565b60208082526014908201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2043616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526015908201527f43616e2774206265207a65726f20616464726573730000000000000000000000604082015260600190565b60208082526011908201527f4e6f7420616c6c6f77656420746f6b656e000000000000000000000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526010908201527f4e6f7420757365722073706f6e736f7200000000000000000000000000000000604082015260600190565b6020808252602b908201527f53706f6e736f722062616c616e6365207468726573686f6c6420666f7220626f60408201527f6e7573206e6f74206d6574000000000000000000000000000000000000000000606082015260800190565b60208082526010908201527f5061757361626c653a2070617573656400000000000000000000000000000000604082015260600190565b6020808252601c908201527f4e6f7420616c6c6f77656420707572636861736520666f722045544800000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60408201527f7700000000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252600e908201527f4e6f7420656e6f75676820455448000000000000000000000000000000000000604082015260600190565b6020808252600b908201527f506f6f6c20657869737473000000000000000000000000000000000000000000604082015260600190565b60208082526018908201527f53686f756c642062652067726561746572207468616e20300000000000000000604082015260600190565b60208082526014908201527f4e6f20756e636c61696d656420626f6e75736573000000000000000000000000604082015260600190565b60208082526023908201527f5472616e7366657248656c7065723a204554485f5452414e534645525f46414960408201527f4c45440000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526017908201527f426f6e7573207468726573686f6c64206e6f74206d6574000000000000000000604082015260600190565b6020808252600f908201527f41646472657373206973207a65726f0000000000000000000000000000000000604082015260600190565b6020808252600f908201527f57726f6e67206164647265737365730000000000000000000000000000000000604082015260600190565b60208082526024908201527f5472616e7366657248656c7065723a205452414e534645525f46524f4d5f464160408201527f494c454400000000000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b91825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b60006040820184835260206040818501528185518084526060860191508287019350845b81811015613de357845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101613db1565b5090979650505050505050565b60405181810167ffffffffffffffff81118282101715613e1257613e12613f4b565b604052919050565b600067ffffffffffffffff821115613e3457613e34613f4b565b5060209081020190565b60008219821115613e5157613e51613f1c565b500190565b600082613e8a577f4e487b710000000000000000000000000000000000000000000000000000000081526012600452602481fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ec757613ec7613f1c565b500290565b600082821015613ede57613ede613f1c565b500390565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613f1557613f15613f1c565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff81168114613f9c57600080fd5b50565b8015158114613f9c57600080fdfea2646970667358221220d9724946e64518d2b369df77ee23935376aeb78bf58b0d05635309e5f180853664736f6c63430008000033

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

000000000000000000000000eb58343b36c7528f23caae63a15024024131004900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bcd83df58a1bfd25b1347f9c9da1b7118b648a60000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : nbu (address): 0xEB58343b36C7528F23CAAe63a150240241310049
Arg [1] : router (address): 0x0000000000000000000000000000000000000000
Arg [2] : nbuWeth (address): 0x0BCd83DF58a1BfD25b1347F9c9dA1b7118b648a6
Arg [3] : pool (address): 0x0000000000000000000000000000000000000000

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000eb58343b36c7528f23caae63a150240241310049
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [2] : 0000000000000000000000000bcd83df58a1bfd25b1347f9c9da1b7118b648a6
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

4156:10986:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4781:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4250:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;6619:139::-;;;;;;;;;;-1:-1:-1;6619:139:0;;;;;:::i;:::-;;:::i;12693:308::-;;;;;;;;;;-1:-1:-1;12693:308:0;;;;;:::i;:::-;;:::i;:::-;;10014:342;;;;;;:::i;:::-;;:::i;11037:178::-;;;;;;;;;;-1:-1:-1;11037:178:0;;;;;:::i;:::-;;:::i;1419:119::-;;;;;;;;;;;;;:::i;4374:40::-;;;;;;;;;;-1:-1:-1;4374:40:0;;;;;:::i;:::-;;:::i;1004:78::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;4562:24::-;;;;;;;;;;;;;:::i;5913:273::-;;;;;;;;;;-1:-1:-1;5913:273:0;;;;;:::i;:::-;;:::i;586:204::-;;;;;;;;;;;;;:::i;12400:285::-;;;;;;;;;;-1:-1:-1;12400:285:0;;;;;:::i;:::-;;:::i;14811:174::-;;;;;;;;;;-1:-1:-1;14811:174:0;;;;;:::i;:::-;;:::i;1294:117::-;;;;;;;;;;;;;:::i;14422:179::-;;;;;;;;;;-1:-1:-1;14422:179:0;;;;;:::i;:::-;;:::i;13405:98::-;;;;;;;;;;-1:-1:-1;13405:98:0;;;;;:::i;:::-;;:::i;51:20::-;;;;;;;;;;;;;:::i;13779:335::-;;;;;;;;;;-1:-1:-1;13779:335:0;;;;;:::i;:::-;;:::i;14993:146::-;;;;;;;;;;-1:-1:-1;14993:146:0;;;;;:::i;:::-;;:::i;14122:292::-;;;;;;;;;;-1:-1:-1;14122:292:0;;;;;:::i;:::-;;:::i;6766:129::-;;;;;;;;;;-1:-1:-1;6766:129:0;;;;;:::i;:::-;;:::i;6194:140::-;;;;;;;;;;-1:-1:-1;6194:140:0;;;;;:::i;:::-;;:::i;9214:391::-;;;;;;;;;;-1:-1:-1;9214:391:0;;;;;:::i;:::-;;:::i;13511:260::-;;;;;;;;;;-1:-1:-1;13511:260:0;;;;;:::i;:::-;;:::i;13009:189::-;;;;;;;;;;-1:-1:-1;13009:189:0;;;;;:::i;:::-;;:::i;14609:194::-;;;;;;;;;;-1:-1:-1;14609:194:0;;;;;:::i;:::-;;:::i;5788:117::-;;;;;;;;;;;;;:::i;4620:31::-;;;;;;;;;;;;;:::i;6342:269::-;;;;;;;;;;-1:-1:-1;6342:269:0;;;;;:::i;:::-;;:::i;4322:45::-;;;;;;;;;;;;;:::i;4871:51::-;;;;;;;;;;-1:-1:-1;4871:51:0;;;;;:::i;:::-;;:::i;78:23::-;;;;;;;;;;;;;:::i;10364:663::-;;;;;;:::i;:::-;;:::i;4727:24::-;;;;;;;;;;;;;:::i;11223:1138::-;;;;;;;;;;-1:-1:-1;11223:1138:0;;;;;:::i;:::-;;:::i;4674:46::-;;;;;;;;;;-1:-1:-1;4674:46:0;;;;;:::i;:::-;;:::i;4840:24::-;;;;;;;;;;;;;:::i;9613:393::-;;;;;;;;;;-1:-1:-1;9613:393:0;;;;;:::i;:::-;;:::i;423:155::-;;;;;;;;;;-1:-1:-1;423:155:0;;;;;:::i;:::-;;:::i;4469:35::-;;;;;;;;;;;;;:::i;4282:33::-;;;;;;;;;;;;;:::i;13210:186::-;;;;;;;;;;-1:-1:-1;13210:186:0;;;;;:::i;:::-;;:::i;4781:44::-;;;;:::o;4250:25::-;;;:::o;6619:139::-;6684:4;6709:41;6730:8;6740:9;6709:20;:41::i;:::-;6702:48;6619:139;-1:-1:-1;;6619:139:0:o;12693:308::-;353:5;;;;339:10;:19;331:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12790:16:::1;::::0;::::1;12782:50;;;;;;;;;;;;:::i;:::-;12860:1;12851:6;:10;12843:47;;;;;;;;;;;;:::i;:::-;12901:46;12929:5;12936:2;12940:6;12901:27;:46::i;:::-;12963:30;12975:5;12982:2;12986:6;12963:30;;;;;;;;:::i;:::-;;;;;;;;12693:308:::0;;;:::o;10014:342::-;1135:7;;;;;;;1134:8;1126:37;;;;;;;;;;;;:::i;:::-;10113:23:::1;10127:8;10113:23;;::::0;;;:13:::1;:23;::::0;;;;;::::1;;10105:64;;;;;;;;;;;;:::i;:::-;10180:14;10197:29;10216:9;10197:18;:29::i;:::-;10180:46;;10247:8;10237:27;;;10272:9;10237:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;10295:53;10303:8;10313:9;10324;10335:12;10295:7;:53::i;:::-;1174:1;10014:342:::0;:::o;11037:178::-;11121:6;11116:92;11133:5;:12;11129:1;:16;11116:92;;;11167:29;11187:5;11193:1;11187:8;;;;;;;;;;;;;;;;;;;;;;11167:19;:29::i;:::-;11147:3;;;;:::i;:::-;;;;11116:92;;1419:119;353:5;;;;339:10;:19;331:64;;;;;;;;;;;;:::i;:::-;1232:7:::1;::::0;;;::::1;;;1224:40;;;;;;;;;;;;:::i;:::-;1479:7:::2;:15:::0;;;::::2;::::0;;1510:20:::2;::::0;::::2;::::0;::::2;::::0;1519:10:::2;::::0;1510:20:::2;:::i;:::-;;;;;;;;1419:119::o:0;4374:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4374:40:0;:::o;1004:78::-;1067:7;;;;;;;1004:78;;:::o;4562:24::-;;;;;;:::o;5913:273::-;6039:16;;;6053:1;6039:16;;;;;;;;5997:4;;;;6039:16;6053:1;6039:16;;;;;;;;;;-1:-1:-1;6039:16:0;6015:40;;6076:5;6066:4;6071:1;6066:7;;;;;;;;;;;;;;;;;;;;;:15;;;;;;;;;;;6110:3;6092:4;6097:1;6092:7;;;;;;;;;;;;;;;;:22;;;;:7;;;;;;;;;:22;6132:10;;:43;;;;;:10;;;:24;;:43;;6157:11;;6170:4;;6132:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6176:1;6132:46;;;;;;;;;;;;;;;;;;;;;;6125:53;;;5913:273;;;;:::o;586:204::-;661:8;;;;647:10;:22;639:31;;;;;;714:8;;;707:5;;686:37;;714:8;;;;;707:5;;;;686:37;;;742:8;;;;734:16;;;;;;742:8;;;734:16;;;;761:21;;;586:204::o;12400:285::-;353:5;;;;339:10;:19;331:64;;;;;;;;;;;;:::i;:::-;12490:16:::1;::::0;::::1;12482:50;;;;;;;;;;;;:::i;:::-;12560:1;12551:6;:10;12543:47;;;;;;;;;;;;:::i;:::-;12601:42;12632:2;12636:6;12601:30;:42::i;:::-;12659:18;12666:2;12670:6;12659:18;;;;;;;:::i;:::-;;;;;;;;12400:285:::0;;:::o;14811:174::-;353:5;;;;339:10;:19;331:64;;;;;;;;;;;;:::i;:::-;14896:26:::1;::::0;::::1;14888:54;;;;;;;;;;;;:::i;:::-;14953:9;:24:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;14811:174::o;1294:117::-;353:5;;;;339:10;:19;331:64;;;;;;;;;;;;:::i;:::-;1135:7:::1;::::0;;;::::1;;;1134:8;1126:37;;;;;;;;;;;;:::i;:::-;1365:4:::2;1355:14:::0;;;::::2;::::0;::::2;::::0;;1385:18:::2;::::0;::::2;::::0;::::2;::::0;1392:10:::2;::::0;1385:18:::2;:::i;14422:179::-:0;353:5;;;;339:10;:19;331:64;;;;;;;;;;;;:::i;:::-;14527:12:::1;14540:19:::0;;:23:::1;::::0;14562:1:::1;::::0;14540:23:::1;:::i;:::-;14527:37;;;;;;;;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;14501:12:::1;:23:::0;;14527:37:::1;::::0;;::::1;::::0;14514:9;;14501:23;::::1;;;;;;;;;;;;;;;;;;;;;:63;;;;;;;;;;;;;;;;;;14575:12;:18;;;;;;;;;;;;;;;;::::0;;;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;-1:-1:-1;14422:179:0:o;13405:98::-;353:5;;;;339:10;:19;331:64;;;;;;;;;;;;:::i;:::-;13475:12:::1;:20:::0;13405:98::o;51:20::-;;;;;;:::o;13779:335::-;353:5;;;;339:10;:19;331:64;;;;;;;;;;;;:::i;:::-;13866:28:::1;::::0;::::1;13858:56;;;;;;;;;;;;:::i;:::-;13937:9;::::0;13929:32:::1;13937:9;13929:32:::0;13925:72:::1;;13983:9;::::0;;13963:34:::1;::::0;;;;:11:::1;:3;:11:::0;::::1;::::0;::::1;::::0;:34:::1;::::0;13983:9;::::1;::::0;::::1;::::0;13963:34:::1;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13925:72;14008:9;:46:::0;;;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;14065:41:::1;::::0;;;;:3:::1;:11:::0;;::::1;::::0;::::1;::::0;:41:::1;::::0;14008:46;;14093:12:::1;::::0;14065:41:::1;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14993:146::-:0;353:5;;;;339:10;:19;331:64;;;;;;;;;;;;:::i;:::-;15087:32:::1;:44:::0;14993:146::o;14122:292::-;353:5;;;;339:10;:19;331:64;;;;;;;;;;;;:::i;:::-;14211:6:::1;14206:137;14223:12;:19:::0;14219:23;::::1;14206:137;;;14301:14;14273:42;;14281:12;14294:1;14281:15;;;;;;;;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;::::1;;14273:42;;14264:67;;;;;;;;;;;;:::i;:::-;14244:3:::0;::::1;::::0;::::1;:::i;:::-;;;;14206:137;;;-1:-1:-1::0;14353:12:0::1;:53:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;14353:53:0;;;;;::::1;::::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;14122:292::o;6766:129::-;6851:36;;;;;6826:4;;6851:21;;;;;;:36;;6881:4;;6851:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6194:140::-;6259:4;6284:41;6305:8;6315:9;6284:20;:41::i;9214:391::-;1135:7;;;;;;;1134:8;1126:37;;;;;;;;;;;;:::i;:::-;9339:20:::1;::::0;::::1;;::::0;;;:13:::1;:20;::::0;;;;;::::1;;9331:50;;;;;;;;;;;;:::i;:::-;9392:16;9411:38;9432:5;9439:9;9411:20;:38::i;:::-;9511:9;::::0;9392:57;;-1:-1:-1;9460:74:0::1;::::0;9492:5;;9499:10:::1;::::0;9511:9:::1;;9392:57:::0;9460:31:::1;:74::i;:::-;9545:52;9553:5;9560:11;9573:9;9584:12;9545:7;:52::i;:::-;1174:1;9214:391:::0;;;:::o;13511:260::-;353:5;;;;339:10;:19;331:64;;;;;;;;;;;;:::i;:::-;13624:40:::1;::::0;::::1;13616:68;;;;;;;;;;;;:::i;:::-;13695:15;:68:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;13511:260::o;13009:189::-;353:5;;;;339:10;:19;331:64;;;;;;;;;;;;:::i;:::-;13108:19:::1;::::0;::::1;13099:48;;;;;;;;;;;;:::i;:::-;13158:20;::::0;;;::::1;;::::0;;;:13:::1;:20;::::0;;;;:32;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;13009:189::o;14609:194::-;353:5;;;;339:10;:19;331:64;;;;;;;;;;;;:::i;:::-;14696:27:::1;::::0;::::1;14688:55;;;;;;;;;;;;:::i;:::-;14754:10;:41:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;14609:194::o;5788:117::-;5869:28;;;;;5845:4;;5869:13;:3;:13;;;;:28;;5891:4;;5869:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5862:35;;5788:117;:::o;4620:31::-;;;;;;:::o;6342:269::-;6466:16;;;6480:1;6466:16;;;;;;;;6424:4;;;;6466:16;6480:1;6466:16;;;;;;;;;;-1:-1:-1;6466:16:0;6442:40;;6511:3;6493:4;6498:1;6493:7;;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6536:5;6526:4;6531:1;6526:7;;;;;;;;;;;;;;;4322:45;;;;;;:::o;4871:51::-;;;;;;;;;;;;;:::o;78:23::-;;;;;;:::o;10364:663::-;1135:7;;;;;;;1134:8;1126:37;;;;;;;;;;;;:::i;:::-;10479:23:::1;10493:8;10479:23;;::::0;;;:13:::1;:23;::::0;;;;;::::1;;10471:64;;;;;;;;;;;;:::i;:::-;10546:17;10566:29;10585:9;10566:18;:29::i;:::-;10546:49;;10630:9;10614:12;:25;;10606:52;;;;;;;;;;;;:::i;:::-;10669:14;10702:9;10686:12;:25;:69;;10726:29;10745:9;10726:18;:29::i;:::-;10686:69;;;10714:9;10686:69;10669:86;;10776:8;10766:27;;;10801:9;10766:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;10824:53;10832:8;10842:9;10853;10864:12;10824:7;:53::i;:::-;10943:9;10928:12;:24;10924:95;;;10954:65;10985:10;10997:21;11009:9:::0;10997::::1;:21;:::i;:::-;10954:30;:65::i;4727:24::-:0;;;;;;:::o;11223:1138::-;11292:25;;;11320:1;11292:25;;;:19;:25;;;;;;11284:62;;;;;;;;;;;;:::i;:::-;11411:15;;:43;;;;;:15;;;;;:31;;:43;;11443:10;;11411:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11365:15;;:42;;;;;:15;;;;;:36;;:42;;11402:4;;11365:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:89;11357:118;;;;;;;;;;;;:::i;:::-;11545:9;;11556:32;;11496:25;;11524:65;;11545:9;;;;;11524:20;:65::i;:::-;11617:25;;;11600:14;11617:25;;;:19;:25;;;;;;11496:93;;-1:-1:-1;11662:33:0;;;;11653:70;;;;;;;;;;;;:::i;:::-;11757:25;;;;;11736:18;;11757:13;:3;:13;;;;:25;;11771:10;;11757:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11736:46;;11798:6;11793:204;11810:12;:19;11806:23;;11793:204;;;11871:20;11855:13;:36;11851:47;;;11893:5;;11851:47;11929:56;11947:12;11960:1;11947:15;;;;;;;;;;;;;;;;;;;;;;;;;;:37;;;;;:15;;;;;:25;;:37;;11973:10;;11947:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11929:13;;:17;:56::i;:::-;11913:72;-1:-1:-1;11831:3:0;;;;:::i;:::-;;;;11793:204;;;;12042:20;12026:13;:36;12017:93;;;;;;;;;;;;:::i;:::-;12121:23;12177:3;12147:27;12161:12;;12147:9;:13;;:27;;;;:::i;:::-;:33;;;;:::i;:::-;12191:43;;;;;12121:59;;-1:-1:-1;12191:8:0;:3;:8;;;;:43;;12200:10;;12121:59;;12232:1;;12191:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12265:10:0;12279:1;12245:31;;;:19;:31;;;;;;:35;;;;12296:57;;;-1:-1:-1;12296:57:0;;-1:-1:-1;12328:4:0;;12334:18;;12296:57;:::i;:::-;;;;;;;;11223:1138;;;;;:::o;4674:46::-;;;;;;;;;;;;;;;:::o;4840:24::-;;;;:::o;9613:393::-;1135:7;;;;;;;1134:8;1126:37;;;;;;;;;;;;:::i;:::-;9740:20:::1;::::0;::::1;;::::0;;;:13:::1;:20;::::0;;;;;::::1;;9732:50;;;;;;;;;;;;:::i;:::-;9793:14;9810:40;9831:5;9838:11;9810:20;:40::i;:::-;9912:9;::::0;9793:57;;-1:-1:-1;9861:74:0::1;::::0;9893:5;;9900:10:::1;::::0;9912:9:::1;;9923:11:::0;9861:31:::1;:74::i;:::-;9946:52;9954:5;9961:11;9974:9;9985:12;9946:7;:52::i;423:155::-:0;353:5;;;;339:10;:19;331:64;;;;;;;;;;;;:::i;:::-;526:8:::1;::::0;::::1;509:25:::0;;::::1;526:8:::0;::::1;509:25;;501:34;;;::::0;::::1;;546:8;:24:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;423:155::o;4469:35::-;;;;;;:::o;4282:33::-;;;:::o;13210:186::-;353:5;;;;339:10;:19;331:64;;;;;;;;;;;;:::i;:::-;13299:30:::1;::::0;::::1;13291:58;;;;;;;;;;;;:::i;:::-;13360:9;:28:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;13210:186::o;15542:361::-;15691:12;15705:17;15726:5;:10;;15760;15772:2;15776:5;15737:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15726:57;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15690:93;;;;15802:7;:57;;;;-1:-1:-1;15814:11:0;;:16;;:44;;;15845:4;15834:24;;;;;;;;;;;;:::i;:::-;15794:101;;;;;;;;;;;;:::i;:::-;15542:361;;;;;:::o;6915:270::-;7022:9;;;:43;;;;;:9;;;;;:18;;:43;;7041:9;;7052:12;;7022:43;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7081:59;7096:5;7103:11;7116:9;7127:12;7081:59;;;;;;;;;:::i;:::-;;;;;;;;7151:26;7167:9;7151:15;:26::i;16321:195::-;16429:12;;;16391;16429;;;;;;;;;16408:7;;;;16422:5;;16408:34;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16390:52;;;16461:7;16453:55;;;;;;;;;;;;:::i;:::-;16321:195;;;:::o;15911:402::-;16090:12;16104:17;16125:5;:10;;16159;16171:4;16177:2;16181:5;16136:51;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16125:63;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16089:99;;;;16207:7;:57;;;;-1:-1:-1;16219:11:0;;:16;;:44;;;16250:4;16239:24;;;;;;;;;;;;:::i;:::-;16199:106;;;;;;;;;;;;:::i;:::-;15911:402;;;;;;:::o;1569:181::-;1627:7;;1659:5;1663:1;1659;:5;:::i;:::-;1647:17;;1688:1;1683;:6;;1675:46;;;;;;;;;;;;:::i;:::-;1741:1;1569:181;-1:-1:-1;;;1569:181:0:o;2076:250::-;2134:7;2158:6;2154:47;;-1:-1:-1;2188:1:0;2181:8;;2154:47;2213:9;2225:5;2229:1;2225;:5;:::i;:::-;2213:17;-1:-1:-1;2258:1:0;2249:5;2253:1;2213:17;2249:5;:::i;:::-;:10;2241:56;;;;;;;;;;;;:::i;7193:1734::-;7253:22;7278:24;:22;:24::i;:::-;7253:49;-1:-1:-1;7317:28:0;;;;7313:1607;;7412:9;;7423:32;;7363:25;;7391:65;;7412:9;;;;;7391:20;:65::i;:::-;7363:93;;7487:20;7475:9;:32;7471:1258;;;7549:29;;;;;7528:18;;7549:13;:3;:13;;;;:29;;7563:14;;7549:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7528:50;;7602:6;7597:232;7614:12;:19;7610:23;;7597:232;;;7683:20;7667:13;:36;7663:47;;;7705:5;;7663:47;7749:60;7767:12;7780:1;7767:15;;;;;;;;;;;;;;;;;;;;;;;;;;:41;;;;;:15;;;;;:25;;:41;;7793:14;;7767:41;;;:::i;7749:60::-;7733:76;-1:-1:-1;7635:3:0;;;;:::i;:::-;;;;7597:232;;;;7885:20;7869:13;:36;7865:657;;;7981:10;7930:14;7961:31;;;:19;:31;;;;;;7947:46;;:9;;:13;:46::i;:::-;7930:63;;8016:23;8072:3;8042:27;8056:12;;8042:9;:13;;:27;;;;:::i;:::-;:33;;;;:::i;:::-;8098:47;;;;;8016:59;;-1:-1:-1;8098:8:0;:3;:8;;;;:47;;8107:14;;8016:59;;8143:1;;8098:47;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8188:10:0;8202:1;8168:31;;;:19;:31;;;;;;:35;;;;8231:67;;;-1:-1:-1;8231:67:0;;-1:-1:-1;8251:14:0;;8188:10;8279:18;;8231:67;:::i;:::-;;;;;;;;7865:657;;;;;8401:10;8381:31;;;;:19;:31;;;;;;:46;;8417:9;8381:35;:46::i;:::-;8367:10;8347:31;;;;:19;:31;;;;;;;:80;;;;8455:47;;;;;;8492:9;;8455:47;:::i;:::-;;;;;;;;7865:657;7471:1258;;;;8616:10;8596:31;;;;:19;:31;;;;;;:46;;8632:9;8596:35;:46::i;:::-;8582:10;8562:31;;;;:19;:31;;;;;;;:80;;;;8666:47;;;;;;8703:9;;8666:47;:::i;:::-;;;;;;;;7471:1258;7313:1607;;;;8815:10;8795:31;;;;:19;:31;;;;;;:46;;8831:9;8795:35;:46::i;:::-;8781:10;8761:31;;;;:19;:31;;;;;;;:80;;;;8861:47;;;;;;8898:9;;8861:47;:::i;8935:267::-;9023:15;;8991:7;;9015:38;9023:15;9011:183;;-1:-1:-1;9085:1:0;9070:17;;9011:183;9127:15;;:55;;;;;:15;;;;;:43;;:55;;9171:10;;9127:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9120:62;;;;14:259:1;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:33;237:5;210:33;:::i;278:263::-;;401:2;389:9;380:7;376:23;372:32;369:2;;;422:6;414;407:22;369:2;459:9;453:16;478:33;505:5;478:33;:::i;546:335::-;;;683:2;671:9;662:7;658:23;654:32;651:2;;;704:6;696;689:22;651:2;748:9;735:23;767:33;794:5;767:33;:::i;:::-;819:5;871:2;856:18;;;;843:32;;-1:-1:-1;;;641:240:1:o;886:470::-;;;;1032:2;1020:9;1011:7;1007:23;1003:32;1000:2;;;1053:6;1045;1038:22;1000:2;1097:9;1084:23;1116:33;1143:5;1116:33;:::i;:::-;1168:5;-1:-1:-1;1225:2:1;1210:18;;1197:32;1238:35;1197:32;1238:35;:::i;:::-;990:366;;1292:7;;-1:-1:-1;;;1346:2:1;1331:18;;;;1318:32;;990:366::o;1361:396::-;;;1487:2;1475:9;1466:7;1462:23;1458:32;1455:2;;;1508:6;1500;1493:22;1455:2;1552:9;1539:23;1571:33;1598:5;1571:33;:::i;:::-;1623:5;-1:-1:-1;1680:2:1;1665:18;;1652:32;1693;1652;1693;:::i;:::-;1744:7;1734:17;;;1445:312;;;;;:::o;1762:327::-;;;1891:2;1879:9;1870:7;1866:23;1862:32;1859:2;;;1912:6;1904;1897:22;2094:470;;;;2240:2;2228:9;2219:7;2215:23;2211:32;2208:2;;;2261:6;2253;2246:22;2208:2;2305:9;2292:23;2324:33;2351:5;2324:33;:::i;:::-;2376:5;-1:-1:-1;2428:2:1;2413:18;;2400:32;;-1:-1:-1;2484:2:1;2469:18;;2456:32;2497:35;2456:32;2497:35;:::i;:::-;2551:7;2541:17;;;2198:366;;;;;:::o;2569:1030::-;;2684:2;2727;2715:9;2706:7;2702:23;2698:32;2695:2;;;2748:6;2740;2733:22;2695:2;2793:9;2780:23;2826:18;2818:6;2815:30;2812:2;;;2863:6;2855;2848:22;2812:2;2891:22;;2944:4;2936:13;;2932:27;-1:-1:-1;2922:2:1;;2978:6;2970;2963:22;2922:2;3019;3006:16;3042:65;3057:49;3103:2;3057:49;:::i;:::-;3042:65;:::i;:::-;3141:15;;;3172:12;;;;3204:11;;;3242;;;3234:20;;3230:29;;3227:42;-1:-1:-1;3224:2:1;;;3287:6;3279;3272:22;3224:2;3314:6;3305:15;;3329:240;3343:2;3340:1;3337:9;3329:240;;;3414:3;3401:17;3431:33;3458:5;3431:33;:::i;:::-;3477:18;;3361:1;3354:9;;;;;3515:12;;;;3547;;3329:240;;;-1:-1:-1;3588:5:1;2664:935;-1:-1:-1;;;;;;;2664:935:1:o;3604:943::-;;3730:2;3773;3761:9;3752:7;3748:23;3744:32;3741:2;;;3794:6;3786;3779:22;3741:2;3832:9;3826:16;3865:18;3857:6;3854:30;3851:2;;;3902:6;3894;3887:22;3851:2;3930:22;;3983:4;3975:13;;3971:27;-1:-1:-1;3961:2:1;;4017:6;4009;4002:22;3961:2;4051;4045:9;4074:65;4089:49;4135:2;4089:49;:::i;4074:65::-;4173:15;;;4204:12;;;;4236:11;;;4274;;;4266:20;;4262:29;;4259:42;-1:-1:-1;4256:2:1;;;4319:6;4311;4304:22;4256:2;4346:6;4337:15;;4361:156;4375:2;4372:1;4369:9;4361:156;;;4432:10;;4420:23;;4393:1;4386:9;;;;;4463:12;;;;4495;;4361:156;;4552:257;;4672:2;4660:9;4651:7;4647:23;4643:32;4640:2;;;4693:6;4685;4678:22;4640:2;4730:9;4724:16;4749:30;4773:5;4749:30;:::i;4814:190::-;;4926:2;4914:9;4905:7;4901:23;4897:32;4894:2;;;4947:6;4939;4932:22;4894:2;-1:-1:-1;4975:23:1;;4884:120;-1:-1:-1;4884:120:1:o;5009:194::-;;5132:2;5120:9;5111:7;5107:23;5103:32;5100:2;;;5153:6;5145;5138:22;5100:2;-1:-1:-1;5181:16:1;;5090:113;-1:-1:-1;5090:113:1:o;5208:327::-;;;5337:2;5325:9;5316:7;5312:23;5308:32;5305:2;;;5358:6;5350;5343:22;5305:2;5399:9;5386:23;5376:33;;5459:2;5448:9;5444:18;5431:32;5472:33;5499:5;5472:33;:::i;5540:430::-;;5707:6;5701:13;5732:3;5744:129;5758:6;5755:1;5752:13;5744:129;;;5856:4;5840:14;;;5836:25;;5830:32;5817:11;;;5810:53;5773:12;5744:129;;;5891:6;5888:1;5885:13;5882:2;;;5926:3;5917:6;5912:3;5908:16;5901:29;5882:2;-1:-1:-1;5948:16:1;;;;;5677:293;-1:-1:-1;;5677:293:1:o;5975:226::-;6151:42;6139:55;;;;6121:74;;6109:2;6094:18;;6076:125::o;6206:305::-;6418:42;6406:55;;;;6388:74;;6493:2;6478:18;;6471:34;6376:2;6361:18;;6343:168::o;6516:398::-;6728:42;6797:15;;;6779:34;;6849:15;;;;6844:2;6829:18;;6822:43;6896:2;6881:18;;6874:34;;;;6706:2;6691:18;;6673:241::o;7918:376::-;8158:42;8146:55;;;;8128:74;;8233:2;8218:18;;8211:34;;;;8276:2;8261:18;;8254:34;8116:2;8101:18;;8083:211::o;8299:470::-;8540:42;8609:15;;;8591:34;;8656:2;8641:18;;8634:34;;;;8699:2;8684:18;;8677:34;;;;8747:15;;;8742:2;8727:18;;8720:43;8517:3;8502:19;;8484:285::o;8774:187::-;8939:14;;8932:22;8914:41;;8902:2;8887:18;;8869:92::o;9979:355::-;10181:2;10163:21;;;10220:2;10200:18;;;10193:30;10259:33;10254:2;10239:18;;10232:61;10325:2;10310:18;;10153:181::o;10339:344::-;10541:2;10523:21;;;10580:2;10560:18;;;10553:30;10619:22;10614:2;10599:18;;10592:50;10674:2;10659:18;;10513:170::o;10688:356::-;10890:2;10872:21;;;10909:18;;;10902:30;10968:34;10963:2;10948:18;;10941:62;11035:2;11020:18;;10862:182::o;11049:345::-;11251:2;11233:21;;;11290:2;11270:18;;;11263:30;11329:23;11324:2;11309:18;;11302:51;11385:2;11370:18;;11223:171::o;11399:341::-;11601:2;11583:21;;;11640:2;11620:18;;;11613:30;11679:19;11674:2;11659:18;;11652:47;11731:2;11716:18;;11573:167::o;11745:351::-;11947:2;11929:21;;;11986:2;11966:18;;;11959:30;12025:29;12020:2;12005:18;;11998:57;12087:2;12072:18;;11919:177::o;12101:340::-;12303:2;12285:21;;;12342:2;12322:18;;;12315:30;12381:18;12376:2;12361:18;;12354:46;12432:2;12417:18;;12275:166::o;12446:407::-;12648:2;12630:21;;;12687:2;12667:18;;;12660:30;12726:34;12721:2;12706:18;;12699:62;12797:13;12792:2;12777:18;;12770:41;12843:3;12828:19;;12620:233::o;12858:340::-;13060:2;13042:21;;;13099:2;13079:18;;;13072:30;13138:18;13133:2;13118:18;;13111:46;13189:2;13174:18;;13032:166::o;13203:352::-;13405:2;13387:21;;;13444:2;13424:18;;;13417:30;13483;13478:2;13463:18;;13456:58;13546:2;13531:18;;13377:178::o;13560:397::-;13762:2;13744:21;;;13801:2;13781:18;;;13774:30;13840:34;13835:2;13820:18;;13813:62;13911:3;13906:2;13891:18;;13884:31;13947:3;13932:19;;13734:223::o;13962:338::-;14164:2;14146:21;;;14203:2;14183:18;;;14176:30;14242:16;14237:2;14222:18;;14215:44;14291:2;14276:18;;14136:164::o;14305:335::-;14507:2;14489:21;;;14546:2;14526:18;;;14519:30;14585:13;14580:2;14565:18;;14558:41;14631:2;14616:18;;14479:161::o;14645:348::-;14847:2;14829:21;;;14886:2;14866:18;;;14859:30;14925:26;14920:2;14905:18;;14898:54;14984:2;14969:18;;14819:174::o;14998:344::-;15200:2;15182:21;;;15239:2;15219:18;;;15212:30;15278:22;15273:2;15258:18;;15251:50;15333:2;15318:18;;15172:170::o;15347:399::-;15549:2;15531:21;;;15588:2;15568:18;;;15561:30;15627:34;15622:2;15607:18;;15600:62;15698:5;15693:2;15678:18;;15671:33;15736:3;15721:19;;15521:225::o;15751:347::-;15953:2;15935:21;;;15992:2;15972:18;;;15965:30;16031:25;16026:2;16011:18;;16004:53;16089:2;16074:18;;15925:173::o;16103:339::-;16305:2;16287:21;;;16344:2;16324:18;;;16317:30;16383:17;16378:2;16363:18;;16356:45;16433:2;16418:18;;16277:165::o;16447:339::-;16649:2;16631:21;;;16688:2;16668:18;;;16661:30;16727:17;16722:2;16707:18;;16700:45;16777:2;16762:18;;16621:165::o;16791:400::-;16993:2;16975:21;;;17032:2;17012:18;;;17005:30;17071:34;17066:2;17051:18;;17044:62;17142:6;17137:2;17122:18;;17115:34;17181:3;17166:19;;16965:226::o;17196:177::-;17342:25;;;17330:2;17315:18;;17297:76::o;17378:297::-;17552:25;;;17625:42;17613:55;17608:2;17593:18;;17586:83;17540:2;17525:18;;17507:168::o;17680:755::-;;17898:2;17887:9;17883:18;17928:6;17917:9;17910:25;17954:2;17992;17987;17976:9;17972:18;17965:30;18015:6;18050;18044:13;18081:6;18073;18066:22;18119:2;18108:9;18104:18;18097:25;;18157:2;18149:6;18145:15;18131:29;;18178:4;18191:218;18205:6;18202:1;18199:13;18191:218;;;18270:13;;18285:42;18266:62;18254:75;;18384:15;;;;18349:12;;;;18227:1;18220:9;18191:218;;;-1:-1:-1;18426:3:1;;17859:576;-1:-1:-1;;;;;;;17859:576:1:o;18440:251::-;18510:2;18504:9;18540:17;;;18587:18;18572:34;;18608:22;;;18569:62;18566:2;;;18634:18;;:::i;:::-;18670:2;18663:22;18484:207;;-1:-1:-1;18484:207:1:o;18696:192::-;;18795:18;18787:6;18784:30;18781:2;;;18817:18;;:::i;:::-;-1:-1:-1;18877:4:1;18858:17;;;18854:28;;18771:117::o;18893:128::-;;18964:1;18960:6;18957:1;18954:13;18951:2;;;18970:18;;:::i;:::-;-1:-1:-1;19006:9:1;;18941:80::o;19026:274::-;;19092:1;19082:2;;19127:77;19124:1;19117:88;19228:4;19225:1;19218:15;19256:4;19253:1;19246:15;19082:2;-1:-1:-1;19285:9:1;;19072:228::o;19305:::-;;19471:1;19403:66;19399:74;19396:1;19393:81;19388:1;19381:9;19374:17;19370:105;19367:2;;;19478:18;;:::i;:::-;-1:-1:-1;19518:9:1;;19357:176::o;19538:125::-;;19606:1;19603;19600:8;19597:2;;;19611:18;;:::i;:::-;-1:-1:-1;19648:9:1;;19587:76::o;19668:195::-;;19738:66;19731:5;19728:77;19725:2;;;19808:18;;:::i;:::-;-1:-1:-1;19855:1:1;19844:13;;19715:148::o;19868:184::-;19920:77;19917:1;19910:88;20017:4;20014:1;20007:15;20041:4;20038:1;20031:15;20057:184;20109:77;20106:1;20099:88;20206:4;20203:1;20196:15;20230:4;20227:1;20220:15;20246:156;20334:42;20327:5;20323:54;20316:5;20313:65;20303:2;;20392:1;20389;20382:12;20303:2;20293:109;:::o;20407:120::-;20495:5;20488:13;20481:21;20474:5;20471:32;20461:2;;20517:1;20514;20507:12

Swarm Source

ipfs://d9724946e64518d2b369df77ee23935376aeb78bf58b0d05635309e5f1808536

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.