ETH Price: $2,345.39 (-2.78%)

Token

Classic Doge (cDOGE)
 

Overview

Max Total Supply

100,000,000 cDOGE

Holders

139

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
0.91622962 cDOGE

Value
$0.00
0x597f6ac82c3ee101ff47876b7cf5afe9ebbb394b
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:
ClassicDoge

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-02
*/

/**

Website : https://cdoge.xyz/

Telegram : https://twitter.com/ClassicDogeETH

Twitter : https://t.me/ClassicDogeETH

Linktree : https://linktr.ee/ClassicDogeETH
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.18;

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 ClassicDoge 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 => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

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

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    string private constant _name = unicode"Classic Doge";
    string private constant _symbol = unicode"cDOGE";
    uint256 public _maxTxAmount =   2000000 * 10**_decimals;
    uint256 public _maxWalletSize = 2000000 * 10**_decimals;
    uint256 public _taxSwapThreshold=500000 * 10**_decimals;
    uint256 public _maxTaxSwap = 1000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(0xeCDF5f294fd3D01C3b5A4ed36905DB49D070a929);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

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

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

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

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

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

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

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

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

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

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

    function getBuyCount() public view returns (uint256) {
    return _buyCount;
    }

    function getTaxes() public view returns (uint256, uint256) {
    uint256 currentBuyTax = (_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax;
    uint256 currentSellTax = (_buyCount > _reduceSellTaxAt) ? _finalSellTax : _initialSellTax;
    return (currentBuyTax, currentSellTax);
    }

    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() && from != address(this)) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

            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) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

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

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

    function 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;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function openTrading() 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;
    }

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getBuyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

60806040526000600560006101000a81548160ff0219169083151502179055506014600655602860075560006008556000600955601e600a55601e600b55601e600c556000600d556008600a62000057919062000630565b621e848062000067919062000681565b600e556008600a6200007a919062000630565b621e84806200008a919062000681565b600f556008600a6200009d919062000630565b6207a120620000ad919062000681565b6010556008600a620000c0919062000630565b620f4240620000d0919062000681565b6011556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055503480156200011657600080fd5b506000620001296200046560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073ecdf5f294fd3d01c3b5a4ed36905db49d070a929600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a6200022c919062000630565b6305f5e1006200023d919062000681565b60016000620002516200046560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002a56200046d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003d86200046560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a62000437919062000630565b6305f5e10062000448919062000681565b604051620004579190620006dd565b60405180910390a3620006fa565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200052457808604811115620004fc57620004fb62000496565b5b60018516156200050c5780820291505b80810290506200051c85620004c5565b9450620004dc565b94509492505050565b6000826200053f576001905062000612565b816200054f576000905062000612565b81600181146200056857600281146200057357620005a9565b600191505062000612565b60ff84111562000588576200058762000496565b5b8360020a915084821115620005a257620005a162000496565b5b5062000612565b5060208310610133831016604e8410600b8410161715620005e35782820a905083811115620005dd57620005dc62000496565b5b62000612565b620005f28484846001620004d2565b925090508184048111156200060c576200060b62000496565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200063d8262000619565b91506200064a8362000623565b9250620006797fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200052d565b905092915050565b60006200068e8262000619565b91506200069b8362000619565b9250828202620006ab8162000619565b91508282048414831517620006c557620006c462000496565b5b5092915050565b620006d78162000619565b82525050565b6000602082019050620006f46000830184620006cc565b92915050565b613183806200070a6000396000f3fe60806040526004361061012e5760003560e01c8063751039fc116100ab57806395d89b411161006f57806395d89b41146103ba578063a9059cbb146103e5578063bf474bed14610422578063c876d0b91461044d578063c9567bf914610478578063dd62ed3e1461048f57610135565b8063751039fc146102f75780637d1db4a51461030e5780638da5cb5b146103395780638f10fd45146103645780638f9a55c01461038f57610135565b80632973ef2d116100f25780632973ef2d14610235578063313ce5671461026157806351bc3c851461028c57806370a08231146102a3578063715018a6146102e057610135565b806306fdde031461013a578063095ea7b3146101655780630faee56f146101a257806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104cc565b60405161015c91906121d0565b60405180910390f35b34801561017157600080fd5b5061018c6004803603810190610187919061228b565b610509565b60405161019991906122e6565b60405180910390f35b3480156101ae57600080fd5b506101b7610527565b6040516101c49190612310565b60405180910390f35b3480156101d957600080fd5b506101e261052d565b6040516101ef9190612310565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a919061232b565b610551565b60405161022c91906122e6565b60405180910390f35b34801561024157600080fd5b5061024a61062a565b60405161025892919061237e565b60405180910390f35b34801561026d57600080fd5b5061027661066f565b60405161028391906123c3565b60405180910390f35b34801561029857600080fd5b506102a1610678565b005b3480156102af57600080fd5b506102ca60048036038101906102c591906123de565b610715565b6040516102d79190612310565b60405180910390f35b3480156102ec57600080fd5b506102f561075e565b005b34801561030357600080fd5b5061030c6108b1565b005b34801561031a57600080fd5b506103236109fc565b6040516103309190612310565b60405180910390f35b34801561034557600080fd5b5061034e610a02565b60405161035b919061241a565b60405180910390f35b34801561037057600080fd5b50610379610a2b565b6040516103869190612310565b60405180910390f35b34801561039b57600080fd5b506103a4610a35565b6040516103b19190612310565b60405180910390f35b3480156103c657600080fd5b506103cf610a3b565b6040516103dc91906121d0565b60405180910390f35b3480156103f157600080fd5b5061040c6004803603810190610407919061228b565b610a78565b60405161041991906122e6565b60405180910390f35b34801561042e57600080fd5b50610437610a96565b6040516104449190612310565b60405180910390f35b34801561045957600080fd5b50610462610a9c565b60405161046f91906122e6565b60405180910390f35b34801561048457600080fd5b5061048d610aaf565b005b34801561049b57600080fd5b506104b660048036038101906104b19190612435565b610fe7565b6040516104c39190612310565b60405180910390f35b60606040518060400160405280600c81526020017f436c617373696320446f67650000000000000000000000000000000000000000815250905090565b600061051d61051661106e565b8484611076565b6001905092915050565b60115481565b60006008600a61053d91906125d7565b6305f5e10061054c9190612622565b905090565b600061055e84848461123f565b61061f8461056a61106e565b61061a8560405180606001604052806028815260200161312660289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105d061106e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c0f9092919063ffffffff16565b611076565b600190509392505050565b6000806000600a54600d541161064257600654610646565b6008545b90506000600b54600d541161065d57600754610661565b6009545b905081819350935050509091565b60006008905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106b961106e565b73ffffffffffffffffffffffffffffffffffffffff16146106d957600080fd5b60006106e430610715565b905060008111156106f9576106f881611c73565b5b600047905060008111156107115761071081611eec565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61076661106e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ea906126b0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108b961106e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093d906126b0565b60405180910390fd5b6008600a61095491906125d7565b6305f5e1006109639190612622565b600e819055506008600a61097791906125d7565b6305f5e1006109869190612622565b600f819055506000600560006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a6109d691906125d7565b6305f5e1006109e59190612622565b6040516109f29190612310565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600d54905090565b600f5481565b60606040518060400160405280600581526020017f63444f4745000000000000000000000000000000000000000000000000000000815250905090565b6000610a8c610a8561106e565b848461123f565b6001905092915050565b60105481565b600560009054906101000a900460ff1681565b610ab761106e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3b906126b0565b60405180910390fd5b601360149054906101000a900460ff1615610b94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8b9061271c565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c3230601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610c1e91906125d7565b6305f5e100610c2d9190612622565b611076565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc39190612751565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d709190612751565b6040518363ffffffff1660e01b8152600401610d8d92919061277e565b6020604051808303816000875af1158015610dac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd09190612751565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e5930610715565b600080610e64610a02565b426040518863ffffffff1660e01b8152600401610e86969594939291906127ec565b60606040518083038185885af1158015610ea4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ec99190612862565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f6b9291906128b5565b6020604051808303816000875af1158015610f8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fae919061290a565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dc906129a9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114b90612a3b565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112329190612310565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a590612acd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131490612b5f565b60405180910390fd5b60008111611360576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135790612bf1565b60405180910390fd5b600061136a610a02565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113d857506113a8610a02565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561141057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611952576114516064611443600a54600d541161143057600654611434565b6008545b85611f5890919063ffffffff16565b611fd290919063ffffffff16565b9050600560009054906101000a900460ff16156115e057601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115145750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156115df5743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061159a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159190612ca9565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561168b5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116e15750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561179c57600e5482111561172b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172290612d15565b60405180910390fd5b600f548261173885610715565b6117429190612d35565b1115611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177a90612db5565b60405180910390fd5b600d600081548092919061179690612dd5565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561182557503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611869576118666064611858600b54600d541161184557600754611849565b6009545b85611f5890919063ffffffff16565b611fd290919063ffffffff16565b90505b600061187430610715565b9050601360159054906101000a900460ff161580156118e05750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118f85750601360169054906101000a900460ff165b8015611905575060105481115b80156119145750600c54600d54115b15611950576119366119318461192c8460115461201c565b61201c565b611c73565b6000479050600081111561194e5761194d47611eec565b5b505b505b6000811115611a56576119ad81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203590919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a4d9190612310565b60405180910390a35b611aa882600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b4f611b01828461209390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203590919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611bf4848661209390919063ffffffff16565b604051611c019190612310565b60405180910390a350505050565b6000838311158290611c57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4e91906121d0565b60405180910390fd5b5060008385611c669190612e1d565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611cab57611caa612e51565b5b604051908082528060200260200182016040528015611cd95781602001602082028036833780820191505090505b5090503081600081518110611cf157611cf0612e80565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dbc9190612751565b81600181518110611dd057611dcf612e80565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e3730601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611076565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e9b959493929190612f6d565b600060405180830381600087803b158015611eb557600080fd5b505af1158015611ec9573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f54573d6000803e3d6000fd5b5050565b6000808303611f6a5760009050611fcc565b60008284611f789190612622565b9050828482611f879190612ff6565b14611fc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbe90613099565b60405180910390fd5b809150505b92915050565b600061201483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120dd565b905092915050565b600081831161202b578261202d565b815b905092915050565b60008082846120449190612d35565b905083811015612089576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208090613105565b60405180910390fd5b8091505092915050565b60006120d583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c0f565b905092915050565b60008083118290612124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211b91906121d0565b60405180910390fd5b50600083856121339190612ff6565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561217a57808201518184015260208101905061215f565b60008484015250505050565b6000601f19601f8301169050919050565b60006121a282612140565b6121ac818561214b565b93506121bc81856020860161215c565b6121c581612186565b840191505092915050565b600060208201905081810360008301526121ea8184612197565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612222826121f7565b9050919050565b61223281612217565b811461223d57600080fd5b50565b60008135905061224f81612229565b92915050565b6000819050919050565b61226881612255565b811461227357600080fd5b50565b6000813590506122858161225f565b92915050565b600080604083850312156122a2576122a16121f2565b5b60006122b085828601612240565b92505060206122c185828601612276565b9150509250929050565b60008115159050919050565b6122e0816122cb565b82525050565b60006020820190506122fb60008301846122d7565b92915050565b61230a81612255565b82525050565b60006020820190506123256000830184612301565b92915050565b600080600060608486031215612344576123436121f2565b5b600061235286828701612240565b935050602061236386828701612240565b925050604061237486828701612276565b9150509250925092565b60006040820190506123936000830185612301565b6123a06020830184612301565b9392505050565b600060ff82169050919050565b6123bd816123a7565b82525050565b60006020820190506123d860008301846123b4565b92915050565b6000602082840312156123f4576123f36121f2565b5b600061240284828501612240565b91505092915050565b61241481612217565b82525050565b600060208201905061242f600083018461240b565b92915050565b6000806040838503121561244c5761244b6121f2565b5b600061245a85828601612240565b925050602061246b85828601612240565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156124fb578086048111156124d7576124d6612475565b5b60018516156124e65780820291505b80810290506124f4856124a4565b94506124bb565b94509492505050565b60008261251457600190506125d0565b8161252257600090506125d0565b8160018114612538576002811461254257612571565b60019150506125d0565b60ff84111561255457612553612475565b5b8360020a91508482111561256b5761256a612475565b5b506125d0565b5060208310610133831016604e8410600b84101617156125a65782820a9050838111156125a1576125a0612475565b5b6125d0565b6125b384848460016124b1565b925090508184048111156125ca576125c9612475565b5b81810290505b9392505050565b60006125e282612255565b91506125ed836123a7565b925061261a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612504565b905092915050565b600061262d82612255565b915061263883612255565b925082820261264681612255565b9150828204841483151761265d5761265c612475565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061269a60208361214b565b91506126a582612664565b602082019050919050565b600060208201905081810360008301526126c98161268d565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061270660178361214b565b9150612711826126d0565b602082019050919050565b60006020820190508181036000830152612735816126f9565b9050919050565b60008151905061274b81612229565b92915050565b600060208284031215612767576127666121f2565b5b60006127758482850161273c565b91505092915050565b6000604082019050612793600083018561240b565b6127a0602083018461240b565b9392505050565b6000819050919050565b6000819050919050565b60006127d66127d16127cc846127a7565b6127b1565b612255565b9050919050565b6127e6816127bb565b82525050565b600060c082019050612801600083018961240b565b61280e6020830188612301565b61281b60408301876127dd565b61282860608301866127dd565b612835608083018561240b565b61284260a0830184612301565b979650505050505050565b60008151905061285c8161225f565b92915050565b60008060006060848603121561287b5761287a6121f2565b5b60006128898682870161284d565b935050602061289a8682870161284d565b92505060406128ab8682870161284d565b9150509250925092565b60006040820190506128ca600083018561240b565b6128d76020830184612301565b9392505050565b6128e7816122cb565b81146128f257600080fd5b50565b600081519050612904816128de565b92915050565b6000602082840312156129205761291f6121f2565b5b600061292e848285016128f5565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061299360248361214b565b915061299e82612937565b604082019050919050565b600060208201905081810360008301526129c281612986565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a2560228361214b565b9150612a30826129c9565b604082019050919050565b60006020820190508181036000830152612a5481612a18565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612ab760258361214b565b9150612ac282612a5b565b604082019050919050565b60006020820190508181036000830152612ae681612aaa565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612b4960238361214b565b9150612b5482612aed565b604082019050919050565b60006020820190508181036000830152612b7881612b3c565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612bdb60298361214b565b9150612be682612b7f565b604082019050919050565b60006020820190508181036000830152612c0a81612bce565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000612c9360498361214b565b9150612c9e82612c11565b606082019050919050565b60006020820190508181036000830152612cc281612c86565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612cff60198361214b565b9150612d0a82612cc9565b602082019050919050565b60006020820190508181036000830152612d2e81612cf2565b9050919050565b6000612d4082612255565b9150612d4b83612255565b9250828201905080821115612d6357612d62612475565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612d9f601a8361214b565b9150612daa82612d69565b602082019050919050565b60006020820190508181036000830152612dce81612d92565b9050919050565b6000612de082612255565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e1257612e11612475565b5b600182019050919050565b6000612e2882612255565b9150612e3383612255565b9250828203905081811115612e4b57612e4a612475565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ee481612217565b82525050565b6000612ef68383612edb565b60208301905092915050565b6000602082019050919050565b6000612f1a82612eaf565b612f248185612eba565b9350612f2f83612ecb565b8060005b83811015612f60578151612f478882612eea565b9750612f5283612f02565b925050600181019050612f33565b5085935050505092915050565b600060a082019050612f826000830188612301565b612f8f60208301876127dd565b8181036040830152612fa18186612f0f565b9050612fb0606083018561240b565b612fbd6080830184612301565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061300182612255565b915061300c83612255565b92508261301c5761301b612fc7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061308360218361214b565b915061308e82613027565b604082019050919050565b600060208201905081810360008301526130b281613076565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006130ef601b8361214b565b91506130fa826130b9565b602082019050919050565b6000602082019050818103600083015261311e816130e2565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d44e490a681be3a7a4c8de315c90b69765b20e7593fb50adea37faa709370d9c64736f6c63430008120033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c8063751039fc116100ab57806395d89b411161006f57806395d89b41146103ba578063a9059cbb146103e5578063bf474bed14610422578063c876d0b91461044d578063c9567bf914610478578063dd62ed3e1461048f57610135565b8063751039fc146102f75780637d1db4a51461030e5780638da5cb5b146103395780638f10fd45146103645780638f9a55c01461038f57610135565b80632973ef2d116100f25780632973ef2d14610235578063313ce5671461026157806351bc3c851461028c57806370a08231146102a3578063715018a6146102e057610135565b806306fdde031461013a578063095ea7b3146101655780630faee56f146101a257806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104cc565b60405161015c91906121d0565b60405180910390f35b34801561017157600080fd5b5061018c6004803603810190610187919061228b565b610509565b60405161019991906122e6565b60405180910390f35b3480156101ae57600080fd5b506101b7610527565b6040516101c49190612310565b60405180910390f35b3480156101d957600080fd5b506101e261052d565b6040516101ef9190612310565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a919061232b565b610551565b60405161022c91906122e6565b60405180910390f35b34801561024157600080fd5b5061024a61062a565b60405161025892919061237e565b60405180910390f35b34801561026d57600080fd5b5061027661066f565b60405161028391906123c3565b60405180910390f35b34801561029857600080fd5b506102a1610678565b005b3480156102af57600080fd5b506102ca60048036038101906102c591906123de565b610715565b6040516102d79190612310565b60405180910390f35b3480156102ec57600080fd5b506102f561075e565b005b34801561030357600080fd5b5061030c6108b1565b005b34801561031a57600080fd5b506103236109fc565b6040516103309190612310565b60405180910390f35b34801561034557600080fd5b5061034e610a02565b60405161035b919061241a565b60405180910390f35b34801561037057600080fd5b50610379610a2b565b6040516103869190612310565b60405180910390f35b34801561039b57600080fd5b506103a4610a35565b6040516103b19190612310565b60405180910390f35b3480156103c657600080fd5b506103cf610a3b565b6040516103dc91906121d0565b60405180910390f35b3480156103f157600080fd5b5061040c6004803603810190610407919061228b565b610a78565b60405161041991906122e6565b60405180910390f35b34801561042e57600080fd5b50610437610a96565b6040516104449190612310565b60405180910390f35b34801561045957600080fd5b50610462610a9c565b60405161046f91906122e6565b60405180910390f35b34801561048457600080fd5b5061048d610aaf565b005b34801561049b57600080fd5b506104b660048036038101906104b19190612435565b610fe7565b6040516104c39190612310565b60405180910390f35b60606040518060400160405280600c81526020017f436c617373696320446f67650000000000000000000000000000000000000000815250905090565b600061051d61051661106e565b8484611076565b6001905092915050565b60115481565b60006008600a61053d91906125d7565b6305f5e10061054c9190612622565b905090565b600061055e84848461123f565b61061f8461056a61106e565b61061a8560405180606001604052806028815260200161312660289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105d061106e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c0f9092919063ffffffff16565b611076565b600190509392505050565b6000806000600a54600d541161064257600654610646565b6008545b90506000600b54600d541161065d57600754610661565b6009545b905081819350935050509091565b60006008905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106b961106e565b73ffffffffffffffffffffffffffffffffffffffff16146106d957600080fd5b60006106e430610715565b905060008111156106f9576106f881611c73565b5b600047905060008111156107115761071081611eec565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61076661106e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ea906126b0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108b961106e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093d906126b0565b60405180910390fd5b6008600a61095491906125d7565b6305f5e1006109639190612622565b600e819055506008600a61097791906125d7565b6305f5e1006109869190612622565b600f819055506000600560006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a6109d691906125d7565b6305f5e1006109e59190612622565b6040516109f29190612310565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600d54905090565b600f5481565b60606040518060400160405280600581526020017f63444f4745000000000000000000000000000000000000000000000000000000815250905090565b6000610a8c610a8561106e565b848461123f565b6001905092915050565b60105481565b600560009054906101000a900460ff1681565b610ab761106e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3b906126b0565b60405180910390fd5b601360149054906101000a900460ff1615610b94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8b9061271c565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c3230601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610c1e91906125d7565b6305f5e100610c2d9190612622565b611076565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc39190612751565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d709190612751565b6040518363ffffffff1660e01b8152600401610d8d92919061277e565b6020604051808303816000875af1158015610dac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd09190612751565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e5930610715565b600080610e64610a02565b426040518863ffffffff1660e01b8152600401610e86969594939291906127ec565b60606040518083038185885af1158015610ea4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ec99190612862565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f6b9291906128b5565b6020604051808303816000875af1158015610f8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fae919061290a565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dc906129a9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114b90612a3b565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112329190612310565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a590612acd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131490612b5f565b60405180910390fd5b60008111611360576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135790612bf1565b60405180910390fd5b600061136a610a02565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113d857506113a8610a02565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561141057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611952576114516064611443600a54600d541161143057600654611434565b6008545b85611f5890919063ffffffff16565b611fd290919063ffffffff16565b9050600560009054906101000a900460ff16156115e057601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115145750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156115df5743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061159a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159190612ca9565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561168b5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116e15750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561179c57600e5482111561172b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172290612d15565b60405180910390fd5b600f548261173885610715565b6117429190612d35565b1115611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177a90612db5565b60405180910390fd5b600d600081548092919061179690612dd5565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561182557503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611869576118666064611858600b54600d541161184557600754611849565b6009545b85611f5890919063ffffffff16565b611fd290919063ffffffff16565b90505b600061187430610715565b9050601360159054906101000a900460ff161580156118e05750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118f85750601360169054906101000a900460ff165b8015611905575060105481115b80156119145750600c54600d54115b15611950576119366119318461192c8460115461201c565b61201c565b611c73565b6000479050600081111561194e5761194d47611eec565b5b505b505b6000811115611a56576119ad81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203590919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a4d9190612310565b60405180910390a35b611aa882600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b4f611b01828461209390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203590919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611bf4848661209390919063ffffffff16565b604051611c019190612310565b60405180910390a350505050565b6000838311158290611c57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4e91906121d0565b60405180910390fd5b5060008385611c669190612e1d565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611cab57611caa612e51565b5b604051908082528060200260200182016040528015611cd95781602001602082028036833780820191505090505b5090503081600081518110611cf157611cf0612e80565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dbc9190612751565b81600181518110611dd057611dcf612e80565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e3730601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611076565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e9b959493929190612f6d565b600060405180830381600087803b158015611eb557600080fd5b505af1158015611ec9573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f54573d6000803e3d6000fd5b5050565b6000808303611f6a5760009050611fcc565b60008284611f789190612622565b9050828482611f879190612ff6565b14611fc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbe90613099565b60405180910390fd5b809150505b92915050565b600061201483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120dd565b905092915050565b600081831161202b578261202d565b815b905092915050565b60008082846120449190612d35565b905083811015612089576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208090613105565b60405180910390fd5b8091505092915050565b60006120d583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c0f565b905092915050565b60008083118290612124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211b91906121d0565b60405180910390fd5b50600083856121339190612ff6565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561217a57808201518184015260208101905061215f565b60008484015250505050565b6000601f19601f8301169050919050565b60006121a282612140565b6121ac818561214b565b93506121bc81856020860161215c565b6121c581612186565b840191505092915050565b600060208201905081810360008301526121ea8184612197565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612222826121f7565b9050919050565b61223281612217565b811461223d57600080fd5b50565b60008135905061224f81612229565b92915050565b6000819050919050565b61226881612255565b811461227357600080fd5b50565b6000813590506122858161225f565b92915050565b600080604083850312156122a2576122a16121f2565b5b60006122b085828601612240565b92505060206122c185828601612276565b9150509250929050565b60008115159050919050565b6122e0816122cb565b82525050565b60006020820190506122fb60008301846122d7565b92915050565b61230a81612255565b82525050565b60006020820190506123256000830184612301565b92915050565b600080600060608486031215612344576123436121f2565b5b600061235286828701612240565b935050602061236386828701612240565b925050604061237486828701612276565b9150509250925092565b60006040820190506123936000830185612301565b6123a06020830184612301565b9392505050565b600060ff82169050919050565b6123bd816123a7565b82525050565b60006020820190506123d860008301846123b4565b92915050565b6000602082840312156123f4576123f36121f2565b5b600061240284828501612240565b91505092915050565b61241481612217565b82525050565b600060208201905061242f600083018461240b565b92915050565b6000806040838503121561244c5761244b6121f2565b5b600061245a85828601612240565b925050602061246b85828601612240565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156124fb578086048111156124d7576124d6612475565b5b60018516156124e65780820291505b80810290506124f4856124a4565b94506124bb565b94509492505050565b60008261251457600190506125d0565b8161252257600090506125d0565b8160018114612538576002811461254257612571565b60019150506125d0565b60ff84111561255457612553612475565b5b8360020a91508482111561256b5761256a612475565b5b506125d0565b5060208310610133831016604e8410600b84101617156125a65782820a9050838111156125a1576125a0612475565b5b6125d0565b6125b384848460016124b1565b925090508184048111156125ca576125c9612475565b5b81810290505b9392505050565b60006125e282612255565b91506125ed836123a7565b925061261a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612504565b905092915050565b600061262d82612255565b915061263883612255565b925082820261264681612255565b9150828204841483151761265d5761265c612475565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061269a60208361214b565b91506126a582612664565b602082019050919050565b600060208201905081810360008301526126c98161268d565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061270660178361214b565b9150612711826126d0565b602082019050919050565b60006020820190508181036000830152612735816126f9565b9050919050565b60008151905061274b81612229565b92915050565b600060208284031215612767576127666121f2565b5b60006127758482850161273c565b91505092915050565b6000604082019050612793600083018561240b565b6127a0602083018461240b565b9392505050565b6000819050919050565b6000819050919050565b60006127d66127d16127cc846127a7565b6127b1565b612255565b9050919050565b6127e6816127bb565b82525050565b600060c082019050612801600083018961240b565b61280e6020830188612301565b61281b60408301876127dd565b61282860608301866127dd565b612835608083018561240b565b61284260a0830184612301565b979650505050505050565b60008151905061285c8161225f565b92915050565b60008060006060848603121561287b5761287a6121f2565b5b60006128898682870161284d565b935050602061289a8682870161284d565b92505060406128ab8682870161284d565b9150509250925092565b60006040820190506128ca600083018561240b565b6128d76020830184612301565b9392505050565b6128e7816122cb565b81146128f257600080fd5b50565b600081519050612904816128de565b92915050565b6000602082840312156129205761291f6121f2565b5b600061292e848285016128f5565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061299360248361214b565b915061299e82612937565b604082019050919050565b600060208201905081810360008301526129c281612986565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a2560228361214b565b9150612a30826129c9565b604082019050919050565b60006020820190508181036000830152612a5481612a18565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612ab760258361214b565b9150612ac282612a5b565b604082019050919050565b60006020820190508181036000830152612ae681612aaa565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612b4960238361214b565b9150612b5482612aed565b604082019050919050565b60006020820190508181036000830152612b7881612b3c565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612bdb60298361214b565b9150612be682612b7f565b604082019050919050565b60006020820190508181036000830152612c0a81612bce565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000612c9360498361214b565b9150612c9e82612c11565b606082019050919050565b60006020820190508181036000830152612cc281612c86565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612cff60198361214b565b9150612d0a82612cc9565b602082019050919050565b60006020820190508181036000830152612d2e81612cf2565b9050919050565b6000612d4082612255565b9150612d4b83612255565b9250828201905080821115612d6357612d62612475565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612d9f601a8361214b565b9150612daa82612d69565b602082019050919050565b60006020820190508181036000830152612dce81612d92565b9050919050565b6000612de082612255565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e1257612e11612475565b5b600182019050919050565b6000612e2882612255565b9150612e3383612255565b9250828203905081811115612e4b57612e4a612475565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ee481612217565b82525050565b6000612ef68383612edb565b60208301905092915050565b6000602082019050919050565b6000612f1a82612eaf565b612f248185612eba565b9350612f2f83612ecb565b8060005b83811015612f60578151612f478882612eea565b9750612f5283612f02565b925050600181019050612f33565b5085935050505092915050565b600060a082019050612f826000830188612301565b612f8f60208301876127dd565b8181036040830152612fa18186612f0f565b9050612fb0606083018561240b565b612fbd6080830184612301565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061300182612255565b915061300c83612255565b92508261301c5761301b612fc7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061308360218361214b565b915061308e82613027565b604082019050919050565b600060208201905081810360008301526130b281613076565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006130ef601b8361214b565b91506130fa826130b9565b602082019050919050565b6000602082019050818103600083015261311e816130e2565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d44e490a681be3a7a4c8de315c90b69765b20e7593fb50adea37faa709370d9c64736f6c63430008120033

Deployed Bytecode Sourcemap

3639:8398:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5572:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6405:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4815:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5849:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6574:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6987:300;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;5758:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11686:348;;;;;;;;;;;;;:::i;:::-;;5952:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2722:148;;;;;;;;;;;;;:::i;:::-;;10666:196;;;;;;;;;;;;;:::i;:::-;;4629:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2508:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6895:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4691:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5663:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6079:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4753:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3987:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10970:671;;;;;;;;;;;;;:::i;:::-;;6254:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5572:83;5609:13;5642:5;;;;;;;;;;;;;;;;;5635:12;;5572:83;:::o;6405:161::-;6480:4;6497:39;6506:12;:10;:12::i;:::-;6520:7;6529:6;6497:8;:39::i;:::-;6554:4;6547:11;;6405:161;;;;:::o;4815:52::-;;;;:::o;5849:95::-;5902:7;4439:1;4494:2;:13;;;;:::i;:::-;4482:9;:25;;;;:::i;:::-;5922:14;;5849:95;:::o;6574:313::-;6672:4;6689:36;6699:6;6707:9;6718:6;6689:9;:36::i;:::-;6736:121;6745:6;6753:12;:10;:12::i;:::-;6767:89;6805:6;6767:89;;;;;;;;;;;;;;;;;:11;:19;6779:6;6767:19;;;;;;;;;;;;;;;:33;6787:12;:10;:12::i;:::-;6767:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6736:8;:121::i;:::-;6875:4;6868:11;;6574:313;;;;;:::o;6987:300::-;7028:7;7037;7053:21;7090:15;;7078:9;;:27;7077:61;;7124:14;;7077:61;;;7109:12;;7077:61;7053:85;;7145:22;7183:16;;7171:9;;:28;7170:64;;7219:15;;7170:64;;;7203:13;;7170:64;7145:89;;7249:13;7264:14;7241:38;;;;;;6987:300;;:::o;5758:83::-;5799:5;4439:1;5817:16;;5758:83;:::o;11686:348::-;11750:10;;;;;;;;;;;11736:24;;:12;:10;:12::i;:::-;:24;;;11728:33;;;;;;11772:20;11793:24;11811:4;11793:9;:24::i;:::-;11772:45;;11844:1;11831:12;:14;11828:73;;;11859:30;11876:12;11859:16;:30::i;:::-;11828:73;11911:18;11930:21;11911:40;;11976:1;11965:10;:12;11962:65;;;11991:24;12004:10;11991:12;:24::i;:::-;11962:65;11717:317;;11686:348::o;5952:119::-;6018:7;6045:9;:18;6055:7;6045:18;;;;;;;;;;;;;;;;6038:25;;5952:119;;;:::o;2722:148::-;2645:12;:10;:12::i;:::-;2635:22;;:6;;;;;;;;;;:22;;;2627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2829:1:::1;2792:40;;2813:6;::::0;::::1;;;;;;;;2792:40;;;;;;;;;;;;2860:1;2843:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2722:148::o:0;10666:196::-;2645:12;:10;:12::i;:::-;2635:22;;:6;;;;;;;;;;:22;;;2627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4439:1:::1;4494:2;:13;;;;:::i;:::-;4482:9;:25;;;;:::i;:::-;10719:12;:22;;;;4439:1;4494:2;:13;;;;:::i;:::-;4482:9;:25;;;;:::i;:::-;10752:14;:22;;;;10806:5;10785:20;;:26;;;;;;;;;;;;;;;;;;10827:27;4439:1;4494:2;:13;;;;:::i;:::-;4482:9;:25;;;;:::i;:::-;10827:27;;;;;;:::i;:::-;;;;;;;;10666:196::o:0;4629:55::-;;;;:::o;2508:79::-;2546:7;2573:6;;;;;;;;;;;2566:13;;2508:79;:::o;6895:84::-;6939:7;6962:9;;6955:16;;6895:84;:::o;4691:55::-;;;;:::o;5663:87::-;5702:13;5735:7;;;;;;;;;;;;;;;;;5728:14;;5663:87;:::o;6079:167::-;6157:4;6174:42;6184:12;:10;:12::i;:::-;6198:9;6209:6;6174:9;:42::i;:::-;6234:4;6227:11;;6079:167;;;;:::o;4753:55::-;;;;:::o;3987:40::-;;;;;;;;;;;;;:::o;10970:671::-;2645:12;:10;:12::i;:::-;2635:22;;:6;;;;;;;;;;:22;;;2627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11034:11:::1;;;;;;;;;;;11033:12;11025:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11120:42;11083:15;;:80;;;;;;;;;;;;;;;;;;11174:58;11191:4;11206:15;;;;;;;;;;;4439:1;4494:2;:13;;;;:::i;:::-;4482:9;:25;;;;:::i;:::-;11174:8;:58::i;:::-;11277:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11259:55;;;11323:4;11330:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11259:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11243:13;;:110;;;;;;;;;;;;;;;;;;11364:15;;;;;;;;;;;:31;;;11403:21;11434:4;11440:24;11458:4;11440:9;:24::i;:::-;11465:1;11467::::0;11469:7:::1;:5;:7::i;:::-;11477:15;11364:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11511:13;;;;;;;;;;;11504:29;;;11542:15;;;;;;;;;;;11560:14;11504:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11600:4;11586:11;;:18;;;;;;;;;;;;;;;;;;11629:4;11615:11;;:18;;;;;;;;;;;;;;;;;;10970:671::o:0;6254:143::-;6335:7;6362:11;:18;6374:5;6362:18;;;;;;;;;;;;;;;:27;6381:7;6362:27;;;;;;;;;;;;;;;;6355:34;;6254:143;;;;:::o;275:98::-;328:7;355:10;348:17;;275:98;:::o;7295:335::-;7405:1;7388:19;;:5;:19;;;7380:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7486:1;7467:21;;:7;:21;;;7459:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7568:6;7538:11;:18;7550:5;7538:18;;;;;;;;;;;;;;;:27;7557:7;7538:27;;;;;;;;;;;;;;;:36;;;;7606:7;7590:32;;7599:5;7590:32;;;7615:6;7590:32;;;;;;:::i;:::-;;;;;;;;7295:335;;;:::o;7638:2423::-;7742:1;7726:18;;:4;:18;;;7718:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7819:1;7805:16;;:2;:16;;;7797:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7889:1;7880:6;:10;7872:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7947:17;7989:7;:5;:7::i;:::-;7981:15;;:4;:15;;;;:32;;;;;8006:7;:5;:7::i;:::-;8000:13;;:2;:13;;;;7981:32;:57;;;;;8033:4;8017:21;;:4;:21;;;;7981:57;7977:1728;;;8067:76;8139:3;8067:67;8089:15;;8079:9;;:25;8078:55;;8119:14;;8078:55;;;8106:12;;8078:55;8067:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8055:88;;8164:20;;;;;;;;;;;8160:508;;;8225:15;;;;;;;;;;;8211:30;;:2;:30;;;;:62;;;;;8259:13;;;;;;;;;;;8245:28;;:2;:28;;;;8211:62;8207:444;;;8409:12;8336:28;:39;8365:9;8336:39;;;;;;;;;;;;;;;;:85;8300:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8617:12;8575:28;:39;8604:9;8575:39;;;;;;;;;;;;;;;:54;;;;8207:444;8160:508;8696:13;;;;;;;;;;;8688:21;;:4;:21;;;:55;;;;;8727:15;;;;;;;;;;;8713:30;;:2;:30;;;;8688:55;:83;;;;;8749:18;:22;8768:2;8749:22;;;;;;;;;;;;;;;;;;;;;;;;;8747:24;8688:83;8684:313;;;8811:12;;8801:6;:22;;8793:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8906:14;;8896:6;8880:13;8890:2;8880:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8872:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8970:9;;:11;;;;;;;;;:::i;:::-;;;;;;8684:313;9022:13;;;;;;;;;;;9016:19;;:2;:19;;;:43;;;;;9054:4;9039:20;;:4;:20;;;;9016:43;9013:174;;;9092:79;9167:3;9092:70;9114:16;;9104:9;;:26;9103:58;;9146:15;;9103:58;;;9132:13;;9103:58;9092:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;9080:91;;9013:174;9203:28;9234:24;9252:4;9234:9;:24::i;:::-;9203:55;;9278:6;;;;;;;;;;;9277:7;:32;;;;;9296:13;;;;;;;;;;;9288:21;;:2;:21;;;9277:32;:47;;;;;9313:11;;;;;;;;;;;9277:47;:89;;;;;9349:17;;9328:20;:38;9277:89;:121;;;;;9380:18;;9370:9;;:28;9277:121;9273:421;;;9419:67;9436:49;9440:6;9447:37;9451:20;9472:11;;9447:3;:37::i;:::-;9436:3;:49::i;:::-;9419:16;:67::i;:::-;9505:26;9534:21;9505:50;;9598:1;9577:18;:22;9574:105;;;9624:35;9637:21;9624:12;:35::i;:::-;9574:105;9400:294;9273:421;8040:1665;7977:1728;9730:1;9720:9;:11;9717:161;;;9770:39;9799:9;9770;:24;9788:4;9770:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9745:9;:24;9763:4;9745:24;;;;;;;;;;;;;;;:64;;;;9850:4;9827:39;;9836:4;9827:39;;;9856:9;9827:39;;;;;;:::i;:::-;;;;;;;;9717:161;9904:27;9924:6;9904:9;:15;9914:4;9904:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9888:9;:15;9898:4;9888:15;;;;;;;;;;;;;;;:43;;;;9956:40;9974:21;9985:9;9974:6;:10;;:21;;;;:::i;:::-;9956:9;:13;9966:2;9956:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9942:9;:13;9952:2;9942:13;;;;;;;;;;;;;;;:54;;;;10027:2;10012:41;;10021:4;10012:41;;;10031:21;10042:9;10031:6;:10;;:21;;;;:::i;:::-;10012:41;;;;;;:::i;:::-;;;;;;;;7707:2354;7638:2423;;;:::o;1408:190::-;1494:7;1527:1;1522;:6;;1530:12;1514:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1554:9;1570:1;1566;:5;;;;:::i;:::-;1554:17;;1589:1;1582:8;;;1408:190;;;;;:::o;10175:483::-;5160:4;5151:6;;:13;;;;;;;;;;;;;;;;;;10253:21:::1;10291:1;10277:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10253:40;;10322:4;10304;10309:1;10304:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10348:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10338:4;10343:1;10338:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10381:62;10398:4;10413:15;;;;;;;;;;;10431:11;10381:8;:62::i;:::-;10454:15;;;;;;;;;;;:66;;;10535:11;10561:1;10577:4;10604;10624:15;10454:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10242:416;5196:5:::0;5187:6;;:14;;;;;;;;;;;;;;;;;;10175:483;:::o;10870:92::-;10927:10;;;;;;;;;;;:19;;:27;10947:6;10927:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10870:92;:::o;1604:246::-;1662:7;1691:1;1686;:6;1682:47;;1716:1;1709:8;;;;1682:47;1739:9;1755:1;1751;:5;;;;:::i;:::-;1739:17;;1784:1;1779;1775;:5;;;;:::i;:::-;:10;1767:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1841:1;1834:8;;;1604:246;;;;;:::o;1856:132::-;1914:7;1941:39;1945:1;1948;1941:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1934:46;;1856:132;;;;:::o;10069:98::-;10126:7;10153:1;10151;:3;10150:9;;10158:1;10150:9;;;10156:1;10150:9;10143:16;;10069:98;;;;:::o;1081:179::-;1139:7;1159:9;1175:1;1171;:5;;;;:::i;:::-;1159:17;;1200:1;1195;:6;;1187:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1251:1;1244:8;;;1081:179;;;;:::o;1266:136::-;1324:7;1351:43;1355:1;1358;1351:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1344:50;;1266:136;;;;:::o;1994:189::-;2080:7;2112:1;2108;:5;2115:12;2100:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2139:9;2155:1;2151;:5;;;;:::i;:::-;2139:17;;2174:1;2167:8;;;1994: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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:332::-;4544:4;4582:2;4571:9;4567:18;4559:26;;4595:71;4663:1;4652:9;4648:17;4639:6;4595:71;:::i;:::-;4676:72;4744:2;4733:9;4729:18;4720:6;4676:72;:::i;:::-;4423:332;;;;;:::o;4761:86::-;4796:7;4836:4;4829:5;4825:16;4814:27;;4761:86;;;:::o;4853:112::-;4936:22;4952:5;4936:22;:::i;:::-;4931:3;4924:35;4853:112;;:::o;4971:214::-;5060:4;5098:2;5087:9;5083:18;5075:26;;5111:67;5175:1;5164:9;5160:17;5151:6;5111:67;:::i;:::-;4971:214;;;;:::o;5191:329::-;5250:6;5299:2;5287:9;5278:7;5274:23;5270:32;5267:119;;;5305:79;;:::i;:::-;5267:119;5425:1;5450:53;5495:7;5486:6;5475:9;5471:22;5450:53;:::i;:::-;5440:63;;5396:117;5191:329;;;;:::o;5526:118::-;5613:24;5631:5;5613:24;:::i;:::-;5608:3;5601:37;5526:118;;:::o;5650:222::-;5743:4;5781:2;5770:9;5766:18;5758:26;;5794:71;5862:1;5851:9;5847:17;5838:6;5794:71;:::i;:::-;5650:222;;;;:::o;5878:474::-;5946:6;5954;6003:2;5991:9;5982:7;5978:23;5974:32;5971:119;;;6009:79;;:::i;:::-;5971:119;6129:1;6154:53;6199:7;6190:6;6179:9;6175:22;6154:53;:::i;:::-;6144:63;;6100:117;6256:2;6282:53;6327:7;6318:6;6307:9;6303:22;6282:53;:::i;:::-;6272:63;;6227:118;5878:474;;;;;:::o;6358:180::-;6406:77;6403:1;6396:88;6503:4;6500:1;6493:15;6527:4;6524:1;6517:15;6544:102;6586:8;6633:5;6630:1;6626:13;6605:34;;6544:102;;;:::o;6652:848::-;6713:5;6720:4;6744:6;6735:15;;6768:5;6759:14;;6782:712;6803:1;6793:8;6790:15;6782:712;;;6898:4;6893:3;6889:14;6883:4;6880:24;6877:50;;;6907:18;;:::i;:::-;6877:50;6957:1;6947:8;6943:16;6940:451;;;7372:4;7365:5;7361:16;7352:25;;6940:451;7422:4;7416;7412:15;7404:23;;7452:32;7475:8;7452:32;:::i;:::-;7440:44;;6782:712;;;6652:848;;;;;;;:::o;7506:1073::-;7560:5;7751:8;7741:40;;7772:1;7763:10;;7774:5;;7741:40;7800:4;7790:36;;7817:1;7808:10;;7819:5;;7790:36;7886:4;7934:1;7929:27;;;;7970:1;7965:191;;;;7879:277;;7929:27;7947:1;7938:10;;7949:5;;;7965:191;8010:3;8000:8;7997:17;7994:43;;;8017:18;;:::i;:::-;7994:43;8066:8;8063:1;8059:16;8050:25;;8101:3;8094:5;8091:14;8088:40;;;8108:18;;:::i;:::-;8088:40;8141:5;;;7879:277;;8265:2;8255:8;8252:16;8246:3;8240:4;8237:13;8233:36;8215:2;8205:8;8202:16;8197:2;8191:4;8188:12;8184:35;8168:111;8165:246;;;8321:8;8315:4;8311:19;8302:28;;8356:3;8349:5;8346:14;8343:40;;;8363:18;;:::i;:::-;8343:40;8396:5;;8165:246;8436:42;8474:3;8464:8;8458:4;8455:1;8436:42;:::i;:::-;8421:57;;;;8510:4;8505:3;8501:14;8494:5;8491:25;8488:51;;;8519:18;;:::i;:::-;8488:51;8568:4;8561:5;8557:16;8548:25;;7506:1073;;;;;;:::o;8585:281::-;8643:5;8667:23;8685:4;8667:23;:::i;:::-;8659:31;;8711:25;8727:8;8711:25;:::i;:::-;8699:37;;8755:104;8792:66;8782:8;8776:4;8755:104;:::i;:::-;8746:113;;8585:281;;;;:::o;8872:410::-;8912:7;8935:20;8953:1;8935:20;:::i;:::-;8930:25;;8969:20;8987:1;8969:20;:::i;:::-;8964:25;;9024:1;9021;9017:9;9046:30;9064:11;9046:30;:::i;:::-;9035:41;;9225:1;9216:7;9212:15;9209:1;9206:22;9186:1;9179:9;9159:83;9136:139;;9255:18;;:::i;:::-;9136:139;8920:362;8872:410;;;;:::o;9288:182::-;9428:34;9424:1;9416:6;9412:14;9405:58;9288:182;:::o;9476:366::-;9618:3;9639:67;9703:2;9698:3;9639:67;:::i;:::-;9632:74;;9715:93;9804:3;9715:93;:::i;:::-;9833:2;9828:3;9824:12;9817:19;;9476:366;;;:::o;9848:419::-;10014:4;10052:2;10041:9;10037:18;10029:26;;10101:9;10095:4;10091:20;10087:1;10076:9;10072:17;10065:47;10129:131;10255:4;10129:131;:::i;:::-;10121:139;;9848:419;;;:::o;10273:173::-;10413:25;10409:1;10401:6;10397:14;10390:49;10273:173;:::o;10452:366::-;10594:3;10615:67;10679:2;10674:3;10615:67;:::i;:::-;10608:74;;10691:93;10780:3;10691:93;:::i;:::-;10809:2;10804:3;10800:12;10793:19;;10452:366;;;:::o;10824:419::-;10990:4;11028:2;11017:9;11013:18;11005:26;;11077:9;11071:4;11067:20;11063:1;11052:9;11048:17;11041:47;11105:131;11231:4;11105:131;:::i;:::-;11097:139;;10824:419;;;:::o;11249:143::-;11306:5;11337:6;11331:13;11322:22;;11353:33;11380:5;11353:33;:::i;:::-;11249:143;;;;:::o;11398:351::-;11468:6;11517:2;11505:9;11496:7;11492:23;11488:32;11485:119;;;11523:79;;:::i;:::-;11485:119;11643:1;11668:64;11724:7;11715:6;11704:9;11700:22;11668:64;:::i;:::-;11658:74;;11614:128;11398:351;;;;:::o;11755:332::-;11876:4;11914:2;11903:9;11899:18;11891:26;;11927:71;11995:1;11984:9;11980:17;11971:6;11927:71;:::i;:::-;12008:72;12076:2;12065:9;12061:18;12052:6;12008:72;:::i;:::-;11755:332;;;;;:::o;12093:85::-;12138:7;12167:5;12156:16;;12093:85;;;:::o;12184:60::-;12212:3;12233:5;12226:12;;12184:60;;;:::o;12250:158::-;12308:9;12341:61;12359:42;12368:32;12394:5;12368:32;:::i;:::-;12359:42;:::i;:::-;12341:61;:::i;:::-;12328:74;;12250:158;;;:::o;12414:147::-;12509:45;12548:5;12509:45;:::i;:::-;12504:3;12497:58;12414:147;;:::o;12567:807::-;12816:4;12854:3;12843:9;12839:19;12831:27;;12868:71;12936:1;12925:9;12921:17;12912:6;12868:71;:::i;:::-;12949:72;13017:2;13006:9;13002:18;12993:6;12949:72;:::i;:::-;13031:80;13107:2;13096:9;13092:18;13083:6;13031:80;:::i;:::-;13121;13197:2;13186:9;13182:18;13173:6;13121:80;:::i;:::-;13211:73;13279:3;13268:9;13264:19;13255:6;13211:73;:::i;:::-;13294;13362:3;13351:9;13347:19;13338:6;13294:73;:::i;:::-;12567:807;;;;;;;;;:::o;13380:143::-;13437:5;13468:6;13462:13;13453:22;;13484:33;13511:5;13484:33;:::i;:::-;13380:143;;;;:::o;13529:663::-;13617:6;13625;13633;13682:2;13670:9;13661:7;13657:23;13653:32;13650:119;;;13688:79;;:::i;:::-;13650:119;13808:1;13833:64;13889:7;13880:6;13869:9;13865:22;13833:64;:::i;:::-;13823:74;;13779:128;13946:2;13972:64;14028:7;14019:6;14008:9;14004:22;13972:64;:::i;:::-;13962:74;;13917:129;14085:2;14111:64;14167:7;14158:6;14147:9;14143:22;14111:64;:::i;:::-;14101:74;;14056:129;13529:663;;;;;:::o;14198:332::-;14319:4;14357:2;14346:9;14342:18;14334:26;;14370:71;14438:1;14427:9;14423:17;14414:6;14370:71;:::i;:::-;14451:72;14519:2;14508:9;14504:18;14495:6;14451:72;:::i;:::-;14198:332;;;;;:::o;14536:116::-;14606:21;14621:5;14606:21;:::i;:::-;14599:5;14596:32;14586:60;;14642:1;14639;14632:12;14586:60;14536:116;:::o;14658:137::-;14712:5;14743:6;14737:13;14728:22;;14759:30;14783:5;14759:30;:::i;:::-;14658:137;;;;:::o;14801:345::-;14868:6;14917:2;14905:9;14896:7;14892:23;14888:32;14885:119;;;14923:79;;:::i;:::-;14885:119;15043:1;15068:61;15121:7;15112:6;15101:9;15097:22;15068:61;:::i;:::-;15058:71;;15014:125;14801:345;;;;:::o;15152:223::-;15292:34;15288:1;15280:6;15276:14;15269:58;15361:6;15356:2;15348:6;15344:15;15337:31;15152:223;:::o;15381:366::-;15523:3;15544:67;15608:2;15603:3;15544:67;:::i;:::-;15537:74;;15620:93;15709:3;15620:93;:::i;:::-;15738:2;15733:3;15729:12;15722:19;;15381:366;;;:::o;15753:419::-;15919:4;15957:2;15946:9;15942:18;15934:26;;16006:9;16000:4;15996:20;15992:1;15981:9;15977:17;15970:47;16034:131;16160:4;16034:131;:::i;:::-;16026:139;;15753:419;;;:::o;16178:221::-;16318:34;16314:1;16306:6;16302:14;16295:58;16387:4;16382:2;16374:6;16370:15;16363:29;16178:221;:::o;16405:366::-;16547:3;16568:67;16632:2;16627:3;16568:67;:::i;:::-;16561:74;;16644:93;16733:3;16644:93;:::i;:::-;16762:2;16757:3;16753:12;16746:19;;16405:366;;;:::o;16777:419::-;16943:4;16981:2;16970:9;16966:18;16958:26;;17030:9;17024:4;17020:20;17016:1;17005:9;17001:17;16994:47;17058:131;17184:4;17058:131;:::i;:::-;17050:139;;16777:419;;;:::o;17202:224::-;17342:34;17338:1;17330:6;17326:14;17319:58;17411:7;17406:2;17398:6;17394:15;17387:32;17202:224;:::o;17432:366::-;17574:3;17595:67;17659:2;17654:3;17595:67;:::i;:::-;17588:74;;17671:93;17760:3;17671:93;:::i;:::-;17789:2;17784:3;17780:12;17773:19;;17432:366;;;:::o;17804:419::-;17970:4;18008:2;17997:9;17993:18;17985:26;;18057:9;18051:4;18047:20;18043:1;18032:9;18028:17;18021:47;18085:131;18211:4;18085:131;:::i;:::-;18077:139;;17804:419;;;:::o;18229:222::-;18369:34;18365:1;18357:6;18353:14;18346:58;18438:5;18433:2;18425:6;18421:15;18414:30;18229:222;:::o;18457:366::-;18599:3;18620:67;18684:2;18679:3;18620:67;:::i;:::-;18613:74;;18696:93;18785:3;18696:93;:::i;:::-;18814:2;18809:3;18805:12;18798:19;;18457:366;;;:::o;18829:419::-;18995:4;19033:2;19022:9;19018:18;19010:26;;19082:9;19076:4;19072:20;19068:1;19057:9;19053:17;19046:47;19110:131;19236:4;19110:131;:::i;:::-;19102:139;;18829:419;;;:::o;19254:228::-;19394:34;19390:1;19382:6;19378:14;19371:58;19463:11;19458:2;19450:6;19446:15;19439:36;19254:228;:::o;19488:366::-;19630:3;19651:67;19715:2;19710:3;19651:67;:::i;:::-;19644:74;;19727:93;19816:3;19727:93;:::i;:::-;19845:2;19840:3;19836:12;19829:19;;19488:366;;;:::o;19860:419::-;20026:4;20064:2;20053:9;20049:18;20041:26;;20113:9;20107:4;20103:20;20099:1;20088:9;20084:17;20077:47;20141:131;20267:4;20141:131;:::i;:::-;20133:139;;19860:419;;;:::o;20285:297::-;20425:34;20421:1;20413:6;20409:14;20402:58;20494:34;20489:2;20481:6;20477:15;20470:59;20563:11;20558:2;20550:6;20546:15;20539:36;20285:297;:::o;20588:366::-;20730:3;20751:67;20815:2;20810:3;20751:67;:::i;:::-;20744:74;;20827:93;20916:3;20827:93;:::i;:::-;20945:2;20940:3;20936:12;20929:19;;20588:366;;;:::o;20960:419::-;21126:4;21164:2;21153:9;21149:18;21141:26;;21213:9;21207:4;21203:20;21199:1;21188:9;21184:17;21177:47;21241:131;21367:4;21241:131;:::i;:::-;21233:139;;20960:419;;;:::o;21385:175::-;21525:27;21521:1;21513:6;21509:14;21502:51;21385:175;:::o;21566:366::-;21708:3;21729:67;21793:2;21788:3;21729:67;:::i;:::-;21722:74;;21805:93;21894:3;21805:93;:::i;:::-;21923:2;21918:3;21914:12;21907:19;;21566:366;;;:::o;21938:419::-;22104:4;22142:2;22131:9;22127:18;22119:26;;22191:9;22185:4;22181:20;22177:1;22166:9;22162:17;22155:47;22219:131;22345:4;22219:131;:::i;:::-;22211:139;;21938:419;;;:::o;22363:191::-;22403:3;22422:20;22440:1;22422:20;:::i;:::-;22417:25;;22456:20;22474:1;22456:20;:::i;:::-;22451:25;;22499:1;22496;22492:9;22485:16;;22520:3;22517:1;22514:10;22511:36;;;22527:18;;:::i;:::-;22511:36;22363:191;;;;:::o;22560:176::-;22700:28;22696:1;22688:6;22684:14;22677:52;22560:176;:::o;22742:366::-;22884:3;22905:67;22969:2;22964:3;22905:67;:::i;:::-;22898:74;;22981:93;23070:3;22981:93;:::i;:::-;23099:2;23094:3;23090:12;23083:19;;22742:366;;;:::o;23114:419::-;23280:4;23318:2;23307:9;23303:18;23295:26;;23367:9;23361:4;23357:20;23353:1;23342:9;23338:17;23331:47;23395:131;23521:4;23395:131;:::i;:::-;23387:139;;23114:419;;;:::o;23539:233::-;23578:3;23601:24;23619:5;23601:24;:::i;:::-;23592:33;;23647:66;23640:5;23637:77;23634:103;;23717:18;;:::i;:::-;23634:103;23764:1;23757:5;23753:13;23746:20;;23539:233;;;:::o;23778:194::-;23818:4;23838:20;23856:1;23838:20;:::i;:::-;23833:25;;23872:20;23890:1;23872:20;:::i;:::-;23867:25;;23916:1;23913;23909:9;23901:17;;23940:1;23934:4;23931:11;23928:37;;;23945:18;;:::i;:::-;23928:37;23778:194;;;;:::o;23978:180::-;24026:77;24023:1;24016:88;24123:4;24120:1;24113:15;24147:4;24144:1;24137:15;24164:180;24212:77;24209:1;24202:88;24309:4;24306:1;24299:15;24333:4;24330:1;24323:15;24350:114;24417:6;24451:5;24445:12;24435:22;;24350:114;;;:::o;24470:184::-;24569:11;24603:6;24598:3;24591:19;24643:4;24638:3;24634:14;24619:29;;24470:184;;;;:::o;24660:132::-;24727:4;24750:3;24742:11;;24780:4;24775:3;24771:14;24763:22;;24660:132;;;:::o;24798:108::-;24875:24;24893:5;24875:24;:::i;:::-;24870:3;24863:37;24798:108;;:::o;24912:179::-;24981:10;25002:46;25044:3;25036:6;25002:46;:::i;:::-;25080:4;25075:3;25071:14;25057:28;;24912:179;;;;:::o;25097:113::-;25167:4;25199;25194:3;25190:14;25182:22;;25097:113;;;:::o;25246:732::-;25365:3;25394:54;25442:5;25394:54;:::i;:::-;25464:86;25543:6;25538:3;25464:86;:::i;:::-;25457:93;;25574:56;25624:5;25574:56;:::i;:::-;25653:7;25684:1;25669:284;25694:6;25691:1;25688:13;25669:284;;;25770:6;25764:13;25797:63;25856:3;25841:13;25797:63;:::i;:::-;25790:70;;25883:60;25936:6;25883:60;:::i;:::-;25873:70;;25729:224;25716:1;25713;25709:9;25704:14;;25669:284;;;25673:14;25969:3;25962:10;;25370:608;;;25246:732;;;;:::o;25984:831::-;26247:4;26285:3;26274:9;26270:19;26262:27;;26299:71;26367:1;26356:9;26352:17;26343:6;26299:71;:::i;:::-;26380:80;26456:2;26445:9;26441:18;26432:6;26380:80;:::i;:::-;26507:9;26501:4;26497:20;26492:2;26481:9;26477:18;26470:48;26535:108;26638:4;26629:6;26535:108;:::i;:::-;26527:116;;26653:72;26721:2;26710:9;26706:18;26697:6;26653:72;:::i;:::-;26735:73;26803:3;26792:9;26788:19;26779:6;26735:73;:::i;:::-;25984:831;;;;;;;;:::o;26821:180::-;26869:77;26866:1;26859:88;26966:4;26963:1;26956:15;26990:4;26987:1;26980:15;27007:185;27047:1;27064:20;27082:1;27064:20;:::i;:::-;27059:25;;27098:20;27116:1;27098:20;:::i;:::-;27093:25;;27137:1;27127:35;;27142:18;;:::i;:::-;27127:35;27184:1;27181;27177:9;27172:14;;27007:185;;;;:::o;27198:220::-;27338:34;27334:1;27326:6;27322:14;27315:58;27407:3;27402:2;27394:6;27390:15;27383:28;27198:220;:::o;27424:366::-;27566:3;27587:67;27651:2;27646:3;27587:67;:::i;:::-;27580:74;;27663:93;27752:3;27663:93;:::i;:::-;27781:2;27776:3;27772:12;27765:19;;27424:366;;;:::o;27796:419::-;27962:4;28000:2;27989:9;27985:18;27977:26;;28049:9;28043:4;28039:20;28035:1;28024:9;28020:17;28013:47;28077:131;28203:4;28077:131;:::i;:::-;28069:139;;27796:419;;;:::o;28221:177::-;28361:29;28357:1;28349:6;28345:14;28338:53;28221:177;:::o;28404:366::-;28546:3;28567:67;28631:2;28626:3;28567:67;:::i;:::-;28560:74;;28643:93;28732:3;28643:93;:::i;:::-;28761:2;28756:3;28752:12;28745:19;;28404:366;;;:::o;28776:419::-;28942:4;28980:2;28969:9;28965:18;28957:26;;29029:9;29023:4;29019:20;29015:1;29004:9;29000:17;28993:47;29057:131;29183:4;29057:131;:::i;:::-;29049:139;;28776:419;;;:::o

Swarm Source

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