ETH Price: $2,873.29 (-10.82%)
Gas: 21 Gwei

Token

Egg Token (EGG)
 

Overview

Max Total Supply

4,039,065,000 EGG

Holders

1,674

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
16,974.993 EGG

Value
$0.00
0xb457f08b38c684736325bcedd23d69cad06af169
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

This is no longer the official EGG token smart contract, Cocoricos has launched their EGG v2 which is the official token (0xd0983dd6a0334c71d0478255d1f794508026b888).

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
EggToken

Compiler Version
v0.5.3+commit.10d17f24

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-05-02
*/

pragma solidity ^0.5.3;

contract Ownable 
{
    address private owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

    modifier onlyOwner() 
    {
        require(msg.sender == owner, "Only owner can call this function.");
        _;
    }

    function isOwner() public view returns(bool) 
    {
        return msg.sender == owner;
    }

    function transferOwnership(address newOwner) public onlyOwner 
    {
        require(newOwner != address(0));
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
}

contract IERC20
{
    uint256 public tokenTotalSupply;
    string private tokenName;
    string private tokenSymbol;
    
    function balanceOf(address who) external view returns (uint256);
    function allowance(address owner, address spender) external view returns (uint256);
    function transfer(address to, uint256 value) external returns (bool);
    function approve(address spender, uint256 value) external returns (bool);
    function transferFrom(address from, address to, uint256 value) external returns (bool);

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function totalSupply() external view returns (uint256);

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

    function burnOwnTokens(uint256 amountToBurn) external;
    function setCrowdsale(address crowdsaleAddress, uint256 crowdsaleAmount) external;
}

contract IERC223 is IERC20
{
    function transfer(address to, uint value, bytes memory data) public returns (bool);
    function transferFrom(address from, address to, uint value, bytes memory data) public returns (bool);
    event Transfer(address indexed from, address indexed to, uint value, bytes data);
}

contract IERC223Receiver 
{ 
    function tokenFallback(address from, address sender, uint value, bytes memory data) public returns (bool);
}

contract IMigrationAgent
{
    function finalizeMigration() external;
    function migrateTokens(address owner, uint256 tokens) public;
}

contract IMigrationSource
{
    address private migrationAgentAddress;
    IMigrationAgent private migrationAgentContract;
    bool private isMigrated;

    event MigratedFrom(address indexed owner, uint256 tokens);

    function setMigrationAgent(address agent) external;
    function migrate() external;
    function finalizeMigration() external;
}

library SafeMath 
{
    function mul(uint256 a, uint256 b) internal pure returns (uint256) 
    {
        if (a == 0) 
        {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "Multiplying error.");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) 
    {
        require(b > 0, "Division error.");
        uint256 c = a / b;
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) 
    {
        require(b <= a, "Subtraction error.");
        uint256 c = a - b;
        return c;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) 
    {
        uint256 c = a + b;
        require(c >= a, "Adding error.");
        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) 
    {
        require(b != 0, "Mod error.");
        return a % b;
    }
}

contract EggToken is IERC223, Ownable, IMigrationSource
{
    using SafeMath for uint256;

    uint256 private tokenTotalSupply;
    string private tokenName;
    string private tokenSymbol;
    uint8 private tokenDecimals;

    mapping (address => uint256) private balances;
    mapping (address => mapping (address => uint256)) private allowances;

    address private migrationAgentAddress;
    IMigrationAgent private migrationAgentContract;
    bool private isMigrated;
    bool private isCrowdsaleSet;
    
    address private owner;
    
    constructor(string memory name, 
                string memory symbol, 
                uint256 totalSupply, 
                address developmentTeamAddress, 
                uint256 developmentTeamBalance, 
                address marketingTeamAddress, 
                uint256 marketingTeamBalance, 
                address productTeamAddress, 
                uint256 productTeamBalance, 
                address airdropAddress,
                uint256 airdropBalance) public 
    {
        tokenName = name;
        tokenSymbol = symbol;
        tokenDecimals = 18;

        tokenTotalSupply = totalSupply;
        
        balances[developmentTeamAddress] = developmentTeamBalance;
        balances[marketingTeamAddress] = marketingTeamBalance;
        balances[productTeamAddress] = productTeamBalance;
        balances[airdropAddress] = airdropBalance;
    }

    function setCrowdsale(address crowdsaleAddress, uint256 crowdsaleBalance) onlyOwner validAddress(crowdsaleAddress) external
    {
        require(!isCrowdsaleSet, "Crowdsale address was already set.");
        isCrowdsaleSet = true;
        tokenTotalSupply = tokenTotalSupply.add(crowdsaleBalance);
        balances[crowdsaleAddress] = crowdsaleBalance;
    }
    
    function approve(address spender, uint256 value) validAddress(spender) external returns (bool) 
    {
        allowances[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        return true;
    }
    
    function transfer(address to, uint256 value) external returns (bool) 
    {
        return transfer(to, value, new bytes(0));
    }
    
    function transferFrom(address from, address to, uint256 value) external returns (bool)
    {
        return transferFrom(from, to, value, new bytes(0));
    }
    
    function transferBatch(address[] calldata to, uint256 value) external returns (bool) 
    {
        return transferBatch(to, value, new bytes(0));
    }

    function transfer(address to, uint256 value, bytes memory data) validAddress(to) enoughBalance(msg.sender, value) public returns (bool)
    {
        balances[msg.sender] = balances[msg.sender].sub(value);
        balances[to] = balances[to].add(value);
        if (isContract(to))
        {
            contractFallback(msg.sender, to, value, data);
        }
        emit Transfer(msg.sender, to, value, data);
        emit Transfer(msg.sender, to, value);
        return true;
    }

    function transferFrom(address from, address to, uint256 value, bytes memory data) validAddress(to) enoughBalance(from, value) public returns (bool)
    {
        require(value <= allowances[from][msg.sender], "Transfer value exceeds the allowance.");

        balances[from] = balances[from].sub(value);
        balances[to] = balances[to].add(value);
        allowances[from][msg.sender] = allowances[from][msg.sender].sub(value);
        if (isContract(to))
        {
            contractFallback(from, to, value, data);
        }
        emit Transfer(from, to, value, data);
        emit Transfer(from, to, value);
        return true;
    }

    function transferBatch(address[] memory to, uint256 value, bytes memory data) public returns (bool)
    {
        uint256 totalValue = value.mul(to.length);
        checkBalance(msg.sender, totalValue);
        balances[msg.sender] = balances[msg.sender].sub(totalValue);

        uint256 i = 0;
        while (i < to.length) 
        {
            checkAddressValidity(to[i]);
            balances[to[i]] = balances[to[i]].add(value);
            if (isContract(to[i]))
            {
                contractFallback(msg.sender, to[i], value, data);
            }
            emit Transfer(msg.sender, to[i], value, data);
            emit Transfer(msg.sender, to[i], value);
            i++;
        }

        return true;
    }

    function contractFallback(address sender, address to, uint256 value, bytes memory data) private returns (bool) 
    {
        IERC223Receiver reciever = IERC223Receiver(to);
        return reciever.tokenFallback(msg.sender, sender, value, data);
    }

    function isContract(address to) internal view returns (bool) 
    {
        uint length;
        assembly { length := extcodesize(to) }
        return length > 0;
    }
    
    function increaseAllowance(address spender, uint256 addedValue) validAddress(spender) external returns (bool)
    {
        allowances[msg.sender][spender] = allowances[msg.sender][spender].add(addedValue);
        emit Approval(msg.sender, spender, allowances[msg.sender][spender]);
        return true;
    }
    
    function decreaseAllowance(address spender, uint256 subtractedValue) validAddress(spender) external returns (bool)
    {
        allowances[msg.sender][spender] = allowances[msg.sender][spender].sub(subtractedValue);
        emit Approval(msg.sender, spender, allowances[msg.sender][spender]);
        return true;
    }

    function burnOwnTokens(uint256 amountToBurn) enoughBalance(msg.sender, amountToBurn) external 
    {
        require(balances[msg.sender] >= amountToBurn, "Can't burn more tokens than you own.");
        tokenTotalSupply = tokenTotalSupply.sub(amountToBurn);
        balances[msg.sender] = balances[msg.sender].sub(amountToBurn);
        emit Transfer(msg.sender, address(0), amountToBurn, new bytes(0));
        emit Transfer(msg.sender, address(0), amountToBurn);
    }

    function transferAnyERC20Token(address tokenAddress, uint256 tokens) public onlyOwner returns (bool success) 
    {
        return IERC20(tokenAddress).transfer(owner, tokens);
    }

    function balanceOf(address balanceOwner) external view returns (uint256) 
    {
        return balances[balanceOwner];
    }
    
    function allowance(address balanceOwner, address spender) external view returns (uint256)
    {
        return allowances[balanceOwner][spender];
    }

    function name() external view returns(string memory) {
        return tokenName;
    }

    function symbol() external view returns(string memory) {
        return tokenSymbol;
    }

    function decimals() external view returns(uint8) {
        return tokenDecimals;
    }

    function totalSupply() external view returns (uint256) 
    {
        return tokenTotalSupply;
    }

    modifier validAddress(address _address) 
    {
        checkAddressValidity(_address);
        _;
    }

    modifier enoughBalance(address from, uint256 value) 
    {
        checkBalance(from, value);
        _;
    }

    function checkAddressValidity(address _address) internal view
    {
        require(_address != address(0), "The address can't be blank.");
        require(_address != address(this), "The address can't point to Egg smart contract.");
    }

    function checkBalance(address from, uint256 value) internal view
    {
        require(value <= balances[from], "Specified address has less tokens than required for this operation.");
    }
    
    function setMigrationAgent(address agent) onlyOwner validAddress(agent) external
    {
        require(migrationAgentAddress == address(0), "Migration Agent was specified already.");
        require(!isMigrated, 'Contract was already migrated.');
        migrationAgentAddress = agent;
        migrationAgentContract = IMigrationAgent(agent);
    }

    function migrate() external
    {
        require(migrationAgentAddress != address(0), "Migration is closed or haven't started.");

        uint256 migratedAmount = balances[msg.sender];
        require(migratedAmount > 0, "No tokens to migrate.");

        balances[msg.sender] = 0;
        emit MigratedFrom(msg.sender, migratedAmount);
        migrationAgentContract.migrateTokens(msg.sender, migratedAmount);
    }

    function finalizeMigration() external
    {
        require(msg.sender == migrationAgentAddress, "Only Migration Agent can finalize the migration.");
        migrationAgentAddress = address(0);
        isMigrated = true;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"crowdsaleAddress","type":"address"},{"name":"crowdsaleBalance","type":"uint256"}],"name":"setCrowdsale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"balanceOwner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"agent","type":"address"}],"name":"setMigrationAgent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address[]"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"}],"name":"transferBatch","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address[]"},{"name":"value","type":"uint256"}],"name":"transferBatch","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"migrate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"finalizeMigration","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"balanceOwner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amountToBurn","type":"uint256"}],"name":"burnOwnTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenTotalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"name","type":"string"},{"name":"symbol","type":"string"},{"name":"totalSupply","type":"uint256"},{"name":"developmentTeamAddress","type":"address"},{"name":"developmentTeamBalance","type":"uint256"},{"name":"marketingTeamAddress","type":"address"},{"name":"marketingTeamBalance","type":"uint256"},{"name":"productTeamAddress","type":"address"},{"name":"productTeamBalance","type":"uint256"},{"name":"airdropAddress","type":"address"},{"name":"airdropBalance","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"MigratedFrom","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"data","type":"bytes"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"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"}]

60806040523480156200001157600080fd5b50604051620037743803806200377483398101806040526101608110156200003857600080fd5b8101908080516401000000008111156200005157600080fd5b828101905060208101848111156200006857600080fd5b81518560018202830111640100000000821117156200008657600080fd5b50509291906020018051640100000000811115620000a357600080fd5b82810190506020810184811115620000ba57600080fd5b8151856001820283011164010000000082111715620000d857600080fd5b505092919060200180519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508a6007908051906020019062000196929190620002f4565b508960089080519060200190620001af929190620002f4565b506012600960006101000a81548160ff021916908360ff1602179055508860068190555086600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050505050505050505050620003a3565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200033757805160ff191683800117855562000368565b8280016001018555821562000368579182015b82811115620003675782518255916020019190600101906200034a565b5b5090506200037791906200037b565b5090565b620003a091905b808211156200039c57600081600090555060010162000382565b5090565b90565b6133c180620003b36000396000f3fe608060405234801561001057600080fd5b5060043610610175576000357c0100000000000000000000000000000000000000000000000000000000900480638fd3ab80116100e0578063be45fd6211610099578063be45fd6214610929578063dc39d06d14610a26578063dd62ed3e14610a8c578063dd7f92d214610b04578063f2fde38b14610b32578063f7abab9e14610b7657610175565b80638fd3ab80146106a957806395d89b41146106b3578063a457c2d714610736578063a9059cbb1461079c578063ab67aa5814610802578063b78b60871461091f57610175565b80633950935111610132578063395093511461037957806370a08231146103df57806375e2ff651461043757806376df1d5f1461047b578063806e085e146105ec5780638f32d59b1461068757610175565b806306fdde031461017a578063095ea7b3146101fd57806318160ddd1461026357806322ed63021461028157806323b872dd146102cf578063313ce56714610355575b600080fd5b610182610b94565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c25780820151818401526020810190506101a7565b50505050905090810190601f1680156101ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102496004803603604081101561021357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c36565b604051808215151515815260200191505060405180910390f35b61026b610d33565b6040518082815260200191505060405180910390f35b6102cd6004803603604081101561029757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d3d565b005b61033b600480360360608110156102e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ed6565b604051808215151515815260200191505060405180910390f35b61035d610f21565b604051808260ff1660ff16815260200191505060405180910390f35b6103c56004803603604081101561038f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f38565b604051808215151515815260200191505060405180910390f35b610421600480360360208110156103f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061113f565b6040518082815260200191505060405180910390f35b6104796004803603602081101561044d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611188565b005b6105d26004803603606081101561049157600080fd5b81019080803590602001906401000000008111156104ae57600080fd5b8201836020820111156104c057600080fd5b803590602001918460208302840111640100000000831117156104e257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001909291908035906020019064010000000081111561054c57600080fd5b82018360208201111561055e57600080fd5b8035906020019184600183028401116401000000008311171561058057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506113ee565b604051808215151515815260200191505060405180910390f35b61066d6004803603604081101561060257600080fd5b810190808035906020019064010000000081111561061f57600080fd5b82018360208201111561063157600080fd5b8035906020019184602083028401116401000000008311171561065357600080fd5b909192939192939080359060200190929190505050611761565b604051808215151515815260200191505060405180910390f35b61068f6117ec565b604051808215151515815260200191505060405180910390f35b6106b1611844565b005b6106bb611b1d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106fb5780820151818401526020810190506106e0565b50505050905090810190601f1680156107285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107826004803603604081101561074c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611bbf565b604051808215151515815260200191505060405180910390f35b6107e8600480360360408110156107b257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611dc6565b604051808215151515815260200191505060405180910390f35b6109056004803603608081101561081857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561087f57600080fd5b82018360208201111561089157600080fd5b803590602001918460018302840111640100000000831117156108b357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611e0f565b604051808215151515815260200191505060405180910390f35b610927612299565b005b610a0c6004803603606081101561093f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561098657600080fd5b82018360208201111561099857600080fd5b803590602001918460018302840111640100000000831117156109ba57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506123a0565b604051808215151515815260200191505060405180910390f35b610a7260048036036040811015610a3c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612643565b604051808215151515815260200191505060405180910390f35b610aee60048036036040811015610aa257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127f5565b6040518082815260200191505060405180910390f35b610b3060048036036020811015610b1a57600080fd5b810190808035906020019092919050505061287c565b005b610b7460048036036020811015610b4857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b44565b005b610b7e612ce8565b6040518082815260200191505060405180910390f35b606060078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c2c5780601f10610c0157610100808354040283529160200191610c2c565b820191906000526020600020905b815481529060010190602001808311610c0f57829003601f168201915b5050505050905090565b600082610c4281612cee565b82600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a3600191505092915050565b6000600654905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610de5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061323f6022913960400191505060405180910390fd5b81610def81612cee565b600d60159054906101000a900460ff16151515610e57576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806132e66022913960400191505060405180910390fd5b6001600d60156101000a81548160ff021916908315150217905550610e8782600654612e1d90919063ffffffff16565b60068190555081600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6000610f1884848460006040519080825280601f01601f191660200182016040528015610f125781602001600182028038833980820191505090505b50611e0f565b90509392505050565b6000600960009054906101000a900460ff16905090565b600082610f4481612cee565b610fd383600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1d90919063ffffffff16565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611230576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061323f6022913960400191505060405180910390fd5b8061123a81612cee565b600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156112e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806133086026913960400191505060405180910390fd5b600d60149054906101000a900460ff16151515611368576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f436f6e74726163742077617320616c7265616479206d696772617465642e000081525060200191505060405180910390fd5b81600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600080611405855185612ea790919063ffffffff16565b90506114113382612f4e565b61146381600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fec90919063ffffffff16565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008090505b8551811015611754576114d586828151811015156114c657fe5b90602001906020020151612cee565b61153e85600a600089858151811015156114eb57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1d90919063ffffffff16565b600a6000888481518110151561155057fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115b886828151811015156115a957fe5b90602001906020020151613077565b156115e2576115e03387838151811015156115cf57fe5b90602001906020020151878761308a565b505b85818151811015156115f057fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c1687876040518083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611690578082015181840152602081019050611675565b50505050905090810190601f1680156116bd5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a385818151811015156116d957fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a380806001019150506114ac565b6001925050509392505050565b60006117e3848480806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508360006040519080825280601f01601f1916602001820160405280156117dd5781602001600182028038833980820191505090505b506113ee565b90509392505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156118ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806132616027913960400191505060405180910390fd5b6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115156119aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f20746f6b656e7320746f206d6967726174652e000000000000000000000081525060200191505060405180910390fd5b6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167fc1a660f72152f0a9017990c6f38d7fe2dbb8b22e34a3c5a33a4a70ad7408d1dc826040518082815260200191505060405180910390a2600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c31e8e4f33836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611b0257600080fd5b505af1158015611b16573d6000803e3d6000fd5b5050505050565b606060088054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611bb55780601f10611b8a57610100808354040283529160200191611bb5565b820191906000526020600020905b815481529060010190602001808311611b9857829003601f168201915b5050505050905090565b600082611bcb81612cee565b611c5a83600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fec90919063ffffffff16565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b6000611e07838360006040519080825280601f01601f191660200182016040528015611e015781602001600182028038833980820191505090505b506123a0565b905092915050565b600083611e1b81612cee565b8584611e278282612f4e565b600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548611151515611efe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806133716025913960400191505060405180910390fd5b611f5086600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fec90919063ffffffff16565b600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fe586600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1d90919063ffffffff16565b600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120b786600b60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fec90919063ffffffff16565b600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061214087613077565b15612153576121518888888861308a565b505b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c1688886040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156121ea5780820151818401526020810190506121cf565b50505050905090810190601f1680156122175780820380516001836020036101000a031916815260200191505b50935050505060405180910390a38673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a360019350505050949350505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612341576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806132b66030913960400191505060405180910390fd5b6000600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60146101000a81548160ff021916908315150217905550565b6000836123ac81612cee565b33846123b88282612f4e565b61240a86600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fec90919063ffffffff16565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061249f86600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1d90919063ffffffff16565b600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124eb87613077565b156124fe576124fc3388888861308a565b505b8673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c1688886040518083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561259557808201518184015260208101905061257a565b50505050905090810190601f1680156125c25780820380516001836020036101000a031916815260200191505b50935050505060405180910390a38673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a3600193505050509392505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156126ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061323f6022913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156127b257600080fd5b505af11580156127c6573d6000803e3d6000fd5b505050506040513d60208110156127dc57600080fd5b8101908080519060200190929190505050905092915050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b33816128888282612f4e565b82600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515612922576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061321b6024913960400191505060405180910390fd5b61293783600654612fec90919063ffffffff16565b60068190555061298f83600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fec90919063ffffffff16565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c168560006040519080825280601f01601f191660200182016040528015612a575781602001600182028038833980820191505090505b506040518083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612a9e578082015181840152602081019050612a83565b50505050905090810190601f168015612acb5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612bec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061323f6022913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612c2857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60005481565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612d93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f54686520616464726573732063616e277420626520626c616e6b2e000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612e1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613288602e913960400191505060405180910390fd5b50565b6000808284019050838110151515612e9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f416464696e67206572726f722e0000000000000000000000000000000000000081525060200191505060405180910390fd5b8091505092915050565b600080831415612eba5760009050612f48565b60008284029050828482811515612ecd57fe5b04141515612f43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4d756c7469706c79696e67206572726f722e000000000000000000000000000081525060200191505060405180910390fd5b809150505b92915050565b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515612fe8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604381526020018061332e6043913960600191505060405180910390fd5b5050565b6000828211151515613066576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5375627472616374696f6e206572726f722e000000000000000000000000000081525060200191505060405180910390fd5b600082840390508091505092915050565b600080823b905060008111915050919050565b6000808490508073ffffffffffffffffffffffffffffffffffffffff16634c123019338887876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561318557808201518184015260208101905061316a565b50505050905090810190601f1680156131b25780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156131d457600080fd5b505af11580156131e8573d6000803e3d6000fd5b505050506040513d60208110156131fe57600080fd5b810190808051906020019092919050505091505094935050505056fe43616e2774206275726e206d6f726520746f6b656e73207468616e20796f75206f776e2e4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f6e2e4d6967726174696f6e20697320636c6f736564206f7220686176656e277420737461727465642e54686520616464726573732063616e277420706f696e7420746f2045676720736d61727420636f6e74726163742e4f6e6c79204d6967726174696f6e204167656e742063616e2066696e616c697a6520746865206d6967726174696f6e2e43726f776473616c6520616464726573732077617320616c7265616479207365742e4d6967726174696f6e204167656e74207761732073706563696669656420616c72656164792e537065636966696564206164647265737320686173206c65737320746f6b656e73207468616e20726571756972656420666f722074686973206f7065726174696f6e2e5472616e736665722076616c756520657863656564732074686520616c6c6f77616e63652ea165627a7a7230582040ad6907111d3407466e1bd4c28912764f109d6148c84cda468836590339dce80029000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000d0d094863f85864ada000000000000000000000000000001c9512f82cda557b2c69b65737f9e23368d2281e00000000000000000000000000000000000000000052b7d2dcc80cd2e40000000000000000000000000000003cd0a1615d10da7e7e619d7c957dcf9c17264b75000000000000000000000000000000000000000009b18ab5df7180b6b8000000000000000000000000000000ae9137f9e0cca9880530e5a18ba97102c53fb05f000000000000000000000000000000000000000002e87669c308736a040000000000000000000000000000007bb3cd844210f477070fa7170c7148ef4884ef43000000000000000000000000000000000000000000205055e4b657710da00000000000000000000000000000000000000000000000000000000000000000000945676720546f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034547470000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b5060043610610175576000357c0100000000000000000000000000000000000000000000000000000000900480638fd3ab80116100e0578063be45fd6211610099578063be45fd6214610929578063dc39d06d14610a26578063dd62ed3e14610a8c578063dd7f92d214610b04578063f2fde38b14610b32578063f7abab9e14610b7657610175565b80638fd3ab80146106a957806395d89b41146106b3578063a457c2d714610736578063a9059cbb1461079c578063ab67aa5814610802578063b78b60871461091f57610175565b80633950935111610132578063395093511461037957806370a08231146103df57806375e2ff651461043757806376df1d5f1461047b578063806e085e146105ec5780638f32d59b1461068757610175565b806306fdde031461017a578063095ea7b3146101fd57806318160ddd1461026357806322ed63021461028157806323b872dd146102cf578063313ce56714610355575b600080fd5b610182610b94565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c25780820151818401526020810190506101a7565b50505050905090810190601f1680156101ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102496004803603604081101561021357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c36565b604051808215151515815260200191505060405180910390f35b61026b610d33565b6040518082815260200191505060405180910390f35b6102cd6004803603604081101561029757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d3d565b005b61033b600480360360608110156102e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ed6565b604051808215151515815260200191505060405180910390f35b61035d610f21565b604051808260ff1660ff16815260200191505060405180910390f35b6103c56004803603604081101561038f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f38565b604051808215151515815260200191505060405180910390f35b610421600480360360208110156103f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061113f565b6040518082815260200191505060405180910390f35b6104796004803603602081101561044d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611188565b005b6105d26004803603606081101561049157600080fd5b81019080803590602001906401000000008111156104ae57600080fd5b8201836020820111156104c057600080fd5b803590602001918460208302840111640100000000831117156104e257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001909291908035906020019064010000000081111561054c57600080fd5b82018360208201111561055e57600080fd5b8035906020019184600183028401116401000000008311171561058057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506113ee565b604051808215151515815260200191505060405180910390f35b61066d6004803603604081101561060257600080fd5b810190808035906020019064010000000081111561061f57600080fd5b82018360208201111561063157600080fd5b8035906020019184602083028401116401000000008311171561065357600080fd5b909192939192939080359060200190929190505050611761565b604051808215151515815260200191505060405180910390f35b61068f6117ec565b604051808215151515815260200191505060405180910390f35b6106b1611844565b005b6106bb611b1d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106fb5780820151818401526020810190506106e0565b50505050905090810190601f1680156107285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107826004803603604081101561074c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611bbf565b604051808215151515815260200191505060405180910390f35b6107e8600480360360408110156107b257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611dc6565b604051808215151515815260200191505060405180910390f35b6109056004803603608081101561081857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561087f57600080fd5b82018360208201111561089157600080fd5b803590602001918460018302840111640100000000831117156108b357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611e0f565b604051808215151515815260200191505060405180910390f35b610927612299565b005b610a0c6004803603606081101561093f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561098657600080fd5b82018360208201111561099857600080fd5b803590602001918460018302840111640100000000831117156109ba57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506123a0565b604051808215151515815260200191505060405180910390f35b610a7260048036036040811015610a3c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612643565b604051808215151515815260200191505060405180910390f35b610aee60048036036040811015610aa257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127f5565b6040518082815260200191505060405180910390f35b610b3060048036036020811015610b1a57600080fd5b810190808035906020019092919050505061287c565b005b610b7460048036036020811015610b4857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b44565b005b610b7e612ce8565b6040518082815260200191505060405180910390f35b606060078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c2c5780601f10610c0157610100808354040283529160200191610c2c565b820191906000526020600020905b815481529060010190602001808311610c0f57829003601f168201915b5050505050905090565b600082610c4281612cee565b82600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a3600191505092915050565b6000600654905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610de5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061323f6022913960400191505060405180910390fd5b81610def81612cee565b600d60159054906101000a900460ff16151515610e57576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806132e66022913960400191505060405180910390fd5b6001600d60156101000a81548160ff021916908315150217905550610e8782600654612e1d90919063ffffffff16565b60068190555081600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6000610f1884848460006040519080825280601f01601f191660200182016040528015610f125781602001600182028038833980820191505090505b50611e0f565b90509392505050565b6000600960009054906101000a900460ff16905090565b600082610f4481612cee565b610fd383600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1d90919063ffffffff16565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611230576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061323f6022913960400191505060405180910390fd5b8061123a81612cee565b600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156112e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806133086026913960400191505060405180910390fd5b600d60149054906101000a900460ff16151515611368576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f436f6e74726163742077617320616c7265616479206d696772617465642e000081525060200191505060405180910390fd5b81600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600080611405855185612ea790919063ffffffff16565b90506114113382612f4e565b61146381600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fec90919063ffffffff16565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008090505b8551811015611754576114d586828151811015156114c657fe5b90602001906020020151612cee565b61153e85600a600089858151811015156114eb57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1d90919063ffffffff16565b600a6000888481518110151561155057fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115b886828151811015156115a957fe5b90602001906020020151613077565b156115e2576115e03387838151811015156115cf57fe5b90602001906020020151878761308a565b505b85818151811015156115f057fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c1687876040518083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611690578082015181840152602081019050611675565b50505050905090810190601f1680156116bd5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a385818151811015156116d957fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a380806001019150506114ac565b6001925050509392505050565b60006117e3848480806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508360006040519080825280601f01601f1916602001820160405280156117dd5781602001600182028038833980820191505090505b506113ee565b90509392505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156118ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806132616027913960400191505060405180910390fd5b6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115156119aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f20746f6b656e7320746f206d6967726174652e000000000000000000000081525060200191505060405180910390fd5b6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167fc1a660f72152f0a9017990c6f38d7fe2dbb8b22e34a3c5a33a4a70ad7408d1dc826040518082815260200191505060405180910390a2600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c31e8e4f33836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611b0257600080fd5b505af1158015611b16573d6000803e3d6000fd5b5050505050565b606060088054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611bb55780601f10611b8a57610100808354040283529160200191611bb5565b820191906000526020600020905b815481529060010190602001808311611b9857829003601f168201915b5050505050905090565b600082611bcb81612cee565b611c5a83600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fec90919063ffffffff16565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b6000611e07838360006040519080825280601f01601f191660200182016040528015611e015781602001600182028038833980820191505090505b506123a0565b905092915050565b600083611e1b81612cee565b8584611e278282612f4e565b600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548611151515611efe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806133716025913960400191505060405180910390fd5b611f5086600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fec90919063ffffffff16565b600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fe586600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1d90919063ffffffff16565b600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120b786600b60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fec90919063ffffffff16565b600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061214087613077565b15612153576121518888888861308a565b505b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c1688886040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156121ea5780820151818401526020810190506121cf565b50505050905090810190601f1680156122175780820380516001836020036101000a031916815260200191505b50935050505060405180910390a38673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a360019350505050949350505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612341576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806132b66030913960400191505060405180910390fd5b6000600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60146101000a81548160ff021916908315150217905550565b6000836123ac81612cee565b33846123b88282612f4e565b61240a86600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fec90919063ffffffff16565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061249f86600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1d90919063ffffffff16565b600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124eb87613077565b156124fe576124fc3388888861308a565b505b8673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c1688886040518083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561259557808201518184015260208101905061257a565b50505050905090810190601f1680156125c25780820380516001836020036101000a031916815260200191505b50935050505060405180910390a38673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a3600193505050509392505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156126ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061323f6022913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156127b257600080fd5b505af11580156127c6573d6000803e3d6000fd5b505050506040513d60208110156127dc57600080fd5b8101908080519060200190929190505050905092915050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b33816128888282612f4e565b82600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515612922576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061321b6024913960400191505060405180910390fd5b61293783600654612fec90919063ffffffff16565b60068190555061298f83600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fec90919063ffffffff16565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c168560006040519080825280601f01601f191660200182016040528015612a575781602001600182028038833980820191505090505b506040518083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612a9e578082015181840152602081019050612a83565b50505050905090810190601f168015612acb5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612bec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061323f6022913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612c2857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60005481565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612d93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f54686520616464726573732063616e277420626520626c616e6b2e000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612e1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613288602e913960400191505060405180910390fd5b50565b6000808284019050838110151515612e9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f416464696e67206572726f722e0000000000000000000000000000000000000081525060200191505060405180910390fd5b8091505092915050565b600080831415612eba5760009050612f48565b60008284029050828482811515612ecd57fe5b04141515612f43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4d756c7469706c79696e67206572726f722e000000000000000000000000000081525060200191505060405180910390fd5b809150505b92915050565b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515612fe8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604381526020018061332e6043913960600191505060405180910390fd5b5050565b6000828211151515613066576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5375627472616374696f6e206572726f722e000000000000000000000000000081525060200191505060405180910390fd5b600082840390508091505092915050565b600080823b905060008111915050919050565b6000808490508073ffffffffffffffffffffffffffffffffffffffff16634c123019338887876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561318557808201518184015260208101905061316a565b50505050905090810190601f1680156131b25780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156131d457600080fd5b505af11580156131e8573d6000803e3d6000fd5b505050506040513d60208110156131fe57600080fd5b810190808051906020019092919050505091505094935050505056fe43616e2774206275726e206d6f726520746f6b656e73207468616e20796f75206f776e2e4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f6e2e4d6967726174696f6e20697320636c6f736564206f7220686176656e277420737461727465642e54686520616464726573732063616e277420706f696e7420746f2045676720736d61727420636f6e74726163742e4f6e6c79204d6967726174696f6e204167656e742063616e2066696e616c697a6520746865206d6967726174696f6e2e43726f776473616c6520616464726573732077617320616c7265616479207365742e4d6967726174696f6e204167656e74207761732073706563696669656420616c72656164792e537065636966696564206164647265737320686173206c65737320746f6b656e73207468616e20726571756972656420666f722074686973206f7065726174696f6e2e5472616e736665722076616c756520657863656564732074686520616c6c6f77616e63652ea165627a7a7230582040ad6907111d3407466e1bd4c28912764f109d6148c84cda468836590339dce80029

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

000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000d0d094863f85864ada000000000000000000000000000001c9512f82cda557b2c69b65737f9e23368d2281e00000000000000000000000000000000000000000052b7d2dcc80cd2e40000000000000000000000000000003cd0a1615d10da7e7e619d7c957dcf9c17264b75000000000000000000000000000000000000000009b18ab5df7180b6b8000000000000000000000000000000ae9137f9e0cca9880530e5a18ba97102c53fb05f000000000000000000000000000000000000000002e87669c308736a040000000000000000000000000000007bb3cd844210f477070fa7170c7148ef4884ef43000000000000000000000000000000000000000000205055e4b657710da00000000000000000000000000000000000000000000000000000000000000000000945676720546f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034547470000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name (string): Egg Token
Arg [1] : symbol (string): EGG
Arg [2] : totalSupply (uint256): 4039065000000000000000000000
Arg [3] : developmentTeamAddress (address): 0x1C9512F82CDa557b2c69b65737f9E23368D2281E
Arg [4] : developmentTeamBalance (uint256): 100000000000000000000000000
Arg [5] : marketingTeamAddress (address): 0x3cD0A1615d10Da7e7E619D7C957dCF9C17264b75
Arg [6] : marketingTeamBalance (uint256): 3000000000000000000000000000
Arg [7] : productTeamAddress (address): 0xaE9137f9E0CcA9880530E5A18Ba97102c53Fb05f
Arg [8] : productTeamBalance (uint256): 900000000000000000000000000
Arg [9] : airdropAddress (address): 0x7Bb3Cd844210f477070FA7170C7148Ef4884Ef43
Arg [10] : airdropBalance (uint256): 39065000000000000000000000

-----Encoded View---------------
15 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000160
Arg [1] : 00000000000000000000000000000000000000000000000000000000000001a0
Arg [2] : 00000000000000000000000000000000000000000d0d094863f85864ada00000
Arg [3] : 0000000000000000000000001c9512f82cda557b2c69b65737f9e23368d2281e
Arg [4] : 00000000000000000000000000000000000000000052b7d2dcc80cd2e4000000
Arg [5] : 0000000000000000000000003cd0a1615d10da7e7e619d7c957dcf9c17264b75
Arg [6] : 000000000000000000000000000000000000000009b18ab5df7180b6b8000000
Arg [7] : 000000000000000000000000ae9137f9e0cca9880530e5a18ba97102c53fb05f
Arg [8] : 000000000000000000000000000000000000000002e87669c308736a04000000
Arg [9] : 0000000000000000000000007bb3cd844210f477070fa7170c7148ef4884ef43
Arg [10] : 000000000000000000000000000000000000000000205055e4b657710da00000
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [12] : 45676720546f6b656e0000000000000000000000000000000000000000000000
Arg [13] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [14] : 4547470000000000000000000000000000000000000000000000000000000000


Swarm Source

bzzr://40ad6907111d3407466e1bd4c28912764f109d6148c84cda468836590339dce8
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.