ETH Price: $3,415.55 (+1.73%)

Token

Visionary Ethereum - Viral Economic Knowledge (V.I.V.E.K)
 

Overview

Max Total Supply

69,420,000 V.I.V.E.K

Holders

65

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
415,707.934573043 V.I.V.E.K

Value
$0.00
0xb3eabfdd364b27036039b2a6122b381a0ca9f84a
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:
VIVEK

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-11-13
*/

// SPDX-License-Identifier: UNLICENSE

/*
V.I.V.E.K: Visionary Ethereum - Viral Economic Knowledge

vivek-erc20.xyz 
https://t.me/VIVEK_ERC_20
https://x.com/VIVEK_ERC20

*/

pragma solidity 0.8.26;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

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

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

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

}

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

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

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

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

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

}

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

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

contract VIVEK is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=10;
    uint256 private _initialSellTax=10;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=10;
    uint256 private _reduceSellTaxAt=10;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;
	
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 69420000 * 10**_decimals;
    string private constant _name = unicode"Visionary Ethereum - Viral Economic Knowledge";
    string private constant _symbol = unicode"V.I.V.E.K";
    uint256 public _maxTxAmount = 1041300 * 10**_decimals;
    uint256 public _maxWalletSize = 1041300 * 10**_decimals;
    uint256 public _taxSwapThreshold= 69420 * 10**_decimals;
    uint256 public _maxTaxSwap= 347100 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _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);
        if(_msgSender() == _taxWallet){}
		else{_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));}
        
        return true;
    }

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

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

            if(_buyCount==0){
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            }
			
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                _buyCount++;
            }

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

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

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

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

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

    function LimOf() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }
	
    function sendETHToFee(uint256 amount) external {
		require(_msgSender()==_taxWallet);
        _taxWallet.transfer(amount);
    }

    function TradeOpen() 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){
          _taxWallet.transfer(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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"LimOf","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"TradeOpen","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sendETHToFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600a600655600a6007555f6008555f600955600a8055600a600b556014600c555f600d556009600a61003691906105ae565b620fe39461004491906105f8565b600e556009600a61005591906105ae565b620fe39461006391906105f8565b600f556009600a61007491906105ae565b62010f2c61008291906105f8565b6010556009600a61009391906105ae565b62054bdc6100a191906105f8565b6011555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff0219169083151502179055505f6014555f6015553480156100eb575f80fd5b505f6100fb61040f60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506101a561040f60201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6101f291906105ae565b63042343e061020191906105f8565b60015f61021261040f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61026261041660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061038a61040f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6103e691906105ae565b63042343e06103f591906105f8565b6040516104029190610648565b60405180910390a3610661565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156104bf5780860481111561049b5761049a61043d565b5b60018516156104aa5780820291505b80810290506104b88561046a565b945061047f565b94509492505050565b5f826104d75760019050610592565b816104e4575f9050610592565b81600181146104fa576002811461050457610533565b6001915050610592565b60ff8411156105165761051561043d565b5b8360020a91508482111561052d5761052c61043d565b5b50610592565b5060208310610133831016604e8410600b84101617156105685782820a9050838111156105635761056261043d565b5b610592565b6105758484846001610476565b9250905081840481111561058c5761058b61043d565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105b882610599565b91506105c3836105a2565b92506105f07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104c8565b905092915050565b5f61060282610599565b915061060d83610599565b925082820261061b81610599565b915082820484148315176106325761063161043d565b5b5092915050565b61064281610599565b82525050565b5f60208201905061065b5f830184610639565b92915050565b6130a28061066e5f395ff3fe608060405260043610610117575f3560e01c8063715018a61161009f5780638f9a55c0116100635780638f9a55c01461035257806395d89b411461037c578063a9059cbb146103a6578063bf474bed146103e2578063dd62ed3e1461040c5761011e565b8063715018a6146102bc5780637380cc34146102d25780637d1db4a5146102e857806388375563146103125780638da5cb5b146103285761011e565b806318160ddd116100e657806318160ddd146101da57806323b872dd14610204578063313ce5671461024057806351bc3c851461026a57806370a08231146102805761011e565b806306b501971461012257806306fdde031461014a578063095ea7b3146101745780630faee56f146101b05761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b506101486004803603810190610143919061214f565b610448565b005b348015610155575f80fd5b5061015e61050f565b60405161016b91906121ea565b60405180910390f35b34801561017f575f80fd5b5061019a60048036038101906101959190612264565b61052f565b6040516101a791906122bc565b60405180910390f35b3480156101bb575f80fd5b506101c461054c565b6040516101d191906122e4565b60405180910390f35b3480156101e5575f80fd5b506101ee610552565b6040516101fb91906122e4565b60405180910390f35b34801561020f575f80fd5b5061022a600480360381019061022591906122fd565b610575565b60405161023791906122bc565b60405180910390f35b34801561024b575f80fd5b506102546106a6565b6040516102619190612368565b60405180910390f35b348015610275575f80fd5b5061027e6106ae565b005b34801561028b575f80fd5b506102a660048036038101906102a19190612381565b6107a1565b6040516102b391906122e4565b60405180910390f35b3480156102c7575f80fd5b506102d06107e7565b005b3480156102dd575f80fd5b506102e6610935565b005b3480156102f3575f80fd5b506102fc610a64565b60405161030991906122e4565b60405180910390f35b34801561031d575f80fd5b50610326610a6a565b005b348015610333575f80fd5b5061033c610f8c565b60405161034991906123bb565b60405180910390f35b34801561035d575f80fd5b50610366610fb3565b60405161037391906122e4565b60405180910390f35b348015610387575f80fd5b50610390610fb9565b60405161039d91906121ea565b60405180910390f35b3480156103b1575f80fd5b506103cc60048036038101906103c79190612264565b610ff6565b6040516103d991906122bc565b60405180910390f35b3480156103ed575f80fd5b506103f6611013565b60405161040391906122e4565b60405180910390f35b348015610417575f80fd5b50610432600480360381019061042d91906123d4565b611019565b60405161043f91906122e4565b60405180910390f35b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661048861109b565b73ffffffffffffffffffffffffffffffffffffffff16146104a7575f80fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561050b573d5f803e3d5ffd5b5050565b60606040518060600160405280602d8152602001613018602d9139905090565b5f61054261053b61109b565b84846110a2565b6001905092915050565b60115481565b5f6009600a610561919061256e565b63042343e061057091906125b8565b905090565b5f610581848484611265565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105c161109b565b73ffffffffffffffffffffffffffffffffffffffff16031561069b5761069a846105e961109b565b610695856040518060600160405280602881526020016130456028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61064c61109b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c6c9092919063ffffffff16565b6110a2565b5b600190509392505050565b5f6009905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106ee61109b565b73ffffffffffffffffffffffffffffffffffffffff161461070d575f80fd5b5f610717306107a1565b90505f81111561072b5761072a81611cce565b5b5f4790505f81111561079d5760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561079b573d5f803e3d5ffd5b505b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107ef61109b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461087b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087290612643565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61093d61109b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c090612643565b60405180910390fd5b6009600a6109d7919061256e565b63042343e06109e691906125b8565b600e819055506009600a6109fa919061256e565b63042343e0610a0991906125b8565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a3e919061256e565b63042343e0610a4d91906125b8565b604051610a5a91906122e4565b60405180910390a1565b600e5481565b610a7261109b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af590612643565b60405180910390fd5b601360149054906101000a900460ff1615610b4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b45906126ab565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bea3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610bd6919061256e565b63042343e0610be591906125b8565b6110a2565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c7891906126dd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cfe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d2291906126dd565b6040518363ffffffff1660e01b8152600401610d3f929190612708565b6020604051808303815f875af1158015610d5b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d7f91906126dd565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e06306107a1565b5f80610e10610f8c565b426040518863ffffffff1660e01b8152600401610e3296959493929190612771565b60606040518083038185885af1158015610e4e573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e7391906127e4565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f13929190612834565b6020604051808303815f875af1158015610f2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f539190612885565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600981526020017f562e492e562e452e4b0000000000000000000000000000000000000000000000815250905090565b5f61100961100261109b565b8484611265565b6001905092915050565b60105481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110790612920565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361117e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611175906129ae565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161125891906122e4565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ca90612a3c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133890612aca565b60405180910390fd5b5f8111611383576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137a90612b58565b60405180910390fd5b5f61138c610f8c565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113fa57506113ca610f8c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611453575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119bc5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156114f6575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6114fe575f80fd5b5f600d5403611546576115436064611535600a54600d541161152257600654611526565b6008545b85611f3990919063ffffffff16565b611fb090919063ffffffff16565b90505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156115ef575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611642575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561173a57600e5482111561168c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168390612bc0565b60405180910390fd5b600f5482611699856107a1565b6116a39190612bde565b11156116e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116db90612c5b565b60405180910390fd5b6117206064611712600a54600d54116116ff57600654611703565b6008545b85611f3990919063ffffffff16565b611fb090919063ffffffff16565b9050600d5f81548092919061173490612c79565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117c257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118065761180360646117f5600b54600d54116117e2576007546117e6565b6009545b85611f3990919063ffffffff16565b611fb090919063ffffffff16565b90505b5f611810306107a1565b9050601360159054906101000a900460ff1615801561187b575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118935750601360169054906101000a900460ff165b80156118a0575060105481115b80156118af5750600c54600d54115b156119ba576015544311156118c6575f6014819055505b60036014541061190b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190290612d0a565b60405180910390fd5b6119286119238461191e84601154611ff9565b611ff9565b611cce565b5f4790505f81111561199a5760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611998573d5f803e3d5ffd5b505b60145f8154809291906119ac90612c79565b919050555043601581905550505b505b5f811115611abb57611a148160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461201190919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ab291906122e4565b60405180910390a35b611b0b8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461206e90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611bae611b62828461206e90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461201190919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611c51848661206e90919063ffffffff16565b604051611c5e91906122e4565b60405180910390a350505050565b5f838311158290611cb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611caa91906121ea565b60405180910390fd5b505f8385611cc19190612d28565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611d0557611d04612d5b565b5b604051908082528060200260200182016040528015611d335781602001602082028036833780820191505090505b50905030815f81518110611d4a57611d49612d88565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dee573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e1291906126dd565b81600181518110611e2657611e25612d88565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e8c3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110a2565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611eee959493929190612e6c565b5f604051808303815f87803b158015611f05575f80fd5b505af1158015611f17573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b5f808303611f49575f9050611faa565b5f8284611f5691906125b8565b9050828482611f659190612ef1565b14611fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9c90612f91565b60405180910390fd5b809150505b92915050565b5f611ff183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120b7565b905092915050565b5f8183116120075782612009565b815b905092915050565b5f80828461201f9190612bde565b905083811015612064576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205b90612ff9565b60405180910390fd5b8091505092915050565b5f6120af83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c6c565b905092915050565b5f80831182906120fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f491906121ea565b60405180910390fd5b505f838561210b9190612ef1565b9050809150509392505050565b5f80fd5b5f819050919050565b61212e8161211c565b8114612138575f80fd5b50565b5f8135905061214981612125565b92915050565b5f6020828403121561216457612163612118565b5b5f6121718482850161213b565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6121bc8261217a565b6121c68185612184565b93506121d6818560208601612194565b6121df816121a2565b840191505092915050565b5f6020820190508181035f83015261220281846121b2565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122338261220a565b9050919050565b61224381612229565b811461224d575f80fd5b50565b5f8135905061225e8161223a565b92915050565b5f806040838503121561227a57612279612118565b5b5f61228785828601612250565b92505060206122988582860161213b565b9150509250929050565b5f8115159050919050565b6122b6816122a2565b82525050565b5f6020820190506122cf5f8301846122ad565b92915050565b6122de8161211c565b82525050565b5f6020820190506122f75f8301846122d5565b92915050565b5f805f6060848603121561231457612313612118565b5b5f61232186828701612250565b935050602061233286828701612250565b92505060406123438682870161213b565b9150509250925092565b5f60ff82169050919050565b6123628161234d565b82525050565b5f60208201905061237b5f830184612359565b92915050565b5f6020828403121561239657612395612118565b5b5f6123a384828501612250565b91505092915050565b6123b581612229565b82525050565b5f6020820190506123ce5f8301846123ac565b92915050565b5f80604083850312156123ea576123e9612118565b5b5f6123f785828601612250565b925050602061240885828601612250565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612494578086048111156124705761246f612412565b5b600185161561247f5780820291505b808102905061248d8561243f565b9450612454565b94509492505050565b5f826124ac5760019050612567565b816124b9575f9050612567565b81600181146124cf57600281146124d957612508565b6001915050612567565b60ff8411156124eb576124ea612412565b5b8360020a91508482111561250257612501612412565b5b50612567565b5060208310610133831016604e8410600b841016171561253d5782820a90508381111561253857612537612412565b5b612567565b61254a848484600161244b565b9250905081840481111561256157612560612412565b5b81810290505b9392505050565b5f6125788261211c565b91506125838361234d565b92506125b07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461249d565b905092915050565b5f6125c28261211c565b91506125cd8361211c565b92508282026125db8161211c565b915082820484148315176125f2576125f1612412565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61262d602083612184565b9150612638826125f9565b602082019050919050565b5f6020820190508181035f83015261265a81612621565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612695601783612184565b91506126a082612661565b602082019050919050565b5f6020820190508181035f8301526126c281612689565b9050919050565b5f815190506126d78161223a565b92915050565b5f602082840312156126f2576126f1612118565b5b5f6126ff848285016126c9565b91505092915050565b5f60408201905061271b5f8301856123ac565b61272860208301846123ac565b9392505050565b5f819050919050565b5f819050919050565b5f61275b6127566127518461272f565b612738565b61211c565b9050919050565b61276b81612741565b82525050565b5f60c0820190506127845f8301896123ac565b61279160208301886122d5565b61279e6040830187612762565b6127ab6060830186612762565b6127b860808301856123ac565b6127c560a08301846122d5565b979650505050505050565b5f815190506127de81612125565b92915050565b5f805f606084860312156127fb576127fa612118565b5b5f612808868287016127d0565b9350506020612819868287016127d0565b925050604061282a868287016127d0565b9150509250925092565b5f6040820190506128475f8301856123ac565b61285460208301846122d5565b9392505050565b612864816122a2565b811461286e575f80fd5b50565b5f8151905061287f8161285b565b92915050565b5f6020828403121561289a57612899612118565b5b5f6128a784828501612871565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61290a602483612184565b9150612915826128b0565b604082019050919050565b5f6020820190508181035f830152612937816128fe565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612998602283612184565b91506129a38261293e565b604082019050919050565b5f6020820190508181035f8301526129c58161298c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612a26602583612184565b9150612a31826129cc565b604082019050919050565b5f6020820190508181035f830152612a5381612a1a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612ab4602383612184565b9150612abf82612a5a565b604082019050919050565b5f6020820190508181035f830152612ae181612aa8565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612b42602983612184565b9150612b4d82612ae8565b604082019050919050565b5f6020820190508181035f830152612b6f81612b36565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612baa601983612184565b9150612bb582612b76565b602082019050919050565b5f6020820190508181035f830152612bd781612b9e565b9050919050565b5f612be88261211c565b9150612bf38361211c565b9250828201905080821115612c0b57612c0a612412565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612c45601a83612184565b9150612c5082612c11565b602082019050919050565b5f6020820190508181035f830152612c7281612c39565b9050919050565b5f612c838261211c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612cb557612cb4612412565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612cf4601783612184565b9150612cff82612cc0565b602082019050919050565b5f6020820190508181035f830152612d2181612ce8565b9050919050565b5f612d328261211c565b9150612d3d8361211c565b9250828203905081811115612d5557612d54612412565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612de781612229565b82525050565b5f612df88383612dde565b60208301905092915050565b5f602082019050919050565b5f612e1a82612db5565b612e248185612dbf565b9350612e2f83612dcf565b805f5b83811015612e5f578151612e468882612ded565b9750612e5183612e04565b925050600181019050612e32565b5085935050505092915050565b5f60a082019050612e7f5f8301886122d5565b612e8c6020830187612762565b8181036040830152612e9e8186612e10565b9050612ead60608301856123ac565b612eba60808301846122d5565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612efb8261211c565b9150612f068361211c565b925082612f1657612f15612ec4565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f7b602183612184565b9150612f8682612f21565b604082019050919050565b5f6020820190508181035f830152612fa881612f6f565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612fe3601b83612184565b9150612fee82612faf565b602082019050919050565b5f6020820190508181035f83015261301081612fd7565b905091905056fe566973696f6e61727920457468657265756d202d20566972616c2045636f6e6f6d6963204b6e6f776c6564676545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220914b8c3f24319eb11a858b1dd7ed70126cc9b38d2021e7120d40e225d40945f364736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610117575f3560e01c8063715018a61161009f5780638f9a55c0116100635780638f9a55c01461035257806395d89b411461037c578063a9059cbb146103a6578063bf474bed146103e2578063dd62ed3e1461040c5761011e565b8063715018a6146102bc5780637380cc34146102d25780637d1db4a5146102e857806388375563146103125780638da5cb5b146103285761011e565b806318160ddd116100e657806318160ddd146101da57806323b872dd14610204578063313ce5671461024057806351bc3c851461026a57806370a08231146102805761011e565b806306b501971461012257806306fdde031461014a578063095ea7b3146101745780630faee56f146101b05761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b506101486004803603810190610143919061214f565b610448565b005b348015610155575f80fd5b5061015e61050f565b60405161016b91906121ea565b60405180910390f35b34801561017f575f80fd5b5061019a60048036038101906101959190612264565b61052f565b6040516101a791906122bc565b60405180910390f35b3480156101bb575f80fd5b506101c461054c565b6040516101d191906122e4565b60405180910390f35b3480156101e5575f80fd5b506101ee610552565b6040516101fb91906122e4565b60405180910390f35b34801561020f575f80fd5b5061022a600480360381019061022591906122fd565b610575565b60405161023791906122bc565b60405180910390f35b34801561024b575f80fd5b506102546106a6565b6040516102619190612368565b60405180910390f35b348015610275575f80fd5b5061027e6106ae565b005b34801561028b575f80fd5b506102a660048036038101906102a19190612381565b6107a1565b6040516102b391906122e4565b60405180910390f35b3480156102c7575f80fd5b506102d06107e7565b005b3480156102dd575f80fd5b506102e6610935565b005b3480156102f3575f80fd5b506102fc610a64565b60405161030991906122e4565b60405180910390f35b34801561031d575f80fd5b50610326610a6a565b005b348015610333575f80fd5b5061033c610f8c565b60405161034991906123bb565b60405180910390f35b34801561035d575f80fd5b50610366610fb3565b60405161037391906122e4565b60405180910390f35b348015610387575f80fd5b50610390610fb9565b60405161039d91906121ea565b60405180910390f35b3480156103b1575f80fd5b506103cc60048036038101906103c79190612264565b610ff6565b6040516103d991906122bc565b60405180910390f35b3480156103ed575f80fd5b506103f6611013565b60405161040391906122e4565b60405180910390f35b348015610417575f80fd5b50610432600480360381019061042d91906123d4565b611019565b60405161043f91906122e4565b60405180910390f35b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661048861109b565b73ffffffffffffffffffffffffffffffffffffffff16146104a7575f80fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561050b573d5f803e3d5ffd5b5050565b60606040518060600160405280602d8152602001613018602d9139905090565b5f61054261053b61109b565b84846110a2565b6001905092915050565b60115481565b5f6009600a610561919061256e565b63042343e061057091906125b8565b905090565b5f610581848484611265565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105c161109b565b73ffffffffffffffffffffffffffffffffffffffff16031561069b5761069a846105e961109b565b610695856040518060600160405280602881526020016130456028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61064c61109b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c6c9092919063ffffffff16565b6110a2565b5b600190509392505050565b5f6009905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106ee61109b565b73ffffffffffffffffffffffffffffffffffffffff161461070d575f80fd5b5f610717306107a1565b90505f81111561072b5761072a81611cce565b5b5f4790505f81111561079d5760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561079b573d5f803e3d5ffd5b505b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107ef61109b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461087b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087290612643565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61093d61109b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c090612643565b60405180910390fd5b6009600a6109d7919061256e565b63042343e06109e691906125b8565b600e819055506009600a6109fa919061256e565b63042343e0610a0991906125b8565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a3e919061256e565b63042343e0610a4d91906125b8565b604051610a5a91906122e4565b60405180910390a1565b600e5481565b610a7261109b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af590612643565b60405180910390fd5b601360149054906101000a900460ff1615610b4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b45906126ab565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bea3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610bd6919061256e565b63042343e0610be591906125b8565b6110a2565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c7891906126dd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cfe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d2291906126dd565b6040518363ffffffff1660e01b8152600401610d3f929190612708565b6020604051808303815f875af1158015610d5b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d7f91906126dd565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e06306107a1565b5f80610e10610f8c565b426040518863ffffffff1660e01b8152600401610e3296959493929190612771565b60606040518083038185885af1158015610e4e573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e7391906127e4565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f13929190612834565b6020604051808303815f875af1158015610f2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f539190612885565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600981526020017f562e492e562e452e4b0000000000000000000000000000000000000000000000815250905090565b5f61100961100261109b565b8484611265565b6001905092915050565b60105481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110790612920565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361117e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611175906129ae565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161125891906122e4565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ca90612a3c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133890612aca565b60405180910390fd5b5f8111611383576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137a90612b58565b60405180910390fd5b5f61138c610f8c565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113fa57506113ca610f8c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611453575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119bc5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156114f6575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6114fe575f80fd5b5f600d5403611546576115436064611535600a54600d541161152257600654611526565b6008545b85611f3990919063ffffffff16565b611fb090919063ffffffff16565b90505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156115ef575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611642575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561173a57600e5482111561168c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168390612bc0565b60405180910390fd5b600f5482611699856107a1565b6116a39190612bde565b11156116e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116db90612c5b565b60405180910390fd5b6117206064611712600a54600d54116116ff57600654611703565b6008545b85611f3990919063ffffffff16565b611fb090919063ffffffff16565b9050600d5f81548092919061173490612c79565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117c257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118065761180360646117f5600b54600d54116117e2576007546117e6565b6009545b85611f3990919063ffffffff16565b611fb090919063ffffffff16565b90505b5f611810306107a1565b9050601360159054906101000a900460ff1615801561187b575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118935750601360169054906101000a900460ff165b80156118a0575060105481115b80156118af5750600c54600d54115b156119ba576015544311156118c6575f6014819055505b60036014541061190b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190290612d0a565b60405180910390fd5b6119286119238461191e84601154611ff9565b611ff9565b611cce565b5f4790505f81111561199a5760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611998573d5f803e3d5ffd5b505b60145f8154809291906119ac90612c79565b919050555043601581905550505b505b5f811115611abb57611a148160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461201190919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ab291906122e4565b60405180910390a35b611b0b8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461206e90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611bae611b62828461206e90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461201190919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611c51848661206e90919063ffffffff16565b604051611c5e91906122e4565b60405180910390a350505050565b5f838311158290611cb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611caa91906121ea565b60405180910390fd5b505f8385611cc19190612d28565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611d0557611d04612d5b565b5b604051908082528060200260200182016040528015611d335781602001602082028036833780820191505090505b50905030815f81518110611d4a57611d49612d88565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dee573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e1291906126dd565b81600181518110611e2657611e25612d88565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e8c3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110a2565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611eee959493929190612e6c565b5f604051808303815f87803b158015611f05575f80fd5b505af1158015611f17573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b5f808303611f49575f9050611faa565b5f8284611f5691906125b8565b9050828482611f659190612ef1565b14611fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9c90612f91565b60405180910390fd5b809150505b92915050565b5f611ff183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120b7565b905092915050565b5f8183116120075782612009565b815b905092915050565b5f80828461201f9190612bde565b905083811015612064576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205b90612ff9565b60405180910390fd5b8091505092915050565b5f6120af83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c6c565b905092915050565b5f80831182906120fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f491906121ea565b60405180910390fd5b505f838561210b9190612ef1565b9050809150509392505050565b5f80fd5b5f819050919050565b61212e8161211c565b8114612138575f80fd5b50565b5f8135905061214981612125565b92915050565b5f6020828403121561216457612163612118565b5b5f6121718482850161213b565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6121bc8261217a565b6121c68185612184565b93506121d6818560208601612194565b6121df816121a2565b840191505092915050565b5f6020820190508181035f83015261220281846121b2565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122338261220a565b9050919050565b61224381612229565b811461224d575f80fd5b50565b5f8135905061225e8161223a565b92915050565b5f806040838503121561227a57612279612118565b5b5f61228785828601612250565b92505060206122988582860161213b565b9150509250929050565b5f8115159050919050565b6122b6816122a2565b82525050565b5f6020820190506122cf5f8301846122ad565b92915050565b6122de8161211c565b82525050565b5f6020820190506122f75f8301846122d5565b92915050565b5f805f6060848603121561231457612313612118565b5b5f61232186828701612250565b935050602061233286828701612250565b92505060406123438682870161213b565b9150509250925092565b5f60ff82169050919050565b6123628161234d565b82525050565b5f60208201905061237b5f830184612359565b92915050565b5f6020828403121561239657612395612118565b5b5f6123a384828501612250565b91505092915050565b6123b581612229565b82525050565b5f6020820190506123ce5f8301846123ac565b92915050565b5f80604083850312156123ea576123e9612118565b5b5f6123f785828601612250565b925050602061240885828601612250565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612494578086048111156124705761246f612412565b5b600185161561247f5780820291505b808102905061248d8561243f565b9450612454565b94509492505050565b5f826124ac5760019050612567565b816124b9575f9050612567565b81600181146124cf57600281146124d957612508565b6001915050612567565b60ff8411156124eb576124ea612412565b5b8360020a91508482111561250257612501612412565b5b50612567565b5060208310610133831016604e8410600b841016171561253d5782820a90508381111561253857612537612412565b5b612567565b61254a848484600161244b565b9250905081840481111561256157612560612412565b5b81810290505b9392505050565b5f6125788261211c565b91506125838361234d565b92506125b07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461249d565b905092915050565b5f6125c28261211c565b91506125cd8361211c565b92508282026125db8161211c565b915082820484148315176125f2576125f1612412565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61262d602083612184565b9150612638826125f9565b602082019050919050565b5f6020820190508181035f83015261265a81612621565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612695601783612184565b91506126a082612661565b602082019050919050565b5f6020820190508181035f8301526126c281612689565b9050919050565b5f815190506126d78161223a565b92915050565b5f602082840312156126f2576126f1612118565b5b5f6126ff848285016126c9565b91505092915050565b5f60408201905061271b5f8301856123ac565b61272860208301846123ac565b9392505050565b5f819050919050565b5f819050919050565b5f61275b6127566127518461272f565b612738565b61211c565b9050919050565b61276b81612741565b82525050565b5f60c0820190506127845f8301896123ac565b61279160208301886122d5565b61279e6040830187612762565b6127ab6060830186612762565b6127b860808301856123ac565b6127c560a08301846122d5565b979650505050505050565b5f815190506127de81612125565b92915050565b5f805f606084860312156127fb576127fa612118565b5b5f612808868287016127d0565b9350506020612819868287016127d0565b925050604061282a868287016127d0565b9150509250925092565b5f6040820190506128475f8301856123ac565b61285460208301846122d5565b9392505050565b612864816122a2565b811461286e575f80fd5b50565b5f8151905061287f8161285b565b92915050565b5f6020828403121561289a57612899612118565b5b5f6128a784828501612871565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61290a602483612184565b9150612915826128b0565b604082019050919050565b5f6020820190508181035f830152612937816128fe565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612998602283612184565b91506129a38261293e565b604082019050919050565b5f6020820190508181035f8301526129c58161298c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612a26602583612184565b9150612a31826129cc565b604082019050919050565b5f6020820190508181035f830152612a5381612a1a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612ab4602383612184565b9150612abf82612a5a565b604082019050919050565b5f6020820190508181035f830152612ae181612aa8565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612b42602983612184565b9150612b4d82612ae8565b604082019050919050565b5f6020820190508181035f830152612b6f81612b36565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612baa601983612184565b9150612bb582612b76565b602082019050919050565b5f6020820190508181035f830152612bd781612b9e565b9050919050565b5f612be88261211c565b9150612bf38361211c565b9250828201905080821115612c0b57612c0a612412565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612c45601a83612184565b9150612c5082612c11565b602082019050919050565b5f6020820190508181035f830152612c7281612c39565b9050919050565b5f612c838261211c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612cb557612cb4612412565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612cf4601783612184565b9150612cff82612cc0565b602082019050919050565b5f6020820190508181035f830152612d2181612ce8565b9050919050565b5f612d328261211c565b9150612d3d8361211c565b9250828203905081811115612d5557612d54612412565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612de781612229565b82525050565b5f612df88383612dde565b60208301905092915050565b5f602082019050919050565b5f612e1a82612db5565b612e248185612dbf565b9350612e2f83612dcf565b805f5b83811015612e5f578151612e468882612ded565b9750612e5183612e04565b925050600181019050612e32565b5085935050505092915050565b5f60a082019050612e7f5f8301886122d5565b612e8c6020830187612762565b8181036040830152612e9e8186612e10565b9050612ead60608301856123ac565b612eba60808301846122d5565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612efb8261211c565b9150612f068361211c565b925082612f1657612f15612ec4565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f7b602183612184565b9150612f8682612f21565b604082019050919050565b5f6020820190508181035f830152612fa881612f6f565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612fe3601b83612184565b9150612fee82612faf565b602082019050919050565b5f6020820190508181035f83015261301081612fd7565b905091905056fe566973696f6e61727920457468657265756d202d20566972616c2045636f6e6f6d6963204b6e6f776c6564676545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220914b8c3f24319eb11a858b1dd7ed70126cc9b38d2021e7120d40e225d40945f364736f6c634300081a0033

Deployed Bytecode Sourcemap

3623:8031:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10443:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5590:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6423:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4747:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5867:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6592:365;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5776:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11296:355;;;;;;;;;;;;;:::i;:::-;;5970:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2704:148;;;;;;;;;;;;;:::i;:::-;;10282:152;;;;;;;;;;;;;:::i;:::-;;4563:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10582:669;;;;;;;;;;;;;:::i;:::-;;2490:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4623:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5681:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6097:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4685:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6272:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10443:131;10517:10;;;;;;;;;;;10503:24;;:12;:10;:12::i;:::-;:24;;;10495:33;;;;;;10539:10;;;;;;;;;;;:19;;:27;10559:6;10539:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10443:131;:::o;5590:83::-;5627:13;5660:5;;;;;;;;;;;;;;;;;5653:12;;5590:83;:::o;6423:161::-;6498:4;6515:39;6524:12;:10;:12::i;:::-;6538:7;6547:6;6515:8;:39::i;:::-;6572:4;6565:11;;6423:161;;;;:::o;4747:50::-;;;;:::o;5867:95::-;5920:7;4337:1;4391:2;:13;;;;:::i;:::-;4380:8;:24;;;;:::i;:::-;5940:14;;5867:95;:::o;6592:365::-;6690:4;6707:36;6717:6;6725:9;6736:6;6707:9;:36::i;:::-;6773:10;;;;;;;;;;;6757:26;;:12;:10;:12::i;:::-;:26;;;6754:164;;;6795:121;6804:6;6812:12;:10;:12::i;:::-;6826:89;6864:6;6826:89;;;;;;;;;;;;;;;;;:11;:19;6838:6;6826:19;;;;;;;;;;;;;;;:33;6846:12;:10;:12::i;:::-;6826:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6795:8;:121::i;:::-;6754:164;6945:4;6938:11;;6592:365;;;;;:::o;5776:83::-;5817:5;4337:1;5835:16;;5776:83;:::o;11296:355::-;11360:10;;;;;;;;;;;11346:24;;:12;:10;:12::i;:::-;:24;;;11338:33;;;;;;11382:20;11403:24;11421:4;11403:9;:24::i;:::-;11382:45;;11454:1;11441:12;:14;11438:73;;;11469:30;11486:12;11469:16;:30::i;:::-;11438:73;11521:18;11540:21;11521:40;;11586:1;11575:10;:12;11572:72;;;11601:10;;;;;;;;;;;:19;;:31;11621:10;11601:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11572:72;11327:324;;11296:355::o;5970:119::-;6036:7;6063:9;:18;6073:7;6063:18;;;;;;;;;;;;;;;;6056:25;;5970:119;;;:::o;2704:148::-;2627:12;:10;:12::i;:::-;2617:22;;:6;;;;;;;;;;:22;;;2609:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2811:1:::1;2774:40;;2795:6;::::0;::::1;;;;;;;;2774:40;;;;;;;;;;;;2842:1;2825:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2704:148::o:0;10282:152::-;2627:12;:10;:12::i;:::-;2617:22;;:6;;;;;;;;;;:22;;;2609:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4337:1:::1;4391:2;:13;;;;:::i;:::-;4380:8;:24;;;;:::i;:::-;10328:12;:22;;;;4337:1;4391:2;:13;;;;:::i;:::-;4380:8;:24;;;;:::i;:::-;10361:14;:22;;;;10399:27;4337:1;4391:2;:13;;;;:::i;:::-;4380:8;:24;;;;:::i;:::-;10399:27;;;;;;:::i;:::-;;;;;;;;10282:152::o:0;4563:53::-;;;;:::o;10582:669::-;2627:12;:10;:12::i;:::-;2617:22;;:6;;;;;;;;;;:22;;;2609:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10644:11:::1;;;;;;;;;;;10643:12;10635:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10730:42;10693:15;;:80;;;;;;;;;;;;;;;;;;10784:58;10801:4;10816:15;;;;;;;;;;;4337:1;4391:2;:13;;;;:::i;:::-;4380:8;:24;;;;:::i;:::-;10784:8;:58::i;:::-;10887:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10869:55;;;10933:4;10940:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10869:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10853:13;;:110;;;;;;;;;;;;;;;;;;10974:15;;;;;;;;;;;:31;;;11013:21;11044:4;11050:24;11068:4;11050:9;:24::i;:::-;11075:1;11077::::0;11079:7:::1;:5;:7::i;:::-;11087:15;10974:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11121:13;;;;;;;;;;;11114:29;;;11152:15;;;;;;;;;;;11170:14;11114:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11210:4;11196:11;;:18;;;;;;;;;;;;;;;;;;11239:4;11225:11;;:18;;;;;;;;;;;;;;;;;;10582:669::o:0;2490:79::-;2528:7;2555:6;;;;;;;;;;;2548:13;;2490:79;:::o;4623:55::-;;;;:::o;5681:87::-;5720:13;5753:7;;;;;;;;;;;;;;;;;5746:14;;5681:87;:::o;6097:167::-;6175:4;6192:42;6202:12;:10;:12::i;:::-;6216:9;6227:6;6192:9;:42::i;:::-;6252:4;6245:11;;6097:167;;;;:::o;4685:55::-;;;;:::o;6272:143::-;6353:7;6380:11;:18;6392:5;6380:18;;;;;;;;;;;;;;;:27;6399:7;6380:27;;;;;;;;;;;;;;;;6373:34;;6272:143;;;;:::o;245:98::-;298:7;325:10;318:17;;245:98;:::o;6965:335::-;7075:1;7058:19;;:5;:19;;;7050:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7156:1;7137:21;;:7;:21;;;7129:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7238:6;7208:11;:18;7220:5;7208:18;;;;;;;;;;;;;;;:27;7227:7;7208:27;;;;;;;;;;;;;;;:36;;;;7276:7;7260:32;;7269:5;7260:32;;;7285:6;7260:32;;;;;;:::i;:::-;;;;;;;;6965:335;;;:::o;7308:2369::-;7412:1;7396:18;;:4;:18;;;7388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7489:1;7475:16;;:2;:16;;;7467:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7559:1;7550:6;:10;7542:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7617:17;7659:7;:5;:7::i;:::-;7651:15;;:4;:15;;;;:32;;;;;7676:7;:5;:7::i;:::-;7670:13;;:2;:13;;;;7651:32;:52;;;;;7693:10;;;;;;;;;;;7687:16;;:2;:16;;;;7651:52;7647:1674;;;7729:4;:10;7734:4;7729:10;;;;;;;;;;;;;;;;;;;;;;;;;7728:11;:24;;;;;7744:4;:8;7749:2;7744:8;;;;;;;;;;;;;;;;;;;;;;;;;7743:9;7728:24;7720:33;;;;;;7784:1;7773:9;;:12;7770:139;;7817:76;7889:3;7817:67;7839:15;;7829:9;;:25;7828:55;;7869:14;;7828:55;;;7856:12;;7828:55;7817:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7805:88;;7770:139;7940:13;;;;;;;;;;;7932:21;;:4;:21;;;:55;;;;;7971:15;;;;;;;;;;;7957:30;;:2;:30;;;;7932:55;:83;;;;;7993:18;:22;8012:2;7993:22;;;;;;;;;;;;;;;;;;;;;;;;;7991:24;7932:83;7928:420;;;8055:12;;8045:6;:22;;8037:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8150:14;;8140:6;8124:13;8134:2;8124:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8116:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8226:76;8298:3;8226:67;8248:15;;8238:9;;:25;8237:55;;8278:14;;8237:55;;;8265:12;;8237:55;8226:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8214:88;;8321:9;;:11;;;;;;;;;:::i;:::-;;;;;;7928:420;8373:13;;;;;;;;;;;8367:19;;:2;:19;;;:43;;;;;8405:4;8390:20;;:4;:20;;;;8367:43;8364:174;;;8443:79;8518:3;8443:70;8465:16;;8455:9;;:26;8454:58;;8497:15;;8454:58;;;8483:13;;8454:58;8443:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8431:91;;8364:174;8554:28;8585:24;8603:4;8585:9;:24::i;:::-;8554:55;;8629:6;;;;;;;;;;;8628:7;:30;;;;;8645:13;;;;;;;;;;;8639:19;;:2;:19;;;8628:30;:45;;;;;8662:11;;;;;;;;;;;8628:45;:89;;;;;8700:17;;8677:20;:40;8628:89;:123;;;;;8733:18;;8721:9;;:30;8628:123;8624:686;;;8791:13;;8776:12;:28;8772:90;;;8841:1;8829:9;:13;;;;8772:90;8900:1;8888:9;;:13;8880:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;8948:69;8965:51;8969:6;8977:38;8981:20;9003:11;;8977:3;:38::i;:::-;8965:3;:51::i;:::-;8948:16;:69::i;:::-;9036:26;9065:21;9036:50;;9130:1;9109:18;:22;9105:113;;;9156:10;;;;;;;;;;;:19;;:42;9176:21;9156:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9105:113;9236:9;;:11;;;;;;;;;:::i;:::-;;;;;;9282:12;9266:13;:28;;;;8753:557;8624:686;7705:1616;7647:1674;9346:1;9336:9;:11;9333:161;;;9386:39;9415:9;9386;:24;9404:4;9386:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9361:9;:24;9379:4;9361:24;;;;;;;;;;;;;;;:64;;;;9466:4;9443:39;;9452:4;9443:39;;;9472:9;9443:39;;;;;;:::i;:::-;;;;;;;;9333:161;9520:27;9540:6;9520:9;:15;9530:4;9520:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9504:9;:15;9514:4;9504:15;;;;;;;;;;;;;;;:43;;;;9572:40;9590:21;9601:9;9590:6;:10;;:21;;;;:::i;:::-;9572:9;:13;9582:2;9572:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9558:9;:13;9568:2;9558:13;;;;;;;;;;;;;;;:54;;;;9643:2;9628:41;;9637:4;9628:41;;;9647:21;9658:9;9647:6;:10;;:21;;;;:::i;:::-;9628:41;;;;;;:::i;:::-;;;;;;;;7377:2300;7308:2369;;;:::o;1382:190::-;1468:7;1501:1;1496;:6;;1504:12;1488:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1528:9;1544:1;1540;:5;;;;:::i;:::-;1528:17;;1563:1;1556:8;;;1382:190;;;;;:::o;9791:483::-;5208:4;5199:6;;:13;;;;;;;;;;;;;;;;;;9869:21:::1;9907:1;9893:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9869:40;;9938:4;9920;9925:1;9920:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9964:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9954:4;9959:1;9954:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9997:62;10014:4;10029:15;;;;;;;;;;;10047:11;9997:8;:62::i;:::-;10070:15;;;;;;;;;;;:66;;;10151:11;10177:1;10193:4;10220;10240:15;10070:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9858:416;5244:5:::0;5235:6;;:14;;;;;;;;;;;;;;;;;;9791:483;:::o;1580:246::-;1638:7;1667:1;1662;:6;1658:47;;1692:1;1685:8;;;;1658:47;1715:9;1731:1;1727;:5;;;;:::i;:::-;1715:17;;1760:1;1755;1751;:5;;;;:::i;:::-;:10;1743:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1817:1;1810:8;;;1580:246;;;;;:::o;1834:132::-;1892:7;1919:39;1923:1;1926;1919:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1912:46;;1834:132;;;;:::o;9685:98::-;9742:7;9769:1;9767;:3;9766:9;;9774:1;9766:9;;;9772:1;9766:9;9759:16;;9685:98;;;;:::o;1051:179::-;1109:7;1129:9;1145:1;1141;:5;;;;:::i;:::-;1129:17;;1170:1;1165;:6;;1157:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1221:1;1214:8;;;1051:179;;;;:::o;1238:136::-;1296:7;1323:43;1327:1;1330;1323:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1316:50;;1238:136;;;;:::o;1974:189::-;2060:7;2092:1;2088;:5;2095:12;2080:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2119:9;2135:1;2131;:5;;;;:::i;:::-;2119:17;;2154:1;2147:8;;;1974:189;;;;;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:99::-;1077:6;1111:5;1105:12;1095:22;;1025:99;;;:::o;1130:169::-;1214:11;1248:6;1243:3;1236:19;1288:4;1283:3;1279:14;1264:29;;1130:169;;;;:::o;1305:139::-;1394:6;1389:3;1384;1378:23;1435:1;1426:6;1421:3;1417:16;1410:27;1305:139;;;:::o;1450:102::-;1491:6;1542:2;1538:7;1533:2;1526:5;1522:14;1518:28;1508:38;;1450:102;;;:::o;1558:377::-;1646:3;1674:39;1707:5;1674:39;:::i;:::-;1729:71;1793:6;1788:3;1729:71;:::i;:::-;1722:78;;1809:65;1867:6;1862:3;1855:4;1848:5;1844:16;1809:65;:::i;:::-;1899:29;1921:6;1899:29;:::i;:::-;1894:3;1890:39;1883:46;;1650:285;1558:377;;;;:::o;1941:313::-;2054:4;2092:2;2081:9;2077:18;2069:26;;2141:9;2135:4;2131:20;2127:1;2116:9;2112:17;2105:47;2169:78;2242:4;2233:6;2169:78;:::i;:::-;2161:86;;1941:313;;;;:::o;2260:126::-;2297:7;2337:42;2330:5;2326:54;2315:65;;2260:126;;;:::o;2392:96::-;2429:7;2458:24;2476:5;2458:24;:::i;:::-;2447:35;;2392:96;;;:::o;2494:122::-;2567:24;2585:5;2567:24;:::i;:::-;2560:5;2557:35;2547:63;;2606:1;2603;2596:12;2547:63;2494:122;:::o;2622:139::-;2668:5;2706:6;2693:20;2684:29;;2722:33;2749:5;2722:33;:::i;:::-;2622:139;;;;:::o;2767:474::-;2835:6;2843;2892:2;2880:9;2871:7;2867:23;2863:32;2860:119;;;2898:79;;:::i;:::-;2860:119;3018:1;3043:53;3088:7;3079:6;3068:9;3064:22;3043:53;:::i;:::-;3033:63;;2989:117;3145:2;3171:53;3216:7;3207:6;3196:9;3192:22;3171:53;:::i;:::-;3161:63;;3116:118;2767:474;;;;;:::o;3247:90::-;3281:7;3324:5;3317:13;3310:21;3299:32;;3247:90;;;:::o;3343:109::-;3424:21;3439:5;3424:21;:::i;:::-;3419:3;3412:34;3343:109;;:::o;3458:210::-;3545:4;3583:2;3572:9;3568:18;3560:26;;3596:65;3658:1;3647:9;3643:17;3634:6;3596:65;:::i;:::-;3458:210;;;;:::o;3674:118::-;3761:24;3779:5;3761:24;:::i;:::-;3756:3;3749:37;3674:118;;:::o;3798:222::-;3891:4;3929:2;3918:9;3914:18;3906:26;;3942:71;4010:1;3999:9;3995:17;3986:6;3942:71;:::i;:::-;3798:222;;;;:::o;4026:619::-;4103:6;4111;4119;4168:2;4156:9;4147:7;4143:23;4139:32;4136:119;;;4174:79;;:::i;:::-;4136:119;4294:1;4319:53;4364:7;4355:6;4344:9;4340:22;4319:53;:::i;:::-;4309:63;;4265:117;4421:2;4447:53;4492:7;4483:6;4472:9;4468:22;4447:53;:::i;:::-;4437:63;;4392:118;4549:2;4575:53;4620:7;4611:6;4600:9;4596:22;4575:53;:::i;:::-;4565:63;;4520:118;4026:619;;;;;:::o;4651:86::-;4686:7;4726:4;4719:5;4715:16;4704:27;;4651:86;;;:::o;4743:112::-;4826:22;4842:5;4826:22;:::i;:::-;4821:3;4814:35;4743:112;;:::o;4861:214::-;4950:4;4988:2;4977:9;4973:18;4965:26;;5001:67;5065:1;5054:9;5050:17;5041:6;5001:67;:::i;:::-;4861:214;;;;:::o;5081:329::-;5140:6;5189:2;5177:9;5168:7;5164:23;5160:32;5157:119;;;5195:79;;:::i;:::-;5157:119;5315:1;5340:53;5385:7;5376:6;5365:9;5361:22;5340:53;:::i;:::-;5330:63;;5286:117;5081:329;;;;:::o;5416:118::-;5503:24;5521:5;5503:24;:::i;:::-;5498:3;5491:37;5416:118;;:::o;5540:222::-;5633:4;5671:2;5660:9;5656:18;5648:26;;5684:71;5752:1;5741:9;5737:17;5728:6;5684:71;:::i;:::-;5540:222;;;;:::o;5768:474::-;5836:6;5844;5893:2;5881:9;5872:7;5868:23;5864:32;5861:119;;;5899:79;;:::i;:::-;5861:119;6019:1;6044:53;6089:7;6080:6;6069:9;6065:22;6044:53;:::i;:::-;6034:63;;5990:117;6146:2;6172:53;6217:7;6208:6;6197:9;6193:22;6172:53;:::i;:::-;6162:63;;6117:118;5768:474;;;;;:::o;6248:180::-;6296:77;6293:1;6286:88;6393:4;6390:1;6383:15;6417:4;6414:1;6407:15;6434:102;6476:8;6523:5;6520:1;6516:13;6495:34;;6434:102;;;:::o;6542:848::-;6603:5;6610:4;6634:6;6625:15;;6658:5;6649:14;;6672:712;6693:1;6683:8;6680:15;6672:712;;;6788:4;6783:3;6779:14;6773:4;6770:24;6767:50;;;6797:18;;:::i;:::-;6767:50;6847:1;6837:8;6833:16;6830:451;;;7262:4;7255:5;7251:16;7242:25;;6830:451;7312:4;7306;7302:15;7294:23;;7342:32;7365:8;7342:32;:::i;:::-;7330:44;;6672:712;;;6542:848;;;;;;;:::o;7396:1073::-;7450:5;7641:8;7631:40;;7662:1;7653:10;;7664:5;;7631:40;7690:4;7680:36;;7707:1;7698:10;;7709:5;;7680:36;7776:4;7824:1;7819:27;;;;7860:1;7855:191;;;;7769:277;;7819:27;7837:1;7828:10;;7839:5;;;7855:191;7900:3;7890:8;7887:17;7884:43;;;7907:18;;:::i;:::-;7884:43;7956:8;7953:1;7949:16;7940:25;;7991:3;7984:5;7981:14;7978:40;;;7998:18;;:::i;:::-;7978:40;8031:5;;;7769:277;;8155:2;8145:8;8142:16;8136:3;8130:4;8127:13;8123:36;8105:2;8095:8;8092:16;8087:2;8081:4;8078:12;8074:35;8058:111;8055:246;;;8211:8;8205:4;8201:19;8192:28;;8246:3;8239:5;8236:14;8233:40;;;8253:18;;:::i;:::-;8233:40;8286:5;;8055:246;8326:42;8364:3;8354:8;8348:4;8345:1;8326:42;:::i;:::-;8311:57;;;;8400:4;8395:3;8391:14;8384:5;8381:25;8378:51;;;8409:18;;:::i;:::-;8378:51;8458:4;8451:5;8447:16;8438:25;;7396:1073;;;;;;:::o;8475:281::-;8533:5;8557:23;8575:4;8557:23;:::i;:::-;8549:31;;8601:25;8617:8;8601:25;:::i;:::-;8589:37;;8645:104;8682:66;8672:8;8666:4;8645:104;:::i;:::-;8636:113;;8475:281;;;;:::o;8762:410::-;8802:7;8825:20;8843:1;8825:20;:::i;:::-;8820:25;;8859:20;8877:1;8859:20;:::i;:::-;8854:25;;8914:1;8911;8907:9;8936:30;8954:11;8936:30;:::i;:::-;8925:41;;9115:1;9106:7;9102:15;9099:1;9096:22;9076:1;9069:9;9049:83;9026:139;;9145:18;;:::i;:::-;9026:139;8810:362;8762:410;;;;:::o;9178:182::-;9318:34;9314:1;9306:6;9302:14;9295:58;9178:182;:::o;9366:366::-;9508:3;9529:67;9593:2;9588:3;9529:67;:::i;:::-;9522:74;;9605:93;9694:3;9605:93;:::i;:::-;9723:2;9718:3;9714:12;9707:19;;9366:366;;;:::o;9738:419::-;9904:4;9942:2;9931:9;9927:18;9919:26;;9991:9;9985:4;9981:20;9977:1;9966:9;9962:17;9955:47;10019:131;10145:4;10019:131;:::i;:::-;10011:139;;9738:419;;;:::o;10163:173::-;10303:25;10299:1;10291:6;10287:14;10280:49;10163:173;:::o;10342:366::-;10484:3;10505:67;10569:2;10564:3;10505:67;:::i;:::-;10498:74;;10581:93;10670:3;10581:93;:::i;:::-;10699:2;10694:3;10690:12;10683:19;;10342:366;;;:::o;10714:419::-;10880:4;10918:2;10907:9;10903:18;10895:26;;10967:9;10961:4;10957:20;10953:1;10942:9;10938:17;10931:47;10995:131;11121:4;10995:131;:::i;:::-;10987:139;;10714:419;;;:::o;11139:143::-;11196:5;11227:6;11221:13;11212:22;;11243:33;11270:5;11243:33;:::i;:::-;11139:143;;;;:::o;11288:351::-;11358:6;11407:2;11395:9;11386:7;11382:23;11378:32;11375:119;;;11413:79;;:::i;:::-;11375:119;11533:1;11558:64;11614:7;11605:6;11594:9;11590:22;11558:64;:::i;:::-;11548:74;;11504:128;11288:351;;;;:::o;11645:332::-;11766:4;11804:2;11793:9;11789:18;11781:26;;11817:71;11885:1;11874:9;11870:17;11861:6;11817:71;:::i;:::-;11898:72;11966:2;11955:9;11951:18;11942:6;11898:72;:::i;:::-;11645:332;;;;;:::o;11983:85::-;12028:7;12057:5;12046:16;;11983:85;;;:::o;12074:60::-;12102:3;12123:5;12116:12;;12074:60;;;:::o;12140:158::-;12198:9;12231:61;12249:42;12258:32;12284:5;12258:32;:::i;:::-;12249:42;:::i;:::-;12231:61;:::i;:::-;12218:74;;12140:158;;;:::o;12304:147::-;12399:45;12438:5;12399:45;:::i;:::-;12394:3;12387:58;12304:147;;:::o;12457:807::-;12706:4;12744:3;12733:9;12729:19;12721:27;;12758:71;12826:1;12815:9;12811:17;12802:6;12758:71;:::i;:::-;12839:72;12907:2;12896:9;12892:18;12883:6;12839:72;:::i;:::-;12921:80;12997:2;12986:9;12982:18;12973:6;12921:80;:::i;:::-;13011;13087:2;13076:9;13072:18;13063:6;13011:80;:::i;:::-;13101:73;13169:3;13158:9;13154:19;13145:6;13101:73;:::i;:::-;13184;13252:3;13241:9;13237:19;13228:6;13184:73;:::i;:::-;12457:807;;;;;;;;;:::o;13270:143::-;13327:5;13358:6;13352:13;13343:22;;13374:33;13401:5;13374:33;:::i;:::-;13270:143;;;;:::o;13419:663::-;13507:6;13515;13523;13572:2;13560:9;13551:7;13547:23;13543:32;13540:119;;;13578:79;;:::i;:::-;13540:119;13698:1;13723:64;13779:7;13770:6;13759:9;13755:22;13723:64;:::i;:::-;13713:74;;13669:128;13836:2;13862:64;13918:7;13909:6;13898:9;13894:22;13862:64;:::i;:::-;13852:74;;13807:129;13975:2;14001:64;14057:7;14048:6;14037:9;14033:22;14001:64;:::i;:::-;13991:74;;13946:129;13419:663;;;;;:::o;14088:332::-;14209:4;14247:2;14236:9;14232:18;14224:26;;14260:71;14328:1;14317:9;14313:17;14304:6;14260:71;:::i;:::-;14341:72;14409:2;14398:9;14394:18;14385:6;14341:72;:::i;:::-;14088:332;;;;;:::o;14426:116::-;14496:21;14511:5;14496:21;:::i;:::-;14489:5;14486:32;14476:60;;14532:1;14529;14522:12;14476:60;14426:116;:::o;14548:137::-;14602:5;14633:6;14627:13;14618:22;;14649:30;14673:5;14649:30;:::i;:::-;14548:137;;;;:::o;14691:345::-;14758:6;14807:2;14795:9;14786:7;14782:23;14778:32;14775:119;;;14813:79;;:::i;:::-;14775:119;14933:1;14958:61;15011:7;15002:6;14991:9;14987:22;14958:61;:::i;:::-;14948:71;;14904:125;14691:345;;;;:::o;15042:223::-;15182:34;15178:1;15170:6;15166:14;15159:58;15251:6;15246:2;15238:6;15234:15;15227:31;15042:223;:::o;15271:366::-;15413:3;15434:67;15498:2;15493:3;15434:67;:::i;:::-;15427:74;;15510:93;15599:3;15510:93;:::i;:::-;15628:2;15623:3;15619:12;15612:19;;15271:366;;;:::o;15643:419::-;15809:4;15847:2;15836:9;15832:18;15824:26;;15896:9;15890:4;15886:20;15882:1;15871:9;15867:17;15860:47;15924:131;16050:4;15924:131;:::i;:::-;15916:139;;15643:419;;;:::o;16068:221::-;16208:34;16204:1;16196:6;16192:14;16185:58;16277:4;16272:2;16264:6;16260:15;16253:29;16068:221;:::o;16295:366::-;16437:3;16458:67;16522:2;16517:3;16458:67;:::i;:::-;16451:74;;16534:93;16623:3;16534:93;:::i;:::-;16652:2;16647:3;16643:12;16636:19;;16295:366;;;:::o;16667:419::-;16833:4;16871:2;16860:9;16856:18;16848:26;;16920:9;16914:4;16910:20;16906:1;16895:9;16891:17;16884:47;16948:131;17074:4;16948:131;:::i;:::-;16940:139;;16667:419;;;:::o;17092:224::-;17232:34;17228:1;17220:6;17216:14;17209:58;17301:7;17296:2;17288:6;17284:15;17277:32;17092:224;:::o;17322:366::-;17464:3;17485:67;17549:2;17544:3;17485:67;:::i;:::-;17478:74;;17561:93;17650:3;17561:93;:::i;:::-;17679:2;17674:3;17670:12;17663:19;;17322:366;;;:::o;17694:419::-;17860:4;17898:2;17887:9;17883:18;17875:26;;17947:9;17941:4;17937:20;17933:1;17922:9;17918:17;17911:47;17975:131;18101:4;17975:131;:::i;:::-;17967:139;;17694:419;;;:::o;18119:222::-;18259:34;18255:1;18247:6;18243:14;18236:58;18328:5;18323:2;18315:6;18311:15;18304:30;18119:222;:::o;18347:366::-;18489:3;18510:67;18574:2;18569:3;18510:67;:::i;:::-;18503:74;;18586:93;18675:3;18586:93;:::i;:::-;18704:2;18699:3;18695:12;18688:19;;18347:366;;;:::o;18719:419::-;18885:4;18923:2;18912:9;18908:18;18900:26;;18972:9;18966:4;18962:20;18958:1;18947:9;18943:17;18936:47;19000:131;19126:4;19000:131;:::i;:::-;18992:139;;18719:419;;;:::o;19144:228::-;19284:34;19280:1;19272:6;19268:14;19261:58;19353:11;19348:2;19340:6;19336:15;19329:36;19144:228;:::o;19378:366::-;19520:3;19541:67;19605:2;19600:3;19541:67;:::i;:::-;19534:74;;19617:93;19706:3;19617:93;:::i;:::-;19735:2;19730:3;19726:12;19719:19;;19378:366;;;:::o;19750:419::-;19916:4;19954:2;19943:9;19939:18;19931:26;;20003:9;19997:4;19993:20;19989:1;19978:9;19974:17;19967:47;20031:131;20157:4;20031:131;:::i;:::-;20023:139;;19750:419;;;:::o;20175:175::-;20315:27;20311:1;20303:6;20299:14;20292:51;20175:175;:::o;20356:366::-;20498:3;20519:67;20583:2;20578:3;20519:67;:::i;:::-;20512:74;;20595:93;20684:3;20595:93;:::i;:::-;20713:2;20708:3;20704:12;20697:19;;20356:366;;;:::o;20728:419::-;20894:4;20932:2;20921:9;20917:18;20909:26;;20981:9;20975:4;20971:20;20967:1;20956:9;20952:17;20945:47;21009:131;21135:4;21009:131;:::i;:::-;21001:139;;20728:419;;;:::o;21153:191::-;21193:3;21212:20;21230:1;21212:20;:::i;:::-;21207:25;;21246:20;21264:1;21246:20;:::i;:::-;21241:25;;21289:1;21286;21282:9;21275:16;;21310:3;21307:1;21304:10;21301:36;;;21317:18;;:::i;:::-;21301:36;21153:191;;;;:::o;21350:176::-;21490:28;21486:1;21478:6;21474:14;21467:52;21350:176;:::o;21532:366::-;21674:3;21695:67;21759:2;21754:3;21695:67;:::i;:::-;21688:74;;21771:93;21860:3;21771:93;:::i;:::-;21889:2;21884:3;21880:12;21873:19;;21532:366;;;:::o;21904:419::-;22070:4;22108:2;22097:9;22093:18;22085:26;;22157:9;22151:4;22147:20;22143:1;22132:9;22128:17;22121:47;22185:131;22311:4;22185:131;:::i;:::-;22177:139;;21904:419;;;:::o;22329:233::-;22368:3;22391:24;22409:5;22391:24;:::i;:::-;22382:33;;22437:66;22430:5;22427:77;22424:103;;22507:18;;:::i;:::-;22424:103;22554:1;22547:5;22543:13;22536:20;;22329:233;;;:::o;22568:173::-;22708:25;22704:1;22696:6;22692:14;22685:49;22568:173;:::o;22747:366::-;22889:3;22910:67;22974:2;22969:3;22910:67;:::i;:::-;22903:74;;22986:93;23075:3;22986:93;:::i;:::-;23104:2;23099:3;23095:12;23088:19;;22747:366;;;:::o;23119:419::-;23285:4;23323:2;23312:9;23308:18;23300:26;;23372:9;23366:4;23362:20;23358:1;23347:9;23343:17;23336:47;23400:131;23526:4;23400:131;:::i;:::-;23392:139;;23119:419;;;:::o;23544:194::-;23584:4;23604:20;23622:1;23604:20;:::i;:::-;23599:25;;23638:20;23656:1;23638:20;:::i;:::-;23633:25;;23682:1;23679;23675:9;23667:17;;23706:1;23700:4;23697:11;23694:37;;;23711:18;;:::i;:::-;23694:37;23544:194;;;;:::o;23744:180::-;23792:77;23789:1;23782:88;23889:4;23886:1;23879:15;23913:4;23910:1;23903:15;23930:180;23978:77;23975:1;23968:88;24075:4;24072:1;24065:15;24099:4;24096:1;24089:15;24116:114;24183:6;24217:5;24211:12;24201:22;;24116:114;;;:::o;24236:184::-;24335:11;24369:6;24364:3;24357:19;24409:4;24404:3;24400:14;24385:29;;24236:184;;;;:::o;24426:132::-;24493:4;24516:3;24508:11;;24546:4;24541:3;24537:14;24529:22;;24426:132;;;:::o;24564:108::-;24641:24;24659:5;24641:24;:::i;:::-;24636:3;24629:37;24564:108;;:::o;24678:179::-;24747:10;24768:46;24810:3;24802:6;24768:46;:::i;:::-;24846:4;24841:3;24837:14;24823:28;;24678:179;;;;:::o;24863:113::-;24933:4;24965;24960:3;24956:14;24948:22;;24863:113;;;:::o;25012:732::-;25131:3;25160:54;25208:5;25160:54;:::i;:::-;25230:86;25309:6;25304:3;25230:86;:::i;:::-;25223:93;;25340:56;25390:5;25340:56;:::i;:::-;25419:7;25450:1;25435:284;25460:6;25457:1;25454:13;25435:284;;;25536:6;25530:13;25563:63;25622:3;25607:13;25563:63;:::i;:::-;25556:70;;25649:60;25702:6;25649:60;:::i;:::-;25639:70;;25495:224;25482:1;25479;25475:9;25470:14;;25435:284;;;25439:14;25735:3;25728:10;;25136:608;;;25012:732;;;;:::o;25750:831::-;26013:4;26051:3;26040:9;26036:19;26028:27;;26065:71;26133:1;26122:9;26118:17;26109:6;26065:71;:::i;:::-;26146:80;26222:2;26211:9;26207:18;26198:6;26146:80;:::i;:::-;26273:9;26267:4;26263:20;26258:2;26247:9;26243:18;26236:48;26301:108;26404:4;26395:6;26301:108;:::i;:::-;26293:116;;26419:72;26487:2;26476:9;26472:18;26463:6;26419:72;:::i;:::-;26501:73;26569:3;26558:9;26554:19;26545:6;26501:73;:::i;:::-;25750:831;;;;;;;;:::o;26587:180::-;26635:77;26632:1;26625:88;26732:4;26729:1;26722:15;26756:4;26753:1;26746:15;26773:185;26813:1;26830:20;26848:1;26830:20;:::i;:::-;26825:25;;26864:20;26882:1;26864:20;:::i;:::-;26859:25;;26903:1;26893:35;;26908:18;;:::i;:::-;26893:35;26950:1;26947;26943:9;26938:14;;26773:185;;;;:::o;26964:220::-;27104:34;27100:1;27092:6;27088:14;27081:58;27173:3;27168:2;27160:6;27156:15;27149:28;26964:220;:::o;27190:366::-;27332:3;27353:67;27417:2;27412:3;27353:67;:::i;:::-;27346:74;;27429:93;27518:3;27429:93;:::i;:::-;27547:2;27542:3;27538:12;27531:19;;27190:366;;;:::o;27562:419::-;27728:4;27766:2;27755:9;27751:18;27743:26;;27815:9;27809:4;27805:20;27801:1;27790:9;27786:17;27779:47;27843:131;27969:4;27843:131;:::i;:::-;27835:139;;27562:419;;;:::o;27987:177::-;28127:29;28123:1;28115:6;28111:14;28104:53;27987:177;:::o;28170:366::-;28312:3;28333:67;28397:2;28392:3;28333:67;:::i;:::-;28326:74;;28409:93;28498:3;28409:93;:::i;:::-;28527:2;28522:3;28518:12;28511:19;;28170:366;;;:::o;28542:419::-;28708:4;28746:2;28735:9;28731:18;28723:26;;28795:9;28789:4;28785:20;28781:1;28770:9;28766:17;28759:47;28823:131;28949:4;28823:131;:::i;:::-;28815:139;;28542:419;;;:::o

Swarm Source

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