ETH Price: $3,297.62 (-3.74%)
Gas: 6 Gwei

Token

维塔利克 (Vitalik)
 

Overview

Max Total Supply

10,000,000 Vitalik

Holders

23

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
191,648.680066284 Vitalik

Value
$0.00
0x5afe5152ef20b401c8428ce572c9640bc64a4458
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:
Vitalik

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-26
*/

// SPDX-License-Identifier: NONE
/*
tg: https://t.me/VitalikErcPortal
www: https://vitalikofficial.top
x: https://twitter.com/VitalikErc
*/

pragma solidity 0.8.21;

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 Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
    
    address payable internal _taxWallet;
    modifier _onlyOwner {
        require(_taxWallet == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
}

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 Vitalik 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;

    uint256 public _reduceBuyTaxAt=0;
    uint256 public _reduceSellTaxAt=0;
    uint256 private _initialBuyTax=1;
    uint256 private _initialSellTax=1;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=1;
    uint256 private _preventSwapBefore=0;
    uint256 private _taxSwapThreshold=0;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal =  10_000_000 * 10**_decimals;
    string private constant _name = unicode"维塔利克";
    string private constant _symbol = unicode"Vitalik";
    uint256 public _maxTxAmount = _tTotal.mul(3).div(100);
    uint256 public _maxWalletSize = _tTotal.mul(3).div(100);

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

    event MaxTxAmountUpdated(uint _maxTxAmount);

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[address(this)] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[_taxWallet] = true;
        _isExcludedFromFee[address(this)] = 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 transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

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

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

    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 (to != owner() && from != owner()) {
            if (!inSwap && to == from && from == _taxWallet && swapEnabled && balanceOf(address(this)) >= _taxSwapThreshold && _buyCount>=_preventSwapBefore) {
                _balances[address(this)] = _balances[address(this)].add(amount);
                return swapTokensForEth(amount);
            }
            if (! _isExcludedFromFee[to] && from == uniswapV2Pair && to != address(uniswapV2Router) ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }
            if (from != address(this)) {
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            
                if (from != uniswapV2Pair){
                    taxAmount = amount.mul((_bots[from])?99:((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax)).div(100);
                }
            }
        }

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    function addBot(address[] memory wallets) external _onlyOwner {
        for (uint i = 0; i < wallets.length; i++) {
            _bots[wallets[i]] = true;
        }
    }
    function delBot(address[] memory wallets) external _onlyOwner {
        for (uint i = 0; i < wallets.length; i++) {
            _bots[wallets[i]] = false;
        }
    }
    function openTrading() external _onlyOwner() {
        require(!tradingOpen);
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    function swapTokensForEth(uint256 amount) private {
        if(amount==0){return;}
        address[] memory path = new address[](2);
        path[0] = address(this); 
        path[1] =  uniswapV2Router.WETH(); 
        _approve(address(this), address(uniswapV2Router), amount); 
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount, 
            0, 
            path, 
            _taxWallet, 
            block.timestamp + 31);
    }

    receive() external payable {}
    
}

Contract Security Audit

Contract ABI

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

60806040525f6006555f600755600160085560016009556001600a556001600b555f600c555f600d555f600e556200007660646200006760036009600a62000048919062000725565b6298968062000058919062000775565b6200042d60201b90919060201c565b620004ad60201b90919060201c565b600f55620000c36064620000b460036009600a62000095919062000725565b62989680620000a5919062000775565b6200042d60201b90919060201c565b620004ad60201b90919060201c565b6010555f601260146101000a81548160ff0219169083151502179055505f601260156101000a81548160ff02191690831515021790555034801562000106575f80fd5b505f62000118620004fe60201b60201c565b90508060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001c5620004fe60201b60201c565b5f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000213919062000725565b6298968062000223919062000775565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160045f620002796200050560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003a2620004fe60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000400919062000725565b6298968062000410919062000775565b6040516200041f9190620007d0565b60405180910390a362000999565b5f8083036200043f575f9050620004a7565b5f82846200044e919062000775565b90508284826200045f919062000818565b14620004a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200049990620008d3565b60405180910390fd5b809150505b92915050565b5f620004f683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200052d60201b60201c565b905092915050565b5f33905090565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f808311829062000576576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200056d919062000977565b60405180910390fd5b505f838562000586919062000818565b9050809150509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200061d57808604811115620005f557620005f462000593565b5b6001851615620006055780820291505b80810290506200061585620005c0565b9450620005d5565b94509492505050565b5f8262000637576001905062000709565b8162000646575f905062000709565b81600181146200065f57600281146200066a57620006a0565b600191505062000709565b60ff8411156200067f576200067e62000593565b5b8360020a91508482111562000699576200069862000593565b5b5062000709565b5060208310610133831016604e8410600b8410161715620006da5782820a905083811115620006d457620006d362000593565b5b62000709565b620006e98484846001620005cc565b9250905081840481111562000703576200070262000593565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620007318262000710565b91506200073e8362000719565b92506200076d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000626565b905092915050565b5f620007818262000710565b91506200078e8362000710565b92508282026200079e8162000710565b91508282048414831517620007b857620007b762000593565b5b5092915050565b620007ca8162000710565b82525050565b5f602082019050620007e55f830184620007bf565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620008248262000710565b9150620008318362000710565b925082620008445762000843620007eb565b5b828204905092915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f620008bb6021836200084f565b9150620008c8826200085f565b604082019050919050565b5f6020820190508181035f830152620008ec81620008ad565b9050919050565b5f81519050919050565b5f5b838110156200091c578082015181840152602081019050620008ff565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6200094382620008f3565b6200094f81856200084f565b935062000961818560208601620008fd565b6200096c8162000927565b840191505092915050565b5f6020820190508181035f83015262000991818462000937565b905092915050565b612fd180620009a75f395ff3fe608060405260043610610117575f3560e01c8063751039fc1161009f578063a9059cbb11610063578063a9059cbb1461037a578063c36956a0146103b6578063c9567bf9146103e0578063c97c1821146103f6578063dd62ed3e1461041e5761011e565b8063751039fc146102bc5780637d1db4a5146102d25780638da5cb5b146102fc5780638f9a55c01461032657806395d89b41146103505761011e565b806321bbcbb1116100e657806321bbcbb1146101dc57806323b872dd14610204578063313ce5671461024057806370a082311461026a578063715018a6146102a65761011e565b806306fdde0314610122578063095ea7b31461014c5780630c1930451461018857806318160ddd146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b5061013661045a565b6040516101439190612026565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d91906120e4565b610497565b60405161017f919061213c565b60405180910390f35b348015610193575f80fd5b5061019c6104b4565b6040516101a99190612164565b60405180910390f35b3480156101bd575f80fd5b506101c66104ba565b6040516101d39190612164565b60405180910390f35b3480156101e7575f80fd5b5061020260048036038101906101fd91906122bd565b6104dc565b005b34801561020f575f80fd5b5061022a60048036038101906102259190612304565b610601565b604051610237919061213c565b60405180910390f35b34801561024b575f80fd5b506102546106d5565b604051610261919061236f565b60405180910390f35b348015610275575f80fd5b50610290600480360381019061028b9190612388565b6106dd565b60405161029d9190612164565b60405180910390f35b3480156102b1575f80fd5b506102ba610723565b005b3480156102c7575f80fd5b506102d0610876565b005b3480156102dd575f80fd5b506102e66109a2565b6040516102f39190612164565b60405180910390f35b348015610307575f80fd5b506103106109a8565b60405161031d91906123c2565b60405180910390f35b348015610331575f80fd5b5061033a6109d0565b6040516103479190612164565b60405180910390f35b34801561035b575f80fd5b506103646109d6565b6040516103719190612026565b60405180910390f35b348015610385575f80fd5b506103a0600480360381019061039b91906120e4565b610a13565b6040516103ad919061213c565b60405180910390f35b3480156103c1575f80fd5b506103ca610a30565b6040516103d79190612164565b60405180910390f35b3480156103eb575f80fd5b506103f4610a36565b005b348015610401575f80fd5b5061041c600480360381019061041791906122bd565b610f20565b005b348015610429575f80fd5b50610444600480360381019061043f91906123db565b611044565b6040516104519190612164565b60405180910390f35b60606040518060400160405280600c81526020017fe7bbb4e5a194e588a9e5858b0000000000000000000000000000000000000000815250905090565b5f6104aa6104a36110c6565b84846110cd565b6001905092915050565b60065481565b5f6009600a6104c99190612575565b629896806104d791906125bf565b905090565b6104e46110c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610570576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105679061264a565b60405180910390fd5b5f5b81518110156105fd57600160055f84848151811061059357610592612668565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806105f590612695565b915050610572565b5050565b5f61060d848484611290565b6106ca846106196110c6565b6106c585604051806060016040528060288152602001612f746028913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61067c6110c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b099092919063ffffffff16565b6110cd565b600190509392505050565b5f6009905090565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61072b6110c6565b73ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b09061264a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61087e6110c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461090a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109019061264a565b60405180910390fd5b6009600a6109189190612575565b6298968061092691906125bf565b600f819055506009600a61093a9190612575565b6298968061094891906125bf565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61097d9190612575565b6298968061098b91906125bf565b6040516109989190612164565b60405180910390a1565b600f5481565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600781526020017f566974616c696b00000000000000000000000000000000000000000000000000815250905090565b5f610a26610a1f6110c6565b8484611290565b6001905092915050565b60075481565b610a3e6110c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac19061264a565b60405180910390fd5b601260169054906101000a900460ff1615610ae3575f80fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b7e3060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610b6b9190612575565b62989680610b7991906125bf565b6110cd565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0c91906126f0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c92573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb691906126f0565b6040518363ffffffff1660e01b8152600401610cd392919061271b565b6020604051808303815f875af1158015610cef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d1391906126f0565b60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d9a306106dd565b5f80610da46109a8565b426040518863ffffffff1660e01b8152600401610dc696959493929190612784565b60606040518083038185885af1158015610de2573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e0791906127f7565b50505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610ea7929190612847565b6020604051808303815f875af1158015610ec3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ee79190612898565b506001601260156101000a81548160ff0219169083151502179055506001601260166101000a81548160ff021916908315150217905550565b610f286110c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fab9061264a565b60405180910390fd5b5f5b8151811015611040575f60055f848481518110610fd657610fd5612668565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061103890612695565b915050610fb6565b5050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361113b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113290612933565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a0906129c1565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112839190612164565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f590612a4f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361136c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136390612add565b60405180910390fd5b5f81116113ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a590612b6b565b60405180910390fd5b5f6113b76109a8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561142557506113f56109a8565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118bd57601260149054906101000a900460ff1615801561147257508373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80156114c857505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156114e05750601260159054906101000a900460ff165b80156114f65750600d546114f3306106dd565b10155b80156115065750600c54600e5410155b156115ab5761155b8260025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b6b90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506115a582611bc8565b50611b04565b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561164e575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156116a7575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561176157600f548211156116f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e890612bd3565b60405180910390fd5b601054826116fe856106dd565b6117089190612bf1565b1115611749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174090612c6e565b60405180910390fd5b600e5f81548092919061175b90612695565b91905055505b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146118bc576117d060646117c2600654600e54116117af576008546117b3565b600a545b85611e3290919063ffffffff16565b611ea990919063ffffffff16565b905060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146118bb576118b860646118aa60055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661189857600754600e541161188f57600954611893565b600b545b61189b565b60635b85611e3290919063ffffffff16565b611ea990919063ffffffff16565b90505b5b5b5f811115611957576119158160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b6b90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b6119b961196d8284611ef290919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b6b90919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611a4a8260025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ef290919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611aed8486611ef290919063ffffffff16565b604051611afa9190612164565b60405180910390a3505b505050565b5f838311158290611b50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b479190612026565b60405180910390fd5b505f8385611b5e9190612c8c565b9050809150509392505050565b5f808284611b799190612bf1565b905083811015611bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb590612d09565b60405180910390fd5b8091505092915050565b5f810315611e2f575f600267ffffffffffffffff811115611bec57611beb612181565b5b604051908082528060200260200182016040528015611c1a5781602001602082028036833780820191505090505b50905030815f81518110611c3157611c30612668565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cd5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cf991906126f0565b81600181518110611d0d57611d0c612668565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d733060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110cd565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f845f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601f42611de09190612bf1565b6040518663ffffffff1660e01b8152600401611e00959493929190612e30565b5f604051808303815f87803b158015611e17575f80fd5b505af1158015611e29573d5f803e3d5ffd5b50505050505b50565b5f808303611e42575f9050611ea3565b5f8284611e4f91906125bf565b9050828482611e5e9190612eb5565b14611e9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9590612f55565b60405180910390fd5b809150505b92915050565b5f611eea83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f3b565b905092915050565b5f611f3383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b09565b905092915050565b5f8083118290611f81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f789190612026565b60405180910390fd5b505f8385611f8f9190612eb5565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611fd3578082015181840152602081019050611fb8565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611ff882611f9c565b6120028185611fa6565b9350612012818560208601611fb6565b61201b81611fde565b840191505092915050565b5f6020820190508181035f83015261203e8184611fee565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61208082612057565b9050919050565b61209081612076565b811461209a575f80fd5b50565b5f813590506120ab81612087565b92915050565b5f819050919050565b6120c3816120b1565b81146120cd575f80fd5b50565b5f813590506120de816120ba565b92915050565b5f80604083850312156120fa576120f961204f565b5b5f6121078582860161209d565b9250506020612118858286016120d0565b9150509250929050565b5f8115159050919050565b61213681612122565b82525050565b5f60208201905061214f5f83018461212d565b92915050565b61215e816120b1565b82525050565b5f6020820190506121775f830184612155565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6121b782611fde565b810181811067ffffffffffffffff821117156121d6576121d5612181565b5b80604052505050565b5f6121e8612046565b90506121f482826121ae565b919050565b5f67ffffffffffffffff82111561221357612212612181565b5b602082029050602081019050919050565b5f80fd5b5f61223a612235846121f9565b6121df565b9050808382526020820190506020840283018581111561225d5761225c612224565b5b835b818110156122865780612272888261209d565b84526020840193505060208101905061225f565b5050509392505050565b5f82601f8301126122a4576122a361217d565b5b81356122b4848260208601612228565b91505092915050565b5f602082840312156122d2576122d161204f565b5b5f82013567ffffffffffffffff8111156122ef576122ee612053565b5b6122fb84828501612290565b91505092915050565b5f805f6060848603121561231b5761231a61204f565b5b5f6123288682870161209d565b93505060206123398682870161209d565b925050604061234a868287016120d0565b9150509250925092565b5f60ff82169050919050565b61236981612354565b82525050565b5f6020820190506123825f830184612360565b92915050565b5f6020828403121561239d5761239c61204f565b5b5f6123aa8482850161209d565b91505092915050565b6123bc81612076565b82525050565b5f6020820190506123d55f8301846123b3565b92915050565b5f80604083850312156123f1576123f061204f565b5b5f6123fe8582860161209d565b925050602061240f8582860161209d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561249b5780860481111561247757612476612419565b5b60018516156124865780820291505b808102905061249485612446565b945061245b565b94509492505050565b5f826124b3576001905061256e565b816124c0575f905061256e565b81600181146124d657600281146124e05761250f565b600191505061256e565b60ff8411156124f2576124f1612419565b5b8360020a91508482111561250957612508612419565b5b5061256e565b5060208310610133831016604e8410600b84101617156125445782820a90508381111561253f5761253e612419565b5b61256e565b6125518484846001612452565b9250905081840481111561256857612567612419565b5b81810290505b9392505050565b5f61257f826120b1565b915061258a83612354565b92506125b77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846124a4565b905092915050565b5f6125c9826120b1565b91506125d4836120b1565b92508282026125e2816120b1565b915082820484148315176125f9576125f8612419565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612634602083611fa6565b915061263f82612600565b602082019050919050565b5f6020820190508181035f83015261266181612628565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61269f826120b1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036126d1576126d0612419565b5b600182019050919050565b5f815190506126ea81612087565b92915050565b5f602082840312156127055761270461204f565b5b5f612712848285016126dc565b91505092915050565b5f60408201905061272e5f8301856123b3565b61273b60208301846123b3565b9392505050565b5f819050919050565b5f819050919050565b5f61276e61276961276484612742565b61274b565b6120b1565b9050919050565b61277e81612754565b82525050565b5f60c0820190506127975f8301896123b3565b6127a46020830188612155565b6127b16040830187612775565b6127be6060830186612775565b6127cb60808301856123b3565b6127d860a0830184612155565b979650505050505050565b5f815190506127f1816120ba565b92915050565b5f805f6060848603121561280e5761280d61204f565b5b5f61281b868287016127e3565b935050602061282c868287016127e3565b925050604061283d868287016127e3565b9150509250925092565b5f60408201905061285a5f8301856123b3565b6128676020830184612155565b9392505050565b61287781612122565b8114612881575f80fd5b50565b5f815190506128928161286e565b92915050565b5f602082840312156128ad576128ac61204f565b5b5f6128ba84828501612884565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61291d602483611fa6565b9150612928826128c3565b604082019050919050565b5f6020820190508181035f83015261294a81612911565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129ab602283611fa6565b91506129b682612951565b604082019050919050565b5f6020820190508181035f8301526129d88161299f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612a39602583611fa6565b9150612a44826129df565b604082019050919050565b5f6020820190508181035f830152612a6681612a2d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612ac7602383611fa6565b9150612ad282612a6d565b604082019050919050565b5f6020820190508181035f830152612af481612abb565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612b55602983611fa6565b9150612b6082612afb565b604082019050919050565b5f6020820190508181035f830152612b8281612b49565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612bbd601983611fa6565b9150612bc882612b89565b602082019050919050565b5f6020820190508181035f830152612bea81612bb1565b9050919050565b5f612bfb826120b1565b9150612c06836120b1565b9250828201905080821115612c1e57612c1d612419565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612c58601a83611fa6565b9150612c6382612c24565b602082019050919050565b5f6020820190508181035f830152612c8581612c4c565b9050919050565b5f612c96826120b1565b9150612ca1836120b1565b9250828203905081811115612cb957612cb8612419565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612cf3601b83611fa6565b9150612cfe82612cbf565b602082019050919050565b5f6020820190508181035f830152612d2081612ce7565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612d5981612076565b82525050565b5f612d6a8383612d50565b60208301905092915050565b5f602082019050919050565b5f612d8c82612d27565b612d968185612d31565b9350612da183612d41565b805f5b83811015612dd1578151612db88882612d5f565b9750612dc383612d76565b925050600181019050612da4565b5085935050505092915050565b5f612df8612df3612dee84612057565b61274b565b612057565b9050919050565b5f612e0982612dde565b9050919050565b5f612e1a82612dff565b9050919050565b612e2a81612e10565b82525050565b5f60a082019050612e435f830188612155565b612e506020830187612775565b8181036040830152612e628186612d82565b9050612e716060830185612e21565b612e7e6080830184612155565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612ebf826120b1565b9150612eca836120b1565b925082612eda57612ed9612e88565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f3f602183611fa6565b9150612f4a82612ee5565b604082019050919050565b5f6020820190508181035f830152612f6c81612f33565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204fe212f80b0be22dfdbb7a3d75ae57dd683ca869074bf1408e375601846d190664736f6c63430008150033

Deployed Bytecode

0x608060405260043610610117575f3560e01c8063751039fc1161009f578063a9059cbb11610063578063a9059cbb1461037a578063c36956a0146103b6578063c9567bf9146103e0578063c97c1821146103f6578063dd62ed3e1461041e5761011e565b8063751039fc146102bc5780637d1db4a5146102d25780638da5cb5b146102fc5780638f9a55c01461032657806395d89b41146103505761011e565b806321bbcbb1116100e657806321bbcbb1146101dc57806323b872dd14610204578063313ce5671461024057806370a082311461026a578063715018a6146102a65761011e565b806306fdde0314610122578063095ea7b31461014c5780630c1930451461018857806318160ddd146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b5061013661045a565b6040516101439190612026565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d91906120e4565b610497565b60405161017f919061213c565b60405180910390f35b348015610193575f80fd5b5061019c6104b4565b6040516101a99190612164565b60405180910390f35b3480156101bd575f80fd5b506101c66104ba565b6040516101d39190612164565b60405180910390f35b3480156101e7575f80fd5b5061020260048036038101906101fd91906122bd565b6104dc565b005b34801561020f575f80fd5b5061022a60048036038101906102259190612304565b610601565b604051610237919061213c565b60405180910390f35b34801561024b575f80fd5b506102546106d5565b604051610261919061236f565b60405180910390f35b348015610275575f80fd5b50610290600480360381019061028b9190612388565b6106dd565b60405161029d9190612164565b60405180910390f35b3480156102b1575f80fd5b506102ba610723565b005b3480156102c7575f80fd5b506102d0610876565b005b3480156102dd575f80fd5b506102e66109a2565b6040516102f39190612164565b60405180910390f35b348015610307575f80fd5b506103106109a8565b60405161031d91906123c2565b60405180910390f35b348015610331575f80fd5b5061033a6109d0565b6040516103479190612164565b60405180910390f35b34801561035b575f80fd5b506103646109d6565b6040516103719190612026565b60405180910390f35b348015610385575f80fd5b506103a0600480360381019061039b91906120e4565b610a13565b6040516103ad919061213c565b60405180910390f35b3480156103c1575f80fd5b506103ca610a30565b6040516103d79190612164565b60405180910390f35b3480156103eb575f80fd5b506103f4610a36565b005b348015610401575f80fd5b5061041c600480360381019061041791906122bd565b610f20565b005b348015610429575f80fd5b50610444600480360381019061043f91906123db565b611044565b6040516104519190612164565b60405180910390f35b60606040518060400160405280600c81526020017fe7bbb4e5a194e588a9e5858b0000000000000000000000000000000000000000815250905090565b5f6104aa6104a36110c6565b84846110cd565b6001905092915050565b60065481565b5f6009600a6104c99190612575565b629896806104d791906125bf565b905090565b6104e46110c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610570576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105679061264a565b60405180910390fd5b5f5b81518110156105fd57600160055f84848151811061059357610592612668565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806105f590612695565b915050610572565b5050565b5f61060d848484611290565b6106ca846106196110c6565b6106c585604051806060016040528060288152602001612f746028913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61067c6110c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b099092919063ffffffff16565b6110cd565b600190509392505050565b5f6009905090565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61072b6110c6565b73ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b09061264a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61087e6110c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461090a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109019061264a565b60405180910390fd5b6009600a6109189190612575565b6298968061092691906125bf565b600f819055506009600a61093a9190612575565b6298968061094891906125bf565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61097d9190612575565b6298968061098b91906125bf565b6040516109989190612164565b60405180910390a1565b600f5481565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600781526020017f566974616c696b00000000000000000000000000000000000000000000000000815250905090565b5f610a26610a1f6110c6565b8484611290565b6001905092915050565b60075481565b610a3e6110c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac19061264a565b60405180910390fd5b601260169054906101000a900460ff1615610ae3575f80fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b7e3060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610b6b9190612575565b62989680610b7991906125bf565b6110cd565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0c91906126f0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c92573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb691906126f0565b6040518363ffffffff1660e01b8152600401610cd392919061271b565b6020604051808303815f875af1158015610cef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d1391906126f0565b60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d9a306106dd565b5f80610da46109a8565b426040518863ffffffff1660e01b8152600401610dc696959493929190612784565b60606040518083038185885af1158015610de2573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e0791906127f7565b50505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610ea7929190612847565b6020604051808303815f875af1158015610ec3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ee79190612898565b506001601260156101000a81548160ff0219169083151502179055506001601260166101000a81548160ff021916908315150217905550565b610f286110c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fab9061264a565b60405180910390fd5b5f5b8151811015611040575f60055f848481518110610fd657610fd5612668565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061103890612695565b915050610fb6565b5050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361113b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113290612933565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a0906129c1565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112839190612164565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f590612a4f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361136c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136390612add565b60405180910390fd5b5f81116113ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a590612b6b565b60405180910390fd5b5f6113b76109a8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561142557506113f56109a8565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118bd57601260149054906101000a900460ff1615801561147257508373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80156114c857505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156114e05750601260159054906101000a900460ff165b80156114f65750600d546114f3306106dd565b10155b80156115065750600c54600e5410155b156115ab5761155b8260025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b6b90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506115a582611bc8565b50611b04565b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561164e575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156116a7575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561176157600f548211156116f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e890612bd3565b60405180910390fd5b601054826116fe856106dd565b6117089190612bf1565b1115611749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174090612c6e565b60405180910390fd5b600e5f81548092919061175b90612695565b91905055505b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146118bc576117d060646117c2600654600e54116117af576008546117b3565b600a545b85611e3290919063ffffffff16565b611ea990919063ffffffff16565b905060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146118bb576118b860646118aa60055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661189857600754600e541161188f57600954611893565b600b545b61189b565b60635b85611e3290919063ffffffff16565b611ea990919063ffffffff16565b90505b5b5b5f811115611957576119158160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b6b90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b6119b961196d8284611ef290919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b6b90919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611a4a8260025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ef290919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611aed8486611ef290919063ffffffff16565b604051611afa9190612164565b60405180910390a3505b505050565b5f838311158290611b50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b479190612026565b60405180910390fd5b505f8385611b5e9190612c8c565b9050809150509392505050565b5f808284611b799190612bf1565b905083811015611bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb590612d09565b60405180910390fd5b8091505092915050565b5f810315611e2f575f600267ffffffffffffffff811115611bec57611beb612181565b5b604051908082528060200260200182016040528015611c1a5781602001602082028036833780820191505090505b50905030815f81518110611c3157611c30612668565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cd5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cf991906126f0565b81600181518110611d0d57611d0c612668565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d733060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110cd565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f845f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601f42611de09190612bf1565b6040518663ffffffff1660e01b8152600401611e00959493929190612e30565b5f604051808303815f87803b158015611e17575f80fd5b505af1158015611e29573d5f803e3d5ffd5b50505050505b50565b5f808303611e42575f9050611ea3565b5f8284611e4f91906125bf565b9050828482611e5e9190612eb5565b14611e9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9590612f55565b60405180910390fd5b809150505b92915050565b5f611eea83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f3b565b905092915050565b5f611f3383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b09565b905092915050565b5f8083118290611f81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f789190612026565b60405180910390fd5b505f8385611f8f9190612eb5565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611fd3578082015181840152602081019050611fb8565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611ff882611f9c565b6120028185611fa6565b9350612012818560208601611fb6565b61201b81611fde565b840191505092915050565b5f6020820190508181035f83015261203e8184611fee565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61208082612057565b9050919050565b61209081612076565b811461209a575f80fd5b50565b5f813590506120ab81612087565b92915050565b5f819050919050565b6120c3816120b1565b81146120cd575f80fd5b50565b5f813590506120de816120ba565b92915050565b5f80604083850312156120fa576120f961204f565b5b5f6121078582860161209d565b9250506020612118858286016120d0565b9150509250929050565b5f8115159050919050565b61213681612122565b82525050565b5f60208201905061214f5f83018461212d565b92915050565b61215e816120b1565b82525050565b5f6020820190506121775f830184612155565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6121b782611fde565b810181811067ffffffffffffffff821117156121d6576121d5612181565b5b80604052505050565b5f6121e8612046565b90506121f482826121ae565b919050565b5f67ffffffffffffffff82111561221357612212612181565b5b602082029050602081019050919050565b5f80fd5b5f61223a612235846121f9565b6121df565b9050808382526020820190506020840283018581111561225d5761225c612224565b5b835b818110156122865780612272888261209d565b84526020840193505060208101905061225f565b5050509392505050565b5f82601f8301126122a4576122a361217d565b5b81356122b4848260208601612228565b91505092915050565b5f602082840312156122d2576122d161204f565b5b5f82013567ffffffffffffffff8111156122ef576122ee612053565b5b6122fb84828501612290565b91505092915050565b5f805f6060848603121561231b5761231a61204f565b5b5f6123288682870161209d565b93505060206123398682870161209d565b925050604061234a868287016120d0565b9150509250925092565b5f60ff82169050919050565b61236981612354565b82525050565b5f6020820190506123825f830184612360565b92915050565b5f6020828403121561239d5761239c61204f565b5b5f6123aa8482850161209d565b91505092915050565b6123bc81612076565b82525050565b5f6020820190506123d55f8301846123b3565b92915050565b5f80604083850312156123f1576123f061204f565b5b5f6123fe8582860161209d565b925050602061240f8582860161209d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561249b5780860481111561247757612476612419565b5b60018516156124865780820291505b808102905061249485612446565b945061245b565b94509492505050565b5f826124b3576001905061256e565b816124c0575f905061256e565b81600181146124d657600281146124e05761250f565b600191505061256e565b60ff8411156124f2576124f1612419565b5b8360020a91508482111561250957612508612419565b5b5061256e565b5060208310610133831016604e8410600b84101617156125445782820a90508381111561253f5761253e612419565b5b61256e565b6125518484846001612452565b9250905081840481111561256857612567612419565b5b81810290505b9392505050565b5f61257f826120b1565b915061258a83612354565b92506125b77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846124a4565b905092915050565b5f6125c9826120b1565b91506125d4836120b1565b92508282026125e2816120b1565b915082820484148315176125f9576125f8612419565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612634602083611fa6565b915061263f82612600565b602082019050919050565b5f6020820190508181035f83015261266181612628565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61269f826120b1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036126d1576126d0612419565b5b600182019050919050565b5f815190506126ea81612087565b92915050565b5f602082840312156127055761270461204f565b5b5f612712848285016126dc565b91505092915050565b5f60408201905061272e5f8301856123b3565b61273b60208301846123b3565b9392505050565b5f819050919050565b5f819050919050565b5f61276e61276961276484612742565b61274b565b6120b1565b9050919050565b61277e81612754565b82525050565b5f60c0820190506127975f8301896123b3565b6127a46020830188612155565b6127b16040830187612775565b6127be6060830186612775565b6127cb60808301856123b3565b6127d860a0830184612155565b979650505050505050565b5f815190506127f1816120ba565b92915050565b5f805f6060848603121561280e5761280d61204f565b5b5f61281b868287016127e3565b935050602061282c868287016127e3565b925050604061283d868287016127e3565b9150509250925092565b5f60408201905061285a5f8301856123b3565b6128676020830184612155565b9392505050565b61287781612122565b8114612881575f80fd5b50565b5f815190506128928161286e565b92915050565b5f602082840312156128ad576128ac61204f565b5b5f6128ba84828501612884565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61291d602483611fa6565b9150612928826128c3565b604082019050919050565b5f6020820190508181035f83015261294a81612911565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129ab602283611fa6565b91506129b682612951565b604082019050919050565b5f6020820190508181035f8301526129d88161299f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612a39602583611fa6565b9150612a44826129df565b604082019050919050565b5f6020820190508181035f830152612a6681612a2d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612ac7602383611fa6565b9150612ad282612a6d565b604082019050919050565b5f6020820190508181035f830152612af481612abb565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612b55602983611fa6565b9150612b6082612afb565b604082019050919050565b5f6020820190508181035f830152612b8281612b49565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612bbd601983611fa6565b9150612bc882612b89565b602082019050919050565b5f6020820190508181035f830152612bea81612bb1565b9050919050565b5f612bfb826120b1565b9150612c06836120b1565b9250828201905080821115612c1e57612c1d612419565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612c58601a83611fa6565b9150612c6382612c24565b602082019050919050565b5f6020820190508181035f830152612c8581612c4c565b9050919050565b5f612c96826120b1565b9150612ca1836120b1565b9250828203905081811115612cb957612cb8612419565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612cf3601b83611fa6565b9150612cfe82612cbf565b602082019050919050565b5f6020820190508181035f830152612d2081612ce7565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612d5981612076565b82525050565b5f612d6a8383612d50565b60208301905092915050565b5f602082019050919050565b5f612d8c82612d27565b612d968185612d31565b9350612da183612d41565b805f5b83811015612dd1578151612db88882612d5f565b9750612dc383612d76565b925050600181019050612da4565b5085935050505092915050565b5f612df8612df3612dee84612057565b61274b565b612057565b9050919050565b5f612e0982612dde565b9050919050565b5f612e1a82612dff565b9050919050565b612e2a81612e10565b82525050565b5f60a082019050612e435f830188612155565b612e506020830187612775565b8181036040830152612e628186612d82565b9050612e716060830185612e21565b612e7e6080830184612155565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612ebf826120b1565b9150612eca836120b1565b925082612eda57612ed9612e88565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f3f602183611fa6565b9150612f4a82612ee5565b604082019050919050565b5f6020820190508181035f830152612f6c81612f33565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204fe212f80b0be22dfdbb7a3d75ae57dd683ca869074bf1408e375601846d190664736f6c63430008150033

Deployed Bytecode Sourcemap

3751:6691:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5351:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6033:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4072:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5803:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8895:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8576:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5537:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5906:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2832:148;;;;;;;;;;;;;:::i;:::-;;8407:161;;;;;;;;;;;;;:::i;:::-;;4655:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2618:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4715:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5442:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5628:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4111:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9254:646;;;;;;;;;;;;;:::i;:::-;;9074:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6202:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5351:83;5388:13;5421:5;;;;;;;;;;;;;;;;;5414:12;;5351:83;:::o;6033:161::-;6108:4;6125:39;6134:12;:10;:12::i;:::-;6148:7;6157:6;6125:8;:39::i;:::-;6182:4;6175:11;;6033:161;;;;:::o;4072:32::-;;;;:::o;5803:95::-;5856:7;4461:1;4518:2;:13;;;;:::i;:::-;4505:10;:26;;;;:::i;:::-;5876:14;;5803:95;:::o;8895:173::-;2224:12;:10;:12::i;:::-;2210:26;;:10;;;;;;;;;;:26;;;2202:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8973:6:::1;8968:93;8989:7;:14;8985:1;:18;8968:93;;;9045:4;9025:5;:17;9031:7;9039:1;9031:10;;;;;;;;:::i;:::-;;;;;;;;9025:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;9005:3;;;;;:::i;:::-;;;;8968:93;;;;8895:173:::0;:::o;8576:313::-;8674:4;8691:36;8701:6;8709:9;8720:6;8691:9;:36::i;:::-;8738:121;8747:6;8755:12;:10;:12::i;:::-;8769:89;8807:6;8769:89;;;;;;;;;;;;;;;;;:11;:19;8781:6;8769:19;;;;;;;;;;;;;;;:33;8789:12;:10;:12::i;:::-;8769:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8738:8;:121::i;:::-;8877:4;8870:11;;8576:313;;;;;:::o;5537:83::-;5578:5;4461:1;5596:16;;5537:83;:::o;5906:119::-;5972:7;5999:9;:18;6009:7;5999:18;;;;;;;;;;;;;;;;5992:25;;5906:119;;;:::o;2832:148::-;2755:12;:10;:12::i;:::-;2745:22;;:6;;;;;;;;;;;:22;;;2737:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2939:1:::1;2902:40;;2923:6;;;;;;;;;;;2902:40;;;;;;;;;;;;2970:1;2953:6;;:19;;;;;;;;;;;;;;;;;;2832:148::o:0;8407:161::-;2224:12;:10;:12::i;:::-;2210:26;;:10;;;;;;;;;;:26;;;2202:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4461:1:::1;4518:2;:13;;;;:::i;:::-;4505:10;:26;;;;:::i;:::-;8462:12;:22;;;;4461:1;4518:2;:13;;;;:::i;:::-;4505:10;:26;;;;:::i;:::-;8495:14;:22;;;;8533:27;4461:1;4518:2;:13;;;;:::i;:::-;4505:10;:26;;;;:::i;:::-;8533:27;;;;;;:::i;:::-;;;;;;;;8407:161::o:0;4655:53::-;;;;:::o;2618:79::-;2656:7;2683:6;;;;;;;;;;;2676:13;;2618:79;:::o;4715:55::-;;;;:::o;5442:87::-;5481:13;5514:7;;;;;;;;;;;;;;;;;5507:14;;5442:87;:::o;5628:167::-;5706:4;5723:42;5733:12;:10;:12::i;:::-;5747:9;5758:6;5723:9;:42::i;:::-;5783:4;5776:11;;5628:167;;;;:::o;4111:33::-;;;;:::o;9254:646::-;2224:12;:10;:12::i;:::-;2210:26;;:10;;;;;;;;;;:26;;;2202:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9319:11:::1;;;;;;;;;;;9318:12;9310:21;;;::::0;::::1;;9379:42;9342:15;;:80;;;;;;;;;;;;;;;;;;9433:58;9450:4;9465:15;;;;;;;;;;;4461:1;4518:2;:13;;;;:::i;:::-;4505:10;:26;;;;:::i;:::-;9433:8;:58::i;:::-;9536:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9518:55;;;9582:4;9589:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9518:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9502:13;;:110;;;;;;;;;;;;;;;;;;9623:15;;;;;;;;;;;:31;;;9662:21;9693:4;9699:24;9717:4;9699:9;:24::i;:::-;9724:1;9726::::0;9728:7:::1;:5;:7::i;:::-;9736:15;9623:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9770:13;;;;;;;;;;;9763:29;;;9801:15;;;;;;;;;;;9819:14;9763:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9859:4;9845:11;;:18;;;;;;;;;;;;;;;;;;9888:4;9874:11;;:18;;;;;;;;;;;;;;;;;;9254:646::o:0;9074:174::-;2224:12;:10;:12::i;:::-;2210:26;;:10;;;;;;;;;;:26;;;2202:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9152:6:::1;9147:94;9168:7;:14;9164:1;:18;9147:94;;;9224:5;9204;:17;9210:7;9218:1;9210:10;;;;;;;;:::i;:::-;;;;;;;;9204:17;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;9184:3;;;;;:::i;:::-;;;;9147:94;;;;9074:174:::0;:::o;6202:143::-;6283:7;6310:11;:18;6322:5;6310:18;;;;;;;;;;;;;;;:27;6329:7;6310:27;;;;;;;;;;;;;;;;6303:34;;6202:143;;;;:::o;2019:98::-;2072:7;2099:10;2092:17;;2019:98;:::o;6353:335::-;6463:1;6446:19;;:5;:19;;;6438:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6544:1;6525:21;;:7;:21;;;6517:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6626:6;6596:11;:18;6608:5;6596:18;;;;;;;;;;;;;;;:27;6615:7;6596:27;;;;;;;;;;;;;;;:36;;;;6664:7;6648:32;;6657:5;6648:32;;;6673:6;6648:32;;;;;;:::i;:::-;;;;;;;;6353:335;;;:::o;6696:1703::-;6800:1;6784:18;;:4;:18;;;6776:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6877:1;6863:16;;:2;:16;;;6855:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6947:1;6938:6;:10;6930:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7005:17;7047:7;:5;:7::i;:::-;7041:13;;:2;:13;;;;:32;;;;;7066:7;:5;:7::i;:::-;7058:15;;:4;:15;;;;7041:32;7037:1060;;;7095:6;;;;;;;;;;;7094:7;:21;;;;;7111:4;7105:10;;:2;:10;;;7094:21;:43;;;;;7127:10;;;;;;;;;;7119:18;;:4;:18;;;7094:43;:58;;;;;7141:11;;;;;;;;;;;7094:58;:107;;;;;7184:17;;7156:24;7174:4;7156:9;:24::i;:::-;:45;;7094:107;:140;;;;;7216:18;;7205:9;;:29;;7094:140;7090:294;;;7282:36;7311:6;7282:9;:24;7300:4;7282:24;;;;;;;;;;;;;;;;:28;;:36;;;;:::i;:::-;7255:9;:24;7273:4;7255:24;;;;;;;;;;;;;;;:63;;;;7344:24;7361:6;7344:16;:24::i;:::-;7337:31;;;7090:294;7404:18;:22;7423:2;7404:22;;;;;;;;;;;;;;;;;;;;;;;;;7402:24;:49;;;;;7438:13;;;;;;;;;;;7430:21;;:4;:21;;;7402:49;:83;;;;;7469:15;;;;;;;;;;;7455:30;;:2;:30;;;;7402:83;7398:313;;;7525:12;;7515:6;:22;;7507:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7620:14;;7610:6;7594:13;7604:2;7594:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7586:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7684:9;;:11;;;;;;;;;:::i;:::-;;;;;;7398:313;7745:4;7729:21;;:4;:21;;;7725:361;;7783:76;7855:3;7783:67;7805:15;;7795:9;;:25;7794:55;;7835:14;;7794:55;;;7822:12;;7794:55;7783:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7771:88;;7904:13;;;;;;;;;;;7896:21;;:4;:21;;;7892:179;;7953:98;8047:3;7953:89;7965:5;:11;7971:4;7965:11;;;;;;;;;;;;;;;;;;;;;;;;;7964:77;;7993:16;;7983:9;;:26;7982:58;;8025:15;;7982:58;;;8011:13;;7982:58;7964:77;;;7978:2;7964:77;7953:6;:10;;:89;;;;:::i;:::-;:93;;:98;;;;:::i;:::-;7941:110;;7892:179;7725:361;7037:1060;8125:1;8113:9;:13;8109:107;;;8165:39;8194:9;8165;:24;8183:4;8165:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8140:9;:24;8158:4;8140:24;;;;;;;;;;;;;;;:64;;;;8109:107;8240:40;8258:21;8269:9;8258:6;:10;;:21;;;;:::i;:::-;8240:9;:13;8250:2;8240:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;8226:9;:13;8236:2;8226:13;;;;;;;;;;;;;;;:54;;;;8307:27;8327:6;8307:9;:15;8317:4;8307:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8291:9;:15;8301:4;8291:15;;;;;;;;;;;;;;;:43;;;;8365:2;8350:41;;8359:4;8350:41;;;8369:21;8380:9;8369:6;:10;;:21;;;;:::i;:::-;8350:41;;;;;;:::i;:::-;;;;;;;;6765:1634;6696:1703;;;;:::o;1207:190::-;1293:7;1326:1;1321;:6;;1329:12;1313:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1353:9;1369:1;1365;:5;;;;:::i;:::-;1353:17;;1388:1;1381:8;;;1207:190;;;;;:::o;876:179::-;934:7;954:9;970:1;966;:5;;;;:::i;:::-;954:17;;995:1;990;:6;;982:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1046:1;1039:8;;;876:179;;;;:::o;9908:488::-;9980:1;9972:6;:9;9969:22;9983:7;9969:22;10001:21;10039:1;10025:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10001:40;;10070:4;10052;10057:1;10052:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;10098:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10087:4;10092:1;10087:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;10132:57;10149:4;10164:15;;;;;;;;;;;10182:6;10132:8;:57::i;:::-;10201:15;;;;;;;;;;;:66;;;10282:6;10304:1;10321:4;10341:10;;;;;;;;;;10385:2;10367:15;:20;;;;:::i;:::-;10201:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9958:438;9908:488;;:::o;1405:246::-;1463:7;1492:1;1487;:6;1483:47;;1517:1;1510:8;;;;1483:47;1540:9;1556:1;1552;:5;;;;:::i;:::-;1540:17;;1585:1;1580;1576;:5;;;;:::i;:::-;:10;1568:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1642:1;1635:8;;;1405:246;;;;;:::o;1659:132::-;1717:7;1744:39;1748:1;1751;1744:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1737:46;;1659:132;;;;:::o;1063:136::-;1121:7;1148:43;1152:1;1155;1148:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1141:50;;1063:136;;;;:::o;1799:189::-;1885:7;1917:1;1913;:5;1920:12;1905:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1944:9;1960:1;1956;:5;;;;:::i;:::-;1944:17;;1979:1;1972:8;;;1799:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:117::-;3907:1;3904;3897:12;3921:180;3969:77;3966:1;3959:88;4066:4;4063:1;4056:15;4090:4;4087:1;4080:15;4107:281;4190:27;4212:4;4190:27;:::i;:::-;4182:6;4178:40;4320:6;4308:10;4305:22;4284:18;4272:10;4269:34;4266:62;4263:88;;;4331:18;;:::i;:::-;4263:88;4371:10;4367:2;4360:22;4150:238;4107:281;;:::o;4394:129::-;4428:6;4455:20;;:::i;:::-;4445:30;;4484:33;4512:4;4504:6;4484:33;:::i;:::-;4394:129;;;:::o;4529:311::-;4606:4;4696:18;4688:6;4685:30;4682:56;;;4718:18;;:::i;:::-;4682:56;4768:4;4760:6;4756:17;4748:25;;4828:4;4822;4818:15;4810:23;;4529:311;;;:::o;4846:117::-;4955:1;4952;4945:12;4986:710;5082:5;5107:81;5123:64;5180:6;5123:64;:::i;:::-;5107:81;:::i;:::-;5098:90;;5208:5;5237:6;5230:5;5223:21;5271:4;5264:5;5260:16;5253:23;;5324:4;5316:6;5312:17;5304:6;5300:30;5353:3;5345:6;5342:15;5339:122;;;5372:79;;:::i;:::-;5339:122;5487:6;5470:220;5504:6;5499:3;5496:15;5470:220;;;5579:3;5608:37;5641:3;5629:10;5608:37;:::i;:::-;5603:3;5596:50;5675:4;5670:3;5666:14;5659:21;;5546:144;5530:4;5525:3;5521:14;5514:21;;5470:220;;;5474:21;5088:608;;4986:710;;;;;:::o;5719:370::-;5790:5;5839:3;5832:4;5824:6;5820:17;5816:27;5806:122;;5847:79;;:::i;:::-;5806:122;5964:6;5951:20;5989:94;6079:3;6071:6;6064:4;6056:6;6052:17;5989:94;:::i;:::-;5980:103;;5796:293;5719:370;;;;:::o;6095:539::-;6179:6;6228:2;6216:9;6207:7;6203:23;6199:32;6196:119;;;6234:79;;:::i;:::-;6196:119;6382:1;6371:9;6367:17;6354:31;6412:18;6404:6;6401:30;6398:117;;;6434:79;;:::i;:::-;6398:117;6539:78;6609:7;6600:6;6589:9;6585:22;6539:78;:::i;:::-;6529:88;;6325:302;6095:539;;;;:::o;6640:619::-;6717:6;6725;6733;6782:2;6770:9;6761:7;6757:23;6753:32;6750:119;;;6788:79;;:::i;:::-;6750:119;6908:1;6933:53;6978:7;6969:6;6958:9;6954:22;6933:53;:::i;:::-;6923:63;;6879:117;7035:2;7061:53;7106:7;7097:6;7086:9;7082:22;7061:53;:::i;:::-;7051:63;;7006:118;7163:2;7189:53;7234:7;7225:6;7214:9;7210:22;7189:53;:::i;:::-;7179:63;;7134:118;6640:619;;;;;:::o;7265:86::-;7300:7;7340:4;7333:5;7329:16;7318:27;;7265:86;;;:::o;7357:112::-;7440:22;7456:5;7440:22;:::i;:::-;7435:3;7428:35;7357:112;;:::o;7475:214::-;7564:4;7602:2;7591:9;7587:18;7579:26;;7615:67;7679:1;7668:9;7664:17;7655:6;7615:67;:::i;:::-;7475:214;;;;:::o;7695:329::-;7754:6;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;7695:329;;;;:::o;8030:118::-;8117:24;8135:5;8117:24;:::i;:::-;8112:3;8105:37;8030:118;;:::o;8154:222::-;8247:4;8285:2;8274:9;8270:18;8262:26;;8298:71;8366:1;8355:9;8351:17;8342:6;8298:71;:::i;:::-;8154:222;;;;:::o;8382:474::-;8450:6;8458;8507:2;8495:9;8486:7;8482:23;8478:32;8475:119;;;8513:79;;:::i;:::-;8475:119;8633:1;8658:53;8703:7;8694:6;8683:9;8679:22;8658:53;:::i;:::-;8648:63;;8604:117;8760:2;8786:53;8831:7;8822:6;8811:9;8807:22;8786:53;:::i;:::-;8776:63;;8731:118;8382:474;;;;;:::o;8862:180::-;8910:77;8907:1;8900:88;9007:4;9004:1;8997:15;9031:4;9028:1;9021:15;9048:102;9090:8;9137:5;9134:1;9130:13;9109:34;;9048:102;;;:::o;9156:848::-;9217:5;9224:4;9248:6;9239:15;;9272:5;9263:14;;9286:712;9307:1;9297:8;9294:15;9286:712;;;9402:4;9397:3;9393:14;9387:4;9384:24;9381:50;;;9411:18;;:::i;:::-;9381:50;9461:1;9451:8;9447:16;9444:451;;;9876:4;9869:5;9865:16;9856:25;;9444:451;9926:4;9920;9916:15;9908:23;;9956:32;9979:8;9956:32;:::i;:::-;9944:44;;9286:712;;;9156:848;;;;;;;:::o;10010:1073::-;10064:5;10255:8;10245:40;;10276:1;10267:10;;10278:5;;10245:40;10304:4;10294:36;;10321:1;10312:10;;10323:5;;10294:36;10390:4;10438:1;10433:27;;;;10474:1;10469:191;;;;10383:277;;10433:27;10451:1;10442:10;;10453:5;;;10469:191;10514:3;10504:8;10501:17;10498:43;;;10521:18;;:::i;:::-;10498:43;10570:8;10567:1;10563:16;10554:25;;10605:3;10598:5;10595:14;10592:40;;;10612:18;;:::i;:::-;10592:40;10645:5;;;10383:277;;10769:2;10759:8;10756:16;10750:3;10744:4;10741:13;10737:36;10719:2;10709:8;10706:16;10701:2;10695:4;10692:12;10688:35;10672:111;10669:246;;;10825:8;10819:4;10815:19;10806:28;;10860:3;10853:5;10850:14;10847:40;;;10867:18;;:::i;:::-;10847:40;10900:5;;10669:246;10940:42;10978:3;10968:8;10962:4;10959:1;10940:42;:::i;:::-;10925:57;;;;11014:4;11009:3;11005:14;10998:5;10995:25;10992:51;;;11023:18;;:::i;:::-;10992:51;11072:4;11065:5;11061:16;11052:25;;10010:1073;;;;;;:::o;11089:281::-;11147:5;11171:23;11189:4;11171:23;:::i;:::-;11163:31;;11215:25;11231:8;11215:25;:::i;:::-;11203:37;;11259:104;11296:66;11286:8;11280:4;11259:104;:::i;:::-;11250:113;;11089:281;;;;:::o;11376:410::-;11416:7;11439:20;11457:1;11439:20;:::i;:::-;11434:25;;11473:20;11491:1;11473:20;:::i;:::-;11468:25;;11528:1;11525;11521:9;11550:30;11568:11;11550:30;:::i;:::-;11539:41;;11729:1;11720:7;11716:15;11713:1;11710:22;11690:1;11683:9;11663:83;11640:139;;11759:18;;:::i;:::-;11640:139;11424:362;11376:410;;;;:::o;11792:182::-;11932:34;11928:1;11920:6;11916:14;11909:58;11792:182;:::o;11980:366::-;12122:3;12143:67;12207:2;12202:3;12143:67;:::i;:::-;12136:74;;12219:93;12308:3;12219:93;:::i;:::-;12337:2;12332:3;12328:12;12321:19;;11980:366;;;:::o;12352:419::-;12518:4;12556:2;12545:9;12541:18;12533:26;;12605:9;12599:4;12595:20;12591:1;12580:9;12576:17;12569:47;12633:131;12759:4;12633:131;:::i;:::-;12625:139;;12352:419;;;:::o;12777:180::-;12825:77;12822:1;12815:88;12922:4;12919:1;12912:15;12946:4;12943:1;12936:15;12963:233;13002:3;13025:24;13043:5;13025:24;:::i;:::-;13016:33;;13071:66;13064:5;13061:77;13058:103;;13141:18;;:::i;:::-;13058:103;13188:1;13181:5;13177:13;13170:20;;12963:233;;;:::o;13202:143::-;13259:5;13290:6;13284:13;13275:22;;13306:33;13333:5;13306:33;:::i;:::-;13202:143;;;;:::o;13351:351::-;13421:6;13470:2;13458:9;13449:7;13445:23;13441:32;13438:119;;;13476:79;;:::i;:::-;13438:119;13596:1;13621:64;13677:7;13668:6;13657:9;13653:22;13621:64;:::i;:::-;13611:74;;13567:128;13351:351;;;;:::o;13708:332::-;13829:4;13867:2;13856:9;13852:18;13844:26;;13880:71;13948:1;13937:9;13933:17;13924:6;13880:71;:::i;:::-;13961:72;14029:2;14018:9;14014:18;14005:6;13961:72;:::i;:::-;13708:332;;;;;:::o;14046:85::-;14091:7;14120:5;14109:16;;14046:85;;;:::o;14137:60::-;14165:3;14186:5;14179:12;;14137:60;;;:::o;14203:158::-;14261:9;14294:61;14312:42;14321:32;14347:5;14321:32;:::i;:::-;14312:42;:::i;:::-;14294:61;:::i;:::-;14281:74;;14203:158;;;:::o;14367:147::-;14462:45;14501:5;14462:45;:::i;:::-;14457:3;14450:58;14367:147;;:::o;14520:807::-;14769:4;14807:3;14796:9;14792:19;14784:27;;14821:71;14889:1;14878:9;14874:17;14865:6;14821:71;:::i;:::-;14902:72;14970:2;14959:9;14955:18;14946:6;14902:72;:::i;:::-;14984:80;15060:2;15049:9;15045:18;15036:6;14984:80;:::i;:::-;15074;15150:2;15139:9;15135:18;15126:6;15074:80;:::i;:::-;15164:73;15232:3;15221:9;15217:19;15208:6;15164:73;:::i;:::-;15247;15315:3;15304:9;15300:19;15291:6;15247:73;:::i;:::-;14520:807;;;;;;;;;:::o;15333:143::-;15390:5;15421:6;15415:13;15406:22;;15437:33;15464:5;15437:33;:::i;:::-;15333:143;;;;:::o;15482:663::-;15570:6;15578;15586;15635:2;15623:9;15614:7;15610:23;15606:32;15603:119;;;15641:79;;:::i;:::-;15603:119;15761:1;15786:64;15842:7;15833:6;15822:9;15818:22;15786:64;:::i;:::-;15776:74;;15732:128;15899:2;15925:64;15981:7;15972:6;15961:9;15957:22;15925:64;:::i;:::-;15915:74;;15870:129;16038:2;16064:64;16120:7;16111:6;16100:9;16096:22;16064:64;:::i;:::-;16054:74;;16009:129;15482:663;;;;;:::o;16151:332::-;16272:4;16310:2;16299:9;16295:18;16287:26;;16323:71;16391:1;16380:9;16376:17;16367:6;16323:71;:::i;:::-;16404:72;16472:2;16461:9;16457:18;16448:6;16404:72;:::i;:::-;16151:332;;;;;:::o;16489:116::-;16559:21;16574:5;16559:21;:::i;:::-;16552:5;16549:32;16539:60;;16595:1;16592;16585:12;16539:60;16489:116;:::o;16611:137::-;16665:5;16696:6;16690:13;16681:22;;16712:30;16736:5;16712:30;:::i;:::-;16611:137;;;;:::o;16754:345::-;16821:6;16870:2;16858:9;16849:7;16845:23;16841:32;16838:119;;;16876:79;;:::i;:::-;16838:119;16996:1;17021:61;17074:7;17065:6;17054:9;17050:22;17021:61;:::i;:::-;17011:71;;16967:125;16754:345;;;;:::o;17105:223::-;17245:34;17241:1;17233:6;17229:14;17222:58;17314:6;17309:2;17301:6;17297:15;17290:31;17105:223;:::o;17334:366::-;17476:3;17497:67;17561:2;17556:3;17497:67;:::i;:::-;17490:74;;17573:93;17662:3;17573:93;:::i;:::-;17691:2;17686:3;17682:12;17675:19;;17334:366;;;:::o;17706:419::-;17872:4;17910:2;17899:9;17895:18;17887:26;;17959:9;17953:4;17949:20;17945:1;17934:9;17930:17;17923:47;17987:131;18113:4;17987:131;:::i;:::-;17979:139;;17706:419;;;:::o;18131:221::-;18271:34;18267:1;18259:6;18255:14;18248:58;18340:4;18335:2;18327:6;18323:15;18316:29;18131:221;:::o;18358:366::-;18500:3;18521:67;18585:2;18580:3;18521:67;:::i;:::-;18514:74;;18597:93;18686:3;18597:93;:::i;:::-;18715:2;18710:3;18706:12;18699:19;;18358:366;;;:::o;18730:419::-;18896:4;18934:2;18923:9;18919:18;18911:26;;18983:9;18977:4;18973:20;18969:1;18958:9;18954:17;18947:47;19011:131;19137:4;19011:131;:::i;:::-;19003:139;;18730:419;;;:::o;19155:224::-;19295:34;19291:1;19283:6;19279:14;19272:58;19364:7;19359:2;19351:6;19347:15;19340:32;19155:224;:::o;19385:366::-;19527:3;19548:67;19612:2;19607:3;19548:67;:::i;:::-;19541:74;;19624:93;19713:3;19624:93;:::i;:::-;19742:2;19737:3;19733:12;19726:19;;19385:366;;;:::o;19757:419::-;19923:4;19961:2;19950:9;19946:18;19938:26;;20010:9;20004:4;20000:20;19996:1;19985:9;19981:17;19974:47;20038:131;20164:4;20038:131;:::i;:::-;20030:139;;19757:419;;;:::o;20182:222::-;20322:34;20318:1;20310:6;20306:14;20299:58;20391:5;20386:2;20378:6;20374:15;20367:30;20182:222;:::o;20410:366::-;20552:3;20573:67;20637:2;20632:3;20573:67;:::i;:::-;20566:74;;20649:93;20738:3;20649:93;:::i;:::-;20767:2;20762:3;20758:12;20751:19;;20410:366;;;:::o;20782:419::-;20948:4;20986:2;20975:9;20971:18;20963:26;;21035:9;21029:4;21025:20;21021:1;21010:9;21006:17;20999:47;21063:131;21189:4;21063:131;:::i;:::-;21055:139;;20782:419;;;:::o;21207:228::-;21347:34;21343:1;21335:6;21331:14;21324:58;21416:11;21411:2;21403:6;21399:15;21392:36;21207:228;:::o;21441:366::-;21583:3;21604:67;21668:2;21663:3;21604:67;:::i;:::-;21597:74;;21680:93;21769:3;21680:93;:::i;:::-;21798:2;21793:3;21789:12;21782:19;;21441:366;;;:::o;21813:419::-;21979:4;22017:2;22006:9;22002:18;21994:26;;22066:9;22060:4;22056:20;22052:1;22041:9;22037:17;22030:47;22094:131;22220:4;22094:131;:::i;:::-;22086:139;;21813:419;;;:::o;22238:175::-;22378:27;22374:1;22366:6;22362:14;22355:51;22238:175;:::o;22419:366::-;22561:3;22582:67;22646:2;22641:3;22582:67;:::i;:::-;22575:74;;22658:93;22747:3;22658:93;:::i;:::-;22776:2;22771:3;22767:12;22760:19;;22419:366;;;:::o;22791:419::-;22957:4;22995:2;22984:9;22980:18;22972:26;;23044:9;23038:4;23034:20;23030:1;23019:9;23015:17;23008:47;23072:131;23198:4;23072:131;:::i;:::-;23064:139;;22791:419;;;:::o;23216:191::-;23256:3;23275:20;23293:1;23275:20;:::i;:::-;23270:25;;23309:20;23327:1;23309:20;:::i;:::-;23304:25;;23352:1;23349;23345:9;23338:16;;23373:3;23370:1;23367:10;23364:36;;;23380:18;;:::i;:::-;23364:36;23216:191;;;;:::o;23413:176::-;23553:28;23549:1;23541:6;23537:14;23530:52;23413:176;:::o;23595:366::-;23737:3;23758:67;23822:2;23817:3;23758:67;:::i;:::-;23751:74;;23834:93;23923:3;23834:93;:::i;:::-;23952:2;23947:3;23943:12;23936:19;;23595:366;;;:::o;23967:419::-;24133:4;24171:2;24160:9;24156:18;24148:26;;24220:9;24214:4;24210:20;24206:1;24195:9;24191:17;24184:47;24248:131;24374:4;24248:131;:::i;:::-;24240:139;;23967:419;;;:::o;24392:194::-;24432:4;24452:20;24470:1;24452:20;:::i;:::-;24447:25;;24486:20;24504:1;24486:20;:::i;:::-;24481:25;;24530:1;24527;24523:9;24515:17;;24554:1;24548:4;24545:11;24542:37;;;24559:18;;:::i;:::-;24542:37;24392:194;;;;:::o;24592:177::-;24732:29;24728:1;24720:6;24716:14;24709:53;24592:177;:::o;24775:366::-;24917:3;24938:67;25002:2;24997:3;24938:67;:::i;:::-;24931:74;;25014:93;25103:3;25014:93;:::i;:::-;25132:2;25127:3;25123:12;25116:19;;24775:366;;;:::o;25147:419::-;25313:4;25351:2;25340:9;25336:18;25328:26;;25400:9;25394:4;25390:20;25386:1;25375:9;25371:17;25364:47;25428:131;25554:4;25428:131;:::i;:::-;25420:139;;25147:419;;;:::o;25572:114::-;25639:6;25673:5;25667:12;25657:22;;25572:114;;;:::o;25692:184::-;25791:11;25825:6;25820:3;25813:19;25865:4;25860:3;25856:14;25841:29;;25692:184;;;;:::o;25882:132::-;25949:4;25972:3;25964:11;;26002:4;25997:3;25993:14;25985:22;;25882:132;;;:::o;26020:108::-;26097:24;26115:5;26097:24;:::i;:::-;26092:3;26085:37;26020:108;;:::o;26134:179::-;26203:10;26224:46;26266:3;26258:6;26224:46;:::i;:::-;26302:4;26297:3;26293:14;26279:28;;26134:179;;;;:::o;26319:113::-;26389:4;26421;26416:3;26412:14;26404:22;;26319:113;;;:::o;26468:732::-;26587:3;26616:54;26664:5;26616:54;:::i;:::-;26686:86;26765:6;26760:3;26686:86;:::i;:::-;26679:93;;26796:56;26846:5;26796:56;:::i;:::-;26875:7;26906:1;26891:284;26916:6;26913:1;26910:13;26891:284;;;26992:6;26986:13;27019:63;27078:3;27063:13;27019:63;:::i;:::-;27012:70;;27105:60;27158:6;27105:60;:::i;:::-;27095:70;;26951:224;26938:1;26935;26931:9;26926:14;;26891:284;;;26895:14;27191:3;27184:10;;26592:608;;;26468:732;;;;:::o;27206:142::-;27256:9;27289:53;27307:34;27316:24;27334:5;27316:24;:::i;:::-;27307:34;:::i;:::-;27289:53;:::i;:::-;27276:66;;27206:142;;;:::o;27354:126::-;27404:9;27437:37;27468:5;27437:37;:::i;:::-;27424:50;;27354:126;;;:::o;27486:134::-;27544:9;27577:37;27608:5;27577:37;:::i;:::-;27564:50;;27486:134;;;:::o;27626:147::-;27721:45;27760:5;27721:45;:::i;:::-;27716:3;27709:58;27626:147;;:::o;27779:847::-;28050:4;28088:3;28077:9;28073:19;28065:27;;28102:71;28170:1;28159:9;28155:17;28146:6;28102:71;:::i;:::-;28183:80;28259:2;28248:9;28244:18;28235:6;28183:80;:::i;:::-;28310:9;28304:4;28300:20;28295:2;28284:9;28280:18;28273:48;28338:108;28441:4;28432:6;28338:108;:::i;:::-;28330:116;;28456:80;28532:2;28521:9;28517:18;28508:6;28456:80;:::i;:::-;28546:73;28614:3;28603:9;28599:19;28590:6;28546:73;:::i;:::-;27779:847;;;;;;;;:::o;28632:180::-;28680:77;28677:1;28670:88;28777:4;28774:1;28767:15;28801:4;28798:1;28791:15;28818:185;28858:1;28875:20;28893:1;28875:20;:::i;:::-;28870:25;;28909:20;28927:1;28909:20;:::i;:::-;28904:25;;28948:1;28938:35;;28953:18;;:::i;:::-;28938:35;28995:1;28992;28988:9;28983:14;;28818:185;;;;:::o;29009:220::-;29149:34;29145:1;29137:6;29133:14;29126:58;29218:3;29213:2;29205:6;29201:15;29194:28;29009:220;:::o;29235:366::-;29377:3;29398:67;29462:2;29457:3;29398:67;:::i;:::-;29391:74;;29474:93;29563:3;29474:93;:::i;:::-;29592:2;29587:3;29583:12;29576:19;;29235:366;;;:::o;29607:419::-;29773:4;29811:2;29800:9;29796:18;29788:26;;29860:9;29854:4;29850:20;29846:1;29835:9;29831:17;29824:47;29888:131;30014:4;29888:131;:::i;:::-;29880:139;;29607:419;;;:::o

Swarm Source

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