Contract 0x395f93350d5102b6139abfc84a7d6ee70488797c

 
Txn Hash Method
Block
From
To
Value
0xe4a6ea980aef709a521108a938bd55c64ba41bbdd69b38f66561ffd3b65ba970Harvest118646412021-02-16 0:46:04126 days 19 hrs agoyearn: Deployer IN  0x395f93350d5102b6139abfc84a7d6ee70488797c0 Ether0.348243926251
0xa49cb7bdd5eb6e305c70fc492841bcaf67322dbd1d1b6e080f19dd8780fa6416Harvest118440012021-02-12 20:25:50130 days 5 mins agoyearn: Deployer IN  0x395f93350d5102b6139abfc84a7d6ee70488797c0 Ether0.297160186214
0xc3d44301e5ef3a7bda0b22e9b5e0b1bff104df45a003e841d3ede758c8cb3340Harvest118243772021-02-09 20:08:21133 days 23 mins agoyearn: Deployer IN  0x395f93350d5102b6139abfc84a7d6ee70488797c0 Ether0.326229231201
0x9b5c654f9c6ce8e39a41e2d62438b35462d704c373a190245eb2870e173dfd4cHarvest118078852021-02-07 7:13:32135 days 13 hrs agoyearn: Deployer IN  0x395f93350d5102b6139abfc84a7d6ee70488797c0 Ether0.2013822124
0x06fee61abf825cca5c253c46a69026e875c277f5cef7e54da6eb65835188e074Harvest117801392021-02-03 0:49:36139 days 19 hrs agoyearn: Deployer IN  0x395f93350d5102b6139abfc84a7d6ee70488797c0 Ether0.226143429163
0xc65578fa4178eb2d099070f9ed3bd4847c2c437df995f05272ec588a145d096fHarvest117547562021-01-30 2:54:53143 days 17 hrs agoyearn: Deployer IN  0x395f93350d5102b6139abfc84a7d6ee70488797c0 Ether0.194274878119
0x00536bedd4b3f57e291fd08b3e9a4994e8e0f21f55a20465716067f1d4ff350dHarvest117206272021-01-24 20:59:24148 days 23 hrs agoyearn: Deployer IN  0x395f93350d5102b6139abfc84a7d6ee70488797c0 Ether0.1848868112
0x20e843847bc19e10ac4c4d3a3acece7bbd3eb20d7a2ddc48d4fa3d821592e191Harvest117004872021-01-21 18:39:32152 days 1 hr agoyearn: Deployer IN  0x395f93350d5102b6139abfc84a7d6ee70488797c0 Ether0.175479144107
0x42d5e0966635d6ea5497f34725d990b872371d5687a0d935bf0cc5ba83fe00b3Harvest116809342021-01-18 18:43:02155 days 1 hr agoyearn: Deployer IN  0x395f93350d5102b6139abfc84a7d6ee70488797c0 Ether0.08580174661
0x4d9c5874520bc8d24f9acc4e372c4c790480405bbd7a5b9feedd7937351100a9Harvest116671492021-01-16 15:53:50157 days 4 hrs agoyearn: Deployer IN  0x395f93350d5102b6139abfc84a7d6ee70488797c0 Ether0.187937278134
0x0c6928eeb31bb83baaf1a99fce8b39f795dcc37db46751a2b91ee87a40c31412Harvest116475162021-01-13 15:40:02160 days 4 hrs agoyearn: Deployer IN  0x395f93350d5102b6139abfc84a7d6ee70488797c0 Ether0.12105275274
0xa5a9f2b5a59a9cb822fe956eeb0b400545de70869d239a05e293d27745fdffd5Harvest116341602021-01-11 14:28:05162 days 6 hrs agoyearn: Deployer IN  0x395f93350d5102b6139abfc84a7d6ee70488797c0 Ether0.61082166438
0x7d7eb5dd9f4daf8131f3c3b1c99fd5806689191e4e6e45af2197f2cf02b097e2Harvest116148592021-01-08 15:19:12165 days 5 hrs agoyearn: Deployer IN  0x395f93350d5102b6139abfc84a7d6ee70488797c0 Ether0.295529765211
0x161f32a7ba8465a404067874dea244ae1e91dbc111834e13370ec3a27b58dcc5Harvest115956322021-01-05 16:36:28168 days 3 hrs agoyearn: Deployer IN  0x395f93350d5102b6139abfc84a7d6ee70488797c0 Ether0.3218544200
0x96dc67c08df2f123df7467c026fefe932f04d815de718cdac25565d97d6f110dHarvest115397712020-12-28 2:52:38176 days 17 hrs agoyearn: Deployer IN  0x395f93350d5102b6139abfc84a7d6ee70488797c0 Ether0.1026294974
0x5a9e0ebcbff2ba67848a5d6ed750a2ea370fdc982254ebba0bbe2245453ba09dHarvest115204592020-12-25 4:01:20179 days 16 hrs agoyearn: Deployer IN  0x395f93350d5102b6139abfc84a7d6ee70488797c0 Ether0.318260025225
0xda7651e8f5226ce96d440454a7862e05507501e7fe1f9c870864dfea0a12347fHarvest114951252020-12-21 6:43:00183 days 13 hrs agoyearn: Deployer IN  0x395f93350d5102b6139abfc84a7d6ee70488797c0 Ether0.0742015953
0x594bce436c6dc949a109403e87cbb1a08bbaface335eca311d43bcdcf2e71662Harvest114683632020-12-17 3:56:14187 days 16 hrs agoyearn: Deployer IN  0x395f93350d5102b6139abfc84a7d6ee70488797c0 Ether0.0047224633573.05
0x6263b8cb9a29ad71da57614067fdd33bbcb70c42ff1591543f476a309f5e4d87Harvest114362532020-12-12 5:45:25192 days 14 hrs agoyearn: Deployer IN  0x395f93350d5102b6139abfc84a7d6ee70488797c0 Ether0.06610935447
0x005d409f543c34a196167573473a9ced06bfc546c33161b212308ddcfc998a7fHarvest114034172020-12-07 4:14:43197 days 16 hrs agoyearn: Deployer IN  0x395f93350d5102b6139abfc84a7d6ee70488797c0 Ether0.03331233624
0xe21322abba671acaa9171e480617e5a09a53dd99857146aa4b0bb292cae5c43cHarvest113840762020-12-04 4:52:47200 days 15 hrs agoyearn: Deployer IN  0x395f93350d5102b6139abfc84a7d6ee70488797c0 Ether0.0910019565
0xfc977901c3620c63dff51906c3a97a21cb3fd96baeac458a22982cb2f8331b0cHarvest113655242020-12-01 8:26:44203 days 12 hrs agoyearn: Deployer IN  0x395f93350d5102b6139abfc84a7d6ee70488797c0 Ether0.14291803101
0x27a91cd273fbb2dfc56854faa4b324ce84a224f8c4bb041147f21fea6f6252d5Harvest113461962020-11-28 9:28:16206 days 11 hrs agoyearn: Deployer IN  0x395f93350d5102b6139abfc84a7d6ee70488797c0 Ether0.0240555117
0x784f2a3675d7e352a57a7e047f726e4fdfcacadaa3677c0f072b7618d857990dHarvest113266612020-11-25 9:09:59209 days 11 hrs agoyearn: Deployer IN  0x395f93350d5102b6139abfc84a7d6ee70488797c0 Ether0.09205207256
0xdc8600c65c9b44316da661bb29e054e463adf814ad0e957e2f0d4e7fb484bc90Harvest112999262020-11-21 6:48:15213 days 13 hrs agoyearn: Deployer IN  0x395f93350d5102b6139abfc84a7d6ee70488797c0 Ether0.0537711438
[ Download CSV Export 
View more zero value Internal Transactions in Advanced View mode
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
StrategyYFIGovernance

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-09-24
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.5.17;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function decimals() external view returns (uint);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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);
        uint256 c = a - b;

        return c;
    }
    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) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;

        return c;
    }
    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;
    }
}

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != 0x0 && codehash != accountHash);
    }
    function toPayable(address account) internal pure returns (address payable) {
        return address(uint160(account));
    }
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-call-value
        (bool success, ) = recipient.call.value(amount)("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

library SafeERC20 {
    using SafeMath for uint256;
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint256 value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function safeApprove(IERC20 token, address spender, uint256 value) internal {
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }
    function callOptionalReturn(IERC20 token, bytes memory data) private {
        require(address(token).isContract(), "SafeERC20: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = address(token).call(data);
        require(success, "SafeERC20: low-level call failed");

        if (returndata.length > 0) { // Return data is optional
            // solhint-disable-next-line max-line-length
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

interface Controller {
    function vaults(address) external view returns (address);
    function rewards() external view returns (address);
}

/*

 A strategy must implement the following calls;
 
 - deposit()
 - withdraw(address) must exclude any tokens used in the yield - Controller role - withdraw should return to Controller
 - withdraw(uint) - Controller | Vault role - withdraw should always return to vault
 - withdrawAll() - Controller | Vault role - withdraw should always return to vault
 - balanceOf()
 
 Where possible, strategies must remain as immutable as possible, instead of updating variables, we update the contract by linking it in the controller
 
*/

interface Governance {
    function withdraw(uint) external;
    function getReward() external;
    function stake(uint) external;
    function balanceOf(address) external view returns (uint);
    function exit() external;
    function voteFor(uint) external;
    function voteAgainst(uint) external;
}

interface yERC20 {
  function deposit(uint256 _amount) external;
  function withdraw(uint256 _amount) external;
}


interface Uni {
    function swapExactTokensForTokens(uint, uint, address[] calldata, address, uint) external;
}


interface ICurveFi {
  function get_virtual_price() external view returns (uint);
  function add_liquidity(
    uint256[4] calldata amounts,
    uint256 min_mint_amount
  ) external;
  function remove_liquidity_imbalance(
    uint256[4] calldata amounts,
    uint256 max_burn_amount
  ) external;
  function remove_liquidity(
    uint256 _amount,
    uint256[4] calldata amounts
  ) external;
  function exchange(
    int128 from, int128 to, uint256 _from_amount, uint256 _min_to_amount
  ) external;
}

interface Zap {
    function remove_liquidity_one_coin(uint, int128, uint) external;
}

contract StrategyYFIGovernance {
    using SafeERC20 for IERC20;
    using Address for address;
    using SafeMath for uint256;
    
    address constant public want = address(0x0bc529c00C6401aEF6D220BE8C6Ea1667F6Ad93e);
    address constant public gov = address(0xBa37B002AbaFDd8E89a1995dA52740bbC013D992);
    address constant public curve = address(0x45F783CCE6B7FF23B2ab2D70e416cdb7D6055f51);
    address constant public zap = address(0xbBC81d23Ea2c3ec7e56D39296F0cbB648873a5d3);
    
    address constant public reward = address(0xdF5e0e81Dff6FAF3A7e52BA697820c5e32D806A8);
    address constant public usdt = address(0xdAC17F958D2ee523a2206206994597C13D831ec7);
    
    address constant public uni = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address constant public weth = address(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2); // used for crv <> weth <> dai route
    
    uint public fee = 500;
    uint constant public max = 10000;
    
    address public governance;
    address public controller;
    address public strategist;
    
    constructor(address _controller) public {
        governance = msg.sender;
        strategist = msg.sender;
        controller = _controller;
    }
    
    function setFee(uint _fee) external {
        require(msg.sender == governance, "!governance");
        fee = _fee;
    }
    
    function setStrategist(address _strategist) external {
        require(msg.sender == governance, "!governance");
        strategist = _strategist;
    }
    
    function deposit() public {
        IERC20(want).safeApprove(gov, 0);
        IERC20(want).safeApprove(gov, IERC20(want).balanceOf(address(this)));
        Governance(gov).stake(IERC20(want).balanceOf(address(this)));
    }
    
    // Controller only function for creating additional rewards from dust
    function withdraw(IERC20 _asset) external returns (uint balance) {
        require(msg.sender == controller, "!controller");
        require(want != address(_asset), "want");
        balance = _asset.balanceOf(address(this));
        _asset.safeTransfer(controller, balance);
    }
    
    // Withdraw partial funds, normally used with a vault withdrawal
    function withdraw(uint _amount) external {
        require(msg.sender == controller, "!controller");
        uint _balance = IERC20(want).balanceOf(address(this));
        if (_balance < _amount) {
            _amount = _withdrawSome(_amount.sub(_balance));
            _amount = _amount.add(_balance);
        }
        
        uint _fee = _amount.mul(fee).div(max);
        IERC20(want).safeTransfer(Controller(controller).rewards(), _fee);
        address _vault = Controller(controller).vaults(address(want));
        require(_vault != address(0), "!vault"); // additional protection so we don't burn the funds
        
        IERC20(want).safeTransfer(_vault, _amount.sub(_fee));
    }
    
    // Withdraw all funds, normally used when migrating strategies
    function withdrawAll() external returns (uint balance) {
        require(msg.sender == controller, "!controller");
        _withdrawAll();
        balance = IERC20(want).balanceOf(address(this));
        
        address _vault = Controller(controller).vaults(address(want));
        require(_vault != address(0), "!vault"); // additional protection so we don't burn the funds
        IERC20(want).safeTransfer(_vault, balance);
    }
    
    function _withdrawAll() internal {
        Governance(gov).exit();
    }
    
    function harvest() public {
        require(msg.sender == strategist || msg.sender == governance || msg.sender == tx.origin, "!authorized");
        Governance(gov).getReward();
        uint _balance = IERC20(reward).balanceOf(address(this));
        if (_balance > 0) {
            IERC20(reward).safeApprove(zap, 0);
            IERC20(reward).safeApprove(zap, _balance);
            Zap(zap).remove_liquidity_one_coin(_balance, 2, 0);
        }
        _balance = IERC20(usdt).balanceOf(address(this));
        if (_balance > 0) {
            IERC20(usdt).safeApprove(uni, 0);
            IERC20(usdt).safeApprove(uni, _balance);
            
            address[] memory path = new address[](3);
            path[0] = usdt;
            path[1] = weth;
            path[2] = want;
            
            Uni(uni).swapExactTokensForTokens(_balance, uint(0), path, address(this), now.add(1800));
        }
        if (IERC20(want).balanceOf(address(this)) > 0) {
            deposit();
        }
        
    }
    
    function _withdrawSome(uint256 _amount) internal returns (uint) {
        Governance(gov).withdraw(_amount);
        return _amount;
    }
    
    function balanceOfWant() public view returns (uint) {
        return IERC20(want).balanceOf(address(this));
    }
    
    function balanceOfYGov() public view returns (uint) {
        return Governance(gov).balanceOf(address(this));
    }
    
    function balanceOf() public view returns (uint) {
        return balanceOfWant()
               .add(balanceOfYGov());
    }
    
    function voteFor(uint _proposal) external {
        require(msg.sender == governance, "!governance");
        Governance(gov).voteFor(_proposal);
    }
    
    function voteAgainst(uint _proposal) external {
        require(msg.sender == governance, "!governance");
        Governance(gov).voteAgainst(_proposal);
    }
    
    function setGovernance(address _governance) external {
        require(msg.sender == governance, "!governance");
        governance = _governance;
    }
    
    function setController(address _controller) external {
        require(msg.sender == governance, "!governance");
        controller = _controller;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_controller","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"constant":true,"inputs":[],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"balanceOfWant","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"balanceOfYGov","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"controller","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"curve","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"deposit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"gov","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"harvest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"max","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reward","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_controller","type":"address"}],"name":"setController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_governance","type":"address"}],"name":"setGovernance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_strategist","type":"address"}],"name":"setStrategist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"strategist","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"uni","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"usdt","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_proposal","type":"uint256"}],"name":"voteAgainst","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_proposal","type":"uint256"}],"name":"voteFor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"want","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"weth","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_asset","type":"address"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawAll","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"zap","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]

60806040526101f460005534801561001657600080fd5b5060405161329d38038061329d8339818101604052602081101561003957600080fd5b810190808051906020019092919050505033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506131808061011d6000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80636ac5db19116100f9578063ab033ea911610097578063d0e30db011610071578063d0e30db0146106c4578063ddca3f43146106ce578063edc9af95146106ec578063f77c479114610736576101a9565b8063ab033ea91461061e578063c1a3d44c14610662578063c7b9d53014610680576101a9565b8063750e443a116100d3578063750e443a14610560578063853828b61461058e57806386a50535146105ac57806392eefe9b146105da576101a9565b80636ac5db19146104da5780637165485d146104f8578063722713f714610542576101a9565b80632e1a7d4d116101665780634641257d116101405780634641257d1461040057806351cff8d91461040a5780635aa6e6751461046257806369fe0e2d146104ac576101a9565b80632e1a7d4d1461033e5780632f48ab7d1461036c5780633fc8cef3146103b6576101a9565b8063077c14b9146101ae57806312d43a51146101cc5780631f1fcd51146102165780631fe4a68614610260578063228cb733146102aa578063262d6152146102f4575b600080fd5b6101b6610780565b6040518082815260200191505060405180910390f35b6101d4610853565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61021e61086b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610268610883565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102b26108a9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102fc6108c1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61036a6004803603602081101561035457600080fd5b81019080803590602001909291905050506108d9565b005b610374610da1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103be610db9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610408610dd1565b005b61044c6004803603602081101561042057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611675565b6040518082815260200191505060405180910390f35b61046a6118fc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104d8600480360360208110156104c257600080fd5b8101908080359060200190929190505050611922565b005b6104e26119ef565b6040518082815260200191505060405180910390f35b6105006119f5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61054a611a0d565b6040518082815260200191505060405180910390f35b61058c6004803603602081101561057657600080fd5b8101908080359060200190929190505050611a35565b005b610596611b7a565b6040518082815260200191505060405180910390f35b6105d8600480360360208110156105c257600080fd5b8101908080359060200190929190505050611eed565b005b61061c600480360360208110156105f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612032565b005b6106606004803603602081101561063457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612139565b005b61066a612240565b6040518082815260200191505060405180910390f35b6106c26004803603602081101561069657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612313565b005b6106cc61241a565b005b6106d66126d8565b6040518082815260200191505060405180910390f35b6106f46126de565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61073e6126f6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600073ba37b002abafdd8e89a1995da52740bbc013d99273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561081357600080fd5b505afa158015610827573d6000803e3d6000fd5b505050506040513d602081101561083d57600080fd5b8101908080519060200190929190505050905090565b73ba37b002abafdd8e89a1995da52740bbc013d99281565b730bc529c00c6401aef6d220be8c6ea1667f6ad93e81565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73df5e0e81dff6faf3a7e52ba697820c5e32d806a881565b73bbc81d23ea2c3ec7e56d39296f0cbb648873a5d381565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461099c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21636f6e74726f6c6c657200000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b8101908080519060200190929190505050905081811015610aa757610a8f610a8a828461271c90919063ffffffff16565b612766565b9150610aa481836127ef90919063ffffffff16565b91505b6000610ad2612710610ac46000548661287790919063ffffffff16565b6128fd90919063ffffffff16565b9050610bb5600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639ec5a8946040518163ffffffff1660e01b815260040160206040518083038186803b158015610b3f57600080fd5b505afa158015610b53573d6000803e3d6000fd5b505050506040513d6020811015610b6957600080fd5b810190808051906020019092919050505082730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff166129479092919063ffffffff16565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a622ee7c730bc529c00c6401aef6d220be8c6ea1667f6ad93e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610c6a57600080fd5b505afa158015610c7e573d6000803e3d6000fd5b505050506040513d6020811015610c9457600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d4a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f217661756c74000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b610d9b81610d61848761271c90919063ffffffff16565b730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff166129479092919063ffffffff16565b50505050565b73dac17f958d2ee523a2206206994597c13d831ec781565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610e7a5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80610eb057503273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610f22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21617574686f72697a656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b73ba37b002abafdd8e89a1995da52740bbc013d99273ffffffffffffffffffffffffffffffffffffffff16633d18b9126040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610f7e57600080fd5b505af1158015610f92573d6000803e3d6000fd5b50505050600073df5e0e81dff6faf3a7e52ba697820c5e32d806a873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561102957600080fd5b505afa15801561103d573d6000803e3d6000fd5b505050506040513d602081101561105357600080fd5b8101908080519060200190929190505050905060008111156111ab576110c373bbc81d23ea2c3ec7e56d39296f0cbb648873a5d3600073df5e0e81dff6faf3a7e52ba697820c5e32d806a873ffffffffffffffffffffffffffffffffffffffff16612a189092919063ffffffff16565b61111673bbc81d23ea2c3ec7e56d39296f0cbb648873a5d38273df5e0e81dff6faf3a7e52ba697820c5e32d806a873ffffffffffffffffffffffffffffffffffffffff16612a189092919063ffffffff16565b73bbc81d23ea2c3ec7e56d39296f0cbb648873a5d373ffffffffffffffffffffffffffffffffffffffff16631a4d01d282600260006040518463ffffffff1660e01b81526004018084815260200183600f0b81526020018281526020019350505050600060405180830381600087803b15801561119257600080fd5b505af11580156111a6573d6000803e3d6000fd5b505050505b73dac17f958d2ee523a2206206994597c13d831ec773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561123c57600080fd5b505afa158015611250573d6000803e3d6000fd5b505050506040513d602081101561126657600080fd5b810190808051906020019092919050505090506000811115611595576112d6737a250d5630b4cf539739df2c5dacb4c659f2488d600073dac17f958d2ee523a2206206994597c13d831ec773ffffffffffffffffffffffffffffffffffffffff16612a189092919063ffffffff16565b611329737a250d5630b4cf539739df2c5dacb4c659f2488d8273dac17f958d2ee523a2206206994597c13d831ec773ffffffffffffffffffffffffffffffffffffffff16612a189092919063ffffffff16565b6060600360405190808252806020026020018201604052801561135b5781602001602082028038833980820191505090505b50905073dac17f958d2ee523a2206206994597c13d831ec78160008151811061138057fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106113dc57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050730bc529c00c6401aef6d220be8c6ea1667f6ad93e8160028151811061143857fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff166338ed173983600084306114bc610708426127ef90919063ffffffff16565b6040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015611552578082015181840152602081019050611537565b505050509050019650505050505050600060405180830381600087803b15801561157b57600080fd5b505af115801561158f573d6000803e3d6000fd5b50505050505b6000730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561162857600080fd5b505afa15801561163c573d6000803e3d6000fd5b505050506040513d602081101561165257600080fd5b810190808051906020019092919050505011156116725761167161241a565b5b50565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461173a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21636f6e74726f6c6c657200000000000000000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff1614156117f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f77616e740000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561186d57600080fd5b505afa158015611881573d6000803e3d6000fd5b505050506040513d602081101561189757600080fd5b810190808051906020019092919050505090506118f7600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff166129479092919063ffffffff16565b919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060008190555050565b61271081565b7345f783cce6b7ff23b2ab2d70e416cdb7d6055f5181565b6000611a30611a1a610780565b611a22612240565b6127ef90919063ffffffff16565b905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611af8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b73ba37b002abafdd8e89a1995da52740bbc013d99273ffffffffffffffffffffffffffffffffffffffff1663750e443a826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611b5f57600080fd5b505af1158015611b73573d6000803e3d6000fd5b5050505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21636f6e74726f6c6c657200000000000000000000000000000000000000000081525060200191505060405180910390fd5b611c47612c38565b730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cd857600080fd5b505afa158015611cec573d6000803e3d6000fd5b505050506040513d6020811015611d0257600080fd5b810190808051906020019092919050505090506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a622ee7c730bc529c00c6401aef6d220be8c6ea1667f6ad93e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611dca57600080fd5b505afa158015611dde573d6000803e3d6000fd5b505050506040513d6020811015611df457600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611eaa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f217661756c74000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b611ee98183730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff166129479092919063ffffffff16565b5090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611fb0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b73ba37b002abafdd8e89a1995da52740bbc013d99273ffffffffffffffffffffffffffffffffffffffff166386a50535826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561201757600080fd5b505af115801561202b573d6000803e3d6000fd5b5050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146120f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146121fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156122d357600080fd5b505afa1580156122e7573d6000803e3d6000fd5b505050506040513d60208110156122fd57600080fd5b8101908080519060200190929190505050905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146123d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61246e73ba37b002abafdd8e89a1995da52740bbc013d9926000730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff16612a189092919063ffffffff16565b61258c73ba37b002abafdd8e89a1995da52740bbc013d992730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561251757600080fd5b505afa15801561252b573d6000803e3d6000fd5b505050506040513d602081101561254157600080fd5b8101908080519060200190929190505050730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff16612a189092919063ffffffff16565b73ba37b002abafdd8e89a1995da52740bbc013d99273ffffffffffffffffffffffffffffffffffffffff1663a694fc3a730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561264d57600080fd5b505afa158015612661573d6000803e3d6000fd5b505050506040513d602081101561267757600080fd5b81019080805190602001909291905050506040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156126be57600080fd5b505af11580156126d2573d6000803e3d6000fd5b50505050565b60005481565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061275e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612cae565b905092915050565b600073ba37b002abafdd8e89a1995da52740bbc013d99273ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156127cf57600080fd5b505af11580156127e3573d6000803e3d6000fd5b50505050819050919050565b60008082840190508381101561286d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008083141561288a57600090506128f7565b600082840290508284828161289b57fe5b04146128f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806130cb6021913960400191505060405180910390fd5b809150505b92915050565b600061293f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612d6e565b905092915050565b612a13838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb905060e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612e34565b505050565b6000811480612b12575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015612ad557600080fd5b505afa158015612ae9573d6000803e3d6000fd5b505050506040513d6020811015612aff57600080fd5b8101908080519060200190929190505050145b612b67576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806131166036913960400191505060405180910390fd5b612c33838473ffffffffffffffffffffffffffffffffffffffff1663095ea7b3905060e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612e34565b505050565b73ba37b002abafdd8e89a1995da52740bbc013d99273ffffffffffffffffffffffffffffffffffffffff1663e9fad8ee6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612c9457600080fd5b505af1158015612ca8573d6000803e3d6000fd5b50505050565b6000838311158290612d5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612d20578082015181840152602081019050612d05565b50505050905090810190601f168015612d4d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290612e1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612ddf578082015181840152602081019050612dc4565b50505050905090810190601f168015612e0c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612e2657fe5b049050809150509392505050565b612e538273ffffffffffffffffffffffffffffffffffffffff1661307f565b612ec5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740081525060200191505060405180910390fd5b600060608373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b60208310612f145780518252602082019150602081019050602083039250612ef1565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612f76576040519150601f19603f3d011682016040523d82523d6000602084013e612f7b565b606091505b509150915081612ff3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656481525060200191505060405180910390fd5b6000815111156130795780806020019051602081101561301257600080fd5b8101908080519060200190929190505050613078576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806130ec602a913960400191505060405180910390fd5b5b50505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91506000801b82141580156130c15750808214155b9250505091905056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a265627a7a723158207b84c7d45a4e03d3e6da24ae312b138dfee182a6e241b8731d97e0cf2dcd915664736f6c634300051100320000000000000000000000009e65ad11b299ca0abefc2799ddb6314ef2d91080

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

0000000000000000000000009e65ad11b299ca0abefc2799ddb6314ef2d91080

-----Decoded View---------------
Arg [0] : _controller (address): 0x9e65ad11b299ca0abefc2799ddb6314ef2d91080

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000009e65ad11b299ca0abefc2799ddb6314ef2d91080


Deployed ByteCode Sourcemap

6538:5822:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6538:5822:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11426:118;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6769:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6680:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7584:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7041:84;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6947:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8770:706;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8770:706:0;;;;;;;;;;;;;;;;;:::i;:::-;;7132:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7315;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10096:1038;;;:::i;:::-;;8402:286;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8402:286:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7520:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7785:124;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7785:124:0;;;;;;;;;;;;;;;;;:::i;:::-;;7475:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6857:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11556:127;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11861:162;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11861:162:0;;;;;;;;;;;;;;;;;:::i;:::-;;9556:442;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11695:154;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11695:154:0;;;;;;;;;;;;;;;;;:::i;:::-;;12202:155;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12202:155:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;12035;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12035:155:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;11299:115;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7921:155;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7921:155:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;8088:227;;;:::i;:::-;;7447:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7227:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7552:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11426:118;11472:4;6807:42;11496:25;;;11530:4;11496:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11496:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11496:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11496:40:0;;;;;;;;;;;;;;;;11489:47;;11426:118;:::o;6769:81::-;6807:42;6769:81;:::o;6680:82::-;6719:42;6680:82;:::o;7584:25::-;;;;;;;;;;;;;:::o;7041:84::-;7082:42;7041:84;:::o;6947:81::-;6985:42;6947:81;:::o;8770:706::-;8844:10;;;;;;;;;;;8830:24;;:10;:24;;;8822:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8881:13;6719:42;8897:22;;;8928:4;8897:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8897:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8897:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8897:37:0;;;;;;;;;;;;;;;;8881:53;;8960:7;8949:8;:18;8945:143;;;8994:36;9008:21;9020:8;9008:7;:11;;:21;;;;:::i;:::-;8994:13;:36::i;:::-;8984:46;;9055:21;9067:8;9055:7;:11;;:21;;;;:::i;:::-;9045:31;;8945:143;9108:9;9120:25;7502:5;9120:16;9132:3;;9120:7;:11;;:16;;;;:::i;:::-;:20;;:25;;;;:::i;:::-;9108:37;;9156:65;9193:10;;;;;;;;;;;9182:30;;;:32;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9182:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9182:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9182:32:0;;;;;;;;;;;;;;;;9216:4;6719:42;9156:25;;;;:65;;;;;:::i;:::-;9232:14;9260:10;;;;;;;;;;;9249:29;;;6719:42;9249:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9249:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9249:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9249:44:0;;;;;;;;;;;;;;;;9232:61;;9330:1;9312:20;;:6;:20;;;;9304:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9416:52;9442:6;9450:17;9462:4;9450:7;:11;;:17;;;;:::i;:::-;6719:42;9416:25;;;;:52;;;;;:::i;:::-;8770:706;;;;:::o;7132:82::-;7171:42;7132:82;:::o;7315:::-;7354:42;7315:82;:::o;10096:1038::-;10155:10;;;;;;;;;;;10141:24;;:10;:24;;;:52;;;;10183:10;;;;;;;;;;;10169:24;;:10;:24;;;10141:52;:79;;;;10211:9;10197:23;;:10;:23;;;10141:79;10133:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6807:42;10247:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10247:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10247:27:0;;;;10285:13;7082:42;10301:24;;;10334:4;10301:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10301:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10301:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10301:39:0;;;;;;;;;;;;;;;;10285:55;;10366:1;10355:8;:12;10351:200;;;10384:34;6985:42;10416:1;7082:42;10384:26;;;;:34;;;;;:::i;:::-;10433:41;6985:42;10465:8;7082:42;10433:26;;;;:41;;;;;:::i;:::-;6985:42;10489:34;;;10524:8;10534:1;10537;10489:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10489:50:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10489:50:0;;;;10351:200;7171:42;10572:22;;;10603:4;10572:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10572:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10572:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10572:37:0;;;;;;;;;;;;;;;;10561:48;;10635:1;10624:8;:12;10620:404;;;10653:32;7265:42;10683:1;7171:42;10653:24;;;;:32;;;;;:::i;:::-;10700:39;7265:42;10730:8;7171:42;10700:24;;;;:39;;;;;:::i;:::-;10768:21;10806:1;10792:16;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;10792:16:0;;;;10768:40;;7171:42;10823:4;10828:1;10823:7;;;;;;;;;;;;;:14;;;;;;;;;;;7354:42;10852:4;10857:1;10852:7;;;;;;;;;;;;;:14;;;;;;;;;;;6719:42;10881:4;10886:1;10881:7;;;;;;;;;;;;;:14;;;;;;;;;;;7265:42;10924:33;;;10958:8;10973:1;10977:4;10991;10998:13;11006:4;10998:3;:7;;:13;;;;:::i;:::-;10924:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10924:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10924:88:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10924:88:0;;;;10620:404;;11078:1;6719:42;11038:22;;;11069:4;11038:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11038:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11038:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11038:37:0;;;;;;;;;;;;;;;;:41;11034:83;;;11096:9;:7;:9::i;:::-;11034:83;10096:1038;:::o;8402:286::-;8453:12;8500:10;;;;;;;;;;;8486:24;;:10;:24;;;8478:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8561:6;8545:23;;6719:42;8545:23;;;;8537:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8598:6;:16;;;8623:4;8598:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8598:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8598:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8598:31:0;;;;;;;;;;;;;;;;8588:41;;8640:40;8660:10;;;;;;;;;;;8672:7;8640:6;:19;;;;:40;;;;;:::i;:::-;8402:286;;;:::o;7520:25::-;;;;;;;;;;;;;:::o;7785:124::-;7854:10;;;;;;;;;;;7840:24;;:10;:24;;;7832:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7897:4;7891:3;:10;;;;7785:124;:::o;7475:32::-;7502:5;7475:32;:::o;6857:83::-;6897:42;6857:83;:::o;11556:127::-;11598:4;11622:53;11659:15;:13;:15::i;:::-;11622;:13;:15::i;:::-;:36;;:53;;;;:::i;:::-;11615:60;;11556:127;:::o;11861:162::-;11940:10;;;;;;;;;;;11926:24;;:10;:24;;;11918:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6807:42;11977:27;;;12005:9;11977:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11977:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11977:38:0;;;;11861:162;:::o;9556:442::-;9597:12;9644:10;;;;;;;;;;;9630:24;;:10;:24;;;9622:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9681:14;:12;:14::i;:::-;6719:42;9716:22;;;9747:4;9716:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9716:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9716:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9716:37:0;;;;;;;;;;;;;;;;9706:47;;9774:14;9802:10;;;;;;;;;;;9791:29;;;6719:42;9791:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9791:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9791:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9791:44:0;;;;;;;;;;;;;;;;9774:61;;9872:1;9854:20;;:6;:20;;;;9846:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9948:42;9974:6;9982:7;6719:42;9948:25;;;;:42;;;;;:::i;:::-;9556:442;;:::o;11695:154::-;11770:10;;;;;;;;;;;11756:24;;:10;:24;;;11748:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6807:42;11807:23;;;11831:9;11807:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11807:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11807:34:0;;;;11695:154;:::o;12202:155::-;12288:10;;;;;;;;;;;12274:24;;:10;:24;;;12266:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12338:11;12325:10;;:24;;;;;;;;;;;;;;;;;;12202:155;:::o;12035:::-;12121:10;;;;;;;;;;;12107:24;;:10;:24;;;12099:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12171:11;12158:10;;:24;;;;;;;;;;;;;;;;;;12035:155;:::o;11299:115::-;11345:4;6719:42;11369:22;;;11400:4;11369:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11369:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11369:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11369:37:0;;;;;;;;;;;;;;;;11362:44;;11299:115;:::o;7921:155::-;8007:10;;;;;;;;;;;7993:24;;:10;:24;;;7985:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8057:11;8044:10;;:24;;;;;;;;;;;;;;;;;;7921:155;:::o;8088:227::-;8125:32;6807:42;8155:1;6719:42;8125:24;;;;:32;;;;;:::i;:::-;8168:68;6807:42;6719;8198:22;;;8229:4;8198:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8198:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8198:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8198:37:0;;;;;;;;;;;;;;;;6719:42;8168:24;;;;:68;;;;;:::i;:::-;6807:42;8247:21;;;6719:42;8269:22;;;8300:4;8269:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8269:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8269:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8269:37:0;;;;;;;;;;;;;;;;8247:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8247:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8247:60:0;;;;8088:227::o;7447:21::-;;;;:::o;7227:81::-;7265:42;7227:81;:::o;7552:25::-;;;;;;;;;;;;;:::o;1006:136::-;1064:7;1091:43;1095:1;1098;1091:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1084:50;;1006:136;;;;:::o;11146:141::-;11204:4;6807:42;11221:24;;;11246:7;11221:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11221:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11221:33:0;;;;11272:7;11265:14;;11146:141;;;:::o;819:181::-;877:7;897:9;913:1;909;:5;897:17;;938:1;933;:6;;925:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;991:1;984:8;;;819:181;;;;:::o;1346:250::-;1404:7;1433:1;1428;:6;1424:47;;;1458:1;1451:8;;;;1424:47;1483:9;1499:1;1495;:5;1483:17;;1528:1;1523;1519;:5;;;;;;:10;1511:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1587:1;1580:8;;;1346:250;;;;;:::o;1602:132::-;1660:7;1687:39;1691:1;1694;1687:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1680:46;;1602:132;;;;:::o;3319:176::-;3402:85;3421:5;3451;:14;;;:23;;;;3476:2;3480:5;3428:58;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3428:58:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;3428:58:0;3402:18;:85::i;:::-;3319:176;;;:::o;3715:347::-;3820:1;3811:5;:10;3810:62;;;;3870:1;3827:5;:15;;;3851:4;3858:7;3827:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3827:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3827:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3827:39:0;;;;;;;;;;;;;;;;:44;3810:62;3802:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3965:89;3984:5;4014;:13;;;:22;;;;4038:7;4047:5;3991:62;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3991:62:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;3991:62:0;3965:18;:89::i;:::-;3715:347;;;:::o;10010:74::-;6807:42;10054:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10054:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10054:22:0;;;;10010:74::o;1148:192::-;1234:7;1267:1;1262;:6;;1270:12;1254:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1254:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1294:9;1310:1;1306;:5;1294:17;;1331:1;1324:8;;;1148:192;;;;;:::o;1740:258::-;1826:7;1925:1;1921;:5;1928:12;1913:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1913:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1952:9;1968:1;1964;:5;;;;;;1952:17;;1989:1;1982:8;;;1740:258;;;;;:::o;4068:598::-;4156:27;4164:5;4156:25;;;:27::i;:::-;4148:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4293:12;4307:23;4342:5;4334:19;;4354:4;4334:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4334:25:0;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;4292:67:0;;;;4378:7;4370:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4459:1;4439:10;:17;:21;4435:224;;;4581:10;4570:30;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4570:30:0;;;;;;;;;;;;;;;;4562:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4435:224;4068:598;;;;:::o;2336:374::-;2396:4;2413:16;2440:19;2462:66;2440:88;;;;2631:7;2619:20;2607:32;;2671:3;2659:15;;:8;:15;;:42;;;;;2690:11;2678:8;:23;;2659:42;2651:51;;;;2336:374;;;:::o

Swarm Source

bzzr://7b84c7d45a4e03d3e6da24ae312b138dfee182a6e241b8731d97e0cf2dcd9156
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.