ETH Price: $3,401.38 (-7.97%)
 

Overview

Max Total Supply

100,000,000 $BOVA

Holders

72

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
409,659.827335465 $BOVA

Value
$0.00
0xd3732ef83f7684098a04c3afd36f0264ba50b8dc
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
BOVAAI

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*                                 
██████╗  ██████╗ ██╗   ██╗ █████╗      █████╗ ██╗
██╔══██╗██╔═══██╗██║   ██║██╔══██╗    ██╔══██╗██║
██████╔╝██║   ██║██║   ██║███████║    ███████║██║
██╔══██╗██║   ██║╚██╗ ██╔╝██╔══██║    ██╔══██║██║
██████╔╝╚██████╔╝ ╚████╔╝ ██║  ██║    ██║  ██║██║
╚═════╝  ╚═════╝   ╚═══╝  ╚═╝  ╚═╝    ╚═╝  ╚═╝╚═╝
      INTRODUCING BOVA AI - OWN YOUR DATA, EARN FROM IT
         
      BOVA Smart Contract AUDITED & KYCED. 
     <--------------------------------------------------------->
      |   WEBSITE     : https://bovaai.app/                   |
      |   Whitepaper  : https://docs.bovaai.app/              | 
      |   Telegram    : https://t.me/BovaAiPortal             |
      |   X-(Twitter) : https://x.com/bovaai_eth              |
     <--------------------------------------------------------->


    Download Extension : https://chromewebstore.google.com/detail/bovaai/liddhjnmllnikmnmcgcljoadldkablfh
    Download Browser   : https://pub-ee6cba84cf22426caafacf1b00a85c09.r2.dev/BovaAIBrowser.exe

*/

pragma solidity 0.8.19;

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 BOVAAI 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;
    address private constant deadAddress = address(0xdead);

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

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    string private constant _name = unicode"BOVA AI";
    string private constant _symbol = unicode"$BOVA";
    uint256 public _maxTxAmount = 1000000 * 10**_decimals;
    uint256 public _maxWalletSize = 1000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 100000 * 10**_decimals;
    uint256 public _maxTaxSwap= 1000000 * 10**_decimals;

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

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

    constructor () {
        _taxWallet = payable(0x7646535E144163CE70f6D1d17266DD1E60b9Eff5);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[deadAddress]= 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()) { 

            if (!tradingOpen) {
                require( 
                  _isExcludedFromFee[from] || _isExcludedFromFee[to],
                  "trading is not yet open"
                );
            }

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

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

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

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

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

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

    function addliquidity() external onlyOwner() {
        require(!tradingOpen,"Liquidity is already added");
        uint256 tokenAmount = balanceOf(address(this)).sub(_tTotal.mul(_initialBuyTax).div(100));
        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),
            tokenAmount,
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); 
    }

    function removeLimits () external onlyOwner returns (bool){
        limitEffect = false;
        return true;
    }
    
    function reduceTax (uint256 _value) external onlyOwner returns (bool) {
        _finalBuyTax = _value;
        _finalSellTax = _value;
        require(_value <= 5,"Tax cannot exceed 5");
        return true;
    }

    function openTrading() external onlyOwner returns (bool) {
        require(!tradingOpen,"trading is already open");
        swapEnabled = true;
        tradingOpen = true;
        return true;
    }

    function clearstuckETH() external returns (bool) {
        require(tradingOpen,"trading is not yet open");
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          _taxWallet.transfer(ethBalance);
        }
        return true;
    }
    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":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":[],"name":"addliquidity","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":"clearstuckETH","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","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":"openTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"reduceTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260146005556019600655600f600755600f600855601e600955602d600a556028600b556000600c556009600a6200003c91906200068a565b620f42406200004c9190620006db565b600d556009600a6200005f91906200068a565b620f42406200006f9190620006db565b600e556009600a6200008291906200068a565b620186a0620000929190620006db565b600f556009600a620000a591906200068a565b620f4240620000b59190620006db565b6010556001601260156101000a81548160ff0219169083151502179055506000601260166101000a81548160ff0219169083151502179055506000601260176101000a81548160ff0219169083151502179055503480156200011657600080fd5b50600062000129620004bf60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737646535e144163ce70f6d1d17266dd1e60b9eff5600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200022c91906200068a565b6305f5e1006200023d9190620006db565b6001600062000251620004bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002a5620004c760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000432620004bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200049191906200068a565b6305f5e100620004a29190620006db565b604051620004b1919062000737565b60405180910390a362000754565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200057e57808604811115620005565762000555620004f0565b5b6001851615620005665780820291505b808102905062000576856200051f565b945062000536565b94509492505050565b6000826200059957600190506200066c565b81620005a957600090506200066c565b8160018114620005c25760028114620005cd5762000603565b60019150506200066c565b60ff841115620005e257620005e1620004f0565b5b8360020a915084821115620005fc57620005fb620004f0565b5b506200066c565b5060208310610133831016604e8410600b84101617156200063d5782820a905083811115620006375762000636620004f0565b5b6200066c565b6200064c84848460016200052c565b92509050818404811115620006665762000665620004f0565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620006978262000673565b9150620006a4836200067d565b9250620006d37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000587565b905092915050565b6000620006e88262000673565b9150620006f58362000673565b9250828202620007058162000673565b915082820484148315176200071f576200071e620004f0565b5b5092915050565b620007318162000673565b82525050565b60006020820190506200074e600083018462000726565b92915050565b61336b80620007646000396000f3fe6080604052600436106101235760003560e01c80637d1db4a5116100a0578063a92d4a9211610064578063a92d4a92146103d4578063bf474bed146103ff578063c9567bf91461042a578063dd62ed3e14610455578063ef985894146104925761012a565b80637d1db4a5146102eb5780638da5cb5b146103165780638f9a55c01461034157806395d89b411461036c578063a9059cbb146103975761012a565b8063313ce567116100e7578063313ce5671461022a57806342e99d1a1461025557806370a082311461026c578063715018a6146102a9578063751039fc146102c05761012a565b806306fdde031461012f578063095ea7b31461015a5780630faee56f1461019757806318160ddd146101c257806323b872dd146101ed5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b506101446104cf565b6040516101519190612328565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c91906123e3565b61050c565b60405161018e919061243e565b60405180910390f35b3480156101a357600080fd5b506101ac61052a565b6040516101b99190612468565b60405180910390f35b3480156101ce57600080fd5b506101d7610530565b6040516101e49190612468565b60405180910390f35b3480156101f957600080fd5b50610214600480360381019061020f9190612483565b610554565b604051610221919061243e565b60405180910390f35b34801561023657600080fd5b5061023f61062d565b60405161024c91906124f2565b60405180910390f35b34801561026157600080fd5b5061026a610636565b005b34801561027857600080fd5b50610293600480360381019061028e919061250d565b610b93565b6040516102a09190612468565b60405180910390f35b3480156102b557600080fd5b506102be610bdc565b005b3480156102cc57600080fd5b506102d5610d2f565b6040516102e2919061243e565b60405180910390f35b3480156102f757600080fd5b50610300610de8565b60405161030d9190612468565b60405180910390f35b34801561032257600080fd5b5061032b610dee565b6040516103389190612549565b60405180910390f35b34801561034d57600080fd5b50610356610e17565b6040516103639190612468565b60405180910390f35b34801561037857600080fd5b50610381610e1d565b60405161038e9190612328565b60405180910390f35b3480156103a357600080fd5b506103be60048036038101906103b991906123e3565b610e5a565b6040516103cb919061243e565b60405180910390f35b3480156103e057600080fd5b506103e9610e78565b6040516103f6919061243e565b60405180910390f35b34801561040b57600080fd5b50610414610f49565b6040516104219190612468565b60405180910390f35b34801561043657600080fd5b5061043f610f4f565b60405161044c919061243e565b60405180910390f35b34801561046157600080fd5b5061047c60048036038101906104779190612564565b611073565b6040516104899190612468565b60405180910390f35b34801561049e57600080fd5b506104b960048036038101906104b491906125a4565b6110fa565b6040516104c6919061243e565b60405180910390f35b60606040518060400160405280600781526020017f424f564120414900000000000000000000000000000000000000000000000000815250905090565b60006105206105196111ec565b84846111f4565b6001905092915050565b60105481565b60006009600a6105409190612733565b6305f5e10061054f919061277e565b905090565b60006105618484846113bd565b6106228461056d6111ec565b61061d8560405180606001604052806028815260200161330e60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105d36111ec565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d679092919063ffffffff16565b6111f4565b600190509392505050565b60006009905090565b61063e6111ec565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c29061280c565b60405180910390fd5b601260149054906101000a900460ff161561071b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071290612878565b60405180910390fd5b600061077b61076460646107566005546009600a6107399190612733565b6305f5e100610748919061277e565b611dcb90919063ffffffff16565b611e4590919063ffffffff16565b61076d30610b93565b611e8f90919063ffffffff16565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061081b30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6108079190612733565b6305f5e100610816919061277e565b6111f4565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610888573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ac91906128ad565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610935573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095991906128ad565b6040518363ffffffff1660e01b81526004016109769291906128da565b6020604051808303816000875af1158015610995573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b991906128ad565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473084600080610a45610dee565b426040518863ffffffff1660e01b8152600401610a6796959493929190612948565b60606040518083038185885af1158015610a85573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610aaa91906129be565b505050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610b4c929190612a11565b6020604051808303816000875af1158015610b6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8f9190612a66565b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610be46111ec565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c689061280c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000610d396111ec565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbd9061280c565b60405180910390fd5b6000601260156101000a81548160ff0219169083151502179055506001905090565b600d5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e5481565b60606040518060400160405280600581526020017f24424f5641000000000000000000000000000000000000000000000000000000815250905090565b6000610e6e610e676111ec565b84846113bd565b6001905092915050565b6000601260149054906101000a900460ff16610ec9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec090612adf565b60405180910390fd5b60004790506000811115610f4157600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610f3f573d6000803e3d6000fd5b505b600191505090565b600f5481565b6000610f596111ec565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fe6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdd9061280c565b60405180910390fd5b601260149054906101000a900460ff1615611036576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102d90612b4b565b60405180910390fd5b6001601260176101000a81548160ff0219169083151502179055506001601260146101000a81548160ff0219169083151502179055506001905090565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60006111046111ec565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611191576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111889061280c565b60405180910390fd5b816007819055508160088190555060058211156111e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111da90612bb7565b60405180910390fd5b60019050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611263576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125a90612c49565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c990612cdb565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113b09190612468565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361142c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142390612d6d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361149b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149290612dff565b60405180910390fd5b600081116114de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d590612e91565b60405180910390fd5b60006114e8610dee565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115565750611526610dee565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611aaa57601260149054906101000a900460ff1661165057600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116105750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61164f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164690612adf565b60405180910390fd5b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116fb5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117515750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561182257601260159054906101000a900460ff161561180957600d548211156117b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a790612efd565b60405180910390fd5b600e54826117bd85610b93565b6117c79190612f1d565b1115611808576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ff90612f9d565b60405180910390fd5b5b600c600081548092919061181c90612fbd565b91905055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118ab57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118f3576118ec60646118de600a54600c54116118cb576006546118cf565b6008545b85611dcb90919063ffffffff16565b611e4590919063ffffffff16565b90506119c1565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561197c57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119c0576119bd60646119af600954600c541161199c576005546119a0565b6007545b85611dcb90919063ffffffff16565b611e4590919063ffffffff16565b90505b5b60006119cc30610b93565b9050601260169054906101000a900460ff16158015611a385750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a505750601260179054906101000a900460ff165b8015611a5d5750600f5481115b8015611a6c5750600b54600c54115b15611aa857611a8e611a8984611a8484601054611ed9565b611ed9565b611ef2565b60004790506000811115611aa657611aa54761216b565b5b505b505b6000811115611bae57611b0581600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121d790919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ba59190612468565b60405180910390a35b611c0082600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e8f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ca7611c598284611e8f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121d790919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d4c8486611e8f90919063ffffffff16565b604051611d599190612468565b60405180910390a350505050565b6000838311158290611daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da69190612328565b60405180910390fd5b5060008385611dbe9190613005565b9050809150509392505050565b6000808303611ddd5760009050611e3f565b60008284611deb919061277e565b9050828482611dfa9190613068565b14611e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e319061310b565b60405180910390fd5b809150505b92915050565b6000611e8783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612235565b905092915050565b6000611ed183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d67565b905092915050565b6000818311611ee85782611eea565b815b905092915050565b6001601260166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f2a57611f2961312b565b5b604051908082528060200260200182016040528015611f585781602001602082028036833780820191505090505b5090503081600081518110611f7057611f6f61315a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612017573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203b91906128ad565b8160018151811061204f5761204e61315a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120b630601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111f4565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161211a959493929190613247565b600060405180830381600087803b15801561213457600080fd5b505af1158015612148573d6000803e3d6000fd5b50505050506000601260166101000a81548160ff02191690831515021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156121d3573d6000803e3d6000fd5b5050565b60008082846121e69190612f1d565b90508381101561222b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612222906132ed565b60405180910390fd5b8091505092915050565b6000808311829061227c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122739190612328565b60405180910390fd5b506000838561228b9190613068565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122d25780820151818401526020810190506122b7565b60008484015250505050565b6000601f19601f8301169050919050565b60006122fa82612298565b61230481856122a3565b93506123148185602086016122b4565b61231d816122de565b840191505092915050565b6000602082019050818103600083015261234281846122ef565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061237a8261234f565b9050919050565b61238a8161236f565b811461239557600080fd5b50565b6000813590506123a781612381565b92915050565b6000819050919050565b6123c0816123ad565b81146123cb57600080fd5b50565b6000813590506123dd816123b7565b92915050565b600080604083850312156123fa576123f961234a565b5b600061240885828601612398565b9250506020612419858286016123ce565b9150509250929050565b60008115159050919050565b61243881612423565b82525050565b6000602082019050612453600083018461242f565b92915050565b612462816123ad565b82525050565b600060208201905061247d6000830184612459565b92915050565b60008060006060848603121561249c5761249b61234a565b5b60006124aa86828701612398565b93505060206124bb86828701612398565b92505060406124cc868287016123ce565b9150509250925092565b600060ff82169050919050565b6124ec816124d6565b82525050565b600060208201905061250760008301846124e3565b92915050565b6000602082840312156125235761252261234a565b5b600061253184828501612398565b91505092915050565b6125438161236f565b82525050565b600060208201905061255e600083018461253a565b92915050565b6000806040838503121561257b5761257a61234a565b5b600061258985828601612398565b925050602061259a85828601612398565b9150509250929050565b6000602082840312156125ba576125b961234a565b5b60006125c8848285016123ce565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561265757808604811115612633576126326125d1565b5b60018516156126425780820291505b808102905061265085612600565b9450612617565b94509492505050565b600082612670576001905061272c565b8161267e576000905061272c565b8160018114612694576002811461269e576126cd565b600191505061272c565b60ff8411156126b0576126af6125d1565b5b8360020a9150848211156126c7576126c66125d1565b5b5061272c565b5060208310610133831016604e8410600b84101617156127025782820a9050838111156126fd576126fc6125d1565b5b61272c565b61270f848484600161260d565b92509050818404811115612726576127256125d1565b5b81810290505b9392505050565b600061273e826123ad565b9150612749836124d6565b92506127767fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612660565b905092915050565b6000612789826123ad565b9150612794836123ad565b92508282026127a2816123ad565b915082820484148315176127b9576127b86125d1565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006127f66020836122a3565b9150612801826127c0565b602082019050919050565b60006020820190508181036000830152612825816127e9565b9050919050565b7f4c697175696469747920697320616c7265616479206164646564000000000000600082015250565b6000612862601a836122a3565b915061286d8261282c565b602082019050919050565b6000602082019050818103600083015261289181612855565b9050919050565b6000815190506128a781612381565b92915050565b6000602082840312156128c3576128c261234a565b5b60006128d184828501612898565b91505092915050565b60006040820190506128ef600083018561253a565b6128fc602083018461253a565b9392505050565b6000819050919050565b6000819050919050565b600061293261292d61292884612903565b61290d565b6123ad565b9050919050565b61294281612917565b82525050565b600060c08201905061295d600083018961253a565b61296a6020830188612459565b6129776040830187612939565b6129846060830186612939565b612991608083018561253a565b61299e60a0830184612459565b979650505050505050565b6000815190506129b8816123b7565b92915050565b6000806000606084860312156129d7576129d661234a565b5b60006129e5868287016129a9565b93505060206129f6868287016129a9565b9250506040612a07868287016129a9565b9150509250925092565b6000604082019050612a26600083018561253a565b612a336020830184612459565b9392505050565b612a4381612423565b8114612a4e57600080fd5b50565b600081519050612a6081612a3a565b92915050565b600060208284031215612a7c57612a7b61234a565b5b6000612a8a84828501612a51565b91505092915050565b7f74726164696e67206973206e6f7420796574206f70656e000000000000000000600082015250565b6000612ac96017836122a3565b9150612ad482612a93565b602082019050919050565b60006020820190508181036000830152612af881612abc565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612b356017836122a3565b9150612b4082612aff565b602082019050919050565b60006020820190508181036000830152612b6481612b28565b9050919050565b7f5461782063616e6e6f7420657863656564203500000000000000000000000000600082015250565b6000612ba16013836122a3565b9150612bac82612b6b565b602082019050919050565b60006020820190508181036000830152612bd081612b94565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612c336024836122a3565b9150612c3e82612bd7565b604082019050919050565b60006020820190508181036000830152612c6281612c26565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612cc56022836122a3565b9150612cd082612c69565b604082019050919050565b60006020820190508181036000830152612cf481612cb8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d576025836122a3565b9150612d6282612cfb565b604082019050919050565b60006020820190508181036000830152612d8681612d4a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612de96023836122a3565b9150612df482612d8d565b604082019050919050565b60006020820190508181036000830152612e1881612ddc565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612e7b6029836122a3565b9150612e8682612e1f565b604082019050919050565b60006020820190508181036000830152612eaa81612e6e565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612ee76019836122a3565b9150612ef282612eb1565b602082019050919050565b60006020820190508181036000830152612f1681612eda565b9050919050565b6000612f28826123ad565b9150612f33836123ad565b9250828201905080821115612f4b57612f4a6125d1565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612f87601a836122a3565b9150612f9282612f51565b602082019050919050565b60006020820190508181036000830152612fb681612f7a565b9050919050565b6000612fc8826123ad565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ffa57612ff96125d1565b5b600182019050919050565b6000613010826123ad565b915061301b836123ad565b9250828203905081811115613033576130326125d1565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613073826123ad565b915061307e836123ad565b92508261308e5761308d613039565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006130f56021836122a3565b915061310082613099565b604082019050919050565b60006020820190508181036000830152613124816130e8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6131be8161236f565b82525050565b60006131d083836131b5565b60208301905092915050565b6000602082019050919050565b60006131f482613189565b6131fe8185613194565b9350613209836131a5565b8060005b8381101561323a57815161322188826131c4565b975061322c836131dc565b92505060018101905061320d565b5085935050505092915050565b600060a08201905061325c6000830188612459565b6132696020830187612939565b818103604083015261327b81866131e9565b905061328a606083018561253a565b6132976080830184612459565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006132d7601b836122a3565b91506132e2826132a1565b602082019050919050565b60006020820190508181036000830152613306816132ca565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fa7573753c59888a8c3f2763e3a38efd47d39ad991d996323f87be3d4c09df9864736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101235760003560e01c80637d1db4a5116100a0578063a92d4a9211610064578063a92d4a92146103d4578063bf474bed146103ff578063c9567bf91461042a578063dd62ed3e14610455578063ef985894146104925761012a565b80637d1db4a5146102eb5780638da5cb5b146103165780638f9a55c01461034157806395d89b411461036c578063a9059cbb146103975761012a565b8063313ce567116100e7578063313ce5671461022a57806342e99d1a1461025557806370a082311461026c578063715018a6146102a9578063751039fc146102c05761012a565b806306fdde031461012f578063095ea7b31461015a5780630faee56f1461019757806318160ddd146101c257806323b872dd146101ed5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b506101446104cf565b6040516101519190612328565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c91906123e3565b61050c565b60405161018e919061243e565b60405180910390f35b3480156101a357600080fd5b506101ac61052a565b6040516101b99190612468565b60405180910390f35b3480156101ce57600080fd5b506101d7610530565b6040516101e49190612468565b60405180910390f35b3480156101f957600080fd5b50610214600480360381019061020f9190612483565b610554565b604051610221919061243e565b60405180910390f35b34801561023657600080fd5b5061023f61062d565b60405161024c91906124f2565b60405180910390f35b34801561026157600080fd5b5061026a610636565b005b34801561027857600080fd5b50610293600480360381019061028e919061250d565b610b93565b6040516102a09190612468565b60405180910390f35b3480156102b557600080fd5b506102be610bdc565b005b3480156102cc57600080fd5b506102d5610d2f565b6040516102e2919061243e565b60405180910390f35b3480156102f757600080fd5b50610300610de8565b60405161030d9190612468565b60405180910390f35b34801561032257600080fd5b5061032b610dee565b6040516103389190612549565b60405180910390f35b34801561034d57600080fd5b50610356610e17565b6040516103639190612468565b60405180910390f35b34801561037857600080fd5b50610381610e1d565b60405161038e9190612328565b60405180910390f35b3480156103a357600080fd5b506103be60048036038101906103b991906123e3565b610e5a565b6040516103cb919061243e565b60405180910390f35b3480156103e057600080fd5b506103e9610e78565b6040516103f6919061243e565b60405180910390f35b34801561040b57600080fd5b50610414610f49565b6040516104219190612468565b60405180910390f35b34801561043657600080fd5b5061043f610f4f565b60405161044c919061243e565b60405180910390f35b34801561046157600080fd5b5061047c60048036038101906104779190612564565b611073565b6040516104899190612468565b60405180910390f35b34801561049e57600080fd5b506104b960048036038101906104b491906125a4565b6110fa565b6040516104c6919061243e565b60405180910390f35b60606040518060400160405280600781526020017f424f564120414900000000000000000000000000000000000000000000000000815250905090565b60006105206105196111ec565b84846111f4565b6001905092915050565b60105481565b60006009600a6105409190612733565b6305f5e10061054f919061277e565b905090565b60006105618484846113bd565b6106228461056d6111ec565b61061d8560405180606001604052806028815260200161330e60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105d36111ec565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d679092919063ffffffff16565b6111f4565b600190509392505050565b60006009905090565b61063e6111ec565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c29061280c565b60405180910390fd5b601260149054906101000a900460ff161561071b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071290612878565b60405180910390fd5b600061077b61076460646107566005546009600a6107399190612733565b6305f5e100610748919061277e565b611dcb90919063ffffffff16565b611e4590919063ffffffff16565b61076d30610b93565b611e8f90919063ffffffff16565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061081b30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6108079190612733565b6305f5e100610816919061277e565b6111f4565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610888573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ac91906128ad565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610935573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095991906128ad565b6040518363ffffffff1660e01b81526004016109769291906128da565b6020604051808303816000875af1158015610995573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b991906128ad565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473084600080610a45610dee565b426040518863ffffffff1660e01b8152600401610a6796959493929190612948565b60606040518083038185885af1158015610a85573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610aaa91906129be565b505050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610b4c929190612a11565b6020604051808303816000875af1158015610b6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8f9190612a66565b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610be46111ec565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c689061280c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000610d396111ec565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbd9061280c565b60405180910390fd5b6000601260156101000a81548160ff0219169083151502179055506001905090565b600d5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e5481565b60606040518060400160405280600581526020017f24424f5641000000000000000000000000000000000000000000000000000000815250905090565b6000610e6e610e676111ec565b84846113bd565b6001905092915050565b6000601260149054906101000a900460ff16610ec9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec090612adf565b60405180910390fd5b60004790506000811115610f4157600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610f3f573d6000803e3d6000fd5b505b600191505090565b600f5481565b6000610f596111ec565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fe6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdd9061280c565b60405180910390fd5b601260149054906101000a900460ff1615611036576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102d90612b4b565b60405180910390fd5b6001601260176101000a81548160ff0219169083151502179055506001601260146101000a81548160ff0219169083151502179055506001905090565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60006111046111ec565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611191576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111889061280c565b60405180910390fd5b816007819055508160088190555060058211156111e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111da90612bb7565b60405180910390fd5b60019050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611263576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125a90612c49565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c990612cdb565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113b09190612468565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361142c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142390612d6d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361149b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149290612dff565b60405180910390fd5b600081116114de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d590612e91565b60405180910390fd5b60006114e8610dee565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115565750611526610dee565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611aaa57601260149054906101000a900460ff1661165057600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116105750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61164f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164690612adf565b60405180910390fd5b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116fb5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117515750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561182257601260159054906101000a900460ff161561180957600d548211156117b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a790612efd565b60405180910390fd5b600e54826117bd85610b93565b6117c79190612f1d565b1115611808576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ff90612f9d565b60405180910390fd5b5b600c600081548092919061181c90612fbd565b91905055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118ab57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118f3576118ec60646118de600a54600c54116118cb576006546118cf565b6008545b85611dcb90919063ffffffff16565b611e4590919063ffffffff16565b90506119c1565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561197c57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119c0576119bd60646119af600954600c541161199c576005546119a0565b6007545b85611dcb90919063ffffffff16565b611e4590919063ffffffff16565b90505b5b60006119cc30610b93565b9050601260169054906101000a900460ff16158015611a385750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a505750601260179054906101000a900460ff165b8015611a5d5750600f5481115b8015611a6c5750600b54600c54115b15611aa857611a8e611a8984611a8484601054611ed9565b611ed9565b611ef2565b60004790506000811115611aa657611aa54761216b565b5b505b505b6000811115611bae57611b0581600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121d790919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ba59190612468565b60405180910390a35b611c0082600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e8f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ca7611c598284611e8f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121d790919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d4c8486611e8f90919063ffffffff16565b604051611d599190612468565b60405180910390a350505050565b6000838311158290611daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da69190612328565b60405180910390fd5b5060008385611dbe9190613005565b9050809150509392505050565b6000808303611ddd5760009050611e3f565b60008284611deb919061277e565b9050828482611dfa9190613068565b14611e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e319061310b565b60405180910390fd5b809150505b92915050565b6000611e8783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612235565b905092915050565b6000611ed183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d67565b905092915050565b6000818311611ee85782611eea565b815b905092915050565b6001601260166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f2a57611f2961312b565b5b604051908082528060200260200182016040528015611f585781602001602082028036833780820191505090505b5090503081600081518110611f7057611f6f61315a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612017573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203b91906128ad565b8160018151811061204f5761204e61315a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120b630601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111f4565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161211a959493929190613247565b600060405180830381600087803b15801561213457600080fd5b505af1158015612148573d6000803e3d6000fd5b50505050506000601260166101000a81548160ff02191690831515021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156121d3573d6000803e3d6000fd5b5050565b60008082846121e69190612f1d565b90508381101561222b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612222906132ed565b60405180910390fd5b8091505092915050565b6000808311829061227c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122739190612328565b60405180910390fd5b506000838561228b9190613068565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122d25780820151818401526020810190506122b7565b60008484015250505050565b6000601f19601f8301169050919050565b60006122fa82612298565b61230481856122a3565b93506123148185602086016122b4565b61231d816122de565b840191505092915050565b6000602082019050818103600083015261234281846122ef565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061237a8261234f565b9050919050565b61238a8161236f565b811461239557600080fd5b50565b6000813590506123a781612381565b92915050565b6000819050919050565b6123c0816123ad565b81146123cb57600080fd5b50565b6000813590506123dd816123b7565b92915050565b600080604083850312156123fa576123f961234a565b5b600061240885828601612398565b9250506020612419858286016123ce565b9150509250929050565b60008115159050919050565b61243881612423565b82525050565b6000602082019050612453600083018461242f565b92915050565b612462816123ad565b82525050565b600060208201905061247d6000830184612459565b92915050565b60008060006060848603121561249c5761249b61234a565b5b60006124aa86828701612398565b93505060206124bb86828701612398565b92505060406124cc868287016123ce565b9150509250925092565b600060ff82169050919050565b6124ec816124d6565b82525050565b600060208201905061250760008301846124e3565b92915050565b6000602082840312156125235761252261234a565b5b600061253184828501612398565b91505092915050565b6125438161236f565b82525050565b600060208201905061255e600083018461253a565b92915050565b6000806040838503121561257b5761257a61234a565b5b600061258985828601612398565b925050602061259a85828601612398565b9150509250929050565b6000602082840312156125ba576125b961234a565b5b60006125c8848285016123ce565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561265757808604811115612633576126326125d1565b5b60018516156126425780820291505b808102905061265085612600565b9450612617565b94509492505050565b600082612670576001905061272c565b8161267e576000905061272c565b8160018114612694576002811461269e576126cd565b600191505061272c565b60ff8411156126b0576126af6125d1565b5b8360020a9150848211156126c7576126c66125d1565b5b5061272c565b5060208310610133831016604e8410600b84101617156127025782820a9050838111156126fd576126fc6125d1565b5b61272c565b61270f848484600161260d565b92509050818404811115612726576127256125d1565b5b81810290505b9392505050565b600061273e826123ad565b9150612749836124d6565b92506127767fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612660565b905092915050565b6000612789826123ad565b9150612794836123ad565b92508282026127a2816123ad565b915082820484148315176127b9576127b86125d1565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006127f66020836122a3565b9150612801826127c0565b602082019050919050565b60006020820190508181036000830152612825816127e9565b9050919050565b7f4c697175696469747920697320616c7265616479206164646564000000000000600082015250565b6000612862601a836122a3565b915061286d8261282c565b602082019050919050565b6000602082019050818103600083015261289181612855565b9050919050565b6000815190506128a781612381565b92915050565b6000602082840312156128c3576128c261234a565b5b60006128d184828501612898565b91505092915050565b60006040820190506128ef600083018561253a565b6128fc602083018461253a565b9392505050565b6000819050919050565b6000819050919050565b600061293261292d61292884612903565b61290d565b6123ad565b9050919050565b61294281612917565b82525050565b600060c08201905061295d600083018961253a565b61296a6020830188612459565b6129776040830187612939565b6129846060830186612939565b612991608083018561253a565b61299e60a0830184612459565b979650505050505050565b6000815190506129b8816123b7565b92915050565b6000806000606084860312156129d7576129d661234a565b5b60006129e5868287016129a9565b93505060206129f6868287016129a9565b9250506040612a07868287016129a9565b9150509250925092565b6000604082019050612a26600083018561253a565b612a336020830184612459565b9392505050565b612a4381612423565b8114612a4e57600080fd5b50565b600081519050612a6081612a3a565b92915050565b600060208284031215612a7c57612a7b61234a565b5b6000612a8a84828501612a51565b91505092915050565b7f74726164696e67206973206e6f7420796574206f70656e000000000000000000600082015250565b6000612ac96017836122a3565b9150612ad482612a93565b602082019050919050565b60006020820190508181036000830152612af881612abc565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612b356017836122a3565b9150612b4082612aff565b602082019050919050565b60006020820190508181036000830152612b6481612b28565b9050919050565b7f5461782063616e6e6f7420657863656564203500000000000000000000000000600082015250565b6000612ba16013836122a3565b9150612bac82612b6b565b602082019050919050565b60006020820190508181036000830152612bd081612b94565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612c336024836122a3565b9150612c3e82612bd7565b604082019050919050565b60006020820190508181036000830152612c6281612c26565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612cc56022836122a3565b9150612cd082612c69565b604082019050919050565b60006020820190508181036000830152612cf481612cb8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d576025836122a3565b9150612d6282612cfb565b604082019050919050565b60006020820190508181036000830152612d8681612d4a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612de96023836122a3565b9150612df482612d8d565b604082019050919050565b60006020820190508181036000830152612e1881612ddc565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612e7b6029836122a3565b9150612e8682612e1f565b604082019050919050565b60006020820190508181036000830152612eaa81612e6e565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612ee76019836122a3565b9150612ef282612eb1565b602082019050919050565b60006020820190508181036000830152612f1681612eda565b9050919050565b6000612f28826123ad565b9150612f33836123ad565b9250828201905080821115612f4b57612f4a6125d1565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612f87601a836122a3565b9150612f9282612f51565b602082019050919050565b60006020820190508181036000830152612fb681612f7a565b9050919050565b6000612fc8826123ad565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ffa57612ff96125d1565b5b600182019050919050565b6000613010826123ad565b915061301b836123ad565b9250828203905081811115613033576130326125d1565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613073826123ad565b915061307e836123ad565b92508261308e5761308d613039565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006130f56021836122a3565b915061310082613099565b604082019050919050565b60006020820190508181036000830152613124816130e8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6131be8161236f565b82525050565b60006131d083836131b5565b60208301905092915050565b6000602082019050919050565b60006131f482613189565b6131fe8185613194565b9350613209836131a5565b8060005b8381101561323a57815161322188826131c4565b975061322c836131dc565b92505060018101905061320d565b5085935050505092915050565b600060a08201905061325c6000830188612459565b6132696020830187612939565b818103604083015261327b81866131e9565b905061328a606083018561253a565b6132976080830184612459565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006132d7601b836122a3565b91506132e2826132a1565b602082019050919050565b60006020820190508181036000830152613306816132ca565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fa7573753c59888a8c3f2763e3a38efd47d39ad991d996323f87be3d4c09df9864736f6c63430008130033

Deployed Bytecode Sourcemap

4997:8452:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6898:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7731:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6100:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7175:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7900:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7084:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11730:837;;;;;;;;;;;;;:::i;:::-;;7278:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4078:148;;;;;;;;;;;;;:::i;:::-;;12575:118;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5915:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3864:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5975:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6989:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7405:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13142:269;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6037:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12931:203;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7580:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12705:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6898:83;6935:13;6968:5;;;;;;;;;;;;;;;;;6961:12;;6898:83;:::o;7731:161::-;7806:4;7823:39;7832:12;:10;:12::i;:::-;7846:7;7855:6;7823:8;:39::i;:::-;7880:4;7873:11;;7731:161;;;;:::o;6100:51::-;;;;:::o;7175:95::-;7228:7;5730:1;5785:2;:13;;;;:::i;:::-;5773:9;:25;;;;:::i;:::-;7248:14;;7175:95;:::o;7900:313::-;7998:4;8015:36;8025:6;8033:9;8044:6;8015:9;:36::i;:::-;8062:121;8071:6;8079:12;:10;:12::i;:::-;8093:89;8131:6;8093:89;;;;;;;;;;;;;;;;;:11;:19;8105:6;8093:19;;;;;;;;;;;;;;;:33;8113:12;:10;:12::i;:::-;8093:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8062:8;:121::i;:::-;8201:4;8194:11;;7900:313;;;;;:::o;7084:83::-;7125:5;5730:1;7143:16;;7084:83;:::o;11730:837::-;4001:12;:10;:12::i;:::-;3991:22;;:6;;;;;;;;;;:22;;;3983:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11795:11:::1;;;;;;;;;;;11794:12;11786:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;11847:19;11869:66;11898:36;11930:3;11898:27;11910:14;;5730:1;5785:2;:13;;;;:::i;:::-;5773:9;:25;;;;:::i;:::-;11898:11;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;11869:24;11887:4;11869:9;:24::i;:::-;:28;;:66;;;;:::i;:::-;11847:88;;11983:42;11946:15;;:80;;;;;;;;;;;;;;;;;;12037:58;12054:4;12069:15;;;;;;;;;;;5730:1;5785:2;:13;;;;:::i;:::-;5773:9;:25;;;;:::i;:::-;12037:8;:58::i;:::-;12140:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12122:55;;;12200:4;12221:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12122:132;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12106:13;;:148;;;;;;;;;;;;;;;;;;12265:15;;;;;;;;;;;:31;;;12304:21;12350:4;12370:11;12396:1;12412::::0;12428:7:::1;:5;:7::i;:::-;12450:15;12265:211;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12494:13;;;;;;;;;;;12487:29;;;12525:15;;;;;;;;;;;12543:14;12487:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11775:792;11730:837::o:0;7278:119::-;7344:7;7371:9;:18;7381:7;7371:18;;;;;;;;;;;;;;;;7364:25;;7278:119;;;:::o;4078:148::-;4001:12;:10;:12::i;:::-;3991:22;;:6;;;;;;;;;;:22;;;3983:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4185:1:::1;4148:40;;4169:6;::::0;::::1;;;;;;;;4148:40;;;;;;;;;;;;4216:1;4199:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4078:148::o:0;12575:118::-;12628:4;4001:12;:10;:12::i;:::-;3991:22;;:6;;;;;;;;;;:22;;;3983:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12658:5:::1;12644:11;;:19;;;;;;;;;;;;;;;;;;12681:4;12674:11;;12575:118:::0;:::o;5915:53::-;;;;:::o;3864:79::-;3902:7;3929:6;;;;;;;;;;;3922:13;;3864:79;:::o;5975:55::-;;;;:::o;6989:87::-;7028:13;7061:7;;;;;;;;;;;;;;;;;7054:14;;6989:87;:::o;7405:167::-;7483:4;7500:42;7510:12;:10;:12::i;:::-;7524:9;7535:6;7500:9;:42::i;:::-;7560:4;7553:11;;7405:167;;;;:::o;13142:269::-;13185:4;13210:11;;;;;;;;;;;13202:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;13259:18;13278:21;13259:40;;13324:1;13313:10;:12;13310:72;;;13339:10;;;;;;;;;;;:19;;:31;13359:10;13339:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13310:72;13399:4;13392:11;;;13142:269;:::o;6037:56::-;;;;:::o;12931:203::-;12982:4;4001:12;:10;:12::i;:::-;3991:22;;:6;;;;;;;;;;:22;;;3983:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13008:11:::1;;;;;;;;;;;13007:12;12999:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;13071:4;13057:11;;:18;;;;;;;;;;;;;;;;;;13100:4;13086:11;;:18;;;;;;;;;;;;;;;;;;13122:4;13115:11;;12931:203:::0;:::o;7580:143::-;7661:7;7688:11;:18;7700:5;7688:18;;;;;;;;;;;;;;;:27;7707:7;7688:27;;;;;;;;;;;;;;;;7681:34;;7580:143;;;;:::o;12705:218::-;12769:4;4001:12;:10;:12::i;:::-;3991:22;;:6;;;;;;;;;;:22;;;3983:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12801:6:::1;12786:12;:21;;;;12834:6;12818:13;:22;;;;12869:1;12859:6;:11;;12851:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;12911:4;12904:11;;12705:218:::0;;;:::o;1619:98::-;1672:7;1699:10;1692:17;;1619:98;:::o;8221:335::-;8331:1;8314:19;;:5;:19;;;8306:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8412:1;8393:21;;:7;:21;;;8385:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8494:6;8464:11;:18;8476:5;8464:18;;;;;;;;;;;;;;;:27;8483:7;8464:27;;;;;;;;;;;;;;;:36;;;;8532:7;8516:32;;8525:5;8516:32;;;8541:6;8516:32;;;;;;:::i;:::-;;;;;;;;8221:335;;;:::o;8564:2461::-;8668:1;8652:18;;:4;:18;;;8644:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8745:1;8731:16;;:2;:16;;;8723:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8815:1;8806:6;:10;8798:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8873:17;8917:7;:5;:7::i;:::-;8909:15;;:4;:15;;;;:32;;;;;8934:7;:5;:7::i;:::-;8928:13;;:2;:13;;;;8909:32;8905:1764;;;8966:11;;;;;;;;;;;8961:197;;9027:18;:24;9046:4;9027:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;9055:18;:22;9074:2;9055:22;;;;;;;;;;;;;;;;;;;;;;;;;9027:50;8998:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;8961:197;9186:13;;;;;;;;;;;9178:21;;:4;:21;;;:55;;;;;9217:15;;;;;;;;;;;9203:30;;:2;:30;;;;9178:55;:83;;;;;9239:18;:22;9258:2;9239:22;;;;;;;;;;;;;;;;;;;;;;;;;9237:24;9178:83;9174:377;;;9287:11;;;;;;;;;;;9283:222;;;9341:12;;9331:6;:22;;9323:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9440:14;;9430:6;9414:13;9424:2;9414:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9406:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9283:222;9524:9;;:11;;;;;;;;;:::i;:::-;;;;;;9174:377;9590:13;;;;;;;;;;;9584:19;;:2;:19;;;:43;;;;;9622:4;9607:20;;:4;:20;;;;9584:43;9579:471;;;9660:138;9776:3;9660:111;9701:16;;9691:9;;:26;9690:80;;9755:15;;9690:80;;;9741:13;;9690:80;9660:6;:10;;:111;;;;:::i;:::-;:115;;:138;;;;:::i;:::-;9648:150;;9579:471;;;9832:13;;;;;;;;;;;9824:21;;:4;:21;;;:43;;;;;9862:4;9849:18;;:2;:18;;;;9824:43;9820:230;;;9900:134;10012:3;9900:107;9940:15;;9930:9;;:25;9929:77;;9992:14;;9929:77;;;9979:12;;9929:77;9900:6;:10;;:107;;;;:::i;:::-;:111;;:134;;;;:::i;:::-;9888:146;;9820:230;9579:471;10066:28;10097:24;10115:4;10097:9;:24::i;:::-;10066:55;;10159:6;;;;;;;;;;;10158:7;:48;;;;;10193:13;;;;;;;;;;;10187:19;;:2;:19;;;10158:48;:81;;;;;10228:11;;;;;;;;;;;10158:81;:141;;;;;10282:17;;10261:20;:38;10158:141;:191;;;;;10331:18;;10321:9;;:28;10158:191;10136:522;;;10383:67;10400:49;10404:6;10411:37;10415:20;10436:11;;10411:3;:37::i;:::-;10400:3;:49::i;:::-;10383:16;:67::i;:::-;10469:26;10498:21;10469:50;;10562:1;10541:18;:22;10538:105;;;10588:35;10601:21;10588:12;:35::i;:::-;10538:105;10364:294;10136:522;8943:1726;8905:1764;10694:1;10684:9;:11;10681:161;;;10734:39;10763:9;10734;:24;10752:4;10734:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10709:9;:24;10727:4;10709:24;;;;;;;;;;;;;;;:64;;;;10814:4;10791:39;;10800:4;10791:39;;;10820:9;10791:39;;;;;;:::i;:::-;;;;;;;;10681:161;10868:27;10888:6;10868:9;:15;10878:4;10868:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10852:9;:15;10862:4;10852:15;;;;;;;;;;;;;;;:43;;;;10920:40;10938:21;10949:9;10938:6;:10;;:21;;;;:::i;:::-;10920:9;:13;10930:2;10920:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10906:9;:13;10916:2;10906:13;;;;;;;;;;;;;;;:54;;;;10991:2;10976:41;;10985:4;10976:41;;;10995:21;11006:9;10995:6;:10;;:21;;;;:::i;:::-;10976:41;;;;;;:::i;:::-;;;;;;;;8633:2392;8564:2461;;;:::o;2756:190::-;2842:7;2875:1;2870;:6;;2878:12;2862:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2902:9;2918:1;2914;:5;;;;:::i;:::-;2902:17;;2937:1;2930:8;;;2756:190;;;;;:::o;2954:246::-;3012:7;3041:1;3036;:6;3032:47;;3066:1;3059:8;;;;3032:47;3089:9;3105:1;3101;:5;;;;:::i;:::-;3089:17;;3134:1;3129;3125;:5;;;;:::i;:::-;:10;3117:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3191:1;3184:8;;;2954:246;;;;;:::o;3208:132::-;3266:7;3293:39;3297:1;3300;3293:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3286:46;;3208:132;;;;:::o;2612:136::-;2670:7;2697:43;2701:1;2704;2697:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2690:50;;2612:136;;;;:::o;11133:98::-;11190:7;11217:1;11215;:3;11214:9;;11222:1;11214:9;;;11220:1;11214:9;11207:16;;11133:98;;;;:::o;11239:483::-;6430:4;6421:6;;:13;;;;;;;;;;;;;;;;;;11317:21:::1;11355:1;11341:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11317:40;;11386:4;11368;11373:1;11368:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11412:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11402:4;11407:1;11402:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11445:62;11462:4;11477:15;;;;;;;;;;;11495:11;11445:8;:62::i;:::-;11518:15;;;;;;;;;;;:66;;;11599:11;11625:1;11641:4;11668;11688:15;11518:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11306:416;6466:5:::0;6457:6;;:14;;;;;;;;;;;;;;;;;;11239:483;:::o;11033:92::-;11090:10;;;;;;;;;;;:19;;:27;11110:6;11090:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11033:92;:::o;2425:179::-;2483:7;2503:9;2519:1;2515;:5;;;;:::i;:::-;2503:17;;2544:1;2539;:6;;2531:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2595:1;2588:8;;;2425:179;;;;:::o;3348:189::-;3434:7;3466:1;3462;:5;3469:12;3454:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3493:9;3509:1;3505;:5;;;;:::i;:::-;3493:17;;3528:1;3521:8;;;3348:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:329::-;6079:6;6128:2;6116:9;6107:7;6103:23;6099:32;6096:119;;;6134:79;;:::i;:::-;6096:119;6254:1;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6225:117;6020:329;;;;:::o;6355:180::-;6403:77;6400:1;6393:88;6500:4;6497:1;6490:15;6524:4;6521:1;6514:15;6541:102;6583:8;6630:5;6627:1;6623:13;6602:34;;6541:102;;;:::o;6649:848::-;6710:5;6717:4;6741:6;6732:15;;6765:5;6756:14;;6779:712;6800:1;6790:8;6787:15;6779:712;;;6895:4;6890:3;6886:14;6880:4;6877:24;6874:50;;;6904:18;;:::i;:::-;6874:50;6954:1;6944:8;6940:16;6937:451;;;7369:4;7362:5;7358:16;7349:25;;6937:451;7419:4;7413;7409:15;7401:23;;7449:32;7472:8;7449:32;:::i;:::-;7437:44;;6779:712;;;6649:848;;;;;;;:::o;7503:1073::-;7557:5;7748:8;7738:40;;7769:1;7760:10;;7771:5;;7738:40;7797:4;7787:36;;7814:1;7805:10;;7816:5;;7787:36;7883:4;7931:1;7926:27;;;;7967:1;7962:191;;;;7876:277;;7926:27;7944:1;7935:10;;7946:5;;;7962:191;8007:3;7997:8;7994:17;7991:43;;;8014:18;;:::i;:::-;7991:43;8063:8;8060:1;8056:16;8047:25;;8098:3;8091:5;8088:14;8085:40;;;8105:18;;:::i;:::-;8085:40;8138:5;;;7876:277;;8262:2;8252:8;8249:16;8243:3;8237:4;8234:13;8230:36;8212:2;8202:8;8199:16;8194:2;8188:4;8185:12;8181:35;8165:111;8162:246;;;8318:8;8312:4;8308:19;8299:28;;8353:3;8346:5;8343:14;8340:40;;;8360:18;;:::i;:::-;8340:40;8393:5;;8162:246;8433:42;8471:3;8461:8;8455:4;8452:1;8433:42;:::i;:::-;8418:57;;;;8507:4;8502:3;8498:14;8491:5;8488:25;8485:51;;;8516:18;;:::i;:::-;8485:51;8565:4;8558:5;8554:16;8545:25;;7503:1073;;;;;;:::o;8582:281::-;8640:5;8664:23;8682:4;8664:23;:::i;:::-;8656:31;;8708:25;8724:8;8708:25;:::i;:::-;8696:37;;8752:104;8789:66;8779:8;8773:4;8752:104;:::i;:::-;8743:113;;8582:281;;;;:::o;8869:410::-;8909:7;8932:20;8950:1;8932:20;:::i;:::-;8927:25;;8966:20;8984:1;8966:20;:::i;:::-;8961:25;;9021:1;9018;9014:9;9043:30;9061:11;9043:30;:::i;:::-;9032:41;;9222:1;9213:7;9209:15;9206:1;9203:22;9183:1;9176:9;9156:83;9133:139;;9252:18;;:::i;:::-;9133:139;8917:362;8869:410;;;;:::o;9285:182::-;9425:34;9421:1;9413:6;9409:14;9402:58;9285:182;:::o;9473:366::-;9615:3;9636:67;9700:2;9695:3;9636:67;:::i;:::-;9629:74;;9712:93;9801:3;9712:93;:::i;:::-;9830:2;9825:3;9821:12;9814:19;;9473:366;;;:::o;9845:419::-;10011:4;10049:2;10038:9;10034:18;10026:26;;10098:9;10092:4;10088:20;10084:1;10073:9;10069:17;10062:47;10126:131;10252:4;10126:131;:::i;:::-;10118:139;;9845:419;;;:::o;10270:176::-;10410:28;10406:1;10398:6;10394:14;10387:52;10270:176;:::o;10452:366::-;10594:3;10615:67;10679:2;10674:3;10615:67;:::i;:::-;10608:74;;10691:93;10780:3;10691:93;:::i;:::-;10809:2;10804:3;10800:12;10793:19;;10452:366;;;:::o;10824:419::-;10990:4;11028:2;11017:9;11013:18;11005:26;;11077:9;11071:4;11067:20;11063:1;11052:9;11048:17;11041:47;11105:131;11231:4;11105:131;:::i;:::-;11097:139;;10824:419;;;:::o;11249:143::-;11306:5;11337:6;11331:13;11322:22;;11353:33;11380:5;11353:33;:::i;:::-;11249:143;;;;:::o;11398:351::-;11468:6;11517:2;11505:9;11496:7;11492:23;11488:32;11485:119;;;11523:79;;:::i;:::-;11485:119;11643:1;11668:64;11724:7;11715:6;11704:9;11700:22;11668:64;:::i;:::-;11658:74;;11614:128;11398:351;;;;:::o;11755:332::-;11876:4;11914:2;11903:9;11899:18;11891:26;;11927:71;11995:1;11984:9;11980:17;11971:6;11927:71;:::i;:::-;12008:72;12076:2;12065:9;12061:18;12052:6;12008:72;:::i;:::-;11755:332;;;;;:::o;12093:85::-;12138:7;12167:5;12156:16;;12093:85;;;:::o;12184:60::-;12212:3;12233:5;12226:12;;12184:60;;;:::o;12250:158::-;12308:9;12341:61;12359:42;12368:32;12394:5;12368:32;:::i;:::-;12359:42;:::i;:::-;12341:61;:::i;:::-;12328:74;;12250:158;;;:::o;12414:147::-;12509:45;12548:5;12509:45;:::i;:::-;12504:3;12497:58;12414:147;;:::o;12567:807::-;12816:4;12854:3;12843:9;12839:19;12831:27;;12868:71;12936:1;12925:9;12921:17;12912:6;12868:71;:::i;:::-;12949:72;13017:2;13006:9;13002:18;12993:6;12949:72;:::i;:::-;13031:80;13107:2;13096:9;13092:18;13083:6;13031:80;:::i;:::-;13121;13197:2;13186:9;13182:18;13173:6;13121:80;:::i;:::-;13211:73;13279:3;13268:9;13264:19;13255:6;13211:73;:::i;:::-;13294;13362:3;13351:9;13347:19;13338:6;13294:73;:::i;:::-;12567:807;;;;;;;;;:::o;13380:143::-;13437:5;13468:6;13462:13;13453:22;;13484:33;13511:5;13484:33;:::i;:::-;13380:143;;;;:::o;13529:663::-;13617:6;13625;13633;13682:2;13670:9;13661:7;13657:23;13653:32;13650:119;;;13688:79;;:::i;:::-;13650:119;13808:1;13833:64;13889:7;13880:6;13869:9;13865:22;13833:64;:::i;:::-;13823:74;;13779:128;13946:2;13972:64;14028:7;14019:6;14008:9;14004:22;13972:64;:::i;:::-;13962:74;;13917:129;14085:2;14111:64;14167:7;14158:6;14147:9;14143:22;14111:64;:::i;:::-;14101:74;;14056:129;13529:663;;;;;:::o;14198:332::-;14319:4;14357:2;14346:9;14342:18;14334:26;;14370:71;14438:1;14427:9;14423:17;14414:6;14370:71;:::i;:::-;14451:72;14519:2;14508:9;14504:18;14495:6;14451:72;:::i;:::-;14198:332;;;;;:::o;14536:116::-;14606:21;14621:5;14606:21;:::i;:::-;14599:5;14596:32;14586:60;;14642:1;14639;14632:12;14586:60;14536:116;:::o;14658:137::-;14712:5;14743:6;14737:13;14728:22;;14759:30;14783:5;14759:30;:::i;:::-;14658:137;;;;:::o;14801:345::-;14868:6;14917:2;14905:9;14896:7;14892:23;14888:32;14885:119;;;14923:79;;:::i;:::-;14885:119;15043:1;15068:61;15121:7;15112:6;15101:9;15097:22;15068:61;:::i;:::-;15058:71;;15014:125;14801:345;;;;:::o;15152:173::-;15292:25;15288:1;15280:6;15276:14;15269:49;15152:173;:::o;15331:366::-;15473:3;15494:67;15558:2;15553:3;15494:67;:::i;:::-;15487:74;;15570:93;15659:3;15570:93;:::i;:::-;15688:2;15683:3;15679:12;15672:19;;15331:366;;;:::o;15703:419::-;15869:4;15907:2;15896:9;15892:18;15884:26;;15956:9;15950:4;15946:20;15942:1;15931:9;15927:17;15920:47;15984:131;16110:4;15984:131;:::i;:::-;15976:139;;15703:419;;;:::o;16128:173::-;16268:25;16264:1;16256:6;16252:14;16245:49;16128:173;:::o;16307:366::-;16449:3;16470:67;16534:2;16529:3;16470:67;:::i;:::-;16463:74;;16546:93;16635:3;16546:93;:::i;:::-;16664:2;16659:3;16655:12;16648:19;;16307:366;;;:::o;16679:419::-;16845:4;16883:2;16872:9;16868:18;16860:26;;16932:9;16926:4;16922:20;16918:1;16907:9;16903:17;16896:47;16960:131;17086:4;16960:131;:::i;:::-;16952:139;;16679:419;;;:::o;17104:169::-;17244:21;17240:1;17232:6;17228:14;17221:45;17104:169;:::o;17279:366::-;17421:3;17442:67;17506:2;17501:3;17442:67;:::i;:::-;17435:74;;17518:93;17607:3;17518:93;:::i;:::-;17636:2;17631:3;17627:12;17620:19;;17279:366;;;:::o;17651:419::-;17817:4;17855:2;17844:9;17840:18;17832:26;;17904:9;17898:4;17894:20;17890:1;17879:9;17875:17;17868:47;17932:131;18058:4;17932:131;:::i;:::-;17924:139;;17651:419;;;:::o;18076:223::-;18216:34;18212:1;18204:6;18200:14;18193:58;18285:6;18280:2;18272:6;18268:15;18261:31;18076:223;:::o;18305:366::-;18447:3;18468:67;18532:2;18527:3;18468:67;:::i;:::-;18461:74;;18544:93;18633:3;18544:93;:::i;:::-;18662:2;18657:3;18653:12;18646:19;;18305:366;;;:::o;18677:419::-;18843:4;18881:2;18870:9;18866:18;18858:26;;18930:9;18924:4;18920:20;18916:1;18905:9;18901:17;18894:47;18958:131;19084:4;18958:131;:::i;:::-;18950:139;;18677:419;;;:::o;19102:221::-;19242:34;19238:1;19230:6;19226:14;19219:58;19311:4;19306:2;19298:6;19294:15;19287:29;19102:221;:::o;19329:366::-;19471:3;19492:67;19556:2;19551:3;19492:67;:::i;:::-;19485:74;;19568:93;19657:3;19568:93;:::i;:::-;19686:2;19681:3;19677:12;19670:19;;19329:366;;;:::o;19701:419::-;19867:4;19905:2;19894:9;19890:18;19882:26;;19954:9;19948:4;19944:20;19940:1;19929:9;19925:17;19918:47;19982:131;20108:4;19982:131;:::i;:::-;19974:139;;19701:419;;;:::o;20126:224::-;20266:34;20262:1;20254:6;20250:14;20243:58;20335:7;20330:2;20322:6;20318:15;20311:32;20126:224;:::o;20356:366::-;20498:3;20519:67;20583:2;20578:3;20519:67;:::i;:::-;20512:74;;20595:93;20684:3;20595:93;:::i;:::-;20713:2;20708:3;20704:12;20697:19;;20356:366;;;:::o;20728:419::-;20894:4;20932:2;20921:9;20917:18;20909:26;;20981:9;20975:4;20971:20;20967:1;20956:9;20952:17;20945:47;21009:131;21135:4;21009:131;:::i;:::-;21001:139;;20728:419;;;:::o;21153:222::-;21293:34;21289:1;21281:6;21277:14;21270:58;21362:5;21357:2;21349:6;21345:15;21338:30;21153:222;:::o;21381:366::-;21523:3;21544:67;21608:2;21603:3;21544:67;:::i;:::-;21537:74;;21620:93;21709:3;21620:93;:::i;:::-;21738:2;21733:3;21729:12;21722:19;;21381:366;;;:::o;21753:419::-;21919:4;21957:2;21946:9;21942:18;21934:26;;22006:9;22000:4;21996:20;21992:1;21981:9;21977:17;21970:47;22034:131;22160:4;22034:131;:::i;:::-;22026:139;;21753:419;;;:::o;22178:228::-;22318:34;22314:1;22306:6;22302:14;22295:58;22387:11;22382:2;22374:6;22370:15;22363:36;22178:228;:::o;22412:366::-;22554:3;22575:67;22639:2;22634:3;22575:67;:::i;:::-;22568:74;;22651:93;22740:3;22651:93;:::i;:::-;22769:2;22764:3;22760:12;22753:19;;22412:366;;;:::o;22784:419::-;22950:4;22988:2;22977:9;22973:18;22965:26;;23037:9;23031:4;23027:20;23023:1;23012:9;23008:17;23001:47;23065:131;23191:4;23065:131;:::i;:::-;23057:139;;22784:419;;;:::o;23209:175::-;23349:27;23345:1;23337:6;23333:14;23326:51;23209:175;:::o;23390:366::-;23532:3;23553:67;23617:2;23612:3;23553:67;:::i;:::-;23546:74;;23629:93;23718:3;23629:93;:::i;:::-;23747:2;23742:3;23738:12;23731:19;;23390:366;;;:::o;23762:419::-;23928:4;23966:2;23955:9;23951:18;23943:26;;24015:9;24009:4;24005:20;24001:1;23990:9;23986:17;23979:47;24043:131;24169:4;24043:131;:::i;:::-;24035:139;;23762:419;;;:::o;24187:191::-;24227:3;24246:20;24264:1;24246:20;:::i;:::-;24241:25;;24280:20;24298:1;24280:20;:::i;:::-;24275:25;;24323:1;24320;24316:9;24309:16;;24344:3;24341:1;24338:10;24335:36;;;24351:18;;:::i;:::-;24335:36;24187:191;;;;:::o;24384:176::-;24524:28;24520:1;24512:6;24508:14;24501:52;24384:176;:::o;24566:366::-;24708:3;24729:67;24793:2;24788:3;24729:67;:::i;:::-;24722:74;;24805:93;24894:3;24805:93;:::i;:::-;24923:2;24918:3;24914:12;24907:19;;24566:366;;;:::o;24938:419::-;25104:4;25142:2;25131:9;25127:18;25119:26;;25191:9;25185:4;25181:20;25177:1;25166:9;25162:17;25155:47;25219:131;25345:4;25219:131;:::i;:::-;25211:139;;24938:419;;;:::o;25363:233::-;25402:3;25425:24;25443:5;25425:24;:::i;:::-;25416:33;;25471:66;25464:5;25461:77;25458:103;;25541:18;;:::i;:::-;25458:103;25588:1;25581:5;25577:13;25570:20;;25363:233;;;:::o;25602:194::-;25642:4;25662:20;25680:1;25662:20;:::i;:::-;25657:25;;25696:20;25714:1;25696:20;:::i;:::-;25691:25;;25740:1;25737;25733:9;25725:17;;25764:1;25758:4;25755:11;25752:37;;;25769:18;;:::i;:::-;25752:37;25602:194;;;;:::o;25802:180::-;25850:77;25847:1;25840:88;25947:4;25944:1;25937:15;25971:4;25968:1;25961:15;25988:185;26028:1;26045:20;26063:1;26045:20;:::i;:::-;26040:25;;26079:20;26097:1;26079:20;:::i;:::-;26074:25;;26118:1;26108:35;;26123:18;;:::i;:::-;26108:35;26165:1;26162;26158:9;26153:14;;25988:185;;;;:::o;26179:220::-;26319:34;26315:1;26307:6;26303:14;26296:58;26388:3;26383:2;26375:6;26371:15;26364:28;26179:220;:::o;26405:366::-;26547:3;26568:67;26632:2;26627:3;26568:67;:::i;:::-;26561:74;;26644:93;26733:3;26644:93;:::i;:::-;26762:2;26757:3;26753:12;26746:19;;26405:366;;;:::o;26777:419::-;26943:4;26981:2;26970:9;26966:18;26958:26;;27030:9;27024:4;27020:20;27016:1;27005:9;27001:17;26994:47;27058:131;27184:4;27058:131;:::i;:::-;27050:139;;26777:419;;;:::o;27202:180::-;27250:77;27247:1;27240:88;27347:4;27344:1;27337:15;27371:4;27368:1;27361:15;27388:180;27436:77;27433:1;27426:88;27533:4;27530:1;27523:15;27557:4;27554:1;27547:15;27574:114;27641:6;27675:5;27669:12;27659:22;;27574:114;;;:::o;27694:184::-;27793:11;27827:6;27822:3;27815:19;27867:4;27862:3;27858:14;27843:29;;27694:184;;;;:::o;27884:132::-;27951:4;27974:3;27966:11;;28004:4;27999:3;27995:14;27987:22;;27884:132;;;:::o;28022:108::-;28099:24;28117:5;28099:24;:::i;:::-;28094:3;28087:37;28022:108;;:::o;28136:179::-;28205:10;28226:46;28268:3;28260:6;28226:46;:::i;:::-;28304:4;28299:3;28295:14;28281:28;;28136:179;;;;:::o;28321:113::-;28391:4;28423;28418:3;28414:14;28406:22;;28321:113;;;:::o;28470:732::-;28589:3;28618:54;28666:5;28618:54;:::i;:::-;28688:86;28767:6;28762:3;28688:86;:::i;:::-;28681:93;;28798:56;28848:5;28798:56;:::i;:::-;28877:7;28908:1;28893:284;28918:6;28915:1;28912:13;28893:284;;;28994:6;28988:13;29021:63;29080:3;29065:13;29021:63;:::i;:::-;29014:70;;29107:60;29160:6;29107:60;:::i;:::-;29097:70;;28953:224;28940:1;28937;28933:9;28928:14;;28893:284;;;28897:14;29193:3;29186:10;;28594:608;;;28470:732;;;;:::o;29208:831::-;29471:4;29509:3;29498:9;29494:19;29486:27;;29523:71;29591:1;29580:9;29576:17;29567:6;29523:71;:::i;:::-;29604:80;29680:2;29669:9;29665:18;29656:6;29604:80;:::i;:::-;29731:9;29725:4;29721:20;29716:2;29705:9;29701:18;29694:48;29759:108;29862:4;29853:6;29759:108;:::i;:::-;29751:116;;29877:72;29945:2;29934:9;29930:18;29921:6;29877:72;:::i;:::-;29959:73;30027:3;30016:9;30012:19;30003:6;29959:73;:::i;:::-;29208:831;;;;;;;;:::o;30045:177::-;30185:29;30181:1;30173:6;30169:14;30162:53;30045:177;:::o;30228:366::-;30370:3;30391:67;30455:2;30450:3;30391:67;:::i;:::-;30384:74;;30467:93;30556:3;30467:93;:::i;:::-;30585:2;30580:3;30576:12;30569:19;;30228:366;;;:::o;30600:419::-;30766:4;30804:2;30793:9;30789:18;30781:26;;30853:9;30847:4;30843:20;30839:1;30828:9;30824:17;30817:47;30881:131;31007:4;30881:131;:::i;:::-;30873:139;;30600:419;;;:::o

Swarm Source

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