ETH Price: $3,157.08 (+2.82%)
Gas: 1 Gwei

Token

Casinu Inu (CASINU)
 

Overview

Max Total Supply

1,000,000,000,000 CASINU

Holders

57

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,056,271,130.525373576 CASINU

Value
$0.00
0xabce37f257ec29866aed27ef4c852161b30a3380
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:
CASINU

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-01-07
*/

/*
*
* Telegram : https://t.me/casinutoken
* Website :  https://casinutoken.com
*
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.7;

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

/**
 * BEP20 standard interface.
 */
interface IBEP20 {
    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.
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        emit OwnershipTransferred(adr);
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(address(0));
        owner = address(0);
    }

    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;
}

interface IDividendDistributor {
    function setShare(address shareholder, uint256 amount) external;
    function deposit() external payable;
    function claimDividend(address shareholder) external;
    function setTreasury(address treasury) external;
    function getDividendsClaimedOf (address shareholder) external returns (uint256);
}

contract DividendDistributor is IDividendDistributor {
    using SafeMath for uint256;

    address public _token;
    address public _owner;
    address public _treasury;

    struct Share {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalClaimed;
    }

    address[] private shareholders;
    mapping (address => uint256) private shareholderIndexes;

    mapping (address => Share) public shares;

    uint256 public totalShares;
    uint256 public totalDividends;
    uint256 public totalClaimed;
    uint256 public dividendsPerShare;
    uint256 private dividendsPerShareAccuracyFactor = 10 ** 36;

    modifier onlyToken() {
        require(msg.sender == _token); _;
    }
    
    modifier onlyOwner() {
        require(msg.sender == _owner); _;
    }

    constructor (address owner, address treasury) {
        _token = msg.sender;
        _owner = owner;
        _treasury = treasury;
    }

   // receive() external payable { }

    function setShare(address shareholder, uint256 amount) external override onlyToken {
        if(shares[shareholder].amount > 0){
            distributeDividend(shareholder);
        }

        if(amount > 0 && shares[shareholder].amount == 0){
            addShareholder(shareholder);
        }else if(amount == 0 && shares[shareholder].amount > 0){
            removeShareholder(shareholder);
        }

        totalShares = totalShares.sub(shares[shareholder].amount).add(amount);
        shares[shareholder].amount = amount;
        shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
    }

    function deposit() external payable override {
       
        uint256 amount = msg.value;
        
        totalDividends = totalDividends.add(amount);
        dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares));
    }

    function distributeDividend(address shareholder) internal {
        if(shares[shareholder].amount == 0){ return; }

        uint256 amount = getClaimableDividendOf(shareholder);
        if(amount > 0){
            totalClaimed = totalClaimed.add(amount);
            shares[shareholder].totalClaimed = shares[shareholder].totalClaimed.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
            payable(shareholder).transfer(amount);
        }
    }

    function claimDividend(address shareholder) external override onlyToken {
        distributeDividend(shareholder);
    }

    function getClaimableDividendOf(address shareholder) public view returns (uint256) {
        if(shares[shareholder].amount == 0){ return 0; }

        uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount);
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;

        if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; }

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

    function getCumulativeDividends(uint256 share) internal view returns (uint256) {
        return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor);
    }

    function addShareholder(address shareholder) internal {
        shareholderIndexes[shareholder] = shareholders.length;
        shareholders.push(shareholder);
    }

    function removeShareholder(address shareholder) internal {
        shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1];
        shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder];
        shareholders.pop();
    }
    
    function manualSend(uint256 amount, address holder) external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(holder).transfer(amount > 0 ? amount : contractETHBalance);
    }

    function setTreasury(address treasury) external onlyToken {
        _treasury = payable(treasury);
    }

    function getDividendsClaimedOf (address shareholder) external view returns (uint256) {
        require (shares[shareholder].amount > 0, "You're not a TEST shareholder!");
        return shares[shareholder].totalClaimed;
    }

    }

contract CASINU is IBEP20, Auth {
    using SafeMath for uint256;

    address private WETH;
    address private DEAD = 0x000000000000000000000000000000000000dEaD;
    address private ZERO = 0x0000000000000000000000000000000000000000;

    string private constant  _name = "Casinu Inu";
    string private constant _symbol = "CASINU";
    uint8 private constant _decimals = 9;

    uint256 private _totalSupply = 1000000000000 * (10 ** _decimals);
    uint256 private _maxTxAmountBuy = _totalSupply;
  

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) private isFeeExempt;
    mapping (address => bool) private isDividendExempt;
    mapping (address => bool) private isBot;
        
    uint256 private totalFee = 14;
    uint256 private feeDenominator = 100;

    address payable public marketingWallet = payable(0x3a51C8f9f38C412443992698df800A0Dc77ddC2D);
    address payable public treasury = payable(0xeA65352280C16326A0D84e0A37F49f61F8cd9b40);

    IDEXRouter public router;
    address public pair;
    address private _admin;

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

    DividendDistributor public distributor;

    bool private inSwap;

    modifier swapping() { inSwap = true; _; inSwap = false; }

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

        distributor = new DividendDistributor(_owner, treasury);

        isFeeExempt[_owner] = true;
        isFeeExempt[marketingWallet] = true;
        isFeeExempt[treasury] = true;        
              
        isDividendExempt[pair] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = 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 (sender!= owner && recipient!= owner) require(tradingOpen, "Trading not yet enabled."); //transfers disabled before openTrading
        require (!isBot[sender] && !isBot[recipient], "Nice try");
        if (buyLimit) { 
            if (sender!=owner && recipient!= owner) require (amount<=maxBuy, "Too much sir");        
        }
        if (block.number <= (launchedAt + 1)) { 
            isBot[recipient] = true;
            isDividendExempt[recipient] = true; 
        }
       
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }      
    
        bool shouldSwapBack = /*!inSwap &&*/ (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);

        if(sender != pair && !isDividendExempt[sender]){ try distributor.setShare(sender, _balances[sender]) {} catch {} }
        if(recipient != pair && !isDividendExempt[recipient]){ try distributor.setShare(recipient, _balances[recipient]) {} catch {} }

        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;
        feeAmount = amount.mul(totalFee).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));

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        
        uint256 amountTreasury = (address(this).balance).div(4);
        uint256 amountMarketingAndDev = (address(this).balance).sub(amountTreasury);

             
        payable(marketingWallet).transfer(amountMarketingAndDev);
        payable(treasury).transfer(amountTreasury);
    }

    
    function openTrading() external onlyOwner {
        launchedAt = block.number;
        tradingOpen = true;
    }    
  
    
    function setBot(address _address, bool toggle) external onlyOwner {
        isBot[_address] = toggle;
        _setIsDividendExempt(_address, toggle);
    }
    
    function isInBot(address _address) external view onlyOwner returns (bool) {
        return isBot[_address];
    }
    
    function _setIsDividendExempt(address holder, bool exempt) internal {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;
        if(exempt){
            distributor.setShare(holder, 0);
        }else{
            distributor.setShare(holder, _balances[holder]);
        }
    }

    function setIsDividendExempt(address holder, bool exempt) external {
        require(msg.sender == _admin, "Only Admin can set dividend exempt");
        _setIsDividendExempt(holder, exempt);
    }

    function setIsFeeExempt(address holder, bool exempt) external {
    require(msg.sender == _admin, "Only Admin can set fee exempt");
        isFeeExempt[holder] = exempt;
    }

    function setFee (uint256 _fee) external {
        require(msg.sender == _admin, "OnlyAdmin can set fees");
        require (_fee <= 16, "Fee can't exceed 16%");
        totalFee = _fee;
    }

    function manualSend() external  {
        require(msg.sender == _admin, "Only Admin can manual send");
        uint256 contractETHBalance = address(this).balance;
        payable(marketingWallet).transfer(contractETHBalance);
    }

    function manualSendTokens(uint256 amount) external returns (bool) {
        require(msg.sender == _admin, "Only Admin can manual send");
        return _basicTransfer(address(this), msg.sender, amount);
    }

    function manualswap() external {
        require(msg.sender == _admin, "Only Admin can manual send");
        swapBack();
    }
    function claimDividend() external {
        distributor.claimDividend(msg.sender);
    }
    
    function claimDividend(address holder) external onlyOwner {
        distributor.claimDividend(holder);
    }
    
    function getClaimableDividendOf(address shareholder) public view returns (uint256) {
        return distributor.getClaimableDividendOf(shareholder);
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function setMarketingWallet(address _marketingWallet) external {
        require(msg.sender == _admin, "Only Admin can set Marketing");
        marketingWallet = payable(_marketingWallet);
    }

    function setTreasury(address _treasury) external {
        require(msg.sender == _admin, "Only Admin can set treasury");
        treasury = payable(_treasury);
        distributor.setTreasury(_treasury);
    }

    function getTotalDividends() external view returns (uint256) {
        return distributor.totalDividends();
    }    

    function getTotalClaimed() external view returns (uint256) {
        return distributor.totalClaimed();
    }

     function getDividendsClaimedOf (address shareholder) external view returns (uint256) {
        return distributor.getDividendsClaimedOf(shareholder);
    }

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

    function setMaxBuy(uint256 _maxBuy) external onlyOwner {
        maxBuy = _maxBuy;
    }
}

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":[{"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":"holder","type":"address"}],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"distributor","outputs":[{"internalType":"contract DividendDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getClaimableDividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getDividendsClaimedOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isInBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualSendTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","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":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","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":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxBuy","type":"uint256"}],"name":"setMaxBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_treasury","type":"address"}],"name":"setTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000099919062000b56565b64e8d4a51000620000ab919062000ba7565b600455600454600555600e600b556064600c55733a51c8f9f38c412443992698df800a0dc77ddc2d600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ea65352280c16326a0d84e0a37f49f61f8cd9b40600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601360016101000a81548160ff0219169083151502179055506009600a62000193919062000b56565b6402540be400620001a5919062000ba7565b601455348015620001b557600080fd5b5060405162006a0838038062006a088339818101604052810190620001db919062000c72565b80806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000321573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000347919062000c72565b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041b919062000c72565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200047992919062000cb5565b6020604051808303816000875af115801562000499573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004bf919062000c72565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051620005f490620009ae565b6200060192919062000d4d565b604051809103906000f0801580156200061e573d6000803e3d6000fd5b50601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600454600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040516200099f919062000d8b565b60405180910390a35062000da8565b6119e4806200502483390190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000a4a5780860481111562000a225762000a21620009bc565b5b600185161562000a325780820291505b808102905062000a4285620009eb565b945062000a02565b94509492505050565b60008262000a65576001905062000b38565b8162000a75576000905062000b38565b816001811462000a8e576002811462000a995762000acf565b600191505062000b38565b60ff84111562000aae5762000aad620009bc565b5b8360020a91508482111562000ac85762000ac7620009bc565b5b5062000b38565b5060208310610133831016604e8410600b841016171562000b095782820a90508381111562000b035762000b02620009bc565b5b62000b38565b62000b188484846001620009f8565b9250905081840481111562000b325762000b31620009bc565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000b638262000b3f565b915062000b708362000b49565b925062000b9f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a53565b905092915050565b600062000bb48262000b3f565b915062000bc18362000b3f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000bfd5762000bfc620009bc565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c3a8262000c0d565b9050919050565b62000c4c8162000c2d565b811462000c5857600080fd5b50565b60008151905062000c6c8162000c41565b92915050565b60006020828403121562000c8b5762000c8a62000c08565b5b600062000c9b8482850162000c5b565b91505092915050565b62000caf8162000c2d565b82525050565b600060408201905062000ccc600083018562000ca4565b62000cdb602083018462000ca4565b9392505050565b6000819050919050565b600062000d0d62000d0762000d018462000c0d565b62000ce2565b62000c0d565b9050919050565b600062000d218262000cec565b9050919050565b600062000d358262000d14565b9050919050565b62000d478162000d28565b82525050565b600060408201905062000d64600083018562000ca4565b62000d73602083018462000d3c565b9392505050565b62000d858162000b3f565b82525050565b600060208201905062000da2600083018462000d7a565b92915050565b61426c8062000db86000396000f3fe60806040526004361061023f5760003560e01c8063736a83a11161012e578063c3c8cd80116100ab578063f2fde38b1161006f578063f2fde38b14610882578063f4293890146108ab578063f53bc835146108c2578063f708a64f146108eb578063f887ea401461091457610246565b8063c3c8cd80146107d7578063c9567bf9146107ee578063dd62ed3e14610805578063f0f4426014610842578063f0fc6bca1461086b57610246565b806395d89b41116100f257806395d89b41146106ee578063a8aa1b3114610719578063a9059cbb14610744578063bf56b37114610781578063bfe10928146107ac57610246565b8063736a83a1146105f357806375f0a8741461061e578063876193d414610649578063893d20e8146106865780638ecc37fb146106b157610246565b8063416501c8116101bc578063658d4b7f11610180578063658d4b7f1461052257806367ee5f091461054b57806369fe0e2d1461057657806370a082311461059f578063715018a6146105dc57610246565b8063416501c814610417578063571ac8b0146104545780635cc33f74146104915780635d098b38146104ce57806361d027b3146104f757610246565b80632b112e49116102035780632b112e49146103445780632f54bf6e1461036f578063313ce567146103ac578063342aa8b5146103d75780633e07ce5b1461040057610246565b806306fdde031461024b578063095ea7b31461027657806315f7e05e146102b357806318160ddd146102dc57806323b872dd1461030757610246565b3661024657005b600080fd5b34801561025757600080fd5b5061026061093f565b60405161026d919061341a565b60405180910390f35b34801561028257600080fd5b5061029d600480360381019061029891906134d5565b61097c565b6040516102aa9190613530565b60405180910390f35b3480156102bf57600080fd5b506102da60048036038101906102d5919061354b565b610a6e565b005b3480156102e857600080fd5b506102f1610b46565b6040516102fe9190613587565b60405180910390f35b34801561031357600080fd5b5061032e600480360381019061032991906135a2565b610b50565b60405161033b9190613530565b60405180910390f35b34801561035057600080fd5b50610359610d50565b6040516103669190613587565b60405180910390f35b34801561037b57600080fd5b506103966004803603810190610391919061354b565b610dd2565b6040516103a39190613530565b60405180910390f35b3480156103b857600080fd5b506103c1610e2b565b6040516103ce9190613611565b60405180910390f35b3480156103e357600080fd5b506103fe60048036038101906103f99190613658565b610e34565b005b34801561040c57600080fd5b50610415610ee1565b005b34801561042357600080fd5b5061043e6004803603810190610439919061354b565b610f46565b60405161044b9190613530565b60405180910390f35b34801561046057600080fd5b5061047b6004803603810190610476919061354b565b610fe4565b6040516104889190613530565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b3919061354b565b611017565b6040516104c59190613587565b60405180910390f35b3480156104da57600080fd5b506104f560048036038101906104f0919061354b565b6110bc565b005b34801561050357600080fd5b5061050c611190565b60405161051991906136b9565b60405180910390f35b34801561052e57600080fd5b5061054960048036038101906105449190613658565b6111b6565b005b34801561055757600080fd5b506105606112a1565b60405161056d9190613587565b60405180910390f35b34801561058257600080fd5b5061059d600480360381019061059891906136d4565b611339565b005b3480156105ab57600080fd5b506105c660048036038101906105c1919061354b565b611417565b6040516105d39190613587565b60405180910390f35b3480156105e857600080fd5b506105f1611460565b005b3480156105ff57600080fd5b50610608611523565b6040516106159190613587565b60405180910390f35b34801561062a57600080fd5b506106336115bb565b60405161064091906136b9565b60405180910390f35b34801561065557600080fd5b50610670600480360381019061066b91906136d4565b6115e1565b60405161067d9190613530565b60405180910390f35b34801561069257600080fd5b5061069b611685565b6040516106a89190613710565b60405180910390f35b3480156106bd57600080fd5b506106d860048036038101906106d3919061354b565b6116ae565b6040516106e59190613587565b60405180910390f35b3480156106fa57600080fd5b50610703611753565b604051610710919061341a565b60405180910390f35b34801561072557600080fd5b5061072e611790565b60405161073b9190613710565b60405180910390f35b34801561075057600080fd5b5061076b600480360381019061076691906134d5565b6117b6565b6040516107789190613530565b60405180910390f35b34801561078d57600080fd5b506107966117cb565b6040516107a39190613587565b60405180910390f35b3480156107b857600080fd5b506107c16117d1565b6040516107ce919061378a565b60405180910390f35b3480156107e357600080fd5b506107ec6117f7565b005b3480156107fa57600080fd5b50610803611891565b005b34801561081157600080fd5b5061082c600480360381019061082791906137a5565b6118fd565b6040516108399190613587565b60405180910390f35b34801561084e57600080fd5b506108696004803603810190610864919061354b565b611984565b005b34801561087757600080fd5b50610880611ae5565b005b34801561088e57600080fd5b506108a960048036038101906108a49190613811565b611b74565b005b3480156108b757600080fd5b506108c0611c36565b005b3480156108ce57600080fd5b506108e960048036038101906108e491906136d4565b611d37565b005b3480156108f757600080fd5b50610912600480360381019061090d9190613658565b611d89565b005b34801561092057600080fd5b50610929611e27565b604051610936919061385f565b60405180910390f35b60606040518060400160405280600a81526020017f436173696e7520496e7500000000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a5c9190613587565b60405180910390a36001905092915050565b610a7733610dd2565b610ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aad906138c6565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e826040518263ffffffff1660e01b8152600401610b119190613710565b600060405180830381600087803b158015610b2b57600080fd5b505af1158015610b3f573d6000803e3d6000fd5b5050505050565b6000600454905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d3c57610cbb826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e4d9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610d47848484611eb1565b90509392505050565b6000610dcd610d80600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611417565b610dbf610dae600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611417565b6004546127f790919063ffffffff16565b6127f790919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b610e3d33610dd2565b610e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e73906138c6565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610edd8282612841565b5050565b610eea33610dd2565b610f29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f20906138c6565b60405180910390fd5b6000601360016101000a81548160ff021916908315150217905550565b6000610f5133610dd2565b610f90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f87906138c6565b60405180910390fd5b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000611010827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61097c565b9050919050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635cc33f74836040518263ffffffff1660e01b81526004016110749190613710565b602060405180830381865afa158015611091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b591906138fb565b9050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461114c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114390613974565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123d906139e0565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663997664d76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611310573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133491906138fb565b905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c090613a4c565b60405180910390fd5b601081111561140d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140490613ab8565b60405180910390fd5b80600b8190555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61146933610dd2565b6114a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149f906138c6565b60405180910390fd5b7f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616360006040516114d89190613710565b60405180910390a160008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d54ad2a16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611592573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b691906138fb565b905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611673576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166a90613b24565b60405180910390fd5b61167e303384612a99565b9050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638ecc37fb836040518263ffffffff1660e01b815260040161170b9190613710565b602060405180830381865afa158015611728573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174c91906138fb565b9050919050565b60606040518060400160405280600681526020017f434153494e550000000000000000000000000000000000000000000000000000815250905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006117c3338484611eb1565b905092915050565b60125481565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187e90613b24565b60405180910390fd5b61188f612c6c565b565b61189a33610dd2565b6118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d0906138c6565b60405180910390fd5b436012819055506001601360006101000a81548160ff021916908315150217905550565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0b90613b90565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0f44260826040518263ffffffff1660e01b8152600401611ab09190613710565b600060405180830381600087803b158015611aca57600080fd5b505af1158015611ade573d6000803e3d6000fd5b5050505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b8152600401611b409190613710565b600060405180830381600087803b158015611b5a57600080fd5b505af1158015611b6e573d6000803e3d6000fd5b50505050565b611b7d33610dd2565b611bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb3906138c6565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611c2b9190613bd1565b60405180910390a150565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbd90613b24565b60405180910390fd5b6000479050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d33573d6000803e3d6000fd5b5050565b611d4033610dd2565b611d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d76906138c6565b60405180910390fd5b8060148190555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1090613c5e565b60405180910390fd5b611e238282612841565b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611e95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8c919061341a565b60405180910390fd5b5060008385611ea49190613cad565b9050809150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f5c575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fb157601360009054906101000a900460ff16611fb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa790613d2d565b60405180910390fd5b5b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120555750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208b90613d99565b60405180910390fd5b601360019054906101000a900460ff161561219d5760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612151575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561219c5760145482111561219b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219290613e05565b60405180910390fd5b5b5b60016012546121ac9190613e25565b4311612263576001600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b601560149054906101000a900460ff161561228a57612283848484612a99565b90506127f0565b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122f1575060006122ef30611417565b115b9050801561230257612301612c6c565b5b61238b836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e4d9092919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006123da8686612f5a565b6123e457836123ef565b6123ee86856130b7565b5b905061244381600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131fb90919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561252e5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561260557601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9687600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016125cf929190613e7b565b600060405180830381600087803b1580156125e957600080fd5b505af19250505080156125fa575060015b61260357612604565b5b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156126ad5750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561278457601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b815260040161274e929190613e7b565b600060405180830381600087803b15801561276857600080fd5b505af1925050508015612779575060015b61278257612783565b5b5b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127e19190613587565b60405180910390a36001925050505b9392505050565b600061283983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e4d565b905092915050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156128cb5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6128d457600080fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156129c657601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b815260040161298f929190613edf565b600060405180830381600087803b1580156129a957600080fd5b505af11580156129bd573d6000803e3d6000fd5b50505050612a95565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612a62929190613e7b565b600060405180830381600087803b158015612a7c57600080fd5b505af1158015612a90573d6000803e3d6000fd5b505050505b5050565b6000612b24826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e4d9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bb982600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131fb90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c599190613587565b60405180910390a3600190509392505050565b6001601560146101000a81548160ff0219169083151502179055506000612c9230611417565b90506000600267ffffffffffffffff811115612cb157612cb0613f08565b5b604051908082528060200260200182016040528015612cdf5781602001602082028036833780820191505090505b5090503081600081518110612cf757612cf6613f37565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612d6857612d67613f37565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e06959493929190614024565b600060405180830381600087803b158015612e2057600080fd5b505af1158015612e34573d6000803e3d6000fd5b505050506000612e4e60044761325990919063ffffffff16565b90506000612e6582476127f790919063ffffffff16565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612ecf573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612f38573d6000803e3d6000fd5b50505050506000601560146101000a81548160ff021916908315150217905550565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ffd5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1580156130af5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806130ae5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b905092915050565b6000806130e3600c546130d5600b54866132a390919063ffffffff16565b61325990919063ffffffff16565b905061313781600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131fb90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131d79190613587565b60405180910390a36131f281846127f790919063ffffffff16565b91505092915050565b600080828461320a9190613e25565b90508381101561324f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613246906140ca565b60405180910390fd5b8091505092915050565b600061329b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061331e565b905092915050565b6000808314156132b65760009050613318565b600082846132c491906140ea565b90508284826132d39190614173565b14613313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161330a90614216565b60405180910390fd5b809150505b92915050565b60008083118290613365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161335c919061341a565b60405180910390fd5b50600083856133749190614173565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133bb5780820151818401526020810190506133a0565b838111156133ca576000848401525b50505050565b6000601f19601f8301169050919050565b60006133ec82613381565b6133f6818561338c565b935061340681856020860161339d565b61340f816133d0565b840191505092915050565b6000602082019050818103600083015261343481846133e1565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061346c82613441565b9050919050565b61347c81613461565b811461348757600080fd5b50565b60008135905061349981613473565b92915050565b6000819050919050565b6134b28161349f565b81146134bd57600080fd5b50565b6000813590506134cf816134a9565b92915050565b600080604083850312156134ec576134eb61343c565b5b60006134fa8582860161348a565b925050602061350b858286016134c0565b9150509250929050565b60008115159050919050565b61352a81613515565b82525050565b60006020820190506135456000830184613521565b92915050565b6000602082840312156135615761356061343c565b5b600061356f8482850161348a565b91505092915050565b6135818161349f565b82525050565b600060208201905061359c6000830184613578565b92915050565b6000806000606084860312156135bb576135ba61343c565b5b60006135c98682870161348a565b93505060206135da8682870161348a565b92505060406135eb868287016134c0565b9150509250925092565b600060ff82169050919050565b61360b816135f5565b82525050565b60006020820190506136266000830184613602565b92915050565b61363581613515565b811461364057600080fd5b50565b6000813590506136528161362c565b92915050565b6000806040838503121561366f5761366e61343c565b5b600061367d8582860161348a565b925050602061368e85828601613643565b9150509250929050565b60006136a382613441565b9050919050565b6136b381613698565b82525050565b60006020820190506136ce60008301846136aa565b92915050565b6000602082840312156136ea576136e961343c565b5b60006136f8848285016134c0565b91505092915050565b61370a81613461565b82525050565b60006020820190506137256000830184613701565b92915050565b6000819050919050565b600061375061374b61374684613441565b61372b565b613441565b9050919050565b600061376282613735565b9050919050565b600061377482613757565b9050919050565b61378481613769565b82525050565b600060208201905061379f600083018461377b565b92915050565b600080604083850312156137bc576137bb61343c565b5b60006137ca8582860161348a565b92505060206137db8582860161348a565b9150509250929050565b6137ee81613698565b81146137f957600080fd5b50565b60008135905061380b816137e5565b92915050565b6000602082840312156138275761382661343c565b5b6000613835848285016137fc565b91505092915050565b600061384982613757565b9050919050565b6138598161383e565b82525050565b60006020820190506138746000830184613850565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b60006138b060068361338c565b91506138bb8261387a565b602082019050919050565b600060208201905081810360008301526138df816138a3565b9050919050565b6000815190506138f5816134a9565b92915050565b6000602082840312156139115761391061343c565b5b600061391f848285016138e6565b91505092915050565b7f4f6e6c792041646d696e2063616e20736574204d61726b6574696e6700000000600082015250565b600061395e601c8361338c565b915061396982613928565b602082019050919050565b6000602082019050818103600083015261398d81613951565b9050919050565b7f4f6e6c792041646d696e2063616e2073657420666565206578656d7074000000600082015250565b60006139ca601d8361338c565b91506139d582613994565b602082019050919050565b600060208201905081810360008301526139f9816139bd565b9050919050565b7f4f6e6c7941646d696e2063616e20736574206665657300000000000000000000600082015250565b6000613a3660168361338c565b9150613a4182613a00565b602082019050919050565b60006020820190508181036000830152613a6581613a29565b9050919050565b7f4665652063616e27742065786365656420313625000000000000000000000000600082015250565b6000613aa260148361338c565b9150613aad82613a6c565b602082019050919050565b60006020820190508181036000830152613ad181613a95565b9050919050565b7f4f6e6c792041646d696e2063616e206d616e75616c2073656e64000000000000600082015250565b6000613b0e601a8361338c565b9150613b1982613ad8565b602082019050919050565b60006020820190508181036000830152613b3d81613b01565b9050919050565b7f4f6e6c792041646d696e2063616e207365742074726561737572790000000000600082015250565b6000613b7a601b8361338c565b9150613b8582613b44565b602082019050919050565b60006020820190508181036000830152613ba981613b6d565b9050919050565b6000613bbb82613757565b9050919050565b613bcb81613bb0565b82525050565b6000602082019050613be66000830184613bc2565b92915050565b7f4f6e6c792041646d696e2063616e20736574206469766964656e64206578656d60008201527f7074000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c4860228361338c565b9150613c5382613bec565b604082019050919050565b60006020820190508181036000830152613c7781613c3b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613cb88261349f565b9150613cc38361349f565b925082821015613cd657613cd5613c7e565b5b828203905092915050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b6000613d1760188361338c565b9150613d2282613ce1565b602082019050919050565b60006020820190508181036000830152613d4681613d0a565b9050919050565b7f4e69636520747279000000000000000000000000000000000000000000000000600082015250565b6000613d8360088361338c565b9150613d8e82613d4d565b602082019050919050565b60006020820190508181036000830152613db281613d76565b9050919050565b7f546f6f206d756368207369720000000000000000000000000000000000000000600082015250565b6000613def600c8361338c565b9150613dfa82613db9565b602082019050919050565b60006020820190508181036000830152613e1e81613de2565b9050919050565b6000613e308261349f565b9150613e3b8361349f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613e7057613e6f613c7e565b5b828201905092915050565b6000604082019050613e906000830185613701565b613e9d6020830184613578565b9392505050565b6000819050919050565b6000613ec9613ec4613ebf84613ea4565b61372b565b61349f565b9050919050565b613ed981613eae565b82525050565b6000604082019050613ef46000830185613701565b613f016020830184613ed0565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f9b81613461565b82525050565b6000613fad8383613f92565b60208301905092915050565b6000602082019050919050565b6000613fd182613f66565b613fdb8185613f71565b9350613fe683613f82565b8060005b83811015614017578151613ffe8882613fa1565b975061400983613fb9565b925050600181019050613fea565b5085935050505092915050565b600060a0820190506140396000830188613578565b6140466020830187613ed0565b81810360408301526140588186613fc6565b90506140676060830185613701565b6140746080830184613578565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006140b4601b8361338c565b91506140bf8261407e565b602082019050919050565b600060208201905081810360008301526140e3816140a7565b9050919050565b60006140f58261349f565b91506141008361349f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561413957614138613c7e565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061417e8261349f565b91506141898361349f565b92508261419957614198614144565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061420060218361338c565b915061420b826141a4565b604082019050919050565b6000602082019050818103600083015261422f816141f3565b905091905056fea26469706673582212200956a3b68f7cd29d7afaaa8a58ec5593f937e82c96e39ed94fdb4e7fbc6399c964736f6c634300080a003360806040526ec097ce7bc90715b34b9f1000000000600a553480156200002457600080fd5b50604051620019e4380380620019e483398181016040528101906200004a91906200017e565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050620001c5565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001468262000119565b9050919050565b620001588162000139565b81146200016457600080fd5b50565b60008151905062000178816200014d565b92915050565b6000806040838503121562000198576200019762000114565b5b6000620001a88582860162000167565b9250506020620001bb8582860162000167565b9150509250929050565b61180f80620001d56000396000f3fe6080604052600436106100e85760003560e01c8063b2bdfa7b1161008a578063e2d2e21911610059578063e2d2e219146102d7578063e319a3d914610302578063ecd0c0c31461032d578063f0f4426014610358576100e8565b8063b2bdfa7b14610238578063ce7c2ac214610263578063d0e30db0146102a2578063d54ad2a1146102ac576100e8565b80633a98ef39116100c65780633a98ef39146101685780635cc33f74146101935780638ecc37fb146101d0578063997664d71461020d576100e8565b80631014edf5146100ed57806314b6ca961461011657806315f7e05e1461013f575b600080fd5b3480156100f957600080fd5b50610114600480360381019061010f91906112ab565b610381565b005b34801561012257600080fd5b5061013d600480360381019061013891906112eb565b61043b565b005b34801561014b57600080fd5b506101666004803603810190610161919061132b565b6106fa565b005b34801561017457600080fd5b5061017d61075e565b60405161018a9190611367565b60405180910390f35b34801561019f57600080fd5b506101ba60048036038101906101b5919061132b565b610764565b6040516101c79190611367565b60405180910390f35b3480156101dc57600080fd5b506101f760048036038101906101f2919061132b565b610834565b6040516102049190611367565b60405180910390f35b34801561021957600080fd5b5061022261094e565b60405161022f9190611367565b60405180910390f35b34801561024457600080fd5b5061024d610954565b60405161025a9190611391565b60405180910390f35b34801561026f57600080fd5b5061028a6004803603810190610285919061132b565b61097a565b604051610299939291906113ac565b60405180910390f35b6102aa6109a4565b005b3480156102b857600080fd5b506102c1610a0a565b6040516102ce9190611367565b60405180910390f35b3480156102e357600080fd5b506102ec610a10565b6040516102f99190611367565b60405180910390f35b34801561030e57600080fd5b50610317610a16565b6040516103249190611391565b60405180910390f35b34801561033957600080fd5b50610342610a3c565b60405161034f9190611391565b60405180910390f35b34801561036457600080fd5b5061037f600480360381019061037a919061132b565b610a60565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103db57600080fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc60008511610408578261040a565b845b9081150290604051600060405180830381858888f19350505050158015610435573d6000803e3d6000fd5b50505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461049357600080fd5b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411156104e8576104e782610afc565b5b60008111801561053a57506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b1561054d5761054882610cf6565b6105af565b60008114801561059f57506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b156105ae576105ad82610da5565b5b5b6106188161060a600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600654610fac90919063ffffffff16565b610ff690919063ffffffff16565b60068190555080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506106b0600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611054565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461075257600080fd5b61075b81610afc565b50565b60065481565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154116107ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e190611440565b60405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156108895760009050610949565b60006108d6600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611054565b90506000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154905080821161093157600092505050610949565b6109448183610fac90919063ffffffff16565b925050505b919050565b60075481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915090508060000154908060010154908060020154905083565b60003490506109be81600754610ff690919063ffffffff16565b600781905550610a016109f06006546109e284600a5461108690919063ffffffff16565b61110190919063ffffffff16565b600954610ff690919063ffffffff16565b60098190555050565b60085481565b60095481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ab857600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415610b4c57610cf3565b6000610b5782610834565b90506000811115610cf157610b7781600854610ff690919063ffffffff16565b600881905550610bd281600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154610ff690919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550610c63600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611054565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610cef573d6000803e3d6000fd5b505b505b50565b600380549050600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506003819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60036001600380549050610db9919061148f565b81548110610dca57610dc96114c3565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166003600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481548110610e4857610e476114c3565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546004600060036001600380549050610ee8919061148f565b81548110610ef957610ef86114c3565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506003805480610f7457610f736114f2565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b6000610fee83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061114b565b905092915050565b60008082846110059190611521565b90508381101561104a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611041906115c3565b60405180910390fd5b8091505092915050565b600061107f600a546110716009548561108690919063ffffffff16565b61110190919063ffffffff16565b9050919050565b60008083141561109957600090506110fb565b600082846110a791906115e3565b90508284826110b6919061166c565b146110f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ed9061170f565b60405180910390fd5b809150505b92915050565b600061114383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506111af565b905092915050565b6000838311158290611193576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118a91906117b7565b60405180910390fd5b50600083856111a2919061148f565b9050809150509392505050565b600080831182906111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ed91906117b7565b60405180910390fd5b5060008385611205919061166c565b9050809150509392505050565b600080fd5b6000819050919050565b61122a81611217565b811461123557600080fd5b50565b60008135905061124781611221565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006112788261124d565b9050919050565b6112888161126d565b811461129357600080fd5b50565b6000813590506112a58161127f565b92915050565b600080604083850312156112c2576112c1611212565b5b60006112d085828601611238565b92505060206112e185828601611296565b9150509250929050565b6000806040838503121561130257611301611212565b5b600061131085828601611296565b925050602061132185828601611238565b9150509250929050565b60006020828403121561134157611340611212565b5b600061134f84828501611296565b91505092915050565b61136181611217565b82525050565b600060208201905061137c6000830184611358565b92915050565b61138b8161126d565b82525050565b60006020820190506113a66000830184611382565b92915050565b60006060820190506113c16000830186611358565b6113ce6020830185611358565b6113db6040830184611358565b949350505050565b600082825260208201905092915050565b7f596f75277265206e6f7420612054455354207368617265686f6c646572210000600082015250565b600061142a601e836113e3565b9150611435826113f4565b602082019050919050565b600060208201905081810360008301526114598161141d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061149a82611217565b91506114a583611217565b9250828210156114b8576114b7611460565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600061152c82611217565b915061153783611217565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561156c5761156b611460565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006115ad601b836113e3565b91506115b882611577565b602082019050919050565b600060208201905081810360008301526115dc816115a0565b9050919050565b60006115ee82611217565b91506115f983611217565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561163257611631611460565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061167782611217565b915061168283611217565b9250826116925761169161163d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006116f96021836113e3565b91506117048261169d565b604082019050919050565b60006020820190508181036000830152611728816116ec565b9050919050565b600081519050919050565b60005b8381101561175857808201518184015260208101905061173d565b83811115611767576000848401525b50505050565b6000601f19601f8301169050919050565b60006117898261172f565b61179381856113e3565b93506117a381856020860161173a565b6117ac8161176d565b840191505092915050565b600060208201905081810360008301526117d1818461177e565b90509291505056fea26469706673582212202b8fe0a694161c78fcf7f168f9e61aeb5333fb7aad79c7629093d66a2faf7fb864736f6c634300080a0033000000000000000000000000a2d5626a3d91a3da7ee5915cdb6a69b6956a2d83

Deployed Bytecode

0x60806040526004361061023f5760003560e01c8063736a83a11161012e578063c3c8cd80116100ab578063f2fde38b1161006f578063f2fde38b14610882578063f4293890146108ab578063f53bc835146108c2578063f708a64f146108eb578063f887ea401461091457610246565b8063c3c8cd80146107d7578063c9567bf9146107ee578063dd62ed3e14610805578063f0f4426014610842578063f0fc6bca1461086b57610246565b806395d89b41116100f257806395d89b41146106ee578063a8aa1b3114610719578063a9059cbb14610744578063bf56b37114610781578063bfe10928146107ac57610246565b8063736a83a1146105f357806375f0a8741461061e578063876193d414610649578063893d20e8146106865780638ecc37fb146106b157610246565b8063416501c8116101bc578063658d4b7f11610180578063658d4b7f1461052257806367ee5f091461054b57806369fe0e2d1461057657806370a082311461059f578063715018a6146105dc57610246565b8063416501c814610417578063571ac8b0146104545780635cc33f74146104915780635d098b38146104ce57806361d027b3146104f757610246565b80632b112e49116102035780632b112e49146103445780632f54bf6e1461036f578063313ce567146103ac578063342aa8b5146103d75780633e07ce5b1461040057610246565b806306fdde031461024b578063095ea7b31461027657806315f7e05e146102b357806318160ddd146102dc57806323b872dd1461030757610246565b3661024657005b600080fd5b34801561025757600080fd5b5061026061093f565b60405161026d919061341a565b60405180910390f35b34801561028257600080fd5b5061029d600480360381019061029891906134d5565b61097c565b6040516102aa9190613530565b60405180910390f35b3480156102bf57600080fd5b506102da60048036038101906102d5919061354b565b610a6e565b005b3480156102e857600080fd5b506102f1610b46565b6040516102fe9190613587565b60405180910390f35b34801561031357600080fd5b5061032e600480360381019061032991906135a2565b610b50565b60405161033b9190613530565b60405180910390f35b34801561035057600080fd5b50610359610d50565b6040516103669190613587565b60405180910390f35b34801561037b57600080fd5b506103966004803603810190610391919061354b565b610dd2565b6040516103a39190613530565b60405180910390f35b3480156103b857600080fd5b506103c1610e2b565b6040516103ce9190613611565b60405180910390f35b3480156103e357600080fd5b506103fe60048036038101906103f99190613658565b610e34565b005b34801561040c57600080fd5b50610415610ee1565b005b34801561042357600080fd5b5061043e6004803603810190610439919061354b565b610f46565b60405161044b9190613530565b60405180910390f35b34801561046057600080fd5b5061047b6004803603810190610476919061354b565b610fe4565b6040516104889190613530565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b3919061354b565b611017565b6040516104c59190613587565b60405180910390f35b3480156104da57600080fd5b506104f560048036038101906104f0919061354b565b6110bc565b005b34801561050357600080fd5b5061050c611190565b60405161051991906136b9565b60405180910390f35b34801561052e57600080fd5b5061054960048036038101906105449190613658565b6111b6565b005b34801561055757600080fd5b506105606112a1565b60405161056d9190613587565b60405180910390f35b34801561058257600080fd5b5061059d600480360381019061059891906136d4565b611339565b005b3480156105ab57600080fd5b506105c660048036038101906105c1919061354b565b611417565b6040516105d39190613587565b60405180910390f35b3480156105e857600080fd5b506105f1611460565b005b3480156105ff57600080fd5b50610608611523565b6040516106159190613587565b60405180910390f35b34801561062a57600080fd5b506106336115bb565b60405161064091906136b9565b60405180910390f35b34801561065557600080fd5b50610670600480360381019061066b91906136d4565b6115e1565b60405161067d9190613530565b60405180910390f35b34801561069257600080fd5b5061069b611685565b6040516106a89190613710565b60405180910390f35b3480156106bd57600080fd5b506106d860048036038101906106d3919061354b565b6116ae565b6040516106e59190613587565b60405180910390f35b3480156106fa57600080fd5b50610703611753565b604051610710919061341a565b60405180910390f35b34801561072557600080fd5b5061072e611790565b60405161073b9190613710565b60405180910390f35b34801561075057600080fd5b5061076b600480360381019061076691906134d5565b6117b6565b6040516107789190613530565b60405180910390f35b34801561078d57600080fd5b506107966117cb565b6040516107a39190613587565b60405180910390f35b3480156107b857600080fd5b506107c16117d1565b6040516107ce919061378a565b60405180910390f35b3480156107e357600080fd5b506107ec6117f7565b005b3480156107fa57600080fd5b50610803611891565b005b34801561081157600080fd5b5061082c600480360381019061082791906137a5565b6118fd565b6040516108399190613587565b60405180910390f35b34801561084e57600080fd5b506108696004803603810190610864919061354b565b611984565b005b34801561087757600080fd5b50610880611ae5565b005b34801561088e57600080fd5b506108a960048036038101906108a49190613811565b611b74565b005b3480156108b757600080fd5b506108c0611c36565b005b3480156108ce57600080fd5b506108e960048036038101906108e491906136d4565b611d37565b005b3480156108f757600080fd5b50610912600480360381019061090d9190613658565b611d89565b005b34801561092057600080fd5b50610929611e27565b604051610936919061385f565b60405180910390f35b60606040518060400160405280600a81526020017f436173696e7520496e7500000000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a5c9190613587565b60405180910390a36001905092915050565b610a7733610dd2565b610ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aad906138c6565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e826040518263ffffffff1660e01b8152600401610b119190613710565b600060405180830381600087803b158015610b2b57600080fd5b505af1158015610b3f573d6000803e3d6000fd5b5050505050565b6000600454905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d3c57610cbb826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e4d9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610d47848484611eb1565b90509392505050565b6000610dcd610d80600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611417565b610dbf610dae600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611417565b6004546127f790919063ffffffff16565b6127f790919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b610e3d33610dd2565b610e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e73906138c6565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610edd8282612841565b5050565b610eea33610dd2565b610f29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f20906138c6565b60405180910390fd5b6000601360016101000a81548160ff021916908315150217905550565b6000610f5133610dd2565b610f90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f87906138c6565b60405180910390fd5b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000611010827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61097c565b9050919050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635cc33f74836040518263ffffffff1660e01b81526004016110749190613710565b602060405180830381865afa158015611091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b591906138fb565b9050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461114c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114390613974565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123d906139e0565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663997664d76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611310573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133491906138fb565b905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c090613a4c565b60405180910390fd5b601081111561140d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140490613ab8565b60405180910390fd5b80600b8190555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61146933610dd2565b6114a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149f906138c6565b60405180910390fd5b7f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616360006040516114d89190613710565b60405180910390a160008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d54ad2a16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611592573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b691906138fb565b905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611673576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166a90613b24565b60405180910390fd5b61167e303384612a99565b9050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638ecc37fb836040518263ffffffff1660e01b815260040161170b9190613710565b602060405180830381865afa158015611728573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174c91906138fb565b9050919050565b60606040518060400160405280600681526020017f434153494e550000000000000000000000000000000000000000000000000000815250905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006117c3338484611eb1565b905092915050565b60125481565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187e90613b24565b60405180910390fd5b61188f612c6c565b565b61189a33610dd2565b6118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d0906138c6565b60405180910390fd5b436012819055506001601360006101000a81548160ff021916908315150217905550565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0b90613b90565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0f44260826040518263ffffffff1660e01b8152600401611ab09190613710565b600060405180830381600087803b158015611aca57600080fd5b505af1158015611ade573d6000803e3d6000fd5b5050505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b8152600401611b409190613710565b600060405180830381600087803b158015611b5a57600080fd5b505af1158015611b6e573d6000803e3d6000fd5b50505050565b611b7d33610dd2565b611bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb3906138c6565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611c2b9190613bd1565b60405180910390a150565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbd90613b24565b60405180910390fd5b6000479050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d33573d6000803e3d6000fd5b5050565b611d4033610dd2565b611d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d76906138c6565b60405180910390fd5b8060148190555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1090613c5e565b60405180910390fd5b611e238282612841565b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611e95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8c919061341a565b60405180910390fd5b5060008385611ea49190613cad565b9050809150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f5c575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fb157601360009054906101000a900460ff16611fb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa790613d2d565b60405180910390fd5b5b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120555750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208b90613d99565b60405180910390fd5b601360019054906101000a900460ff161561219d5760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612151575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561219c5760145482111561219b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219290613e05565b60405180910390fd5b5b5b60016012546121ac9190613e25565b4311612263576001600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b601560149054906101000a900460ff161561228a57612283848484612a99565b90506127f0565b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122f1575060006122ef30611417565b115b9050801561230257612301612c6c565b5b61238b836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e4d9092919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006123da8686612f5a565b6123e457836123ef565b6123ee86856130b7565b5b905061244381600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131fb90919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561252e5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561260557601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9687600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016125cf929190613e7b565b600060405180830381600087803b1580156125e957600080fd5b505af19250505080156125fa575060015b61260357612604565b5b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156126ad5750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561278457601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b815260040161274e929190613e7b565b600060405180830381600087803b15801561276857600080fd5b505af1925050508015612779575060015b61278257612783565b5b5b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127e19190613587565b60405180910390a36001925050505b9392505050565b600061283983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e4d565b905092915050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156128cb5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6128d457600080fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156129c657601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b815260040161298f929190613edf565b600060405180830381600087803b1580156129a957600080fd5b505af11580156129bd573d6000803e3d6000fd5b50505050612a95565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612a62929190613e7b565b600060405180830381600087803b158015612a7c57600080fd5b505af1158015612a90573d6000803e3d6000fd5b505050505b5050565b6000612b24826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e4d9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bb982600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131fb90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c599190613587565b60405180910390a3600190509392505050565b6001601560146101000a81548160ff0219169083151502179055506000612c9230611417565b90506000600267ffffffffffffffff811115612cb157612cb0613f08565b5b604051908082528060200260200182016040528015612cdf5781602001602082028036833780820191505090505b5090503081600081518110612cf757612cf6613f37565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612d6857612d67613f37565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e06959493929190614024565b600060405180830381600087803b158015612e2057600080fd5b505af1158015612e34573d6000803e3d6000fd5b505050506000612e4e60044761325990919063ffffffff16565b90506000612e6582476127f790919063ffffffff16565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612ecf573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612f38573d6000803e3d6000fd5b50505050506000601560146101000a81548160ff021916908315150217905550565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ffd5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1580156130af5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806130ae5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b905092915050565b6000806130e3600c546130d5600b54866132a390919063ffffffff16565b61325990919063ffffffff16565b905061313781600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131fb90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131d79190613587565b60405180910390a36131f281846127f790919063ffffffff16565b91505092915050565b600080828461320a9190613e25565b90508381101561324f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613246906140ca565b60405180910390fd5b8091505092915050565b600061329b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061331e565b905092915050565b6000808314156132b65760009050613318565b600082846132c491906140ea565b90508284826132d39190614173565b14613313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161330a90614216565b60405180910390fd5b809150505b92915050565b60008083118290613365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161335c919061341a565b60405180910390fd5b50600083856133749190614173565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133bb5780820151818401526020810190506133a0565b838111156133ca576000848401525b50505050565b6000601f19601f8301169050919050565b60006133ec82613381565b6133f6818561338c565b935061340681856020860161339d565b61340f816133d0565b840191505092915050565b6000602082019050818103600083015261343481846133e1565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061346c82613441565b9050919050565b61347c81613461565b811461348757600080fd5b50565b60008135905061349981613473565b92915050565b6000819050919050565b6134b28161349f565b81146134bd57600080fd5b50565b6000813590506134cf816134a9565b92915050565b600080604083850312156134ec576134eb61343c565b5b60006134fa8582860161348a565b925050602061350b858286016134c0565b9150509250929050565b60008115159050919050565b61352a81613515565b82525050565b60006020820190506135456000830184613521565b92915050565b6000602082840312156135615761356061343c565b5b600061356f8482850161348a565b91505092915050565b6135818161349f565b82525050565b600060208201905061359c6000830184613578565b92915050565b6000806000606084860312156135bb576135ba61343c565b5b60006135c98682870161348a565b93505060206135da8682870161348a565b92505060406135eb868287016134c0565b9150509250925092565b600060ff82169050919050565b61360b816135f5565b82525050565b60006020820190506136266000830184613602565b92915050565b61363581613515565b811461364057600080fd5b50565b6000813590506136528161362c565b92915050565b6000806040838503121561366f5761366e61343c565b5b600061367d8582860161348a565b925050602061368e85828601613643565b9150509250929050565b60006136a382613441565b9050919050565b6136b381613698565b82525050565b60006020820190506136ce60008301846136aa565b92915050565b6000602082840312156136ea576136e961343c565b5b60006136f8848285016134c0565b91505092915050565b61370a81613461565b82525050565b60006020820190506137256000830184613701565b92915050565b6000819050919050565b600061375061374b61374684613441565b61372b565b613441565b9050919050565b600061376282613735565b9050919050565b600061377482613757565b9050919050565b61378481613769565b82525050565b600060208201905061379f600083018461377b565b92915050565b600080604083850312156137bc576137bb61343c565b5b60006137ca8582860161348a565b92505060206137db8582860161348a565b9150509250929050565b6137ee81613698565b81146137f957600080fd5b50565b60008135905061380b816137e5565b92915050565b6000602082840312156138275761382661343c565b5b6000613835848285016137fc565b91505092915050565b600061384982613757565b9050919050565b6138598161383e565b82525050565b60006020820190506138746000830184613850565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b60006138b060068361338c565b91506138bb8261387a565b602082019050919050565b600060208201905081810360008301526138df816138a3565b9050919050565b6000815190506138f5816134a9565b92915050565b6000602082840312156139115761391061343c565b5b600061391f848285016138e6565b91505092915050565b7f4f6e6c792041646d696e2063616e20736574204d61726b6574696e6700000000600082015250565b600061395e601c8361338c565b915061396982613928565b602082019050919050565b6000602082019050818103600083015261398d81613951565b9050919050565b7f4f6e6c792041646d696e2063616e2073657420666565206578656d7074000000600082015250565b60006139ca601d8361338c565b91506139d582613994565b602082019050919050565b600060208201905081810360008301526139f9816139bd565b9050919050565b7f4f6e6c7941646d696e2063616e20736574206665657300000000000000000000600082015250565b6000613a3660168361338c565b9150613a4182613a00565b602082019050919050565b60006020820190508181036000830152613a6581613a29565b9050919050565b7f4665652063616e27742065786365656420313625000000000000000000000000600082015250565b6000613aa260148361338c565b9150613aad82613a6c565b602082019050919050565b60006020820190508181036000830152613ad181613a95565b9050919050565b7f4f6e6c792041646d696e2063616e206d616e75616c2073656e64000000000000600082015250565b6000613b0e601a8361338c565b9150613b1982613ad8565b602082019050919050565b60006020820190508181036000830152613b3d81613b01565b9050919050565b7f4f6e6c792041646d696e2063616e207365742074726561737572790000000000600082015250565b6000613b7a601b8361338c565b9150613b8582613b44565b602082019050919050565b60006020820190508181036000830152613ba981613b6d565b9050919050565b6000613bbb82613757565b9050919050565b613bcb81613bb0565b82525050565b6000602082019050613be66000830184613bc2565b92915050565b7f4f6e6c792041646d696e2063616e20736574206469766964656e64206578656d60008201527f7074000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c4860228361338c565b9150613c5382613bec565b604082019050919050565b60006020820190508181036000830152613c7781613c3b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613cb88261349f565b9150613cc38361349f565b925082821015613cd657613cd5613c7e565b5b828203905092915050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b6000613d1760188361338c565b9150613d2282613ce1565b602082019050919050565b60006020820190508181036000830152613d4681613d0a565b9050919050565b7f4e69636520747279000000000000000000000000000000000000000000000000600082015250565b6000613d8360088361338c565b9150613d8e82613d4d565b602082019050919050565b60006020820190508181036000830152613db281613d76565b9050919050565b7f546f6f206d756368207369720000000000000000000000000000000000000000600082015250565b6000613def600c8361338c565b9150613dfa82613db9565b602082019050919050565b60006020820190508181036000830152613e1e81613de2565b9050919050565b6000613e308261349f565b9150613e3b8361349f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613e7057613e6f613c7e565b5b828201905092915050565b6000604082019050613e906000830185613701565b613e9d6020830184613578565b9392505050565b6000819050919050565b6000613ec9613ec4613ebf84613ea4565b61372b565b61349f565b9050919050565b613ed981613eae565b82525050565b6000604082019050613ef46000830185613701565b613f016020830184613ed0565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f9b81613461565b82525050565b6000613fad8383613f92565b60208301905092915050565b6000602082019050919050565b6000613fd182613f66565b613fdb8185613f71565b9350613fe683613f82565b8060005b83811015614017578151613ffe8882613fa1565b975061400983613fb9565b925050600181019050613fea565b5085935050505092915050565b600060a0820190506140396000830188613578565b6140466020830187613ed0565b81810360408301526140588186613fc6565b90506140676060830185613701565b6140746080830184613578565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006140b4601b8361338c565b91506140bf8261407e565b602082019050919050565b600060208201905081810360008301526140e3816140a7565b9050919050565b60006140f58261349f565b91506141008361349f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561413957614138613c7e565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061417e8261349f565b91506141898361349f565b92508261419957614198614144565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061420060218361338c565b915061420b826141a4565b604082019050919050565b6000602082019050818103600083015261422f816141f3565b905091905056fea26469706673582212200956a3b68f7cd29d7afaaa8a58ec5593f937e82c96e39ed94fdb4e7fbc6399c964736f6c634300080a0033

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

000000000000000000000000a2d5626a3d91a3da7ee5915cdb6a69b6956a2d83

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000a2d5626a3d91a3da7ee5915cdb6a69b6956a2d83


Deployed Bytecode Sourcemap

9965:10642:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12625:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13047:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19148:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12355:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13565:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19438:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2924:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12449:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17209:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20426:80;;;;;;;;;;;;;:::i;:::-;;17379:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13271:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20261:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19588:197;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10964:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18059:178;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20014:115;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18245:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12795:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3608:139;;;;;;;;;;;;;:::i;:::-;;20141:111;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10865:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18691:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12711:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19270:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12535:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11089:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13401:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11146:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11315:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18910:130;;;;;;;;;;;;;:::i;:::-;;17074:115;;;;;;;;;;;;;:::i;:::-;;12906:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19793:213;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19046:90;;;;;;;;;;;;;:::i;:::-;;3121:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18448:235;;;;;;;;;;;;;:::i;:::-;;20514:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17851:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11058:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12625:80;12673:13;12697:5;;;;;;;;;;;;;;;;;12690:12;;12625:80;:::o;13047:216::-;13122:4;13174:6;13139:11;:23;13151:10;13139:23;;;;;;;;;;;;;;;:32;13163:7;13139:32;;;;;;;;;;;;;;;:41;;;;13217:7;13196:37;;13205:10;13196:37;;;13226:6;13196:37;;;;;;:::i;:::-;;;;;;;;13251:4;13244:11;;13047:216;;;;:::o;19148:110::-;2823:19;2831:10;2823:7;:19::i;:::-;2815:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19217:11:::1;;;;;;;;;;;:25;;;19243:6;19217:33;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19148:110:::0;:::o;12355:88::-;12410:7;12428:12;;12421:19;;12355:88;:::o;13565:370::-;13665:4;13720:17;13685:11;:19;13697:6;13685:19;;;;;;;;;;;;;;;:31;13705:10;13685:31;;;;;;;;;;;;;;;;:52;13682:186;;13787:69;13823:6;13787:69;;;;;;;;;;;;;;;;;:11;:19;13799:6;13787:19;;;;;;;;;;;;;;;:31;13807:10;13787:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;13753:11;:19;13765:6;13753:19;;;;;;;;;;;;;;;:31;13773:10;13753:31;;;;;;;;;;;;;;;:103;;;;13682:186;13887:40;13901:6;13909:9;13920:6;13887:13;:40::i;:::-;13880:47;;13565:370;;;;;:::o;19438:142::-;19491:7;19518:54;19556:15;19566:4;;;;;;;;;;;19556:9;:15::i;:::-;19518:33;19535:15;19545:4;;;;;;;;;;;19535:9;:15::i;:::-;19518:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;19511:61;;19438:142;:::o;2924:103::-;2979:4;3014:5;;;;;;;;;;;3003:16;;:7;:16;;;2996:23;;2924:103;;;:::o;12449:80::-;12501:5;10348:1;12510:16;;12449:80;:::o;17209:158::-;2823:19;2831:10;2823:7;:19::i;:::-;2815:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;17304:6:::1;17286:5;:15;17292:8;17286:15;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;17321:38;17342:8;17352:6;17321:20;:38::i;:::-;17209:158:::0;;:::o;20426:80::-;2823:19;2831:10;2823:7;:19::i;:::-;2815:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;20493:5:::1;20482:8;;:16;;;;;;;;;;;;;;;;;;20426:80::o:0;17379:115::-;17447:4;2823:19;2831:10;2823:7;:19::i;:::-;2815:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;17471:5:::1;:15;17477:8;17471:15;;;;;;;;;;;;;;;;;;;;;;;;;17464:22;;17379:115:::0;;;:::o;13271:122::-;13326:4;13350:35;13358:7;13367:17;13350:7;:35::i;:::-;13343:42;;13271:122;;;:::o;20261:157::-;20337:7;20364:11;;;;;;;;;;;:33;;;20398:11;20364:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20357:53;;20261:157;;;:::o;19588:197::-;19684:6;;;;;;;;;;;19670:20;;:10;:20;;;19662:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;19760:16;19734:15;;:43;;;;;;;;;;;;;;;;;;19588:197;:::o;10964:85::-;;;;;;;;;;;;;:::o;18059:178::-;18150:6;;;;;;;;;;;18136:20;;:10;:20;;;18128:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;18223:6;18201:11;:19;18213:6;18201:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;18059:178;;:::o;20014:115::-;20066:7;20093:11;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20086:35;;20014:115;:::o;18245:195::-;18318:6;;;;;;;;;;;18304:20;;:10;:20;;;18296:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;18379:2;18371:4;:10;;18362:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;18428:4;18417:8;:15;;;;18245:195;:::o;12795:105::-;12861:7;12879:9;:18;12889:7;12879:18;;;;;;;;;;;;;;;;12872:25;;12795:105;;;:::o;3608:139::-;2823:19;2831:10;2823:7;:19::i;:::-;2815:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3678:32:::1;3707:1;3678:32;;;;;;:::i;:::-;;;;;;;;3737:1;3721:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;3608:139::o:0;20141:111::-;20191:7;20218:11;;;;;;;;;;;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20211:33;;20141:111;:::o;10865:92::-;;;;;;;;;;;;;:::o;18691:211::-;18751:4;18790:6;;;;;;;;;;;18776:20;;:10;:20;;;18768:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;18845:49;18868:4;18875:10;18887:6;18845:14;:49::i;:::-;18838:56;;18691:211;;;:::o;12711:78::-;12763:7;12781:5;;;;;;;;;;;12774:12;;12711:78;:::o;19270:156::-;19344:7;19371:11;;;;;;;;;;;:34;;;19406:11;19371:47;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19364:54;;19270:156;;;:::o;12535:84::-;12585:13;12609:7;;;;;;;;;;;;;;;;;12602:14;;12535:84;:::o;11089:19::-;;;;;;;;;;;;;:::o;13401:156::-;13481:4;13505:44;13519:10;13531:9;13542:6;13505:13;:44::i;:::-;13498:51;;13401:156;;;;:::o;11146:25::-;;;;:::o;11315:38::-;;;;;;;;;;;;;:::o;18910:130::-;18974:6;;;;;;;;;;;18960:20;;:10;:20;;;18952:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;19022:10;:8;:10::i;:::-;18910:130::o;17074:115::-;2823:19;2831:10;2823:7;:19::i;:::-;2815:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;17140:12:::1;17127:10;:25;;;;17177:4;17163:11;;:18;;;;;;;;;;;;;;;;;;17074:115::o:0;12906:133::-;12990:7;13008:11;:19;13020:6;13008:19;;;;;;;;;;;;;;;:28;13028:7;13008:28;;;;;;;;;;;;;;;;13001:35;;12906:133;;;;:::o;19793:213::-;19875:6;;;;;;;;;;;19861:20;;:10;:20;;;19853:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;19943:9;19924:8;;:29;;;;;;;;;;;;;;;;;;19964:11;;;;;;;;;;;:23;;;19988:9;19964:34;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19793:213;:::o;19046:90::-;19091:11;;;;;;;;;;;:25;;;19117:10;19091:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19046:90::o;3121:136::-;2823:19;2831:10;2823:7;:19::i;:::-;2815:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3205:3:::1;3197:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3224:25;3245:3;3224:25;;;;;;:::i;:::-;;;;;;;;3121:136:::0;:::o;18448:235::-;18513:6;;;;;;;;;;;18499:20;;:10;:20;;;18491:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;18561:26;18590:21;18561:50;;18630:15;;;;;;;;;;;18622:33;;:53;18656:18;18622:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18480:203;18448:235::o;20514:90::-;2823:19;2831:10;2823:7;:19::i;:::-;2815:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;20589:7:::1;20580:6;:16;;;;20514:90:::0;:::o;17851:200::-;17951:6;;;;;;;;;;;17937:20;;:10;:20;;;17929:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18007:36;18028:6;18036;18007:20;:36::i;:::-;17851:200;;:::o;11058:24::-;;;;;;;;;;;;;:::o;586:192::-;672:7;705:1;700;:6;;708:12;692:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;732:9;748:1;744;:5;;;;:::i;:::-;732:17;;769:1;762:8;;;586:192;;;;;:::o;13943:1457::-;14035:4;14065:5;;;;;;;;;;;14056:14;;:6;:14;;;;:35;;;;;14086:5;;;;;;;;;;14074:17;;:9;:17;;;;14056:35;14052:89;;;14101:11;;;;;;;;;;;14093:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;14052:89;14202:5;:13;14208:6;14202:13;;;;;;;;;;;;;;;;;;;;;;;;;14201:14;:35;;;;;14220:5;:16;14226:9;14220:16;;;;;;;;;;;;;;;;;;;;;;;;;14219:17;14201:35;14192:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;14264:8;;;;;;;;;;;14260:130;;;14302:5;;;;;;;;;;14294:13;;:6;:13;;;;:34;;;;;14323:5;;;;;;;;;;14311:17;;:9;:17;;;;14294:34;14290:80;;;14347:6;;14339;:14;;14330:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;14290:80;14260:130;14434:1;14421:10;;:14;;;;:::i;:::-;14404:12;:32;14400:139;;14473:4;14454:5;:16;14460:9;14454:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;14522:4;14492:16;:27;14509:9;14492:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;14400:139;14561:6;;;;;;;;;;;14558:63;;;14577:41;14592:6;14600:9;14611:6;14577:14;:41::i;:::-;14570:48;;;;14558:63;14643:19;14692:4;;;;;;;;;;;14681:15;;:9;:15;;;:47;;;;;14727:1;14700:24;14718:4;14700:9;:24::i;:::-;:28;14681:47;14643:86;;14743:14;14740:33;;;14760:10;:8;:10::i;:::-;14740:33;14805:53;14827:6;14805:53;;;;;;;;;;;;;;;;;:9;:17;14815:6;14805:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14785:9;:17;14795:6;14785:17;;;;;;;;;;;;;;;:73;;;;14871:22;14896:32;14910:6;14918:9;14896:13;:32::i;:::-;:67;;14957:6;14896:67;;;14931:23;14939:6;14947;14931:7;:23::i;:::-;14896:67;14871:92;;15007:40;15032:14;15007:9;:20;15017:9;15007:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;14984:9;:20;14994:9;14984:20;;;;;;;;;;;;;;;:63;;;;15073:4;;;;;;;;;;;15063:14;;:6;:14;;;;:43;;;;;15082:16;:24;15099:6;15082:24;;;;;;;;;;;;;;;;;;;;;;;;;15081:25;15063:43;15060:114;;;15113:11;;;;;;;;;;;:20;;;15134:6;15142:9;:17;15152:6;15142:17;;;;;;;;;;;;;;;;15113:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15109:63;;;;;;15060:114;15200:4;;;;;;;;;;;15187:17;;:9;:17;;;;:49;;;;;15209:16;:27;15226:9;15209:27;;;;;;;;;;;;;;;;;;;;;;;;;15208:28;15187:49;15184:126;;;15243:11;;;;;;;;;;;:20;;;15264:9;15275;:20;15285:9;15275:20;;;;;;;;;;;;;;;;15243:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15239:69;;;;;;15184:126;15344:9;15327:43;;15336:6;15327:43;;;15355:14;15327:43;;;;;;:::i;:::-;;;;;;;;15388:4;15381:11;;;;13943:1457;;;;;;:::o;444:136::-;502:7;529:43;533:1;536;529:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;522:50;;444:136;;;;:::o;17506:337::-;17611:4;17593:23;;:6;:23;;;;:41;;;;;17630:4;;;;;;;;;;;17620:14;;:6;:14;;;;17593:41;17585:50;;;;;;17673:6;17646:16;:24;17663:6;17646:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;17693:6;17690:146;;;17715:11;;;;;;;;;;;:20;;;17736:6;17744:1;17715:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17690:146;;;17777:11;;;;;;;;;;;:20;;;17798:6;17806:9;:17;17816:6;17806:17;;;;;;;;;;;;;;;;17777:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17690:146;17506:337;;:::o;15412:330::-;15505:4;15542:53;15564:6;15542:53;;;;;;;;;;;;;;;;;:9;:17;15552:6;15542:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15522:9;:17;15532:6;15522:17;;;;;;;;;;;;;;;:73;;;;15629:32;15654:6;15629:9;:20;15639:9;15629:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15606:9;:20;15616:9;15606:20;;;;;;;;;;;;;;;:55;;;;15694:9;15677:35;;15686:6;15677:35;;;15705:6;15677:35;;;;;;:::i;:::-;;;;;;;;15730:4;15723:11;;15412:330;;;;;:::o;16334:726::-;11421:4;11412:6;;:13;;;;;;;;;;;;;;;;;;16383:20:::1;16406:24;16424:4;16406:9;:24::i;:::-;16383:47;;16443:21;16481:1;16467:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16443:40;;16512:4;16494;16499:1;16494:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;16538:4;;;;;;;;;;;16528;16533:1;16528:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;16565:6;;;;;;;;;;;:57;;;16637:12;16664:1;16680:4;16707;16727:15;16565:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16774:22;16799:30;16827:1;16800:21;16799:27;;:30;;;;:::i;:::-;16774:55;;16840:29;16872:43;16900:14;16873:21;16872:27;;:43;;;;:::i;:::-;16840:75;;16951:15;;;;;;;;;;;16943:33;;:56;16977:21;16943:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;17018:8;;;;;;;;;;;17010:26;;:42;17037:14;17010:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;16372:688;;;;11439:5:::0;11430:6;;:14;;;;;;;;;;;;;;;;;;16334:726::o;15753:206::-;15834:4;15862:11;:19;15874:6;15862:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;15885:11;:22;15897:9;15885:22;;;;;;;;;;;;;;;;;;;;;;;;;15862:45;15860:48;:90;;;;;15924:4;;;;;;;;;;;15914:14;;:6;:14;;;:35;;;;15945:4;;;;;;;;;;;15932:17;;:9;:17;;;15914:35;15860:90;15851:101;;15753:206;;;;:::o;15967:354::-;16034:7;16054:17;16094:40;16119:14;;16094:20;16105:8;;16094:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;16082:52;;16172:39;16201:9;16172;:24;16190:4;16172:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;16145:9;:24;16163:4;16145:24;;;;;;;;;;;;;;;:66;;;;16252:4;16227:42;;16236:6;16227:42;;;16259:9;16227:42;;;;;;:::i;:::-;;;;;;;;16292:21;16303:9;16292:6;:10;;:21;;;;:::i;:::-;16285:28;;;15967:354;;;;:::o;257:181::-;315:7;335:9;351:1;347;:5;;;;:::i;:::-;335:17;;376:1;371;:6;;363:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;429:1;422:8;;;257:181;;;;:::o;1040:132::-;1098:7;1125:39;1129:1;1132;1125:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1118:46;;1040:132;;;;:::o;784:250::-;842:7;871:1;866;:6;862:47;;;896:1;889:8;;;;862:47;921:9;937:1;933;:5;;;;:::i;:::-;921:17;;966:1;961;957;:5;;;;:::i;:::-;:10;949:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1025:1;1018:8;;;784:250;;;;;:::o;1178:345::-;1264:7;1363:1;1359;:5;1366:12;1351:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1390:9;1406:1;1402;:5;;;;:::i;:::-;1390:17;;1514:1;1507:8;;;1178: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;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:118::-;3916:24;3934:5;3916:24;:::i;:::-;3911:3;3904:37;3829:118;;:::o;3953:222::-;4046:4;4084:2;4073:9;4069:18;4061:26;;4097:71;4165:1;4154:9;4150:17;4141:6;4097:71;:::i;:::-;3953:222;;;;:::o;4181:619::-;4258:6;4266;4274;4323:2;4311:9;4302:7;4298:23;4294:32;4291:119;;;4329:79;;:::i;:::-;4291:119;4449:1;4474:53;4519:7;4510:6;4499:9;4495:22;4474:53;:::i;:::-;4464:63;;4420:117;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4704:2;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4675:118;4181:619;;;;;:::o;4806:86::-;4841:7;4881:4;4874:5;4870:16;4859:27;;4806:86;;;:::o;4898:112::-;4981:22;4997:5;4981:22;:::i;:::-;4976:3;4969:35;4898:112;;:::o;5016:214::-;5105:4;5143:2;5132:9;5128:18;5120:26;;5156:67;5220:1;5209:9;5205:17;5196:6;5156:67;:::i;:::-;5016:214;;;;:::o;5236:116::-;5306:21;5321:5;5306:21;:::i;:::-;5299:5;5296:32;5286:60;;5342:1;5339;5332:12;5286:60;5236:116;:::o;5358:133::-;5401:5;5439:6;5426:20;5417:29;;5455:30;5479:5;5455:30;:::i;:::-;5358:133;;;;:::o;5497:468::-;5562:6;5570;5619:2;5607:9;5598:7;5594:23;5590:32;5587:119;;;5625:79;;:::i;:::-;5587:119;5745:1;5770:53;5815:7;5806:6;5795:9;5791:22;5770:53;:::i;:::-;5760:63;;5716:117;5872:2;5898:50;5940:7;5931:6;5920:9;5916:22;5898:50;:::i;:::-;5888:60;;5843:115;5497:468;;;;;:::o;5971:104::-;6016:7;6045:24;6063:5;6045:24;:::i;:::-;6034:35;;5971:104;;;:::o;6081:142::-;6184:32;6210:5;6184:32;:::i;:::-;6179:3;6172:45;6081:142;;:::o;6229:254::-;6338:4;6376:2;6365:9;6361:18;6353:26;;6389:87;6473:1;6462:9;6458:17;6449:6;6389:87;:::i;:::-;6229:254;;;;:::o;6489:329::-;6548:6;6597:2;6585:9;6576:7;6572:23;6568:32;6565:119;;;6603:79;;:::i;:::-;6565:119;6723:1;6748:53;6793:7;6784:6;6773:9;6769:22;6748:53;:::i;:::-;6738:63;;6694:117;6489:329;;;;:::o;6824:118::-;6911:24;6929:5;6911:24;:::i;:::-;6906:3;6899:37;6824:118;;:::o;6948:222::-;7041:4;7079:2;7068:9;7064:18;7056:26;;7092:71;7160:1;7149:9;7145:17;7136:6;7092:71;:::i;:::-;6948:222;;;;:::o;7176:60::-;7204:3;7225:5;7218:12;;7176:60;;;:::o;7242:142::-;7292:9;7325:53;7343:34;7352:24;7370:5;7352:24;:::i;:::-;7343:34;:::i;:::-;7325:53;:::i;:::-;7312:66;;7242:142;;;:::o;7390:126::-;7440:9;7473:37;7504:5;7473:37;:::i;:::-;7460:50;;7390:126;;;:::o;7522:153::-;7599:9;7632:37;7663:5;7632:37;:::i;:::-;7619:50;;7522:153;;;:::o;7681:185::-;7795:64;7853:5;7795:64;:::i;:::-;7790:3;7783:77;7681:185;;:::o;7872:276::-;7992:4;8030:2;8019:9;8015:18;8007:26;;8043:98;8138:1;8127:9;8123:17;8114:6;8043:98;:::i;:::-;7872:276;;;;:::o;8154:474::-;8222:6;8230;8279:2;8267:9;8258:7;8254:23;8250:32;8247:119;;;8285:79;;:::i;:::-;8247:119;8405:1;8430:53;8475:7;8466:6;8455:9;8451:22;8430:53;:::i;:::-;8420:63;;8376:117;8532:2;8558:53;8603:7;8594:6;8583:9;8579:22;8558:53;:::i;:::-;8548:63;;8503:118;8154:474;;;;;:::o;8634:138::-;8715:32;8741:5;8715:32;:::i;:::-;8708:5;8705:43;8695:71;;8762:1;8759;8752:12;8695:71;8634:138;:::o;8778:155::-;8832:5;8870:6;8857:20;8848:29;;8886:41;8921:5;8886:41;:::i;:::-;8778:155;;;;:::o;8939:345::-;9006:6;9055:2;9043:9;9034:7;9030:23;9026:32;9023:119;;;9061:79;;:::i;:::-;9023:119;9181:1;9206:61;9259:7;9250:6;9239:9;9235:22;9206:61;:::i;:::-;9196:71;;9152:125;8939:345;;;;:::o;9290:144::-;9358:9;9391:37;9422:5;9391:37;:::i;:::-;9378:50;;9290:144;;;:::o;9440:167::-;9545:55;9594:5;9545:55;:::i;:::-;9540:3;9533:68;9440:167;;:::o;9613:258::-;9724:4;9762:2;9751:9;9747:18;9739:26;;9775:89;9861:1;9850:9;9846:17;9837:6;9775:89;:::i;:::-;9613:258;;;;:::o;9877:156::-;10017:8;10013:1;10005:6;10001:14;9994:32;9877:156;:::o;10039:365::-;10181:3;10202:66;10266:1;10261:3;10202:66;:::i;:::-;10195:73;;10277:93;10366:3;10277:93;:::i;:::-;10395:2;10390:3;10386:12;10379:19;;10039:365;;;:::o;10410:419::-;10576:4;10614:2;10603:9;10599:18;10591:26;;10663:9;10657:4;10653:20;10649:1;10638:9;10634:17;10627:47;10691:131;10817:4;10691:131;:::i;:::-;10683:139;;10410:419;;;:::o;10835:143::-;10892:5;10923:6;10917:13;10908:22;;10939:33;10966:5;10939:33;:::i;:::-;10835:143;;;;:::o;10984:351::-;11054:6;11103:2;11091:9;11082:7;11078:23;11074:32;11071:119;;;11109:79;;:::i;:::-;11071:119;11229:1;11254:64;11310:7;11301:6;11290:9;11286:22;11254:64;:::i;:::-;11244:74;;11200:128;10984:351;;;;:::o;11341:178::-;11481:30;11477:1;11469:6;11465:14;11458:54;11341:178;:::o;11525:366::-;11667:3;11688:67;11752:2;11747:3;11688:67;:::i;:::-;11681:74;;11764:93;11853:3;11764:93;:::i;:::-;11882:2;11877:3;11873:12;11866:19;;11525:366;;;:::o;11897:419::-;12063:4;12101:2;12090:9;12086:18;12078:26;;12150:9;12144:4;12140:20;12136:1;12125:9;12121:17;12114:47;12178:131;12304:4;12178:131;:::i;:::-;12170:139;;11897:419;;;:::o;12322:179::-;12462:31;12458:1;12450:6;12446:14;12439:55;12322:179;:::o;12507:366::-;12649:3;12670:67;12734:2;12729:3;12670:67;:::i;:::-;12663:74;;12746:93;12835:3;12746:93;:::i;:::-;12864:2;12859:3;12855:12;12848:19;;12507:366;;;:::o;12879:419::-;13045:4;13083:2;13072:9;13068:18;13060:26;;13132:9;13126:4;13122:20;13118:1;13107:9;13103:17;13096:47;13160:131;13286:4;13160:131;:::i;:::-;13152:139;;12879:419;;;:::o;13304:172::-;13444:24;13440:1;13432:6;13428:14;13421:48;13304:172;:::o;13482:366::-;13624:3;13645:67;13709:2;13704:3;13645:67;:::i;:::-;13638:74;;13721:93;13810:3;13721:93;:::i;:::-;13839:2;13834:3;13830:12;13823:19;;13482:366;;;:::o;13854:419::-;14020:4;14058:2;14047:9;14043:18;14035:26;;14107:9;14101:4;14097:20;14093:1;14082:9;14078:17;14071:47;14135:131;14261:4;14135:131;:::i;:::-;14127:139;;13854:419;;;:::o;14279:170::-;14419:22;14415:1;14407:6;14403:14;14396:46;14279:170;:::o;14455:366::-;14597:3;14618:67;14682:2;14677:3;14618:67;:::i;:::-;14611:74;;14694:93;14783:3;14694:93;:::i;:::-;14812:2;14807:3;14803:12;14796:19;;14455:366;;;:::o;14827:419::-;14993:4;15031:2;15020:9;15016:18;15008:26;;15080:9;15074:4;15070:20;15066:1;15055:9;15051:17;15044:47;15108:131;15234:4;15108:131;:::i;:::-;15100:139;;14827:419;;;:::o;15252:176::-;15392:28;15388:1;15380:6;15376:14;15369:52;15252:176;:::o;15434:366::-;15576:3;15597:67;15661:2;15656:3;15597:67;:::i;:::-;15590:74;;15673:93;15762:3;15673:93;:::i;:::-;15791:2;15786:3;15782:12;15775:19;;15434:366;;;:::o;15806:419::-;15972:4;16010:2;15999:9;15995:18;15987:26;;16059:9;16053:4;16049:20;16045:1;16034:9;16030:17;16023:47;16087:131;16213:4;16087:131;:::i;:::-;16079:139;;15806:419;;;:::o;16231:177::-;16371:29;16367:1;16359:6;16355:14;16348:53;16231:177;:::o;16414:366::-;16556:3;16577:67;16641:2;16636:3;16577:67;:::i;:::-;16570:74;;16653:93;16742:3;16653:93;:::i;:::-;16771:2;16766:3;16762:12;16755:19;;16414:366;;;:::o;16786:419::-;16952:4;16990:2;16979:9;16975:18;16967:26;;17039:9;17033:4;17029:20;17025:1;17014:9;17010:17;17003:47;17067:131;17193:4;17067:131;:::i;:::-;17059:139;;16786:419;;;:::o;17211:134::-;17269:9;17302:37;17333:5;17302:37;:::i;:::-;17289:50;;17211:134;;;:::o;17351:147::-;17446:45;17485:5;17446:45;:::i;:::-;17441:3;17434:58;17351:147;;:::o;17504:238::-;17605:4;17643:2;17632:9;17628:18;17620:26;;17656:79;17732:1;17721:9;17717:17;17708:6;17656:79;:::i;:::-;17504:238;;;;:::o;17748:221::-;17888:34;17884:1;17876:6;17872:14;17865:58;17957:4;17952:2;17944:6;17940:15;17933:29;17748:221;:::o;17975:366::-;18117:3;18138:67;18202:2;18197:3;18138:67;:::i;:::-;18131:74;;18214:93;18303:3;18214:93;:::i;:::-;18332:2;18327:3;18323:12;18316:19;;17975:366;;;:::o;18347:419::-;18513:4;18551:2;18540:9;18536:18;18528:26;;18600:9;18594:4;18590:20;18586:1;18575:9;18571:17;18564:47;18628:131;18754:4;18628:131;:::i;:::-;18620:139;;18347:419;;;:::o;18772:180::-;18820:77;18817:1;18810:88;18917:4;18914:1;18907:15;18941:4;18938:1;18931:15;18958:191;18998:4;19018:20;19036:1;19018:20;:::i;:::-;19013:25;;19052:20;19070:1;19052:20;:::i;:::-;19047:25;;19091:1;19088;19085:8;19082:34;;;19096:18;;:::i;:::-;19082:34;19141:1;19138;19134:9;19126:17;;18958:191;;;;:::o;19155:174::-;19295:26;19291:1;19283:6;19279:14;19272:50;19155:174;:::o;19335:366::-;19477:3;19498:67;19562:2;19557:3;19498:67;:::i;:::-;19491:74;;19574:93;19663:3;19574:93;:::i;:::-;19692:2;19687:3;19683:12;19676:19;;19335:366;;;:::o;19707:419::-;19873:4;19911:2;19900:9;19896:18;19888:26;;19960:9;19954:4;19950:20;19946:1;19935:9;19931:17;19924:47;19988:131;20114:4;19988:131;:::i;:::-;19980:139;;19707:419;;;:::o;20132:158::-;20272:10;20268:1;20260:6;20256:14;20249:34;20132:158;:::o;20296:365::-;20438:3;20459:66;20523:1;20518:3;20459:66;:::i;:::-;20452:73;;20534:93;20623:3;20534:93;:::i;:::-;20652:2;20647:3;20643:12;20636:19;;20296:365;;;:::o;20667:419::-;20833:4;20871:2;20860:9;20856:18;20848:26;;20920:9;20914:4;20910:20;20906:1;20895:9;20891:17;20884:47;20948:131;21074:4;20948:131;:::i;:::-;20940:139;;20667:419;;;:::o;21092:162::-;21232:14;21228:1;21220:6;21216:14;21209:38;21092:162;:::o;21260:366::-;21402:3;21423:67;21487:2;21482:3;21423:67;:::i;:::-;21416:74;;21499:93;21588:3;21499:93;:::i;:::-;21617:2;21612:3;21608:12;21601:19;;21260:366;;;:::o;21632:419::-;21798:4;21836:2;21825:9;21821:18;21813:26;;21885:9;21879:4;21875:20;21871:1;21860:9;21856:17;21849:47;21913:131;22039:4;21913:131;:::i;:::-;21905:139;;21632:419;;;:::o;22057:305::-;22097:3;22116:20;22134:1;22116:20;:::i;:::-;22111:25;;22150:20;22168:1;22150:20;:::i;:::-;22145:25;;22304:1;22236:66;22232:74;22229:1;22226:81;22223:107;;;22310:18;;:::i;:::-;22223:107;22354:1;22351;22347:9;22340:16;;22057:305;;;;:::o;22368:332::-;22489:4;22527:2;22516:9;22512:18;22504:26;;22540:71;22608:1;22597:9;22593:17;22584:6;22540:71;:::i;:::-;22621:72;22689:2;22678:9;22674:18;22665:6;22621:72;:::i;:::-;22368:332;;;;;:::o;22706:85::-;22751:7;22780:5;22769:16;;22706:85;;;:::o;22797:158::-;22855:9;22888:61;22906:42;22915:32;22941:5;22915:32;:::i;:::-;22906:42;:::i;:::-;22888:61;:::i;:::-;22875:74;;22797:158;;;:::o;22961:147::-;23056:45;23095:5;23056:45;:::i;:::-;23051:3;23044:58;22961:147;;:::o;23114:348::-;23243:4;23281:2;23270:9;23266:18;23258:26;;23294:71;23362:1;23351:9;23347:17;23338:6;23294:71;:::i;:::-;23375:80;23451:2;23440:9;23436:18;23427:6;23375:80;:::i;:::-;23114:348;;;;;:::o;23468:180::-;23516:77;23513:1;23506:88;23613:4;23610:1;23603:15;23637:4;23634:1;23627:15;23654:180;23702:77;23699:1;23692:88;23799:4;23796:1;23789:15;23823:4;23820:1;23813:15;23840:114;23907:6;23941:5;23935:12;23925:22;;23840:114;;;:::o;23960:184::-;24059:11;24093:6;24088:3;24081:19;24133:4;24128:3;24124:14;24109:29;;23960:184;;;;:::o;24150:132::-;24217:4;24240:3;24232:11;;24270:4;24265:3;24261:14;24253:22;;24150:132;;;:::o;24288:108::-;24365:24;24383:5;24365:24;:::i;:::-;24360:3;24353:37;24288:108;;:::o;24402:179::-;24471:10;24492:46;24534:3;24526:6;24492:46;:::i;:::-;24570:4;24565:3;24561:14;24547:28;;24402:179;;;;:::o;24587:113::-;24657:4;24689;24684:3;24680:14;24672:22;;24587:113;;;:::o;24736:732::-;24855:3;24884:54;24932:5;24884:54;:::i;:::-;24954:86;25033:6;25028:3;24954:86;:::i;:::-;24947:93;;25064:56;25114:5;25064:56;:::i;:::-;25143:7;25174:1;25159:284;25184:6;25181:1;25178:13;25159:284;;;25260:6;25254:13;25287:63;25346:3;25331:13;25287:63;:::i;:::-;25280:70;;25373:60;25426:6;25373:60;:::i;:::-;25363:70;;25219:224;25206:1;25203;25199:9;25194:14;;25159:284;;;25163:14;25459:3;25452:10;;24860:608;;;24736:732;;;;:::o;25474:831::-;25737:4;25775:3;25764:9;25760:19;25752:27;;25789:71;25857:1;25846:9;25842:17;25833:6;25789:71;:::i;:::-;25870:80;25946:2;25935:9;25931:18;25922:6;25870:80;:::i;:::-;25997:9;25991:4;25987:20;25982:2;25971:9;25967:18;25960:48;26025:108;26128:4;26119:6;26025:108;:::i;:::-;26017:116;;26143:72;26211:2;26200:9;26196:18;26187:6;26143:72;:::i;:::-;26225:73;26293:3;26282:9;26278:19;26269:6;26225:73;:::i;:::-;25474:831;;;;;;;;:::o;26311:177::-;26451:29;26447:1;26439:6;26435:14;26428:53;26311:177;:::o;26494:366::-;26636:3;26657:67;26721:2;26716:3;26657:67;:::i;:::-;26650:74;;26733:93;26822:3;26733:93;:::i;:::-;26851:2;26846:3;26842:12;26835:19;;26494:366;;;:::o;26866:419::-;27032:4;27070:2;27059:9;27055:18;27047:26;;27119:9;27113:4;27109:20;27105:1;27094:9;27090:17;27083:47;27147:131;27273:4;27147:131;:::i;:::-;27139:139;;26866:419;;;:::o;27291:348::-;27331:7;27354:20;27372:1;27354:20;:::i;:::-;27349:25;;27388:20;27406:1;27388:20;:::i;:::-;27383:25;;27576:1;27508:66;27504:74;27501:1;27498:81;27493:1;27486:9;27479:17;27475:105;27472:131;;;27583:18;;:::i;:::-;27472:131;27631:1;27628;27624:9;27613:20;;27291:348;;;;:::o;27645:180::-;27693:77;27690:1;27683:88;27790:4;27787:1;27780:15;27814:4;27811:1;27804:15;27831:185;27871:1;27888:20;27906:1;27888:20;:::i;:::-;27883:25;;27922:20;27940:1;27922:20;:::i;:::-;27917:25;;27961:1;27951:35;;27966:18;;:::i;:::-;27951:35;28008:1;28005;28001:9;27996:14;;27831:185;;;;:::o;28022:220::-;28162:34;28158:1;28150:6;28146:14;28139:58;28231:3;28226:2;28218:6;28214:15;28207:28;28022:220;:::o;28248:366::-;28390:3;28411:67;28475:2;28470:3;28411:67;:::i;:::-;28404:74;;28487:93;28576:3;28487:93;:::i;:::-;28605:2;28600:3;28596:12;28589:19;;28248:366;;;:::o;28620:419::-;28786:4;28824:2;28813:9;28809:18;28801:26;;28873:9;28867:4;28863:20;28859:1;28848:9;28844:17;28837:47;28901:131;29027:4;28901:131;:::i;:::-;28893:139;;28620:419;;;:::o

Swarm Source

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