ETH Price: $2,364.02 (-4.00%)

Token

torue (TRE)
 

Overview

Max Total Supply

10,000,000,000 TRE

Holders

4,411

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 6 Decimals)

Balance
32,000 TRE

Value
$0.00
0xf097ab883dbfb864671ed7251af91f9d07914155
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Crypto-cuurency used in a next-generation news app “True News” developed by True News, Inc., Japan.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
TORUE

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-04-23
*/

pragma solidity ^0.4.18;

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 UpgradeAgent {
  function upgradeFrom(address _from, uint256 _value) external;
}

contract ERC223Interface {
    uint public totalSupply;
    function name() public view returns (string _name);
    function symbol() public view returns (string _symbol);
    function decimals() public view returns (uint8 _decimals);
    function totalSupply() public view returns (uint256 _supply);

    function balanceOf(address who) public view returns (uint256);

    function transfer(address to, uint value) public returns (bool ok);
    function transfer(address to, uint value, bytes data) public returns (bool ok);
    function transfer(address to, uint value, bytes data, string custom_fallback) public returns (bool ok);

    event Transfer(address indexed from, address indexed to, uint value, bytes indexed data);
}

contract ERC20Interface {
    function allowance(address owner, address spender) public view returns (uint256);
    function transferFrom(address from, address to, uint256 value) public returns (bool);
    function transferFrom(address from, address to, uint256 value, bytes data) public returns (bool);
    
    function approve(address spender, 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 ReceivingContract { 

    struct TKN {
        address sender;
        uint value;
        bytes data;
        bytes4 sig;
    }

    function tokenFallback(address _from, uint _value, bytes _data) public pure {
        TKN memory tkn;
        tkn.sender = _from;
        tkn.value = _value;
        tkn.data = _data;
        uint32 u = uint32(_data[3]) + (uint32(_data[2]) << 8) + (uint32(_data[1]) << 16) + (uint32(_data[0]) << 24);
        
        tkn.sig = bytes4(u);
    }
}

contract Owned {
    address public owner;
    
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }
    
    function Owned() public {
        owner = msg.sender;
    }
    
    function changeOwner(address _newOwner) public onlyOwner {
        require(_newOwner != address(0));
        OwnershipTransferred(owner, _newOwner);
        owner = _newOwner;
    }
}

contract TORUE is ERC223Interface,ERC20Interface,Owned {
    using SafeMath for uint;
    
    string public name = "torue";
    string public symbol = "TRE";
    uint8 public decimals = 6;
    uint256 public totalSupply = 100e8 * 1e6;

    mapping (address => uint256) balances;
    mapping (address => uint256) public lockedAccounts;
    mapping (address => bool) public frozenAccounts;
    mapping (address => mapping (address => uint256)) internal allowed;
    mapping (address => bool) public salvageableAddresses;
    
    event Mint(address indexed to, uint256 amount);
    event MintFinished();
    event Burn(address indexed burner, uint256 value);
    event DistributeTokens(uint count,uint256 totalAmount);
    event Upgrade(address indexed from, address indexed to, uint256 value);
    event AccountLocked(address indexed addr, uint256 releaseTime);
    event AccountFrozen(address indexed addr, bool frozen);

    address ownerAddress = 0xA0Bf23D5Ef64B6DdEbF5343a3C897c53005ee665;
    address lockupAddress1 = 0xB3c289934692ECE018d137fFcaB54631e6e2b405;
    address lockupAddress2 = 0x533c43AF0DDb5ee5215c0139d917F1A871ff9CB5;

    bool public compatible20 = true;
    bool public compatible223 = true;
    bool public compatible223ex = true;
    
    bool public mintingFinished = false;
    bool public salvageFinished = false;
    bool public paused = false;
    bool public upgradable = false;
    bool public upgradeAgentLocked = false;
    
    address public upgradeMaster;
    address public upgradeAgent;
    uint256 public totalUpgraded;

    modifier canMint() {
        require(!mintingFinished);
        _;
    }
    
    modifier isRunning(){
        require(!paused);
        _;
    }
    
    function TORUE() public {
        require(msg.sender==ownerAddress);
        owner = ownerAddress;
        upgradeMaster = ownerAddress;
        balances[owner] = totalSupply.mul(70).div(100);
        balances[lockupAddress1] = totalSupply.mul(15).div(100);
        balances[lockupAddress2] = totalSupply.mul(15).div(100);
        paused = false;
    }
    
    function switchCompatible20(bool _value) onlyOwner public {
        compatible20 = _value;
    }
    function switchCompatible223(bool _value) onlyOwner public {
        compatible223 = _value;
    }
    function switchCompatible223ex(bool _value) onlyOwner public {
        compatible223ex = _value;
    }

    function switchPaused(bool _paused) onlyOwner public {
        paused = _paused;
    }
    
    function switchUpgradable(bool _value) onlyOwner public {
        upgradable = _value;
    }
    
    function switchUpgradeAgentLocked(bool _value) onlyOwner public {
        upgradeAgentLocked = _value;
    }

    function isUnlocked(address _addr) private view returns (bool){
        return(now > lockedAccounts[_addr] && frozenAccounts[_addr] == false);
    }
    
    function isUnlockedBoth(address _addr) private view returns (bool){
        return(now > lockedAccounts[msg.sender] && now > lockedAccounts[_addr] && frozenAccounts[msg.sender] == false && frozenAccounts[_addr] == false);
    }
    
    function lockAccounts(address[] _addresses, uint256 _releaseTime) onlyOwner public {
        require(_addresses.length > 0);
                
        for(uint j = 0; j < _addresses.length; j++){
            require(lockedAccounts[_addresses[j]] < _releaseTime);
            lockedAccounts[_addresses[j]] = _releaseTime;
            AccountLocked(_addresses[j], _releaseTime);
        }
    }

    function freezeAccounts(address[] _addresses, bool _value) onlyOwner public {
        require(_addresses.length > 0);

        for (uint j = 0; j < _addresses.length; j++) {
            require(_addresses[j] != 0x0);
            frozenAccounts[_addresses[j]] = _value;
            AccountFrozen(_addresses[j], _value);
        }
    }

    function setSalvageable(address _addr, bool _value) onlyOwner public {
        salvageableAddresses[_addr] = _value;
    }
    
    function finishSalvage(address _addr) onlyOwner public returns (bool) {
        require(_addr==owner);
        salvageFinished = true;
        return true;
    }
    
    function salvageTokens(address _addr,uint256 _amount) onlyOwner public isRunning returns(bool) {
        require(_amount > 0 && balances[_addr] >= _amount);
        require(now > lockedAccounts[msg.sender] && now > lockedAccounts[_addr]);
        require(salvageableAddresses[_addr] == true && salvageFinished == false);
        balances[_addr] = balances[_addr].sub(_amount);
        balances[msg.sender] = balances[msg.sender].add(_amount);
        Transfer(_addr, msg.sender, _amount);
        return true;
    }

    function approve(address _spender, uint256 _value) public isRunning returns (bool) {
        require(compatible20);
        allowed[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);
        return true;
    }

    function allowance(address _owner, address _spender) public view returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }
    
    function transferFrom(address _from, address _to, uint256 _value) public isRunning returns (bool) {
        require(compatible20);
        require(isUnlocked(_from));
        require(isUnlocked(_to));
        
        require(_to != address(0));
        require(_value <= balances[_from]);
        require(_value <= allowed[_from][msg.sender]);
        balances[_from] = balances[_from].sub(_value);
        balances[_to] = balances[_to].add(_value);
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
        
        if(isContract(_to)) {
            bytes memory empty;
            ReceivingContract rc = ReceivingContract(_to);
            rc.tokenFallback(msg.sender, _value, empty);
        }
        Transfer(_from, _to, _value);
        return true;
    }
    
    function transferFrom(address _from, address _to, uint256 _value, bytes _data) public isRunning returns (bool) {
        require(compatible223);
        require(isUnlocked(_from));
        require(isUnlocked(_to));
        
        require(_to != address(0));
        require(_value <= balances[_from]);
        require(_value <= allowed[_from][msg.sender]);
        balances[_from] = balances[_from].sub(_value);
        balances[_to] = balances[_to].add(_value);
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
        
        if(isContract(_to)) {
            ReceivingContract rc = ReceivingContract(_to);
            rc.tokenFallback(msg.sender, _value, _data);
        }
        Transfer(msg.sender, _to, _value, _data);
        Transfer(_from, _to, _value);
        return true;
    }

    function increaseApproval(address _spender, uint _addedValue) public isRunning returns (bool) {
        require(compatible20);
        allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
        Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }
    
    function decreaseApproval(address _spender, uint _subtractedValue) public isRunning returns (bool) {
        require(compatible20);
        uint oldValue = allowed[msg.sender][_spender];
        if (_subtractedValue > oldValue) {
            allowed[msg.sender][_spender] = 0;
        } else {
            allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
        }
        Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }
    
    function mint(address _to, uint256 _amount) onlyOwner canMint public isRunning returns (bool) {
        totalSupply = totalSupply.add(_amount);
        balances[_to] = balances[_to].add(_amount);
        Mint(_to, _amount);
        Transfer(address(0), _to, _amount);
        return true;
    }
    
    function finishMinting(address _addr) onlyOwner public returns (bool) {
        require(_addr==owner);
        mintingFinished = true;
        MintFinished();
        return true;
    }
    
    function burn(uint256 _value) public isRunning {
        require(_value > 0);
        require(_value <= balances[msg.sender]);

        address burner = msg.sender;
        balances[burner] = balances[burner].sub(_value);
        totalSupply = totalSupply.sub(_value);
        Burn(msg.sender, _value);
    }

    function isContract(address _addr) private view returns (bool is_contract) {
        uint ln;
        assembly {
            ln := extcodesize(_addr)
        }
        return (ln > 0);
    }

    function transfer(address _to, uint _value, bytes _data, string _custom_fallback) public isRunning returns (bool ok) {
        require(compatible223ex);
        require(isUnlockedBoth(_to));
        require(balances[msg.sender] >= _value);
        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        if (isContract(_to)) {
            assert(_to.call.value(0)(bytes4(keccak256(_custom_fallback)), msg.sender, _value, _data));
        }
        Transfer(msg.sender, _to, _value, _data);
        Transfer(msg.sender, _to, _value);

        return true;
    }

    function transfer(address _to, uint _value, bytes _data) public isRunning returns (bool ok) {
        require(compatible223);
        require(isUnlockedBoth(_to));
        require(balances[msg.sender] >= _value);
        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        if(isContract(_to)) {
            ReceivingContract rc = ReceivingContract(_to);
            rc.tokenFallback(msg.sender, _value, _data);
        }
        Transfer(msg.sender, _to, _value, _data);
        Transfer(msg.sender, _to, _value);
        return true;
    }
    
    function transfer(address _to, uint _value) public isRunning returns (bool ok) {
        require(isUnlockedBoth(_to));
        require(balances[msg.sender] >= _value);
        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        if(isContract(_to)) {
            bytes memory empty;
            ReceivingContract rc = ReceivingContract(_to);
            rc.tokenFallback(msg.sender, _value, empty);
        }
        Transfer(msg.sender, _to, _value);
        return true;
    }
    
    function name() public view returns (string _name) {
        return name;
    }
    
    function symbol() public view returns (string _symbol) {
        return symbol;
    }
    
    function decimals() public view returns (uint8 _decimals) {
        return decimals;
    }
    
    function totalSupply() public view returns (uint256 _totalSupply) {
        return totalSupply;
    }

    function balanceOf(address _owner) public view returns (uint256 balance) {
        return balances[_owner];
    }
    
    function distributeTokens(address[] _addresses, uint256 _amount) onlyOwner public isRunning returns(bool) {
        require(_addresses.length > 0 && isUnlocked(msg.sender));

        uint256 totalAmount = _amount.mul(_addresses.length);
        require(balances[msg.sender] >= totalAmount);

        for (uint j = 0; j < _addresses.length; j++) {
            require(isUnlocked(_addresses[j]));
            balances[_addresses[j]] = balances[_addresses[j]].add(_amount);
            Transfer(msg.sender, _addresses[j], _amount);
        }
        balances[msg.sender] = balances[msg.sender].sub(totalAmount);
        DistributeTokens(_addresses.length, totalAmount);
        
        return true;
    }
    
    function distributeTokens(address[] _addresses, uint256[] _amounts) onlyOwner public isRunning returns (bool) {
        require(_addresses.length > 0 && _addresses.length == _amounts.length && isUnlocked(msg.sender));
        uint256 totalAmount = 0;
        for(uint j = 0; j < _addresses.length; j++){
            require(_amounts[j] > 0 && _addresses[j] != 0x0 && isUnlocked(_addresses[j]));
            totalAmount = totalAmount.add(_amounts[j]);
        }
        require(balances[msg.sender] >= totalAmount);
        
        for (j = 0; j < _addresses.length; j++) {
            balances[_addresses[j]] = balances[_addresses[j]].add(_amounts[j]);
            Transfer(msg.sender, _addresses[j], _amounts[j]);
        }
        balances[msg.sender] = balances[msg.sender].sub(totalAmount);
        DistributeTokens(_addresses.length, totalAmount);

        return true;
    }

    function upgrade(uint256 _value) external isRunning {
        require(upgradable);
        require(upgradeAgent != 0);
        require(_value != 0);
        require(_value <= balances[msg.sender]);
        balances[msg.sender] = balances[msg.sender].sub(_value);
        totalSupply = totalSupply.sub(_value);
        totalUpgraded = totalUpgraded.add(_value);
        UpgradeAgent(upgradeAgent).upgradeFrom(msg.sender, _value);
        Upgrade(msg.sender, upgradeAgent, _value);
    }
    
    function setUpgradeAgent(address _agent) external {
        require(_agent != 0);
        require(!upgradeAgentLocked);
        require(msg.sender == upgradeMaster);
        
        upgradeAgent = _agent;
        upgradeAgentLocked = true;
    }
    
    function setUpgradeMaster(address _master) external {
        require(_master != 0);
        require(msg.sender == upgradeMaster);
        
        upgradeMaster = _master;
    }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"mintingFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"_name","type":"string"}],"payable":false,"stateMutability":"view","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":true,"inputs":[],"name":"upgradeAgentLocked","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"compatible223","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"bool"}],"name":"switchCompatible223","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"_totalSupply","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":false,"inputs":[{"name":"_addresses","type":"address[]"},{"name":"_amount","type":"uint256"}],"name":"distributeTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"salvageFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"_decimals","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"upgrade","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"bool"}],"name":"switchCompatible20","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addresses","type":"address[]"},{"name":"_amounts","type":"uint256[]"}],"name":"distributeTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"compatible20","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"upgradeAgent","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"upgradeMaster","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"salvageableAddresses","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"bool"}],"name":"switchUpgradable","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"bool"}],"name":"switchCompatible223ex","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_paused","type":"bool"}],"name":"switchPaused","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"compatible223ex","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"finishMinting","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"frozenAccounts","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"_symbol","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"ok","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_amount","type":"uint256"}],"name":"salvageTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"transfer","outputs":[{"name":"ok","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addresses","type":"address[]"},{"name":"_value","type":"bool"}],"name":"freezeAccounts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalUpgraded","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_value","type":"bool"}],"name":"setSalvageable","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_agent","type":"address"}],"name":"setUpgradeAgent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addresses","type":"address[]"},{"name":"_releaseTime","type":"uint256"}],"name":"lockAccounts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"finishSalvage","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"lockedAccounts","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"bool"}],"name":"switchUpgradeAgentLocked","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"upgradable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"},{"name":"_custom_fallback","type":"string"}],"name":"transfer","outputs":[{"name":"ok","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_master","type":"address"}],"name":"setUpgradeMaster","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[],"name":"MintFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"count","type":"uint256"},{"indexed":false,"name":"totalAmount","type":"uint256"}],"name":"DistributeTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Upgrade","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"releaseTime","type":"uint256"}],"name":"AccountLocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"frozen","type":"bool"}],"name":"AccountFrozen","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"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":true,"name":"data","type":"bytes"}],"name":"Transfer","type":"event"}]

606060405260408051908101604052600581527f746f727565000000000000000000000000000000000000000000000000000000602082015260029080516200004d9291602001906200033e565b506040805190810160405260038082527f54524500000000000000000000000000000000000000000000000000000000006020830152908051620000969291602001906200033e565b506004805460ff19166006179055662386f26fc10000600555600b8054600160a060020a031990811673a0bf23d5ef64b6ddebf5343a3c897c53005ee66517909155600c8054821673b3c289934692ece018d137ffcab54631e6e2b405179055600d805460b860020a60e060020a031960b060020a60ff021960a860020a60ff021960a060020a60ff02199390951673533c43af0ddb5ee5215c0139d917f1a871ff9cb51792909216740100000000000000000000000000000000000000001793909316750100000000000000000000000000000000000000000017167601000000000000000000000000000000000000000000001791909116905534156200019e57600080fd5b60018054600160a060020a03338116600160a060020a03199092168217909255600b5490911614620001cf57600080fd5b600b5460018054600160a060020a03909216600160a060020a03199283168117909155600e8054909216179055600554620002379060649062000222906046640100000000620002ec810262002d7c1704565b9064010000000062002e436200032682021704565b600154600160a060020a031660009081526006602052604090205560055462000278906064906200022290600f64010000000062002d7c620002ec82021704565b600c54600160a060020a0316600090815260066020526040902055600554620002b9906064906200022290600f64010000000062002d7c620002ec82021704565b600d8054600160a060020a0316600090815260066020526040902091909155805460c860020a60ff0219169055620003e3565b6000808315156200030157600091506200031f565b508282028284828115156200031257fe5b04146200031b57fe5b8091505b5092915050565b60008082848115156200033557fe5b04949350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200038157805160ff1916838001178555620003b1565b82800160010185558215620003b1579182015b82811115620003b157825182559160200191906001019062000394565b50620003bf929150620003c3565b5090565b620003e091905b80821115620003bf5760008155600101620003ca565b90565b612ea680620003f36000396000f3006060604052600436106102375763ffffffff60e060020a60003504166305d2035b811461023c57806306fdde0314610263578063095ea7b3146102ed57806309f8cc581461030f5780630f86f7021461032257806310717a2e1461033557806318160ddd1461034f57806323b872dd14610374578063256fa2411461039c5780632cad9404146103ed578063313ce5671461040057806340c10f191461042957806342966c681461044b57806345977d03146104615780634b4a5088146104775780634bd09c2a1461048f5780635713fcb71461051e5780635c975abb146105315780635de4ccb014610544578063600440cb146105735780636268854d1461058657806366188463146105a5578063683de015146105c75780636ca562d6146105df57806370a08231146105f75780637132ebcd1461061657806372054df41461062e5780637619220014610641578063860838a5146106605780638da5cb5b1461067f57806395d89b4114610692578063a6f9dae1146106a5578063a9059cbb146106c4578063ab67aa58146106e6578063af303a1114610752578063be45fd6214610774578063c341b9f6146107d9578063c752ff621461082c578063c9206ddf1461083f578063d73dd62314610863578063d7e7088a14610885578063dd62ed3e146108a4578063e5ac7291146108c9578063e63b029d1461091a578063ebd0d82014610939578063ee94bdaf14610958578063f4d26fec14610970578063f6368f8a14610983578063ffeb7d7514610a2a575b600080fd5b341561024757600080fd5b61024f610a49565b604051901515815260200160405180910390f35b341561026e57600080fd5b610276610a6d565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102b257808201518382015260200161029a565b50505050905090810190601f1680156102df5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102f857600080fd5b61024f600160a060020a0360043516602435610b15565b341561031a57600080fd5b61024f610bb0565b341561032d57600080fd5b61024f610bc0565b341561034057600080fd5b61034d6004351515610bd0565b005b341561035a57600080fd5b610362610c1b565b60405190815260200160405180910390f35b341561037f57600080fd5b61024f600160a060020a0360043581169060243516604435610c21565b34156103a757600080fd5b61024f60046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496505093359350610ef192505050565b34156103f857600080fd5b61024f61110d565b341561040b57600080fd5b610413611132565b60405160ff909116815260200160405180910390f35b341561043457600080fd5b61024f600160a060020a036004351660243561113b565b341561045657600080fd5b61034d600435611262565b341561046c57600080fd5b61034d600435611343565b341561048257600080fd5b61034d60043515156114d9565b341561049a57600080fd5b61024f60046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437820191505050505050919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284375094965061152395505050505050565b341561052957600080fd5b61024f611723565b341561053c57600080fd5b61024f611733565b341561054f57600080fd5b610557611743565b604051600160a060020a03909116815260200160405180910390f35b341561057e57600080fd5b610557611752565b341561059157600080fd5b61024f600160a060020a0360043516611761565b34156105b057600080fd5b61024f600160a060020a0360043516602435611776565b34156105d257600080fd5b61034d60043515156118a5565b34156105ea57600080fd5b61034d60043515156118f5565b341561060257600080fd5b610362600160a060020a0360043516611954565b341561062157600080fd5b61034d600435151561196f565b341561063957600080fd5b61024f6119be565b341561064c57600080fd5b61024f600160a060020a03600435166119e1565b341561066b57600080fd5b61024f600160a060020a0360043516611a88565b341561068a57600080fd5b610557611a9d565b341561069d57600080fd5b610276611aac565b34156106b057600080fd5b61034d600160a060020a0360043516611b1f565b34156106cf57600080fd5b61024f600160a060020a0360043516602435611bba565b34156106f157600080fd5b61024f600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dc095505050505050565b341561075d57600080fd5b61024f600160a060020a036004351660243561212b565b341561077f57600080fd5b61024f60048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506122e195505050505050565b34156107e457600080fd5b61034d600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965050505091351515915061259a9050565b341561083757600080fd5b6103626126a1565b341561084a57600080fd5b61034d600160a060020a036004351660243515156126a7565b341561086e57600080fd5b61024f600160a060020a03600435166024356126ed565b341561089057600080fd5b61034d600160a060020a03600435166127c1565b34156108af57600080fd5b610362600160a060020a0360043581169060243516612863565b34156108d457600080fd5b61034d6004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650509335935061288e92505050565b341561092557600080fd5b61024f600160a060020a0360043516612995565b341561094457600080fd5b610362600160a060020a0360043516612a12565b341561096357600080fd5b61034d6004351515612a24565b341561097b57600080fd5b61024f612a75565b341561098e57600080fd5b61024f60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650612a8595505050505050565b3415610a3557600080fd5b61034d600160a060020a0360043516612ca7565b600d5477010000000000000000000000000000000000000000000000900460ff1681565b610a75612e31565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b0b5780601f10610ae057610100808354040283529160200191610b0b565b820191906000526020600020905b815481529060010190602001808311610aee57829003601f168201915b5050505050905090565b600d5460009060c860020a900460ff1615610b2f57600080fd5b600d5460a060020a900460ff161515610b4757600080fd5b600160a060020a03338116600081815260096020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b600d5460d860020a900460ff1681565b600d5460a860020a900460ff1681565b60015433600160a060020a03908116911614610beb57600080fd5b600d805491151560a860020a0275ff00000000000000000000000000000000000000000019909216919091179055565b60055490565b6000610c2b612e31565b600d5460009060c860020a900460ff1615610c4557600080fd5b600d5460a060020a900460ff161515610c5d57600080fd5b610c6686612d06565b1515610c7157600080fd5b610c7a85612d06565b1515610c8557600080fd5b600160a060020a0385161515610c9a57600080fd5b600160a060020a038616600090815260066020526040902054841115610cbf57600080fd5b600160a060020a0380871660009081526009602090815260408083203390941683529290522054841115610cf257600080fd5b600160a060020a038616600090815260066020526040902054610d1b908563ffffffff612d4c16565b600160a060020a038088166000908152600660205260408082209390935590871681522054610d50908563ffffffff612d5e16565b600160a060020a03808716600090815260066020908152604080832094909455898316825260098152838220339093168252919091522054610d98908563ffffffff612d4c16565b600160a060020a0380881660009081526009602090815260408083203390941683529290522055610dc885612d74565b15610eb0575083600160a060020a03811663c0ee0b8a3386856040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610e4e578082015183820152602001610e36565b50505050905090810190601f168015610e7b5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1515610e9b57600080fd5b6102c65a03f11515610eac57600080fd5b5050505b84600160a060020a031686600160a060020a0316600080516020612e5b8339815191528660405190815260200160405180910390a350600195945050505050565b6001546000908190819033600160a060020a03908116911614610f1357600080fd5b600d5460c860020a900460ff1615610f2a57600080fd5b60008551118015610f3f5750610f3f33612d06565b1515610f4a57600080fd5b610f5c8551859063ffffffff612d7c16565b600160a060020a03331660009081526006602052604090205490925082901015610f8557600080fd5b5060005b845181101561108557610fb0858281518110610fa157fe5b90602001906020020151612d06565b1515610fbb57600080fd5b610fff8460066000888581518110610fcf57fe5b90602001906020020151600160a060020a031681526020810191909152604001600020549063ffffffff612d5e16565b6006600087848151811061100f57fe5b90602001906020020151600160a060020a0316815260208101919091526040016000205584818151811061103f57fe5b90602001906020020151600160a060020a031633600160a060020a0316600080516020612e5b8339815191528660405190815260200160405180910390a3600101610f89565b600160a060020a0333166000908152600660205260409020546110ae908363ffffffff612d4c16565b600160a060020a0333166000908152600660205260409020557f814d1c01dd9d41d8814a098865d02ec577732a960a0c116bc8181cade7c4004585518360405191825260208201526040908101905180910390a1506001949350505050565b600d547801000000000000000000000000000000000000000000000000900460ff1681565b60045460ff1690565b60015460009033600160a060020a0390811691161461115957600080fd5b600d5477010000000000000000000000000000000000000000000000900460ff161561118457600080fd5b600d5460c860020a900460ff161561119b57600080fd5b6005546111ae908363ffffffff612d5e16565b600555600160a060020a0383166000908152600660205260409020546111da908363ffffffff612d5e16565b600160a060020a0384166000818152600660205260409081902092909255907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968859084905190815260200160405180910390a2600160a060020a0383166000600080516020612e5b8339815191528460405190815260200160405180910390a350600192915050565b600d5460009060c860020a900460ff161561127c57600080fd5b6000821161128957600080fd5b600160a060020a0333166000908152600660205260409020548211156112ae57600080fd5b5033600160a060020a0381166000908152600660205260409020546112d39083612d4c565b600160a060020a0382166000908152600660205260409020556005546112ff908363ffffffff612d4c16565b600555600160a060020a0333167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58360405190815260200160405180910390a25050565b600d5460c860020a900460ff161561135a57600080fd5b600d5460d060020a900460ff16151561137257600080fd5b600f54600160a060020a0316151561138957600080fd5b80151561139557600080fd5b600160a060020a0333166000908152600660205260409020548111156113ba57600080fd5b600160a060020a0333166000908152600660205260409020546113e3908263ffffffff612d4c16565b600160a060020a03331660009081526006602052604090205560055461140f908263ffffffff612d4c16565b600555601054611425908263ffffffff612d5e16565b601055600f54600160a060020a031663753e88e5338360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561147e57600080fd5b6102c65a03f1151561148f57600080fd5b5050600f54600160a060020a03908116915033167f7e5c344a8141a805725cb476f76c6953b842222b967edd1f78ddb6e8b3f397ac8360405190815260200160405180910390a350565b60015433600160a060020a039081169116146114f457600080fd5b600d805491151560a060020a0274ff000000000000000000000000000000000000000019909216919091179055565b6001546000908190819033600160a060020a0390811691161461154557600080fd5b600d5460c860020a900460ff161561155c57600080fd5b6000855111801561156e575083518551145b801561157e575061157e33612d06565b151561158957600080fd5b5060009050805b845181101561162c5760008482815181106115a757fe5b906020019060200201511180156115db57508481815181106115c557fe5b90602001906020020151600160a060020a031615155b80156115f157506115f1858281518110610fa157fe5b15156115fc57600080fd5b61162284828151811061160b57fe5b90602001906020020151839063ffffffff612d5e16565b9150600101611590565b600160a060020a0333166000908152600660205260409020548290101561165257600080fd5b5060005b84518110156110855761168884828151811061166e57fe5b9060200190602002015160066000888581518110610fcf57fe5b6006600087848151811061169857fe5b90602001906020020151600160a060020a031681526020810191909152604001600020558481815181106116c857fe5b90602001906020020151600160a060020a031633600160a060020a0316600080516020612e5b83398151915286848151811061170057fe5b9060200190602002015160405190815260200160405180910390a3600101611656565b600d5460a060020a900460ff1681565b600d5460c860020a900460ff1681565b600f54600160a060020a031681565b600e54600160a060020a031681565b600a6020526000908152604090205460ff1681565b600d54600090819060c860020a900460ff161561179257600080fd5b600d5460a060020a900460ff1615156117aa57600080fd5b50600160a060020a033381166000908152600960209081526040808320938716835292905220548083111561180657600160a060020a03338116600090815260096020908152604080832093881683529290529081205561183d565b611816818463ffffffff612d4c16565b600160a060020a033381166000908152600960209081526040808320938916835292905220555b600160a060020a0333811660008181526009602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a3600191505b5092915050565b60015433600160a060020a039081169116146118c057600080fd5b600d805491151560d060020a027aff000000000000000000000000000000000000000000000000000019909216919091179055565b60015433600160a060020a0390811691161461191057600080fd5b600d80549115157601000000000000000000000000000000000000000000000276ff0000000000000000000000000000000000000000000019909216919091179055565b600160a060020a031660009081526006602052604090205490565b60015433600160a060020a0390811691161461198a57600080fd5b600d805491151560c860020a0279ff0000000000000000000000000000000000000000000000000019909216919091179055565b600d54760100000000000000000000000000000000000000000000900460ff1681565b60015460009033600160a060020a039081169116146119ff57600080fd5b600154600160a060020a03838116911614611a1957600080fd5b600d805477ff00000000000000000000000000000000000000000000001916770100000000000000000000000000000000000000000000001790557fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a1506001919050565b60086020526000908152604090205460ff1681565b600154600160a060020a031681565b611ab4612e31565b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b0b5780601f10610ae057610100808354040283529160200191610b0b565b60015433600160a060020a03908116911614611b3a57600080fd5b600160a060020a0381161515611b4f57600080fd5b600154600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000611bc4612e31565b600d5460009060c860020a900460ff1615611bde57600080fd5b611be785612da7565b1515611bf257600080fd5b600160a060020a03331660009081526006602052604090205484901015611c1857600080fd5b600160a060020a033316600090815260066020526040902054611c41908563ffffffff612d4c16565b600160a060020a033381166000908152600660205260408082209390935590871681522054611c76908563ffffffff612d5e16565b600160a060020a038616600090815260066020526040902055611c9885612d74565b15611d80575083600160a060020a03811663c0ee0b8a3386856040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611d1e578082015183820152602001611d06565b50505050905090810190601f168015611d4b5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1515611d6b57600080fd5b6102c65a03f11515611d7c57600080fd5b5050505b84600160a060020a031633600160a060020a0316600080516020612e5b8339815191528660405190815260200160405180910390a3506001949350505050565b600d54600090819060c860020a900460ff1615611ddc57600080fd5b600d5460a860020a900460ff161515611df457600080fd5b611dfd86612d06565b1515611e0857600080fd5b611e1185612d06565b1515611e1c57600080fd5b600160a060020a0385161515611e3157600080fd5b600160a060020a038616600090815260066020526040902054841115611e5657600080fd5b600160a060020a0380871660009081526009602090815260408083203390941683529290522054841115611e8957600080fd5b600160a060020a038616600090815260066020526040902054611eb2908563ffffffff612d4c16565b600160a060020a038088166000908152600660205260408082209390935590871681522054611ee7908563ffffffff612d5e16565b600160a060020a03808716600090815260066020908152604080832094909455898316825260098152838220339093168252919091522054611f2f908563ffffffff612d4c16565b600160a060020a0380881660009081526009602090815260408083203390941683529290522055611f5f85612d74565b15612047575083600160a060020a03811663c0ee0b8a3386866040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611fe5578082015183820152602001611fcd565b50505050905090810190601f1680156120125780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b151561203257600080fd5b6102c65a03f1151561204357600080fd5b5050505b826040518082805190602001908083835b602083106120775780518252601f199092019160209182019101612058565b6001836020036101000a0380198251168184511617909252505050919091019250604091505051809103902085600160a060020a031633600160a060020a03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c168760405190815260200160405180910390a484600160a060020a031686600160a060020a0316600080516020612e5b8339815191528660405190815260200160405180910390a350600195945050505050565b60015460009033600160a060020a0390811691161461214957600080fd5b600d5460c860020a900460ff161561216057600080fd5b6000821180156121895750600160a060020a038316600090815260066020526040902054829010155b151561219457600080fd5b600160a060020a033316600090815260076020526040902054421180156121d25750600160a060020a03831660009081526007602052604090205442115b15156121dd57600080fd5b600160a060020a0383166000908152600a602052604090205460ff16151560011480156122295750600d547801000000000000000000000000000000000000000000000000900460ff16155b151561223457600080fd5b600160a060020a03831660009081526006602052604090205461225d908363ffffffff612d4c16565b600160a060020a03808516600090815260066020526040808220939093553390911681522054612293908363ffffffff612d5e16565b600160a060020a0333811660008181526006602052604090819020939093559190851690600080516020612e5b8339815191529085905190815260200160405180910390a350600192915050565b600d54600090819060c860020a900460ff16156122fd57600080fd5b600d5460a860020a900460ff16151561231557600080fd5b61231e85612da7565b151561232957600080fd5b600160a060020a0333166000908152600660205260409020548490101561234f57600080fd5b600160a060020a033316600090815260066020526040902054612378908563ffffffff612d4c16565b600160a060020a0333811660009081526006602052604080822093909355908716815220546123ad908563ffffffff612d5e16565b600160a060020a0386166000908152600660205260409020556123cf85612d74565b156124b7575083600160a060020a03811663c0ee0b8a3386866040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561245557808201518382015260200161243d565b50505050905090810190601f1680156124825780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15156124a257600080fd5b6102c65a03f115156124b357600080fd5b5050505b826040518082805190602001908083835b602083106124e75780518252601f1990920191602091820191016124c8565b6001836020036101000a0380198251168184511617909252505050919091019250604091505051809103902085600160a060020a031633600160a060020a03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c168760405190815260200160405180910390a484600160a060020a031633600160a060020a0316600080516020612e5b8339815191528660405190815260200160405180910390a3506001949350505050565b60015460009033600160a060020a039081169116146125b857600080fd5b60008351116125c657600080fd5b5060005b825181101561269c578281815181106125df57fe5b90602001906020020151600160a060020a031615156125fd57600080fd5b816008600085848151811061260e57fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff191691151591909117905582818151811061264c57fe5b90602001906020020151600160a060020a03167fa33e6b076d391e96626483b30e365719f79f1d6594aff6587649ffd6c82ed7fa83604051901515815260200160405180910390a26001016125ca565b505050565b60105481565b60015433600160a060020a039081169116146126c257600080fd5b600160a060020a03919091166000908152600a60205260409020805460ff1916911515919091179055565b600d5460009060c860020a900460ff161561270757600080fd5b600d5460a060020a900460ff16151561271f57600080fd5b600160a060020a03338116600090815260096020908152604080832093871683529290522054612755908363ffffffff612d5e16565b600160a060020a0333811660008181526009602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03811615156127d657600080fd5b600d5460d860020a900460ff16156127ed57600080fd5b600e5433600160a060020a0390811691161461280857600080fd5b600f8054600160a060020a0390921673ffffffffffffffffffffffffffffffffffffffff19909216919091179055600d80547bff000000000000000000000000000000000000000000000000000000191660d860020a179055565b600160a060020a03918216600090815260096020908152604080832093909416825291909152205490565b60015460009033600160a060020a039081169116146128ac57600080fd5b60008351116128ba57600080fd5b5060005b825181101561269c5781600760008584815181106128d857fe5b90602001906020020151600160a060020a031681526020810191909152604001600020541061290657600080fd5b816007600085848151811061291757fe5b90602001906020020151600160a060020a0316815260208101919091526040016000205582818151811061294757fe5b90602001906020020151600160a060020a03167ff7c3865a2047e2fc614fff3af48eef519dfd5243847cbefd615b3a150a9db5b08360405190815260200160405180910390a26001016128be565b60015460009033600160a060020a039081169116146129b357600080fd5b600154600160a060020a038381169116146129cd57600080fd5b50600d805478ff000000000000000000000000000000000000000000000000191678010000000000000000000000000000000000000000000000001790556001919050565b60076020526000908152604090205481565b60015433600160a060020a03908116911614612a3f57600080fd5b600d805491151560d860020a027bff00000000000000000000000000000000000000000000000000000019909216919091179055565b600d5460d060020a900460ff1681565b600d5460009060c860020a900460ff1615612a9f57600080fd5b600d54760100000000000000000000000000000000000000000000900460ff161515612aca57600080fd5b612ad385612da7565b1515612ade57600080fd5b600160a060020a03331660009081526006602052604090205484901015612b0457600080fd5b600160a060020a033316600090815260066020526040902054612b2d908563ffffffff612d4c16565b600160a060020a033381166000908152600660205260408082209390935590871681522054612b62908563ffffffff612d5e16565b600160a060020a038616600090815260066020526040902055612b8485612d74565b156124b75784600160a060020a03166000836040518082805190602001908083835b60208310612bc55780518252601f199092019160209182019101612ba6565b6001836020036101000a0380198251168184511617909252505050919091019250604091505051809103902060e060020a9004903387876040518563ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a03168152602001838152602001828051906020019080838360005b83811015612c56578082015183820152602001612c3e565b50505050905090810190601f168015612c835780820380516001836020036101000a031916815260200191505b50935050505060006040518083038185886187965a03f1935050505015156124b757fe5b600160a060020a0381161515612cbc57600080fd5b600e5433600160a060020a03908116911614612cd757600080fd5b600e805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a03811660009081526007602052604081205442118015612d465750600160a060020a03821660009081526008602052604090205460ff16155b92915050565b600082821115612d5857fe5b50900390565b600082820183811015612d6d57fe5b9392505050565b6000903b1190565b600080831515612d8f576000915061189e565b50828202828482811515612d9f57fe5b0414612d6d57fe5b600160a060020a03331660009081526007602052604081205442118015612de55750600160a060020a03821660009081526007602052604090205442115b8015612e0a5750600160a060020a03331660009081526008602052604090205460ff16155b8015612d46575050600160a060020a031660009081526008602052604090205460ff161590565b60206040519081016040526000815290565b6000808284811515612e5157fe5b049493505050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058206225c99c0817e637457b3ccd59b7e77b3a92cb9ae28dab86bec58c6679360b880029

Deployed Bytecode

0x6060604052600436106102375763ffffffff60e060020a60003504166305d2035b811461023c57806306fdde0314610263578063095ea7b3146102ed57806309f8cc581461030f5780630f86f7021461032257806310717a2e1461033557806318160ddd1461034f57806323b872dd14610374578063256fa2411461039c5780632cad9404146103ed578063313ce5671461040057806340c10f191461042957806342966c681461044b57806345977d03146104615780634b4a5088146104775780634bd09c2a1461048f5780635713fcb71461051e5780635c975abb146105315780635de4ccb014610544578063600440cb146105735780636268854d1461058657806366188463146105a5578063683de015146105c75780636ca562d6146105df57806370a08231146105f75780637132ebcd1461061657806372054df41461062e5780637619220014610641578063860838a5146106605780638da5cb5b1461067f57806395d89b4114610692578063a6f9dae1146106a5578063a9059cbb146106c4578063ab67aa58146106e6578063af303a1114610752578063be45fd6214610774578063c341b9f6146107d9578063c752ff621461082c578063c9206ddf1461083f578063d73dd62314610863578063d7e7088a14610885578063dd62ed3e146108a4578063e5ac7291146108c9578063e63b029d1461091a578063ebd0d82014610939578063ee94bdaf14610958578063f4d26fec14610970578063f6368f8a14610983578063ffeb7d7514610a2a575b600080fd5b341561024757600080fd5b61024f610a49565b604051901515815260200160405180910390f35b341561026e57600080fd5b610276610a6d565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102b257808201518382015260200161029a565b50505050905090810190601f1680156102df5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102f857600080fd5b61024f600160a060020a0360043516602435610b15565b341561031a57600080fd5b61024f610bb0565b341561032d57600080fd5b61024f610bc0565b341561034057600080fd5b61034d6004351515610bd0565b005b341561035a57600080fd5b610362610c1b565b60405190815260200160405180910390f35b341561037f57600080fd5b61024f600160a060020a0360043581169060243516604435610c21565b34156103a757600080fd5b61024f60046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496505093359350610ef192505050565b34156103f857600080fd5b61024f61110d565b341561040b57600080fd5b610413611132565b60405160ff909116815260200160405180910390f35b341561043457600080fd5b61024f600160a060020a036004351660243561113b565b341561045657600080fd5b61034d600435611262565b341561046c57600080fd5b61034d600435611343565b341561048257600080fd5b61034d60043515156114d9565b341561049a57600080fd5b61024f60046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437820191505050505050919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284375094965061152395505050505050565b341561052957600080fd5b61024f611723565b341561053c57600080fd5b61024f611733565b341561054f57600080fd5b610557611743565b604051600160a060020a03909116815260200160405180910390f35b341561057e57600080fd5b610557611752565b341561059157600080fd5b61024f600160a060020a0360043516611761565b34156105b057600080fd5b61024f600160a060020a0360043516602435611776565b34156105d257600080fd5b61034d60043515156118a5565b34156105ea57600080fd5b61034d60043515156118f5565b341561060257600080fd5b610362600160a060020a0360043516611954565b341561062157600080fd5b61034d600435151561196f565b341561063957600080fd5b61024f6119be565b341561064c57600080fd5b61024f600160a060020a03600435166119e1565b341561066b57600080fd5b61024f600160a060020a0360043516611a88565b341561068a57600080fd5b610557611a9d565b341561069d57600080fd5b610276611aac565b34156106b057600080fd5b61034d600160a060020a0360043516611b1f565b34156106cf57600080fd5b61024f600160a060020a0360043516602435611bba565b34156106f157600080fd5b61024f600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dc095505050505050565b341561075d57600080fd5b61024f600160a060020a036004351660243561212b565b341561077f57600080fd5b61024f60048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506122e195505050505050565b34156107e457600080fd5b61034d600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965050505091351515915061259a9050565b341561083757600080fd5b6103626126a1565b341561084a57600080fd5b61034d600160a060020a036004351660243515156126a7565b341561086e57600080fd5b61024f600160a060020a03600435166024356126ed565b341561089057600080fd5b61034d600160a060020a03600435166127c1565b34156108af57600080fd5b610362600160a060020a0360043581169060243516612863565b34156108d457600080fd5b61034d6004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650509335935061288e92505050565b341561092557600080fd5b61024f600160a060020a0360043516612995565b341561094457600080fd5b610362600160a060020a0360043516612a12565b341561096357600080fd5b61034d6004351515612a24565b341561097b57600080fd5b61024f612a75565b341561098e57600080fd5b61024f60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650612a8595505050505050565b3415610a3557600080fd5b61034d600160a060020a0360043516612ca7565b600d5477010000000000000000000000000000000000000000000000900460ff1681565b610a75612e31565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b0b5780601f10610ae057610100808354040283529160200191610b0b565b820191906000526020600020905b815481529060010190602001808311610aee57829003601f168201915b5050505050905090565b600d5460009060c860020a900460ff1615610b2f57600080fd5b600d5460a060020a900460ff161515610b4757600080fd5b600160a060020a03338116600081815260096020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b600d5460d860020a900460ff1681565b600d5460a860020a900460ff1681565b60015433600160a060020a03908116911614610beb57600080fd5b600d805491151560a860020a0275ff00000000000000000000000000000000000000000019909216919091179055565b60055490565b6000610c2b612e31565b600d5460009060c860020a900460ff1615610c4557600080fd5b600d5460a060020a900460ff161515610c5d57600080fd5b610c6686612d06565b1515610c7157600080fd5b610c7a85612d06565b1515610c8557600080fd5b600160a060020a0385161515610c9a57600080fd5b600160a060020a038616600090815260066020526040902054841115610cbf57600080fd5b600160a060020a0380871660009081526009602090815260408083203390941683529290522054841115610cf257600080fd5b600160a060020a038616600090815260066020526040902054610d1b908563ffffffff612d4c16565b600160a060020a038088166000908152600660205260408082209390935590871681522054610d50908563ffffffff612d5e16565b600160a060020a03808716600090815260066020908152604080832094909455898316825260098152838220339093168252919091522054610d98908563ffffffff612d4c16565b600160a060020a0380881660009081526009602090815260408083203390941683529290522055610dc885612d74565b15610eb0575083600160a060020a03811663c0ee0b8a3386856040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610e4e578082015183820152602001610e36565b50505050905090810190601f168015610e7b5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1515610e9b57600080fd5b6102c65a03f11515610eac57600080fd5b5050505b84600160a060020a031686600160a060020a0316600080516020612e5b8339815191528660405190815260200160405180910390a350600195945050505050565b6001546000908190819033600160a060020a03908116911614610f1357600080fd5b600d5460c860020a900460ff1615610f2a57600080fd5b60008551118015610f3f5750610f3f33612d06565b1515610f4a57600080fd5b610f5c8551859063ffffffff612d7c16565b600160a060020a03331660009081526006602052604090205490925082901015610f8557600080fd5b5060005b845181101561108557610fb0858281518110610fa157fe5b90602001906020020151612d06565b1515610fbb57600080fd5b610fff8460066000888581518110610fcf57fe5b90602001906020020151600160a060020a031681526020810191909152604001600020549063ffffffff612d5e16565b6006600087848151811061100f57fe5b90602001906020020151600160a060020a0316815260208101919091526040016000205584818151811061103f57fe5b90602001906020020151600160a060020a031633600160a060020a0316600080516020612e5b8339815191528660405190815260200160405180910390a3600101610f89565b600160a060020a0333166000908152600660205260409020546110ae908363ffffffff612d4c16565b600160a060020a0333166000908152600660205260409020557f814d1c01dd9d41d8814a098865d02ec577732a960a0c116bc8181cade7c4004585518360405191825260208201526040908101905180910390a1506001949350505050565b600d547801000000000000000000000000000000000000000000000000900460ff1681565b60045460ff1690565b60015460009033600160a060020a0390811691161461115957600080fd5b600d5477010000000000000000000000000000000000000000000000900460ff161561118457600080fd5b600d5460c860020a900460ff161561119b57600080fd5b6005546111ae908363ffffffff612d5e16565b600555600160a060020a0383166000908152600660205260409020546111da908363ffffffff612d5e16565b600160a060020a0384166000818152600660205260409081902092909255907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968859084905190815260200160405180910390a2600160a060020a0383166000600080516020612e5b8339815191528460405190815260200160405180910390a350600192915050565b600d5460009060c860020a900460ff161561127c57600080fd5b6000821161128957600080fd5b600160a060020a0333166000908152600660205260409020548211156112ae57600080fd5b5033600160a060020a0381166000908152600660205260409020546112d39083612d4c565b600160a060020a0382166000908152600660205260409020556005546112ff908363ffffffff612d4c16565b600555600160a060020a0333167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58360405190815260200160405180910390a25050565b600d5460c860020a900460ff161561135a57600080fd5b600d5460d060020a900460ff16151561137257600080fd5b600f54600160a060020a0316151561138957600080fd5b80151561139557600080fd5b600160a060020a0333166000908152600660205260409020548111156113ba57600080fd5b600160a060020a0333166000908152600660205260409020546113e3908263ffffffff612d4c16565b600160a060020a03331660009081526006602052604090205560055461140f908263ffffffff612d4c16565b600555601054611425908263ffffffff612d5e16565b601055600f54600160a060020a031663753e88e5338360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561147e57600080fd5b6102c65a03f1151561148f57600080fd5b5050600f54600160a060020a03908116915033167f7e5c344a8141a805725cb476f76c6953b842222b967edd1f78ddb6e8b3f397ac8360405190815260200160405180910390a350565b60015433600160a060020a039081169116146114f457600080fd5b600d805491151560a060020a0274ff000000000000000000000000000000000000000019909216919091179055565b6001546000908190819033600160a060020a0390811691161461154557600080fd5b600d5460c860020a900460ff161561155c57600080fd5b6000855111801561156e575083518551145b801561157e575061157e33612d06565b151561158957600080fd5b5060009050805b845181101561162c5760008482815181106115a757fe5b906020019060200201511180156115db57508481815181106115c557fe5b90602001906020020151600160a060020a031615155b80156115f157506115f1858281518110610fa157fe5b15156115fc57600080fd5b61162284828151811061160b57fe5b90602001906020020151839063ffffffff612d5e16565b9150600101611590565b600160a060020a0333166000908152600660205260409020548290101561165257600080fd5b5060005b84518110156110855761168884828151811061166e57fe5b9060200190602002015160066000888581518110610fcf57fe5b6006600087848151811061169857fe5b90602001906020020151600160a060020a031681526020810191909152604001600020558481815181106116c857fe5b90602001906020020151600160a060020a031633600160a060020a0316600080516020612e5b83398151915286848151811061170057fe5b9060200190602002015160405190815260200160405180910390a3600101611656565b600d5460a060020a900460ff1681565b600d5460c860020a900460ff1681565b600f54600160a060020a031681565b600e54600160a060020a031681565b600a6020526000908152604090205460ff1681565b600d54600090819060c860020a900460ff161561179257600080fd5b600d5460a060020a900460ff1615156117aa57600080fd5b50600160a060020a033381166000908152600960209081526040808320938716835292905220548083111561180657600160a060020a03338116600090815260096020908152604080832093881683529290529081205561183d565b611816818463ffffffff612d4c16565b600160a060020a033381166000908152600960209081526040808320938916835292905220555b600160a060020a0333811660008181526009602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a3600191505b5092915050565b60015433600160a060020a039081169116146118c057600080fd5b600d805491151560d060020a027aff000000000000000000000000000000000000000000000000000019909216919091179055565b60015433600160a060020a0390811691161461191057600080fd5b600d80549115157601000000000000000000000000000000000000000000000276ff0000000000000000000000000000000000000000000019909216919091179055565b600160a060020a031660009081526006602052604090205490565b60015433600160a060020a0390811691161461198a57600080fd5b600d805491151560c860020a0279ff0000000000000000000000000000000000000000000000000019909216919091179055565b600d54760100000000000000000000000000000000000000000000900460ff1681565b60015460009033600160a060020a039081169116146119ff57600080fd5b600154600160a060020a03838116911614611a1957600080fd5b600d805477ff00000000000000000000000000000000000000000000001916770100000000000000000000000000000000000000000000001790557fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a1506001919050565b60086020526000908152604090205460ff1681565b600154600160a060020a031681565b611ab4612e31565b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b0b5780601f10610ae057610100808354040283529160200191610b0b565b60015433600160a060020a03908116911614611b3a57600080fd5b600160a060020a0381161515611b4f57600080fd5b600154600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000611bc4612e31565b600d5460009060c860020a900460ff1615611bde57600080fd5b611be785612da7565b1515611bf257600080fd5b600160a060020a03331660009081526006602052604090205484901015611c1857600080fd5b600160a060020a033316600090815260066020526040902054611c41908563ffffffff612d4c16565b600160a060020a033381166000908152600660205260408082209390935590871681522054611c76908563ffffffff612d5e16565b600160a060020a038616600090815260066020526040902055611c9885612d74565b15611d80575083600160a060020a03811663c0ee0b8a3386856040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611d1e578082015183820152602001611d06565b50505050905090810190601f168015611d4b5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1515611d6b57600080fd5b6102c65a03f11515611d7c57600080fd5b5050505b84600160a060020a031633600160a060020a0316600080516020612e5b8339815191528660405190815260200160405180910390a3506001949350505050565b600d54600090819060c860020a900460ff1615611ddc57600080fd5b600d5460a860020a900460ff161515611df457600080fd5b611dfd86612d06565b1515611e0857600080fd5b611e1185612d06565b1515611e1c57600080fd5b600160a060020a0385161515611e3157600080fd5b600160a060020a038616600090815260066020526040902054841115611e5657600080fd5b600160a060020a0380871660009081526009602090815260408083203390941683529290522054841115611e8957600080fd5b600160a060020a038616600090815260066020526040902054611eb2908563ffffffff612d4c16565b600160a060020a038088166000908152600660205260408082209390935590871681522054611ee7908563ffffffff612d5e16565b600160a060020a03808716600090815260066020908152604080832094909455898316825260098152838220339093168252919091522054611f2f908563ffffffff612d4c16565b600160a060020a0380881660009081526009602090815260408083203390941683529290522055611f5f85612d74565b15612047575083600160a060020a03811663c0ee0b8a3386866040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611fe5578082015183820152602001611fcd565b50505050905090810190601f1680156120125780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b151561203257600080fd5b6102c65a03f1151561204357600080fd5b5050505b826040518082805190602001908083835b602083106120775780518252601f199092019160209182019101612058565b6001836020036101000a0380198251168184511617909252505050919091019250604091505051809103902085600160a060020a031633600160a060020a03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c168760405190815260200160405180910390a484600160a060020a031686600160a060020a0316600080516020612e5b8339815191528660405190815260200160405180910390a350600195945050505050565b60015460009033600160a060020a0390811691161461214957600080fd5b600d5460c860020a900460ff161561216057600080fd5b6000821180156121895750600160a060020a038316600090815260066020526040902054829010155b151561219457600080fd5b600160a060020a033316600090815260076020526040902054421180156121d25750600160a060020a03831660009081526007602052604090205442115b15156121dd57600080fd5b600160a060020a0383166000908152600a602052604090205460ff16151560011480156122295750600d547801000000000000000000000000000000000000000000000000900460ff16155b151561223457600080fd5b600160a060020a03831660009081526006602052604090205461225d908363ffffffff612d4c16565b600160a060020a03808516600090815260066020526040808220939093553390911681522054612293908363ffffffff612d5e16565b600160a060020a0333811660008181526006602052604090819020939093559190851690600080516020612e5b8339815191529085905190815260200160405180910390a350600192915050565b600d54600090819060c860020a900460ff16156122fd57600080fd5b600d5460a860020a900460ff16151561231557600080fd5b61231e85612da7565b151561232957600080fd5b600160a060020a0333166000908152600660205260409020548490101561234f57600080fd5b600160a060020a033316600090815260066020526040902054612378908563ffffffff612d4c16565b600160a060020a0333811660009081526006602052604080822093909355908716815220546123ad908563ffffffff612d5e16565b600160a060020a0386166000908152600660205260409020556123cf85612d74565b156124b7575083600160a060020a03811663c0ee0b8a3386866040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561245557808201518382015260200161243d565b50505050905090810190601f1680156124825780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15156124a257600080fd5b6102c65a03f115156124b357600080fd5b5050505b826040518082805190602001908083835b602083106124e75780518252601f1990920191602091820191016124c8565b6001836020036101000a0380198251168184511617909252505050919091019250604091505051809103902085600160a060020a031633600160a060020a03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c168760405190815260200160405180910390a484600160a060020a031633600160a060020a0316600080516020612e5b8339815191528660405190815260200160405180910390a3506001949350505050565b60015460009033600160a060020a039081169116146125b857600080fd5b60008351116125c657600080fd5b5060005b825181101561269c578281815181106125df57fe5b90602001906020020151600160a060020a031615156125fd57600080fd5b816008600085848151811061260e57fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff191691151591909117905582818151811061264c57fe5b90602001906020020151600160a060020a03167fa33e6b076d391e96626483b30e365719f79f1d6594aff6587649ffd6c82ed7fa83604051901515815260200160405180910390a26001016125ca565b505050565b60105481565b60015433600160a060020a039081169116146126c257600080fd5b600160a060020a03919091166000908152600a60205260409020805460ff1916911515919091179055565b600d5460009060c860020a900460ff161561270757600080fd5b600d5460a060020a900460ff16151561271f57600080fd5b600160a060020a03338116600090815260096020908152604080832093871683529290522054612755908363ffffffff612d5e16565b600160a060020a0333811660008181526009602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03811615156127d657600080fd5b600d5460d860020a900460ff16156127ed57600080fd5b600e5433600160a060020a0390811691161461280857600080fd5b600f8054600160a060020a0390921673ffffffffffffffffffffffffffffffffffffffff19909216919091179055600d80547bff000000000000000000000000000000000000000000000000000000191660d860020a179055565b600160a060020a03918216600090815260096020908152604080832093909416825291909152205490565b60015460009033600160a060020a039081169116146128ac57600080fd5b60008351116128ba57600080fd5b5060005b825181101561269c5781600760008584815181106128d857fe5b90602001906020020151600160a060020a031681526020810191909152604001600020541061290657600080fd5b816007600085848151811061291757fe5b90602001906020020151600160a060020a0316815260208101919091526040016000205582818151811061294757fe5b90602001906020020151600160a060020a03167ff7c3865a2047e2fc614fff3af48eef519dfd5243847cbefd615b3a150a9db5b08360405190815260200160405180910390a26001016128be565b60015460009033600160a060020a039081169116146129b357600080fd5b600154600160a060020a038381169116146129cd57600080fd5b50600d805478ff000000000000000000000000000000000000000000000000191678010000000000000000000000000000000000000000000000001790556001919050565b60076020526000908152604090205481565b60015433600160a060020a03908116911614612a3f57600080fd5b600d805491151560d860020a027bff00000000000000000000000000000000000000000000000000000019909216919091179055565b600d5460d060020a900460ff1681565b600d5460009060c860020a900460ff1615612a9f57600080fd5b600d54760100000000000000000000000000000000000000000000900460ff161515612aca57600080fd5b612ad385612da7565b1515612ade57600080fd5b600160a060020a03331660009081526006602052604090205484901015612b0457600080fd5b600160a060020a033316600090815260066020526040902054612b2d908563ffffffff612d4c16565b600160a060020a033381166000908152600660205260408082209390935590871681522054612b62908563ffffffff612d5e16565b600160a060020a038616600090815260066020526040902055612b8485612d74565b156124b75784600160a060020a03166000836040518082805190602001908083835b60208310612bc55780518252601f199092019160209182019101612ba6565b6001836020036101000a0380198251168184511617909252505050919091019250604091505051809103902060e060020a9004903387876040518563ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a03168152602001838152602001828051906020019080838360005b83811015612c56578082015183820152602001612c3e565b50505050905090810190601f168015612c835780820380516001836020036101000a031916815260200191505b50935050505060006040518083038185886187965a03f1935050505015156124b757fe5b600160a060020a0381161515612cbc57600080fd5b600e5433600160a060020a03908116911614612cd757600080fd5b600e805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a03811660009081526007602052604081205442118015612d465750600160a060020a03821660009081526008602052604090205460ff16155b92915050565b600082821115612d5857fe5b50900390565b600082820183811015612d6d57fe5b9392505050565b6000903b1190565b600080831515612d8f576000915061189e565b50828202828482811515612d9f57fe5b0414612d6d57fe5b600160a060020a03331660009081526007602052604081205442118015612de55750600160a060020a03821660009081526007602052604090205442115b8015612e0a5750600160a060020a03331660009081526008602052604090205460ff16155b8015612d46575050600160a060020a031660009081526008602052604090205460ff161590565b60206040519081016040526000815290565b6000808284811515612e5157fe5b049493505050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058206225c99c0817e637457b3ccd59b7e77b3a92cb9ae28dab86bec58c6679360b880029

Swarm Source

bzzr://6225c99c0817e637457b3ccd59b7e77b3a92cb9ae28dab86bec58c6679360b88
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.