ETH Price: $3,612.97 (+0.86%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer214215972024-12-17 10:16:1118 days ago1734430571IN
0xB4C1216B...a620c2c29
0 ETH0.0003685915
Transfer214143992024-12-16 10:11:5919 days ago1734343919IN
0xB4C1216B...a620c2c29
0 ETH0.0003685915
Transfer213975182024-12-14 1:37:5921 days ago1734140279IN
0xB4C1216B...a620c2c29
0 ETH0.0003685915
Transfer213754462024-12-10 23:40:1124 days ago1733874011IN
0xB4C1216B...a620c2c29
0 ETH0.0003685915
Transfer213697092024-12-10 4:26:1125 days ago1733804771IN
0xB4C1216B...a620c2c29
0 ETH0.0003685915
Transfer213615392024-12-09 1:04:4726 days ago1733706287IN
0xB4C1216B...a620c2c29
0 ETH0.0003685915
Transfer213512462024-12-07 14:35:3528 days ago1733582135IN
0xB4C1216B...a620c2c29
0 ETH0.0003685915
Transfer213512422024-12-07 14:34:4728 days ago1733582087IN
0xB4C1216B...a620c2c29
0 ETH0.0003685915
Transfer213511842024-12-07 14:23:1128 days ago1733581391IN
0xB4C1216B...a620c2c29
0 ETH0.0003685915
Transfer213511722024-12-07 14:20:4728 days ago1733581247IN
0xB4C1216B...a620c2c29
0 ETH0.0003685915
Transfer213511522024-12-07 14:16:4728 days ago1733581007IN
0xB4C1216B...a620c2c29
0 ETH0.0003685915
Transfer213509662024-12-07 13:38:5928 days ago1733578739IN
0xB4C1216B...a620c2c29
0 ETH0.0003685915
Transfer213505852024-12-07 12:22:2328 days ago1733574143IN
0xB4C1216B...a620c2c29
0 ETH0.0002457310
Transfer213504712024-12-07 11:59:2328 days ago1733572763IN
0xB4C1216B...a620c2c29
0 ETH0.0002457310
Transfer213489782024-12-07 6:58:4728 days ago1733554727IN
0xB4C1216B...a620c2c29
0 ETH0.0003685915
Transfer213076162024-12-01 12:19:4734 days ago1733055587IN
0xB4C1216B...a620c2c29
0 ETH0.0003685915
Transfer212924312024-11-29 9:23:1136 days ago1732872191IN
0xB4C1216B...a620c2c29
0 ETH0.0003685915
Transfer212750322024-11-26 22:52:2338 days ago1732661543IN
0xB4C1216B...a620c2c29
0 ETH0.0003685915
Transfer212750272024-11-26 22:51:2338 days ago1732661483IN
0xB4C1216B...a620c2c29
0 ETH0.0003685915
Transfer212719272024-11-26 12:29:2339 days ago1732624163IN
0xB4C1216B...a620c2c29
0 ETH0.0003685915
Transfer212719222024-11-26 12:28:2339 days ago1732624103IN
0xB4C1216B...a620c2c29
0 ETH0.0003685915
Transfer212662572024-11-25 17:27:3539 days ago1732555655IN
0xB4C1216B...a620c2c29
0 ETH0.0003685915
Transfer212652612024-11-25 14:06:3540 days ago1732543595IN
0xB4C1216B...a620c2c29
0 ETH0.0003685915
Transfer212651922024-11-25 13:52:4740 days ago1732542767IN
0xB4C1216B...a620c2c29
0 ETH0.0003685915
Transfer212651862024-11-25 13:51:3540 days ago1732542695IN
0xB4C1216B...a620c2c29
0 ETH0.0003685915
View all transactions

Advanced mode:
Parent Transaction Hash Block
From
To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
KPCToken

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-01-18
*/

pragma solidity ^0.4.24;

library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a / b;
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

contract Ownable {
    address public owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    constructor() public {
        owner = msg.sender;
    }
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }
    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0));
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }

}

contract Pausable is Ownable {
    event Pause();
    event Unpause();

    bool public paused = false;

    modifier whenNotPaused() {
        require(!paused);
        _;
    }

    modifier whenPaused() {
        require(paused);
        _;
    }

    function pause() onlyOwner whenNotPaused public {
        paused = true;
        emit Pause();
    }

    function unpause() onlyOwner whenPaused public {
        paused = false;
        emit Unpause();
    }
}

contract ERC20 {
    function totalSupply() public view returns (uint256);
    function balanceOf(address who) public view returns (uint256);
    function allowance(address owner, address spender) public view returns (uint256);
    function transfer(address to, uint256 value) public returns (bool);
    function approve(address spender, uint256 value) public returns (bool);
    function transferFrom(address from, address to, uint256 value) public returns (bool);

    event Approval(address indexed owner, address indexed spender, uint256 value);
    event Transfer(address indexed from, address indexed to, uint256 value);
}

contract Token is ERC20, Pausable {

    struct sUserInfo {
        uint256 balance;
        bool lock;
        mapping(address => uint256) allowed;
    }
    
    using SafeMath for uint256;

    string public name;
    string public symbol;
    uint8 public decimals;
    uint256 public totalSupply;

  

    mapping(address => sUserInfo) user;

    event Burn(uint256 value);

   
    
    function () public payable {
        revert();
    }
    
    function validTransfer(address _from, address _to, uint256 _value, bool _lockCheck) internal view returns (bool) {
        require(_to != address(this));
        require(_to != address(0));
        require(user[_from].balance >= _value);
        if(_lockCheck) {
            require(user[_from].lock == false);
        }
    }

    function lock(address _owner) public onlyOwner returns (bool) {
        require(user[_owner].lock == false);
       
        user[_owner].lock = true;
        return true;
    }
    function unlock(address _owner) public onlyOwner returns (bool) {
        require(user[_owner].lock == true);
        user[_owner].lock = false;
       return true;
    }
 
    function burn(uint256 _value) public onlyOwner returns (bool) {
        require(_value <= user[msg.sender].balance);
        user[msg.sender].balance = user[msg.sender].balance.sub(_value);
        totalSupply = totalSupply.sub(_value);
        emit Burn(_value);
        return true;
    }

    function approve(address _spender, uint256 _value) public whenNotPaused returns (bool) {
        require(_value == 0 || user[msg.sender].allowed[_spender] == 0); 
        user[msg.sender].allowed[_spender] = _value; 
        emit Approval(msg.sender, _spender, _value);
        return true;
    }
    function transferFrom(address _from, address _to, uint256 _value) public whenNotPaused returns (bool) {
        validTransfer(_from, _to, _value, true);
        require(_value <=  user[_from].allowed[msg.sender]);

        user[_from].balance = user[_from].balance.sub(_value);
        user[_to].balance = user[_to].balance.add(_value);

        user[_from].allowed[msg.sender] = user[_from].allowed[msg.sender].sub(_value);
        emit Transfer(_from, _to, _value);
        return true;
    }
    
    function transfer(address _to, uint256 _value) public whenNotPaused returns (bool) {
        validTransfer(msg.sender, _to, _value, true);

        user[msg.sender].balance = user[msg.sender].balance.sub(_value);
        user[_to].balance = user[_to].balance.add(_value);

        emit Transfer(msg.sender, _to, _value);
        return true;
    }

    
    function totalSupply() public view returns (uint256) {
        return totalSupply;
    }
    function balanceOf(address _owner) public view returns (uint256) {
        return user[_owner].balance;
    }
    function lockState(address _owner) public view returns (bool) {
        return user[_owner].lock;
    }
    function allowance(address _owner, address _spender) public view returns (uint256) {
        return user[_owner].allowed[_spender];
    }
    
}

contract LockBalance is Token {
    

    struct sLockInfo {
        uint256[] lockBalanceStandard;
        uint256[] endTime;
    }
    
    using SafeMath for uint256;

    mapping(address => sLockInfo) lockUser;

    event Lock(address indexed from, uint256 value, uint256 endTime);
    
    function setLockUser(address _to, uint256 _value, uint256 _endTime) onlyOwner public {
        require(_endTime > now); 
        require(_value > 0); 

        uint256 balance = balanceOf(_to);
        uint256 usedLockBalance = lockBalanceAll(_to);

        require(balance >= usedLockBalance.add(_value));

        lockUser[_to].lockBalanceStandard.push(_value);
        lockUser[_to].endTime.push(_endTime);

        emit Lock(_to, _value, _endTime);
    }
    function setLockUsers(address[] _to, uint256[] _value, uint256[] _endTime) onlyOwner public {  
        require(_to.length > 0);
        require(_to.length == _value.length);
        require(_to.length == _endTime.length);
      
        for(uint256 i = 0; i < _to.length; i++){
            setLockUser(_to[i], _value[i], _endTime[i]);
        }
    }
    
  
    function lockBalanceIndividual(address _owner, uint _index) internal view returns (uint256) {
        if(now < lockUser[_owner].endTime[_index]) {
            return lockUser[_owner].lockBalanceStandard[_index];
        } else {
            return 0;
        }
    }
    
    function clearLockUserInfo(address _holder) onlyOwner public {
        lockUser[_holder].endTime.length = 0;
        lockUser[_holder].lockBalanceStandard.length = 0;
    }
    function deleteLockUserInfoIdx(address _holder, uint256 idx) onlyOwner public {
        require(idx < lockUser[_holder].endTime.length);

        if (idx != lockUser[_holder].endTime.length - 1) {
            lockUser[_holder].endTime[idx] = lockUser[_holder].endTime[lockUser[_holder].endTime.length - 1];
            lockUser[_holder].lockBalanceStandard[idx] = lockUser[_holder].lockBalanceStandard[lockUser[_holder].lockBalanceStandard.length - 1];
        }
        lockUser[_holder].endTime.length--;
        lockUser[_holder].lockBalanceStandard.length--;
        
    }
    function _deleteLockUserInfo(address _to, uint256 _endTime) internal {

        bool isExists = false;
        uint256 index = 0;
        for(uint256 i = 0; i < lockUser[_to].endTime.length; i++) {
            if(lockUser[_to].endTime[i] == _endTime) {
                isExists = true;
                index = i;
                break;
            }
        }
        require(isExists);

        deleteLockUserInfoIdx(_to, index);
    }
    function deleteLockUserInfos(address _to, uint256[] _endTime) onlyOwner public {
        for(uint256 i = 0; i < _endTime.length; i++){
            _deleteLockUserInfo(_to, _endTime[i]);
        }
    }

    function lockUserInfo(address _owner, uint256 idx) public view returns (uint256, uint256) {
        return (
            lockUser[_owner].lockBalanceStandard[idx],
        lockUser[_owner].endTime[idx]);
    }
    function lockUserInfo(address _owner) public view returns (uint256[], uint256[]) {
        return (
        lockUser[_owner].lockBalanceStandard,
        lockUser[_owner].endTime);
    }
    function lockBalanceAll(address _owner) public view returns (uint256) {
        uint256 lockBalance = 0;
        for(uint256 i = 0; i < lockUser[_owner].lockBalanceStandard.length; i++){
            lockBalance = lockBalance.add(lockBalanceIndividual(_owner, i));
        }
        return lockBalance;
    }
    
}

contract KPCToken is LockBalance {

    constructor() public {
        name = "K Pop Click Coin";
        symbol = "KPC";
        decimals = 18;
        totalSupply = 5000000000 * 10 ** uint(decimals);
        user[owner].balance = totalSupply;
        emit Transfer(address(0), owner, totalSupply);
    }

    function validTransfer(address _from, address _to, uint256 _value, bool _lockCheck) internal view returns (bool) {
        super.validTransfer(_from, _to, _value, _lockCheck);
        if(_lockCheck) {
            require(_value <= useBalanceOf(_from));
        }
    }

    function transferWithtLockUser(address _to, uint256 _amount, uint256[] _lockAmount, uint256[] _endTime) onlyOwner public {  
        require(_lockAmount.length > 0);
        require(_lockAmount.length == _endTime.length);
        
        transfer(_to, _amount);
        
        for(uint256 i = 0; i < _lockAmount.length; i++){
            setLockUser(_to, _lockAmount[i], _endTime[i]);
        }
        
    }
    
    function useBalanceOf(address _owner) public view returns (uint256) {
        return balanceOf(_owner).sub(lockBalanceAll(_owner));
    }
  
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"lockBalanceAll","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_endTime","type":"uint256"}],"name":"setLockUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_holder","type":"address"}],"name":"clearLockUserInfo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"idx","type":"uint256"}],"name":"lockUserInfo","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"unlock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_holder","type":"address"},{"name":"idx","type":"uint256"}],"name":"deleteLockUserInfoIdx","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"useBalanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address[]"},{"name":"_value","type":"uint256[]"},{"name":"_endTime","type":"uint256[]"}],"name":"setLockUsers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"lockState","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_endTime","type":"uint256[]"}],"name":"deleteLockUserInfos","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"lockUserInfo","outputs":[{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_lockAmount","type":"uint256[]"},{"name":"_endTime","type":"uint256[]"}],"name":"transferWithtLockUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"lock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"endTime","type":"uint256"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

608060405260008060146101000a81548160ff0219169083151502179055503480156200002b57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040805190810160405280601081526020017f4b20506f7020436c69636b20436f696e0000000000000000000000000000000081525060019080519060200190620000b992919062000240565b506040805190810160405280600381526020017f4b50430000000000000000000000000000000000000000000000000000000000815250600290805190602001906200010792919062000240565b506012600360006101000a81548160ff021916908360ff160217905550600360009054906101000a900460ff1660ff16600a0a64012a05f20002600481905550600454600560008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040518082815260200191505060405180910390a3620002ef565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200028357805160ff1916838001178555620002b4565b82800160010185558215620002b4579182015b82811115620002b357825182559160200191906001019062000296565b5b509050620002c39190620002c7565b5090565b620002ec91905b80821115620002e8576000816000905550600101620002ce565b5090565b90565b612c8c80620002ff6000396000f30060806040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063015d200f1461016f57806306fdde03146101c6578063072f3b6714610256578063095ea7b3146102ad578063106ac57b1461031257806318160ddd1461035557806323b872dd1461038057806328d080f1146104055780632f6c493c1461046d578063313ce567146104c85780633f4ba83a146104f957806342966c681461051057806351ecf2c2146105555780635c975abb146105a257806369132d43146105d157806370a08231146106285780637e26b62d1461067f5780638456cb591461076b5780638da5cb5b1461078257806394dbc70e146107d957806395d89b4114610834578063a19c77c7146108c4578063a9059cbb1461094a578063ac1a7175146109af578063dd62ed3e14610a8f578063e0c3e1e714610b06578063f2fde38b14610bd9578063f435f5a714610c1c575b600080fd5b34801561017b57600080fd5b506101b0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c77565b6040518082815260200191505060405180910390f35b3480156101d257600080fd5b506101db610d06565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561021b578082015181840152602081019050610200565b50505050905090810190601f1680156102485780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026257600080fd5b506102ab600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050610da4565b005b3480156102b957600080fd5b506102f8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f8b565b604051808215151515815260200191505060405180910390f35b34801561031e57600080fd5b50610353600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611134565b005b34801561036157600080fd5b5061036a611232565b6040518082815260200191505060405180910390f35b34801561038c57600080fd5b506103eb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061123c565b604051808215151515815260200191505060405180910390f35b34801561041157600080fd5b50610450600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115b0565b604051808381526020018281526020019250505060405180910390f35b34801561047957600080fd5b506104ae600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611672565b604051808215151515815260200191505060405180910390f35b3480156104d457600080fd5b506104dd611795565b604051808260ff1660ff16815260200191505060405180910390f35b34801561050557600080fd5b5061050e6117a8565b005b34801561051c57600080fd5b5061053b60048036038101908080359060200190929190505050611866565b604051808215151515815260200191505060405180910390f35b34801561056157600080fd5b506105a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a0a565b005b3480156105ae57600080fd5b506105b7611db8565b604051808215151515815260200191505060405180910390f35b3480156105dd57600080fd5b50610612600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dcb565b6040518082815260200191505060405180910390f35b34801561063457600080fd5b50610669600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611df7565b6040518082815260200191505060405180910390f35b34801561068b57600080fd5b50610769600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611e43565b005b34801561077757600080fd5b50610780611f41565b005b34801561078e57600080fd5b50610797612001565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107e557600080fd5b5061081a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612026565b604051808215151515815260200191505060405180910390f35b34801561084057600080fd5b5061084961207f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561088957808201518184015260208101905061086e565b50505050905090810190601f1680156108b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108d057600080fd5b50610948600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061211d565b005b34801561095657600080fd5b50610995600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506121bb565b604051808215151515815260200191505060405180910390f35b3480156109bb57600080fd5b506109f0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061238b565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610a37578082015181840152602081019050610a1c565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610a79578082015181840152602081019050610a5e565b5050505090500194505050505060405180910390f35b348015610a9b57600080fd5b50610af0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124bf565b6040518082815260200191505060405180910390f35b348015610b1257600080fd5b50610bd7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050612549565b005b348015610be557600080fd5b50610c1a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061262c565b005b348015610c2857600080fd5b50610c5d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612781565b604051808215151515815260200191505060405180910390f35b6000806000809150600090505b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050811015610cfc57610ced610cde85836128a4565b8361297390919063ffffffff16565b91508080600101915050610c84565b8192505050919050565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d9c5780601f10610d7157610100808354040283529160200191610d9c565b820191906000526020600020905b815481529060010190602001808311610d7f57829003601f168201915b505050505081565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e0257600080fd5b4283111515610e1057600080fd5b600084111515610e1f57600080fd5b610e2885611df7565b9150610e3385610c77565b9050610e48848261297390919063ffffffff16565b8210151515610e5657600080fd5b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001849080600181540180825580915050906001820390600052602060002001600090919290919091505550600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018390806001815401808255809150509060018203906000526020600020016000909192909190915055508473ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b8585604051808381526020018281526020019250505060405180910390a25050505050565b60008060149054906101000a900460ff16151515610fa857600080fd5b600082148061103657506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b151561104157600080fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561118f57600080fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101816111de9190612c0f565b506000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018161122e9190612c0f565b5050565b6000600454905090565b60008060149054906101000a900460ff1615151561125957600080fd5b6112668484846001612991565b50600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156112f557600080fd5b61134a82600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546129c690919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506113e582600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461297390919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506114bd82600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129c690919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018381548110151561160257fe5b9060005260206000200154600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018481548110151561165c57fe5b9060005260206000200154915091509250929050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116cf57600080fd5b60011515600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16151514151561173157600080fd5b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff02191690831515021790555060019050919050565b600360009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561180357600080fd5b600060149054906101000a900460ff16151561181e57600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118c357600080fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154821115151561191457600080fd5b61196982600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546129c690919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506119c4826004546129c690919063ffffffff16565b6004819055507fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb826040518082815260200191505060405180910390a160019050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a6557600080fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905081101515611ab857600080fd5b6001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490500381141515611d0857600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905003815481101515611ba057fe5b9060005260206000200154600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010182815481101515611bfa57fe5b9060005260206000200181905550600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905003815481101515611c9f57fe5b9060005260206000200154600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000182815481101515611cf957fe5b90600052602060002001819055505b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805480919060019003611d5d9190612c0f565b50600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805480919060019003611db39190612c0f565b505050565b600060149054906101000a900460ff1681565b6000611df0611dd983610c77565b611de284611df7565b6129c690919063ffffffff16565b9050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ea057600080fd5b60008451111515611eb057600080fd5b82518451141515611ec057600080fd5b81518451141515611ed057600080fd5b600090505b8351811015611f3b57611f2e8482815181101515611eef57fe5b906020019060200201518483815181101515611f0757fe5b906020019060200201518484815181101515611f1f57fe5b90602001906020020151610da4565b8080600101915050611ed5565b50505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f9c57600080fd5b600060149054906101000a900460ff16151515611fb857600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff169050919050565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121155780601f106120ea57610100808354040283529160200191612115565b820191906000526020600020905b8154815290600101906020018083116120f857829003601f168201915b505050505081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561217a57600080fd5b600090505b81518110156121b6576121a983838381518110151561219a57fe5b906020019060200201516129df565b808060010191505061217f565b505050565b60008060149054906101000a900460ff161515156121d857600080fd5b6121e53384846001612991565b5061223b82600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546129c690919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506122d682600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461297390919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b606080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018180548060200260200160405190810160405280929190818152602001828054801561245d57602002820191906000526020600020905b815481526020019060010190808311612449575b50505050509150808054806020026020016040519081016040528092919081815260200182805480156124af57602002820191906000526020600020905b81548152602001906001019080831161249b575b5050505050905091509150915091565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156125a657600080fd5b600083511115156125b657600080fd5b815183511415156125c657600080fd5b6125d085856121bb565b50600090505b8251811015612625576126188584838151811015156125f157fe5b90602001906020020151848481518110151561260957fe5b90602001906020020151610da4565b80806001019150506125d6565b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561268757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156126c357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156127de57600080fd5b60001515600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16151514151561284057600080fd5b6001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff02191690831515021790555060019050919050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101828154811015156128f557fe5b906000526020600020015442101561296857600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018281548110151561295657fe5b9060005260206000200154905061296d565b600090505b92915050565b600080828401905083811015151561298757fe5b8091505092915050565b600061299f85858585612ad4565b5081156129be576129af85611dcb565b83111515156129bd57600080fd5b5b949350505050565b60008282111515156129d457fe5b818303905092915050565b600080600080925060009150600090505b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050811015612ab75783600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010182815481101515612a8d57fe5b90600052602060002001541415612aaa5760019250809150612ab7565b80806001019150506129f0565b821515612ac357600080fd5b612acd8583611a0a565b5050505050565b60003073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515612b1157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515612b4d57600080fd5b82600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410151515612b9e57600080fd5b8115612c075760001515600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff161515141515612c0657600080fd5b5b949350505050565b815481835581811115612c3657818360005260206000209182019101612c359190612c3b565b5b505050565b612c5d91905b80821115612c59576000816000905550600101612c41565b5090565b905600a165627a7a72305820461c3bfea67ed5d753a07381a48b669c755e321e544786942640730c442b1bd70029

Deployed Bytecode

0x60806040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063015d200f1461016f57806306fdde03146101c6578063072f3b6714610256578063095ea7b3146102ad578063106ac57b1461031257806318160ddd1461035557806323b872dd1461038057806328d080f1146104055780632f6c493c1461046d578063313ce567146104c85780633f4ba83a146104f957806342966c681461051057806351ecf2c2146105555780635c975abb146105a257806369132d43146105d157806370a08231146106285780637e26b62d1461067f5780638456cb591461076b5780638da5cb5b1461078257806394dbc70e146107d957806395d89b4114610834578063a19c77c7146108c4578063a9059cbb1461094a578063ac1a7175146109af578063dd62ed3e14610a8f578063e0c3e1e714610b06578063f2fde38b14610bd9578063f435f5a714610c1c575b600080fd5b34801561017b57600080fd5b506101b0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c77565b6040518082815260200191505060405180910390f35b3480156101d257600080fd5b506101db610d06565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561021b578082015181840152602081019050610200565b50505050905090810190601f1680156102485780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026257600080fd5b506102ab600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050610da4565b005b3480156102b957600080fd5b506102f8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f8b565b604051808215151515815260200191505060405180910390f35b34801561031e57600080fd5b50610353600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611134565b005b34801561036157600080fd5b5061036a611232565b6040518082815260200191505060405180910390f35b34801561038c57600080fd5b506103eb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061123c565b604051808215151515815260200191505060405180910390f35b34801561041157600080fd5b50610450600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115b0565b604051808381526020018281526020019250505060405180910390f35b34801561047957600080fd5b506104ae600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611672565b604051808215151515815260200191505060405180910390f35b3480156104d457600080fd5b506104dd611795565b604051808260ff1660ff16815260200191505060405180910390f35b34801561050557600080fd5b5061050e6117a8565b005b34801561051c57600080fd5b5061053b60048036038101908080359060200190929190505050611866565b604051808215151515815260200191505060405180910390f35b34801561056157600080fd5b506105a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a0a565b005b3480156105ae57600080fd5b506105b7611db8565b604051808215151515815260200191505060405180910390f35b3480156105dd57600080fd5b50610612600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dcb565b6040518082815260200191505060405180910390f35b34801561063457600080fd5b50610669600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611df7565b6040518082815260200191505060405180910390f35b34801561068b57600080fd5b50610769600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611e43565b005b34801561077757600080fd5b50610780611f41565b005b34801561078e57600080fd5b50610797612001565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107e557600080fd5b5061081a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612026565b604051808215151515815260200191505060405180910390f35b34801561084057600080fd5b5061084961207f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561088957808201518184015260208101905061086e565b50505050905090810190601f1680156108b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108d057600080fd5b50610948600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061211d565b005b34801561095657600080fd5b50610995600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506121bb565b604051808215151515815260200191505060405180910390f35b3480156109bb57600080fd5b506109f0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061238b565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610a37578082015181840152602081019050610a1c565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610a79578082015181840152602081019050610a5e565b5050505090500194505050505060405180910390f35b348015610a9b57600080fd5b50610af0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124bf565b6040518082815260200191505060405180910390f35b348015610b1257600080fd5b50610bd7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050612549565b005b348015610be557600080fd5b50610c1a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061262c565b005b348015610c2857600080fd5b50610c5d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612781565b604051808215151515815260200191505060405180910390f35b6000806000809150600090505b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050811015610cfc57610ced610cde85836128a4565b8361297390919063ffffffff16565b91508080600101915050610c84565b8192505050919050565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d9c5780601f10610d7157610100808354040283529160200191610d9c565b820191906000526020600020905b815481529060010190602001808311610d7f57829003601f168201915b505050505081565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e0257600080fd5b4283111515610e1057600080fd5b600084111515610e1f57600080fd5b610e2885611df7565b9150610e3385610c77565b9050610e48848261297390919063ffffffff16565b8210151515610e5657600080fd5b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001849080600181540180825580915050906001820390600052602060002001600090919290919091505550600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018390806001815401808255809150509060018203906000526020600020016000909192909190915055508473ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b8585604051808381526020018281526020019250505060405180910390a25050505050565b60008060149054906101000a900460ff16151515610fa857600080fd5b600082148061103657506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b151561104157600080fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561118f57600080fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101816111de9190612c0f565b506000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018161122e9190612c0f565b5050565b6000600454905090565b60008060149054906101000a900460ff1615151561125957600080fd5b6112668484846001612991565b50600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156112f557600080fd5b61134a82600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546129c690919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506113e582600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461297390919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506114bd82600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129c690919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018381548110151561160257fe5b9060005260206000200154600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018481548110151561165c57fe5b9060005260206000200154915091509250929050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116cf57600080fd5b60011515600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16151514151561173157600080fd5b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff02191690831515021790555060019050919050565b600360009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561180357600080fd5b600060149054906101000a900460ff16151561181e57600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118c357600080fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154821115151561191457600080fd5b61196982600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546129c690919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506119c4826004546129c690919063ffffffff16565b6004819055507fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb826040518082815260200191505060405180910390a160019050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a6557600080fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905081101515611ab857600080fd5b6001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490500381141515611d0857600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905003815481101515611ba057fe5b9060005260206000200154600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010182815481101515611bfa57fe5b9060005260206000200181905550600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905003815481101515611c9f57fe5b9060005260206000200154600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000182815481101515611cf957fe5b90600052602060002001819055505b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805480919060019003611d5d9190612c0f565b50600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805480919060019003611db39190612c0f565b505050565b600060149054906101000a900460ff1681565b6000611df0611dd983610c77565b611de284611df7565b6129c690919063ffffffff16565b9050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ea057600080fd5b60008451111515611eb057600080fd5b82518451141515611ec057600080fd5b81518451141515611ed057600080fd5b600090505b8351811015611f3b57611f2e8482815181101515611eef57fe5b906020019060200201518483815181101515611f0757fe5b906020019060200201518484815181101515611f1f57fe5b90602001906020020151610da4565b8080600101915050611ed5565b50505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f9c57600080fd5b600060149054906101000a900460ff16151515611fb857600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff169050919050565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121155780601f106120ea57610100808354040283529160200191612115565b820191906000526020600020905b8154815290600101906020018083116120f857829003601f168201915b505050505081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561217a57600080fd5b600090505b81518110156121b6576121a983838381518110151561219a57fe5b906020019060200201516129df565b808060010191505061217f565b505050565b60008060149054906101000a900460ff161515156121d857600080fd5b6121e53384846001612991565b5061223b82600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546129c690919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506122d682600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461297390919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b606080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018180548060200260200160405190810160405280929190818152602001828054801561245d57602002820191906000526020600020905b815481526020019060010190808311612449575b50505050509150808054806020026020016040519081016040528092919081815260200182805480156124af57602002820191906000526020600020905b81548152602001906001019080831161249b575b5050505050905091509150915091565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156125a657600080fd5b600083511115156125b657600080fd5b815183511415156125c657600080fd5b6125d085856121bb565b50600090505b8251811015612625576126188584838151811015156125f157fe5b90602001906020020151848481518110151561260957fe5b90602001906020020151610da4565b80806001019150506125d6565b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561268757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156126c357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156127de57600080fd5b60001515600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16151514151561284057600080fd5b6001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff02191690831515021790555060019050919050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101828154811015156128f557fe5b906000526020600020015442101561296857600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018281548110151561295657fe5b9060005260206000200154905061296d565b600090505b92915050565b600080828401905083811015151561298757fe5b8091505092915050565b600061299f85858585612ad4565b5081156129be576129af85611dcb565b83111515156129bd57600080fd5b5b949350505050565b60008282111515156129d457fe5b818303905092915050565b600080600080925060009150600090505b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050811015612ab75783600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010182815481101515612a8d57fe5b90600052602060002001541415612aaa5760019250809150612ab7565b80806001019150506129f0565b821515612ac357600080fd5b612acd8583611a0a565b5050505050565b60003073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515612b1157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515612b4d57600080fd5b82600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410151515612b9e57600080fd5b8115612c075760001515600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff161515141515612c0657600080fd5b5b949350505050565b815481835581811115612c3657818360005260206000209182019101612c359190612c3b565b5b505050565b612c5d91905b80821115612c59576000816000905550600101612c41565b5090565b905600a165627a7a72305820461c3bfea67ed5d753a07381a48b669c755e321e544786942640730c442b1bd70029

Deployed Bytecode Sourcemap

9108:1183:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2767:8;;;8782:313;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8782:313:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2520:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2520:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2520:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5788:471;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5788:471:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3811:301;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3811:301:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6924:175;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6924:175:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;5003:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5003:90:0;;;;;;;;;;;;;;;;;;;;;;;4118:504;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4118:504:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8367:213;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8367:213:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3324:174;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3324:174:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2572:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2572:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1559:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1559:105:0;;;;;;3507:296;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3507:296:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7105:587;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7105:587:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1257:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1257:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;10145:139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10145:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5099:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5099:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6265:359;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6265:359:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1448:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1448:103:0;;;;;;701:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;701:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;5216:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5216:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2545:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2545:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2545:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8154:205;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8154:205:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4634:355;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4634:355:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8586:190;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8586:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;8586:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;8586:190:0;;;;;;;;;;;;;;;;;;;5327:139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5327:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9711:422;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9711:422:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;976:192;;8:9:-1;5:2;;;30:1;27;20:12;5:2;976:192:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3136:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3136:182:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8782:313;8843:7;8863:19;8901:9;8885:1;8863:23;;8913:1;8901:13;;8897:162;8920:8;:16;8929:6;8920:16;;;;;;;;;;;;;;;:36;;:43;;;;8916:1;:47;8897:162;;;8998:49;9014:32;9036:6;9044:1;9014:21;:32::i;:::-;8998:11;:15;;:49;;;;:::i;:::-;8984:63;;8965:3;;;;;;;8897:162;;;9076:11;9069:18;;8782:313;;;;;:::o;2520:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5788:471::-;5952:15;5995:23;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;5903:3;5892:8;:14;5884:23;;;;;;;;5936:1;5927:6;:10;5919:19;;;;;;;;5970:14;5980:3;5970:9;:14::i;:::-;5952:32;;6021:19;6036:3;6021:14;:19::i;:::-;5995:45;;6072:27;6092:6;6072:15;:19;;:27;;;;:::i;:::-;6061:7;:38;;6053:47;;;;;;;;6113:8;:13;6122:3;6113:13;;;;;;;;;;;;;;;:33;;6152:6;6113:46;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;6113:46:0;;;;;;;;;;;;;;;;;;;;;;6170:8;:13;6179:3;6170:13;;;;;;;;;;;;;;;:21;;6197:8;6170:36;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;6170:36:0;;;;;;;;;;;;;;;;;;;;;;6229:3;6224:27;;;6234:6;6242:8;6224:27;;;;;;;;;;;;;;;;;;;;;;;;5788:471;;;;;:::o;3811:301::-;3892:4;1337:6;;;;;;;;;;;1336:7;1328:16;;;;;;;;3927:1;3917:6;:11;:54;;;;3970:1;3932:4;:16;3937:10;3932:16;;;;;;;;;;;;;;;:24;;:34;3957:8;3932:34;;;;;;;;;;;;;;;;:39;3917:54;3909:63;;;;;;;;4021:6;3984:4;:16;3989:10;3984:16;;;;;;;;;;;;;;;:24;;:34;4009:8;3984:34;;;;;;;;;;;;;;;:43;;;;4065:8;4044:38;;4053:10;4044:38;;;4075:6;4044:38;;;;;;;;;;;;;;;;;;4100:4;4093:11;;3811:301;;;;:::o;6924:175::-;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;7031:1;6996:8;:17;7005:7;6996:17;;;;;;;;;;;;;;;:25;;:36;;;;;:::i;:::-;;7090:1;7043:8;:17;7052:7;7043:17;;;;;;;;;;;;;;;:37;;:48;;;;;:::i;:::-;;6924:175;:::o;5003:90::-;5047:7;5074:11;;5067:18;;5003:90;:::o;4118:504::-;4214:4;1337:6;;;;;;;;;;;1336:7;1328:16;;;;;;;;4231:39;4245:5;4252:3;4257:6;4265:4;4231:13;:39::i;:::-;;4300:4;:11;4305:5;4300:11;;;;;;;;;;;;;;;:19;;:31;4320:10;4300:31;;;;;;;;;;;;;;;;4289:6;:42;;4281:51;;;;;;;;4367:31;4391:6;4367:4;:11;4372:5;4367:11;;;;;;;;;;;;;;;:19;;;:23;;:31;;;;:::i;:::-;4345:4;:11;4350:5;4345:11;;;;;;;;;;;;;;;:19;;:53;;;;4429:29;4451:6;4429:4;:9;4434:3;4429:9;;;;;;;;;;;;;;;:17;;;:21;;:29;;;;:::i;:::-;4409:4;:9;4414:3;4409:9;;;;;;;;;;;;;;;:17;;:49;;;;4505:43;4541:6;4505:4;:11;4510:5;4505:11;;;;;;;;;;;;;;;:19;;:31;4525:10;4505:31;;;;;;;;;;;;;;;;:35;;:43;;;;:::i;:::-;4471:4;:11;4476:5;4471:11;;;;;;;;;;;;;;;:19;;:31;4491:10;4471:31;;;;;;;;;;;;;;;:77;;;;4580:3;4564:28;;4573:5;4564:28;;;4585:6;4564:28;;;;;;;;;;;;;;;;;;4610:4;4603:11;;4118:504;;;;;:::o;8367:213::-;8439:7;8448;8490:8;:16;8499:6;8490:16;;;;;;;;;;;;;;;:36;;8527:3;8490:41;;;;;;;;;;;;;;;;;;8542:8;:16;8551:6;8542:16;;;;;;;;;;;;;;;:24;;8567:3;8542:29;;;;;;;;;;;;;;;;;;8468:104;;;;8367:213;;;;;:::o;3324:174::-;3382:4;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;3428:4;3407:25;;:4;:12;3412:6;3407:12;;;;;;;;;;;;;;;:17;;;;;;;;;;;;:25;;;3399:34;;;;;;;;3464:5;3444:4;:12;3449:6;3444:12;;;;;;;;;;;;;;;:17;;;:25;;;;;;;;;;;;;;;;;;3486:4;3479:11;;3324:174;;;:::o;2572:21::-;;;;;;;;;;;;;:::o;1559:105::-;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;1413:6;;;;;;;;;;;1405:15;;;;;;;;1626:5;1617:6;;:14;;;;;;;;;;;;;;;;;;1647:9;;;;;;;;;;1559:105::o;3507:296::-;3563:4;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;3598:4;:16;3603:10;3598:16;;;;;;;;;;;;;;;:24;;;3588:6;:34;;3580:43;;;;;;;;3661:36;3690:6;3661:4;:16;3666:10;3661:16;;;;;;;;;;;;;;;:24;;;:28;;:36;;;;:::i;:::-;3634:4;:16;3639:10;3634:16;;;;;;;;;;;;;;;:24;;:63;;;;3722:23;3738:6;3722:11;;:15;;:23;;;;:::i;:::-;3708:11;:37;;;;3761:12;3766:6;3761:12;;;;;;;;;;;;;;;;;;3791:4;3784:11;;3507:296;;;:::o;7105:587::-;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;7208:8;:17;7217:7;7208:17;;;;;;;;;;;;;;;:25;;:32;;;;7202:3;:38;7194:47;;;;;;;;7300:1;7265:8;:17;7274:7;7265:17;;;;;;;;;;;;;;;:25;;:32;;;;:36;7258:3;:43;;7254:319;;;7351:8;:17;7360:7;7351:17;;;;;;;;;;;;;;;:25;;7412:1;7377:8;:17;7386:7;7377:17;;;;;;;;;;;;;;;:25;;:32;;;;:36;7351:63;;;;;;;;;;;;;;;;;;7318:8;:17;7327:7;7318:17;;;;;;;;;;;;;;;:25;;7344:3;7318:30;;;;;;;;;;;;;;;;;:96;;;;7474:8;:17;7483:7;7474:17;;;;;;;;;;;;;;;:37;;7559:1;7512:8;:17;7521:7;7512:17;;;;;;;;;;;;;;;:37;;:44;;;;:48;7474:87;;;;;;;;;;;;;;;;;;7429:8;:17;7438:7;7429:17;;;;;;;;;;;;;;;:37;;7467:3;7429:42;;;;;;;;;;;;;;;;;:132;;;;7254:319;7583:8;:17;7592:7;7583:17;;;;;;;;;;;;;;;:25;;:34;;;;;;;;;;;;:::i;:::-;;7628:8;:17;7637:7;7628:17;;;;;;;;;;;;;;;:37;;:46;;;;;;;;;;;;:::i;:::-;;7105:587;;:::o;1257:26::-;;;;;;;;;;;;;:::o;10145:139::-;10204:7;10231:45;10253:22;10268:6;10253:14;:22::i;:::-;10231:17;10241:6;10231:9;:17::i;:::-;:21;;:45;;;;:::i;:::-;10224:52;;10145:139;;;:::o;5099:111::-;5155:7;5182:4;:12;5187:6;5182:12;;;;;;;;;;;;;;;:20;;;5175:27;;5099:111;;;:::o;6265:359::-;6512:9;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;6391:1;6378:3;:10;:14;6370:23;;;;;;;;6426:6;:13;6412:3;:10;:27;6404:36;;;;;;;;6473:8;:15;6459:3;:10;:29;6451:38;;;;;;;;6524:1;6512:13;;6508:109;6531:3;:10;6527:1;:14;6508:109;;;6562:43;6574:3;6578:1;6574:6;;;;;;;;;;;;;;;;;;6582;6589:1;6582:9;;;;;;;;;;;;;;;;;;6593:8;6602:1;6593:11;;;;;;;;;;;;;;;;;;6562;:43::i;:::-;6543:3;;;;;;;6508:109;;;6265:359;;;;:::o;1448:103::-;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;1337:6;;;;;;;;;;;1336:7;1328:16;;;;;;;;1516:4;1507:6;;:13;;;;;;;;;;;;;;;;;;1536:7;;;;;;;;;;1448:103::o;701:20::-;;;;;;;;;;;;;:::o;5216:105::-;5272:4;5296;:12;5301:6;5296:12;;;;;;;;;;;;;;;:17;;;;;;;;;;;;5289:24;;5216:105;;;:::o;2545:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8154:205::-;8248:9;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;8260:1;8248:13;;8244:108;8267:8;:15;8263:1;:19;8244:108;;;8303:37;8323:3;8328:8;8337:1;8328:11;;;;;;;;;;;;;;;;;;8303:19;:37::i;:::-;8284:3;;;;;;;8244:108;;;8154:205;;;:::o;4634:355::-;4711:4;1337:6;;;;;;;;;;;1336:7;1328:16;;;;;;;;4728:44;4742:10;4754:3;4759:6;4767:4;4728:13;:44::i;:::-;;4812:36;4841:6;4812:4;:16;4817:10;4812:16;;;;;;;;;;;;;;;:24;;;:28;;:36;;;;:::i;:::-;4785:4;:16;4790:10;4785:16;;;;;;;;;;;;;;;:24;;:63;;;;4879:29;4901:6;4879:4;:9;4884:3;4879:9;;;;;;;;;;;;;;;:17;;;:21;;:29;;;;:::i;:::-;4859:4;:9;4864:3;4859:9;;;;;;;;;;;;;;;:17;;:49;;;;4947:3;4926:33;;4935:10;4926:33;;;4952:6;4926:33;;;;;;;;;;;;;;;;;;4977:4;4970:11;;4634:355;;;;:::o;8586:190::-;8645:9;8656;8696:8;:16;8705:6;8696:16;;;;;;;;;;;;;;;:36;;8743:8;:16;8752:6;8743:16;;;;;;;;;;;;;;;:24;;8678:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8586:190;;;:::o;5327:139::-;5401:7;5428:4;:12;5433:6;5428:12;;;;;;;;;;;;;;;:20;;:30;5449:8;5428:30;;;;;;;;;;;;;;;;5421:37;;5327:139;;;;:::o;9711:422::-;10001:9;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;9874:1;9853:11;:18;:22;9845:31;;;;;;;;9917:8;:15;9895:11;:18;:37;9887:46;;;;;;;;9954:22;9963:3;9968:7;9954:8;:22::i;:::-;;10013:1;10001:13;;9997:119;10020:11;:18;10016:1;:22;9997:119;;;10059:45;10071:3;10076:11;10088:1;10076:14;;;;;;;;;;;;;;;;;;10092:8;10101:1;10092:11;;;;;;;;;;;;;;;;;;10059;:45::i;:::-;10040:3;;;;;;;9997:119;;;9711:422;;;;;:::o;976:192::-;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;1077:1;1057:22;;:8;:22;;;;1049:31;;;;;;;;1124:8;1096:37;;1117:5;;;;;;;;;;;1096:37;;;;;;;;;;;;1152:8;1144:5;;:16;;;;;;;;;;;;;;;;;;976:192;:::o;3136:182::-;3192:4;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;3238:5;3217:26;;:4;:12;3222:6;3217:12;;;;;;;;;;;;;;;:17;;;;;;;;;;;;:26;;;3209:35;;;;;;;;3284:4;3264;:12;3269:6;3264:12;;;;;;;;;;;;;;;:17;;;:24;;;;;;;;;;;;;;;;;;3306:4;3299:11;;3136:182;;;:::o;6640:272::-;6723:7;6752:8;:16;6761:6;6752:16;;;;;;;;;;;;;;;:24;;6777:6;6752:32;;;;;;;;;;;;;;;;;;6746:3;:38;6743:162;;;6808:8;:16;6817:6;6808:16;;;;;;;;;;;;;;;:36;;6845:6;6808:44;;;;;;;;;;;;;;;;;;6801:51;;;;6743:162;6892:1;6885:8;;6640:272;;;;;:::o;523:147::-;581:7;601:9;617:1;613;:5;601:17;;641:1;636;:6;;629:14;;;;;;661:1;654:8;;523:147;;;;;:::o;9430:273::-;9537:4;9554:51;9574:5;9581:3;9586:6;9594:10;9554:19;:51::i;:::-;;9619:10;9616:80;;;9664:19;9677:5;9664:12;:19::i;:::-;9654:6;:29;;9646:38;;;;;;;;9616:80;9430:273;;;;;;:::o;394:123::-;452:7;484:1;479;:6;;472:14;;;;;;508:1;504;:5;497:12;;394:123;;;;:::o;7698:450::-;7780:13;7812;7844:9;7796:5;7780:21;;7828:1;7812:17;;7856:1;7844:13;;7840:227;7863:8;:13;7872:3;7863:13;;;;;;;;;;;;;;;:21;;:28;;;;7859:1;:32;7840:227;;;7944:8;7916;:13;7925:3;7916:13;;;;;;;;;;;;;;;:21;;7938:1;7916:24;;;;;;;;;;;;;;;;;;:36;7913:143;;;7984:4;7973:15;;8015:1;8007:9;;8035:5;;7913:143;7893:3;;;;;;;7840:227;;;8085:8;8077:17;;;;;;;;8107:33;8129:3;8134:5;8107:21;:33::i;:::-;7698:450;;;;;:::o;2795:333::-;2902:4;2942;2927:20;;:3;:20;;;;2919:29;;;;;;;;2982:1;2967:17;;:3;:17;;;;2959:26;;;;;;;;3027:6;3004:4;:11;3009:5;3004:11;;;;;;;;;;;;;;;:19;;;:29;;2996:38;;;;;;;;3048:10;3045:76;;;3103:5;3083:25;;:4;:11;3088:5;3083:11;;;;;;;;;;;;;;;:16;;;;;;;;;;;;:25;;;3075:34;;;;;;;;3045:76;2795:333;;;;;;:::o;9108:1183::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://461c3bfea67ed5d753a07381a48b669c755e321e544786942640730c442b1bd7

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.