ETH Price: $3,331.39 (-4.66%)

Token

Cult Of KEK (KEK)
 

Overview

Max Total Supply

1,000,000,000,000,000 KEK

Holders

252

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
56,969,877,817.014707203190276545 KEK

Value
$0.00
0x151611d87ff112d8e94eb03b6bfb5e76888d0cca
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:
CultOfKEK

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-24
*/

/**
 *Submitted for verification at Etherscan.io on 2022-11-08
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.0;

/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
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;
    }
}

/**
 * ERC20 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;

    constructor(address _owner) {
        owner = _owner;
    }

    /**
     * Function modifier to require caller to be contract deployer
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!Owner"); _;
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    /**
     * Transfer ownership to new address. Caller must be deployer. Leaves old deployer authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        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 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 CultOfKEK is IERC20, Auth {
    using SafeMath for uint256;

    address private WETH;

    string private constant  _name = "Cult Of KEK";
    string private constant _symbol = "KEK";
    uint8 public constant _decimals = 18;

    uint256 private _totalSupply = 1000000000000000 * (10 ** _decimals); 

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => uint256) private cooldown;
    mapping (address => int) public tickets;

    mapping (address => bool) private isFeeExempt;
    mapping (address => bool) private isBot;
            
    uint256 public buyFee = 15;
    uint256 public sellFee = 15;
    uint256 private feeDenominator = 100;

    address payable public teamWallet = payable(0x6E025d64748823C91b40Cf47BCA33c88064F27e5);

    IDEXRouter public router;
    address public pair;

    uint256 public launchedAt;
    bool private tradingOpen;
    bool private buyLimit = true;
    uint256 private maxBuy = 10000000000001 * (10 ** _decimals);
    

    bool public blacklistEnabled = false;
    bool private inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor (
        address _owner
    ) Auth(_owner) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);        
        WETH = router.WETH();        
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        approve(address(router), type(uint).max);
        IERC20(pair).approve(address(router), type(uint).max);  
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[_owner] = true;
        isFeeExempt[teamWallet] = true; 
        isFeeExempt[address(this)] = true;            
        
        isBot[0x6b75d8AF000000e20B7a7DDf000Ba900b4009A80] = true;

        _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, type(uint256).max);
    }

    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] != type(uint256).max){
            _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 (!tradingOpen) {
            require (sender == owner ||  sender == address (this));
            return _basicTransfer(sender, recipient, amount);
        }
        
        if (blacklistEnabled) {
            require (!isBot[sender] && !isBot[recipient], "Bot!");
        }
        if (buyLimit) { 
            require (amount<=maxBuy, "Too much sir");        
        }

        if (sender == pair && recipient != address(router) && !isFeeExempt[recipient]) {
            require (cooldown[recipient] < block.timestamp);
            cooldown[recipient] = block.timestamp + 60 seconds;
            if (block.number <= (launchedAt + 1)) { 
                isBot[recipient] = true;
            }
        }
       
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }      

    
        bool shouldSwapBack = (recipient==pair && balanceOf(address(this)) > 0);
        if(shouldSwapBack){ swapBack(); }

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, amount) : amount;
        
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

 
    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return ( !(isFeeExempt[sender] || isFeeExempt[recipient]) &&  (sender == pair || recipient == pair) );
   }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount;
        if(sender != pair) {
            feeAmount = amount.mul(sellFee).div(feeDenominator);
        }
        else {
            feeAmount = amount.mul(buyFee).div(feeDenominator);
        }
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);   

        return amount.sub(feeAmount);
    }

   
    function swapBack() internal swapping {

        uint256 amountToSwap = balanceOf(address(this));        

        swapTokensForEth(amountToSwap);

        uint256 contractETHBalance = address(this).balance;
             
        payable(teamWallet).transfer(contractETHBalance);          
    }

    

    function swapTokensForEth(uint256 tokenAmount) private {

        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    
    function joinTheCult() external onlyOwner {
      
        router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner,
            block.timestamp
        );       

        launchedAt = block.number;
        tradingOpen = true;
    }    

    function removeBuyLimit() external onlyOwner {
        buyLimit = false;
    }

    function setBuyFee (uint256 _fee) external onlyOwner {
        require(buyFee != 0); //once set to 0, fee can't be increased
        buyFee = _fee;
    }

     function setSellFee (uint256 _fee) external onlyOwner {
        require(sellFee != 0); //once set to 0, fee can't be increased
        sellFee = _fee;
    }   

    function setTeamWallet(address _teamWallet) external onlyOwner {
        teamWallet = payable(_teamWallet);
    } 

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setBlacklistEnabled() external onlyOwner {
        require (blacklistEnabled == false, "can only be called once");
        blacklistEnabled = true;
    }
    
    function setBot(address _address, bool toggle) public onlyOwner {
        isBot[_address] = toggle;
    }

    function checkBot(address account) public view returns (bool) {
        return isBot[account];
    }

    function blacklistArray (address[] calldata bots) external onlyOwner {
        require (bots.length > 0);
        uint i =0;
        while (i < bots.length) {
            setBot(bots[i],  true);
            i++;
        }
    }
  
    function manualSend() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(teamWallet).transfer(contractETHBalance);
    }
  
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"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":"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":[],"name":"_decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots","type":"address[]"}],"name":"blacklistArray","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"blacklistEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"checkBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"joinTheCult","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","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":"removeBuyLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"setBlacklistEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"toggle","type":"bool"}],"name":"setBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setBuyFee","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":"uint256","name":"_fee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_teamWallet","type":"address"}],"name":"setTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"teamWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tickets","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

60806040526012600a62000014919062000adc565b66038d7ea4c6800062000028919062000b2d565b600255600f600955600f600a556064600b55736e025d64748823c91b40cf47bca33c88064f27e5600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060016101000a81548160ff0219169083151502179055506012600a620000ba919062000adc565b6509184e72a001620000cd919062000b2d565b6011556000601260006101000a81548160ff021916908315150217905550348015620000f857600080fd5b5060405162003f9638038062003f9683398181016040528101906200011e919062000bf8565b80806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000223573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000249919062000bf8565b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002f7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031d919062000bf8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200037b92919062000c3b565b6020604051808303816000875af11580156200039b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c1919062000bf8565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000455600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200084e60201b60201c565b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401620004f792919062000c79565b6020604051808303816000875af115801562000517573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200053d919062000ce3565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000736b75d8af000000e20b7a7ddf000ba900b4009a8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600254600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6002546040516200083f919062000d15565b60405180910390a35062000d32565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405162000930919062000d15565b60405180910390a36001905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620009d057808604811115620009a857620009a762000942565b5b6001851615620009b85780820291505b8081029050620009c88562000971565b945062000988565b94509492505050565b600082620009eb576001905062000abe565b81620009fb576000905062000abe565b816001811462000a14576002811462000a1f5762000a55565b600191505062000abe565b60ff84111562000a345762000a3362000942565b5b8360020a91508482111562000a4e5762000a4d62000942565b5b5062000abe565b5060208310610133831016604e8410600b841016171562000a8f5782820a90508381111562000a895762000a8862000942565b5b62000abe565b62000a9e84848460016200097e565b9250905081840481111562000ab85762000ab762000942565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000ae98262000ac5565b915062000af68362000acf565b925062000b257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009d9565b905092915050565b600062000b3a8262000ac5565b915062000b478362000ac5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b835762000b8262000942565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bc08262000b93565b9050919050565b62000bd28162000bb3565b811462000bde57600080fd5b50565b60008151905062000bf28162000bc7565b92915050565b60006020828403121562000c115762000c1062000b8e565b5b600062000c218482850162000be1565b91505092915050565b62000c358162000bb3565b82525050565b600060408201905062000c52600083018562000c2a565b62000c61602083018462000c2a565b9392505050565b62000c738162000ac5565b82525050565b600060408201905062000c90600083018562000c2a565b62000c9f602083018462000c68565b9392505050565b60008115159050919050565b62000cbd8162000ca6565b811462000cc957600080fd5b50565b60008151905062000cdd8162000cb2565b92915050565b60006020828403121562000cfc5762000cfb62000b8e565b5b600062000d0c8482850162000ccc565b91505092915050565b600060208201905062000d2c600083018462000c68565b92915050565b6132548062000d426000396000f3fe6080604052600436106101f25760003560e01c80636dcbf2a31161010d578063a9059cbb116100a0578063d3ee67381161006f578063d3ee6738146106fc578063dd62ed3e14610725578063f2fde38b14610762578063f42938901461078b578063f887ea40146107a2576101f9565b8063a9059cbb1461062c578063b1a4e0dc14610669578063bf56b371146106a6578063bffb691d146106d1576101f9565b8063893d20e8116100dc578063893d20e8146105825780638b4cee08146105ad57806395d89b41146105d6578063a8aa1b3114610601576101f9565b80636dcbf2a3146104da57806370a082311461051757806375b354ba14610554578063764ca5121461056b576101f9565b8063313ce567116101855780634706240211610154578063470624021461041e578063571ac8b0146104495780635992704414610486578063658d4b7f146104b1576101f9565b8063313ce5671461038857806332424aa3146103b3578063342aa8b5146103de5780633e07ce5b14610407576101f9565b806318160ddd116101c157806318160ddd146102b857806323b872dd146102e35780632b14ca56146103205780632f54bf6e1461034b576101f9565b806306fdde03146101fe578063095ea7b3146102295780630cc835a3146102665780631525ff7d1461028f576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b506102136107cd565b60405161022091906125ef565b60405180910390f35b34801561023557600080fd5b50610250600480360381019061024b91906126af565b61080a565b60405161025d919061270a565b60405180910390f35b34801561027257600080fd5b5061028d60048036038101906102889190612725565b6108fc565b005b34801561029b57600080fd5b506102b660048036038101906102b19190612752565b61095e565b005b3480156102c457600080fd5b506102cd6109ea565b6040516102da919061278e565b60405180910390f35b3480156102ef57600080fd5b5061030a600480360381019061030591906127a9565b6109f4565b604051610317919061270a565b60405180910390f35b34801561032c57600080fd5b50610335610bf4565b604051610342919061278e565b60405180910390f35b34801561035757600080fd5b50610372600480360381019061036d9190612752565b610bfa565b60405161037f919061270a565b60405180910390f35b34801561039457600080fd5b5061039d610c53565b6040516103aa9190612818565b60405180910390f35b3480156103bf57600080fd5b506103c8610c5c565b6040516103d59190612818565b60405180910390f35b3480156103ea57600080fd5b506104056004803603810190610400919061285f565b610c61565b005b34801561041357600080fd5b5061041c610d04565b005b34801561042a57600080fd5b50610433610d69565b604051610440919061278e565b60405180910390f35b34801561045557600080fd5b50610470600480360381019061046b9190612752565b610d6f565b60405161047d919061270a565b60405180910390f35b34801561049257600080fd5b5061049b610da2565b6040516104a891906128c0565b60405180910390f35b3480156104bd57600080fd5b506104d860048036038101906104d3919061285f565b610dc8565b005b3480156104e657600080fd5b5061050160048036038101906104fc9190612752565b610e6b565b60405161050e91906128f4565b60405180910390f35b34801561052357600080fd5b5061053e60048036038101906105399190612752565b610e83565b60405161054b919061278e565b60405180910390f35b34801561056057600080fd5b50610569610ecc565b005b34801561057757600080fd5b5061058061100d565b005b34801561058e57600080fd5b506105976110c8565b6040516105a4919061291e565b60405180910390f35b3480156105b957600080fd5b506105d460048036038101906105cf9190612725565b6110f1565b005b3480156105e257600080fd5b506105eb611153565b6040516105f891906125ef565b60405180910390f35b34801561060d57600080fd5b50610616611190565b604051610623919061291e565b60405180910390f35b34801561063857600080fd5b50610653600480360381019061064e91906126af565b6111b6565b604051610660919061270a565b60405180910390f35b34801561067557600080fd5b50610690600480360381019061068b9190612752565b6111cb565b60405161069d919061270a565b60405180910390f35b3480156106b257600080fd5b506106bb611221565b6040516106c8919061278e565b60405180910390f35b3480156106dd57600080fd5b506106e6611227565b6040516106f3919061270a565b60405180910390f35b34801561070857600080fd5b50610723600480360381019061071e919061299e565b61123a565b005b34801561073157600080fd5b5061074c600480360381019061074791906129eb565b6112ea565b604051610759919061278e565b60405180910390f35b34801561076e57600080fd5b5061078960048036038101906107849190612a57565b611371565b005b34801561079757600080fd5b506107a0611433565b005b3480156107ae57600080fd5b506107b76114ec565b6040516107c49190612ae3565b60405180910390f35b60606040518060400160405280600b81526020017f43756c74204f66204b454b000000000000000000000000000000000000000000815250905090565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108ea919061278e565b60405180910390a36001905092915050565b61090533610bfa565b610944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093b90612b4a565b60405180910390fd5b6000600954141561095457600080fd5b8060098190555050565b61096733610bfa565b6109a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099d90612b4a565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600254905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610be057610b5f826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115129092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610beb848484611576565b90509392505050565b600a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b601281565b610c6a33610bfa565b610ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca090612b4a565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610d0d33610bfa565b610d4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4390612b4a565b60405180910390fd5b6000601060016101000a81548160ff021916908315150217905550565b60095481565b6000610d9b827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61080a565b9050919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610dd133610bfa565b610e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0790612b4a565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60066020528060005260406000206000915090505481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ed533610bfa565b610f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0b90612b4a565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f5d30610e83565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401610fa396959493929190612ba5565b60606040518083038185885af1158015610fc1573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fe69190612c1b565b50505043600f819055506001601060006101000a81548160ff021916908315150217905550565b61101633610bfa565b611055576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104c90612b4a565b60405180910390fd5b60001515601260009054906101000a900460ff161515146110ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a290612cba565b60405180910390fd5b6001601260006101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6110fa33610bfa565b611139576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113090612b4a565b60405180910390fd5b6000600a54141561114957600080fd5b80600a8190555050565b60606040518060400160405280600381526020017f4b454b0000000000000000000000000000000000000000000000000000000000815250905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006111c3338484611576565b905092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600f5481565b601260009054906101000a900460ff1681565b61124333610bfa565b611282576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127990612b4a565b60405180910390fd5b6000828290501161129257600080fd5b60005b828290508110156112e5576112d28383838181106112b6576112b5612cda565b5b90506020020160208101906112cb9190612752565b6001610c61565b80806112dd90612d38565b915050611295565b505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61137a33610bfa565b6113b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b090612b4a565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516114289190612da2565b60405180910390a150565b61143c33610bfa565b61147b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147290612b4a565b60405180910390fd5b6000479050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156114e8573d6000803e3d6000fd5b5050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600083831115829061155a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155191906125ef565b60405180910390fd5b50600083856115699190612dbd565b9050809150509392505050565b6000601060009054906101000a900460ff1661162c5760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061161157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b61161a57600080fd5b611625848484611c26565b9050611c1f565b601260009054906101000a900460ff161561172557600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116e55750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171b90612e3d565b60405180910390fd5b5b601060019054906101000a900460ff16156117805760115482111561177f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177690612ea9565b60405180910390fd5b5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561182b5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118815750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119905742600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106118d157600080fd5b603c426118de9190612ec9565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f546119309190612ec9565b431161198f576001600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b601260019054906101000a900460ff16156119b7576119b0848484611c26565b9050611c1f565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a1e57506000611a1c30610e83565b115b90508015611a2f57611a2e611df9565b5b611ab8836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115129092919063ffffffff16565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611b078686611eb7565b611b115783611b1c565b611b1b8685612014565b5b9050611b7081600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121de90919063ffffffff16565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c10919061278e565b60405180910390a36001925050505b9392505050565b6000611cb1826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115129092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d4682600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121de90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611de6919061278e565b60405180910390a3600190509392505050565b6001601260016101000a81548160ff0219169083151502179055506000611e1f30610e83565b9050611e2a8161223c565b6000479050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611e97573d6000803e3d6000fd5b5050506000601260016101000a81548160ff021916908315150217905550565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f5a5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15801561200c5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061200b5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b905092915050565b600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461209c57612095600b54612087600a54866123e490919063ffffffff16565b61245f90919063ffffffff16565b90506120c8565b6120c5600b546120b7600954866123e490919063ffffffff16565b61245f90919063ffffffff16565b90505b61211a81600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121de90919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121ba919061278e565b60405180910390a36121d581846124a990919063ffffffff16565b91505092915050565b60008082846121ed9190612ec9565b905083811015612232576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222990612f6b565b60405180910390fd5b8091505092915050565b6000600267ffffffffffffffff81111561225957612258612f8b565b5b6040519080825280602002602001820160405280156122875781602001602082028036833780820191505090505b509050308160008151811061229f5761229e612cda565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106123105761230f612cda565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016123ae959493929190613078565b600060405180830381600087803b1580156123c857600080fd5b505af11580156123dc573d6000803e3d6000fd5b505050505050565b6000808314156123f75760009050612459565b6000828461240591906130d2565b9050828482612414919061315b565b14612454576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244b906131fe565b60405180910390fd5b809150505b92915050565b60006124a183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124f3565b905092915050565b60006124eb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611512565b905092915050565b6000808311829061253a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253191906125ef565b60405180910390fd5b5060008385612549919061315b565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612590578082015181840152602081019050612575565b8381111561259f576000848401525b50505050565b6000601f19601f8301169050919050565b60006125c182612556565b6125cb8185612561565b93506125db818560208601612572565b6125e4816125a5565b840191505092915050565b6000602082019050818103600083015261260981846125b6565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126468261261b565b9050919050565b6126568161263b565b811461266157600080fd5b50565b6000813590506126738161264d565b92915050565b6000819050919050565b61268c81612679565b811461269757600080fd5b50565b6000813590506126a981612683565b92915050565b600080604083850312156126c6576126c5612611565b5b60006126d485828601612664565b92505060206126e58582860161269a565b9150509250929050565b60008115159050919050565b612704816126ef565b82525050565b600060208201905061271f60008301846126fb565b92915050565b60006020828403121561273b5761273a612611565b5b60006127498482850161269a565b91505092915050565b60006020828403121561276857612767612611565b5b600061277684828501612664565b91505092915050565b61278881612679565b82525050565b60006020820190506127a3600083018461277f565b92915050565b6000806000606084860312156127c2576127c1612611565b5b60006127d086828701612664565b93505060206127e186828701612664565b92505060406127f28682870161269a565b9150509250925092565b600060ff82169050919050565b612812816127fc565b82525050565b600060208201905061282d6000830184612809565b92915050565b61283c816126ef565b811461284757600080fd5b50565b60008135905061285981612833565b92915050565b6000806040838503121561287657612875612611565b5b600061288485828601612664565b92505060206128958582860161284a565b9150509250929050565b60006128aa8261261b565b9050919050565b6128ba8161289f565b82525050565b60006020820190506128d560008301846128b1565b92915050565b6000819050919050565b6128ee816128db565b82525050565b600060208201905061290960008301846128e5565b92915050565b6129188161263b565b82525050565b6000602082019050612933600083018461290f565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261295e5761295d612939565b5b8235905067ffffffffffffffff81111561297b5761297a61293e565b5b60208301915083602082028301111561299757612996612943565b5b9250929050565b600080602083850312156129b5576129b4612611565b5b600083013567ffffffffffffffff8111156129d3576129d2612616565b5b6129df85828601612948565b92509250509250929050565b60008060408385031215612a0257612a01612611565b5b6000612a1085828601612664565b9250506020612a2185828601612664565b9150509250929050565b612a348161289f565b8114612a3f57600080fd5b50565b600081359050612a5181612a2b565b92915050565b600060208284031215612a6d57612a6c612611565b5b6000612a7b84828501612a42565b91505092915050565b6000819050919050565b6000612aa9612aa4612a9f8461261b565b612a84565b61261b565b9050919050565b6000612abb82612a8e565b9050919050565b6000612acd82612ab0565b9050919050565b612add81612ac2565b82525050565b6000602082019050612af86000830184612ad4565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000612b34600683612561565b9150612b3f82612afe565b602082019050919050565b60006020820190508181036000830152612b6381612b27565b9050919050565b6000819050919050565b6000612b8f612b8a612b8584612b6a565b612a84565b612679565b9050919050565b612b9f81612b74565b82525050565b600060c082019050612bba600083018961290f565b612bc7602083018861277f565b612bd46040830187612b96565b612be16060830186612b96565b612bee608083018561290f565b612bfb60a083018461277f565b979650505050505050565b600081519050612c1581612683565b92915050565b600080600060608486031215612c3457612c33612611565b5b6000612c4286828701612c06565b9350506020612c5386828701612c06565b9250506040612c6486828701612c06565b9150509250925092565b7f63616e206f6e6c792062652063616c6c6564206f6e6365000000000000000000600082015250565b6000612ca4601783612561565b9150612caf82612c6e565b602082019050919050565b60006020820190508181036000830152612cd381612c97565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d4382612679565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612d7657612d75612d09565b5b600182019050919050565b6000612d8c82612ab0565b9050919050565b612d9c81612d81565b82525050565b6000602082019050612db76000830184612d93565b92915050565b6000612dc882612679565b9150612dd383612679565b925082821015612de657612de5612d09565b5b828203905092915050565b7f426f742100000000000000000000000000000000000000000000000000000000600082015250565b6000612e27600483612561565b9150612e3282612df1565b602082019050919050565b60006020820190508181036000830152612e5681612e1a565b9050919050565b7f546f6f206d756368207369720000000000000000000000000000000000000000600082015250565b6000612e93600c83612561565b9150612e9e82612e5d565b602082019050919050565b60006020820190508181036000830152612ec281612e86565b9050919050565b6000612ed482612679565b9150612edf83612679565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f1457612f13612d09565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612f55601b83612561565b9150612f6082612f1f565b602082019050919050565b60006020820190508181036000830152612f8481612f48565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612fef8161263b565b82525050565b60006130018383612fe6565b60208301905092915050565b6000602082019050919050565b600061302582612fba565b61302f8185612fc5565b935061303a83612fd6565b8060005b8381101561306b5781516130528882612ff5565b975061305d8361300d565b92505060018101905061303e565b5085935050505092915050565b600060a08201905061308d600083018861277f565b61309a6020830187612b96565b81810360408301526130ac818661301a565b90506130bb606083018561290f565b6130c8608083018461277f565b9695505050505050565b60006130dd82612679565b91506130e883612679565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561312157613120612d09565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061316682612679565b915061317183612679565b9250826131815761318061312c565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006131e8602183612561565b91506131f38261318c565b604082019050919050565b60006020820190508181036000830152613217816131db565b905091905056fea264697066735822122097bb3b6dc187d04f152f397a77416d2e72ea070c77aeb08891d05f69a8c6957464736f6c634300080b00330000000000000000000000007f7018d7e39168704bc427b43335e35fb2d62765

Deployed Bytecode

0x6080604052600436106101f25760003560e01c80636dcbf2a31161010d578063a9059cbb116100a0578063d3ee67381161006f578063d3ee6738146106fc578063dd62ed3e14610725578063f2fde38b14610762578063f42938901461078b578063f887ea40146107a2576101f9565b8063a9059cbb1461062c578063b1a4e0dc14610669578063bf56b371146106a6578063bffb691d146106d1576101f9565b8063893d20e8116100dc578063893d20e8146105825780638b4cee08146105ad57806395d89b41146105d6578063a8aa1b3114610601576101f9565b80636dcbf2a3146104da57806370a082311461051757806375b354ba14610554578063764ca5121461056b576101f9565b8063313ce567116101855780634706240211610154578063470624021461041e578063571ac8b0146104495780635992704414610486578063658d4b7f146104b1576101f9565b8063313ce5671461038857806332424aa3146103b3578063342aa8b5146103de5780633e07ce5b14610407576101f9565b806318160ddd116101c157806318160ddd146102b857806323b872dd146102e35780632b14ca56146103205780632f54bf6e1461034b576101f9565b806306fdde03146101fe578063095ea7b3146102295780630cc835a3146102665780631525ff7d1461028f576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b506102136107cd565b60405161022091906125ef565b60405180910390f35b34801561023557600080fd5b50610250600480360381019061024b91906126af565b61080a565b60405161025d919061270a565b60405180910390f35b34801561027257600080fd5b5061028d60048036038101906102889190612725565b6108fc565b005b34801561029b57600080fd5b506102b660048036038101906102b19190612752565b61095e565b005b3480156102c457600080fd5b506102cd6109ea565b6040516102da919061278e565b60405180910390f35b3480156102ef57600080fd5b5061030a600480360381019061030591906127a9565b6109f4565b604051610317919061270a565b60405180910390f35b34801561032c57600080fd5b50610335610bf4565b604051610342919061278e565b60405180910390f35b34801561035757600080fd5b50610372600480360381019061036d9190612752565b610bfa565b60405161037f919061270a565b60405180910390f35b34801561039457600080fd5b5061039d610c53565b6040516103aa9190612818565b60405180910390f35b3480156103bf57600080fd5b506103c8610c5c565b6040516103d59190612818565b60405180910390f35b3480156103ea57600080fd5b506104056004803603810190610400919061285f565b610c61565b005b34801561041357600080fd5b5061041c610d04565b005b34801561042a57600080fd5b50610433610d69565b604051610440919061278e565b60405180910390f35b34801561045557600080fd5b50610470600480360381019061046b9190612752565b610d6f565b60405161047d919061270a565b60405180910390f35b34801561049257600080fd5b5061049b610da2565b6040516104a891906128c0565b60405180910390f35b3480156104bd57600080fd5b506104d860048036038101906104d3919061285f565b610dc8565b005b3480156104e657600080fd5b5061050160048036038101906104fc9190612752565b610e6b565b60405161050e91906128f4565b60405180910390f35b34801561052357600080fd5b5061053e60048036038101906105399190612752565b610e83565b60405161054b919061278e565b60405180910390f35b34801561056057600080fd5b50610569610ecc565b005b34801561057757600080fd5b5061058061100d565b005b34801561058e57600080fd5b506105976110c8565b6040516105a4919061291e565b60405180910390f35b3480156105b957600080fd5b506105d460048036038101906105cf9190612725565b6110f1565b005b3480156105e257600080fd5b506105eb611153565b6040516105f891906125ef565b60405180910390f35b34801561060d57600080fd5b50610616611190565b604051610623919061291e565b60405180910390f35b34801561063857600080fd5b50610653600480360381019061064e91906126af565b6111b6565b604051610660919061270a565b60405180910390f35b34801561067557600080fd5b50610690600480360381019061068b9190612752565b6111cb565b60405161069d919061270a565b60405180910390f35b3480156106b257600080fd5b506106bb611221565b6040516106c8919061278e565b60405180910390f35b3480156106dd57600080fd5b506106e6611227565b6040516106f3919061270a565b60405180910390f35b34801561070857600080fd5b50610723600480360381019061071e919061299e565b61123a565b005b34801561073157600080fd5b5061074c600480360381019061074791906129eb565b6112ea565b604051610759919061278e565b60405180910390f35b34801561076e57600080fd5b5061078960048036038101906107849190612a57565b611371565b005b34801561079757600080fd5b506107a0611433565b005b3480156107ae57600080fd5b506107b76114ec565b6040516107c49190612ae3565b60405180910390f35b60606040518060400160405280600b81526020017f43756c74204f66204b454b000000000000000000000000000000000000000000815250905090565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108ea919061278e565b60405180910390a36001905092915050565b61090533610bfa565b610944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093b90612b4a565b60405180910390fd5b6000600954141561095457600080fd5b8060098190555050565b61096733610bfa565b6109a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099d90612b4a565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600254905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610be057610b5f826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115129092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610beb848484611576565b90509392505050565b600a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b601281565b610c6a33610bfa565b610ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca090612b4a565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610d0d33610bfa565b610d4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4390612b4a565b60405180910390fd5b6000601060016101000a81548160ff021916908315150217905550565b60095481565b6000610d9b827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61080a565b9050919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610dd133610bfa565b610e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0790612b4a565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60066020528060005260406000206000915090505481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ed533610bfa565b610f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0b90612b4a565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f5d30610e83565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401610fa396959493929190612ba5565b60606040518083038185885af1158015610fc1573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fe69190612c1b565b50505043600f819055506001601060006101000a81548160ff021916908315150217905550565b61101633610bfa565b611055576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104c90612b4a565b60405180910390fd5b60001515601260009054906101000a900460ff161515146110ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a290612cba565b60405180910390fd5b6001601260006101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6110fa33610bfa565b611139576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113090612b4a565b60405180910390fd5b6000600a54141561114957600080fd5b80600a8190555050565b60606040518060400160405280600381526020017f4b454b0000000000000000000000000000000000000000000000000000000000815250905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006111c3338484611576565b905092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600f5481565b601260009054906101000a900460ff1681565b61124333610bfa565b611282576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127990612b4a565b60405180910390fd5b6000828290501161129257600080fd5b60005b828290508110156112e5576112d28383838181106112b6576112b5612cda565b5b90506020020160208101906112cb9190612752565b6001610c61565b80806112dd90612d38565b915050611295565b505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61137a33610bfa565b6113b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b090612b4a565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516114289190612da2565b60405180910390a150565b61143c33610bfa565b61147b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147290612b4a565b60405180910390fd5b6000479050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156114e8573d6000803e3d6000fd5b5050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600083831115829061155a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155191906125ef565b60405180910390fd5b50600083856115699190612dbd565b9050809150509392505050565b6000601060009054906101000a900460ff1661162c5760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061161157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b61161a57600080fd5b611625848484611c26565b9050611c1f565b601260009054906101000a900460ff161561172557600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116e55750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171b90612e3d565b60405180910390fd5b5b601060019054906101000a900460ff16156117805760115482111561177f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177690612ea9565b60405180910390fd5b5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561182b5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118815750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119905742600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106118d157600080fd5b603c426118de9190612ec9565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f546119309190612ec9565b431161198f576001600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b601260019054906101000a900460ff16156119b7576119b0848484611c26565b9050611c1f565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a1e57506000611a1c30610e83565b115b90508015611a2f57611a2e611df9565b5b611ab8836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115129092919063ffffffff16565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611b078686611eb7565b611b115783611b1c565b611b1b8685612014565b5b9050611b7081600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121de90919063ffffffff16565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c10919061278e565b60405180910390a36001925050505b9392505050565b6000611cb1826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115129092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d4682600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121de90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611de6919061278e565b60405180910390a3600190509392505050565b6001601260016101000a81548160ff0219169083151502179055506000611e1f30610e83565b9050611e2a8161223c565b6000479050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611e97573d6000803e3d6000fd5b5050506000601260016101000a81548160ff021916908315150217905550565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f5a5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15801561200c5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061200b5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b905092915050565b600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461209c57612095600b54612087600a54866123e490919063ffffffff16565b61245f90919063ffffffff16565b90506120c8565b6120c5600b546120b7600954866123e490919063ffffffff16565b61245f90919063ffffffff16565b90505b61211a81600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121de90919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121ba919061278e565b60405180910390a36121d581846124a990919063ffffffff16565b91505092915050565b60008082846121ed9190612ec9565b905083811015612232576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222990612f6b565b60405180910390fd5b8091505092915050565b6000600267ffffffffffffffff81111561225957612258612f8b565b5b6040519080825280602002602001820160405280156122875781602001602082028036833780820191505090505b509050308160008151811061229f5761229e612cda565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106123105761230f612cda565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016123ae959493929190613078565b600060405180830381600087803b1580156123c857600080fd5b505af11580156123dc573d6000803e3d6000fd5b505050505050565b6000808314156123f75760009050612459565b6000828461240591906130d2565b9050828482612414919061315b565b14612454576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244b906131fe565b60405180910390fd5b809150505b92915050565b60006124a183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124f3565b905092915050565b60006124eb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611512565b905092915050565b6000808311829061253a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253191906125ef565b60405180910390fd5b5060008385612549919061315b565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612590578082015181840152602081019050612575565b8381111561259f576000848401525b50505050565b6000601f19601f8301169050919050565b60006125c182612556565b6125cb8185612561565b93506125db818560208601612572565b6125e4816125a5565b840191505092915050565b6000602082019050818103600083015261260981846125b6565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126468261261b565b9050919050565b6126568161263b565b811461266157600080fd5b50565b6000813590506126738161264d565b92915050565b6000819050919050565b61268c81612679565b811461269757600080fd5b50565b6000813590506126a981612683565b92915050565b600080604083850312156126c6576126c5612611565b5b60006126d485828601612664565b92505060206126e58582860161269a565b9150509250929050565b60008115159050919050565b612704816126ef565b82525050565b600060208201905061271f60008301846126fb565b92915050565b60006020828403121561273b5761273a612611565b5b60006127498482850161269a565b91505092915050565b60006020828403121561276857612767612611565b5b600061277684828501612664565b91505092915050565b61278881612679565b82525050565b60006020820190506127a3600083018461277f565b92915050565b6000806000606084860312156127c2576127c1612611565b5b60006127d086828701612664565b93505060206127e186828701612664565b92505060406127f28682870161269a565b9150509250925092565b600060ff82169050919050565b612812816127fc565b82525050565b600060208201905061282d6000830184612809565b92915050565b61283c816126ef565b811461284757600080fd5b50565b60008135905061285981612833565b92915050565b6000806040838503121561287657612875612611565b5b600061288485828601612664565b92505060206128958582860161284a565b9150509250929050565b60006128aa8261261b565b9050919050565b6128ba8161289f565b82525050565b60006020820190506128d560008301846128b1565b92915050565b6000819050919050565b6128ee816128db565b82525050565b600060208201905061290960008301846128e5565b92915050565b6129188161263b565b82525050565b6000602082019050612933600083018461290f565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261295e5761295d612939565b5b8235905067ffffffffffffffff81111561297b5761297a61293e565b5b60208301915083602082028301111561299757612996612943565b5b9250929050565b600080602083850312156129b5576129b4612611565b5b600083013567ffffffffffffffff8111156129d3576129d2612616565b5b6129df85828601612948565b92509250509250929050565b60008060408385031215612a0257612a01612611565b5b6000612a1085828601612664565b9250506020612a2185828601612664565b9150509250929050565b612a348161289f565b8114612a3f57600080fd5b50565b600081359050612a5181612a2b565b92915050565b600060208284031215612a6d57612a6c612611565b5b6000612a7b84828501612a42565b91505092915050565b6000819050919050565b6000612aa9612aa4612a9f8461261b565b612a84565b61261b565b9050919050565b6000612abb82612a8e565b9050919050565b6000612acd82612ab0565b9050919050565b612add81612ac2565b82525050565b6000602082019050612af86000830184612ad4565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000612b34600683612561565b9150612b3f82612afe565b602082019050919050565b60006020820190508181036000830152612b6381612b27565b9050919050565b6000819050919050565b6000612b8f612b8a612b8584612b6a565b612a84565b612679565b9050919050565b612b9f81612b74565b82525050565b600060c082019050612bba600083018961290f565b612bc7602083018861277f565b612bd46040830187612b96565b612be16060830186612b96565b612bee608083018561290f565b612bfb60a083018461277f565b979650505050505050565b600081519050612c1581612683565b92915050565b600080600060608486031215612c3457612c33612611565b5b6000612c4286828701612c06565b9350506020612c5386828701612c06565b9250506040612c6486828701612c06565b9150509250925092565b7f63616e206f6e6c792062652063616c6c6564206f6e6365000000000000000000600082015250565b6000612ca4601783612561565b9150612caf82612c6e565b602082019050919050565b60006020820190508181036000830152612cd381612c97565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d4382612679565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612d7657612d75612d09565b5b600182019050919050565b6000612d8c82612ab0565b9050919050565b612d9c81612d81565b82525050565b6000602082019050612db76000830184612d93565b92915050565b6000612dc882612679565b9150612dd383612679565b925082821015612de657612de5612d09565b5b828203905092915050565b7f426f742100000000000000000000000000000000000000000000000000000000600082015250565b6000612e27600483612561565b9150612e3282612df1565b602082019050919050565b60006020820190508181036000830152612e5681612e1a565b9050919050565b7f546f6f206d756368207369720000000000000000000000000000000000000000600082015250565b6000612e93600c83612561565b9150612e9e82612e5d565b602082019050919050565b60006020820190508181036000830152612ec281612e86565b9050919050565b6000612ed482612679565b9150612edf83612679565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f1457612f13612d09565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612f55601b83612561565b9150612f6082612f1f565b602082019050919050565b60006020820190508181036000830152612f8481612f48565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612fef8161263b565b82525050565b60006130018383612fe6565b60208301905092915050565b6000602082019050919050565b600061302582612fba565b61302f8185612fc5565b935061303a83612fd6565b8060005b8381101561306b5781516130528882612ff5565b975061305d8361300d565b92505060018101905061303e565b5085935050505092915050565b600060a08201905061308d600083018861277f565b61309a6020830187612b96565b81810360408301526130ac818661301a565b90506130bb606083018561290f565b6130c8608083018461277f565b9695505050505050565b60006130dd82612679565b91506130e883612679565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561312157613120612d09565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061316682612679565b915061317183612679565b9250826131815761318061312c565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006131e8602183612561565b91506131f38261318c565b604082019050919050565b60006020820190508181036000830152613217816131db565b905091905056fea264697066735822122097bb3b6dc187d04f152f397a77416d2e72ea070c77aeb08891d05f69a8c6957464736f6c634300080b0033

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

0000000000000000000000007f7018d7e39168704bc427b43335e35fb2d62765

-----Decoded View---------------
Arg [0] : _owner (address): 0x7f7018d7e39168704bc427b43335e35Fb2D62765

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007f7018d7e39168704bc427b43335e35fb2d62765


Deployed Bytecode Sourcemap

4800:8897:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7149:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7571:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12289:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12624:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6879:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8089:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5501:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2902:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6973:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5005:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13052:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12201:80;;;;;;;;;;;;;:::i;:::-;;5468:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7795:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5580:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12748:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5308:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7319:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11780:409;;;;;;;;;;;;;:::i;:::-;;12875:165;;;;;;;;;;;;;:::i;:::-;;7235:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12454:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7059:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5707:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7925:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13167:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5735:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5907:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13277:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7430:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3130:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13521:169;;;;;;;;;;;;;:::i;:::-;;5676:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7149:80;7197:13;7221:5;;;;;;;;;;;;;;;;;7214:12;;7149:80;:::o;7571:216::-;7646:4;7698:6;7663:11;:23;7675:10;7663:23;;;;;;;;;;;;;;;:32;7687:7;7663:32;;;;;;;;;;;;;;;:41;;;;7741:7;7720:37;;7729:10;7720:37;;;7750:6;7720:37;;;;;;:::i;:::-;;;;;;;;7775:4;7768:11;;7571:216;;;;:::o;12289:156::-;2801:19;2809:10;2801:7;:19::i;:::-;2793:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12371:1:::1;12361:6;;:11;;12353:20;;;::::0;::::1;;12433:4;12424:6;:13;;;;12289:156:::0;:::o;12624:115::-;2801:19;2809:10;2801:7;:19::i;:::-;2793:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12719:11:::1;12698:10;;:33;;;;;;;;;;;;;;;;;;12624:115:::0;:::o;6879:88::-;6934:7;6952:12;;6945:19;;6879:88;:::o;8089:370::-;8189:4;8244:17;8209:11;:19;8221:6;8209:19;;;;;;;;;;;;;;;:31;8229:10;8209:31;;;;;;;;;;;;;;;;:52;8206:186;;8311:69;8347:6;8311:69;;;;;;;;;;;;;;;;;:11;:19;8323:6;8311:19;;;;;;;;;;;;;;;:31;8331:10;8311:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;8277:11;:19;8289:6;8277:19;;;;;;;;;;;;;;;:31;8297:10;8277:31;;;;;;;;;;;;;;;:103;;;;8206:186;8411:40;8425:6;8433:9;8444:6;8411:13;:40::i;:::-;8404:47;;8089:370;;;;;:::o;5501:27::-;;;;:::o;2902:103::-;2957:4;2992:5;;;;;;;;;;;2981:16;;:7;:16;;;2974:23;;2902:103;;;:::o;6973:80::-;7025:5;5039:2;7034:16;;6973:80;:::o;5005:36::-;5039:2;5005:36;:::o;13052:107::-;2801:19;2809:10;2801:7;:19::i;:::-;2793:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13145:6:::1;13127:5;:15;13133:8;13127:15;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;13052:107:::0;;:::o;12201:80::-;2801:19;2809:10;2801:7;:19::i;:::-;2793:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12268:5:::1;12257:8;;:16;;;;;;;;;;;;;;;;;;12201:80::o:0;5468:26::-;;;;:::o;7795:122::-;7850:4;7874:35;7882:7;7891:17;7874:7;:35::i;:::-;7867:42;;7795:122;;;:::o;5580:87::-;;;;;;;;;;;;;:::o;12748:119::-;2801:19;2809:10;2801:7;:19::i;:::-;2793:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12853:6:::1;12831:11;:19;12843:6;12831:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;12748:119:::0;;:::o;5308:39::-;;;;;;;;;;;;;;;;;:::o;7319:105::-;7385:7;7403:9;:18;7413:7;7403:18;;;;;;;;;;;;;;;;7396:25;;7319:105;;;:::o;11780:409::-;2801:19;2809:10;2801:7;:19::i;:::-;2793:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11841:6:::1;;;;;;;;;;;:22;;;11871:21;11916:4;11936:24;11954:4;11936:9;:24::i;:::-;11975:1;12018::::0;12061:5:::1;::::0;::::1;;;;;;;;12081:15;11841:266;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12140:12;12127:10;:25;;;;12177:4;12163:11;;:18;;;;;;;;;;;;;;;;;;11780:409::o:0;12875:165::-;2801:19;2809:10;2801:7;:19::i;:::-;2793:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12965:5:::1;12945:25;;:16;;;;;;;;;;;:25;;;12936:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;13028:4;13009:16;;:23;;;;;;;;;;;;;;;;;;12875:165::o:0;7235:78::-;7287:7;7305:5;;;;;;;;;;;7298:12;;7235:78;:::o;12454:159::-;2801:19;2809:10;2801:7;:19::i;:::-;2793:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12538:1:::1;12527:7;;:12;;12519:21;;;::::0;::::1;;12601:4;12591:7;:14;;;;12454:159:::0;:::o;7059:84::-;7109:13;7133:7;;;;;;;;;;;;;;;;;7126:14;;7059:84;:::o;5707:19::-;;;;;;;;;;;;;:::o;7925:156::-;8005:4;8029:44;8043:10;8055:9;8066:6;8029:13;:44::i;:::-;8022:51;;7925:156;;;;:::o;13167:102::-;13223:4;13247:5;:14;13253:7;13247:14;;;;;;;;;;;;;;;;;;;;;;;;;13240:21;;13167:102;;;:::o;5735:25::-;;;;:::o;5907:36::-;;;;;;;;;;;;;:::o;13277:234::-;2801:19;2809:10;2801:7;:19::i;:::-;2793:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13380:1:::1;13366:4;;:11;;:15;13357:25;;;::::0;::::1;;13393:6;13413:91;13424:4;;:11;;13420:1;:15;13413:91;;;13452:22;13459:4;;13464:1;13459:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;13469:4;13452:6;:22::i;:::-;13489:3;;;;;:::i;:::-;;;;13413:91;;;13346:165;13277:234:::0;;:::o;7430:133::-;7514:7;7532:11;:19;7544:6;7532:19;;;;;;;;;;;;;;;:28;7552:7;7532:28;;;;;;;;;;;;;;;;7525:35;;7430:133;;;;:::o;3130:136::-;2801:19;2809:10;2801:7;:19::i;:::-;2793:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3214:3:::1;3206:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3233:25;3254:3;3233:25;;;;;;:::i;:::-;;;;;;;;3130:136:::0;:::o;13521:169::-;2801:19;2809:10;2801:7;:19::i;:::-;2793:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13573:26:::1;13602:21;13573:50;;13642:10;;;;;;;;;;;13634:28;;:48;13663:18;13634:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13562:128;13521:169::o:0;5676:24::-;;;;;;;;;;;;;:::o;564:192::-;650:7;683:1;678;:6;;686:12;670:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;710:9;726:1;722;:5;;;;:::i;:::-;710:17;;747:1;740:8;;;564:192;;;;;:::o;8467:1420::-;8559:4;8581:11;;;;;;;;;;;8576:162;;8628:5;;;;;;;;;;8618:15;;:6;:15;;;:44;;;;8657:4;8638:24;;:6;:24;;;8618:44;8609:54;;;;;;8685:41;8700:6;8708:9;8719:6;8685:14;:41::i;:::-;8678:48;;;;8576:162;8762:16;;;;;;;;;;;8758:102;;;8805:5;:13;8811:6;8805:13;;;;;;;;;;;;;;;;;;;;;;;;;8804:14;:35;;;;;8823:5;:16;8829:9;8823:16;;;;;;;;;;;;;;;;;;;;;;;;;8822:17;8804:35;8795:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;8758:102;8874:8;;;;;;;;;;;8870:90;;;8917:6;;8909;:14;;8900:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;8870:90;8986:4;;;;;;;;;;;8976:14;;:6;:14;;;:46;;;;;9015:6;;;;;;;;;;;8994:28;;:9;:28;;;;8976:46;:73;;;;;9027:11;:22;9039:9;9027:22;;;;;;;;;;;;;;;;;;;;;;;;;9026:23;8976:73;8972:329;;;9097:15;9075:8;:19;9084:9;9075:19;;;;;;;;;;;;;;;;:37;9066:47;;;;;;9168:10;9150:15;:28;;;;:::i;:::-;9128:8;:19;9137:9;9128:19;;;;;;;;;;;;;;;:50;;;;9227:1;9214:10;;:14;;;;:::i;:::-;9197:12;:32;9193:97;;9270:4;9251:5;:16;9257:9;9251:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;9193:97;8972:329;9323:6;;;;;;;;;;;9320:63;;;9339:41;9354:6;9362:9;9373:6;9339:14;:41::i;:::-;9332:48;;;;9320:63;9407:19;9441:4;;;;;;;;;;;9430:15;;:9;:15;;;:47;;;;;9476:1;9449:24;9467:4;9449:9;:24::i;:::-;:28;9430:47;9407:71;;9492:14;9489:33;;;9509:10;:8;:10::i;:::-;9489:33;9554:53;9576:6;9554:53;;;;;;;;;;;;;;;;;:9;:17;9564:6;9554:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9534:9;:17;9544:6;9534:17;;;;;;;;;;;;;;;:73;;;;9620:22;9645:32;9659:6;9667:9;9645:13;:32::i;:::-;:67;;9706:6;9645:67;;;9680:23;9688:6;9696;9680:7;:23::i;:::-;9645:67;9620:92;;9756:40;9781:14;9756:9;:20;9766:9;9756:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;9733:9;:20;9743:9;9733:20;;;;;;;;;;;;;;;:63;;;;9831:9;9814:43;;9823:6;9814:43;;;9842:14;9814:43;;;;;;:::i;:::-;;;;;;;;9875:4;9868:11;;;;8467:1420;;;;;;:::o;9899:330::-;9992:4;10029:53;10051:6;10029:53;;;;;;;;;;;;;;;;;:9;:17;10039:6;10029:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;10009:9;:17;10019:6;10009:17;;;;;;;;;;;;;;;:73;;;;10116:32;10141:6;10116:9;:20;10126:9;10116:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10093:9;:20;10103:9;10093:20;;;;;;;;;;;;;;;:55;;;;10181:9;10164:35;;10173:6;10164:35;;;10192:6;10164:35;;;;;;:::i;:::-;;;;;;;;10217:4;10210:11;;9899:330;;;;;:::o;10957:304::-;6007:4;5998:6;;:13;;;;;;;;;;;;;;;;;;11008:20:::1;11031:24;11049:4;11031:9;:24::i;:::-;11008:47;;11076:30;11093:12;11076:16;:30::i;:::-;11119:26;11148:21;11119:50;;11203:10;;;;;;;;;;;11195:28;;:48;11224:18;11195:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10995:266;;6025:5:::0;6016:6;;:14;;;;;;;;;;;;;;;;;;10957:304::o;10240:206::-;10321:4;10349:11;:19;10361:6;10349:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;10372:11;:22;10384:9;10372:22;;;;;;;;;;;;;;;;;;;;;;;;;10349:45;10347:48;:90;;;;;10411:4;;;;;;;;;;;10401:14;;:6;:14;;;:35;;;;10432:4;;;;;;;;;;;10419:17;;:9;:17;;;10401:35;10347:90;10338:101;;10240:206;;;;:::o;10454:490::-;10521:7;10541:17;10582:4;;;;;;;;;;;10572:14;;:6;:14;;;10569:189;;10615:39;10639:14;;10615:19;10626:7;;10615:6;:10;;:19;;;;:::i;:::-;:23;;:39;;;;:::i;:::-;10603:51;;10569:189;;;10708:38;10731:14;;10708:18;10719:6;;10708;:10;;:18;;;;:::i;:::-;:22;;:38;;;;:::i;:::-;10696:50;;10569:189;10795:39;10824:9;10795;:24;10813:4;10795:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10768:9;:24;10786:4;10768:24;;;;;;;;;;;;;;;:66;;;;10875:4;10850:42;;10859:6;10850:42;;;10882:9;10850:42;;;;;;:::i;:::-;;;;;;;;10915:21;10926:9;10915:6;:10;;:21;;;;:::i;:::-;10908:28;;;10454:490;;;;:::o;235:181::-;293:7;313:9;329:1;325;:5;;;;:::i;:::-;313:17;;354:1;349;:6;;341:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;407:1;400:8;;;235:181;;;;:::o;11277:489::-;11405:21;11443:1;11429:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11405:40;;11474:4;11456;11461:1;11456:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;11500:4;;;;;;;;;;;11490;11495:1;11490:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;11543:6;;;;;;;;;;;:57;;;11615:11;11641:1;11685:4;11712;11732:15;11543:215;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11332:434;11277:489;:::o;762:250::-;820:7;849:1;844;:6;840:47;;;874:1;867:8;;;;840:47;899:9;915:1;911;:5;;;;:::i;:::-;899:17;;944:1;939;935;:5;;;;:::i;:::-;:10;927:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1003:1;996:8;;;762:250;;;;;:::o;1018:132::-;1076:7;1103:39;1107:1;1110;1103:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1096:46;;1018:132;;;;:::o;422:136::-;480:7;507:43;511:1;514;507:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;500:50;;422:136;;;;:::o;1156:345::-;1242:7;1341:1;1337;:5;1344:12;1329:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1368:9;1384:1;1380;:5;;;;:::i;:::-;1368:17;;1492:1;1485:8;;;1156:345;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:329::-;3553:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:119;;;3608:79;;:::i;:::-;3570:119;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3494:329;;;;:::o;3829:::-;3888:6;3937:2;3925:9;3916:7;3912:23;3908:32;3905:119;;;3943:79;;:::i;:::-;3905:119;4063:1;4088:53;4133:7;4124:6;4113:9;4109:22;4088:53;:::i;:::-;4078:63;;4034:117;3829:329;;;;:::o;4164:118::-;4251:24;4269:5;4251:24;:::i;:::-;4246:3;4239:37;4164:118;;:::o;4288:222::-;4381:4;4419:2;4408:9;4404:18;4396:26;;4432:71;4500:1;4489:9;4485:17;4476:6;4432:71;:::i;:::-;4288:222;;;;:::o;4516:619::-;4593:6;4601;4609;4658:2;4646:9;4637:7;4633:23;4629:32;4626:119;;;4664:79;;:::i;:::-;4626:119;4784:1;4809:53;4854:7;4845:6;4834:9;4830:22;4809:53;:::i;:::-;4799:63;;4755:117;4911:2;4937:53;4982:7;4973:6;4962:9;4958:22;4937:53;:::i;:::-;4927:63;;4882:118;5039:2;5065:53;5110:7;5101:6;5090:9;5086:22;5065:53;:::i;:::-;5055:63;;5010:118;4516:619;;;;;:::o;5141:86::-;5176:7;5216:4;5209:5;5205:16;5194:27;;5141:86;;;:::o;5233:112::-;5316:22;5332:5;5316:22;:::i;:::-;5311:3;5304:35;5233:112;;:::o;5351:214::-;5440:4;5478:2;5467:9;5463:18;5455:26;;5491:67;5555:1;5544:9;5540:17;5531:6;5491:67;:::i;:::-;5351:214;;;;:::o;5571:116::-;5641:21;5656:5;5641:21;:::i;:::-;5634:5;5631:32;5621:60;;5677:1;5674;5667:12;5621:60;5571:116;:::o;5693:133::-;5736:5;5774:6;5761:20;5752:29;;5790:30;5814:5;5790:30;:::i;:::-;5693:133;;;;:::o;5832:468::-;5897:6;5905;5954:2;5942:9;5933:7;5929:23;5925:32;5922:119;;;5960:79;;:::i;:::-;5922:119;6080:1;6105:53;6150:7;6141:6;6130:9;6126:22;6105:53;:::i;:::-;6095:63;;6051:117;6207:2;6233:50;6275:7;6266:6;6255:9;6251:22;6233:50;:::i;:::-;6223:60;;6178:115;5832:468;;;;;:::o;6306:104::-;6351:7;6380:24;6398:5;6380:24;:::i;:::-;6369:35;;6306:104;;;:::o;6416:142::-;6519:32;6545:5;6519:32;:::i;:::-;6514:3;6507:45;6416:142;;:::o;6564:254::-;6673:4;6711:2;6700:9;6696:18;6688:26;;6724:87;6808:1;6797:9;6793:17;6784:6;6724:87;:::i;:::-;6564:254;;;;:::o;6824:76::-;6860:7;6889:5;6878:16;;6824:76;;;:::o;6906:115::-;6991:23;7008:5;6991:23;:::i;:::-;6986:3;6979:36;6906:115;;:::o;7027:218::-;7118:4;7156:2;7145:9;7141:18;7133:26;;7169:69;7235:1;7224:9;7220:17;7211:6;7169:69;:::i;:::-;7027:218;;;;:::o;7251:118::-;7338:24;7356:5;7338:24;:::i;:::-;7333:3;7326:37;7251:118;;:::o;7375:222::-;7468:4;7506:2;7495:9;7491:18;7483:26;;7519:71;7587:1;7576:9;7572:17;7563:6;7519:71;:::i;:::-;7375:222;;;;:::o;7603:117::-;7712:1;7709;7702:12;7726:117;7835:1;7832;7825:12;7849:117;7958:1;7955;7948:12;7989:568;8062:8;8072:6;8122:3;8115:4;8107:6;8103:17;8099:27;8089:122;;8130:79;;:::i;:::-;8089:122;8243:6;8230:20;8220:30;;8273:18;8265:6;8262:30;8259:117;;;8295:79;;:::i;:::-;8259:117;8409:4;8401:6;8397:17;8385:29;;8463:3;8455:4;8447:6;8443:17;8433:8;8429:32;8426:41;8423:128;;;8470:79;;:::i;:::-;8423:128;7989:568;;;;;:::o;8563:559::-;8649:6;8657;8706:2;8694:9;8685:7;8681:23;8677:32;8674:119;;;8712:79;;:::i;:::-;8674:119;8860:1;8849:9;8845:17;8832:31;8890:18;8882:6;8879:30;8876:117;;;8912:79;;:::i;:::-;8876:117;9025:80;9097:7;9088:6;9077:9;9073:22;9025:80;:::i;:::-;9007:98;;;;8803:312;8563:559;;;;;:::o;9128:474::-;9196:6;9204;9253:2;9241:9;9232:7;9228:23;9224:32;9221:119;;;9259:79;;:::i;:::-;9221:119;9379:1;9404:53;9449:7;9440:6;9429:9;9425:22;9404:53;:::i;:::-;9394:63;;9350:117;9506:2;9532:53;9577:7;9568:6;9557:9;9553:22;9532:53;:::i;:::-;9522:63;;9477:118;9128:474;;;;;:::o;9608:138::-;9689:32;9715:5;9689:32;:::i;:::-;9682:5;9679:43;9669:71;;9736:1;9733;9726:12;9669:71;9608:138;:::o;9752:155::-;9806:5;9844:6;9831:20;9822:29;;9860:41;9895:5;9860:41;:::i;:::-;9752:155;;;;:::o;9913:345::-;9980:6;10029:2;10017:9;10008:7;10004:23;10000:32;9997:119;;;10035:79;;:::i;:::-;9997:119;10155:1;10180:61;10233:7;10224:6;10213:9;10209:22;10180:61;:::i;:::-;10170:71;;10126:125;9913:345;;;;:::o;10264:60::-;10292:3;10313:5;10306:12;;10264:60;;;:::o;10330:142::-;10380:9;10413:53;10431:34;10440:24;10458:5;10440:24;:::i;:::-;10431:34;:::i;:::-;10413:53;:::i;:::-;10400:66;;10330:142;;;:::o;10478:126::-;10528:9;10561:37;10592:5;10561:37;:::i;:::-;10548:50;;10478:126;;;:::o;10610:144::-;10678:9;10711:37;10742:5;10711:37;:::i;:::-;10698:50;;10610:144;;;:::o;10760:167::-;10865:55;10914:5;10865:55;:::i;:::-;10860:3;10853:68;10760:167;;:::o;10933:258::-;11044:4;11082:2;11071:9;11067:18;11059:26;;11095:89;11181:1;11170:9;11166:17;11157:6;11095:89;:::i;:::-;10933:258;;;;:::o;11197:156::-;11337:8;11333:1;11325:6;11321:14;11314:32;11197:156;:::o;11359:365::-;11501:3;11522:66;11586:1;11581:3;11522:66;:::i;:::-;11515:73;;11597:93;11686:3;11597:93;:::i;:::-;11715:2;11710:3;11706:12;11699:19;;11359:365;;;:::o;11730:419::-;11896:4;11934:2;11923:9;11919:18;11911:26;;11983:9;11977:4;11973:20;11969:1;11958:9;11954:17;11947:47;12011:131;12137:4;12011:131;:::i;:::-;12003:139;;11730:419;;;:::o;12155:85::-;12200:7;12229:5;12218:16;;12155:85;;;:::o;12246:158::-;12304:9;12337:61;12355:42;12364:32;12390:5;12364:32;:::i;:::-;12355:42;:::i;:::-;12337:61;:::i;:::-;12324:74;;12246:158;;;:::o;12410:147::-;12505:45;12544:5;12505:45;:::i;:::-;12500:3;12493:58;12410:147;;:::o;12563:807::-;12812:4;12850:3;12839:9;12835:19;12827:27;;12864:71;12932:1;12921:9;12917:17;12908:6;12864:71;:::i;:::-;12945:72;13013:2;13002:9;12998:18;12989:6;12945:72;:::i;:::-;13027:80;13103:2;13092:9;13088:18;13079:6;13027:80;:::i;:::-;13117;13193:2;13182:9;13178:18;13169:6;13117:80;:::i;:::-;13207:73;13275:3;13264:9;13260:19;13251:6;13207:73;:::i;:::-;13290;13358:3;13347:9;13343:19;13334:6;13290:73;:::i;:::-;12563:807;;;;;;;;;:::o;13376:143::-;13433:5;13464:6;13458:13;13449:22;;13480:33;13507:5;13480:33;:::i;:::-;13376:143;;;;:::o;13525:663::-;13613:6;13621;13629;13678:2;13666:9;13657:7;13653:23;13649:32;13646:119;;;13684:79;;:::i;:::-;13646:119;13804:1;13829:64;13885:7;13876:6;13865:9;13861:22;13829:64;:::i;:::-;13819:74;;13775:128;13942:2;13968:64;14024:7;14015:6;14004:9;14000:22;13968:64;:::i;:::-;13958:74;;13913:129;14081:2;14107:64;14163:7;14154:6;14143:9;14139:22;14107:64;:::i;:::-;14097:74;;14052:129;13525:663;;;;;:::o;14194:173::-;14334:25;14330:1;14322:6;14318:14;14311:49;14194:173;:::o;14373:366::-;14515:3;14536:67;14600:2;14595:3;14536:67;:::i;:::-;14529:74;;14612:93;14701:3;14612:93;:::i;:::-;14730:2;14725:3;14721:12;14714:19;;14373:366;;;:::o;14745:419::-;14911:4;14949:2;14938:9;14934:18;14926:26;;14998:9;14992:4;14988:20;14984:1;14973:9;14969:17;14962:47;15026:131;15152:4;15026:131;:::i;:::-;15018:139;;14745:419;;;:::o;15170:180::-;15218:77;15215:1;15208:88;15315:4;15312:1;15305:15;15339:4;15336:1;15329:15;15356:180;15404:77;15401:1;15394:88;15501:4;15498:1;15491:15;15525:4;15522:1;15515:15;15542:233;15581:3;15604:24;15622:5;15604:24;:::i;:::-;15595:33;;15650:66;15643:5;15640:77;15637:103;;;15720:18;;:::i;:::-;15637:103;15767:1;15760:5;15756:13;15749:20;;15542:233;;;:::o;15781:134::-;15839:9;15872:37;15903:5;15872:37;:::i;:::-;15859:50;;15781:134;;;:::o;15921:147::-;16016:45;16055:5;16016:45;:::i;:::-;16011:3;16004:58;15921:147;;:::o;16074:238::-;16175:4;16213:2;16202:9;16198:18;16190:26;;16226:79;16302:1;16291:9;16287:17;16278:6;16226:79;:::i;:::-;16074:238;;;;:::o;16318:191::-;16358:4;16378:20;16396:1;16378:20;:::i;:::-;16373:25;;16412:20;16430:1;16412:20;:::i;:::-;16407:25;;16451:1;16448;16445:8;16442:34;;;16456:18;;:::i;:::-;16442:34;16501:1;16498;16494:9;16486:17;;16318:191;;;;:::o;16515:154::-;16655:6;16651:1;16643:6;16639:14;16632:30;16515:154;:::o;16675:365::-;16817:3;16838:66;16902:1;16897:3;16838:66;:::i;:::-;16831:73;;16913:93;17002:3;16913:93;:::i;:::-;17031:2;17026:3;17022:12;17015:19;;16675:365;;;:::o;17046:419::-;17212:4;17250:2;17239:9;17235:18;17227:26;;17299:9;17293:4;17289:20;17285:1;17274:9;17270:17;17263:47;17327:131;17453:4;17327:131;:::i;:::-;17319:139;;17046:419;;;:::o;17471:162::-;17611:14;17607:1;17599:6;17595:14;17588:38;17471:162;:::o;17639:366::-;17781:3;17802:67;17866:2;17861:3;17802:67;:::i;:::-;17795:74;;17878:93;17967:3;17878:93;:::i;:::-;17996:2;17991:3;17987:12;17980:19;;17639:366;;;:::o;18011:419::-;18177:4;18215:2;18204:9;18200:18;18192:26;;18264:9;18258:4;18254:20;18250:1;18239:9;18235:17;18228:47;18292:131;18418:4;18292:131;:::i;:::-;18284:139;;18011:419;;;:::o;18436:305::-;18476:3;18495:20;18513:1;18495:20;:::i;:::-;18490:25;;18529:20;18547:1;18529:20;:::i;:::-;18524:25;;18683:1;18615:66;18611:74;18608:1;18605:81;18602:107;;;18689:18;;:::i;:::-;18602:107;18733:1;18730;18726:9;18719:16;;18436:305;;;;:::o;18747:177::-;18887:29;18883:1;18875:6;18871:14;18864:53;18747:177;:::o;18930:366::-;19072:3;19093:67;19157:2;19152:3;19093:67;:::i;:::-;19086:74;;19169:93;19258:3;19169:93;:::i;:::-;19287:2;19282:3;19278:12;19271:19;;18930:366;;;:::o;19302:419::-;19468:4;19506:2;19495:9;19491:18;19483:26;;19555:9;19549:4;19545:20;19541:1;19530:9;19526:17;19519:47;19583:131;19709:4;19583:131;:::i;:::-;19575:139;;19302:419;;;:::o;19727:180::-;19775:77;19772:1;19765:88;19872:4;19869:1;19862:15;19896:4;19893:1;19886:15;19913:114;19980:6;20014:5;20008:12;19998:22;;19913:114;;;:::o;20033:184::-;20132:11;20166:6;20161:3;20154:19;20206:4;20201:3;20197:14;20182:29;;20033:184;;;;:::o;20223:132::-;20290:4;20313:3;20305:11;;20343:4;20338:3;20334:14;20326:22;;20223:132;;;:::o;20361:108::-;20438:24;20456:5;20438:24;:::i;:::-;20433:3;20426:37;20361:108;;:::o;20475:179::-;20544:10;20565:46;20607:3;20599:6;20565:46;:::i;:::-;20643:4;20638:3;20634:14;20620:28;;20475:179;;;;:::o;20660:113::-;20730:4;20762;20757:3;20753:14;20745:22;;20660:113;;;:::o;20809:732::-;20928:3;20957:54;21005:5;20957:54;:::i;:::-;21027:86;21106:6;21101:3;21027:86;:::i;:::-;21020:93;;21137:56;21187:5;21137:56;:::i;:::-;21216:7;21247:1;21232:284;21257:6;21254:1;21251:13;21232:284;;;21333:6;21327:13;21360:63;21419:3;21404:13;21360:63;:::i;:::-;21353:70;;21446:60;21499:6;21446:60;:::i;:::-;21436:70;;21292:224;21279:1;21276;21272:9;21267:14;;21232:284;;;21236:14;21532:3;21525:10;;20933:608;;;20809:732;;;;:::o;21547:831::-;21810:4;21848:3;21837:9;21833:19;21825:27;;21862:71;21930:1;21919:9;21915:17;21906:6;21862:71;:::i;:::-;21943:80;22019:2;22008:9;22004:18;21995:6;21943:80;:::i;:::-;22070:9;22064:4;22060:20;22055:2;22044:9;22040:18;22033:48;22098:108;22201:4;22192:6;22098:108;:::i;:::-;22090:116;;22216:72;22284:2;22273:9;22269:18;22260:6;22216:72;:::i;:::-;22298:73;22366:3;22355:9;22351:19;22342:6;22298:73;:::i;:::-;21547:831;;;;;;;;:::o;22384:348::-;22424:7;22447:20;22465:1;22447:20;:::i;:::-;22442:25;;22481:20;22499:1;22481:20;:::i;:::-;22476:25;;22669:1;22601:66;22597:74;22594:1;22591:81;22586:1;22579:9;22572:17;22568:105;22565:131;;;22676:18;;:::i;:::-;22565:131;22724:1;22721;22717:9;22706:20;;22384:348;;;;:::o;22738:180::-;22786:77;22783:1;22776:88;22883:4;22880:1;22873:15;22907:4;22904:1;22897:15;22924:185;22964:1;22981:20;22999:1;22981:20;:::i;:::-;22976:25;;23015:20;23033:1;23015:20;:::i;:::-;23010:25;;23054:1;23044:35;;23059:18;;:::i;:::-;23044:35;23101:1;23098;23094:9;23089:14;;22924:185;;;;:::o;23115:220::-;23255:34;23251:1;23243:6;23239:14;23232:58;23324:3;23319:2;23311:6;23307:15;23300:28;23115:220;:::o;23341:366::-;23483:3;23504:67;23568:2;23563:3;23504:67;:::i;:::-;23497:74;;23580:93;23669:3;23580:93;:::i;:::-;23698:2;23693:3;23689:12;23682:19;;23341:366;;;:::o;23713:419::-;23879:4;23917:2;23906:9;23902:18;23894:26;;23966:9;23960:4;23956:20;23952:1;23941:9;23937:17;23930:47;23994:131;24120:4;23994:131;:::i;:::-;23986:139;;23713:419;;;:::o

Swarm Source

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