ETH Price: $3,315.70 (-1.78%)

Token

Juan (JUAN)
 

Overview

Max Total Supply

420,000,000,000 JUAN

Holders

121

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
322,459,578.646656 JUAN

Value
$0.00
0xb1c1cc347986b4be303c3cf16a8bafafc4d45afc
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:
Juan

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-23
*/

//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function 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);
}

interface IUniswapV2Factory { 
    function createPair(address tokenA, address tokenB) external returns (address pair); 
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    function WETH() external pure returns (address);
    function factory() external pure returns (address);
    function addLiquidityETH(address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

abstract contract Auth {
    address internal _owner;
    event OwnershipTransferred(address _owner);
    constructor(address creatorOwner) { _owner = creatorOwner; }
    modifier onlyOwner() { require(msg.sender == _owner, "Only owner can call this"); _; }
    function owner() public view returns (address) { return _owner; }
    function renounceOwnership() external onlyOwner { 
        _owner = address(0); 
        emit OwnershipTransferred(address(0)); 
    }
}

contract Juan is IERC20, Auth {
    string private constant _name         = "Juan";
    string private constant _symbol       = "JUAN";
    uint8 private constant _decimals      = 9;
    uint256 private constant _totalSupply = 420_000_000_000 * (10**_decimals);
    address private creator;
    address public uniswapV2Pair;

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

    address payable private _walletMarketing;
    uint256 private constant _taxSwapMin = _totalSupply / 200000;
    uint256 private constant _taxSwapMax = _totalSupply / 1000;
  
    address private constant _swapRouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    IUniswapV2Router02 private _primarySwapRouter = IUniswapV2Router02(_swapRouterAddress);
    address private _primaryLP;
    mapping (address => bool) private _isLP;
    uint256 private _tax = 300;
    
    bool private _tradingOpen;

    bool private _inTaxSwap = false;
    modifier lockTaxSwap { 
        _inTaxSwap = true; 
        _; 
        _inTaxSwap = false; 
    }

    event TokensAirdropped(uint256 totalWallets, uint256 totalTokens);

    constructor(address communityWallet, address cexWallet, address marketingWallet) Auth(msg.sender) { 

        require(communityWallet != cexWallet, "Community and CEX wallet should not be the same");
        require(communityWallet != marketingWallet, "Community and marketingWallet wallet should not be the same");

        creator = msg.sender;

        _balances[address(cexWallet)] = (_totalSupply / 1000 ) * 75;                               // 7.5% for future CEX listings
        emit Transfer(address(0), address(cexWallet), _balances[address(cexWallet)]);
        _balances[address(communityWallet)] = (_totalSupply / 1000 ) * 100;                        // 10.0% for the community wallet
        emit Transfer(address(0), address(communityWallet), _balances[address(communityWallet)]);
        _balances[address(marketingWallet)] = (_totalSupply / 1000 ) * 50;                         // 5.0% for the marketing wallet
        emit Transfer(address(0), address(marketingWallet), _balances[address(marketingWallet)]);
        _balances[_owner] = (_totalSupply / 1000 ) * 775;                                          // 77.5% for the airdrop and LP      
        emit Transfer(address(0), _owner, _balances[_owner]);

        setMarketingWallet(marketingWallet);

        _noFees[_owner] = true;
        _noFees[address(this)] = true;
        _noFees[_swapRouterAddress] = true;
        _noFees[_walletMarketing] = true;
        _noFees[communityWallet] = true;
        _noFees[cexWallet] = true;
    }

    receive() external payable {}
    
    function totalSupply() external pure 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 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 transfer(address recipient, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(msg.sender), "Trading not open");
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(sender), "Trading not open");
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(sender != address(0), "No transfers from Zero wallet");

        if (!_tradingOpen) { require(_noFees[sender], "Trading not open"); }
        if ( !_inTaxSwap && _isLP[recipient] ) { _swapTaxAndLiquify(); }

        uint256 _taxAmount = _calculateTax(sender, recipient, amount);
        uint256 _transferAmount = amount - _taxAmount;
        _balances[sender] -= amount;
        if ( _taxAmount > 0 ) { 
            _balances[address(this)] += _taxAmount; 
        }
        _balances[recipient] += _transferAmount;
        emit Transfer(sender, recipient, amount);
        return true;
    }    

    function _approveRouter(uint256 _tokenAmount) internal {
        if ( _allowances[address(this)][_swapRouterAddress] < _tokenAmount ) {
            _allowances[address(this)][_swapRouterAddress] = type(uint256).max;
            emit Approval(address(this), _swapRouterAddress, type(uint256).max);
        }
    }

    function addLiquidity() external payable onlyOwner lockTaxSwap {
        require(_primaryLP == address(0), "LP exists");
        require(!_tradingOpen, "trading is open");
        require(msg.value > 0 || address(this).balance>0, "No ETH in contract or message");
        require(_balances[address(this)]>0, "No tokens in contract");
        _primaryLP = IUniswapV2Factory(_primarySwapRouter.factory()).createPair(address(this), _primarySwapRouter.WETH());
        _addLiquidity(_balances[address(this)], address(this).balance);
        _isLP[_primaryLP] = true;
        _tradingOpen = true;
    }

    function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei) internal {
        _approveRouter(_tokenAmount);
        _primarySwapRouter.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, _owner, block.timestamp );
    }

    function _checkTradingOpen(address sender) private view returns (bool){
        bool checkResult = false;
        if ( _tradingOpen ) { checkResult = true; } 
        else if (_noFees[sender]) { checkResult = true; } 

        return checkResult;
    }

    function tax() external view returns (uint256) {
        return _tax;
    }

    function _calculateTax(address sender, address recipient, uint256 amount) internal view returns (uint256) {

        uint256 taxAmount;
        if ( _tradingOpen && !_noFees[sender] && !_noFees[recipient] ) { 
            if ( _isLP[sender] || _isLP[recipient] ) {
                taxAmount = amount * _tax / 10000;
            }
        }

        return taxAmount;
    }

    function setNoFees(address wallet, bool noFees) external onlyOwner {
        _noFees[wallet] = noFees;
    }

    function setMarketingWallet(address newMarketingWallet) public {
        require(msg.sender == _walletMarketing || msg.sender == owner(), "only marketing wallet can change MW");
        _walletMarketing = payable(newMarketingWallet);
    }

    function marketingMultisig() external view returns (address) {
        return _walletMarketing;
    }

    function _swapTaxAndLiquify() private lockTaxSwap {
        uint256 _taxTokensAvailable = balanceOf(address(this));

        if ( _taxTokensAvailable >= _taxSwapMin && _tradingOpen ) {
            if ( _taxTokensAvailable >= _taxSwapMax ) { _taxTokensAvailable = _taxSwapMax; }

            //  1/4 goes to LP (1/8 in ETH + 1/8 in tokens) and 3/4 goes to marketing wallet
            uint256  _tokensForLP = _taxTokensAvailable / 8;                                        
            
            uint256 _tokensToSwap = _taxTokensAvailable - _tokensForLP;
            if( _tokensToSwap > 2000 * 10**_decimals ) {                                                              // if there is enough of them... need to adjust based on total supply
                uint256 _ethPreSwap = address(this).balance;
                _swapTaxTokensForEth(_tokensToSwap);
                uint256 _ethSwapped = address(this).balance - _ethPreSwap;
                if ( _tokensForLP > 0 ) {
                    uint256 _ethWeiAmount = _ethSwapped / 7 ;
                    _approveRouter(_tokensForLP);
                    _addLiquidity(_tokensForLP, _ethWeiAmount);
                }
            }
            uint256 _contractETHBalance = address(this).balance;
            if(_contractETHBalance > 0) { 
                (bool sent,) = _walletMarketing.call{value: _contractETHBalance}("");
                require(sent);
            }
        }
    }

    function _swapTaxTokensForEth(uint256 tokenAmount) private {
        _approveRouter(tokenAmount);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _primarySwapRouter.WETH();
        _primarySwapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp);
    }

    // this is just a failsafe in case some dumbass sends a lot of ETH to the contract
    // any ETH sent to the contract will be considered a donation to the team
    function withdrawETH() external payable {
      require(msg.sender == creator, "only creator can withdraw stuck ETH");
      (bool os, ) = payable(owner()).call{value: address(this).balance}("");
      require(os);
    }

    // this is just a failsafe in case some dumbass sends a lot of ERC20 tokens to the contract
    // any tokens sent to the contract will be considered a donation to the team and team may sell them at their own discretion
    function withdrawERC20(address erc20) external {
      require(msg.sender == creator, "only creator can withdraw stuck ERC20");
      IERC20 erc20Token = IERC20(erc20);
      uint256 balance = erc20Token.balanceOf(address(this));
      bool success = erc20Token.transfer(msg.sender, balance);
      require(success, "Transfer failed");
    }

    // REMOVE IF NOT AIRDROPPING
    function airdrop(address[] calldata addresses, uint256[] calldata tokenAmounts) external onlyOwner {
        require(addresses.length <= 250,"More than 250 wallets");
        require(addresses.length == tokenAmounts.length,"List length mismatch");

        uint256 airdropTotal = 0;
        for(uint i=0; i < addresses.length; i++){
            airdropTotal += tokenAmounts[i];
        }
        require(_balances[msg.sender] >= airdropTotal, "Token balance too low");

        for(uint i=0; i < addresses.length; i++){
            _balances[msg.sender] -= tokenAmounts[i];
            _balances[addresses[i]] += tokenAmounts[i];
            emit Transfer(msg.sender, addresses[i], tokenAmounts[i] );       
        }

        emit TokensAirdropped(addresses.length, airdropTotal);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"communityWallet","type":"address"},{"internalType":"address","name":"cexWallet","type":"address"},{"internalType":"address","name":"marketingWallet","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":false,"internalType":"uint256","name":"totalWallets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalTokens","type":"uint256"}],"name":"TokensAirdropped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokenAmounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"marketingMultisig","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"noFees","type":"bool"}],"name":"setNoFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"erc20","type":"address"}],"name":"withdrawERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawETH","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061012c600a556000600b60016101000a81548160ff0219169083151502179055503480156200008757600080fd5b50604051620047db380380620047db8339818101604052810190620000ad919062000b4a565b33806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000160576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001579062000c2d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620001d1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001c89062000cc5565b60405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604b6103e86009600a62000227919062000e81565b6461c9f3680062000239919062000ed2565b62000245919062000f4c565b62000251919062000ed2565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405162000333919062000f95565b60405180910390a360646103e86009600a62000350919062000e81565b6461c9f3680062000362919062000ed2565b6200036e919062000f4c565b6200037a919062000ed2565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516200045c919062000f95565b60405180910390a360326103e86009600a62000479919062000e81565b6461c9f368006200048b919062000ed2565b62000497919062000f4c565b620004a3919062000ed2565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405162000585919062000f95565b60405180910390a36103076103e86009600a620005a3919062000e81565b6461c9f36800620005b5919062000ed2565b620005c1919062000f4c565b620005cd919062000ed2565b600360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405162000711919062000f95565b60405180910390a36200072a816200099a60201b60201c565b6001600560008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050506200104a565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148062000a31575062000a0262000ab760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b62000a73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a6a9062001028565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b128262000ae5565b9050919050565b62000b248162000b05565b811462000b3057600080fd5b50565b60008151905062000b448162000b19565b92915050565b60008060006060848603121562000b665762000b6562000ae0565b5b600062000b768682870162000b33565b935050602062000b898682870162000b33565b925050604062000b9c8682870162000b33565b9150509250925092565b600082825260208201905092915050565b7f436f6d6d756e69747920616e64204345582077616c6c65742073686f756c642060008201527f6e6f74206265207468652073616d650000000000000000000000000000000000602082015250565b600062000c15602f8362000ba6565b915062000c228262000bb7565b604082019050919050565b6000602082019050818103600083015262000c488162000c06565b9050919050565b7f436f6d6d756e69747920616e64206d61726b6574696e6757616c6c657420776160008201527f6c6c65742073686f756c64206e6f74206265207468652073616d650000000000602082015250565b600062000cad603b8362000ba6565b915062000cba8262000c4f565b604082019050919050565b6000602082019050818103600083015262000ce08162000c9e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000d755780860481111562000d4d5762000d4c62000ce7565b5b600185161562000d5d5780820291505b808102905062000d6d8562000d16565b945062000d2d565b94509492505050565b60008262000d90576001905062000e63565b8162000da0576000905062000e63565b816001811462000db9576002811462000dc45762000dfa565b600191505062000e63565b60ff84111562000dd95762000dd862000ce7565b5b8360020a91508482111562000df35762000df262000ce7565b5b5062000e63565b5060208310610133831016604e8410600b841016171562000e345782820a90508381111562000e2e5762000e2d62000ce7565b5b62000e63565b62000e43848484600162000d23565b9250905081840481111562000e5d5762000e5c62000ce7565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000e8e8262000e6a565b915062000e9b8362000e74565b925062000eca7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000d7e565b905092915050565b600062000edf8262000e6a565b915062000eec8362000e6a565b925082820262000efc8162000e6a565b9150828204841483151762000f165762000f1562000ce7565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000f598262000e6a565b915062000f668362000e6a565b92508262000f795762000f7862000f1d565b5b828204905092915050565b62000f8f8162000e6a565b82525050565b600060208201905062000fac600083018462000f84565b92915050565b7f6f6e6c79206d61726b6574696e672077616c6c65742063616e206368616e676560008201527f204d570000000000000000000000000000000000000000000000000000000000602082015250565b60006200101060238362000ba6565b91506200101d8262000fb2565b604082019050919050565b60006020820190508181036000830152620010438162001001565b9050919050565b613781806200105a6000396000f3fe6080604052600436106101235760003560e01c806370a08231116100a0578063a9059cbb11610064578063a9059cbb146103d0578063dd62ed3e1461040d578063e086e5ec1461044a578063e8078d9414610454578063f4f3b2001461045e5761012a565b806370a08231146102fb578063715018a6146103385780638da5cb5b1461034f57806395d89b411461037a57806399c8d556146103a55761012a565b8063313ce567116100e7578063313ce5671461022a57806349bd5a5e146102555780635d098b381461028057806367243482146102a95780636c5735c0146102d25761012a565b806306fdde031461012f578063095ea7b31461015a5780631046128a1461019757806318160ddd146101c257806323b872dd146101ed5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610487565b60405161015191906125d3565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c9190612693565b6104c4565b60405161018e91906126ee565b60405180910390f35b3480156101a357600080fd5b506101ac6105b6565b6040516101b99190612718565b60405180910390f35b3480156101ce57600080fd5b506101d76105e0565b6040516101e49190612742565b60405180910390f35b3480156101f957600080fd5b50610214600480360381019061020f919061275d565b610605565b60405161022191906126ee565b60405180910390f35b34801561023657600080fd5b5061023f61080f565b60405161024c91906127cc565b60405180910390f35b34801561026157600080fd5b5061026a610818565b6040516102779190612718565b60405180910390f35b34801561028c57600080fd5b506102a760048036038101906102a291906127e7565b61083e565b005b3480156102b557600080fd5b506102d060048036038101906102cb91906128cf565b61094f565b005b3480156102de57600080fd5b506102f960048036038101906102f4919061297c565b610d47565b005b34801561030757600080fd5b50610322600480360381019061031d91906127e7565b610e30565b60405161032f9190612742565b60405180910390f35b34801561034457600080fd5b5061034d610e79565b005b34801561035b57600080fd5b50610364610f82565b6040516103719190612718565b60405180910390f35b34801561038657600080fd5b5061038f610fab565b60405161039c91906125d3565b60405180910390f35b3480156103b157600080fd5b506103ba610fe8565b6040516103c79190612742565b60405180910390f35b3480156103dc57600080fd5b506103f760048036038101906103f29190612693565b610ff2565b60405161040491906126ee565b60405180910390f35b34801561041957600080fd5b50610434600480360381019061042f91906129bc565b61104f565b6040516104419190612742565b60405180910390f35b6104526110d6565b005b61045c6111e6565b005b34801561046a57600080fd5b50610485600480360381019061048091906127e7565b611719565b005b60606040518060400160405280600481526020017f4a75616e00000000000000000000000000000000000000000000000000000000815250905090565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105a49190612742565b60405180910390a36001905092915050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006009600a6105f09190612b5e565b6461c9f368006106009190612ba9565b905090565b6000610610846118f4565b61064f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064690612c37565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146107fb5781600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461077a9190612c57565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61080684848461197a565b90509392505050565b60006009905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806108cc575061089d610f82565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61090b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090290612cfd565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d490612d69565b60405180910390fd5b60fa848490501115610a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1b90612dd5565b60405180910390fd5b818190508484905014610a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6390612e41565b60405180910390fd5b6000805b85859050811015610ab557838382818110610a8e57610a8d612e61565b5b9050602002013582610aa09190612e90565b91508080610aad90612ec4565b915050610a70565b5080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610b38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2f90612f58565b60405180910390fd5b60005b85859050811015610d0357838382818110610b5957610b58612e61565b5b90506020020135600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610bae9190612c57565b92505081905550838382818110610bc857610bc7612e61565b5b9050602002013560036000888885818110610be657610be5612e61565b5b9050602002016020810190610bfb91906127e7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610c449190612e90565b92505081905550858582818110610c5e57610c5d612e61565b5b9050602002016020810190610c7391906127e7565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef868685818110610cd457610cd3612e61565b5b90506020020135604051610ce89190612742565b60405180910390a38080610cfb90612ec4565b915050610b3b565b507f71cc7095cc35ed4701c217a8efb440732eb0737da67f6548c008ac26fba954648585905082604051610d38929190612f78565b60405180910390a15050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcc90612d69565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe90612d69565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610f789190612718565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4a55414e00000000000000000000000000000000000000000000000000000000815250905090565b6000600a54905090565b6000610ffd336118f4565b61103c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103390612c37565b60405180910390fd5b61104733848461197a565b905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115d90613013565b60405180910390fd5b6000611170610f82565b73ffffffffffffffffffffffffffffffffffffffff164760405161119390613064565b60006040518083038185875af1925050503d80600081146111d0576040519150601f19603f3d011682016040523d82523d6000602084013e6111d5565b606091505b50509050806111e357600080fd5b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611274576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126b90612d69565b60405180910390fd5b6001600b60016101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611320576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611317906130c5565b60405180910390fd5b600b60009054906101000a900460ff1615611370576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136790613131565b60405180910390fd5b600034118061137f5750600047115b6113be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b59061319d565b60405180910390fd5b6000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143790613209565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d1919061323e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561155a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157e919061323e565b6040518363ffffffff1660e01b815260040161159b92919061326b565b6020604051808303816000875af11580156115ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115de919061323e565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611667600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205447611c9c565b600160096000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60006101000a81548160ff0219169083151502179055506000600b60016101000a81548160ff021916908315150217905550565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a090613306565b60405180910390fd5b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016117e99190612718565b602060405180830381865afa158015611806573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182a919061333b565b905060008273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611869929190613368565b6020604051808303816000875af1158015611888573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ac91906133a6565b9050806118ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e59061341f565b60405180910390fd5b50505050565b60008060009050600b60009054906101000a900460ff16156119195760019050611971565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561197057600190505b5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036119ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e19061348b565b60405180910390fd5b600b60009054906101000a900460ff16611a8b57600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8190612c37565b60405180910390fd5b5b600b60019054906101000a900460ff16158015611af15750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611aff57611afe611d76565b5b6000611b0c858585611fa6565b905060008184611b1c9190612c57565b905083600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b6d9190612c57565b925050819055506000821115611bd45781600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611bcc9190612e90565b925050819055505b80600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c239190612e90565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051611c879190612742565b60405180910390a36001925050509392505050565b611ca58261213a565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401611d2c969594939291906134f0565b60606040518083038185885af1158015611d4a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d6f9190613551565b5050505050565b6001600b60016101000a81548160ff0219169083151502179055506000611d9c30610e30565b905062030d406009600a611db09190612b5e565b6461c9f36800611dc09190612ba9565b611dca91906135d3565b8110158015611de55750600b60009054906101000a900460ff165b15611f88576103e86009600a611dfb9190612b5e565b6461c9f36800611e0b9190612ba9565b611e1591906135d3565b8110611e49576103e86009600a611e2c9190612b5e565b6461c9f36800611e3c9190612ba9565b611e4691906135d3565b90505b6000600882611e5891906135d3565b905060008183611e689190612c57565b90506009600a611e789190612b5e565b6107d0611e859190612ba9565b811115611edc576000479050611e9a82612324565b60008147611ea89190612c57565b90506000841115611ed9576000600782611ec291906135d3565b9050611ecd8561213a565b611ed78582611c9c565b505b50505b60004790506000811115611f84576000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611f3290613064565b60006040518083038185875af1925050503d8060008114611f6f576040519150601f19603f3d011682016040523d82523d6000602084013e611f74565b606091505b5050905080611f8257600080fd5b505b5050505b506000600b60016101000a81548160ff021916908315150217905550565b600080600b60009054906101000a900460ff16801561200f5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120655750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561212f57600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061210b5750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561212e57612710600a54846121219190612ba9565b61212b91906135d3565b90505b5b809150509392505050565b80600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612321577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040516123189190612742565b60405180910390a35b50565b61232d8161213a565b6000600267ffffffffffffffff81111561234a57612349613604565b5b6040519080825280602002602001820160405280156123785781602001602082028036833780820191505090505b50905030816000815181106123905761238f612e61565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612437573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061245b919061323e565b8160018151811061246f5761246e612e61565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161250d9594939291906136f1565b600060405180830381600087803b15801561252757600080fd5b505af115801561253b573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561257d578082015181840152602081019050612562565b60008484015250505050565b6000601f19601f8301169050919050565b60006125a582612543565b6125af818561254e565b93506125bf81856020860161255f565b6125c881612589565b840191505092915050565b600060208201905081810360008301526125ed818461259a565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061262a826125ff565b9050919050565b61263a8161261f565b811461264557600080fd5b50565b60008135905061265781612631565b92915050565b6000819050919050565b6126708161265d565b811461267b57600080fd5b50565b60008135905061268d81612667565b92915050565b600080604083850312156126aa576126a96125f5565b5b60006126b885828601612648565b92505060206126c98582860161267e565b9150509250929050565b60008115159050919050565b6126e8816126d3565b82525050565b600060208201905061270360008301846126df565b92915050565b6127128161261f565b82525050565b600060208201905061272d6000830184612709565b92915050565b61273c8161265d565b82525050565b60006020820190506127576000830184612733565b92915050565b600080600060608486031215612776576127756125f5565b5b600061278486828701612648565b935050602061279586828701612648565b92505060406127a68682870161267e565b9150509250925092565b600060ff82169050919050565b6127c6816127b0565b82525050565b60006020820190506127e160008301846127bd565b92915050565b6000602082840312156127fd576127fc6125f5565b5b600061280b84828501612648565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261283957612838612814565b5b8235905067ffffffffffffffff81111561285657612855612819565b5b6020830191508360208202830111156128725761287161281e565b5b9250929050565b60008083601f84011261288f5761288e612814565b5b8235905067ffffffffffffffff8111156128ac576128ab612819565b5b6020830191508360208202830111156128c8576128c761281e565b5b9250929050565b600080600080604085870312156128e9576128e86125f5565b5b600085013567ffffffffffffffff811115612907576129066125fa565b5b61291387828801612823565b9450945050602085013567ffffffffffffffff811115612936576129356125fa565b5b61294287828801612879565b925092505092959194509250565b612959816126d3565b811461296457600080fd5b50565b60008135905061297681612950565b92915050565b60008060408385031215612993576129926125f5565b5b60006129a185828601612648565b92505060206129b285828601612967565b9150509250929050565b600080604083850312156129d3576129d26125f5565b5b60006129e185828601612648565b92505060206129f285828601612648565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612a8257808604811115612a5e57612a5d6129fc565b5b6001851615612a6d5780820291505b8081029050612a7b85612a2b565b9450612a42565b94509492505050565b600082612a9b5760019050612b57565b81612aa95760009050612b57565b8160018114612abf5760028114612ac957612af8565b6001915050612b57565b60ff841115612adb57612ada6129fc565b5b8360020a915084821115612af257612af16129fc565b5b50612b57565b5060208310610133831016604e8410600b8410161715612b2d5782820a905083811115612b2857612b276129fc565b5b612b57565b612b3a8484846001612a38565b92509050818404811115612b5157612b506129fc565b5b81810290505b9392505050565b6000612b698261265d565b9150612b74836127b0565b9250612ba17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a8b565b905092915050565b6000612bb48261265d565b9150612bbf8361265d565b9250828202612bcd8161265d565b91508282048414831517612be457612be36129fc565b5b5092915050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000612c2160108361254e565b9150612c2c82612beb565b602082019050919050565b60006020820190508181036000830152612c5081612c14565b9050919050565b6000612c628261265d565b9150612c6d8361265d565b9250828203905081811115612c8557612c846129fc565b5b92915050565b7f6f6e6c79206d61726b6574696e672077616c6c65742063616e206368616e676560008201527f204d570000000000000000000000000000000000000000000000000000000000602082015250565b6000612ce760238361254e565b9150612cf282612c8b565b604082019050919050565b60006020820190508181036000830152612d1681612cda565b9050919050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000600082015250565b6000612d5360188361254e565b9150612d5e82612d1d565b602082019050919050565b60006020820190508181036000830152612d8281612d46565b9050919050565b7f4d6f7265207468616e203235302077616c6c6574730000000000000000000000600082015250565b6000612dbf60158361254e565b9150612dca82612d89565b602082019050919050565b60006020820190508181036000830152612dee81612db2565b9050919050565b7f4c697374206c656e677468206d69736d61746368000000000000000000000000600082015250565b6000612e2b60148361254e565b9150612e3682612df5565b602082019050919050565b60006020820190508181036000830152612e5a81612e1e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612e9b8261265d565b9150612ea68361265d565b9250828201905080821115612ebe57612ebd6129fc565b5b92915050565b6000612ecf8261265d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f0157612f006129fc565b5b600182019050919050565b7f546f6b656e2062616c616e636520746f6f206c6f770000000000000000000000600082015250565b6000612f4260158361254e565b9150612f4d82612f0c565b602082019050919050565b60006020820190508181036000830152612f7181612f35565b9050919050565b6000604082019050612f8d6000830185612733565b612f9a6020830184612733565b9392505050565b7f6f6e6c792063726561746f722063616e20776974686472617720737475636b2060008201527f4554480000000000000000000000000000000000000000000000000000000000602082015250565b6000612ffd60238361254e565b915061300882612fa1565b604082019050919050565b6000602082019050818103600083015261302c81612ff0565b9050919050565b600081905092915050565b50565b600061304e600083613033565b91506130598261303e565b600082019050919050565b600061306f82613041565b9150819050919050565b7f4c50206578697374730000000000000000000000000000000000000000000000600082015250565b60006130af60098361254e565b91506130ba82613079565b602082019050919050565b600060208201905081810360008301526130de816130a2565b9050919050565b7f74726164696e67206973206f70656e0000000000000000000000000000000000600082015250565b600061311b600f8361254e565b9150613126826130e5565b602082019050919050565b6000602082019050818103600083015261314a8161310e565b9050919050565b7f4e6f2045544820696e20636f6e7472616374206f72206d657373616765000000600082015250565b6000613187601d8361254e565b915061319282613151565b602082019050919050565b600060208201905081810360008301526131b68161317a565b9050919050565b7f4e6f20746f6b656e7320696e20636f6e74726163740000000000000000000000600082015250565b60006131f360158361254e565b91506131fe826131bd565b602082019050919050565b60006020820190508181036000830152613222816131e6565b9050919050565b60008151905061323881612631565b92915050565b600060208284031215613254576132536125f5565b5b600061326284828501613229565b91505092915050565b60006040820190506132806000830185612709565b61328d6020830184612709565b9392505050565b7f6f6e6c792063726561746f722063616e20776974686472617720737475636b2060008201527f4552433230000000000000000000000000000000000000000000000000000000602082015250565b60006132f060258361254e565b91506132fb82613294565b604082019050919050565b6000602082019050818103600083015261331f816132e3565b9050919050565b60008151905061333581612667565b92915050565b600060208284031215613351576133506125f5565b5b600061335f84828501613326565b91505092915050565b600060408201905061337d6000830185612709565b61338a6020830184612733565b9392505050565b6000815190506133a081612950565b92915050565b6000602082840312156133bc576133bb6125f5565b5b60006133ca84828501613391565b91505092915050565b7f5472616e73666572206661696c65640000000000000000000000000000000000600082015250565b6000613409600f8361254e565b9150613414826133d3565b602082019050919050565b60006020820190508181036000830152613438816133fc565b9050919050565b7f4e6f207472616e73666572732066726f6d205a65726f2077616c6c6574000000600082015250565b6000613475601d8361254e565b91506134808261343f565b602082019050919050565b600060208201905081810360008301526134a481613468565b9050919050565b6000819050919050565b6000819050919050565b60006134da6134d56134d0846134ab565b6134b5565b61265d565b9050919050565b6134ea816134bf565b82525050565b600060c0820190506135056000830189612709565b6135126020830188612733565b61351f60408301876134e1565b61352c60608301866134e1565b6135396080830185612709565b61354660a0830184612733565b979650505050505050565b60008060006060848603121561356a576135696125f5565b5b600061357886828701613326565b935050602061358986828701613326565b925050604061359a86828701613326565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006135de8261265d565b91506135e98361265d565b9250826135f9576135f86135a4565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136688161261f565b82525050565b600061367a838361365f565b60208301905092915050565b6000602082019050919050565b600061369e82613633565b6136a8818561363e565b93506136b38361364f565b8060005b838110156136e45781516136cb888261366e565b97506136d683613686565b9250506001810190506136b7565b5085935050505092915050565b600060a0820190506137066000830188612733565b61371360208301876134e1565b81810360408301526137258186613693565b90506137346060830185612709565b6137416080830184612733565b969550505050505056fea2646970667358221220f44ea5df9cb531c3f4edbf311f90d3f914d38348972915d924c5230a8f0c91c164736f6c63430008120033000000000000000000000000637b9d89c35fc0353a6f8145914aba52dbef2d8600000000000000000000000057dee27fdfe8cde4f693cc6980cae160b1eb673a000000000000000000000000530a91275a4916aa970ee47d09c19e092bfb928b

Deployed Bytecode

0x6080604052600436106101235760003560e01c806370a08231116100a0578063a9059cbb11610064578063a9059cbb146103d0578063dd62ed3e1461040d578063e086e5ec1461044a578063e8078d9414610454578063f4f3b2001461045e5761012a565b806370a08231146102fb578063715018a6146103385780638da5cb5b1461034f57806395d89b411461037a57806399c8d556146103a55761012a565b8063313ce567116100e7578063313ce5671461022a57806349bd5a5e146102555780635d098b381461028057806367243482146102a95780636c5735c0146102d25761012a565b806306fdde031461012f578063095ea7b31461015a5780631046128a1461019757806318160ddd146101c257806323b872dd146101ed5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610487565b60405161015191906125d3565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c9190612693565b6104c4565b60405161018e91906126ee565b60405180910390f35b3480156101a357600080fd5b506101ac6105b6565b6040516101b99190612718565b60405180910390f35b3480156101ce57600080fd5b506101d76105e0565b6040516101e49190612742565b60405180910390f35b3480156101f957600080fd5b50610214600480360381019061020f919061275d565b610605565b60405161022191906126ee565b60405180910390f35b34801561023657600080fd5b5061023f61080f565b60405161024c91906127cc565b60405180910390f35b34801561026157600080fd5b5061026a610818565b6040516102779190612718565b60405180910390f35b34801561028c57600080fd5b506102a760048036038101906102a291906127e7565b61083e565b005b3480156102b557600080fd5b506102d060048036038101906102cb91906128cf565b61094f565b005b3480156102de57600080fd5b506102f960048036038101906102f4919061297c565b610d47565b005b34801561030757600080fd5b50610322600480360381019061031d91906127e7565b610e30565b60405161032f9190612742565b60405180910390f35b34801561034457600080fd5b5061034d610e79565b005b34801561035b57600080fd5b50610364610f82565b6040516103719190612718565b60405180910390f35b34801561038657600080fd5b5061038f610fab565b60405161039c91906125d3565b60405180910390f35b3480156103b157600080fd5b506103ba610fe8565b6040516103c79190612742565b60405180910390f35b3480156103dc57600080fd5b506103f760048036038101906103f29190612693565b610ff2565b60405161040491906126ee565b60405180910390f35b34801561041957600080fd5b50610434600480360381019061042f91906129bc565b61104f565b6040516104419190612742565b60405180910390f35b6104526110d6565b005b61045c6111e6565b005b34801561046a57600080fd5b50610485600480360381019061048091906127e7565b611719565b005b60606040518060400160405280600481526020017f4a75616e00000000000000000000000000000000000000000000000000000000815250905090565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105a49190612742565b60405180910390a36001905092915050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006009600a6105f09190612b5e565b6461c9f368006106009190612ba9565b905090565b6000610610846118f4565b61064f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064690612c37565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146107fb5781600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461077a9190612c57565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61080684848461197a565b90509392505050565b60006009905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806108cc575061089d610f82565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61090b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090290612cfd565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d490612d69565b60405180910390fd5b60fa848490501115610a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1b90612dd5565b60405180910390fd5b818190508484905014610a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6390612e41565b60405180910390fd5b6000805b85859050811015610ab557838382818110610a8e57610a8d612e61565b5b9050602002013582610aa09190612e90565b91508080610aad90612ec4565b915050610a70565b5080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610b38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2f90612f58565b60405180910390fd5b60005b85859050811015610d0357838382818110610b5957610b58612e61565b5b90506020020135600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610bae9190612c57565b92505081905550838382818110610bc857610bc7612e61565b5b9050602002013560036000888885818110610be657610be5612e61565b5b9050602002016020810190610bfb91906127e7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610c449190612e90565b92505081905550858582818110610c5e57610c5d612e61565b5b9050602002016020810190610c7391906127e7565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef868685818110610cd457610cd3612e61565b5b90506020020135604051610ce89190612742565b60405180910390a38080610cfb90612ec4565b915050610b3b565b507f71cc7095cc35ed4701c217a8efb440732eb0737da67f6548c008ac26fba954648585905082604051610d38929190612f78565b60405180910390a15050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcc90612d69565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe90612d69565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610f789190612718565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4a55414e00000000000000000000000000000000000000000000000000000000815250905090565b6000600a54905090565b6000610ffd336118f4565b61103c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103390612c37565b60405180910390fd5b61104733848461197a565b905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115d90613013565b60405180910390fd5b6000611170610f82565b73ffffffffffffffffffffffffffffffffffffffff164760405161119390613064565b60006040518083038185875af1925050503d80600081146111d0576040519150601f19603f3d011682016040523d82523d6000602084013e6111d5565b606091505b50509050806111e357600080fd5b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611274576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126b90612d69565b60405180910390fd5b6001600b60016101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611320576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611317906130c5565b60405180910390fd5b600b60009054906101000a900460ff1615611370576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136790613131565b60405180910390fd5b600034118061137f5750600047115b6113be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b59061319d565b60405180910390fd5b6000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143790613209565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d1919061323e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561155a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157e919061323e565b6040518363ffffffff1660e01b815260040161159b92919061326b565b6020604051808303816000875af11580156115ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115de919061323e565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611667600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205447611c9c565b600160096000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60006101000a81548160ff0219169083151502179055506000600b60016101000a81548160ff021916908315150217905550565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a090613306565b60405180910390fd5b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016117e99190612718565b602060405180830381865afa158015611806573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182a919061333b565b905060008273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611869929190613368565b6020604051808303816000875af1158015611888573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ac91906133a6565b9050806118ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e59061341f565b60405180910390fd5b50505050565b60008060009050600b60009054906101000a900460ff16156119195760019050611971565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561197057600190505b5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036119ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e19061348b565b60405180910390fd5b600b60009054906101000a900460ff16611a8b57600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8190612c37565b60405180910390fd5b5b600b60019054906101000a900460ff16158015611af15750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611aff57611afe611d76565b5b6000611b0c858585611fa6565b905060008184611b1c9190612c57565b905083600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b6d9190612c57565b925050819055506000821115611bd45781600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611bcc9190612e90565b925050819055505b80600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c239190612e90565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051611c879190612742565b60405180910390a36001925050509392505050565b611ca58261213a565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401611d2c969594939291906134f0565b60606040518083038185885af1158015611d4a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d6f9190613551565b5050505050565b6001600b60016101000a81548160ff0219169083151502179055506000611d9c30610e30565b905062030d406009600a611db09190612b5e565b6461c9f36800611dc09190612ba9565b611dca91906135d3565b8110158015611de55750600b60009054906101000a900460ff165b15611f88576103e86009600a611dfb9190612b5e565b6461c9f36800611e0b9190612ba9565b611e1591906135d3565b8110611e49576103e86009600a611e2c9190612b5e565b6461c9f36800611e3c9190612ba9565b611e4691906135d3565b90505b6000600882611e5891906135d3565b905060008183611e689190612c57565b90506009600a611e789190612b5e565b6107d0611e859190612ba9565b811115611edc576000479050611e9a82612324565b60008147611ea89190612c57565b90506000841115611ed9576000600782611ec291906135d3565b9050611ecd8561213a565b611ed78582611c9c565b505b50505b60004790506000811115611f84576000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611f3290613064565b60006040518083038185875af1925050503d8060008114611f6f576040519150601f19603f3d011682016040523d82523d6000602084013e611f74565b606091505b5050905080611f8257600080fd5b505b5050505b506000600b60016101000a81548160ff021916908315150217905550565b600080600b60009054906101000a900460ff16801561200f5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120655750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561212f57600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061210b5750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561212e57612710600a54846121219190612ba9565b61212b91906135d3565b90505b5b809150509392505050565b80600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612321577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040516123189190612742565b60405180910390a35b50565b61232d8161213a565b6000600267ffffffffffffffff81111561234a57612349613604565b5b6040519080825280602002602001820160405280156123785781602001602082028036833780820191505090505b50905030816000815181106123905761238f612e61565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612437573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061245b919061323e565b8160018151811061246f5761246e612e61565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161250d9594939291906136f1565b600060405180830381600087803b15801561252757600080fd5b505af115801561253b573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561257d578082015181840152602081019050612562565b60008484015250505050565b6000601f19601f8301169050919050565b60006125a582612543565b6125af818561254e565b93506125bf81856020860161255f565b6125c881612589565b840191505092915050565b600060208201905081810360008301526125ed818461259a565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061262a826125ff565b9050919050565b61263a8161261f565b811461264557600080fd5b50565b60008135905061265781612631565b92915050565b6000819050919050565b6126708161265d565b811461267b57600080fd5b50565b60008135905061268d81612667565b92915050565b600080604083850312156126aa576126a96125f5565b5b60006126b885828601612648565b92505060206126c98582860161267e565b9150509250929050565b60008115159050919050565b6126e8816126d3565b82525050565b600060208201905061270360008301846126df565b92915050565b6127128161261f565b82525050565b600060208201905061272d6000830184612709565b92915050565b61273c8161265d565b82525050565b60006020820190506127576000830184612733565b92915050565b600080600060608486031215612776576127756125f5565b5b600061278486828701612648565b935050602061279586828701612648565b92505060406127a68682870161267e565b9150509250925092565b600060ff82169050919050565b6127c6816127b0565b82525050565b60006020820190506127e160008301846127bd565b92915050565b6000602082840312156127fd576127fc6125f5565b5b600061280b84828501612648565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261283957612838612814565b5b8235905067ffffffffffffffff81111561285657612855612819565b5b6020830191508360208202830111156128725761287161281e565b5b9250929050565b60008083601f84011261288f5761288e612814565b5b8235905067ffffffffffffffff8111156128ac576128ab612819565b5b6020830191508360208202830111156128c8576128c761281e565b5b9250929050565b600080600080604085870312156128e9576128e86125f5565b5b600085013567ffffffffffffffff811115612907576129066125fa565b5b61291387828801612823565b9450945050602085013567ffffffffffffffff811115612936576129356125fa565b5b61294287828801612879565b925092505092959194509250565b612959816126d3565b811461296457600080fd5b50565b60008135905061297681612950565b92915050565b60008060408385031215612993576129926125f5565b5b60006129a185828601612648565b92505060206129b285828601612967565b9150509250929050565b600080604083850312156129d3576129d26125f5565b5b60006129e185828601612648565b92505060206129f285828601612648565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612a8257808604811115612a5e57612a5d6129fc565b5b6001851615612a6d5780820291505b8081029050612a7b85612a2b565b9450612a42565b94509492505050565b600082612a9b5760019050612b57565b81612aa95760009050612b57565b8160018114612abf5760028114612ac957612af8565b6001915050612b57565b60ff841115612adb57612ada6129fc565b5b8360020a915084821115612af257612af16129fc565b5b50612b57565b5060208310610133831016604e8410600b8410161715612b2d5782820a905083811115612b2857612b276129fc565b5b612b57565b612b3a8484846001612a38565b92509050818404811115612b5157612b506129fc565b5b81810290505b9392505050565b6000612b698261265d565b9150612b74836127b0565b9250612ba17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a8b565b905092915050565b6000612bb48261265d565b9150612bbf8361265d565b9250828202612bcd8161265d565b91508282048414831517612be457612be36129fc565b5b5092915050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000612c2160108361254e565b9150612c2c82612beb565b602082019050919050565b60006020820190508181036000830152612c5081612c14565b9050919050565b6000612c628261265d565b9150612c6d8361265d565b9250828203905081811115612c8557612c846129fc565b5b92915050565b7f6f6e6c79206d61726b6574696e672077616c6c65742063616e206368616e676560008201527f204d570000000000000000000000000000000000000000000000000000000000602082015250565b6000612ce760238361254e565b9150612cf282612c8b565b604082019050919050565b60006020820190508181036000830152612d1681612cda565b9050919050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000600082015250565b6000612d5360188361254e565b9150612d5e82612d1d565b602082019050919050565b60006020820190508181036000830152612d8281612d46565b9050919050565b7f4d6f7265207468616e203235302077616c6c6574730000000000000000000000600082015250565b6000612dbf60158361254e565b9150612dca82612d89565b602082019050919050565b60006020820190508181036000830152612dee81612db2565b9050919050565b7f4c697374206c656e677468206d69736d61746368000000000000000000000000600082015250565b6000612e2b60148361254e565b9150612e3682612df5565b602082019050919050565b60006020820190508181036000830152612e5a81612e1e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612e9b8261265d565b9150612ea68361265d565b9250828201905080821115612ebe57612ebd6129fc565b5b92915050565b6000612ecf8261265d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f0157612f006129fc565b5b600182019050919050565b7f546f6b656e2062616c616e636520746f6f206c6f770000000000000000000000600082015250565b6000612f4260158361254e565b9150612f4d82612f0c565b602082019050919050565b60006020820190508181036000830152612f7181612f35565b9050919050565b6000604082019050612f8d6000830185612733565b612f9a6020830184612733565b9392505050565b7f6f6e6c792063726561746f722063616e20776974686472617720737475636b2060008201527f4554480000000000000000000000000000000000000000000000000000000000602082015250565b6000612ffd60238361254e565b915061300882612fa1565b604082019050919050565b6000602082019050818103600083015261302c81612ff0565b9050919050565b600081905092915050565b50565b600061304e600083613033565b91506130598261303e565b600082019050919050565b600061306f82613041565b9150819050919050565b7f4c50206578697374730000000000000000000000000000000000000000000000600082015250565b60006130af60098361254e565b91506130ba82613079565b602082019050919050565b600060208201905081810360008301526130de816130a2565b9050919050565b7f74726164696e67206973206f70656e0000000000000000000000000000000000600082015250565b600061311b600f8361254e565b9150613126826130e5565b602082019050919050565b6000602082019050818103600083015261314a8161310e565b9050919050565b7f4e6f2045544820696e20636f6e7472616374206f72206d657373616765000000600082015250565b6000613187601d8361254e565b915061319282613151565b602082019050919050565b600060208201905081810360008301526131b68161317a565b9050919050565b7f4e6f20746f6b656e7320696e20636f6e74726163740000000000000000000000600082015250565b60006131f360158361254e565b91506131fe826131bd565b602082019050919050565b60006020820190508181036000830152613222816131e6565b9050919050565b60008151905061323881612631565b92915050565b600060208284031215613254576132536125f5565b5b600061326284828501613229565b91505092915050565b60006040820190506132806000830185612709565b61328d6020830184612709565b9392505050565b7f6f6e6c792063726561746f722063616e20776974686472617720737475636b2060008201527f4552433230000000000000000000000000000000000000000000000000000000602082015250565b60006132f060258361254e565b91506132fb82613294565b604082019050919050565b6000602082019050818103600083015261331f816132e3565b9050919050565b60008151905061333581612667565b92915050565b600060208284031215613351576133506125f5565b5b600061335f84828501613326565b91505092915050565b600060408201905061337d6000830185612709565b61338a6020830184612733565b9392505050565b6000815190506133a081612950565b92915050565b6000602082840312156133bc576133bb6125f5565b5b60006133ca84828501613391565b91505092915050565b7f5472616e73666572206661696c65640000000000000000000000000000000000600082015250565b6000613409600f8361254e565b9150613414826133d3565b602082019050919050565b60006020820190508181036000830152613438816133fc565b9050919050565b7f4e6f207472616e73666572732066726f6d205a65726f2077616c6c6574000000600082015250565b6000613475601d8361254e565b91506134808261343f565b602082019050919050565b600060208201905081810360008301526134a481613468565b9050919050565b6000819050919050565b6000819050919050565b60006134da6134d56134d0846134ab565b6134b5565b61265d565b9050919050565b6134ea816134bf565b82525050565b600060c0820190506135056000830189612709565b6135126020830188612733565b61351f60408301876134e1565b61352c60608301866134e1565b6135396080830185612709565b61354660a0830184612733565b979650505050505050565b60008060006060848603121561356a576135696125f5565b5b600061357886828701613326565b935050602061358986828701613326565b925050604061359a86828701613326565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006135de8261265d565b91506135e98361265d565b9250826135f9576135f86135a4565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136688161261f565b82525050565b600061367a838361365f565b60208301905092915050565b6000602082019050919050565b600061369e82613633565b6136a8818561363e565b93506136b38361364f565b8060005b838110156136e45781516136cb888261366e565b97506136d683613686565b9250506001810190506136b7565b5085935050505092915050565b600060a0820190506137066000830188612733565b61371360208301876134e1565b81810360408301526137258186613693565b90506137346060830185612709565b6137416080830184612733565b969550505050505056fea2646970667358221220f44ea5df9cb531c3f4edbf311f90d3f914d38348972915d924c5230a8f0c91c164736f6c63430008120033

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

000000000000000000000000637b9d89c35fc0353a6f8145914aba52dbef2d8600000000000000000000000057dee27fdfe8cde4f693cc6980cae160b1eb673a000000000000000000000000530a91275a4916aa970ee47d09c19e092bfb928b

-----Decoded View---------------
Arg [0] : communityWallet (address): 0x637B9d89c35Fc0353A6F8145914aBa52dbef2d86
Arg [1] : cexWallet (address): 0x57Dee27fdFe8Cde4F693cc6980CaE160B1EB673A
Arg [2] : marketingWallet (address): 0x530A91275A4916AA970Ee47d09c19e092bfb928B

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000637b9d89c35fc0353a6f8145914aba52dbef2d86
Arg [1] : 00000000000000000000000057dee27fdfe8cde4f693cc6980cae160b1eb673a
Arg [2] : 000000000000000000000000530a91275a4916aa970ee47d09c19e092bfb928b


Deployed Bytecode Sourcemap

2048:11155:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5172:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5510:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9424:103;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4902:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5967:404;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4996:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2349:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9174:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12396:804;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9056:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5258:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1904:137;;;;;;;;;;;;;:::i;:::-;;1833:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5082:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8581:77;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5734:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5369:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11549:224;;;:::i;:::-;;7439:606;;;:::i;:::-;;12007:347;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5172:80;5220:13;5244:5;;;;;;;;;;;;;;;;;5237:12;;5172:80;:::o;5510:216::-;5585:4;5637:6;5602:11;:23;5614:10;5602:23;;;;;;;;;;;;;;;:32;5626:7;5602:32;;;;;;;;;;;;;;;:41;;;;5680:7;5659:37;;5668:10;5659:37;;;5689:6;5659:37;;;;;;:::i;:::-;;;;;;;;5714:4;5707:11;;5510:216;;;;:::o;9424:103::-;9476:7;9503:16;;;;;;;;;;;9496:23;;9424:103;:::o;4902:88::-;4957:7;2231:1;2298:2;:13;;;;:::i;:::-;2279:15;:33;;;;:::i;:::-;4968:19;;4902:88;:::o;5967:404::-;6067:4;6092:25;6110:6;6092:17;:25::i;:::-;6084:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;6187:17;6152:11;:19;6164:6;6152:19;;;;;;;;;;;;;;;:31;6172:10;6152:31;;;;;;;;;;;;;;;;:52;6149:157;;6288:6;6254:11;:19;6266:6;6254:19;;;;;;;;;;;;;;;:31;6274:10;6254:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;6220:11;:19;6232:6;6220:19;;;;;;;;;;;;;;;:31;6240:10;6220:31;;;;;;;;;;;;;;;:74;;;;6149:157;6323:40;6337:6;6345:9;6356:6;6323:13;:40::i;:::-;6316:47;;5967:404;;;;;:::o;4996:80::-;5048:5;2231:1;5057:16;;4996:80;:::o;2349:28::-;;;;;;;;;;;;;:::o;9174:242::-;9270:16;;;;;;;;;;;9256:30;;:10;:30;;;:55;;;;9304:7;:5;:7::i;:::-;9290:21;;:10;:21;;;9256:55;9248:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;9389:18;9362:16;;:46;;;;;;;;;;;;;;;;;;9174:242;:::o;12396:804::-;1786:6;;;;;;;;;;1772:20;;:10;:20;;;1764:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;12534:3:::1;12514:9;;:16;;:23;;12506:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;12601:12;;:19;;12581:9;;:16;;:39;12573:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12657:20;12696:6:::0;12692:98:::1;12710:9;;:16;;12706:1;:20;12692:98;;;12763:12;;12776:1;12763:15;;;;;;;:::i;:::-;;;;;;;;12747:31;;;;;:::i;:::-;;;12728:3;;;;;:::i;:::-;;;;12692:98;;;;12833:12;12808:9;:21;12818:10;12808:21;;;;;;;;;;;;;;;;:37;;12800:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12888:6;12884:243;12902:9;;:16;;12898:1;:20;12884:243;;;12964:12;;12977:1;12964:15;;;;;;;:::i;:::-;;;;;;;;12939:9;:21;12949:10;12939:21;;;;;;;;;;;;;;;;:40;;;;;;;:::i;:::-;;;;;;;;13021:12;;13034:1;13021:15;;;;;;;:::i;:::-;;;;;;;;12994:9;:23;13004:9;;13014:1;13004:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12994:23;;;;;;;;;;;;;;;;:42;;;;;;;:::i;:::-;;;;;;;;13077:9;;13087:1;13077:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;13056:52;;13065:10;13056:52;;;13091:12;;13104:1;13091:15;;;;;;;:::i;:::-;;;;;;;;13056:52;;;;;;:::i;:::-;;;;;;;;12920:3;;;;;:::i;:::-;;;;12884:243;;;;13144:48;13161:9;;:16;;13179:12;13144:48;;;;;;;:::i;:::-;;;;;;;;12495:705;12396:804:::0;;;;:::o;9056:110::-;1786:6;;;;;;;;;;1772:20;;:10;:20;;;1764:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;9152:6:::1;9134:7;:15;9142:6;9134:15;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;9056:110:::0;;:::o;5258:105::-;5324:7;5342:9;:18;5352:7;5342:18;;;;;;;;;;;;;;;;5335:25;;5258:105;;;:::o;1904:137::-;1786:6;;;;;;;;;;1772:20;;:10;:20;;;1764:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;1981:1:::1;1964:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2000:32;2029:1;2000:32;;;;;;:::i;:::-;;;;;;;;1904:137::o:0;1833:65::-;1871:7;1889:6;;;;;;;;;;;1882:13;;1833:65;:::o;5082:84::-;5132:13;5156:7;;;;;;;;;;;;;;;;;5149:14;;5082:84;:::o;8581:77::-;8619:7;8646:4;;8639:11;;8581:77;:::o;5734:225::-;5814:4;5839:29;5857:10;5839:17;:29::i;:::-;5831:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;5907:44;5921:10;5933:9;5944:6;5907:13;:44::i;:::-;5900:51;;5734:225;;;;:::o;5369:133::-;5453:7;5471:11;:19;5483:6;5471:19;;;;;;;;;;;;;;;:28;5491:7;5471:28;;;;;;;;;;;;;;;;5464:35;;5369:133;;;;:::o;11549:224::-;11620:7;;;;;;;;;;;11606:21;;:10;:21;;;11598:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;11677:7;11698;:5;:7::i;:::-;11690:21;;11719;11690:55;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11676:69;;;11762:2;11754:11;;;;;;11589:184;11549:224::o;7439:606::-;1786:6;;;;;;;;;;1772:20;;:10;:20;;;1764:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;3181:4:::1;3168:10;;:17;;;;;;;;;;;;;;;;;;7543:1:::2;7521:24;;:10;;;;;;;;;;;:24;;;7513:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;7579:12;;;;;;;;;;;7578:13;7570:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;7642:1;7630:9;:13;:40;;;;7669:1;7647:21;:23;7630:40;7622:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;7748:1;7723:9;:24;7741:4;7723:24;;;;;;;;;;;;;;;;:26;7715:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7817:18;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7799:58;;;7866:4;7873:18;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7799:100;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7786:10;;:113;;;;;;;;;;;;;;;;;;7910:62;7924:9;:24;7942:4;7924:24;;;;;;;;;;;;;;;;7950:21;7910:13;:62::i;:::-;8003:4;7983:5;:17;7989:10;;;;;;;;;;;7983:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;8033:4;8018:12;;:19;;;;;;;;;;;;;;;;;;3223:5:::1;3210:10;;:18;;;;;;;;;;;;;;;;;;7439:606::o:0;12007:347::-;12085:7;;;;;;;;;;;12071:21;;:10;:21;;;12063:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12143:17;12170:5;12143:33;;12185:15;12203:10;:20;;;12232:4;12203:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12185:53;;12247:12;12262:10;:19;;;12282:10;12294:7;12262:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12247:55;;12319:7;12311:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;12054:300;;;12007:347;:::o;8315:258::-;8380:4;8396:16;8415:5;8396:24;;8436:12;;;;;;;;;;;8431:103;;;8467:4;8453:18;;8431:103;;;8494:7;:15;8502:6;8494:15;;;;;;;;;;;;;;;;;;;;;;;;;8490:44;;;8527:4;8513:18;;8490:44;8431:103;8554:11;8547:18;;;8315:258;;;:::o;6379:723::-;6471:4;6514:1;6496:20;;:6;:20;;;6488:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;6568:12;;;;;;;;;;;6563:68;;6592:7;:15;6600:6;6592:15;;;;;;;;;;;;;;;;;;;;;;;;;6584:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;6563:68;6647:10;;;;;;;;;;;6646:11;:31;;;;;6661:5;:16;6667:9;6661:16;;;;;;;;;;;;;;;;;;;;;;;;;6646:31;6641:64;;;6682:20;:18;:20::i;:::-;6641:64;6717:18;6738:40;6752:6;6760:9;6771:6;6738:13;:40::i;:::-;6717:61;;6789:23;6824:10;6815:6;:19;;;;:::i;:::-;6789:45;;6866:6;6845:9;:17;6855:6;6845:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;6901:1;6888:10;:14;6883:89;;;6949:10;6921:9;:24;6939:4;6921:24;;;;;;;;;;;;;;;;:38;;;;;;;:::i;:::-;;;;;;;;6883:89;7006:15;6982:9;:20;6992:9;6982:20;;;;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;;;;;7054:9;7037:35;;7046:6;7037:35;;;7065:6;7037:35;;;;;;:::i;:::-;;;;;;;;7090:4;7083:11;;;;6379:723;;;;;:::o;8053:254::-;8141:28;8156:12;8141:14;:28::i;:::-;8180:18;;;;;;;;;;;:34;;;8222:13;8247:4;8254:12;8268:1;8271;8274:6;;;;;;;;;;8282:15;8180:119;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;8053:254;;:::o;9535:1465::-;3181:4;3168:10;;:17;;;;;;;;;;;;;;;;;;9596:27:::1;9626:24;9644:4;9626:9;:24::i;:::-;9596:54;;2666:6;2231:1;2298:2;:13;;;;:::i;:::-;2279:15;:33;;;;:::i;:::-;2651:21;;;;:::i;:::-;9668:19;:34;;:50;;;;;9706:12;;;;;;;;;;;9668:50;9663:1330;;;2733:4;2231:1;2298:2;:13;;;;:::i;:::-;2279:15;:33;;;;:::i;:::-;2718:19;;;;:::i;:::-;9741;:34;9736:80;;2733:4;2231:1;2298:2;:13;;;;:::i;:::-;2279:15;:33;;;;:::i;:::-;2718:19;;;;:::i;:::-;9780:33;;9736:80;9926:21;9972:1;9950:19;:23;;;;:::i;:::-;9926:47;;10042:21;10088:12;10066:19;:34;;;;:::i;:::-;10042:58;;2231:1;10142:2;:13;;;;:::i;:::-;10135:4;:20;;;;:::i;:::-;10119:13;:36;10115:623;;;10308:19;10330:21;10308:43;;10370:35;10391:13;10370:20;:35::i;:::-;10424:19;10470:11;10446:21;:35;;;;:::i;:::-;10424:57;;10520:1;10505:12;:16;10500:223;;;10547:21;10585:1;10571:11;:15;;;;:::i;:::-;10547:39;;10610:28;10625:12;10610:14;:28::i;:::-;10661:42;10675:12;10689:13;10661;:42::i;:::-;10524:199;10500:223;10158:580;;10115:623;10752:27;10782:21;10752:51;;10843:1;10821:19;:23;10818:164;;;10867:9;10881:16;;;;;;;;;;;:21;;10910:19;10881:53;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10866:68;;;10961:4;10953:13;;;::::0;::::1;;10846:136;10818:164;9721:1272;;;9663:1330;9585:1415;3223:5:::0;3210:10;;:18;;;;;;;;;;;;;;;;;;9535:1465::o;8666:382::-;8763:7;8785:17;8818:12;;;;;;;;;;;:32;;;;;8835:7;:15;8843:6;8835:15;;;;;;;;;;;;;;;;;;;;;;;;;8834:16;8818:32;:55;;;;;8855:7;:18;8863:9;8855:18;;;;;;;;;;;;;;;;;;;;;;;;;8854:19;8818:55;8813:199;;;8897:5;:13;8903:6;8897:13;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;;8914:5;:16;8920:9;8914:16;;;;;;;;;;;;;;;;;;;;;;;;;8897:33;8892:109;;;8980:5;8973:4;;8964:6;:13;;;;:::i;:::-;:21;;;;:::i;:::-;8952:33;;8892:109;8813:199;9031:9;9024:16;;;8666:382;;;;;:::o;7114:317::-;7234:12;7185:11;:26;7205:4;7185:26;;;;;;;;;;;;;;;:46;2802:42;7185:46;;;;;;;;;;;;;;;;:61;7180:244;;;7313:17;7264:11;:26;7284:4;7264:26;;;;;;;;;;;;;;;:46;2802:42;7264:46;;;;;;;;;;;;;;;:66;;;;2802:42;7350:62;;7367:4;7350:62;;;7394:17;7350:62;;;;;;:::i;:::-;;;;;;;;7180:244;7114:317;:::o;11008:366::-;11078:27;11093:11;11078:14;:27::i;:::-;11116:21;11154:1;11140:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11116:40;;11185:4;11167;11172:1;11167:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;11211:18;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11201:4;11206:1;11201:7;;;;;;;;:::i;:::-;;;;;;;:35;;;;;;;;;;;11247:18;;;;;;;;;;;:69;;;11317:11;11329:1;11331:4;11344;11350:15;11247:119;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11067:307;11008:366;:::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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:118::-;3885:24;3903:5;3885:24;:::i;:::-;3880:3;3873:37;3798:118;;:::o;3922:222::-;4015:4;4053:2;4042:9;4038:18;4030:26;;4066:71;4134:1;4123:9;4119:17;4110:6;4066:71;:::i;:::-;3922:222;;;;:::o;4150:619::-;4227:6;4235;4243;4292:2;4280:9;4271:7;4267:23;4263:32;4260:119;;;4298:79;;:::i;:::-;4260:119;4418:1;4443:53;4488:7;4479:6;4468:9;4464:22;4443:53;:::i;:::-;4433:63;;4389:117;4545:2;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4516:118;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4150:619;;;;;:::o;4775:86::-;4810:7;4850:4;4843:5;4839:16;4828:27;;4775:86;;;:::o;4867:112::-;4950:22;4966:5;4950:22;:::i;:::-;4945:3;4938:35;4867:112;;:::o;4985:214::-;5074:4;5112:2;5101:9;5097:18;5089:26;;5125:67;5189:1;5178:9;5174:17;5165:6;5125:67;:::i;:::-;4985:214;;;;:::o;5205:329::-;5264:6;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5205:329;;;;:::o;5540:117::-;5649:1;5646;5639:12;5663:117;5772:1;5769;5762:12;5786:117;5895:1;5892;5885:12;5926:568;5999:8;6009:6;6059:3;6052:4;6044:6;6040:17;6036:27;6026:122;;6067:79;;:::i;:::-;6026:122;6180:6;6167:20;6157:30;;6210:18;6202:6;6199:30;6196:117;;;6232:79;;:::i;:::-;6196:117;6346:4;6338:6;6334:17;6322:29;;6400:3;6392:4;6384:6;6380:17;6370:8;6366:32;6363:41;6360:128;;;6407:79;;:::i;:::-;6360:128;5926:568;;;;;:::o;6517:::-;6590:8;6600:6;6650:3;6643:4;6635:6;6631:17;6627:27;6617:122;;6658:79;;:::i;:::-;6617:122;6771:6;6758:20;6748:30;;6801:18;6793:6;6790:30;6787:117;;;6823:79;;:::i;:::-;6787:117;6937:4;6929:6;6925:17;6913:29;;6991:3;6983:4;6975:6;6971:17;6961:8;6957:32;6954:41;6951:128;;;6998:79;;:::i;:::-;6951:128;6517:568;;;;;:::o;7091:934::-;7213:6;7221;7229;7237;7286:2;7274:9;7265:7;7261:23;7257:32;7254:119;;;7292:79;;:::i;:::-;7254:119;7440:1;7429:9;7425:17;7412:31;7470:18;7462:6;7459:30;7456:117;;;7492:79;;:::i;:::-;7456:117;7605:80;7677:7;7668:6;7657:9;7653:22;7605:80;:::i;:::-;7587:98;;;;7383:312;7762:2;7751:9;7747:18;7734:32;7793:18;7785:6;7782:30;7779:117;;;7815:79;;:::i;:::-;7779:117;7928:80;8000:7;7991:6;7980:9;7976:22;7928:80;:::i;:::-;7910:98;;;;7705:313;7091:934;;;;;;;:::o;8031:116::-;8101:21;8116:5;8101:21;:::i;:::-;8094:5;8091:32;8081:60;;8137:1;8134;8127:12;8081:60;8031:116;:::o;8153:133::-;8196:5;8234:6;8221:20;8212:29;;8250:30;8274:5;8250:30;:::i;:::-;8153:133;;;;:::o;8292:468::-;8357:6;8365;8414:2;8402:9;8393:7;8389:23;8385:32;8382:119;;;8420:79;;:::i;:::-;8382:119;8540:1;8565:53;8610:7;8601:6;8590:9;8586:22;8565:53;:::i;:::-;8555:63;;8511:117;8667:2;8693:50;8735:7;8726:6;8715:9;8711:22;8693:50;:::i;:::-;8683:60;;8638:115;8292:468;;;;;:::o;8766:474::-;8834:6;8842;8891:2;8879:9;8870:7;8866:23;8862:32;8859:119;;;8897:79;;:::i;:::-;8859:119;9017:1;9042:53;9087:7;9078:6;9067:9;9063:22;9042:53;:::i;:::-;9032:63;;8988:117;9144:2;9170:53;9215:7;9206:6;9195:9;9191:22;9170:53;:::i;:::-;9160:63;;9115:118;8766:474;;;;;:::o;9246:180::-;9294:77;9291:1;9284:88;9391:4;9388:1;9381:15;9415:4;9412:1;9405:15;9432:102;9474:8;9521:5;9518:1;9514:13;9493:34;;9432:102;;;:::o;9540:848::-;9601:5;9608:4;9632:6;9623:15;;9656:5;9647:14;;9670:712;9691:1;9681:8;9678:15;9670:712;;;9786:4;9781:3;9777:14;9771:4;9768:24;9765:50;;;9795:18;;:::i;:::-;9765:50;9845:1;9835:8;9831:16;9828:451;;;10260:4;10253:5;10249:16;10240:25;;9828:451;10310:4;10304;10300:15;10292:23;;10340:32;10363:8;10340:32;:::i;:::-;10328:44;;9670:712;;;9540:848;;;;;;;:::o;10394:1073::-;10448:5;10639:8;10629:40;;10660:1;10651:10;;10662:5;;10629:40;10688:4;10678:36;;10705:1;10696:10;;10707:5;;10678:36;10774:4;10822:1;10817:27;;;;10858:1;10853:191;;;;10767:277;;10817:27;10835:1;10826:10;;10837:5;;;10853:191;10898:3;10888:8;10885:17;10882:43;;;10905:18;;:::i;:::-;10882:43;10954:8;10951:1;10947:16;10938:25;;10989:3;10982:5;10979:14;10976:40;;;10996:18;;:::i;:::-;10976:40;11029:5;;;10767:277;;11153:2;11143:8;11140:16;11134:3;11128:4;11125:13;11121:36;11103:2;11093:8;11090:16;11085:2;11079:4;11076:12;11072:35;11056:111;11053:246;;;11209:8;11203:4;11199:19;11190:28;;11244:3;11237:5;11234:14;11231:40;;;11251:18;;:::i;:::-;11231:40;11284:5;;11053:246;11324:42;11362:3;11352:8;11346:4;11343:1;11324:42;:::i;:::-;11309:57;;;;11398:4;11393:3;11389:14;11382:5;11379:25;11376:51;;;11407:18;;:::i;:::-;11376:51;11456:4;11449:5;11445:16;11436:25;;10394:1073;;;;;;:::o;11473:281::-;11531:5;11555:23;11573:4;11555:23;:::i;:::-;11547:31;;11599:25;11615:8;11599:25;:::i;:::-;11587:37;;11643:104;11680:66;11670:8;11664:4;11643:104;:::i;:::-;11634:113;;11473:281;;;;:::o;11760:410::-;11800:7;11823:20;11841:1;11823:20;:::i;:::-;11818:25;;11857:20;11875:1;11857:20;:::i;:::-;11852:25;;11912:1;11909;11905:9;11934:30;11952:11;11934:30;:::i;:::-;11923:41;;12113:1;12104:7;12100:15;12097:1;12094:22;12074:1;12067:9;12047:83;12024:139;;12143:18;;:::i;:::-;12024:139;11808:362;11760:410;;;;:::o;12176:166::-;12316:18;12312:1;12304:6;12300:14;12293:42;12176:166;:::o;12348:366::-;12490:3;12511:67;12575:2;12570:3;12511:67;:::i;:::-;12504:74;;12587:93;12676:3;12587:93;:::i;:::-;12705:2;12700:3;12696:12;12689:19;;12348:366;;;:::o;12720:419::-;12886:4;12924:2;12913:9;12909:18;12901:26;;12973:9;12967:4;12963:20;12959:1;12948:9;12944:17;12937:47;13001:131;13127:4;13001:131;:::i;:::-;12993:139;;12720:419;;;:::o;13145:194::-;13185:4;13205:20;13223:1;13205:20;:::i;:::-;13200:25;;13239:20;13257:1;13239:20;:::i;:::-;13234:25;;13283:1;13280;13276:9;13268:17;;13307:1;13301:4;13298:11;13295:37;;;13312:18;;:::i;:::-;13295:37;13145:194;;;;:::o;13345:222::-;13485:34;13481:1;13473:6;13469:14;13462:58;13554:5;13549:2;13541:6;13537:15;13530:30;13345:222;:::o;13573:366::-;13715:3;13736:67;13800:2;13795:3;13736:67;:::i;:::-;13729:74;;13812:93;13901:3;13812:93;:::i;:::-;13930:2;13925:3;13921:12;13914:19;;13573:366;;;:::o;13945:419::-;14111:4;14149:2;14138:9;14134:18;14126:26;;14198:9;14192:4;14188:20;14184:1;14173:9;14169:17;14162:47;14226:131;14352:4;14226:131;:::i;:::-;14218:139;;13945:419;;;:::o;14370:174::-;14510:26;14506:1;14498:6;14494:14;14487:50;14370:174;:::o;14550:366::-;14692:3;14713:67;14777:2;14772:3;14713:67;:::i;:::-;14706:74;;14789:93;14878:3;14789:93;:::i;:::-;14907:2;14902:3;14898:12;14891:19;;14550:366;;;:::o;14922:419::-;15088:4;15126:2;15115:9;15111:18;15103:26;;15175:9;15169:4;15165:20;15161:1;15150:9;15146:17;15139:47;15203:131;15329:4;15203:131;:::i;:::-;15195:139;;14922:419;;;:::o;15347:171::-;15487:23;15483:1;15475:6;15471:14;15464:47;15347:171;:::o;15524:366::-;15666:3;15687:67;15751:2;15746:3;15687:67;:::i;:::-;15680:74;;15763:93;15852:3;15763:93;:::i;:::-;15881:2;15876:3;15872:12;15865:19;;15524:366;;;:::o;15896:419::-;16062:4;16100:2;16089:9;16085:18;16077:26;;16149:9;16143:4;16139:20;16135:1;16124:9;16120:17;16113:47;16177:131;16303:4;16177:131;:::i;:::-;16169:139;;15896:419;;;:::o;16321:170::-;16461:22;16457:1;16449:6;16445:14;16438:46;16321:170;:::o;16497:366::-;16639:3;16660:67;16724:2;16719:3;16660:67;:::i;:::-;16653:74;;16736:93;16825:3;16736:93;:::i;:::-;16854:2;16849:3;16845:12;16838:19;;16497:366;;;:::o;16869:419::-;17035:4;17073:2;17062:9;17058:18;17050:26;;17122:9;17116:4;17112:20;17108:1;17097:9;17093:17;17086:47;17150:131;17276:4;17150:131;:::i;:::-;17142:139;;16869:419;;;:::o;17294:180::-;17342:77;17339:1;17332:88;17439:4;17436:1;17429:15;17463:4;17460:1;17453:15;17480:191;17520:3;17539:20;17557:1;17539:20;:::i;:::-;17534:25;;17573:20;17591:1;17573:20;:::i;:::-;17568:25;;17616:1;17613;17609:9;17602:16;;17637:3;17634:1;17631:10;17628:36;;;17644:18;;:::i;:::-;17628:36;17480:191;;;;:::o;17677:233::-;17716:3;17739:24;17757:5;17739:24;:::i;:::-;17730:33;;17785:66;17778:5;17775:77;17772:103;;17855:18;;:::i;:::-;17772:103;17902:1;17895:5;17891:13;17884:20;;17677:233;;;:::o;17916:171::-;18056:23;18052:1;18044:6;18040:14;18033:47;17916:171;:::o;18093:366::-;18235:3;18256:67;18320:2;18315:3;18256:67;:::i;:::-;18249:74;;18332:93;18421:3;18332:93;:::i;:::-;18450:2;18445:3;18441:12;18434:19;;18093:366;;;:::o;18465:419::-;18631:4;18669:2;18658:9;18654:18;18646:26;;18718:9;18712:4;18708:20;18704:1;18693:9;18689:17;18682:47;18746:131;18872:4;18746:131;:::i;:::-;18738:139;;18465:419;;;:::o;18890:332::-;19011:4;19049:2;19038:9;19034:18;19026:26;;19062:71;19130:1;19119:9;19115:17;19106:6;19062:71;:::i;:::-;19143:72;19211:2;19200:9;19196:18;19187:6;19143:72;:::i;:::-;18890:332;;;;;:::o;19228:222::-;19368:34;19364:1;19356:6;19352:14;19345:58;19437:5;19432:2;19424:6;19420:15;19413:30;19228:222;:::o;19456:366::-;19598:3;19619:67;19683:2;19678:3;19619:67;:::i;:::-;19612:74;;19695:93;19784:3;19695:93;:::i;:::-;19813:2;19808:3;19804:12;19797:19;;19456:366;;;:::o;19828:419::-;19994:4;20032:2;20021:9;20017:18;20009:26;;20081:9;20075:4;20071:20;20067:1;20056:9;20052:17;20045:47;20109:131;20235:4;20109:131;:::i;:::-;20101:139;;19828:419;;;:::o;20253:147::-;20354:11;20391:3;20376:18;;20253:147;;;;:::o;20406:114::-;;:::o;20526:398::-;20685:3;20706:83;20787:1;20782:3;20706:83;:::i;:::-;20699:90;;20798:93;20887:3;20798:93;:::i;:::-;20916:1;20911:3;20907:11;20900:18;;20526:398;;;:::o;20930:379::-;21114:3;21136:147;21279:3;21136:147;:::i;:::-;21129:154;;21300:3;21293:10;;20930:379;;;:::o;21315:159::-;21455:11;21451:1;21443:6;21439:14;21432:35;21315:159;:::o;21480:365::-;21622:3;21643:66;21707:1;21702:3;21643:66;:::i;:::-;21636:73;;21718:93;21807:3;21718:93;:::i;:::-;21836:2;21831:3;21827:12;21820:19;;21480:365;;;:::o;21851:419::-;22017:4;22055:2;22044:9;22040:18;22032:26;;22104:9;22098:4;22094:20;22090:1;22079:9;22075:17;22068:47;22132:131;22258:4;22132:131;:::i;:::-;22124:139;;21851:419;;;:::o;22276:165::-;22416:17;22412:1;22404:6;22400:14;22393:41;22276:165;:::o;22447:366::-;22589:3;22610:67;22674:2;22669:3;22610:67;:::i;:::-;22603:74;;22686:93;22775:3;22686:93;:::i;:::-;22804:2;22799:3;22795:12;22788:19;;22447:366;;;:::o;22819:419::-;22985:4;23023:2;23012:9;23008:18;23000:26;;23072:9;23066:4;23062:20;23058:1;23047:9;23043:17;23036:47;23100:131;23226:4;23100:131;:::i;:::-;23092:139;;22819:419;;;:::o;23244:179::-;23384:31;23380:1;23372:6;23368:14;23361:55;23244:179;:::o;23429:366::-;23571:3;23592:67;23656:2;23651:3;23592:67;:::i;:::-;23585:74;;23668:93;23757:3;23668:93;:::i;:::-;23786:2;23781:3;23777:12;23770:19;;23429:366;;;:::o;23801:419::-;23967:4;24005:2;23994:9;23990:18;23982:26;;24054:9;24048:4;24044:20;24040:1;24029:9;24025:17;24018:47;24082:131;24208:4;24082:131;:::i;:::-;24074:139;;23801:419;;;:::o;24226:171::-;24366:23;24362:1;24354:6;24350:14;24343:47;24226:171;:::o;24403:366::-;24545:3;24566:67;24630:2;24625:3;24566:67;:::i;:::-;24559:74;;24642:93;24731:3;24642:93;:::i;:::-;24760:2;24755:3;24751:12;24744:19;;24403:366;;;:::o;24775:419::-;24941:4;24979:2;24968:9;24964:18;24956:26;;25028:9;25022:4;25018:20;25014:1;25003:9;24999:17;24992:47;25056:131;25182:4;25056:131;:::i;:::-;25048:139;;24775:419;;;:::o;25200:143::-;25257:5;25288:6;25282:13;25273:22;;25304:33;25331:5;25304:33;:::i;:::-;25200:143;;;;:::o;25349:351::-;25419:6;25468:2;25456:9;25447:7;25443:23;25439:32;25436:119;;;25474:79;;:::i;:::-;25436:119;25594:1;25619:64;25675:7;25666:6;25655:9;25651:22;25619:64;:::i;:::-;25609:74;;25565:128;25349:351;;;;:::o;25706:332::-;25827:4;25865:2;25854:9;25850:18;25842:26;;25878:71;25946:1;25935:9;25931:17;25922:6;25878:71;:::i;:::-;25959:72;26027:2;26016:9;26012:18;26003:6;25959:72;:::i;:::-;25706:332;;;;;:::o;26044:224::-;26184:34;26180:1;26172:6;26168:14;26161:58;26253:7;26248:2;26240:6;26236:15;26229:32;26044:224;:::o;26274:366::-;26416:3;26437:67;26501:2;26496:3;26437:67;:::i;:::-;26430:74;;26513:93;26602:3;26513:93;:::i;:::-;26631:2;26626:3;26622:12;26615:19;;26274:366;;;:::o;26646:419::-;26812:4;26850:2;26839:9;26835:18;26827:26;;26899:9;26893:4;26889:20;26885:1;26874:9;26870:17;26863:47;26927:131;27053:4;26927:131;:::i;:::-;26919:139;;26646:419;;;:::o;27071:143::-;27128:5;27159:6;27153:13;27144:22;;27175:33;27202:5;27175:33;:::i;:::-;27071:143;;;;:::o;27220:351::-;27290:6;27339:2;27327:9;27318:7;27314:23;27310:32;27307:119;;;27345:79;;:::i;:::-;27307:119;27465:1;27490:64;27546:7;27537:6;27526:9;27522:22;27490:64;:::i;:::-;27480:74;;27436:128;27220:351;;;;:::o;27577:332::-;27698:4;27736:2;27725:9;27721:18;27713:26;;27749:71;27817:1;27806:9;27802:17;27793:6;27749:71;:::i;:::-;27830:72;27898:2;27887:9;27883:18;27874:6;27830:72;:::i;:::-;27577:332;;;;;:::o;27915:137::-;27969:5;28000:6;27994:13;27985:22;;28016:30;28040:5;28016:30;:::i;:::-;27915:137;;;;:::o;28058:345::-;28125:6;28174:2;28162:9;28153:7;28149:23;28145:32;28142:119;;;28180:79;;:::i;:::-;28142:119;28300:1;28325:61;28378:7;28369:6;28358:9;28354:22;28325:61;:::i;:::-;28315:71;;28271:125;28058:345;;;;:::o;28409:165::-;28549:17;28545:1;28537:6;28533:14;28526:41;28409:165;:::o;28580:366::-;28722:3;28743:67;28807:2;28802:3;28743:67;:::i;:::-;28736:74;;28819:93;28908:3;28819:93;:::i;:::-;28937:2;28932:3;28928:12;28921:19;;28580:366;;;:::o;28952:419::-;29118:4;29156:2;29145:9;29141:18;29133:26;;29205:9;29199:4;29195:20;29191:1;29180:9;29176:17;29169:47;29233:131;29359:4;29233:131;:::i;:::-;29225:139;;28952:419;;;:::o;29377:179::-;29517:31;29513:1;29505:6;29501:14;29494:55;29377:179;:::o;29562:366::-;29704:3;29725:67;29789:2;29784:3;29725:67;:::i;:::-;29718:74;;29801:93;29890:3;29801:93;:::i;:::-;29919:2;29914:3;29910:12;29903:19;;29562:366;;;:::o;29934:419::-;30100:4;30138:2;30127:9;30123:18;30115:26;;30187:9;30181:4;30177:20;30173:1;30162:9;30158:17;30151:47;30215:131;30341:4;30215:131;:::i;:::-;30207:139;;29934:419;;;:::o;30359:85::-;30404:7;30433:5;30422:16;;30359:85;;;:::o;30450:60::-;30478:3;30499:5;30492:12;;30450:60;;;:::o;30516:158::-;30574:9;30607:61;30625:42;30634:32;30660:5;30634:32;:::i;:::-;30625:42;:::i;:::-;30607:61;:::i;:::-;30594:74;;30516:158;;;:::o;30680:147::-;30775:45;30814:5;30775:45;:::i;:::-;30770:3;30763:58;30680:147;;:::o;30833:807::-;31082:4;31120:3;31109:9;31105:19;31097:27;;31134:71;31202:1;31191:9;31187:17;31178:6;31134:71;:::i;:::-;31215:72;31283:2;31272:9;31268:18;31259:6;31215:72;:::i;:::-;31297:80;31373:2;31362:9;31358:18;31349:6;31297:80;:::i;:::-;31387;31463:2;31452:9;31448:18;31439:6;31387:80;:::i;:::-;31477:73;31545:3;31534:9;31530:19;31521:6;31477:73;:::i;:::-;31560;31628:3;31617:9;31613:19;31604:6;31560:73;:::i;:::-;30833:807;;;;;;;;;:::o;31646:663::-;31734:6;31742;31750;31799:2;31787:9;31778:7;31774:23;31770:32;31767:119;;;31805:79;;:::i;:::-;31767:119;31925:1;31950:64;32006:7;31997:6;31986:9;31982:22;31950:64;:::i;:::-;31940:74;;31896:128;32063:2;32089:64;32145:7;32136:6;32125:9;32121:22;32089:64;:::i;:::-;32079:74;;32034:129;32202:2;32228:64;32284:7;32275:6;32264:9;32260:22;32228:64;:::i;:::-;32218:74;;32173:129;31646:663;;;;;:::o;32315:180::-;32363:77;32360:1;32353:88;32460:4;32457:1;32450:15;32484:4;32481:1;32474:15;32501:185;32541:1;32558:20;32576:1;32558:20;:::i;:::-;32553:25;;32592:20;32610:1;32592:20;:::i;:::-;32587:25;;32631:1;32621:35;;32636:18;;:::i;:::-;32621:35;32678:1;32675;32671:9;32666:14;;32501:185;;;;:::o;32692:180::-;32740:77;32737:1;32730:88;32837:4;32834:1;32827:15;32861:4;32858:1;32851:15;32878:114;32945:6;32979:5;32973:12;32963:22;;32878:114;;;:::o;32998:184::-;33097:11;33131:6;33126:3;33119:19;33171:4;33166:3;33162:14;33147:29;;32998:184;;;;:::o;33188:132::-;33255:4;33278:3;33270:11;;33308:4;33303:3;33299:14;33291:22;;33188:132;;;:::o;33326:108::-;33403:24;33421:5;33403:24;:::i;:::-;33398:3;33391:37;33326:108;;:::o;33440:179::-;33509:10;33530:46;33572:3;33564:6;33530:46;:::i;:::-;33608:4;33603:3;33599:14;33585:28;;33440:179;;;;:::o;33625:113::-;33695:4;33727;33722:3;33718:14;33710:22;;33625:113;;;:::o;33774:732::-;33893:3;33922:54;33970:5;33922:54;:::i;:::-;33992:86;34071:6;34066:3;33992:86;:::i;:::-;33985:93;;34102:56;34152:5;34102:56;:::i;:::-;34181:7;34212:1;34197:284;34222:6;34219:1;34216:13;34197:284;;;34298:6;34292:13;34325:63;34384:3;34369:13;34325:63;:::i;:::-;34318:70;;34411:60;34464:6;34411:60;:::i;:::-;34401:70;;34257:224;34244:1;34241;34237:9;34232:14;;34197:284;;;34201:14;34497:3;34490:10;;33898:608;;;33774:732;;;;:::o;34512:831::-;34775:4;34813:3;34802:9;34798:19;34790:27;;34827:71;34895:1;34884:9;34880:17;34871:6;34827:71;:::i;:::-;34908:80;34984:2;34973:9;34969:18;34960:6;34908:80;:::i;:::-;35035:9;35029:4;35025:20;35020:2;35009:9;35005:18;34998:48;35063:108;35166:4;35157:6;35063:108;:::i;:::-;35055:116;;35181:72;35249:2;35238:9;35234:18;35225:6;35181:72;:::i;:::-;35263:73;35331:3;35320:9;35316:19;35307:6;35263:73;:::i;:::-;34512:831;;;;;;;;:::o

Swarm Source

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