ETH Price: $3,303.99 (+1.08%)

Token

Imperial Star Coin (ISC)
 

Overview

Max Total Supply

1,572,755,449.647516 ISC

Holders

533

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
100 ISC

Value
$0.00
0x765f8316e3258b2e2d3a432ab3be59399d4e0fe9
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ISCoin

Compiler Version
v0.4.21+commit.dfe3193c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-05-21
*/

pragma solidity ^ 0.4.21;

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

    /**
    * @dev Multiplies two numbers, throws on overflow.
    */
    function mul(uint256 a, uint256 b) internal pure returns(uint256 c) {
        if (a == 0) {
            return 0;
        }
        c = a * b;
        assert(c / a == b);
        return c;
    }

    /**
    * @dev Integer division of two numbers, truncating the quotient.
    */
    function div(uint256 a, uint256 b) internal pure returns(uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        // uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return a / b;
    }

    /**
    * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns(uint256) {
        assert(b <= a);
        return a - b;
    }

    /**
    * @dev Adds two numbers, throws on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns(uint256 c) {
        c = a + b;
        assert(c >= a);
        return c;
    }
}

/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/179
 */
contract ERC20Basic {
    function totalSupply() public view returns(uint256);
    function balanceOf(address who) public view returns(uint256);
    function transfer(address to, uint256 value) public returns(bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
}

/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is ERC20Basic {
    using SafeMath for uint256;
    
    mapping(address => uint256) balances;
    
    uint256 totalSupply_;
    
    /**
    * @dev total number of tokens in existence
    */
    function totalSupply() public view returns (uint256) {
        return totalSupply_;
    }
    
    /**
    * @dev transfer token for a specified address
    * @param _to The address to transfer to.
    * @param _value The amount to be transferred.
    */
    function transfer(address _to, uint256 _value) public returns (bool) {
        require(_to != address(0));
        require(_value <= balances[msg.sender]);

        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        emit Transfer(msg.sender, _to, _value);
        return true;
    }
    
    /**
    * @dev Gets the balance of the specified address.
    * @param _owner The address to query the the balance of.
    * @return An uint256 representing the amount owned by the passed address.
    */
    function balanceOf(address _owner) public view returns (uint256) {
        return balances[_owner];
    }
}

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
    function allowance(address owner, address spender) public view returns(uint256);
    function transferFrom(address from, address to, uint256 value) public returns(bool);
    function approve(address spender, uint256 value) public returns(bool);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}


/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is ERC20, BasicToken {

    mapping (address => mapping (address => uint256)) internal allowed;


    /**
     * @dev Transfer tokens from one address to another
     * @param _from address The address which you want to send tokens from
     * @param _to address The address which you want to transfer to
     * @param _value uint256 the amount of tokens to be transferred
     */
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
        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);
        emit Transfer(_from, _to, _value);
        return true;
    }

    /**
     * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
     *
     * Beware that changing an allowance with this method brings the risk that someone may use both the old
     * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
     * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     * @param _spender The address which will spend the funds.
     * @param _value The amount of tokens to be spent.
     */
    function approve(address _spender, uint256 _value) public returns (bool) {
        require((_value != 0) && (allowed[msg.sender][_spender] != 0));

        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    /**
     * @dev Function to check the amount of tokens that an owner allowed to a spender.
     * @param _owner address The address which owns the funds.
     * @param _spender address The address which will spend the funds.
     * @return A uint256 specifying the amount of tokens still available for the spender.
     */
    function allowance(address _owner, address _spender) public view returns (uint256) {
        return allowed[_owner][_spender];
    }
}

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
    address public owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);


    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    function Ownable() public {
        owner = msg.sender;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0));
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
}

/**
 * @title Claimable
 * @dev Extension for the Ownable contract, where the ownership needs to be claimed.
 * This allows the new owner to accept the transfer.
 */
contract Claimable is Ownable {
    address public pendingOwner;

    /**
     * @dev Modifier throws if called by any account other than the pendingOwner.
     */
    modifier onlyPendingOwner() {
        require(msg.sender == pendingOwner);
        _;
    }

    /**
     * @dev Allows the current owner to set the pendingOwner address.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        pendingOwner = newOwner;
    }

    /**
     * @dev Allows the pendingOwner address to finalize the transfer.
     */
    function claimOwnership() onlyPendingOwner public {
        emit OwnershipTransferred(owner, pendingOwner);
        owner = pendingOwner;
        pendingOwner = address(0);
    }
}

/**
 * @title Mintable token
 * @dev Simple ERC20 Token example, with mintable token creation
 * @dev Issue: * https://github.com/OpenZeppelin/openzeppelin-solidity/issues/120
 * Based on code by TokenMarketNet: https://github.com/TokenMarketNet/ico/blob/master/contracts/MintableToken.sol
 */
contract MintableToken is StandardToken, Claimable {
    event Mint(address indexed to, uint256 amount);
    event MintFinished();

    bool public mintingFinished = false;


    modifier canMint() {
        require(!mintingFinished);
        _;
    }

    /**
     * @dev Function to mint tokens
     * @param _to The address that will receive the minted tokens.
     * @param _amount The amount of tokens to mint.
     * @return A boolean that indicates if the operation was successful.
     */
    function mint(address _to, uint256 _amount) public onlyOwner canMint returns (bool) {
        return _mint(_to, _amount);
    }

    function _mint(address _to, uint256 _amount) internal canMint returns (bool) {
        totalSupply_ = totalSupply_.add(_amount);
        balances[_to] = balances[_to].add(_amount);
        emit Mint(_to, _amount);
        emit Transfer(address(0), _to, _amount);
    }

    /**
     * @dev Function to stop minting new tokens.
     * @return True if the operation was successful.
     */
    function finishMinting() public onlyOwner canMint returns (bool) {
        mintingFinished = true;
        emit MintFinished();
        return true;
    }
}

/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is Claimable {
    event Pause();
    event Unpause();

    bool public paused = false;


    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     */
    modifier whenNotPaused() {
        require(!paused);
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     */
    modifier whenPaused() {
        require(paused);
        _;
    }

    /**
     * @dev called by the owner to pause, triggers stopped state
     */
    function pause() public onlyOwner whenNotPaused {
        paused = true;
        emit Pause();
    }

    /**
     * @dev called by the owner to unpause, returns to normal state
     */
    function unpause() public onlyOwner whenPaused {
        paused = false;
        emit Unpause();
    }
}

/**
 * @title Pausable token
 * @dev StandardToken modified with pausable transfers.
 **/
contract PausableToken is StandardToken, Pausable {

    function transfer(address _to, uint256 _value) public whenNotPaused returns (bool) {
        return super.transfer(_to, _value);
    }

    function transferFrom(address _from, address _to, uint256 _value) public whenNotPaused returns (bool) {
        return super.transferFrom(_from, _to, _value);
    }

    function approve(address _spender, uint256 _value) public whenNotPaused returns (bool) {
        return super.approve(_spender, _value);
    }
}

/**
 * @title Burnable Token
 * @dev Token that can be irreversibly burned (destroyed).
 */
contract BurnableToken is BasicToken {

    event Burn(address indexed burner, uint256 value);

    /**
     * @dev Burns a specific amount of tokens.
     * @param _value The amount of token to be burned.
     */
    function burn(uint256 _value) public {
        _burn(msg.sender, _value);
    }

    function _burn(address _who, uint256 _value) internal {
        require(_value <= balances[_who]);
        // no need to require value <= totalSupply, since that would imply the
        // sender's balance is greater than the totalSupply, which *should* be an assertion failure

        balances[_who] = balances[_who].sub(_value);
        totalSupply_ = totalSupply_.sub(_value);
        emit Burn(_who, _value);
        emit Transfer(_who, address(0), _value);
    }
}

/**
 * @title SafeERC20
 * @dev Wrappers around ERC20 operations that throw on failure.
 * To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,
 * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
 */
library SafeERC20 {
    function safeTransfer(ERC20Basic token, address to, uint256 value) internal {
        assert(token.transfer(to, value));
    }

    function safeTransferFrom(
        ERC20 token,
        address from,
        address to,
        uint256 value
    )
        internal
    {
        assert(token.transferFrom(from, to, value));
    }

    function safeApprove(ERC20 token, address spender, uint256 value) internal {
        assert(token.approve(spender, value));
    }
}

/**
 * @title TokenTimelock
 * @dev TokenTimelock is a token holder contract that will allow a
 * beneficiary to extract the tokens after a given release time
 */
contract TokenTimelock {
    using SafeERC20 for ERC20Basic;

    // ERC20 basic token contract being held
    ERC20Basic public token;

    // beneficiary of tokens after they are released
    address public beneficiary;

    // timestamp when token release is enabled
    uint256 public releaseTime;

    function TokenTimelock(ERC20Basic _token, address _beneficiary, uint256 _releaseTime) public {
        // solium-disable-next-line security/no-block-members
        require(_releaseTime > block.timestamp);
        token = _token;
        beneficiary = _beneficiary;
        releaseTime = _releaseTime;
    }

    function canRelease() public view returns (bool){
        return block.timestamp >= releaseTime;
    }

    /**
     * @notice Transfers tokens held by timelock to beneficiary.
     */
    function release() public {
        // solium-disable-next-line security/no-block-members
        require(canRelease());

        uint256 amount = token.balanceOf(this);
        require(amount > 0);

        token.safeTransfer(beneficiary, amount);
    }
}

/**
 * @title Crowdsale
 * @dev Crowdsale is a base contract for managing a token crowdsale,
 * allowing investors to purchase tokens with ether. This contract implements
 * such functionality in its most fundamental form and can be extended to provide additional
 * functionality and/or custom behavior.
 * The external interface represents the basic interface for purchasing tokens, and conform
 * the base architecture for crowdsales. They are *not* intended to be modified / overriden.
 * The internal interface conforms the extensible and modifiable surface of crowdsales. Override
 * the methods to add functionality. Consider using 'super' where appropiate to concatenate
 * behavior.
 */
contract Crowdsale{
    using SafeMath for uint256;

    enum TokenLockType { TYPE_NOT_LOCK, TYPE_SEED_INVESTOR, TYPE_PRE_SALE, TYPE_TEAM}
    uint256 internal constant UINT256_MAX = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
    uint8 internal constant SEED_INVESTOR_BONUS_RATE = 50;
    uint256 internal constant MAX_SALECOUNT_PER_ADDRESS = 30;

    // Address where funds are collected
    address public wallet;

    // How many token units a buyer gets per ether. eg: 1 ETH = 5000 ISC
    uint256 public rate = 5000;

    // Amount of wei raised
    uint256 public weiRaised;

    Phase[] internal phases;

    struct Phase {
        uint256 till;
        uint256 bonusRate;
    }

    uint256 public currentPhase = 0;
    mapping (address => uint256 ) public saleCount;

    /**
     * Event for token purchase logging
     * @param purchaser who paid for the tokens
     * @param beneficiary who got the tokens
     * @param value weis paid for purchase
     * @param amount amount of tokens purchased
     */
    event TokenPurchase(address indexed purchaser, address indexed beneficiary, uint256 value, uint256 amount);
    
    /**
     * @param _wallet Address where collected funds will be forwarded to
     */
    function Crowdsale(address _wallet) public {
        require(_wallet != address(0));

        phases.push(Phase({ till: 1527782400, bonusRate: 30 })); // 2018/6/01 00:00 UTC +8
        phases.push(Phase({ till: 1531238400, bonusRate: 20 })); // 2018/07/11 00:00 UTC +8
        phases.push(Phase({ till: 1533916800, bonusRate: 10 })); // 2018/08/11 00:00 UTC +8
        phases.push(Phase({ till: UINT256_MAX, bonusRate: 0 })); // unlimited

        wallet = _wallet;
    }

    // -----------------------------------------
    // Crowdsale external interface
    // -----------------------------------------

    /**
     * @dev fallback function ***DO NOT OVERRIDE***
     */
    function () external payable {
        buyTokens(msg.sender);
    }

    /**
     * @dev low level token purchase ***DO NOT OVERRIDE***
     * @param _beneficiary Address performing the token purchase
     */
    function buyTokens(address _beneficiary) public payable {

        uint256 weiAmount = msg.value;
        _preValidatePurchase(_beneficiary, weiAmount);

        uint256 nowTime = block.timestamp;
        // this loop moves phases and insures correct stage according to date
        while (currentPhase < phases.length && phases[currentPhase].till < nowTime) {
            currentPhase = currentPhase.add(1);
        }

        //check the min ether in pre-sale phase
        if (currentPhase == 0) {
            require(weiAmount >= 1 ether);
        }

        // calculate token amount to be created
        uint256 tokens = _getTokenAmount(weiAmount);
        // calculate token lock type
        TokenLockType lockType = _getTokenLockType(weiAmount);

        if (lockType != TokenLockType.TYPE_NOT_LOCK) {
            require(saleCount[_beneficiary].add(1) <= MAX_SALECOUNT_PER_ADDRESS);
            saleCount[_beneficiary] = saleCount[_beneficiary].add(1);
        }

        // update state
        weiRaised = weiRaised.add(weiAmount);

        _deliverTokens(_beneficiary, tokens, lockType);
        emit TokenPurchase(
            msg.sender,
            _beneficiary,
            weiAmount,
            tokens
        );

        _forwardFunds();
    }

    // -----------------------------------------
    // Internal interface (extensible)
    // -----------------------------------------

    /**
     * @dev Validation of an incoming purchase. Use require statements to revert state 
     *      when conditions are not met. Use super to concatenate validations.
     * @param _beneficiary Address performing the token purchase
     * @param _weiAmount Value in wei involved in the purchase
     */
    function _preValidatePurchase(address _beneficiary, uint256 _weiAmount) internal view {
        require(_beneficiary != address(0));
        require(_weiAmount != 0);
        require(currentPhase < phases.length);
    }

    /**
     * @dev Source of tokens. Override this method to modify the way in which 
     *      the crowdsale ultimately gets and sends its tokens.
     * @param _beneficiary Address performing the token purchase
     * @param _tokenAmount Number of tokens to be emitted
     */
    function _deliverTokens(address _beneficiary, uint256 _tokenAmount, TokenLockType lockType) internal {

    }

    /**
     * @dev Override to extend the way in which ether is converted to tokens.
     * @param _weiAmount Value in wei to be converted into tokens
     * @return Number of tokens that can be purchased with the specified _weiAmount
     */
    function _getTokenAmount(uint256 _weiAmount) internal view returns (uint256) {
        uint256 tokens = _weiAmount.mul(rate);
        uint256 bonusRate = 0;
        if (_weiAmount >= 1000 ether) {
            bonusRate = SEED_INVESTOR_BONUS_RATE;
        } else {
            bonusRate = phases[currentPhase].bonusRate;
        }
        uint256 bonus = tokens.mul(bonusRate).div(uint256(100));        
        return tokens.add(bonus);
    }

    /**
     * @dev get the token lock type
     * @param _weiAmount Value in wei to be converted into tokens
     * @return token lock type
     */
    function _getTokenLockType(uint256 _weiAmount) internal view returns (TokenLockType) {
        TokenLockType lockType = TokenLockType.TYPE_NOT_LOCK;
        if (_weiAmount >= 1000 ether) {
            lockType = TokenLockType.TYPE_SEED_INVESTOR;
        } else if (currentPhase == 0 ) {
            lockType = TokenLockType.TYPE_PRE_SALE;
        }
        return lockType;
    }

    /**
     * @dev Determines how ETH is stored/forwarded on purchases.
     */
    function _forwardFunds() internal {
        wallet.transfer(msg.value);
    }
}

contract StopableCrowdsale is Crowdsale, Claimable{

    bool public crowdsaleStopped = false;
    /**
     * @dev Reverts if not in crowdsale time range.
     */
    modifier onlyNotStopped {
        // solium-disable-next-line security/no-block-members
        require(!crowdsaleStopped);
        _;
    }

    /**
     * @dev Extend parent behavior requiring to be within contributing period
     * @param _beneficiary Token purchaser
     * @param _weiAmount Amount of wei contributed
     */
    function _preValidatePurchase(address _beneficiary, uint256 _weiAmount) internal view onlyNotStopped {
        super._preValidatePurchase(_beneficiary, _weiAmount);
    }

    function stopCrowdsale() public onlyOwner {
        require(!crowdsaleStopped);
        crowdsaleStopped = true;
    }

    function startCrowdsale() public onlyOwner {
        require(crowdsaleStopped);
        crowdsaleStopped = false;
    }
}


/**
 * @title ISCoin
 * @dev IS Coin contract
 */
contract ISCoin is PausableToken, MintableToken, BurnableToken, StopableCrowdsale {
    using SafeMath for uint256;

    string public name = "Imperial Star Coin";
    string public symbol = "ISC";
    uint8 public decimals = 18;

    mapping (address => address[] ) public balancesLocked;

    function ISCoin(address _wallet) public Crowdsale(_wallet) {}


    function setRate(uint256 _rate) public onlyOwner onlyNotStopped {
        require(_rate > 0);
        rate = _rate;
    }

    function setWallet(address _wallet) public onlyOwner onlyNotStopped {
        require(_wallet != address(0));
        wallet = _wallet;
    }    

    /**
     * @dev mint timelocked tokens for owner use
    */
    function mintTimelocked(address _to, uint256 _amount, uint256 _releaseTime) 
    public onlyOwner canMint returns (TokenTimelock) {
        return _mintTimelocked(_to, _amount, _releaseTime);
    }

    /**
     * @dev Gets the locked balance of the specified address.
     * @param _owner The address to query the locked balance of.
     * @return An uint256 representing the amount owned by the passed address.
     */
    function balanceOfLocked(address _owner) public view returns (uint256) {
        address[] memory timelockAddrs = balancesLocked[_owner];

        uint256 totalLockedBalance = 0;
        for (uint i = 0; i < timelockAddrs.length; i++) {
            totalLockedBalance = totalLockedBalance.add(balances[timelockAddrs[i]]);
        }
        
        return totalLockedBalance;
    }

    function releaseToken(address _owner) public {
        address[] memory timelockAddrs = balancesLocked[_owner];
        for (uint i = 0; i < timelockAddrs.length; i++) {
            TokenTimelock timelock = TokenTimelock(timelockAddrs[i]);
            if (timelock.canRelease() && balances[timelock] > 0) {
                timelock.release();
            }
        }
    }

    /**
     * @dev mint timelocked tokens
    */
    function _mintTimelocked(address _to, uint256 _amount, uint256 _releaseTime)
    internal canMint returns (TokenTimelock) {
        TokenTimelock timelock = new TokenTimelock(this, _to, _releaseTime);
        balancesLocked[_to].push(timelock);
        _mint(timelock, _amount);
        return timelock;
    }

    /**
     * @dev Source of tokens. Override this method to modify the way in which 
     *      the crowdsale ultimately gets and sends its tokens.
     * @param _beneficiary Address performing the token purchase
     * @param _tokenAmount Number of tokens to be emitted
     */
    function _deliverTokens(address _beneficiary, uint256 _tokenAmount, TokenLockType lockType) internal {
        if (lockType == TokenLockType.TYPE_NOT_LOCK) {
            _mint(_beneficiary, _tokenAmount);
        } else if (lockType == TokenLockType.TYPE_SEED_INVESTOR) {
            //seed insvestor will be locked for 6 months and then unlocked at one time
            _mintTimelocked(_beneficiary, _tokenAmount, now + 6 * 30 days);
        } else if (lockType == TokenLockType.TYPE_PRE_SALE) {
            //Pre-sale will be locked for 6 months and unlocked in 3 times(every 2 months)
            uint256 amount1 = _tokenAmount.mul(30).div(100);    //first unlock 30%
            uint256 amount2 = _tokenAmount.mul(30).div(100);    //second unlock 30%
            uint256 amount3 = _tokenAmount.sub(amount1).sub(amount2);   //third unlock 50%
            uint256 releaseTime1 = now + 2 * 30 days;
            uint256 releaseTime2 = now + 4 * 30 days;
            uint256 releaseTime3 = now + 6 * 30 days;
            _mintTimelocked(_beneficiary, amount1, releaseTime1);
            _mintTimelocked(_beneficiary, amount2, releaseTime2);
            _mintTimelocked(_beneficiary, amount3, releaseTime3);
        }
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"currentPhase","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mintingFinished","outputs":[{"name":"","type":"bool"}],"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":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"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":"rate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_rate","type":"uint256"}],"name":"setRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"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":"claimOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"stopCrowdsale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"wallet","outputs":[{"name":"","type":"address"}],"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":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finishMinting","outputs":[{"name":"","type":"bool"}],"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":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"startCrowdsale","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":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_releaseTime","type":"uint256"}],"name":"mintTimelocked","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"crowdsaleStopped","outputs":[{"name":"","type":"bool"}],"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":"_wallet","type":"address"}],"name":"setWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"pendingOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"saleCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"releaseToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOfLocked","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"balancesLocked","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_wallet","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"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":[],"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":"purchaser","type":"address"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenPurchase","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"}]

606060405261138860045560006007556000600a60146101000a81548160ff0219169083151502179055506000600a60156101000a81548160ff0219169083151502179055506000600a60166101000a81548160ff0219169083151502179055506040805190810160405280601281526020017f496d70657269616c205374617220436f696e0000000000000000000000000000815250600b9080519060200190620000ad92919062000395565b506040805190810160405280600381526020017f4953430000000000000000000000000000000000000000000000000000000000815250600c9080519060200190620000fb92919062000395565b506012600d60006101000a81548160ff021916908360ff16021790555034156200012457600080fd5b6040516020806200375b8339810160405280805190602001909190505080600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200017f57600080fd5b600680548060010182816200019591906200041c565b916000526020600020906002020160006040805190810160405280635b101c008152602001601e8152509091909150600082015181600001556020820151816001015550505060068054806001018281620001f191906200041c565b916000526020600020906002020160006040805190810160405280635b44d8008152602001601481525090919091506000820151816000015560208201518160010155505050600680548060010182816200024d91906200041c565b916000526020600020906002020160006040805190810160405280635b6db6808152602001600a8152509091909150600082015181600001556020820151816001015550505060068054806001018281620002a991906200041c565b9160005260206000209060020201600060408051908101604052807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff815260200160008152509091909150600082015181600001556020820151816001015550505080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505033600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620004ab565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003d857805160ff191683800117855562000409565b8280016001018555821562000409579182015b8281111562000408578251825591602001919060010190620003eb565b5b50905062000418919062000451565b5090565b8154818355818115116200044c576002028160020283600052602060002091820191016200044b919062000479565b5b505050565b6200047691905b808211156200047257600081600090555060010162000458565b5090565b90565b620004a891905b80821115620004a45760008082016000905560018201600090555060020162000480565b5090565b90565b6132a080620004bb6000396000f3006060604052600436106101b7576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063055ad42e146101c257806305d2035b146101eb57806306fdde0314610218578063095ea7b3146102a657806318160ddd1461030057806323b872dd146103295780632c4e722e146103a2578063313ce567146103cb57806334fcf437146103fa5780633f4ba83a1461041d5780634042b66f1461043257806340c10f191461045b57806342966c68146104b55780634e71e0c8146104d8578063507d5954146104ed578063521eb273146105025780635c975abb1461055757806370a08231146105845780637d64bcb4146105d15780638456cb59146105fe5780638da5cb5b1461061357806395d89b4114610668578063a39953b2146106f6578063a9059cbb1461070b578063c14a3b8c14610765578063c302a45b146107f0578063dd62ed3e1461081d578063deaa59df14610889578063e30c3978146108c2578063e3e699bb14610917578063e545f94114610964578063e960bb481461099d578063ec8ac4d8146109ea578063f2fde38b14610a18578063fa9ec13a14610a51575b6101c033610ad3565b005b34156101cd57600080fd5b6101d5610d3b565b6040518082815260200191505060405180910390f35b34156101f657600080fd5b6101fe610d41565b604051808215151515815260200191505060405180910390f35b341561022357600080fd5b61022b610d54565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561026b578082015181840152602081019050610250565b50505050905090810190601f1680156102985780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102b157600080fd5b6102e6600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610df2565b604051808215151515815260200191505060405180910390f35b341561030b57600080fd5b610313610e22565b6040518082815260200191505060405180910390f35b341561033457600080fd5b610388600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610e2c565b604051808215151515815260200191505060405180910390f35b34156103ad57600080fd5b6103b5610e5e565b6040518082815260200191505060405180910390f35b34156103d657600080fd5b6103de610e64565b604051808260ff1660ff16815260200191505060405180910390f35b341561040557600080fd5b61041b6004808035906020019091905050610e77565b005b341561042857600080fd5b610430610f08565b005b341561043d57600080fd5b610445610fc8565b6040518082815260200191505060405180910390f35b341561046657600080fd5b61049b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610fce565b604051808215151515815260200191505060405180910390f35b34156104c057600080fd5b6104d6600480803590602001909190505061105a565b005b34156104e357600080fd5b6104eb611067565b005b34156104f857600080fd5b610500611208565b005b341561050d57600080fd5b61051561129d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561056257600080fd5b61056a6112c3565b604051808215151515815260200191505060405180910390f35b341561058f57600080fd5b6105bb600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506112d6565b6040518082815260200191505060405180910390f35b34156105dc57600080fd5b6105e461131e565b604051808215151515815260200191505060405180910390f35b341561060957600080fd5b6106116113e6565b005b341561061e57600080fd5b6106266114a7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561067357600080fd5b61067b6114cd565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106bb5780820151818401526020810190506106a0565b50505050905090810190601f1680156106e85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561070157600080fd5b61070961156b565b005b341561071657600080fd5b61074b600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506115ff565b604051808215151515815260200191505060405180910390f35b341561077057600080fd5b6107ae600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001909190505061162f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156107fb57600080fd5b6108036116bd565b604051808215151515815260200191505060405180910390f35b341561082857600080fd5b610873600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506116d0565b6040518082815260200191505060405180910390f35b341561089457600080fd5b6108c0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611757565b005b34156108cd57600080fd5b6108d561184f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561092257600080fd5b61094e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611875565b6040518082815260200191505060405180910390f35b341561096f57600080fd5b61099b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061188d565b005b34156109a857600080fd5b6109d4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611ad6565b6040518082815260200191505060405180910390f35b610a16600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ad3565b005b3415610a2357600080fd5b610a4f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611c3d565b005b3415610a5c57600080fd5b610a91600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611cdd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600080600080349350610ae68585611d2b565b4292505b600680549050600754108015610b215750826006600754815481101515610b0d57fe5b906000526020600020906002020160000154105b15610b4757610b3c6001600754611d5590919063ffffffff16565b600781905550610aea565b60006007541415610b6a57670de0b6b3a76400008410151515610b6957600080fd5b5b610b7384611d71565b9150610b7e84611e1b565b905060006003811115610b8d57fe5b816003811115610b9957fe5b141515610c9957601e610bf56001600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5590919063ffffffff16565b11151515610c0257600080fd5b610c556001600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5590919063ffffffff16565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610cae84600554611d5590919063ffffffff16565b600581905550610cbf858383611e57565b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad188685604051808381526020018281526020019250505060405180910390a3610d34611fa6565b5050505050565b60075481565b600a60159054906101000a900460ff1681565b600b8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dea5780601f10610dbf57610100808354040283529160200191610dea565b820191906000526020600020905b815481529060010190602001808311610dcd57829003601f168201915b505050505081565b6000600a60149054906101000a900460ff16151515610e1057600080fd5b610e1a838361200a565b905092915050565b6000600154905090565b6000600a60149054906101000a900460ff16151515610e4a57600080fd5b610e55848484612194565b90509392505050565b60045481565b600d60009054906101000a900460ff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ed357600080fd5b600a60169054906101000a900460ff16151515610eef57600080fd5b600081111515610efe57600080fd5b8060048190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f6457600080fd5b600a60149054906101000a900460ff161515610f7f57600080fd5b6000600a60146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60055481565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561102c57600080fd5b600a60159054906101000a900460ff1615151561104857600080fd5b611052838361254e565b905092915050565b61106433826126d4565b50565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110c357600080fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561126457600080fd5b600a60169054906101000a900460ff1615151561128057600080fd5b6001600a60166101000a81548160ff021916908315150217905550565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60149054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561137c57600080fd5b600a60159054906101000a900460ff1615151561139857600080fd5b6001600a60156101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561144257600080fd5b600a60149054906101000a900460ff1615151561145e57600080fd5b6001600a60146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115635780601f1061153857610100808354040283529160200191611563565b820191906000526020600020905b81548152906001019060200180831161154657829003601f168201915b505050505081565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115c757600080fd5b600a60169054906101000a900460ff1615156115e257600080fd5b6000600a60166101000a81548160ff021916908315150217905550565b6000600a60149054906101000a900460ff1615151561161d57600080fd5b6116278383612887565b905092915050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561168d57600080fd5b600a60159054906101000a900460ff161515156116a957600080fd5b6116b4848484612aa6565b90509392505050565b600a60169054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117b357600080fd5b600a60169054906101000a900460ff161515156117cf57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561180b57600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60086020528060005260406000206000915090505481565b611895612cda565b600080600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561195757602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161190d575b50505050509250600091505b8251821015611ad057828281518110151561197a57fe5b9060200190602002015190508073ffffffffffffffffffffffffffffffffffffffff16633705f69e6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156119e957600080fd5b5af115156119f657600080fd5b505050604051805190508015611a4a575060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15611ac3578073ffffffffffffffffffffffffffffffffffffffff166386d1a69f6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1515611ab257600080fd5b5af11515611abf57600080fd5b5050505b8180600101925050611963565b50505050565b6000611ae0612cda565b600080600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015611ba257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611b58575b5050505050925060009150600090505b8251811015611c3257611c236000808584815181101515611bcf57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611d5590919063ffffffff16565b91508080600101915050611bb2565b819350505050919050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c9957600080fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60205281600052604060002081815481101515611cf857fe5b90600052602060002090016000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60169054906101000a900460ff16151515611d4757600080fd5b611d518282612c0e565b5050565b60008183019050828110151515611d6857fe5b80905092915050565b600080600080611d8c60045486612c7390919063ffffffff16565b925060009150683635c9adc5dea0000085101515611db057603260ff169150611dd6565b6006600754815481101515611dc157fe5b90600052602060002090600202016001015491505b611dfc6064611dee8486612c7390919063ffffffff16565b612cab90919063ffffffff16565b9050611e118184611d5590919063ffffffff16565b9350505050919050565b60008060009050683635c9adc5dea0000083101515611e3d5760019050611e4e565b60006007541415611e4d57600290505b5b80915050919050565b60008060008060008060006003811115611e6d57fe5b876003811115611e7957fe5b1415611e8f57611e89898961254e565b50611f9b565b60016003811115611e9c57fe5b876003811115611ea857fe5b1415611ec457611ebe898962ed4e004201612aa6565b50611f9a565b60026003811115611ed157fe5b876003811115611edd57fe5b1415611f9957611f0a6064611efc601e8b612c7390919063ffffffff16565b612cab90919063ffffffff16565b9550611f336064611f25601e8b612c7390919063ffffffff16565b612cab90919063ffffffff16565b9450611f5a85611f4c888b612cc190919063ffffffff16565b612cc190919063ffffffff16565b9350624f1a0042019250629e34004201915062ed4e0042019050611f7f898785612aa6565b50611f8b898684612aa6565b50611f97898583612aa6565b505b5b5b505050505050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050151561200857600080fd5b565b600080821415801561209957506000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b15156120a457600080fd5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156121d157600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561221e57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156122a957600080fd5b6122fa826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cc190919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061238d826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5590919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061245e82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cc190919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000600a60159054906101000a900460ff1615151561256c57600080fd5b61258182600154611d5590919063ffffffff16565b6001819055506125d8826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5590919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a392915050565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561272157600080fd5b612772816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cc190919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127c981600154612cc190919063ffffffff16565b6001819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156128c457600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561291157600080fd5b612962826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cc190919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129f5826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5590919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080600a60159054906101000a900460ff16151515612ac557600080fd5b308584612ad0612cee565b808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051809103906000f0801515612b5657600080fd5b9050600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806001018281612ba99190612cfe565b9160005260206000209001600083909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050612c02818561254e565b50809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612c4a57600080fd5b60008114151515612c5a57600080fd5b600680549050600754101515612c6f57600080fd5b5050565b600080831415612c865760009050612ca5565b8183029050818382811515612c9757fe5b04141515612ca157fe5b8090505b92915050565b60008183811515612cb857fe5b04905092915050565b6000828211151515612ccf57fe5b818303905092915050565b602060405190810160405280600081525090565b60405161052580612d5083390190565b815481835581811511612d2557818360005260206000209182019101612d249190612d2a565b5b505050565b612d4c91905b80821115612d48576000816000905550600101612d30565b5090565b9056006060604052341561000f57600080fd5b60405160608061052583398101604052808051906020019091908051906020019091908051906020019091905050428111151561004b57600080fd5b826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600281905550505050610440806100e56000396000f30060606040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633705f69e1461007257806338af3eed1461009f57806386d1a69f146100f4578063b91d400114610109578063fc0c546a14610132575b600080fd5b341561007d57600080fd5b610085610187565b604051808215151515815260200191505060405180910390f35b34156100aa57600080fd5b6100b2610194565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156100ff57600080fd5b6101076101ba565b005b341561011457600080fd5b61011c610323565b6040518082815260200191505060405180910390f35b341561013d57600080fd5b610145610329565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000600254421015905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006101c4610187565b15156101cf57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561028a57600080fd5b5af1151561029757600080fd5b5050506040518051905090506000811115156102b257600080fd5b610320600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661034e9092919063ffffffff16565b50565b60025481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156103f057600080fd5b5af115156103fd57600080fd5b50505060405180519050151561040f57fe5b5050505600a165627a7a72305820fee8e77cc2fa1fb8af0ffb9e1f0abc5f4d698aa9dfe2cd345e29e90f99e3af8d0029a165627a7a72305820958a68a5be16baaf45fc9c4be59b800e5c5474c5a0971a3a4d1f110aa11f427d002900000000000000000000000046d2459a155ae7b2e5bf57d58dc01e65316d3af0

Deployed Bytecode

0x6060604052600436106101b7576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063055ad42e146101c257806305d2035b146101eb57806306fdde0314610218578063095ea7b3146102a657806318160ddd1461030057806323b872dd146103295780632c4e722e146103a2578063313ce567146103cb57806334fcf437146103fa5780633f4ba83a1461041d5780634042b66f1461043257806340c10f191461045b57806342966c68146104b55780634e71e0c8146104d8578063507d5954146104ed578063521eb273146105025780635c975abb1461055757806370a08231146105845780637d64bcb4146105d15780638456cb59146105fe5780638da5cb5b1461061357806395d89b4114610668578063a39953b2146106f6578063a9059cbb1461070b578063c14a3b8c14610765578063c302a45b146107f0578063dd62ed3e1461081d578063deaa59df14610889578063e30c3978146108c2578063e3e699bb14610917578063e545f94114610964578063e960bb481461099d578063ec8ac4d8146109ea578063f2fde38b14610a18578063fa9ec13a14610a51575b6101c033610ad3565b005b34156101cd57600080fd5b6101d5610d3b565b6040518082815260200191505060405180910390f35b34156101f657600080fd5b6101fe610d41565b604051808215151515815260200191505060405180910390f35b341561022357600080fd5b61022b610d54565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561026b578082015181840152602081019050610250565b50505050905090810190601f1680156102985780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102b157600080fd5b6102e6600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610df2565b604051808215151515815260200191505060405180910390f35b341561030b57600080fd5b610313610e22565b6040518082815260200191505060405180910390f35b341561033457600080fd5b610388600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610e2c565b604051808215151515815260200191505060405180910390f35b34156103ad57600080fd5b6103b5610e5e565b6040518082815260200191505060405180910390f35b34156103d657600080fd5b6103de610e64565b604051808260ff1660ff16815260200191505060405180910390f35b341561040557600080fd5b61041b6004808035906020019091905050610e77565b005b341561042857600080fd5b610430610f08565b005b341561043d57600080fd5b610445610fc8565b6040518082815260200191505060405180910390f35b341561046657600080fd5b61049b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610fce565b604051808215151515815260200191505060405180910390f35b34156104c057600080fd5b6104d6600480803590602001909190505061105a565b005b34156104e357600080fd5b6104eb611067565b005b34156104f857600080fd5b610500611208565b005b341561050d57600080fd5b61051561129d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561056257600080fd5b61056a6112c3565b604051808215151515815260200191505060405180910390f35b341561058f57600080fd5b6105bb600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506112d6565b6040518082815260200191505060405180910390f35b34156105dc57600080fd5b6105e461131e565b604051808215151515815260200191505060405180910390f35b341561060957600080fd5b6106116113e6565b005b341561061e57600080fd5b6106266114a7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561067357600080fd5b61067b6114cd565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106bb5780820151818401526020810190506106a0565b50505050905090810190601f1680156106e85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561070157600080fd5b61070961156b565b005b341561071657600080fd5b61074b600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506115ff565b604051808215151515815260200191505060405180910390f35b341561077057600080fd5b6107ae600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001909190505061162f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156107fb57600080fd5b6108036116bd565b604051808215151515815260200191505060405180910390f35b341561082857600080fd5b610873600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506116d0565b6040518082815260200191505060405180910390f35b341561089457600080fd5b6108c0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611757565b005b34156108cd57600080fd5b6108d561184f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561092257600080fd5b61094e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611875565b6040518082815260200191505060405180910390f35b341561096f57600080fd5b61099b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061188d565b005b34156109a857600080fd5b6109d4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611ad6565b6040518082815260200191505060405180910390f35b610a16600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ad3565b005b3415610a2357600080fd5b610a4f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611c3d565b005b3415610a5c57600080fd5b610a91600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611cdd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600080600080349350610ae68585611d2b565b4292505b600680549050600754108015610b215750826006600754815481101515610b0d57fe5b906000526020600020906002020160000154105b15610b4757610b3c6001600754611d5590919063ffffffff16565b600781905550610aea565b60006007541415610b6a57670de0b6b3a76400008410151515610b6957600080fd5b5b610b7384611d71565b9150610b7e84611e1b565b905060006003811115610b8d57fe5b816003811115610b9957fe5b141515610c9957601e610bf56001600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5590919063ffffffff16565b11151515610c0257600080fd5b610c556001600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5590919063ffffffff16565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610cae84600554611d5590919063ffffffff16565b600581905550610cbf858383611e57565b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad188685604051808381526020018281526020019250505060405180910390a3610d34611fa6565b5050505050565b60075481565b600a60159054906101000a900460ff1681565b600b8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dea5780601f10610dbf57610100808354040283529160200191610dea565b820191906000526020600020905b815481529060010190602001808311610dcd57829003601f168201915b505050505081565b6000600a60149054906101000a900460ff16151515610e1057600080fd5b610e1a838361200a565b905092915050565b6000600154905090565b6000600a60149054906101000a900460ff16151515610e4a57600080fd5b610e55848484612194565b90509392505050565b60045481565b600d60009054906101000a900460ff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ed357600080fd5b600a60169054906101000a900460ff16151515610eef57600080fd5b600081111515610efe57600080fd5b8060048190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f6457600080fd5b600a60149054906101000a900460ff161515610f7f57600080fd5b6000600a60146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60055481565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561102c57600080fd5b600a60159054906101000a900460ff1615151561104857600080fd5b611052838361254e565b905092915050565b61106433826126d4565b50565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110c357600080fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561126457600080fd5b600a60169054906101000a900460ff1615151561128057600080fd5b6001600a60166101000a81548160ff021916908315150217905550565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60149054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561137c57600080fd5b600a60159054906101000a900460ff1615151561139857600080fd5b6001600a60156101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561144257600080fd5b600a60149054906101000a900460ff1615151561145e57600080fd5b6001600a60146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115635780601f1061153857610100808354040283529160200191611563565b820191906000526020600020905b81548152906001019060200180831161154657829003601f168201915b505050505081565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115c757600080fd5b600a60169054906101000a900460ff1615156115e257600080fd5b6000600a60166101000a81548160ff021916908315150217905550565b6000600a60149054906101000a900460ff1615151561161d57600080fd5b6116278383612887565b905092915050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561168d57600080fd5b600a60159054906101000a900460ff161515156116a957600080fd5b6116b4848484612aa6565b90509392505050565b600a60169054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117b357600080fd5b600a60169054906101000a900460ff161515156117cf57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561180b57600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60086020528060005260406000206000915090505481565b611895612cda565b600080600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561195757602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161190d575b50505050509250600091505b8251821015611ad057828281518110151561197a57fe5b9060200190602002015190508073ffffffffffffffffffffffffffffffffffffffff16633705f69e6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156119e957600080fd5b5af115156119f657600080fd5b505050604051805190508015611a4a575060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15611ac3578073ffffffffffffffffffffffffffffffffffffffff166386d1a69f6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1515611ab257600080fd5b5af11515611abf57600080fd5b5050505b8180600101925050611963565b50505050565b6000611ae0612cda565b600080600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015611ba257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611b58575b5050505050925060009150600090505b8251811015611c3257611c236000808584815181101515611bcf57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611d5590919063ffffffff16565b91508080600101915050611bb2565b819350505050919050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c9957600080fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60205281600052604060002081815481101515611cf857fe5b90600052602060002090016000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60169054906101000a900460ff16151515611d4757600080fd5b611d518282612c0e565b5050565b60008183019050828110151515611d6857fe5b80905092915050565b600080600080611d8c60045486612c7390919063ffffffff16565b925060009150683635c9adc5dea0000085101515611db057603260ff169150611dd6565b6006600754815481101515611dc157fe5b90600052602060002090600202016001015491505b611dfc6064611dee8486612c7390919063ffffffff16565b612cab90919063ffffffff16565b9050611e118184611d5590919063ffffffff16565b9350505050919050565b60008060009050683635c9adc5dea0000083101515611e3d5760019050611e4e565b60006007541415611e4d57600290505b5b80915050919050565b60008060008060008060006003811115611e6d57fe5b876003811115611e7957fe5b1415611e8f57611e89898961254e565b50611f9b565b60016003811115611e9c57fe5b876003811115611ea857fe5b1415611ec457611ebe898962ed4e004201612aa6565b50611f9a565b60026003811115611ed157fe5b876003811115611edd57fe5b1415611f9957611f0a6064611efc601e8b612c7390919063ffffffff16565b612cab90919063ffffffff16565b9550611f336064611f25601e8b612c7390919063ffffffff16565b612cab90919063ffffffff16565b9450611f5a85611f4c888b612cc190919063ffffffff16565b612cc190919063ffffffff16565b9350624f1a0042019250629e34004201915062ed4e0042019050611f7f898785612aa6565b50611f8b898684612aa6565b50611f97898583612aa6565b505b5b5b505050505050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050151561200857600080fd5b565b600080821415801561209957506000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b15156120a457600080fd5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156121d157600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561221e57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156122a957600080fd5b6122fa826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cc190919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061238d826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5590919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061245e82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cc190919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000600a60159054906101000a900460ff1615151561256c57600080fd5b61258182600154611d5590919063ffffffff16565b6001819055506125d8826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5590919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a392915050565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561272157600080fd5b612772816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cc190919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127c981600154612cc190919063ffffffff16565b6001819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156128c457600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561291157600080fd5b612962826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cc190919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129f5826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5590919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080600a60159054906101000a900460ff16151515612ac557600080fd5b308584612ad0612cee565b808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051809103906000f0801515612b5657600080fd5b9050600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806001018281612ba99190612cfe565b9160005260206000209001600083909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050612c02818561254e565b50809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612c4a57600080fd5b60008114151515612c5a57600080fd5b600680549050600754101515612c6f57600080fd5b5050565b600080831415612c865760009050612ca5565b8183029050818382811515612c9757fe5b04141515612ca157fe5b8090505b92915050565b60008183811515612cb857fe5b04905092915050565b6000828211151515612ccf57fe5b818303905092915050565b602060405190810160405280600081525090565b60405161052580612d5083390190565b815481835581811511612d2557818360005260206000209182019101612d249190612d2a565b5b505050565b612d4c91905b80821115612d48576000816000905550600101612d30565b5090565b9056006060604052341561000f57600080fd5b60405160608061052583398101604052808051906020019091908051906020019091908051906020019091905050428111151561004b57600080fd5b826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600281905550505050610440806100e56000396000f30060606040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633705f69e1461007257806338af3eed1461009f57806386d1a69f146100f4578063b91d400114610109578063fc0c546a14610132575b600080fd5b341561007d57600080fd5b610085610187565b604051808215151515815260200191505060405180910390f35b34156100aa57600080fd5b6100b2610194565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156100ff57600080fd5b6101076101ba565b005b341561011457600080fd5b61011c610323565b6040518082815260200191505060405180910390f35b341561013d57600080fd5b610145610329565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000600254421015905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006101c4610187565b15156101cf57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561028a57600080fd5b5af1151561029757600080fd5b5050506040518051905090506000811115156102b257600080fd5b610320600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661034e9092919063ffffffff16565b50565b60025481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156103f057600080fd5b5af115156103fd57600080fd5b50505060405180519050151561040f57fe5b5050505600a165627a7a72305820fee8e77cc2fa1fb8af0ffb9e1f0abc5f4d698aa9dfe2cd345e29e90f99e3af8d0029a165627a7a72305820958a68a5be16baaf45fc9c4be59b800e5c5474c5a0971a3a4d1f110aa11f427d0029

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

00000000000000000000000046d2459a155ae7b2e5bf57d58dc01e65316d3af0

-----Decoded View---------------
Arg [0] : _wallet (address): 0x46d2459A155Ae7b2E5BF57D58DC01E65316d3AF0

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000046d2459a155ae7b2e5bf57d58dc01e65316d3af0


Swarm Source

bzzr://958a68a5be16baaf45fc9c4be59b800e5c5474c5a0971a3a4d1f110aa11f427d
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.