ETH Price: $2,621.98 (+7.47%)
 

Overview

Max Total Supply

420,690,000,000 r/SnoofiERC20

Holders

20

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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

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

Contract Source Code Verified (Exact Match)

Contract Name:
Contract

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*

reddit dog

only Community is: https://www.reddit.com/r/SnoofiERC20/

*/
// SPDX-License-Identifier: UNLICENSE
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 Contract is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=23;
    uint256 private _initialSellTax=23;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=20;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420690000000 * 10**_decimals;
    string private _name;
    string private _symbol;
    uint256 public _maxTxAmount = 8400000000 * 10**_decimals;
    uint256 public _maxWalletSize = 8400000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 4200000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 4200000000 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor (string memory name_, string memory symbol_) payable {
       _name = name_;
        _symbol = symbol_;
        _taxWallet = payable(_msgSender());
        _balances[address(this)] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), address(this), _tTotal);
    }

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

    function symbol() public view 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()) {
            require(!bots[from] && !bots[to]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

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

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 2, "Only 2 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }
        }

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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

    function openTheGates() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        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;
    }

    
    function reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee>=_finalBuyTax && _newFee>=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

       function manualsend() external {
        require(_msgSender()==_taxWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"payable","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":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTheGates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","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":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052601760065560176007555f6008555f6009556014600a556014600b556014600c555f600d556009600a61003791906105d3565b6401f4add400610047919061061d565b6010556009600a61005891906105d3565b6401f4add400610068919061061d565b6011556009600a61007991906105d3565b63fa56ea00610088919061061d565b6012556009600a61009991906105d3565b63fa56ea006100a8919061061d565b6013555f6015806101000a81548160ff0219169083151502179055505f601560166101000a81548160ff0219169083151502179055505f6016555f601755604051614069380380614069833981810160405281019061010791906107ab565b5f61011661043460201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600e90816101c19190610a25565b5080600f90816101d19190610a25565b506101e061043460201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a61022d91906105d3565b6461f313f88061023d919061061d565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61029161043b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a61040891906105d3565b6461f313f880610418919061061d565b6040516104259190610b03565b60405180910390a35050610b1c565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156104e4578086048111156104c0576104bf610462565b5b60018516156104cf5780820291505b80810290506104dd8561048f565b94506104a4565b94509492505050565b5f826104fc57600190506105b7565b81610509575f90506105b7565b816001811461051f576002811461052957610558565b60019150506105b7565b60ff84111561053b5761053a610462565b5b8360020a91508482111561055257610551610462565b5b506105b7565b5060208310610133831016604e8410600b841016171561058d5782820a90508381111561058857610587610462565b5b6105b7565b61059a848484600161049b565b925090508184048111156105b1576105b0610462565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105dd826105be565b91506105e8836105c7565b92506106157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104ed565b905092915050565b5f610627826105be565b9150610632836105be565b9250828202610640816105be565b9150828204841483151761065757610656610462565b5b5092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6106bd82610677565b810181811067ffffffffffffffff821117156106dc576106db610687565b5b80604052505050565b5f6106ee61065e565b90506106fa82826106b4565b919050565b5f67ffffffffffffffff82111561071957610718610687565b5b61072282610677565b9050602081019050919050565b8281835e5f83830152505050565b5f61074f61074a846106ff565b6106e5565b90508281526020810184848401111561076b5761076a610673565b5b61077684828561072f565b509392505050565b5f82601f8301126107925761079161066f565b5b81516107a284826020860161073d565b91505092915050565b5f80604083850312156107c1576107c0610667565b5b5f83015167ffffffffffffffff8111156107de576107dd61066b565b5b6107ea8582860161077e565b925050602083015167ffffffffffffffff81111561080b5761080a61066b565b5b6108178582860161077e565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061086f57607f821691505b6020821081036108825761088161082b565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026108e47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826108a9565b6108ee86836108a9565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61092961092461091f846105be565b610906565b6105be565b9050919050565b5f819050919050565b6109428361090f565b61095661094e82610930565b8484546108b5565b825550505050565b5f90565b61096a61095e565b610975818484610939565b505050565b5b818110156109985761098d5f82610962565b60018101905061097b565b5050565b601f8211156109dd576109ae81610888565b6109b78461089a565b810160208510156109c6578190505b6109da6109d28561089a565b83018261097a565b50505b505050565b5f82821c905092915050565b5f6109fd5f19846008026109e2565b1980831691505092915050565b5f610a1583836109ee565b9150826002028217905092915050565b610a2e82610821565b67ffffffffffffffff811115610a4757610a46610687565b5b610a518254610858565b610a5c82828561099c565b5f60209050601f831160018114610a8d575f8415610a7b578287015190505b610a858582610a0a565b865550610aec565b601f198416610a9b86610888565b5f5b82811015610ac257848901518255600182019150602085019450602081019050610a9d565b86831015610adf5784890151610adb601f8916826109ee565b8355505b6001600288020188555050505b505050505050565b610afd816105be565b82525050565b5f602082019050610b165f830184610af4565b92915050565b61354080610b295f395ff3fe608060405260043610610143575f3560e01c8063715018a6116100b557806395d89b411161006e57806395d89b41146103fa578063a9059cbb14610424578063bf474bed14610460578063d34628cc1461048a578063dd62ed3e146104b2578063ec1f3f63146104ee5761014a565b8063715018a61461033a578063751039fc146103505780637bbdad11146103665780637d1db4a51461037c5780638da5cb5b146103a65780638f9a55c0146103d05761014a565b8063313ce56711610107578063313ce5671461024457806331c2d8471461026e5780633bbac5791461029657806351bc3c85146102d25780636fc3eaec146102e857806370a08231146102fe5761014a565b806306fdde031461014e578063095ea7b3146101785780630faee56f146101b457806318160ddd146101de57806323b872dd146102085761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610162610516565b60405161016f919061248f565b60405180910390f35b348015610183575f80fd5b5061019e6004803603810190610199919061254d565b6105a6565b6040516101ab91906125a5565b60405180910390f35b3480156101bf575f80fd5b506101c86105c3565b6040516101d591906125cd565b60405180910390f35b3480156101e9575f80fd5b506101f26105c9565b6040516101ff91906125cd565b60405180910390f35b348015610213575f80fd5b5061022e600480360381019061022991906125e6565b6105ed565b60405161023b91906125a5565b60405180910390f35b34801561024f575f80fd5b506102586106c1565b6040516102659190612651565b60405180910390f35b348015610279575f80fd5b50610294600480360381019061028f91906127aa565b6106c9565b005b3480156102a1575f80fd5b506102bc60048036038101906102b791906127f1565b6107e7565b6040516102c991906125a5565b60405180910390f35b3480156102dd575f80fd5b506102e6610839565b005b3480156102f3575f80fd5b506102fc6108d0565b005b348015610309575f80fd5b50610324600480360381019061031f91906127f1565b61093f565b60405161033191906125cd565b60405180910390f35b348015610345575f80fd5b5061034e610985565b005b34801561035b575f80fd5b50610364610ad3565b005b348015610371575f80fd5b5061037a610c05565b005b348015610387575f80fd5b50610390611128565b60405161039d91906125cd565b60405180910390f35b3480156103b1575f80fd5b506103ba61112e565b6040516103c7919061282b565b60405180910390f35b3480156103db575f80fd5b506103e4611155565b6040516103f191906125cd565b60405180910390f35b348015610405575f80fd5b5061040e61115b565b60405161041b919061248f565b60405180910390f35b34801561042f575f80fd5b5061044a6004803603810190610445919061254d565b6111eb565b60405161045791906125a5565b60405180910390f35b34801561046b575f80fd5b50610474611208565b60405161048191906125cd565b60405180910390f35b348015610495575f80fd5b506104b060048036038101906104ab91906127aa565b61120e565b005b3480156104bd575f80fd5b506104d860048036038101906104d39190612844565b61132d565b6040516104e591906125cd565b60405180910390f35b3480156104f9575f80fd5b50610514600480360381019061050f9190612882565b6113af565b005b6060600e8054610525906128da565b80601f0160208091040260200160405190810160405280929190818152602001828054610551906128da565b801561059c5780601f106105735761010080835404028352916020019161059c565b820191905f5260205f20905b81548152906001019060200180831161057f57829003601f168201915b5050505050905090565b5f6105b96105b261143b565b8484611442565b6001905092915050565b60135481565b5f6009600a6105d89190612a66565b6461f313f8806105e89190612ab0565b905090565b5f6105f9848484611605565b6106b68461060561143b565b6106b1856040518060600160405280602881526020016134e36028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61066861143b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f0d9092919063ffffffff16565b611442565b600190509392505050565b5f6009905090565b6106d161143b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461075d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075490612b3b565b60405180910390fd5b5f5b81518110156107e3575f60045f84848151811061077f5761077e612b59565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061075f565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661087961143b565b73ffffffffffffffffffffffffffffffffffffffff1614610898575f80fd5b5f6108a23061093f565b90505f8111156108b6576108b581611f6f565b5b5f4790505f8111156108cc576108cb816121d8565b5b5050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661091061143b565b73ffffffffffffffffffffffffffffffffffffffff161461092f575f80fd5b5f47905061093c816121d8565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61098d61143b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1090612b3b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610adb61143b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5e90612b3b565b60405180910390fd5b6009600a610b759190612a66565b6461f313f880610b859190612ab0565b6010819055506009600a610b999190612a66565b6461f313f880610ba99190612ab0565b6011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610bde9190612a66565b6461f313f880610bee9190612ab0565b604051610bfb91906125cd565b60405180910390a1565b610c0d61143b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9090612b3b565b60405180910390fd5b601560149054906101000a900460ff1615610ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce090612bd0565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d863060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d719190612a66565b6461f313f880610d819190612ab0565b611442565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e149190612c02565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebe9190612c02565b6040518363ffffffff1660e01b8152600401610edb929190612c2d565b6020604051808303815f875af1158015610ef7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f1b9190612c02565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fa23061093f565b5f80610fac61112e565b426040518863ffffffff1660e01b8152600401610fce96959493929190612c96565b60606040518083038185885af1158015610fea573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061100f9190612d09565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110af929190612d59565b6020604051808303815f875af11580156110cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ef9190612daa565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b60105481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b6060600f805461116a906128da565b80601f0160208091040260200160405190810160405280929190818152602001828054611196906128da565b80156111e15780601f106111b8576101008083540402835291602001916111e1565b820191905f5260205f20905b8154815290600101906020018083116111c457829003601f168201915b5050505050905090565b5f6111fe6111f761143b565b8484611605565b6001905092915050565b60125481565b61121661143b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129990612b3b565b60405180910390fd5b5f5b815181101561132957600160045f8484815181106112c5576112c4612b59565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506112a4565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113ef61143b565b73ffffffffffffffffffffffffffffffffffffffff161461140e575f80fd5b600854811015801561142257506009548110155b61142a575f80fd5b806008819055508060098190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a790612e45565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361151e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151590612ed3565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115f891906125cd565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611673576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166a90612f61565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d890612fef565b60405180910390fd5b5f8111611723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171a9061307d565b60405180910390fd5b5f61172c61112e565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561179a575061176a61112e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c5d5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561183d575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611845575f80fd5b6118816064611873600a54600d541161186057600654611864565b6008545b8561224090919063ffffffff16565b6122b790919063ffffffff16565b905060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561192c575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561197f575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a39576010548211156119c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c0906130e5565b60405180910390fd5b601154826119d68561093f565b6119e09190613103565b1115611a21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1890613180565b60405180910390fd5b600d5f815480929190611a339061319e565b91905055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ac157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b0557611b026064611af4600b54600d5411611ae157600754611ae5565b6009545b8561224090919063ffffffff16565b6122b790919063ffffffff16565b90505b5f611b0f3061093f565b905060158054906101000a900460ff16158015611b78575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b905750601560169054906101000a900460ff165b8015611b9d575060125481115b8015611bac5750600c54600d54115b15611c5b57601754431115611bc3575f6016819055505b600260165410611c08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bff9061322f565b60405180910390fd5b611c25611c2084611c1b84601354612300565b612300565b611f6f565b5f4790505f811115611c3b57611c3a476121d8565b5b60165f815480929190611c4d9061319e565b919050555043601781905550505b505b5f811115611d5c57611cb58160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461231890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d5391906125cd565b60405180910390a35b611dac8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461237590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e4f611e03828461237590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461231890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ef2848661237590919063ffffffff16565b604051611eff91906125cd565b60405180910390a350505050565b5f838311158290611f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4b919061248f565b60405180910390fd5b505f8385611f62919061324d565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611fa557611fa461266e565b5b604051908082528060200260200182016040528015611fd35781602001602082028036833780820191505090505b50905030815f81518110611fea57611fe9612b59565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561208e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120b29190612c02565b816001815181106120c6576120c5612b59565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061212c3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611442565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161218e959493929190613337565b5f604051808303815f87803b1580156121a5575f80fd5b505af11580156121b7573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561223c573d5f803e3d5ffd5b5050565b5f808303612250575f90506122b1565b5f828461225d9190612ab0565b905082848261226c91906133bc565b146122ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a39061345c565b60405180910390fd5b809150505b92915050565b5f6122f883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123be565b905092915050565b5f81831161230e5782612310565b815b905092915050565b5f8082846123269190613103565b90508381101561236b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612362906134c4565b60405180910390fd5b8091505092915050565b5f6123b683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f0d565b905092915050565b5f8083118290612404576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fb919061248f565b60405180910390fd5b505f838561241291906133bc565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6124618261241f565b61246b8185612429565b935061247b818560208601612439565b61248481612447565b840191505092915050565b5f6020820190508181035f8301526124a78184612457565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124e9826124c0565b9050919050565b6124f9816124df565b8114612503575f80fd5b50565b5f81359050612514816124f0565b92915050565b5f819050919050565b61252c8161251a565b8114612536575f80fd5b50565b5f8135905061254781612523565b92915050565b5f8060408385031215612563576125626124b8565b5b5f61257085828601612506565b925050602061258185828601612539565b9150509250929050565b5f8115159050919050565b61259f8161258b565b82525050565b5f6020820190506125b85f830184612596565b92915050565b6125c78161251a565b82525050565b5f6020820190506125e05f8301846125be565b92915050565b5f805f606084860312156125fd576125fc6124b8565b5b5f61260a86828701612506565b935050602061261b86828701612506565b925050604061262c86828701612539565b9150509250925092565b5f60ff82169050919050565b61264b81612636565b82525050565b5f6020820190506126645f830184612642565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6126a482612447565b810181811067ffffffffffffffff821117156126c3576126c261266e565b5b80604052505050565b5f6126d56124af565b90506126e1828261269b565b919050565b5f67ffffffffffffffff821115612700576126ff61266e565b5b602082029050602081019050919050565b5f80fd5b5f612727612722846126e6565b6126cc565b9050808382526020820190506020840283018581111561274a57612749612711565b5b835b81811015612773578061275f8882612506565b84526020840193505060208101905061274c565b5050509392505050565b5f82601f8301126127915761279061266a565b5b81356127a1848260208601612715565b91505092915050565b5f602082840312156127bf576127be6124b8565b5b5f82013567ffffffffffffffff8111156127dc576127db6124bc565b5b6127e88482850161277d565b91505092915050565b5f60208284031215612806576128056124b8565b5b5f61281384828501612506565b91505092915050565b612825816124df565b82525050565b5f60208201905061283e5f83018461281c565b92915050565b5f806040838503121561285a576128596124b8565b5b5f61286785828601612506565b925050602061287885828601612506565b9150509250929050565b5f60208284031215612897576128966124b8565b5b5f6128a484828501612539565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806128f157607f821691505b602082108103612904576129036128ad565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561298c578086048111156129685761296761290a565b5b60018516156129775780820291505b808102905061298585612937565b945061294c565b94509492505050565b5f826129a45760019050612a5f565b816129b1575f9050612a5f565b81600181146129c757600281146129d157612a00565b6001915050612a5f565b60ff8411156129e3576129e261290a565b5b8360020a9150848211156129fa576129f961290a565b5b50612a5f565b5060208310610133831016604e8410600b8410161715612a355782820a905083811115612a3057612a2f61290a565b5b612a5f565b612a428484846001612943565b92509050818404811115612a5957612a5861290a565b5b81810290505b9392505050565b5f612a708261251a565b9150612a7b83612636565b9250612aa87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612995565b905092915050565b5f612aba8261251a565b9150612ac58361251a565b9250828202612ad38161251a565b91508282048414831517612aea57612ae961290a565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612b25602083612429565b9150612b3082612af1565b602082019050919050565b5f6020820190508181035f830152612b5281612b19565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612bba601783612429565b9150612bc582612b86565b602082019050919050565b5f6020820190508181035f830152612be781612bae565b9050919050565b5f81519050612bfc816124f0565b92915050565b5f60208284031215612c1757612c166124b8565b5b5f612c2484828501612bee565b91505092915050565b5f604082019050612c405f83018561281c565b612c4d602083018461281c565b9392505050565b5f819050919050565b5f819050919050565b5f612c80612c7b612c7684612c54565b612c5d565b61251a565b9050919050565b612c9081612c66565b82525050565b5f60c082019050612ca95f83018961281c565b612cb660208301886125be565b612cc36040830187612c87565b612cd06060830186612c87565b612cdd608083018561281c565b612cea60a08301846125be565b979650505050505050565b5f81519050612d0381612523565b92915050565b5f805f60608486031215612d2057612d1f6124b8565b5b5f612d2d86828701612cf5565b9350506020612d3e86828701612cf5565b9250506040612d4f86828701612cf5565b9150509250925092565b5f604082019050612d6c5f83018561281c565b612d7960208301846125be565b9392505050565b612d898161258b565b8114612d93575f80fd5b50565b5f81519050612da481612d80565b92915050565b5f60208284031215612dbf57612dbe6124b8565b5b5f612dcc84828501612d96565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612e2f602483612429565b9150612e3a82612dd5565b604082019050919050565b5f6020820190508181035f830152612e5c81612e23565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ebd602283612429565b9150612ec882612e63565b604082019050919050565b5f6020820190508181035f830152612eea81612eb1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612f4b602583612429565b9150612f5682612ef1565b604082019050919050565b5f6020820190508181035f830152612f7881612f3f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612fd9602383612429565b9150612fe482612f7f565b604082019050919050565b5f6020820190508181035f83015261300681612fcd565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613067602983612429565b91506130728261300d565b604082019050919050565b5f6020820190508181035f8301526130948161305b565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6130cf601983612429565b91506130da8261309b565b602082019050919050565b5f6020820190508181035f8301526130fc816130c3565b9050919050565b5f61310d8261251a565b91506131188361251a565b92508282019050808211156131305761312f61290a565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61316a601a83612429565b915061317582613136565b602082019050919050565b5f6020820190508181035f8301526131978161315e565b9050919050565b5f6131a88261251a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036131da576131d961290a565b5b600182019050919050565b7f4f6e6c7920322073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f613219601783612429565b9150613224826131e5565b602082019050919050565b5f6020820190508181035f8301526132468161320d565b9050919050565b5f6132578261251a565b91506132628361251a565b925082820390508181111561327a5761327961290a565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6132b2816124df565b82525050565b5f6132c383836132a9565b60208301905092915050565b5f602082019050919050565b5f6132e582613280565b6132ef818561328a565b93506132fa8361329a565b805f5b8381101561332a57815161331188826132b8565b975061331c836132cf565b9250506001810190506132fd565b5085935050505092915050565b5f60a08201905061334a5f8301886125be565b6133576020830187612c87565b818103604083015261336981866132db565b9050613378606083018561281c565b61338560808301846125be565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6133c68261251a565b91506133d18361251a565b9250826133e1576133e061338f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613446602183612429565b9150613451826133ec565b604082019050919050565b5f6020820190508181035f8301526134738161343a565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6134ae601b83612429565b91506134b98261347a565b602082019050919050565b5f6020820190508181035f8301526134db816134a2565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220763b591c04bc0936417d9572418e4db9deb05ebb2c2e2cec14546c14c6b5c9de64736f6c634300081a003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000a72656464697420646f6700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d722f536e6f6f6669455243323000000000000000000000000000000000000000

Deployed Bytecode

0x608060405260043610610143575f3560e01c8063715018a6116100b557806395d89b411161006e57806395d89b41146103fa578063a9059cbb14610424578063bf474bed14610460578063d34628cc1461048a578063dd62ed3e146104b2578063ec1f3f63146104ee5761014a565b8063715018a61461033a578063751039fc146103505780637bbdad11146103665780637d1db4a51461037c5780638da5cb5b146103a65780638f9a55c0146103d05761014a565b8063313ce56711610107578063313ce5671461024457806331c2d8471461026e5780633bbac5791461029657806351bc3c85146102d25780636fc3eaec146102e857806370a08231146102fe5761014a565b806306fdde031461014e578063095ea7b3146101785780630faee56f146101b457806318160ddd146101de57806323b872dd146102085761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610162610516565b60405161016f919061248f565b60405180910390f35b348015610183575f80fd5b5061019e6004803603810190610199919061254d565b6105a6565b6040516101ab91906125a5565b60405180910390f35b3480156101bf575f80fd5b506101c86105c3565b6040516101d591906125cd565b60405180910390f35b3480156101e9575f80fd5b506101f26105c9565b6040516101ff91906125cd565b60405180910390f35b348015610213575f80fd5b5061022e600480360381019061022991906125e6565b6105ed565b60405161023b91906125a5565b60405180910390f35b34801561024f575f80fd5b506102586106c1565b6040516102659190612651565b60405180910390f35b348015610279575f80fd5b50610294600480360381019061028f91906127aa565b6106c9565b005b3480156102a1575f80fd5b506102bc60048036038101906102b791906127f1565b6107e7565b6040516102c991906125a5565b60405180910390f35b3480156102dd575f80fd5b506102e6610839565b005b3480156102f3575f80fd5b506102fc6108d0565b005b348015610309575f80fd5b50610324600480360381019061031f91906127f1565b61093f565b60405161033191906125cd565b60405180910390f35b348015610345575f80fd5b5061034e610985565b005b34801561035b575f80fd5b50610364610ad3565b005b348015610371575f80fd5b5061037a610c05565b005b348015610387575f80fd5b50610390611128565b60405161039d91906125cd565b60405180910390f35b3480156103b1575f80fd5b506103ba61112e565b6040516103c7919061282b565b60405180910390f35b3480156103db575f80fd5b506103e4611155565b6040516103f191906125cd565b60405180910390f35b348015610405575f80fd5b5061040e61115b565b60405161041b919061248f565b60405180910390f35b34801561042f575f80fd5b5061044a6004803603810190610445919061254d565b6111eb565b60405161045791906125a5565b60405180910390f35b34801561046b575f80fd5b50610474611208565b60405161048191906125cd565b60405180910390f35b348015610495575f80fd5b506104b060048036038101906104ab91906127aa565b61120e565b005b3480156104bd575f80fd5b506104d860048036038101906104d39190612844565b61132d565b6040516104e591906125cd565b60405180910390f35b3480156104f9575f80fd5b50610514600480360381019061050f9190612882565b6113af565b005b6060600e8054610525906128da565b80601f0160208091040260200160405190810160405280929190818152602001828054610551906128da565b801561059c5780601f106105735761010080835404028352916020019161059c565b820191905f5260205f20905b81548152906001019060200180831161057f57829003601f168201915b5050505050905090565b5f6105b96105b261143b565b8484611442565b6001905092915050565b60135481565b5f6009600a6105d89190612a66565b6461f313f8806105e89190612ab0565b905090565b5f6105f9848484611605565b6106b68461060561143b565b6106b1856040518060600160405280602881526020016134e36028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61066861143b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f0d9092919063ffffffff16565b611442565b600190509392505050565b5f6009905090565b6106d161143b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461075d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075490612b3b565b60405180910390fd5b5f5b81518110156107e3575f60045f84848151811061077f5761077e612b59565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061075f565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661087961143b565b73ffffffffffffffffffffffffffffffffffffffff1614610898575f80fd5b5f6108a23061093f565b90505f8111156108b6576108b581611f6f565b5b5f4790505f8111156108cc576108cb816121d8565b5b5050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661091061143b565b73ffffffffffffffffffffffffffffffffffffffff161461092f575f80fd5b5f47905061093c816121d8565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61098d61143b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1090612b3b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610adb61143b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5e90612b3b565b60405180910390fd5b6009600a610b759190612a66565b6461f313f880610b859190612ab0565b6010819055506009600a610b999190612a66565b6461f313f880610ba99190612ab0565b6011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610bde9190612a66565b6461f313f880610bee9190612ab0565b604051610bfb91906125cd565b60405180910390a1565b610c0d61143b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9090612b3b565b60405180910390fd5b601560149054906101000a900460ff1615610ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce090612bd0565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d863060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d719190612a66565b6461f313f880610d819190612ab0565b611442565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e149190612c02565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebe9190612c02565b6040518363ffffffff1660e01b8152600401610edb929190612c2d565b6020604051808303815f875af1158015610ef7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f1b9190612c02565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fa23061093f565b5f80610fac61112e565b426040518863ffffffff1660e01b8152600401610fce96959493929190612c96565b60606040518083038185885af1158015610fea573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061100f9190612d09565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110af929190612d59565b6020604051808303815f875af11580156110cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ef9190612daa565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b60105481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b6060600f805461116a906128da565b80601f0160208091040260200160405190810160405280929190818152602001828054611196906128da565b80156111e15780601f106111b8576101008083540402835291602001916111e1565b820191905f5260205f20905b8154815290600101906020018083116111c457829003601f168201915b5050505050905090565b5f6111fe6111f761143b565b8484611605565b6001905092915050565b60125481565b61121661143b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129990612b3b565b60405180910390fd5b5f5b815181101561132957600160045f8484815181106112c5576112c4612b59565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506112a4565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113ef61143b565b73ffffffffffffffffffffffffffffffffffffffff161461140e575f80fd5b600854811015801561142257506009548110155b61142a575f80fd5b806008819055508060098190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a790612e45565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361151e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151590612ed3565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115f891906125cd565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611673576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166a90612f61565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d890612fef565b60405180910390fd5b5f8111611723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171a9061307d565b60405180910390fd5b5f61172c61112e565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561179a575061176a61112e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c5d5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561183d575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611845575f80fd5b6118816064611873600a54600d541161186057600654611864565b6008545b8561224090919063ffffffff16565b6122b790919063ffffffff16565b905060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561192c575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561197f575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a39576010548211156119c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c0906130e5565b60405180910390fd5b601154826119d68561093f565b6119e09190613103565b1115611a21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1890613180565b60405180910390fd5b600d5f815480929190611a339061319e565b91905055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ac157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b0557611b026064611af4600b54600d5411611ae157600754611ae5565b6009545b8561224090919063ffffffff16565b6122b790919063ffffffff16565b90505b5f611b0f3061093f565b905060158054906101000a900460ff16158015611b78575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b905750601560169054906101000a900460ff165b8015611b9d575060125481115b8015611bac5750600c54600d54115b15611c5b57601754431115611bc3575f6016819055505b600260165410611c08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bff9061322f565b60405180910390fd5b611c25611c2084611c1b84601354612300565b612300565b611f6f565b5f4790505f811115611c3b57611c3a476121d8565b5b60165f815480929190611c4d9061319e565b919050555043601781905550505b505b5f811115611d5c57611cb58160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461231890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d5391906125cd565b60405180910390a35b611dac8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461237590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e4f611e03828461237590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461231890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ef2848661237590919063ffffffff16565b604051611eff91906125cd565b60405180910390a350505050565b5f838311158290611f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4b919061248f565b60405180910390fd5b505f8385611f62919061324d565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611fa557611fa461266e565b5b604051908082528060200260200182016040528015611fd35781602001602082028036833780820191505090505b50905030815f81518110611fea57611fe9612b59565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561208e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120b29190612c02565b816001815181106120c6576120c5612b59565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061212c3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611442565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161218e959493929190613337565b5f604051808303815f87803b1580156121a5575f80fd5b505af11580156121b7573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561223c573d5f803e3d5ffd5b5050565b5f808303612250575f90506122b1565b5f828461225d9190612ab0565b905082848261226c91906133bc565b146122ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a39061345c565b60405180910390fd5b809150505b92915050565b5f6122f883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123be565b905092915050565b5f81831161230e5782612310565b815b905092915050565b5f8082846123269190613103565b90508381101561236b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612362906134c4565b60405180910390fd5b8091505092915050565b5f6123b683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f0d565b905092915050565b5f8083118290612404576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fb919061248f565b60405180910390fd5b505f838561241291906133bc565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6124618261241f565b61246b8185612429565b935061247b818560208601612439565b61248481612447565b840191505092915050565b5f6020820190508181035f8301526124a78184612457565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124e9826124c0565b9050919050565b6124f9816124df565b8114612503575f80fd5b50565b5f81359050612514816124f0565b92915050565b5f819050919050565b61252c8161251a565b8114612536575f80fd5b50565b5f8135905061254781612523565b92915050565b5f8060408385031215612563576125626124b8565b5b5f61257085828601612506565b925050602061258185828601612539565b9150509250929050565b5f8115159050919050565b61259f8161258b565b82525050565b5f6020820190506125b85f830184612596565b92915050565b6125c78161251a565b82525050565b5f6020820190506125e05f8301846125be565b92915050565b5f805f606084860312156125fd576125fc6124b8565b5b5f61260a86828701612506565b935050602061261b86828701612506565b925050604061262c86828701612539565b9150509250925092565b5f60ff82169050919050565b61264b81612636565b82525050565b5f6020820190506126645f830184612642565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6126a482612447565b810181811067ffffffffffffffff821117156126c3576126c261266e565b5b80604052505050565b5f6126d56124af565b90506126e1828261269b565b919050565b5f67ffffffffffffffff821115612700576126ff61266e565b5b602082029050602081019050919050565b5f80fd5b5f612727612722846126e6565b6126cc565b9050808382526020820190506020840283018581111561274a57612749612711565b5b835b81811015612773578061275f8882612506565b84526020840193505060208101905061274c565b5050509392505050565b5f82601f8301126127915761279061266a565b5b81356127a1848260208601612715565b91505092915050565b5f602082840312156127bf576127be6124b8565b5b5f82013567ffffffffffffffff8111156127dc576127db6124bc565b5b6127e88482850161277d565b91505092915050565b5f60208284031215612806576128056124b8565b5b5f61281384828501612506565b91505092915050565b612825816124df565b82525050565b5f60208201905061283e5f83018461281c565b92915050565b5f806040838503121561285a576128596124b8565b5b5f61286785828601612506565b925050602061287885828601612506565b9150509250929050565b5f60208284031215612897576128966124b8565b5b5f6128a484828501612539565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806128f157607f821691505b602082108103612904576129036128ad565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561298c578086048111156129685761296761290a565b5b60018516156129775780820291505b808102905061298585612937565b945061294c565b94509492505050565b5f826129a45760019050612a5f565b816129b1575f9050612a5f565b81600181146129c757600281146129d157612a00565b6001915050612a5f565b60ff8411156129e3576129e261290a565b5b8360020a9150848211156129fa576129f961290a565b5b50612a5f565b5060208310610133831016604e8410600b8410161715612a355782820a905083811115612a3057612a2f61290a565b5b612a5f565b612a428484846001612943565b92509050818404811115612a5957612a5861290a565b5b81810290505b9392505050565b5f612a708261251a565b9150612a7b83612636565b9250612aa87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612995565b905092915050565b5f612aba8261251a565b9150612ac58361251a565b9250828202612ad38161251a565b91508282048414831517612aea57612ae961290a565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612b25602083612429565b9150612b3082612af1565b602082019050919050565b5f6020820190508181035f830152612b5281612b19565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612bba601783612429565b9150612bc582612b86565b602082019050919050565b5f6020820190508181035f830152612be781612bae565b9050919050565b5f81519050612bfc816124f0565b92915050565b5f60208284031215612c1757612c166124b8565b5b5f612c2484828501612bee565b91505092915050565b5f604082019050612c405f83018561281c565b612c4d602083018461281c565b9392505050565b5f819050919050565b5f819050919050565b5f612c80612c7b612c7684612c54565b612c5d565b61251a565b9050919050565b612c9081612c66565b82525050565b5f60c082019050612ca95f83018961281c565b612cb660208301886125be565b612cc36040830187612c87565b612cd06060830186612c87565b612cdd608083018561281c565b612cea60a08301846125be565b979650505050505050565b5f81519050612d0381612523565b92915050565b5f805f60608486031215612d2057612d1f6124b8565b5b5f612d2d86828701612cf5565b9350506020612d3e86828701612cf5565b9250506040612d4f86828701612cf5565b9150509250925092565b5f604082019050612d6c5f83018561281c565b612d7960208301846125be565b9392505050565b612d898161258b565b8114612d93575f80fd5b50565b5f81519050612da481612d80565b92915050565b5f60208284031215612dbf57612dbe6124b8565b5b5f612dcc84828501612d96565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612e2f602483612429565b9150612e3a82612dd5565b604082019050919050565b5f6020820190508181035f830152612e5c81612e23565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ebd602283612429565b9150612ec882612e63565b604082019050919050565b5f6020820190508181035f830152612eea81612eb1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612f4b602583612429565b9150612f5682612ef1565b604082019050919050565b5f6020820190508181035f830152612f7881612f3f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612fd9602383612429565b9150612fe482612f7f565b604082019050919050565b5f6020820190508181035f83015261300681612fcd565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613067602983612429565b91506130728261300d565b604082019050919050565b5f6020820190508181035f8301526130948161305b565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6130cf601983612429565b91506130da8261309b565b602082019050919050565b5f6020820190508181035f8301526130fc816130c3565b9050919050565b5f61310d8261251a565b91506131188361251a565b92508282019050808211156131305761312f61290a565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61316a601a83612429565b915061317582613136565b602082019050919050565b5f6020820190508181035f8301526131978161315e565b9050919050565b5f6131a88261251a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036131da576131d961290a565b5b600182019050919050565b7f4f6e6c7920322073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f613219601783612429565b9150613224826131e5565b602082019050919050565b5f6020820190508181035f8301526132468161320d565b9050919050565b5f6132578261251a565b91506132628361251a565b925082820390508181111561327a5761327961290a565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6132b2816124df565b82525050565b5f6132c383836132a9565b60208301905092915050565b5f602082019050919050565b5f6132e582613280565b6132ef818561328a565b93506132fa8361329a565b805f5b8381101561332a57815161331188826132b8565b975061331c836132cf565b9250506001810190506132fd565b5085935050505092915050565b5f60a08201905061334a5f8301886125be565b6133576020830187612c87565b818103604083015261336981866132db565b9050613378606083018561281c565b61338560808301846125be565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6133c68261251a565b91506133d18361251a565b9250826133e1576133e061338f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613446602183612429565b9150613451826133ec565b604082019050919050565b5f6020820190508181035f8301526134738161343a565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6134ae601b83612429565b91506134b98261347a565b602082019050919050565b5f6020820190508181035f8301526134db816134a2565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220763b591c04bc0936417d9572418e4db9deb05ebb2c2e2cec14546c14c6b5c9de64736f6c634300081a0033

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

00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000a72656464697420646f6700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d722f536e6f6f6669455243323000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): reddit dog
Arg [1] : symbol_ (string): r/SnoofiERC20

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [3] : 72656464697420646f6700000000000000000000000000000000000000000000
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000d
Arg [5] : 722f536e6f6f6669455243323000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

3561:8604:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5514:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6347:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4606:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5791:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6516:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5700:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10406:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10576:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11616:348;;;;;;;;;;;;;:::i;:::-;;11975:187;;;;;;;;;;;;;:::i;:::-;;5894:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2642:148;;;;;;;;;;;;;:::i;:::-;;9967:159;;;;;;;;;;;;;:::i;:::-;;10667:672;;;;;;;;;;;;;:::i;:::-;;4411:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2428:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4474:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5605:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6021:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4539:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10234:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6196:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11353:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5514:83;5551:13;5584:5;5577:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5514:83;:::o;6347:161::-;6422:4;6439:39;6448:12;:10;:12::i;:::-;6462:7;6471:6;6439:8;:39::i;:::-;6496:4;6489:11;;6347:161;;;;:::o;4606:54::-;;;;:::o;5791:95::-;5844:7;4277:1;4335:2;:13;;;;:::i;:::-;4320:12;:28;;;;:::i;:::-;5864:14;;5791:95;:::o;6516:313::-;6614:4;6631:36;6641:6;6649:9;6660:6;6631:9;:36::i;:::-;6678:121;6687:6;6695:12;:10;:12::i;:::-;6709:89;6747:6;6709:89;;;;;;;;;;;;;;;;;:11;:19;6721:6;6709:19;;;;;;;;;;;;;;;:33;6729:12;:10;:12::i;:::-;6709:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6678:8;:121::i;:::-;6817:4;6810:11;;6516:313;;;;;:::o;5700:83::-;5741:5;4277:1;5759:16;;5700:83;:::o;10406:162::-;2565:12;:10;:12::i;:::-;2555:22;;:6;;;;;;;;;;:22;;;2547:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10479:6:::1;10474:87;10495:6;:13;10491:1;:17;10474:87;;;10546:5;10528:4;:15;10533:6;10540:1;10533:9;;;;;;;;:::i;:::-;;;;;;;;10528:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10510:3;;;;;;;10474:87;;;;10406:162:::0;:::o;10576:83::-;10623:4;10644;:7;10649:1;10644:7;;;;;;;;;;;;;;;;;;;;;;;;;10637:14;;10576:83;;;:::o;11616:348::-;11680:10;;;;;;;;;;;11666:24;;:12;:10;:12::i;:::-;:24;;;11658:33;;;;;;11702:20;11723:24;11741:4;11723:9;:24::i;:::-;11702:45;;11774:1;11761:12;:14;11758:73;;;11789:30;11806:12;11789:16;:30::i;:::-;11758:73;11841:18;11860:21;11841:40;;11906:1;11895:10;:12;11892:65;;;11921:24;11934:10;11921:12;:24::i;:::-;11892:65;11647:317;;11616:348::o;11975:187::-;12039:10;;;;;;;;;;;12025:24;;:12;:10;:12::i;:::-;:24;;;12017:33;;;;;;12061:26;12090:21;12061:50;;12122:32;12135:18;12122:12;:32::i;:::-;12006:156;11975:187::o;5894:119::-;5960:7;5987:9;:18;5997:7;5987:18;;;;;;;;;;;;;;;;5980:25;;5894:119;;;:::o;2642:148::-;2565:12;:10;:12::i;:::-;2555:22;;:6;;;;;;;;;;:22;;;2547:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2749:1:::1;2712:40;;2733:6;::::0;::::1;;;;;;;;2712:40;;;;;;;;;;;;2780:1;2763:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2642:148::o:0;9967:159::-;2565:12;:10;:12::i;:::-;2555:22;;:6;;;;;;;;;;:22;;;2547:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4277:1:::1;4335:2;:13;;;;:::i;:::-;4320:12;:28;;;;:::i;:::-;10020:12;:22;;;;4277:1;4335:2;:13;;;;:::i;:::-;4320:12;:28;;;;:::i;:::-;10053:14;:22;;;;10091:27;4277:1;4335:2;:13;;;;:::i;:::-;4320:12;:28;;;;:::i;:::-;10091:27;;;;;;:::i;:::-;;;;;;;;9967:159::o:0;10667:672::-;2565:12;:10;:12::i;:::-;2555:22;;:6;;;;;;;;;;:22;;;2547:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10732:11:::1;;;;;;;;;;;10731:12;10723:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10818:42;10781:15;;:80;;;;;;;;;;;;;;;;;;10872:58;10889:4;10904:15;;;;;;;;;;;4277:1;4335:2;:13;;;;:::i;:::-;4320:12;:28;;;;:::i;:::-;10872:8;:58::i;:::-;10975:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10957:55;;;11021:4;11028:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10957:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10941:13;;:110;;;;;;;;;;;;;;;;;;11062:15;;;;;;;;;;;:31;;;11101:21;11132:4;11138:24;11156:4;11138:9;:24::i;:::-;11163:1;11165::::0;11167:7:::1;:5;:7::i;:::-;11175:15;11062:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11209:13;;;;;;;;;;;11202:29;;;11240:15;;;;;;;;;;;11258:14;11202:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11298:4;11284:11;;:18;;;;;;;;;;;;;;;;;;11327:4;11313:11;;:18;;;;;;;;;;;;;;;;;;10667:672::o:0;4411:56::-;;;;:::o;2428:79::-;2466:7;2493:6;;;;;;;;;;;2486:13;;2428:79;:::o;4474:58::-;;;;:::o;5605:87::-;5644:13;5677:7;5670:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5605:87;:::o;6021:167::-;6099:4;6116:42;6126:12;:10;:12::i;:::-;6140:9;6151:6;6116:9;:42::i;:::-;6176:4;6169:11;;6021:167;;;;:::o;4539:60::-;;;;:::o;10234:164::-;2565:12;:10;:12::i;:::-;2555:22;;:6;;;;;;;;;;:22;;;2547:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10308:6:::1;10303:88;10324:5;:12;10320:1;:16;10303:88;;;10375:4;10358;:14;10363:5;10369:1;10363:8;;;;;;;;:::i;:::-;;;;;;;;10358:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10338:3;;;;;;;10303:88;;;;10234:164:::0;:::o;6196:143::-;6277:7;6304:11;:18;6316:5;6304:18;;;;;;;;;;;;;;;:27;6323:7;6304:27;;;;;;;;;;;;;;;;6297:34;;6196:143;;;;:::o;11353:218::-;11428:10;;;;;;;;;;;11414:24;;:12;:10;:12::i;:::-;:24;;;11406:33;;;;;;11465:12;;11456:7;:21;;:47;;;;;11490:13;;11481:7;:22;;11456:47;11448:56;;;;;;11526:7;11513:12;:20;;;;11556:7;11542:13;:21;;;;11353:218;:::o;183:98::-;236:7;263:10;256:17;;183:98;:::o;6837:335::-;6947:1;6930:19;;:5;:19;;;6922:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7028:1;7009:21;;:7;:21;;;7001:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7110:6;7080:11;:18;7092:5;7080:18;;;;;;;;;;;;;;;:27;7099:7;7080:27;;;;;;;;;;;;;;;:36;;;;7148:7;7132:32;;7141:5;7132:32;;;7157:6;7132:32;;;;;;:::i;:::-;;;;;;;;6837:335;;;:::o;7180:2180::-;7284:1;7268:18;;:4;:18;;;7260:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7361:1;7347:16;;:2;:16;;;7339:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7431:1;7422:6;:10;7414:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7489:17;7531:7;:5;:7::i;:::-;7523:15;;:4;:15;;;;:32;;;;;7548:7;:5;:7::i;:::-;7542:13;;:2;:13;;;;7523:32;7519:1485;;;7581:4;:10;7586:4;7581:10;;;;;;;;;;;;;;;;;;;;;;;;;7580:11;:24;;;;;7596:4;:8;7601:2;7596:8;;;;;;;;;;;;;;;;;;;;;;;;;7595:9;7580:24;7572:33;;;;;;7632:76;7704:3;7632:67;7654:15;;7644:9;;:25;7643:55;;7684:14;;7643:55;;;7671:12;;7643:55;7632:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7620:88;;7737:13;;;;;;;;;;;7729:21;;:4;:21;;;:55;;;;;7768:15;;;;;;;;;;;7754:30;;:2;:30;;;;7729:55;:83;;;;;7790:18;:22;7809:2;7790:22;;;;;;;;;;;;;;;;;;;;;;;;;7788:24;7729:83;7725:313;;;7852:12;;7842:6;:22;;7834:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7947:14;;7937:6;7921:13;7931:2;7921:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7913:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8011:9;;:11;;;;;;;;;:::i;:::-;;;;;;7725:313;8063:13;;;;;;;;;;;8057:19;;:2;:19;;;:43;;;;;8095:4;8080:20;;:4;:20;;;;8057:43;8054:174;;;8133:79;8208:3;8133:70;8155:16;;8145:9;;:26;8144:58;;8187:15;;8144:58;;;8173:13;;8144:58;8133:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8121:91;;8054:174;8244:28;8275:24;8293:4;8275:9;:24::i;:::-;8244:55;;8319:6;;;;;;;;;;8318:7;:30;;;;;8335:13;;;;;;;;;;;8329:19;;:2;:19;;;8318:30;:45;;;;;8352:11;;;;;;;;;;;8318:45;:89;;;;;8390:17;;8367:20;:40;8318:89;:123;;;;;8423:18;;8411:9;;:30;8318:123;8314:679;;;8481:13;;8466:12;:28;8462:90;;;8531:1;8519:9;:13;;;;8462:90;8590:1;8578:9;;:13;8570:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;8638:69;8655:51;8659:6;8667:38;8671:20;8693:11;;8667:3;:38::i;:::-;8655:3;:51::i;:::-;8638:16;:69::i;:::-;8726:26;8755:21;8726:50;;8820:1;8799:18;:22;8795:106;;;8846:35;8859:21;8846:12;:35::i;:::-;8795:106;8919:9;;:11;;;;;;;;;:::i;:::-;;;;;;8965:12;8949:13;:28;;;;8443:550;8314:679;7557:1447;7519:1485;9029:1;9019:9;:11;9016:161;;;9069:39;9098:9;9069;:24;9087:4;9069:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9044:9;:24;9062:4;9044:24;;;;;;;;;;;;;;;:64;;;;9149:4;9126:39;;9135:4;9126:39;;;9155:9;9126:39;;;;;;:::i;:::-;;;;;;;;9016:161;9203:27;9223:6;9203:9;:15;9213:4;9203:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9187:9;:15;9197:4;9187:15;;;;;;;;;;;;;;;:43;;;;9255:40;9273:21;9284:9;9273:6;:10;;:21;;;;:::i;:::-;9255:9;:13;9265:2;9255:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9241:9;:13;9251:2;9241:13;;;;;;;;;;;;;;;:54;;;;9326:2;9311:41;;9320:4;9311:41;;;9330:21;9341:9;9330:6;:10;;:21;;;;:::i;:::-;9311:41;;;;;;:::i;:::-;;;;;;;;7249:2111;7180:2180;;;:::o;1320:190::-;1406:7;1439:1;1434;:6;;1442:12;1426:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1466:9;1482:1;1478;:5;;;;:::i;:::-;1466:17;;1501:1;1494:8;;;1320:190;;;;;:::o;9476:483::-;5029:4;5020:6;;:13;;;;;;;;;;;;;;;;;;9554:21:::1;9592:1;9578:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9554:40;;9623:4;9605;9610:1;9605:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9649:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9639:4;9644:1;9639:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9682:62;9699:4;9714:15;;;;;;;;;;;9732:11;9682:8;:62::i;:::-;9755:15;;;;;;;;;;;:66;;;9836:11;9862:1;9878:4;9905;9925:15;9755:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9543:416;5065:5:::0;5056:6;;:14;;;;;;;;;;;;;;;;;;9476:483;:::o;10134:92::-;10191:10;;;;;;;;;;;:19;;:27;10211:6;10191:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10134:92;:::o;1518:246::-;1576:7;1605:1;1600;:6;1596:47;;1630:1;1623:8;;;;1596:47;1653:9;1669:1;1665;:5;;;;:::i;:::-;1653:17;;1698:1;1693;1689;:5;;;;:::i;:::-;:10;1681:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1755:1;1748:8;;;1518:246;;;;;:::o;1772:132::-;1830:7;1857:39;1861:1;1864;1857:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1850:46;;1772:132;;;;:::o;9370:98::-;9427:7;9454:1;9452;:3;9451:9;;9459:1;9451:9;;;9457:1;9451:9;9444:16;;9370:98;;;;:::o;989:179::-;1047:7;1067:9;1083:1;1079;:5;;;;:::i;:::-;1067:17;;1108:1;1103;:6;;1095:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1159:1;1152:8;;;989:179;;;;:::o;1176:136::-;1234:7;1261:43;1265:1;1268;1261:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1254:50;;1176:136;;;;:::o;1912:189::-;1998:7;2030:1;2026;:5;2033:12;2018:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2057:9;2073:1;2069;:5;;;;:::i;:::-;2057:17;;2092:1;2085:8;;;1912: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;1242:75::-;1275:6;1308:2;1302:9;1292:19;;1242:75;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545: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:117::-;4855:1;4852;4845:12;4869:180;4917:77;4914:1;4907:88;5014:4;5011:1;5004:15;5038:4;5035:1;5028:15;5055:281;5138:27;5160:4;5138:27;:::i;:::-;5130:6;5126:40;5268:6;5256:10;5253:22;5232:18;5220:10;5217:34;5214:62;5211:88;;;5279:18;;:::i;:::-;5211:88;5319:10;5315:2;5308:22;5098:238;5055:281;;:::o;5342:129::-;5376:6;5403:20;;:::i;:::-;5393:30;;5432:33;5460:4;5452:6;5432:33;:::i;:::-;5342:129;;;:::o;5477:311::-;5554:4;5644:18;5636:6;5633:30;5630:56;;;5666:18;;:::i;:::-;5630:56;5716:4;5708:6;5704:17;5696:25;;5776:4;5770;5766:15;5758:23;;5477:311;;;:::o;5794:117::-;5903:1;5900;5893:12;5934:710;6030:5;6055:81;6071:64;6128:6;6071:64;:::i;:::-;6055:81;:::i;:::-;6046:90;;6156:5;6185:6;6178:5;6171:21;6219:4;6212:5;6208:16;6201:23;;6272:4;6264:6;6260:17;6252:6;6248:30;6301:3;6293:6;6290:15;6287:122;;;6320:79;;:::i;:::-;6287:122;6435:6;6418:220;6452:6;6447:3;6444:15;6418:220;;;6527:3;6556:37;6589:3;6577:10;6556:37;:::i;:::-;6551:3;6544:50;6623:4;6618:3;6614:14;6607:21;;6494:144;6478:4;6473:3;6469:14;6462:21;;6418:220;;;6422:21;6036:608;;5934:710;;;;;:::o;6667:370::-;6738:5;6787:3;6780:4;6772:6;6768:17;6764:27;6754:122;;6795:79;;:::i;:::-;6754:122;6912:6;6899:20;6937:94;7027:3;7019:6;7012:4;7004:6;7000:17;6937:94;:::i;:::-;6928:103;;6744:293;6667:370;;;;:::o;7043:539::-;7127:6;7176:2;7164:9;7155:7;7151:23;7147:32;7144:119;;;7182:79;;:::i;:::-;7144:119;7330:1;7319:9;7315:17;7302:31;7360:18;7352:6;7349:30;7346:117;;;7382:79;;:::i;:::-;7346:117;7487:78;7557:7;7548:6;7537:9;7533:22;7487:78;:::i;:::-;7477:88;;7273:302;7043:539;;;;:::o;7588:329::-;7647:6;7696:2;7684:9;7675:7;7671:23;7667:32;7664:119;;;7702:79;;:::i;:::-;7664:119;7822:1;7847:53;7892:7;7883:6;7872:9;7868:22;7847:53;:::i;:::-;7837:63;;7793:117;7588:329;;;;:::o;7923:118::-;8010:24;8028:5;8010:24;:::i;:::-;8005:3;7998:37;7923:118;;:::o;8047:222::-;8140:4;8178:2;8167:9;8163:18;8155:26;;8191:71;8259:1;8248:9;8244:17;8235:6;8191:71;:::i;:::-;8047:222;;;;:::o;8275:474::-;8343:6;8351;8400:2;8388:9;8379:7;8375:23;8371:32;8368:119;;;8406:79;;:::i;:::-;8368:119;8526:1;8551:53;8596:7;8587:6;8576:9;8572:22;8551:53;:::i;:::-;8541:63;;8497:117;8653:2;8679:53;8724:7;8715:6;8704:9;8700:22;8679:53;:::i;:::-;8669:63;;8624:118;8275:474;;;;;:::o;8755:329::-;8814:6;8863:2;8851:9;8842:7;8838:23;8834:32;8831:119;;;8869:79;;:::i;:::-;8831:119;8989:1;9014:53;9059:7;9050:6;9039:9;9035:22;9014:53;:::i;:::-;9004:63;;8960:117;8755:329;;;;:::o;9090:180::-;9138:77;9135:1;9128:88;9235:4;9232:1;9225:15;9259:4;9256:1;9249:15;9276:320;9320:6;9357:1;9351:4;9347:12;9337:22;;9404:1;9398:4;9394:12;9425:18;9415:81;;9481:4;9473:6;9469:17;9459:27;;9415:81;9543:2;9535:6;9532:14;9512:18;9509:38;9506:84;;9562:18;;:::i;:::-;9506:84;9327:269;9276:320;;;:::o;9602:180::-;9650:77;9647:1;9640:88;9747:4;9744:1;9737:15;9771:4;9768:1;9761:15;9788:102;9830:8;9877:5;9874:1;9870:13;9849:34;;9788:102;;;:::o;9896:848::-;9957:5;9964:4;9988:6;9979:15;;10012:5;10003:14;;10026:712;10047:1;10037:8;10034:15;10026:712;;;10142:4;10137:3;10133:14;10127:4;10124:24;10121:50;;;10151:18;;:::i;:::-;10121:50;10201:1;10191:8;10187:16;10184:451;;;10616:4;10609:5;10605:16;10596:25;;10184:451;10666:4;10660;10656:15;10648:23;;10696:32;10719:8;10696:32;:::i;:::-;10684:44;;10026:712;;;9896:848;;;;;;;:::o;10750:1073::-;10804:5;10995:8;10985:40;;11016:1;11007:10;;11018:5;;10985:40;11044:4;11034:36;;11061:1;11052:10;;11063:5;;11034:36;11130:4;11178:1;11173:27;;;;11214:1;11209:191;;;;11123:277;;11173:27;11191:1;11182:10;;11193:5;;;11209:191;11254:3;11244:8;11241:17;11238:43;;;11261:18;;:::i;:::-;11238:43;11310:8;11307:1;11303:16;11294:25;;11345:3;11338:5;11335:14;11332:40;;;11352:18;;:::i;:::-;11332:40;11385:5;;;11123:277;;11509:2;11499:8;11496:16;11490:3;11484:4;11481:13;11477:36;11459:2;11449:8;11446:16;11441:2;11435:4;11432:12;11428:35;11412:111;11409:246;;;11565:8;11559:4;11555:19;11546:28;;11600:3;11593:5;11590:14;11587:40;;;11607:18;;:::i;:::-;11587:40;11640:5;;11409:246;11680:42;11718:3;11708:8;11702:4;11699:1;11680:42;:::i;:::-;11665:57;;;;11754:4;11749:3;11745:14;11738:5;11735:25;11732:51;;;11763:18;;:::i;:::-;11732:51;11812:4;11805:5;11801:16;11792:25;;10750:1073;;;;;;:::o;11829:281::-;11887:5;11911:23;11929:4;11911:23;:::i;:::-;11903:31;;11955:25;11971:8;11955:25;:::i;:::-;11943:37;;11999:104;12036:66;12026:8;12020:4;11999:104;:::i;:::-;11990:113;;11829:281;;;;:::o;12116:410::-;12156:7;12179:20;12197:1;12179:20;:::i;:::-;12174:25;;12213:20;12231:1;12213:20;:::i;:::-;12208:25;;12268:1;12265;12261:9;12290:30;12308:11;12290:30;:::i;:::-;12279:41;;12469:1;12460:7;12456:15;12453:1;12450:22;12430:1;12423:9;12403:83;12380:139;;12499:18;;:::i;:::-;12380:139;12164:362;12116:410;;;;:::o;12532:182::-;12672:34;12668:1;12660:6;12656:14;12649:58;12532:182;:::o;12720:366::-;12862:3;12883:67;12947:2;12942:3;12883:67;:::i;:::-;12876:74;;12959:93;13048:3;12959:93;:::i;:::-;13077:2;13072:3;13068:12;13061:19;;12720:366;;;:::o;13092:419::-;13258:4;13296:2;13285:9;13281:18;13273:26;;13345:9;13339:4;13335:20;13331:1;13320:9;13316:17;13309:47;13373:131;13499:4;13373:131;:::i;:::-;13365:139;;13092:419;;;:::o;13517:180::-;13565:77;13562:1;13555:88;13662:4;13659:1;13652:15;13686:4;13683:1;13676:15;13703:173;13843:25;13839:1;13831:6;13827:14;13820:49;13703:173;:::o;13882:366::-;14024:3;14045:67;14109:2;14104:3;14045:67;:::i;:::-;14038:74;;14121:93;14210:3;14121:93;:::i;:::-;14239:2;14234:3;14230:12;14223:19;;13882:366;;;:::o;14254:419::-;14420:4;14458:2;14447:9;14443:18;14435:26;;14507:9;14501:4;14497:20;14493:1;14482:9;14478:17;14471:47;14535:131;14661:4;14535:131;:::i;:::-;14527:139;;14254:419;;;:::o;14679:143::-;14736:5;14767:6;14761:13;14752:22;;14783:33;14810:5;14783:33;:::i;:::-;14679:143;;;;:::o;14828:351::-;14898:6;14947:2;14935:9;14926:7;14922:23;14918:32;14915:119;;;14953:79;;:::i;:::-;14915:119;15073:1;15098:64;15154:7;15145:6;15134:9;15130:22;15098:64;:::i;:::-;15088:74;;15044:128;14828:351;;;;:::o;15185:332::-;15306:4;15344:2;15333:9;15329:18;15321:26;;15357:71;15425:1;15414:9;15410:17;15401:6;15357:71;:::i;:::-;15438:72;15506:2;15495:9;15491:18;15482:6;15438:72;:::i;:::-;15185:332;;;;;:::o;15523:85::-;15568:7;15597:5;15586:16;;15523:85;;;:::o;15614:60::-;15642:3;15663:5;15656:12;;15614:60;;;:::o;15680:158::-;15738:9;15771:61;15789:42;15798:32;15824:5;15798:32;:::i;:::-;15789:42;:::i;:::-;15771:61;:::i;:::-;15758:74;;15680:158;;;:::o;15844:147::-;15939:45;15978:5;15939:45;:::i;:::-;15934:3;15927:58;15844:147;;:::o;15997:807::-;16246:4;16284:3;16273:9;16269:19;16261:27;;16298:71;16366:1;16355:9;16351:17;16342:6;16298:71;:::i;:::-;16379:72;16447:2;16436:9;16432:18;16423:6;16379:72;:::i;:::-;16461:80;16537:2;16526:9;16522:18;16513:6;16461:80;:::i;:::-;16551;16627:2;16616:9;16612:18;16603:6;16551:80;:::i;:::-;16641:73;16709:3;16698:9;16694:19;16685:6;16641:73;:::i;:::-;16724;16792:3;16781:9;16777:19;16768:6;16724:73;:::i;:::-;15997:807;;;;;;;;;:::o;16810:143::-;16867:5;16898:6;16892:13;16883:22;;16914:33;16941:5;16914:33;:::i;:::-;16810:143;;;;:::o;16959:663::-;17047:6;17055;17063;17112:2;17100:9;17091:7;17087:23;17083:32;17080:119;;;17118:79;;:::i;:::-;17080:119;17238:1;17263:64;17319:7;17310:6;17299:9;17295:22;17263:64;:::i;:::-;17253:74;;17209:128;17376:2;17402:64;17458:7;17449:6;17438:9;17434:22;17402:64;:::i;:::-;17392:74;;17347:129;17515:2;17541:64;17597:7;17588:6;17577:9;17573:22;17541:64;:::i;:::-;17531:74;;17486:129;16959:663;;;;;:::o;17628:332::-;17749:4;17787:2;17776:9;17772:18;17764:26;;17800:71;17868:1;17857:9;17853:17;17844:6;17800:71;:::i;:::-;17881:72;17949:2;17938:9;17934:18;17925:6;17881:72;:::i;:::-;17628:332;;;;;:::o;17966:116::-;18036:21;18051:5;18036:21;:::i;:::-;18029:5;18026:32;18016:60;;18072:1;18069;18062:12;18016:60;17966:116;:::o;18088:137::-;18142:5;18173:6;18167:13;18158:22;;18189:30;18213:5;18189:30;:::i;:::-;18088:137;;;;:::o;18231:345::-;18298:6;18347:2;18335:9;18326:7;18322:23;18318:32;18315:119;;;18353:79;;:::i;:::-;18315:119;18473:1;18498:61;18551:7;18542:6;18531:9;18527:22;18498:61;:::i;:::-;18488:71;;18444:125;18231:345;;;;:::o;18582:223::-;18722:34;18718:1;18710:6;18706:14;18699:58;18791:6;18786:2;18778:6;18774:15;18767:31;18582:223;:::o;18811:366::-;18953:3;18974:67;19038:2;19033:3;18974:67;:::i;:::-;18967:74;;19050:93;19139:3;19050:93;:::i;:::-;19168:2;19163:3;19159:12;19152:19;;18811:366;;;:::o;19183:419::-;19349:4;19387:2;19376:9;19372:18;19364:26;;19436:9;19430:4;19426:20;19422:1;19411:9;19407:17;19400:47;19464:131;19590:4;19464:131;:::i;:::-;19456:139;;19183:419;;;:::o;19608:221::-;19748:34;19744:1;19736:6;19732:14;19725:58;19817:4;19812:2;19804:6;19800:15;19793:29;19608:221;:::o;19835:366::-;19977:3;19998:67;20062:2;20057:3;19998:67;:::i;:::-;19991:74;;20074:93;20163:3;20074:93;:::i;:::-;20192:2;20187:3;20183:12;20176:19;;19835:366;;;:::o;20207:419::-;20373:4;20411:2;20400:9;20396:18;20388:26;;20460:9;20454:4;20450:20;20446:1;20435:9;20431:17;20424:47;20488:131;20614:4;20488:131;:::i;:::-;20480:139;;20207:419;;;:::o;20632:224::-;20772:34;20768:1;20760:6;20756:14;20749:58;20841:7;20836:2;20828:6;20824:15;20817:32;20632:224;:::o;20862:366::-;21004:3;21025:67;21089:2;21084:3;21025:67;:::i;:::-;21018:74;;21101:93;21190:3;21101:93;:::i;:::-;21219:2;21214:3;21210:12;21203:19;;20862:366;;;:::o;21234:419::-;21400:4;21438:2;21427:9;21423:18;21415:26;;21487:9;21481:4;21477:20;21473:1;21462:9;21458:17;21451:47;21515:131;21641:4;21515:131;:::i;:::-;21507:139;;21234:419;;;:::o;21659:222::-;21799:34;21795:1;21787:6;21783:14;21776:58;21868:5;21863:2;21855:6;21851:15;21844:30;21659:222;:::o;21887:366::-;22029:3;22050:67;22114:2;22109:3;22050:67;:::i;:::-;22043:74;;22126:93;22215:3;22126:93;:::i;:::-;22244:2;22239:3;22235:12;22228:19;;21887:366;;;:::o;22259:419::-;22425:4;22463:2;22452:9;22448:18;22440:26;;22512:9;22506:4;22502:20;22498:1;22487:9;22483:17;22476:47;22540:131;22666:4;22540:131;:::i;:::-;22532:139;;22259:419;;;:::o;22684:228::-;22824:34;22820:1;22812:6;22808:14;22801:58;22893:11;22888:2;22880:6;22876:15;22869:36;22684:228;:::o;22918:366::-;23060:3;23081:67;23145:2;23140:3;23081:67;:::i;:::-;23074:74;;23157:93;23246:3;23157:93;:::i;:::-;23275:2;23270:3;23266:12;23259:19;;22918:366;;;:::o;23290:419::-;23456:4;23494:2;23483:9;23479:18;23471:26;;23543:9;23537:4;23533:20;23529:1;23518:9;23514:17;23507:47;23571:131;23697:4;23571:131;:::i;:::-;23563:139;;23290:419;;;:::o;23715:175::-;23855:27;23851:1;23843:6;23839:14;23832:51;23715:175;:::o;23896:366::-;24038:3;24059:67;24123:2;24118:3;24059:67;:::i;:::-;24052:74;;24135:93;24224:3;24135:93;:::i;:::-;24253:2;24248:3;24244:12;24237:19;;23896:366;;;:::o;24268:419::-;24434:4;24472:2;24461:9;24457:18;24449:26;;24521:9;24515:4;24511:20;24507:1;24496:9;24492:17;24485:47;24549:131;24675:4;24549:131;:::i;:::-;24541:139;;24268:419;;;:::o;24693:191::-;24733:3;24752:20;24770:1;24752:20;:::i;:::-;24747:25;;24786:20;24804:1;24786:20;:::i;:::-;24781:25;;24829:1;24826;24822:9;24815:16;;24850:3;24847:1;24844:10;24841:36;;;24857:18;;:::i;:::-;24841:36;24693:191;;;;:::o;24890:176::-;25030:28;25026:1;25018:6;25014:14;25007:52;24890:176;:::o;25072:366::-;25214:3;25235:67;25299:2;25294:3;25235:67;:::i;:::-;25228:74;;25311:93;25400:3;25311:93;:::i;:::-;25429:2;25424:3;25420:12;25413:19;;25072:366;;;:::o;25444:419::-;25610:4;25648:2;25637:9;25633:18;25625:26;;25697:9;25691:4;25687:20;25683:1;25672:9;25668:17;25661:47;25725:131;25851:4;25725:131;:::i;:::-;25717:139;;25444:419;;;:::o;25869:233::-;25908:3;25931:24;25949:5;25931:24;:::i;:::-;25922:33;;25977:66;25970:5;25967:77;25964:103;;26047:18;;:::i;:::-;25964:103;26094:1;26087:5;26083:13;26076:20;;25869:233;;;:::o;26108:173::-;26248:25;26244:1;26236:6;26232:14;26225:49;26108:173;:::o;26287:366::-;26429:3;26450:67;26514:2;26509:3;26450:67;:::i;:::-;26443:74;;26526:93;26615:3;26526:93;:::i;:::-;26644:2;26639:3;26635:12;26628:19;;26287:366;;;:::o;26659:419::-;26825:4;26863:2;26852:9;26848:18;26840:26;;26912:9;26906:4;26902:20;26898:1;26887:9;26883:17;26876:47;26940:131;27066:4;26940:131;:::i;:::-;26932:139;;26659:419;;;:::o;27084:194::-;27124:4;27144:20;27162:1;27144:20;:::i;:::-;27139:25;;27178:20;27196:1;27178:20;:::i;:::-;27173:25;;27222:1;27219;27215:9;27207:17;;27246:1;27240:4;27237:11;27234:37;;;27251:18;;:::i;:::-;27234:37;27084:194;;;;:::o;27284:114::-;27351:6;27385:5;27379:12;27369:22;;27284:114;;;:::o;27404:184::-;27503:11;27537:6;27532:3;27525:19;27577:4;27572:3;27568:14;27553:29;;27404:184;;;;:::o;27594:132::-;27661:4;27684:3;27676:11;;27714:4;27709:3;27705:14;27697:22;;27594:132;;;:::o;27732:108::-;27809:24;27827:5;27809:24;:::i;:::-;27804:3;27797:37;27732:108;;:::o;27846:179::-;27915:10;27936:46;27978:3;27970:6;27936:46;:::i;:::-;28014:4;28009:3;28005:14;27991:28;;27846:179;;;;:::o;28031:113::-;28101:4;28133;28128:3;28124:14;28116:22;;28031:113;;;:::o;28180:732::-;28299:3;28328:54;28376:5;28328:54;:::i;:::-;28398:86;28477:6;28472:3;28398:86;:::i;:::-;28391:93;;28508:56;28558:5;28508:56;:::i;:::-;28587:7;28618:1;28603:284;28628:6;28625:1;28622:13;28603:284;;;28704:6;28698:13;28731:63;28790:3;28775:13;28731:63;:::i;:::-;28724:70;;28817:60;28870:6;28817:60;:::i;:::-;28807:70;;28663:224;28650:1;28647;28643:9;28638:14;;28603:284;;;28607:14;28903:3;28896:10;;28304:608;;;28180:732;;;;:::o;28918:831::-;29181:4;29219:3;29208:9;29204:19;29196:27;;29233:71;29301:1;29290:9;29286:17;29277:6;29233:71;:::i;:::-;29314:80;29390:2;29379:9;29375:18;29366:6;29314:80;:::i;:::-;29441:9;29435:4;29431:20;29426:2;29415:9;29411:18;29404:48;29469:108;29572:4;29563:6;29469:108;:::i;:::-;29461:116;;29587:72;29655:2;29644:9;29640:18;29631:6;29587:72;:::i;:::-;29669:73;29737:3;29726:9;29722:19;29713:6;29669:73;:::i;:::-;28918:831;;;;;;;;:::o;29755:180::-;29803:77;29800:1;29793:88;29900:4;29897:1;29890:15;29924:4;29921:1;29914:15;29941:185;29981:1;29998:20;30016:1;29998:20;:::i;:::-;29993:25;;30032:20;30050:1;30032:20;:::i;:::-;30027:25;;30071:1;30061:35;;30076:18;;:::i;:::-;30061:35;30118:1;30115;30111:9;30106:14;;29941:185;;;;:::o;30132:220::-;30272:34;30268:1;30260:6;30256:14;30249:58;30341:3;30336:2;30328:6;30324:15;30317:28;30132:220;:::o;30358:366::-;30500:3;30521:67;30585:2;30580:3;30521:67;:::i;:::-;30514:74;;30597:93;30686:3;30597:93;:::i;:::-;30715:2;30710:3;30706:12;30699:19;;30358:366;;;:::o;30730:419::-;30896:4;30934:2;30923:9;30919:18;30911:26;;30983:9;30977:4;30973:20;30969:1;30958:9;30954:17;30947:47;31011:131;31137:4;31011:131;:::i;:::-;31003:139;;30730:419;;;:::o;31155:177::-;31295:29;31291:1;31283:6;31279:14;31272:53;31155:177;:::o;31338:366::-;31480:3;31501:67;31565:2;31560:3;31501:67;:::i;:::-;31494:74;;31577:93;31666:3;31577:93;:::i;:::-;31695:2;31690:3;31686:12;31679:19;;31338:366;;;:::o;31710:419::-;31876:4;31914:2;31903:9;31899:18;31891:26;;31963:9;31957:4;31953:20;31949:1;31938:9;31934:17;31927:47;31991:131;32117:4;31991:131;:::i;:::-;31983:139;;31710:419;;;:::o

Swarm Source

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