ETH Price: $2,625.52 (-2.66%)
Gas: 0.88 Gwei

Token

COZYBOT (CZY)
 

Overview

Max Total Supply

1,000,000 CZY

Holders

38

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
Cozy

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-07
*/

/**
 *Submitted for verification at Etherscan.io on 2023-12-06
*/

// SPDX-License-Identifier: UNLICENSED


pragma solidity ^0.7.6;
 
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
 
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
 
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
 
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
 
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
 
        return c;
    }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }
 
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}
 
/**
 * BEP20 standard interface.
 */
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
 
/**
 * Allows for contract ownership along with multi-address authorization
 */
abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;
 
    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }
 
    /**
     * Function modifier to require caller to be contract owner
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }
 
    /**
     * Function modifier to require caller to be authorized
     */
    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }
 
    /**
     * Authorize address. Owner only
     */
    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }
 
    /**
     * Remove address' authorization. Owner only
     */
    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }
 
    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }
 
    /**
     * Return address' authorization status
     */
    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }
 
    /**
     * Transfer ownership to new address. Caller must be owner. Leaves old owner authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }
 
    event OwnershipTransferred(address owner);
}
 
interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}
 
interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
 
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
 
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
 
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
 
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
 
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
 
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
 
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}
 
contract Cozy is IERC20, Auth {
    using SafeMath for uint256;
 
    address WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    string constant _name = 'COZYBOT';
    string constant _symbol = 'CZY';
    uint8 constant _decimals = 9;
    uint256 _totalSupply = 1000000 * (10 ** _decimals);
    uint256 _maxTxAmount = _totalSupply / 100;
    uint256 _maxWalletAmount = _totalSupply / 50;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping(address => uint256) _holderLastTransferTimestamp;
 
    uint256 liquidityFee = 0;
    uint256 marketingFee = 350;
    uint256 totalFee = 350;
    uint256 feeDenominator = 1000;
 
    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;
 
 
    IDEXRouter public router;
    address public pair;
    uint256 public launchedAt;
    uint256 public launchedTime;
    bool public swapEnabled = true;
 
    uint256 public swapThreshold = _totalSupply / 50000; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
 
    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = uint256(-1);
 
        isFeeExempt[owner] = true;
        isTxLimitExempt[owner] = true;
        isTxLimitExempt[address(this)] = true;
        autoLiquidityReceiver = msg.sender;
	    marketingFeeReceiver = msg.sender;
        _balances[owner] = _totalSupply;
        emit Transfer(address(0), owner, _totalSupply);
    }
 
    receive() external payable { }
    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
 
    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }
 
    function approveMax(address spender) external returns (bool) {
        return approve(spender, uint256(-1));
    }
 
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }
 
    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != uint256(-1)){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }
        return _transferFrom(sender, recipient, amount);
    }
 
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(shouldSwapBack()){ swapBack(); }
        if(!launched() && recipient == pair){ require(_balances[sender] > 0); launch(); }
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        if(launchMode() && recipient != pair && !isTxLimitExempt[recipient]){
	require (_balances[recipient] + amount <= _maxWalletAmount);
	require (amount <= _maxTxAmount);
	require (_holderLastTransferTimestamp[recipient] + 30 <= block.timestamp);} 
        _holderLastTransferTimestamp[recipient] = block.timestamp;
	uint256 amountReceived;
        if(!isFeeExempt[recipient]){amountReceived= shouldTakeFee(sender) ? takeFee(sender, amount) : amount;}else{amountReceived = amount;}
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
 
    function getTotalFee() public view returns (uint256) {
        if(launchedAt + 2 >= block.number){ return feeDenominator.sub(1); }
        return totalFee;
    }
 
    function shouldTakeFee(address sender) internal view returns (bool) {
       return !isFeeExempt[sender];
    }
 
    function takeFee(address sender,uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(getTotalFee()).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }
 
    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }
 
    function swapBack() internal swapping {
        uint256 amountToLiquify = swapThreshold.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);
 
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;
 
        uint256 balanceBefore = address(this).balance;
 
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp+360
        );
 
        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));
        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
    	payable(marketingFeeReceiver).transfer(amountETHMarketing);
 
 
        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp+360
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }
 
    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }
 
    function launch() internal{
	    require(!launched());
        launchedAt = block.number;
	    launchedTime = block.timestamp;
    }
 
    function manuallySwap()external authorized{
        swapBack();
    }
 
    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }
 
    function setFeeReceivers(address _autoLiquidityReceiver,  address _marketingFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
    }
 
    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold =_totalSupply.div(_amount);
    }
 
    function setFees(uint256 _liquidityFee, uint256 _marketingFee, uint256 _feeDenominator) external authorized {
        liquidityFee = _liquidityFee;
        marketingFee = _marketingFee;
        totalFee = _liquidityFee.add(_marketingFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator/5);
    }
 
    function launchModeStatus() external view returns(bool) {
        return launchMode();
    }
 
    function launchMode() internal view returns(bool) {
        return launchedAt !=0 && launchedAt + 3 <= block.number && launchedTime + 5 minutes >= block.timestamp ;
    }
 
    function recoverEth() external onlyOwner() {
        payable(msg.sender).transfer(address(this).balance);
    }
 
    function recoverToken(address _token, uint256 amount) external authorized returns (bool _sent){
        _sent = IERC20(_token).transfer(msg.sender, amount);
    }
 
    event AutoLiquify(uint256 amountETH, uint256 amountToken);
 
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToken","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchModeStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manuallySwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"recoverToken","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960ff16600a0a620f4240026003556064600354816200007657fe5b046004556032600354816200008757fe5b046005556000600b5561015e600c5561015e600d556103e8600e556001601560006101000a81548160ff02191690831515021790555061c35060035481620000cb57fe5b04601655348015620000dc57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200023457600080fd5b505afa15801562000249573d6000803e3d6000fd5b505050506040513d60208110156200026057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156200031a57600080fd5b505af11580156200032f573d6000803e3d6000fd5b505050506040513d60208110156200034657600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600354600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6003546040518082815260200191505060405180910390a3612c0480620007256000396000f3fe6080604052600436106101f25760003560e01c806395d89b411161010d578063ca33e64c116100a0578063e96fada21161006f578063e96fada214610abf578063f0b37c0414610b00578063f2fde38b14610b51578063f887ea4014610ba2578063fe9fbb8014610be3576101f9565b8063ca33e64c14610963578063cec10c11146109a4578063dd62ed3e146109f3578063df20fd4914610a78576101f9565b8063b29a8140116100dc578063b29a81401461085f578063b6a5d7de146108d0578063bcdb446b14610921578063bf56b37114610938576101f9565b806395d89b41146106ac578063a4b45c001461073c578063a8aa1b31146107ad578063a9059cbb146107ee576101f9565b8063571ac8b0116101855780636ddd1713116101545780636ddd1713146105ae57806370a08231146105db5780637ae316d014610640578063893d20e81461066b576101f9565b8063571ac8b0146104a85780635804f1e41461050f5780635fe7208c1461053a578063658d4b7f14610551576101f9565b806323b872dd116101c157806323b872dd146103555780632f54bf6e146103e6578063313ce5671461044d5780634d54288b1461047b576101f9565b80630445b667146101fe57806306fdde0314610229578063095ea7b3146102b957806318160ddd1461032a576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b50610213610c4a565b6040518082815260200191505060405180910390f35b34801561023557600080fd5b5061023e610c50565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561027e578082015181840152602081019050610263565b50505050905090810190601f1680156102ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c557600080fd5b50610312600480360360408110156102dc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c8d565b60405180821515815260200191505060405180910390f35b34801561033657600080fd5b5061033f610d7f565b6040518082815260200191505060405180910390f35b34801561036157600080fd5b506103ce6004803603606081101561037857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d89565b60405180821515815260200191505060405180910390f35b3480156103f257600080fd5b506104356004803603602081101561040957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f89565b60405180821515815260200191505060405180910390f35b34801561045957600080fd5b50610462610fe2565b604051808260ff16815260200191505060405180910390f35b34801561048757600080fd5b50610490610feb565b60405180821515815260200191505060405180910390f35b3480156104b457600080fd5b506104f7600480360360208110156104cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ffa565b60405180821515815260200191505060405180910390f35b34801561051b57600080fd5b5061052461102d565b6040518082815260200191505060405180910390f35b34801561054657600080fd5b5061054f611033565b005b34801561055d57600080fd5b506105ac6004803603604081101561057457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506110b8565b005b3480156105ba57600080fd5b506105c361118e565b60405180821515815260200191505060405180910390f35b3480156105e757600080fd5b5061062a600480360360208110156105fe57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111a1565b6040518082815260200191505060405180910390f35b34801561064c57600080fd5b506106556111ea565b6040518082815260200191505060405180910390f35b34801561067757600080fd5b5061068061121e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106b857600080fd5b506106c1611247565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107015780820151818401526020810190506106e6565b50505050905090810190601f16801561072e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561074857600080fd5b506107ab6004803603604081101561075f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611284565b005b3480156107b957600080fd5b506107c2611385565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107fa57600080fd5b506108476004803603604081101561081157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113ab565b60405180821515815260200191505060405180910390f35b34801561086b57600080fd5b506108b86004803603604081101561088257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113c0565b60405180821515815260200191505060405180910390f35b3480156108dc57600080fd5b5061091f600480360360208110156108f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114f1565b005b34801561092d57600080fd5b506109366115c6565b005b34801561094457600080fd5b5061094d61168a565b6040518082815260200191505060405180910390f35b34801561096f57600080fd5b50610978611690565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109b057600080fd5b506109f1600480360360608110156109c757600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506116b6565b005b3480156109ff57600080fd5b50610a6260048036036040811015610a1657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061177e565b6040518082815260200191505060405180910390f35b348015610a8457600080fd5b50610abd60048036036040811015610a9b57600080fd5b8101908080351515906020019092919080359060200190929190505050611805565b005b348015610acb57600080fd5b50610ad46118b9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b0c57600080fd5b50610b4f60048036036020811015610b2357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118df565b005b348015610b5d57600080fd5b50610ba060048036036020811015610b7457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119b5565b005b348015610bae57600080fd5b50610bb7611b17565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610bef57600080fd5b50610c3260048036036020811015610c0657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b3d565b60405180821515815260200191505060405180910390f35b60165481565b60606040518060400160405280600781526020017f434f5a59424f5400000000000000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f7557610ef4826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b939092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f80848484611c53565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b6000610ff5612125565b905090565b6000611026827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610c8d565b9050919050565b60145481565b61103c33611b3d565b6110ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b6110b6612155565b565b6110c133610f89565b611133576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601560009054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600043600260135401106112155761120e6001600e5461269f90919063ffffffff16565b905061121b565b600d5490505b90565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f435a590000000000000000000000000000000000000000000000000000000000815250905090565b61128d33610f89565b6112ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006113b8338484611c53565b905092915050565b60006113cb33611b3d565b61143d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156114ae57600080fd5b505af11580156114c2573d6000803e3d6000fd5b505050506040513d60208110156114d857600080fd5b8101908080519060200190929190505050905092915050565b6114fa33610f89565b61156c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6115cf33610f89565b611641576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611687573d6000803e3d6000fd5b50565b60135481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6116bf33611b3d565b611731576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82600b8190555081600c8190555061175282846126e990919063ffffffff16565b600d8190555080600e819055506005600e548161176b57fe5b04600d541061177957600080fd5b505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61180e33610f89565b611880576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601560006101000a81548160ff0219169083151502179055506118af8160035461277190919063ffffffff16565b6016819055505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6118e833610f89565b61195a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6119be33610f89565b611a30576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000838311158290611c40576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611c05578082015181840152602081019050611bea565b50505050905090810190601f168015611c325780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000611c5d6127bb565b15611c6b57611c6a612155565b5b611c73612892565b158015611ccd5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611d27576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611d1e57600080fd5b611d2661289f565b5b611db0826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b939092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dfb612125565b8015611e555750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611eab5750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f5f5760055482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011115611f0057600080fd5b600454821115611f0f57600080fd5b42601e600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011115611f5e57600080fd5b5b42600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661201b57611fff856128c1565b6120095782612014565b6120138584612918565b5b905061201f565b8290505b61207181600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126e990919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150509392505050565b6000806013541415801561213e57504360036013540111155b801561215057504261012c6014540110155b905090565b6001601760006101000a81548160ff02191690831515021790555060006121b060026121a2600d54612194600b54601654612a6190919063ffffffff16565b61277190919063ffffffff16565b61277190919063ffffffff16565b905060006121c98260165461269f90919063ffffffff16565b90506000600267ffffffffffffffff811180156121e557600080fd5b506040519080825280602002602001820160405280156122145781602001602082028036833780820191505090505b509050308160008151811061222557fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061228f57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947846000853061016842016040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561239657808201518184015260208101905061237b565b505050509050019650505050505050600060405180830381600087803b1580156123bf57600080fd5b505af11580156123d3573d6000803e3d6000fd5b5050505060006123ec824761269f90919063ffffffff16565b9050600061241a6124096002600b5461277190919063ffffffff16565b600d5461269f90919063ffffffff16565b90506000612458600261244a8461243c600b5488612a6190919063ffffffff16565b61277190919063ffffffff16565b61277190919063ffffffff16565b9050600061248383612475600c5487612a6190919063ffffffff16565b61277190919063ffffffff16565b9050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156124ed573d6000803e3d6000fd5b50600088111561267a57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308b600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661016842016040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b1580156125e757600080fd5b505af11580156125fb573d6000803e3d6000fd5b50505050506040513d606081101561261257600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b45068289604051808381526020018281526020019250505060405180910390a15b50505050505050506000601760006101000a81548160ff021916908315150217905550565b60006126e183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b93565b905092915050565b600080828401905083811015612767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60006127b383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ae7565b905092915050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156128285750601760009054906101000a900460ff16155b80156128405750601560009054906101000a900460ff165b801561288d5750601654600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6000806013541415905090565b6128a7612892565b156128b157600080fd5b4360138190555042601481905550565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080612949600e5461293b61292c6111ea565b86612a6190919063ffffffff16565b61277190919063ffffffff16565b905061299d81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126e990919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3612a58818461269f90919063ffffffff16565b91505092915050565b600080831415612a745760009050612ae1565b6000828402905082848281612a8557fe5b0414612adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612bae6021913960400191505060405180910390fd5b809150505b92915050565b60008083118290612b93576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612b58578082015181840152602081019050612b3d565b50505050905090810190601f168015612b855780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612b9f57fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220c746b4ed8988079943ac5fdfeb28964755f061da4436fe34d7fa3a538f1934e064736f6c63430007060033

Deployed Bytecode

0x6080604052600436106101f25760003560e01c806395d89b411161010d578063ca33e64c116100a0578063e96fada21161006f578063e96fada214610abf578063f0b37c0414610b00578063f2fde38b14610b51578063f887ea4014610ba2578063fe9fbb8014610be3576101f9565b8063ca33e64c14610963578063cec10c11146109a4578063dd62ed3e146109f3578063df20fd4914610a78576101f9565b8063b29a8140116100dc578063b29a81401461085f578063b6a5d7de146108d0578063bcdb446b14610921578063bf56b37114610938576101f9565b806395d89b41146106ac578063a4b45c001461073c578063a8aa1b31146107ad578063a9059cbb146107ee576101f9565b8063571ac8b0116101855780636ddd1713116101545780636ddd1713146105ae57806370a08231146105db5780637ae316d014610640578063893d20e81461066b576101f9565b8063571ac8b0146104a85780635804f1e41461050f5780635fe7208c1461053a578063658d4b7f14610551576101f9565b806323b872dd116101c157806323b872dd146103555780632f54bf6e146103e6578063313ce5671461044d5780634d54288b1461047b576101f9565b80630445b667146101fe57806306fdde0314610229578063095ea7b3146102b957806318160ddd1461032a576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b50610213610c4a565b6040518082815260200191505060405180910390f35b34801561023557600080fd5b5061023e610c50565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561027e578082015181840152602081019050610263565b50505050905090810190601f1680156102ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c557600080fd5b50610312600480360360408110156102dc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c8d565b60405180821515815260200191505060405180910390f35b34801561033657600080fd5b5061033f610d7f565b6040518082815260200191505060405180910390f35b34801561036157600080fd5b506103ce6004803603606081101561037857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d89565b60405180821515815260200191505060405180910390f35b3480156103f257600080fd5b506104356004803603602081101561040957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f89565b60405180821515815260200191505060405180910390f35b34801561045957600080fd5b50610462610fe2565b604051808260ff16815260200191505060405180910390f35b34801561048757600080fd5b50610490610feb565b60405180821515815260200191505060405180910390f35b3480156104b457600080fd5b506104f7600480360360208110156104cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ffa565b60405180821515815260200191505060405180910390f35b34801561051b57600080fd5b5061052461102d565b6040518082815260200191505060405180910390f35b34801561054657600080fd5b5061054f611033565b005b34801561055d57600080fd5b506105ac6004803603604081101561057457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506110b8565b005b3480156105ba57600080fd5b506105c361118e565b60405180821515815260200191505060405180910390f35b3480156105e757600080fd5b5061062a600480360360208110156105fe57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111a1565b6040518082815260200191505060405180910390f35b34801561064c57600080fd5b506106556111ea565b6040518082815260200191505060405180910390f35b34801561067757600080fd5b5061068061121e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106b857600080fd5b506106c1611247565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107015780820151818401526020810190506106e6565b50505050905090810190601f16801561072e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561074857600080fd5b506107ab6004803603604081101561075f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611284565b005b3480156107b957600080fd5b506107c2611385565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107fa57600080fd5b506108476004803603604081101561081157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113ab565b60405180821515815260200191505060405180910390f35b34801561086b57600080fd5b506108b86004803603604081101561088257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113c0565b60405180821515815260200191505060405180910390f35b3480156108dc57600080fd5b5061091f600480360360208110156108f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114f1565b005b34801561092d57600080fd5b506109366115c6565b005b34801561094457600080fd5b5061094d61168a565b6040518082815260200191505060405180910390f35b34801561096f57600080fd5b50610978611690565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109b057600080fd5b506109f1600480360360608110156109c757600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506116b6565b005b3480156109ff57600080fd5b50610a6260048036036040811015610a1657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061177e565b6040518082815260200191505060405180910390f35b348015610a8457600080fd5b50610abd60048036036040811015610a9b57600080fd5b8101908080351515906020019092919080359060200190929190505050611805565b005b348015610acb57600080fd5b50610ad46118b9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b0c57600080fd5b50610b4f60048036036020811015610b2357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118df565b005b348015610b5d57600080fd5b50610ba060048036036020811015610b7457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119b5565b005b348015610bae57600080fd5b50610bb7611b17565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610bef57600080fd5b50610c3260048036036020811015610c0657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b3d565b60405180821515815260200191505060405180910390f35b60165481565b60606040518060400160405280600781526020017f434f5a59424f5400000000000000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f7557610ef4826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b939092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f80848484611c53565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b6000610ff5612125565b905090565b6000611026827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610c8d565b9050919050565b60145481565b61103c33611b3d565b6110ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b6110b6612155565b565b6110c133610f89565b611133576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601560009054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600043600260135401106112155761120e6001600e5461269f90919063ffffffff16565b905061121b565b600d5490505b90565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f435a590000000000000000000000000000000000000000000000000000000000815250905090565b61128d33610f89565b6112ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006113b8338484611c53565b905092915050565b60006113cb33611b3d565b61143d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156114ae57600080fd5b505af11580156114c2573d6000803e3d6000fd5b505050506040513d60208110156114d857600080fd5b8101908080519060200190929190505050905092915050565b6114fa33610f89565b61156c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6115cf33610f89565b611641576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611687573d6000803e3d6000fd5b50565b60135481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6116bf33611b3d565b611731576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82600b8190555081600c8190555061175282846126e990919063ffffffff16565b600d8190555080600e819055506005600e548161176b57fe5b04600d541061177957600080fd5b505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61180e33610f89565b611880576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601560006101000a81548160ff0219169083151502179055506118af8160035461277190919063ffffffff16565b6016819055505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6118e833610f89565b61195a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6119be33610f89565b611a30576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000838311158290611c40576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611c05578082015181840152602081019050611bea565b50505050905090810190601f168015611c325780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000611c5d6127bb565b15611c6b57611c6a612155565b5b611c73612892565b158015611ccd5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611d27576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611d1e57600080fd5b611d2661289f565b5b611db0826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b939092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dfb612125565b8015611e555750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611eab5750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f5f5760055482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011115611f0057600080fd5b600454821115611f0f57600080fd5b42601e600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011115611f5e57600080fd5b5b42600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661201b57611fff856128c1565b6120095782612014565b6120138584612918565b5b905061201f565b8290505b61207181600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126e990919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150509392505050565b6000806013541415801561213e57504360036013540111155b801561215057504261012c6014540110155b905090565b6001601760006101000a81548160ff02191690831515021790555060006121b060026121a2600d54612194600b54601654612a6190919063ffffffff16565b61277190919063ffffffff16565b61277190919063ffffffff16565b905060006121c98260165461269f90919063ffffffff16565b90506000600267ffffffffffffffff811180156121e557600080fd5b506040519080825280602002602001820160405280156122145781602001602082028036833780820191505090505b509050308160008151811061222557fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061228f57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947846000853061016842016040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561239657808201518184015260208101905061237b565b505050509050019650505050505050600060405180830381600087803b1580156123bf57600080fd5b505af11580156123d3573d6000803e3d6000fd5b5050505060006123ec824761269f90919063ffffffff16565b9050600061241a6124096002600b5461277190919063ffffffff16565b600d5461269f90919063ffffffff16565b90506000612458600261244a8461243c600b5488612a6190919063ffffffff16565b61277190919063ffffffff16565b61277190919063ffffffff16565b9050600061248383612475600c5487612a6190919063ffffffff16565b61277190919063ffffffff16565b9050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156124ed573d6000803e3d6000fd5b50600088111561267a57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308b600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661016842016040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b1580156125e757600080fd5b505af11580156125fb573d6000803e3d6000fd5b50505050506040513d606081101561261257600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b45068289604051808381526020018281526020019250505060405180910390a15b50505050505050506000601760006101000a81548160ff021916908315150217905550565b60006126e183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b93565b905092915050565b600080828401905083811015612767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60006127b383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ae7565b905092915050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156128285750601760009054906101000a900460ff16155b80156128405750601560009054906101000a900460ff165b801561288d5750601654600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6000806013541415905090565b6128a7612892565b156128b157600080fd5b4360138190555042601481905550565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080612949600e5461293b61292c6111ea565b86612a6190919063ffffffff16565b61277190919063ffffffff16565b905061299d81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126e990919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3612a58818461269f90919063ffffffff16565b91505092915050565b600080831415612a745760009050612ae1565b6000828402905082848281612a8557fe5b0414612adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612bae6021913960400191505060405180910390fd5b809150505b92915050565b60008083118290612b93576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612b58578082015181840152602081019050612b3d565b50505050905090810190601f168015612b855780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612b9f57fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220c746b4ed8988079943ac5fdfeb28964755f061da4436fe34d7fa3a538f1934e064736f6c63430007060033

Deployed Bytecode Sourcemap

6384:8442:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7447:51;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8478:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8901:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8208:88;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9416:362;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3761:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8302:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14183:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9126:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7373:27;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13210:71;;;;;;;;;;;;;:::i;:::-;;13290:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7407:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8648:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10770:164;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8564:78;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8388:84;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13418:228;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7315:19;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9251:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14589:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3432:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14467:113;;;;;;;;;;;;;:::i;:::-;;7341:25;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7193:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13836:338;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8759:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13655:172;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7236:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3603:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4163:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7284:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3936:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7447:51;;;;:::o;8478:80::-;8526:13;8550:5;;;;;;;;;;;;;;;;;8543:12;;8478:80;:::o;8901:216::-;8976:4;9028:6;8993:11;:23;9005:10;8993:23;;;;;;;;;;;;;;;:32;9017:7;8993:32;;;;;;;;;;;;;;;:41;;;;9071:7;9050:37;;9059:10;9050:37;;;9080:6;9050:37;;;;;;;;;;;;;;;;;;9105:4;9098:11;;8901:216;;;;:::o;8208:88::-;8263:7;8281:12;;8274:19;;8208:88;:::o;9416:362::-;9516:4;9579:2;9536:11;:19;9548:6;9536:19;;;;;;;;;;;;;;;:31;9556:10;9536:31;;;;;;;;;;;;;;;;:46;9533:180;;9632:69;9668:6;9632:69;;;;;;;;;;;;;;;;;:11;:19;9644:6;9632:19;;;;;;;;;;;;;;;:31;9652:10;9632:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;9598:11;:19;9610:6;9598:19;;;;;;;;;;;;;;;:31;9618:10;9598:31;;;;;;;;;;;;;;;:103;;;;9533:180;9730:40;9744:6;9752:9;9763:6;9730:13;:40::i;:::-;9723:47;;9416:362;;;;;:::o;3761:103::-;3816:4;3851:5;;;;;;;;;;;3840:16;;:7;:16;;;3833:23;;3761:103;;;:::o;8302:80::-;8354:5;6626:1;8363:16;;8302:80;:::o;14183:94::-;14233:4;14257:12;:10;:12::i;:::-;14250:19;;14183:94;:::o;9126:116::-;9181:4;9205:29;9213:7;9230:2;9205:7;:29::i;:::-;9198:36;;9126:116;;;:::o;7373:27::-;;;;:::o;13210:71::-;3316:24;3329:10;3316:12;:24::i;:::-;3308:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13263:10:::1;:8;:10::i;:::-;13210:71::o:0;13290:119::-;3146:19;3154:10;3146:7;:19::i;:::-;3138:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13395:6:::1;13373:11;:19;13385:6;13373:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;13290:119:::0;;:::o;7407:30::-;;;;;;;;;;;;;:::o;8648:105::-;8714:7;8732:9;:18;8742:7;8732:18;;;;;;;;;;;;;;;;8725:25;;8648:105;;;:::o;10770:164::-;10814:7;10855:12;10850:1;10837:10;;:14;:30;10834:67;;10877:21;10896:1;10877:14;;:18;;:21;;;;:::i;:::-;10870:28;;;;10834:67;10918:8;;10911:15;;10770:164;;:::o;8564:78::-;8616:7;8634:5;;;;;;;;;;;8627:12;;8564:78;:::o;8388:84::-;8438:13;8462:7;;;;;;;;;;;;;;;;;8455:14;;8388:84;:::o;13418:228::-;3146:19;3154:10;3146:7;:19::i;:::-;3138:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13561:22:::1;13537:21;;:46;;;;;;;;;;;;;;;;;;13617:21;13594:20;;:44;;;;;;;;;;;;;;;;;;13418:228:::0;;:::o;7315:19::-;;;;;;;;;;;;;:::o;9251:156::-;9331:4;9355:44;9369:10;9381:9;9392:6;9355:13;:44::i;:::-;9348:51;;9251:156;;;;:::o;14589:164::-;14672:10;3316:24;3329:10;3316:12;:24::i;:::-;3308:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14709:6:::1;14702:23;;;14726:10;14738:6;14702:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;14694:51;;14589:164:::0;;;;:::o;3432:94::-;3146:19;3154:10;3146:7;:19::i;:::-;3138:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3514:4:::1;3492:14:::0;:19:::1;3507:3;3492:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3432:94:::0;:::o;14467:113::-;3146:19;3154:10;3146:7;:19::i;:::-;3138:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14529:10:::1;14521:28;;:51;14550:21;14521:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;14467:113::o:0;7341:25::-;;;;:::o;7193:36::-;;;;;;;;;;;;;:::o;13836:338::-;3316:24;3329:10;3316:12;:24::i;:::-;3308:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13970:13:::1;13955:12;:28;;;;14009:13;13994:12;:28;;;;14044:32;14062:13;14044;:17;;:32;;;;:::i;:::-;14033:8;:43;;;;14104:15;14087:14;:32;;;;14164:1;14149:14;;:16;;;;;;14138:8;;:27;14130:36;;;::::0;::::1;;13836:338:::0;;;:::o;8759:133::-;8843:7;8861:11;:19;8873:6;8861:19;;;;;;;;;;;;;;;:28;8881:7;8861:28;;;;;;;;;;;;;;;;8854:35;;8759:133;;;;:::o;13655:172::-;3146:19;3154:10;3146:7;:19::i;:::-;3138:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13760:8:::1;13746:11;;:22;;;;;;;;;;;;;;;;;;13794:25;13811:7;13794:12;;:16;;:25;;;;:::i;:::-;13779:13;:40;;;;13655:172:::0;;:::o;7236:35::-;;;;;;;;;;;;;:::o;3603:97::-;3146:19;3154:10;3146:7;:19::i;:::-;3138:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3687:5:::1;3665:14;:19;3680:3;3665:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3603:97:::0;:::o;4163:173::-;3146:19;3154:10;3146:7;:19::i;:::-;3138:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4247:3:::1;4239:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;4283:4;4261:14:::0;:19:::1;4276:3;4261:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;4303:25;4324:3;4303:25;;;;;;;;;;;;;;;;;;;;4163:173:::0;:::o;7284:24::-;;;;;;;;;;;;;:::o;3936:107::-;3992:4;4016:14;:19;4031:3;4016:19;;;;;;;;;;;;;;;;;;;;;;;;;4009:26;;3936:107;;;:::o;497:193::-;583:7;616:1;611;:6;;619:12;603:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;643:9;659:1;655;:5;643:17;;681:1;674:8;;;497:193;;;;;:::o;9787:974::-;9879:4;9899:16;:14;:16::i;:::-;9896:35;;;9918:10;:8;:10::i;:::-;9896:35;9945:10;:8;:10::i;:::-;9944:11;:32;;;;;9972:4;;;;;;;;;;;9959:17;;:9;:17;;;9944:32;9941:81;;;10007:1;9987:9;:17;9997:6;9987:17;;;;;;;;;;;;;;;;:21;9979:30;;;;;;10011:8;:6;:8::i;:::-;9941:81;10052:53;10074:6;10052:53;;;;;;;;;;;;;;;;;:9;:17;10062:6;10052:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;10032:9;:17;10042:6;10032:17;;;;;;;;;;;;;;;:73;;;;10119:12;:10;:12::i;:::-;:33;;;;;10148:4;;;;;;;;;;;10135:17;;:9;:17;;;;10119:33;:64;;;;;10157:15;:26;10173:9;10157:26;;;;;;;;;;;;;;;;;;;;;;;;;10156:27;10119:64;10116:246;;;10230:16;;10220:6;10197:9;:20;10207:9;10197:20;;;;;;;;;;;;;;;;:29;:49;;10188:59;;;;;;10270:12;;10260:6;:22;;10251:32;;;;;;10344:15;10338:2;10296:28;:39;10325:9;10296:39;;;;;;;;;;;;;;;;:44;:63;;10287:73;;;;;;10116:246;10415:15;10373:28;:39;10402:9;10373:39;;;;;;;;;;;;;;;:57;;;;10434:22;10471:11;:22;10483:9;10471:22;;;;;;;;;;;;;;;;;;;;;;;;;10467:132;;10511:21;10525:6;10511:13;:21::i;:::-;:56;;10561:6;10511:56;;;10535:23;10543:6;10551;10535:7;:23::i;:::-;10511:56;10495:72;;10467:132;;;10591:6;10574:23;;10467:132;10632:40;10657:14;10632:9;:20;10642:9;10632:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;10609:9;:20;10619:9;10609:20;;;;;;;;;;;;;;;:63;;;;10705:9;10688:43;;10697:6;10688:43;;;10716:14;10688:43;;;;;;;;;;;;;;;;;;10749:4;10742:11;;;9787:974;;;;;:::o;14286:172::-;14330:4;14367:1;14354:10;;:14;;:48;;;;;14390:12;14385:1;14372:10;;:14;:30;;14354:48;:95;;;;;14434:15;14421:9;14406:12;;:24;:43;;14354:95;14347:102;;14286:172;:::o;11613:1344::-;7555:4;7546:6;;:13;;;;;;;;;;;;;;;;;;11662:23:::1;11688:52;11738:1;11688:45;11724:8;;11688:31;11706:12;;11688:13;;:17;;:31;;;;:::i;:::-;:35;;:45;;;;:::i;:::-;:49;;:52;;;;:::i;:::-;11662:78;;11751:20;11774:34;11792:15;11774:13;;:17;;:34;;;;:::i;:::-;11751:57;;11822:21;11860:1;11846:16;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11822:40;;11891:4;11873;11878:1;11873:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;11917:4;;;;;;;;;;;11907;11912:1;11907:7;;;;;;;;;;;;;:14;;;;;;;;;::::0;::::1;11935:21;11959;11935:45;;11994:6;;;;;;;;;;;:57;;;12066:12;12093:1;12109:4;12136;12172:3;12156:15;:19;11994:192;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12200:17;12220:40;12246:13;12220:21;:25;;:40;;;;:::i;:::-;12200:60;;12271:19;12293:33;12306:19;12323:1;12306:12;;:16;;:19;;;;:::i;:::-;12293:8;;:12;;:33;;;;:::i;:::-;12271:55;;12337:26;12366:51;12415:1;12366:44;12398:11;12366:27;12380:12;;12366:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;12337:80;;12428:26;12457:44;12489:11;12457:27;12471:12;;12457:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;12428:73;;12517:20;;;;;;;;;;;12509:38;;:58;12548:18;12509:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12605:1;12587:15;:19;12584:366;;;12622:6;;;;;;;;;;;:22;;;12652:18;12698:4;12722:15;12756:1;12776::::0;12796:21:::1;;;;;;;;;;;12852:3;12836:15;:19;12622:248;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12890:48;12902:18;12922:15;12890:48;;;;;;;;;;;;;;;;;;;;;;;;12584:366;7561:1;;;;;;;;7573:5:::0;7564:6;;:14;;;;;;;;;;;;;;;;;;11613:1344::o;355:136::-;413:7;440:43;444:1;447;440:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;433:50;;355:136;;;;:::o;167:182::-;225:7;245:9;261:1;257;:5;245:17;;286:1;281;:6;;273:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;340:1;333:8;;;167:182;;;;:::o;954:132::-;1012:7;1039:39;1043:1;1046;1039:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1032:46;;954:132;;;;:::o;11407:197::-;11456:4;11494;;;;;;;;;;;11480:18;;:10;:18;;;;:38;;;;;11512:6;;;;;;;;;;;11511:7;11480:38;:62;;;;;11531:11;;;;;;;;;;;11480:62;:116;;;;;11583:13;;11555:9;:24;11573:4;11555:24;;;;;;;;;;;;;;;;:41;;11480:116;11473:123;;11407:197;:::o;12966:90::-;13009:4;13047:1;13033:10;;:15;;13026:22;;12966:90;:::o;13065:136::-;13108:10;:8;:10::i;:::-;13107:11;13099:20;;;;;;13143:12;13130:10;:25;;;;13178:15;13163:12;:30;;;;13065:136::o;10943:113::-;11005:4;11029:11;:19;11041:6;11029:19;;;;;;;;;;;;;;;;;;;;;;;;;11028:20;11021:27;;10943:113;;;:::o;11065:333::-;11131:7;11151:17;11171:45;11201:14;;11171:25;11182:13;:11;:13::i;:::-;11171:6;:10;;:25;;;;:::i;:::-;:29;;:45;;;;:::i;:::-;11151:65;;11254:39;11283:9;11254;:24;11272:4;11254:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;11227:9;:24;11245:4;11227:24;;;;;;;;;;;;;;;:66;;;;11334:4;11309:42;;11318:6;11309:42;;;11341:9;11309:42;;;;;;;;;;;;;;;;;;11369:21;11380:9;11369:6;:10;;:21;;;;:::i;:::-;11362:28;;;11065:333;;;;:::o;696:252::-;754:7;783:1;778;:6;774:47;;;808:1;801:8;;;;774:47;834:9;850:1;846;:5;834:17;;879:1;874;870;:5;;;;;;:10;862:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;939:1;932:8;;;696:252;;;;;:::o;1092:346::-;1178:7;1277:1;1273;:5;1280:12;1265:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1304:9;1320:1;1316;:5;;;;;;1304:17;;1429:1;1422:8;;;1092:346;;;;;:::o

Swarm Source

ipfs://c746b4ed8988079943ac5fdfeb28964755f061da4436fe34d7fa3a538f1934e0
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.