ETH Price: $2,962.04 (+1.05%)
Gas: 1 Gwei

Token

LOOiX (LOOIX)
 

Overview

Max Total Supply

36,698,291,126 LOOIX

Holders

53,995

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,000 LOOIX

Value
$0.00
0xD782B0e1a17836d23a00794b263E53a0422A8286
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Bringing blockchain technology to lifestyle.

ICO Information

ICO Start Date : Dec 01, 2018 
ICO End Date : Jun 30, 2019
ICO Price  : $0.23 | 0.00015 ETH

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
LOOiXToken

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-10-29
*/

pragma solidity 0.4.25;


/******************************************/
/*       Owned starts here           */
/******************************************/

contract owned 
{
    address public owner;
    address public newOwner;

    event OwnershipTransferred(address indexed _from, address indexed _to);

    constructor() public
    {
        owner = msg.sender;
    }

    modifier onlyOwner
    {
        require(msg.sender == owner, "Sender not authorized.");
        _;
    }

    function transferOwnership(address _newOwner) public onlyOwner
    {
        require(_newOwner != address(0), "0x00 address not allowed.");
        newOwner = _newOwner;
    }

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


/******************************************/
/*       TokenERC20 starts here           */
/******************************************/

contract TokenERC20
{

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

    mapping(address => uint256) public balanceOf;
    mapping(address => mapping(address => uint256)) public allowance;

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
   
    constructor() public
    {
        decimals = 18;                       // decimals  
        totalSupply = 0;                     // initialSupply
        name = "LOOiX";                      // Set the name for display purposes
        symbol = "LOOIX";                    // Set the symbol for display purposes
    }

    /**
    * @dev Transfer token for a specified addresses
    * @param _from The address to transfer from.
    * @param _to The address to transfer to.
    * @param _value The amount to be transferred.
    */
    function _transfer(address _from, address _to, uint256 _value) internal
    {
        require(_value > 0, "Transferred value has to be grater than 0."); 
        require(_to != address(0), "0x00 address not allowed.");                      // Prevent transfer to 0x0 address.
        require(balanceOf[_from] >= _value, "Not enough funds on sender address.");   // Check if the sender has enough
        require(balanceOf[_to] + _value > balanceOf[_to], "Overflow protection.");    // Check for overflows
        balanceOf[_from] -= _value;                                                   // Subtract from the sender
        balanceOf[_to] += _value;                                                     // Add the same to the recipient
        emit Transfer(_from, _to, _value);
    }

    /**
    * @dev Transfer tokens
    * @param _to The address of the recipient
    * @param _value the amount to send
    */
    function transfer(address _to, uint256 _value) public returns(bool success)
    {
        _transfer(msg.sender, _to, _value);
        return true;
    }

    /**
    * @dev Transfer tokens from other address
    * @param _from The address of the sender
    * @param _to The address of the recipient
    * @param _value the amount to send
    */
    function transferFrom(address _from, address _to, uint256 _value) public returns(bool success)
    {
        require(_value <= allowance[_from][msg.sender], "Funds not approved.");     // Check allowance
        allowance[_from][msg.sender] -= _value;
        _transfer(_from, _to, _value);
        return true;
    }

    /**
    * @dev Set allowance for other address
    * @param _spender The address authorized to spend
    * @param _value the max amount they can spend
    */
    function approve(address _spender, uint256 _value) public returns(bool success)
    {
        require(_value == 0 || allowance[msg.sender][_spender] == 0, "Approved funds or value are not 0.");
        allowance[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

}


/******************************************/
/*       TokenStaking starts here         */
/******************************************/

contract TokenStaking
{

    uint256 internal stakeID;
    uint256 internal threeMonthTime;
    uint256 internal threeMonthPercentage;
    uint256 internal sixMonthTime;
    uint256 internal sixMonthPercentage;
    uint256 internal twelveMonthTime;
    uint256 internal twelveMonthPercentage;

    struct stakeInfo    // Struct for user vestings
    {
        uint256 endDate;
        uint256 amount;
        address initiator;
        address receiver;
    }

    mapping(address => uint256) public stakedBalanceOf;
    mapping(uint256 => stakeInfo) internal vestings;
    mapping(address => uint256[]) internal userVestingIDs;

    enum StakeOption {three, six, twelve}

    constructor() TokenStaking() public 
    { 
        stakeID = 0;
       
        threeMonthTime = 91 days;
        threeMonthPercentage = 1005012520859401063; // e**(0.02*0.25)
                               
        sixMonthTime = 182 days;
        sixMonthPercentage = 1020201340026755810; // e**(0.04*0.5)

        twelveMonthTime = 365 days;
        twelveMonthPercentage = 1061836546545359622; // e**(0.06*1.0)
    }

    /**
    * @dev Function to get the stake info from a corresponding ID.
    * @param _id uint256 The ID from which the stake info should be read.
    * @return endDate uint256 specifying the seconds since the UNIX Epoch. amount uint256 specifying the amount that was staked plus the stake bonus.
    */
    function getStakeInfo(uint256 _id) external view returns(uint256 endDate, uint256 amount, address receiver, address initiator)
    {
        return (vestings[_id].endDate, vestings[_id].amount, vestings[_id].receiver, vestings[_id].initiator);
    }
    
    /**
    * @dev Function to get the stake IDs from a given address.
    * @param _address address The address which staked tokens.
    * @return Ids uint256[] An array of stake IDs from the given address.
    */
    function getStakeIDs(address _address) external view returns(uint256[] memory Ids)
    {
        return userVestingIDs[_address];
    }

    /**
    * @dev Stake an amount of tokens with one of three options.
    * @param _amount uint256 The amount of tokens which will be staked.
    * @param _option StakeOption An enum which decides how long a stake will be frozen (only 0, 1 and 2 are valid values).
    * @return totalSupplyIncreaseds uint256 The total increase in supply from the staked tokens.
    */
    function _stake(uint256 _amount, StakeOption _option, address _receiver) internal returns(uint256 totalSupplyIncrease)
    {
        require(_option >= StakeOption.three && _option <= StakeOption.twelve);
        
        stakeInfo memory stakeStruct;
        stakeStruct.endDate = 0;
        stakeStruct.amount = 0;
        stakeStruct.initiator = msg.sender;
        stakeStruct.receiver = address(0);

        uint256 tempIncrease;

        if (_option == StakeOption.three) 
        {
            stakeStruct.endDate = now + threeMonthTime;
            stakeStruct.amount = _amount * threeMonthPercentage / (10**18);
            stakeStruct.initiator = msg.sender;
            stakeStruct.receiver = _receiver;
            tempIncrease = (_amount * (threeMonthPercentage - (10**18)) / (10**18));
        } 
        else if (_option == StakeOption.six)
        {
            stakeStruct.endDate = now + sixMonthTime;
            stakeStruct.amount = _amount * sixMonthPercentage / (10**18);
            stakeStruct.initiator = msg.sender;
            stakeStruct.receiver = _receiver;
            tempIncrease = (_amount * (sixMonthPercentage - (10**18)) / (10**18));
        } 
        else if (_option == StakeOption.twelve)
        {
            stakeStruct.endDate = now + twelveMonthTime;
            stakeStruct.amount = _amount * twelveMonthPercentage / (10**18);
            stakeStruct.initiator = msg.sender;
            stakeStruct.receiver = _receiver;
            tempIncrease = (_amount * (twelveMonthPercentage - (10**18)) / (10**18));
        }

        stakeID = stakeID + 1;
        vestings[stakeID] = stakeStruct;
        _setVestingID(stakeID, stakeStruct.receiver);
        stakedBalanceOf[msg.sender] += stakeStruct.amount;
        return tempIncrease;
    }

    /**
    * @dev Function to set a new vesting ID on the userVestingIDs mapping. Free ID slots in the array will be overwritten.
    * @param _id uint256 The new ID that has to be written in the corresponding mapping.
    */
    function _setVestingID(uint256 _id, address _receiver) internal
    {
        bool tempEntryWritten = false;
        uint256 arrayLength = userVestingIDs[_receiver].length;

        if(arrayLength != 0)
        {
            for (uint256 i = 0; i < arrayLength; i++) 
            {
                if (userVestingIDs[_receiver][i] == 0) 
                {
                    userVestingIDs[_receiver][i] = _id;
                    tempEntryWritten = true;
                    break;
                } 
            }

            if(!tempEntryWritten)
            {
                userVestingIDs[_receiver].push(_id);
            }
        } 
        else
        {
            userVestingIDs[_receiver].push(_id);
        }
    }

    /**
    * @dev Redeem the staked tokens.
    * @return amount uint256 The amount that has been redeemed.
    */
    function _redeem() internal returns(uint256 amount)
    {
        uint256[] memory IdArray = userVestingIDs[msg.sender];
        uint256 tempAmount = 0;
        uint256 finalAmount = 0;
        address tempInitiator = address(0);

        for(uint256 i = 0; i < IdArray.length; i++)
        {
            if(IdArray[i] != 0 && vestings[IdArray[i]].endDate <= now)
            {
                tempInitiator = vestings[IdArray[i]].initiator;
                tempAmount = vestings[IdArray[i]].amount;

                stakedBalanceOf[tempInitiator] -= tempAmount;
                finalAmount += tempAmount;

                // delete the vesting history
                delete userVestingIDs[msg.sender][i];
                delete vestings[IdArray[i]];
            }
        }

        require(finalAmount > 0, "No funds to redeem.");
        return finalAmount;
    }
}


/******************************************/
/*       LOOiXToken starts here       */
/******************************************/

contract LOOiXToken is owned, TokenERC20, TokenStaking
{

    bool public mintingActive;
    address public mintDelegate;
    uint256 public unlockAt;
    uint256 public ICO_totalSupply;
    uint256 internal constant MAX_UINT = 2**256 - 1;

    mapping(address => uint256) public allocations;

    event Stake(address indexed _target, uint256 _amount);
    event Redeem(address indexed _target, uint256 _amount);

    constructor() TokenERC20() public 
    {
        mintingActive = true;
        mintDelegate = address(0);
        unlockAt;
    }

    /**
    * @dev Modifier defines addresses allowed to mint. 
    */
    modifier mintingAllowed
    {
        require(msg.sender == owner || msg.sender == mintDelegate, "Sender not authorized.");
        _;
    }

    /**
    * @dev Internal ERC20 transfer.
    */
    function _transfer(address _from, address _to, uint256 _value) internal
    {
        require(_value > 0, "Transferred value has to be grater than 0.");            // value has to be greater than 0
        require(_to != address(0), "0x00 address not allowed.");                      // Prevent transfer to 0x0 address
        require(balanceOf[_from] >= _value, "Not enough funds on sender address.");   // Check if the sender has enough
        require(balanceOf[_to] + _value >= balanceOf[_to], "Overflow protection.");   // Check for overflows
        balanceOf[_from] -= _value;                                                   // Subtract from the sender
        balanceOf[_to] += _value;                                                     // Add the same to the recipient
        emit Transfer(_from, _to, _value);
    }

    /**
    * @dev ERC20 transferFrom, modified such that an allowance of MAX_UINT represents an unlimited allowance.
    * @param _from Address to transfer from.
    * @param _to Address to transfer to.
    * @param _value Amount to transfer.
    * @return Success of transfer.
    */
    function transferFrom(address _from, address _to, uint _value) public returns (bool success)
    {
        uint256 allowanceTemp = allowance[_from][msg.sender];
        
        require(allowanceTemp >= _value, "Funds not approved."); 
        require(balanceOf[_from] >= _value, "Not enough funds on sender address.");
        require(balanceOf[_to] + _value >= balanceOf[_to], "Overflow protection.");

        balanceOf[_to] += _value;
        balanceOf[_from] -= _value;

        if (allowanceTemp < MAX_UINT) 
        {
            allowance[_from][msg.sender] -= _value;
        }

        emit Transfer(_from, _to, _value);

        return true;
    }

    /**
    * @dev Set new mintDelegate address
    * @param _newDelegate The address authorized to mint
    */  
    function setMintDelegate(address _newDelegate) external onlyOwner
    {
        require(_newDelegate != address(0), "0x00 address not allowed.");
        mintDelegate = _newDelegate;
    }
    
    /**
    * @dev Set unlimited allowance for other address
    * @param _controllerAddress The address authorized to spend
    */   
    function giveAccess(address _controllerAddress) external
    {
        require(msg.sender != owner, "Owner of contract can not use this function.");
        require(_controllerAddress != address(0), "0x00 address not allowed.");
        allowance[msg.sender][_controllerAddress] = MAX_UINT;
        emit Approval(msg.sender, _controllerAddress, MAX_UINT);
    }

    /**
    * @dev Set allowance for other address to 0
    * @param _controllerAddress The address authorized to spend
    */   
    function revokeAccess(address _controllerAddress) external
    {
        require(_controllerAddress != address(0), "0x00 address not allowed.");
        allowance[msg.sender][_controllerAddress] = 0;
    }

    /**
    * @dev Withdraw all LOOiX on the contract.
    */ 
    function withdrawLOOiX() external onlyOwner
    {
        require(balanceOf[address(this)] > 0, "No funds available.");
        _transfer(address(this), owner, balanceOf[address(this)]);
    }

    /**
    * @dev Bulk mint function for airdrops. 
    * @param _address Address array to mint to.
    * @param _mintAmount Amount array to mint.
    */
    function mintTokenBulk(address[] _address, uint256[] _mintAmount) external mintingAllowed
    {
        require(mintingActive, "The mint functions are not available anymore.");
        uint256 tempAmount = 0;

        for (uint256 i = 0; i < _address.length; i++) 
        {
            if(balanceOf[_address[i]] + _mintAmount[i] >= balanceOf[_address[i]])
            {
                balanceOf[_address[i]] += _mintAmount[i] * (10**18);
                tempAmount += _mintAmount[i] * (10**18);

                emit Transfer(address(0), _address[i], _mintAmount[i] * (10**18));
            }
        }

        totalSupply += tempAmount;
    }

    /**
    * @dev Mint function for creating new tokens. 
    * @param _target Address to mint to.
    * @param _mintAmount Amount to mint.
    */
    function mintToken(address _target, uint256 _mintAmount) public mintingAllowed 
    {
        require(mintingActive, "The mint functions are not available anymore.");
        require(_target != address(0), "0x00 address not allowed.");

        balanceOf[_target] += _mintAmount * (10**18);
        totalSupply += _mintAmount * (10**18);

        emit Transfer(address(0), _target, _mintAmount * (10**18));
    }

    /**
    * @dev Stops the minting of the token. After this function is called, no new tokens can be minted using the mintToken or mintTokenBulk functions. Irreversible.
    */
    function terminateMinting() external onlyOwner 
    {
        require(mintingActive, "The mint functions are not available anymore.");
        uint256 tempTotalSupply = totalSupply;

        tempTotalSupply = tempTotalSupply + (tempTotalSupply  * 666666666666666666 / 10**18);
        totalSupply = tempTotalSupply;
        ICO_totalSupply = tempTotalSupply;

        mintingActive = false;
        unlockAt = now + 365 days;

        // 40% of the total token supply
        allocations[0xefbDBA37BD0e825d43bac88Ce570dcEFf50373C2] = tempTotalSupply * 9500 / 100000;      // 9.5% - Founders Pot.
        allocations[0x75dE233590c8Dd593CE1bB89d68e9f18Ecdf34C8] = tempTotalSupply * 9500 / 100000;      // 9.5% - Development and Management.
        allocations[0x357C2e4253389CE79440e867E9De14E17Bb97D2E] = tempTotalSupply * 3120 / 100000;      // 3.12% - Bonuspool.
        allocations[0xf35FF681cbb69b47488269CE2BA5CaA34133813A] = tempTotalSupply * 14250 / 100000;     // 14.25% - Marketing.

        balanceOf[0x2A809456adf8bd5A79D598e880f7Bd78e11B4A1c] += tempTotalSupply * 242 / 100000;        
        balanceOf[0x36c321017a8d8655ec7a2b862328678932E53b87] += tempTotalSupply * 242 / 100000;        
        balanceOf[0xc9ebc197Ee00C1E231817b4eb38322C364cFCFCD] += tempTotalSupply * 242 / 100000;
        balanceOf[0x2BE34a67491c6b1f8e0cA3BAA1249c90686CF6FB] += tempTotalSupply * 726 / 100000;
        balanceOf[0x1cF6725538AAcC9574108845D58cF2e89f62bbE9] += tempTotalSupply * 4 / 100000;
        balanceOf[0xc6a3B6ED936bD18FD72e0ae2D50A10B82EF79851] += tempTotalSupply * 130 / 100000;
        balanceOf[0x204Fb77569ca24C09e1425f979141536B89449E3] += tempTotalSupply * 130 / 100000;

        balanceOf[0xbE3Ece67B61Ef6D3Fd0F8b159d16A80BB04C0F7B] += tempTotalSupply * 164 / 100000;        // Bonuspool.
        balanceOf[0x731953d4c9A01c676fb6b013688AA8D512F5Ec03] += tempTotalSupply * 500 / 100000;        // Development and Management.
        balanceOf[0x84A81f3B42BD99Fd435B1498316F8705f84192bC] += tempTotalSupply * 500 / 100000;        // Founders Pot.
        balanceOf[0xEAeC9b7382e5abEBe76Fc7BDd2Dc22BA1a338918] += tempTotalSupply * 750 / 100000;        // Marketing.
    }

    /**
    * @dev Public unlock allocated Tokens.
    */
    function unlock() public
    {
        require(!mintingActive, "Function not available as long as minting is possible.");
        require(now > unlockAt, "Unlock date not reached.");
        require(allocations[msg.sender] > 0, "No tokens to unlock.");
        uint256 tempAmount;

        tempAmount = allocations[msg.sender];
        allocations[msg.sender] = 0;
        balanceOf[msg.sender] += tempAmount;
    }

    /**
    * @dev Public stake function to stake a given amount of tokens for one of the three options.
    * @param _amount Amount to stake.
    * @param _option StakeOption enum with values from 0 to 2.
    * @return Success of stake.
    */
    function stake(uint256 _amount, StakeOption _option, address _receiver) external returns(bool success)
    {
        require(!mintingActive, "Function not available as long as minting is possible.");
        require(balanceOf[msg.sender] >= _amount, "Not enough funds on sender address.");
        require(_amount >= 100*(10**18), "Amount is less than 100 token.");
        require(_receiver != address(0), "0x00 address not allowed.");
        uint256 supplyIncrease;
        uint256 finalBalance;

        supplyIncrease = _stake(_amount, _option, _receiver);
        totalSupply += supplyIncrease;
        balanceOf[msg.sender] -= _amount;
        finalBalance = _amount + supplyIncrease;

        emit Stake(_receiver, _amount);
        emit Transfer(msg.sender, _receiver, finalBalance);
    
        return true;
    }
    
    /**
    * @dev Public redeem function to redeem all redeemable tokens.
    */
    function redeem() public
    {
        require(userVestingIDs[msg.sender].length > 0, "No funds to redeem.");
        uint256 amount;

        amount = _redeem();
        balanceOf[msg.sender] += amount;
        emit Redeem(msg.sender, amount); 
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"mintDelegate","outputs":[{"name":"","type":"address"}],"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":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"uint256"}],"name":"getStakeInfo","outputs":[{"name":"endDate","type":"uint256"},{"name":"amount","type":"uint256"},{"name":"receiver","type":"address"},{"name":"initiator","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"stakedBalanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mintingActive","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"allocations","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address[]"},{"name":"_mintAmount","type":"uint256[]"}],"name":"mintTokenBulk","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"terminateMinting","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getStakeIDs","outputs":[{"name":"Ids","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"},{"name":"_mintAmount","type":"uint256"}],"name":"mintToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_option","type":"uint8"},{"name":"_receiver","type":"address"}],"name":"stake","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_controllerAddress","type":"address"}],"name":"revokeAccess","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":"unlock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"unlockAt","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newDelegate","type":"address"}],"name":"setMintDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"redeem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_controllerAddress","type":"address"}],"name":"giveAccess","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ICO_totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawLOOiX","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_target","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Stake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_target","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Redeem","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":"_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"}],"name":"OwnershipTransferred","type":"event"}]

60806040523480156200001157600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600460006101000a81548160ff021916908360ff16021790555060006005819055506040805190810160405280600581526020017f4c4f4f695800000000000000000000000000000000000000000000000000000081525060029080519060200190620000c3929190620001c9565b506040805190810160405280600581526020017f4c4f4f49580000000000000000000000000000000000000000000000000000008152506003908051906020019062000111929190620001c9565b5060006008819055506277f880600981905550670df285901ca4fb67600a8190555062eff100600b81905550670e287bb6a7ac1ae2600c819055506301e13380600d81905550670ebc66b6965d1b06600e819055506001601260006101000a81548160ff0219169083151502179055506000601260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000278565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200020c57805160ff19168380011785556200023d565b828001600101855582156200023d579182015b828111156200023c5782518255916020019190600101906200021f565b5b5090506200024c919062000250565b5090565b6200027591905b808211156200027157600081600090555060010162000257565b5090565b90565b61477480620002886000396000f30060806040526004361061018b576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630672a90a1461019057806306fdde03146101e7578063095ea7b31461027757806309813482146102dc578063167653911461038a57806318160ddd146103e157806323b872dd1461040c578063313ce5671461049157806331f9c919146104c257806352a9039c146104f157806362fca3fa1461054857806363fb5c9d1461059b57806367a6b678146105b257806370a082311461064a57806379ba5097146106a157806379c65068146106b85780637cc2a9601461070557806385e68531146107775780638da5cb5b146107ba57806395d89b4114610811578063a69df4b5146108a1578063a9059cbb146108b8578063aa5dec6f1461091d578063bdf5368c14610948578063be040fb01461098b578063cf12e870146109a2578063d4ee1d90146109e5578063dd62ed3e14610a3c578063ea9647fc14610ab3578063f04395da14610ade578063f2fde38b14610af5575b600080fd5b34801561019c57600080fd5b506101a5610b38565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101f357600080fd5b506101fc610b5e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023c578082015181840152602081019050610221565b50505050905090810190601f1680156102695780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028357600080fd5b506102c2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bfc565b604051808215151515815260200191505060405180910390f35b3480156102e857600080fd5b5061030760048036038101908080359060200190929190505050610e12565b604051808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390f35b34801561039657600080fd5b506103cb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ec3565b6040518082815260200191505060405180910390f35b3480156103ed57600080fd5b506103f6610edb565b6040518082815260200191505060405180910390f35b34801561041857600080fd5b50610477600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee1565b604051808215151515815260200191505060405180910390f35b34801561049d57600080fd5b506104a661136e565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104ce57600080fd5b506104d7611381565b604051808215151515815260200191505060405180910390f35b3480156104fd57600080fd5b50610532600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611394565b6040518082815260200191505060405180910390f35b34801561055457600080fd5b506105996004803603810190808035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293905050506113ac565b005b3480156105a757600080fd5b506105b0611806565b005b3480156105be57600080fd5b506105f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612068565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561063657808201518184015260208101905061061b565b505050509050019250505060405180910390f35b34801561065657600080fd5b5061068b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120ff565b6040518082815260200191505060405180910390f35b3480156106ad57600080fd5b506106b6612117565b005b3480156106c457600080fd5b50610703600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061231f565b005b34801561071157600080fd5b5061075d60048036038101908080359060200190929190803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061266f565b604051808215151515815260200191505060405180910390f35b34801561078357600080fd5b506107b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a51565b005b3480156107c657600080fd5b506107cf612b7b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561081d57600080fd5b50610826612ba0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561086657808201518184015260208101905061084b565b50505050905090810190601f1680156108935780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108ad57600080fd5b506108b6612c3e565b005b3480156108c457600080fd5b50610903600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612ef2565b604051808215151515815260200191505060405180910390f35b34801561092957600080fd5b50610932612f09565b6040518082815260200191505060405180910390f35b34801561095457600080fd5b50610989600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f0f565b005b34801561099757600080fd5b506109a06130bc565b005b3480156109ae57600080fd5b506109e3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061321f565b005b3480156109f157600080fd5b506109fa6134d8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a4857600080fd5b50610a9d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506134fe565b6040518082815260200191505060405180910390f35b348015610abf57600080fd5b50610ac8613523565b6040518082815260200191505060405180910390f35b348015610aea57600080fd5b50610af3613529565b005b348015610b0157600080fd5b50610b36600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613711565b005b601260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bf45780601f10610bc957610100808354040283529160200191610bf4565b820191906000526020600020905b815481529060010190602001808311610bd757829003601f168201915b505050505081565b600080821480610c8857506000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b1515610d22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f417070726f7665642066756e6473206f722076616c756520617265206e6f742081526020017f302e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600080600080601060008681526020019081526020016000206000015460106000878152602001908152602001600020600101546010600088815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166010600089815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1693509350935093509193509193565b600f6020528060005260406000206000915090505481565b60055481565b600080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110151515610fdb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f46756e6473206e6f7420617070726f7665642e0000000000000000000000000081525060200191505060405180910390fd5b82600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156110b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f4e6f7420656e6f7567682066756e6473206f6e2073656e64657220616464726581526020017f73732e000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401101515156111b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4f766572666c6f772070726f74656374696f6e2e00000000000000000000000081525060200191505060405180910390fd5b82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555082600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156112fd5782600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b600460009054906101000a900460ff1681565b601260009054906101000a900460ff1681565b60156020528060005260406000206000915090505481565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806114575750601260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156114cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b601260009054906101000a900460ff161515611575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f546865206d696e742066756e6374696f6e7320617265206e6f7420617661696c81526020017f61626c6520616e796d6f72652e0000000000000000000000000000000000000081525060400191505060405180910390fd5b60009150600090505b858590508110156117ee5760066000878784818110151561159b57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054848483818110151561160157fe5b9050602002013560066000898986818110151561161a57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011015156117e157670de0b6b3a7640000848483818110151561169157fe5b90506020020135026006600088888581811015156116ab57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550670de0b6b3a7640000848483818110151561172657fe5b905060200201350282019150858582818110151561174057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a764000087878681811015156117c357fe5b90506020020135026040518082815260200191505060405180910390a35b808060010191505061157e565b81600560008282540192505081905550505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b601260009054906101000a900460ff161515611976576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f546865206d696e742066756e6374696f6e7320617265206e6f7420617661696c81526020017f61626c6520616e796d6f72652e0000000000000000000000000000000000000081525060400191505060405180910390fd5b6005549050670de0b6b3a764000067094079cd1a42aaaa820281151561199857fe5b048101905080600581905550806014819055506000601260006101000a81548160ff0219169083151502179055506301e133804201601381905550620186a061251c82028115156119e557fe5b046015600073efbdba37bd0e825d43bac88ce570dceff50373c273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620186a061251c8202811515611a4f57fe5b04601560007375de233590c8dd593ce1bb89d68e9f18ecdf34c873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620186a0610c308202811515611ab957fe5b046015600073357c2e4253389ce79440e867e9de14e17bb97d2e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620186a06137aa8202811515611b2357fe5b046015600073f35ff681cbb69b47488269ce2ba5caa34133813a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620186a060f28202811515611b8c57fe5b0460066000732a809456adf8bd5a79d598e880f7bd78e11b4a1c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a060f28202811515611bfe57fe5b04600660007336c321017a8d8655ec7a2b862328678932e53b8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a060f28202811515611c7057fe5b046006600073c9ebc197ee00c1e231817b4eb38322c364cfcfcd73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a06102d68202811515611ce357fe5b0460066000732be34a67491c6b1f8e0ca3baa1249c90686cf6fb73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a060048202811515611d5557fe5b0460066000731cf6725538aacc9574108845d58cf2e89f62bbe973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a060828202811515611dc757fe5b046006600073c6a3b6ed936bd18fd72e0ae2d50a10b82ef7985173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a060828202811515611e3957fe5b046006600073204fb77569ca24c09e1425f979141536b89449e373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a060a48202811515611eab57fe5b046006600073be3ece67b61ef6d3fd0f8b159d16a80bb04c0f7b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a06101f48202811515611f1e57fe5b046006600073731953d4c9a01c676fb6b013688aa8d512f5ec0373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a06101f48202811515611f9157fe5b04600660007384a81f3b42bd99fd435b1498316f8705f84192bc73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a06102ee820281151561200457fe5b046006600073eaec9b7382e5abebe76fc7bdd2dc22ba1a33891873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555050565b6060601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156120f357602002820191906000526020600020905b8154815260200190600101908083116120df575b50505050509050919050565b60066020528060005260406000206000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806123c75750601260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561243b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b601260009054906101000a900460ff1615156124e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f546865206d696e742066756e6374696f6e7320617265206e6f7420617661696c81526020017f61626c6520616e796d6f72652e0000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561258a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b670de0b6b3a76400008102600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550670de0b6b3a764000081026005600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a764000084026040518082815260200191505060405180910390a35050565b6000806000601260009054906101000a900460ff1615151561271f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001807f46756e6374696f6e206e6f7420617661696c61626c65206173206c6f6e67206181526020017f73206d696e74696e6720697320706f737369626c652e0000000000000000000081525060400191505060405180910390fd5b85600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156127fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f4e6f7420656e6f7567682066756e6473206f6e2073656e64657220616464726581526020017f73732e000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b68056bc75e2d63100000861015151561287d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f416d6f756e74206973206c657373207468616e2031303020746f6b656e2e000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515612922576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b61292d8686866138be565b91508160056000828254019250508190555085600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081860190508373ffffffffffffffffffffffffffffffffffffffff167febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a876040518082815260200191505060405180910390a28373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36001925050509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612af6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b6000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612c365780601f10612c0b57610100808354040283529160200191612c36565b820191906000526020600020905b815481529060010190602001808311612c1957829003601f168201915b505050505081565b6000601260009054906101000a900460ff16151515612ceb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001807f46756e6374696f6e206e6f7420617661696c61626c65206173206c6f6e67206181526020017f73206d696e74696e6720697320706f737369626c652e0000000000000000000081525060400191505060405180910390fd5b60135442111515612d64576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e6c6f636b2064617465206e6f7420726561636865642e000000000000000081525060200191505060405180910390fd5b6000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111515612e1b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4e6f20746f6b656e7320746f20756e6c6f636b2e00000000000000000000000081525060200191505060405180910390fd5b601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555050565b6000612eff338484613d66565b6001905092915050565b60135481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612fd3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515613078576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b80601260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050111515613177576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4e6f2066756e647320746f2072656465656d2e0000000000000000000000000081525060200191505060405180910390fd5b61317f614182565b905080600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167f222838db2794d11532d940e8dec38ae307ed0b63cd97c233322e221f998767a6826040518082815260200191505060405180910390a250565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561330a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4f776e6572206f6620636f6e74726163742063616e206e6f742075736520746881526020017f69732066756e6374696f6e2e000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156133af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518082815260200191505060405180910390a350565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007602052816000526040600020602052806000526040600020600091509150505481565b60145481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156135ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b6000600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115156136a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4e6f2066756e647320617661696c61626c652e0000000000000000000000000081525060200191505060405180910390fd5b61370f306000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d66565b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156137d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561387a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006138c86146f3565b60008060028111156138d657fe5b8560028111156138e257fe5b1015801561390657506002808111156138f757fe5b85600281111561390357fe5b11155b151561391157600080fd5b6000826000018181525050600082602001818152505033826040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000826060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600060028111156139a557fe5b8560028111156139b157fe5b1415613a77576009544201826000018181525050670de0b6b3a7640000600a5487028115156139dc57fe5b0482602001818152505033826040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083826060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050670de0b6b3a764000080600a54038702811515613a6f57fe5b049050613c32565b60016002811115613a8457fe5b856002811115613a9057fe5b1415613b5657600b544201826000018181525050670de0b6b3a7640000600c548702811515613abb57fe5b0482602001818152505033826040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083826060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050670de0b6b3a764000080600c54038702811515613b4e57fe5b049050613c31565b600280811115613b6257fe5b856002811115613b6e57fe5b1415613c3057600d544201826000018181525050670de0b6b3a7640000600e548702811515613b9957fe5b0482602001818152505033826040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083826060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050670de0b6b3a764000080600e54038702811515613c2c57fe5b0490505b5b5b60016008540160088190555081601060006008548152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050613d0960085483606001516144d8565b8160200151600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080925050509392505050565b600081111515613e04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f5472616e736665727265642076616c75652068617320746f206265206772617481526020017f6572207468616e20302e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515613ea9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515613f86576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f4e6f7420656e6f7567682066756e6473206f6e2073656e64657220616464726581526020017f73732e000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011015151561407e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4f766572666c6f772070726f74656374696f6e2e00000000000000000000000081525060200191505060405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60006060600080600080601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561421557602002820191906000526020600020905b815481526020019060010190808311614201575b50505050509450600093506000925060009150600090505b8451811015614455576000858281518110151561424657fe5b906020019060200201511415801561428b57504260106000878481518110151561426c57fe5b9060200190602002015181526020019081526020016000206000015411155b15614448576010600086838151811015156142a257fe5b90602001906020020151815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691506010600086838151811015156142f257fe5b90602001906020020151815260200190815260200160002060010154935083600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508383019250601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020818154811015156143ae57fe5b90600052602060002001600090556010600086838151811015156143ce57fe5b90602001906020020151815260200190815260200160002060008082016000905560018201600090556002820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556003820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550505b808060010191505061422d565b6000831115156144cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4e6f2066756e647320746f2072656465656d2e0000000000000000000000000081525060200191505060405180910390fd5b829550505050505090565b6000806000809250601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050915060008214151561468257600090505b8181101561460c576000601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561458a57fe5b906000526020600020015414156145ff5784601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811015156145e857fe5b90600052602060002001819055506001925061460c565b8080600101915050614534565b82151561467d57601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208590806001815401808255809150509060018203906000526020600020016000909192909190915055505b6146ec565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208590806001815401808255809150509060018203906000526020600020016000909192909190915055505b5050505050565b6080604051908101604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815250905600a165627a7a7230582012b4efe5ea2dadb7c14b916891d1fe50e2f749a38113829ecabd71c2433f64ea0029

Deployed Bytecode

0x60806040526004361061018b576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630672a90a1461019057806306fdde03146101e7578063095ea7b31461027757806309813482146102dc578063167653911461038a57806318160ddd146103e157806323b872dd1461040c578063313ce5671461049157806331f9c919146104c257806352a9039c146104f157806362fca3fa1461054857806363fb5c9d1461059b57806367a6b678146105b257806370a082311461064a57806379ba5097146106a157806379c65068146106b85780637cc2a9601461070557806385e68531146107775780638da5cb5b146107ba57806395d89b4114610811578063a69df4b5146108a1578063a9059cbb146108b8578063aa5dec6f1461091d578063bdf5368c14610948578063be040fb01461098b578063cf12e870146109a2578063d4ee1d90146109e5578063dd62ed3e14610a3c578063ea9647fc14610ab3578063f04395da14610ade578063f2fde38b14610af5575b600080fd5b34801561019c57600080fd5b506101a5610b38565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101f357600080fd5b506101fc610b5e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023c578082015181840152602081019050610221565b50505050905090810190601f1680156102695780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028357600080fd5b506102c2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bfc565b604051808215151515815260200191505060405180910390f35b3480156102e857600080fd5b5061030760048036038101908080359060200190929190505050610e12565b604051808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390f35b34801561039657600080fd5b506103cb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ec3565b6040518082815260200191505060405180910390f35b3480156103ed57600080fd5b506103f6610edb565b6040518082815260200191505060405180910390f35b34801561041857600080fd5b50610477600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee1565b604051808215151515815260200191505060405180910390f35b34801561049d57600080fd5b506104a661136e565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104ce57600080fd5b506104d7611381565b604051808215151515815260200191505060405180910390f35b3480156104fd57600080fd5b50610532600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611394565b6040518082815260200191505060405180910390f35b34801561055457600080fd5b506105996004803603810190808035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293905050506113ac565b005b3480156105a757600080fd5b506105b0611806565b005b3480156105be57600080fd5b506105f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612068565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561063657808201518184015260208101905061061b565b505050509050019250505060405180910390f35b34801561065657600080fd5b5061068b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120ff565b6040518082815260200191505060405180910390f35b3480156106ad57600080fd5b506106b6612117565b005b3480156106c457600080fd5b50610703600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061231f565b005b34801561071157600080fd5b5061075d60048036038101908080359060200190929190803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061266f565b604051808215151515815260200191505060405180910390f35b34801561078357600080fd5b506107b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a51565b005b3480156107c657600080fd5b506107cf612b7b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561081d57600080fd5b50610826612ba0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561086657808201518184015260208101905061084b565b50505050905090810190601f1680156108935780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108ad57600080fd5b506108b6612c3e565b005b3480156108c457600080fd5b50610903600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612ef2565b604051808215151515815260200191505060405180910390f35b34801561092957600080fd5b50610932612f09565b6040518082815260200191505060405180910390f35b34801561095457600080fd5b50610989600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f0f565b005b34801561099757600080fd5b506109a06130bc565b005b3480156109ae57600080fd5b506109e3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061321f565b005b3480156109f157600080fd5b506109fa6134d8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a4857600080fd5b50610a9d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506134fe565b6040518082815260200191505060405180910390f35b348015610abf57600080fd5b50610ac8613523565b6040518082815260200191505060405180910390f35b348015610aea57600080fd5b50610af3613529565b005b348015610b0157600080fd5b50610b36600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613711565b005b601260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bf45780601f10610bc957610100808354040283529160200191610bf4565b820191906000526020600020905b815481529060010190602001808311610bd757829003601f168201915b505050505081565b600080821480610c8857506000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b1515610d22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f417070726f7665642066756e6473206f722076616c756520617265206e6f742081526020017f302e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600080600080601060008681526020019081526020016000206000015460106000878152602001908152602001600020600101546010600088815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166010600089815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1693509350935093509193509193565b600f6020528060005260406000206000915090505481565b60055481565b600080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110151515610fdb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f46756e6473206e6f7420617070726f7665642e0000000000000000000000000081525060200191505060405180910390fd5b82600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156110b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f4e6f7420656e6f7567682066756e6473206f6e2073656e64657220616464726581526020017f73732e000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401101515156111b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4f766572666c6f772070726f74656374696f6e2e00000000000000000000000081525060200191505060405180910390fd5b82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555082600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156112fd5782600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b600460009054906101000a900460ff1681565b601260009054906101000a900460ff1681565b60156020528060005260406000206000915090505481565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806114575750601260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156114cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b601260009054906101000a900460ff161515611575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f546865206d696e742066756e6374696f6e7320617265206e6f7420617661696c81526020017f61626c6520616e796d6f72652e0000000000000000000000000000000000000081525060400191505060405180910390fd5b60009150600090505b858590508110156117ee5760066000878784818110151561159b57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054848483818110151561160157fe5b9050602002013560066000898986818110151561161a57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011015156117e157670de0b6b3a7640000848483818110151561169157fe5b90506020020135026006600088888581811015156116ab57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550670de0b6b3a7640000848483818110151561172657fe5b905060200201350282019150858582818110151561174057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a764000087878681811015156117c357fe5b90506020020135026040518082815260200191505060405180910390a35b808060010191505061157e565b81600560008282540192505081905550505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b601260009054906101000a900460ff161515611976576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f546865206d696e742066756e6374696f6e7320617265206e6f7420617661696c81526020017f61626c6520616e796d6f72652e0000000000000000000000000000000000000081525060400191505060405180910390fd5b6005549050670de0b6b3a764000067094079cd1a42aaaa820281151561199857fe5b048101905080600581905550806014819055506000601260006101000a81548160ff0219169083151502179055506301e133804201601381905550620186a061251c82028115156119e557fe5b046015600073efbdba37bd0e825d43bac88ce570dceff50373c273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620186a061251c8202811515611a4f57fe5b04601560007375de233590c8dd593ce1bb89d68e9f18ecdf34c873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620186a0610c308202811515611ab957fe5b046015600073357c2e4253389ce79440e867e9de14e17bb97d2e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620186a06137aa8202811515611b2357fe5b046015600073f35ff681cbb69b47488269ce2ba5caa34133813a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620186a060f28202811515611b8c57fe5b0460066000732a809456adf8bd5a79d598e880f7bd78e11b4a1c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a060f28202811515611bfe57fe5b04600660007336c321017a8d8655ec7a2b862328678932e53b8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a060f28202811515611c7057fe5b046006600073c9ebc197ee00c1e231817b4eb38322c364cfcfcd73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a06102d68202811515611ce357fe5b0460066000732be34a67491c6b1f8e0ca3baa1249c90686cf6fb73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a060048202811515611d5557fe5b0460066000731cf6725538aacc9574108845d58cf2e89f62bbe973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a060828202811515611dc757fe5b046006600073c6a3b6ed936bd18fd72e0ae2d50a10b82ef7985173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a060828202811515611e3957fe5b046006600073204fb77569ca24c09e1425f979141536b89449e373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a060a48202811515611eab57fe5b046006600073be3ece67b61ef6d3fd0f8b159d16a80bb04c0f7b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a06101f48202811515611f1e57fe5b046006600073731953d4c9a01c676fb6b013688aa8d512f5ec0373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a06101f48202811515611f9157fe5b04600660007384a81f3b42bd99fd435b1498316f8705f84192bc73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550620186a06102ee820281151561200457fe5b046006600073eaec9b7382e5abebe76fc7bdd2dc22ba1a33891873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555050565b6060601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156120f357602002820191906000526020600020905b8154815260200190600101908083116120df575b50505050509050919050565b60066020528060005260406000206000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806123c75750601260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561243b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b601260009054906101000a900460ff1615156124e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f546865206d696e742066756e6374696f6e7320617265206e6f7420617661696c81526020017f61626c6520616e796d6f72652e0000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561258a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b670de0b6b3a76400008102600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550670de0b6b3a764000081026005600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a764000084026040518082815260200191505060405180910390a35050565b6000806000601260009054906101000a900460ff1615151561271f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001807f46756e6374696f6e206e6f7420617661696c61626c65206173206c6f6e67206181526020017f73206d696e74696e6720697320706f737369626c652e0000000000000000000081525060400191505060405180910390fd5b85600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156127fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f4e6f7420656e6f7567682066756e6473206f6e2073656e64657220616464726581526020017f73732e000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b68056bc75e2d63100000861015151561287d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f416d6f756e74206973206c657373207468616e2031303020746f6b656e2e000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515612922576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b61292d8686866138be565b91508160056000828254019250508190555085600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081860190508373ffffffffffffffffffffffffffffffffffffffff167febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a876040518082815260200191505060405180910390a28373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36001925050509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612af6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b6000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612c365780601f10612c0b57610100808354040283529160200191612c36565b820191906000526020600020905b815481529060010190602001808311612c1957829003601f168201915b505050505081565b6000601260009054906101000a900460ff16151515612ceb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001807f46756e6374696f6e206e6f7420617661696c61626c65206173206c6f6e67206181526020017f73206d696e74696e6720697320706f737369626c652e0000000000000000000081525060400191505060405180910390fd5b60135442111515612d64576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f556e6c6f636b2064617465206e6f7420726561636865642e000000000000000081525060200191505060405180910390fd5b6000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111515612e1b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4e6f20746f6b656e7320746f20756e6c6f636b2e00000000000000000000000081525060200191505060405180910390fd5b601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555050565b6000612eff338484613d66565b6001905092915050565b60135481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612fd3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515613078576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b80601260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050111515613177576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4e6f2066756e647320746f2072656465656d2e0000000000000000000000000081525060200191505060405180910390fd5b61317f614182565b905080600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167f222838db2794d11532d940e8dec38ae307ed0b63cd97c233322e221f998767a6826040518082815260200191505060405180910390a250565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561330a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4f776e6572206f6620636f6e74726163742063616e206e6f742075736520746881526020017f69732066756e6374696f6e2e000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156133af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518082815260200191505060405180910390a350565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007602052816000526040600020602052806000526040600020600091509150505481565b60145481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156135ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b6000600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115156136a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4e6f2066756e647320617661696c61626c652e0000000000000000000000000081525060200191505060405180910390fd5b61370f306000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d66565b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156137d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561387a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006138c86146f3565b60008060028111156138d657fe5b8560028111156138e257fe5b1015801561390657506002808111156138f757fe5b85600281111561390357fe5b11155b151561391157600080fd5b6000826000018181525050600082602001818152505033826040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000826060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600060028111156139a557fe5b8560028111156139b157fe5b1415613a77576009544201826000018181525050670de0b6b3a7640000600a5487028115156139dc57fe5b0482602001818152505033826040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083826060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050670de0b6b3a764000080600a54038702811515613a6f57fe5b049050613c32565b60016002811115613a8457fe5b856002811115613a9057fe5b1415613b5657600b544201826000018181525050670de0b6b3a7640000600c548702811515613abb57fe5b0482602001818152505033826040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083826060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050670de0b6b3a764000080600c54038702811515613b4e57fe5b049050613c31565b600280811115613b6257fe5b856002811115613b6e57fe5b1415613c3057600d544201826000018181525050670de0b6b3a7640000600e548702811515613b9957fe5b0482602001818152505033826040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083826060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050670de0b6b3a764000080600e54038702811515613c2c57fe5b0490505b5b5b60016008540160088190555081601060006008548152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050613d0960085483606001516144d8565b8160200151600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080925050509392505050565b600081111515613e04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f5472616e736665727265642076616c75652068617320746f206265206772617481526020017f6572207468616e20302e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515613ea9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515613f86576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f4e6f7420656e6f7567682066756e6473206f6e2073656e64657220616464726581526020017f73732e000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011015151561407e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4f766572666c6f772070726f74656374696f6e2e00000000000000000000000081525060200191505060405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60006060600080600080601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561421557602002820191906000526020600020905b815481526020019060010190808311614201575b50505050509450600093506000925060009150600090505b8451811015614455576000858281518110151561424657fe5b906020019060200201511415801561428b57504260106000878481518110151561426c57fe5b9060200190602002015181526020019081526020016000206000015411155b15614448576010600086838151811015156142a257fe5b90602001906020020151815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691506010600086838151811015156142f257fe5b90602001906020020151815260200190815260200160002060010154935083600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508383019250601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020818154811015156143ae57fe5b90600052602060002001600090556010600086838151811015156143ce57fe5b90602001906020020151815260200190815260200160002060008082016000905560018201600090556002820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556003820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550505b808060010191505061422d565b6000831115156144cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4e6f2066756e647320746f2072656465656d2e0000000000000000000000000081525060200191505060405180910390fd5b829550505050505090565b6000806000809250601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050915060008214151561468257600090505b8181101561460c576000601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561458a57fe5b906000526020600020015414156145ff5784601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811015156145e857fe5b90600052602060002001819055506001925061460c565b8080600101915050614534565b82151561467d57601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208590806001815401808255809150509060018203906000526020600020016000909192909190915055505b6146ec565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208590806001815401808255809150509060018203906000526020600020016000909192909190915055505b5050505050565b6080604051908101604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815250905600a165627a7a7230582012b4efe5ea2dadb7c14b916891d1fe50e2f749a38113829ecabd71c2433f64ea0029

Swarm Source

bzzr://12b4efe5ea2dadb7c14b916891d1fe50e2f749a38113829ecabd71c2433f64ea
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.