ETH Price: $3,608.63 (+6.14%)

Token

Ethereumcat (ETHCAT)
 

Overview

Max Total Supply

1,000,000,000 ETHCAT

Holders

112

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
12,744,989.881129817 ETHCAT

Value
$0.00
0xf4Cd56Eba96905c5aa56267e33DfbD6b3aEEA6aC
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:
ETHCAT

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-08-22
*/

// SPDX-License-Identifier: MIT

/*

X        : https://x.com/ethereumcaterc
Telegram : https://t.me/Ethereumcaterc
*/

pragma solidity 0.8.26;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    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);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

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 factory() external pure returns (address);
    function WETH() 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);
}

contract ETHCAT is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private isExile;
    mapping (address => bool) public marketPair;
    address payable private _taxWallet;
    uint256 firstBlock;

    uint256 private _initialBuyTax=23;
    uint256 private _initialSellTax=23;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=27;
    uint256 private _reduceSellTaxAt=27;
    uint256 private _preventSwapBefore=1; 
    uint256 private _buyCount= 0;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Ethereumcat";
    string private constant _symbol = unicode"ETHCAT";
    uint256 public _maxTxAmount =   20000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 1000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 10000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen;
    uint256 public caCount = 4;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool public caToggle = true;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        isExile[owner()] = true;
        isExile[address(this)] = true;
        isExile[address(uniswapV2Pair)] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;

        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount> _reduceBuyTaxAt)? _finalBuyTax: _initialBuyTax).div(100);

            if (marketPair[from] && to != address(uniswapV2Router) && ! isExile[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");

                if (firstBlock + 3  > block.number) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

            if (!marketPair[to] && ! isExile[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

            if(marketPair[to] && from!= address(this) ){
                taxAmount = amount.mul((_buyCount> _reduceSellTaxAt)? _finalSellTax: _initialSellTax).div(100);
            }

	    if (!marketPair[from] && !marketPair[to] && from!= address(this) ) {
                taxAmount = 0;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (caToggle && !inSwap && marketPair[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < caCount, "CA balance sell");
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }

            else if(!inSwap && marketPair[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }
   
    function freeStuckEth() external onlyOwner {
        payable(_taxWallet).transfer(address(this).balance);
    }

    function openTrade() external onlyOwner() {
        require(!tradingOpen,"trading is open already");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        marketPair[address(uniswapV2Pair)] = true;
        isExile[address(uniswapV2Pair)] = true;
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","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":"caCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"caToggle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"freeStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"marketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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"},{"stateMutability":"payable","type":"receive"}]

6080604052601760075560176008555f6009555f600a55601b600b55601b600c556001600d555f600e555f600f555f6010556009600a61003f91906105d0565b6301312d0061004e919061061a565b6011556009600a61005f91906105d0565b6301312d0061006e919061061a565b6012556009600a61007f91906105d0565b620f424061008d919061061a565b6013556009600a61009e91906105d0565b629896806100ac919061061a565b60145560046017555f60185f6101000a81548160ff0219169083151502179055505f601860016101000a81548160ff0219169083151502179055506001601860026101000a81548160ff02191690831515021790555034801561010d575f80fd5b505f61011d61043160201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506101c761043160201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a61021491906105d0565b633b9aca00610223919061061a565b60015f61023461043160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61028461043860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506103ac61043160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a61040891906105d0565b633b9aca00610417919061061a565b604051610424919061066a565b60405180910390a3610683565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156104e1578086048111156104bd576104bc61045f565b5b60018516156104cc5780820291505b80810290506104da8561048c565b94506104a1565b94509492505050565b5f826104f957600190506105b4565b81610506575f90506105b4565b816001811461051c576002811461052657610555565b60019150506105b4565b60ff8411156105385761053761045f565b5b8360020a91508482111561054f5761054e61045f565b5b506105b4565b5060208310610133831016604e8410600b841016171561058a5782820a9050838111156105855761058461045f565b5b6105b4565b6105978484846001610498565b925090508184048111156105ae576105ad61045f565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105da826105bb565b91506105e5836105c4565b92506106127fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104ea565b905092915050565b5f610624826105bb565b915061062f836105bb565b925082820261063d816105bb565b915082820484148315176106545761065361045f565b5b5092915050565b610664816105bb565b82525050565b5f60208201905061067d5f83018461065b565b92915050565b6132ff806106905f395ff3fe608060405260043610610138575f3560e01c80637d1db4a5116100aa578063a9059cbb1161006e578063a9059cbb146103f1578063bf474bed1461042d578063dd62ed3e14610457578063f468b44514610493578063f5b3c3bf146104a9578063fb201b1d146104e55761013f565b80637d1db4a51461031f578063883b5be2146103495780638da5cb5b146103735780638f9a55c01461039d57806395d89b41146103c75761013f565b806323b872dd116100fc57806323b872dd14610227578063313ce5671461026357806349bd5a5e1461028d57806370a08231146102b7578063715018a6146102f3578063751039fc146103095761013f565b806306fdde0314610143578063095ea7b31461016d5780630e12062d146101a95780630faee56f146101d357806318160ddd146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104fb565b604051610164919061243d565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e91906124ee565b610538565b6040516101a09190612546565b60405180910390f35b3480156101b4575f80fd5b506101bd610555565b6040516101ca919061256e565b60405180910390f35b3480156101de575f80fd5b506101e761055b565b6040516101f4919061256e565b60405180910390f35b348015610208575f80fd5b50610211610561565b60405161021e919061256e565b60405180910390f35b348015610232575f80fd5b5061024d60048036038101906102489190612587565b610584565b60405161025a9190612546565b60405180910390f35b34801561026e575f80fd5b50610277610658565b60405161028491906125f2565b60405180910390f35b348015610298575f80fd5b506102a1610660565b6040516102ae919061261a565b60405180910390f35b3480156102c2575f80fd5b506102dd60048036038101906102d89190612633565b610685565b6040516102ea919061256e565b60405180910390f35b3480156102fe575f80fd5b506103076106cb565b005b348015610314575f80fd5b5061031d610819565b005b34801561032a575f80fd5b50610333610948565b604051610340919061256e565b60405180910390f35b348015610354575f80fd5b5061035d61094e565b60405161036a9190612546565b60405180910390f35b34801561037e575f80fd5b50610387610961565b604051610394919061261a565b60405180910390f35b3480156103a8575f80fd5b506103b1610988565b6040516103be919061256e565b60405180910390f35b3480156103d2575f80fd5b506103db61098e565b6040516103e8919061243d565b60405180910390f35b3480156103fc575f80fd5b50610417600480360381019061041291906124ee565b6109cb565b6040516104249190612546565b60405180910390f35b348015610438575f80fd5b506104416109e8565b60405161044e919061256e565b60405180910390f35b348015610462575f80fd5b5061047d6004803603810190610478919061265e565b6109ee565b60405161048a919061256e565b60405180910390f35b34801561049e575f80fd5b506104a7610a70565b005b3480156104b4575f80fd5b506104cf60048036038101906104ca9190612633565b610b6b565b6040516104dc9190612546565b60405180910390f35b3480156104f0575f80fd5b506104f9610b88565b005b60606040518060400160405280600b81526020017f457468657265756d636174000000000000000000000000000000000000000000815250905090565b5f61054b61054461119d565b84846111a4565b6001905092915050565b60175481565b60145481565b5f6009600a61057091906127f8565b633b9aca0061057f9190612842565b905090565b5f610590848484611367565b61064d8461059c61119d565b610648856040518060600160405280602881526020016132a26028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105ff61119d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611eaa9092919063ffffffff16565b6111a4565b600190509392505050565b5f6009905090565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106d361119d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461075f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610756906128cd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61082161119d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a4906128cd565b60405180910390fd5b6009600a6108bb91906127f8565b633b9aca006108ca9190612842565b6011819055506009600a6108de91906127f8565b633b9aca006108ed9190612842565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61092291906127f8565b633b9aca006109319190612842565b60405161093e919061256e565b60405180910390a1565b60115481565b601860029054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600681526020017f4554484341540000000000000000000000000000000000000000000000000000815250905090565b5f6109de6109d761119d565b8484611367565b6001905092915050565b60135481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610a7861119d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afb906128cd565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610b68573d5f803e3d5ffd5b50565b6004602052805f5260405f205f915054906101000a900460ff1681565b610b9061119d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c13906128cd565b60405180910390fd5b601660149054906101000a900460ff1615610c6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6390612935565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d083060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610cf491906127f8565b633b9aca00610d039190612842565b6111a4565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d969190612967565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e409190612967565b6040518363ffffffff1660e01b8152600401610e5d929190612992565b6020604051808303815f875af1158015610e79573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9d9190612967565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061101030610685565b5f8061101a610961565b426040518863ffffffff1660e01b815260040161103c969594939291906129fb565b60606040518083038185885af1158015611058573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061107d9190612a6e565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161111d929190612abe565b6020604051808303815f875af1158015611139573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061115d9190612b0f565b506001601860016101000a81548160ff0219169083151502179055506001601660146101000a81548160ff02191690831515021790555043600681905550565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611212576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120990612baa565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611280576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127790612c38565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161135a919061256e565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cc90612cc6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143a90612d54565b60405180910390fd5b5f8111611485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147c90612de2565b60405180910390fd5b5f61148e610961565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114fc57506114cc610961565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bfa5761153d606461152f600b54600e541161151c57600754611520565b6009545b85611f0c90919063ffffffff16565b611f8390919063ffffffff16565b905060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156115e2575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611635575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156117185760115482111561167f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167690612e4a565b60405180910390fd5b6012548261168c85610685565b6116969190612e68565b11156116d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ce90612ee5565b60405180910390fd5b4360036006546116e79190612e68565b1115611700576116f683611fcc565b156116ff575f80fd5b5b600e5f81548092919061171290612f03565b91905055505b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156117b6575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561181457601254826117c885610685565b6117d29190612e68565b1115611813576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180a90612ee5565b60405180910390fd5b5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561189657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118da576118d760646118c9600c54600e54116118b6576008546118ba565b600a545b85611f0c90919063ffffffff16565b611f8390919063ffffffff16565b90505b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611978575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156119b057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119b9575f90505b5f6119c330610685565b9050601860029054906101000a900460ff1680156119ed575060185f9054906101000a900460ff16155b8015611a3f575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611a575750601860019054906101000a900460ff165b8015611a64575060135481115b8015611a735750600d54600e54115b15611b2757601054431115611a8a575f600f819055505b601754600f5410611ad0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac790612f94565b60405180910390fd5b611aed611ae884611ae384601454611fdd565b611fdd565b611ff5565b5f4790505f811115611b0357611b024761225e565b5b600f5f815480929190611b1590612f03565b91905055504360108190555050611bf8565b60185f9054906101000a900460ff16158015611b89575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611ba15750601860019054906101000a900460ff165b8015611bae575060135481115b8015611bbd5750600d54600e54115b15611bf757611bdf611bda84611bd584601454611fdd565b611fdd565b611ff5565b5f4790505f811115611bf557611bf44761225e565b5b505b5b505b5f811115611cf957611c528160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122c690919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cf0919061256e565b60405180910390a35b611d498260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461232390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611dec611da0828461232390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122c690919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e8f848661232390919063ffffffff16565b604051611e9c919061256e565b60405180910390a350505050565b5f838311158290611ef1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee8919061243d565b60405180910390fd5b505f8385611eff9190612fb2565b9050809150509392505050565b5f808303611f1c575f9050611f7d565b5f8284611f299190612842565b9050828482611f389190613012565b14611f78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6f906130b2565b60405180910390fd5b809150505b92915050565b5f611fc483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061236c565b905092915050565b5f80823b90505f8111915050919050565b5f818311611feb5782611fed565b815b905092915050565b600160185f6101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561202b5761202a6130d0565b5b6040519080825280602002602001820160405280156120595781602001602082028036833780820191505090505b50905030815f815181106120705761206f6130fd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612114573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121389190612967565b8160018151811061214c5761214b6130fd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121b23060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111a4565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016122149594939291906131e1565b5f604051808303815f87803b15801561222b575f80fd5b505af115801561223d573d5f803e3d5ffd5b50505050505f60185f6101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156122c2573d5f803e3d5ffd5b5050565b5f8082846122d49190612e68565b905083811015612319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231090613283565b60405180910390fd5b8091505092915050565b5f61236483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611eaa565b905092915050565b5f80831182906123b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a9919061243d565b60405180910390fd5b505f83856123c09190613012565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61240f826123cd565b61241981856123d7565b93506124298185602086016123e7565b612432816123f5565b840191505092915050565b5f6020820190508181035f8301526124558184612405565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61248a82612461565b9050919050565b61249a81612480565b81146124a4575f80fd5b50565b5f813590506124b581612491565b92915050565b5f819050919050565b6124cd816124bb565b81146124d7575f80fd5b50565b5f813590506124e8816124c4565b92915050565b5f80604083850312156125045761250361245d565b5b5f612511858286016124a7565b9250506020612522858286016124da565b9150509250929050565b5f8115159050919050565b6125408161252c565b82525050565b5f6020820190506125595f830184612537565b92915050565b612568816124bb565b82525050565b5f6020820190506125815f83018461255f565b92915050565b5f805f6060848603121561259e5761259d61245d565b5b5f6125ab868287016124a7565b93505060206125bc868287016124a7565b92505060406125cd868287016124da565b9150509250925092565b5f60ff82169050919050565b6125ec816125d7565b82525050565b5f6020820190506126055f8301846125e3565b92915050565b61261481612480565b82525050565b5f60208201905061262d5f83018461260b565b92915050565b5f602082840312156126485761264761245d565b5b5f612655848285016124a7565b91505092915050565b5f80604083850312156126745761267361245d565b5b5f612681858286016124a7565b9250506020612692858286016124a7565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561271e578086048111156126fa576126f961269c565b5b60018516156127095780820291505b8081029050612717856126c9565b94506126de565b94509492505050565b5f8261273657600190506127f1565b81612743575f90506127f1565b8160018114612759576002811461276357612792565b60019150506127f1565b60ff8411156127755761277461269c565b5b8360020a91508482111561278c5761278b61269c565b5b506127f1565b5060208310610133831016604e8410600b84101617156127c75782820a9050838111156127c2576127c161269c565b5b6127f1565b6127d484848460016126d5565b925090508184048111156127eb576127ea61269c565b5b81810290505b9392505050565b5f612802826124bb565b915061280d836125d7565b925061283a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612727565b905092915050565b5f61284c826124bb565b9150612857836124bb565b9250828202612865816124bb565b9150828204841483151761287c5761287b61269c565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6128b76020836123d7565b91506128c282612883565b602082019050919050565b5f6020820190508181035f8301526128e4816128ab565b9050919050565b7f74726164696e67206973206f70656e20616c72656164790000000000000000005f82015250565b5f61291f6017836123d7565b915061292a826128eb565b602082019050919050565b5f6020820190508181035f83015261294c81612913565b9050919050565b5f8151905061296181612491565b92915050565b5f6020828403121561297c5761297b61245d565b5b5f61298984828501612953565b91505092915050565b5f6040820190506129a55f83018561260b565b6129b2602083018461260b565b9392505050565b5f819050919050565b5f819050919050565b5f6129e56129e06129db846129b9565b6129c2565b6124bb565b9050919050565b6129f5816129cb565b82525050565b5f60c082019050612a0e5f83018961260b565b612a1b602083018861255f565b612a2860408301876129ec565b612a3560608301866129ec565b612a42608083018561260b565b612a4f60a083018461255f565b979650505050505050565b5f81519050612a68816124c4565b92915050565b5f805f60608486031215612a8557612a8461245d565b5b5f612a9286828701612a5a565b9350506020612aa386828701612a5a565b9250506040612ab486828701612a5a565b9150509250925092565b5f604082019050612ad15f83018561260b565b612ade602083018461255f565b9392505050565b612aee8161252c565b8114612af8575f80fd5b50565b5f81519050612b0981612ae5565b92915050565b5f60208284031215612b2457612b2361245d565b5b5f612b3184828501612afb565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b946024836123d7565b9150612b9f82612b3a565b604082019050919050565b5f6020820190508181035f830152612bc181612b88565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c226022836123d7565b9150612c2d82612bc8565b604082019050919050565b5f6020820190508181035f830152612c4f81612c16565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612cb06025836123d7565b9150612cbb82612c56565b604082019050919050565b5f6020820190508181035f830152612cdd81612ca4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612d3e6023836123d7565b9150612d4982612ce4565b604082019050919050565b5f6020820190508181035f830152612d6b81612d32565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612dcc6029836123d7565b9150612dd782612d72565b604082019050919050565b5f6020820190508181035f830152612df981612dc0565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612e346019836123d7565b9150612e3f82612e00565b602082019050919050565b5f6020820190508181035f830152612e6181612e28565b9050919050565b5f612e72826124bb565b9150612e7d836124bb565b9250828201905080821115612e9557612e9461269c565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612ecf601a836123d7565b9150612eda82612e9b565b602082019050919050565b5f6020820190508181035f830152612efc81612ec3565b9050919050565b5f612f0d826124bb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f3f57612f3e61269c565b5b600182019050919050565b7f43412062616c616e63652073656c6c00000000000000000000000000000000005f82015250565b5f612f7e600f836123d7565b9150612f8982612f4a565b602082019050919050565b5f6020820190508181035f830152612fab81612f72565b9050919050565b5f612fbc826124bb565b9150612fc7836124bb565b9250828203905081811115612fdf57612fde61269c565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61301c826124bb565b9150613027836124bb565b92508261303757613036612fe5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61309c6021836123d7565b91506130a782613042565b604082019050919050565b5f6020820190508181035f8301526130c981613090565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61315c81612480565b82525050565b5f61316d8383613153565b60208301905092915050565b5f602082019050919050565b5f61318f8261312a565b6131998185613134565b93506131a483613144565b805f5b838110156131d45781516131bb8882613162565b97506131c683613179565b9250506001810190506131a7565b5085935050505092915050565b5f60a0820190506131f45f83018861255f565b61320160208301876129ec565b81810360408301526132138186613185565b9050613222606083018561260b565b61322f608083018461255f565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61326d601b836123d7565b915061327882613239565b602082019050919050565b5f6020820190508181035f83015261329a81613261565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207402f86f3d001f607e40e38db5e1f267dc7feab3e7275d97858cb6cdb45a087c64736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610138575f3560e01c80637d1db4a5116100aa578063a9059cbb1161006e578063a9059cbb146103f1578063bf474bed1461042d578063dd62ed3e14610457578063f468b44514610493578063f5b3c3bf146104a9578063fb201b1d146104e55761013f565b80637d1db4a51461031f578063883b5be2146103495780638da5cb5b146103735780638f9a55c01461039d57806395d89b41146103c75761013f565b806323b872dd116100fc57806323b872dd14610227578063313ce5671461026357806349bd5a5e1461028d57806370a08231146102b7578063715018a6146102f3578063751039fc146103095761013f565b806306fdde0314610143578063095ea7b31461016d5780630e12062d146101a95780630faee56f146101d357806318160ddd146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104fb565b604051610164919061243d565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e91906124ee565b610538565b6040516101a09190612546565b60405180910390f35b3480156101b4575f80fd5b506101bd610555565b6040516101ca919061256e565b60405180910390f35b3480156101de575f80fd5b506101e761055b565b6040516101f4919061256e565b60405180910390f35b348015610208575f80fd5b50610211610561565b60405161021e919061256e565b60405180910390f35b348015610232575f80fd5b5061024d60048036038101906102489190612587565b610584565b60405161025a9190612546565b60405180910390f35b34801561026e575f80fd5b50610277610658565b60405161028491906125f2565b60405180910390f35b348015610298575f80fd5b506102a1610660565b6040516102ae919061261a565b60405180910390f35b3480156102c2575f80fd5b506102dd60048036038101906102d89190612633565b610685565b6040516102ea919061256e565b60405180910390f35b3480156102fe575f80fd5b506103076106cb565b005b348015610314575f80fd5b5061031d610819565b005b34801561032a575f80fd5b50610333610948565b604051610340919061256e565b60405180910390f35b348015610354575f80fd5b5061035d61094e565b60405161036a9190612546565b60405180910390f35b34801561037e575f80fd5b50610387610961565b604051610394919061261a565b60405180910390f35b3480156103a8575f80fd5b506103b1610988565b6040516103be919061256e565b60405180910390f35b3480156103d2575f80fd5b506103db61098e565b6040516103e8919061243d565b60405180910390f35b3480156103fc575f80fd5b50610417600480360381019061041291906124ee565b6109cb565b6040516104249190612546565b60405180910390f35b348015610438575f80fd5b506104416109e8565b60405161044e919061256e565b60405180910390f35b348015610462575f80fd5b5061047d6004803603810190610478919061265e565b6109ee565b60405161048a919061256e565b60405180910390f35b34801561049e575f80fd5b506104a7610a70565b005b3480156104b4575f80fd5b506104cf60048036038101906104ca9190612633565b610b6b565b6040516104dc9190612546565b60405180910390f35b3480156104f0575f80fd5b506104f9610b88565b005b60606040518060400160405280600b81526020017f457468657265756d636174000000000000000000000000000000000000000000815250905090565b5f61054b61054461119d565b84846111a4565b6001905092915050565b60175481565b60145481565b5f6009600a61057091906127f8565b633b9aca0061057f9190612842565b905090565b5f610590848484611367565b61064d8461059c61119d565b610648856040518060600160405280602881526020016132a26028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105ff61119d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611eaa9092919063ffffffff16565b6111a4565b600190509392505050565b5f6009905090565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106d361119d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461075f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610756906128cd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61082161119d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a4906128cd565b60405180910390fd5b6009600a6108bb91906127f8565b633b9aca006108ca9190612842565b6011819055506009600a6108de91906127f8565b633b9aca006108ed9190612842565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61092291906127f8565b633b9aca006109319190612842565b60405161093e919061256e565b60405180910390a1565b60115481565b601860029054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600681526020017f4554484341540000000000000000000000000000000000000000000000000000815250905090565b5f6109de6109d761119d565b8484611367565b6001905092915050565b60135481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610a7861119d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afb906128cd565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610b68573d5f803e3d5ffd5b50565b6004602052805f5260405f205f915054906101000a900460ff1681565b610b9061119d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c13906128cd565b60405180910390fd5b601660149054906101000a900460ff1615610c6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6390612935565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d083060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610cf491906127f8565b633b9aca00610d039190612842565b6111a4565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d969190612967565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e409190612967565b6040518363ffffffff1660e01b8152600401610e5d929190612992565b6020604051808303815f875af1158015610e79573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9d9190612967565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061101030610685565b5f8061101a610961565b426040518863ffffffff1660e01b815260040161103c969594939291906129fb565b60606040518083038185885af1158015611058573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061107d9190612a6e565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161111d929190612abe565b6020604051808303815f875af1158015611139573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061115d9190612b0f565b506001601860016101000a81548160ff0219169083151502179055506001601660146101000a81548160ff02191690831515021790555043600681905550565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611212576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120990612baa565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611280576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127790612c38565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161135a919061256e565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cc90612cc6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143a90612d54565b60405180910390fd5b5f8111611485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147c90612de2565b60405180910390fd5b5f61148e610961565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114fc57506114cc610961565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bfa5761153d606461152f600b54600e541161151c57600754611520565b6009545b85611f0c90919063ffffffff16565b611f8390919063ffffffff16565b905060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156115e2575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611635575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156117185760115482111561167f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167690612e4a565b60405180910390fd5b6012548261168c85610685565b6116969190612e68565b11156116d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ce90612ee5565b60405180910390fd5b4360036006546116e79190612e68565b1115611700576116f683611fcc565b156116ff575f80fd5b5b600e5f81548092919061171290612f03565b91905055505b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156117b6575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561181457601254826117c885610685565b6117d29190612e68565b1115611813576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180a90612ee5565b60405180910390fd5b5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561189657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118da576118d760646118c9600c54600e54116118b6576008546118ba565b600a545b85611f0c90919063ffffffff16565b611f8390919063ffffffff16565b90505b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611978575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156119b057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119b9575f90505b5f6119c330610685565b9050601860029054906101000a900460ff1680156119ed575060185f9054906101000a900460ff16155b8015611a3f575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611a575750601860019054906101000a900460ff165b8015611a64575060135481115b8015611a735750600d54600e54115b15611b2757601054431115611a8a575f600f819055505b601754600f5410611ad0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac790612f94565b60405180910390fd5b611aed611ae884611ae384601454611fdd565b611fdd565b611ff5565b5f4790505f811115611b0357611b024761225e565b5b600f5f815480929190611b1590612f03565b91905055504360108190555050611bf8565b60185f9054906101000a900460ff16158015611b89575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611ba15750601860019054906101000a900460ff165b8015611bae575060135481115b8015611bbd5750600d54600e54115b15611bf757611bdf611bda84611bd584601454611fdd565b611fdd565b611ff5565b5f4790505f811115611bf557611bf44761225e565b5b505b5b505b5f811115611cf957611c528160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122c690919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cf0919061256e565b60405180910390a35b611d498260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461232390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611dec611da0828461232390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122c690919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e8f848661232390919063ffffffff16565b604051611e9c919061256e565b60405180910390a350505050565b5f838311158290611ef1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee8919061243d565b60405180910390fd5b505f8385611eff9190612fb2565b9050809150509392505050565b5f808303611f1c575f9050611f7d565b5f8284611f299190612842565b9050828482611f389190613012565b14611f78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6f906130b2565b60405180910390fd5b809150505b92915050565b5f611fc483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061236c565b905092915050565b5f80823b90505f8111915050919050565b5f818311611feb5782611fed565b815b905092915050565b600160185f6101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561202b5761202a6130d0565b5b6040519080825280602002602001820160405280156120595781602001602082028036833780820191505090505b50905030815f815181106120705761206f6130fd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612114573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121389190612967565b8160018151811061214c5761214b6130fd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121b23060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111a4565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016122149594939291906131e1565b5f604051808303815f87803b15801561222b575f80fd5b505af115801561223d573d5f803e3d5ffd5b50505050505f60185f6101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156122c2573d5f803e3d5ffd5b5050565b5f8082846122d49190612e68565b905083811015612319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231090613283565b60405180910390fd5b8091505092915050565b5f61236483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611eaa565b905092915050565b5f80831182906123b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a9919061243d565b60405180910390fd5b505f83856123c09190613012565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61240f826123cd565b61241981856123d7565b93506124298185602086016123e7565b612432816123f5565b840191505092915050565b5f6020820190508181035f8301526124558184612405565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61248a82612461565b9050919050565b61249a81612480565b81146124a4575f80fd5b50565b5f813590506124b581612491565b92915050565b5f819050919050565b6124cd816124bb565b81146124d7575f80fd5b50565b5f813590506124e8816124c4565b92915050565b5f80604083850312156125045761250361245d565b5b5f612511858286016124a7565b9250506020612522858286016124da565b9150509250929050565b5f8115159050919050565b6125408161252c565b82525050565b5f6020820190506125595f830184612537565b92915050565b612568816124bb565b82525050565b5f6020820190506125815f83018461255f565b92915050565b5f805f6060848603121561259e5761259d61245d565b5b5f6125ab868287016124a7565b93505060206125bc868287016124a7565b92505060406125cd868287016124da565b9150509250925092565b5f60ff82169050919050565b6125ec816125d7565b82525050565b5f6020820190506126055f8301846125e3565b92915050565b61261481612480565b82525050565b5f60208201905061262d5f83018461260b565b92915050565b5f602082840312156126485761264761245d565b5b5f612655848285016124a7565b91505092915050565b5f80604083850312156126745761267361245d565b5b5f612681858286016124a7565b9250506020612692858286016124a7565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561271e578086048111156126fa576126f961269c565b5b60018516156127095780820291505b8081029050612717856126c9565b94506126de565b94509492505050565b5f8261273657600190506127f1565b81612743575f90506127f1565b8160018114612759576002811461276357612792565b60019150506127f1565b60ff8411156127755761277461269c565b5b8360020a91508482111561278c5761278b61269c565b5b506127f1565b5060208310610133831016604e8410600b84101617156127c75782820a9050838111156127c2576127c161269c565b5b6127f1565b6127d484848460016126d5565b925090508184048111156127eb576127ea61269c565b5b81810290505b9392505050565b5f612802826124bb565b915061280d836125d7565b925061283a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612727565b905092915050565b5f61284c826124bb565b9150612857836124bb565b9250828202612865816124bb565b9150828204841483151761287c5761287b61269c565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6128b76020836123d7565b91506128c282612883565b602082019050919050565b5f6020820190508181035f8301526128e4816128ab565b9050919050565b7f74726164696e67206973206f70656e20616c72656164790000000000000000005f82015250565b5f61291f6017836123d7565b915061292a826128eb565b602082019050919050565b5f6020820190508181035f83015261294c81612913565b9050919050565b5f8151905061296181612491565b92915050565b5f6020828403121561297c5761297b61245d565b5b5f61298984828501612953565b91505092915050565b5f6040820190506129a55f83018561260b565b6129b2602083018461260b565b9392505050565b5f819050919050565b5f819050919050565b5f6129e56129e06129db846129b9565b6129c2565b6124bb565b9050919050565b6129f5816129cb565b82525050565b5f60c082019050612a0e5f83018961260b565b612a1b602083018861255f565b612a2860408301876129ec565b612a3560608301866129ec565b612a42608083018561260b565b612a4f60a083018461255f565b979650505050505050565b5f81519050612a68816124c4565b92915050565b5f805f60608486031215612a8557612a8461245d565b5b5f612a9286828701612a5a565b9350506020612aa386828701612a5a565b9250506040612ab486828701612a5a565b9150509250925092565b5f604082019050612ad15f83018561260b565b612ade602083018461255f565b9392505050565b612aee8161252c565b8114612af8575f80fd5b50565b5f81519050612b0981612ae5565b92915050565b5f60208284031215612b2457612b2361245d565b5b5f612b3184828501612afb565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b946024836123d7565b9150612b9f82612b3a565b604082019050919050565b5f6020820190508181035f830152612bc181612b88565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c226022836123d7565b9150612c2d82612bc8565b604082019050919050565b5f6020820190508181035f830152612c4f81612c16565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612cb06025836123d7565b9150612cbb82612c56565b604082019050919050565b5f6020820190508181035f830152612cdd81612ca4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612d3e6023836123d7565b9150612d4982612ce4565b604082019050919050565b5f6020820190508181035f830152612d6b81612d32565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612dcc6029836123d7565b9150612dd782612d72565b604082019050919050565b5f6020820190508181035f830152612df981612dc0565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612e346019836123d7565b9150612e3f82612e00565b602082019050919050565b5f6020820190508181035f830152612e6181612e28565b9050919050565b5f612e72826124bb565b9150612e7d836124bb565b9250828201905080821115612e9557612e9461269c565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612ecf601a836123d7565b9150612eda82612e9b565b602082019050919050565b5f6020820190508181035f830152612efc81612ec3565b9050919050565b5f612f0d826124bb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f3f57612f3e61269c565b5b600182019050919050565b7f43412062616c616e63652073656c6c00000000000000000000000000000000005f82015250565b5f612f7e600f836123d7565b9150612f8982612f4a565b602082019050919050565b5f6020820190508181035f830152612fab81612f72565b9050919050565b5f612fbc826124bb565b9150612fc7836124bb565b9250828203905081811115612fdf57612fde61269c565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61301c826124bb565b9150613027836124bb565b92508261303757613036612fe5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61309c6021836123d7565b91506130a782613042565b604082019050919050565b5f6020820190508181035f8301526130c981613090565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61315c81612480565b82525050565b5f61316d8383613153565b60208301905092915050565b5f602082019050919050565b5f61318f8261312a565b6131998185613134565b93506131a483613144565b805f5b838110156131d45781516131bb8882613162565b97506131c683613179565b9250506001810190506131a7565b5085935050505092915050565b5f60a0820190506131f45f83018861255f565b61320160208301876129ec565b81810360408301526132138186613185565b9050613222606083018561260b565b61322f608083018461255f565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61326d601b836123d7565b915061327882613239565b602082019050919050565b5f6020820190508181035f83015261329a81613261565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207402f86f3d001f607e40e38db5e1f267dc7feab3e7275d97858cb6cdb45a087c64736f6c634300081a0033

Deployed Bytecode Sourcemap

3564:8646:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5533:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6366:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4931:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4755:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5810:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6535:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5719:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4865:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5913:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2647:148;;;;;;;;;;;;;:::i;:::-;;11911:159;;;;;;;;;;;;;:::i;:::-;;4565:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5037:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2433:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4628:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5624:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6040:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4691:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6215:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10485:113;;;;;;;;;;;;;:::i;:::-;;3825:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10606:806;;;;;;;;;;;;;:::i;:::-;;5533:83;5570:13;5603:5;;;;;;;;;;;;;;;;;5596:12;;5533:83;:::o;6366:161::-;6441:4;6458:39;6467:12;:10;:12::i;:::-;6481:7;6490:6;6458:8;:39::i;:::-;6515:4;6508:11;;6366:161;;;;:::o;4931:26::-;;;;:::o;4755:52::-;;;;:::o;5810:95::-;5863:7;4374:1;4430:2;:13;;;;:::i;:::-;4417:10;:26;;;;:::i;:::-;5883:14;;5810:95;:::o;6535:313::-;6633:4;6650:36;6660:6;6668:9;6679:6;6650:9;:36::i;:::-;6697:121;6706:6;6714:12;:10;:12::i;:::-;6728:89;6766:6;6728:89;;;;;;;;;;;;;;;;;:11;:19;6740:6;6728:19;;;;;;;;;;;;;;;:33;6748:12;:10;:12::i;:::-;6728:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6697:8;:121::i;:::-;6836:4;6829:11;;6535:313;;;;;:::o;5719:83::-;5760:5;4374:1;5778:16;;5719:83;:::o;4865:28::-;;;;;;;;;;;;;:::o;5913:119::-;5979:7;6006:9;:18;6016:7;6006:18;;;;;;;;;;;;;;;;5999:25;;5913:119;;;:::o;2647:148::-;2570:12;:10;:12::i;:::-;2560:22;;:6;;;;;;;;;;:22;;;2552:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2754:1:::1;2717:40;;2738:6;::::0;::::1;;;;;;;;2717:40;;;;;;;;;;;;2785:1;2768:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2647:148::o:0;11911:159::-;2570:12;:10;:12::i;:::-;2560:22;;:6;;;;;;;;;;:22;;;2552:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4374:1:::1;4430:2;:13;;;;:::i;:::-;4417:10;:26;;;;:::i;:::-;11964:12;:22;;;;4374:1;4430:2;:13;;;;:::i;:::-;4417:10;:26;;;;:::i;:::-;11997:14;:22;;;;12035:27;4374:1;4430:2;:13;;;;:::i;:::-;4417:10;:26;;;;:::i;:::-;12035:27;;;;;;:::i;:::-;;;;;;;;11911:159::o:0;4565:56::-;;;;:::o;5037:27::-;;;;;;;;;;;;;:::o;2433:79::-;2471:7;2498:6;;;;;;;;;;;2491:13;;2433:79;:::o;4628:56::-;;;;:::o;5624:87::-;5663:13;5696:7;;;;;;;;;;;;;;;;;5689:14;;5624:87;:::o;6040:167::-;6118:4;6135:42;6145:12;:10;:12::i;:::-;6159:9;6170:6;6135:9;:42::i;:::-;6195:4;6188:11;;6040:167;;;;:::o;4691:57::-;;;;:::o;6215:143::-;6296:7;6323:11;:18;6335:5;6323:18;;;;;;;;;;;;;;;:27;6342:7;6323:27;;;;;;;;;;;;;;;;6316:34;;6215:143;;;;:::o;10485:113::-;2570:12;:10;:12::i;:::-;2560:22;;:6;;;;;;;;;;:22;;;2552:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10547:10:::1;;;;;;;;;;;10539:28;;:51;10568:21;10539:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10485:113::o:0;3825:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;10606:806::-;2570:12;:10;:12::i;:::-;2560:22;;:6;;;;;;;;;;:22;;;2552:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10668:11:::1;;;;;;;;;;;10667:12;10659:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10754:42;10717:15;;:80;;;;;;;;;;;;;;;;;;10808:58;10825:4;10840:15;;;;;;;;;;;4374:1;4430:2;:13;;;;:::i;:::-;4417:10;:26;;;;:::i;:::-;10808:8;:58::i;:::-;10911:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10893:55;;;10957:4;10964:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10893:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10877:13;;:110;;;;;;;;;;;;;;;;;;11035:4;10998:10;:34;11017:13;;;;;;;;;;;10998:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;11084:4;11050:7;:31;11066:13;;;;;;;;;;;11050:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;11099:15;;;;;;;;;;;:31;;;11138:21;11169:4;11175:24;11193:4;11175:9;:24::i;:::-;11200:1;11202::::0;11204:7:::1;:5;:7::i;:::-;11212:15;11099:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11246:13;;;;;;;;;;;11239:29;;;11277:15;;;;;;;;;;;11295:14;11239:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11335:4;11321:11;;:18;;;;;;;;;;;;;;;;;;11364:4;11350:11;;:18;;;;;;;;;;;;;;;;;;11392:12;11379:10;:25;;;;10606:806::o:0;188:98::-;241:7;268:10;261:17;;188:98;:::o;6856:335::-;6966:1;6949:19;;:5;:19;;;6941:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7047:1;7028:21;;:7;:21;;;7020:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7129:6;7099:11;:18;7111:5;7099:18;;;;;;;;;;;;;;;:27;7118:7;7099:27;;;;;;;;;;;;;;;:36;;;;7167:7;7151:32;;7160:5;7151:32;;;7176:6;7151:32;;;;;;:::i;:::-;;;;;;;;6856:335;;;:::o;7199:2966::-;7303:1;7287:18;;:4;:18;;;7279:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7380:1;7366:16;;:2;:16;;;7358:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7450:1;7441:6;:10;7433:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7508:17;7552:7;:5;:7::i;:::-;7544:15;;:4;:15;;;;:32;;;;;7569:7;:5;:7::i;:::-;7563:13;;:2;:13;;;;7544:32;7540:2269;;;7605:79;7680:3;7605:70;7628:15;;7617:9;;:26;7616:58;;7660:14;;7616:58;;;7646:12;;7616:58;7605:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;7593:91;;7705:10;:16;7716:4;7705:16;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;7739:15;;;;;;;;;;;7725:30;;:2;:30;;;;7705:50;:67;;;;;7761:7;:11;7769:2;7761:11;;;;;;;;;;;;;;;;;;;;;;;;;7759:13;7705:67;7701:420;;;7812:12;;7802:6;:22;;7794:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7907:14;;7897:6;7881:13;7891:2;7881:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7873:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7995:12;7990:1;7977:10;;:14;;;;:::i;:::-;:30;7973:103;;;8041:14;8052:2;8041:10;:14::i;:::-;8040:15;8032:24;;;;;;7973:103;8094:9;;:11;;;;;;;;;:::i;:::-;;;;;;7701:420;8142:10;:14;8153:2;8142:14;;;;;;;;;;;;;;;;;;;;;;;;;8141:15;:32;;;;;8162:7;:11;8170:2;8162:11;;;;;;;;;;;;;;;;;;;;;;;;;8160:13;8141:32;8137:152;;;8228:14;;8218:6;8202:13;8212:2;8202:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8194:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8137:152;8308:10;:14;8319:2;8308:14;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;;;8341:4;8326:20;;:4;:20;;;;8308:38;8305:172;;;8379:82;8457:3;8379:73;8402:16;;8391:9;;:27;8390:61;;8436:15;;8390:61;;;8421:13;;8390:61;8379:6;:10;;:73;;;;:::i;:::-;:77;;:82;;;;:::i;:::-;8367:94;;8305:172;8491:10;:16;8502:4;8491:16;;;;;;;;;;;;;;;;;;;;;;;;;8490:17;:36;;;;;8512:10;:14;8523:2;8512:14;;;;;;;;;;;;;;;;;;;;;;;;;8511:15;8490:36;:60;;;;;8545:4;8530:20;;:4;:20;;;;8490:60;8486:115;;;8584:1;8572:13;;8486:115;8617:28;8648:24;8666:4;8648:9;:24::i;:::-;8617:55;;8691:8;;;;;;;;;;;:19;;;;;8704:6;;;;;;;;;;;8703:7;8691:19;:37;;;;;8714:10;:14;8725:2;8714:14;;;;;;;;;;;;;;;;;;;;;;;;;8691:37;:52;;;;;8732:11;;;;;;;;;;;8691:52;:94;;;;;8768:17;;8747:20;:38;8691:94;:126;;;;;8799:18;;8789:9;;:28;8691:126;8687:1111;;;8857:13;;8842:12;:28;8838:90;;;8907:1;8895:9;:13;;;;8838:90;8966:7;;8954:9;;:19;8946:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9012:67;9029:49;9033:6;9040:37;9044:20;9065:11;;9040:3;:37::i;:::-;9029:3;:49::i;:::-;9012:16;:67::i;:::-;9098:26;9127:21;9098:50;;9191:1;9170:18;:22;9167:105;;;9217:35;9230:21;9217:12;:35::i;:::-;9167:105;9290:9;;:11;;;;;;;;;:::i;:::-;;;;;;9336:12;9320:13;:28;;;;8819:545;8687:1111;;;9389:6;;;;;;;;;;;9388:7;:25;;;;;9399:10;:14;9410:2;9399:14;;;;;;;;;;;;;;;;;;;;;;;;;9388:25;:40;;;;;9417:11;;;;;;;;;;;9388:40;:82;;;;;9453:17;;9432:20;:38;9388:82;:114;;;;;9484:18;;9474:9;;:28;9388:114;9385:413;;;9523:67;9540:49;9544:6;9551:37;9555:20;9576:11;;9551:3;:37::i;:::-;9540:3;:49::i;:::-;9523:16;:67::i;:::-;9609:26;9638:21;9609:50;;9702:1;9681:18;:22;9678:105;;;9728:35;9741:21;9728:12;:35::i;:::-;9678:105;9504:294;9385:413;8687:1111;7578:2231;7540:2269;9834:1;9824:9;:11;9821:161;;;9874:39;9903:9;9874;:24;9892:4;9874:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9849:9;:24;9867:4;9849:24;;;;;;;;;;;;;;;:64;;;;9954:4;9931:39;;9940:4;9931:39;;;9960:9;9931:39;;;;;;:::i;:::-;;;;;;;;9821:161;10008:27;10028:6;10008:9;:15;10018:4;10008:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9992:9;:15;10002:4;9992:15;;;;;;;;;;;;;;;:43;;;;10060:40;10078:21;10089:9;10078:6;:10;;:21;;;;:::i;:::-;10060:9;:13;10070:2;10060:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10046:9;:13;10056:2;10046:13;;;;;;;;;;;;;;;:54;;;;10131:2;10116:41;;10125:4;10116:41;;;10135:21;10146:9;10135:6;:10;;:21;;;;:::i;:::-;10116:41;;;;;;:::i;:::-;;;;;;;;7268:2897;7199:2966;;;:::o;1325:190::-;1411:7;1444:1;1439;:6;;1447:12;1431:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1471:9;1487:1;1483;:5;;;;:::i;:::-;1471:17;;1506:1;1499:8;;;1325:190;;;;;:::o;1523:246::-;1581:7;1610:1;1605;:6;1601:47;;1635:1;1628:8;;;;1601:47;1658:9;1674:1;1670;:5;;;;:::i;:::-;1658:17;;1703:1;1698;1694;:5;;;;:::i;:::-;:10;1686:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1760:1;1753:8;;;1523:246;;;;;:::o;1777:132::-;1835:7;1862:39;1866:1;1869;1862:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1855:46;;1777:132;;;;:::o;10279:195::-;10338:4;10355:12;10422:7;10410:20;10402:28;;10465:1;10458:4;:8;10451:15;;;10279:195;;;:::o;10173:98::-;10230:7;10257:1;10255;:3;10254:9;;10262:1;10254:9;;;10260:1;10254:9;10247:16;;10173:98;;;;:::o;11420:483::-;5164:4;5155:6;;:13;;;;;;;;;;;;;;;;;;11498:21:::1;11536:1;11522:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11498:40;;11567:4;11549;11554:1;11549:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11593:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11583:4;11588:1;11583:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11626:62;11643:4;11658:15;;;;;;;;;;;11676:11;11626:8;:62::i;:::-;11699:15;;;;;;;;;;;:66;;;11780:11;11806:1;11822:4;11849;11869:15;11699:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11487:416;5200:5:::0;5191:6;;:14;;;;;;;;;;;;;;;;;;11420:483;:::o;12078:92::-;12135:10;;;;;;;;;;;:19;;:27;12155:6;12135:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12078:92;:::o;994:179::-;1052:7;1072:9;1088:1;1084;:5;;;;:::i;:::-;1072:17;;1113:1;1108;:6;;1100:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1164:1;1157:8;;;994:179;;;;:::o;1181:136::-;1239:7;1266:43;1270:1;1273;1266:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1259:50;;1181:136;;;;:::o;1917:189::-;2003:7;2035:1;2031;:5;2038:12;2023:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2062:9;2078:1;2074;:5;;;;:::i;:::-;2062:17;;2097:1;2090:8;;;1917:189;;;;;:::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:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:118::-;4833:24;4851:5;4833:24;:::i;:::-;4828:3;4821:37;4746:118;;:::o;4870:222::-;4963:4;5001:2;4990:9;4986:18;4978:26;;5014:71;5082:1;5071:9;5067:17;5058:6;5014:71;:::i;:::-;4870:222;;;;:::o;5098:329::-;5157:6;5206:2;5194:9;5185:7;5181:23;5177:32;5174:119;;;5212:79;;:::i;:::-;5174:119;5332:1;5357:53;5402:7;5393:6;5382:9;5378:22;5357:53;:::i;:::-;5347:63;;5303:117;5098:329;;;;:::o;5433:474::-;5501:6;5509;5558:2;5546:9;5537:7;5533:23;5529:32;5526:119;;;5564:79;;:::i;:::-;5526:119;5684:1;5709:53;5754:7;5745:6;5734:9;5730:22;5709:53;:::i;:::-;5699:63;;5655:117;5811:2;5837:53;5882:7;5873:6;5862:9;5858:22;5837:53;:::i;:::-;5827:63;;5782:118;5433:474;;;;;:::o;5913:180::-;5961:77;5958:1;5951:88;6058:4;6055:1;6048:15;6082:4;6079:1;6072:15;6099:102;6141:8;6188:5;6185:1;6181:13;6160:34;;6099:102;;;:::o;6207:848::-;6268:5;6275:4;6299:6;6290:15;;6323:5;6314:14;;6337:712;6358:1;6348:8;6345:15;6337:712;;;6453:4;6448:3;6444:14;6438:4;6435:24;6432:50;;;6462:18;;:::i;:::-;6432:50;6512:1;6502:8;6498:16;6495:451;;;6927:4;6920:5;6916:16;6907:25;;6495:451;6977:4;6971;6967:15;6959:23;;7007:32;7030:8;7007:32;:::i;:::-;6995:44;;6337:712;;;6207:848;;;;;;;:::o;7061:1073::-;7115:5;7306:8;7296:40;;7327:1;7318:10;;7329:5;;7296:40;7355:4;7345:36;;7372:1;7363:10;;7374:5;;7345:36;7441:4;7489:1;7484:27;;;;7525:1;7520:191;;;;7434:277;;7484:27;7502:1;7493:10;;7504:5;;;7520:191;7565:3;7555:8;7552:17;7549:43;;;7572:18;;:::i;:::-;7549:43;7621:8;7618:1;7614:16;7605:25;;7656:3;7649:5;7646:14;7643:40;;;7663:18;;:::i;:::-;7643:40;7696:5;;;7434:277;;7820:2;7810:8;7807:16;7801:3;7795:4;7792:13;7788:36;7770:2;7760:8;7757:16;7752:2;7746:4;7743:12;7739:35;7723:111;7720:246;;;7876:8;7870:4;7866:19;7857:28;;7911:3;7904:5;7901:14;7898:40;;;7918:18;;:::i;:::-;7898:40;7951:5;;7720:246;7991:42;8029:3;8019:8;8013:4;8010:1;7991:42;:::i;:::-;7976:57;;;;8065:4;8060:3;8056:14;8049:5;8046:25;8043:51;;;8074:18;;:::i;:::-;8043:51;8123:4;8116:5;8112:16;8103:25;;7061:1073;;;;;;:::o;8140:281::-;8198:5;8222:23;8240:4;8222:23;:::i;:::-;8214:31;;8266:25;8282:8;8266:25;:::i;:::-;8254:37;;8310:104;8347:66;8337:8;8331:4;8310:104;:::i;:::-;8301:113;;8140:281;;;;:::o;8427:410::-;8467:7;8490:20;8508:1;8490:20;:::i;:::-;8485:25;;8524:20;8542:1;8524:20;:::i;:::-;8519:25;;8579:1;8576;8572:9;8601:30;8619:11;8601:30;:::i;:::-;8590:41;;8780:1;8771:7;8767:15;8764:1;8761:22;8741:1;8734:9;8714:83;8691:139;;8810:18;;:::i;:::-;8691:139;8475:362;8427:410;;;;:::o;8843:182::-;8983:34;8979:1;8971:6;8967:14;8960:58;8843:182;:::o;9031:366::-;9173:3;9194:67;9258:2;9253:3;9194:67;:::i;:::-;9187:74;;9270:93;9359:3;9270:93;:::i;:::-;9388:2;9383:3;9379:12;9372:19;;9031:366;;;:::o;9403:419::-;9569:4;9607:2;9596:9;9592:18;9584:26;;9656:9;9650:4;9646:20;9642:1;9631:9;9627:17;9620:47;9684:131;9810:4;9684:131;:::i;:::-;9676:139;;9403:419;;;:::o;9828:173::-;9968:25;9964:1;9956:6;9952:14;9945:49;9828:173;:::o;10007:366::-;10149:3;10170:67;10234:2;10229:3;10170:67;:::i;:::-;10163:74;;10246:93;10335:3;10246:93;:::i;:::-;10364:2;10359:3;10355:12;10348:19;;10007:366;;;:::o;10379:419::-;10545:4;10583:2;10572:9;10568:18;10560:26;;10632:9;10626:4;10622:20;10618:1;10607:9;10603:17;10596:47;10660:131;10786:4;10660:131;:::i;:::-;10652:139;;10379:419;;;:::o;10804:143::-;10861:5;10892:6;10886:13;10877:22;;10908:33;10935:5;10908:33;:::i;:::-;10804:143;;;;:::o;10953:351::-;11023:6;11072:2;11060:9;11051:7;11047:23;11043:32;11040:119;;;11078:79;;:::i;:::-;11040:119;11198:1;11223:64;11279:7;11270:6;11259:9;11255:22;11223:64;:::i;:::-;11213:74;;11169:128;10953:351;;;;:::o;11310:332::-;11431:4;11469:2;11458:9;11454:18;11446:26;;11482:71;11550:1;11539:9;11535:17;11526:6;11482:71;:::i;:::-;11563:72;11631:2;11620:9;11616:18;11607:6;11563:72;:::i;:::-;11310:332;;;;;:::o;11648:85::-;11693:7;11722:5;11711:16;;11648:85;;;:::o;11739:60::-;11767:3;11788:5;11781:12;;11739:60;;;:::o;11805:158::-;11863:9;11896:61;11914:42;11923:32;11949:5;11923:32;:::i;:::-;11914:42;:::i;:::-;11896:61;:::i;:::-;11883:74;;11805:158;;;:::o;11969:147::-;12064:45;12103:5;12064:45;:::i;:::-;12059:3;12052:58;11969:147;;:::o;12122:807::-;12371:4;12409:3;12398:9;12394:19;12386:27;;12423:71;12491:1;12480:9;12476:17;12467:6;12423:71;:::i;:::-;12504:72;12572:2;12561:9;12557:18;12548:6;12504:72;:::i;:::-;12586:80;12662:2;12651:9;12647:18;12638:6;12586:80;:::i;:::-;12676;12752:2;12741:9;12737:18;12728:6;12676:80;:::i;:::-;12766:73;12834:3;12823:9;12819:19;12810:6;12766:73;:::i;:::-;12849;12917:3;12906:9;12902:19;12893:6;12849:73;:::i;:::-;12122:807;;;;;;;;;:::o;12935:143::-;12992:5;13023:6;13017:13;13008:22;;13039:33;13066:5;13039:33;:::i;:::-;12935:143;;;;:::o;13084:663::-;13172:6;13180;13188;13237:2;13225:9;13216:7;13212:23;13208:32;13205:119;;;13243:79;;:::i;:::-;13205:119;13363:1;13388:64;13444:7;13435:6;13424:9;13420:22;13388:64;:::i;:::-;13378:74;;13334:128;13501:2;13527:64;13583:7;13574:6;13563:9;13559:22;13527:64;:::i;:::-;13517:74;;13472:129;13640:2;13666:64;13722:7;13713:6;13702:9;13698:22;13666:64;:::i;:::-;13656:74;;13611:129;13084:663;;;;;:::o;13753:332::-;13874:4;13912:2;13901:9;13897:18;13889:26;;13925:71;13993:1;13982:9;13978:17;13969:6;13925:71;:::i;:::-;14006:72;14074:2;14063:9;14059:18;14050:6;14006:72;:::i;:::-;13753:332;;;;;:::o;14091:116::-;14161:21;14176:5;14161:21;:::i;:::-;14154:5;14151:32;14141:60;;14197:1;14194;14187:12;14141:60;14091:116;:::o;14213:137::-;14267:5;14298:6;14292:13;14283:22;;14314:30;14338:5;14314:30;:::i;:::-;14213:137;;;;:::o;14356:345::-;14423:6;14472:2;14460:9;14451:7;14447:23;14443:32;14440:119;;;14478:79;;:::i;:::-;14440:119;14598:1;14623:61;14676:7;14667:6;14656:9;14652:22;14623:61;:::i;:::-;14613:71;;14569:125;14356:345;;;;:::o;14707:223::-;14847:34;14843:1;14835:6;14831:14;14824:58;14916:6;14911:2;14903:6;14899:15;14892:31;14707:223;:::o;14936:366::-;15078:3;15099:67;15163:2;15158:3;15099:67;:::i;:::-;15092:74;;15175:93;15264:3;15175:93;:::i;:::-;15293:2;15288:3;15284:12;15277:19;;14936:366;;;:::o;15308:419::-;15474:4;15512:2;15501:9;15497:18;15489:26;;15561:9;15555:4;15551:20;15547:1;15536:9;15532:17;15525:47;15589:131;15715:4;15589:131;:::i;:::-;15581:139;;15308:419;;;:::o;15733:221::-;15873:34;15869:1;15861:6;15857:14;15850:58;15942:4;15937:2;15929:6;15925:15;15918:29;15733:221;:::o;15960:366::-;16102:3;16123:67;16187:2;16182:3;16123:67;:::i;:::-;16116:74;;16199:93;16288:3;16199:93;:::i;:::-;16317:2;16312:3;16308:12;16301:19;;15960:366;;;:::o;16332:419::-;16498:4;16536:2;16525:9;16521:18;16513:26;;16585:9;16579:4;16575:20;16571:1;16560:9;16556:17;16549:47;16613:131;16739:4;16613:131;:::i;:::-;16605:139;;16332:419;;;:::o;16757:224::-;16897:34;16893:1;16885:6;16881:14;16874:58;16966:7;16961:2;16953:6;16949:15;16942:32;16757:224;:::o;16987:366::-;17129:3;17150:67;17214:2;17209:3;17150:67;:::i;:::-;17143:74;;17226:93;17315:3;17226:93;:::i;:::-;17344:2;17339:3;17335:12;17328:19;;16987:366;;;:::o;17359:419::-;17525:4;17563:2;17552:9;17548:18;17540:26;;17612:9;17606:4;17602:20;17598:1;17587:9;17583:17;17576:47;17640:131;17766:4;17640:131;:::i;:::-;17632:139;;17359:419;;;:::o;17784:222::-;17924:34;17920:1;17912:6;17908:14;17901:58;17993:5;17988:2;17980:6;17976:15;17969:30;17784:222;:::o;18012:366::-;18154:3;18175:67;18239:2;18234:3;18175:67;:::i;:::-;18168:74;;18251:93;18340:3;18251:93;:::i;:::-;18369:2;18364:3;18360:12;18353:19;;18012:366;;;:::o;18384:419::-;18550:4;18588:2;18577:9;18573:18;18565:26;;18637:9;18631:4;18627:20;18623:1;18612:9;18608:17;18601:47;18665:131;18791:4;18665:131;:::i;:::-;18657:139;;18384:419;;;:::o;18809:228::-;18949:34;18945:1;18937:6;18933:14;18926:58;19018:11;19013:2;19005:6;19001:15;18994:36;18809:228;:::o;19043:366::-;19185:3;19206:67;19270:2;19265:3;19206:67;:::i;:::-;19199:74;;19282:93;19371:3;19282:93;:::i;:::-;19400:2;19395:3;19391:12;19384:19;;19043:366;;;:::o;19415:419::-;19581:4;19619:2;19608:9;19604:18;19596:26;;19668:9;19662:4;19658:20;19654:1;19643:9;19639:17;19632:47;19696:131;19822:4;19696:131;:::i;:::-;19688:139;;19415:419;;;:::o;19840:175::-;19980:27;19976:1;19968:6;19964:14;19957:51;19840:175;:::o;20021:366::-;20163:3;20184:67;20248:2;20243:3;20184:67;:::i;:::-;20177:74;;20260:93;20349:3;20260:93;:::i;:::-;20378:2;20373:3;20369:12;20362:19;;20021:366;;;:::o;20393:419::-;20559:4;20597:2;20586:9;20582:18;20574:26;;20646:9;20640:4;20636:20;20632:1;20621:9;20617:17;20610:47;20674:131;20800:4;20674:131;:::i;:::-;20666:139;;20393:419;;;:::o;20818:191::-;20858:3;20877:20;20895:1;20877:20;:::i;:::-;20872:25;;20911:20;20929:1;20911:20;:::i;:::-;20906:25;;20954:1;20951;20947:9;20940:16;;20975:3;20972:1;20969:10;20966:36;;;20982:18;;:::i;:::-;20966:36;20818:191;;;;:::o;21015:176::-;21155:28;21151:1;21143:6;21139:14;21132:52;21015:176;:::o;21197:366::-;21339:3;21360:67;21424:2;21419:3;21360:67;:::i;:::-;21353:74;;21436:93;21525:3;21436:93;:::i;:::-;21554:2;21549:3;21545:12;21538:19;;21197:366;;;:::o;21569:419::-;21735:4;21773:2;21762:9;21758:18;21750:26;;21822:9;21816:4;21812:20;21808:1;21797:9;21793:17;21786:47;21850:131;21976:4;21850:131;:::i;:::-;21842:139;;21569:419;;;:::o;21994:233::-;22033:3;22056:24;22074:5;22056:24;:::i;:::-;22047:33;;22102:66;22095:5;22092:77;22089:103;;22172:18;;:::i;:::-;22089:103;22219:1;22212:5;22208:13;22201:20;;21994:233;;;:::o;22233:165::-;22373:17;22369:1;22361:6;22357:14;22350:41;22233:165;:::o;22404:366::-;22546:3;22567:67;22631:2;22626:3;22567:67;:::i;:::-;22560:74;;22643:93;22732:3;22643:93;:::i;:::-;22761:2;22756:3;22752:12;22745:19;;22404:366;;;:::o;22776:419::-;22942:4;22980:2;22969:9;22965:18;22957:26;;23029:9;23023:4;23019:20;23015:1;23004:9;23000:17;22993:47;23057:131;23183:4;23057:131;:::i;:::-;23049:139;;22776:419;;;:::o;23201:194::-;23241:4;23261:20;23279:1;23261:20;:::i;:::-;23256:25;;23295:20;23313:1;23295:20;:::i;:::-;23290:25;;23339:1;23336;23332:9;23324:17;;23363:1;23357:4;23354:11;23351:37;;;23368:18;;:::i;:::-;23351:37;23201:194;;;;:::o;23401:180::-;23449:77;23446:1;23439:88;23546:4;23543:1;23536:15;23570:4;23567:1;23560:15;23587:185;23627:1;23644:20;23662:1;23644:20;:::i;:::-;23639:25;;23678:20;23696:1;23678:20;:::i;:::-;23673:25;;23717:1;23707:35;;23722:18;;:::i;:::-;23707:35;23764:1;23761;23757:9;23752:14;;23587:185;;;;:::o;23778:220::-;23918:34;23914:1;23906:6;23902:14;23895:58;23987:3;23982:2;23974:6;23970:15;23963:28;23778:220;:::o;24004:366::-;24146:3;24167:67;24231:2;24226:3;24167:67;:::i;:::-;24160:74;;24243:93;24332:3;24243:93;:::i;:::-;24361:2;24356:3;24352:12;24345:19;;24004:366;;;:::o;24376:419::-;24542:4;24580:2;24569:9;24565:18;24557:26;;24629:9;24623:4;24619:20;24615:1;24604:9;24600:17;24593:47;24657:131;24783:4;24657:131;:::i;:::-;24649:139;;24376:419;;;:::o;24801:180::-;24849:77;24846:1;24839:88;24946:4;24943:1;24936:15;24970:4;24967:1;24960:15;24987:180;25035:77;25032:1;25025:88;25132:4;25129:1;25122:15;25156:4;25153:1;25146:15;25173:114;25240:6;25274:5;25268:12;25258:22;;25173:114;;;:::o;25293:184::-;25392:11;25426:6;25421:3;25414:19;25466:4;25461:3;25457:14;25442:29;;25293:184;;;;:::o;25483:132::-;25550:4;25573:3;25565:11;;25603:4;25598:3;25594:14;25586:22;;25483:132;;;:::o;25621:108::-;25698:24;25716:5;25698:24;:::i;:::-;25693:3;25686:37;25621:108;;:::o;25735:179::-;25804:10;25825:46;25867:3;25859:6;25825:46;:::i;:::-;25903:4;25898:3;25894:14;25880:28;;25735:179;;;;:::o;25920:113::-;25990:4;26022;26017:3;26013:14;26005:22;;25920:113;;;:::o;26069:732::-;26188:3;26217:54;26265:5;26217:54;:::i;:::-;26287:86;26366:6;26361:3;26287:86;:::i;:::-;26280:93;;26397:56;26447:5;26397:56;:::i;:::-;26476:7;26507:1;26492:284;26517:6;26514:1;26511:13;26492:284;;;26593:6;26587:13;26620:63;26679:3;26664:13;26620:63;:::i;:::-;26613:70;;26706:60;26759:6;26706:60;:::i;:::-;26696:70;;26552:224;26539:1;26536;26532:9;26527:14;;26492:284;;;26496:14;26792:3;26785:10;;26193:608;;;26069:732;;;;:::o;26807:831::-;27070:4;27108:3;27097:9;27093:19;27085:27;;27122:71;27190:1;27179:9;27175:17;27166:6;27122:71;:::i;:::-;27203:80;27279:2;27268:9;27264:18;27255:6;27203:80;:::i;:::-;27330:9;27324:4;27320:20;27315:2;27304:9;27300:18;27293:48;27358:108;27461:4;27452:6;27358:108;:::i;:::-;27350:116;;27476:72;27544:2;27533:9;27529:18;27520:6;27476:72;:::i;:::-;27558:73;27626:3;27615:9;27611:19;27602:6;27558:73;:::i;:::-;26807:831;;;;;;;;:::o;27644:177::-;27784:29;27780:1;27772:6;27768:14;27761:53;27644:177;:::o;27827:366::-;27969:3;27990:67;28054:2;28049:3;27990:67;:::i;:::-;27983:74;;28066:93;28155:3;28066:93;:::i;:::-;28184:2;28179:3;28175:12;28168:19;;27827:366;;;:::o;28199:419::-;28365:4;28403:2;28392:9;28388:18;28380:26;;28452:9;28446:4;28442:20;28438:1;28427:9;28423:17;28416:47;28480:131;28606:4;28480:131;:::i;:::-;28472:139;;28199:419;;;:::o

Swarm Source

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